From c79ce881521513c893101f10842ea857976c1030 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sun, 15 May 2022 13:24:05 +0200 Subject: [PATCH 0001/1574] Fix a timing leak in ecp_mul_mxz() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bit length of m is leaked through through timing in ecp_mul_mxz(). Initially found by Manuel Pégourié-Gonnard on ecp_mul_edxyz(), which has been inspired from ecp_mul_mxz(), during initial review of the EdDSA PR. See: https://github.com/Mbed-TLS/mbedtls/pull/3245#discussion_r490827996 Fix that by using grp->nbits + 1 instead, which anyway is very close to the length of m, which means there is no significant performance impact. Signed-off-by: Aurelien Jarno --- library/ecp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ecp.c b/library/ecp.c index 8b32caa38..8943837b9 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2526,7 +2526,7 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, &RP, f_rng, p_rng ) ); /* Loop invariant: R = result so far, RP = R + P */ - i = mbedtls_mpi_bitlen( m ); /* one past the (zero-based) most significant bit */ + i = grp->nbits + 1; /* one past the (zero-based) required msb for private keys */ while( i-- > 0 ) { b = mbedtls_mpi_get_bit( m, i ); From 1fdb8e8c17b761b1008ffb76e4c879594e0ac5e2 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 11:32:07 +0100 Subject: [PATCH 0002/1574] Add unit tests for ECDSA with invalid public key Add tests for a case in ECDSA signing where an invalid public key is accepted in signature verification. Test data taken from the OSS-fuzz issue, and additional generated with python-ecdsa. Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 60 ++++++++++++++++++++++++ tests/suites/test_suite_ecdsa.function | 65 ++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 9bb35c54a..7ed6fe25b 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -361,3 +361,63 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0":"0151518F1AF0F563517EDD5485 ECDSA private parameter greater than n p521 depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA11":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, zero bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":0:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, one byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify invalid public key, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY + +ECDSA verify valid public key, invalid signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, invalid signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, invalid signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED + +ECDSA verify valid public key, correct signature, 0 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":0:1:0 + +ECDSA verify valid public key, correct signature, 1 byte of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":1:1:0 + +ECDSA verify valid public key, correct signature, 32 bytes of data +depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 \ No newline at end of file diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index a8b1e45a2..947890a26 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -466,3 +466,68 @@ exit: mbedtls_ecdsa_free( &ctx ); } /* END_CASE */ + +/* BEGIN_CASE */ +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, int key_is_valid, int expected ) +{ + uint8_t FUZZ_DATA[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 136, 251, 46, 240, 45, 45, 27, 62, 60, 0, 0, 0, 32, 32, 32, 32, 124, 102, 235, 242, 220, 21, 68, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 121, 1, 0, 0, 0, 91, 1, 0, 0, 0, 151, 1, 0, 0, 0, 32, 32, 255, 32, 32, 150, 14, 240, 249, 163, 174, 190, 100, 0, 0, 0, 0, 32, 32, 32, 32, 51, 48, 79, 125, 229, 21, 223, 118, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + mbedtls_ecdsa_context ctx; + mbedtls_mpi sig_r, sig_s; + const mbedtls_ecp_curve_info *curve_info; + + mbedtls_ecdsa_init( &ctx ); + mbedtls_mpi_init( &sig_r ); + mbedtls_mpi_init( &sig_s ); + + /* Prepare ECP group context */ + curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); + TEST_ASSERT( curve_info != NULL ); + TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); + + /* Prepare public key */ + TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.X, 16, x ), 0 ); + TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.Y, 16, y ), 0 ); + TEST_EQUAL( mbedtls_mpi_lset( &ctx.Q.Z, 1 ), 0 ); + + /* Prepare signature R & S */ + TEST_EQUAL( mbedtls_mpi_read_string( &sig_r, 16, r ), 0 ); + TEST_EQUAL( mbedtls_mpi_read_string( &sig_s, 16, s ), 0 ); + + /* Test whether public key has expected validity */ + TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); + + /* Verification */ + int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, ( size_t ) len, &ctx.Q, &sig_r, &sig_s ); + + TEST_EQUAL( result, expected ); + + if ( !key_is_valid ) { + /* Invalid public key must always fail */ + TEST_ASSERT( result != 0 ); + } + +exit: + mbedtls_ecdsa_free( &ctx ); + mbedtls_mpi_free( &sig_r ); + mbedtls_mpi_free( &sig_s ); +} +/* END_CASE */ \ No newline at end of file From c947751a5f51191d0229e7e2e5e421eb30221dc9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 11:26:24 +0100 Subject: [PATCH 0003/1574] Fix ECDSA signature verification edge-case For R and S equal to 1, ensure the public key is checked for validity. Signed-off-by: Dave Rodgman --- library/ecp.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc..74c02323f 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2666,14 +2666,17 @@ static int mbedtls_ecp_mul_shortcuts( mbedtls_ecp_group *grp, if( mbedtls_mpi_cmp_int( m, 0 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_set_zero( R ) ); } else if( mbedtls_mpi_cmp_int( m, 1 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); } else if( mbedtls_mpi_cmp_int( m, -1 ) == 0 ) { + MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); MPI_ECP_NEG( &R->Y ); } From 56cfb31dd1703cc6f607f32f5944601f7c028bee Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 12:21:23 +0100 Subject: [PATCH 0004/1574] Add missing newlines Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 2 +- tests/suites/test_suite_ecdsa.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 7ed6fe25b..4d59d02f6 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -420,4 +420,4 @@ ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2 ECDSA verify valid public key, correct signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 \ No newline at end of file +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 947890a26..8f2f6b1a8 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -530,4 +530,4 @@ exit: mbedtls_mpi_free( &sig_r ); mbedtls_mpi_free( &sig_s ); } -/* END_CASE */ \ No newline at end of file +/* END_CASE */ From 66bcadb47dce2281be4b62617daf04e1de3c6e14 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 13:31:44 +0100 Subject: [PATCH 0005/1574] Fix duplicate test names Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 4d59d02f6..9044d8473 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -370,19 +370,19 @@ ECDSA verify invalid public key, one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (a), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (b), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (c), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, 32 bytes of data +ECDSA verify invalid public key (d), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY From d106308c83597a3c2f891bad4480a81c49c30b91 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 10 Aug 2022 13:41:11 +0100 Subject: [PATCH 0006/1574] Changelog for ECDSA verify fix Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/ecdsa-verify-fixes.txt diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt new file mode 100644 index 000000000..6dbd4702e --- /dev/null +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix ECDSA verification, where it was failing to validate the public key + for signatures where R == 1 and S == 1. This bug meant that it was + possible to verify such signatures with an invalid public key, in some + cases. From b44c72861faa175d3da65bd555b0dfeec6509e82 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 13:47:35 +0100 Subject: [PATCH 0007/1574] Minor tidy-up Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 8f2f6b1a8..760890b45 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -504,19 +504,19 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); /* Prepare public key */ - TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.X, 16, x ), 0 ); - TEST_EQUAL( mbedtls_mpi_read_string( &ctx.Q.Y, 16, y ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.X, x ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.Y, y ), 0 ); TEST_EQUAL( mbedtls_mpi_lset( &ctx.Q.Z, 1 ), 0 ); /* Prepare signature R & S */ - TEST_EQUAL( mbedtls_mpi_read_string( &sig_r, 16, r ), 0 ); - TEST_EQUAL( mbedtls_mpi_read_string( &sig_s, 16, s ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &sig_r, r ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &sig_s, s ), 0 ); /* Test whether public key has expected validity */ TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); /* Verification */ - int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, ( size_t ) len, &ctx.Q, &sig_r, &sig_s ); + int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, (size_t)len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); From cd57a61fec176011cb9e010856a4a3ffc9938c71 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 18 Aug 2022 15:48:46 +0100 Subject: [PATCH 0008/1574] Paramaterise ecdsa_verify test case more clearly Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++------------- tests/suites/test_suite_ecdsa.function | 24 ++------------------- 2 files changed, 17 insertions(+), 37 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index 9044d8473..d59355e17 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -364,60 +364,60 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD454951 ECDSA verify invalid public key, zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":0:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key, one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":1:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (a), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (b), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (c), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid public key (d), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":32:0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify valid public key, invalid signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, invalid signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, invalid signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":0:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":1:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":32:1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, correct signature, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":0:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 ECDSA verify valid public key, correct signature, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":1:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 ECDSA verify valid public key, correct signature, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":32:1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 760890b45..50a547d39 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -468,28 +468,8 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, int key_is_valid, int expected ) +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int key_is_valid, int expected ) { - uint8_t FUZZ_DATA[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 136, 251, 46, 240, 45, 45, 27, 62, 60, 0, 0, 0, 32, 32, 32, 32, 124, 102, 235, 242, 220, 21, 68, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 121, 1, 0, 0, 0, 91, 1, 0, 0, 0, 151, 1, 0, 0, 0, 32, 32, 255, 32, 32, 150, 14, 240, 249, 163, 174, 190, 100, 0, 0, 0, 0, 32, 32, 32, 32, 51, 48, 79, 125, 229, 21, 223, 118, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 - }; - mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; const mbedtls_ecp_curve_info *curve_info; @@ -516,7 +496,7 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, int len, TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); /* Verification */ - int result = mbedtls_ecdsa_verify( &ctx.grp, FUZZ_DATA, (size_t)len, &ctx.Q, &sig_r, &sig_s ); + int result = mbedtls_ecdsa_verify( &ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); From b153c6c31be425220526f5b5c42b3a943c21a0e2 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 18 Aug 2022 16:05:49 +0100 Subject: [PATCH 0009/1574] Improve test descriptions Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index d59355e17..f07483da1 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -362,62 +362,62 @@ ECDSA private parameter greater than n p521 depends_on:MBEDTLS_ECP_DP_SECP521R1_ENABLED ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD45495112A3D813C17BFD34BDF8C1209D7DF5849120597779060A7FF9D704ADF78B570FFAD6F062E95C7E0C5D5481C5B153B48B375FA11":"0151518F1AF0F563517EDD5485190DF95A4BF57B5CBA4CF2A9A3F6474725A35F7AFE0A6DDEB8BEDBCD6A197E592D40188901CECD650699C9B5E456AEA5ADD19052A8":"006F3B142EA1BFFF7E2837AD44C9E4FF6D2D34C73184BBAD90026DD5E6E85317D9DF45CAD7803C6C20035B2F3FF63AFF4E1BA64D1C077577DA3F4286C58F0AEAE643":"00C1C2B305419F5A41344D7E4359933D734096F556197A9B244342B8B62F46F9373778F9DE6B6497B1EF825FF24F42F9B4A4BD7382CFC3378A540B1B7F0C1B956C2F":"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F":"0154FD3836AF92D0DCA57DD5341D3053988534FDE8318FC6AAAAB68E2E6F4339B19F2F281A7E0B22C269D93CF8794A9278880ED7DBB8D9362CAEACEE544320552251":"017705A7030290D1CEB605A9A1BB03FF9CDD521E87A696EC926C8C10C8362DF4975367101F67D1CF9BCCBF2F3D239534FA509E70AAC851AE01AAC68D62F866472660":MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, zero bytes of data +ECDSA verify invalid pub key (not on curve), zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key, one byte of data +ECDSA verify invalid pub key (not on curve), one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (a), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (b), 32 bytes of data +ECDSA verify invalid pub key (also not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (c), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=12345, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify invalid public key (d), 32 bytes of data +ECDSA verify invalid pub key (not on curve), r=1, s=12345 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY -ECDSA verify valid public key, invalid signature, 0 bytes of data +ECDSA verify valid pub key, invalid sig (r=0), 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, invalid signature, 1 byte of data +ECDSA verify valid pub key, invalid sig (r=0), 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, invalid signature, 32 bytes of data +ECDSA verify valid pub key, invalid sig (r>n-1), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 0 bytes of data +ECDSA verify valid pub key, valid/incorrect sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 1 byte of data +ECDSA verify valid pub key, valid/incorrect sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, valid/incorrect signature, 32 bytes of data +ECDSA verify valid pub key, valid/incorrect sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED -ECDSA verify valid public key, correct signature, 0 bytes of data +ECDSA verify valid public key, correct sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 -ECDSA verify valid public key, correct signature, 1 byte of data +ECDSA verify valid pub key, correct sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 -ECDSA verify valid public key, correct signature, 32 bytes of data +ECDSA verify valid pub key, correct sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 From 34ff6a7a31d088a1f47d993de3774576105b5fbe Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 19 Aug 2022 11:08:07 +0100 Subject: [PATCH 0010/1574] Correct documentation for mbedtls_ecdsa_verify Signed-off-by: Dave Rodgman --- include/mbedtls/ecdsa.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/include/mbedtls/ecdsa.h b/include/mbedtls/ecdsa.h index 71b73eee5..967f07b9b 100644 --- a/include/mbedtls/ecdsa.h +++ b/include/mbedtls/ecdsa.h @@ -245,10 +245,8 @@ int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, * This must be initialized. * * \return \c 0 on success. - * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if the signature - * is invalid. * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX - * error code on failure for any other reason. + * error code on failure. */ int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp, const unsigned char *buf, size_t blen, From 5d7a235efe9acf6b591e94aac650e0f5e22efc6c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 19 Aug 2022 11:26:32 +0100 Subject: [PATCH 0011/1574] Simplify test for ecdsa_verify Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.data | 30 +++++++++++++------------- tests/suites/test_suite_ecdsa.function | 11 +++------- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.data b/tests/suites/test_suite_ecdsa.data index f07483da1..50411e9b1 100644 --- a/tests/suites/test_suite_ecdsa.data +++ b/tests/suites/test_suite_ecdsa.data @@ -364,60 +364,60 @@ ecdsa_prim_test_vectors:MBEDTLS_ECP_DP_SECP521R1:"0065FDA3409451DCAB0A0EAD454951 ECDSA verify invalid pub key (not on curve), zero bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), one byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"00":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (also not on curve), r=1, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"12345":"1":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=12345, s=1 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"12345":"1":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify invalid pub key (not on curve), r=1, s=12345 depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":0:MBEDTLS_ERR_ECP_INVALID_KEY +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"1":"2":"1":"12345":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_INVALID_KEY ECDSA verify valid pub key, invalid sig (r=0), 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, invalid sig (r=0), 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"0":"1":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, invalid sig (r>n-1), 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141":"12":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"00":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid pub key, valid/incorrect sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":1:MBEDTLS_ERR_ECP_VERIFY_FAILED +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"84eead3fb3cdbdac882412af64cc125b6784690bebf575f1c32162ab65080037":"0000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_ECP_VERIFY_FAILED ECDSA verify valid public key, correct sig, 0 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"":0 ECDSA verify valid pub key, correct sig, 1 byte of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"00":0 ECDSA verify valid pub key, correct sig, 32 bytes of data depends_on:MBEDTLS_ECP_DP_SECP256K1_ENABLED -ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":1:0 +ecdsa_verify:MBEDTLS_ECP_DP_SECP256K1:"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798":"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8":"ed3bace23c5e17652e174c835fb72bf53ee306b3406a26890221b4cef7500f88":"c9cc1ba95156bc103055a5d7946f3a3ae7f0657d1e53f1d5c2c9782950aa69b":"0000000000000000000000000000000000000000000000000000000000000000":0 diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 50a547d39..b1a1611fb 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -468,7 +468,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int key_is_valid, int expected ) +void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int expected ) { mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; @@ -493,18 +493,13 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * TEST_EQUAL( mbedtls_test_read_mpi( &sig_s, s ), 0 ); /* Test whether public key has expected validity */ - TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), key_is_valid ? 0 : MBEDTLS_ERR_ECP_INVALID_KEY ); + TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), + expected == MBEDTLS_ERR_ECP_INVALID_KEY ? MBEDTLS_ERR_ECP_INVALID_KEY : 0 ); /* Verification */ int result = mbedtls_ecdsa_verify( &ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s ); TEST_EQUAL( result, expected ); - - if ( !key_is_valid ) { - /* Invalid public key must always fail */ - TEST_ASSERT( result != 0 ); - } - exit: mbedtls_ecdsa_free( &ctx ); mbedtls_mpi_free( &sig_r ); From 8e5bdfbbcf86e1867b5af22f5f7d23461fa54022 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Wed, 9 Sep 2015 19:03:34 +0100 Subject: [PATCH 0012/1574] Improve programs/cert_write with a way to set extended key usages Signed-off-by: Dave Rodgman --- include/mbedtls/x509_crt.h | 13 ++++++++ library/x509write_crt.c | 34 +++++++++++++++++++++ programs/x509/cert_write.c | 62 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 1ddc997c6..0a5d1f527 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -1144,6 +1144,19 @@ int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert * int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, unsigned int key_usage ); +/** + * \brief Set the Extended Key Usage Extension + * (e.g. MBEDTLS_OID_SERVER_AUTH) + * + * \param ctx CRT context to use + * \param exts extended key usage extensions to set, a sequence of + * MBEDTLS_ASN1_OID objects + * + * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED + */ +int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts ); + /** * \brief Set the Netscape Cert Type flags * (e.g. MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT | MBEDTLS_X509_NS_CERT_TYPE_EMAIL) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 986e1fe12..c48c32b23 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -296,6 +296,40 @@ int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, return( 0 ); } +int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts ) +{ + unsigned char buf[256]; + unsigned char *c = buf + sizeof(buf); + int ret; + size_t len = 0; + + if( exts == NULL ) + return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + + while( exts != NULL ) + { + if( exts->buf.tag != MBEDTLS_ASN1_OID ) + return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, exts->buf.p, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) ); + exts = exts->next; + } + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + + ret = mbedtls_x509write_crt_set_extension( ctx, + MBEDTLS_OID_EXTENDED_KEY_USAGE, + MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), + 1, c, len ); + if( ret != 0 ) + return( ret ); + + return( 0 ); +} + int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, unsigned char ns_cert_type ) { diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 793982d5a..da0a624a0 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -1,3 +1,4 @@ + /* * Certificate generation and signing * @@ -47,6 +48,7 @@ int main( void ) #include "mbedtls/x509_crt.h" #include "mbedtls/x509_csr.h" +#include "mbedtls/oid.h" #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" #include "mbedtls/md.h" @@ -56,6 +58,9 @@ int main( void ) #include #include +#define SET_OID(x, oid) \ + do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; } while( 0 ) + #if defined(MBEDTLS_X509_CSR_PARSE_C) #define USAGE_CSR \ " request_file=%%s default: (empty)\n" \ @@ -81,6 +86,7 @@ int main( void ) #define DFL_IS_CA 0 #define DFL_MAX_PATHLEN -1 #define DFL_KEY_USAGE 0 +#define DFL_EXT_KEY_USAGE 0 #define DFL_NS_CERT_TYPE 0 #define DFL_VERSION 3 #define DFL_AUTH_IDENT 1 @@ -138,6 +144,14 @@ int main( void ) " key_cert_sign\n" \ " crl_sign\n" \ " (Considered for v3 only)\n"\ + " ext_key_usage=%%s default: (empty)\n" \ + " Comma-separated-list of values:\n" \ + " serverAuth\n" \ + " clientAuth\n" \ + " codeSigning\n" \ + " emailProtection\n" \ + " timeStamping\n" \ + " OCSPSigning\n" \ " ns_cert_type=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " ssl_client\n" \ @@ -176,6 +190,7 @@ struct options int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ unsigned char key_usage; /* key usage flags */ + mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ } opt; @@ -227,6 +242,7 @@ int main( int argc, char *argv[] ) #endif mbedtls_x509write_cert crt; mbedtls_mpi serial; + mbedtls_asn1_sequence *ext_key_usage; mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; const char *pers = "crt example app"; @@ -269,6 +285,7 @@ int main( int argc, char *argv[] ) opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; opt.key_usage = DFL_KEY_USAGE; + opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; opt.version = DFL_VERSION - 1; opt.md = DFL_DIGEST; @@ -426,6 +443,35 @@ int main( int argc, char *argv[] ) q = r; } } + else if( strcmp( p, "ext_key_usage" ) == 0 ) + { + while( q != NULL ) + { + if( ( r = strchr( q, ',' ) ) != NULL ) + *r++ = '\0'; + + ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) ); + ext_key_usage->next = opt.ext_key_usage; + ext_key_usage->buf.tag = MBEDTLS_ASN1_OID; + if( strcmp( q, "serverAuth" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH ); + else if( strcmp( q, "clientAuth" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH ); + else if( strcmp( q, "codeSigning" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING ); + else if( strcmp( q, "emailProtection" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION ); + else if( strcmp( q, "timeStamping" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING ); + else if( strcmp( q, "OCSPSigning" ) == 0 ) + SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); + else + goto usage; + opt.ext_key_usage = ext_key_usage; + + q = r; + } + } else if( strcmp( p, "ns_cert_type" ) == 0 ) { while( q != NULL ) @@ -744,6 +790,22 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } + if( opt.ext_key_usage ) + { + mbedtls_printf( " . Adding the Extended Key Usage extension ..." ); + fflush( stdout ); + + ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage ); + if( ret != 0 ) + { + mbedtls_strerror( ret, buf, 1024 ); + mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", -ret, buf ); + goto exit; + } + + mbedtls_printf( " ok\n" ); + } + if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.ns_cert_type != 0 ) { From 99a96b1c2228ff21d9cd4503cfe23a877e6d01d9 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Thu, 10 Sep 2015 18:28:01 +0100 Subject: [PATCH 0013/1574] Improve programs/cert_write with a way to set the signature digest This is useful for generating SHA-1 and MD5 certificates for test purposes. I guess RSA-PSS could be added too, but I don't need that now. Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index da0a624a0..e0d88b207 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -85,6 +85,7 @@ int main( void ) #define DFL_SELFSIGN 0 #define DFL_IS_CA 0 #define DFL_MAX_PATHLEN -1 +#define DFL_SIG_ALG MBEDTLS_MD_SHA256 #define DFL_KEY_USAGE 0 #define DFL_EXT_KEY_USAGE 0 #define DFL_NS_CERT_TYPE 0 @@ -134,6 +135,7 @@ int main( void ) " basic_constraints=%%d default: 1\n" \ " Possible values: 0, 1\n" \ " (Considered for v3 only)\n"\ + " sig_alg=%%s default: SHA-256\n" \ " key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " digital_signature\n" \ @@ -189,6 +191,7 @@ struct options int basic_constraints; /* add basic constraints ext to CRT */ int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ + mbedtls_md_type_t sig_alg; /* MD to use generating signature */ unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ @@ -284,6 +287,7 @@ int main( int argc, char *argv[] ) opt.selfsign = DFL_SELFSIGN; opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; + opt.sig_alg = DFL_SIG_ALG; opt.key_usage = DFL_KEY_USAGE; opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; @@ -413,6 +417,17 @@ int main( int argc, char *argv[] ) goto usage; } } + else if( strcmp( p, "sig_alg") == 0 ) + { + if( strcmp( q, "SHA-1" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_SHA1; + else if( strcmp( q, "SHA-256" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_SHA256; + else if( strcmp( q, "MD5" ) == 0 ) + opt.sig_alg = MBEDTLS_MD_MD5; + else + goto usage; + } else if( strcmp( p, "key_usage" ) == 0 ) { while( q != NULL ) @@ -732,6 +747,8 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } + mbedtls_x509write_crt_set_md_alg( &crt, opt.sig_alg ); + #if defined(MBEDTLS_SHA1_C) if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.subject_identifier != 0 ) From ca841d32db0bbd433bca1d41c922fdcff7472d00 Mon Sep 17 00:00:00 2001 From: Nicholas Wilson Date: Fri, 13 Nov 2015 14:22:36 +0000 Subject: [PATCH 0014/1574] Add test for mbedtls_x509write_crt_set_ext_key_usage, and fix reversed order Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 14 +++--- tests/data_files/server1.key_ext_usage.crt | 20 +++++++++ tests/data_files/server1.key_ext_usages.crt | 21 +++++++++ tests/suites/test_suite_x509write.data | 50 ++++++++++++--------- tests/suites/test_suite_x509write.function | 19 ++++++++ 5 files changed, 98 insertions(+), 26 deletions(-) create mode 100644 tests/data_files/server1.key_ext_usage.crt create mode 100644 tests/data_files/server1.key_ext_usages.crt diff --git a/library/x509write_crt.c b/library/x509write_crt.c index c48c32b23..d0aaa9f1b 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -303,18 +303,22 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, unsigned char *c = buf + sizeof(buf); int ret; size_t len = 0; + const mbedtls_asn1_sequence *last_ext = 0, *ext; + /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */ if( exts == NULL ) return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - while( exts != NULL ) + /* Iterate over exts backwards, so we write them out in the requested order */ + while( last_ext != exts ) { - if( exts->buf.tag != MBEDTLS_ASN1_OID ) + for( ext = exts; ext->next != last_ext; ext = ext->next ) {} + if( ext->buf.tag != MBEDTLS_ASN1_OID ) return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, exts->buf.p, exts->buf.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, exts->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, ext->buf.p, ext->buf.len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, ext->buf.len ) ); MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) ); - exts = exts->next; + last_ext = ext; } MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); diff --git a/tests/data_files/server1.key_ext_usage.crt b/tests/data_files/server1.key_ext_usage.crt new file mode 100644 index 000000000..4e7f21482 --- /dev/null +++ b/tests/data_files/server1.key_ext_usage.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER +MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G +A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ +uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD +d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf +CrFTxjB+FTms+Vruf5KepgVb5xOXhbUjktnUJAbVCSWJdQfdphqPPwkZvq1lLGTr +lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w +bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB +o2UwYzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf +BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAWBgNVHSUBAf8EDDAKBggr +BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAloyGLaLVS/Ce+q08AkCcqn+/ymu3 +l25lMU99gW7MPccDuNoy83ZveJ654/ZEcswR0sc3T/BPShf0Hx8Ze3p0VvLjcRK8 +HME4GCRONnkuXhi784jkoxCU4N6NczcnDF8YOXdrCuosyS48dSrCpj/ouPxhFg2O +tjDkoZZqA0G0oWXn0d7nzSELLXatsUh52vsrlpu2UhnmCHjv8OOZYPa0agUUFmzm +gJ3Of7uK1w+WwBUyQbkQJvPpIT2MwMs8SBZZOZH/jluSn+4GfULAuRDbWaTj8VsN +g7WVjskm5kRQaGwi7ez4ajAJUzHQExUwt62ciFSETn6EYtw4f2EsyIgNXA== +-----END CERTIFICATE----- diff --git a/tests/data_files/server1.key_ext_usages.crt b/tests/data_files/server1.key_ext_usages.crt new file mode 100644 index 000000000..491364349 --- /dev/null +++ b/tests/data_files/server1.key_ext_usages.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYTCCAkmgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER +MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G +A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ +uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD +d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf +CrFTxjB+FTms+Vruf5KepgVb5xOXhbUjktnUJAbVCSWJdQfdphqPPwkZvq1lLGTr +lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w +bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB +o28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf +BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAgBgNVHSUBAf8EFjAUBggr +BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAAy0NlGQTgb9VSq9 +cAcetc1dQlnkMLGg9iBYSvwZ3n1AAd484zmfj062mavixlEKyiGfh8qYZDLLi4Ne +oXVuaBiz7X0XRhnj4Lsm+s4dO8rTzktvmbXE3J1ahW16hqZEj+mjbckyr5GfZZOq +aoX2DqxPwO0Glg5X879vWZQ7iUUrI38cMX869xLgBJRl1zC1KyWeeXG3QduT1LZY +sJI/OxpkA/vDP6rFDD3YjgUmQ9vpil2YD9gyb6eMVuTbChZh/7T9T4/zgkc1KIFt +LLpXRUQQDGI/7TTwoT26M7xryoj0S2RlxW/VJz5KrBRaQYyaMDmE7scePqIaFNc+ +siqNj9s= +-----END CERTIFICATE----- diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index 1844e5cf6..8411557d5 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -56,87 +56,95 @@ x509_csr_check_opaque:"data_files/server5.key":MBEDTLS_MD_SHA256:MBEDTLS_X509_KU Certificate write check Server1 SHA1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 2050, not after 2059 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" + +Certificate write check Server1 SHA1, one ext_key_usage +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"serverAuth":0:0:1:-1:"data_files/server1.key_ext_usage.crt":0:0:"data_files/test-ca.crt" + +Certificate write check Server1 SHA1, two ext_key_usages +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"codeSigning,timeStamping":0:0:1:-1:"data_files/server1.key_ext_usages.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" Certificate write check Server5 ECDSA depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" Certificate write check Server5 ECDSA, Opaque depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:0:0:1:-1:"":2:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"":2:0:"data_files/test-ca2.crt" X509 String to Names #1 mbedtls_x509_string_to_names:"C=NL,O=Offspark\, Inc., OU=PolarSSL":"C=NL, O=Offspark\, Inc., OU=PolarSSL":0 diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 9cb3dd4eb..324223252 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -238,6 +238,7 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, char *issuer_pwd, char *issuer_name, char *serial_str, char *not_before, char *not_after, int md_type, int key_usage, int set_key_usage, + char *ext_key_usage, int cert_type, int set_cert_type, int auth_ident, int ver, char *cert_check_file, int pk_wrap, int is_ca, char *cert_verify_file ) @@ -346,6 +347,24 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, TEST_ASSERT( mbedtls_x509write_crt_set_key_usage( &crt, key_usage ) == 0 ); if( set_cert_type != 0 ) TEST_ASSERT( mbedtls_x509write_crt_set_ns_cert_type( &crt, cert_type ) == 0 ); + if( strcmp( ext_key_usage, "NULL" ) != 0 ) + { + mbedtls_asn1_sequence exts[2] = { }; +#define SET_OID(x, oid) \ + do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ + x.tag = MBEDTLS_ASN1_OID; } while( 0 ) + if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) + { + SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); + } + else if( strcmp( ext_key_usage, "codeSigning,timeStamping" ) == 0 ) + { + SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); + exts[0].next = &exts[1]; + SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); + } + TEST_ASSERT( mbedtls_x509write_crt_set_ext_key_usage( &crt, exts ) == 0 ); + } } ret = mbedtls_x509write_crt_pem( &crt, buf, sizeof( buf ), From abdb0df91d841d9a2ea759a7ebb23fdfc4f491f0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 22 Jul 2022 15:45:30 +0100 Subject: [PATCH 0015/1574] Fix test fails due to changes in cert generation Test certs were originally generated with an old version of Mbed TLS that used printableString where we now use utf8string (e.g., in the organizationName). Otherwise the certs are identical. Signed-off-by: Dave Rodgman --- tests/data_files/server1.key_ext_usage.crt | 16 ++++++++-------- tests/data_files/server1.key_ext_usages.crt | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tests/data_files/server1.key_ext_usage.crt b/tests/data_files/server1.key_ext_usage.crt index 4e7f21482..bbe2c356f 100644 --- a/tests/data_files/server1.key_ext_usage.crt +++ b/tests/data_files/server1.key_ext_usage.crt @@ -1,8 +1,8 @@ -----BEGIN CERTIFICATE----- MIIDVzCCAj+gAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER -MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G -A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +A1UECgwIUG9sYXJTU0wxGjAYBgNVBAMMEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf @@ -11,10 +11,10 @@ lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB o2UwYzAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAWBgNVHSUBAf8EDDAKBggr -BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAloyGLaLVS/Ce+q08AkCcqn+/ymu3 -l25lMU99gW7MPccDuNoy83ZveJ654/ZEcswR0sc3T/BPShf0Hx8Ze3p0VvLjcRK8 -HME4GCRONnkuXhi784jkoxCU4N6NczcnDF8YOXdrCuosyS48dSrCpj/ouPxhFg2O -tjDkoZZqA0G0oWXn0d7nzSELLXatsUh52vsrlpu2UhnmCHjv8OOZYPa0agUUFmzm -gJ3Of7uK1w+WwBUyQbkQJvPpIT2MwMs8SBZZOZH/jluSn+4GfULAuRDbWaTj8VsN -g7WVjskm5kRQaGwi7ez4ajAJUzHQExUwt62ciFSETn6EYtw4f2EsyIgNXA== +BgEFBQcDATANBgkqhkiG9w0BAQUFAAOCAQEAegtCN4EObE69RjW1hKUEQ/InrIsf +poKIgJCh3sck+FYKjcsMhRPBztnZaqjvkLnmCcq0Yv7uUDThHsNuu+NbeVr4flZL +gUoSSdHXYrJ8qDYez6oGoxttoZ33sqD3LQfzWZhDoTyjGUHTiWaA6KidCsWzkhKY +aNXF7O8dHO7k06I2UWt7SKbBm1dPj8OM4285kkQ7KCpG27ABtHePkp9aG66O/ktD +GbZs0AaYpeVnB9v1vSp6xInDCWydDFbmEE0mzAQr285UU07QEpnU1W/2qZHfLxnQ +GiDpR5pxoKXkskj2VuHPZPqbIkv9v2+bjeyXHDRSL7Rj087xhD5uXKb9fw== -----END CERTIFICATE----- diff --git a/tests/data_files/server1.key_ext_usages.crt b/tests/data_files/server1.key_ext_usages.crt index 491364349..0c3d963eb 100644 --- a/tests/data_files/server1.key_ext_usages.crt +++ b/tests/data_files/server1.key_ext_usages.crt @@ -1,8 +1,8 @@ -----BEGIN CERTIFICATE----- MIIDYTCCAkmgAwIBAgIBATANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER -MA8GA1UEChMIUG9sYXJTU0wxGTAXBgNVBAMTEFBvbGFyU1NMIFRlc3QgQ0EwHhcN +MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN MTEwMjEyMTQ0NDA2WhcNMjEwMjEyMTQ0NDA2WjA8MQswCQYDVQQGEwJOTDERMA8G -A1UEChMIUG9sYXJTU0wxGjAYBgNVBAMTEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN +A1UECgwIUG9sYXJTU0wxGjAYBgNVBAMMEVBvbGFyU1NMIFNlcnZlciAxMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqQIfPUBq1VVTi/027oJlLhVhXom/ uOhFkNvuiBZS0/FDUEeWEllkh2v9K+BG+XO+3c+S4ZFb7Wagb4kpeUWA0INq1UFD d185fAkER4KwVzlw7aPsFRkeqDMIR8EFQqn9TMO0390GH00QUUBncxMPQPhtgSVf @@ -11,11 +11,11 @@ lZvc/kFeF6babFtpzAK6FCwWJJxK3M3Q91Jnc/EtoCP9fvQxyi1wyokLBNsupk9w bp7OvViJ4lNZnm5akmXiiD8MlBmj3eXonZUT7Snbq3AS3FrKaxerUoJUsQIDAQAB o28wbTAJBgNVHRMEAjAAMB0GA1UdDgQWBBQfdNY/KcF0dEU7BRIsPai9Q1kCpjAf BgNVHSMEGDAWgBS0WuSls97SUva51aaVD+s+vMf9/zAgBgNVHSUBAf8EFjAUBggr -BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAAy0NlGQTgb9VSq9 -cAcetc1dQlnkMLGg9iBYSvwZ3n1AAd484zmfj062mavixlEKyiGfh8qYZDLLi4Ne -oXVuaBiz7X0XRhnj4Lsm+s4dO8rTzktvmbXE3J1ahW16hqZEj+mjbckyr5GfZZOq -aoX2DqxPwO0Glg5X879vWZQ7iUUrI38cMX869xLgBJRl1zC1KyWeeXG3QduT1LZY -sJI/OxpkA/vDP6rFDD3YjgUmQ9vpil2YD9gyb6eMVuTbChZh/7T9T4/zgkc1KIFt -LLpXRUQQDGI/7TTwoT26M7xryoj0S2RlxW/VJz5KrBRaQYyaMDmE7scePqIaFNc+ -siqNj9s= +BgEFBQcDAwYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBADIT9M10vT5yzMSR +GaaImXjyTRIBK683Vxnq5jqAJ75KzNUC52aiCOfd9/hAMkq3Pj+r6tIsH+jsl5PL +E4iv8GVDlbjA57icTD30XbolL4YPUvZYclxVopfRhTiDa5KJ1lYkUwWAE/Glj66Q +WO7Hihl+GYXap2e7dBZ7hGHdv6J1gRfA1OW6iB23Wl4xb0Y1CGc16yJZwuFbtbwM +w8z8a0XNd2UQTYesYlIvVpVcx2atgkbZwehPWGNCLGngz60fultj7JdLuUHi+r0z +DtjbSPsHDZDAer6ZxjaA4hkcnppacFttC+deD8bQ8+2JjHF6Gb/MBnaYIbOZOBgC +8CPIBjk= -----END CERTIFICATE----- From ec9f6b4de1e50289588b9794c5e0cad89dc4d471 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 27 Jul 2022 14:34:58 +0100 Subject: [PATCH 0016/1574] Fix minor compile errors Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 2 +- tests/suites/test_suite_x509write.function | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index e0d88b207..bffc4ab86 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -816,7 +816,7 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { mbedtls_strerror( ret, buf, 1024 ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", -ret, buf ); + mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; } diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 324223252..5781fe0d8 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -349,7 +349,8 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, TEST_ASSERT( mbedtls_x509write_crt_set_ns_cert_type( &crt, cert_type ) == 0 ); if( strcmp( ext_key_usage, "NULL" ) != 0 ) { - mbedtls_asn1_sequence exts[2] = { }; + mbedtls_asn1_sequence exts[2]; + memset(exts, 0, sizeof(exts)); #define SET_OID(x, oid) \ do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ x.tag = MBEDTLS_ASN1_OID; } while( 0 ) From 5f3f0d06e6734e78390a4e58a1c5af139a13c6e1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 14:38:26 +0100 Subject: [PATCH 0017/1574] Address minor review comments Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 11 +++++------ programs/x509/cert_write.c | 3 +-- tests/suites/test_suite_x509write.function | 21 +++++++++++++-------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index d0aaa9f1b..21e36b598 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -303,7 +303,10 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, unsigned char *c = buf + sizeof(buf); int ret; size_t len = 0; - const mbedtls_asn1_sequence *last_ext = 0, *ext; + const mbedtls_asn1_sequence *last_ext = NULL; + mbedtls_asn1_sequence *ext; + + memset( buf, 0, sizeof(buf) ); /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */ if( exts == NULL ) @@ -324,14 +327,10 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); - ret = mbedtls_x509write_crt_set_extension( ctx, + return mbedtls_x509write_crt_set_extension( ctx, MBEDTLS_OID_EXTENDED_KEY_USAGE, MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), 1, c, len ); - if( ret != 0 ) - return( ret ); - - return( 0 ); } int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index bffc4ab86..dbdc4eebf 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -1,4 +1,3 @@ - /* * Certificate generation and signing * @@ -832,7 +831,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ns_cert_type " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 5781fe0d8..2e5965864 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -350,19 +350,24 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, if( strcmp( ext_key_usage, "NULL" ) != 0 ) { mbedtls_asn1_sequence exts[2]; - memset(exts, 0, sizeof(exts)); -#define SET_OID(x, oid) \ - do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; \ - x.tag = MBEDTLS_ASN1_OID; } while( 0 ) + memset( exts, 0, sizeof(exts) ); + +#define SET_OID(x, oid) \ + do { \ + x.len = MBEDTLS_OID_SIZE(oid); \ + x.p = (unsigned char*)oid; \ + x.tag = MBEDTLS_ASN1_OID; \ + } while( 0 ) + if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) { - SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); + SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); } else if( strcmp( ext_key_usage, "codeSigning,timeStamping" ) == 0 ) { - SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); - exts[0].next = &exts[1]; - SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); + SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); + exts[0].next = &exts[1]; + SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); } TEST_ASSERT( mbedtls_x509write_crt_set_ext_key_usage( &crt, exts ) == 0 ); } From e2b772d1b6849345852308bbfa9c017f0f2f32c0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 16:04:13 +0100 Subject: [PATCH 0018/1574] Fix whitespace, missing const Signed-off-by: Dave Rodgman --- library/x509write_crt.c | 2 +- tests/suites/test_suite_x509write.function | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 21e36b598..b5f7af5cf 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -304,7 +304,7 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, int ret; size_t len = 0; const mbedtls_asn1_sequence *last_ext = NULL; - mbedtls_asn1_sequence *ext; + const mbedtls_asn1_sequence *ext; memset( buf, 0, sizeof(buf) ); diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 2e5965864..8e246ec41 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -357,7 +357,8 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, x.len = MBEDTLS_OID_SIZE(oid); \ x.p = (unsigned char*)oid; \ x.tag = MBEDTLS_ASN1_OID; \ - } while( 0 ) + } \ + while( 0 ) if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) { From 2ee7bbd10a123db3b45f6e524756e1a77ce62af3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 11 Aug 2022 16:23:17 +0100 Subject: [PATCH 0019/1574] Replace some constant values with sizeof Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index dbdc4eebf..0f0703f4b 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -262,7 +262,7 @@ int main( int argc, char *argv[] ) mbedtls_x509_csr_init( &csr ); #endif mbedtls_x509_crt_init( &issuer_crt ); - memset( buf, 0, 1024 ); + memset( buf, 0, sizeof(buf) ); if( argc == 0 ) { @@ -532,7 +532,7 @@ int main( int argc, char *argv[] ) (const unsigned char *) pers, strlen( pers ) ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n", ret, buf ); goto exit; @@ -547,7 +547,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_mpi_read_string( &serial, 10, opt.serial ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_mpi_read_string " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -567,7 +567,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -577,7 +577,7 @@ int main( int argc, char *argv[] ) &issuer_crt.subject ); if( ret < 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -601,7 +601,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509_csr_parse_file( &csr, opt.request_file ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -611,7 +611,7 @@ int main( int argc, char *argv[] ) &csr.subject ); if( ret < 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -636,7 +636,7 @@ int main( int argc, char *argv[] ) opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -652,7 +652,7 @@ int main( int argc, char *argv[] ) opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " "returned -x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -687,7 +687,7 @@ int main( int argc, char *argv[] ) */ if( ( ret = mbedtls_x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject_name " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -695,7 +695,7 @@ int main( int argc, char *argv[] ) if( ( ret = mbedtls_x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_issuer_name " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -710,7 +710,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_serial( &crt, &serial ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_serial " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -719,7 +719,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_validity( &crt, opt.not_before, opt.not_after ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_validity " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -737,7 +737,7 @@ int main( int argc, char *argv[] ) opt.max_pathlen ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! x509write_crt_set_basic_contraints " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -758,7 +758,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_subject_key_identifier( &crt ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject" "_key_identifier returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); @@ -777,7 +777,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_authority_key_identifier( &crt ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_authority_" "key_identifier returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); @@ -797,7 +797,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_key_usage( &crt, opt.key_usage ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_key_usage " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; @@ -814,7 +814,7 @@ int main( int argc, char *argv[] ) ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage ); if( ret != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf ); goto exit; } @@ -849,7 +849,7 @@ int main( int argc, char *argv[] ) if( ( ret = write_certificate( &crt, opt.output_file, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror( ret, buf, sizeof(buf) ); mbedtls_printf( " failed\n ! write_certificate -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; From 18b02d35d625967d6a3ce8cc034289cc75d6b04a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 11:01:54 +0100 Subject: [PATCH 0020/1574] Remove redundant sig_alg argument Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 0f0703f4b..d1c716b8a 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -134,7 +134,6 @@ int main( void ) " basic_constraints=%%d default: 1\n" \ " Possible values: 0, 1\n" \ " (Considered for v3 only)\n"\ - " sig_alg=%%s default: SHA-256\n" \ " key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " digital_signature\n" \ @@ -190,7 +189,6 @@ struct options int basic_constraints; /* add basic constraints ext to CRT */ int version; /* CRT version */ mbedtls_md_type_t md; /* Hash used for signing */ - mbedtls_md_type_t sig_alg; /* MD to use generating signature */ unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ @@ -286,7 +284,6 @@ int main( int argc, char *argv[] ) opt.selfsign = DFL_SELFSIGN; opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; - opt.sig_alg = DFL_SIG_ALG; opt.key_usage = DFL_KEY_USAGE; opt.ext_key_usage = DFL_EXT_KEY_USAGE; opt.ns_cert_type = DFL_NS_CERT_TYPE; @@ -416,17 +413,6 @@ int main( int argc, char *argv[] ) goto usage; } } - else if( strcmp( p, "sig_alg") == 0 ) - { - if( strcmp( q, "SHA-1" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_SHA1; - else if( strcmp( q, "SHA-256" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_SHA256; - else if( strcmp( q, "MD5" ) == 0 ) - opt.sig_alg = MBEDTLS_MD_MD5; - else - goto usage; - } else if( strcmp( p, "key_usage" ) == 0 ) { while( q != NULL ) @@ -746,8 +732,6 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok\n" ); } - mbedtls_x509write_crt_set_md_alg( &crt, opt.sig_alg ); - #if defined(MBEDTLS_SHA1_C) if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && opt.subject_identifier != 0 ) From 64937856e07a7fc611bfd48ce30e8abd0e727406 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 14:12:25 +0100 Subject: [PATCH 0021/1574] Correct order of extended key usage attributes Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index d1c716b8a..2f51e19c8 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -445,13 +445,14 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "ext_key_usage" ) == 0 ) { + mbedtls_asn1_sequence **tail = &opt.ext_key_usage; + while( q != NULL ) { if( ( r = strchr( q, ',' ) ) != NULL ) *r++ = '\0'; ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) ); - ext_key_usage->next = opt.ext_key_usage; ext_key_usage->buf.tag = MBEDTLS_ASN1_OID; if( strcmp( q, "serverAuth" ) == 0 ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH ); @@ -467,7 +468,9 @@ int main( int argc, char *argv[] ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); else goto usage; - opt.ext_key_usage = ext_key_usage; + + *tail = ext_key_usage; + tail = &ext_key_usage->next; q = r; } From c5e0a8a890fbf5db7451759b64b4729b113adf11 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 15 Aug 2022 14:24:22 +0100 Subject: [PATCH 0022/1574] Add missing error message Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 2f51e19c8..0118abd20 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -467,7 +467,10 @@ int main( int argc, char *argv[] ) else if( strcmp( q, "OCSPSigning" ) == 0 ) SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); else + { + mbedtls_printf( "Invalid argument for option %s\n", p ); goto usage; + } *tail = ext_key_usage; tail = &ext_key_usage->next; From c9deb184b0bf5e72d5761d06af0db165676e0f8a Mon Sep 17 00:00:00 2001 From: Nayna Jain Date: Mon, 16 Nov 2020 19:03:12 +0000 Subject: [PATCH 0023/1574] mbedtls: add support for pkcs7 PKCS7 signing format is used by OpenPOWER Key Management, which is using mbedtls as its crypto library. This patch adds the limited support of pkcs7 parser and verification to the mbedtls. The limitations are: * Only signed data is supported. * CRLs are not currently handled. * Single signer is supported. Signed-off-by: Daniel Axtens Signed-off-by: Eric Richter Signed-off-by: Nayna Jain --- include/mbedtls/asn1.h | 3 +- include/mbedtls/check_config.h | 7 + include/mbedtls/error.h | 1 + include/mbedtls/mbedtls_config.h | 15 + include/mbedtls/oid.h | 11 + include/mbedtls/pkcs7.h | 224 ++++++++++ library/Makefile | 1 + library/pkcs7.c | 561 +++++++++++++++++++++++++ scripts/config.py | 1 + tests/data_files/Makefile | 92 ++++ tests/suites/test_suite_pkcs7.data | 53 +++ tests/suites/test_suite_pkcs7.function | 420 ++++++++++++++++++ 12 files changed, 1388 insertions(+), 1 deletion(-) create mode 100644 include/mbedtls/pkcs7.h create mode 100644 library/pkcs7.c create mode 100644 tests/suites/test_suite_pkcs7.data create mode 100644 tests/suites/test_suite_pkcs7.function diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index be2cae7b5..21ade1bdb 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -38,8 +38,9 @@ /** * \name ASN1 Error codes - * These error codes are OR'ed to X509 error codes for + * These error codes are combined with other error codes for * higher error granularity. + * e.g. X.509 and PKCS #7 error codes * ASN1 is a standard to specify data structures. * \{ */ diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index b5d2c40f2..dcb6392f1 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -989,6 +989,13 @@ #error "MBEDTLS_SSL_TRUNCATED_HMAC was removed in Mbed TLS 3.0. See https://github.com/Mbed-TLS/mbedtls/issues/4341" #endif +#if defined(MBEDTLS_PKCS7_C) && ( ( !defined(MBEDTLS_ASN1_PARSE_C) ) || \ + ( !defined(MBEDTLS_OID_C) ) || ( !defined(MBEDTLS_PK_PARSE_C) ) || \ + ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) ||\ + ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || ( !defined(MBEDTLS_BIGNUM_C) ) ) +#error "MBEDTLS_PKCS7_C is defined, but not all prerequisites" +#endif + /* * Avoid warning from -pedantic. This is a convenient place for this * workaround since this is included by every single file before the diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 8b2b9ea58..08504329b 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -95,6 +95,7 @@ * ECP 4 10 (Started from top) * MD 5 5 * HKDF 5 1 (Started from top) + * PKCS7 5 12 (Started from 0x5300) * SSL 5 2 (Started from 0x5F00) * CIPHER 6 8 (Started from 0x6080) * SSL 6 22 (Started from top, plus 0x6000) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index e9487b28f..45dd2748c 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2660,6 +2660,21 @@ */ #define MBEDTLS_PKCS5_C +/** + * \def MBEDTLS_PKCS7_C + * + * Enable PKCS7 core for using PKCS7 formatted signatures. + * RFC Link - https://tools.ietf.org/html/rfc2315 + * + * Module: library/pkcs7.c + * + * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C, + * MBEDTLS_X509_CRT_PARSE_C MBEDTLS_X509_CRL_PARSE_C, MBEDTLS_BIGNUM_C + * + * This module is required for the PKCS7 parsing modules. + */ +#define MBEDTLS_PKCS7_C + /** * \def MBEDTLS_PKCS12_C * diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index 4ee3f93fb..e5c4b9249 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -220,6 +220,7 @@ #define MBEDTLS_OID_PKCS MBEDTLS_OID_RSA_COMPANY "\x01" /**< pkcs OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) 1 } */ #define MBEDTLS_OID_PKCS1 MBEDTLS_OID_PKCS "\x01" /**< pkcs-1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 1 } */ #define MBEDTLS_OID_PKCS5 MBEDTLS_OID_PKCS "\x05" /**< pkcs-5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 5 } */ +#define MBEDTLS_OID_PKCS7 MBEDTLS_OID_PKCS "\x07" /**< pkcs-7 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 7 } */ #define MBEDTLS_OID_PKCS9 MBEDTLS_OID_PKCS "\x09" /**< pkcs-9 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 9 } */ #define MBEDTLS_OID_PKCS12 MBEDTLS_OID_PKCS "\x0c" /**< pkcs-12 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) 12 } */ @@ -300,6 +301,16 @@ #define MBEDTLS_OID_PKCS5_PBE_SHA1_DES_CBC MBEDTLS_OID_PKCS5 "\x0a" /**< pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10} */ #define MBEDTLS_OID_PKCS5_PBE_SHA1_RC2_CBC MBEDTLS_OID_PKCS5 "\x0b" /**< pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11} */ +/* + * PKCS#7 OIDs + */ +#define MBEDTLS_OID_PKCS7_DATA MBEDTLS_OID_PKCS7 "\x01" /**< Content type is Data OBJECT IDENTIFIER ::= {pkcs-7 1} */ +#define MBEDTLS_OID_PKCS7_SIGNED_DATA MBEDTLS_OID_PKCS7 "\x02" /**< Content type is Signed Data OBJECT IDENTIFIER ::= {pkcs-7 2} */ +#define MBEDTLS_OID_PKCS7_ENVELOPED_DATA MBEDTLS_OID_PKCS7 "\x03" /**< Content type is Enveloped Data OBJECT IDENTIFIER ::= {pkcs-7 3} */ +#define MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA MBEDTLS_OID_PKCS7 "\x04" /**< Content type is Signed and Enveloped Data OBJECT IDENTIFIER ::= {pkcs-7 4} */ +#define MBEDTLS_OID_PKCS7_DIGESTED_DATA MBEDTLS_OID_PKCS7 "\x05" /**< Content type is Digested Data OBJECT IDENTIFIER ::= {pkcs-7 5} */ +#define MBEDTLS_OID_PKCS7_ENCRYPTED_DATA MBEDTLS_OID_PKCS7 "\x06" /**< Content type is Encrypted Data OBJECT IDENTIFIER ::= {pkcs-7 6} */ + /* * PKCS#8 OIDs */ diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h new file mode 100644 index 000000000..3f87dc3e2 --- /dev/null +++ b/include/mbedtls/pkcs7.h @@ -0,0 +1,224 @@ +/** + * \file pkcs7.h + * + * \brief PKCS7 generic defines and structures + * https://tools.ietf.org/html/rfc2315 + */ +/* + * Copyright (C) 2019, IBM Corp, All Rights Reserved + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * This file is part of mbed TLS (https://tls.mbed.org) + */ + +/** + * Note: For the time being, this application of the PKCS7 cryptographic + * message syntax is a partial implementation of RFC 2315. + * Differences include: + * - The RFC specifies 6 different content types. The only type currently + * supported in MbedTLS is the signed data content type. + * - The only supported PKCS7 Signed Data syntax version is version 1 + * - The RFC specifies support for BER. This application is limited to + * DER only. + * - The RFC specifies that multiple digest algorithms can be specified + * in the Signed Data type. Only one digest algorithm is supported in MbedTLS. + * - The RFC specifies the Signed Data certificate format can be + * X509 or PKCS6. The only type currently supported in MbedTLS is X509. + * - The RFC specifies the Signed Data type can contain + * certificate-revocation lists (crls). This application has no support + * for crls so it is assumed to be an empty list. + * - The RFC specifies support for multiple signers. This application only + * supports the Signed Data type with a single signer. + */ + +#ifndef MBEDTLS_PKCS7_H +#define MBEDTLS_PKCS7_H + +#include "mbedtls/build_info.h" + +#include "asn1.h" +#include "x509.h" +#include "x509_crt.h" + +/** + * \name PKCS7 Module Error codes + * \{ + */ +#define MBEDTLS_ERR_PKCS7_INVALID_FORMAT -0x5300 /**< The format is invalid, e.g. different type expected. */ +#define MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE -0x53F0 /**< Unavailable feature, e.g. anything other than signed data. */ +#define MBEDTLS_ERR_PKCS7_INVALID_VERSION -0x5400 /**< The PKCS7 version element is invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO -0x54F0 /**< The PKCS7 content info invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_ALG -0x5500 /**< The algorithm tag or value is invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_CERT -0x55F0 /**< The certificate tag or value is invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE -0x5600 /**< Error parsing the signature */ +#define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO -0x56F0 /**< Error parsing the signer's info */ +#define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA -0x5700 /**< Input invalid. */ +#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x57F0 /**< Allocation of memory failed. */ +#define MBEDTLS_ERR_PKCS7_VERIFY_FAIL -0x5800 /**< Verification Failed */ +/* \} name */ + +/** + * \name PKCS7 Supported Version + * \{ + */ +#define MBEDTLS_PKCS7_SUPPORTED_VERSION 0x01 +/* \} name */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Type-length-value structure that allows for ASN1 using DER. + */ +typedef mbedtls_asn1_buf mbedtls_pkcs7_buf; + +/** + * Container for ASN1 named information objects. + * It allows for Relative Distinguished Names (e.g. cn=localhost,ou=code,etc.). + */ +typedef mbedtls_asn1_named_data mbedtls_pkcs7_name; + +/** + * Container for a sequence of ASN.1 items + */ +typedef mbedtls_asn1_sequence mbedtls_pkcs7_sequence; + +/** + * Structure holding PKCS7 signer info + */ +typedef struct mbedtls_pkcs7_signer_info +{ + int version; + mbedtls_x509_buf serial; + mbedtls_x509_name issuer; + mbedtls_x509_buf issuer_raw; + mbedtls_x509_buf alg_identifier; + mbedtls_x509_buf sig_alg_identifier; + mbedtls_x509_buf sig; + struct mbedtls_pkcs7_signer_info *next; +} +mbedtls_pkcs7_signer_info; + +/** + * Structure holding attached data as part of PKCS7 signed data format + */ +typedef struct mbedtls_pkcs7_data +{ + mbedtls_pkcs7_buf oid; + mbedtls_pkcs7_buf data; +} +mbedtls_pkcs7_data; + +/** + * Structure holding the signed data section + */ +typedef struct mbedtls_pkcs7_signed_data +{ + int version; + mbedtls_pkcs7_buf digest_alg_identifiers; + struct mbedtls_pkcs7_data content; + int no_of_certs; + mbedtls_x509_crt certs; + int no_of_crls; + mbedtls_x509_crl crl; + int no_of_signers; + mbedtls_pkcs7_signer_info signers; +} +mbedtls_pkcs7_signed_data; + +/** + * Structure holding PKCS7 structure, only signed data for now + */ +typedef struct mbedtls_pkcs7 +{ + mbedtls_pkcs7_buf raw; + mbedtls_pkcs7_buf content_type_oid; + mbedtls_pkcs7_signed_data signed_data; +} +mbedtls_pkcs7; + +/** + * \brief Initialize pkcs7 structure. + * + * \param pkcs7 pkcs7 structure. + */ +void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ); + +/** + * \brief Parse a single DER formatted pkcs7 content. + * + * \param pkcs7 The pkcs7 structure to be filled by parser for the output. + * \param buf The buffer holding the DER encoded pkcs7. + * \param buflen The size in Bytes of \p buf. + * + * \note This function makes an internal copy of the PKCS7 buffer + * \p buf. In particular, \p buf may be destroyed or reused + * after this call returns. + * + * \return \c 0, if successful. + * \return A negative error code on failure. + */ +int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, + const size_t buflen ); + +/** + * \brief Verification of PKCS7 signature. + * + * \param pkcs7 PKCS7 structure containing signature. + * \param cert Certificate containing key to verify signature. + * \param data Plain data on which signature has to be verified. + * \param datalen Length of the data. + * + * \note This function internally calculates the hash on the supplied + * plain data for signature verification. + * + * \return A negative error code on failure. + */ +int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen ); + +/** + * \brief Verification of PKCS7 signature. + * + * \param pkcs7 PKCS7 structure containing signature. + * \param cert Certificate containing key to verify signature. + * \param hash Hash of the plain data on which signature has to be verified. + * \param hashlen Length of the hash. + * + * \note This function is different from mbedtls_pkcs7_signed_data_verify() + * in a way that it directly recieves the hash of the data. + * + * \return A negative error code on failure. + */ +int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *hash, size_t hashlen); + +/** + * \brief Unallocate all PKCS7 data and zeroize the memory. + * It doesn't free pkcs7 itself. It should be done by the caller. + * + * \param pkcs7 PKCS7 structure to free. + */ +void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ); + +#ifdef __cplusplus +} +#endif + +#endif /* pkcs7.h */ diff --git a/library/Makefile b/library/Makefile index 85cea6b08..a78026706 100644 --- a/library/Makefile +++ b/library/Makefile @@ -165,6 +165,7 @@ OBJS_X509= \ x509_csr.o \ x509write_crt.o \ x509write_csr.o \ + pkcs7.o \ # This line is intentionally left blank OBJS_TLS= \ diff --git a/library/pkcs7.c b/library/pkcs7.c new file mode 100644 index 000000000..c3236e188 --- /dev/null +++ b/library/pkcs7.c @@ -0,0 +1,561 @@ +/* Copyright 2019 IBM Corp. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "common.h" + +#include "mbedtls/build_info.h" +#if defined(MBEDTLS_PKCS7_C) +#include "mbedtls/pkcs7.h" +#include "mbedtls/x509.h" +#include "mbedtls/asn1.h" +#include "mbedtls/x509_crt.h" +#include "mbedtls/x509_crl.h" +#include "mbedtls/oid.h" + +#include +#include +#include +#if defined(MBEDTLS_FS_IO) +#include +#include +#endif + +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#include "mbedtls/platform_util.h" +#else +#include +#include +#define mbedtls_free free +#define mbedtls_calloc calloc +#define mbedtls_printf printf +#define mbedtls_snprintf snprintf +#endif + +#if defined(MBEDTLS_HAVE_TIME) +#include "mbedtls/platform_time.h" +#endif +#if defined(MBEDTLS_HAVE_TIME_DATE) +#include +#endif + +/** + * Initializes the pkcs7 structure. + */ +void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ) +{ + memset( pkcs7, 0, sizeof( mbedtls_pkcs7 ) ); + pkcs7->raw.p = NULL; +} + +static int pkcs7_get_next_content_len( unsigned char **p, unsigned char *end, + size_t *len ) +{ + int ret; + + if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) + { + return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + } + + return( 0 ); +} + +/** + * version Version + * Version ::= INTEGER + **/ +static int pkcs7_get_version( unsigned char **p, unsigned char *end, int *ver ) +{ + int ret; + + if( ( ret = mbedtls_asn1_get_int( p, end, ver ) ) != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_VERSION + ret ); + + /* If version != 1, return invalid version */ + if( *ver != MBEDTLS_PKCS7_SUPPORTED_VERSION ) + return( MBEDTLS_ERR_PKCS7_INVALID_VERSION ); + + return( 0 ); +} + +/** + * ContentInfo ::= SEQUENCE { + * contentType ContentType, + * content + * [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL } + **/ +static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, + mbedtls_pkcs7_buf *pkcs7 ) +{ + size_t len = 0; + int ret; + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + + pkcs7->tag = MBEDTLS_ASN1_OID; + pkcs7->len = len; + pkcs7->p = *p; + + return( ret ); +} + +/** + * DigestAlgorithmIdentifier ::= AlgorithmIdentifier + * + * This is from x509.h + **/ +static int pkcs7_get_digest_algorithm( unsigned char **p, unsigned char *end, + mbedtls_x509_buf *alg ) +{ + int ret; + + if( ( ret = mbedtls_asn1_get_alg_null( p, end, alg ) ) != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); + + return( 0 ); +} + +/** + * DigestAlgorithmIdentifiers :: SET of DigestAlgorithmIdentifier + **/ +static int pkcs7_get_digest_algorithm_set( unsigned char **p, + unsigned char *end, + mbedtls_x509_buf *alg ) +{ + size_t len = 0; + int ret; + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SET ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_ALG + ret ); + + end = *p + len; + + /** For now, it assumes there is only one digest algorithm specified **/ + ret = mbedtls_asn1_get_alg_null( p, end, alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_ALG + ret ); + + if ( *p != end ) + return ( MBEDTLS_ERR_PKCS7_INVALID_FORMAT ); + + return( 0 ); +} + +/** + * certificates :: SET OF ExtendedCertificateOrCertificate, + * ExtendedCertificateOrCertificate ::= CHOICE { + * certificate Certificate -- x509, + * extendedCertificate[0] IMPLICIT ExtendedCertificate } + * Return number of certificates added to the signed data, + * 0 or higher is valid. + * Return negative error code for failure. + **/ +static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, + mbedtls_x509_crt *certs ) +{ + int ret; + size_t len1 = 0; + size_t len2 = 0; + unsigned char *end_set, *end_cert; + unsigned char *start = *p; + + if( ( ret = mbedtls_asn1_get_tag( p, end, &len1, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) + { + if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) + return( 0 ); + + return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + } + start = *p; + end_set = *p + len1; + + ret = mbedtls_asn1_get_tag( p, end_set, &len2, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_CERT + ret ); + + end_cert = *p + len2; + + /* + * This is to verify that there is only one signer certificate. It seems it is + * not easy to differentiate between the chain vs different signer's certificate. + * So, we support only the root certificate and the single signer. + * The behaviour would be improved with addition of multiple signer support. + */ + if (end_cert != end_set) + return ( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + + *p = start; + if( ( ret = mbedtls_x509_crt_parse( certs, *p, len1 ) ) < 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + + *p = *p + len1; + + /* Since in this version we strictly support single certificate, and reaching + * here implies we have parsed successfully, we return 1. */ + + return( 1 ); +} + +/** + * EncryptedDigest ::= OCTET STRING + **/ +static int pkcs7_get_signature( unsigned char **p, unsigned char *end, + mbedtls_pkcs7_buf *signature ) +{ + int ret; + size_t len = 0; + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OCTET_STRING ); + if( ret != 0 ) + return( ret ); + + signature->tag = MBEDTLS_ASN1_OCTET_STRING; + signature->len = len; + signature->p = *p; + + *p = *p + len; + + return( 0 ); +} + +/** + * SignerInfos ::= SET of SignerInfo + * SignerInfo ::= SEQUENCE { + * version Version; + * issuerAndSerialNumber IssuerAndSerialNumber, + * digestAlgorithm DigestAlgorithmIdentifier, + * authenticatedAttributes + * [0] IMPLICIT Attributes OPTIONAL, + * digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier, + * encryptedDigest EncryptedDigest, + * unauthenticatedAttributes + * [1] IMPLICIT Attributes OPTIONAL, + * Return number of signers added to the signed data, + * 0 or higher is valid. + * Return negative error code for failure. + **/ +static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, + mbedtls_pkcs7_signer_info *signers_set ) +{ + unsigned char *end_set, *end_set_signer; + int ret; + size_t len = 0; + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SET ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + end_set = *p + len; + + ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + end_set_signer = *p + len; + if (end_set_signer != end_set) + return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + end_set = end_set_signer; + + ret = mbedtls_asn1_get_int( p, end_set, &signers_set->version ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + /* Parsing IssuerAndSerialNumber */ + signers_set->issuer_raw.p = *p; + + ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + ret = mbedtls_x509_get_name( p, *p + len, &signers_set->issuer ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + signers_set->issuer_raw.len = *p - signers_set->issuer_raw.p; + + ret = mbedtls_x509_get_serial( p, end_set, &signers_set->serial ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_digest_algorithm( p, end_set, &signers_set->alg_identifier ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_digest_algorithm( p, end_set, &signers_set->sig_alg_identifier ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_signature( p, end_set, &signers_set->sig ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + signers_set->next = NULL; + + if (*p != end_set) + return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + /* Since in this version we strictly support single signer, and reaching + * here implies we have parsed successfully, we return 1. */ + + return( 1 ); +} + +/** + * SignedData ::= SEQUENCE { + * version Version, + * digestAlgorithms DigestAlgorithmIdentifiers, + * contentInfo ContentInfo, + * certificates + * [0] IMPLICIT ExtendedCertificatesAndCertificates + * OPTIONAL, + * crls + * [0] IMPLICIT CertificateRevocationLists OPTIONAL, + * signerInfos SignerInfos } + */ +static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, + mbedtls_pkcs7_signed_data *signed_data ) +{ + unsigned char *p = buf; + unsigned char *end = buf + buflen; + unsigned char *end_set; + size_t len = 0; + int ret; + mbedtls_md_type_t md_alg; + + ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + + end_set = p + len; + + /* Get version of signed data */ + ret = pkcs7_get_version( &p, end_set, &signed_data->version ); + if( ret != 0 ) + return( ret ); + + /* Get digest algorithm */ + ret = pkcs7_get_digest_algorithm_set( &p, end_set, + &signed_data->digest_alg_identifiers ); + if( ret != 0 ) + return( ret ); + + ret = mbedtls_oid_get_md_alg( &signed_data->digest_alg_identifiers, &md_alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); + + /* Do not expect any content */ + ret = pkcs7_get_content_info_type( &p, end_set, &signed_data->content.oid ); + if( ret != 0 ) + return( ret ); + + if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &signed_data->content.oid ) ) + { + return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO ) ; + } + + p = p + signed_data->content.oid.len; + + /* Look for certificates, there may or may not be any */ + mbedtls_x509_crt_init( &signed_data->certs ); + ret = pkcs7_get_certificates( &p, end_set, &signed_data->certs ); + if( ret < 0 ) + return( ret ) ; + + signed_data->no_of_certs = ret; + + /* + * Currently CRLs are not supported. If CRL exist, the parsing will fail + * at next step of getting signers info and return error as invalid + * signer info. + */ + + signed_data->no_of_crls = 0; + + /* Get signers info */ + ret = pkcs7_get_signers_info_set( &p, end_set, &signed_data->signers ); + if( ret < 0 ) + return( ret ); + + signed_data->no_of_signers = ret; + + /* Support single signer */ + if ( p != end ) + ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; + + ret = 0; + return( ret ); +} + +int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, + const size_t buflen ) +{ + unsigned char *start; + unsigned char *end; + size_t len = 0; + int ret; + + if( !pkcs7 ) + return( MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA ); + + /* make an internal copy of the buffer for parsing */ + pkcs7->raw.p = start = mbedtls_calloc( 1, buflen ); + if( pkcs7->raw.p == NULL ) + { + return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + } + memcpy( start, buf, buflen ); + pkcs7->raw.len = buflen; + end = start + buflen; + + ret = pkcs7_get_content_info_type( &start, end, &pkcs7->content_type_oid ); + if( ret != 0 ) + goto out; + + if( ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &pkcs7->content_type_oid ) + || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid ) + || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENVELOPED_DATA, &pkcs7->content_type_oid ) + || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA, &pkcs7->content_type_oid ) + || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DIGESTED_DATA, &pkcs7->content_type_oid ) + || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid ) ) + { + ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; + goto out; + } + + if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_SIGNED_DATA, &pkcs7->content_type_oid ) ) + { + ret = MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA; + goto out; + } + + start = start + pkcs7->content_type_oid.len; + + ret = pkcs7_get_next_content_len( &start, end, &len ); + if( ret != 0 ) + goto out; + + ret = pkcs7_get_signed_data( start, len, &pkcs7->signed_data ); + +out: + if ( ret != 0 ) + mbedtls_pkcs7_free( pkcs7 ); + return( ret ); +} + +int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen ) +{ + + int ret; + unsigned char *hash; + mbedtls_pk_context pk_cxt = cert->pk; + const mbedtls_md_info_t *md_info; + mbedtls_md_type_t md_alg; + + ret = mbedtls_oid_get_md_alg( &pkcs7->signed_data.digest_alg_identifiers, &md_alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + + md_info = mbedtls_md_info_from_type( md_alg ); + + hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); + if( hash == NULL ) { + return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + } + + mbedtls_md( md_info, data, datalen, hash ); + + ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, 0, + pkcs7->signed_data.signers.sig.p, + pkcs7->signed_data.signers.sig.len ); + + mbedtls_free( hash ); + + return( ret ); +} + +int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *hash, size_t hashlen) +{ + int ret; + mbedtls_md_type_t md_alg; + mbedtls_pk_context pk_cxt; + + ret = mbedtls_oid_get_md_alg( &pkcs7->signed_data.digest_alg_identifiers, &md_alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + + pk_cxt = cert->pk; + ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, hashlen, + pkcs7->signed_data.signers.sig.p, + pkcs7->signed_data.signers.sig.len ); + + return ( ret ); +} + +/* + * Unallocate all pkcs7 data + */ +void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ) +{ + mbedtls_x509_name *name_cur; + mbedtls_x509_name *name_prv; + + if( pkcs7 == NULL || pkcs7->raw.p == NULL ) + return; + + mbedtls_free( pkcs7->raw.p ); + + mbedtls_x509_crt_free( &pkcs7->signed_data.certs ); + mbedtls_x509_crl_free( &pkcs7->signed_data.crl ); + + name_cur = pkcs7->signed_data.signers.issuer.next; + while( name_cur != NULL ) + { + name_prv = name_cur; + name_cur = name_cur->next; + mbedtls_free( name_prv ); + } + + pkcs7->raw.p = NULL; +} + +#endif diff --git a/scripts/config.py b/scripts/config.py index f045f98f9..1e0f8270c 100755 --- a/scripts/config.py +++ b/scripts/config.py @@ -306,6 +306,7 @@ def include_in_crypto(name): if name in [ 'MBEDTLS_DEBUG_C', # part of libmbedtls 'MBEDTLS_NET_C', # part of libmbedtls + 'MBEDTLS_PKCS7_C', # part of libmbedx509 ]: return False return True diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 6187d17bc..288b01f18 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -1131,6 +1131,98 @@ ecdsa_secp521r1.crt: ecdsa_secp521r1.csr all_final += ecdsa_secp521r1.crt ecdsa_secp521r1.key tls13_certs: ecdsa_secp521r1.crt ecdsa_secp521r1.key +# PKCS7 test data +pkcs7_test_cert_1 = pkcs7-rsa-sha256-1.crt +pkcs7_test_cert_2 = pkcs7-rsa-sha256-2.crt +pkcs7_test_file = pkcs7_data.txt + +# Generate signing cert +pkcs7-rsa-sha256-1.crt: + $(OPENSSL) req -x509 -subj="/C=NL/O=PKCS7/CN=PKCS7 Cert 1" -sha256 -nodes -days 365 -newkey rsa:2048 -keyout pkcs7-rsa-sha256-1.key -out pkcs7-rsa-sha256-1.crt + cat pkcs7-rsa-sha256-1.crt pkcs7-rsa-sha256-1.key > pkcs7-rsa-sha256-1.pem +all_final += pkcs7-rsa-sha256-1.crt + +pkcs7-rsa-sha256-2.crt: + $(OPENSSL) req -x509 -subj="/C=NL/O=PKCS7/CN=PKCS7 Cert 2" -sha256 -nodes -days 365 -newkey rsa:2048 -keyout pkcs7-rsa-sha256-2.key -out pkcs7-rsa-sha256-2.crt + cat pkcs7-rsa-sha256-2.crt pkcs7-rsa-sha256-2.key > pkcs7-rsa-sha256-2.pem +all_final += pkcs7-rsa-sha256-2.crt + +# Generate data file to be signed +pkcs7_data.txt: + echo "Hello" > $@ + echo 2 >> pkcs7_data_1.txt +all_final += pkcs7_data.txt + +# Generate another data file to check hash mismatch during certificate verification +pkcs7_data_1.txt: $(pkcs7_test_file) + cat $(pkcs7_test_file) > $@ + echo 2 >> $@ +all_final += pkcs7_data_1.txt + +# pkcs7 signature file with CERT +pkcs7_data_cert_signed_sha256.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ +all_final += pkcs7_data_cert_signed_sha256.der + +# pkcs7 signature file with CERT and sha1 +pkcs7_data_cert_signed_sha1.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha1 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ +all_final += pkcs7_data_cert_signed_sha1.der + +# pkcs7 signature file with CERT and sha512 +pkcs7_data_cert_signed_sha512.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha512 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ +all_final += pkcs7_data_cert_signed_sha512.der + +# pkcs7 signature file without CERT +pkcs7_data_without_cert_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -nocerts -noattr -outform DER -out $@ +all_final += pkcs7_data_without_cert_signed.der + +# pkcs7 signature file with multiple signers +pkcs7_data_multiple_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) $(pkcs7_test_cert_2) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -nocerts -noattr -outform DER -out $@ +all_final += pkcs7_data_multiple_signed.der + +# pkcs7 signature file with multiple certificates +pkcs7_data_multiple_certs_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) $(pkcs7_test_cert_2) + $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -noattr -outform DER -out $@ +all_final += pkcs7_data_multiple_certs_signed.der + +# pkcs7 signature file with corrupted CERT +pkcs7_data_signed_badcert.der: pkcs7_data_cert_signed_sha256.der + cp pkcs7_data_cert_signed_sha256.der $@ + echo -en '\xa1' | dd of=$@ bs=1 seek=547 conv=notrunc +all_final += pkcs7_data_signed_badcert.der + +# pkcs7 signature file with corrupted signer info +pkcs7_data_signed_badsigner.der: pkcs7_data_cert_signed_sha256.der + cp pkcs7_data_cert_signed_sha256.der $@ + echo -en '\xa1' | dd of=$@ bs=1 seek=918 conv=notrunc +all_final += pkcs7_data_signed_badsigner.der + +# pkcs7 file with version 2 +pkcs7_data_cert_signed_v2.der: pkcs7_data_cert_signed_sha256.der + cp pkcs7_data_cert_signed_sha256.der $@ + echo -en '\x02' | dd of=$@ bs=1 seek=25 conv=notrunc +all_final += pkcs7_data_cert_signed_v2.der + +pkcs7_data_cert_encrypted.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) + $(OPENSSL) smime -encrypt -aes256 -in pkcs7_data.txt -binary -outform DER -out $@ pkcs7-rsa-sha256-1.crt +all_final += pkcs7_data_cert_encrypted.der + +## Negative tests +# For some interesting sizes, what happens if we make them off-by-one? +pkcs7_signerInfo_issuer_invalid_size.der: pkcs7_data_cert_signed_sha256.der + cp $< $@ + echo -en '\x35' | dd of=$@ seek=919 bs=1 conv=notrunc +all_final += pkcs7_signerInfo_issuer_invalid_size.der + +pkcs7_signerInfo_serial_invalid_size.der: pkcs7_data_cert_signed_sha256.der + cp $< $@ + echo -en '\x15' | dd of=$@ seek=973 bs=1 conv=notrunc +all_final += pkcs7_signerInfo_serial_invalid_size.der + ################################################################ #### Diffie-Hellman parameters ################################################################ diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data new file mode 100644 index 000000000..870e83bb8 --- /dev/null +++ b/tests/suites/test_suite_pkcs7.data @@ -0,0 +1,53 @@ +PKCS7 Signed Data Parse Pass SHA256 #1 +pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha256.der" + +PKCS7 Signed Data Parse Pass SHA1 #2 +depends_on:MBEDTLS_SHA1_C +pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha1.der" + +PKCS7 Signed Data Parse Pass Without CERT #3 +pkcs7_parse_without_cert:"data_files/pkcs7_data_without_cert_signed.der" + +PKCS7 Signed Data Parse Fail with multiple signers #4 +pkcs7_parse_multiple_signers:"data_files/pkcs7_data_multiple_signed.der" + +PKCS7 Signed Data Parse Fail with multiple certs #4 +pkcs7_parse_multiple_signers:"data_files/pkcs7_data_multiple_certs_signed.der" + +PKCS7 Signed Data Parse Fail with corrupted cert #5 +pkcs7_parse_corrupted_cert:"data_files/pkcs7_data_signed_badcert.der" + +PKCS7 Signed Data Parse Fail with corrupted signer info #6 +pkcs7_parse_corrupted_signer_info:"data_files/pkcs7_data_signed_badsigner.der" + +PKCS7 Signed Data Parse Fail Version other than 1 #7 +pkcs7_parse_version:"data_files/pkcs7_data_cert_signed_v2.der" + +PKCS7 Signed Data Parse Fail Encrypted Content #8 +pkcs7_parse_content_oid:"data_files/pkcs7_data_cert_encrypted.der" + +PKCS7 Signed Data Verification Pass SHA256 #9 +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" + +PKCS7 Signed Data Verification Pass SHA256 #9.1 +pkcs7_verify_hash:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" + +PKCS7 Signed Data Verification Pass SHA1 #10 +depends_on:MBEDTLS_SHA1_C +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha1.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" + +PKCS7 Signed Data Verification Pass SHA512 #11 +depends_on:MBEDTLS_SHA512_C +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha512.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" + +PKCS7 Signed Data Verification Fail because of different certificate #12 +pkcs7_verify_badcert:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.txt" + +PKCS7 Signed Data Verification Fail because of different data hash #13 +pkcs7_verify_tampered_data:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data_1.txt" + +PKCS7 Signed Data Parse Failure Corrupt signerInfo.issuer #15.1 +pkcs7_parse_failure:"data_files/pkcs7_signerInfo_issuer_invalid_size.der" + +PKCS7 Signed Data Parse Failure Corrupt signerInfo.serial #15.2 +pkcs7_parse_failure:"data_files/pkcs7_signerInfo_serial_invalid_size.der" diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function new file mode 100644 index 000000000..b5ef2ef36 --- /dev/null +++ b/tests/suites/test_suite_pkcs7.function @@ -0,0 +1,420 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/pkcs7.h" +#include "mbedtls/x509.h" +#include "mbedtls/x509_crt.h" +#include "mbedtls/x509_crl.h" +#include "mbedtls/oid.h" +#include "sys/types.h" +#include "sys/stat.h" +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_PKCS7_C:MBEDTLS_FS_IO + * END_DEPENDENCIES + */ + +/* BEGIN_CASE depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_parse( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C*/ +void pkcs7_parse_without_cert( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_parse_multiple_signers( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res < 0 ); + + switch ( res ){ + case MBEDTLS_ERR_PKCS7_INVALID_CERT: + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); + break; + + case MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO: + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + break; + default: + TEST_ASSERT(0); + } + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_parse_corrupted_cert( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_parse_corrupted_signer_info( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res < 0 ); + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ +void pkcs7_parse_version( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_VERSION ); + +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ +void pkcs7_parse_content_oid( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res != 0 ); + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + struct stat st; + size_t datalen; + int res; + FILE *file; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509; + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509 ); + + res = mbedtls_x509_crt_parse_file( &x509, crt ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + mbedtls_free( pkcs7_buf ); + + res = stat(filetobesigned, &st); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "rb" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = mbedtls_calloc( datalen, 1 ); + buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen); + + fclose(file); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_x509_crt_free( &x509 ); + mbedtls_free( data ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + unsigned char hash[32]; + struct stat st; + size_t datalen; + int res; + FILE *file; + const mbedtls_md_info_t *md_info; + mbedtls_md_type_t md_alg; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509; + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509 ); + + res = mbedtls_x509_crt_parse_file( &x509, crt ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + + res = stat(filetobesigned, &st); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "rb" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = mbedtls_calloc( datalen, 1 ); + TEST_ASSERT( data != NULL); + + buflen = fread( (void *)data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen); + fclose( file ); + + res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + TEST_ASSERT( res == 0 ); + TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); + + md_info = mbedtls_md_info_from_type( md_alg ); + + mbedtls_md( md_info, data, datalen, hash ); + + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash)); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_x509_crt_free( &x509 ); + mbedtls_free( data ); + mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free( pkcs7_buf ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_verify_badcert( char *pkcs7_file, char *crt, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + struct stat st; + size_t datalen; + int res; + FILE *file; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509; + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_x509_crt_parse_file( &x509, crt ); + TEST_ASSERT( res == 0 ); + + res = stat(filetobesigned, &st); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "rb" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = mbedtls_calloc( datalen, 1 ); + buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen); + + fclose(file); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); + TEST_ASSERT( res != 0 ); + +exit: + mbedtls_x509_crt_free( &x509 ); + mbedtls_free( data ); + mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free( pkcs7_buf ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ +void pkcs7_verify_tampered_data( char *pkcs7_file, char *crt, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + struct stat st; + size_t datalen; + int res; + FILE *file; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509; + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_x509_crt_parse_file( &x509, crt ); + TEST_ASSERT( res == 0 ); + + res = stat(filetobesigned, &st); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "rb" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = mbedtls_calloc( datalen, 1 ); + buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen); + + fclose(file); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); + TEST_ASSERT( res != 0 ); + +exit: + mbedtls_x509_crt_free( &x509 ); + mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free( data ); + mbedtls_free( pkcs7_buf ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void pkcs7_parse_failure( char *pkcs7_file ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + int res; + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res != 0 ); +exit: + mbedtls_free( pkcs7_buf ); + mbedtls_pkcs7_free( &pkcs7 ); +} +/* END_CASE */ From 673a226698e1b268fbda06235c04618c9d94a5a1 Mon Sep 17 00:00:00 2001 From: Nayna Jain Date: Mon, 14 Dec 2020 22:44:49 +0000 Subject: [PATCH 0024/1574] pkcs7: add support for signed data OpenSSL provides APIs to generate only the signted data format PKCS7 i.e. without content type OID. This patch adds support to parse the data correctly even if formatted only as signed data Signed-off-by: Nayna Jain --- include/mbedtls/pkcs7.h | 16 ++++++++++++++- library/pkcs7.c | 27 +++++++++++++++++++++++--- tests/data_files/Makefile | 5 +++++ tests/suites/test_suite_pkcs7.data | 3 +++ tests/suites/test_suite_pkcs7.function | 20 +++++++++---------- 5 files changed, 57 insertions(+), 14 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 3f87dc3e2..59da147b9 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -96,6 +96,20 @@ typedef mbedtls_asn1_named_data mbedtls_pkcs7_name; */ typedef mbedtls_asn1_sequence mbedtls_pkcs7_sequence; +/** + * PKCS7 types + */ +typedef enum { + MBEDTLS_PKCS7_NONE=0, + MBEDTLS_PKCS7_DATA, + MBEDTLS_PKCS7_SIGNED_DATA, + MBEDTLS_PKCS7_ENVELOPED_DATA, + MBEDTLS_PKCS7_SIGNED_AND_ENVELOPED_DATA, + MBEDTLS_PKCS7_DIGESTED_DATA, + MBEDTLS_PKCS7_ENCRYPTED_DATA, +} +mbedtls_pkcs7_type; + /** * Structure holding PKCS7 signer info */ @@ -168,7 +182,7 @@ void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ); * \p buf. In particular, \p buf may be destroyed or reused * after this call returns. * - * \return \c 0, if successful. + * \return The \c mbedtls_pkcs7_type of \p buf, if successful. * \return A negative error code on failure. */ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, diff --git a/library/pkcs7.c b/library/pkcs7.c index c3236e188..5563f330e 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -103,6 +103,7 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, { size_t len = 0; int ret; + unsigned char *start = *p; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); @@ -110,8 +111,10 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); - if( ret != 0 ) + if( ret != 0 ) { + *p = start; return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + } pkcs7->tag = MBEDTLS_ASN1_OID; pkcs7->len = len; @@ -428,6 +431,7 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, unsigned char *end; size_t len = 0; int ret; + int isoidset = 0; if( !pkcs7 ) return( MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA ); @@ -444,7 +448,10 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, ret = pkcs7_get_content_info_type( &start, end, &pkcs7->content_type_oid ); if( ret != 0 ) - goto out; + { + len = buflen; + goto try_data; + } if( ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &pkcs7->content_type_oid ) || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid ) @@ -463,17 +470,31 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, goto out; } + isoidset = 1; start = start + pkcs7->content_type_oid.len; ret = pkcs7_get_next_content_len( &start, end, &len ); if( ret != 0 ) goto out; +try_data: ret = pkcs7_get_signed_data( start, len, &pkcs7->signed_data ); + if ( ret != 0 ) + goto out; + + if ( !isoidset ) + { + pkcs7->content_type_oid.tag = MBEDTLS_ASN1_OID; + pkcs7->content_type_oid.len = MBEDTLS_OID_SIZE( MBEDTLS_OID_PKCS7_SIGNED_DATA ); + pkcs7->content_type_oid.p = (unsigned char *)MBEDTLS_OID_PKCS7_SIGNED_DATA; + } + + ret = MBEDTLS_PKCS7_SIGNED_DATA; out: - if ( ret != 0 ) + if ( ret < 0 ) mbedtls_pkcs7_free( pkcs7 ); + return( ret ); } diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 288b01f18..dbe32340f 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -1223,6 +1223,11 @@ pkcs7_signerInfo_serial_invalid_size.der: pkcs7_data_cert_signed_sha256.der echo -en '\x15' | dd of=$@ seek=973 bs=1 conv=notrunc all_final += pkcs7_signerInfo_serial_invalid_size.der +# pkcs7 signature file just with signed data +pkcs7_data_cert_signeddata_sha256.der: pkcs7_data_cert_signed_sha256.der + dd if=pkcs7_data_cert_signed_sha256.der of=$@ skip=19 bs=1 +all_final += pkcs7_data_cert_signeddata_sha256.der + ################################################################ #### Diffie-Hellman parameters ################################################################ diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index 870e83bb8..75ee9f6b0 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -51,3 +51,6 @@ pkcs7_parse_failure:"data_files/pkcs7_signerInfo_issuer_invalid_size.der" PKCS7 Signed Data Parse Failure Corrupt signerInfo.serial #15.2 pkcs7_parse_failure:"data_files/pkcs7_signerInfo_serial_invalid_size.der" + +PKCS7 Only Signed Data Parse Pass #15 +pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der" diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index b5ef2ef36..d85a45561 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -29,7 +29,7 @@ void pkcs7_parse( char *pkcs7_file ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); exit: mbedtls_free( pkcs7_buf ); @@ -52,7 +52,7 @@ void pkcs7_parse_without_cert( char *pkcs7_file ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); exit: mbedtls_free( pkcs7_buf ); @@ -210,10 +210,10 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); mbedtls_free( pkcs7_buf ); - res = stat(filetobesigned, &st); + res = stat( filetobesigned, &st ); TEST_ASSERT( res == 0 ); file = fopen( filetobesigned, "rb" ); @@ -263,9 +263,9 @@ void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - res = stat(filetobesigned, &st); + res = stat( filetobesigned, &st ); TEST_ASSERT( res == 0 ); file = fopen( filetobesigned, "rb" ); @@ -319,12 +319,12 @@ void pkcs7_verify_badcert( char *pkcs7_file, char *crt, char *filetobesigned ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); res = mbedtls_x509_crt_parse_file( &x509, crt ); TEST_ASSERT( res == 0 ); - res = stat(filetobesigned, &st); + res = stat( filetobesigned, &st ); TEST_ASSERT( res == 0 ); file = fopen( filetobesigned, "rb" ); @@ -369,12 +369,12 @@ void pkcs7_verify_tampered_data( char *pkcs7_file, char *crt, char *filetobesign TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); res = mbedtls_x509_crt_parse_file( &x509, crt ); TEST_ASSERT( res == 0 ); - res = stat(filetobesigned, &st); + res = stat( filetobesigned, &st ); TEST_ASSERT( res == 0 ); file = fopen( filetobesigned, "rb" ); From ca07f06024c381a69d692bb67a5c75b6675999b9 Mon Sep 17 00:00:00 2001 From: Nayna Jain Date: Fri, 12 Jun 2020 18:44:04 +0000 Subject: [PATCH 0025/1574] mbedtls: add pkcs7 in generate_errors.pl This patch updates the generate_errors.pl to handle PKCS7 code as well. Signed-off-by: Nayna Jain --- scripts/generate_errors.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index 0a03f02e9..6ecd0acd4 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -52,7 +52,7 @@ my @low_level_modules = qw( AES ARIA ASN1 BASE64 BIGNUM SHA1 SHA256 SHA512 THREADING ); my @high_level_modules = qw( CIPHER DHM ECP MD PEM PK PKCS12 PKCS5 - RSA SSL X509 ); + RSA SSL X509 PKCS7 ); undef $/; @@ -136,6 +136,7 @@ foreach my $match (@matches) $define_name = "ASN1_PARSE" if ($define_name eq "ASN1"); $define_name = "SSL_TLS" if ($define_name eq "SSL"); $define_name = "PEM_PARSE,PEM_WRITE" if ($define_name eq "PEM"); + $define_name = "PKCS7" if ($define_name eq "PKCS7"); my $include_name = $module_name; $include_name =~ tr/A-Z/a-z/; From aa91d4ef0bda8306925705cfecbf76725001c43a Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Fri, 29 May 2020 00:23:21 +1000 Subject: [PATCH 0026/1574] pkcs7: build under CMake The patch updates CMakeLists.txt to include pkcs7. Signed-off-by: Daniel Axtens --- library/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 378cfb457..aed4a05c4 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -89,6 +89,7 @@ set(src_crypto ) set(src_x509 + pkcs7.c x509.c x509_create.c x509_crl.c From 106a0afc5a8819d6f7fc450c66caa5919681cdd5 Mon Sep 17 00:00:00 2001 From: Nayna Jain Date: Tue, 3 Nov 2020 21:07:21 +0000 Subject: [PATCH 0027/1574] pkcs7: provide fuzz harness This allows for pkcs7 fuzz testing with OSS-Fuzz. Signed-off-by: Daniel Axtens Signed-off-by: Nayna Jain --- programs/fuzz/.gitignore | 1 + programs/fuzz/CMakeLists.txt | 1 + programs/fuzz/fuzz_pkcs7.c | 19 +++++++++++++++++++ programs/fuzz/fuzz_pkcs7.options | 2 ++ 4 files changed, 23 insertions(+) create mode 100644 programs/fuzz/fuzz_pkcs7.c create mode 100644 programs/fuzz/fuzz_pkcs7.options diff --git a/programs/fuzz/.gitignore b/programs/fuzz/.gitignore index 5dc096055..34e3ed088 100644 --- a/programs/fuzz/.gitignore +++ b/programs/fuzz/.gitignore @@ -1,6 +1,7 @@ fuzz_client fuzz_dtlsclient fuzz_dtlsserver +fuzz_pkcs7 fuzz_privkey fuzz_pubkey fuzz_server diff --git a/programs/fuzz/CMakeLists.txt b/programs/fuzz/CMakeLists.txt index c7fcd356b..7747744cd 100644 --- a/programs/fuzz/CMakeLists.txt +++ b/programs/fuzz/CMakeLists.txt @@ -12,6 +12,7 @@ set(executables_no_common_c fuzz_x509crl fuzz_x509crt fuzz_x509csr + fuzz_pkcs7 ) set(executables_with_common_c diff --git a/programs/fuzz/fuzz_pkcs7.c b/programs/fuzz/fuzz_pkcs7.c new file mode 100644 index 000000000..960007d7a --- /dev/null +++ b/programs/fuzz/fuzz_pkcs7.c @@ -0,0 +1,19 @@ +#include +#include "mbedtls/pkcs7.h" + +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +#ifdef MBEDTLS_PKCS7_C + mbedtls_pkcs7 pkcs7; + + mbedtls_pkcs7_init( &pkcs7 ); + + mbedtls_pkcs7_parse_der( &pkcs7, Data, Size ); + + mbedtls_pkcs7_free( &pkcs7 ); +#else + (void) Data; + (void) Size; +#endif + + return 0; +} diff --git a/programs/fuzz/fuzz_pkcs7.options b/programs/fuzz/fuzz_pkcs7.options new file mode 100644 index 000000000..0824b19fa --- /dev/null +++ b/programs/fuzz/fuzz_pkcs7.options @@ -0,0 +1,2 @@ +[libfuzzer] +max_len = 65535 From 136c6aa46732ad0fd6d1f884af8eae8893208cbe Mon Sep 17 00:00:00 2001 From: Nayna Jain Date: Wed, 18 Nov 2020 14:44:21 +0000 Subject: [PATCH 0028/1574] mbedtls: add pkcs7 test data This commit adds the static test data generated by commands from Makefile. Signed-off-by: Nayna Jain --- tests/data_files/pkcs7-rsa-sha256-1.crt | 20 ++++++++ tests/data_files/pkcs7-rsa-sha256-1.key | 28 ++++++++++ tests/data_files/pkcs7-rsa-sha256-1.pem | 48 ++++++++++++++++++ tests/data_files/pkcs7-rsa-sha256-2.crt | 20 ++++++++ tests/data_files/pkcs7-rsa-sha256-2.key | 28 ++++++++++ tests/data_files/pkcs7-rsa-sha256-2.pem | 48 ++++++++++++++++++ tests/data_files/pkcs7_data.txt | 1 + tests/data_files/pkcs7_data_1.txt | 1 + .../data_files/pkcs7_data_cert_encrypted.der | Bin 0 -> 452 bytes .../pkcs7_data_cert_signed_sha1.der | Bin 0 -> 1276 bytes .../pkcs7_data_cert_signed_sha256.der | Bin 0 -> 1284 bytes .../pkcs7_data_cert_signed_sha512.der | Bin 0 -> 1284 bytes .../data_files/pkcs7_data_cert_signed_v2.der | Bin 0 -> 1284 bytes .../pkcs7_data_cert_signeddata_sha256.der | Bin 0 -> 1265 bytes .../pkcs7_data_multiple_certs_signed.der | Bin 0 -> 2504 bytes .../data_files/pkcs7_data_multiple_signed.der | Bin 0 -> 810 bytes .../data_files/pkcs7_data_signed_badcert.der | Bin 0 -> 1284 bytes .../pkcs7_data_signed_badsigner.der | Bin 0 -> 1284 bytes .../pkcs7_data_without_cert_signed.der | Bin 0 -> 435 bytes .../pkcs7_signerInfo_issuer_invalid_size.der | Bin 0 -> 1284 bytes .../pkcs7_signerInfo_serial_invalid_size.der | Bin 0 -> 1284 bytes 21 files changed, 194 insertions(+) create mode 100644 tests/data_files/pkcs7-rsa-sha256-1.crt create mode 100644 tests/data_files/pkcs7-rsa-sha256-1.key create mode 100644 tests/data_files/pkcs7-rsa-sha256-1.pem create mode 100644 tests/data_files/pkcs7-rsa-sha256-2.crt create mode 100644 tests/data_files/pkcs7-rsa-sha256-2.key create mode 100644 tests/data_files/pkcs7-rsa-sha256-2.pem create mode 100644 tests/data_files/pkcs7_data.txt create mode 100644 tests/data_files/pkcs7_data_1.txt create mode 100644 tests/data_files/pkcs7_data_cert_encrypted.der create mode 100644 tests/data_files/pkcs7_data_cert_signed_sha1.der create mode 100644 tests/data_files/pkcs7_data_cert_signed_sha256.der create mode 100644 tests/data_files/pkcs7_data_cert_signed_sha512.der create mode 100644 tests/data_files/pkcs7_data_cert_signed_v2.der create mode 100644 tests/data_files/pkcs7_data_cert_signeddata_sha256.der create mode 100644 tests/data_files/pkcs7_data_multiple_certs_signed.der create mode 100644 tests/data_files/pkcs7_data_multiple_signed.der create mode 100644 tests/data_files/pkcs7_data_signed_badcert.der create mode 100644 tests/data_files/pkcs7_data_signed_badsigner.der create mode 100644 tests/data_files/pkcs7_data_without_cert_signed.der create mode 100644 tests/data_files/pkcs7_signerInfo_issuer_invalid_size.der create mode 100644 tests/data_files/pkcs7_signerInfo_serial_invalid_size.der diff --git a/tests/data_files/pkcs7-rsa-sha256-1.crt b/tests/data_files/pkcs7-rsa-sha256-1.crt new file mode 100644 index 000000000..ebbaf7cc6 --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-1.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgIUMBERfOWtW1Y8Y661YJt3KlBYYZ0wDQYJKoZIhvcNAQEL +BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT +NyBDZXJ0IDEwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfqRyKXRqfkj/BThWvwcKfv +qsTiZmVOE6sIusfY86qae4Yv8R8AaBgA3eYbSOat/Xyr3VFgZGtv9Hc8iDM7K1h9 +U9WBKPGN1gGw12LzAxIbf+t5qkH21YtPNkr7liwJruhTh/JLypKE/SVW1XIS47PE +Ug92emsRMKfgsReO7x/EmB/c5cnXfwnrc+DKog2eB+6eIPhq2uq0g+/bV8hkx8+D +N50Qq1OMdy0s/RXeurlYG72jhpj978eOq467vUIIxyD4ggsh9f3ZMOEGFlGjSiZL +CXTgbIbwXnndamf3iqWWN5ZiDH6NVP1UTfCvxvX4HfBE928z0OXu4k7QxNaboEEC +AwEAAaNTMFEwHQYDVR0OBBYEFF1d36HSc95cdyWYy/SRZPsmWncJMB8GA1UdIwQY +MBaAFF1d36HSc95cdyWYy/SRZPsmWncJMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAIqAZJRQFPL8GFpxp0ZjF4vSiKX/D0/+LJB+vei4ZGZMaqRo +afT9LBAquK1JjXYXJ9wz56ueVxggouVLb6XTrAwsHISwVxKzxkmBde2egPZ9L7tw +EJdb2YPAkdoi3fY259N6KS8S0MwMMi/YmiXpVpQiPQ5tQFdbT9oSqewi/C7TudFc +hez1M7ToYfbMaZ1yQxf5otT8wKVKhLdEb9ncE2Jku6eH+5+lcVFsliLcNo28bd0c +joRYufduegaxmFluq4YWCozgET38AFKiG9Y8fK34He/qJIwHn7nWJ3cy3j+NAh3X +gpobw4JhCNXaInaNx/BZsoedjXnkunhgRijykOU= +-----END CERTIFICATE----- diff --git a/tests/data_files/pkcs7-rsa-sha256-1.key b/tests/data_files/pkcs7-rsa-sha256-1.key new file mode 100644 index 000000000..0c7d37d88 --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-1.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDH6kcil0an5I/w +U4Vr8HCn76rE4mZlThOrCLrH2POqmnuGL/EfAGgYAN3mG0jmrf18q91RYGRrb/R3 +PIgzOytYfVPVgSjxjdYBsNdi8wMSG3/reapB9tWLTzZK+5YsCa7oU4fyS8qShP0l +VtVyEuOzxFIPdnprETCn4LEXju8fxJgf3OXJ138J63PgyqINngfuniD4atrqtIPv +21fIZMfPgzedEKtTjHctLP0V3rq5WBu9o4aY/e/HjquOu71CCMcg+IILIfX92TDh +BhZRo0omSwl04GyG8F553Wpn94qlljeWYgx+jVT9VE3wr8b1+B3wRPdvM9Dl7uJO +0MTWm6BBAgMBAAECggEASx6bUEIryJa4B4Q61E5q5o/GSWkRNOvbtB75oHLDTM3z +sH5/Sjjq5Goe94I1KIkkgR5LcXKZCU3uPIfAXg/Tv9KIF+gKrImxar06kfHiq4Et +1hvHgDXyFADV0+MpkK6qzJ3mrYMRQXE7djZkyhKTAU+5zhmk8mppMAvcP4/0Bqk8 +EQRd6rPzeQdK6Lz0UPHsjO2bqksdqtts090W07VY13tZdSL3Xsjig0TEsM0Oalv9 +VKTU+xBLQuD9cn2QYQfSflQl7ZGrS2N7OeZ4Ju5Spygo7YO/Lsl3WMYKNPiX7E7T +Z+sD6duWLbPC6atWgk1XmD9oZLBsx/jZT/Lp+cOLaQKBgQD3u8iNs4AafDnxAdZc +3vQBH0yablI5nRtRrAmpjyj8gNNbszoeCM+7MBJ2Npw3qnYtqRWw5vKljU3gVLXG +aPxUnyAJIVBWZDdlnnqOjKY++k6IF+3vcal9In+j5W0HYEfngLSm1/mJJHfK4N21 +JaJMwIxXJBkt0AbhyJlFc5WWowKBgQDOlgPY2xabKU5r+st3n1QKReirkb07rUR0 +ky3nBDGfI3svglX+5ZC/cDsl/YjAkGgOYgpgf1z0KUj2GmkQ6eMj9QVwzstwhKql +Asg4BXTd36Ia4zAbIYluUqHgbQOXKItLwJ3o1UImRlOosxG1hrHm1YpBZu9LEq// +medOr+nvywKBgA5eNMaLJ53hoJaqzZz7TVmXUCEQzvIKe6AkAzdzVyQ18Iw7+93s +Eug/ZIK4rhzIZSxGxzxIWMBjTqX5I8XLJv9db0U4SmmITHI3W9JSs/2pFM7t3F3r +0LGyQ4bk8orf+auimlem5REgLVZ17kXoVd5vuHQBYvh2PT/xG3qctotTAoGAeVgW +lGdEJQmjPbvHjdExjQM5QqXNUGNbBVp6KOsGtqIhtmtJVfrEBh7HL253yBxKcsBV +tg65q9UgPSaQNlYbjEBc3MErMEFM9rXmozlZRwYX8tElrZoKXpn86ZU++afgAjP2 +zQ+O1mqSs1HTghvHHX6qwfXTcvZcGLfu7QJZV/cCgYEAkpfg4Ev8zPPTpDTeS3h+ +uUhrU7cQ6Ry1+S1effLjaDLm+YdpXJ7DGhtV6yLSXbZPlcmbzYZyvBmYixdz8oqw +btJym460gKjAQLIrMcLL3tJcX5ww6oRCL5hqZgvcFeIlmYSTIEZs0X69Ft8trWSu +A3BsQ4P24o/FXcvGAv0gH0E= +-----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7-rsa-sha256-1.pem b/tests/data_files/pkcs7-rsa-sha256-1.pem new file mode 100644 index 000000000..fe1e16f8d --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-1.pem @@ -0,0 +1,48 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgIUMBERfOWtW1Y8Y661YJt3KlBYYZ0wDQYJKoZIhvcNAQEL +BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT +NyBDZXJ0IDEwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfqRyKXRqfkj/BThWvwcKfv +qsTiZmVOE6sIusfY86qae4Yv8R8AaBgA3eYbSOat/Xyr3VFgZGtv9Hc8iDM7K1h9 +U9WBKPGN1gGw12LzAxIbf+t5qkH21YtPNkr7liwJruhTh/JLypKE/SVW1XIS47PE +Ug92emsRMKfgsReO7x/EmB/c5cnXfwnrc+DKog2eB+6eIPhq2uq0g+/bV8hkx8+D +N50Qq1OMdy0s/RXeurlYG72jhpj978eOq467vUIIxyD4ggsh9f3ZMOEGFlGjSiZL +CXTgbIbwXnndamf3iqWWN5ZiDH6NVP1UTfCvxvX4HfBE928z0OXu4k7QxNaboEEC +AwEAAaNTMFEwHQYDVR0OBBYEFF1d36HSc95cdyWYy/SRZPsmWncJMB8GA1UdIwQY +MBaAFF1d36HSc95cdyWYy/SRZPsmWncJMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAIqAZJRQFPL8GFpxp0ZjF4vSiKX/D0/+LJB+vei4ZGZMaqRo +afT9LBAquK1JjXYXJ9wz56ueVxggouVLb6XTrAwsHISwVxKzxkmBde2egPZ9L7tw +EJdb2YPAkdoi3fY259N6KS8S0MwMMi/YmiXpVpQiPQ5tQFdbT9oSqewi/C7TudFc +hez1M7ToYfbMaZ1yQxf5otT8wKVKhLdEb9ncE2Jku6eH+5+lcVFsliLcNo28bd0c +joRYufduegaxmFluq4YWCozgET38AFKiG9Y8fK34He/qJIwHn7nWJ3cy3j+NAh3X +gpobw4JhCNXaInaNx/BZsoedjXnkunhgRijykOU= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDH6kcil0an5I/w +U4Vr8HCn76rE4mZlThOrCLrH2POqmnuGL/EfAGgYAN3mG0jmrf18q91RYGRrb/R3 +PIgzOytYfVPVgSjxjdYBsNdi8wMSG3/reapB9tWLTzZK+5YsCa7oU4fyS8qShP0l +VtVyEuOzxFIPdnprETCn4LEXju8fxJgf3OXJ138J63PgyqINngfuniD4atrqtIPv +21fIZMfPgzedEKtTjHctLP0V3rq5WBu9o4aY/e/HjquOu71CCMcg+IILIfX92TDh +BhZRo0omSwl04GyG8F553Wpn94qlljeWYgx+jVT9VE3wr8b1+B3wRPdvM9Dl7uJO +0MTWm6BBAgMBAAECggEASx6bUEIryJa4B4Q61E5q5o/GSWkRNOvbtB75oHLDTM3z +sH5/Sjjq5Goe94I1KIkkgR5LcXKZCU3uPIfAXg/Tv9KIF+gKrImxar06kfHiq4Et +1hvHgDXyFADV0+MpkK6qzJ3mrYMRQXE7djZkyhKTAU+5zhmk8mppMAvcP4/0Bqk8 +EQRd6rPzeQdK6Lz0UPHsjO2bqksdqtts090W07VY13tZdSL3Xsjig0TEsM0Oalv9 +VKTU+xBLQuD9cn2QYQfSflQl7ZGrS2N7OeZ4Ju5Spygo7YO/Lsl3WMYKNPiX7E7T +Z+sD6duWLbPC6atWgk1XmD9oZLBsx/jZT/Lp+cOLaQKBgQD3u8iNs4AafDnxAdZc +3vQBH0yablI5nRtRrAmpjyj8gNNbszoeCM+7MBJ2Npw3qnYtqRWw5vKljU3gVLXG +aPxUnyAJIVBWZDdlnnqOjKY++k6IF+3vcal9In+j5W0HYEfngLSm1/mJJHfK4N21 +JaJMwIxXJBkt0AbhyJlFc5WWowKBgQDOlgPY2xabKU5r+st3n1QKReirkb07rUR0 +ky3nBDGfI3svglX+5ZC/cDsl/YjAkGgOYgpgf1z0KUj2GmkQ6eMj9QVwzstwhKql +Asg4BXTd36Ia4zAbIYluUqHgbQOXKItLwJ3o1UImRlOosxG1hrHm1YpBZu9LEq// +medOr+nvywKBgA5eNMaLJ53hoJaqzZz7TVmXUCEQzvIKe6AkAzdzVyQ18Iw7+93s +Eug/ZIK4rhzIZSxGxzxIWMBjTqX5I8XLJv9db0U4SmmITHI3W9JSs/2pFM7t3F3r +0LGyQ4bk8orf+auimlem5REgLVZ17kXoVd5vuHQBYvh2PT/xG3qctotTAoGAeVgW +lGdEJQmjPbvHjdExjQM5QqXNUGNbBVp6KOsGtqIhtmtJVfrEBh7HL253yBxKcsBV +tg65q9UgPSaQNlYbjEBc3MErMEFM9rXmozlZRwYX8tElrZoKXpn86ZU++afgAjP2 +zQ+O1mqSs1HTghvHHX6qwfXTcvZcGLfu7QJZV/cCgYEAkpfg4Ev8zPPTpDTeS3h+ +uUhrU7cQ6Ry1+S1effLjaDLm+YdpXJ7DGhtV6yLSXbZPlcmbzYZyvBmYixdz8oqw +btJym460gKjAQLIrMcLL3tJcX5ww6oRCL5hqZgvcFeIlmYSTIEZs0X69Ft8trWSu +A3BsQ4P24o/FXcvGAv0gH0E= +-----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7-rsa-sha256-2.crt b/tests/data_files/pkcs7-rsa-sha256-2.crt new file mode 100644 index 000000000..0cd377afc --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-2.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgIUSbz5H6XcKL1urGmyF9I9v63PwccwDQYJKoZIhvcNAQEL +BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT +NyBDZXJ0IDIwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMjCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4tAEi8b+ZE3OIuv91WduiU +qQQXPqMNndTj3Q3hxd5CvYCZ3dAoYQOdPOtGWxLe89zpqUI/Sp8hSpCOw0ucgxCe +96ahpx/BVvMG6BabtxSXWYmGv0rJmFE3LwzskvK9P8dwaGLZler+9CgjKtcgfhTc +zbwhSDeHCHAZWqJUtLpAACiU8rn78p7x8zWoUUsntUiTCyw1SCHvIhGPeCbT4QVX +YNxIP2H52s7waHqtHLpGtJSsSxTxfbxcmbMQlrDaY/8ArLxo2VKqvGJv90IDjbGy +ORHRMOuxxxjowC9+yH4xtVRl821dsJFSSnmAEBXas3hkneFVBxiR7vUf61Wv760C +AwEAAaNTMFEwHQYDVR0OBBYEFNdysL6wT6p/KA7w/efpAyX7/FXZMB8GA1UdIwQY +MBaAFNdysL6wT6p/KA7w/efpAyX7/FXZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAKGSxRvoL+FpC4LtiT4Cie53yKlzISq+ZMR4eHm1BFSidiFv +apntxj9k1JIIlDzbabVEJdy+O8EzipqUNFdPky+EpnZTnoTXilNusPH2FW+R6qMx +XrDl4MwtSYnH1RwkjF+yjYysp6pdxm+gr6k7lS4biHq6VfUYSvQBvSuIYMn+XZa/ +ZgQs0NWeh3GgVFkpGkG/yxXMq1WRGSrFfmqExLVpMeNXTINQsK5PH/JMaj44c4T7 ++qbq9Rf4U4ezkTUXHsQQsA3dFpPiL5Lv6RS+31VKLpXYJQ9j/Z+IWBFjTf/utt5T +VA2cEFCZIkNYUoX8RVs23cQr/ZNBxxgO/7JYNSE= +-----END CERTIFICATE----- diff --git a/tests/data_files/pkcs7-rsa-sha256-2.key b/tests/data_files/pkcs7-rsa-sha256-2.key new file mode 100644 index 000000000..6226f8ad4 --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-2.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDeLQBIvG/mRNzi +Lr/dVnbolKkEFz6jDZ3U490N4cXeQr2Amd3QKGEDnTzrRlsS3vPc6alCP0qfIUqQ +jsNLnIMQnvemoacfwVbzBugWm7cUl1mJhr9KyZhRNy8M7JLyvT/HcGhi2ZXq/vQo +IyrXIH4U3M28IUg3hwhwGVqiVLS6QAAolPK5+/Ke8fM1qFFLJ7VIkwssNUgh7yIR +j3gm0+EFV2DcSD9h+drO8Gh6rRy6RrSUrEsU8X28XJmzEJaw2mP/AKy8aNlSqrxi +b/dCA42xsjkR0TDrsccY6MAvfsh+MbVUZfNtXbCRUkp5gBAV2rN4ZJ3hVQcYke71 +H+tVr++tAgMBAAECggEANzztAyiGkbOxTzLcVQV4Tt8XHoNA+X0bLqDwhtEJRvdE +8kJPGb/QTvu696voXMq9ysD1ahkeTm4Sgdpcx+HD3FAJto4eZRDGs2mWLnjMjfwL +MNwll0yD6D1WH1p6NovC3a0e5uS+F00IGyqTLiVP85PqOsnzkIqsGGLVW+K/hEaK +lRqKEf5tYzkdmlay8SfJQf03TuJVFp6qAgG/gH2EkGR/B4SLotXYDNXLFAzlx/N3 +QXHRIKhYOcvznbJ7Doww+nCyO613cUeZ1t3/22QRC3Vm8WMaYzxivGoMzmGM2YqI +MtUG+zXm4if9+MmT0CQ3meWLYwkIbFax6/6DLS6iKQKBgQD4EU4CEEjCsnYm7668 +0THvkcEsOTvSKroLYPKsuUbeoBfCvK4/o6kb2dQbR9c8MnHAJ8yN9gMbuP/njPUu +G9/sycI3uDRYpsQDeBcD74NtCAKqB1s7kcucMzxudwAqw/jJCJxyPqGiS8HJGQRO +sQMtBkvQx9RqKKagAgCWwaiLQwKBgQDlR76cQN3GSVRZfsA2rqTyZo8b4ECSEu0O +4vSQ0i5xMWp8uJLRBxktRYYCMfzH6dHDG+GNYearolOHm7BfC3QUH2EC6kE2D/9P +A40JrF7QEkDRtQ2rmNOQ2diLB1wYQiqRJieuXVIIzaRcyenRxP6ec2YMmHl9FaPh +dmYzjtDSTwKBgFr2/YQENKowhuMAQTM8AvO2nv94fVc0E8TYaCSuTC6Wxh/C0KLF +gN2VoxHd5i9M0CmGbpwf+kPQMwbVyZJ+5j4OPgnwokFf5cDf6JCo46i3p0JyMCJH +9EHzB9X6DTWhZzlQzw2Vqe+5l/YGFm5EusVn6aVFob7L6U4DbfPaT9PBAoGAD1Hi +55fh+azOqQgyGbVDqjq2Fzu9tMT0+AisJL0Wg1O09M50aOkbgo3hrWXfqQ/zhyDm +ykafXhqDkE0T1NX0FKAgIEy8vLsG6SWol9vfnfGKSTjax/t3L3eO44NDYQ+Svo4Z +Gqp7n8D12YlYST7rcHTvfan2fCglAhyiKZHCXDsCgYEA0BeqGpJ6Oz6O8g61JixG +EryjO2cCnQLWlwlal40L63wY5tNDCixuDM6zJFq/tT9DYMuNANrfsqWU2ImKTNPE +kwlMgP813aPXREgyV3ylL4KLusfDF6hqPtDcU2QK05LuTX7puHwi0pR8jAmPzrng +Y2ncNnRJI7vczDETaW1vuoE= +-----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7-rsa-sha256-2.pem b/tests/data_files/pkcs7-rsa-sha256-2.pem new file mode 100644 index 000000000..0f03a43a0 --- /dev/null +++ b/tests/data_files/pkcs7-rsa-sha256-2.pem @@ -0,0 +1,48 @@ +-----BEGIN CERTIFICATE----- +MIIDSTCCAjGgAwIBAgIUSbz5H6XcKL1urGmyF9I9v63PwccwDQYJKoZIhvcNAQEL +BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT +NyBDZXJ0IDIwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMjCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4tAEi8b+ZE3OIuv91WduiU +qQQXPqMNndTj3Q3hxd5CvYCZ3dAoYQOdPOtGWxLe89zpqUI/Sp8hSpCOw0ucgxCe +96ahpx/BVvMG6BabtxSXWYmGv0rJmFE3LwzskvK9P8dwaGLZler+9CgjKtcgfhTc +zbwhSDeHCHAZWqJUtLpAACiU8rn78p7x8zWoUUsntUiTCyw1SCHvIhGPeCbT4QVX +YNxIP2H52s7waHqtHLpGtJSsSxTxfbxcmbMQlrDaY/8ArLxo2VKqvGJv90IDjbGy +ORHRMOuxxxjowC9+yH4xtVRl821dsJFSSnmAEBXas3hkneFVBxiR7vUf61Wv760C +AwEAAaNTMFEwHQYDVR0OBBYEFNdysL6wT6p/KA7w/efpAyX7/FXZMB8GA1UdIwQY +MBaAFNdysL6wT6p/KA7w/efpAyX7/FXZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAKGSxRvoL+FpC4LtiT4Cie53yKlzISq+ZMR4eHm1BFSidiFv +apntxj9k1JIIlDzbabVEJdy+O8EzipqUNFdPky+EpnZTnoTXilNusPH2FW+R6qMx +XrDl4MwtSYnH1RwkjF+yjYysp6pdxm+gr6k7lS4biHq6VfUYSvQBvSuIYMn+XZa/ +ZgQs0NWeh3GgVFkpGkG/yxXMq1WRGSrFfmqExLVpMeNXTINQsK5PH/JMaj44c4T7 ++qbq9Rf4U4ezkTUXHsQQsA3dFpPiL5Lv6RS+31VKLpXYJQ9j/Z+IWBFjTf/utt5T +VA2cEFCZIkNYUoX8RVs23cQr/ZNBxxgO/7JYNSE= +-----END CERTIFICATE----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDeLQBIvG/mRNzi +Lr/dVnbolKkEFz6jDZ3U490N4cXeQr2Amd3QKGEDnTzrRlsS3vPc6alCP0qfIUqQ +jsNLnIMQnvemoacfwVbzBugWm7cUl1mJhr9KyZhRNy8M7JLyvT/HcGhi2ZXq/vQo +IyrXIH4U3M28IUg3hwhwGVqiVLS6QAAolPK5+/Ke8fM1qFFLJ7VIkwssNUgh7yIR +j3gm0+EFV2DcSD9h+drO8Gh6rRy6RrSUrEsU8X28XJmzEJaw2mP/AKy8aNlSqrxi +b/dCA42xsjkR0TDrsccY6MAvfsh+MbVUZfNtXbCRUkp5gBAV2rN4ZJ3hVQcYke71 +H+tVr++tAgMBAAECggEANzztAyiGkbOxTzLcVQV4Tt8XHoNA+X0bLqDwhtEJRvdE +8kJPGb/QTvu696voXMq9ysD1ahkeTm4Sgdpcx+HD3FAJto4eZRDGs2mWLnjMjfwL +MNwll0yD6D1WH1p6NovC3a0e5uS+F00IGyqTLiVP85PqOsnzkIqsGGLVW+K/hEaK +lRqKEf5tYzkdmlay8SfJQf03TuJVFp6qAgG/gH2EkGR/B4SLotXYDNXLFAzlx/N3 +QXHRIKhYOcvznbJ7Doww+nCyO613cUeZ1t3/22QRC3Vm8WMaYzxivGoMzmGM2YqI +MtUG+zXm4if9+MmT0CQ3meWLYwkIbFax6/6DLS6iKQKBgQD4EU4CEEjCsnYm7668 +0THvkcEsOTvSKroLYPKsuUbeoBfCvK4/o6kb2dQbR9c8MnHAJ8yN9gMbuP/njPUu +G9/sycI3uDRYpsQDeBcD74NtCAKqB1s7kcucMzxudwAqw/jJCJxyPqGiS8HJGQRO +sQMtBkvQx9RqKKagAgCWwaiLQwKBgQDlR76cQN3GSVRZfsA2rqTyZo8b4ECSEu0O +4vSQ0i5xMWp8uJLRBxktRYYCMfzH6dHDG+GNYearolOHm7BfC3QUH2EC6kE2D/9P +A40JrF7QEkDRtQ2rmNOQ2diLB1wYQiqRJieuXVIIzaRcyenRxP6ec2YMmHl9FaPh +dmYzjtDSTwKBgFr2/YQENKowhuMAQTM8AvO2nv94fVc0E8TYaCSuTC6Wxh/C0KLF +gN2VoxHd5i9M0CmGbpwf+kPQMwbVyZJ+5j4OPgnwokFf5cDf6JCo46i3p0JyMCJH +9EHzB9X6DTWhZzlQzw2Vqe+5l/YGFm5EusVn6aVFob7L6U4DbfPaT9PBAoGAD1Hi +55fh+azOqQgyGbVDqjq2Fzu9tMT0+AisJL0Wg1O09M50aOkbgo3hrWXfqQ/zhyDm +ykafXhqDkE0T1NX0FKAgIEy8vLsG6SWol9vfnfGKSTjax/t3L3eO44NDYQ+Svo4Z +Gqp7n8D12YlYST7rcHTvfan2fCglAhyiKZHCXDsCgYEA0BeqGpJ6Oz6O8g61JixG +EryjO2cCnQLWlwlal40L63wY5tNDCixuDM6zJFq/tT9DYMuNANrfsqWU2ImKTNPE +kwlMgP813aPXREgyV3ylL4KLusfDF6hqPtDcU2QK05LuTX7puHwi0pR8jAmPzrng +Y2ncNnRJI7vczDETaW1vuoE= +-----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7_data.txt b/tests/data_files/pkcs7_data.txt new file mode 100644 index 000000000..e965047ad --- /dev/null +++ b/tests/data_files/pkcs7_data.txt @@ -0,0 +1 @@ +Hello diff --git a/tests/data_files/pkcs7_data_1.txt b/tests/data_files/pkcs7_data_1.txt new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/tests/data_files/pkcs7_data_1.txt @@ -0,0 +1 @@ +2 diff --git a/tests/data_files/pkcs7_data_cert_encrypted.der b/tests/data_files/pkcs7_data_cert_encrypted.der new file mode 100644 index 0000000000000000000000000000000000000000..0d0706931e625b35b37466511e87ea4da5a731ba GIT binary patch literal 452 zcmXqLVm!dcsnzDu_MMlJoq0hM<3@uf#CyK)2f{@U2NS<^=CU)7tGsN z8*UbRUd(O#gvgnWyQ-_FPOJF2?fIEaTr&FBt5s7?9oNTPxe9TNztPBR+2t|wwnwWhJ znwUKenwSh1Ff%bSF^L!m3f4Sb8y#koyl!j4>~gJuh{U-Dyl_2?+(08tz$P+>vaks= z`S}>~8St{-pmyaBKF5g5~d59eI?N z>Lpz%)t2V>x5H1Q96#S|K38CMa8J3e z&R@}cyLLuM?_JzBkruvF5mNwFFbws$nV0DYqJ+PGBGnUFfI-@2sDrd zMv5#Six`VYZ0!Aomx}Mjl&j7-{bgdxZ?&j$P6K(6v@(l?fmj1}1^gfd!iPY=9j-Z z0$MxPdiIuytKTtxzItA`gu=Y1t4iwE384W9i#@4c}_@cNYjukG|P_ zVB#&MyWh;7U#`;B7rJnU$4LLiEY+7`Q{cj1ae53S7@AA%zF|BXD8gF@# z`0Y&Q+#+Z3pNp>iIk42LWxGrM%{#(LDZ7`q|DM0JFfeDD(jBwjJ-K&f`dT7(e$T67 z+c+aKZ*`j(SI+}M+dm9Ji=?mF)U5p>`~Hlzu zrLx}RA0juk&+V;zva2G&P2cD0ckMZUnsnEwEq}B%zT3ClkMn8Q&2=`ZMe3HK zQEz+1z4daw-Fd>=Vrn<1StEDnajWpneVbA{--QMQEU}c__UTTLBJ=kPeQ`7I%g;8^ z(*L8RQ(D-u>|EaQ*2dRfwT0{SymtHW33*OmY_{=<)1t@kKRk}Ixb*4k_OKtvUl>%Z z-RAP~JI9iTQ^S{R{5Q!%ej9hst$wchhY?*F^F62Ed&_9huWY(2%_c~T`Q{3Ht*7>% L|DO2R;oS!S0NDC! literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_cert_signed_sha256.der b/tests/data_files/pkcs7_data_cert_signed_sha256.der new file mode 100644 index 0000000000000000000000000000000000000000..3f2dfb5ace1ae4c6571da3551fac2c2c0d65d89a GIT binary patch literal 1284 zcmXqLVr5|C)N1o+`_9YA&a|M3<)c9p%UdQ!MnirBUN+8zHV?*BW)>z!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?B-8GB+{uGZ-{6axpbAGBO;0<*qc{ZTXY_55cY39}1Sg zUv=bBTB@J$YK~pUZ+u=gtGZ49qdY@~1jF5D(jL#&{;gSkH!vY3JO4|$O^30yc0_IP z)kckvz1J8wTu=JUEF@k3x^k7{x2xU$W?sLi>2R)l5#0XC`_!bCzp7zZi-aC;J`%)V zR+TMiu>8SB@xJ%+M`p<1d3y4CJ?HD<2d5VC&SQT!PvJ+_tyf!`-`@^Dk#hWev-wkauE;`?F!v9CX5Ke&9)H@@)n-6OvXN3P9Y;K;LDI@B5(Z)o*cI@D6bLgi z{%2t|U}Aa<^ph?n@m@|MUC*)0t4W_r;EsG@q;` z8JS=H>Ii7d5FhwS@TDn0D;cV1I3H@auv%OrcfX_oZi zrbLdbx0K3ykAH~V)IPVj^2x4>1UHRO6P_A2F_r_9UNJD|8TgQwqH$+Iq-tlYC+q%O!wYrPxVdu>-(HoOzhOW3N zcvL9)(8pUCp%=~p9Rf%C>!u+qah>X+UW9V>utIr$r+!sJ}sDj_3}Y^_v7|%p1~n& zbN}5tEO}|Us={*(&8CSV30aY|H`(72Sz>5%O_g)<)Y|Tomc_0&vU>#frue_@o4Lef R$+>OZT8Z9lsa$D}JOF;``!9Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?Ekt49rc8{0s(7j9g4jjEoG&U%4wycU%6X|3h$V_J@My z?^hjpl$PozyqaUz@f)94&8lwG|0vIpA;EC>nY72VwSQ|?-wjMi$;IWA8P_4cC)CGYd)Azph;6`0Z-9znRzXX*!(iUIe#)@;)`G<*#bk)gqzCn~wzX zmsMp88Z3XXQM~WH{E->*cb=ZSUeEcu_`#_~yz|)K%~SZ1b?eoZ=J&V5Pox|_-)uft zV0Ca$xvtJ%(R;ggMo8~n+&1Iy`{RA9`*!bj;yAAGqlsJb>))FO581>57kjCBbCx{F zY5NdYc{eNld)Lxw=F^gR>Uu-|hWLJ1f9&fI*$*z?^NlY&efP-k!jWsU7dSF8GcqtP z4mJohkOfAHEFX&)i%4wj{e_o`@5Pj>&N%&LV#;r|sB%sNd62X+i-dt#19k=cAO*sV zjQ?3!4VZxxaZOE0hC(UED{5H7U&m}g_@+j$M&YV~&) z2uzQ@*?eH)Ev38P%${Ga($p8aaE8Z7|HdrUmtj+sZ258>!lV6f39Wpi^hfXV&Wkav zZ@wCDd6D?-Oy=AoXYrqluKYQ$)T?E?Oa9F}!bvH+m$(0(zqBwgXPVL-v)(Mfz#g?`|8q4wyftJ4FTTwKQu-@c$?3= zUBS37#MNOAqq(G;lEbApee2(}m9TzDR)|Q~ysxy$Y1LGLut3d&OCO&&`1|S4mN(Z7 zZ}Ta<cO7|dsT+6rJ0vmMGM>?9W$@lvD%|nT+w%-Zjg(i{KvMvewvG? SEh}C;BYi=!>z)7p;->(;m;KTJ literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_cert_signed_v2.der b/tests/data_files/pkcs7_data_cert_signed_v2.der new file mode 100644 index 0000000000000000000000000000000000000000..1a24a8a2e3b72232f8ec4c2a1b2a45df051a2444 GIT binary patch literal 1284 zcmXqLVr5|C)N1o+`_9YA&a|M3<)c9p%UdQ!-PAmVmz!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-cnUbr4cZlDn+hTI06 zY|No7Y{E=_K8Ab-JRlAi4{Lz8bFjIgsDUtu&&njmg*krEPt?3yzjmIks0!Lo}Rp3&-uFe!Kp>O^Vr|bQ}~f}>(!R#_qW4Oq#QrrY(7_D zb#PC)uFhZ4d%Jcume*CFxVLxx*AfZ1c-e4BN0`&+$~wW`%=f!|NQ>{bSBj8eX%1Y%_nO~ zM&_5lIs#fd)_V4qiL2i+e!hBMxP-!@r{4KXFR$Uzk!jfwF0}cWXJhHxc@5uc^>-Ht zOpm_Vd|=`&rMutEo?oug)EByNhQ~<%#w^vBVN;ZB`Enh?qy29Qt$d^ONAL2^i!rTl zz8Y_Nk@)RQ=G-D@@t=#X{5i1Ht7W@O{>?kWNh!ORxBs5Mv@kGdn$jJ!-aWZ@W%^no zc7D&RV%s<)GH-R87+22&LEAqJL5rlX+0?B4A^ZN7N)P+|o!8XMjqcg^GRa zDUsvqEv2&F;~ye7wa@LXe6p(|!A;}Sgr|m0jOD;Hp{DZHT^0tnc4JO;QI<9OiZdKtlE77z|y}o@}@Ku8@y_t;j=B>MM zyT++^rFYh!Rc}vr$izPjn)6UL;Lk=wM#i<#<^6 TiOG_4+qkt7z1dQ^(j0jJ48;70 literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_cert_signeddata_sha256.der b/tests/data_files/pkcs7_data_cert_signeddata_sha256.der new file mode 100644 index 0000000000000000000000000000000000000000..7c631f9d7495886951dc80a63dc299421620b8de GIT binary patch literal 1265 zcmXqLVtLEN$Y{uKz{|#&(B{FI%FM#V$jV^A&Bm$K=F#?@myw-uK@+pDK@+p5K@*eV z0%j&gCMFRBLBX1*Yoo(#lGklbm|dIr2W>vT8f0Sp)kYKp`Oxokw+P^ic?*=BMWaob=x9Kpp){dwRzS^kqvG*F|hU-b6 znT4e5UstYj{C2h5-^}axG#$=$FM``Yd7qlp@>ezNYLU?6%}0Xx%c`;k4VFLHDBky8 z{>TjZJ5NtuujhPS{NU6g-g)fr<|+Khy7g*H^ZVQ3CsK}|Z#JJRusXP>Tvz9>=)GM# zBc%5(ZkzG<{qerleY^KMaU56p(ZsFz_3urChiqbji@nsmIZGbow0(%HyqlH&y=&<- z^Jz&ub-f{fLwrB1Klb&9><5?c`NkKXzI)_%;mEbw3mlo485tNC2O9($$O0opmXAe@ zMI<)%{=!Se_hQObXPo{rG3B>fR5_=CJV;uZMZ!R=0lNZzkOE;w#{Vp=2FySTIoN@z z0vPO!3|$Q=QvyUj{gH?&T<(@E-hHWK>3@Fze>xND_P*GWlID}OBqQ_7UmXFh9cw*% z%f!|17(ZVwfegY1g1ydY(6mYmeSpC zX3sBIY3d7IIKyM4e`A*F%dja*wtTq`;nDuLgjT*$`lEMw=f#-TH(!mnyh!|ZCUb6) zv-reaH{CI99f;iQz^%iDj?Us@QLGfnA^S?`|QyE1((5j(%IBBX~I*(CdP7L(klk$JOdx{QZ()?h@6X&awIUxvotX>xa~gF`t|VJ z@XoX^%fugwJQ1k5^?Wst&pUqYd0Tflr&f0{J?y+0CVFG?%+M7#1&<0PpWI&)z_a{-q6cQ3zJ&}Iuh?)yY-A$VR`Q{W2K*)cu#Dw-_+@}H&uP=+C$Gj z_xkK4vR$j=%EsbW6;87fO}o_V+m{7jHR#ft$vAJ`x(l~!oO)M!XZ>0A_GE`l z{Ij4r4`l=XY&2wKTpL{;ZM{u5Bst@A)~5y2uU|(z4j~Ms|jdG;{? literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_multiple_certs_signed.der b/tests/data_files/pkcs7_data_multiple_certs_signed.der new file mode 100644 index 0000000000000000000000000000000000000000..73755dbbdf77afe9bedabad2214bfd1755b4e8d9 GIT binary patch literal 2504 zcmcIldooQtYM#(j#aT_v9E+rWv zESef5mu6C%nyj{La&5+yQkgrp7!it&-t9^b3W&JKF{~_d_V@G z4URBOwM$(=0dmk12BHCEAZnoiKvV`%aD;EF9S{hUfdaA+Q1QP+po9Ux3^HK$AOlJ) zfk6Q%6a%WL#Eo*i+${rcH24-q8M=7-6@8TWk2s(xl`tbJf(ST_Dg#%8Iyn-RK;%cD zfRuG{*iYU`R0q{QVi*$nZ>+mN@We@7BKQ>+Wdah3CT2u4B1p72B!$FJ;1{Yg0Q{%N zlim=<0F)sh15ki6001JG{04u~w(|8kF*)UkIIMEEx^3iepp#mSe2buOq5ATvRKlDN zBnSr)jcMAAaU^jyB3ED95&B}3CDU}*HqUr+_ZfpZRu91K^bI9OOMAi!Ly{DMd%uGX4G~giTYqmv!^D%EcKFPR*+Sbb%$>)FVJ0O zDC#Xq`oUqihHDvVvjgJf(9u-!w=trS?^iO)^LOU^BNJE@3FUzJ=A)%mZL!S?-L!Lb zX2hwpt*5YL9~1^afHE@Z3TjIqMO#TmLk8pH^Xt{;;e*~$`jvz@Igivgh`iAZI@1k)OG-pkx0vR!OXAY4jr$w4Zxm#&Mg0+?EK#7 zd;))>iFVjAR)nTTn2 z;&MFUP8j;4SAWvI>;b%JdB=EH>{fzm=M$s}q3^Q(8~0rNZlz;;J-nO;RIA?N*NwZH zfALOvyJUK6!f*LWaM6kV*mtEb*6)>*k{fO4{X#W=+MUX@wc_&Qu1E9n!W}H$F_BhQ zvS;&3Xe_+;(!tQ0R1Jm9A(h?h5Vumz9?Lk+s`l*UrcAlw=AJE4CWBTisCF;ovgQMZ zpM3WKK9VI6AFN9&V#T~}iT1TMm_I-IyD-`F-szMJ4fvtggX^%*ceiq$-531Mwl5lc zlfNZQCeqOSd6)*bL+p6;F&p8CajVEZaw4}%2D_&WRrKPO2sQk0(3+oEAnG*mgB4j$ z*?OrCE(qULSzD2c^+@Nl9ynY{LbF#Yu2$;YcVB={XcRVLE*?xzZ6&o|a@|QlzP&Kd zw-ST}`S<5dzF#!hXxOWpfD!)8)3e)|CLgxpP$}hB%U*~DnEnfyV*ys!I?z(T9aXHt_!#RhLToFlT zC--KML%DOy>h$c%GUB(~(V-{X?b8L_TAMPzt7BzeudMcYL@&8nwJXn9lNsAWUBZzT z0sc0oZ~J?n{MN%VMxEX4wBsd|gIoWxueC${Newl7gWf6GgbTB8Fn52Yl8p2E^pyi7#Y|6?fCC?9 zZV!?vs4Hlf0{nhYx0Lm-y>^J&wn=jK32;gu>O9T$hz#hAbR@&2H3m9m%xiSqz<3SPaYlI?yP;`+;HeDgaC*PHdS6Zf z^@o0yhpGYXt#K}h2j|Ke7VAU`$%z>g;Dw@g`Cko4Ml<~edj`f(x|OU)rucVtsK;EZ zx^!!P;FdhjkK^J4q>Z3v1Yfo=08u~fF z0~HSML;f|}O`w=R`uYCc_V|qo+e0&$9n=U)Z&B9XbI+Spho-OfI(6_fY+k8jPKoFX z7*ay+GH!29>0%uZk>WjPPcu?fJ(Gl7{a1 zt64T;oP9RU#k;U$>s{-Xvd3MMYCes()tuCx%L0=V0XG8jt=qDOXIzeZL`6+qGmHyG+)IkT;^h9(O2CbSlv+^0S9~ P!j2Xp&PSN9x(@vdYO3T( literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_multiple_signed.der b/tests/data_files/pkcs7_data_multiple_signed.der new file mode 100644 index 0000000000000000000000000000000000000000..a38c3ef63fd7d725c4aa7620eaddb76e1f3a0289 GIT binary patch literal 810 zcmXqLVpe10)N1o+`_9YA&a|M3S=^wBS(u5D(U9MOmyI)_&4V$OnT3gwmBD};p^(wA ziRqm|6Js$@p@ENqi6OTECmVAp3!5;LpN}D*0S}17#lsrl?Hp`wC~6=K;xqH`fcXl} zsYN9UhD;&`f`T;Hp{DZHT z^0tnc4JO;QI<9OiZdKtlE77z|y}o@}@Ku8@y_t;j=B>MMyT++^rFYh!Rc}vr$izPj zn)6UL;Lk=wM#i<#<^6iOG_4+qkt7z1dQ^(j0jx z3w9$W5zjq8<(J;k*qgT|bCdWb+x=_LA3RPt*lU%!bo078PKTC;T%X(L(0^%%(1W*2 zuKS(d+vW0DRHXWD{$~-dx+&iz940UNvS|-zYs^Q_6di7%#%7)$dzdzaG%=R4sS7SI zzk70rTEWUWf4-Y?XxS?WEt1*ETKarmcY8q0?9-b2oOUffaru>S?DlQKe!^#_eu#Ky zvdpET_Iko*)BHk-(-V1rPg{^w_56Epc$M+&lq&s_kh>rDoXdE`$xx6Ye%rE9?-SS8 zushF6PU|t&zm64W>P^Zzo8Pu$uY<_@e2$j$(~C@#m6-Ree7;tMy=HsPuUG8zLnYEB q%VYx=XwO^Bs-r*k5!bxu-t!y$7AVe5^kj=*&Y8z!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?B-8GB+{uGZ-{6axpbAGBO;0<*qc{ZTXY_55cY39}1Sg zUv=bBTB@J$YK~pUZ+u=gtGZ49qdY@~1jF5D(jL#&{;gSkH!vY3JO4|$O^30yc0_IP z)kckvz1J8wTu=JUEF@k3x^k7{x2xU$W?sLi>2R)l5#0XC`_!bCzp7zZi-aC;J`%)V zR+TMiu>8SB@xJ%+M`p<1d3y4CJ?HD<2d5VC&SQT!PvJ+_tyf!`-`@^Dk#hWev-wkauE;`?F!v9CX5Ke&9)H@@)n-6OvXN3P9Y;K;fR5_=CJTT5=m02VV#2TzIhm@0t5&dAW!kTNAeQCYI+p(D_y4Cep>FSs9Vux( zSxYi9zx>q^(Au%qv$srK{f_bT)$_t76c#=8&R=?Y4UdjY%Z6~F&Br_&OW)3G_*SdG zyFg%i^v&i26K^Tq{bu(3a+RjO(1kNRM*25qslE)GqGZdL>kuC8e@kfP8>K&bmv>%_ zX?^q6c*~2#Z)Y;+7CDRmTy*8nfu&w8+gBCKl99M5CmGvI~5V@&+Zg1t2T@?v#8lNUSHEd!m2PVB@V9qn}AumPa&VtCf7%4{r zlRQfkBZJ%SL#;Hp{DZHT^0tnc4JO;QI<9OiZdKtlE77z|y}o@}@Ku8@y_t;j=B>MM zyT++^rFYh!Rc}vr$izPjn)6UL;Lk=wM#i<#<^6 TiOG_4+qkt7z1dQ^(j0jJeD?hR literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_data_signed_badsigner.der b/tests/data_files/pkcs7_data_signed_badsigner.der new file mode 100644 index 0000000000000000000000000000000000000000..9ea4231a6eb9e0c4645d1007ca30cb3170e580f3 GIT binary patch literal 1284 zcmXqLVr5|C)N1o+`_9YA&a|M3<)c9p%UdQ!MnirBUN+8zHV?*BW)>z!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?B-8GB+{uGZ-{6axpbAGBO;0<*qc{ZTXY_55cY39}1Sg zUv=bBTB@J$YK~pUZ+u=gtGZ49qdY@~1jF5D(jL#&{;gSkH!vY3JO4|$O^30yc0_IP z)kckvz1J8wTu=JUEF@k3x^k7{x2xU$W?sLi>2R)l5#0XC`_!bCzp7zZi-aC;J`%)V zR+TMiu>8SB@xJ%+M`p<1d3y4CJ?HD<2d5VC&SQT!PvJ+_tyf!`-`@^Dk#hWev-wkauE;`?F!v9CX5Ke&9)H@@)n-6OvXN3P9Y;K;LDI@B5(Z)o*cI@D6bLgi z{%2t|U}Aa<^ph?n@m@|MUC*)0t4W_r;EsG@q;` z8JS=H>Ii7d5FhwS@TDn0D;cV1I3H@auv%OrcfX_oZi zrbLdbx0K3ykAH~V)IPVj^2x4>1UHRO6P_A2F_r_9UNJD|8Tja?<|)KfBpPy&luvMH zLF8PFlp}#jo~4PA!EN`U)~|=(hIgiYStkBa>$GeBSYE&)d4gIkmcr>0#&1 zFwq;6XNIo0DR@*U`Q-kZ0M5hxOPehJ7>0QHbyOxt^M+ndTA17-(2;oW+O2223d?(s z87uwV#Cu|c{iaT*y{YO`*B*NQ!PiT9TSv?WlkHj^S2h;6s&JZ>XxgP--@YvPszI0D zOvZWh)?K(=Yyla|G zO^oG0g~dRH20jKRhTI06Y|No7Y{E=_K8Ab-JRlAi4{Lz8bFjIgsDUtu&&~gJuh{U<*mIB=XbsZzn4J=KJ3~sv*wSGPPHoP^F5f?M+pmy7tiX558W? z+d5)4m~7YTxU#XhRfW^6MAI(y`u1hPR}H%KW-`v3x9-C28mHcs-dTTEy*=3>6aOq| z&O_ONKN}4h8P`UaM_X^x4N1=Uob_qJ^sAQ-%DW%8ck>JmS)2Rs-eJj0%T*PgYiKr2 z3`xj}oW05Zj>r;2lWVG+lc&~ppR_D?y^-A`us6m3ZQsl#CQHt3z!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?B-8GB+{uGZ-{6axpbAGBO;0<*qc{ZTXY_55cY39}1Sg zUv=bBTB@J$YK~pUZ+u=gtGZ49qdY@~1jF5D(jL#&{;gSkH!vY3JO4|$O^30yc0_IP z)kckvz1J8wTu=JUEF@k3x^k7{x2xU$W?sLi>2R)l5#0XC`_!bCzp7zZi-aC;J`%)V zR+TMiu>8SB@xJ%+M`p<1d3y4CJ?HD<2d5VC&SQT!PvJ+_tyf!`-`@^Dk#hWev-wkauE;`?F!v9CX5Ke&9)H@@)n-6OvXN3P9Y;K;LDI@B5(Z)o*cI@D6bLgi z{%2t|U}Aa<^ph?n@m@|MUC*)0t4W_r;EsG@q;` z8JS=H>Ii7d5FhwS@TDn0D;cV1I3H@auv%OrcfX_oZi zrbLdbx0K3ykAH~V)IPVj^2x4>1UHRO6P_A2F_r_9UNJD|8Tc6JrsgTcR2Z9bk&;hv zXF=p#jFcmRNuH&Nk-=^Eq1La5--dUleOV^{P~?d~&8_FFd3@gSYtP%d!#TCOi|JwK z%`nj$lV^smxG8v4DEZ|6ngGtj{Y#rH{}_gN`E^t#NAreWPFk4UBG8d|@7k?ryb8;E zj~Ofd+{AlggZ-vXr@g7_Q`a7P{=wHvd0R)!29xbt9alCMx2kZOm1x?fUf;ef_^Lsd z-b}`M^VVIsUE|cd(mU(Vs<$UQWa6I%&3Pyr@MohTBjeiW@@VUAx*^FKpR+zKn11#0 zL3#J%_HLfRA!~F0-8(FKX}PMxa}CX=i6IGDk+V11-w|12XmU-JbMn;M?vs|qt~auK b1oo!*zwMj3#AM02ZQNRk-fXE{X^uPqX$SoE literal 0 HcmV?d00001 diff --git a/tests/data_files/pkcs7_signerInfo_serial_invalid_size.der b/tests/data_files/pkcs7_signerInfo_serial_invalid_size.der new file mode 100644 index 0000000000000000000000000000000000000000..871e77db708b2ac4d3e045f61421e96c73d921eb GIT binary patch literal 1284 zcmXqLVr5|C)N1o+`_9YA&a|M3<)c9p%UdQ!MnirBUN+8zHV?*BW)>z!Rt5uZghIvz zP0YRqP0XGKO-zOhn3))vm_!T&1#6zJjSjO(Ubi)2cDYtSMB-eK5m3V!xq(KQ7;+nM zvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7XdoxfYh++(Xk=n& zVrXD!83p7TB5}zywTV#)*?B-8GB+{uGZ-{6axpbAGBO;0<*qc{ZTXY_55cY39}1Sg zUv=bBTB@J$YK~pUZ+u=gtGZ49qdY@~1jF5D(jL#&{;gSkH!vY3JO4|$O^30yc0_IP z)kckvz1J8wTu=JUEF@k3x^k7{x2xU$W?sLi>2R)l5#0XC`_!bCzp7zZi-aC;J`%)V zR+TMiu>8SB@xJ%+M`p<1d3y4CJ?HD<2d5VC&SQT!PvJ+_tyf!`-`@^Dk#hWev-wkauE;`?F!v9CX5Ke&9)H@@)n-6OvXN3P9Y;K;LDI@B5(Z)o*cI@D6bLgi z{%2t|U}Aa<^ph?n@m@|MUC*)0t4W_r;EsG@q;` z8JS=H>Ii7d5FhwS@TDn0D;cV1I3H@auv%OrcfX_oZi zrbLdbx0K3ykAH~V)IPVj^2x4>1UHRO6P_A2F_r_9UNJD|8TgQwqM3A4^Aut#3{APv zvmkOVM#_=EB+t^s$l$j7Q0v#jZ^Jv&zAO`eDDp(0=GODoJU;LEwdZZ!;hb9C#q_ZA zW|-)W$umP&+!Q=2lzei3O#tWN{-sTpe+)ys{5mR=qj^IwCoN2F5$H&~ckR|QUWMho z$BdPJZsI+$!G2Sx)816|scR2C|KRJTysaZ6BTU9vCN;K_KuWw%#eAS>! zZzkisdFw9Ru5s#J>7Dgw)!UODGV#xX<~)=Q__NWFk#TKwd9?L5-H_yr&sm=qOuu^h zpuGEWdpFPEkhQu0?j4rAv|Lr;xrS!b#E^un$l06h?}#ihG`XhAIeBVr_eslQ*BjYA b0((>Z-}cR1VzT7iHg2s%Z?;sfG)Eo)oICp2 literal 0 HcmV?d00001 From c448c94fe3253ca8a2c2951b3ce1ecb03053c351 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Thu, 1 Jul 2021 15:29:50 -0400 Subject: [PATCH 0029/1574] pkcs7: pkcs7_get_content_info_type should reset *p on error The function `pkcs7_asn1_get_tag` should return an update pointer only on success. Currently, the pointer is being updated on a failure case. This commit resets *p to start if the first call to mbedtls_asn1_get_tag fails. Signed-off-by: Daniel Axtens Signed-off-by: Nick Child --- library/pkcs7.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 5563f330e..8c2a3ecaf 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -107,8 +107,10 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) + if( ret != 0 ) { + *p = start; return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + } ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); if( ret != 0 ) { From 390e61a47a0f9b369e80c413add2a1cde3230d8e Mon Sep 17 00:00:00 2001 From: Nick Child Date: Mon, 9 Aug 2021 13:33:14 -0400 Subject: [PATCH 0030/1574] pkcs7.h: Make pkcs7 fields private All fields in the mbedtls_pkcs7 struct have been made private with MBEDTLS_PRIVATE. Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 46 +++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 59da147b9..29bb503a7 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -46,6 +46,8 @@ #ifndef MBEDTLS_PKCS7_H #define MBEDTLS_PKCS7_H +#include "mbedtls/private_access.h" + #include "mbedtls/build_info.h" #include "asn1.h" @@ -115,14 +117,14 @@ mbedtls_pkcs7_type; */ typedef struct mbedtls_pkcs7_signer_info { - int version; - mbedtls_x509_buf serial; - mbedtls_x509_name issuer; - mbedtls_x509_buf issuer_raw; - mbedtls_x509_buf alg_identifier; - mbedtls_x509_buf sig_alg_identifier; - mbedtls_x509_buf sig; - struct mbedtls_pkcs7_signer_info *next; + int MBEDTLS_PRIVATE(version); + mbedtls_x509_buf MBEDTLS_PRIVATE(serial); + mbedtls_x509_name MBEDTLS_PRIVATE(issuer); + mbedtls_x509_buf MBEDTLS_PRIVATE(issuer_raw); + mbedtls_x509_buf MBEDTLS_PRIVATE(alg_identifier); + mbedtls_x509_buf MBEDTLS_PRIVATE(sig_alg_identifier); + mbedtls_x509_buf MBEDTLS_PRIVATE(sig); + struct mbedtls_pkcs7_signer_info *MBEDTLS_PRIVATE(next); } mbedtls_pkcs7_signer_info; @@ -131,8 +133,8 @@ mbedtls_pkcs7_signer_info; */ typedef struct mbedtls_pkcs7_data { - mbedtls_pkcs7_buf oid; - mbedtls_pkcs7_buf data; + mbedtls_pkcs7_buf MBEDTLS_PRIVATE(oid); + mbedtls_pkcs7_buf MBEDTLS_PRIVATE(data); } mbedtls_pkcs7_data; @@ -141,15 +143,15 @@ mbedtls_pkcs7_data; */ typedef struct mbedtls_pkcs7_signed_data { - int version; - mbedtls_pkcs7_buf digest_alg_identifiers; - struct mbedtls_pkcs7_data content; - int no_of_certs; - mbedtls_x509_crt certs; - int no_of_crls; - mbedtls_x509_crl crl; - int no_of_signers; - mbedtls_pkcs7_signer_info signers; + int MBEDTLS_PRIVATE(version); + mbedtls_pkcs7_buf MBEDTLS_PRIVATE(digest_alg_identifiers); + struct mbedtls_pkcs7_data MBEDTLS_PRIVATE(content); + int MBEDTLS_PRIVATE(no_of_certs); + mbedtls_x509_crt MBEDTLS_PRIVATE(certs); + int MBEDTLS_PRIVATE(no_of_crls); + mbedtls_x509_crl MBEDTLS_PRIVATE(crl); + int MBEDTLS_PRIVATE(no_of_signers); + mbedtls_pkcs7_signer_info MBEDTLS_PRIVATE(signers); } mbedtls_pkcs7_signed_data; @@ -158,9 +160,9 @@ mbedtls_pkcs7_signed_data; */ typedef struct mbedtls_pkcs7 { - mbedtls_pkcs7_buf raw; - mbedtls_pkcs7_buf content_type_oid; - mbedtls_pkcs7_signed_data signed_data; + mbedtls_pkcs7_buf MBEDTLS_PRIVATE(raw); + mbedtls_pkcs7_buf MBEDTLS_PRIVATE(content_type_oid); + mbedtls_pkcs7_signed_data MBEDTLS_PRIVATE(signed_data); } mbedtls_pkcs7; From 600bd30427a9d53b41c03e65f0816aa931669753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 21 Feb 2022 11:30:43 +0100 Subject: [PATCH 0031/1574] Avoid unwanted eol conversion of test data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, text files don't need to be generated by the Makefile. Signed-off-by: Manuel Pégourié-Gonnard --- tests/data_files/Makefile | 28 ++++++------------- .../{pkcs7_data.txt => pkcs7_data.bin} | 0 .../{pkcs7_data_1.txt => pkcs7_data_1.bin} | 0 tests/suites/test_suite_pkcs7.data | 12 ++++---- 4 files changed, 14 insertions(+), 26 deletions(-) rename tests/data_files/{pkcs7_data.txt => pkcs7_data.bin} (100%) rename tests/data_files/{pkcs7_data_1.txt => pkcs7_data_1.bin} (100%) diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index dbe32340f..8c7520fe3 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -1134,7 +1134,7 @@ tls13_certs: ecdsa_secp521r1.crt ecdsa_secp521r1.key # PKCS7 test data pkcs7_test_cert_1 = pkcs7-rsa-sha256-1.crt pkcs7_test_cert_2 = pkcs7-rsa-sha256-2.crt -pkcs7_test_file = pkcs7_data.txt +pkcs7_test_file = pkcs7_data.bin # Generate signing cert pkcs7-rsa-sha256-1.crt: @@ -1147,46 +1147,34 @@ pkcs7-rsa-sha256-2.crt: cat pkcs7-rsa-sha256-2.crt pkcs7-rsa-sha256-2.key > pkcs7-rsa-sha256-2.pem all_final += pkcs7-rsa-sha256-2.crt -# Generate data file to be signed -pkcs7_data.txt: - echo "Hello" > $@ - echo 2 >> pkcs7_data_1.txt -all_final += pkcs7_data.txt - -# Generate another data file to check hash mismatch during certificate verification -pkcs7_data_1.txt: $(pkcs7_test_file) - cat $(pkcs7_test_file) > $@ - echo 2 >> $@ -all_final += pkcs7_data_1.txt - # pkcs7 signature file with CERT pkcs7_data_cert_signed_sha256.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ all_final += pkcs7_data_cert_signed_sha256.der # pkcs7 signature file with CERT and sha1 pkcs7_data_cert_signed_sha1.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha1 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha1 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ all_final += pkcs7_data_cert_signed_sha1.der # pkcs7 signature file with CERT and sha512 pkcs7_data_cert_signed_sha512.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha512 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha512 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ all_final += pkcs7_data_cert_signed_sha512.der # pkcs7 signature file without CERT pkcs7_data_without_cert_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -nocerts -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -nocerts -noattr -outform DER -out $@ all_final += pkcs7_data_without_cert_signed.der # pkcs7 signature file with multiple signers pkcs7_data_multiple_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) $(pkcs7_test_cert_2) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -nocerts -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -nocerts -noattr -outform DER -out $@ all_final += pkcs7_data_multiple_signed.der # pkcs7 signature file with multiple certificates pkcs7_data_multiple_certs_signed.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) $(pkcs7_test_cert_2) - $(OPENSSL) smime -sign -binary -in pkcs7_data.txt -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -noattr -outform DER -out $@ + $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -signer pkcs7-rsa-sha256-2.pem -noattr -outform DER -out $@ all_final += pkcs7_data_multiple_certs_signed.der # pkcs7 signature file with corrupted CERT @@ -1208,7 +1196,7 @@ pkcs7_data_cert_signed_v2.der: pkcs7_data_cert_signed_sha256.der all_final += pkcs7_data_cert_signed_v2.der pkcs7_data_cert_encrypted.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) - $(OPENSSL) smime -encrypt -aes256 -in pkcs7_data.txt -binary -outform DER -out $@ pkcs7-rsa-sha256-1.crt + $(OPENSSL) smime -encrypt -aes256 -in pkcs7_data.bin -binary -outform DER -out $@ pkcs7-rsa-sha256-1.crt all_final += pkcs7_data_cert_encrypted.der ## Negative tests diff --git a/tests/data_files/pkcs7_data.txt b/tests/data_files/pkcs7_data.bin similarity index 100% rename from tests/data_files/pkcs7_data.txt rename to tests/data_files/pkcs7_data.bin diff --git a/tests/data_files/pkcs7_data_1.txt b/tests/data_files/pkcs7_data_1.bin similarity index 100% rename from tests/data_files/pkcs7_data_1.txt rename to tests/data_files/pkcs7_data_1.bin diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index 75ee9f6b0..4af0edad3 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -27,24 +27,24 @@ PKCS7 Signed Data Parse Fail Encrypted Content #8 pkcs7_parse_content_oid:"data_files/pkcs7_data_cert_encrypted.der" PKCS7 Signed Data Verification Pass SHA256 #9 -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.bin" PKCS7 Signed Data Verification Pass SHA256 #9.1 -pkcs7_verify_hash:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" +pkcs7_verify_hash:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.bin" PKCS7 Signed Data Verification Pass SHA1 #10 depends_on:MBEDTLS_SHA1_C -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha1.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha1.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.bin" PKCS7 Signed Data Verification Pass SHA512 #11 depends_on:MBEDTLS_SHA512_C -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha512.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.txt" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha512.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data.bin" PKCS7 Signed Data Verification Fail because of different certificate #12 -pkcs7_verify_badcert:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.txt" +pkcs7_verify_badcert:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" PKCS7 Signed Data Verification Fail because of different data hash #13 -pkcs7_verify_tampered_data:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data_1.txt" +pkcs7_verify_tampered_data:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7_data_1.bin" PKCS7 Signed Data Parse Failure Corrupt signerInfo.issuer #15.1 pkcs7_parse_failure:"data_files/pkcs7_signerInfo_issuer_invalid_size.der" From 6671841d919beb38ba3d1abc08d93cce8af3314f Mon Sep 17 00:00:00 2001 From: Nick Child Date: Tue, 22 Feb 2022 17:19:59 -0600 Subject: [PATCH 0032/1574] pkcs7.c: Do not ignore return value of mbedlts_md CI was failing due to the return value of mbedtls_md being ignored. If this function does fail, return early and propogate the md error. Signed-off-by: Nick Child --- library/pkcs7.c | 8 ++++++-- tests/suites/test_suite_pkcs7.function | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 8c2a3ecaf..1c73709de 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -523,8 +523,12 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); } - mbedtls_md( md_info, data, datalen, hash ); - + ret = mbedtls_md( md_info, data, datalen, hash ); + if( ret != 0 ) + { + mbedtls_free( hash ); + return( ret ); + } ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, 0, pkcs7->signed_data.signers.sig.p, pkcs7->signed_data.signers.sig.len ); diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index d85a45561..e2d76f36a 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -285,9 +285,10 @@ void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) md_info = mbedtls_md_info_from_type( md_alg ); - mbedtls_md( md_info, data, datalen, hash ); + res = mbedtls_md( md_info, data, datalen, hash ); + TEST_ASSERT( res == 0 ); - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash)); + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash) ); TEST_ASSERT( res == 0 ); exit: From 6427b34dec143af38afbf302cf6c8307894d4ffe Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 25 Feb 2022 11:43:31 -0600 Subject: [PATCH 0033/1574] pkcs7.c: Use pkcs7_get_version for signerInfo The function pkcs7_get_version can be used again when parsing the version of the signerInfo. Both require that the version be equal to 1. The pkcs7_get_version function will return error if the found value is not the expected version as opposed to mbedtls_asn1_get_int which does not. Signed-off-by: Nick Child --- library/pkcs7.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 1c73709de..5fa02e311 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -289,7 +289,7 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, end_set = end_set_signer; - ret = mbedtls_asn1_get_int( p, end_set, &signers_set->version ); + ret = pkcs7_get_version( p, end_set, &signers_set->version ); if( ret != 0 ) return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); From 45525d37688e8b3d9918ca8b59591a3604a9c6db Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 25 Feb 2022 11:54:34 -0600 Subject: [PATCH 0034/1574] pkcs7: Fix dependencies for pkcs7 tests Fixes include removing PEM dependency for greater coverage when PEM config is not set and defining test dependencies at the appropriate level. Signed-off-by: Nick Child --- tests/data_files/Makefile | 9 +++++++ tests/data_files/pkcs7-rsa-sha256-1.der | Bin 0 -> 845 bytes tests/data_files/pkcs7-rsa-sha256-2.der | Bin 0 -> 845 bytes tests/suites/test_suite_pkcs7.data | 33 +++++++++++++++++------- tests/suites/test_suite_pkcs7.function | 26 +++++++++---------- 5 files changed, 46 insertions(+), 22 deletions(-) create mode 100644 tests/data_files/pkcs7-rsa-sha256-1.der create mode 100644 tests/data_files/pkcs7-rsa-sha256-2.der diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 8c7520fe3..b92944ac2 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -1147,6 +1147,15 @@ pkcs7-rsa-sha256-2.crt: cat pkcs7-rsa-sha256-2.crt pkcs7-rsa-sha256-2.key > pkcs7-rsa-sha256-2.pem all_final += pkcs7-rsa-sha256-2.crt +# Convert signing certs to DER for testing PEM-free builds +pkcs7-rsa-sha256-1.der: $(pkcs7_test_cert_1) + $(OPENSSL) x509 -in pkcs7-rsa-sha256-1.crt -out $@ -outform DER +all_final += pkcs7-rsa-sha256-1.der + +pkcs7-rsa-sha256-2.der: $(pkcs7_test_cert_2) + $(OPENSSL) x509 -in pkcs7-rsa-sha256-2.crt -out $@ -outform DER +all_final += pkcs7-rsa-sha256-2.der + # pkcs7 signature file with CERT pkcs7_data_cert_signed_sha256.der: $(pkcs7_test_file) $(pkcs7_test_cert_1) $(OPENSSL) smime -sign -binary -in pkcs7_data.bin -out $@ -md sha256 -signer pkcs7-rsa-sha256-1.pem -noattr -outform DER -out $@ diff --git a/tests/data_files/pkcs7-rsa-sha256-1.der b/tests/data_files/pkcs7-rsa-sha256-1.der new file mode 100644 index 0000000000000000000000000000000000000000..622df1e7a38899b4da3a3601badd4fb36a333238 GIT binary patch literal 845 zcmXqLV)is>VlrI7%*4pVBw`>aSo3skbeK)@x~&Pb%e4X`66YH5vTwH$JbLRo$llQJx_~g5mBnX^&@X|JJO&8<>!io&TlW zro-4;JEAuDYNN)--fN5-t|xtF7Lu-iUAfBf+tqG=Gq2y%bU4?&2yXx6eQHw6U)8Xy zMM94^9|__wtI8HMSpHz6c;9>ZBQxahJUw~6p7V9_gHwxm=dr(=r|=`|)~hYe?{9~n zNI8DK*?g|R>foMoU7f$8_jc`!klwqvZN}gC$NN_I?cVFeaa`d?6Sv~mzc&pYvWW#Q z_EPiaEP0UA_93qFZdUsDuBFq=rzP>!^@jWn@%^y=*w-JjA6&lY8((<(?vdYxBiCjx zaAaa;WMEtzY!GN53yc(5J{B<+k=WS#3ojMliz!!~ar(=|l;3Jm<(vlcAZcY52?MbP z>hCTPm>zwz`M|_mN_W4RJ-=L~sV{Wl43ClijajNM!=@VlrI7%*4pVB;vW}r~J}88hi8BWNs3_WV?Uu`Gdy|c-c6$+C196^D;7W zvoaW%7;+nMvN4CUun9By`55vU@PIg6JgfoU&cWt}q6WesJ~Iywn6KcRT2!K7WFRNb zYh++(Xk=n&VrXD!83p7TB5}zywTV#)*?Ekt49rc8{0s(7j9g4jjEoHTbQwJM#213~Tme+zeW^Cn^8C z6LaszO_qWe4PI|NF7e`ke%*;W!>u8ypL1h3Obqg>Y!DE=wYef??!!=aiHYyN%D)a> z|9&kKGb01z;$VY716g3C$nvp>v4~tR+OThf|EhWoz7Kz&zhqYZ{U`LMfjmfBnMJ}t ztO2_MevkrTM#ldvtOm?L3OU$;sR9`6j0_7W9hH8e|1gug>20SSQ|G(#6Dx}qwf3bP zsi>&j$`Z1uOff%e=G$ZTDOV7Cf)zdRK7X zhL7Jw^C!MqY#6uU>4P)6o}I_9%Bb|jZ|dz?vwT(TvHS(=S6WZilkTY675Y`e>kH#v z?T&<#|6-@@Ph-)!aCKgL;ewDzO)1Cyr$x`K4xK2eb+j(4<;d1d!^h!1%>f(M`OAOu z$+EL3Zu$Ld*{iSOKZ4sgPc#*mJ0h@w_paFFNBWcAzZBVbKh#Ta>J3%? Date: Mon, 28 Feb 2022 10:09:16 -0600 Subject: [PATCH 0035/1574] pkcs7: Change copyright Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 4 +--- library/pkcs7.c | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 29bb503a7..7699b60d5 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -5,7 +5,7 @@ * https://tools.ietf.org/html/rfc2315 */ /* - * Copyright (C) 2019, IBM Corp, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,8 +19,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /** diff --git a/library/pkcs7.c b/library/pkcs7.c index 5fa02e311..9b66bdb23 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -1,17 +1,18 @@ -/* Copyright 2019 IBM Corp. +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #include "common.h" From 8a10f666923ee7e43cbfbc11243088bd7bb97e61 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Mon, 6 Jun 2022 12:18:40 -0500 Subject: [PATCH 0036/1574] test/pkcs7: Add init for PSA tests Initialize the PSA subsystem in the test functions. Signed-off-by: Nick Child --- tests/suites/test_suite_pkcs7.function | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 8b35c5755..01edadb5f 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -200,6 +200,8 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned ) mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; + USE_PSA_INIT(); + mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509 ); @@ -233,6 +235,7 @@ exit: mbedtls_x509_crt_free( &x509 ); mbedtls_free( data ); mbedtls_pkcs7_free( &pkcs7 ); + USE_PSA_DONE(); } /* END_CASE */ @@ -253,6 +256,8 @@ void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; + USE_PSA_INIT(); + mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509 ); @@ -296,6 +301,7 @@ exit: mbedtls_free( data ); mbedtls_pkcs7_free( &pkcs7 ); mbedtls_free( pkcs7_buf ); + USE_PSA_DONE(); } /* END_CASE */ @@ -313,6 +319,8 @@ void pkcs7_verify_badcert( char *pkcs7_file, char *crt, char *filetobesigned ) mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; + USE_PSA_INIT(); + mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509 ); @@ -346,6 +354,7 @@ exit: mbedtls_free( data ); mbedtls_pkcs7_free( &pkcs7 ); mbedtls_free( pkcs7_buf ); + USE_PSA_DONE(); } /* END_CASE */ @@ -363,6 +372,8 @@ void pkcs7_verify_tampered_data( char *pkcs7_file, char *crt, char *filetobesign mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; + USE_PSA_INIT(); + mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509 ); @@ -396,6 +407,7 @@ exit: mbedtls_pkcs7_free( &pkcs7 ); mbedtls_free( data ); mbedtls_free( pkcs7_buf ); + USE_PSA_DONE(); } /* END_CASE */ From 3538479faa7a73239671239feadbfac1b68b2f0c Mon Sep 17 00:00:00 2001 From: Daniel Axtens Date: Wed, 2 Sep 2020 14:48:45 +1000 Subject: [PATCH 0037/1574] pkcs7: support multiple signers Rather than only parsing/verifying one SignerInfo in the SignerInfos field of the PKCS7 stucture, allow the ability to parse and verify more than one signature. Verification will return success if any of the signatures produce a match. Signed-off-by: Daniel Axtens Signed-off-by: Nick Child --- library/pkcs7.c | 260 +++++++++++++++++-------- tests/suites/test_suite_pkcs7.data | 10 +- tests/suites/test_suite_pkcs7.function | 80 ++++++-- 3 files changed, 249 insertions(+), 101 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 9b66bdb23..0f4e1ec2b 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -250,7 +250,6 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, } /** - * SignerInfos ::= SET of SignerInfo * SignerInfo ::= SEQUENCE { * version Version; * issuerAndSerialNumber IssuerAndSerialNumber, @@ -261,6 +260,88 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, * encryptedDigest EncryptedDigest, * unauthenticatedAttributes * [1] IMPLICIT Attributes OPTIONAL, + * Returns 0 if the signerInfo is valid. + * Return negative error code for failure. + **/ +static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, + mbedtls_pkcs7_signer_info *signer ) +{ + unsigned char *end_signer; + int ret; + size_t len = 0; + + ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + end_signer = *p + len; + + ret = pkcs7_get_version( p, end_signer, &signer->version ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = mbedtls_asn1_get_tag( p, end_signer, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + /* Parsing IssuerAndSerialNumber */ + signer->issuer_raw.p = *p; + + ret = mbedtls_asn1_get_tag( p, end_signer, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + + ret = mbedtls_x509_get_name( p, *p + len, &signer->issuer ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + signer->issuer_raw.len = *p - signer->issuer_raw.p; + + ret = mbedtls_x509_get_serial( p, end_signer, &signer->serial ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->alg_identifier ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->sig_alg_identifier ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + ret = pkcs7_get_signature( p, end_signer, &signer->sig ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + /* Do not permit any unauthenticated attributes */ + if( *p != end_signer ) + return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + + return( 0 ); +} + +static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) +{ + mbedtls_x509_name *name_cur; + mbedtls_x509_name *name_prv; + + if( signer == NULL ) + return; + + name_cur = signer->issuer.next; + while( name_cur != NULL ) + { + name_prv = name_cur; + name_cur = name_cur->next; + mbedtls_free( name_prv ); + } +} + +/** + * SignerInfos ::= SET of SignerInfo * Return number of signers added to the signed data, * 0 or higher is valid. * Return negative error code for failure. @@ -268,76 +349,61 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, mbedtls_pkcs7_signer_info *signers_set ) { - unsigned char *end_set, *end_set_signer; + unsigned char *end_set; int ret; + int count = 0; size_t len = 0; + mbedtls_pkcs7_signer_info *signer, *prev; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ); if( ret != 0 ) return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + /* Detect zero signers */ + if( len == 0 ) + return( 0 ); + end_set = *p + len; - ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); + ret = pkcs7_get_signer_info( p, end_set, signers_set ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + return( ret ); + count++; - end_set_signer = *p + len; - if (end_set_signer != end_set) - return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + prev = signers_set; + while( *p != end_set ) + { + signer = mbedtls_calloc( 1, sizeof( mbedtls_pkcs7_signer_info ) ); + if( !signer ) + { + ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; + goto cleanup; + } - end_set = end_set_signer; + ret = pkcs7_get_signer_info( p, end_set, signer ); + if( ret != 0 ) { + mbedtls_free( signer ); + goto cleanup; + } + prev->next = signer; + prev = signer; + count++; + } - ret = pkcs7_get_version( p, end_set, &signers_set->version ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + return( count ); - ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); - - /* Parsing IssuerAndSerialNumber */ - signers_set->issuer_raw.p = *p; - - ret = mbedtls_asn1_get_tag( p, end_set, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); - - ret = mbedtls_x509_get_name( p, *p + len, &signers_set->issuer ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - signers_set->issuer_raw.len = *p - signers_set->issuer_raw.p; - - ret = mbedtls_x509_get_serial( p, end_set, &signers_set->serial ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - ret = pkcs7_get_digest_algorithm( p, end_set, &signers_set->alg_identifier ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - ret = pkcs7_get_digest_algorithm( p, end_set, &signers_set->sig_alg_identifier ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - ret = pkcs7_get_signature( p, end_set, &signers_set->sig ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - signers_set->next = NULL; - - if (*p != end_set) - return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - - /* Since in this version we strictly support single signer, and reaching - * here implies we have parsed successfully, we return 1. */ - - return( 1 ); +cleanup: + signer = signers_set->next; + pkcs7_free_signer_info( signers_set ); + while( signer ) + { + prev = signer; + signer = signer->next; + pkcs7_free_signer_info( prev ); + mbedtls_free( prev ); + } + return( ret ); } /** @@ -419,7 +485,7 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, signed_data->no_of_signers = ret; - /* Support single signer */ + /* Don't permit trailing data */ if ( p != end ) ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; @@ -507,34 +573,62 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, size_t datalen ) { - int ret; + int ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; unsigned char *hash; mbedtls_pk_context pk_cxt = cert->pk; const mbedtls_md_info_t *md_info; mbedtls_md_type_t md_alg; + mbedtls_pkcs7_signer_info *signer; - ret = mbedtls_oid_get_md_alg( &pkcs7->signed_data.digest_alg_identifiers, &md_alg ); - if( ret != 0 ) + if( pkcs7->signed_data.no_of_signers == 0 ) return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); - md_info = mbedtls_md_info_from_type( md_alg ); - hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); - if( hash == NULL ) { - return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); - } - - ret = mbedtls_md( md_info, data, datalen, hash ); - if( ret != 0 ) + /* + * Potential TODOs + * Currently we iterate over all signers and return success if any of them + * verify. + * + * However, we could make this better by checking against the certificate's + * identification and SignerIdentifier fields first. That would also allow + * us to distinguish between 'no signature for key' and 'signature for key + * failed to validate'. + * + * We could also cache hashes by md, so if there are several sigs all using + * the same algo we don't recalculate the hash each time. + */ + signer = &pkcs7->signed_data.signers; + while( signer ) { - mbedtls_free( hash ); - return( ret ); - } - ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, 0, - pkcs7->signed_data.signers.sig.p, - pkcs7->signed_data.signers.sig.len ); + ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); - mbedtls_free( hash ); + md_info = mbedtls_md_info_from_type( md_alg ); + + hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); + if( hash == NULL ) { + return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + } + + ret = mbedtls_md( md_info, data, datalen, hash ); + if( ret != 0 ) + { + mbedtls_free( hash ); + return( ret ); + } + + ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, + mbedtls_md_get_size( md_info ), + signer->sig.p, signer->sig.len ); + + mbedtls_free( hash ); + + if( ret == 0 ) + break; + + signer = signer->next; + } return( ret ); } @@ -564,8 +658,8 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, */ void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ) { - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; + mbedtls_pkcs7_signer_info *signer_cur; + mbedtls_pkcs7_signer_info *signer_prev; if( pkcs7 == NULL || pkcs7->raw.p == NULL ) return; @@ -575,12 +669,14 @@ void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ) mbedtls_x509_crt_free( &pkcs7->signed_data.certs ); mbedtls_x509_crl_free( &pkcs7->signed_data.crl ); - name_cur = pkcs7->signed_data.signers.issuer.next; - while( name_cur != NULL ) + signer_cur = pkcs7->signed_data.signers.next; + pkcs7_free_signer_info( &pkcs7->signed_data.signers ); + while( signer_cur != NULL ) { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_free( name_prv ); + signer_prev = signer_cur; + signer_cur = signer_prev->next; + pkcs7_free_signer_info( signer_prev ); + mbedtls_free( signer_prev ); } pkcs7->raw.p = NULL; diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index d5ecd21cc..daced32b5 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -10,13 +10,9 @@ PKCS7 Signed Data Parse Pass Without CERT #3 depends_on:MBEDTLS_SHA256_C pkcs7_parse_without_cert:"data_files/pkcs7_data_without_cert_signed.der" -PKCS7 Signed Data Parse Fail with multiple signers #4 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse_multiple_signers:"data_files/pkcs7_data_multiple_signed.der" - PKCS7 Signed Data Parse Fail with multiple certs #4 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_multiple_signers:"data_files/pkcs7_data_multiple_certs_signed.der" +pkcs7_parse_multiple_certs:"data_files/pkcs7_data_multiple_certs_signed.der" PKCS7 Signed Data Parse Fail with corrupted cert #5 depends_on:MBEDTLS_SHA256_C @@ -69,3 +65,7 @@ pkcs7_parse_failure:"data_files/pkcs7_signerInfo_serial_invalid_size.der" PKCS7 Only Signed Data Parse Pass #15 depends_on:MBEDTLS_SHA256_C pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der" + +PKCS7 Signed Data Verify with multiple signers #16 +depends_on:MBEDTLS_SHA256_C +pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" \ No newline at end of file diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 01edadb5f..261824d15 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -61,7 +61,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_RSA_C */ -void pkcs7_parse_multiple_signers( char *pkcs7_file ) +void pkcs7_parse_multiple_certs( char *pkcs7_file ) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -75,19 +75,7 @@ void pkcs7_parse_multiple_signers( char *pkcs7_file ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res < 0 ); - - switch ( res ){ - case MBEDTLS_ERR_PKCS7_INVALID_CERT: - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); - break; - - case MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO: - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); - break; - default: - TEST_ASSERT(0); - } + TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); exit: mbedtls_free( pkcs7_buf ); @@ -411,6 +399,70 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ +void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + struct stat st; + size_t datalen; + int res; + FILE *file; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509_1; + mbedtls_x509_crt x509_2; + + USE_PSA_INIT(); + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509_1 ); + mbedtls_x509_crt_init( &x509_2 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); + + TEST_ASSERT( pkcs7.signed_data.no_of_signers == 2 ); + + res = mbedtls_x509_crt_parse_file( &x509_1, crt1 ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_x509_crt_parse_file( &x509_2, crt2 ); + TEST_ASSERT( res == 0 ); + + res = stat( filetobesigned, &st ); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "r" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = ( unsigned char* ) calloc( datalen, sizeof(unsigned char) ); + buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen ); + + fclose( file ); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_1, data, datalen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_x509_crt_free( &x509_1 ); + mbedtls_x509_crt_free( &x509_2 ); + mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free( data ); + mbedtls_free( pkcs7_buf ); + USE_PSA_DONE(); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ void pkcs7_parse_failure( char *pkcs7_file ) { From 62b2d7e7d4a21500e2a159cbae4541903707133d Mon Sep 17 00:00:00 2001 From: Nick Child Date: Thu, 14 Jul 2022 16:24:59 -0500 Subject: [PATCH 0038/1574] pkcs7: Support verification of hash with multiple signers Make `mbedtls_pkcs7_signed_hash_verify` loop over all signatures in the PKCS7 structure and return success if any of them verify successfully. Signed-off-by: Nick Child --- library/pkcs7.c | 39 ++++++++++--- tests/suites/test_suite_pkcs7.data | 6 +- tests/suites/test_suite_pkcs7.function | 76 ++++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 9 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 0f4e1ec2b..65dc83a4c 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -637,18 +637,41 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *hash, size_t hashlen) { - int ret; + int ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + const mbedtls_md_info_t *md_info; mbedtls_md_type_t md_alg; mbedtls_pk_context pk_cxt; - - ret = mbedtls_oid_get_md_alg( &pkcs7->signed_data.digest_alg_identifiers, &md_alg ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + mbedtls_pkcs7_signer_info *signer; pk_cxt = cert->pk; - ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, hashlen, - pkcs7->signed_data.signers.sig.p, - pkcs7->signed_data.signers.sig.len ); + + if( pkcs7->signed_data.no_of_signers == 0 ) + return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + + signer = &pkcs7->signed_data.signers; + while( signer ) + { + ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); + if( ret != 0 ) + return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + + md_info = mbedtls_md_info_from_type( md_alg ); + + if( hashlen != mbedtls_md_get_size( md_info ) ) + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + signer = signer->next; + continue; + } + + ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, hashlen, + pkcs7->signed_data.signers.sig.p, + pkcs7->signed_data.signers.sig.len ); + if( ret == 0 ) + break; + + signer = signer->next; + } return ( ret ); } diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index daced32b5..b813c6d3e 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -68,4 +68,8 @@ pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der" PKCS7 Signed Data Verify with multiple signers #16 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" \ No newline at end of file +pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" + +PKCS7 Signed Data Hash Verify with multiple signers #17 +depends_on:MBEDTLS_SHA256_C +pkcs7_verify_hash_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 261824d15..9822fb826 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -293,6 +293,82 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ +void pkcs7_verify_hash_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned ) +{ + unsigned char *pkcs7_buf = NULL; + size_t buflen; + unsigned char *data = NULL; + unsigned char hash[32]; + struct stat st; + size_t datalen; + int res; + FILE *file; + const mbedtls_md_info_t *md_info; + mbedtls_md_type_t md_alg; + + mbedtls_pkcs7 pkcs7; + mbedtls_x509_crt x509_1; + mbedtls_x509_crt x509_2; + + USE_PSA_INIT(); + + mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_x509_crt_init( &x509_1 ); + mbedtls_x509_crt_init( &x509_2 ); + + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); + TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); + + TEST_ASSERT( pkcs7.signed_data.no_of_signers == 2 ); + + res = mbedtls_x509_crt_parse_file( &x509_1, crt1 ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_x509_crt_parse_file( &x509_2, crt2 ); + TEST_ASSERT( res == 0 ); + + res = stat( filetobesigned, &st ); + TEST_ASSERT( res == 0 ); + + file = fopen( filetobesigned, "r" ); + TEST_ASSERT( file != NULL ); + + datalen = st.st_size; + data = ( unsigned char* ) calloc( datalen, sizeof(unsigned char) ); + buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); + TEST_ASSERT( buflen == datalen ); + + fclose( file ); + + res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + TEST_ASSERT( res == 0 ); + TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); + + md_info = mbedtls_md_info_from_type( md_alg ); + + res = mbedtls_md( md_info, data, datalen, hash ); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash)); + TEST_ASSERT( res == 0 ); + + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); + TEST_ASSERT( res == 0 ); + +exit: + mbedtls_x509_crt_free( &x509_1 ); + mbedtls_x509_crt_free( &x509_2 ); + mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free( data ); + mbedtls_free( pkcs7_buf ); + USE_PSA_DONE(); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ void pkcs7_verify_badcert( char *pkcs7_file, char *crt, char *filetobesigned ) { From fd6cca44489255bcba6849663ede0dd212b6f8cb Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Tue, 12 Oct 2021 09:22:33 +0200 Subject: [PATCH 0039/1574] CID update to RFC 9146 The DTLS 1.2 CID specification has been published as RFC 9146. This PR updates the implementation to match the RFC content. Signed-off-by: Hannes Tschofenig --- include/mbedtls/check_config.h | 6 + include/mbedtls/mbedtls_config.h | 37 +++-- include/mbedtls/ssl.h | 24 ++-- library/ssl_msg.c | 232 +++++++++++++++++++++++++++---- library/ssl_tls12_client.c | 3 - library/ssl_tls12_server.c | 6 - tests/scripts/all.sh | 19 +++ tests/ssl-opt.sh | 50 +++++++ 8 files changed, 308 insertions(+), 69 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e00ffb5a9..3f4647a09 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -839,6 +839,12 @@ #error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)" #endif +#if !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) +#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequsites" +#endif + + #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ !defined(MBEDTLS_SSL_PROTO_TLS1_2) #error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequisites" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 990dc5851..4b5a3131e 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1320,9 +1320,7 @@ /** * \def MBEDTLS_SSL_DTLS_CONNECTION_ID * - * Enable support for the DTLS Connection ID extension - * (version draft-ietf-tls-dtls-connection-id-05, - * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05) + * Enable support for the DTLS Connection ID extension, * which allows to identify DTLS connections across changes * in the underlying transport. * @@ -1331,10 +1329,6 @@ * `mbedtls_ssl_conf_cid()`. See the corresponding documentation for * more information. * - * \warning The Connection ID extension is still in draft state. - * We make no stability promises for the availability - * or the shape of the API controlled by this option. - * * The maximum lengths of outgoing and incoming CIDs can be configured * through the options * - MBEDTLS_SSL_CID_OUT_LEN_MAX @@ -1344,7 +1338,23 @@ * * Uncomment to enable the Connection ID extension. */ -//#define MBEDTLS_SSL_DTLS_CONNECTION_ID +#define MBEDTLS_SSL_DTLS_CONNECTION_ID + + +/** + * \def MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT + * + * Defines whether RFC 9146 (default) or the legacy version + * (version draft-ietf-tls-dtls-connection-id-05, + * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05) + * is used. + * + * Set the value to 0 for the standard version, and + * 1 for the legacy draft version. + * + * Requires: MBEDTLS_SSL_DTLS_CONNECTION_ID + */ +#define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 0 /** * \def MBEDTLS_SSL_ASYNC_PRIVATE @@ -3539,17 +3549,6 @@ //#define MBEDTLS_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */ //#define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */ -/** \def MBEDTLS_TLS_EXT_CID - * - * At the time of writing, the CID extension has not been assigned its - * final value. Set this configuration option to make Mbed TLS use a - * different value. - * - * A future minor revision of Mbed TLS may change the default value of - * this option to match evolving standards and usage. - */ -//#define MBEDTLS_TLS_EXT_CID 254 - /** * Complete list of ciphersuites to use, in order of preference. * diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3d820a525..67d611804 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -401,7 +401,13 @@ #define MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16 #endif -/** \} name SECTION: Module settings */ +/* + * Default to standard CID mode + */ +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) +#define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 0 +#endif /* * Length of the verify data for secure renegotiation @@ -571,15 +577,10 @@ #define MBEDTLS_TLS_EXT_SIG_ALG_CERT 50 /* RFC 8446 TLS 1.3 */ #define MBEDTLS_TLS_EXT_KEY_SHARE 51 /* RFC 8446 TLS 1.3 */ -/* The value of the CID extension is still TBD as of - * draft-ietf-tls-dtls-connection-id-05 - * (https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05). - * - * A future minor revision of Mbed TLS may change the default value of - * this option to match evolving standards and usage. - */ -#if !defined(MBEDTLS_TLS_EXT_CID) -#define MBEDTLS_TLS_EXT_CID 254 /* TBD */ +#if MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 +#define MBEDTLS_TLS_EXT_CID 54 /* RFC 9146 DTLS 1.2 CID */ +#else +#define MBEDTLS_TLS_EXT_CID 254 /* Pre-RFC 9146 DTLS 1.2 CID */ #endif #define MBEDTLS_TLS_EXT_ECJPAKE_KKPP 256 /* experimental */ @@ -2003,8 +2004,9 @@ void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, * \brief Configure the use of the Connection ID (CID) * extension in the next handshake. * - * Reference: draft-ietf-tls-dtls-connection-id-05 + * Reference: RFC 9146 (or draft-ietf-tls-dtls-connection-id-05 * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05 + * for legacy version) * * The DTLS CID extension allows the reliable association of * DTLS records to DTLS connections across changes in the diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f..ecf7a2b4a 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -388,30 +388,80 @@ static int ssl_parse_inner_plaintext( unsigned char const *content, } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID || MBEDTLS_SSL_PROTO_TLS1_3 */ -/* `add_data` must have size 13 Bytes if the CID extension is disabled, - * and 13 + 1 + CID-length Bytes if the CID extension is enabled. */ +/* The size of the `add_data` structure depends on various + * factors, namely + * + * 1) CID functionality disabled + * + * additional_data = + * 8: seq_num + + * 1: type + + * 2: version + + * 2: length of inner plaintext + + * + * size = 13 bytes + * + * 2) CID functionality based on RFC 9146 enabled + * + * size = 8 + 1 + 1 + 1 + 2 + 2 + 6 + 2 + CID-length + * = 23 + CID-length + * + * 3) CID functionality based on legacy CID version + according to draft-ietf-tls-dtls-connection-id-05 + * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05 + * + * size = 13 + 1 + CID-length + * + * More information about the CID usage: + * + * Per Section 5.3 of draft-ietf-tls-dtls-connection-id-05 the + * size of the additional data structure is calculated as: + * + * additional_data = + * 8: seq_num + + * 1: tls12_cid + + * 2: DTLSCipherText.version + + * n: cid + + * 1: cid_length + + * 2: length_of_DTLSInnerPlaintext + * + * Per RFC 9146 the size of the add_data structure is calculated as: + * + * additional_data = + * 8: seq_num_placeholder + + * 1: tls12_cid + + * 1: cid_length + + * 1: tls12_cid + + * 2: DTLSCiphertext.version + + * 2: epoch + + * 6: sequence_number + + * n: cid + + * 2: length_of_DTLSInnerPlaintext + * + */ static void ssl_extract_add_data_from_record( unsigned char* add_data, size_t *add_data_len, mbedtls_record *rec, mbedtls_ssl_protocol_version - tls_version, + tls_version, size_t taglen ) { - /* Quoting RFC 5246 (TLS 1.2): + /* Several types of ciphers have been defined for use with TLS and DTLS, + * and the MAC calculations for those ciphers differ slightly. Further + * variants were added when the CID functionality was added with RFC 9146. + * This implementations also considers the use of a legacy version of the + * CID specification published in draft-ietf-tls-dtls-connection-id-05, + * which is used in deployments. + * + * We will distinguish between the non-CID and the CID cases below. + * + * --- Non-CID cases --- + * + * Quoting RFC 5246 (TLS 1.2): * * additional_data = seq_num + TLSCompressed.type + * TLSCompressed.version + TLSCompressed.length; * - * For the CID extension, this is extended as follows - * (quoting draft-ietf-tls-dtls-connection-id-05, - * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05): - * - * additional_data = seq_num + DTLSPlaintext.type + - * DTLSPlaintext.version + - * cid + - * cid_length + - * length_of_DTLSInnerPlaintext; - * * For TLS 1.3, the record sequence number is dropped from the AAD * and encoded within the nonce of the AEAD operation instead. * Moreover, the additional data involves the length of the TLS @@ -427,11 +477,72 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, * * TLSCiphertext.length = TLSInnerPlaintext.length + taglen. * - */ + * --- CID cases --- + * + * RFC 9146 uses a common pattern when constructing the data + * passed into a MAC / AEAD cipher. + * + * Data concatenation for MACs used with block ciphers with + * Encrypt-then-MAC Processing (with CID): + * + * data = seq_num_placeholder + + * tls12_cid + + * cid_length + + * tls12_cid + + * DTLSCiphertext.version + + * epoch + + * sequence_number + + * cid + + * DTLSCiphertext.length + + * IV + + * ENC(content + padding + padding_length) + * + * Data concatenation for MACs used with block ciphers (with CID): + * + * data = seq_num_placeholder + + * tls12_cid + + * cid_length + + * tls12_cid + + * DTLSCiphertext.version + + * epoch + + * sequence_number + + * cid + + * length_of_DTLSInnerPlaintext + + * DTLSInnerPlaintext.content + + * DTLSInnerPlaintext.real_type + + * DTLSInnerPlaintext.zeros + * + * AEAD ciphers use the following additional data calculation (with CIDs): + * + * additional_data = seq_num_placeholder + + * tls12_cid + + * cid_length + + * tls12_cid + + * DTLSCiphertext.version + + * epoch + + * sequence_number + + * cid + + * length_of_DTLSInnerPlaintext + * + * Section 5.3 of draft-ietf-tls-dtls-connection-id-05 (for legacy CID use) + * defines the additional data calculation as follows: + * + * additional_data = seq_num + + * tls12_cid + + * DTLSCipherText.version + + * cid + + * cid_length + + * length_of_DTLSInnerPlaintext + */ unsigned char *cur = add_data; size_t ad_len_field = rec->data_len; +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 + const unsigned char seq_num_placeholder[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; +#endif + #if defined(MBEDTLS_SSL_PROTO_TLS1_3) if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) { @@ -445,25 +556,78 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, { ((void) tls_version); ((void) taglen); - memcpy( cur, rec->ctr, sizeof( rec->ctr ) ); - cur += sizeof( rec->ctr ); + +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + +#if MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 + if( rec->cid_len != 0 ) + { + // seq_num_placeholder + memcpy( cur, seq_num_placeholder, sizeof(seq_num_placeholder) ); + cur += sizeof( seq_num_placeholder ); + + // tls12_cid type + *cur = rec->type; + cur++; + + // cid_length + *cur = rec->cid_len; + cur++; + } + else + { + // epoch + sequence number + memcpy( cur, rec->ctr, sizeof( rec->ctr ) ); + cur += sizeof( rec->ctr ); + } +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 */ +#else + // epoch + sequence number + memcpy(cur, rec->ctr, sizeof(rec->ctr)); + cur += sizeof(rec->ctr); +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ } + // type *cur = rec->type; cur++; + // version memcpy( cur, rec->ver, sizeof( rec->ver ) ); cur += sizeof( rec->ver ); -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( rec->cid_len != 0 ) +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 1 + + if (rec->cid_len != 0) { - memcpy( cur, rec->cid, rec->cid_len ); + // CID + memcpy(cur, rec->cid, rec->cid_len); cur += rec->cid_len; + // cid_length *cur = rec->cid_len; cur++; + // length of inner plaintext + MBEDTLS_PUT_UINT16_BE(ad_len_field, cur, 0); + cur += 2; + } + else +#elif defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 + + if( rec->cid_len != 0 ) + { + // epoch + sequence number + memcpy(cur, rec->ctr, sizeof(rec->ctr)); + cur += sizeof(rec->ctr); + + // CID + memcpy( cur, rec->cid, rec->cid_len ); + cur += rec->cid_len; + + // length of inner plaintext MBEDTLS_PUT_UINT16_BE( ad_len_field, cur, 0 ); cur += 2; } @@ -538,7 +702,14 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, mbedtls_ssl_mode_t ssl_mode; int auth_done = 0; unsigned char * data; - unsigned char add_data[13 + 1 + MBEDTLS_SSL_CID_OUT_LEN_MAX ]; + /* For an explanation of the additional data length see + * the descrpition of ssl_extract_add_data_from_record(). + */ +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + unsigned char add_data[23 + MBEDTLS_SSL_CID_OUT_LEN_MAX]; +#else + unsigned char add_data[13]; +#endif size_t add_data_len; size_t post_avail; @@ -1021,13 +1192,7 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, size_t sign_mac_length = 0; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - /* - * MAC(MAC_write_key, seq_num + - * TLSCipherText.type + - * TLSCipherText.version + - * length_of( (IV +) ENC(...) ) + - * IV + - * ENC(content + padding + padding_length)); + /* MAC(MAC_write_key, add_data, IV, ENC(content + padding + padding_length)) */ if( post_avail < transform->maclen) @@ -1133,7 +1298,14 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, size_t padlen = 0, correct = 1; #endif unsigned char* data; - unsigned char add_data[13 + 1 + MBEDTLS_SSL_CID_IN_LEN_MAX ]; + /* For an explanation of the additional data length see + * the descrpition of ssl_extract_add_data_from_record(). + */ +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + unsigned char add_data[23 + MBEDTLS_SSL_CID_IN_LEN_MAX]; +#else + unsigned char add_data[13]; +#endif size_t add_data_len; #if !defined(MBEDTLS_DEBUG_C) @@ -3487,7 +3659,7 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, { /* Shift pointers to account for record header including CID * struct { - * ContentType special_type = tls12_cid; + * ContentType outer_type = tls12_cid; * ProtocolVersion version; * uint16 epoch; * uint48 sequence_number; diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index f8140945d..79f34d345 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -235,9 +235,6 @@ static int ssl_write_cid_ext( mbedtls_ssl_context *ssl, size_t ext_len; /* - * Quoting draft-ietf-tls-dtls-connection-id-05 - * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05 - * * struct { * opaque cid<0..2^8-1>; * } ConnectionId; diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index eab27768b..8d1923879 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -358,9 +358,6 @@ static int ssl_parse_cid_ext( mbedtls_ssl_context *ssl, } /* - * Quoting draft-ietf-tls-dtls-connection-id-05 - * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05 - * * struct { * opaque cid<0..2^8-1>; * } ConnectionId; @@ -1748,9 +1745,6 @@ static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding CID extension" ) ); /* - * Quoting draft-ietf-tls-dtls-connection-id-05 - * https://tools.ietf.org/html/draft-ietf-tls-dtls-connection-id-05 - * * struct { * opaque cid<0..2^8-1>; * } ConnectionId; diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7f259f57d..e89108eb9 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2449,6 +2449,25 @@ component_test_variable_ssl_in_out_buffer_len_CID () { tests/compat.sh } +component_test_variable_ssl_in_out_buffer_len_CID_legacy () { + msg "build: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled (ASan build)" + scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH + scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID + scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 1 + + CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . + make + + msg "test: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID" + make test + + msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + tests/ssl-opt.sh + + msg "test: compat.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + tests/compat.sh +} + component_test_ssl_alloc_buffer_and_mfl () { msg "build: default config with memory buffer allocator and MFL extension" scripts/config.py set MBEDTLS_MEMORY_BUFFER_ALLOC_C diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c4628b017..36cb479d5 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -440,6 +440,14 @@ requires_max_content_len() { requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" $1 } +CID_MODE=$( get_config_value_or_default "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT" ) + +requires_cid_compat() { + if [ "$CID_MODE" = "0" ]; then + SKIP_NEXT="YES" + fi +} + # skip next test if GnuTLS isn't available requires_gnutls() { if [ -z "${GNUTLS_AVAILABLE:-}" ]; then @@ -2386,6 +2394,17 @@ run_test "Context serialization, client serializes, with CID" \ -S "Deserializing connection..." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION +requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID +requires_cid_compat +run_test "Context serialization, client serializes, with CID (legacy)" \ + "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ + "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ + 0 \ + -c "Deserializing connection..." \ + -S "Deserializing connection..." + + requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, server serializes, CCM" \ "$P_SRV dtls=1 serialize=1 exchanges=2" \ @@ -2422,6 +2441,16 @@ run_test "Context serialization, server serializes, with CID" \ -C "Deserializing connection..." \ -s "Deserializing connection..." +requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION +requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID +requires_cid_compat +run_test "Context serialization, server serializes, with CID (legacy)" \ + "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ + "$P_CLI dtls=1 serialize=0 exchanges=2 cid=1 cid_val=beef" \ + 0 \ + -C "Deserializing connection..." \ + -s "Deserializing connection..." + requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, both serialize, CCM" \ @@ -2460,6 +2489,17 @@ run_test "Context serialization, both serialize, with CID" \ -s "Deserializing connection..." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION +requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID +requires_cid_compat +run_test "Context serialization, both serialize, with CID (legacy)" \ + "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ + "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ + 0 \ + -c "Deserializing connection..." \ + -s "Deserializing connection..." + + requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, re-init, client serializes, CCM" \ "$P_SRV dtls=1 serialize=0 exchanges=2" \ @@ -2497,6 +2537,16 @@ run_test "Context serialization, re-init, client serializes, with CID" \ -S "Deserializing connection..." requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION +requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID +requires_cid_compat +run_test "Context serialization, re-init, client serializes, with CID (legacy)" \ + "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ + "$P_CLI dtls=1 serialize=2 exchanges=2 cid=1 cid_val=beef" \ + 0 \ + -c "Deserializing connection..." \ + -S "Deserializing connection..." + requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, re-init, server serializes, CCM" \ "$P_SRV dtls=1 serialize=2 exchanges=2" \ From 1577c548d18bdff22cd7bf127a57969d82402e3b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 9 Sep 2022 10:22:15 +0100 Subject: [PATCH 0040/1574] Use NULL instead of 0 Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 0118abd20..5a13f4e78 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -86,7 +86,7 @@ int main( void ) #define DFL_MAX_PATHLEN -1 #define DFL_SIG_ALG MBEDTLS_MD_SHA256 #define DFL_KEY_USAGE 0 -#define DFL_EXT_KEY_USAGE 0 +#define DFL_EXT_KEY_USAGE NULL #define DFL_NS_CERT_TYPE 0 #define DFL_VERSION 3 #define DFL_AUTH_IDENT 1 From 9f4fb3e63f90225661bf3268a6390aaeb3392423 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Mon, 12 Sep 2022 16:21:02 -0500 Subject: [PATCH 0041/1574] pkcs7: Unite function return style In response to feedback[1], standardize return variable management across all pkcs7 functions. Additionally, when adding return codes from two error values, use `MBEDTLS_ERROR_ADD` as recommended [2]. [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953634781 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953635128 Signed-off-by: Nick Child --- library/pkcs7.c | 233 +++++++++++++++++++++++++++++++----------------- 1 file changed, 152 insertions(+), 81 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 65dc83a4c..2299cfdac 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -24,6 +24,7 @@ #include "mbedtls/x509_crt.h" #include "mbedtls/x509_crl.h" #include "mbedtls/oid.h" +#include "mbedtls/error.h" #include #include @@ -64,15 +65,16 @@ void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ) static int pkcs7_get_next_content_len( unsigned char **p, unsigned char *end, size_t *len ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) + ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_CONTEXT_SPECIFIC ); + if( ret != 0 ) { - return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); } - return( 0 ); + return( ret ); } /** @@ -81,16 +83,17 @@ static int pkcs7_get_next_content_len( unsigned char **p, unsigned char *end, **/ static int pkcs7_get_version( unsigned char **p, unsigned char *end, int *ver ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_int( p, end, ver ) ) != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_VERSION + ret ); + ret = mbedtls_asn1_get_int( p, end, ver ); + if( ret != 0 ) + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_VERSION, ret ); /* If version != 1, return invalid version */ if( *ver != MBEDTLS_PKCS7_SUPPORTED_VERSION ) - return( MBEDTLS_ERR_PKCS7_INVALID_VERSION ); + ret = MBEDTLS_ERR_PKCS7_INVALID_VERSION; - return( 0 ); + return( ret ); } /** @@ -103,26 +106,29 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, mbedtls_pkcs7_buf *pkcs7 ) { size_t len = 0; - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *start = *p; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) { *p = start; - return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ); + goto out; } ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); if( ret != 0 ) { *p = start; - return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO + ret ); + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ); + goto out; } pkcs7->tag = MBEDTLS_ASN1_OID; pkcs7->len = len; pkcs7->p = *p; +out: return( ret ); } @@ -134,12 +140,12 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, static int pkcs7_get_digest_algorithm( unsigned char **p, unsigned char *end, mbedtls_x509_buf *alg ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( ( ret = mbedtls_asn1_get_alg_null( p, end, alg ) ) != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); - return( 0 ); + return( ret ); } /** @@ -150,24 +156,31 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, mbedtls_x509_buf *alg ) { size_t len = 0; - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_ALG + ret ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); + goto out; + } end = *p + len; /** For now, it assumes there is only one digest algorithm specified **/ ret = mbedtls_asn1_get_alg_null( p, end, alg ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_ALG + ret ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); + goto out; + } if ( *p != end ) - return ( MBEDTLS_ERR_PKCS7_INVALID_FORMAT ); + ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; - return( 0 ); +out: + return( ret ); } /** @@ -182,7 +195,7 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, mbedtls_x509_crt *certs ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len1 = 0; size_t len2 = 0; unsigned char *end_set, *end_cert; @@ -192,9 +205,10 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) { if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( 0 ); - - return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + ret = 0; + else + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); + goto out; } start = *p; end_set = *p + len1; @@ -202,7 +216,10 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, ret = mbedtls_asn1_get_tag( p, end_set, &len2, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_CERT + ret ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CERT, ret ); + goto out; + } end_cert = *p + len2; @@ -213,18 +230,28 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, * The behaviour would be improved with addition of multiple signer support. */ if (end_cert != end_set) - return ( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + { + ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; + goto out; + } *p = start; if( ( ret = mbedtls_x509_crt_parse( certs, *p, len1 ) ) < 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + { + ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; + goto out; + } *p = *p + len1; - /* Since in this version we strictly support single certificate, and reaching - * here implies we have parsed successfully, we return 1. */ + /* + * Since in this version we strictly support single certificate, and reaching + * here implies we have parsed successfully, we return 1. + */ + ret = 1; - return( 1 ); +out: + return( ret ); } /** @@ -233,12 +260,12 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, static int pkcs7_get_signature( unsigned char **p, unsigned char *end, mbedtls_pkcs7_buf *signature ) { - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OCTET_STRING ); if( ret != 0 ) - return( ret ); + goto out; signature->tag = MBEDTLS_ASN1_OCTET_STRING; signature->len = len; @@ -246,7 +273,8 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, *p = *p + len; - return( 0 ); +out: + return( ret ); } /** @@ -267,60 +295,67 @@ static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, mbedtls_pkcs7_signer_info *signer ) { unsigned char *end_signer; - int ret; + int asn1_ret = 0, ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + asn1_ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + if( asn1_ret != 0 ) + goto out; end_signer = *p + len; ret = pkcs7_get_version( p, end_signer, &signer->version ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; - ret = mbedtls_asn1_get_tag( p, end_signer, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + asn1_ret = mbedtls_asn1_get_tag( p, end_signer, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); + if( asn1_ret != 0 ) + goto out; /* Parsing IssuerAndSerialNumber */ signer->issuer_raw.p = *p; - ret = mbedtls_asn1_get_tag( p, end_signer, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + asn1_ret = mbedtls_asn1_get_tag( p, end_signer, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); + if( asn1_ret != 0 ) + goto out; ret = mbedtls_x509_get_name( p, *p + len, &signer->issuer ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; signer->issuer_raw.len = *p - signer->issuer_raw.p; ret = mbedtls_x509_get_serial( p, end_signer, &signer->serial ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->alg_identifier ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->sig_alg_identifier ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; ret = pkcs7_get_signature( p, end_signer, &signer->sig ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + goto out; /* Do not permit any unauthenticated attributes */ if( *p != end_signer ) - return ( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO ); + ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; - return( 0 ); +out: + if( asn1_ret != 0 ) + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, + asn1_ret ); + else if( ret != 0 ) + ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; + + return( ret ); } static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) @@ -350,7 +385,7 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, mbedtls_pkcs7_signer_info *signers_set ) { unsigned char *end_set; - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int count = 0; size_t len = 0; mbedtls_pkcs7_signer_info *signer, *prev; @@ -358,17 +393,23 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + ret ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, ret ); + goto out; + } /* Detect zero signers */ if( len == 0 ) - return( 0 ); + { + ret = 0; + goto out; + } end_set = *p + len; ret = pkcs7_get_signer_info( p, end_set, signers_set ); if( ret != 0 ) - return( ret ); + goto out; count++; prev = signers_set; @@ -391,7 +432,8 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, count++; } - return( count ); + ret = count; + goto out; cleanup: signer = signers_set->next; @@ -403,6 +445,8 @@ cleanup: pkcs7_free_signer_info( prev ); mbedtls_free( prev ); } + +out: return( ret ); } @@ -425,39 +469,46 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, unsigned char *end = buf + buflen; unsigned char *end_set; size_t len = 0; - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_alg; ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT + ret ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); + goto out; + } end_set = p + len; /* Get version of signed data */ ret = pkcs7_get_version( &p, end_set, &signed_data->version ); if( ret != 0 ) - return( ret ); + goto out; /* Get digest algorithm */ ret = pkcs7_get_digest_algorithm_set( &p, end_set, &signed_data->digest_alg_identifiers ); if( ret != 0 ) - return( ret ); + goto out; ret = mbedtls_oid_get_md_alg( &signed_data->digest_alg_identifiers, &md_alg ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); + { + ret = MBEDTLS_ERR_PKCS7_INVALID_ALG; + goto out; + } /* Do not expect any content */ ret = pkcs7_get_content_info_type( &p, end_set, &signed_data->content.oid ); if( ret != 0 ) - return( ret ); + goto out; if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &signed_data->content.oid ) ) { - return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO ) ; + ret = MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO; + goto out; } p = p + signed_data->content.oid.len; @@ -466,7 +517,7 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, mbedtls_x509_crt_init( &signed_data->certs ); ret = pkcs7_get_certificates( &p, end_set, &signed_data->certs ); if( ret < 0 ) - return( ret ) ; + goto out; signed_data->no_of_certs = ret; @@ -481,15 +532,17 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, /* Get signers info */ ret = pkcs7_get_signers_info_set( &p, end_set, &signed_data->signers ); if( ret < 0 ) - return( ret ); + goto out; signed_data->no_of_signers = ret; /* Don't permit trailing data */ if ( p != end ) ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; + else + ret = 0; - ret = 0; +out: return( ret ); } @@ -499,17 +552,21 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, unsigned char *start; unsigned char *end; size_t len = 0; - int ret; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int isoidset = 0; if( !pkcs7 ) - return( MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA ); + { + ret = MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA; + goto out; + } /* make an internal copy of the buffer for parsing */ pkcs7->raw.p = start = mbedtls_calloc( 1, buflen ); if( pkcs7->raw.p == NULL ) { - return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; + goto out; } memcpy( start, buf, buflen ); pkcs7->raw.len = buflen; @@ -573,7 +630,7 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, size_t datalen ) { - int ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *hash; mbedtls_pk_context pk_cxt = cert->pk; const mbedtls_md_info_t *md_info; @@ -581,8 +638,10 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, mbedtls_pkcs7_signer_info *signer; if( pkcs7->signed_data.no_of_signers == 0 ) - return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); - + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + goto out; + } /* * Potential TODOs @@ -602,20 +661,24 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, { ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + goto out; + } md_info = mbedtls_md_info_from_type( md_alg ); hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); if( hash == NULL ) { - return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; + goto out; } ret = mbedtls_md( md_info, data, datalen, hash ); if( ret != 0 ) { mbedtls_free( hash ); - return( ret ); + goto out; } ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, @@ -630,6 +693,7 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, signer = signer->next; } +out: return( ret ); } @@ -637,7 +701,7 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *hash, size_t hashlen) { - int ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_md_info_t *md_info; mbedtls_md_type_t md_alg; mbedtls_pk_context pk_cxt; @@ -646,14 +710,20 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, pk_cxt = cert->pk; if( pkcs7->signed_data.no_of_signers == 0 ) - return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + goto out; + } signer = &pkcs7->signed_data.signers; while( signer ) { ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); if( ret != 0 ) - return( MBEDTLS_ERR_PKCS7_VERIFY_FAIL ); + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + goto out; + } md_info = mbedtls_md_info_from_type( md_alg ); @@ -673,6 +743,7 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, signer = signer->next; } +out: return ( ret ); } From 8a94de40c711612048aa4583b8dc617b206b7f37 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 14 Sep 2022 10:51:51 -0500 Subject: [PATCH 0042/1574] test/pkcs7: Reduce number of test functions In response to feedback[1], we can reuse much of the functions in similar test cases by specifying some additional parameters. Specifically, test cases which probe the functionality of `mbedtls_pkcs7_parse_der` have all been merged into one test function. Additionally, all test cases which examine the `mbedtls_pkcs7_signed_data_verify` and `mbedtls_pkcs7_signed_hash_verify` functions have been merged into two test functions (one for single and one for multiple signers). [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953686780 Signed-off-by: Nick Child --- tests/suites/test_suite_pkcs7.data | 50 +-- tests/suites/test_suite_pkcs7.function | 439 ++----------------------- 2 files changed, 61 insertions(+), 428 deletions(-) diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index b813c6d3e..b26a16fb9 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -1,75 +1,75 @@ PKCS7 Signed Data Parse Pass SHA256 #1 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha256.der" +depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha256.der":MBEDTLS_PKCS7_SIGNED_DATA PKCS7 Signed Data Parse Pass SHA1 #2 -depends_on:MBEDTLS_SHA1_C:MBEDTLS_SHA256_C -pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha1.der" +depends_on:MBEDTLS_SHA1_C:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_cert_signed_sha1.der":MBEDTLS_PKCS7_SIGNED_DATA PKCS7 Signed Data Parse Pass Without CERT #3 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_without_cert:"data_files/pkcs7_data_without_cert_signed.der" +pkcs7_parse:"data_files/pkcs7_data_without_cert_signed.der":MBEDTLS_PKCS7_SIGNED_DATA PKCS7 Signed Data Parse Fail with multiple certs #4 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse_multiple_certs:"data_files/pkcs7_data_multiple_certs_signed.der" +depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_multiple_certs_signed.der":MBEDTLS_ERR_PKCS7_INVALID_CERT PKCS7 Signed Data Parse Fail with corrupted cert #5 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse_corrupted_cert:"data_files/pkcs7_data_signed_badcert.der" +depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_signed_badcert.der":MBEDTLS_ERR_PKCS7_INVALID_CERT PKCS7 Signed Data Parse Fail with corrupted signer info #6 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse_corrupted_signer_info:"data_files/pkcs7_data_signed_badsigner.der" +depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_signed_badsigner.der":MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO,MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) PKCS7 Signed Data Parse Fail Version other than 1 #7 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_version:"data_files/pkcs7_data_cert_signed_v2.der" +pkcs7_parse:"data_files/pkcs7_data_cert_signed_v2.der":MBEDTLS_ERR_PKCS7_INVALID_VERSION PKCS7 Signed Data Parse Fail Encrypted Content #8 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_content_oid:"data_files/pkcs7_data_cert_encrypted.der" +pkcs7_parse:"data_files/pkcs7_data_cert_encrypted.der":MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE PKCS7 Signed Data Verification Pass SHA256 #9 depends_on:MBEDTLS_SHA256_C -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin":0:0 PKCS7 Signed Data Verification Pass SHA256 #9.1 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_hash:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin":MBEDTLS_MD_SHA256:0 PKCS7 Signed Data Verification Pass SHA1 #10 depends_on:MBEDTLS_SHA1_C:MBEDTLS_SHA256_C -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha1.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha1.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin":0:0 PKCS7 Signed Data Verification Pass SHA512 #11 depends_on:MBEDTLS_SHA512_C:MBEDTLS_SHA256_C -pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha512.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha512.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data.bin":0:0 PKCS7 Signed Data Verification Fail because of different certificate #12 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_badcert:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-2.der":"data_files/pkcs7_data.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-2.der":"data_files/pkcs7_data.bin":0:MBEDTLS_ERR_RSA_VERIFY_FAILED PKCS7 Signed Data Verification Fail because of different data hash #13 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_tampered_data:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data_1.bin" +pkcs7_verify:"data_files/pkcs7_data_cert_signed_sha256.der":"data_files/pkcs7-rsa-sha256-1.der":"data_files/pkcs7_data_1.bin":0:MBEDTLS_ERR_RSA_VERIFY_FAILED PKCS7 Signed Data Parse Failure Corrupt signerInfo.issuer #15.1 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_failure:"data_files/pkcs7_signerInfo_issuer_invalid_size.der" +pkcs7_parse:"data_files/pkcs7_signerInfo_issuer_invalid_size.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO PKCS7 Signed Data Parse Failure Corrupt signerInfo.serial #15.2 depends_on:MBEDTLS_SHA256_C -pkcs7_parse_failure:"data_files/pkcs7_signerInfo_serial_invalid_size.der" +pkcs7_parse:"data_files/pkcs7_signerInfo_serial_invalid_size.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO PKCS7 Only Signed Data Parse Pass #15 -depends_on:MBEDTLS_SHA256_C -pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der" +depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C +pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der":MBEDTLS_PKCS7_SIGNED_DATA PKCS7 Signed Data Verify with multiple signers #16 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" +pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin":0:0 PKCS7 Signed Data Hash Verify with multiple signers #17 depends_on:MBEDTLS_SHA256_C -pkcs7_verify_hash_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin" +pkcs7_verify_multiple_signers:"data_files/pkcs7_data_multiple_signed.der":"data_files/pkcs7-rsa-sha256-1.crt":"data_files/pkcs7-rsa-sha256-2.crt":"data_files/pkcs7_data.bin":MBEDTLS_MD_SHA256:0 diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 9822fb826..8db3f3f53 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -14,31 +14,8 @@ * END_DEPENDENCIES */ -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_RSA_C */ -void pkcs7_parse( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void pkcs7_parse_without_cert( char *pkcs7_file ) +void pkcs7_parse( char *pkcs7_file, int res_expect ) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -52,7 +29,7 @@ void pkcs7_parse_without_cert( char *pkcs7_file ) TEST_ASSERT( res == 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); + TEST_ASSERT( res == res_expect ); exit: mbedtls_free( pkcs7_buf ); @@ -60,175 +37,8 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_RSA_C */ -void pkcs7_parse_multiple_certs( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); - -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_RSA_C */ -void pkcs7_parse_corrupted_cert( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_CERT ); - -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_RSA_C */ -void pkcs7_parse_corrupted_signer_info( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res < 0 ); - -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void pkcs7_parse_version( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_INVALID_VERSION ); - -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void pkcs7_parse_content_oid( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res != 0 ); - TEST_ASSERT( res == MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - unsigned char *data = NULL; - struct stat st; - size_t datalen; - int res; - FILE *file; - - mbedtls_pkcs7 pkcs7; - mbedtls_x509_crt x509; - - USE_PSA_INIT(); - - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509 ); - - res = mbedtls_x509_crt_parse_file( &x509, crt ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - mbedtls_free( pkcs7_buf ); - - res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); - - file = fopen( filetobesigned, "rb" ); - TEST_ASSERT( file != NULL ); - - datalen = st.st_size; - data = mbedtls_calloc( datalen, 1 ); - buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen); - - fclose(file); - - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); - TEST_ASSERT( res == 0 ); - -exit: - mbedtls_x509_crt_free( &x509 ); - mbedtls_free( data ); - mbedtls_pkcs7_free( &pkcs7 ); - USE_PSA_DONE(); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_SHA256_C */ -void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) +void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_hash_alg, int res_expect ) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -272,17 +82,23 @@ void pkcs7_verify_hash( char *pkcs7_file, char *crt, char *filetobesigned ) TEST_ASSERT( buflen == datalen); fclose( file ); - res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); - TEST_ASSERT( res == 0 ); - TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); + if( do_hash_alg ) + { + res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + TEST_ASSERT( res == 0 ); + TEST_ASSERT( md_alg == (mbedtls_md_type_t) do_hash_alg ); + md_info = mbedtls_md_info_from_type( md_alg ); - md_info = mbedtls_md_info_from_type( md_alg ); + res = mbedtls_md( md_info, data, datalen, hash ); + TEST_ASSERT( res == 0 ); - res = mbedtls_md( md_info, data, datalen, hash ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash) ); - TEST_ASSERT( res == 0 ); + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash) ); + } + else + { + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); + } + TEST_ASSERT( res == res_expect ); exit: mbedtls_x509_crt_free( &x509 ); @@ -294,7 +110,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify_hash_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned ) +void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned, int do_hash_alg, int res_expect ) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -344,20 +160,28 @@ void pkcs7_verify_hash_multiple_signers( char *pkcs7_file, char *crt1, char *crt fclose( file ); - res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); - TEST_ASSERT( res == 0 ); - TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); + if( do_hash_alg ) + { + res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + TEST_ASSERT( res == 0 ); + TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); - md_info = mbedtls_md_info_from_type( md_alg ); + md_info = mbedtls_md_info_from_type( md_alg ); - res = mbedtls_md( md_info, data, datalen, hash ); - TEST_ASSERT( res == 0 ); + res = mbedtls_md( md_info, data, datalen, hash ); + TEST_ASSERT( res == 0 ); - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash)); - TEST_ASSERT( res == 0 ); + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash)); + TEST_ASSERT( res == res_expect ); + } + else + { + res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_1, data, datalen ); + TEST_ASSERT( res == res_expect ); + } res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT( res == res_expect ); exit: mbedtls_x509_crt_free( &x509_1 ); @@ -368,194 +192,3 @@ exit: USE_PSA_DONE(); } /* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify_badcert( char *pkcs7_file, char *crt, char *filetobesigned ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - unsigned char *data = NULL; - struct stat st; - size_t datalen; - int res; - FILE *file; - - mbedtls_pkcs7 pkcs7; - mbedtls_x509_crt x509; - - USE_PSA_INIT(); - - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - - res = mbedtls_x509_crt_parse_file( &x509, crt ); - TEST_ASSERT( res == 0 ); - - res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); - - file = fopen( filetobesigned, "rb" ); - TEST_ASSERT( file != NULL ); - - datalen = st.st_size; - data = mbedtls_calloc( datalen, 1 ); - buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen); - - fclose(file); - - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); - TEST_ASSERT( res != 0 ); - -exit: - mbedtls_x509_crt_free( &x509 ); - mbedtls_free( data ); - mbedtls_pkcs7_free( &pkcs7 ); - mbedtls_free( pkcs7_buf ); - USE_PSA_DONE(); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify_tampered_data( char *pkcs7_file, char *crt, char *filetobesigned ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - unsigned char *data = NULL; - struct stat st; - size_t datalen; - int res; - FILE *file; - - mbedtls_pkcs7 pkcs7; - mbedtls_x509_crt x509; - - USE_PSA_INIT(); - - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - - res = mbedtls_x509_crt_parse_file( &x509, crt ); - TEST_ASSERT( res == 0 ); - - res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); - - file = fopen( filetobesigned, "rb" ); - TEST_ASSERT( file != NULL ); - - datalen = st.st_size; - data = mbedtls_calloc( datalen, 1 ); - buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen); - - fclose(file); - - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); - TEST_ASSERT( res != 0 ); - -exit: - mbedtls_x509_crt_free( &x509 ); - mbedtls_pkcs7_free( &pkcs7 ); - mbedtls_free( data ); - mbedtls_free( pkcs7_buf ); - USE_PSA_DONE(); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - unsigned char *data = NULL; - struct stat st; - size_t datalen; - int res; - FILE *file; - - mbedtls_pkcs7 pkcs7; - mbedtls_x509_crt x509_1; - mbedtls_x509_crt x509_2; - - USE_PSA_INIT(); - - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509_1 ); - mbedtls_x509_crt_init( &x509_2 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); - - TEST_ASSERT( pkcs7.signed_data.no_of_signers == 2 ); - - res = mbedtls_x509_crt_parse_file( &x509_1, crt1 ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_x509_crt_parse_file( &x509_2, crt2 ); - TEST_ASSERT( res == 0 ); - - res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); - - file = fopen( filetobesigned, "r" ); - TEST_ASSERT( file != NULL ); - - datalen = st.st_size; - data = ( unsigned char* ) calloc( datalen, sizeof(unsigned char) ); - buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen ); - - fclose( file ); - - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_1, data, datalen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); - TEST_ASSERT( res == 0 ); - -exit: - mbedtls_x509_crt_free( &x509_1 ); - mbedtls_x509_crt_free( &x509_2 ); - mbedtls_pkcs7_free( &pkcs7 ); - mbedtls_free( data ); - mbedtls_free( pkcs7_buf ); - USE_PSA_DONE(); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void pkcs7_parse_failure( char *pkcs7_file ) -{ - unsigned char *pkcs7_buf = NULL; - size_t buflen; - int res; - mbedtls_pkcs7 pkcs7; - - mbedtls_pkcs7_init( &pkcs7 ); - - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); - - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res != 0 ); -exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); -} -/* END_CASE */ From 7089ce83812a13191ba4f3af4b68e840d4660693 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 14 Sep 2022 14:10:00 -0500 Subject: [PATCH 0043/1574] pkcs7: Handle md errors in multisigner pkcs7 verification In resonse to feedback [1], if `mbedtls_md_info_from_type` were to fail then skip the signer and try the next one. Additionally, use a for loop instead of a while loop when iterating over signers because it simplifies the use of `continue`. [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967198650 Signed-off-by: Nick Child --- library/pkcs7.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 2299cfdac..3178ddcab 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -656,17 +656,21 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, * We could also cache hashes by md, so if there are several sigs all using * the same algo we don't recalculate the hash each time. */ - signer = &pkcs7->signed_data.signers; - while( signer ) + for( signer = &pkcs7->signed_data.signers; signer; signer = signer->next ) { ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); if( ret != 0 ) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - goto out; + continue; } md_info = mbedtls_md_info_from_type( md_alg ); + if( md_info == NULL ) + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + continue; + } hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); if( hash == NULL ) { @@ -677,8 +681,9 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, ret = mbedtls_md( md_info, data, datalen, hash ); if( ret != 0 ) { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; mbedtls_free( hash ); - goto out; + continue; } ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, @@ -689,8 +694,6 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, if( ret == 0 ) break; - - signer = signer->next; } out: @@ -716,16 +719,21 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, } signer = &pkcs7->signed_data.signers; - while( signer ) + for( signer = &pkcs7->signed_data.signers; signer; signer = signer->next ) { ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); if( ret != 0 ) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - goto out; + continue; } md_info = mbedtls_md_info_from_type( md_alg ); + if( md_info == NULL ) + { + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + continue; + } if( hashlen != mbedtls_md_get_size( md_info ) ) { @@ -739,8 +747,6 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, pkcs7->signed_data.signers.sig.len ); if( ret == 0 ) break; - - signer = signer->next; } out: From 34d5e931cf50a0647d13b05ac1577333b2c8a249 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 14 Sep 2022 14:44:03 -0500 Subject: [PATCH 0044/1574] pkcs7: Use better return code for unimplemented specifications In response to feedback [1] [2], use MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE instead of MBEDTLS_ERR_PKCS7_INVALID_FORMAT for errors due to the pkcs7 implemntation being incomplete. [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953649079 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953658276 Signed-off-by: Nick Child --- library/pkcs7.c | 6 +++--- tests/suites/test_suite_pkcs7.data | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 3178ddcab..9dcbab26c 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -168,7 +168,6 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, end = *p + len; - /** For now, it assumes there is only one digest algorithm specified **/ ret = mbedtls_asn1_get_alg_null( p, end, alg ); if( ret != 0 ) { @@ -176,8 +175,9 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, goto out; } + /** For now, it assumes there is only one digest algorithm specified **/ if ( *p != end ) - ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; + ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; out: return( ret ); @@ -231,7 +231,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, */ if (end_cert != end_set) { - ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; + ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; goto out; } diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index b26a16fb9..4f81b6f28 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -12,7 +12,7 @@ pkcs7_parse:"data_files/pkcs7_data_without_cert_signed.der":MBEDTLS_PKCS7_SIGNED PKCS7 Signed Data Parse Fail with multiple certs #4 depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C -pkcs7_parse:"data_files/pkcs7_data_multiple_certs_signed.der":MBEDTLS_ERR_PKCS7_INVALID_CERT +pkcs7_parse:"data_files/pkcs7_data_multiple_certs_signed.der":MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE PKCS7 Signed Data Parse Fail with corrupted cert #5 depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C From 8ce1b1afc87c7551e3cb5efa99c1b2fce6ef953d Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 14 Sep 2022 14:51:23 -0500 Subject: [PATCH 0045/1574] pkcs7: Correct various syntatical mistakes Resond to feedback from the following comments: - use correct spacing [1-7] - remove unnecessary parenthesis [8] - fixup comments [9-11] - remove unnecessary init work [12] - use var instead of type for sizeof [13] [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953655691 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953661514 [3] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953689929 [4] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953696384 [5] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953697558 [6] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953697793 [7] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953697951 [8] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r953699102 [9] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r971223775 [10] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967133905 [11] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967135932 [12] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967151430 [13] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967154159 Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 17 ++++++++--------- library/pkcs7.c | 10 +++++----- tests/suites/test_suite_pkcs7.function | 10 +++++----- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 7699b60d5..c56926fd5 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -22,23 +22,22 @@ */ /** - * Note: For the time being, this application of the PKCS7 cryptographic + * Note: For the time being, this implementation of the PKCS7 cryptographic * message syntax is a partial implementation of RFC 2315. * Differences include: * - The RFC specifies 6 different content types. The only type currently - * supported in MbedTLS is the signed data content type. + * supported in Mbed TLS is the signed data content type. * - The only supported PKCS7 Signed Data syntax version is version 1 - * - The RFC specifies support for BER. This application is limited to + * - The RFC specifies support for BER. This implementation is limited to * DER only. * - The RFC specifies that multiple digest algorithms can be specified - * in the Signed Data type. Only one digest algorithm is supported in MbedTLS. - * - The RFC specifies the Signed Data certificate format can be - * X509 or PKCS6. The only type currently supported in MbedTLS is X509. + * in the Signed Data type. Only one digest algorithm is supported in Mbed TLS. + * - The RFC specifies the Signed Data type can contain multiple X509 or PKCS6 + * certificates. In Mbed TLS, this list can only contain 0 or 1 certificates + * and they must be in X509 format. * - The RFC specifies the Signed Data type can contain - * certificate-revocation lists (crls). This application has no support + * certificate-revocation lists (crls). This implementation has no support * for crls so it is assumed to be an empty list. - * - The RFC specifies support for multiple signers. This application only - * supports the Signed Data type with a single signer. */ #ifndef MBEDTLS_PKCS7_H diff --git a/library/pkcs7.c b/library/pkcs7.c index 9dcbab26c..5ec10891c 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -58,8 +58,7 @@ */ void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ) { - memset( pkcs7, 0, sizeof( mbedtls_pkcs7 ) ); - pkcs7->raw.p = NULL; + memset( pkcs7, 0, sizeof( *pkcs7 ) ); } static int pkcs7_get_next_content_len( unsigned char **p, unsigned char *end, @@ -229,7 +228,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, * So, we support only the root certificate and the single signer. * The behaviour would be improved with addition of multiple signer support. */ - if (end_cert != end_set) + if ( end_cert != end_set ) { ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; goto out; @@ -702,7 +701,8 @@ out: int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, - const unsigned char *hash, size_t hashlen) + const unsigned char *hash, + size_t hashlen ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_md_info_t *md_info; @@ -750,7 +750,7 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, } out: - return ( ret ); + return( ret ); } /* diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 8db3f3f53..c5094bcca 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -76,15 +76,15 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has datalen = st.st_size; data = mbedtls_calloc( datalen, 1 ); - TEST_ASSERT( data != NULL); + TEST_ASSERT( data != NULL ); buflen = fread( (void *)data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen); + TEST_ASSERT( buflen == datalen ); fclose( file ); if( do_hash_alg ) { - res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); TEST_ASSERT( res == 0 ); TEST_ASSERT( md_alg == (mbedtls_md_type_t) do_hash_alg ); md_info = mbedtls_md_info_from_type( md_alg ); @@ -162,7 +162,7 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch if( do_hash_alg ) { - res = mbedtls_oid_get_md_alg( &(pkcs7.signed_data.digest_alg_identifiers), &md_alg ); + res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); TEST_ASSERT( res == 0 ); TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); @@ -171,7 +171,7 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch res = mbedtls_md( md_info, data, datalen, hash ); TEST_ASSERT( res == 0 ); - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash)); + res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash) ); TEST_ASSERT( res == res_expect ); } else From 945b23c46f5e462e476490e1bf24494c5495729b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 19:29:40 +0200 Subject: [PATCH 0046/1574] Include platform.h unconditionally: automatic part We used to include platform.h only when MBEDTLS_PLATFORM_C was enabled, and to define ad hoc replacements for mbedtls_xxx functions on a case-by-case basis when MBEDTLS_PLATFORM_C was disabled. The only reason for this complication was to allow building individual source modules without copying platform.h. This is not something we support or recommend anymore, so get rid of the complication: include platform.h unconditionally. There should be no change in behavior since just including the header should not change the behavior of a program. This commit replaces most occurrences of conditional inclusion of platform.h, using the following code: ``` perl -i -0777 -pe 's!#if.*\n#include "mbedtls/platform.h"\n(#else.*\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*)?#endif.*!#include "mbedtls/platform.h"!mg' $(git grep -l '#include "mbedtls/platform.h"') ``` Signed-off-by: Gilles Peskine --- 3rdparty/everest/library/everest.c | 5 ----- library/aes.c | 5 ----- library/aria.c | 5 ----- library/asn1parse.c | 6 ------ library/asn1write.c | 6 ------ library/base64.c | 5 ----- library/bignum.c | 8 -------- library/bignum_core.c | 8 -------- library/bignum_mod.c | 8 -------- library/bignum_mod_raw.c | 8 -------- library/camellia.c | 5 ----- library/chacha20.c | 5 ----- library/chachapoly.c | 5 ----- library/cipher.c | 5 ----- library/cipher_wrap.c | 6 ------ library/ctr_drbg.c | 5 ----- library/debug.c | 9 --------- library/des.c | 5 ----- library/dhm.c | 8 -------- library/ecdsa.c | 6 ------ library/ecjpake.c | 5 ----- library/ecp.c | 8 -------- library/entropy.c | 7 ------- library/entropy_poll.c | 2 -- library/hmac_drbg.c | 5 ----- library/md.c | 6 ------ library/md5.c | 5 ----- library/mps_trace.h | 6 ------ library/net_sockets.c | 4 ---- library/nist_kw.c | 5 ----- library/oid.c | 4 ---- library/pem.c | 6 ------ library/pk_wrap.c | 6 ------ library/pkcs5.c | 5 ----- library/pkparse.c | 6 ------ library/pkwrite.c | 6 ------ library/poly1305.c | 5 ----- library/psa_crypto_slot_management.c | 5 ----- library/psa_crypto_storage.c | 6 ------ library/psa_its_file.c | 4 ---- library/ripemd160.c | 5 ----- library/rsa.c | 7 ------- library/sha1.c | 5 ----- library/sha256.c | 8 -------- library/sha512.c | 8 -------- library/ssl_cache.c | 6 ------ library/ssl_ciphersuites.c | 4 ---- library/ssl_client.c | 6 ------ library/ssl_cookie.c | 5 ----- library/ssl_msg.c | 6 ------ library/ssl_ticket.c | 6 ------ library/ssl_tls.c | 8 -------- library/ssl_tls12_client.c | 6 ------ library/ssl_tls12_server.c | 6 ------ library/ssl_tls13_server.c | 6 ------ library/x509.c | 9 --------- library/x509_crl.c | 8 -------- library/x509_crt.c | 8 -------- library/x509_csr.c | 8 -------- library/x509write_csr.c | 6 ------ programs/aes/crypt_and_hash.c | 10 ---------- programs/hash/generic_sum.c | 10 ---------- programs/hash/hello.c | 9 --------- programs/pkey/dh_client.c | 10 ---------- programs/pkey/dh_genprime.c | 10 ---------- programs/pkey/dh_server.c | 10 ---------- programs/pkey/ecdh_curve25519.c | 9 --------- programs/pkey/ecdsa.c | 9 --------- programs/pkey/gen_key.c | 9 --------- programs/pkey/key_app.c | 9 --------- programs/pkey/key_app_writer.c | 9 --------- programs/pkey/mpi_demo.c | 9 --------- programs/pkey/pk_decrypt.c | 9 --------- programs/pkey/pk_encrypt.c | 10 ---------- programs/pkey/pk_sign.c | 10 ---------- programs/pkey/pk_verify.c | 10 ---------- programs/pkey/rsa_decrypt.c | 9 --------- programs/pkey/rsa_encrypt.c | 10 ---------- programs/pkey/rsa_genkey.c | 9 --------- programs/pkey/rsa_sign.c | 11 ----------- programs/pkey/rsa_sign_pss.c | 10 ---------- programs/pkey/rsa_verify.c | 10 ---------- programs/pkey/rsa_verify_pss.c | 10 ---------- programs/random/gen_entropy.c | 10 ---------- programs/random/gen_random_ctr_drbg.c | 10 ---------- programs/ssl/dtls_client.c | 10 ---------- programs/ssl/dtls_server.c | 11 ----------- programs/ssl/mini_client.c | 9 --------- programs/ssl/ssl_client1.c | 12 ------------ programs/ssl/ssl_fork_server.c | 11 ----------- programs/ssl/ssl_mail_client.c | 12 ------------ programs/ssl/ssl_pthread_server.c | 11 ----------- programs/ssl/ssl_server.c | 12 ------------ programs/ssl/ssl_test_lib.h | 16 ---------------- programs/test/cmake_package/cmake_package.c | 10 ---------- .../cmake_package_install.c | 10 ---------- .../test/cmake_subproject/cmake_subproject.c | 10 ---------- programs/test/dlopen.c | 10 ---------- programs/test/query_compile_time_config.c | 7 ------- programs/test/selftest.c | 12 ------------ programs/test/zeroize.c | 8 -------- programs/util/pem2der.c | 11 ----------- programs/util/strerror.c | 7 ------- programs/x509/cert_app.c | 12 ------------ programs/x509/cert_req.c | 9 --------- programs/x509/cert_write.c | 9 --------- programs/x509/crl_app.c | 9 --------- programs/x509/load_roots.c | 12 ------------ programs/x509/req_app.c | 9 --------- scripts/data_files/error.fmt | 4 ---- scripts/data_files/query_config.fmt | 5 ----- tests/include/test/helpers.h | 13 ------------- tests/include/test/macros.h | 13 ------------- tests/suites/helpers.function | 13 ------------- 114 files changed, 898 deletions(-) diff --git a/3rdparty/everest/library/everest.c b/3rdparty/everest/library/everest.c index 82c4e03ad..fefc6a2ce 100644 --- a/3rdparty/everest/library/everest.c +++ b/3rdparty/everest/library/everest.c @@ -28,12 +28,7 @@ #include "everest/x25519.h" #include "everest/everest.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) diff --git a/library/aes.c b/library/aes.c index ca94e0a16..872930f2a 100644 --- a/library/aes.c +++ b/library/aes.c @@ -41,12 +41,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_AES_ALT) diff --git a/library/aria.c b/library/aria.c index bc05c4a31..cfa69c2ad 100644 --- a/library/aria.c +++ b/library/aria.c @@ -32,12 +32,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_ARIA_ALT) diff --git a/library/asn1parse.c b/library/asn1parse.c index 83c7c58a1..d874fff46 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -31,13 +31,7 @@ #include "mbedtls/bignum.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* * ASN.1 DER decoding routines diff --git a/library/asn1write.c b/library/asn1write.c index 053dbb669..f1adcb55f 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -26,13 +26,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_t len ) { diff --git a/library/base64.c b/library/base64.c index 83daa0bcc..9021a041b 100644 --- a/library/base64.c +++ b/library/base64.c @@ -28,12 +28,7 @@ #if defined(MBEDTLS_SELF_TEST) #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #define BASE64_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ diff --git a/library/bignum.c b/library/bignum.c index acf620f9a..24b6abe63 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -48,15 +48,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define MPI_VALIDATE_RET( cond ) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) diff --git a/library/bignum_core.c b/library/bignum_core.c index 8e89766a7..4471a4db7 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -26,15 +26,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" diff --git a/library/bignum_mod.c b/library/bignum_mod.c index de2809372..f2c11a582 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -27,15 +27,7 @@ #include "mbedtls/error.h" #include "mbedtls/bignum.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" #include "bignum_mod.h" diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8c89b2cdf..e1c96d612 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -26,15 +26,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "bignum_core.h" #include "bignum_mod_raw.h" diff --git a/library/camellia.c b/library/camellia.c index 29d730ab5..24651a9a8 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CAMELLIA_ALT) diff --git a/library/chacha20.c b/library/chacha20.c index 658f04690..f92e5074a 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHA20_ALT) diff --git a/library/chachapoly.c b/library/chachapoly.c index dc75b2030..9ae043b3b 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -29,12 +29,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHAPOLY_ALT) diff --git a/library/cipher.c b/library/cipher.c index 0bac4ee99..4de290a46 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -63,12 +63,7 @@ #include "mbedtls/nist_kw.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define CIPHER_VALIDATE_RET( cond ) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ) diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c index 7da7d9d52..8e395b301 100644 --- a/library/cipher_wrap.c +++ b/library/cipher_wrap.c @@ -68,13 +68,7 @@ #include #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_GCM_C) /* shared by all GCM ciphers */ diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index 8919c78a1..d55f9a479 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -37,12 +37,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ /* diff --git a/library/debug.c b/library/debug.c index fa60d13f3..bdbf6dd11 100644 --- a/library/debug.c +++ b/library/debug.c @@ -21,16 +21,7 @@ #if defined(MBEDTLS_DEBUG_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_time_t time_t -#define mbedtls_snprintf snprintf -#define mbedtls_vsnprintf vsnprintf -#endif #include "mbedtls/debug.h" #include "mbedtls/error.h" diff --git a/library/des.c b/library/des.c index 91d22b5d9..0576099ce 100644 --- a/library/des.c +++ b/library/des.c @@ -34,12 +34,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_DES_ALT) diff --git a/library/dhm.c b/library/dhm.c index 1e95bdab0..c01388e71 100644 --- a/library/dhm.c +++ b/library/dhm.c @@ -43,15 +43,7 @@ #include "mbedtls/asn1.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if !defined(MBEDTLS_DHM_ALT) diff --git a/library/ecdsa.c b/library/ecdsa.c index dcdf83c7a..c58e33155 100644 --- a/library/ecdsa.c +++ b/library/ecdsa.c @@ -36,13 +36,7 @@ #include "mbedtls/hmac_drbg.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/platform_util.h" #include "mbedtls/error.h" diff --git a/library/ecjpake.c b/library/ecjpake.c index 308c1af3e..6cb70c022 100644 --- a/library/ecjpake.c +++ b/library/ecjpake.c @@ -815,12 +815,7 @@ cleanup: #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif #if !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ !defined(MBEDTLS_SHA256_C) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc..ee6c24a46 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -84,15 +84,7 @@ #if !defined(MBEDTLS_ECP_ALT) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "ecp_internal_alt.h" diff --git a/library/entropy.c b/library/entropy.c index 08c5bd7d1..12184d670 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -32,17 +32,10 @@ #include #endif -#if defined(MBEDTLS_ENTROPY_NV_SEED) #include "mbedtls/platform.h" -#endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/entropy_poll.c b/library/entropy_poll.c index 2ae57fdc0..2df9bbec9 100644 --- a/library/entropy_poll.c +++ b/library/entropy_poll.c @@ -35,9 +35,7 @@ #if defined(MBEDTLS_TIMING_C) #include "mbedtls/timing.h" #endif -#if defined(MBEDTLS_ENTROPY_NV_SEED) || !defined(HAVE_SYSCTL_ARND) #include "mbedtls/platform.h" -#endif #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) diff --git a/library/hmac_drbg.c b/library/hmac_drbg.c index 8b13a860f..3c89f5749 100644 --- a/library/hmac_drbg.c +++ b/library/hmac_drbg.c @@ -38,12 +38,7 @@ #endif #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_SELF_TEST */ #endif /* MBEDTLS_PLATFORM_C */ /* diff --git a/library/md.c b/library/md.c index a387da50a..8efcf105b 100644 --- a/library/md.c +++ b/library/md.c @@ -36,13 +36,7 @@ #include "mbedtls/sha256.h" #include "mbedtls/sha512.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include diff --git a/library/md5.c b/library/md5.c index a9bbcb488..a01b6dd29 100644 --- a/library/md5.c +++ b/library/md5.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_MD5_ALT) diff --git a/library/mps_trace.h b/library/mps_trace.h index 7c2360118..820a1b66c 100644 --- a/library/mps_trace.h +++ b/library/mps_trace.h @@ -30,13 +30,7 @@ #include "mps_common.h" #include "mps_trace.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_vsnprintf vsnprintf -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_MPS_ENABLE_TRACE) diff --git a/library/net_sockets.c b/library/net_sockets.c index d1700f3bb..637b9f8d8 100644 --- a/library/net_sockets.c +++ b/library/net_sockets.c @@ -37,11 +37,7 @@ #error "This module only works on Unix and Windows, see MBEDTLS_NET_C in mbedtls_config.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#endif #include "mbedtls/net_sockets.h" #include "mbedtls/error.h" diff --git a/library/nist_kw.c b/library/nist_kw.c index 1aea0b634..6be6998dc 100644 --- a/library/nist_kw.c +++ b/library/nist_kw.c @@ -40,12 +40,7 @@ #include #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_NIST_KW_ALT) diff --git a/library/oid.c b/library/oid.c index 4ecf62184..9a20a2782 100644 --- a/library/oid.c +++ b/library/oid.c @@ -32,11 +32,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif /* * Macro to automatically add the size of #define'd OIDs diff --git a/library/pem.c b/library/pem.c index f2ee5ca35..1e2e2c13d 100644 --- a/library/pem.c +++ b/library/pem.c @@ -33,13 +33,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if defined(MBEDTLS_USE_PSA_CRYPTO) #include "psa/crypto.h" diff --git a/library/pk_wrap.c b/library/pk_wrap.c index 2d4f4f221..5de8fa65f 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -55,13 +55,7 @@ #include "hash_info.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/pkcs5.c b/library/pkcs5.c index 847496d18..ac5945a11 100644 --- a/library/pkcs5.c +++ b/library/pkcs5.c @@ -42,12 +42,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif #include "hash_info.h" #include "mbedtls/psa_util.h" diff --git a/library/pkparse.c b/library/pkparse.c index 73d59a6bb..9b6516511 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -48,13 +48,7 @@ #include "mbedtls/pkcs12.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* Parameter validation macros based on platform_util.h */ #define PK_VALIDATE_RET( cond ) \ diff --git a/library/pkwrite.c b/library/pkwrite.c index 8b9934050..c198e6c32 100644 --- a/library/pkwrite.c +++ b/library/pkwrite.c @@ -51,13 +51,7 @@ #include "psa/crypto.h" #include "mbedtls/psa_util.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* Parameter validation macros based on platform_util.h */ #define PK_VALIDATE_RET( cond ) \ diff --git a/library/poly1305.c b/library/poly1305.c index 7375a0c57..a2b223303 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -29,12 +29,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_POLY1305_ALT) diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c index a18350ee1..9dceaac6d 100644 --- a/library/psa_crypto_slot_management.c +++ b/library/psa_crypto_slot_management.c @@ -34,12 +34,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( *( array ) ) ) diff --git a/library/psa_crypto_storage.c b/library/psa_crypto_storage.c index db7786d6c..3186a3685 100644 --- a/library/psa_crypto_storage.c +++ b/library/psa_crypto_storage.c @@ -36,13 +36,7 @@ #include "psa/internal_trusted_storage.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif diff --git a/library/psa_its_file.c b/library/psa_its_file.c index b7c2e6b04..a35ac2494 100644 --- a/library/psa_its_file.c +++ b/library/psa_its_file.c @@ -22,11 +22,7 @@ #if defined(MBEDTLS_PSA_ITS_FILE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif #if defined(_WIN32) #include diff --git a/library/ripemd160.c b/library/ripemd160.c index 41d838722..1c7e17ff3 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -34,12 +34,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_RIPEMD160_ALT) diff --git a/library/rsa.c b/library/rsa.c index e59755534..df6d59c1b 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -63,14 +63,7 @@ #endif /* MBEDTLS_MD_C */ #endif /* MBEDTLS_PKCS1_V21 */ -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #if !defined(MBEDTLS_RSA_ALT) diff --git a/library/sha1.c b/library/sha1.c index 6fc937123..4f65e23fd 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -33,12 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #define SHA1_VALIDATE_RET(cond) \ diff --git a/library/sha256.c b/library/sha256.c index ac15ef8d1..2e65e6fd8 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -33,15 +33,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) diff --git a/library/sha512.c b/library/sha512.c index be03ec331..beb548ace 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -39,15 +39,7 @@ #include #if defined(MBEDTLS_SELF_TEST) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) diff --git a/library/ssl_cache.c b/library/ssl_cache.c index 6505e1140..8405d2798 100644 --- a/library/ssl_cache.c +++ b/library/ssl_cache.c @@ -25,13 +25,7 @@ #if defined(MBEDTLS_SSL_CACHE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl_cache.h" #include "ssl_misc.h" diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index dc5044963..591beb866 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -23,11 +23,7 @@ #if defined(MBEDTLS_SSL_TLS_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#endif #include "mbedtls/ssl_ciphersuites.h" #include "mbedtls/ssl.h" diff --git a/library/ssl_client.c b/library/ssl_client.c index e7453d573..b4c645a16 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -24,13 +24,7 @@ #if defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) || defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 8777833b9..1c0cbe0c8 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -25,12 +25,7 @@ #if defined(MBEDTLS_SSL_COOKIE_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl_cookie.h" #include "ssl_misc.h" diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f..5ceb145c9 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -26,13 +26,7 @@ #if defined(MBEDTLS_SSL_TLS_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_misc.h" diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c index 359686afa..e39563bc4 100644 --- a/library/ssl_ticket.c +++ b/library/ssl_ticket.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_TICKET_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "ssl_misc.h" #include "mbedtls/ssl_ticket.h" diff --git a/library/ssl_tls.c b/library/ssl_tls.c index af65e6d86..173ae2591 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -27,15 +27,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_printf printf -#endif /* !MBEDTLS_PLATFORM_C */ #include "mbedtls/ssl.h" #include "ssl_client.h" diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index d1ec55cfc..7b62e71a5 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_client.h" diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 997f5848e..66c61a3aa 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -21,13 +21,7 @@ #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ssl.h" #include "ssl_misc.h" diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index a10e59bbc..ee0ffab19 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -34,13 +34,7 @@ #include "mbedtls/ecp.h" #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif /* MBEDTLS_PLATFORM_C */ #include "ssl_misc.h" #include "ssl_tls13_keys.h" diff --git a/library/x509.c b/library/x509.c index aa3951799..6fe0410a3 100644 --- a/library/x509.c +++ b/library/x509.c @@ -43,16 +43,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_HAVE_TIME) #include "mbedtls/platform_time.h" diff --git a/library/x509_crl.c b/library/x509_crl.c index 0cd996dab..2a3fac790 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -42,15 +42,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_HAVE_TIME) #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) diff --git a/library/x509_crt.c b/library/x509_crt.c index af1e487db..c4f97bbe2 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -50,15 +50,7 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #include "hash_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_THREADING_C) #include "mbedtls/threading.h" diff --git a/library/x509_csr.c b/library/x509_csr.c index 25069b2a4..dee0ea62d 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -42,15 +42,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_FS_IO) || defined(EFIX64) || defined(EFI32) #include diff --git a/library/x509write_csr.c b/library/x509write_csr.c index c4dd1b7c8..976f6e6df 100644 --- a/library/x509write_csr.c +++ b/library/x509write_csr.c @@ -45,13 +45,7 @@ #include "mbedtls/pem.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ) { diff --git a/programs/aes/crypt_and_hash.c b/programs/aes/crypt_and_hash.c index 136e25ba4..476c20e22 100644 --- a/programs/aes/crypt_and_hash.c +++ b/programs/aes/crypt_and_hash.c @@ -25,17 +25,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_CIPHER_C) && defined(MBEDTLS_MD_C) && \ defined(MBEDTLS_FS_IO) diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c index f38a9769d..6f49e79be 100644 --- a/programs/hash/generic_sum.c +++ b/programs/hash/generic_sum.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_MD_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/md.h" diff --git a/programs/hash/hello.c b/programs/hash/hello.c index cb8de8b71..3ef065263 100644 --- a/programs/hash/hello.c +++ b/programs/hash/hello.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MD5_C) #include "mbedtls/md5.h" diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c index 45de57b46..3619cb216 100644 --- a/programs/pkey/dh_client.c +++ b/programs/pkey/dh_client.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_AES_C) && defined(MBEDTLS_DHM_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_NET_C) && \ diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 9ada4eae1..2e696e574 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \ diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c index 29563088f..e6f53ed62 100644 --- a/programs/pkey/dh_server.c +++ b/programs/pkey/dh_server.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_AES_C) && defined(MBEDTLS_DHM_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_NET_C) && \ diff --git a/programs/pkey/ecdh_curve25519.c b/programs/pkey/ecdh_curve25519.c index 281a26b0d..5dd6bddb4 100644 --- a/programs/pkey/ecdh_curve25519.c +++ b/programs/pkey/ecdh_curve25519.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_ECDH_C) || \ !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index c1c50702b..1035bb273 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_ECDSA_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C) diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 8779519b6..9e5329fb8 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_PK_WRITE_C) && defined(MBEDTLS_FS_IO) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C) diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c index bd16b24b9..02a19e95a 100644 --- a/programs/pkey/key_app.c +++ b/programs/pkey/key_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && \ defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c index df1e50248..589bee9ae 100644 --- a/programs/pkey/key_app_writer.c +++ b/programs/pkey/key_app_writer.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_PK_WRITE_C) && \ defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c index eed8dfcfc..4c34b99e7 100644 --- a/programs/pkey/mpi_demo.c +++ b/programs/pkey/mpi_demo.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/bignum.h" diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c index b09b6b889..0d8388f2b 100644 --- a/programs/pkey/pk_decrypt.c +++ b/programs/pkey/pk_decrypt.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_PK_PARSE_C) && \ defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_C) && \ diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c index 3df11f7fd..5d45738dd 100644 --- a/programs/pkey/pk_encrypt.c +++ b/programs/pkey/pk_encrypt.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_PK_PARSE_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c index 7b5d8e171..301edb875 100644 --- a/programs/pkey/pk_sign.c +++ b/programs/pkey/pk_sign.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/pk_verify.c b/programs/pkey/pk_verify.c index e82653b51..6b9645221 100644 --- a/programs/pkey/pk_verify.c +++ b/programs/pkey/pk_verify.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_PK_PARSE_C) || \ diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c index c01a5cf63..783f3ca54 100644 --- a/programs/pkey/rsa_decrypt.c +++ b/programs/pkey/rsa_decrypt.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_RSA_C) && \ defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_C) && \ diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c index 25a42d323..777b22e79 100644 --- a/programs/pkey/rsa_encrypt.c +++ b/programs/pkey/rsa_encrypt.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_RSA_C) && \ defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) && \ diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c index 67711bd66..7acda8139 100644 --- a/programs/pkey/rsa_genkey.c +++ b/programs/pkey/rsa_genkey.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BIGNUM_C) && defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) && \ diff --git a/programs/pkey/rsa_sign.c b/programs/pkey/rsa_sign.c index 1df9b13b1..f4deab029 100644 --- a/programs/pkey/rsa_sign.c +++ b/programs/pkey/rsa_sign.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c index 8078ab624..0cbde0224 100644 --- a/programs/pkey/rsa_sign_pss.c +++ b/programs/pkey/rsa_sign_pss.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/pkey/rsa_verify.c b/programs/pkey/rsa_verify.c index a8b1abb84..a3fa6d7d1 100644 --- a/programs/pkey/rsa_verify.c +++ b/programs/pkey/rsa_verify.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ diff --git a/programs/pkey/rsa_verify_pss.c b/programs/pkey/rsa_verify_pss.c index 3a207785c..7dcccda9f 100644 --- a/programs/pkey/rsa_verify_pss.c +++ b/programs/pkey/rsa_verify_pss.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_snprintf snprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c index 4deb92435..f0ffea2ce 100644 --- a/programs/random/gen_entropy.c +++ b/programs/random/gen_entropy.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/entropy.h" diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c index 0a9e2dd3b..2a3dd54e8 100644 --- a/programs/random/gen_random_ctr_drbg.c +++ b/programs/random/gen_random_ctr_drbg.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_FS_IO) diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c index e06d535ee..23a34e049 100644 --- a/programs/ssl/dtls_client.c +++ b/programs/ssl/dtls_client.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_SSL_CLI_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) || \ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_TIMING_C) || \ diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c index 931744937..10d82ba87 100644 --- a/programs/ssl/dtls_server.c +++ b/programs/ssl/dtls_server.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* Uncomment out the following line to default to IPv4 and disable IPv6 */ //#define FORCE_IPV4 diff --git a/programs/ssl/mini_client.c b/programs/ssl/mini_client.c index 8f2fed82a..efcf65016 100644 --- a/programs/ssl/mini_client.c +++ b/programs/ssl/mini_client.c @@ -20,16 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* * We're creating and connecting the socket "manually" rather than using the diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c index a80ff713c..5025698a8 100644 --- a/programs/ssl/ssl_client1.c +++ b/programs/ssl/ssl_client1.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c index 07b3e6fb5..49de984d8 100644 --- a/programs/ssl/ssl_fork_server.c +++ b/programs/ssl/ssl_fork_server.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_time_t time_t -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \ diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index 664a38490..9fb65079e 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -26,19 +26,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c index ac14789d3..b3ec7d699 100644 --- a/programs/ssl/ssl_pthread_server.c +++ b/programs/ssl/ssl_pthread_server.c @@ -20,18 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_SRV_C) || \ diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c index 3b663726c..c9d9df2ef 100644 --- a/programs/ssl/ssl_server.c +++ b/programs/ssl/ssl_server.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PEM_PARSE_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_SSL_TLS_C) || \ diff --git a/programs/ssl/ssl_test_lib.h b/programs/ssl/ssl_test_lib.h index c368f573a..659b3ab2c 100644 --- a/programs/ssl/ssl_test_lib.h +++ b/programs/ssl/ssl_test_lib.h @@ -22,23 +22,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_printf printf -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_setbuf setbuf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #undef HAVE_RNG #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \ diff --git a/programs/test/cmake_package/cmake_package.c b/programs/test/cmake_package/cmake_package.c index 1ae627d42..4105d2b35 100644 --- a/programs/test/cmake_package/cmake_package.c +++ b/programs/test/cmake_package/cmake_package.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/cmake_package_install/cmake_package_install.c b/programs/test/cmake_package_install/cmake_package_install.c index 9d5d3e4c7..48fb559f6 100644 --- a/programs/test/cmake_package_install/cmake_package_install.c +++ b/programs/test/cmake_package_install/cmake_package_install.c @@ -20,17 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/cmake_subproject/cmake_subproject.c b/programs/test/cmake_subproject/cmake_subproject.c index ff6ebf02e..b1d005cd7 100644 --- a/programs/test/cmake_subproject/cmake_subproject.c +++ b/programs/test/cmake_subproject/cmake_subproject.c @@ -20,17 +20,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #include "mbedtls/version.h" diff --git a/programs/test/dlopen.c b/programs/test/dlopen.c index c0836046a..ff61fcde0 100644 --- a/programs/test/dlopen.c +++ b/programs/test/dlopen.c @@ -19,17 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_X509_CRT_PARSE_C) #include "mbedtls/x509_crt.h" diff --git a/programs/test/query_compile_time_config.c b/programs/test/query_compile_time_config.c index 5aa023348..f37973cb2 100644 --- a/programs/test/query_compile_time_config.c +++ b/programs/test/query_compile_time_config.c @@ -19,14 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #define USAGE \ "usage: %s [ -all | -any | -l ] ...\n\n" \ diff --git a/programs/test/selftest.c b/programs/test/selftest.c index ab337a21f..2d6103c31 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -54,19 +54,7 @@ #include #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" diff --git a/programs/test/zeroize.c b/programs/test/zeroize.c index d6e55614f..979b5515f 100644 --- a/programs/test/zeroize.c +++ b/programs/test/zeroize.c @@ -29,15 +29,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #include "mbedtls/platform_util.h" diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c index cf6a56c6c..7138fa854 100644 --- a/programs/util/pem2der.c +++ b/programs/util/pem2der.c @@ -19,18 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_BASE64_C) && defined(MBEDTLS_FS_IO) #include "mbedtls/error.h" diff --git a/programs/util/strerror.c b/programs/util/strerror.c index f91da1307..66052fdab 100644 --- a/programs/util/strerror.c +++ b/programs/util/strerror.c @@ -19,14 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#endif #if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) #include "mbedtls/error.h" diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index 985b9704c..00d563fc7 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -19,19 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_CLI_C) || \ diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 7460bbf1c..30b389ab4 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CSR_WRITE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_SHA256_C) || \ diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 793982d5a..c93ff1e98 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CRT_WRITE_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c index aa353be0a..28cb99e6e 100644 --- a/programs/x509/crl_app.c +++ b/programs/x509/crl_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CRL_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/programs/x509/load_roots.c b/programs/x509/load_roots.c index e07bed721..b8b0ecdee 100644 --- a/programs/x509/load_roots.c +++ b/programs/x509/load_roots.c @@ -46,19 +46,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_time time -#define mbedtls_time_t time_t -#define mbedtls_fprintf fprintf -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_TIMING_C) diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c index 24324ff3d..dda14e1e3 100644 --- a/programs/x509/req_app.c +++ b/programs/x509/req_app.c @@ -19,16 +19,7 @@ #include "mbedtls/build_info.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_exit exit -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CSR_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt index c42d2ffef..fc210b908 100644 --- a/scripts/data_files/error.fmt +++ b/scripts/data_files/error.fmt @@ -25,11 +25,7 @@ #if defined(MBEDTLS_ERROR_C) -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#define mbedtls_snprintf snprintf -#endif #include #include diff --git a/scripts/data_files/query_config.fmt b/scripts/data_files/query_config.fmt index 59eb16897..b5d3eec95 100644 --- a/scripts/data_files/query_config.fmt +++ b/scripts/data_files/query_config.fmt @@ -21,12 +21,7 @@ #include "query_config.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ /* * Include all the headers with public APIs in case they define a macro to its diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 93a3e1132..13c87fd59 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -37,20 +37,7 @@ #define MBEDTLS_TEST_MUTEX_USAGE #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #include #include diff --git a/tests/include/test/macros.h b/tests/include/test/macros.h index 8535b9307..695a2433a 100644 --- a/tests/include/test/macros.h +++ b/tests/include/test/macros.h @@ -28,20 +28,7 @@ #include -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function index a620178f6..0af4ca9f8 100644 --- a/tests/suites/helpers.function +++ b/tests/suites/helpers.function @@ -12,20 +12,7 @@ #if defined (MBEDTLS_ERROR_C) #include "mbedtls/error.h" #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#define mbedtls_fprintf fprintf -#define mbedtls_snprintf snprintf -#define mbedtls_calloc calloc -#define mbedtls_free free -#define mbedtls_exit exit -#define mbedtls_time time -#define mbedtls_time_t time_t -#define MBEDTLS_EXIT_SUCCESS EXIT_SUCCESS -#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE -#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" From a7aa80c058048bed00ca8fdff4b696cb11dbaa07 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:22:04 +0200 Subject: [PATCH 0047/1574] Include platform.h unconditionally: second automatic part Some source files included platform.h in a nested conditional. The previous commit "Include platform.h unconditionally: automatic part" only removed the outer conditional. This commit removes the inner conditional. This commit once again replaces most occurrences of conditional inclusion of platform.h, using the following code: ``` perl -i -0777 -pe 's!#if.*\n#include "mbedtls/platform.h"\n(#else.*\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*)?#endif.*!#include "mbedtls/platform.h"!mg' $(git grep -l '#include "mbedtls/platform.h"') ``` Signed-off-by: Gilles Peskine --- library/aes.c | 2 -- library/aria.c | 2 -- library/camellia.c | 2 -- library/chacha20.c | 2 -- library/chachapoly.c | 2 -- library/ctr_drbg.c | 2 -- library/des.c | 2 -- library/entropy.c | 2 -- library/hmac_drbg.c | 2 -- library/md5.c | 2 -- library/nist_kw.c | 2 -- library/poly1305.c | 2 -- library/ripemd160.c | 2 -- library/sha1.c | 2 -- library/sha256.c | 2 -- library/sha512.c | 2 -- 16 files changed, 32 deletions(-) diff --git a/library/aes.c b/library/aes.c index 872930f2a..a48658fc7 100644 --- a/library/aes.c +++ b/library/aes.c @@ -40,9 +40,7 @@ #include "aesni.h" #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_AES_ALT) diff --git a/library/aria.c b/library/aria.c index cfa69c2ad..f78d289a4 100644 --- a/library/aria.c +++ b/library/aria.c @@ -31,9 +31,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_ARIA_ALT) diff --git a/library/camellia.c b/library/camellia.c index 24651a9a8..e90cd7f13 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CAMELLIA_ALT) diff --git a/library/chacha20.c b/library/chacha20.c index f92e5074a..44d1612bf 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -32,9 +32,7 @@ #include #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHA20_ALT) diff --git a/library/chachapoly.c b/library/chachapoly.c index 9ae043b3b..4adf84685 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -28,9 +28,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_CHACHAPOLY_ALT) diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index d55f9a479..71c48afd2 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -36,9 +36,7 @@ #include #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ /* * CTR_DRBG context initialization diff --git a/library/des.c b/library/des.c index 0576099ce..65f5681cf 100644 --- a/library/des.c +++ b/library/des.c @@ -33,9 +33,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_DES_ALT) diff --git a/library/entropy.c b/library/entropy.c index 12184d670..1e0d9d328 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -34,9 +34,7 @@ #include "mbedtls/platform.h" -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #define ENTROPY_MAX_LOOP 256 /**< Maximum amount to loop before error */ diff --git a/library/hmac_drbg.c b/library/hmac_drbg.c index 3c89f5749..6bc679dd2 100644 --- a/library/hmac_drbg.c +++ b/library/hmac_drbg.c @@ -37,9 +37,7 @@ #include #endif -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_PLATFORM_C */ /* * HMAC_DRBG context initialization diff --git a/library/md5.c b/library/md5.c index a01b6dd29..f7a225c1d 100644 --- a/library/md5.c +++ b/library/md5.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_MD5_ALT) diff --git a/library/nist_kw.c b/library/nist_kw.c index 6be6998dc..495c23d06 100644 --- a/library/nist_kw.c +++ b/library/nist_kw.c @@ -39,9 +39,7 @@ #include #include -#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_NIST_KW_ALT) diff --git a/library/poly1305.c b/library/poly1305.c index a2b223303..f38f48a45 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -28,9 +28,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_POLY1305_ALT) diff --git a/library/ripemd160.c b/library/ripemd160.c index 1c7e17ff3..6212cb257 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -33,9 +33,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if !defined(MBEDTLS_RIPEMD160_ALT) diff --git a/library/sha1.c b/library/sha1.c index 4f65e23fd..83c984fe0 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #define SHA1_VALIDATE_RET(cond) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_SHA1_BAD_INPUT_DATA ) diff --git a/library/sha256.c b/library/sha256.c index 2e65e6fd8..6596a3dfc 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -32,9 +32,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) # if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) || \ diff --git a/library/sha512.c b/library/sha512.c index beb548ace..ae2c2262c 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -38,9 +38,7 @@ #include -#if defined(MBEDTLS_SELF_TEST) #include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST */ #if defined(__aarch64__) # if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \ From e9b55929dc80d5b45292e9a715111505f454a267 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:09:07 +0200 Subject: [PATCH 0048/1574] Remove useless platform macro redefinitions: automatic part Some source files had code to set mbedtls_xxx aliases when MBEDTLS_PLATFORM_C is not defined. These aliases are defined unconditionally by mbedtls/platform.h, so these macro definitions were redundant. Remove them. This commit used the following code: ``` perl -i -0777 -pe 's~#if !defined\(MBEDTLS_PLATFORM_C\)\n(#define (mbedtls|MBEDTLS)_.*\n|#include <(stdarg|stddef|stdio|stdlib|string|time)\.h>\n)*#endif.*\n~~mg' $(git grep -l -F '#if !defined(MBEDTLS_PLATFORM_C)') ``` Signed-off-by: Gilles Peskine --- library/gcm.c | 4 ---- library/psa_crypto.c | 4 ---- library/psa_crypto_aead.c | 4 ---- library/psa_crypto_client.c | 4 ---- library/psa_crypto_ecp.c | 4 ---- library/psa_crypto_rsa.c | 4 ---- library/psa_crypto_se.c | 4 ---- programs/test/benchmark.c | 7 ------- 8 files changed, 35 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index 6d07f8787..fca0c6129 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -44,10 +44,6 @@ #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) #include "mbedtls/aes.h" #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#include -#define mbedtls_printf printf -#endif /* MBEDTLS_PLATFORM_C */ #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #if !defined(MBEDTLS_GCM_ALT) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index b0116ddfb..954abea59 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -52,10 +52,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/aes.h" #include "mbedtls/asn1.h" diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 714d950a1..76d95bcc6 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -27,10 +27,6 @@ #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include "mbedtls/ccm.h" #include "mbedtls/chachapoly.h" diff --git a/library/psa_crypto_client.c b/library/psa_crypto_client.c index 629feb7df..ab7908634 100644 --- a/library/psa_crypto_client.c +++ b/library/psa_crypto_client.c @@ -25,10 +25,6 @@ #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif void psa_reset_key_attributes( psa_key_attributes_t *attributes ) { diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index 59c3a0e9a..29f53b96e 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -31,10 +31,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/psa_crypto_rsa.c b/library/psa_crypto_rsa.c index 7d4718daf..f1b9809d8 100644 --- a/library/psa_crypto_rsa.c +++ b/library/psa_crypto_rsa.c @@ -32,10 +32,6 @@ #include #include #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #include #include diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c index 56678d6a9..87d2634e7 100644 --- a/library/psa_crypto_se.c +++ b/library/psa_crypto_se.c @@ -38,10 +38,6 @@ #endif #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index a6d83e75b..920a473c6 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -22,13 +22,6 @@ #include "mbedtls/build_info.h" #include "mbedtls/platform.h" -#if !defined(MBEDTLS_PLATFORM_C) -#include -#include -#define mbedtls_exit exit -#define mbedtls_printf printf -#define mbedtls_free free -#endif #if !defined(MBEDTLS_HAVE_TIME) int main( void ) From ed1c7f4cd7af7d88820bdd47f4a3176f17bb2b58 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:14:22 +0200 Subject: [PATCH 0049/1574] Include platform.h unconditionally: gcm gcm.c had a slightly different pattern for the conditional inclusion of platform.h which didn't fit the general replacement. Simplify it manually. Signed-off-by: Gilles Peskine --- library/gcm.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index fca0c6129..53275c3fe 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -32,6 +32,7 @@ #if defined(MBEDTLS_GCM_C) #include "mbedtls/gcm.h" +#include "mbedtls/platform.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" @@ -41,11 +42,6 @@ #include "aesni.h" #endif -#if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) -#include "mbedtls/aes.h" -#include "mbedtls/platform.h" -#endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ - #if !defined(MBEDTLS_GCM_ALT) /* Parameter validation macros */ From 04e4c19ee3337b8cedc6712a2f042bf598229446 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:19:01 +0200 Subject: [PATCH 0050/1574] Document the base state of platform abstraction It's `#define mbedtls_xxx xxx` unless some option to override `mbedtls_xxx` is enabled. Signed-off-by: Gilles Peskine --- include/mbedtls/platform.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/mbedtls/platform.h b/include/mbedtls/platform.h index a5a43ac6d..62e12d267 100644 --- a/include/mbedtls/platform.h +++ b/include/mbedtls/platform.h @@ -11,6 +11,13 @@ * implementations of these functions, or implementations specific to * their platform, which can be statically linked to the library or * dynamically configured at runtime. + * + * When all compilation options related to platform abstraction are + * disabled, this header just defines `mbedtls_xxx` function names + * as aliases to the standard `xxx` function. + * + * Most modules in the library and example programs are expected to + * include this header. */ /* * Copyright The Mbed TLS Contributors From d6355caa8fd87708fde74e1fe42ee2063431d20e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 20:26:49 +0200 Subject: [PATCH 0051/1574] Include platform.h unconditionally: fixes undefined mbedtls_setbuf Now that mbedtls/platform.h is included unconditionally, there are no more configurations where mbedtls_setbuf was accidentally left out of the manual definitions when MBEDTLS_PLATFORM_C is disabled. Fixes #6118, #6196. Signed-off-by: Gilles Peskine --- ChangeLog.d/platform-setbuf.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/platform-setbuf.txt diff --git a/ChangeLog.d/platform-setbuf.txt b/ChangeLog.d/platform-setbuf.txt new file mode 100644 index 000000000..844f70cf2 --- /dev/null +++ b/ChangeLog.d/platform-setbuf.txt @@ -0,0 +1,3 @@ +Bugfix + * Provide the missing definition of mbedtls_setbuf() in some configurations + with MBEDTLS_PLATFORM_C disabled. Fixes #6118, #6196. From a844b4b3703c86c6cbb260fc2f100be9380a82cd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Sep 2022 21:05:04 +0200 Subject: [PATCH 0052/1574] No need to use MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED in tests Initializing return status variables to CORRUPTION_DETECTED is a second line of defense in library code in case there's a code path where we forget to assign to the variable. This isn't useful in test code. In any case, here, we might as well define the variable at the point of use. This fixes a build error in configurations with MBEDTLS_ERROR_C and MBEDTLS_PSA_CRYPTO_C both disabled, because then mbedtls/error.h isn't included so MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED isn't defined. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pkcs12.function | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function index 34ef090ba..06678a9d5 100644 --- a/tests/suites/test_suite_pkcs12.function +++ b/tests/suites/test_suite_pkcs12.function @@ -25,7 +25,6 @@ void pkcs12_derive_key( int md_type, int key_size_arg, data_t* expected_output, int expected_status ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *output_data = NULL; unsigned char *password = NULL; @@ -46,15 +45,15 @@ void pkcs12_derive_key( int md_type, int key_size_arg, ASSERT_ALLOC( output_data, key_size ); - ret = mbedtls_pkcs12_derivation( output_data, - key_size, - password, - password_len, - salt, - salt_len, - md_type, - MBEDTLS_PKCS12_DERIVE_KEY, - iterations ); + int ret = mbedtls_pkcs12_derivation( output_data, + key_size, + password, + password_len, + salt, + salt_len, + md_type, + MBEDTLS_PKCS12_DERIVE_KEY, + iterations ); TEST_EQUAL( ret, expected_status ); From e829cd6953afbd246fa0db60a296bdae8eaaec81 Mon Sep 17 00:00:00 2001 From: Archana Date: Fri, 24 Dec 2021 12:50:36 +0530 Subject: [PATCH 0053/1574] Driver Wrapper CodeGen Rev 1.1 (1) Add in driver jsons. (2) Improve Python scripts to take JSON file directory and template directory paths as arguments. (3) Add in file augment template files to template common functionality (4) render tempplates for Header files, ID generation and key management. (5) Changed driver ID nomenclature to be in synch with function names. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../data_files/driver_jsons/driverlist.json | 1 + .../mbedtls_test_opaque_driver.json | 18 ++ .../mbedtls_test_transparent_driver.json | 13 + .../driver_templates/OS-template-opaque.jinja | 10 + .../OS-template-transparent.jinja | 12 + .../psa_crypto_driver_wrappers.c.jinja | 254 ++++++++++-------- scripts/generate_driver_wrappers.py | 58 +++- tests/include/test/drivers/test_driver.h | 9 + 8 files changed, 247 insertions(+), 128 deletions(-) create mode 100644 scripts/data_files/driver_jsons/driverlist.json create mode 100644 scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json create mode 100644 scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json create mode 100644 scripts/data_files/driver_templates/OS-template-opaque.jinja create mode 100644 scripts/data_files/driver_templates/OS-template-transparent.jinja diff --git a/scripts/data_files/driver_jsons/driverlist.json b/scripts/data_files/driver_jsons/driverlist.json new file mode 100644 index 000000000..50ad81604 --- /dev/null +++ b/scripts/data_files/driver_jsons/driverlist.json @@ -0,0 +1 @@ +["mbedtls_test_opaque_driver.json","mbedtls_test_transparent_driver.json"] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json new file mode 100644 index 000000000..1322083c3 --- /dev/null +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -0,0 +1,18 @@ +[{ + "prefix": "mbedtls_test", + "type": "opaque", + "location": "0x7fffff", + "headers": ["test/drivers/test_driver.h"], + "capabilities": [ + { + "_comment": "The mbedTLS opaque driver supports import key/export key/export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["import_key", "export_key", "export_public_key"] + }, + { + "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["copy_key","get_builtin_key"] + } + ] +}] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json new file mode 100644 index 000000000..dfa42340c --- /dev/null +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -0,0 +1,13 @@ +[{ + "prefix": "mbedtls_test", + "type": "transparent", + "headers": ["test/drivers/test_driver.h"], + "capabilities": [ + { + "_comment": "The mbedTLS transparent driver supports import key/export key/export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["import_key", "export_key", "export_public_key"], + "fallback": true + } + ] +}] diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja new file mode 100644 index 000000000..3d9724c94 --- /dev/null +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -0,0 +1,10 @@ +{% for driver in drivers if driver.type == "opaque" -%} +{% for capability in driver.capabilities if entry_point in capability.entry_points -%} +#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +{%- filter indent(width = nest_indent) %} +case {{ driver.location }}: + return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); +{% endfilter -%} +#endif +{% endfor %} +{% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja new file mode 100644 index 000000000..017c937cb --- /dev/null +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -0,0 +1,12 @@ +{% for driver in drivers if driver.type == "transparent" -%} +{% for capability in driver.capabilities if entry_point in capability.entry_points -%} +#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +{%- filter indent(width = nest_indent) %} +status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); + +if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +{% endfilter -%} +#endif +{% endfor %} +{% endfor %} diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index a5ae6a29e..3abd1eff1 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -19,6 +19,8 @@ * limitations under the License. */ + +/* BEGIN-common headers */ #include "common.h" #include "psa_crypto_aead.h" #include "psa_crypto_cipher.h" @@ -29,34 +31,30 @@ #include "psa_crypto_rsa.h" #include "mbedtls/platform.h" +/* END-common headers */ #if defined(MBEDTLS_PSA_CRYPTO_C) +/* BEGIN-driver headers */ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) - -/* Include test driver definition when running tests */ -#if defined(PSA_CRYPTO_DRIVER_TEST) -#ifndef PSA_CRYPTO_DRIVER_PRESENT -#define PSA_CRYPTO_DRIVER_PRESENT -#endif -#ifndef PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT -#define PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT -#endif -#include "test/drivers/test_driver.h" -#endif /* PSA_CRYPTO_DRIVER_TEST */ - -/* Repeat above block for each JSON-declared driver during autogeneration */ +{% for driver in drivers -%} +/* Headers for {{driver.prefix}} {{driver.type}} driver */ +{% for header in driver.headers -%} +#include "{{ header }}" +{% endfor %} +{% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ +/* END-driver headers */ /* Auto-generated values depending on which drivers are registered. * ID 0 is reserved for unallocated operations. * ID 1 is reserved for the Mbed TLS software driver. */ +/* BEGIN-driver id definition */ #define PSA_CRYPTO_MBED_TLS_DRIVER_ID (1) - -#if defined(PSA_CRYPTO_DRIVER_TEST) -#define PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID (2) -#define PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID (3) -#endif /* PSA_CRYPTO_DRIVER_TEST */ +{% for driver in drivers -%} +#define {{(driver.prefix + "_" + driver.type + "_driver_id").upper()}} ({{ loop.index + 1 }}) +{% endfor %} +/* END-driver id */ /* Support the 'old' SE interface when asked to */ #if defined(MBEDTLS_PSA_CRYPTO_SE_C) @@ -592,6 +590,16 @@ psa_status_t psa_driver_wrapper_import_key( size_t *key_buffer_length, size_t *bits ) { +{% set entry_point = "import_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +data, +data_length, +key_buffer, +key_buffer_size, +key_buffer_length, +bits +{% endmacro %} psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -631,17 +639,13 @@ psa_status_t psa_driver_wrapper_import_key( /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=12 %} +{% include "OS-template-transparent.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + /* Fell through, meaning no accelerator supports this operation */ return( psa_import_key_into_slot( attributes, data, data_length, @@ -649,14 +653,11 @@ psa_status_t psa_driver_wrapper_import_key( key_buffer_length, bits ) ); /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)status; @@ -671,6 +672,15 @@ psa_status_t psa_driver_wrapper_export_key( uint8_t *data, size_t data_size, size_t *data_length ) { +{% set entry_point = "export_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +key_buffer, +key_buffer_size, +data, +data_size, +data_length +{% endmacro %} psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -707,15 +717,11 @@ psa_status_t psa_driver_wrapper_export_key( /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_export_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ @@ -729,6 +735,15 @@ psa_status_t psa_driver_wrapper_export_public_key( uint8_t *data, size_t data_size, size_t *data_length ) { +{% set entry_point = "export_public_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +key_buffer, +key_buffer_size, +data, +data_size, +data_length +{% endmacro %} psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); @@ -759,18 +774,11 @@ psa_status_t psa_driver_wrapper_export_public_key( /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_export_public_key( - attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=12 %} +{% include "OS-template-transparent.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ return( psa_export_public_key_internal( attributes, @@ -782,15 +790,11 @@ psa_status_t psa_driver_wrapper_export_public_key( /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_export_public_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ @@ -803,15 +807,23 @@ psa_status_t psa_driver_wrapper_get_builtin_key( psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { +{% set entry_point = "get_builtin_key" -%} +{% macro entry_point_attributes(driver) -%} +slot_number, +attributes, +key_buffer, +key_buffer_size, +key_buffer_length +{% endmacro %} psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); switch( location ) { #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_get_builtin_key( - slot_number, - attributes, - key_buffer, key_buffer_size, key_buffer_length ) ); +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_DRIVER_TEST */ default: (void) slot_number; @@ -828,6 +840,15 @@ psa_status_t psa_driver_wrapper_copy_key( uint8_t *target_key_buffer, size_t target_key_buffer_size, size_t *target_key_buffer_length ) { +{% set entry_point = "copy_key" -%} +{% macro entry_point_attributes(driver) -%} +attributes, +source_key, +source_key_length, +target_key_buffer, +target_key_buffer_size, +target_key_buffer_length +{% endmacro %} psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); @@ -846,14 +867,11 @@ psa_status_t psa_driver_wrapper_copy_key( switch( location ) { #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_copy_key( attributes, source_key, - source_key_length, - target_key_buffer, - target_key_buffer_size, - target_key_buffer_length) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ +/* BEGIN-Templating */ +{% with nest_indent=8 %} +{% include "OS-template-opaque.jinja" -%} +{% endwith -%} +/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)source_key; @@ -1068,7 +1086,7 @@ psa_status_t psa_driver_wrapper_cipher_encrypt_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1100,7 +1118,7 @@ psa_status_t psa_driver_wrapper_cipher_encrypt_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -1141,7 +1159,7 @@ psa_status_t psa_driver_wrapper_cipher_decrypt_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1172,7 +1190,7 @@ psa_status_t psa_driver_wrapper_cipher_decrypt_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -1204,12 +1222,12 @@ psa_status_t psa_driver_wrapper_cipher_set_iv( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_set_iv( &operation->ctx.transparent_test_driver_ctx, iv, iv_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_set_iv( &operation->ctx.opaque_test_driver_ctx, iv, iv_length ) ); @@ -1245,13 +1263,13 @@ psa_status_t psa_driver_wrapper_cipher_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_update( &operation->ctx.transparent_test_driver_ctx, input, input_length, output, output_size, output_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_update( &operation->ctx.opaque_test_driver_ctx, input, input_length, @@ -1287,12 +1305,12 @@ psa_status_t psa_driver_wrapper_cipher_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_cipher_finish( &operation->ctx.transparent_test_driver_ctx, output, output_size, output_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_cipher_finish( &operation->ctx.opaque_test_driver_ctx, output, output_size, output_length ) ); @@ -1321,7 +1339,7 @@ psa_status_t psa_driver_wrapper_cipher_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: status = mbedtls_test_transparent_cipher_abort( &operation->ctx.transparent_test_driver_ctx ); mbedtls_platform_zeroize( @@ -1329,7 +1347,7 @@ psa_status_t psa_driver_wrapper_cipher_abort( sizeof( operation->ctx.transparent_test_driver_ctx ) ); return( status ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: status = mbedtls_test_opaque_cipher_abort( &operation->ctx.opaque_test_driver_ctx ); mbedtls_platform_zeroize( @@ -1394,7 +1412,7 @@ psa_status_t psa_driver_wrapper_hash_setup( status = mbedtls_test_transparent_hash_setup( &operation->ctx.test_driver_ctx, alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -1429,8 +1447,8 @@ psa_status_t psa_driver_wrapper_hash_clone( &target_operation->ctx.mbedtls_ctx ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: - target_operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + target_operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; return( mbedtls_test_transparent_hash_clone( &source_operation->ctx.test_driver_ctx, &target_operation->ctx.test_driver_ctx ) ); @@ -1454,7 +1472,7 @@ psa_status_t psa_driver_wrapper_hash_update( input, input_length ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_update( &operation->ctx.test_driver_ctx, input, input_length ) ); @@ -1480,7 +1498,7 @@ psa_status_t psa_driver_wrapper_hash_finish( hash, hash_size, hash_length ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_finish( &operation->ctx.test_driver_ctx, hash, hash_size, hash_length ) ); @@ -1503,7 +1521,7 @@ psa_status_t psa_driver_wrapper_hash_abort( return( mbedtls_psa_hash_abort( &operation->ctx.mbedtls_ctx ) ); #endif #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_hash_abort( &operation->ctx.test_driver_ctx ) ); #endif @@ -1650,7 +1668,7 @@ psa_status_t psa_driver_wrapper_aead_encrypt_setup( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; status = mbedtls_test_transparent_aead_encrypt_setup( &operation->ctx.transparent_test_driver_ctx, attributes, key_buffer, key_buffer_size, @@ -1698,7 +1716,7 @@ psa_status_t psa_driver_wrapper_aead_decrypt_setup( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; status = mbedtls_test_transparent_aead_decrypt_setup( &operation->ctx.transparent_test_driver_ctx, attributes, @@ -1747,7 +1765,7 @@ psa_status_t psa_driver_wrapper_aead_set_nonce( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_set_nonce( &operation->ctx.transparent_test_driver_ctx, nonce, nonce_length ) ); @@ -1781,7 +1799,7 @@ psa_status_t psa_driver_wrapper_aead_set_lengths( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_set_lengths( &operation->ctx.transparent_test_driver_ctx, ad_length, plaintext_length ) ); @@ -1815,7 +1833,7 @@ psa_status_t psa_driver_wrapper_aead_update_ad( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_update_ad( &operation->ctx.transparent_test_driver_ctx, input, input_length ) ); @@ -1853,7 +1871,7 @@ psa_status_t psa_driver_wrapper_aead_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_update( &operation->ctx.transparent_test_driver_ctx, input, input_length, output, output_size, @@ -1897,7 +1915,7 @@ psa_status_t psa_driver_wrapper_aead_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_finish( &operation->ctx.transparent_test_driver_ctx, ciphertext, ciphertext_size, @@ -1961,7 +1979,7 @@ psa_status_t psa_driver_wrapper_aead_verify( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_verify( &operation->ctx.transparent_test_driver_ctx, plaintext, plaintext_size, @@ -1995,7 +2013,7 @@ psa_status_t psa_driver_wrapper_aead_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_aead_abort( &operation->ctx.transparent_test_driver_ctx ) ); @@ -2104,7 +2122,7 @@ psa_status_t psa_driver_wrapper_mac_sign_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -2135,7 +2153,7 @@ psa_status_t psa_driver_wrapper_mac_sign_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -2176,7 +2194,7 @@ psa_status_t psa_driver_wrapper_mac_verify_setup( alg ); /* Declared with fallback == true */ if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); @@ -2207,7 +2225,7 @@ psa_status_t psa_driver_wrapper_mac_verify_setup( alg ); if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID; + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; return( status ); #endif /* PSA_CRYPTO_DRIVER_TEST */ @@ -2238,12 +2256,12 @@ psa_status_t psa_driver_wrapper_mac_update( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_update( &operation->ctx.transparent_test_driver_ctx, input, input_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_update( &operation->ctx.opaque_test_driver_ctx, input, input_length ) ); @@ -2272,12 +2290,12 @@ psa_status_t psa_driver_wrapper_mac_sign_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_sign_finish( &operation->ctx.transparent_test_driver_ctx, mac, mac_size, mac_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_sign_finish( &operation->ctx.opaque_test_driver_ctx, mac, mac_size, mac_length ) ); @@ -2306,12 +2324,12 @@ psa_status_t psa_driver_wrapper_mac_verify_finish( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_verify_finish( &operation->ctx.transparent_test_driver_ctx, mac, mac_length ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_verify_finish( &operation->ctx.opaque_test_driver_ctx, mac, mac_length ) ); @@ -2336,10 +2354,10 @@ psa_status_t psa_driver_wrapper_mac_abort( #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) #if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TRANSPARENT_TEST_DRIVER_ID: + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: return( mbedtls_test_transparent_mac_abort( &operation->ctx.transparent_test_driver_ctx ) ); - case PSA_CRYPTO_OPAQUE_TEST_DRIVER_ID: + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: return( mbedtls_test_opaque_mac_abort( &operation->ctx.opaque_test_driver_ctx ) ); #endif /* PSA_CRYPTO_DRIVER_TEST */ diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 42331acc8..8e58b66f5 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -22,52 +22,90 @@ import sys import os +import json import argparse import jinja2 from mbedtls_dev import build_tree -def render(template_path: str) -> str: +def render(template_path: str, driver_jsoncontext: list) -> str: """ - Render template from the input file. + Render template from the input file and driver JSON. """ environment = jinja2.Environment( loader=jinja2.FileSystemLoader(os.path.dirname(template_path)), keep_trailing_newline=True) template = environment.get_template(os.path.basename(template_path)) - return template.render() + return template.render(drivers = driver_jsoncontext) -def generate_driver_wrapper_file(mbedtls_root: str, output_dir: str) -> None: + +def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_jsoncontext: list ) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ driver_wrapper_template_filename = \ - os.path.join(mbedtls_root, \ - "scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja") + os.path.join(template_dir, "psa_crypto_driver_wrappers.c.jinja") - result = render(driver_wrapper_template_filename) + result = render(driver_wrapper_template_filename, driver_jsoncontext) with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: out_file.write(result) +def validate_mergedjson(merged_driverjson: list) -> int: + """ + Validate the merged Driver JSON for errors that we can catch early + """ + return 0 + + +def merge_driverjsonfiles(json_directory: str, jsondriverlistName: str) -> list: + """ + Merge driver JSON files into a single ordered JSON. + """ + result = list() + driverlist = list() + with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: + driverlist = json.load(driverlistfile) + for file_name in driverlist: + with open(os.path.join(json_directory, file_name), 'r') as infile: + result.extend(json.load(infile)) + + return result + + def main() -> int: """ Main with command line arguments. """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_templates/') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_jsons/') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') + parser.add_argument('--template_dir', nargs='?', default=def_arg_template_dir, + help='root directory of mbedtls source code') + parser.add_argument('--json_dir', nargs='?', default=def_arg_json_dir, + help='root directory of mbedtls source code') parser.add_argument('output_directory', nargs='?', default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() - mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + mbedtls_root = os.path.abspath(args.mbedtls_root) + output_directory = args.output_directory + template_directory = args.template_dir + json_directory = args.json_dir - generate_driver_wrapper_file(mbedtls_root, output_directory) + # load list of driver jsons from driverlist.json + merged_driverjson = merge_driverjsonfiles(json_directory, 'driverlist.json') + ret = validate_mergedjson(merged_driverjson) + if ret == 1: + print("Validation failed ") + return 1 + + generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) return 0 diff --git a/tests/include/test/drivers/test_driver.h b/tests/include/test/drivers/test_driver.h index 098b21abf..b3c29e433 100644 --- a/tests/include/test/drivers/test_driver.h +++ b/tests/include/test/drivers/test_driver.h @@ -20,6 +20,14 @@ #ifndef PSA_CRYPTO_TEST_DRIVER_H #define PSA_CRYPTO_TEST_DRIVER_H +#if defined(PSA_CRYPTO_DRIVER_TEST) +#ifndef PSA_CRYPTO_DRIVER_PRESENT +#define PSA_CRYPTO_DRIVER_PRESENT +#endif +#ifndef PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT +#define PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT +#endif + #define PSA_CRYPTO_TEST_DRIVER_LOCATION 0x7fffff #include "test/drivers/aead.h" @@ -30,4 +38,5 @@ #include "test/drivers/signature.h" #include "test/drivers/asymmetric_encryption.h" +#endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVER_H */ From 05efa1754955e4aa0133b0bcefe113b5f26477dd Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 09:30:32 +0530 Subject: [PATCH 0054/1574] JSON upgrade to give function names Function names can be provided against entry points. This helps to ensure easy migration for misnamed functions. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/mbedtls_test_opaque_driver.json | 3 ++- .../mbedtls_test_transparent_driver.json | 12 ++++++++++-- .../driver_templates/OS-template-opaque.jinja | 4 ++++ .../driver_templates/OS-template-transparent.jinja | 4 ++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index 1322083c3..c63e36094 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -12,7 +12,8 @@ { "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["copy_key","get_builtin_key"] + "entry_points": ["copy_key","get_builtin_key"], + "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] }] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index dfa42340c..1b4d615df 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -4,10 +4,18 @@ "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS transparent driver supports import key/export key/export_public key", + "_comment": "The mbedTLS transparent driver supports import key/export key", "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["import_key", "export_key", "export_public_key"], + "entry_points": ["import_key", "export_key"], "fallback": true + }, + { + "_comment": "The mbedTLS transparent driver supports export_public key", + "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["export_public_key"], + "fallback": true, + "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} } + ] }] diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index 3d9724c94..f11ac770b 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -3,7 +3,11 @@ #if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: + {% if capability.name is defined and entry_point in capability.name.keys() -%} + return({{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}})); + {% else -%} return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); + {% endif -%} {% endfilter -%} #endif {% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 017c937cb..4eadd1e40 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -2,7 +2,11 @@ {% for capability in driver.capabilities if entry_point in capability.entry_points -%} #if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} +{% if capability.name is defined and entry_point in capability.name.keys() -%} +status = {{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}}); +{% else -%} status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); +{% endif -%} if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); From 04cfe3463953234816e89ac0954f314698616d10 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 13:28:28 +0530 Subject: [PATCH 0055/1574] JSON Validation added (1) JSON file structure altered a bit. (2) JSON validated against schema. (3) Corresponding changes in the python script. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 112 ++++++++++++++++++ .../driver_transparent_schema.json | 106 +++++++++++++++++ .../mbedtls_test_opaque_driver.json | 5 +- .../mbedtls_test_transparent_driver.json | 5 +- .../psa_crypto_driver_wrappers.c.jinja | 4 + scripts/generate_driver_wrappers.py | 53 ++++++--- tests/docker/bionic/Dockerfile | 4 + 7 files changed, 269 insertions(+), 20 deletions(-) create mode 100644 scripts/data_files/driver_jsons/driver_opaque_schema.json create mode 100644 scripts/data_files/driver_jsons/driver_transparent_schema.json diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json new file mode 100644 index 000000000..53660c8e9 --- /dev/null +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -0,0 +1,112 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "type": { + "type": "string" + }, + "location": { + "type": "string" + }, + "dependency": { + "type": "string" + }, + "headers": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "capabilities": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points" + ] + }, + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + }, + "name": { + "type": "object", + "properties": { + "copy_key": { + "type": "string" + }, + "get_builtin_key": { + "type": "string" + } + }, + "required": [ + "copy_key", + "get_builtin_key" + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "name" + ] + } + ] + } + }, + "required": [ + "prefix", + "type", + "location", + "dependency", + "headers", + "capabilities" + ] +} diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json new file mode 100644 index 000000000..dd1178d63 --- /dev/null +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -0,0 +1,106 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "prefix": { + "type": "string" + }, + "type": { + "type": "string" + }, + "dependency": { + "type": "string" + }, + "headers": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "capabilities": { + "type": "array", + "items": [ + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + }, + { + "type": "string" + } + ] + }, + "fallback": { + "type": "boolean" + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "fallback" + ] + }, + { + "type": "object", + "properties": { + "_comment": { + "type": "string" + }, + "depend_on": { + "type": "string" + }, + "entry_points": { + "type": "array", + "items": [ + { + "type": "string" + } + ] + }, + "fallback": { + "type": "boolean" + }, + "name": { + "type": "object", + "properties": { + "export_public_key": { + "type": "string" + } + }, + "required": [ + "export_public_key" + ] + } + }, + "required": [ + "_comment", + "depend_on", + "entry_points", + "fallback", + "name" + ] + } + ] + } + }, + "required": [ + "prefix", + "type", + "dependency", + "headers", + "capabilities" + ] +} diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index c63e36094..374740455 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -1,7 +1,8 @@ -[{ +{ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", + "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { @@ -16,4 +17,4 @@ "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] -}] +} diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 1b4d615df..52f6cd300 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,6 +1,7 @@ -[{ +{ "prefix": "mbedtls_test", "type": "transparent", + "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { @@ -18,4 +19,4 @@ } ] -}] +} diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index 3abd1eff1..bea02a506 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -39,9 +39,13 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ +{% if driver.dependency is defined -%} +#if {{ driver.dependency }} +{% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} +#endif {% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ /* END-driver headers */ diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 8e58b66f5..260be7edd 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,6 +23,8 @@ import sys import os import json +from jsonschema import validate +from typing import Tuple import argparse import jinja2 from mbedtls_dev import build_tree @@ -51,26 +53,48 @@ def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_json with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: out_file.write(result) -def validate_mergedjson(merged_driverjson: list) -> int: - """ - Validate the merged Driver JSON for errors that we can catch early - """ - return 0 - -def merge_driverjsonfiles(json_directory: str, jsondriverlistName: str) -> list: +def validate_json(driverjson_data: list, driverschema: list) -> bool: """ - Merge driver JSON files into a single ordered JSON. + Validate the Driver JSON against schema + """ + try: + validate(instance = driverjson_data, schema = driverschema) + except jsonschema.exceptions.ValidationError as err: + print(err) + err = "The driver JSON data is InValid" + return False + + message = "The driver JSON data is Valid" + return True + +def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlistName: str) -> Tuple[bool,list]: + """ + Merge driver JSON files into a single ordered JSON after validation. """ result = list() driverlist = list() + with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + transparent_driver_schema = json.load(file) + with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + opaque_driver_schema = json.load(file) + with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: - result.extend(json.load(infile)) - - return result + json_data = json.load(infile) + if json_data['type'] == 'transparent': + ret = validate_json(json_data, transparent_driver_schema) + elif json_data['type'] == 'opaque': + ret = validate_json(json_data, opaque_driver_schema) + else: + ret = False + print("Unknown Driver type") + if ret == False: + return ret, [] + result.append(json_data) + return True, result def main() -> int: @@ -99,12 +123,9 @@ def main() -> int: json_directory = args.json_dir # load list of driver jsons from driverlist.json - merged_driverjson = merge_driverjsonfiles(json_directory, 'driverlist.json') - ret = validate_mergedjson(merged_driverjson) - if ret == 1: - print("Validation failed ") + ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') + if ret == False: return 1 - generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) return 0 diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 28d33b755..558067975 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -64,6 +64,10 @@ RUN apt-get update \ RUN python3 -m pip install \ jinja2==2.10.1 types-jinja2 + +RUN python3 -m pip install \ + jsonschema + # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) # Note: openssl-1.0.2 and earlier has known build issues with parallel make. From 314380564c7407200b42b0ddb99a6d5ee2d899b1 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 9 Jan 2022 15:01:20 +0530 Subject: [PATCH 0056/1574] PyLint errors fixed Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 40 +++++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 260be7edd..3b6032028 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,9 +23,10 @@ import sys import os import json -from jsonschema import validate from typing import Tuple import argparse +import jsonschema +from jsonschema import validate import jinja2 from mbedtls_dev import build_tree @@ -38,10 +39,11 @@ def render(template_path: str, driver_jsoncontext: list) -> str: keep_trailing_newline=True) template = environment.get_template(os.path.basename(template_path)) - return template.render(drivers = driver_jsoncontext) + return template.render(drivers=driver_jsoncontext) -def generate_driver_wrapper_file(template_dir: str, output_dir: str, driver_jsoncontext: list ) -> None: +def generate_driver_wrapper_file(template_dir: str, \ + output_dir: str, driver_jsoncontext: list) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ @@ -59,27 +61,29 @@ def validate_json(driverjson_data: list, driverschema: list) -> bool: Validate the Driver JSON against schema """ try: - validate(instance = driverjson_data, schema = driverschema) + validate(instance=driverjson_data, schema=driverschema) except jsonschema.exceptions.ValidationError as err: print(err) - err = "The driver JSON data is InValid" + print("The driver JSON data is InValid") return False - message = "The driver JSON data is Valid" return True -def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlistName: str) -> Tuple[bool,list]: +def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ + jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ result = list() driverlist = list() - with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, \ + 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, \ + 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) - with open(os.path.join(json_directory, jsondriverlistName), 'r') as driverlistfile: + with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: @@ -91,7 +95,7 @@ def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, jsondriverlist else: ret = False print("Unknown Driver type") - if ret == False: + if ret is False: return ret, [] result.append(json_data) return True, result @@ -103,8 +107,10 @@ def main() -> int: """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_templates/') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, 'scripts/data_files/driver_jsons/') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, \ + 'scripts/data_files/driver_templates/') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, \ + 'scripts/data_files/driver_jsons/') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, @@ -117,14 +123,14 @@ def main() -> int: default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() - mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + mbedtls_root = os.path.abspath(args.mbedtls_root) + output_directory = args.output_directory template_directory = args.template_dir - json_directory = args.json_dir + json_directory = args.json_dir # load list of driver jsons from driverlist.json ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') - if ret == False: + if ret is False: return 1 generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) From 25876b8abb288d64a156e7a3d51df0f2ac575dc3 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 10 Jan 2022 01:55:26 +0530 Subject: [PATCH 0057/1574] Adding JSONSchema to CI scripts jsonschema is added to the ci scripts and Dockerfile Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/driver.requirements.txt | 4 +++- tests/docker/bionic/Dockerfile | 9 +++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/driver.requirements.txt b/scripts/driver.requirements.txt index 38838f58b..2a1bef7e6 100644 --- a/scripts/driver.requirements.txt +++ b/scripts/driver.requirements.txt @@ -13,4 +13,6 @@ markupsafe < 2.1 Jinja2 >= 2.10.1 # Jinja2 >=2.10, <3.0 needs a separate package for type annotations types-Jinja2 - +# jsonschema > 3.2.0 is not compatible with Python 3.5, force 3.2.0 +jsonschema >= 3.2.0 +types-jsonschema diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 558067975..8fa58143e 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,13 +60,10 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* -# Jinja2 is required for driver dispatch code generation. +# Jinja2 and jsonschema is required for driver dispatch code generation. RUN python3 -m pip install \ - jinja2==2.10.1 types-jinja2 - - -RUN python3 -m pip install \ - jsonschema + jinja2==2.10.1 types-jinja2 \ + jsonschema==3.2.0 types-jsonschema # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) From 634e0d25cb9e75c54c72391be28da4c2f7a1def0 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 10 Jan 2022 17:37:42 +0530 Subject: [PATCH 0058/1574] Update check_names.py to exclude autogen file Don't look for MBED keywords on the autogenerated psa_crypto_driver_wrappers.c file. This is needed since the naming of constants is dependent on the driver json and the naming conventions used through the library is stuck at a place where it does not swing either way ( mbedtls_ / psa_). Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- tests/scripts/check_names.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 8bb4923b7..2e3927130 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -279,7 +279,7 @@ class CodeParser(): "library/*.c", "3rdparty/everest/library/everest.c", "3rdparty/everest/library/x25519.c" - ]) + ], ["library/psa_crypto_driver_wrappers.c"]) symbols = self.parse_symbols() # Remove identifier macros like mbedtls_printf or mbedtls_calloc From e17071a5ee1bcce1e3a6e239b4b60424796b001d Mon Sep 17 00:00:00 2001 From: Archana Date: Tue, 11 Jan 2022 02:40:46 +0530 Subject: [PATCH 0059/1574] Update Dockerfile with missing packages Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- tests/docker/bionic/Dockerfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 8fa58143e..4b5739cce 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,6 +60,11 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* +# The following packages are required for validating Python files. +# The version of Pylint is set to 2.4.4 to match CI. +RUN python3 -m pip install \ + packaging mypy pylint==2.4.4 + # Jinja2 and jsonschema is required for driver dispatch code generation. RUN python3 -m pip install \ jinja2==2.10.1 types-jinja2 \ From fdbbcba3eb771fb0aae8679448a09678709aa93c Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 27 Feb 2022 05:38:55 +0530 Subject: [PATCH 0060/1574] JSONschema and python improvements * JSON Schema manually updated to be more semantically valid. * Python script improved to be more verbose with exceptions * Templating file improved by adding an additional macro. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 90 ++++++----------- .../driver_transparent_schema.json | 92 ++++++----------- .../mbedtls_test_opaque_driver.json | 12 +-- .../mbedtls_test_transparent_driver.json | 10 +- .../driver_templates/OS-template-opaque.jinja | 15 +-- .../OS-template-transparent.jinja | 15 +-- .../psa_crypto_driver_wrappers.c.jinja | 28 ++++-- scripts/generate_driver_wrappers.py | 99 +++++++++++++------ 8 files changed, 176 insertions(+), 185 deletions(-) diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 53660c8e9..4a769f0bd 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -2,25 +2,31 @@ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { - "prefix": { + "_comment": { "type": "string" }, + "prefix": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" + }, "type": { - "type": "string" + "type": "string", + "const": ["opaque"] }, "location": { - "type": "string" + "type": ["integer","string"], + "pattern": "^(0x|0X)?[a-fA-F0-9]+$" }, - "dependency": { + "mbedtls/h_depend_on": { "type": "string" }, "headers": { "type": "array", - "items": [ - { + "items": { "type": "string" - } - ] + }, + "minItems": 1, + "uniqueItems": true }, "capabilities": { "type": "array", @@ -31,71 +37,33 @@ "_comment": { "type": "string" }, - "depend_on": { + "mbedtls/c_depend_on": { "type": "string" }, "entry_points": { "type": "array", - "items": [ - { - "type": "string" + "items": { + "type": "string", + "enum": ["import_key", "export_key", "export_public_key", + "copy_key", "get_builtin_key"] }, - { - "type": "string" - }, - { - "type": "string" - } - ] - } - }, - "required": [ - "_comment", - "depend_on", - "entry_points" - ] - }, - { - "type": "object", - "properties": { - "_comment": { - "type": "string" - }, - "depend_on": { - "type": "string" - }, - "entry_points": { - "type": "array", - "items": [ - { - "type": "string" - }, - { - "type": "string" - } - ] + "minItems": 1, + "uniqueItems": true }, "name": { "type": "object", - "properties": { - "copy_key": { - "type": "string" - }, - "get_builtin_key": { - "type": "string" + "patternProperties": { + "^[A-Z_a-z][0-9A-Z_a-z]*$": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } }, - "required": [ - "copy_key", - "get_builtin_key" - ] + "minItems": 1, + "uniqueItems": true } }, "required": [ - "_comment", - "depend_on", - "entry_points", - "name" + "entry_points" ] } ] @@ -105,8 +73,6 @@ "prefix", "type", "location", - "dependency", - "headers", "capabilities" ] } diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index dd1178d63..bf86ceb61 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -2,22 +2,27 @@ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { - "prefix": { + "_comment": { "type": "string" }, + "prefix": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" + }, "type": { - "type": "string" + "type": "string", + "const": ["transparent"] }, - "dependency": { + "mbedtls/h_depend_on": { "type": "string" }, "headers": { "type": "array", - "items": [ - { + "items": { "type": "string" - } - ] + }, + "minItems": 1, + "uniqueItems": true }, "capabilities": { "type": "array", @@ -28,79 +33,46 @@ "_comment": { "type": "string" }, - "depend_on": { + "mbedtls/c_depend_on": { "type": "string" }, "entry_points": { "type": "array", - "items": [ - { - "type": "string" + "items": { + "type": "string", + "enum": ["import_key", "export_key", "export_public_key", + "copy_key", "get_builtin_key"] }, - { - "type": "string" - } - ] - }, - "fallback": { - "type": "boolean" - } - }, - "required": [ - "_comment", - "depend_on", - "entry_points", - "fallback" - ] - }, - { - "type": "object", - "properties": { - "_comment": { - "type": "string" - }, - "depend_on": { - "type": "string" - }, - "entry_points": { - "type": "array", - "items": [ - { - "type": "string" - } - ] - }, - "fallback": { - "type": "boolean" + "minItems": 1, + "uniqueItems": true }, "name": { "type": "object", - "properties": { - "export_public_key": { - "type": "string" + "patternProperties": { + "^[A-Z_a-z][0-9A-Z_a-z]*$": { + "type": "string", + "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } }, - "required": [ - "export_public_key" - ] + "minItems": 1, + "uniqueItems": true + }, + "fallback": { + "type": "boolean", + "default": "false" } }, "required": [ - "_comment", - "depend_on", - "entry_points", - "fallback", - "name" + "entry_points" ] } - ] + ], + "default": [] } }, "required": [ "prefix", "type", - "dependency", - "headers", "capabilities" ] } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index 374740455..a38287d5a 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -2,18 +2,18 @@ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", - "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS opaque driver supports import key/export key/export_public key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS opaque driver supports import key/export key/export_public key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key", "export_public_key"] }, { - "_comment": "The mbedTLS opaque driver supports copy key/ get builtin key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", - "entry_points": ["copy_key","get_builtin_key"], + "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "entry_points": ["copy_key", "get_builtin_key"], "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 52f6cd300..5c9b9feac 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,18 +1,18 @@ { "prefix": "mbedtls_test", "type": "transparent", - "dependency": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { - "_comment": "The mbedTLS transparent driver supports import key/export key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS transparent driver supports import key/export key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key"], "fallback": true }, { - "_comment": "The mbedTLS transparent driver supports export_public key", - "depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "_comment": "The Mbed TLS transparent driver supports export_public key", + "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index f11ac770b..115e22c86 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -1,13 +1,16 @@ +{# One Shot function's dispatch code for opaque drivers. +Expected inputs: +* drivers: the list of driver descriptions. +* entry_point: the name of the entry point that this function dispatches to. +* entry_point_param(driver): the parameters to pass to the entry point. +* nest_indent: number of extra spaces to indent the code to. +-#} {% for driver in drivers if driver.type == "opaque" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: - {% if capability.name is defined and entry_point in capability.name.keys() -%} - return({{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}})); - {% else -%} - return({{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}})); - {% endif -%} + return( {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}})); {% endfilter -%} #endif {% endfor %} diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 4eadd1e40..9ba115568 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -1,12 +1,15 @@ +{# One Shot function's dispatch code for transparent drivers. +Expected inputs: +* drivers: the list of driver descriptions. +* entry_point: the name of the entry point that this function dispatches to. +* entry_point_param(driver): the parameters to pass to the entry point. +* nest_indent: number of extra spaces to indent the code to. +-#} {% for driver in drivers if driver.type == "transparent" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability.depend_on is defined -%}{{ capability.depend_on }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} -{% if capability.name is defined and entry_point in capability.name.keys() -%} -status = {{ capability.name[entry_point]}}({{entry_point_attributes(driver) | indent(20)}}); -{% else -%} -status = {{driver.prefix}}_{{driver.type}}_{{entry_point}}({{entry_point_attributes(driver) | indent(20)}}); -{% endif -%} +status = {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}}); if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index bea02a506..b90a9c89d 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -1,7 +1,7 @@ /* * Functions to delegate cryptographic operations to an available * and appropriate accelerator. - * Warning: This file will be auto-generated in the future. + * Warning: This file is now auto-generated. */ /* Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 @@ -39,13 +39,15 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ -{% if driver.dependency is defined -%} -#if {{ driver.dependency }} +{% if driver['mbedtls/h_depend_on'] is defined -%} +#if {{ driver['mbedtls/h_depend_on'] }} {% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} +{% if driver['mbedtls/h_depend_on'] is defined -%} #endif +{% endif -%} {% endfor %} #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ /* END-driver headers */ @@ -60,6 +62,16 @@ {% endfor %} /* END-driver id */ +/* BEGIN-Common Macro definitions */ +{% macro entry_point_name(capability, entry_point, driver) -%} + {% if capability.name is defined and entry_point in capability.name.keys() -%} + {{ capability.name[entry_point]}} + {% else -%} + {{driver.prefix}}_{{driver.type}}_{{entry_point}} + {% endif -%} +{% endmacro %} +/* END-Common Macro definitions */ + /* Support the 'old' SE interface when asked to */ #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style @@ -595,7 +607,7 @@ psa_status_t psa_driver_wrapper_import_key( size_t *bits ) { {% set entry_point = "import_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, data, data_length, @@ -677,7 +689,7 @@ psa_status_t psa_driver_wrapper_export_key( { {% set entry_point = "export_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, key_buffer, key_buffer_size, @@ -740,7 +752,7 @@ psa_status_t psa_driver_wrapper_export_public_key( { {% set entry_point = "export_public_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, key_buffer, key_buffer_size, @@ -812,7 +824,7 @@ psa_status_t psa_driver_wrapper_get_builtin_key( uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { {% set entry_point = "get_builtin_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} slot_number, attributes, key_buffer, @@ -845,7 +857,7 @@ psa_status_t psa_driver_wrapper_copy_key( size_t *target_key_buffer_length ) { {% set entry_point = "copy_key" -%} -{% macro entry_point_attributes(driver) -%} +{% macro entry_point_param(driver) -%} attributes, source_key, source_key_length, diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3b6032028..3d9be88e2 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,13 +23,15 @@ import sys import os import json -from typing import Tuple +from typing import Tuple, NewType import argparse import jsonschema -from jsonschema import validate import jinja2 from mbedtls_dev import build_tree +JSONSchema = NewType('JSONSchema', object) +Driver = NewType('Driver', object) + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -56,45 +58,68 @@ def generate_driver_wrapper_file(template_dir: str, \ out_file.write(result) -def validate_json(driverjson_data: list, driverschema: list) -> bool: +def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: """ - Validate the Driver JSON against schema + Validate the Driver JSON against an appropriate schema + the schema passed could be that matching an opaque/ transparent driver. """ + + driver_type = driverjson_data["type"] + driver_prefix = driverjson_data["prefix"] try: - validate(instance=driverjson_data, schema=driverschema) + _schema = driverschema_list[driver_type] + jsonschema.validate(instance=driverjson_data, schema=_schema) + + except KeyError as err: + # This could happen if the driverjson_data.type does not exist in the passed in schema list + # schemas = {'transparent': transparent_driver_schema, 'opaque': opaque_driver_schema} + # Print onto stdout and stderr. + print("Unknown Driver type " + driver_type + + " for driver " + driver_prefix, str(err)) + print("Unknown Driver type " + driver_type + + " for driver " + driver_prefix, str(err), file=sys.stderr) + return False + except jsonschema.exceptions.ValidationError as err: - print(err) - print("The driver JSON data is InValid") + # Print onto stdout and stderr. + print("Error: Failed to validate data file: {} using schema: {}." + "\n Exception Message: \"{}\"" + " ".format(driverjson_data, _schema, str(err))) + print("Error: Failed to validate data file: {} using schema: {}." + "\n Exception Message: \"{}\"" + " ".format(driverjson_data, _schema, str(err)), file=sys.stderr) return False return True -def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ +def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ - result = list() - driverlist = list() - with open(os.path.join(mbedtls_root, \ - 'scripts/data_files/driver_jsons/driver_transparent_schema.json'), 'r') as file: + result = [] + with open(os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json'), 'r') as file: transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, \ - 'scripts/data_files/driver_jsons/driver_opaque_schema.json'), 'r') as file: + with open(os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) + driver_schema_list = {'transparent':transparent_driver_schema, + 'opaque':opaque_driver_schema} + with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: driverlist = json.load(driverlistfile) for file_name in driverlist: with open(os.path.join(json_directory, file_name), 'r') as infile: json_data = json.load(infile) - if json_data['type'] == 'transparent': - ret = validate_json(json_data, transparent_driver_schema) - elif json_data['type'] == 'opaque': - ret = validate_json(json_data, opaque_driver_schema) - else: - ret = False - print("Unknown Driver type") + ret = validate_json(json_data, driver_schema_list) if ret is False: return ret, [] result.append(json_data) @@ -104,35 +129,45 @@ def merge_driverjsonfiles(mbedtls_root: str, json_directory: str, \ def main() -> int: """ Main with command line arguments. + returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, \ - 'scripts/data_files/driver_templates/') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, \ - 'scripts/data_files/driver_jsons/') + def_arg_template_dir = os.path.join(def_arg_mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') + def_arg_json_dir = os.path.join(def_arg_mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') - parser.add_argument('--template_dir', nargs='?', default=def_arg_template_dir, + parser.add_argument('--template-dir', nargs='?', default=def_arg_template_dir, help='root directory of mbedtls source code') - parser.add_argument('--json_dir', nargs='?', default=def_arg_json_dir, + parser.add_argument('--json-dir', nargs='?', default=def_arg_json_dir, help='root directory of mbedtls source code') - parser.add_argument('output_directory', nargs='?', + parser.add_argument('output-directory', nargs='?', default=def_arg_output_dir, help='output file\'s location') args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = args.output_directory + output_directory = def_arg_output_dir + if args.template_dir is None: + args.template_dir = os.path.join(args.mbedtls_root, def_arg_template_dir) template_directory = args.template_dir + if args.json_dir is None: + args.json_dir = os.path.join(args.mbedtls_root, def_arg_json_dir) json_directory = args.json_dir - # load list of driver jsons from driverlist.json - ret, merged_driverjson = merge_driverjsonfiles(mbedtls_root, json_directory, 'driverlist.json') + # Read and validate list of driver jsons from driverlist.json + ret, merged_driver_json = read_driver_descriptions(mbedtls_root, json_directory, + 'driverlist.json') if ret is False: return 1 - generate_driver_wrapper_file(template_directory, output_directory, merged_driverjson) + generate_driver_wrapper_file(template_directory, output_directory, merged_driver_json) return 0 From a78dc70a502da2e3096861975052fbb0498e2429 Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 13 Mar 2022 17:57:45 +0530 Subject: [PATCH 0061/1574] Fix JsonObject type for MyPy Workaround a MyPy error by marking the driver json Object as of type dict and indexable. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3d9be88e2..3c71202d3 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -30,7 +30,9 @@ import jinja2 from mbedtls_dev import build_tree JSONSchema = NewType('JSONSchema', object) -Driver = NewType('Driver', object) +# The Driver is an Object, but practically it's indexable and can called a dictionary to +# keep MyPy happy till MyPy comes with a more composite type for JsonObjects. +Driver = NewType('Driver', dict) def render(template_path: str, driver_jsoncontext: list) -> str: """ @@ -63,7 +65,6 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: Validate the Driver JSON against an appropriate schema the schema passed could be that matching an opaque/ transparent driver. """ - driver_type = driverjson_data["type"] driver_prefix = driverjson_data["prefix"] try: From 46886247ad6ec8ec20a96476077639c273efbb3e Mon Sep 17 00:00:00 2001 From: Archana Date: Sun, 13 Mar 2022 19:49:11 +0530 Subject: [PATCH 0062/1574] Driver Wrappers code gen migration guide updated. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- ...-driver-wrappers-codegen-migration-guide.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md index 4f82bedd5..222788322 100644 --- a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md +++ b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md @@ -13,20 +13,28 @@ During the process of implementation there might be minor variations wrt version ## Prerequisites -Python3 and Jinja2 rev 2.10.1 +Python3, Jinja2 rev 2.10.1 and jsonschema rev 3.2.0 ## Feature Version -1.0 +1.1 ### What's critical for a migrating user The Driver Wrapper auto generation project is designed to use a python templating library ( Jinja2 ) to render templates based on drivers that are defined using a Driver descrioption JSON file(s). -While that is the larger goal, for version 1.0 here's what's changed +While that is the larger goal, for version 1.1 here's what's changed #### What's changed (1) psa_crypto_driver_wrappers.c will from this point on be auto generated. -(2) The auto generation is based on the template file at scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja. -(3) So while all driver wrapper templating support is yet to come in, the library user will need to patch into the template file as needed, this could be read as replacing the template file with the current psa_crypto_driver_wrappers.c file maintained by the library user. +(2) The auto generation is based on the template file at **scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja**. +(3) The driver JSONS to be used for generating the psa_crypto_driver_wrappers.c file can be found at **scripts/data_files/driver_jsons/** as their default location, this path includes the schemas against which the driver schemas will be validated (driver_opaque_schema.json, driver_transparent_schema.json) and a driverlist.json which specifies the drivers to be considered and the order in which they want to be called into. The default location for driverlist.json and driver JSONS can be overloaded by passing an argument --json-dir while running the script generate_driver_wrappers.py. +(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the userwill need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). + +#### How to set your driver up + +Please refer to psa-driver-interface.md for information on how a driver schema can be written. +One can also refer to the example test drivers/ JSON schemas under **scripts/data_files/driver_jsons/**. + +The JSON file 'driverlist.json' is meant to be edited by the user to reftlect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. From 01aa39e3ff189fff96022c965c126f02c737ba03 Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 14 Mar 2022 15:29:00 +0530 Subject: [PATCH 0063/1574] Arg parse improvements Arg parse improved to update the input params path relative to mbedtls_root passed, if the other params are not explicitly passed. Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 3c71202d3..c025ed329 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -133,34 +133,34 @@ def main() -> int: returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() - def_arg_output_dir = os.path.join(def_arg_mbedtls_root, 'library') - def_arg_template_dir = os.path.join(def_arg_mbedtls_root, - 'scripts', - 'data_files', - 'driver_templates') - def_arg_json_dir = os.path.join(def_arg_mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons') parser = argparse.ArgumentParser() parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') - parser.add_argument('--template-dir', nargs='?', default=def_arg_template_dir, + parser.add_argument('--template-dir', nargs='?', help='root directory of mbedtls source code') - parser.add_argument('--json-dir', nargs='?', default=def_arg_json_dir, + parser.add_argument('--json-dir', nargs='?', help='root directory of mbedtls source code') - parser.add_argument('output-directory', nargs='?', - default=def_arg_output_dir, help='output file\'s location') + parser.add_argument('output_directory', nargs='?', + help='output file\'s location') args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - output_directory = def_arg_output_dir if args.template_dir is None: - args.template_dir = os.path.join(args.mbedtls_root, def_arg_template_dir) - template_directory = args.template_dir + args.template_dir = os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') if args.json_dir is None: - args.json_dir = os.path.join(args.mbedtls_root, def_arg_json_dir) + args.json_dir = os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') + if args.output_directory is None: + args.output_directory = os.path.join(mbedtls_root, 'library') + + output_directory = args.output_directory + template_directory = args.template_dir json_directory = args.json_dir # Read and validate list of driver jsons from driverlist.json From 22c78278763661f92513dc40bb847464bf0cbd4d Mon Sep 17 00:00:00 2001 From: Archana Date: Mon, 11 Apr 2022 10:12:08 +0530 Subject: [PATCH 0064/1574] Schema and script improvements Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- .../driver_jsons/driver_opaque_schema.json | 17 +++------- .../driver_transparent_schema.json | 20 ++++------- .../mbedtls_test_opaque_driver.json | 2 +- .../mbedtls_test_transparent_driver.json | 2 +- .../psa_crypto_driver_wrappers.c.jinja | 34 +++++++------------ scripts/generate_driver_wrappers.py | 10 +++--- 6 files changed, 30 insertions(+), 55 deletions(-) diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 4a769f0bd..946977eb7 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -25,8 +25,7 @@ "items": { "type": "string" }, - "minItems": 1, - "uniqueItems": true + "default": [] }, "capabilities": { "type": "array", @@ -43,23 +42,17 @@ "entry_points": { "type": "array", "items": { - "type": "string", - "enum": ["import_key", "export_key", "export_public_key", - "copy_key", "get_builtin_key"] - }, - "minItems": 1, - "uniqueItems": true + "type": "string" + } }, - "name": { + "names": { "type": "object", "patternProperties": { "^[A-Z_a-z][0-9A-Z_a-z]*$": { "type": "string", "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } - }, - "minItems": 1, - "uniqueItems": true + } } }, "required": [ diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index bf86ceb61..06fea5559 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -21,8 +21,7 @@ "items": { "type": "string" }, - "minItems": 1, - "uniqueItems": true + "default": [] }, "capabilities": { "type": "array", @@ -39,23 +38,17 @@ "entry_points": { "type": "array", "items": { - "type": "string", - "enum": ["import_key", "export_key", "export_public_key", - "copy_key", "get_builtin_key"] - }, - "minItems": 1, - "uniqueItems": true + "type": "string" + } }, - "name": { + "names": { "type": "object", "patternProperties": { "^[A-Z_a-z][0-9A-Z_a-z]*$": { "type": "string", "pattern": "^[A-Z_a-z][0-9A-Z_a-z]*$" } - }, - "minItems": 1, - "uniqueItems": true + } }, "fallback": { "type": "boolean", @@ -66,8 +59,7 @@ "entry_points" ] } - ], - "default": [] + ] } }, "required": [ diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index a38287d5a..c31f96490 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -14,7 +14,7 @@ "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["copy_key", "get_builtin_key"], - "name": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} + "names": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } ] } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index 5c9b9feac..db31ff408 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -15,7 +15,7 @@ "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, - "name": {"export_public_key":"mbedtls_test_transparent_export_public_key"} + "names": {"export_public_key":"mbedtls_test_transparent_export_public_key"} } ] diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index b90a9c89d..f38479df0 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -64,8 +64,8 @@ /* BEGIN-Common Macro definitions */ {% macro entry_point_name(capability, entry_point, driver) -%} - {% if capability.name is defined and entry_point in capability.name.keys() -%} - {{ capability.name[entry_point]}} + {% if capability.name is defined and entry_point in capability.names.keys() -%} + {{ capability.names[entry_point]}} {% else -%} {{driver.prefix}}_{{driver.type}}_{{entry_point}} {% endif -%} @@ -606,7 +606,7 @@ psa_status_t psa_driver_wrapper_import_key( size_t *key_buffer_length, size_t *bits ) { -{% set entry_point = "import_key" -%} +{% with entry_point = "import_key" -%} {% macro entry_point_param(driver) -%} attributes, data, @@ -655,11 +655,9 @@ bits /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=12 %} {% include "OS-template-transparent.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ @@ -669,17 +667,15 @@ bits key_buffer_length, bits ) ); /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)status; return( PSA_ERROR_INVALID_ARGUMENT ); } - +{% endwith %} } psa_status_t psa_driver_wrapper_export_key( @@ -688,7 +684,7 @@ psa_status_t psa_driver_wrapper_export_key( uint8_t *data, size_t data_size, size_t *data_length ) { -{% set entry_point = "export_key" -%} +{% with entry_point = "export_key" -%} {% macro entry_point_param(driver) -%} attributes, key_buffer, @@ -733,16 +729,15 @@ data_length /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ return( status ); } +{% endwith %} } psa_status_t psa_driver_wrapper_export_public_key( @@ -751,7 +746,7 @@ psa_status_t psa_driver_wrapper_export_public_key( uint8_t *data, size_t data_size, size_t *data_length ) { -{% set entry_point = "export_public_key" -%} +{% with entry_point = "export_public_key" -%} {% macro entry_point_param(driver) -%} attributes, key_buffer, @@ -790,11 +785,9 @@ data_length /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=12 %} {% include "OS-template-transparent.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Fell through, meaning no accelerator supports this operation */ return( psa_export_public_key_internal( attributes, @@ -806,16 +799,15 @@ data_length /* Add cases for opaque driver here */ #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: /* Key is declared with a lifetime not known to us */ return( status ); } +{% endwith %} } psa_status_t psa_driver_wrapper_get_builtin_key( @@ -823,7 +815,7 @@ psa_status_t psa_driver_wrapper_get_builtin_key( psa_key_attributes_t *attributes, uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) { -{% set entry_point = "get_builtin_key" -%} +{% with entry_point = "get_builtin_key" -%} {% macro entry_point_param(driver) -%} slot_number, attributes, @@ -835,11 +827,9 @@ key_buffer_length switch( location ) { #if defined(PSA_CRYPTO_DRIVER_TEST) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_DRIVER_TEST */ default: (void) slot_number; @@ -848,6 +838,7 @@ key_buffer_length (void) key_buffer_length; return( PSA_ERROR_DOES_NOT_EXIST ); } +{% endwith %} } psa_status_t psa_driver_wrapper_copy_key( @@ -856,7 +847,7 @@ psa_status_t psa_driver_wrapper_copy_key( uint8_t *target_key_buffer, size_t target_key_buffer_size, size_t *target_key_buffer_length ) { -{% set entry_point = "copy_key" -%} +{% with entry_point = "copy_key" -%} {% macro entry_point_param(driver) -%} attributes, source_key, @@ -883,11 +874,9 @@ target_key_buffer_length switch( location ) { #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -/* BEGIN-Templating */ {% with nest_indent=8 %} {% include "OS-template-opaque.jinja" -%} {% endwith -%} -/* END-Templating */ #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void)source_key; @@ -898,6 +887,7 @@ target_key_buffer_length status = PSA_ERROR_INVALID_ARGUMENT; } return( status ); +{% endwith %} } /* diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index c025ed329..097edd970 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -135,12 +135,12 @@ def main() -> int: def_arg_mbedtls_root = build_tree.guess_mbedtls_root() parser = argparse.ArgumentParser() - parser.add_argument('--mbedtls-root', nargs='?', default=def_arg_mbedtls_root, - help='root directory of mbedtls source code') - parser.add_argument('--template-dir', nargs='?', - help='root directory of mbedtls source code') - parser.add_argument('--json-dir', nargs='?', + parser.add_argument('--mbedtls-root', default=def_arg_mbedtls_root, help='root directory of mbedtls source code') + parser.add_argument('--template-dir', + help='directory holding the driver templates') + parser.add_argument('--json-dir', + help='directory holding the driver JSONs') parser.add_argument('output_directory', nargs='?', help='output file\'s location') args = parser.parse_args() From 1776dd902271136e1cd2f11e726f69046d4f127c Mon Sep 17 00:00:00 2001 From: Archana Date: Tue, 12 Apr 2022 13:12:18 +0530 Subject: [PATCH 0065/1574] Doc improvements -Cosmetic Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- docs/proposed/psa-driver-wrappers-codegen-migration-guide.md | 4 ++-- scripts/driver.requirements.txt | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md index 222788322..9862db923 100644 --- a/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md +++ b/docs/proposed/psa-driver-wrappers-codegen-migration-guide.md @@ -30,11 +30,11 @@ While that is the larger goal, for version 1.1 here's what's changed (1) psa_crypto_driver_wrappers.c will from this point on be auto generated. (2) The auto generation is based on the template file at **scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja**. (3) The driver JSONS to be used for generating the psa_crypto_driver_wrappers.c file can be found at **scripts/data_files/driver_jsons/** as their default location, this path includes the schemas against which the driver schemas will be validated (driver_opaque_schema.json, driver_transparent_schema.json) and a driverlist.json which specifies the drivers to be considered and the order in which they want to be called into. The default location for driverlist.json and driver JSONS can be overloaded by passing an argument --json-dir while running the script generate_driver_wrappers.py. -(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the userwill need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). +(4) While the complete driver wrapper templating support is yet to come in, if the library user sees a need to patch psa_crypto_driver_wrappers.c file, the user will need to patch into the template file as needed (psa_crypto_driver_wrappers.c.jinja). #### How to set your driver up Please refer to psa-driver-interface.md for information on how a driver schema can be written. One can also refer to the example test drivers/ JSON schemas under **scripts/data_files/driver_jsons/**. -The JSON file 'driverlist.json' is meant to be edited by the user to reftlect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. +The JSON file 'driverlist.json' is meant to be edited by the user to reflect the drivers one wants to use on a device. The order in which the drivers are passed is also essential if/when there are multiple transparent drivers on a given system to retain the same order in the templating. diff --git a/scripts/driver.requirements.txt b/scripts/driver.requirements.txt index 2a1bef7e6..aff0d0e80 100644 --- a/scripts/driver.requirements.txt +++ b/scripts/driver.requirements.txt @@ -13,6 +13,5 @@ markupsafe < 2.1 Jinja2 >= 2.10.1 # Jinja2 >=2.10, <3.0 needs a separate package for type annotations types-Jinja2 -# jsonschema > 3.2.0 is not compatible with Python 3.5, force 3.2.0 jsonschema >= 3.2.0 types-jsonschema From a2cac3224da64632cf24a168df38c2d449f8caa9 Mon Sep 17 00:00:00 2001 From: Archana Date: Thu, 14 Apr 2022 09:31:28 +0530 Subject: [PATCH 0066/1574] Update and document mbedtls extensions Signed-off-by: Archana Signed-off-by: Asfandyar Orakzai --- docs/proposed/psa-driver-developer-guide.md | 6 ++++++ scripts/data_files/driver_jsons/driver_opaque_schema.json | 4 ++-- .../data_files/driver_jsons/driver_transparent_schema.json | 4 ++-- .../data_files/driver_jsons/mbedtls_test_opaque_driver.json | 6 +++--- .../driver_jsons/mbedtls_test_transparent_driver.json | 6 +++--- .../data_files/driver_templates/OS-template-opaque.jinja | 2 +- .../driver_templates/OS-template-transparent.jinja | 2 +- .../driver_templates/psa_crypto_driver_wrappers.c.jinja | 6 +++--- 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/docs/proposed/psa-driver-developer-guide.md b/docs/proposed/psa-driver-developer-guide.md index 70cb9d397..b39f5599e 100644 --- a/docs/proposed/psa-driver-developer-guide.md +++ b/docs/proposed/psa-driver-developer-guide.md @@ -36,6 +36,12 @@ A driver therefore consists of: Mbed TLS calls driver entry points [as specified in the PSA Cryptography Driver Interface specification](psa-driver-interface.html#driver-entry-points) except as otherwise indicated in this section. +## Mbed TLS extensions + +The driver description can include Mbed TLS extensions (marked by the namespace "mbedtls"). Mbed TLS extensions are meant to extend/help integrating the driver into the library's infrastructure. +* `"mbedtls/h_condition"` (optional, string) can include complex preprocessor definitions to conditionally include header files for a given driver. +* `"mbedtls/c_condition"` (optional, string) can include complex preprocessor definitions to conditionally enable dispatch capabilities for a driver. + ## Building and testing your driver diff --git a/scripts/data_files/driver_jsons/driver_opaque_schema.json b/scripts/data_files/driver_jsons/driver_opaque_schema.json index 946977eb7..933eb0748 100644 --- a/scripts/data_files/driver_jsons/driver_opaque_schema.json +++ b/scripts/data_files/driver_jsons/driver_opaque_schema.json @@ -17,7 +17,7 @@ "type": ["integer","string"], "pattern": "^(0x|0X)?[a-fA-F0-9]+$" }, - "mbedtls/h_depend_on": { + "mbedtls/h_condition": { "type": "string" }, "headers": { @@ -36,7 +36,7 @@ "_comment": { "type": "string" }, - "mbedtls/c_depend_on": { + "mbedtls/c_condition": { "type": "string" }, "entry_points": { diff --git a/scripts/data_files/driver_jsons/driver_transparent_schema.json b/scripts/data_files/driver_jsons/driver_transparent_schema.json index 06fea5559..f5d91eb32 100644 --- a/scripts/data_files/driver_jsons/driver_transparent_schema.json +++ b/scripts/data_files/driver_jsons/driver_transparent_schema.json @@ -13,7 +13,7 @@ "type": "string", "const": ["transparent"] }, - "mbedtls/h_depend_on": { + "mbedtls/h_condition": { "type": "string" }, "headers": { @@ -32,7 +32,7 @@ "_comment": { "type": "string" }, - "mbedtls/c_depend_on": { + "mbedtls/c_condition": { "type": "string" }, "entry_points": { diff --git a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json index c31f96490..41c74f2db 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_opaque_driver.json @@ -2,17 +2,17 @@ "prefix": "mbedtls_test", "type": "opaque", "location": "0x7fffff", - "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { "_comment": "The Mbed TLS opaque driver supports import key/export key/export_public key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key", "export_public_key"] }, { "_comment": "The Mbed TLS opaque driver supports copy key/ get builtin key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["copy_key", "get_builtin_key"], "names": {"copy_key":"mbedtls_test_opaque_copy_key", "get_builtin_key":"mbedtls_test_opaque_get_builtin_key"} } diff --git a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json index db31ff408..9eb259f65 100644 --- a/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json +++ b/scripts/data_files/driver_jsons/mbedtls_test_transparent_driver.json @@ -1,18 +1,18 @@ { "prefix": "mbedtls_test", "type": "transparent", - "mbedtls/h_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/h_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "headers": ["test/drivers/test_driver.h"], "capabilities": [ { "_comment": "The Mbed TLS transparent driver supports import key/export key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["import_key", "export_key"], "fallback": true }, { "_comment": "The Mbed TLS transparent driver supports export_public key", - "mbedtls/c_depend_on": "defined(PSA_CRYPTO_DRIVER_TEST)", + "mbedtls/c_condition": "defined(PSA_CRYPTO_DRIVER_TEST)", "entry_points": ["export_public_key"], "fallback": true, "names": {"export_public_key":"mbedtls_test_transparent_export_public_key"} diff --git a/scripts/data_files/driver_templates/OS-template-opaque.jinja b/scripts/data_files/driver_templates/OS-template-opaque.jinja index 115e22c86..a25d1c371 100644 --- a/scripts/data_files/driver_templates/OS-template-opaque.jinja +++ b/scripts/data_files/driver_templates/OS-template-opaque.jinja @@ -7,7 +7,7 @@ Expected inputs: -#} {% for driver in drivers if driver.type == "opaque" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} case {{ driver.location }}: return( {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}})); diff --git a/scripts/data_files/driver_templates/OS-template-transparent.jinja b/scripts/data_files/driver_templates/OS-template-transparent.jinja index 9ba115568..a6b7d6905 100644 --- a/scripts/data_files/driver_templates/OS-template-transparent.jinja +++ b/scripts/data_files/driver_templates/OS-template-transparent.jinja @@ -7,7 +7,7 @@ Expected inputs: -#} {% for driver in drivers if driver.type == "transparent" -%} {% for capability in driver.capabilities if entry_point in capability.entry_points -%} -#if ({% if capability['mbedtls/c_depend_on'] is defined -%}{{ capability['mbedtls/c_depend_on'] }} {% else -%} {{ 1 }} {% endif %}) +#if ({% if capability['mbedtls/c_condition'] is defined -%}{{ capability['mbedtls/c_condition'] }} {% else -%} {{ 1 }} {% endif %}) {%- filter indent(width = nest_indent) %} status = {{ entry_point_name(capability, entry_point, driver) }}({{entry_point_param(driver) | indent(20)}}); diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index f38479df0..d5ae91103 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -39,13 +39,13 @@ #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) {% for driver in drivers -%} /* Headers for {{driver.prefix}} {{driver.type}} driver */ -{% if driver['mbedtls/h_depend_on'] is defined -%} -#if {{ driver['mbedtls/h_depend_on'] }} +{% if driver['mbedtls/h_condition'] is defined -%} +#if {{ driver['mbedtls/h_condition'] }} {% endif -%} {% for header in driver.headers -%} #include "{{ header }}" {% endfor %} -{% if driver['mbedtls/h_depend_on'] is defined -%} +{% if driver['mbedtls/h_condition'] is defined -%} #endif {% endif -%} {% endfor %} From 08f397a676a7103b7dfa6b6dd4b5b1dd59833f96 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 15 Sep 2022 14:25:37 +0200 Subject: [PATCH 0067/1574] refactored generate_driver_wrappers.py Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 42 ++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 097edd970..97e8bfdea 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,7 +23,7 @@ import sys import os import json -from typing import Tuple, NewType +from typing import Tuple, NewType, Dict, Any import argparse import jsonschema import jinja2 @@ -34,6 +34,13 @@ JSONSchema = NewType('JSONSchema', object) # keep MyPy happy till MyPy comes with a more composite type for JsonObjects. Driver = NewType('Driver', dict) + +class JsonValidationException(Exception): + def __init__(self, message="Json Validation Failed"): + self.message = message + super().__init__(self.message) + + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -93,8 +100,17 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: return True + +def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: + with open(driver_file, 'r') as f: + json_data = json.load(f) + if not validate_json(json_data, schemas): + raise JsonValidationException() + return json_data + + def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ - jsondriver_list: str) -> Tuple[bool, list]: + jsondriver_list: str) -> Tuple[bool, list]: """ Merge driver JSON files into a single ordered JSON after validation. """ @@ -112,18 +128,17 @@ def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ 'driver_opaque_schema.json'), 'r') as file: opaque_driver_schema = json.load(file) - driver_schema_list = {'transparent':transparent_driver_schema, - 'opaque':opaque_driver_schema} - + driver_schema = {'transparent': transparent_driver_schema, + 'opaque': opaque_driver_schema} with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: - driverlist = json.load(driverlistfile) - for file_name in driverlist: - with open(os.path.join(json_directory, file_name), 'r') as infile: - json_data = json.load(infile) - ret = validate_json(json_data, driver_schema_list) - if ret is False: - return ret, [] - result.append(json_data) + driver_list = json.load(driverlistfile) + + try: + result = [load_driver(driver_schema, driver_file=os.path.join(json_directory, driver_file_name)) + for driver_file_name in driver_list] + except JsonValidationException as _: + return False, [] + return True, result @@ -172,5 +187,6 @@ def main() -> int: return 0 + if __name__ == '__main__': sys.exit(main()) From 39452a8ca422df78b6dfef2f1c286d52da85b027 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Fri, 16 Sep 2022 13:02:06 +0200 Subject: [PATCH 0068/1574] fixed formating of driver generator script Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 97e8bfdea..ae6db54af 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -134,7 +134,8 @@ def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ driver_list = json.load(driverlistfile) try: - result = [load_driver(driver_schema, driver_file=os.path.join(json_directory, driver_file_name)) + result = [load_driver(schemas=driver_schema, + driver_file=os.path.join(json_directory, driver_file_name)) for driver_file_name in driver_list] except JsonValidationException as _: return False, [] From 9512bde5c31b21c09697db5e3845e0375e38ef51 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 16 Sep 2022 09:49:06 -0500 Subject: [PATCH 0069/1574] pkcs7: Fix pkcs7 error code values Mbed TLS uses a two layer system for error codes. The least significant 7 bits should be used to signal low-level module errors. Since PKCS7 is a high level module, it should leave these bits unassigned. To do this, the least significant byte of PKCS7 error codes must either be 0x00 or 0x80. Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index c56926fd5..513b707d6 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -56,15 +56,15 @@ * \{ */ #define MBEDTLS_ERR_PKCS7_INVALID_FORMAT -0x5300 /**< The format is invalid, e.g. different type expected. */ -#define MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE -0x53F0 /**< Unavailable feature, e.g. anything other than signed data. */ +#define MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE -0x5380 /**< Unavailable feature, e.g. anything other than signed data. */ #define MBEDTLS_ERR_PKCS7_INVALID_VERSION -0x5400 /**< The PKCS7 version element is invalid or cannot be parsed. */ -#define MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO -0x54F0 /**< The PKCS7 content info invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO -0x5480 /**< The PKCS7 content info invalid or cannot be parsed. */ #define MBEDTLS_ERR_PKCS7_INVALID_ALG -0x5500 /**< The algorithm tag or value is invalid or cannot be parsed. */ -#define MBEDTLS_ERR_PKCS7_INVALID_CERT -0x55F0 /**< The certificate tag or value is invalid or cannot be parsed. */ +#define MBEDTLS_ERR_PKCS7_INVALID_CERT -0x5580 /**< The certificate tag or value is invalid or cannot be parsed. */ #define MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE -0x5600 /**< Error parsing the signature */ -#define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO -0x56F0 /**< Error parsing the signer's info */ +#define MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO -0x5680 /**< Error parsing the signer's info */ #define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA -0x5700 /**< Input invalid. */ -#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x57F0 /**< Allocation of memory failed. */ +#define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x5780 /**< Allocation of memory failed. */ #define MBEDTLS_ERR_PKCS7_VERIFY_FAIL -0x5800 /**< Verification Failed */ /* \} name */ From 64f2efdc40bb1d53605a5aba9c263a405d42eb22 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 21:41:47 +0200 Subject: [PATCH 0070/1574] More precise name for test data generation We have Python code both for test code generation (tests/scripts/generate_test_code.py) and now for test data generation. Avoid the ambiguous expression "test generation". This commit renames the Python module and adjusts all references to it. A subsequent commit will adjust the documentation. Signed-off-by: Gilles Peskine --- .../{test_generation.py => test_data_generation.py} | 0 tests/CMakeLists.txt | 4 ++-- tests/Makefile | 4 ++-- tests/scripts/generate_bignum_tests.py | 10 +++++----- tests/scripts/generate_psa_tests.py | 6 +++--- 5 files changed, 12 insertions(+), 12 deletions(-) rename scripts/mbedtls_dev/{test_generation.py => test_data_generation.py} (100%) diff --git a/scripts/mbedtls_dev/test_generation.py b/scripts/mbedtls_dev/test_data_generation.py similarity index 100% rename from scripts/mbedtls_dev/test_generation.py rename to scripts/mbedtls_dev/test_data_generation.py diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 57cf9770f..b518e5833 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,7 +63,7 @@ if(GEN_FILES) DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py - ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) add_custom_command( OUTPUT @@ -80,7 +80,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/macro_collector.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/psa_storage.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py - ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_generation.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_config.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_values.h ${CMAKE_CURRENT_SOURCE_DIR}/../include/psa/crypto_extra.h diff --git a/tests/Makefile b/tests/Makefile index 8777ae92f..57f885544 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -93,7 +93,7 @@ generated_files: $(GENERATED_FILES) $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py -generated_bignum_test_data: ../scripts/mbedtls_dev/test_generation.py +generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" $(PYTHON) scripts/generate_bignum_tests.py @@ -104,7 +104,7 @@ generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py generated_psa_test_data: ../scripts/mbedtls_dev/macro_collector.py generated_psa_test_data: ../scripts/mbedtls_dev/psa_storage.py generated_psa_test_data: ../scripts/mbedtls_dev/test_case.py -generated_psa_test_data: ../scripts/mbedtls_dev/test_generation.py +generated_psa_test_data: ../scripts/mbedtls_dev/test_data_generation.py ## The generated file only depends on the options that are present in ## crypto_config.h, not on which options are set. To avoid regenerating this ## file all the time when switching between configurations, don't declare diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index ceafa4a48..1cd859c4a 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -6,7 +6,7 @@ generate only the specified files. Class structure: -Child classes of test_generation.BaseTarget (file targets) represent an output +Child classes of test_data_generation.BaseTarget (file targets) represent an output file. These indicate where test cases will be written to, for all subclasses of this target. Multiple file targets should not reuse a `target_basename`. @@ -36,7 +36,7 @@ following: call `.create_test_case()` to yield the TestCase. Additional details and other attributes/methods are given in the documentation -of BaseTarget in test_generation.py. +of BaseTarget in test_data_generation.py. """ # Copyright The Mbed TLS Contributors @@ -63,7 +63,7 @@ from typing import Iterator, List, Tuple, TypeVar import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case -from mbedtls_dev import test_generation +from mbedtls_dev import test_data_generation T = TypeVar('T') #pylint: disable=invalid-name @@ -85,7 +85,7 @@ def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: ) -class BignumTarget(test_generation.BaseTarget, metaclass=ABCMeta): +class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum (mpi) test case generation.""" target_basename = 'test_suite_mpi.generated' @@ -235,4 +235,4 @@ class BignumAdd(BignumOperation): if __name__ == '__main__': # Use the section of the docstring relevant to the CLI as description - test_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) + test_data_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index c788fd76b..2f0900757 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -30,7 +30,7 @@ from mbedtls_dev import crypto_knowledge from mbedtls_dev import macro_collector from mbedtls_dev import psa_storage from mbedtls_dev import test_case -from mbedtls_dev import test_generation +from mbedtls_dev import test_data_generation def psa_want_symbol(name: str) -> str: @@ -892,7 +892,7 @@ class StorageFormatV0(StorageFormat): yield from super().generate_all_keys() yield from self.all_keys_for_implicit_usage() -class PSATestGenerator(test_generation.TestGenerator): +class PSATestGenerator(test_data_generation.TestGenerator): """Test generator subclass including PSA targets and info.""" # Note that targets whose names contain 'test_format' have their content # validated by `abi_check.py`. @@ -917,4 +917,4 @@ class PSATestGenerator(test_generation.TestGenerator): super().generate_target(name, self.info) if __name__ == '__main__': - test_generation.main(sys.argv[1:], __doc__, PSATestGenerator) + test_data_generation.main(sys.argv[1:], __doc__, PSATestGenerator) From 049042586e176abc215b0a57b8af1be5398981d6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:02:37 +0200 Subject: [PATCH 0071/1574] Clarify the descriptions of test-case-data-related modules Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_case.py | 2 +- scripts/mbedtls_dev/test_data_generation.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index 6a46e4209..d8f7b6004 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -1,4 +1,4 @@ -"""Library for generating Mbed TLS test data. +"""Library for constructing an Mbed TLS test case. """ # Copyright The Mbed TLS Contributors diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index a88425f46..f8e86ed8c 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -1,4 +1,7 @@ -"""Common test generation classes and main function. +"""Common code for test data generation. + +This module defines classes that are of general use to automatically +generate .data files for unit tests, as well as a main function. These are used both by generate_psa_tests.py and generate_bignum_tests.py. """ From 7b3fa657afaf856e76ad8f762cdbfe6ff90e22b9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:22:53 +0200 Subject: [PATCH 0072/1574] generate_*_tests.py --directory: fix handling of relative path The option to --directory was intended to be relative to the current directory when the script is invoked, which is the intuitive behavior. But this was not implemented correctly, and it was actually interpreted relative to the mbedtls root (which the script chdir's into). Fix this. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_data_generation.py | 24 +++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index f8e86ed8c..36c947505 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -141,8 +141,7 @@ class BaseTarget(metaclass=ABCMeta): class TestGenerator: """Generate test cases and write to data files.""" def __init__(self, options) -> None: - self.test_suite_directory = self.get_option(options, 'directory', - 'tests/suites') + self.test_suite_directory = options.directory # Update `targets` with an entry for each child class of BaseTarget. # Each entry represents a file generated by the BaseTarget framework, # and enables generating the .data files using the CLI. @@ -151,11 +150,6 @@ class TestGenerator: for subclass in BaseTarget.__subclasses__() }) - @staticmethod - def get_option(options, name: str, default: T) -> T: - value = getattr(options, name, None) - return default if value is None else value - def filename_for(self, basename: str) -> str: """The location of the data file with the specified base name.""" return posixpath.join(self.test_suite_directory, basename + '.data') @@ -189,16 +183,24 @@ def main(args, description: str, generator_class: Type[TestGenerator] = TestGene help='List available targets and exit') parser.add_argument('--list-for-cmake', action='store_true', help='Print \';\'-separated list of available targets and exit') + # If specified explicitly, this option may be a path relative to the + # current directory when the script is invoked. The default value + # is relative to the mbedtls root, which we don't know yet. So we + # can't set a string as the default value here. parser.add_argument('--directory', metavar='DIR', help='Output directory (default: tests/suites)') - # The `--directory` option is interpreted relative to the directory from - # which the script is invoked, but the default is relative to the root of - # the mbedtls tree. The default should not be set above, but instead after - # `build_tree.chdir_to_root()` is called. parser.add_argument('targets', nargs='*', metavar='TARGET', help='Target file to generate (default: all; "-": none)') options = parser.parse_args(args) + + # Change to the mbedtls root, to keep things simple. But first, adjust + # command line options that might be relative paths. + if options.directory is None: + options.directory = 'tests/suites' + else: + options.directory = os.path.abspath(options.directory) build_tree.chdir_to_root() + generator = generator_class(options) if options.list: for name in sorted(generator.targets): From 4537d6d8385b68550199e67367e15e94f5ac1942 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:26:38 +0200 Subject: [PATCH 0073/1574] Move implementation detail from docstring to comment Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 1cd859c4a..091630dec 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -74,11 +74,9 @@ def quote_str(val) -> str: return "\"{}\"".format(val) def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: - """Return all pair combinations from input values. - - The return value is cast, as older versions of mypy are unable to derive - the specific type returned by itertools.combinations_with_replacement. - """ + """Return all pair combinations from input values.""" + # The return value is cast, as older versions of mypy are unable to derive + # the specific type returned by itertools.combinations_with_replacement. return typing.cast( List[Tuple[T, T]], list(itertools.combinations_with_replacement(values, 2)) From 15997bd389278b09afa69468bb454662e948a56e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Sep 2022 22:35:18 +0200 Subject: [PATCH 0074/1574] Use relative imports when importing other modules in the same directory We were using absolute imports under the assumption that the /scripts directory is in the path. This worked in normal use because every one of our Python scripts either were in the /scripts directory, or added the /scripts directory to the module search path in order to reference mbedtls_dev. However, this broke things like ``` python3 -m unittest scripts/mbedtls_dev/psa_storage.py ``` Fix this by using relative imports. Relative imports are only supposed to be used inside a package (Python doesn't complain, but Pylint does). So make /scripts/mbedtls_dev a proper package by creating __init__.py. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/__init__.py | 3 +++ scripts/mbedtls_dev/crypto_knowledge.py | 2 +- scripts/mbedtls_dev/psa_storage.py | 2 +- scripts/mbedtls_dev/test_case.py | 2 +- scripts/mbedtls_dev/test_data_generation.py | 4 ++-- 5 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 scripts/mbedtls_dev/__init__.py diff --git a/scripts/mbedtls_dev/__init__.py b/scripts/mbedtls_dev/__init__.py new file mode 100644 index 000000000..c5bddaf74 --- /dev/null +++ b/scripts/mbedtls_dev/__init__.py @@ -0,0 +1,3 @@ +# This file needs to exist to make mbedtls_dev a package. +# Among other things, this allows modules in this directory to make +# relative impotrs. diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index 592fc0afe..1ce549903 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -22,7 +22,7 @@ import enum import re from typing import FrozenSet, Iterable, List, Optional, Tuple -from mbedtls_dev.asymmetric_key_data import ASYMMETRIC_KEY_DATA +from .asymmetric_key_data import ASYMMETRIC_KEY_DATA def short_expression(original: str, level: int = 0) -> str: diff --git a/scripts/mbedtls_dev/psa_storage.py b/scripts/mbedtls_dev/psa_storage.py index a06dce13b..bae99383d 100644 --- a/scripts/mbedtls_dev/psa_storage.py +++ b/scripts/mbedtls_dev/psa_storage.py @@ -26,7 +26,7 @@ import struct from typing import Dict, List, Optional, Set, Union import unittest -from mbedtls_dev import c_build_helper +from . import c_build_helper class Expr: diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index d8f7b6004..43ddf203b 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -21,7 +21,7 @@ import os import sys from typing import Iterable, List, Optional -from mbedtls_dev import typing_util +from . import typing_util def hex_string(data: bytes) -> str: return '"' + binascii.hexlify(data).decode('ascii') + '"' diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index 36c947505..cdb1c03b8 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -29,8 +29,8 @@ import re from abc import ABCMeta, abstractmethod from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar -from mbedtls_dev import build_tree -from mbedtls_dev import test_case +from . import build_tree +from . import test_case T = TypeVar('T') #pylint: disable=invalid-name From de0880317086183efc4906a5fb89a3c2ed46c4be Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 22:07:58 +0200 Subject: [PATCH 0075/1574] refactored and addressed reviewer observations in generate_driver_wrappers.py Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 122 ++++++++++++++++------------ 1 file changed, 68 insertions(+), 54 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index f43d4e57a..6cf8e86d4 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -28,6 +28,7 @@ import argparse import jsonschema import jinja2 from mbedtls_dev import build_tree +from traceback import format_tb JSONSchema = NewType('JSONSchema', object) # The Driver is an Object, but practically it's indexable and can called a dictionary to @@ -41,6 +42,12 @@ class JsonValidationException(Exception): super().__init__(self.message) +class DriverReaderException(Exception): + def __init__(self, message="Driver Reader Failed"): + self.message = message + super().__init__(self.message) + + def render(template_path: str, driver_jsoncontext: list) -> str: """ Render template from the input file and driver JSON. @@ -67,7 +74,7 @@ def generate_driver_wrapper_file(template_dir: str, \ out_file.write(result) -def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: +def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: """ Validate the Driver JSON against an appropriate schema the schema passed could be that matching an opaque/ transparent driver. @@ -77,16 +84,15 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: try: _schema = driverschema_list[driver_type] jsonschema.validate(instance=driverjson_data, schema=_schema) - except KeyError as err: - # This could happen if the driverjson_data.type does not exist in the passed in schema list + # This could happen if the driverjson_data.type does not exist in the provided schema list # schemas = {'transparent': transparent_driver_schema, 'opaque': opaque_driver_schema} # Print onto stdout and stderr. print("Unknown Driver type " + driver_type + " for driver " + driver_prefix, str(err)) print("Unknown Driver type " + driver_type + " for driver " + driver_prefix, str(err), file=sys.stderr) - return False + raise JsonValidationException() from err except jsonschema.exceptions.ValidationError as err: # Print onto stdout and stderr. @@ -96,51 +102,60 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> bool: print("Error: Failed to validate data file: {} using schema: {}." "\n Exception Message: \"{}\"" " ".format(driverjson_data, _schema, str(err)), file=sys.stderr) - return False - - return True + raise JsonValidationException() from err def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: with open(driver_file, 'r') as f: json_data = json.load(f) - if not validate_json(json_data, schemas): - raise JsonValidationException() + try: + validate_json(json_data, schemas) + except JsonValidationException as e: + raise DriverReaderException from e return json_data -def read_driver_descriptions(mbedtls_root: str, json_directory: str, \ - jsondriver_list: str) -> Tuple[bool, list]: +def load_schemas(mbedtls_root): + schema_file_paths = { + 'transparent': os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json'), + 'opaque': os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons', + 'driver_transparent_schema.json') + } + driver_schema = {} + for key, file_path in schema_file_paths.items(): + with open(file_path, 'r') as file: + driver_schema[key] = json.load(file) + return driver_schema + + +def read_driver_descriptions(mbedtls_root: str, + json_directory: str, + jsondriver_list: str) -> list: """ Merge driver JSON files into a single ordered JSON after validation. """ result = [] - with open(os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons', - 'driver_transparent_schema.json'), 'r') as file: - transparent_driver_schema = json.load(file) - with open(os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons', - 'driver_opaque_schema.json'), 'r') as file: - opaque_driver_schema = json.load(file) + driver_schema = load_schemas(mbedtls_root) - driver_schema = {'transparent': transparent_driver_schema, - 'opaque': opaque_driver_schema} - with open(os.path.join(json_directory, jsondriver_list), 'r') as driverlistfile: - driver_list = json.load(driverlistfile) + with open(os.path.join(json_directory, jsondriver_list), 'r') as driver_list_file: + driver_list = json.load(driver_list_file) - try: - result = [load_driver(schemas=driver_schema, - driver_file=os.path.join(json_directory, driver_file_name)) - for driver_file_name in driver_list] - except JsonValidationException as _: - return False, [] + return [load_driver(schemas=driver_schema, + driver_file=os.path.join(json_directory, driver_file_name)) + for driver_file_name in driver_list] - return True, result + +def trace_exception(e, file=sys.stderr): + print("Exception: type: %s, message: %s, trace: %s" % ( + e.__class__, str(e), format_tb(e.__traceback__) + ), file) def main() -> int: @@ -162,30 +177,29 @@ def main() -> int: args = parser.parse_args() mbedtls_root = os.path.abspath(args.mbedtls_root) - if args.template_dir is None: - args.template_dir = os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_templates') - if args.json_dir is None: - args.json_dir = os.path.join(mbedtls_root, - 'scripts', - 'data_files', - 'driver_jsons') - if args.output_directory is None: - args.output_directory = os.path.join(mbedtls_root, 'library') - output_directory = args.output_directory - template_directory = args.template_dir - json_directory = args.json_dir + output_directory = args.output_directory if args.output_directory is not None else \ + os.path.join(mbedtls_root, 'library') + template_directory = args.template_dir if args.template_dir is not None else \ + os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_templates') + json_directory = args.json_dir if args.json_dir is not None else \ + os.path.join(mbedtls_root, + 'scripts', + 'data_files', + 'driver_jsons') - # Read and validate list of driver jsons from driverlist.json - ret, merged_driver_json = read_driver_descriptions(mbedtls_root, json_directory, - 'driverlist.json') - if ret is False: + try: + # Read and validate list of driver jsons from driverlist.json + merged_driver_json = read_driver_descriptions(mbedtls_root, + json_directory, + 'driverlist.json') + except DriverReaderException as e: + trace_exception(e) return 1 generate_driver_wrapper_file(template_directory, output_directory, merged_driver_json) - return 0 From 4c93bb52efb39ce674acf446eecb18f5b904bf9b Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 22:20:33 +0200 Subject: [PATCH 0076/1574] removed changed made to the test/bionic/Dockerfile Signed-off-by: Asfandyar Orakzai --- tests/docker/bionic/Dockerfile | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 4b5739cce..28d33b755 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -60,15 +60,9 @@ RUN apt-get update \ pkg-config \ && rm -rf /var/lib/apt/lists/* -# The following packages are required for validating Python files. -# The version of Pylint is set to 2.4.4 to match CI. +# Jinja2 is required for driver dispatch code generation. RUN python3 -m pip install \ - packaging mypy pylint==2.4.4 - -# Jinja2 and jsonschema is required for driver dispatch code generation. -RUN python3 -m pip install \ - jinja2==2.10.1 types-jinja2 \ - jsonschema==3.2.0 types-jsonschema + jinja2==2.10.1 types-jinja2 # Build a static, legacy openssl from sources with sslv3 enabled # Based on https://gist.github.com/bmaupin/8caca3a1e8c3c5686141 (build-openssl.sh) From 5c9569a2bc2f46a5a357ce517bf1ac1cb8f68267 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 23:13:52 +0200 Subject: [PATCH 0077/1574] fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 6cf8e86d4..72a8c6182 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -23,12 +23,12 @@ import sys import os import json -from typing import Tuple, NewType, Dict, Any +from typing import NewType, Dict, Any +from traceback import format_tb import argparse import jsonschema import jinja2 from mbedtls_dev import build_tree -from traceback import format_tb JSONSchema = NewType('JSONSchema', object) # The Driver is an Object, but practically it's indexable and can called a dictionary to @@ -70,7 +70,9 @@ def generate_driver_wrapper_file(template_dir: str, \ result = render(driver_wrapper_template_filename, driver_jsoncontext) - with open(os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), 'w') as out_file: + with open(file=os.path.join(output_dir, "psa_crypto_driver_wrappers.c"), + mode='w', + encoding='UTF-8') as out_file: out_file.write(result) @@ -106,7 +108,7 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: - with open(driver_file, 'r') as f: + with open(file=driver_file, mode='r', encoding='UTF-8') as f: json_data = json.load(f) try: validate_json(json_data, schemas) @@ -115,7 +117,8 @@ def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: return json_data -def load_schemas(mbedtls_root): +def load_schemas(mbedtls_root: str) -> Dict[str, Any]: + """Load schemas map""" schema_file_paths = { 'transparent': os.path.join(mbedtls_root, 'scripts', @@ -130,7 +133,7 @@ def load_schemas(mbedtls_root): } driver_schema = {} for key, file_path in schema_file_paths.items(): - with open(file_path, 'r') as file: + with open(file=file_path, mode='r', encoding='UTF-8') as file: driver_schema[key] = json.load(file) return driver_schema @@ -141,10 +144,11 @@ def read_driver_descriptions(mbedtls_root: str, """ Merge driver JSON files into a single ordered JSON after validation. """ - result = [] driver_schema = load_schemas(mbedtls_root) - with open(os.path.join(json_directory, jsondriver_list), 'r') as driver_list_file: + with open(file=os.path.join(json_directory, jsondriver_list), + mode='r', + encoding='UTF-8') as driver_list_file: driver_list = json.load(driver_list_file) return [load_driver(schemas=driver_schema, From 9e6170d95e3896ea4f2eddb420fd0d8a271eff3b Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sat, 17 Sep 2022 23:37:16 +0200 Subject: [PATCH 0078/1574] added some doc strings and fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index 72a8c6182..ce801a62d 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -60,8 +60,9 @@ def render(template_path: str, driver_jsoncontext: list) -> str: return template.render(drivers=driver_jsoncontext) -def generate_driver_wrapper_file(template_dir: str, \ - output_dir: str, driver_jsoncontext: list) -> None: +def generate_driver_wrapper_file(template_dir: str, + output_dir: str, + driver_jsoncontext: list) -> None: """ Generate the file psa_crypto_driver_wrapper.c. """ @@ -108,6 +109,7 @@ def validate_json(driverjson_data: Driver, driverschema_list: dict) -> None: def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: + """loads validated json driver""" with open(file=driver_file, mode='r', encoding='UTF-8') as f: json_data = json.load(f) try: @@ -156,7 +158,8 @@ def read_driver_descriptions(mbedtls_root: str, for driver_file_name in driver_list] -def trace_exception(e, file=sys.stderr): +def trace_exception(e: Exception, file=sys.stderr) -> None: + """Prints exception trace to the given TextIO handle""" print("Exception: type: %s, message: %s, trace: %s" % ( e.__class__, str(e), format_tb(e.__traceback__) ), file) From 4ca4a930a94a751c616cae8733da715387920ef7 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Sun, 18 Sep 2022 12:37:53 +0200 Subject: [PATCH 0079/1574] fixed opaque schemas paths Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index ce801a62d..b808ac9c6 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -131,7 +131,7 @@ def load_schemas(mbedtls_root: str) -> Dict[str, Any]: 'scripts', 'data_files', 'driver_jsons', - 'driver_transparent_schema.json') + 'driver_opaque_schema.json') } driver_schema = {} for key, file_path in schema_file_paths.items(): From ef843f2b0c578d579228bd90894c4319379ae1bf Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 14:05:23 +0200 Subject: [PATCH 0080/1574] MBEDTLS_PLATFORM_VSNPRINTF_ALT requires MBEDTLS_PLATFORM_C mbedtls_vsnprintf replacement works like mbedtls_snprintf replacement, so copy the requirements for MBEDTLS_PLATFORM_VSNPRINTF_ALT. (MBEDTLS_PLATFORM_xxx_MACRO shouldn't require MBEDTLS_PLATFORM_C, but that's a separate preexisting problem which I do not try address at this time.) Signed-off-by: Gilles Peskine --- include/mbedtls/check_config.h | 14 ++++++++++++++ tests/scripts/all.sh | 1 + 2 files changed, 15 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e00ffb5a9..cc67423d3 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -514,6 +514,20 @@ #error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously" #endif +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C) +#error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites" +#endif + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C) +#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites" +#endif + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\ + ( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\ + defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) ) +#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously" +#endif + #if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\ !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) #error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites" diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6c70f78db..f2f10b5ee 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2298,6 +2298,7 @@ component_test_no_platform () { scripts/config.py unset MBEDTLS_PLATFORM_PRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_FPRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_SNPRINTF_ALT + scripts/config.py unset MBEDTLS_PLATFORM_VSNPRINTF_ALT scripts/config.py unset MBEDTLS_PLATFORM_TIME_ALT scripts/config.py unset MBEDTLS_PLATFORM_EXIT_ALT scripts/config.py unset MBEDTLS_PLATFORM_SETBUF_ALT From d9071e7d96d99a066ab9253b72e7cb98dc17770c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 21:17:09 +0200 Subject: [PATCH 0081/1574] Unify check_repo_path We had 4 identical copies of the check_repo_path function. Replace them by a single copy in the build_tree module where it naturally belongs. Signed-off-by: Gilles Peskine --- scripts/abi_check.py | 9 +++------ scripts/code_size_compare.py | 10 ++++------ scripts/mbedtls_dev/build_tree.py | 7 +++++++ tests/scripts/check_files.py | 10 ++++------ tests/scripts/check_names.py | 15 +++++---------- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/scripts/abi_check.py b/scripts/abi_check.py index c2288432c..ac1d60ffd 100755 --- a/scripts/abi_check.py +++ b/scripts/abi_check.py @@ -113,6 +113,8 @@ from types import SimpleNamespace import xml.etree.ElementTree as ET +from mbedtls_dev import build_tree + class AbiChecker: """API and ABI checker.""" @@ -150,11 +152,6 @@ class AbiChecker: self.git_command = "git" self.make_command = "make" - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - def _setup_logger(self): self.log = logging.getLogger() if self.verbose: @@ -540,7 +537,7 @@ class AbiChecker: def check_for_abi_changes(self): """Generate a report of ABI differences between self.old_rev and self.new_rev.""" - self.check_repo_path() + build_tree.check_repo_path() if self.check_api or self.check_abi: self.check_abi_tools_are_installed() self._get_abi_dump_for_ref(self.old_version) diff --git a/scripts/code_size_compare.py b/scripts/code_size_compare.py index 0ef438db7..af6ddd4fc 100755 --- a/scripts/code_size_compare.py +++ b/scripts/code_size_compare.py @@ -30,6 +30,9 @@ import os import subprocess import sys +from mbedtls_dev import build_tree + + class CodeSizeComparison: """Compare code size between two Git revisions.""" @@ -51,11 +54,6 @@ class CodeSizeComparison: self.git_command = "git" self.make_command = "make" - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - @staticmethod def validate_revision(revision): result = subprocess.check_output(["git", "rev-parse", "--verify", @@ -172,7 +170,7 @@ class CodeSizeComparison: def get_comparision_results(self): """Compare size of library/*.o between self.old_rev and self.new_rev, and generate the result file.""" - self.check_repo_path() + build_tree.check_repo_path() self._get_code_size_for_rev(self.old_rev) self._get_code_size_for_rev(self.new_rev) return self.compare_code_size() diff --git a/scripts/mbedtls_dev/build_tree.py b/scripts/mbedtls_dev/build_tree.py index 3920d0ed6..f52b785d9 100644 --- a/scripts/mbedtls_dev/build_tree.py +++ b/scripts/mbedtls_dev/build_tree.py @@ -25,6 +25,13 @@ def looks_like_mbedtls_root(path: str) -> bool: return all(os.path.isdir(os.path.join(path, subdir)) for subdir in ['include', 'library', 'programs', 'tests']) +def check_repo_path(): + """ + Check that the current working directory is the project root, and throw + an exception if not. + """ + if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): + raise Exception("This script must be run from Mbed TLS root") def chdir_to_root() -> None: """Detect the root of the Mbed TLS source tree and change to it. diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index a0f5e1f53..5c18702de 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -34,6 +34,9 @@ try: except ImportError: pass +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import build_tree + class FileIssueTracker: """Base class for file-wide issue tracking. @@ -338,7 +341,7 @@ class IntegrityChecker: """Instantiate the sanity checker. Check files under the current directory. Write a report of issues to log_file.""" - self.check_repo_path() + build_tree.check_repo_path() self.logger = None self.setup_logger(log_file) self.issues_to_check = [ @@ -353,11 +356,6 @@ class IntegrityChecker: MergeArtifactIssueTracker(), ] - @staticmethod - def check_repo_path(): - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("Must be run from Mbed TLS root") - def setup_logger(self, log_file, level=logging.INFO): self.logger = logging.getLogger() self.logger.setLevel(level) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index e20448729..aece1ef06 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -56,6 +56,10 @@ import shutil import subprocess import logging +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import build_tree + + # Naming patterns to check against. These are defined outside the NameCheck # class for ease of modification. PUBLIC_MACRO_PATTERN = r"^(MBEDTLS|PSA)_[0-9A-Z_]*[0-9A-Z]$" @@ -219,7 +223,7 @@ class CodeParser(): """ def __init__(self, log): self.log = log - self.check_repo_path() + build_tree.check_repo_path() # Memo for storing "glob expression": set(filepaths) self.files = {} @@ -228,15 +232,6 @@ class CodeParser(): # Note that "*" can match directory separators in exclude lists. self.excluded_files = ["*/bn_mul", "*/compat-2.x.h"] - @staticmethod - def check_repo_path(): - """ - Check that the current working directory is the project root, and throw - an exception if not. - """ - if not all(os.path.isdir(d) for d in ["include", "library", "tests"]): - raise Exception("This script must be run from Mbed TLS root") - def comprehensive_parse(self): """ Comprehensive ("default") function to call each parsing function and From e188734f514939fa148a3d961a935f50bf8effe1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 21:27:37 +0200 Subject: [PATCH 0082/1574] Don't use parallel jobs for pylint When pylint runs in parallel, it loses the ability to detect duplicated code across modules. Duplicated code is usually a bad thing, so give pylint the opportunity to let us know. This makes pylint slightly slower, but going from 2 threads to 1 does not make it anywhere close to twice as slow. On my machine, with Python 3.5, pylint -j2 takes about 12s while single-threaded pylint takes about 16s of wall clock time. Signed-off-by: Gilles Peskine --- tests/scripts/check-python-files.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check-python-files.sh b/tests/scripts/check-python-files.sh index dbf036532..35319d3e1 100755 --- a/tests/scripts/check-python-files.sh +++ b/tests/scripts/check-python-files.sh @@ -67,7 +67,7 @@ elif [ "$1" = "--can-mypy" ]; then fi echo 'Running pylint ...' -$PYTHON -m pylint -j 2 scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || { +$PYTHON -m pylint scripts/mbedtls_dev/*.py scripts/*.py tests/scripts/*.py || { echo >&2 "pylint reported errors" ret=1 } From cca6ce882924951e75d14979241bacd7cb4d09a2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 18 Sep 2022 23:08:38 +0200 Subject: [PATCH 0083/1574] Fix directory mixup with generated data files CMakeLists.txt was calling generate_psa_tests.py and siblings to list the generated test data files with a --directory option, intended the output to be this argument textually. This used to work, but no longer does, because the --directory argument is relative to the current directory when the Python script is invoked, and the script now shows an absolute path. CMakeLists.txt now completely ignores the directory part of the listed data file paths and builds its own. The base_xxx_files variables now contain actual base names, without a "suites/" prefix. This makes it more robust with respect to the behavior of the Python script, but it will break if we put data files in multiple different directories one day. Signed-off-by: Gilles Peskine --- tests/CMakeLists.txt | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b518e5833..d89542a44 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,38 +16,44 @@ endif() # generated .data files will go there file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/suites) -# Get base names for generated files (starting at "suites/") +# Get base names for generated files execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py --list-for-cmake - --directory suites WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE base_bignum_generated_data_files) +string(REGEX REPLACE "[^;]*/" "" + base_bignum_generated_data_files "${base_bignum_generated_data_files}") execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_psa_tests.py --list-for-cmake - --directory suites WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/.. OUTPUT_VARIABLE base_psa_generated_data_files) +string(REGEX REPLACE "[^;]*/" "" + base_psa_generated_data_files "${base_psa_generated_data_files}") -# Derive generated file paths in the build directory -set(base_generated_data_files ${base_bignum_generated_data_files} ${base_psa_generated_data_files}) +# Derive generated file paths in the build directory. The generated data +# files go into the suites/ subdirectory. +set(base_generated_data_files + ${base_bignum_generated_data_files} ${base_psa_generated_data_files}) +string(REGEX REPLACE "([^;]+)" "suites/\\1" + all_generated_data_files "${base_generated_data_files}") set(bignum_generated_data_files "") set(psa_generated_data_files "") foreach(file ${base_bignum_generated_data_files}) - list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) + list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() foreach(file ${base_psa_generated_data_files}) - list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/${file}) + list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() if(GEN_FILES) @@ -87,7 +93,7 @@ if(GEN_FILES) ) else() - foreach(file ${base_generated_data_files}) + foreach(file ${all_generated_data_files}) link_to_source(${file}) endforeach() endif() @@ -210,9 +216,9 @@ if(MSVC) endif(MSVC) file(GLOB test_suites RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" suites/*.data) -list(APPEND test_suites ${base_generated_data_files}) +list(APPEND test_suites ${all_generated_data_files}) # If the generated .data files are present in the source tree, we just added -# them twice, both through GLOB and through ${base_generated_data_files}. +# them twice, both through GLOB and through ${all_generated_data_files}. list(REMOVE_DUPLICATES test_suites) list(SORT test_suites) foreach(test_suite ${test_suites}) From ac6f650a9f5a2ecfbc8442ff37a3183a0ae87162 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Mon, 19 Sep 2022 10:03:05 +0200 Subject: [PATCH 0084/1574] fixed formating Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index b808ac9c6..babba5d15 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -120,7 +120,9 @@ def load_driver(schemas: Dict[str, Any], driver_file: str) -> Any: def load_schemas(mbedtls_root: str) -> Dict[str, Any]: - """Load schemas map""" + """ + Load schemas map + """ schema_file_paths = { 'transparent': os.path.join(mbedtls_root, 'scripts', From 4ecb1b500b4cdad6258695575a928b3881b73eec Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Tue, 20 Sep 2022 14:33:13 +0100 Subject: [PATCH 0085/1574] Fix missing file name in changelog The wrong generated file is referred to as having been missing in the changelog entry for 3.2.1. Signed-off-by: Paul Elliott --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6dfb23fa6..417c18e35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,7 +3,7 @@ Mbed TLS ChangeLog (Sorted per branch, date) = Mbed TLS 3.2.1 branch released 2022-07-12 Bugfix - * Re-add missing generated file library/ssl_debug_helpers_generated.c + * Re-add missing generated file library/psa_crypto_driver_wrappers.c = Mbed TLS 3.2.0 branch released 2022-07-11 From 2fdc7b3599f3eeb14391e925b6b859f9e3ab857c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 21 Sep 2022 12:33:17 +0100 Subject: [PATCH 0086/1574] Return an error from mbedtls_ssl_handshake_step() if neither client nor server This prevents an infinite loop in mbedtls_ssl_handshake(). Fixes #6305. Signed-off-by: Tom Cosgrove --- library/ssl_tls.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 12e1c1b03..5ea8afadf 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3243,6 +3243,10 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) if( ret != 0 ) goto cleanup; + /* If ssl->conf->endpoint is not one of MBEDTLS_SSL_IS_CLIENT or + * MBEDTLS_SSL_IS_SERVER, this is the return code we give */ + ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + #if defined(MBEDTLS_SSL_CLI_C) if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) { From b3ea98c60629124ab8b96dad012b7c45b944cdd9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 22:00:06 +0200 Subject: [PATCH 0087/1574] Replace the output file atomically When writing the new .data file, first write the new content, then replace the target. This way, there isn't a temporary state in which the file is partially written. This temporary state can be misleading if the build is interrupted. It's annoying if you're watching changes to the output and the changes appear as emptying the file following by the new version appearing. Now interrupted builds don't leave a file that appears to be up to date but isn't, and when watching the output, there's a single transition to the new version. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/test_case.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_case.py b/scripts/mbedtls_dev/test_case.py index 43ddf203b..8f0870367 100644 --- a/scripts/mbedtls_dev/test_case.py +++ b/scripts/mbedtls_dev/test_case.py @@ -92,9 +92,11 @@ def write_data_file(filename: str, """ if caller is None: caller = os.path.basename(sys.argv[0]) - with open(filename, 'w') as out: + tempfile = filename + '.new' + with open(tempfile, 'w') as out: out.write('# Automatically generated by {}. Do not edit!\n' .format(caller)) for tc in test_cases: tc.write(out) out.write('\n# End of automatically generated file.\n') + os.replace(tempfile, filename) From 87d9c6c4d879d4cf32a9fbc101cb3be3abf05f77 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 22 Sep 2022 09:27:56 +0100 Subject: [PATCH 0088/1574] Ensure client mbedtls_ssl_handshake_step() returns success for HELLO_REQUEST Signed-off-by: Tom Cosgrove --- library/ssl_tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 5ea8afadf..2d1ffbe04 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3257,6 +3257,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) { case MBEDTLS_SSL_HELLO_REQUEST: ssl->state = MBEDTLS_SSL_CLIENT_HELLO; + ret = 0; break; case MBEDTLS_SSL_CLIENT_HELLO: From 5f9456f3e36fcb5a45955eb632cf42ae2962e9c9 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Mon, 19 Sep 2022 10:01:25 -0500 Subject: [PATCH 0089/1574] pkcs7: Fix trailing whitespace Signed-off-by: Nick Child --- library/pkcs7.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 5ec10891c..c4d605e00 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -243,9 +243,9 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, *p = *p + len1; - /* + /* * Since in this version we strictly support single certificate, and reaching - * here implies we have parsed successfully, we return 1. + * here implies we have parsed successfully, we return 1. */ ret = 1; @@ -701,7 +701,7 @@ out: int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, - const unsigned char *hash, + const unsigned char *hash, size_t hashlen ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; From 47c7a732d28696b9ff4ebd90f45ba4d96d6cfd78 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:34:23 -0300 Subject: [PATCH 0090/1574] Print RFC 4108 hwSerialNum in hex format Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- library/x509_crt.c | 14 ++----- tests/suites/test_suite_x509parse.data | 8 ++-- tests/suites/test_suite_x509parse.function | 46 ++++++++++------------ 3 files changed, 28 insertions(+), 40 deletions(-) diff --git a/library/x509_crt.c b/library/x509_crt.c index af1e487db..d17a952b7 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -1854,6 +1854,7 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, const char *prefix ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t i; size_t n = *size; char *p = *buf; const mbedtls_x509_sequence *cur = subject_alt_name; @@ -1906,18 +1907,11 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, ret = mbedtls_snprintf( p, n, "\n%s hardware serial number : ", prefix ); MBEDTLS_X509_SAFE_SNPRINTF; - if( other_name->value.hardware_module_name.val.len >= n ) + for( i = 0; i < other_name->value.hardware_module_name.val.len; i++ ) { - *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + ret = mbedtls_snprintf( p, n, "%02X", other_name->value.hardware_module_name.val.p[i] ); + MBEDTLS_X509_SAFE_SNPRINTF; } - - memcpy( p, other_name->value.hardware_module_name.val.p, - other_name->value.hardware_module_name.val.len ); - p += other_name->value.hardware_module_name.val.len; - - n -= other_name->value.hardware_module_name.val.len; - }/* MBEDTLS_OID_ON_HW_MODULE_NAME */ } break; diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 6263fba2c..a4908a61e 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -88,7 +88,7 @@ x509_cert_info:"data_files/server5-sha512.crt":"cert. version \: 3\nserial n X509 CRT information EC, SHA256 Digest, hardware module name SAN depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 123456\n" +x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n" X509 CRT information EC, SHA256 Digest, Wisun Fan device depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -112,7 +112,7 @@ x509_cert_info:"data_files/cert_example_multi.crt":"cert. version \: 3\nseri X509 CRT information, Multiple different Subject Alt Name depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_cert_info:"data_files/multiple_san.crt":"cert. version \: 3\nserial number \: 04\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nissued on \: 2019-04-22 16\:10\:48\nexpires on \: 2029-04-19 16\:10\:48\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n dNSName \: example.com\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 123456\n dNSName \: example.net\n dNSName \: *.example.org\n" +x509_cert_info:"data_files/multiple_san.crt":"cert. version \: 3\nserial number \: 04\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS multiple othername SAN\nissued on \: 2019-04-22 16\:10\:48\nexpires on \: 2029-04-19 16\:10\:48\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n dNSName \: example.com\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CRT information, Subject Alt Name + Key Usage depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -172,7 +172,7 @@ x509_cert_info:"data_files/non-ascii-string-in-issuer.crt":"cert. version \: X509 SAN parsing otherName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 123456\n" +x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\n" X509 SAN parsing dNSName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA @@ -180,7 +180,7 @@ x509_parse_san:"data_files/cert_example_multi.crt":"type \: 2\ndNSName \: exampl X509 SAN parsing Multiple different types depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_parse_san:"data_files/multiple_san.crt":"type \: 2\ndNSName \: example.com\ntype \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 123456\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" +x509_parse_san:"data_files/multiple_san.crt":"type \: 2\ndNSName \: example.com\ntype \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" X509 SAN parsing, no subject alt name depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 60e703a94..df4b03e0e 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -246,36 +246,30 @@ int verify_parse_san( mbedtls_x509_subject_alternative_name *san, switch( san->type ) { - case( MBEDTLS_X509_SAN_OTHER_NAME ): - ret = mbedtls_snprintf( p, n, "\notherName :"); - MBEDTLS_X509_SAFE_SNPRINTF; + case( MBEDTLS_X509_SAN_OTHER_NAME ): + ret = mbedtls_snprintf( p, n, "\notherName :"); + MBEDTLS_X509_SAFE_SNPRINTF; - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, - &san->san.other_name.value.hardware_module_name.oid ) != 0 ) - { - ret = mbedtls_snprintf( p, n, " hardware module name :" ); - MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " hardware type : " ); - MBEDTLS_X509_SAFE_SNPRINTF; + if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, + &san->san.other_name.value.hardware_module_name.oid ) != 0 ) + { + ret = mbedtls_snprintf( p, n, " hardware module name :" ); + MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_snprintf( p, n, " hardware type : " ); + MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_oid_get_numeric_string( p, n, - &san->san.other_name.value.hardware_module_name.oid ); - MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_oid_get_numeric_string( p, n, + &san->san.other_name.value.hardware_module_name.oid ); + MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, ", hardware serial number : " ); - MBEDTLS_X509_SAFE_SNPRINTF; + ret = mbedtls_snprintf( p, n, ", hardware serial number : " ); + MBEDTLS_X509_SAFE_SNPRINTF; - if( san->san.other_name.value.hardware_module_name.val.len >= n ) - { - *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); - } - - for( i=0; i < san->san.other_name.value.hardware_module_name.val.len; i++ ) - { - *p++ = san->san.other_name.value.hardware_module_name.val.p[i]; - } - n -= san->san.other_name.value.hardware_module_name.val.len; + for( i = 0; i < san->san.other_name.value.hardware_module_name.val.len; i++ ) + { + ret = mbedtls_snprintf( p, n, "%02X", san->san.other_name.value.hardware_module_name.val.p[i] ); + MBEDTLS_X509_SAFE_SNPRINTF; + } } break;/* MBEDTLS_OID_ON_HW_MODULE_NAME */ case( MBEDTLS_X509_SAN_DNS_NAME ): From 31a8815f2541c9544ebeace1c7f2c28ab1dc0eaa Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 29 Sep 2022 18:48:41 +0200 Subject: [PATCH 0091/1574] Documentation typo Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/__init__.py b/scripts/mbedtls_dev/__init__.py index c5bddaf74..15b0d60dd 100644 --- a/scripts/mbedtls_dev/__init__.py +++ b/scripts/mbedtls_dev/__init__.py @@ -1,3 +1,3 @@ # This file needs to exist to make mbedtls_dev a package. # Among other things, this allows modules in this directory to make -# relative impotrs. +# relative imports. From d0225afcb62573774df307389352c336b97a9e54 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:40:20 -0300 Subject: [PATCH 0092/1574] Add a new test with a binary hwSerialNum Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- tests/data_files/Makefile | 3 +++ tests/data_files/server5-nonprintable_othername.crt | 12 ++++++++++++ tests/data_files/test-ca.opensslconf | 7 +++++++ tests/suites/test_suite_x509parse.data | 8 ++++++++ 4 files changed, 30 insertions(+) create mode 100644 tests/data_files/server5-nonprintable_othername.crt diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 6187d17bc..09a068946 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -276,6 +276,9 @@ all_final += server5-ss-forgeca.crt server5-othername.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions othername_san -days 3650 -sha256 -key $< -out $@ +server5-nonprintable_othername.crt: server5.key + $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS non-printable othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions nonprintable_othername_san -days 3650 -sha256 -key $< -out $@ + server5-unsupported_othername.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS unsupported othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions unsupoported_othername_san -days 3650 -sha256 -key $< -out $@ diff --git a/tests/data_files/server5-nonprintable_othername.crt b/tests/data_files/server5-nonprintable_othername.crt new file mode 100644 index 000000000..9470bbe9c --- /dev/null +++ b/tests/data_files/server5-nonprintable_othername.crt @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE----- +MIIBwTCCAWagAwIBAgIBTTAKBggqhkjOPQQDAjBPMQswCQYDVQQGEwJVSzERMA8G +A1UECgwITWJlZCBUTFMxLTArBgNVBAMMJE1iZWQgVExTIG5vbi1wcmludGFibGUg +b3RoZXJuYW1lIFNBTjAeFw0yMjA5MDYxNTU2NDdaFw0zMjA5MDMxNTU2NDdaME8x +CzAJBgNVBAYTAlVLMREwDwYDVQQKDAhNYmVkIFRMUzEtMCsGA1UEAwwkTWJlZCBU +TFMgbm9uLXByaW50YWJsZSBvdGhlcm5hbWUgU0FOMFkwEwYHKoZIzj0CAQYIKoZI +zj0DAQcDQgAEN8xW2XYJHlpyPsdZLf8gbu58+QaRdNCtFLX3aCJZYpJO5QDYIxH/ +6i/SNF1dFr2KiMJrdw1VzYoqDvoByLTt/6MzMDEwLwYDVR0RBCgwJqAkBggrBgEF +BQcIBKAYMBYGBysGAQQBEQMECzEyM4CBAIGAMzIxMAoGCCqGSM49BAMCA0kAMEYC +IQDATir07PTj5gtf+HAyI+nd27AH9+bdaWdOI2t2bAwUWgIhAO7kvdcsa++yfJdT +3vnWdvcHRIAdXA0kh+mcBMaXk9B0 +-----END CERTIFICATE----- diff --git a/tests/data_files/test-ca.opensslconf b/tests/data_files/test-ca.opensslconf index 64347de83..3bb237903 100644 --- a/tests/data_files/test-ca.opensslconf +++ b/tests/data_files/test-ca.opensslconf @@ -15,6 +15,9 @@ basicConstraints = CA:true [othername_san] subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:hw_module_name +[nonprintable_othername_san] +subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:nonprintable_hw_module_name + [unsupoported_othername_san] subjectAltName=otherName:1.2.3.4;UTF8:some other identifier @@ -34,6 +37,10 @@ subjectAltName=@alt_names hwtype = OID:1.3.6.1.4.1.17.3 hwserial = OCT:123456 +[nonprintable_hw_module_name] +hwtype = OID:1.3.6.1.4.1.17.3 +hwserial = FORMAT:HEX, OCT:3132338081008180333231 + [v3_any_policy_ca] basicConstraints = CA:true certificatePolicies = 2.5.29.32.0 diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index a4908a61e..69f745f46 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -90,6 +90,10 @@ X509 CRT information EC, SHA256 Digest, hardware module name SAN depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_cert_info:"data_files/server5-othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS othername SAN\nissued on \: 2019-03-24 09\:06\:02\nexpires on \: 2029-03-21 09\:06\:02\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 313233343536\n" +X509 CRT information EC, SHA256 Digest, binary hardware module name SAN +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_cert_info:"data_files/server5-nonprintable_othername.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS non-printable othername SAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS non-printable othername SAN\nissued on \: 2022-09-06 15\:56\:47\nexpires on \: 2032-09-03 15\:56\:47\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\n" + X509 CRT information EC, SHA256 Digest, Wisun Fan device depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_cert_info:"data_files/server5-fan.crt":"cert. version \: 3\nserial number \: 4D\nissuer name \: C=UK, O=Mbed TLS, CN=Mbed TLS FAN\nsubject name \: C=UK, O=Mbed TLS, CN=Mbed TLS FAN\nissued on \: 2019-03-25 09\:03\:46\nexpires on \: 2029-03-22 09\:03\:46\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\next key usage \: Wi-SUN Alliance Field Area Network (FAN)\n" @@ -174,6 +178,10 @@ X509 SAN parsing otherName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_parse_san:"data_files/server5-othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 313233343536\n" +X509 SAN parsing binary otherName +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_parse_san:"data_files/server5-nonprintable_othername.crt":"type \: 0\notherName \: hardware module name \: hardware type \: 1.3.6.1.4.1.17.3, hardware serial number \: 3132338081008180333231\n" + X509 SAN parsing dNSName depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_parse_san:"data_files/cert_example_multi.crt":"type \: 2\ndNSName \: example.com\ntype \: 2\ndNSName \: example.net\ntype \: 2\ndNSName \: *.example.org\n" From 00a02b1468e95e0c0bf66e513beb919733e78050 Mon Sep 17 00:00:00 2001 From: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:40:39 -0300 Subject: [PATCH 0093/1574] Add Changelog entry Signed-off-by: Victor Barpp Gomes <17840319+Kabbah@users.noreply.github.com> --- ChangeLog.d/fix_x509_info_hwmodulename.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/fix_x509_info_hwmodulename.txt diff --git a/ChangeLog.d/fix_x509_info_hwmodulename.txt b/ChangeLog.d/fix_x509_info_hwmodulename.txt new file mode 100644 index 000000000..8b227cec3 --- /dev/null +++ b/ChangeLog.d/fix_x509_info_hwmodulename.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix a bug in which mbedtls_x509_crt_info() would produce non-printable + bytes when parsing certificates containing a binary RFC 4108 + HardwareModuleName as a Subject Alternative Name extension. Hardware + serial numbers are now rendered in hex format. Fixes #6262. From e1d31c4aadac5f354a88117fd7d08412de60765f Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:25:24 +0200 Subject: [PATCH 0094/1574] Add conditional swap and assign function for MPI core Signed-off-by: Gabor Mezei --- library/bignum_core.c | 56 +++++++++++++++++++++++++++++++++++++ library/bignum_core.h | 64 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index c47292eec..6aa1e0006 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -25,6 +25,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" +#include "constant_time_internal.h" #if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" @@ -161,6 +162,61 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } } +int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ) +{ + if( X_limbs < Y_limbs ) + return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + + if( X != NULL && Y != NULL ) + { + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + + mbedtls_ct_mpi_uint_cond_assign( X_limbs, X, Y, assign ); + + for( size_t i = Y_limbs; i < X_limbs; i++ ) + X[i] &= ~limb_mask; + + return( 0 ); + } + + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); +} + +int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ) +{ + if( X == Y ) + return( 0 ); + + if( X_limbs != Y_limbs ) + return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + + if( X != NULL && Y != NULL ) + { + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); + + for( size_t i = 0; i < X_limbs; i++ ) + { + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); + } + + return( 0 ); + } + + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); +} + int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, size_t X_limbs, const unsigned char *input, diff --git a/library/bignum_core.h b/library/bignum_core.h index 8e227f8d8..24650fe4c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -74,6 +74,70 @@ size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ); void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, size_t A_limbs ); +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[OUT] X The address of the first MPI. This must be initialized. + * \param X_limbs The number of limbs of \p X. + * \param[IN] Y The address of the second MPI. This must be initialized. + * \param Y_limbs The number of limbs of \p Y. + * \param assign The condition deciding whether to perform the + * assignment or not. Must be either 0 or 1: + * * \c 1: Perform the assignment `X = Y`. + * * \c 0: Keep the original value of \p X. + * + * \note This function avoids leaking any information about whether + * the assignment was done or not. + * + * \warning If \p assign is neither 0 nor 1, the result of this function + * is indeterminate, and the resulting value in \p X might be + * neither its original value nor the value in \p Y. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * large enough to hold the value in \p Y. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ); + +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[IN,OUT] X The address of the first MPI. + * This must be initialized. + * \param X_limbs The number of limbs of \p X. + * \param[IN,OUT] Y The address of the second MPI. + * This must be initialized. + * \param Y_limbs The number of limbs of \p Y. + * \param swap The condition deciding whether to perform + * the swap or not. Must be either 0 or 1: + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. + * + * \note This function avoids leaking any information about whether + * the swap was done or not. + * + * \warning If \p swap is neither 0 nor 1, the result of this function + * is indeterminate, and both \p X and \p Y might end up with + * values different to either of the original ones. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of + * \p X and \p Y is differ. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ); + /** Import X from unsigned binary data, little-endian. * * The MPI needs to have enough limbs to store the full value (including any From 12071d440309a2756cef2498d61b50eb5b9dcba1 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:35:58 +0200 Subject: [PATCH 0095/1574] Add conditional assign and swap function for MPI modulus Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 18 +++++++++++++ library/bignum_mod_raw.h | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8c89b2cdf..f04354d4c 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -41,6 +41,24 @@ #include "bignum_mod.h" #include "constant_time_internal.h" +int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ) +{ + return mbedtls_mpi_core_cond_assign( X, m->limbs, + Y, m->limbs, assign ); +} + +int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ) +{ + return mbedtls_mpi_core_cond_swap( X, m->limbs, + Y, m->limbs, swap ); +} + int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, const unsigned char *input, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7b3a0c177..00ec921e6 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -33,6 +33,63 @@ #include "bignum_mod.h" +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[OUT] X The address of the first MPI. This must be initialized. + * \param[IN] Y The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param assign The condition deciding whether to perform the + * assignment or not. Must be either 0 or 1: + * * \c 1: Perform the assignment `X = Y`. + * * \c 0: Keep the original value of \p X. + * + * \note This function avoids leaking any information about whether + * the assignment was done or not. + * + * \warning If \p assign is neither 0 nor 1, the result of this function + * is indeterminate, and the resulting value in \p X might be + * neither its original value nor the value in \p Y. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * large enough to hold the value in \p Y. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */ +int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ); + +/** + * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * the condition was true or not. + * + * \param[IN,OUT] X The address of the first MPI. This must be initialized. + * \param[IN,OUT] Y The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param swap The condition deciding whether to perform + * the swap or not. Must be either 0 or 1: + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. + * + * \note This function avoids leaking any information about whether + * the swap was done or not. + * + * \warning If \p swap is neither 0 nor 1, the result of this function + * is indeterminate, and both \p X and \p Y might end up with + * values different to either of the original ones. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of + * \p X and \p Y is differ. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. + */int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ); + /** Import X from unsigned binary data. * * The MPI needs to have enough limbs to store the full value (including any From b27b1c5db0536496541d28b84c52de2a2852774b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 12 Sep 2022 16:36:48 +0200 Subject: [PATCH 0096/1574] Add tests for conditional assign and swap functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 102 +++++++++ tests/suites/test_suite_mpi.function | 320 +++++++++++++++++++++++++++ 2 files changed, 422 insertions(+) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 85812f508..124c8519b 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,6 +681,108 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 +mbedtls_mpi_core_cond_assign: same size, true condition +mpi_core_cond_assign:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_core_cond_assign: same size, false condition +mpi_core_cond_assign:"FFFFFFFF":"11111111":0:0 + +mbedtls_mpi_core_cond_assign: target larger, true condition +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:0 + +mbedtls_mpi_core_cond_assign: target larger, false condition +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:0 + +#mbedtls_mpi_core_cond_assign: target smaller, true condition +#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_assign: target smaller, false condition +#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_assign: target invalid, true condition +#mpi_core_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: target invalid, false condition +#mpi_core_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: source invalid, true condition +#mpi_core_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_assign: source invalid, false condition +#mpi_core_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_core_cond_swap: same value, true condition +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 + +mbedtls_mpi_core_cond_swap: same size, true condition +mpi_core_cond_swap:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_core_cond_swap: same size, false condition +mpi_core_cond_swap:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_core_cond_swap: first larger, true condition +#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first larger, false condition +#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first smaller, true condition +#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first smaller, false condition +#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +#mbedtls_mpi_core_cond_swap: first invalid, true condition +#mpi_core_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: first invalid, false condition +#mpi_core_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: second invalid, true condition +#mpi_core_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_core_cond_swap: second invalid, false condition +#mpi_core_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_assign: same size, true condition +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_mod_raw_cond_assign: same size, false condition +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_mod_raw_cond_assign: target invalid, true condition +#mpi_mod_raw_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: target invalid, false condition +#mpi_mod_raw_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: source invalid, true condition +#mpi_mod_raw_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_assign: source invalid, false condition +#mpi_mod_raw_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_swap: same value, true condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 + +mbedtls_mpi_mod_raw_cond_swap: same size, true condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1:0 + +mbedtls_mpi_mod_raw_cond_swap: same size, false condition +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0:0 + +#mbedtls_mpi_mod_raw_cond_swap: first invalid, true condition +#mpi_mod_raw_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: first invalid, false condition +#mpi_mod_raw_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: second invalid, true condition +#mpi_mod_raw_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +#mbedtls_mpi_mod_raw_cond_swap: second invalid, false condition +#mpi_mod_raw_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index ff2eaac4b..b8c786424 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -763,6 +763,326 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_cond_assign( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + == 0 ); + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + else + TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_cond_swap( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint tmp_X[MAX_LEN]; + mbedtls_mpi_uint tmp_Y[MAX_LEN]; + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + { + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_assign( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_mod_modulus m; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, + len_X <= len_Y ? len_X : len_Y, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + input_X->x, input_X->len ) + == 0 ); + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + else + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_swap( data_t * input_X, + data_t * input_Y, + int cond, + int input_ret ) +{ + #define MAX_LEN 64 + mbedtls_mpi_uint tmp_X[MAX_LEN]; + mbedtls_mpi_uint tmp_Y[MAX_LEN]; + mbedtls_mpi_uint buff_X[MAX_LEN]; + mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *X = buff_X; + mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_mod_modulus m; + unsigned exp_ret = input_ret; + unsigned ret; + size_t len_X = CHARS_TO_LIMBS( input_X->len ); + size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + + TEST_ASSERT( len_X <= MAX_LEN ); + TEST_ASSERT( len_Y <= MAX_LEN ); + + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, + len_X <= len_Y ? len_X : len_Y, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + if( len_X == 0 ) + { + X = NULL; + len_X = len_Y; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + if( len_Y == 0 ) + { + Y = NULL; + len_Y = len_X; + } + else + { + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + } + + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( &ret, sizeof( ret ) ); + + TEST_EQUAL( ret, exp_ret ); + + if( !ret ) + { + if( cond ) + { + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } + + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); + } + } + +exit: + ; + + #undef MAX_LEN +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_lt_mpi_ct( int size_X, char * input_X, int size_Y, char * input_Y, From 9f6615f146fd94c0b140649255ed797f5845c528 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 19:12:06 +0200 Subject: [PATCH 0097/1574] Remove argument checking from constant time functions Signed-off-by: Gabor Mezei --- library/bignum_core.c | 65 ++++++++++++++----------------------------- library/bignum_core.h | 30 +++++++------------- 2 files changed, 31 insertions(+), 64 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 6aa1e0006..9adc4effb 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -162,59 +162,36 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } } -int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, - const mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char assign ) +void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ) { - if( X_limbs < Y_limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); - if( X != NULL && Y != NULL ) - { - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + mbedtls_ct_mpi_uint_cond_assign( Y_limbs, X, Y, assign ); - mbedtls_ct_mpi_uint_cond_assign( X_limbs, X, Y, assign ); - - for( size_t i = Y_limbs; i < X_limbs; i++ ) - X[i] &= ~limb_mask; - - return( 0 ); - } - - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + for( size_t i = Y_limbs; i < X_limbs; i++ ) + X[i] &= ~limb_mask; } -int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, - mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char swap ) +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ) { - if( X == Y ) - return( 0 ); + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - if( X_limbs != Y_limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); - - if( X != NULL && Y != NULL ) + for( size_t i = 0; i < X_limbs; i++ ) { - /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - - for( size_t i = 0; i < X_limbs; i++ ) - { - mbedtls_mpi_uint tmp = X[i]; - X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); - Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); - } - - return( 0 ); + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); } - - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); } int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, diff --git a/library/bignum_core.h b/library/bignum_core.h index 24650fe4c..a538ece0f 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -93,17 +93,12 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p Y. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't - * large enough to hold the value in \p Y. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, - const mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char assign ); +void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, + size_t X_limbs, + const mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char assign ); /** * \brief Perform a safe conditional copy of MPI which doesn't reveal whether @@ -126,17 +121,12 @@ int mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \warning If \p swap is neither 0 nor 1, the result of this function * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of - * \p X and \p Y is differ. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, - mbedtls_mpi_uint *Y, - size_t Y_limbs, - unsigned char swap ); +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + size_t X_limbs, + mbedtls_mpi_uint *Y, + size_t Y_limbs, + unsigned char swap ); /** Import X from unsigned binary data, little-endian. * From 24d183aa0017956427f9f4e7e96d38dd7b514520 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 19:15:38 +0200 Subject: [PATCH 0098/1574] Use the new swap and assign function in the old interface Signed-off-by: Gabor Mezei --- library/constant_time.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index 8980701e5..3f324ec01 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -678,22 +678,14 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, unsigned char assign ) { int ret = 0; - size_t i; - mbedtls_mpi_uint limb_mask; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - limb_mask = mbedtls_ct_mpi_uint_mask( assign );; - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); X->s = mbedtls_ct_cond_select_sign( assign, Y->s, X->s ); - mbedtls_ct_mpi_uint_cond_assign( Y->n, X->p, Y->p, assign ); - - for( i = Y->n; i < X->n; i++ ) - X->p[i] &= ~limb_mask; + mbedtls_mpi_core_cond_assign( X->p, X->n, Y->p, Y->n, assign ); cleanup: return( ret ); @@ -710,18 +702,12 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, unsigned char swap ) { int ret, s; - size_t i; - mbedtls_mpi_uint limb_mask; - mbedtls_mpi_uint tmp; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); if( X == Y ) return( 0 ); - /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ - limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_grow( Y, X->n ) ); @@ -729,13 +715,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, X->s = mbedtls_ct_cond_select_sign( swap, Y->s, X->s ); Y->s = mbedtls_ct_cond_select_sign( swap, s, Y->s ); - - for( i = 0; i < X->n; i++ ) - { - tmp = X->p[i]; - X->p[i] = ( X->p[i] & ~limb_mask ) | ( Y->p[i] & limb_mask ); - Y->p[i] = ( Y->p[i] & ~limb_mask ) | ( tmp & limb_mask ); - } + mbedtls_mpi_core_cond_swap( X->p, X->n, Y->p, Y->n, swap ); cleanup: return( ret ); From 63c3282ec473a76fa7d3d65bc8d57e1fe9022873 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:01:31 +0200 Subject: [PATCH 0099/1574] Remove retrun code from mod_raw_cond_assign/swap Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 24 ++++++++++++------------ library/bignum_mod_raw.h | 27 +++++++++------------------ 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index f04354d4c..60ff9bbed 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -41,22 +41,22 @@ #include "bignum_mod.h" #include "constant_time_internal.h" -int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char assign ) +void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ) { - return mbedtls_mpi_core_cond_assign( X, m->limbs, - Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, m->limbs, + Y, m->limbs, assign ); } -int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char swap ) +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ) { - return mbedtls_mpi_core_cond_swap( X, m->limbs, - Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, m->limbs, + Y, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 00ec921e6..bdd2eada9 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -51,16 +51,11 @@ * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p Y. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't - * large enough to hold the value in \p Y. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. */ -int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char assign ); +void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char assign ); /** * \brief Perform a safe conditional copy of MPI which doesn't reveal whether @@ -80,15 +75,11 @@ int mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \warning If \p swap is neither 0 nor 1, the result of this function * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if the size of - * \p X and \p Y is differ. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X or \p Y is invalid. - */int mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *m, - unsigned char swap ); + */ +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *m, + unsigned char swap ); /** Import X from unsigned binary data. * From 87638a9eadec3b768cce3d78bf00fadf4a7498c3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:02:36 +0200 Subject: [PATCH 0100/1574] Add missing include Signed-off-by: Gabor Mezei --- library/constant_time.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/constant_time.c b/library/constant_time.c index 3f324ec01..09a86cdf2 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -30,6 +30,7 @@ #if defined(MBEDTLS_BIGNUM_C) #include "mbedtls/bignum.h" +#include "bignum_core.h" #endif #if defined(MBEDTLS_SSL_TLS_C) From 53e455db7b052082bb325a670a4b9bd3f57f07bd Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:13:53 +0200 Subject: [PATCH 0101/1574] Remove return value checking from test functions of assign and swap Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 90 +++----------------- tests/suites/test_suite_mpi.function | 120 ++++++++++----------------- 2 files changed, 54 insertions(+), 156 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 124c8519b..a4cd07a23 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -682,106 +682,40 @@ mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: same size, true condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":1:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":1 mbedtls_mpi_core_cond_assign: same size, false condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":0:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":0 mbedtls_mpi_core_cond_assign: target larger, true condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:0 +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1 mbedtls_mpi_core_cond_assign: target larger, false condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:0 - -#mbedtls_mpi_core_cond_assign: target smaller, true condition -#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_assign: target smaller, false condition -#mpi_core_cond_assign:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_assign: target invalid, true condition -#mpi_core_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: target invalid, false condition -#mpi_core_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: source invalid, true condition -#mpi_core_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_assign: source invalid, false condition -#mpi_core_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0 mbedtls_mpi_core_cond_swap: same value, true condition -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1 mbedtls_mpi_core_cond_swap: same size, true condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":1:0 +mpi_core_cond_swap:"FFFFFFFF":"11111111":1 mbedtls_mpi_core_cond_swap: same size, false condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_core_cond_swap: first larger, true condition -#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first larger, false condition -#mpi_core_cond_swap:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first smaller, true condition -#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":1:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first smaller, false condition -#mpi_core_cond_swap:"FFFFFFFF":"111111112222222233333333":0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -#mbedtls_mpi_core_cond_swap: first invalid, true condition -#mpi_core_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: first invalid, false condition -#mpi_core_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: second invalid, true condition -#mpi_core_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_core_cond_swap: second invalid, false condition -#mpi_core_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_core_cond_swap:"FFFFFFFF":"11111111":0 mbedtls_mpi_mod_raw_cond_assign: same size, true condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1:0 +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1 mbedtls_mpi_mod_raw_cond_assign: same size, false condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_mod_raw_cond_assign: target invalid, true condition -#mpi_mod_raw_cond_assign:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: target invalid, false condition -#mpi_mod_raw_cond_assign:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: source invalid, true condition -#mpi_mod_raw_cond_assign:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_assign: source invalid, false condition -#mpi_mod_raw_cond_assign:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0 mbedtls_mpi_mod_raw_cond_swap: same value, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1 mbedtls_mpi_mod_raw_cond_swap: same size, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1 mbedtls_mpi_mod_raw_cond_swap: same size, false condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0:0 - -#mbedtls_mpi_mod_raw_cond_swap: first invalid, true condition -#mpi_mod_raw_cond_swap:"":"11111111":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: first invalid, false condition -#mpi_mod_raw_cond_swap:"":"11111111":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: second invalid, true condition -#mpi_mod_raw_cond_swap:"FFFFFFFF":"":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -#mbedtls_mpi_mod_raw_cond_swap: second invalid, false condition -#mpi_mod_raw_cond_swap:"FFFFFFFF":"":0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index b8c786424..d6769de5b 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,16 +766,13 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint buff_X[MAX_LEN]; mbedtls_mpi_uint buff_Y[MAX_LEN]; mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -803,23 +800,17 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( !ret ) - { - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - - else - TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); - } + else + TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; @@ -831,8 +822,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -841,8 +831,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_uint buff_Y[MAX_LEN]; mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -878,31 +866,25 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); - - if( !ret ) + if( cond ) { - if( cond ) - { - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); } exit: @@ -915,8 +897,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint buff_X[MAX_LEN]; @@ -925,8 +906,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -965,23 +944,17 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); + if( cond ) + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( !ret ) - { - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - - else - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); - } + else + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; @@ -993,8 +966,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int cond, - int input_ret ) + int cond ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -1005,8 +977,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *X = buff_X; mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; - unsigned exp_ret = input_ret; - unsigned ret; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -1049,31 +1019,25 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ret = mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( &ret, sizeof( ret ) ); - TEST_EQUAL( ret, exp_ret ); - - if( !ret ) + if( cond ) { - if( cond ) - { - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + } - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - } + else + { + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); } exit: From cfc0eb8d22b1df506dfeda5d5c3f0433b3c67c3a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Sep 2022 20:15:34 +0200 Subject: [PATCH 0102/1574] Remove unused parameter Signed-off-by: Gabor Mezei --- library/bignum_core.c | 5 ++--- library/bignum_core.h | 3 +-- library/bignum_mod_raw.c | 3 +-- library/constant_time.c | 2 +- tests/suites/test_suite_mpi.function | 2 +- 5 files changed, 6 insertions(+), 9 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 9adc4effb..7074a0962 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -178,15 +178,14 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, } void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char swap ) { /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); - for( size_t i = 0; i < X_limbs; i++ ) + for( size_t i = 0; i < limbs; i++ ) { mbedtls_mpi_uint tmp = X[i]; X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); diff --git a/library/bignum_core.h b/library/bignum_core.h index a538ece0f..779fb08d9 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -123,9 +123,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * values different to either of the original ones. */ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - size_t X_limbs, mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char swap ); /** Import X from unsigned binary data, little-endian. diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 60ff9bbed..bb4a37a1a 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -55,8 +55,7 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( X, m->limbs, - Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, Y, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/constant_time.c b/library/constant_time.c index 09a86cdf2..7bf67f432 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -716,7 +716,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, X->s = mbedtls_ct_cond_select_sign( swap, Y->s, X->s ); Y->s = mbedtls_ct_cond_select_sign( swap, s, Y->s ); - mbedtls_mpi_core_cond_swap( X->p, X->n, Y->p, Y->n, swap ); + mbedtls_mpi_core_cond_swap( X->p, Y->p, X->n, swap ); cleanup: return( ret ); diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index d6769de5b..4f5b69d28 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -866,7 +866,7 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_swap( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_swap( X, Y, len_X, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From f4dd3b6a6d6b86eb39c2114c25df602d1c04f846 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 09:38:53 +0200 Subject: [PATCH 0103/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 779fb08d9..cb932388e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -106,10 +106,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * * \param[IN,OUT] X The address of the first MPI. * This must be initialized. - * \param X_limbs The number of limbs of \p X. * \param[IN,OUT] Y The address of the second MPI. * This must be initialized. - * \param Y_limbs The number of limbs of \p Y. + * \param limbs The number of limbs of \p Y and \p X. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: * * \c 1: Swap the values of \p X and \p Y. From b2763ef50755ed454d7ffb139872aa1f11f6f736 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 17:14:22 +0200 Subject: [PATCH 0104/1574] Do not read uninitialized memory Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 4f5b69d28..6b3f8318e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,8 @@ void mpi_core_cond_assign( data_t * input_X, Y, len_Y * sizeof( mbedtls_mpi_uint ) ); else - TEST_ASSERT( memcmp( X, Y, len_X * sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * + sizeof( mbedtls_mpi_uint ) ) != 0 ); exit: ; From 027d6964345c2a84ac0fe82d6b38b521b9a2610c Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Sep 2022 17:16:27 +0200 Subject: [PATCH 0105/1574] Remove unused code Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 128 +++++++-------------------- 1 file changed, 32 insertions(+), 96 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6b3f8318e..1bb54e10c 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -769,33 +769,19 @@ void mpi_core_cond_assign( data_t * input_X, int cond ) { #define MAX_LEN 64 - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + == 0 ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -828,41 +814,23 @@ void mpi_core_cond_swap( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, - input_X->x, input_X->len ) - == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, - input_Y->x, input_Y->len ) - == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -901,11 +869,9 @@ void mpi_mod_raw_cond_assign( data_t * input_X, int cond ) { #define MAX_LEN 64 - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; mbedtls_mpi_uint buff_m[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -922,25 +888,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, - input_X->x, input_X->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + input_X->x, input_X->len ) + == 0 ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, - input_Y->x, input_Y->len ) - == 0 ); + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + input_Y->x, input_Y->len ) + == 0 ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); @@ -972,11 +926,9 @@ void mpi_mod_raw_cond_swap( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint buff_X[MAX_LEN]; - mbedtls_mpi_uint buff_Y[MAX_LEN]; + mbedtls_mpi_uint X[MAX_LEN]; + mbedtls_mpi_uint Y[MAX_LEN]; mbedtls_mpi_uint buff_m[MAX_LEN]; - mbedtls_mpi_uint *X = buff_X; - mbedtls_mpi_uint *Y = buff_Y; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -993,29 +945,13 @@ void mpi_mod_raw_cond_swap( data_t * input_X, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - if( len_X == 0 ) - { - X = NULL; - len_X = len_Y; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) - == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + == 0 ); + memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - if( len_Y == 0 ) - { - Y = NULL; - len_Y = len_X; - } - else - { - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) - == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + == 0 ); + memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From 2b5bf4cec7166e126b5f68bb1c2bafa8973ea2d2 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:09:58 +0200 Subject: [PATCH 0106/1574] Fix doumentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 2 +- library/bignum_mod_raw.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index cb932388e..d8951486c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -101,7 +101,7 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * * \param[IN,OUT] X The address of the first MPI. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index bdd2eada9..82a8ce851 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -58,7 +58,7 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether + * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * * \param[IN,OUT] X The address of the first MPI. This must be initialized. From 81e57021c67a1a624fd8085ae287de50121e19bd Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:13:33 +0200 Subject: [PATCH 0107/1574] Change the input parameters to be const Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 2 +- library/bignum_mod_raw.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index bb4a37a1a..98994ab36 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -42,7 +42,7 @@ #include "constant_time_internal.h" void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *Y, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 82a8ce851..60c8d8acf 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -53,7 +53,7 @@ * neither its original value nor the value in \p Y. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *Y, const mbedtls_mpi_mod_modulus *m, unsigned char assign ); From 3eff425b1ae1a3f65fefbf47afcb1e868ced007a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 26 Sep 2022 17:26:42 +0200 Subject: [PATCH 0108/1574] Use only one limb parameter for assign Signed-off-by: Gabor Mezei --- library/bignum_core.c | 11 ++--------- library/bignum_core.h | 7 +++---- library/bignum_mod_raw.c | 3 +-- library/constant_time.c | 8 +++++++- tests/suites/test_suite_mpi.function | 2 +- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 7074a0962..83c115e11 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -163,18 +163,11 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, const mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char assign ) { - /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); - - mbedtls_ct_mpi_uint_cond_assign( Y_limbs, X, Y, assign ); - - for( size_t i = Y_limbs; i < X_limbs; i++ ) - X[i] &= ~limb_mask; + mbedtls_ct_mpi_uint_cond_assign( limbs, X, Y, assign ); } void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, diff --git a/library/bignum_core.h b/library/bignum_core.h index d8951486c..cf7688d17 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -79,9 +79,9 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * the condition was true or not. * * \param[OUT] X The address of the first MPI. This must be initialized. - * \param X_limbs The number of limbs of \p X. + * It must have at least \p limbs limbs. * \param[IN] Y The address of the second MPI. This must be initialized. - * \param Y_limbs The number of limbs of \p Y. + * \param limbs The number of limbs of \p Y. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = Y`. @@ -95,9 +95,8 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * neither its original value nor the value in \p Y. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - size_t X_limbs, const mbedtls_mpi_uint *Y, - size_t Y_limbs, + size_t limbs, unsigned char assign ); /** diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 98994ab36..3c7f88966 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -46,8 +46,7 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, m->limbs, - Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, Y, m->limbs, assign ); } void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, diff --git a/library/constant_time.c b/library/constant_time.c index 7bf67f432..d01998bd7 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -682,11 +682,17 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); + /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); X->s = mbedtls_ct_cond_select_sign( assign, Y->s, X->s ); - mbedtls_mpi_core_cond_assign( X->p, X->n, Y->p, Y->n, assign ); + mbedtls_mpi_core_cond_assign( X->p, Y->p, Y->n, assign ); + + for( size_t i = Y->n; i < X->n; i++ ) + X->p[i] &= ~limb_mask; cleanup: return( ret ); diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 1bb54e10c..9cb2d9096 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -786,7 +786,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_assign( X, len_X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, Y, len_Y, cond ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); From 1c628d57006fb43718c0a60db9fa129db6bfe0b3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 12:13:51 +0200 Subject: [PATCH 0109/1574] Follow parameter naming comvention Signed-off-by: Gabor Mezei --- library/bignum_core.c | 14 +++++++------- library/bignum_core.h | 24 ++++++++++++------------ library/bignum_mod_raw.c | 10 +++++----- library/bignum_mod_raw.h | 26 +++++++++++++------------- 4 files changed, 37 insertions(+), 37 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 83c115e11..473ef1ae2 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -163,15 +163,15 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, size_t limbs, unsigned char assign ) { - mbedtls_ct_mpi_uint_cond_assign( limbs, X, Y, assign ); + mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, size_t limbs, unsigned char swap ) { @@ -180,9 +180,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint tmp = X[i]; - X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); - Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); + mbedtls_mpi_uint tmp = A[i]; + A[i] = ( A[i] & ~limb_mask ) | ( B[i] & limb_mask ); + B[i] = ( B[i] & ~limb_mask ) | ( tmp & limb_mask ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index cf7688d17..86180d3eb 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -80,11 +80,11 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * * \param[OUT] X The address of the first MPI. This must be initialized. * It must have at least \p limbs limbs. - * \param[IN] Y The address of the second MPI. This must be initialized. - * \param limbs The number of limbs of \p Y. + * \param[IN] A The address of the second MPI. This must be initialized. + * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: - * * \c 1: Perform the assignment `X = Y`. + * * \c 1: Perform the assignment `X = A`. * * \c 0: Keep the original value of \p X. * * \note This function avoids leaking any information about whether @@ -95,7 +95,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * neither its original value nor the value in \p Y. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, size_t limbs, unsigned char assign ); @@ -103,25 +103,25 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. + * \param[IN,OUT] A The address of the first MPI. * This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. + * \param[IN,OUT] B The address of the second MPI. * This must be initialized. - * \param limbs The number of limbs of \p Y and \p X. + * \param limbs The number of limbs of \p A and \p B. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p X and \p Y. - * * \c 0: Keep the original values of \p X and \p Y. + * * \c 1: Swap the values of \p A and \p B. + * * \c 0: Keep the original values of \p A and \p B. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p X and \p Y might end up with + * is indeterminate, and both \p A and \p B might end up with * values different to either of the original ones. */ -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, size_t limbs, unsigned char swap ); diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 3c7f88966..82ef645f0 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -42,19 +42,19 @@ #include "constant_time_internal.h" void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, Y, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, A, m->limbs, assign ); } -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *m, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( X, Y, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( A, B, m->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 60c8d8acf..edd356ce2 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -38,11 +38,11 @@ * the condition was true or not. * * \param[OUT] X The address of the first MPI. This must be initialized. - * \param[IN] Y The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param[IN] A The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: - * * \c 1: Perform the assignment `X = Y`. + * * \c 1: Perform the assignment `X = A`. * * \c 0: Keep the original value of \p X. * * \note This function avoids leaking any information about whether @@ -50,10 +50,10 @@ * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p Y. + * neither its original value nor the value in \p B. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *Y, + const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char assign ); @@ -61,23 +61,23 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p Y. + * \param[IN,OUT] A The address of the first MPI. This must be initialized. + * \param[IN,OUT] B The address of the second MPI. This must be initialized. + * \param[IN] m The address of the modulus related to \p A and \p B. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p X and \p Y. - * * \c 0: Keep the original values of \p X and \p Y. + * * \c 1: Swap the values of \p A and \p B. + * * \c 0: Keep the original values of \p A and \p B. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p X and \p Y might end up with + * is indeterminate, and both \p A and \p B might end up with * values different to either of the original ones. */ -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *m, unsigned char swap ); From 821d15107b47580040bed176315fa34bd43ebaad Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 12:41:28 +0200 Subject: [PATCH 0110/1574] Check true and false condition in the same test case Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 42 +++------ tests/suites/test_suite_mpi.function | 122 ++++++++++++++++----------- 2 files changed, 83 insertions(+), 81 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index a4cd07a23..7868a24f8 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,41 +681,23 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 -mbedtls_mpi_core_cond_assign: same size, true condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":1 +mbedtls_mpi_core_cond_assign +mpi_core_cond_assign:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_assign: same size, false condition -mpi_core_cond_assign:"FFFFFFFF":"11111111":0 +mbedtls_mpi_core_cond_swap: same value +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF" -mbedtls_mpi_core_cond_assign: target larger, true condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":1 +mbedtls_mpi_core_cond_swap: different value +mpi_core_cond_swap:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_assign: target larger, false condition -mpi_core_cond_assign:"FFFFFFFFEEEEEEEEDDDDDDDD":"11111111":0 +mbedtls_mpi_mod_raw_cond_assign +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111" -mbedtls_mpi_core_cond_swap: same value, true condition -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":1 +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF" -mbedtls_mpi_core_cond_swap: same size, true condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_core_cond_swap: same size, false condition -mpi_core_cond_swap:"FFFFFFFF":"11111111":0 - -mbedtls_mpi_mod_raw_cond_assign: same size, true condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_mod_raw_cond_assign: same size, false condition -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":0 - -mbedtls_mpi_mod_raw_cond_swap: same value, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":1 - -mbedtls_mpi_mod_raw_cond_swap: same size, true condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":1 - -mbedtls_mpi_mod_raw_cond_swap: same size, false condition -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":0 +mbedtls_mpi_mod_raw_cond_swap: different value +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111" Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 9cb2d9096..7a87c0738 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -765,8 +765,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint X[MAX_LEN]; @@ -783,21 +782,29 @@ void mpi_core_cond_assign( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) == 0 ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, cond ); + mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * + sizeof( mbedtls_mpi_uint ) ) != 0 ); - else - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * - sizeof( mbedtls_mpi_uint ) ) != 0 ); + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -808,8 +815,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -832,29 +838,33 @@ void mpi_core_cond_swap( data_t * input_X, == 0 ); memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, cond ); + mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - { - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - } + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -865,8 +875,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint X[MAX_LEN]; @@ -896,20 +905,28 @@ void mpi_mod_raw_cond_assign( data_t * input_X, input_Y->x, input_Y->len ) == 0 ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); - else - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), + Y, len_Y * sizeof( mbedtls_mpi_uint ) ); exit: ; @@ -920,8 +937,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, - data_t * input_Y, - int cond ) + data_t * input_Y ) { #define MAX_LEN 64 mbedtls_mpi_uint tmp_X[MAX_LEN]; @@ -953,29 +969,33 @@ void mpi_mod_raw_cond_swap( data_t * input_X, == 0 ); memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + /* condition is false */ TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, cond ); + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - if( cond ) - { - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - } + ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), + tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), + tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - else - { - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); - } + /* condition is true */ + TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + + ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), + tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); exit: ; From a7584888da70802d757dfa662afaff5eef9cf5cf Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 27 Sep 2022 13:18:02 +0200 Subject: [PATCH 0111/1574] Use exact-size buffers for inputs and outputs to library functions in tests Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 160 ++++++++++++++------------- 1 file changed, 86 insertions(+), 74 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 7a87c0738..6118efc58 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -768,14 +768,19 @@ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) == 0 ); @@ -783,28 +788,26 @@ void mpi_core_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) * - sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X_byte, len_Y_byte ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -818,53 +821,56 @@ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); exit: ; @@ -878,21 +884,25 @@ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( X, len_X_byte ); + ASSERT_ALLOC( Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_Y, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -906,27 +916,26 @@ void mpi_mod_raw_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_Y * sizeof( mbedtls_mpi_uint ), - Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: ; @@ -940,62 +949,65 @@ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y ) { #define MAX_LEN 64 - mbedtls_mpi_uint tmp_X[MAX_LEN]; - mbedtls_mpi_uint tmp_Y[MAX_LEN]; - mbedtls_mpi_uint X[MAX_LEN]; - mbedtls_mpi_uint Y[MAX_LEN]; + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; size_t len_X = CHARS_TO_LIMBS( input_X->len ); size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m_byte = len_X_byte; TEST_ASSERT( len_X <= MAX_LEN ); TEST_ASSERT( len_Y <= MAX_LEN ); + ASSERT_ALLOC( tmp_X, len_X_byte ); + ASSERT_ALLOC( tmp_Y, len_Y_byte ); + memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, - len_X <= len_Y ? len_X : len_Y, + &m, buff_m, len_X, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) == 0 ); - memcpy( X, tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( X, len_X_byte ); + memcpy( X, tmp_X, len_X_byte ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) == 0 ); - memcpy( Y, tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( Y, len_Y_byte ); + memcpy( Y, tmp_Y, len_Y_byte ); /* condition is false */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, len_X * sizeof( mbedtls_mpi_uint ), - tmp_X, m.limbs * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, len_Y * sizeof( mbedtls_mpi_uint ), - tmp_Y, m.limbs * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); /* condition is true */ - TEST_CF_SECRET( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( X, len_X_byte ); + TEST_CF_SECRET( Y, len_Y_byte ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_PUBLIC( Y, len_Y * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_PUBLIC( X, len_X_byte ); + TEST_CF_PUBLIC( Y, len_Y_byte ); - ASSERT_COMPARE( X, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_Y, len_Y * sizeof( mbedtls_mpi_uint ) ); - ASSERT_COMPARE( Y, m.limbs * sizeof( mbedtls_mpi_uint ), - tmp_X, len_X * sizeof( mbedtls_mpi_uint ) ); + ASSERT_COMPARE( X, len_m_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); exit: ; From 8b05e3b148a99be05e05f884b546480baa958ac3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 28 Sep 2022 12:37:02 +0200 Subject: [PATCH 0112/1574] Add memory freeing Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6118efc58..6dda5ef1e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,8 @@ void mpi_core_cond_assign( data_t * input_X, ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: - ; + mbedtls_free( X ); + mbedtls_free( Y ); #undef MAX_LEN } @@ -873,7 +874,10 @@ void mpi_core_cond_swap( data_t * input_X, ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); exit: - ; + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); #undef MAX_LEN } @@ -938,7 +942,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); exit: - ; + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); #undef MAX_LEN } @@ -1010,7 +1017,12 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); exit: - ; + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); #undef MAX_LEN } From e5b8585f1eeff116f599102da614af8be2a641ab Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 13:54:02 +0200 Subject: [PATCH 0113/1574] Follow parameter naming convention Signed-off-by: Gabor Mezei --- library/bignum_core.c | 10 +++++----- library/bignum_core.h | 16 ++++++++-------- library/bignum_mod_raw.c | 12 ++++++------ library/bignum_mod_raw.h | 22 +++++++++++----------- 4 files changed, 30 insertions(+), 30 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 473ef1ae2..233b22ded 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -170,8 +170,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, size_t limbs, unsigned char swap ) { @@ -180,9 +180,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint tmp = A[i]; - A[i] = ( A[i] & ~limb_mask ) | ( B[i] & limb_mask ); - B[i] = ( B[i] & ~limb_mask ) | ( tmp & limb_mask ); + mbedtls_mpi_uint tmp = X[i]; + X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); + Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index 86180d3eb..0dd507a3e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -103,25 +103,25 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] A The address of the first MPI. + * \param[IN,OUT] X The address of the first MPI. * This must be initialized. - * \param[IN,OUT] B The address of the second MPI. + * \param[IN,OUT] Y The address of the second MPI. * This must be initialized. - * \param limbs The number of limbs of \p A and \p B. + * \param limbs The number of limbs of \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p A and \p B. - * * \c 0: Keep the original values of \p A and \p B. + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p A and \p B might end up with + * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, +void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, size_t limbs, unsigned char swap ); diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 82ef645f0..7200f003c 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -43,18 +43,18 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_mod_modulus *N, unsigned char assign ) { - mbedtls_mpi_core_cond_assign( X, A, m->limbs, assign ); + mbedtls_mpi_core_cond_assign( X, A, N->limbs, assign ); } -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *m, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, unsigned char swap ) { - mbedtls_mpi_core_cond_swap( A, B, m->limbs, swap ); + mbedtls_mpi_core_cond_swap( X, Y, N->limbs, swap ); } int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index edd356ce2..b2f333ee4 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -39,7 +39,7 @@ * * \param[OUT] X The address of the first MPI. This must be initialized. * \param[IN] A The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p X and \p A. + * \param[IN] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = A`. @@ -54,31 +54,31 @@ */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_mod_modulus *N, unsigned char assign ); /** * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] A The address of the first MPI. This must be initialized. - * \param[IN,OUT] B The address of the second MPI. This must be initialized. - * \param[IN] m The address of the modulus related to \p A and \p B. + * \param[IN,OUT] X The address of the first MPI. This must be initialized. + * \param[IN,OUT] Y The address of the second MPI. This must be initialized. + * \param[IN] N The address of the modulus related to \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: - * * \c 1: Swap the values of \p A and \p B. - * * \c 0: Keep the original values of \p A and \p B. + * * \c 1: Swap the values of \p X and \p Y. + * * \c 0: Keep the original values of \p X and \p Y. * * \note This function avoids leaking any information about whether * the swap was done or not. * * \warning If \p swap is neither 0 nor 1, the result of this function - * is indeterminate, and both \p A and \p B might end up with + * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *m, +void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, unsigned char swap ); /** Import X from unsigned binary data. From 86dfe384c2b33de95e0116683bbc8b4ffc8e164d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:03:04 +0200 Subject: [PATCH 0114/1574] Fix documentation tags to be lower case Signed-off-by: Gabor Mezei --- library/bignum_core.h | 8 ++++---- library/bignum_mod_raw.h | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 0dd507a3e..493ec12cd 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -78,9 +78,9 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * - * \param[OUT] X The address of the first MPI. This must be initialized. + * \param[out] X The address of the first MPI. This must be initialized. * It must have at least \p limbs limbs. - * \param[IN] A The address of the second MPI. This must be initialized. + * \param[in] A The address of the second MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -103,9 +103,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. + * \param[in,out] X The address of the first MPI. * This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. + * \param[in,out] Y The address of the second MPI. * This must be initialized. * \param limbs The number of limbs of \p X and \p Y. * \param swap The condition deciding whether to perform diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index b2f333ee4..231bb72d3 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -37,9 +37,9 @@ * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * - * \param[OUT] X The address of the first MPI. This must be initialized. - * \param[IN] A The address of the second MPI. This must be initialized. - * \param[IN] N The address of the modulus related to \p X and \p A. + * \param[out] X The address of the first MPI. This must be initialized. + * \param[in] A The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: * * \c 1: Perform the assignment `X = A`. @@ -61,9 +61,9 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * - * \param[IN,OUT] X The address of the first MPI. This must be initialized. - * \param[IN,OUT] Y The address of the second MPI. This must be initialized. - * \param[IN] N The address of the modulus related to \p X and \p Y. + * \param[in,out] X The address of the first MPI. This must be initialized. + * \param[in,out] Y The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus related to \p X and \p Y. * \param swap The condition deciding whether to perform * the swap or not. Must be either 0 or 1: * * \c 1: Swap the values of \p X and \p Y. From f5ca726ce1a1b0f29982c3afce2ef97ae93a1686 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:28:26 +0200 Subject: [PATCH 0115/1574] Rename variables to match bettr to its purpose The length in bytes is used with the 'len' prefix and the length in limbs is used with the 'limbs' prefix. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 196 +++++++++++++-------------- 1 file changed, 98 insertions(+), 98 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6dda5ef1e..f90fee311 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -770,44 +770,44 @@ void mpi_core_cond_assign( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( X, len_X_byte ); - ASSERT_ALLOC( Y, len_Y_byte ); + ASSERT_ALLOC( X, len_X ); + ASSERT_ALLOC( Y, len_Y ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X_byte, len_Y_byte ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_assign( X, Y, len_Y, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); + ASSERT_COMPARE( X, len_Y, Y, len_Y ); exit: mbedtls_free( X ); @@ -826,52 +826,52 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( tmp_X, len_X_byte ); - ASSERT_ALLOC( tmp_Y, len_Y_byte ); + ASSERT_ALLOC( tmp_X, len_X ); + ASSERT_ALLOC( tmp_Y, len_Y ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X_byte ); - memcpy( X, tmp_X, len_X_byte ); + ASSERT_ALLOC( X, len_X ); + memcpy( X, tmp_X, len_X ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y_byte ); - memcpy( Y, tmp_Y, len_Y_byte ); + ASSERT_ALLOC( Y, len_Y ); + memcpy( Y, tmp_Y, len_Y ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); - ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( X, len_X, tmp_X, len_X ); + ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); - mbedtls_mpi_core_cond_swap( X, Y, len_X, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, tmp_Y, len_Y_byte ); - ASSERT_COMPARE( Y, len_X_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( X, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( Y, len_X, tmp_X, len_X ); exit: mbedtls_free( tmp_X ); @@ -892,54 +892,54 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( X, len_X_byte ); - ASSERT_ALLOC( Y, len_Y_byte ); + ASSERT_ALLOC( X, len_X ); + ASSERT_ALLOC( Y, len_Y ); memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, len_Y, + &m, buff_m, limbs_Y, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, len_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, len_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_Y_byte, Y, len_Y_byte ); + ASSERT_COMPARE( X, len_Y, Y, len_Y ); exit: mbedtls_free( X ); @@ -962,59 +962,59 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint buff_m[MAX_LEN]; mbedtls_mpi_mod_modulus m; - size_t len_X = CHARS_TO_LIMBS( input_X->len ); - size_t len_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X_byte = len_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y_byte = len_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m_byte = len_X_byte; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); + size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m = len_X; - TEST_ASSERT( len_X <= MAX_LEN ); - TEST_ASSERT( len_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X <= MAX_LEN ); + TEST_ASSERT( limbs_Y <= MAX_LEN ); - ASSERT_ALLOC( tmp_X, len_X_byte ); - ASSERT_ALLOC( tmp_Y, len_Y_byte ); + ASSERT_ALLOC( tmp_X, len_X ); + ASSERT_ALLOC( tmp_Y, len_Y ); memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, len_X, + &m, buff_m, limbs_X, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, len_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X_byte ); - memcpy( X, tmp_X, len_X_byte ); + ASSERT_ALLOC( X, len_X ); + memcpy( X, tmp_X, len_X ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, len_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y_byte ); - memcpy( Y, tmp_Y, len_Y_byte ); + ASSERT_ALLOC( Y, len_Y ); + memcpy( Y, tmp_Y, len_Y ); /* condition is false */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_X_byte, tmp_X, len_X_byte ); - ASSERT_COMPARE( Y, len_Y_byte, tmp_Y, len_Y_byte ); + ASSERT_COMPARE( X, len_X, tmp_X, len_X ); + ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); /* condition is true */ - TEST_CF_SECRET( X, len_X_byte ); - TEST_CF_SECRET( Y, len_Y_byte ); + TEST_CF_SECRET( X, len_X ); + TEST_CF_SECRET( Y, len_Y ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X_byte ); - TEST_CF_PUBLIC( Y, len_Y_byte ); + TEST_CF_PUBLIC( X, len_X ); + TEST_CF_PUBLIC( Y, len_Y ); - ASSERT_COMPARE( X, len_m_byte, tmp_Y, len_Y_byte ); - ASSERT_COMPARE( Y, len_m_byte, tmp_X, len_X_byte ); + ASSERT_COMPARE( X, len_m, tmp_Y, len_Y ); + ASSERT_COMPARE( Y, len_m, tmp_X, len_X ); exit: mbedtls_free( tmp_X ); From ec5685f1ee4a284ceda566da101bf0d0e84b8486 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:41:13 +0200 Subject: [PATCH 0116/1574] Use exact-size buffers for inputs and outputs to library functions in tests Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index f90fee311..cf22e3736 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -890,12 +890,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t len_m = len_Y; TEST_ASSERT( limbs_X <= MAX_LEN ); TEST_ASSERT( limbs_Y <= MAX_LEN ); @@ -903,7 +904,8 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( X, len_X ); ASSERT_ALLOC( Y, len_Y ); - memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( buff_m, len_m ); + memset( buff_m, 0, len_m ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, limbs_Y, @@ -946,6 +948,7 @@ exit: mbedtls_free( Y ); mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); #undef MAX_LEN } @@ -960,7 +963,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint buff_m[MAX_LEN]; + mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); @@ -974,7 +977,8 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_X, len_X ); ASSERT_ALLOC( tmp_Y, len_Y ); - memset( buff_m, 0, MAX_LEN * sizeof( mbedtls_mpi_uint ) ); + ASSERT_ALLOC( buff_m, len_m ); + memset( buff_m, 0, len_m ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, limbs_X, @@ -1023,6 +1027,7 @@ exit: mbedtls_free( Y ); mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); #undef MAX_LEN } From 2df73ae7425b902fef8feffeccc47a8d1fd80c05 Mon Sep 17 00:00:00 2001 From: "Denis V. Lunev" Date: Thu, 1 Nov 2018 12:22:27 +0300 Subject: [PATCH 0117/1574] mbedtls: fix possible false success in ...check_tags() helpers We should report a error when the security check of the security tag was not made. In the other case false success is possible and is not observable by the software. Technically this could lead to a security flaw. Signed-off-by: Denis V. Lunev --- library/cipher.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/library/cipher.c b/library/cipher.c index 752d1fea2..2f2e03ba1 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -505,7 +505,7 @@ int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx, } #endif - return( 0 ); + return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); } #endif /* MBEDTLS_GCM_C || MBEDTLS_CHACHAPOLY_C */ @@ -1134,7 +1134,7 @@ int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx, } #endif - return( 0 ); + return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); } int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, @@ -1161,11 +1161,8 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - /* Status to return on a non-authenticated algorithm. It would make sense - * to return MBEDTLS_ERR_CIPHER_INVALID_CONTEXT or perhaps - * MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA, but at the time I write this our - * unit tests assume 0. */ - ret = 0; + /* Status to return on a non-authenticated algorithm. */ + ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; #if defined(MBEDTLS_GCM_C) if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) From c621a6d38fa9bcb3e892136acdb4c34f8e3cdce4 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 30 Sep 2022 17:13:35 +0100 Subject: [PATCH 0118/1574] Update tests to account for CIPHER_FEATURE_UNAVAILABLE on non-authenticated alg Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_cipher.function | 44 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 37468df71..7f5b7e290 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -453,8 +453,12 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_enc ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx_dec, ad, sizeof( ad ) - i ) ); - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx_enc, ad, sizeof( ad ) - i ) ); + int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, ad, sizeof(ad) - i ) ); + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_enc, ad, sizeof(ad) - i ) ); #endif block_size = mbedtls_cipher_get_block_size( &ctx_enc ); @@ -473,7 +477,7 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_write_tag( &ctx_enc, tag, sizeof( tag ) ) ); + TEST_EQUAL( expected, mbedtls_cipher_write_tag( &ctx_enc, tag, sizeof(tag) ) ); #endif TEST_ASSERT( total_len == length || @@ -494,7 +498,7 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_check_tag( &ctx_dec, tag, sizeof( tag ) ) ); + TEST_EQUAL( expected, mbedtls_cipher_check_tag( &ctx_dec, tag, sizeof(tag) ) ); #endif /* check result */ @@ -550,7 +554,11 @@ void enc_fail( int cipher_id, int pad_mode, int key_len, int length_val, TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx, iv, 16 ) ); TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx, NULL, 0 ) ); + int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, NULL, 0 ) ); #endif /* encode length number of bytes from inbuf */ @@ -612,7 +620,11 @@ void dec_empty_buf( int cipher, TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_dec ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); + int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); #endif /* decode 0-byte string */ @@ -713,8 +725,12 @@ void enc_dec_buf_multipart( int cipher_id, int key_len, int first_length_val, TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_enc ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx_enc, NULL, 0 ) ); + int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_enc, NULL, 0 ) ); #endif block_size = mbedtls_cipher_get_block_size( &ctx_enc ); @@ -798,7 +814,11 @@ void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx, iv->x, iv->len ) ); TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( 0 == mbedtls_cipher_update_ad( &ctx, ad->x, ad->len ) ); + int expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || + ctx.cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, ad->x, ad->len ) ); #endif /* decode buffer and check tag->x */ @@ -809,7 +829,11 @@ void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, &outlen ) ); total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_ASSERT( tag_result == mbedtls_cipher_check_tag( &ctx, tag->x, tag->len ) ); + int tag_expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || + ctx.cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + tag_result : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + + TEST_EQUAL( tag_expected, mbedtls_cipher_check_tag( &ctx, tag->x, tag->len ) ); #endif /* check plaintext only if everything went fine */ From 51a01638286cb0da13fbc79d553e6aa47f724113 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 30 Sep 2022 18:10:58 +0100 Subject: [PATCH 0119/1574] Add ChangeLog entry Signed-off-by: Tom Cosgrove --- ...fix-possible-false-success-in-mbedtls_cipher_check_tag.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt diff --git a/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt b/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt new file mode 100644 index 000000000..01492438a --- /dev/null +++ b/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt @@ -0,0 +1,4 @@ +Changes + * Calling AEAD tag-specific functions for non-AEAD algorithms (which should not + be done - they are documented for use only by AES-GCM and ChaCha20+Poly1305) + now returns MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE instead of success (0). From 7dbe8528f38c393d76b2cbbd358c0b847b9cac11 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 30 Sep 2022 17:24:29 -0500 Subject: [PATCH 0120/1574] pkcs7: Import header files with included directory path not relative path In #include statements, rely on -I paths instead of relative paths. Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 513b707d6..9486c7153 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -47,9 +47,9 @@ #include "mbedtls/build_info.h" -#include "asn1.h" -#include "x509.h" -#include "x509_crt.h" +#include "mbedtls/asn1.h" +#include "mbedtls/x509.h" +#include "mbedtls/x509_crt.h" /** * \name PKCS7 Module Error codes From e290f2ea1495ecdd35638fa1ab47b733c67d0634 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 20:58:39 +0200 Subject: [PATCH 0121/1574] all.sh: add testing of AEAD drivers with libtestdriver1 Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 28a20d2b7..8d7bd5bf4 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1941,6 +1941,32 @@ component_test_psa_crypto_config_accel_cipher () { make test } +component_test_psa_crypto_config_accel_aead () { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" + + # Disable ALG_STREAM_CIPHER and ALG_ECB_NO_PADDING to avoid having + # partial support for cipher operations in the driver test library. + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + + loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20" + loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) + make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + + scripts/config.py unset MBEDTLS_MODE_GCM + scripts/config.py unset MBEDTLS_MODE_CCM + scripts/config.py unset MBEDTLS_MODE_CHACHAPOLY + + loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" + make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" + make test +} + component_test_psa_crypto_config_no_driver() { # full plus MBEDTLS_PSA_CRYPTO_CONFIG msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG minus MBEDTLS_PSA_CRYPTO_DRIVERS" From bd99a0221b15839f83c6b55083315e4f98e9e851 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 21:01:23 +0200 Subject: [PATCH 0122/1574] test_driver_aead.c: add support for LIBTESTDRIVER1 tests Signed-off-by: Przemek Stekiel --- tests/src/drivers/test_driver_aead.c | 102 +++++++++++++++++++++++---- 1 file changed, 90 insertions(+), 12 deletions(-) diff --git a/tests/src/drivers/test_driver_aead.c b/tests/src/drivers/test_driver_aead.c index b5619603f..93a75f68a 100644 --- a/tests/src/drivers/test_driver_aead.c +++ b/tests/src/drivers/test_driver_aead.c @@ -25,6 +25,10 @@ #include "test/drivers/aead.h" +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) +#include "libtestdriver1/library/psa_crypto_aead.h" +#endif + mbedtls_test_driver_aead_hooks_t mbedtls_test_driver_aead_hooks = MBEDTLS_TEST_DRIVER_AEAD_INIT; @@ -46,7 +50,18 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_encrypt( + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + plaintext, plaintext_length, + ciphertext, ciphertext_size, ciphertext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_encrypt( attributes, key_buffer, key_buffer_size, @@ -94,7 +109,18 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_decrypt( + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + ciphertext, ciphertext_length, + plaintext, plaintext_size, plaintext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_decrypt( attributes, key_buffer, key_buffer_size, @@ -139,7 +165,14 @@ psa_status_t mbedtls_test_transparent_aead_encrypt_setup( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_encrypt_setup( operation, + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, + key_buffer_size, alg ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_encrypt_setup( operation, attributes, key_buffer, key_buffer_size, alg ); @@ -171,7 +204,13 @@ psa_status_t mbedtls_test_transparent_aead_decrypt_setup( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_decrypt_setup( operation, + (const libtestdriver1_psa_key_attributes_t *)attributes, + key_buffer, key_buffer_size, alg ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_decrypt_setup( operation, attributes, key_buffer, key_buffer_size, alg ); @@ -202,7 +241,11 @@ psa_status_t mbedtls_test_transparent_aead_set_nonce( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); #else @@ -230,7 +273,12 @@ psa_status_t mbedtls_test_transparent_aead_set_lengths( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_lengths( operation, ad_length, + plaintext_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_set_lengths( operation, ad_length, plaintext_length ); @@ -259,7 +307,11 @@ psa_status_t mbedtls_test_transparent_aead_update_ad( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update_ad( operation, input, input_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_update_ad( operation, input, input_length ); #else @@ -290,7 +342,13 @@ psa_status_t mbedtls_test_transparent_aead_update( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update( operation, input, + input_length, output, + output_size, output_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_update( operation, input, input_length, output, output_size, output_length ); @@ -326,7 +384,13 @@ psa_status_t mbedtls_test_transparent_aead_finish( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_finish( operation, ciphertext, + ciphertext_size, ciphertext_length, + tag, tag_size, tag_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_finish( operation, ciphertext, ciphertext_size, ciphertext_length, tag, tag_size, @@ -364,9 +428,19 @@ psa_status_t mbedtls_test_transparent_aead_verify( else { uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; - size_t check_tag_length; + size_t check_tag_length = 0; -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_finish( operation, + plaintext, + plaintext_size, + plaintext_length, + check_tag, + sizeof( check_tag ), + &check_tag_length ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_finish( operation, plaintext, @@ -410,7 +484,11 @@ psa_status_t mbedtls_test_transparent_aead_abort( } else { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_abort( operation ); +#elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_abort( operation ); #else From 2ff77119df9d031cd6ad84e5abc97e6f761b364e Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Wed, 14 Sep 2022 23:27:50 -0400 Subject: [PATCH 0123/1574] mbedtls_ecp_point_read_binary from compressed fmt mbedtls_ecp_point_read_binary from MBEDTLS_ECP_PF_COMPRESSED format Signed-off-by: Glenn Strauss --- ...s_ecp_point_read_binary-compressed-fmt.txt | 6 ++ library/ecp.c | 87 +++++++++++++++++-- tests/suites/test_suite_ecjpake.data | 16 ++-- tests/suites/test_suite_ecp.data | 46 +++++++++- tests/suites/test_suite_ecp.function | 19 +++- 5 files changed, 155 insertions(+), 19 deletions(-) create mode 100644 ChangeLog.d/mbedtls_ecp_point_read_binary-compressed-fmt.txt diff --git a/ChangeLog.d/mbedtls_ecp_point_read_binary-compressed-fmt.txt b/ChangeLog.d/mbedtls_ecp_point_read_binary-compressed-fmt.txt new file mode 100644 index 000000000..44253dd3b --- /dev/null +++ b/ChangeLog.d/mbedtls_ecp_point_read_binary-compressed-fmt.txt @@ -0,0 +1,6 @@ +Features + * Add support for reading points in compressed format + (MBEDTLS_ECP_PF_COMPRESSED) with mbedtls_ecp_point_read_binary() + (and callers) for Short Weierstrass curves with prime p where p = 3 mod 4 + (all mbedtls MBEDTLS_ECP_DP_SECP* and MBEDTLS_ECP_DP_BP* curves + except MBEDTLS_ECP_DP_SECP224R1 and MBEDTLS_ECP_DP_SECP224K1) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc..508645754 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -767,6 +767,68 @@ cleanup: return( ret ); } +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) +static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, + const mbedtls_mpi *X, + mbedtls_mpi *Y, + int parity_bit ) +{ + /* y^2 = x^3 + ax + b + * sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) + * + * Note: this method for extracting square root does not validate that w + * was indeed a square so this function will return garbage in Y if X + * does not correspond to a point on the curve. + */ + + /* Check prerequisite p = 3 mod 4 */ + if( mbedtls_mpi_get_bit( &grp->P, 0 ) != 1 || + mbedtls_mpi_get_bit( &grp->P, 1 ) != 1 ) + return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + + int ret; + mbedtls_mpi exp; + mbedtls_mpi_init(&exp); + + /* use Y to store intermediate results */ + /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ + /* x^2 */ + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( Y, X, X ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + /* x^2 + a */ + if( !grp->A.p ) /* special case for A = -3; temporarily set exp = -3 */ + MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &exp, -3 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( Y, Y, grp->A.p ? &grp->A : &exp ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + /* (x^2 + a)x */ + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( Y, Y, X ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + /* (x^2 + a)x + b */ + MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( Y, Y, &grp->B ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + + /* w = y^2 */ /* Y contains y^2 intermediate result */ + /* exp = ((p+1)/4) */ + MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &exp, &grp->P, 1 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &exp, 2 ) ); + /* sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) */ + MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( Y, Y /*y^2*/, &exp, &grp->P, NULL ) ); + + /* check parity bit match or else invert Y */ + /* This quick inversion implementation is valid because Y != 0 for all + * Short Weierstrass curves supported by mbedtls, as each supported curve + * has an order that is a large prime, so each supported curve does not + * have any point of order 2, and a point with Y == 0 would be of order 2 */ + if( mbedtls_mpi_get_bit( Y, 0 ) != parity_bit ) + MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( Y, &grp->P, Y ) ); + +cleanup: + + mbedtls_mpi_free(&exp); + return( ret ); +} +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ + /* * Import a point from unsigned binary data (SEC1 2.3.4 and RFC7748) */ @@ -808,16 +870,29 @@ int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); } - if( buf[0] != 0x04 ) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); - - if( ilen != 2 * plen + 1 ) + if( ilen < 1 + plen ) return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &pt->X, buf + 1, plen ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &pt->Y, - buf + 1 + plen, plen ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Z, 1 ) ); + + if( buf[0] == 0x04 ) + { + /* format == MBEDTLS_ECP_PF_UNCOMPRESSED */ + if( ilen != 1 + plen * 2 ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return( mbedtls_mpi_read_binary( &pt->Y, buf + 1 + plen, plen ) ); + } + else if( buf[0] == 0x02 || buf[0] == 0x03 ) + { + /* format == MBEDTLS_ECP_PF_COMPRESSED */ + if( ilen != 1 + plen ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return( mbedtls_ecp_sw_derive_y( grp, &pt->X, &pt->Y, + ( buf[0] & 1 ) ) ); + } + else + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); } #endif diff --git a/tests/suites/test_suite_ecjpake.data b/tests/suites/test_suite_ecjpake.data index 73808c940..c2ec78257 100644 --- a/tests/suites/test_suite_ecjpake.data +++ b/tests/suites/test_suite_ecjpake.data @@ -35,7 +35,7 @@ ECJPAKE round one: KKP1: first point is zero read_round_one:MBEDTLS_ECJPAKE_CLIENT:"0100":MBEDTLS_ERR_ECP_INVALID_KEY ECJPAKE round one: KKP1: unknown first point format -read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP1: nothing after first point read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -50,7 +50,7 @@ ECJPAKE round one: KKP1: no second point data read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP1: unknown second point format -read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP1: nothing after second point read_round_one:MBEDTLS_ECJPAKE_CLIENT:"41047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -83,7 +83,7 @@ ECJPAKE round one: KKP2: first point is zero read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb120100":MBEDTLS_ERR_ECP_INVALID_KEY ECJPAKE round one: KKP2: unknown first point format -read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241057ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP2: nothing after first point read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -98,7 +98,7 @@ ECJPAKE round one: KKP2: no second point data read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP2: unknown second point format -read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410509f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round one: KKP2: nothing after second point read_round_one:MBEDTLS_ECJPAKE_CLIENT:"4104190a07700ffa4be6ae1d79ee0f06aeb544cd5addaabedf70f8623321332c54f355f0fbfec783ed359e5d0bf7377a0fc4ea7ace473c9c112b41ccd41ac56a56124104360a1cea33fce641156458e0a4eac219e96831e6aebc88b3f3752f93a0281d1bf1fb106051db9694a8d6e862a5ef1324a3d9e27894f1ee4f7c59199965a8dd4a2091847d2d22df3ee55faa2a3fb33fd2d1e055a07a7c61ecfb8d80ec00c2c9eb1241047ea6e3a4487037a9e0dbd79262b2cc273e779930fc18409ac5361c5fe669d702e147790aeb4ce7fd6575ab0f6c7fd1c335939aa863ba37ec91b7e32bb013bb2b410409f85b3d20ebd7885ce464c08d056d6428fe4dd9287aa365f131f4360ff386d846898bc4b41583c2a5197f65d78742746c12a5ec0a4ffe2f270a750a1d8fb516":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -149,7 +149,7 @@ ECJPAKE round two client: first point is zero read_round_two_cli:"0300170100":MBEDTLS_ERR_ECP_INVALID_KEY ECJPAKE round two client: unknown first point format -read_round_two_cli:"03001741050fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_two_cli:"03001741050fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two client: nothing after first point read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a6":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -164,7 +164,7 @@ ECJPAKE round two client: no second point data read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a60104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two client: unknown second point format -read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641055516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641055516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two client: nothing after second point read_round_two_cli:"03001741040fb22b1d5d1123e0ef9feb9d8a2e590a1f4d7ced2c2b06586e8f2a16d4eb2fda4328a20b07d8fd667654ca18c54e32a333a0845451e926ee8804fd7af0aaa7a641045516ea3e54a0d5d8b2ce786b38d383370029a5dbe4459c9dd601b408a24ae6465c8ac905b9eb03b5d3691c139ef83f1cd4200f6c9cd4ec392218a59ed243d3c8":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -203,7 +203,7 @@ ECJPAKE round two server: first point is zero read_round_two_srv:"0100":MBEDTLS_ERR_ECP_INVALID_KEY ECJPAKE round two server: unknown first point format -read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two server: nothing after first point read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee":MBEDTLS_ERR_ECP_BAD_INPUT_DATA @@ -218,7 +218,7 @@ ECJPAKE round two server: no second point data read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee0104":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two server: unknown second point format -read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +read_round_two_srv:"410569d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECJPAKE round two server: nothing after second point read_round_two_srv:"410469d54ee85e90ce3f1246742de507e939e81d1dc1c5cb988b58c310c9fdd9524d93720b45541c83ee8841191da7ced86e3312d43623c1d63e74989aba4affd1ee4104077e8c31e20e6bedb760c13593e69f15be85c27d68cd09ccb8c4183608917c5c3d409fac39fefee82f7292d36f0d23e055913f45a52b85dd8a2052e9e129bb4d":MBEDTLS_ERR_ECP_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index 5332c0718..d6c9e2479 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -227,19 +227,51 @@ ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0000":"01":"01":"00":MBEDTLS_ERR_ECP_B ECP read binary #2 (zero, invalid first byte) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED -ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"01":"01":"01":"00":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"01":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA ECP read binary #3 (zero, OK) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"00":"01":"01":"00":0 -ECP read binary #4 (non-zero, invalid ilen) +ECP read binary #4 (non-zero, invalid ilen, too short) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"04001122":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA +ECP read binary #4a (non-zero, invalid ilen, too short) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"03001122":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #4b (non-zero, invalid ilen, too short) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"02001122":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #4c (non-zero, invalid ilen, too long) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"040011223344556677889900112233445566778899001122334455":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #4d (non-zero, invalid ilen, too long) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"030011223344556677889900112233445566778899001122334455":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #4e (non-zero, invalid ilen, too long) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"020011223344556677889900112233445566778899001122334455":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + ECP read binary #5 (non-zero, invalid first byte) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED -ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0548d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc99336ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"6ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"01":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0548d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc99336ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"6ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"01":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #5a (non-zero, compressed format, invalid first byte) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0548d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"6ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"01":MBEDTLS_ERR_ECP_BAD_INPUT_DATA + +ECP read binary #5b (non-zero, compressed format, parity 0, OK) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0248d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"6ceed4d7cba482e288669ee1b6415626d6f34d28501e060c":"01":0 + +ECP read binary #5c (non-zero, compressed format, parity 1, OK) +depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP192R1:"0348d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"48d8082a3a1e3112bc03a8ef2f6d40d0a77a6f8e00cc9933":"93112b28345b7d1d7799611e49bea9d8290cb2d7afe1f9f3":"01":0 ECP read binary #6 (non-zero, OK) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED @@ -285,6 +317,14 @@ ECP read binary #16 (Curve448, non-canonical) depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED ecp_read_binary:MBEDTLS_ECP_DP_CURVE448:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":0 +ECP read binary #17 (non-zero, compressed format, p != 3 mod 4, secp224r1) +depends_on:MBEDTLS_ECP_DP_SECP224R1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP224R1:"0200000000000000000000000000000000000000000000000000000000":"01":"01":"01":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE + +ECP read binary #17a (non-zero, compressed format, p != 3 mod 4, secp224k1) +depends_on:MBEDTLS_ECP_DP_SECP224K1_ENABLED +ecp_read_binary:MBEDTLS_ECP_DP_SECP224K1:"0200000000000000000000000000000000000000000000000000000000":"01":"01":"01":MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE + ECP tls read point #1 (zero, invalid length byte) depends_on:MBEDTLS_ECP_DP_SECP192R1_ENABLED mbedtls_ecp_tls_read_point:MBEDTLS_ECP_DP_SECP192R1:"0200":"01":"01":"00":MBEDTLS_ERR_ECP_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 65c7067d3..c106b22d2 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -637,6 +637,19 @@ void ecp_read_binary( int id, data_t * buf, char * x, char * y, char * z, { TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Y, &Y ) == 0 ); TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Z, &Z ) == 0 ); + + if( buf->x[0] == 0x04 && + /* (reading compressed format supported only for + * Short Weierstrass curves with prime p where p = 3 mod 4) */ + id != MBEDTLS_ECP_DP_SECP224R1 && + id != MBEDTLS_ECP_DP_SECP224K1 ) + { + /* re-encode in compressed format and test read again */ + mbedtls_mpi_free( &P.Y ); + buf->x[0] = 0x02 + mbedtls_mpi_get_bit( &Y, 0 ); + TEST_ASSERT( mbedtls_ecp_point_read_binary( &grp, &P, buf->x, buf->len/2+1 ) == 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Y, &Y ) == 0 ); + } } } @@ -698,8 +711,10 @@ void ecp_tls_write_read_point( int id ) memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; TEST_ASSERT( mbedtls_ecp_tls_write_point( &grp, &grp.G, MBEDTLS_ECP_PF_COMPRESSED, &olen, buf, 256 ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) - == MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) == 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.X, &pt.X ) == 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Y, &pt.Y ) == 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Z, &pt.Z ) == 0 ); TEST_ASSERT( vbuf == buf + olen ); memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; From 6546a6cc03235e51e02c9162fd4ffb52a884a9e8 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 30 Sep 2022 14:55:16 +0200 Subject: [PATCH 0124/1574] Rewrite tests for cond_assign/swap The cond_swap and cond_assign test functions now requires the same limb size for the MPI parameters. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 195 ++++++++++++--------------- 1 file changed, 89 insertions(+), 106 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index cf22e3736..a74136bcc 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -767,53 +767,49 @@ exit: void mpi_core_cond_assign( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( X, len_X ); - ASSERT_ALLOC( Y, len_Y ); + ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( Y, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - TEST_ASSERT( memcmp( X, Y, MIN( len_X, len_Y ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs_Y, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, limbs, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, Y, len_Y ); + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); mbedtls_free( Y ); - - #undef MAX_LEN } /* END_CASE */ @@ -821,65 +817,61 @@ exit: void mpi_core_cond_swap( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( tmp_X, len_X ); - ASSERT_ALLOC( tmp_Y, len_Y ); + ASSERT_ALLOC( tmp_X, len ); + ASSERT_ALLOC( tmp_Y, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X ); - memcpy( X, tmp_X, len_X ); + ASSERT_ALLOC( X, len ); + memcpy( X, tmp_X, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y ); - memcpy( Y, tmp_Y, len_Y ); + ASSERT_ALLOC( Y, len ); + memcpy( Y, tmp_Y, len ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_X, tmp_X, len_X ); - ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( X, len, tmp_X, len ); + ASSERT_COMPARE( Y, len, tmp_Y, len ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs_X, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, limbs, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, tmp_Y, len_Y ); - ASSERT_COMPARE( Y, len_X, tmp_X, len_X ); + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); exit: mbedtls_free( tmp_X ); mbedtls_free( tmp_Y ); mbedtls_free( X ); mbedtls_free( Y ); - - #undef MAX_LEN } /* END_CASE */ @@ -894,54 +886,52 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m = len_Y; + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( X, len_X ); - ASSERT_ALLOC( Y, len_Y ); + ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( Y, len ); - ASSERT_ALLOC( buff_m, len_m ); - memset( buff_m, 0, len_m ); + ASSERT_ALLOC( buff_m, len ); + memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs_Y, + &m, buff_m, limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs_X, + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs_Y, + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_Y, Y, len_Y ); + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -949,8 +939,6 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); - - #undef MAX_LEN } /* END_CASE */ @@ -958,7 +946,6 @@ exit: void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y ) { - #define MAX_LEN 64 mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; @@ -967,58 +954,56 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_modulus m; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t len_X = limbs_X * sizeof( mbedtls_mpi_uint ); - size_t len_Y = limbs_Y * sizeof( mbedtls_mpi_uint ); - size_t len_m = len_X; + size_t limbs = limbs_X; + size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X <= MAX_LEN ); - TEST_ASSERT( limbs_Y <= MAX_LEN ); + TEST_ASSERT( limbs_X == limbs_Y ); - ASSERT_ALLOC( tmp_X, len_X ); - ASSERT_ALLOC( tmp_Y, len_Y ); + ASSERT_ALLOC( tmp_X, len ); + ASSERT_ALLOC( tmp_Y, len ); - ASSERT_ALLOC( buff_m, len_m ); - memset( buff_m, 0, len_m ); + ASSERT_ALLOC( buff_m, len ); + memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs_X, + &m, buff_m, limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs_X, input_X->x, input_X->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len_X ); - memcpy( X, tmp_X, len_X ); + ASSERT_ALLOC( X, len ); + memcpy( X, tmp_X, len ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs_Y, input_Y->x, input_Y->len ) + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len_Y ); - memcpy( Y, tmp_Y, len_Y ); + ASSERT_ALLOC( Y, len ); + memcpy( Y, tmp_Y, len ); /* condition is false */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_X, tmp_X, len_X ); - ASSERT_COMPARE( Y, len_Y, tmp_Y, len_Y ); + ASSERT_COMPARE( X, len, tmp_X, len ); + ASSERT_COMPARE( Y, len, tmp_Y, len ); /* condition is true */ - TEST_CF_SECRET( X, len_X ); - TEST_CF_SECRET( Y, len_Y ); + TEST_CF_SECRET( X, len ); + TEST_CF_SECRET( Y, len ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len_X ); - TEST_CF_PUBLIC( Y, len_Y ); + TEST_CF_PUBLIC( X, len ); + TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len_m, tmp_Y, len_Y ); - ASSERT_COMPARE( Y, len_m, tmp_X, len_X ); + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); exit: mbedtls_free( tmp_X ); @@ -1028,8 +1013,6 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); - - #undef MAX_LEN } /* END_CASE */ From 02e5d439dbe81a932aacfe2ed549954a6f04c00d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 3 Oct 2022 16:45:11 +0200 Subject: [PATCH 0125/1574] Add more tests for cond_assign/swap functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 59 ++++++++++++++++---- tests/suites/test_suite_mpi.function | 80 +++++++++++++++++++++------- 2 files changed, 110 insertions(+), 29 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 7868a24f8..754652be6 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -681,23 +681,62 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 -mbedtls_mpi_core_cond_assign -mpi_core_cond_assign:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_assign: 1 limb +mpi_core_cond_assign:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_core_cond_assign: more limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256:0 + +mbedtls_mpi_core_cond_assign: copy half of the limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF" +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_core_cond_swap: different value -mpi_core_cond_swap:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_swap: 1 limb +mpi_core_cond_swap:"FFFFFFFF":"11111111":4:0 -mbedtls_mpi_mod_raw_cond_assign -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111" +mbedtls_mpi_core_cond_swap: more limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256:0 + +mbedtls_mpi_core_cond_swap: copy half of the limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 + +mbedtls_mpi_mod_raw_cond_assign: 1 limb +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_mod_raw_cond_assign: more limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256:0 + +mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF" +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_mod_raw_cond_swap: different value -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111" +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 + +mbedtls_mpi_mod_raw_cond_swap: 1 limb +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 + +mbedtls_mpi_mod_raw_cond_swap: more limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 + +mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256:0 + +mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index a74136bcc..1e579e99e 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -765,16 +765,20 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); ASSERT_ALLOC( Y, len ); @@ -789,7 +793,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs, 0 ); + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); @@ -800,12 +804,15 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_assign( X, Y, limbs, 1 ); + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, Y, len ); + if( is_fail ) + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + else + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -815,7 +822,9 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -824,9 +833,11 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); ASSERT_ALLOC( tmp_Y, len ); @@ -847,7 +858,7 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs, 0 ); + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); @@ -859,13 +870,23 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_SECRET( X, len ); TEST_CF_SECRET( Y, len ); - mbedtls_mpi_core_cond_swap( X, Y, limbs, 1 ); + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + if( is_fail ) + { + TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + } + else + { + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); + } exit: mbedtls_free( tmp_X ); @@ -877,7 +898,9 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; @@ -887,9 +910,11 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); ASSERT_ALLOC( Y, len ); @@ -898,7 +923,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs, + &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -920,7 +945,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - TEST_ASSERT( memcmp( X, Y, m.limbs * sizeof( mbedtls_mpi_uint ) ) != 0 ); + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); /* condition is true */ TEST_CF_SECRET( X, len ); @@ -931,7 +956,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, Y, len ); + if( is_fail ) + TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + else + ASSERT_COMPARE( X, len, Y, len ); exit: mbedtls_free( X ); @@ -944,7 +972,9 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, - data_t * input_Y ) + data_t * input_Y, + int input_len, + int is_fail ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -955,18 +985,20 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); TEST_ASSERT( limbs_X == limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); ASSERT_ALLOC( tmp_Y, len ); - ASSERT_ALLOC( buff_m, len ); - memset( buff_m, 0, len ); + ASSERT_ALLOC( buff_m, input_len ); + memset( buff_m, 0, input_len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, limbs, + &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) == 0 ); @@ -1002,8 +1034,18 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + if( is_fail ) + { + TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + } + else + { + ASSERT_COMPARE( X, len, tmp_Y, len ); + ASSERT_COMPARE( Y, len, tmp_X, len ); + } exit: mbedtls_free( tmp_X ); From dba2677597c5aa11f7b931b0f85186ebdb06c87d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 3 Oct 2022 17:01:02 +0200 Subject: [PATCH 0126/1574] Update documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 2 +- library/bignum_mod_raw.h | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 493ec12cd..bd246d5e3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -79,7 +79,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * the condition was true or not. * * \param[out] X The address of the first MPI. This must be initialized. - * It must have at least \p limbs limbs. + * Must have enough limbs to store the full value of \p A. * \param[in] A The address of the second MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 231bb72d3..845ebaa5a 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -37,7 +37,10 @@ * \brief Perform a safe conditional copy of MPI which doesn't reveal whether * the condition was true or not. * + * The size to copy is determined by \p N. + * * \param[out] X The address of the first MPI. This must be initialized. + * Must have enough limbs to store the full value of \p A. * \param[in] A The address of the second MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the @@ -61,6 +64,8 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * \brief Perform a safe conditional swap of MPI which doesn't reveal whether * the condition was true or not. * + * The size to swap is determined by \p N. + * * \param[in,out] X The address of the first MPI. This must be initialized. * \param[in,out] Y The address of the second MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p Y. From 8fcde5bb8ee4b08ddf3ebf346474568f3b952440 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 4 Oct 2022 13:53:33 +0200 Subject: [PATCH 0127/1574] Remove duplicate test case Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 754652be6..581f2f4d2 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -723,9 +723,6 @@ mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDC mbedtls_mpi_mod_raw_cond_swap: same value mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 -mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 - mbedtls_mpi_mod_raw_cond_swap: 1 limb mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 From 7f887bdc05765e357116f7f47cbbd9a4a1080333 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:12:30 +0200 Subject: [PATCH 0128/1574] Move license out of Doxygen comment Signed-off-by: Gilles Peskine --- library/bignum_core.h | 3 +++ library/bignum_mod.h | 4 +++- library/bignum_mod_raw.h | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 8e227f8d8..dc802ab4e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -6,6 +6,9 @@ * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 9d28bc7e4..982a9ac5c 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -1,6 +1,8 @@ /** * Modular bignum functions - * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7b3a0c177..aba5d0699 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -5,7 +5,9 @@ * module (bignum_mod.c) and the ECP module (ecp.c, ecp_curves.c). All other * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). - * + */ + +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * From 7aab2fbe419ac06ad19185dd2caf3bf28f5c536e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:19:13 +0200 Subject: [PATCH 0129/1574] Add a short description of what each module does There was already a short introduction to _who_ should use each module, but not to _what_ each module does. Signed-off-by: Gilles Peskine --- library/bignum_core.h | 5 +++++ library/bignum_mod.h | 2 ++ library/bignum_mod_raw.h | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index dc802ab4e..d64111b18 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -6,6 +6,11 @@ * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). * + * This module is about processing non-negative integers with a fixed upper + * bound that's of the form 2^#biL-1. Many operations treat these numbers + * as the principal representation of a number modulo 2^#biL or a smaller + * bound. + * */ /* diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 982a9ac5c..c25eb8742 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -1,5 +1,7 @@ /** * Modular bignum functions + * + * This module implements operations on integers modulo some fixed modulus. */ /* diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index aba5d0699..aef8a04e2 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -5,6 +5,12 @@ * module (bignum_mod.c) and the ECP module (ecp.c, ecp_curves.c). All other * modules should use the high-level modular bignum interface (bignum_mod.h) * or the legacy bignum interface (bignum.h). + * + * This is a low-level interface to operations on integers modulo which + * has no protection against passing invalid arguments such as arrays of + * the wrong size. The functions in bignum_mod.h provide a higher-level + * interface that includes protections against accidental misuse, at the + * expense of code size and sometimes more cumbersome memory management. */ /* From 2926484de15cfa6f26ff5a3c55ead699f3fba123 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 13:19:50 +0200 Subject: [PATCH 0130/1574] Describe generic conventions for the bignum core module This commit codifies some conventions that result from the original design goals and others that have emerged after starting the implementation. * Value ranges * Bignum parameter naming and ordering * Sizes * Aliasing and overlap * Error handling Signed-off-by: Gilles Peskine --- library/bignum_core.h | 51 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index d64111b18..2274a8a90 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -11,6 +11,51 @@ * as the principal representation of a number modulo 2^#biL or a smaller * bound. * + * The functions in this module obey the following conventions unless + * explicitly indicated otherwise: + * + * - **Overflow**: some functions indicate overflow from the range + * [0, 2^#biL-1] by returning carry parameters, while others operate + * modulo and so cannot overflow. This should be clear from the function + * documentation. + * - **Bignum parameters**: Bignums are passed as pointers to an array of + * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified: + * - Bignum parameters called \p A, \p B, ... are inputs, and are + * not modified by the function. + * - For operations modulo some number, the modulus is called \p N + * and is input-only. + * - Bignum parameters called \p X, \p Y are outputs or input-output. + * The initial content of output-only parameters is ignored. + * - Some functions use different names that reflect traditional + * naming of operands of certain operations (e.g. + * divisor/dividend/quotient/remainder). + * - \p T is a temporary storage area. The initial content of such + * parameter is ignored and the final content is unspecified. + * - **Bignum sizes**: bignum sizes are always expressed in limbs. + * Most functions work on bignums of a given size and take a single + * \p limbs parameter that applies to all parameters that are limb arrays. + * All bignum sizes must be at least 1 and must be significantly less than + * #SIZE_MAX. The behavior if a size is 0 is undefined. The behavior if the + * total size of all parameters overflows #SIZE_MAX is undefined. + * - **Parameter ordering**: for bignum parameters, outputs come before inputs. + * Temporaries come last. + * - **Aliasing**: in general, output bignums may be aliased to one or more + * inputs. As an exception, parameters that are documented as a modulus value + * may not be aliased to an output. Temporaries may not be aliased to + * any other parameter. + * - **Overlap**: apart from aliasing of limb array pointers (where two + * arguments are equal pointers), overlap is not supported and may result + * in undefined behavior. + * - **Error handling**: This is a low-level module. Functions generally do not + * try to protect against invalid arguments such as nonsensical sizes or + * null pointers. Note that some functions that operate on bignums of + * different sizes have constraints about their size, and violating those + * constraints may lead to buffer overflows. + * - **Modular representatives**: functions that operate modulo \p N expect + * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs + * in the range [0, \p N - 1]. If an input is out of range, outputs are + * fully unspecified, though bignum values out of range should not cause + * buffer overflows (beware that this is not extensively tested). */ /* @@ -39,9 +84,9 @@ #include "mbedtls/bignum.h" #endif -#define ciL ( sizeof(mbedtls_mpi_uint) ) /* chars in limb */ -#define biL ( ciL << 3 ) /* bits in limb */ -#define biH ( ciL << 2 ) /* half limb size */ +#define ciL ( sizeof(mbedtls_mpi_uint) ) /** chars in limb */ +#define biL ( ciL << 3 ) /** bits in limb */ +#define biH ( ciL << 2 ) /** half limb size */ /* * Convert between bits/chars and number of limbs From 01af3ddc82e101974dd1e8b9c45ac909d9032c34 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 4 Oct 2022 16:23:29 +0200 Subject: [PATCH 0131/1574] Fixed confusion between number size and limb size; define limb Signed-off-by: Gilles Peskine --- library/bignum_core.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 2274a8a90..c64ce4e86 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -7,15 +7,17 @@ * or the legacy bignum interface (bignum.h). * * This module is about processing non-negative integers with a fixed upper - * bound that's of the form 2^#biL-1. Many operations treat these numbers - * as the principal representation of a number modulo 2^#biL or a smaller - * bound. + * bound that's of the form 2^n-1 where n is a multiple of #biL. + * These can be thought of integers written in base 2^#biL with a fixed + * number of digits. Digits in this base are called *limbs*. + * Many operations treat these numbers as the principal representation of + * a number modulo 2^n or a smaller bound. * * The functions in this module obey the following conventions unless * explicitly indicated otherwise: * * - **Overflow**: some functions indicate overflow from the range - * [0, 2^#biL-1] by returning carry parameters, while others operate + * [0, 2^n-1] by returning carry parameters, while others operate * modulo and so cannot overflow. This should be clear from the function * documentation. * - **Bignum parameters**: Bignums are passed as pointers to an array of From ed79483aca30bff301cb420dcf5828530eea6603 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 4 Oct 2022 18:12:06 +0100 Subject: [PATCH 0132/1574] Free structs in mbedtls_x509_get_name() on error mbedtls_x509_get_name() allocates a linked list of mbedtls_x509_name structs but does not free these when there is an error, leaving the caller to free them itself. Change this to cleanup these objects within the function in case of an error. Signed-off-by: David Horstmann --- library/x509.c | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/library/x509.c b/library/x509.c index f1d988aa7..cdc87e53e 100644 --- a/library/x509.c +++ b/library/x509.c @@ -468,6 +468,11 @@ static int x509_get_attr_type_value( unsigned char **p, * For the general case we still use a flat list, but we mark elements of the * same set so that they are "merged" together in the functions that consume * this list, eg mbedtls_x509_dn_gets(). + * + * On success, this function allocates a linked list starting at cur->next + * that must later be free'd by the caller using mbedtls_free(). In error + * cases, this function frees all allocated memory internally and the caller + * has no freeing responsibilities. */ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, mbedtls_x509_name *cur ) @@ -475,6 +480,8 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t set_len; const unsigned char *end_set; + mbedtls_x509_name *head = cur; + mbedtls_x509_name *prev, *allocated; /* don't use recursion, we'd risk stack overflow if not optimized */ while( 1 ) @@ -484,14 +491,17 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, */ if( ( ret = mbedtls_asn1_get_tag( p, end, &set_len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ) ); + { + ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ); + goto error; + } end_set = *p + set_len; while( 1 ) { if( ( ret = x509_get_attr_type_value( p, end_set, cur ) ) != 0 ) - return( ret ); + goto error; if( *p == end_set ) break; @@ -502,7 +512,10 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); if( cur->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + { + ret = MBEDTLS_ERR_X509_ALLOC_FAILED; + goto error; + } cur = cur->next; } @@ -516,10 +529,35 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); if( cur->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + { + ret = MBEDTLS_ERR_X509_ALLOC_FAILED; + goto error; + } cur = cur->next; } + +error: + prev = NULL; + + /* Skip the first element as we did not allocate it */ + allocated = head->next; + + /* Make sure we cannot be followed along this list */ + head->next = NULL; + + while( allocated != NULL ) + { + prev = allocated; + allocated = allocated->next; + + mbedtls_platform_zeroize( prev, sizeof( *prev ) ); + mbedtls_free( prev ); + } + + mbedtls_platform_zeroize( head, sizeof( *head ) ); + + return ret; } static int x509_parse_int( unsigned char **p, size_t n, int *res ) From ec7012dbc766611395c55b3f6760b6bca0180797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 5 Oct 2022 12:17:34 +0200 Subject: [PATCH 0133/1574] Fix I/O format of PSA EC J-PAKE for compliance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The format used by the mbedtls_ecjpake_xxx() APIs and that defined by the PSA Crypto PAKE extension are quite different; the former is tailored to the needs of TLS while the later is quite generic and plain. Previously we only addressed some part of this impedance mismatch: the different number of I/O rounds, but failed to address the part where the legacy API adds some extras (length bytes, ECParameters) that shouldn't be present in the PSA Crypto version. See comments in the code. Add some length testing as well; would have caught the issue. Signed-off-by: Manuel Pégourié-Gonnard --- include/psa/crypto_extra.h | 21 +++--- library/psa_crypto_pake.c | 81 ++++++++++++--------- tests/suites/test_suite_psa_crypto.data | 4 + tests/suites/test_suite_psa_crypto.function | 71 ++++++++++++++++++ 4 files changed, 134 insertions(+), 43 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 6c2e06e50..ef9d13886 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1765,9 +1765,9 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ PSA_ECC_FAMILY_SECP_R1, 256) ? \ ( \ - output_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ - 33 \ + output_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ ) : \ 0 ) @@ -1795,9 +1795,9 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ PSA_ECC_FAMILY_SECP_R1, 256) ? \ ( \ - input_step == PSA_PAKE_STEP_KEY_SHARE ? 69 : \ - input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 66 : \ - 33 \ + input_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ ) : \ 0 ) @@ -1808,7 +1808,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_OUTPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_OUTPUT_MAX_SIZE 69 +#define PSA_PAKE_OUTPUT_MAX_SIZE 65 /** Input buffer size for psa_pake_input() for any of the supported PAKE * algorithm and primitive suites and input step. @@ -1817,7 +1817,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * * See also #PSA_PAKE_INPUT_SIZE(\p alg, \p primitive, \p step). */ -#define PSA_PAKE_INPUT_MAX_SIZE 69 +#define PSA_PAKE_INPUT_MAX_SIZE 65 /** Returns a suitable initializer for a PAKE cipher suite object of type * psa_pake_cipher_suite_t. @@ -1906,7 +1906,10 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) #include -#define PSA_PAKE_BUFFER_SIZE ( ( 69 + 66 + 33 ) * 2 ) +/* Note: the format for mbedtls_ecjpake_read/write function has an extra + * length byte for each step, plus an extra 3 bytes for ECParameters in the + * server's 2nd round. */ +#define PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) #endif struct psa_pake_operation_s diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 10d3e4a1b..df091bc2c 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -522,44 +522,29 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } /* - * Steps sequences are stored as: - * struct { - * opaque point <1..2^8-1>; - * } ECPoint; + * mbedtls_ecjpake_write_round_xxx() outputs thing in the format + * defined by draft-cragie-tls-ecjpake-01 section 7. The summary is + * that the data for each step is prepended with a length byte, and + * then they're concatenated. Additionally, the server's second round + * output is prepended with a 3-bytes ECParameters structure. * - * Where byte 0 stores the ECPoint curve point length. - * - * The sequence length is equal to: - * - data length extracted from byte 0 - * - byte 0 size (1) + * In PSA, we output each step separately, and don't prepend the + * output with a length byte, even less a curve identifier, as that + * information is already available. */ if( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && + operation->role == PSA_PAKE_ROLE_SERVER ) { - if( operation->role == PSA_PAKE_ROLE_SERVER ) - /* - * The X2S KEY SHARE Server steps sequence is stored as: - * struct { - * ECPoint X; - * opaque r <1..2^8-1>; - * } ECSchnorrZKP; - * - * And MbedTLS uses a 3 bytes Ephemeral public key ECPoint, - * so byte 3 stores the r Schnorr signature length. - * - * The sequence length is equal to: - * - curve storage size (3) - * - data length extracted from byte 3 - * - byte 3 size (1) - */ - length = 3 + operation->buffer[3] + 1; - else - length = operation->buffer[0] + 1; + /* Skip ECParameters, with is 3 bytes (RFC 8422) */ + operation->buffer_offset += 3; } - else - length = operation->buffer[operation->buffer_offset] + 1; - if( length > operation->buffer_length ) + /* Read the length byte then move past it to the data */ + length = operation->buffer[operation->buffer_offset]; + operation->buffer_offset += 1; + + if( operation->buffer_offset + length > operation->buffer_length ) return( PSA_ERROR_DATA_CORRUPT ); if( output_size < length ) @@ -569,7 +554,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, } memcpy( output, - operation->buffer + operation->buffer_offset, + operation->buffer + operation->buffer_offset, length ); *output_length = length; @@ -709,7 +694,35 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_BAD_STATE ); } - /* Copy input to local buffer */ + /* + * Copy input to local buffer and format it as the Mbed TLS API + * expects, i.e. as defined by draft-cragie-tls-ecjpake-01 section 7. + * The summary is that the data for each step is prepended with a + * length byte, and then they're concatenated. Additionally, the + * server's second round output is prepended with a 3-bytes + * ECParameters structure - which means we have to prepend that when + * we're a client. + */ + if( operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && + operation->role == PSA_PAKE_ROLE_CLIENT ) + { + /* We only support secp256r1. */ + /* This is the ECParameters structure defined by RFC 8422. */ + unsigned char ecparameters[3] = { + 3, /* named_curve */ + 0, 23 /* secp256r1 */ + }; + memcpy( operation->buffer + operation->buffer_length, + ecparameters, sizeof( ecparameters ) ); + operation->buffer_length += sizeof( ecparameters ); + } + + /* Write the length byte */ + operation->buffer[operation->buffer_length] = input_length; + operation->buffer_length += 1; + + /* Finally copy the data */ memcpy( operation->buffer + operation->buffer_length, input, input_length ); operation->buffer_length += input_length; diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index f2478be5f..91fced88b 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6594,3 +6594,7 @@ ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_E PSA PAKE: ecjpake inject input errors, second round server, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" + +PSA PAKE: ecjpake size macros +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +ecjpake_size_macros: diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index fa237d366..1b144df35 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -717,6 +717,15 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE) + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC) + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF)) * 2; + /* The output should be exactly this size according to the spec */ + const size_t expected_size_key_share = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE); + /* The output should be exactly this size according to the spec */ + const size_t expected_size_zk_public = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC); + /* The output can be smaller: the spec allows stripping leading zeroes */ + const size_t max_expected_size_zk_proof = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF); size_t buffer0_off = 0; size_t buffer1_off = 0; size_t s_g1_len, s_g2_len, s_a_len; @@ -744,31 +753,37 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g1_len ) ); + TEST_EQUAL( s_g1_len, expected_size_key_share ); s_g1_off = buffer0_off; buffer0_off += s_g1_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pk_len ) ); + TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); s_x1_pk_off = buffer0_off; buffer0_off += s_x1_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pr_len ) ); + TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); s_x1_pr_off = buffer0_off; buffer0_off += s_x1_pr_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g2_len ) ); + TEST_EQUAL( s_g2_len, expected_size_key_share ); s_g2_off = buffer0_off; buffer0_off += s_g2_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pk_len ) ); + TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); s_x2_pk_off = buffer0_off; buffer0_off += s_x2_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pr_len ) ); + TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); s_x2_pr_off = buffer0_off; buffer0_off += s_x2_pr_len; @@ -876,31 +891,37 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_g1_len ) ); + TEST_EQUAL( c_g1_len, expected_size_key_share ); c_g1_off = buffer1_off; buffer1_off += c_g1_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pk_len ) ); + TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); c_x1_pk_off = buffer1_off; buffer1_off += c_x1_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pr_len ) ); + TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); c_x1_pr_off = buffer1_off; buffer1_off += c_x1_pr_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_g2_len ) ); + TEST_EQUAL( c_g2_len, expected_size_key_share ); c_g2_off = buffer1_off; buffer1_off += c_g2_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pk_len ) ); + TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); c_x2_pk_off = buffer1_off; buffer1_off += c_x2_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pr_len ) ); + TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); c_x2_pr_off = buffer1_off; buffer1_off += c_x2_pr_len; @@ -1082,16 +1103,19 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_a_len ) ); + TEST_EQUAL( s_a_len, expected_size_key_share ); s_a_off = buffer0_off; buffer0_off += s_a_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pk_len ) ); + TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); s_x2s_pk_off = buffer0_off; buffer0_off += s_x2s_pk_len; PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pr_len ) ); + TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); s_x2s_pr_off = buffer0_off; buffer0_off += s_x2s_pr_len; @@ -1153,16 +1177,19 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_a_len ) ); + TEST_EQUAL( c_a_len, expected_size_key_share ); c_a_off = buffer1_off; buffer1_off += c_a_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pk_len ) ); + TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); c_x2s_pk_off = buffer1_off; buffer1_off += c_x2s_pk_len; PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pr_len ) ); + TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); c_x2s_pr_off = buffer1_off; buffer1_off += c_x2s_pr_len; @@ -9008,3 +9035,47 @@ exit: PSA_DONE( ); } /* END_CASE */ + +/* BEGIN_CASE */ +void ecjpake_size_macros( ) +{ + const psa_algorithm_t alg = PSA_ALG_JPAKE; + const size_t bits = 256; + const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits ); + const psa_key_type_t key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( + PSA_ECC_FAMILY_SECP_R1 ); + + // https://armmbed.github.io/mbed-crypto/1.1_PAKE_Extension.0-bet.0/html/pake.html#pake-step-types + /* The output for KEY_SHARE and ZK_PUBLIC is the same as a public key */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + /* The output for ZK_PROOF is the same bitsize as the curve */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_BITS_TO_BYTES( bits ) ); + + /* Input sizes are the same as output sizes */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF) ); + + /* These inequalities will always hold even when other PAKEs are added */ + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_MAX_SIZE ); +} +/* END_CASE */ From 79617d99aefff403e0e82c84cdd4ae1419d1d6c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 5 Oct 2022 12:55:50 +0200 Subject: [PATCH 0134/1574] Fix namespacing issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This macro is specific to the Mbed TLS implementation and not part of the public API, so it shouldn't used the PSA_ namespace. Signed-off-by: Manuel Pégourié-Gonnard --- include/psa/crypto_extra.h | 4 ++-- library/psa_crypto_pake.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index ef9d13886..4f65398e2 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1909,7 +1909,7 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, /* Note: the format for mbedtls_ecjpake_read/write function has an extra * length byte for each step, plus an extra 3 bytes for ECParameters in the * server's 2nd round. */ -#define PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) +#define MBEDTLS_PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) #endif struct psa_pake_operation_s @@ -1922,7 +1922,7 @@ struct psa_pake_operation_s unsigned int MBEDTLS_PRIVATE(output_step); mbedtls_svc_key_id_t MBEDTLS_PRIVATE(password); psa_pake_role_t MBEDTLS_PRIVATE(role); - uint8_t MBEDTLS_PRIVATE(buffer[PSA_PAKE_BUFFER_SIZE]); + uint8_t MBEDTLS_PRIVATE(buffer[MBEDTLS_PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); size_t MBEDTLS_PRIVATE(buffer_offset); #endif diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index df091bc2c..a8b02e396 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -230,7 +230,7 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, operation->input_step = PSA_PAKE_STEP_X1_X2; operation->output_step = PSA_PAKE_STEP_X1_X2; - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -491,7 +491,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -508,7 +508,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -566,7 +566,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, ( operation->state == PSA_PAKE_OUTPUT_X2S && operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) { - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; @@ -660,7 +660,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } - buffer_remain = PSA_PAKE_BUFFER_SIZE - operation->buffer_length; + buffer_remain = MBEDTLS_PSA_PAKE_BUFFER_SIZE - operation->buffer_length; if( input_length == 0 || input_length > buffer_remain ) @@ -735,7 +735,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; if( ret != 0 ) @@ -751,7 +751,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; if( ret != 0 ) @@ -797,7 +797,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, { ret = mbedtls_ecjpake_write_shared_key( &operation->ctx.ecjpake, operation->buffer, - PSA_PAKE_BUFFER_SIZE, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, &operation->buffer_length, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); @@ -812,7 +812,7 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, operation->buffer, operation->buffer_length ); - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); psa_pake_abort( operation ); @@ -837,7 +837,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) operation->output_step = PSA_PAKE_STEP_INVALID; operation->password = MBEDTLS_SVC_KEY_ID_INIT; operation->role = PSA_PAKE_ROLE_NONE; - mbedtls_platform_zeroize( operation->buffer, PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; operation->buffer_offset = 0; mbedtls_ecjpake_free( &operation->ctx.ecjpake ); From 05bb2c5d0e61b2804edfafc080e584c3be6ab5e4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 5 Oct 2022 12:06:23 +0100 Subject: [PATCH 0135/1574] Add ChangeLog entry for memory leak fix Signed-off-by: David Horstmann --- ChangeLog.d/fix_x509_get_name_mem_leak.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_x509_get_name_mem_leak.txt diff --git a/ChangeLog.d/fix_x509_get_name_mem_leak.txt b/ChangeLog.d/fix_x509_get_name_mem_leak.txt new file mode 100644 index 000000000..358d1afa7 --- /dev/null +++ b/ChangeLog.d/fix_x509_get_name_mem_leak.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix memory leak in ssl_parse_certificate_request() caused by + mbedtls_x509_get_name() not freeing allocated objects in case of error. + Change mbedtls_x509_get_name() to clean up allocated objects on error. From db73d3b149becb510f3515b7e7e6f1b8dc3111ee Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 4 Oct 2022 16:49:16 +0100 Subject: [PATCH 0136/1574] Add mbedtls_x509_get_name memory leak unit test Introduce a unit test to test mbedtls_x509_get_name() and add a testcase with a corrupt DER-encoded name that causes mbedtls_x509_get_name() to have to cleanup things it is allocated. If it fails to do this, a memory leak is detected under Asan builds. Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.data | 6 ++++ tests/suites/test_suite_x509parse.function | 36 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 6263fba2c..1db09826e 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -415,6 +415,12 @@ mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, CN=PolarSSL Server 1":0x03:"C":1:"C= X509 Get Next DN #4 Consecutive Multivalue RDNs mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, title=Example, CN=PolarSSL Server 1":0x05:"C title":2:"C=NL + O=PolarSSL, title=Example + CN=PolarSSL Server 1" +X509 Get Name Valid DN +mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3119301706035504030C10506F6C617253534C2054657374204341":0 + +X509 Get Name Corrupted DN Mem Leak +mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3019301706035504030C10506F6C617253534C2054657374204341":MBEDTLS_ERR_X509_INVALID_NAME + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + X509 Time Expired #1 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_HAVE_TIME_DATE:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA mbedtls_x509_time_is_past:"data_files/server1.crt":"valid_from":1 diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 60e703a94..e8a2bb971 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -818,6 +818,42 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ +void mbedtls_x509_get_name( char * hex_name, int exp_ret ) +{ + unsigned char *name; + unsigned char *p; + size_t name_len; + mbedtls_x509_name head; + mbedtls_x509_name *allocated, *prev; + int res; + + name = mbedtls_test_unhexify_alloc( hex_name, &name_len ); + p = name; + + res = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); + + if( res == 0 ) + { + allocated = head.next; + head.next = NULL; + prev = NULL; + + while( allocated != NULL ) + { + prev = allocated; + allocated = allocated->next; + + mbedtls_free( prev ); + } + } + + TEST_ASSERT( res == exp_ret ); + + mbedtls_free( name ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_X509_CREATE_C:MBEDTLS_X509_USE_C:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected_oids, int exp_count, char * exp_dn_gets ) { From 0771d41584fc9c72514e798624473fe1ef6d3318 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 6 Oct 2022 09:30:34 +0200 Subject: [PATCH 0137/1574] Fix missing length check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There was a check against the remaining size of the buffer, which used to be correct, but was broken two commits ago when we started not just copying the input but also adding to it. Replace it with a check that the input length is not greater that what's expected for this step. This guarantees we won't overflow the internal buffer. While at it, add an explicit cast to uint8_t when writing the length to the buffer, so silence an MSVC warning. This cast is safe because we checked that the length is no larger than 65 or 32 (depending on the step), so in any case is fits in one byte. This was found because some lengths had not been adjusted in the test suite, and instead of failing cleanly, library code performed buffer overflows. I'll fix the tests in the next commit. Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index a8b02e396..262d44d20 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -591,7 +591,6 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - size_t buffer_remain; if( operation->alg == PSA_ALG_NONE || operation->state == PSA_PAKE_STATE_INVALID ) @@ -623,6 +622,11 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, step != PSA_PAKE_STEP_ZK_PROOF ) return( PSA_ERROR_INVALID_ARGUMENT ); + const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256 ); + if( input_length > PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) + return( PSA_ERROR_INVALID_ARGUMENT ); + if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); @@ -660,15 +664,6 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } - buffer_remain = MBEDTLS_PSA_PAKE_BUFFER_SIZE - operation->buffer_length; - - if( input_length == 0 || - input_length > buffer_remain ) - { - psa_pake_abort( operation ); - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - } - /* Check if step matches current sequence */ switch( operation->sequence ) { @@ -719,7 +714,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, } /* Write the length byte */ - operation->buffer[operation->buffer_length] = input_length; + operation->buffer[operation->buffer_length] = (uint8_t) input_length; operation->buffer_length += 1; /* Finally copy the data */ From 0763ccf04f9a433bb02a98c467046fd049611ccd Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 14:32:30 +0100 Subject: [PATCH 0138/1574] Refactor ARIA_SELF_TEST_IF_FAIL macro Change the ARIA_SELF_TEST_IF_FAIL macro to be more code-style friendly. Currently it expands to the body of an if statement, which causes problems for automatic brace-addition for if statements. Convert the macro to a function-like macro that takes the condition as an argument and expands to a full if statement inside a do {} while (0) idiom. Signed-off-by: David Horstmann --- library/aria.c | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/library/aria.c b/library/aria.c index bc05c4a31..43ca762e1 100644 --- a/library/aria.c +++ b/library/aria.c @@ -895,15 +895,17 @@ static const uint8_t aria_test2_ctr_ct[3][48] = // CTR ciphertext }; #endif /* MBEDTLS_CIPHER_MODE_CFB */ -#define ARIA_SELF_TEST_IF_FAIL \ - { \ - if( verbose ) \ - mbedtls_printf( "failed\n" ); \ - goto exit; \ - } else { \ - if( verbose ) \ - mbedtls_printf( "passed\n" ); \ - } +#define ARIA_SELF_TEST_IF_FAIL( cond ) \ + do { \ + if( cond ) { \ + if( verbose ) \ + mbedtls_printf( "failed\n" ); \ + goto exit; \ + } else { \ + if( verbose ) \ + mbedtls_printf( "passed\n" ); \ + } \ + } while( 0 ) /* * Checkup routine @@ -937,16 +939,18 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (enc): ", 128 + 64 * i ); mbedtls_aria_setkey_enc( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_pt, blk ); - if( memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( + memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) + != 0 ); /* test ECB decryption */ if( verbose ) mbedtls_printf( " ARIA-ECB-%d (dec): ", 128 + 64 * i ); mbedtls_aria_setkey_dec( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_ct[i], blk ); - if( memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( + memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) + != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -965,8 +969,8 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0x55, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_cbc_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cbc_ct[i], 48 ) + != 0 ); /* Test CBC decryption */ if( verbose ) @@ -976,8 +980,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0xAA, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, aria_test2_cbc_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -996,8 +999,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); /* Test CFB decryption */ if( verbose ) @@ -1008,8 +1010,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, iv, aria_test2_cfb_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -1027,8 +1028,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_pt, buf ); - if( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); /* Test CTR decryption */ if( verbose ) @@ -1039,8 +1039,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_ctr_ct[i], buf ); - if( memcmp( buf, aria_test2_pt, 48 ) != 0 ) - ARIA_SELF_TEST_IF_FAIL; + ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); From ff1efc9a8472513511caab8fe676151a035f0431 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 2 Oct 2022 21:12:17 +0200 Subject: [PATCH 0139/1574] psa_aead_check_nonce_length: Fix unused variable warining Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 4a0bd8331..e45b5d70a 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3592,6 +3592,7 @@ static psa_status_t psa_aead_check_nonce_length( psa_algorithm_t alg, break; #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: + (void) nonce_length; return( PSA_ERROR_NOT_SUPPORTED ); } From c1ceae48486d7cd7229fb43f76cc9dc3bd0b45f2 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 5 Oct 2022 08:18:55 +0200 Subject: [PATCH 0140/1574] crypto_config_test_driver_extension.h: add support for ChaCha20 - Poly1305 This is done to have LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 defined in libtestdriver1. Signed-off-by: Przemek Stekiel --- .../crypto_config_test_driver_extension.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/include/test/drivers/crypto_config_test_driver_extension.h b/tests/include/test/drivers/crypto_config_test_driver_extension.h index 8052a85fb..0bbca4aef 100644 --- a/tests/include/test/drivers/crypto_config_test_driver_extension.h +++ b/tests/include/test/drivers/crypto_config_test_driver_extension.h @@ -142,6 +142,14 @@ #endif #endif +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) +#if defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305) +#undef MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 +#else +#define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 1 +#endif +#endif + #if defined(PSA_WANT_KEY_TYPE_AES) #if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES) #undef MBEDTLS_PSA_ACCEL_KEY_TYPE_AES @@ -182,9 +190,16 @@ #endif #endif +#if defined(PSA_WANT_KEY_TYPE_CHACHA20) +#if defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20) +#undef MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 +#else +#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 1 +#endif +#endif + #define MBEDTLS_PSA_ACCEL_ALG_CBC_MAC 1 #define MBEDTLS_PSA_ACCEL_ALG_CCM 1 -#define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305 1 #define MBEDTLS_PSA_ACCEL_ALG_CMAC 1 #define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING 1 #define MBEDTLS_PSA_ACCEL_ALG_ECDH 1 @@ -217,7 +232,6 @@ #define MBEDTLS_PSA_ACCEL_KEY_TYPE_DERIVE 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_HMAC 1 -#define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_DES 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_RAW_DATA 1 From 8a05a646f4bc0378f9e491205e5b9360e18517bd Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 6 Oct 2022 17:01:58 +0200 Subject: [PATCH 0141/1574] Remove psa_driver_get_tag_len() and use PSA_ALG_AEAD_GET_TAG_LENGTH macro instead Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 6 +----- library/psa_crypto_driver_wrappers.h | 4 ---- .../psa_crypto_driver_wrappers.c.jinja | 16 ---------------- 3 files changed, 1 insertion(+), 25 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index e45b5d70a..aef18ac41 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3711,11 +3711,7 @@ exit: static psa_status_t psa_validate_tag_length( psa_aead_operation_t *operation, psa_algorithm_t alg ) { - uint8_t tag_len = 0; - if( psa_driver_get_tag_len( operation, &tag_len ) != PSA_SUCCESS ) - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } + const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) { diff --git a/library/psa_crypto_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h index 12c649da3..ee23b6f3f 100644 --- a/library/psa_crypto_driver_wrappers.h +++ b/library/psa_crypto_driver_wrappers.h @@ -226,10 +226,6 @@ psa_status_t psa_driver_wrapper_aead_decrypt( const uint8_t *ciphertext, size_t ciphertext_length, uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length ); -psa_status_t psa_driver_get_tag_len( - psa_aead_operation_t *operation, - uint8_t *tag_len ); - psa_status_t psa_driver_wrapper_aead_encrypt_setup( psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index a5ae6a29e..8ef2e6d87 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -1616,22 +1616,6 @@ psa_status_t psa_driver_wrapper_aead_decrypt( } } -psa_status_t psa_driver_get_tag_len( psa_aead_operation_t *operation, - uint8_t *tag_len ) -{ - if( operation == NULL || tag_len == NULL ) - return( PSA_ERROR_INVALID_ARGUMENT ); - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - *tag_len = operation->ctx.transparent_test_driver_ctx.tag_length; - return ( PSA_SUCCESS ); -#endif -#endif - *tag_len = operation->ctx.mbedtls_ctx.tag_length; - return ( PSA_SUCCESS ); -} - psa_status_t psa_driver_wrapper_aead_encrypt_setup( psa_aead_operation_t *operation, const psa_key_attributes_t *attributes, From 3b2276a43922f600ac6a1bb80a25aca9548044ba Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 14:49:08 +0100 Subject: [PATCH 0142/1574] Refactor macro-spanning ifs in ssl_tls.c Signed-off-by: David Horstmann --- library/ssl_tls.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f0615ea7d..075a65b64 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1211,9 +1211,11 @@ int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ) #endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) + int free_cli_id = 1; #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - if( partial == 0 ) + free_cli_id = ( partial == 0 ); #endif + if( free_cli_id ) { mbedtls_free( ssl->cli_id ); ssl->cli_id = NULL; @@ -7601,11 +7603,16 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, * sequence number). */ transform->ivlen = 12; + + int is_chachapoly = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( key_type == PSA_KEY_TYPE_CHACHA20 ) + is_chachapoly = ( key_type == PSA_KEY_TYPE_CHACHA20 ); #else - if( mbedtls_cipher_info_get_mode( cipher_info ) == MBEDTLS_MODE_CHACHAPOLY ) + is_chachapoly = ( mbedtls_cipher_info_get_mode( cipher_info ) + == MBEDTLS_MODE_CHACHAPOLY ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + + if( is_chachapoly ) transform->fixed_ivlen = 12; else transform->fixed_ivlen = 4; From b21bbef06187b521df31151c1795716684400cef Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 17:49:31 +0100 Subject: [PATCH 0143/1574] Refactor macro-spanning if in ssl_tls12_client.c Signed-off-by: David Horstmann --- library/ssl_tls12_client.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index d1ec55cfc..ba39d8981 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2471,9 +2471,11 @@ start_processing: if( ret != 0 ) { + int send_alert_msg = 1; #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) + send_alert_msg = ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); #endif + if( send_alert_msg ) mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, From 86679c7bd8856a1a89b4576344554123d8a42c24 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 6 Oct 2022 17:06:56 +0200 Subject: [PATCH 0144/1574] psa_validate_tag_length(): use PSA_WANT_ALG_xxx instead MBEDTLS_PSA_BUILTIN_ALG_xxx guards Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index aef18ac41..7bce3916b 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3709,35 +3709,34 @@ exit: return( status ); } -static psa_status_t psa_validate_tag_length( psa_aead_operation_t *operation, - psa_algorithm_t alg ) { +static psa_status_t psa_validate_tag_length( psa_algorithm_t alg ) { const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) { -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) +#if defined(PSA_WANT_ALG_CCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16.*/ if( tag_len < 4 || tag_len > 16 || tag_len % 2 ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ +#endif /* PSA_WANT_ALG_CCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) +#if defined(PSA_WANT_ALG_GCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. */ if( tag_len != 4 && tag_len != 8 && ( tag_len < 12 || tag_len > 16 ) ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ +#endif /* PSA_WANT_ALG_GCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): /* We only support the default tag length. */ if( tag_len != 16 ) return( PSA_ERROR_INVALID_ARGUMENT ); break; -#endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ +#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: (void) tag_len; @@ -3803,7 +3802,7 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, if( status != PSA_SUCCESS ) goto exit; - if( ( status = psa_validate_tag_length( operation, alg ) ) != PSA_SUCCESS ) + if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) goto exit; operation->key_type = psa_get_key_type( &attributes ); From e0af39a2efd4463dd01cc37baa68b0db6514ea56 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:19:18 +0100 Subject: [PATCH 0145/1574] Refactor macro-spanning ifs in ssl_tls12_server.c Signed-off-by: David Horstmann --- library/ssl_tls12_server.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 997f5848e..fcf8e9a06 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -714,11 +714,13 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, #endif list = ssl->conf->key_cert; + int pk_alg_none = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( pk_alg == PSA_ALG_NONE ) + pk_alg_none = ( pk_alg == PSA_ALG_NONE ); #else - if( pk_alg == MBEDTLS_PK_NONE ) + pk_alg_none = ( pk_alg == MBEDTLS_PK_NONE ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + if( pk_alg_none ) return( 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); @@ -735,18 +737,21 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", cur->cert ); + int key_type_mismatch = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ( ssl->conf->f_async_sign_start == NULL && - ssl->conf->f_async_decrypt_start == NULL && - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || - ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ) + key_type_mismatch = ( ( ssl->conf->f_async_sign_start == NULL && + ssl->conf->f_async_decrypt_start == NULL && + ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || + ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); #else - if( ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) + key_type_mismatch = ( + ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #else - if( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ) + key_type_mismatch = ( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ + if( key_type_mismatch ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); continue; @@ -923,6 +928,8 @@ static int ssl_parse_client_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse client hello" ) ); + int renegotiating; + #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) read_record_header: #endif @@ -931,9 +938,11 @@ read_record_header: * otherwise read it ourselves manually in order to support SSLv2 * ClientHello, which doesn't use the same record layer format. */ + renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { if( ( ret = mbedtls_ssl_fetch_input( ssl, 5 ) ) != 0 ) { From 4a28563e84946423ea1ae6c67d9de918d68b3708 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:30:10 +0100 Subject: [PATCH 0146/1574] Refactor macro-spanning ifs in ssl_client.c Signed-off-by: David Horstmann --- library/ssl_client.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index e7453d573..08cb3421e 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -376,9 +376,11 @@ static int ssl_write_client_hello_cipher_suites( /* * Add TLS_EMPTY_RENEGOTIATION_INFO_SCSV */ + int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding EMPTY_RENEGOTIATION_INFO_SCSV" ) ); MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); @@ -790,9 +792,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) * RFC 5077 section 3.4: "When presenting a ticket, the client MAY * generate and include a Session ID in the TLS ClientHello." */ + int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); #endif + if( !renegotiating ) { if( ( ssl->session_negotiate->ticket != NULL ) && ( ssl->session_negotiate->ticket_len != 0 ) ) From 10be134d8ef1e08862e1e2884dde3926e1435d0c Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:31:25 +0100 Subject: [PATCH 0147/1574] Refactor macro-spanning if in ssl_msg.c Signed-off-by: David Horstmann --- library/ssl_msg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbef29b3f..f48f9f1b3 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -3851,8 +3851,8 @@ int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, if( ssl_record_is_in_progress( ssl ) == 0 ) { + int dtls_have_buffered = 0; #if defined(MBEDTLS_SSL_PROTO_DTLS) - int have_buffered = 0; /* We only check for buffered messages if the * current datagram is fully consumed. */ @@ -3860,11 +3860,11 @@ int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, ssl_next_record_is_in_datagram( ssl ) == 0 ) { if( ssl_load_buffered_message( ssl ) == 0 ) - have_buffered = 1; + dtls_have_buffered = 1; } - if( have_buffered == 0 ) #endif /* MBEDTLS_SSL_PROTO_DTLS */ + if( dtls_have_buffered == 0 ) { ret = ssl_get_next_record( ssl ); if( ret == MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ) From 21b89761f899c9b40f03500c98910b855a5fe831 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:34:28 +0100 Subject: [PATCH 0148/1574] Refactor macro-spanning if in ssl_tls13_server.c Signed-off-by: David Horstmann --- library/ssl_tls13_server.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 6591ecba0..f61c634b2 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -680,11 +680,13 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, *olen = 0; + int not_using_psk = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) + not_using_psk = ( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ); #else - if( ssl->handshake->psk == NULL ) + not_using_psk = ( ssl->handshake->psk == NULL ); #endif + if( not_using_psk ) { /* We shouldn't have called this extension writer unless we've * chosen to use a PSK. */ From 687262ca7d735499627ca09e66196b51c1bb1147 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 17:54:57 +0100 Subject: [PATCH 0149/1574] Refactor macro-spanning if in sha256.c Signed-off-by: David Horstmann --- library/sha256.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/sha256.c b/library/sha256.c index 4819ba3ad..a20a3e96d 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -665,9 +665,11 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, MBEDTLS_PUT_UINT32_BE( ctx->state[5], output, 20 ); MBEDTLS_PUT_UINT32_BE( ctx->state[6], output, 24 ); + int truncated = 0; #if defined(MBEDTLS_SHA224_C) - if( ctx->is224 == 0 ) + truncated = ctx->is224; #endif + if( !truncated ) MBEDTLS_PUT_UINT32_BE( ctx->state[7], output, 28 ); return( 0 ); From 2788f6b6685c8c0e41e7ee57e788a07b99edfb43 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:45:09 +0100 Subject: [PATCH 0150/1574] Refactor macro-spanning if in sha512.c Signed-off-by: David Horstmann --- library/sha512.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/sha512.c b/library/sha512.c index f96580db5..9be05cb7e 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -820,9 +820,11 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, sha512_put_uint64_be( ctx->state[4], output, 32 ); sha512_put_uint64_be( ctx->state[5], output, 40 ); + int truncated = 0; #if defined(MBEDTLS_SHA384_C) - if( ctx->is384 == 0 ) + truncated = ctx->is384; #endif + if( !truncated ) { sha512_put_uint64_be( ctx->state[6], output, 48 ); sha512_put_uint64_be( ctx->state[7], output, 56 ); From 8a7629fd0ffc0709eb47cdaf4607e76f35fc009b Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 18:57:57 +0100 Subject: [PATCH 0151/1574] Refactor macro-spanning if in asn1write.c Signed-off-by: David Horstmann --- library/asn1write.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/library/asn1write.c b/library/asn1write.c index 053dbb669..6c2a71f00 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -78,9 +78,11 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ return( 4 ); } + int len_valid = 1; #if SIZE_MAX > 0xFFFFFFFF - if( len <= 0xFFFFFFFF ) + len_valid = ( len <= 0xFFFFFFFF ); #endif + if( len_valid ) { if( *p - start < 5 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); @@ -92,10 +94,10 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ *--(*p) = 0x84; return( 5 ); } - -#if SIZE_MAX > 0xFFFFFFFF - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); -#endif + else + { + return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + } } int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, unsigned char tag ) From fc735dffd600808fb998141274c8323e98bfb79f Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 19:11:04 +0100 Subject: [PATCH 0152/1574] Refactor macro-spanning ifs in ecp.c Signed-off-by: David Horstmann --- library/ecp.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 009be61fc..2cec0a0b0 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2287,12 +2287,14 @@ cleanup: mbedtls_free( T ); } - /* don't free R while in progress in case R == P */ -#if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) -#endif + int should_free_R = 0; /* prevent caller from using invalid value */ - if( ret != 0 ) + should_free_R = ( ret != 0 ); +#if defined(MBEDTLS_ECP_RESTARTABLE) + /* don't free R while in progress in case R == P */ + should_free_R = should_free_R && ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); +#endif + if( should_free_R ) mbedtls_ecp_point_free( R ); ECP_RS_LEAVE( rsm ); @@ -2537,10 +2539,12 @@ static int ecp_mul_restartable_internal( mbedtls_ecp_group *grp, mbedtls_ecp_poi MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) ); #endif /* MBEDTLS_ECP_INTERNAL_ALT */ + int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - /* skip argument check when restarting */ - if( rs_ctx == NULL || rs_ctx->rsm == NULL ) + restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); #endif + /* skip argument check when restarting */ + if( !restarting ) { /* check_privkey is free */ MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_CHK ); From 91e20a0580b811cbb398b7a9e8d2a9fc26145858 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 6 Oct 2022 19:11:28 +0100 Subject: [PATCH 0153/1574] Refactor macro-spanning ifs in ecdh.c Signed-off-by: David Horstmann --- library/ecdh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ecdh.c b/library/ecdh.c index 35ab1b704..c9c2e06bd 100644 --- a/library/ecdh.c +++ b/library/ecdh.c @@ -71,10 +71,12 @@ static int ecdh_gen_public_restartable( mbedtls_ecp_group *grp, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - /* If multiplication is in progress, we already generated a privkey */ + int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx == NULL || rs_ctx->rsm == NULL ) + restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); #endif + /* If multiplication is in progress, we already generated a privkey */ + if( !restarting ) MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, d, f_rng, p_rng ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_mul_restartable( grp, Q, d, &grp->G, From 6ab50762e0c3a13c8ae9198b66ae895e5739d3b7 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sat, 8 Oct 2022 17:54:30 +0200 Subject: [PATCH 0154/1574] psa_aead_setup: validate tag length before calling driver setup Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 7bce3916b..2ff168d3f 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3787,6 +3787,9 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, .core = slot->attr }; + if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) + goto exit; + if( is_encrypt ) status = psa_driver_wrapper_aead_encrypt_setup( operation, &attributes, @@ -3802,9 +3805,6 @@ static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, if( status != PSA_SUCCESS ) goto exit; - if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) - goto exit; - operation->key_type = psa_get_key_type( &attributes ); exit: From 88ade84735d74f245c1fca531d6f0c5077281223 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sat, 8 Oct 2022 17:56:18 +0200 Subject: [PATCH 0155/1574] psa_aead_setup: remove redundant tag length check Signed-off-by: Przemek Stekiel --- library/psa_crypto_aead.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 714d950a1..fcc2f8415 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -49,7 +49,6 @@ static psa_status_t psa_aead_setup( size_t key_bits; const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_id_t cipher_id; - size_t full_tag_length = 0; ( void ) key_buffer_size; @@ -66,7 +65,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): operation->alg = PSA_ALG_CCM; - full_tag_length = 16; /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16. * The call to mbedtls_ccm_encrypt_and_tag or * mbedtls_ccm_auth_decrypt will validate the tag length. */ @@ -85,7 +83,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): operation->alg = PSA_ALG_GCM; - full_tag_length = 16; /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. * The call to mbedtls_gcm_crypt_and_tag or * mbedtls_gcm_auth_decrypt will validate the tag length. */ @@ -104,7 +101,6 @@ static psa_status_t psa_aead_setup( #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): operation->alg = PSA_ALG_CHACHA20_POLY1305; - full_tag_length = 16; /* We only support the default tag length. */ if( alg != PSA_ALG_CHACHA20_POLY1305 ) return( PSA_ERROR_NOT_SUPPORTED ); @@ -124,16 +120,9 @@ static psa_status_t psa_aead_setup( return( PSA_ERROR_NOT_SUPPORTED ); } - if( PSA_AEAD_TAG_LENGTH( attributes->core.type, - key_bits, alg ) - > full_tag_length ) - return( PSA_ERROR_INVALID_ARGUMENT ); - operation->key_type = psa_get_key_type( attributes ); - operation->tag_length = PSA_AEAD_TAG_LENGTH( operation->key_type, - key_bits, - alg ); + operation->tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); return( PSA_SUCCESS ); } From 42bb3ff40b1a94760dd1bc124e7ebb97f5425cbc Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 10 Oct 2022 07:28:40 +0200 Subject: [PATCH 0156/1574] Adapt expected results in ChaCha20-Poly1305 ( invalid tag length) Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_psa_crypto.data | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index c8b229c7f..4de485a0d 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -3643,15 +3643,15 @@ aead_multipart_verify:PSA_KEY_TYPE_AES:"a0ec7b0052541d9e9c091fb7fc481409":PSA_AL PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 0 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 15 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305, invalid tag length 17 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_NOT_SUPPORTED:PSA_ERROR_INVALID_ARGUMENT +aead_multipart_verify:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):"070000004041424344454647":"50515253c0c1c2c3c4c5c6c7":"d31a8d34648e60db7b86afbc53ef7ec2a4aded51296e08fea9e2b5a736ee62d63dbea45e8ca9671282fafb69da92728b1a71de0a9e060b2905d6a5b67ecd3b3692ddbd7f2d778b8c9803aee328091b58fab324e4fad675945585808b4831d7bc3ff4def08e4b7a9de576d26586cec64b6116":"1ae10b594f09e26a7e902ecbd0600690":1:PSA_ERROR_INVALID_ARGUMENT:PSA_ERROR_INVALID_ARGUMENT PSA Multipart AEAD verify: ChaCha20 - Poly1305 (RFC7539, bad tag) depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 @@ -3951,7 +3951,7 @@ aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f9091 PSA AEAD setup: invalid algorithm (ChaCha20 - Poly1305 with short tag) depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,12):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,12):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: AES - CCM, invalid tag length 0 depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES @@ -4031,15 +4031,15 @@ aead_multipart_setup:PSA_KEY_TYPE_AES:"4189351B5CAEA375A0299E81C621BF43":PSA_ALG PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 0 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,0):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 15 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,15):PSA_ERROR_INVALID_ARGUMENT PSA AEAD setup: ChaCha20-Poly1305, invalid tag length 17 depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):PSA_ERROR_NOT_SUPPORTED +aead_multipart_setup:PSA_KEY_TYPE_CHACHA20:"808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,17):PSA_ERROR_INVALID_ARGUMENT PSA Multipart State Checks, AES - GCM depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES From 251cb632f113814f9f089d19c4ab2771ba033cf5 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:02:21 +0200 Subject: [PATCH 0157/1574] Remove unused macro definition Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 1e579e99e..985801b9a 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -902,7 +902,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, int input_len, int is_fail ) { - #define MAX_LEN 64 mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; From d6441da4c50f0c88930d3fd9158c516c99c73812 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:05:16 +0200 Subject: [PATCH 0158/1574] Remove redundant memory initialization When memory is allocated it is also initialized with 0. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 985801b9a..bfadde9d3 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -919,7 +919,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, len ); ASSERT_ALLOC( buff_m, len ); - memset( buff_m, 0, len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -994,7 +993,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, len ); ASSERT_ALLOC( buff_m, input_len ); - memset( buff_m, 0, input_len ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, From d71eb0c3ac1295f70506e97ef73b612e8e526cb6 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 13:09:04 +0200 Subject: [PATCH 0159/1574] Use better test macro Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index bfadde9d3..f1673814f 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -777,7 +777,7 @@ void mpi_core_cond_assign( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); @@ -836,7 +836,7 @@ void mpi_core_cond_swap( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); @@ -912,7 +912,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( X, len ); @@ -986,7 +986,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_X == limbs_Y ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); ASSERT_ALLOC( tmp_X, len ); From e9c013c22218981a79d98fe7a472786b68c5fc41 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 14:26:57 +0200 Subject: [PATCH 0160/1574] Handle if parameters are alised Signed-off-by: Gabor Mezei --- library/bignum_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 233b22ded..847ed6eb0 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -167,6 +167,9 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, size_t limbs, unsigned char assign ) { + if( X == A ) + return; + mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); } @@ -175,6 +178,9 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, size_t limbs, unsigned char swap ) { + if( X == Y ) + return; + /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); From d7edb1d22569dd7b92593983a158f3876883873e Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 14:32:09 +0200 Subject: [PATCH 0161/1574] Initialize variable Signed-off-by: Gabor Mezei --- library/constant_time.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/constant_time.c b/library/constant_time.c index d01998bd7..2b62bc176 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -708,7 +708,8 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char swap ) { - int ret, s; + int ret = 0; + int s; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( Y != NULL ); From a67a1a3ebc170a4d4dbe0d054159103a75698d07 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 15:25:59 +0200 Subject: [PATCH 0162/1574] Remove the 'is_fail' parameter from the test functions Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 36 ++++++++++++------------ tests/suites/test_suite_mpi.function | 42 ++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 581f2f4d2..e7d0665e9 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -682,58 +682,58 @@ mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: 1 limb -mpi_core_cond_assign:"FFFFFFFF":"11111111":4:0 +mpi_core_cond_assign:"FFFFFFFF":"11111111":4 mbedtls_mpi_core_cond_assign: more limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs -mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256:0 +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 mbedtls_mpi_core_cond_assign: copy half of the limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_core_cond_swap: 1 limb -mpi_core_cond_swap:"FFFFFFFF":"11111111":4:0 +mpi_core_cond_swap:"FFFFFFFF":"11111111":4 mbedtls_mpi_core_cond_swap: more limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs -mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256:0 +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 mbedtls_mpi_core_cond_swap: copy half of the limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_mod_raw_cond_assign: 1 limb -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4:0 +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 mbedtls_mpi_mod_raw_cond_assign: more limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs -mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256:0 +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_mod_raw_cond_swap: 1 limb -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4:0 +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 mbedtls_mpi_mod_raw_cond_swap: more limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16:0 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs -mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256:0 +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8:1 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index f1673814f..6ac36c40a 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,8 +766,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -776,6 +775,7 @@ void mpi_core_cond_assign( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -809,8 +809,13 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) + { + ASSERT_COMPARE( X, copy_len, Y, copy_len ); TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + } else ASSERT_COMPARE( X, len, Y, len ); @@ -823,8 +828,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -835,6 +839,7 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -875,8 +880,12 @@ void mpi_core_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) { + ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); + ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); @@ -899,8 +908,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -911,6 +919,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -954,8 +963,13 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) + { + ASSERT_COMPARE( X, copy_len, Y, copy_len ); TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + } else ASSERT_COMPARE( X, len, Y, len ); @@ -971,8 +985,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int input_len, - int is_fail ) + int input_len ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -985,6 +998,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_len ); size_t len = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -1031,8 +1045,12 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_CF_PUBLIC( X, len ); TEST_CF_PUBLIC( Y, len ); - if( is_fail ) + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs != limbs ) { + ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); + ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); From 44ba2f6db919fc0e7008e4eb2c9b546e9c6b78c6 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 10 Oct 2022 15:32:12 +0200 Subject: [PATCH 0163/1574] Add more test cases Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.data | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index e7d0665e9..860546edd 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -684,9 +684,15 @@ mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 mbedtls_mpi_core_cond_assign: 1 limb mpi_core_cond_assign:"FFFFFFFF":"11111111":4 -mbedtls_mpi_core_cond_assign: more limbs +mbedtls_mpi_core_cond_assign: more limbs #1 mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_core_cond_assign: more limbs #2 +mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_assign: more limbs #3 +mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 @@ -699,9 +705,15 @@ mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_core_cond_swap: 1 limb mpi_core_cond_swap:"FFFFFFFF":"11111111":4 -mbedtls_mpi_core_cond_swap: more limbs +mbedtls_mpi_core_cond_swap: more limbs #1 mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_core_cond_swap: more limbs #2 +mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_swap: more limbs #3 +mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 @@ -711,9 +723,15 @@ mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA987 mbedtls_mpi_mod_raw_cond_assign: 1 limb mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 -mbedtls_mpi_mod_raw_cond_assign: more limbs +mbedtls_mpi_mod_raw_cond_assign: more limbs #1 mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_mod_raw_cond_assign: more limbs #2 +mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #3 +mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 @@ -726,9 +744,15 @@ mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 mbedtls_mpi_mod_raw_cond_swap: 1 limb mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 -mbedtls_mpi_mod_raw_cond_swap: more limbs +mbedtls_mpi_mod_raw_cond_swap: more limbs #1 mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 +mbedtls_mpi_mod_raw_cond_swap: more limbs #2 +mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #3 +mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 From 6eaa75a79d5ed39632a42cd94970802c09aa24a1 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Mon, 10 Oct 2022 19:55:40 +0200 Subject: [PATCH 0164/1574] fixed docstring sentence Signed-off-by: Asfandyar Orakzai --- scripts/generate_driver_wrappers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/generate_driver_wrappers.py b/scripts/generate_driver_wrappers.py index babba5d15..e0c479350 100755 --- a/scripts/generate_driver_wrappers.py +++ b/scripts/generate_driver_wrappers.py @@ -170,7 +170,6 @@ def trace_exception(e: Exception, file=sys.stderr) -> None: def main() -> int: """ Main with command line arguments. - returns 1 when read_driver_descriptions returns False """ def_arg_mbedtls_root = build_tree.guess_mbedtls_root() From ac6c67053d4cb7842851cf73b375752d8286d8c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 11 Oct 2022 10:48:32 +0200 Subject: [PATCH 0165/1574] Print the list of failed suites in verbose mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In verbose mode, the full output of each failing suite is printed out, which for some suites runs in the 1000s of lines. If you didn't redirect output to a file, this is a lot to scroll and can make it hard to quickly identify which test suites failed. So, let's print out that information at the end. This is useful information for starting to figure out what went wrong. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/run-test-suites.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl index 15fa8bcf7..22eadd180 100755 --- a/tests/scripts/run-test-suites.pl +++ b/tests/scripts/run-test-suites.pl @@ -74,7 +74,7 @@ $ENV{'DYLD_LIBRARY_PATH'} = '../library'; my $prefix = $^O eq "MSWin32" ? '' : './'; -my ($failed_suites, $total_tests_run, $failed, $suite_cases_passed, +my (@failed_suites, $total_tests_run, $failed, $suite_cases_passed, $suite_cases_failed, $suite_cases_skipped, $total_cases_passed, $total_cases_failed, $total_cases_skipped ); my $suites_skipped = 0; @@ -112,7 +112,7 @@ for my $suite (@suites) pad_print_center( 72, '-', "End $suite" ); } } else { - $failed_suites++; + push @failed_suites, $suite; print "FAIL\n"; if( $verbose ) { pad_print_center( 72, '-', "Begin $suite" ); @@ -139,12 +139,17 @@ for my $suite (@suites) } print "-" x 72, "\n"; -print $failed_suites ? "FAILED" : "PASSED"; +print @failed_suites ? "FAILED" : "PASSED"; printf( " (%d suites, %d tests run%s)\n", scalar(@suites) - $suites_skipped, $total_tests_run, $suites_skipped ? ", $suites_skipped suites skipped" : "" ); +if( $verbose && @failed_suites ) { + # the output can be very long, so provide a summary of which suites failed + print " failed suites : @failed_suites\n"; +} + if( $verbose > 1 ) { print " test cases passed :", $total_cases_passed, "\n"; print " failed :", $total_cases_failed, "\n"; @@ -159,5 +164,5 @@ if( $verbose > 1 ) { } } -exit( $failed_suites ? 1 : 0 ); +exit( @failed_suites ? 1 : 0 ); From 9624a5932e4ab296ed81bfe44411e7a7651f15cc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:52:34 +0200 Subject: [PATCH 0166/1574] Add mbedtls_dhm_parse_dhmfile test case with DER input dh.optlen.der is the result of converting dh.optlen.pem from PEM to DER. Signed-off-by: Gilles Peskine --- tests/data_files/dh.optlen.der | Bin 0 -> 530 bytes tests/suites/test_suite_dhm.data | 3 +++ 2 files changed, 3 insertions(+) create mode 100644 tests/data_files/dh.optlen.der diff --git a/tests/data_files/dh.optlen.der b/tests/data_files/dh.optlen.der new file mode 100644 index 0000000000000000000000000000000000000000..3c3bf1780ea3b148899d2d22dc85b45b5f3c2165 GIT binary patch literal 530 zcmV+t0`2`Uf&vZ#f&l>lvl43R^l?+i)_*`SFtU=hy;^LZt{fA3^FW9E;-hL;jc~=q zV67|Ll1xfXzTyfNalUZ_&WGOmc94lSfIYs-V8cEViNT;c!p6kplm+FGFQ8d!9J;8L z%s?$t6YWZ0A6uxk;q5)CQKZCmuj>q^V7E4mILPP;^McuG;htdJm`-8KLbc!5BQh$_ zGJl>yJlbRc!CYG|q53pHU4xh}xUM{F1$Kw`K+0NA+!Ox#|HaBttyz+zLeV)8q)y U Date: Tue, 11 Oct 2022 20:53:20 +0200 Subject: [PATCH 0167/1574] test_suite_dhm: Add missing dependencies on MBEDTLS_PEM_PARSE_C Signed-off-by: Gilles Peskine --- tests/suites/test_suite_dhm.data | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_dhm.data b/tests/suites/test_suite_dhm.data index c17cfd1d0..2ab5c4374 100644 --- a/tests/suites/test_suite_dhm.data +++ b/tests/suites/test_suite_dhm.data @@ -109,10 +109,12 @@ dhm_make_public:MBEDTLS_MPI_MAX_SIZE:"5":0 Diffie-Hellman MPI_MAX_SIZE + 1 modulus dhm_make_public:MBEDTLS_MPI_MAX_SIZE + 1:"5":MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED+MBEDTLS_ERR_MPI_BAD_INPUT_DATA -Diffie-Hellman load parameters from file [#1] +DH load parameters from PEM file (1024-bit, g=2) +depends_on:MBEDTLS_PEM_PARSE_C dhm_file:"data_files/dhparams.pem":"9e35f430443a09904f3a39a979797d070df53378e79c2438bef4e761f3c714553328589b041c809be1d6c6b5f1fc9f47d3a25443188253a992a56818b37ba9de5a40d362e56eff0be5417474c125c199272c8fe41dea733df6f662c92ae76556e755d10c64e6a50968f67fc6ea73d0dca8569be2ba204e23580d8bca2f4975b3":"02":128 -Diffie-Hellman load parameters from file [#2] +DH load parameters from PEM file (2048-bit, large g, privateValueLength) +depends_on:MBEDTLS_PEM_PARSE_C dhm_file:"data_files/dh.optlen.pem":"b3126aeaf47153c7d67f403030b292b5bd5a6c9eae1c137af34087fce2a36a578d70c5c560ad2bdb924c4a4dbee20a1671be7103ce87defa76908936803dbeca60c33e1289c1a03ac2c6c4e49405e5902fa0596a1cbaa895cc402d5213ed4a5f1f5ba8b5e1ed3da951a4c475afeb0ca660b7368c38c8e809f382d96ae19e60dc984e61cb42b5dfd723322acf327f9e413cda6400c15c5b2ea1fa34405d83982fba40e6d852da3d91019bf23511314254dc211a90833e5b1798ee52a78198c555644729ad92f060367c74ded37704adfc273a4a33fec821bd2ebd3bc051730e97a4dd14d2b766062592f5eec09d16bb50efebf2cc00dd3e0e3418e60ec84870f7":"800abfe7dc667aa17bcd7c04614bc221a65482ccc04b604602b0e131908a938ea11b48dc515dab7abcbb1e0c7fd66511edc0d86551b7632496e03df94357e1c4ea07a7ce1e381a2fcafdff5f5bf00df828806020e875c00926e4d011f88477a1b01927d73813cad4847c6396b9244621be2b00b63c659253318413443cd244215cd7fd4cbe796e82c6cf70f89cc0c528fb8e344809b31876e7ef739d5160d095c9684188b0c8755c7a468d47f56d6db9ea012924ecb0556fb71312a8d7c93bb2898ea08ee54eeb594548285f06a973cbbe2a0cb02e90f323fe045521f34c68354a6d3e95dbfff1eb64692edc0a44f3d3e408d0e479a541e779a6054259e2d854":256 DH load parameters from DER file (2048-bit, large g, privateValueLength) From 58e5d804ee2bed03a6d41e7288d5378a9150c657 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:57:38 +0200 Subject: [PATCH 0168/1574] test_suite_pk: Add missing dependencies on MBEDTLS_PEM_PARSE_C Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pk.data | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_pk.data b/tests/suites/test_suite_pk.data index 3dc2b8ba1..bd5d31ec4 100644 --- a/tests/suites/test_suite_pk.data +++ b/tests/suites/test_suite_pk.data @@ -521,23 +521,23 @@ depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA pk_rsa_verify_ext_test_vec:"ae6e43dd387c25741e42fc3570cdfc52e4f51a2343294f3b677dfe01cd5339f6":MBEDTLS_MD_SHA256:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:94:129:MBEDTLS_ERR_RSA_VERIFY_FAILED Check pair #1 (EC, OK) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/ec_256_prv.pem":0 Check pair #2 (EC, bad) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/server5.key":MBEDTLS_ERR_ECP_BAD_INPUT_DATA Check pair #3 (RSA, OK) -depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/server1.pubkey":"data_files/server1.key":0 Check pair #4 (RSA, bad) -depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/server1.pubkey":"data_files/server2.key":MBEDTLS_ERR_RSA_KEY_CHECK_FAILED Check pair #5 (RSA vs EC) -depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C +depends_on:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_PEM_PARSE_C mbedtls_pk_check_pair:"data_files/ec_256_pub.pem":"data_files/server1.key":MBEDTLS_ERR_PK_TYPE_MISMATCH RSA hash_len overflow (size_t vs unsigned int) From fd94304f9d547f826e2cbc044e9cfb725f539a95 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 20:59:29 +0200 Subject: [PATCH 0169/1574] PSA RSA needs pk_write The PSA crypto code needs mbedtls_pk_write_key_der() and mbedtls_pk_write_pubkey() when using RSA without drivers. We were already forcing MBEDTLS_PK_WRITE_C when MBEDTLS_USE_PSA_CRYPTO is enabled. Do so also when MBEDTLS_PSA_CRYPTO_C is enabled as well as MBEDTLS_RSA_C, even without MBEDTLS_USE_PSA_CRYPTO. Fixes #6408. Signed-off-by: Gilles Peskine --- ChangeLog.d/psa_rsa_needs_pk.txt | 3 +++ include/mbedtls/build_info.h | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/psa_rsa_needs_pk.txt diff --git a/ChangeLog.d/psa_rsa_needs_pk.txt b/ChangeLog.d/psa_rsa_needs_pk.txt new file mode 100644 index 000000000..3421affc7 --- /dev/null +++ b/ChangeLog.d/psa_rsa_needs_pk.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 6195ac979..21e63f125 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -74,7 +74,22 @@ #include MBEDTLS_USER_CONFIG_FILE #endif -#if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO) +/* The PK wrappers need pk_write functions to format RSA key objects + * when they are dispatching to the PSA API. This happens under USE_PSA_CRYPTO, + * and also even without USE_PSA_CRYPTO for mbedtls_pk_sign_ext(). + * PSA crypto also needs pk_write to export RSA keys (otherwise the build + * goes through but psa_export_key() and psa_export_public_key() fail on + * RSA keys). + */ +#if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) +#define MBEDTLS_PK_C +#define MBEDTLS_PK_WRITE_C +#endif + +/* Under MBEDTLS_USE_PSA_CRYPTO, the pk module needs pk_write functions + * to pass ECC keys to PSA. */ +#if defined(MBEDTLS_PK_C) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECP_C) #define MBEDTLS_PK_WRITE_C #endif From aef1ba679d6a9e09aa08912c0a704570141d3cba Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 21:05:06 +0200 Subject: [PATCH 0170/1574] Add build with a typical configuration for a PSA crypto service Disable non-crypto features that can't be called through the PSA API, as well as algorithms that have no PSA interface. This serves as a non-regression test for #6408 and #6409. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a1b47f466..fa4160415 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1554,6 +1554,33 @@ component_build_crypto_full () { are_empty_libraries library/libmbedx509.* library/libmbedtls.* } +component_build_crypto_light () { + msg "build: make, config for PSA crypto service" + scripts/config.py crypto + scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER + # Disable things that are not needed for just cryptography, to + # reach a configuration that would be typical for a PSA cryptography + # service providing all implemented PSA algorithms. + # System stuff + scripts/config.py unset MBEDTLS_ERROR_C + scripts/config.py unset MBEDTLS_TIMING_C + scripts/config.py unset MBEDTLS_VERSION_FEATURES_C + # Crypto stuff with no PSA interface + scripts/config.py unset MBEDTLS_BASE64_C + scripts/config.py unset MBEDTLS_NIST_KW_C + scripts/config.py unset MBEDTLS_PEM_PARSE_C + scripts/config.py unset MBEDTLS_PEM_WRITE_C + scripts/config.py unset MBEDTLS_PKCS12_C + scripts/config.py unset MBEDTLS_PKCS5_C + # MBEDTLS_PK_WRITE_C is actually currently needed for RSA key export, + # but build_info.h will reenable it. + scripts/config.py unset MBEDTLS_PK_WRITE_C + # At this time, we can't unset MBEDTLS_PK_PARSE_C, because it's needed + # for RSA in PSA (see https://github.com/Mbed-TLS/mbedtls/issues/6408). + make CFLAGS='-O1 -Werror' all test + are_empty_libraries library/libmbedx509.* library/libmbedtls.* +} + component_build_crypto_baremetal () { msg "build: make, crypto only, baremetal config" scripts/config.py crypto_baremetal From fcee740b835f6dcbca1fa4aa42998c3269caad8e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 11 Oct 2022 21:15:24 +0200 Subject: [PATCH 0171/1574] Automatically enable PK_PARSE for RSA in PSA PSA crypto currently needs MBEDTLS_PK_PARSE_C to parse RSA keys to do almost anything with them (import, get attributes, export public from private, any cryptographic operations). Force it on, for symmetry with what we're doing for MBEDTLS_PK_WRITE_C. Fixes #6409. Signed-off-by: Gilles Peskine --- ChangeLog.d/psa_rsa_needs_pk.txt | 2 ++ include/mbedtls/build_info.h | 3 ++- tests/scripts/all.sh | 8 ++++---- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog.d/psa_rsa_needs_pk.txt b/ChangeLog.d/psa_rsa_needs_pk.txt index 3421affc7..995963d7e 100644 --- a/ChangeLog.d/psa_rsa_needs_pk.txt +++ b/ChangeLog.d/psa_rsa_needs_pk.txt @@ -1,3 +1,5 @@ Bugfix * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_PK_PARSE_C. Fixes #6409. diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 21e63f125..b04378929 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -79,11 +79,12 @@ * and also even without USE_PSA_CRYPTO for mbedtls_pk_sign_ext(). * PSA crypto also needs pk_write to export RSA keys (otherwise the build * goes through but psa_export_key() and psa_export_public_key() fail on - * RSA keys). + * RSA keys), and pk_parse to work with RSA keys in almost any way. */ #if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) #define MBEDTLS_PK_C #define MBEDTLS_PK_WRITE_C +#define MBEDTLS_PK_PARSE_C #endif /* Under MBEDTLS_USE_PSA_CRYPTO, the pk module needs pk_write functions diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index fa4160415..30ab9ba63 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1572,11 +1572,11 @@ component_build_crypto_light () { scripts/config.py unset MBEDTLS_PEM_WRITE_C scripts/config.py unset MBEDTLS_PKCS12_C scripts/config.py unset MBEDTLS_PKCS5_C - # MBEDTLS_PK_WRITE_C is actually currently needed for RSA key export, - # but build_info.h will reenable it. + # MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C are actually currently needed + # in PSA code to work with RSA keys. We don't require users to set those: + # they will be reenabled in build_info.h. + scripts/config.py unset MBEDTLS_PK_PARSE_C scripts/config.py unset MBEDTLS_PK_WRITE_C - # At this time, we can't unset MBEDTLS_PK_PARSE_C, because it's needed - # for RSA in PSA (see https://github.com/Mbed-TLS/mbedtls/issues/6408). make CFLAGS='-O1 -Werror' all test are_empty_libraries library/libmbedx509.* library/libmbedtls.* } From ee1bb4145f4b225dddf78f76e0574714518ed27c Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 11 Oct 2022 11:52:25 +0200 Subject: [PATCH 0172/1574] Make sure that disabled features are not included in image and fix test config Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 8d7bd5bf4..34028801d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1949,20 +1949,28 @@ component_test_psa_crypto_config_accel_aead () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20" + loc_accel_list="ALG_GCM ALG_CCM ALG_CHACHA20_POLY1305 KEY_TYPE_AES KEY_TYPE_CHACHA20 KEY_TYPE_ARIA KEY_TYPE_CAMELLIA" loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py unset MBEDTLS_MODE_GCM - scripts/config.py unset MBEDTLS_MODE_CCM - scripts/config.py unset MBEDTLS_MODE_CHACHAPOLY + scripts/config.py unset MBEDTLS_GCM_C + scripts/config.py unset MBEDTLS_CCM_C + scripts/config.py unset MBEDTLS_CHACHAPOLY_C + # Features that depend on AEAD + scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + # There's a risk of something getting re-enabled via config_psa.h + # make sure it did not happen. + not grep mbedtls_ccm library/ccm.o + not grep mbedtls_gcm library/gcm.o + not grep mbedtls_chachapoly library/chachapoly.o + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated AEAD" make test } From ea37bb2403f24a2f1b7ca96f2af17aa7acac3728 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 12 Oct 2022 10:11:25 +0200 Subject: [PATCH 0173/1574] Add changelog entry Signed-off-by: Przemek Stekiel --- ChangeLog.d/fix_aead_psa_driver_build.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_aead_psa_driver_build.txt diff --git a/ChangeLog.d/fix_aead_psa_driver_build.txt b/ChangeLog.d/fix_aead_psa_driver_build.txt new file mode 100644 index 000000000..a6d11d38d --- /dev/null +++ b/ChangeLog.d/fix_aead_psa_driver_build.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix compilation errors when trying to build with + PSA drivers for AEAD (GCM, CCM, Chacha20-Poly1305). From 281fd1bdd8aacc3c68ea42e305a5ed2469635571 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 20 Sep 2022 11:35:41 +0000 Subject: [PATCH 0174/1574] Add server name check when proposeing pre-share key Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 26 ++++++++++++ library/ssl_client.c | 18 +++++++++ library/ssl_tls.c | 83 ++++++++++++++++++++++++++++++++++++++ library/ssl_tls13_server.c | 14 +++++++ programs/ssl/ssl_client2.c | 15 +++++++ tests/ssl-opt.sh | 41 +++++++++++++++++++ 6 files changed, 197 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 5a02182c0..5e493f5f2 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1201,6 +1201,11 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); #endif +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ + char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ + uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ }; /* @@ -3662,6 +3667,27 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * On too long input failure, old hostname is unchanged. */ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); + +/** + * \brief Reset the hostname to the new server name when reconnection. + * + * \param ssl SSL context + * \param hostname the server hostname, may be NULL + * \param rec_hostname the server rec_hostname, may be NULL + + * \note Maximum hostname length MBEDTLS_SSL_MAX_HOST_NAME_LEN. + * + * \return 0 if successful, MBEDTLS_ERR_SSL_ALLOC_FAILED on + * allocation failure, MBEDTLS_ERR_SSL_BAD_INPUT_DATA on + * too long input rec_hostname. + * + * Rec_hostname set to the one provided on success. + * On allocation failure hostname is unchanged. + * On too long input failure, old hostname is unchanged. + */ +int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, + const char *hostname, + const char *rec_hostname ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/library/ssl_client.c b/library/ssl_client.c index 1b591253f..bd9edf15f 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -54,6 +54,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { unsigned char *p = buf; size_t hostname_len; + size_t cmp_hostname_len; *olen = 0; @@ -64,8 +65,25 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, ( "client hello, adding server name extension: %s", ssl->hostname ) ); + ssl->session_negotiate->hostname_mismatch = 0; hostname_len = strlen( ssl->hostname ); + cmp_hostname_len = hostname_len < ssl->session_negotiate->hostname_len ? + hostname_len : ssl->session_negotiate->hostname_len; + + if( hostname_len != ssl->session_negotiate->hostname_len || + memcmp( ssl->hostname, ssl->session_negotiate->hostname, cmp_hostname_len ) ) + ssl->session_negotiate->hostname_mismatch = 1; + + if( ssl->session_negotiate->hostname == NULL ) + { + ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); + if( ssl->session_negotiate->hostname == NULL ) + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); + } + ssl->session_negotiate->hostname_len = hostname_len; + MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9741a6ef5..923876163 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,6 +297,18 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->hostname != NULL ) + { + dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + if( dst->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->hostname, src->hostname, src->hostname_len ); + dst->hostname[src->hostname_len] = '\0'; + } +#endif + return( 0 ); } @@ -1978,6 +1990,11 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + needed += 1 /* hostname_len */ + + session->hostname_len; /* hostname */ +#endif + needed += 4 /* ticket_lifetime */ + 2; /* ticket_len */ @@ -2004,6 +2021,19 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && + session->hostname_len != 0 && + session->hostname != NULL ) + { + /* save host name */ + p[0] = session->hostname_len; + p++; + memcpy( p, session->hostname, session->hostname_len ); + p += session->hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2062,6 +2092,22 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + /* load host name */ + session->hostname_len = p[0]; + p += 1; + if( end - p < session->hostname_len ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + session->hostname = mbedtls_calloc( 1, session->hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, session->hostname_len ); + p += session->hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2430,6 +2476,39 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) return( 0 ); } + +int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, + const char *hostname, + const char *rec_hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t rec_hostname_len = 0; + + if( hostname == NULL || rec_hostname == NULL ) + return( 0 ); + + rec_hostname_len = strlen( rec_hostname ); + if( rec_hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + + if( rec_hostname_len == strlen( hostname ) && + memcmp( hostname, rec_hostname, rec_hostname_len ) == 0 ) + return( 0 ); + + if( ssl->hostname != NULL ) + { + mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); + mbedtls_free( ssl->hostname ); + ssl->hostname = NULL; + ssl->hostname = mbedtls_calloc( 1, rec_hostname_len + 1 ); + if( ssl->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( ssl->hostname, rec_hostname, rec_hostname_len ); + ssl->hostname[rec_hostname_len] = '\0'; + } + + return( 0 ); +} #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -3679,6 +3758,10 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) mbedtls_free( session->ticket ); #endif +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + mbedtls_free( session->hostname ); +#endif + mbedtls_platform_zeroize( session, sizeof( mbedtls_ssl_session ) ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 61a1bad57..60b1e05f4 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -235,6 +235,20 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( (int)age_diff_in_ms ) ); goto exit; } +#if 0 +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( ssl->session_negotiate->hostname != NULL && + ssl->session_negotiate->hostname_len != 0 && + memcmp( ssl->session_negotiate->hostname, + ssl->session->hostname, ssl->session->hostname_len ) != 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "Session hostname not matched with stored session ticket" ) ); + goto exit; + } + +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif ret = 0; diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6377162b2..bc9335270 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -366,6 +366,7 @@ int main( void ) "\n usage: ssl_client2 param=<>...\n" \ "\n acceptable parameters:\n" \ " server_name=%%s default: localhost\n" \ + " rec_server_name=%%s default: localhost\n" \ " server_addr=%%s default: given by name\n" \ " server_port=%%d default: 4433\n" \ " request_page=%%s default: \".\"\n" \ @@ -455,6 +456,7 @@ int main( void ) struct options { const char *server_name; /* hostname of the server (client only) */ + const char *rec_s_name; /* hostname of the server (re-connect) */ const char *server_addr; /* address of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -876,6 +878,7 @@ int main( int argc, char *argv[] ) } opt.server_name = DFL_SERVER_NAME; + opt.rec_s_name = DFL_SERVER_NAME; opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; @@ -961,6 +964,8 @@ int main( int argc, char *argv[] ) if( strcmp( p, "server_name" ) == 0 ) opt.server_name = q; + else if( strcmp( p, "rec_server_name" ) == 0 ) + opt.rec_s_name = q; else if( strcmp( p, "server_addr" ) == 0 ) opt.server_addr = q; else if( strcmp( p, "server_port" ) == 0 ) @@ -3113,6 +3118,16 @@ reconnect: goto exit; } +#if defined(MBEDTLS_X509_CRT_PARSE_C) + if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, + opt.rec_s_name ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", + ret ); + goto exit; + } +#endif + if( ( ret = mbedtls_net_connect( &server_fd, opt.server_addr, opt.server_port, opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 48dd89e35..414b8607b 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12873,6 +12873,47 @@ run_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->G" \ -c "Protocol is TLSv1.2" \ -c "HTTP/1.0 200 [Oo][Kk]" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_DEBUG_C +run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ + "$P_CLI debug_level=4 server_name=localhost reco_mode=1 reconnect=1" \ + 0 \ + -c "Protocol is TLSv1.3" \ + -c "got new session ticket." \ + -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ + -c "HTTP/1.0 200 OK" \ + -s "=> write NewSessionTicket msg" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "key exchange mode: ephemeral" \ + -s "key exchange mode: psk_ephemeral" \ + -s "found pre_shared_key extension" + +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_DEBUG_C +run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ + "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ + 1 \ + -c "Protocol is TLSv1.3" \ + -c "got new session ticket." \ + -c "Saving session for reuse... ok" \ + -c "Reconnecting with saved session" \ + -c "hostname mismatch the session ticker, should not resume" \ + -s "=> write NewSessionTicket msg" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_MEMORY_DEBUG From ecd7528c7f0973752556b6c688a4cbe3042c4754 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 28 Sep 2022 07:11:02 +0000 Subject: [PATCH 0175/1574] Address some comments Hostname_len has at least one byte Change structure serialized_session_tls13 Fix various issues Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 2 +- library/ssl_tls.c | 23 +++++++++++++---------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index bd9edf15f..2c5f66494 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -79,7 +79,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); if( ssl->session_negotiate->hostname == NULL ) - return MBEDTLS_ERR_SSL_ALLOC_FAILED; + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); } ssl->session_negotiate->hostname_len = hostname_len; diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 923876163..fa4e6930e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -300,12 +300,11 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + dst->hostname = mbedtls_calloc( 1, src->hostname_len ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( dst->hostname, src->hostname, src->hostname_len ); - dst->hostname[src->hostname_len] = '\0'; } #endif @@ -1957,6 +1956,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; + * opaque hostname<1..2^8-1>; * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -2021,14 +2021,14 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; + p[0] = session->hostname_len; + p++; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && - session->hostname_len != 0 && + session->hostname_len > 0 && session->hostname != NULL ) { /* save host name */ - p[0] = session->hostname_len; - p++; memcpy( p, session->hostname, session->hostname_len ); p += session->hostname_len; } @@ -2100,11 +2100,14 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, p += 1; if( end - p < session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname = mbedtls_calloc( 1, session->hostname_len ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, session->hostname_len ); - p += session->hostname_len; + if( session->hostname_len > 0 ) + { + session->hostname = mbedtls_calloc( 1, session->hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, session->hostname_len ); + p += session->hostname_len; + } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ From 6af2a6da74c62b8e788f40d9e377042404a6f328 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 10:50:19 +0000 Subject: [PATCH 0176/1574] Fix session save-load overflow issue Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index fa4e6930e..6a0a67800 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,14 +297,15 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->hostname != NULL ) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { dst->hostname = mbedtls_calloc( 1, src->hostname_len ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( dst->hostname, src->hostname, src->hostname_len ); + dst->hostname_len = src->hostname_len; } #endif @@ -1945,6 +1946,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( /* Serialization of TLS 1.3 sessions: * * struct { + * opaque hostname<1..2^16-1>; * uint64 ticket_received; * uint32 ticket_lifetime; * opaque ticket<1..2^16-1>; @@ -1956,7 +1958,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; - * opaque hostname<1..2^8-1>; + * * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -2021,13 +2023,13 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; - p[0] = session->hostname_len; - p++; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT && - session->hostname_len > 0 && - session->hostname != NULL ) + if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + p[0] = session->hostname_len; + p++; + if ( session->hostname_len > 0 && + session->hostname != NULL ) /* save host name */ memcpy( p, session->hostname, session->hostname_len ); p += session->hostname_len; @@ -2096,8 +2098,11 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { /* load host name */ + if( end - p < 1 ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); session->hostname_len = p[0]; p += 1; + if( end - p < session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( session->hostname_len > 0 ) From be98f96de2dc7f41497c87e2b48bcaaf6f4d2a6e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 11:09:20 +0000 Subject: [PATCH 0177/1574] Remove useless hostname check in server side Signed-off-by: Xiaokang Qian --- library/ssl_tls13_server.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 60b1e05f4..61a1bad57 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -235,20 +235,6 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( (int)age_diff_in_ms ) ); goto exit; } -#if 0 -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->session_negotiate->hostname != NULL && - ssl->session_negotiate->hostname_len != 0 && - memcmp( ssl->session_negotiate->hostname, - ssl->session->hostname, ssl->session->hostname_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Session hostname not matched with stored session ticket" ) ); - goto exit; - } - -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ -#endif ret = 0; From fb8ac46add99338d5c706555e2621d880f0c1090 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sat, 8 Oct 2022 11:09:54 +0000 Subject: [PATCH 0178/1574] Change the name of servername when re-connect Signed-off-by: Xiaokang Qian --- programs/ssl/ssl_client2.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index bc9335270..a7705ac9f 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -366,7 +366,6 @@ int main( void ) "\n usage: ssl_client2 param=<>...\n" \ "\n acceptable parameters:\n" \ " server_name=%%s default: localhost\n" \ - " rec_server_name=%%s default: localhost\n" \ " server_addr=%%s default: given by name\n" \ " server_port=%%d default: 4433\n" \ " request_page=%%s default: \".\"\n" \ @@ -406,6 +405,7 @@ int main( void ) " exchanges=%%d default: 1\n" \ " reconnect=%%d number of reconnections using session resumption\n" \ " default: 0 (disabled)\n" \ + " reco_server_name=%%s default: localhost\n" \ " reco_delay=%%d default: 0 seconds\n" \ " reco_mode=%%d 0: copy session, 1: serialize session\n" \ " default: 1\n" \ @@ -456,7 +456,6 @@ int main( void ) struct options { const char *server_name; /* hostname of the server (client only) */ - const char *rec_s_name; /* hostname of the server (re-connect) */ const char *server_addr; /* address of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -500,6 +499,7 @@ struct options int recsplit; /* enable record splitting? */ int dhmlen; /* minimum DHM params len in bits */ int reconnect; /* attempt to resume session */ + const char *reco_server_name; /* hostname of the server (re-connect) */ int reco_delay; /* delay in seconds before resuming session */ int reco_mode; /* how to keep the session around */ int reconnect_hard; /* unexpectedly reconnect from the same port */ @@ -878,7 +878,6 @@ int main( int argc, char *argv[] ) } opt.server_name = DFL_SERVER_NAME; - opt.rec_s_name = DFL_SERVER_NAME; opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; @@ -926,6 +925,7 @@ int main( int argc, char *argv[] ) opt.recsplit = DFL_RECSPLIT; opt.dhmlen = DFL_DHMLEN; opt.reconnect = DFL_RECONNECT; + opt.reco_server_name = DFL_SERVER_NAME; opt.reco_delay = DFL_RECO_DELAY; opt.reco_mode = DFL_RECO_MODE; opt.reconnect_hard = DFL_RECONNECT_HARD; @@ -964,8 +964,6 @@ int main( int argc, char *argv[] ) if( strcmp( p, "server_name" ) == 0 ) opt.server_name = q; - else if( strcmp( p, "rec_server_name" ) == 0 ) - opt.rec_s_name = q; else if( strcmp( p, "server_addr" ) == 0 ) opt.server_addr = q; else if( strcmp( p, "server_port" ) == 0 ) @@ -1124,6 +1122,8 @@ int main( int argc, char *argv[] ) if( opt.reconnect < 0 || opt.reconnect > 2 ) goto usage; } + else if( strcmp( p, "rec_server_name" ) == 0 ) + opt.reco_server_name = q; else if( strcmp( p, "reco_delay" ) == 0 ) { opt.reco_delay = atoi( q ); @@ -3120,7 +3120,7 @@ reconnect: #if defined(MBEDTLS_X509_CRT_PARSE_C) if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, - opt.rec_s_name ) ) != 0 ) + opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", ret ); From adf84a4a8c036268beed5b92a7430e30b905b91a Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sun, 9 Oct 2022 09:21:22 +0000 Subject: [PATCH 0179/1574] Remove public api mbedtls_ssl_reset_hostname() Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 26 +++----------------------- library/ssl_tls.c | 33 --------------------------------- programs/ssl/ssl_client2.c | 4 ++-- tests/ssl-opt.sh | 2 +- 4 files changed, 6 insertions(+), 59 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 5e493f5f2..e6c545e05 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1182,7 +1182,6 @@ struct mbedtls_ssl_session #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) - uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ uint8_t MBEDTLS_PRIVATE(ticket_flags); /*!< Ticket flags */ uint32_t MBEDTLS_PRIVATE(ticket_age_add); /*!< Randomly generated value used to obscure the age of the ticket */ uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ @@ -1200,12 +1199,14 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); -#endif + + uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; /* @@ -3667,27 +3668,6 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * On too long input failure, old hostname is unchanged. */ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); - -/** - * \brief Reset the hostname to the new server name when reconnection. - * - * \param ssl SSL context - * \param hostname the server hostname, may be NULL - * \param rec_hostname the server rec_hostname, may be NULL - - * \note Maximum hostname length MBEDTLS_SSL_MAX_HOST_NAME_LEN. - * - * \return 0 if successful, MBEDTLS_ERR_SSL_ALLOC_FAILED on - * allocation failure, MBEDTLS_ERR_SSL_BAD_INPUT_DATA on - * too long input rec_hostname. - * - * Rec_hostname set to the one provided on success. - * On allocation failure hostname is unchanged. - * On too long input failure, old hostname is unchanged. - */ -int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, - const char *hostname, - const char *rec_hostname ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6a0a67800..abadc80d0 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -2484,39 +2484,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) return( 0 ); } - -int mbedtls_ssl_reset_hostname( mbedtls_ssl_context *ssl, - const char *hostname, - const char *rec_hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t rec_hostname_len = 0; - - if( hostname == NULL || rec_hostname == NULL ) - return( 0 ); - - rec_hostname_len = strlen( rec_hostname ); - if( rec_hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( rec_hostname_len == strlen( hostname ) && - memcmp( hostname, rec_hostname, rec_hostname_len ) == 0 ) - return( 0 ); - - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); - ssl->hostname = NULL; - ssl->hostname = mbedtls_calloc( 1, rec_hostname_len + 1 ); - if( ssl->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( ssl->hostname, rec_hostname, rec_hostname_len ); - ssl->hostname[rec_hostname_len] = '\0'; - } - - return( 0 ); -} #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index a7705ac9f..9102ab40a 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3119,10 +3119,10 @@ reconnect: } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ( ret = mbedtls_ssl_reset_hostname( &ssl, opt.server_name, + if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.reco_server_name ) ) != 0 ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_reset_hostname returned %d\n\n", + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); goto exit; } diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 414b8607b..2a63610df 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12909,7 +12909,7 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ -c "Reconnecting with saved session" \ - -c "hostname mismatch the session ticker, should not resume" \ + -c "hostname mismatch the session ticket, should not resume" \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" From bc663a04612be598fad51ecf5450345196ee50ae Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Sun, 9 Oct 2022 11:14:39 +0000 Subject: [PATCH 0180/1574] Refine code based on commnets Change code layout Change hostname_len type to size_t Fix various issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 3 +-- library/ssl_client.c | 46 ++++++++++++++++++++++-------------- library/ssl_misc.h | 4 ++++ library/ssl_tls.c | 37 ++++++++++++++++------------- library/ssl_tls13_generic.c | 47 +++++++++++++++++++++++++++++++++++++ programs/ssl/ssl_client2.c | 2 +- 6 files changed, 102 insertions(+), 37 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index e6c545e05..93ad7f351 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1202,9 +1202,8 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - uint8_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ + size_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ - uint8_t hostname_mismatch; /*!< whether new host_name match with saved one */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 2c5f66494..8080e3ee7 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -54,7 +54,6 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, { unsigned char *p = buf; size_t hostname_len; - size_t cmp_hostname_len; *olen = 0; @@ -65,25 +64,8 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, ( "client hello, adding server name extension: %s", ssl->hostname ) ); - ssl->session_negotiate->hostname_mismatch = 0; hostname_len = strlen( ssl->hostname ); - cmp_hostname_len = hostname_len < ssl->session_negotiate->hostname_len ? - hostname_len : ssl->session_negotiate->hostname_len; - - if( hostname_len != ssl->session_negotiate->hostname_len || - memcmp( ssl->hostname, ssl->session_negotiate->hostname, cmp_hostname_len ) ) - ssl->session_negotiate->hostname_mismatch = 1; - - if( ssl->session_negotiate->hostname == NULL ) - { - ssl->session_negotiate->hostname = mbedtls_calloc( 1, hostname_len ); - if( ssl->session_negotiate->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy(ssl->session_negotiate->hostname, ssl->hostname, hostname_len); - } - ssl->session_negotiate->hostname_len = hostname_len; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); /* @@ -888,6 +870,34 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( ssl->handshake->resume ) + { + if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + { + if( strcmp( ssl->hostname, ssl->session_negotiate->hostname ) ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname mismatch the session ticket, should not resume " ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + } + else if( ssl->session_negotiate->hostname != NULL ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname missed, should not resume " ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } + } + else + { + mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ + return( 0 ); } /* diff --git a/library/ssl_misc.h b/library/ssl_misc.h index afacb76f0..f92a4dbec 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2201,6 +2201,10 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( return( 1 ); } +#if defined(MBEDTLS_X509_CRT_PARSE_C) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, + const char *hostname ); +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index abadc80d0..959d01540 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -297,14 +297,16 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len ); + dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( dst->hostname, src->hostname, src->hostname_len ); + strcpy( dst->hostname, src->hostname ); dst->hostname_len = src->hostname_len; } #endif @@ -1958,7 +1960,6 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( * uint32 ticket_age_add; * uint8 ticket_flags; * opaque resumption_key<0..255>; - * * select ( endpoint ) { * case client: ClientOnlyData; * case server: uint64 start_time; @@ -1993,7 +1994,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - needed += 1 /* hostname_len */ + needed += 2 /* hostname_len */ + session->hostname_len; /* hostname */ #endif @@ -2026,13 +2027,15 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - p[0] = session->hostname_len; - p++; + MBEDTLS_PUT_UINT16_BE( session->hostname_len, p, 0 ); + p += 2; if ( session->hostname_len > 0 && session->hostname != NULL ) - /* save host name */ - memcpy( p, session->hostname, session->hostname_len ); - p += session->hostname_len; + { + /* save host name */ + memcpy( p, session->hostname, session->hostname_len ); + p += session->hostname_len; + } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ @@ -2098,19 +2101,20 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { /* load host name */ - if( end - p < 1 ) + if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname_len = p[0]; - p += 1; + session->hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + p += 2; - if( end - p < session->hostname_len ) + if( end - p < ( long int )session->hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( session->hostname_len > 0 ) { - session->hostname = mbedtls_calloc( 1, session->hostname_len ); + session->hostname = mbedtls_calloc( 1, session->hostname_len + 1 ); if( session->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); memcpy( session->hostname, p, session->hostname_len ); + session->hostname[session->hostname_len] = '\0'; p += session->hostname_len; } } @@ -3733,7 +3737,8 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) mbedtls_free( session->ticket ); #endif -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) mbedtls_free( session->hostname ); #endif diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index abb7a1481..1b827ac60 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,4 +1485,51 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_X509_CRT_PARSE_C) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + + if( ssl->hostname != NULL ) + { + mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); + mbedtls_free( ssl->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + + if( hostname == NULL ) + { + ssl->hostname = NULL; + } + else + { + ssl->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( ssl->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( ssl->hostname, hostname, hostname_len ); + + ssl->hostname[hostname_len] = '\0'; + ssl->hostname_len = hostname_len; + } + + return( 0 ); +} +#endif /* MBEDTLS_X509_CRT_PARSE_C */ #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 9102ab40a..be474d473 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3120,7 +3120,7 @@ reconnect: #if defined(MBEDTLS_X509_CRT_PARSE_C) if( ( ret = mbedtls_ssl_set_hostname( &ssl, - opt.reco_server_name ) ) != 0 ) + opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); From 2f9efd3038468da8760149d17716b4ec3bb0c5b3 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 10 Oct 2022 11:24:08 +0000 Subject: [PATCH 0181/1574] Address comments base on review Change function name to ssl_session_set_hostname() Remove hostname_len Change hostname to c_string Update test cases to multi session tickets Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 1 - library/ssl_client.c | 56 +++++++++++++++++++++++++++++++++++-- library/ssl_misc.h | 5 ---- library/ssl_tls.c | 32 +++++++++++---------- library/ssl_tls13_generic.c | 47 ------------------------------- tests/ssl-opt.sh | 4 +-- 6 files changed, 72 insertions(+), 73 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 93ad7f351..0efc8e7c8 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1202,7 +1202,6 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - size_t MBEDTLS_PRIVATE(hostname_len); /*!< host_name length */ char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_client.c b/library/ssl_client.c index 8080e3ee7..0fda2712e 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -713,6 +713,51 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len ); return( ret ); } + +static int ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + + if( session->hostname != NULL ) + { + mbedtls_platform_zeroize( session->hostname, + strlen( session->hostname ) ); + mbedtls_free( session->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + + if( hostname == NULL ) + { + session->hostname = NULL; + } + else + { + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( session->hostname, hostname, hostname_len ); + } + + return( 0 ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { @@ -876,7 +921,12 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) { - if( strcmp( ssl->hostname, ssl->session_negotiate->hostname ) ) + size_t hostname_len = strlen( ssl->hostname ); + size_t negotiate_hostname_len = + strlen( ssl->session_negotiate->hostname ); + if( hostname_len != negotiate_hostname_len || \ + strncmp( ssl->hostname, ssl->session_negotiate->hostname, + hostname_len ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "hostname mismatch the session ticket, should not resume " ) ); @@ -892,8 +942,8 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } else { - mbedtls_ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); + ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index f92a4dbec..3ac81a365 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2200,11 +2200,6 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( } return( 1 ); } - -#if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, - const char *hostname ); -#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 959d01540..35e9fecf5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -302,12 +302,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) { - dst->hostname = mbedtls_calloc( 1, src->hostname_len + 1 ); + size_t hostname_len = strlen( src->hostname ); + dst->hostname = mbedtls_calloc( 1, hostname_len + 1 ); if( dst->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - strcpy( dst->hostname, src->hostname ); - dst->hostname_len = src->hostname_len; + strncpy( dst->hostname, src->hostname, hostname_len ); } #endif @@ -1993,9 +1993,10 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + size_t hostname_len = session->hostname == NULL?0:strlen( session->hostname ); #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ - + session->hostname_len; /* hostname */ + + hostname_len; /* hostname */ #endif needed += 4 /* ticket_lifetime */ @@ -2027,14 +2028,15 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - MBEDTLS_PUT_UINT16_BE( session->hostname_len, p, 0 ); + size_t hostname_len = session->hostname == NULL?0:strlen(session->hostname); + MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; - if ( session->hostname_len > 0 && + if ( hostname_len > 0 && session->hostname != NULL ) { /* save host name */ - memcpy( p, session->hostname, session->hostname_len ); - p += session->hostname_len; + memcpy( p, session->hostname, hostname_len ); + p += hostname_len; } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ @@ -2100,22 +2102,22 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + size_t hostname_len; /* load host name */ if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); p += 2; - if( end - p < ( long int )session->hostname_len ) + if( end - p < ( long int )hostname_len ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( session->hostname_len > 0 ) + if( hostname_len > 0 ) { - session->hostname = mbedtls_calloc( 1, session->hostname_len + 1 ); + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); if( session->hostname == NULL ) return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, session->hostname_len ); - session->hostname[session->hostname_len] = '\0'; - p += session->hostname_len; + memcpy( session->hostname, p, hostname_len ); + p += hostname_len; } } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1b827ac60..abb7a1481 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,51 +1485,4 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *ssl, - const char *hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t hostname_len = 0; - - /* Check if new hostname is valid before - * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); - - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - - /* Now it's clear that we will overwrite the old hostname, - * so we can free it safely */ - - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); - } - - /* Passing NULL as hostname shall clear the old one */ - - if( hostname == NULL ) - { - ssl->hostname = NULL; - } - else - { - ssl->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( ssl->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( ssl->hostname, hostname, hostname_len ); - - ssl->hostname[hostname_len] = '\0'; - ssl->hostname_len = hostname_len; - } - - return( 0 ); -} -#endif /* MBEDTLS_X509_CRT_PARSE_C */ #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 2a63610df..2be5506a4 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12879,7 +12879,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ "$P_CLI debug_level=4 server_name=localhost reco_mode=1 reconnect=1" \ 0 \ @@ -12901,7 +12901,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=1 \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ 1 \ From a3b451f9502b495171a2df825dc78be6452b286f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 11 Oct 2022 06:20:56 +0000 Subject: [PATCH 0182/1574] Adress kinds of comments base on review Rename function name to mbedtls_ssl_session_set_hostname Add two extra check cases for server name Fix some coding styles Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 81 ++++++++++---------------------------------- library/ssl_misc.h | 7 ++++ library/ssl_tls.c | 67 +++++++++++++++++++++++++++++------- 3 files changed, 80 insertions(+), 75 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 0fda2712e..993539573 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -714,50 +714,6 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) return( ret ); } -static int ssl_session_set_hostname( mbedtls_ssl_session *session, - const char *hostname ) -{ - /* Initialize to suppress unnecessary compiler warning */ - size_t hostname_len = 0; - - /* Check if new hostname is valid before - * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); - - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - - /* Now it's clear that we will overwrite the old hostname, - * so we can free it safely */ - - if( session->hostname != NULL ) - { - mbedtls_platform_zeroize( session->hostname, - strlen( session->hostname ) ); - mbedtls_free( session->hostname ); - } - - /* Passing NULL as hostname shall clear the old one */ - - if( hostname == NULL ) - { - session->hostname = NULL; - } - else - { - session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( session->hostname, hostname, hostname_len ); - } - - return( 0 ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) { @@ -917,34 +873,33 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->resume ) + if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->handshake->resume ) { - if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + int hostname_mismatch = 0; + if( ssl->session_negotiate->hostname != NULL ) { - size_t hostname_len = strlen( ssl->hostname ); - size_t negotiate_hostname_len = - strlen( ssl->session_negotiate->hostname ); - if( hostname_len != negotiate_hostname_len || \ - strncmp( ssl->hostname, ssl->session_negotiate->hostname, - hostname_len ) ) + if( ssl->hostname != NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket, should not resume " ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if( strcmp( ssl->hostname, ssl->session_negotiate->hostname) ) + hostname_mismatch = 1; } + else + hostname_mismatch = 1; } - else if( ssl->session_negotiate->hostname != NULL ) + else + hostname_mismatch = ssl->hostname != NULL; + + if( hostname_mismatch ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname missed, should not resume " ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "hostname mismatch the session ticket, should not resume " ) ); + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } else - { - ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); - } + mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 3ac81a365..f20897d1c 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2200,6 +2200,7 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( } return( 1 ); } + #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -2493,4 +2494,10 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( unsigned char *buf, unsigned char *end ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ); +#endif + #endif /* ssl_misc.h */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 35e9fecf5..062259b5c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -300,14 +300,11 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT && src->hostname != NULL ) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = strlen( src->hostname ); - dst->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( dst->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - strncpy( dst->hostname, src->hostname, hostname_len ); + dst->hostname = NULL; + mbedtls_ssl_session_set_hostname( dst, + src->hostname ); } #endif @@ -1975,6 +1972,11 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, size_t *olen ) { unsigned char *p = buf; +#if defined(MBEDTLS_SSL_CLI_C) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + size_t hostname_len = ( session->hostname == NULL ) ? + 0 : strlen( session->hostname ); +#endif size_t needed = 1 /* endpoint */ + 2 /* ciphersuite */ + 4 /* ticket_age_add */ @@ -1993,7 +1995,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = session->hostname == NULL?0:strlen( session->hostname ); #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ @@ -2028,7 +2029,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { - size_t hostname_len = session->hostname == NULL?0:strlen(session->hostname); MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; if ( hostname_len > 0 && @@ -2106,7 +2106,7 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, /* load host name */ if( end - p < 2 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 0); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); p += 2; if( end - p < ( long int )hostname_len ) @@ -2464,7 +2464,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ - if( ssl->hostname != NULL ) { mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); @@ -2472,7 +2471,6 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) } /* Passing NULL as hostname shall clear the old one */ - if( hostname == NULL ) { ssl->hostname = NULL; @@ -8863,4 +8861,49 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_ALPN */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, + const char *hostname ) +{ + /* Initialize to suppress unnecessary compiler warning */ + size_t hostname_len = 0; + + /* Check if new hostname is valid before + * making any change to current one */ + if( hostname != NULL ) + { + hostname_len = strlen( hostname ); + + if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + } + + /* Now it's clear that we will overwrite the old hostname, + * so we can free it safely */ + if( session->hostname != NULL ) + { + mbedtls_platform_zeroize( session->hostname, + strlen( session->hostname ) ); + mbedtls_free( session->hostname ); + } + + /* Passing NULL as hostname shall clear the old one */ + if( hostname == NULL ) + { + session->hostname = NULL; + } + else + { + session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( session->hostname, hostname, hostname_len ); + } + + return( 0 ); +} +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ + #endif /* MBEDTLS_SSL_TLS_C */ From d7adc374d325dea0647e0c0c99b1270046116f90 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 11 Oct 2022 09:05:11 +0000 Subject: [PATCH 0183/1574] Refine the server name compare logic Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 993539573..48a19c9e4 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -876,19 +876,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ssl->handshake->resume ) { - int hostname_mismatch = 0; - if( ssl->session_negotiate->hostname != NULL ) - { - if( ssl->hostname != NULL ) - { - if( strcmp( ssl->hostname, ssl->session_negotiate->hostname) ) - hostname_mismatch = 1; - } - else - hostname_mismatch = 1; - } - else - hostname_mismatch = ssl->hostname != NULL; + int hostname_mismatch = ssl->hostname != NULL || + ssl->session_negotiate->hostname != NULL; + if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + hostname_mismatch = strcmp( + ssl->hostname, ssl->session_negotiate->hostname ) != 0; if( hostname_mismatch ) { From 03409290d2bd418d0e105f1283b131f5dbe15d6f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 02:49:52 +0000 Subject: [PATCH 0184/1574] Add MBEDTLS_SSL_SESSION_TICKETS guard to server name check Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 7 ++++--- library/ssl_client.c | 11 ++++++++--- library/ssl_misc.h | 2 ++ library/ssl_tls.c | 30 ++++++++++++++++++++++-------- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 0efc8e7c8..4cf67044a 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1182,6 +1182,7 @@ struct mbedtls_ssl_session #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ uint8_t MBEDTLS_PRIVATE(ticket_flags); /*!< Ticket flags */ uint32_t MBEDTLS_PRIVATE(ticket_age_add); /*!< Randomly generated value used to obscure the age of the ticket */ uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ @@ -1200,10 +1201,10 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); - uint8_t MBEDTLS_PRIVATE(endpoint); /*!< 0: client, 1: server */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_SESSION_TICKETS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 48a19c9e4..baf82a69d 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -872,6 +872,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ssl->handshake->resume ) @@ -885,14 +886,18 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( hostname_mismatch ) { MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket, should not resume " ) ); + ( "hostname mismatch the session ticket," + " should not resume " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } else - mbedtls_ssl_session_set_hostname( ssl->session_negotiate, - ssl->hostname ); + { + return mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + ssl->hostname ); + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SERVER_NAME_INDICATION */ return( 0 ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index f20897d1c..6ba9ad519 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2495,7 +2495,9 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); #endif diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 062259b5c..6563b907c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -298,13 +298,14 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { dst->hostname = NULL; - mbedtls_ssl_session_set_hostname( dst, - src->hostname ); + return mbedtls_ssl_session_set_hostname( dst, + src->hostname ); } #endif @@ -1973,6 +1974,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, { unsigned char *p = buf; #if defined(MBEDTLS_SSL_CLI_C) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) size_t hostname_len = ( session->hostname == NULL ) ? 0 : strlen( session->hostname ); @@ -1995,7 +1997,8 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ #endif @@ -2026,7 +2029,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); @@ -2039,7 +2044,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, p += hostname_len; } } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -2099,7 +2106,9 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { size_t hostname_len; @@ -2120,7 +2129,9 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, p += hostname_len; } } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -8862,6 +8873,7 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) @@ -8904,6 +8916,8 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, return( 0 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SESSION_TICKETS && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_TLS_C */ From ed0620cb1372f8e17da6d771bc26a8f41089bfe2 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 06:58:13 +0000 Subject: [PATCH 0185/1574] Refine code base on comments Move code to proper macro guards protection Fix typo issues Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 6 +-- library/ssl_misc.h | 3 +- library/ssl_tls.c | 101 +++++++++++++++++++------------------------ tests/ssl-opt.sh | 2 +- 4 files changed, 51 insertions(+), 61 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index baf82a69d..341e882cc 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -885,9 +885,9 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) if( hostname_mismatch ) { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "hostname mismatch the session ticket," - " should not resume " ) ); + MBEDTLS_SSL_DEBUG_MSG( + 1, ( "Hostname mismatch the session ticket, " + "disable session resumption." ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } } diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 6ba9ad519..82a0d5c8a 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2496,7 +2496,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_TLS_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6563b907c..521b922b7 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -295,12 +295,9 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, memcpy( dst->ticket, src->ticket, src->ticket_len ); } -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_CLI_C) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { dst->hostname = NULL; @@ -308,6 +305,7 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, src->hostname ); } #endif +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ return( 0 ); } @@ -1974,10 +1972,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, { unsigned char *p = buf; #if defined(MBEDTLS_SSL_CLI_C) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) size_t hostname_len = ( session->hostname == NULL ) ? - 0 : strlen( session->hostname ); + 0 : strlen( session->hostname ) + 1; #endif size_t needed = 1 /* endpoint */ + 2 /* ciphersuite */ @@ -2029,24 +2026,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); - p += 2; - if ( hostname_len > 0 && - session->hostname != NULL ) - { - /* save host name */ - memcpy( p, session->hostname, hostname_len ); - p += hostname_len; - } - } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) @@ -2059,6 +2039,17 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); + p += 2; + if ( hostname_len > 0 ) + { + /* save host name */ + memcpy( p, session->hostname, hostname_len ); + p += hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ + #if defined(MBEDTLS_HAVE_TIME) MBEDTLS_PUT_UINT64_BE( (uint64_t) session->ticket_received, p, 0 ); p += 8; @@ -2106,33 +2097,6 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, memcpy( session->resumption_key, p, session->resumption_key_len ); p += session->resumption_key_len; -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - size_t hostname_len; - /* load host name */ - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); - p += 2; - - if( end - p < ( long int )hostname_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( hostname_len > 0 ) - { - session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, hostname_len ); - p += hostname_len; - } - } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_CLI_C */ - #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { @@ -2146,6 +2110,28 @@ static int ssl_tls13_session_load( mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_SESSION_TICKETS) + size_t hostname_len; + /* load host name */ + if( end - p < 2 ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + p += 2; + + if( end - p < ( long int )hostname_len ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if( hostname_len > 0 ) + { + session->hostname = mbedtls_calloc( 1, hostname_len ); + if( session->hostname == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + memcpy( session->hostname, p, hostname_len ); + p += hostname_len; + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_SESSION_TICKETS */ + #if defined(MBEDTLS_HAVE_TIME) if( end - p < 8 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -2475,6 +2461,7 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ + if( ssl->hostname != NULL ) { mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); @@ -2482,6 +2469,7 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) } /* Passing NULL as hostname shall clear the old one */ + if( hostname == NULL ) { ssl->hostname = NULL; @@ -3745,13 +3733,12 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - mbedtls_free( session->ticket ); -#endif - #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) mbedtls_free( session->hostname ); #endif + mbedtls_free( session->ticket ); +#endif mbedtls_platform_zeroize( session, sizeof( mbedtls_ssl_session ) ); } @@ -8874,7 +8861,8 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ + defined(MBEDTLS_SSL_TLS_C) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) { @@ -8918,6 +8906,7 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && - MBEDTLS_SSL_SERVER_NAME_INDICATION */ + MBEDTLS_SSL_SERVER_NAME_INDICATION && + MBEDTLS_SSL_TLS_C */ #endif /* MBEDTLS_SSL_TLS_C */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 2be5506a4..f6437f515 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12909,7 +12909,7 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -c "got new session ticket." \ -c "Saving session for reuse... ok" \ -c "Reconnecting with saved session" \ - -c "hostname mismatch the session ticket, should not resume" \ + -c "Hostname mismatch the session ticket, disable session resumption." \ -s "=> write NewSessionTicket msg" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" From ed3afcd6c31a12e33fe02a70d646dcf4f90e3259 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 08:31:11 +0000 Subject: [PATCH 0186/1574] Fix various typo and macro guards issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 8 ++++---- library/ssl_client.c | 2 ++ library/ssl_misc.h | 2 +- library/ssl_tls.c | 4 ++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 4cf67044a..88ccb27c4 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1188,6 +1188,10 @@ struct mbedtls_ssl_session uint8_t MBEDTLS_PRIVATE(resumption_key_len); /*!< resumption_key length */ unsigned char MBEDTLS_PRIVATE(resumption_key)[MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN]; +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && defined(MBEDTLS_SSL_CLI_C) + char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_CLI_C) mbedtls_time_t MBEDTLS_PRIVATE(ticket_received); /*!< time ticket was received */ #endif /* MBEDTLS_HAVE_TIME && MBEDTLS_SSL_CLI_C */ @@ -1201,10 +1205,6 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) - char *MBEDTLS_PRIVATE(hostname); /*!< host name binded with tickets */ -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_SESSION_TICKETS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ }; diff --git a/library/ssl_client.c b/library/ssl_client.c index 341e882cc..10566deaa 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -880,8 +880,10 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) int hostname_mismatch = ssl->hostname != NULL || ssl->session_negotiate->hostname != NULL; if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + { hostname_mismatch = strcmp( ssl->hostname, ssl->session_negotiate->hostname ) != 0; + } if( hostname_mismatch ) { diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 82a0d5c8a..828937c3f 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2497,7 +2497,7 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_TLS_C) + defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 521b922b7..c67745513 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8862,7 +8862,7 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_TLS_C) + defined(MBEDTLS_SSL_CLI_C) int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, const char *hostname ) { @@ -8907,6 +8907,6 @@ int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SERVER_NAME_INDICATION && - MBEDTLS_SSL_TLS_C */ + MBEDTLS_SSL_CLI_C */ #endif /* MBEDTLS_SSL_TLS_C */ From 8730644da1601547e3aaf4c551fcc993ada95b5a Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 09:47:38 +0000 Subject: [PATCH 0187/1574] Move ticket and hostname set code just after shallow-copy Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c67745513..d37102657 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -245,8 +245,25 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, memcpy( dst, src, sizeof( mbedtls_ssl_session ) ); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - dst->ticket = NULL; + if( src->ticket != NULL ) + { + dst->ticket = mbedtls_calloc( 1, src->ticket_len ); + if( dst->ticket == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->ticket, src->ticket, src->ticket_len ); + } + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + dst->hostname = NULL; + return mbedtls_ssl_session_set_hostname( dst, + src->hostname ); + } #endif +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -286,27 +303,6 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( src->ticket != NULL ) - { - dst->ticket = mbedtls_calloc( 1, src->ticket_len ); - if( dst->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( dst->ticket, src->ticket, src->ticket_len ); - } - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - dst->hostname = NULL; - return mbedtls_ssl_session_set_hostname( dst, - src->hostname ); - } -#endif -#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ - return( 0 ); } From baa4764d770ba5829453755d77610f215ba7e84e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 10:21:27 +0000 Subject: [PATCH 0188/1574] Fix typo issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 3 +-- library/ssl_tls.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 88ccb27c4..09b1dfcf8 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1204,8 +1204,7 @@ struct mbedtls_ssl_session #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_application_secrets MBEDTLS_PRIVATE(app_secrets); - -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif }; /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index d37102657..2de52314d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -262,7 +262,7 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, return mbedtls_ssl_session_set_hostname( dst, src->hostname ); } -#endif +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -2022,8 +2022,6 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, memcpy( p, session->resumption_key, session->resumption_key_len ); p += session->resumption_key_len; - - #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) { From 307a7303fda210f86be5ac04d4a677337ae0b719 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 11:14:32 +0000 Subject: [PATCH 0189/1574] Rebase and replace session_negotiate Signed-off-by: Xiaokang Qian --- library/ssl_client.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 10566deaa..9e4f0218f 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -878,11 +878,11 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) ssl->handshake->resume ) { int hostname_mismatch = ssl->hostname != NULL || - ssl->session_negotiate->hostname != NULL; - if( ssl->hostname != NULL && ssl->session_negotiate->hostname != NULL ) + session_negotiate->hostname != NULL; + if( ssl->hostname != NULL && session_negotiate->hostname != NULL ) { hostname_mismatch = strcmp( - ssl->hostname, ssl->session_negotiate->hostname ) != 0; + ssl->hostname, session_negotiate->hostname ) != 0; } if( hostname_mismatch ) @@ -895,7 +895,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } else { - return mbedtls_ssl_session_set_hostname( ssl->session_negotiate, + return mbedtls_ssl_session_set_hostname( session_negotiate, ssl->hostname ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && From 997669aeeba045e8573a1c49f5922f8aa4d4f85f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 12 Oct 2022 14:30:27 +0000 Subject: [PATCH 0190/1574] Fix heap use-after-free corruption issue Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 2de52314d..a36f5b1f1 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -258,9 +258,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) { + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; dst->hostname = NULL; - return mbedtls_ssl_session_set_hostname( dst, - src->hostname ); + ret = mbedtls_ssl_session_set_hostname( dst, + src->hostname ); + if( ret != 0) + return ret; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ From 7c195160df1141640920d0ce7226024db73355df Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 16:27:14 +0100 Subject: [PATCH 0191/1574] Update documentation links Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 6 +++--- README.md | 14 ++++++++------ SUPPORT.md | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 319f02d20..66fe5f1af 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,7 +7,7 @@ We gratefully accept bug reports and contributions from the community. There are Coding Standards ---------------- -- We would ask that contributions conform to [our coding standards](https://tls.mbed.org/kb/development/mbedtls-coding-standards), and that contributions are fully tested before submission, as mentioned in the [Tests](#tests) and [Continuous Integration](#continuous-integration-tests) sections. +- We would ask that contributions conform to [our coding standards](https://mbed-tls.readthedocs.io/en/latest/kb/development/mbedtls-coding-standards/), and that contributions are fully tested before submission, as mentioned in the [Tests](#tests) and [Continuous Integration](#continuous-integration-tests) sections. - The code should be written in a clean and readable style. - The code should be written in a portable generic way, that will benefit the whole community, and not only your own needs. - The code should be secure, and will be reviewed from a security point of view as well. @@ -56,7 +56,7 @@ As mentioned, tests that show the correctness of the feature or bug fix should b Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_mpi.c`). These files are generated from a `function file` (e.g. `suites/test_suite_mpi.function`) and a `data file` (e.g. `suites/test_suite_mpi.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. -[A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://tls.mbed.org/kb/development/test_suites). +[A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://mbed-tls.readthedocs.io/en/latest/kb/development/test_suites/). A test script `tests/scripts/basic-build-test.sh` is available to show test coverage of the library. New code contributions should provide a similar level of code coverage to that which already exists for the library. @@ -75,7 +75,7 @@ Mbed TLS is well documented, but if you think documentation is needed, speak out 1. All interfaces should be documented through Doxygen. New APIs should introduce Doxygen documentation. 1. Complex parts in the code should include comments. 1. If needed, a Readme file is advised. -1. If a [Knowledge Base (KB)](https://tls.mbed.org/kb) article should be added, write this as a comment in the PR description. +1. If a [Knowledge Base (KB)](https://mbed-tls.readthedocs.io/en/latest/kb/) article should be added, write this as a comment in the PR description. 1. A [ChangeLog](https://github.com/Mbed-TLS/mbedtls/blob/development/ChangeLog.d/00README.md) entry should be added for this contribution. License and Copyright diff --git a/README.md b/README.md index 8978fafb6..859275991 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,9 @@ We provide some non-standard configurations focused on specific use cases in the Documentation ------------- -Documentation for the Mbed TLS interfaces in the default library configuration is available as part of the [Mbed TLS documentation](https://tls.mbed.org/api/). +The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). + +Documentation for the PSA Crypto interface is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: @@ -103,9 +105,9 @@ Setting the variable `SHARED` in your environment will build shared libraries in Please note that setting `CFLAGS` overrides its default value of `-O2` and setting `WARNING_CFLAGS` overrides its default value (starting with `-Wall -Wextra`), so if you just want to add some warning options to the default ones, you can do so by setting `CFLAGS=-O2 -Werror` for example. Setting `WARNING_CFLAGS` is useful when you want to get rid of its default content (for example because your compiler doesn't accept `-Wall` as an option). Directory-specific options cannot be overridden from the command line. -Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://tls.mbed.org/kb) for articles on your platform or issue. +Depending on your platform, you might run into some issues. Please check the Makefiles in `library/`, `programs/` and `tests/` for options to manually add or remove for specific platforms. You can also check [the Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/) for articles on your platform or issue. -In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://tls.mbed.org/kb). +In case you find that you need to do something else as well, please let us know what, so we can add it to the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/). ### CMake @@ -248,9 +250,9 @@ Porting Mbed TLS Mbed TLS can be ported to many different architectures, OS's and platforms. Before starting a port, you may find the following Knowledge Base articles useful: -- [Porting Mbed TLS to a new environment or OS](https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS) -- [What external dependencies does Mbed TLS rely on?](https://tls.mbed.org/kb/development/what-external-dependencies-does-mbedtls-rely-on) -- [How do I configure Mbed TLS](https://tls.mbed.org/kb/compiling-and-building/how-do-i-configure-mbedtls) +- [Porting Mbed TLS to a new environment or OS](https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS/) +- [What external dependencies does Mbed TLS rely on?](https://mbed-tls.readthedocs.io/en/latest/kb/development/what-external-dependencies-does-mbedtls-rely-on/) +- [How do I configure Mbed TLS](https://mbed-tls.readthedocs.io/en/latest/kb/compiling-and-building/how-do-i-configure-mbedtls/) Mbed TLS is mostly written in portable C99; however, it has a few platform requirements that go beyond the standard, but are met by most modern architectures: diff --git a/SUPPORT.md b/SUPPORT.md index dab7ac54f..8fec8b2a8 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -2,10 +2,10 @@ Here are some useful sources of information about using Mbed TLS: +- [ReadTheDocs](https://tls.mbed.org/kb); - API documentation, see the [Documentation section of the README](README.md#License); - the `docs` directory in the source tree; -- the [Mbed TLS knowledge Base](https://tls.mbed.org/kb); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From b319684bca4eabcfabe069aafc57c17820fe5b60 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 16:47:08 +0100 Subject: [PATCH 0192/1574] Additional updates to docs links Signed-off-by: Dave Rodgman --- ChangeLog | 2 +- SUPPORT.md | 2 +- docs/3.0-migration-guide.md | 2 +- docs/architecture/alternative-implementations.md | 2 +- docs/architecture/testing/test-framework.md | 2 +- docs/architecture/tls13-support.md | 2 +- include/mbedtls/mbedtls_config.h | 6 +++--- include/mbedtls/ssl.h | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6dfb23fa6..80b86175f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -463,7 +463,7 @@ API changes provides better randomness. Instead of HAVEGE, declare OS or hardware RNG interfaces with mbedtls_entropy_add_source() and/or use an entropy seed file created securely during device provisioning. See - https://tls.mbed.org/kb/how-to/add-entropy-sources-to-entropy-pool for + https://mbed-tls.readthedocs.io/en/latest/kb/how-to/add-entropy-sources-to-entropy-pool/ for more information. * Add missing const attributes to API functions. * Remove helpers for the transition from Mbed TLS 1.3 to Mbed TLS 2.0: the diff --git a/SUPPORT.md b/SUPPORT.md index 8fec8b2a8..2ef5b54eb 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -2,7 +2,7 @@ Here are some useful sources of information about using Mbed TLS: -- [ReadTheDocs](https://tls.mbed.org/kb); +- [ReadTheDocs](https://mbed-tls.readthedocs.io/); - API documentation, see the [Documentation section of the README](README.md#License); - the `docs` directory in the source tree; diff --git a/docs/3.0-migration-guide.md b/docs/3.0-migration-guide.md index 884810da5..63a13ad87 100644 --- a/docs/3.0-migration-guide.md +++ b/docs/3.0-migration-guide.md @@ -141,7 +141,7 @@ recommended), or users who used it through the entropy module but had it as the only source of entropy. If you're in that case, please declare OS or hardware RNG interfaces with `mbedtls_entropy_add_source()` and/or use an entropy seed file created securely during device provisioning. See - for more + for more information. ### Remove helpers for the transition from Mbed TLS 1.3 to Mbed TLS 2.0 diff --git a/docs/architecture/alternative-implementations.md b/docs/architecture/alternative-implementations.md index 7fe6332b4..eacdea7c3 100644 --- a/docs/architecture/alternative-implementations.md +++ b/docs/architecture/alternative-implementations.md @@ -38,7 +38,7 @@ The general principle of an alternative implementation is: * Create a header file `xxx_alt.h` that defines the context type(s) used by the module. For example, `mbedtls_aes_context` for AES. * Implement all the functions from the module, i.e. the functions declared in `include/mbedtls/xxx.h`. -See https://tls.mbed.org/kb/development/hw_acc_guidelines for a more detailed guide. +See https://mbed-tls.readthedocs.io/en/latest/kb/development/hw_acc_guidelines for a more detailed guide. ### Constraints on context types diff --git a/docs/architecture/testing/test-framework.md b/docs/architecture/testing/test-framework.md index d0d477611..7780949e1 100644 --- a/docs/architecture/testing/test-framework.md +++ b/docs/architecture/testing/test-framework.md @@ -6,7 +6,7 @@ This document is incomplete. You can help by expanding it. ## Unit tests -See +See ### Unit test descriptions diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 10da3c5ab..fc0087ff8 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -181,7 +181,7 @@ Coding rules checklist for TLS 1.3 The following coding rules are aimed to be a checklist for TLS 1.3 upstreaming work to reduce review rounds and the number of comments in each round. They come along (do NOT replace) the project coding rules -(https://tls.mbed.org/kb/development/mbedtls-coding-standards). They have been +(https://mbed-tls.readthedocs.io/en/latest/kb/development/mbedtls-coding-standards). They have been established and discussed following the review of #4882 that was the PR upstreaming the first part of TLS 1.3 ClientHello writing code. diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9e8ae37c7..7269f135b 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2552,7 +2552,7 @@ * * \note See also our Knowledge Base article about porting to a new * environment: - * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS * * Module: library/net_sockets.c * @@ -3108,7 +3108,7 @@ * contexts are not shared between threads. If you do intend to use contexts * between threads, you will need to enable this layer to prevent race * conditions. See also our Knowledge Base article about threading: - * https://tls.mbed.org/kb/development/thread-safety-and-multi-threading + * https://mbed-tls.readthedocs.io/en/latest/kb/development/thread-safety-and-multi-threading * * Module: library/threading.c * @@ -3140,7 +3140,7 @@ * * \note See also our Knowledge Base article about porting to a new * environment: - * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS * * Module: library/timing.c */ diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index eda6bc2f2..385c25029 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -2322,7 +2322,7 @@ int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, * here, except if using an event-driven style. * * \note See also the "DTLS tutorial" article in our knowledge base. - * https://tls.mbed.org/kb/how-to/dtls-tutorial + * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/dtls-tutorial */ void mbedtls_ssl_set_timer_cb( mbedtls_ssl_context *ssl, void *p_timer, From 7dbfed3b449abf2e993a887ea4a33bfcf7e2be8d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 12 Oct 2022 17:27:32 +0100 Subject: [PATCH 0193/1574] Improve wording re: PSA Crypto Signed-off-by: Dave Rodgman --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 859275991..9c9cf9112 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Documentation The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). -Documentation for the PSA Crypto interface is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). +Documentation for the PSA Cryptography API is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: From 126bf8e4d78b72420cb728f749e2973bf7e66fdc Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 13 Oct 2022 02:22:40 +0000 Subject: [PATCH 0194/1574] Address some comments Delete reference immediately after shallow copy Fix format issues Signed-off-by: Xiaokang Qian --- library/ssl_tls.c | 53 ++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a36f5b1f1..610df54b4 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -243,29 +243,12 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, { mbedtls_ssl_session_free( dst ); memcpy( dst, src, sizeof( mbedtls_ssl_session ) ); - #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( src->ticket != NULL ) - { - dst->ticket = mbedtls_calloc( 1, src->ticket_len ); - if( dst->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - memcpy( dst->ticket, src->ticket, src->ticket_len ); - } - + dst->ticket = NULL; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - dst->hostname = NULL; - ret = mbedtls_ssl_session_set_hostname( dst, - src->hostname ); - if( ret != 0) - return ret; - } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ + dst->hostname = NULL; +#endif #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -306,6 +289,29 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_X509_CRT_PARSE_C */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) + if( src->ticket != NULL ) + { + dst->ticket = mbedtls_calloc( 1, src->ticket_len ); + if( dst->ticket == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + + memcpy( dst->ticket, src->ticket, src->ticket_len ); + } + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) + { + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + ret = mbedtls_ssl_session_set_hostname( dst, src->hostname ); + if( ret != 0 ) + return ( ret ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && + MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ + return( 0 ); } @@ -1943,7 +1949,7 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( /* Serialization of TLS 1.3 sessions: * * struct { - * opaque hostname<1..2^16-1>; + * opaque hostname<0..2^16-1>; * uint64 ticket_received; * uint32 ticket_lifetime; * opaque ticket<1..2^16-1>; @@ -1993,8 +1999,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_CLI_C) if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) { -#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ - defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ + hostname_len; /* hostname */ #endif @@ -2039,7 +2044,7 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); p += 2; - if ( hostname_len > 0 ) + if( hostname_len > 0 ) { /* save host name */ memcpy( p, session->hostname, hostname_len ); From 072fad12d9783055e3d3e7ed68747217f2f10f67 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 13 Oct 2022 09:59:52 +0200 Subject: [PATCH 0195/1574] Disable MBEDTLS_SSL_TICKET_C in aead driver test. MBEDTLS_SSL_TICKET_C depends now on: MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C. All features are disabled in this config. Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 34028801d..0f31d9e44 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1961,6 +1961,7 @@ component_test_psa_crypto_config_accel_aead () { scripts/config.py unset MBEDTLS_CHACHAPOLY_C # Features that depend on AEAD scripts/config.py unset MBEDTLS_SSL_CONTEXT_SERIALIZATION + scripts/config.py unset MBEDTLS_SSL_TICKET_C loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" From 28af501cae7f74a352c9b4f0ab5b41768f653a8c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 13 Oct 2022 08:18:19 +0000 Subject: [PATCH 0196/1574] Fix the ticket_lifetime equal to 0 issue Signed-off-by: Xiaokang Qian --- library/ssl_tls13_server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 61a1bad57..c8a782750 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2848,7 +2848,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * MAY treat a ticket as valid for a shorter period of time than what * is stated in the ticket_lifetime. */ - ticket_lifetime %= 604800; + if( ticket_lifetime > 604800 ) + ticket_lifetime = 604800; MBEDTLS_PUT_UINT32_BE( ticket_lifetime, p, 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket_lifetime: %u", ( unsigned int )ticket_lifetime ) ); From b63a9ef09f6dd8d03ebcbf4b6c8744ffa90ef877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 6 Oct 2022 10:55:19 +0200 Subject: [PATCH 0197/1574] Fix buffer sizes in ecjpake_setup test function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, the error code changed from INSUFFICIENT_MEMORY to INVALID_DATA. Temporarily remove a test about aborting the operation on error. Auto-abort will be re-introduced in the next commit in a more systematic way. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_psa_crypto.function | 44 ++++++++++----------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 1b144df35..49887b5fc 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8740,6 +8740,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; + psa_pake_primitive_t primitive = primitive_arg; psa_key_type_t key_type_pw = key_type_pw_arg; psa_key_usage_t key_usage_pw = key_usage_pw_arg; psa_algorithm_t hash_alg = hash_arg; @@ -8757,9 +8758,9 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, PSA_INIT( ); - ASSERT_ALLOC( output_buffer, - PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, - PSA_PAKE_STEP_KEY_SHARE) ); + size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE); + ASSERT_ALLOC( output_buffer, buf_size ); if( pw_data->len > 0 ) { @@ -8771,7 +8772,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, } psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive ); psa_pake_cs_set_hash( &cipher_suite, hash_alg ); PSA_ASSERT( psa_pake_abort( &operation ) ); @@ -8825,6 +8826,13 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), PSA_ERROR_NOT_SUPPORTED ); + const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_KEY_SHARE ); + const size_t size_zk_public = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PUBLIC ); + const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PROOF ); + /* First round */ if( input_first ) { @@ -8833,28 +8841,23 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, 66 ), + output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, 66 ), + output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, 66 ), + output_buffer, size_key_share ), expected_status_input_output); if( expected_status_input_output == PSA_SUCCESS ) { /* Buffer too large */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 512 ), - PSA_ERROR_INSUFFICIENT_MEMORY ); - - /* The operation should be aborted at this point */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 66 ), - PSA_ERROR_BAD_STATE ); + output_buffer, size_zk_public + 1 ), + PSA_ERROR_INVALID_ARGUMENT ); } } else @@ -8864,15 +8867,15 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, 512, &output_len ), + output_buffer, buf_size, &output_len ), expected_status_input_output ); if( expected_status_input_output == PSA_SUCCESS ) @@ -8881,13 +8884,8 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, /* Buffer too small */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 5, &output_len ), + output_buffer, size_zk_public - 1, &output_len ), PSA_ERROR_BUFFER_TOO_SMALL ); - - /* The operation should be aborted at this point */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, 512, &output_len ), - PSA_ERROR_BAD_STATE ); } } From f155ab9a9102820d478f8aa375a737a582922916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 13 Oct 2022 13:11:52 +0200 Subject: [PATCH 0198/1574] Abort on errors when we should MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We're not strictly required to abort, but at least to leave the context is an invalid state. For "late" functions like input() and output(), calling abort() is the easiest way to do that. Do it systematically for input() and output() by using a wrapper. psa_pake_get_implicit_key() was already doing it. For "early" function, we can just leave the operation in its current state which is already invalid. Restore previous tests about that. Not adding systematic tests, though, just test the two functions that are the most important, and more likely to return errors. Since we now abort in more cases, we need to make sure we don't invalidate the operation that's going to be re-used later in the test. For that reason, use a copy of the operation for calls to input() and output() that are expected to return errors. Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 56 ++++++++++++--------- tests/suites/test_suite_psa_crypto.function | 37 +++++++++++--- 2 files changed, 62 insertions(+), 31 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 262d44d20..541e6c44b 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -385,7 +385,8 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) } #endif -psa_status_t psa_pake_output( psa_pake_operation_t *operation, +static psa_status_t psa_pake_output_internal( + psa_pake_operation_t *operation, psa_pake_step_t step, uint8_t *output, size_t output_size, @@ -427,10 +428,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - psa_pake_abort( operation ); return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && @@ -496,10 +494,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } operation->buffer_offset = 0; } @@ -513,10 +508,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ); if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } operation->buffer_offset = 0; } @@ -548,10 +540,7 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_DATA_CORRUPT ); if( output_size < length ) - { - psa_pake_abort( operation ); return( PSA_ERROR_BUFFER_TOO_SMALL ); - } memcpy( output, operation->buffer + operation->buffer_offset, @@ -584,7 +573,23 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, return( PSA_ERROR_NOT_SUPPORTED ); } -psa_status_t psa_pake_input( psa_pake_operation_t *operation, +psa_status_t psa_pake_output( psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + psa_status_t status = psa_pake_output_internal( + operation, step, output, output_size, output_length ); + + if( status != PSA_SUCCESS ) + psa_pake_abort( operation ); + + return( status ); +} + +static psa_status_t psa_pake_input_internal( + psa_pake_operation_t *operation, psa_pake_step_t step, const uint8_t *input, size_t input_length ) @@ -631,10 +636,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - psa_pake_abort( operation ); return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && @@ -734,10 +736,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer_length = 0; if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } } else if( operation->state == PSA_PAKE_INPUT_X4S && operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) @@ -750,10 +749,7 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, operation->buffer_length = 0; if( ret != 0 ) - { - psa_pake_abort( operation ); return( mbedtls_ecjpake_to_psa_error( ret ) ); - } } if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && @@ -775,6 +771,20 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, return( PSA_ERROR_NOT_SUPPORTED ); } +psa_status_t psa_pake_input( psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length ) +{ + psa_status_t status = psa_pake_input_internal( + operation, step, input, input_length ); + + if( status != PSA_SUCCESS ) + psa_pake_abort( operation ); + + return( status ); +} + psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, psa_key_derivation_operation_t *output) { diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 49887b5fc..a44c67b6a 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -8739,6 +8739,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); + psa_pake_operation_t op_copy = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; psa_pake_primitive_t primitive = primitive_arg; psa_key_type_t key_type_pw = key_type_pw_arg; @@ -8836,18 +8837,23 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, /* First round */ if( input_first ) { - /* Invalid parameters */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + /* Invalid parameters (input) */ + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + /* Invalid parameters (step) */ + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + op_copy = operation; + TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); + /* Possibly valid */ TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, size_key_share ), expected_status_input_output); @@ -8858,22 +8864,32 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public + 1 ), PSA_ERROR_INVALID_ARGUMENT ); + + /* The operation's state should be invalidated at this point */ + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public ), + PSA_ERROR_BAD_STATE ); } } else { - /* Invalid parameters */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + /* Invalid parameters (output) */ + op_copy = operation; + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + op_copy = operation; + /* Invalid parameters (step) */ + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + op_copy = operation; + TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); + /* Possibly valid */ TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, buf_size, &output_len ), expected_status_input_output ); @@ -8886,6 +8902,11 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public - 1, &output_len ), PSA_ERROR_BUFFER_TOO_SMALL ); + + /* The operation's state should be invalidated at this point */ + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); } } From 02f82bbfa9fbc9eaad4007464c0d53717ae12b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 13 Oct 2022 13:32:02 +0200 Subject: [PATCH 0199/1574] Fix MSVC warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- library/psa_crypto_pake.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 541e6c44b..870b5b565 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -629,7 +629,7 @@ static psa_status_t psa_pake_input_internal( const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256 ); - if( input_length > PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) + if( input_length > (size_t) PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) return( PSA_ERROR_INVALID_ARGUMENT ); if( operation->state == PSA_PAKE_STATE_SETUP ) From 8ff6df538c506bfcd83d9e4ab8bfaf2f4e671d11 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 21 Jul 2021 12:42:15 +0100 Subject: [PATCH 0200/1574] Add LMS implementation Also an LM-OTS implementation as one is required for LMS. Signed-off-by: Raef Coles --- ChangeLog.d/LMS.txt | 12 + include/mbedtls/check_config.h | 10 + include/mbedtls/error.h | 2 + include/mbedtls/lmots.h | 292 ++++++++++ include/mbedtls/lms.h | 254 +++++++++ include/mbedtls/mbedtls_config.h | 28 + library/CMakeLists.txt | 2 + library/Makefile | 2 + library/lmots.c | 684 +++++++++++++++++++++++ library/lms.c | 718 +++++++++++++++++++++++++ scripts/generate_errors.pl | 2 +- tests/suites/test_suite_lmots.data | 29 + tests/suites/test_suite_lmots.function | 108 ++++ tests/suites/test_suite_lms.data | 32 ++ tests/suites/test_suite_lms.function | 85 +++ 15 files changed, 2259 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/LMS.txt create mode 100644 include/mbedtls/lmots.h create mode 100644 include/mbedtls/lms.h create mode 100644 library/lmots.c create mode 100644 library/lms.c create mode 100644 tests/suites/test_suite_lmots.data create mode 100644 tests/suites/test_suite_lmots.function create mode 100644 tests/suites/test_suite_lms.data create mode 100644 tests/suites/test_suite_lms.function diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt new file mode 100644 index 000000000..0f09f0186 --- /dev/null +++ b/ChangeLog.d/LMS.txt @@ -0,0 +1,12 @@ +Features + * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme + as defined in RFC8554 and NIST.SP.200-208. This currently only supports + one parameter set (LMS_SHA256_M32_H10), meaning that each private key can + be used to sign 1024 messages. As such, it is not intended for use in TLS, + but instead for verification of assets transmitted over an insecure + channel, particularly firmware images. This is one of the signature + schemes recommended by the IETF draft SUIT standard for IOT firmware + upgrades (RFC9019). + * Add the LM-OTS post-quantum-safe one-time signature scheme, which is + required for LMS. This can be used independently, but each key can only be + used to sign one message so is impractical for most circumstances. diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 6b330a75b..37253ab52 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -353,6 +353,16 @@ #error "MBEDTLS_MD_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_LMOTS_C) && \ + ( !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMOTS_C requires MBEDTLS_MD_C" +#endif + +#if defined(MBEDTLS_LMS_C) && \ + ( !defined(MBEDTLS_LMOTS_C) || !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_LMOTS_C and MBEDTLS_MD_C" +#endif + #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 8b2b9ea58..73d61dbc6 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,6 +82,8 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 + * LMOTS 2 0x0076-0x0078 + * LMS 2 0x0011-0x0017 * * High-level module nr (3 bits - 0x0...-0x7...) * Name ID Nr of Errors diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h new file mode 100644 index 000000000..a177ad4a5 --- /dev/null +++ b/include/mbedtls/lmots.h @@ -0,0 +1,292 @@ +/** + * \file lmots.h + * + * \brief This file provides an API for the LM-OTS post-quantum-safe one-time + * public-key signature scheme. + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBEDTLS_LMOTS_H +#define MBEDTLS_LMOTS_H + +#include "mbedtls/private_access.h" + +#include +#include + +#define MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA -0x0076 /**< Bad data has been input to an LMOTS function */ +#define MBEDTLS_ERR_LMOTS_VERIFY_FAILED -0x0078 /**< LMOTS signature verification failed */ + +#define MBEDTLS_LMOTS_N_HASH_LEN (32) +#define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) +#define MBEDTLS_LMOTS_TYPE_LEN (4) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) + +#define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ + (MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN)) + +#define MBEDTLS_LMOTS_PUBKEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) + +#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) + +#define MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) + + +#ifdef __cplusplus +extern "C" { +#endif + +/* We are only implementing a subset of the types, particularly n32_w8, for the + * sake of simplicty + */ +typedef enum { + MBEDTLS_LMOTS_SHA256_N32_W8 = 4 +} mbedtls_lmots_algorithm_type_t; + + +typedef struct { + unsigned char MBEDTLS_PRIVATE(have_privkey); + unsigned char MBEDTLS_PRIVATE(have_pubkey); + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); + unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]; + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); + unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); + unsigned char MBEDTLS_PRIVATE(pub_key[32]); +} mbedtls_lmots_context; + + +/** + * \brief This function initializes an LMOTS context + * + * \param ctx The uninitialized LMOTS context that will then be + * initialized. + */ +void mbedtls_lmots_init( mbedtls_lmots_context *ctx ); + +/** + * \brief This function uninitializes an LMOTS context + * + * \param ctx The initialized LMOTS context that will then be + * uninitialized. + */ +void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); + +/** + * \brief This function sets the type of an LMOTS context + * + * \note The parameter set in the context will then be used + * for keygen operations etc. + * + * \param ctx The initialized LMOTS context. + * \param type The type that will be set in the context. + */ +int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, + mbedtls_lmots_algorithm_type_t type ); + +/** + * \brief This function creates a candidate public key from + * an LMOTS signature. This can then be compared to + * the real public key to determine the validity of + * the signature. + * + * \note This function is exposed publicly to be used in LMS + * signature verification, it is expected that + * mbedtls_lmots_verify will be used for LMOTS + * signature verification. + * + * \param I_key_identifier The key identifier of the key, as a 16 byte + * bytestring. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buff from which the signature will be read. + * MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * \param out The buffer where the candidate public key will be + * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN + * bytes in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char *sig, + unsigned char *out ); + +/** + * \brief This function creates a LMOTS signature, using a + * LMOTS context that contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a private + * key. + * + * \note LMOTS private keys can only be used once, otherwise + * attackers may be able to create forged signatures. + * If the signing operation is successful, the private + * key in the context will be erased, and no further + * signing will be possible until another private key + * is loaded + * + * \param ctx The initialized LMOTS context from which the + * private key will be read. + * \param f_rng The RNG function to be used for signature + * generation. + * \param p_rng The RNG context to be passed to f_rng + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf into which the signature will be stored. + * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_len, + unsigned char *sig ); + +/** + * \brief This function verifies a LMOTS signature, using a + * LMOTS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMOTS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, + size_t msg_len, const unsigned char *sig ); + +/** + * \brief This function imports an LMOTS public key into a + * LMOTS context. + * + * \note Before this function is called, the context must + * have been initialized. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMOTS_PUBKEY_LEN bytes will be read from + * this. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, + const unsigned char *key ); + +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBKEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, + unsigned char *key ); + +/** + * \brief This function generates an LMOTS public key from a + * LMOTS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMOTS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); + +/** + * \brief This function generates an LMOTS private key, and + * stores in into an LMOTS context. + * + * \note Before this function is called, the context must + * have been initialized and the type of the LMOTS + * context set using mbedtls_lmots_set_algorithm_type + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param I_key_identifier The key identifier of the key, as a 16 byte + * bytestring. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param seed The seed used to deterministically generate the + * key. + * \param seed_len The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned int q_leaf_identifier, + const unsigned char *seed, + size_t seed_len ); + +#ifdef __cplusplus +} +#endif + +#endif /* MBEDTLS_LMOTS_H */ diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h new file mode 100644 index 000000000..868a667e6 --- /dev/null +++ b/include/mbedtls/lms.h @@ -0,0 +1,254 @@ +/** + * \file lms.h + * + * \brief This file provides an API for the LMS post-quantum-safe stateful-hash + * public-key signature scheme. + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBEDTLS_LMS_H +#define MBEDTLS_LMS_H + +#include +#include + +#include "mbedtls/private_access.h" +#include "mbedtls/lmots.h" + +#define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ +#define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ +#define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ +#define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ + +#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_H_TREE_HEIGHT (10) +#define MBEDTLS_LMS_M_NODE_BYTES (32) + +#define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ + MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) + +#define MBEDTLS_LMS_PUBKEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) + +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) +#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) + +#define MBEDTLS_LMS_PUBKEY_TYPE_OFFSET (0) +#define MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + MBEDTLS_LMS_SHA256_M32_H10 = 0x6, +} mbedtls_lms_algorithm_type_t; + + +typedef struct { + unsigned char MBEDTLS_PRIVATE(have_privkey); + unsigned char MBEDTLS_PRIVATE(have_pubkey); + unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); + unsigned int MBEDTLS_PRIVATE(q_next_usable_key); + mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; +} mbedtls_lms_context; + + +/** + * \brief This function initializes an LMS context + * + * \param ctx The uninitialized LMS context that will then be + * initialized. + */ +void mbedtls_lms_init( mbedtls_lms_context *ctx ); + +/** + * \brief This function uninitializes an LMS context + * + * \param ctx The initialized LMS context that will then be + * uninitialized. + */ +void mbedtls_lms_free( mbedtls_lms_context *ctx ); + +/** + * \brief This function sets the type of an LMS context + * + * \note The parameter set in the context will then be used + * for keygen operations etc. + * + * \param ctx The initialized LMS context. + * \param type The type that will be set in the context. + * \param otstype The type of the LMOTS implementation used by this + * context. + */ +int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype); + +/** + * \brief This function creates a LMS signature, using a + * LMOTS context that contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a private + * key. + * + * \note Each of the LMOTS private keys inside a LMS private + * key can only be used once. If they are reused, then + * attackers may be able to forge signatures with that + * key. This is all handled transparently, but it is + * important to not perform copy operations on LMS + * contexts that contain private key material. + * + * \param ctx The initialized LMS context from which the + * private key will be read. + * \param f_rng The RNG function to be used for signature + * generation. + * \param p_rng The RNG context to be passed to f_rng + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf into which the signature will be stored. + * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_sign( mbedtls_lms_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_len, + unsigned char *sig); + +/** + * \brief This function verifies a LMS signature, using a + * LMS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_len The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_verify( const mbedtls_lms_context *ctx, + const unsigned char *msg, unsigned int msg_len, + const unsigned char *sig ); + +/** + * \brief This function imports an LMOTS public key into a + * LMS context. + * + * \note Before this function is called, the context must + * have been initialized. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMS_PUBKEY_LEN bytes will be read from + * this. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, + const unsigned char *key ); + +/** + * \brief This function exports an LMOTS public key from a + * LMS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBKEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, + unsigned char *key ); + +/** + * \brief This function generates an LMS public key from a + * LMS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); + +/** + * \brief This function generates an LMS private key, and + * stores in into an LMS context. + * + * \note Before this function is called, the context must + * have been initialized and the type of the LMS + * context set using mbedtls_lmots_set_algorithm_type + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param f_rng The RNG function to be used to generate the key ID. + * \param p_rng The RNG context to be passed to f_rng + * \param seed The seed used to deterministically generate the + * key. + * \param seed_len The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_len ); + +#ifdef __cplusplus +} +#endif + +#endif /* MBEDTLS_LMS_H */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 23e601b32..1da395b5c 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2461,6 +2461,34 @@ */ #define MBEDTLS_HMAC_DRBG_C +/** + * \def MBEDTLS_LMOTS_C + * + * Enable the LMOTS one-time asymmetric hash signature algorithm. + * + * Module: library/lm_ots.c + * Caller: + * + * Requires: MBEDTLS_SHA256_C + * + * Uncomment to enable the LMOTS signature algorithm. + */ +#define MBEDTLS_LMOTS_C + +/** + * \def MBEDTLS_LMS_C + * + * Enable the LMS stateful-hash asymmetric signature algorithm. + * + * Module: library/lms.c + * Caller: + * + * Requires: MBEDTLS_LMS_C + * + * Uncomment to enable the LMS signature algorithm. + */ +#define MBEDTLS_LMS_C + /** * \def MBEDTLS_NIST_KW_C * diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 951381475..7c325f7ba 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -44,6 +44,8 @@ set(src_crypto hash_info.c hkdf.c hmac_drbg.c + lmots.c + lms.c md.c md5.c memory_buffer_alloc.c diff --git a/library/Makefile b/library/Makefile index 9c3af3b9b..624773dc1 100644 --- a/library/Makefile +++ b/library/Makefile @@ -109,6 +109,8 @@ OBJS_CRYPTO= \ hash_info.o \ hkdf.o \ hmac_drbg.o \ + lmots.o \ + lms.o \ md.o \ md5.o \ memory_buffer_alloc.o \ diff --git a/library/lmots.c b/library/lmots.c new file mode 100644 index 000000000..7319d29be --- /dev/null +++ b/library/lmots.c @@ -0,0 +1,684 @@ +/* + * The LM-OTS one-time public-key signature scheme + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * The following sources were referenced in the design of this implementation + * of the LM-OTS algorithm: + * + * [1] IETF RFC8554 + * D. McGrew, M. Curcio, S.Fluhrer + * https://datatracker.ietf.org/doc/html/rfc8554 + * + * [2] NIST Special Publication 800-208 + * David A. Cooper et. al. + * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf + */ + +#include "common.h" + +#ifdef MBEDTLS_LMOTS_C + +#include + +#include "mbedtls/lmots.h" +#include "mbedtls/md.h" +#include "mbedtls/platform_util.h" +#include "mbedtls/error.h" + +#define W_SYMBOL_BIT_LEN (8) +#define CHECKSUM_LEN (2) +#define I_SYMBOL_IDX_LEN (2) +#define J_HASH_IDX_LEN (1) +#define D_CONST_LEN (2) + +#define SYMBOL_MAX_VAL ((1 << W_SYMBOL_BIT_LEN) - 1) + +#define D_PBLC_CONSTANT (0x8080) +#define D_MESG_CONSTANT (0x8181) + +static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +{ + size_t idx; + + for (idx = 0; idx < len; idx++) { + bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + } +} + +static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +{ + size_t idx; + unsigned int val = 0; + + for (idx = 0; idx < len; idx++) { + val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + } + + return val; +} + +static unsigned short lmots_checksum_generate( const unsigned char* digest ) +{ + size_t idx; + unsigned short sum = 0; + + for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) + { + sum += ( 1 << W_SYMBOL_BIT_LEN ) - 1 - digest[idx]; + } + + return sum; +} + +static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], + unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_MESG_BYTES[D_CONST_LEN]; + unsigned short checksum; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); + ret = mbedtls_md_update( &hash_ctx, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, msg, msg_len ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if ( ret ) + { + goto out; + } + + checksum = lmots_checksum_generate( out ); + val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + +out: + mbedtls_md_free( &hash_ctx ); + + return( ret ); +} + +static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char x_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], + const unsigned char hash_idx_min_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], + const unsigned char hash_idx_max_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], + unsigned char output[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32] ) +{ + unsigned char i_symbol_idx; + unsigned char j_hash_idx; + unsigned char i_symbol_idx_bytes[I_SYMBOL_IDX_LEN]; + unsigned char j_hash_idx_bytes[1]; + unsigned short j_hash_idx_min; + unsigned short j_hash_idx_max; + mbedtls_md_context_t hash_ctx; + unsigned char tmp_hash[32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + { + + memcpy( tmp_hash, &x_symbol_array[i_symbol_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + + j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_symbol_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_symbol_idx] : SYMBOL_MAX_VAL; + + for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) + { + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, j_hash_idx_bytes, J_HASH_IDX_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, tmp_hash ); + if ( ret ) + { + goto out; + } + + mbedtls_md_free( &hash_ctx ); + } + + memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + } + +out: + if( ret ) + { + mbedtls_md_free( &hash_ctx ); + return( ret ); + } + + return ret; +} + +static int public_key_from_hashed_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], + unsigned char *pub_key ) +{ + unsigned char D_PBLC_bytes[D_CONST_LEN]; + mbedtls_md_context_t hash_ctx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_PBLC_bytes, D_CONST_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ( unsigned char * )y_hashed_symbols, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, pub_key ); + +out: + mbedtls_md_free( &hash_ctx ); + return( ret ); +} + +void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) +{ + if( ctx == NULL ) { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; +} + +void mbedtls_lmots_free( mbedtls_lmots_context *ctx ) +{ + if( ctx == NULL ) + { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; +} + +int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, + mbedtls_lmots_algorithm_type_t type ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = type; + + return( 0 ); +} + +int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], + const unsigned char *msg, + size_t msg_len, + const unsigned char *sig, + unsigned char *out ) +{ + unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; + unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_symbol_array ); + if ( ret ) + { + return ( ret ); + } + + ret = hash_symbol_array( I_key_identifier, q_leaf_identifier, + ( const unsigned char( *)[32] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), + tmp_symbol_array, NULL, y_hashed_symbols ); + if ( ret ) + { + return ( ret ); + } + + ret = public_key_from_hashed_symbol_array( I_key_identifier, q_leaf_identifier, + ( const unsigned char( *)[32] )y_hashed_symbols, + out ); + if ( ret ) + { + return ( ret ); + } + + return( 0 ); +} + +int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_len, + unsigned char *sig ) +{ + unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + if ( ret ) + { + return( ret ); + } + + ret = create_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + msg, msg_len, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_symbol_array ); + if ( ret ) + { + return( ret ); + } + + ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), + NULL, tmp_symbol_array, tmp_sig ); + if ( ret ) + { + return( ret ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + /* We've got a valid signature now, so it's time to make sure the private + * key can't be reused. + */ + ctx->MBEDTLS_PRIVATE(have_privkey) = 0; + mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(priv_key), + sizeof(ctx->MBEDTLS_PRIVATE(priv_key))); + + memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN); + + return( 0 ); +} + +int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, + size_t msg_len, const unsigned char *sig ) +{ + unsigned char Kc_public_key_candidate[32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || msg == NULL || sig == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + msg, msg_len, sig, + Kc_public_key_candidate ); + if ( ret ) + { + return( ret ); + } + + if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), + sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) + { + return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + } + + return( 0 ); +} + +int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, + const unsigned char *key ) +{ + if ( ctx == NULL || key == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); + + memcpy( ctx->MBEDTLS_PRIVATE(pub_key), key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, + unsigned char *key ) +{ + if ( ctx == NULL || key == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + return( 0 ); +} + + +int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) +{ + unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), + NULL, NULL, y_hashed_symbols ); + if ( ret ) + { + return( ret ); + } + + ret = public_key_from_hashed_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + ( const unsigned char( *)[32] )y_hashed_symbols, + ctx->MBEDTLS_PRIVATE(pub_key) ); + if ( ret ) + { + return( ret ); + } + + ctx->MBEDTLS_PRIVATE(have_pubkey = 1); + + return( ret ); +} + +int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned int q_leaf_identifier, + const unsigned char *seed, + size_t seed_len ) +{ + mbedtls_md_context_t hash_ctx; + unsigned int i_symbol_idx; + unsigned char i_symbol_idx_bytes[2]; + unsigned char const_bytes[1]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL || I_key_identifier == NULL || seed == NULL) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + } + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + + ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = q_leaf_identifier; + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(q_leaf_identifier), MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); + + val_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + + for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + { + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + if ( ret ) { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + if ( ret ) + { + goto out; + } + + val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, const_bytes, sizeof( const_bytes) ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, seed, seed_len ); + if ( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx] ); + if ( ret ) + { + goto out; + } + + mbedtls_md_free( &hash_ctx); + } + + ctx->MBEDTLS_PRIVATE(have_privkey) = 1; + +out: + if( ret ) + { + mbedtls_md_free( &hash_ctx ); + return( ret ); + } + + return ret; +} + +#endif /* MBEDTLS_LMOTS_C */ diff --git a/library/lms.c b/library/lms.c new file mode 100644 index 000000000..e1ac7b935 --- /dev/null +++ b/library/lms.c @@ -0,0 +1,718 @@ +/* + * The LMS stateful-hash public-key signature scheme + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* + * The following sources were referenced in the design of this implementation + * of the LMS algorithm: + * + * [1] IETF RFC8554 + * D. McGrew, M. Curcio, S.Fluhrer + * https://datatracker.ietf.org/doc/html/rfc8554 + * + * [2] NIST Special Publication 800-208 + * David A. Cooper et. al. + * https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf + */ + +#include "common.h" + +#ifdef MBEDTLS_LMS_C + +#include + +#include "mbedtls/lms.h" +#include "mbedtls/lmots.h" +#include "mbedtls/md.h" +#include "mbedtls/error.h" +#include "mbedtls/platform_util.h" + +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#include +#include +#define mbedtls_printf printf +#define mbedtls_calloc calloc +#define mbedtls_free free +#endif + +#define MERKLE_TREE_NODE_AM (1 << (MBEDTLS_LMS_H_TREE_HEIGHT + 1)) +#define MERKLE_TREE_LEAF_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MERKLE_TREE_INTR_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) + +#define D_CONST_LEN (2) + +#define D_LEAF_CONSTANT (0x8282) +#define D_INTR_CONSTANT (0x8383) + +static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +{ + size_t idx; + + for (idx = 0; idx < len; idx++) { + bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + } +} + +static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +{ + size_t idx; + unsigned int val = 0; + + for (idx = 0; idx < len; idx++) { + val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + } + + return val; +} + +static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, + unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], + unsigned int r_node_idx, + unsigned char out[32] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_LEAF_bytes[D_CONST_LEN]; + unsigned char r_node_idx_bytes[4]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, + ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_LEAF_bytes, D_CONST_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if( ret ) + { + goto out; + } + +out: + mbedtls_md_free( &hash_ctx ); + + return( ret ); +} + +static int create_merkle_intr_node( const mbedtls_lms_context *ctx, + const unsigned char left_node[32], + const unsigned char rght_node[32], + unsigned int r_node_idx, + unsigned char out[32] ) +{ + mbedtls_md_context_t hash_ctx; + unsigned char D_INTR_bytes[D_CONST_LEN]; + unsigned char r_node_idx_bytes[4]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &hash_ctx ); + ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); + if( ret ) + { + goto out; + } + ret = mbedtls_md_starts( &hash_ctx ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + if( ret ) + { + goto out; + } + + val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); + ret = mbedtls_md_update( &hash_ctx, D_INTR_bytes, D_CONST_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_update( &hash_ctx, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + if( ret ) + { + goto out; + } + + ret = mbedtls_md_finish( &hash_ctx, out ); + if( ret ) + { + goto out; + } + +out: + mbedtls_md_free( &hash_ctx ); + + return ret; +} + +static int generate_merkle_tree( mbedtls_lms_context *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][32] ) +{ + unsigned int priv_key_idx; + unsigned int r_node_idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* First create the leaf nodes, in ascending order */ + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTR_AM; priv_key_idx++ ) + { + r_node_idx = MERKLE_TREE_INTR_AM + priv_key_idx; + + ret = create_merkle_leaf_node( ctx, ctx->MBEDTLS_PRIVATE(priv_keys)[priv_key_idx].pub_key, + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + /* Then the internal nodes, in reverse order so that we can guarantee the + * parent has been created */ + for( r_node_idx = MERKLE_TREE_INTR_AM - 1; r_node_idx > 0; r_node_idx-- ) + { + ret = create_merkle_intr_node( ctx, tree[(r_node_idx * 2)], + tree[(r_node_idx * 2 + 1)], + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + return( 0 ); +} + +static int get_merkle_path( mbedtls_lms_context *ctx, + unsigned int leaf_node_id, unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][32] ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned int curr_node_id = leaf_node_id; + unsigned int parent_node_id; + unsigned char sibling_relative_id; + unsigned int adjacent_node_id; + unsigned int height; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + ret = generate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + parent_node_id = ( curr_node_id / 2 ); + + /* 0 if the node is a left child, 1 if the node is a right child */ + sibling_relative_id = curr_node_id & 1; + + adjacent_node_id = ( parent_node_id * 2 ) + ( 1 - sibling_relative_id ); + + memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + + curr_node_id = parent_node_id; + } + + return( 0 ); +} + +void mbedtls_lms_init( mbedtls_lms_context *ctx ) +{ + if( ctx == NULL ) + { + return; + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ) ; +} + +void mbedtls_lms_free( mbedtls_lms_context *ctx ) +{ + unsigned int idx; + + if( ctx == NULL ) + { + return; + } + + if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + mbedtls_lmots_free( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); + } + + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ); +} + +int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(otstype) = otstype; + + return( 0 ); +} + +int mbedtls_lms_sign( mbedtls_lms_context *ctx, + int ( *f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_len, + unsigned char *sig ) +{ + unsigned int q_leaf_identifier; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( msg == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_AM ) + { + return( MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS ); + } + + + q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + /* This new value must _always_ be written back to the disk before the + * signature is returned. + */ + ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; + + ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(priv_keys)[q_leaf_identifier], + f_rng, p_rng, msg, msg_len, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET ); + if( ret ) + { + return( ret ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + val_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + + ret = get_merkle_path( ctx, MERKLE_TREE_INTR_AM + q_leaf_identifier, + ( unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + if( ret ) + { + return( ret ); + } + + return( 0 ); +} + +int mbedtls_lms_verify( const mbedtls_lms_context *ctx, + const unsigned char *msg, unsigned int msg_len, + const unsigned char *sig ) +{ + unsigned int q_leaf_identifier; + unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Tc_candidate_root_node[32]; + unsigned int height; + unsigned int curr_node_id; + unsigned int parent_node_id; + const unsigned char* left_node; + const unsigned char* rght_node; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( msg == NULL) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig == NULL) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + + if( network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + if( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + + q_leaf_identifier = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + + if( q_leaf_identifier >= MERKLE_TREE_LEAF_AM ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET, + msg, msg_len, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + Kc_candidate_ots_pub_key ); + if( ret ) + { + return( ret ); + } + + create_merkle_leaf_node( ctx, Kc_candidate_ots_pub_key, + MERKLE_TREE_INTR_AM + q_leaf_identifier, + Tc_candidate_root_node ); + + curr_node_id = MERKLE_TREE_INTR_AM + q_leaf_identifier; + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + parent_node_id = curr_node_id / 2; + + /* Left/right node ordering matters for the hash */ + if( curr_node_id & 1 ) + { + left_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + rght_node = Tc_candidate_root_node; + } + else + { + left_node = Tc_candidate_root_node; + rght_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + } + + create_merkle_intr_node( ctx, left_node, rght_node, parent_node_id, + Tc_candidate_root_node); + + curr_node_id /= 2; + } + + if( memcmp( Tc_candidate_root_node, ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + return( 0 ); +} + +int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, + const unsigned char *key ) +{ + mbedtls_lms_algorithm_type_t type; + mbedtls_lmots_algorithm_type_t otstype; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( key == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + type = network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); + if( type != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(type) = type; + + otstype = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); + if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(otstype) = otstype; + + memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, + unsigned char *key ) +{ + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( key == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); + val_to_network_bytes( ctx->MBEDTLS_PRIVATE(otstype), + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); + memcpy( key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, + ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + return( 0 ); +} + +int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned int idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ! ctx->MBEDTLS_PRIVATE( have_privkey ) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + ret = mbedtls_lmots_gen_pubkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + if( ret ) + { + return( ret ); + } + } + + ret = generate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + /* Root node is always at position 1, due to 1-based indexing */ + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + + return( 0 ); +} + +int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, + int ( *f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_len ) +{ + unsigned int idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + f_rng( p_rng, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + + ctx->MBEDTLS_PRIVATE(priv_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_AM, + sizeof( mbedtls_lmots_context)); + if( ctx->MBEDTLS_PRIVATE(priv_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto out; + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + mbedtls_lmots_init( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); + ret = mbedtls_lmots_set_algorithm_type( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], + ctx->MBEDTLS_PRIVATE(otstype) ); + if( ret) + { + goto out; + } + } + + + for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) + { + ret = mbedtls_lmots_gen_privkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], + ctx->MBEDTLS_PRIVATE(I_key_identifier), + idx, seed, seed_len ); + if( ret) + { + goto out; + } + } + + ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; + ctx->MBEDTLS_PRIVATE(have_privkey) = 1; + +out: + if( ret ) + { + mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); + return( ret ); + } + + return( 0 ); +} + +#endif /* MBEDTLS_LMS_C */ diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index 0a03f02e9..d333f6590 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -47,7 +47,7 @@ my $error_format_file = $data_dir.'/error.fmt'; my @low_level_modules = qw( AES ARIA ASN1 BASE64 BIGNUM CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES - ENTROPY ERROR GCM HKDF HMAC_DRBG MD5 + ENTROPY ERROR GCM HKDF HMAC_DRBG LMS LMOTS MD5 NET OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160 SHA1 SHA256 SHA512 THREADING ); my @high_level_modules = qw( CIPHER DHM ECP MD diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data new file mode 100644 index 000000000..ed192bf7d --- /dev/null +++ b/tests/suites/test_suite_lmots.data @@ -0,0 +1,29 @@ +LMOTS sign-verify test #1 +lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" + +LMOTS sign-verify test #2 +lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3" + +LMOTS hash-sigs interop test #1 +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 + +LMOTS hash-sigs interop test #2 +lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 + +LMOTS hash-sigs interop test #3 +lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 + +LMOTS hash-sigs interop negative test (altered random value) +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMOTS_VERIFY_FAILED + +LMOTS negative test (invalid type) #1 +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA + +LMOTS negative test (invalid type) #2 +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA + +LMOTS key import / export test +lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" + +LMOTS key reuse test +lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function new file mode 100644 index 000000000..6de94d124 --- /dev/null +++ b/tests/suites/test_suite_lmots.function @@ -0,0 +1,108 @@ +/* BEGIN_HEADER */ +#include "mbedtls/lmots.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_LMOTS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void lmots_sign_verify_test ( data_t * msg ) +{ + mbedtls_lmots_context ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + mbedtls_lmots_init( &ctx ); + + TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); + TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); + + TEST_ASSERT( mbedtls_lmots_set_algorithm_type(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_pubkey(&ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig) == 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, + int expected_rc ) +{ + mbedtls_lmots_context ctx; + + mbedtls_lmots_init( &ctx ); + + mbedtls_lmots_import_pubkey( &ctx, pub_key->x ); + + TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + +exit: + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_import_export_test ( data_t * pub_key ) +{ + mbedtls_lmots_context ctx; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBKEY_LEN]; + + mbedtls_lmots_init( &ctx ); + TEST_ASSERT( mbedtls_lmots_import_pubkey( &ctx, pub_key->x ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_pubkey( &ctx, exported_pub_key ) == 0 ); + + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBKEY_LEN ) == 0 ); + +exit: + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lmots_reuse_test ( data_t * msg ) +{ + mbedtls_lmots_context ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + TEST_ASSERT( mbedtls_ctr_drbg_seed(&drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); + + mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); + + mbedtls_lmots_init( &ctx ); + TEST_ASSERT( mbedtls_lmots_set_algorithm_type( &ctx, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); + TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + + /* Running another sign operation should fail, since the key should now have + * been erased. + */ + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) != 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lmots_free( &ctx ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data new file mode 100644 index 000000000..b17fddc15 --- /dev/null +++ b/tests/suites/test_suite_lms.data @@ -0,0 +1,32 @@ +LMS sign-verify test +lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" + +LMS hash-sigs interop test #1 +lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 + +LMS hash-sigs interop test #2 +lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 + +LMS hash-sigs interop test #3 +lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 + +LMS hash-sigs interop negative test (altered random value) +lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED + +LMS negative test (invalid lms type) #1 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lms type) #2 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lm_ots type) #1 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid lm_ots type) #2 +lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS negative test (invalid leaf ID) +lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED + +LMS import/export test +lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function new file mode 100644 index 000000000..b19d074fa --- /dev/null +++ b/tests/suites/test_suite_lms.function @@ -0,0 +1,85 @@ +/* BEGIN_HEADER */ +#include "mbedtls/lms.h" +#include "mbedtls/entropy.h" +#include "mbedtls/ctr_drbg.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void lms_sign_verify_test ( data_t * msg ) +{ + mbedtls_lms_context ctx; + unsigned char sig[MBEDTLS_LMS_SIG_LEN]; + mbedtls_entropy_context entropy_ctx; + mbedtls_ctr_drbg_context drbg_ctx; + uint8_t seed[16]; + int rc; + + mbedtls_entropy_init( &entropy_ctx ); + mbedtls_ctr_drbg_init( &drbg_ctx ); + mbedtls_lms_init( &ctx ); + + TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, + &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); + TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); + + TEST_ASSERT( mbedtls_lms_set_algorithm_type( &ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); + + /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ + rc = mbedtls_lms_gen_privkey( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, seed, sizeof( seed ) ); + TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); + TEST_ASSERT( rc == 0 ); + + TEST_ASSERT( mbedtls_lms_gen_pubkey( &ctx) == 0 ); + + TEST_ASSERT( mbedtls_lms_sign( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig) == 0 ); + +exit: + mbedtls_entropy_free( &entropy_ctx ); + mbedtls_ctr_drbg_free( &drbg_ctx ); + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, + int expected_rc ) +{ + mbedtls_lms_context ctx; + + mbedtls_lms_init( &ctx); + + mbedtls_lms_import_pubkey( &ctx, pub_key->x ); + + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + +exit: + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void lms_import_export_test ( data_t * pub_key ) +{ + mbedtls_lms_context ctx; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBKEY_LEN]; + + mbedtls_lms_init(&ctx); + TEST_ASSERT( mbedtls_lms_import_pubkey( &ctx, pub_key->x ) == 0 ); + TEST_ASSERT( mbedtls_lms_export_pubkey( &ctx, exported_pub_key) == 0 ); + + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBKEY_LEN, + exported_pub_key, MBEDTLS_LMS_PUBKEY_LEN ); + +exit: + mbedtls_lms_free( &ctx ); +} +/* END_CASE */ + From c464746d456557135ec04b22c602865dc532ff8c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 15 Jun 2022 12:17:51 +0100 Subject: [PATCH 0201/1574] Document LMS and LMOTS contexts And add some comments about the source of their type IDs Signed-off-by: Raef Coles --- include/mbedtls/lmots.h | 31 +++++++++++++++++++++---------- include/mbedtls/lms.h | 29 +++++++++++++++++++++-------- 2 files changed, 42 insertions(+), 18 deletions(-) diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h index a177ad4a5..c98f3bfd7 100644 --- a/include/mbedtls/lmots.h +++ b/include/mbedtls/lmots.h @@ -59,8 +59,8 @@ extern "C" { #endif -/* We are only implementing a subset of the types, particularly n32_w8, for the - * sake of simplicty +/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml + * We are only implementing a subset of the types, particularly n32_w8, for the sake of simplicty. */ typedef enum { MBEDTLS_LMOTS_SHA256_N32_W8 = 4 @@ -68,14 +68,25 @@ typedef enum { typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); - unsigned char MBEDTLS_PRIVATE(have_pubkey); - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); - unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]; - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); - unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); - unsigned char MBEDTLS_PRIVATE(pub_key[32]); + unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); /*!< Which leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN];/*!< The + leaf identifier in network bytes form. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is currently + supported. */ + unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); /*!< The private + key, one hash output per byte of the encoded + symbol string P (32 bytes of hash output + + 2 bytes of checksum). */ + unsigned char MBEDTLS_PRIVATE(pub_key[32]); /*!< The public key, in the form of a SHA256 + output. */ } mbedtls_lmots_context; diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 868a667e6..2de03f7ef 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -58,20 +58,33 @@ extern "C" { #endif +/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml + * We are only implementing a subset of the types, particularly H10, for the sake of simplicty. + */ typedef enum { MBEDTLS_LMS_SHA256_M32_H10 = 0x6, } mbedtls_lms_algorithm_type_t; typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); - unsigned char MBEDTLS_PRIVATE(have_pubkey); - unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; - mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); - unsigned int MBEDTLS_PRIVATE(q_next_usable_key); - mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); - unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. + Boolean values only. */ + unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; /*!< The key + identifier. */ + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per + IANA. Only SHA256_M32_H10 is currently + supported. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is currently + supported. */ + unsigned int MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not + been used. */ + mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); /*!< The private key material. One OTS key + for each leaf node in the merkle tree. */ + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in + the form of the merkle tree root node. */ } mbedtls_lms_context; From 0aa18e041fe03a841a190e00f36395f0286dba8c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 15 Jun 2022 13:05:56 +0100 Subject: [PATCH 0202/1574] Note that LMS sign function is for testing only Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 2de03f7ef..77559e24b 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -34,7 +34,7 @@ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ -#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) #define MBEDTLS_LMS_M_NODE_BYTES (32) @@ -123,6 +123,10 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * \brief This function creates a LMS signature, using a * LMOTS context that contains a private key. * + * \note This function is intended for _testing purposes + * only_, due to complexities around updating stateful + * keys. + * * \note Before this function is called, the context must * have been initialized and must contain a private * key. From 2ad6e611f06a32a0721a1df2c625bc731d6e04f4 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 24 Aug 2022 13:33:35 +0100 Subject: [PATCH 0203/1574] Update LMS/LMOTS documentation Signed-off-by: Raef Coles --- ChangeLog.d/LMS.txt | 15 ++++++------- include/mbedtls/lmots.h | 49 +++++++++++++++++++++++++++++++++++------ include/mbedtls/lms.h | 41 +++++++++++++++++++++++++++++----- 3 files changed, 85 insertions(+), 20 deletions(-) diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt index 0f09f0186..6de374f86 100644 --- a/ChangeLog.d/LMS.txt +++ b/ChangeLog.d/LMS.txt @@ -1,12 +1,11 @@ Features - * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme - as defined in RFC8554 and NIST.SP.200-208. This currently only supports - one parameter set (LMS_SHA256_M32_H10), meaning that each private key can - be used to sign 1024 messages. As such, it is not intended for use in TLS, - but instead for verification of assets transmitted over an insecure - channel, particularly firmware images. This is one of the signature - schemes recommended by the IETF draft SUIT standard for IOT firmware - upgrades (RFC9019). + * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme. + Signature verification is production-ready, but generation is for testing + purposes only. This currently only supports one parameter set + (LMS_SHA256_M32_H10), meaning that each private key can be used to sign + 1024 messages. As such, it is not intended for use in TLS, but instead for + verification of assets transmitted over an insecure channel, particularly + firmware images. * Add the LM-OTS post-quantum-safe one-time signature scheme, which is required for LMS. This can be used independently, but each key can only be used to sign one message so is impractical for most circumstances. diff --git a/include/mbedtls/lmots.h b/include/mbedtls/lmots.h index c98f3bfd7..d89f5bb1c 100644 --- a/include/mbedtls/lmots.h +++ b/include/mbedtls/lmots.h @@ -2,7 +2,9 @@ * \file lmots.h * * \brief This file provides an API for the LM-OTS post-quantum-safe one-time - * public-key signature scheme. + * public-key signature scheme as defined in RFC8554 and NIST.SP.200-208. + * This implementation currently only supports a single parameter set + * MBEDTLS_LMOTS_SHA256_N32_W8 in order to reduce complexity. */ /* * Copyright The Mbed TLS Contributors @@ -67,6 +69,33 @@ typedef enum { } mbedtls_lmots_algorithm_type_t; +/** LMOTS context structure. + * + * The context must be initialized before it is used. A public key must either + * be imported, or an algorithm type set, a private key generated and the public + * key calculated from it. A context that does not contain a public key cannot + * verify, and a context that does not contain a private key cannot sign. + * Signing a message will remove the private key from the context, as private + * keys can only be used a single time. + * + * \dot + * digraph lmots { + * UNINITIALIZED -> INIT [label="init"]; + * TYPE_SET -> INIT [label="free"]; + * PRIVATE -> INIT [label="free"]; + * PUBLIC -> INIT [label="free"]; + * "PRIVATE+PUBLIC" -> INIT [label="free"]; + * INIT -> TYPE_SET [label="set_algorithm_type"]; + * PRIVATE -> TYPE_SET [label="sign"]; + * "PRIVATE+PUBLIC" -> PUBLIC [label="sign"]; + * INIT -> PUBLIC [label="import_public"]; + * PUBLIC -> PUBLIC [label="export_pubkey"]; + * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; + * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; + * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * } + * \enddot + */ typedef struct { unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. Boolean values only. */ @@ -129,15 +158,14 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * mbedtls_lmots_verify will be used for LMOTS * signature verification. * - * \param I_key_identifier The key identifier of the key, as a 16 byte - * bytestring. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is * not being used as part of an LMS key, this should * be set to 0. * \param msg The buffer from which the message will be read. * \param msg_len The size of the message that will be read. - * \param sig The buff from which the signature will be read. - * MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * \param sig The buffer from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. * \param out The buffer where the candidate public key will be * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN * bytes in size. @@ -189,6 +217,10 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, * \brief This function verifies a LMOTS signature, using a * LMOTS context that contains a public key. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and must contain a public key * (either by import or generation). @@ -270,6 +302,10 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); * \brief This function generates an LMOTS private key, and * stores in into an LMOTS context. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and the type of the LMOTS * context set using mbedtls_lmots_set_algorithm_type @@ -278,8 +314,7 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); * * \param ctx The initialized LMOTS context to generate the key * into. - * \param I_key_identifier The key identifier of the key, as a 16 byte - * bytestring. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is * not being used as part of an LMS key, this should * be set to 0. diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 77559e24b..72ed521fe 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -2,7 +2,11 @@ * \file lms.h * * \brief This file provides an API for the LMS post-quantum-safe stateful-hash - * public-key signature scheme. + public-key signature scheme as defined in RFC8554 and NIST.SP.200-208. + * This implementation currently only supports a single parameter set + * MBEDTLS_LMS_SHA256_M32_H10 in order to reduce complexity. This is one + * of the signature schemes recommended by the IETF draft SUIT standard + * for IOT firmware upgrades (RFC9019). */ /* * Copyright The Mbed TLS Contributors @@ -36,7 +40,7 @@ #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) -#define MBEDTLS_LMS_M_NODE_BYTES (32) +#define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ #define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) @@ -66,6 +70,29 @@ typedef enum { } mbedtls_lms_algorithm_type_t; +/** LMS context structure. + * + * The context must be initialized before it is used. A public key must either + * be imported, or an algorithm type set, a private key generated and the public + * key calculated from it. A context that does not contain a public key cannot + * verify, and a context that does not contain a private key cannot sign. + * + * \dot + * digraph lmots { + * UNINITIALIZED -> INIT [label="init"]; + * TYPE_SET -> INIT [label="free"]; + * PRIVATE -> INIT [label="free"]; + * PUBLIC -> INIT [label="free"]; + * "PRIVATE+PUBLIC" -> INIT [label="free"]; + * INIT -> TYPE_SET [label="set_algorithm_type"]; + * INIT -> PUBLIC [label="import_public"]; + * PUBLIC -> PUBLIC [label="export_pubkey"]; + * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; + * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; + * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * } + * \enddot + */ typedef struct { unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. Boolean values only. */ @@ -123,9 +150,9 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * \brief This function creates a LMS signature, using a * LMOTS context that contains a private key. * - * \note This function is intended for _testing purposes - * only_, due to complexities around updating stateful - * keys. + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. * * \note Before this function is called, the context must * have been initialized and must contain a private @@ -242,6 +269,10 @@ int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); * \brief This function generates an LMS private key, and * stores in into an LMS context. * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * * \note Before this function is called, the context must * have been initialized and the type of the LMS * context set using mbedtls_lmots_set_algorithm_type From 7dce69a27aa606ac4b7be1199599a7ded3fc9397 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 24 Aug 2022 14:07:06 +0100 Subject: [PATCH 0204/1574] Make LMOTS a private api Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 9 ++---- include/mbedtls/error.h | 1 - include/mbedtls/lms.h | 3 +- include/mbedtls/mbedtls_config.h | 16 +--------- library/lmots.c | 41 +++++++++++++------------- {include/mbedtls => library}/lmots.h | 3 -- library/lms.c | 3 +- scripts/generate_errors.pl | 2 +- tests/suites/test_suite_lmots.data | 6 ++-- tests/suites/test_suite_lmots.function | 6 ++-- 10 files changed, 36 insertions(+), 54 deletions(-) rename {include/mbedtls => library}/lmots.h (98%) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 37253ab52..99e863ccc 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -353,14 +353,9 @@ #error "MBEDTLS_MD_C defined, but not all prerequisites" #endif -#if defined(MBEDTLS_LMOTS_C) && \ - ( !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMOTS_C requires MBEDTLS_MD_C" -#endif - #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_LMOTS_C) || !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_LMOTS_C and MBEDTLS_MD_C" + ( !defined(MBEDTLS_MD_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_MD_C" #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 73d61dbc6..fe5d49792 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,7 +82,6 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 - * LMOTS 2 0x0076-0x0078 * LMS 2 0x0011-0x0017 * * High-level module nr (3 bits - 0x0...-0x7...) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 72ed521fe..99fe678bf 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,8 +30,9 @@ #include #include +#include "lmots.h" + #include "mbedtls/private_access.h" -#include "mbedtls/lmots.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ #define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 1da395b5c..8c833b1cf 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2461,20 +2461,6 @@ */ #define MBEDTLS_HMAC_DRBG_C -/** - * \def MBEDTLS_LMOTS_C - * - * Enable the LMOTS one-time asymmetric hash signature algorithm. - * - * Module: library/lm_ots.c - * Caller: - * - * Requires: MBEDTLS_SHA256_C - * - * Uncomment to enable the LMOTS signature algorithm. - */ -#define MBEDTLS_LMOTS_C - /** * \def MBEDTLS_LMS_C * @@ -2483,7 +2469,7 @@ * Module: library/lms.c * Caller: * - * Requires: MBEDTLS_LMS_C + * Requires: MBEDTLS_MD_C * * Uncomment to enable the LMS signature algorithm. */ diff --git a/library/lmots.c b/library/lmots.c index 7319d29be..2c4477234 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -32,11 +32,12 @@ #include "common.h" -#ifdef MBEDTLS_LMOTS_C +#ifdef MBEDTLS_LMS_C #include -#include "mbedtls/lmots.h" +#include "lmots.h" + #include "mbedtls/md.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" @@ -329,7 +330,7 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, { if( ctx == NULL ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ctx->MBEDTLS_PRIVATE(type) = type; @@ -350,7 +351,7 @@ int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifi if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, @@ -390,13 +391,13 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); @@ -447,23 +448,23 @@ int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, if( ctx == NULL || msg == NULL || sig == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), @@ -478,7 +479,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) { - return( MBEDTLS_ERR_LMOTS_VERIFY_FAILED ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } return( 0 ); @@ -489,7 +490,7 @@ int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, { if ( ctx == NULL || key == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, @@ -515,12 +516,12 @@ int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, { if ( ctx == NULL || key == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, @@ -546,13 +547,13 @@ int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) if( ctx == NULL ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), @@ -592,16 +593,16 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, if( ctx == NULL || I_key_identifier == NULL || seed == NULL) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, @@ -681,4 +682,4 @@ out: return ret; } -#endif /* MBEDTLS_LMOTS_C */ +#endif /* MBEDTLS_LMS_C */ diff --git a/include/mbedtls/lmots.h b/library/lmots.h similarity index 98% rename from include/mbedtls/lmots.h rename to library/lmots.h index d89f5bb1c..e425f9ec7 100644 --- a/include/mbedtls/lmots.h +++ b/library/lmots.h @@ -31,9 +31,6 @@ #include #include -#define MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA -0x0076 /**< Bad data has been input to an LMOTS function */ -#define MBEDTLS_ERR_LMOTS_VERIFY_FAILED -0x0078 /**< LMOTS signature verification failed */ - #define MBEDTLS_LMOTS_N_HASH_LEN (32) #define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) #define MBEDTLS_LMOTS_TYPE_LEN (4) diff --git a/library/lms.c b/library/lms.c index e1ac7b935..d8969ba39 100644 --- a/library/lms.c +++ b/library/lms.c @@ -36,8 +36,9 @@ #include +#include "lmots.h" + #include "mbedtls/lms.h" -#include "mbedtls/lmots.h" #include "mbedtls/md.h" #include "mbedtls/error.h" #include "mbedtls/platform_util.h" diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index d333f6590..41b03377d 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -47,7 +47,7 @@ my $error_format_file = $data_dir.'/error.fmt'; my @low_level_modules = qw( AES ARIA ASN1 BASE64 BIGNUM CAMELLIA CCM CHACHA20 CHACHAPOLY CMAC CTR_DRBG DES - ENTROPY ERROR GCM HKDF HMAC_DRBG LMS LMOTS MD5 + ENTROPY ERROR GCM HKDF HMAC_DRBG LMS MD5 NET OID PADLOCK PBKDF2 PLATFORM POLY1305 RIPEMD160 SHA1 SHA256 SHA512 THREADING ); my @high_level_modules = qw( CIPHER DHM ECP MD diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index ed192bf7d..d5088f9e5 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -14,13 +14,13 @@ LMOTS hash-sigs interop test #3 lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 LMOTS hash-sigs interop negative test (altered random value) -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMOTS_VERIFY_FAILED +lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS negative test (invalid type) #2 -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMOTS_BAD_INPUT_DATA +lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 6de94d124..0f76aa6df 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -1,12 +1,14 @@ /* BEGIN_HEADER */ -#include "mbedtls/lmots.h" +#include "lmots.h" +#include "mbedtls/lms.h" + #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMOTS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From c8f9604d7b5eb75fe45759f936438f3f008405a9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 25 Aug 2022 13:49:54 +0100 Subject: [PATCH 0205/1574] Use PSA hashing for LMS and LMOTS Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 +- include/mbedtls/error.h | 2 +- include/mbedtls/lms.h | 1 + library/lmots.c | 209 +++++++++++++++---------- library/lmots.h | 15 ++ library/lms.c | 77 ++++----- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 8 files changed, 185 insertions(+), 127 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 99e863ccc..2921278b3 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_MD_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_MD_C" + ( !defined(MBEDTLS_PSA_CRYPTO_C) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index fe5d49792..eb8391311 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -82,7 +82,7 @@ * POLY1305 3 0x0057-0x005B * CHACHAPOLY 2 0x0054-0x0056 * PLATFORM 2 0x0070-0x0072 - * LMS 2 0x0011-0x0017 + * LMS 5 0x0011-0x0019 * * High-level module nr (3 bits - 0x0...-0x7...) * Name ID Nr of Errors diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 99fe678bf..8430309d4 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -38,6 +38,7 @@ #define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ +#define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT (10) diff --git a/library/lmots.c b/library/lmots.c index 2c4477234..915291c27 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -38,10 +38,12 @@ #include "lmots.h" -#include "mbedtls/md.h" +#include "mbedtls/lms.h" #include "mbedtls/platform_util.h" #include "mbedtls/error.h" +#include "psa/crypto.h" + #define W_SYMBOL_BIT_LEN (8) #define CHECKSUM_LEN (2) #define I_SYMBOL_IDX_LEN (2) @@ -94,56 +96,61 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_MESG_BYTES[D_CONST_LEN]; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init(); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); - ret = mbedtls_md_update( &hash_ctx, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); - if ( ret ) + status = psa_hash_update( &op, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); - if ( ret ) + status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, msg, msg_len ); - if ( ret ) + status = psa_hash_update( &op, msg, msg_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); - if ( ret ) + status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN, + &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } @@ -152,7 +159,7 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -170,7 +177,9 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS unsigned char j_hash_idx_bytes[1]; unsigned short j_hash_idx_min; unsigned short j_hash_idx_max; - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char tmp_hash[32]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -184,57 +193,59 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init(); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); - if ( ret ) + status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, j_hash_idx_bytes, J_HASH_IDX_LEN ); - if ( ret ) + status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); - if ( ret ) + status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, tmp_hash ); - if ( ret ) + status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); } memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); @@ -243,7 +254,7 @@ static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS out: if( ret ) { - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -256,56 +267,75 @@ static int public_key_from_hashed_symbol_array( const unsigned char I_key_identi unsigned char *pub_key ) { unsigned char D_PBLC_bytes[D_CONST_LEN]; - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if ( ret ) + status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_PBLC_bytes, D_CONST_LEN ); - if ( ret ) + status = psa_hash_update( &op, D_PBLC_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ( unsigned char * )y_hashed_symbols, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); - if ( ret ) + status = psa_hash_update( &op, ( unsigned char * )y_hashed_symbols, + MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, pub_key ); + status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } +int mbedtls_lms_error_from_psa(psa_status_t status) +{ + switch( status ) { + case PSA_SUCCESS: + return( 0 ); + case PSA_ERROR_HARDWARE_FAILURE: + return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + case PSA_ERROR_NOT_SUPPORTED: + return( MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ); + case PSA_ERROR_BUFFER_TOO_SMALL: + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + case PSA_ERROR_INVALID_ARGUMENT: + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + default: + return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + } +} + void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) { if( ctx == NULL ) { @@ -585,7 +615,9 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, const unsigned char *seed, size_t seed_len ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned int i_symbol_idx; unsigned char i_symbol_idx_bytes[2]; unsigned char const_bytes[1]; @@ -617,57 +649,60 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) { - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if ( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), + sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, const_bytes, sizeof( const_bytes) ); + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, seed, seed_len ); + status = psa_hash_update( &op, seed, seed_len ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx] ); + status = psa_hash_finish( &op, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx], + 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); if ( ret ) { goto out; } - mbedtls_md_free( &hash_ctx); + psa_hash_abort( &op ); } ctx->MBEDTLS_PRIVATE(have_privkey) = 1; @@ -675,7 +710,7 @@ int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, out: if( ret ) { - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } diff --git a/library/lmots.h b/library/lmots.h index e425f9ec7..ec68967be 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -28,6 +28,8 @@ #include "mbedtls/private_access.h" +#include "psa/crypto.h" + #include #include @@ -115,6 +117,16 @@ typedef struct { output. */ } mbedtls_lmots_context; +/** + * \brief This function converts a \ref psa_status_t to a + * low-level LMS error code. + * + * \param status The psa_status_t to convert + * + * \return The corresponding LMS error code. + */ +int mbedtls_lms_error_from_psa(psa_status_t status); + /** * \brief This function initializes an LMOTS context @@ -140,6 +152,9 @@ void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); * * \param ctx The initialized LMOTS context. * \param type The type that will be set in the context. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. */ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, mbedtls_lmots_algorithm_type_t type ); diff --git a/library/lms.c b/library/lms.c index d8969ba39..4b4f15128 100644 --- a/library/lms.c +++ b/library/lms.c @@ -38,8 +38,9 @@ #include "lmots.h" +#include "psa/crypto.h" + #include "mbedtls/lms.h" -#include "mbedtls/md.h" #include "mbedtls/error.h" #include "mbedtls/platform_util.h" @@ -88,59 +89,61 @@ static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, unsigned int r_node_idx, unsigned char out[32] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_LEAF_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, - ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + status = psa_hash_update( &op, r_node_idx_bytes, 4 ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_LEAF_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_LEAF_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); + status = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return( ret ); } @@ -151,64 +154,68 @@ static int create_merkle_intr_node( const mbedtls_lms_context *ctx, unsigned int r_node_idx, unsigned char out[32] ) { - mbedtls_md_context_t hash_ctx; + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; unsigned char D_INTR_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &hash_ctx ); - ret = mbedtls_md_setup( &hash_ctx, mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), 0 ); - if( ret ) - { - goto out; - } - ret = mbedtls_md_starts( &hash_ctx ); - if( ret ) + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - ret = mbedtls_md_update( &hash_ctx, r_node_idx_bytes, 4 ); + status = psa_hash_update( &op, r_node_idx_bytes, 4 ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); - ret = mbedtls_md_update( &hash_ctx, D_INTR_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTR_bytes, D_CONST_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_update( &hash_ctx, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } - ret = mbedtls_md_finish( &hash_ctx, out ); + ret = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = mbedtls_lms_error_from_psa( status ); if( ret ) { goto out; } out: - mbedtls_md_free( &hash_ctx ); + psa_hash_abort( &op ); return ret; } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0f76aa6df..82dbcbab2 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -8,7 +8,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index b19d074fa..c6c706139 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -6,7 +6,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_SHA256_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From 01c71a17b33bac6c11759df71f0cc56d02ade733 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 31 Aug 2022 15:55:00 +0100 Subject: [PATCH 0206/1574] Update LMS and LMOTS api Fix function names and parameters. Move macros to be more private. Update implementation. Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 390 ++++++------ library/lmots.c | 835 ++++++++++++------------- library/lmots.h | 419 +++++++------ library/lms.c | 701 ++++++++++----------- tests/suites/test_suite_lmots.function | 60 +- tests/suites/test_suite_lms.function | 52 +- 6 files changed, 1238 insertions(+), 1219 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 8430309d4..c463b2abb 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -32,33 +32,24 @@ #include "lmots.h" -#include "mbedtls/private_access.h" +#include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ -#define MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ +#define MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS -0x0013 /**< Specified LMS key has utilised all of its private keys */ #define MBEDTLS_ERR_LMS_VERIFY_FAILED -0x0015 /**< LMS signature verification failed */ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ -#define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT (10) #define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ +#define MBEDTLS_LMS_TYPE_LEN (4) +#define MBEDTLS_LMS_H_TREE_HEIGHT (10u) #define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) -#define MBEDTLS_LMS_PUBKEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ +#define MBEDTLS_LMS_PUBLIC_KEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) -#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) - -#define MBEDTLS_LMS_PUBKEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) #ifdef __cplusplus extern "C" { @@ -72,85 +63,234 @@ typedef enum { } mbedtls_lms_algorithm_type_t; -/** LMS context structure. +/** LMS parameters structure. + * + * This contains the metadata associated with an LMS key, detailing the + * algorithm type, the type of the underlying OTS algorithm, and the key ID. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ + mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per + IANA. Only SHA256_M32_H10 is currently + supported. */ +} mbedtls_lms_parameters_t; + +/** LMS public context structure. + * + *A LMS public key is the hash output that is the root of the merkle tree, and + * the applicable parameter set * * The context must be initialized before it is used. A public key must either - * be imported, or an algorithm type set, a private key generated and the public - * key calculated from it. A context that does not contain a public key cannot - * verify, and a context that does not contain a private key cannot sign. + * be imported or generated from a private context. * * \dot - * digraph lmots { + * digraph lms_public_t { * UNINITIALIZED -> INIT [label="init"]; - * TYPE_SET -> INIT [label="free"]; - * PRIVATE -> INIT [label="free"]; - * PUBLIC -> INIT [label="free"]; - * "PRIVATE+PUBLIC" -> INIT [label="free"]; - * INIT -> TYPE_SET [label="set_algorithm_type"]; - * INIT -> PUBLIC [label="import_public"]; - * PUBLIC -> PUBLIC [label="export_pubkey"]; - * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; - * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; - * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; * } * \enddot */ typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. - Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. - Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(I_key_identifier)[MBEDTLS_LMOTS_I_KEY_ID_LEN]; /*!< The key - identifier. */ - mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per - IANA. Only SHA256_M32_H10 is currently - supported. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is currently - supported. */ - unsigned int MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not - been used. */ - mbedtls_lmots_context *MBEDTLS_PRIVATE(priv_keys); /*!< The private key material. One OTS key - for each leaf node in the merkle tree. */ + mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in the form of the merkle tree root node. */ -} mbedtls_lms_context; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. + Boolean values only. */ +} mbedtls_lms_public_t; +/** LMS private context structure. + * + * A LMS private key is a set of LMOTS private keys, an index to the next usable + * key, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lms_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); + uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not + been used. */ + mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key + for each leaf node in the merkle tree. */ + mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to + build the merkle tree. */ + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. + Boolean values only. */ +} mbedtls_lms_private_t; + /** - * \brief This function initializes an LMS context + * \brief This function initializes an LMS public context * * \param ctx The uninitialized LMS context that will then be * initialized. */ -void mbedtls_lms_init( mbedtls_lms_context *ctx ); +void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); /** - * \brief This function uninitializes an LMS context + * \brief This function uninitializes an LMS public context * * \param ctx The initialized LMS context that will then be * uninitialized. */ -void mbedtls_lms_free( mbedtls_lms_context *ctx ); +void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ); /** - * \brief This function sets the type of an LMS context + * \brief This function imports an LMS public key into a + * public LMS context. * - * \note The parameter set in the context will then be used - * for keygen operations etc. + * \note Before this function is called, the context must + * have been initialized. * - * \param ctx The initialized LMS context. - * \param type The type that will be set in the context. - * \param otstype The type of the LMOTS implementation used by this - * context. + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMS_PUBLIC_KEY_LEN bytes will be read from + * this. + * \param key_size The size of the key being imported. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. */ -int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype); +int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size ); + +/** + * \brief This function verifies a LMS signature, using a + * LMS context that contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or generation). + * + * \param ctx The initialized LMS public context from which the + * public key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_size The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMS_SIG_LEN bytes will be read from + * this. + * \param sig_size The size of the signature to be verified. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ); + +/** + * \brief This function initializes an LMS private context + * + * \param ctx The uninitialized LMS private context that will + * then be initialized. */ +void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); + +/** + * \brief This function uninitializes an LMS private context + * + * \param ctx The initialized LMS private context that will then + * be uninitialized. + */ +void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ); + +/** + * \brief This function generates an LMS private key, and + * stores in into an LMS private context. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param type The LMS parameter set identifier. + * \param otstype The LMOTS parameter set identifier. + * \param f_rng The RNG function to be used to generate the key ID. + * \param p_rng The RNG context to be passed to f_rng + * \param seed The seed used to deterministically generate the + * key. + * \param seed_size The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_size ); + +/** + * \brief This function generates an LMS public key from a + * LMS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMS public context to generate the key + * from and store it into. + * + * \param ctx The LMS private context to read the private key + * from. This must have been initialized and contain a + * private key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, + mbedtls_lms_private_t *priv_ctx ); + +/** + * \brief This function exports an LMS public key from a + * LMS public context that already contains a public + * key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS public context that contains + * the public key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. + * \param key_size The size of the key buffer. + * \param key_len If not NULL, will be written with the size of the + * key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, + size_t key_size, size_t *key_len ); /** * \brief This function creates a LMS signature, using a - * LMOTS context that contains a private key. + * LMS context that contains unused private keys. * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with @@ -167,135 +307,27 @@ int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, * important to not perform copy operations on LMS * contexts that contain private key material. * - * \param ctx The initialized LMS context from which the + * \param ctx The initialized LMS private context from which the * private key will be read. * \param f_rng The RNG function to be used for signature * generation. * \param p_rng The RNG context to be passed to f_rng * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buf into which the signature will be stored. - * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. + * Must be at least #MBEDTLS_LMS_SIG_LEN in size. + * \param sig_size The size of the buffer the signature will be + * written into. + * \param sig_len If not NULL, will be written with the size of the + * signature. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_sign( mbedtls_lms_context *ctx, +int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_len, - unsigned char *sig); - -/** - * \brief This function verifies a LMS signature, using a - * LMS context that contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and must contain a public key - * (either by import or generation). - * - * \param ctx The initialized LMS context from which the public - * key will be read. - * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. - * \param sig The buf from which the signature will be read. - * #MBEDTLS_LMS_SIG_LEN bytes will be read from - * this. - * - * \return \c 0 on successful verification. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_verify( const mbedtls_lms_context *ctx, - const unsigned char *msg, unsigned int msg_len, - const unsigned char *sig ); - -/** - * \brief This function imports an LMOTS public key into a - * LMS context. - * - * \note Before this function is called, the context must - * have been initialized. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS context store the key in. - * \param key The buffer from which the key will be read. - * #MBEDTLS_LMS_PUBKEY_LEN bytes will be read from - * this. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, - const unsigned char *key ); - -/** - * \brief This function exports an LMOTS public key from a - * LMS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMS_PUBKEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, - unsigned char *key ); - -/** - * \brief This function generates an LMS public key from a - * LMS context that already contains a private key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a private key. - * - * \param ctx The initialized LMS context to generate the key - * from and store it into. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ); - -/** - * \brief This function generates an LMS private key, and - * stores in into an LMS context. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and the type of the LMS - * context set using mbedtls_lmots_set_algorithm_type - * - * \note The seed must have at least 256 bits of entropy. - * - * \param ctx The initialized LMOTS context to generate the key - * into. - * \param f_rng The RNG function to be used to generate the key ID. - * \param p_rng The RNG context to be passed to f_rng - * \param seed The seed used to deterministically generate the - * key. - * \param seed_len The length of the seed. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, - size_t seed_len ); + void* p_rng, unsigned char *msg, unsigned int msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len); #ifdef __cplusplus } diff --git a/library/lmots.c b/library/lmots.c index 915291c27..e2f86e62d 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,18 +44,29 @@ #include "psa/crypto.h" -#define W_SYMBOL_BIT_LEN (8) -#define CHECKSUM_LEN (2) -#define I_SYMBOL_IDX_LEN (2) -#define J_HASH_IDX_LEN (1) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) + +#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) + +/* We only support parameter sets that use 8-bit digits, as it does not require + * translation logic between digits and bytes */ +#define W_WINTERNITZ_PARAMETER (8u) +#define CHECKSUM_LEN (2) +#define I_DIGIT_IDX_LEN (2) +#define J_HASH_IDX_LEN (1) +#define D_CONST_LEN (2) + +#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) + #define D_CONST_LEN (2) +static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; +static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -#define SYMBOL_MAX_VAL ((1 << W_SYMBOL_BIT_LEN) - 1) - -#define D_PBLC_CONSTANT (0x8080) -#define D_MESG_CONSTANT (0x8181) - -static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) { size_t idx; @@ -64,7 +75,7 @@ static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *by } } -static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes) { size_t idx; unsigned int val = 0; @@ -76,30 +87,28 @@ static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) return val; } -static unsigned short lmots_checksum_generate( const unsigned char* digest ) +static unsigned short lmots_checksum_calculate( const unsigned char* digest ) { size_t idx; - unsigned short sum = 0; + unsigned sum = 0; for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) { - sum += ( 1 << W_SYMBOL_BIT_LEN ) - 1 - digest[idx]; + sum += DIGIT_MAX_VALUE - digest[idx]; } return sum; } -static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], - unsigned char out[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN] ) +static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_len, + const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], + unsigned char out[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_MESG_BYTES[D_CONST_LEN]; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -107,166 +116,146 @@ static int create_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMO status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_MESG_CONSTANT, D_CONST_LEN, D_MESG_BYTES ); - status = psa_hash_update( &op, D_MESG_BYTES, sizeof( D_MESG_BYTES ) ); + status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, msg, msg_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN, + status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - checksum = lmots_checksum_generate( out ); - val_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + checksum = lmots_checksum_calculate( out ); + unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); -out: +exit: psa_hash_abort( &op ); return( ret ); } -static int hash_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char x_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], - const unsigned char hash_idx_min_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], - const unsigned char hash_idx_max_values[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN], - unsigned char output[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32] ) +static int hash_digit_array( const mbedtls_lmots_parameters_t *params, + const unsigned char x_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *hash_idx_min_values, + const unsigned char *hash_idx_max_values, + unsigned char output[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN] ) { - unsigned char i_symbol_idx; + unsigned char i_digit_idx; unsigned char j_hash_idx; - unsigned char i_symbol_idx_bytes[I_SYMBOL_IDX_LEN]; + unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN]; unsigned char j_hash_idx_bytes[1]; - unsigned short j_hash_idx_min; - unsigned short j_hash_idx_max; + /* These can't be unsigned chars, because they are sometimes set to + * #DIGIT_MAX_VALUE, which has a value of 256 + */ + unsigned int j_hash_idx_min; + unsigned int j_hash_idx_max; psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char tmp_hash[32]; + unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) + op = psa_hash_operation_init(); + + for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) { - memcpy( tmp_hash, &x_symbol_array[i_symbol_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( tmp_hash, &x_digit_array[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN ); - j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_symbol_idx] : 0; - j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_symbol_idx] : SYMBOL_MAX_VAL; + j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { - op = psa_hash_operation_init(); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; psa_hash_abort( &op ); } - memcpy( &output[i_symbol_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &output[i_digit_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); } -out: +exit: if( ret ) { psa_hash_abort( &op ); return( ret ); } + mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) ); + return ret; } -static int public_key_from_hashed_symbol_array( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32], - unsigned char *pub_key ) +static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, + const unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + unsigned char *pub_key ) { - unsigned char D_PBLC_bytes[D_CONST_LEN]; psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; @@ -276,44 +265,36 @@ static int public_key_from_hashed_symbol_array( const unsigned char I_key_identi status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, + params->MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_PBLC_CONSTANT, D_CONST_LEN, D_PBLC_bytes ); - status = psa_hash_update( &op, D_PBLC_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ( unsigned char * )y_hashed_symbols, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, ( unsigned char * )y_hashed_digits, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); -out: +exit: psa_hash_abort( &op ); return( ret ); } @@ -336,96 +317,352 @@ int mbedtls_lms_error_from_psa(psa_status_t status) } } -void mbedtls_lmots_init( mbedtls_lmots_context *ctx ) +void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ) { - if( ctx == NULL ) { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; } -void mbedtls_lmots_free( mbedtls_lmots_context *ctx ) +void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) { - if( ctx == NULL ) - { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; } -int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, - mbedtls_lmots_algorithm_type_t type ) +int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_len ) { - if( ctx == NULL ) + if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = + network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(MBEDTLS_PRIVATE(params).q_leaf_identifier), + key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( ctx->MBEDTLS_PRIVATE(public_key), + key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char *sig, - unsigned char *out ) +int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len) { - unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; - unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if (I_key_identifier == NULL || msg == NULL || sig == NULL || out == NULL) + if ( msg == NULL && msg_size != 0 ) + { + return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( sig_size != MBEDTLS_LMOTS_SIG_LEN || out_size < MBEDTLS_LMOTS_N_HASH_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = create_symbol_array( I_key_identifier, q_leaf_identifier, msg, msg_len, - sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_symbol_array ); + ret = create_digit_array_with_checksum( params, msg, msg_size, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_digit_array ); if ( ret ) { return ( ret ); } - ret = hash_symbol_array( I_key_identifier, q_leaf_identifier, - ( const unsigned char( *)[32] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), - tmp_symbol_array, NULL, y_hashed_symbols ); + ret = hash_digit_array( params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), + tmp_digit_array, NULL, y_hashed_digits ); if ( ret ) { return ( ret ); } - ret = public_key_from_hashed_symbol_array( I_key_identifier, q_leaf_identifier, - ( const unsigned char( *)[32] )y_hashed_symbols, + ret = public_key_from_hashed_digit_array( params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, out ); if ( ret ) { return ( ret ); } + if ( out_len != NULL ) + { + *out_len = MBEDTLS_LMOTS_N_HASH_LEN; + } + return( 0 ); } -int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_len, - unsigned char *sig ) +int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, + size_t msg_size, const unsigned char *sig, + size_t sig_size ) { - unsigned char tmp_symbol_array[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN]; - unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL || f_rng == NULL || p_rng == NULL || msg == NULL || sig == NULL) + if ( msg == NULL && msg_size != 0 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( !ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE( type ) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->MBEDTLS_PRIVATE(params), + msg, msg_size, sig, sig_size, + Kc_public_key_candidate, + MBEDTLS_LMOTS_N_HASH_LEN, + NULL); + if ( ret ) + { + return( ret ); + } + + if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(public_key), + sizeof( ctx->MBEDTLS_PRIVATE(public_key) ) ) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + return( 0 ); +} + +void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) +{ + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; +} + +void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ) +{ + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; +} + +int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size ) +{ + psa_hash_operation_t op; + psa_status_t status; + size_t output_hash_len; + unsigned int i_digit_idx; + unsigned char i_digit_idx_bytes[2]; + unsigned char const_bytes[1]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + I_key_identifier, + sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + + unsigned_int_to_network_bytes(q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier) ); + + unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + + for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + { + op = psa_hash_operation_init( ); + status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret != 0 ) + goto exit; + + ret = psa_hash_update( &op, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_update( &op, seed, seed_size ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + status = psa_hash_finish( &op, + ctx->MBEDTLS_PRIVATE(private_key)[i_digit_idx], + 32, &output_hash_len ); + ret = mbedtls_lms_error_from_psa( status ); + if ( ret ) + goto exit; + + psa_hash_abort( &op ); + } + + ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + +exit: + if( ret ) + { + psa_hash_abort( &op ); + return( ret ); + } + + return ret; +} + +int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, + mbedtls_lmots_private_t *priv_ctx) +{ + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if( ctx == NULL ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) + if ( !priv_ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + ret = hash_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->MBEDTLS_PRIVATE(private_key)), + NULL, NULL, y_hashed_digits ); + if ( ret ) + { + return( ret ); + } + + ret = public_key_from_hashed_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, + ctx->MBEDTLS_PRIVATE(public_key) ); + if ( ret ) + { + return( ret ); + } + + memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + sizeof( ctx->MBEDTLS_PRIVATE(params) ) ); + + ctx->MBEDTLS_PRIVATE(have_public_key = 1); + + return( ret ); +} + + +int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ) +{ + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(public_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + } + + return( 0 ); +} + +int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t* sig_len ) +{ + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( msg == NULL && msg_size != 0 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + if( sig_size < MBEDTLS_LMOTS_SIG_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + /* Check that a private key is loaded */ + if ( !ctx->MBEDTLS_PRIVATE(have_private_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -436,285 +673,43 @@ int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, return( ret ); } - ret = create_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - msg, msg_len, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, - tmp_symbol_array ); + ret = create_digit_array_with_checksum( &ctx->MBEDTLS_PRIVATE(params), + msg, msg_size, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_digit_array ); if ( ret ) { return( ret ); } - ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), - NULL, tmp_symbol_array, tmp_sig ); + ret = hash_digit_array( &ctx->MBEDTLS_PRIVATE(params), + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->MBEDTLS_PRIVATE(private_key)), + NULL, tmp_digit_array, tmp_sig ); if ( ret ) { return( ret ); } - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ - ctx->MBEDTLS_PRIVATE(have_privkey) = 0; - mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(priv_key), - sizeof(ctx->MBEDTLS_PRIVATE(priv_key))); + ctx->MBEDTLS_PRIVATE(have_private_key) = 0; + mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(private_key), + sizeof(ctx->MBEDTLS_PRIVATE(private_key))); memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN); + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); - return( 0 ); -} - -int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, - size_t msg_len, const unsigned char *sig ) -{ - unsigned char Kc_public_key_candidate[32]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL || msg == NULL || sig == NULL) + if( sig_len != NULL ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( !ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); - } - - ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - msg, msg_len, sig, - Kc_public_key_candidate ); - if ( ret ) - { - return( ret ); - } - - if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(pub_key), - sizeof( ctx->MBEDTLS_PRIVATE(pub_key) ) ) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + *sig_len = MBEDTLS_LMS_SIG_LEN; } return( 0 ); } -int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, - const unsigned char *key ) -{ - if ( ctx == NULL || key == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - ctx->MBEDTLS_PRIVATE(type) = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); - - memcpy( ctx->MBEDTLS_PRIVATE(pub_key), key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; - - return( 0 ); -} - -int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, - unsigned char *key ) -{ - if ( ctx == NULL || key == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - - memcpy( key + MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(pub_key), - MBEDTLS_LMOTS_N_HASH_LEN ); - - return( 0 ); -} - - -int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ) -{ - unsigned char y_hashed_symbols[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - ret = hash_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )(ctx->MBEDTLS_PRIVATE(priv_key)), - NULL, NULL, y_hashed_symbols ); - if ( ret ) - { - return( ret ); - } - - ret = public_key_from_hashed_symbol_array( ctx->MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - ( const unsigned char( *)[32] )y_hashed_symbols, - ctx->MBEDTLS_PRIVATE(pub_key) ); - if ( ret ) - { - return( ret ); - } - - ctx->MBEDTLS_PRIVATE(have_pubkey = 1); - - return( ret ); -} - -int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned int q_leaf_identifier, - const unsigned char *seed, - size_t seed_len ) -{ - psa_hash_operation_t op; - psa_status_t status; - size_t output_hash_len; - unsigned int i_symbol_idx; - unsigned char i_symbol_idx_bytes[2]; - unsigned char const_bytes[1]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL || I_key_identifier == NULL || seed == NULL) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if ( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), I_key_identifier, - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - - ctx->MBEDTLS_PRIVATE(q_leaf_identifier) = q_leaf_identifier; - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(q_leaf_identifier), MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ); - - val_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); - - for ( i_symbol_idx = 0; i_symbol_idx < MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN; i_symbol_idx++ ) - { - op = psa_hash_operation_init( ); - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) - { - goto out; - } - - ret = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) { - goto out; - } - - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes), - sizeof( ctx->MBEDTLS_PRIVATE(q_leaf_identifier_bytes) ) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - val_to_network_bytes( i_symbol_idx, I_SYMBOL_IDX_LEN, i_symbol_idx_bytes ); - status = psa_hash_update( &op, i_symbol_idx_bytes, I_SYMBOL_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_update( &op, seed, seed_len ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - status = psa_hash_finish( &op, ctx->MBEDTLS_PRIVATE(priv_key)[i_symbol_idx], - 32, &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) - { - goto out; - } - - psa_hash_abort( &op ); - } - - ctx->MBEDTLS_PRIVATE(have_privkey) = 1; - -out: - if( ret ) - { - psa_hash_abort( &op ); - return( ret ); - } - - return ret; -} - #endif /* MBEDTLS_LMS_C */ diff --git a/library/lmots.h b/library/lmots.h index ec68967be..ca7d4bf34 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -26,7 +26,7 @@ #ifndef MBEDTLS_LMOTS_H #define MBEDTLS_LMOTS_H -#include "mbedtls/private_access.h" +#include "mbedtls/build_info.h" #include "psa/crypto.h" @@ -34,27 +34,19 @@ #include #define MBEDTLS_LMOTS_N_HASH_LEN (32) -#define MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN (34) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT (34) #define MBEDTLS_LMOTS_TYPE_LEN (4) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) #define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ - (MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN * MBEDTLS_LMOTS_N_HASH_LEN)) + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN)) -#define MBEDTLS_LMOTS_PUBKEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ +#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) -#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) - -#define MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBKEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBKEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBKEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) - +#define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) #ifdef __cplusplus extern "C" { @@ -68,54 +60,93 @@ typedef enum { } mbedtls_lmots_algorithm_type_t; -/** LMOTS context structure. +/** LMOTS parameters structure. + * + * This contains the metadata associated with an LMOTS key, detailing the + * algorithm type, the key ID, and the leaf identifier should be key be part of + * a LMS key. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which + leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ +} mbedtls_lmots_parameters_t; + +/** LMOTS public context structure. + * + * A LMOTS public key is a hash output, and the applicable parameter set. * * The context must be initialized before it is used. A public key must either - * be imported, or an algorithm type set, a private key generated and the public - * key calculated from it. A context that does not contain a public key cannot - * verify, and a context that does not contain a private key cannot sign. - * Signing a message will remove the private key from the context, as private - * keys can only be used a single time. + * be imported or generated from a private context. * * \dot - * digraph lmots { + * digraph lmots_public_t { * UNINITIALIZED -> INIT [label="init"]; - * TYPE_SET -> INIT [label="free"]; - * PRIVATE -> INIT [label="free"]; - * PUBLIC -> INIT [label="free"]; - * "PRIVATE+PUBLIC" -> INIT [label="free"]; - * INIT -> TYPE_SET [label="set_algorithm_type"]; - * PRIVATE -> TYPE_SET [label="sign"]; - * "PRIVATE+PUBLIC" -> PUBLIC [label="sign"]; - * INIT -> PUBLIC [label="import_public"]; - * PUBLIC -> PUBLIC [label="export_pubkey"]; - * "PRIVATE+PUBLIC" -> "PRIVATE+PUBLIC" [label="export_pubkey"]; - * PRIVATE -> "PRIVATE+PUBLIC" [label="gen_pubkey"]; - * TYPE_SET -> PRIVATE [label="gen_privkey"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; * } * \enddot */ typedef struct { - unsigned char MBEDTLS_PRIVATE(have_privkey); /*!< Whether the context contains a private key. + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(public_key)[32]; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(have_pubkey); /*!< Whether the context contains a public key. +} mbedtls_lmots_public_t; + +/** LMOTS private context structure. + * + * A LMOTS private key is one hash output for each of digit of the digest + + * checksum, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * HAVE_PRIVATE_KEY -> INIT [label="sign"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][32]; + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ - unsigned int MBEDTLS_PRIVATE(q_leaf_identifier); /*!< Which leaf of the LMS key this is. - 0 if the key is not part of an LMS key. */ - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier_bytes)[MBEDTLS_LMOTS_Q_LEAF_ID_LEN];/*!< The - leaf identifier in network bytes form. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is currently - supported. */ - unsigned char MBEDTLS_PRIVATE(priv_key[MBEDTLS_LMOTS_P_SIG_SYMBOL_LEN][32]); /*!< The private - key, one hash output per byte of the encoded - symbol string P (32 bytes of hash output + - 2 bytes of checksum). */ - unsigned char MBEDTLS_PRIVATE(pub_key[32]); /*!< The public key, in the form of a SHA256 - output. */ -} mbedtls_lmots_context; +} mbedtls_lmots_private_t; + +/** + * \brief This function converts an unsigned int into a + * network-byte-order (big endian) string. + * + * \param val The unsigned integer value + * \param len The length of the string. + * \param bytes The string to output into. + * + * \return The corresponding LMS error code. + */ +void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes); + +/** + * \brief This function converts a network-byte-order + * (big endian) string into an unsigned integer. + * + * \param len The length of the string. + * \param bytes The string. + * + * \return The corresponding LMS error code. + */ +unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes); /** * \brief This function converts a \ref psa_status_t to a @@ -129,35 +160,41 @@ int mbedtls_lms_error_from_psa(psa_status_t status); /** - * \brief This function initializes an LMOTS context + * \brief This function initializes a public LMOTS context * * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init( mbedtls_lmots_context *ctx ); +void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); /** - * \brief This function uninitializes an LMOTS context + * \brief This function uninitializes a public LMOTS context * * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free( mbedtls_lmots_context *ctx ); +void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); /** - * \brief This function sets the type of an LMOTS context + * \brief This function imports an LMOTS public key into a + * LMOTS context. * - * \note The parameter set in the context will then be used - * for keygen operations etc. + * \note Before this function is called, the context must + * have been initialized. * - * \param ctx The initialized LMOTS context. - * \param type The type that will be set in the context. + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context store the key in. + * \param key The buffer from which the key will be read. + * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read from + * this. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, - mbedtls_lmots_algorithm_type_t type ); +int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_size ); /** * \brief This function creates a candidate public key from @@ -170,12 +207,10 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * mbedtls_lmots_verify will be used for LMOTS * signature verification. * - * \param I_key_identifier The key identifier of the key, as a 16-byte string. - * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is - * not being used as part of an LMS key, this should - * be set to 0. + * \param params The LMOTS parameter set, q and I values as an + * mbedtls_lmots_parameters_t struct. * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buffer from which the signature will be read. * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. * \param out The buffer where the candidate public key will be @@ -185,13 +220,128 @@ int mbedtls_lmots_set_algorithm_type( mbedtls_lmots_context *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN], - const unsigned char *msg, - size_t msg_len, - const unsigned char *sig, - unsigned char *out ); +int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len); +/** + * \brief This function verifies a LMOTS signature, using a + * LMOTS context that contains a public key. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note Before this function is called, the context must + * have been initialized and must contain a public key + * (either by import or calculation from a private key). + * + * \param ctx The initialized LMOTS context from which the public + * key will be read. + * \param msg The buffer from which the message will be read. + * \param msg_size The size of the message that will be read. + * \param sig The buf from which the signature will be read. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. + * + * \return \c 0 on successful verification. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, + size_t msg_size, const unsigned char *sig, + size_t sig_size ); + +/** + * \brief This function initializes a private LMOTS context + * + * \param ctx The uninitialized LMOTS context that will then be + * initialized. + */ +void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); + +/** + * \brief This function uninitializes a private LMOTS context + * + * \param ctx The initialized LMOTS context that will then be + * uninitialized. + */ +void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); + +/** + * \brief This function generates an LMOTS private key, and + * stores in into an LMOTS context. + * + * \warning This function is **not intended for use in + * production**, due to as-yet unsolved problems with + * handling stateful keys. + * + * \note The seed must have at least 256 bits of entropy. + * + * \param ctx The initialized LMOTS context to generate the key + * into. + * \param I_key_identifier The key identifier of the key, as a 16-byte string. + * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is + * not being used as part of an LMS key, this should + * be set to 0. + * \param seed The seed used to deterministically generate the + * key. + * \param seed_size The length of the seed. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size ); + +/** + * \brief This function generates an LMOTS public key from a + * LMOTS context that already contains a private key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a private key. + * + * \param ctx The initialized LMOTS context to generate the key + * from and store it into. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, + mbedtls_lmots_private_t *priv_ctx); + + +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); /** * \brief This function creates a LMOTS signature, using a * LMOTS context that contains a private key. @@ -213,135 +363,18 @@ int mbedtls_lmots_generate_pub_key_candidate( const unsigned char I_key_identifi * generation. * \param p_rng The RNG context to be passed to f_rng * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. + * \param msg_size The size of the message that will be read. * \param sig The buf into which the signature will be stored. * Must be at least #MBEDTLS_LMOTS_SIG_LEN in size. * * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_sign( mbedtls_lmots_context *ctx, +int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_len, - unsigned char *sig ); + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t* sig_len ); -/** - * \brief This function verifies a LMOTS signature, using a - * LMOTS context that contains a public key. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and must contain a public key - * (either by import or generation). - * - * \param ctx The initialized LMOTS context from which the public - * key will be read. - * \param msg The buffer from which the message will be read. - * \param msg_len The size of the message that will be read. - * \param sig The buf from which the signature will be read. - * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from - * this. - * - * \return \c 0 on successful verification. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_verify( mbedtls_lmots_context *ctx, const unsigned char *msg, - size_t msg_len, const unsigned char *sig ); - -/** - * \brief This function imports an LMOTS public key into a - * LMOTS context. - * - * \note Before this function is called, the context must - * have been initialized. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context store the key in. - * \param key The buffer from which the key will be read. - * #MBEDTLS_LMOTS_PUBKEY_LEN bytes will be read from - * this. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_import_pubkey( mbedtls_lmots_context *ctx, - const unsigned char *key ); - -/** - * \brief This function exports an LMOTS public key from a - * LMOTS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMOTS_PUBKEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_export_pubkey( mbedtls_lmots_context *ctx, - unsigned char *key ); - -/** - * \brief This function generates an LMOTS public key from a - * LMOTS context that already contains a private key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a private key. - * - * \param ctx The initialized LMOTS context to generate the key - * from and store it into. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_gen_pubkey( mbedtls_lmots_context *ctx ); - -/** - * \brief This function generates an LMOTS private key, and - * stores in into an LMOTS context. - * - * \warning This function is **not intended for use in - * production**, due to as-yet unsolved problems with - * handling stateful keys. - * - * \note Before this function is called, the context must - * have been initialized and the type of the LMOTS - * context set using mbedtls_lmots_set_algorithm_type - * - * \note The seed must have at least 256 bits of entropy. - * - * \param ctx The initialized LMOTS context to generate the key - * into. - * \param I_key_identifier The key identifier of the key, as a 16-byte string. - * \param q_leaf_identifier The leaf identifier of key. If this LMOTS key is - * not being used as part of an LMS key, this should - * be set to 0. - * \param seed The seed used to deterministically generate the - * key. - * \param seed_len The length of the seed. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_gen_privkey( mbedtls_lmots_context *ctx, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned int q_leaf_identifier, - const unsigned char *seed, - size_t seed_len ); #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 4b4f15128..b58aeea7f 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,45 +54,33 @@ #define mbedtls_free free #endif -#define MERKLE_TREE_NODE_AM (1 << (MBEDTLS_LMS_H_TREE_HEIGHT + 1)) -#define MERKLE_TREE_LEAF_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) -#define MERKLE_TREE_INTR_AM (1 << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) +#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) + +#define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) + + +#define MERKLE_TREE_NODE_AM (1u << (MBEDTLS_LMS_H_TREE_HEIGHT + 1u)) +#define MERKLE_TREE_LEAF_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) +#define MERKLE_TREE_INTERNAL_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) #define D_CONST_LEN (2) +static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; +static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -#define D_LEAF_CONSTANT (0x8282) -#define D_INTR_CONSTANT (0x8383) - -static void val_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) -{ - size_t idx; - - for (idx = 0; idx < len; idx++) { - bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; - } -} - -static unsigned int network_bytes_to_val(size_t len, const unsigned char *bytes) -{ - size_t idx; - unsigned int val = 0; - - for (idx = 0; idx < len; idx++) { - val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); - } - - return val; -} - -static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, +static int create_merkle_leaf_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], unsigned int r_node_idx, - unsigned char out[32] ) + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_LEAF_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -100,64 +88,49 @@ static int create_merkle_leaf_node( const mbedtls_lms_context *ctx, status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_LEAF_CONSTANT, D_CONST_LEN, D_LEAF_bytes ); - status = psa_hash_update( &op, D_LEAF_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - status = psa_hash_finish( &op, out, 32, &output_hash_len); + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; -out: +exit: psa_hash_abort( &op ); return( ret ); } -static int create_merkle_intr_node( const mbedtls_lms_context *ctx, - const unsigned char left_node[32], - const unsigned char rght_node[32], - unsigned int r_node_idx, - unsigned char out[32] ) +static int create_merkle_internal_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], + const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char D_INTR_bytes[D_CONST_LEN]; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -165,75 +138,62 @@ static int create_merkle_intr_node( const mbedtls_lms_context *ctx, status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - val_to_network_bytes( D_INTR_CONSTANT, D_CONST_LEN, D_INTR_bytes ); - status = psa_hash_update( &op, D_INTR_bytes, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - status = psa_hash_update( &op, rght_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, right_node, MBEDTLS_LMOTS_N_HASH_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; - ret = psa_hash_finish( &op, out, 32, &output_hash_len); + ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) - { - goto out; - } + goto exit; -out: +exit: psa_hash_abort( &op ); return ret; } -static int generate_merkle_tree( mbedtls_lms_context *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][32] ) +static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) { unsigned int priv_key_idx; unsigned int r_node_idx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTR_AM; priv_key_idx++ ) + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + priv_key_idx++ ) { - r_node_idx = MERKLE_TREE_INTR_AM + priv_key_idx; + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - ret = create_merkle_leaf_node( ctx, ctx->MBEDTLS_PRIVATE(priv_keys)[priv_key_idx].pub_key, - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_leaf_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(ots_public_keys)[priv_key_idx].MBEDTLS_PRIVATE(public_key), + r_node_idx, tree[r_node_idx] ); if( ret ) { return( ret ); @@ -242,11 +202,12 @@ static int generate_merkle_tree( mbedtls_lms_context *ctx, /* Then the internal nodes, in reverse order so that we can guarantee the * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTR_AM - 1; r_node_idx > 0; r_node_idx-- ) + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + r_node_idx-- ) { - ret = create_merkle_intr_node( ctx, tree[(r_node_idx * 2)], - tree[(r_node_idx * 2 + 1)], - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_internal_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) { return( ret ); @@ -256,18 +217,17 @@ static int generate_merkle_tree( mbedtls_lms_context *ctx, return( 0 ); } -static int get_merkle_path( mbedtls_lms_context *ctx, - unsigned int leaf_node_id, unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][32] ) +static int get_merkle_path( mbedtls_lms_private_t *ctx, + unsigned int leaf_node_id, + unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) { - unsigned char tree[MERKLE_TREE_NODE_AM][32]; + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; unsigned int curr_node_id = leaf_node_id; - unsigned int parent_node_id; - unsigned char sibling_relative_id; unsigned int adjacent_node_id; unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = generate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( ctx, tree); if( ret ) { return( ret ); @@ -275,195 +235,107 @@ static int get_merkle_path( mbedtls_lms_context *ctx, for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) { - parent_node_id = ( curr_node_id / 2 ); - - /* 0 if the node is a left child, 1 if the node is a right child */ - sibling_relative_id = curr_node_id & 1; - - adjacent_node_id = ( parent_node_id * 2 ) + ( 1 - sibling_relative_id ); + adjacent_node_id = curr_node_id ^ 1; memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); - curr_node_id = parent_node_id; + curr_node_id >>=1; } return( 0 ); } -void mbedtls_lms_init( mbedtls_lms_context *ctx ) +void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) { - if( ctx == NULL ) - { - return; - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; } -void mbedtls_lms_free( mbedtls_lms_context *ctx ) +void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ) { - unsigned int idx; - - if( ctx == NULL ) - { - return; - } - - if( ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - mbedtls_lmots_free( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - } - - mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); - } - - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_context ) ); + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); } -int mbedtls_lms_set_algorithm_type( mbedtls_lms_context *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype ) +int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size ) { - if( ctx == NULL ) + mbedtls_lms_algorithm_type_t type; + mbedtls_lmots_algorithm_type_t otstype; + + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(otstype) = otstype; + otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + + memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN ); + + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lms_sign( mbedtls_lms_context *ctx, - int ( *f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_len, - unsigned char *sig ) -{ - unsigned int q_leaf_identifier; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ! ctx->MBEDTLS_PRIVATE(have_privkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( msg == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( sig == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_AM ) - { - return( MBEDTLS_ERR_LMS_OUT_OF_PRIV_KEYS ); - } - - - q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); - /* This new value must _always_ be written back to the disk before the - * signature is returned. - */ - ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; - - ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(priv_keys)[q_leaf_identifier], - f_rng, p_rng, msg, msg_len, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET ); - if( ret ) - { - return( ret ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); - val_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); - - ret = get_merkle_path( ctx, MERKLE_TREE_INTR_AM + q_leaf_identifier, - ( unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); - if( ret ) - { - return( ret ); - } - - return( 0 ); -} - -int mbedtls_lms_verify( const mbedtls_lms_context *ctx, - const unsigned char *msg, unsigned int msg_len, - const unsigned char *sig ) +int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ) { unsigned int q_leaf_identifier; unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char Tc_candidate_root_node[32]; + unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES]; unsigned int height; unsigned int curr_node_id; unsigned int parent_node_id; const unsigned char* left_node; - const unsigned char* rght_node; + const unsigned char* right_node; + mbedtls_lmots_parameters_t ots_params; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) + if( sig_size != MBEDTLS_LMS_SIG_LEN ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( msg == NULL) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig == NULL) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - - if( network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { @@ -471,29 +343,39 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, } - q_leaf_identifier = network_bytes_to_val( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); - if( q_leaf_identifier >= MERKLE_TREE_LEAF_AM ) + if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - ret = mbedtls_lmots_generate_pub_key_candidate( ctx->MBEDTLS_PRIVATE(I_key_identifier), - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET, - msg, msg_len, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - Kc_candidate_ots_pub_key ); + memcpy(ots_params.MBEDTLS_PRIVATE(I_key_identifier), + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN); + unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ots_params.MBEDTLS_PRIVATE(q_leaf_identifier) ); + ots_params.type = ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype); + + ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMOTS_SIG_LEN, + Kc_candidate_ots_pub_key, + sizeof(Kc_candidate_ots_pub_key), + NULL ); if( ret ) { return( ret ); } - create_merkle_leaf_node( ctx, Kc_candidate_ots_pub_key, - MERKLE_TREE_INTR_AM + q_leaf_identifier, - Tc_candidate_root_node ); + create_merkle_leaf_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTR_AM + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier; for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) { @@ -502,17 +384,18 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; - rght_node = Tc_candidate_root_node; + left_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - rght_node = ( ( const unsigned char( * )[32] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; } - create_merkle_intr_node( ctx, left_node, rght_node, parent_node_id, - Tc_candidate_root_node); + create_merkle_internal_node( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + left_node, right_node, parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } @@ -526,115 +409,148 @@ int mbedtls_lms_verify( const mbedtls_lms_context *ctx, return( 0 ); } -int mbedtls_lms_import_pubkey( mbedtls_lms_context *ctx, - const unsigned char *key ) +void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { - mbedtls_lms_algorithm_type_t type; - mbedtls_lmots_algorithm_type_t otstype; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; +} - if( ctx == NULL ) +void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) +{ + unsigned int idx; + + if( ctx->MBEDTLS_PRIVATE(have_private_key) ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); } - if( key == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); +} + + +int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *seed, + size_t seed_size ) +{ + unsigned int idx = 0; + unsigned int free_idx = 0; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - type = network_bytes_to_val( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(type) = type; - otstype = network_bytes_to_val( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(otstype) = otstype; - memcpy( ctx->MBEDTLS_PRIVATE(I_key_identifier), key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + + f_rng( p_rng, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + ctx->MBEDTLS_PRIVATE(ots_private_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + sizeof( mbedtls_lmots_private_t)); + if( ctx->MBEDTLS_PRIVATE(ots_private_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto exit; + } + + ctx->MBEDTLS_PRIVATE(ots_public_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + sizeof( mbedtls_lmots_public_t)); + if( ctx->MBEDTLS_PRIVATE(ots_public_keys) == NULL ) + { + ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; + goto exit; + } + + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + mbedtls_lmots_init_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + mbedtls_lmots_init_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + } + + + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + { + ret = mbedtls_lmots_generate_private_key( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx], + otstype, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + idx, seed, seed_size ); + if( ret) + goto exit; + + ret = mbedtls_lmots_calculate_public_key( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx], + &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + if( ret) + goto exit; + } + + ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; + ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + +exit: + if( ret ) + { + for ( free_idx = 0; free_idx < idx; free_idx++ ) { + mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[free_idx] ); + mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[free_idx] ); + } + + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); + mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + return( ret ); + } return( 0 ); } -int mbedtls_lms_export_pubkey( mbedtls_lms_context *ctx, - unsigned char *key ) +int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, + mbedtls_lms_private_t *priv_ctx ) { - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( key == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - if( ! ctx->MBEDTLS_PRIVATE(have_pubkey) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(type), - MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_TYPE_OFFSET ); - val_to_network_bytes( ctx->MBEDTLS_PRIVATE(otstype), - MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBKEY_OTSTYPE_OFFSET ); - memcpy( key + MBEDTLS_LMS_PUBKEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(I_key_identifier), - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMS_PUBKEY_ROOT_NODE_OFFSET, - ctx->MBEDTLS_PRIVATE(T_1_pub_key), - MBEDTLS_LMOTS_N_HASH_LEN ); - - return( 0 ); -} - -int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) -{ - unsigned char tree[MERKLE_TREE_NODE_AM][32]; - unsigned int idx; + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ! ctx->MBEDTLS_PRIVATE( have_privkey ) ) + if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } + memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + sizeof(mbedtls_lmots_parameters_t) ); - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - ret = mbedtls_lmots_gen_pubkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - if( ret ) - { - return( ret ); - } - } - - ret = generate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( priv_ctx, tree); if( ret ) { return( ret ); @@ -643,83 +559,112 @@ int mbedtls_lms_gen_pubkey( mbedtls_lms_context *ctx ) /* Root node is always at position 1, due to 1-based indexing */ memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_pubkey) = 1; + ctx->MBEDTLS_PRIVATE(have_public_key) = 1; return( 0 ); } -int mbedtls_lms_gen_privkey( mbedtls_lms_context *ctx, - int ( *f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, - size_t seed_len ) + +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, + size_t key_size, size_t *key_len ) { - unsigned int idx; + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + unsigned_int_to_network_bytes( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + unsigned_int_to_network_bytes( + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype), + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + ctx->MBEDTLS_PRIVATE(T_1_pub_key), + MBEDTLS_LMOTS_N_HASH_LEN ); + + if( key_len != NULL ) { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + } + + return( 0 ); +} + + +int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void* p_rng, unsigned char *msg, unsigned int msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len) +{ + uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) + if( ! ctx->MBEDTLS_PRIVATE(have_private_key) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( sig_size < MBEDTLS_LMS_SIG_LEN ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(otstype) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(have_privkey) ) + if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_NODE_AM ) { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - f_rng( p_rng, ctx->MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(I_key_identifier) ) ); - - ctx->MBEDTLS_PRIVATE(priv_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_AM, - sizeof( mbedtls_lmots_context)); - if( ctx->MBEDTLS_PRIVATE(priv_keys) == NULL ) - { - ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; - goto out; - } - - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - mbedtls_lmots_init( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx] ); - ret = mbedtls_lmots_set_algorithm_type( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], - ctx->MBEDTLS_PRIVATE(otstype) ); - if( ret) - { - goto out; - } + return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } - for( idx = 0; idx < MERKLE_TREE_LEAF_AM; idx++ ) - { - ret = mbedtls_lmots_gen_privkey( &ctx->MBEDTLS_PRIVATE(priv_keys)[idx], - ctx->MBEDTLS_PRIVATE(I_key_identifier), - idx, seed, seed_len ); - if( ret) - { - goto out; - } - } + q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + /* This new value must _always_ be written back to the disk before the + * signature is returned. + */ + ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; - ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; - ctx->MBEDTLS_PRIVATE(have_privkey) = 1; - -out: + ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[q_leaf_identifier], + f_rng, p_rng, msg, msg_size, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMS_SIG_LEN, NULL ); if( ret ) { - mbedtls_free( ctx->MBEDTLS_PRIVATE(priv_keys) ); return( ret ); } + unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + + ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + ( unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + if( ret ) + { + return( ret ); + } + + if( sig_len != NULL ) { + *sig_len = MBEDTLS_LMS_SIG_LEN; + } + + return( 0 ); } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 82dbcbab2..4492daaae 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -15,7 +15,8 @@ /* BEGIN_CASE */ void lmots_sign_verify_test ( data_t * msg ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_public_t pub_ctx; + mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -23,22 +24,25 @@ void lmots_sign_verify_test ( data_t * msg ) mbedtls_entropy_init( &entropy_ctx ); mbedtls_ctr_drbg_init( &drbg_ctx ); - mbedtls_lmots_init( &ctx ); + mbedtls_lmots_init_public( &pub_ctx ); + mbedtls_lmots_init_private( &priv_ctx ); TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_set_algorithm_type(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_pubkey(&ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig) == 0 ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &pub_ctx ); + mbedtls_lmots_free_private( &priv_ctx ); } /* END_CASE */ @@ -46,40 +50,40 @@ exit: void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_public_t ctx; - mbedtls_lmots_init( &ctx ); + mbedtls_lmots_init_public( &ctx ); - mbedtls_lmots_import_pubkey( &ctx, pub_key->x ); + mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); - TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lmots_import_export_test ( data_t * pub_key ) { - mbedtls_lmots_context ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBKEY_LEN]; + mbedtls_lmots_public_t ctx; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN]; - mbedtls_lmots_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_import_pubkey( &ctx, pub_key->x ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_pubkey( &ctx, exported_pub_key ) == 0 ); + mbedtls_lmots_init_public( &ctx ); + TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBKEY_LEN ) == 0 ); + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) == 0 ); exit: - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lmots_reuse_test ( data_t * msg ) { - mbedtls_lmots_context ctx; + mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -92,19 +96,21 @@ void lmots_reuse_test ( data_t * msg ) mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); - mbedtls_lmots_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_set_algorithm_type( &ctx, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); - TEST_ASSERT( mbedtls_lmots_gen_privkey(&ctx, (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + mbedtls_lmots_init_private( &ctx ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) != 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lmots_free( &ctx ); + mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index c6c706139..64ea900f1 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -13,7 +13,8 @@ /* BEGIN_CASE */ void lms_sign_verify_test ( data_t * msg ) { - mbedtls_lms_context ctx; + mbedtls_lms_public_t pub_ctx; + mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; @@ -22,29 +23,35 @@ void lms_sign_verify_test ( data_t * msg ) mbedtls_entropy_init( &entropy_ctx ); mbedtls_ctr_drbg_init( &drbg_ctx ); - mbedtls_lms_init( &ctx ); + mbedtls_lms_init_public( &pub_ctx ); + mbedtls_lms_init_private( &priv_ctx ); TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lms_set_algorithm_type( &ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8 ) == 0 ); - /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ - rc = mbedtls_lms_gen_privkey( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, seed, sizeof( seed ) ); + rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_ctr_drbg_random, &drbg_ctx, seed, + sizeof( seed ) ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); TEST_ASSERT( rc == 0 ); - TEST_ASSERT( mbedtls_lms_gen_pubkey( &ctx) == 0 ); + TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); - TEST_ASSERT( mbedtls_lms_sign( &ctx, mbedtls_ctr_drbg_random, &drbg_ctx, msg->x, msg->len, sig ) == 0 ); + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_ctr_drbg_random, + &drbg_ctx, msg->x, msg->len, sig, + sizeof( sig ), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig) == 0 ); + TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, + sizeof( sig ) ) == 0 ); exit: mbedtls_entropy_free( &entropy_ctx ); mbedtls_ctr_drbg_free( &drbg_ctx ); - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &pub_ctx ); + mbedtls_lms_free_private( &priv_ctx ); } /* END_CASE */ @@ -52,34 +59,35 @@ exit: void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { - mbedtls_lms_context ctx; + mbedtls_lms_public_t ctx; - mbedtls_lms_init( &ctx); + mbedtls_lms_init_public( &ctx); - mbedtls_lms_import_pubkey( &ctx, pub_key->x ); + mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x ) == expected_rc ); + TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &ctx ); } /* END_CASE */ /* BEGIN_CASE */ void lms_import_export_test ( data_t * pub_key ) { - mbedtls_lms_context ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBKEY_LEN]; + mbedtls_lms_public_t ctx; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN]; - mbedtls_lms_init(&ctx); - TEST_ASSERT( mbedtls_lms_import_pubkey( &ctx, pub_key->x ) == 0 ); - TEST_ASSERT( mbedtls_lms_export_pubkey( &ctx, exported_pub_key) == 0 ); + mbedtls_lms_init_public(&ctx); + TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); + TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + sizeof(exported_pub_key), NULL ) == 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBKEY_LEN, - exported_pub_key, MBEDTLS_LMS_PUBKEY_LEN ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN, + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN ); exit: - mbedtls_lms_free( &ctx ); + mbedtls_lms_free_public( &ctx ); } /* END_CASE */ From f5632d3efca722296ec59a7c7d99773b36b8708e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 09:56:52 +0100 Subject: [PATCH 0207/1574] Remove MBEDTLS_PRIVATE usage from LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 92 ++++++++++++++++++------------------ library/lms.c | 122 ++++++++++++++++++++++++------------------------ 2 files changed, 107 insertions(+), 107 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index e2f86e62d..74191ebbc 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -118,13 +118,13 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(I_key_identifier), + status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -199,14 +199,14 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(I_key_identifier), + params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(q_leaf_identifier), + params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -268,13 +268,13 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t goto exit; status = psa_hash_update( &op, - params->MBEDTLS_PRIVATE(I_key_identifier), + params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, params->MBEDTLS_PRIVATE(q_leaf_identifier), + status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -335,21 +335,21 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = + ctx->params.type = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(MBEDTLS_PRIVATE(params).q_leaf_identifier), + memcpy( ctx->params.q_leaf_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(public_key), + memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -421,12 +421,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( !ctx->MBEDTLS_PRIVATE(have_public_key) ) + if ( !ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE( type ) + if( ctx->params.MBEDTLS_PRIVATE( type ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -438,7 +438,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->MBEDTLS_PRIVATE(params), + ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params, msg, msg_size, sig, sig_size, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN, @@ -448,8 +448,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( ret ); } - if ( memcmp( &Kc_public_key_candidate, ctx->MBEDTLS_PRIVATE(public_key), - sizeof( ctx->MBEDTLS_PRIVATE(public_key) ) ) ) + if ( memcmp( &Kc_public_key_candidate, ctx->public_key, + sizeof( ctx->public_key ) ) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -482,7 +482,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned char const_bytes[1]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -491,15 +491,15 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->params.type = type; - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, I_key_identifier, - sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + sizeof( ctx->params.I_key_identifier ) ); unsigned_int_to_network_bytes(q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier) ); + ctx->params.q_leaf_identifier ); unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); @@ -512,14 +512,14 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, goto exit; ret = psa_hash_update( &op, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), - sizeof( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier) ) ); + ctx->params.I_key_identifier, + sizeof( ctx->params.I_key_identifier ) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; status = psa_hash_update( &op, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -542,7 +542,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, goto exit; status = psa_hash_finish( &op, - ctx->MBEDTLS_PRIVATE(private_key)[i_digit_idx], + ctx->private_key[i_digit_idx], 32, &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -551,7 +551,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, psa_hash_abort( &op ); } - ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + ctx->have_private_key = 1; exit: if( ret ) @@ -575,29 +575,29 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } /* Check that a private key is loaded */ - if ( !priv_ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->MBEDTLS_PRIVATE(private_key)), + ret = hash_digit_array( &priv_ctx->params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->private_key), NULL, NULL, y_hashed_digits ); if ( ret ) { return( ret ); } - ret = public_key_from_hashed_digit_array( &priv_ctx->MBEDTLS_PRIVATE(params), + ret = public_key_from_hashed_digit_array( &priv_ctx->params, ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - ctx->MBEDTLS_PRIVATE(public_key) ); + ctx->public_key ); if ( ret ) { return( ret ); } - memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), - sizeof( ctx->MBEDTLS_PRIVATE(params) ) ); + memcpy( &ctx->params, &priv_ctx->params, + sizeof( ctx->params ) ); ctx->MBEDTLS_PRIVATE(have_public_key = 1); @@ -614,24 +614,24 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(q_leaf_identifier), + ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->MBEDTLS_PRIVATE(public_key), + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN ); if( key_len != NULL ) @@ -662,7 +662,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } /* Check that a private key is loaded */ - if ( !ctx->MBEDTLS_PRIVATE(have_private_key) ) + if ( !ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -673,7 +673,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = create_digit_array_with_checksum( &ctx->MBEDTLS_PRIVATE(params), + ret = create_digit_array_with_checksum( &ctx->params, msg, msg_size, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_digit_array ); @@ -682,24 +682,24 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->MBEDTLS_PRIVATE(params), - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->MBEDTLS_PRIVATE(private_key)), + ret = hash_digit_array( &ctx->params, + ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->private_key), NULL, tmp_digit_array, tmp_sig ); if ( ret ) { return( ret ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ - ctx->MBEDTLS_PRIVATE(have_private_key) = 0; - mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(private_key), - sizeof(ctx->MBEDTLS_PRIVATE(private_key))); + ctx->have_private_key = 0; + mbedtls_platform_zeroize(ctx->private_key, + sizeof(ctx->private_key)); memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); diff --git a/library/lms.c b/library/lms.c index b58aeea7f..94f5abe5c 100644 --- a/library/lms.c +++ b/library/lms.c @@ -191,8 +191,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; ret = create_merkle_leaf_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(ots_public_keys)[priv_key_idx].MBEDTLS_PRIVATE(public_key), + ctx->params.I_key_identifier, + ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, tree[r_node_idx] ); if( ret ) { @@ -206,7 +206,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx-- ) { ret = create_merkle_internal_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) { @@ -271,7 +271,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; + ctx->params.type = type; otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); @@ -279,15 +279,15 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + ctx->params.otstype = otstype; - memcpy( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -307,7 +307,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, mbedtls_lmots_parameters_t ots_params; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -317,13 +317,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -351,13 +351,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - memcpy(ots_params.MBEDTLS_PRIVATE(I_key_identifier), - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + memcpy(ots_params.I_key_identifier, + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ots_params.MBEDTLS_PRIVATE(q_leaf_identifier) ); - ots_params.type = ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype); + ots_params.q_leaf_identifier ); + ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, @@ -371,7 +371,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_leaf_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, Tc_candidate_root_node ); @@ -394,13 +394,13 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_internal_node( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, left_node, right_node, parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } - if( memcmp( Tc_candidate_root_node, ctx->MBEDTLS_PRIVATE(T_1_pub_key), + if( memcmp( Tc_candidate_root_node, ctx->T_1_pub_key, MBEDTLS_LMOTS_N_HASH_LEN) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -418,16 +418,16 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) { unsigned int idx; - if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ctx->have_private_key ) { for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); - mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); } - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); @@ -455,29 +455,29 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) = type; - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) = otstype; + ctx->params.type = type; + ctx->params.otstype = otstype; f_rng( p_rng, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->MBEDTLS_PRIVATE(ots_private_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, sizeof( mbedtls_lmots_private_t)); - if( ctx->MBEDTLS_PRIVATE(ots_private_keys) == NULL ) + if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - ctx->MBEDTLS_PRIVATE(ots_public_keys) = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, sizeof( mbedtls_lmots_public_t)); - if( ctx->MBEDTLS_PRIVATE(ots_public_keys) == NULL ) + if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; @@ -485,39 +485,39 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - mbedtls_lmots_init_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); - mbedtls_lmots_init_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx] ); + mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); } for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) { - ret = mbedtls_lmots_generate_private_key( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx], + ret = mbedtls_lmots_generate_private_key( &ctx->ots_private_keys[idx], otstype, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, idx, seed, seed_size ); if( ret) goto exit; - ret = mbedtls_lmots_calculate_public_key( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[idx], - &ctx->MBEDTLS_PRIVATE(ots_private_keys)[idx] ); + ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], + &ctx->ots_private_keys[idx] ); if( ret) goto exit; } - ctx->MBEDTLS_PRIVATE(q_next_usable_key) = 0; - ctx->MBEDTLS_PRIVATE(have_private_key) = 1; + ctx->q_next_usable_key = 0; + ctx->have_private_key = 1; exit: if( ret ) { for ( free_idx = 0; free_idx < idx; free_idx++ ) { - mbedtls_lmots_free_private( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[free_idx] ); - mbedtls_lmots_free_public( &ctx->MBEDTLS_PRIVATE(ots_public_keys)[free_idx] ); + mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); + mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); } - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_private_keys) ); - mbedtls_free( ctx->MBEDTLS_PRIVATE(ots_public_keys) ); + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); return( ret ); } @@ -535,19 +535,19 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) + if( priv_ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( priv_ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( priv_ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - memcpy( &ctx->MBEDTLS_PRIVATE(params), &priv_ctx->MBEDTLS_PRIVATE(params), + memcpy( &ctx->params, &priv_ctx->params, sizeof(mbedtls_lmots_parameters_t) ); ret = calculate_merkle_tree( priv_ctx, tree); @@ -557,9 +557,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->MBEDTLS_PRIVATE(T_1_pub_key), &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( ctx->T_1_pub_key, &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); - ctx->MBEDTLS_PRIVATE(have_public_key) = 1; + ctx->have_public_key = 1; return( 0 ); } @@ -572,22 +572,22 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ! ctx->MBEDTLS_PRIVATE(have_public_key) ) + if( ! ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } unsigned_int_to_network_bytes( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); unsigned_int_to_network_bytes( - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype), + ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(I_key_identifier), + ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, - ctx->MBEDTLS_PRIVATE(T_1_pub_key), + ctx->T_1_pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); if( key_len != NULL ) { @@ -606,7 +606,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->MBEDTLS_PRIVATE(have_private_key) ) + if( ! ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -616,30 +616,30 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(otstype) + if( ctx->params.otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->MBEDTLS_PRIVATE(q_next_usable_key) >= MERKLE_TREE_LEAF_NODE_AM ) + if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM ) { return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } - q_leaf_identifier = ctx->MBEDTLS_PRIVATE(q_next_usable_key); + q_leaf_identifier = ctx->q_next_usable_key; /* This new value must _always_ be written back to the disk before the * signature is returned. */ - ctx->MBEDTLS_PRIVATE(q_next_usable_key) += 1; + ctx->q_next_usable_key += 1; - ret = mbedtls_lmots_sign( &ctx->MBEDTLS_PRIVATE(ots_private_keys)[q_leaf_identifier], + ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN, NULL ); @@ -648,7 +648,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->MBEDTLS_PRIVATE(params).MBEDTLS_PRIVATE(type), + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); From 0c88d4e447943d41a661c194863cfa63275d0b57 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 10:48:32 +0100 Subject: [PATCH 0208/1574] Remove superfluous casts in LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 74191ebbc..50559e594 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -393,9 +393,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return ( ret ); } - ret = public_key_from_hashed_digit_array( params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - out ); + ret = public_key_from_hashed_digit_array( params, y_hashed_digits, out ); if ( ret ) { return ( ret ); @@ -569,28 +567,22 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx == NULL ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - /* Check that a private key is loaded */ if ( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(priv_ctx->private_key), - NULL, NULL, y_hashed_digits ); + ret = hash_digit_array( &priv_ctx->params, priv_ctx->private_key, NULL, + NULL, y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )y_hashed_digits, - ctx->public_key ); + y_hashed_digits, + ctx->public_key ); if ( ret ) { return( ret ); @@ -683,7 +675,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } ret = hash_digit_array( &ctx->params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(ctx->private_key), + ctx->private_key, NULL, tmp_digit_array, tmp_sig ); if ( ret ) { From 891c613f315b5c4b749851860e394ca4cc7b9ca1 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 11:05:48 +0100 Subject: [PATCH 0209/1574] Update LMOTS signature use of temporary variables Document them properly, and move random value to a temporary variable Signed-off-by: Raef Coles --- library/lmots.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 50559e594..f5a2343a6 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -640,7 +640,15 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, unsigned char *sig, size_t sig_size, size_t* sig_len ) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + /* Create a temporary buffer to prepare the signature in. This allows us to + * finish creating a signature (ensuring the process doesn't fail), and then + * erase the private key **before** writing any data into the sig parameter + * buffer. If data were directly written into the sig buffer, it might leak + * a partial signature on failure, which effectively compromises the private + * key. + */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -659,7 +667,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN ); if ( ret ) { return( ret ); @@ -667,7 +675,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, ret = create_digit_array_with_checksum( &ctx->params, msg, msg_size, - sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_c_random, tmp_digit_array ); if ( ret ) { @@ -693,8 +701,11 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, mbedtls_platform_zeroize(ctx->private_key, sizeof(ctx->private_key)); - memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN); + memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + + memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); if( sig_len != NULL ) { From ebd35b5b80993221757a9c90a22336ecc6f59c4d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 11:52:17 +0100 Subject: [PATCH 0210/1574] Rename LMS internal tree-manipulation functions Signed-off-by: Raef Coles --- library/lmots.c | 3 ++- library/lms.c | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index f5a2343a6..d92d38525 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -489,6 +489,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + op = psa_hash_operation_init( ); + ctx->params.type = type; memcpy( ctx->params.I_key_identifier, @@ -503,7 +505,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) { - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) diff --git a/library/lms.c b/library/lms.c index 94f5abe5c..44d4c7902 100644 --- a/library/lms.c +++ b/library/lms.c @@ -73,10 +73,10 @@ static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -static int create_merkle_leaf_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], - unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) +static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; @@ -122,11 +122,11 @@ exit: return( ret ); } -static int create_merkle_internal_node( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], - const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], - unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) +static int create_merkle_internal_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], + const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], + unsigned int r_node_idx, + unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) { psa_hash_operation_t op; psa_status_t status; @@ -190,7 +190,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, { r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - ret = create_merkle_leaf_node( + ret = create_merkle_leaf_value( ctx->params.I_key_identifier, ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, tree[r_node_idx] ); @@ -205,7 +205,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; r_node_idx-- ) { - ret = create_merkle_internal_node( + ret = create_merkle_internal_value( ctx->params.I_key_identifier, tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); if( ret ) @@ -370,7 +370,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( ret ); } - create_merkle_leaf_node( + create_merkle_leaf_value( ctx->params.I_key_identifier, Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, Tc_candidate_root_node ); @@ -393,7 +393,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; } - create_merkle_internal_node( + create_merkle_internal_value( ctx->params.I_key_identifier, left_node, right_node, parent_node_id, Tc_candidate_root_node); From ab4f87413a79b5fb9158530fa7e7b0f8324c0328 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 12:24:31 +0100 Subject: [PATCH 0211/1574] Add MBEDTLS_LMS_PRIVATE define To enable private key operations Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 5 + include/mbedtls/lms.h | 4 + include/mbedtls/mbedtls_config.h | 16 ++- library/lmots.c | 3 + library/lmots.h | 5 + library/lms.c | 139 +++++++++++++------------ tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 8 files changed, 104 insertions(+), 72 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 2921278b3..570d9dba2 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -358,6 +358,11 @@ #error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" #endif +#if defined(MBEDTLS_LMS_PRIVATE) && \ + ( !defined(MBEDTLS_LMS_C) ) +#error "MBEDTLS_LMS_PRIVATE requires MBEDTLS_LMS_C" +#endif + #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ ( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) ) #error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites" diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c463b2abb..65b1b7e0e 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -106,6 +106,7 @@ typedef struct { } mbedtls_lms_public_t; +#ifdef MBEDTLS_LMS_PRIVATE /** LMS private context structure. * * A LMS private key is a set of LMOTS private keys, an index to the next usable @@ -133,6 +134,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ /** * \brief This function initializes an LMS public context @@ -196,6 +198,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); +#ifdef MBEDTLS_LMS_PRIVATE /** * \brief This function initializes an LMS private context * @@ -328,6 +331,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, unsigned char *sig, size_t sig_size, size_t *sig_len); +#endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus } diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 8c833b1cf..c0caf7562 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2469,12 +2469,24 @@ * Module: library/lms.c * Caller: * - * Requires: MBEDTLS_MD_C + * Requires: MBEDTLS_PSA_CRYPTO_C * - * Uncomment to enable the LMS signature algorithm. + * Uncomment to enable the LMS verification algorithm and public key operations. */ #define MBEDTLS_LMS_C +/** + * \def MBEDTLS_LMS_PRIVATE + * + * Enable LMS private-key operations and signing code. Functions enabled by this + * option are experimental, and should not be used in production. + * + * Requires: MBEDTLS_LMS_C + * + * Uncomment to enable the LMS signature algorithm and private key operations. + */ +// #define MBEDTLS_LMS_PRIVATE + /** * \def MBEDTLS_NIST_KW_C * diff --git a/library/lmots.c b/library/lmots.c index d92d38525..bf6644935 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -455,6 +455,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( 0 ); } +#ifdef MBEDTLS_LMS_PRIVATE + void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; @@ -716,4 +718,5 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( 0 ); } +#endif /* MBEDTLS_LMS_PRIVATE */ #endif /* MBEDTLS_LMS_C */ diff --git a/library/lmots.h b/library/lmots.h index ca7d4bf34..e784bf586 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -101,6 +101,7 @@ typedef struct { Boolean values only. */ } mbedtls_lmots_public_t; +#ifdef MBEDTLS_LMS_PRIVATE /** LMOTS private context structure. * * A LMOTS private key is one hash output for each of digit of the digest + @@ -124,6 +125,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ /** * \brief This function converts an unsigned int into a @@ -256,6 +258,8 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); +#ifdef MBEDTLS_LMS_PRIVATE + /** * \brief This function initializes a private LMOTS context * @@ -375,6 +379,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ); +#endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 44d4c7902..cb56cb31c 100644 --- a/library/lms.c +++ b/library/lms.c @@ -177,74 +177,6 @@ exit: return ret; } -static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) -{ - unsigned int priv_key_idx; - unsigned int r_node_idx; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; - priv_key_idx++ ) - { - r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; - - ret = create_merkle_leaf_value( - ctx->params.I_key_identifier, - ctx->ots_public_keys[priv_key_idx].public_key, - r_node_idx, tree[r_node_idx] ); - if( ret ) - { - return( ret ); - } - } - - /* Then the internal nodes, in reverse order so that we can guarantee the - * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; - r_node_idx-- ) - { - ret = create_merkle_internal_value( - ctx->params.I_key_identifier, - tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); - if( ret ) - { - return( ret ); - } - } - - return( 0 ); -} - -static int get_merkle_path( mbedtls_lms_private_t *ctx, - unsigned int leaf_node_id, - unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) -{ - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; - unsigned int curr_node_id = leaf_node_id; - unsigned int adjacent_node_id; - unsigned int height; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - ret = calculate_merkle_tree( ctx, tree); - if( ret ) - { - return( ret ); - } - - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) - { - adjacent_node_id = curr_node_id ^ 1; - - memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); - - curr_node_id >>=1; - } - - return( 0 ); -} - void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; @@ -409,6 +341,76 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( 0 ); } +#ifdef MBEDTLS_LMS_PRIVATE + +static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) +{ + unsigned int priv_key_idx; + unsigned int r_node_idx; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* First create the leaf nodes, in ascending order */ + for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + priv_key_idx++ ) + { + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; + + ret = create_merkle_leaf_value( + ctx->params.I_key_identifier, + ctx->ots_public_keys[priv_key_idx].public_key, + r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + /* Then the internal nodes, in reverse order so that we can guarantee the + * parent has been created */ + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + r_node_idx-- ) + { + ret = create_merkle_internal_value( + ctx->params.I_key_identifier, + tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); + if( ret ) + { + return( ret ); + } + } + + return( 0 ); +} + +static int get_merkle_path( mbedtls_lms_private_t *ctx, + unsigned int leaf_node_id, + unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) +{ + unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned int curr_node_id = leaf_node_id; + unsigned int adjacent_node_id; + unsigned int height; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + ret = calculate_merkle_tree( ctx, tree); + if( ret ) + { + return( ret ); + } + + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + { + adjacent_node_id = curr_node_id ^ 1; + + memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + + curr_node_id >>=1; + } + + return( 0 ); +} + void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; @@ -668,4 +670,5 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( 0 ); } +#endif /* MBEDTLS_LMS_PRIVATE */ #endif /* MBEDTLS_LMS_C */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4492daaae..73c9aff09 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -8,7 +8,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 64ea900f1..22c8eb5a1 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -6,7 +6,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C * END_DEPENDENCIES */ From e9479a02647cab34520390900e62ea931c8f5cec Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 16:06:35 +0100 Subject: [PATCH 0212/1574] Update LMS API to support multiple parameter sets Parameterise macros to allow variation of sizes Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 27 +++- library/lmots.c | 133 ++++++++++-------- library/lmots.h | 29 ++-- library/lms.c | 181 ++++++++++++++----------- tests/suites/test_suite_lmots.function | 9 +- tests/suites/test_suite_lms.function | 8 +- 6 files changed, 226 insertions(+), 161 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 65b1b7e0e..becfb89e3 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -40,15 +40,28 @@ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ -#define MBEDTLS_LMS_M_NODE_BYTES (32) /* The length of a hash output, 32 for SHA256 */ #define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT (10u) +#define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) -#define MBEDTLS_LMS_SIG_LEN (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_SIG_LEN + \ - MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMS_H_TREE_HEIGHT * MBEDTLS_LMS_M_NODE_BYTES) +/* The length of a hash output, Currently only imlemented for SHA256. + * Max is 32 bytes. + */ +/* The length of a hash output, Currently only imlemented for SHA256. + * Max is 32 bytes. + */ +#define MBEDTLS_LMS_M_NODE_BYTES(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) +#define MBEDTLS_LMS_M_NODE_BYTES_MAX 32 -#define MBEDTLS_LMS_PUBLIC_KEY_LEN (MBEDTLS_LMS_TYPE_LEN + MBEDTLS_LMOTS_TYPE_LEN + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN + MBEDTLS_LMS_M_NODE_BYTES) +#define MBEDTLS_LMS_SIG_LEN(type, otstype) (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ + MBEDTLS_LMOTS_SIG_LEN(otstype) + \ + MBEDTLS_LMS_TYPE_LEN + \ + (MBEDTLS_LMS_H_TREE_HEIGHT(type) * \ + MBEDTLS_LMS_M_NODE_BYTES(type))) + +#define MBEDTLS_LMS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMS_TYPE_LEN + \ + MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMS_M_NODE_BYTES(type)) #ifdef __cplusplus @@ -99,7 +112,7 @@ typedef struct { */ typedef struct { mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES]; /*!< The public key, in + unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES_MAX]; /*!< The public key, in the form of the merkle tree root node. */ unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ diff --git a/library/lmots.c b/library/lmots.c index bf6644935..41ca0422b 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -45,7 +45,7 @@ #include "psa/crypto.h" #define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) #define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) @@ -60,6 +60,9 @@ #define J_HASH_IDX_LEN (1) #define D_CONST_LEN (2) +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) + #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) #define D_CONST_LEN (2) @@ -87,12 +90,13 @@ unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *byte return val; } -static unsigned short lmots_checksum_calculate( const unsigned char* digest ) +static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, + const unsigned char* digest ) { size_t idx; unsigned sum = 0; - for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN; idx++ ) + for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN(params->type); idx++ ) { sum += DIGIT_MAX_VALUE - digest[idx]; } @@ -103,8 +107,8 @@ static unsigned short lmots_checksum_calculate( const unsigned char* digest ) static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_len, - const unsigned char C_random_value[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN], - unsigned char out[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT] ) + const unsigned char *C_random_value, + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -135,7 +139,8 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + status = psa_hash_update( &op, C_random_value, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -145,14 +150,16 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT, + status = psa_hash_finish( &op, out, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - checksum = lmots_checksum_calculate( out ); - unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, out + MBEDTLS_LMOTS_N_HASH_LEN ); + checksum = lmots_checksum_calculate( params, out ); + unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, + out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); exit: psa_hash_abort( &op ); @@ -161,10 +168,10 @@ exit: } static int hash_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char x_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *x_digit_array, const unsigned char *hash_idx_min_values, const unsigned char *hash_idx_max_values, - unsigned char output[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN] ) + unsigned char *output ) { unsigned char i_digit_idx; unsigned char j_hash_idx; @@ -178,15 +185,18 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_operation_t op; psa_status_t status; size_t output_hash_len; - unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init(); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + for ( i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); + i_digit_idx++ ) { - memcpy( tmp_hash, &x_digit_array[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( tmp_hash, &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; @@ -224,7 +234,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, tmp_hash, + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -237,7 +248,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_abort( &op ); } - memcpy( &output[i_digit_idx], tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], tmp_hash, + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); } exit: @@ -253,7 +265,7 @@ exit: } static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN], + const unsigned char *y_hashed_digits, unsigned char *pub_key ) { psa_hash_operation_t op; @@ -285,13 +297,15 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, ( unsigned char * )y_hashed_digits, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, y_hashed_digits, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, pub_key, 32, &output_hash_len ); + status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); exit: @@ -330,15 +344,15 @@ void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { - if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - ctx->params.type = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + memcpy( ctx->params.I_key_identifier, key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); @@ -347,7 +361,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); ctx->have_public_key = 1; @@ -363,8 +377,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t out_size, size_t *out_len) { - unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; - unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -372,7 +386,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( sig_size != MBEDTLS_LMOTS_SIG_LEN || out_size < MBEDTLS_LMOTS_N_HASH_LEN ) + if ( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || + out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -386,14 +401,16 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters } ret = hash_digit_array( params, - ( const unsigned char( *)[MBEDTLS_LMOTS_N_HASH_LEN] )(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET), - tmp_digit_array, NULL, y_hashed_digits ); + sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), + tmp_digit_array, NULL, (unsigned char *)y_hashed_digits ); if ( ret ) { return ( ret ); } - ret = public_key_from_hashed_digit_array( params, y_hashed_digits, out ); + ret = public_key_from_hashed_digit_array( params, + (unsigned char *)y_hashed_digits, + out ); if ( ret ) { return ( ret ); @@ -401,7 +418,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters if ( out_len != NULL ) { - *out_len = MBEDTLS_LMOTS_N_HASH_LEN; + *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type); } return( 0 ); @@ -411,7 +428,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ) { - unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -439,7 +456,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params, msg, msg_size, sig, sig_size, Kc_public_key_candidate, - MBEDTLS_LMOTS_N_HASH_LEN, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), NULL); if ( ret ) { @@ -505,7 +522,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT; i_digit_idx++ ) + for ( i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); + i_digit_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); @@ -544,7 +563,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, status = psa_hash_finish( &op, ctx->private_key[i_digit_idx], - 32, &output_hash_len ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; @@ -567,7 +587,7 @@ exit: int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, mbedtls_lmots_private_t *priv_ctx) { - unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; + unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that a private key is loaded */ @@ -576,15 +596,16 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = hash_digit_array( &priv_ctx->params, priv_ctx->private_key, NULL, - NULL, y_hashed_digits ); + ret = hash_digit_array( &priv_ctx->params, + (unsigned char *)priv_ctx->private_key, NULL, + NULL, (unsigned char *)y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - y_hashed_digits, + (unsigned char *)y_hashed_digits, ctx->public_key ); if ( ret ) { @@ -604,7 +625,7 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -627,11 +648,11 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, MBEDTLS_LMOTS_Q_LEAF_ID_LEN); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( key_len != NULL ) { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); } return( 0 ); @@ -642,7 +663,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ) { - unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT]; + unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; /* Create a temporary buffer to prepare the signature in. This allows us to * finish creating a signature (ensuring the process doesn't fail), and then * erase the private key **before** writing any data into the sig parameter @@ -650,8 +671,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * a partial signature on failure, which effectively compromises the private * key. */ - unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN]; + unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if ( msg == NULL && msg_size != 0 ) @@ -659,7 +680,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size < MBEDTLS_LMOTS_SIG_LEN ) + if( sig_size < MBEDTLS_LMOTS_SIG_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -670,7 +691,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN ); + ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if ( ret ) { return( ret ); @@ -685,9 +706,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->params, - ctx->private_key, - NULL, tmp_digit_array, tmp_sig ); + ret = hash_digit_array( &ctx->params, (unsigned char *)ctx->private_key, + NULL, tmp_digit_array, (unsigned char *)tmp_sig ); if ( ret ) { return( ret ); @@ -705,14 +725,15 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, sizeof(ctx->private_key)); memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN ); + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type) ); - memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET, tmp_sig, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(ctx->params.type), tmp_sig, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type) + * MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( sig_len != NULL ) { - *sig_len = MBEDTLS_LMS_SIG_LEN; + *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type); } return( 0 ); diff --git a/library/lmots.h b/library/lmots.h index e784bf586..6ada0bad6 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -33,18 +33,25 @@ #include #include -#define MBEDTLS_LMOTS_N_HASH_LEN (32) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT (34) -#define MBEDTLS_LMOTS_TYPE_LEN (4) -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN (MBEDTLS_LMOTS_N_HASH_LEN) -#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16) -#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4) +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) +#define MBEDTLS_LMOTS_TYPE_LEN (4u) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) -#define MBEDTLS_LMOTS_SIG_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN + \ - (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT * MBEDTLS_LMOTS_N_HASH_LEN)) +#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ + MBEDTLS_LMOTS_N_HASH_LEN(type))) -#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN (MBEDTLS_LMOTS_TYPE_LEN + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN + MBEDTLS_LMOTS_N_HASH_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ + MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) @@ -121,7 +128,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT][32]; + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][32]; unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; diff --git a/library/lms.c b/library/lms.c index cb56cb31c..71921f7cb 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,10 +54,10 @@ #define mbedtls_free free #endif -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN) -#define MBEDTLS_LMS_SIG_PATH_OFFSET (MBEDTLS_LMS_SIG_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + MBEDTLS_LMS_TYPE_LEN) #define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) @@ -65,18 +65,21 @@ #define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MERKLE_TREE_NODE_AM (1u << (MBEDTLS_LMS_H_TREE_HEIGHT + 1u)) -#define MERKLE_TREE_LEAF_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) -#define MERKLE_TREE_INTERNAL_NODE_AM (1u << MBEDTLS_LMS_H_TREE_HEIGHT) +/* Currently only support H=10 */ +#define MBEDTLS_LMS_H_TREE_HEIGHT_MAX 10 +#define MERKLE_TREE_NODE_AM_MAX (1u << (MBEDTLS_LMS_H_TREE_HEIGHT_MAX + 1u)) +#define MERKLE_TREE_NODE_AM(type) (1u << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) +#define MERKLE_TREE_LEAF_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) +#define MERKLE_TREE_INTERNAL_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define D_CONST_LEN (2) static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - unsigned char pub_key[MBEDTLS_LMOTS_N_HASH_LEN], +static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, + unsigned char *pub_key, unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -90,7 +93,8 @@ static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTL if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -106,12 +110,14 @@ static int create_merkle_leaf_value( const unsigned char I_key_identifier[MBEDTL if( ret ) goto exit; - status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -122,11 +128,11 @@ exit: return( ret ); } -static int create_merkle_internal_value( const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - const unsigned char left_node[MBEDTLS_LMS_M_NODE_BYTES], - const unsigned char right_node[MBEDTLS_LMS_M_NODE_BYTES], +static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, + const unsigned char *left_node, + const unsigned char *right_node, unsigned int r_node_idx, - unsigned char out[MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *out ) { psa_hash_operation_t op; psa_status_t status; @@ -140,7 +146,8 @@ static int create_merkle_internal_value( const unsigned char I_key_identifier[MB if ( ret != 0 ) goto exit; - status = psa_hash_update( &op, I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + status = psa_hash_update( &op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -156,17 +163,20 @@ static int create_merkle_internal_value( const unsigned char I_key_identifier[MB if( ret ) goto exit; - status = psa_hash_update( &op, left_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, left_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - status = psa_hash_update( &op, right_node, MBEDTLS_LMOTS_N_HASH_LEN ); + status = psa_hash_update( &op, right_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; - ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES, &output_hash_len); + ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -193,7 +203,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -217,7 +227,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -229,8 +239,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *sig, size_t sig_size ) { unsigned int q_leaf_identifier; - unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN]; - unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char Tc_candidate_root_node[MBEDTLS_LMS_M_NODE_BYTES_MAX]; unsigned int height; unsigned int curr_node_id; unsigned int parent_node_id; @@ -244,7 +254,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size != MBEDTLS_LMS_SIG_LEN ) + if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -261,15 +271,16 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET) != MBEDTLS_LMS_SHA256_M32_H10 ) + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) - != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -278,7 +289,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); - if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM ) + if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -293,7 +304,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMOTS_SIG_LEN, + MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof(Kc_candidate_ots_pub_key), NULL ); @@ -303,37 +314,40 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } create_merkle_leaf_value( - ctx->params.I_key_identifier, - Kc_candidate_ots_pub_key, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, + &ctx->params, + Kc_candidate_ots_pub_key, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier; - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++ ) { parent_node_id = curr_node_id / 2; /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + left_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - right_node = ( ( const unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) )[height]; + right_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); } - create_merkle_internal_value( - ctx->params.I_key_identifier, - left_node, right_node, parent_node_id, Tc_candidate_root_node); + create_merkle_internal_value( &ctx->params, left_node, right_node, + parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } if( memcmp( Tc_candidate_root_node, ctx->T_1_pub_key, - MBEDTLS_LMOTS_N_HASH_LEN) ) + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -344,22 +358,22 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #ifdef MBEDTLS_LMS_PRIVATE static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *tree ) { unsigned int priv_key_idx; unsigned int r_node_idx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM; + for( priv_key_idx = 0; + priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type); priv_key_idx++ ) { - r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM + priv_key_idx; + r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + priv_key_idx; - ret = create_merkle_leaf_value( - ctx->params.I_key_identifier, - ctx->ots_public_keys[priv_key_idx].public_key, - r_node_idx, tree[r_node_idx] ); + ret = create_merkle_leaf_value( &ctx->params, + ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, + &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -368,12 +382,14 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, /* Then the internal nodes, in reverse order so that we can guarantee the * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM - 1; r_node_idx > 0; + for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) - 1; + r_node_idx > 0; r_node_idx-- ) { - ret = create_merkle_internal_value( - ctx->params.I_key_identifier, - tree[(r_node_idx * 2)], tree[(r_node_idx * 2 + 1)], r_node_idx, tree[r_node_idx] ); + ret = create_merkle_internal_value( &ctx->params, + &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -385,25 +401,28 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, - unsigned char path[MBEDTLS_LMS_H_TREE_HEIGHT][MBEDTLS_LMS_M_NODE_BYTES] ) + unsigned char *path ) { - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; unsigned int curr_node_id = leaf_node_id; unsigned int adjacent_node_id; unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = calculate_merkle_tree( ctx, tree); + ret = calculate_merkle_tree( ctx, (unsigned char *)tree); if( ret ) { return( ret ); } - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT; height++ ) + for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++ ) { adjacent_node_id = curr_node_id ^ 1; - memcpy( &path[height], &tree[adjacent_node_id], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( &path[height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[adjacent_node_id], + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); curr_node_id >>=1; } @@ -422,7 +441,7 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) if( ctx->have_private_key ) { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); @@ -469,30 +488,30 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, - sizeof( mbedtls_lmots_private_t)); + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof( mbedtls_lmots_private_t)); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM, - sizeof( mbedtls_lmots_public_t)); + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof( mbedtls_lmots_public_t)); if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM; idx++ ) + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { ret = mbedtls_lmots_generate_private_key( &ctx->ots_private_keys[idx], otstype, @@ -529,7 +548,7 @@ exit: int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_private_t *priv_ctx ) { - unsigned char tree[MERKLE_TREE_NODE_AM][MBEDTLS_LMS_M_NODE_BYTES]; + unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) @@ -552,14 +571,15 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, memcpy( &ctx->params, &priv_ctx->params, sizeof(mbedtls_lmots_parameters_t) ); - ret = calculate_merkle_tree( priv_ctx, tree); + ret = calculate_merkle_tree( priv_ctx, (unsigned char *)tree); if( ret ) { return( ret ); } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->T_1_pub_key, &tree[1], MBEDTLS_LMOTS_N_HASH_LEN ); + memcpy( ctx->T_1_pub_key, &tree[1], + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); ctx->have_public_key = 1; @@ -570,7 +590,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN ) { + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -590,10 +610,10 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, ctx->T_1_pub_key, - MBEDTLS_LMOTS_N_HASH_LEN ); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); if( key_len != NULL ) { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN; + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); } return( 0 ); @@ -613,7 +633,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size < MBEDTLS_LMS_SIG_LEN ) + if( sig_size < MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -629,7 +649,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM ) + if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); } @@ -644,26 +664,29 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMS_SIG_LEN, NULL ); + MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), + NULL ); if( ret ) { return( ret ); } unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET ); + MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); - ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM + q_leaf_identifier, - ( unsigned char( * )[MBEDTLS_LMS_M_NODE_BYTES] )( sig + MBEDTLS_LMS_SIG_PATH_OFFSET ) ); + ret = get_merkle_path( ctx, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret ) { return( ret ); } if( sig_len != NULL ) { - *sig_len = MBEDTLS_LMS_SIG_LEN; + *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype); } diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 73c9aff09..ce69803f4 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -17,7 +17,7 @@ void lmots_sign_verify_test ( data_t * msg ) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; - unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; @@ -67,13 +67,14 @@ exit: void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN]; + uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_lmots_init_public( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN ) == 0 ); + TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ) == 0 ); exit: mbedtls_lmots_free_public( &ctx ); @@ -84,7 +85,7 @@ exit: void lmots_reuse_test ( data_t * msg ) { mbedtls_lmots_private_t ctx; - unsigned char sig[MBEDTLS_LMOTS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 22c8eb5a1..92a5a07ab 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -15,7 +15,7 @@ void lms_sign_verify_test ( data_t * msg ) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; - unsigned char sig[MBEDTLS_LMS_SIG_LEN]; + unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_entropy_context entropy_ctx; mbedtls_ctr_drbg_context drbg_ctx; uint8_t seed[16]; @@ -76,15 +76,15 @@ exit: void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN]; + uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; mbedtls_lms_init_public(&ctx); TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, sizeof(exported_pub_key), NULL ) == 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN, - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); exit: mbedtls_lms_free_public( &ctx ); From 366d67d9af1165bf313f58b6f7e93af507957f90 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 1 Sep 2022 17:23:12 +0100 Subject: [PATCH 0213/1574] Shorted LMS and LMOTS line-lengths To attempt to comply with the 80-char suggestion Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 3 +- library/lmots.c | 66 ++++++++++++++++++++++++++++--------------- library/lmots.h | 21 ++++++++------ library/lms.c | 62 ++++++++++++++++++++++------------------ 4 files changed, 92 insertions(+), 60 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index becfb89e3..23c5ebdf4 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -68,7 +68,8 @@ extern "C" { #endif -/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml +/** The Identifier of the LMS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml * We are only implementing a subset of the types, particularly H10, for the sake of simplicty. */ typedef enum { diff --git a/library/lmots.c b/library/lmots.c index 41ca0422b..82da4c139 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,13 +44,18 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) -#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) /* We only support parameter sets that use 8-bit digits, as it does not require * translation logic between digits and bytes */ @@ -69,7 +74,8 @@ static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes) +void unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes) { size_t idx; @@ -78,7 +84,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char * } } -unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes) { size_t idx; unsigned int val = 0; @@ -195,13 +202,18 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, i_digit_idx++ ) { - memcpy( tmp_hash, &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + memcpy( tmp_hash, + &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - j_hash_idx_min = hash_idx_min_values != NULL ? hash_idx_min_values[i_digit_idx] : 0; - j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; + j_hash_idx_min = hash_idx_min_values != NULL ? + hash_idx_min_values[i_digit_idx] : 0; + j_hash_idx_max = hash_idx_max_values != NULL ? + hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = (unsigned char)j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) + for ( j_hash_idx = (unsigned char)j_hash_idx_min; + j_hash_idx < j_hash_idx_max; + j_hash_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); @@ -222,13 +234,15 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); + unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, + j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -240,7 +254,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); + status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) goto exit; @@ -248,8 +263,8 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_hash_abort( &op ); } - memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], tmp_hash, - MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); } exit: @@ -304,7 +319,8 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t if ( ret != 0 ) goto exit; - status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), + status = psa_hash_finish( &op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); @@ -354,10 +370,12 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, } memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); + key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->params.q_leaf_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( ctx->public_key, key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, @@ -448,7 +466,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, } if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } @@ -545,7 +563,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if ( ret ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); + unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) @@ -691,7 +710,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + ret = f_rng( p_rng, tmp_c_random, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if ( ret ) { return( ret ); diff --git a/library/lmots.h b/library/lmots.h index 6ada0bad6..46e03d6f5 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -59,8 +59,9 @@ extern "C" { #endif -/* https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml - * We are only implementing a subset of the types, particularly n32_w8, for the sake of simplicty. +/** The Identifier of the LMS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. + * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. */ typedef enum { MBEDTLS_LMOTS_SHA256_N32_W8 = 4 @@ -144,7 +145,8 @@ typedef struct { * * \return The corresponding LMS error code. */ -void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char *bytes); +void unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes); /** * \brief This function converts a network-byte-order @@ -155,7 +157,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, unsigned char * * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int(size_t len, const unsigned char *bytes); +unsigned int network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes); /** * \brief This function converts a \ref psa_status_t to a @@ -196,8 +199,8 @@ void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); * * \param ctx The initialized LMOTS context store the key in. * \param key The buffer from which the key will be read. - * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read from - * this. + * #MBEDTLS_LMOTS_PUBLIC_KEY_LEN bytes will be read + * from this. * * \return \c 0 on success. * \return A non-zero error code on failure. @@ -221,7 +224,8 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, * \param msg The buffer from which the message will be read. * \param msg_size The size of the message that will be read. * \param sig The buffer from which the signature will be read. - * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from this. + * #MBEDTLS_LMOTS_SIG_LEN bytes will be read from + * this. * \param out The buffer where the candidate public key will be * stored. Must be at least #MBEDTLS_LMOTS_N_HASH_LEN * bytes in size. @@ -248,7 +252,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * * \note Before this function is called, the context must * have been initialized and must contain a public key - * (either by import or calculation from a private key). + * (either by import or calculation from a private + * key). * * \param ctx The initialized LMOTS context from which the public * key will be read. diff --git a/library/lms.c b/library/lms.c index 71921f7cb..a1e4c243a 100644 --- a/library/lms.c +++ b/library/lms.c @@ -55,14 +55,20 @@ #endif #define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_LEN(otstype)) -#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + \ + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + \ + MBEDTLS_LMS_TYPE_LEN) #define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) /* Currently only support H=10 */ @@ -208,7 +214,8 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -216,7 +223,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.type = type; otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -272,14 +279,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -287,7 +294,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -302,12 +309,10 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ots_params.q_leaf_identifier ); ots_params.type = ctx->params.otstype; - ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, - MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), - Kc_candidate_ots_pub_key, - sizeof(Kc_candidate_ots_pub_key), - NULL ); + ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, + msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, + sizeof(Kc_candidate_ots_pub_key), NULL ); if( ret ) { return( ret ); @@ -319,7 +324,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, Tc_candidate_root_node ); - curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier; + curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + + q_leaf_identifier; for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); height++ ) @@ -389,7 +395,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, ret = create_merkle_internal_value( &ctx->params, &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); + r_node_idx, + &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) { return( ret ); @@ -587,7 +594,8 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, +int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, size_t *key_len ) { if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { @@ -602,9 +610,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); - unsigned_int_to_network_bytes( - ctx->params.otstype, - MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); @@ -671,15 +678,14 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); + unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, + sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); ret = get_merkle_path( ctx, - MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret ) { return( ret ); From 9b88ee5d5dcdcf2498f7388c326c88dced0b5f08 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 12:04:21 +0100 Subject: [PATCH 0214/1574] Fix LMS and LMOTS coding style violations Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 2 +- library/lmots.c | 79 ++++++++++++++++++++++--------------------- library/lmots.h | 14 ++++---- library/lms.c | 52 +++++++++++++++------------- 4 files changed, 77 insertions(+), 70 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 23c5ebdf4..3e84ce057 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -344,7 +344,7 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len); + unsigned char *sig, size_t sig_size, size_t *sig_len ); #endif /* MBEDTLS_LMS_PRIVATE */ #ifdef __cplusplus diff --git a/library/lmots.c b/library/lmots.c index 82da4c139..fe78894f4 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -68,30 +68,32 @@ /* Currently only defined for SHA256, 32 is the max hash output size */ #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) -#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) +#define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) -#define D_CONST_LEN (2) +#define D_CONST_LEN (2) static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; -void unsigned_int_to_network_bytes(unsigned int val, size_t len, - unsigned char *bytes) +void unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ) { size_t idx; - for (idx = 0; idx < len; idx++) { - bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; + for ( idx = 0; idx < len; idx++ ) + { + bytes[idx] = ( val >> ( ( len - 1 - idx ) * 8 ) ) & 0xFF; } } -unsigned int network_bytes_to_unsigned_int(size_t len, - const unsigned char *bytes) +unsigned int network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ) { size_t idx; unsigned int val = 0; - for (idx = 0; idx < len; idx++) { - val |= ((unsigned int)bytes[idx]) << (8 * (len - 1 - idx)); + for ( idx = 0; idx < len; idx++ ) + { + val |= ( ( unsigned int )bytes[idx] ) << (8 * ( len - 1 - idx ) ); } return val; @@ -123,7 +125,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init(); + op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if ( ret != 0 ) @@ -195,7 +197,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init(); + op = psa_hash_operation_init( ); for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); @@ -211,7 +213,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = (unsigned char)j_hash_idx_min; + for ( j_hash_idx = ( unsigned char )j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { @@ -329,9 +331,10 @@ exit: return( ret ); } -int mbedtls_lms_error_from_psa(psa_status_t status) +int mbedtls_lms_error_from_psa( psa_status_t status ) { - switch( status ) { + switch( status ) + { case PSA_SUCCESS: return( 0 ); case PSA_ERROR_HARDWARE_FAILURE: @@ -393,7 +396,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t sig_size, unsigned char *out, size_t out_size, - size_t *out_len) + size_t *out_len ) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; @@ -420,14 +423,14 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = hash_digit_array( params, sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), - tmp_digit_array, NULL, (unsigned char *)y_hashed_digits ); + tmp_digit_array, NULL, ( unsigned char * )y_hashed_digits ); if ( ret ) { return ( ret ); } ret = public_key_from_hashed_digit_array( params, - (unsigned char *)y_hashed_digits, + ( unsigned char * )y_hashed_digits, out ); if ( ret ) { @@ -459,8 +462,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( ctx->params.MBEDTLS_PRIVATE( type ) - != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( ctx->params.type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -475,7 +477,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, msg, msg_size, sig, sig_size, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), - NULL); + NULL ); if ( ret ) { return( ret ); @@ -522,7 +524,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { + if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) + { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -534,9 +537,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - unsigned_int_to_network_bytes(q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->params.q_leaf_identifier ); + unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->params.q_leaf_identifier ); unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); @@ -570,7 +573,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if ( ret ) goto exit; - status = psa_hash_update( &op, const_bytes, sizeof( const_bytes) ); + status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); ret = mbedtls_lms_error_from_psa( status ); if ( ret ) goto exit; @@ -604,7 +607,7 @@ exit: } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx) + mbedtls_lmots_private_t *priv_ctx ) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -616,15 +619,15 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } ret = hash_digit_array( &priv_ctx->params, - (unsigned char *)priv_ctx->private_key, NULL, - NULL, (unsigned char *)y_hashed_digits ); + ( unsigned char * )priv_ctx->private_key, NULL, + NULL, ( unsigned char * )y_hashed_digits ); if ( ret ) { return( ret ); } ret = public_key_from_hashed_digit_array( &priv_ctx->params, - (unsigned char *)y_hashed_digits, + ( unsigned char * )y_hashed_digits, ctx->public_key ); if ( ret ) { @@ -634,7 +637,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, memcpy( &ctx->params, &priv_ctx->params, sizeof( ctx->params ) ); - ctx->MBEDTLS_PRIVATE(have_public_key = 1); + ctx->have_public_key = 1; return( ret ); } @@ -662,9 +665,9 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy(key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); @@ -726,8 +729,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - ret = hash_digit_array( &ctx->params, (unsigned char *)ctx->private_key, - NULL, tmp_digit_array, (unsigned char *)tmp_sig ); + ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, + NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); if ( ret ) { return( ret ); @@ -741,8 +744,8 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key can't be reused. */ ctx->have_private_key = 0; - mbedtls_platform_zeroize(ctx->private_key, - sizeof(ctx->private_key)); + mbedtls_platform_zeroize( ctx->private_key, + sizeof( ctx->private_key ) ); memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type) ); diff --git a/library/lmots.h b/library/lmots.h index 46e03d6f5..03e44af00 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -145,8 +145,8 @@ typedef struct { * * \return The corresponding LMS error code. */ -void unsigned_int_to_network_bytes(unsigned int val, size_t len, - unsigned char *bytes); +void unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ); /** * \brief This function converts a network-byte-order @@ -157,8 +157,8 @@ void unsigned_int_to_network_bytes(unsigned int val, size_t len, * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int(size_t len, - const unsigned char *bytes); +unsigned int network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ); /** * \brief This function converts a \ref psa_status_t to a @@ -168,7 +168,7 @@ unsigned int network_bytes_to_unsigned_int(size_t len, * * \return The corresponding LMS error code. */ -int mbedtls_lms_error_from_psa(psa_status_t status); +int mbedtls_lms_error_from_psa( psa_status_t status ); /** @@ -240,7 +240,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters size_t sig_size, unsigned char *out, size_t out_size, - size_t *out_len); + size_t *out_len ); /** * \brief This function verifies a LMOTS signature, using a @@ -333,7 +333,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx); + mbedtls_lmots_private_t *priv_ctx ); /** diff --git a/library/lms.c b/library/lms.c index a1e4c243a..2ff8946c9 100644 --- a/library/lms.c +++ b/library/lms.c @@ -123,7 +123,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len); + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -182,7 +182,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, goto exit; ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len); + &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) goto exit; @@ -279,7 +279,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -301,9 +301,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - memcpy(ots_params.I_key_identifier, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN); + memcpy( ots_params.I_key_identifier, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, ots_params.q_leaf_identifier ); @@ -312,7 +312,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, - sizeof(Kc_candidate_ots_pub_key), NULL ); + sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret ) { return( ret ); @@ -393,8 +393,8 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, r_node_idx-- ) { ret = create_merkle_internal_value( &ctx->params, - &tree[(r_node_idx * 2) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - &tree[(r_node_idx * 2 + 1) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[( r_node_idx * 2 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[( r_node_idx * 2 + 1 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); if( ret ) @@ -416,7 +416,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = calculate_merkle_tree( ctx, (unsigned char *)tree); + ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); if( ret ) { return( ret ); @@ -496,7 +496,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_private_t)); + sizeof( mbedtls_lmots_private_t ) ); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -504,7 +504,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_public_t)); + sizeof( mbedtls_lmots_public_t ) ); if( ctx->ots_public_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -524,12 +524,12 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, otstype, ctx->params.I_key_identifier, idx, seed, seed_size ); - if( ret) + if( ret ) goto exit; ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], &ctx->ots_private_keys[idx] ); - if( ret) + if( ret ) goto exit; } @@ -539,7 +539,8 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, exit: if( ret ) { - for ( free_idx = 0; free_idx < idx; free_idx++ ) { + for ( free_idx = 0; free_idx < idx; free_idx++ ) + { mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); } @@ -558,7 +559,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! priv_ctx->MBEDTLS_PRIVATE( have_private_key ) ) + if( ! priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -576,9 +577,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } memcpy( &ctx->params, &priv_ctx->params, - sizeof(mbedtls_lmots_parameters_t) ); + sizeof( mbedtls_lmots_parameters_t ) ); - ret = calculate_merkle_tree( priv_ctx, (unsigned char *)tree); + ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); if( ret ) { return( ret ); @@ -586,7 +587,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, /* Root node is always at position 1, due to 1-based indexing */ memcpy( ctx->T_1_pub_key, &tree[1], - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -598,7 +599,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } @@ -619,7 +621,8 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, ctx->T_1_pub_key, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); - if( key_len != NULL ) { + if( key_len != NULL ) + { *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); } @@ -630,7 +633,7 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len) + unsigned char *sig, size_t sig_size, size_t *sig_len ) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -681,7 +684,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET); + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, @@ -691,7 +694,8 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - if( sig_len != NULL ) { + if( sig_len != NULL ) + { *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype); } From e0a17610d1e67483842392cc9cbc84c738e79239 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 16:04:47 +0100 Subject: [PATCH 0215/1574] Fix LMS/LMOTS if-statement style Signed-off-by: Raef Coles --- library/lmots.c | 100 ++++++++++++++++++++++++------------------------ library/lms.c | 46 +++++++++++----------- 2 files changed, 73 insertions(+), 73 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index fe78894f4..878d671cb 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -128,42 +128,42 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, msg, msg_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; checksum = lmots_checksum_calculate( params, out ); @@ -219,47 +219,47 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; psa_hash_abort( &op ); @@ -270,7 +270,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, } exit: - if( ret ) + if( ret != 0 ) { psa_hash_abort( &op ); return( ret ); @@ -293,32 +293,32 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, y_hashed_digits, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, pub_key, @@ -367,7 +367,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - if ( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -402,12 +402,12 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || + if( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -416,7 +416,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = create_digit_array_with_checksum( params, msg, msg_size, sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_digit_array ); - if ( ret ) + if( ret ) { return ( ret ); } @@ -424,7 +424,7 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = hash_digit_array( params, sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), tmp_digit_array, NULL, ( unsigned char * )y_hashed_digits ); - if ( ret ) + if( ret ) { return ( ret ); } @@ -432,12 +432,12 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters ret = public_key_from_hashed_digit_array( params, ( unsigned char * )y_hashed_digits, out ); - if ( ret ) + if( ret ) { return ( ret ); } - if ( out_len != NULL ) + if( out_len != NULL ) { *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type); } @@ -452,12 +452,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( !ctx->have_public_key ) + if( !ctx->have_public_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -467,7 +467,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -478,12 +478,12 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, Kc_public_key_candidate, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), NULL ); - if ( ret ) + if( ret ) { return( ret ); } - if ( memcmp( &Kc_public_key_candidate, ctx->public_key, + if( memcmp( &Kc_public_key_candidate, ctx->public_key, sizeof( ctx->public_key ) ) ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -519,12 +519,12 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned char const_bytes[1]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( ctx->have_private_key ) + if( ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if ( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) + if( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -549,38 +549,38 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; ret = psa_hash_update( &op, ctx->params.I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_update( &op, seed, seed_size ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; status = psa_hash_finish( &op, @@ -588,7 +588,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret ) + if( ret ) goto exit; psa_hash_abort( &op ); @@ -597,7 +597,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret ) + if( ret != 0 ) { psa_hash_abort( &op ); return( ret ); @@ -613,7 +613,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that a private key is loaded */ - if ( !priv_ctx->have_private_key ) + if( !priv_ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -621,7 +621,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ret = hash_digit_array( &priv_ctx->params, ( unsigned char * )priv_ctx->private_key, NULL, NULL, ( unsigned char * )y_hashed_digits ); - if ( ret ) + if( ret ) { return( ret ); } @@ -629,7 +629,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ret = public_key_from_hashed_digit_array( &priv_ctx->params, ( unsigned char * )y_hashed_digits, ctx->public_key ); - if ( ret ) + if( ret ) { return( ret ); } @@ -697,7 +697,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( msg == NULL && msg_size != 0 ) + if( msg == NULL && msg_size != 0 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } @@ -708,14 +708,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, } /* Check that a private key is loaded */ - if ( !ctx->have_private_key ) + if( !ctx->have_private_key ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = f_rng( p_rng, tmp_c_random, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); - if ( ret ) + if( ret ) { return( ret ); } @@ -724,14 +724,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, msg, msg_size, tmp_c_random, tmp_digit_array ); - if ( ret ) + if( ret ) { return( ret ); } ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); - if ( ret ) + if( ret ) { return( ret ); } diff --git a/library/lms.c b/library/lms.c index 2ff8946c9..72f93192b 100644 --- a/library/lms.c +++ b/library/lms.c @@ -96,36 +96,36 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; exit: @@ -149,42 +149,42 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); - if ( ret != 0 ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; status = psa_hash_update( &op, right_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( ret != 0 ) goto exit; exit: @@ -313,7 +313,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof( Kc_candidate_ots_pub_key ), NULL ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -380,7 +380,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, ret = create_merkle_leaf_value( &ctx->params, ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -397,7 +397,7 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, &tree[( r_node_idx * 2 + 1 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], r_node_idx, &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -417,7 +417,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -524,12 +524,12 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, otstype, ctx->params.I_key_identifier, idx, seed, seed_size ); - if( ret ) + if( ret != 0 ) goto exit; ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], &ctx->ots_private_keys[idx] ); - if( ret ) + if( ret != 0 ) goto exit; } @@ -537,7 +537,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret ) + if( ret != 0 ) { for ( free_idx = 0; free_idx < idx; free_idx++ ) { @@ -580,7 +580,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, sizeof( mbedtls_lmots_parameters_t ) ); ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -676,7 +676,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), NULL ); - if( ret ) + if( ret != 0 ) { return( ret ); } @@ -689,7 +689,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); - if( ret ) + if( ret != 0 ) { return( ret ); } From f5919e299781f9a4541b5d7c5f07a43c9203c20b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 16:05:10 +0100 Subject: [PATCH 0216/1574] Update LMS/LMOTS tests Document tests and source of data, use test RNG, pass more parameters into each test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 39 ++++++++++++++++-- tests/suites/test_suite_lmots.function | 55 ++++++++------------------ tests/suites/test_suite_lms.data | 42 +++++++++++++++++++- tests/suites/test_suite_lms.function | 31 +++++---------- 4 files changed, 103 insertions(+), 64 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index d5088f9e5..6b4cc35d9 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -1,29 +1,62 @@ LMOTS sign-verify test #1 -lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lmots_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"00000000000000000000000000000000":12:"403cbcc9808bb4b5ad72476ea297b2854c928ff5336f0b98ac2237ec83225ae7" LMOTS sign-verify test #2 -lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3":"00000000000000000000000000000000":12:"c3dbc3fea047dca8fb7a3cdf609a5b7f48599c193c90e958ce9388c84df0a906" LMOTS hash-sigs interop test #1 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 LMOTS hash-sigs interop test #2 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 LMOTS hash-sigs interop test #3 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 LMOTS hash-sigs interop negative test (altered random value) +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMOTS. A public/private key was generated +# and used to sign a randomly generated message. This test is a negative test +# where the signature from the hash-sigs interop test #1 data has been altered, +# and is expected to fail to verify. lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMOTS type. This test has an invalid LMOTS type, and +# should fail with a bad input data error. lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS negative test (invalid type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMOTS type. This test has an invalid LMOTS type, and +# should fail with a bad input data error. lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test +# This test uses a randomly generated LMOTS public key. It imports the key, and +# then exports it, and verifies that the exported key is identical to the +# original key. lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" LMOTS key reuse test -lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14" +# This test uses a fixed message, and then generates a private key, signs the +# message, and then attempts to sign the message again. The second signature +# must fail as private key material must be deleted after a key is used to sign. +lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index ce69803f4..2a9ea541a 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -2,52 +2,39 @@ #include "lmots.h" #include "mbedtls/lms.h" -#include "mbedtls/entropy.h" -#include "mbedtls/ctr_drbg.h" - /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C * END_DEPENDENCIES */ /* BEGIN_CASE */ -void lmots_sign_verify_test ( data_t * msg ) +void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, + data_t *seed ) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); mbedtls_lmots_init_public( &pub_ctx ); mbedtls_lmots_init_private( &priv_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); + key_id->x, leaf_id, seed->x, seed->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lmots_free_public( &pub_ctx ); mbedtls_lmots_free_private( &priv_ctx ); } /* END_CASE */ /* BEGIN_CASE */ -void lmots_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, +void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) { mbedtls_lmots_public_t ctx; @@ -68,13 +55,16 @@ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + size_t exported_pub_key_len; mbedtls_lmots_init_public( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + sizeof( exported_pub_key ), + &exported_pub_key_len ) == 0 ); - TEST_ASSERT( memcmp( pub_key->x, exported_pub_key, - MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ) == 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_len ); exit: mbedtls_lmots_free_public( &ctx ); @@ -82,36 +72,25 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lmots_reuse_test ( data_t * msg ) +void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; - - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed(&drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, (uint8_t*)"", 0 ) == 0 ); - - mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ); mbedtls_lmots_init_private( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - (uint8_t[16]){0}, 0x12, seed, sizeof( seed ) ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + key_id->x, leaf_id, seed->x, + seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_ctr_drbg_random, &drbg_ctx, + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index b17fddc15..c17d05ac5 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -1,32 +1,70 @@ LMS sign-verify test -lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b" +# This test uses a fixed message, and then generates a private key, signs the +# message, and verifies the signature. +lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"626201f41afd7c9af793cf158da58e33" LMS hash-sigs interop test #1 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 LMS hash-sigs interop test #2 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 LMS hash-sigs interop test #3 +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. We expect this +# message/signature/public key trio to verify correctly. lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 LMS hash-sigs interop negative test (altered random value) +# This test uses data from https://github.com/cisco/hash-sigs due to the limited +# amount of available test vectors for LMS. A public/private key was generated +# and used to sign a randomly generated message. This test is a negative test +# where the signature from the hash-sigs interop test #1 data has been altered, +# and is expected to fail to verify. lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type +# (0x4) but an invalid LMS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lms type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type +# (0x4) but an invalid LMS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lm_ots type) #1 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMS type +# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS negative test (invalid lm_ots type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types. This test has a valid LMS type +# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA -LMS negative test (invalid leaf ID) +LMS negative test (invalid lm_ots type) #2 +# This test uses a null (zeroed) message/signature/public key trio, with the +# only parts set being the LMS and LMOTS types and the leaf ID. In this case, +# the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This +# test should fail to verify the signature. lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test +# This test uses a randomly generated LMS public key. It imports the key, and +# then exports it, and verifies that the exported key is identical to the +# original key. lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 92a5a07ab..148075d1b 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -1,55 +1,44 @@ /* BEGIN_HEADER */ #include "mbedtls/lms.h" -#include "mbedtls/entropy.h" -#include "mbedtls/ctr_drbg.h" /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_CTR_DRBG_C + * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C * END_DEPENDENCIES */ /* BEGIN_CASE */ -void lms_sign_verify_test ( data_t * msg ) +void lms_sign_verify_test ( data_t *msg, data_t *seed ) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_entropy_context entropy_ctx; - mbedtls_ctr_drbg_context drbg_ctx; - uint8_t seed[16]; int rc; - mbedtls_entropy_init( &entropy_ctx ); - mbedtls_ctr_drbg_init( &drbg_ctx ); mbedtls_lms_init_public( &pub_ctx ); mbedtls_lms_init_private( &priv_ctx ); - TEST_ASSERT( mbedtls_ctr_drbg_seed( &drbg_ctx, mbedtls_entropy_func, - &entropy_ctx, ( uint8_t* )"", 0 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &drbg_ctx, seed, sizeof( seed ) ) == 0 ); - - /* Allocation failure isn't a test failure, since it likely just means there's not enough memory to run the test */ + /* Allocation failure isn't a test failure, since it likely just means + * there's not enough memory to run the test. + */ rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, - mbedtls_ctr_drbg_random, &drbg_ctx, seed, - sizeof( seed ) ); + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); TEST_ASSERT( rc == 0 ); TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_ctr_drbg_random, - &drbg_ctx, msg->x, msg->len, sig, - sizeof( sig ), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), + NULL ) == 0 ); TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, sizeof( sig ) ) == 0 ); exit: - mbedtls_entropy_free( &entropy_ctx ); - mbedtls_ctr_drbg_free( &drbg_ctx ); mbedtls_lms_free_public( &pub_ctx ); mbedtls_lms_free_private( &priv_ctx ); } From 8738a49d0c46617523edf98f436e7e8641fd195e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:13:01 +0100 Subject: [PATCH 0217/1574] Fix iterator types in LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 878d671cb..7dbf8a206 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -182,13 +182,10 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *hash_idx_max_values, unsigned char *output ) { - unsigned char i_digit_idx; - unsigned char j_hash_idx; + unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN]; - unsigned char j_hash_idx_bytes[1]; - /* These can't be unsigned chars, because they are sometimes set to - * #DIGIT_MAX_VALUE, which has a value of 256 - */ + unsigned int j_hash_idx; + unsigned char j_hash_idx_bytes[J_HASH_IDX_LEN]; unsigned int j_hash_idx_min; unsigned int j_hash_idx_max; psa_hash_operation_t op; @@ -213,7 +210,7 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx_max = hash_idx_max_values != NULL ? hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = ( unsigned char )j_hash_idx_min; + for ( j_hash_idx = j_hash_idx_min; j_hash_idx < j_hash_idx_max; j_hash_idx++ ) { From 0a967ccf9ac868ddaf5f8da3cd4ab3a0119d81af Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:46:15 +0100 Subject: [PATCH 0218/1574] Document LMS and LMOTS internal functions Signed-off-by: Raef Coles --- library/lmots.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++ library/lms.c | 69 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 146 insertions(+), 1 deletion(-) diff --git a/library/lmots.c b/library/lmots.c index 7dbf8a206..fe01bf672 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -99,6 +99,17 @@ unsigned int network_bytes_to_unsigned_int( size_t len, return val; } +/* Calculate the checksum digits that are appended to the end of the LMOTS digit + * string. See NIST SP800-208 section 3.1 or RFC8554 Algorithm 2 for details of + * the checksum algorithm. + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param digest The digit string to create the digest from. As + * this does not contain a checksum, it is the same + * size as a hash output. + */ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, const unsigned char* digest ) { @@ -113,6 +124,29 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t return sum; } +/* Create the string of digest digits (in the base determined by the Winternitz + * parameter with the checksum appended to the end (Q || cksm(Q)). See NIST + * SP800-208 section 3.1 or RFC8554 Algorithm 3 step 5 (also used in Algorithm + * 4b step 3) for details. + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param msg The message that will be hashed to create the + * digest. + * + * \param msg_size The size of the message. + * + * \param C_random_value The random value that will be combined with the + * message digest. This is always the same size as a + * hash output for whichever hash algorithm is + * determined by the parameter set. + * + * \param output An output containing the digit string (+ + * checksum) of length P digits (in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of + * size P bytes). + */ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_len, @@ -176,6 +210,35 @@ exit: return( ret ); } +/* Hash each element of the string of digits (+ checksum), producing a hash + * output for each element. This is used in several places (by varying the + * hash_idx_min/max_values) in order to calculate a public key from a private + * key (RFC8554 Algorithm 1 step 4), in order to sign a message (RFC8554 + * Algorithm 3 step 5), and to calculate a public key candidate from a + * signature and message (RFC8554 Algorithm 4b step 3). + * + * \param params The LMOTS parameter set, I and q values which + * describe the key being used. + * + * \param x_digit_array The array of digits (of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8). + * + * \param hash_idx_min_values An array of the starting values of the j iterator + * for each of the members of the digit array. If + * this value in NULL, then all iterators will start + * at 0. + * + * \param hash_idx_max_values An array of the upper bound values of the j + * iterator for each of the members of the digit + * array. If this value in NULL, then iterator is + * bounded to be less than 2^w - 1 (255 in the case + * of MBEDTLS_LMOTS_SHA256_N32_W8) + * + * \param output An array containing a hash output for each member + * of the digit string P. In the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * + * 34. + */ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *x_digit_array, const unsigned char *hash_idx_min_values, @@ -278,6 +341,21 @@ exit: return ret; } +/* Combine the hashes of the digit array into a public key. This is used in + * in order to calculate a public key from a private key (RFC8554 Algorithm 1 + * step 4), and to calculate a public key candidate from a signature and message + * (RFC8554 Algorithm 4b step 3). + * + * \param params The LMOTS parameter set, I and q values which describe + * the key being used. + * \param y_hashed_digits The array of hashes, one hash for each digit of the + * symbol array (which is of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8) + * + * \param pub_key The output public key (or candidate public key in + * case this is being run as part of signature + * verification), in the form of a hash output. + */ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *y_hashed_digits, unsigned char *pub_key ) diff --git a/library/lms.c b/library/lms.c index 72f93192b..e0f5946ef 100644 --- a/library/lms.c +++ b/library/lms.c @@ -80,8 +80,27 @@ #define D_CONST_LEN (2) static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; -static const unsigned char D_INTERNAL_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; +static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; + +/* Calculate the value of a leaf node of the merkle tree (which is a hash of a + * public key and some other parameters like the leaf index). This function + * implements RFC8554 section 5.3, in the case where r >= 2^h. + * + * \param params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. + * + * \param pub_key The public key of the private whose index + * corresponds to the index of this leaf node. This + * is a hash output. + * + * \param r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. + * + * \param out The output node value, which is a hash output. + */ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *pub_key, unsigned int r_node_idx, @@ -134,6 +153,28 @@ exit: return( ret ); } +/* Calculate the value of an internal node of the merkle tree (which is a hash + * of a public key and some other parameters like the node index). This function + * implements RFC8554 section 5.3, in the case where r < 2^h. + * + * \param params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. + * + * \param left_node The value of the child of this node which is on + * the left-hand side. As with all nodes on the + * merkle tree, this is a hash output. + * + * \param right_node The value of the child of this node which is on + * the right-hand side. As with all nodes on the + * merkle tree, this is a hash output. + * + * \param r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. + * + * \param out The output node value, which is a hash output. + */ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, const unsigned char *left_node, const unsigned char *right_node, @@ -363,6 +404,20 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #ifdef MBEDTLS_LMS_PRIVATE +/* Calculate a full merkle tree based on a private key. This function + * implements RFC8554 section 5.3, and is used to generate a public key (as the + * public key is the root node of the merkle tree). + * + * \param ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. + * + * \param tree The output tree, which is 2^(H + 1) hash outputs. + * In the case of H=10 we have 2048 tree nodes (of + * which 1024 of them are leaf nodes). Note that + * because the merkle tree root is 1-indexed, the 0 + * index tree node is never used. + */ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, unsigned char *tree ) { @@ -406,6 +461,18 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, return( 0 ); } +/* Calculate a path from a leaf node of the merkle tree to the root of the tree, + * and return the full path. This function implements RFC8554 section 5.4.1, as + * the merkle path is the main component of an LMS signature. + * + * \param ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. + * + * \param leaf_node_id Which leaf node to calculate the path from. + * + * \param tree The output path, which is H hash outputs. + */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, unsigned char *path ) From fa24f9d6ea4be3aa5f91a0e9c5a13753022a6fd0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 17:46:52 +0100 Subject: [PATCH 0219/1574] Minor fixes to LMS and LMOTS macros Update some names, use the correct macro in certain places. Signed-off-by: Raef Coles --- library/lmots.c | 2 +- library/lmots.h | 4 ++-- library/lms.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index fe01bf672..8e56696e5 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -194,7 +194,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p goto exit; status = psa_hash_finish( &op, out, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type), + MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) diff --git a/library/lmots.h b/library/lmots.h index 03e44af00..56d23f855 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -104,7 +104,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(public_key)[32]; + unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ } mbedtls_lmots_public_t; @@ -129,7 +129,7 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][32]; + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; diff --git a/library/lms.c b/library/lms.c index e0f5946ef..26c48efa3 100644 --- a/library/lms.c +++ b/library/lms.c @@ -205,7 +205,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - status = psa_hash_update( &op, D_INTERNAL_CONSTANT_BYTES, D_CONST_LEN ); + status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) goto exit; From 9c9027b1a47f64ac16ceeaf61bc261bdc9f5c90b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 2 Sep 2022 18:26:31 +0100 Subject: [PATCH 0220/1574] Add extra LMS and LMOTS tests NULL-message and LMOTS signature leak tests Signed-off-by: Raef Coles --- library/lmots.c | 21 ++++++-- library/lmots.h | 4 ++ tests/suites/test_suite_lmots.data | 12 +++++ tests/suites/test_suite_lmots.function | 69 ++++++++++++++++++++++++++ tests/suites/test_suite_lms.data | 5 ++ tests/suites/test_suite_lms.function | 36 ++++++++++++++ 6 files changed, 142 insertions(+), 5 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 8e56696e5..d733dc02e 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,11 +44,6 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) - #define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) #define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ MBEDTLS_LMOTS_TYPE_LEN) @@ -74,6 +69,10 @@ static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; +#if defined(MBEDTLS_TEST_HOOKS) +int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL; +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + void unsigned_int_to_network_bytes( unsigned int val, size_t len, unsigned char *bytes ) { @@ -815,6 +814,18 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + /* Test hook to check if sig is being written to before we invalidate the + * private key. + */ +#if defined(MBEDTLS_TEST_HOOKS) + if( mbedtls_lmots_sign_private_key_invalidated_hook != NULL ) + { + ret = ( *mbedtls_lmots_sign_private_key_invalidated_hook )( sig ); + if( ret != 0 ) + return( ret ); + } +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /* We've got a valid signature now, so it's time to make sure the private * key can't be reused. */ diff --git a/library/lmots.h b/library/lmots.h index 56d23f855..993c01c10 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -54,6 +54,10 @@ MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_TYPE_OFFSET (0) +#define MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET (MBEDTLS_LMOTS_SIG_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(type) (MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type)) #ifdef __cplusplus extern "C" { diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 6b4cc35d9..0845a17d0 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -8,6 +8,11 @@ LMOTS sign-verify test #2 # message, and verifies the signature. lmots_sign_verify_test:"55a6647a581004306792b653a561d9f3":"00000000000000000000000000000000":12:"c3dbc3fea047dca8fb7a3cdf609a5b7f48599c193c90e958ce9388c84df0a906" +LMOTS NULL-message sign-verify test +# This test uses a NULL zero-length message, and then generates a private key, +# signs the message, and verifies the signature. +lmots_sign_verify_null_msg_test::"00000000000000000000000000000000":12:"be5fa89144f2d665c66ead8216bc02006e0eccd8b3697a0aea44f6c93afe7955" + LMOTS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the limited # amount of available test vectors for LMOTS. A public/private key was generated @@ -60,3 +65,10 @@ LMOTS key reuse test # message, and then attempts to sign the message again. The second signature # must fail as private key material must be deleted after a key is used to sign. lmots_reuse_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" + +LMOTS signature leak test +# This test uses a fixed message, and then generates a private key, signs the +# message, and then uses a test hook to check that the signature has not been +# modifier before the private key has been deleted (which could cause signature +# leakage during errors). +lmots_signature_leak_test:"cfcd1e81193e310c9d931d1b00818d14":"00000000000000000000000000000000":12:"a7f53cc5a228ce63811ba4d7c1f74f7fce62afbf6813f3ca3ae43c11b138086f" diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 2a9ea541a..d7067dfe0 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -2,6 +2,27 @@ #include "lmots.h" #include "mbedtls/lms.h" +#if defined(MBEDTLS_TEST_HOOKS) +extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); + +int check_lmots_private_key_for_leak(unsigned char * sig) +{ + size_t idx; + + for( idx = MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(MBEDTLS_LMOTS_SHA256_N32_W8); + idx < MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); + idx++ ) + { + if( sig[idx] != 0x7E ) { + while(1){} + return 1; + } + } + + return 0; +} +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -33,6 +54,29 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) +{ + mbedtls_lmots_public_t pub_ctx; + mbedtls_lmots_private_t priv_ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + + mbedtls_lmots_init_public( &pub_ctx ); + mbedtls_lmots_init_private( &priv_ctx ); + + TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), NULL ) == 0 ); + TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); + +exit: + mbedtls_lmots_free_public( &pub_ctx ); + mbedtls_lmots_free_private( &priv_ctx ); +} +/* END_CASE */ + /* BEGIN_CASE */ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) @@ -94,3 +138,28 @@ exit: mbedtls_lmots_free_private( &ctx ); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ +void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, + data_t *seed ) +{ + mbedtls_lmots_private_t ctx; + unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; + + mbedtls_lmots_sign_private_key_invalidated_hook = &check_lmots_private_key_for_leak; + + /* Fill with recognisable pattern */ + memset( sig, 0x7E, sizeof( sig ) ); + + mbedtls_lmots_init_private( &ctx ); + TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ) == 0 ); + TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + +exit: + mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_sign_private_key_invalidated_hook = NULL; +} +/* END_CASE */ diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index c17d05ac5..d890dd4dd 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -3,6 +3,11 @@ LMS sign-verify test # message, and verifies the signature. lms_sign_verify_test:"c41ba177a0ca1ec31dfb2e145237e65b":"626201f41afd7c9af793cf158da58e33" +LMS NULL-message sign-verify test +# This test uses a NULL zero-length message, and then generates a private key, +# signs the message, and verifies the signature. +lms_sign_verify_null_msg_test:"923a3c8e38c9b72e067996bfdaa36856" + LMS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the limited # amount of available test vectors for LMS. A public/private key was generated diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 148075d1b..900392334 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -44,6 +44,42 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void lms_sign_verify_null_msg_test( data_t *seed ) +{ + mbedtls_lms_public_t pub_ctx; + mbedtls_lms_private_t priv_ctx; + unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; + int rc; + + mbedtls_lms_init_public( &pub_ctx ); + mbedtls_lms_init_private( &priv_ctx ); + + /* Allocation failure isn't a test failure, since it likely just means + * there's not enough memory to run the test. + */ + rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len ); + TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); + TEST_ASSERT( rc == 0 ); + + TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + + TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof( sig ), + NULL ) == 0 ); + + TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, + sizeof( sig ) ) == 0 ); + +exit: + mbedtls_lms_free_public( &pub_ctx ); + mbedtls_lms_free_private( &priv_ctx ); +} +/* END_CASE */ + /* BEGIN_CASE */ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) From 1310ecb38906f0902b4a1c861cbf5f541220458e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 22 Sep 2022 15:41:49 +0100 Subject: [PATCH 0221/1574] Update LMOTS function documentation To avoid CI failure Signed-off-by: Raef Coles --- library/lmots.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/lmots.h b/library/lmots.h index 993c01c10..f6daa0bcc 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -146,8 +146,6 @@ typedef struct { * \param val The unsigned integer value * \param len The length of the string. * \param bytes The string to output into. - * - * \return The corresponding LMS error code. */ void unsigned_int_to_network_bytes( unsigned int val, size_t len, unsigned char *bytes ); From 40f184c83ee9ab0a96284365c8c4a1c3d0445631 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 22 Sep 2022 18:30:33 +0100 Subject: [PATCH 0222/1574] Cast LMS allocation sizes to size_t To prevent implict casting errors on 64-bit platforms Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 26c48efa3..f1230c7e7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -562,7 +562,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( mbedtls_lmots_private_t ) ); if( ctx->ots_private_keys == NULL ) { @@ -570,7 +570,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( mbedtls_lmots_public_t ) ); if( ctx->ots_public_keys == NULL ) { From 98d6e2205090e26f20f56f7839edb153c54cdc81 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 09:04:04 +0100 Subject: [PATCH 0223/1574] Remove doxygen markup from internal LMS functions Signed-off-by: Raef Coles --- library/lmots.c | 86 ++++++++++++++++++++++++------------------------- library/lms.c | 72 ++++++++++++++++++++--------------------- 2 files changed, 79 insertions(+), 79 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index d733dc02e..bdcd44570 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -102,12 +102,12 @@ unsigned int network_bytes_to_unsigned_int( size_t len, * string. See NIST SP800-208 section 3.1 or RFC8554 Algorithm 2 for details of * the checksum algorithm. * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param digest The digit string to create the digest from. As - * this does not contain a checksum, it is the same - * size as a hash output. + * digest The digit string to create the digest from. As + * this does not contain a checksum, it is the same + * size as a hash output. */ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, const unsigned char* digest ) @@ -128,23 +128,23 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t * SP800-208 section 3.1 or RFC8554 Algorithm 3 step 5 (also used in Algorithm * 4b step 3) for details. * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param msg The message that will be hashed to create the - * digest. + * msg The message that will be hashed to create the + * digest. * - * \param msg_size The size of the message. + * msg_size The size of the message. * - * \param C_random_value The random value that will be combined with the - * message digest. This is always the same size as a - * hash output for whichever hash algorithm is - * determined by the parameter set. + * C_random_value The random value that will be combined with the + * message digest. This is always the same size as a + * hash output for whichever hash algorithm is + * determined by the parameter set. * - * \param output An output containing the digit string (+ - * checksum) of length P digits (in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of - * size P bytes). + * output An output containing the digit string (+ + * checksum) of length P digits (in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of + * size P bytes). */ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, @@ -216,27 +216,27 @@ exit: * Algorithm 3 step 5), and to calculate a public key candidate from a * signature and message (RFC8554 Algorithm 4b step 3). * - * \param params The LMOTS parameter set, I and q values which - * describe the key being used. + * params The LMOTS parameter set, I and q values which + * describe the key being used. * - * \param x_digit_array The array of digits (of size P, 34 in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8). + * x_digit_array The array of digits (of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8). * - * \param hash_idx_min_values An array of the starting values of the j iterator - * for each of the members of the digit array. If - * this value in NULL, then all iterators will start - * at 0. + * hash_idx_min_values An array of the starting values of the j iterator + * for each of the members of the digit array. If + * this value in NULL, then all iterators will start + * at 0. * - * \param hash_idx_max_values An array of the upper bound values of the j - * iterator for each of the members of the digit - * array. If this value in NULL, then iterator is - * bounded to be less than 2^w - 1 (255 in the case - * of MBEDTLS_LMOTS_SHA256_N32_W8) + * hash_idx_max_values An array of the upper bound values of the j + * iterator for each of the members of the digit + * array. If this value in NULL, then iterator is + * bounded to be less than 2^w - 1 (255 in the case + * of MBEDTLS_LMOTS_SHA256_N32_W8) * - * \param output An array containing a hash output for each member - * of the digit string P. In the case of - * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * - * 34. + * output An array containing a hash output for each member + * of the digit string P. In the case of + * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * + * 34. */ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *x_digit_array, @@ -345,15 +345,15 @@ exit: * step 4), and to calculate a public key candidate from a signature and message * (RFC8554 Algorithm 4b step 3). * - * \param params The LMOTS parameter set, I and q values which describe - * the key being used. - * \param y_hashed_digits The array of hashes, one hash for each digit of the - * symbol array (which is of size P, 34 in the case of - * MBEDTLS_LMOTS_SHA256_N32_W8) + * params The LMOTS parameter set, I and q values which describe + * the key being used. + * y_hashed_digits The array of hashes, one hash for each digit of the + * symbol array (which is of size P, 34 in the case of + * MBEDTLS_LMOTS_SHA256_N32_W8) * - * \param pub_key The output public key (or candidate public key in - * case this is being run as part of signature - * verification), in the form of a hash output. + * pub_key The output public key (or candidate public key in + * case this is being run as part of signature + * verification), in the form of a hash output. */ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, const unsigned char *y_hashed_digits, diff --git a/library/lms.c b/library/lms.c index f1230c7e7..7ec2b103f 100644 --- a/library/lms.c +++ b/library/lms.c @@ -87,19 +87,19 @@ static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; * public key and some other parameters like the leaf index). This function * implements RFC8554 section 5.3, in the case where r >= 2^h. * - * \param params The LMS parameter set, the underlying LMOTS - * parameter set, and I value which describe the key - * being used. + * params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. * - * \param pub_key The public key of the private whose index - * corresponds to the index of this leaf node. This - * is a hash output. + * pub_key The public key of the private whose index + * corresponds to the index of this leaf node. This + * is a hash output. * - * \param r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is - * 1-indexed. + * r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. * - * \param out The output node value, which is a hash output. + * out The output node value, which is a hash output. */ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *pub_key, @@ -157,23 +157,23 @@ exit: * of a public key and some other parameters like the node index). This function * implements RFC8554 section 5.3, in the case where r < 2^h. * - * \param params The LMS parameter set, the underlying LMOTS - * parameter set, and I value which describe the key - * being used. + * params The LMS parameter set, the underlying LMOTS + * parameter set, and I value which describe the key + * being used. * - * \param left_node The value of the child of this node which is on - * the left-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * left_node The value of the child of this node which is on + * the left-hand side. As with all nodes on the + * merkle tree, this is a hash output. * - * \param right_node The value of the child of this node which is on - * the right-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * right_node The value of the child of this node which is on + * the right-hand side. As with all nodes on the + * merkle tree, this is a hash output. * - * \param r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is - * 1-indexed. + * r_node_idx The index of this node in the merkle tree. Note + * that the root node of the merkle tree is + * 1-indexed. * - * \param out The output node value, which is a hash output. + * out The output node value, which is a hash output. */ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, const unsigned char *left_node, @@ -408,15 +408,15 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * implements RFC8554 section 5.3, and is used to generate a public key (as the * public key is the root node of the merkle tree). * - * \param ctx The LMS private context, containing a parameter - * set and private key material consisting of both - * public and private OTS. + * ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. * - * \param tree The output tree, which is 2^(H + 1) hash outputs. - * In the case of H=10 we have 2048 tree nodes (of - * which 1024 of them are leaf nodes). Note that - * because the merkle tree root is 1-indexed, the 0 - * index tree node is never used. + * tree The output tree, which is 2^(H + 1) hash outputs. + * In the case of H=10 we have 2048 tree nodes (of + * which 1024 of them are leaf nodes). Note that + * because the merkle tree root is 1-indexed, the 0 + * index tree node is never used. */ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, unsigned char *tree ) @@ -465,13 +465,13 @@ static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, * and return the full path. This function implements RFC8554 section 5.4.1, as * the merkle path is the main component of an LMS signature. * - * \param ctx The LMS private context, containing a parameter - * set and private key material consisting of both - * public and private OTS. + * ctx The LMS private context, containing a parameter + * set and private key material consisting of both + * public and private OTS. * - * \param leaf_node_id Which leaf node to calculate the path from. + * leaf_node_id Which leaf node to calculate the path from. * - * \param tree The output path, which is H hash outputs. + * tree The output path, which is H hash outputs. */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, From 3982040232bfa983439d28edb831291a8121f4d0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 09:12:54 +0100 Subject: [PATCH 0224/1574] Fix LMS zeroization using wrong sizeof type Causing a buffer write out of bounds Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index 7ec2b103f..653530c75 100644 --- a/library/lms.c +++ b/library/lms.c @@ -525,7 +525,7 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) mbedtls_free( ctx->ots_public_keys ); } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ); } From 403558c1c96256737cffb20822e3869d1f4721fa Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 23 Sep 2022 17:03:53 +0100 Subject: [PATCH 0225/1574] Fix LMS function documentation Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 3e84ce057..9a8afa1c4 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -269,7 +269,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \param ctx The initialized LMS public context to generate the key * from and store it into. * - * \param ctx The LMS private context to read the private key + * \param priv_ctx The LMS private context to read the private key * from. This must have been initialized and contain a * private key. * From 40158e11fc6bd46ebbf759eab3958fb562c595ac Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 10:23:53 +0100 Subject: [PATCH 0226/1574] Add LMOTS test hook to header Signed-off-by: Raef Coles --- library/lmots.h | 4 ++++ tests/suites/test_suite_lmots.function | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/library/lmots.h b/library/lmots.h index f6daa0bcc..d0379e3a2 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -139,6 +139,10 @@ typedef struct { } mbedtls_lmots_private_t; #endif /* MBEDTLS_LMS_PRIVATE */ +#if defined(MBEDTLS_TEST_HOOKS) +extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); +#endif /* defined(MBEDTLS_TEST_HOOKS) */ + /** * \brief This function converts an unsigned int into a * network-byte-order (big endian) string. diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index d7067dfe0..dd8a665d5 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -3,8 +3,6 @@ #include "mbedtls/lms.h" #if defined(MBEDTLS_TEST_HOOKS) -extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); - int check_lmots_private_key_for_leak(unsigned char * sig) { size_t idx; From ad05425ab75951763490d64df931759e0087a318 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 10:59:16 +0100 Subject: [PATCH 0227/1574] Update naming of internal LMS functions To comply with the mbedtls_ requirement Signed-off-by: Raef Coles --- library/lmots.c | 53 ++++++++++++++++++++++++++----------------------- library/lmots.h | 8 ++++---- library/lms.c | 35 +++++++++++++++++--------------- 3 files changed, 51 insertions(+), 45 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index bdcd44570..6846d4cde 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -73,8 +73,8 @@ static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL; #endif /* defined(MBEDTLS_TEST_HOOKS) */ -void unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ) +void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ) { size_t idx; @@ -84,8 +84,8 @@ void unsigned_int_to_network_bytes( unsigned int val, size_t len, } } -unsigned int network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ) +unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ) { size_t idx; unsigned int val = 0; @@ -200,8 +200,8 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p goto exit; checksum = lmots_checksum_calculate( params, out ); - unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, - out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + mbedtls_lms_unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, + out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); exit: psa_hash_abort( &op ); @@ -295,15 +295,17 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, + I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, - j_hash_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( j_hash_idx, + J_HASH_IDX_LEN, + j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -438,8 +440,8 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { ctx->params.type = - network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { @@ -541,7 +543,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -611,11 +613,12 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->params.q_leaf_identifier ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->params.q_leaf_identifier ); - unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), const_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), + const_bytes ); for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); @@ -640,8 +643,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, if( ret ) goto exit; - unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); ret = mbedtls_lms_error_from_psa( status ); if( ret ) @@ -731,9 +734,9 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, @@ -810,9 +813,9 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); /* Test hook to check if sig is being written to before we invalidate the * private key. diff --git a/library/lmots.h b/library/lmots.h index d0379e3a2..05bd55a70 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -151,8 +151,8 @@ extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * * \param len The length of the string. * \param bytes The string to output into. */ -void unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ); +void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, + unsigned char *bytes ); /** * \brief This function converts a network-byte-order @@ -163,8 +163,8 @@ void unsigned_int_to_network_bytes( unsigned int val, size_t len, * * \return The corresponding LMS error code. */ -unsigned int network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ); +unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, + const unsigned char *bytes ); /** * \brief This function converts a \ref psa_status_t to a diff --git a/library/lms.c b/library/lms.c index 653530c75..cd39502a6 100644 --- a/library/lms.c +++ b/library/lms.c @@ -124,7 +124,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -199,7 +199,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, if( ret != 0 ) goto exit; - unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -255,7 +255,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); } - type = network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -263,7 +263,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } ctx->params.type = type; - otstype = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { @@ -319,14 +319,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } - if( network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -334,8 +334,8 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } - q_leaf_identifier = network_bytes_to_unsigned_int( MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int( + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -345,9 +345,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, memcpy( ots_params.I_key_identifier, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ots_params.q_leaf_identifier ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ots_params.q_leaf_identifier ); ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, @@ -676,10 +676,11 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - unsigned_int_to_network_bytes( + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); - unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, + MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, @@ -748,10 +749,12 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( ret ); } - unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); - unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, From 57d5328ad5197092d3c47c71244326267e02d4a3 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 11:30:51 +0100 Subject: [PATCH 0228/1574] Remove MBEDTLS_LM(OT)S prefix from internal macros Signed-off-by: Raef Coles --- library/lmots.c | 30 +++++++++++----------- library/lms.c | 68 ++++++++++++++++++++++++------------------------- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 6846d4cde..e196635c3 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -44,13 +44,13 @@ #include "psa/crypto.h" -#define MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_TYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN) -#define MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET (MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define PUBLIC_KEY_TYPE_OFFSET (0) +#define PUBLIC_KEY_I_KEY_ID_OFFSET (PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define PUBLIC_KEY_Q_LEAF_ID_OFFSET (PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define PUBLIC_KEY_KEY_HASH_OFFSET (PUBLIC_KEY_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) /* We only support parameter sets that use 8-bit digits, as it does not require * translation logic between digits and bytes */ @@ -61,7 +61,7 @@ #define D_CONST_LEN (2) /* Currently only defined for SHA256, 32 is the max hash output size */ -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) +#define C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) @@ -449,15 +449,15 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, } memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); memcpy( ctx->params.q_leaf_identifier, - key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); memcpy( ctx->public_key, - key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, + key + PUBLIC_KEY_KEY_HASH_OFFSET, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); ctx->have_public_key = 1; @@ -738,15 +738,15 @@ int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_I_KEY_ID_OFFSET, + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_Q_LEAF_ID_OFFSET, + memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - memcpy( key + MBEDTLS_LMOTS_PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, + memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); if( key_len != NULL ) @@ -771,7 +771,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key. */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char tmp_c_random[MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN_MAX]; + unsigned char tmp_c_random[C_RANDOM_VALUE_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( msg == NULL && msg_size != 0 ) diff --git a/library/lms.c b/library/lms.c index cd39502a6..d3801c73f 100644 --- a/library/lms.c +++ b/library/lms.c @@ -54,26 +54,26 @@ #define mbedtls_free free #endif -#define MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET (0) -#define MBEDTLS_LMS_SIG_OTS_SIG_OFFSET (MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET + \ - MBEDTLS_LMOTS_Q_LEAF_ID_LEN) -#define MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) (MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + \ - MBEDTLS_LMOTS_SIG_LEN(otstype)) -#define MBEDTLS_LMS_SIG_PATH_OFFSET(otstype) (MBEDTLS_LMS_SIG_TYPE_OFFSET(otstype) + \ - MBEDTLS_LMS_TYPE_LEN) +#define SIG_Q_LEAF_ID_OFFSET (0) +#define SIG_OTS_SIG_OFFSET (SIG_Q_LEAF_ID_OFFSET + \ + MBEDTLS_LMOTS_Q_LEAF_ID_LEN) +#define SIG_TYPE_OFFSET(otstype) (SIG_OTS_SIG_OFFSET + \ + MBEDTLS_LMOTS_SIG_LEN(otstype)) +#define SIG_PATH_OFFSET(otstype) (SIG_TYPE_OFFSET(otstype) + \ + MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET (0) -#define MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET + \ - MBEDTLS_LMS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET + \ - MBEDTLS_LMOTS_TYPE_LEN) -#define MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET (MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET + \ - MBEDTLS_LMOTS_I_KEY_ID_LEN) +#define PUBLIC_KEY_TYPE_OFFSET (0) +#define PUBLIC_KEY_OTSTYPE_OFFSET (PUBLIC_KEY_TYPE_OFFSET + \ + MBEDTLS_LMS_TYPE_LEN) +#define PUBLIC_KEY_I_KEY_ID_OFFSET (PUBLIC_KEY_OTSTYPE_OFFSET + \ + MBEDTLS_LMOTS_TYPE_LEN) +#define PUBLIC_KEY_ROOT_NODE_OFFSET (PUBLIC_KEY_I_KEY_ID_OFFSET + \ + MBEDTLS_LMOTS_I_KEY_ID_LEN) /* Currently only support H=10 */ -#define MBEDTLS_LMS_H_TREE_HEIGHT_MAX 10 -#define MERKLE_TREE_NODE_AM_MAX (1u << (MBEDTLS_LMS_H_TREE_HEIGHT_MAX + 1u)) +#define H_TREE_HEIGHT_MAX 10 +#define MERKLE_TREE_NODE_AM_MAX (1u << (H_TREE_HEIGHT_MAX + 1u)) #define MERKLE_TREE_NODE_AM(type) (1u << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) #define MERKLE_TREE_LEAF_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define MERKLE_TREE_INTERNAL_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) @@ -256,7 +256,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + key + PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -264,7 +264,7 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.type = type; otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); + key + PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); @@ -272,9 +272,9 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, ctx->params.otstype = otstype; memcpy( ctx->params.I_key_identifier, - key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->T_1_pub_key, key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( ctx->T_1_pub_key, key + PUBLIC_KEY_ROOT_NODE_OFFSET, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); ctx->have_public_key = 1; @@ -320,14 +320,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, } if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) + sig + SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype)) + sig + SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) { return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); @@ -335,7 +335,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int( - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + SIG_Q_LEAF_ID_OFFSET ); if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) { @@ -351,7 +351,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, ots_params.type = ctx->params.otstype; ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, - msg_size, sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + msg_size, sig + SIG_OTS_SIG_OFFSET, MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret != 0 ) @@ -376,14 +376,14 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, /* Left/right node ordering matters for the hash */ if( curr_node_id & 1 ) { - left_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + left_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); right_node = Tc_candidate_root_node; } else { left_node = Tc_candidate_root_node; - right_node = sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) + + right_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); } @@ -678,14 +678,14 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, key + MBEDTLS_LMS_PUBLIC_KEY_TYPE_OFFSET ); + MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMS_PUBLIC_KEY_OTSTYPE_OFFSET ); - memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_I_KEY_ID_OFFSET, + key + PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, ctx->params.I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key + MBEDTLS_LMS_PUBLIC_KEY_ROOT_NODE_OFFSET, + memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, ctx->T_1_pub_key, MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); @@ -741,7 +741,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, - sig + MBEDTLS_LMS_SIG_OTS_SIG_OFFSET, + sig + SIG_OTS_SIG_OFFSET, MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), NULL ); if( ret != 0 ) @@ -751,14 +751,14 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, MBEDTLS_LMS_TYPE_LEN, - sig + MBEDTLS_LMS_SIG_TYPE_OFFSET(ctx->params.otstype) ); + sig + SIG_TYPE_OFFSET(ctx->params.otstype) ); mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + MBEDTLS_LMS_SIG_Q_LEAF_ID_OFFSET ); + sig + SIG_Q_LEAF_ID_OFFSET ); ret = get_merkle_path( ctx, MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - sig + MBEDTLS_LMS_SIG_PATH_OFFSET(ctx->params.otstype) ); + sig + SIG_PATH_OFFSET(ctx->params.otstype) ); if( ret != 0 ) { return( ret ); From 98c504373c853b6f009e88fdb45b5f2e754c5e33 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 12:56:34 +0100 Subject: [PATCH 0229/1574] Update LMS test description To correct copy-paste error Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index d890dd4dd..1b1423031 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -61,7 +61,7 @@ LMS negative test (invalid lm_ots type) #2 # (0x6) but an invalid LMOTS type, and should fail with a bad input data error. lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA -LMS negative test (invalid lm_ots type) #2 +LMS negative test (invalid leaf ID) # This test uses a null (zeroed) message/signature/public key trio, with the # only parts set being the LMS and LMOTS types and the leaf ID. In this case, # the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This From 0b7da1b7870a2af6942f687e1c55eccafc9c29ee Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 27 Sep 2022 13:45:30 +0100 Subject: [PATCH 0230/1574] Fix overflow in LMS context init Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index d3801c73f..1c66946d7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -506,7 +506,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ) ; } void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) From a7e03adef57474daf0e01ae42e4f4800b958c02c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 09:32:48 +0100 Subject: [PATCH 0231/1574] Disable LMS in all.sh when PSA isn't enabled Signed-off-by: Raef Coles --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1d2ee406c..379d6755b 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1246,6 +1246,7 @@ component_test_full_no_cipher () { scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 scripts/config.py unset MBEDTLS_SSL_SRV_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + scripts/config.py unset MBEDTLS_LMS_C make msg "test: full minus CIPHER" @@ -1268,6 +1269,7 @@ component_test_crypto_full_no_cipher () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + scripts/config.py unset MBEDTLS_LMS_C make msg "test: crypto_full minus CIPHER" @@ -1829,6 +1831,7 @@ component_test_no_use_psa_crypto_full_cmake_asan() { scripts/config.py unset MBEDTLS_PSA_ITS_FILE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C + scripts/config.py unset MBEDTLS_LMS_C CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make From 47bccb7e474705cb31fc7553fe0606cbe9bb108c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 12:00:20 +0100 Subject: [PATCH 0232/1574] Disable LMS_PRIVATE in all.sh when LMS is disabled Signed-off-by: Raef Coles --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 379d6755b..55d55f82c 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1247,6 +1247,7 @@ component_test_full_no_cipher () { scripts/config.py unset MBEDTLS_SSL_SRV_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: full minus CIPHER" @@ -1270,6 +1271,7 @@ component_test_crypto_full_no_cipher () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: crypto_full minus CIPHER" @@ -1832,6 +1834,7 @@ component_test_no_use_psa_crypto_full_cmake_asan() { scripts/config.py unset MBEDTLS_PSA_CRYPTO_SE_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make From b4568c5423219922a858561dafafa1067c3a9687 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:11:42 +0100 Subject: [PATCH 0233/1574] Disable LMS in PSA crypto client test Signed-off-by: Raef Coles --- tests/scripts/all.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 55d55f82c..c3a39bcd2 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -987,6 +987,8 @@ component_test_psa_crypto_client () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_C scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py set MBEDTLS_PSA_CRYPTO_CLIENT + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE make msg "test: default config - PSA_CRYPTO_C + PSA_CRYPTO_CLIENT, make" From ab300f15e8e3e695585a2ec9edb5b888bc13937b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:12:41 +0100 Subject: [PATCH 0234/1574] Move public header content from lmots.h to lms.h Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 84 +++++++++++++++++++++++++++++++++++++++++-- library/lmots.h | 83 ++---------------------------------------- 2 files changed, 84 insertions(+), 83 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 9a8afa1c4..dba8835f0 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,8 +30,6 @@ #include #include -#include "lmots.h" - #include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ @@ -40,6 +38,13 @@ #define MBEDTLS_ERR_LMS_ALLOC_FAILED -0x0017 /**< LMS failed to allocate space for a private key */ #define MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL -0x0019 /**< Input/output buffer is too small to contain requited data */ +/* Currently only defined for SHA256, 32 is the max hash output size */ +#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) +#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) + #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) @@ -76,6 +81,81 @@ typedef enum { MBEDTLS_LMS_SHA256_M32_H10 = 0x6, } mbedtls_lms_algorithm_type_t; +/** The Identifier of the LMOTS parameter set, as per + * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. + * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. + */ +typedef enum { + MBEDTLS_LMOTS_SHA256_N32_W8 = 4 +} mbedtls_lmots_algorithm_type_t; + +/** LMOTS parameters structure. + * + * This contains the metadata associated with an LMOTS key, detailing the + * algorithm type, the key ID, and the leaf identifier should be key be part of + * a LMS key. + */ +typedef struct { + unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key + identifier. */ + unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which + leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ + mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as + per IANA. Only SHA256_N32_W8 is + currently supported. */ +} mbedtls_lmots_parameters_t; + +/** LMOTS public context structure. + * + * A LMOTS public key is a hash output, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PUBLIC_KEY -> INIT [label="free"]; + * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; + * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; + * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. + Boolean values only. */ +} mbedtls_lmots_public_t; + +#ifdef MBEDTLS_LMS_PRIVATE +/** LMOTS private context structure. + * + * A LMOTS private key is one hash output for each of digit of the digest + + * checksum, and the applicable parameter set. + * + * The context must be initialized before it is used. A public key must either + * be imported or generated from a private context. + * + * \dot + * digraph lmots_public_t { + * UNINITIALIZED -> INIT [label="init"]; + * HAVE_PRIVATE_KEY -> INIT [label="free"]; + * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; + * HAVE_PRIVATE_KEY -> INIT [label="sign"]; + * } + * \enddot + */ +typedef struct { + mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. + Boolean values only. */ +} mbedtls_lmots_private_t; +#endif /* MBEDTLS_LMS_PRIVATE */ + /** LMS parameters structure. * diff --git a/library/lmots.h b/library/lmots.h index 05bd55a70..db945941c 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -30,18 +30,14 @@ #include "psa/crypto.h" +#include "mbedtls/lms.h" + #include #include -/* Currently only defined for SHA256, 32 is the max hash output size */ -#define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) -#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_TYPE_LEN (4u) -#define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) -#define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) #define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ @@ -63,81 +59,6 @@ extern "C" { #endif -/** The Identifier of the LMS parameter set, as per - * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. - * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. - */ -typedef enum { - MBEDTLS_LMOTS_SHA256_N32_W8 = 4 -} mbedtls_lmots_algorithm_type_t; - - -/** LMOTS parameters structure. - * - * This contains the metadata associated with an LMOTS key, detailing the - * algorithm type, the key ID, and the leaf identifier should be key be part of - * a LMS key. - */ -typedef struct { - unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ - unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which - leaf of the LMS key this is. - 0 if the key is not part of an LMS key. */ - mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is - currently supported. */ -} mbedtls_lmots_parameters_t; - -/** LMOTS public context structure. - * - * A LMOTS public key is a hash output, and the applicable parameter set. - * - * The context must be initialized before it is used. A public key must either - * be imported or generated from a private context. - * - * \dot - * digraph lmots_public_t { - * UNINITIALIZED -> INIT [label="init"]; - * HAVE_PUBLIC_KEY -> INIT [label="free"]; - * INIT -> HAVE_PUBLIC_KEY [label="import_public_key"]; - * INIT -> HAVE_PUBLIC_KEY [label="calculate_public_key from private key"]; - * HAVE_PUBLIC_KEY -> HAVE_PUBLIC_KEY [label="export_public_key"]; - * } - * \enddot - */ -typedef struct { - mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. - Boolean values only. */ -} mbedtls_lmots_public_t; - -#ifdef MBEDTLS_LMS_PRIVATE -/** LMOTS private context structure. - * - * A LMOTS private key is one hash output for each of digit of the digest + - * checksum, and the applicable parameter set. - * - * The context must be initialized before it is used. A public key must either - * be imported or generated from a private context. - * - * \dot - * digraph lmots_public_t { - * UNINITIALIZED -> INIT [label="init"]; - * HAVE_PRIVATE_KEY -> INIT [label="free"]; - * INIT -> HAVE_PRIVATE_KEY [label="generate_private_key"]; - * HAVE_PRIVATE_KEY -> INIT [label="sign"]; - * } - * \enddot - */ -typedef struct { - mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. - Boolean values only. */ -} mbedtls_lmots_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ #if defined(MBEDTLS_TEST_HOOKS) extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); From 56fe20a47385cd5d6d03e5da9210ad601e1bca46 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 28 Sep 2022 17:56:39 +0100 Subject: [PATCH 0235/1574] Move MBEDTLS_PRIVATE required defines into lms.h From lmots.h, as it is a private header Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 9 +++++++++ library/lmots.h | 8 -------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index dba8835f0..1ba4f3abc 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -44,6 +44,15 @@ #define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) +#define MBEDTLS_LMOTS_TYPE_LEN (4u) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) + +#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ + (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ + MBEDTLS_LMOTS_N_HASH_LEN(type))) + #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) diff --git a/library/lmots.h b/library/lmots.h index db945941c..214321a5f 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -35,14 +35,6 @@ #include #include -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) -#define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) -#define MBEDTLS_LMOTS_TYPE_LEN (4u) - -#define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) + \ - (MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) * \ - MBEDTLS_LMOTS_N_HASH_LEN(type))) #define MBEDTLS_LMOTS_PUBLIC_KEY_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ MBEDTLS_LMOTS_I_KEY_ID_LEN + \ From 5127e859d77eb802f8a4631f9ae6be7dbda260ad Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 10:35:56 +0100 Subject: [PATCH 0236/1574] Update LMS and LMOTS dependency macros Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 ++-- include/mbedtls/lms.h | 12 ++++++------ include/mbedtls/mbedtls_config.h | 2 +- library/lmots.c | 8 ++++---- library/lmots.h | 4 ++-- library/lms.c | 8 ++++---- tests/suites/test_suite_lmots.function | 10 +++++----- tests/suites/test_suite_lms.function | 8 ++++---- 8 files changed, 28 insertions(+), 28 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 570d9dba2..4b2783174 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C" + ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" #endif #if defined(MBEDTLS_LMS_PRIVATE) && \ diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 1ba4f3abc..40ab78315 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -139,7 +139,7 @@ typedef struct { Boolean values only. */ } mbedtls_lmots_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMOTS private context structure. * * A LMOTS private key is one hash output for each of digit of the digest + @@ -163,7 +163,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lmots_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** LMS parameters structure. @@ -209,7 +209,7 @@ typedef struct { } mbedtls_lms_public_t; -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** LMS private context structure. * * A LMS private key is a set of LMOTS private keys, an index to the next usable @@ -237,7 +237,7 @@ typedef struct { unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ /** * \brief This function initializes an LMS public context @@ -301,7 +301,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes an LMS private context * @@ -434,7 +434,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, unsigned char *msg, unsigned int msg_size, unsigned char *sig, size_t sig_size, size_t *sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c0caf7562..4188afec9 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2485,7 +2485,7 @@ * * Uncomment to enable the LMS signature algorithm and private key operations. */ -// #define MBEDTLS_LMS_PRIVATE +//#define MBEDTLS_LMS_PRIVATE /** * \def MBEDTLS_NIST_KW_C diff --git a/library/lmots.c b/library/lmots.c index e196635c3..9a6c6be66 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -568,7 +568,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) { @@ -851,5 +851,5 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/library/lmots.h b/library/lmots.h index 214321a5f..37466b76e 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -189,7 +189,7 @@ int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /** * \brief This function initializes a private LMOTS context @@ -310,7 +310,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, void *p_rng, const unsigned char *msg, size_t msg_size, unsigned char *sig, size_t sig_size, size_t* sig_len ); -#endif /* MBEDTLS_LMS_PRIVATE */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus } diff --git a/library/lms.c b/library/lms.c index 1c66946d7..6882a483e 100644 --- a/library/lms.c +++ b/library/lms.c @@ -32,7 +32,7 @@ #include "common.h" -#ifdef MBEDTLS_LMS_C +#if defined(MBEDTLS_LMS_C) #include @@ -402,7 +402,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( 0 ); } -#ifdef MBEDTLS_LMS_PRIVATE +#if defined(MBEDTLS_LMS_PRIVATE) /* Calculate a full merkle tree based on a private key. This function * implements RFC8554 section 5.3, and is used to generate a public key (as the @@ -773,5 +773,5 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, return( 0 ); } -#endif /* MBEDTLS_LMS_PRIVATE */ -#endif /* MBEDTLS_LMS_C */ +#endif /* defined(MBEDTLS_LMS_PRIVATE) */ +#endif /* defined(MBEDTLS_LMS_C) */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index dd8a665d5..85e1da71e 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -24,11 +24,11 @@ int check_lmots_private_key_for_leak(unsigned char * sig) /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { @@ -52,7 +52,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_public_t pub_ctx; @@ -92,7 +92,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; @@ -113,7 +113,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { mbedtls_lmots_private_t ctx; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 900392334..3c23b3b4e 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,11 +4,11 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:MBEDTLS_LMS_PRIVATE:MBEDTLS_PSA_CRYPTO_C + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_test ( data_t *msg, data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -44,7 +44,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_sign_verify_null_msg_test( data_t *seed ) { mbedtls_lms_public_t pub_ctx; @@ -97,7 +97,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; From f6ddd51bfd5d16b36f3ab7c470de6f6198787ae5 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 10:49:34 +0100 Subject: [PATCH 0237/1574] Sanitize LMS and LMOTS macros Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 40ab78315..c3dc3aa7a 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -41,11 +41,11 @@ /* Currently only defined for SHA256, 32 is the max hash output size */ #define MBEDTLS_LMOTS_N_HASH_LEN_MAX (32u) #define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX (34u) -#define MBEDTLS_LMOTS_N_HASH_LEN(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) +#define MBEDTLS_LMOTS_N_HASH_LEN(type) ((type) == MBEDTLS_LMOTS_SHA256_N32_W8 ? 32u : 0) #define MBEDTLS_LMOTS_I_KEY_ID_LEN (16u) #define MBEDTLS_LMOTS_Q_LEAF_ID_LEN (4u) #define MBEDTLS_LMOTS_TYPE_LEN (4u) -#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) (type == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) +#define MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(type) ((type) == MBEDTLS_LMOTS_SHA256_N32_W8 ? 34u : 0) #define MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(type) (MBEDTLS_LMOTS_N_HASH_LEN(type)) #define MBEDTLS_LMOTS_SIG_LEN(type) (MBEDTLS_LMOTS_TYPE_LEN + \ @@ -55,15 +55,12 @@ #define MBEDTLS_LMS_TYPE_LEN (4) -#define MBEDTLS_LMS_H_TREE_HEIGHT(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) +#define MBEDTLS_LMS_H_TREE_HEIGHT(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) /* The length of a hash output, Currently only imlemented for SHA256. * Max is 32 bytes. */ -/* The length of a hash output, Currently only imlemented for SHA256. - * Max is 32 bytes. - */ -#define MBEDTLS_LMS_M_NODE_BYTES(type) (type == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) +#define MBEDTLS_LMS_M_NODE_BYTES(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) #define MBEDTLS_LMS_M_NODE_BYTES_MAX 32 #define MBEDTLS_LMS_SIG_LEN(type, otstype) (MBEDTLS_LMOTS_Q_LEAF_ID_LEN + \ From 2ac352a3220abe016a4350a9ca36b50e9ed0a505 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:12:27 +0100 Subject: [PATCH 0238/1574] Make LMS functions args const where required Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 14 ++++++++------ library/lmots.c | 10 +++++----- library/lmots.h | 9 +++++---- library/lms.c | 13 +++++++------ 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c3dc3aa7a..5773c793c 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -341,7 +341,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ); /** @@ -363,7 +363,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ); + const mbedtls_lms_private_t *priv_ctx ); /** * \brief This function exports an LMS public key from a @@ -388,8 +388,9 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key, - size_t key_size, size_t *key_len ); +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); /** * \brief This function creates a LMS signature, using a @@ -429,8 +430,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, unsigned char *key */ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len ); + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ); #endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus diff --git a/library/lmots.c b/library/lmots.c index 9a6c6be66..055db8fb3 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -521,9 +521,9 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters return( 0 ); } -int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, - size_t msg_size, const unsigned char *sig, - size_t sig_size ) +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size ) { unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -684,7 +684,7 @@ exit: } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ) + const mbedtls_lmots_private_t *priv_ctx ) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -720,7 +720,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, } -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { diff --git a/library/lmots.h b/library/lmots.h index 37466b76e..2f42a592c 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -185,7 +185,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * \return \c 0 on successful verification. * \return A non-zero error code on failure. */ -int mbedtls_lmots_verify( mbedtls_lmots_public_t *ctx, const unsigned char *msg, +int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ); @@ -208,7 +209,7 @@ void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); /** - * \brief This function generates an LMOTS private key, and + * \brief This function calculates an LMOTS private key, and * stores in into an LMOTS context. * * \warning This function is **not intended for use in @@ -252,7 +253,7 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return A non-zero error code on failure. */ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - mbedtls_lmots_private_t *priv_ctx ); + const mbedtls_lmots_private_t *priv_ctx ); /** @@ -274,7 +275,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_export_public_key( mbedtls_lmots_public_t *ctx, +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ); /** diff --git a/library/lms.c b/library/lms.c index 6882a483e..50e6434b7 100644 --- a/library/lms.c +++ b/library/lms.c @@ -418,7 +418,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * because the merkle tree root is 1-indexed, the 0 * index tree node is never used. */ -static int calculate_merkle_tree( mbedtls_lms_private_t *ctx, +static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, unsigned char *tree ) { unsigned int priv_key_idx; @@ -533,7 +533,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, mbedtls_lms_algorithm_type_t type, mbedtls_lmots_algorithm_type_t otstype, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *seed, + void* p_rng, const unsigned char *seed, size_t seed_size ) { unsigned int idx = 0; @@ -621,7 +621,7 @@ exit: } int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - mbedtls_lms_private_t *priv_ctx ) + const mbedtls_lms_private_t *priv_ctx ) { unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -662,7 +662,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, unsigned char *key, size_t key_size, size_t *key_len ) { @@ -700,8 +700,9 @@ int mbedtls_lms_export_public_key( mbedtls_lms_public_t *ctx, int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, unsigned char *msg, unsigned int msg_size, - unsigned char *sig, size_t sig_size, size_t *sig_len ) + void* p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len ) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; From be0c2f9183457702df1d33749e8f018e0d546dd9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:27:35 +0100 Subject: [PATCH 0239/1574] Update LMS local variable allocation To use a default failure value, and to avoid a call to psa_hash_operation_init() Signed-off-by: Raef Coles --- library/lmots.c | 22 ++++++++-------------- library/lms.c | 4 ++-- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 055db8fb3..504da2e5d 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -152,13 +152,12 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p const unsigned char *C_random_value, unsigned char *out ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned short checksum; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -250,14 +249,12 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, unsigned char j_hash_idx_bytes[J_HASH_IDX_LEN]; unsigned int j_hash_idx_min; unsigned int j_hash_idx_max; - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); - for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); i_digit_idx++ ) @@ -361,12 +358,11 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t const unsigned char *y_hashed_digits, unsigned char *pub_key ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); ret = mbedtls_lms_error_from_psa( status ); if( ret != 0 ) @@ -587,8 +583,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, const unsigned char *seed, size_t seed_size ) { - psa_hash_operation_t op; - psa_status_t status; + psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[2]; @@ -605,8 +601,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - op = psa_hash_operation_init( ); - ctx->params.type = type; memcpy( ctx->params.I_key_identifier, diff --git a/library/lms.c b/library/lms.c index 50e6434b7..93aaca1af 100644 --- a/library/lms.c +++ b/library/lms.c @@ -107,7 +107,7 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, unsigned char *out ) { psa_hash_operation_t op; - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -182,7 +182,7 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, unsigned char *out ) { psa_hash_operation_t op; - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; From 29117d2e4e47842414341f2d0b25cb77a8cc6350 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 11:46:06 +0100 Subject: [PATCH 0240/1574] Update LMS PSA error conversion Signed-off-by: Raef Coles --- library/lmots.c | 108 ++++++++++++++++-------------------------------- library/lms.c | 47 +++++++-------------- 2 files changed, 51 insertions(+), 104 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 504da2e5d..54773e12d 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -156,46 +156,38 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned short checksum; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, C_random_value, MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, msg, msg_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; checksum = lmots_checksum_calculate( params, out ); @@ -205,7 +197,7 @@ static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *p exit: psa_hash_abort( &op ); - return( ret ); + return( mbedtls_lms_error_from_psa( status ) ); } /* Hash each element of the string of digits (+ checksum), producing a hash @@ -253,7 +245,6 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; for ( i_digit_idx = 0; i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); @@ -274,50 +265,43 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, j_hash_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( j_hash_idx, J_HASH_IDX_LEN, j_hash_idx_bytes ); status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; psa_hash_abort( &op ); @@ -328,15 +312,10 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, } exit: - if( ret != 0 ) - { - psa_hash_abort( &op ); - return( ret ); - } - + psa_hash_abort( &op ); mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) ); - return ret; + return( mbedtls_lms_error_from_psa( status ) ); } /* Combine the hashes of the digit array into a public key. This is used in @@ -361,46 +340,41 @@ static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, y_hashed_digits, MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); + if( status != PSA_SUCCESS ) exit: psa_hash_abort( &op ); - return( ret ); + + return( mbedtls_lms_error_from_psa( status ) ); } int mbedtls_lms_error_from_psa( psa_status_t status ) @@ -589,7 +563,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[2]; unsigned char const_bytes[1]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( ctx->have_private_key ) { @@ -619,47 +592,40 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, i_digit_idx++ ) { status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; - ret = psa_hash_update( &op, + status = psa_hash_update( &op, ctx->params.I_key_identifier, sizeof( ctx->params.I_key_identifier ) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, ctx->params.q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, i_digit_idx_bytes ); status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, seed, seed_size ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, ctx->private_key[i_digit_idx], MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret ) + if( status != PSA_SUCCESS ) goto exit; psa_hash_abort( &op ); @@ -668,13 +634,9 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, ctx->have_private_key = 1; exit: - if( ret != 0 ) - { - psa_hash_abort( &op ); - return( ret ); - } + psa_hash_abort( &op ); - return ret; + return ( mbedtls_lms_error_from_psa( status ) ); } int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, diff --git a/library/lms.c b/library/lms.c index 93aaca1af..ec6ec0c0a 100644 --- a/library/lms.c +++ b/library/lms.c @@ -110,47 +110,40 @@ static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, pub_key, MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; exit: psa_hash_abort( &op ); - return( ret ); + return ( mbedtls_lms_error_from_psa( status ) ); } /* Calculate the value of an internal node of the merkle tree (which is a hash @@ -185,53 +178,45 @@ static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; op = psa_hash_operation_init( ); status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, params->I_key_identifier, MBEDTLS_LMOTS_I_KEY_ID_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, left_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; status = psa_hash_update( &op, right_node, MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; - ret = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), &output_hash_len ); - ret = mbedtls_lms_error_from_psa( status ); - if( ret != 0 ) + if( status != PSA_SUCCESS ) goto exit; exit: psa_hash_abort( &op ); - return ret; + return( mbedtls_lms_error_from_psa( status ) ); } void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) From be3bdd82401cd0e394640843ac9cbb757b04fcff Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 12:04:24 +0100 Subject: [PATCH 0241/1574] Rename LMS and LMOTS init/free functions To match convention Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 8 +++---- library/lmots.c | 16 ++++++------- library/lmots.h | 8 +++---- library/lms.c | 28 +++++++++++----------- tests/suites/test_suite_lmots.function | 32 +++++++++++++------------- tests/suites/test_suite_lms.function | 24 +++++++++---------- 6 files changed, 58 insertions(+), 58 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 5773c793c..c68f7271a 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -242,7 +242,7 @@ typedef struct { * \param ctx The uninitialized LMS context that will then be * initialized. */ -void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ); /** * \brief This function uninitializes an LMS public context @@ -250,7 +250,7 @@ void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ); * \param ctx The initialized LMS context that will then be * uninitialized. */ -void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); /** * \brief This function imports an LMS public key into a @@ -304,7 +304,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * * \param ctx The uninitialized LMS private context that will * then be initialized. */ -void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ); /** * \brief This function uninitializes an LMS private context @@ -312,7 +312,7 @@ void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ); * \param ctx The initialized LMS private context that will then * be uninitialized. */ -void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); /** * \brief This function generates an LMS private key, and diff --git a/library/lmots.c b/library/lmots.c index 54773e12d..059d6c8ef 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -396,14 +396,14 @@ int mbedtls_lms_error_from_psa( psa_status_t status ) } } -void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, @@ -540,14 +540,14 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, #if defined(MBEDTLS_LMS_PRIVATE) -void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lmots_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, diff --git a/library/lmots.h b/library/lmots.h index 2f42a592c..05bd96703 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -96,7 +96,7 @@ int mbedtls_lms_error_from_psa( psa_status_t status ); * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ); /** * \brief This function uninitializes a public LMOTS context @@ -104,7 +104,7 @@ void mbedtls_lmots_init_public( mbedtls_lmots_public_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free_public( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); /** * \brief This function imports an LMOTS public key into a @@ -198,7 +198,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ); /** * \brief This function uninitializes a private LMOTS context @@ -206,7 +206,7 @@ void mbedtls_lmots_init_private( mbedtls_lmots_private_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_free_private( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); /** * \brief This function calculates an LMOTS private key, and diff --git a/library/lms.c b/library/lms.c index ec6ec0c0a..e17d9be10 100644 --- a/library/lms.c +++ b/library/lms.c @@ -219,14 +219,14 @@ exit: return( mbedtls_lms_error_from_psa( status ) ); } -void mbedtls_lms_init_public( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lms_free_public( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_public_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); } int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, @@ -489,12 +489,12 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, return( 0 ); } -void mbedtls_lms_init_private( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ) ; + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; } -void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) { unsigned int idx; @@ -502,15 +502,15 @@ void mbedtls_lms_free_private( mbedtls_lms_private_t *ctx ) { for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { - mbedtls_lmots_free_private( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_free_public( &ctx->ots_public_keys[idx] ); + mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); } mbedtls_free( ctx->ots_private_keys ); mbedtls_free( ctx->ots_public_keys ); } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_lms_private_t ) ); + mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); } @@ -565,8 +565,8 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { - mbedtls_lmots_init_private( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_init_public( &ctx->ots_public_keys[idx] ); + mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); + mbedtls_lmots_public_init( &ctx->ots_public_keys[idx] ); } @@ -593,8 +593,8 @@ exit: { for ( free_idx = 0; free_idx < idx; free_idx++ ) { - mbedtls_lmots_free_private( &ctx->ots_private_keys[free_idx] ); - mbedtls_lmots_free_public( &ctx->ots_public_keys[free_idx] ); + mbedtls_lmots_private_free( &ctx->ots_private_keys[free_idx] ); + mbedtls_lmots_public_free( &ctx->ots_public_keys[free_idx] ); } mbedtls_free( ctx->ots_private_keys ); diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 85e1da71e..de1cf2c68 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -36,8 +36,8 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_public( &pub_ctx ); - mbedtls_lmots_init_private( &priv_ctx ); + mbedtls_lmots_public_init( &pub_ctx ); + mbedtls_lmots_private_init( &priv_ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -47,8 +47,8 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); exit: - mbedtls_lmots_free_public( &pub_ctx ); - mbedtls_lmots_free_private( &priv_ctx ); + mbedtls_lmots_public_free( &pub_ctx ); + mbedtls_lmots_private_free( &priv_ctx ); } /* END_CASE */ @@ -59,8 +59,8 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_public( &pub_ctx ); - mbedtls_lmots_init_private( &priv_ctx ); + mbedtls_lmots_public_init( &pub_ctx ); + mbedtls_lmots_private_init( &priv_ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -70,8 +70,8 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); exit: - mbedtls_lmots_free_public( &pub_ctx ); - mbedtls_lmots_free_private( &priv_ctx ); + mbedtls_lmots_public_free( &pub_ctx ); + mbedtls_lmots_private_free( &priv_ctx ); } /* END_CASE */ @@ -81,14 +81,14 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, { mbedtls_lmots_public_t ctx; - mbedtls_lmots_init_public( &ctx ); + mbedtls_lmots_public_init( &ctx ); mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lmots_free_public( &ctx ); + mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ @@ -99,7 +99,7 @@ void lmots_import_export_test ( data_t * pub_key ) uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; size_t exported_pub_key_len; - mbedtls_lmots_init_public( &ctx ); + mbedtls_lmots_public_init( &ctx ); TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, sizeof( exported_pub_key ), @@ -109,7 +109,7 @@ void lmots_import_export_test ( data_t * pub_key ) exported_pub_key, exported_pub_key_len ); exit: - mbedtls_lmots_free_public( &ctx ); + mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ @@ -119,7 +119,7 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_init_private( &ctx ); + mbedtls_lmots_private_init( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -133,7 +133,7 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); exit: - mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_private_free( &ctx ); } /* END_CASE */ @@ -149,7 +149,7 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, /* Fill with recognisable pattern */ memset( sig, 0x7E, sizeof( sig ) ); - mbedtls_lmots_init_private( &ctx ); + mbedtls_lmots_private_init( &ctx ); TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, key_id->x, leaf_id, seed->x, seed->len ) == 0 ); @@ -157,7 +157,7 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); exit: - mbedtls_lmots_free_private( &ctx ); + mbedtls_lmots_private_free( &ctx ); mbedtls_lmots_sign_private_key_invalidated_hook = NULL; } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 3c23b3b4e..425e994de 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -16,8 +16,8 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; int rc; - mbedtls_lms_init_public( &pub_ctx ); - mbedtls_lms_init_private( &priv_ctx ); + mbedtls_lms_public_init( &pub_ctx ); + mbedtls_lms_private_init( &priv_ctx ); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. @@ -39,8 +39,8 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) sizeof( sig ) ) == 0 ); exit: - mbedtls_lms_free_public( &pub_ctx ); - mbedtls_lms_free_private( &priv_ctx ); + mbedtls_lms_public_free( &pub_ctx ); + mbedtls_lms_private_free( &priv_ctx ); } /* END_CASE */ @@ -52,8 +52,8 @@ void lms_sign_verify_null_msg_test( data_t *seed ) unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; int rc; - mbedtls_lms_init_public( &pub_ctx ); - mbedtls_lms_init_private( &priv_ctx ); + mbedtls_lms_public_init( &pub_ctx ); + mbedtls_lms_private_init( &priv_ctx ); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. @@ -75,8 +75,8 @@ void lms_sign_verify_null_msg_test( data_t *seed ) sizeof( sig ) ) == 0 ); exit: - mbedtls_lms_free_public( &pub_ctx ); - mbedtls_lms_free_private( &priv_ctx ); + mbedtls_lms_public_free( &pub_ctx ); + mbedtls_lms_private_free( &priv_ctx ); } /* END_CASE */ @@ -86,14 +86,14 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, { mbedtls_lms_public_t ctx; - mbedtls_lms_init_public( &ctx); + mbedtls_lms_public_init( &ctx); mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); exit: - mbedtls_lms_free_public( &ctx ); + mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -103,7 +103,7 @@ void lms_import_export_test ( data_t * pub_key ) mbedtls_lms_public_t ctx; uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; - mbedtls_lms_init_public(&ctx); + mbedtls_lms_public_init(&ctx); TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, sizeof(exported_pub_key), NULL ) == 0 ); @@ -112,7 +112,7 @@ void lms_import_export_test ( data_t * pub_key ) exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); exit: - mbedtls_lms_free_public( &ctx ); + mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From dc8fb79e09d729250414a124ff8a6c0d61b3d462 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:27:54 +0100 Subject: [PATCH 0242/1574] Simplify LMS private key generation error handling Signed-off-by: Raef Coles --- library/lms.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/library/lms.c b/library/lms.c index e17d9be10..06bae9dff 100644 --- a/library/lms.c +++ b/library/lms.c @@ -506,8 +506,11 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); } - mbedtls_free( ctx->ots_private_keys ); - mbedtls_free( ctx->ots_public_keys ); + if( ctx->ots_private_keys != NULL ) + mbedtls_free( ctx->ots_private_keys ); + + if( ctx->ots_public_keys != NULL ) + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); @@ -522,7 +525,6 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, size_t seed_size ) { unsigned int idx = 0; - unsigned int free_idx = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( type != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -548,7 +550,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, MBEDTLS_LMOTS_I_KEY_ID_LEN ); ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_private_t ) ); + sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; @@ -556,13 +558,25 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( mbedtls_lmots_public_t ) ); + sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { + /* Free just the ots private keys (since they've been allocated at this + * point) so that we can pass the context to lms_private_free (which + * will not try to free the private keys since have_private_key is not + * set. + */ + mbedtls_free(ctx->ots_private_keys); + ctx->ots_private_keys = NULL; ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } + /* Now that all the allocation has succeeded we set have_private_key, since + * that causes lms_private_free to free the ots keys. + */ + ctx->have_private_key = 1; + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); @@ -586,23 +600,14 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, } ctx->q_next_usable_key = 0; - ctx->have_private_key = 1; exit: if( ret != 0 ) { - for ( free_idx = 0; free_idx < idx; free_idx++ ) - { - mbedtls_lmots_private_free( &ctx->ots_private_keys[free_idx] ); - mbedtls_lmots_public_free( &ctx->ots_public_keys[free_idx] ); - } - - mbedtls_free( ctx->ots_private_keys ); - mbedtls_free( ctx->ots_public_keys ); - return( ret ); + mbedtls_lms_private_free(ctx); } - return( 0 ); + return( ret ); } int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, From f36874a53519b03d78690872061e31c4ed860892 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:39:22 +0100 Subject: [PATCH 0243/1574] Fix error type of lms_import_public_key Was returning an incorrect error when bad public key sizes were input Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 06bae9dff..a8411797d 100644 --- a/library/lms.c +++ b/library/lms.c @@ -235,9 +235,9 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, From 02cf8234b4d005ecc858bb5f913272b6f70b1bb8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 13:52:47 +0100 Subject: [PATCH 0244/1574] Fix ots sig length check in LMS validate function Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index a8411797d..1e0f31910 100644 --- a/library/lms.c +++ b/library/lms.c @@ -733,7 +733,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + SIG_OTS_SIG_OFFSET, - MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype), + MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) - SIG_OTS_SIG_OFFSET, NULL ); if( ret != 0 ) { From 3f6cdd7aab90fa6b4830349916d994a05d6f8f79 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 14:07:59 +0100 Subject: [PATCH 0245/1574] Fix LMS not checking RNG function return value Signed-off-by: Raef Coles --- library/lms.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/lms.c b/library/lms.c index 1e0f31910..a4235addc 100644 --- a/library/lms.c +++ b/library/lms.c @@ -545,9 +545,13 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.type = type; ctx->params.otstype = otstype; - f_rng( p_rng, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + ret = f_rng( p_rng, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + if( ret != 0 ) + { + goto exit; + } ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); From e89488debf6d3a708c9d65eb4863251bd0e5c639 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 16:06:35 +0100 Subject: [PATCH 0246/1574] Fix bug in LMS public key loading To avoid using the type before it is parsed from the signature Signed-off-by: Raef Coles --- library/lmots.c | 5 +++++ library/lms.c | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 059d6c8ef..9168ef189 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -409,6 +409,11 @@ void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_len ) { + if( key_len < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + ctx->params.type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); diff --git a/library/lms.c b/library/lms.c index a4235addc..fba5d8848 100644 --- a/library/lms.c +++ b/library/lms.c @@ -235,11 +235,6 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); if( type != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -248,6 +243,11 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, } ctx->params.type = type; + if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + PUBLIC_KEY_OTSTYPE_OFFSET ); if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) From 370cc436300fde6eab6789233ccaf693e13f5e85 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Fri, 7 Oct 2022 16:07:33 +0100 Subject: [PATCH 0247/1574] Make LMS public key export part of public key api Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 54 +++++++++---------- library/lmots.c | 75 +++++++++++++------------- library/lmots.h | 46 ++++++++-------- library/lms.c | 71 ++++++++++++------------ tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 6 files changed, 124 insertions(+), 126 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index c68f7271a..15a1a1b28 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -274,6 +274,33 @@ void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, const unsigned char *key, size_t key_size ); +/** + * \brief This function exports an LMS public key from a + * LMS public context that already contains a public + * key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMS public context that contains + * the public key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. + * \param key_size The size of the key buffer. + * \param key_len If not NULL, will be written with the size of the + * key. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); + /** * \brief This function verifies a LMS signature, using a * LMS context that contains a public key. @@ -365,33 +392,6 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, const mbedtls_lms_private_t *priv_ctx ); -/** - * \brief This function exports an LMS public key from a - * LMS public context that already contains a public - * key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMS public context that contains - * the public key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMS_PUBLIC_KEY_LEN in size. - * \param key_size The size of the key buffer. - * \param key_len If not NULL, will be written with the size of the - * key. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); - /** * \brief This function creates a LMS signature, using a * LMS context that contains unused private keys. diff --git a/library/lmots.c b/library/lmots.c index 9168ef189..bb4326e37 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -440,6 +440,43 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, return( 0 ); } +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ) +{ + if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->have_public_key ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + + memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + + memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); + } + + return( 0 ); +} + int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, const unsigned char *msg, size_t msg_size, @@ -680,44 +717,6 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, return( ret ); } - -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ) -{ - if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); - } - - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - - memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - - memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); - - if( key_len != NULL ) - { - *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); - } - - return( 0 ); -} - int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, const unsigned char *msg, size_t msg_size, diff --git a/library/lmots.h b/library/lmots.h index 05bd96703..2c6571480 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -127,6 +127,29 @@ void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, const unsigned char *key, size_t key_size ); +/** + * \brief This function exports an LMOTS public key from a + * LMOTS context that already contains a public key. + * + * \note Before this function is called, the context must + * have been initialized and the context must contain + * a public key. + * + * \note See IETF RFC8554 for details of the encoding of + * this public key. + * + * \param ctx The initialized LMOTS context that contains the + * publc key. + * \param key The buffer into which the key will be output. Must + * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. + * + * \return \c 0 on success. + * \return A non-zero error code on failure. + */ +int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len ); + /** * \brief This function creates a candidate public key from * an LMOTS signature. This can then be compared to @@ -255,29 +278,6 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, const mbedtls_lmots_private_t *priv_ctx ); - -/** - * \brief This function exports an LMOTS public key from a - * LMOTS context that already contains a public key. - * - * \note Before this function is called, the context must - * have been initialized and the context must contain - * a public key. - * - * \note See IETF RFC8554 for details of the encoding of - * this public key. - * - * \param ctx The initialized LMOTS context that contains the - * publc key. - * \param key The buffer into which the key will be output. Must - * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. - * - * \return \c 0 on success. - * \return A non-zero error code on failure. - */ -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); /** * \brief This function creates a LMOTS signature, using a * LMOTS context that contains a private key. diff --git a/library/lms.c b/library/lms.c index fba5d8848..e7ae5081c 100644 --- a/library/lms.c +++ b/library/lms.c @@ -267,6 +267,41 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, return( 0 ); } +int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, + unsigned char *key, + size_t key_size, size_t *key_len ) +{ + if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) + { + return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + } + + if( ! ctx->have_public_key ) + { + return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + } + + mbedtls_lms_unsigned_int_to_network_bytes( + ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, + MBEDTLS_LMOTS_TYPE_LEN, + key + PUBLIC_KEY_OTSTYPE_OFFSET ); + memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, + ctx->T_1_pub_key, + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + + if( key_len != NULL ) + { + *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); + } + + return( 0 ); +} + int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, const unsigned char *msg, size_t msg_size, const unsigned char *sig, size_t sig_size ) @@ -656,42 +691,6 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, } -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, - size_t key_size, size_t *key_len ) -{ - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); - } - - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - - mbedtls_lms_unsigned_int_to_network_bytes( - ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, - MBEDTLS_LMOTS_TYPE_LEN, - key + PUBLIC_KEY_OTSTYPE_OFFSET ); - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, - ctx->T_1_pub_key, - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); - - if( key_len != NULL ) - { - *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); - } - - return( 0 ); -} - - int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, int (*f_rng)(void *, unsigned char *, size_t), void* p_rng, const unsigned char *msg, diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index de1cf2c68..0d2aece44 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -92,7 +92,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ +/* BEGIN_CASE */ void lmots_import_export_test ( data_t * pub_key ) { mbedtls_lmots_public_t ctx; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 425e994de..e4c4b911b 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -97,7 +97,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ +/* BEGIN_CASE */ void lms_import_export_test ( data_t * pub_key ) { mbedtls_lms_public_t ctx; From e34e3c0e599ef9551e675042b797562f3b43269c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 11:11:30 +0100 Subject: [PATCH 0248/1574] Remove unneeded cast in LMS calloc Signed-off-by: Raef Coles --- library/lms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index e7ae5081c..adba19582 100644 --- a/library/lms.c +++ b/library/lms.c @@ -588,7 +588,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { @@ -596,7 +596,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { From 1fb2f32ef5485962e0334dbbb397b3114a18dba6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 11:23:07 +0100 Subject: [PATCH 0249/1574] Check LMS offsets are sane at runtime Signed-off-by: Raef Coles --- library/lms.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/lms.c b/library/lms.c index adba19582..296adceda 100644 --- a/library/lms.c +++ b/library/lms.c @@ -733,6 +733,12 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, */ ctx->q_next_usable_key += 1; + if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) + < SIG_OTS_SIG_OFFSET ) + { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; + } + ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], f_rng, p_rng, msg, msg_size, sig + SIG_OTS_SIG_OFFSET, From d48f7e90bb30d605525a9d2c508012acd5cf7b64 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 13:10:07 +0100 Subject: [PATCH 0250/1574] Allocate LMS C_RANDOM_VALUE as hash size Signed-off-by: Raef Coles --- library/lmots.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index bb4326e37..163958795 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -60,9 +60,6 @@ #define J_HASH_IDX_LEN (1) #define D_CONST_LEN (2) -/* Currently only defined for SHA256, 32 is the max hash output size */ -#define C_RANDOM_VALUE_LEN_MAX (MBEDTLS_LMOTS_N_HASH_LEN_MAX) - #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) #define D_CONST_LEN (2) @@ -731,7 +728,7 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key. */ unsigned char tmp_sig[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - unsigned char tmp_c_random[C_RANDOM_VALUE_LEN_MAX]; + unsigned char tmp_c_random[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( msg == NULL && msg_size != 0 ) From 75b4c7790e50752a8bccf4e4521cff6ad058672d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 13:58:28 +0100 Subject: [PATCH 0251/1574] Fix LMS internal function documentation Signed-off-by: Raef Coles --- library/lms.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lms.c b/library/lms.c index 296adceda..321e51abe 100644 --- a/library/lms.c +++ b/library/lms.c @@ -491,7 +491,7 @@ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, * * leaf_node_id Which leaf node to calculate the path from. * - * tree The output path, which is H hash outputs. + * path The output path, which is H hash outputs. */ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, From f6cb5a4826bcb496bfdf6fd3af7d0e52383ab131 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 14:15:53 +0100 Subject: [PATCH 0252/1574] Fix LMS return statements having incorrect style Signed-off-by: Raef Coles --- library/lmots.c | 4 ++-- library/lms.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 163958795..1e2702477 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -92,7 +92,7 @@ unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, val |= ( ( unsigned int )bytes[idx] ) << (8 * ( len - 1 - idx ) ); } - return val; + return ( val ); } /* Calculate the checksum digits that are appended to the end of the LMOTS digit @@ -117,7 +117,7 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t sum += DIGIT_MAX_VALUE - digest[idx]; } - return sum; + return ( sum ); } /* Create the string of digest digits (in the base determined by the Winternitz diff --git a/library/lms.c b/library/lms.c index 321e51abe..b460353a6 100644 --- a/library/lms.c +++ b/library/lms.c @@ -736,7 +736,7 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) < SIG_OTS_SIG_OFFSET ) { - return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; + return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], From 9b0daf60fb64bbe33433def23d730ba4a57b901f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 14:25:39 +0100 Subject: [PATCH 0253/1574] Improve LMS private function warning Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 6 ++++-- library/lmots.h | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 15a1a1b28..850bb6a00 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -347,7 +347,8 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note The seed must have at least 256 bits of entropy. * @@ -398,7 +399,8 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note Before this function is called, the context must * have been initialized and must contain a private diff --git a/library/lmots.h b/library/lmots.h index 2c6571480..39e869925 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -190,7 +190,8 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note Before this function is called, the context must * have been initialized and must contain a public key @@ -237,7 +238,8 @@ void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); * * \warning This function is **not intended for use in * production**, due to as-yet unsolved problems with - * handling stateful keys. + * handling stateful keys. The API for this function + * may change considerably in future versions. * * \note The seed must have at least 256 bits of entropy. * From fbd60ec77540c8fdef3ea7cbaa7758e564b0d563 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:09:33 +0100 Subject: [PATCH 0254/1574] Change LMS and LMOTS init functions to use memset Instead of zeroize Signed-off-by: Raef Coles --- library/lmots.c | 4 ++-- library/lms.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 1e2702477..8ffadb89e 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -395,7 +395,7 @@ int mbedtls_lms_error_from_psa( psa_status_t status ) void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) @@ -581,7 +581,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ) diff --git a/library/lms.c b/library/lms.c index b460353a6..c115dac9d 100644 --- a/library/lms.c +++ b/library/lms.c @@ -221,7 +221,7 @@ exit: void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ) @@ -526,7 +526,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + memset( ctx, 0, sizeof( *ctx ) ) ; } void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) From faf59babe846b4148af6331fcefe826a78e2dcfd Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:40:56 +0100 Subject: [PATCH 0255/1574] Make LMS verification return VERIFY_FAILED more To align with PSA error code rules on when VERIFY_FAILED is returned vs INVALID_ARGUMENT Signed-off-by: Raef Coles --- library/lmots.c | 2 +- library/lms.c | 22 ++++++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index 8ffadb89e..97325aa8e 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -565,7 +565,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, NULL ); if( ret ) { - return( ret ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } if( memcmp( &Kc_public_key_candidate, ctx->public_key, diff --git a/library/lms.c b/library/lms.c index c115dac9d..de38c0283 100644 --- a/library/lms.c +++ b/library/lms.c @@ -322,11 +322,6 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } - if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); - } - if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) { @@ -339,6 +334,16 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + + if( sig_size < SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) @@ -346,6 +351,11 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } + if( sig_size < SIG_TYPE_OFFSET(ctx->params.otstype) + MBEDTLS_LMS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, sig + SIG_TYPE_OFFSET(ctx->params.otstype)) != MBEDTLS_LMS_SHA256_M32_H10 ) @@ -376,7 +386,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, sizeof( Kc_candidate_ots_pub_key ), NULL ); if( ret != 0 ) { - return( ret ); + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); } create_merkle_leaf_value( From 285d44b180e74166b70250ce39a7a35a03ccb188 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:44:17 +0100 Subject: [PATCH 0256/1574] Capitalize "Merkle" in LMS and LMOTS code As it is a proper noun Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 8 ++++---- library/lms.c | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 850bb6a00..8bf395bcd 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -181,7 +181,7 @@ typedef struct { /** LMS public context structure. * - *A LMS public key is the hash output that is the root of the merkle tree, and + *A LMS public key is the hash output that is the root of the Merkle tree, and * the applicable parameter set * * The context must be initialized before it is used. A public key must either @@ -200,7 +200,7 @@ typedef struct { typedef struct { mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES_MAX]; /*!< The public key, in - the form of the merkle tree root node. */ + the form of the Merkle tree root node. */ unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. Boolean values only. */ } mbedtls_lms_public_t; @@ -228,9 +228,9 @@ typedef struct { uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not been used. */ mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key - for each leaf node in the merkle tree. */ + for each leaf node in the Merkle tree. */ mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to - build the merkle tree. */ + build the Merkle tree. */ unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; diff --git a/library/lms.c b/library/lms.c index de38c0283..f30f349ad 100644 --- a/library/lms.c +++ b/library/lms.c @@ -83,7 +83,7 @@ static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; -/* Calculate the value of a leaf node of the merkle tree (which is a hash of a +/* Calculate the value of a leaf node of the Merkle tree (which is a hash of a * public key and some other parameters like the leaf index). This function * implements RFC8554 section 5.3, in the case where r >= 2^h. * @@ -95,8 +95,8 @@ static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; * corresponds to the index of this leaf node. This * is a hash output. * - * r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is + * r_node_idx The index of this node in the Merkle tree. Note + * that the root node of the Merkle tree is * 1-indexed. * * out The output node value, which is a hash output. @@ -146,7 +146,7 @@ exit: return ( mbedtls_lms_error_from_psa( status ) ); } -/* Calculate the value of an internal node of the merkle tree (which is a hash +/* Calculate the value of an internal node of the Merkle tree (which is a hash * of a public key and some other parameters like the node index). This function * implements RFC8554 section 5.3, in the case where r < 2^h. * @@ -156,14 +156,14 @@ exit: * * left_node The value of the child of this node which is on * the left-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * Merkle tree, this is a hash output. * * right_node The value of the child of this node which is on * the right-hand side. As with all nodes on the - * merkle tree, this is a hash output. + * Merkle tree, this is a hash output. * - * r_node_idx The index of this node in the merkle tree. Note - * that the root node of the merkle tree is + * r_node_idx The index of this node in the Merkle tree. Note + * that the root node of the Merkle tree is * 1-indexed. * * out The output node value, which is a hash output. @@ -434,9 +434,9 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, #if defined(MBEDTLS_LMS_PRIVATE) -/* Calculate a full merkle tree based on a private key. This function +/* Calculate a full Merkle tree based on a private key. This function * implements RFC8554 section 5.3, and is used to generate a public key (as the - * public key is the root node of the merkle tree). + * public key is the root node of the Merkle tree). * * ctx The LMS private context, containing a parameter * set and private key material consisting of both @@ -445,7 +445,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * tree The output tree, which is 2^(H + 1) hash outputs. * In the case of H=10 we have 2048 tree nodes (of * which 1024 of them are leaf nodes). Note that - * because the merkle tree root is 1-indexed, the 0 + * because the Merkle tree root is 1-indexed, the 0 * index tree node is never used. */ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, @@ -491,9 +491,9 @@ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, return( 0 ); } -/* Calculate a path from a leaf node of the merkle tree to the root of the tree, +/* Calculate a path from a leaf node of the Merkle tree to the root of the tree, * and return the full path. This function implements RFC8554 section 5.4.1, as - * the merkle path is the main component of an LMS signature. + * the Merkle path is the main component of an LMS signature. * * ctx The LMS private context, containing a parameter * set and private key material consisting of both From 3c4ae77fec28b89fcb6311898540ee129b800b85 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 15:48:24 +0100 Subject: [PATCH 0257/1574] Improve LMS private context documentation Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 8bf395bcd..7505ae462 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -228,9 +228,15 @@ typedef struct { uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not been used. */ mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key - for each leaf node in the Merkle tree. */ + for each leaf node in the Merkle tree. NULL + when have_private_key is 0 and non-NULL otherwise. + is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) in length. */ mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to - build the Merkle tree. */ + build the Merkle tree. NULL + when have_private_key is 0 and + non-NULL otherwise. + Is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) + in length. */ unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. Boolean values only. */ } mbedtls_lms_private_t; From 7726678b230c102fd74a202f65994d025e6bf91e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 16:11:50 +0100 Subject: [PATCH 0258/1574] Remove debugging code left in LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0d2aece44..1b8315c17 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -12,7 +12,6 @@ int check_lmots_private_key_for_leak(unsigned char * sig) idx++ ) { if( sig[idx] != 0x7E ) { - while(1){} return 1; } } From 4829459c9067bf924aae9a0049a8534eaaf1f92b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 16:40:00 +0100 Subject: [PATCH 0259/1574] Validate LMOTS sig length before parsing type Signed-off-by: Raef Coles --- library/lmots.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/lmots.c b/library/lmots.c index 97325aa8e..f19871873 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -552,6 +552,11 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + if( sig_size < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) + { + return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + } + if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) { From 0dc604ed2b3f207571dd68f0286e23f51793779e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Mon, 10 Oct 2022 17:35:26 +0100 Subject: [PATCH 0260/1574] Change how LMS and LMOTS negative tests work Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 55 +++++++++++++++++++++++++- tests/suites/test_suite_lms.function | 55 +++++++++++++++++++++++++- 2 files changed, 106 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 1b8315c17..b699fcc7b 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -79,12 +79,63 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, int expected_rc ) { mbedtls_lmots_public_t ctx; + unsigned int size; + unsigned char *tmp_sig = NULL; mbedtls_lmots_public_init( &ctx ); - mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ); + TEST_EQUAL(mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); - TEST_ASSERT(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + + /* Test negative cases if the input data is valid */ + if( expected_rc == 0 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; + + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + + /* Signatures of all sizes must not verify, whether shorter or longer */ + for( size = 0; size < sig->len; size++ ) { + if( size == sig->len ) + continue; + + ASSERT_ALLOC( tmp_sig, size ); + if( tmp_sig != NULL ) + memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + mbedtls_free( tmp_sig ); + tmp_sig = NULL; + } + } exit: mbedtls_lmots_public_free( &ctx ); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index e4c4b911b..9c966cff4 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -85,12 +85,63 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, int expected_rc ) { mbedtls_lms_public_t ctx; + unsigned int size; + unsigned char *tmp_sig = NULL; mbedtls_lms_public_init( &ctx); - mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ); + TEST_EQUAL(mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); - TEST_ASSERT( mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ) == expected_rc ); + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + + /* Test negative cases if the input data is valid */ + if( expected_rc == 0 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; + + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; + + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + + /* Signatures of all sizes must not verify, whether shorter or longer */ + for( size = 0; size < sig->len; size++ ) { + if( size == sig->len ) + continue; + + ASSERT_ALLOC( tmp_sig, size ); + if( tmp_sig != NULL ) + memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + mbedtls_free( tmp_sig ); + tmp_sig = NULL; + } + } exit: mbedtls_lms_public_free( &ctx ); From 90e13fc3c62132e4dd1bc3b36f6dcee4895c7ef6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 12:48:18 +0100 Subject: [PATCH 0261/1574] Add repro instructions for LMS test data Add more interop tests, and use real data for the negative tests Signed-off-by: Raef Coles --- ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux | Bin 0 -> 10916 bytes ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 64 bytes ...sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub | Bin 0 -> 60 bytes ...shss_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 68 bytes ...shss_sha256_m32_h5_lmots_sha256_n32_w8.pub | Bin 0 -> 60 bytes tests/suites/test_suite_lms.data | 196 ++++++++++++++---- tests/suites/test_suite_lms.function | 52 ++--- 7 files changed, 178 insertions(+), 70 deletions(-) create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv create mode 100644 tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub create mode 100644 tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv create mode 100644 tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux new file mode 100644 index 0000000000000000000000000000000000000000..967f8f5e00a31b3cf4bb88903b95efc7c6d24ce0 GIT binary patch literal 10916 zcmV;VDqGcn00C4}6N_X6RntqVV5)4^sE*gXWNYOPUXb2vsFmLJj`% z$m=?XqYc1*tL94z1>7^!WW)*nR_}DGK$_3!oC(^bmwstITP4|-ik=cqMh_EV1IAoV zbZ!YV4ky3BCB1z#ON(}qX&*Uq0w7NFLqfH3UB<2cRGP53hgT}offK|B`ESi!HBmd> zbw3V$L8a7^pS$cDUQk1tA_#&6T7BxT4-;e0dVE;0D4tB~C&2*k^-*9LZK?n%XlVZl zXS3>~GSNhW7Vo2q#SLb=i_0ZQ+SO^T7X!b;x=|vi-9?|k2zjYG=$JL%>>(m`Ji~hJ z*TE?!!GdZVk6}E4F5P_(yK`TOm(?x)y=eG;|O}xp1qHS(oH33eSl7ao5^&{VrA7}E9$ZAWehwRAf-Y)WZ0KuW z3y5C!xQSLDTmmJVd5Eb$XL1#(ydJIslX%E}FHO0AAH;&%Uqd6o$X`8;EB7SaBuPAxH zHM%1JW|x2W4m2|sM-28PL@MOUE9g)fYlk{ztyOeGfZJ7{Pv zhKPgg|7NaCXmMPBU~;mODTPM6x7dTZfz8nnh=F-#MO4iyYCHN)w+k>HiiJ?-c9fSF z4)$r^G`gHqNpR+*o+M%$e0(S}Q{5u_BX@wDdLCN5&|LYh<{;4(4G=xDsfVoDueOc??Nh zSAGGDa=-MzNF5Hs3B+oQ-o2QHQ|1|CHvr=5RwwmS;;AisI!XD)QAzpDsNcs2{gD>s zZpan9I?cBVvnQ5?0mX+;JdIt(W|(CnDWi>?qPaT}#WSdV3sb^qOOKVn4z|WaoUpea zk&ZWf(n%!*JZCxg_o^6={p!R&C>4&;yEO2>jS|igX6B|m)+2*PCwanIB`5q06U)o# z#%6+3o-wN4ffL=0##})%#dw+BkSr87QyZZpn$~i5YcqHb4tm*lXnq1(Lf6bhHG5_q z`y~t6OeE;Igf3qN_ZWcPx>W=wPdT5M=vH``vsZZ$pbx9xdL-y>MBfkJNWx*Z4c;2= z;#Z;qpgkyQh5q(4)YRI%z)q^envY$b|6TiG6EKe7sF2*nTkcI+^_j2MBd&xnkdX=V zlkV#m%+qd}jnTHSFa%Pe(3po_s8F*$Hk{P^!FEfIjW!~@nr#Lf()$FeUt$<@&5L1I zID|pP(!(USV~7c+!QYvy4{iHlN&VIgEbnE3&q024x*43S)o)Nr@nurEJGDz(`|fAe zm6Egbc}?Dg8ej4FwdQVyoOJ4ZtqbATE{7$slx`T$PT8pcVzjoVWloVrtHYqaHGbcj zyq_?vwWKZ6{i*8N7Y$YbBpbU408R#owo$KZx|AN&*Ev&fx!SJfivRSQwU1fCd^JJc zxJ*azUA_Y9#aflESEFIb)i=9dI;PS3AMP$37H?nsqojeZg#uyk7^3C%nbbK+ll*q4 z5`9K-tUF+CJTt#xc=s>jspe5XUIo5+-3okjH4N(IDfzWLG_U-RrC5xPW5v)VP>Kz< z>m4I+4pk8nm00Ce@n();&ZH~=8vH@4%3Z+16CWwsY^`nwkttzV40z+9{w7oqJ5Z-g z?vJj{!y?e%tm1ixtegTF)SI{gcpQglbv8-^ux(xGd720;;Xk;-)Lumqq>-wQ_tqe3 zybi-~rcNY5IlW8BeiAg1=LqvvaS>_ocs>g%U)j<21h%Gr<~MdgK`Ptqp+4CgIgPq# zB7297W)qdp3ew*Sghx+Cp}*+wf5p7MY}J{@B@~Yu+Iw^h-2ApM!&^jw+se zGN!=^z|30RSFXJ&-bAPgPHWOiqz5PX0iRU~Yq2qbTVc#9Iz|&&6t<1~L=k<#FF`V! zHG>F8ecZW!B_%4xOA?lw;c`lf3kad@%(s5q90z`JniYomx0bE-Dj(%E)>>j18=#%!@ahe+eY&{G5^8 zXxCi9&>vvuvev)Up3^#nX9{@IkB-%wZO!9xFBf)Cl>ncl+I8%K{Idx!-mw&Jij2?s zIi+3EEXBAJE>$|`D(#ZQ!^QU~Ft!beTLjh@&E})7mDI+*gy6^MFE2$2IWR;v2l=8J zj~%*$(0AFy>H8{|+<++9Y(6eYB?I*lA6mH#fpCKCCj3=?M)&P#YIU>;OarTe$_sHJ z37c@0Nz7p@=V1On`p{WhiCmNa;8u#5>%7f@H2z){v3Uf-UwEa^)k`%zwam-YOTdMM zRVX&R!JIgZRUfygJwI?ZjwY-&2YyxQa}_X#H)wK_%azuVD-Ry2i zSNzY>ST~xl+2=b&A);9pti^4F8Ertz#WFz1k3bNu=HRr<5m(*gq~CSV0c@s_W^gvm zUgXJ&u-UoWwOOGK)ULLk*83Bq>=gp0Hd?CI!M12A`#27258dOhn-U%Zty+GO=Ieq0 zq`uc#Z~dj=>U^+&@G)g7N*3$5%)6Q@LYA3jQ<6%mi|$q zcfS*7)&0vf7%D?tWfAGsreY&=MW;&^Tm(mGKCUsz0V`$U&iuCuN{eW?;Drhjt!(#|{lhE0d>#_!X(#_rHS#~SKib%O8O14`mr zXF*DdoL}v_QYSHD*9P^fuHpS2ObBJHBeh>O>Oxe3zy{;LfW+xW&g|FHbCYMMt=vpU zh?`>!Ge7T41rhG}Qr?M>c`$v;6(=%R)Naa}%-8hH_Q zPUrF@abtC>hiz~=(X}e5#wP-*JYh}jZXVBK7G$=P!ugQ<3mU4VVVXLX1D9BEm=O*> zhrO&R^eWSdy720zoKbzhoPlSNUxWxqKZYus|B#E$LL9^K)*0c7bPfwr>attSZf-Z_ z^&hbU{^KT-CCwA!@jGnPCgthKFPs$BUu0y|)d3Pq!dgt59Q&0;1N5#Y$s!@+oM;F` zu2s*|T-kzpJy!H=hcgK?dFf`w z{Xmn$loi7wlbTrv!h3M?lG}pnG}D-!`@V|?On#m%vIev7EhlCe6MNDWe*)a`e8}$Q zCScDgztYKG_%~dt65&@Lxytb)hyf=;O7mf{BpR~mtCOSv2lC;qEc7Skl8n)*7yGE( z+%u|(Y&o3Ib52)^*DHsYqL~cIyPA_sPpxy<=@x~%Rm99oOV^*J{q#07{E_XLv|IQ^ z-SABXYZjZ*iR_$+PTmZF7XKre>-4*c$j8`KyvNI5A-VH+n%m{`z;21704Yg?9n+4cW!QBmC?Jz$Pkb5%F@0-UvdL zYSTP<0%*n_*M~&!G`y&LN#tgOs30m8q#iOk6x_SrMJm|VdoQ}nnaW)XUlD}!_n!0b zb8^8Pwd04C+odN-QDmks_CRA7?^UN`X*KCpLG{BR85?M8o?5349w3Qzdr2<@++(>>4EoaaydpWBU|c)u2I#na0-ib3O9t!+{9Imo$Ts>x33!` zX@5Mc7|6lOI_Yi5R01q+sT1~}j^T}t)x>QrV35D8G@6RPP4#QQHJiB}tmuVMIXUx> zQL7{Md?r1qY#Ahi7KVO+Yqwi?0Yo56VbKl2(FK9+PJhY`q@0(W9oC<+<5g zhj8a43HkCLL?-r@wa{ISJptfJs2@pitodsiCnOGDl49@<@vCI+UHxUPnv8$cvExu0 zB?=R{Z5l@12UcHR_!rNIyXvrTPTBkL-VK6{gn8xWDvjr+HSSenEM=yM)(`(hB4Qja zPnfMD0j31o)c(H?(fCWn=U?tEZR_9x1SibnvRqs zaZ<(KHIgjxjAh|zgkz}0y$FjKxzqhay2gtWUQ!!g+A^NqG>YM?isDT)X(n*O=_ztR?nnr$J8&D?OiRgETDN2AV}p28!mABZ)Q6O2HF>{$-0hIS!byGBJbWy~s22E>_EYzk?07yp+9} zy~ux5XC?&8;IUt(G}ta6@r^NjC_|mRaiPnZG$k$TT&bi$%ovQt$eZ+|V(O#q{|7n$ z*cJRgz3zpF9w<=1%mo~)ZF^GY|Le&Q$=y65v7D0;+QUF}KV*786&q~InYjFg6>Ak0 z66oIbwIMevIMGPtGH=60vT!uFPc;JS==wl*Ad?v$9+Ra62O@X6KI$UUZfH!_h6hKJp?JAmIwj z?4epFk2l4iPE5lEEYrT7@@uf4rbh8@WO7MN2C)M(0w*c4^YSP^c0!OXX+0EXd^b0B zxWuA3)4X&*qIeq_?0z^)LF>eV9V5@o(V^%crmbizn}&76`-_B)8rS5m2cM2)f>_Ga z$i3-Os${gCy8Oy`@{Kwvi01m2xK@IKuQErXGvpb84!8O9XU$uQarYY#L&iYqwd!~5 z@iq34e47Ui>Mwy8`~b#TIw4q1J@|KlqPJ8)$dj1gF829b*8{xeW2zlMh8n=mQ^a+%DzGJvtDXgYNm{W80fRV! z92PkLwSv_=vPdHrxc-E!6`L{Dd_1xPn@{7HPif}ZhewVZ=-B3O>|7lD?lTPU8iykk zBRZ5mG2;}(TC7y}G zD{^jAQ+@;@A+&Jh=8Cp_*B}R83pqv>+&JVi2z4ep6o= zuQvc_*0j=6P^0dAY~l^w1|R2^V7x*IHstynX6fCm@#}{{4Z}m2nvyw-lg`C+k{bZZ3K8hi|00#KfarCMyU~6^l zpt&E92_kv7%UJ6!hn0nR`+8^MYW3tdsvb5%_z&9KY=NxEuyOyl&poWJB81zaDU_ik zXGT^=j{Ab~csUu{EVwP1;GoVDa>yq8L8omSk384S|72@Ew8G$PfT;hKLz5&rEpYf( z0+5m2jOU6rou`q>^wA>Y&_)R~9ryB|+qOWjL54~byyFCcE_?gQ3pSivhKC}Pa!tOR z&OBBsu9}h3(($Ys5zo}8pUbawITaPLAm$6<{i*+Dfh@_1!r5JCVC;dY_Y!ZsNNvG@ zg=(G^Z}_@{Onu2PwwS-5T3`1xUH}rlrYy8sD@lAXcD|hG486c9TFqDR(m*Ih^qXg8 z?B`;qYPJ&yl((jSMAVAJZ;?Hl{5bd3OFsNR#JT_FpKe=+6$GYT@bmd~k7t5uL+%B+ z8Knspe!lazIYSF#(OyYuVIa$2u`RoQ#fZq{QE^xzAQys1*9C$x7Dq8+=11*v$`Ei+ z{`EyerURA5uCWo+ze<+q8xYNu|B)I~lU!drbZ@H~xgsT`6vE|>Aj}uZ{Ji#|->N(a z47Jzo^j8t41m*l48_4etCl_-kz}>E)#m`a|5^n2MY|r{h$sxsZb&gVtOG7Bsx9}1^ zRhNWQQ-6bhOh_rHD$80KWk7wpY8ap+!Gd~g;1P_g1JgqKceWdLcF?k`bTE)!MmeJg z0^Io_@L7HqExuy209sWY320d0Iq8B7p2V$T_-aXctS~m+R~Wxz|I0|HgB{Zfj4Rk` z^5|?ab+TIqCVTVjHKRShif65GDoiRD|2CMEDNawa`{KIL{LnR^BAzX~Px>>2JxA3M zEWg?Pe?52g=kNgaAjJdg^sb|gH`Y2sY&t_l3V4UNkwQ6;!EKExhzpW`0YTV5{9l@T z)*&-D1T|YyjUE_4q?h?x@ir@cC@~&zhc<-)9S_v3L;h$hI9VQPmtLzy8>S9Gyx2Azku?<49^7e{8KZ2lip zM0GP#tiFU4@3TS%Lsr$|J`*`JJIF-kZi~M(R2Bg?{e*5z6{(|Q_y7gm*r_@U>vvbSWN*^!4aw{0FHosQ$hu0&k< zB1E+zPCG=HR*}NM7nH*=1f;<5>|+~YwwP@e^Jc*Co*18X5G{%$ea>t>IBmwZp#ohy zKxg*n=gxUZi~)t`c%eYbT=~~f`A0#$Gd|4@0@f@+$F4UE<9%Cq;@O$%;_fGfjks8` z$S(3`euEfpL*}Xe2?Xr$n*6}rcUsI|7JhltXPNo?qP2UnK8AnjaWhvI{1_skWarcj zPJW%PoBMcJQEMz&hJjzTE6MD+{B)LghV0VL;{siUop_9t;$J)QA}UP?Fy^T3p*|O7 z%M<@6U@gM|561+cyl8)pskVaa^S7L^jAog3;QpwRei-$eB5xeK}oK%EfKKVH>sMj;{wN2z>3YcjT_SZ6N|ks0f9E$DO_}H zxiL5Ob38XiL+{Dn@A^!k-E;oIC&#;|TQ1XA0RKLa`r{8BPfv(7u=|F4q+wJDoX|VK z7Qo8C-UP(6Y~qe;%M9lTqIKFd`+parrZj48c}Mah6vr(u607&!DCp-X7}^?n8E5}y zfpqp=`Pme|SW9U9#PFvOp{amV3NVXJi5czJp^ZP>4!Vi0EGG_ID=N;LUUM7FDZHgo z&}G2eAfgRDNI5M*#r-||fKW;toHrowhr18-v!L2fSiJ?cTUFoXQ7O9~{R&8(blHj# zV`4@?XuZI4MU}hFjl`tXnWbpq#xqWGJ38TV@rvAq#l!T>QnEGao``tjN(0eG#GEd4 zGZL{gu0b4>h3Nt)g@##fYqby&q$6#;FX4tmExyCSB9r2rQ6GSAmE)(HB)X-4vC6#a zZ84#Zv<8xaAUwKcM%?YZZ$&t&pk_ zjV{VSj_ZVPSS*Ol@LNc8<`r4%F$U zUZ}2d*%dBy`4)?NMNvmYtuVRkzSEWU9TT2a3(c6MF(EHiEA14#Caz}rD&2~cVf)a# zI10Hx(sCF#N2Lx&qE_!3&LLa11KXREv)x)wGv)B`@t}`3A(P5FkAcltxi1=eV@F{F zHeBWJv(-mmD?Y;!#-LtT&lw{gzELu3uCVBh4g>(o)jYCl@yNSIE3@~k3rXZLa$Py| zcV7t%?b+H#^D55OR{12gKQs&3JMV&Opm5s_gokUyKf&&rBxvwaxS;lsx(dS3gOR>fhwB&Q?wC=q6g1b_gs~RfC4!iQAMZh|89%^>mxW>4>K=h0wf-_ zX!ZR!o9R@am7KmBMKbTNqL};%I3?PL{wFGGU!KmQnfu|RyU45{*h{s1zAN5zq^$|2 z)DYYyQ1m$l*o2sLAa_KT0o8=IEhYN>%i&VD4B?gP5p0i*IDvn1cBTZ*TWh9GWYT$K6K{v=bvxO!KQaDbz#Onfb0AP zHZZziK6Y&8e!tjkR8#SRQH{Gf5a~z_q{Ne^mNiz06c;HL1yk{GHY~WdIe5Q$EHW%J zEW#o68-+{3SpxfB01C9hI$nSs+bNYq5HAL_t)O1xC4;-@ydH$Xgtb*#5!cfd|K_rIaC)D_?RZ_|(p7(PZdva@oKt*-pnjOwTth+Omd# za#SWv4;sEV1gnT+v&e#J@+^q(>p_UPP`f4q{c!>M6gENqE=aDtlebPqzIB|KoLzWC zDXAYGldxi?>v03oN(}-H2HAb~za@0@LeM%VQ4K@kf-g9GWng|G4Z@PSIGMZ}k;;fN|CYDHTV-8i zBJW{+d}TysB9fgb3sSK?XLR(_KWmgc3Qv^NH-TL?&OC#hov;X^wnqwml_A>IByEQRQZmiX!hX@F7&|j&6zL<)cU3f`NSG|D`rQBJw$z%5~<@@MY4Rg`v@y zpHdsb+opzkLaIS^T3dI$~I{)QkNG`_mHBaggeA!&PPS+S63z}_XyXG6BO7O`Z~ z>N74*pTgDZ}x_v;zNG9G&{us{*|CW82K@Y37UUoR6N2C*&i zOgA&lalN0e)NhVg9r=tk8AAfch2_=Lh<6A(=9Sn$Ke-rhI)MBZBFa}`H&r0^LmxKb z(+=aHqk61D)oBZ8Fy7huPjq1M)E%;L^d2PTHeV3?b+kH6Y>i-M@dm}4#cL!^lb4d3 zElIFT<$o3_*$s0QHQ4NkzUfZ$F3~Ofm&U2H%{&b0Wi2YAY%TsVI~f1AB_OT&^XujVbVs4N})AA28f6Lr-r_6*3z%F*Pl7vKCj5IBitUf3Vnh&kc3h{v54uj8rooc z_^=D>+-5Z{J^%zOh8_!p=$7iF7p&|jr$@TAFF9Y*fb_BOB@UWjOXL-3?2^!Qr?4vS z!P86s5?9;sDlK%Xyhihf0-+u`!Zw&1R@ZkVPQY_B zYY-GwSihMiSmXH?m16or9sy}q<$B7Yh}BoB*2yZY0#DQix~U;JN&S4)d2Es0G#dns zi<%uP6`uaq7;b-9*$zR@#+An>o;*5n(f>j2#sykmegfg-1o}g<**oDy6-74#$0hC? z1CEbdEkZHM_TtD(jAKy7F13HPB9nF2g(cH&*z*0Cw2P~GB$o5G`GHr~FKX@cDc;tD zyq;d?>a{fM_X1yp6i4c+mgySEUqK0}2aZm_pk#v_gtPgalq!t0awmh}JWGgnmF0Jx znfaXd_D}@!gw~XcEP19fci}o6X5Vv`!eFz-@ zh)IA~{Ti>NT6p1ymDD~bz{wYWdcT<%m*Iw^eIndxfU2EyB>&4@vTeqOVi#y+wUx{q zhgpDn$S6%fGPlMatx`;5JpI-W6<0Vc}@a3xIf`bs|;D$ zIF$CrPR}JH5>M0-yPi$ThwU>Vs8+B2+t}PkN?ZXdy5v&zr@NVI{#_b~XEYfe$y}tt zwOA#PP94IsrZF zT)O{VfC{be@B_tl>GTowCTsGr{yMP<^W7z8dgRUM4DqeDuesMZmPL4elwq86iCYWtRiJpU#ISZcbgfApFwM zLd><)Ra0AHOr3}U8R5DcI9i&_!!h$nfSViHJJ_hk+lE(JjGynLFToP|8ADuv1E>Gw z z3rS~&!JElgX-rCH3#by9zS@KwF2_rT!0MN>mCMns{~R0g&%mC5$jYFA0mO{urt;|J z`0<&&$g9V54O#bT5`wp)j=$|#19aI;f4soaD&J9NyB{bSAr_OQ)v%E`I*d?BD>22V zra#L7rNi01kl6tZe>DH8P8qf3hxbIEQdXRKW<^@Ktjw>_cnRIx%#sIT%Y$lDcJ`}! z=pz97v2_zxsn24|!X~KS^JO%fP<&#se-zT!*RpT%anB8FyTt5^OxLjLbJr;YhRzjR zH7gHfoNFhD-&OwEM@&WVzpLHz5x1zs9rG4I2pK@xwXcqrHK}i|Nn8VNi+D3LggJ?7W)K&$cn)bW z1Kz}#K%>QAa_ws}RIas=X6>W`9xAZ`6S`}*Dz*mPCkUBCu3DxhKNE?aPb;Pg2sJwD z1(8;vZaaTqLi^xBP3lF=9b~+57}{M7%3HORTaw>?3U=n zO~cVA+j~=O+=;W%4q(})Gaaf!9Ff>l)R>0J^|*JI)c-FF<&}s*Crnq?|J|v9aJ(fm z8%>NFt@A!7^h1_3*maP76GIx01N)1$kJpRbhjbtH={<$R|JL?r6Z;GFi6&yM3f|Co zJKBwi42C2ecE4zzzJoN7xi4}6x~S~|^a5EDQ`7P>2xsC!%c)$Hs6;#(NZt@*b&JX6 z9{JQiikwKD2*?e{iJk+)aFw756AE9C_o4na?R0wap_ria^`I;UX)v?biB{}%1zsWt zr7fAhnp?bH_(-$`N^JL*qiqvI^zHTYCSN3ccnxe_bMNqC`OX8g%{NzJYRDW_(S;2c@%%1{H1lTKc=={f7V~a7}ZBg_7 zVrJr9ztwyQBWR=OJIHRSUM!ROTOBF9OHL#LWk}Zo4v^VR^?u77K(ndalOo~$x;&+ Quh}RnQGT%G`xN_|0Eajl4gdfE literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 1b1423031..5dd901982 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -8,65 +8,173 @@ LMS NULL-message sign-verify test # signs the message, and verifies the signature. lms_sign_verify_null_msg_test:"923a3c8e38c9b72e067996bfdaa36856" +LMS pyhsslms interop test #1 +# This test uses data from https://github.com/russhousley/pyhsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature +# uses leaf key 0, so must be the first signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte "levels" +# word at the start of the key/sig. We strip these 4 bytes from the signature +# and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * +# * hsslms sign tmp/lms.prv message.bin +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS pyhsslms interop test #2 +# This test uses data from https://github.com/russhousley/pyhsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature +# uses leaf key 1, so must be the second signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte "levels" +# word at the start of the key/sig. We strip these 4 bytes from the signature +# and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 1) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c48":"00000001000000046fe15c33e5f4396fe8af67d20cd9886c59edb8aa6e005a206427d55c66cffa0d552114c88c70a6e07a8e69c53568b3deac7835f5706cd76152fc6b8dd624cf42e372ffccdb6a96a0b5028e85181e8fd67b77fb0ff38fcce830c5b65dfe16762550d5450eea7a39bb3dc745c7fcc240982ed6d1ae251822b2ca210b5c612aaf559280a7b3ccb5d68c6ea1fb6784d5134004570628f5b35a8517358ba47c6c8b827eda2e16925e945f00a42a7eb6c9034891982e8b116a43cb817bd1f67c317a20f98e1b23809c614b60231c475f24f8c2437c36b452253d517cfb0ffaafa4b53248d3f516fda0417a74d0f43771f7369ca71064e2f54fb1bd98e028fdfe3157ef6f6470c32d4b7baaae57e1b104f4c81073cb9fd339349106b699b279877b2291e32675c6a8a82e35f1b337e91d8a29c8d5c046ceb6246c44467a4a11cff22abe98b10b6a6d68361d15f140b06659b90561ea43fd9c39903a4d2be84fa89642120498ff377024c42a687fc87180a29bd030455fc453ae84c1c747a35ca81f47beba61fcd6a63970b21ed8ee74e00371e7439cb790b00bdfa89628e145698c4ee04ddb528ef56dced72754659e87f25b8e92e60252ecc5580646dceae45d1ca986b307c459249ab3b0fc85f43eb22779711846f2ee13ee0f4060a7edd95c73209ff735ce44fa02145cfa6916a305e668fd08aa943c72f2167705450037dda5f688bcad385582bf1bfe3b8316f7325837c10d193d4d898776134d420107f136ff2080563d9c4bcd48af7ef9f2cfafe517082aac1b54ebab41388c171668d03c64e62208a60a8cfa81483440b17a359e95c730299a287084d49c623f3547d3ce7936d69cb478c0533693732e7aa3161370decc75f7ae52fb0065584a20851469c07d8aa78c0ae28e7d42e86b908ecd5161c3b74409d67d639c39b99bf03f9ec3ddfb607bc594dffdfa6393b37a2cfd0dcb18ff9d63aba806821dee85aac0938fdee86fe21045c0c200527ce64be88cd971902dc8adac1f14e212c6e03d89c9e268046448c5a285f287a9896f59acb93fb12e3ac62d1df44beba165a26403d4f738acd561834c3f4d554c4bc8f20eb90199b0c3f332d19c033eaca1339ef8d029026d2aa76760e11b27427236f94fcefc4a6844937559495a36ebbde0b116c2644469fda60611d9f6ff1b189a8ddf3073acc5a55f1b0605de7c42a660f4897abd14ae485457e18b24e3d71222ae79660266ce53e89d1b60ce1622d1ef8ce3ed5179828ceb7c7298f9d10a309830ae7b530a913cb6306b7d2ce7b10753e817314fd9b6ef584fab9aba0b617cbe1a54a8610096615b56fd5b6798ce98ea866da2911b351ef5ea4411a44c726c019cf375a169fa6fd66f54d59f04e4f615e8da822413e017b60e93412e6195d4d7b7ec269e6f59dc072ba1e688a651bb45a27612949bb9eb6d0fa887393707a9c7a07f2b0640fc67dbb55d288501c394f0b61ea4c2bc1af6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c39c44b4a6271f81aba0f250997ddd423e3da0461fb687e56e20e9d4a2c38d78d000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS pyhsslms interop NULL-message test +# This test uses data from https://github.com/russhousley/pyhsslms due to the limited +# amount of available test vectors for LMS. The private key is stored in +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. Note that this signature +# uses leaf key 2, so must be the third signature generated by the key if the +# signature is to be reproduced. Message data is random. Note that hash-sigs +# stores public keys and signatures in HSS form, which appends a 4-byte +# "levels" word at the start of the key/sig. We strip these 4 bytes from the +# signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * sudo pip3 install pyhsslms +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * touch message.bin (create empty message file) +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 1) +# * rm message.bin.sig +# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 2) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * +# * touch message.bin (create empty message file) +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub +# * hsslms verify tmp/lms message.bin +lms_verify_test:"":"0000000200000004b219a0053b6bfe1988ade7b0a438c106262366cb6338eb6ccd161326b29076d3493e88ab5df10ab456ddbac63f9cc7bc626a832664861a61125963f6e4b1fc202b0d6421cb1307451614d4d0e9e4509bc3991ede829f3805531912af12028c33128212a6e0539a458da092e83dcced8ffb1d9280e76593a239d3e87858905d3b4ae3864cd55972f5610759bb7d929d24ae262a1e028f140e90aa7375e43032c0bc28fe5fc25d53a26f4f9e6de18da2f697f82e409308e5b316413df8e85487391c46e784f9303f133ed332c88e6d1467cebffd9547592e907ceba2992a0442410c7a87104697a4ab3483d9b2af9df574edf23811cec0e681246f07ac74e1ddf64a7f7abc72d0a23b70d5f7c9649188eec8644f2437951640af4f673e6bb7d36a10c5c4c857f518974929824011dc79f484107388b92762acb11839c7cafec7daabdbe651f500930386b403ccec90a507829c18df23a800250d412a82b4072c94de24da9fa25720f1ee433953fca2d9b38ffc5c8b6328e69bf928936218bd253cac5a7122b74639ed7f4085d27efda2a698aff4bce385b475470adb19ab2095b3979e74e63914ef5430094e2028440f4d2aa448bb41f1d4481ad76c9b6671f4a7aafdbea44316aa97993fa31c56c34f0acd6295cd2fca8be9ea6af2f4d656f89b113cb3b3ce35753bc0128629372fade890397c297ee4c22e735e2b5f3c7383ed154cf0941884136bc6e51f860803b963c145795c8f573ab43953d25c0837bb13adbcfc506795db26fbd7a277d9532a23b5c472628944a3dcfc424e42fc54b2ed2cc8166cb82e9364af9120881313c97e429bed15bd9d46fe407f229cbc6daf1442e42c57664a7e832a809364750396a0b134efccf9a31e1ef1fdd2279d1179a673feda330b9989681c94d69eb197b6c3048623e49c98cc7cfc8d845c17f9059e7f15b72af8680cad2591cc9c135b2044fe7df45b8b6ef6e8af85ddb677f0897ffbda8131fff0eba1f94200f435bc26cfe5093c63f547620efb3bf8f905fe4ca1c40e163dfb6432c4acf068540c2c81c0392d375e99e3960973447beceefbd437f51616f85236d75815c51073277cc7ceca622bb76236d05a830e024a231566fb07f6f4e3671bc7fd5e22e4da1f4d4f4e56a179325b2ea9e51d6484df0941e0b46bcf4148e98530e9b3641e351b67073ace8438fac6d9a19988af4d594048f12eac4bbaa73eb15d597b1fdbf34ce9410520d9dc4b6bb7a99a12dcdc530c49bb67ca942adecb7adf27456eba9a9b416bb98b25c8020f4c2507b74a9ddb94f197ea42f03500bde751c04ec2c6b427ce0f80322a6b356f0d9d26531843639c7c7938b83541c58fedd0398d81b93032cb4892903a5b1cfd205b333702e7f80c1461a15edd6058c2e08d8afe44e4c5bfd7d9ac2578b5a16b4c4e43bad5f7b22041de5a95c6f64422db270e1f616e379a034fb3c08cf892af6df8af91c2767eb76bcf018e35d66fbf4ac1e5a6a10033ea118f8cd2edf57c2288a93f2f85b6ff41283b029e5c7b04bdac33b5aa79bf799292a0a046b98e6d13a2bb53a970dd0a5784034600000006c3faf2b844e6f17384998ae0616755eb7578458b7096078a36f9e556a2a091be47c0f85ffd8ee916734855a6d116fa1431ad6cff45d2a8a7f6c122f4d492df32438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + LMS hash-sigs interop test #1 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004C167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":0 +# This test uses data from https://github.com/cisco/hash-sigs due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# signature uses leaf key 0, so must be the first signature generated by the key +# if the signature is to be reproduced. Message data is random. Note that +# hash-sigs stores public keys and signatures in HSS form, which appends a +# 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from +# the signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * +# * /demo sign tmp/lms message.bin +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * verify tmp/lms message.bin +lms_verify_test:"6b7439e31ef128c54f1536f745ff1246":"0000000000000004163fc2e3d3267d8c0d9fd9e7bb7a4eae84c3d98cd565de361edc426067960fc3201d9be1c30f4e4edce91844753aa13ff21e92648ac795b7c29dd6140962b5a1fb97b02570402a498a495044edcb26d1321c52e91c60cc3feb8f8e84fc77f97fb6e7afbfe4c2f2203d8d84303e2dd212b652e08a2e5a24a333df859cea3c5a547561f7ce6d182e2a3f2f018ef7e0578621916cff905c0713fa5f2bf73248ae6985aebc4086b79ebf71b8dcbb592eb61dc6303d06dbda88063690361b0dd25ea1c2c6b4d82dddbe11740864c65c228d67e9a1710506e585a748e7e02b36706e5cff83b3589613f07c636ab7784d6a8288d33e80f063165a2ddcbb0d7da815df8043dfa500c3e313c533bf6aec959237c923813d3109bdaeb195b1337f4cf21c1c863f6261dca411819603a3ea60cf34c81b462c4979b357da2bcdf3128343ca5a8a957e3ca4eebb914d743862e29ef48e43e7c5a7aaf7a2fe1251c309c65e9143dcfb298fa0d353084f60c0779e1a09b040f13c1025ec99402b844ff9996decf4b5f0d32a0858126ff293472aa93fbc2017d39fee93ff9f0ca2752b25cfa12542bf19cc1b8c102d65b70dccf760f26cb546742ce909d45345f802a985bae6a0f922a9c2a3dc992fae9f6f2fba0c52cad82564bde6ed8af880ee7a5eb5c6436611e5da1c690831bed34e3dd65acf2b8f496b6448e957afc16c48b6cd733bc84e3606a1d0609f08015c14b5619a2723f9b22950efc7ff7b733c299fcd84ed89c4d5cd43a9a54f25fc0fa1370d184f9e8011b60ba38dfca0eeeb56ae37a5823718c8210db20c2de13c39e43970b0b53b85b9cf9ea0dd025e7db558b463c683980fe59e0defde41afe825cfb8606ca861602a7fefd7506edc81b7ab4a1e0626e0bac1f99be118dbc1e291028fc73d0a0ea6559ae1dcf7477d64742c9bef88ef04b2ee4d392cf1efa23d8b05d11d2414e64f4540623e11bbf57fb8ae219331db0df459a9849f2700e6fa7ff4edb0fc01764949e279e84374e7a57fb5ee6221b2b72dbcf2ab9c988fe07d21e169b4338887129ac503cc6c0912787778d51b4b921cf7bb17d4028b7faf6c21dd616a1ac3b50d595ae0e3662e7faa16b9dec7694462c7fb8539ece0af33cc5a3dc33641b8827bf4751a708d7bf286cf2e795b8f45b76e1109abd908d0388d6ab8ecea67b187aabd80349e4bd286e3b6eeb3535cc9c343a39fe90cb443906b19d2483b4c93d0e35cd68d9f5523d5400a2b1708ba3361bd0757ed69b1da8845594edf053995b2d96bed8210aaab25fc34b2dd58004ce800360f24861e5912ac339ed0a78548e303e728a41e05c11d79013e3971eafa8034e63ecf1c842f0d9e735ff3b5badfd63ae07f051c94a9a867260b517e5c2c75e88e03d069bd39816a2255c90de81bb79622145b7469853a02eac45289fd9f9f40e2fccdd8ddb740469331f61badc1b7f6e0145dfe30141ad2f26ac8d7ff5125dc4dff1fec57629cea4f7de4401fc056e9a38ea028ac9c666ccd3f527947672408a759a5791d9efdeb1ff25392413728a03d4c641f4ce1542b6952e7595f1eecf1060000000671b0912d734442146e128d0029101ad34a6d2d586640235c828d427dfaffdb156771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hash-sigs interop test #2 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"DA16BE0B8FB691248486ACAFD531BE6EE4C362E0":"000000000000000484FCD0D791D175A0F86D64B2E8949F793CA9FFDC0347DE125DDB2F895BB9D2B43740B9B326B24F934D67586812BE6F3FB57E76FB12FBAD60A685F22A82C95C84AFAE63F47BB3CD951D483F61F5626B2B5FB6FDCA0CF02293EFDE1EB0AF6712D635678E825099E95435B43EF83C49C6589054D0905D82D597FB11A721D2232AD168FD179724539699C21163D5ADEB52290CB711C368572FF8BB95AA61DF2AD128307E768E73D3CF2BAFEAC8B6CD165BDD0316D2663D1ED61A15FB974082FC66A55E13ABA4FD084970EF6A59B0DFA1E934BF0E056C86E9B4C5B94CF863AB9F23BE2DB6A140A9CAA8DB31C83B21BDBDCD07304A52EB8501869D86BFDB68A376D94F847EED7E4CAB6A6EEC063945AE4DAF657D5509249E7FE430F5A13B188C4DD311F01746CE28F4F6540041EF6ADB299F712F591C83B0C12C1FB3E4A878C63217E25E08C004571FFC69E9C684E46F4D36C36409EBF3EB15F32A187176F4D177E0FE0E71ADFD4DA4AD2D57A0256B29AD5DAA6867AED20CC862AF5729D030514D41BB8D74551D8E925322C81A357A586227BBC885AB683BF835E9333A056AFEE96F2AD0FF6D6E235A9E2BC342ACBCF0B8EACC95E7B74215F6C65F12829433301F004EE1D9CFD16A4A1D092F48E99AEAE9E1FA4619ECE5E05F5C19F33C4C94A774EB8955409E3CFA73D8807CAA7C55FE45E980C7E7626AAA193F18A3AA7E525FFA6466D728FA25563DD383D855A0B6F8C011AC8C79C853CBED3A016DC26EF6E90B3E78119E465B9962A42B6AC168C1CDC9DB860D740B0C797303E2A62445FA618B5EB417BD4385C15BC548FEDF4D4842CA43F95188FFF63EB5D4AC85DAE618FDFB6CF5969EA0A3A52F73A4AC4957BC4EBCFEF593923EC79196021B25ED8D7558E4AF41ED74941585AC575CF1971D4F4C7C9E9516276734FF9FAFC7DE661F3090F71C98962789B31EA0FE406E2EF02F6F16B1708258C7559B8E05E27D647AD472805C865299FE30A5FE451DA7F2C493A37AA1655D492EC891B9AF559E12104CDD2EEB2E54138A1FB5A403AA32CEEB3946471A299604FA2DD3CA3E9567D01A3CEE5D09A1C2768B521C0C6142AF297CA5BFB3878B32D37D415542C15F655CB051240F3BA8FCE0E38449A0D7010A9B56BA2283E3A2047215813ED2090F7BDF16A40ADE32AB4E669684E6DEB6A94633E6643F29D10914F5A361C964CA9145514D4B80B45F3276EB0C649622034E71925FA038EB35E64C71CBDB11E91D779339516A351BD2A722CB60C2CBF145689B2E3F6FAEB74C3B58283929F70023503A96FED6A5D7D8A9E495FE1D85E0FCEC555F86747347D2FB5219FF65EFD144A5E1E88C63BE4259C42F6899C103536D75E0526508649E2836CACB94E88BD954B88EAC26F17B27BF62546C5C7573E2BC9EF4B65B8AE4951AF532F968FF050E504CC236DC48379E4390079DE451DCE710F9674D753C85B9FF7E7B09ED051EDD14C33AAFC8A188AE06234DFB61FE5A75C7A760B5286E1D6993BCEA0AB8A2C1D632145BD6A9F109ABB04E0B102D50DCB8C607AD6BA8C5FA5B21663E5A40194CA5DC2294BE10044E8D96AA0000000694ABC63BC5B27730C5223943C8341461474033BE3A221AFFDE66242AF14510CC656480CBDFC0B35205C89258A18BF6C29C4708CB2572DE15EE5DD481BC47060254954B5C5DD881AE6B358F7CDAB6F117235AAAC625B2750DB72BA4A96D7DFAA889BE780416E1CB264A413C6713710102D1D433BC6D0A47BF08AA74FD613D292A867261181BBD73557EE3AEB0F63579B71E58E97BAC1AACA3F34646350A13BB7ACE0AB3B062C41518768ABF3D32FB2F6A5E5C7F6B8B04C943D25A82F03F977755D74FD717A4B7E7674B03B577405210E23A2FE050E036DB0730359366A9436AD2CBCCE3E649F9E40023B2C12D9F5AA824319EAF571FD4842E573BB100BE9715D7B71F75521640D9B69B889349A283D62350D3A37264C89930F40603A5458B124EA850BA59024A46A8F325C9A9776817D739692FFAEA2758249888BF79D66FD496":"00000006000000043FC8322D04908C7C06C0D8B7A0CE24FA3AC253393CF9A56CF760294A06E75223E38C9E5329DDC493D8B51B1A4BBE41F8":0 - -LMS hash-sigs interop test #3 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lms_verify_test:"331D543362A163390508127AFB9894B8C18C6E0A":"0000000000000004F5378439E9C229550D40B725FD56BE48DB785093E62BD29B723C61FABEDCFD486EFA120445339DE2A21A8C7465073ACBFD6DE3E50F395AAC20E0BCB23B088C416199F80B540AA81B2C0B12B7785152263522E8F79AEBE3B28315CC834AEB68475CADBC724DB6B7B7F594A7F9DA2505F5F44DAA7EEF70B72665A250C1F61A19F3FA4CBF389BEB9B31DC327882D7983EEED46DA8E00AEBEF85AE179EBF6D8CC7F720E9F963C4D30DD4015DAA27993D0780AFD7A45688422B1444AD866FEFE12EBD94B4D313517708A6E652D6206A8B263E234685D8133C2258EF6CA9E9C6FFD6D153598B13B59576897DC4F77C71609427866A347AE62B5C3BACB0A2E44B60F2CCB4989B0C57F3E785CDCF22B1FC8C3460A163FF2BE7A578E82429BA823F392A13C11A5639A42453972D2185E81809EF0666F8F01F575FBD9A46135F45651AA814D9BA84F774A9E9303FD55038CA41A21484BA9C38E69BCE4E37052971690ED3EEC4ED9AD41B0AEAE4DCC913443B9FA5418FB75DC1725FA989BA8DB5D9E221804FC7F36F3135C8B93AFF66DF89408CFD50993D308E51DF00540F380C0AD06266B80F646B917BA58384B55658EAD2D453766C4843FCDD934E8352A6DF6A081A15BDE07BF67E977E72BFE1AC37F411111A0A4D101A2CCF95EBEC7FCFC82B45DBA88939B0831987AE4D15C05A2E08F713BB0B6BB0E2436B7F9C83D2D869432465DEB9185913DE215937EFB4A52DA50BEF88688F5AB4397A04B14CDBFA5BFD948CD6EA1122D9D3C2927DE9D066297AA2C6FE8E478EC0F41459287EF9B8A1A56164C72AE3DCE5E914E8BC3C3821E0ADD6D1C9048D71BD71F71F3A6E04E63687298DE5A3704ADA82AA369CCD7F342F79E988A7BE066CA55944E0E3712F472891761E5617DC048C69AA4C250AA1560D6591FC0E7492027BEED67310E3482B1487E41DEA5E070894A5FB93FF4462D1F60C4B1CA7C15275EEA2B3790ED12EA930FD7F7F07D60807E4AAB73D1F889DABF2E687A487F331AC17D8DE24E8448E672F87424F0D1A73721A1A987519D0E3BB91D15D012B1FCDB6E23EEA17E93869C5199984CE8A068CA96C3096273F8B23160A79EE0C208D9B70ED5E23CB3586DFD33E02D06F1C646250BD664C27D2BB9614FF5F043A6FEE1A235DA10DCAADB19205CB839BD616BB36B738AA28E1D4F767BD8BAB6C2F84887C7B2E16CF6E07AF90C1FCB6E6E5A4CC894072AF4393C63F7119FF694BF0A043AF5F0825557A99C40BABBDA97D5648687D493367812743335A8AD7696562538C8BA5DED182C4DC818E7E9F630B29A9534E2583E0F4B5862D4E4DB250A350BAF360EF133838FE55AA683E253746A704654EF692F4F818F5A172AB0B84673D0AF77CC1DF189AA5BB013E833D1B0943918768AC6A83E6BFB306D3C3786BD2C87129BFEA1C380A84C4983D262184427284BF3DEB9B4C58FB1899B07B9F60B4402618168B1445653E8E48CD92C048684302A6F5C217F110D6699707BA42316CB31FE8F4DA6B82243CF1264751225594AF1BB670339A9189163DB9E985A99BCF83A3039AF3E65BBCD8364745356B29D761853E00000006CDE5B63B9763DA3EABCFFDA517688BDEC2AE9213E6B0FD7003D95458798AE9449DE4F1135E093B39F597A34B14AAB7F596E25BA469533442F54C14921ABCC5D04A05486CD16C8564E6A19C11BEDA574A9800107DCEAD013A7E6A32966B5BBE9FDFDB0184FE0707209B6D9EC43066899717E487E5FDEE02061EA5069B2D6C9C87D6BEB1310F1B9E723AE372DB7BE9EF6657F51FD0DE62464D3B37755095829F625EA76F5FD7FCD5829863F963FCD7F9FFFF3729688D025DF7952B067C62198E4C6CE06E960B0BAC6ADBC9459D9AC0BE1BAD46F95A121BBBE6953BAA10252419E2AB6BCA1B0AA1FA64DF728160B4FB7A62499C24D269FF59977649064C5986D615E6952EA0DA5B1C04C443BC27A63D391D5BFAE824F0161791E65896DC100EAF80037FD800A5079337554BD990E0D0A1A4C4C45741E72FB3E840665F2881D2CCC5":"000000060000000461F2DF219685CF313043780A57C18071725490AB8D53B676D484238BA8C373572407938CC578045649964958C0A872FA":0 - -LMS hash-sigs interop negative test (altered random value) -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMS. A public/private key was generated -# and used to sign a randomly generated message. This test is a negative test -# where the signature from the hash-sigs interop test #1 data has been altered, -# and is expected to fail to verify. -lms_verify_test:"D5557C719EBB0DBECF563E5CDB16568BB11CD779":"0000000000000004B167A9AC495BD4EA34CD8EE5AAA2A656D518C33612FD87171421BFC3977CFA99765C6D496499C72A1DE21360DA57EB96BC83DB8AA92E560054C7805B04E336162FB4C411B509F76959F2458B0E53CF830E0145CCD439D494259EA4818CA68924A7E8B9DD36D6A9C7849B72F9338ED6C80A3E70B717E8E65B991B2FF9D8B49820E8ABC9E2ECC17DB38E855DA75D84DF9885C7F9DFB4ABC209CFF1D37D66595371D688A203CB89168945200C39169F784B19665CE1FB47D58BFA734C3E0E7E31D1206A033C6D8E25B7E45CA779A5FDE00C6B1CAC44884F2B52A380E1F6D8753549F7F4948A95AEA83703CF3AA108FA4F735AFC0DA1A03C378033D8B5959E7BE05D3C5070E709181AC09EFEC04128ABD7E8F37304FAD4B66373D4A83CFC1EF632DF6DB95577C2C6101CBDC807109ED8AE831FFB73DBC80942C58F334663B980F982C74B943BF7C57147250AADE595310387E3BB1A2705E9EC73DE7FABDA5EC0B1141A18798215B9A70F8D688357C833ED869059A2AA3360155EF84426288198D0FBB78223816B17093684C48942ED18FCD351C34E108E5B71D1CE39E318B5D991B650C46A91112E013E1180F2054C7A22429CAB31512BA34EA3AD9B68C5001EB70C993297CCF11914ECAF059922DAEE7D90ACE2567495ADA066E7DA1679CA45DAC1990B17184E7BE2E6A0F26AD77F19855D074F5B37372277484CE30B80A0540173C1B310C3E7B683A487B5D0676218EA1F65FEA444C493FC535E948EAB62252DCC90516BB45B60D4253DB6979FE342DC5CA1B86B01B2D8EBA79B0BC7B6984535616B792BB45F3C0E20B506E0694E1D5BA28FE96D34FE2BE354777D090404DD3508E9F7918FF5593ADB468478CA8A1F6AF752CC76F401E373B71471D9D70F455C8A73E4E7B6714394B1DD0E2A816AF3D5149835DAE477A70DEE0BDAC22F99A04BFB7C2D4AD53079C326F620DFD3F7CED4AB7F2E291507AA046331050F9E2205C52B36CBAEE817C5C3B1FBCDE61C54C8CB7B67E0570FA44728EC8FD091D5CEDC19C6B99840F7A0E49086F707E959D34B30E255B67BBAA24FADE532BF3D21825626E114BD8213170B0C2F01733D4ED420D01EE3ACD5F84DACE674AE7127DB0A80ACE252CAD9ADADDAFAB27281AFD6DDD72DB5AF878326C45D7DB1EFF8BC40895A3473A52461D076881310AD9937307217B5C0448B509EF9BA075936CC09E11B8838D3A6BC5EF9FAEA85A3EC87EEFDF2E38CD9732730085375A4FFC4E0A213B0E1FC3DE2D37F1EDACC3030F617F3459A03BFCF776A05FD3B7FD135782F6D6E7C5E92B56A1316525B26D3AE1CEA3C0C7CF3AA7B1E72B7599A31B50837D79A7AB61B9A9E2B7AABD2D605C97E302EB4B66C0588C24147955EA0892A54D42843568FE0863E7EFEAE336D302E672EA62689B4DAA02DD5BC99D93886EC7F411C53CE1CAEAB59FBC0B06E0E294F1900F8C626C6FF520AE2323DA797CDC120DBC19F7FEBA0E13429508C5B838A0F8B9B28A069C5DD40E2F6CC2C95FC6ACE7E1351516817BD2DC1AE08D498AD2B0BD1D8374942FF31FC6A4689C592244C919C3561E73DD4986FA500000006BBF34F6EE152B64FCDD1CB6848D2DA761798707060431761006E2EBD9312851F4F3DF3C46E10F643DDD58CB3D9F4D371F655EE26271F2DDE84A14CAA6A077DD96AF83849DE6CA8F2F3248902CBF49630C18C3EE3123D951CE9162D0E742B899AF9E5DA8D28A41C7CADF0194CDB09418BF48BF322F8C5E9563524196FA8AB785B43C4EA41A36148028D2F4C7356CDEEB09532CD7F2C80FC36589FF7A9954100C8697AEB014997C3088C242B4F70D26CE7F7E77384A9CF536EC5C5329E08BD6C1D65EFEFC1389A42D16FFB43A0E1D7661220E92A4A59703FB28410E73A677E803D4441929DFD7269E6F77AE8CA8C70B67B250A8728291EA5D4E3F03D505639408C88156DCBECC137142FA3585C09D99B84D8C380A5D29CE2ADA10A25F7CF939FE23288551F37FE2B7233BF97C0F5726B972E087BCBA095957CCD794794A4F50027":"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D":MBEDTLS_ERR_LMS_VERIFY_FAILED +# This test uses data from https://github.com/cisco/hash-sigs due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# signature uses leaf key 1, so must be the second signature generated by the key +# if the signature is to be reproduced. Message data is random. Note that +# hash-sigs stores public keys and signatures in HSS form, which appends a +# 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from +# the signature and the public key before including them in a the test data. +# +# To reproduce the signature: +# * +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * +# * /demo sign tmp/lms message.bin (incorrect signature using leaf node 0) +# * rm message.bin.sig +# * /demo sign tmp/lms message.bin (correct signature using leaf node 1) +# * cat message.bin.sig | xxd +# +# To validate the signature: +# * Save message and signature in binary format +# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the +# HSS levels) +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * verify tmp/lms message.bin +lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS negative test (invalid lms type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type -# (0x4) but an invalid LMS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000700000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has a valid +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad +# input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMOTS type -# (0x4) but an invalid LMS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has a valid +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad +# input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMS type -# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has an +# invalid LMOTS type (0x3) but an invalid LMS type (0x6), and should fail with a +# bad input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types. This test has a valid LMS type -# (0x6) but an invalid LMOTS type, and should fail with a bad input data error. -lms_verify_test:"0000000000000000000000000000000000000000":"000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the data from hash-sigs interop test #1. This test has an +# invalid LMOTS type (0x5) but an invalid LMS type (0x6), and should fail with a +# bad input data error. +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMS and LMOTS types and the leaf ID. In this case, +# This test uses the data from hash-sigs interop test #1. In this case, # the leaf ID is 1024, which is invalid for MBEDTLS_LMS_SHA256_M32_H10. This # test should fail to verify the signature. -lms_verify_test:"0000000000000000000000000000000000000000":"000004000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000600000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_VERIFY_FAILED +lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000040000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test # This test uses a randomly generated LMS public key. It imports the key, and diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 9c966cff4..f69ca9e96 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -97,35 +97,35 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, /* Test negative cases if the input data is valid */ if( expected_rc == 0 ) { - /* Altering first message byte must cause verification failure */ - msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[0] ^= 1; + if( msg->len >= 1 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; - /* Altering last message byte must cause verification failure */ - msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[msg->len - 1] ^= 1; + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + } - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; + if( sig->len >= 1 ) + { + /* Altering first signature byte must cause verification failure */ + sig->x[0] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[0] ^= 1; - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; - - /* Altering last signature byte must cause verification failure */ - sig->x[sig->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[sig->len - 1] ^= 1; + /* Altering last signature byte must cause verification failure */ + sig->x[sig->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + sig->x[sig->len - 1] ^= 1; + } /* Signatures of all sizes must not verify, whether shorter or longer */ for( size = 0; size < sig->len; size++ ) { From 810612e14ec26021f56e065fcdab09600f93fb4e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 13:16:53 +0100 Subject: [PATCH 0262/1574] Update LMS and LMOTS to use TEST_EQUAL Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 56 +++++++++++++------------- tests/suites/test_suite_lms.function | 6 +-- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index b699fcc7b..4821ce5ce 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -38,12 +38,12 @@ void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, mbedtls_lmots_public_init( &pub_ctx ); mbedtls_lmots_private_init( &priv_ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof(sig), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL ), 0 ); + TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)), 0 ); exit: mbedtls_lmots_public_free( &pub_ctx ); @@ -61,12 +61,12 @@ void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed mbedtls_lmots_public_init( &pub_ctx ); mbedtls_lmots_private_init( &priv_ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - NULL, 0, sig, sizeof(sig), NULL ) == 0 ); - TEST_ASSERT( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), NULL ), 0 ); + TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)), 0 ); exit: mbedtls_lmots_public_free( &pub_ctx ); @@ -150,10 +150,10 @@ void lmots_import_export_test ( data_t * pub_key ) size_t exported_pub_key_len; mbedtls_lmots_public_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - sizeof( exported_pub_key ), - &exported_pub_key_len ) == 0 ); + TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + sizeof( exported_pub_key ), + &exported_pub_key_len ), 0 ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_len ); @@ -170,17 +170,17 @@ void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; mbedtls_lmots_private_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) != 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); exit: mbedtls_lmots_private_free( &ctx ); @@ -200,11 +200,11 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, memset( sig, 0x7E, sizeof( sig ) ); mbedtls_lmots_private_init( &ctx ); - TEST_ASSERT( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ) == 0 ); - TEST_ASSERT( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len ), 0 ); + TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); exit: mbedtls_lmots_private_free( &ctx ); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index f69ca9e96..7ba02c58a 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -155,9 +155,9 @@ void lms_import_export_test ( data_t * pub_key ) uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; mbedtls_lms_public_init(&ctx); - TEST_ASSERT( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ) == 0 ); - TEST_ASSERT( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - sizeof(exported_pub_key), NULL ) == 0 ); + TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + sizeof(exported_pub_key), NULL ), 0 ); ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); From d6adcb61467ee2146f89a0fdc069c47276f278db Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 15:34:56 +0100 Subject: [PATCH 0263/1574] Add negative LMS import/export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 8 +++++-- tests/suites/test_suite_lms.function | 34 +++++++++++++++++++++++----- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 5dd901982..5acf69caf 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -179,5 +179,9 @@ lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91 LMS import/export test # This test uses a randomly generated LMS public key. It imports the key, and # then exports it, and verifies that the exported key is identical to the -# original key. -lms_import_export_test:"00000006000000046B0927585C8547228D495361D73B970C287A2254BF8F1B170E55ACC9520A56CE5D2C711B6617718B49247D28CCC6D11D" +# original key. It also tests handling of too-small key export buffers. +lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 + +LMS import/export negative test #1 +# This test uses the randomly generated LMS public key +lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 7ba02c58a..860304e02 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -149,18 +149,40 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lms_import_export_test ( data_t * pub_key ) +void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) { mbedtls_lms_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)]; + size_t exported_pub_key_buf_size = 0; + size_t exported_pub_key_size = 0; + unsigned char *exported_pub_key = NULL; mbedtls_lms_public_init(&ctx); TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); - TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - sizeof(exported_pub_key), NULL ), 0 ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + if( expected_import_rc == 0 ) + { + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10); + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); + + TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), + exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + + /* Export into too-small buffer should fail */ + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) - 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + } exit: mbedtls_lms_public_free( &ctx ); From a6b47c0aace2965c1722923964973b63aef6ac7f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Tue, 11 Oct 2022 16:54:15 +0100 Subject: [PATCH 0264/1574] Add LMS hsslms interop tests Signed-off-by: Raef Coles --- ...shss_sha256_m32_h5_lmots_sha256_n32_w8.prv | Bin 0 -> 71932 bytes tests/suites/test_suite_lms.data | 47 ++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv new file mode 100644 index 0000000000000000000000000000000000000000..db85e01b7d222d0404ea64a43630ca456366cb72 GIT binary patch literal 71932 zcmZtNV{l#H8z|t|_Ag0eqfHt%wr$(CZQDs>+eTwMjcqoKo!))^bLW1#ndz6zbN1Oe zYpqxNGyp2~3m7;U=qCoj!r9rz*7+;&FC_*}Mpjv0!O7AsB{_vQFvT~8CI-&M)4|l( z-o!K|2I>D&R~Jhg0Aql#pp3Y@lB9}+tiFn-f++AZX_(LyrIZ*%dl%>b_eu+x7%UlC zd6oYkhx#7}mjK>e-@?$@!p71lB?iUb!PE}8FMVeV!|!bDz-42=ZBwL4V!$m@q!D7E zlto2FQiMrZ$V$-(xSj0YoaG*EWBe+i#yOz8~^T{#92bGI|%m^{OPjM+mggltDsECs(W zG()l7cJ5W+%<6i603qOpCYZarri6^zp;V-hjl)^-zG>cHmcpS+h~mx983l;u*H&Mu zoQ!b;LYfs-E%T#^`!E;k8yY6CKPoplm$6#_ImMiJvMY!lr@Dd&ft0M`rrQkHsF+so zY?TY6lgPxDjatTxuo+&OAiL=}^FM&Fcf8_eOypC1 zdA@uIl57f)Kb0QqBQSnW3+T&()>{SL3oMI79#-o9o|-MB3~kOHuf}a%ZcuM;qDOX9 zUHGG4G(h5Cqgkf(eKN|K&BV1ERFEc`f20!NA_yDd!iPL>{?!M_E)2J8r}EFB#qq!O zFWk?jzl$BO(Pn3b_OzT5JGj8n0CE+l3@19b^-Q9jrY7EFin-#by8)&&Fc3rQCw+?J z3l9*1DGyrVm`iF_)BoUw&Gg%~Wx{bcViDWj%o$oqg9GOPLXR|%c`bMqXTJljei@tk z3SsH+yyO!s{yBf(2Ofes43L#gI>OJiLpHEecfHKa*Wq9@2Sx(CsOBwOlj5-!bkG{< zyB%}&V&9Nl7>Yr`sx1|+S(X@KG?`IqL5t4Qmf<}CgpfVAR&3q*=V(~r+1edR2FI32 z;pL0b&G@k<_<=?yHb79`Ehj$_AcA^koN!jSIhR*(2b$!s#dP2@Q6_fvj7tGh@Zw4& zB>%}RECy8_A!Zab?!V9KHDJ|e>MgDyC-mI|ApOG(69N&xj!MUuMBw4bDleQxIn+M` zLkQVC6ukUjX#lb$p-exy&>};!tZsGlHJZ2PWhIn*=>>`erAB=vq@g^LyaBhoU1yBohfoqfB8?WnSGBt8CgFEl70y|%OpNuEr%;gsp&b{ z!N(Ku*EZ1Ew(2KC)hRhkzHh*V-Vy^uo=)XJ#qP%hcjh40gEn_z(eZuV=E6fyzdmo* zz+zAW9T)fP2s?!hUssW3=$JjUWtz*yIkk{<#GvXgCjv;l&gVEhR)2zAF)ng6Rn z^@Mb>Vb9Ty|(3Qg;%MKuEInf(_+;vRwtZ;F4v=-u{ z_;2w1#2N5r&kmefEa;*DA?JU1DsR80NAxi1iIwBS_BxK7twJSIp<)8-aj$LZ1;~I( z(rreFfaUxabU}6Y!3cGj#bhIT(NQmio&!s#5h#!?n~3r{VGoiu^lKlEVJ{YQZs=Tp zWm_uqp+z9m!V?Sv$X{yt9wakjuxBKOy#bEY;*%|X6Sstnw%nfTt0sCCd4TwIr^&s( zp8348AtSq#qwp3^Y|tH!x%)SU2c5yA|G5STq<_!TUSDD^M%!wjWxD9Ef*;Z!wKog~ z5j93`fj_UA0HUuQoB2RtdJk7Jxg3SeTeAP$tbKd56?Tmbsl}UL1zLdJPZNaX5v)Yo zta*%oS%$T?7-@nBlr4wb)DYg|UABw>N$g;M6VoR1eLO011f%`_$5ZgPthmI&NMN>xDU7;)?hutQ)=Y5rJz*Ol)N~O#zvo{$P));ah)C74 zncSt(GzGft2aq$V|6nyFf&?vDRwCRrgAKqwtFur0l5@ivXndUaf{{*8KL9+1}v zz4CoaoG^NT21O~{P{F|0+W_TQ3$W(>zy0D%75LJIGSh-HJ0$7nbq{?2x$lUU{N4DW zhZmcoE#c_nSt>REUlh&OR*|zQ$IC^o96)du&uN0hkBp~e;~VCkq_ zIuGVhJwQp=^Htu}6Rf$yD?UIaNo zy7uu=iaL!SIec=c2$%~U8&$}h!T>2qFnw+9MxRE@yikdJg;vE9LR>v!$LR}bU9hFF zq5cmb44Wn~h*Pjzn-pymW zSMTO^w}J58E53OsB}ITdR7RFee3L?@P;wmMFW0pEQ|h9^+u|7YY5g=vUi8@v5N%zJ znS0gU2lUJBfABAo3J?@=@L_7G}+T9ttFDkq#-Qd~Z{GmuX0!Mzm%L4;Gd;fP^mwyS}Ie zOLwS4s;X)tswK0( z|6%SPC7J94|G^bd->Yf>3X)}p2TOj!Ve+5Y1`8=+y@S9eX?g-Xg)Y1m}^zakUe$Y|sC zQk$d#fbiXwRTbZGTeC2KAo?IR#9R(Rt2$l<_0~(=6%{SKLjq)F+}*YCWmx+j*|UZ( zPzJAivoc$lZ${dK^%QQ~NrDt0T=VFNsmOZ9)C3QTWX{rA!P=f&=-QtV`P9Yk;)#Vl z01+xHc4&7B1R}TN33e1}q?|fGy}I8ueh9vvjJ9AfXpOQs*p+uRtwza(cS!HJ;mI?D z1IR*>;cEpB|FnRvipcX0K+PysLR#{p?`ib>V#I{ z)&e~}tlqH(AO{J`L8iVuG!`_jD~pe`*933&&UhZyzDZ6i#DYII{{f^!hN-g4i->_+ zQOY6Bnv>~2LqcKJ{e?W8>nZJmssm4=v9!x?xdV8p(ZspsRN| zQ~73^4Ul$>%OJhg`Uo z3h!fM2}ZpwMpQeOXPUzvNT;?0kPW@EzV>A1|6FQ^_RYT8G6kccd9;j)R+si&+SIu_ zNdqJo>x?^W70337-Lj$QOtIq6UuSzf7vr^0#FR+|v)BQE4EwL+LhWf*{aIc_?d*F< zlXBt~53cH~l|>&8`jS!34-nJD)WDwx>x)QIUZzDHn3a2Fogw>dQq71-m;ZWXQa1on zl7yo$O-rV1<)Irm0WmM;-6HjkG5*#IweU9nz*GD!YdU>P9rwP5r&e8P;!3--&6M3EX?~@q$U389U!B0HT9{FJoA(g=%%yDa52^SCpa=i z_g|D3aZb$km=HjakwyK)V4|bhoR4-;E;_ub)U~z7vYbo)srjl)o0Ogb1i>hM$%Lpu z7PY}I;85k;k}7U%k=4L-=*eyAarutrAArPRER|CK_SkgY?kzxqs~+=7gUof(PU1qv zgptN^W>Nx(z{yx!B(ErPV;1ggP4E?NpxS^&-(p<7IeXpd>-kX*KnA~EjY>AoTz%v_ zRu1)u_Vlb8-Rtf*ay|>%Z1RWw1vNjXgqdIM;9?1PWtPF9o0@kW_hiV&sbt5juYC! zNxpW461w!ePP?}#EngoD=j#K=$Cr>KUf6~|-1GaF6rb0f)k=@Nj%lMKJL!7lFCC?@ z0Kxd9mb!j|8oDkY#m-gKhQ8c_z8}A@HL&&ZfRyhi52_AZ((D`1Q^`=*StXg)H+v3i zDV*U7)-Q``5|T#W}rwa>7nS4j-7l~vQ;L1{U|k|R1rn5Y?cHa zNc;p_cR+FbIf$gcbJc9gtg!K?b}9a(iqio=j=_@Tc|w!iung;a?ymZ%10qQe3H9+T zwQ?v=ATIv{B|cWO-0APx*C`>SS9MNQo#W1TA>~^f8ez3|HgxlPj*kH0&G~ZRl@G`D zm6n@ek3jv!)5MD+P9xs1@#VP9|G=~zAklI9tX!>y65;Urjc?X-xel zmEJT91s%1Y_~{3l@Ix}_JiopSMRPlZdq|c>rup7w59a@?oO1O92>!qj9>GAanE=8K zyL~Uo&d*&R*X6Rq&1@8#KTpdvCIE>%+rCP~!HECeXi~0$CtUFf^?nTz^1JhRzS&c= ztd|}jQm|nbU;0|fmU#dBR##;_ws5A87(%9ddTJ;nyI;{B1`wXjwRVqh&Q;H=L8m<( z{t1Wo;4U6uw;uqBFJ@Mm(7`fG>+2QE=w7uD(iCeY6~l3JB#aEXB*@MH zh(<*bh4ej9HpYF2c*4CBHQDR&Vd4zl`XtFC))Y>196-j1t`IPakaW&T4j@P%Cl0AL zrVsRaY`);PmE(n(nL_|X%LMtg2CkXdYD668m9zg+N*gWlrte|kTT_3Bij59v89la3 zY`W1)xi5NLN(6aM=#mM(h^LIk$lMrX_kD%dZUP9`@_`oQ%>MW9YxqHx&9S{pdt;RX zA&)j0X<#1d#SK{islg_2cx9`MeXUUtL1w8j!}B|wrpN8H1%LKTV$M zpfep8mFXV_7TM_&Cm3Y3^Zi+oM$Mv(dq=xlS=Zzh0ZK)Rta(uz z%i=KScN44NF*1k{j;)g0EzZtcK3W| zLzl8>5%-5xCz`M)#!I>H*ovi8Lss$D1;skNZ9nY}YnjM1?YJ_=7}B*tokt^v`ed8U zcY@#0R^1^#>94+7}nN8+s*{kjxnn7=Lw}kkOd1eG1^(O474j@|og|Yin!`2B{ zg-skv_;O&fn7aGlin%8EuzT#>xT01=UhUoK=^No*BwN1PknN)p>!ex9=dM47r?G%FNGx1|HYv0*y6u4|Trimz~{r$R73<~h!Wu1V9^il9_3hI7K$EM)V*OpdPl=7O-6 zm}UHMF8FI`X&CpGH5LtY6vgb7IJWeF=<%Q0a?oXR;m!cTXpQY@ z-k;;s2;7moMPHSXuG&?oDd87bctL#Mibi?{h`xMQ2a|Ma&j`w$ZkM>={>L|uv=CR= z{_5b)lpS9~P#=)U2s6@ibveOFXi+2Sm7xh8X)u#7yR-ukGJ9h>Z9N$< z5+gQ)=gG1gl&KM=egl)~90GTjGDj|gGIc2}Dpjq5)JA*d9is1h8WYA?( zcr1Q35DJhSW9N-d@mUN$0~v|2$JHYNJqwp<9%O7o0&vF6t47c=nlkCJm|yNgM#8~E z_*CDJFPDmsE_k@dU( zYVqfgx6Dl35I8_rk*=<3t>P^&nW%Mp8g(Yzdr=(rw0?9e%;a^ z-|xNU`~P-|@o1^D?st7VhK7yM8ai7318PtMKGmqajd8p+SVi0*ew|tWmqH9*w-hiD z=COwLmA(@6xh(50njuD~4CyNHrBf;+K9@Ag4MY{2nr$wcf(Ms1y8-0+)H9TkfBjci zEv_x`^C>lQAtYhw&Q28g?>C2eH)lbBY#YL~DmDalb;L4kL+R%U?O`3ms7NJd zwXR$R1B8Te>ySBNBOD!~6(?Wvg5q7O%vOwg=>6XYfg~kRvH|3?@OH(rxHb@h+IKh9 zY(BY`^;Cepl>F;UM>StV~`RIMOyw4Fx>qqNI8&qI==$Mgy$fU!fX7pk)y8S0E`^! z)@ldybUG_BA6bl3QU`9%d3nmh7-Y-;=@NL=_3!hs)=9jLc| z4@NRrV}<*G;ozTR0i~?eSQg*E{k4aJCFs>$%&V&?la+R=c9OYuVbg)}SACiQIomtU zhH*;BHFw(S=`9XjBY-2@+9Y^{{-@rw&xF)V43LKyV_D7*o!bvO9OH*XyCqTSKKPrD&tRMd; zZ}o&$zbul*p?B(IRKhgl+~26qpd&CM`*-cm9zZV$|&9FY=GIdV0e+& z`7sv(s>p}~duSQId4$vm{@3&-H%1fmHKvh+nLC9!y+JrfCLNU3e8{~omb#Vo0%1~c zFEFfWRt&A|ht`Jbuv)$GcatF10Fs;={`clkMlo-B;QLdP2lntYk)HdB$(aT_jsaK5 z5GdA>oK%=mGLmdV&5aUt6V*Hmii7ouCS2ULIhep$j6s7kNiKCXI}Rfq%c^Rc2d%uR zDqjzLNCHo>H>2$A-Oo#W(1QmCTklg#y1zeH{?PC<*jxTS;xAF#a7ZU|;v1L3Q%DAd zLu-jAnnH-ogN`BglkT@Rm7+nICo%f+r7v1e{zULiJ+pU; zBI^?0YxT(p*8g7it+g8<@>`fnmf-0BO0p ziL5zj3yUTTZ)ywQ!RtVJ`iNZK4G`0X-)sMpLkEzt^CP>VrWlAM?O%r(tpWirm~4bs zQND9OieVw)kEcNm$4#PU*Evd~nRxFR;{y+z3^HS%8Kp#8d6=_xFU&5yEI@L;OEXTf zy+Rn9@X*SJ?_Jkcv9o!8LQU4BGr=qmJhlLY2E#hR!j`ruaV4O+bmkoW?D0z1d_j__ zjD-COpE(m$`eoQBe~ho~q+Z+%W#v3_iBkL~!|REMx~y@L7MkWt2W`ypxw2bNO@8#y z^mRshQP_5T0t_Ohaj>MHS2cm>x?V&1BE52Zj*Z)X;yJe#BoR0p>BSvJ5bhH!(X8ub^Fd5YRoN+L0T7H?5abF8= zo=GB|9G=2x)guE) zNc^>&VPr+>-~>^e*&4;z?Bflzuq0VExVn?dPi ze#z;=HTVW^=8=>Fowwk>sP7~X)jH(sSRnvuP!#f6qEm<1C#!pJevJGK;4Tq^N)XAa zxDEWFt2zye-a+)2CS+Rmm&h1&eY+pjYDp4u<-sE?u14!W%a7bf@Bwn+z_opVJYXN| zftYTGY-dQJ-B7A9orH3(T_NXKgn4nI?cHN8KW*$xrkC=*R&449>x}K<$^6xq+W^n;?DF-w~dY7 z2Xqxha#>Ddvz=jVi4!;#Dvt5P>&yqUG@`@_X^8J=jZ^?(+cb>|xhT38#zEe%eBbS~ zTjTnqT@ra(Wnqc$fT{si9-aSkhC&!|AA1=!u(s=M0xZi=TL)$<{*{9_!|jnHfYL-^ z*bvcF$`*-j+dHO^tHq>-jPm0><3cEA#zqx*)*C30K_=;~4>J><)GTbg6I--I(~Q&n z@*UET<6W-caS~!k1IXe%B0n7SU_eZl7!tuoad_F=2kiVUl>i3@S7-`H0VtCQhn_`U z*{xQ~uhzg(JnFI68^DLE!R(D8!@WZNv&g3g2)MxSo2;F(xuek5oN0lg2uQS^r=X8o z7qI=VE`$BJ4uJIbmH!a`$0L@2u4SI@D`Nd*g;xvEzshuc`2rC3w0X$C3Jeu@|F$DWyZDqF{m&MPZlw^ke6vkW zvXDW20CrTsdTaUgC&zb2PXnhWRDr5GoXnHJ5SbT))or|&XMm825^6=_2EZ5A-ZVER zIP<(g6+dm*9;s@Y;Y{gn8i9gpQvrt%1bYk0Ra?<>8pF7rJkpg$N?YPcajjjhB~Jk= zKy+xs{yAz$QPZ1ul9v7+2}!xEz8R5Zl8Sf2%&E%oD+b8Nh1569gh$m4b~p{b>Nmtg zns46oLkzkuu}ZQ&n@gaIOm#5tys(TuI5&ZQ=c^yBDe?L-GVudJmDZy+RlUV7s5(r; zPAxF;cd+fw?!T++Dr5U$ZAs~14BvlCO; z87LHxt^_APTVkizi-dRspYZ!mazvmd3y8@9La*8A{rUIU@!Qs7dvB9vH_Ti9w$GlQ ztClm^u`!IK2tXc>M-Pvo90?>=~Ieo7vWgdZSD5Bn1ixfbJt?M`}T3| zT5W%ha<7unasM&z9Yr(FfK5}VU|}#Qcu4&HHEaZqZMxMBeJlR=R7=u8$T)wB1@URA zB-jm`!2lpUZ{8<-*!9`2DvsG4_;|^8oL~4q8_=*(Du@!{%L1DK;sQO1BLx{ODsm7C z_0!}sQAgQ9fm7kgR@^u*3-dtDA0R3-^;hDzZ*HF&C?qw`RlJbd=wCc7$G(`;NPAs- z%DDo>wY!WZF|(RvbzJ_DD~NVELR6(oRIAIj)finv`S=NRj_O6Or&dhI$WhUmmZiBO z_?qyy=P->mgi3bV#oZh*W&rZkZp2lq8`iTNw+4-H8Yx{VO_0+R*b$%OuQk^ZCW;4; zk_B)Zh(QJ(PYakrk(;#493+b=$<0(BuHOxsU9|e3;fj&KFK@IXn)o`M^GW9vwUf}J zPr1iwL9pnVEGd_c97 z5vPi5y}}nXjN6&vAXNF>tVBd_QXLX4Q8TKbc0>(kYT_*)v%ab72W67~;=Zyb-j2;6 zSf6|ePTF2=eJfS_^!kUkY_y$UP8a0*+*aa zM2gGlMIF|;evrw0*-^9S-~rPHZ7F*_DmRi!A-p;g4e-`)4(Ih&j2v>x!W7W<2M9A$ zPM~tD2j_b>0%vkA7+(s`g0Og~M@GenieM7^WqnXZ-HFW;E zAZQ^F;|w3a6|HShkI7pJEBKpAI355y`! z8j!VZ?S#M7gbIwO$;*@J;vmkG)LzTWj6XXSXO63Hoz;hSLZnfv7HgfQ2@ zR!!EDs3k&n7dfb(=4vGErL56Z4Zt4Q`@!NGbw#iJTMMuBy!y;psP$LQ!*GcnvORzmgBLu5>3~sr;fD=BU+)c&rTFNgNl4^U59<&5us|EBSBSj=hNi)oJx)}g4q!g zmn-Yy_q;B9`*)qLmglcu6W#l_0OGJkJA&B7?yyPLn|dYY?Eh~7u~tCXnFj{$qPhTP zPz)ehJcsDP2*WVw>MVg5`sR&9lf8LYcZHt(^CYNsxQw7esR(}vl~;NS%(mb&P`h@4 zgNAD7m&G28s2AKXq0gVjlK{C#vVEY^>0Sos`}B6S`hComz#t*Lb9^)frt%nG%L952 z3kfx$oXU$Ou#!#Ow2TKKbRb35HXu=v2gQG<#&X5M3Uv z5)}_`JEWN!I!pyX%=ksl%Ef)?mRg9qHCQz0eN|d4XV2vrmCp3b80u(~6Vo2$V@StThL`N5~Pjvft8>l)HY(Q${1;LDGcj0h5 z4`o0hOyo`skQ>gwf`P6Cz>vJ@Bch`)O9~DH%zrVA)2$U%H)HP$J(M3^*Ynrxfk1Md^3|TD> z%~F7(_weEu&9v&SHDqf@6~@`zaK8Ogr4GuZ-(s?>Utbmf^Z*a`Z#<|GlMQI$?Jt%H&hQ}MV?_O#^DFns4fWjlQI~*7x|>oM zw2bG*-fy@)qNi^8(En|gSf71X_G9up%}H2ARQ?t>G2sPB1vxU0v2JIlPRo6$!r+P5 z=M3Kx_We%9;562eC||J!Ku%93uf1seo#@aqfG_P<-KI45qro>frYt|OdQFItkpl#p z{1<1w4t9jb(OlDllAv<-dae0_DPyA>(P-c$CL!q9A2;SkM%N$x$E1O{i%Da5>=a7& z%kh{ZBYv6TcgxELsN4#emn%t|dW85eX5DCmrjtqbTfLAF$c&%(g**X!h^YsVe=aJ$ z0Z@+EP=4k=EIv}aY28!7J!vRV?cQ@MNK<-2EtJ>d%&0ND+3=z!(QZb+bhoU!?I`ZS zH#fu|Q58gX!5RQ@^AJseYY}-{=cd4#p2KLN?PcIm3};U>iqqyuv`K&l2nEDKz*##z zXIeL^v|*__3tgB2!(%{JHnojPe>-gp8bJQ;V-VSe%1N$~`f#(|OJor`A0QJ{dSMP* zL|BRF-Gkz8SpM7O1`!e%9e%MS+2=zQ`M&ZoX3^{w;e+4rWYr5AfT)+Kn@|LjY%lNU7H;oKd^TgGUad zx`qiLpYzpY;;}Zw$19SgwR(AdquJic17WjRb{?4}u^XJABrH=wx+i99aM@QUzV5$w z3(3jF%2oK~cT&#&si(Po)(Jp*kc2`L^IHQ;=v!qOF_dX@6UaUDF2s5piCxfA2Yz4! zM2#)dA+nY}4s)>9sqc+|!M-Iwh`VMj9H|`XPfc>E1V9Lts2M+p`+sV75g+tO<^F<& zy`S?JW^92MOQhm-(8~dcL+%n^PG^<7g(gbf6tArkK@1#vgp;fze35DNhc!QFFo>7t zfaXa0WXr97LKc}G!!4O*qS-JQrEKfX_#Zp?We`9V$p%M@>T9rZ()Zi;x~n7^WGICP zpzb0}u7Bw>T*f;BWW`T74Z|p$o{agA2-;~Z^zON}DTL!MV!S@vGrFJ$66qbZYC(|{&i;l) zUnrxCxVz6CfTR|Q|AKXw=3M{JSLV2nB+$*^+&ZvW7rl!V<`E3qmKh)o(0%g@!T!C~ z2=$MqnId8zSKpHR7h}{Dq6Haq8u!ovBFDaBNa~Y8H|!&RH8#9(tD0?uT&(Ix`1|l= z9a_FD6(E+K4-&IeVUFE%;F&MD!3p*vzNt@*@~t=%Exvt69-v*P^2C7YMAT$)&q-#l ziB=0?^2iKx>XI(>2k!E}(ki|Lfz8xMR}R=rDs!5 z5464M*tK!B>}F;aFq=`wH$vX;B^MG}kX?GJkD#=KiXe{w!ah(7$xi6he{JZUx#Txx z5Y{*uw}!kk^haBw9%Ju%A0TN9?sM`IRBinM7|gn#BhXzry~gXSftvw-Nz)rGwV-4F zMM(^@)R+Ng4>#unX3pjA+XQs~)^68;d{N~&&Cv;hn;Uq#;b()e-Py6HThP=ANz1~(hF`+*p-(w{1RU+nO0g`&B553vq zscVB*J$~1}bnTqNj`ABAdbVtdY#@91BU8=0RvixI?qFF;0DneAiGo801+ z?vHEnvf{{wiQN97bxe5Fe@F$bk%Ri_vD>0@Xs>h*yr4CbWRu|sVyUO3JSo&CQ)jFY zj+tA~vriT;{Flt zlmJpDPr#q}Gm|)Mdayf>|U_*B0VBgnXEKhyM#e_R6YaQlbi{zr_qB$!X+G zafB;S0ufV;7++cfC9v~6`2Q<1p4b9N z#D0?vnzl6pSd8A;h6f!VNnkRDpcV+j&!@>L)xt6|l2zwr?0_}-YGZ;9)U*M9Q# zdaDkr@c3Kl$+4_$^8w@_crs58#wmQTvmQpZyXLWt&eGn`h356**_y>;b_xO@znl$u z;Ls5pHR~20_-w)lm5!hG|48X__OjmJj%`tchT3pMO{J_XWru%Tor$zL&K;7lmUzq; zaVuMfxstqIF+t&w_GlJzQg*_9Ydr7$K_m0s(O0-1j9HvH1C_tZMI(n0AjS7*`MD92 z4Nx}HZC$LNmK#O2l)ZO8HRwsuStafe2LR!}h0$eRX&EG@EOp}cVnPke)2Yjt;ztpI z9d>vXJOe!s_^(pHm!r&P(phl3VnlkzhfdC!XXwVlbVtT{QTlJDJ3zp>u?yrPNdJyX z93^LURG4C{A?`|3!`aNNuzLG*S~md1LN4Cv?M8T@31Z>1|AL?i%6MzEKU=Ip51m3+ zNO==9YbMwd(cZ0TEg8T5YT&b&g7;?|rdx0av2OrdyInH?7j*0$JSH--HQa*J=1@$Y z32agcP;?tt6YuN624ZZl7+Tu^;&{%lrE>hRtV<~%z}$oa_f3PU3#K>~1u-4`3v(G` zEI=lkZauZir9Gb`*@{w*Tm>5*6@NKmxr$nP52Jj&{scWrDX}7k@HaTcp#-1#sy=9Q zR!x>f*nF$T_Ko(Km`@5m8z3C=I#McQG3}N z-}zyl{iHmcOf$Y+x8FI=uoJ`lDw+6zq#B9~8X~;Lu(h$`f!*PR!A)mSiZkP14B#GB zTRKaLe$zp$Jpzq7l}8LRDoF$+dE^huQB5|v&lI%|onY4TGE7_Ud^zzz6&bPZLs6~a z`%7TD&~<3UtsnUM*mRk}n~^1J9NKUci8(FvX!4tRh-qIC}?giupEb}{8< z7BF396E#|mp(Uw9yEkrO*>A6bNX(cvvi9VGX($C+><#7^Ec36ORZ^INIp8sJxpw^k)ZP=a3*etu(5)qo{CIrY(+UIREF8n8_4;|w|EbMD!Gi{1=z{~LO<7_5CEA${A$+M4s;!zN zsH2zi!`bHK`+lyV%^=WtIkx)rv1C(SRgJMN{-wb`NKaoZEB#NlDRHg(*D!!UFNB{5 zRzT@M()a8N>?37-p-^}XMmy;j3}W-}BKN!m2r(GNs7;^JX}Cy$SoV6aQ#!tewv{9P zdENlc*=%R~FMzyy-g=-7yF|)qA55Rh+A6tu8}Mc!Xx3n9v-I44vL^$?htF^JH|;je z2#k}S-$bP{UWc^bnbSEoJ*#=Du$(ywKrX2=W?_BQ5q$0+gl0e9*`3{D40qPXEGi}F76F}jdSV;DBhWvq_;|35{s>eZ&fC+^sNf?KY~l|S z4dK^>Vvmq9hwq$xS-58y@->e;26=YB;Ra7IG3Ma;=3`4yYRv zW0r8f@rol@BOh!_S>qNa*@5nbt!*jJRjY5cuBoZQXHEH zFG^1l=q9H2hPRm(QfAQDT4*{PDo2Hqu#)tM3fbD|2K52*N%gpt9cSo5NC=#ZF@{qa z?Xi``Bm6A!ZDbw{@=Kr$8$=<ZWkl)Q_X#M4lnIs9yQY!3sRNe218&~LvE0?aFhr1BCpeSY0_x18} z=(_7|`R{1t%9UH!0`g{Y|23XyJqp^2M?ft=LTs|wSM)3K8jb#gPR73C&+YrE@KbzC z>V0=r0w(YXw0BFH6rC9`B3;A~We2oQb*{bA*cGQsO>=I~5d?+C9|ZxD2}?2k)F@}b7Mp5_Q`FeMt?kg4hTp1wLT61z z@mx6E7yty7R8UWy*YV11wgBFLZVcgjA60s%Xy)H5c~QcVvq>3%=;6Fbr6#Vd(dzFc zQs--dIU7f7NMmgV(o*dzQXc>A2Z&Yr{RcBP6_>=H-{WeTzv~+lt?$eXH|J#j5>X{) z>sJ7TGLk>$upxeZmx%Li&Fv%cDclx3@zB;Qo{ZYk*x2$nK;lAHh0mdsIkK*8cNodf zMXHC-8^gz@PJdzVE{W=oy931M)4{37n~vBt6+ZxJMRB*qpSLzsSS|K#&Djs#l@+ux z_jgFi9-A)5U_Xfh)5{m@PUZ#vbEDlz`LW3?X2vG23y|9g$;#JC1w7rMA3cUSEUyoL zEB1s)xu>Ff!tw|4hPVI%v+G&P_pbfPx*an00Ij1Uz?bH4r_Y@q!LWEns?ZJ^FXEZg zmF*<8ml>YWW|J!D(Qk5^8<75x6{NPeyw^4V1$u&tUsO_EhPs7gzyH&zJn8-F`EBLD zje(h`MGPv)EYcHPfJ{{-_no!k%i_0cPoU;$VZu1NAq|SJaVhH5_#u4l0F8?vTh-A` zkhP^@3P|-1wbm;h)4f_OzRa(EJjNmtW+fN{L|^8!gw2QdP`+rUFA>@S^>0GJ_m7At zdbEKhW==FQUx45i7h-X46nK3}iSRQ!D#YsS$J&%foDJYt|dp9H%x7{{6VUPY`MSP}c#s$NO@0 zIYT>Y7%xDoqaVf-_n`-D2DHev8`bmCFW?(=Nl>n%<(!*q;{`yOa8>wUpsi(6L)bg(N zguDPE_S3WP-R0Tk>93kKq~@<+ju3U_CuzPJqB$6ePP87-vn)%&nM3P2Z4N%^d@E$Q zwPjwhjS?*gx~Z$&*?1^2ThPE%TF2tLufDj@AvNtZM&W@$Q9uln2SL|pwE->?IldZH zGvM=Dyzrrcd6+kASus8}%>X17!`}bW-7efvr9l&wgvY-g ze|R4~2WQ2)uo+{1UIaAVGNm!nvf-2uWf#oC4uPmOXIL8T{cZqZf(e1eFM*5$$|RFe z@r%Nn9}f?jcRcI+Q0Ziwaf-~4W3$Hp4su`FQvTtR=PRJ(WqT^cWiq2#gQlu-4qv8532E5O^ zKQ;g|=RCs)W|tln@JzvTQy>SS68^!xp?{prB$h&kodO3c2(W}_B34aY4dVCRKAbdy z7p;WQR(vXUFAfctYv@V(@BrfAqDXa$MZzIBxkb$wBB@jrXq2vTfvYS6^=CYaP#M%J z7$IKU#r$wY3aWnlG5QfnvTZw*i6TpBlx;m(zkx;5;&LF>mW}|#6C+dy6Zr>q(~Kwi6NieZ9pi^AuVEfMm+V zs#k;0Y=;HurC@ny1Rgg)tCE1f{bBfW(y>+0O$LxP0oxXd5LZnF2*C)%IChjJs=~kD zgXgATbUI(b}zmk#?Bv#@s3q>03EZ2=qjF9VoyTo6W{KcUBBUmG{7$#;#I}%J8_!koF|! ziTQiz#puidWVmYnl=fMuIJZtKetLUP^x}uJ7s)k0J+-1$cBTJFIzXz}F48O0zJ(zk z=6f-;?jrmQ^kB+ir1^mn_n#}-iyjX^&c4BwKGLlfdQFNi62+RWwK~CH3N;$ap7>O& zH+r!50R$F@=~~GlkT1O-O0{(^rDx4aU-SOSNFXpp>zB~h(H20~W6{jn2kw$S(ZiY9 zkk#q7rmBcziBt2wBliEr(bBU6NHaZKwT8VE_3+NOLF8t{yB*T56W2BMdz^WJ>oieQ z&}oe5`X~IKgG&TScBPBEf7nsgTk));_9z1d#9Ehs=l_a)%H8?PZ|wS)jwwUELg2yH zhq$`r-%5wDcfO%0?f3A`16K)A>UWMy>PJ=EF~XWkZ~mcltI*?w;1DCaRucS{%?Ron zlT&#aT)ia;TxY5eE`PydVK<>LH0TW%NeR@an;Q0J0z}Gk2KCZ!3V+C!JYktoPAmSJ z>+4zmA~JV8tggRV4=4mtO5<0u^K(HZFfbw3D(90_vvI*eYB9jhTVPhdwn=~{N_vGB zbBx5Tyf!JVV0!i831ZXU!!+Y|(N#$8dUub@pvt4Cqpn&hX(f*;Ve(O?99_ln&4;up zJpAaAXZs^rY1J1XT?y`~R74Q2TIQa;Y^&UTm_PTE;#S~`pQh7K>##yi08;XBfVoS9 z)h5st`5l5++pryV|0`MKLzfUS{dGDoTo*t#ASuetm$|iq&pIg$*e)&8z#BWMnEw6S z$HW##7~2R0U8VeSsFAyXRb7kA3>)gAioS#~+01&_q){3+YS!Bb)bafvj_x_GkN*z< zc(%V`)w0di;B^6J3NA!WfpD7wb4mda#I~{#`i$evpF4g< z_vl>IowGxz3Q>X4m+b|F72ngrOhT^2qJt2_;PFqmK6-^{bELU#XMp0 zDRBO)Jo;3dJ_7jM2fmcs5y3=B6-}*5Y0Hl_~RD63qZccSe>=7w-Eoss&BL;KZGe$ zGwimDD|;Hs4aS?bp9b4p>X|sNz{{$);SI0aH@*G3%JV6zm*#!uz%K~Y^|-fs0I~J1 zUn527lx97Y{2e@3xVlgok>lEF_Ard)#l{o=2+mYl*;93I;1};O{gsbfueDgHED~aF ze23S_b#+;{C7i%nkdug(22HvWy{iRV$zI=y$|;qXHs)s^D-9#~jn$ViXMhlEr^qvi zc3ouc-94<0SDaFj(9CIH{>Qbg=*HCc^_&DC5=W-un&XG7j5vF_q)O@|NH@Aa4;K+C z#c#7o-0_3JKqk7f#B5w|r~kw=F^{ONYNT&oK{c}u7aK2Feik9qa|w{)PVOb6b0(sJ zih~2jF*TkEI{1=){DIsX@u@?VkBk2gJB-h0Y*Cd?|Rfx{Ic-?h^9wAWIa;vENMOgnth@-J>xfd?E13lFK}WdA#)Mx)gf%rn5#i(zfU1K z0TSa|GW{~mjZz$d50yPA){_1C&Iin}6t8bSOG}{Nf2V z%9IoY_udKlMk>Y{8g;s?O#sow zJa68Fe0dXU&s5u}%I8U-Lqz$OL*lBFtI-+zrU9_6o5%J>yUhf z33&x|4B;5@z_n|l%8e==3A7$d3&vROI{Shz&ovb*Nz@@S1Kg%}zm^at(OXR(yak)9%FTzLqp!Sj;~!D;nWXMAgc9 zN#A|EB0R{wi9iFBjRS@xLs#oBN|pBkDL5bE3AkRVId^K6)I4wQn`*NZa64Upnq{x$ zgs{#qW;Mj1gs{jaxyeRH9??Eo6%}UVrX3L=3<1B~^xB*?c7``t8`X-GBlT`R-f5gO zE)Mawdr!)Ng>_O#ui$4T2mX8$sQ+n?;Cp3OA%g?3-yvyDct0V1 zZIO!n(ATHuuqrrfWxoE4tCyparS64>0LXF+e)xZ>y?NW*&eoBkGHmf@0i;WY9)uqp zAfZlh(ZOD=9iHz3`TQftMWVk?9TH)xP|FdvNmMu^uIZX^B>rVAK=2P6QPDSy_r=oZ zO_aU-75j|LXjjzh%trA&QG20S)&bHKO2Q>?LP$1IygPgEW3AcS?VM8i*Md)0M+2M2 zMZpOmPrYME3Lg_yRu!i>loSqFRa9hCHWIdX$NJ#tIrWghg^8Cmsa>-3bA$@J67Z499{|E+g7^Uw zepuYXq~s(?9R4+>`OL8Iok&oO;+lG41U3jD5S~Q}v1<}W|5;w;fB7}=rGMI%1;bhL zzX1`2r?7^6aAC$3HRjtFVf%-qMa`2Ya^c|7>?b1jhPzp)~NH;qx)piH^DRj1ELKE)&Z?E<=J1YF8_NLeADbtAw;L z_nWg6Dt5(JKW8pe^0Drr=22Z$aCh!s61t;%it6j9si_7Slt6x;QM7%R1$}Ng^2r1b ze_61YW!;fhPc9%gIJ}_@woXeVAVs5x7Y7er66fK*?k znVGK5sK|i1GIAn#o`T$roi{^=7N7V$reagzN%keR(J{32hI zbgQtIOMXJY3lW1?K%I8Jx#!e-Ol|rF&ZZ0<`xCkfHO?HglIaee&aL6G3_xUG{;E+~ zyXSVMJzX(#qTe(z@-F$P5svxd;FxB0%zz|CW^F->z1zY@1=2ul)}QL>b5?RVEC5sAm)D*h$^3++R4 zYY0^`K!~}U_!G_?qs0=C1Eh-i`C_wY^bv5cGHrbM3p3*IP5=^(?Gi6^T;}P{%LY9p z)e}Ta>rQYwBNM z0?0*C$kbi%yA4bn8&;t;Jn%X!0t4n60D%;fr_%7q^i`m zN>JG-G2A$P1zSrv8!r^t>l(|-uX3xOgdepK3F2fiuS^BqQC{%X2VB71sHVHDpj1Us ztQ32(SGYFa?Bd_5l^xy{(U^>7R8V~mwz-7$(hOy6wK~E-xJp=E+XRU|lwQ}b)ZJxx zA~rBBzb63X(K38WGi5{TqbZKlOI3rYCw4S`at6wT-VlTav3ub;K&}J+vDeK0H;;*n zEpRo$Q;dJh)M!XmPNuk;ml@u8dI}KuxBuWoJ;gbf2$#73VUcOMs$p;`i^2~<-86js zoU3^NkTO)N8@CH%@O6Nt@%TyXf4n=)Of>=k&w>jP)(~$5&)!b zv1XO`BUR%at<*8DME(MSw*u1q#w`+JtFx6dt1Q?D{9*nOrSr|>EO^CJi3F+MIUv85 zdZ&j^pl3if!qhmk03enPati^n${n1! z%JU*^P$y6%xv!2yPJLwPu(RUU-6S+&-uMolI<#}><+2mw8}9kK{=i}CF5_L?b3FU# zB$d7@8i%@XssLGT_R2jpm#x3+?yh&L-4XE!(|a~t#~BJlm~BMwhJa~fK=}53uP#p?pl9|yF?C``8k9PCu(nTs`3Nv z6Oy&qI08U$R5$o8mfwCFj4n>4`<+NQ)ShGU=U9hTpoIvlkNkEXDZ7o)6Cysv!|*L^0CQ;eVjdC_HtZ~AS3s^5K*wb0b)== zw{D!@^QjaWix!zO#||^RsxC&VU`HP=#g|@i8%)CfsBEf@*po9i-~HNFqL0Vzji&eY z6W4b*dXqal9v;9?l=v!%95@#jR?Q<-VPwdn26sa?mArog_e6VDxU7H+MybXq7%H5- zppncqd|MTZ&$fFMKyf8CSb%P;o!RoyX%!&LZP2+o1JYx>Gd~HZC;D^KwUP^?zP+q-RN+KAi=!g~>P~eK5C~5gD z0Kz$b{#PE6W1Y^xF1mj5Zlx;MdX=yqz{J_i8k+ECy(zu(BBZ?EN@e=>#jNFzW~IY zcnh8(q&;bb@hq@#HN;?4VHB+wb?OzU7x`trkq0T+R>uC9lV zGp*K>9XVuD93V?^&J?BHxlPf_2zYxs*(T4XJpx#}pH+EnzLgAw#25es;$Hzu;leY% zNWOLdTbpA|(G(h!aWT!$cVu2(S{f~|f;Zz76}MRMF`~mm`#t<9oHSM^xw*$@ydfR5 z7QTCKjRTNF;h5FASA~`m;rjs>Yb#Zkye2ASdGz!bmGJYhbtEu)Us-Y<6E#Zw8~;3< z^g#J7{jAx~a;z!*NqXe{e)~n1U#XhX>NQ8_u0Kqo5y^|}MtwPy6jjJwi zr8=BoNz(hzhR~$ey&?o|d<-B7ez80%gLg)hW%}7X4<@N!q|?3 zd|^AbD8Au^VpdsA5m*5vRqwQDo6!CbyHn4^Z#m|#BYZ6THBeV-gvJ4tA##D>|59~W zhNvr;ph>8E1EnlX_CS;Gc3q_A(4LXyuQ7IH+71xuxY6Rq?9iYN*UEFh`UI}qmY>%V}ABi~fyW};5#mvjE|2_OkGM^*V} zDT2+CEstnxX;My%_X7ue(wdKA&NBAY_!$7{8G4TVd9|v9B=$>UIutRQD_u-*kW*LF z8yU;WhM^a%;HRU#on3HTJ<05~G1o_j5Cd3{^R*%E+F4)6s?dmBz%ul`m}JS;?7&L6 zH;76i?Jarmi7kn0d?v=}Q{tLo8a){6Mwg7nP$oTEiTjE^n?rj?<*)I6Ny<}07`4(N z>wAW=1c>U3oNZb`hG(<>f?Pq28B?ND!%@KZ27$67Q{PMb9W#I+#QCs=i_q$RAH1T2 zP3(62!5@lu66##!so}@bcwP$zkK*j8azA@@5k$zI`C`*?p?dsJ=8=&T{1q4L%zj$` zf2H&5*;xr!3imZ^>hH_9ILZ-dOG%-nLTn;Ii4$cmDTMF9QAEx#a163hEY6ob8jGsU zCZ@0K(z`pQuiF2ZOx%ex$O44?Lr`nvuU!3m-R1j#+=&RXWSub{im|fLSE~HOueIQi zGL7bY^fJK;-Hwc~n=OMJ9q(~A?^lxS!4U;IV@sn627st+4+QP%LYP-C%c5 z&c$o}cl1}cb-$^H;L_L45AisED9C^Tep*~&)GTWTso>1)d0O5g7 zulw|l06-oOAyQkIh_Lx#mOAG(##hI`j;K>YI^wV;r3qo8Z?^&D>7Th37U_SJslQI+ z2ofX9f15V_8mp&XI`6z7w!w)5qj!V;u>y-&Q=xPJAKCnsQ(KLSL1OFYFr5o*taN`V zPcR%dXk%B2>_*I9va%zus8p%(952()5Dd4FDPP^#`(uM!*pI6O-#?UA}A)8=oC2U>O z*&Ra*93!(&rUYkX!f}~8UGPv`$%eBCB59Cv1{+R9TUikHD|-(23PfUy0MQC?Ftm@z z4J#yIVvmGOC>=OBS>^SbS^48Oa-6qzm;;bo4BPZ@CK&{qwW0(Oca*rb?25m1?b~an!HW?=_6im1TEKA?Y2Oo*mBIir7_T%Rfp~raS-= zbvsee?ZP;46OXwVDF6E}{S5Z*okFf-H2JWhrX$WSK&p7uG)-TP7qH+EsKk5+Hc(VE z)BjNt=~@QX!$elfI0EEW@jp?NgPVHv_qt>o6~qfM?JPo;^IkISM@BjbtQj!dlQZC^ zomS%JTTz#xU{=V(Gnnq-gfaE2z*X`5!uu{M4Uk7>FOnZT*MnYduu_8daVldHe8#+( zb-bfkqqoZnHQ=zHmf1wrPm0+ud_PR{WTo-5ORSdfm?|{Sf0mmTS7yj!01?MVjX?b` z+C!EdVD65I&S&L-+At(TL^u4?-pK~wRYC5D3fuwLR6 zohz(uQ#BQg45VIO^dj@hFEb%E15xT;1rz7rg0wq)G6I_@;F^6h!HXpK4Vs%$E~0?9 ztS79^zrb={_%PuXQVSQIBNRDtViue=&-GW1#$`lFlovv9;C@O{?6FmTY*Qs)xtNU4 z+^)_8ziE6i49A|cl^=wNH%NV_Z)tJ|xVd4!8i}j4Gi~Y@Z z`8Dvk9FetLo zQ~()wC95bE{@WWTmB2)7dWX^My_HLktJ@<5S1IuGBoVAU#1Pbj^^Z?RfySN(kZ_&D#yBYoD5Wl<4^F-t78(sQpPbY=R2Tl!uhz%J@ zKeh5FlO(Gb0e_CMX}MyJA-35S3DjY4EL- zoFiJR2aFOcu~h&PghUc+fbj|5g=zZJ!#CWuv&H9lm#fcjd?MFG_zdw!0MR!b`3kX{ zp{T1lDSGu&?ep8jQge;@<%#}m*H<{v(n^4QmZyfn_iohR$my%LS-b1l@c4TCIMN$3#}+RZra#;etSm4wtZAcNJ_nFjJ_9S)il6b#$y{3bVgV^hhaxjWLQV`+}C= z+PhJg0+1duMsazXWzn$!rTp4jt5?=EW-Ag52?qCET*Xin1+e22YR~AHQFhH~F^Dql z+s#TPg`NC)`cXWXI>lyNqTZVyAocPxDL%un1Ey@o(VHiKqthr7@MgcV+qzXJYyl@d?4|e9+*fX_OC@1ZBvX|r0?+xzw8~Ry>Guh_hb44~-Zgo*}IuR~Vy?e-xgw6MaK{KFi zw1pGCaqPQ$Ck$T~Oar7jsQGgLbg2o4EI68r&J3ex&r9Z1C7da#IX|iWM7tFrt%=sk z*P{dzN@H2^Jx`bSG(J-866m(2rAKnFnqU9_UOxmr|4T;gI&}u3#V9(sZrCP_Q@&pl z2*VM+ywB(*F_XYiWcz4g>~c12g_3CsvaVt>rMZOK$$VEw-3%+BsvE200iw8>n3Kt= zwEWO`l|8?7i%gbgxHVG7QcnxHM2p=Byj@B?*L2rWrS=QqU@(LjQ@%Y&+>!V|D1`w>M>15 zzw*4Y0_2>wy{@09>D_Y#C$qN=N_yP7sP&4fC=i;5jsM@_H8^xq{D;&0d;h<03@Dm2=Y!C1!vJAJ+N=l6JzJvEkge`XaX{L9&i9guY*=Q+qj;ZEtK3K6!^nXDyE17Exq4VhdkSgj68q~APIOX z#IzN&h1&2Y^&Kvg`Ge?n$u1^|JMvbU*i8e(;Hevh|M*SkN5dN32qb~wRuA$e?_Xu{ zB@GhEEKxBp3Nv(o=<^cGTIgWr!)69-`k}{!25TGO^@_^v^Es3Wax& zcjcDH7tCsZPz~^BxMi;x~6>()tJi=}TLS-)m2L>Pq#)?1w`(ck& z!@)e(SkRF)A1Ldh;Vsb&_u4zcPf`cQ7t$L%`q3D#;{cqZ-6*aRZ2|y&1@$Z2wq_Eg43Ka0q7D6d(Ge?DtNDAoApd zPWiBLUmd#BuEq$#2Z3`(xte?|fH3sw>i?p{8H=|NNknFFn}gjkA^p?7jH6p-wpgNX zb`22X^PdVeZ`-2ZYUlmeJRNDgeFLPrbXh)Q-$h>W>Ft0sGM%;HDAu!e2}&_%KO7%Z z5#QO|!N@Xuve@KuX=io|aA8{eVp_zx+4QYFW(!UQrnANDQw{~ygd|pev!_~rW^Mq; zUo_RFy@2rjiHf-)l`t}jykZ(_M{Wcr-i-qE>f&%P@gY|U`liwxnnSwGr?8KO4l41P z!p|awcB}7mPq=D!%K${;!bJw{S83X!3I&J#T_?3d zvm-YyL+C3a7v7v#0rdfRLlAfp9GLju`WltMQAF{{LRq85+K_t1-lB9L)WOY`whb)l zTvO-j&XqoW)D=Lk*KnkFtQ~6QJE-mMwmT8Rw)E;JKb|&lHvfBVMx6W&kP6BWoIkeK zrAXvA+a+;HgHNL$#|*LEE|OEt%z*UQ*J^k9@;6P04i?Rn z8Cu{evHv|ln0|bXL_Wfc!@D%oDS*_UmkyI`u7gyW{1(1RE=!eZN*WP`^ zESwgnoE{?B-0^QYH^Y5!tB72GM8Lv2?rR#43gj7oMBNDWZ#4?NE`z*JlWbind}S&N zx>#>r0Qo4VS>s6Wd}!mMZ%shiaWOF#K>RH1-Qi@mbQxmD1NKLq?o~lO8NIcE)#Wxj zp9{q7uIw=$Vr>8XP=V-`{M#P{kY;~b+$Qr3AAY{TOacXldf64Bi*6kkbb=7R3OiR} z7J%^CwAe0ktwDbk;y{*)twOiGd649atHikTmRR7I7JkzjRwd9M26V?cNI5C>~x47 zNOnKm}{IoK662Db;!*VS1nFOTkKtj@rz_r3r41=iKs6C#1bwQ4$d|4 zyOrb4PHj;Db?d^$_XJ9{TlH>aBxFd7D1gvcb*-!@X}cok|9FRIVrQ6O++lyOHnHAH zB)gvu%_RVc0H~euHhQ~0EB;88`w_9;q7Cf zPnU^6k=*nlsJnzclipC+F~CBQbN~osEsLF&({y%j?CK3pN8ftPm-`QnpHNF>NHMT0 zgQ+9|GMo9%%!dByCmes@Lt6g0HR^67!wA2p?rJ>Y1P#aFKY(O@7oZ$p*5t!0*kJ#} zuxWwck(sLvU5}d~T0Z2d4F%3$d@a^JPYO$)$ccn>+_BLyj>;a64fKBqX;K+|_Q?_j zPn}9UzkK?E>si6&-GzvLMC^q0&-O8e&T!TnMil|Yb{~L5I|{uOAb1k58EGw|Q&XhB z9ZWvrXlg3JX)x%dDbT$Fo z?iJDG6zb8!td=?K0HTbf)8z*lYM-yk;WY0_eU+!cxI`pHgaW6m2d4%r4t^q$9QVB^ zxh++3s;hrN3~F>9FwJEZ9YC|A3S&mDus94564oONs9h?q;jYsqs}z@K_K#oslYFP? zVBOT!Nxs^FB{6bG%$*t^2~D?fn$X3(HGc&0M(MtSuq+mf@Hu3_Ukrd0E2>y_)uNfX z*z7`8Y=yE5C5rC|>nUVx^{P#3B!vrsWOz`AU8+>k;l?Y9Fad?|Z3j^kWY`FvuRF?Fk`^*W} zRXH&qmqo1#m;tTiBCDXefEA%WfMm75BxsOzQz(7LD)O~$urvQpvG(kj`%ktICdNZ- zdoZYWqeTYkC#A9?8;uH%0S|~gqM=LCdxX4)wA34x$})jVir41*H~(E0>DN7%$WHud zvGd5AX7>cTDE?08caJ|S#Q-65!^EL-AnntZd6Asl9jD|i2}fAJ8pSLtGZr}!s{(tq zvT2XhK>Ur}6xKyMd$NU-gSH zZPWQm5`OjLj*-pp9aK;2u~BgkEO9%9$72OQkObM zo;9tw7yH;5@S47O9;7F=ux%Pl8``CJeS>4la@>zsVYM9a*cKc9BLP-qzq7hfR#&Hy zD?%8GPT|!381Qw_2^%7w*HhYN_w&{}0TNK7=GKs$PD32|t1hj-KHOoxUywOY%G z|GP+QfHgqmA;ZXa0=_inwwY78__0KfF_ zywTXhnaJ~Rp2cX0U>j)Q7l;6&s8OQ!KBR`oBPY0x4a3QZ)4n)Nbwd6kZYs3Ja*htp zU+ULl{in(vm#2qtS{yNNPOTl>_p^V{EZ`q!{KDm#Ob19i%v`%^3|2j^?I%1KEWboW zbGh4549ZulDGd?TVEGV$Y&L%)Pr50De>#B?3+E1Wy%_gACrBS*ziR4&F8;Ig1Q7kV zrr=1ve{zU19+y)LACQSfrUV7eb-eS!=ZvH)oxt>Y`we$DIuR4$S6N)A=3LE^K~w0t z)>yd8(_gXp*le;Gfb>TD4(k1}s+~3)o_>zg{t+r7fJ{_!3hSD4QDckSiwh8yN+Mpe zvxpwcPc)kxuD$=bA2iwpMG0wl_eCMNnRVryXj~_)etMLU zDOI8$gYv^?@Crzh51Ou}p+tU9(9NSnNj>APD%klzTal#z!R`v ziyYo=6cpGLH{D;ZptXf3Ci8vstZu*U0EqZ;qY38=v5p9ddC_m+9(i)U!u-MhSuLyu}dNB!p-&W|@ZrfN9Bp>2g zgcbw)qd20?#ZtC6Q4LD!MvFt;4?PiDXWtL~7dbYWFr?@>!L^Hc-lUs^b#K0Y!K-Qi z&07;0*+aQGFF3q84u`v34_Ib>32hss7tlRZv zD8>tTHdOMqN^1rsaUMC|h1DNCYl@RMCI1T%1*^jiA6$vw=Kp9!3#)p0<>a&`R91F& zj)ynX`sO8+`1zv&qMVK$ti#d@KDt+)@&;3y|CJ>P3g*3vO`T@4nQPAzAbsWXuCJcf z@vV;k)FUdIFCJ{0oU7n&Mf{e?a&&Cg&;UYOQ|M?ayzLkW75QBh+3gbz54&D~a1h5C1+P$xj?lFI)c+(rKl=DS2eSq>^G)EZp9U-vc$7;f-`*V_vgTR| zv4w4epG-2V`Qm^7ve|w6tp4z@;ie6cG9*#*`e4k4&=R&92&KjXvpJs|eB#GQ2&<*@ z_`gLm04b&%%Y}+NIr=lCkYb`N?S0r@`PYDW!7gor`bHk^G7ca&9gJ?HSnE5LgeuzI zCqL5;PHC(K+2UR3r}m$Ij`4Q>S-=B zdzzwA*ZGc%On?+#scDrOj#+e`F{x8kOAi2XUc)MTE z%!ohMq{vykjC!=81t2^v6YQFF1*#`SJ%໰jZqe87SnVBjSONI#iz?e4Fm}Ja5eKMLL&udv?mILi}m5lEF>6~#G}8X6ylKK&hFSqDvJhZlA9s07%eP7%%0Ih;{hx9rS+)S_etY%nZCl5VVZm2lCfdcFA>@<#9Ybw5sm1h}DfM~>AO%KzvI0?45^%ef zVS09mFum?OE%|AOA5_1~8{M$(f^*F4$-dOUGdt~;z*c4)jdOdlwL%?;D;)al#}3_* z4kK{wLU9f66)c7OP)KI#hLE2=1c~-(m8Dg&mR78qbe$uDBjAtYwK~g9-g8?+IW~Ip zgRmuNsht7?e#?sKEF;zWVP64KLFy9a5JjYoPUa~m+bQF80ZqWmF1xN{c2hp=O<{l%;Ra>n54B*I7kMcmU5NwOHq6%FRmq%Ilj!{UGR6meO1;HtZ4 zyIPlLZKsVZ8C^5nY&f{>XLFJmGyGa+@R>?CT?b4P4YRkuo;+;=GpR_ey%qAE{f72_ zi0`suz+N+@I@gi70%VayDYn~gb?Q-9(H;jvmea10bNF@;D-Lb4^V3rJIyk1^JkQk{ zGH|5-*N^>4&VG&Wjq}FF7EXO7WwIppW|$f^}Pj%OG1eb^lKj~ zO~Gf1wyiOS>s#v9EA6|jk1p- zv7^fumjwvnW#&4I)ny#cPpfn9+tCz*Lz8CMOo~MxMfW}x`XzIKT)A+TYn^ZkKv%+yzf3*;>3_c>aQmH8q}4eTtgczlD%A%J zZVCYc1Lr90?saYm@3B!fA}};PggNLXSfTk0XO2!A`pUBe5ItrUv_&^)>n{#H)!K{6 zCkC>g5O!^Tn1!-7PF=(9X95IKSK(g|!F%6p!bjnq70lr;B~48dMbyXLFk-#o$e7gt zv8z7{2@5VSy%-7b6i(<&Zg?lV=uI*v&b@o7rX&c^0f=;|1JMtsts&C;W!aRhBvr>> zK>u79kqY#{Xe+|L*6_@-hGEr<^Z;F<>0k@%4Ir5&^ z)tw2Qi?i}+03f?YL8_m*9z!i(Xui=K@yVett*Dpa+T|C$CYKxE&bBA(zhsHw}7keO!|v7fV2#revT25BlZZ2}D+yfpuI zJI(zzQ*j?$i+iw~1)lkVc3&8o=CmUcF?p!%X05e~@?$5_gE&~Wg!4F`o`$b=1dII594>ZErWNVwrt+s66Q_iL z-<}n&DC85cyGp*NWBy>uDp6k(i1kPa`}s|%=_!6!(eIIcrSClOJ(o0R7M?LGnQVH+v(E__n=q_xd+6-Sx ziVluD?Uq>x!5NvB_XlPVZ(Jl8Orl%`_2SVlljX)7_;^7c4m_$`Dz{*>T&VwcZ5>5L zKZAd)tI{5yzzB6H(3A4y@cwY?xDX=-7Lff&c;Bzu4Cm_WuNq|$*HQlxXW2iO(cKIq zh?54fQ|kkSk&gG@ZDu}fp`!A=Vk4Fr&I;$a>mJqoHzrdPsE9@)fY=NA!_&n)eB}#`Q&gD1|af%s(E5)%IK;M1`+_j;Lgg?Ci>n{;v7wT`VLz3T3q@3b zgPtVfw&>0N-$>l-Re}_s8)NQ$oWFW9et&L15mUGHSaAo4{}z(3p}@x98_CISn)b+3fc#QVVvYn>8*YyUM$srm9xr zvCBhZWJB;dIaBWjmp7qP4ebxtL8oIe#U`r9w>o{EN_Ua?hOt@Jt`2+Dk4OMv6*m#NDi0PNNYUXr2;(`lzc#9p~FS0iOy+{{g zQD9Cg)+38-jsrwfM1fAVCpOa9#!i(-yQ&+l<%>0MRoFQEPB5cnjWsxmC?()Z7}L}$ zXlT~{f`)RQN63yMkjHQ!DRW;War0$s6d>%2f42XADg897oZmUhwGqj=$ULDmZ+G=N zbkq3JD<3TVf@7rj6jQL>pIEMG(vrE~eupa(ky~;UO6Psu<5q5{0LV|Rd*%4)-U1|i zg^v67S}j3`f>4(mI&QiZjR9Ep4L=zCyB#4_k^`!qw{nNeN+3yaoQ}_Z)!G{^X4? zmsY{KqoLz-lB(2dqJBm@=s24=;y00w`mMYTkp84dWIl3cE(uQG(+S*J%Xy(Skqzuv zBGauIMf|3NCV(JCnAQ;{=ccYPr8~Xzohd%ro6~80rm19bl5)h=!<_+0wXxcNRfjx1zgF=|r|un1a(EBb>2Wy6%V34$^|E|^#Vu0W`x$z! zWK61S4xFj3U&_#*$HqQ6&s^!LauFDX(6*oy{O-RY)OsBsPI(9WBQ*F_I^ns^mk3Jc zyap97DeSdfl2TDuH-&q5okOl+uxj2raKpIurTKP!q?)dz{O~RPL6D)aL6#k#!2-vG zwPqe52%%D&2|rIu`rcoXF6tBgO|&l7>pl7FHdI|V6-Bqf>X1>McO3#AI=g$3*bO5& z{|2uZ>ew6)F5*|`nh18?|KALCx~&nQpLb=MmROAbM}rztDJj!L;3xD)xln1{^zHWt z;3%phY`eov?sQVtrAL{$p;%GnAB($dQs1a?!f7umCHnzFyN!n1?52q6eYejc(kPsb z(AV?*Qc9SMrMBc(Ig>M3kzpvwCH#X>s!VsAo#A~emoK&(VBm{DZwMM!>BEXW;s=OU zS$@vyqLE-yg9=znO*2~lag2@9Ql|a8z4&Tc@Ue#I zD$GECfm`@>pTbf693Y#%80rSfXnl5qI)&a460EG#B^B8Vcovd&&Gr7WJ^ujWvp?LY zMMkdm58e2dl@1^4&(n9Wsb&f&W9Bnsxw>y)iL)&_&3XWRBNd`-6Em_Bx|5j z`y!cqEYoceMvIVWWJ%W< z5zV!cUji0N?b)TPrpEM7Kav>tE?A0S1~5o;@$z8*9KUDItH{8DaTn(iD_V-^*gjsN zp$9`TJle63?zDoK$l%v1VX#sif$oBk_r#cBwdHT84snYSUQw0Y{VXQS^j2n! zq}~LU6>>-Wp5m$9*uqst){mXcJZ^B0i$X@q8MLaEAL6v>6#*iFxnn{5^koaLM&&zK zg41<_@0H$PxIerj%CC~9U2$NVs9i36V;WNG`-RNgNJlh1qk;Seg?-Xr;#e=IEY8csoSKs@x1eRej0&FH`-GaTQCPe zxq0VumQXdmoWLXBmA@qWAhQD6;pNc%=s7tZz^P%ETKH!bCLRoAzhNiL zs?$r7RDa!wMczK0+8C;cubmH~rTgCNl<^F~0z}bhhKQVG0pES#KXsad{w$OSc`zCZ~{mcoPBo9lMJVk8J(hvrW8SYxQX&6uauOa3Ed2y_ntsU-pO~WR zmD>0Vm3MIw37m30Cd%jOx)~~?Dcb{tz9^r&Ve~uH2Cg46eVd83X<+CzY-3{CIlkZp zl?e7gvMDX_9y|qMj_8+V@1<%aO@VaM*NEid)zyk|&k=2gR)UK$@T#UO-2T8*6v1Oo zB2X`HwBb$oKaTD(tg^2Q0C<>eo0Dx%m};u2$+m4xwr!jLTvJW1$+m6VuJ_#c`|r8u z-gDR9d#!b_Kf|Y6xL8QSOZ;!?S=l@Ra^=lm$CK&39e^oo=(}FKogL2i)R53pqHAD* zr+;w;4iGB*fwfr?334!ms)OwoUsFme)WJV0Wz@*E4`_wUkdo00QqOPmPBnMI+(#E4KZdZF}@b##U9M(It;tBqj|nelMav* z)iSqEC)`P}iA7*vY(F%Tyu|Nf#!ktdg}uj<6}+H%DuCKvIL;Kwt>NBw#ACJDwsyPB z$N?iA?o*VWYW}3~9UzlI|6Rl83#w#I(~>*J&5cg=+D2^Ee$|~ZT9MSiK1K%!LIxw@ z*YeLeO@1^kwULkiB32-ne>F$yzb;0c+N`%>1H`FQV$xykVidKHWZ>Q2x_wH2b+3Jm zbAqm(oVL!uXaXP^msWpOX_!Oyt%BwyY^5Up^BOF~jDh;gefTbiT))Z(kd4JD=IaPi zj}7NVZ*+8#^?h%#q<{qWV{1seW>r)iPJomnr~f6eX22@rab-;w5@sQKJirK$xqGIA zyLSqtDNqH-mwcB}^E^w^9rzzz^Q$hZY*(t`*RgK#OmU60Q>|q99zaMuz3t-7P%n?q4K)wK2RsG3 z$FCL~_oEO(>H{;|3VHw{V`UW9Bx>+=WjF_U@I$HAWv4YwOkR8YRKVAsox!pnAUJ4v zz^WdGW-@}7dw7p9ov;)dtqfJW;W<#6s;amJ8Ug7xV0FrL+>4^1=82T%_;5Uay? zy>{ARJ^5UxG(l5YFGB$z*K3@B%BMuHXycS}UEy0iuge(XdB|8-4e-(vfWYbu4QOO# zh|SA!N^;b@ML^J!WUA0xaI|9U2QENjw7bA}?1*6$+(44iKtj6hIJGQWB z@sn-M5)~*ZCi#JPu0@X$>HLziy+X#Ic`zr~IjIvCTpDbs!F%ry>Je0BH^ood=V^`J z$e9;oX7u>$QMzPi`Hc=#{No&nAOKx@IA+2e5A-5uVrWDPjHytR2lDx6r2au=0Ni!uTwIU%$QN+{iHX`wc4jBK69S|m|fG|E3}NU$(+d7<}J z=>YPWse*KW4&DemO|)>Q)2GFV ze{$<^mW4(sZfqBBSQW|^u0W?>tVGdzc0t5C3yge za(l;3o>-t6zRu38;~V_?{K(V?D?4%d*OJRl-g#CHAmzm!!{`l-m52EomwNaDt73>h zZD!O`AN3g>hxzFjL8|}_VN0?_S*XW(!bW#|JwH?xAJY7w*07FZWefi#F5)0}o- zdw~bDo29f%6O3u`e+eloz3%4kov0WfX%oE$hz(=qFISx|$VQI~$;?+en|BM(>{E;P zUYTUCtwU=nc7QD9IG4V9bysTyQ+lljW+`%al(`pxPYp4SxTJn`cP!MTP z3>RUt4#LKnh-z?z5)b_SFY5r&;?AD!Q6lSan$&P&dl+U&ik?`BwJ6or@M3D<1ze6{;KYToGy>^@2 zn@@lHlXuXF;c&7*q!UCT5}$YD0pw}+EQVjplK65qu}Tf{D;Q@B-qG-v3GL=M#8INs zArLW}BMcH5K>oJ!`rlH;#QbW$Rv$I2qtNVdA0NI`7;7Lv=$r=2;qUXtV0_!=6w-v| z0!IbVV17y^W7^-);*?o}CioEQ%V3Ejqu{i|BWNE1>y{x0e?`>YR&8CQFL+l8^;G~- zGHoG04qj>NIBD2kx0QK9zQyZK=8b!E_v8uhEz<@~LE6Y4DTb@h$vxf%k9(X*&;@u^R34W}P^<_u>0!wlHvqC?pFiuZ4k4FxtYfPAG0%X{6& zz;sy|TCL(5pqsC4k=7dY{3GFUODGlY3?d>3)9aFBYOXqpiM25PxYO5Dday_|Mc@VE zOsQI`R15&QZPLN`T9Dv?kiyuse~{M9ywnAgdiC<9%N~yWd6GOHAX2!lJ|Emls)~Yv zrT4^Il^C!y$Y2xB_AZ$%(T5TfZJ+~rXlSp=dJK^8kKP-HnM&9_UzBysXWU?XzHjIn z&w%PrXz-eFSx<19(uT}3&#q*YFoKHR3Gzd%qTXIdBmrs%fZRQ5b5KA;J}K%SNv4%P zyT-uL%oLElgWKQw8rtW9M=qk$&wKwnzS|%Dx1qXNfEx(>{%Z86)?nRWB zGrXn{FGDr#C;H2L_pt*A4W^XW*6d^<_)hI?N$(UJWJ*%V?wdM^j9bHC8#ct4g6QO#4uOJo`z=7y8rB%qbbMo_w?~njU`ztx>U|Ch!r|~BG z)Jtp8pANr4hJ3Jr>fybhtRzHpfM^dd;FR^Sx!SEO_B{BT%@Pn|*bnM%ZPP{FE$8i* zgU(ANZjeaOD=p=4cC$kD&-EDmwX45(E-9%gv_}O$jpCsJ(p+GyZ}F!;04Ho`O(bF9 zBVyTRG%DR+R!|6PavOT!5Fiy(Ss2#{%cOxHq?NNbA7t}S??mRi*dZ>B>0o)fgP`17 zGr1>f%?0wjlr&y>%W^8O^_nhJQaC3u>%IKXx$w~xKwN2(wF*cj4`9NbG&>Y`hwYTz z3cu$1-$5av+Pb34gMN|Oqu51*2!z94;#B+htXd<>5M-7xLGbCQze2o9+g$GG;pChp3hZo(O=B+LD* zBTMnfkxPwyDI-(>f?{9ttAn`#>MPhu)Ua*zIsyG$=-(@c@I;=7D9Iv!6oA}#e?#Or z9pzdGQ`rrE?X*K+64$z`IBA2z(L>O5tVab14x3EZV5lvl_usIV+^QPpg<@>he6w!C z)HFJxh@uWjfOx?!i{;!SIaxgBGn^ddF3v+WjHnEICINVw+!G;n!!~B(|;aXuom%iQVoXB8;5(0SCq2KD9OfTIzPOGQ(7qK=~E#%L@7fHaq$rWPY`kjO~lvQV?R!BnKp zuY6)??;6Yoxsab2~DsqeQ3c}@87n=cP&3AVXbs8G- z-i01*WxGt6TdF#2iq$0NK?jig#@;rc$N)hlq>!3Z+FOUb%SB7{i+OA?8Ij=J1TSL> z#2|<{=mQ;y-!U^TDbo6?y#h1w*$|TI;;l+~jU$mi4Ko$4;7~pUAirQ+ZBNRXlWB%y zc*&rbcWdr^BltyRIQhCMbr0afLBVhpO7r;T9!x&iq(5V{=;Q#n@7&h4QZoDR zDBLdqSw=+ItjS?9%+r;LhpnA)u|cRrLeSDo{8ojgK6A*44Uji%w*0CXa|H9a&=@4G zboiuJJ)98-p*`nFGx-?n-(3KyXL+<=u;f$md|K)uMdjJb9WI=?3jW<)e@{AQg>GsJ z5H!K#V5#JV6Se|QA=8?Kky^Od@_7EEEH`5{6>T5#K7i!Zi*8LnC7_hF8yPKc7zi=m zhist!hGwUs`@FO4Mpp*N;UtIS_jsi#)oUK#qSt^Z>=~0C)3TplW0HQuDxX21e;Rl6 zKC~Og<<)-IZ?iL!-zR!{=EUn&z^#LLR^(K z#TN$l&X}0t6*%{4i?LVFf_W~LzoOdJz8_7b z;C5uwCjbNzC9661eYiVy@(fZ82~B%i^i&DMYo`YJT;rjJI}21FVTpZRLK*o$flD|+ znPK7?+1ygE(8#}N5}S&c6~R9q1c;k-kGW2iVJ$VWAM)9AuDGleu?~GZbSALrEN%(> zP$WQ}!NU)5-2Yre?1y>sbE5ApV@jQ~?oIBg79NZS!!v*b#6SWu)QTuqB#5v8%KiSv z-^k&@e?uzGH%s-mJiM|71VB!h9nP5BvV8fNEQI3!dlNT@BcbByRft24vnakJu>no0 z+E}AR2-C_ASb`4Khs+lGlZ4WihSkaFTc7LSq$*~{0rJhq)alkb4YeUr5;;nBK@67r zUDkKou<;uK*j~_?3h2f+QVaHy0VBeeHEx6vYs$Rq_^QHnjZX228_L!#>ctcofM75F zZ5w*aw@}-8nw}VR_=)0(B2xxO$z)|y&i+$y8i~4MTuuWCT`?$K->F%uuu!ltm*d~a%}weD zW1Sw|bI75FEI_cq!pVwAJ*{kQ%z;dH=Xhq~oi zL71-uY8@cDwUpkD@cV_aDd5-m zLKRuG-Rd^Fof;7>?D*$WbNJ1N8$gumvOjKgY>+yigd*kVwp9XiR4qMq9YkuY-gy09 z?6d$vaCl^pyj+UU!Xq^vK>*f*4z1FJ-|o}}dA)b&J7W#H<}Oiqso=an|FBU`8e7v9 zhLH(l=BZ-4Jhr^L$Re_)^a+r7M^}D!xCdTYq@J_M+4G_N)1>{d1t-fI537UZeCASs zyf{6(qI{e{uCC2f9^b)TQ20Q~k+|uJcxwc$C*v|L0Yr#^!selDLL`tRzT?E?7o6*; zVm-0Julvt`E{MN_{tEyIte;(CHIJTbWiHuUbirflT-o=$nN6SEvsUKK4)XwSfS?DA zH7r}}e@uNJfL4llz5U?<36tt82OeF1(#|x=tPPMZ8$Ixnz?SdsdkVaA#8hrKVRMUz zn|hSZ*yWjd4~L*$P-5U4r%dp(ZiUj%M9%3QX$~^T`hvJ>idh=vCp%Ae(EKvN>3woW z-L>1JMpJ&3Me{Rdg-W;No9<<#%jB`d0!{%y@Z^XYq{ewGAL#AbjK+FN{(MJBW{r;L zl{1;dec-nO70Z6SD@8*7WE+Bo((~gh^eARw;(8{5&nSBKeY&w6^)fCd<11dXi^D7Bq_fTs3H_- z$-7kMG~{HdHhNCPkRW;Jo8i~~1BlPD9$_`st+pHT-Wyf%$B(wG(ShNAio1dSgQPu@=xt&Rx_0qtpb* zdBF*30i8KBkp)D7K*^+(Ii%xV--u^m&4KUeRFxH|w#VA9Dz;eEDD^;oO{X^!UmZTH zoMPK9enhu*kxa@S0ri3oMD-Vw<4VWPe}B!e$ukH09kdc{F1ll>D^nW@6C)1Fy%&0E zU!b{qq7SxNX{vc%S0p82=$_%~YJ}8JTGT#wK)F=74q@_{BPAK8wH2`On~(FB34e z8R7*Dm}3GYB~0Sl02^X$^;R81`H)5(`CJ!FJNF1*mT#6sQG=WDwoc>@C6dLkL6DuBnkvZ| zfv3?95MstLO257A`!01`b{0#6{usx<)+{Y7+{tghN*cotw*cbzG$Ah;;H|Fa1uKzo zsu=#mK=llD_5z51?i76{(E?lu6S8{!a(l(M zvdfo&0nJ(bk7G!4sZ`L{ol}<`+IKZFnR`&2K_P5e2@dFoE}+vz?Ezi(#S|es;gXpKzEi7V+)tLqqMIYtf2LHq(P9iYq96()aS=yU|E&&+j}`*tGg(Sa-02^_ zTOp#<^&u5zH2KKK4Gd`~oyT3;PVAp6fN*1bGt*?qz>9(6X9(N=js$E5U>qRvD* zI#as(0NtxSIj6TT+2!JvQ`-^XPKfg3!Q@+|P-s+SC)6K!M0fmjhc=}n3}!h#Y-o=-5f8?ar3ow_Tat6VT?_&Li~%C4$<*Y2T8+>i2j;$U zC$9MNOL~xSyJgyA>*O2i-#bu&>f@B+GX1BQ1)|>at7aKxce4Y8VLzqsQm7l!BGZn~ z6X-y8opia=U+Xxgci@+1b4IRV@W0@Ho#XM+p?Y0CrUqq)Zu-f8AT?Sp$h3GroJV^c zI625sZ`$Dq+RDFO<4$hq1EfuBP2{&paJAM>zHf3ulAr*#TYOQIAq_q_d8Aczv<5(| z9)9#-*%eRPW0_U(IGqP_xg|OOCr?)u7MiMZI)7;oklzFumcP~8;|!28N8Q5hjG>ha zStRT~GN%YHm~!#RRRQuq$?9QFpQ})CP7=GX_d=`Clt&)*y-EVi-s?#H7X)Z(ZYkUk zrutMi4ilP`ZzWlN#PN%XlPv4YFX-_jJS&NqTGvhr>sg<4p9 zqpCYGY}l%|*2Y*=;%|S1)xMc@iVq-G-~dEk4Ks^Z0C#OLf!mQn9$gx$0Nm@Keqpu& z?eC=jqgEb3u5u$9+7AD?I>;l~cC}uP(`a9~CR`bK1lbBFVm4TV!dpTIOCD_36Pis^ zdu(n?y5B|OzeqIveSDo$s}v!Y-T{EDCnFoPv%lq83bY0jG^I~YgSU9Msx5D@P$66&3zBojy5JfawVwM{%(AiyMJAv|LH3~wbE}-kG z(J<*?OG%ok9$w!35n+b=8vYF+GkENaY=M#Uh^-TcN}LMHYI@_MMb+TO6ftE&9FNH5 z0BK_FcBeV2t#qL##bOkRhIdnSlYr0D#LzB{b%C@b1f3U&8{%wYRNF{6Vs}q29O|fQ z^2}_T-^PqLO*DM_xF{z8so-!;s!&Iafc1QAUHQ2YzIlaJ!lUcQEElQyGm?c(2Ow$U z47sI;ye{iR4~nzMeW>3C8>U7g9L41Soi>HteFrs6gK*GctMDiOMC6J$pjk7Bk`T|N zVtTcBo3M@`OAlj$rl13~TB$azPZ_ib#MZyl94*-&72^p{U)IW5g5xBW`h)=T{#7<5 zL|)AXWx0NvEDYjW%%9uk z>h+|GmXhI>gZkdZqRhTO&huj5NgHU^-3Q?N8*h0qvXMtu-&rKyQMQW#ayoM&t+TF* zPQ%J}eeTy0N3bd!0`9glxOe_)zmEq^4UjEjbLk`H$)`mCkZy8kt14#qq2x5M zAGOFZ{w6Rjbx0~N^)X!k#HD4B8URu|HMi7^Pg2SfEbzqT*z5;wCeAta6AJy z@TpwXr(yYw{QS)cyKeK$g74;gc%7J4g@7XbPL+~D0+8Bph^d&mIEQ7Tmnj_|Y;a8K z4=H=JW7T?f`bDO6BoTm!`>*|W_V^fNRbh{J(}?x$MbfkB)Z=z%H~00qRXjceNWxr~ ztAis!Y^nxsnN|u>uRS}i{KwW4H|d0g|9!W)0zg<=Xhdlu;T2QAqdYwvN_o=lh9Esv z>O*%`9Ps8Vgd72cK`kZhX@0on8QlF!9{HcT9pw89@vV@Ljjux^26BxQKn5unCad;( zHgW%K6gKwD2#vK|*$|~*^&UCe%X~(sascFCPrAUAv(*>BFHj@+@Q{gh7>$;@ zK!|ZmDhhEx%JIs=+Lsl>pT=ye7=gr zTDPK+0HJkG@XBB5Z$YX-0w-v2I(a81YM1oV|LceSmdt6+hX|0|1UZr>a)W5?3jviE zOEQ7gBI~b8I@%J{jz@$|E~Hifq4Xw%bLlA_(PCPrn-2+(A%s;ML#$hT$pqs*guU51 z00`Za^2{#@_M;p@<}GoFLn{YJ zn@hXX{mN$)BW;X5c!dKM9GE*;67(1ir|~41gL(Kga0>d`hRb+%gArM1UnG!?K_dWH z1 z_X^;`$3&ce3w3}wc!7Qq-|B7i^v_XyXeDq|=A2GQcV(p5LZYqvA!Xw5-HAQWQeHzI zan{3fUB&a`A#+hq%*C?5`q$DTtH@O&#l&NY<~cxk)aYpIJbnn>No`+UTB_dan45SuOV^NiJB<6LAtxiBQ zrkIi>u|H-5PyXmPD3Pl1cdM_@TF^JvSJ~QB{)=-8pguzrIeJ9NsQ0uCO*xok`jX^- z((4a+?hmvK>j){syuzRs@YISGDo#G^_SgWP7(@)=^Yg%qQ>4DYgrxBerK`CJS-aFwd$dkv8-jS3vQ@9P1B& z(8!=BT#AU7X+YL0qi=kmY^UI&g71z9= zq}wi5u8gXLiQpS+a;Pawe@MxK3RFQYvgAz7^y;b(6f-22TDL?`jAaJSh_!L{K#$Ef z#sGj=q10yJ*z=jtG*Go_tZvaI+d!CAKmT-pu&TPZN}C=9NQh#E8dsa1N9H*G!`*u( zXInZ!AA9#0LdMW5!E|=U13)Y~>#%uCn71#QVYYg19Tp{(Du_>2i}28*(t{Pp^gw?A zL66SL#I#rlOHhMc%-e!Lw=-kDxQ1iPvFf+m^!sQ~mv|+QDQe^X#0ywOQuguHc93VE zf9O!==85QNL+%FSoK4%Fvka2u)-R7e_C;}vzGw3F&+jU*9vchOM}MrbSklb z<5skBbBJ*D_zzokSZE=#g!y$B;kjwUeaa?bfV^ly#86y((af&3(qRdG#AHP~BT0h$ z;}pZJWhbI%vI3A~!l5cL`2YSju_yhU#@~Csu`eD~@*T0?AJ2sANyCi>2rS)nnjeqf z-_Qs2?9BLTsbY9W{}lIS<=UWS=09Xr-2icIThn(kgk{@~XheY*X-p3#I~1o!>?)cb zp-!LpQojZegdZ3@AGJ}bT=kn!v~@*4({4zY-_;mAZxyQ1Hh6L!0CL=}3mLz4pGXq=MQgTq@L?A-2`*X>S{tpy|C#bL5u@UhFBBDx z{y`z~cYykV+YEjl_;ri?1Th;R>GNQ`O&a_146S%N{h=HGoniq^ z1+q)b3Y3DQUUuLiKsFcHV431SqO%^{%P1aImKcuv%#-XUWkbYj1En3)WR%o9>U!kMsEtIt1 zZl|Ohv<7IQe1jZ#`7fGSnrD;q=ycE^PUd#3*FMU;U!R`LL9P}cYIiA1!WCo<40EPA zBH1R{krYoA0ZpMJP7ZJ$4(&YK02x@Ek&B=EEVmlq`|-sGIZmXS9?t zD;Ypq)M_zIBC)zJRA~z*SJg5OWdGSc<*ak=Zb3?m*g}GG2D}Udz0!K!PcS!_#a}c` z)F^sPvfLTdHZMM^mf05YGyq}x+wAz3Von^96V;(cfry+7^ECx(X%V(HBA)xg9Bkg)#$6!8z zYeJh12Ofb6TSe|u8uhDGt@(-Hg6r>efc!lFq>=0qoGUyu-Om0e>U0SX2KU#?(#UJ2 z+mc-7>JuP03&7jQncn%g`$w6L(z07)1Qd~5{}|tApY0aKpmNIrM2fUmidREt%(kFR z9TGF4&4Q3OCXwaB54|Xa({W0b2_QkFRwcIO--?jebf@Sme#(sLNW^RnJf?Cmq$h_R zI!*$_M&ScILH5rVJUZJ7-p%zW@w4B)L{lub|COYC%dMjN1rTEEg*b41Z#;^ z-P*0#6ZtNs7u=^M=%KpDHPASUW;f&CTO9xSw`R<*bki@F;6f8$1&@iOV~u-VxU>sRtcEfQPgQ1^oT?4-(f((guKyreY^z+BcvOt6z)w>#3d50HW~~ zF&MllT=I{#yz!s{T3 zEepbLCKJI)DOz96$uFVg=@-mmSYl-J#gZI?7J<9gA3t-A)F_7nN5fSnn|-t!A0oTu5t?`FP_DiGUS3k@6Ro& zZ?NKMF#s~sWD`e9YS~J?K#Ne8`VX>@&^e{~5@quXu|Ebk(c(KmCcE46{;EK&MmCCMZ|0(EO?KFW$??{doR980HkB2*qXP0R?^F7Htdl-wL?Rs^m!;5fefadwy8Qi z&kG=?CVa;y%%>_&u=;{VzH{Gb(b~ZtM&}}>|KwQnHte?nL>X6st5k4>ILIa)6Mfk? zlvvf+pshUfQY^__H3Pi>G)wIsibLe2XO6~+42_%0hMX9eo3$Xv63fDOIkC%(d7l7; z%t^w?G(WQ#Q^I@z%9X=^lKV_(g(hq1Na;AdB?nF&Am&}D-SW#%ho+MQ@hr}@gccTz z29}s>BPNUSWwz4aK`ZReB~w-w#QntZX@{Rsjtsa@!vHxLZ!HnUAFjjG7cPv9tP9<{Hz@tW z&DqHDr)%IV7HJGX4009!hP4|cfG3i zV>k>~wJhs`j6#`hW`*rJdBO$NVm5%Fk4hQ|aOlkLjesHnJv&*Usk$pu8PrkW=ExMzsFG3NsvnEu z07*7woVnz|dv&$cuh+W^9{_?C#gfo%>3;bOox*BtG&6)7e>e_tncDp^~M0nrtR$w zl!Byh_PyG#KU93QVElQ0Q`x;k<8q0cK&)Iw;YVRdQ+ zUX5iLfp&IQm;j-IeVBO5XpAUJp<$t{^{EVyqFP5Y7N})F9+D^Zr3M9q8+lNMy!rvw zM#~!hTwJB<8UC29P;CO+nFfFJVd&3IfTZG3YHodIf6+)p`Az>urLbRp6FjD(?3tKD0mZJ) z(!16jVMFYzr0iDvs`NL}Wb%QPf4{_^I@AK!>Hc51BY&CPoaNLUPyclvg>4rVm$|M& zzD^VV+S8tvQB_O>>Jp0&K(XlMo2XD|{2KyiQAEs4SnMSpwMe^CW`Q*_SOldNN#waa z1P2ZbSIAj+)peEV?$_H!+LS_Kl#i1?xWLC~0b(`B#jc=2^ecKudsp+zE=+6F<6eY( zX;O#+K0XXaF)To$^JpQ?xCh>(+TEn(F>_)BGe?br5&bsS3xv5^<*KTs zn=!maJH`EUCrxe_LgfH|{lGEvFVF}FIsl9IE~!? z&oI~Hhl<`TN1rh+DI(EgYoijInhHR0*M{SGO>vS;U|`{ux?%hzU~d?&*@GPN8uz|W zeb|!&M1I&@S1v}_Jh3z?t=|%h3s<8Xo44^bfayxx}I+}1>wm$}xE)cuto z003f}U`gypihbl5gar4T?mV6(UPfDO!Mtg!#&4-Z>) zq$ChTPyIJ>KDWYR`_DEWAjYM9t8TYSJHzT(iL}AriE!B6)7uJpe`qo)PdQ)qZ2$yP zwDDD-hcvx(=)T3w`TR$nrn5MT;A!1f#E8LTH zl9x`+eU(yw*5~QK0+3U@*MJ0qeneX|i8wYKuRxZvU^Ix@ZAl5Uii`h-EYAo< zA=87kxq+4*pun6QFnBr(Now~G$bg}WNq1t;AR{RfrXDiv%_lu#DN6y!w@GGO<-X}@ z1(nU#9ThqsvS1}p1jRbv_pjvN5XVuUf+sdvM|d4L=8hH#9DRf0jsT> zw|mm`4b$HII|pXZdfe-bX9D>(H0V<#`)X00RZccwBjePcIJBDv1`sm||E_rah1!Mz zKL*7vI%fI7hoTzZ3Ps#vEQQLXIL_+I9bBXhzJqq4vqr`ZKw`1!CzSr#5t+a8eGjXE z`o|d~EGN%bwr-7x-Bcx!nE(*fYwJGktIpcTkLXc20B-3^htYWYX^LL~31Y=Ch~6C_Cl%HTDfkyRv5l%EooliSoR!WL~S z)cRv2Nk3^zmhs1y6hX@bqLNjC*Zs+(Mg+|iy46R^z0&Dv-&dM?s08{r*fCpMfL!=q zd-Wf$L8;Q4jb>@J?GD2Y4lKETBli8r`o=>s02%>&J=4|qk*)YM+R+6R0i3t(3X}M^ z!ILlU^_}dU{~Q+p;=miM635W%Ym)U1b!T=z4Z3sx@7|44&NsbJGSThcR)7>@fYUv; zn%!a)<0C#UNm{@~4RgBLo^4nL$c$p8aex}8S*xGCA~8pY`LA&_2pvuE@`gCcP;!E- z<5*@GK|X%V05KfoqxL{kzU#D^D)N{t=hZaMyElYAZzZ&w%GPc6pa2K~b`n}6UHNA4 z)X9bVR?Sc~^?0ch_5{>ggwh$wT`XvR@xO^tRw1mty*^yem{(5IYvKfFPiQ=|sq`#O zO=2I_1xSt-)*9-sD?949m23tBe5x?ifCA38f(wj=D^&`PZcs1iOX9cw5o0=`*XZQg zs?_mW_QGo7xoXKHD7b^nz&konA%=0rz<=E}i>TX4D~$Vh9cRK1R=X|9tF=?ZDaxNv z95mEkqc<-uD;a%h5KXM};KZe4(mlNnx}a||D*jN)?~W1z#JL;`ZsVWo2MvS;w&Zu& zbx8`MY{$ymwS^99&FG>3Kv^@thC&T-S$6J{tHLzYn&-I@j0lm~)$3fjrq-8OloC)d zgqdv~Sca&HRGR1XZNl4ozn&QFkx+8PU9FT0WqtktE#=taR33A*`BBEcQzRUUUM^SFOwUrt|4}8 zSH?X4mxyW4ZxvJ&o?jMAwbam<8idZ;OqlpseolG!2rN`Htpzr)`W#!!n=o5aAr?&R`RK85s1oUf*L3 zIfoixnCC$urD{sw?T-}ea?eE>f+Q!}F=P*C1GU3Xn(C>G$={s#10j zlNR?26PBUB{JSN7!6YVKxwJ^(+n`~8pMmQai7d`|-Eg#7-mRZsH|4?K5IeQt$63?6 zPWE5{kkMb;Da&K#BIgR@oX7c2%wLDfNIW%KV$1_&r_vb2g@ z%si}j1}()>OWGX9O@h+5qbZJPQ*o8*5^+s^}@kAq}-?$NgH zps%~itNPnP)7W3U(c6<~0ECO1p57;_NG(Bp7VR5!u+5$+ov7L4@+T`jF|~_;59kk& zn48A;x43bjtY^tI+!pE+-|vCBOt_lT#efR@Ii9@@kaxw{k%RGGfi;9lFC2Uhn;BpS z!FA1hl1*;;M}TmDe-{zBzw8Z@@fBo|elg|`2dfh(*beK}m3+dk(F5gDwJ34H zEjM#NU>oZ^H=DmGPM`PBsf;}he<*qcsz7^yW=siWNPb$;4N>Rc{rt*;F%B9XS?_~= zQ$M7vHu{)md_cK3!rCe-KO%|1q}sW}JM#)c5d2}TE=8?0q0FDfy6a3(yl}T>GvP~c z-SxViXZUC_2mDhvnvE0>uj&*wqs?e=mbk=h5=Z+lUiujO8yu3yh~A zQVOxI{`wYx+>3~#O(CdcBK7~)BaK}98weKFGuu^zvZLhZ+GiaJT0Wt1ZDsH#OjY7s z6HW;DPUXUdH@AmV;Me_i%!`rbGdlrt(|&_{Y_+lAKUkBK7=qx0uD>(Q!a=S$iSBUc z91P_K5R2O}vie8XHE&$csgnD+DXHa(OzZqz363cmubly~34l}>RXM<6f)ShVL27on z3BCXzaTkjv=}=#N(~TC=A;_}%CNvA{sO~ceLkj; z>ZxTyI(e%DtY1RSVOvB15#g{Dj*-R*;EdUqhPqIR754P!HpP6q94N^XTbPjntt71o z9cSuB`b2A*`;YdO*IKu&m1$rM6dZ5kZ10fTR7?PoEBfO^ti{;uOxL<(@*r?EOgJaR z&=!D%7`{G-_8kY5OHugAE=+H)j3`8AOWu^1_mWS&*ix4`jik)xY_CEPXmY@TVsks_cPPpbrMpLL3Dms%iQv>G!)5Xxq;J#PAJfiPTR*Wy^*s26RNd0 z;L_>+*)Sp#B-IP0LX}B4Y%`WiPBQDnbYjshVQTo$jj79%`7mYZaBf z&Psqduq$dS{)ak)94kIZTSv@}4^=s|jJ-Q?dM<@?v@`%J3S~Oe{IFPtkFc@*n$LNj z7)gTh&Ja(65}MHOPxsD?L8WD05j)i{zx+PVQf)^S;l#7;of{^yS5D&S9zIaJ$11p!X$wF>1}91`hhGOo^MoWP|!7!${d$^lS5o_Kvj65nnbt{kaiW1 zbav(fxZB_=H`Jh!Qfe7-4nay%wU+dcbi6n827rhfFhyiu#4UR@k#Qs zt~%ql2i}0>^#48BBiO|~-fGfu>3VAkZurl2!)V7O$QXupa+l9_<#OM(flsMM#+dY$ zyi6QtK}J?O#E8FHwrt8gRHd1_7SYoEVao{+C`F00UQQBd*INjdtjp{VLn zT@iQ=)IFB}D5!*;UJ$PO;E3-LYI_lssY=xwnj)CFn%?v(RPB)T{+?8>jcwbuZQt43-|sWc&dm9Ac4vw|cVbHK z0OWljN`r1omtH$)R-xy%`kD_%Mg`v3t#M(pwnJpi9&SiH5a#6?{3+reSnyw zi%_OJ!bYD{-Z|*&H=O5q@Wmf6u|l{E1|LeAg=zpKCojDMr`PtfLU#U!Jhw2+GXB~3z4&O=mh=4FMUvzV5Zk#KJ+O{@1rs;~0}->v(RBSe7rQ#% zSPkXnFUTgAP*E|s!2fyxx<)YWSNNv;e&5b6F|br^V?$8wt)QQm+z>An)l!$C z+d^|GlU(Lx%&^XXg#hU(Q(ybI2#}-V$Zj9T0P&h-Th8oVg~=kxSdl0=888|7L2ks`fsaNu~!b*Vk12xGsJ6A^rop|?hggy z@H-DP__gmBi%3pyfFR9(*ONV7-Cf1X*ZsDO)qCIRyX6(_z2 zynbiL_7rIga@(s)qr9h4*04|hWa-bnq(!S$exj`*9=W3 zu6s!bLj$`3PC5h7y=wrTkrhepL;XzRCg)I*HeQi8PrA!%V*QA6UYy)Dgb0v0tZ$j0 zN#NnEoBd2UIRxVVQq?+#64!c6C3Lq#G?su)-HXp0b>Tn_m0y9^O`K-Gk>tlI*C9vR zQ60^uQ;C8iF+hmq6f%EEd{$quZqj+&{_(5onW!ALa;Y$Ycen1n*CrpYbtj5hq^!xzYvd_*;)o)@3;bb=pB$Z8rSAoB9z-_%_(3 ztB~vcHB2@4*5(=$^BhlGp3O1{6v!M9WH9*{vvD}J$C!jP3H~PD5JKp~%=-1>{>;1_ z5l;e$a5k46qZCQg7N1P{uk4VWr=Nl~pVc}w_kuR0osciS0OZtF|DQND)@(IT4m!%Z zinZX<^p)x1L3|X~@F_HrDkvOECcqj^b8mF4xKbEf<`qdZ2ztgab=;ktw$;&OG?ju% zoHKciynZ2%8Td4VlPd(O7WKZ2yY0UizW&P1Y)9|v-vQFDq&?k^P~0O1PHTToNLr&s zJP^10CJeXAGxs<@BPRvs-tuU@AHn=}F{0JfacY~Q20t@{Ow%hn5R?OKYH3Bsx;JNLipm>RUG;f2iP$we zS;q8@Hru_Tmi{it zcep&S$xS>ZrrCCRii7&0*%JFH?T@NHMS~1L3SHSX!S{{X@yJS$iZRNlCFL1BYTVs6 zkw~HN_X3+hWoW0>jxJNJ35N=t*Exj`i=w)_f}S20)LO)6gs--N_(}lD`+?EpCeq71 z0H*b$q{FCWsLdenW+~bSGqI+zyQ@hHAl4PD=((+6ZL-0kgRjPMMd@Pn!x$Jl+xJ-{ zEA-~5KLIkXJ9>3m)e<{IhRPKeBsUrIWfBM1EL0RA9OEW;)-49~eDBp_ z`_%k)KANdm2Z2n>u>u-F)jtS9t)&zuQ?O~vz`Bm$UrUJMyrFJYsQ1A%)(>dpe5NN60 zyPEV|^J3&}CYmj|Jl~Ly+KWhpy`0Ld8;c-7+L#q> z{(93RebHu4Y?u+}Sa(a)sOZ_|Vd@bNv^>Tn2Z(U5PF^n}vvKB6B_cguwCoTTvlulB zvskO=5-9jcoFRZ9+h!W$b{YS*5ffH3l4Y_t85 zGe#2j$i$yaR3x7(H{aRf40~F=A@b_01Whaa?WHPwca$#XpZAa;ZA6v|osHnIzha&q zZ<115GOB`((sh-kJ!z(v$|*8mPh6!Pq)V4@h1(SR^0P?WaKfn`)E`kfWI(@^D|Tfd zz%KQ1@mrGl=fDV7g?H;Ps(j*O;DQIpW5T{`rr!c=rsJ7VufU?&)1?_*0DNoa(T`iE zR_u%pfG8HqDhcuOgeKyT$7M@gFGX%gSZh*!vX2pXEMBYSF#!mM4*2boh-?I2{VU(E zvNq%N?92|zLzME~uLxvKPk%sVs0xH*U$&#U&++72vqStZLwKoZ|53v=D?A?WfKQ)t zRRA(5nc?YSMIak(k~XqYSZJ>}EG?L)$D=L9+D*>x%{K`UF<6|U^^cm1C2U&dR62dJ9)h$2hUt7npbyV!7ixn8tGiu z%VQq*USL`QGNzI2L0^0_20s8o^X28erK09Ks=8lCD5GUEZye!zV^TRdHmYJS;9YHCF z{{uXwlpFu(1Qn@&M#tAHDWX`(@RZIeaea4{wiqXEWl-gj!L7@~bwC~mo8nCDMBGS> z?;Y;f)NDR0ITI9K9x(S~i3ls~#`rfzlh&fN>-KorvQ6s_RInmi1?*XFL zNtt_VdZWoK5tp_lcPtOtB-fgg6+PP4hAPuz#jhqP!B%GX z$g|fza+kyExLjqR-kzxQms$EVn8S$}$Nq%al$P(GjVI&M>LA_LOq7_Bc@KbuNG(&a zjV_23tdopwK^}rFnYV-HF12?(*3%$m_rr}qOkQc?v zn3DL4Q&-)0pt!qUCutR7LRqu8c;{NC1gD7l@@d?c*^%Bw$ebn7uJQ#S2jr^r_uz4S zP#X-APSqA;&iLD$DC4!_2lQx>Q%}&K5@(GnHWVx>2x%7lOEJZ~JOf3{62uzT3skt$ z-_+PKtI)&Y?1d7IZ)peb-5AZ_xp&cf}zg1j5J?%7<)* zRKCx%p(;b|bv-UoC|c#RGLs=2`2z&+WWo01nyX*gHj>`i$$?(gg?_@XdEC%M389W< z(+N}sh0iszT{uBIb(~0N<5{MW($VWM*5%~-dc+zBOgHS^0whtp!pYUB_PAw|^?*XQ zuNE!eW`Mxq#bSpS&MJp+u?!$ipKHSSFysUqBxqXt%AQgquJs$q8Z(@gaFKhz4he$t zk#;{lBFcBc+?B~T8Y*VXMs1hdm+-IXiATz6Ue%4mpmmgOkwH&VH$?us-(~O1_NTIv zE3r85Nn3|*!k0oHVI*wrbjKkB&tYmTXK4Wl9rOC@Wo_L74+rLSZ$^3Z*E@ZZ9mxL3>ztkiM5 zud5QAxh@%tOyp_iPI1Am*#&rDYZzDnA-So*jk&CubMNa&W!I~B&hdaQYV)l7_Jl2r zk!)TIDv5=II$Q`VE7qR2p}U)YEYpM8J=od*&PGM?ERTMs9t2Id%H#d#QEhTO3MA$J zxx(QqIhJ1+8EtDISM5LjotmZe~rDjGm{d_eX5M7=K2>kS|Dg3=LL3kLsFFSn~cIlGnGI+N&f9=c0k&bLFUoAeQWFE z?2hWw=3Zb!Sj*|-=2|!#G5XO_cM&!!LX~bcNi{S~6d!N2n7X^})xoji2AA;Ik zA|uUOo7*n@7SX`sAE$&|2xy+!ss#A!_^DgDogP`BwnfxAbJk$pZfeJQh80XefG@ZP z!a_thTvc)CFZ9u;&>4UjB19$7!$h1LFGk6pjA)64okdB4Yq4Ev<%KzJ7N&xl!bE?0 zruB2?f27B19Ci|mmmUhw9gg9$2C0$A{_nA$g#Z$s@`X!|^Xycx4ej`55(?2ggW$ca zxMVL?EffY#a~PEE!OokzSGdCm-eTMfaJ!cMr*<&^?K}P_As1X?cN7nI(z3ej|@@7KT!nJGx|I?#w z$!4ppoI3J1Kz@1lBfE%O?n|mE@h@5399`+G5Dnd+f5mD}AGy*;1w{tpA_2!;hN2i9 zEYag|&Zi3l{;Bsv5%qyH)Pf?mE`|nxH1+?a85G;o_BF|xH1XBt`CZwJEuR2#l}rTVos4!gJs>f1 z!W3w4$;xAGi5aOtV_zO94zmo}zTmo;m%%qa%3#vliR`b2J(%C>_;;ix#`B>2gv71C zXbq6=&XZ+U8GZ6ni=xLLhe$uc5^G4# zeo_???4z{(9M@=8Sp^VgLv9>s^-F(xdSoovAEacM1If!`D00^&T^n+;jEU+1sXyW! zpM*khXZ{|+H3<8MDyhso>N*#{Pki{V4<-^FXy##PV{c<V z*h-;ZKb!*d72FLV?HyuWS}>5=Z`&cX22^JzlIUsN^D{1!ZuiKX1*wW4a;rbYAnV74 z_O-`5fLm}w4Jj=?w|OTXC%bM%76z6JRPW;OO`I3>jh-a(@OFRuO19sZ$jKGr{Qawa zFQ@#eWbrmY>Rs7JE#>~%sa(RnNnb!c*wpX#ohl7wtLL?sbs=Os;V%JFDm!sywN^Usl^&!wr<=E8_-tJ9Q1T54!i)2( z&h-%}94<1Rlha~%-6VX(n~9gOPwFCkymg;Mp&`Px)go1%W&y-nqTCL85E1?vGEjoA zy;nWP(N8z=)##4~PjQJcAGjqz(h3?w?9>7h8t<}1LxO3CKIdl;dfI0&xtJ5cN(Qv{ z0c3!_=JQ)Kr*|KnmsI|2J zBE<=#x2+W#L@|+MZO;W?enj}(jsGhh%C-*man;gm#!sMNyGq9}txI#N8A5;*`=Bn_B zT)hf8l9t%4^Iur6&q1cF=GLe@9pd4D_y6Cvz+9BkQSs9)Xx(`qfU9WtZ~17h;*pB) z3(tk?UT~+o07v;`^sW*U$$fTI2<3h(+ACAFdAQG@hCK9>vO<*jI0TgKZ;;Y(Fc5#y zWqq0y;N4BCO3P<1Cw%Qm3n1ryI62M728bb3%klfx7E^dp==WLlmT*W{^UrM8KeOwJ^~G|qOaz>)*O4RYCQe^ggV<= z%54acizI@O(N-U=XZ?Y{=Nmhwvb0-^rbUv{r*ALz-S^5%09pRs=FYU9qx7y9%gx(_ zT4vypbo1>1|2|y^vwBRa;Tu4-c82ZG>Nnc7p|8`1PE)h!?=mgDQR*A$#-ujT-NiwF zE~!BG{3Ul@>DakI$3%IP7V;U4d4dXWIn<9DxOu})B!D2EXPi^N-bY_CA3J+Z`+gMi ziPTzr7;B(;)$2K#m4ot8`~-~_Nl76cB04P&#}Jy~Z2eHDa=qQKDECMFx8@QpfY=fx zUEC$nZM7AxlHW8Olf%w_jXNYD&3MBhTQd`ie+9^oONdg>D5S`b`}Shm&uL~_NRS1Z zumkTlJ`F#R2ZTT!Uq74fLA6|}try3o`|kDDx=gtnwKxisorg*g1R2^VP?|VhnW14F zGwgV4ptln?QdMvW`wg!pB=KthtN2ZEOTGjkhJ;yC7YyXb^i|EBGp9%}tvBJR*!g>l zRA7jlNC~@90Fla`tQv2;mZU%lUw~#BKP@$xBNZ8BkuZ~qo;a@EE&|Bw2fcEu-=4+g z7ZHcv2~nNH75_wNW-yLVYcR+GI@pQ;$@Jj%5H>q_snoZx8Eqo5TR2t82%is3Oo6H| zgz<3$-3+o&yFcIqQm5_l40I4%#%E?GZ(fnqXeF2pj8%eUxj_@9ZRM&B?s=Q^zReC( z{7!mEPf~}@UwYFV{7rU&ZZ!;`Y`;XRPUOuGix+3~;mzHI=3`8iC%|hEiA8EAUA6nh zK@JcH=&O+kQy16;&OZ>Gzbs>isuafPs@wOT=?%O2KgZYrM8(NjY_HJ~g9rVAi=UF) z<6-M(5z2aD)D84Ry(<9)Cr@=#jxqAcTMAL48XxEtAC!es zb#m_t3BfA-EBT<9H9+4{lC+A^_;P0gfhDY~kAzxZgzFgWthvF0K2JnkrqpgK50K}3 z22AlB1dA%(uff^outWDtI2YR4rvbq_;vE;+7g}p~I@fPT7{3k2-!&h>4;x1qCvfT)So1 zQ#kvsVrT_oi-MGzN6{^!C7AHYOH=}zsnk4xV3KNvB{LAEeW2u*(}Af(2aj`!4*Jc1 zclg#?O~*J+0g#`NCU5T~7OM&(eM!H=leK~Mi>Ao3tQk{yKV=g zh1hw)XYkv|;ayeBjy0}AxVM0Cz~cukwQms7p~bG;3t|Kq(nCUXYo$#$EjY^rzIZ~E zUuG9!d;!vApj>ydU{@9h%o3q6uTc5-uIq=d*=^E*TegI*+CeWs?F(+q2ORpU6&VcQ})x_ar72?oaIw) zu$O7@-9X%Fns0# z$k;C48*?tkZ}LgS@gk$63fZJ*SD$Rgh+7JBQ$8*naDX^z|A_t$_kb+Bh+P|*nP_4$ ziqKuh-b;k>^Ltue&oLZ83ehS)j)uUvB@g=`nx&UkSWH{YKh3+db;zM5x0k_!B7CIl#!A{pS!aJob=N_ z#$pzW;rz5z0J7KDy~yLYRF0eF3H;_>?}#F|-s~f7qG(5ocdzo|TO~kfduBs6!KJw6 z)i3gKZ5bvlKh8AG42(IZW!z`*Tut-<;(=7geA8>-h|HgYJ4a$MX}SdY6|5yxP&8lQ zr^%-)P+e#8WRdgPj($_xoY7^>h__8{Gq;sacypz^F%_8H&B4kACDit)? zg`*&>@RIXmb^U#%CIz)~hs43bwMknpub=sqFjLD6a73lBRT6_-CJ$=$m*e{eNs`L_touDiBCsaLH0Rm1`!}z>$j^Ie?LS16OC25k3R+f*k{l% z`f{tYA877=y?qEeyRKB=kBQb+g?v$oYrH#%bcv;sR{WY1zv`5vIeM$vFaeSrz;+qN zyV67r8Q@w@JMZeXwXf$FZzNNvtGEI6_W%3fwRSci@K=~~?f7p|mCc*K7%vy>H7DV= zGmCaXn?}Nbt`XOl6Y_6d>^oUn)CrOm**_Dx@PJ$ zkzHZ&#r65v!8RG@M&uFF@z&P z1hXa?RzBPgVYv8&im33AT=5hNPR&b}W!WAM(nE|u4F}>pWk1X8O+suv2GKqo+o6h7 zGE+|uokA2Pjm}CP!3#hjt3Dy#DY(6!?_5MwcKNF%88mAI^Aqc8Izou z1`WxUYG>~sS=W&FJTGq5c(IF(2w_kXdI92KXDhpDs7Hf`=L5HTZt|P=+Ab8!uOWGE zxWUW_k}m=vCuFiBUjl>mo2gH(8YDy}>qi(D=v;>uwtf@Xqjcwj$_gi+_^J&DS%h^- z{dC7+!(VH9zx~2Bi{`LuIHk6={(o`{-h=A^@?&8Ouarq}LLF4dUQez4{UmnJZEKeA zLjf{qdM*NQX8TboQq?S8(*avQ=RCG@oGqnx5~(V=Y5Yvvg8&dzVFkDM=M;q#{A8&i z-nCEv>+d@U%X|ksqQM5*dcQ0COp70~e$656^!z_@ z(9PhWUR)gKKDyGCjbDiWh`WxfaR7lP-_vnVfXWy zJNT9#4$QyXqyD9m^_uL9 z^cLZ&v-yLGQ`s5DxB>*X?iKAC_D5q$D^fi~=V2u)vSFai=8<}&Vxe~OkGMO4u)dxQ zNJy{3sISO(|NJ1GF?u-Bemf-yM;#a&gsg)*iwCrUzL9E{p4E)qhS*c+mX z=|>~p99+8W2+${rlpgiDmEn}N=b}^^gH+U~uWq=MelTH_kI~-ZXmOPWhzJE@XWYF; z#NIej&o-3>N(;HMnX~q5l`;<<+!nSkJwWXH{0OZi&Xz5|In>$h**C=Npj=Aogh*l< z^h+L_Q-h9@jcSa%(Jf0b!X%yX0Rf{T3+=u;tL9<9UNhB{n7{*y-YX*-gWQeFAF20O zQ@DfAZrs_bntbxOZ6e5TG;F7;pb9>j{?aXV)vXUMJKpdn(Xehd{)sl<^ePcUy?r0n zBys^DE!oUQJAUwF{L~|5ML#qz`O&U&540(->uE%9^pw)-0YcUIV}FlmhG?QLt&_l0 zd>Tsnmvzq1z+B#aK9okePE~;1u8l>No8z3eT+4f6wx3gCbRlepOt$H2{{DAEW!%jG z5Vych43p2QY9Gl_^YEzz`4``~zG?s6hlQl`!i4sd0Sz?R1`CS{V}~vlDy-ptg3or) zja6W{QvKL8UDs(x_iUI0i1>Bp&WQVgG66JBwn(nv2|hKUqAINI9nsT%*Z_&~AwZsS zY~KUoKU$45W&GIdMl-zyj8keezE;60Z_*gy$NK?9_Heeyyq~Cu5zXyA+f0X^c9-iI zI#_QS!*|k+YAZwuAhAbLQM*W5U|4Bt?Qy^}c%ZvqdN!?)nx3@l5`4SBS^#pGIJ0V> zf{4kt@VSRO>l@GgH!s!j*tCS?NHcilM&(+77;ai#ni`iwW9F!q^Ihsi8=0_ZeBuVv zLHy~{+1$ARY8B-1cLd#))M_4}p(Lx`5J;_f^XlE&k_&};)F;&-K0pmB3sklj;R(XV zKGek2ZI-4U9|QN~T$T}OZDjliqjJ$GK-iTp3H!H1$jZHxdqQEwu!p}Hxy=MhtZq`wy;eK4+rCIogtgmshuWCb|l1Qa~mL z;zYN%%cK)qXe8fN_q73pp<1VRV_Mlke(H~wfmy5($BrrWB&l2k)WSYnb{K~(K%9u` z-5TVp8h@Kd=`lhvvZUz$d-3772rc5wtw;eFRI9}(PeY? zsyDsfd&|Eb#$uZRyEMYFgkRSmawJ*gXd!L=~ugC)~>^GfcE zD>ZJb3#u4d2SB!Fpjer=z&&zTt|IS;{)P4`RAc}3edap2R+e-*zp(;{!DiA;tFJru z4>D&A0qAh+@sB^jH$wH6RULzvV3@(69S+NW^I7anS6m*ERr?@ty-SwHcM;q+SE|=3 zE}D(ld>w$`-l7vDr6Ke-%XRQw7o4Uv3at3@gHJa;25|3~a}$Fm)?g9K9;Uz3;rl&j zZVC>HX{=hFmU~rC3RQ8)K_VZ5@!oqii^wXc9 z^w}vtAi4GSTnILgY|SN&$&=|BVB_^I4j2E@_T;BZ!ahLE?>EaNp@_SLj&)L`cz^!H z7WihByW^N9S?g%O&SYQ%5aq@wrz&{Q)4ZulL53fEMD>O_h>>=L>HAR>z_&p;K>KRD z4+J5<^J4U*5z#0$7>0HVkoeY{WY9X)h5Tn3UDvJvGH&5Er!C9K_SS*?kj_vYndRxu z&hzW_AbS{Z%Z?-%4~AN%F>btH9(jUQN?|+6~^(1`;)|} z)K+*K!6bL(?dKOS^JI35!Q}zsp2M3LkfdURS&+iW-S!tca&xZ5!RqEv(&taB6#WsX zg_5+2YD)osR6M-5a?f|tW+V`Y+GFwF?W3b!e!pkO2h9$7T^tmr;J?TiF0J=wcM@dd znJMVNq5q0+G=0<|^yL9{!a;W3Ov2AJl_@N5573hc7sZF)3tbdo>}7bn!^xxzeE&?jkbSmiwkN?Dx@Ur_83<9XK1eo+M;{y-lG4|Md}5tZ1%MwiCV0h&MH>0OsI z50fcCajCrog4ZiCqm82(TufTkhWz| zSJY>nUN)dyQ5w`AeMu(>(AnLL^KaLVKP3J(t&URa1Hr+Is+UHeRCDxI4`E-~ZB<+Q(CIoOfWPxBZ=po+|ZmS|}tC|4Z0 zFiO{&?x1T#dYzJeJ#0EmnWt54tX2&m=g-lQN5!xK*fU&jL!57z9pFgc5Yus6$j3If zn8mcn020FIr;o(u?bE(hy4zty;3kN7gVs_+J+EV)oQzp2p#c!w-xG2zNvF};`5LGk zuL)|bU>lI^62rG8i|H#7O#eTrus&*;v=1s)hGO{NLD)(N)bHM z55Q5{2%Ip!oc;{y1CJG9`@Ni62Pwnxn?jsSl(2FeH+eM-AVmg#f10PUa?jjbC$@+F zWzwoQDx)>;R3>sXY^72;V*(@;qw$jXt<{hRC3NLiVUBLG8j7Z2mN1ve&KZgSIg$=>>(+% zeYFU`Z*q6K#;l;khv0myX;u)Am-okLB%xuV&5C4;_}pGVE_aqasGqJnbfQ~< zI8_befqpjOD!R=GwHWqR>rtD@WSr>cumbf*TAC}-X6sIxOze4+E_}aYD_+MmaYkD7 z#-(^ggF~ys0kYVH|G6G(O>lqLii5WknJWrmeI>{EsN@CjTTS#ob~+hp95qkjQGQ5R zUC5_o3A&7h<2|&}JuziZdS1FbntOR0;cvM8MD5_xyM4b2V+%lqb)w~gN!mFhtU&Vp zH-%qH&>LCI$Opmp4~de;%X=@Wpt~;MY4+dGK?Q70mc((w#pDwc&h_ss0uy zWFAD4%5tQLM$%|-jUwX~a+3f-90;|*Mphq(7^o%+8f=H_ZPEP3Bj50dGqv zh%3O+F}*F~5vs$}7z^6B$074h@B9{MxOwsK_sqhQU$mP_P}rNeu*irg9oM%q(0I}P zrYD1))Z`5*PIv}vd(5k_%YqOxht7IBQV-37gmj#8}I+~Ot9Kf&M&dF|Io_vIRu_{1C{#^XO3O?kA zuI~gb7V0my3n_BAPDS`}!}{p~sW@_B-xHHYaKZln2mCTwnX9Mq3d-fk{^m90K8fzS zBW(QE_pL_y$LLRdJ5*5CsZ^m0H!N%`zs{UdC=)1p9+pX-qN4D6{_UgDS(u--29QWt zeq`#>;MAI$G@kD*@Sj44?)JHjhBQ9f2~Wsjib2`9QQivokI&wuf{w6#)5csj`eS(; zuf&9gu6m6wZMib=;Uu9($HY9Ok0O>fp%Sbp_Vw}|y5b;c* z&iOtAu@uHX(iwtHaKNT2aR3k{TqwglyN12qjV0UNmw^C3LcdzJcd`|nHL}{7JmCs} zD0d}?93J|8SH6uXqn=1u356vqJ$Amr%&1Tu_RX3Hm1c#6F$2Eh{>WfQ>8|~6y2&G7 zs^=JC>lvdzCrYA+LVW;a_8t3<%2-MIV4TT4pDAwm6b~N`%#P$hDg2ViA?|h=AcUTr zvC!~)I+(HURn}nh988K%PGfZnAz6#~9JxNvhM%upP!NMjoEwm0#sd!5fbt`|_!S0`Ou>xiO4m zZEn!Y(dc7ZiR5awjGWd;-;4v?G}B?F5Gd>93^~ic$xwVCnJjZ#4&`Vy3&Gsor+-l* zDO>(1$H^-P2mzGMslh8QP3F$?*v4_L_F`O|tO4Bb@2pcL#7~a@$0Ejannc`~xKA4P z&8ghDFvCC7Q>s4VO&NnD^FA|4Q;`5iY13bbA6L&2!k*4E8rKpK_kd3-nv`WTy5%)C zugQxCr8jG_Mo0+A2u!cHNTlELV4t9GxfYK^w^3VM4-fIW|4IM^QsY!DRN2!i%r9qS zJq6dHe@t3d4-g~I#Tbry zV&)A}VZX}$^Uls%MW;9eH78D?BKf=oRGyZpCJv`J;2N-z)oz2vy$Ha!uM(m5?Ld=_ z`so+67F(U1B6DkU%T!Hs(-!)InCOk;Q$&mYp7bnZfannpMc$D8M{5?ajFF;%{0}v#!Pv`1mQ99GD$~F-TC?!huQt-ub z;D>&PxI`JbJoo_VZf&rmFe$p0^9<5w82p9D@H1lz+;jS{KPZ$AzU0p!Kyb_%i#$D& z#>>!h61YT>Y(p8~bA!6bNY8Khn+x7XL9s6Pdq?(=^u1hw)mTLV&-1TXi`cO8SdDyg z%8yOeLWWNOSxi1+F2!79oSVkKu#})dKVKTbz3)*9Gr+1>m3`U&3=pHK6W%)Ne+U)N zw1lT;Qg<7ODcV)NaE$bj0p`rD+ztTAIjj_9hxc`9&(Gsfde)!W5h_2QQpL|4VdnIR z&7nI5$m|^)(s(S!Crb2Lcj+A5E#9>LZhj6J8>EXrp5nq2pbkFSx$aph^vSTn%GlOd zG=`;Df@g?Prhr~9G_?ll?5B|2X39E+MpV9^r$B6H^Rwj^cjhE6gzv4 z0Hj2hy|iTWx5)4g>K+J=8~P$- z-rsvSZE5vl`FlhL0YtT8=F@MYOk#SWsmBx;?@KNo7k44gO~EQpsSx*S`E-CF=4$$u zo(u*HA&s6=d0CFzAq=UeIMKj`!}SIm3g3ZBGw9|nA#M!9*)F+JkLuq6j*59j!ei_O|s> zVhKM6Y2gM7Cz}YL!gZ?d-Kl#fn$_Hu0kRwbK`tP5XkNLY#GI7_Z&zWP%HB})N!KKC z8LOz77YiT*_fLm?5zg$T5_O(6a zLyQHE!@p2jHtBZ~owSbeEfhd-C7c*0;CY}@<2jTK%(z4XSyuTabA<_}MJR*YxaoTV zVpVYW_0mEZ$!}g#yCQWM%4Cz$>1a?8>uO2FdcLw2)Q0|mE760lCzvHl@aZ;lO(gSD zlGT);L*FLEGHFxz5wQ=DaHP2^%c}gV^94nT=pa<8JqZKfz{U8jOY8%f7W{Njw!gY> zjYK5nom35I^v&#D5ed)=+Z$}c>0^Gcg1XK!1dad7PVI!m%XZy9=O=RH=N+4~{v7>4 zOP?>t%>0>zxx@zQn(3K%ZDePK`Y;oO?N5aB+6^r%D)?!E;Bn^UQltms{ z?>l2!e~_en0P>jmH(ha5+rPomx5(TlAo6$m?!?-BA<@FsNNO&c7br>ve5YinMc}I8 zz%Gpk-sT2{vw)DD^jYP=d#RXBSTQUbAV29k8TCWKl_seTewDIfQ{qP>$DO>n0dMN1 zs^V*D1ZDdVj}l}{rew1wyiUJ~3nZ-6c#VjIE^v+FoG%E%3>l!{F*am@8Xjk@`}Z^< zwecNW#6>n&N0`o(l&d$d|FV;Y3?RP>WU!UZng>~~rX(HX<7@mf53*s^@mwEJx{vL? ztbzhOT^7T(%pUdk_55$;9DmyMFu%*b6vCrJa@_m~VlJ*r0*DktxSUn7vCNMJUE;fh z)Wk6MG(|*nqm)!u4>?6ec^-hIC~f1;iha zmu{IRhsaMVgYbjhkLSDkV)$@Q1NETGXuqUa6IPA(8KqreTIKYINL5t-^bZ1X9msnc zW9p-PT!4@}%9DSjKsvu#XkUJ&Uc2$ldDEpt6>mUCc>Dn+qXSBx;RS|;Jk$ia*fe+( zi$~LOyH#(VWg<@RM8^PfpHi= zSKAbra&to0E6pfGcHTuj@b_+VqBwKtx!DsSB(Z`SOdMi`jWrzMSesxDvR^NhfK=4*4R)dB(M$`LgoqdJQFEmVUpI+zm(PCq1#4v>nP|?5C#NpG+Xj@U z7vV;Yk;QX5!SQFZ!G(Pmoy~_r<85+<9r0s}KWCCF0p#a*6J#4{SR8s3impa+WOs*d zYjQY~hT>H8q|VJ1WW^s2Gfp4nco{{M+u&oeUBx3a6cwQ(D(pl}3}HM@fc#?k z+$#~U!Ikcy$gnQLupaeki}T%rEyj(?ZpQxP|93s=u6?kQG}sodUJ+Q57QZY7@~TEg zBt`eNkyj#7M_>s9M{#?FC{%@tgF2hs8N+Nk4?l425t9kWPZC%%NpaS%%>;;_C}+OJ z=IbP~R1N)t^-lOpXP0M2Q_dW%Ox_|y+X|>8errDNsPHQ*A+U9EtZ6|B*MPpy`~HE2 z=vf_vv$80+4iHDEYRk7+_)JAt)5f=R#%%NijWx{pS@+7ept?XixltN=U`dMAs3=bbyFsXz39>gK2|{B z0m=c2Buv)0pO6)DTCgv_LkuN|H;yHkmVh;fhCNFwJZ&Tc#8EE$D`r*0$uow2vDP>o zOZx|Lv^s4*x*s(~7@ zXddKdPrgK3S+Dr3v&IxsayR5+y+1#S9!~gzVs`IJ6D?_hO8`EKxnjE?keg~MNIE-x1ErtkYFqE<+HAQ z35Rv55R_NDjo^bN*2&a<4W~P z<4XftnNVbqTc|MNv%l$QQ}u`_^|M-C8hMpwQ25|bZfLi&d56!puNe^>)+v$S#?wMl z7LDtpGtA6t_yG!tFzSm!yN>cs6_1_%;7P*gn%#W+gO6|oJk~=#gf)!f00CnMn=Sh` zFFmkSoLTqvr|oETQfY(3n0HLYO{#9iCFm0^$e>1H*JT+Bp2q zAjR?i6@ni9MW$uzHS#^?&(RG)MGyNGnzyU6r{349$dp4M{q86}2CwIAEE~F4>JDcb zT`BpGQpJoJJm66EfE;ocq8nmWR4`0fiL12f8=H*Uc)Y@(DyAPzRVx1C-2E>&b}%iu^^ z#)X4!rQ@N+KYgn)^BPc#g_J`e_4(D(O9EDOY>WDzFY(8i<~3zTM3q12=HgX>y`~5K zltUmcAhL&Xf87S?Nn%)X7Ayea)%si@EpEBFkPlQmvG=Q#Lm~;U_T)Q`eM3AY}J7Zq!aoE1xv_Hq;+`%LdM~%F*62a)542O-Je= zK$JruU8v7cmq$m(-meLo>hu9=t#rK)59G9)ZP7*K(Q`LhltUngmsM-bTHlY}Tiw)I z)5d^oeo-((fjJ^j53w;AUVayu5kD4EbU!K<3SbH10?CEvoWCm*k}Q{>8_XLm*YcKjXUC;7h@C zJW`2Pp=P&!{k=Fd2u}d#*Ot2IlFF1rAmYTq4>yb5i01FR`v4njaYzltUmISDbT#txxb~ z61o03N+HGja=SQ(l@2J+k&^IpRDTPULm<|#>9*OenuDIyL<`;dk>}(3kPrWbsjQ*z z4Fy}9P=}O5AUdf2Pys;B&eCwB?OABshi{bj?f9%c;kxdv?EldH;*>)m#LCOXn@M1e zigT=mca_$SOq+ViNTAeV->!>9OH|JjltUmMx)LSZ5_I&UwRy>X+7ZPwhc^v|^~p?= z90&X#nq@GQLm*FNieLrJv`(Vwf=${gxp|;~KnW>iNm>7?M8rc$nMjmFAT12z{ClXD zDXR+G+~I-@{x^Ahb?lTFZ|>;_?V(#*SCm5_tV^&P;~jsh@F;uTrnf>`qA5v`V3$hT zLMsb>`9a6$ltUm{Y6&Ydd$@hLO^CWk8w_%Pw)h}iUZMIdvSr??i5t6=WsCuFluH10 FVlI*UgQWlf literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 5acf69caf..1201156ce 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -146,6 +146,53 @@ LMS hash-sigs interop test #2 # * verify tmp/lms message.bin lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 +LMS hsslms interop test #1 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"00000000000000041394a893e40be29923751880ca3cd10b5a67c2356c87c240e0733c3a3781b421f89dcedd553f5c1c0fdf4e53e4e484766860bf77e6a1e5911c9a389390f7d62accb581ddd4d6479c88a9ba3c20235805bb544db1da6667c5bd6caec6a5cc0afb02ebb35c1db7aac5d16446d4f8fc3518ed44ceb4eab20974627ccea5b1571a292bb2fa08ccb284957605083bfba07a33f233c66187bebd4523d095e21546be84ba56ed61768b9210fc754c78ca2d6a788e1558533d5407c45b04a0bbe6a20d0660efec80e1e468874d81c98d81acc87981c236b68695fbaf70d188617fdb86a5840c835687249f688434159035778260026d536570f24a422d5255d2572603fdf631668074dce5fc469710aa99a1f21280708e73bcd4e50492d2ff1dbaea1058974fbe9bc393a4f837987faf0175b814ebafa02095bffee2518a6fbb3555de9b3ff0c87c0c7b2c61ce3ef25e70e1a2ff5aa6dc7dfb3533e53192bc68807727b76c8752bdaa2c8d0c66e6bd94ff4df2f9fcb5609cf9bd04635743340736b84a98c3769bef074c081ebdd0fd17e853165dfa4764b23c63dd8a4a8c10b58a790ab92f81a32973f0f60d9f33d801a2c476190a7f8521a998220d8f838c3932da4dab89f62e028973b1891aa0954faf3da6174ea445c0e6ec27a58bb74000253fd3d76909298d44b3beaea58f130102cba5d928afcec92991f9483294f0fb52c16df4e98c0839e058d064921582b144602306d0a1ff623bbc1b1de106045384cb0f20db3198d99b266f83cb7c4585786477cb38b140f7cc48fecb9c5c272df2881750af48da8ace04e1b109de3a295c91373c55e8dd36cdf455c17a0b9c27cbbaa80a7571cf5d5074c384948a7e006ea6346e2e8fd1082f0d7a498c6445ed2da31014f4476e41e1367cffac8ac93b7a59bab5e23dcc9130f8e3264b2920e503246e11fbb15b599e58350cdd60e3a370c7cb0a81e73fa17eb2f12702ff3c1cb6a75d7718687d545cf9d00d4bb277905291ee86f1dfc045d9c59d6aca2faa90d2654dffc652fe89c4b37048f8c46a6410aff4e46c281c1d4b2f6ea1408d0615bac721ece31a9a69c70f3b860d730996ad735eeb376022c4828135466101cdfb2c88cf02864c40bf5c5aa63e44d58c8f28933d8d3c53883a95f4109a185b7fe6eb1d87d76823e63bf9d72d96b60d2cdcf942ca06d4f278711eb1eaadf11e9bffc7af361ae0c0fa23ba2bbc2f673a05c1ee3f3ccb3bfab4dffc4b9c234b0b9c34fd1b5f0d01c4e10cfd0800f90ade702dff2c893f098de1637de094fd959440009ccb34dff6cab72fe80e839e6e89551274e6cf6e862532f524c804259a0c8e4622c106df6431dbac870cac64f7099674c8050f5149326d961af7486e8229f5b5eba743ef78dc56b4f3acb1ed5029fba223223a5e835abd61409316a68c899abe85c0514642dff696da0be97416d774fa7f5dcc3aa2c8469b47516f7b27cbbc66faa4e62b6a3201f7976ea20b89ef349a497967c093e3431df9d619a11ed2cd930324438f4cc9d11654e0c9d229d6bd239487598a3482f63294e9e85c29a576b1c86d0884000000064c6b6388b7436123dac99e0ec7fe53b075e2ba9844505ce1eb3c7f70332c6ac543dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + +LMS hsslms interop test #2 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMS. The private key is stored in +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# public_key = private_key.gen_pub() +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = private_key.sign(message) +# +# message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +# sig = private_key.sign(message) +# +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.get_pubkey().hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000001000000042e758f2a0e8f301af58847b6973a15fe4856b91af88a1ff601e2f0e87bde33afbc39202a66e38931fbecd7d493cf957b37eeb57ed2e4d8f693b97adafa8241746d775cfb9471688d935e090581eb8586e7004d6b8855963d82ccb6f79df2d93dd35848556da6735def0f0c6c8fc969c1df692341f6a99626eff37d20226cef361c8802a995fa43535fe2336d8ae468c78eb6a7082e27c2c6317c034369b588e3d65a2eeac9804b427702dc49f681a841076813ed407399aa778259e7c34c750baa6d296a384e1274facaba9e2214d197628f5df7b2bf3896fedeab377b8edb775d6e8d67f1474ba3066794447f8f8e0c13552a007557a1f1c3b9bd2b41d9b446c6bcf36c828fd4c80850a31ee603065f5cc90d198df03835195b14e27da7bf727a16081fcc787f1dc7fa6da8b9ff908fb2c02d6f2a183486de0e39cd7da7fcdee0c8e96876c56ad9b0b18e4e4999e2c81a618aa4b27e050ce488dbb1e79089131afacc446cdf15b625f4e011f8d8160bb93f326bca3bb56fa41e34893d55f17d746fc142297997c5dbbba8f6b6c80678168ba455f12bac6982e5192de5462a46e14a45a01ce9e07279aa301dfd0fa9a12c6a55059b19a19d7afbe99779ea130ddeeb5ecb67d2ddb6c1c5d198e421b78091efa5aa429e1eb052760c0d8e2eb0c0ced000e93f7f265611a385f77c0cece0496eb29010f710e70a768d3713f0b7fc60c8ce372dc3234f27c7a1c2776a939ef70c7be869337b967df2223d4f20dca697e3bb6d0e53bbad153ff08d579f60c8535710f253b90e73ee9a19e1e57df66ec6c85ad1b4cea28a9d62fc5a4cf130f70b910dbc7e6f0e6b0cce1a1b5ff106b7f0b101405c0989084b2c94977116b98d15d6062a8d77d660aa813d432cf3338484308b7beed10236081f52da44eb807f9a75fd4cc1ba998ef3fc2e4791712597c786dd46431468bb4a1975a6cd854a1da23912fc99160f51df484efc9371c2d8e028d9468635cf93226f5a8834d14cead59e5d2a61dd6440d7b91c903ae8823907b75595c4828c7710036b347dcfb67f8561e835a53f569c8b3a1cd4317b2a6b2243100ee3d9468f9191acf2276d18dde9ebf2e11a48ba1fc1a15dc51091d3358d8d1f65ec7d84b97bb1669a9141f74065454f08e5ef25432b7635b8ec673ca70e4b3c25d07975a6fb725a56f28c1b5a81a6da2fe0a2c3474275926f9819a25b942462a68097e1cf6d9ae94f6b1f76b54addaeda04f9fc8db025fd6c453e1ad928f9323bf1381fce1893938828612728185d22a3d45d21ce762c066ab53a582c487d76d431e5b8f65a382142dd823d4620931e5572a4e6aee69986421afa119634bc8ea88aa6535c4d619ca0e0af94934637bc0c834e5e2a7a2853fa73835d00e13e5f26ad085ef66c8efb60097860cb199e03596a3b8f0ec78690d527bbc9363dd9702226788b1529871df74918ae2a4e02745043bd5ee8ab027826fb4cd54b0c27d99076757a1b41e2725ec02adc7926e8213796a8aa1740a2dc675437771e0364a83b0bd64c9620f6c203d92626ff29ef736eac0e13c71fd1957333ee0048000000061f7b7d6f916710efe9ed625ae689c67b3cc1cdf0d672e58c0b86b3839bbba2c243dcda2e63b26f5efa39ced6095a54625e67ab25d3df068e903eaaee894ac0f1fdeb4a2f1390f655db3608583eacfb0be4282f7bd1c42c5d748d524d7cdcd45878dea56cbc11a63bebbd74a5413ce72a931b1d4794c78c4cf16315bf2e055bb3305fe0272c8b916856cc27aa7a773ddce62afa7bb4da76c287e0ed3ed10452512de82c051f17b49c608b1a259e16a3812c0de684f2cb1ee59296c375376f146e2b0cc299ef41ed8e6fdf0557ec8d95fa026970f8d47c8347fed1e37e018413c5e813d1726ea18bc926ed02840349ab3b2adc8758a9cd57be38e9e76869762a81bb79721ca1c031c9dfdc3735fe9318064b62c2a7e8e2ec099963257b0705aac812dbc8cc3fbeea81af7c0d592c7e2ad1c21e877d4ae392b13ac1b57a8311d406":"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 + LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid # LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad From 8b55ba623e268a4612cd8110f4ac7f6d86c85c2c Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 09:28:26 +0100 Subject: [PATCH 0265/1574] Source LMOTS data from hsslms So it can be reproduced Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 85 ++++++++++++++++++++------ tests/suites/test_suite_lmots.function | 25 ++++---- 2 files changed, 81 insertions(+), 29 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 0845a17d0..7ae80e92f 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -13,26 +13,75 @@ LMOTS NULL-message sign-verify test # signs the message, and verifies the signature. lmots_sign_verify_null_msg_test::"00000000000000000000000000000000":12:"be5fa89144f2d665c66ead8216bc02006e0eccd8b3697a0aea44f6c93afe7955" -LMOTS hash-sigs interop test #1 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004DB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":0 +LMOTS hsslms interop test #1 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of +# the LMS key), and the same message. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +# ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) +# ots_public_key = ots_private_key.gen_pub() +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig = ots_private_key.sign(message) +# print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000040bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":0 -LMOTS hash-sigs interop test #2 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"85A77D026E8C704B14EF665DEB0A648350FA8859":"00000004BEEF900CA9A14982E011A5A94503D566288932AD4B9CB85D1551C766A56F788B0D223FBA0E1AD722BE48365B4CE5DA21051B3A79EAD8C1046944192EE51E162DE1E9AE9B13DD8FA90867A17666CB8967F7CD7F4F5383703CCFF555EEBDC8123AF3C4E39D0A5D61725B6A7F23CE587D256C08D31510BCD895106CD524B432A9211CDCBDF5ADDAD5F1D76D428A76DF2556FFA8AB546CFAAA7F2FE86164B976FDA2940498DB0D1A2DE29972FFD55D83E7CA3318DBAC31670565A1E5F59E36342F887E0EF7855AD93CA5F1951307D79EEA375168BC35A3A0B053AEBDB4D7157AD929B0D7DE9FC1E8C32C9A2D679843CBC77560EEDA5959D0AC8407648344C6952649A303E7B6FCC2EE979E1B2786B898A01E2918894DB4E37A0ED79A30260A45959B4BB3016F081181190CB740376389827B2D56DF7EC00871DC9A198B74C7C6086C940A845D54198F2D5DD7A47F97A192F33A85AAA1304A3251B82AC33C5E7B3BA20D2A9BD49BBEE0B2DA2338E578E6F139BB7596DC3BD89E86CB393C42765B9FE85457116906C3F9A8499CF5E539A5CCB3F6D1F36CA209DE6942F807E579AF0EBF072EA110A812C9E420647CE7C8B2BDBB5F56C5B3B7EA80A53C3574F4ED32E4708DFEED60280ABBE2021B3791B0CB09C1F0731353234A6A327CDDFD4E3E2D9DD5A16FCDE3EEF09C67065BD702C07B53A005D3FE7D23FFD77D40E49C82165EB104343A166E808A3CAEDE1A43AE3A82E1788B49C565CF88A2AB8E2FD37657D53E3679D7A818D864F55144011AB498A4A985C46342F3562FD80ECB86497C3DBB759006E5FFFDC01CAA15C69B716174EDCB6E9870CF391003D3826451D1BEFDCC84C093428EE01DAF883190F5D2542B36A7DE44A453AECD5E93B768ACEE75076BE3D73A66F17CFD8E4A49B1F61CE9446815A86FF5FB0EA070A751893C85360C038A161D3DD4D2C66F440E7265153AB346EF620156605C028DD9636FAE0C9A20DF09303ECC5E57A6424505530F70D25F1C95FE51CBD82C2AD0015EB9AD5379CEC463FA0331A14DD971B7C2311FC45979C531653E7252884BAB7C49F8CD652BDF6FDFA76984445C63B54ED22B4A8A267D091381BE7B9B7608133968BA46106BF42B9091F78C085E674D1F70FB91C68D07733F6412B1583DD2F37C6ECAD6BCCE1A1C7D0A7CA80677F679A5AFE08D15427E5C78CE6EB9AA90F51F40343DC9FD1316DCEB2C1EF8EA217B714B0DE1AEECE04D19D0D7757481EDA6E8C51BE85B7B24720E8D62B8AEC56C1A1B9D278B874AACC0B492CF44ED4E7B1200C82323C1AFA0FC776E92B227E8979E3A92EAB05FCF18A43AE648397088F4991F73ECE22C03B3F42F51C0C0FE0DF37919D048FB473F7AB0E33310B9782DE56384BD888CE5E2A644E20A52DD47F710DB0D3169991E29E716ABFD84CA4850080B6C252CB96CD8979189819E532DF56ECB172F773919733BF4D442901EBFB656EBFED4C6D83FAFF288279779499091C94432ECDF83188048AB596D65BC48FA708D485F9CDC50C8B470DFE22157E8F5EE366722A04E8CE7B861573E5FC97D34055BB50B562738F803B202F7F8":"00000004DE9CE10EA7125AC6399B6B3C7EE24224000000161D61E675F3EA19C5B95DA4EE2E35BA061B39E7639F3989F8AE4B0696B3F87E4E":0 +LMOTS hsslms interop test #2 +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of +# the LMS key), and the same message. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +#ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) +#ots_public_key = ots_private_key.gen_pub() +#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +#sig = ots_private_key.sign(message) +#print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000004e29f47d2314ebaf22ebb821dec653f5bd105aced5d24829787a93da910baa495cd5a8576dad606cc7407c4d8a38a715ded879274c5347a200cc1c08a6fcc7288e280bb2e66b682c4b20c514f7a990ce01594001917be8d1cb5a23c22dc00c81b18b8047177cc109a1ff862f535319b703be8e4439062348b7bc73e85e69f7d3f033767146130991f78b497e2a0eee1059d2cd87e0a99c1aae47a6496664735cdb383a8f7a1d686199cf2e07a67e9ef409048efb76cf0c689c1c6c67a5b6966e4b4773710bdff3f72a4f85428187f912c9f13a8bd06533450ce04dbbd2c022eab44a5f6a822d78918f692fa5c6c90aab8941072d679b89388160556597acf17b95b3ffdf8c4c21df5327bd756772a45fdde182004d91cff5aba111fbb70b5970a7d7416220de31e6e76646372e4a1606fbbd5be215a32bbb84da99c63af271edbd42ee87de174cabec7734b6d924d329640bdb84059cbcea89caa703667f5e1b3c1c71b53213f1cd7d1da3e42da70edeb7c0b596bcb981c08eb0f02408ee028a57165cbdc36c9edafa559826c2e690e73da7c7fa1b0fa0e6041a692a2e8f27af80513c07ecd89caaf78ddf8e2edaa17bece335068153b253ceef38b491801c1ef7c648045ce7c517afab888603648b17d3a98a3b5622b469a829b023c5cb2ce42462c28d22bc3de91dd8b38bab539971b0c7596dcd0d8c0d84bfd7925d6e2f2d114ca4f91fca12178a451ac0dabc8c21396ad5be57ea0648bd1054de00aa7fd3d46453ebacf6b611e05842f5f019aeca3c798ae063631fd5e56ea1f7a21bbea5c30e6d60a724ce187e7c497d918d2a4d5094224dde94a02e851eae1626533992a599a641466e4d683e40b5a28695aababd2d7f7d2ccee72c289876c8d581babaeb3d738f1d1fc765e9fee3f70670913e07cd38fc7b37e2caba0a735352aa3f4b2467010bb1b725d4bbd86d8c98eece10e925d8bb5c0e993dfa45621f91596f5d1e1446b118c48bc1e403627fdd299ad4d3d5f3a2dfb239bf22e7ff25d83287ba3a96b24cda0252df1907af1cb74d31d720c5baca0f316769f7f98b409c17bb543c39628446183e326d0745b4424520a9d582fc817eac55b0efc2ca4659a60a95e1d3b77bf1454e5cd4d1d54d51159d3df70a78345d1d6a7e0746b3deb080883f6506e9e7d0fb4bddaa66aa7cf555df1bb9d3f848b7e604b690a403f4e40188110e0ef9af15dc4952a8ed100987e39e8184be8dc62441ac2a561c7cbe431c45b0ec03c41c4867e38925977fc240ed2a04d73d4319435de354dfe0184220c71bd59be4e7f6dc9a1a27f4eefc990d615b2c12e13f1821727a607afdab359d2bad5b1be689a36662e052cfade2c0f5cc842c090082068d324f0e338830030d255ee6e6d9303c0037c24985338dfa16b5980a99782af1b3aca9123b5063e0b9f1a31105e2c9eaae2353b2ed53dab5b4fb43b4697d05fcf4941be071edf3456ac8e35eba39800ad968155574c14b6ce109982177b00ea5fbb739dc7553e40c98824d4932185e61ccc380b07476ae210ce3657b24f4639261a5e7e0c52d6afdea97bb2fc":"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 -LMOTS hash-sigs interop test #3 -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. We expect this -# message/signature/public key trio to verify correctly. -lmots_verify_test:"C32F83EFBFD87F386A6C0850CBB93A75F2506A35":"00000004BD2D174BEBEEF1CAF06E4BF1088DE2AAB17C0528579BD4E1C4A1ED583C36BDACA49798373961B605EAEFAEFC0B4BC39C7AD30572CD29BEBE9AEE503CA2D8BF8C31C8A1B71CF67A18EE01A8A878699F22A1AEE32731E51E3EAD3775EFD8339E263C5A4544559506BA5502B9AEF59217ABC24923EC5E28D18BA18B0D964DB277007A76B8075B39F48CDA92148C9BAE1C7E5421CA753FA2D6BEAE8F49977E4E5B6F38D35BA28A526A53061E57BB92DA0EBBD4AE01AE9FADBED74F503DC39FA2E10C20B47DFB3DFBE25EC35618D2307D21716B10F8FB5095B42C289D1847E5D6F9988C6763D288667D3B658A4F3613E084DAE8B78E0B295A6ED28E88C676995AA5EB1533CDF8EB6F95A5E5117F06B1759495A9CB6E40FBF1F97FF73FDCBFD315C48DA631AB0425CA0633817C46F25E84AEEA37DD77310EE56815E83F862EF14E15FC1246243AA02F40EA32567237D5ADC2944BD63CF55FA4F0DE251B3F5C067D9EC396D5E20F9CEF2C555D89DA721D91D6D607653B97636AB10B74F39FA984D23A3D276EFF5F49C336274A66AC491EDE34686C6CFC17F5312FD3E3E5749A2E472011FA391A5ACF09D918B01704B447FD5E3EA6BB726A3475775DFE6A98CE5473CDEDB630EA4D604BAF36A8B8A8E567F05929E8A74970AA742FBC945021017E464E753D5AC497925AA4AECA0CBF562B2E39F891E177FD8E4E61A698B099D21F13EFD0DE5357A1970314D8E3AA1D2A84D3BCF75A7876C16F585322CC4C613FE3AC8FEA5F258FC9C7200765E9209378C362AFC1A478A117D913CE2BEFEB51103E48D0802618C50918005F1AA4228B67BA1A1B001A91A032019A135B8AEEE3D0158A602C8DCCE5A6580DECC16204E410CBB15FCF36704BB2ECB826A229E45C454B4A5DFC12796E636B300C624DB4E6EAB424B17A18A5A5F52399F247A1507A5985D06F90889FE381129148AF8447B392D4EC0775D91502B48D9F212FCE3F81639901C462F752E27FBEEC9E2B7F8CCD16053FB839E8ADF8CD3E8FF8AF3B3E884F4F524C2026BD3B337B7058B53CFC7596F9C813FFD746B8AC0012C60E96140934B4EED1D8602E57A1A6EBC01FCFD66053AF9614FAF0D0F7320D50D440F2A3148A0DAEF5E2FA31F854D56045065AFAA52A60DC3321E2D7C104FF505057D55CD94C53C31C14DB0DAA4D55C4065CD9BCD78E1B8532A680F7DC3544021346CC59ADEC061DDA1B7606BAF28AD87C39AB8AF3D03E981EFFE50B4D5347175517EF212E61F02B594A96492091AC82625D334504EF19BEEE52E01B111D43313F35EC69C88EF38926071506AB3A5B372DD6F2B901AC1E12E61CCB3ACD3D0777A7A10F137126DAD0D1970D369A067C3A1F19D9CB8756D7130B7EB0C08CF725EB2ADFAD61204195CE14F3C99A88A9B8FA2FDCBD612DF9266614DEA073C9EDABE07B3793048167D4DA49B305AE27974D48A296871350DE036CAA348D2F9A9CB19DC094E5904E25DDCF5657227DCD2A4E620121FBDA032A58836EDC14F3A7C4E51319A60F91F941CC61757498B769799394574C9D198426AC3499F0D0BA1770AD6BAA0D3716333F785A9D7D":"00000004DA66203A7E7BCA2362DB3C8E897A84B10000000D1BD4EE08FAA341C2CE018BD12776E1B8E6B8B2C1EEDAE6BD0998E52F089936FE":0 +LMOTS hsslms interop NULL-message test +# This test uses data from https://github.com/pmvr/python-hsslms due to the +# limited amount of available test vectors for LMOTS, and few implementations +# providing direct access to the underlying OTS signature scheme. The private +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# +# To reproduce the signature: +# sudo pip3 install hsslms==0.1.2 +# +# from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE +# import pickle +# +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# private_key = pickle.load(private_key_file) +# +#ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) +#ots_public_key = ots_private_key.gen_pub() +#message = bytes() +#sig = ots_private_key.sign(message) +#print('lmots_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), ots_public_key.pubkey.hex())) +lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7d37482a2ae719a811ba3a5c65cc036270d4b31ed6caa900ba0a98e3e5d6f7e4286571e003fd7f8fd523c7707eb00d25ce6b0d2c92317b2531b8ebb184ed65f7bd4c20611154409acb5134389c8aca9cb98c380fc8de4f48078a1859126967275219ca0168c6f0cfec0c2f63f98fb2a741fc15a5d59b50a97efe2564bd8a4f05fe250d4ec316e6a833a2dafaea47efa359840fb887e3a5ae0b07c75ed1dda3cc253365c5b9320180e5273a2c5078cdc0d3aefeaa94d8888c3112c2b68f85fdfaa13b5088f4bdf570f5a2ae32114497d28a6b46abe602f142a9382651a4b5fe7aeda3e54deaf85d51d59bc945e3970d4f603cb1617137c182087dcecb7f97016e138ae4c7f8926a9fbf7d1154cd53971e3c86e230fe783efdc44f4459143eeddec73612a11f6c4796bb734b703b94b3ee02a136f676ff959bd9dcba3a6cdf8244310b4125a07ef7a364d47c2d0067370f9024bb02217ea19baafa6111dbe1daa6f4d3ae287f8b4675934a8cb124b64f3d2baac01504a66b5cb80d5fe88281c92eb2d9e6105368ce748c2269f28444d20f8fa06f96738942606fd2ee1ae17b45953af9cc8aa10089b80c951ae7d4c6496476e0f9d88050a09433a99b92f1bd2bc2cc4e712fbba650e8c61716a2396bd802679096b2ed113dcf9107196f41185c9baa295c1000879dae4e36344b7ca9a4f040ceec064ff4a654a561a21fbdd0c28a4d0245da9fdb37a7ce20875e323db04197b6ec9d0265a840687a4067b6670482e3a765895a57f26fb971e359f30fa3c65b6197fbfe6433364f0062cc20d8ee2ebed5c3b96dfcd46aa99956b5b1602d9ea16b05ed54f1a72557148ec3a43baaac2474f735ce82979c87df358d175f4686aebde24b768f0f8dfa3c20d9c33db8244f47793eae676afe7485b08163ebd5c4b02c227a38824bb58d034e0a00395ce19e34846b8f6ce3cd3ba877a6ee953738c0ebffdc6eee63bff648e1530f611e9b5de0e5c41bf2f50375347dbe3c332ec523d516aa9478fdf61952f44068447d1474bc3a33f0d973f7b36360ddefd21ba57916dc0ee7a21082ec9c024d78938616e8bbaff451c8da9675cef9d0610872e8cd2b7673a86148e3abba473d0e4e1579ca3faa891d475a6bab9dc3a90537c701a62f41198b0e86f101b506a8a5b102ddd6fdafca56e7f32f4217f8bb7c228066c53fcd78b8541c3ffeb88fe685c796711bbe2d8fee6e9adcc077c140216438c5db25e7b7b34164fce6343dd8de5aa8310d18c9cf91992a25e6f71eb39fb7c267dc3b87d1781b34a4f3c84e2ecc04f73104d50e00631e2e7b157a8374c2b08dbcb3210b2852738a16cc580fa6df62b93f27151bfa77eaeb726ab18137e14962676836a573a6ac62b1bb8d40b402d2da0b37bb5a29e2ef154a78f61b632c2e9279670ba9a7a2c2ceda3f931940a5766738ad8ee62761c87d94e50ec995c01484fe6c96d0fb2ae97394e6497a4a8087c366edd038d72b01f4eb351a2ac41d19df56db40491da464a6f0c646b859e7ea3b0584be618fd7fb48c":"0000000447cc5b29dd0cecd01c382434a6d16864000000033fa1330497e44e2773f08e4727eb4d745db9051d6a60779e58a922dc8a7d4ede":0 LMOTS hash-sigs interop negative test (altered random value) # This test uses data from https://github.com/cisco/hash-sigs due to the limited diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4821ce5ce..27a74b6d3 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -76,7 +76,7 @@ exit: /* BEGIN_CASE */ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, - int expected_rc ) + int expected_rc ) { mbedtls_lmots_public_t ctx; unsigned int size; @@ -91,17 +91,20 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, /* Test negative cases if the input data is valid */ if( expected_rc == 0 ) { - /* Altering first message byte must cause verification failure */ - msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[0] ^= 1; + if( msg->len >= 1 ) + { + /* Altering first message byte must cause verification failure */ + msg->x[0] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[0] ^= 1; - /* Altering last message byte must cause verification failure */ - msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - msg->x[msg->len - 1] ^= 1; + /* Altering last message byte must cause verification failure */ + msg->x[msg->len - 1] ^= 1; + TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + MBEDTLS_ERR_LMS_VERIFY_FAILED); + msg->x[msg->len - 1] ^= 1; + } /* Altering first signature byte must cause verification failure */ sig->x[0] ^= 1; From 66edf6a833baa592758becceea2f9a4047ad5085 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 09:36:58 +0100 Subject: [PATCH 0266/1574] Use hsslms data for LMOTS import/export test Also, test that export fails when the buffer is too small. Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 8 +++--- tests/suites/test_suite_lmots.function | 39 ++++++++++++++++++++------ 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 7ae80e92f..8fdce0cd1 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -104,10 +104,10 @@ LMOTS negative test (invalid type) #2 lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMOTS key import / export test -# This test uses a randomly generated LMOTS public key. It imports the key, and -# then exports it, and verifies that the exported key is identical to the -# original key. -lmots_import_export_test:"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A" +# This test uses the valid public key for hsslms interop test 1, imports it, and +# then exports it. It also checks if the export correctly fails when the export +# buffer is too small. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 LMOTS key reuse test # This test uses a fixed message, and then generates a private key, signs the diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 27a74b6d3..367e55aaa 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -146,20 +146,41 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void lmots_import_export_test ( data_t * pub_key ) +void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) { mbedtls_lmots_public_t ctx; - uint8_t exported_pub_key[MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - size_t exported_pub_key_len; + unsigned char *exported_pub_key = NULL; + size_t exported_pub_key_buf_size; + size_t exported_pub_key_size; mbedtls_lmots_public_init( &ctx ); - TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - sizeof( exported_pub_key ), - &exported_pub_key_len ), 0 ); + TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), + expected_import_rc ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_len ); + if( expected_import_rc == 0 ) + { + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); + + TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); + ASSERT_COMPARE( pub_key->x, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8), + exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + + /* Export into too-small buffer should fail */ + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) - 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; + } exit: mbedtls_lmots_public_free( &ctx ); From 71f554b48fcd562193d4a0f53beb54f3612ffa25 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:02:09 +0100 Subject: [PATCH 0267/1574] Use real data for negative LMOTS tests To avoid errors caused by the null public keys and signatures Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 8fdce0cd1..3c28df7d0 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -84,24 +84,22 @@ LMOTS hsslms interop NULL-message test lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7d37482a2ae719a811ba3a5c65cc036270d4b31ed6caa900ba0a98e3e5d6f7e4286571e003fd7f8fd523c7707eb00d25ce6b0d2c92317b2531b8ebb184ed65f7bd4c20611154409acb5134389c8aca9cb98c380fc8de4f48078a1859126967275219ca0168c6f0cfec0c2f63f98fb2a741fc15a5d59b50a97efe2564bd8a4f05fe250d4ec316e6a833a2dafaea47efa359840fb887e3a5ae0b07c75ed1dda3cc253365c5b9320180e5273a2c5078cdc0d3aefeaa94d8888c3112c2b68f85fdfaa13b5088f4bdf570f5a2ae32114497d28a6b46abe602f142a9382651a4b5fe7aeda3e54deaf85d51d59bc945e3970d4f603cb1617137c182087dcecb7f97016e138ae4c7f8926a9fbf7d1154cd53971e3c86e230fe783efdc44f4459143eeddec73612a11f6c4796bb734b703b94b3ee02a136f676ff959bd9dcba3a6cdf8244310b4125a07ef7a364d47c2d0067370f9024bb02217ea19baafa6111dbe1daa6f4d3ae287f8b4675934a8cb124b64f3d2baac01504a66b5cb80d5fe88281c92eb2d9e6105368ce748c2269f28444d20f8fa06f96738942606fd2ee1ae17b45953af9cc8aa10089b80c951ae7d4c6496476e0f9d88050a09433a99b92f1bd2bc2cc4e712fbba650e8c61716a2396bd802679096b2ed113dcf9107196f41185c9baa295c1000879dae4e36344b7ca9a4f040ceec064ff4a654a561a21fbdd0c28a4d0245da9fdb37a7ce20875e323db04197b6ec9d0265a840687a4067b6670482e3a765895a57f26fb971e359f30fa3c65b6197fbfe6433364f0062cc20d8ee2ebed5c3b96dfcd46aa99956b5b1602d9ea16b05ed54f1a72557148ec3a43baaac2474f735ce82979c87df358d175f4686aebde24b768f0f8dfa3c20d9c33db8244f47793eae676afe7485b08163ebd5c4b02c227a38824bb58d034e0a00395ce19e34846b8f6ce3cd3ba877a6ee953738c0ebffdc6eee63bff648e1530f611e9b5de0e5c41bf2f50375347dbe3c332ec523d516aa9478fdf61952f44068447d1474bc3a33f0d973f7b36360ddefd21ba57916dc0ee7a21082ec9c024d78938616e8bbaff451c8da9675cef9d0610872e8cd2b7673a86148e3abba473d0e4e1579ca3faa891d475a6bab9dc3a90537c701a62f41198b0e86f101b506a8a5b102ddd6fdafca56e7f32f4217f8bb7c228066c53fcd78b8541c3ffeb88fe685c796711bbe2d8fee6e9adcc077c140216438c5db25e7b7b34164fce6343dd8de5aa8310d18c9cf91992a25e6f71eb39fb7c267dc3b87d1781b34a4f3c84e2ecc04f73104d50e00631e2e7b157a8374c2b08dbcb3210b2852738a16cc580fa6df62b93f27151bfa77eaeb726ab18137e14962676836a573a6ac62b1bb8d40b402d2da0b37bb5a29e2ef154a78f61b632c2e9279670ba9a7a2c2ceda3f931940a5766738ad8ee62761c87d94e50ec995c01484fe6c96d0fb2ae97394e6497a4a8087c366edd038d72b01f4eb351a2ac41d19df56db40491da464a6f0c646b859e7ea3b0584be618fd7fb48c":"0000000447cc5b29dd0cecd01c382434a6d16864000000033fa1330497e44e2773f08e4727eb4d745db9051d6a60779e58a922dc8a7d4ede":0 LMOTS hash-sigs interop negative test (altered random value) -# This test uses data from https://github.com/cisco/hash-sigs due to the limited -# amount of available test vectors for LMOTS. A public/private key was generated -# and used to sign a randomly generated message. This test is a negative test -# where the signature from the hash-sigs interop test #1 data has been altered, -# and is expected to fail to verify. -lmots_verify_test:"C80B24A82D52963AB241C84DCF0EEE55BB24F9F0":"00000004CB3B6B24FD191CE8894AE3C4E2CE2DE0C3F5D508691A9162F37704E07838488466CCD746E55BC8E3055C7A4D4DA2E10775DAFA2E8E5FEFB1CEB25973BC3323B61DE5E2EA7DCFF15DA482320F958023CA2E718C69B977019E8F2FCD47151388E2E5E11170AFE93BDEB508362B3A317835A9DDEB18F0CDCCC0731902DB3D37F441C93A490DE53962A915AB5060A1C157D61DDF061F272362AB7FD9EE95AE48D3448F204C81A3F260792784E1BFB49871A27C09CC549A406520F0B40BC74CAAD082EAAB12C994B8495B8C80E96384FF2222255BE6C4EE5AF439534E616F9C0B53E951F69D59BD0506C0C0366A679A8329ACF6E2D1D4E4EF49D35375A8EA46FCF3C9B2F8E033C242EC61B796E43B901407077A2AF3F0AABD2D0CB9004F10D91B57C2D5E8BA7BA9268FF94962CC102F55B5120D7D2F7A3BE281BA01D78895ADA2F05B77967EDA0E1EDEAFBB9BBC3D68DCBF682FBC70467FA2BEE5DE65F54247C4BE5BEF41F5108B6CD09E7698E3AAEA04B60746EDD0E2623B66B092DDA21EFA5A0D36805D101D805CC06F0E818B46059B3984C8B8A526C4239F66ED34B8CA57E178DC5E7B8D2BE029114B4CE466E2B5A081729B3F3A3F3845DDE177062F201C09125ED3CC381AF35EAD795440C421A136F941F09F3E4BA9E0203CBA875AF477AB0246342700F323E65DC327D27966377D871FD9C58BEC8797DEF35E1D0751A554719828B87332F601884EBFECB63A8D4F390785B3826BFA384BE502D2322C919ABD12A486C2AB124DCB7B74DE91241A30EF0388411E52145A88971C6C0A4E7C4F23EDD8D6008065A3D108C6B1EC5219BB0DFDBD37EE3A7A8DD37E3563A5777838FCA61E9E744813F39CF70B5A0F50E1BD4FF8733A3BDA76D2135969809D91A9786F22DC2ACBA4E0164C411019EC77A0BD253A42AC7528FC7C0DA1711FBD6C23825207060463080F9E04B7D819C8B150C22B8BA87C6277696EC409369C48AC0E3233DE52D31EF6D2207D2B57DFC2D0C43BE8212EAE6CB1BACBC2D3568E5527A14065D5F1F56AAE2AFB5FB1CEFFC228A30692BD030C71F4872DB54F2632CD919DA61576CF58D1EBE3D7988183A9C789EB74A3D7F6BBEBAC035A43397BF684C9E1130B252940DBA4454311A6A3D54D9386D48E1D5A3E70944EDF725AEDC5440CD610F79AB05A43C917FFC15213295EB8CB8432B6554A47C2AD419ADD52E0F5E0BD7A1E0F873257E69F8647F3A07093387B7A64C4812CDBEE536E45D531F89653AC5F14A4715CFF40692346FE6CBF2F9B92D9F1101C379AFD5E6154605059C1DA463B407E79C139396623DC7F15EEFCE424C8E214C6A645EF002F90A230D8F62177CBCF2A688D4F822B119835AD3D3A619F46230257A5AD59CB0924B2584DBA96AADE0A2487E7409EE5993A4F0E3DC46C10B96595CDD17D72C35EF4A52C5906655B0AE649B5DE03B7D46F3839E808761EE05E9300050647593C048669A952324B0188ED225AD11BED3FD94E44E134FB9D6DAD53CC34ECF62695E30637C4528C450D62174E2F8ABA2C09F134412EF889C24B36224BE4259B363A9D8EB89BAEE16BE1898D46":"000000048440BBD3F47A167DD2D0E446DBCEA774000000138686E25BC07C69B43A2D3B7165DFF85C134177C876EA47D96FEF069BC96A981A":MBEDTLS_ERR_LMS_VERIFY_FAILED +# This test uses the valid signature from hsslms interop test 1, and then +# permutes the random value (C) of the signature, and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000041bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #1 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMOTS type. This test has an invalid LMOTS type, and -# should fail with a bad input data error. -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the valid signature from hsslms interop test 1, and then +# sets an invalid LMOTS type (0x5), and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000050bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS negative test (invalid type) #2 -# This test uses a null (zeroed) message/signature/public key trio, with the -# only parts set being the LMOTS type. This test has an invalid LMOTS type, and -# should fail with a bad input data error. -lmots_verify_test:"0000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA +# This test uses the valid signature from hsslms interop test 1, and then +# sets an invalid LMOTS type (0x3), and is expected to fail to +# verify. +lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000030bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED LMOTS key import / export test # This test uses the valid public key for hsslms interop test 1, imports it, and From 9fc303a99a151806d2aca629609169cfc920b3d8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:32:15 +0100 Subject: [PATCH 0268/1574] Add extra LMOTS import negative tests And fix failures that are related to the new tests Signed-off-by: Raef Coles --- library/lmots.c | 2 +- tests/suites/test_suite_lmots.data | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/library/lmots.c b/library/lmots.c index f19871873..a172f77d7 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -415,7 +415,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); - if( key_len < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) + if( key_len != MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) { return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 3c28df7d0..fdb6e43f2 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -107,6 +107,33 @@ LMOTS key import / export test # buffer is too small. lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":0 +LMOTS key import too large key test +# This test uses the valid public key for hsslms interop test 1, add an extra +# byte, and then imports it. This should fail. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b00":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import too small key test +# This test uses the valid public key for hsslms interop test 1, removes a byte, +# and then imports it. This should fail. +lmots_import_export_test:"0000000447cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de49":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import no type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMOTS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lmots_import_export_test:"000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import invalid type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMOTS type to 0x3, and imports it. This should fail. +lmots_import_export_test:"0000000347cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMOTS key import invalid type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMOTS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lmots_import_export_test:"0000000547cc5b29dd0cecd01c382434a6d1686400000001f337dde97685d008a4440b59550277390018d3f1d485fa4b8c91796032de494b":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + LMOTS key reuse test # This test uses a fixed message, and then generates a private key, signs the # message, and then attempts to sign the message again. The second signature From 142e577c34af335567bd003a99c20358f5f95ced Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 10:47:27 +0100 Subject: [PATCH 0269/1574] Add extra zeroization to LMS and LMOTS Signed-off-by: Raef Coles --- library/lmots.c | 19 ++++++++++++++----- library/lms.c | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/library/lmots.c b/library/lmots.c index a172f77d7..788063c54 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -700,7 +700,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, NULL, ( unsigned char * )y_hashed_digits ); if( ret ) { - return( ret ); + goto exit; } ret = public_key_from_hashed_digit_array( &priv_ctx->params, @@ -708,7 +708,7 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ctx->public_key ); if( ret ) { - return( ret ); + goto exit; } memcpy( &ctx->params, &priv_ctx->params, @@ -716,6 +716,9 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, ctx->have_public_key = 1; +exit: + mbedtls_platform_zeroize( y_hashed_digits, sizeof( y_hashed_digits ) ); + return( ret ); } @@ -765,14 +768,14 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, tmp_digit_array ); if( ret ) { - return( ret ); + goto exit; } ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); if( ret ) { - return( ret ); + goto exit; } mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, @@ -810,7 +813,13 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type); } - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tmp_digit_array, sizeof( tmp_digit_array ) ); + mbedtls_platform_zeroize( tmp_sig, sizeof( tmp_sig ) ); + + return ( ret ); } #endif /* defined(MBEDTLS_LMS_PRIVATE) */ diff --git a/library/lms.c b/library/lms.c index f30f349ad..876deeb5c 100644 --- a/library/lms.c +++ b/library/lms.c @@ -516,7 +516,7 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); if( ret != 0 ) { - return( ret ); + goto exit; } for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); @@ -531,7 +531,12 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, curr_node_id >>=1; } - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tree, sizeof( tree ) ); + + return( ret ); } void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) @@ -688,7 +693,7 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); if( ret != 0 ) { - return( ret ); + goto exit; } /* Root node is always at position 1, due to 1-based indexing */ @@ -697,7 +702,12 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, ctx->have_public_key = 1; - return( 0 ); + ret = 0; + +exit: + mbedtls_platform_zeroize( tree, sizeof( tree ) ); + + return( ret ); } From 4511055511b358487132cd946335f22f0089abaa Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 12:28:52 +0100 Subject: [PATCH 0270/1574] Exclude binary LMS keys from file checking Signed-off-by: Raef Coles --- tests/scripts/check_files.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index a0f5e1f53..3d2ca3ea0 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -119,6 +119,7 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', + r'tests/data_files/lms_.*\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) From f9b85028659e7769ac1cbadbd819e79c4626789a Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 12:42:28 +0100 Subject: [PATCH 0271/1574] Add LMS import/export negative tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 54 ++++++++++++++++++++++++---- tests/suites/test_suite_lms.function | 3 +- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 1201156ce..85aad52ed 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -224,11 +224,51 @@ LMS negative test (invalid leaf ID) lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000040000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS import/export test -# This test uses a randomly generated LMS public key. It imports the key, and -# then exports it, and verifies that the exported key is identical to the -# original key. It also tests handling of too-small key export buffers. -lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# This test uses the key from hsslms interop test 1, imports it, exports it and +# tests that it is the same. It also checks if the export correctly fail when +# the buffer is too small. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":0 -LMS import/export negative test #1 -# This test uses the randomly generated LMS public key -lms_import_export_test:"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +LMS key import too large key test +# This test uses the valid public key for hsslms interop test 1, add an extra +# byte, and then imports it. This should fail. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d00":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import too small key test +# This test uses the valid public key for hsslms interop test 1, removes a byte, +# and then imports it. This should fail. +lms_import_export_test:"000000060000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import no LMS type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lms_import_export_test:"000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import no LMOTS type test +# This test uses the valid public key for hsslms interop test 1, cuts it down so +# it's smaller than the LMOTS type offset, and imports it. This should fail, and +# not attempt to read invalidly outside the buffer. +lms_import_export_test:"00000006000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMS type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x7, and imports it. This should fail. +lms_import_export_test:"000000050000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMS type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMOTS type test #1 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x7, and imports it. This should fail. +lms_import_export_test:"000000060000000347cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA + +LMS key import invalid LMOTS type test #2 +# This test uses the valid public key for hsslms interop test 1, alters the +# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# invalidly outside the buffer. +lms_import_export_test:"000000060000000547cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 860304e02..709db8ce2 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -157,7 +157,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) unsigned char *exported_pub_key = NULL; mbedtls_lms_public_init(&ctx); - TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0 ); + TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), + expected_import_rc ); if( expected_import_rc == 0 ) { From d0c701237a2c8d1938677a80d40fc9bd3fc6794b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 14:19:52 +0100 Subject: [PATCH 0272/1574] Replace TEST_ASSERT with TEST_EQUAL in LMS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.function | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 709db8ce2..4e525c452 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -27,16 +27,16 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) mbedtls_test_rnd_std_rand, NULL, seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_ASSERT( rc == 0 ); + TEST_EQUAL( rc, 0 ); - TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, msg->x, msg->len, sig, sizeof( sig ), - NULL ) == 0 ); + NULL ), 0 ); - TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, - sizeof( sig ) ) == 0 ); + TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, + sizeof( sig ) ), 0 ); exit: mbedtls_lms_public_free( &pub_ctx ); @@ -63,16 +63,16 @@ void lms_sign_verify_null_msg_test( data_t *seed ) mbedtls_test_rnd_std_rand, NULL, seed->x, seed->len ); TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_ASSERT( rc == 0 ); + TEST_EQUAL( rc, 0 ); - TEST_ASSERT( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ) == 0 ); + TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); - TEST_ASSERT( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, + TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, NULL, 0, sig, sizeof( sig ), - NULL ) == 0 ); + NULL ), 0 ); - TEST_ASSERT( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, - sizeof( sig ) ) == 0 ); + TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, + sizeof( sig ) ), 0 ); exit: mbedtls_lms_public_free( &pub_ctx ); From 59eb0d0f2b8a5a8cef78359fbb0da47e341e0868 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:19:17 +0100 Subject: [PATCH 0273/1574] Fix LMOTS signature leak test dependencies As it requires MBEDTLS_LMS_PRIVATE Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 367e55aaa..d54045423 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -211,7 +211,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_LMS_PRIVATE */ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) { From 45c4ff93c9674f59136b8999842322f7868d733d Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:22:48 +0100 Subject: [PATCH 0274/1574] Fix windows requiring explicit cast in LMS calloc Signed-off-by: Raef Coles --- library/lms.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/lms.c b/library/lms.c index 876deeb5c..ccbcd8bff 100644 --- a/library/lms.c +++ b/library/lms.c @@ -603,7 +603,9 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_private_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + /* Requires a cast to size_t to avoid an implicit cast warning on certain + * platforms (particularly Windows) */ + ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_private_keys ) ); if( ctx->ots_private_keys == NULL ) { @@ -611,7 +613,9 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, goto exit; } - ctx->ots_public_keys = mbedtls_calloc( MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + /* Requires a cast to size_t to avoid an implicit cast warning on certain + * platforms (particularly Windows) */ + ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { From 76563399fd10c835b40ff5f8cc770e0c629752b9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:50:57 +0100 Subject: [PATCH 0275/1574] Fix LMS and LMOTS test dependencies Mark them as depending on PSA_WANT_ALG_SHA256 so that test_depends_hashes_psa doesn't fail Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index d54045423..4382421d0 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -23,7 +23,7 @@ int check_lmots_private_key_for_leak(unsigned char * sig) /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C + * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 4e525c452..4f49e8e65 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,7 +4,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C + * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 * END_DEPENDENCIES */ From d137c8612572546995f47809aae93ab47f7660a8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Wed, 12 Oct 2022 15:55:25 +0100 Subject: [PATCH 0276/1574] Don't skip LMS tests due to out of memory error Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.function | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 4f49e8e65..c0cf02cb8 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -14,7 +14,6 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - int rc; mbedtls_lms_public_init( &pub_ctx ); mbedtls_lms_private_init( &priv_ctx ); @@ -22,12 +21,10 @@ void lms_sign_verify_test ( data_t *msg, data_t *seed ) /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ); - TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_EQUAL( rc, 0 ); + seed->x, seed->len ), 0 ); TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); @@ -50,7 +47,6 @@ void lms_sign_verify_null_msg_test( data_t *seed ) mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - int rc; mbedtls_lms_public_init( &pub_ctx ); mbedtls_lms_private_init( &priv_ctx ); @@ -58,12 +54,10 @@ void lms_sign_verify_null_msg_test( data_t *seed ) /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - rc = mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8, mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ); - TEST_ASSUME( rc != MBEDTLS_ERR_LMS_ALLOC_FAILED ); - TEST_EQUAL( rc, 0 ); + seed->x, seed->len ), 0 ); TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); From 781f7bedb0a3c9d7d99c5d71a9dfac61966249d6 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:23:11 +0100 Subject: [PATCH 0277/1574] Properly mark LMOTS leak test as failed Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 4382421d0..c582ce700 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -11,12 +11,13 @@ int check_lmots_private_key_for_leak(unsigned char * sig) idx < MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); idx++ ) { - if( sig[idx] != 0x7E ) { - return 1; - } + TEST_EQUAL( sig[idx], 0x7E ); } - return 0; + return( 0 ); + +exit: + return( -1 ); } #endif /* defined(MBEDTLS_TEST_HOOKS) */ From 20d2e06ca48f4babeb7308ba5637e32ee8c4bcd2 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:28:18 +0100 Subject: [PATCH 0278/1574] Add cleanup frees in LMS and LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index c582ce700..1fec900fc 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -142,6 +142,8 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, } exit: + if( tmp_sig != NULL ) + mbedtls_free( tmp_sig ); mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index c0cf02cb8..b6ae30918 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -138,6 +138,8 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, } exit: + if( tmp_sig != NULL ) + mbedtls_free( tmp_sig ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -180,6 +182,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) } exit: + if( exported_pub_key != NULL ) + mbedtls_free( exported_pub_key ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From d1c2a8031976641863fadf5bd91e650ee0cc304a Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:32:53 +0100 Subject: [PATCH 0279/1574] Remove duplicated assert from LMOTS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 1fec900fc..8857326fb 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -113,12 +113,6 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[0] ^= 1; - /* Altering first signature byte must cause verification failure */ - sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), - MBEDTLS_ERR_LMS_VERIFY_FAILED); - sig->x[0] ^= 1; - /* Altering last signature byte must cause verification failure */ sig->x[sig->len - 1] ^= 1; TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), From 534f66f3f04e549ad9efa9dba2b4edb608b2f229 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:39:01 +0100 Subject: [PATCH 0280/1574] Fix assert arguments in LMS and LMOTS export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 7 ++++--- tests/suites/test_suite_lms.function | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 8857326fb..f18b79c0d 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -163,9 +163,10 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8), - exported_pub_key, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + TEST_EQUAL( exported_pub_key_buf_size, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index b6ae30918..97f45e642 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -165,9 +165,10 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, exported_pub_key_size ); - ASSERT_COMPARE( pub_key->x, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10), - exported_pub_key, MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) ); + TEST_EQUAL( exported_pub_key_size, + MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; From 6b2c573b3d4e72a17694858dbb4c34a7ee7f8ace Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:41:39 +0100 Subject: [PATCH 0281/1574] And export buffer too large test to LMS and LMOTS Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 9 +++++++++ tests/suites/test_suite_lms.function | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index f18b79c0d..94d6b8e03 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -178,6 +178,15 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; + + /* Export into too-large buffer should succeed */ + exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) + 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + 0 ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; } exit: diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 97f45e642..51addea0f 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -180,6 +180,15 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; + + /* Export into too-large buffer should succeed */ + exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) + 1; + ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, + exported_pub_key_buf_size, NULL ), + 0 ); + mbedtls_free(exported_pub_key); + exported_pub_key = NULL; } exit: From 1b43a7448d949a0de5c5a9beabd58ba9bdb7e192 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 09:44:27 +0100 Subject: [PATCH 0282/1574] Clean up LMS and LMOTS feature dependencies Remove SHA256 dependencies from tests, fix incorrect boolean logic in check_config, and change depends_hashes.pl to disable LMS in one test Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 2 +- tests/scripts/depends-hashes.pl | 2 +- tests/suites/test_suite_lmots.function | 2 +- tests/suites/test_suite_lms.function | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 4b2783174..e6488c09c 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,7 +354,7 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ( !defined(MBEDTLS_PSA_CRYPTO_C) && !defined(PSA_WANT_ALG_SHA256) ) + ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA256) ) #error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" #endif diff --git a/tests/scripts/depends-hashes.pl b/tests/scripts/depends-hashes.pl index 68297a6a2..db18a92ae 100755 --- a/tests/scripts/depends-hashes.pl +++ b/tests/scripts/depends-hashes.pl @@ -57,7 +57,7 @@ my @hash_configs = ( ['unset MBEDTLS_MD5_C'], ['unset MBEDTLS_SHA512_C', 'unset MBEDTLS_SHA384_C '], ['unset MBEDTLS_SHA384_C'], - ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C'], + ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C', 'unset MBEDTLS_LMS_C', 'unset MBEDTLS_LMS_PRIVATE'], ['unset MBEDTLS_SHA1_C'], ); diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 94d6b8e03..f2ce29a34 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -24,7 +24,7 @@ exit: /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 51addea0f..dd37f3197 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -4,7 +4,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_LMS_C:PSA_WANT_ALG_SHA_256 + * depends_on:MBEDTLS_LMS_C * END_DEPENDENCIES */ From a21671123a6105aa03336ae77427cd73bb0f71eb Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 10:05:33 +0100 Subject: [PATCH 0283/1574] Remove `sudo pip3` in LM(OT)S tests instructions Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 6 +++--- tests/suites/test_suite_lms.data | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index fdb6e43f2..6b34078c3 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -22,7 +22,7 @@ LMOTS hsslms interop test #1 # the LMS key), and the same message. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -46,7 +46,7 @@ LMOTS hsslms interop test #2 # the LMS key), and the same message. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -68,7 +68,7 @@ LMOTS hsslms interop NULL-message test # key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 85aad52ed..207d943c4 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -19,7 +19,7 @@ LMS pyhsslms interop test #1 # and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * # * hsslms sign tmp/lms.prv message.bin @@ -44,7 +44,7 @@ LMS pyhsslms interop test #2 # and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) @@ -71,7 +71,7 @@ LMS pyhsslms interop NULL-message test # signature and the public key before including them in a the test data. # # To reproduce the signature: -# * sudo pip3 install pyhsslms +# * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * touch message.bin (create empty message file) # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) @@ -152,7 +152,7 @@ LMS hsslms interop test #1 # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle @@ -174,7 +174,7 @@ LMS hsslms interop test #2 # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # # To reproduce the signature: -# sudo pip3 install hsslms==0.1.2 +# pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle From 07b70d91967d42a9913f7b42a24eef3c41de0fa3 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 10:46:16 +0100 Subject: [PATCH 0284/1574] Correct typo in LMS config check Signed-off-by: Raef Coles --- include/mbedtls/check_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e6488c09c..0081ca3d6 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -354,8 +354,8 @@ #endif #if defined(MBEDTLS_LMS_C) && \ - ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA256) ) -#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA256" + ! ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256) ) +#error "MBEDTLS_LMS_C requires MBEDTLS_PSA_CRYPTO_C and PSA_WANT_ALG_SHA_256" #endif #if defined(MBEDTLS_LMS_PRIVATE) && \ From d1c1f7f7bec94a3c6399bf09737962e36dd0bc9b Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 13:00:08 +0100 Subject: [PATCH 0285/1574] Disable LMS in all.sh tests that lack _WANT_SHA256 Signed-off-by: Raef Coles --- tests/scripts/all.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index c3a39bcd2..f7da34a3b 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2248,6 +2248,8 @@ component_build_psa_accel_alg_md5() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2268,6 +2270,8 @@ component_build_psa_accel_alg_ripemd160() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2288,6 +2292,8 @@ component_build_psa_accel_alg_sha1() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2345,6 +2351,8 @@ component_build_psa_accel_alg_sha384() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2365,6 +2373,8 @@ component_build_psa_accel_alg_sha512() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C + scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } From cbd02adc6e4f888d2dabef6e2ecb87ab31705132 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:11:49 +0100 Subject: [PATCH 0286/1574] Simplify LMS context freeing Signed-off-by: Raef Coles --- library/lms.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/library/lms.c b/library/lms.c index ccbcd8bff..35ca890b5 100644 --- a/library/lms.c +++ b/library/lms.c @@ -550,17 +550,24 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) if( ctx->have_private_key ) { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + if( ctx->ots_private_keys != NULL ) { - mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + { + mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); + } } - if( ctx->ots_private_keys != NULL ) - mbedtls_free( ctx->ots_private_keys ); - if( ctx->ots_public_keys != NULL ) - mbedtls_free( ctx->ots_public_keys ); + { + for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) + { + mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); + } + } + + mbedtls_free( ctx->ots_private_keys ); + mbedtls_free( ctx->ots_public_keys ); } mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); @@ -594,6 +601,7 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, ctx->params.type = type; ctx->params.otstype = otstype; + ctx->have_private_key = 1; ret = f_rng( p_rng, ctx->params.I_key_identifier, @@ -619,22 +627,10 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, sizeof( *ctx->ots_public_keys ) ); if( ctx->ots_public_keys == NULL ) { - /* Free just the ots private keys (since they've been allocated at this - * point) so that we can pass the context to lms_private_free (which - * will not try to free the private keys since have_private_key is not - * set. - */ - mbedtls_free(ctx->ots_private_keys); - ctx->ots_private_keys = NULL; ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - /* Now that all the allocation has succeeded we set have_private_key, since - * that causes lms_private_free to free the ots keys. - */ - ctx->have_private_key = 1; - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) { mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); From 29c490db9796cb21a2eebadf38c0e9447f62703f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:16:35 +0100 Subject: [PATCH 0287/1574] Update LMS calculate_public_key docs To avoid the word "generate" Signed-off-by: Raef Coles --- include/mbedtls/lms.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 7505ae462..5e03d9b5f 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -379,14 +379,14 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, size_t seed_size ); /** - * \brief This function generates an LMS public key from a + * \brief This function calculates an LMS public key from a * LMS context that already contains a private key. * * \note Before this function is called, the context must * have been initialized and the context must contain * a private key. * - * \param ctx The initialized LMS public context to generate the key + * \param ctx The initialized LMS public context to calculate the key * from and store it into. * * \param priv_ctx The LMS private context to read the private key From 1d88ea870f80459c896c056fc95246b4e8c29ed9 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:18:16 +0100 Subject: [PATCH 0288/1574] Remove unneeded NULL pointer checks in LMS tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 3 +-- tests/suites/test_suite_lms.function | 6 ++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index f2ce29a34..0f339259c 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -136,8 +136,7 @@ void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, } exit: - if( tmp_sig != NULL ) - mbedtls_free( tmp_sig ); + mbedtls_free( tmp_sig ); mbedtls_lmots_public_free( &ctx ); } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index dd37f3197..ff117ea27 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -138,8 +138,7 @@ void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, } exit: - if( tmp_sig != NULL ) - mbedtls_free( tmp_sig ); + mbedtls_free( tmp_sig ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ @@ -192,8 +191,7 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) } exit: - if( exported_pub_key != NULL ) - mbedtls_free( exported_pub_key ); + mbedtls_free( exported_pub_key ); mbedtls_lms_public_free( &ctx ); } /* END_CASE */ From 33f7d66304cf7f98205bfa89d16a2122d3f36d42 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 14:24:08 +0100 Subject: [PATCH 0289/1574] Add output check to export too-big buffer tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 0f339259c..13d1ee4cb 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -184,6 +184,8 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index ff117ea27..1e5ac42a6 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -186,6 +186,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + ASSERT_COMPARE( pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } From ed0e4591dc5bdf4f709efc8eb6301f8472d95ad0 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 15:05:47 +0100 Subject: [PATCH 0290/1574] Add output length test for LMS export too-big test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 2 ++ tests/suites/test_suite_lms.function | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 13d1ee4cb..616c39fa9 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -184,6 +184,8 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + TEST_EQUAL( exported_pub_key_buf_size, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index 1e5ac42a6..baf74abc9 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -186,6 +186,8 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); + TEST_EQUAL( exported_pub_key_size, + MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); From 493724e3c25ef649300ad691dc20179938922015 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 15:43:07 +0100 Subject: [PATCH 0291/1574] Check correct output size in LMOTS export test Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 616c39fa9..b5b18b50f 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -162,7 +162,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size, &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, + TEST_EQUAL( exported_pub_key_size, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); @@ -184,7 +184,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, exported_pub_key_buf_size, NULL ), 0 ); - TEST_EQUAL( exported_pub_key_buf_size, + TEST_EQUAL( exported_pub_key_size, MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); From e4d96b804c3c7a1dc2097a8f1b9eafb402f92d22 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:29:22 +0100 Subject: [PATCH 0292/1574] Update LMS and LMOTS test comments Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.data | 11 +++++---- tests/suites/test_suite_lms.data | 37 ++++++++++++++++++------------ 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 6b34078c3..08b8faddf 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -21,7 +21,8 @@ LMOTS hsslms interop test #1 # This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of # the LMS key), and the same message. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -45,7 +46,8 @@ LMOTS hsslms interop test #2 # This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of # the LMS key), and the same message. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -67,7 +69,8 @@ LMOTS hsslms interop NULL-message test # providing direct access to the underlying OTS signature scheme. The private # key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -85,7 +88,7 @@ lmots_verify_test:"":"00000004862327ead0b0eee8bde100614b3369e183f97812c13f0979f7 LMOTS hash-sigs interop negative test (altered random value) # This test uses the valid signature from hsslms interop test 1, and then -# permutes the random value (C) of the signature, and is expected to fail to +# alters the random value (C) of the signature, and is expected to fail to # verify. lmots_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000041bb462a8f59a277c1706ab69b1a40b0d56a3ffe1ddf0dfa890096c7a9c48b360e1e8f7abe4dc1950c4a64545ce6c0fe2a34477ec40f56db4eec37c1a2168e3059d4338a4eb368a64be5f98b5452f2c2fad23dcac585f5fe308bfc3df0b5cbc6cf3545236ed6c5a863e677521b5b5cee0aa1e755c3bbf5fb7326fac1a88cb12dd7f8d68ebe8bad07195a12fa11299073731e67f2452009252c595fc7d9285b90aaa912eb6cf0b5debc0996ca55ad5186702b244a616c4b9e0ceeea229e1e821c1ab0db906ce87640d128f1d8c4742d9baf340a8030df726a99a9b97f139ec57d8d87efdfca235f12de64e0a993804b95227cdfd26220a84502e350faaf5f91f3f49610eda211f9409005679e32068def22a2dcce3d226d0f68c4abc727b90d9c01daa05db24d7c0c9e9e48202e3420992ba78c36bc21c45cdf218801dc7053e3cbf39c141784e7a861671588622d540187912234ce628ea9cbd1800d215641163c762d2fd9194fa54bd9b46c83754579476398a5c2fece4642f1ee286a4e9a310b5e23088c75a68b123044c1c365c8b53fe9f895fa5d76fe1277c7c0f2a39f5b233f7d2acd5358feec2255feadb1c2513c4351c9bd1afe22d159f2d392c83bf7ec26b59e78330cd346adb85ef62fee3da63150ab5e0d7ce5d0ef353895360017faf3f35aca2cf3b8eda65389e2ba86f78ebfbe73382dfe9002331f24e96e1a6e56e7cc99ee848b82ad1ade3229e9e28168acfa8c059ed03028e8c872e72ff4cf8a50b84ade908ecf229a26ff1007c476d1aa376323fc567c9471085336496b231b5245a43c6c86c6a71c1b1fb4bd87c2d0b026bff55de121620a089ed9ade51c3bd91c703844c180ef9ad0ab550b9560ba9f1452463ce20987a402213ca5c16c927a0a85091dd74fbee22cac6b1afbc7e7dec229325c25ea3b3cc5a1c48c80665f9903e482b143f7cd051bdb990355f79c62553453c72ccbcc578df77069a7b0cf6fdc6853ec2f96fb7cc100216ae1b17aa20782fb0cd0f261b76a48b5d6f7bb48fa5f78c02a11ee81a8c0c81183910af770f2e907ebd5b2dc3a2b83529f62da074ca73c434f8f30b68a5dfee740f78d2c13b53c904e46dddf723923bfbffa437a4130c8c9b6d79a57db1c408b9c023f80fb3d766cb915e722f3b3152625d77bce3ca0c01e77f3750d7d1bef1ddda8b9b4233b09c89abe5913db50847a7ea219c3f406aa4cf41b6310bafa99a7b14f94b8ccd4dc7edb1a1e963ce26a53f3be71b4151ce5fae10ca30055e754880680e38cf2f21251f229341f7af9536360a428c2593c43fd2ae471bc1fa2b45ad55742a2f12f31eed6cb67945a898650c13650c4cffeecba8655f87e49ce921ced7ab00cf54eedf0c70e5c6cfa7f006763f0ac14d80cfb1662321cdccca8b1adf426eb9ca16ef2b978bb9ac229131fa5c1266a4980449c324ebdd8bcc98916089ee0b6966da7dc25350bdc758431884359d02f5fa567b39f49a6e410da2d0363944a090926308ed0ce7d565e6c4585ea010bc38ef1c976ae16ec1fbe6fb9d4d50e49a7be8273d2d56bf4e72acbadd90d5f8dee0":"0000000447cc5b29dd0cecd01c382434a6d1686400000000761e8e577fb4d12058806fc7bdaaef0ba64e454dc59b0230a77b43bbd83dc8c6":MBEDTLS_ERR_LMS_VERIFY_FAILED diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 207d943c4..7ff6a7c68 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -18,7 +18,8 @@ LMS pyhsslms interop test #1 # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * @@ -43,7 +44,8 @@ LMS pyhsslms interop test #2 # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * @@ -70,7 +72,8 @@ LMS pyhsslms interop NULL-message test # "levels" word at the start of the key/sig. We strip these 4 bytes from the # signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * touch message.bin (create empty message file) @@ -101,7 +104,8 @@ LMS hash-sigs interop test #1 # 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from # the signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux @@ -128,7 +132,8 @@ LMS hash-sigs interop test #2 # 4-byte "levels" word at the start of the key/sig. We strip these 4 bytes from # the signature and the public key before including them in a the test data. # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # * # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv # * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux @@ -151,7 +156,8 @@ LMS hsslms interop test #1 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -173,7 +179,8 @@ LMS hsslms interop test #2 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv # -# To reproduce the signature: +# To produce another signature with this message and key (note that the actual +# signature bytes will differ due to randomization): # pip3 install --user hsslms==0.1.2 # # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE @@ -195,26 +202,26 @@ lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad # input data error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad # input data error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x3) but an invalid LMS type (0x6), and should fail with a -# bad input data error. +# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail with a +# verify-fail error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x5) but an invalid LMS type (0x6), and should fail with a -# bad input data error. +# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail with a +# verify-fail error. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) @@ -264,11 +271,11 @@ lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cd LMS key import invalid LMOTS type test #1 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x7, and imports it. This should fail. +# LMOTS type to 0x3, and imports it. This should fail. lms_import_export_test:"000000060000000347cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMOTS type test #2 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# LMOTS type to 0x5, and imports it. This should fail, and not attempt to read # invalidly outside the buffer. lms_import_export_test:"000000060000000547cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA From ce18e528ffb8304cb51f5a802dde18185a9edc15 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:40:48 +0100 Subject: [PATCH 0293/1574] Rename LMS private key files And remove now-unnecessary modification to check_files.py Signed-off-by: Raef Coles --- ...igs_sha256_m32_h5_lmots_sha256_n32_w8_aux} | Bin ...igs_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...igs_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ...hss_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin tests/scripts/check_files.py | 1 - tests/suites/test_suite_lmots.data | 12 +++---- tests/suites/test_suite_lms.data | 32 +++++++++--------- 9 files changed, 22 insertions(+), 23 deletions(-) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux} (100%) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub => lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) rename tests/data_files/{lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv => lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub => lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub b/tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub rename to tests/data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv b/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv rename to tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub b/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8.pub rename to tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index 3d2ca3ea0..a0f5e1f53 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -119,7 +119,6 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', - r'tests/data_files/lms_.*\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index 08b8faddf..e6d71d33b 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -17,7 +17,7 @@ LMOTS hsslms interop test #1 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # This test uses the same OTS key as the LMS hsslms interop test 1 (leaf 0 of # the LMS key), and the same message. # @@ -28,7 +28,7 @@ LMOTS hsslms interop test #1 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) @@ -42,7 +42,7 @@ LMOTS hsslms interop test #2 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # This test uses the same OTS key as the LMS hsslms interop test 2 (leaf 1 of # the LMS key), and the same message. # @@ -53,7 +53,7 @@ LMOTS hsslms interop test #2 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) @@ -67,7 +67,7 @@ LMOTS hsslms interop NULL-message test # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMOTS, and few implementations # providing direct access to the underlying OTS signature scheme. The private -# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. +# key is stored in data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -76,7 +76,7 @@ LMOTS hsslms interop NULL-message test # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 7ff6a7c68..93a10f6de 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -65,7 +65,7 @@ lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c4 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited # amount of available test vectors for LMS. The private key is stored in -# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv. Note that this signature +# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature # uses leaf key 2, so must be the third signature generated by the key if the # signature is to be reproduced. Message data is random. Note that hash-sigs # stores public keys and signatures in HSS form, which appends a 4-byte @@ -75,7 +75,7 @@ LMS pyhsslms interop NULL-message test # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv # * touch message.bin (create empty message file) # * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) # * rm message.bin.sig @@ -96,8 +96,8 @@ lms_verify_test:"":"0000000200000004b219a0053b6bfe1988ade7b0a438c106262366cb6338 LMS hash-sigs interop test #1 # This test uses data from https://github.com/cisco/hash-sigs due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux. Note that this # signature uses leaf key 0, so must be the first signature generated by the key # if the signature is to be reproduced. Message data is random. Note that # hash-sigs stores public keys and signatures in HSS form, which appends a @@ -107,8 +107,8 @@ LMS hash-sigs interop test #1 # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux tmp/lms.aux # * # * /demo sign tmp/lms message.bin # * cat message.bin.sig | xxd @@ -117,15 +117,15 @@ LMS hash-sigs interop test #1 # * Save message and signature in binary format # * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the # HSS levels) -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # * verify tmp/lms message.bin lms_verify_test:"6b7439e31ef128c54f1536f745ff1246":"0000000000000004163fc2e3d3267d8c0d9fd9e7bb7a4eae84c3d98cd565de361edc426067960fc3201d9be1c30f4e4edce91844753aa13ff21e92648ac795b7c29dd6140962b5a1fb97b02570402a498a495044edcb26d1321c52e91c60cc3feb8f8e84fc77f97fb6e7afbfe4c2f2203d8d84303e2dd212b652e08a2e5a24a333df859cea3c5a547561f7ce6d182e2a3f2f018ef7e0578621916cff905c0713fa5f2bf73248ae6985aebc4086b79ebf71b8dcbb592eb61dc6303d06dbda88063690361b0dd25ea1c2c6b4d82dddbe11740864c65c228d67e9a1710506e585a748e7e02b36706e5cff83b3589613f07c636ab7784d6a8288d33e80f063165a2ddcbb0d7da815df8043dfa500c3e313c533bf6aec959237c923813d3109bdaeb195b1337f4cf21c1c863f6261dca411819603a3ea60cf34c81b462c4979b357da2bcdf3128343ca5a8a957e3ca4eebb914d743862e29ef48e43e7c5a7aaf7a2fe1251c309c65e9143dcfb298fa0d353084f60c0779e1a09b040f13c1025ec99402b844ff9996decf4b5f0d32a0858126ff293472aa93fbc2017d39fee93ff9f0ca2752b25cfa12542bf19cc1b8c102d65b70dccf760f26cb546742ce909d45345f802a985bae6a0f922a9c2a3dc992fae9f6f2fba0c52cad82564bde6ed8af880ee7a5eb5c6436611e5da1c690831bed34e3dd65acf2b8f496b6448e957afc16c48b6cd733bc84e3606a1d0609f08015c14b5619a2723f9b22950efc7ff7b733c299fcd84ed89c4d5cd43a9a54f25fc0fa1370d184f9e8011b60ba38dfca0eeeb56ae37a5823718c8210db20c2de13c39e43970b0b53b85b9cf9ea0dd025e7db558b463c683980fe59e0defde41afe825cfb8606ca861602a7fefd7506edc81b7ab4a1e0626e0bac1f99be118dbc1e291028fc73d0a0ea6559ae1dcf7477d64742c9bef88ef04b2ee4d392cf1efa23d8b05d11d2414e64f4540623e11bbf57fb8ae219331db0df459a9849f2700e6fa7ff4edb0fc01764949e279e84374e7a57fb5ee6221b2b72dbcf2ab9c988fe07d21e169b4338887129ac503cc6c0912787778d51b4b921cf7bb17d4028b7faf6c21dd616a1ac3b50d595ae0e3662e7faa16b9dec7694462c7fb8539ece0af33cc5a3dc33641b8827bf4751a708d7bf286cf2e795b8f45b76e1109abd908d0388d6ab8ecea67b187aabd80349e4bd286e3b6eeb3535cc9c343a39fe90cb443906b19d2483b4c93d0e35cd68d9f5523d5400a2b1708ba3361bd0757ed69b1da8845594edf053995b2d96bed8210aaab25fc34b2dd58004ce800360f24861e5912ac339ed0a78548e303e728a41e05c11d79013e3971eafa8034e63ecf1c842f0d9e735ff3b5badfd63ae07f051c94a9a867260b517e5c2c75e88e03d069bd39816a2255c90de81bb79622145b7469853a02eac45289fd9f9f40e2fccdd8ddb740469331f61badc1b7f6e0145dfe30141ad2f26ac8d7ff5125dc4dff1fec57629cea4f7de4401fc056e9a38ea028ac9c666ccd3f527947672408a759a5791d9efdeb1ff25392413728a03d4c641f4ce1542b6952e7595f1eecf1060000000671b0912d734442146e128d0029101ad34a6d2d586640235c828d427dfaffdb156771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hash-sigs interop test #2 # This test uses data from https://github.com/cisco/hash-sigs due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv and -# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux. Note that this +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv and +# data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux. Note that this # signature uses leaf key 1, so must be the second signature generated by the key # if the signature is to be reproduced. Message data is random. Note that # hash-sigs stores public keys and signatures in HSS form, which appends a @@ -135,8 +135,8 @@ LMS hash-sigs interop test #2 # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): # * -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.prv tmp/lms.prv -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.aux tmp/lms.aux +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_aux tmp/lms.aux # * # * /demo sign tmp/lms message.bin (incorrect signature using leaf node 0) # * rm message.bin.sig @@ -147,14 +147,14 @@ LMS hash-sigs interop test #2 # * Save message and signature in binary format # * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the # HSS levels) -# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8.pub tmp/lms.pub +# * cp data_files/lms_hash-sigs_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # * verify tmp/lms message.bin lms_verify_test:"0705ba8297c7b9fa5f08e37825ad24a0":"00000001000000040a432454b99750f7b703f0280f92818b0570d0267a423b377be7cf0561305d4ce987b9d8dbc1c3f8ba410bbe6b921406eb802688d2dd8a1a6fa4a124cbcae9b5a210f583a956384c06311953b038b4ad2c2808224fc3a6410cd3b89274371956bcd4253a251cba6409b09c822e1d29d7a037648a6f2562d0df6359a043622f256f5ac79736c08fc4185758ff002a8397e560d5812373946348afba2ccf2cc0f3ba741ec076d4587a54b8b625804b814c30540152a3dc843a590c94cc23ba857e4c458c8ab687b5b9b68837ee890454cc19bb5f42a1e6dc051803fab50b440067a903013f675a774b5d02cd56289518d65f869f22b2e2b58d499e9e3929ec5a9f5d6d6e03cf91486094aba7c88491cde35b81c175c40410bc402d20f0a73a4da844d3a1d47e57618b7f18fa5ac85e877b5faa1e0b6733c2d96b2970fdd6e606435e3ec50eafa88f84fb7512217aa4be5858a140f242603bda634d76c484a184298c4da903094468d032b88586fd2f35182405cd85115af6a0bbd431f2e44217a1691dd8887db91d3b97264ff552ae7dc110a3a111f2bf74ce42079055dfb8390a16d67f28b738f837aa7880f3134deabcf6ec74cdb521bff44df61c999bf7a8ddc43b64812cd4f3bfb15104867d5e585d1cbf99738e0df92660b3e9135a4377d1199b8b97362fc87ce3c99db3b8aba63ba35eb353e5ec79bcee82b9ccc1b4f7d1b8ce7e5f8813d007be3d0e45cb8e7173337a5a7c4d32ea5116e0fdbd7846ea1f366a531449c78cd7a16ce5bffcd6cccf54b7f249a74e0df6b07f6b48db42eb958ff18b06995368af0cadd82f44cf44e4b53f0993de5f06b289bee41cd25f90a9fbd1bfb1ab2451c96b07adcfb5210d291dd505ea30e5d30395c8d84eabccdd2c7d6f28a88f5e5d245a6980c57810cfe17c9a37ef5e79b7b9ca755d56a789d21985372bed42ae2830d81ebf0fad6c721bd1d3ee91ae363f40d386aac23e7c0db965539ce9bff38f0f24bec3227b5a24f4cd7fa71ca9d306faa3fc4726cdb6634f218897b79a4aed67a58799285104eed74703ec4af6d5738b27b4d6fb71e52c1149069483a7cca6c3fccbdff77312ff5c635d8b0ccd53dbaf7b498727f7c7a70d3fd1c3f217e2cbd0dfe91258acb7f79f53f56012a82da997ea777b76dac0472e5f9830a93fb09703b1c0e45cbfbf641de94fcc6c609f02a5b31ad5821ba6cd48829fc5e0c4ad78e11e4cac8efbb1b170c794b7b131b0c1c4e39fdef81db9e7acced5ec824aed0c4e6b57fd1add4191e87be1446c7c519eb671205ce8c5855ad7a2b9ff7a9cd5c45336f508d0f8d2c1152dc2656650bdaf8fced642f3a4d445b5fc49910bdbdc9635de0086ee9582a796ca9f6052de805f41dfbd3e94982a05cbd36bab583dd5b1586ddbb3b1a45f1a265bec062c1a50d220870c0c622d852e650a67f31e8eb3d19e964de0926712b7f429ad05024b8db51eb6702c39580f62f037388862251bf66f02edee9615a63957eab75b28501f9f26cecd09a5c949127c9a3095036667fce8e45ba75568d5160fa1725a9e0038145d948f437640dc4441000000066e8db13a9e79d10a4e067aad448a1847b5489a62cde3054ee1e5ff2e37549d516771f06926678fa50aa7167684c1de108944b2c4a3358f5e926368009e4500a8d4d501124bc25a4c9b1cfb954503f4ae26c92221e39c680843ae55cfca972e139c82e2e4469a703a1866fa0e6d76636591f4ad07f7d1eaa19077660ad46a6f9d534970e6a49e24621b7c7c283253dd22fb24eb7819fab84bab88e42555d5437d5afe06615a7e0d103cc8595616690f1337f4345cf418724f07d0dc4d2c0899b691691f397202204ef34342b5725dc6adfe549ab0b887572ad38113c407f96fcdfeea0ffc4f333addfec296169e53e3c5b24797a20f3b2f043f5e96920de9927da466f09389d3e52a5665f380f68666a019c201e710ab4c168d5ac952a02d5909a6fcaf498a33e2124e6a828203744ee3fe70465adde0cfbccc1b4634541638ab":"0000000600000004e18760ef2c86192aee88579e376f35cd153419d622803a483e79f6d368629308a8ab6ff663c4f108b2033af290dcedfa":0 LMS hsslms interop test #1 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -163,7 +163,7 @@ LMS hsslms interop test #1 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() @@ -177,7 +177,7 @@ lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"00000000000000041394a893e40b LMS hsslms interop test #2 # This test uses data from https://github.com/pmvr/python-hsslms due to the # limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8.prv +# data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv # # To produce another signature with this message and key (note that the actual # signature bytes will differ due to randomization): @@ -186,7 +186,7 @@ LMS hsslms interop test #2 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8.prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() From 1951259a10e9d1caac58df2aa516b2913ddd53d5 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 16:47:13 +0100 Subject: [PATCH 0294/1574] Update how lms.c imports platform.h Signed-off-by: Raef Coles --- library/lms.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/library/lms.c b/library/lms.c index 35ca890b5..46ea567f2 100644 --- a/library/lms.c +++ b/library/lms.c @@ -44,15 +44,7 @@ #include "mbedtls/error.h" #include "mbedtls/platform_util.h" -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" -#else -#include -#include -#define mbedtls_printf printf -#define mbedtls_calloc calloc -#define mbedtls_free free -#endif #define SIG_Q_LEAF_ID_OFFSET (0) #define SIG_OTS_SIG_OFFSET (SIG_Q_LEAF_ID_OFFSET + \ From a2514f622f4f43ed65041b6289db6c13b3f4070e Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:04:21 +0100 Subject: [PATCH 0295/1574] Update pyhsslms test instructions with script Due to tool name conflict hampering data reproduction Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 46 +++++++++++++++++--------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 93a10f6de..722def7d2 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -22,17 +22,17 @@ LMS pyhsslms interop test #1 # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * -# * hsslms sign tmp/lms.prv message.bin -# * cat message.bin.sig | xxd +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # -# To validate the signature: -# * Save message and signature in binary format -# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the -# HSS levels) -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub -# * hsslms verify tmp/lms message.bin -lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# import pyhsslms +# +# private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') +# +# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# public_key = private_key.hss_pub +# sig = private_key.sign(message) +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 # This test uses data from https://github.com/russhousley/pyhsslms due to the @@ -48,19 +48,21 @@ LMS pyhsslms interop test #2 # signature bytes will differ due to randomization): # * pip3 install --user pyhsslms # * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * -# * hsslms sign tmp/lms.prv message.bin (incorrect signature using leaf node 0) -# * rm message.bin.sig -# * hsslms sign tmp/lms.prv message.bin (correct signature using leaf node 1) -# * cat message.bin.sig | xxd +# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub # -# To validate the signature: -# * Save message and signature in binary format -# * echo -n -e "\0\0\0\0" > message.bin.sig; cat sig.bin >> message.bin.sig (restore the -# HSS levels) -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8 tmp/lms.pub -# * hsslms verify tmp/lms message.bin -lms_verify_test:"3f4fe37f1bb9547e443e53697a12f0393efbcf87c23d91765eb36100dd5d2c48":"00000001000000046fe15c33e5f4396fe8af67d20cd9886c59edb8aa6e005a206427d55c66cffa0d552114c88c70a6e07a8e69c53568b3deac7835f5706cd76152fc6b8dd624cf42e372ffccdb6a96a0b5028e85181e8fd67b77fb0ff38fcce830c5b65dfe16762550d5450eea7a39bb3dc745c7fcc240982ed6d1ae251822b2ca210b5c612aaf559280a7b3ccb5d68c6ea1fb6784d5134004570628f5b35a8517358ba47c6c8b827eda2e16925e945f00a42a7eb6c9034891982e8b116a43cb817bd1f67c317a20f98e1b23809c614b60231c475f24f8c2437c36b452253d517cfb0ffaafa4b53248d3f516fda0417a74d0f43771f7369ca71064e2f54fb1bd98e028fdfe3157ef6f6470c32d4b7baaae57e1b104f4c81073cb9fd339349106b699b279877b2291e32675c6a8a82e35f1b337e91d8a29c8d5c046ceb6246c44467a4a11cff22abe98b10b6a6d68361d15f140b06659b90561ea43fd9c39903a4d2be84fa89642120498ff377024c42a687fc87180a29bd030455fc453ae84c1c747a35ca81f47beba61fcd6a63970b21ed8ee74e00371e7439cb790b00bdfa89628e145698c4ee04ddb528ef56dced72754659e87f25b8e92e60252ecc5580646dceae45d1ca986b307c459249ab3b0fc85f43eb22779711846f2ee13ee0f4060a7edd95c73209ff735ce44fa02145cfa6916a305e668fd08aa943c72f2167705450037dda5f688bcad385582bf1bfe3b8316f7325837c10d193d4d898776134d420107f136ff2080563d9c4bcd48af7ef9f2cfafe517082aac1b54ebab41388c171668d03c64e62208a60a8cfa81483440b17a359e95c730299a287084d49c623f3547d3ce7936d69cb478c0533693732e7aa3161370decc75f7ae52fb0065584a20851469c07d8aa78c0ae28e7d42e86b908ecd5161c3b74409d67d639c39b99bf03f9ec3ddfb607bc594dffdfa6393b37a2cfd0dcb18ff9d63aba806821dee85aac0938fdee86fe21045c0c200527ce64be88cd971902dc8adac1f14e212c6e03d89c9e268046448c5a285f287a9896f59acb93fb12e3ac62d1df44beba165a26403d4f738acd561834c3f4d554c4bc8f20eb90199b0c3f332d19c033eaca1339ef8d029026d2aa76760e11b27427236f94fcefc4a6844937559495a36ebbde0b116c2644469fda60611d9f6ff1b189a8ddf3073acc5a55f1b0605de7c42a660f4897abd14ae485457e18b24e3d71222ae79660266ce53e89d1b60ce1622d1ef8ce3ed5179828ceb7c7298f9d10a309830ae7b530a913cb6306b7d2ce7b10753e817314fd9b6ef584fab9aba0b617cbe1a54a8610096615b56fd5b6798ce98ea866da2911b351ef5ea4411a44c726c019cf375a169fa6fd66f54d59f04e4f615e8da822413e017b60e93412e6195d4d7b7ec269e6f59dc072ba1e688a651bb45a27612949bb9eb6d0fa887393707a9c7a07f2b0640fc67dbb55d288501c394f0b61ea4c2bc1af6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c39c44b4a6271f81aba0f250997ddd423e3da0461fb687e56e20e9d4a2c38d78d000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +#import pyhsslms +# +#private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') +# +#message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +#public_key = private_key.hss_pub +#sig = private_key.sign(message) +# +#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +#public_key = private_key.hss_pub +#sig = private_key.sign(message) +#print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"0000000000000001000000042115dafc81fb6404f904c6037b00c970a0790ceadf0d39f93eddae43ee0daffa0088358a8f89ca5c2b2af0d55c4ecdcbdd84953ce4043d2657ada39f4344ace04e3c4ae3d72788214d28d1b5c85af7a6d3d9d85594a907a9a39b258d4385700a6c001b52923846f68a991a86ddad9b272c98064d43142d339c1cc64e833f7f5346a70b1ef77cb197c66ef68e7a41678ec1dedfe5b6d6e22746b839df8ffdf6d6830f86e47a0370a17646ada2e3f13ee68e6cfdcbb20c0b05e47c088bc27a1e4010aca6f42f2e4c92b28d4f8591fcab60c57fea248b6e8c412b6806f956e459252df4dedbbbecdbaa57f0f15e91ab9fc1c8dae1e1ba5556faa8d618bef9f977b3571b6438f13583f5a2e4036f450a89881b108d44bd8a6700c544d12e1ba48eaa9f53eed260f0dc2bf8bd630565af7d9e182539957780b0771365d4fe57d9fb0f76b2e4e7737fd3d8e8ba67d16af59c13563ceda4d632a0f7d742c98e05d29fb752ccddca2b8e8cc0bb3e57547dbe62d77fb792568cfc8218291a057fc61d94137556f17301e4b7ab3b8f33610925aa5160397665212e16bdc3fffc7ae0ce22c83eb357409bb08b38585628b1475931e09d65986dadf01aff0f7b0e7d19cce8318ea2fcf112710da63b25b3fb1f28fa387e0dc4eea17e0cd7f1e09e2a0cf0797199750f88d4b1d597c15a8694c68e6ac04564f5ee826d612839e2a26c4e7db4e4bd4919ef5ab1730a97bc5ec0c89c93dea4e8bca06426b121bf065ed43a7f2c91ee7211c53d6111de7ccff339a99203de88fb1ec592af5a4e9b2bfc437d0be7dd3aad57f5a84a4a87522cca5fc64176acf033f25f6ec10c673f38c0a3eca954c2acdad80674bac208c0c8be1ed50ed3f41e14c4edef82fe878444c4c874fbd0019e697b3401971b9ae1b73824079de84fc889f6108ea53b94fd50eaa56ccc0fa466168b6fb4322ac01d3429a109e55d6a2459ebfb0297b32bf1eea33fec4317eab77f2d415bfe5ac243e6e6ba26f9a4dccd5bf921c813218268106c129081da409b1808eedaeebf420f768935c0c91981dc48bc07926649926cf62f596582e8b3b9f9a18e0a91221a1d03913245792269ed260071dbfb27240d78a3d98945414da4bc7e4267b8a56cc18d2a8cc2fbe0206989541be84c181dc8aea74654514d894098534963449fc7e5ecd98218c93b38c925761fae62056dd7156b215fdf48ab36d230ab6feb3df3a590fa267e8c0cb78c2f2c90ab7c71dfa97e148a03c427077ec2abc08a3ec2ec7b2503a3dc988f6a9e5362e1043be819e78c71ae96646431eb83d6c9f91edbca6507c31a44f0b643c0028813559e8b5894575461d728ed633b89d660be1635e921fac6844071687b9c82b4aedfdc7cadfee07f113906cf4f78b7e8397f6be3872a53a31e15b54443753b4197e942e2512a9703d729116e683ad9a718f0fa15cf94cc2676498e6d2f207b2d3fd61dba1ad0291eb9e243c4ab771ee4f92ac782fd72b35abff18fd91198007d604b74b7d2741e36fa74c3a1732217b06f1d2e4e34d61012e83f99d03f1e83c97150dedd04f67978620da7e0e5000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited From d543697092b0155669fccf4837f0d27cf9cb0ce2 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:06:42 +0100 Subject: [PATCH 0296/1574] Fix minor type in LMS test description Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 722def7d2..de0ee5a61 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -262,12 +262,12 @@ lms_import_export_test:"00000006000000":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMS type test #1 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x7, and imports it. This should fail. +# LMS type to 0x5, and imports it. This should fail. lms_import_export_test:"000000050000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA LMS key import invalid LMS type test #2 # This test uses the valid public key for hsslms interop test 1, alters the -# LMS type to 0x5, and imports it. This should fail, and not attempt to read +# LMS type to 0x7, and imports it. This should fail, and not attempt to read # invalidly outside the buffer. lms_import_export_test:"000000070000000447cc5b29dd0cecd01c382434a6d16864d51b60cdb2a9eed2419015d8524c717ce38a865d7a37da6c84f94621ad595f5d":MBEDTLS_ERR_LMS_BAD_INPUT_DATA From f8bfe2783b2a2c4c7fcb5ac6ce776443f3345d22 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:35:28 +0100 Subject: [PATCH 0297/1574] Remove bad character from LMS test case Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index de0ee5a61..eccdd61ea 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -32,7 +32,7 @@ LMS pyhsslms interop test #1 # public_key = private_key.hss_pub # sig = private_key.sign(message) # print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 # This test uses data from https://github.com/russhousley/pyhsslms due to the From aa9d52bcdc3bd6fb591a32df0954143ec1de3fd1 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:53:40 +0100 Subject: [PATCH 0298/1574] Rename LMS private key files to match library name Signed-off-by: Raef Coles --- ...ms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ..._pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} | Bin ..._pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub} | Bin tests/suites/test_suite_lms.data | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename tests/data_files/{lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv => lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv => lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv} (100%) rename tests/data_files/{lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub => lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub} (100%) diff --git a/tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv rename to tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv rename to tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv diff --git a/tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub b/tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub similarity index 100% rename from tests/data_files/lms_pylmshss_sha256_m32_h5_lmots_sha256_n32_w8_pub rename to tests/data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index eccdd61ea..89ad58196 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -165,7 +165,7 @@ LMS hsslms interop test #1 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() @@ -188,7 +188,7 @@ LMS hsslms interop test #2 # from hsslms import LMS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # public_key = private_key.gen_pub() From 6d7d94a821425f0efc7daec621d83aa930715ca8 Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:55:46 +0100 Subject: [PATCH 0299/1574] Use correct export length in LMS export tests Signed-off-by: Raef Coles --- tests/suites/test_suite_lmots.function | 5 ++--- tests/suites/test_suite_lms.function | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index b5b18b50f..53ab02ff6 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -182,10 +182,9 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) + 1; ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index baf74abc9..c5c8aa4b9 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -184,10 +184,9 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) + 1; ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), + exported_pub_key_buf_size, + &exported_pub_key_size ), 0 ); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); ASSERT_COMPARE( pub_key->x, pub_key->len, exported_pub_key, exported_pub_key_size ); mbedtls_free(exported_pub_key); From 8bccc999d9dd0e04ee83ea01348267cec6c7512f Mon Sep 17 00:00:00 2001 From: Raef Coles Date: Thu, 13 Oct 2022 17:57:31 +0100 Subject: [PATCH 0300/1574] Don't mention error type in LMS test comments Signed-off-by: Raef Coles --- tests/suites/test_suite_lms.data | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 89ad58196..869153f78 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -204,26 +204,22 @@ lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a LMS negative test (invalid lms type) #1 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail with a bad -# input data error. +# LMOTS type (0x4) but an invalid LMS type (0x5), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000058b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lms type) #2 # This test uses the data from hash-sigs interop test #1. This test has a valid -# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail with a bad -# input data error. +# LMOTS type (0x4) but an invalid LMS type (0x7), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000004e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000078b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #1 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail with a -# verify-fail error. +# invalid LMOTS type (0x3) but a valid LMS type (0x6), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000003e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid lm_ots type) #2 # This test uses the data from hash-sigs interop test #1. This test has an -# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail with a -# verify-fail error. +# invalid LMOTS type (0x5) but a valid LMS type (0x6), and should fail. lms_verify_test:"bfff9cd687351db88a98c71fd2f9b927a0ee600130a112533b791041d30cb91665fc369a5ac7cc9a04547414ac45288081d19d4a600579c73ac4bc953de03ad6":"0000000000000005e474c96c496b231ecedcd92566ab3e1cdfac83f7e56abaae6571401e212e59bdbcc18105e0709249510d13d7ae1091558c217033316ac70a36aae764bd0f4032e369453c634b81061079d216d03d3c55976a1aabc00287b307297ae03587ba20839460daae85d26dfcef7638c10a1d8559612e5e9ced1a4205a52ca0ce88e58602e59cf9ab34adf2e958e56570573297b99f733fbbf58d2440526fd4dc15c5509e8a11405f6c08772abcf58731fbf9a73642670e3247c5f70905f0fa81f6174bf32977209923507525a170fcd260e81f04193583fbcd305ac245c80eb337ca326fd1105e73748fab8a1f0c8d8a99f011718e7aae027a34d2a85ff18769fa277810126a86b51b096a04d8e28a4fb8c5e14e50a67cb1ee88e43e5cc077902442f5d9c55ac2b8acdd76c67bc740c6083aba4e3cb404c23f1f3118337563fef6a4b01fb476810c5b5682d0aecdccd55c85a4af50e9150f7d83dcccd8e822a302e6e5a52e00505e6e65338dcfb9cfbe22594e9e18ebde36af29450c5ea31523019cf64fd6eca8c77d98c2a146dcedd51bf6c61c1f7cacbce3ab20c8606930cc42737e17f2703cf0980aef560768d1ac5585c05a60a5f94db15f5ac4d4df5cbd81430878d4e9b77346e3a6538b80b80873e3e6c37860470091979296631440adb8cc71991aba2a4dd2884764878306fe774a25512cfbf080f2829ea2903ffa748dd187c21aef918ee3436a1bd336c3d09cc1f748d7528db90a98f69078b82c4d23de7bcec092a292d2b8cac71a5c87d008f128b89a5e608a4501aef41e9f17e4056ed4767957188f780159daebf327751386980b0fca5a2d36b141acff957f46ce2381897099619475db9d3a613e7ef98b056f42b4d6eafb1d62eebbe46a7502f893fbd36ccfb12a280f45ffb93f050eb280bf0a6cd640abdea8590bffb98bdb29ee3a31daa0fa3ab35fee11dc1b7d1fcea82b0e284b2e35b34e77c3f401ed887e7fc6c97b327f76f99caca2f355afa2753a8923bfb06fb2a9df08d31c93882e34ef5a3cccc9d078855334bdf909ae418b177724c42fb1d586d212c4474932acce295236030f4379158957300fe9fdc5cc9145e3ded50cf9f5a8e19321961536c4a47fffc3eb4383fb78a5d2aeed5b45b92132b5e2a53e3b67841fa2e1bd217ee2c30812c4eb1bd4f8c85b328e23d27f12a2fad5c6b236c87f8fd1aad441416e53ebd4d45d4bf601b94eb37dc9a065218ae58e69dba1250bb20626baeda961b3ef11d217697e73f41fa3870d726a032bc4a388fb12c023822945df058e22f54e5f6377eab34297c57883515204fc189d0d4b0ad9bacb24acf7f9d55e7c6368bb8ababd7622f586ec22683306c5d88d5244219a3952adbd85c89893a441a58b532e15600cd5afdbb5b441e1670b72656c7995189bdf993154e09912db8c4ddaff0e75591720230cf99c8b71cd841dffc4372c5e0f9ff906a379d28d6884351609bf7c849ebfabfb049ae986bbb8467251dbf5ccdd05a86ff6ce1392f7ca1bd49595ad9ad805d71b389afab1865f7f69dc24662af19934f025ced212536509500c132aec000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":MBEDTLS_ERR_LMS_VERIFY_FAILED LMS negative test (invalid leaf ID) From 2875aa7b0140c923e69e402ed9e30faf3d752092 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 20:45:05 +0200 Subject: [PATCH 0301/1574] Fix instructions and test data for pyhsslms interop tests The test data was invalid because it had the extra 4-byte prefix for HSS. Regenerate it (which produces completely new signatures since it is randomized). Rearrange the reproduction instructions for the second test case so that it shows more clearly how to generate a second signature with the same private key. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lms.data | 46 +++++++++++--------------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/tests/suites/test_suite_lms.data b/tests/suites/test_suite_lms.data index 869153f78..7802a70e6 100644 --- a/tests/suites/test_suite_lms.data +++ b/tests/suites/test_suite_lms.data @@ -13,7 +13,7 @@ LMS pyhsslms interop test #1 # limited amount of available test vectors for LMS. The private key is stored in # data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature # uses leaf key 0, so must be the first signature generated by the key if the -# signature is to be reproduced. Message data is random. Note that hash-sigs +# signature is to be reproduced. Message data is random. Note that pyhsslms # stores public keys and signatures in HSS form, which appends a 4-byte "levels" # word at the start of the key/sig. We strip these 4 bytes from the signature # and the public key before including them in a the test data. @@ -27,42 +27,26 @@ LMS pyhsslms interop test #1 # import pyhsslms # # private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') -# -# message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') # public_key = private_key.hss_pub -# sig = private_key.sign(message) -# print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"0000000000000000000000042c85763d2abaedaecd484517ff85138e8ab7f621585a6f8f5e072c9c0851e89aa6bb116a2cef094155cb142f0bdb84dddfa3ab236dd3bd1019b2a4caa8e26c011d3f9fc8f7df57d8f475564d5b5bd92af9f62137e176cda914bac6e07a086d287d2d9e6d7b9ad768462a39930c19761905136345a0a9f2e28f5bcd288c9137cc828bc790be3020405f4e273b6749dc35d1f4bfea3eb679ca1b46fe26196dbb7ba7f0d56643e716ca3a2f0491fbe5c5aec80ab1a4f718577655e3e56ced0e562f137c7f2be6a9c4589442f23e0c51f19fed5b9e834ffb26dca160d4fe11b7e66bf4fa099bea131620e2906fcbbf5071348cedcb70c372a8a99f7e582f02858d0d7c66ea45728a11420cf20937362dce440f0b8a96fa47e6d03470044555e5a46ec758d4e86b773afe5f5b97c328990a2e4ed59e879ec5f4c59eaaec13cc6790d38a4754a5f0029e53b4461406f6e958dc7ca3a88984e675533cac7f54c00fdfb879acd13404b091e599248eb69624bb2a8f73be37e3ec9fb5d6b9cf65f738333d93d82558c7552ba39f6afce7a7bb6756083e1e61c4a02c36a501c19b08856ba9ff07de3a0e1a6a44abcd0a663643bd8dddf5949eb4ce86feb93ba59f15b18fba26098a8a3a2aa1e5ad79155728c28904a1b218426744b4897a263be0954440e0a85ec378f922a91bbdb098b07d5873667277d22218a3b3a64292648da86b4aaa6af23fd6efa6567b184781159ca9d69619da9b7c1e9c2f9cafcc1f6ca244ae6ced58d880b72cd3fa1269b1d634fd4f551815ce59701773f6454edca537138bc00540c01f0735946151747a3ecb591775b86ecdb58d24aebb67e204e1e17882563a089c13ccea1e8baa5ed3515fd3d691697d826829fbf33a234198abac4bebc6ea6e56cba0925412b8f37bc1e532012b1d1fabf99d1b5ff15ba323ac6b5ba89353a115a5619755d1481fdce82180430fbeef3466e188b6508713ec958074ab6c81a30141a6f14b7768b7f5b25712f9a2aedd0a0b9fae183472b290b51ee92a5ddbcca3994dbb7860f13b9fde81ade00c2c29a0692033d8d2a6827fcc9b50b15b94c2507636710ce681b5b2d5792ea2e0c3a8bb4e8a3c00ab0fa924c228d88a47d649e6804394767db291d2e6b0976f56209d0cf8d2804f402342e98764cb8cee65dde7df65cb241fd2af599ffd8063fd5a28ff4f105c15f7b836cc792402c78c2281302e3cdf7f5e11beacef8b5c5a41ed8a6c30d622cca1fd7075aa12e3d7d54f2c4b7375b8eac6c1be8f8b7e97c17f73b698d01d5f0fa3c644b0b225b390cd613c18ea141ecd1801ad9a4518db5c1c115360b09dda5071ff130d3bff4809e3a1ce9ab5115d86f46cf8b8733271415582d97fa479ede1393d455cf9d227a4248e7d56d280075af69fe8946ac4a98056ac5e4f89a54d813222fb76fcf700bc34e3c9e3650c16cafc83d16e6f3240c443c64e807495a482a66a77d3b552d167c0d0355a25266a3d55ba593b68eaab6c24b0264e3832f08ca0dd91cc8a711c9e23ad37b76e8e658f6b1f61d5e448787fb57f13bcbf88e6939c265d3d6c07295703000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# +# message1 = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') +# sig1 = private_key.sign(message1)[4:] +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message1.hex(), sig1.hex(), public_key.serialize()[4:].hex())) +lms_verify_test:"60da1a17c88c59da8a730e6ca8effd37":"000000000000000436c1e7d365851f12310f77341f4f994da12f39ad5d4cddf51563e80c98640f7edcc6ca027a76e48fe8f01f077f2733026c75e76fdb236b981e7bbe92e37527a5dc64d67449106387ab0ffffd5b5d4187165b4f03965dbdc5c652a4fc81ab83e951b24b61bf86d4d9a7e8d15206cac92c866b5bb358745306525955c56dfc925c48d0259865372043643c3b11daedd40d474c386daa36e3887bb65633cab290078eb2bc24c478a9ae18ac9fbd7c4a6e5338410b22adf02a27178c5a6e2d9ad403120d76c4dd27ec8974943b8226f86834364ac40984a96f1a1201e50eaf31c44e1c12b03a0cab40f6dcfc8acacfbd46333b48985e8b3a843c8f562a8007f69586444114adade8931adbdd636ee055423e33e4fddeff509a64b4589d25034adca9d55359c1489699cc6438c21da4b01d5403f53c2308fa28a9318235b788c15b37d359217301e9d0fa1b9a3b71ef95aca3657a976fd021ce20bbd4674d1a0cc551050b21ecd96f74a591bd84b5e9ae8b966592721a24bf0e16a44102c86999697ade9f7c937277fe8447b65573776507eda7725fbdf5ce27cdf6552d57b76e6f807a575dae1c9abaeb4667bcf0534ce78796f542b65a109bd9650b880d0ca638cf5de1ad97f6c52fa24951404cad923f649aabe664fabf318fc5910a8fecae45479b36c4961572a9d472b6de23cd601ae0d79ec98dcf9d0d5de6ebc9e71665d2b7066a8cdb93a5f65f48978fee68ed8c94a43af8759a2603321af84d22a4a37d7dfe6811f3d9b3c1bd9940214678f784658bf224a6e7efe22e30b962c7cbd18bb92df3d5e86b81493db30d761fb4775dab56a6c446f2b34d906944a72cf71f4f637f0668069f24ebb55e1c50b52c2f35b568b66fa648f5ebf10f74ff48246c3ead6cd6a5901c35f3411584760574c2db86ee5d23a094bffc16369f9845fe2570b1357315f401f1bc201ba165ee16a9afd811e4f9f34b8414134346598cd5fe76c883c5215d75106eceff18135c65473186ed1bcc45246d30aa7b1e561c46d0d1cca3da2e19cca1cfe4e89ca61de070d3cad2f96270962cd770c9154ce7bb5844171293e1a2722d3e340602895ae3c6848c83e264709af8677ff1d49580348d6084e41146410e537e6fdf91881fb8b858aaa04f064671971d082e1f7681eb9ac11da7b4776bedb0bdff6dcdab8facec17df48928e3be3603262cf39d0828ceca9230ccb610e8a6c7ea8e9a3a1d4e43d2f9c204d9327d6a2e8b4dc7b9a13838e1b08b414d9ef3495aee4f4fc05d71a5e8bd828f155a8a3b7ca6e22be59901fe627408a2e8ca8dc28458a4eda726b9e8f511c27495ea3bd3a50997d17a0de3394ccd51329e386ff39708e851cec61335e6b2bc6ad5aac9851a5467eba51cfc59804d674ca23232f8da4ad28c22f7dd54461e366e247e2ef28df07f6b3e4bc2c2e0b0233aee191c2efae467b2bd511c7cfd61dc96148b69b967b9d5eb0efe41a8b0197f8cdef88060d80ce1a2f3f649ab552b52bb1123eec2848c9dceff7ce5a1768d87e67105eda66493a017771170e3462566a08366aa01dfb2b0ca838c8018f0545000000068b991bed50319a6cb9ff040b92f1563889b3787c37145fc9737d4643f66ade33ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop test #2 -# This test uses data from https://github.com/russhousley/pyhsslms due to the -# limited amount of available test vectors for LMS. The private key is stored in -# data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv. Note that this signature -# uses leaf key 1, so must be the second signature generated by the key if the -# signature is to be reproduced. Message data is random. Note that hash-sigs -# stores public keys and signatures in HSS form, which appends a 4-byte "levels" -# word at the start of the key/sig. We strip these 4 bytes from the signature -# and the public key before including them in a the test data. +# This test case continues from "LMS pyhsslms interop test #1". +# The signature uses leaf key 1, so must be the second signature generated by +# the key if the signature is to be reproduced. # # To produce another signature with this message and key (note that the actual -# signature bytes will differ due to randomization): -# * pip3 install --user pyhsslms -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv tmp/lms.prv -# * cp data_files/lms_pyhsslms_sha256_m32_h5_lmots_sha256_n32_w8_pub tmp/lms.pub +# signature bytes will differ due to randomization), after generating the +# first signature: # -#import pyhsslms -# -#private_key = pyhsslms.HssLmsPrivateKey('tmp/lms') -# -#message = bytes.fromhex('60da1a17c88c59da8a730e6ca8effd37') -#public_key = private_key.hss_pub -#sig = private_key.sign(message) -# -#message = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') -#public_key = private_key.hss_pub -#sig = private_key.sign(message) -#print('lms_verify_test:"{}":"{}":"{}":0'.format(message.hex(), sig.hex(), public_key.serialize().hex())) -lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"0000000000000001000000042115dafc81fb6404f904c6037b00c970a0790ceadf0d39f93eddae43ee0daffa0088358a8f89ca5c2b2af0d55c4ecdcbdd84953ce4043d2657ada39f4344ace04e3c4ae3d72788214d28d1b5c85af7a6d3d9d85594a907a9a39b258d4385700a6c001b52923846f68a991a86ddad9b272c98064d43142d339c1cc64e833f7f5346a70b1ef77cb197c66ef68e7a41678ec1dedfe5b6d6e22746b839df8ffdf6d6830f86e47a0370a17646ada2e3f13ee68e6cfdcbb20c0b05e47c088bc27a1e4010aca6f42f2e4c92b28d4f8591fcab60c57fea248b6e8c412b6806f956e459252df4dedbbbecdbaa57f0f15e91ab9fc1c8dae1e1ba5556faa8d618bef9f977b3571b6438f13583f5a2e4036f450a89881b108d44bd8a6700c544d12e1ba48eaa9f53eed260f0dc2bf8bd630565af7d9e182539957780b0771365d4fe57d9fb0f76b2e4e7737fd3d8e8ba67d16af59c13563ceda4d632a0f7d742c98e05d29fb752ccddca2b8e8cc0bb3e57547dbe62d77fb792568cfc8218291a057fc61d94137556f17301e4b7ab3b8f33610925aa5160397665212e16bdc3fffc7ae0ce22c83eb357409bb08b38585628b1475931e09d65986dadf01aff0f7b0e7d19cce8318ea2fcf112710da63b25b3fb1f28fa387e0dc4eea17e0cd7f1e09e2a0cf0797199750f88d4b1d597c15a8694c68e6ac04564f5ee826d612839e2a26c4e7db4e4bd4919ef5ab1730a97bc5ec0c89c93dea4e8bca06426b121bf065ed43a7f2c91ee7211c53d6111de7ccff339a99203de88fb1ec592af5a4e9b2bfc437d0be7dd3aad57f5a84a4a87522cca5fc64176acf033f25f6ec10c673f38c0a3eca954c2acdad80674bac208c0c8be1ed50ed3f41e14c4edef82fe878444c4c874fbd0019e697b3401971b9ae1b73824079de84fc889f6108ea53b94fd50eaa56ccc0fa466168b6fb4322ac01d3429a109e55d6a2459ebfb0297b32bf1eea33fec4317eab77f2d415bfe5ac243e6e6ba26f9a4dccd5bf921c813218268106c129081da409b1808eedaeebf420f768935c0c91981dc48bc07926649926cf62f596582e8b3b9f9a18e0a91221a1d03913245792269ed260071dbfb27240d78a3d98945414da4bc7e4267b8a56cc18d2a8cc2fbe0206989541be84c181dc8aea74654514d894098534963449fc7e5ecd98218c93b38c925761fae62056dd7156b215fdf48ab36d230ab6feb3df3a590fa267e8c0cb78c2f2c90ab7c71dfa97e148a03c427077ec2abc08a3ec2ec7b2503a3dc988f6a9e5362e1043be819e78c71ae96646431eb83d6c9f91edbca6507c31a44f0b643c0028813559e8b5894575461d728ed633b89d660be1635e921fac6844071687b9c82b4aedfdc7cadfee07f113906cf4f78b7e8397f6be3872a53a31e15b54443753b4197e942e2512a9703d729116e683ad9a718f0fa15cf94cc2676498e6d2f207b2d3fd61dba1ad0291eb9e243c4ab771ee4f92ac782fd72b35abff18fd91198007d604b74b7d2741e36fa74c3a1732217b06f1d2e4e34d61012e83f99d03f1e83c97150dedd04f67978620da7e0e5000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"000000010000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 +# message2 = bytes.fromhex('92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1') +# sig2 = private_key.sign(message2)[4:] +# print('lms_verify_test:"{}":"{}":"{}":0'.format(message2.hex(), sig2.hex(), public_key.serialize()[4:].hex())) +lms_verify_test:"92d036bde8c45b8bb5dea2a072560b1e29fc4bb7dc4549ce90bccee8a6e962a1":"00000001000000042fd4410a9c1947c00419216c64bc236a1620bde03ca9221e67f933bd2664f065e0cfc910c6a4317de4bda8c7fc1244ee1c102e8acc281d96c6a25d1925e087623fcb4faa00219e1f04a2c191ceceee98f2acd0fb1395fd984892f893a3ad862ff6def851e81915b9111288f84fb131e14979f1df6eecc774db45054041bfe74ec0446a0e6a6e01f9b402f41e784a2fcdc0cdccf0b89c2c8a9d2ab28e95e133b33dfb631619e75ec80a9c5d8f634f1d60feec2a5d9a5d6316fa7968734c26c3f60e53613096330a6fc1f779fe501db94b2a932ddc05740a872a8ec34c6d79c6689cd2cd6620d92ea89b39a62053c0bdd7596b360ff45de04bef0cd9b985f00681875e9f3465a71e5055e202dc51bf9ab29d227e8d2b09c6089f82cd356eb1622ada2233209f096cb35086fa2415434ef3ecd660bddf328d70e204d9a8be18319df1bd5c64072b30b72ec792c0a200b29429e262435b03f7fbb6dfcd76b9a84621c91e0ef646bd7367eead3582028a8ed9b40b1fe1562863ea43af350cdf0c965dc8329131df3f00b4b8a33548d7f7f1b03e952064e0f4cd9662af5a0d25ec8dc126d9621bf4707fbd525023ce91cbe05517bf2491e6455f2273b354c9d2f4a4364c3caf44c98ad23601cf1fc9cb490d2a9b9cdb1d60f0328e40734201e9e03f7af30fe6f0d6c7437fdd13573b012cd060a1a325b35d1a3d77e94a666d3873e267223a4e5bcf0752395570ad51d1ac7480cba32fcc8bf93439b8feafd0fb3520ab76d9ae2fba3b4600afce5fd96ff07d0e62579c16f993715f363982409ba38a46d09e6b448738f2bdb4277c65c933ea4a991fdc8021e3b9bbe5d00078b94ed1a78c61ee9d1dec014f99d23905a8fff335a9cca0228e7244a2a8b461970655b8a7f0f684c3f271c5f76924d851850b74754e24abaa9828d353976509dc4c4a241a0c314b80e400aceefe234fbdfb9af60d7c65752a4a396c4cdea1fec3478c263fb5883aa009f1845c4cb3f128c5eb9b290639c7c82fe33b17bd5ddb460a68d54be472769f77c73f7b4bfead2af4a9af6322f5bec9159d234e94a7d496cb6349a4b36fc7ca4e2c42168034bff62e687089fdd27a78484c788556edb58d7c911199752ca609a7906355f226756cd7c6c167b2a2929e8913fb2ec7c46c5caf73252f06cd51c5ca979d0b552831beeb5bcc25fba8ac83c8857633e3873adab0d23f1bb326a6c960e8bb1119e2f917c3892e9ad83f8af74abe0a0beee1734fdf5fe04024a6a644c2bbf88c6019d7115b0742898e90cc2d001efbc6f8e38eeedd5e9e9c777d1ecc6a2a9cf6d67a68781d99db1bbecdfe2e40dbe9074e7a69f0fa9037aecc31c9305c67129e0dbc8a66c8de6c18ed41746d794809bb3a5cc68c17db3052fe31e390ca862be3163660a1f70c5d2f026ed7649437600e38ee08e33f05aac9bcd8b7db309f2f41c34ba44304115ef8bbdba63629607daf67e2e642a726e021f6599032a0f8f3edef2ef5b007d3618856d48aec7894e9a4b802caf9c3f0022c6e61d34c38ba2ddef3c1b0797e7dc74faacb44ac72b5ea078f1a21c2cffc46ba000000063b71be980cffb4e8a8e310341d3b711ab19545ae90c3ac6adcbeb764419411a6ebd85a2c29b8c64a581cff01b89d59807d6fade2d2c88872f77d0ed83d97c4b5438681d0b95feb973125e4ee70ebe11699290b831e86571e36513a71f159d48ce563f6814cc2a89851d2520c5275b34cc83614cab14c0d197166580d800ee6b9004b8fd72daac8d73c36c1623c37be93ba49a06c4efde238a3a10a05daba5d4942f7de52648af2be31f33e723b3605346282f5d5e356c5d0004eea40fe0b80abf658f6c96c56319ab53d7fefb5879e0136d1cf320973a2f47c1ee3d21554910f09d17afac4607657c4309890957a4954bf86e2a8491ba37dd88b2c3fe3c7edebd767c400bc23e40d165b27133c726b90bc26cbb2a86a6aa400c47aa7ffc538388de8490b9349afa53b814ffe2a56ff16a496e9648284193754f989f6f12aeb6e":"0000000600000004d96bb26744d99ef624e32161c36d3d6efcdd0484e2b17a6dd183125be4b1af1cda931a91a3acb1151877c174f7943fd9":0 LMS pyhsslms interop NULL-message test # This test uses data from https://github.com/russhousley/pyhsslms due to the limited From 31c2dcb61104912a895b3e2e0292379eb382dc82 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 20:48:15 +0200 Subject: [PATCH 0302/1574] Fix file names in reproduction instructions in test data Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lmots.data | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_lmots.data b/tests/suites/test_suite_lmots.data index e6d71d33b..2737272bd 100644 --- a/tests/suites/test_suite_lmots.data +++ b/tests/suites/test_suite_lmots.data @@ -28,7 +28,7 @@ LMOTS hsslms interop test #1 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # # ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 0, private_key.SEED) @@ -53,7 +53,7 @@ LMOTS hsslms interop test #2 # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 1, private_key.SEED) @@ -76,7 +76,7 @@ LMOTS hsslms interop NULL-message test # from hsslms import LMS_Priv, LM_OTS_Priv, LMS_ALGORITHM_TYPE, LMOTS_ALGORITHM_TYPE # import pickle # -# with open('tests/data_files/lms_lmshss_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: +# with open('tests/data_files/lms_hsslms_sha256_m32_h5_lmots_sha256_n32_w8_prv', 'rb') as private_key_file: # private_key = pickle.load(private_key_file) # #ots_private_key = LM_OTS_Priv(private_key.otstypecode, private_key.I, 3, private_key.SEED) From fa65237fd4b27f1406d30e5464d38be74c5dd675 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 13 Oct 2022 22:05:38 +0200 Subject: [PATCH 0303/1574] Fix which config header MBEDTLS_LMS_xxx is unset from Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f7da34a3b..2ee99b3fc 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2248,8 +2248,8 @@ component_build_psa_accel_alg_md5() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_MD5 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2270,8 +2270,8 @@ component_build_psa_accel_alg_ripemd160() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_RIPEMD160 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2292,8 +2292,8 @@ component_build_psa_accel_alg_sha1() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_512 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_1 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2351,8 +2351,8 @@ component_build_psa_accel_alg_sha384() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_224 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_384 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } @@ -2373,8 +2373,8 @@ component_build_psa_accel_alg_sha512() { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_256 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_SHA_384 scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_C - scripts/config.py -f include/psa/crypto_config.h unset MBEDTLS_LMS_PRIVATE + scripts/config.py unset MBEDTLS_LMS_C + scripts/config.py unset MBEDTLS_LMS_PRIVATE # Need to define the correct symbol and include the test driver header path in order to build with the test driver make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_SHA_512 -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" } From 47b8de834dfb40f12c972ca799c26d17660f1619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 14 Oct 2022 09:35:55 +0200 Subject: [PATCH 0304/1574] Fix usage of ASSERT_ALLOC() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The second argument is the number of elements of the type the first argument is pointing to, so we shouldn't be using sizeof there. This was resulting in overly large allocations. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_asn1parse.function | 2 +- tests/suites/test_suite_ssl.function | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 87901f8fa..002d8c426 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -779,7 +779,7 @@ void free_named_data_list( int length ) for( i = 0; i < length; i++ ) { mbedtls_asn1_named_data *new = NULL; - ASSERT_ALLOC( new, sizeof( mbedtls_asn1_named_data ) ); + ASSERT_ALLOC( new, 1 ); new->next = head; head = new; } diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7b5743ece..d832853ee 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -137,7 +137,7 @@ void init_handshake_options( handshake_test_options *opts ) opts->resize_buffers = 1; #if defined(MBEDTLS_SSL_CACHE_C) opts->cache = NULL; - ASSERT_ALLOC( opts->cache, sizeof( mbedtls_ssl_cache_context ) ); + ASSERT_ALLOC( opts->cache, 1 ); mbedtls_ssl_cache_init( opts->cache ); exit: return; From 032b594ec99e7f2d814aab30dfe42a33f3775eb9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:40:56 +0100 Subject: [PATCH 0305/1574] Update SUPPORT.md Co-authored-by: Paul Elliott <62069445+paul-elliott-arm@users.noreply.github.com> Signed-off-by: Dave Rodgman --- SUPPORT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUPPORT.md b/SUPPORT.md index 2ef5b54eb..8710d149a 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -4,7 +4,7 @@ Here are some useful sources of information about using Mbed TLS: - [ReadTheDocs](https://mbed-tls.readthedocs.io/); - API documentation, see the [Documentation section of the - README](README.md#License); + README](README.md#documentation); - the `docs` directory in the source tree; - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From ce164b70164b6be8d18c0484afe0fd49ab5ed9e3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:47:04 +0100 Subject: [PATCH 0306/1574] Update SUPPORT.md Signed-off-by: Dave Rodgman --- SUPPORT.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUPPORT.md b/SUPPORT.md index 8710d149a..e12038779 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,6 +6,7 @@ Here are some useful sources of information about using Mbed TLS: - API documentation, see the [Documentation section of the README](README.md#documentation); - the `docs` directory in the source tree; +- the [Mbed TLS knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From f1ebf128e74185f8c13d9ba2a82b076065c37bbf Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 14 Oct 2022 10:48:52 +0100 Subject: [PATCH 0307/1574] Fix capitalisation Signed-off-by: Dave Rodgman --- SUPPORT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUPPORT.md b/SUPPORT.md index e12038779..b550e08e5 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,7 +6,7 @@ Here are some useful sources of information about using Mbed TLS: - API documentation, see the [Documentation section of the README](README.md#documentation); - the `docs` directory in the source tree; -- the [Mbed TLS knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); +- the [Mbed TLS Knowledge Base](https://mbed-tls.readthedocs.io/en/latest/kb/); - the [Mbed TLS mailing-list archives](https://lists.trustedfirmware.org/archives/list/mbed-tls@lists.trustedfirmware.org/). From edca207260d1570dec59b96eee00c82af5acbf1f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 14 Oct 2022 12:10:40 +0100 Subject: [PATCH 0308/1574] MBEDTLS_CIPHER_CHACHA20_POLY1305 is an mbedtls_cipher_type_t not an mbedtls_cipher_mode_t Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_cipher.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 7f5b7e290..708adb09b 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -454,7 +454,7 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, ad, sizeof(ad) - i ) ); @@ -555,7 +555,7 @@ void enc_fail( int cipher_id, int pad_mode, int key_len, int length_val, TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, NULL, 0 ) ); @@ -621,7 +621,7 @@ void dec_empty_buf( int cipher, #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); @@ -726,7 +726,7 @@ void enc_dec_buf_multipart( int cipher_id, int key_len, int first_length_val, #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); @@ -815,7 +815,7 @@ void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || - ctx.cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, ad->x, ad->len ) ); @@ -830,7 +830,7 @@ void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) int tag_expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || - ctx.cipher_info->mode == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? tag_result : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; TEST_EQUAL( tag_expected, mbedtls_cipher_check_tag( &ctx, tag->x, tag->len ) ); From 8bcd7cca94f9b7549cf0780d030582d16959a02b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:18:10 +0200 Subject: [PATCH 0309/1574] Use count instead of bytes in ASSERT_ALLOC argument Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6ac36c40a..18525ed81 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -780,8 +780,8 @@ void mpi_core_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, len ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) == 0 ); @@ -844,19 +844,19 @@ void mpi_core_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, len ); - ASSERT_ALLOC( tmp_Y, len ); + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, len ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( Y, limbs ); memcpy( Y, tmp_Y, len ); /* condition is false */ @@ -924,10 +924,10 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, len ); - ASSERT_ALLOC( Y, len ); + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); - ASSERT_ALLOC( buff_m, len ); + ASSERT_ALLOC( buff_m, limbs ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -1003,10 +1003,10 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, len ); - ASSERT_ALLOC( tmp_Y, len ); + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); - ASSERT_ALLOC( buff_m, input_len ); + ASSERT_ALLOC( buff_m, copy_limbs ); mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, @@ -1016,7 +1016,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); - ASSERT_ALLOC( X, len ); + ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, len ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) From 4086de667d1f6e091f068bbad1d3582c2946f33a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:29:42 +0200 Subject: [PATCH 0310/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_core.h | 17 +++++++++-------- library/bignum_mod_raw.h | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index bd246d5e3..b626fab6e 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -75,12 +75,13 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, size_t A_limbs ); /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional copy of an MPI which doesn't reveal + * whether assignment was done or not. * - * \param[out] X The address of the first MPI. This must be initialized. - * Must have enough limbs to store the full value of \p A. - * \param[in] A The address of the second MPI. This must be initialized. + * \param[out] X The address of the destination MPI. + * This must be initialized. Must have enough limbs to + * store the full value of \p A. + * \param[in] A The address of the source MPI. This must be initialized. * \param limbs The number of limbs of \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -92,7 +93,7 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p Y. + * neither its original value nor the value in \p A. */ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, @@ -100,8 +101,8 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional swap of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional swap of two MPIs which doesn't reveal + * whether the swap was done or not. * * \param[in,out] X The address of the first MPI. * This must be initialized. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 845ebaa5a..f698a9a62 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -34,14 +34,15 @@ #include "bignum_mod.h" /** - * \brief Perform a safe conditional copy of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional copy of an MPI which doesn't reveal + * whether the assignment was done or not. * * The size to copy is determined by \p N. * - * \param[out] X The address of the first MPI. This must be initialized. - * Must have enough limbs to store the full value of \p A. - * \param[in] A The address of the second MPI. This must be initialized. + * \param[out] X The address of the destination MPI. + * This must be initialized. Must have enough limbs to + * store the full value of \p A. + * \param[in] A The address of the source MPI. This must be initialized. * \param[in] N The address of the modulus related to \p X and \p A. * \param assign The condition deciding whether to perform the * assignment or not. Must be either 0 or 1: @@ -53,7 +54,7 @@ * * \warning If \p assign is neither 0 nor 1, the result of this function * is indeterminate, and the resulting value in \p X might be - * neither its original value nor the value in \p B. + * neither its original value nor the value in \p A. */ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, @@ -61,8 +62,8 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, unsigned char assign ); /** - * \brief Perform a safe conditional swap of MPI which doesn't reveal whether - * the condition was true or not. + * \brief Perform a safe conditional swap of two MPIs which doesn't reveal + * whether the swap was done or not. * * The size to swap is determined by \p N. * From ffb4aa0ddc7b8d47af24516356a91ea5c09bc33b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 14 Oct 2022 16:39:04 +0200 Subject: [PATCH 0311/1574] Rename variables to have unambiguous names Use bytes instead of len in the variable names. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 164 +++++++++++++-------------- 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 18525ed81..dcfa75d45 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -766,16 +766,16 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -790,34 +790,34 @@ void mpi_core_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ + than the bytesgth of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, Y, copy_len ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } else - ASSERT_COMPARE( X, len, Y, len ); + ASSERT_COMPARE( X, bytes, Y, bytes ); exit: mbedtls_free( X ); @@ -828,7 +828,7 @@ exit: /* BEGIN_CASE */ void mpi_core_cond_swap( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -837,9 +837,9 @@ void mpi_core_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -851,50 +851,50 @@ void mpi_core_cond_swap( data_t * input_X, input_X->x, input_X->len ) == 0 ); ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, len ); + memcpy( X, tmp_X, bytes ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); ASSERT_ALLOC( Y, limbs ); - memcpy( Y, tmp_Y, len ); + memcpy( Y, tmp_Y, bytes ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, len, tmp_X, len ); - ASSERT_COMPARE( Y, len, tmp_Y, len ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); - ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); - TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); } else { - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); } exit: @@ -908,7 +908,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_assign( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -917,9 +917,9 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -944,34 +944,34 @@ void mpi_mod_raw_cond_assign( data_t * input_X, == 0 ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, Y, copy_len ); - TEST_ASSERT( memcmp( X, Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } else - ASSERT_COMPARE( X, len, Y, len ); + ASSERT_COMPARE( X, bytes, Y, bytes ); exit: mbedtls_free( X ); @@ -985,7 +985,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_cond_swap( data_t * input_X, data_t * input_Y, - int input_len ) + int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -996,9 +996,9 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_len ); - size_t len = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_len = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -1017,49 +1017,49 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) == 0 ); ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, len ); + memcpy( X, tmp_X, bytes ); TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) == 0 ); - ASSERT_ALLOC( Y, len ); - memcpy( Y, tmp_Y, len ); + ASSERT_ALLOC( Y, bytes ); + memcpy( Y, tmp_Y, bytes ); /* condition is false */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, len, tmp_X, len ); - ASSERT_COMPARE( Y, len, tmp_Y, len ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); /* condition is true */ - TEST_CF_SECRET( X, len ); - TEST_CF_SECRET( Y, len ); + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, len ); - TEST_CF_PUBLIC( Y, len ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs != limbs ) { - ASSERT_COMPARE( X, copy_len, tmp_Y, copy_len ); - ASSERT_COMPARE( Y, copy_len, tmp_X, copy_len ); - TEST_ASSERT( memcmp( X, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, len ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, len ) != 0 ); + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); } else { - ASSERT_COMPARE( X, len, tmp_Y, len ); - ASSERT_COMPARE( Y, len, tmp_X, len ); + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); } exit: From dcd1717f5f90abe1116e20b3b0924c700298a5ef Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 14 Oct 2022 17:14:20 +0200 Subject: [PATCH 0312/1574] Forbid aliasing outputs Aliasing between two outputs is hardly ever useful. Signed-off-by: Gilles Peskine --- library/bignum_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index c64ce4e86..4426b9238 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -43,8 +43,8 @@ * Temporaries come last. * - **Aliasing**: in general, output bignums may be aliased to one or more * inputs. As an exception, parameters that are documented as a modulus value - * may not be aliased to an output. Temporaries may not be aliased to - * any other parameter. + * may not be aliased to an output. Outputs may not be aliased to one another. + * Temporaries may not be aliased to any other parameter. * - **Overlap**: apart from aliasing of limb array pointers (where two * arguments are equal pointers), overlap is not supported and may result * in undefined behavior. From 17845b8f7119ee512ed98be423231ad87c61eccf Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Thu, 13 Oct 2022 17:21:01 +0100 Subject: [PATCH 0313/1574] Add driver wrapper function for raw key agreement, along with test call for transparent drivers. Signed-off-by: Aditya Deshpande --- library/psa_crypto.c | 58 +++++++++++---- library/psa_crypto_core.h | 58 +++++++++++++++ library/psa_crypto_driver_wrappers.h | 16 ++++ .../psa_crypto_driver_wrappers.c.jinja | 64 ++++++++++++++++ tests/include/test/drivers/key_agreement.h | 71 ++++++++++++++++++ tests/include/test/drivers/test_driver.h | 1 + tests/src/drivers/test_driver_key_agreement.c | 73 +++++++++++++++++++ 7 files changed, 328 insertions(+), 13 deletions(-) create mode 100644 tests/include/test/drivers/key_agreement.h create mode 100644 tests/src/drivers/test_driver_key_agreement.c diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 2ce5e4320..194d986b2 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5793,26 +5793,28 @@ exit: #define PSA_KEY_AGREEMENT_MAX_SHARED_SECRET_SIZE MBEDTLS_ECP_MAX_BYTES -static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, - psa_key_slot_t *private_key, - 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_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 ) { switch( alg ) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) case PSA_ALG_ECDH: - if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( private_key->attr.type ) ) + if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( attributes->core.type ) ) return( PSA_ERROR_INVALID_ARGUMENT ); mbedtls_ecp_keypair *ecp = NULL; psa_status_t status = mbedtls_psa_ecp_load_representation( - private_key->attr.type, - private_key->attr.bits, - private_key->key.data, - private_key->key.bytes, + attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, &ecp ); if( status != PSA_SUCCESS ) return( status ); @@ -5825,7 +5827,9 @@ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, return( status ); #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ default: - (void) private_key; + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; (void) peer_key; (void) peer_key_length; (void) shared_secret; @@ -5835,6 +5839,34 @@ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, } } +/** Internal function for raw key agreement + * Calls the driver wrapper which will hand off key agreement task + * to the driver's implementation if a driver is present. + * Fallback specified in the driver wrapper is built-in raw key agreement + * (psa_key_agreement_raw_builtin). + */ +static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, + psa_key_slot_t *private_key, + const uint8_t *peer_key, + size_t peer_key_length, + uint8_t *shared_secret, + size_t shared_secret_size, + size_t *shared_secret_length ) +{ + if( !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg) ) + return( PSA_ERROR_NOT_SUPPORTED ); + + psa_key_attributes_t attributes = { + .core = private_key->attr + }; + + return( psa_driver_wrapper_key_agreement( &attributes, private_key->key.data, + private_key->key.bytes, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, + shared_secret_length ) ); +} + /* Note that if this function fails, you must call psa_key_derivation_abort() * to potentially free embedded data structures and wipe confidential data. */ diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 8c91b04d0..5bfdfb39e 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -547,4 +547,62 @@ psa_status_t psa_verify_hash_builtin( */ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, size_t bits ); + +/** Perform a key agreement and return the raw shared secret, using + built-in raw key agreement functions. + * + * \note The signature of this function is that of a PSA driver + * key_agreement entry point. This function behaves as a key_agreement + * entry point as defined in the PSA driver interface specification for + * transparent drivers. + * + * \param[in] attributes The attributes of the key to use for + * the operation. + * \param[in] key_buffer The buffer containing the private key + * context. + * \param[in] key_buffer_size Size of the \p key_buffer buffer in + * bytes. + * \param[in] alg A key agreement algorithm that is + * compatible with the type of the key. + * \param[in] peer_key The buffer containing the key context + * of the peer's public key. + * \param[in] peer_key_length Size of the \p peer_key buffer in + * bytes. + * \param[out] shared_secret The buffer to which the shared secret + * is to be written. + * \param[in] shared_secret_size Size of the \p shared_secret buffer in + * bytes. + * \param[out] shared_secret_length On success, the number of bytes that + * make up the returned shared secret. + * \retval #PSA_SUCCESS + * Success. Shared secret successfully calculated. + * \retval #PSA_ERROR_INVALID_HANDLE + * \retval #PSA_ERROR_NOT_PERMITTED + * \retval #PSA_ERROR_INVALID_ARGUMENT + * \p alg is not a key agreement algorithm, or + * \p private_key is not compatible with \p alg, + * or \p peer_key is not valid for \p alg or not compatible with + * \p private_key. + * \retval #PSA_ERROR_BUFFER_TOO_SMALL + * \p shared_secret_size is too small + * \retval #PSA_ERROR_NOT_SUPPORTED + * \p alg is not a supported key agreement algorithm. + * \retval #PSA_ERROR_INSUFFICIENT_MEMORY + * \retval #PSA_ERROR_COMMUNICATION_FAILURE + * \retval #PSA_ERROR_HARDWARE_FAILURE + * \retval #PSA_ERROR_CORRUPTION_DETECTED + * \retval #PSA_ERROR_STORAGE_FAILURE + * \retval #PSA_ERROR_BAD_STATE + */ +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 ); + #endif /* PSA_CRYPTO_CORE_H */ diff --git a/library/psa_crypto_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h index ee23b6f3f..017a4b6c8 100644 --- a/library/psa_crypto_driver_wrappers.h +++ b/library/psa_crypto_driver_wrappers.h @@ -357,6 +357,22 @@ psa_status_t psa_driver_wrapper_asymmetric_decrypt( size_t output_size, size_t *output_length ); +/* + * Raw Key Agreement + */ + + psa_status_t psa_driver_wrapper_key_agreement( + 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 + ); + #endif /* PSA_CRYPTO_DRIVER_WRAPPERS_H */ /* End of automatically generated file. */ diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index 8ef2e6d87..734b6b686 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -2452,4 +2452,68 @@ psa_status_t psa_driver_wrapper_asymmetric_decrypt( } } +psa_status_t psa_driver_wrapper_key_agreement( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ + #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + #if defined(PSA_CRYPTO_DRIVER_TEST) + status = + mbedtls_test_transparent_key_agreement( attributes, + key_buffer, + key_buffer_size, + alg, + peer_key, + peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); + #endif /* PSA_CRYPTO_DRIVER_TEST */ + #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Software Fallback */ + status = psa_key_agreement_raw_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + peer_key, + peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ); + return( status ); + + default: + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) peer_key; + (void) peer_key_length; + (void) shared_secret; + (void) shared_secret_size; + (void) shared_secret_length; + return( PSA_ERROR_NOT_SUPPORTED ); + + } + } + #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h new file mode 100644 index 000000000..57de81ab1 --- /dev/null +++ b/tests/include/test/drivers/key_agreement.h @@ -0,0 +1,71 @@ +/* + * Test driver for key agreement functions. + */ +/* Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H +#define PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H + +#include "mbedtls/build_info.h" + +#if defined(PSA_CRYPTO_DRIVER_TEST) +#include + +typedef struct { + /* If non-null, on success, copy this to the output. */ + void *forced_output; + size_t forced_output_length; + /* If not PSA_SUCCESS, return this error code instead of processing the + * function call. */ + psa_status_t forced_status; + /* Count the amount of times one of the signature driver functions is called. */ + unsigned long hits; +} mbedtls_test_driver_key_agreement_hooks_t; + +#define MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT { NULL, 0, PSA_SUCCESS, 0 } +static inline mbedtls_test_driver_key_agreement_hooks_t + mbedtls_test_driver_key_agreement_hooks_init( void ) +{ + const mbedtls_test_driver_key_agreement_hooks_t + v = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT; + return( v ); +} + +psa_status_t mbedtls_test_transparent_key_agreement( + 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 mbedtls_test_opaque_key_agreement( + 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 ); + +#endif /*PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ \ No newline at end of file diff --git a/tests/include/test/drivers/test_driver.h b/tests/include/test/drivers/test_driver.h index 098b21abf..0bfeb66b0 100644 --- a/tests/include/test/drivers/test_driver.h +++ b/tests/include/test/drivers/test_driver.h @@ -29,5 +29,6 @@ #include "test/drivers/key_management.h" #include "test/drivers/signature.h" #include "test/drivers/asymmetric_encryption.h" +#include "test/drivers/key_agreement.h" #endif /* PSA_CRYPTO_TEST_DRIVER_H */ diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c new file mode 100644 index 000000000..40681c315 --- /dev/null +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -0,0 +1,73 @@ +/* + * Test driver for key agreement functions. + */ +/* Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "psa/crypto.h" +#include "psa_crypto_core.h" + +#include "test/drivers/key_agreement.h" +#include "test/drivers/test_driver.h" + +#include + +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) && defined(PSA_CRYPTO_DRIVER_TEST) + +mbedtls_test_driver_key_agreement_hooks_t + mbedtls_test_driver_key_agreement_hooks = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT; + +psa_status_t mbedtls_test_transparent_key_agreement( + 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 ) +{ + if( mbedtls_test_driver_key_agreement_hooks.forced_status != PSA_SUCCESS ) + return( mbedtls_test_driver_key_agreement_hooks.forced_status ); + + if( mbedtls_test_driver_key_agreement_hooks.forced_output != NULL ) + { + if( mbedtls_test_driver_key_agreement_hooks.forced_output_length > shared_secret_size ) + return( PSA_ERROR_BUFFER_TOO_SMALL ); + + memcpy( shared_secret, mbedtls_test_driver_key_agreement_hooks.forced_output, + mbedtls_test_driver_key_agreement_hooks.forced_output_length ); + *shared_secret_length = mbedtls_test_driver_key_agreement_hooks.forced_output_length; + + return( PSA_SUCCESS ); + } + + return( psa_key_agreement_raw_builtin( + attributes, + key_buffer, + key_buffer_size, + alg, + peer_key, + peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ) ); +} + +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ \ No newline at end of file From 40c05cc8e4ccc52c455481350fc33dcae7589eea Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Fri, 14 Oct 2022 16:41:40 +0100 Subject: [PATCH 0314/1574] Newlines at end of file + trim trailing whitespace Signed-off-by: Aditya Deshpande --- library/psa_crypto.c | 10 ++--- library/psa_crypto_core.h | 42 +++++++++---------- .../psa_crypto_driver_wrappers.c.jinja | 4 +- tests/include/test/drivers/key_agreement.h | 2 +- tests/src/drivers/test_driver_key_agreement.c | 4 +- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 194d986b2..86b84bf19 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5841,8 +5841,8 @@ psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attribut /** Internal function for raw key agreement * Calls the driver wrapper which will hand off key agreement task - * to the driver's implementation if a driver is present. - * Fallback specified in the driver wrapper is built-in raw key agreement + * to the driver's implementation if a driver is present. + * Fallback specified in the driver wrapper is built-in raw key agreement * (psa_key_agreement_raw_builtin). */ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, @@ -5861,9 +5861,9 @@ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, }; return( psa_driver_wrapper_key_agreement( &attributes, private_key->key.data, - private_key->key.bytes, - alg, peer_key, peer_key_length, - shared_secret, shared_secret_size, + private_key->key.bytes, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, shared_secret_length ) ); } diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 5bfdfb39e..63d9b2916 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -548,7 +548,7 @@ psa_status_t psa_verify_hash_builtin( psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, size_t bits ); -/** Perform a key agreement and return the raw shared secret, using +/** Perform a key agreement and return the raw shared secret, using built-in raw key agreement functions. * * \note The signature of this function is that of a PSA driver @@ -556,24 +556,24 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, * entry point as defined in the PSA driver interface specification for * transparent drivers. * - * \param[in] attributes The attributes of the key to use for - * the operation. - * \param[in] key_buffer The buffer containing the private key - * context. - * \param[in] key_buffer_size Size of the \p key_buffer buffer in - * bytes. - * \param[in] alg A key agreement algorithm that is - * compatible with the type of the key. - * \param[in] peer_key The buffer containing the key context - * of the peer's public key. - * \param[in] peer_key_length Size of the \p peer_key buffer in - * bytes. - * \param[out] shared_secret The buffer to which the shared secret - * is to be written. - * \param[in] shared_secret_size Size of the \p shared_secret buffer in - * bytes. - * \param[out] shared_secret_length On success, the number of bytes that - * make up the returned shared secret. + * \param[in] attributes The attributes of the key to use for the + * operation. + * \param[in] key_buffer The buffer containing the private key + * context. + * \param[in] key_buffer_size Size of the \p key_buffer buffer in + * bytes. + * \param[in] alg A key agreement algorithm that is + * compatible with the type of the key. + * \param[in] peer_key The buffer containing the key context + * of the peer's public key. + * \param[in] peer_key_length Size of the \p peer_key buffer in + * bytes. + * \param[out] shared_secret The buffer to which the shared secret + * is to be written. + * \param[in] shared_secret_size Size of the \p shared_secret buffer in + * bytes. + * \param[out] shared_secret_length On success, the number of bytes that make + * up the returned shared secret. * \retval #PSA_SUCCESS * Success. Shared secret successfully calculated. * \retval #PSA_ERROR_INVALID_HANDLE @@ -594,7 +594,7 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, * \retval #PSA_ERROR_STORAGE_FAILURE * \retval #PSA_ERROR_BAD_STATE */ -psa_status_t psa_key_agreement_raw_builtin( +psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, @@ -604,5 +604,5 @@ psa_status_t psa_key_agreement_raw_builtin( uint8_t *shared_secret, size_t shared_secret_size, size_t *shared_secret_length ); - + #endif /* PSA_CRYPTO_CORE_H */ diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index 734b6b686..bef519701 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -2501,7 +2501,7 @@ psa_status_t psa_driver_wrapper_key_agreement( shared_secret_size, shared_secret_length ); return( status ); - + default: (void) attributes; (void) key_buffer; @@ -2512,7 +2512,7 @@ psa_status_t psa_driver_wrapper_key_agreement( (void) shared_secret_size; (void) shared_secret_length; return( PSA_ERROR_NOT_SUPPORTED ); - + } } diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h index 57de81ab1..b04bc5985 100644 --- a/tests/include/test/drivers/key_agreement.h +++ b/tests/include/test/drivers/key_agreement.h @@ -68,4 +68,4 @@ psa_status_t mbedtls_test_opaque_key_agreement( size_t *shared_secret_length ); #endif /*PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ \ No newline at end of file +#endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 40681c315..884899ff2 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -58,7 +58,7 @@ psa_status_t mbedtls_test_transparent_key_agreement( return( PSA_SUCCESS ); } - return( psa_key_agreement_raw_builtin( + return( psa_key_agreement_raw_builtin( attributes, key_buffer, key_buffer_size, @@ -70,4 +70,4 @@ psa_status_t mbedtls_test_transparent_key_agreement( shared_secret_length ) ); } -#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ \ No newline at end of file +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ From 503d09b52d9d068a434f8b90647e46d86f33e30b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 17 Oct 2022 12:27:43 +0200 Subject: [PATCH 0315/1574] Fix memory leak if unit test fails Signed-off-by: Gilles Peskine --- tests/suites/test_suite_lmots.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index 53ab02ff6..fd6a89f2c 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -193,6 +193,7 @@ void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) exit: mbedtls_lmots_public_free( &ctx ); + mbedtls_free( exported_pub_key ); } /* END_CASE */ From 0c74e084d5ed82407071c437ed0ecd7faa4b176b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 17 Oct 2022 16:09:58 +0200 Subject: [PATCH 0316/1574] Fix condition Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index dcfa75d45..833b0108c 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -811,7 +811,7 @@ void mpi_core_cond_assign( data_t * input_X, /* Check if the given length is copied even it is smaller than the bytesgth of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); @@ -882,7 +882,7 @@ void mpi_core_cond_swap( data_t * input_X, /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); @@ -965,7 +965,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs != limbs ) + if( copy_limbs Date: Mon, 17 Oct 2022 13:53:35 +0100 Subject: [PATCH 0317/1574] Fix spacing and formatting Signed-off-by: Aditya Deshpande --- library/psa_crypto_driver_wrappers.h | 6 ++---- tests/include/test/drivers/key_agreement.h | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/library/psa_crypto_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h index 017a4b6c8..a19d7ecae 100644 --- a/library/psa_crypto_driver_wrappers.h +++ b/library/psa_crypto_driver_wrappers.h @@ -360,8 +360,7 @@ psa_status_t psa_driver_wrapper_asymmetric_decrypt( /* * Raw Key Agreement */ - - psa_status_t psa_driver_wrapper_key_agreement( +psa_status_t psa_driver_wrapper_key_agreement( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, @@ -370,8 +369,7 @@ psa_status_t psa_driver_wrapper_asymmetric_decrypt( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length - ); + size_t *shared_secret_length ); #endif /* PSA_CRYPTO_DRIVER_WRAPPERS_H */ diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h index b04bc5985..634cbac19 100644 --- a/tests/include/test/drivers/key_agreement.h +++ b/tests/include/test/drivers/key_agreement.h @@ -56,16 +56,16 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t shared_secret_size, size_t *shared_secret_length ); -psa_status_t mbedtls_test_opaque_key_agreement( - 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 mbedtls_test_opaque_key_agreement( +// 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 ); #endif /*PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ From d0e3d45e96f83bc058dc5f4c94bc6c5b979a13de Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 17 Oct 2022 17:42:19 +0100 Subject: [PATCH 0318/1574] Add explanatory comments to raw DER test data Break down the DER-encoded ASN.1 test data into its structure in a comment and explain it, to make it easier to understand where the data came from and how it is corrupted. Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.data | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 1db09826e..8dd337995 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -415,9 +415,43 @@ mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, CN=PolarSSL Server 1":0x03:"C":1:"C= X509 Get Next DN #4 Consecutive Multivalue RDNs mbedtls_x509_dn_get_next:"C=NL, O=PolarSSL, title=Example, CN=PolarSSL Server 1":0x05:"C title":2:"C=NL + O=PolarSSL, title=Example + CN=PolarSSL Server 1" +# Parse the following valid DN: +# +# 31 0B <- Set of +# 30 09 <- Sequence of +# 06 03 55 04 06 <- OID 2.5.4.6 countryName (C) +# 13 02 4E 4C <- PrintableString "NL" +# 31 11 <- Set of +# 30 0F <- Sequence of +# 06 03 55 04 0A <- OID 2.5.4.10 organizationName (O) +# 0C 08 50 6F 6C 61 72 53 53 4C <- UTF8String "PolarSSL" +# 31 19 <- Set of +# 30 17 <- Sequence of +# 06 03 55 04 03 <- OID 2.5.4.3 commonName (CN) +# 0C 10 50 6F 6C 61 72 53 53 4C 20 54 65 73 74 20 43 41 <- UTF8String "PolarSSL Test CA" +# X509 Get Name Valid DN mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3119301706035504030C10506F6C617253534C2054657374204341":0 +# Parse the following corrupted DN: +# +# 31 0B <- Set of +# 30 09 <- Sequence of +# 06 03 55 04 06 <- OID 2.5.4.6 countryName (C) +# 13 02 4E 4C <- PrintableString "NL" +# 31 11 <- Set of +# 30 0F <- Sequence of +# 06 03 55 04 0A <- OID 2.5.4.10 organizationName (O) +# 0C 08 50 6F 6C 61 72 53 53 4C <- UTF8String "PolarSSL" +# 30 19 <- Sequence of (corrupted) +# 30 17 <- Sequence of +# 06 03 55 04 03 <- OID 2.5.4.3 commonName (CN) +# 0C 10 50 6F 6C 61 72 53 53 4C 20 54 65 73 74 20 43 41 <- UTF8String "PolarSSL Test CA" +# +# The third 'Set of' is corrupted to instead be a 'Sequence of', causing an +# error and forcing mbedtls_x509_get_name() to clean up the names it has +# already allocated. +# X509 Get Name Corrupted DN Mem Leak mbedtls_x509_get_name:"310B3009060355040613024E4C3111300F060355040A0C08506F6C617253534C3019301706035504030C10506F6C617253534C2054657374204341":MBEDTLS_ERR_X509_INVALID_NAME + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG From 3cd67584bc8f1c65937da74bdca74dbc758876bc Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 17 Oct 2022 17:59:10 +0100 Subject: [PATCH 0319/1574] Improve X509 DN test naming Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index e8a2bb971..6947f3c19 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -819,21 +819,21 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_get_name( char * hex_name, int exp_ret ) +void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) { unsigned char *name; unsigned char *p; size_t name_len; mbedtls_x509_name head; mbedtls_x509_name *allocated, *prev; - int res; + int ret; - name = mbedtls_test_unhexify_alloc( hex_name, &name_len ); + name = mbedtls_test_unhexify_alloc( rdn_sequence, &name_len ); p = name; - res = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); + ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); - if( res == 0 ) + if( ret == 0 ) { allocated = head.next; head.next = NULL; @@ -848,7 +848,7 @@ void mbedtls_x509_get_name( char * hex_name, int exp_ret ) } } - TEST_ASSERT( res == exp_ret ); + TEST_ASSERT( ret == exp_ret ); mbedtls_free( name ); } From 11307a1933cbcb36ad9a066c6c345e4bf9f90127 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 17 Oct 2022 18:10:23 +0100 Subject: [PATCH 0320/1574] Clarify wording on allocation Signed-off-by: David Horstmann --- library/x509.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/x509.c b/library/x509.c index cdc87e53e..403507413 100644 --- a/library/x509.c +++ b/library/x509.c @@ -469,7 +469,7 @@ static int x509_get_attr_type_value( unsigned char **p, * same set so that they are "merged" together in the functions that consume * this list, eg mbedtls_x509_dn_gets(). * - * On success, this function allocates a linked list starting at cur->next + * On success, this function may allocate a linked list starting at cur->next * that must later be free'd by the caller using mbedtls_free(). In error * cases, this function frees all allocated memory internally and the caller * has no freeing responsibilities. From d976673dd60ed3a0566419196f7e47d720ecc842 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Mon, 17 Oct 2022 15:13:30 +0800 Subject: [PATCH 0321/1574] Add build version to the output of ssl_client2 Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index be474d473..451e23264 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -25,6 +25,10 @@ #include "test/psa_crypto_helpers.h" #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_VERSION_C) +#include "mbedtls/build_info.h" +#endif /* MBEDTLS_VERSION_C */ + #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) int main( void ) { @@ -360,6 +364,14 @@ int main( void ) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES "" #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_VERSION_C) +#define USAGE_BUILD_VERSION \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print the build version only a stop)\n" +#else +#define USAGE_BUILD_VERSION "" +#endif /* MBEDTLS_VERSION_C */ + /* USAGE is arbitrarily split to stay under the portable string literal * length limit: 4095 bytes in C99. */ #define USAGE1 \ @@ -375,6 +387,7 @@ int main( void ) " application data message is sent followed by\n" \ " a second non-empty message before attempting\n" \ " to read a response from the server\n" \ + USAGE_BUILD_VERSION \ " debug_level=%%d default: 0 (disabled)\n" \ " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ @@ -984,6 +997,18 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } +#if defined(MBEDTLS_VERSION_C) + else if( strcmp( p, "build_version" ) == 0 ) + { + if( strcmp( q, "1" ) == 0 ) + { + mbedtls_printf( "build version: %s (build %u)\n", + MBEDTLS_VERSION_STRING, + MBEDTLS_VERSION_NUMBER ); + goto exit; + } + } +#endif /* MBEDTLS_VERSION_C */ else if( strcmp( p, "context_crt_cb" ) == 0 ) { opt.context_crt_cb = atoi( q ); @@ -2454,6 +2479,11 @@ int main( int argc, char *argv[] ) } } +#if defined(MBEDTLS_VERSION_C) + mbedtls_printf( "build version: %s (build %u)\n", + MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_NUMBER ); +#endif /* MBEDTLS_VERSION_C */ + #if defined(MBEDTLS_X509_CRT_PARSE_C) /* * 5. Verify the server certificate From 2bb2f15772b93d5878fb6e239d3e248d697d4ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 12 Oct 2022 10:57:31 +0200 Subject: [PATCH 0322/1574] Improve driver-only outcome-analysis script MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of having a list of test suites of interest, have a list of suites to ignore and look at all the others. In order for this to only yield interesting results, we need to tune the reference configuration a bit, in order to exclude STREAM and ECB to more closely match the driver-based configuration. Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 67510c144..f3566b20a 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -31,13 +31,23 @@ DRIVER_COMPONENT=test_psa_crypto_config_accel_hash_use_psa # A similar configuration to that of the component, except without drivers, # for comparison. reference_config () { - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - scripts/config.py unset MBEDTLS_PKCS1_V21 - scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + # start with full + scripts/config.py full + # use PSA config and disable driver-less algs as in the component + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + # disable options as in the component + # (no need to disable whole modules, we'll just skip their test suite) scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA } -# Space-separated list of test suites of interest. -SUITES="rsa pkcs1_v15 pk pkparse pkwrite" +# Space-separated list of test suites to ignore: +# if SSS is in that list, test_suite_SSS and test_suite_SSS.* are ignored. +IGNORE="md mdx shax" # accelerated +IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) +IGNORE="$IGNORE psa_crypto_init" # needs internal RNG +IGNORE="$IGNORE hkdf" # disabled # ----- END edit this ----- set -eu @@ -85,6 +95,22 @@ tests/scripts/all.sh -k test_psa_crypto_config_accel_hash_use_psa # analysis +populate_suites () { + SUITES='' + make generated_files >/dev/null + data_files=$(cd tests/suites && echo *.data) + for data in $data_files; do + suite=${data#test_suite_} + suite=${suite%.data} + suite_base=${suite%%.*} + case " $IGNORE " in + *" $suite_base "*) :;; + *) SUITES="$SUITES $suite";; + esac + done + make neat +} + compare_suite () { ref="outcome-$1.csv" new="outcome-$2.csv" @@ -98,19 +124,29 @@ compare_suite () { nb_ref=$(wc -l %3d\n" \ + printf "%36s: total %4d; skipped %4d -> %4d\n" \ $suite $total $nb_ref $nb_new - diff skipped-ref skipped-new | grep '^> ' || true + if diff skipped-ref skipped-new | grep '^> '; then + ret=1 + else + ret=0 + fi rm skipped-ref skipped-new + return $ret } compare_builds () { printf "\n*** Comparing $1 -> $2 ***\n" + failed='' for suite in $SUITES; do - compare_suite "$1" "$2" "$suite" + if compare_suite "$1" "$2" "$suite"; then :; else + failed="$failed $suite" + fi done + printf "suites with less coverage: %s\n" "$failed" } +populate_suites compare_builds before-default after-default compare_builds before-full after-full compare_builds reference drivers From f6e6df9dbf10c6fbaaa1253132b935959f4b673f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 17 Oct 2022 12:24:37 +0200 Subject: [PATCH 0323/1574] Add option for before-after or just ref-drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index f3566b20a..f777b8fb9 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -48,6 +48,8 @@ IGNORE="md mdx shax" # accelerated IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) IGNORE="$IGNORE psa_crypto_init" # needs internal RNG IGNORE="$IGNORE hkdf" # disabled +# Compare only "reference vs driver" or also "before vs after"? +BEFORE_AFTER=1 # 0 or 1 # ----- END edit this ----- set -eu @@ -63,26 +65,28 @@ record() { make check } -# save current HEAD -HEAD=$(git branch --show-current) +if [ "$BEFORE_AFTER" -eq 1 ]; then + # save current HEAD + HEAD=$(git branch --show-current) -# get the numbers before this PR for default and full -cleanup -git checkout $(git merge-base HEAD development) -record "before-default" + # get the numbers before this PR for default and full + cleanup + git checkout $(git merge-base HEAD development) + record "before-default" -cleanup -scripts/config.py full -record "before-full" + cleanup + scripts/config.py full + record "before-full" -# get the numbers now for default and full -cleanup -git checkout $HEAD -record "after-default" + # get the numbers now for default and full + cleanup + git checkout $HEAD + record "after-default" -cleanup -scripts/config.py full -record "after-full" + cleanup + scripts/config.py full + record "after-full" +fi # get the numbers now for driver-only and reference cleanup @@ -147,6 +151,8 @@ compare_builds () { } populate_suites -compare_builds before-default after-default -compare_builds before-full after-full +if [ "$BEFORE_AFTER" -eq 1 ]; then + compare_builds before-default after-default + compare_builds before-full after-full +fi compare_builds reference drivers From b51051f1c76b69b02d65b7228ed526c213541380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 18 Oct 2022 09:42:30 +0200 Subject: [PATCH 0324/1574] Cosmetic improvement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index f777b8fb9..8c6f5e65e 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -147,7 +147,11 @@ compare_builds () { failed="$failed $suite" fi done - printf "suites with less coverage: %s\n" "$failed" + if [ -z "$failed" ]; then + printf "No coverage gap found.\n" + else + printf "Suites with less coverage:%s\n" "$failed" + fi } populate_suites From d92fb01419755046c32f4caa3a19c8a6371aaec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 18 Oct 2022 10:14:31 +0200 Subject: [PATCH 0325/1574] Skip bits not needed in outcome-analysis.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 1 + tests/scripts/all.sh | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 8c6f5e65e..2134c5bb1 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -95,6 +95,7 @@ record "reference" cleanup export MBEDTLS_TEST_OUTCOME_FILE="$PWD/outcome-drivers.csv" +export SKIP_SSL_OPT_COMPAT_SH=1 tests/scripts/all.sh -k test_psa_crypto_config_accel_hash_use_psa # analysis diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f1b2f0e29..e794d088a 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2063,11 +2063,16 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test - msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/ssl-opt.sh + # hidden option: when running outcome-analysis.sh, we can skip this + if [ "${SKIP_SSL_OPT_COMPAT_SH-unset}" = "unset" ]; then + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/compat.sh + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/compat.sh + else + echo "skip sh scripts" + fi } component_test_psa_crypto_config_accel_cipher () { From ff4181e2460f6370d46caf16e2d1b3ecd729153a Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Tue, 18 Oct 2022 18:16:08 +0800 Subject: [PATCH 0326/1574] Fix build error in cmake while printing digital build version Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 451e23264..59a96d212 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -27,6 +27,7 @@ #if defined(MBEDTLS_VERSION_C) #include "mbedtls/build_info.h" +#include "mbedtls/version.h" #endif /* MBEDTLS_VERSION_C */ #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) @@ -1004,7 +1005,7 @@ int main( int argc, char *argv[] ) { mbedtls_printf( "build version: %s (build %u)\n", MBEDTLS_VERSION_STRING, - MBEDTLS_VERSION_NUMBER ); + mbedtls_version_get_number() ); goto exit; } } @@ -2481,7 +2482,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_VERSION_C) mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_NUMBER ); + MBEDTLS_VERSION_STRING, mbedtls_version_get_number() ); #endif /* MBEDTLS_VERSION_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) From 98b1af4e344d0f87d6f559459d1606b58ef1411b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 18 Oct 2022 13:16:04 +0200 Subject: [PATCH 0327/1574] test_suite_debug: adapt dependenies so the test can run in the driver-only build Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_debug.data | 4 ++-- tests/suites/test_suite_debug.function | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_debug.data b/tests/suites/test_suite_debug.data index 4d9290a57..47612d6e2 100644 --- a/tests/suites/test_suite_debug.data +++ b/tests/suites/test_suite_debug.data @@ -59,9 +59,9 @@ Debug print mbedtls_mpi: 764 bits #2 mbedtls_debug_print_mpi:"0000000000000000000000000000000000000000000000000000000941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"MyFile":999:"VALUE":"MyFile(0999)\: value of 'VALUE' (764 bits) is\:\nMyFile(0999)\: 09 41 37 9d 00 fe d1 49 1f e1 5d f2 84 df de 4a\nMyFile(0999)\: 14 2f 68 aa 8d 41 20 23 19 5c ee 66 88 3e 62 90\nMyFile(0999)\: ff e7 03 f4 ea 59 63 bf 21 27 13 ce e4 6b 10 7c\nMyFile(0999)\: 09 18 2b 5e dc d9 55 ad ac 41 8b f4 91 8e 28 89\nMyFile(0999)\: af 48 e1 09 9d 51 38 30 ce c8 5c 26 ac 1e 15 8b\nMyFile(0999)\: 52 62 0e 33 ba 86 92 f8 93 ef bb 2f 95 8b 44 24\n" Debug print certificate #1 (RSA) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_SHA1_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA:!MBEDTLS_X509_REMOVE_INFO mbedtls_debug_print_crt:"data_files/server1.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: 01\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=PolarSSL Test CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:06\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:06\nMyFile(0999)\: signed using \: RSA with SHA1\nMyFile(0999)\: RSA key size \: 2048 bits\nMyFile(0999)\: basic constraints \: CA=false\nMyFile(0999)\: value of 'crt->rsa.N' (2048 bits) is\:\nMyFile(0999)\: a9 02 1f 3d 40 6a d5 55 53 8b fd 36 ee 82 65 2e\nMyFile(0999)\: 15 61 5e 89 bf b8 e8 45 90 db ee 88 16 52 d3 f1\nMyFile(0999)\: 43 50 47 96 12 59 64 87 6b fd 2b e0 46 f9 73 be\nMyFile(0999)\: dd cf 92 e1 91 5b ed 66 a0 6f 89 29 79 45 80 d0\nMyFile(0999)\: 83 6a d5 41 43 77 5f 39 7c 09 04 47 82 b0 57 39\nMyFile(0999)\: 70 ed a3 ec 15 19 1e a8 33 08 47 c1 05 42 a9 fd\nMyFile(0999)\: 4c c3 b4 df dd 06 1f 4d 10 51 40 67 73 13 0f 40\nMyFile(0999)\: f8 6d 81 25 5f 0a b1 53 c6 30 7e 15 39 ac f9 5a\nMyFile(0999)\: ee 7f 92 9e a6 05 5b e7 13 97 85 b5 23 92 d9 d4\nMyFile(0999)\: 24 06 d5 09 25 89 75 07 dd a6 1a 8f 3f 09 19 be\nMyFile(0999)\: ad 65 2c 64 eb 95 9b dc fe 41 5e 17 a6 da 6c 5b\nMyFile(0999)\: 69 cc 02 ba 14 2c 16 24 9c 4a dc cd d0 f7 52 67\nMyFile(0999)\: 73 f1 2d a0 23 fd 7e f4 31 ca 2d 70 ca 89 0b 04\nMyFile(0999)\: db 2e a6 4f 70 6e 9e ce bd 58 89 e2 53 59 9e 6e\nMyFile(0999)\: 5a 92 65 e2 88 3f 0c 94 19 a3 dd e5 e8 9d 95 13\nMyFile(0999)\: ed 29 db ab 70 12 dc 5a ca 6b 17 ab 52 82 54 b1\nMyFile(0999)\: value of 'crt->rsa.E' (17 bits) is\:\nMyFile(0999)\: 01 00 01\n" Debug print certificate #2 (EC) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_BASE64_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA:!MBEDTLS_X509_REMOVE_INFO mbedtls_debug_print_crt:"data_files/test-ca2.crt":"MyFile":999:"PREFIX_":"MyFile(0999)\: PREFIX_ #1\:\nMyFile(0999)\: cert. version \: 3\nMyFile(0999)\: serial number \: C1\:43\:E2\:7E\:62\:43\:CC\:E8\nMyFile(0999)\: issuer name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: subject name \: C=NL, O=PolarSSL, CN=Polarssl Test EC CA\nMyFile(0999)\: issued on \: 2019-02-10 14\:44\:00\nMyFile(0999)\: expires on \: 2029-02-10 14\:44\:00\nMyFile(0999)\: signed using \: ECDSA with SHA256\nMyFile(0999)\: EC key size \: 384 bits\nMyFile(0999)\: basic constraints \: CA=true\nMyFile(0999)\: value of 'crt->eckey.Q(X)' (384 bits) is\:\nMyFile(0999)\: c3 da 2b 34 41 37 58 2f 87 56 fe fc 89 ba 29 43\nMyFile(0999)\: 4b 4e e0 6e c3 0e 57 53 33 39 58 d4 52 b4 91 95\nMyFile(0999)\: 39 0b 23 df 5f 17 24 62 48 fc 1a 95 29 ce 2c 2d\nMyFile(0999)\: value of 'crt->eckey.Q(Y)' (384 bits) is\:\nMyFile(0999)\: 87 c2 88 52 80 af d6 6a ab 21 dd b8 d3 1c 6e 58\nMyFile(0999)\: b8 ca e8 b2 69 8e f3 41 ad 29 c3 b4 5f 75 a7 47\nMyFile(0999)\: 6f d5 19 29 55 69 9a 53 3b 20 b4 66 16 60 33 1e\n" diff --git a/tests/suites/test_suite_debug.function b/tests/suites/test_suite_debug.function index fa93ca968..85544b560 100644 --- a/tests/suites/test_suite_debug.function +++ b/tests/suites/test_suite_debug.function @@ -1,6 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/debug.h" #include "string.h" +#include "mbedtls/legacy_or_psa.h" struct buffer_data { From 4dceede71bb6e40c80990d0df990963480dca1c3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 18 Oct 2022 16:44:17 +0200 Subject: [PATCH 0328/1574] Fix overly replacement in the documentation Signed-off-by: Gabor Mezei --- tests/suites/test_suite_mpi.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 833b0108c..71aa3608b 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -810,7 +810,7 @@ void mpi_core_cond_assign( data_t * input_X, TEST_CF_PUBLIC( Y, bytes ); /* Check if the given length is copied even it is smaller - than the bytesgth of the given MPIs. */ + than the length of the given MPIs. */ if( copy_limbs < limbs ) { ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); From 178ec96c89c30b271b43c0fe77615a059fafc3ca Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 18 Oct 2022 17:42:22 +0100 Subject: [PATCH 0329/1574] Remove unnecessary NULL assignments Signed-off-by: David Horstmann --- library/x509.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/library/x509.c b/library/x509.c index 403507413..812eba8af 100644 --- a/library/x509.c +++ b/library/x509.c @@ -538,14 +538,9 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, } error: - prev = NULL; - /* Skip the first element as we did not allocate it */ allocated = head->next; - /* Make sure we cannot be followed along this list */ - head->next = NULL; - while( allocated != NULL ) { prev = allocated; From 078250eb56869145af669cfd951a317feaddb746 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 18 Oct 2022 18:11:13 +0100 Subject: [PATCH 0330/1574] Fix incorrect return style Signed-off-by: David Horstmann --- library/x509.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/x509.c b/library/x509.c index 812eba8af..199f82bc2 100644 --- a/library/x509.c +++ b/library/x509.c @@ -552,7 +552,7 @@ error: mbedtls_platform_zeroize( head, sizeof( *head ) ); - return ret; + return( ret ); } static int x509_parse_int( unsigned char **p, size_t n, int *res ) From 98b91d40d6455ab4c7aefd9e36454da684dbcf52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 10:59:30 +0200 Subject: [PATCH 0331/1574] RSA PKCS#1 v1.5 no longer depends on MD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This has been the case since https://github.com/Mbed-TLS/mbedtls/pull/6065 which forgot to update the documentation, and also is_builtin_calling_md(), so update those. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 2 +- tests/suites/test_suite_psa_crypto_storage_format.function | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 61007d801..9cb0f9a23 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1130,7 +1130,7 @@ * * Enable support for PKCS#1 v1.5 encoding. * - * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C + * Requires: MBEDTLS_RSA_C * * This enables support for PKCS#1 v1.5 operations. */ diff --git a/tests/suites/test_suite_psa_crypto_storage_format.function b/tests/suites/test_suite_psa_crypto_storage_format.function index c52dae188..31d3cb45d 100644 --- a/tests/suites/test_suite_psa_crypto_storage_format.function +++ b/tests/suites/test_suite_psa_crypto_storage_format.function @@ -84,10 +84,6 @@ static int is_accelerated_rsa( psa_algorithm_t alg ) * also be built-in. */ static int is_builtin_calling_md( psa_algorithm_t alg ) { -#if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ) - return( 1 ); -#endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) if( PSA_ALG_IS_RSA_PSS( alg ) ) return( 1 ); From deef905a1c5fff195ae7ddaacc54121836b39262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 11:02:15 +0200 Subject: [PATCH 0332/1574] Update is_builtin_calling_md() for PKCS#1 v2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since https://github.com/Mbed-TLS/mbedtls/pull/6141 it can "fall back" to PSA when MD is not available (but will use MD if available, to preserve backwards compatibility). Signed-off-by: Manuel Pégourié-Gonnard --- .../suites/test_suite_psa_crypto_storage_format.function | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto_storage_format.function b/tests/suites/test_suite_psa_crypto_storage_format.function index 31d3cb45d..1fd267a6c 100644 --- a/tests/suites/test_suite_psa_crypto_storage_format.function +++ b/tests/suites/test_suite_psa_crypto_storage_format.function @@ -86,11 +86,19 @@ static int is_builtin_calling_md( psa_algorithm_t alg ) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) if( PSA_ALG_IS_RSA_PSS( alg ) ) +#if defined(MBEDTLS_MD_C) return( 1 ); +#else + return( 0 ); +#endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) if( PSA_ALG_IS_RSA_OAEP( alg ) ) +#if defined(MBEDTLS_MD_C) return( 1 ); +#else + return( 0 ); +#endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) if( PSA_ALG_IS_DETERMINISTIC_ECDSA( alg ) ) From 0dc40773d652858c3baa4c735a8e6f4d86d7c6fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 19 Oct 2022 12:12:21 +0200 Subject: [PATCH 0333/1574] Improve comments & messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 2 +- tests/scripts/all.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 2134c5bb1..81ab69183 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -47,7 +47,7 @@ reference_config () { IGNORE="md mdx shax" # accelerated IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) IGNORE="$IGNORE psa_crypto_init" # needs internal RNG -IGNORE="$IGNORE hkdf" # disabled +IGNORE="$IGNORE hkdf" # disabled in the all.sh component tested # Compare only "reference vs driver" or also "before vs after"? BEFORE_AFTER=1 # 0 or 1 # ----- END edit this ----- diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e794d088a..7b93fce68 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2043,7 +2043,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { # Also unset MD_C and things that depend on it; # see component_test_crypto_full_no_md. scripts/config.py unset MBEDTLS_MD_C - scripts/config.py unset MBEDTLS_HKDF_C + scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA @@ -2071,7 +2071,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" tests/compat.sh else - echo "skip sh scripts" + echo "skip ssl-opt.sh and compat.sh" fi } From 8258ea7b7ddfe3de5fd6fd15d1c8764e9ef13b92 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 19 Oct 2022 12:17:19 +0200 Subject: [PATCH 0334/1574] test_suite_psa_crypto: adapt dependenies and guards so the test can run in the driver-only build Signed-off-by: Przemek Stekiel --- tests/src/psa_exercise_key.c | 4 +- tests/suites/test_suite_psa_crypto.data | 348 ++++++++++---------- tests/suites/test_suite_psa_crypto.function | 3 +- 3 files changed, 178 insertions(+), 177 deletions(-) diff --git a/tests/src/psa_exercise_key.c b/tests/src/psa_exercise_key.c index 3705bc52c..08c3b4685 100644 --- a/tests/src/psa_exercise_key.c +++ b/tests/src/psa_exercise_key.c @@ -319,8 +319,8 @@ static int exercise_signature_key( mbedtls_svc_key_id_t key, /* If the policy allows signing with any hash, just pick one. */ if( PSA_ALG_IS_SIGN_HASH( alg ) && hash_alg == PSA_ALG_ANY_HASH ) { - #if defined(KNOWN_MBEDTLS_SUPPORTED_HASH_ALG) - hash_alg = KNOWN_MBEDTLS_SUPPORTED_HASH_ALG; + #if defined(KNOWN_SUPPORTED_HASH_ALG) + hash_alg = KNOWN_SUPPORTED_HASH_ALG; alg ^= PSA_ALG_ANY_HASH ^ hash_alg; #else TEST_ASSERT( ! "No hash algorithm for hash-and-sign testing" ); diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index cded3a845..4448bc400 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -362,7 +362,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:0:1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export RSA keypair: policy forbids export (sign) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export EC secp224r1 key pair: good, opaque @@ -490,7 +490,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):1024:0:PSA_ERROR_NOT_PERMITTED:1 PSA import/export RSA keypair: policy forbids export (sign), opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_CRYPTO_DRIVER_TEST import_export:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):1024:0:PSA_ERROR_NOT_PERMITTED:1 # Test PEM import. Note that this is not a PSA feature, it's an Mbed TLS @@ -861,11 +861,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric encryption, wrong algorithm (v1.5/OAEP) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, wrong algorithm (OAEP with different hash) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, alg=0 in policy @@ -873,7 +873,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric encryption, ANY_HASH in policy is not meaningful -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) PSA key policy: asymmetric encryption, encrypt but not decrypt @@ -889,11 +889,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_encryption_key_policy:0:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT PSA key policy: asymmetric signature, sign | verify hash, PKCS#1v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify hash, PKCS#1v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify hash, ECDSA SHA-256 @@ -901,15 +901,15 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_ECDSA(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE PSA key policy: asymmetric signature, verify, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign | verify, key usage extension -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wrong alg family (PSS std/any salt) @@ -933,11 +933,11 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_ECDSA(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wildcard in policy, PKCS#1v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wildcard in policy, PKCS#1v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:1:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, wrong hash algorithm @@ -945,19 +945,19 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_SHA_ asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, alg=0 in policy -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, sign but not verify -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE PSA key policy: asymmetric signature, verify but not sign -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE PSA key policy: asymmetric signature, neither sign nor verify -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR asymmetric_signature_key_policy:0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):32:0 PSA key policy: msg asymmetric signature, sign | verify @@ -1120,39 +1120,39 @@ depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0:0:PSA_KEY_TYPE_AES:"404142434445464748494a4b4c4d4e4f":0:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CTR:0:0:PSA_KEY_USAGE_ENCRYPT:PSA_ALG_CTR:0 Copy key: RSA key pair, same usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, extended usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, fewer usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, more usage flags -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #0 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #1 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in target -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source and target -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0 Copy key: source=ECDSA+ECDH, target=ECDSA+ECDH @@ -1216,39 +1216,39 @@ depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_AES:"404142434445464748494a4b4c4d4e4f":0:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CTR:0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_ENCRYPT:PSA_ALG_CTR:0 Copy key: RSA key pair, same usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, extended usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, fewer usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, more usage flags, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #0, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):0:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, intersect usage flags #1, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in target, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ):PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0 Copy key: RSA key pair, wildcard algorithm in source and target, opaque -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:MBEDTLS_MD_C:PSA_CRYPTO_DRIVER_TEST +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_CRYPTO_DRIVER_TEST copy_success:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:0:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0 Copy key: source=ECDSA+ECDH, target=ECDSA+ECDH, opaque @@ -1477,11 +1477,11 @@ depends_on:PSA_WANT_ALG_RIPEMD160 hash_setup:PSA_ALG_RIPEMD160:PSA_SUCCESS PSA hash setup: bad (unknown hash algorithm) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 hash_setup:PSA_ALG_CATEGORY_HASH:PSA_ERROR_NOT_SUPPORTED PSA hash setup: bad (wildcard instead of hash algorithm) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 hash_setup:PSA_ALG_ANY_HASH:PSA_ERROR_NOT_SUPPORTED PSA hash setup: bad (not a hash algorithm) @@ -1607,7 +1607,7 @@ depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES mac_setup:PSA_KEY_TYPE_AES:"000102030405060708090a0b0c0d0e0f":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT PSA MAC setup: truncated MAC too small (1 byte) -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 mac_setup:PSA_KEY_TYPE_HMAC:"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f":PSA_ALG_TRUNCATED_MAC( PSA_ALG_HMAC( PSA_ALG_SHA_256 ), 1 ):PSA_ERROR_NOT_SUPPORTED PSA MAC setup: truncated MAC too large (33 bytes for SHA-256) @@ -4082,27 +4082,27 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR signature_size:PSA_KEY_TYPE_RSA_KEY_PAIR:1025:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:129 PSA import/exercise RSA keypair, PKCS#1 v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PKCS1V15_SIGN_RAW PSA import/exercise RSA keypair, PSS-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA keypair, PSS-any-salt-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C import_and_exercise_key:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA public key, PKCS#1 v1.5 raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PKCS1V15_SIGN_RAW PSA import/exercise RSA public key, PSS-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256) PSA import/exercise RSA public key, PSS-any-salt-SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C import_and_exercise_key:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256) PSA import/exercise: ECP SECP256R1 keypair, ECDSA @@ -4110,7 +4110,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C: import_and_exercise_key:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_ALG_ECDSA_ANY PSA import/exercise: ECP SECP256R1 keypair, deterministic ECDSA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 import_and_exercise_key:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ) PSA import/exercise: ECP SECP256R1 keypair, ECDH @@ -4126,55 +4126,55 @@ depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF import_and_exercise_key:"c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0":PSA_KEY_TYPE_DERIVE:192:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256) PSA sign hash: RSA PKCS#1 v1.5, raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":"2c7744983f023ac7bb1c55529d83ed11a76a7898a1bb5ce191375a4aa7495a633d27879ff58eba5a57371c34feb1180e8b850d552476ebb5634df620261992f12ebee9097041dbbea85a42d45b344be5073ceb772ffc604954b9158ba81ec3dc4d9d65e3ab7aa318165f38c36f841f1c69cb1cfa494aa5cbb4d6c0efbafb043a" PSA sign hash: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA sign hash: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"6a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f" PSA sign hash: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f":"cd40ba1b555ca5994d30ddffc4ad734b1f5c604675b0f249814aa5de3992ef3ddf4d5dc5d2aab1979ce210b560754df671363d99795475882894c048e3b986ca" PSA sign hash: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824":"52d92aac1fcc0fea3ecce01a9ed4bc9ac342f92470fd3f54d0d6d2fa5d2940405057a9d49a817c2b193322f05fc93ac1c7a055edac93bec0ade6814ab27b86b5295ac1ddb323818200f00c3d94d959f714f128b64a2e19628037ac009b14774f" PSA sign hash: RSA PKCS#1 v1.5 SHA-256, wrong hash size -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5 raw, input too large -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":128:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PKCS#1 v1.5 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":127:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: RSA PSS SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS-any-salt SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: RSA PSS-any-salt SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":127:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA SECP256R1 SHA-256, output buffer too small @@ -4182,7 +4182,7 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":63:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: RSA PKCS#1 v1.5 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: deterministic ECDSA SECP256R1 SHA-256, empty output buffer @@ -4190,11 +4190,11 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign hash: deterministic ECDSA SECP256R1, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( 0 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA SECP256R1, invalid hash algorithm (wildcard) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_ANY_HASH ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: invalid key type, signing with a public key @@ -4202,27 +4202,27 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDT sign_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":72:PSA_ERROR_INVALID_ARGUMENT PSA sign hash: deterministic ECDSA not supported -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_C +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED sign_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824":96:PSA_ERROR_NOT_SUPPORTED PSA sign/verify hash: RSA PKCS#1 v1.5, raw -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263" PSA sign/verify hash: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: RSA PSS SHA-256, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: RSA PSS-any-salt SHA-256, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" PSA sign/verify hash: randomized ECDSA SECP256R1 SHA-256 @@ -4230,15 +4230,15 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: randomized ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f" PSA sign/verify hash: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f" PSA sign/verify hash: randomized ECDSA SECP384R1 SHA-256 @@ -4246,119 +4246,119 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA sign/verify hash: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_verify_hash:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b" PSA verify hash: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify hash with keypair: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong hash length -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_1 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (same size) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"111164d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (empty) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (truncated) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc73":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (trailing junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc731121":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA PKCS#1 v1.5 SHA-256, wrong signature (leading junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS SHA-256, slen=0 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b" PSA verify hash: RSA-1024 PSS SHA-256, slen=31 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"797914eadbbe8293a7b0fe29d2db9fb246b519128d46d3ec93142a1a08a2992ba5325ad9b5ce55344b37996dbb81eb89628263cae4e3fc0e947dec0b8b0c7b0ee94bca02dd287f9cc619e2d88fb2279fb2a8f8301271c58009bb1223f3cfa730cb852947685678cfdef2968c82a9b8bffd8c0d518476b1ea2a5ad6c100045d8e":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=31 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"797914eadbbe8293a7b0fe29d2db9fb246b519128d46d3ec93142a1a08a2992ba5325ad9b5ce55344b37996dbb81eb89628263cae4e3fc0e947dec0b8b0c7b0ee94bca02dd287f9cc619e2d88fb2279fb2a8f8301271c58009bb1223f3cfa730cb852947685678cfdef2968c82a9b8bffd8c0d518476b1ea2a5ad6c100045d8e" PSA verify hash: RSA-1024 PSS SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify hash: RSA-1024 PSS SHA-256, slen=94 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"44a09fa66f1b2e790474960e90517e418747cfcd18423dff957516a598569d74f26ef1eae4a200d12d801e16fc6fde375330c79c0d8430825e0a7f69c664faefccfa25e7fbfc68af02af0f67fe4c49f68f6abc68c8f66d3fd77fc838961f4415827340c66e39c79ed7dae0738c08ce8272aebe50c72e31994b9b6db640b51800":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-256, slen=94 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"44a09fa66f1b2e790474960e90517e418747cfcd18423dff957516a598569d74f26ef1eae4a200d12d801e16fc6fde375330c79c0d8430825e0a7f69c664faefccfa25e7fbfc68af02af0f67fe4c49f68f6abc68c8f66d3fd77fc838961f4415827340c66e39c79ed7dae0738c08ce8272aebe50c72e31994b9b6db640b51800" PSA verify hash: RSA-1024 PSS SHA-512, slen=61 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"23f5b30c8d612d8f31206c177ac2023c4f44754d03c7ff67daff99f24fa369b3e5f7c15b228a4417a1ff1c93fb8d645d619c2f4f559ac6c7f7bac20ba9df32353d19941265a4e74261adaf45d48682c0bc86cea6128f11ad172ff461fb1d97bded615861843996e2a98e7b8313b695519d001ae35305d6cbf3c0ee6c7ab06d1a":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: RSA-1024 PSS-any-salt SHA-512, slen=61 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"23f5b30c8d612d8f31206c177ac2023c4f44754d03c7ff67daff99f24fa369b3e5f7c15b228a4417a1ff1c93fb8d645d619c2f4f559ac6c7f7bac20ba9df32353d19941265a4e74261adaf45d48682c0bc86cea6128f11ad172ff461fb1d97bded615861843996e2a98e7b8313b695519d001ae35305d6cbf3c0ee6c7ab06d1a" PSA verify hash: RSA-1024 PSS SHA-512, slen=62 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"6b215d77cf88b2d08be53b4f3ac6e72ebfbf7e0dc6c1e77b238cfb661c247a011b8746709fbefe4bc05d37343391683e9489d720ecbb7df37f4e36967918958996939461703465c2014a4c12faf875f8def70070e55b765b165c7e9c6f2eb05c98351b1e82219c31a2fb3ddce05f8988f552ff92f0b3471f63c0e53824c550a4" PSA verify hash: RSA-1024 PSS-any-salt SHA-512, slen=62 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"6b215d77cf88b2d08be53b4f3ac6e72ebfbf7e0dc6c1e77b238cfb661c247a011b8746709fbefe4bc05d37343391683e9489d720ecbb7df37f4e36967918958996939461703465c2014a4c12faf875f8def70070e55b765b165c7e9c6f2eb05c98351b1e82219c31a2fb3ddce05f8988f552ff92f0b3471f63c0e53824c550a4" PSA verify hash: RSA-528 PSS SHA-512, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"304a024300e31c246d46485984261fd174cab3d4357344602ecd793c47dbe54252d37bb350bc634359b19515542080e4724a4b672291be57c7648f51629eaef234e847d99cc65f0203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"a14ad0fef77d36c28658a66129ee632e40e1032003eefe7fcda8e52b06675a051c80b2ca1cb99ed0762e90c9a48c434cd1063638eed7895a9c770e5435af750a1955" PSA verify hash: RSA-528 PSS-any-salt SHA-512, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"304a024300e31c246d46485984261fd174cab3d4357344602ecd793c47dbe54252d37bb350bc634359b19515542080e4724a4b672291be57c7648f51629eaef234e847d99cc65f0203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"a14ad0fef77d36c28658a66129ee632e40e1032003eefe7fcda8e52b06675a051c80b2ca1cb99ed0762e90c9a48c434cd1063638eed7895a9c770e5435af750a1955" PSA verify hash: RSA-520 PSS SHA-512 (hash too large) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3049024200d5a06f86e5b9d87428540165ca966fa8893a62e2a59d0bfd7617780bb039f9165a373a8e119d0766f8de556710f33f67019153bad8223775e797d451d48206f3bf0203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead42":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA-520 PSS-any-salt SHA-512 (hash too large) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_512 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3049024200d5a06f86e5b9d87428540165ca966fa8893a62e2a59d0bfd7617780bb039f9165a373a8e119d0766f8de556710f33f67019153bad8223775e797d451d48206f3bf0203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f":"deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddead42":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"34c011b625c32d992f4ab8fcfa52b616ea66270b5b75a4fc71af712f9b8806bcdd374ce50eafcbb489562b93347885f93c2de1d404c45cacccefceb112ff6ffdfe4264f91d66320bbbe09304b851b8ad6280bbccc571eebcd49c7db5dfa399a6289e1978407904598751613d9870770cdd8507e3dc7b46851dbf05ae1df2988d":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS-any-salt SHA-256, wrong hash length (0 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"":"34c011b625c32d992f4ab8fcfa52b616ea66270b5b75a4fc71af712f9b8806bcdd374ce50eafcbb489562b93347885f93c2de1d404c45cacccefceb112ff6ffdfe4264f91d66320bbbe09304b851b8ad6280bbccc571eebcd49c7db5dfa399a6289e1978407904598751613d9870770cdd8507e3dc7b46851dbf05ae1df2988d":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"1491cead330b4ad5b092f8351518141ac11d0888591572669c1e79d6e932c488acd62d44479b0e14cd91a048778bc02398a772ad6bdb4f7764780cf0afe70293d0cac86f2695a1dcb54568bb37d7086f9e86f95a6802d2ee5a4facaa762beff5261bb2816b62cb5af86404974c3f6b67985ac1fbfdf46d6de54f6e29d9274308":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: RSA PSS-any-salt SHA-256, wrong hash length (129 bytes) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_hash_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"1491cead330b4ad5b092f8351518141ac11d0888591572669c1e79d6e932c488acd62d44479b0e14cd91a048778bc02398a772ad6bdb4f7764780cf0afe70293d0cac86f2695a1dcb54568bb37d7086f9e86f95a6802d2ee5a4facaa762beff5261bb2816b62cb5af86404974c3f6b67985ac1fbfdf46d6de54f6e29d9274308":PSA_ERROR_INVALID_ARGUMENT PSA verify hash: ECDSA SECP256R1, good @@ -4394,107 +4394,107 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:MBEDTLS_PK_PARSE_ verify_hash_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":PSA_ALG_ECDSA_ANY:"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"216a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f":PSA_ERROR_INVALID_SIGNATURE PSA verify hash: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 verify_hash_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"":PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_deterministic:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA sign message: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548" PSA sign message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263":"7ea712a20e3a8cbe0c6e64195362ba7635bbe78af51ddedd7a5fd858395250c592654c35d3b0614ae0e3b329c25cf5b4a5fcb243af3e3ad15c8446fe401be066" PSA sign message: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":"3548ea85eb66d756ae90fd64a3104b5b9a17aa282f8722409762e9da4811ec5d3060a97d3450b4bc484cd21ac588f563c4873843506fed8609b7d093db0e9a2496c36995ee74c906528af6898feb502f45bfb1e9ccf371416c68d32bb5ebc1b6" PSA sign message: RSA PKCS#1 v1.5, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(0):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":127:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: RSA PKCS#1 v1.5 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: RSA PKCS#1 v1.5 without hash -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":0:PSA_ERROR_INVALID_ARGUMENT PSA sign message: RSA PKCS#1 v1.5 SHA-256, invalid key type -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 sign_message_fail:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":128:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, invalid hash (wildcard) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, invalid hash algorithm (0) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(0):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: ECDSA SECP256R1 SHA-256, output buffer too small -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":63:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: ECDSA SECP256R1 SHA-256, empty output buffer -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":0:PSA_ERROR_BUFFER_TOO_SMALL PSA sign message: ECDSA SECP256R1 SHA-256, invalid key type -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 sign_message_fail:PSA_KEY_TYPE_CHACHA20:"4bddc98c551a95395ef719557f813656b566bc45aac04eca3866324cc75489f2":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":64:PSA_ERROR_INVALID_ARGUMENT PSA sign message: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PK_PARSE_C sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":72:PSA_ERROR_INVALID_ARGUMENT PSA sign message: deterministic ECDSA not supported -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_MD_C +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":96:PSA_ERROR_NOT_SUPPORTED PSA sign message: ECDSA without hash -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA_ANY:"616263":96:PSA_ERROR_INVALID_ARGUMENT PSA sign/verify message: RSA PKCS#1 v1.5 SHA-256 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS-any-salt SHA-256 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263" PSA sign/verify message: RSA PSS SHA-256, 0 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"" PSA sign/verify message: RSA PSS SHA-256, 32 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: RSA PSS SHA-256, 128 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: RSA PSS SHA-256, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C sign_verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: randomized ECDSA SECP256R1 SHA-256 @@ -4518,7 +4518,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" PSA sign/verify message: deterministic ECDSA SECP256R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263" PSA sign/verify message: randomized ECDSA SECP256R1 SHA-384 @@ -4526,7 +4526,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: randomized ECDSA SECP384R1 SHA-256 @@ -4534,55 +4534,55 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263" PSA sign/verify message: deterministic ECDSA SECP384R1 SHA-256 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_384 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263" PSA verify message: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify message with keypair: RSA PKCS#1 v1.5 SHA-256, good signature -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311" PSA verify message: RSA-1024 PSS SHA-256, slen=0 (bad) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA-1024 PSS-any-salt SHA-256, slen=0 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263":"abc4b612c6b71e13fa5965b2e25ee6adec5b1f211b2db158e9f3c4547d6cbef909a73dfb474b8caaf6c8fcafa10ec0bbadfd1883289ce33ad08ad533c61ea004fef4d9b76a1efc267efd066ae8918cb8e994faad30ff5e340e14c941926ba7ca9422b86e8055df1c1b90a5959a59cc7a5fc15cbd0d848cd40f7857b7629b668b" PSA verify message: RSA-1024 PSS SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"616263":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify message: RSA-1024 PSS-any-salt SHA-256, slen=32 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"616263":"6b201c50637962338d1b218c1d26f031205a0e3c47bc4c54856aa037e5a332d2981e80a51648e902e46046e5507a255c4c73f5ff40d5a54c0a11d2eca7804e1767b20ea12c945a23f5473181d379689c1ba634a2c47c0a8ec90c922ca6466ae9e9fb92871c9043b5858ae34828bceb4ead82db8f21a18ebe1d95b469bbdef1df" PSA verify message: RSA PSS SHA-256, good signature, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"6b65e1fdc900dce8a2b82130ae8ccfac27b6d0eb5f2c0c1085b80f34ceaaf064c8ff237e74a24a3c6fb7a842f172e5146315616281bbbeeae90febaab139a212decf1c68923f2a48e242b1fd72105e3a3f2329c30d78abe8673335ad08c5ba1aa515360bb5660050f1994bb08d3dd17e3407a379403bafa4e229b3c851283f6d" PSA verify message: RSA PSS-any-salt SHA-256, good signature, 32 bytes (hash size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"6b65e1fdc900dce8a2b82130ae8ccfac27b6d0eb5f2c0c1085b80f34ceaaf064c8ff237e74a24a3c6fb7a842f172e5146315616281bbbeeae90febaab139a212decf1c68923f2a48e242b1fd72105e3a3f2329c30d78abe8673335ad08c5ba1aa515360bb5660050f1994bb08d3dd17e3407a379403bafa4e229b3c851283f6d" PSA verify message: RSA PSS SHA-256, good signature, 128 bytes (signature size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"29b65db0936b7fe408bda672077b0bc5e176177ba9a550fb548c292f7b4af1bb6475e0a979ba43dd644780801fabe5b62a1359cf7692918f30013e90c2362235765abc2078905d13b345dd689bf15e4e94ca51535d12f0675d5f13e9f254ba7696f0096d62deb023d106e9a96a5da3162bead6a745c8b9000868d2f9a447d5c5" PSA verify message: RSA-any-salt PSS SHA-256, good signature, 128 bytes (signature size) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"29b65db0936b7fe408bda672077b0bc5e176177ba9a550fb548c292f7b4af1bb6475e0a979ba43dd644780801fabe5b62a1359cf7692918f30013e90c2362235765abc2078905d13b345dd689bf15e4e94ca51535d12f0675d5f13e9f254ba7696f0096d62deb023d106e9a96a5da3162bead6a745c8b9000868d2f9a447d5c5" PSA verify message: RSA PSS SHA-256, good signature, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"43286cc0fc599603fbb0cd1fd70c3a17b08d2adf4f90202dddfa4b9d74be8c720bbb1c714665466de6452d401ca061b68225785ff387c2615f03c81351cc3838cd3014a031a4f4c9f70bba06f504c6a9942ac2dbfed2329e590d526a9be26b4025a6d7c4151b4e795cfe756c9a8a5e8fa9228a6f5f6f427a5a070e5c0ea69830" PSA verify message: RSA PSS-any-salt SHA-256, good signature, 129 bytes -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":"43286cc0fc599603fbb0cd1fd70c3a17b08d2adf4f90202dddfa4b9d74be8c720bbb1c714665466de6452d401ca061b68225785ff387c2615f03c81351cc3838cd3014a031a4f4c9f70bba06f504c6a9942ac2dbfed2329e590d526a9be26b4025a6d7c4151b4e795cfe756c9a8a5e8fa9228a6f5f6f427a5a070e5c0ea69830" PSA verify message: ECDSA SECP256R1 SHA-256, good @@ -4594,27 +4594,27 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ALG_SHA_25 verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":"0f8c19f5affea6d593a33e176aa52717bff8d5875165fc63e80a2d65580d295789db5ffb5397ba4c67834e2731ee268ea6f7e83846fbb02145b35442db18cf0b" PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (same size) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"111164d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (empty) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (truncated) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc73":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (trailing junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc731121":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 SHA-256, wrong signature (leading junk) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"616263":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_SIGNATURE PSA verify message: RSA PKCS#1 v1.5 without hash -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C verify_message_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"616263":"21a73664d55b39c7ea6c1e5b5011724a11e1d7073d3a68f48c836fad153a1d91b6abdbc8f69da13b206cc96af6363b114458b026af14b24fab8929ed634c6a2acace0bcc62d9bb6a984afbcbfcd3a0608d32a2bae535b9cd1ecdf9dd281db1e0025c3bfb5512963ec3b98ddaa69e38bc3c84b1b61a04e5648640856aacc6fc7311":PSA_ERROR_INVALID_ARGUMENT PSA verify message: ECDSA SECP256R1, wrong signature size (correct but ASN1-encoded) @@ -4642,7 +4642,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_ verify_message_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04dea5e45d0ea37fc566232a508f4ad20ea13d47e4bf5fa4d54a57a0ba012042087097496efc583fed8b24a5b9be9a51de063f5a00a8b698a16fd7f29b5485f320":PSA_ALG_ECDSA(PSA_ALG_SHA_256):"616263":"ff0f8c19f5affea6d593a33e176aa52717bff8d5875165fc63e80a2d65580d295789db5ffb5397ba4c67834e2731ee268ea6f7e83846fbb02145b35442db18cf0b":PSA_ERROR_INVALID_SIGNATURE PSA verify message: invalid algorithm for ECC key -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 verify_message_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"":"":PSA_ERROR_INVALID_ARGUMENT PSA verify message: ECDSA without hash @@ -4654,19 +4654,19 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, good -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, good, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"746869730069730061006c6162656c00":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-384, good -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-384, good, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"746869730069730061006c6162656c00":128:PSA_SUCCESS PSA encrypt: RSA PKCS#1 v1.5, key pair @@ -4674,7 +4674,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_encrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA OAEP-SHA-256, key pair -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"":128:PSA_SUCCESS PSA encrypt: RSA PKCS#1 v1.5, input too large @@ -4686,7 +4686,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":0:PSA_ERROR_INVALID_ARGUMENT PSA encrypt: RSA OAEP-SHA-384, input too large -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f":"":0:PSA_ERROR_INVALID_ARGUMENT PSA encrypt: invalid algorithm @@ -4706,15 +4706,15 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"99e8a6144bcb9a29660303bdc4305bb5eca8c64b96788cad062be9967bdab2f7ffff":"" PSA encrypt-decrypt: RSA OAEP-SHA-256 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"" PSA encrypt-decrypt: RSA OAEP-SHA-256, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad":"746869730069730061006c6162656c00" PSA encrypt-decrypt: RSA OAEP-SHA-384 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_encrypt_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e":"" PSA decrypt: RSA PKCS#1 v1.5: good #1 @@ -4734,35 +4734,35 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082013b020100024100ee2b131d6b1818a94ca8e91c42387eb15a7c271f57b89e7336b144d4535b16c83097ecdefbbb92d1b5313b5a37214d0e8f25922dca778b424b25295fc8a1a7070203010001024100978ac8eadb0dc6035347d6aba8671215ff21283385396f7897c04baf5e2a835f3b53ef80a82ed36ae687a925380b55a0c73eb85656e989dcf0ed7fb4887024e1022100fdad8e1c6853563f8b921d2d112462ae7d6b176082d2ba43e87e1a37fc1a8b33022100f0592cf4c55ba44307b18981bcdbda376c51e590ffa5345ba866f6962dca94dd02201995f1a967d44ff4a4cd1de837bc65bf97a2bf7eda730a9a62cea53254591105022027f96cf4b8ee68ff8d04062ec1ce7f18c0b74e4b3379b29f9bfea3fc8e592731022100cefa6d220496b43feb83194255d8fb930afcf46f36606e3aa0eb7a93ad88c10c":PSA_ALG_RSA_PKCS1V15_CRYPT:"1b4c1d06439b99f886048b8544607b5e8e5ac6828ad9d0b7ad4ec0b314a4d8052f8bbeab6c85dbddff0b90cc76395a7a0c4f9cc29cd7be20be0b38ff611800d6":"":"" PSA decrypt: RSA OAEP-SHA-256, 0 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3d3146b1c982004273a9ebb9b063e6ae53b1a85bfc802324bcdd04faa0f7211fb2bdeea40358095554df9c250866c7361e738f0d270eaa27738e87928c5e31815506346727900ff03cef0be6f9dd6bba63ce89074e8194fe68b5a5739422d4f138bbbb61f49b76cf1f18def2c993e3113b08c191ea1da0feb94f8fd9b30109a1":"":"" PSA decrypt: RSA OAEP-SHA-256, 0 bytes, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"14e57648fbbd3c2c195d71fcb9b6c332e2ad9e3402aa701e7270b05775e9ddd025e2330d7b84e67866524c67f9c38b11e4679e28a38574b47f8d218a1a04a7466754d6ea7f959ab1f5b85d066d3f90076e8219f66653f7b78a9789d76213505b4e75ec28081608ed2f1ea1238e3eeab011ce4ec147327cd0ca029c2818133cb6":"746869730069730061006c6162656c00":"" PSA decrypt: RSA OAEP-SHA-256, 30 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75429":"":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-256, 30 bytes, with label -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"746869730069730061006c6162656c00":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-384, 30 bytes -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA asymmetric_decrypt:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"0df6750b8fed749359c016887d2cf097cc512c065526a91a7ee9b345a1bfff833737e7326e54d03f6bb65971962885a7661a16858d53ea55821052f4c7798d395b5c5495332fd4174451a1a437f36c27f446b96f309ff1cb6837274aa8ae2b51a8a479d736d25b8d2ca8ab96fe589553a3e52818b7df75544eb5469977b29aa4":"":"74686973206973206e6f2073717565616d697368206f7373696672616765" PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (should be empty) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75429":"00":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (empty) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA OAEP-SHA-256, 30 bytes, wrong label (same length) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"46edc9984a6d4b7c7fd88fda9ea91ddbd30b28a0793cc75a9fcdd94d867c69090a697d46a6f336a3e48a122dd3ee3b51566b445ff78adb613d09b7d8c59c25a27d8cf7f5e36455f2e71ff6c6ee98d5740e66b23794acc72906561951c2be5064f6a250646ab627ecbfa48c02f82c29fe9b8c8e6be8eb752432124974373b542c":"746869730069730061006c6162656c01":128:PSA_ERROR_INVALID_PADDING PSA decrypt: RSA PKCS#1 v1.5, invalid padding @@ -4774,7 +4774,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"99ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, invalid padding -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"3fd3c81e3919a19014400d91098090f273312e0150e09eff7f66fb9624d2ec9764fc80befcb592e9d102493c882b8bc0334a257e73aba23a0ee13f826cbc64f8200b9150784d004ccb2955c877c95ab888e3917f423dd52f3c8a49cb61c1966ec04f336068729ae0bce7d7fb3e680f9d15d658db9b906efcbf2c2fae45e75428":"":128:PSA_ERROR_INVALID_PADDING PSA decrypt: invalid algorithm @@ -4786,7 +4786,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBED asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:"adeecba2db7f867a733853f0136c554e5e01c7a2015721a9bfe30c3ad163b93a9c7589170311209f91420ad8a1a8280c7e890a6d7bca3c500b4da4f53a17bd84a21d58f979a9b4b8f2246b482d930804f12b3aeb2ac8b5ac7938d452ca13be8eb8e973c4e2b19fd454058cbae037bcef7ef68a5fbabf050de5f283cf1998c695":"":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP, invalid key type (RSA public key) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"adeecba2db7f867a733853f0136c554e5e01c7a2015721a9bfe30c3ad163b93a9c7589170311209f91420ad8a1a8280c7e890a6d7bca3c500b4da4f53a17bd84a21d58f979a9b4b8f2246b482d930804f12b3aeb2ac8b5ac7938d452ca13be8eb8e973c4e2b19fd454058cbae037bcef7ef68a5fbabf050de5f283cf1998c695":"":128:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA PKCS#1 v1.5: invalid key type (AES) @@ -4802,11 +4802,11 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:"0099ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":129:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, input too small -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":127:PSA_ERROR_INVALID_ARGUMENT PSA decrypt: RSA OAEP-SHA-256, input too large -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_PK_PARSE_C asymmetric_decrypt_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"0099ffde2fcc00c9cc01972ebfa7779b298dbbaf7f50707a7405296dd2783456fc792002f462e760500e02afa25a859ace8701cb5d3b0262116431c43af8eb08f5a88301057cf1c156a2a5193c143e7a5b03fac132b7e89e6dcd8f4c82c9b28452329c260d30bc39b3816b7c46b41b37b4850d2ae74e729f99c6621fbbe2e46872":"":129:PSA_ERROR_INVALID_ARGUMENT Crypto derivation operation object initializers zero properly @@ -4833,11 +4833,11 @@ depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT PSA key derivation setup: algorithm from bad hash -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_HKDF(PSA_ALG_CATEGORY_HASH):PSA_ERROR_NOT_SUPPORTED PSA key derivation setup: bad algorithm -depends_on:MBEDTLS_SHA256_C +depends_on:PSA_WANT_ALG_SHA_256 derive_setup:PSA_ALG_CATEGORY_KEY_DERIVATION:PSA_ERROR_NOT_SUPPORTED PSA key derivation: HKDF-SHA-256, good case, direct output @@ -6380,15 +6380,15 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_SUCCESS:0 PSA generate key: RSA, 1016 bits, good, sign (PKCS#1 v1.5) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1016:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, sign (PSS SHA-256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, sign (PSS-any-salt SHA-256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 512 bits, good, encrypt (PKCS#1 v1.5) @@ -6396,7 +6396,7 @@ depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTL generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_SUCCESS:0 PSA generate key: RSA, 1024 bits, good, encrypt (OAEP SHA-256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_SUCCESS:0 PSA generate key: RSA, 0 bits: invalid @@ -6481,7 +6481,7 @@ depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES:MBEDTLS_PSA_CRYPTO_ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT:PSA_ALG_CBC_NO_PADDING:GENERATE_KEY PSA generate persistent key: RSA, 1024 bits, exportable -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_MD_C:MBEDTLS_PSA_CRYPTO_STORAGE_C +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME:MBEDTLS_PSA_CRYPTO_STORAGE_C persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):GENERATE_KEY PSA generate persistent key: ECC, SECP256R1, exportable diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index fa237d366..6c95c2a7c 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -21,6 +21,7 @@ #else #define TEST_DRIVER_LOCATION 0x7fffff #endif +#include "mbedtls/legacy_or_psa.h" /* If this comes up, it's a bug in the test code or in the test data. */ #define UNUSED 0xdeadbeef @@ -7797,7 +7798,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ void derive_ecjpake_to_pms( data_t *input, int expected_input_status_arg, int derivation_step, int capacity, int expected_capacity_status_arg, From 252283f2aaf139df7912a6dcb242b346268c4787 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 07:54:16 -0400 Subject: [PATCH 0335/1574] Fix missing cipher mode dependencies Signed-off-by: Andrzej Kurek --- library/aes.c | 3 ++- tests/suites/test_suite_aes.function | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/library/aes.c b/library/aes.c index 289890dbe..7d035246f 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1690,7 +1690,8 @@ int mbedtls_aes_self_test( int verbose ) unsigned char key[32]; unsigned char buf[64]; const unsigned char *aes_tests; -#if defined(MBEDTLS_CIPHER_MODE_CBC) || defined(MBEDTLS_CIPHER_MODE_CFB) +#if defined(MBEDTLS_CIPHER_MODE_CBC) || defined(MBEDTLS_CIPHER_MODE_CFB) || \ + defined(MBEDTLS_CIPHER_MODE_OFB) unsigned char iv[16]; #endif #if defined(MBEDTLS_CIPHER_MODE_CBC) diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index 10e53c2a4..6a87d4294 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -403,10 +403,14 @@ void aes_misc_params( ) defined(MBEDTLS_CIPHER_MODE_XTS) || \ defined(MBEDTLS_CIPHER_MODE_CFB) || \ defined(MBEDTLS_CIPHER_MODE_OFB) - mbedtls_aes_context aes_ctx; const unsigned char in[16] = { 0 }; unsigned char out[16]; #endif +#if defined(MBEDTLS_CIPHER_MODE_CBC) || \ + defined(MBEDTLS_CIPHER_MODE_CFB) || \ + defined(MBEDTLS_CIPHER_MODE_OFB) +mbedtls_aes_context aes_ctx; +#endif #if defined(MBEDTLS_CIPHER_MODE_XTS) mbedtls_aes_xts_context xts_ctx; #endif From e40b92178d140f55e6e1a7292d337a107492d255 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 09:21:39 -0400 Subject: [PATCH 0336/1574] Fix missing padding dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aria.data | 2 +- tests/suites/test_suite_cipher.camellia.data | 90 +++++++------- tests/suites/test_suite_cipher.des.data | 120 +++++++++---------- tests/suites/test_suite_pkcs5.data | 4 +- 4 files changed, 108 insertions(+), 108 deletions(-) diff --git a/tests/suites/test_suite_cipher.aria.data b/tests/suites/test_suite_cipher.aria.data index c1e19909b..3f011e889 100644 --- a/tests/suites/test_suite_cipher.aria.data +++ b/tests/suites/test_suite_cipher.aria.data @@ -1,5 +1,5 @@ Aria CBC Decrypt empty buffer -depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_ARIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 dec_empty_buf:MBEDTLS_CIPHER_ARIA_128_CBC:0:0 ARIA-128 CCM*-NO-TAG - Encrypt and decrypt 0 bytes diff --git a/tests/suites/test_suite_cipher.camellia.data b/tests/suites/test_suite_cipher.camellia.data index 31fe92286..df4ebcc1b 100644 --- a/tests/suites/test_suite_cipher.camellia.data +++ b/tests/suites/test_suite_cipher.camellia.data @@ -67,183 +67,183 @@ depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKC enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:-1 CAMELLIA Encrypt and decrypt 0 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 1 byte with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 2 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 7 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 8 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 9 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 15 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 16 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 17 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 31 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with one and zeros padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with one and zeros padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 47 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 48 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 49 bytes with one and zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ONE_AND_ZEROS CAMELLIA Encrypt and decrypt 0 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 1 byte with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 2 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 7 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 8 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 9 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 15 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 16 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 17 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 31 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 32 bytes with zeros and len padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 32 bytes with zeros and len padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 47 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 48 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 49 bytes with zeros and len padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ZEROS_AND_LEN CAMELLIA Encrypt and decrypt 0 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:0:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 1 byte with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:1:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 2 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:2:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 7 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:7:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 8 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:8:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 9 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:9:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 15 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:15:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 16 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:16:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 17 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:17:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 31 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:31:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with zeros padding [#1] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:32:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 32 bytes with zeros padding [#2] -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:33:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 47 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:47:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 48 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:48:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 49 bytes with zeros padding -depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_CAMELLIA_128_CBC:"CAMELLIA-128-CBC":128:49:MBEDTLS_PADDING_ZEROS CAMELLIA Encrypt and decrypt 0 bytes with no padding diff --git a/tests/suites/test_suite_cipher.des.data b/tests/suites/test_suite_cipher.des.data index 9410262e6..77f7515b9 100644 --- a/tests/suites/test_suite_cipher.des.data +++ b/tests/suites/test_suite_cipher.des.data @@ -71,243 +71,243 @@ depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:-1 DES Encrypt and decrypt 0 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 1 byte with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 2 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 7 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 8 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 9 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 15 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 16 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 17 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 31 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 32 bytes with one and zeros padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 32 bytes with one and zeros padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 47 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 48 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 49 bytes with one and zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ONE_AND_ZEROS DES Encrypt and decrypt 0 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 1 byte with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 2 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 7 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 8 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 9 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 15 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 16 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 17 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 31 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 32 bytes with zeros and len padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 32 bytes with zeros and len padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 47 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 48 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 49 bytes with zeros and len padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS_AND_LEN DES Encrypt and decrypt 0 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 1 byte with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:1:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 2 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:2:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 7 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:7:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 8 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 9 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:9:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 15 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:15:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 16 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 17 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:17:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 31 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:31:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 32 bytes with zeros padding [#1] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 32 bytes with zeros padding [#2] -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:33:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 47 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:47:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 48 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 49 bytes with zeros padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_ZEROS enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:49:MBEDTLS_PADDING_ZEROS DES Encrypt and decrypt 0 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:0:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 8 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:8:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 16 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:16:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 32 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:32:MBEDTLS_PADDING_NONE DES Encrypt and decrypt 48 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_dec_buf:MBEDTLS_CIPHER_DES_CBC:"DES-CBC":64:48:MBEDTLS_PADDING_NONE DES Try encrypting 1 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:1:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 2 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:2:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 7 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:7:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 9 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:9:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 15 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:15:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 17 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:17:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 31 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:31:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 33 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:33:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 47 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:47:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Try encrypting 49 bytes with no padding -depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 +depends_on:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC enc_fail:MBEDTLS_CIPHER_DES_CBC:MBEDTLS_PADDING_NONE:64:49:MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED DES Encrypt and decrypt 0 bytes in multiple parts diff --git a/tests/suites/test_suite_pkcs5.data b/tests/suites/test_suite_pkcs5.data index 3f78b886c..5c6df7ce5 100644 --- a/tests/suites/test_suite_pkcs5.data +++ b/tests/suites/test_suite_pkcs5.data @@ -203,11 +203,11 @@ depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020800301306082A864886F70D030704078A4FCC9DCC3949":"":"":MBEDTLS_ERR_PKCS5_INVALID_FORMAT:"" PBES2 Decrypt (bad password) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020800301406082A864886F70D030704088A4FCC9DCC394910":"F0617373776f7264":"1B60098D4834CA752D37B430E70B7A085CFF86E21F4849F969DD1DF623342662443F8BD1252BF83CEF6917551B08EF55A69C8F2BFFC93BCB2DFE2E354DA28F896D1BD1BFB972A1251219A6EC7183B0A4CF2C4998449ED786CAE2138437289EB2203974000C38619DA57A4E685D29649284602BD1806131772DA11A682674DC22B2CF109128DDB7FD980E1C5741FC0DB7":MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH:"308187020100301306072A8648CE3D020106082A8648CE3D030107046D306B0201010420F12A1320760270A83CBFFD53F6031EF76A5D86C8A204F2C30CA9EBF51F0F0EA7A1440342000437CC56D976091E5A723EC7592DFF206EEE7CF9069174D0AD14B5F768225962924EE500D82311FFEA2FD2345D5D16BD8A88C26B770D55CD8A2A0EFA01C8B4EDFF060606060606" PBES2 Decrypt (bad iter value) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_CIPHER_PADDING_PKCS7 mbedtls_pkcs5_pbes2:MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE:"301B06092A864886F70D01050C300E04082ED7F24A1D516DD702020801301406082A864886F70D030704088A4FCC9DCC394910":"70617373776f7264":"1B60098D4834CA752D37B430E70B7A085CFF86E21F4849F969DD1DF623342662443F8BD1252BF83CEF6917551B08EF55A69C8F2BFFC93BCB2DFE2E354DA28F896D1BD1BFB972A1251219A6EC7183B0A4CF2C4998449ED786CAE2138437289EB2203974000C38619DA57A4E685D29649284602BD1806131772DA11A682674DC22B2CF109128DDB7FD980E1C5741FC0DB7":MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH:"308187020100301306072A8648CE3D020106082A8648CE3D030107046D306B0201010420F12A1320760270A83CBFFD53F6031EF76A5D86C8A204F2C30CA9EBF51F0F0EA7A1440342000437CC56D976091E5A723EC7592DFF206EEE7CF9069174D0AD14B5F768225962924EE500D82311FFEA2FD2345D5D16BD8A88C26B770D55CD8A2A0EFA01C8B4EDFF060606060606" PKCS#5 Selftest From b39e3ecee6ea06f3bf3b9751c93add1788541cbe Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 08:50:20 +0100 Subject: [PATCH 0337/1574] New script to exercise compilation options Unify curves.pl, key-exchanges.pl, depends-pkalgs.pl and depends-hashes.pl into a single, newly-written script. For curves, key exchanges and hashes, in addition to testing all-but-one settings in the group like the old scripts, also run the tests with a single option in the group. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 346 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100755 tests/scripts/depends.py diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py new file mode 100755 index 000000000..521bbc564 --- /dev/null +++ b/tests/scripts/depends.py @@ -0,0 +1,346 @@ +#!/usr/bin/env python3 + +# Copyright (c) 2018, Arm Limited, All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# This file is part of Mbed TLS (https://tls.mbed.org) + +"""Test Mbed TLS with a subset of algorithms. +""" + +import argparse +import os +import re +import shutil +import subprocess +import sys +import traceback + +def log_line(text, prefix='depends.py'): + """Print a status message.""" + sys.stderr.write(prefix + ' ' + text + '\n') + +def backup_config(options): + """Back up the library configuration file (config.h).""" + shutil.copy(options.config, options.config_backup) + +def restore_config(options, done=False): + """Restore the library configuration file (config.h). +If done is true, remove the backup file.""" + if done: + shutil.move(options.config_backup, options.config) + else: + shutil.copy(options.config_backup, options.config) + +class Job: + """A job builds the library in a specific configuration and runs some tests.""" + def __init__(self, name, config_settings, commands): + """Build a job object. +The job uses the configuration described by config_settings. This is a +dictionary where the keys are preprocessor symbols and the values are +booleans or strings. A boolean indicates whether or not to #define the +symbol. With a string, the symbol is #define'd to that value. +After setting the configuration, the job runs the programs specified by +commands. This is a list of lists of strings; each list of string is a +command name and its arguments and is passed to subprocess.call with +shell=False.""" + self.name = name + self.config_settings = config_settings + self.commands = commands + + def announce(self, what): + '''Announce the start or completion of a job. +If what is None, announce the start of the job. +If what is True, announce that the job has passed. +If what is False, announce that the job has failed.''' + if what is True: + log_line(self.name + ' PASSED') + elif what is False: + log_line(self.name + ' FAILED') + else: + log_line('starting ' + self.name) + + def trace_command(self, cmd): + '''Print a trace of the specified command. +cmd is a list of strings: a command name and its arguments.''' + log_line(' '.join(cmd), prefix='+') + + def configure(self, config_file_name): + '''Set library configuration options as required for the job. +config_file_name indicates which file to modify.''' + for key, value in sorted(self.config_settings.items()): + if value is True: + args = ['set', key] + elif value is False: + args = ['unset', key] + else: + args = ['set', key, value] + cmd = ['scripts/config.pl'] + if config_file_name != 'include/mbedtls/config.h': + cmd += ['--file', config_file_name] + cmd += args + self.trace_command(cmd) + subprocess.check_call(cmd) + + def test(self, options): + '''Run the job's build and test commands. +Return True if all the commands succeed and False otherwise. +If options.keep_going is false, stop as soon as one command fails. Otherwise +run all the commands, except that if the first command fails, none of the +other commands are run (typically, the first command is a build command +and subsequent commands are tests that cannot run if the build failed).''' + built = False + success = True + for command in self.commands: + self.trace_command(command) + ret = subprocess.call(command) + if ret != 0: + if command[0] not in ['make', options.make_command]: + log_line('*** [{}] Error {}'.format(' '.join(command), ret)) + if not options.keep_going or not built: + return False + success = False + built = True + return success + +# SSL/TLS versions up to 1.1 and corresponding options. These require +# both MD5 and SHA-1. +ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', + 'MBEDTLS_SSL_PROTO_SSL3', + 'MBEDTLS_SSL_PROTO_TLS1', + 'MBEDTLS_SSL_PROTO_TLS1_1'] + +# If the configuration option A requires B, make sure that +# B in reverse_dependencies[A]. +reverse_dependencies = { + 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', + 'MBEDTLS_ECDH_C', + 'MBEDTLS_ECJPAKE_C', + 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], + 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_RSA_C': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT', + 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], +} + +def turn_off_dependencies(config_settings): + """For every option turned off config_settings, also turn off what depends on it. +An option O is turned off if config_settings[O] is False.""" + for key, value in sorted(config_settings.items()): + if value is not False: + continue + for dep in reverse_dependencies.get(key, []): + config_settings[dep] = False + +class Domain: + """A domain is a set of jobs that all relate to a particular configuration aspect.""" + pass + +class ExclusiveDomain(Domain): + """A domain consisting of a set of conceptually-equivalent settings. +Establish a list of configuration symbols. For each symbol, run a test job +with this symbol set and the others unset, and a test job with this symbol +unset and the others set.""" + def __init__(self, symbols, commands): + self.jobs = [] + for invert in [False, True]: + base_config_settings = {} + for symbol in symbols: + base_config_settings[symbol] = invert + for symbol in symbols: + description = '!' + symbol if invert else symbol + config_settings = base_config_settings.copy() + config_settings[symbol] = not invert + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) + +class ComplementaryDomain: + """A domain consisting of a set of loosely-related settings. +Establish a list of configuration symbols. For each symbol, run a test job +with this symbol unset.""" + def __init__(self, symbols, commands): + self.jobs = [] + for symbol in symbols: + description = '!' + symbol + config_settings = {symbol: False} + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) + +class DomainData: + """Collect data about the library.""" + def collect_config_symbols(self, options): + """Read the list of settings from config.h. +Return them in a generator.""" + with open(options.config) as config_file: + rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') + for line in config_file: + m = re.match(rx, line) + if m: + yield m.group(1) + + def config_symbols_matching(self, regexp): + """List the config.h settings matching regexp.""" + return [symbol for symbol in self.all_config_symbols + if re.match(regexp, symbol)] + + def __init__(self, options): + """Gather data about the library and establish a list of domains to test.""" + build_command = [options.make_command, 'CFLAGS=-Werror'] + build_and_test = [build_command, [options.make_command, 'test']] + self.all_config_symbols = set(self.collect_config_symbols(options)) + # Find hash modules by name. + hash_symbols = self.config_symbols_matching(r'MBEDTLS_(MD|RIPEMD|SHA)[0-9]+_C\Z') + # Find elliptic curve enabling macros by name. + curve_symbols = self.config_symbols_matching(r'MBEDTLS_ECP_DP_\w+_ENABLED\Z') + # Find key exchange enabling macros by name. + key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') + self.domains = { + # Elliptic curves. Run the test suites. + 'curves': ExclusiveDomain(curve_symbols, build_and_test), + # Hash algorithms. Exclude configurations with only one + # hash which is obsolete. Run the test suites. + 'hashes': ExclusiveDomain(hash_symbols, build_and_test), + # Key exchange types. Just check the build. + 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), + # Public-key algorithms. Run the test suites. + 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', + 'MBEDTLS_ECP_C', + 'MBEDTLS_PKCS1_V21', + 'MBEDTLS_PKCS1_V15', + 'MBEDTLS_RSA_C', + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT'], + build_and_test), + } + self.jobs = {} + for domain in self.domains.values(): + for job in domain.jobs: + self.jobs[job.name] = job + + def get_jobs(self, name): + """Return the list of jobs identified by the given name. +A name can either be the name of a domain or the name of one specific job.""" + if name in self.domains: + return sorted(self.domains[name].jobs, key=lambda job: job.name) + else: + return [self.jobs[name]] + +def run(options, job): + """Run the specified job (a Job instance).""" + subprocess.check_call([options.make_command, 'clean']) + job.announce(None) + job.configure(options.config) + success = job.test(options) + job.announce(success) + return success + +def main(options, domain_data): + """Run the desired jobs. +domain_data should be a DomainData instance that describes the available +domains and jobs. +Run the jobs listed in options.domains.""" + if not hasattr(options, 'config_backup'): + options.config_backup = options.config + '.bak' + jobs = [] + failures = [] + successes = [] + for name in options.domains: + jobs += domain_data.get_jobs(name) + backup_config(options) + try: + for job in jobs: + success = run(options, job) + if not success: + if options.keep_going: + failures.append(job.name) + else: + return False + else: + successes.append(job.name) + restore_config(options) + finally: + if options.keep_going: + restore_config(options, True) + if failures: + if successes: + log_line('{} passed; {} FAILED'.format(' '.join(successes), + ' '.join(failures))) + else: + log_line('{} FAILED'.format(' '.join(failures))) + return False + else: + log_line('{} passed'.format(' '.join(successes))) + return True + + +if __name__ == '__main__': + try: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('-c', '--config', metavar='FILE', + help='Configuration file to modify', + default='include/mbedtls/config.h') + parser.add_argument('-C', '--directory', metavar='DIR', + help='Change to this directory before anything else', + default='.') + parser.add_argument('-k', '--keep-going', + help='Try all configurations even if some fail (default)', + action='store_true', dest='keep_going', default=True) + parser.add_argument('-e', '--no-keep-going', + help='Stop as soon as a configuration fails', + action='store_false', dest='keep_going') + parser.add_argument('--list-jobs', + help='List supported jobs and exit', + action='append_const', dest='list', const='jobs') + parser.add_argument('--list-domains', + help='List supported domains and exit', + action='append_const', dest='list', const='domains') + parser.add_argument('--make-command', metavar='CMD', + help='Command to run instead of make (e.g. gmake)', + action='store', default='make') + parser.add_argument('domains', metavar='DOMAIN', nargs='*', + help='The domain(s) to test (default: all)', + default=True) + options = parser.parse_args() + os.chdir(options.directory) + domain_data = DomainData(options) + if options.domains == True: + options.domains = sorted(domain_data.domains.keys()) + if options.list: + for what in options.list: + for key in sorted(getattr(domain_data, what).keys()): + print(key) + exit(0) + else: + sys.exit(0 if main(options, domain_data) else 1) + except SystemExit: + raise + except: + traceback.print_exc() + exit(3) From 46c8256547086b8516688a46a98c106f99975b11 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:42:55 +0100 Subject: [PATCH 0338/1574] Flush log output after each line Otherwise the output can be out of order when redirected. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 521bbc564..f18b94be4 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -31,6 +31,7 @@ import traceback def log_line(text, prefix='depends.py'): """Print a status message.""" sys.stderr.write(prefix + ' ' + text + '\n') + sys.stderr.flush() def backup_config(options): """Back up the library configuration file (config.h).""" From 54aa5c695793c8b9f9cf76bed9c7dcdcf7d37edd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:46:34 +0100 Subject: [PATCH 0339/1574] Factor running config.pl into its own function Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index f18b94be4..6c55676c7 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -33,6 +33,11 @@ def log_line(text, prefix='depends.py'): sys.stderr.write(prefix + ' ' + text + '\n') sys.stderr.flush() +def log_command(cmd): + """Print a trace of the specified command. +cmd is a list of strings: a command name and its arguments.""" + log_line(' '.join(cmd), prefix='+') + def backup_config(options): """Back up the library configuration file (config.h).""" shutil.copy(options.config, options.config_backup) @@ -44,6 +49,14 @@ If done is true, remove the backup file.""" shutil.move(options.config_backup, options.config) else: shutil.copy(options.config_backup, options.config) +def run_config_pl(options, args): + """Run scripts/config.pl with the specified arguments.""" + cmd = ['scripts/config.pl'] + if options.config != 'include/mbedtls/config.h': + cmd += ['--file', options.config] + cmd += args + log_command(cmd) + subprocess.check_call(cmd) class Job: """A job builds the library in a specific configuration and runs some tests.""" @@ -73,12 +86,8 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) - def trace_command(self, cmd): - '''Print a trace of the specified command. -cmd is a list of strings: a command name and its arguments.''' - log_line(' '.join(cmd), prefix='+') - def configure(self, config_file_name): + def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' for key, value in sorted(self.config_settings.items()): @@ -88,12 +97,7 @@ config_file_name indicates which file to modify.''' args = ['unset', key] else: args = ['set', key, value] - cmd = ['scripts/config.pl'] - if config_file_name != 'include/mbedtls/config.h': - cmd += ['--file', config_file_name] - cmd += args - self.trace_command(cmd) - subprocess.check_call(cmd) + run_config_pl(options, args) def test(self, options): '''Run the job's build and test commands. @@ -105,7 +109,7 @@ and subsequent commands are tests that cannot run if the build failed).''' built = False success = True for command in self.commands: - self.trace_command(command) + log_command(command) ret = subprocess.call(command) if ret != 0: if command[0] not in ['make', options.make_command]: @@ -257,7 +261,7 @@ def run(options, job): """Run the specified job (a Job instance).""" subprocess.check_call([options.make_command, 'clean']) job.announce(None) - job.configure(options.config) + job.configure(options) success = job.test(options) job.announce(success) return success From 0fa7cbeeb9e2ebbffcea64adec8aea0acab7c0cb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:48:48 +0100 Subject: [PATCH 0340/1574] Add basic support for colored output Show "pass" lines in green and "fail" lines in red. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 51 +++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 6c55676c7..433f35275 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -28,9 +28,38 @@ import subprocess import sys import traceback -def log_line(text, prefix='depends.py'): +class Colors: + """Minimalistic support for colored output. +Each field of an object of this class is either None if colored output +is not possible or not desired, or a pair of strings (start, stop) such +that outputting start switches the text color to the desired color and +stop switches the text color back to the default.""" + red = None + green = None + bold_red = None + bold_green = None + def __init__(self, options=None): + if not options or options.color in ['no', 'never']: + want_color = False + elif options.color in ['yes', 'always']: + want_color = True + else: + want_color = sys.stderr.isatty() + if want_color: + # Assume ANSI compatible terminal + normal = '\033[0m' + self.red = ('\033[31m', normal) + self.green = ('\033[32m', normal) + self.bold_red = ('\033[1;31m', normal) + self.bold_green = ('\033[1;32m', normal) +NO_COLORS = Colors(None) + +def log_line(text, prefix='depends.py:', suffix='', color=None): """Print a status message.""" - sys.stderr.write(prefix + ' ' + text + '\n') + if color != None: + prefix = color[0] + prefix + suffix = suffix + color[1] + sys.stderr.write(prefix + ' ' + text + suffix + '\n') sys.stderr.flush() def log_command(cmd): @@ -74,15 +103,15 @@ shell=False.""" self.config_settings = config_settings self.commands = commands - def announce(self, what): + def announce(self, colors, what): '''Announce the start or completion of a job. If what is None, announce the start of the job. If what is True, announce that the job has passed. If what is False, announce that the job has failed.''' if what is True: - log_line(self.name + ' PASSED') + log_line(self.name + ' PASSED', color=colors.green) elif what is False: - log_line(self.name + ' FAILED') + log_line(self.name + ' FAILED', color=colors.red) else: log_line('starting ' + self.name) @@ -257,13 +286,13 @@ A name can either be the name of a domain or the name of one specific job.""" else: return [self.jobs[name]] -def run(options, job): +def run(options, job, colors=NO_COLORS): """Run the specified job (a Job instance).""" subprocess.check_call([options.make_command, 'clean']) - job.announce(None) + job.announce(colors, None) job.configure(options) success = job.test(options) - job.announce(success) + job.announce(colors, success) return success def main(options, domain_data): @@ -273,6 +302,7 @@ domains and jobs. Run the jobs listed in options.domains.""" if not hasattr(options, 'config_backup'): options.config_backup = options.config + '.bak' + colors = Colors(options) jobs = [] failures = [] successes = [] @@ -281,7 +311,7 @@ Run the jobs listed in options.domains.""" backup_config(options) try: for job in jobs: - success = run(options, job) + success = run(options, job, colors=colors) if not success: if options.keep_going: failures.append(job.name) @@ -308,6 +338,9 @@ Run the jobs listed in options.domains.""" if __name__ == '__main__': try: parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--color', metavar='WHEN', + help='Colorize the output (always/auto/never)', + choices=['always', 'auto', 'never'], default='auto') parser.add_argument('-c', '--config', metavar='FILE', help='Configuration file to modify', default='include/mbedtls/config.h') From e85163bb5c466d25b1a7cb915ff1731afd2dadfc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:50:03 +0100 Subject: [PATCH 0341/1574] Simplify final passed/failed reporting Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 433f35275..5c4cb502b 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -323,15 +323,12 @@ Run the jobs listed in options.domains.""" finally: if options.keep_going: restore_config(options, True) + if successes: + log_line('{} passed'.format(' '.join(successes)), color=colors.bold_green) if failures: - if successes: - log_line('{} passed; {} FAILED'.format(' '.join(successes), - ' '.join(failures))) - else: - log_line('{} FAILED'.format(' '.join(failures))) + log_line('{} FAILED'.format(' '.join(failures)), color=colors.bold_red) return False else: - log_line('{} passed'.format(' '.join(successes))) return True From bf7537d0a9faea3cd087bb2f2f1a16de3b06a84c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:52:16 +0100 Subject: [PATCH 0342/1574] Use the full config as the baseline for all jobs Start each job from the full config minus some memory management settings and the job-specific settings. The original content of config.h no longer influences the configurations used for the jobs (but it still influences what jobs may run, in that the set of jobs is partly built by parsing #define and //#define lines in config.h). Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 5c4cb502b..daae6b057 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -68,16 +68,23 @@ cmd is a list of strings: a command name and its arguments.""" log_line(' '.join(cmd), prefix='+') def backup_config(options): - """Back up the library configuration file (config.h).""" - shutil.copy(options.config, options.config_backup) + """Back up the library configuration file (config.h). +If the backup file already exists, it is presumed to be the desired backup, +so don't make another backup.""" + if os.path.exists(options.config_backup): + options.own_backup = False + else: + options.own_backup = True + shutil.copy(options.config, options.config_backup) -def restore_config(options, done=False): +def restore_config(options): """Restore the library configuration file (config.h). -If done is true, remove the backup file.""" - if done: +Remove the backup file if it was saved earlier.""" + if options.own_backup: shutil.move(options.config_backup, options.config) else: shutil.copy(options.config_backup, options.config) + def run_config_pl(options, args): """Run scripts/config.pl with the specified arguments.""" cmd = ['scripts/config.pl'] @@ -115,10 +122,21 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) + def set_reference_config(self, options): + """Change the library configuration file (config.h) to the reference state. + The reference state is the one from which the tested configurations are + derived.""" + # Turn off memory management options that are not relevant to + # the tests and slow them down. + run_config_pl(options, ['full']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' + self.set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: args = ['set', key] @@ -319,10 +337,14 @@ Run the jobs listed in options.domains.""" return False else: successes.append(job.name) - restore_config(options) - finally: + restore_config(options) + except: + # Restore the configuration, except in stop-on-error mode if there + # was an error, where we leave the failing configuration up for + # developer convenience. if options.keep_going: - restore_config(options, True) + restore_config(options) + raise if successes: log_line('{} passed'.format(' '.join(successes)), color=colors.bold_green) if failures: From b1284cf6bc6b33f1ae6650b8fb0c5f74addc392b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 18:56:03 +0100 Subject: [PATCH 0343/1574] Don't test builds with only deprecated hashes Don't try to build with only SHA-1 or with only RIPEMD160 or with only MD{2,4,5}. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index daae6b057..f0f09f198 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -219,7 +219,14 @@ class ExclusiveDomain(Domain): Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset, and a test job with this symbol unset and the others set.""" - def __init__(self, symbols, commands): + def __init__(self, symbols, commands, exclude=None): + """Build a domain for the specified list of configuration symbols. +The domain contains two sets of jobs: jobs that enable one of the elements +of symbols and disable the others, and jobs that disable one of the elements +of symbols and enable the others. +Each job runs the specified commands. +If exclude is a regular expression, skip generated jobs whose description +would match this regular expression.""" self.jobs = [] for invert in [False, True]: base_config_settings = {} @@ -227,6 +234,8 @@ unset and the others set.""" base_config_settings[symbol] = invert for symbol in symbols: description = '!' + symbol if invert else symbol + if exclude and re.match(exclude, description): + continue config_settings = base_config_settings.copy() config_settings[symbol] = not invert turn_off_dependencies(config_settings) @@ -238,6 +247,9 @@ class ComplementaryDomain: Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" def __init__(self, symbols, commands): + """Build a domain for the specified list of configuration symbols. +Each job in the domain disables one of the specified symbols. +Each job runs the specified commands.""" self.jobs = [] for symbol in symbols: description = '!' + symbol @@ -279,7 +291,8 @@ Return them in a generator.""" 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one # hash which is obsolete. Run the test suites. - 'hashes': ExclusiveDomain(hash_symbols, build_and_test), + 'hashes': ExclusiveDomain(hash_symbols, build_and_test, + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), # Key exchange types. Just check the build. 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), # Public-key algorithms. Run the test suites. From 584c24ace481a7b71a7051e930b1f3d57d47235e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 19:30:40 +0100 Subject: [PATCH 0344/1574] Declare more reverse dependencies Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index f0f09f198..27c2ae48b 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -176,16 +176,22 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # If the configuration option A requires B, make sure that # B in reverse_dependencies[A]. +# All the information here should be contained in check_config.h. This +# file includes a copy because it changes rarely and it would be a pain +# to extract automatically. reverse_dependencies = { 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', 'MBEDTLS_ECJPAKE_C', + 'MBEDTLS_ECP_RESTARTABLE', + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', @@ -198,6 +204,8 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_ENTROPY_FORCE_SHA256'], 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], } From c3b4deeb6ccac09eca55bc83a538ebdd5dca83c8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 19:33:05 +0100 Subject: [PATCH 0345/1574] When exercising key exchanges, don't build the test suites Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 27c2ae48b..3ef3f20ed 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -301,9 +301,11 @@ Return them in a generator.""" # hash which is obsolete. Run the test suites. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), - # Key exchange types. Just check the build. - 'kex': ExclusiveDomain(key_exchange_symbols, [build_command]), - # Public-key algorithms. Run the test suites. + # Key exchange types. Only build the library and the sample + # programs. + 'kex': ExclusiveDomain(key_exchange_symbols, + [build_command + ['lib'], + build_command + ['-C', 'programs']]), 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', 'MBEDTLS_ECP_C', 'MBEDTLS_PKCS1_V21', From 34a1557df6565d532eca92d07985cdfc1fbd29b7 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Jan 2019 23:12:28 +0100 Subject: [PATCH 0346/1574] Add domains for symmetric ciphers Add a domain for cipher base algorithms (block permutations and stream ciphers), a domain for block cipher chaining modes and a domain for block cipher padding modes. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 3ef3f20ed..11af322fd 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -180,6 +180,12 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # file includes a copy because it changes rarely and it would be a pain # to extract automatically. reverse_dependencies = { + 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', + 'MBEDTLS_NIST_KW_C', + 'MBEDTLS_PSA_CRYPTO_STORAGE_C', + 'MBEDTLS_PSA_CRYPTO_STORAGE_FILE_C', + 'MBEDTLS_PSA_CRYPTO_C'], + 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', @@ -266,6 +272,16 @@ Each job runs the specified commands.""" job = Job(description, config_settings, commands) self.jobs.append(job) +class CipherInfo: + """Collect data about cipher.h.""" + def __init__(self, options): + self.base_symbols = set() + with open('include/mbedtls/cipher.h') as fh: + for line in fh: + m = re.match(r' *MBEDTLS_CIPHER_ID_(\w+),', line) + if m and m.group(1) not in ['NONE', 'NULL', '3DES']: + self.base_symbols.add('MBEDTLS_' + m.group(1) + '_C') + class DomainData: """Collect data about the library.""" def collect_config_symbols(self, options): @@ -294,7 +310,21 @@ Return them in a generator.""" curve_symbols = self.config_symbols_matching(r'MBEDTLS_ECP_DP_\w+_ENABLED\Z') # Find key exchange enabling macros by name. key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') + # Find cipher IDs (block permutations and stream ciphers --- chaining + # and padding modes are exercised separately) information by parsing + # cipher.h, as the information is not readily available in config.h. + cipher_info = CipherInfo(options) + # Find block cipher chaining and padding mode enabling macros by name. + cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') + cipher_padding_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_PADDING_\w+\Z') self.domains = { + # Cipher IDs, chaining modes and padding modes. Run the test suites. + 'cipher_id': ExclusiveDomain(cipher_info.base_symbols, + build_and_test), + 'cipher_chaining': ExclusiveDomain(cipher_chaining_symbols, + build_and_test), + 'cipher_padding': ExclusiveDomain(cipher_padding_symbols, + build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one From f502bcb13ed7f326ec488f5a4057647bec788957 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 09:27:56 -0400 Subject: [PATCH 0347/1574] Fix missing AES dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ccm.data | 9 +++++++++ tests/suites/test_suite_cmac.data | 13 ++++++++++++- tests/suites/test_suite_cmac.function | 4 ++-- tests/suites/test_suite_gcm.aes128_en.data | 1 + tests/suites/test_suite_gcm.function | 2 +- tests/suites/test_suite_pem.data | 2 +- tests/suites/test_suite_ssl.data | 6 +++++- 7 files changed, 31 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_ccm.data b/tests/suites/test_suite_ccm.data index 61e6e9b99..2c4ccc467 100644 --- a/tests/suites/test_suite_ccm.data +++ b/tests/suites/test_suite_ccm.data @@ -1715,30 +1715,39 @@ depends_on:MBEDTLS_AES_C mbedtls_ccm_incomplete_update_overflow:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa" CCM encrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM decrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM* encrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM* decrypt, instant finish NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"d32088d50df9aba14d9022c870a0cb85":"4b10788c1a03bca656f04f1f98" CCM encrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM* encrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_ENCRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM* decrypt, instant finish AES-128 (P=0, N=13, A=0, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_instant_finish:MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_STAR_DECRYPT:"54caf96ef6d448734700aadab50faf7a":"a3803e752ae849c910d8da36af" CCM pass unexpected auth data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) +depends_on:MBEDTLS_AES_C mbedtls_ccm_unexpected_ad::MBEDTLS_CIPHER_ID_AES:MBEDTLS_CCM_ENCRYPT:"d32088d50df9aba14d9022c870a0cb85":"e16c69861efc206e85aab1255e":"0eff7d7bcceb873c3203a8df74f4e91b04bd607ec11202f96cfeb99f5bcdb7aa" CCM encrypt, unexpected ciphertext/plaintext data, NIST VPT AES-128 #14 (P=13, N=13, A=32, T=16) diff --git a/tests/suites/test_suite_cmac.data b/tests/suites/test_suite_cmac.data index 5956a6981..3ca5e542d 100644 --- a/tests/suites/test_suite_cmac.data +++ b/tests/suites/test_suite_cmac.data @@ -2,6 +2,7 @@ CMAC self test mbedtls_cmac_self_test: CMAC null arguments +depends_on:MBEDTLS_AES_C mbedtls_cmac_null_args: CMAC init #1 AES-128: OK @@ -16,7 +17,7 @@ CMAC init #3 AES-256: OK depends_on:MBEDTLS_AES_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_AES_256_ECB:256:0 -CMAC init #4 3DES : OK +CMAC init #4 3DES: OK depends_on:MBEDTLS_DES_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_DES_EDE3_ECB:192:0 @@ -33,32 +34,42 @@ depends_on:MBEDTLS_CAMELLIA_C mbedtls_cmac_setkey:MBEDTLS_CIPHER_CAMELLIA_192_ECB:128:MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA CMAC Single Blocks #1 - Empty block, no updates +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":-1:"":-1:"":-1:"":-1:"bb1d6929e95937287fa37d129b756746" CMAC Single Blocks #2 - Single 16 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"":-1:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Single Blocks #3 - Single 64 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"":-1:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #1 - Multiple 8 byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172a":8:"":-1:"":-1:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Multiple Blocks #2 - Multiple 16 byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96e93d7e117393172a":16:"ae2d8a571e03ac9c9eb76fac45af8e51":16:"30c81c46a35ce411e5fbc1191a0a52ef":16:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #3 - Multiple variable sized blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"6bc1bee22e409f96":8:"e93d7e117393172aae2d8a571e03ac9c":16:"9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52ef":24:"f69f2445df4f9b17ad2b417be66c3710":16:"51f0bebf7e3b9d92fc49741779363cfe" CMAC Multiple Blocks #4 - Multiple 8 byte blocks with gaps +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_blocks:MBEDTLS_CIPHER_AES_128_ECB:"2b7e151628aed2a6abf7158809cf4f3c":128:16:"":0:"6bc1bee22e409f96":8:"":0:"e93d7e117393172a":8:"070a16b46b4d4144f79bdd9dd04a287c" CMAC Multiple Operations, same key #1 - Empty, empty +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367" CMAC Multiple Operations, same key #2 - Empty, 64 byte block +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"":-1:"":-1:"":-1:"d17ddf46adaacde531cac483de7a9367":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":64:"":-1:"":-1:"a1d5df0eed790f794d77589659f39a11" CMAC Multiple Operations, same key #3 - variable byte blocks +depends_on:MBEDTLS_AES_C mbedtls_cmac_multiple_operations_same_key:MBEDTLS_CIPHER_AES_192_ECB:"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b":192:16:"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11":"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51":32:"30c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710":32:"":-1:"a1d5df0eed790f794d77589659f39a11" diff --git a/tests/suites/test_suite_cmac.function b/tests/suites/test_suite_cmac.function index cabf1070c..c3d7da43d 100644 --- a/tests/suites/test_suite_cmac.function +++ b/tests/suites/test_suite_cmac.function @@ -77,7 +77,7 @@ void mbedtls_cmac_null_args( ) test_data, 16, NULL ) == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); - +#if defined(MBEDTLS_AES_C) TEST_ASSERT( mbedtls_aes_cmac_prf_128( NULL, 16, test_data, 16, test_output ) == @@ -92,7 +92,7 @@ void mbedtls_cmac_null_args( ) test_data, 16, NULL ) == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); - +#endif exit: mbedtls_cipher_free( &ctx ); } diff --git a/tests/suites/test_suite_gcm.aes128_en.data b/tests/suites/test_suite_gcm.aes128_en.data index 273642cbd..a87fb180e 100644 --- a/tests/suites/test_suite_gcm.aes128_en.data +++ b/tests/suites/test_suite_gcm.aes128_en.data @@ -727,6 +727,7 @@ depends_on:MBEDTLS_AES_C gcm_bad_parameters:MBEDTLS_CIPHER_ID_AES:MBEDTLS_GCM_ENCRYPT:"d0194b6ee68f0ed8adc4b22ed15dbf14":"":"":"":32:MBEDTLS_ERR_GCM_BAD_INPUT AES-GCM, output buffer too small, NIST Validation (AES-128,128,1024,0,128) #0 +depends_on:MBEDTLS_AES_C gcm_update_output_buffer_too_small:MBEDTLS_CIPHER_ID_AES:MBEDTLS_GCM_ENCRYPT:"ce0f8cfe9d64c4f4c045d11b97c2d918":"dfff250d380f363880963b42d6913c1ba11e8edf7c4ab8b76d79ccbaac628f548ee542f48728a9a2620a0d69339c8291e8d398440d740e310908cdee7c273cc91275ce7271ba12f69237998b07b789b3993aaac8dc4ec1914432a30f5172f79ea0539bd1f70b36d437e5170bc63039a5280816c05e1e41760b58e35696cebd55":"ad4c3627a494fc628316dc03faf81db8" AES-GCM Selftest diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function index ea8d6a03a..eb2ced34a 100644 --- a/tests/suites/test_suite_gcm.function +++ b/tests/suites/test_suite_gcm.function @@ -454,7 +454,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ +/* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_AES_C */ void gcm_selftest( ) { TEST_ASSERT( mbedtls_gcm_self_test( 1 ) == 0 ); diff --git a/tests/suites/test_suite_pem.data b/tests/suites/test_suite_pem.data index d755c2760..1c9e0bf22 100644 --- a/tests/suites/test_suite_pem.data +++ b/tests/suites/test_suite_pem.data @@ -28,7 +28,7 @@ depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MOD mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,00$":"pwd":MBEDTLS_ERR_PEM_INVALID_ENC_IV:"" PEM read (unknown encryption algorithm) -depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C mbedtls_pem_read_buffer:"^":"$":"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-,00$":"pwd":MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG:"" PEM read (malformed PEM DES-CBC) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 121069452..bd9f250ea 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3115,6 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3125,6 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3143,6 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3161,11 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) +depends_on:MBEDTLS_AES_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_AES_C ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper From 894edde9915bc34c814f5571d1b246f30a6337f7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 29 Sep 2022 06:31:14 -0400 Subject: [PATCH 0348/1574] Add tls prf handling when there's no SHA256 or SHA384 Return a null prf function pointer and check for it when populating transform. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c36729fc5..50a233ddb 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4046,6 +4046,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, const unsigned char * const end = buf + len; size_t session_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + tls_prf_fn prf_func = NULL; /* * The context should have been freshly setup or reset. @@ -4131,6 +4132,10 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; + prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); + if( prf_func == NULL ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + /* Read random bytes and populate structure */ if( (size_t)( end - p ) < sizeof( ssl->transform->randbytes ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -4141,7 +4146,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) ssl->session->encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ssl_tls12prf_from_cs( ssl->session->ciphersuite ), + prf_func, p, /* currently pointing to randbytes */ MBEDTLS_SSL_VERSION_TLS1_2, /* (D)TLS 1.2 is forced */ ssl->conf->endpoint, @@ -7428,6 +7433,8 @@ exit: * Helper to get TLS 1.2 PRF from ciphersuite * (Duplicates bits of logic from ssl_set_handshake_prfs().) */ +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -7436,11 +7443,22 @@ static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) return( tls_prf_sha384 ); -#else - (void) ciphersuite_id; + else #endif - return( tls_prf_sha256 ); +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + { + if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) + return( tls_prf_sha256 ); + } +#endif +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ciphersuite_info; +#endif + return( NULL ); } +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || + MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) From 2d59dbc0323d30570a51d2ab36c067f9b3be6759 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 08:34:38 -0400 Subject: [PATCH 0349/1574] Use TLS prf only if TLS 1.2 is compiled in Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 50a233ddb..779295739 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4046,7 +4046,9 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, const unsigned char * const end = buf + len; size_t session_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) tls_prf_fn prf_func = NULL; +#endif /* * The context should have been freshly setup or reset. @@ -4132,6 +4134,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); if( prf_func == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -4139,7 +4142,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, /* Read random bytes and populate structure */ if( (size_t)( end - p ) < sizeof( ssl->transform->randbytes ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + ret = ssl_tls12_populate_transform( ssl->transform, ssl->session->ciphersuite, ssl->session->master, From 084334c8f28fd2c32462d47be996a2b65dd7993c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 27 Sep 2022 14:19:50 -0400 Subject: [PATCH 0350/1574] Compile constant time masking and hmac if there are suites using MAC This is used in TLS 1.2 authentication with NULL cipher, when there are no TLS_CBC suites. Signed-off-by: Andrzej Kurek --- library/constant_time_internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index 340a5882d..9cc63c230 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -46,7 +46,7 @@ */ unsigned mbedtls_ct_uint_mask( unsigned value ); -#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) /** Turn a value into a mask: * - if \p value == 0, return the all-bits 0 mask, aka 0 @@ -61,7 +61,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ); */ size_t mbedtls_ct_size_mask( size_t value ); -#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_BIGNUM_C) From 46a987367c5f3bcbf126ec7db6a8a1743ffe08e4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:11:11 -0400 Subject: [PATCH 0351/1574] Formatting fix Signed-off-by: Andrzej Kurek --- library/ssl_msg.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index ab2ecb327..4f998b4f5 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1665,15 +1665,15 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* - * The next two sizes are the minimum and maximum values of - * data_len over all padlen values. - * - * They're independent of padlen, since we previously did - * data_len -= padlen. - * - * Note that max_len + maclen is never more than the buffer - * length, as we previously did in_msglen -= maclen too. - */ + * The next two sizes are the minimum and maximum values of + * data_len over all padlen values. + * + * They're independent of padlen, since we previously did + * data_len -= padlen. + * + * Note that max_len + maclen is never more than the buffer + * length, as we previously did in_msglen -= maclen too. + */ const size_t max_len = rec->data_len + padlen; const size_t min_len = ( max_len > 256 ) ? max_len - 256 : 0; From 0abebebe6d8a182ccdee8ea2275576a0accbe030 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 30 Sep 2022 12:54:41 -0400 Subject: [PATCH 0352/1574] Refactor ssl test suite to use pointers more This way it's easier to track structures that are partially set up. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 122 ++++++++++++++++----------- 1 file changed, 73 insertions(+), 49 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index d832853ee..5042d9fc3 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -797,9 +797,9 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) */ typedef struct mbedtls_endpoint_certificate { - mbedtls_x509_crt ca_cert; - mbedtls_x509_crt cert; - mbedtls_pk_context pkey; + mbedtls_x509_crt* ca_cert; + mbedtls_x509_crt* cert; + mbedtls_pk_context* pkey; } mbedtls_endpoint_certificate; /* @@ -814,6 +814,42 @@ typedef struct mbedtls_endpoint mbedtls_endpoint_certificate cert; } mbedtls_endpoint; +/* + * Deinitializes certificates from endpoint represented by \p ep. + */ +void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) +{ + mbedtls_endpoint_certificate *cert = &( ep->cert ); + if( cert != NULL ) + { + if( cert->ca_cert != NULL ) + { + mbedtls_x509_crt_free( cert->ca_cert ); + mbedtls_free( cert->ca_cert ); + cert->ca_cert = NULL; + } + if( cert->cert != NULL ) + { + mbedtls_x509_crt_free( cert->cert ); + mbedtls_free( cert->cert ); + cert->cert = NULL; + } + if( cert->pkey != NULL ) + { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( mbedtls_pk_get_type( cert->pkey ) == MBEDTLS_PK_OPAQUE ) + { + mbedtls_svc_key_id_t *key_slot = cert->pkey->pk_ctx; + psa_destroy_key( *key_slot ); + } +#endif + mbedtls_pk_free( cert->pkey ); + mbedtls_free( cert->pkey ); + cert->pkey = NULL; + } + } +} + /* * Initializes \p ep_cert structure and assigns it to endpoint * represented by \p ep. @@ -826,7 +862,7 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { int i = 0; int ret = -1; - mbedtls_endpoint_certificate *cert; + mbedtls_endpoint_certificate *cert = NULL; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; #endif @@ -837,15 +873,19 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - mbedtls_x509_crt_init( &( cert->ca_cert ) ); - mbedtls_x509_crt_init( &( cert->cert ) ); - mbedtls_pk_init( &( cert->pkey ) ); + cert->ca_cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); + cert->cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); + cert->pkey = mbedtls_calloc( 1, sizeof(mbedtls_pk_context) ); + + mbedtls_x509_crt_init( cert->ca_cert ); + mbedtls_x509_crt_init( cert->cert ); + mbedtls_pk_init( cert->pkey ); /* Load the trusted CA */ for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) { - ret = mbedtls_x509_crt_parse_der( &( cert->ca_cert ), + ret = mbedtls_x509_crt_parse_der( cert->ca_cert, (const unsigned char *) mbedtls_test_cas_der[i], mbedtls_test_cas_der_len[i] ); TEST_ASSERT( ret == 0 ); @@ -857,12 +897,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { if( pk_alg == MBEDTLS_PK_RSA ) { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char*) mbedtls_test_srv_crt_rsa_sha256_der, mbedtls_test_srv_crt_rsa_sha256_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char*) mbedtls_test_srv_key_rsa_der, mbedtls_test_srv_key_rsa_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -870,12 +910,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } else { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char*) mbedtls_test_srv_crt_ec_der, mbedtls_test_srv_crt_ec_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char*) mbedtls_test_srv_key_ec_der, mbedtls_test_srv_key_ec_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -886,12 +926,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, { if( pk_alg == MBEDTLS_PK_RSA ) { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char *) mbedtls_test_cli_crt_rsa_der, mbedtls_test_cli_crt_rsa_der_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char *) mbedtls_test_cli_key_rsa_der, mbedtls_test_cli_key_rsa_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -899,12 +939,12 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } else { - ret = mbedtls_x509_crt_parse( &( cert->cert ), + ret = mbedtls_x509_crt_parse( cert->cert, (const unsigned char *) mbedtls_test_cli_crt_ec_der, mbedtls_test_cli_crt_ec_len ); TEST_ASSERT( ret == 0 ); - ret = mbedtls_pk_parse_key( &( cert->pkey ), + ret = mbedtls_pk_parse_key( cert->pkey, (const unsigned char *) mbedtls_test_cli_key_ec_der, mbedtls_test_cli_key_ec_der_len, NULL, 0, mbedtls_test_rnd_std_rand, NULL ); @@ -915,7 +955,7 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opaque_alg != 0 ) { - TEST_EQUAL( mbedtls_pk_wrap_as_opaque( &( cert->pkey ), &key_slot, + TEST_EQUAL( mbedtls_pk_wrap_as_opaque( cert->pkey, &key_slot, opaque_alg, opaque_usage, opaque_alg2 ), 0 ); } @@ -925,10 +965,10 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, (void) opaque_usage; #endif - mbedtls_ssl_conf_ca_chain( &( ep->conf ), &( cert->ca_cert ), NULL ); + mbedtls_ssl_conf_ca_chain( &( ep->conf ), cert->ca_cert, NULL ); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), &( cert->cert ), - &( cert->pkey ) ); + ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, + cert->pkey ); TEST_ASSERT( ret == 0 ); TEST_ASSERT( ep->conf.key_cert != NULL ); @@ -936,20 +976,14 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, TEST_ASSERT( ret == 0 ); TEST_ASSERT( ep->conf.key_cert == NULL ); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), &( cert->cert ), - &( cert->pkey ) ); + ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, + cert->pkey ); TEST_ASSERT( ret == 0 ); exit: if( ret != 0 ) { - mbedtls_x509_crt_free( &( cert->ca_cert ) ); - mbedtls_x509_crt_free( &( cert->cert ) ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opaque_alg != 0 ) - psa_destroy_key( key_slot ); -#endif - mbedtls_pk_free( &( cert->pkey ) ); + mbedtls_endpoint_certificate_free( ep ); } return ret; @@ -1075,25 +1109,6 @@ exit: return ret; } -/* - * Deinitializes certificates from endpoint represented by \p ep. - */ -void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) -{ - mbedtls_endpoint_certificate *cert = &( ep->cert ); - mbedtls_x509_crt_free( &( cert->ca_cert ) ); - mbedtls_x509_crt_free( &( cert->cert ) ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_pk_get_type( &( cert->pkey ) ) == MBEDTLS_PK_OPAQUE ) - { - mbedtls_svc_key_id_t *key_slot = cert->pkey.pk_ctx; - - psa_destroy_key( *key_slot ); - } -#endif - mbedtls_pk_free( &( cert->pkey ) ); -} - /* * Deinitializes endpoint represented by \p ep. */ @@ -2077,7 +2092,8 @@ void perform_handshake( handshake_test_options *options ) int expected_handshake_result = options->expected_handshake_result; USE_PSA_INIT( ); - + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; mbedtls_message_socket_init( &server_context ); @@ -5122,6 +5138,8 @@ void move_handshake_to_state(int endpoint_type, int state, int need_pass) options.pk_alg = MBEDTLS_PK_RSA; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &base_ep, sizeof(base_ep) ); + mbedtls_platform_zeroize( &second_ep, sizeof(second_ep) ); ret = mbedtls_endpoint_init( &base_ep, endpoint_type, &options, NULL, NULL, NULL, NULL ); @@ -5827,6 +5845,8 @@ void force_bad_session_id_len( ) options.srv_log_fun = log_analyzer; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); mbedtls_message_socket_init( &server_context ); mbedtls_message_socket_init( &client_context ); @@ -6007,6 +6027,8 @@ void raw_key_agreement_fail( int bad_server_ecdhe_key ) uint16_t iana_tls_group_list[] = { MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client, sizeof(client) ); + mbedtls_platform_zeroize( &server, sizeof(server) ); init_handshake_options( &options ); options.pk_alg = MBEDTLS_PK_ECDSA; @@ -6081,6 +6103,8 @@ void tls13_server_certificate_msg_invalid_vector_len( ) * Test set-up */ USE_PSA_INIT( ); + mbedtls_platform_zeroize( &client_ep, sizeof(client_ep) ); + mbedtls_platform_zeroize( &server_ep, sizeof(server_ep) ); init_handshake_options( &client_options ); client_options.pk_alg = MBEDTLS_PK_ECDSA; From 90e8204476e18f88e2575018aaa27e4b194cfb2c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:45:53 -0400 Subject: [PATCH 0353/1574] Add missing SHA256 and ECDSA_C dependencies in test_suite_ssl Most of the tests (including those using endpoint_init functions) parse certificates that require MBEDTLS_SHA256_C to be present. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 12 ++++++----- tests/suites/test_suite_ssl.function | 32 ++++++++++++++-------------- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index bd9f250ea..20a0c6d8d 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3115,7 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3126,7 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3145,7 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3164,12 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_AES_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256 ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper @@ -3522,9 +3522,11 @@ Sanity test cid functions cid_sanity: Raw key agreement: nominal +depends_on:MBEDTLS_SHA256_C raw_key_agreement_fail:0 Raw key agreement: bad server key +depends_on:MBEDTLS_SHA256_C raw_key_agreement_fail:1 Force a bad session id length diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 5042d9fc3..d169160de 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4543,7 +4543,7 @@ void ssl_tls13_create_psk_binder( int hash_alg, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SHA256_C */ void ssl_tls13_record_protection( int ciphersuite, int endpoint, int ctr, @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15*/ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2 */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SHA256_C */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_SHA256_C */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SHA256_C */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { From 68327748d398b81deb7772ff06f1c4a04e48c88b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 06:18:18 -0400 Subject: [PATCH 0354/1574] Add missing dependencies Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 5 ++--- programs/ssl/ssl_client2.c | 3 ++- programs/ssl/ssl_server2.c | 3 ++- programs/test/benchmark.c | 5 +++-- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 779295739..eee0dadac 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -7440,10 +7440,9 @@ exit: defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); - + mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) return( tls_prf_sha384 ); else diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index be474d473..9426a8264 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2030,7 +2030,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 4f789d523..e3587a5b5 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3234,7 +3234,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 920a473c6..ecb093e14 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -915,7 +915,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_HMAC_DRBG_C) +#if defined(MBEDTLS_HMAC_DRBG_C) && \ + ( defined(MBEDTLS_SHA1_C) || defined(MBEDTLS_SHA256_C) ) if( todo.hmac_drbg ) { mbedtls_hmac_drbg_context hmac_drbg; @@ -958,7 +959,7 @@ int main( int argc, char *argv[] ) #endif mbedtls_hmac_drbg_free( &hmac_drbg ); } -#endif +#endif /* MBEDTLS_HMAC_DRBG_C && ( MBEDTLS_SHA1_C || MBEDTLS_SHA256_C ) */ #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) if( todo.rsa ) From e38b788b79f507ae61bb3a1e072dab59eff0f9e6 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:46:51 -0400 Subject: [PATCH 0355/1574] Add missing key exchange dependencies Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_client2.c | 26 ++++++++++++-------- programs/ssl/ssl_server2.c | 3 ++- tests/suites/test_suite_ssl.data | 42 ++++++++++++++++---------------- 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 9426a8264..caf9ac5cf 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -541,7 +541,7 @@ struct options #include "ssl_test_common_source.c" -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static unsigned char peer_crt_info[1024]; /* @@ -579,7 +579,7 @@ static int my_verify( void *data, mbedtls_x509_crt *crt, return( 0 ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) int report_cid_usage( mbedtls_ssl_context *ssl, @@ -768,7 +768,7 @@ int main( int argc, char *argv[] ) psa_status_t status; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #endif rng_context_t rng; @@ -781,7 +781,9 @@ int main( int argc, char *argv[] ) mbedtls_timing_delay_context timer; #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; +#endif mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; mbedtls_pk_context pkey; @@ -2131,7 +2133,8 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ @@ -2455,7 +2458,8 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2478,7 +2482,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2853,9 +2857,10 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3089,9 +3094,10 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index e3587a5b5..0554d2cb1 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1444,7 +1444,8 @@ int main( int argc, char *argv[] ) mbedtls_ssl_cookie_ctx cookie_ctx; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ + defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #endif mbedtls_ssl_context ssl; diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 20a0c6d8d..c344b2182 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -254,23 +254,23 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: handshake_cipher:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:0 Handshake, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED handshake_cipher:"TLS-RSA-WITH-AES-128-CCM":MBEDTLS_PK_RSA:0 Handshake, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:0 Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:0 Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:0 Handshake, PSK-WITH-AES-128-CBC-SHA -depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_PSK_ENABLED handshake_psk_cipher:"TLS-PSK-WITH-AES-128-CBC-SHA":MBEDTLS_PK_RSA:"abc123":0 DTLS Handshake, tls1_2 @@ -282,23 +282,23 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: handshake_cipher:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:1 DTLS Handshake, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED handshake_cipher:"TLS-RSA-WITH-AES-128-CCM":MBEDTLS_PK_RSA:1 DTLS Handshake, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:1 DTLS Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:1 DTLS Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:1 DTLS Handshake, PSK-WITH-AES-128-CBC-SHA -depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_PSK_ENABLED handshake_psk_cipher:"TLS-PSK-WITH-AES-128-CBC-SHA":MBEDTLS_PK_RSA:"abc123":1 DTLS Handshake with serialization, tls1_2 @@ -354,27 +354,27 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-RSA-PSK-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ALG_NONE:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, non-opaque -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_NONE:PSA_ALG_NONE:0:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, PSA_ALG_ANY_HASH -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, PSA_ALG_SHA_384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, invalid alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, bad alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select DHE-RSA-WITH-AES-256-GCM-SHA384, opaque, bad usage -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_GCM_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-DHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDHE-RSA-WITH-AES-256-GCM-SHA384, non-opaque @@ -3115,7 +3115,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - App data payload: 70696e67 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 @@ -3126,7 +3126,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - App data payload: 706f6e67 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 @@ -3145,7 +3145,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 62 97 4e 1f 5a 62 92 a2 97 70 14 bd 1e 3d ea e6 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 @@ -3164,12 +3164,12 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # fc c4 9c 4b f2 e5 f0 a2 1c 00 47 c2 ab f3 32 54 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 -depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256 +depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:PSA_WANT_ALG_SHA_256:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ssl_tls13_derive_application_secrets:PSA_ALG_SHA_256:"e2d32d4ed66dd37897a0e80c84107503ce58bf8aad4cb55a5002d77ecb890ece":"b0aeffc46a2cfe33114e6fd7d51f9f04b1ca3c497dab08934a774a9d9ad7dbf3":"2abbf2b8e381d23dbebe1dd2a7d16a8bf484cb4950d23fb7fb7fa8547062d9a1":"cc21f1bf8feb7dd5fa505bd9c4b468a9984d554a993dc49e6d285598fb672691":"3fd93d4ffddc98e64b14dd107aedf8ee4add23f4510f58a4592d0b201bee56b4" SSL TLS 1.3 Key schedule: Resumption secrets derivation helper From 84f30f2eb022aa35084ff03368c7d14770af114b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 09:24:23 -0400 Subject: [PATCH 0356/1574] Add missing SHA256 dependency Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index d169160de..464ae06c5 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; From 8e44139ca0e4328db54f39bfa0cd98b81492ce4c Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 09:24:51 -0400 Subject: [PATCH 0357/1574] Add missing CURVE25519 requirements to TLS 1.3 tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index c344b2182..f2497ec6b 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -2949,26 +2949,26 @@ ssl_decrypt_non_etm_cbc:MBEDTLS_CIPHER_CAMELLIA_128_CBC:MBEDTLS_MD_SHA384:0:255 SSL TLS 1.3 Key schedule: Secret evolution #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Initial secret to Early Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a" SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Server handshake traffic secret -> Server traffic key # HKDF-Expand-Label(server_handshake_secret, "key", "", 16) -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_hkdf_expand_label:PSA_ALG_SHA_256:"a2067265e7f0652a923d5d72ab0467c46132eeb968b6a32d311c805868548814":tls13_label_key:"":16:"844780a7acad9f980fa25c114e43402a" SSL TLS 1.3 Key schedule: HKDF Expand Label #2 @@ -3181,7 +3181,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE From e64bd43495fe9a5cbc4d6e94d37e6b52374daba7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 10:51:10 -0400 Subject: [PATCH 0358/1574] Add missing ECP and ECDH dependencies in ssl test suites Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 67 +++++++++++++++++++++----------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index f2497ec6b..eab6c862a 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -111,53 +111,63 @@ Test moving clients handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving clients handshake to state: SERVER_HELLO +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 Test moving clients handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving clients handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_REQUEST +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving clients handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving clients handshake to state: CLIENT_CERTIFICATE +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving clients handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_VERIFY +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving clients handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: CLIENT_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving clients handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: SERVER_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving clients handshake to state: FLUSH_BUFFERS +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving clients handshake to state: HANDSHAKE_WRAPUP +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving clients handshake to state: HANDSHAKE_OVER +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_OVER:1 Test moving servers handshake to state: HELLO_REQUEST @@ -167,54 +177,63 @@ Test moving servers handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving servers handshake to state: SERVER_HELLO +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 Test moving servers handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving servers handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_REQUEST +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving servers handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving servers handshake to state: CLIENT_CERTIFICATE +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving servers handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_VERIFY +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving servers handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: CLIENT_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving servers handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: SERVER_FINISHED +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving servers handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving servers handshake to state: HANDSHAKE_WRAPUP +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving servers handshake to state: HANDSHAKE_OVER +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_OVER:1 Negative test moving clients ssl to state: VERIFY_REQUEST_SENT @@ -314,7 +333,7 @@ depends_on:MBEDTLS_SSL_PROTO_DTLS handshake_fragmentation:MBEDTLS_SSL_MAX_FRAG_LEN_1024:0:1 Handshake min/max version check, all -> 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C handshake_version:0:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, select RSA-WITH-AES-256-CBC-SHA256, non-opaque @@ -458,41 +477,43 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Sending app data via TLS, MFL=512 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:400:512:1:1 Sending app data via TLS, MFL=512 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:513:1536:2:3 Sending app data via TLS, MFL=1024 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1000:1024:1:1 Sending app data via TLS, MFL=1024 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1025:5120:2:5 Sending app data via TLS, MFL=2048 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2000:2048:1:1 Sending app data via TLS, MFL=2048 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2049:8192:2:4 Sending app data via TLS, MFL=4096 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4000:4096:1:1 Sending app data via TLS, MFL=4096 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4097:12288:2:3 Sending app data via TLS without MFL and without fragmentation +depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16001:16384:1:1 Sending app data via TLS without MFL and with fragmentation +depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16385:100000:2:7 Sending app data via DTLS, MFL=512 without fragmentation @@ -2955,13 +2976,13 @@ ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce21 SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 @@ -3181,7 +3202,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE From c19fb08dd37a58bb8a2dc99359d4a75a3abf60d4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 3 Oct 2022 10:52:24 -0400 Subject: [PATCH 0359/1574] Add missing ECDH dependency in tls 1.3 client Signed-off-by: Andrzej Kurek --- library/ssl_tls13_client.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2b59b4aae..8510d8f3e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -379,6 +379,7 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { +#if defined(MBEDTLS_ECDH_C) const mbedtls_ecp_curve_info *curve_info = NULL; const unsigned char *p = buf; int selected_group; @@ -435,6 +436,12 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, ssl->handshake->offered_group_id = selected_group; return( 0 ); +#else + (void) ssl; + (void) buf; + (void) end; + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); +#endif } /* From e05b17fb85109b9eb516d8a3a72a0e643f404fd1 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 28 Sep 2022 03:17:56 -0400 Subject: [PATCH 0360/1574] Update depends.py Remove old and add new dependencies. Introduce a way to handle non-trivial problems stemming from exclusive group testing. Exclude SHA256 and SHA512, as these are tested in SHA224 and SHA384 jobs, respectively. Change config.h to mbedtls_config.h). Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 91 ++++++++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 22 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 11af322fd..b2a2f27b2 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -68,7 +68,7 @@ cmd is a list of strings: a command name and its arguments.""" log_line(' '.join(cmd), prefix='+') def backup_config(options): - """Back up the library configuration file (config.h). + """Back up the library configuration file (mbedtls_config.h). If the backup file already exists, it is presumed to be the desired backup, so don't make another backup.""" if os.path.exists(options.config_backup): @@ -78,7 +78,7 @@ so don't make another backup.""" shutil.copy(options.config, options.config_backup) def restore_config(options): - """Restore the library configuration file (config.h). + """Restore the library configuration file (mbedtls_config.h). Remove the backup file if it was saved earlier.""" if options.own_backup: shutil.move(options.config_backup, options.config) @@ -88,7 +88,7 @@ Remove the backup file if it was saved earlier.""" def run_config_pl(options, args): """Run scripts/config.pl with the specified arguments.""" cmd = ['scripts/config.pl'] - if options.config != 'include/mbedtls/config.h': + if options.config != 'include/mbedtls/mbedtls_config.h': cmd += ['--file', options.config] cmd += args log_command(cmd) @@ -123,7 +123,7 @@ If what is False, announce that the job has failed.''' log_line('starting ' + self.name) def set_reference_config(self, options): - """Change the library configuration file (config.h) to the reference state. + """Change the library configuration file (mbedtls_config.h) to the reference state. The reference state is the one from which the tested configurations are derived.""" # Turn off memory management options that are not relevant to @@ -181,22 +181,19 @@ ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', # to extract automatically. reverse_dependencies = { 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', - 'MBEDTLS_NIST_KW_C', - 'MBEDTLS_PSA_CRYPTO_STORAGE_C', - 'MBEDTLS_PSA_CRYPTO_STORAGE_FILE_C', - 'MBEDTLS_PSA_CRYPTO_C'], + 'MBEDTLS_NIST_KW_C'], 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], - 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_ECDSA_C': ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED'], 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', 'MBEDTLS_ECJPAKE_C', - 'MBEDTLS_ECP_RESTARTABLE', - 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], @@ -208,13 +205,59 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', + 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', - 'MBEDTLS_ENTROPY_FORCE_SHA256'], - 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [], + 'MBEDTLS_ENTROPY_FORCE_SHA256', + 'MBEDTLS_SHA224_C', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', + 'MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', + 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA224_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_ENTROPY_FORCE_SHA256', + 'MBEDTLS_SHA256_C', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA384_C': ['MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [] } +# If an option is tested in an exclusive test, alter the following defines. +# These are not neccesarily dependencies, but just minimal required changes +# if a given define is the only one enabled from an exclusive group. +exclusive_groups = { + 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], + 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], + 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], + 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], + 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], +} +def handle_exclusive_groups(config_settings, symbol): + """For every symbol tested in an exclusive group check if there are other +defines to be altered. """ + for dep in exclusive_groups.get(symbol, []): + unset = dep.startswith('!') + if unset: + dep=dep[1:] + config_settings[dep] = not unset + def turn_off_dependencies(config_settings): """For every option turned off config_settings, also turn off what depends on it. An option O is turned off if config_settings[O] is False.""" @@ -252,6 +295,8 @@ would match this regular expression.""" continue config_settings = base_config_settings.copy() config_settings[symbol] = not invert + if not invert: + handle_exclusive_groups(config_settings, symbol) turn_off_dependencies(config_settings) job = Job(description, config_settings, commands) self.jobs.append(job) @@ -285,7 +330,7 @@ class CipherInfo: class DomainData: """Collect data about the library.""" def collect_config_symbols(self, options): - """Read the list of settings from config.h. + """Read the list of settings from mbedtls_config.h. Return them in a generator.""" with open(options.config) as config_file: rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') @@ -295,7 +340,7 @@ Return them in a generator.""" yield m.group(1) def config_symbols_matching(self, regexp): - """List the config.h settings matching regexp.""" + """List the mbedtls_config.h settings matching regexp.""" return [symbol for symbol in self.all_config_symbols if re.match(regexp, symbol)] @@ -312,7 +357,8 @@ Return them in a generator.""" key_exchange_symbols = self.config_symbols_matching(r'MBEDTLS_KEY_EXCHANGE_\w+_ENABLED\Z') # Find cipher IDs (block permutations and stream ciphers --- chaining # and padding modes are exercised separately) information by parsing - # cipher.h, as the information is not readily available in config.h. + # cipher.h, as the information is not readily available in mbedtls_config.h. + cipher_info = CipherInfo(options) # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') @@ -328,9 +374,10 @@ Return them in a generator.""" # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), # Hash algorithms. Exclude configurations with only one - # hash which is obsolete. Run the test suites. + # hash which is obsolete. Run the test suites. Exclude + # SHA512 and SHA256, as these are tested with SHA384 and SHA224. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)|!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, @@ -415,7 +462,7 @@ if __name__ == '__main__': choices=['always', 'auto', 'never'], default='auto') parser.add_argument('-c', '--config', metavar='FILE', help='Configuration file to modify', - default='include/mbedtls/config.h') + default='include/mbedtls/mbedtls_config.h') parser.add_argument('-C', '--directory', metavar='DIR', help='Change to this directory before anything else', default='.') @@ -435,7 +482,7 @@ if __name__ == '__main__': help='Command to run instead of make (e.g. gmake)', action='store', default='make') parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all)', + help='The domain(s) to test (default: all). This can be also a list of jobs to run.', default=True) options = parser.parse_args() os.chdir(options.directory) From 3cca0c8e68a6d548288c210fbeae121582ffc766 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 10:38:28 -0400 Subject: [PATCH 0361/1574] Add an all.sh component running depends.pl Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f1b2f0e29..93dbfb968 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,6 +1777,11 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } +component_test_depends () { + msg "test/build: depends.py (gcc)" # ~ 15 min + tests/scripts/depends.py +} + component_test_make_cxx () { msg "build: Unix make, full, gcc + g++" scripts/config.py full From 0e8b2d74f0fa7c30ce30ceedd6cadfba25b4cb44 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 11:14:59 -0400 Subject: [PATCH 0362/1574] Fix python formatting and indentation Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index b2a2f27b2..79a43dd6c 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -233,17 +233,17 @@ exclusive_groups = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + '!MBEDTLS_ECDSA_DETERMINISTIC', + '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '!MBEDTLS_ECJPAKE_C', + '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], @@ -255,7 +255,7 @@ defines to be altered. """ for dep in exclusive_groups.get(symbol, []): unset = dep.startswith('!') if unset: - dep=dep[1:] + dep = dep[1:] config_settings[dep] = not unset def turn_off_dependencies(config_settings): From 3322c220870ac6e65a043e5de8ac7cf0f8ebf104 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 15:02:41 -0400 Subject: [PATCH 0363/1574] Improve depends.py structrue Apply most improvements suggested by pylint. Use config.py instead of config.pl. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 105 +++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 53 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 79a43dd6c..4c47778b0 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -28,7 +28,7 @@ import subprocess import sys import traceback -class Colors: +class Colors: # pylint: disable=too-few-public-methods """Minimalistic support for colored output. Each field of an object of this class is either None if colored output is not possible or not desired, or a pair of strings (start, stop) such @@ -39,6 +39,7 @@ stop switches the text color back to the default.""" bold_red = None bold_green = None def __init__(self, options=None): + """Initialize color profile according to passed options.""" if not options or options.color in ['no', 'never']: want_color = False elif options.color in ['yes', 'always']: @@ -56,7 +57,7 @@ NO_COLORS = Colors(None) def log_line(text, prefix='depends.py:', suffix='', color=None): """Print a status message.""" - if color != None: + if color is not None: prefix = color[0] + prefix suffix = suffix + color[1] sys.stderr.write(prefix + ' ' + text + suffix + '\n') @@ -86,14 +87,35 @@ Remove the backup file if it was saved earlier.""" shutil.copy(options.config_backup, options.config) def run_config_pl(options, args): - """Run scripts/config.pl with the specified arguments.""" - cmd = ['scripts/config.pl'] + """Run scripts/config.py with the specified arguments.""" + cmd = ['scripts/config.py'] if options.config != 'include/mbedtls/mbedtls_config.h': cmd += ['--file', options.config] cmd += args log_command(cmd) subprocess.check_call(cmd) +def set_reference_config(options): + """Change the library configuration file (mbedtls_config.h) to the reference state. +The reference state is the one from which the tested configurations are +derived.""" + # Turn off memory management options that are not relevant to + # the tests and slow them down. + run_config_pl(options, ['full']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + +def collect_config_symbols(options): + """Read the list of settings from mbedtls_config.h. +Return them in a generator.""" + with open(options.config, encoding="utf-8") as config_file: + rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') + for line in config_file: + m = re.match(rx, line) + if m: + yield m.group(1) + class Job: """A job builds the library in a specific configuration and runs some tests.""" def __init__(self, name, config_settings, commands): @@ -122,21 +144,10 @@ If what is False, announce that the job has failed.''' else: log_line('starting ' + self.name) - def set_reference_config(self, options): - """Change the library configuration file (mbedtls_config.h) to the reference state. - The reference state is the one from which the tested configurations are - derived.""" - # Turn off memory management options that are not relevant to - # the tests and slow them down. - run_config_pl(options, ['full']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) - def configure(self, options): '''Set library configuration options as required for the job. config_file_name indicates which file to modify.''' - self.set_reference_config(options) + set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: args = ['set', key] @@ -267,11 +278,7 @@ An option O is turned off if config_settings[O] is False.""" for dep in reverse_dependencies.get(key, []): config_settings[dep] = False -class Domain: - """A domain is a set of jobs that all relate to a particular configuration aspect.""" - pass - -class ExclusiveDomain(Domain): +class ExclusiveDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset, and a test job with this symbol @@ -301,7 +308,7 @@ would match this regular expression.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class ComplementaryDomain: +class ComplementaryDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" @@ -317,28 +324,18 @@ Each job runs the specified commands.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class CipherInfo: +class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" - def __init__(self, options): + def __init__(self): self.base_symbols = set() - with open('include/mbedtls/cipher.h') as fh: + with open('include/mbedtls/cipher.h', encoding="utf-8") as fh: for line in fh: m = re.match(r' *MBEDTLS_CIPHER_ID_(\w+),', line) if m and m.group(1) not in ['NONE', 'NULL', '3DES']: self.base_symbols.add('MBEDTLS_' + m.group(1) + '_C') class DomainData: - """Collect data about the library.""" - def collect_config_symbols(self, options): - """Read the list of settings from mbedtls_config.h. -Return them in a generator.""" - with open(options.config) as config_file: - rx = re.compile(r'\s*(?://\s*)?#define\s+(\w+)\s*(?:$|/[/*])') - for line in config_file: - m = re.match(rx, line) - if m: - yield m.group(1) - + """A container for domains and jobs, used to structurize testing.""" def config_symbols_matching(self, regexp): """List the mbedtls_config.h settings matching regexp.""" return [symbol for symbol in self.all_config_symbols @@ -348,7 +345,7 @@ Return them in a generator.""" """Gather data about the library and establish a list of domains to test.""" build_command = [options.make_command, 'CFLAGS=-Werror'] build_and_test = [build_command, [options.make_command, 'test']] - self.all_config_symbols = set(self.collect_config_symbols(options)) + self.all_config_symbols = set(collect_config_symbols(options)) # Find hash modules by name. hash_symbols = self.config_symbols_matching(r'MBEDTLS_(MD|RIPEMD|SHA)[0-9]+_C\Z') # Find elliptic curve enabling macros by name. @@ -359,7 +356,7 @@ Return them in a generator.""" # and padding modes are exercised separately) information by parsing # cipher.h, as the information is not readily available in mbedtls_config.h. - cipher_info = CipherInfo(options) + cipher_info = CipherInfo() # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') cipher_padding_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_PADDING_\w+\Z') @@ -377,7 +374,8 @@ Return them in a generator.""" # hash which is obsolete. Run the test suites. Exclude # SHA512 and SHA256, as these are tested with SHA384 and SHA224. 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)|!MBEDTLS_(SHA256_|SHA512_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)\ + |!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, @@ -413,7 +411,7 @@ def run(options, job, colors=NO_COLORS): job.announce(colors, success) return success -def main(options, domain_data): +def run_tests(options, domain_data): """Run the desired jobs. domain_data should be a DomainData instance that describes the available domains and jobs. @@ -453,8 +451,7 @@ Run the jobs listed in options.domains.""" else: return True - -if __name__ == '__main__': +def main(): try: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('--color', metavar='WHEN', @@ -482,22 +479,24 @@ if __name__ == '__main__': help='Command to run instead of make (e.g. gmake)', action='store', default='make') parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all). This can be also a list of jobs to run.', + help='The domain(s) to test (default: all). This can \ + be also a list of jobs to run.', default=True) options = parser.parse_args() os.chdir(options.directory) domain_data = DomainData(options) - if options.domains == True: + if options.domains is True: options.domains = sorted(domain_data.domains.keys()) if options.list: - for what in options.list: - for key in sorted(getattr(domain_data, what).keys()): - print(key) - exit(0) + for arg in options.list: + for domain_name in sorted(getattr(domain_data, arg).keys()): + print(domain_name) + sys.exit(0) else: - sys.exit(0 if main(options, domain_data) else 1) - except SystemExit: - raise - except: + sys.exit(0 if run_tests(options, domain_data) else 1) + except Exception: # pylint: disable=broad-except traceback.print_exc() - exit(3) + sys.exit(3) + +if __name__ == '__main__': + main() From 202932f521372a78da629d552ccab3758bcd1761 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 16:22:22 -0400 Subject: [PATCH 0364/1574] Use upper case for constants in depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 4c47778b0..feb88f243 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -180,17 +180,17 @@ and subsequent commands are tests that cannot run if the build failed).''' # SSL/TLS versions up to 1.1 and corresponding options. These require # both MD5 and SHA-1. -ssl_pre_1_2_dependencies = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', +SSL_PRE_1_2_DEPENDENCIES = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', 'MBEDTLS_SSL_PROTO_SSL3', 'MBEDTLS_SSL_PROTO_TLS1', 'MBEDTLS_SSL_PROTO_TLS1_1'] # If the configuration option A requires B, make sure that -# B in reverse_dependencies[A]. +# B in REVERSE_DEPENDENCIES[A]. # All the information here should be contained in check_config.h. This # file includes a copy because it changes rarely and it would be a pain # to extract automatically. -reverse_dependencies = { +REVERSE_DEPENDENCIES = { 'MBEDTLS_AES_C': ['MBEDTLS_CTR_DRBG_C', 'MBEDTLS_NIST_KW_C'], 'MBEDTLS_CHACHA20_C': ['MBEDTLS_CHACHAPOLY_C'], @@ -206,7 +206,7 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_MD5_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_MD5_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', @@ -218,7 +218,7 @@ reverse_dependencies = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], - 'MBEDTLS_SHA1_C': ssl_pre_1_2_dependencies, + 'MBEDTLS_SHA1_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', @@ -240,7 +240,7 @@ reverse_dependencies = { # If an option is tested in an exclusive test, alter the following defines. # These are not neccesarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. -exclusive_groups = { +EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', @@ -263,7 +263,7 @@ exclusive_groups = { def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other defines to be altered. """ - for dep in exclusive_groups.get(symbol, []): + for dep in EXCLUSIVE_GROUPS.get(symbol, []): unset = dep.startswith('!') if unset: dep = dep[1:] @@ -275,7 +275,7 @@ An option O is turned off if config_settings[O] is False.""" for key, value in sorted(config_settings.items()): if value is not False: continue - for dep in reverse_dependencies.get(key, []): + for dep in REVERSE_DEPENDENCIES.get(key, []): config_settings[dep] = False class ExclusiveDomain: # pylint: disable=too-few-public-methods From fcbd2acbc2faf7e3e651551c2ea130bea15a4b58 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 5 Oct 2022 09:14:07 -0400 Subject: [PATCH 0365/1574] Split depends.py all.sh job into seven Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 93dbfb968..07adc1523 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,9 +1777,39 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } -component_test_depends () { - msg "test/build: depends.py (gcc)" # ~ 15 min - tests/scripts/depends.py +component_test_depends_py_cipher_id () { + msg "test/build: depends.py cipher_id (gcc)" + tests/scripts/depends.py cipher_id +} + +component_test_depends_py_cipher_chaining () { + msg "test/build: depends.py cipher_chaining (gcc)" + tests/scripts/depends.py cipher_chaining +} + +component_test_depends_py_cipher_padding () { + msg "test/build: depends.py cipher_padding (gcc)" + tests/scripts/depends.py cipher_padding +} + +component_test_depends_py_curves () { + msg "test/build: depends.py curves (gcc)" + tests/scripts/depends.py curves +} + +component_test_depends_py_hashes () { + msg "test/build: depends.py hashes (gcc)" + tests/scripts/depends.py hashes +} + +component_test_depends_py_kex () { + msg "test/build: depends.py kex (gcc)" + tests/scripts/depends.py kex +} + +component_test_depends_py_pkalgs () { + msg "test/build: depends.py pkalgs (gcc)" + tests/scripts/depends.py pkalgs } component_test_make_cxx () { From fe469496862789a9eb3b20ff15a9021b06671a21 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 6 Oct 2022 16:57:38 -0400 Subject: [PATCH 0366/1574] depends.py: disable part of the test jobs Disable exclusive jobs that run with a single config disabled. A lot more bugs should be found by running jobs with only one config of a family enabled. This will also lessen the burden on the CI. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index feb88f243..859cad14a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -281,32 +281,28 @@ An option O is turned off if config_settings[O] is False.""" class ExclusiveDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job -with this symbol set and the others unset, and a test job with this symbol -unset and the others set.""" +with this symbol set and the others unset.""" def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. -The domain contains two sets of jobs: jobs that enable one of the elements -of symbols and disable the others, and jobs that disable one of the elements -of symbols and enable the others. +The domain contains a set of jobs that enable one of the elements +of symbols and disable the others. Each job runs the specified commands. If exclude is a regular expression, skip generated jobs whose description would match this regular expression.""" self.jobs = [] - for invert in [False, True]: - base_config_settings = {} - for symbol in symbols: - base_config_settings[symbol] = invert - for symbol in symbols: - description = '!' + symbol if invert else symbol - if exclude and re.match(exclude, description): - continue - config_settings = base_config_settings.copy() - config_settings[symbol] = not invert - if not invert: - handle_exclusive_groups(config_settings, symbol) - turn_off_dependencies(config_settings) - job = Job(description, config_settings, commands) - self.jobs.append(job) + base_config_settings = {} + for symbol in symbols: + base_config_settings[symbol] = False + for symbol in symbols: + description = symbol + if exclude and re.match(exclude, description): + continue + config_settings = base_config_settings.copy() + config_settings[symbol] = True + handle_exclusive_groups(config_settings, symbol) + turn_off_dependencies(config_settings) + job = Job(description, config_settings, commands) + self.jobs.append(job) class ComplementaryDomain: # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. From 228b12ce54cbe9994fb255bb176869510aec4db3 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 6 Oct 2022 18:52:44 -0400 Subject: [PATCH 0367/1574] Rework depends.py to run more tests with hashes The test coverage reduction introduced in dc25cee lowered the coverage of hash tests due to intertwining dependencies. This commit introduces a new class for building a domain using both the complementary and exclusive classes. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 859cad14a..2d7750f77 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -278,7 +278,13 @@ An option O is turned off if config_settings[O] is False.""" for dep in REVERSE_DEPENDENCIES.get(key, []): config_settings[dep] = False -class ExclusiveDomain: # pylint: disable=too-few-public-methods +class BaseDomain: # pylint: disable=too-few-public-methods, unused-argument + """A base class for all domains.""" + def __init__(self, symbols, commands, exclude): + """Initialize the jobs container""" + self.jobs = [] + +class ExclusiveDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of conceptually-equivalent settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol set and the others unset.""" @@ -289,7 +295,7 @@ of symbols and disable the others. Each job runs the specified commands. If exclude is a regular expression, skip generated jobs whose description would match this regular expression.""" - self.jobs = [] + super().__init__(symbols, commands, exclude) base_config_settings = {} for symbol in symbols: base_config_settings[symbol] = False @@ -304,22 +310,29 @@ would match this regular expression.""" job = Job(description, config_settings, commands) self.jobs.append(job) -class ComplementaryDomain: # pylint: disable=too-few-public-methods +class ComplementaryDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job with this symbol unset.""" - def __init__(self, symbols, commands): + def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. Each job in the domain disables one of the specified symbols. Each job runs the specified commands.""" - self.jobs = [] + super().__init__(symbols, commands, exclude) for symbol in symbols: description = '!' + symbol + if exclude and re.match(exclude, description): + continue config_settings = {symbol: False} turn_off_dependencies(config_settings) job = Job(description, config_settings, commands) self.jobs.append(job) +class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods + """A domain that contains both the ExclusiveDomain and BaseDomain tests""" + def __init__(self, symbols, commands, exclude=None): + super().__init__(symbols=symbols, commands=commands, exclude=exclude) + class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" def __init__(self): @@ -369,9 +382,9 @@ class DomainData: # Hash algorithms. Exclude configurations with only one # hash which is obsolete. Run the test suites. Exclude # SHA512 and SHA256, as these are tested with SHA384 and SHA224. - 'hashes': ExclusiveDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)\ - |!MBEDTLS_(SHA256_|SHA512_)'), + 'hashes': DualDomain(hash_symbols, build_and_test, + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)' \ + '|!MBEDTLS_(SHA256_|SHA512_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, From eabeb30c65d5f31856af46100ffe4c9fc2bd843b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 07:52:51 -0400 Subject: [PATCH 0368/1574] Fix SHA512 vs SHA384 dependencies When building SHA512 without SHA384, there are some code paths that resulted in unused variables or usage of undefined code. This commit fixes that. Signed-off-by: Andrzej Kurek --- library/ssl_cookie.c | 4 ++-- library/ssl_tls.c | 24 ++++++++++++++++++------ programs/fuzz/fuzz_dtlsserver.c | 10 +++++++--- tests/scripts/depends.py | 1 + 4 files changed, 28 insertions(+), 11 deletions(-) diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 190c0f066..3f9bf87b4 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -38,8 +38,8 @@ #include /* - * If DTLS is in use, then at least one of SHA-1, SHA-256, SHA-512 is - * available. Try SHA-256 first, 512 wastes resources + * If DTLS is in use, then at least one of SHA-1, SHA-256, SHA-384 is + * available. Try SHA-256 first, 384 wastes resources */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) #define COOKIE_MD MBEDTLS_MD_SHA224 diff --git a/library/ssl_tls.c b/library/ssl_tls.c index eee0dadac..4678f5386 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -604,6 +604,12 @@ static void ssl_update_checksum_start( mbedtls_ssl_context *ssl, mbedtls_sha512_update( &ssl->handshake->fin_sha384, buf, len ); #endif #endif +#if !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; + (void) buf; + (void) len; +#endif } #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -5165,6 +5171,10 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, goto exit; exit: +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; +#endif return( psa_ssl_status_to_mbedtls( status ) ); } #else /* MBEDTLS_USE_PSA_CRYPTO */ @@ -5437,6 +5447,8 @@ static psa_status_t setup_psa_key_derivation( psa_key_derivation_operation_t* de return( PSA_SUCCESS ); } +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5511,7 +5523,7 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, return( 0 ); } - +#endif #else /* MBEDTLS_USE_PSA_CRYPTO */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -5917,7 +5929,10 @@ int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md ) default: return( -1 ); } - +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; +#endif return( 0 ); } @@ -7436,8 +7451,6 @@ exit: * Helper to get TLS 1.2 PRF from ciphersuite * (Duplicates bits of logic from ssl_set_handshake_prfs().) */ -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) { const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = @@ -7457,10 +7470,9 @@ static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) (void) ciphersuite_info; #endif + return( NULL ); } -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || - MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c index 1aa757c37..17caab211 100644 --- a/programs/fuzz/fuzz_dtlsserver.c +++ b/programs/fuzz/fuzz_dtlsserver.c @@ -11,12 +11,14 @@ #include "mbedtls/ctr_drbg.h" #include "mbedtls/timing.h" #include "mbedtls/ssl_cookie.h" - +#include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ - defined(MBEDTLS_TIMING_C) + defined(MBEDTLS_TIMING_C) && \ + ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) const char *pers = "fuzz_dtlsserver"; const unsigned char client_ip[4] = {0x7F, 0, 0, 1}; static int initialized = 0; @@ -32,7 +34,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ - defined(MBEDTLS_TIMING_C) + defined(MBEDTLS_TIMING_C) && \ + ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) int ret; size_t len; mbedtls_ssl_context ssl; diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 2d7750f77..409d14413 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -243,6 +243,7 @@ REVERSE_DEPENDENCIES = { EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', '!MBEDTLS_ECDSA_DETERMINISTIC', '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', From 2f8ac287b61da83c0cb826a605fbb780f5e6f662 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 7 Oct 2022 16:07:58 -0400 Subject: [PATCH 0369/1574] Disable MBEDTLS_TEST_HOOKS in depends.py This option was increasing testing duration by about 40%. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 409d14413..6a1c171c9 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -105,6 +105,7 @@ derived.""" run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + run_config_pl(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. From 01af84a0ca90e94705c22be966c3197ba934b67a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 9 Oct 2022 05:29:44 -0400 Subject: [PATCH 0370/1574] depends.py: Add script documentation Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 57 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 6a1c171c9..9f37a3399 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -17,9 +17,53 @@ # # This file is part of Mbed TLS (https://tls.mbed.org) -"""Test Mbed TLS with a subset of algorithms. """ +Test Mbed TLS with a subset of algorithms. +This script can be divided into several steps: + +First, include/mbedtls/mbedtls_config.h or a different config file passed +in the arguments is parsed to extract any configuration options (collect_config_symbols). + +Then, test domains (groups of jobs, tests) are built based on predefined data +collected in the DomainData class. Here, each domain has five major traits: +- domain name, can be used to run only specific tests via commandline; +- configuration building method, described in detail below; +- list of symbols passed to the configuration building method; +- commands to be run on each job (only build, build and test, or any other custom); +- optional list of symbols to be excluded from testing. + +The configuration building method can be one of the three following: + +- ComplementaryDomain - build a job for each passed symbol by disabling a single + symbol and its reverse dependencies (defined in REVERSE_DEPENDENCIES); + +- ExclusiveDomain - build a job where, for each passed symbol, only this particular + one is defined and other symbols from the list are unset. For each job look for + any non-standard symbols to set/unset in EXCLUSIVE_GROUPS. These are usually not + direct dependencies, but rather non-trivial results of other configs missing. Then + look for any unset symbols and handle their reverse dependencies. + Examples of EXCLUSIVE_GROUPS usage: + - MBEDTLS_SHA224 job turns off all hashes except SHA224, however, when investigating + reverse dependencies, SHA256 is found to depend on SHA224, so it is disabled, + and then SHA224 is found to depend on SHA256, so it is also disabled. To handle + this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA224 test SHA256 + should also be enabled before processing reverse dependencies: + 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'] + - MBEDTLS_SHA512_C job turns off all hashes except SHA512. MBEDTLS_SSL_COOKIE_C + requires either SHA256 or SHA384 to work, so it also has to be disabled. + This is not a dependency on SHA512_C, but a result of an exclusive domain + config building method. Relevant field: + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + +- DualDomain - combination of the two above - both complementary and exclusive domain + job generation code will be run. Currently only used for hashes. + +Lastly, the collected jobs are executed and (optionally) tested, with +error reporting and coloring as configured in options. Each test starts with +a full config without a couple of slowing down or unnecessary options +(see set_reference_config), then the specific job config is derived. +""" import argparse import os import re @@ -239,7 +283,7 @@ REVERSE_DEPENDENCIES = { } # If an option is tested in an exclusive test, alter the following defines. -# These are not neccesarily dependencies, but just minimal required changes +# These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], @@ -464,7 +508,14 @@ Run the jobs listed in options.domains.""" def main(): try: - parser = argparse.ArgumentParser(description=__doc__) + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description= + "Test Mbed TLS with a subset of algorithms.\n\n" + "Example usage:\n" + r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA224_C""\n" + "./tests/scripts/depends.py MBEDTLS_AES_C hashes\n" + "./tests/scripts/depends.py cipher_id cipher_chaining\n") parser.add_argument('--color', metavar='WHEN', help='Colorize the output (always/auto/never)', choices=['always', 'auto', 'never'], default='auto') From 2d637c4cbbd4d72dc923a8d26e6b96db570003f4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 09:27:44 -0400 Subject: [PATCH 0371/1574] Fix unchecked allocation in test_suite_ssl Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 464ae06c5..c5ded5a71 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -873,9 +873,9 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - cert->ca_cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); - cert->cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); - cert->pkey = mbedtls_calloc( 1, sizeof(mbedtls_pk_context) ); + ASSERT_ALLOC( cert->ca_cert, sizeof(mbedtls_x509_crt) ); + ASSERT_ALLOC( cert->cert, sizeof(mbedtls_x509_crt) ); + ASSERT_ALLOC( cert->pkey, sizeof(mbedtls_pk_context) ); mbedtls_x509_crt_init( cert->ca_cert ); mbedtls_x509_crt_init( cert->cert ); From 6ee1e20d7fb1fb1c29c50b2b7f51f6e113a37133 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 10:17:25 -0400 Subject: [PATCH 0372/1574] Replace x509_CRT_PARSE_C with KEY_EXCHANGE_WITH_CERT_ENABLED SSL programs use certificates in an exchange, so it's more natural to have such dependency instead of just certificate parsing. Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_client2.c | 60 ++++++++++++++++---------------------- programs/ssl/ssl_server2.c | 45 ++++++++++++---------------- 2 files changed, 43 insertions(+), 62 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index caf9ac5cf..87c13c02a 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -120,7 +120,7 @@ int main( void ) #define GET_REQUEST "GET %s HTTP/1.0\r\nExtra-header: " #define GET_REQUEST_END "\r\n\r\n" -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_CONTEXT_CRT_CB \ " context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \ " to the SSL configuration of the SSL context.\n" \ @@ -129,8 +129,8 @@ int main( void ) " - 1: Use CRT callback bound to SSL context\n" #else #define USAGE_CONTEXT_CRT_CB "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -148,10 +148,10 @@ int main( void ) #define USAGE_IO \ " No file operations available (MBEDTLS_FS_IO not defined)\n" #endif /* MBEDTLS_FS_IO */ -#else /* MBEDTLS_X509_CRT_PARSE_C */ +#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #define USAGE_IO "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private key as if it were opaque\n" \ " default: 0 (disabled)\n" @@ -768,9 +768,6 @@ int main( int argc, char *argv[] ) psa_status_t status; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; -#endif rng_context_t rng; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; @@ -780,17 +777,16 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_TIMING_C) mbedtls_timing_delay_context timer; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; -#endif mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; mbedtls_pk_context pkey; + mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ char *p, *q; const int *list; #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -831,7 +827,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_config_init( &conf ); memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) ); rng_init( &rng ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &clicert ); mbedtls_pk_init( &pkey ); @@ -1031,7 +1027,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1709,7 +1705,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -1831,7 +1827,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key type: %s)\n", strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? mbedtls_pk_get_name( &pkey ) : "none" ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ /* * 2. Setup stuff @@ -1849,7 +1845,6 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. */ @@ -1864,7 +1859,6 @@ int main( int argc, char *argv[] ) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) @@ -2001,7 +1995,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -2022,7 +2016,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL && @@ -2110,7 +2104,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", @@ -2133,11 +2127,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ io_ctx.ssl = &ssl; io_ctx.net = &server_fd; @@ -2458,8 +2451,7 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2482,7 +2474,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2857,10 +2849,9 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3094,10 +3085,9 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3201,14 +3191,14 @@ exit: mbedtls_free( context_buf ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &clicert ); mbedtls_x509_crt_free( &cacert ); mbedtls_pk_free( &pkey ); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_destroy_key( key_slot ); #endif -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 0554d2cb1..c39871a6d 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -175,7 +175,7 @@ int main( void ) */ #define DFL_IO_BUF_LEN 200 -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -206,8 +206,8 @@ int main( void ) #endif /* MBEDTLS_FS_IO */ #else #define USAGE_IO "" -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private keys as if they were opaque\n" \ " default: 0 (disabled)\n" @@ -1444,10 +1444,6 @@ int main( int argc, char *argv[] ) mbedtls_ssl_cookie_ctx cookie_ctx; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; -#endif mbedtls_ssl_context ssl; mbedtls_ssl_config conf; #if defined(MBEDTLS_TIMING_C) @@ -1456,13 +1452,14 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_RENEGOTIATION) unsigned char renego_period[8] = { 0 }; #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt srvcert; mbedtls_pk_context pkey; mbedtls_x509_crt srvcert2; mbedtls_pk_context pkey2; + mbedtls_x509_crt_profile crt_profile_for_test = mbedtls_x509_crt_profile_default; #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ @@ -1471,7 +1468,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_context dhm; #endif @@ -1553,7 +1550,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); rng_init( &rng ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &srvcert ); mbedtls_pk_init( &pkey ); @@ -1782,7 +1779,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -2586,7 +2583,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -2794,7 +2791,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key types: %s, %s)\n", key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none", key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" ); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) if( opt.dhm_file != NULL ) @@ -2844,7 +2841,6 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. Hence we allow it here. A real-world server @@ -2856,7 +2852,6 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ if( opt.auth_mode != DFL_AUTH_MODE ) mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); @@ -2864,15 +2859,13 @@ int main( int argc, char *argv[] ) if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) -#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) */ if( opt.cert_req_dn_hint == 2 && key_cert_init2 ) mbedtls_ssl_conf_dn_hints( &conf, &srvcert2 ); #endif -#endif #if defined(MBEDTLS_SSL_PROTO_DTLS) if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX ) @@ -3109,7 +3102,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -3198,7 +3191,7 @@ int main( int argc, char *argv[] ) &ssl_async_keys ); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(SNI_OPTION) if( opt.sni != NULL ) @@ -3492,9 +3485,8 @@ reset: } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) @@ -3503,7 +3495,6 @@ reset: if( opt.cert_req_dn_hint == 3 && key_cert_init2 ) mbedtls_ssl_set_hs_dn_hints( &ssl, &srvcert2 ); #endif -#endif #endif mbedtls_printf( " ok\n" ); @@ -3552,7 +3543,7 @@ handshake: { mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) { char vrfy_buf[512]; @@ -3607,7 +3598,7 @@ handshake: } #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * 5. Verify the client certificate */ @@ -3636,7 +3627,7 @@ handshake: mbedtls_printf( "%s\n", crt_buf ); } #endif /* MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ if( opt.eap_tls != 0 ) { @@ -4330,7 +4321,7 @@ exit: mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); #endif -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &cacert ); mbedtls_x509_crt_free( &srvcert ); mbedtls_pk_free( &pkey ); From daf43fbe219bf1769e72702c4796b5de32497698 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 10:46:42 -0400 Subject: [PATCH 0373/1574] Move the location of MBEDTLS_ECP_C dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 84 +++++++++++++--------------- tests/suites/test_suite_ssl.function | 36 ++++++------ 2 files changed, 57 insertions(+), 63 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index eab6c862a..6b28a2fe9 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -111,63 +111,61 @@ Test moving clients handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving clients handshake to state: SERVER_HELLO -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 Test moving clients handshake to state: SERVER_CERTIFICATE -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving clients handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving clients handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving clients handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving clients handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving clients handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving clients handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving clients handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving clients handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving clients handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_OVER:1 Test moving servers handshake to state: HELLO_REQUEST @@ -177,63 +175,61 @@ Test moving servers handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving servers handshake to state: SERVER_HELLO -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 Test moving servers handshake to state: SERVER_CERTIFICATE -depends_on:MBEDTLS_ECP_C move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving servers handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving servers handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving servers handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving servers handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving servers handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving servers handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving servers handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving servers handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving servers handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_OVER:1 Negative test moving clients ssl to state: VERIFY_REQUEST_SENT @@ -333,7 +329,7 @@ depends_on:MBEDTLS_SSL_PROTO_DTLS handshake_fragmentation:MBEDTLS_SSL_MAX_FRAG_LEN_1024:0:1 Handshake min/max version check, all -> 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, select RSA-WITH-AES-256-CBC-SHA256, non-opaque @@ -477,43 +473,41 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Sending app data via TLS, MFL=512 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:400:512:1:1 Sending app data via TLS, MFL=512 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_512:513:1536:2:3 Sending app data via TLS, MFL=1024 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1000:1024:1:1 Sending app data via TLS, MFL=1024 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_1024:1025:5120:2:5 Sending app data via TLS, MFL=2048 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2000:2048:1:1 Sending app data via TLS, MFL=2048 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_2048:2049:8192:2:4 Sending app data via TLS, MFL=4096 without fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4000:4096:1:1 Sending app data via TLS, MFL=4096 with fragmentation -depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_ECP_C +depends_on:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_4096:4097:12288:2:3 Sending app data via TLS without MFL and without fragmentation -depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16001:16384:1:1 Sending app data via TLS without MFL and with fragmentation -depends_on:MBEDTLS_ECP_C app_data_tls:MBEDTLS_SSL_MAX_FRAG_LEN_NONE:16385:100000:2:7 Sending app data via DTLS, MFL=512 without fragmentation @@ -2976,13 +2970,13 @@ ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce21 SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 @@ -3543,11 +3537,11 @@ Sanity test cid functions cid_sanity: Raw key agreement: nominal -depends_on:MBEDTLS_SHA256_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA raw_key_agreement_fail:0 Raw key agreement: bad server key -depends_on:MBEDTLS_SHA256_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA raw_key_agreement_fail:1 Force a bad session id length diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index c5ded5a71..c12990329 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4543,7 +4543,7 @@ void ssl_tls13_create_psk_binder( int hash_alg, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void ssl_tls13_record_protection( int ciphersuite, int endpoint, int ctr, @@ -4643,7 +4643,7 @@ void ssl_tls13_record_protection( int ciphersuite, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_ECP_C */ void ssl_tls13_key_evolution( int hash_alg, data_t *secret, data_t *input, @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SHA256_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; From e5a5cc194442d6757cc6da452ee8fbd5a614080e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:14:28 -0400 Subject: [PATCH 0374/1574] Remove the dependency of tls1_3 key evolution tests on curve25519 Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 5 ++++- tests/suites/test_suite_ssl.data | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 48de3d008..56967cd12 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,6 +38,9 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, +#define MBEDTLS_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ + PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE + struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { /* This seems to work in C, despite the string literal being one @@ -333,7 +336,7 @@ int mbedtls_ssl_tls13_evolve_secret( psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; size_t hlen, ilen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ MBEDTLS_ECP_MAX_BYTES ] = { 0 }; + unsigned char tmp_input [ MBEDTLS_EVOLVE_INPUT_SIZE ] = { 0 }; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 6b28a2fe9..1cc1c9821 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -2964,26 +2964,26 @@ ssl_decrypt_non_etm_cbc:MBEDTLS_CIPHER_CAMELLIA_128_CBC:MBEDTLS_MD_SHA384:0:255 SSL TLS 1.3 Key schedule: Secret evolution #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Initial secret to Early Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"":"":"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a" SSL TLS 1.3 Key schedule: Secret evolution #2 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Early secret to Handshake Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"33ad0a1c607ec03b09e6cd9893680ce210adf300aa1f2660e1b22e10f170f92a":"df4a291baa1eb7cfa6934b29b474baad2697e29f1f920dcc77c8a0a088447624":"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a" SSL TLS 1.3 Key schedule: Secret evolution #3 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Handshake secret to Master Secret -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_key_evolution:PSA_ALG_SHA_256:"fb9fc80689b3a5d02c33243bf69a1b1b20705588a794304a6e7120155edf149a":"":"7f2882bb9b9a46265941653e9c2f19067118151e21d12e57a7b6aca1f8150c8d" SSL TLS 1.3 Key schedule: HKDF Expand Label #1 # Vector from TLS 1.3 Byte by Byte (https://tls13.ulfheim.net/) # Server handshake traffic secret -> Server traffic key # HKDF-Expand-Label(server_handshake_secret, "key", "", 16) -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED +depends_on:PSA_WANT_ALG_SHA_256 ssl_tls13_hkdf_expand_label:PSA_ALG_SHA_256:"a2067265e7f0652a923d5d72ab0467c46132eeb968b6a32d311c805868548814":tls13_label_key:"":16:"844780a7acad9f980fa25c114e43402a" SSL TLS 1.3 Key schedule: HKDF Expand Label #2 From 658442fe78738690195a6abf84e62230e8a1af3b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:28:41 -0400 Subject: [PATCH 0375/1574] Remove unnecessary ECP_C dependencies Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 2 +- tests/suites/test_suite_ssl.function | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 1cc1c9821..2b58e6005 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3196,7 +3196,7 @@ SSL TLS 1.3 Key schedule: PSK binder # Vector from RFC 8448 # For the resumption PSK, see Section 3, 'generate resumption secret "tls13 resumption"' # For all other data, see Section 4, 'construct a ClientHello handshake message:' -depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED:MBEDTLS_ECP_C +depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_ECP_DP_CURVE25519_ENABLED ssl_tls13_create_psk_binder:PSA_ALG_SHA_256:"4ecd0eb6ec3b4d87f5d6028f922ca4c5851a277fd41311c9e62d2c9492e1c4f3":MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION:"63224b2e4573f2d3454ca84b9d009a04f6be9e05711a8396473aefa01e924a14":"3add4fb2d8fdf822a0ca3cf7678ef5e88dae990141c5924d57bb6fa31b9e5f9d" SSL TLS_PRF MBEDTLS_SSL_TLS_PRF_NONE diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index c12990329..6664a79f9 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4643,7 +4643,7 @@ void ssl_tls13_record_protection( int ciphersuite, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ void ssl_tls13_key_evolution( int hash_alg, data_t *secret, data_t *input, @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_C:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; From 6454a90c6deed835586cf6f0178ee25e00f59976 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 12 Oct 2022 11:57:04 -0400 Subject: [PATCH 0376/1574] Remove pre-1_2 TLS dependencies from depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 9f37a3399..829e330ce 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -223,13 +223,6 @@ and subsequent commands are tests that cannot run if the build failed).''' built = True return success -# SSL/TLS versions up to 1.1 and corresponding options. These require -# both MD5 and SHA-1. -SSL_PRE_1_2_DEPENDENCIES = ['MBEDTLS_SSL_CBC_RECORD_SPLITTING', - 'MBEDTLS_SSL_PROTO_SSL3', - 'MBEDTLS_SSL_PROTO_TLS1', - 'MBEDTLS_SSL_PROTO_TLS1_1'] - # If the configuration option A requires B, make sure that # B in REVERSE_DEPENDENCIES[A]. # All the information here should be contained in check_config.h. This @@ -251,7 +244,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_MD5_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', @@ -263,7 +255,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], - 'MBEDTLS_SHA1_C': SSL_PRE_1_2_DEPENDENCIES, 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', From a2a96885015cb6f65f1f09468327dc5ea978b75e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 08:22:08 -0400 Subject: [PATCH 0377/1574] Fix the memory allocation in test_suite_ssl ASSERT_ALLOC calculates the size itself, and the parameter indicates number of elements. ``` mbedtls_calloc( sizeof( *( pointer ) ), ( length ) ); ``` Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 6664a79f9..cd356f563 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -873,9 +873,9 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, } cert = &( ep->cert ); - ASSERT_ALLOC( cert->ca_cert, sizeof(mbedtls_x509_crt) ); - ASSERT_ALLOC( cert->cert, sizeof(mbedtls_x509_crt) ); - ASSERT_ALLOC( cert->pkey, sizeof(mbedtls_pk_context) ); + ASSERT_ALLOC( cert->ca_cert, 1 ); + ASSERT_ALLOC( cert->cert, 1 ); + ASSERT_ALLOC( cert->pkey, 1 ); mbedtls_x509_crt_init( cert->ca_cert ); mbedtls_x509_crt_init( cert->cert ); From ecb630925fd348620c4e7510e094fd5330b66899 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:05:12 -0400 Subject: [PATCH 0378/1574] Fix constant name in ssl_tls13_keys Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 56967cd12..d22aab8de 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,8 +38,8 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define MBEDTLS_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ - PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE +#define TLS1_3_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ + PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { @@ -336,7 +336,7 @@ int mbedtls_ssl_tls13_evolve_secret( psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; size_t hlen, ilen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ MBEDTLS_EVOLVE_INPUT_SIZE ] = { 0 }; + unsigned char tmp_input [ TLS1_3_EVOLVE_INPUT_SIZE ] = { 0 }; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; From d0786f5f26a119907e7199c5f911e05e7b09f484 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:06:48 -0400 Subject: [PATCH 0379/1574] Revert one of the changes to ssl_server2 dependencies Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_server2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index c39871a6d..678311ccb 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2859,7 +2859,7 @@ int main( int argc, char *argv[] ) if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) */ @@ -3486,7 +3486,7 @@ reset: #endif #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) From e5535e3123766cc33bc3de0a1fbd87bfbecb39bd Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 09:07:47 -0400 Subject: [PATCH 0380/1574] Add MBEDTLS_DES_C exclusive group dependencies Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 829e330ce..a2c939a15 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -295,7 +295,8 @@ EXCLUSIVE_GROUPS = { 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], - 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C', '!MBEDTLS_SSL_TICKET_C', + '!MBEDTLS_SSL_CONTEXT_SERIALIZATION'], } def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other From b50754ae869169cb6f627ac39aca96774c56412e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 13 Oct 2022 14:19:01 -0400 Subject: [PATCH 0381/1574] Switch from x509_CRT_PARSE to KEY_EXCHANGE_WITH_CERT_ENABLED Signed-off-by: Andrzej Kurek --- programs/ssl/ssl_server2.c | 24 ++++++----- tests/suites/test_suite_ssl.function | 64 ++++++++++++++-------------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 678311ccb..1fd63d2d0 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1103,14 +1103,6 @@ typedef enum ASYNC_OP_SIGN, ASYNC_OP_DECRYPT, } ssl_async_operation_type_t; -/* Note that the enum above and the array below need to be kept in sync! - * `ssl_async_operation_names[op]` is the name of op for each value `op` - * of type `ssl_async_operation_type_t`. */ -static const char *const ssl_async_operation_names[] = -{ - "sign", - "decrypt", -}; typedef struct { @@ -1122,6 +1114,17 @@ typedef struct unsigned remaining_delay; } ssl_async_operation_context_t; +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) + +/* Note that ssl_async_operation_type_t and the array below need to be kept in sync! + * `ssl_async_operation_names[op]` is the name of op for each value `op` + * of type `ssl_async_operation_type_t`. */ +static const char *const ssl_async_operation_names[] = +{ + "sign", + "decrypt", +}; + static int ssl_async_start( mbedtls_ssl_context *ssl, mbedtls_x509_crt *cert, ssl_async_operation_type_t op_type, @@ -1274,6 +1277,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) mbedtls_printf( "Async cancel callback.\n" ); mbedtls_free( ctx ); } +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -1465,10 +1469,10 @@ int main( int argc, char *argv[] ) mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif int key_cert_init = 0, key_cert_init2 = 0; +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_context dhm; #endif @@ -1556,10 +1560,10 @@ int main( int argc, char *argv[] ) mbedtls_pk_init( &pkey ); mbedtls_x509_crt_init( &srvcert2 ); mbedtls_pk_init( &pkey2 ); +#endif #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) memset( &ssl_async_keys, 0, sizeof( ssl_async_keys ) ); #endif -#endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) mbedtls_dhm_init( &dhm ); #endif diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index cd356f563..cc7497818 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -31,7 +31,7 @@ typedef struct log_pattern size_t counter; } log_pattern; -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static int rng_seed = 0xBEEF; static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) { @@ -103,7 +103,7 @@ typedef struct handshake_test_options void init_handshake_options( handshake_test_options *opts ) { -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) srand( rng_seed ); rng_seed += 0xD0; #endif @@ -790,7 +790,7 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) return msg_len; } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * Structure with endpoint's certificates for SSL communication tests. @@ -1178,7 +1178,7 @@ int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, return ( max_steps >= 0 ) ? ret : -1; } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ /* * Write application data. Increase write counter if necessary. @@ -1750,7 +1750,7 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, memset( session->id, 66, session->id_len ); memset( session->master, 17, sizeof( session->master ) ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_FS_IO) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) if( crt_file != NULL && strlen( crt_file ) != 0 ) { mbedtls_x509_crt tmp_crt; @@ -1801,9 +1801,9 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, mbedtls_x509_crt_free( &tmp_crt ); } -#else /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_FS_IO */ +#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ (void) crt_file; -#endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_FS_IO */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ session->verify_result = 0xdeadbeef; #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) @@ -2029,7 +2029,7 @@ int exchange_data( mbedtls_ssl_context *ssl_1, ssl_2, 256, 1 ); } -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_version, const mbedtls_ssl_context *ssl ) { @@ -2066,10 +2066,10 @@ static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_v exit: return( 0 ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) void perform_handshake( handshake_test_options *options ) { /* forced_ciphersuite needs to last until the end of the handshake */ @@ -2467,7 +2467,7 @@ exit: #endif USE_PSA_DONE( ); } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_TEST_HOOKS) /* @@ -3685,7 +3685,7 @@ void ssl_dtls_replay( data_t * prevs, data_t * new, int ret ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ void ssl_set_hostname_twice( char *hostname0, char *hostname1 ) { mbedtls_ssl_context ssl; @@ -4752,7 +4752,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, TEST_ASSERT( memcmp( original.master, restored.master, sizeof( original.master ) ) == 0 ); -#if defined(MBEDTLS_X509_CRT_PARSE_C) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) TEST_ASSERT( ( original.peer_cert == NULL ) == ( restored.peer_cert == NULL ) ); @@ -4778,7 +4778,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, original.peer_cert_digest_len ) == 0 ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ TEST_ASSERT( original.verify_result == restored.verify_result ); #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; @@ -6086,7 +6086,7 @@ exit: USE_PSA_DONE( ); } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ void tls13_server_certificate_msg_invalid_vector_len( ) { int ret = -1; From a0cb4fa302cf5a3253027bbfebfcec4ba1c0a2c9 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 07:06:43 -0400 Subject: [PATCH 0382/1574] Improve depends.py readability Switch from SHA224 & SHA384 testing to SHA256 and SHA512. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index a2c939a15..48e2f2b70 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -143,8 +143,7 @@ def set_reference_config(options): """Change the library configuration file (mbedtls_config.h) to the reference state. The reference state is the one from which the tested configurations are derived.""" - # Turn off memory management options that are not relevant to - # the tests and slow them down. + # Turn off options that are not relevant to the tests and slow them down. run_config_pl(options, ['full']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) @@ -190,8 +189,7 @@ If what is False, announce that the job has failed.''' log_line('starting ' + self.name) def configure(self, options): - '''Set library configuration options as required for the job. -config_file_name indicates which file to modify.''' + '''Set library configuration options as required for the job.''' set_reference_config(options) for key, value in sorted(self.config_settings.items()): if value is True: @@ -277,7 +275,7 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'], + 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', @@ -351,7 +349,9 @@ would match this regular expression.""" class ComplementaryDomain(BaseDomain): # pylint: disable=too-few-public-methods """A domain consisting of a set of loosely-related settings. Establish a list of configuration symbols. For each symbol, run a test job -with this symbol unset.""" +with this symbol unset. +If exclude is a regular expression, skip generated jobs whose description +would match this regular expression.""" def __init__(self, symbols, commands, exclude=None): """Build a domain for the specified list of configuration symbols. Each job in the domain disables one of the specified symbols. @@ -367,9 +367,12 @@ Each job runs the specified commands.""" self.jobs.append(job) class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods - """A domain that contains both the ExclusiveDomain and BaseDomain tests""" + """A domain that contains both the ExclusiveDomain and BaseDomain tests. +Both parent class __init__ calls are performed in any order and +each call adds respective jobs. The job array initialization is done once in +BaseDomain, before the parent __init__ calls.""" def __init__(self, symbols, commands, exclude=None): - super().__init__(symbols=symbols, commands=commands, exclude=exclude) + super().__init__(symbols, commands, exclude) class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" @@ -402,7 +405,6 @@ class DomainData: # Find cipher IDs (block permutations and stream ciphers --- chaining # and padding modes are exercised separately) information by parsing # cipher.h, as the information is not readily available in mbedtls_config.h. - cipher_info = CipherInfo() # Find block cipher chaining and padding mode enabling macros by name. cipher_chaining_symbols = self.config_symbols_matching(r'MBEDTLS_CIPHER_MODE_\w+\Z') @@ -417,12 +419,15 @@ class DomainData: build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), - # Hash algorithms. Exclude configurations with only one - # hash which is obsolete. Run the test suites. Exclude - # SHA512 and SHA256, as these are tested with SHA384 and SHA224. + # Hash algorithms. Exclude three groups: + # - Exclusive domain of MD, RIPEMD, SHA1 (obsolete); + # - Exclusive domain of SHA224 (tested with and depends on SHA256); + # - Complementary domain of SHA224 and SHA384 - tested with and depend + # on SHA256 and SHA512, respectively. 'hashes': DualDomain(hash_symbols, build_and_test, - exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_|SHA256_|SHA512_)' \ - '|!MBEDTLS_(SHA256_|SHA512_)'), + exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)' \ + '|MBEDTLS_SHA224_'\ + '|!MBEDTLS_(SHA224_|SHA384_)'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, From f4b18672ffe43a4ff3e048714905fc8883f70a07 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 07:57:00 -0400 Subject: [PATCH 0383/1574] depends.py: fix TLS 1.3 requirements Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 48e2f2b70..e1c8c13e2 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -257,8 +257,7 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', - 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', - 'MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], @@ -267,7 +266,6 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_SHA256_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], - 'MBEDTLS_SHA384_C': ['MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [] } @@ -277,7 +275,7 @@ REVERSE_DEPENDENCIES = { EXCLUSIVE_GROUPS = { 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C', '!MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', '!MBEDTLS_ECDSA_DETERMINISTIC', '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', @@ -368,11 +366,9 @@ Each job runs the specified commands.""" class DualDomain(ExclusiveDomain, ComplementaryDomain): # pylint: disable=too-few-public-methods """A domain that contains both the ExclusiveDomain and BaseDomain tests. -Both parent class __init__ calls are performed in any order and +Both parent class __init__ calls are performed in any order and each call adds respective jobs. The job array initialization is done once in BaseDomain, before the parent __init__ calls.""" - def __init__(self, symbols, commands, exclude=None): - super().__init__(symbols, commands, exclude) class CipherInfo: # pylint: disable=too-few-public-methods """Collect data about cipher.h.""" From 65b2ac1f1d4da9f7b7b36eda4bcdbdf8417bcf05 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 08:09:16 -0400 Subject: [PATCH 0384/1574] Change the way exclusive groups are defined in depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 48 +++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index e1c8c13e2..894857ff2 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -273,34 +273,36 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA256_C': ['MBEDTLS_SHA224_C'], - 'MBEDTLS_SHA384_C': ['MBEDTLS_SHA512_C'], - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C', '!MBEDTLS_SSL_PROTO_TLS1_3'], - 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['!MBEDTLS_ECDSA_C', - '!MBEDTLS_ECDSA_DETERMINISTIC', - '!MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - '!MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - '!MBEDTLS_ECJPAKE_C', - '!MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], - 'MBEDTLS_ARIA_C': ['!MBEDTLS_CMAC_C'], - 'MBEDTLS_CAMELLIA_C': ['!MBEDTLS_CMAC_C'], - 'MBEDTLS_CHACHA20_C': ['!MBEDTLS_CMAC_C', '!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C'], - 'MBEDTLS_DES_C': ['!MBEDTLS_CCM_C', '!MBEDTLS_GCM_C', '!MBEDTLS_SSL_TICKET_C', - '!MBEDTLS_SSL_CONTEXT_SERIALIZATION'], + 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'], + 'MBEDTLS_SHA384_C': ['+MBEDTLS_SHA512_C'], + 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C', + '-MBEDTLS_SSL_PROTO_TLS1_3'], + 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['-MBEDTLS_ECDSA_C', + '-MBEDTLS_ECDSA_DETERMINISTIC', + '-MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '-MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '-MBEDTLS_ECJPAKE_C', + '-MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ECP_DP_CURVE25519_ENABLED': ['-MBEDTLS_ECDSA_C', + '-MBEDTLS_ECDSA_DETERMINISTIC', + '-MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', + '-MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', + '-MBEDTLS_ECJPAKE_C', + '-MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_ARIA_C': ['-MBEDTLS_CMAC_C'], + 'MBEDTLS_CAMELLIA_C': ['-MBEDTLS_CMAC_C'], + 'MBEDTLS_CHACHA20_C': ['-MBEDTLS_CMAC_C', '-MBEDTLS_CCM_C', '-MBEDTLS_GCM_C'], + 'MBEDTLS_DES_C': ['-MBEDTLS_CCM_C', + '-MBEDTLS_GCM_C', + '-MBEDTLS_SSL_TICKET_C', + '-MBEDTLS_SSL_CONTEXT_SERIALIZATION'], } def handle_exclusive_groups(config_settings, symbol): """For every symbol tested in an exclusive group check if there are other defines to be altered. """ for dep in EXCLUSIVE_GROUPS.get(symbol, []): - unset = dep.startswith('!') - if unset: - dep = dep[1:] + unset = dep.startswith('-') + dep = dep[1:] config_settings[dep] = not unset def turn_off_dependencies(config_settings): From c610e7402e0fe5a078c3057a4a59106be0d6c74e Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 14 Oct 2022 10:02:24 -0400 Subject: [PATCH 0385/1574] Formatting & unnecessary (void) fixes Signed-off-by: Andrzej Kurek --- library/ssl_tls13_keys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index d22aab8de..730e50c67 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,7 +38,7 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define TLS1_3_EVOLVE_INPUT_SIZE (PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE)? \ +#define TLS1_3_EVOLVE_INPUT_SIZE ( PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ) ? \ PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = From 22b959d9a56e2e72342d919d9a10fd14b6c4e2b7 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 16 Oct 2022 12:51:41 -0400 Subject: [PATCH 0386/1574] depends.py - add SHA256 dependency of LMS Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 894857ff2..9a5599d91 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -257,7 +257,9 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_ENTROPY_FORCE_SHA256', 'MBEDTLS_SHA224_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', - 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], + 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', + 'MBEDTLS_LMS_C', + 'MBEDTLS_LMS_PRIVATE'], 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], From a44c5bcdb7e9009deaa5c49d1a772c0eba6f9b3b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Sun, 16 Oct 2022 12:52:20 -0400 Subject: [PATCH 0387/1574] depends.py: rename config_pl usage to config_py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 9a5599d91..232e3fc77 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -130,7 +130,7 @@ Remove the backup file if it was saved earlier.""" else: shutil.copy(options.config_backup, options.config) -def run_config_pl(options, args): +def run_config_py(options, args): """Run scripts/config.py with the specified arguments.""" cmd = ['scripts/config.py'] if options.config != 'include/mbedtls/mbedtls_config.h': @@ -144,11 +144,11 @@ def set_reference_config(options): The reference state is the one from which the tested configurations are derived.""" # Turn off options that are not relevant to the tests and slow them down. - run_config_pl(options, ['full']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_pl(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) - run_config_pl(options, ['unset', 'MBEDTLS_TEST_HOOKS']) + run_config_py(options, ['full']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) + run_config_py(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) + run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. @@ -198,7 +198,7 @@ If what is False, announce that the job has failed.''' args = ['unset', key] else: args = ['set', key, value] - run_config_pl(options, args) + run_config_py(options, args) def test(self, options): '''Run the job's build and test commands. From b489f958b81af0e27fadba63c7106e6c05f2e9a1 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 06:51:10 -0400 Subject: [PATCH 0388/1574] depends.py: remove config options that are unset anyway Over the lifespan of this script these options have been removed from the "full" configuration. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 232e3fc77..c5d0bbade 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -145,9 +145,6 @@ The reference state is the one from which the tested configurations are derived.""" # Turn off options that are not relevant to the tests and slow them down. run_config_py(options, ['full']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BACKTRACE']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_BUFFER_ALLOC_C']) - run_config_py(options, ['unset', 'MBEDTLS_MEMORY_DEBUG']) run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) def collect_config_symbols(options): From 9387b7b34e9c10045ec49c2995e3dfa6ae04f02f Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 4 Oct 2022 08:06:59 -0400 Subject: [PATCH 0389/1574] Add a temporary solution to create a seedfile This caused problems if a config with SHA512 was compiled after a config without it and the seedfile did not contain enough data. Signed-off-by: Andrzej Kurek --- library/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/library/Makefile b/library/Makefile index 624773dc1..b1cdc7f0e 100644 --- a/library/Makefile +++ b/library/Makefile @@ -199,6 +199,7 @@ all: shared static endif static: libmbedcrypto.a libmbedx509.a libmbedtls.a + cd ../tests && echo "This is a seedfile that contains 64 bytes (65 on Windows)......" > seedfile shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT) From 629c412e812a9e9b0fdd425b68ec289320940039 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:34:40 -0400 Subject: [PATCH 0390/1574] depends.py documentation fixes Now that the format of exclusive groups has been changed, update the documentation using it too. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index c5d0bbade..b86192079 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# Copyright (c) 2018, Arm Limited, All Rights Reserved. +# Copyright (c) 2022, Arm Limited, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -27,7 +27,7 @@ in the arguments is parsed to extract any configuration options (collect_config_ Then, test domains (groups of jobs, tests) are built based on predefined data collected in the DomainData class. Here, each domain has five major traits: -- domain name, can be used to run only specific tests via commandline; +- domain name, can be used to run only specific tests via command-line; - configuration building method, described in detail below; - list of symbols passed to the configuration building method; - commands to be run on each job (only build, build and test, or any other custom); @@ -44,17 +44,17 @@ The configuration building method can be one of the three following: direct dependencies, but rather non-trivial results of other configs missing. Then look for any unset symbols and handle their reverse dependencies. Examples of EXCLUSIVE_GROUPS usage: - - MBEDTLS_SHA224 job turns off all hashes except SHA224, however, when investigating - reverse dependencies, SHA256 is found to depend on SHA224, so it is disabled, - and then SHA224 is found to depend on SHA256, so it is also disabled. To handle - this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA224 test SHA256 + - MBEDTLS_SHA256 job turns off all hashes except SHA256, however, when investigating + reverse dependencies, SHA224 is found to depend on SHA256, so it is disabled, + and then SHA256 is found to depend on SHA224, so it is also disabled. To handle + this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA256 test SHA224 should also be enabled before processing reverse dependencies: - 'MBEDTLS_SHA224_C': ['MBEDTLS_SHA256_C'] + 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'] - MBEDTLS_SHA512_C job turns off all hashes except SHA512. MBEDTLS_SSL_COOKIE_C requires either SHA256 or SHA384 to work, so it also has to be disabled. This is not a dependency on SHA512_C, but a result of an exclusive domain config building method. Relevant field: - 'MBEDTLS_SHA512_C': ['!MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C'], - DualDomain - combination of the two above - both complementary and exclusive domain job generation code will be run. Currently only used for hashes. @@ -507,7 +507,7 @@ def main(): description= "Test Mbed TLS with a subset of algorithms.\n\n" "Example usage:\n" - r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA224_C""\n" + r"./tests/scripts/depends.py \!MBEDTLS_SHA1_C MBEDTLS_SHA256_C""\n" "./tests/scripts/depends.py MBEDTLS_AES_C hashes\n" "./tests/scripts/depends.py cipher_id cipher_chaining\n") parser.add_argument('--color', metavar='WHEN', From b8a97e7520280112eef0083aa9ef19dbd67ee23a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 17 Oct 2022 08:39:09 -0400 Subject: [PATCH 0391/1574] depends.py: rename domains argument to tasks Tasks can consist of domains and/or jobs. Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index b86192079..ce7fee65c 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -464,14 +464,14 @@ def run_tests(options, domain_data): """Run the desired jobs. domain_data should be a DomainData instance that describes the available domains and jobs. -Run the jobs listed in options.domains.""" +Run the jobs listed in options.tasks.""" if not hasattr(options, 'config_backup'): options.config_backup = options.config + '.bak' colors = Colors(options) jobs = [] failures = [] successes = [] - for name in options.domains: + for name in options.tasks: jobs += domain_data.get_jobs(name) backup_config(options) try: @@ -534,15 +534,14 @@ def main(): parser.add_argument('--make-command', metavar='CMD', help='Command to run instead of make (e.g. gmake)', action='store', default='make') - parser.add_argument('domains', metavar='DOMAIN', nargs='*', - help='The domain(s) to test (default: all). This can \ - be also a list of jobs to run.', + parser.add_argument('tasks', metavar='TASKS', nargs='*', + help='The domain(s) or job(s) to test (default: all).', default=True) options = parser.parse_args() os.chdir(options.directory) domain_data = DomainData(options) - if options.domains is True: - options.domains = sorted(domain_data.domains.keys()) + if options.tasks is True: + options.tasks = sorted(domain_data.domains.keys()) if options.list: for arg in options.list: for domain_name in sorted(getattr(domain_data, arg).keys()): From f4b8a4f9719a7009bd137da3de9f0b08863585d4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 19 Oct 2022 09:13:11 -0400 Subject: [PATCH 0392/1574] pylint: ignore duplicated imports It is not uncommon to have the same imports across different python files. Ignore it when running pylint. Starting at pylint 2.14.5 this is the default value. Signed-off-by: Andrzej Kurek --- .pylintrc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.pylintrc b/.pylintrc index d217ff69c..10c93f879 100644 --- a/.pylintrc +++ b/.pylintrc @@ -73,3 +73,7 @@ reports=no # Allow unused variables if their name starts with an underscore. # [unused-argument] dummy-variables-rgx=_.* + +[SIMILARITIES] +# Ignore imports when computing similarities. +ignore-imports=yes From c6004a2ab3139e36207ca1d3d6f5da76abe4e3f5 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 16:16:16 +0100 Subject: [PATCH 0393/1574] Move bignum_core tests into separate files Test cases for mpi_core_add_if, mpi_core_mla, mpi_core_sub, mpi_core_montmul are not copied into new files, these are generated in subsequent commits. Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 264 + tests/suites/test_suite_bignum_core.function | 635 + tests/suites/test_suite_mpi.data | 13667 ----------------- tests/suites/test_suite_mpi.function | 622 - 4 files changed, 899 insertions(+), 14289 deletions(-) create mode 100644 tests/suites/test_suite_bignum_core.data create mode 100644 tests/suites/test_suite_bignum_core.function diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data new file mode 100644 index 000000000..d61acd00e --- /dev/null +++ b/tests/suites/test_suite_bignum_core.data @@ -0,0 +1,264 @@ +Test mbedtls_mpi_core_io functions with null pointers +mpi_core_io_null + +Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 + +Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 + +Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 + +Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 + +Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 + +Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 + +Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 + +Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 + +Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 + +Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 + +Test mbedtls_mpi_core_io_be #11 (Zero) +mpi_core_io_be:"00":1:1:0:0 + +Test mbedtls_mpi_core_io_be #12 (Zero, empty output) +mpi_core_io_be:"00":0:1:0:0 + +Test mbedtls_mpi_core_io_be #13 (Zero, empty input) +mpi_core_io_be:"":1:1:0:0 + +Test mbedtls_mpi_core_io_be #14 (One) +mpi_core_io_be:"01":1:1:0:0 + +Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit) +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_io_be:"ff000000":4:1:0:0 + +Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit) +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_io_be:"ff00000000000000":8:2:0:0 + +Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned) +mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs) +mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 + +Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 + +Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 + +Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 + +Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 + +Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 + +Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 + +Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 + +Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 + +Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 + +Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 + +Test mbedtls_mpi_core_io_le #11 (Zero) +mpi_core_io_le:"00":1:1:0:0 + +Test mbedtls_mpi_core_io_le #12 (Zero, empty output) +mpi_core_io_le:"00":0:1:0:0 + +Test mbedtls_mpi_core_io_le #13 (Zero, empty input) +mpi_core_io_le:"":1:1:0:0 + +Test mbedtls_mpi_core_io_le #14 (One) +mpi_core_io_le:"01":1:1:0:0 + +Test mbedtls_mpi_core_io_le #15 (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_io_le:"000000ff":4:1:0:0 + +Test mbedtls_mpi_core_io_le #16 (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_io_le:"00000000000000ff":8:2:0:0 + +Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned) +mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) +mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 + +mbedtls_mpi_core_lt_ct: x=y (1 limb) +mpi_core_lt_ct:"2B5":"2B5":0 + +mbedtls_mpi_core_lt_ct: x>y (1 limb) +mpi_core_lt_ct:"2B5":"2B4":0 + +mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) +mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=x-1) +mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=1) +mpi_core_lt_ct:"8000000000000000":"0000000000000001":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, y=0) +mpi_core_lt_ct:"8000000000000000":"0000000000000000":0 + +mbedtls_mpi_core_lt_ct: xy (64 bit x, first bytes equal) +mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (31 bit x, y first byte greater) +mpi_core_lt_ct:"7FFFFFFF":"000000FF":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=x-1) +mpi_core_lt_ct:"80000000":"7FFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=1) +mpi_core_lt_ct:"80000000":"00000001":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, y=0) +mpi_core_lt_ct:"80000000":"00000000":0 + +mbedtls_mpi_core_lt_ct: xy (32 bit x, first bytes equal) +mpi_core_lt_ct:"FFFFFFFF":"000000FF":0 + +mbedtls_mpi_core_lt_ct: xy, equal MS limbs +mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0 + +mbedtls_mpi_core_lt_ct: x=y (multi-limb) +mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFFF":0 + +mbedtls_mpi_core_lt_ct: xy (alternating limbs) +mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 + +mbedtls_mpi_montg_init #1 +mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" + +mbedtls_mpi_montg_init #2 +mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" + +mbedtls_mpi_montg_init #3 +mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" + +mbedtls_mpi_montg_init #4 +mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" + +mbedtls_mpi_montg_init #5 +mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #6 +mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" + +mbedtls_mpi_montg_init #7 +mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" + +mbedtls_mpi_montg_init #8 +mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" + +mbedtls_mpi_montg_init #9 +mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" + +mbedtls_mpi_montg_init #10 +mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" + +mbedtls_mpi_montg_init #11 +mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" + +mbedtls_mpi_montg_init #12 +mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" + +mbedtls_mpi_montg_init #13 +mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" + +mbedtls_mpi_montg_init #14 +mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" + +mbedtls_mpi_montg_init #15 +mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function new file mode 100644 index 000000000..a24bade19 --- /dev/null +++ b/tests/suites/test_suite_bignum_core.function @@ -0,0 +1,635 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_core.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_core_io_null() +{ + mbedtls_mpi_uint X = 0; + int ret; + + ret = mbedtls_mpi_core_read_be( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_be( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_be( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_be( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_le( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_le( &X, 1, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + + ret = mbedtls_mpi_core_read_le( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_write_le( NULL, 0, NULL, 0 ); + TEST_EQUAL( ret, 0 ); + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + ret = mbedtls_mpi_core_write_be( X, nx, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + size_t leading_zeroes = nb - input->len; + TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + size_t leading_zeroes = input->len - nb; + TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, + int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + ret = mbedtls_mpi_core_write_le( X, nx, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); + for( size_t i = input->len; i < nb; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); + for( size_t i = nb; i < input->len; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + +exit: + ; +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) +{ + mbedtls_mpi_uint *X = NULL; + size_t X_limbs; + mbedtls_mpi_uint *Y = NULL; + size_t Y_limbs; + int ret; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); + + /* We need two same-length limb arrays */ + TEST_EQUAL( X_limbs, Y_limbs ); + + TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); + + ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); + TEST_EQUAL( ret, exp_ret ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_add_if( char * input_A, char * input_B, + char * input_S4, int carry4, + char * input_S8, int carry8 ) +{ + mbedtls_mpi S4, S8, A, B; + mbedtls_mpi_uint *a = NULL; /* first value to add */ + mbedtls_mpi_uint *b = NULL; /* second value to add */ + mbedtls_mpi_uint *sum = NULL; + mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &S4 ); + mbedtls_mpi_init( &S8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); + + /* We only need to work with one of (S4, carry4) or (S8, carry8) depending + * on sizeof(mbedtls_mpi_uint) + */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; + mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, X->s ); + + /* Test cases are such that A <= B, so #limbs should be <= */ + TEST_LE_U( A.n, B.n ); + TEST_LE_U( X->n, B.n ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which + * must be the same size. The MPIs we've read in will only have arrays + * large enough for the number they represent. Therefore we create new + * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've + * just read in. + * + * We generated test data such that B was always >= A, so that's how many + * limbs each of these need. + */ + size_t limbs = B.n; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( sum, bytes ); + ASSERT_ALLOC( d, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_add_if()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* The test cases have a <= b to avoid repetition, so we test a + b then, + * if a != b, b + a. If a == b, we can test when a and b are aliased */ + + /* a + b */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( d, a, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); + ASSERT_COMPARE( d, bytes, a, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); + ASSERT_COMPARE( d, bytes, sum, bytes ); + + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* a == b, so test where a and b are aliased */ + + /* cond = 0 => d unchanged, no carry */ + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); + ASSERT_COMPARE( b, bytes, B.p, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); + ASSERT_COMPARE( b, bytes, sum, bytes ); + } + else + { + /* a != b, so test b + a */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( d, b, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); + ASSERT_COMPARE( d, bytes, b, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); + ASSERT_COMPARE( d, bytes, sum, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( sum ); + mbedtls_free( d ); + + mbedtls_mpi_free( &S4 ); + mbedtls_mpi_free( &S8 ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_sub( char * input_A, char * input_B, + char * input_X4, char * input_X8, + int carry ) +{ + mbedtls_mpi A, B, X4, X8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *b = NULL; + mbedtls_mpi_uint *x = NULL; /* expected */ + mbedtls_mpi_uint *r = NULL; /* result */ + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, X4.s ); + TEST_EQUAL( 1, X8.s ); + + /* Get the number of limbs we will need */ + size_t limbs = MAX( A.n, B.n ); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + /* The result shouldn't have more limbs than the longest input */ + TEST_LE_U( X->n, limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( b, bytes ); + ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC( r, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_sub()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) r = a - b => we should get the correct carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); + + /* 1b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 2 and 3 test "r may be aliased to a or b" */ + /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ + memcpy( r, a, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); + + /* 2b) r -= b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ + memcpy( r, b, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); + + /* 3b) r = a - b => we should get the correct result */ + ASSERT_COMPARE( r, bytes, x, bytes ); + + /* 4 tests "r may be aliased to [...] both" */ + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + memcpy( r, b, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); + ASSERT_COMPARE( r, bytes, x, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( x ); + mbedtls_free( r ); + + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_mla( char * input_A, char * input_B, char * input_S, + char * input_X4, char * input_cy4, + char * input_X8, char * input_cy8 ) +{ + /* We are testing A += B * s; A, B are MPIs, s is a scalar. + * + * However, we encode s as an MPI in the .data file as the test framework + * currently only supports `int`-typed scalars, and that doesn't cover the + * full range of `mbedtls_mpi_uint`. + * + * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. + */ + mbedtls_mpi A, B, S, X4, X8, cy4, cy8; + mbedtls_mpi_uint *a = NULL; + mbedtls_mpi_uint *x = NULL; + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &S ); + mbedtls_mpi_init( &X4 ); + mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &cy4 ); + mbedtls_mpi_init( &cy8 ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); + + /* The MPI encoding of scalar s must be only 1 limb */ + TEST_EQUAL( 1, S.n ); + + /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; + + /* The carry should only have one limb */ + TEST_EQUAL( 1, cy->n ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, S.s ); + TEST_EQUAL( 1, X->s ); + TEST_EQUAL( 1, cy->s ); + + /* Get the (max) number of limbs we will need */ + size_t limbs = MAX( A.n, B.n ); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + /* The result shouldn't have more limbs than the longest input */ + TEST_LE_U( X->n, limbs ); + + /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ + + /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ + ASSERT_ALLOC( a, bytes ); + ASSERT_ALLOC( x, bytes ); + + /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as + * processed by mbedtls_mpi_core_mla()) are little endian, we can just + * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). + */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + + /* 1a) A += B * s => we should get the correct carry */ + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); + + /* 1b) A += B * s => we should get the correct result */ + ASSERT_COMPARE( a, bytes, x, bytes ); + + if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Check when A and B are aliased */ + memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); + TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); + ASSERT_COMPARE( a, bytes, x, bytes ); + } + +exit: + mbedtls_free( a ); + mbedtls_free( x ); + + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &S ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &cy4 ); + mbedtls_mpi_free( &cy8 ); +} +/* END_CASE */ + + +/* BEGIN_CASE */ +void mpi_montg_init( char * input_N, char * input_mm ) +{ + mbedtls_mpi N, mm; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &mm ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); + + /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or + * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). + * + * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; + * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. + */ + TEST_ASSERT( mm.n == 1 || mm.n == 2 ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, mm.s ); + + /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ + mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); + + /* Check we got the correct result */ + TEST_EQUAL( result, mm.p[0] ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &mm ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_montmul( int limbs_AN4, int limbs_B4, + int limbs_AN8, int limbs_B8, + char * input_A, + char * input_B, + char * input_N, + char * input_X4, + char * input_X8 ) +{ + mbedtls_mpi A, B, N, X4, X8, T, R; + + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &B ); + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ + mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ + mbedtls_mpi_init( &T ); + mbedtls_mpi_init( &R ); /* for the result */ + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + + mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + + int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; + int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; + + TEST_LE_U( A.n, (size_t)limbs_AN ); + TEST_LE_U( X->n, (size_t)limbs_AN ); + TEST_LE_U( B.n, (size_t)limbs_B ); + TEST_LE_U( limbs_B, limbs_AN ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + TEST_EQUAL( 1, B.s ); + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, X->s ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); + + /* Calculate the Montgomery constant (this is unit tested separately) */ + mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ + + mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + size_t bytes = N.n * sizeof(mbedtls_mpi_uint); + ASSERT_COMPARE( R.p, bytes, X->p, bytes ); + + /* The output (R, above) may be aliased to A - use R to save the value of A */ + + memcpy( R.p, A.p, bytes ); + + mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( A.p, bytes, X->p, bytes ); + + memcpy( A.p, R.p, bytes ); /* restore A */ + + /* The output may be aliased to N - use R to save the value of N */ + + memcpy( R.p, N.p, bytes ); + + mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( N.p, bytes, X->p, bytes ); + + memcpy( N.p, R.p, bytes ); + + if (limbs_AN == limbs_B) + { + /* Test when A aliased to B (requires A == B on input values) */ + if ( memcmp( A.p, B.p, bytes ) == 0 ) + { + /* Test with A aliased to B and output, since this is permitted - + * don't bother with yet another test with only A and B aliased */ + + mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + + memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ + } + + /* The output may be aliased to B - last test, so we don't save B */ + + mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + } + +exit: + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &B ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &X4 ); + mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &T ); + mbedtls_mpi_free( &R ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 22d99a928..4acb41f94 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,138 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -Test mbedtls_mpi_core_io functions with null pointers -mpi_core_io_null - -Test mbedtls_mpi_core_io_be #1 (Buffer and limbs just fit, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 - -Test mbedtls_mpi_core_io_be #2 (Buffer and limbs just fit, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 - -Test mbedtls_mpi_core_io_be #3 (Buffer just fits, extra limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 - -Test mbedtls_mpi_core_io_be #4 (Buffer just fits, extra limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 - -Test mbedtls_mpi_core_io_be #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 - -Test mbedtls_mpi_core_io_be #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 - -Test mbedtls_mpi_core_io_be #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:0:0 - -Test mbedtls_mpi_core_io_be #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:0:0 - -Test mbedtls_mpi_core_io_be #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:0:0 - -Test mbedtls_mpi_core_io_be #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_core_io_be:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:0:0 - -Test mbedtls_mpi_core_io_be #11 (Zero) -mpi_core_io_be:"00":1:1:0:0 - -Test mbedtls_mpi_core_io_be #12 (Zero, empty output) -mpi_core_io_be:"00":0:1:0:0 - -Test mbedtls_mpi_core_io_be #13 (Zero, empty input) -mpi_core_io_be:"":1:1:0:0 - -Test mbedtls_mpi_core_io_be #14 (One) -mpi_core_io_be:"01":1:1:0:0 - -Test mbedtls_mpi_core_io_be #15 (One limb, 32 bit) -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_io_be:"ff000000":4:1:0:0 - -Test mbedtls_mpi_core_io_be #16 (One limb, 64 bit) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_io_be:"ff00000000000000":8:2:0:0 - -Test mbedtls_mpi_core_io_be #17 (not enough limbs, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_be #18 (not enough limbs, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_be #19 (buffer too small, input limb-aligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_be #20 (buffer too small, input unaligned) -mpi_core_io_be:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_be #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mpi_core_io_be:"00de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":82:21:0:0 - -Test mbedtls_mpi_core_io_le #1 (Buffer and limbs just fit, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:0:0 - -Test mbedtls_mpi_core_io_le #2 (Buffer and limbs just fit, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:0:0 - -Test mbedtls_mpi_core_io_le #3 (Buffer just fits, extra limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:0:0 - -Test mbedtls_mpi_core_io_le #4 (Buffer just fits, extra limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:0:0 - -Test mbedtls_mpi_core_io_le #5 (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:0:0 - -Test mbedtls_mpi_core_io_le #6 (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:0:0 - -Test mbedtls_mpi_core_io_le #7 (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:0:0 - -Test mbedtls_mpi_core_io_le #8 (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:0:0 - -Test mbedtls_mpi_core_io_le #9 (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:0:0 - -Test mbedtls_mpi_core_io_le #10 (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_core_io_le:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:0:0 - -Test mbedtls_mpi_core_io_le #11 (Zero) -mpi_core_io_le:"00":1:1:0:0 - -Test mbedtls_mpi_core_io_le #12 (Zero, empty output) -mpi_core_io_le:"00":0:1:0:0 - -Test mbedtls_mpi_core_io_le #13 (Zero, empty input) -mpi_core_io_le:"":1:1:0:0 - -Test mbedtls_mpi_core_io_le #14 (One) -mpi_core_io_le:"01":1:1:0:0 - -Test mbedtls_mpi_core_io_le #15 (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_io_le:"000000ff":4:1:0:0 - -Test mbedtls_mpi_core_io_le #16 (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_io_le:"00000000000000ff":8:2:0:0 - -Test mbedtls_mpi_core_io_le #17 (not enough limbs, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_le #18 (not enough limbs, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_core_io_le #19 (buffer too small, input limb-aligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_le #20 (buffer too small, input unaligned) -mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) -mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 @@ -630,93 +498,6 @@ mpi_cmp_mpi:"-1230000000000000000":"":-1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) mpi_cmp_mpi:"-1230000000000000000":"0":-1 -mbedtls_mpi_core_lt_ct: x=y (1 limb) -mpi_core_lt_ct:"2B5":"2B5":0 - -mbedtls_mpi_core_lt_ct: x>y (1 limb) -mpi_core_lt_ct:"2B5":"2B4":0 - -mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=x-1) -mpi_core_lt_ct:"8000000000000000":"7FFFFFFFFFFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=1) -mpi_core_lt_ct:"8000000000000000":"0000000000000001":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, y=0) -mpi_core_lt_ct:"8000000000000000":"0000000000000000":0 - -mbedtls_mpi_core_lt_ct: xy (64 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFFFFFFFFFF":"00000000000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (31 bit x, y first byte greater) -mpi_core_lt_ct:"7FFFFFFF":"000000FF":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=x-1) -mpi_core_lt_ct:"80000000":"7FFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=1) -mpi_core_lt_ct:"80000000":"00000001":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, y=0) -mpi_core_lt_ct:"80000000":"00000000":0 - -mbedtls_mpi_core_lt_ct: xy (32 bit x, first bytes equal) -mpi_core_lt_ct:"FFFFFFFF":"000000FF":0 - -mbedtls_mpi_core_lt_ct: xy, equal MS limbs -mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFF1":0 - -mbedtls_mpi_core_lt_ct: x=y (multi-limb) -mpi_core_lt_ct:"EEFFFFFFFFFFFFFFFF":"EEFFFFFFFFFFFFFFFF":0 - -mbedtls_mpi_core_lt_ct: xy (alternating limbs) -mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 - mbedtls_mpi_core_cond_assign: 1 limb mpi_core_cond_assign:"FFFFFFFF":"11111111":4 @@ -2396,13454 +2177,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_add_if #1: 0x0 + 0x0 = (0x0, carry 0)/(0x0, carry 0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mpi_core_add_if:"0":"0":"0":0:"0":0 - -mbedtls_mpi_core_add_if #2: 0x0 + 0x1 = (0x1, carry 0)/(0x1, carry 0) -mpi_core_add_if:"0":"1":"1":0:"1":0 - -mbedtls_mpi_core_add_if #3: 0x0 + 0x3 = (0x3, carry 0)/(0x3, carry 0) -mpi_core_add_if:"0":"3":"3":0:"3":0 - -mbedtls_mpi_core_add_if #4: 0x0 + 0xf = (0xf, carry 0)/(0xf, carry 0) -mpi_core_add_if:"0":"f":"f":0:"f":0 - -mbedtls_mpi_core_add_if #5: 0x0 + 0xfe = (0xfe, carry 0)/(0xfe, carry 0) -mpi_core_add_if:"0":"fe":"fe":0:"fe":0 - -mbedtls_mpi_core_add_if #6: 0x0 + 0xff = (0xff, carry 0)/(0xff, carry 0) -mpi_core_add_if:"0":"ff":"ff":0:"ff":0 - -mbedtls_mpi_core_add_if #7: 0x0 + 0x100 = (0x100, carry 0)/(0x100, carry 0) -mpi_core_add_if:"0":"100":"100":0:"100":0 - -mbedtls_mpi_core_add_if #8: 0x0 + 0xff00 = (0xff00, carry 0)/(0xff00, carry 0) -mpi_core_add_if:"0":"ff00":"ff00":0:"ff00":0 - -mbedtls_mpi_core_add_if #9: 0x0 + 0xfffe = (0xfffe, carry 0)/(0xfffe, carry 0) -mpi_core_add_if:"0":"fffe":"fffe":0:"fffe":0 - -mbedtls_mpi_core_add_if #10: 0x0 + 0xffff = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"0":"ffff":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #11: 0x0 + 0x10000 = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"0":"10000":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #12: 0x0 + 0xfffffffe = (0xfffffffe, carry 0)/(0xfffffffe, carry 0) -mpi_core_add_if:"0":"fffffffe":"fffffffe":0:"fffffffe":0 - -mbedtls_mpi_core_add_if #13: 0x0 + 0xffffffff = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mpi_core_add_if:"0":"ffffffff":"ffffffff":0:"ffffffff":0 - -mbedtls_mpi_core_add_if #14: 0x0 + 0x100000000 = (0x100000000, carry 0)/(0x100000000, carry 0) -mpi_core_add_if:"0":"100000000":"100000000":0:"100000000":0 - -mbedtls_mpi_core_add_if #15: 0x0 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f7f, carry 0)/(0x1f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0:"1f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #16: 0x0 + 0x8000000000000000 = (0x8000000000000000, carry 0)/(0x8000000000000000, carry 0) -mpi_core_add_if:"0":"8000000000000000":"8000000000000000":0:"8000000000000000":0 - -mbedtls_mpi_core_add_if #17: 0x0 + 0xfefefefefefefefe = (0xfefefefefefefefe, carry 0)/(0xfefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fefefefefefefefe":"fefefefefefefefe":0:"fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #18: 0x0 + 0xfffffffffffffffe = (0xfffffffffffffffe, carry 0)/(0xfffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffe":"fffffffffffffffe":0:"fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #19: 0x0 + 0xffffffffffffffff = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffff":"ffffffffffffffff":0:"ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #20: 0x0 + 0x10000000000000000 = (0x10000000000000000, carry 0)/(0x10000000000000000, carry 0) -mpi_core_add_if:"0":"10000000000000000":"10000000000000000":0:"10000000000000000":0 - -mbedtls_mpi_core_add_if #21: 0x0 + 0x1234567890abcdef0 = (0x1234567890abcdef0, carry 0)/(0x1234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef0":"1234567890abcdef0":0:"1234567890abcdef0":0 - -mbedtls_mpi_core_add_if #22: 0x0 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0:"fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #23: 0x0 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #24: 0x0 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #25: 0x0 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000000, carry 0)/(0x100000000000000000000000000000000, carry 0) -mpi_core_add_if:"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0:"100000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #26: 0x0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #27: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #28: 0x0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #29: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #30: 0x0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000000, carry 0) -mpi_core_add_if:"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0:"10000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #31: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #32: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #33: 0x1 + 0x1 = (0x2, carry 0)/(0x2, carry 0) -mpi_core_add_if:"1":"1":"2":0:"2":0 - -mbedtls_mpi_core_add_if #34: 0x1 + 0x3 = (0x4, carry 0)/(0x4, carry 0) -mpi_core_add_if:"1":"3":"4":0:"4":0 - -mbedtls_mpi_core_add_if #35: 0x1 + 0xf = (0x10, carry 0)/(0x10, carry 0) -mpi_core_add_if:"1":"f":"10":0:"10":0 - -mbedtls_mpi_core_add_if #36: 0x1 + 0xfe = (0xff, carry 0)/(0xff, carry 0) -mpi_core_add_if:"1":"fe":"ff":0:"ff":0 - -mbedtls_mpi_core_add_if #37: 0x1 + 0xff = (0x100, carry 0)/(0x100, carry 0) -mpi_core_add_if:"1":"ff":"100":0:"100":0 - -mbedtls_mpi_core_add_if #38: 0x1 + 0x100 = (0x101, carry 0)/(0x101, carry 0) -mpi_core_add_if:"1":"100":"101":0:"101":0 - -mbedtls_mpi_core_add_if #39: 0x1 + 0xff00 = (0xff01, carry 0)/(0xff01, carry 0) -mpi_core_add_if:"1":"ff00":"ff01":0:"ff01":0 - -mbedtls_mpi_core_add_if #40: 0x1 + 0xfffe = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"1":"fffe":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #41: 0x1 + 0xffff = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"1":"ffff":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #42: 0x1 + 0x10000 = (0x10001, carry 0)/(0x10001, carry 0) -mpi_core_add_if:"1":"10000":"10001":0:"10001":0 - -mbedtls_mpi_core_add_if #43: 0x1 + 0xfffffffe = (0xffffffff, carry 0)/(0xffffffff, carry 0) -mpi_core_add_if:"1":"fffffffe":"ffffffff":0:"ffffffff":0 - -mbedtls_mpi_core_add_if #44: 0x1 + 0xffffffff = (0x0, carry 1)/(0x100000000, carry 0) -mpi_core_add_if:"1":"ffffffff":"0":1:"100000000":0 - -mbedtls_mpi_core_add_if #45: 0x1 + 0x100000000 = (0x100000001, carry 0)/(0x100000001, carry 0) -mpi_core_add_if:"1":"100000000":"100000001":0:"100000001":0 - -mbedtls_mpi_core_add_if #46: 0x1 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f80, carry 0)/(0x1f7f7f7f7f7f80, carry 0) -mpi_core_add_if:"1":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f80":0:"1f7f7f7f7f7f80":0 - -mbedtls_mpi_core_add_if #47: 0x1 + 0x8000000000000000 = (0x8000000000000001, carry 0)/(0x8000000000000001, carry 0) -mpi_core_add_if:"1":"8000000000000000":"8000000000000001":0:"8000000000000001":0 - -mbedtls_mpi_core_add_if #48: 0x1 + 0xfefefefefefefefe = (0xfefefefefefefeff, carry 0)/(0xfefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fefefefefefefefe":"fefefefefefefeff":0:"fefefefefefefeff":0 - -mbedtls_mpi_core_add_if #49: 0x1 + 0xfffffffffffffffe = (0xffffffffffffffff, carry 0)/(0xffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffe":"ffffffffffffffff":0:"ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #50: 0x1 + 0xffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #51: 0x1 + 0x10000000000000000 = (0x10000000000000001, carry 0)/(0x10000000000000001, carry 0) -mpi_core_add_if:"1":"10000000000000000":"10000000000000001":0:"10000000000000001":0 - -mbedtls_mpi_core_add_if #52: 0x1 + 0x1234567890abcdef0 = (0x1234567890abcdef1, carry 0)/(0x1234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef0":"1234567890abcdef1":0:"1234567890abcdef1":0 - -mbedtls_mpi_core_add_if #53: 0x1 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefeff":0:"fffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_add_if #54: 0x1 + 0xfffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #55: 0x1 + 0xffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #56: 0x1 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000001, carry 0)/(0x100000000000000000000000000000001, carry 0) -mpi_core_add_if:"1":"100000000000000000000000000000000":"100000000000000000000000000000001":0:"100000000000000000000000000000001":0 - -mbedtls_mpi_core_add_if #57: 0x1 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_add_if #58: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_add_if #59: 0x1 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #60: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":1:"0":1 - -mbedtls_mpi_core_add_if #61: 0x1 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000001, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000001, carry 0) -mpi_core_add_if:"1":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000001":0:"10000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_core_add_if #62: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0) -mpi_core_add_if:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_add_if #63: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0) -mpi_core_add_if:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_add_if #64: 0x3 + 0x3 = (0x6, carry 0)/(0x6, carry 0) -mpi_core_add_if:"3":"3":"6":0:"6":0 - -mbedtls_mpi_core_add_if #65: 0x3 + 0xf = (0x12, carry 0)/(0x12, carry 0) -mpi_core_add_if:"3":"f":"12":0:"12":0 - -mbedtls_mpi_core_add_if #66: 0x3 + 0xfe = (0x101, carry 0)/(0x101, carry 0) -mpi_core_add_if:"3":"fe":"101":0:"101":0 - -mbedtls_mpi_core_add_if #67: 0x3 + 0xff = (0x102, carry 0)/(0x102, carry 0) -mpi_core_add_if:"3":"ff":"102":0:"102":0 - -mbedtls_mpi_core_add_if #68: 0x3 + 0x100 = (0x103, carry 0)/(0x103, carry 0) -mpi_core_add_if:"3":"100":"103":0:"103":0 - -mbedtls_mpi_core_add_if #69: 0x3 + 0xff00 = (0xff03, carry 0)/(0xff03, carry 0) -mpi_core_add_if:"3":"ff00":"ff03":0:"ff03":0 - -mbedtls_mpi_core_add_if #70: 0x3 + 0xfffe = (0x10001, carry 0)/(0x10001, carry 0) -mpi_core_add_if:"3":"fffe":"10001":0:"10001":0 - -mbedtls_mpi_core_add_if #71: 0x3 + 0xffff = (0x10002, carry 0)/(0x10002, carry 0) -mpi_core_add_if:"3":"ffff":"10002":0:"10002":0 - -mbedtls_mpi_core_add_if #72: 0x3 + 0x10000 = (0x10003, carry 0)/(0x10003, carry 0) -mpi_core_add_if:"3":"10000":"10003":0:"10003":0 - -mbedtls_mpi_core_add_if #73: 0x3 + 0xfffffffe = (0x1, carry 1)/(0x100000001, carry 0) -mpi_core_add_if:"3":"fffffffe":"1":1:"100000001":0 - -mbedtls_mpi_core_add_if #74: 0x3 + 0xffffffff = (0x2, carry 1)/(0x100000002, carry 0) -mpi_core_add_if:"3":"ffffffff":"2":1:"100000002":0 - -mbedtls_mpi_core_add_if #75: 0x3 + 0x100000000 = (0x100000003, carry 0)/(0x100000003, carry 0) -mpi_core_add_if:"3":"100000000":"100000003":0:"100000003":0 - -mbedtls_mpi_core_add_if #76: 0x3 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f82, carry 0)/(0x1f7f7f7f7f7f82, carry 0) -mpi_core_add_if:"3":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f82":0:"1f7f7f7f7f7f82":0 - -mbedtls_mpi_core_add_if #77: 0x3 + 0x8000000000000000 = (0x8000000000000003, carry 0)/(0x8000000000000003, carry 0) -mpi_core_add_if:"3":"8000000000000000":"8000000000000003":0:"8000000000000003":0 - -mbedtls_mpi_core_add_if #78: 0x3 + 0xfefefefefefefefe = (0xfefefefefefeff01, carry 0)/(0xfefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fefefefefefefefe":"fefefefefefeff01":0:"fefefefefefeff01":0 - -mbedtls_mpi_core_add_if #79: 0x3 + 0xfffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #80: 0x3 + 0xffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #81: 0x3 + 0x10000000000000000 = (0x10000000000000003, carry 0)/(0x10000000000000003, carry 0) -mpi_core_add_if:"3":"10000000000000000":"10000000000000003":0:"10000000000000003":0 - -mbedtls_mpi_core_add_if #82: 0x3 + 0x1234567890abcdef0 = (0x1234567890abcdef3, carry 0)/(0x1234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef0":"1234567890abcdef3":0:"1234567890abcdef3":0 - -mbedtls_mpi_core_add_if #83: 0x3 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff01":0:"fffffffffffffffffefefefefefeff01":0 - -mbedtls_mpi_core_add_if #84: 0x3 + 0xfffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #85: 0x3 + 0xffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #86: 0x3 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000003, carry 0)/(0x100000000000000000000000000000003, carry 0) -mpi_core_add_if:"3":"100000000000000000000000000000000":"100000000000000000000000000000003":0:"100000000000000000000000000000003":0 - -mbedtls_mpi_core_add_if #87: 0x3 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef3":0 - -mbedtls_mpi_core_add_if #88: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01, carry 0) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff01":0 - -mbedtls_mpi_core_add_if #89: 0x3 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1, carry 1)/(0x1, carry 1) -mpi_core_add_if:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":1:"1":1 - -mbedtls_mpi_core_add_if #90: 0x3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x2, carry 1)/(0x2, carry 1) -mpi_core_add_if:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":1:"2":1 - -mbedtls_mpi_core_add_if #91: 0x3 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000003, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000003, carry 0) -mpi_core_add_if:"3":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000003":0:"10000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_core_add_if #92: 0x3 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0) -mpi_core_add_if:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":0 - -mbedtls_mpi_core_add_if #93: 0x3 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0) -mpi_core_add_if:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":0 - -mbedtls_mpi_core_add_if #94: 0xf + 0xf = (0x1e, carry 0)/(0x1e, carry 0) -mpi_core_add_if:"f":"f":"1e":0:"1e":0 - -mbedtls_mpi_core_add_if #95: 0xf + 0xfe = (0x10d, carry 0)/(0x10d, carry 0) -mpi_core_add_if:"f":"fe":"10d":0:"10d":0 - -mbedtls_mpi_core_add_if #96: 0xf + 0xff = (0x10e, carry 0)/(0x10e, carry 0) -mpi_core_add_if:"f":"ff":"10e":0:"10e":0 - -mbedtls_mpi_core_add_if #97: 0xf + 0x100 = (0x10f, carry 0)/(0x10f, carry 0) -mpi_core_add_if:"f":"100":"10f":0:"10f":0 - -mbedtls_mpi_core_add_if #98: 0xf + 0xff00 = (0xff0f, carry 0)/(0xff0f, carry 0) -mpi_core_add_if:"f":"ff00":"ff0f":0:"ff0f":0 - -mbedtls_mpi_core_add_if #99: 0xf + 0xfffe = (0x1000d, carry 0)/(0x1000d, carry 0) -mpi_core_add_if:"f":"fffe":"1000d":0:"1000d":0 - -mbedtls_mpi_core_add_if #100: 0xf + 0xffff = (0x1000e, carry 0)/(0x1000e, carry 0) -mpi_core_add_if:"f":"ffff":"1000e":0:"1000e":0 - -mbedtls_mpi_core_add_if #101: 0xf + 0x10000 = (0x1000f, carry 0)/(0x1000f, carry 0) -mpi_core_add_if:"f":"10000":"1000f":0:"1000f":0 - -mbedtls_mpi_core_add_if #102: 0xf + 0xfffffffe = (0xd, carry 1)/(0x10000000d, carry 0) -mpi_core_add_if:"f":"fffffffe":"d":1:"10000000d":0 - -mbedtls_mpi_core_add_if #103: 0xf + 0xffffffff = (0xe, carry 1)/(0x10000000e, carry 0) -mpi_core_add_if:"f":"ffffffff":"e":1:"10000000e":0 - -mbedtls_mpi_core_add_if #104: 0xf + 0x100000000 = (0x10000000f, carry 0)/(0x10000000f, carry 0) -mpi_core_add_if:"f":"100000000":"10000000f":0:"10000000f":0 - -mbedtls_mpi_core_add_if #105: 0xf + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f7f8e, carry 0)/(0x1f7f7f7f7f7f8e, carry 0) -mpi_core_add_if:"f":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f8e":0:"1f7f7f7f7f7f8e":0 - -mbedtls_mpi_core_add_if #106: 0xf + 0x8000000000000000 = (0x800000000000000f, carry 0)/(0x800000000000000f, carry 0) -mpi_core_add_if:"f":"8000000000000000":"800000000000000f":0:"800000000000000f":0 - -mbedtls_mpi_core_add_if #107: 0xf + 0xfefefefefefefefe = (0xfefefefefefeff0d, carry 0)/(0xfefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fefefefefefefefe":"fefefefefefeff0d":0:"fefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #108: 0xf + 0xfffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #109: 0xf + 0xffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #110: 0xf + 0x10000000000000000 = (0x1000000000000000f, carry 0)/(0x1000000000000000f, carry 0) -mpi_core_add_if:"f":"10000000000000000":"1000000000000000f":0:"1000000000000000f":0 - -mbedtls_mpi_core_add_if #111: 0xf + 0x1234567890abcdef0 = (0x1234567890abcdeff, carry 0)/(0x1234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef0":"1234567890abcdeff":0:"1234567890abcdeff":0 - -mbedtls_mpi_core_add_if #112: 0xf + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #113: 0xf + 0xfffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #114: 0xf + 0xffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #115: 0xf + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000000f, carry 0)/(0x10000000000000000000000000000000f, carry 0) -mpi_core_add_if:"f":"100000000000000000000000000000000":"10000000000000000000000000000000f":0:"10000000000000000000000000000000f":0 - -mbedtls_mpi_core_add_if #116: 0xf + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdeff":0 - -mbedtls_mpi_core_add_if #117: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d, carry 0) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff0d":0 - -mbedtls_mpi_core_add_if #118: 0xf + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xd, carry 1)/(0xd, carry 1) -mpi_core_add_if:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"d":1:"d":1 - -mbedtls_mpi_core_add_if #119: 0xf + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xe, carry 1)/(0xe, carry 1) -mpi_core_add_if:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"e":1:"e":1 - -mbedtls_mpi_core_add_if #120: 0xf + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000000f, carry 0) -mpi_core_add_if:"f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000000f":0:"1000000000000000000000000000000000000000000000000000000000000000f":0 - -mbedtls_mpi_core_add_if #121: 0xf + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff, carry 0) -mpi_core_add_if:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeff":0 - -mbedtls_mpi_core_add_if #122: 0xf + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a, carry 0) -mpi_core_add_if:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b13a":0 - -mbedtls_mpi_core_add_if #123: 0xfe + 0xfe = (0x1fc, carry 0)/(0x1fc, carry 0) -mpi_core_add_if:"fe":"fe":"1fc":0:"1fc":0 - -mbedtls_mpi_core_add_if #124: 0xfe + 0xff = (0x1fd, carry 0)/(0x1fd, carry 0) -mpi_core_add_if:"fe":"ff":"1fd":0:"1fd":0 - -mbedtls_mpi_core_add_if #125: 0xfe + 0x100 = (0x1fe, carry 0)/(0x1fe, carry 0) -mpi_core_add_if:"fe":"100":"1fe":0:"1fe":0 - -mbedtls_mpi_core_add_if #126: 0xfe + 0xff00 = (0xfffe, carry 0)/(0xfffe, carry 0) -mpi_core_add_if:"fe":"ff00":"fffe":0:"fffe":0 - -mbedtls_mpi_core_add_if #127: 0xfe + 0xfffe = (0x100fc, carry 0)/(0x100fc, carry 0) -mpi_core_add_if:"fe":"fffe":"100fc":0:"100fc":0 - -mbedtls_mpi_core_add_if #128: 0xfe + 0xffff = (0x100fd, carry 0)/(0x100fd, carry 0) -mpi_core_add_if:"fe":"ffff":"100fd":0:"100fd":0 - -mbedtls_mpi_core_add_if #129: 0xfe + 0x10000 = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"fe":"10000":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #130: 0xfe + 0xfffffffe = (0xfc, carry 1)/(0x1000000fc, carry 0) -mpi_core_add_if:"fe":"fffffffe":"fc":1:"1000000fc":0 - -mbedtls_mpi_core_add_if #131: 0xfe + 0xffffffff = (0xfd, carry 1)/(0x1000000fd, carry 0) -mpi_core_add_if:"fe":"ffffffff":"fd":1:"1000000fd":0 - -mbedtls_mpi_core_add_if #132: 0xfe + 0x100000000 = (0x1000000fe, carry 0)/(0x1000000fe, carry 0) -mpi_core_add_if:"fe":"100000000":"1000000fe":0:"1000000fe":0 - -mbedtls_mpi_core_add_if #133: 0xfe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807d, carry 0)/(0x1f7f7f7f7f807d, carry 0) -mpi_core_add_if:"fe":"1f7f7f7f7f7f7f":"1f7f7f7f7f807d":0:"1f7f7f7f7f807d":0 - -mbedtls_mpi_core_add_if #134: 0xfe + 0x8000000000000000 = (0x80000000000000fe, carry 0)/(0x80000000000000fe, carry 0) -mpi_core_add_if:"fe":"8000000000000000":"80000000000000fe":0:"80000000000000fe":0 - -mbedtls_mpi_core_add_if #135: 0xfe + 0xfefefefefefefefe = (0xfefefefefefefffc, carry 0)/(0xfefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fefefefefefefefe":"fefefefefefefffc":0:"fefefefefefefffc":0 - -mbedtls_mpi_core_add_if #136: 0xfe + 0xfffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #137: 0xfe + 0xffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #138: 0xfe + 0x10000000000000000 = (0x100000000000000fe, carry 0)/(0x100000000000000fe, carry 0) -mpi_core_add_if:"fe":"10000000000000000":"100000000000000fe":0:"100000000000000fe":0 - -mbedtls_mpi_core_add_if #139: 0xfe + 0x1234567890abcdef0 = (0x1234567890abcdfee, carry 0)/(0x1234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef0":"1234567890abcdfee":0:"1234567890abcdfee":0 - -mbedtls_mpi_core_add_if #140: 0xfe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffc":0:"fffffffffffffffffefefefefefefffc":0 - -mbedtls_mpi_core_add_if #141: 0xfe + 0xfffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #142: 0xfe + 0xffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #143: 0xfe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000fe, carry 0)/(0x1000000000000000000000000000000fe, carry 0) -mpi_core_add_if:"fe":"100000000000000000000000000000000":"1000000000000000000000000000000fe":0:"1000000000000000000000000000000fe":0 - -mbedtls_mpi_core_add_if #144: 0xfe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdfee":0 - -mbedtls_mpi_core_add_if #145: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc, carry 0) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffc":0 - -mbedtls_mpi_core_add_if #146: 0xfe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfc, carry 1)/(0xfc, carry 1) -mpi_core_add_if:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fc":1:"fc":1 - -mbedtls_mpi_core_add_if #147: 0xfe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #148: 0xfe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000fe, carry 0) -mpi_core_add_if:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000fe":0:"100000000000000000000000000000000000000000000000000000000000000fe":0 - -mbedtls_mpi_core_add_if #149: 0xfe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0) -mpi_core_add_if:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":0 - -mbedtls_mpi_core_add_if #150: 0xfe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0) -mpi_core_add_if:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":0 - -mbedtls_mpi_core_add_if #151: 0xff + 0xff = (0x1fe, carry 0)/(0x1fe, carry 0) -mpi_core_add_if:"ff":"ff":"1fe":0:"1fe":0 - -mbedtls_mpi_core_add_if #152: 0xff + 0x100 = (0x1ff, carry 0)/(0x1ff, carry 0) -mpi_core_add_if:"ff":"100":"1ff":0:"1ff":0 - -mbedtls_mpi_core_add_if #153: 0xff + 0xff00 = (0xffff, carry 0)/(0xffff, carry 0) -mpi_core_add_if:"ff":"ff00":"ffff":0:"ffff":0 - -mbedtls_mpi_core_add_if #154: 0xff + 0xfffe = (0x100fd, carry 0)/(0x100fd, carry 0) -mpi_core_add_if:"ff":"fffe":"100fd":0:"100fd":0 - -mbedtls_mpi_core_add_if #155: 0xff + 0xffff = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"ff":"ffff":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #156: 0xff + 0x10000 = (0x100ff, carry 0)/(0x100ff, carry 0) -mpi_core_add_if:"ff":"10000":"100ff":0:"100ff":0 - -mbedtls_mpi_core_add_if #157: 0xff + 0xfffffffe = (0xfd, carry 1)/(0x1000000fd, carry 0) -mpi_core_add_if:"ff":"fffffffe":"fd":1:"1000000fd":0 - -mbedtls_mpi_core_add_if #158: 0xff + 0xffffffff = (0xfe, carry 1)/(0x1000000fe, carry 0) -mpi_core_add_if:"ff":"ffffffff":"fe":1:"1000000fe":0 - -mbedtls_mpi_core_add_if #159: 0xff + 0x100000000 = (0x1000000ff, carry 0)/(0x1000000ff, carry 0) -mpi_core_add_if:"ff":"100000000":"1000000ff":0:"1000000ff":0 - -mbedtls_mpi_core_add_if #160: 0xff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807e, carry 0)/(0x1f7f7f7f7f807e, carry 0) -mpi_core_add_if:"ff":"1f7f7f7f7f7f7f":"1f7f7f7f7f807e":0:"1f7f7f7f7f807e":0 - -mbedtls_mpi_core_add_if #161: 0xff + 0x8000000000000000 = (0x80000000000000ff, carry 0)/(0x80000000000000ff, carry 0) -mpi_core_add_if:"ff":"8000000000000000":"80000000000000ff":0:"80000000000000ff":0 - -mbedtls_mpi_core_add_if #162: 0xff + 0xfefefefefefefefe = (0xfefefefefefefffd, carry 0)/(0xfefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fefefefefefefefe":"fefefefefefefffd":0:"fefefefefefefffd":0 - -mbedtls_mpi_core_add_if #163: 0xff + 0xfffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #164: 0xff + 0xffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #165: 0xff + 0x10000000000000000 = (0x100000000000000ff, carry 0)/(0x100000000000000ff, carry 0) -mpi_core_add_if:"ff":"10000000000000000":"100000000000000ff":0:"100000000000000ff":0 - -mbedtls_mpi_core_add_if #166: 0xff + 0x1234567890abcdef0 = (0x1234567890abcdfef, carry 0)/(0x1234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef0":"1234567890abcdfef":0:"1234567890abcdfef":0 - -mbedtls_mpi_core_add_if #167: 0xff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffd":0:"fffffffffffffffffefefefefefefffd":0 - -mbedtls_mpi_core_add_if #168: 0xff + 0xfffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #169: 0xff + 0xffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #170: 0xff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000000000ff, carry 0)/(0x1000000000000000000000000000000ff, carry 0) -mpi_core_add_if:"ff":"100000000000000000000000000000000":"1000000000000000000000000000000ff":0:"1000000000000000000000000000000ff":0 - -mbedtls_mpi_core_add_if #171: 0xff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdfef":0 - -mbedtls_mpi_core_add_if #172: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd, carry 0) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffd":0 - -mbedtls_mpi_core_add_if #173: 0xff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfd, carry 1)/(0xfd, carry 1) -mpi_core_add_if:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fd":1:"fd":1 - -mbedtls_mpi_core_add_if #174: 0xff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #175: 0xff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000000000ff, carry 0) -mpi_core_add_if:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000000000ff":0:"100000000000000000000000000000000000000000000000000000000000000ff":0 - -mbedtls_mpi_core_add_if #176: 0xff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0) -mpi_core_add_if:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":0 - -mbedtls_mpi_core_add_if #177: 0xff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0) -mpi_core_add_if:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":0 - -mbedtls_mpi_core_add_if #178: 0x100 + 0x100 = (0x200, carry 0)/(0x200, carry 0) -mpi_core_add_if:"100":"100":"200":0:"200":0 - -mbedtls_mpi_core_add_if #179: 0x100 + 0xff00 = (0x10000, carry 0)/(0x10000, carry 0) -mpi_core_add_if:"100":"ff00":"10000":0:"10000":0 - -mbedtls_mpi_core_add_if #180: 0x100 + 0xfffe = (0x100fe, carry 0)/(0x100fe, carry 0) -mpi_core_add_if:"100":"fffe":"100fe":0:"100fe":0 - -mbedtls_mpi_core_add_if #181: 0x100 + 0xffff = (0x100ff, carry 0)/(0x100ff, carry 0) -mpi_core_add_if:"100":"ffff":"100ff":0:"100ff":0 - -mbedtls_mpi_core_add_if #182: 0x100 + 0x10000 = (0x10100, carry 0)/(0x10100, carry 0) -mpi_core_add_if:"100":"10000":"10100":0:"10100":0 - -mbedtls_mpi_core_add_if #183: 0x100 + 0xfffffffe = (0xfe, carry 1)/(0x1000000fe, carry 0) -mpi_core_add_if:"100":"fffffffe":"fe":1:"1000000fe":0 - -mbedtls_mpi_core_add_if #184: 0x100 + 0xffffffff = (0xff, carry 1)/(0x1000000ff, carry 0) -mpi_core_add_if:"100":"ffffffff":"ff":1:"1000000ff":0 - -mbedtls_mpi_core_add_if #185: 0x100 + 0x100000000 = (0x100000100, carry 0)/(0x100000100, carry 0) -mpi_core_add_if:"100":"100000000":"100000100":0:"100000100":0 - -mbedtls_mpi_core_add_if #186: 0x100 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f7f807f, carry 0)/(0x1f7f7f7f7f807f, carry 0) -mpi_core_add_if:"100":"1f7f7f7f7f7f7f":"1f7f7f7f7f807f":0:"1f7f7f7f7f807f":0 - -mbedtls_mpi_core_add_if #187: 0x100 + 0x8000000000000000 = (0x8000000000000100, carry 0)/(0x8000000000000100, carry 0) -mpi_core_add_if:"100":"8000000000000000":"8000000000000100":0:"8000000000000100":0 - -mbedtls_mpi_core_add_if #188: 0x100 + 0xfefefefefefefefe = (0xfefefefefefefffe, carry 0)/(0xfefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fefefefefefefefe":"fefefefefefefffe":0:"fefefefefefefffe":0 - -mbedtls_mpi_core_add_if #189: 0x100 + 0xfffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #190: 0x100 + 0xffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #191: 0x100 + 0x10000000000000000 = (0x10000000000000100, carry 0)/(0x10000000000000100, carry 0) -mpi_core_add_if:"100":"10000000000000000":"10000000000000100":0:"10000000000000100":0 - -mbedtls_mpi_core_add_if #192: 0x100 + 0x1234567890abcdef0 = (0x1234567890abcdff0, carry 0)/(0x1234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef0":"1234567890abcdff0":0:"1234567890abcdff0":0 - -mbedtls_mpi_core_add_if #193: 0x100 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefffe":0:"fffffffffffffffffefefefefefefffe":0 - -mbedtls_mpi_core_add_if #194: 0x100 + 0xfffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #195: 0x100 + 0xffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #196: 0x100 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000000100, carry 0)/(0x100000000000000000000000000000100, carry 0) -mpi_core_add_if:"100":"100000000000000000000000000000000":"100000000000000000000000000000100":0:"100000000000000000000000000000100":0 - -mbedtls_mpi_core_add_if #197: 0x100 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdff0":0 - -mbedtls_mpi_core_add_if #198: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe, carry 0) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefffe":0 - -mbedtls_mpi_core_add_if #199: 0x100 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfe, carry 1)/(0xfe, carry 1) -mpi_core_add_if:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":1:"fe":1 - -mbedtls_mpi_core_add_if #200: 0x100 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xff, carry 1)/(0xff, carry 1) -mpi_core_add_if:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":1:"ff":1 - -mbedtls_mpi_core_add_if #201: 0x100 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000000100, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000000100, carry 0) -mpi_core_add_if:"100":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000100":0:"10000000000000000000000000000000000000000000000000000000000000100":0 - -mbedtls_mpi_core_add_if #202: 0x100 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0, carry 0) -mpi_core_add_if:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdff0":0 - -mbedtls_mpi_core_add_if #203: 0x100 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b, carry 0) -mpi_core_add_if:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22b":0 - -mbedtls_mpi_core_add_if #204: 0xff00 + 0xff00 = (0x1fe00, carry 0)/(0x1fe00, carry 0) -mpi_core_add_if:"ff00":"ff00":"1fe00":0:"1fe00":0 - -mbedtls_mpi_core_add_if #205: 0xff00 + 0xfffe = (0x1fefe, carry 0)/(0x1fefe, carry 0) -mpi_core_add_if:"ff00":"fffe":"1fefe":0:"1fefe":0 - -mbedtls_mpi_core_add_if #206: 0xff00 + 0xffff = (0x1feff, carry 0)/(0x1feff, carry 0) -mpi_core_add_if:"ff00":"ffff":"1feff":0:"1feff":0 - -mbedtls_mpi_core_add_if #207: 0xff00 + 0x10000 = (0x1ff00, carry 0)/(0x1ff00, carry 0) -mpi_core_add_if:"ff00":"10000":"1ff00":0:"1ff00":0 - -mbedtls_mpi_core_add_if #208: 0xff00 + 0xfffffffe = (0xfefe, carry 1)/(0x10000fefe, carry 0) -mpi_core_add_if:"ff00":"fffffffe":"fefe":1:"10000fefe":0 - -mbedtls_mpi_core_add_if #209: 0xff00 + 0xffffffff = (0xfeff, carry 1)/(0x10000feff, carry 0) -mpi_core_add_if:"ff00":"ffffffff":"feff":1:"10000feff":0 - -mbedtls_mpi_core_add_if #210: 0xff00 + 0x100000000 = (0x10000ff00, carry 0)/(0x10000ff00, carry 0) -mpi_core_add_if:"ff00":"100000000":"10000ff00":0:"10000ff00":0 - -mbedtls_mpi_core_add_if #211: 0xff00 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807e7f, carry 0)/(0x1f7f7f7f807e7f, carry 0) -mpi_core_add_if:"ff00":"1f7f7f7f7f7f7f":"1f7f7f7f807e7f":0:"1f7f7f7f807e7f":0 - -mbedtls_mpi_core_add_if #212: 0xff00 + 0x8000000000000000 = (0x800000000000ff00, carry 0)/(0x800000000000ff00, carry 0) -mpi_core_add_if:"ff00":"8000000000000000":"800000000000ff00":0:"800000000000ff00":0 - -mbedtls_mpi_core_add_if #213: 0xff00 + 0xfefefefefefefefe = (0xfefefefefefffdfe, carry 0)/(0xfefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fefefefefefefefe":"fefefefefefffdfe":0:"fefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #214: 0xff00 + 0xfffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #215: 0xff00 + 0xffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #216: 0xff00 + 0x10000000000000000 = (0x1000000000000ff00, carry 0)/(0x1000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"10000000000000000":"1000000000000ff00":0:"1000000000000ff00":0 - -mbedtls_mpi_core_add_if #217: 0xff00 + 0x1234567890abcdef0 = (0x1234567890abdddf0, carry 0)/(0x1234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef0":"1234567890abdddf0":0:"1234567890abdddf0":0 - -mbedtls_mpi_core_add_if #218: 0xff00 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #219: 0xff00 + 0xfffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #220: 0xff00 + 0xffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #221: 0xff00 + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ff00, carry 0)/(0x10000000000000000000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"100000000000000000000000000000000":"10000000000000000000000000000ff00":0:"10000000000000000000000000000ff00":0 - -mbedtls_mpi_core_add_if #222: 0xff00 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abdddf0":0 - -mbedtls_mpi_core_add_if #223: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe, carry 0) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffdfe":0 - -mbedtls_mpi_core_add_if #224: 0xff00 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefe, carry 1)/(0xfefe, carry 1) -mpi_core_add_if:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefe":1:"fefe":1 - -mbedtls_mpi_core_add_if #225: 0xff00 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfeff, carry 1)/(0xfeff, carry 1) -mpi_core_add_if:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"feff":1:"feff":1 - -mbedtls_mpi_core_add_if #226: 0xff00 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ff00, carry 0) -mpi_core_add_if:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ff00":0:"1000000000000000000000000000000000000000000000000000000000000ff00":0 - -mbedtls_mpi_core_add_if #227: 0xff00 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0, carry 0) -mpi_core_add_if:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abdddf0":0 - -mbedtls_mpi_core_add_if #228: 0xff00 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b, carry 0) -mpi_core_add_if:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b02b":0 - -mbedtls_mpi_core_add_if #229: 0xfffe + 0xfffe = (0x1fffc, carry 0)/(0x1fffc, carry 0) -mpi_core_add_if:"fffe":"fffe":"1fffc":0:"1fffc":0 - -mbedtls_mpi_core_add_if #230: 0xfffe + 0xffff = (0x1fffd, carry 0)/(0x1fffd, carry 0) -mpi_core_add_if:"fffe":"ffff":"1fffd":0:"1fffd":0 - -mbedtls_mpi_core_add_if #231: 0xfffe + 0x10000 = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mpi_core_add_if:"fffe":"10000":"1fffe":0:"1fffe":0 - -mbedtls_mpi_core_add_if #232: 0xfffe + 0xfffffffe = (0xfffc, carry 1)/(0x10000fffc, carry 0) -mpi_core_add_if:"fffe":"fffffffe":"fffc":1:"10000fffc":0 - -mbedtls_mpi_core_add_if #233: 0xfffe + 0xffffffff = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mpi_core_add_if:"fffe":"ffffffff":"fffd":1:"10000fffd":0 - -mbedtls_mpi_core_add_if #234: 0xfffe + 0x100000000 = (0x10000fffe, carry 0)/(0x10000fffe, carry 0) -mpi_core_add_if:"fffe":"100000000":"10000fffe":0:"10000fffe":0 - -mbedtls_mpi_core_add_if #235: 0xfffe + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7d, carry 0)/(0x1f7f7f7f807f7d, carry 0) -mpi_core_add_if:"fffe":"1f7f7f7f7f7f7f":"1f7f7f7f807f7d":0:"1f7f7f7f807f7d":0 - -mbedtls_mpi_core_add_if #236: 0xfffe + 0x8000000000000000 = (0x800000000000fffe, carry 0)/(0x800000000000fffe, carry 0) -mpi_core_add_if:"fffe":"8000000000000000":"800000000000fffe":0:"800000000000fffe":0 - -mbedtls_mpi_core_add_if #237: 0xfffe + 0xfefefefefefefefe = (0xfefefefefefffefc, carry 0)/(0xfefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fefefefefefefefe":"fefefefefefffefc":0:"fefefefefefffefc":0 - -mbedtls_mpi_core_add_if #238: 0xfffe + 0xfffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #239: 0xfffe + 0xffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #240: 0xfffe + 0x10000000000000000 = (0x1000000000000fffe, carry 0)/(0x1000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"10000000000000000":"1000000000000fffe":0:"1000000000000fffe":0 - -mbedtls_mpi_core_add_if #241: 0xfffe + 0x1234567890abcdef0 = (0x1234567890abddeee, carry 0)/(0x1234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef0":"1234567890abddeee":0:"1234567890abddeee":0 - -mbedtls_mpi_core_add_if #242: 0xfffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefc":0:"fffffffffffffffffefefefefefffefc":0 - -mbedtls_mpi_core_add_if #243: 0xfffe + 0xfffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #244: 0xfffe + 0xffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #245: 0xfffe + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000fffe, carry 0)/(0x10000000000000000000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"100000000000000000000000000000000":"10000000000000000000000000000fffe":0:"10000000000000000000000000000fffe":0 - -mbedtls_mpi_core_add_if #246: 0xfffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abddeee":0 - -mbedtls_mpi_core_add_if #247: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc, carry 0) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefc":0 - -mbedtls_mpi_core_add_if #248: 0xfffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffc, carry 1)/(0xfffc, carry 1) -mpi_core_add_if:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffc":1:"fffc":1 - -mbedtls_mpi_core_add_if #249: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #250: 0xfffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000fffe, carry 0) -mpi_core_add_if:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000fffe":0:"1000000000000000000000000000000000000000000000000000000000000fffe":0 - -mbedtls_mpi_core_add_if #251: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee, carry 0) -mpi_core_add_if:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeee":0 - -mbedtls_mpi_core_add_if #252: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129, carry 0) -mpi_core_add_if:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b129":0 - -mbedtls_mpi_core_add_if #253: 0xffff + 0xffff = (0x1fffe, carry 0)/(0x1fffe, carry 0) -mpi_core_add_if:"ffff":"ffff":"1fffe":0:"1fffe":0 - -mbedtls_mpi_core_add_if #254: 0xffff + 0x10000 = (0x1ffff, carry 0)/(0x1ffff, carry 0) -mpi_core_add_if:"ffff":"10000":"1ffff":0:"1ffff":0 - -mbedtls_mpi_core_add_if #255: 0xffff + 0xfffffffe = (0xfffd, carry 1)/(0x10000fffd, carry 0) -mpi_core_add_if:"ffff":"fffffffe":"fffd":1:"10000fffd":0 - -mbedtls_mpi_core_add_if #256: 0xffff + 0xffffffff = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mpi_core_add_if:"ffff":"ffffffff":"fffe":1:"10000fffe":0 - -mbedtls_mpi_core_add_if #257: 0xffff + 0x100000000 = (0x10000ffff, carry 0)/(0x10000ffff, carry 0) -mpi_core_add_if:"ffff":"100000000":"10000ffff":0:"10000ffff":0 - -mbedtls_mpi_core_add_if #258: 0xffff + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7e, carry 0)/(0x1f7f7f7f807f7e, carry 0) -mpi_core_add_if:"ffff":"1f7f7f7f7f7f7f":"1f7f7f7f807f7e":0:"1f7f7f7f807f7e":0 - -mbedtls_mpi_core_add_if #259: 0xffff + 0x8000000000000000 = (0x800000000000ffff, carry 0)/(0x800000000000ffff, carry 0) -mpi_core_add_if:"ffff":"8000000000000000":"800000000000ffff":0:"800000000000ffff":0 - -mbedtls_mpi_core_add_if #260: 0xffff + 0xfefefefefefefefe = (0xfefefefefefffefd, carry 0)/(0xfefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fefefefefefefefe":"fefefefefefffefd":0:"fefefefefefffefd":0 - -mbedtls_mpi_core_add_if #261: 0xffff + 0xfffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #262: 0xffff + 0xffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #263: 0xffff + 0x10000000000000000 = (0x1000000000000ffff, carry 0)/(0x1000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"10000000000000000":"1000000000000ffff":0:"1000000000000ffff":0 - -mbedtls_mpi_core_add_if #264: 0xffff + 0x1234567890abcdef0 = (0x1234567890abddeef, carry 0)/(0x1234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef0":"1234567890abddeef":0:"1234567890abddeef":0 - -mbedtls_mpi_core_add_if #265: 0xffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefd":0:"fffffffffffffffffefefefefefffefd":0 - -mbedtls_mpi_core_add_if #266: 0xffff + 0xfffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #267: 0xffff + 0xffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #268: 0xffff + 0x100000000000000000000000000000000 = (0x10000000000000000000000000000ffff, carry 0)/(0x10000000000000000000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"100000000000000000000000000000000":"10000000000000000000000000000ffff":0:"10000000000000000000000000000ffff":0 - -mbedtls_mpi_core_add_if #269: 0xffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abddeef":0 - -mbedtls_mpi_core_add_if #270: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd, carry 0) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefd":0 - -mbedtls_mpi_core_add_if #271: 0xffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffd, carry 1)/(0xfffd, carry 1) -mpi_core_add_if:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffd":1:"fffd":1 - -mbedtls_mpi_core_add_if #272: 0xffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #273: 0xffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0)/(0x1000000000000000000000000000000000000000000000000000000000000ffff, carry 0) -mpi_core_add_if:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000000000000000ffff":0:"1000000000000000000000000000000000000000000000000000000000000ffff":0 - -mbedtls_mpi_core_add_if #274: 0xffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0) -mpi_core_add_if:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":0 - -mbedtls_mpi_core_add_if #275: 0xffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0) -mpi_core_add_if:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":0 - -mbedtls_mpi_core_add_if #276: 0x10000 + 0x10000 = (0x20000, carry 0)/(0x20000, carry 0) -mpi_core_add_if:"10000":"10000":"20000":0:"20000":0 - -mbedtls_mpi_core_add_if #277: 0x10000 + 0xfffffffe = (0xfffe, carry 1)/(0x10000fffe, carry 0) -mpi_core_add_if:"10000":"fffffffe":"fffe":1:"10000fffe":0 - -mbedtls_mpi_core_add_if #278: 0x10000 + 0xffffffff = (0xffff, carry 1)/(0x10000ffff, carry 0) -mpi_core_add_if:"10000":"ffffffff":"ffff":1:"10000ffff":0 - -mbedtls_mpi_core_add_if #279: 0x10000 + 0x100000000 = (0x100010000, carry 0)/(0x100010000, carry 0) -mpi_core_add_if:"10000":"100000000":"100010000":0:"100010000":0 - -mbedtls_mpi_core_add_if #280: 0x10000 + 0x1f7f7f7f7f7f7f = (0x1f7f7f7f807f7f, carry 0)/(0x1f7f7f7f807f7f, carry 0) -mpi_core_add_if:"10000":"1f7f7f7f7f7f7f":"1f7f7f7f807f7f":0:"1f7f7f7f807f7f":0 - -mbedtls_mpi_core_add_if #281: 0x10000 + 0x8000000000000000 = (0x8000000000010000, carry 0)/(0x8000000000010000, carry 0) -mpi_core_add_if:"10000":"8000000000000000":"8000000000010000":0:"8000000000010000":0 - -mbedtls_mpi_core_add_if #282: 0x10000 + 0xfefefefefefefefe = (0xfefefefefefffefe, carry 0)/(0xfefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fefefefefefefefe":"fefefefefefffefe":0:"fefefefefefffefe":0 - -mbedtls_mpi_core_add_if #283: 0x10000 + 0xfffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #284: 0x10000 + 0xffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #285: 0x10000 + 0x10000000000000000 = (0x10000000000010000, carry 0)/(0x10000000000010000, carry 0) -mpi_core_add_if:"10000":"10000000000000000":"10000000000010000":0:"10000000000010000":0 - -mbedtls_mpi_core_add_if #286: 0x10000 + 0x1234567890abcdef0 = (0x1234567890abddef0, carry 0)/(0x1234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef0":"1234567890abddef0":0:"1234567890abddef0":0 - -mbedtls_mpi_core_add_if #287: 0x10000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefffefe":0:"fffffffffffffffffefefefefefffefe":0 - -mbedtls_mpi_core_add_if #288: 0x10000 + 0xfffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #289: 0x10000 + 0xffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #290: 0x10000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000000010000, carry 0)/(0x100000000000000000000000000010000, carry 0) -mpi_core_add_if:"10000":"100000000000000000000000000000000":"100000000000000000000000000010000":0:"100000000000000000000000000010000":0 - -mbedtls_mpi_core_add_if #291: 0x10000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abddef0":0 - -mbedtls_mpi_core_add_if #292: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe, carry 0) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefffefe":0 - -mbedtls_mpi_core_add_if #293: 0x10000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffe, carry 1)/(0xfffe, carry 1) -mpi_core_add_if:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":1:"fffe":1 - -mbedtls_mpi_core_add_if #294: 0x10000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffff, carry 1)/(0xffff, carry 1) -mpi_core_add_if:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":1:"ffff":1 - -mbedtls_mpi_core_add_if #295: 0x10000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000000010000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000000010000, carry 0) -mpi_core_add_if:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000010000":0:"10000000000000000000000000000000000000000000000000000000000010000":0 - -mbedtls_mpi_core_add_if #296: 0x10000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0) -mpi_core_add_if:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":0 - -mbedtls_mpi_core_add_if #297: 0x10000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0) -mpi_core_add_if:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":0 - -mbedtls_mpi_core_add_if #298: 0xfffffffe + 0xfffffffe = (0xfffffffc, carry 1)/(0x1fffffffc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffe":"fffffffc":1:"1fffffffc":0 - -mbedtls_mpi_core_add_if #299: 0xfffffffe + 0xffffffff = (0xfffffffd, carry 1)/(0x1fffffffd, carry 0) -mpi_core_add_if:"fffffffe":"ffffffff":"fffffffd":1:"1fffffffd":0 - -mbedtls_mpi_core_add_if #300: 0xfffffffe + 0x100000000 = (0x1fffffffe, carry 0)/(0x1fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"100000000":"1fffffffe":0:"1fffffffe":0 - -mbedtls_mpi_core_add_if #301: 0xfffffffe + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7d, carry 0)/(0x1f7f807f7f7f7d, carry 0) -mpi_core_add_if:"fffffffe":"1f7f7f7f7f7f7f":"1f7f807f7f7f7d":0:"1f7f807f7f7f7d":0 - -mbedtls_mpi_core_add_if #302: 0xfffffffe + 0x8000000000000000 = (0x80000000fffffffe, carry 0)/(0x80000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"8000000000000000":"80000000fffffffe":0:"80000000fffffffe":0 - -mbedtls_mpi_core_add_if #303: 0xfffffffe + 0xfefefefefefefefe = (0xfefefefffefefefc, carry 0)/(0xfefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fefefefefefefefe":"fefefefffefefefc":0:"fefefefffefefefc":0 - -mbedtls_mpi_core_add_if #304: 0xfffffffe + 0xfffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #305: 0xfffffffe + 0xffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #306: 0xfffffffe + 0x10000000000000000 = (0x100000000fffffffe, carry 0)/(0x100000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"10000000000000000":"100000000fffffffe":0:"100000000fffffffe":0 - -mbedtls_mpi_core_add_if #307: 0xfffffffe + 0x1234567890abcdef0 = (0x12345678a0abcdeee, carry 0)/(0x12345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef0":"12345678a0abcdeee":0:"12345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #308: 0xfffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefc":0:"fffffffffffffffffefefefffefefefc":0 - -mbedtls_mpi_core_add_if #309: 0xfffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #310: 0xfffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #311: 0xfffffffe + 0x100000000000000000000000000000000 = (0x1000000000000000000000000fffffffe, carry 0)/(0x1000000000000000000000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"100000000000000000000000000000000":"1000000000000000000000000fffffffe":0:"1000000000000000000000000fffffffe":0 - -mbedtls_mpi_core_add_if #312: 0xfffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef012345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeee":0:"1234567890abcdef012345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #313: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc, carry 0) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefc":0 - -mbedtls_mpi_core_add_if #314: 0xfffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffc, carry 1)/(0xfffffffc, carry 1) -mpi_core_add_if:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffc":1:"fffffffc":1 - -mbedtls_mpi_core_add_if #315: 0xfffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #316: 0xfffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0)/(0x100000000000000000000000000000000000000000000000000000000fffffffe, carry 0) -mpi_core_add_if:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000fffffffe":0:"100000000000000000000000000000000000000000000000000000000fffffffe":0 - -mbedtls_mpi_core_add_if #317: 0xfffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee, carry 0) -mpi_core_add_if:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeee":0 - -mbedtls_mpi_core_add_if #318: 0xfffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129, carry 0) -mpi_core_add_if:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b129":0 - -mbedtls_mpi_core_add_if #319: 0xffffffff + 0xffffffff = (0xfffffffe, carry 1)/(0x1fffffffe, carry 0) -mpi_core_add_if:"ffffffff":"ffffffff":"fffffffe":1:"1fffffffe":0 - -mbedtls_mpi_core_add_if #320: 0xffffffff + 0x100000000 = (0x1ffffffff, carry 0)/(0x1ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"100000000":"1ffffffff":0:"1ffffffff":0 - -mbedtls_mpi_core_add_if #321: 0xffffffff + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7e, carry 0)/(0x1f7f807f7f7f7e, carry 0) -mpi_core_add_if:"ffffffff":"1f7f7f7f7f7f7f":"1f7f807f7f7f7e":0:"1f7f807f7f7f7e":0 - -mbedtls_mpi_core_add_if #322: 0xffffffff + 0x8000000000000000 = (0x80000000ffffffff, carry 0)/(0x80000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"8000000000000000":"80000000ffffffff":0:"80000000ffffffff":0 - -mbedtls_mpi_core_add_if #323: 0xffffffff + 0xfefefefefefefefe = (0xfefefefffefefefd, carry 0)/(0xfefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fefefefefefefefe":"fefefefffefefefd":0:"fefefefffefefefd":0 - -mbedtls_mpi_core_add_if #324: 0xffffffff + 0xfffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #325: 0xffffffff + 0xffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #326: 0xffffffff + 0x10000000000000000 = (0x100000000ffffffff, carry 0)/(0x100000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"10000000000000000":"100000000ffffffff":0:"100000000ffffffff":0 - -mbedtls_mpi_core_add_if #327: 0xffffffff + 0x1234567890abcdef0 = (0x12345678a0abcdeef, carry 0)/(0x12345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef0":"12345678a0abcdeef":0:"12345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #328: 0xffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefd":0:"fffffffffffffffffefefefffefefefd":0 - -mbedtls_mpi_core_add_if #329: 0xffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #330: 0xffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #331: 0xffffffff + 0x100000000000000000000000000000000 = (0x1000000000000000000000000ffffffff, carry 0)/(0x1000000000000000000000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"100000000000000000000000000000000":"1000000000000000000000000ffffffff":0:"1000000000000000000000000ffffffff":0 - -mbedtls_mpi_core_add_if #332: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef012345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdeef":0:"1234567890abcdef012345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #333: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd, carry 0) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefd":0 - -mbedtls_mpi_core_add_if #334: 0xffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffd, carry 1)/(0xfffffffd, carry 1) -mpi_core_add_if:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffd":1:"fffffffd":1 - -mbedtls_mpi_core_add_if #335: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #336: 0xffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0)/(0x100000000000000000000000000000000000000000000000000000000ffffffff, carry 0) -mpi_core_add_if:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000000000000000000000000000ffffffff":0:"100000000000000000000000000000000000000000000000000000000ffffffff":0 - -mbedtls_mpi_core_add_if #337: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0) -mpi_core_add_if:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":0 - -mbedtls_mpi_core_add_if #338: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0) -mpi_core_add_if:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":0 - -mbedtls_mpi_core_add_if #339: 0x100000000 + 0x100000000 = (0x200000000, carry 0)/(0x200000000, carry 0) -mpi_core_add_if:"100000000":"100000000":"200000000":0:"200000000":0 - -mbedtls_mpi_core_add_if #340: 0x100000000 + 0x1f7f7f7f7f7f7f = (0x1f7f807f7f7f7f, carry 0)/(0x1f7f807f7f7f7f, carry 0) -mpi_core_add_if:"100000000":"1f7f7f7f7f7f7f":"1f7f807f7f7f7f":0:"1f7f807f7f7f7f":0 - -mbedtls_mpi_core_add_if #341: 0x100000000 + 0x8000000000000000 = (0x8000000100000000, carry 0)/(0x8000000100000000, carry 0) -mpi_core_add_if:"100000000":"8000000000000000":"8000000100000000":0:"8000000100000000":0 - -mbedtls_mpi_core_add_if #342: 0x100000000 + 0xfefefefefefefefe = (0xfefefefffefefefe, carry 0)/(0xfefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fefefefefefefefe":"fefefefffefefefe":0:"fefefefffefefefe":0 - -mbedtls_mpi_core_add_if #343: 0x100000000 + 0xfffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #344: 0x100000000 + 0xffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #345: 0x100000000 + 0x10000000000000000 = (0x10000000100000000, carry 0)/(0x10000000100000000, carry 0) -mpi_core_add_if:"100000000":"10000000000000000":"10000000100000000":0:"10000000100000000":0 - -mbedtls_mpi_core_add_if #346: 0x100000000 + 0x1234567890abcdef0 = (0x12345678a0abcdef0, carry 0)/(0x12345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef0":"12345678a0abcdef0":0:"12345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #347: 0x100000000 + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefffefefefe":0:"fffffffffffffffffefefefffefefefe":0 - -mbedtls_mpi_core_add_if #348: 0x100000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #349: 0x100000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #350: 0x100000000 + 0x100000000000000000000000000000000 = (0x100000000000000000000000100000000, carry 0)/(0x100000000000000000000000100000000, carry 0) -mpi_core_add_if:"100000000":"100000000000000000000000000000000":"100000000000000000000000100000000":0:"100000000000000000000000100000000":0 - -mbedtls_mpi_core_add_if #351: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef012345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012345678a0abcdef0":0:"1234567890abcdef012345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #352: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe, carry 0) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefffefefefe":0 - -mbedtls_mpi_core_add_if #353: 0x100000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffe, carry 1)/(0xfffffffe, carry 1) -mpi_core_add_if:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":1:"fffffffe":1 - -mbedtls_mpi_core_add_if #354: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffff, carry 1)/(0xffffffff, carry 1) -mpi_core_add_if:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":1:"ffffffff":1 - -mbedtls_mpi_core_add_if #355: 0x100000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000000000000100000000, carry 0)/(0x10000000000000000000000000000000000000000000000000000000100000000, carry 0) -mpi_core_add_if:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000100000000":0:"10000000000000000000000000000000000000000000000000000000100000000":0 - -mbedtls_mpi_core_add_if #356: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0) -mpi_core_add_if:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":0 - -mbedtls_mpi_core_add_if #357: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0) -mpi_core_add_if:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":0 - -mbedtls_mpi_core_add_if #358: 0x1f7f7f7f7f7f7f + 0x1f7f7f7f7f7f7f = (0x3efefefefefefe, carry 0)/(0x3efefefefefefe, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"3efefefefefefe":0:"3efefefefefefe":0 - -mbedtls_mpi_core_add_if #359: 0x1f7f7f7f7f7f7f + 0x8000000000000000 = (0x801f7f7f7f7f7f7f, carry 0)/(0x801f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":0:"801f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #360: 0x1f7f7f7f7f7f7f + 0xfefefefefefefefe = (0xff1e7e7e7e7e7e7d, carry 0)/(0xff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fefefefefefefefe":"ff1e7e7e7e7e7e7d":0:"ff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #361: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #362: 0x1f7f7f7f7f7f7f + 0xffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #363: 0x1f7f7f7f7f7f7f + 0x10000000000000000 = (0x1001f7f7f7f7f7f7f, carry 0)/(0x1001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000":"1001f7f7f7f7f7f7f":0:"1001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #364: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef0 = (0x12364e7088a3c5e6f, carry 0)/(0x12364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef0":"12364e7088a3c5e6f":0:"12364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #365: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffefefefefefefefe = (0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #366: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #367: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #368: 0x1f7f7f7f7f7f7f + 0x100000000000000000000000000000000 = (0x10000000000000000001f7f7f7f7f7f7f, carry 0)/(0x10000000000000000001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"10000000000000000001f7f7f7f7f7f7f":0:"10000000000000000001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #369: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef012364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"1234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef012364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #370: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0:"ffffffffffffffffffffffffffffffffffffffffffffffffff1e7e7e7e7e7e7d":0 - -mbedtls_mpi_core_add_if #371: 0x1f7f7f7f7f7f7f + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1f7f7f7f7f7f7d, carry 1)/(0x1f7f7f7f7f7f7d, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7d":1:"1f7f7f7f7f7f7d":1 - -mbedtls_mpi_core_add_if #372: 0x1f7f7f7f7f7f7f + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1f7f7f7f7f7f7e, carry 1)/(0x1f7f7f7f7f7f7e, carry 1) -mpi_core_add_if:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7e":1:"1f7f7f7f7f7f7e":1 - -mbedtls_mpi_core_add_if #373: 0x1f7f7f7f7f7f7f + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0)/(0x1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0:"1000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_add_if #374: 0x1f7f7f7f7f7f7f + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0:"1234567890abcdef01234567890abcdef01234567890abcdef012364e7088a3c5e6f":0 - -mbedtls_mpi_core_add_if #375: 0x1f7f7f7f7f7f7f + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa, carry 0) -mpi_core_add_if:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459216b81cff630aa":0 - -mbedtls_mpi_core_add_if #376: 0x8000000000000000 + 0x8000000000000000 = (0x0, carry 1)/(0x0, carry 1) -mpi_core_add_if:"8000000000000000":"8000000000000000":"0":1:"0":1 - -mbedtls_mpi_core_add_if #377: 0x8000000000000000 + 0xfefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #378: 0x8000000000000000 + 0xfffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #379: 0x8000000000000000 + 0xffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #380: 0x8000000000000000 + 0x10000000000000000 = (0x18000000000000000, carry 0)/(0x18000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"10000000000000000":"18000000000000000":0:"18000000000000000":0 - -mbedtls_mpi_core_add_if #381: 0x8000000000000000 + 0x1234567890abcdef0 = (0x1a34567890abcdef0, carry 0)/(0x1a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef0":"1a34567890abcdef0":0:"1a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #382: 0x8000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #383: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #384: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #385: 0x8000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000008000000000000000, carry 0)/(0x100000000000000008000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"100000000000000000000000000000000":"100000000000000008000000000000000":0:"100000000000000008000000000000000":0 - -mbedtls_mpi_core_add_if #386: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #387: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x7efefefefefefefe, carry 1)/(0x7efefefefefefefe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"7efefefefefefefe":1:"7efefefefefefefe":1 - -mbedtls_mpi_core_add_if #388: 0x8000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x7ffffffffffffffe, carry 1)/(0x7ffffffffffffffe, carry 1) -mpi_core_add_if:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"7ffffffffffffffe":1:"7ffffffffffffffe":1 - -mbedtls_mpi_core_add_if #389: 0x8000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x7fffffffffffffff, carry 1)/(0x7fffffffffffffff, carry 1) -mpi_core_add_if:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7fffffffffffffff":1:"7fffffffffffffff":1 - -mbedtls_mpi_core_add_if #390: 0x8000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000008000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000008000000000000000, carry 0) -mpi_core_add_if:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000008000000000000000":0:"10000000000000000000000000000000000000000000000008000000000000000":0 - -mbedtls_mpi_core_add_if #391: 0x8000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0) -mpi_core_add_if:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":0 - -mbedtls_mpi_core_add_if #392: 0x8000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0) -mpi_core_add_if:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":0 - -mbedtls_mpi_core_add_if #393: 0xfefefefefefefefe + 0xfefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #394: 0xfefefefefefefefe + 0xfffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #395: 0xfefefefefefefefe + 0xffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #396: 0xfefefefefefefefe + 0x10000000000000000 = (0x1fefefefefefefefe, carry 0)/(0x1fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"10000000000000000":"1fefefefefefefefe":0:"1fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #397: 0xfefefefefefefefe + 0x1234567890abcdef0 = (0x22244668809bbddee, carry 0)/(0x22244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef0":"22244668809bbddee":0:"22244668809bbddee":0 - -mbedtls_mpi_core_add_if #398: 0xfefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #399: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #400: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #401: 0xfefefefefefefefe + 0x100000000000000000000000000000000 = (0x10000000000000000fefefefefefefefe, carry 0)/(0x10000000000000000fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"100000000000000000000000000000000":"10000000000000000fefefefefefefefe":0:"10000000000000000fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #402: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef022244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef022244668809bbddee":0:"1234567890abcdef022244668809bbddee":0 - -mbedtls_mpi_core_add_if #403: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfdfdfdfdfdfdfdfc, carry 1)/(0xfdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fdfdfdfdfdfdfdfc":1:"fdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #404: 0xfefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #405: 0xfefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #406: 0xfefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0)/(0x1000000000000000000000000000000000000000000000000fefefefefefefefe, carry 0) -mpi_core_add_if:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fefefefefefefefe":0:"1000000000000000000000000000000000000000000000000fefefefefefefefe":0 - -mbedtls_mpi_core_add_if #407: 0xfefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee, carry 0) -mpi_core_add_if:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0:"1234567890abcdef01234567890abcdef01234567890abcdef022244668809bbddee":0 - -mbedtls_mpi_core_add_if #408: 0xfefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029, carry 0) -mpi_core_add_if:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955800eb014f75b029":0 - -mbedtls_mpi_core_add_if #409: 0xfffffffffffffffe + 0xfffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #410: 0xfffffffffffffffe + 0xffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #411: 0xfffffffffffffffe + 0x10000000000000000 = (0x1fffffffffffffffe, carry 0)/(0x1fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"10000000000000000":"1fffffffffffffffe":0:"1fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #412: 0xfffffffffffffffe + 0x1234567890abcdef0 = (0x2234567890abcdeee, carry 0)/(0x2234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef0":"2234567890abcdeee":0:"2234567890abcdeee":0 - -mbedtls_mpi_core_add_if #413: 0xfffffffffffffffe + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #414: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #415: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #416: 0xfffffffffffffffe + 0x100000000000000000000000000000000 = (0x10000000000000000fffffffffffffffe, carry 0)/(0x10000000000000000fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"100000000000000000000000000000000":"10000000000000000fffffffffffffffe":0:"10000000000000000fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #417: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef02234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeee":0:"1234567890abcdef02234567890abcdeee":0 - -mbedtls_mpi_core_add_if #418: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefc, carry 1)/(0xfefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefc":1:"fefefefefefefefc":1 - -mbedtls_mpi_core_add_if #419: 0xfffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffc, carry 1)/(0xfffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffc":1:"fffffffffffffffc":1 - -mbedtls_mpi_core_add_if #420: 0xfffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #421: 0xfffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0)/(0x1000000000000000000000000000000000000000000000000fffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000fffffffffffffffe":0:"1000000000000000000000000000000000000000000000000fffffffffffffffe":0 - -mbedtls_mpi_core_add_if #422: 0xfffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":0 - -mbedtls_mpi_core_add_if #423: 0xfffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":0 - -mbedtls_mpi_core_add_if #424: 0xffffffffffffffff + 0xffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #425: 0xffffffffffffffff + 0x10000000000000000 = (0x1ffffffffffffffff, carry 0)/(0x1ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"10000000000000000":"1ffffffffffffffff":0:"1ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #426: 0xffffffffffffffff + 0x1234567890abcdef0 = (0x2234567890abcdeef, carry 0)/(0x2234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef0":"2234567890abcdeef":0:"2234567890abcdeef":0 - -mbedtls_mpi_core_add_if #427: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #428: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #429: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #430: 0xffffffffffffffff + 0x100000000000000000000000000000000 = (0x10000000000000000ffffffffffffffff, carry 0)/(0x10000000000000000ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"100000000000000000000000000000000":"10000000000000000ffffffffffffffff":0:"10000000000000000ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #431: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef02234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdeef":0:"1234567890abcdef02234567890abcdeef":0 - -mbedtls_mpi_core_add_if #432: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefd, carry 1)/(0xfefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefd":1:"fefefefefefefefd":1 - -mbedtls_mpi_core_add_if #433: 0xffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffd, carry 1)/(0xfffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffd":1:"fffffffffffffffd":1 - -mbedtls_mpi_core_add_if #434: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #435: 0xffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0)/(0x1000000000000000000000000000000000000000000000000ffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000000ffffffffffffffff":0:"1000000000000000000000000000000000000000000000000ffffffffffffffff":0 - -mbedtls_mpi_core_add_if #436: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeef":0 - -mbedtls_mpi_core_add_if #437: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12a":0 - -mbedtls_mpi_core_add_if #438: 0x10000000000000000 + 0x10000000000000000 = (0x20000000000000000, carry 0)/(0x20000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"10000000000000000":"20000000000000000":0:"20000000000000000":0 - -mbedtls_mpi_core_add_if #439: 0x10000000000000000 + 0x1234567890abcdef0 = (0x2234567890abcdef0, carry 0)/(0x2234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef0":"2234567890abcdef0":0:"2234567890abcdef0":0 - -mbedtls_mpi_core_add_if #440: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 - -mbedtls_mpi_core_add_if #441: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #442: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 - -mbedtls_mpi_core_add_if #443: 0x10000000000000000 + 0x100000000000000000000000000000000 = (0x100000000000000010000000000000000, carry 0)/(0x100000000000000010000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"100000000000000000000000000000000":"100000000000000010000000000000000":0:"100000000000000010000000000000000":0 - -mbedtls_mpi_core_add_if #444: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef02234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02234567890abcdef0":0:"1234567890abcdef02234567890abcdef0":0 - -mbedtls_mpi_core_add_if #445: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfefefefefefefefe, carry 1)/(0xfefefefefefefefe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":1:"fefefefefefefefe":1 - -mbedtls_mpi_core_add_if #446: 0x10000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffe, carry 1)/(0xfffffffffffffffe, carry 1) -mpi_core_add_if:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":1:"fffffffffffffffe":1 - -mbedtls_mpi_core_add_if #447: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffff, carry 1)/(0xffffffffffffffff, carry 1) -mpi_core_add_if:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":1:"ffffffffffffffff":1 - -mbedtls_mpi_core_add_if #448: 0x10000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000000000000000000010000000000000000, carry 0)/(0x10000000000000000000000000000000000000000000000010000000000000000, carry 0) -mpi_core_add_if:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000010000000000000000":0:"10000000000000000000000000000000000000000000000010000000000000000":0 - -mbedtls_mpi_core_add_if #449: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":0 - -mbedtls_mpi_core_add_if #450: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0) -mpi_core_add_if:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":0 - -mbedtls_mpi_core_add_if #451: 0x1234567890abcdef0 + 0x1234567890abcdef0 = (0x2468acf121579bde0, carry 0)/(0x2468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef0":"2468acf121579bde0":0:"2468acf121579bde0":0 - -mbedtls_mpi_core_add_if #452: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 - -mbedtls_mpi_core_add_if #453: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 - -mbedtls_mpi_core_add_if #454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 - -mbedtls_mpi_core_add_if #455: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 = (0x10000000000000001234567890abcdef0, carry 0)/(0x10000000000000001234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"100000000000000000000000000000000":"10000000000000001234567890abcdef0":0:"10000000000000001234567890abcdef0":0 - -mbedtls_mpi_core_add_if #456: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x1234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef02468acf121579bde0":0:"1234567890abcdef02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #457: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x12244668809bbddee, carry 1)/(0x12244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12244668809bbddee":1:"12244668809bbddee":1 - -mbedtls_mpi_core_add_if #458: 0x1234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdeee, carry 1)/(0x1234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdeee":1:"1234567890abcdeee":1 - -mbedtls_mpi_core_add_if #459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdeef, carry 1)/(0x1234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdeef":1:"1234567890abcdeef":1 - -mbedtls_mpi_core_add_if #460: 0x1234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0)/(0x1000000000000000000000000000000000000000000000001234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1000000000000000000000000000000000000000000000001234567890abcdef0":0:"1000000000000000000000000000000000000000000000001234567890abcdef0":0 - -mbedtls_mpi_core_add_if #461: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0:"1234567890abcdef01234567890abcdef01234567890abcdef02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #462: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #463: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #464: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #465: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #466: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"1fffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #467: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef012244668809bbddee, carry 0)/(0x1334567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef012244668809bbddee":0:"1334567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #468: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #469: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #470: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #471: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0:"100000000000000000000000000000000fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #472: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0:"1234567890abcdef01234567890abcdef01334567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #473: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029, carry 0) -mpi_core_add_if:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945800eb014f75b029":0 - -mbedtls_mpi_core_add_if #474: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #475: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #476: 0xfffffffffffffffffffffffffffffffe + 0x100000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"1fffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #477: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeee, carry 0)/(0x1334567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeee":0:"1334567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #478: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefc":1:"fffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #479: 0xfffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #480: 0xfffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #481: 0xfffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0)/(0x100000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0:"100000000000000000000000000000000fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #482: 0xfffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #483: 0xfffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b129":0 - -mbedtls_mpi_core_add_if #484: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #485: 0xffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"1ffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #486: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdeef, carry 0)/(0x1334567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdeef":0:"1334567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #487: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefd":1:"fffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #488: 0xffffffffffffffffffffffffffffffff + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #489: 0xffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #490: 0xffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0)/(0x100000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0:"100000000000000000000000000000000ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #491: 0xffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #492: 0xffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_add_if #493: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 = (0x200000000000000000000000000000000, carry 0)/(0x200000000000000000000000000000000, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"100000000000000000000000000000000":"200000000000000000000000000000000":0:"200000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #494: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 = (0x1334567890abcdef01234567890abcdef0, carry 0)/(0x1334567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"1334567890abcdef01234567890abcdef0":0:"1334567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #495: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffefefefefefefefe, carry 1)/(0xfffffffffffffffffefefefefefefefe, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1:"fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_add_if #496: 0x100000000000000000000000000000000 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #497: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xffffffffffffffffffffffffffffffff, carry 1)/(0xffffffffffffffffffffffffffffffff, carry 1) -mpi_core_add_if:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1:"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_add_if #498: 0x100000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000000100000000000000000000000000000000, carry 0)/(0x10000000000000000000000000000000100000000000000000000000000000000, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000100000000000000000000000000000000":0:"10000000000000000000000000000000100000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #499: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0)/(0x1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0:"1234567890abcdef01234567890abcdef01334567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #500: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #501: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #502: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0x1234567890abcdef012244668809bbddee, carry 1)/(0x1234567890abcdef012244668809bbddee, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012244668809bbddee":1:"1234567890abcdef012244668809bbddee":1 - -mbedtls_mpi_core_add_if #503: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0x1234567890abcdef01234567890abcdeee, carry 1)/(0x1234567890abcdef01234567890abcdeee, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdeee":1:"1234567890abcdef01234567890abcdeee":1 - -mbedtls_mpi_core_add_if #504: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0x1234567890abcdef01234567890abcdeef, carry 1)/(0x1234567890abcdef01234567890abcdeef, carry 1) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdeef":1:"1234567890abcdef01234567890abcdeef":1 - -mbedtls_mpi_core_add_if #505: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0)/(0x10000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0:"10000000000000000000000000000001234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #506: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0)/(0x1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0:"1234567890abcdef01234567890abcdef02468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #507: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6a8e77f565f5a1512957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #508: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfdfdfdfdfc":1 - -mbedtls_mpi_core_add_if #509: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefc":1 - -mbedtls_mpi_core_add_if #510: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":1 - -mbedtls_mpi_core_add_if #511: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_add_if #512: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0:"1235567890abcdef01234567890abcdef01234567890abcdef012244668809bbddee":0 - -mbedtls_mpi_core_add_if #513: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945800eb014f75b029":0 - -mbedtls_mpi_core_add_if #514: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":1 - -mbedtls_mpi_core_add_if #515: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 1) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":1 - -mbedtls_mpi_core_add_if #516: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0)/(0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0:"1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_add_if #517: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeee":0 - -mbedtls_mpi_core_add_if #518: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129, carry 0) -mpi_core_add_if:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b129":0 - -mbedtls_mpi_core_add_if #519: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_add_if #520: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0)/(0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0:"1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_add_if #521: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_add_if #522: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0) -mpi_core_add_if:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_add_if #523: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x10000000000000000000000000000000000000000000000000000000000000000 = (0x20000000000000000000000000000000000000000000000000000000000000000, carry 0)/(0x20000000000000000000000000000000000000000000000000000000000000000, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"20000000000000000000000000000000000000000000000000000000000000000":0:"20000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_add_if #524: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0)/(0x1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0:"1235567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_add_if #525: 0x10000000000000000000000000000000000000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0) -mpi_core_add_if:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38eef0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_add_if #526: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = (0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0)/(0x2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0:"2468acf121579bde02468acf121579bde02468acf121579bde02468acf121579bde0":0 - -mbedtls_mpi_core_add_if #527: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b, carry 0) -mpi_core_add_if:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb4b22473e194a98390e1ddf1be8c8abc3b6a8e77f565f5a1512957c47538b5b33901b":0 - -mbedtls_mpi_core_add_if #528: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = (0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0)/(0x9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256, carry 0) -mpi_core_add_if:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0:"9bee5a0f696e391b596d9ff52a9f1b104a96c4ee13261175e007f56e644fe68052c876b44c7ecdc1a787f452fdee2eabdfaa771f6d970258d77ef79e2f25317b328f89916286482814581ebf5af2b14d20a1530f4c12dd3e0abf671dbe18b113d949419f53368bf7bddc98d2d6651bb9d5c8e4728b203d804a0ed6256":0 - -mbedtls_mpi_core_sub #1: 0x0 - 0x0 = 0x0/0 (for when sizeof(mbedtls_mpi_uint) == 4/8), carry 0 -mpi_core_sub:"0":"0":"0":"0":0 - -mbedtls_mpi_core_sub #2: 0x0 - 0x1 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #3: 0x0 - 0x3 = 0xfffffffd/fffffffffffffffd, carry 1 -mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 - -mbedtls_mpi_core_sub #4: 0x0 - 0xf = 0xfffffff1/fffffffffffffff1, carry 1 -mpi_core_sub:"0":"f":"fffffff1":"fffffffffffffff1":1 - -mbedtls_mpi_core_sub #5: 0x0 - 0xfe = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"0":"fe":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #6: 0x0 - 0xff = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"0":"ff":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #7: 0x0 - 0x100 = 0xffffff00/ffffffffffffff00, carry 1 -mpi_core_sub:"0":"100":"ffffff00":"ffffffffffffff00":1 - -mbedtls_mpi_core_sub #8: 0x0 - 0xff00 = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"0":"ff00":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #9: 0x0 - 0xfffe = 0xffff0002/ffffffffffff0002, carry 1 -mpi_core_sub:"0":"fffe":"ffff0002":"ffffffffffff0002":1 - -mbedtls_mpi_core_sub #10: 0x0 - 0xffff = 0xffff0001/ffffffffffff0001, carry 1 -mpi_core_sub:"0":"ffff":"ffff0001":"ffffffffffff0001":1 - -mbedtls_mpi_core_sub #11: 0x0 - 0x10000 = 0xffff0000/ffffffffffff0000, carry 1 -mpi_core_sub:"0":"10000":"ffff0000":"ffffffffffff0000":1 - -mbedtls_mpi_core_sub #12: 0x0 - 0xfffffffe = 0x2/ffffffff00000002, carry 1 -mpi_core_sub:"0":"fffffffe":"2":"ffffffff00000002":1 - -mbedtls_mpi_core_sub #13: 0x0 - 0xffffffff = 0x1/ffffffff00000001, carry 1 -mpi_core_sub:"0":"ffffffff":"1":"ffffffff00000001":1 - -mbedtls_mpi_core_sub #14: 0x0 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 1 -mpi_core_sub:"0":"100000000":"ffffffff00000000":"ffffffff00000000":1 - -mbedtls_mpi_core_sub #15: 0x0 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 1 -mpi_core_sub:"0":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":1 - -mbedtls_mpi_core_sub #16: 0x0 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 1 -mpi_core_sub:"0":"8000000000000000":"8000000000000000":"8000000000000000":1 - -mbedtls_mpi_core_sub #17: 0x0 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #18: 0x0 - 0xfffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #19: 0x0 - 0xffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #20: 0x0 - 0x10000000000000000 = 0xffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 1 -mpi_core_sub:"0":"10000000000000000":"ffffffff0000000000000000":"ffffffffffffffff0000000000000000":1 - -mbedtls_mpi_core_sub #21: 0x0 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef0":"fffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":1 - -mbedtls_mpi_core_sub #22: 0x0 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #23: 0x0 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #24: 0x0 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffffffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #25: 0x0 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000/ffffffffffffffff00000000000000000000000000000000, carry 1 -mpi_core_sub:"0":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000000":"ffffffffffffffff00000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #26: 0x0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #27: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":1 - -mbedtls_mpi_core_sub #28: 0x0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 1 -mpi_core_sub:"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":1 - -mbedtls_mpi_core_sub #29: 0x0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 1 -mpi_core_sub:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":1 - -mbedtls_mpi_core_sub #30: 0x0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000, carry 1 -mpi_core_sub:"0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #31: 0x0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #32: 0x0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #33: 0x1 - 0x0 = 0x1/1, carry 0 -mpi_core_sub:"1":"0":"1":"1":0 - -mbedtls_mpi_core_sub #34: 0x1 - 0x1 = 0x0/0, carry 0 -mpi_core_sub:"1":"1":"0":"0":0 - -mbedtls_mpi_core_sub #35: 0x1 - 0x3 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #36: 0x1 - 0xf = 0xfffffff2/fffffffffffffff2, carry 1 -mpi_core_sub:"1":"f":"fffffff2":"fffffffffffffff2":1 - -mbedtls_mpi_core_sub #37: 0x1 - 0xfe = 0xffffff03/ffffffffffffff03, carry 1 -mpi_core_sub:"1":"fe":"ffffff03":"ffffffffffffff03":1 - -mbedtls_mpi_core_sub #38: 0x1 - 0xff = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"1":"ff":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #39: 0x1 - 0x100 = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"1":"100":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #40: 0x1 - 0xff00 = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"1":"ff00":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #41: 0x1 - 0xfffe = 0xffff0003/ffffffffffff0003, carry 1 -mpi_core_sub:"1":"fffe":"ffff0003":"ffffffffffff0003":1 - -mbedtls_mpi_core_sub #42: 0x1 - 0xffff = 0xffff0002/ffffffffffff0002, carry 1 -mpi_core_sub:"1":"ffff":"ffff0002":"ffffffffffff0002":1 - -mbedtls_mpi_core_sub #43: 0x1 - 0x10000 = 0xffff0001/ffffffffffff0001, carry 1 -mpi_core_sub:"1":"10000":"ffff0001":"ffffffffffff0001":1 - -mbedtls_mpi_core_sub #44: 0x1 - 0xfffffffe = 0x3/ffffffff00000003, carry 1 -mpi_core_sub:"1":"fffffffe":"3":"ffffffff00000003":1 - -mbedtls_mpi_core_sub #45: 0x1 - 0xffffffff = 0x2/ffffffff00000002, carry 1 -mpi_core_sub:"1":"ffffffff":"2":"ffffffff00000002":1 - -mbedtls_mpi_core_sub #46: 0x1 - 0x100000000 = 0xffffffff00000001/ffffffff00000001, carry 1 -mpi_core_sub:"1":"100000000":"ffffffff00000001":"ffffffff00000001":1 - -mbedtls_mpi_core_sub #47: 0x1 - 0x1f7f7f7f7f7f7f = 0xffe0808080808082/ffe0808080808082, carry 1 -mpi_core_sub:"1":"1f7f7f7f7f7f7f":"ffe0808080808082":"ffe0808080808082":1 - -mbedtls_mpi_core_sub #48: 0x1 - 0x8000000000000000 = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"1":"8000000000000000":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #49: 0x1 - 0xfefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #50: 0x1 - 0xfffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #51: 0x1 - 0xffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #52: 0x1 - 0x10000000000000000 = 0xffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 1 -mpi_core_sub:"1":"10000000000000000":"ffffffff0000000000000001":"ffffffffffffffff0000000000000001":1 - -mbedtls_mpi_core_sub #53: 0x1 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432111/fffffffffffffffedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef0":"fffffffedcba9876f5432111":"fffffffffffffffedcba9876f5432111":1 - -mbedtls_mpi_core_sub #54: 0x1 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #55: 0x1 - 0xfffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #56: 0x1 - 0xffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffffffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #57: 0x1 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000001/ffffffffffffffff00000000000000000000000000000001, carry 1 -mpi_core_sub:"1":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000001":"ffffffffffffffff00000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #58: 0x1 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432111/ffffffffffffffedcba9876f543210fedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432111":"ffffffffffffffedcba9876f543210fedcba9876f5432111":1 - -mbedtls_mpi_core_sub #59: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010103/101010101010103, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010103":"101010101010103":1 - -mbedtls_mpi_core_sub #60: 0x1 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x3/3, carry 1 -mpi_core_sub:"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"3":1 - -mbedtls_mpi_core_sub #61: 0x1 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x2/2, carry 1 -mpi_core_sub:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"2":"2":1 - -mbedtls_mpi_core_sub #62: 0x1 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000001/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001, carry 1 -mpi_core_sub:"1":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000001":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #63: 0x1 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111, carry 1 -mpi_core_sub:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432111":1 - -mbedtls_mpi_core_sub #64: 0x1 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6, carry 1 -mpi_core_sub:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed6":1 - -mbedtls_mpi_core_sub #65: 0x3 - 0x0 = 0x3/3, carry 0 -mpi_core_sub:"3":"0":"3":"3":0 - -mbedtls_mpi_core_sub #66: 0x3 - 0x1 = 0x2/2, carry 0 -mpi_core_sub:"3":"1":"2":"2":0 - -mbedtls_mpi_core_sub #67: 0x3 - 0x3 = 0x0/0, carry 0 -mpi_core_sub:"3":"3":"0":"0":0 - -mbedtls_mpi_core_sub #68: 0x3 - 0xf = 0xfffffff4/fffffffffffffff4, carry 1 -mpi_core_sub:"3":"f":"fffffff4":"fffffffffffffff4":1 - -mbedtls_mpi_core_sub #69: 0x3 - 0xfe = 0xffffff05/ffffffffffffff05, carry 1 -mpi_core_sub:"3":"fe":"ffffff05":"ffffffffffffff05":1 - -mbedtls_mpi_core_sub #70: 0x3 - 0xff = 0xffffff04/ffffffffffffff04, carry 1 -mpi_core_sub:"3":"ff":"ffffff04":"ffffffffffffff04":1 - -mbedtls_mpi_core_sub #71: 0x3 - 0x100 = 0xffffff03/ffffffffffffff03, carry 1 -mpi_core_sub:"3":"100":"ffffff03":"ffffffffffffff03":1 - -mbedtls_mpi_core_sub #72: 0x3 - 0xff00 = 0xffff0103/ffffffffffff0103, carry 1 -mpi_core_sub:"3":"ff00":"ffff0103":"ffffffffffff0103":1 - -mbedtls_mpi_core_sub #73: 0x3 - 0xfffe = 0xffff0005/ffffffffffff0005, carry 1 -mpi_core_sub:"3":"fffe":"ffff0005":"ffffffffffff0005":1 - -mbedtls_mpi_core_sub #74: 0x3 - 0xffff = 0xffff0004/ffffffffffff0004, carry 1 -mpi_core_sub:"3":"ffff":"ffff0004":"ffffffffffff0004":1 - -mbedtls_mpi_core_sub #75: 0x3 - 0x10000 = 0xffff0003/ffffffffffff0003, carry 1 -mpi_core_sub:"3":"10000":"ffff0003":"ffffffffffff0003":1 - -mbedtls_mpi_core_sub #76: 0x3 - 0xfffffffe = 0x5/ffffffff00000005, carry 1 -mpi_core_sub:"3":"fffffffe":"5":"ffffffff00000005":1 - -mbedtls_mpi_core_sub #77: 0x3 - 0xffffffff = 0x4/ffffffff00000004, carry 1 -mpi_core_sub:"3":"ffffffff":"4":"ffffffff00000004":1 - -mbedtls_mpi_core_sub #78: 0x3 - 0x100000000 = 0xffffffff00000003/ffffffff00000003, carry 1 -mpi_core_sub:"3":"100000000":"ffffffff00000003":"ffffffff00000003":1 - -mbedtls_mpi_core_sub #79: 0x3 - 0x1f7f7f7f7f7f7f = 0xffe0808080808084/ffe0808080808084, carry 1 -mpi_core_sub:"3":"1f7f7f7f7f7f7f":"ffe0808080808084":"ffe0808080808084":1 - -mbedtls_mpi_core_sub #80: 0x3 - 0x8000000000000000 = 0x8000000000000003/8000000000000003, carry 1 -mpi_core_sub:"3":"8000000000000000":"8000000000000003":"8000000000000003":1 - -mbedtls_mpi_core_sub #81: 0x3 - 0xfefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #82: 0x3 - 0xfffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #83: 0x3 - 0xffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #84: 0x3 - 0x10000000000000000 = 0xffffffff0000000000000003/ffffffffffffffff0000000000000003, carry 1 -mpi_core_sub:"3":"10000000000000000":"ffffffff0000000000000003":"ffffffffffffffff0000000000000003":1 - -mbedtls_mpi_core_sub #85: 0x3 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432113/fffffffffffffffedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef0":"fffffffedcba9876f5432113":"fffffffffffffffedcba9876f5432113":1 - -mbedtls_mpi_core_sub #86: 0x3 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #87: 0x3 - 0xfffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #88: 0x3 - 0xffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffffffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #89: 0x3 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000003/ffffffffffffffff00000000000000000000000000000003, carry 1 -mpi_core_sub:"3":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000003":"ffffffffffffffff00000000000000000000000000000003":1 - -mbedtls_mpi_core_sub #90: 0x3 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432113/ffffffffffffffedcba9876f543210fedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432113":"ffffffffffffffedcba9876f543210fedcba9876f5432113":1 - -mbedtls_mpi_core_sub #91: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010105/101010101010105, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010105":"101010101010105":1 - -mbedtls_mpi_core_sub #92: 0x3 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x5/5, carry 1 -mpi_core_sub:"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"5":"5":1 - -mbedtls_mpi_core_sub #93: 0x3 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4/4, carry 1 -mpi_core_sub:"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4":"4":1 - -mbedtls_mpi_core_sub #94: 0x3 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000003/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003, carry 1 -mpi_core_sub:"3":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000003":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000003":1 - -mbedtls_mpi_core_sub #95: 0x3 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113, carry 1 -mpi_core_sub:"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432113":1 - -mbedtls_mpi_core_sub #96: 0x3 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8, carry 1 -mpi_core_sub:"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed8":1 - -mbedtls_mpi_core_sub #97: 0xf - 0x0 = 0xf/f, carry 0 -mpi_core_sub:"f":"0":"f":"f":0 - -mbedtls_mpi_core_sub #98: 0xf - 0x1 = 0xe/e, carry 0 -mpi_core_sub:"f":"1":"e":"e":0 - -mbedtls_mpi_core_sub #99: 0xf - 0x3 = 0xc/c, carry 0 -mpi_core_sub:"f":"3":"c":"c":0 - -mbedtls_mpi_core_sub #100: 0xf - 0xf = 0x0/0, carry 0 -mpi_core_sub:"f":"f":"0":"0":0 - -mbedtls_mpi_core_sub #101: 0xf - 0xfe = 0xffffff11/ffffffffffffff11, carry 1 -mpi_core_sub:"f":"fe":"ffffff11":"ffffffffffffff11":1 - -mbedtls_mpi_core_sub #102: 0xf - 0xff = 0xffffff10/ffffffffffffff10, carry 1 -mpi_core_sub:"f":"ff":"ffffff10":"ffffffffffffff10":1 - -mbedtls_mpi_core_sub #103: 0xf - 0x100 = 0xffffff0f/ffffffffffffff0f, carry 1 -mpi_core_sub:"f":"100":"ffffff0f":"ffffffffffffff0f":1 - -mbedtls_mpi_core_sub #104: 0xf - 0xff00 = 0xffff010f/ffffffffffff010f, carry 1 -mpi_core_sub:"f":"ff00":"ffff010f":"ffffffffffff010f":1 - -mbedtls_mpi_core_sub #105: 0xf - 0xfffe = 0xffff0011/ffffffffffff0011, carry 1 -mpi_core_sub:"f":"fffe":"ffff0011":"ffffffffffff0011":1 - -mbedtls_mpi_core_sub #106: 0xf - 0xffff = 0xffff0010/ffffffffffff0010, carry 1 -mpi_core_sub:"f":"ffff":"ffff0010":"ffffffffffff0010":1 - -mbedtls_mpi_core_sub #107: 0xf - 0x10000 = 0xffff000f/ffffffffffff000f, carry 1 -mpi_core_sub:"f":"10000":"ffff000f":"ffffffffffff000f":1 - -mbedtls_mpi_core_sub #108: 0xf - 0xfffffffe = 0x11/ffffffff00000011, carry 1 -mpi_core_sub:"f":"fffffffe":"11":"ffffffff00000011":1 - -mbedtls_mpi_core_sub #109: 0xf - 0xffffffff = 0x10/ffffffff00000010, carry 1 -mpi_core_sub:"f":"ffffffff":"10":"ffffffff00000010":1 - -mbedtls_mpi_core_sub #110: 0xf - 0x100000000 = 0xffffffff0000000f/ffffffff0000000f, carry 1 -mpi_core_sub:"f":"100000000":"ffffffff0000000f":"ffffffff0000000f":1 - -mbedtls_mpi_core_sub #111: 0xf - 0x1f7f7f7f7f7f7f = 0xffe0808080808090/ffe0808080808090, carry 1 -mpi_core_sub:"f":"1f7f7f7f7f7f7f":"ffe0808080808090":"ffe0808080808090":1 - -mbedtls_mpi_core_sub #112: 0xf - 0x8000000000000000 = 0x800000000000000f/800000000000000f, carry 1 -mpi_core_sub:"f":"8000000000000000":"800000000000000f":"800000000000000f":1 - -mbedtls_mpi_core_sub #113: 0xf - 0xfefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #114: 0xf - 0xfffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #115: 0xf - 0xffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #116: 0xf - 0x10000000000000000 = 0xffffffff000000000000000f/ffffffffffffffff000000000000000f, carry 1 -mpi_core_sub:"f":"10000000000000000":"ffffffff000000000000000f":"ffffffffffffffff000000000000000f":1 - -mbedtls_mpi_core_sub #117: 0xf - 0x1234567890abcdef0 = 0xfffffffedcba9876f543211f/fffffffffffffffedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef0":"fffffffedcba9876f543211f":"fffffffffffffffedcba9876f543211f":1 - -mbedtls_mpi_core_sub #118: 0xf - 0xfffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #119: 0xf - 0xfffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #120: 0xf - 0xffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffffffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #121: 0xf - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000f/ffffffffffffffff0000000000000000000000000000000f, carry 1 -mpi_core_sub:"f":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000000f":"ffffffffffffffff0000000000000000000000000000000f":1 - -mbedtls_mpi_core_sub #122: 0xf - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543211f/ffffffffffffffedcba9876f543210fedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543211f":"ffffffffffffffedcba9876f543210fedcba9876f543211f":1 - -mbedtls_mpi_core_sub #123: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010111/101010101010111, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010111":"101010101010111":1 - -mbedtls_mpi_core_sub #124: 0xf - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x11/11, carry 1 -mpi_core_sub:"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"11":"11":1 - -mbedtls_mpi_core_sub #125: 0xf - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10/10, carry 1 -mpi_core_sub:"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10":"10":1 - -mbedtls_mpi_core_sub #126: 0xf - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000000f/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f, carry 1 -mpi_core_sub:"f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000000f":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000000f":1 - -mbedtls_mpi_core_sub #127: 0xf - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f, carry 1 -mpi_core_sub:"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543211f":1 - -mbedtls_mpi_core_sub #128: 0xf - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4, carry 1 -mpi_core_sub:"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ee4":1 - -mbedtls_mpi_core_sub #129: 0xfe - 0x0 = 0xfe/fe, carry 0 -mpi_core_sub:"fe":"0":"fe":"fe":0 - -mbedtls_mpi_core_sub #130: 0xfe - 0x1 = 0xfd/fd, carry 0 -mpi_core_sub:"fe":"1":"fd":"fd":0 - -mbedtls_mpi_core_sub #131: 0xfe - 0x3 = 0xfb/fb, carry 0 -mpi_core_sub:"fe":"3":"fb":"fb":0 - -mbedtls_mpi_core_sub #132: 0xfe - 0xf = 0xef/ef, carry 0 -mpi_core_sub:"fe":"f":"ef":"ef":0 - -mbedtls_mpi_core_sub #133: 0xfe - 0xfe = 0x0/0, carry 0 -mpi_core_sub:"fe":"fe":"0":"0":0 - -mbedtls_mpi_core_sub #134: 0xfe - 0xff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fe":"ff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #135: 0xfe - 0x100 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fe":"100":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #136: 0xfe - 0xff00 = 0xffff01fe/ffffffffffff01fe, carry 1 -mpi_core_sub:"fe":"ff00":"ffff01fe":"ffffffffffff01fe":1 - -mbedtls_mpi_core_sub #137: 0xfe - 0xfffe = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"fe":"fffe":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #138: 0xfe - 0xffff = 0xffff00ff/ffffffffffff00ff, carry 1 -mpi_core_sub:"fe":"ffff":"ffff00ff":"ffffffffffff00ff":1 - -mbedtls_mpi_core_sub #139: 0xfe - 0x10000 = 0xffff00fe/ffffffffffff00fe, carry 1 -mpi_core_sub:"fe":"10000":"ffff00fe":"ffffffffffff00fe":1 - -mbedtls_mpi_core_sub #140: 0xfe - 0xfffffffe = 0x100/ffffffff00000100, carry 1 -mpi_core_sub:"fe":"fffffffe":"100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #141: 0xfe - 0xffffffff = 0xff/ffffffff000000ff, carry 1 -mpi_core_sub:"fe":"ffffffff":"ff":"ffffffff000000ff":1 - -mbedtls_mpi_core_sub #142: 0xfe - 0x100000000 = 0xffffffff000000fe/ffffffff000000fe, carry 1 -mpi_core_sub:"fe":"100000000":"ffffffff000000fe":"ffffffff000000fe":1 - -mbedtls_mpi_core_sub #143: 0xfe - 0x1f7f7f7f7f7f7f = 0xffe080808080817f/ffe080808080817f, carry 1 -mpi_core_sub:"fe":"1f7f7f7f7f7f7f":"ffe080808080817f":"ffe080808080817f":1 - -mbedtls_mpi_core_sub #144: 0xfe - 0x8000000000000000 = 0x80000000000000fe/80000000000000fe, carry 1 -mpi_core_sub:"fe":"8000000000000000":"80000000000000fe":"80000000000000fe":1 - -mbedtls_mpi_core_sub #145: 0xfe - 0xfefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #146: 0xfe - 0xfffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #147: 0xfe - 0xffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #148: 0xfe - 0x10000000000000000 = 0xffffffff00000000000000fe/ffffffffffffffff00000000000000fe, carry 1 -mpi_core_sub:"fe":"10000000000000000":"ffffffff00000000000000fe":"ffffffffffffffff00000000000000fe":1 - -mbedtls_mpi_core_sub #149: 0xfe - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220e/fffffffffffffffedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef0":"fffffffedcba9876f543220e":"fffffffffffffffedcba9876f543220e":1 - -mbedtls_mpi_core_sub #150: 0xfe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #151: 0xfe - 0xfffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #152: 0xfe - 0xffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #153: 0xfe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000fe/ffffffffffffffff000000000000000000000000000000fe, carry 1 -mpi_core_sub:"fe":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000fe":"ffffffffffffffff000000000000000000000000000000fe":1 - -mbedtls_mpi_core_sub #154: 0xfe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220e/ffffffffffffffedcba9876f543210fedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220e":"ffffffffffffffedcba9876f543210fedcba9876f543220e":1 - -mbedtls_mpi_core_sub #155: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010200/101010101010200, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010200":"101010101010200":1 - -mbedtls_mpi_core_sub #156: 0xfe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100/100, carry 1 -mpi_core_sub:"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"100":1 - -mbedtls_mpi_core_sub #157: 0xfe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff/ff, carry 1 -mpi_core_sub:"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ff":1 - -mbedtls_mpi_core_sub #158: 0xfe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000fe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe, carry 1 -mpi_core_sub:"fe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000fe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000fe":1 - -mbedtls_mpi_core_sub #159: 0xfe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e, carry 1 -mpi_core_sub:"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220e":1 - -mbedtls_mpi_core_sub #160: 0xfe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3, carry 1 -mpi_core_sub:"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd3":1 - -mbedtls_mpi_core_sub #161: 0xff - 0x0 = 0xff/ff, carry 0 -mpi_core_sub:"ff":"0":"ff":"ff":0 - -mbedtls_mpi_core_sub #162: 0xff - 0x1 = 0xfe/fe, carry 0 -mpi_core_sub:"ff":"1":"fe":"fe":0 - -mbedtls_mpi_core_sub #163: 0xff - 0x3 = 0xfc/fc, carry 0 -mpi_core_sub:"ff":"3":"fc":"fc":0 - -mbedtls_mpi_core_sub #164: 0xff - 0xf = 0xf0/f0, carry 0 -mpi_core_sub:"ff":"f":"f0":"f0":0 - -mbedtls_mpi_core_sub #165: 0xff - 0xfe = 0x1/1, carry 0 -mpi_core_sub:"ff":"fe":"1":"1":0 - -mbedtls_mpi_core_sub #166: 0xff - 0xff = 0x0/0, carry 0 -mpi_core_sub:"ff":"ff":"0":"0":0 - -mbedtls_mpi_core_sub #167: 0xff - 0x100 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ff":"100":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #168: 0xff - 0xff00 = 0xffff01ff/ffffffffffff01ff, carry 1 -mpi_core_sub:"ff":"ff00":"ffff01ff":"ffffffffffff01ff":1 - -mbedtls_mpi_core_sub #169: 0xff - 0xfffe = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"ff":"fffe":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #170: 0xff - 0xffff = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"ff":"ffff":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #171: 0xff - 0x10000 = 0xffff00ff/ffffffffffff00ff, carry 1 -mpi_core_sub:"ff":"10000":"ffff00ff":"ffffffffffff00ff":1 - -mbedtls_mpi_core_sub #172: 0xff - 0xfffffffe = 0x101/ffffffff00000101, carry 1 -mpi_core_sub:"ff":"fffffffe":"101":"ffffffff00000101":1 - -mbedtls_mpi_core_sub #173: 0xff - 0xffffffff = 0x100/ffffffff00000100, carry 1 -mpi_core_sub:"ff":"ffffffff":"100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #174: 0xff - 0x100000000 = 0xffffffff000000ff/ffffffff000000ff, carry 1 -mpi_core_sub:"ff":"100000000":"ffffffff000000ff":"ffffffff000000ff":1 - -mbedtls_mpi_core_sub #175: 0xff - 0x1f7f7f7f7f7f7f = 0xffe0808080808180/ffe0808080808180, carry 1 -mpi_core_sub:"ff":"1f7f7f7f7f7f7f":"ffe0808080808180":"ffe0808080808180":1 - -mbedtls_mpi_core_sub #176: 0xff - 0x8000000000000000 = 0x80000000000000ff/80000000000000ff, carry 1 -mpi_core_sub:"ff":"8000000000000000":"80000000000000ff":"80000000000000ff":1 - -mbedtls_mpi_core_sub #177: 0xff - 0xfefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #178: 0xff - 0xfffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #179: 0xff - 0xffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #180: 0xff - 0x10000000000000000 = 0xffffffff00000000000000ff/ffffffffffffffff00000000000000ff, carry 1 -mpi_core_sub:"ff":"10000000000000000":"ffffffff00000000000000ff":"ffffffffffffffff00000000000000ff":1 - -mbedtls_mpi_core_sub #181: 0xff - 0x1234567890abcdef0 = 0xfffffffedcba9876f543220f/fffffffffffffffedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef0":"fffffffedcba9876f543220f":"fffffffffffffffedcba9876f543220f":1 - -mbedtls_mpi_core_sub #182: 0xff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #183: 0xff - 0xfffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #184: 0xff - 0xffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #185: 0xff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000000000ff/ffffffffffffffff000000000000000000000000000000ff, carry 1 -mpi_core_sub:"ff":"100000000000000000000000000000000":"ffffffff000000000000000000000000000000ff":"ffffffffffffffff000000000000000000000000000000ff":1 - -mbedtls_mpi_core_sub #186: 0xff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f543220f/ffffffffffffffedcba9876f543210fedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f543220f":"ffffffffffffffedcba9876f543210fedcba9876f543220f":1 - -mbedtls_mpi_core_sub #187: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010201/101010101010201, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010201":"101010101010201":1 - -mbedtls_mpi_core_sub #188: 0xff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x101/101, carry 1 -mpi_core_sub:"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"101":"101":1 - -mbedtls_mpi_core_sub #189: 0xff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100/100, carry 1 -mpi_core_sub:"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"100":1 - -mbedtls_mpi_core_sub #190: 0xff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000000000ff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff, carry 1 -mpi_core_sub:"ff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000000000ff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff":1 - -mbedtls_mpi_core_sub #191: 0xff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f, carry 1 -mpi_core_sub:"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543220f":1 - -mbedtls_mpi_core_sub #192: 0xff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4, carry 1 -mpi_core_sub:"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd4":1 - -mbedtls_mpi_core_sub #193: 0x100 - 0x0 = 0x100/100, carry 0 -mpi_core_sub:"100":"0":"100":"100":0 - -mbedtls_mpi_core_sub #194: 0x100 - 0x1 = 0xff/ff, carry 0 -mpi_core_sub:"100":"1":"ff":"ff":0 - -mbedtls_mpi_core_sub #195: 0x100 - 0x3 = 0xfd/fd, carry 0 -mpi_core_sub:"100":"3":"fd":"fd":0 - -mbedtls_mpi_core_sub #196: 0x100 - 0xf = 0xf1/f1, carry 0 -mpi_core_sub:"100":"f":"f1":"f1":0 - -mbedtls_mpi_core_sub #197: 0x100 - 0xfe = 0x2/2, carry 0 -mpi_core_sub:"100":"fe":"2":"2":0 - -mbedtls_mpi_core_sub #198: 0x100 - 0xff = 0x1/1, carry 0 -mpi_core_sub:"100":"ff":"1":"1":0 - -mbedtls_mpi_core_sub #199: 0x100 - 0x100 = 0x0/0, carry 0 -mpi_core_sub:"100":"100":"0":"0":0 - -mbedtls_mpi_core_sub #200: 0x100 - 0xff00 = 0xffff0200/ffffffffffff0200, carry 1 -mpi_core_sub:"100":"ff00":"ffff0200":"ffffffffffff0200":1 - -mbedtls_mpi_core_sub #201: 0x100 - 0xfffe = 0xffff0102/ffffffffffff0102, carry 1 -mpi_core_sub:"100":"fffe":"ffff0102":"ffffffffffff0102":1 - -mbedtls_mpi_core_sub #202: 0x100 - 0xffff = 0xffff0101/ffffffffffff0101, carry 1 -mpi_core_sub:"100":"ffff":"ffff0101":"ffffffffffff0101":1 - -mbedtls_mpi_core_sub #203: 0x100 - 0x10000 = 0xffff0100/ffffffffffff0100, carry 1 -mpi_core_sub:"100":"10000":"ffff0100":"ffffffffffff0100":1 - -mbedtls_mpi_core_sub #204: 0x100 - 0xfffffffe = 0x102/ffffffff00000102, carry 1 -mpi_core_sub:"100":"fffffffe":"102":"ffffffff00000102":1 - -mbedtls_mpi_core_sub #205: 0x100 - 0xffffffff = 0x101/ffffffff00000101, carry 1 -mpi_core_sub:"100":"ffffffff":"101":"ffffffff00000101":1 - -mbedtls_mpi_core_sub #206: 0x100 - 0x100000000 = 0xffffffff00000100/ffffffff00000100, carry 1 -mpi_core_sub:"100":"100000000":"ffffffff00000100":"ffffffff00000100":1 - -mbedtls_mpi_core_sub #207: 0x100 - 0x1f7f7f7f7f7f7f = 0xffe0808080808181/ffe0808080808181, carry 1 -mpi_core_sub:"100":"1f7f7f7f7f7f7f":"ffe0808080808181":"ffe0808080808181":1 - -mbedtls_mpi_core_sub #208: 0x100 - 0x8000000000000000 = 0x8000000000000100/8000000000000100, carry 1 -mpi_core_sub:"100":"8000000000000000":"8000000000000100":"8000000000000100":1 - -mbedtls_mpi_core_sub #209: 0x100 - 0xfefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #210: 0x100 - 0xfffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #211: 0x100 - 0xffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #212: 0x100 - 0x10000000000000000 = 0xffffffff0000000000000100/ffffffffffffffff0000000000000100, carry 1 -mpi_core_sub:"100":"10000000000000000":"ffffffff0000000000000100":"ffffffffffffffff0000000000000100":1 - -mbedtls_mpi_core_sub #213: 0x100 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5432210/fffffffffffffffedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef0":"fffffffedcba9876f5432210":"fffffffffffffffedcba9876f5432210":1 - -mbedtls_mpi_core_sub #214: 0x100 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #215: 0x100 - 0xfffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #216: 0x100 - 0xffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffffffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #217: 0x100 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000000100/ffffffffffffffff00000000000000000000000000000100, carry 1 -mpi_core_sub:"100":"100000000000000000000000000000000":"ffffffff00000000000000000000000000000100":"ffffffffffffffff00000000000000000000000000000100":1 - -mbedtls_mpi_core_sub #218: 0x100 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5432210/ffffffffffffffedcba9876f543210fedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5432210":"ffffffffffffffedcba9876f543210fedcba9876f5432210":1 - -mbedtls_mpi_core_sub #219: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010202/101010101010202, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010202":"101010101010202":1 - -mbedtls_mpi_core_sub #220: 0x100 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x102/102, carry 1 -mpi_core_sub:"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"102":"102":1 - -mbedtls_mpi_core_sub #221: 0x100 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x101/101, carry 1 -mpi_core_sub:"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"101":"101":1 - -mbedtls_mpi_core_sub #222: 0x100 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000000100/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100, carry 1 -mpi_core_sub:"100":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000000100":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000000100":1 - -mbedtls_mpi_core_sub #223: 0x100 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210, carry 1 -mpi_core_sub:"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432210":1 - -mbedtls_mpi_core_sub #224: 0x100 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5, carry 1 -mpi_core_sub:"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894fd5":1 - -mbedtls_mpi_core_sub #225: 0xff00 - 0x0 = 0xff00/ff00, carry 0 -mpi_core_sub:"ff00":"0":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #226: 0xff00 - 0x1 = 0xfeff/feff, carry 0 -mpi_core_sub:"ff00":"1":"feff":"feff":0 - -mbedtls_mpi_core_sub #227: 0xff00 - 0x3 = 0xfefd/fefd, carry 0 -mpi_core_sub:"ff00":"3":"fefd":"fefd":0 - -mbedtls_mpi_core_sub #228: 0xff00 - 0xf = 0xfef1/fef1, carry 0 -mpi_core_sub:"ff00":"f":"fef1":"fef1":0 - -mbedtls_mpi_core_sub #229: 0xff00 - 0xfe = 0xfe02/fe02, carry 0 -mpi_core_sub:"ff00":"fe":"fe02":"fe02":0 - -mbedtls_mpi_core_sub #230: 0xff00 - 0xff = 0xfe01/fe01, carry 0 -mpi_core_sub:"ff00":"ff":"fe01":"fe01":0 - -mbedtls_mpi_core_sub #231: 0xff00 - 0x100 = 0xfe00/fe00, carry 0 -mpi_core_sub:"ff00":"100":"fe00":"fe00":0 - -mbedtls_mpi_core_sub #232: 0xff00 - 0xff00 = 0x0/0, carry 0 -mpi_core_sub:"ff00":"ff00":"0":"0":0 - -mbedtls_mpi_core_sub #233: 0xff00 - 0xfffe = 0xffffff02/ffffffffffffff02, carry 1 -mpi_core_sub:"ff00":"fffe":"ffffff02":"ffffffffffffff02":1 - -mbedtls_mpi_core_sub #234: 0xff00 - 0xffff = 0xffffff01/ffffffffffffff01, carry 1 -mpi_core_sub:"ff00":"ffff":"ffffff01":"ffffffffffffff01":1 - -mbedtls_mpi_core_sub #235: 0xff00 - 0x10000 = 0xffffff00/ffffffffffffff00, carry 1 -mpi_core_sub:"ff00":"10000":"ffffff00":"ffffffffffffff00":1 - -mbedtls_mpi_core_sub #236: 0xff00 - 0xfffffffe = 0xff02/ffffffff0000ff02, carry 1 -mpi_core_sub:"ff00":"fffffffe":"ff02":"ffffffff0000ff02":1 - -mbedtls_mpi_core_sub #237: 0xff00 - 0xffffffff = 0xff01/ffffffff0000ff01, carry 1 -mpi_core_sub:"ff00":"ffffffff":"ff01":"ffffffff0000ff01":1 - -mbedtls_mpi_core_sub #238: 0xff00 - 0x100000000 = 0xffffffff0000ff00/ffffffff0000ff00, carry 1 -mpi_core_sub:"ff00":"100000000":"ffffffff0000ff00":"ffffffff0000ff00":1 - -mbedtls_mpi_core_sub #239: 0xff00 - 0x1f7f7f7f7f7f7f = 0xffe0808080817f81/ffe0808080817f81, carry 1 -mpi_core_sub:"ff00":"1f7f7f7f7f7f7f":"ffe0808080817f81":"ffe0808080817f81":1 - -mbedtls_mpi_core_sub #240: 0xff00 - 0x8000000000000000 = 0x800000000000ff00/800000000000ff00, carry 1 -mpi_core_sub:"ff00":"8000000000000000":"800000000000ff00":"800000000000ff00":1 - -mbedtls_mpi_core_sub #241: 0xff00 - 0xfefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #242: 0xff00 - 0xfffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #243: 0xff00 - 0xffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #244: 0xff00 - 0x10000000000000000 = 0xffffffff000000000000ff00/ffffffffffffffff000000000000ff00, carry 1 -mpi_core_sub:"ff00":"10000000000000000":"ffffffff000000000000ff00":"ffffffffffffffff000000000000ff00":1 - -mbedtls_mpi_core_sub #245: 0xff00 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442010/fffffffffffffffedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef0":"fffffffedcba9876f5442010":"fffffffffffffffedcba9876f5442010":1 - -mbedtls_mpi_core_sub #246: 0xff00 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #247: 0xff00 - 0xfffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #248: 0xff00 - 0xffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #249: 0xff00 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ff00/ffffffffffffffff0000000000000000000000000000ff00, carry 1 -mpi_core_sub:"ff00":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ff00":"ffffffffffffffff0000000000000000000000000000ff00":1 - -mbedtls_mpi_core_sub #250: 0xff00 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442010/ffffffffffffffedcba9876f543210fedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442010":"ffffffffffffffedcba9876f543210fedcba9876f5442010":1 - -mbedtls_mpi_core_sub #251: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020002/101010101020002, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020002":"101010101020002":1 - -mbedtls_mpi_core_sub #252: 0xff00 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xff02/ff02, carry 1 -mpi_core_sub:"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff02":"ff02":1 - -mbedtls_mpi_core_sub #253: 0xff00 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xff01/ff01, carry 1 -mpi_core_sub:"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff01":"ff01":1 - -mbedtls_mpi_core_sub #254: 0xff00 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ff00/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00, carry 1 -mpi_core_sub:"ff00":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ff00":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ff00":1 - -mbedtls_mpi_core_sub #255: 0xff00 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010, carry 1 -mpi_core_sub:"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442010":1 - -mbedtls_mpi_core_sub #256: 0xff00 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5, carry 1 -mpi_core_sub:"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4dd5":1 - -mbedtls_mpi_core_sub #257: 0xfffe - 0x0 = 0xfffe/fffe, carry 0 -mpi_core_sub:"fffe":"0":"fffe":"fffe":0 - -mbedtls_mpi_core_sub #258: 0xfffe - 0x1 = 0xfffd/fffd, carry 0 -mpi_core_sub:"fffe":"1":"fffd":"fffd":0 - -mbedtls_mpi_core_sub #259: 0xfffe - 0x3 = 0xfffb/fffb, carry 0 -mpi_core_sub:"fffe":"3":"fffb":"fffb":0 - -mbedtls_mpi_core_sub #260: 0xfffe - 0xf = 0xffef/ffef, carry 0 -mpi_core_sub:"fffe":"f":"ffef":"ffef":0 - -mbedtls_mpi_core_sub #261: 0xfffe - 0xfe = 0xff00/ff00, carry 0 -mpi_core_sub:"fffe":"fe":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #262: 0xfffe - 0xff = 0xfeff/feff, carry 0 -mpi_core_sub:"fffe":"ff":"feff":"feff":0 - -mbedtls_mpi_core_sub #263: 0xfffe - 0x100 = 0xfefe/fefe, carry 0 -mpi_core_sub:"fffe":"100":"fefe":"fefe":0 - -mbedtls_mpi_core_sub #264: 0xfffe - 0xff00 = 0xfe/fe, carry 0 -mpi_core_sub:"fffe":"ff00":"fe":"fe":0 - -mbedtls_mpi_core_sub #265: 0xfffe - 0xfffe = 0x0/0, carry 0 -mpi_core_sub:"fffe":"fffe":"0":"0":0 - -mbedtls_mpi_core_sub #266: 0xfffe - 0xffff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffe":"ffff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #267: 0xfffe - 0x10000 = 0xfffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fffe":"10000":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #268: 0xfffe - 0xfffffffe = 0x10000/ffffffff00010000, carry 1 -mpi_core_sub:"fffe":"fffffffe":"10000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #269: 0xfffe - 0xffffffff = 0xffff/ffffffff0000ffff, carry 1 -mpi_core_sub:"fffe":"ffffffff":"ffff":"ffffffff0000ffff":1 - -mbedtls_mpi_core_sub #270: 0xfffe - 0x100000000 = 0xffffffff0000fffe/ffffffff0000fffe, carry 1 -mpi_core_sub:"fffe":"100000000":"ffffffff0000fffe":"ffffffff0000fffe":1 - -mbedtls_mpi_core_sub #271: 0xfffe - 0x1f7f7f7f7f7f7f = 0xffe080808081807f/ffe080808081807f, carry 1 -mpi_core_sub:"fffe":"1f7f7f7f7f7f7f":"ffe080808081807f":"ffe080808081807f":1 - -mbedtls_mpi_core_sub #272: 0xfffe - 0x8000000000000000 = 0x800000000000fffe/800000000000fffe, carry 1 -mpi_core_sub:"fffe":"8000000000000000":"800000000000fffe":"800000000000fffe":1 - -mbedtls_mpi_core_sub #273: 0xfffe - 0xfefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #274: 0xfffe - 0xfffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #275: 0xfffe - 0xffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #276: 0xfffe - 0x10000000000000000 = 0xffffffff000000000000fffe/ffffffffffffffff000000000000fffe, carry 1 -mpi_core_sub:"fffe":"10000000000000000":"ffffffff000000000000fffe":"ffffffffffffffff000000000000fffe":1 - -mbedtls_mpi_core_sub #277: 0xfffe - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210e/fffffffffffffffedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef0":"fffffffedcba9876f544210e":"fffffffffffffffedcba9876f544210e":1 - -mbedtls_mpi_core_sub #278: 0xfffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #279: 0xfffe - 0xfffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #280: 0xfffe - 0xffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #281: 0xfffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000fffe/ffffffffffffffff0000000000000000000000000000fffe, carry 1 -mpi_core_sub:"fffe":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000fffe":"ffffffffffffffff0000000000000000000000000000fffe":1 - -mbedtls_mpi_core_sub #282: 0xfffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210e/ffffffffffffffedcba9876f543210fedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210e":"ffffffffffffffedcba9876f543210fedcba9876f544210e":1 - -mbedtls_mpi_core_sub #283: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020100/101010101020100, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020100":"101010101020100":1 - -mbedtls_mpi_core_sub #284: 0xfffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000/10000, carry 1 -mpi_core_sub:"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"10000":1 - -mbedtls_mpi_core_sub #285: 0xfffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffff/ffff, carry 1 -mpi_core_sub:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff":1 - -mbedtls_mpi_core_sub #286: 0xfffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000fffe/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe, carry 1 -mpi_core_sub:"fffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000fffe":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000fffe":1 - -mbedtls_mpi_core_sub #287: 0xfffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e, carry 1 -mpi_core_sub:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210e":1 - -mbedtls_mpi_core_sub #288: 0xfffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3, carry 1 -mpi_core_sub:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed3":1 - -mbedtls_mpi_core_sub #289: 0xffff - 0x0 = 0xffff/ffff, carry 0 -mpi_core_sub:"ffff":"0":"ffff":"ffff":0 - -mbedtls_mpi_core_sub #290: 0xffff - 0x1 = 0xfffe/fffe, carry 0 -mpi_core_sub:"ffff":"1":"fffe":"fffe":0 - -mbedtls_mpi_core_sub #291: 0xffff - 0x3 = 0xfffc/fffc, carry 0 -mpi_core_sub:"ffff":"3":"fffc":"fffc":0 - -mbedtls_mpi_core_sub #292: 0xffff - 0xf = 0xfff0/fff0, carry 0 -mpi_core_sub:"ffff":"f":"fff0":"fff0":0 - -mbedtls_mpi_core_sub #293: 0xffff - 0xfe = 0xff01/ff01, carry 0 -mpi_core_sub:"ffff":"fe":"ff01":"ff01":0 - -mbedtls_mpi_core_sub #294: 0xffff - 0xff = 0xff00/ff00, carry 0 -mpi_core_sub:"ffff":"ff":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #295: 0xffff - 0x100 = 0xfeff/feff, carry 0 -mpi_core_sub:"ffff":"100":"feff":"feff":0 - -mbedtls_mpi_core_sub #296: 0xffff - 0xff00 = 0xff/ff, carry 0 -mpi_core_sub:"ffff":"ff00":"ff":"ff":0 - -mbedtls_mpi_core_sub #297: 0xffff - 0xfffe = 0x1/1, carry 0 -mpi_core_sub:"ffff":"fffe":"1":"1":0 - -mbedtls_mpi_core_sub #298: 0xffff - 0xffff = 0x0/0, carry 0 -mpi_core_sub:"ffff":"ffff":"0":"0":0 - -mbedtls_mpi_core_sub #299: 0xffff - 0x10000 = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ffff":"10000":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #300: 0xffff - 0xfffffffe = 0x10001/ffffffff00010001, carry 1 -mpi_core_sub:"ffff":"fffffffe":"10001":"ffffffff00010001":1 - -mbedtls_mpi_core_sub #301: 0xffff - 0xffffffff = 0x10000/ffffffff00010000, carry 1 -mpi_core_sub:"ffff":"ffffffff":"10000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #302: 0xffff - 0x100000000 = 0xffffffff0000ffff/ffffffff0000ffff, carry 1 -mpi_core_sub:"ffff":"100000000":"ffffffff0000ffff":"ffffffff0000ffff":1 - -mbedtls_mpi_core_sub #303: 0xffff - 0x1f7f7f7f7f7f7f = 0xffe0808080818080/ffe0808080818080, carry 1 -mpi_core_sub:"ffff":"1f7f7f7f7f7f7f":"ffe0808080818080":"ffe0808080818080":1 - -mbedtls_mpi_core_sub #304: 0xffff - 0x8000000000000000 = 0x800000000000ffff/800000000000ffff, carry 1 -mpi_core_sub:"ffff":"8000000000000000":"800000000000ffff":"800000000000ffff":1 - -mbedtls_mpi_core_sub #305: 0xffff - 0xfefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #306: 0xffff - 0xfffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #307: 0xffff - 0xffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #308: 0xffff - 0x10000000000000000 = 0xffffffff000000000000ffff/ffffffffffffffff000000000000ffff, carry 1 -mpi_core_sub:"ffff":"10000000000000000":"ffffffff000000000000ffff":"ffffffffffffffff000000000000ffff":1 - -mbedtls_mpi_core_sub #309: 0xffff - 0x1234567890abcdef0 = 0xfffffffedcba9876f544210f/fffffffffffffffedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef0":"fffffffedcba9876f544210f":"fffffffffffffffedcba9876f544210f":1 - -mbedtls_mpi_core_sub #310: 0xffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #311: 0xffff - 0xfffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #312: 0xffff - 0xffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #313: 0xffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000000000000000ffff/ffffffffffffffff0000000000000000000000000000ffff, carry 1 -mpi_core_sub:"ffff":"100000000000000000000000000000000":"ffffffff0000000000000000000000000000ffff":"ffffffffffffffff0000000000000000000000000000ffff":1 - -mbedtls_mpi_core_sub #314: 0xffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f544210f/ffffffffffffffedcba9876f543210fedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f544210f":"ffffffffffffffedcba9876f543210fedcba9876f544210f":1 - -mbedtls_mpi_core_sub #315: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020101/101010101020101, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020101":"101010101020101":1 - -mbedtls_mpi_core_sub #316: 0xffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10001/10001, carry 1 -mpi_core_sub:"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10001":"10001":1 - -mbedtls_mpi_core_sub #317: 0xffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000/10000, carry 1 -mpi_core_sub:"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"10000":1 - -mbedtls_mpi_core_sub #318: 0xffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000000000000000ffff/ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff, carry 1 -mpi_core_sub:"ffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000000000000000ffff":"ffffffffffffffff000000000000000000000000000000000000000000000000000000000000ffff":1 - -mbedtls_mpi_core_sub #319: 0xffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f, carry 1 -mpi_core_sub:"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f544210f":1 - -mbedtls_mpi_core_sub #320: 0xffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4, carry 1 -mpi_core_sub:"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed4":1 - -mbedtls_mpi_core_sub #321: 0x10000 - 0x0 = 0x10000/10000, carry 0 -mpi_core_sub:"10000":"0":"10000":"10000":0 - -mbedtls_mpi_core_sub #322: 0x10000 - 0x1 = 0xffff/ffff, carry 0 -mpi_core_sub:"10000":"1":"ffff":"ffff":0 - -mbedtls_mpi_core_sub #323: 0x10000 - 0x3 = 0xfffd/fffd, carry 0 -mpi_core_sub:"10000":"3":"fffd":"fffd":0 - -mbedtls_mpi_core_sub #324: 0x10000 - 0xf = 0xfff1/fff1, carry 0 -mpi_core_sub:"10000":"f":"fff1":"fff1":0 - -mbedtls_mpi_core_sub #325: 0x10000 - 0xfe = 0xff02/ff02, carry 0 -mpi_core_sub:"10000":"fe":"ff02":"ff02":0 - -mbedtls_mpi_core_sub #326: 0x10000 - 0xff = 0xff01/ff01, carry 0 -mpi_core_sub:"10000":"ff":"ff01":"ff01":0 - -mbedtls_mpi_core_sub #327: 0x10000 - 0x100 = 0xff00/ff00, carry 0 -mpi_core_sub:"10000":"100":"ff00":"ff00":0 - -mbedtls_mpi_core_sub #328: 0x10000 - 0xff00 = 0x100/100, carry 0 -mpi_core_sub:"10000":"ff00":"100":"100":0 - -mbedtls_mpi_core_sub #329: 0x10000 - 0xfffe = 0x2/2, carry 0 -mpi_core_sub:"10000":"fffe":"2":"2":0 - -mbedtls_mpi_core_sub #330: 0x10000 - 0xffff = 0x1/1, carry 0 -mpi_core_sub:"10000":"ffff":"1":"1":0 - -mbedtls_mpi_core_sub #331: 0x10000 - 0x10000 = 0x0/0, carry 0 -mpi_core_sub:"10000":"10000":"0":"0":0 - -mbedtls_mpi_core_sub #332: 0x10000 - 0xfffffffe = 0x10002/ffffffff00010002, carry 1 -mpi_core_sub:"10000":"fffffffe":"10002":"ffffffff00010002":1 - -mbedtls_mpi_core_sub #333: 0x10000 - 0xffffffff = 0x10001/ffffffff00010001, carry 1 -mpi_core_sub:"10000":"ffffffff":"10001":"ffffffff00010001":1 - -mbedtls_mpi_core_sub #334: 0x10000 - 0x100000000 = 0xffffffff00010000/ffffffff00010000, carry 1 -mpi_core_sub:"10000":"100000000":"ffffffff00010000":"ffffffff00010000":1 - -mbedtls_mpi_core_sub #335: 0x10000 - 0x1f7f7f7f7f7f7f = 0xffe0808080818081/ffe0808080818081, carry 1 -mpi_core_sub:"10000":"1f7f7f7f7f7f7f":"ffe0808080818081":"ffe0808080818081":1 - -mbedtls_mpi_core_sub #336: 0x10000 - 0x8000000000000000 = 0x8000000000010000/8000000000010000, carry 1 -mpi_core_sub:"10000":"8000000000000000":"8000000000010000":"8000000000010000":1 - -mbedtls_mpi_core_sub #337: 0x10000 - 0xfefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #338: 0x10000 - 0xfffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #339: 0x10000 - 0xffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #340: 0x10000 - 0x10000000000000000 = 0xffffffff0000000000010000/ffffffffffffffff0000000000010000, carry 1 -mpi_core_sub:"10000":"10000000000000000":"ffffffff0000000000010000":"ffffffffffffffff0000000000010000":1 - -mbedtls_mpi_core_sub #341: 0x10000 - 0x1234567890abcdef0 = 0xfffffffedcba9876f5442110/fffffffffffffffedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef0":"fffffffedcba9876f5442110":"fffffffffffffffedcba9876f5442110":1 - -mbedtls_mpi_core_sub #342: 0x10000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #343: 0x10000 - 0xfffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #344: 0x10000 - 0xffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #345: 0x10000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000000010000/ffffffffffffffff00000000000000000000000000010000, carry 1 -mpi_core_sub:"10000":"100000000000000000000000000000000":"ffffffff00000000000000000000000000010000":"ffffffffffffffff00000000000000000000000000010000":1 - -mbedtls_mpi_core_sub #346: 0x10000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9876f5442110/ffffffffffffffedcba9876f543210fedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9876f5442110":"ffffffffffffffedcba9876f543210fedcba9876f5442110":1 - -mbedtls_mpi_core_sub #347: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101020102/101010101020102, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101020102":"101010101020102":1 - -mbedtls_mpi_core_sub #348: 0x10000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10002/10002, carry 1 -mpi_core_sub:"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10002":"10002":1 - -mbedtls_mpi_core_sub #349: 0x10000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10001/10001, carry 1 -mpi_core_sub:"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10001":"10001":1 - -mbedtls_mpi_core_sub #350: 0x10000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000000010000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000, carry 1 -mpi_core_sub:"10000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000000010000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000000010000":1 - -mbedtls_mpi_core_sub #351: 0x10000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110, carry 1 -mpi_core_sub:"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5442110":1 - -mbedtls_mpi_core_sub #352: 0x10000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5, carry 1 -mpi_core_sub:"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf8a4ed5":1 - -mbedtls_mpi_core_sub #353: 0xfffffffe - 0x0 = 0xfffffffe/fffffffe, carry 0 -mpi_core_sub:"fffffffe":"0":"fffffffe":"fffffffe":0 - -mbedtls_mpi_core_sub #354: 0xfffffffe - 0x1 = 0xfffffffd/fffffffd, carry 0 -mpi_core_sub:"fffffffe":"1":"fffffffd":"fffffffd":0 - -mbedtls_mpi_core_sub #355: 0xfffffffe - 0x3 = 0xfffffffb/fffffffb, carry 0 -mpi_core_sub:"fffffffe":"3":"fffffffb":"fffffffb":0 - -mbedtls_mpi_core_sub #356: 0xfffffffe - 0xf = 0xffffffef/ffffffef, carry 0 -mpi_core_sub:"fffffffe":"f":"ffffffef":"ffffffef":0 - -mbedtls_mpi_core_sub #357: 0xfffffffe - 0xfe = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"fffffffe":"fe":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #358: 0xfffffffe - 0xff = 0xfffffeff/fffffeff, carry 0 -mpi_core_sub:"fffffffe":"ff":"fffffeff":"fffffeff":0 - -mbedtls_mpi_core_sub #359: 0xfffffffe - 0x100 = 0xfffffefe/fffffefe, carry 0 -mpi_core_sub:"fffffffe":"100":"fffffefe":"fffffefe":0 - -mbedtls_mpi_core_sub #360: 0xfffffffe - 0xff00 = 0xffff00fe/ffff00fe, carry 0 -mpi_core_sub:"fffffffe":"ff00":"ffff00fe":"ffff00fe":0 - -mbedtls_mpi_core_sub #361: 0xfffffffe - 0xfffe = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"fffffffe":"fffe":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #362: 0xfffffffe - 0xffff = 0xfffeffff/fffeffff, carry 0 -mpi_core_sub:"fffffffe":"ffff":"fffeffff":"fffeffff":0 - -mbedtls_mpi_core_sub #363: 0xfffffffe - 0x10000 = 0xfffefffe/fffefffe, carry 0 -mpi_core_sub:"fffffffe":"10000":"fffefffe":"fffefffe":0 - -mbedtls_mpi_core_sub #364: 0xfffffffe - 0xfffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffe":"fffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #365: 0xfffffffe - 0xffffffff = 0xffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #366: 0xfffffffe - 0x100000000 = 0xfffffffffffffffe/fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffe":"100000000":"fffffffffffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #367: 0xfffffffe - 0x1f7f7f7f7f7f7f = 0xffe080818080807f/ffe080818080807f, carry 1 -mpi_core_sub:"fffffffe":"1f7f7f7f7f7f7f":"ffe080818080807f":"ffe080818080807f":1 - -mbedtls_mpi_core_sub #368: 0xfffffffe - 0x8000000000000000 = 0x80000000fffffffe/80000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"8000000000000000":"80000000fffffffe":"80000000fffffffe":1 - -mbedtls_mpi_core_sub #369: 0xfffffffe - 0xfefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #370: 0xfffffffe - 0xfffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #371: 0xfffffffe - 0xffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #372: 0xfffffffe - 0x10000000000000000 = 0xffffffff00000000fffffffe/ffffffffffffffff00000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"10000000000000000":"ffffffff00000000fffffffe":"ffffffffffffffff00000000fffffffe":1 - -mbedtls_mpi_core_sub #373: 0xfffffffe - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210e/fffffffffffffffedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef0":"fffffffedcba9877f543210e":"fffffffffffffffedcba9877f543210e":1 - -mbedtls_mpi_core_sub #374: 0xfffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #375: 0xfffffffe - 0xfffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #376: 0xfffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #377: 0xfffffffe - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000fffffffe/ffffffffffffffff000000000000000000000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"100000000000000000000000000000000":"ffffffff000000000000000000000000fffffffe":"ffffffffffffffff000000000000000000000000fffffffe":1 - -mbedtls_mpi_core_sub #378: 0xfffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210e/ffffffffffffffedcba9876f543210fedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210e":"ffffffffffffffedcba9876f543210fedcba9877f543210e":1 - -mbedtls_mpi_core_sub #379: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010100/101010201010100, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010100":"101010201010100":1 - -mbedtls_mpi_core_sub #380: 0xfffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000/100000000, carry 1 -mpi_core_sub:"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #381: 0xfffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffff/ffffffff, carry 1 -mpi_core_sub:"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":1 - -mbedtls_mpi_core_sub #382: 0xfffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000fffffffe/ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe, carry 1 -mpi_core_sub:"fffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000fffffffe":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000fffffffe":1 - -mbedtls_mpi_core_sub #383: 0xfffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e, carry 1 -mpi_core_sub:"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210e":1 - -mbedtls_mpi_core_sub #384: 0xfffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3, carry 1 -mpi_core_sub:"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed3":1 - -mbedtls_mpi_core_sub #385: 0xffffffff - 0x0 = 0xffffffff/ffffffff, carry 0 -mpi_core_sub:"ffffffff":"0":"ffffffff":"ffffffff":0 - -mbedtls_mpi_core_sub #386: 0xffffffff - 0x1 = 0xfffffffe/fffffffe, carry 0 -mpi_core_sub:"ffffffff":"1":"fffffffe":"fffffffe":0 - -mbedtls_mpi_core_sub #387: 0xffffffff - 0x3 = 0xfffffffc/fffffffc, carry 0 -mpi_core_sub:"ffffffff":"3":"fffffffc":"fffffffc":0 - -mbedtls_mpi_core_sub #388: 0xffffffff - 0xf = 0xfffffff0/fffffff0, carry 0 -mpi_core_sub:"ffffffff":"f":"fffffff0":"fffffff0":0 - -mbedtls_mpi_core_sub #389: 0xffffffff - 0xfe = 0xffffff01/ffffff01, carry 0 -mpi_core_sub:"ffffffff":"fe":"ffffff01":"ffffff01":0 - -mbedtls_mpi_core_sub #390: 0xffffffff - 0xff = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"ffffffff":"ff":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #391: 0xffffffff - 0x100 = 0xfffffeff/fffffeff, carry 0 -mpi_core_sub:"ffffffff":"100":"fffffeff":"fffffeff":0 - -mbedtls_mpi_core_sub #392: 0xffffffff - 0xff00 = 0xffff00ff/ffff00ff, carry 0 -mpi_core_sub:"ffffffff":"ff00":"ffff00ff":"ffff00ff":0 - -mbedtls_mpi_core_sub #393: 0xffffffff - 0xfffe = 0xffff0001/ffff0001, carry 0 -mpi_core_sub:"ffffffff":"fffe":"ffff0001":"ffff0001":0 - -mbedtls_mpi_core_sub #394: 0xffffffff - 0xffff = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"ffffffff":"ffff":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #395: 0xffffffff - 0x10000 = 0xfffeffff/fffeffff, carry 0 -mpi_core_sub:"ffffffff":"10000":"fffeffff":"fffeffff":0 - -mbedtls_mpi_core_sub #396: 0xffffffff - 0xfffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffff":"fffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #397: 0xffffffff - 0xffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffff":"ffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #398: 0xffffffff - 0x100000000 = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffff":"100000000":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #399: 0xffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808180808080/ffe0808180808080, carry 1 -mpi_core_sub:"ffffffff":"1f7f7f7f7f7f7f":"ffe0808180808080":"ffe0808180808080":1 - -mbedtls_mpi_core_sub #400: 0xffffffff - 0x8000000000000000 = 0x80000000ffffffff/80000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"8000000000000000":"80000000ffffffff":"80000000ffffffff":1 - -mbedtls_mpi_core_sub #401: 0xffffffff - 0xfefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #402: 0xffffffff - 0xfffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #403: 0xffffffff - 0xffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #404: 0xffffffff - 0x10000000000000000 = 0xffffffff00000000ffffffff/ffffffffffffffff00000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"10000000000000000":"ffffffff00000000ffffffff":"ffffffffffffffff00000000ffffffff":1 - -mbedtls_mpi_core_sub #405: 0xffffffff - 0x1234567890abcdef0 = 0xfffffffedcba9877f543210f/fffffffffffffffedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef0":"fffffffedcba9877f543210f":"fffffffffffffffedcba9877f543210f":1 - -mbedtls_mpi_core_sub #406: 0xffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #407: 0xffffffff - 0xfffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #408: 0xffffffff - 0xffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #409: 0xffffffff - 0x100000000000000000000000000000000 = 0xffffffff000000000000000000000000ffffffff/ffffffffffffffff000000000000000000000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"100000000000000000000000000000000":"ffffffff000000000000000000000000ffffffff":"ffffffffffffffff000000000000000000000000ffffffff":1 - -mbedtls_mpi_core_sub #410: 0xffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f543210f/ffffffffffffffedcba9876f543210fedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f543210f":"ffffffffffffffedcba9876f543210fedcba9877f543210f":1 - -mbedtls_mpi_core_sub #411: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010101/101010201010101, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010101":"101010201010101":1 - -mbedtls_mpi_core_sub #412: 0xffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000001/100000001, carry 1 -mpi_core_sub:"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #413: 0xffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000/100000000, carry 1 -mpi_core_sub:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":1 - -mbedtls_mpi_core_sub #414: 0xffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000000000000000000000000000ffffffff/ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff, carry 1 -mpi_core_sub:"ffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000000000000000000000000000ffffffff":"ffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffffff":1 - -mbedtls_mpi_core_sub #415: 0xffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f, carry 1 -mpi_core_sub:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f543210f":1 - -mbedtls_mpi_core_sub #416: 0xffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4, carry 1 -mpi_core_sub:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed4":1 - -mbedtls_mpi_core_sub #417: 0x100000000 - 0x0 = 0x100000000/100000000, carry 0 -mpi_core_sub:"100000000":"0":"100000000":"100000000":0 - -mbedtls_mpi_core_sub #418: 0x100000000 - 0x1 = 0xffffffff/ffffffff, carry 0 -mpi_core_sub:"100000000":"1":"ffffffff":"ffffffff":0 - -mbedtls_mpi_core_sub #419: 0x100000000 - 0x3 = 0xfffffffd/fffffffd, carry 0 -mpi_core_sub:"100000000":"3":"fffffffd":"fffffffd":0 - -mbedtls_mpi_core_sub #420: 0x100000000 - 0xf = 0xfffffff1/fffffff1, carry 0 -mpi_core_sub:"100000000":"f":"fffffff1":"fffffff1":0 - -mbedtls_mpi_core_sub #421: 0x100000000 - 0xfe = 0xffffff02/ffffff02, carry 0 -mpi_core_sub:"100000000":"fe":"ffffff02":"ffffff02":0 - -mbedtls_mpi_core_sub #422: 0x100000000 - 0xff = 0xffffff01/ffffff01, carry 0 -mpi_core_sub:"100000000":"ff":"ffffff01":"ffffff01":0 - -mbedtls_mpi_core_sub #423: 0x100000000 - 0x100 = 0xffffff00/ffffff00, carry 0 -mpi_core_sub:"100000000":"100":"ffffff00":"ffffff00":0 - -mbedtls_mpi_core_sub #424: 0x100000000 - 0xff00 = 0xffff0100/ffff0100, carry 0 -mpi_core_sub:"100000000":"ff00":"ffff0100":"ffff0100":0 - -mbedtls_mpi_core_sub #425: 0x100000000 - 0xfffe = 0xffff0002/ffff0002, carry 0 -mpi_core_sub:"100000000":"fffe":"ffff0002":"ffff0002":0 - -mbedtls_mpi_core_sub #426: 0x100000000 - 0xffff = 0xffff0001/ffff0001, carry 0 -mpi_core_sub:"100000000":"ffff":"ffff0001":"ffff0001":0 - -mbedtls_mpi_core_sub #427: 0x100000000 - 0x10000 = 0xffff0000/ffff0000, carry 0 -mpi_core_sub:"100000000":"10000":"ffff0000":"ffff0000":0 - -mbedtls_mpi_core_sub #428: 0x100000000 - 0xfffffffe = 0x2/2, carry 0 -mpi_core_sub:"100000000":"fffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #429: 0x100000000 - 0xffffffff = 0x1/1, carry 0 -mpi_core_sub:"100000000":"ffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #430: 0x100000000 - 0x100000000 = 0x0/0, carry 0 -mpi_core_sub:"100000000":"100000000":"0":"0":0 - -mbedtls_mpi_core_sub #431: 0x100000000 - 0x1f7f7f7f7f7f7f = 0xffe0808180808081/ffe0808180808081, carry 1 -mpi_core_sub:"100000000":"1f7f7f7f7f7f7f":"ffe0808180808081":"ffe0808180808081":1 - -mbedtls_mpi_core_sub #432: 0x100000000 - 0x8000000000000000 = 0x8000000100000000/8000000100000000, carry 1 -mpi_core_sub:"100000000":"8000000000000000":"8000000100000000":"8000000100000000":1 - -mbedtls_mpi_core_sub #433: 0x100000000 - 0xfefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #434: 0x100000000 - 0xfffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #435: 0x100000000 - 0xffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #436: 0x100000000 - 0x10000000000000000 = 0xffffffff0000000100000000/ffffffffffffffff0000000100000000, carry 1 -mpi_core_sub:"100000000":"10000000000000000":"ffffffff0000000100000000":"ffffffffffffffff0000000100000000":1 - -mbedtls_mpi_core_sub #437: 0x100000000 - 0x1234567890abcdef0 = 0xfffffffedcba9877f5432110/fffffffffffffffedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef0":"fffffffedcba9877f5432110":"fffffffffffffffedcba9877f5432110":1 - -mbedtls_mpi_core_sub #438: 0x100000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #439: 0x100000000 - 0xfffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #440: 0x100000000 - 0xffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #441: 0x100000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000000000000100000000/ffffffffffffffff00000000000000000000000100000000, carry 1 -mpi_core_sub:"100000000":"100000000000000000000000000000000":"ffffffff00000000000000000000000100000000":"ffffffffffffffff00000000000000000000000100000000":1 - -mbedtls_mpi_core_sub #442: 0x100000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcba9877f5432110/ffffffffffffffedcba9876f543210fedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcba9877f5432110":"ffffffffffffffedcba9876f543210fedcba9877f5432110":1 - -mbedtls_mpi_core_sub #443: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010201010102/101010201010102, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010201010102":"101010201010102":1 - -mbedtls_mpi_core_sub #444: 0x100000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000002/100000002, carry 1 -mpi_core_sub:"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000002":"100000002":1 - -mbedtls_mpi_core_sub #445: 0x100000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000001/100000001, carry 1 -mpi_core_sub:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000001":"100000001":1 - -mbedtls_mpi_core_sub #446: 0x100000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000000000000100000000/ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000, carry 1 -mpi_core_sub:"100000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000000000000100000000":"ffffffffffffffff0000000000000000000000000000000000000000000000000000000100000000":1 - -mbedtls_mpi_core_sub #447: 0x100000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110, carry 1 -mpi_core_sub:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcba9877f5432110":1 - -mbedtls_mpi_core_sub #448: 0x100000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5, carry 1 -mpi_core_sub:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13feaf894ed5":1 - -mbedtls_mpi_core_sub #449: 0x1f7f7f7f7f7f7f - 0x0 = 0x1f7f7f7f7f7f7f/1f7f7f7f7f7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"0":"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #450: 0x1f7f7f7f7f7f7f - 0x1 = 0x1f7f7f7f7f7f7e/1f7f7f7f7f7f7e, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"1":"1f7f7f7f7f7f7e":"1f7f7f7f7f7f7e":0 - -mbedtls_mpi_core_sub #451: 0x1f7f7f7f7f7f7f - 0x3 = 0x1f7f7f7f7f7f7c/1f7f7f7f7f7f7c, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"3":"1f7f7f7f7f7f7c":"1f7f7f7f7f7f7c":0 - -mbedtls_mpi_core_sub #452: 0x1f7f7f7f7f7f7f - 0xf = 0x1f7f7f7f7f7f70/1f7f7f7f7f7f70, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"f":"1f7f7f7f7f7f70":"1f7f7f7f7f7f70":0 - -mbedtls_mpi_core_sub #453: 0x1f7f7f7f7f7f7f - 0xfe = 0x1f7f7f7f7f7e81/1f7f7f7f7f7e81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fe":"1f7f7f7f7f7e81":"1f7f7f7f7f7e81":0 - -mbedtls_mpi_core_sub #454: 0x1f7f7f7f7f7f7f - 0xff = 0x1f7f7f7f7f7e80/1f7f7f7f7f7e80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ff":"1f7f7f7f7f7e80":"1f7f7f7f7f7e80":0 - -mbedtls_mpi_core_sub #455: 0x1f7f7f7f7f7f7f - 0x100 = 0x1f7f7f7f7f7e7f/1f7f7f7f7f7e7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"100":"1f7f7f7f7f7e7f":"1f7f7f7f7f7e7f":0 - -mbedtls_mpi_core_sub #456: 0x1f7f7f7f7f7f7f - 0xff00 = 0x1f7f7f7f7e807f/1f7f7f7f7e807f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ff00":"1f7f7f7f7e807f":"1f7f7f7f7e807f":0 - -mbedtls_mpi_core_sub #457: 0x1f7f7f7f7f7f7f - 0xfffe = 0x1f7f7f7f7e7f81/1f7f7f7f7e7f81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffe":"1f7f7f7f7e7f81":"1f7f7f7f7e7f81":0 - -mbedtls_mpi_core_sub #458: 0x1f7f7f7f7f7f7f - 0xffff = 0x1f7f7f7f7e7f80/1f7f7f7f7e7f80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffff":"1f7f7f7f7e7f80":"1f7f7f7f7e7f80":0 - -mbedtls_mpi_core_sub #459: 0x1f7f7f7f7f7f7f - 0x10000 = 0x1f7f7f7f7e7f7f/1f7f7f7f7e7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000":"1f7f7f7f7e7f7f":"1f7f7f7f7e7f7f":0 - -mbedtls_mpi_core_sub #460: 0x1f7f7f7f7f7f7f - 0xfffffffe = 0x1f7f7e7f7f7f81/1f7f7e7f7f7f81, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffe":"1f7f7e7f7f7f81":"1f7f7e7f7f7f81":0 - -mbedtls_mpi_core_sub #461: 0x1f7f7f7f7f7f7f - 0xffffffff = 0x1f7f7e7f7f7f80/1f7f7e7f7f7f80, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffff":"1f7f7e7f7f7f80":"1f7f7e7f7f7f80":0 - -mbedtls_mpi_core_sub #462: 0x1f7f7f7f7f7f7f - 0x100000000 = 0x1f7f7e7f7f7f7f/1f7f7e7f7f7f7f, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"100000000":"1f7f7e7f7f7f7f":"1f7f7e7f7f7f7f":0 - -mbedtls_mpi_core_sub #463: 0x1f7f7f7f7f7f7f - 0x1f7f7f7f7f7f7f = 0x0/0, carry 0 -mpi_core_sub:"1f7f7f7f7f7f7f":"1f7f7f7f7f7f7f":"0":"0":0 - -mbedtls_mpi_core_sub #464: 0x1f7f7f7f7f7f7f - 0x8000000000000000 = 0x801f7f7f7f7f7f7f/801f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"8000000000000000":"801f7f7f7f7f7f7f":"801f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #465: 0x1f7f7f7f7f7f7f - 0xfefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #466: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #467: 0x1f7f7f7f7f7f7f - 0xffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #468: 0x1f7f7f7f7f7f7f - 0x10000000000000000 = 0xffffffff001f7f7f7f7f7f7f/ffffffffffffffff001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000":"ffffffff001f7f7f7f7f7f7f":"ffffffffffffffff001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #469: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef0 = 0xfffffffedcda17f674c2a08f/fffffffffffffffedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef0":"fffffffedcda17f674c2a08f":"fffffffffffffffedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #470: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #471: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #472: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #473: 0x1f7f7f7f7f7f7f - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000001f7f7f7f7f7f7f/ffffffffffffffff0000000000000000001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"100000000000000000000000000000000":"ffffffff0000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff0000000000000000001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #474: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210fedcda17f674c2a08f/ffffffffffffffedcba9876f543210fedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210fedcda17f674c2a08f":"ffffffffffffffedcba9876f543210fedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #475: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x120808080808081/120808080808081, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"120808080808081":"120808080808081":1 - -mbedtls_mpi_core_sub #476: 0x1f7f7f7f7f7f7f - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1f7f7f7f7f7f81/1f7f7f7f7f7f81, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f81":"1f7f7f7f7f7f81":1 - -mbedtls_mpi_core_sub #477: 0x1f7f7f7f7f7f7f - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1f7f7f7f7f7f80/1f7f7f7f7f7f80, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f80":"1f7f7f7f7f7f80":1 - -mbedtls_mpi_core_sub #478: 0x1f7f7f7f7f7f7f - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f/ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":"ffffffffffffffff000000000000000000000000000000000000000000000000001f7f7f7f7f7f7f":1 - -mbedtls_mpi_core_sub #479: 0x1f7f7f7f7f7f7f - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210fedcda17f674c2a08f":1 - -mbedtls_mpi_core_sub #480: 0x1f7f7f7f7f7f7f - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54, carry 1 -mpi_core_sub:"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ba71d937d2f08ce54":1 - -mbedtls_mpi_core_sub #481: 0x8000000000000000 - 0x0 = 0x8000000000000000/8000000000000000, carry 0 -mpi_core_sub:"8000000000000000":"0":"8000000000000000":"8000000000000000":0 - -mbedtls_mpi_core_sub #482: 0x8000000000000000 - 0x1 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mpi_core_sub:"8000000000000000":"1":"7fffffffffffffff":"7fffffffffffffff":0 - -mbedtls_mpi_core_sub #483: 0x8000000000000000 - 0x3 = 0x7ffffffffffffffd/7ffffffffffffffd, carry 0 -mpi_core_sub:"8000000000000000":"3":"7ffffffffffffffd":"7ffffffffffffffd":0 - -mbedtls_mpi_core_sub #484: 0x8000000000000000 - 0xf = 0x7ffffffffffffff1/7ffffffffffffff1, carry 0 -mpi_core_sub:"8000000000000000":"f":"7ffffffffffffff1":"7ffffffffffffff1":0 - -mbedtls_mpi_core_sub #485: 0x8000000000000000 - 0xfe = 0x7fffffffffffff02/7fffffffffffff02, carry 0 -mpi_core_sub:"8000000000000000":"fe":"7fffffffffffff02":"7fffffffffffff02":0 - -mbedtls_mpi_core_sub #486: 0x8000000000000000 - 0xff = 0x7fffffffffffff01/7fffffffffffff01, carry 0 -mpi_core_sub:"8000000000000000":"ff":"7fffffffffffff01":"7fffffffffffff01":0 - -mbedtls_mpi_core_sub #487: 0x8000000000000000 - 0x100 = 0x7fffffffffffff00/7fffffffffffff00, carry 0 -mpi_core_sub:"8000000000000000":"100":"7fffffffffffff00":"7fffffffffffff00":0 - -mbedtls_mpi_core_sub #488: 0x8000000000000000 - 0xff00 = 0x7fffffffffff0100/7fffffffffff0100, carry 0 -mpi_core_sub:"8000000000000000":"ff00":"7fffffffffff0100":"7fffffffffff0100":0 - -mbedtls_mpi_core_sub #489: 0x8000000000000000 - 0xfffe = 0x7fffffffffff0002/7fffffffffff0002, carry 0 -mpi_core_sub:"8000000000000000":"fffe":"7fffffffffff0002":"7fffffffffff0002":0 - -mbedtls_mpi_core_sub #490: 0x8000000000000000 - 0xffff = 0x7fffffffffff0001/7fffffffffff0001, carry 0 -mpi_core_sub:"8000000000000000":"ffff":"7fffffffffff0001":"7fffffffffff0001":0 - -mbedtls_mpi_core_sub #491: 0x8000000000000000 - 0x10000 = 0x7fffffffffff0000/7fffffffffff0000, carry 0 -mpi_core_sub:"8000000000000000":"10000":"7fffffffffff0000":"7fffffffffff0000":0 - -mbedtls_mpi_core_sub #492: 0x8000000000000000 - 0xfffffffe = 0x7fffffff00000002/7fffffff00000002, carry 0 -mpi_core_sub:"8000000000000000":"fffffffe":"7fffffff00000002":"7fffffff00000002":0 - -mbedtls_mpi_core_sub #493: 0x8000000000000000 - 0xffffffff = 0x7fffffff00000001/7fffffff00000001, carry 0 -mpi_core_sub:"8000000000000000":"ffffffff":"7fffffff00000001":"7fffffff00000001":0 - -mbedtls_mpi_core_sub #494: 0x8000000000000000 - 0x100000000 = 0x7fffffff00000000/7fffffff00000000, carry 0 -mpi_core_sub:"8000000000000000":"100000000":"7fffffff00000000":"7fffffff00000000":0 - -mbedtls_mpi_core_sub #495: 0x8000000000000000 - 0x1f7f7f7f7f7f7f = 0x7fe0808080808081/7fe0808080808081, carry 0 -mpi_core_sub:"8000000000000000":"1f7f7f7f7f7f7f":"7fe0808080808081":"7fe0808080808081":0 - -mbedtls_mpi_core_sub #496: 0x8000000000000000 - 0x8000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"8000000000000000":"8000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #497: 0x8000000000000000 - 0xfefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #498: 0x8000000000000000 - 0xfffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #499: 0x8000000000000000 - 0xffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #500: 0x8000000000000000 - 0x10000000000000000 = 0xffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"10000000000000000":"ffffffff8000000000000000":"ffffffffffffffff8000000000000000":1 - -mbedtls_mpi_core_sub #501: 0x8000000000000000 - 0x1234567890abcdef0 = 0xffffffff5cba9876f5432110/ffffffffffffffff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef0":"ffffffff5cba9876f5432110":"ffffffffffffffff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #502: 0x8000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #503: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #504: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #505: 0x8000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000008000000000000000/ffffffffffffffff00000000000000008000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000008000000000000000":"ffffffffffffffff00000000000000008000000000000000":1 - -mbedtls_mpi_core_sub #506: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ff5cba9876f5432110/ffffffffffffffedcba9876f543210ff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ff5cba9876f5432110":"ffffffffffffffedcba9876f543210ff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #507: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x8101010101010102/8101010101010102, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8101010101010102":"8101010101010102":1 - -mbedtls_mpi_core_sub #508: 0x8000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x8000000000000002/8000000000000002, carry 1 -mpi_core_sub:"8000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000002":"8000000000000002":1 - -mbedtls_mpi_core_sub #509: 0x8000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x8000000000000001/8000000000000001, carry 1 -mpi_core_sub:"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000001":"8000000000000001":1 - -mbedtls_mpi_core_sub #510: 0x8000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000008000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000, carry 1 -mpi_core_sub:"8000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000008000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000008000000000000000":1 - -mbedtls_mpi_core_sub #511: 0x8000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110, carry 1 -mpi_core_sub:"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ff5cba9876f5432110":1 - -mbedtls_mpi_core_sub #512: 0x8000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5, carry 1 -mpi_core_sub:"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6c26fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #513: 0xfefefefefefefefe - 0x0 = 0xfefefefefefefefe/fefefefefefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"0":"fefefefefefefefe":"fefefefefefefefe":0 - -mbedtls_mpi_core_sub #514: 0xfefefefefefefefe - 0x1 = 0xfefefefefefefefd/fefefefefefefefd, carry 0 -mpi_core_sub:"fefefefefefefefe":"1":"fefefefefefefefd":"fefefefefefefefd":0 - -mbedtls_mpi_core_sub #515: 0xfefefefefefefefe - 0x3 = 0xfefefefefefefefb/fefefefefefefefb, carry 0 -mpi_core_sub:"fefefefefefefefe":"3":"fefefefefefefefb":"fefefefefefefefb":0 - -mbedtls_mpi_core_sub #516: 0xfefefefefefefefe - 0xf = 0xfefefefefefefeef/fefefefefefefeef, carry 0 -mpi_core_sub:"fefefefefefefefe":"f":"fefefefefefefeef":"fefefefefefefeef":0 - -mbedtls_mpi_core_sub #517: 0xfefefefefefefefe - 0xfe = 0xfefefefefefefe00/fefefefefefefe00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fe":"fefefefefefefe00":"fefefefefefefe00":0 - -mbedtls_mpi_core_sub #518: 0xfefefefefefefefe - 0xff = 0xfefefefefefefdff/fefefefefefefdff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ff":"fefefefefefefdff":"fefefefefefefdff":0 - -mbedtls_mpi_core_sub #519: 0xfefefefefefefefe - 0x100 = 0xfefefefefefefdfe/fefefefefefefdfe, carry 0 -mpi_core_sub:"fefefefefefefefe":"100":"fefefefefefefdfe":"fefefefefefefdfe":0 - -mbedtls_mpi_core_sub #520: 0xfefefefefefefefe - 0xff00 = 0xfefefefefefdfffe/fefefefefefdfffe, carry 0 -mpi_core_sub:"fefefefefefefefe":"ff00":"fefefefefefdfffe":"fefefefefefdfffe":0 - -mbedtls_mpi_core_sub #521: 0xfefefefefefefefe - 0xfffe = 0xfefefefefefdff00/fefefefefefdff00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fffe":"fefefefefefdff00":"fefefefefefdff00":0 - -mbedtls_mpi_core_sub #522: 0xfefefefefefefefe - 0xffff = 0xfefefefefefdfeff/fefefefefefdfeff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ffff":"fefefefefefdfeff":"fefefefefefdfeff":0 - -mbedtls_mpi_core_sub #523: 0xfefefefefefefefe - 0x10000 = 0xfefefefefefdfefe/fefefefefefdfefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"10000":"fefefefefefdfefe":"fefefefefefdfefe":0 - -mbedtls_mpi_core_sub #524: 0xfefefefefefefefe - 0xfffffffe = 0xfefefefdfefeff00/fefefefdfefeff00, carry 0 -mpi_core_sub:"fefefefefefefefe":"fffffffe":"fefefefdfefeff00":"fefefefdfefeff00":0 - -mbedtls_mpi_core_sub #525: 0xfefefefefefefefe - 0xffffffff = 0xfefefefdfefefeff/fefefefdfefefeff, carry 0 -mpi_core_sub:"fefefefefefefefe":"ffffffff":"fefefefdfefefeff":"fefefefdfefefeff":0 - -mbedtls_mpi_core_sub #526: 0xfefefefefefefefe - 0x100000000 = 0xfefefefdfefefefe/fefefefdfefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"100000000":"fefefefdfefefefe":"fefefefdfefefefe":0 - -mbedtls_mpi_core_sub #527: 0xfefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfedf7f7f7f7f7f7f/fedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fefefefefefefefe":"1f7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":"fedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #528: 0xfefefefefefefefe - 0x8000000000000000 = 0x7efefefefefefefe/7efefefefefefefe, carry 0 -mpi_core_sub:"fefefefefefefefe":"8000000000000000":"7efefefefefefefe":"7efefefefefefefe":0 - -mbedtls_mpi_core_sub #529: 0xfefefefefefefefe - 0xfefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fefefefefefefefe":"fefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #530: 0xfefefefefefefefe - 0xfffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #531: 0xfefefefefefefefe - 0xffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #532: 0xfefefefefefefefe - 0x10000000000000000 = 0xfffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"10000000000000000":"fffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #533: 0xfefefefefefefefe - 0x1234567890abcdef0 = 0xffffffffdbb99775f442200e/ffffffffffffffffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef0":"ffffffffdbb99775f442200e":"ffffffffffffffffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #534: 0xfefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #535: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #536: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #537: 0xfefefefefefefefe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fefefefefefefefe/ffffffffffffffff0000000000000000fefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"100000000000000000000000000000000":"ffffffff0000000000000000fefefefefefefefe":"ffffffffffffffff0000000000000000fefefefefefefefe":1 - -mbedtls_mpi_core_sub #538: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdbb99775f442200e/ffffffffffffffedcba9876f543210ffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdbb99775f442200e":"ffffffffffffffedcba9876f543210ffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #539: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #540: 0xfefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfefefefefefeff00/fefefefefefeff00, carry 1 -mpi_core_sub:"fefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefeff00":"fefefefefefeff00":1 - -mbedtls_mpi_core_sub #541: 0xfefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfefefefefefefeff/fefefefefefefeff, carry 1 -mpi_core_sub:"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefeff":"fefefefefefefeff":1 - -mbedtls_mpi_core_sub #542: 0xfefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fefefefefefefefe/ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe, carry 1 -mpi_core_sub:"fefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":"ffffffffffffffff000000000000000000000000000000000000000000000000fefefefefefefefe":1 - -mbedtls_mpi_core_sub #543: 0xfefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e, carry 1 -mpi_core_sub:"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdbb99775f442200e":1 - -mbedtls_mpi_core_sub #544: 0xfefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3, carry 1 -mpi_core_sub:"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #545: 0xfffffffffffffffe - 0x0 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"0":"fffffffffffffffe":"fffffffffffffffe":0 - -mbedtls_mpi_core_sub #546: 0xfffffffffffffffe - 0x1 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffe":"1":"fffffffffffffffd":"fffffffffffffffd":0 - -mbedtls_mpi_core_sub #547: 0xfffffffffffffffe - 0x3 = 0xfffffffffffffffb/fffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffe":"3":"fffffffffffffffb":"fffffffffffffffb":0 - -mbedtls_mpi_core_sub #548: 0xfffffffffffffffe - 0xf = 0xffffffffffffffef/ffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffe":"f":"ffffffffffffffef":"ffffffffffffffef":0 - -mbedtls_mpi_core_sub #549: 0xfffffffffffffffe - 0xfe = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffe":"fe":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #550: 0xfffffffffffffffe - 0xff = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ff":"fffffffffffffeff":"fffffffffffffeff":0 - -mbedtls_mpi_core_sub #551: 0xfffffffffffffffe - 0x100 = 0xfffffffffffffefe/fffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffe":"100":"fffffffffffffefe":"fffffffffffffefe":0 - -mbedtls_mpi_core_sub #552: 0xfffffffffffffffe - 0xff00 = 0xffffffffffff00fe/ffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffe":"ff00":"ffffffffffff00fe":"ffffffffffff00fe":0 - -mbedtls_mpi_core_sub #553: 0xfffffffffffffffe - 0xfffe = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffe":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #554: 0xfffffffffffffffe - 0xffff = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ffff":"fffffffffffeffff":"fffffffffffeffff":0 - -mbedtls_mpi_core_sub #555: 0xfffffffffffffffe - 0x10000 = 0xfffffffffffefffe/fffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"10000":"fffffffffffefffe":"fffffffffffefffe":0 - -mbedtls_mpi_core_sub #556: 0xfffffffffffffffe - 0xfffffffe = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffffffe":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #557: 0xfffffffffffffffe - 0xffffffff = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffe":"ffffffff":"fffffffeffffffff":"fffffffeffffffff":0 - -mbedtls_mpi_core_sub #558: 0xfffffffffffffffe - 0x100000000 = 0xfffffffefffffffe/fffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"100000000":"fffffffefffffffe":"fffffffefffffffe":0 - -mbedtls_mpi_core_sub #559: 0xfffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffe080808080807f/ffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffe":"1f7f7f7f7f7f7f":"ffe080808080807f":"ffe080808080807f":0 - -mbedtls_mpi_core_sub #560: 0xfffffffffffffffe - 0x8000000000000000 = 0x7ffffffffffffffe/7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffe":"8000000000000000":"7ffffffffffffffe":"7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #561: 0xfffffffffffffffe - 0xfefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffe":"fefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #562: 0xfffffffffffffffe - 0xfffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #563: 0xfffffffffffffffe - 0xffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #564: 0xfffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #565: 0xfffffffffffffffe - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210e/ffffffffffffffffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef0":"ffffffffdcba9876f543210e":"ffffffffffffffffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #566: 0xfffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 - -mbedtls_mpi_core_sub #567: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #568: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #569: 0xfffffffffffffffe - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000fffffffffffffffe/ffffffffffffffff0000000000000000fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"100000000000000000000000000000000":"ffffffff0000000000000000fffffffffffffffe":"ffffffffffffffff0000000000000000fffffffffffffffe":1 - -mbedtls_mpi_core_sub #570: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210e/ffffffffffffffedcba9876f543210ffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210e":"ffffffffffffffedcba9876f543210ffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #571: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010100/10101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010100":"10101010101010100":1 - -mbedtls_mpi_core_sub #572: 0xfffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #573: 0xfffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffff/ffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #574: 0xfffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000fffffffffffffffe/ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":"ffffffffffffffff000000000000000000000000000000000000000000000000fffffffffffffffe":1 - -mbedtls_mpi_core_sub #575: 0xfffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210e":1 - -mbedtls_mpi_core_sub #576: 0xfffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #577: 0xffffffffffffffff - 0x0 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"0":"ffffffffffffffff":"ffffffffffffffff":0 - -mbedtls_mpi_core_sub #578: 0xffffffffffffffff - 0x1 = 0xfffffffffffffffe/fffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffe":0 - -mbedtls_mpi_core_sub #579: 0xffffffffffffffff - 0x3 = 0xfffffffffffffffc/fffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffff":"3":"fffffffffffffffc":"fffffffffffffffc":0 - -mbedtls_mpi_core_sub #580: 0xffffffffffffffff - 0xf = 0xfffffffffffffff0/fffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffff":"f":"fffffffffffffff0":"fffffffffffffff0":0 - -mbedtls_mpi_core_sub #581: 0xffffffffffffffff - 0xfe = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffff":"fe":"ffffffffffffff01":"ffffffffffffff01":0 - -mbedtls_mpi_core_sub #582: 0xffffffffffffffff - 0xff = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffff":"ff":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #583: 0xffffffffffffffff - 0x100 = 0xfffffffffffffeff/fffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffff":"100":"fffffffffffffeff":"fffffffffffffeff":0 - -mbedtls_mpi_core_sub #584: 0xffffffffffffffff - 0xff00 = 0xffffffffffff00ff/ffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffff":"ff00":"ffffffffffff00ff":"ffffffffffff00ff":0 - -mbedtls_mpi_core_sub #585: 0xffffffffffffffff - 0xfffe = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffe":"ffffffffffff0001":"ffffffffffff0001":0 - -mbedtls_mpi_core_sub #586: 0xffffffffffffffff - 0xffff = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #587: 0xffffffffffffffff - 0x10000 = 0xfffffffffffeffff/fffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"10000":"fffffffffffeffff":"fffffffffffeffff":0 - -mbedtls_mpi_core_sub #588: 0xffffffffffffffff - 0xfffffffe = 0xffffffff00000001/ffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffffffe":"ffffffff00000001":"ffffffff00000001":0 - -mbedtls_mpi_core_sub #589: 0xffffffffffffffff - 0xffffffff = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #590: 0xffffffffffffffff - 0x100000000 = 0xfffffffeffffffff/fffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"100000000":"fffffffeffffffff":"fffffffeffffffff":0 - -mbedtls_mpi_core_sub #591: 0xffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffe0808080808080/ffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffff":"1f7f7f7f7f7f7f":"ffe0808080808080":"ffe0808080808080":0 - -mbedtls_mpi_core_sub #592: 0xffffffffffffffff - 0x8000000000000000 = 0x7fffffffffffffff/7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"7fffffffffffffff":0 - -mbedtls_mpi_core_sub #593: 0xffffffffffffffff - 0xfefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffff":"fefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #594: 0xffffffffffffffff - 0xfffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #595: 0xffffffffffffffff - 0xffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #596: 0xffffffffffffffff - 0x10000000000000000 = 0xffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"10000000000000000":"ffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #597: 0xffffffffffffffff - 0x1234567890abcdef0 = 0xffffffffdcba9876f543210f/ffffffffffffffffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef0":"ffffffffdcba9876f543210f":"ffffffffffffffffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #598: 0xffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 - -mbedtls_mpi_core_sub #599: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #600: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #601: 0xffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffff0000000000000000ffffffffffffffff/ffffffffffffffff0000000000000000ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff0000000000000000ffffffffffffffff":"ffffffffffffffff0000000000000000ffffffffffffffff":1 - -mbedtls_mpi_core_sub #602: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f543210f/ffffffffffffffedcba9876f543210ffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f543210f":"ffffffffffffffedcba9876f543210ffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #603: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010101/10101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010101":"10101010101010101":1 - -mbedtls_mpi_core_sub #604: 0xffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #605: 0xffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000000/10000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000000000000000":1 - -mbedtls_mpi_core_sub #606: 0xffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000000ffffffffffffffff/ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":"ffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff":1 - -mbedtls_mpi_core_sub #607: 0xffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f543210f":1 - -mbedtls_mpi_core_sub #608: 0xffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #609: 0x10000000000000000 - 0x0 = 0x10000000000000000/10000000000000000, carry 0 -mpi_core_sub:"10000000000000000":"0":"10000000000000000":"10000000000000000":0 - -mbedtls_mpi_core_sub #610: 0x10000000000000000 - 0x1 = 0xffffffffffffffff/ffffffffffffffff, carry 0 -mpi_core_sub:"10000000000000000":"1":"ffffffffffffffff":"ffffffffffffffff":0 - -mbedtls_mpi_core_sub #611: 0x10000000000000000 - 0x3 = 0xfffffffffffffffd/fffffffffffffffd, carry 0 -mpi_core_sub:"10000000000000000":"3":"fffffffffffffffd":"fffffffffffffffd":0 - -mbedtls_mpi_core_sub #612: 0x10000000000000000 - 0xf = 0xfffffffffffffff1/fffffffffffffff1, carry 0 -mpi_core_sub:"10000000000000000":"f":"fffffffffffffff1":"fffffffffffffff1":0 - -mbedtls_mpi_core_sub #613: 0x10000000000000000 - 0xfe = 0xffffffffffffff02/ffffffffffffff02, carry 0 -mpi_core_sub:"10000000000000000":"fe":"ffffffffffffff02":"ffffffffffffff02":0 - -mbedtls_mpi_core_sub #614: 0x10000000000000000 - 0xff = 0xffffffffffffff01/ffffffffffffff01, carry 0 -mpi_core_sub:"10000000000000000":"ff":"ffffffffffffff01":"ffffffffffffff01":0 - -mbedtls_mpi_core_sub #615: 0x10000000000000000 - 0x100 = 0xffffffffffffff00/ffffffffffffff00, carry 0 -mpi_core_sub:"10000000000000000":"100":"ffffffffffffff00":"ffffffffffffff00":0 - -mbedtls_mpi_core_sub #616: 0x10000000000000000 - 0xff00 = 0xffffffffffff0100/ffffffffffff0100, carry 0 -mpi_core_sub:"10000000000000000":"ff00":"ffffffffffff0100":"ffffffffffff0100":0 - -mbedtls_mpi_core_sub #617: 0x10000000000000000 - 0xfffe = 0xffffffffffff0002/ffffffffffff0002, carry 0 -mpi_core_sub:"10000000000000000":"fffe":"ffffffffffff0002":"ffffffffffff0002":0 - -mbedtls_mpi_core_sub #618: 0x10000000000000000 - 0xffff = 0xffffffffffff0001/ffffffffffff0001, carry 0 -mpi_core_sub:"10000000000000000":"ffff":"ffffffffffff0001":"ffffffffffff0001":0 - -mbedtls_mpi_core_sub #619: 0x10000000000000000 - 0x10000 = 0xffffffffffff0000/ffffffffffff0000, carry 0 -mpi_core_sub:"10000000000000000":"10000":"ffffffffffff0000":"ffffffffffff0000":0 - -mbedtls_mpi_core_sub #620: 0x10000000000000000 - 0xfffffffe = 0xffffffff00000002/ffffffff00000002, carry 0 -mpi_core_sub:"10000000000000000":"fffffffe":"ffffffff00000002":"ffffffff00000002":0 - -mbedtls_mpi_core_sub #621: 0x10000000000000000 - 0xffffffff = 0xffffffff00000001/ffffffff00000001, carry 0 -mpi_core_sub:"10000000000000000":"ffffffff":"ffffffff00000001":"ffffffff00000001":0 - -mbedtls_mpi_core_sub #622: 0x10000000000000000 - 0x100000000 = 0xffffffff00000000/ffffffff00000000, carry 0 -mpi_core_sub:"10000000000000000":"100000000":"ffffffff00000000":"ffffffff00000000":0 - -mbedtls_mpi_core_sub #623: 0x10000000000000000 - 0x1f7f7f7f7f7f7f = 0xffe0808080808081/ffe0808080808081, carry 0 -mpi_core_sub:"10000000000000000":"1f7f7f7f7f7f7f":"ffe0808080808081":"ffe0808080808081":0 - -mbedtls_mpi_core_sub #624: 0x10000000000000000 - 0x8000000000000000 = 0x8000000000000000/8000000000000000, carry 0 -mpi_core_sub:"10000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":0 - -mbedtls_mpi_core_sub #625: 0x10000000000000000 - 0xfefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"10000000000000000":"fefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #626: 0x10000000000000000 - 0xfffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"10000000000000000":"fffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #627: 0x10000000000000000 - 0xffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"10000000000000000":"ffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #628: 0x10000000000000000 - 0x10000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"10000000000000000":"10000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #629: 0x10000000000000000 - 0x1234567890abcdef0 = 0xffffffffdcba9876f5432110/ffffffffffffffffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef0":"ffffffffdcba9876f5432110":"ffffffffffffffffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #630: 0x10000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 - -mbedtls_mpi_core_sub #631: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 - -mbedtls_mpi_core_sub #632: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #633: 0x10000000000000000 - 0x100000000000000000000000000000000 = 0xffffffff00000000000000010000000000000000/ffffffffffffffff00000000000000010000000000000000, carry 1 -mpi_core_sub:"10000000000000000":"100000000000000000000000000000000":"ffffffff00000000000000010000000000000000":"ffffffffffffffff00000000000000010000000000000000":1 - -mbedtls_mpi_core_sub #634: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543210ffdcba9876f5432110/ffffffffffffffedcba9876f543210ffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543210ffdcba9876f5432110":"ffffffffffffffedcba9876f543210ffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #635: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x10101010101010102/10101010101010102, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10101010101010102":"10101010101010102":1 - -mbedtls_mpi_core_sub #636: 0x10000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x10000000000000002/10000000000000002, carry 1 -mpi_core_sub:"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000002":"10000000000000002":1 - -mbedtls_mpi_core_sub #637: 0x10000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x10000000000000001/10000000000000001, carry 1 -mpi_core_sub:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000001":"10000000000000001":1 - -mbedtls_mpi_core_sub #638: 0x10000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000000000000000000010000000000000000/ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000, carry 1 -mpi_core_sub:"10000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000000000000000000010000000000000000":"ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000":1 - -mbedtls_mpi_core_sub #639: 0x10000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543210ffdcba9876f5432110":1 - -mbedtls_mpi_core_sub #640: 0x10000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5, carry 1 -mpi_core_sub:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6ca6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #641: 0x1234567890abcdef0 - 0x0 = 0x1234567890abcdef0/1234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"0":"1234567890abcdef0":"1234567890abcdef0":0 - -mbedtls_mpi_core_sub #642: 0x1234567890abcdef0 - 0x1 = 0x1234567890abcdeef/1234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef0":"1":"1234567890abcdeef":"1234567890abcdeef":0 - -mbedtls_mpi_core_sub #643: 0x1234567890abcdef0 - 0x3 = 0x1234567890abcdeed/1234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef0":"3":"1234567890abcdeed":"1234567890abcdeed":0 - -mbedtls_mpi_core_sub #644: 0x1234567890abcdef0 - 0xf = 0x1234567890abcdee1/1234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef0":"f":"1234567890abcdee1":"1234567890abcdee1":0 - -mbedtls_mpi_core_sub #645: 0x1234567890abcdef0 - 0xfe = 0x1234567890abcddf2/1234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fe":"1234567890abcddf2":"1234567890abcddf2":0 - -mbedtls_mpi_core_sub #646: 0x1234567890abcdef0 - 0xff = 0x1234567890abcddf1/1234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ff":"1234567890abcddf1":"1234567890abcddf1":0 - -mbedtls_mpi_core_sub #647: 0x1234567890abcdef0 - 0x100 = 0x1234567890abcddf0/1234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef0":"100":"1234567890abcddf0":"1234567890abcddf0":0 - -mbedtls_mpi_core_sub #648: 0x1234567890abcdef0 - 0xff00 = 0x1234567890abbdff0/1234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef0":"ff00":"1234567890abbdff0":"1234567890abbdff0":0 - -mbedtls_mpi_core_sub #649: 0x1234567890abcdef0 - 0xfffe = 0x1234567890abbdef2/1234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffe":"1234567890abbdef2":"1234567890abbdef2":0 - -mbedtls_mpi_core_sub #650: 0x1234567890abcdef0 - 0xffff = 0x1234567890abbdef1/1234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffff":"1234567890abbdef1":"1234567890abbdef1":0 - -mbedtls_mpi_core_sub #651: 0x1234567890abcdef0 - 0x10000 = 0x1234567890abbdef0/1234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"10000":"1234567890abbdef0":"1234567890abbdef0":0 - -mbedtls_mpi_core_sub #652: 0x1234567890abcdef0 - 0xfffffffe = 0x1234567880abcdef2/1234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffffffe":"1234567880abcdef2":"1234567880abcdef2":0 - -mbedtls_mpi_core_sub #653: 0x1234567890abcdef0 - 0xffffffff = 0x1234567880abcdef1/1234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffffffff":"1234567880abcdef1":"1234567880abcdef1":0 - -mbedtls_mpi_core_sub #654: 0x1234567890abcdef0 - 0x100000000 = 0x1234567880abcdef0/1234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"100000000":"1234567880abcdef0":"1234567880abcdef0":0 - -mbedtls_mpi_core_sub #655: 0x1234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x12325e8098b3d5f71/12325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef0":"1f7f7f7f7f7f7f":"12325e8098b3d5f71":"12325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #656: 0x1234567890abcdef0 - 0x8000000000000000 = 0xa34567890abcdef0/a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"8000000000000000":"a34567890abcdef0":"a34567890abcdef0":0 - -mbedtls_mpi_core_sub #657: 0x1234567890abcdef0 - 0xfefefefefefefefe = 0x2446688a0bbddff2/2446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fefefefefefefefe":"2446688a0bbddff2":"2446688a0bbddff2":0 - -mbedtls_mpi_core_sub #658: 0x1234567890abcdef0 - 0xfffffffffffffffe = 0x234567890abcdef2/234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffe":"234567890abcdef2":"234567890abcdef2":0 - -mbedtls_mpi_core_sub #659: 0x1234567890abcdef0 - 0xffffffffffffffff = 0x234567890abcdef1/234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffff":"234567890abcdef1":"234567890abcdef1":0 - -mbedtls_mpi_core_sub #660: 0x1234567890abcdef0 - 0x10000000000000000 = 0x234567890abcdef0/234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef0":"10000000000000000":"234567890abcdef0":"234567890abcdef0":0 - -mbedtls_mpi_core_sub #661: 0x1234567890abcdef0 - 0x1234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #662: 0x1234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 - -mbedtls_mpi_core_sub #663: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 - -mbedtls_mpi_core_sub #664: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 - -mbedtls_mpi_core_sub #665: 0x1234567890abcdef0 - 0x100000000000000000000000000000000 = 0xffffffff0000000000000001234567890abcdef0/ffffffffffffffff0000000000000001234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff0000000000000001234567890abcdef0":"ffffffffffffffff0000000000000001234567890abcdef0":1 - -mbedtls_mpi_core_sub #666: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffedcba9876f543211000000000000000000/ffffffffffffffedcba9876f543211000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffedcba9876f543211000000000000000000":"ffffffffffffffedcba9876f543211000000000000000000":1 - -mbedtls_mpi_core_sub #667: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x12446688a0bbddff2/12446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"12446688a0bbddff2":"12446688a0bbddff2":1 - -mbedtls_mpi_core_sub #668: 0x1234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef2/1234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef2":"1234567890abcdef2":1 - -mbedtls_mpi_core_sub #669: 0x1234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef1/1234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef1":"1234567890abcdef1":1 - -mbedtls_mpi_core_sub #670: 0x1234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff000000000000000000000000000000000000000000000001234567890abcdef0/ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff000000000000000000000000000000000000000000000001234567890abcdef0":"ffffffffffffffff000000000000000000000000000000000000000000000001234567890abcdef0":1 - -mbedtls_mpi_core_sub #671: 0x1234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000/ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f543210fedcba9876f543211000000000000000000":1 - -mbedtls_mpi_core_sub #672: 0x1234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b39694cd7223151b8dc6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #673: 0xfffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffefefefefefefefe/fffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #674: 0xfffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffefefefefefefefd/fffffffffffffffffefefefefefefefd, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffefefefefefefefd":"fffffffffffffffffefefefefefefefd":0 - -mbedtls_mpi_core_sub #675: 0xfffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffefefefefefefefb/fffffffffffffffffefefefefefefefb, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffefefefefefefefb":"fffffffffffffffffefefefefefefefb":0 - -mbedtls_mpi_core_sub #676: 0xfffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffefefefefefefeef/fffffffffffffffffefefefefefefeef, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffefefefefefefeef":"fffffffffffffffffefefefefefefeef":0 - -mbedtls_mpi_core_sub #677: 0xfffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffefefefefefefe00/fffffffffffffffffefefefefefefe00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffefefefefefefe00":"fffffffffffffffffefefefefefefe00":0 - -mbedtls_mpi_core_sub #678: 0xfffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffefefefefefefdff/fffffffffffffffffefefefefefefdff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffefefefefefefdff":"fffffffffffffffffefefefefefefdff":0 - -mbedtls_mpi_core_sub #679: 0xfffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffefefefefefefdfe/fffffffffffffffffefefefefefefdfe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffefefefefefefdfe":"fffffffffffffffffefefefefefefdfe":0 - -mbedtls_mpi_core_sub #680: 0xfffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffefefefefefdfffe/fffffffffffffffffefefefefefdfffe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffefefefefefdfffe":"fffffffffffffffffefefefefefdfffe":0 - -mbedtls_mpi_core_sub #681: 0xfffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffefefefefefdff00/fffffffffffffffffefefefefefdff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffefefefefefdff00":"fffffffffffffffffefefefefefdff00":0 - -mbedtls_mpi_core_sub #682: 0xfffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffefefefefefdfeff/fffffffffffffffffefefefefefdfeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefefefefefdfeff":"fffffffffffffffffefefefefefdfeff":0 - -mbedtls_mpi_core_sub #683: 0xfffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffefefefefefdfefe/fffffffffffffffffefefefefefdfefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefdfefe":"fffffffffffffffffefefefefefdfefe":0 - -mbedtls_mpi_core_sub #684: 0xfffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffefefefdfefeff00/fffffffffffffffffefefefdfefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffefefefdfefeff00":"fffffffffffffffffefefefdfefeff00":0 - -mbedtls_mpi_core_sub #685: 0xfffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffefefefdfefefeff/fffffffffffffffffefefefdfefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefdfefefeff":"fffffffffffffffffefefefdfefefeff":0 - -mbedtls_mpi_core_sub #686: 0xfffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffefefefdfefefefe/fffffffffffffffffefefefdfefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"fffffffffffffffffefefefdfefefefe":0 - -mbedtls_mpi_core_sub #687: 0xfffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #688: 0xfffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffff7efefefefefefefe/ffffffffffffffff7efefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"ffffffffffffffff7efefefefefefefe":0 - -mbedtls_mpi_core_sub #689: 0xfffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #690: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffefefefefefefeff00/fffffffffffffffefefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffefefefefefefeff00":0 - -mbedtls_mpi_core_sub #691: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffefefefefefefefeff/fffffffffffffffefefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffefefefefefefefeff":"fffffffffffffffefefefefefefefeff":0 - -mbedtls_mpi_core_sub #692: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffefefefefefefefefe/fffffffffffffffefefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffefefefefefefefefe":"fffffffffffffffefefefefefefefefe":0 - -mbedtls_mpi_core_sub #693: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffedbb99775f442200e/fffffffffffffffedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffedbb99775f442200e":"fffffffffffffffedbb99775f442200e":0 - -mbedtls_mpi_core_sub #694: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #695: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #696: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #697: 0xfffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #698: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedbb99775f442200e/ffffffffffffffeecba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedbb99775f442200e":"ffffffffffffffeecba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #699: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #700: 0xfffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffefefefefefeff00/fffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefeff00":"fffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #701: 0xfffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffefefefefefefeff/fffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefeff":"fffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #702: 0xfffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #703: 0xfffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #704: 0xfffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mpi_core_sub:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #705: 0xfffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #706: 0xfffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #707: 0xfffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffb":0 - -mbedtls_mpi_core_sub #708: 0xfffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffef":0 - -mbedtls_mpi_core_sub #709: 0xfffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #710: 0xfffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #711: 0xfffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffefe":0 - -mbedtls_mpi_core_sub #712: 0xfffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffff00fe":0 - -mbedtls_mpi_core_sub #713: 0xfffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #714: 0xfffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #715: 0xfffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffefffe":0 - -mbedtls_mpi_core_sub #716: 0xfffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #717: 0xfffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #718: 0xfffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffefffffffe/fffffffffffffffffffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffefffffffe":0 - -mbedtls_mpi_core_sub #719: 0xfffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe080808080807f/ffffffffffffffffffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffe080808080807f":"ffffffffffffffffffe080808080807f":0 - -mbedtls_mpi_core_sub #720: 0xfffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffff7ffffffffffffffe/ffffffffffffffff7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffff7ffffffffffffffe":"ffffffffffffffff7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #721: 0xfffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010100/ffffffffffffffff0101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffff0101010101010100":"ffffffffffffffff0101010101010100":0 - -mbedtls_mpi_core_sub #722: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #723: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #724: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffefffffffffffffffe/fffffffffffffffefffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffefffffffffffffffe":"fffffffffffffffefffffffffffffffe":0 - -mbedtls_mpi_core_sub #725: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210e/fffffffffffffffedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffedcba9876f543210e":"fffffffffffffffedcba9876f543210e":0 - -mbedtls_mpi_core_sub #726: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #727: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #728: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #729: 0xfffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #730: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210e/ffffffffffffffeecba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210e":"ffffffffffffffeecba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #731: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010100/100000000000000000101010101010100, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010100":"100000000000000000101010101010100":1 - -mbedtls_mpi_core_sub #732: 0xfffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #733: 0xfffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #734: 0xfffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe/ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":"ffffffffffffffff00000000000000000000000000000000fffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #735: 0xfffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #736: 0xfffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #737: 0xffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #738: 0xffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #739: 0xffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffc":0 - -mbedtls_mpi_core_sub #740: 0xffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffff0":0 - -mbedtls_mpi_core_sub #741: 0xffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #742: 0xffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #743: 0xffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #744: 0xffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffff00ff":0 - -mbedtls_mpi_core_sub #745: 0xffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #746: 0xffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #747: 0xffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #748: 0xffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #749: 0xffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #750: 0xffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffeffffffff/fffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #751: 0xffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808080/ffffffffffffffffffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808080":"ffffffffffffffffffe0808080808080":0 - -mbedtls_mpi_core_sub #752: 0xffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffff7fffffffffffffff/ffffffffffffffff7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7fffffffffffffff":"ffffffffffffffff7fffffffffffffff":0 - -mbedtls_mpi_core_sub #753: 0xffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010101/ffffffffffffffff0101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffff0101010101010101":"ffffffffffffffff0101010101010101":0 - -mbedtls_mpi_core_sub #754: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #755: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #756: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffeffffffffffffffff/fffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffeffffffffffffffff":"fffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #757: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f543210f/fffffffffffffffedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffedcba9876f543210f":"fffffffffffffffedcba9876f543210f":0 - -mbedtls_mpi_core_sub #758: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #759: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #760: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #761: 0xffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #762: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f543210f/ffffffffffffffeecba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f543210f":"ffffffffffffffeecba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #763: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010101/100000000000000000101010101010101, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010101":"100000000000000000101010101010101":1 - -mbedtls_mpi_core_sub #764: 0xffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000001":"100000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #765: 0xffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #766: 0xffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff/ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":"ffffffffffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #767: 0xffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #768: 0xffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #769: 0x100000000000000000000000000000000 - 0x0 = 0x100000000000000000000000000000000/100000000000000000000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"100000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #770: 0x100000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #771: 0x100000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #772: 0x100000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffff1, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffff1":0 - -mbedtls_mpi_core_sub #773: 0x100000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffff02, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffff02":0 - -mbedtls_mpi_core_sub #774: 0x100000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #775: 0x100000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #776: 0x100000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffff0100, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffff0100":0 - -mbedtls_mpi_core_sub #777: 0x100000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffff0002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffff0002":0 - -mbedtls_mpi_core_sub #778: 0x100000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #779: 0x100000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #780: 0x100000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffff00000002/ffffffffffffffffffffffff00000002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffff00000002":"ffffffffffffffffffffffff00000002":0 - -mbedtls_mpi_core_sub #781: 0x100000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffff00000001/ffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #782: 0x100000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffff00000000/ffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffff00000000":"ffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #783: 0x100000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffe0808080808081/ffffffffffffffffffe0808080808081, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffe0808080808081":"ffffffffffffffffffe0808080808081":0 - -mbedtls_mpi_core_sub #784: 0x100000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffff8000000000000000/ffffffffffffffff8000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"ffffffffffffffff8000000000000000":0 - -mbedtls_mpi_core_sub #785: 0x100000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffff0101010101010102/ffffffffffffffff0101010101010102, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffff0101010101010102":"ffffffffffffffff0101010101010102":0 - -mbedtls_mpi_core_sub #786: 0x100000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffff0000000000000002/ffffffffffffffff0000000000000002, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"ffffffffffffffff0000000000000002":0 - -mbedtls_mpi_core_sub #787: 0x100000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffff0000000000000001/ffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffff0000000000000001":"ffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #788: 0x100000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffff0000000000000000/ffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"10000000000000000":"ffffffffffffffff0000000000000000":"ffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #789: 0x100000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffedcba9876f5432110/fffffffffffffffedcba9876f5432110, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffedcba9876f5432110":"fffffffffffffffedcba9876f5432110":0 - -mbedtls_mpi_core_sub #790: 0x100000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #791: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #792: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #793: 0x100000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #794: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffeecba9876f543210fedcba9876f5432110/ffffffffffffffeecba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffeecba9876f543210fedcba9876f5432110":"ffffffffffffffeecba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #795: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x100000000000000000101010101010102/100000000000000000101010101010102, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000101010101010102":"100000000000000000101010101010102":1 - -mbedtls_mpi_core_sub #796: 0x100000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x100000000000000000000000000000002/100000000000000000000000000000002, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000002":"100000000000000000000000000000002":1 - -mbedtls_mpi_core_sub #797: 0x100000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x100000000000000000000000000000001/100000000000000000000000000000001, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000001":"100000000000000000000000000000001":1 - -mbedtls_mpi_core_sub #798: 0x100000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000000100000000000000000000000000000000/ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000000100000000000000000000000000000000":"ffffffffffffffff0000000000000000000000000000000100000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #799: 0x100000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110/ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":"ffffffffffffedcba9876f543210fedcba9876f543210feecba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #800: 0x100000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b396a4cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #801: 0x1234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #802: 0x1234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_sub #803: 0x1234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdeed":0 - -mbedtls_mpi_core_sub #804: 0x1234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdee1":0 - -mbedtls_mpi_core_sub #805: 0x1234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcddf2":0 - -mbedtls_mpi_core_sub #806: 0x1234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcddf1":0 - -mbedtls_mpi_core_sub #807: 0x1234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcddf0":0 - -mbedtls_mpi_core_sub #808: 0x1234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abbdff0":0 - -mbedtls_mpi_core_sub #809: 0x1234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abbdef2":0 - -mbedtls_mpi_core_sub #810: 0x1234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abbdef1":0 - -mbedtls_mpi_core_sub #811: 0x1234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abbdef0":0 - -mbedtls_mpi_core_sub #812: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567880abcdef2/1234567890abcdef01234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567880abcdef2":"1234567890abcdef01234567880abcdef2":0 - -mbedtls_mpi_core_sub #813: 0x1234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567880abcdef1/1234567890abcdef01234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567880abcdef1":"1234567890abcdef01234567880abcdef1":0 - -mbedtls_mpi_core_sub #814: 0x1234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567880abcdef0/1234567890abcdef01234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"1234567890abcdef01234567880abcdef0":0 - -mbedtls_mpi_core_sub #815: 0x1234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef012325e8098b3d5f71/1234567890abcdef012325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef012325e8098b3d5f71":"1234567890abcdef012325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #816: 0x1234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef00a34567890abcdef0/1234567890abcdef00a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"1234567890abcdef00a34567890abcdef0":0 - -mbedtls_mpi_core_sub #817: 0x1234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef002446688a0bbddff2/1234567890abcdef002446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef002446688a0bbddff2":"1234567890abcdef002446688a0bbddff2":0 - -mbedtls_mpi_core_sub #818: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef00234567890abcdef2/1234567890abcdef00234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"1234567890abcdef00234567890abcdef2":0 - -mbedtls_mpi_core_sub #819: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef00234567890abcdef1/1234567890abcdef00234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef00234567890abcdef1":"1234567890abcdef00234567890abcdef1":0 - -mbedtls_mpi_core_sub #820: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef00234567890abcdef0/1234567890abcdef00234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef00234567890abcdef0":"1234567890abcdef00234567890abcdef0":0 - -mbedtls_mpi_core_sub #821: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef000000000000000000/1234567890abcdef000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef000000000000000000":"1234567890abcdef000000000000000000":0 - -mbedtls_mpi_core_sub #822: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1134567890abcdef012446688a0bbddff2/1134567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1134567890abcdef012446688a0bbddff2":"1134567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #823: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1134567890abcdef01234567890abcdef2/1134567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1134567890abcdef01234567890abcdef2":"1134567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #824: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1134567890abcdef01234567890abcdef1/1134567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1134567890abcdef01234567890abcdef1":"1134567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #825: 0x1234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1134567890abcdef01234567890abcdef0/1134567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1134567890abcdef01234567890abcdef0":"1134567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #826: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #827: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1234567890abcdef012446688a0bbddff2/1234567890abcdef012446688a0bbddff2, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef012446688a0bbddff2":"1234567890abcdef012446688a0bbddff2":1 - -mbedtls_mpi_core_sub #828: 0x1234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef2, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef2":1 - -mbedtls_mpi_core_sub #829: 0x1234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef1, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef1":1 - -mbedtls_mpi_core_sub #830: 0x1234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0/ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":"ffffffffffffffff0000000000000000000000000000001234567890abcdef01234567890abcdef0":1 - -mbedtls_mpi_core_sub #831: 0x1234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000/ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":"ffffffffffffedcba9876f543210fedcba9876f54321100000000000000000000000000000000000":1 - -mbedtls_mpi_core_sub #832: 0x1234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7120f3a776135b5f305664ba042111b397b812d9ac1fd86cb6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #833: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #834: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefd":0 - -mbedtls_mpi_core_sub #835: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefb":0 - -mbedtls_mpi_core_sub #836: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeef":0 - -mbedtls_mpi_core_sub #837: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefe00":0 - -mbedtls_mpi_core_sub #838: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdff":0 - -mbedtls_mpi_core_sub #839: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefdfe":0 - -mbedtls_mpi_core_sub #840: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xff00 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfffe":0 - -mbedtls_mpi_core_sub #841: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdff00":0 - -mbedtls_mpi_core_sub #842: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfeff":0 - -mbedtls_mpi_core_sub #843: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefdfefe":0 - -mbedtls_mpi_core_sub #844: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefeff00":0 - -mbedtls_mpi_core_sub #845: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefeff":0 - -mbedtls_mpi_core_sub #846: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefdfefefefe":0 - -mbedtls_mpi_core_sub #847: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1f7f7f7f7f7f7f = 0xfffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f/fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1f7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":"fffffffffffffffffffffffffffffffffffffffffffffffffedf7f7f7f7f7f7f":0 - -mbedtls_mpi_core_sub #848: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe/ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff7efefefefefefefe":0 - -mbedtls_mpi_core_sub #849: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #850: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff00":0 - -mbedtls_mpi_core_sub #851: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefeff":0 - -mbedtls_mpi_core_sub #852: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefefe":0 - -mbedtls_mpi_core_sub #853: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e/fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":"fffffffffffffffffffffffffffffffffffffffffffffffedbb99775f442200e":0 - -mbedtls_mpi_core_sub #854: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #855: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefeff00":0 - -mbedtls_mpi_core_sub #856: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefeff":0 - -mbedtls_mpi_core_sub #857: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffefffffffffffffffffefefefefefefefe":0 - -mbedtls_mpi_core_sub #858: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e/ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":"ffffffffffffffffffffffffffffffedcba9876f543210fedbb99775f442200e":0 - -mbedtls_mpi_core_sub #859: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"0":"0":0 - -mbedtls_mpi_core_sub #860: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefeff00":1 - -mbedtls_mpi_core_sub #861: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff/fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefeff":1 - -mbedtls_mpi_core_sub #862: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":1 - -mbedtls_mpi_core_sub #863: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedbb99775f442200e":1 - -mbedtls_mpi_core_sub #864: 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba5fd12fcae884dd3":1 - -mbedtls_mpi_core_sub #865: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #866: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #867: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb":0 - -mbedtls_mpi_core_sub #868: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xf = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef":0 - -mbedtls_mpi_core_sub #869: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #870: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #871: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefe":0 - -mbedtls_mpi_core_sub #872: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fe":0 - -mbedtls_mpi_core_sub #873: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #874: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #875: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffe":0 - -mbedtls_mpi_core_sub #876: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #877: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #878: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffe":0 - -mbedtls_mpi_core_sub #879: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f/ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe080808080807f":0 - -mbedtls_mpi_core_sub #880: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe/ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffe":0 - -mbedtls_mpi_core_sub #881: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010100":0 - -mbedtls_mpi_core_sub #882: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #883: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffff = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #884: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffe":0 - -mbedtls_mpi_core_sub #885: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210e":0 - -mbedtls_mpi_core_sub #886: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010100/ffffffffffffffffffffffffffffffff00000000000000000101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":"ffffffffffffffffffffffffffffffff00000000000000000101010101010100":0 - -mbedtls_mpi_core_sub #887: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #888: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffff = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #889: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #890: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210e":0 - -mbedtls_mpi_core_sub #891: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010100/101010101010100, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010100":"101010101010100":0 - -mbedtls_mpi_core_sub #892: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x0/0, carry 0 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"0":"0":0 - -mbedtls_mpi_core_sub #893: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #894: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":1 - -mbedtls_mpi_core_sub #895: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210e":1 - -mbedtls_mpi_core_sub #896: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3, carry 1 -mpi_core_sub:"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed3":1 - -mbedtls_mpi_core_sub #897: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x0 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #898: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":0 - -mbedtls_mpi_core_sub #899: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":0 - -mbedtls_mpi_core_sub #900: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0":0 - -mbedtls_mpi_core_sub #901: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #902: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #903: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff":0 - -mbedtls_mpi_core_sub #904: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff":0 - -mbedtls_mpi_core_sub #905: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #906: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #907: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":0 - -mbedtls_mpi_core_sub #908: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #909: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #910: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff/fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":0 - -mbedtls_mpi_core_sub #911: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808080":0 - -mbedtls_mpi_core_sub #912: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":0 - -mbedtls_mpi_core_sub #913: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010101":0 - -mbedtls_mpi_core_sub #914: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #915: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #916: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000 = 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff/fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffff":0 - -mbedtls_mpi_core_sub #917: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f543210f":0 - -mbedtls_mpi_core_sub #918: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010101/ffffffffffffffffffffffffffffffff00000000000000000101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":"ffffffffffffffffffffffffffffffff00000000000000000101010101010101":0 - -mbedtls_mpi_core_sub #919: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 - -mbedtls_mpi_core_sub #920: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #921: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x100000000000000000000000000000000 = 0xfffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff/fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #922: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f543210f":0 - -mbedtls_mpi_core_sub #923: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010101/101010101010101, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010101":"101010101010101":0 - -mbedtls_mpi_core_sub #924: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1/1, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1":"1":0 - -mbedtls_mpi_core_sub #925: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x0/0, carry 0 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":0 - -mbedtls_mpi_core_sub #926: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":1 - -mbedtls_mpi_core_sub #927: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f543210f":1 - -mbedtls_mpi_core_sub #928: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4, carry 1 -mpi_core_sub:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed4":1 - -mbedtls_mpi_core_sub #929: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x0 = 0x10000000000000000000000000000000000000000000000000000000000000000/10000000000000000000000000000000000000000000000000000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"0":"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #930: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":0 - -mbedtls_mpi_core_sub #931: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x3 = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":0 - -mbedtls_mpi_core_sub #932: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xf = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1/fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"f":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1":0 - -mbedtls_mpi_core_sub #933: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":0 - -mbedtls_mpi_core_sub #934: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":0 - -mbedtls_mpi_core_sub #935: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":0 - -mbedtls_mpi_core_sub #936: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xff00 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ff00":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0100":0 - -mbedtls_mpi_core_sub #937: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":0 - -mbedtls_mpi_core_sub #938: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":0 - -mbedtls_mpi_core_sub #939: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":0 - -mbedtls_mpi_core_sub #940: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":0 - -mbedtls_mpi_core_sub #941: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":0 - -mbedtls_mpi_core_sub #942: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000/ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":0 - -mbedtls_mpi_core_sub #943: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1f7f7f7f7f7f7f = 0xffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081/ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":"ffffffffffffffffffffffffffffffffffffffffffffffffffe0808080808081":0 - -mbedtls_mpi_core_sub #944: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x8000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":0 - -mbedtls_mpi_core_sub #945: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfefefefefefefefe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102/ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":"ffffffffffffffffffffffffffffffffffffffffffffffff0101010101010102":0 - -mbedtls_mpi_core_sub #946: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffe = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":0 - -mbedtls_mpi_core_sub #947: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffff = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":0 - -mbedtls_mpi_core_sub #948: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000 = 0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000/ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000":0 - -mbedtls_mpi_core_sub #949: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef0 = 0xfffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110/fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":"fffffffffffffffffffffffffffffffffffffffffffffffedcba9876f5432110":0 - -mbedtls_mpi_core_sub #950: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffefefefefefefefe = 0xffffffffffffffffffffffffffffffff00000000000000000101010101010102/ffffffffffffffffffffffffffffffff00000000000000000101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":"ffffffffffffffffffffffffffffffff00000000000000000101010101010102":0 - -mbedtls_mpi_core_sub #951: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffe = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000002/ffffffffffffffffffffffffffffffff00000000000000000000000000000002, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffe":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":"ffffffffffffffffffffffffffffffff00000000000000000000000000000002":0 - -mbedtls_mpi_core_sub #952: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffff = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000001/ffffffffffffffffffffffffffffffff00000000000000000000000000000001, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":"ffffffffffffffffffffffffffffffff00000000000000000000000000000001":0 - -mbedtls_mpi_core_sub #953: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x100000000000000000000000000000000 = 0xffffffffffffffffffffffffffffffff00000000000000000000000000000000/ffffffffffffffffffffffffffffffff00000000000000000000000000000000, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":"ffffffffffffffffffffffffffffffff00000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #954: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef0 = 0xffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110/ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":"ffffffffffffffffffffffffffffffedcba9876f543210fedcba9876f5432110":0 - -mbedtls_mpi_core_sub #955: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x101010101010102/101010101010102, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"101010101010102":"101010101010102":0 - -mbedtls_mpi_core_sub #956: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x2/2, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"2":0 - -mbedtls_mpi_core_sub #957: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1/1, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"1":0 - -mbedtls_mpi_core_sub #958: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x0/0, carry 0 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"10000000000000000000000000000000000000000000000000000000000000000":"0":"0":0 - -mbedtls_mpi_core_sub #959: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0xffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110/ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110, carry 1 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":"ffffffffffffedcca9876f543210fedcba9876f543210fedcba9876f543210fedcba9876f5432110":1 - -mbedtls_mpi_core_sub #960: 0x10000000000000000000000000000000000000000000000000000000000000000 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5, carry 1 -mpi_core_sub:"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04c7130f3a776135b5f305664ba042111b39694cd7223151b8dc6ba6fe13fdaf894ed5":1 - -mbedtls_mpi_core_sub #961: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #962: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeef":0 - -mbedtls_mpi_core_sub #963: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x3 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":0 - -mbedtls_mpi_core_sub #964: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xf = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdee1":0 - -mbedtls_mpi_core_sub #965: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":0 - -mbedtls_mpi_core_sub #966: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":0 - -mbedtls_mpi_core_sub #967: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf0":0 - -mbedtls_mpi_core_sub #968: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xff00 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff00":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdff0":0 - -mbedtls_mpi_core_sub #969: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef2":0 - -mbedtls_mpi_core_sub #970: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":0 - -mbedtls_mpi_core_sub #971: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":0 - -mbedtls_mpi_core_sub #972: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef2":0 - -mbedtls_mpi_core_sub #973: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":0 - -mbedtls_mpi_core_sub #974: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":0 - -mbedtls_mpi_core_sub #975: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1f7f7f7f7f7f7f = 0x1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71/1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":"1234567890abcdef01234567890abcdef01234567890abcdef012325e8098b3d5f71":0 - -mbedtls_mpi_core_sub #976: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x8000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":0 - -mbedtls_mpi_core_sub #977: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfefefefefefefefe = 0x1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2/1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":"1234567890abcdef01234567890abcdef01234567890abcdef002446688a0bbddff2":0 - -mbedtls_mpi_core_sub #978: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffe = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":0 - -mbedtls_mpi_core_sub #979: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffff = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef1":0 - -mbedtls_mpi_core_sub #980: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000 = 0x1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0/1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef0":0 - -mbedtls_mpi_core_sub #981: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef0 = 0x1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000/1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef000000000000000000":0 - -mbedtls_mpi_core_sub #982: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffefefefefefefefe = 0x1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2/1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":"1234567890abcdef01234567890abcdef01134567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #983: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffe = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffe":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #984: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffff = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #985: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x100000000000000000000000000000000 = 0x1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0/1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01134567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #986: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef0 = 0x1234567890abcdef01234567890abcdef00000000000000000000000000000000000/1234567890abcdef01234567890abcdef00000000000000000000000000000000000, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":"1234567890abcdef01234567890abcdef00000000000000000000000000000000000":0 - -mbedtls_mpi_core_sub #987: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2/1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":"1233567890abcdef01234567890abcdef01234567890abcdef012446688a0bbddff2":0 - -mbedtls_mpi_core_sub #988: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef2":0 - -mbedtls_mpi_core_sub #989: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef1":0 - -mbedtls_mpi_core_sub #990: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0/1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000000000000000000000000000000000000000000000000000":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1233567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":0 - -mbedtls_mpi_core_sub #991: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x0/0, carry 0 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":0 - -mbedtls_mpi_core_sub #992: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0xfffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5/fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5, carry 1 -mpi_core_sub:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":"fffffffb208d2f84b48e372534930056ab07277dab49d88f66cf7450ffc0548cdd80cbfd69bc4a5d9c0991f2c3c05d68108e8aa102ac47049347ed394408430e86d674266b83b374ebcdbebf5d3f0a05286a7596faf567859f69160faa04d94665b3080d03a4f428abb3294ccdfa297b812d9ac1fd86cb6cca437b86ba462dc5":1 - -mbedtls_mpi_core_sub #993: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #994: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12a":0 - -mbedtls_mpi_core_sub #995: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x3 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":0 - -mbedtls_mpi_core_sub #996: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xf = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b11c":0 - -mbedtls_mpi_core_sub #997: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":0 - -mbedtls_mpi_core_sub #998: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":0 - -mbedtls_mpi_core_sub #999: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02b":0 - -mbedtls_mpi_core_sub #1000: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xff00 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff00":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b22b":0 - -mbedtls_mpi_core_sub #1001: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12d":0 - -mbedtls_mpi_core_sub #1002: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":0 - -mbedtls_mpi_core_sub #1003: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":0 - -mbedtls_mpi_core_sub #1004: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12d":0 - -mbedtls_mpi_core_sub #1005: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":0 - -mbedtls_mpi_core_sub #1006: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":0 - -mbedtls_mpi_core_sub #1007: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1f7f7f7f7f7f7f = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239458e26c82d0f731ac":0 - -mbedtls_mpi_core_sub #1008: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x8000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":0 - -mbedtls_mpi_core_sub #1009: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1010: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":0 - -mbedtls_mpi_core_sub #1011: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12c":0 - -mbedtls_mpi_core_sub #1012: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12b":0 - -mbedtls_mpi_core_sub #1013: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1014: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1015: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12d":0 - -mbedtls_mpi_core_sub #1016: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_sub #1017: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x100000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c695b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #1018: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6847ed2653e0279349335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1019: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945a02ed035177b22d":0 - -mbedtls_mpi_core_sub #1020: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12d":0 - -mbedtls_mpi_core_sub #1021: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c":0 - -mbedtls_mpi_core_sub #1022: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x10000000000000000000000000000000000000000000000000000000000000000 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000000000000000000000000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":0 - -mbedtls_mpi_core_sub #1023: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 = 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b/4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb26b99a4cf7f2fc5b0bd7544cd6b33205d6847ed2653e0279349335bc847945b9d23b":0 - -mbedtls_mpi_core_sub #1024: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b - 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b = 0x0/0, carry 0 -mpi_core_sub:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":0 - -mbedtls_mpi_core_mla #1: 0x0 + 0x0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) (for when sizeof(mbedtls_mpi_uint) == 4/8) -mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #2: 0x0 + 0x0 * 0x3 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #3: 0x0 + 0x0 * 0xfe = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #4: 0x0 + 0x0 * 0xff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #5: 0x0 + 0x0 * 0xffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #6: 0x0 + 0x0 * 0x10000 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #7: 0x0 + 0x0 * 0xffffffff = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #8: 0x0 + 0x0 * 0x100000000 = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #9: 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #10: 0x0 + 0x0 * 0x8000000000000000 = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #11: 0x0 + 0x0 * 0xfffffffffffffffe = (0x0, carry 0x0)/(0x0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #12: 0x0 + 0x1 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #13: 0x0 + 0x1 * 0x3 = (0x3, carry 0x0)/(0x3, carry 0x0) -mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" - -mbedtls_mpi_core_mla #14: 0x0 + 0x1 * 0xfe = (0xfe, carry 0x0)/(0xfe, carry 0x0) -mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" - -mbedtls_mpi_core_mla #15: 0x0 + 0x1 * 0xff = (0xff, carry 0x0)/(0xff, carry 0x0) -mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #16: 0x0 + 0x1 * 0xffff = (0xffff, carry 0x0)/(0xffff, carry 0x0) -mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" - -mbedtls_mpi_core_mla #17: 0x0 + 0x1 * 0x10000 = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #18: 0x0 + 0x1 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #19: 0x0 + 0x1 * 0x100000000 = (0x0, carry 0x1)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #20: 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #21: 0x0 + 0x1 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" - -mbedtls_mpi_core_mla #22: 0x0 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0xffffffff)/(0xfffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #23: 0x0 + 0xfffe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #24: 0x0 + 0xfffe * 0x3 = (0x2fffa, carry 0x0)/(0x2fffa, carry 0x0) -mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" - -mbedtls_mpi_core_mla #25: 0x0 + 0xfffe * 0xfe = (0xfdfe04, carry 0x0)/(0xfdfe04, carry 0x0) -mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" - -mbedtls_mpi_core_mla #26: 0x0 + 0xfffe * 0xff = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #27: 0x0 + 0xfffe * 0xffff = (0xfffd0002, carry 0x0)/(0xfffd0002, carry 0x0) -mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" - -mbedtls_mpi_core_mla #28: 0x0 + 0xfffe * 0x10000 = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #29: 0x0 + 0xfffe * 0xffffffff = (0xffff0002, carry 0xfffd)/(0xfffdffff0002, carry 0x0) -mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" - -mbedtls_mpi_core_mla #30: 0x0 + 0xfffe * 0x100000000 = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #31: 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800102, carry 0x7f7e80808080)/(0x8080808080800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" - -mbedtls_mpi_core_mla #32: 0x0 + 0xfffe * 0x8000000000000000 = (0x0, carry 0x7fff00000000)/(0x0, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" - -mbedtls_mpi_core_mla #33: 0x0 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffdffffffff)/(0xfffffffffffe0004, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" - -mbedtls_mpi_core_mla #34: 0x0 + 0xffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #35: 0x0 + 0xffffffff * 0x3 = (0xfffffffd, carry 0x2)/(0x2fffffffd, carry 0x0) -mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" - -mbedtls_mpi_core_mla #36: 0x0 + 0xffffffff * 0xfe = (0xffffff02, carry 0xfd)/(0xfdffffff02, carry 0x0) -mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" - -mbedtls_mpi_core_mla #37: 0x0 + 0xffffffff * 0xff = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #38: 0x0 + 0xffffffff * 0xffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #39: 0x0 + 0xffffffff * 0x10000 = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #40: 0x0 + 0xffffffff * 0xffffffff = (0x1, carry 0xfffffffe)/(0xfffffffe00000001, carry 0x0) -mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" - -mbedtls_mpi_core_mla #41: 0x0 + 0xffffffff * 0x100000000 = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #42: 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7effffffff)/(0xffffffff80808081, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" - -mbedtls_mpi_core_mla #43: 0x0 + 0xffffffff * 0x8000000000000000 = (0x0, carry 0x7fffffff80000000)/(0x8000000000000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" - -mbedtls_mpi_core_mla #44: 0x0 + 0xffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffefffffffe)/(0xfffffffe00000002, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" - -mbedtls_mpi_core_mla #45: 0x0 + 0x100000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #46: 0x0 + 0x100000000 * 0x3 = (0x300000000, carry 0x0)/(0x300000000, carry 0x0) -mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" - -mbedtls_mpi_core_mla #47: 0x0 + 0x100000000 * 0xfe = (0xfe00000000, carry 0x0)/(0xfe00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" - -mbedtls_mpi_core_mla #48: 0x0 + 0x100000000 * 0xff = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #49: 0x0 + 0x100000000 * 0xffff = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #50: 0x0 + 0x100000000 * 0x10000 = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #51: 0x0 + 0x100000000 * 0xffffffff = (0xffffffff00000000, carry 0x0)/(0xffffffff00000000, carry 0x0) -mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #52: 0x0 + 0x100000000 * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #53: 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000, carry 0x7f7f7f7f)/(0x7f7f7f7f00000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #54: 0x0 + 0x100000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x0, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" - -mbedtls_mpi_core_mla #55: 0x0 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0xffffffff)/(0xfffffffe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" - -mbedtls_mpi_core_mla #56: 0x0 + 0x20000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #57: 0x0 + 0x20000000000000 * 0x3 = (0x60000000000000, carry 0x0)/(0x60000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" - -mbedtls_mpi_core_mla #58: 0x0 + 0x20000000000000 * 0xfe = (0x1fc0000000000000, carry 0x0)/(0x1fc0000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" - -mbedtls_mpi_core_mla #59: 0x0 + 0x20000000000000 * 0xff = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #60: 0x0 + 0x20000000000000 * 0xffff = (0xffe0000000000000, carry 0x1f)/(0xffe0000000000000, carry 0x1f) -mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" - -mbedtls_mpi_core_mla #61: 0x0 + 0x20000000000000 * 0x10000 = (0x0, carry 0x20)/(0x0, carry 0x20) -mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #62: 0x0 + 0x20000000000000 * 0xffffffff = (0xffe0000000000000, carry 0x1fffff)/(0xffe0000000000000, carry 0x1fffff) -mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" - -mbedtls_mpi_core_mla #63: 0x0 + 0x20000000000000 * 0x100000000 = (0x0, carry 0x200000)/(0x0, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #64: 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000000, carry 0xfefefefefefef)/(0xefe0000000000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #65: 0x0 + 0x20000000000000 * 0x8000000000000000 = (0x0, carry 0x10000000000000)/(0x0, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" - -mbedtls_mpi_core_mla #66: 0x0 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x1fffffffffffff)/(0xffc0000000000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #67: 0x0 + 0xffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #68: 0x0 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x2)/(0xfffffffffffffffd, carry 0x2) -mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" - -mbedtls_mpi_core_mla #69: 0x0 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfd)/(0xffffffffffffff02, carry 0xfd) -mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #70: 0x0 + 0xffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #71: 0x0 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xfffe)/(0xffffffffffff0001, carry 0xfffe) -mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #72: 0x0 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #73: 0x0 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xfffffffe)/(0xffffffff00000001, carry 0xfffffffe) -mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #74: 0x0 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #75: 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #76: 0x0 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x7fffffffffffffff)/(0x8000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #77: 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffd)/(0x2, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" - -mbedtls_mpi_core_mla #78: 0x0 + 0x10000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #79: 0x0 + 0x10000000000000000 * 0x3 = (0x30000000000000000, carry 0x0)/(0x30000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" - -mbedtls_mpi_core_mla #80: 0x0 + 0x10000000000000000 * 0xfe = (0xfe0000000000000000, carry 0x0)/(0xfe0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" - -mbedtls_mpi_core_mla #81: 0x0 + 0x10000000000000000 * 0xff = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #82: 0x0 + 0x10000000000000000 * 0xffff = (0xffff0000000000000000, carry 0x0)/(0xffff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #83: 0x0 + 0x10000000000000000 * 0x10000 = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #84: 0x0 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000000, carry 0x0)/(0xffffffff0000000000000000, carry 0x0) -mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #85: 0x0 + 0x10000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #86: 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #87: 0x0 + 0x10000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x80000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #88: 0x0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #89: 0x0 + 0x1234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #90: 0x0 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #91: 0x0 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #92: 0x0 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #93: 0x0 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332110, carry 0x0)/(0x123444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #94: 0x0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #95: 0x0 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432110, carry 0x1)/(0x123456787e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #96: 0x0 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #97: 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #98: 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #99: 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864220, carry 0x123456789)/(0x234567890abcdeedb97530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" - -mbedtls_mpi_core_mla #100: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #101: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfa, carry 0x2) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #102: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010004, carry 0xfd)/(0xffffffffffffffff0101010101010004, carry 0xfd) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" - -mbedtls_mpi_core_mla #103: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #104: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0102, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0102, carry 0xfffe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #105: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #106: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010102, carry 0xfffffffe) -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #107: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #108: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #109: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #110: 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #111: 0x0 + 0x100000000000000000000000000000000 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #112: 0x0 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000000, carry 0x0)/(0x300000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #113: 0x0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000000, carry 0x0)/(0xfe00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #114: 0x0 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #115: 0x0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000000, carry 0x0)/(0xffff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #116: 0x0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #117: 0x0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000000, carry 0x0)/(0xffffffff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #118: 0x0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #119: 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #120: 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x0, carry 0x80000000)/(0x800000000000000000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #121: 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #122: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #123: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #124: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #125: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #126: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #127: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #128: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432110, carry 0x12)/(0x123456787e7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #129: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #130: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #131: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #132: 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #133: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #134: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd, carry 0x2) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" - -mbedtls_mpi_core_mla #135: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfd) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #136: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #137: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xfffe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #138: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #139: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xfffffffe) -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #140: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #141: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #142: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #143: 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #144: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #145: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #146: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #147: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #148: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #149: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #150: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #151: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #152: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #153: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #154: 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #155: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x0, carry 0x0)/(0x0, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #156: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #157: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #158: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #159: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #160: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #161: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #162: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #163: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #164: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #165: 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #166: 0x1 + 0x0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #167: 0x1 + 0x0 * 0x3 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #168: 0x1 + 0x0 * 0xfe = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #169: 0x1 + 0x0 * 0xff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #170: 0x1 + 0x0 * 0xffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #171: 0x1 + 0x0 * 0x10000 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #172: 0x1 + 0x0 * 0xffffffff = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #173: 0x1 + 0x0 * 0x100000000 = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #174: 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #175: 0x1 + 0x0 * 0x8000000000000000 = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #176: 0x1 + 0x0 * 0xfffffffffffffffe = (0x1, carry 0x0)/(0x1, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #177: 0x1 + 0x1 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #178: 0x1 + 0x1 * 0x3 = (0x4, carry 0x0)/(0x4, carry 0x0) -mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" - -mbedtls_mpi_core_mla #179: 0x1 + 0x1 * 0xfe = (0xff, carry 0x0)/(0xff, carry 0x0) -mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #180: 0x1 + 0x1 * 0xff = (0x100, carry 0x0)/(0x100, carry 0x0) -mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" - -mbedtls_mpi_core_mla #181: 0x1 + 0x1 * 0xffff = (0x10000, carry 0x0)/(0x10000, carry 0x0) -mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #182: 0x1 + 0x1 * 0x10000 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #183: 0x1 + 0x1 * 0xffffffff = (0x0, carry 0x1)/(0x100000000, carry 0x0) -mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #184: 0x1 + 0x1 * 0x100000000 = (0x1, carry 0x1)/(0x100000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" - -mbedtls_mpi_core_mla #185: 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" - -mbedtls_mpi_core_mla #186: 0x1 + 0x1 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x8000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" - -mbedtls_mpi_core_mla #187: 0x1 + 0x1 * 0xfffffffffffffffe = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #188: 0x1 + 0xfffe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #189: 0x1 + 0xfffe * 0x3 = (0x2fffb, carry 0x0)/(0x2fffb, carry 0x0) -mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" - -mbedtls_mpi_core_mla #190: 0x1 + 0xfffe * 0xfe = (0xfdfe05, carry 0x0)/(0xfdfe05, carry 0x0) -mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" - -mbedtls_mpi_core_mla #191: 0x1 + 0xfffe * 0xff = (0xfefe03, carry 0x0)/(0xfefe03, carry 0x0) -mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" - -mbedtls_mpi_core_mla #192: 0x1 + 0xfffe * 0xffff = (0xfffd0003, carry 0x0)/(0xfffd0003, carry 0x0) -mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" - -mbedtls_mpi_core_mla #193: 0x1 + 0xfffe * 0x10000 = (0xfffe0001, carry 0x0)/(0xfffe0001, carry 0x0) -mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" - -mbedtls_mpi_core_mla #194: 0x1 + 0xfffe * 0xffffffff = (0xffff0003, carry 0xfffd)/(0xfffdffff0003, carry 0x0) -mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" - -mbedtls_mpi_core_mla #195: 0x1 + 0xfffe * 0x100000000 = (0x1, carry 0xfffe)/(0xfffe00000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" - -mbedtls_mpi_core_mla #196: 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800103, carry 0x7f7e80808080)/(0x8080808080800103, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" - -mbedtls_mpi_core_mla #197: 0x1 + 0xfffe * 0x8000000000000000 = (0x1, carry 0x7fff00000000)/(0x1, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" - -mbedtls_mpi_core_mla #198: 0x1 + 0xfffe * 0xfffffffffffffffe = (0xfffe0005, carry 0xfffdffffffff)/(0xfffffffffffe0005, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" - -mbedtls_mpi_core_mla #199: 0x1 + 0xffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #200: 0x1 + 0xffffffff * 0x3 = (0xfffffffe, carry 0x2)/(0x2fffffffe, carry 0x0) -mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" - -mbedtls_mpi_core_mla #201: 0x1 + 0xffffffff * 0xfe = (0xffffff03, carry 0xfd)/(0xfdffffff03, carry 0x0) -mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" - -mbedtls_mpi_core_mla #202: 0x1 + 0xffffffff * 0xff = (0xffffff02, carry 0xfe)/(0xfeffffff02, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" - -mbedtls_mpi_core_mla #203: 0x1 + 0xffffffff * 0xffff = (0xffff0002, carry 0xfffe)/(0xfffeffff0002, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #204: 0x1 + 0xffffffff * 0x10000 = (0xffff0001, carry 0xffff)/(0xffffffff0001, carry 0x0) -mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #205: 0x1 + 0xffffffff * 0xffffffff = (0x2, carry 0xfffffffe)/(0xfffffffe00000002, carry 0x0) -mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" - -mbedtls_mpi_core_mla #206: 0x1 + 0xffffffff * 0x100000000 = (0x1, carry 0xffffffff)/(0xffffffff00000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #207: 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808082, carry 0x7f7f7f7effffffff)/(0xffffffff80808082, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" - -mbedtls_mpi_core_mla #208: 0x1 + 0xffffffff * 0x8000000000000000 = (0x1, carry 0x7fffffff80000000)/(0x8000000000000001, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" - -mbedtls_mpi_core_mla #209: 0x1 + 0xffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffefffffffe)/(0xfffffffe00000003, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" - -mbedtls_mpi_core_mla #210: 0x1 + 0x100000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #211: 0x1 + 0x100000000 * 0x3 = (0x300000001, carry 0x0)/(0x300000001, carry 0x0) -mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" - -mbedtls_mpi_core_mla #212: 0x1 + 0x100000000 * 0xfe = (0xfe00000001, carry 0x0)/(0xfe00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" - -mbedtls_mpi_core_mla #213: 0x1 + 0x100000000 * 0xff = (0xff00000001, carry 0x0)/(0xff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" - -mbedtls_mpi_core_mla #214: 0x1 + 0x100000000 * 0xffff = (0xffff00000001, carry 0x0)/(0xffff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" - -mbedtls_mpi_core_mla #215: 0x1 + 0x100000000 * 0x10000 = (0x1000000000001, carry 0x0)/(0x1000000000001, carry 0x0) -mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" - -mbedtls_mpi_core_mla #216: 0x1 + 0x100000000 * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #217: 0x1 + 0x100000000 * 0x100000000 = (0x1, carry 0x1)/(0x1, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" - -mbedtls_mpi_core_mla #218: 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000001, carry 0x7f7f7f7f)/(0x7f7f7f7f00000001, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" - -mbedtls_mpi_core_mla #219: 0x1 + 0x100000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x1, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" - -mbedtls_mpi_core_mla #220: 0x1 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #221: 0x1 + 0x20000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #222: 0x1 + 0x20000000000000 * 0x3 = (0x60000000000001, carry 0x0)/(0x60000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" - -mbedtls_mpi_core_mla #223: 0x1 + 0x20000000000000 * 0xfe = (0x1fc0000000000001, carry 0x0)/(0x1fc0000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" - -mbedtls_mpi_core_mla #224: 0x1 + 0x20000000000000 * 0xff = (0x1fe0000000000001, carry 0x0)/(0x1fe0000000000001, carry 0x0) -mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" - -mbedtls_mpi_core_mla #225: 0x1 + 0x20000000000000 * 0xffff = (0xffe0000000000001, carry 0x1f)/(0xffe0000000000001, carry 0x1f) -mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" - -mbedtls_mpi_core_mla #226: 0x1 + 0x20000000000000 * 0x10000 = (0x1, carry 0x20)/(0x1, carry 0x20) -mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" - -mbedtls_mpi_core_mla #227: 0x1 + 0x20000000000000 * 0xffffffff = (0xffe0000000000001, carry 0x1fffff)/(0xffe0000000000001, carry 0x1fffff) -mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" - -mbedtls_mpi_core_mla #228: 0x1 + 0x20000000000000 * 0x100000000 = (0x1, carry 0x200000)/(0x1, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" - -mbedtls_mpi_core_mla #229: 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000000000001, carry 0xfefefefefefef)/(0xefe0000000000001, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" - -mbedtls_mpi_core_mla #230: 0x1 + 0x20000000000000 * 0x8000000000000000 = (0x1, carry 0x10000000000000)/(0x1, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" - -mbedtls_mpi_core_mla #231: 0x1 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000001, carry 0x1fffffffffffff)/(0xffc0000000000001, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" - -mbedtls_mpi_core_mla #232: 0x1 + 0xffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #233: 0x1 + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffe, carry 0x2)/(0xfffffffffffffffe, carry 0x2) -mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" - -mbedtls_mpi_core_mla #234: 0x1 + 0xffffffffffffffff * 0xfe = (0xffffffffffffff03, carry 0xfd)/(0xffffffffffffff03, carry 0xfd) -mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #235: 0x1 + 0xffffffffffffffff * 0xff = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #236: 0x1 + 0xffffffffffffffff * 0xffff = (0xffffffffffff0002, carry 0xfffe)/(0xffffffffffff0002, carry 0xfffe) -mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #237: 0x1 + 0xffffffffffffffff * 0x10000 = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #238: 0x1 + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) -mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #239: 0x1 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #240: 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808080808082, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #241: 0x1 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000001, carry 0x7fffffffffffffff)/(0x8000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #242: 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x3, carry 0xfffffffffffffffd)/(0x3, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" - -mbedtls_mpi_core_mla #243: 0x1 + 0x10000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #244: 0x1 + 0x10000000000000000 * 0x3 = (0x30000000000000001, carry 0x0)/(0x30000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" - -mbedtls_mpi_core_mla #245: 0x1 + 0x10000000000000000 * 0xfe = (0xfe0000000000000001, carry 0x0)/(0xfe0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" - -mbedtls_mpi_core_mla #246: 0x1 + 0x10000000000000000 * 0xff = (0xff0000000000000001, carry 0x0)/(0xff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" - -mbedtls_mpi_core_mla #247: 0x1 + 0x10000000000000000 * 0xffff = (0xffff0000000000000001, carry 0x0)/(0xffff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" - -mbedtls_mpi_core_mla #248: 0x1 + 0x10000000000000000 * 0x10000 = (0x100000000000000000001, carry 0x0)/(0x100000000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" - -mbedtls_mpi_core_mla #249: 0x1 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000000000001, carry 0x0)/(0xffffffff0000000000000001, carry 0x0) -mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" - -mbedtls_mpi_core_mla #250: 0x1 + 0x10000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x1000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" - -mbedtls_mpi_core_mla #251: 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" - -mbedtls_mpi_core_mla #252: 0x1 + 0x10000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x80000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #253: 0x1 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" - -mbedtls_mpi_core_mla #254: 0x1 + 0x1234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #255: 0x1 + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #256: 0x1 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #257: 0x1 + 0x1234567890abcdef0 * 0xff = (0x12222222181b2221111, carry 0x0)/(0x12222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" - -mbedtls_mpi_core_mla #258: 0x1 + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d4332111, carry 0x0)/(0x123444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" - -mbedtls_mpi_core_mla #259: 0x1 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef00001, carry 0x0)/(0x1234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #260: 0x1 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f5432111, carry 0x1)/(0x123456787e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" - -mbedtls_mpi_core_mla #261: 0x1 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef000000001, carry 0x1)/(0x1234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #262: 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ba911, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ba911, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" - -mbedtls_mpi_core_mla #263: 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000000000001, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" - -mbedtls_mpi_core_mla #264: 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea864221, carry 0x123456789)/(0x234567890abcdeedb97530edea864221, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" - -mbedtls_mpi_core_mla #265: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #266: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfcfcfb, carry 0x2) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" - -mbedtls_mpi_core_mla #267: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101010005, carry 0xfd)/(0xffffffffffffffff0101010101010005, carry 0xfd) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" - -mbedtls_mpi_core_mla #268: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffeffffffffffffff03, carry 0xfe)/(0xfffffffffffffffeffffffffffffff03, carry 0xfe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" - -mbedtls_mpi_core_mla #269: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefeffffffffffff0103, carry 0xfffe)/(0xfffffffffffffefeffffffffffff0103, carry 0xfffe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" - -mbedtls_mpi_core_mla #270: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefe0001, carry 0xffff)/(0xfffffffffffffefefefefefefefe0001, carry 0xffff) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" - -mbedtls_mpi_core_mla #271: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01010103, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01010103, carry 0xfffffffe) -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" - -mbedtls_mpi_core_mla #272: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000001, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" - -mbedtls_mpi_core_mla #273: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383028203, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #274: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #275: 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202020205, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" - -mbedtls_mpi_core_mla #276: 0x1 + 0x100000000000000000000000000000000 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #277: 0x1 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000000000001, carry 0x0)/(0x300000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #278: 0x1 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000000000001, carry 0x0)/(0xfe00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #279: 0x1 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000000000001, carry 0x0)/(0xff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #280: 0x1 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000000000001, carry 0x0)/(0xffff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #281: 0x1 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000000000001, carry 0x0)/(0x1000000000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #282: 0x1 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000000000001, carry 0x0)/(0xffffffff00000000000000000000000000000001, carry 0x0) -mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #283: 0x1 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1, carry 0x1)/(0x10000000000000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #284: 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000000000001, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #285: 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1, carry 0x80000000)/(0x800000000000000000000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #286: 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000000000001, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #287: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #288: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #289: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #290: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #291: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #292: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #293: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f5432111, carry 0x12)/(0x123456787e7777767077777887e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #294: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef000000001, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #295: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ba911, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" - -mbedtls_mpi_core_mla #296: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" - -mbedtls_mpi_core_mla #297: 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea864221, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea864221, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" - -mbedtls_mpi_core_mla #298: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #299: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0x2) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" - -mbedtls_mpi_core_mla #300: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03, carry 0xfd) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #301: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #302: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002, carry 0xfffe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #303: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001, carry 0xffff) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #304: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002, carry 0xfffffffe) -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #305: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #306: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #307: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #308: 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" - -mbedtls_mpi_core_mla #309: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #310: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #311: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #312: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #313: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #314: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #315: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111, carry 0x0) -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #316: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #317: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" - -mbedtls_mpi_core_mla #318: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" - -mbedtls_mpi_core_mla #319: 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" - -mbedtls_mpi_core_mla #320: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1, carry 0x0)/(0x1, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #321: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" - -mbedtls_mpi_core_mla #322: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" - -mbedtls_mpi_core_mla #323: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" - -mbedtls_mpi_core_mla #324: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" - -mbedtls_mpi_core_mla #325: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001, carry 0x0) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" - -mbedtls_mpi_core_mla #326: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6, carry 0x4) -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" - -mbedtls_mpi_core_mla #327: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" - -mbedtls_mpi_core_mla #328: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" - -mbedtls_mpi_core_mla #329: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" - -mbedtls_mpi_core_mla #330: 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" - -mbedtls_mpi_core_mla #331: 0xfffe + 0x0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #332: 0xfffe + 0x0 * 0x3 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #333: 0xfffe + 0x0 * 0xfe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #334: 0xfffe + 0x0 * 0xff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #335: 0xfffe + 0x0 * 0xffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #336: 0xfffe + 0x0 * 0x10000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #337: 0xfffe + 0x0 * 0xffffffff = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #338: 0xfffe + 0x0 * 0x100000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #339: 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #340: 0xfffe + 0x0 * 0x8000000000000000 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #341: 0xfffe + 0x0 * 0xfffffffffffffffe = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #342: 0xfffe + 0x1 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #343: 0xfffe + 0x1 * 0x3 = (0x10001, carry 0x0)/(0x10001, carry 0x0) -mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #344: 0xfffe + 0x1 * 0xfe = (0x100fc, carry 0x0)/(0x100fc, carry 0x0) -mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" - -mbedtls_mpi_core_mla #345: 0xfffe + 0x1 * 0xff = (0x100fd, carry 0x0)/(0x100fd, carry 0x0) -mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" - -mbedtls_mpi_core_mla #346: 0xfffe + 0x1 * 0xffff = (0x1fffd, carry 0x0)/(0x1fffd, carry 0x0) -mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" - -mbedtls_mpi_core_mla #347: 0xfffe + 0x1 * 0x10000 = (0x1fffe, carry 0x0)/(0x1fffe, carry 0x0) -mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" - -mbedtls_mpi_core_mla #348: 0xfffe + 0x1 * 0xffffffff = (0xfffd, carry 0x1)/(0x10000fffd, carry 0x0) -mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" - -mbedtls_mpi_core_mla #349: 0xfffe + 0x1 * 0x100000000 = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #350: 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f807f7d, carry 0x7f7f7f7f)/(0x7f7f7f7f7f807f7d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" - -mbedtls_mpi_core_mla #351: 0xfffe + 0x1 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x800000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" - -mbedtls_mpi_core_mla #352: 0xfffe + 0x1 * 0xfffffffffffffffe = (0xfffc, carry 0x100000000)/(0xfffc, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" - -mbedtls_mpi_core_mla #353: 0xfffe + 0xfffe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #354: 0xfffe + 0xfffe * 0x3 = (0x3fff8, carry 0x0)/(0x3fff8, carry 0x0) -mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" - -mbedtls_mpi_core_mla #355: 0xfffe + 0xfffe * 0xfe = (0xfefe02, carry 0x0)/(0xfefe02, carry 0x0) -mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #356: 0xfffe + 0xfffe * 0xff = (0xfffe00, carry 0x0)/(0xfffe00, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" - -mbedtls_mpi_core_mla #357: 0xfffe + 0xfffe * 0xffff = (0xfffe0000, carry 0x0)/(0xfffe0000, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #358: 0xfffe + 0xfffe * 0x10000 = (0xfffefffe, carry 0x0)/(0xfffefffe, carry 0x0) -mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" - -mbedtls_mpi_core_mla #359: 0xfffe + 0xfffe * 0xffffffff = (0x0, carry 0xfffe)/(0xfffe00000000, carry 0x0) -mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #360: 0xfffe + 0xfffe * 0x100000000 = (0xfffe, carry 0xfffe)/(0xfffe0000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" - -mbedtls_mpi_core_mla #361: 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80810100, carry 0x7f7e80808080)/(0x8080808080810100, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" - -mbedtls_mpi_core_mla #362: 0xfffe + 0xfffe * 0x8000000000000000 = (0xfffe, carry 0x7fff00000000)/(0xfffe, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" - -mbedtls_mpi_core_mla #363: 0xfffe + 0xfffe * 0xfffffffffffffffe = (0xffff0002, carry 0xfffdffffffff)/(0xffffffffffff0002, carry 0xfffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" - -mbedtls_mpi_core_mla #364: 0xfffe + 0xffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #365: 0xfffe + 0xffffffff * 0x3 = (0xfffb, carry 0x3)/(0x30000fffb, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" - -mbedtls_mpi_core_mla #366: 0xfffe + 0xffffffff * 0xfe = (0xff00, carry 0xfe)/(0xfe0000ff00, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" - -mbedtls_mpi_core_mla #367: 0xfffe + 0xffffffff * 0xff = (0xfeff, carry 0xff)/(0xff0000feff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" - -mbedtls_mpi_core_mla #368: 0xfffe + 0xffffffff * 0xffff = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #369: 0xfffe + 0xffffffff * 0x10000 = (0xfffffffe, carry 0xffff)/(0xfffffffffffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" - -mbedtls_mpi_core_mla #370: 0xfffe + 0xffffffff * 0xffffffff = (0xffff, carry 0xfffffffe)/(0xfffffffe0000ffff, carry 0x0) -mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" - -mbedtls_mpi_core_mla #371: 0xfffe + 0xffffffff * 0x100000000 = (0xfffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #372: 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x8081807f, carry 0x7f7f7f7effffffff)/(0xffffffff8081807f, carry 0x7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" - -mbedtls_mpi_core_mla #373: 0xfffe + 0xffffffff * 0x8000000000000000 = (0xfffe, carry 0x7fffffff80000000)/(0x800000000000fffe, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" - -mbedtls_mpi_core_mla #374: 0xfffe + 0xffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffefffffffe)/(0xfffffffe00010000, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" - -mbedtls_mpi_core_mla #375: 0xfffe + 0x100000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #376: 0xfffe + 0x100000000 * 0x3 = (0x30000fffe, carry 0x0)/(0x30000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" - -mbedtls_mpi_core_mla #377: 0xfffe + 0x100000000 * 0xfe = (0xfe0000fffe, carry 0x0)/(0xfe0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" - -mbedtls_mpi_core_mla #378: 0xfffe + 0x100000000 * 0xff = (0xff0000fffe, carry 0x0)/(0xff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" - -mbedtls_mpi_core_mla #379: 0xfffe + 0x100000000 * 0xffff = (0xffff0000fffe, carry 0x0)/(0xffff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" - -mbedtls_mpi_core_mla #380: 0xfffe + 0x100000000 * 0x10000 = (0x100000000fffe, carry 0x0)/(0x100000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" - -mbedtls_mpi_core_mla #381: 0xfffe + 0x100000000 * 0xffffffff = (0xffffffff0000fffe, carry 0x0)/(0xffffffff0000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #382: 0xfffe + 0x100000000 * 0x100000000 = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #383: 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f0000fffe, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" - -mbedtls_mpi_core_mla #384: 0xfffe + 0x100000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0xfffe, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" - -mbedtls_mpi_core_mla #385: 0xfffe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe0000fffe, carry 0xffffffff)/(0xfffffffe0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #386: 0xfffe + 0x20000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #387: 0xfffe + 0x20000000000000 * 0x3 = (0x6000000000fffe, carry 0x0)/(0x6000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" - -mbedtls_mpi_core_mla #388: 0xfffe + 0x20000000000000 * 0xfe = (0x1fc000000000fffe, carry 0x0)/(0x1fc000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" - -mbedtls_mpi_core_mla #389: 0xfffe + 0x20000000000000 * 0xff = (0x1fe000000000fffe, carry 0x0)/(0x1fe000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" - -mbedtls_mpi_core_mla #390: 0xfffe + 0x20000000000000 * 0xffff = (0xffe000000000fffe, carry 0x1f)/(0xffe000000000fffe, carry 0x1f) -mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" - -mbedtls_mpi_core_mla #391: 0xfffe + 0x20000000000000 * 0x10000 = (0xfffe, carry 0x20)/(0xfffe, carry 0x20) -mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" - -mbedtls_mpi_core_mla #392: 0xfffe + 0x20000000000000 * 0xffffffff = (0xffe000000000fffe, carry 0x1fffff)/(0xffe000000000fffe, carry 0x1fffff) -mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" - -mbedtls_mpi_core_mla #393: 0xfffe + 0x20000000000000 * 0x100000000 = (0xfffe, carry 0x200000)/(0xfffe, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" - -mbedtls_mpi_core_mla #394: 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe000000000fffe, carry 0xfefefefefefef)/(0xefe000000000fffe, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" - -mbedtls_mpi_core_mla #395: 0xfffe + 0x20000000000000 * 0x8000000000000000 = (0xfffe, carry 0x10000000000000)/(0xfffe, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" - -mbedtls_mpi_core_mla #396: 0xfffe + 0x20000000000000 * 0xfffffffffffffffe = (0xffc000000000fffe, carry 0x1fffffffffffff)/(0xffc000000000fffe, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" - -mbedtls_mpi_core_mla #397: 0xfffe + 0xffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #398: 0xfffe + 0xffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #399: 0xfffe + 0xffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #400: 0xfffe + 0xffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #401: 0xfffe + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff, carry 0xfffe)/(0xffffffffffffffff, carry 0xfffe) -mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #402: 0xfffe + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffe, carry 0xffff)/(0xfffffffffffffffe, carry 0xffff) -mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #403: 0xfffe + 0xffffffffffffffff * 0xffffffff = (0xffffffff0000ffff, carry 0xfffffffe)/(0xffffffff0000ffff, carry 0xfffffffe) -mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #404: 0xfffe + 0xffffffffffffffff * 0x100000000 = (0xffffffff0000fffe, carry 0xffffffff)/(0xffffffff0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #405: 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0x808080808081807f, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #406: 0xfffe + 0xffffffffffffffff * 0x8000000000000000 = (0x800000000000fffe, carry 0x7fffffffffffffff)/(0x800000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #407: 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe = (0x10000, carry 0xfffffffffffffffd)/(0x10000, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #408: 0xfffe + 0x10000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #409: 0xfffe + 0x10000000000000000 * 0x3 = (0x3000000000000fffe, carry 0x0)/(0x3000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" - -mbedtls_mpi_core_mla #410: 0xfffe + 0x10000000000000000 * 0xfe = (0xfe000000000000fffe, carry 0x0)/(0xfe000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" - -mbedtls_mpi_core_mla #411: 0xfffe + 0x10000000000000000 * 0xff = (0xff000000000000fffe, carry 0x0)/(0xff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" - -mbedtls_mpi_core_mla #412: 0xfffe + 0x10000000000000000 * 0xffff = (0xffff000000000000fffe, carry 0x0)/(0xffff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #413: 0xfffe + 0x10000000000000000 * 0x10000 = (0x10000000000000000fffe, carry 0x0)/(0x10000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" - -mbedtls_mpi_core_mla #414: 0xfffe + 0x10000000000000000 * 0xffffffff = (0xffffffff000000000000fffe, carry 0x0)/(0xffffffff000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #415: 0xfffe + 0x10000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x100000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #416: 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" - -mbedtls_mpi_core_mla #417: 0xfffe + 0x10000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x8000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #418: 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" - -mbedtls_mpi_core_mla #419: 0xfffe + 0x1234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #420: 0xfffe + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20379cce, carry 0x0)/(0x369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #421: 0xfffe + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #422: 0xfffe + 0x1234567890abcdef0 * 0xff = (0x12222222181b223110e, carry 0x0)/(0x12222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" - -mbedtls_mpi_core_mla #423: 0xfffe + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d434210e, carry 0x0)/(0x123444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" - -mbedtls_mpi_core_mla #424: 0xfffe + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #425: 0xfffe + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777766f544210e, carry 0x1)/(0x123456787e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" - -mbedtls_mpi_core_mla #426: 0xfffe + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef00000fffe, carry 0x1)/(0x1234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #427: 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708abaf5ca90e, carry 0x91107edb)/(0x91107edbd82bde76f67708abaf5ca90e, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" - -mbedtls_mpi_core_mla #428: 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78000000000000fffe, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" - -mbedtls_mpi_core_mla #429: 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530edea87421e, carry 0x123456789)/(0x234567890abcdeedb97530edea87421e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" - -mbedtls_mpi_core_mla #430: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #431: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2)/(0xfffffffffffffffffcfcfcfcfcfdfcf8, carry 0x2) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" - -mbedtls_mpi_core_mla #432: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010101020002, carry 0xfd)/(0xffffffffffffffff0101010101020002, carry 0xfd) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" - -mbedtls_mpi_core_mla #433: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff000000000000ff00, carry 0xfe)/(0xffffffffffffffff000000000000ff00, carry 0xfe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" - -mbedtls_mpi_core_mla #434: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff0000000000000100, carry 0xfffe)/(0xfffffffffffffeff0000000000000100, carry 0xfffe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" - -mbedtls_mpi_core_mla #435: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefefefefffe, carry 0xffff)/(0xfffffffffffffefefefefefefefefffe, carry 0xffff) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" - -mbedtls_mpi_core_mla #436: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefeffffffff01020100, carry 0xfffffffe)/(0xfffffffffefefefeffffffff01020100, carry 0xfffffffe) -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" - -mbedtls_mpi_core_mla #437: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff)/(0xfffffffffefefefefefefefe0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #438: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840383038200, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #439: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f000000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #440: 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020202030202, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" - -mbedtls_mpi_core_mla #441: 0xfffe + 0x100000000000000000000000000000000 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #442: 0xfffe + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000000000000000fffe, carry 0x0)/(0x30000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #443: 0xfffe + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000000000000000fffe, carry 0x0)/(0xfe0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #444: 0xfffe + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000000000000000fffe, carry 0x0)/(0xff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #445: 0xfffe + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000000000000000fffe, carry 0x0)/(0xffff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #446: 0xfffe + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000000000000000fffe, carry 0x0)/(0x100000000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #447: 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000000000000000fffe, carry 0x0)/(0xffffffff0000000000000000000000000000fffe, carry 0x0) -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #448: 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffe, carry 0x1)/(0x1000000000000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #449: 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000000000000000fffe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #450: 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffe, carry 0x80000000)/(0x80000000000000000000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #451: 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000000000000000fffe, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000000000000000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #452: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #453: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #454: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #455: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #456: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #457: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #458: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777766f544210e, carry 0x12)/(0x123456787e7777767077777887e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #459: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef00000fffe, carry 0x12)/(0x1234567890abcdef01234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #460: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" - -mbedtls_mpi_core_mla #461: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" - -mbedtls_mpi_core_mla #462: 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530edea87421e, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530edea87421e, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" - -mbedtls_mpi_core_mla #463: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #464: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffb, carry 0x3)/(0xfffb, carry 0x3) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #465: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xff00, carry 0xfe)/(0xff00, carry 0xfe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #466: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfeff, carry 0xff)/(0xfeff, carry 0xff) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #467: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xfffe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #468: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe, carry 0xffff) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #469: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff, carry 0xfffffffe) -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #470: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #471: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #472: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #473: 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #474: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #475: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #476: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #477: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b223110e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #478: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #479: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #480: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e, carry 0x0) -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #481: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #482: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" - -mbedtls_mpi_core_mla #483: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" - -mbedtls_mpi_core_mla #484: 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" - -mbedtls_mpi_core_mla #485: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffe, carry 0x0)/(0xfffe, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #486: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" - -mbedtls_mpi_core_mla #487: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" - -mbedtls_mpi_core_mla #488: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" - -mbedtls_mpi_core_mla #489: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" - -mbedtls_mpi_core_mla #490: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe, carry 0x0) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" - -mbedtls_mpi_core_mla #491: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3, carry 0x4) -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" - -mbedtls_mpi_core_mla #492: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" - -mbedtls_mpi_core_mla #493: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" - -mbedtls_mpi_core_mla #494: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" - -mbedtls_mpi_core_mla #495: 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" - -mbedtls_mpi_core_mla #496: 0xffffffff + 0x0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #497: 0xffffffff + 0x0 * 0x3 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #498: 0xffffffff + 0x0 * 0xfe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #499: 0xffffffff + 0x0 * 0xff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #500: 0xffffffff + 0x0 * 0xffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #501: 0xffffffff + 0x0 * 0x10000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #502: 0xffffffff + 0x0 * 0xffffffff = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #503: 0xffffffff + 0x0 * 0x100000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #504: 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #505: 0xffffffff + 0x0 * 0x8000000000000000 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #506: 0xffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #507: 0xffffffff + 0x1 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #508: 0xffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x100000002, carry 0x0) -mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" - -mbedtls_mpi_core_mla #509: 0xffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0x1000000fd, carry 0x0) -mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" - -mbedtls_mpi_core_mla #510: 0xffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0x1000000fe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" - -mbedtls_mpi_core_mla #511: 0xffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0x10000fffe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #512: 0xffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0x10000ffff, carry 0x0) -mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" - -mbedtls_mpi_core_mla #513: 0xffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0x1fffffffe, carry 0x0) -mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" - -mbedtls_mpi_core_mla #514: 0xffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0x1ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" - -mbedtls_mpi_core_mla #515: 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7e, carry 0x7f7f7f80)/(0x7f7f7f807f7f7f7e, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" - -mbedtls_mpi_core_mla #516: 0xffffffff + 0x1 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x80000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" - -mbedtls_mpi_core_mla #517: 0xffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffd, carry 0x100000000)/(0xfffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" - -mbedtls_mpi_core_mla #518: 0xffffffff + 0xfffe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #519: 0xffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x10002fff9, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" - -mbedtls_mpi_core_mla #520: 0xffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0x100fdfe03, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" - -mbedtls_mpi_core_mla #521: 0xffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0x100fefe01, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" - -mbedtls_mpi_core_mla #522: 0xffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0x1fffd0001, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" - -mbedtls_mpi_core_mla #523: 0xffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0x1fffdffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" - -mbedtls_mpi_core_mla #524: 0xffffffff + 0xfffe * 0xffffffff = (0xffff0001, carry 0xfffe)/(0xfffeffff0001, carry 0x0) -mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #525: 0xffffffff + 0xfffe * 0x100000000 = (0xffffffff, carry 0xfffe)/(0xfffeffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #526: 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80800101, carry 0x7f7e80808081)/(0x8080808180800101, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" - -mbedtls_mpi_core_mla #527: 0xffffffff + 0xfffe * 0x8000000000000000 = (0xffffffff, carry 0x7fff00000000)/(0xffffffff, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" - -mbedtls_mpi_core_mla #528: 0xffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffe0003, carry 0xfffe00000000)/(0xfffe0003, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" - -mbedtls_mpi_core_mla #529: 0xffffffff + 0xffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #530: 0xffffffff + 0xffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0x3fffffffc, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" - -mbedtls_mpi_core_mla #531: 0xffffffff + 0xffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xfeffffff01, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #532: 0xffffffff + 0xffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffffff00, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" - -mbedtls_mpi_core_mla #533: 0xffffffff + 0xffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffffffff0000, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #534: 0xffffffff + 0xffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0x10000fffeffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" - -mbedtls_mpi_core_mla #535: 0xffffffff + 0xffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0xffffffff00000000, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #536: 0xffffffff + 0xffffffff * 0x100000000 = (0xffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #537: 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808080, carry 0x7f7f7f7f00000000)/(0x80808080, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #538: 0xffffffff + 0xffffffff * 0x8000000000000000 = (0xffffffff, carry 0x7fffffff80000000)/(0x80000000ffffffff, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" - -mbedtls_mpi_core_mla #539: 0xffffffff + 0xffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffeffffffff)/(0xffffffff00000001, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #540: 0xffffffff + 0x100000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #541: 0xffffffff + 0x100000000 * 0x3 = (0x3ffffffff, carry 0x0)/(0x3ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" - -mbedtls_mpi_core_mla #542: 0xffffffff + 0x100000000 * 0xfe = (0xfeffffffff, carry 0x0)/(0xfeffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" - -mbedtls_mpi_core_mla #543: 0xffffffff + 0x100000000 * 0xff = (0xffffffffff, carry 0x0)/(0xffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" - -mbedtls_mpi_core_mla #544: 0xffffffff + 0x100000000 * 0xffff = (0xffffffffffff, carry 0x0)/(0xffffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" - -mbedtls_mpi_core_mla #545: 0xffffffff + 0x100000000 * 0x10000 = (0x10000ffffffff, carry 0x0)/(0x10000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" - -mbedtls_mpi_core_mla #546: 0xffffffff + 0x100000000 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #547: 0xffffffff + 0x100000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #548: 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7fffffffff, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" - -mbedtls_mpi_core_mla #549: 0xffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0xffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" - -mbedtls_mpi_core_mla #550: 0xffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffeffffffff, carry 0xffffffff)/(0xfffffffeffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #551: 0xffffffff + 0x20000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #552: 0xffffffff + 0x20000000000000 * 0x3 = (0x600000ffffffff, carry 0x0)/(0x600000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" - -mbedtls_mpi_core_mla #553: 0xffffffff + 0x20000000000000 * 0xfe = (0x1fc00000ffffffff, carry 0x0)/(0x1fc00000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" - -mbedtls_mpi_core_mla #554: 0xffffffff + 0x20000000000000 * 0xff = (0x1fe00000ffffffff, carry 0x0)/(0x1fe00000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" - -mbedtls_mpi_core_mla #555: 0xffffffff + 0x20000000000000 * 0xffff = (0xffe00000ffffffff, carry 0x1f)/(0xffe00000ffffffff, carry 0x1f) -mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" - -mbedtls_mpi_core_mla #556: 0xffffffff + 0x20000000000000 * 0x10000 = (0xffffffff, carry 0x20)/(0xffffffff, carry 0x20) -mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" - -mbedtls_mpi_core_mla #557: 0xffffffff + 0x20000000000000 * 0xffffffff = (0xffe00000ffffffff, carry 0x1fffff)/(0xffe00000ffffffff, carry 0x1fffff) -mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" - -mbedtls_mpi_core_mla #558: 0xffffffff + 0x20000000000000 * 0x100000000 = (0xffffffff, carry 0x200000)/(0xffffffff, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" - -mbedtls_mpi_core_mla #559: 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe00000ffffffff, carry 0xfefefefefefef)/(0xefe00000ffffffff, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" - -mbedtls_mpi_core_mla #560: 0xffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x10000000000000)/(0xffffffff, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" - -mbedtls_mpi_core_mla #561: 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffc00000ffffffff, carry 0x1fffffffffffff)/(0xffc00000ffffffff, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" - -mbedtls_mpi_core_mla #562: 0xffffffff + 0xffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #563: 0xffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #564: 0xffffffff + 0xffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #565: 0xffffffff + 0xffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #566: 0xffffffff + 0xffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #567: 0xffffffff + 0xffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #568: 0xffffffff + 0xffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #569: 0xffffffff + 0xffffffffffffffff * 0x100000000 = (0xffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #570: 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808080, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #571: 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x80000000ffffffff, carry 0x7fffffffffffffff)/(0x80000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #572: 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000001, carry 0xfffffffffffffffd)/(0x100000001, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #573: 0xffffffff + 0x10000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #574: 0xffffffff + 0x10000000000000000 * 0x3 = (0x300000000ffffffff, carry 0x0)/(0x300000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" - -mbedtls_mpi_core_mla #575: 0xffffffff + 0x10000000000000000 * 0xfe = (0xfe00000000ffffffff, carry 0x0)/(0xfe00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #576: 0xffffffff + 0x10000000000000000 * 0xff = (0xff00000000ffffffff, carry 0x0)/(0xff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #577: 0xffffffff + 0x10000000000000000 * 0xffff = (0xffff00000000ffffffff, carry 0x0)/(0xffff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #578: 0xffffffff + 0x10000000000000000 * 0x10000 = (0x1000000000000ffffffff, carry 0x0)/(0x1000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #579: 0xffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffff00000000ffffffff, carry 0x0)/(0xffffffff00000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #580: 0xffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x10000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #581: 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" - -mbedtls_mpi_core_mla #582: 0xffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x800000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #583: 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe00000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #584: 0xffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #585: 0xffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369ccf, carry 0x0)/(0x369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #586: 0xffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #587: 0xffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222182b222110f, carry 0x0)/(0x12222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" - -mbedtls_mpi_core_mla #588: 0xffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d433210f, carry 0x0)/(0x123444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" - -mbedtls_mpi_core_mla #589: 0xffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddeefffff, carry 0x0)/(0x1234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #590: 0xffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f543210f, carry 0x1)/(0x123456787e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" - -mbedtls_mpi_core_mla #591: 0xffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef0ffffffff, carry 0x1)/(0x1234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #592: 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba90f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" - -mbedtls_mpi_core_mla #593: 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f7800000000ffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f7800000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" - -mbedtls_mpi_core_mla #594: 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea86421f, carry 0x123456789)/(0x234567890abcdeedb97530eeea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" - -mbedtls_mpi_core_mla #595: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #596: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcf9, carry 0x2) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" - -mbedtls_mpi_core_mla #597: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010003, carry 0xfd)/(0xffffffffffffffff0101010201010003, carry 0xfd) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" - -mbedtls_mpi_core_mla #598: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff01, carry 0xfe)/(0xffffffffffffffff00000000ffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" - -mbedtls_mpi_core_mla #599: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0101, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0101, carry 0xfffe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" - -mbedtls_mpi_core_mla #600: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefdffff, carry 0xffff)/(0xfffffffffffffefefefefefffefdffff, carry 0xffff) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" - -mbedtls_mpi_core_mla #601: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010101, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010101, carry 0xfffffffe) -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" - -mbedtls_mpi_core_mla #602: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefeffffffff, carry 0xffffffff)/(0xfffffffffefefefefefefefeffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #603: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028201, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #604: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f00000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #605: 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020203, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #606: 0xffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #607: 0xffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x3000000000000000000000000ffffffff, carry 0x0)/(0x3000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #608: 0xffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe000000000000000000000000ffffffff, carry 0x0)/(0xfe000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #609: 0xffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff000000000000000000000000ffffffff, carry 0x0)/(0xff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #610: 0xffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff000000000000000000000000ffffffff, carry 0x0)/(0xffff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #611: 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x10000000000000000000000000000ffffffff, carry 0x0)/(0x10000000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #612: 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff000000000000000000000000ffffffff, carry 0x0)/(0xffffffff000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #613: 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffff, carry 0x1)/(0x100000000000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #614: 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f000000000000000000000000ffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #615: 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffff, carry 0x80000000)/(0x8000000000000000000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #616: 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe000000000000000000000000ffffffff, carry 0xffffffff)/(0xfffffffffffffffe000000000000000000000000ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #617: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #618: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #619: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #620: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #621: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #622: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #623: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f543210f, carry 0x12)/(0x123456787e7777767077777887e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #624: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef0ffffffff, carry 0x12)/(0x1234567890abcdef01234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #625: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" - -mbedtls_mpi_core_mla #626: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" - -mbedtls_mpi_core_mla #627: 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea86421f, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" - -mbedtls_mpi_core_mla #628: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #629: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffc, carry 0x3)/(0xfffffffc, carry 0x3) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #630: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff01, carry 0xfe)/(0xffffff01, carry 0xfe) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #631: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff00, carry 0xff)/(0xffffff00, carry 0xff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #632: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0000, carry 0xffff)/(0xffff0000, carry 0xffff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #633: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffeffff, carry 0x10000)/(0xfffeffff, carry 0x10000) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #634: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x0, carry 0xffffffff)/(0x0, carry 0xffffffff) -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #635: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #636: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #637: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #638: 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #639: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #640: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #641: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #642: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b222110f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #643: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #644: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #645: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f, carry 0x0) -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #646: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #647: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" - -mbedtls_mpi_core_mla #648: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" - -mbedtls_mpi_core_mla #649: 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" - -mbedtls_mpi_core_mla #650: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffff, carry 0x0)/(0xffffffff, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #651: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" - -mbedtls_mpi_core_mla #652: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" - -mbedtls_mpi_core_mla #653: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" - -mbedtls_mpi_core_mla #654: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" - -mbedtls_mpi_core_mla #655: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff, carry 0x0) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" - -mbedtls_mpi_core_mla #656: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4, carry 0x4) -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" - -mbedtls_mpi_core_mla #657: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" - -mbedtls_mpi_core_mla #658: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #659: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #660: 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #661: 0x100000000 + 0x0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #662: 0x100000000 + 0x0 * 0x3 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #663: 0x100000000 + 0x0 * 0xfe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #664: 0x100000000 + 0x0 * 0xff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #665: 0x100000000 + 0x0 * 0xffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #666: 0x100000000 + 0x0 * 0x10000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #667: 0x100000000 + 0x0 * 0xffffffff = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #668: 0x100000000 + 0x0 * 0x100000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #669: 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #670: 0x100000000 + 0x0 * 0x8000000000000000 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #671: 0x100000000 + 0x0 * 0xfffffffffffffffe = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #672: 0x100000000 + 0x1 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #673: 0x100000000 + 0x1 * 0x3 = (0x100000003, carry 0x0)/(0x100000003, carry 0x0) -mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" - -mbedtls_mpi_core_mla #674: 0x100000000 + 0x1 * 0xfe = (0x1000000fe, carry 0x0)/(0x1000000fe, carry 0x0) -mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" - -mbedtls_mpi_core_mla #675: 0x100000000 + 0x1 * 0xff = (0x1000000ff, carry 0x0)/(0x1000000ff, carry 0x0) -mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" - -mbedtls_mpi_core_mla #676: 0x100000000 + 0x1 * 0xffff = (0x10000ffff, carry 0x0)/(0x10000ffff, carry 0x0) -mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" - -mbedtls_mpi_core_mla #677: 0x100000000 + 0x1 * 0x10000 = (0x100010000, carry 0x0)/(0x100010000, carry 0x0) -mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" - -mbedtls_mpi_core_mla #678: 0x100000000 + 0x1 * 0xffffffff = (0x1ffffffff, carry 0x0)/(0x1ffffffff, carry 0x0) -mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" - -mbedtls_mpi_core_mla #679: 0x100000000 + 0x1 * 0x100000000 = (0x200000000, carry 0x0)/(0x200000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" - -mbedtls_mpi_core_mla #680: 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f, carry 0x0)/(0x7f7f7f807f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" - -mbedtls_mpi_core_mla #681: 0x100000000 + 0x1 * 0x8000000000000000 = (0x8000000100000000, carry 0x0)/(0x8000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" - -mbedtls_mpi_core_mla #682: 0x100000000 + 0x1 * 0xfffffffffffffffe = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #683: 0x100000000 + 0xfffe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #684: 0x100000000 + 0xfffe * 0x3 = (0x10002fffa, carry 0x0)/(0x10002fffa, carry 0x0) -mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" - -mbedtls_mpi_core_mla #685: 0x100000000 + 0xfffe * 0xfe = (0x100fdfe04, carry 0x0)/(0x100fdfe04, carry 0x0) -mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" - -mbedtls_mpi_core_mla #686: 0x100000000 + 0xfffe * 0xff = (0x100fefe02, carry 0x0)/(0x100fefe02, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" - -mbedtls_mpi_core_mla #687: 0x100000000 + 0xfffe * 0xffff = (0x1fffd0002, carry 0x0)/(0x1fffd0002, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" - -mbedtls_mpi_core_mla #688: 0x100000000 + 0xfffe * 0x10000 = (0x1fffe0000, carry 0x0)/(0x1fffe0000, carry 0x0) -mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" - -mbedtls_mpi_core_mla #689: 0x100000000 + 0xfffe * 0xffffffff = (0xfffeffff0002, carry 0x0)/(0xfffeffff0002, carry 0x0) -mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #690: 0x100000000 + 0xfffe * 0x100000000 = (0xffff00000000, carry 0x0)/(0xffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #691: 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808180800102, carry 0x7f7e)/(0x8080808180800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" - -mbedtls_mpi_core_mla #692: 0x100000000 + 0xfffe * 0x8000000000000000 = (0x100000000, carry 0x7fff)/(0x100000000, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" - -mbedtls_mpi_core_mla #693: 0x100000000 + 0xfffe * 0xfffffffffffffffe = (0xfffe0004, carry 0xfffe)/(0xfffe0004, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" - -mbedtls_mpi_core_mla #694: 0x100000000 + 0xffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #695: 0x100000000 + 0xffffffff * 0x3 = (0x3fffffffd, carry 0x0)/(0x3fffffffd, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" - -mbedtls_mpi_core_mla #696: 0x100000000 + 0xffffffff * 0xfe = (0xfeffffff02, carry 0x0)/(0xfeffffff02, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" - -mbedtls_mpi_core_mla #697: 0x100000000 + 0xffffffff * 0xff = (0xffffffff01, carry 0x0)/(0xffffffff01, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" - -mbedtls_mpi_core_mla #698: 0x100000000 + 0xffffffff * 0xffff = (0xffffffff0001, carry 0x0)/(0xffffffff0001, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #699: 0x100000000 + 0xffffffff * 0x10000 = (0x10000ffff0000, carry 0x0)/(0x10000ffff0000, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" - -mbedtls_mpi_core_mla #700: 0x100000000 + 0xffffffff * 0xffffffff = (0xffffffff00000001, carry 0x0)/(0xffffffff00000001, carry 0x0) -mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #701: 0x100000000 + 0xffffffff * 0x100000000 = (0x0, carry 0x1)/(0x0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #702: 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x80808081, carry 0x7f7f7f7f)/(0x80808081, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #703: 0x100000000 + 0xffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffff)/(0x8000000100000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" - -mbedtls_mpi_core_mla #704: 0x100000000 + 0xffffffff * 0xfffffffffffffffe = (0xffffffff00000002, carry 0xfffffffe)/(0xffffffff00000002, carry 0xfffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #705: 0x100000000 + 0x100000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #706: 0x100000000 + 0x100000000 * 0x3 = (0x400000000, carry 0x0)/(0x400000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" - -mbedtls_mpi_core_mla #707: 0x100000000 + 0x100000000 * 0xfe = (0xff00000000, carry 0x0)/(0xff00000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #708: 0x100000000 + 0x100000000 * 0xff = (0x10000000000, carry 0x0)/(0x10000000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" - -mbedtls_mpi_core_mla #709: 0x100000000 + 0x100000000 * 0xffff = (0x1000000000000, carry 0x0)/(0x1000000000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #710: 0x100000000 + 0x100000000 * 0x10000 = (0x1000100000000, carry 0x0)/(0x1000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" - -mbedtls_mpi_core_mla #711: 0x100000000 + 0x100000000 * 0xffffffff = (0x0, carry 0x1)/(0x0, carry 0x1) -mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #712: 0x100000000 + 0x100000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x100000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" - -mbedtls_mpi_core_mla #713: 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000, carry 0x7f7f7f7f)/(0x7f7f7f8000000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #714: 0x100000000 + 0x100000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x100000000, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" - -mbedtls_mpi_core_mla #715: 0x100000000 + 0x100000000 * 0xfffffffffffffffe = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #716: 0x100000000 + 0x20000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #717: 0x100000000 + 0x20000000000000 * 0x3 = (0x60000100000000, carry 0x0)/(0x60000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" - -mbedtls_mpi_core_mla #718: 0x100000000 + 0x20000000000000 * 0xfe = (0x1fc0000100000000, carry 0x0)/(0x1fc0000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" - -mbedtls_mpi_core_mla #719: 0x100000000 + 0x20000000000000 * 0xff = (0x1fe0000100000000, carry 0x0)/(0x1fe0000100000000, carry 0x0) -mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" - -mbedtls_mpi_core_mla #720: 0x100000000 + 0x20000000000000 * 0xffff = (0xffe0000100000000, carry 0x1f)/(0xffe0000100000000, carry 0x1f) -mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" - -mbedtls_mpi_core_mla #721: 0x100000000 + 0x20000000000000 * 0x10000 = (0x100000000, carry 0x20)/(0x100000000, carry 0x20) -mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" - -mbedtls_mpi_core_mla #722: 0x100000000 + 0x20000000000000 * 0xffffffff = (0xffe0000100000000, carry 0x1fffff)/(0xffe0000100000000, carry 0x1fffff) -mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" - -mbedtls_mpi_core_mla #723: 0x100000000 + 0x20000000000000 * 0x100000000 = (0x100000000, carry 0x200000)/(0x100000000, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" - -mbedtls_mpi_core_mla #724: 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefe0000100000000, carry 0xfefefefefefef)/(0xefe0000100000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" - -mbedtls_mpi_core_mla #725: 0x100000000 + 0x20000000000000 * 0x8000000000000000 = (0x100000000, carry 0x10000000000000)/(0x100000000, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" - -mbedtls_mpi_core_mla #726: 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000100000000, carry 0x1fffffffffffff)/(0xffc0000100000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #727: 0x100000000 + 0xffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #728: 0x100000000 + 0xffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #729: 0x100000000 + 0xffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #730: 0x100000000 + 0xffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #731: 0x100000000 + 0xffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #732: 0x100000000 + 0xffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #733: 0x100000000 + 0xffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #734: 0x100000000 + 0xffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #735: 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0x8080808180808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #736: 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000100000000, carry 0x7fffffffffffffff)/(0x8000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #737: 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x100000002, carry 0xfffffffffffffffd)/(0x100000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #738: 0x100000000 + 0x10000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #739: 0x100000000 + 0x10000000000000000 * 0x3 = (0x30000000100000000, carry 0x0)/(0x30000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" - -mbedtls_mpi_core_mla #740: 0x100000000 + 0x10000000000000000 * 0xfe = (0xfe0000000100000000, carry 0x0)/(0xfe0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" - -mbedtls_mpi_core_mla #741: 0x100000000 + 0x10000000000000000 * 0xff = (0xff0000000100000000, carry 0x0)/(0xff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" - -mbedtls_mpi_core_mla #742: 0x100000000 + 0x10000000000000000 * 0xffff = (0xffff0000000100000000, carry 0x0)/(0xffff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" - -mbedtls_mpi_core_mla #743: 0x100000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000, carry 0x0)/(0x100000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" - -mbedtls_mpi_core_mla #744: 0x100000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0000000100000000, carry 0x0)/(0xffffffff0000000100000000, carry 0x0) -mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" - -mbedtls_mpi_core_mla #745: 0x100000000 + 0x10000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x1000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" - -mbedtls_mpi_core_mla #746: 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" - -mbedtls_mpi_core_mla #747: 0x100000000 + 0x10000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x80000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #748: 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000100000000, carry 0xffffffff)/(0xfffffffffffffffe0000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" - -mbedtls_mpi_core_mla #749: 0x100000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #750: 0x100000000 + 0x1234567890abcdef0 * 0x3 = (0x369d0369c20369cd0, carry 0x0)/(0x369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #751: 0x100000000 + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #752: 0x100000000 + 0x1234567890abcdef0 * 0xff = (0x12222222182b2221110, carry 0x0)/(0x12222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" - -mbedtls_mpi_core_mla #753: 0x100000000 + 0x1234567890abcdef0 * 0xffff = (0x123444443a334d4332110, carry 0x0)/(0x123444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" - -mbedtls_mpi_core_mla #754: 0x100000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abddef00000, carry 0x0)/(0x1234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" - -mbedtls_mpi_core_mla #755: 0x100000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7777767f5432110, carry 0x1)/(0x123456787e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" - -mbedtls_mpi_core_mla #756: 0x100000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890abcdef100000000, carry 0x1)/(0x1234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #757: 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f67708acaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f67708acaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" - -mbedtls_mpi_core_mla #758: 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780000000100000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" - -mbedtls_mpi_core_mla #759: 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb97530eeea864220, carry 0x123456789)/(0x234567890abcdeedb97530eeea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" - -mbedtls_mpi_core_mla #760: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #761: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2)/(0xfffffffffffffffffcfcfcfdfcfcfcfa, carry 0x2) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" - -mbedtls_mpi_core_mla #762: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0101010201010004, carry 0xfd)/(0xffffffffffffffff0101010201010004, carry 0xfd) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" - -mbedtls_mpi_core_mla #763: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff00000000ffffff02, carry 0xfe)/(0xffffffffffffffff00000000ffffff02, carry 0xfe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" - -mbedtls_mpi_core_mla #764: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff00000000ffff0102, carry 0xfffe)/(0xfffffffffffffeff00000000ffff0102, carry 0xfffe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" - -mbedtls_mpi_core_mla #765: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefefefefffefe0000, carry 0xffff)/(0xfffffffffffffefefefefefffefe0000, carry 0xffff) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" - -mbedtls_mpi_core_mla #766: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff0000000001010102, carry 0xfffffffe)/(0xfffffffffefefeff0000000001010102, carry 0xfffffffe) -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" - -mbedtls_mpi_core_mla #767: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefeff00000000, carry 0xffffffff)/(0xfffffffffefefefefefefeff00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" - -mbedtls_mpi_core_mla #768: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828504840483028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #769: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #770: 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0202020302020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #771: 0x100000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #772: 0x100000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000000000100000000, carry 0x0)/(0x300000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #773: 0x100000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000000000100000000, carry 0x0)/(0xfe00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #774: 0x100000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000000000100000000, carry 0x0)/(0xff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #775: 0x100000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000000000100000000, carry 0x0)/(0xffff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #776: 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000000000100000000, carry 0x0)/(0x1000000000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #777: 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000000000100000000, carry 0x0)/(0xffffffff00000000000000000000000100000000, carry 0x0) -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #778: 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000, carry 0x1)/(0x10000000000000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #779: 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000000000100000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #780: 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000, carry 0x80000000)/(0x800000000000000000000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #781: 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000000000100000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #782: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #783: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #784: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #785: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #786: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #787: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #788: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7777767f5432110, carry 0x12)/(0x123456787e7777767077777887e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #789: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890abcdef100000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #790: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f67708acaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" - -mbedtls_mpi_core_mla #791: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" - -mbedtls_mpi_core_mla #792: 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb97530eeea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb97530eeea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" - -mbedtls_mpi_core_mla #793: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #794: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffd, carry 0x3)/(0xfffffffd, carry 0x3) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #795: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffff02, carry 0xfe)/(0xffffff02, carry 0xfe) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #796: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffff01, carry 0xff)/(0xffffff01, carry 0xff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #797: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffff0001, carry 0xffff)/(0xffff0001, carry 0xffff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #798: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffff0000, carry 0x10000)/(0xffff0000, carry 0x10000) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #799: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1, carry 0xffffffff)/(0x1, carry 0xffffffff) -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #800: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x0, carry 0x100000000)/(0x0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #801: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #802: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #803: 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #804: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #805: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #806: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #807: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222182b2221110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #808: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #809: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #810: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110, carry 0x0) -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #811: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #812: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" - -mbedtls_mpi_core_mla #813: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" - -mbedtls_mpi_core_mla #814: 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" - -mbedtls_mpi_core_mla #815: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000, carry 0x0)/(0x100000000, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #816: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" - -mbedtls_mpi_core_mla #817: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" - -mbedtls_mpi_core_mla #818: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" - -mbedtls_mpi_core_mla #819: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" - -mbedtls_mpi_core_mla #820: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000, carry 0x0) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" - -mbedtls_mpi_core_mla #821: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5, carry 0x4) -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" - -mbedtls_mpi_core_mla #822: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" - -mbedtls_mpi_core_mla #823: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #824: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" - -mbedtls_mpi_core_mla #825: 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #826: 0x20000000000000 + 0x0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #827: 0x20000000000000 + 0x0 * 0x3 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #828: 0x20000000000000 + 0x0 * 0xfe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #829: 0x20000000000000 + 0x0 * 0xff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #830: 0x20000000000000 + 0x0 * 0xffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #831: 0x20000000000000 + 0x0 * 0x10000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #832: 0x20000000000000 + 0x0 * 0xffffffff = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #833: 0x20000000000000 + 0x0 * 0x100000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #834: 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #835: 0x20000000000000 + 0x0 * 0x8000000000000000 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #836: 0x20000000000000 + 0x0 * 0xfffffffffffffffe = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #837: 0x20000000000000 + 0x1 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #838: 0x20000000000000 + 0x1 * 0x3 = (0x20000000000003, carry 0x0)/(0x20000000000003, carry 0x0) -mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" - -mbedtls_mpi_core_mla #839: 0x20000000000000 + 0x1 * 0xfe = (0x200000000000fe, carry 0x0)/(0x200000000000fe, carry 0x0) -mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" - -mbedtls_mpi_core_mla #840: 0x20000000000000 + 0x1 * 0xff = (0x200000000000ff, carry 0x0)/(0x200000000000ff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" - -mbedtls_mpi_core_mla #841: 0x20000000000000 + 0x1 * 0xffff = (0x2000000000ffff, carry 0x0)/(0x2000000000ffff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" - -mbedtls_mpi_core_mla #842: 0x20000000000000 + 0x1 * 0x10000 = (0x20000000010000, carry 0x0)/(0x20000000010000, carry 0x0) -mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" - -mbedtls_mpi_core_mla #843: 0x20000000000000 + 0x1 * 0xffffffff = (0x200000ffffffff, carry 0x0)/(0x200000ffffffff, carry 0x0) -mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" - -mbedtls_mpi_core_mla #844: 0x20000000000000 + 0x1 * 0x100000000 = (0x20000100000000, carry 0x0)/(0x20000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" - -mbedtls_mpi_core_mla #845: 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f7f7f7f7f, carry 0x0)/(0x7f9f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #846: 0x20000000000000 + 0x1 * 0x8000000000000000 = (0x8020000000000000, carry 0x0)/(0x8020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" - -mbedtls_mpi_core_mla #847: 0x20000000000000 + 0x1 * 0xfffffffffffffffe = (0x1ffffffffffffe, carry 0x1)/(0x1ffffffffffffe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" - -mbedtls_mpi_core_mla #848: 0x20000000000000 + 0xfffe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #849: 0x20000000000000 + 0xfffe * 0x3 = (0x2000000002fffa, carry 0x0)/(0x2000000002fffa, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" - -mbedtls_mpi_core_mla #850: 0x20000000000000 + 0xfffe * 0xfe = (0x20000000fdfe04, carry 0x0)/(0x20000000fdfe04, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" - -mbedtls_mpi_core_mla #851: 0x20000000000000 + 0xfffe * 0xff = (0x20000000fefe02, carry 0x0)/(0x20000000fefe02, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" - -mbedtls_mpi_core_mla #852: 0x20000000000000 + 0xfffe * 0xffff = (0x200000fffd0002, carry 0x0)/(0x200000fffd0002, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" - -mbedtls_mpi_core_mla #853: 0x20000000000000 + 0xfffe * 0x10000 = (0x200000fffe0000, carry 0x0)/(0x200000fffe0000, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" - -mbedtls_mpi_core_mla #854: 0x20000000000000 + 0xfffe * 0xffffffff = (0x20fffdffff0002, carry 0x0)/(0x20fffdffff0002, carry 0x0) -mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" - -mbedtls_mpi_core_mla #855: 0x20000000000000 + 0xfffe * 0x100000000 = (0x20fffe00000000, carry 0x0)/(0x20fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" - -mbedtls_mpi_core_mla #856: 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x80a0808080800102, carry 0x7f7e)/(0x80a0808080800102, carry 0x7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" - -mbedtls_mpi_core_mla #857: 0x20000000000000 + 0xfffe * 0x8000000000000000 = (0x20000000000000, carry 0x7fff)/(0x20000000000000, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" - -mbedtls_mpi_core_mla #858: 0x20000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1ffffffffe0004, carry 0xfffe)/(0x1ffffffffe0004, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" - -mbedtls_mpi_core_mla #859: 0x20000000000000 + 0xffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #860: 0x20000000000000 + 0xffffffff * 0x3 = (0x200002fffffffd, carry 0x0)/(0x200002fffffffd, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" - -mbedtls_mpi_core_mla #861: 0x20000000000000 + 0xffffffff * 0xfe = (0x2000fdffffff02, carry 0x0)/(0x2000fdffffff02, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" - -mbedtls_mpi_core_mla #862: 0x20000000000000 + 0xffffffff * 0xff = (0x2000feffffff01, carry 0x0)/(0x2000feffffff01, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" - -mbedtls_mpi_core_mla #863: 0x20000000000000 + 0xffffffff * 0xffff = (0x20fffeffff0001, carry 0x0)/(0x20fffeffff0001, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" - -mbedtls_mpi_core_mla #864: 0x20000000000000 + 0xffffffff * 0x10000 = (0x20ffffffff0000, carry 0x0)/(0x20ffffffff0000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" - -mbedtls_mpi_core_mla #865: 0x20000000000000 + 0xffffffff * 0xffffffff = (0x1ffffe00000001, carry 0x1)/(0x1ffffe00000001, carry 0x1) -mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" - -mbedtls_mpi_core_mla #866: 0x20000000000000 + 0xffffffff * 0x100000000 = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #867: 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1fffff80808081, carry 0x7f7f7f7f)/(0x1fffff80808081, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #868: 0x20000000000000 + 0xffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffff)/(0x8020000000000000, carry 0x7fffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" - -mbedtls_mpi_core_mla #869: 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x1ffffe00000002, carry 0xffffffff)/(0x1ffffe00000002, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" - -mbedtls_mpi_core_mla #870: 0x20000000000000 + 0x100000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #871: 0x20000000000000 + 0x100000000 * 0x3 = (0x20000300000000, carry 0x0)/(0x20000300000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" - -mbedtls_mpi_core_mla #872: 0x20000000000000 + 0x100000000 * 0xfe = (0x2000fe00000000, carry 0x0)/(0x2000fe00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" - -mbedtls_mpi_core_mla #873: 0x20000000000000 + 0x100000000 * 0xff = (0x2000ff00000000, carry 0x0)/(0x2000ff00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" - -mbedtls_mpi_core_mla #874: 0x20000000000000 + 0x100000000 * 0xffff = (0x20ffff00000000, carry 0x0)/(0x20ffff00000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" - -mbedtls_mpi_core_mla #875: 0x20000000000000 + 0x100000000 * 0x10000 = (0x21000000000000, carry 0x0)/(0x21000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" - -mbedtls_mpi_core_mla #876: 0x20000000000000 + 0x100000000 * 0xffffffff = (0x1fffff00000000, carry 0x1)/(0x1fffff00000000, carry 0x1) -mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #877: 0x20000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x20000000000000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" - -mbedtls_mpi_core_mla #878: 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f9f7f7f00000000, carry 0x7f7f7f7f)/(0x7f9f7f7f00000000, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #879: 0x20000000000000 + 0x100000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x20000000000000, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" - -mbedtls_mpi_core_mla #880: 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x1ffffe00000000, carry 0x100000000)/(0x1ffffe00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" - -mbedtls_mpi_core_mla #881: 0x20000000000000 + 0x20000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #882: 0x20000000000000 + 0x20000000000000 * 0x3 = (0x80000000000000, carry 0x0)/(0x80000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" - -mbedtls_mpi_core_mla #883: 0x20000000000000 + 0x20000000000000 * 0xfe = (0x1fe0000000000000, carry 0x0)/(0x1fe0000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #884: 0x20000000000000 + 0x20000000000000 * 0xff = (0x2000000000000000, carry 0x0)/(0x2000000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" - -mbedtls_mpi_core_mla #885: 0x20000000000000 + 0x20000000000000 * 0xffff = (0x0, carry 0x20)/(0x0, carry 0x20) -mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #886: 0x20000000000000 + 0x20000000000000 * 0x10000 = (0x20000000000000, carry 0x20)/(0x20000000000000, carry 0x20) -mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" - -mbedtls_mpi_core_mla #887: 0x20000000000000 + 0x20000000000000 * 0xffffffff = (0x0, carry 0x200000)/(0x0, carry 0x200000) -mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #888: 0x20000000000000 + 0x20000000000000 * 0x100000000 = (0x20000000000000, carry 0x200000)/(0x20000000000000, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" - -mbedtls_mpi_core_mla #889: 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xf000000000000000, carry 0xfefefefefefef)/(0xf000000000000000, carry 0xfefefefefefef) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #890: 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x10000000000000)/(0x20000000000000, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" - -mbedtls_mpi_core_mla #891: 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffe0000000000000, carry 0x1fffffffffffff)/(0xffe0000000000000, carry 0x1fffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #892: 0x20000000000000 + 0xffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #893: 0x20000000000000 + 0xffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #894: 0x20000000000000 + 0xffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #895: 0x20000000000000 + 0xffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #896: 0x20000000000000 + 0xffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #897: 0x20000000000000 + 0xffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #898: 0x20000000000000 + 0xffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #899: 0x20000000000000 + 0xffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #900: 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0x80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #901: 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8020000000000000, carry 0x7fffffffffffffff)/(0x8020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #902: 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x20000000000002, carry 0xfffffffffffffffd)/(0x20000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #903: 0x20000000000000 + 0x10000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #904: 0x20000000000000 + 0x10000000000000000 * 0x3 = (0x30020000000000000, carry 0x0)/(0x30020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" - -mbedtls_mpi_core_mla #905: 0x20000000000000 + 0x10000000000000000 * 0xfe = (0xfe0020000000000000, carry 0x0)/(0xfe0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" - -mbedtls_mpi_core_mla #906: 0x20000000000000 + 0x10000000000000000 * 0xff = (0xff0020000000000000, carry 0x0)/(0xff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" - -mbedtls_mpi_core_mla #907: 0x20000000000000 + 0x10000000000000000 * 0xffff = (0xffff0020000000000000, carry 0x0)/(0xffff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" - -mbedtls_mpi_core_mla #908: 0x20000000000000 + 0x10000000000000000 * 0x10000 = (0x100000020000000000000, carry 0x0)/(0x100000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" - -mbedtls_mpi_core_mla #909: 0x20000000000000 + 0x10000000000000000 * 0xffffffff = (0xffffffff0020000000000000, carry 0x0)/(0xffffffff0020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" - -mbedtls_mpi_core_mla #910: 0x20000000000000 + 0x10000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x1000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" - -mbedtls_mpi_core_mla #911: 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" - -mbedtls_mpi_core_mla #912: 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x80000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #913: 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffe0020000000000000, carry 0xffffffff)/(0xfffffffffffffffe0020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" - -mbedtls_mpi_core_mla #914: 0x20000000000000 + 0x1234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #915: 0x20000000000000 + 0x1234567890abcdef0 * 0x3 = (0x369f0369b20369cd0, carry 0x0)/(0x369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #916: 0x20000000000000 + 0x1234567890abcdef0 * 0xfe = (0x120fefcb9f8a7653220, carry 0x0)/(0x120fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #917: 0x20000000000000 + 0x1234567890abcdef0 * 0xff = (0x12222422181b2221110, carry 0x0)/(0x12222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" - -mbedtls_mpi_core_mla #918: 0x20000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123444463a333d4332110, carry 0x0)/(0x123444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" - -mbedtls_mpi_core_mla #919: 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234567a90abcdef00000, carry 0x0)/(0x1234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #920: 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456787e7977766f5432110, carry 0x1)/(0x123456787e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" - -mbedtls_mpi_core_mla #921: 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x234567890adcdef000000000, carry 0x1)/(0x1234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #922: 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde76f69708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde76f69708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" - -mbedtls_mpi_core_mla #923: 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f780020000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f780020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" - -mbedtls_mpi_core_mla #924: 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedb99530edea864220, carry 0x123456789)/(0x234567890abcdeedb99530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" - -mbedtls_mpi_core_mla #925: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #926: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2)/(0xfffffffffffffffffd1cfcfcfcfcfcfa, carry 0x2) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #927: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xffffffffffffffff0121010101010004, carry 0xfd)/(0xffffffffffffffff0121010101010004, carry 0xfd) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" - -mbedtls_mpi_core_mla #928: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffff001fffffffffff02, carry 0xfe)/(0xffffffffffffffff001fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" - -mbedtls_mpi_core_mla #929: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeff001fffffffff0102, carry 0xfffe)/(0xfffffffffffffeff001fffffffff0102, carry 0xfffe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" - -mbedtls_mpi_core_mla #930: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefeff1efefefefe0000, carry 0xffff)/(0xfffffffffffffefeff1efefefefe0000, carry 0xffff) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" - -mbedtls_mpi_core_mla #931: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeff001fffff01010102, carry 0xfffffffe)/(0xfffffffffefefeff001fffff01010102, carry 0xfffffffe) -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #932: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefeff1efefe00000000, carry 0xffffffff)/(0xfffffffffefefefeff1efefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #933: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202828524840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #934: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7f0020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #935: 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefefe0222020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #936: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #937: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000000020000000000000, carry 0x0)/(0x300000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #938: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000000020000000000000, carry 0x0)/(0xfe00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #939: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000000020000000000000, carry 0x0)/(0xff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #940: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000000020000000000000, carry 0x0)/(0xffff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #941: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000000020000000000000, carry 0x0)/(0x1000000000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #942: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000000020000000000000, carry 0x0)/(0xffffffff00000000000000000020000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #943: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x20000000000000, carry 0x1)/(0x10000000000000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #944: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000000020000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #945: 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x20000000000000, carry 0x80000000)/(0x800000000000000000000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #946: 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000000020000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000000020000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #947: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #948: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #949: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #950: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #951: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #952: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #953: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777887e7977766f5432110, carry 0x12)/(0x123456787e7777767077777887e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #954: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef01234567890adcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #955: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f76f69708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" - -mbedtls_mpi_core_mla #956: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" - -mbedtls_mpi_core_mla #957: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100edb99530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100edb99530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" - -mbedtls_mpi_core_mla #958: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #959: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1ffffffffffffd, carry 0x3)/(0x1ffffffffffffd, carry 0x3) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #960: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1fffffffffff02, carry 0xfe)/(0x1fffffffffff02, carry 0xfe) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #961: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1fffffffffff01, carry 0xff)/(0x1fffffffffff01, carry 0xff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #962: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1fffffffff0001, carry 0xffff)/(0x1fffffffff0001, carry 0xffff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #963: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1fffffffff0000, carry 0x10000)/(0x1fffffffff0000, carry 0x10000) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #964: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1fffff00000001, carry 0xffffffff)/(0x1fffff00000001, carry 0xffffffff) -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #965: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1fffff00000000, carry 0x100000000)/(0x1fffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #966: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e)/(0xffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #967: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #968: 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #969: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #970: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #971: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #972: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222422181b2221110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #973: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #974: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #975: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110, carry 0x0) -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #976: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #977: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" - -mbedtls_mpi_core_mla #978: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" - -mbedtls_mpi_core_mla #979: 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" - -mbedtls_mpi_core_mla #980: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x20000000000000, carry 0x0)/(0x20000000000000, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #981: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" - -mbedtls_mpi_core_mla #982: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #983: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" - -mbedtls_mpi_core_mla #984: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" - -mbedtls_mpi_core_mla #985: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000, carry 0x0) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" - -mbedtls_mpi_core_mla #986: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5, carry 0x4) -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" - -mbedtls_mpi_core_mla #987: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" - -mbedtls_mpi_core_mla #988: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #989: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #990: 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #991: 0xffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #992: 0xffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #993: 0xffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #994: 0xffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #995: 0xffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #996: 0xffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #997: 0xffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #998: 0xffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #999: 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1000: 0xffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1001: 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1002: 0xffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1003: 0xffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1004: 0xffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1005: 0xffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1006: 0xffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1007: 0xffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1008: 0xffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1009: 0xffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #1010: 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #1011: 0xffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #1012: 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #1013: 0xffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1014: 0xffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #1015: 0xffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #1016: 0xffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #1017: 0xffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #1018: 0xffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #1019: 0xffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #1020: 0xffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #1021: 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x8080808080800101, carry 0x7f7f)/(0x8080808080800101, carry 0x7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" - -mbedtls_mpi_core_mla #1022: 0xffffffffffffffff + 0xfffe * 0x8000000000000000 = (0xffffffffffffffff, carry 0x7fff)/(0xffffffffffffffff, carry 0x7fff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" - -mbedtls_mpi_core_mla #1023: 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffffffffffe0003, carry 0xfffe)/(0xfffffffffffe0003, carry 0xfffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" - -mbedtls_mpi_core_mla #1024: 0xffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1025: 0xffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #1026: 0xffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #1027: 0xffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #1028: 0xffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #1029: 0xffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #1030: 0xffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #1031: 0xffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1032: 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffff80808080, carry 0x7f7f7f7f)/(0xffffffff80808080, carry 0x7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #1033: 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x80000000)/(0x7fffffffffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1034: 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffe00000001, carry 0xffffffff)/(0xfffffffe00000001, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #1035: 0xffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1036: 0xffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #1037: 0xffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #1038: 0xffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #1039: 0xffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #1040: 0xffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #1041: 0xffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1042: 0xffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #1043: 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff, carry 0x7f7f7f80)/(0x7f7f7f7effffffff, carry 0x7f7f7f80) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" - -mbedtls_mpi_core_mla #1044: 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0xffffffffffffffff, carry 0x80000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1045: 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffdffffffff, carry 0x100000000)/(0xfffffffdffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" - -mbedtls_mpi_core_mla #1046: 0xffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1047: 0xffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #1048: 0xffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #1049: 0xffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #1050: 0xffffffffffffffff + 0x20000000000000 * 0xffff = (0xffdfffffffffffff, carry 0x20)/(0xffdfffffffffffff, carry 0x20) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" - -mbedtls_mpi_core_mla #1051: 0xffffffffffffffff + 0x20000000000000 * 0x10000 = (0xffffffffffffffff, carry 0x20)/(0xffffffffffffffff, carry 0x20) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" - -mbedtls_mpi_core_mla #1052: 0xffffffffffffffff + 0x20000000000000 * 0xffffffff = (0xffdfffffffffffff, carry 0x200000)/(0xffdfffffffffffff, carry 0x200000) -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" - -mbedtls_mpi_core_mla #1053: 0xffffffffffffffff + 0x20000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x200000)/(0xffffffffffffffff, carry 0x200000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" - -mbedtls_mpi_core_mla #1054: 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefdfffffffffffff, carry 0xfefefefefeff0)/(0xefdfffffffffffff, carry 0xfefefefefeff0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" - -mbedtls_mpi_core_mla #1055: 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x10000000000000)/(0xffffffffffffffff, carry 0x10000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" - -mbedtls_mpi_core_mla #1056: 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0xffbfffffffffffff, carry 0x20000000000000)/(0xffbfffffffffffff, carry 0x20000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" - -mbedtls_mpi_core_mla #1057: 0xffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1058: 0xffffffffffffffff + 0xffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1059: 0xffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1060: 0xffffffffffffffff + 0xffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1061: 0xffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1062: 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1063: 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1064: 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1065: 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1066: 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1067: 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1068: 0xffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1069: 0xffffffffffffffff + 0x10000000000000000 * 0x3 = (0x3ffffffffffffffff, carry 0x0)/(0x3ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1070: 0xffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfeffffffffffffffff, carry 0x0)/(0xfeffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1071: 0xffffffffffffffff + 0x10000000000000000 * 0xff = (0xffffffffffffffffff, carry 0x0)/(0xffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1072: 0xffffffffffffffff + 0x10000000000000000 * 0xffff = (0xffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1073: 0xffffffffffffffff + 0x10000000000000000 * 0x10000 = (0x10000ffffffffffffffff, carry 0x0)/(0x10000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1074: 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1075: 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x100000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1076: 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1077: 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x8000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1078: 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffeffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffeffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1079: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1080: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369ccf, carry 0x0)/(0x469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1081: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a765321f, carry 0x0)/(0x121fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1082: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12322222181b222110f, carry 0x0)/(0x12322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" - -mbedtls_mpi_core_mla #1083: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d433210f, carry 0x0)/(0x123454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1084: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdeefffff, carry 0x0)/(0x1234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1085: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f543210f, carry 0x1)/(0x123456788e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1086: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdeefffffffff, carry 0x1)/(0x12345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1087: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba90f, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba90f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" - -mbedtls_mpi_core_mla #1088: 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f78ffffffffffffffff, carry 0x91a2b3c4)/(0x91a2b3c4855e6f78ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1089: 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea86421f, carry 0x123456789)/(0x234567890abcdeeeb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" - -mbedtls_mpi_core_mla #1090: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1091: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcf9, carry 0x3)/(0xfcfcfcfcfcfcfcf9, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" - -mbedtls_mpi_core_mla #1092: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010003, carry 0xfe)/(0x101010101010003, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" - -mbedtls_mpi_core_mla #1093: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1094: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0101, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0101, carry 0xfffe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" - -mbedtls_mpi_core_mla #1095: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefdffff, carry 0xffff)/(0xfffffffffffffefffefefefefefdffff, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" - -mbedtls_mpi_core_mla #1096: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010101, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010101, carry 0xfffffffe) -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" - -mbedtls_mpi_core_mla #1097: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefdffffffff, carry 0xffffffff)/(0xfffffffffefefefffefefefdffffffff, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" - -mbedtls_mpi_core_mla #1098: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028201, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1099: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f7fffffffffffffffff, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1100: 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020203, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1101: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1102: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000000ffffffffffffffff, carry 0x0)/(0x30000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1103: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000000ffffffffffffffff, carry 0x0)/(0xfe0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1104: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000000ffffffffffffffff, carry 0x0)/(0xff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1105: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1106: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000000ffffffffffffffff, carry 0x0)/(0x100000000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1107: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000000ffffffffffffffff, carry 0x0)/(0xffffffff0000000000000000ffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1108: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0x1000000000000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1109: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000000ffffffffffffffff, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1110: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xffffffffffffffff, carry 0x80000000)/(0x80000000000000000000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1111: 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000000ffffffffffffffff, carry 0xffffffff)/(0xfffffffffffffffe0000000000000000ffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1112: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1113: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1114: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1115: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1116: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1117: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1118: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f543210f, carry 0x12)/(0x123456787e7777767077777888e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1119: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdeefffffffff, carry 0x12)/(0x1234567890abcdef012345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1120: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" - -mbedtls_mpi_core_mla #1121: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" - -mbedtls_mpi_core_mla #1122: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea86421f, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea86421f, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" - -mbedtls_mpi_core_mla #1123: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1124: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffc, carry 0x3)/(0xfffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1125: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff01, carry 0xfe)/(0xffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1126: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff00, carry 0xff)/(0xffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1127: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0000, carry 0xffff)/(0xffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1128: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffeffff, carry 0x10000)/(0xfffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1129: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000000, carry 0xffffffff)/(0xffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1130: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x100000000)/(0xfffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1131: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1132: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x8000000000000000)/(0x7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1133: 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1, carry 0xfffffffffffffffe)/(0x1, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1134: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1135: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1136: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1137: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1138: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1139: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1140: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1141: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1142: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #1143: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #1144: 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #1145: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffff, carry 0x0)/(0xffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1146: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #1147: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #1148: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #1149: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #1150: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff, carry 0x0) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" - -mbedtls_mpi_core_mla #1151: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4, carry 0x4) -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" - -mbedtls_mpi_core_mla #1152: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" - -mbedtls_mpi_core_mla #1153: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #1154: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #1155: 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #1156: 0x10000000000000000 + 0x0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1157: 0x10000000000000000 + 0x0 * 0x3 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1158: 0x10000000000000000 + 0x0 * 0xfe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1159: 0x10000000000000000 + 0x0 * 0xff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1160: 0x10000000000000000 + 0x0 * 0xffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1161: 0x10000000000000000 + 0x0 * 0x10000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1162: 0x10000000000000000 + 0x0 * 0xffffffff = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1163: 0x10000000000000000 + 0x0 * 0x100000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1164: 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1165: 0x10000000000000000 + 0x0 * 0x8000000000000000 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1166: 0x10000000000000000 + 0x0 * 0xfffffffffffffffe = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1167: 0x10000000000000000 + 0x1 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1168: 0x10000000000000000 + 0x1 * 0x3 = (0x10000000000000003, carry 0x0)/(0x10000000000000003, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" - -mbedtls_mpi_core_mla #1169: 0x10000000000000000 + 0x1 * 0xfe = (0x100000000000000fe, carry 0x0)/(0x100000000000000fe, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" - -mbedtls_mpi_core_mla #1170: 0x10000000000000000 + 0x1 * 0xff = (0x100000000000000ff, carry 0x0)/(0x100000000000000ff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" - -mbedtls_mpi_core_mla #1171: 0x10000000000000000 + 0x1 * 0xffff = (0x1000000000000ffff, carry 0x0)/(0x1000000000000ffff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" - -mbedtls_mpi_core_mla #1172: 0x10000000000000000 + 0x1 * 0x10000 = (0x10000000000010000, carry 0x0)/(0x10000000000010000, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" - -mbedtls_mpi_core_mla #1173: 0x10000000000000000 + 0x1 * 0xffffffff = (0x100000000ffffffff, carry 0x0)/(0x100000000ffffffff, carry 0x0) -mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" - -mbedtls_mpi_core_mla #1174: 0x10000000000000000 + 0x1 * 0x100000000 = (0x10000000100000000, carry 0x0)/(0x10000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" - -mbedtls_mpi_core_mla #1175: 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f, carry 0x0)/(0x17f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1176: 0x10000000000000000 + 0x1 * 0x8000000000000000 = (0x18000000000000000, carry 0x0)/(0x18000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" - -mbedtls_mpi_core_mla #1177: 0x10000000000000000 + 0x1 * 0xfffffffffffffffe = (0x1fffffffffffffffe, carry 0x0)/(0x1fffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1178: 0x10000000000000000 + 0xfffe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1179: 0x10000000000000000 + 0xfffe * 0x3 = (0x1000000000002fffa, carry 0x0)/(0x1000000000002fffa, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" - -mbedtls_mpi_core_mla #1180: 0x10000000000000000 + 0xfffe * 0xfe = (0x10000000000fdfe04, carry 0x0)/(0x10000000000fdfe04, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1181: 0x10000000000000000 + 0xfffe * 0xff = (0x10000000000fefe02, carry 0x0)/(0x10000000000fefe02, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" - -mbedtls_mpi_core_mla #1182: 0x10000000000000000 + 0xfffe * 0xffff = (0x100000000fffd0002, carry 0x0)/(0x100000000fffd0002, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" - -mbedtls_mpi_core_mla #1183: 0x10000000000000000 + 0xfffe * 0x10000 = (0x100000000fffe0000, carry 0x0)/(0x100000000fffe0000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" - -mbedtls_mpi_core_mla #1184: 0x10000000000000000 + 0xfffe * 0xffffffff = (0x10000fffdffff0002, carry 0x0)/(0x10000fffdffff0002, carry 0x0) -mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1185: 0x10000000000000000 + 0xfffe * 0x100000000 = (0x10000fffe00000000, carry 0x0)/(0x10000fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" - -mbedtls_mpi_core_mla #1186: 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7f8080808080800102, carry 0x0)/(0x7f7f8080808080800102, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" - -mbedtls_mpi_core_mla #1187: 0x10000000000000000 + 0xfffe * 0x8000000000000000 = (0x80000000000000000000, carry 0x0)/(0x80000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" - -mbedtls_mpi_core_mla #1188: 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe = (0xfffefffffffffffe0004, carry 0x0)/(0xfffefffffffffffe0004, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1189: 0x10000000000000000 + 0xffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1190: 0x10000000000000000 + 0xffffffff * 0x3 = (0x100000002fffffffd, carry 0x0)/(0x100000002fffffffd, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" - -mbedtls_mpi_core_mla #1191: 0x10000000000000000 + 0xffffffff * 0xfe = (0x1000000fdffffff02, carry 0x0)/(0x1000000fdffffff02, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1192: 0x10000000000000000 + 0xffffffff * 0xff = (0x1000000feffffff01, carry 0x0)/(0x1000000feffffff01, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" - -mbedtls_mpi_core_mla #1193: 0x10000000000000000 + 0xffffffff * 0xffff = (0x10000fffeffff0001, carry 0x0)/(0x10000fffeffff0001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1194: 0x10000000000000000 + 0xffffffff * 0x10000 = (0x10000ffffffff0000, carry 0x0)/(0x10000ffffffff0000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1195: 0x10000000000000000 + 0xffffffff * 0xffffffff = (0x1fffffffe00000001, carry 0x0)/(0x1fffffffe00000001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1196: 0x10000000000000000 + 0xffffffff * 0x100000000 = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1197: 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fffffffff80808081, carry 0x0)/(0x7f7f7f7fffffffff80808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" - -mbedtls_mpi_core_mla #1198: 0x10000000000000000 + 0xffffffff * 0x8000000000000000 = (0x800000008000000000000000, carry 0x0)/(0x800000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" - -mbedtls_mpi_core_mla #1199: 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0xfffffffffffffffe00000002, carry 0x0)/(0xfffffffffffffffe00000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" - -mbedtls_mpi_core_mla #1200: 0x10000000000000000 + 0x100000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1201: 0x10000000000000000 + 0x100000000 * 0x3 = (0x10000000300000000, carry 0x0)/(0x10000000300000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" - -mbedtls_mpi_core_mla #1202: 0x10000000000000000 + 0x100000000 * 0xfe = (0x1000000fe00000000, carry 0x0)/(0x1000000fe00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" - -mbedtls_mpi_core_mla #1203: 0x10000000000000000 + 0x100000000 * 0xff = (0x1000000ff00000000, carry 0x0)/(0x1000000ff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" - -mbedtls_mpi_core_mla #1204: 0x10000000000000000 + 0x100000000 * 0xffff = (0x10000ffff00000000, carry 0x0)/(0x10000ffff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" - -mbedtls_mpi_core_mla #1205: 0x10000000000000000 + 0x100000000 * 0x10000 = (0x10001000000000000, carry 0x0)/(0x10001000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" - -mbedtls_mpi_core_mla #1206: 0x10000000000000000 + 0x100000000 * 0xffffffff = (0x1ffffffff00000000, carry 0x0)/(0x1ffffffff00000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1207: 0x10000000000000000 + 0x100000000 * 0x100000000 = (0x20000000000000000, carry 0x0)/(0x20000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" - -mbedtls_mpi_core_mla #1208: 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f807f7f7f7f00000000, carry 0x0)/(0x7f7f7f807f7f7f7f00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1209: 0x10000000000000000 + 0x100000000 * 0x8000000000000000 = (0x800000010000000000000000, carry 0x0)/(0x800000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" - -mbedtls_mpi_core_mla #1210: 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0xfffffffe00000000, carry 0x1)/(0x100000000fffffffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" - -mbedtls_mpi_core_mla #1211: 0x10000000000000000 + 0x20000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1212: 0x10000000000000000 + 0x20000000000000 * 0x3 = (0x10060000000000000, carry 0x0)/(0x10060000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" - -mbedtls_mpi_core_mla #1213: 0x10000000000000000 + 0x20000000000000 * 0xfe = (0x11fc0000000000000, carry 0x0)/(0x11fc0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" - -mbedtls_mpi_core_mla #1214: 0x10000000000000000 + 0x20000000000000 * 0xff = (0x11fe0000000000000, carry 0x0)/(0x11fe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" - -mbedtls_mpi_core_mla #1215: 0x10000000000000000 + 0x20000000000000 * 0xffff = (0x20ffe0000000000000, carry 0x0)/(0x20ffe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1216: 0x10000000000000000 + 0x20000000000000 * 0x10000 = (0x210000000000000000, carry 0x0)/(0x210000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" - -mbedtls_mpi_core_mla #1217: 0x10000000000000000 + 0x20000000000000 * 0xffffffff = (0x200000ffe0000000000000, carry 0x0)/(0x200000ffe0000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1218: 0x10000000000000000 + 0x20000000000000 * 0x100000000 = (0x2000010000000000000000, carry 0x0)/(0x2000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" - -mbedtls_mpi_core_mla #1219: 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff0efe0000000000000, carry 0xfefef)/(0xfefefefefeff0efe0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" - -mbedtls_mpi_core_mla #1220: 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x100000)/(0x100000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1221: 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0xffc0000000000000, carry 0x200000)/(0x20000000000000ffc0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" - -mbedtls_mpi_core_mla #1222: 0x10000000000000000 + 0xffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1223: 0x10000000000000000 + 0xffffffffffffffff * 0x3 = (0x3fffffffffffffffd, carry 0x0)/(0x3fffffffffffffffd, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1224: 0x10000000000000000 + 0xffffffffffffffff * 0xfe = (0xfeffffffffffffff02, carry 0x0)/(0xfeffffffffffffff02, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1225: 0x10000000000000000 + 0xffffffffffffffff * 0xff = (0xffffffffffffffff01, carry 0x0)/(0xffffffffffffffff01, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1226: 0x10000000000000000 + 0xffffffffffffffff * 0xffff = (0xffffffffffffffff0001, carry 0x0)/(0xffffffffffffffff0001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1227: 0x10000000000000000 + 0xffffffffffffffff * 0x10000 = (0x10000ffffffffffff0000, carry 0x0)/(0x10000ffffffffffff0000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1228: 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff = (0xffffffffffffffff00000001, carry 0x0)/(0xffffffffffffffff00000001, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" - -mbedtls_mpi_core_mla #1229: 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x1)/(0x100000000ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1230: 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f8080808080808081, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f8080808080808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" - -mbedtls_mpi_core_mla #1231: 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x80000000)/(0x80000000000000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1232: 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe0000000000000002, carry 0xffffffff)/(0xfffffffffffffffe0000000000000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" - -mbedtls_mpi_core_mla #1233: 0x10000000000000000 + 0x10000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1234: 0x10000000000000000 + 0x10000000000000000 * 0x3 = (0x40000000000000000, carry 0x0)/(0x40000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" - -mbedtls_mpi_core_mla #1235: 0x10000000000000000 + 0x10000000000000000 * 0xfe = (0xff0000000000000000, carry 0x0)/(0xff0000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1236: 0x10000000000000000 + 0x10000000000000000 * 0xff = (0x1000000000000000000, carry 0x0)/(0x1000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" - -mbedtls_mpi_core_mla #1237: 0x10000000000000000 + 0x10000000000000000 * 0xffff = (0x100000000000000000000, carry 0x0)/(0x100000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #1238: 0x10000000000000000 + 0x10000000000000000 * 0x10000 = (0x100010000000000000000, carry 0x0)/(0x100010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" - -mbedtls_mpi_core_mla #1239: 0x10000000000000000 + 0x10000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x1000000000000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1240: 0x10000000000000000 + 0x10000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x1000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1241: 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f800000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f800000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" - -mbedtls_mpi_core_mla #1242: 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x80000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1243: 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff0000000000000000, carry 0xffffffff)/(0xffffffffffffffff0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1244: 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1245: 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x469d0369b20369cd0, carry 0x0)/(0x469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1246: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x121fedcb9f8a7653220, carry 0x0)/(0x121fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1247: 0x10000000000000000 + 0x1234567890abcdef0 * 0xff = (0x12322222181b2221110, carry 0x0)/(0x12322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" - -mbedtls_mpi_core_mla #1248: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x123454443a333d4332110, carry 0x0)/(0x123454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1249: 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1234667890abcdef00000, carry 0x0)/(0x1234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1250: 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x23456788e7777766f5432110, carry 0x1)/(0x123456788e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1251: 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a0abcdef000000000, carry 0x1)/(0x12345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1252: 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde77f67708abaf5ba910, carry 0x91107edb)/(0x91107edbd82bde77f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1253: 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f790000000000000000, carry 0x91a2b3c4)/(0x91a2b3c4855e6f790000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" - -mbedtls_mpi_core_mla #1254: 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeb97530edea864220, carry 0x123456789)/(0x234567890abcdeeeb97530edea864220, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" - -mbedtls_mpi_core_mla #1255: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1256: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfcfcfcfcfcfcfcfa, carry 0x3)/(0xfcfcfcfcfcfcfcfa, carry 0x3) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" - -mbedtls_mpi_core_mla #1257: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x101010101010004, carry 0xfe)/(0x101010101010004, carry 0xfe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" - -mbedtls_mpi_core_mla #1258: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1259: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffeffffffffffffff0102, carry 0xfffe)/(0xfffffffffffffeffffffffffffff0102, carry 0xfffe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #1260: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefffefefefefefe0000, carry 0xffff)/(0xfffffffffffffefffefefefefefe0000, carry 0xffff) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1261: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefeffffffffff01010102, carry 0xfffffffe)/(0xfffffffffefefeffffffffff01010102, carry 0xfffffffe) -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #1262: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefffefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefffefefefe00000000, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1263: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e)/(0xff800081018202838504840383028202, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1264: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f800000000000000000, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1265: 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd)/(0xfefefefefefefeff0202020202020204, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1266: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1267: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x300000000000000010000000000000000, carry 0x0)/(0x300000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1268: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xfe00000000000000010000000000000000, carry 0x0)/(0xfe00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1269: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0xff00000000000000010000000000000000, carry 0x0)/(0xff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1270: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0xffff00000000000000010000000000000000, carry 0x0)/(0xffff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1271: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000000000000000000010000000000000000, carry 0x0)/(0x1000000000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1272: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff00000000000000010000000000000000, carry 0x0)/(0xffffffff00000000000000010000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1273: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x10000000000000000, carry 0x1)/(0x10000000000000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1274: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f00000000000000010000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f00000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1275: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x10000000000000000, carry 0x80000000)/(0x800000000000000000000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1276: 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe00000000000000010000000000000000, carry 0xffffffff)/(0xfffffffffffffffe00000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1277: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1278: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1279: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1280: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1281: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1282: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1283: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e7777767077777888e7777766f5432110, carry 0x12)/(0x123456787e7777767077777888e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1284: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a0abcdef000000000, carry 0x12)/(0x1234567890abcdef012345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1285: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f77f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1286: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" - -mbedtls_mpi_core_mla #1287: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eeb97530edea864220, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eeb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" - -mbedtls_mpi_core_mla #1288: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1289: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffd, carry 0x3)/(0xfffffffffffffffd, carry 0x3) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1290: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffff02, carry 0xfe)/(0xffffffffffffff02, carry 0xfe) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1291: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffff01, carry 0xff)/(0xffffffffffffff01, carry 0xff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1292: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffff0001, carry 0xffff)/(0xffffffffffff0001, carry 0xffff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1293: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffff0000, carry 0x10000)/(0xffffffffffff0000, carry 0x10000) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1294: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffff00000001, carry 0xffffffff)/(0xffffffff00000001, carry 0xffffffff) -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1295: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffff00000000, carry 0x100000000)/(0xffffffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1296: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0x8080808080808081, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1297: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x8000000000000000, carry 0x8000000000000000)/(0x8000000000000000, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1298: 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x2, carry 0xfffffffffffffffe)/(0x2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1299: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1300: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1301: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1302: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122322222181b2221110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1303: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1304: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1305: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110, carry 0x0) -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1306: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1307: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1308: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" - -mbedtls_mpi_core_mla #1309: 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1310: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x10000000000000000, carry 0x0)/(0x10000000000000000, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1311: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1312: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1313: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1314: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1315: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000, carry 0x0) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1316: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5, carry 0x4) -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1317: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" - -mbedtls_mpi_core_mla #1318: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1319: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1320: 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1321: 0x1234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1322: 0x1234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1323: 0x1234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1324: 0x1234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1325: 0x1234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1326: 0x1234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1327: 0x1234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1328: 0x1234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1329: 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1330: 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1331: 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1332: 0x1234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1333: 0x1234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef3, carry 0x0)/(0x1234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1334: 0x1234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdfee, carry 0x0)/(0x1234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1335: 0x1234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdfef, carry 0x0)/(0x1234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1336: 0x1234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abddeef, carry 0x0)/(0x1234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" - -mbedtls_mpi_core_mla #1337: 0x1234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abddef0, carry 0x0)/(0x1234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" - -mbedtls_mpi_core_mla #1338: 0x1234567890abcdef0 + 0x1 * 0xffffffff = (0x12345678a0abcdeef, carry 0x0)/(0x12345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1339: 0x1234567890abcdef0 + 0x1 * 0x100000000 = (0x12345678a0abcdef0, carry 0x0)/(0x12345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1340: 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1a2c4e7088a3c5e6f, carry 0x0)/(0x1a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1341: 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1a34567890abcdef0, carry 0x0)/(0x1a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1342: 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x2234567890abcdeee, carry 0x0)/(0x2234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1343: 0x1234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1344: 0x1234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abfdeea, carry 0x0)/(0x1234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1345: 0x1234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890bbadcf4, carry 0x0)/(0x1234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1346: 0x1234567890abcdef0 + 0xfffe * 0xff = (0x1234567890bbbdcf2, carry 0x0)/(0x1234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1347: 0x1234567890abcdef0 + 0xfffe * 0xffff = (0x12345678a0ab9def2, carry 0x0)/(0x12345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1348: 0x1234567890abcdef0 + 0xfffe * 0x10000 = (0x12345678a0abadef0, carry 0x0)/(0x12345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1349: 0x1234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234667870abbdef2, carry 0x0)/(0x1234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1350: 0x1234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234667870abcdef0, carry 0x0)/(0x1234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1351: 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7fa3c5e8098b3cdff2, carry 0x0)/(0x7f7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1352: 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x8000234567890abcdef0, carry 0x0)/(0x8000234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1353: 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0xffff234567890abadef4, carry 0x0)/(0xffff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1354: 0x1234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1355: 0x1234567890abcdef0 + 0xffffffff * 0x3 = (0x12345678c0abcdeed, carry 0x0)/(0x12345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1356: 0x1234567890abcdef0 + 0xffffffff * 0xfe = (0x1234568870abcddf2, carry 0x0)/(0x1234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1357: 0x1234567890abcdef0 + 0xffffffff * 0xff = (0x1234568880abcddf1, carry 0x0)/(0x1234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1358: 0x1234567890abcdef0 + 0xffffffff * 0xffff = (0x1234667880abbdef1, carry 0x0)/(0x1234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1359: 0x1234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234667890abbdef0, carry 0x0)/(0x1234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1360: 0x1234567890abcdef0 + 0xffffffff * 0xffffffff = (0x2234567870abcdef1, carry 0x0)/(0x2234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1361: 0x1234567890abcdef0 + 0xffffffff * 0x100000000 = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1362: 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567888b3d5f71, carry 0x0)/(0x7f7f7f80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1363: 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x80000000a34567890abcdef0, carry 0x0)/(0x80000000a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1364: 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x234567870abcdef2, carry 0x1)/(0x100000000234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1365: 0x1234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1366: 0x1234567890abcdef0 + 0x100000000 * 0x3 = (0x12345678c0abcdef0, carry 0x0)/(0x12345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1367: 0x1234567890abcdef0 + 0x100000000 * 0xfe = (0x1234568870abcdef0, carry 0x0)/(0x1234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1368: 0x1234567890abcdef0 + 0x100000000 * 0xff = (0x1234568880abcdef0, carry 0x0)/(0x1234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1369: 0x1234567890abcdef0 + 0x100000000 * 0xffff = (0x1234667880abcdef0, carry 0x0)/(0x1234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1370: 0x1234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234667890abcdef0, carry 0x0)/(0x1234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1371: 0x1234567890abcdef0 + 0x100000000 * 0xffffffff = (0x2234567880abcdef0, carry 0x0)/(0x2234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1372: 0x1234567890abcdef0 + 0x100000000 * 0x100000000 = (0x2234567890abcdef0, carry 0x0)/(0x2234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1373: 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80a2c4e7080abcdef0, carry 0x0)/(0x7f7f7f80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1374: 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x80000001234567890abcdef0, carry 0x0)/(0x80000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1375: 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567870abcdef0, carry 0x1)/(0x100000001234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1376: 0x1234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1377: 0x1234567890abcdef0 + 0x20000000000000 * 0x3 = (0x123a567890abcdef0, carry 0x0)/(0x123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1378: 0x1234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1430567890abcdef0, carry 0x0)/(0x1430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1379: 0x1234567890abcdef0 + 0x20000000000000 * 0xff = (0x1432567890abcdef0, carry 0x0)/(0x1432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1380: 0x1234567890abcdef0 + 0x20000000000000 * 0xffff = (0x21232567890abcdef0, carry 0x0)/(0x21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1381: 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x21234567890abcdef0, carry 0x0)/(0x21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1382: 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x200001232567890abcdef0, carry 0x0)/(0x200001232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1383: 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x200001234567890abcdef0, carry 0x0)/(0x200001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1384: 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xefefeff1132567890abcdef0, carry 0xfefef)/(0xfefefefefeff1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1385: 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x100000)/(0x10000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1386: 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1230567890abcdef0, carry 0x200000)/(0x20000000000001230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1387: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1388: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x4234567890abcdeed, carry 0x0)/(0x4234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1389: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0xff234567890abcddf2, carry 0x0)/(0xff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1390: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x100234567890abcddf1, carry 0x0)/(0x100234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1391: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x10000234567890abbdef1, carry 0x0)/(0x10000234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1392: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x10001234567890abbdef0, carry 0x0)/(0x10001234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1393: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x234567880abcdef1, carry 0x1)/(0x100000000234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1394: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x1)/(0x100000001234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1395: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fa3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1396: 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x80000000)/(0x8000000000000000a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1397: 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffe234567890abcdef2, carry 0xffffffff)/(0xfffffffffffffffe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1398: 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1399: 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x4234567890abcdef0, carry 0x0)/(0x4234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1400: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe = (0xff234567890abcdef0, carry 0x0)/(0xff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1401: 0x1234567890abcdef0 + 0x10000000000000000 * 0xff = (0x100234567890abcdef0, carry 0x0)/(0x100234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1402: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x10000234567890abcdef0, carry 0x0)/(0x10000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1403: 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x10001234567890abcdef0, carry 0x0)/(0x10001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1404: 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x234567890abcdef0, carry 0x1)/(0x100000000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1405: 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x100000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1406: 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f80234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1407: 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x8000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1408: 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0xffffffff234567890abcdef0, carry 0xffffffff)/(0xffffffffffffffff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1409: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1410: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x48d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1411: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x12222222181b2221110, carry 0x0)/(0x12222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #1412: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef000, carry 0x0)/(0x1234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1413: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef00000, carry 0x0)/(0x1234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1414: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x123468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1415: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x234567890abcdef000000000, carry 0x1)/(0x1234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1416: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x2345678a2e0246790abcdef0, carry 0x1)/(0x12345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1417: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xd82bde7819bc7034ba188800, carry 0x91107edb)/(0x91107edbd82bde7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1418: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x855e6f79234567890abcdef0, carry 0x91a2b3c4)/(0x91a2b3c4855e6f79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1419: 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeedcba9876f5432110, carry 0x123456789)/(0x234567890abcdeeedcba9876f5432110, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" - -mbedtls_mpi_core_mla #1420: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1421: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x12042648607b9dbea, carry 0x3)/(0x12042648607b9dbea, carry 0x3) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" - -mbedtls_mpi_core_mla #1422: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x2446688a0bbddef4, carry 0xfe)/(0x2446688a0bbddef4, carry 0xfe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" - -mbedtls_mpi_core_mla #1423: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x234567890abcddf2, carry 0xff)/(0x234567890abcddf2, carry 0xff) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" - -mbedtls_mpi_core_mla #1424: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xffffffffffffff00234567890abbdff2, carry 0xfffe)/(0xffffffffffffff00234567890abbdff2, carry 0xfffe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" - -mbedtls_mpi_core_mla #1425: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xffffffffffffff002244668809badef0, carry 0xffff)/(0xffffffffffffff002244668809badef0, carry 0xffff) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" - -mbedtls_mpi_core_mla #1426: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe)/(0xfffffffffefeff00234567880bbddff2, carry 0xfffffffe) -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" - -mbedtls_mpi_core_mla #1427: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefeff00224466870abcdef0, carry 0xffffffff)/(0xfffffffffefeff00224466870abcdef0, carry 0xffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" - -mbedtls_mpi_core_mla #1428: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e)/(0xff80008101820283a849eb8c8dbf60f2, carry 0x7f7f7f7f7f7f7f7e) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1429: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff)/(0xff7f7f7f7f7f7f80234567890abcdef0, carry 0x7fffffffffffffff) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1430: 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd)/(0xfefefefefefefeff2547698b0cbee0f4, carry 0xfffffffffffffffd) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1431: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1432: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x30000000000000001234567890abcdef0, carry 0x0)/(0x30000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1433: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0xfe0000000000000001234567890abcdef0, carry 0x0)/(0xfe0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1434: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0xff0000000000000001234567890abcdef0, carry 0x0)/(0xff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1435: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0xffff0000000000000001234567890abcdef0, carry 0x0)/(0xffff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1436: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x100000000000000000001234567890abcdef0, carry 0x0)/(0x100000000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1437: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0xffffffff0000000000000001234567890abcdef0, carry 0x0)/(0xffffffff0000000000000001234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1438: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef0, carry 0x1)/(0x1000000000000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1439: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f0000000000000001234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1440: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0, carry 0x80000000)/(0x80000000000000000000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1441: 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffe0000000000000001234567890abcdef0, carry 0xffffffff)/(0xfffffffffffffffe0000000000000001234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1442: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1443: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1444: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a7653232222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1445: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b222112234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1446: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d4333344567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1447: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1448: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787e77777670777778890abcdef000000000, carry 0x12)/(0x123456787e77777670777778890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1449: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567890abcdef012345678a2e0246790abcdef0, carry 0x12)/(0x1234567890abcdef012345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1450: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde76ff8810996cde66f7819bc7034ba188800, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1451: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1452: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeedcba987667b32100eedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeedcba987667b32100eedcba9876f5432110, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1453: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1454: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdeed, carry 0x3)/(0x1234567890abcdeed, carry 0x3) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1455: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcddf2, carry 0xfe)/(0x1234567890abcddf2, carry 0xfe) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1456: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcddf1, carry 0xff)/(0x1234567890abcddf1, carry 0xff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1457: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abbdef1, carry 0xffff)/(0x1234567890abbdef1, carry 0xffff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1458: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abbdef0, carry 0x10000)/(0x1234567890abbdef0, carry 0x10000) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1459: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567880abcdef1, carry 0xffffffff)/(0x1234567880abcdef1, carry 0xffffffff) -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1460: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567880abcdef0, carry 0x100000000)/(0x1234567880abcdef0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1461: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0xa3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1462: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xa34567890abcdef0, carry 0x8000000000000000)/(0xa34567890abcdef0, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1463: 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x234567890abcdef2, carry 0xfffffffffffffffe)/(0x234567890abcdef2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1464: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1465: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1466: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1467: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b222112234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1468: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1469: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1470: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1471: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1472: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1473: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1474: 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1475: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef0, carry 0x0)/(0x1234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1476: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1477: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1478: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1479: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1480: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1481: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1482: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1483: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1484: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1485: 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1486: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1487: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1488: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1489: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1490: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1491: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1492: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1493: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1494: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1495: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1496: 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1497: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1498: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 = (0xfffffffffffffffffefefefefefeff01, carry 0x0)/(0xfffffffffffffffffefefefefefeff01, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" - -mbedtls_mpi_core_mla #1499: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe = (0xfffffffffffffffffefefefefefefffc, carry 0x0)/(0xfffffffffffffffffefefefefefefffc, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" - -mbedtls_mpi_core_mla #1500: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff = (0xfffffffffffffffffefefefefefefffd, carry 0x0)/(0xfffffffffffffffffefefefefefefffd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" - -mbedtls_mpi_core_mla #1501: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff = (0xfffffffffffffffffefefefefefffefd, carry 0x0)/(0xfffffffffffffffffefefefefefffefd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" - -mbedtls_mpi_core_mla #1502: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 = (0xfffffffffffffffffefefefefefffefe, carry 0x0)/(0xfffffffffffffffffefefefefefffefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" - -mbedtls_mpi_core_mla #1503: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff = (0xfffffffffffffffffefefefffefefefd, carry 0x0)/(0xfffffffffffffffffefefefffefefefd, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" - -mbedtls_mpi_core_mla #1504: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 = (0xfffffffffffffffffefefefffefefefe, carry 0x0)/(0xfffffffffffffffffefefefffefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" - -mbedtls_mpi_core_mla #1505: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7e7e7e7e7e7e7e7d, carry 0x1)/(0x7e7e7e7e7e7e7e7d, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" - -mbedtls_mpi_core_mla #1506: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 = (0x7efefefefefefefe, carry 0x1)/(0x7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1507: 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe = (0xfefefefefefefefc, carry 0x1)/(0xfefefefefefefefc, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" - -mbedtls_mpi_core_mla #1508: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1509: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 = (0xfffffffffffffffffefefefeff01fef8, carry 0x0)/(0xfffffffffffffffffefefefeff01fef8, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" - -mbedtls_mpi_core_mla #1510: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe = (0xfffffffffffffffffefefefefffcfd02, carry 0x0)/(0xfffffffffffffffffefefefefffcfd02, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" - -mbedtls_mpi_core_mla #1511: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff = (0xfffffffffffffffffefefefefffdfd00, carry 0x0)/(0xfffffffffffffffffefefefefffdfd00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" - -mbedtls_mpi_core_mla #1512: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff = (0xfffffffffffffffffefefefffefbff00, carry 0x0)/(0xfffffffffffffffffefefefffefbff00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" - -mbedtls_mpi_core_mla #1513: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 = (0xfffffffffffffffffefefefffefcfefe, carry 0x0)/(0xfffffffffffffffffefefefffefcfefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" - -mbedtls_mpi_core_mla #1514: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff = (0xfffffffffffffffffefffefcfefdff00, carry 0x0)/(0xfffffffffffffffffefffefcfefdff00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" - -mbedtls_mpi_core_mla #1515: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 = (0xfffffffffffffffffefffefcfefefefe, carry 0x0)/(0xfffffffffffffffffefffefcfefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" - -mbedtls_mpi_core_mla #1516: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e7f7f7f7f7f7f0000, carry 0x1)/(0x7f7e7f7f7f7f7f7f0000, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" - -mbedtls_mpi_core_mla #1517: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 = (0x7ffefefefefefefefefe, carry 0x1)/(0x7ffefefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1518: 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe = (0xfffdfefefefefefcff02, carry 0x1)/(0xfffdfefefefefefcff02, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" - -mbedtls_mpi_core_mla #1519: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1520: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 = (0xfffffffffffffffffefeff01fefefefb, carry 0x0)/(0xfffffffffffffffffefeff01fefefefb, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" - -mbedtls_mpi_core_mla #1521: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe = (0xfffffffffffffffffefefffcfefefe00, carry 0x0)/(0xfffffffffffffffffefefffcfefefe00, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" - -mbedtls_mpi_core_mla #1522: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff = (0xfffffffffffffffffefefffdfefefdff, carry 0x0)/(0xfffffffffffffffffefefffdfefefdff, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" - -mbedtls_mpi_core_mla #1523: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff = (0xfffffffffffffffffefffefdfefdfeff, carry 0x0)/(0xfffffffffffffffffefffefdfefdfeff, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" - -mbedtls_mpi_core_mla #1524: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 = (0xfffffffffffffffffefffefefefdfefe, carry 0x0)/(0xfffffffffffffffffefffefefefdfefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" - -mbedtls_mpi_core_mla #1525: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff = (0xfefefefcfefefeff, carry 0x1)/(0xfefefefcfefefeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" - -mbedtls_mpi_core_mla #1526: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1527: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7efefefefe7f7f7f7f, carry 0x1)/(0x7f7f7f7efefefefe7f7f7f7f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1528: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 = (0x7fffffff7efefefefefefefe, carry 0x1)/(0x7fffffff7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1529: 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefefefefcfefeff00, carry 0x1)/(0xfffffffefefefefcfefeff00, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" - -mbedtls_mpi_core_mla #1530: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1531: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 = (0xfffffffffffffffffefeff01fefefefe, carry 0x0)/(0xfffffffffffffffffefeff01fefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" - -mbedtls_mpi_core_mla #1532: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe = (0xfffffffffffffffffefefffcfefefefe, carry 0x0)/(0xfffffffffffffffffefefffcfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" - -mbedtls_mpi_core_mla #1533: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff = (0xfffffffffffffffffefefffdfefefefe, carry 0x0)/(0xfffffffffffffffffefefffdfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" - -mbedtls_mpi_core_mla #1534: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff = (0xfffffffffffffffffefffefdfefefefe, carry 0x0)/(0xfffffffffffffffffefffefdfefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" - -mbedtls_mpi_core_mla #1535: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 = (0xfffffffffffffffffefffefefefefefe, carry 0x0)/(0xfffffffffffffffffefffefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" - -mbedtls_mpi_core_mla #1536: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff = (0xfefefefdfefefefe, carry 0x1)/(0xfefefefdfefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1537: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 = (0xfefefefefefefefe, carry 0x1)/(0xfefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1538: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1)/(0x7f7f7f7f7e7e7e7dfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" - -mbedtls_mpi_core_mla #1539: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 = (0x7ffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1540: 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffefefefcfefefefe, carry 0x1)/(0xfffffffffefefefcfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" - -mbedtls_mpi_core_mla #1541: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1542: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 = (0xffffffffffffffffff5efefefefefefe, carry 0x0)/(0xffffffffffffffffff5efefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" - -mbedtls_mpi_core_mla #1543: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe = (0x1ebefefefefefefe, carry 0x1)/(0x1ebefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1544: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff = (0x1edefefefefefefe, carry 0x1)/(0x1edefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" - -mbedtls_mpi_core_mla #1545: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff = (0x1ffedefefefefefefe, carry 0x1)/(0x1ffedefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1546: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 = (0x1ffefefefefefefefe, carry 0x1)/(0x1ffefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1547: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff = (0x1ffffffedefefefefefefe, carry 0x1)/(0x1ffffffedefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1548: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 = (0x1ffffffefefefefefefefe, carry 0x1)/(0x1ffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1549: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefeedefefefefefefe, carry 0x1)/(0xfefefefefefefeedefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1550: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 = (0xffffffffffffffefefefefefefefe, carry 0x1)/(0xffffffffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1551: 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe = (0x1ffffffffffffffebefefefefefefe, carry 0x1)/(0x1ffffffffffffffebefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1552: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1553: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 = (0x2fefefefefefefefb, carry 0x1)/(0x2fefefefefefefefb, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" - -mbedtls_mpi_core_mla #1554: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe = (0xfdfefefefefefefe00, carry 0x1)/(0xfdfefefefefefefe00, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" - -mbedtls_mpi_core_mla #1555: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff = (0xfefefefefefefefdff, carry 0x1)/(0xfefefefefefefefdff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" - -mbedtls_mpi_core_mla #1556: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff = (0xfffefefefefefefdfeff, carry 0x1)/(0xfffefefefefefefdfeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" - -mbedtls_mpi_core_mla #1557: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 = (0xfffffefefefefefdfefe, carry 0x1)/(0xfffffefefefefefdfefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" - -mbedtls_mpi_core_mla #1558: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff = (0xfffffffefefefefdfefefeff, carry 0x1)/(0xfffffffefefefefdfefefeff, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" - -mbedtls_mpi_core_mla #1559: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 = (0xfffffffffefefefdfefefefe, carry 0x1)/(0xfffffffffefefefdfefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1560: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1)/(0x7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1561: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7efefefefefefefe, carry 0x1)/(0x7fffffffffffffff7efefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1562: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffcfefefefefefeff00, carry 0x1)/(0xfffffffffffffffcfefefefefefeff00, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" - -mbedtls_mpi_core_mla #1563: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1564: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 = (0x2fefefefefefefefe, carry 0x1)/(0x2fefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1565: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe = (0xfdfefefefefefefefe, carry 0x1)/(0xfdfefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1566: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff = (0xfefefefefefefefefe, carry 0x1)/(0xfefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1567: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff = (0xfffefefefefefefefefe, carry 0x1)/(0xfffefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1568: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 = (0xfffffefefefefefefefe, carry 0x1)/(0xfffffefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1569: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff = (0xfffffffefefefefefefefefe, carry 0x1)/(0xfffffffefefefefefefefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1570: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 = (0xfffffffffefefefefefefefe, carry 0x1)/(0xfffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1571: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1)/(0x7f7f7f7f7f7f7f7efefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1572: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 = (0x7ffffffffffffffffefefefefefefefe, carry 0x1)/(0x7ffffffffffffffffefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1573: 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1574: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1575: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 = (0x368cf359a1f359bce, carry 0x1)/(0x368cf359a1f359bce, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" - -mbedtls_mpi_core_mla #1576: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe = (0x120fddbb8f7a664311e, carry 0x1)/(0x120fddbb8f7a664311e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" - -mbedtls_mpi_core_mla #1577: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff = (0x12221212080b121100e, carry 0x1)/(0x12221212080b121100e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" - -mbedtls_mpi_core_mla #1578: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff = (0x123444342a232d332200e, carry 0x1)/(0x123444342a232d332200e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" - -mbedtls_mpi_core_mla #1579: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 = (0x12345668809bbddeefefe, carry 0x1)/(0x12345668809bbddeefefe, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" - -mbedtls_mpi_core_mla #1580: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e6767665f442200e, carry 0x1)/(0x123456787e6767665f442200e, carry 0x1) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" - -mbedtls_mpi_core_mla #1581: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 = (0x12345678909bbddeefefefefe, carry 0x1)/(0x12345678909bbddeefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" - -mbedtls_mpi_core_mla #1582: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f57607aaae5aa80e, carry 0x1)/(0x91107edbd82bde76f57607aaae5aa80e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" - -mbedtls_mpi_core_mla #1583: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1)/(0x91a2b3c4855e6f77fefefefefefefefe, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1584: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x234567890abcdeedb8742fece985411e, carry 0x2)/(0x234567890abcdeedb8742fece985411e, carry 0x2) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" - -mbedtls_mpi_core_mla #1585: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1586: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3)/(0xfffffffffffffffffbfbfbfbfbfbfbf8, carry 0x3) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" - -mbedtls_mpi_core_mla #1587: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfffffffffffffffeffffffffffffff02, carry 0xfe)/(0xfffffffffffffffeffffffffffffff02, carry 0xfe) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1588: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffefefefefefefefe00, carry 0xff)/(0xfffffffffffffffefefefefefefefe00, carry 0xff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" - -mbedtls_mpi_core_mla #1589: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffefefefefefefefe0000, carry 0xffff)/(0xfffffffffffffefefefefefefefe0000, carry 0xffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1590: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000)/(0xfffffffffffffefefdfdfdfdfdfcfefe, carry 0x10000) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" - -mbedtls_mpi_core_mla #1591: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffefefefefefefefe00000000, carry 0xffffffff)/(0xfffffffffefefefefefefefe00000000, carry 0xffffffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1592: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000)/(0xfffffffffefefefefdfdfdfcfefefefe, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" - -mbedtls_mpi_core_mla #1593: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f)/(0xff800081018202828403830282018100, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1594: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000)/(0xff7f7f7f7f7f7f7efefefefefefefefe, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1595: 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe)/(0xfefefefefefefefe0101010101010102, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1596: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1597: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 = (0x3fffffffffffffffffefefefefefefefe, carry 0x0)/(0x3fffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1598: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe = (0xfefffffffffffffffffefefefefefefefe, carry 0x0)/(0xfefffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1599: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff = (0xfffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1600: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff = (0xfffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1601: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 = (0x10000fffffffffffffffffefefefefefefefe, carry 0x0)/(0x10000fffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1602: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1603: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x1)/(0x100000000fffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1604: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1605: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0xfffffffffffffffffefefefefefefefe, carry 0x80000000)/(0x8000000000000000fffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1606: 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffefffffffffffffffffefefefefefefefe, carry 0xffffffff)/(0xfffffffffffffffefffffffffffffffffefefefefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1607: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1608: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1609: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x1210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1610: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122221212080b121100e, carry 0x0)/(0x12232222181b2221122221212080b121100e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1611: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444342a232d332200e, carry 0x0)/(0x123445443a333d433334444342a232d332200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1612: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234577890abcdef012345668809bbddeefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1613: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e6767665f442200e, carry 0x12)/(0x123456787f7777767077777887e6767665f442200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1614: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef012345678909bbddeefefefefe, carry 0x12)/(0x1234567891abcdef012345678909bbddeefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1615: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f57607aaae5aa80e, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" - -mbedtls_mpi_core_mla #1616: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" - -mbedtls_mpi_core_mla #1617: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb8742fece985411e, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb8742fece985411e, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" - -mbedtls_mpi_core_mla #1618: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1619: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffefefefefefefefb, carry 0x3)/(0xfffffffffffffffffefefefefefefefb, carry 0x3) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" - -mbedtls_mpi_core_mla #1620: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xfffffffffffffffffefefefefefefe00, carry 0xfe)/(0xfffffffffffffffffefefefefefefe00, carry 0xfe) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" - -mbedtls_mpi_core_mla #1621: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xfffffffffffffffffefefefefefefdff, carry 0xff)/(0xfffffffffffffffffefefefefefefdff, carry 0xff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" - -mbedtls_mpi_core_mla #1622: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xfffffffffffffffffefefefefefdfeff, carry 0xffff)/(0xfffffffffffffffffefefefefefdfeff, carry 0xffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" - -mbedtls_mpi_core_mla #1623: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffefefefefefdfefe, carry 0x10000)/(0xfffffffffffffffffefefefefefdfefe, carry 0x10000) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" - -mbedtls_mpi_core_mla #1624: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff)/(0xfffffffffffffffffefefefdfefefeff, carry 0xffffffff) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" - -mbedtls_mpi_core_mla #1625: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffefefefdfefefefe, carry 0x100000000)/(0xfffffffffffffffffefefefdfefefefe, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" - -mbedtls_mpi_core_mla #1626: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff7f7f7f7f7f7f7f7f, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1627: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000)/(0xffffffffffffffff7efefefefefefefe, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1628: 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe)/(0xfffffffffffffffefefefefefefeff00, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1629: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1630: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1631: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1632: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122221212080b121100e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1633: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1634: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1635: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1636: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1637: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" - -mbedtls_mpi_core_mla #1638: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" - -mbedtls_mpi_core_mla #1639: 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" - -mbedtls_mpi_core_mla #1640: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xfffffffffffffffffefefefefefefefe, carry 0x0)/(0xfffffffffffffffffefefefefefefefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1641: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" - -mbedtls_mpi_core_mla #1642: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" - -mbedtls_mpi_core_mla #1643: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" - -mbedtls_mpi_core_mla #1644: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" - -mbedtls_mpi_core_mla #1645: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe, carry 0x0) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" - -mbedtls_mpi_core_mla #1646: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3, carry 0x4) -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" - -mbedtls_mpi_core_mla #1647: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" - -mbedtls_mpi_core_mla #1648: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" - -mbedtls_mpi_core_mla #1649: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" - -mbedtls_mpi_core_mla #1650: 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" - -mbedtls_mpi_core_mla #1651: 0x100000000000000000000000000000000 + 0x0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1652: 0x100000000000000000000000000000000 + 0x0 * 0x3 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1653: 0x100000000000000000000000000000000 + 0x0 * 0xfe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1654: 0x100000000000000000000000000000000 + 0x0 * 0xff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1655: 0x100000000000000000000000000000000 + 0x0 * 0xffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1656: 0x100000000000000000000000000000000 + 0x0 * 0x10000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1657: 0x100000000000000000000000000000000 + 0x0 * 0xffffffff = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1658: 0x100000000000000000000000000000000 + 0x0 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1659: 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1660: 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1661: 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1662: 0x100000000000000000000000000000000 + 0x1 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1663: 0x100000000000000000000000000000000 + 0x1 * 0x3 = (0x100000000000000000000000000000003, carry 0x0)/(0x100000000000000000000000000000003, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" - -mbedtls_mpi_core_mla #1664: 0x100000000000000000000000000000000 + 0x1 * 0xfe = (0x1000000000000000000000000000000fe, carry 0x0)/(0x1000000000000000000000000000000fe, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" - -mbedtls_mpi_core_mla #1665: 0x100000000000000000000000000000000 + 0x1 * 0xff = (0x1000000000000000000000000000000ff, carry 0x0)/(0x1000000000000000000000000000000ff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" - -mbedtls_mpi_core_mla #1666: 0x100000000000000000000000000000000 + 0x1 * 0xffff = (0x10000000000000000000000000000ffff, carry 0x0)/(0x10000000000000000000000000000ffff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" - -mbedtls_mpi_core_mla #1667: 0x100000000000000000000000000000000 + 0x1 * 0x10000 = (0x100000000000000000000000000010000, carry 0x0)/(0x100000000000000000000000000010000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" - -mbedtls_mpi_core_mla #1668: 0x100000000000000000000000000000000 + 0x1 * 0xffffffff = (0x1000000000000000000000000ffffffff, carry 0x0)/(0x1000000000000000000000000ffffffff, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #1669: 0x100000000000000000000000000000000 + 0x1 * 0x100000000 = (0x100000000000000000000000100000000, carry 0x0)/(0x100000000000000000000000100000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #1670: 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0)/(0x100000000000000007f7f7f7f7f7f7f7f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1671: 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 = (0x100000000000000008000000000000000, carry 0x0)/(0x100000000000000008000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1672: 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe = (0x10000000000000000fffffffffffffffe, carry 0x0)/(0x10000000000000000fffffffffffffffe, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1673: 0x100000000000000000000000000000000 + 0xfffe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1674: 0x100000000000000000000000000000000 + 0xfffe * 0x3 = (0x10000000000000000000000000002fffa, carry 0x0)/(0x10000000000000000000000000002fffa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" - -mbedtls_mpi_core_mla #1675: 0x100000000000000000000000000000000 + 0xfffe * 0xfe = (0x100000000000000000000000000fdfe04, carry 0x0)/(0x100000000000000000000000000fdfe04, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1676: 0x100000000000000000000000000000000 + 0xfffe * 0xff = (0x100000000000000000000000000fefe02, carry 0x0)/(0x100000000000000000000000000fefe02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" - -mbedtls_mpi_core_mla #1677: 0x100000000000000000000000000000000 + 0xfffe * 0xffff = (0x1000000000000000000000000fffd0002, carry 0x0)/(0x1000000000000000000000000fffd0002, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" - -mbedtls_mpi_core_mla #1678: 0x100000000000000000000000000000000 + 0xfffe * 0x10000 = (0x1000000000000000000000000fffe0000, carry 0x0)/(0x1000000000000000000000000fffe0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" - -mbedtls_mpi_core_mla #1679: 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff = (0x100000000000000000000fffdffff0002, carry 0x0)/(0x100000000000000000000fffdffff0002, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1680: 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 = (0x100000000000000000000fffe00000000, carry 0x0)/(0x100000000000000000000fffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" - -mbedtls_mpi_core_mla #1681: 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x10000000000007f7e8080808080800102, carry 0x0)/(0x10000000000007f7e8080808080800102, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" - -mbedtls_mpi_core_mla #1682: 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 = (0x10000000000007fff0000000000000000, carry 0x0)/(0x10000000000007fff0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" - -mbedtls_mpi_core_mla #1683: 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe = (0x1000000000000fffdfffffffffffe0004, carry 0x0)/(0x1000000000000fffdfffffffffffe0004, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1684: 0x100000000000000000000000000000000 + 0xffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1685: 0x100000000000000000000000000000000 + 0xffffffff * 0x3 = (0x1000000000000000000000002fffffffd, carry 0x0)/(0x1000000000000000000000002fffffffd, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" - -mbedtls_mpi_core_mla #1686: 0x100000000000000000000000000000000 + 0xffffffff * 0xfe = (0x10000000000000000000000fdffffff02, carry 0x0)/(0x10000000000000000000000fdffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1687: 0x100000000000000000000000000000000 + 0xffffffff * 0xff = (0x10000000000000000000000feffffff01, carry 0x0)/(0x10000000000000000000000feffffff01, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" - -mbedtls_mpi_core_mla #1688: 0x100000000000000000000000000000000 + 0xffffffff * 0xffff = (0x100000000000000000000fffeffff0001, carry 0x0)/(0x100000000000000000000fffeffff0001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1689: 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 = (0x100000000000000000000ffffffff0000, carry 0x0)/(0x100000000000000000000ffffffff0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1690: 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff = (0x10000000000000000fffffffe00000001, carry 0x0)/(0x10000000000000000fffffffe00000001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1691: 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1692: 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7effffffff80808081, carry 0x0)/(0x1000000007f7f7f7effffffff80808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" - -mbedtls_mpi_core_mla #1693: 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 = (0x1000000007fffffff8000000000000000, carry 0x0)/(0x1000000007fffffff8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1694: 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe = (0x100000000fffffffefffffffe00000002, carry 0x0)/(0x100000000fffffffefffffffe00000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" - -mbedtls_mpi_core_mla #1695: 0x100000000000000000000000000000000 + 0x100000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1696: 0x100000000000000000000000000000000 + 0x100000000 * 0x3 = (0x100000000000000000000000300000000, carry 0x0)/(0x100000000000000000000000300000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" - -mbedtls_mpi_core_mla #1697: 0x100000000000000000000000000000000 + 0x100000000 * 0xfe = (0x10000000000000000000000fe00000000, carry 0x0)/(0x10000000000000000000000fe00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" - -mbedtls_mpi_core_mla #1698: 0x100000000000000000000000000000000 + 0x100000000 * 0xff = (0x10000000000000000000000ff00000000, carry 0x0)/(0x10000000000000000000000ff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" - -mbedtls_mpi_core_mla #1699: 0x100000000000000000000000000000000 + 0x100000000 * 0xffff = (0x100000000000000000000ffff00000000, carry 0x0)/(0x100000000000000000000ffff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" - -mbedtls_mpi_core_mla #1700: 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 = (0x100000000000000000001000000000000, carry 0x0)/(0x100000000000000000001000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" - -mbedtls_mpi_core_mla #1701: 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff = (0x10000000000000000ffffffff00000000, carry 0x0)/(0x10000000000000000ffffffff00000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1702: 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 = (0x100000000000000010000000000000000, carry 0x0)/(0x100000000000000010000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1703: 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0)/(0x1000000007f7f7f7f7f7f7f7f00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1704: 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 = (0x100000000800000000000000000000000, carry 0x0)/(0x100000000800000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" - -mbedtls_mpi_core_mla #1705: 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe = (0x100000000fffffffffffffffe00000000, carry 0x0)/(0x100000000fffffffffffffffe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" - -mbedtls_mpi_core_mla #1706: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1707: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 = (0x100000000000000000060000000000000, carry 0x0)/(0x100000000000000000060000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" - -mbedtls_mpi_core_mla #1708: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe = (0x100000000000000001fc0000000000000, carry 0x0)/(0x100000000000000001fc0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" - -mbedtls_mpi_core_mla #1709: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff = (0x100000000000000001fe0000000000000, carry 0x0)/(0x100000000000000001fe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" - -mbedtls_mpi_core_mla #1710: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff = (0x1000000000000001fffe0000000000000, carry 0x0)/(0x1000000000000001fffe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" - -mbedtls_mpi_core_mla #1711: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 = (0x100000000000000200000000000000000, carry 0x0)/(0x100000000000000200000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" - -mbedtls_mpi_core_mla #1712: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff = (0x100000000001fffffffe0000000000000, carry 0x0)/(0x100000000001fffffffe0000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" - -mbedtls_mpi_core_mla #1713: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 = (0x100000000002000000000000000000000, carry 0x0)/(0x100000000002000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" - -mbedtls_mpi_core_mla #1714: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1000fefefefefefefefe0000000000000, carry 0x0)/(0x1000fefefefefefefefe0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" - -mbedtls_mpi_core_mla #1715: 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 = (0x100100000000000000000000000000000, carry 0x0)/(0x100100000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1716: 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe = (0x1001fffffffffffffffc0000000000000, carry 0x0)/(0x1001fffffffffffffffc0000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" - -mbedtls_mpi_core_mla #1717: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1718: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 = (0x10000000000000002fffffffffffffffd, carry 0x0)/(0x10000000000000002fffffffffffffffd, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1719: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe = (0x100000000000000fdffffffffffffff02, carry 0x0)/(0x100000000000000fdffffffffffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1720: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff = (0x100000000000000feffffffffffffff01, carry 0x0)/(0x100000000000000feffffffffffffff01, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1721: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff = (0x1000000000000fffeffffffffffff0001, carry 0x0)/(0x1000000000000fffeffffffffffff0001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1722: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 = (0x1000000000000ffffffffffffffff0000, carry 0x0)/(0x1000000000000ffffffffffffffff0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1723: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff = (0x100000000fffffffeffffffff00000001, carry 0x0)/(0x100000000fffffffeffffffff00000001, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" - -mbedtls_mpi_core_mla #1724: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 = (0x100000000ffffffffffffffff00000000, carry 0x0)/(0x100000000ffffffffffffffff00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" - -mbedtls_mpi_core_mla #1725: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0)/(0x17f7f7f7f7f7f7f7e8080808080808081, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" - -mbedtls_mpi_core_mla #1726: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 = (0x17fffffffffffffff8000000000000000, carry 0x0)/(0x17fffffffffffffff8000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1727: 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1fffffffffffffffd0000000000000002, carry 0x0)/(0x1fffffffffffffffd0000000000000002, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" - -mbedtls_mpi_core_mla #1728: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1729: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 = (0x100000000000000030000000000000000, carry 0x0)/(0x100000000000000030000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" - -mbedtls_mpi_core_mla #1730: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe = (0x100000000000000fe0000000000000000, carry 0x0)/(0x100000000000000fe0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" - -mbedtls_mpi_core_mla #1731: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff = (0x100000000000000ff0000000000000000, carry 0x0)/(0x100000000000000ff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1732: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff = (0x1000000000000ffff0000000000000000, carry 0x0)/(0x1000000000000ffff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1733: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 = (0x100000000000100000000000000000000, carry 0x0)/(0x100000000000100000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" - -mbedtls_mpi_core_mla #1734: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff = (0x100000000ffffffff0000000000000000, carry 0x0)/(0x100000000ffffffff0000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1735: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 = (0x100000001000000000000000000000000, carry 0x0)/(0x100000001000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1736: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0)/(0x17f7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1737: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 = (0x180000000000000000000000000000000, carry 0x0)/(0x180000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1738: 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffe0000000000000000, carry 0x0)/(0x1fffffffffffffffe0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #1739: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1740: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 = (0x1000000000000000369d0369b20369cd0, carry 0x0)/(0x1000000000000000369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1741: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe = (0x10000000000000120fedcb9f8a7653220, carry 0x0)/(0x10000000000000120fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1742: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff = (0x1000000000000012222222181b2221110, carry 0x0)/(0x1000000000000012222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" - -mbedtls_mpi_core_mla #1743: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff = (0x100000000000123444443a333d4332110, carry 0x0)/(0x100000000000123444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1744: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 = (0x1000000000001234567890abcdef00000, carry 0x0)/(0x1000000000001234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1745: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff = (0x10000000123456787e7777766f5432110, carry 0x0)/(0x10000000123456787e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1746: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 = (0x100000001234567890abcdef000000000, carry 0x0)/(0x100000001234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1747: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x191107edbd82bde76f67708abaf5ba910, carry 0x0)/(0x191107edbd82bde76f67708abaf5ba910, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1748: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x191a2b3c4855e6f780000000000000000, carry 0x0)/(0x191a2b3c4855e6f780000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #1749: 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x2234567890abcdeedb97530edea864220, carry 0x0)/(0x2234567890abcdeedb97530edea864220, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" - -mbedtls_mpi_core_mla #1750: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1751: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0)/(0x3fffffffffffffffffcfcfcfcfcfcfcfa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" - -mbedtls_mpi_core_mla #1752: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfeffffffffffffffff0101010101010004, carry 0x0)/(0xfeffffffffffffffff0101010101010004, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" - -mbedtls_mpi_core_mla #1753: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfffffffffffffffffeffffffffffffff02, carry 0x0)/(0xfffffffffffffffffeffffffffffffff02, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1754: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffffffffffffffffefeffffffffffff0102, carry 0x0)/(0xfffffffffffffffffefeffffffffffff0102, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" - -mbedtls_mpi_core_mla #1755: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x10000fffffffffffffefefefefefefefe0000, carry 0x0)/(0x10000fffffffffffffefefefefefefefe0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" - -mbedtls_mpi_core_mla #1756: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffffffffffffefefefeffffffff01010102, carry 0x0)/(0xfffffffffffffffffefefefeffffffff01010102, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" - -mbedtls_mpi_core_mla #1757: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffefefefefefefefe00000000, carry 0x1)/(0x100000000fffffffffefefefefefefefe00000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" - -mbedtls_mpi_core_mla #1758: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7fff800081018202828504840383028202, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f7fff800081018202828504840383028202, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" - -mbedtls_mpi_core_mla #1759: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0xff7f7f7f7f7f7f7f0000000000000000, carry 0x80000000)/(0x8000000000000000ff7f7f7f7f7f7f7f0000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1760: 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffefefefefefefefefe0202020202020204, carry 0xffffffff)/(0xfffffffffffffffefefefefefefefefe0202020202020204, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" - -mbedtls_mpi_core_mla #1761: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1762: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 = (0x400000000000000000000000000000000, carry 0x0)/(0x400000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1763: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe = (0xff00000000000000000000000000000000, carry 0x0)/(0xff00000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1764: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff = (0x10000000000000000000000000000000000, carry 0x0)/(0x10000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1765: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff = (0x1000000000000000000000000000000000000, carry 0x0)/(0x1000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1766: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 = (0x1000100000000000000000000000000000000, carry 0x0)/(0x1000100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1767: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff = (0x0, carry 0x1)/(0x10000000000000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1768: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 = (0x100000000000000000000000000000000, carry 0x1)/(0x10000000100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1769: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f8000000000000000000000000000000000, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f8000000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1770: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x100000000000000000000000000000000, carry 0x80000000)/(0x800000000000000100000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1771: 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xffffffff00000000000000000000000000000000, carry 0xffffffff)/(0xffffffffffffffff00000000000000000000000000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1772: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1773: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1774: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x1210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1775: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12232222181b2221122222222181b2221110, carry 0x0)/(0x12232222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1776: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123445443a333d433334444443a333d4332110, carry 0x0)/(0x123445443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1777: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234577890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1778: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x3456787f7777767077777887e7777766f5432110, carry 0x12)/(0x123456787f7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1779: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x34567891abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567891abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1780: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd)/(0x1107edbd82bde770f8810996cde66f76f67708abaf5ba910, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1781: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c48)/(0x1a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #1782: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeddba987667b32100edb97530edea864220, carry 0x1234567890)/(0x34567890abcdeeddba987667b32100edb97530edea864220, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #1783: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1784: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffd, carry 0x3)/(0xfffffffffffffffffffffffffffffffd, carry 0x3) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1785: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffff02, carry 0xfe)/(0xffffffffffffffffffffffffffffff02, carry 0xfe) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1786: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffff01, carry 0xff)/(0xffffffffffffffffffffffffffffff01, carry 0xff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1787: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffff0001, carry 0xffff)/(0xffffffffffffffffffffffffffff0001, carry 0xffff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1788: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xffffffffffffffffffffffffffff0000, carry 0x10000)/(0xffffffffffffffffffffffffffff0000, carry 0x10000) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1789: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffff00000001, carry 0xffffffff)/(0xffffffffffffffffffffffff00000001, carry 0xffffffff) -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1790: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xffffffffffffffffffffffff00000000, carry 0x100000000)/(0xffffffffffffffffffffffff00000000, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1791: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffff8080808080808081, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1792: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffff8000000000000000, carry 0x8000000000000000)/(0xffffffffffffffff8000000000000000, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1793: 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe)/(0xffffffffffffffff0000000000000002, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1794: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1795: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1796: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1797: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122232222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1798: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0)/(0x123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1799: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1800: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x1234)/(0x123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1801: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1802: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1803: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #1804: 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1805: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x100000000000000000000000000000000, carry 0x0)/(0x100000000000000000000000000000000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1806: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1807: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1808: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1809: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1810: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1811: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5, carry 0x4) -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1812: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #1813: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1814: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1815: 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1816: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1817: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1818: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1819: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1820: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1821: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1822: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1823: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1824: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1825: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1826: 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1827: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1828: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1829: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1830: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1831: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #1832: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #1833: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef012345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1834: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef012345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1835: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1836: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1837: 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef02234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1838: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1839: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1840: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1841: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1842: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef012345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1843: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef012345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1844: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1845: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1846: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1847: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abce6f00234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1848: 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abceeeff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1849: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1850: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef012345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1851: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1852: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1853: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1854: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1855: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef02234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1856: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1857: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x12345678912b4d6e80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1858: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x12345678912bcdef00a34567890abcdef0, carry 0x0)/(0x12345678912bcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1859: 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567891abcdef00234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1860: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1861: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef012345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1862: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1863: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1864: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1865: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1866: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef02234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1867: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef02234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1868: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x12345678912b4d6e80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1869: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x12345678912bcdef01234567890abcdef0, carry 0x0)/(0x12345678912bcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1870: 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567891abcdef01234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1871: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1872: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef0123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1873: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1874: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1875: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1876: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1877: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abedef01232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1878: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abedef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1879: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12346668809bbddef1132567890abcdef0, carry 0x0)/(0x12346668809bbddef1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1880: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234667890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1881: 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234767890abcdef01230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1882: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1883: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef04234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1884: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdefff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1885: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdf000234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1886: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abceef00234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1887: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abceef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1888: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567891abcdef00234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1889: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567891abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1890: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x12b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1891: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x12b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x12b4567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1892: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1334567890abcdeefe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1893: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1894: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef04234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1895: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdefff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1896: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdf000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1897: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abceef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1898: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abceef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1899: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567891abcdef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1900: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567891abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1901: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x12b3d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1902: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x12b4567890abcdef01234567890abcdef0, carry 0x0)/(0x12b4567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1903: 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1334567890abcdeeff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1904: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1905: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1906: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdf02222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #1907: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdf0234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1908: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcf124567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1909: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1910: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567891cf1356890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1911: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567891cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1912: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x12c566f76c83f9cd7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1913: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x12c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x12c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1914: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x13579be019b68acdeedcba9876f5432110, carry 0x0)/(0x13579be019b68acdeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #1915: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1916: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1534567890abcdef012042648607b9dbea, carry 0x0)/(0x1534567890abcdef012042648607b9dbea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #1917: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x11034567890abcdef002446688a0bbddef4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #1918: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x11134567890abcdef00234567890abcddf2, carry 0x0)/(0x11134567890abcdef00234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1919: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1001134567890abcdee00234567890abbdff2, carry 0x0)/(0x1001134567890abcdee00234567890abbdff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #1920: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1001234567890abcdee002244668809badef0, carry 0x0)/(0x1001234567890abcdee002244668809badef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #1921: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1134567890aaccee00234567880bbddff2, carry 0x1)/(0x10000001134567890aaccee00234567880bbddff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #1922: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890aaccee00224466870abcdef0, carry 0x1)/(0x10000001234567890aaccee00224466870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #1923: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #1924: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1233d5f8102b4d6e80234567890abcdef0, carry 0x80000000)/(0x800000000000001233d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1925: 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x103355778faaccedff2547698b0cbee0f4, carry 0x100000000)/(0x103355778faaccedff2547698b0cbee0f4, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" - -mbedtls_mpi_core_mla #1926: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1927: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1534567890abcdef01234567890abcdef0, carry 0x0)/(0x1534567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1928: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x11034567890abcdef01234567890abcdef0, carry 0x0)/(0x11034567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1929: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x11134567890abcdef01234567890abcdef0, carry 0x0)/(0x11134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1930: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1001134567890abcdef01234567890abcdef0, carry 0x0)/(0x1001134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1931: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1001234567890abcdef01234567890abcdef0, carry 0x0)/(0x1001234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1932: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1134567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1933: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x1)/(0x10000001234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1934: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f9134567890abcdef01234567890abcdef0, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1935: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef0, carry 0x80000000)/(0x800000000000001234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1936: 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1034567890abcdef01234567890abcdef0, carry 0x100000000)/(0x1034567890abcdef01234567890abcdef0, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" - -mbedtls_mpi_core_mla #1937: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1938: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1939: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1940: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1941: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1942: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1943: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x34567890abcdef01234567890abcdef000000000, carry 0x12)/(0x1234567890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1944: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x345678a2e0246791cf13568a2e0246790abcdef0, carry 0x12)/(0x12345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1945: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x82bde7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd)/(0x1107edbd82bde7822cd7822779b45e7819bc7034ba188800, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1946: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x55e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c48)/(0x1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1947: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xabcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890)/(0x34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x12) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1948: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1949: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdeed, carry 0x3)/(0x1234567890abcdef01234567890abcdeed, carry 0x3) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1950: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcddf2, carry 0xfe)/(0x1234567890abcdef01234567890abcddf2, carry 0xfe) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1951: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcddf1, carry 0xff)/(0x1234567890abcdef01234567890abcddf1, carry 0xff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1952: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abbdef1, carry 0xffff)/(0x1234567890abcdef01234567890abbdef1, carry 0xffff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1953: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abbdef0, carry 0x10000)/(0x1234567890abcdef01234567890abbdef0, carry 0x10000) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1954: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567880abcdef1, carry 0xffffffff)/(0x1234567890abcdef01234567880abcdef1, carry 0xffffffff) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1955: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567880abcdef0, carry 0x100000000)/(0x1234567890abcdef01234567880abcdef0, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1956: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f)/(0x1234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1957: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000)/(0x1234567890abcdef00a34567890abcdef0, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1958: 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe)/(0x1234567890abcdef00234567890abcdef2, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1959: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1960: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1961: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0)/(0x120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1962: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0)/(0x12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1963: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0)/(0x123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1964: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1965: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x1234)/(0x123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1966: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1967: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1968: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1969: 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1970: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1971: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1972: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1973: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1974: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1975: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1976: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1977: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1978: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1979: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1980: 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1981: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1982: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1983: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1984: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1985: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1986: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1987: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1988: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1989: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1990: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1991: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1992: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1993: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 = (0x2, carry 0x1)/(0x2, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1994: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe = (0xfd, carry 0x1)/(0xfd, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1995: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff = (0xfe, carry 0x1)/(0xfe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1996: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff = (0xfffe, carry 0x1)/(0xfffe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1997: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 = (0xffff, carry 0x1)/(0xffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1998: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff = (0xfffffffe, carry 0x1)/(0xfffffffe, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1999: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 = (0xffffffff, carry 0x1)/(0xffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #2000: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e, carry 0x1)/(0x7f7f7f7f7f7f7f7e, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #2001: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 = (0x7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2002: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe = (0xfffffffffffffffd, carry 0x1)/(0xfffffffffffffffd, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #2003: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2004: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 = (0x2fff9, carry 0x1)/(0x2fff9, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #2005: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe = (0xfdfe03, carry 0x1)/(0xfdfe03, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #2006: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff = (0xfefe01, carry 0x1)/(0xfefe01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #2007: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff = (0xfffd0001, carry 0x1)/(0xfffd0001, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #2008: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 = (0xfffdffff, carry 0x1)/(0xfffdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #2009: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff = (0xfffdffff0001, carry 0x1)/(0xfffdffff0001, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #2010: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 = (0xfffdffffffff, carry 0x1)/(0xfffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #2011: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x7f7e8080808080800101, carry 0x1)/(0x7f7e8080808080800101, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" - -mbedtls_mpi_core_mla #2012: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 = (0x7ffeffffffffffffffff, carry 0x1)/(0x7ffeffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2013: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe = (0xfffdfffffffffffe0003, carry 0x1)/(0xfffdfffffffffffe0003, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" - -mbedtls_mpi_core_mla #2014: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2015: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 = (0x2fffffffc, carry 0x1)/(0x2fffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #2016: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe = (0xfdffffff01, carry 0x1)/(0xfdffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #2017: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff = (0xfeffffff00, carry 0x1)/(0xfeffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #2018: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff = (0xfffeffff0000, carry 0x1)/(0xfffeffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #2019: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 = (0xfffffffeffff, carry 0x1)/(0xfffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #2020: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff = (0xfffffffe00000000, carry 0x1)/(0xfffffffe00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #2021: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2022: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7effffffff80808080, carry 0x1)/(0x7f7f7f7effffffff80808080, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" - -mbedtls_mpi_core_mla #2023: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 = (0x7fffffff7fffffffffffffff, carry 0x1)/(0x7fffffff7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2024: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe = (0xfffffffefffffffe00000001, carry 0x1)/(0xfffffffefffffffe00000001, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" - -mbedtls_mpi_core_mla #2025: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2026: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 = (0x2ffffffff, carry 0x1)/(0x2ffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #2027: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe = (0xfdffffffff, carry 0x1)/(0xfdffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #2028: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff = (0xfeffffffff, carry 0x1)/(0xfeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #2029: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff = (0xfffeffffffff, carry 0x1)/(0xfffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #2030: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 = (0xffffffffffff, carry 0x1)/(0xffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #2031: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff = (0xfffffffeffffffff, carry 0x1)/(0xfffffffeffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2032: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 = (0xffffffffffffffff, carry 0x1)/(0xffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2033: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" - -mbedtls_mpi_core_mla #2034: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2035: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffff, carry 0x1)/(0xfffffffffffffffdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" - -mbedtls_mpi_core_mla #2036: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2037: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 = (0x5fffffffffffff, carry 0x1)/(0x5fffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #2038: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe = (0x1fbfffffffffffff, carry 0x1)/(0x1fbfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2039: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff = (0x1fdfffffffffffff, carry 0x1)/(0x1fdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2040: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff = (0x1fffdfffffffffffff, carry 0x1)/(0x1fffdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2041: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 = (0x1fffffffffffffffff, carry 0x1)/(0x1fffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2042: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff = (0x1fffffffdfffffffffffff, carry 0x1)/(0x1fffffffdfffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2043: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 = (0x1fffffffffffffffffffff, carry 0x1)/(0x1fffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2044: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0xfefefefefefefefdfffffffffffff, carry 0x1)/(0xfefefefefefefefdfffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2045: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 = (0xfffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2046: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe = (0x1fffffffffffffffbfffffffffffff, carry 0x1)/(0x1fffffffffffffffbfffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2047: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2048: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 = (0x2fffffffffffffffc, carry 0x1)/(0x2fffffffffffffffc, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" - -mbedtls_mpi_core_mla #2049: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe = (0xfdffffffffffffff01, carry 0x1)/(0xfdffffffffffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2050: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff = (0xfeffffffffffffff00, carry 0x1)/(0xfeffffffffffffff00, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" - -mbedtls_mpi_core_mla #2051: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff = (0xfffeffffffffffff0000, carry 0x1)/(0xfffeffffffffffff0000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" - -mbedtls_mpi_core_mla #2052: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 = (0xfffffffffffffffeffff, carry 0x1)/(0xfffffffffffffffeffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" - -mbedtls_mpi_core_mla #2053: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff = (0xfffffffeffffffff00000000, carry 0x1)/(0xfffffffeffffffff00000000, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" - -mbedtls_mpi_core_mla #2054: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 = (0xfffffffffffffffeffffffff, carry 0x1)/(0xfffffffffffffffeffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2055: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1)/(0x7f7f7f7f7f7f7f7e8080808080808080, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" - -mbedtls_mpi_core_mla #2056: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 = (0x7fffffffffffffff7fffffffffffffff, carry 0x1)/(0x7fffffffffffffff7fffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2057: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe = (0xfffffffffffffffd0000000000000001, carry 0x1)/(0xfffffffffffffffd0000000000000001, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" - -mbedtls_mpi_core_mla #2058: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2059: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 = (0x2ffffffffffffffff, carry 0x1)/(0x2ffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2060: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe = (0xfdffffffffffffffff, carry 0x1)/(0xfdffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2061: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff = (0xfeffffffffffffffff, carry 0x1)/(0xfeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2062: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff = (0xfffeffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2063: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 = (0xffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2064: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2065: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 = (0xffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2066: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2067: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2068: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2069: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2070: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 = (0x369d0369b20369ccf, carry 0x1)/(0x369d0369b20369ccf, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2071: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe = (0x120fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a765321f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2072: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff = (0x12222222181b222110f, carry 0x1)/(0x12222222181b222110f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" - -mbedtls_mpi_core_mla #2073: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff = (0x123444443a333d433210f, carry 0x1)/(0x123444443a333d433210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2074: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdeefffff, carry 0x1)/(0x1234567890abcdeefffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2075: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff = (0x123456787e7777766f543210f, carry 0x1)/(0x123456787e7777766f543210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2076: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdeefffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2077: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76f67708abaf5ba90f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2078: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f77ffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2079: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedb97530edea86421f, carry 0x1)/(0x1234567890abcdeedb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2080: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2081: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1)/(0x2fffffffffffffffffcfcfcfcfcfcfcf9, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" - -mbedtls_mpi_core_mla #2082: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0xfdffffffffffffffff0101010101010003, carry 0x1)/(0xfdffffffffffffffff0101010101010003, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" - -mbedtls_mpi_core_mla #2083: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff = (0xfefffffffffffffffeffffffffffffff01, carry 0x1)/(0xfefffffffffffffffeffffffffffffff01, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2084: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0xfffefffffffffffffefeffffffffffff0101, carry 0x1)/(0xfffefffffffffffffefeffffffffffff0101, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" - -mbedtls_mpi_core_mla #2085: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0xfffffffffffffffffefefefefefefefdffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" - -mbedtls_mpi_core_mla #2086: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0xfffffffefffffffffefefefeffffffff01010101, carry 0x1)/(0xfffffffefffffffffefefefeffffffff01010101, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" - -mbedtls_mpi_core_mla #2087: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1)/(0xfffffffffffffffffefefefefefefefdffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" - -mbedtls_mpi_core_mla #2088: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1)/(0x7f7f7f7f7f7f7f7eff800081018202828504840383028201, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" - -mbedtls_mpi_core_mla #2089: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1)/(0x7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2090: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1)/(0xfffffffffffffffdfefefefefefefefe0202020202020203, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" - -mbedtls_mpi_core_mla #2091: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2092: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 = (0x2ffffffffffffffffffffffffffffffff, carry 0x1)/(0x2ffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2093: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe = (0xfdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfdffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2094: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff = (0xfeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2095: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff = (0xfffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2096: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 = (0xffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2097: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff = (0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffeffffffffffffffffffffffffffffffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2098: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 = (0xffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0xffffffffffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2099: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1)/(0x7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2100: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1)/(0x7fffffffffffffffffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2101: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1)/(0xfffffffffffffffdffffffffffffffffffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2102: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2103: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x369d0369b20369cd0369d0369b20369ccf, carry 0x1)/(0x369d0369b20369cd0369d0369b20369ccf, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2104: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1)/(0x120fedcb9f8a76532320fedcb9f8a765321f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2105: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x12222222181b2221122222222181b222110f, carry 0x1)/(0x12222222181b2221122222222181b222110f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" - -mbedtls_mpi_core_mla #2106: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x123444443a333d433334444443a333d433210f, carry 0x1)/(0x123444443a333d433334444443a333d433210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2107: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdeefffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffff, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2108: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x123456787e7777767077777887e7777766f543210f, carry 0x1)/(0x123456787e7777767077777887e7777766f543210f, carry 0x1) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2109: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1)/(0x1234567890abcdef01234567890abcdeefffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2110: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1)/(0x91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2111: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1)/(0x91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2112: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1)/(0x1234567890abcdeedcba987667b32100edb97530edea86421f, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2113: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2114: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc, carry 0x3) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" - -mbedtls_mpi_core_mla #2115: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, carry 0xfe) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #2116: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00, carry 0xff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #2117: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000, carry 0xffff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #2118: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff, carry 0x10000) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #2119: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000, carry 0xffffffff) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #2120: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000)/(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff, carry 0x100000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #2121: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f)/(0xffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080, carry 0x7f7f7f7f7f7f7f7f) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #2122: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000)/(0xffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff, carry 0x8000000000000000) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #2123: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe)/(0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001, carry 0xfffffffffffffffe) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" - -mbedtls_mpi_core_mla #2124: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2125: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0)/(0x369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #2126: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0)/(0x120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #2127: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0)/(0x12222322181b2221122222222181b2221122222222181b2221122222222181b222110f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" - -mbedtls_mpi_core_mla #2128: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0)/(0x123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" - -mbedtls_mpi_core_mla #2129: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0)/(0x1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" - -mbedtls_mpi_core_mla #2130: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x1234)/(0x123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" - -mbedtls_mpi_core_mla #2131: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x1234)/(0x1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #2132: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x91107edbd82)/(0x7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #2133: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a2b3c4855)/(0x2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #2134: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234567890ab)/(0x567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #2135: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0)/(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2136: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #2137: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #2138: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #2139: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #2140: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff, carry 0x0) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" - -mbedtls_mpi_core_mla #2141: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4, carry 0x4) -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" - -mbedtls_mpi_core_mla #2142: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" - -mbedtls_mpi_core_mla #2143: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #2144: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #2145: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #2146: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2147: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2148: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2149: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2150: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2151: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2152: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2153: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2154: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2155: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2156: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2157: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2158: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #2159: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #2160: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #2161: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #2162: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #2163: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #2164: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #2165: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #2166: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2167: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #2168: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2169: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #2170: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #2171: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #2172: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #2173: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #2174: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #2175: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #2176: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #2177: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2178: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #2179: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2180: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #2181: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #2182: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #2183: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #2184: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #2185: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #2186: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2187: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #2188: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2189: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #2190: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2191: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #2192: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #2193: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #2194: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #2195: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #2196: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2197: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2198: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #2199: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2200: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #2201: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2202: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #2203: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #2204: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #2205: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2206: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2207: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2208: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2209: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #2210: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2211: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #2212: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2213: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2214: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2215: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2216: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2217: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2218: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2219: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2220: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2221: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2222: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #2223: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2224: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2225: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2226: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2227: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2228: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2229: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2230: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2231: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2232: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2233: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2234: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2235: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2236: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #2237: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2238: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2239: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2240: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2241: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2242: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2243: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2244: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2245: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2246: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #2247: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #2248: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2249: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #2250: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #2251: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #2252: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #2253: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #2254: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2255: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0)/(0x1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" - -mbedtls_mpi_core_mla #2256: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2257: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 = (0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2258: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe = (0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2259: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff = (0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2260: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff = (0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2261: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 = (0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2262: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff = (0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2263: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 = (0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2264: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2265: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2266: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2267: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2268: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2269: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0)/(0x1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2270: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2271: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2272: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2273: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0)/(0x1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2274: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0)/(0x1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2275: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0)/(0x1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2276: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0)/(0x1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2277: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0)/(0x1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2278: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2279: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0)/(0x1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2280: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0)/(0x1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2281: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0)/(0x1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2282: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0)/(0x11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2283: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0)/(0x11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2284: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x1)/(0x100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2285: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x1)/(0x100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2286: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x7f7f7f7f)/(0x7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2287: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x80000000)/(0x8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2288: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x100000000)/(0x1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2, carry 0x1) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" - -mbedtls_mpi_core_mla #2289: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2290: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0)/(0x48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2291: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0)/(0x12222222181b2221122222222181b2221122222222181b2221122222222181b2221110, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2292: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2293: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2294: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0)/(0x123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2295: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x1234)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2296: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x1234)/(0x12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2297: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0xbde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x91107edbd82)/(0x7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800, carry 0x911) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #2298: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0xe6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a2b3c4855)/(0x2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0, carry 0x91a) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #2299: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0xcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234567890ab)/(0x567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110, carry 0x1234) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #2300: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0)/(0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2301: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0)/(0xe9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #2302: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0)/(0x4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #2303: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #2304: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0)/(0x4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #2305: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0, carry 0x0) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #2306: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4)/(0xdf72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5, carry 0x4) -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #2307: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #2308: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9)/(0xd441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #2309: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d)/(0xa5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #2310: 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b)/(0x4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #2311: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2312: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2313: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2314: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2315: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2316: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2317: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2318: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2319: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2320: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2321: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2322: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2323: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" - -mbedtls_mpi_core_mla #2324: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" - -mbedtls_mpi_core_mla #2325: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" - -mbedtls_mpi_core_mla #2326: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" - -mbedtls_mpi_core_mla #2327: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" - -mbedtls_mpi_core_mla #2328: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" - -mbedtls_mpi_core_mla #2329: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" - -mbedtls_mpi_core_mla #2330: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" - -mbedtls_mpi_core_mla #2331: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2332: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" - -mbedtls_mpi_core_mla #2333: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2334: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" - -mbedtls_mpi_core_mla #2335: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" - -mbedtls_mpi_core_mla #2336: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" - -mbedtls_mpi_core_mla #2337: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" - -mbedtls_mpi_core_mla #2338: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" - -mbedtls_mpi_core_mla #2339: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" - -mbedtls_mpi_core_mla #2340: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" - -mbedtls_mpi_core_mla #2341: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" - -mbedtls_mpi_core_mla #2342: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2343: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" - -mbedtls_mpi_core_mla #2344: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2345: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" - -mbedtls_mpi_core_mla #2346: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" - -mbedtls_mpi_core_mla #2347: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" - -mbedtls_mpi_core_mla #2348: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" - -mbedtls_mpi_core_mla #2349: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" - -mbedtls_mpi_core_mla #2350: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" - -mbedtls_mpi_core_mla #2351: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2352: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" - -mbedtls_mpi_core_mla #2353: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2354: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" - -mbedtls_mpi_core_mla #2355: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2356: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" - -mbedtls_mpi_core_mla #2357: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" - -mbedtls_mpi_core_mla #2358: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" - -mbedtls_mpi_core_mla #2359: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" - -mbedtls_mpi_core_mla #2360: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" - -mbedtls_mpi_core_mla #2361: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2362: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2363: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" - -mbedtls_mpi_core_mla #2364: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2365: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" - -mbedtls_mpi_core_mla #2366: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2367: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" - -mbedtls_mpi_core_mla #2368: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2369: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2370: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2371: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2372: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2373: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2374: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2375: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2376: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2377: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2378: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" - -mbedtls_mpi_core_mla #2379: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2380: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2381: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2382: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2383: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2384: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2385: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2386: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2387: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2388: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2389: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2390: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2391: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2392: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2393: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2394: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2395: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2396: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2397: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2398: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2399: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2400: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2401: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2402: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2403: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2404: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2405: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2406: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2407: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2408: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2409: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2410: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2411: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" - -mbedtls_mpi_core_mla #2412: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" - -mbedtls_mpi_core_mla #2413: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2414: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" - -mbedtls_mpi_core_mla #2415: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" - -mbedtls_mpi_core_mla #2416: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" - -mbedtls_mpi_core_mla #2417: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" - -mbedtls_mpi_core_mla #2418: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" - -mbedtls_mpi_core_mla #2419: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2420: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" - -mbedtls_mpi_core_mla #2421: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2422: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2423: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2424: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2425: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2426: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2427: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2428: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2429: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2430: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2431: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2432: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2433: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2434: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2435: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2436: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2437: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2438: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2439: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2440: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2441: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2442: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2443: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2444: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" - -mbedtls_mpi_core_mla #2445: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2446: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2447: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2448: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2449: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2450: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2451: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2452: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2453: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2454: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2455: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2456: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2457: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2458: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2459: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2460: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2461: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2462: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2463: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2464: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b, carry 0x0) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2465: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2466: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 = (0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0)/(0x137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" - -mbedtls_mpi_core_mla #2467: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe = (0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0)/(0x4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #2468: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" - -mbedtls_mpi_core_mla #2469: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff = (0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0)/(0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #2470: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 = (0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0)/(0x4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b, carry 0x0) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" - -mbedtls_mpi_core_mla #2471: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff = (0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4)/(0xdf72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000, carry 0x4) -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #2472: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 = (0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4)/(0xdf72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b, carry 0x4) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" - -mbedtls_mpi_core_mla #2473: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f = (0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9)/(0xd441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80, carry 0x26d473ca9) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" - -mbedtls_mpi_core_mla #2474: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 = (0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d)/(0xa5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b, carry 0x26fb9683d) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" - -mbedtls_mpi_core_mla #2475: 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe = (0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b)/(0x4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5, carry 0x4df72d07b) -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" - -mbedtls_mpi_montg_init #1 -mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" - -mbedtls_mpi_montg_init #2 -mpi_montg_init:"0000000000000009":"71c71c71c71c71c7" - -mbedtls_mpi_montg_init #3 -mpi_montg_init:"000000000001869f":"34d76bc8e5e3eaa1" - -mbedtls_mpi_montg_init #4 -mpi_montg_init:"00000000000080000000000000000001":"ffffffffffffffff" - -mbedtls_mpi_montg_init #5 -mpi_montg_init:"0000000000a1ffffffffffffffffffff":"0000000000000001" - -mbedtls_mpi_montg_init #6 -mpi_montg_init:"00000000000257ffffffffffffffffff":"0000000000000001" - -mbedtls_mpi_montg_init #7 -mpi_montg_init:"b91ba63180c726fbd57786f27f1ede97a3b40c59a7fcfb5898f076e9af57028d":"32edc7e1ac2e6fbb" - -mbedtls_mpi_montg_init #8 -mpi_montg_init:"b3a119602ee213cde28581ecd892e0f592a338655dce4ca88054b3d124d0e561":"e41cfb909805815f" - -mbedtls_mpi_montg_init #9 -mpi_montg_init:"0284139ea19c139ebe09a8111926aaa39a2c2be12ed487a809d3cb5bc55854725b4cdcb5734c58f90b2f60d99cc1950cdbc8d651793e93c9c6f0ead752500a32c56c62082912b66132b2a6aa42ada923e1ad22ceb7ba0123":"c02e2164b293c975" - -mbedtls_mpi_montg_init #10 -mpi_montg_init:"00000000000000011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"ffec8978c055794b" - -mbedtls_mpi_montg_init #11 -mpi_montg_init:"eeaf0ab9adb38dd69c33f80afa8fc5e86072618775ff3c0b9ea2314c9c256576d674df7496ea81d3383b4813d692c6e0e0d5d8e250b98be48e495c1d6089dad15dc7d7b46154d6b6ce8ef4ad69b15d4982559b297bcf1885c529f566660e57ec68edbc3c05726cc02fd4cbf4976eaa9afd5138fe8376435b9fc61d2fc0eb06e3":"7b07a0b0379b9135" - -mbedtls_mpi_montg_init #12 -mpi_montg_init:"00000007a364ab3de755f924642bd5273524234f78395da1ed9098f39af4fe248288b0cb7f1c27214588969479d7dc9f0d327b5544dd4c095aa1fa271df421fe9ee460855cc8423d223e2c85dc793f6babdca7fc804ea1f408f867db053bfd98c45085ea5d805c78d2863bacdfcaf4c6147ebb74a9056045074785714c0b84ed":"8f54b233c070871b" - -mbedtls_mpi_montg_init #13 -mpi_montg_init:"e2df85c83ee8463b3af26805791cc0b1ba1af89564e887a63d5ba18ea72fb593b664cf8ace78241ea3109b7644510e02324a5c1e9a85daada3c383759d7678ce8d8886b51a3237dc84b543de4f843c77fc77ba08ef90e7e96ba622478f6b96daa3e9b8511f36279fb0120ef93bad2090e7878346fe4ae29ad61be48b6835e8407d0849422e05c7a4d1e02322f2675056d73d4c5a1ab376bfaccfd61ff7d64b715c9525a7ed8dcda1144f8722c30d12ba3d95221d897edc825a1598a645e2c457":"b777a905d9239899" - -mbedtls_mpi_montg_init #14 -mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e696f8ee9a15497168b3a2b597799dc9475909ebbc64b96f233430c6aa3e4a86e9352b0230081502da09ef41dc0a164a1c6a31bd1338e359a28c78ef50c89f06a46b46a27d7245bba7468334625687201d62ef084de4c5190dfe70c14a318204492de6edd138e14e9337fda739dcadd0212302db7770de28d8c5c79b6a6b5f927e656e157cd7e41204ec39731fe3608ecd4b885a194647fe7f02b74639cc76cdf03":"827ef0810f71fc55" - -mbedtls_mpi_montg_init #15 -mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" - -mbedtls_mpi_core_montmul #1 (replay) -mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" - -mbedtls_mpi_core_montmul #2 (replay) -mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" - -mbedtls_mpi_core_montmul #3 (replay) -mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" - -mbedtls_mpi_core_montmul #4 (replay) -mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87":"36E139AEA55215609D2816998ED020BBBD96C37890F65171D948E9BC7CBAA4D9325D24D6A3C12710F10A09FA08AB87" - -mbedtls_mpi_core_montmul #5 (replay) -mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B":"38EB7749F4A5DA80F23BC08FD0801C55B103B17A2EEF84E60E65383B59F8CA5B" - -mbedtls_mpi_core_montmul #6 (replay) -mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31":"1E4426A3D6C425F0630B14113BEAD742C92B02886267AB41F70C4CB2426AEE1FAACEC6982E0E5BE964ECA2527A031ED49C371DB2A4FB16482F3590C866BF9F81C3D52C7CB9E0BA6FF843ED3B17C44D7F6B14471839D8D31" - -mbedtls_mpi_core_montmul #7 (gen) -mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" - -mbedtls_mpi_core_montmul #8 (gen) -mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" - -mbedtls_mpi_core_montmul #9 (gen) -mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" - -mbedtls_mpi_core_montmul #10 (gen) -mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" - -mbedtls_mpi_core_montmul #11 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" - -mbedtls_mpi_core_montmul #12 (gen) -mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" - -mbedtls_mpi_core_montmul #13 (gen) -mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" - -mbedtls_mpi_core_montmul #14 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" - -mbedtls_mpi_core_montmul #15 (gen) -mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" - -mbedtls_mpi_core_montmul #16 (gen) -mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" - -mbedtls_mpi_core_montmul #17 (gen) -mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" - -mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) -mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" - -mbedtls_mpi_core_montmul #19 (gen) -mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" - -mbedtls_mpi_core_montmul #20 (gen) -mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" - -mbedtls_mpi_core_montmul #21 (gen) -mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" - -mbedtls_mpi_core_montmul #22 (gen) -mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" - -mbedtls_mpi_core_montmul #23 (gen) -mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" - -mbedtls_mpi_core_montmul #24 (gen) -mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" - -mbedtls_mpi_core_montmul #25 (gen) -mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" - -mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) -mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" - -mbedtls_mpi_core_montmul #27 (gen) -mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" - -mbedtls_mpi_core_montmul #28 (gen) -mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" - -mbedtls_mpi_core_montmul #29 (gen) -mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" - -mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) -mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" - -mbedtls_mpi_core_montmul #31 (gen) -mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" - -mbedtls_mpi_core_montmul #32 (gen) -mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" - -mbedtls_mpi_core_montmul #33 (gen) -mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" - -mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) -mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" - -mbedtls_mpi_core_montmul #35 (gen) -mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" - -mbedtls_mpi_core_montmul #36 (gen) -mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" - -mbedtls_mpi_core_montmul #37 (gen) -mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" - -mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) -mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" - -mbedtls_mpi_core_montmul #39 (gen) -mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" - -mbedtls_mpi_core_montmul #40 (gen) -mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" - -mbedtls_mpi_core_montmul #41 (gen) -mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" - -mbedtls_mpi_core_montmul #42 (gen) -mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" - -mbedtls_mpi_core_montmul #43 (gen) -mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" - -mbedtls_mpi_core_montmul #44 (gen) -mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" - -mbedtls_mpi_core_montmul #45 (gen) -mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" - -mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) -mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" - -mbedtls_mpi_core_montmul #47 (gen) -mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" - -mbedtls_mpi_core_montmul #48 (gen) -mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" - -mbedtls_mpi_core_montmul #49 (gen) -mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" - -mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) -mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" - -mbedtls_mpi_core_montmul #51 (gen) -mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" - -mbedtls_mpi_core_montmul #52 (gen) -mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" - -mbedtls_mpi_core_montmul #53 (gen) -mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" - -mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) -mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" - -mbedtls_mpi_core_montmul #55 (gen) -mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" - -mbedtls_mpi_core_montmul #56 (gen) -mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" - -mbedtls_mpi_core_montmul #57 (gen) -mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" - -mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) -mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" - -mbedtls_mpi_core_montmul #59 (gen) -mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" - -mbedtls_mpi_core_montmul #60 (gen) -mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" - -mbedtls_mpi_core_montmul #61 (gen) -mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" - -mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) -mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" - -mbedtls_mpi_core_montmul #63 (gen) -mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" - -mbedtls_mpi_core_montmul #64 (gen) -mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" - -mbedtls_mpi_core_montmul #65 (gen) -mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" - -mbedtls_mpi_core_montmul #66 (gen) (start of 2-MPI 4-byte bignums) (0x10000000F is prime) -mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" - -mbedtls_mpi_core_montmul #67 (gen) -mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" - -mbedtls_mpi_core_montmul #68 (gen) -mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" - -mbedtls_mpi_core_montmul #69 (gen) -mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" - -mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 -mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" - -mbedtls_mpi_core_montmul #71 (gen) -mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" - -mbedtls_mpi_core_montmul #72 (gen) -mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" - -mbedtls_mpi_core_montmul #73 (gen) -mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" - -mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) -mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" - -mbedtls_mpi_core_montmul #75 (gen) -mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" - -mbedtls_mpi_core_montmul #76 (gen) -mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" - -mbedtls_mpi_core_montmul #77 (gen) -mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" - -mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) -mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" - -mbedtls_mpi_core_montmul #79 (gen) -mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" - -mbedtls_mpi_core_montmul #80 (gen) -mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" - -mbedtls_mpi_core_montmul #81 (gen) -mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" - -mbedtls_mpi_core_montmul #82 (gen) -mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" - -mbedtls_mpi_core_montmul #83 (gen) -mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" - -mbedtls_mpi_core_montmul #84 (gen) -mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" - -mbedtls_mpi_core_montmul #85 (gen) -mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" - -mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) -mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" - -mbedtls_mpi_core_montmul #87 (gen) -mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" - -mbedtls_mpi_core_montmul #88 (gen) -mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" - -mbedtls_mpi_core_montmul #89 (gen) -mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" - -mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) -mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" - -mbedtls_mpi_core_montmul #91 (gen) -mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" - -mbedtls_mpi_core_montmul #92 (gen) -mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" - -mbedtls_mpi_core_montmul #93 (gen) -mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" - -mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) -mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" - -mbedtls_mpi_core_montmul #95 (gen) -mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" - -mbedtls_mpi_core_montmul #96 (gen) -mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" - -mbedtls_mpi_core_montmul #97 (gen) -mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" - -mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) -mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" - -mbedtls_mpi_core_montmul #99 (gen) -mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" - -mbedtls_mpi_core_montmul #100 (gen) -mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" - -mbedtls_mpi_core_montmul #101 (gen) -mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" - -mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) -mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" - -mbedtls_mpi_core_montmul #103 (gen) -mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" - -mbedtls_mpi_core_montmul #104 (gen) -mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" - -mbedtls_mpi_core_montmul #105 (gen) -mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" - -mbedtls_mpi_core_montmul #106 (gen) -mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" - -mbedtls_mpi_core_montmul #107 (gen) -mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" - -mbedtls_mpi_core_montmul #108 (gen) -mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" - -mbedtls_mpi_core_montmul #109 (gen) -mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" - -mbedtls_mpi_core_montmul #110 (gen) (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime (dec) 11111111111111111111111 -mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" - -mbedtls_mpi_core_montmul #111 (gen) -mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" - -mbedtls_mpi_core_montmul #112 (gen) -mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" - -mbedtls_mpi_core_montmul #113 (gen) -mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" - -mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 -mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" - -mbedtls_mpi_core_montmul #115 (gen) -mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" - -mbedtls_mpi_core_montmul #116 (gen) -mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" - -mbedtls_mpi_core_montmul #117 (gen) -mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" - -mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 -mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" - -mbedtls_mpi_core_montmul #119 (gen) -mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" - -mbedtls_mpi_core_montmul #120 (gen) -mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" - -mbedtls_mpi_core_montmul #121 (gen) -mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" - -mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 -mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" - -mbedtls_mpi_core_montmul #123 (gen) -mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" - -mbedtls_mpi_core_montmul #124 (gen) -mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" - -mbedtls_mpi_core_montmul #125 (gen) -mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" - -mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 -mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" - -mbedtls_mpi_core_montmul #127 (gen) -mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" - -mbedtls_mpi_core_montmul #128 (gen) -mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" - -mbedtls_mpi_core_montmul #129 (gen) -mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" - -mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 -mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" - -mbedtls_mpi_core_montmul #131 (gen) -mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" - -mbedtls_mpi_core_montmul #132 (gen) -mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" - -mbedtls_mpi_core_montmul #133 (gen) -mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" - -mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 -mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" - -mbedtls_mpi_core_montmul #135 (gen) -mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" - -mbedtls_mpi_core_montmul #136 (gen) -mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" - -mbedtls_mpi_core_montmul #137 (gen) -mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" - -mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 -mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" - -mbedtls_mpi_core_montmul #139 (gen) -mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" - -mbedtls_mpi_core_montmul #140 (gen) -mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" - -mbedtls_mpi_core_montmul #141 (gen) -mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" MPI Selftest depends_on:MBEDTLS_SELF_TEST diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index b699f9c04..6d046f196 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1,7 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" -#include "bignum_core.h" #include "bignum_mod.h" #include "bignum_mod_raw.h" #include "constant_time_internal.h" @@ -201,149 +200,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_io_null() -{ - mbedtls_mpi_uint X = 0; - int ret; - - ret = mbedtls_mpi_core_read_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - - ret = mbedtls_mpi_core_read_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - -exit: - ; -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_be( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - -exit: - ; -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_le( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - -exit: - ; -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) { @@ -741,33 +597,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) -{ - mbedtls_mpi_uint *X = NULL; - size_t X_limbs; - mbedtls_mpi_uint *Y = NULL; - size_t Y_limbs; - int ret; - - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); - - /* We need two same-length limb arrays */ - TEST_EQUAL( X_limbs, Y_limbs ); - - TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); - - ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); - TEST_EQUAL( ret, exp_ret ); - -exit: - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_core_cond_assign( data_t * input_X, data_t * input_Y, @@ -2035,457 +1864,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_add_if( char * input_A, char * input_B, - char * input_S4, int carry4, - char * input_S8, int carry8 ) -{ - mbedtls_mpi S4, S8, A, B; - mbedtls_mpi_uint *a = NULL; /* first value to add */ - mbedtls_mpi_uint *b = NULL; /* second value to add */ - mbedtls_mpi_uint *sum = NULL; - mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S4 ); - mbedtls_mpi_init( &S8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); - - /* We only need to work with one of (S4, carry4) or (S8, carry8) depending - * on sizeof(mbedtls_mpi_uint) - */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; - mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X->s ); - - /* Test cases are such that A <= B, so #limbs should be <= */ - TEST_LE_U( A.n, B.n ); - TEST_LE_U( X->n, B.n ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which - * must be the same size. The MPIs we've read in will only have arrays - * large enough for the number they represent. Therefore we create new - * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've - * just read in. - * - * We generated test data such that B was always >= A, so that's how many - * limbs each of these need. - */ - size_t limbs = B.n; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( sum, bytes ); - ASSERT_ALLOC( d, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* The test cases have a <= b to avoid repetition, so we test a + b then, - * if a != b, b + a. If a == b, we can test when a and b are aliased */ - - /* a + b */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, a, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, a, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); - - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - /* a == b, so test where a and b are aliased */ - - /* cond = 0 => d unchanged, no carry */ - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); - ASSERT_COMPARE( b, bytes, B.p, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); - ASSERT_COMPARE( b, bytes, sum, bytes ); - } - else - { - /* a != b, so test b + a */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, b, bytes ); - - /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( sum ); - mbedtls_free( d ); - - mbedtls_mpi_free( &S4 ); - mbedtls_mpi_free( &S8 ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_sub( char * input_A, char * input_B, - char * input_X4, char * input_X8, - int carry ) -{ - mbedtls_mpi A, B, X4, X8; - mbedtls_mpi_uint *a = NULL; - mbedtls_mpi_uint *b = NULL; - mbedtls_mpi_uint *x = NULL; /* expected */ - mbedtls_mpi_uint *r = NULL; /* result */ - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X4.s ); - TEST_EQUAL( 1, X8.s ); - - /* Get the number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - - /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( x, bytes ); - ASSERT_ALLOC( r, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_sub()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* 1a) r = a - b => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); - - /* 1b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 2 and 3 test "r may be aliased to a or b" */ - /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ - memcpy( r, a, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); - - /* 2b) r -= b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); - - /* 3b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); - - /* 4 tests "r may be aliased to [...] both" */ - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); - ASSERT_COMPARE( r, bytes, x, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( x ); - mbedtls_free( r ); - - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_mla( char * input_A, char * input_B, char * input_S, - char * input_X4, char * input_cy4, - char * input_X8, char * input_cy8 ) -{ - /* We are testing A += B * s; A, B are MPIs, s is a scalar. - * - * However, we encode s as an MPI in the .data file as the test framework - * currently only supports `int`-typed scalars, and that doesn't cover the - * full range of `mbedtls_mpi_uint`. - * - * We also have the different results for sizeof(mbedtls_mpi_uint) == 4 or 8. - */ - mbedtls_mpi A, B, S, X4, X8, cy4, cy8; - mbedtls_mpi_uint *a = NULL; - mbedtls_mpi_uint *x = NULL; - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); - mbedtls_mpi_init( &cy4 ); - mbedtls_mpi_init( &cy8 ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); - - /* The MPI encoding of scalar s must be only 1 limb */ - TEST_EQUAL( 1, S.n ); - - /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; - - /* The carry should only have one limb */ - TEST_EQUAL( 1, cy->n ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, S.s ); - TEST_EQUAL( 1, X->s ); - TEST_EQUAL( 1, cy->s ); - - /* Get the (max) number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); - - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( x, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_mla()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); - - /* 1a) A += B * s => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); - - /* 1b) A += B * s => we should get the correct result */ - ASSERT_COMPARE( a, bytes, x, bytes ); - - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - /* Check when A and B are aliased */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); - ASSERT_COMPARE( a, bytes, x, bytes ); - } - -exit: - mbedtls_free( a ); - mbedtls_free( x ); - - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &S ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &cy4 ); - mbedtls_mpi_free( &cy8 ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_montg_init( char * input_N, char * input_mm ) -{ - mbedtls_mpi N, mm; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &mm ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); - - /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or - * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). - * - * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; - * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. - */ - TEST_ASSERT( mm.n == 1 || mm.n == 2 ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, mm.s ); - - /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ - mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); - - /* Check we got the correct result */ - TEST_EQUAL( result, mm.p[0] ); - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &mm ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_montmul( int limbs_AN4, int limbs_B4, - int limbs_AN8, int limbs_B8, - char * input_A, - char * input_B, - char * input_N, - char * input_X4, - char * input_X8 ) -{ - mbedtls_mpi A, B, N, X4, X8, T, R; - - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ - mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ - mbedtls_mpi_init( &T ); - mbedtls_mpi_init( &R ); /* for the result */ - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - - int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; - int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; - - TEST_LE_U( A.n, (size_t)limbs_AN ); - TEST_LE_U( X->n, (size_t)limbs_AN ); - TEST_LE_U( B.n, (size_t)limbs_B ); - TEST_LE_U( limbs_B, limbs_AN ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, X->s ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); - - /* Calculate the Montgomery constant (this is unit tested separately) */ - mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); - - TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ - - mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - size_t bytes = N.n * sizeof(mbedtls_mpi_uint); - ASSERT_COMPARE( R.p, bytes, X->p, bytes ); - - /* The output (R, above) may be aliased to A - use R to save the value of A */ - - memcpy( R.p, A.p, bytes ); - - mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( A.p, bytes, X->p, bytes ); - - memcpy( A.p, R.p, bytes ); /* restore A */ - - /* The output may be aliased to N - use R to save the value of N */ - - memcpy( R.p, N.p, bytes ); - - mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( N.p, bytes, X->p, bytes ); - - memcpy( N.p, R.p, bytes ); - - if (limbs_AN == limbs_B) - { - /* Test when A aliased to B (requires A == B on input values) */ - if ( memcmp( A.p, B.p, bytes ) == 0 ) - { - /* Test with A aliased to B and output, since this is permitted - - * don't bother with yet another test with only A and B aliased */ - - mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); - - memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ - } - - /* The output may be aliased to B - last test, so we don't save B */ - - mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); - } - -exit: - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &T ); - mbedtls_mpi_free( &R ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { From c9b6a0aef9446116287ff3d12cf979920db34734 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 12:56:54 +0100 Subject: [PATCH 0394/1574] Move bignum_mod_raw tests into separate files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod_raw.data | 141 +++++++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 108 +++++++++++++ tests/suites/test_suite_mpi.data | 144 ------------------ tests/suites/test_suite_mpi.function | 97 ------------ 4 files changed, 249 insertions(+), 241 deletions(-) create mode 100644 tests/suites/test_suite_bignum_mod_raw.data create mode 100644 tests/suites/test_suite_bignum_mod_raw.function diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data new file mode 100644 index 000000000..6b5bb645e --- /dev/null +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -0,0 +1,141 @@ +Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes) +mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #11 BE (Zero) +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #11 LE (Zero) +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output) +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output) +mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 BE (One) +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 LE (One) +mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 BE (One limb) +mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #14 LE (One limb) +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #15 BE (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #15 LE (One limb) +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #16 BE (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +Test mbedtls_mpi_mod_raw_io #16 LE (One limb) +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 + +Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 + +Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned) +mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL + +Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input) +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input) +mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 + +Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) +mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function new file mode 100644 index 000000000..76574752b --- /dev/null +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -0,0 +1,108 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_mod_raw.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, + int iendian, int iret, int oret ) +{ + if( iret != 0 ) + TEST_ASSERT( oret == 0 ); + + TEST_LE_S( 0, nb_int ); + size_t nb = nb_int; + + unsigned char buf[1024]; + TEST_LE_U( nb, sizeof( buf ) ); + + /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need + * to halve the number of limbs to have the same size. */ + size_t nx; + TEST_LE_S( 0, nx_32_int ); + if( sizeof( mbedtls_mpi_uint ) == 8 ) + nx = nx_32_int / 2 + nx_32_int % 2; + else + nx = nx_32_int; + + mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; + TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); + + int endian; + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) + endian = MBEDTLS_MPI_MOD_EXT_REP_LE; + else + endian = iendian; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; + memset( init, 0xFF, sizeof( init ) ); + int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ); + TEST_EQUAL( ret, 0 ); + + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) + m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + + ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len ); + TEST_EQUAL( ret, iret ); + + if( iret == 0 ) + { + if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) + m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + + ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb ); + TEST_EQUAL( ret, oret ); + } + + if( ( iret == 0 ) && ( oret == 0 ) ) + { + if( nb > input->len ) + { + if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) + { + size_t leading_zeroes = nb - input->len; + TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); + for( size_t i = input->len; i < nb; i++ ) + TEST_EQUAL( buf[i], 0 ); + } + } + else + { + if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) + { + size_t leading_zeroes = input->len - nb; + TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); + for( size_t i = 0; i < leading_zeroes; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + else + { + TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); + for( size_t i = nb; i < input->len; i++ ) + TEST_EQUAL( input->x[i], 0 ); + } + } + } + +exit: + mbedtls_mpi_mod_modulus_free( &m ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 4acb41f94..f530213ad 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,149 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #1 BE (Buffer and limbs just fit, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #1 LE (Buffer and limbs just fit, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #2 BE (Buffer and limbs just fit, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #2 LE (Buffer and limbs just fit, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #3 BE (Buffer just fits, extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #3 LE (Buffer just fits, extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #4 BE (Buffer just fits, extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #4 LE (Buffer just fits, extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #5 BE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #5 LE (Extra limbs, buffer aligned to extra limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #6 BE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #6 LE (Extra limbs, buffer aligned to extra limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":112:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #7 BE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #7 LE (Buffer and limbs just fit, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #8 BE (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #8 LE (Buffer and limbs just fit, input unaligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #9 BE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":88:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #9 LE (Buffer just fits, extra limbs, input limb-aligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b44240000000000000000":88:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #10 BE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_mod_raw_io:"00000000000000001fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":86:28:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #10 LE (Buffer just fits, extra limbs, input unaligned with leading zeroes) -mpi_mod_raw_io:"1fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b0000000000000000":86:28:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #11 BE (Zero) -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #11 LE (Zero) -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #12 BE (Zero, empty output) -mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #12 LE (Zero, empty output) -mpi_mod_raw_io:"00":0:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #13 BE (Zero, empty input) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #13 LE (Zero, empty input) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 BE (One) -mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 LE (One) -mpi_mod_raw_io:"01":1:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 BE (One limb) -mpi_mod_raw_io:"ff00000000000000":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #14 LE (One limb) -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #15 BE (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #15 LE (One limb) -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_io:"000000ff":4:1:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #16 BE (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 - -Test mbedtls_mpi_mod_raw_io #16 LE (One limb) -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_io:"00000000000000ff":8:2:MBEDTLS_MPI_MOD_EXT_REP_LE:0:0 - -Test mbedtls_mpi_mod_raw_io #17 BE (not enough limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #17 LE (not enough limbs, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":96:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #18 BE (not enough limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #18 LE (not enough limbs, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":94:22:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL:0 - -Test mbedtls_mpi_mod_raw_io #19 BE (buffer too small, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #19 LE (buffer too small, input limb-aligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":95:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #20 BE (buffer too small, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_BE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #20 LE (buffer too small, input unaligned) -mpi_mod_raw_io:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b":93:24:MBEDTLS_MPI_MOD_EXT_REP_LE:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL - -Test mbedtls_mpi_mod_raw_io #21 BE (modulus is equal to input) -mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #21 LE (modulus is equal to input) -mpi_mod_raw_io:"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF":1024:256:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #22 (reading with invalid endianness) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA:0 - -Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) -mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - Test mbedtls_mpi_mod_setup #1 (Both representations invalid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA @@ -2177,7 +2034,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 6d046f196..ca30d18ab 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -2,7 +2,6 @@ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" #include "bignum_mod.h" -#include "bignum_mod_raw.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -228,102 +227,6 @@ exit: } /* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, - int iendian, int iret, int oret ) -{ - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); - - TEST_LE_S( 0, nb_int ); - size_t nb = nb_int; - - unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); - - /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need - * to halve the number of limbs to have the same size. */ - size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) - nx = nx_32_int / 2 + nx_32_int % 2; - else - nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int endian; - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) - endian = MBEDTLS_MPI_MOD_EXT_REP_LE; - else - endian = iendian; - - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); - mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; - memset( init, 0xFF, sizeof( init ) ); - int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ); - TEST_EQUAL( ret, 0 ); - - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb ); - TEST_EQUAL( ret, oret ); - } - - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - } - else - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); - } - } - } - -exit: - mbedtls_mpi_mod_modulus_free( &m ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_read_binary_le( data_t * buf, char * input_A ) { From 0c6ea12145c127a18bf3fb059a53e9cf176e408a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 13:02:16 +0100 Subject: [PATCH 0395/1574] Move bignum_mod tests into separate files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.data | 86 +++++++++++++++++ tests/suites/test_suite_bignum_mod.function | 100 ++++++++++++++++++++ tests/suites/test_suite_mpi.data | 87 ----------------- tests/suites/test_suite_mpi.function | 75 --------------- 4 files changed, 186 insertions(+), 162 deletions(-) create mode 100644 tests/suites/test_suite_bignum_mod.data create mode 100644 tests/suites/test_suite_bignum_mod.function diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data new file mode 100644 index 000000000..c76dad8f8 --- /dev/null +++ b/tests/suites/test_suite_bignum_mod.data @@ -0,0 +1,86 @@ +Test mbedtls_mpi_mod_setup #1 (Both representations invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #4 (External representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #5 (External representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mbedtls_mpi_mod_setup #6 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 + +Test mbedtls_mpi_mod_setup #7 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +Test mbedtls_mpi_mod_setup #8 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 + +Test mbedtls_mpi_mod_setup #9 (Both representations valid) +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +Base test mbedtls_mpi_mod_mpi #1 +mpi_mod_mpi:"3e8":"d":"c":0 + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) +mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) +mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #3 +mpi_mod_mpi:"-3e8":"d":"1":0 + +Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) +mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) +mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_mpi: 0 (null) % 1 +mpi_mod_mpi:"":"1":"":0 + +Test mbedtls_mpi_mod_mpi: 0 (null) % -1 +mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #1 +mpi_mod_int:"3e8":13:12:0 + +Base test mbedtls_mpi_mod_int #2 (Divide by zero) +mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_int #3 +mpi_mod_int:"-3e8":13:1:0 + +Base test mbedtls_mpi_mod_int #4 (Negative modulo) +mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #5 (Negative modulo) +mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #6 (By 1) +mpi_mod_int:"3e8":1:0:0 + +Base test mbedtls_mpi_mod_int #7 (By 2) +mpi_mod_int:"3e9":2:1:0 + +Base test mbedtls_mpi_mod_int #8 (By 2) +mpi_mod_int:"3e8":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 1 +mpi_mod_int:"":1:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 2 +mpi_mod_int:"":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % -1 +mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_int: 0 (null) % -2 +mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function new file mode 100644 index 000000000..154362306 --- /dev/null +++ b/tests/suites/test_suite_bignum_mod.function @@ -0,0 +1,100 @@ +/* BEGIN_HEADER */ +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_mod.h" +#include "constant_time_internal.h" +#include "test/constant_flow.h" + +/* Check the validity of the sign bit in an MPI object. Reject representations + * that are not supported by the rest of the library and indicate a bug when + * constructing the value. */ +static int sign_is_valid( const mbedtls_mpi *X ) +{ + if( X->s != 1 && X->s != -1 ) + return( 0 ); // invalid sign bit, e.g. 0 + if( mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) + return( 0 ); // negative zero + return( 1 ); +} + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_mod_setup( int ext_rep, int int_rep, int iret ) +{ + #define MLIMBS 8 + mbedtls_mpi_uint mp[MLIMBS]; + mbedtls_mpi_mod_modulus m; + int ret; + + memset( mp, 0xFF, sizeof(mp) ); + + mbedtls_mpi_mod_modulus_init( &m ); + ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); + TEST_EQUAL( ret, iret ); + + /* Address sanitiser should catch if we try to free mp */ + mbedtls_mpi_mod_modulus_free( &m ); + + /* Make sure that the modulus doesn't have reference to mp anymore */ + TEST_ASSERT( m.p != mp ); + +exit: + /* It should be safe to call an mbedtls free several times */ + mbedtls_mpi_mod_modulus_free( &m ); + + #undef MLIMBS +} +/* END_CASE */ + + +/* BEGIN_CASE */ +void mpi_mod_mpi( char * input_X, char * input_Y, + char * input_A, int div_result ) +{ + mbedtls_mpi X, Y, A; + int res; + mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + } + +exit: + mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_int( char * input_X, int input_Y, + int input_A, int div_result ) +{ + mbedtls_mpi X; + int res; + mbedtls_mpi_uint r; + mbedtls_mpi_init( &X ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + res = mbedtls_mpi_mod_int( &r, &X, input_Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + } + +exit: + mbedtls_mpi_free( &X ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index f530213ad..fca63372a 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -82,33 +82,6 @@ mpi_read_write_string:16:"":2:"0":4:0:0 Test mpi_write_string #10 (Negative hex with odd number of digits) mpi_read_write_string:16:"-1":16:"":3:0:MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL -Test mbedtls_mpi_mod_setup #1 (Both representations invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #4 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #5 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #6 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #7 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - -Test mbedtls_mpi_mod_setup #8 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #9 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - Base test mbedtls_mpi_read_binary #1 mpi_read_binary:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":"0941379D00FED1491FE15DF284DFDE4A142F68AA8D412023195CEE66883E6290FFE703F4EA5963BF212713CEE46B107C09182B5EDCD955ADAC418BF4918E2889AF48E1099D513830CEC85C26AC1E158B52620E33BA8692F893EFBB2F958B4424" @@ -1312,66 +1285,6 @@ mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (null) / 1 mpi_div_int:"":1:"":"":0 -Base test mbedtls_mpi_mod_mpi #1 -mpi_mod_mpi:"3e8":"d":"c":0 - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) -mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) -mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #3 -mpi_mod_mpi:"-3e8":"d":"1":0 - -Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) -mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) -mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_mpi: 0 (null) % 1 -mpi_mod_mpi:"":"1":"":0 - -Test mbedtls_mpi_mod_mpi: 0 (null) % -1 -mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 - -Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 - -Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 - -Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 - -Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index ca30d18ab..c26766b2c 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1,7 +1,6 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" -#include "bignum_mod.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -199,34 +198,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_mod_setup( int ext_rep, int int_rep, int iret ) -{ - #define MLIMBS 8 - mbedtls_mpi_uint mp[MLIMBS]; - mbedtls_mpi_mod_modulus m; - int ret; - - memset( mp, 0xFF, sizeof(mp) ); - - mbedtls_mpi_mod_modulus_init( &m ); - ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); - TEST_EQUAL( ret, iret ); - - /* Address sanitiser should catch if we try to free mp */ - mbedtls_mpi_mod_modulus_free( &m ); - - /* Make sure that the modulus doesn't have reference to mp anymore */ - TEST_ASSERT( m.p != mp ); - -exit: - /* It should be safe to call an mbedtls free several times */ - mbedtls_mpi_mod_modulus_free( &m ); - - #undef MLIMBS -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_read_binary_le( data_t * buf, char * input_A ) { @@ -1287,52 +1258,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) -{ - mbedtls_mpi X, Y, A; - int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - } - -exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) -{ - mbedtls_mpi X; - int res; - mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); - } - -exit: - mbedtls_mpi_free( &X ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_exp_mod( char * input_A, char * input_E, char * input_N, char * input_X, From 99e8178fa7de07bfaccf5bab60a6849c0897282c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:28:43 +0100 Subject: [PATCH 0396/1574] Add module for bignum_core test generation Separate file is added for classes used to generate cases for tests in bignum_core.function. Common elements of the BignumOperation class are added to classes in a new common file, for use across files. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 111 ++++++++++++++++++++ scripts/mbedtls_dev/bignum_core.py | 72 +++++++++++++ scripts/mbedtls_dev/test_data_generation.py | 1 + tests/CMakeLists.txt | 2 + tests/Makefile | 2 + tests/scripts/generate_bignum_tests.py | 86 +++------------ 6 files changed, 203 insertions(+), 71 deletions(-) create mode 100644 scripts/mbedtls_dev/bignum_common.py create mode 100644 scripts/mbedtls_dev/bignum_core.py diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py new file mode 100644 index 000000000..b20fe815d --- /dev/null +++ b/scripts/mbedtls_dev/bignum_common.py @@ -0,0 +1,111 @@ +"""Common features for bignum in test generation framework.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import itertools +import typing + +from abc import abstractmethod +from typing import Iterator, List, Tuple, TypeVar + +T = TypeVar('T') #pylint: disable=invalid-name + +def hex_to_int(val: str) -> int: + return int(val, 16) if val else 0 + +def quote_str(val) -> str: + return "\"{}\"".format(val) + +def bound_mpi8(val: int) -> int: + """First number exceeding 8-byte limbs needed for given input value.""" + return bound_mpi8_limbs(limbs_mpi8(val)) + +def bound_mpi4(val: int) -> int: + """First number exceeding 4-byte limbs needed for given input value.""" + return bound_mpi4_limbs(limbs_mpi4(val)) + +def bound_mpi8_limbs(limbs: int) -> int: + """First number exceeding maximum of given 8-byte limbs.""" + bits = 64 * limbs + return 1 << bits + +def bound_mpi4_limbs(limbs: int) -> int: + """First number exceeding maximum of given 4-byte limbs.""" + bits = 32 * limbs + return 1 << bits + +def limbs_mpi8(val: int) -> int: + """Return the number of 8-byte limbs required to store value.""" + return (val.bit_length() + 63) // 64 + +def limbs_mpi4(val: int) -> int: + """Return the number of 4-byte limbs required to store value.""" + return (val.bit_length() + 31) // 32 + +def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: + """Return all pair combinations from input values. + + The return value is cast, as older versions of mypy are unable to derive + the specific type returned by itertools.combinations_with_replacement. + """ + return typing.cast( + List[Tuple[T, T]], + list(itertools.combinations_with_replacement(values, 2)) + ) + + +class OperationCommon: + """Common features for bignum binary operations. + + This adds functionality common in binary operation tests. + + Attributes: + symbol: Symbol to use for the operation in case description. + input_values: List of values to use as test case inputs. These are + combined to produce pairs of values. + input_cases: List of tuples containing pairs of test case inputs. This + can be used to implement specific pairs of inputs. + """ + symbol = "" + input_values = [] # type: List[str] + input_cases = [] # type: List[Tuple[str, str]] + + def __init__(self, val_a: str, val_b: str) -> None: + self.arg_a = val_a + self.arg_b = val_b + self.int_a = hex_to_int(val_a) + self.int_b = hex_to_int(val_b) + + def arguments(self) -> List[str]: + return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + + @abstractmethod + def result(self) -> str: + """Get the result of the operation. + + This could be calculated during initialization and stored as `_result` + and then returned, or calculated when the method is called. + """ + raise NotImplementedError + + @classmethod + def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: + """Generator to yield pairs of inputs. + + Combinations are first generated from all input values, and then + specific cases provided. + """ + yield from combination_pairs(cls.input_values) + yield from cls.input_cases diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py new file mode 100644 index 000000000..b30f8581a --- /dev/null +++ b/scripts/mbedtls_dev/bignum_core.py @@ -0,0 +1,72 @@ +"""Framework classes for generation of bignum core test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from abc import ABCMeta +from typing import Iterator + +from . import test_case +from . import test_data_generation +from . import bignum_common + + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum core test case generation.""" + target_basename = 'test_suite_bignum_core.generated' + + +class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Common features for bignum core operations.""" + input_values = [ + "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", + "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", + "8000000000000000", "fefefefefefefefe", "fffffffffffffffe", + "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", + "fffffffffffffffffefefefefefefefe", "fffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffff", "100000000000000000000000000000000", + "1234567890abcdef01234567890abcdef0", + "fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "10000000000000000000000000000000000000000000000000000000000000000", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029" + "643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947" + "c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0" + "cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b" + ) + ] + + def description(self) -> str: + """Generate a description for the test case. + + If not set, case_description uses the form A `symbol` B, where symbol + is used to represent the operation. Descriptions of each value are + generated to provide some context to the test case. + """ + if not self.case_description: + self.case_description = "{} {} {}".format( + self.arg_a, self.symbol, self.arg_b + ) + return super().description() + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value).create_test_case() + diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index cdb1c03b8..eec0f9d97 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -148,6 +148,7 @@ class TestGenerator: self.targets.update({ subclass.target_basename: subclass.generate_tests for subclass in BaseTarget.__subclasses__() + if subclass.target_basename }) def filename_for(self, basename: str) -> str: diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d89542a44..c23cb6b3d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -68,6 +68,8 @@ if(GEN_FILES) --directory ${CMAKE_CURRENT_BINARY_DIR}/suites DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_common.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index 57f885544..7c08f54e1 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -92,6 +92,8 @@ generated_files: $(GENERATED_FILES) .SECONDARY: generated_bignum_test_data generated_psa_test_data $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_core.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 7f332dca0..1eec27b10 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -54,34 +54,19 @@ of BaseTarget in test_data_generation.py. # See the License for the specific language governing permissions and # limitations under the License. -import itertools import sys -import typing -from abc import ABCMeta, abstractmethod -from typing import Iterator, List, Tuple, TypeVar +from abc import ABCMeta +from typing import Iterator import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case from mbedtls_dev import test_data_generation - -T = TypeVar('T') #pylint: disable=invalid-name - -def hex_to_int(val: str) -> int: - return int(val, 16) if val else 0 - -def quote_str(val) -> str: - return "\"{}\"".format(val) - -def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: - """Return all pair combinations from input values.""" - # The return value is cast, as older versions of mypy are unable to derive - # the specific type returned by itertools.combinations_with_replacement. - return typing.cast( - List[Tuple[T, T]], - list(itertools.combinations_with_replacement(values, 2)) - ) - +from mbedtls_dev import bignum_common +# Import modules containing additional test classes +# Test function classes in these modules will be registered by +# the framework +from mbedtls_dev import bignum_core # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -89,36 +74,14 @@ class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): target_basename = 'test_suite_mpi.generated' -class BignumOperation(BignumTarget, metaclass=ABCMeta): - """Common features for bignum binary operations. - - This adds functionality common in binary operation tests. This includes - generation of case descriptions, using descriptions of values and symbols - to represent the operation or result. - - Attributes: - symbol: Symbol used for the operation in case description. - input_values: List of values to use as test case inputs. These are - combined to produce pairs of values. - input_cases: List of tuples containing pairs of test case inputs. This - can be used to implement specific pairs of inputs. - """ - symbol = "" +class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Common features for bignum operations in legacy tests.""" input_values = [ "", "0", "7b", "-7b", "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" - ] # type: List[str] - input_cases = [] # type: List[Tuple[str, str]] - - def __init__(self, val_a: str, val_b: str) -> None: - self.arg_a = val_a - self.arg_b = val_b - self.int_a = hex_to_int(val_a) - self.int_b = hex_to_int(val_b) - - def arguments(self) -> List[str]: - return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + ] def description(self) -> str: """Generate a description for the test case. @@ -135,15 +98,6 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): ) return super().description() - @abstractmethod - def result(self) -> str: - """Get the result of the operation. - - This could be calculated during initialization and stored as `_result` - and then returned, or calculated when the method is called. - """ - raise NotImplementedError - @staticmethod def value_description(val) -> str: """Generate a description of the argument val. @@ -167,21 +121,10 @@ class BignumOperation(BignumTarget, metaclass=ABCMeta): tmp = "large " + tmp return tmp - @classmethod - def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: - """Generator to yield pairs of inputs. - - Combinations are first generated from all input values, and then - specific cases provided. - """ - yield from combination_pairs(cls.input_values) - yield from cls.input_cases - @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for a_value, b_value in cls.get_value_pairs(): - cur_op = cls(a_value, b_value) - yield cur_op.create_test_case() + yield cls(a_value, b_value).create_test_case() class BignumCmp(BignumOperation): @@ -221,7 +164,7 @@ class BignumAdd(BignumOperation): symbol = "+" test_function = "mpi_add_mpi" test_name = "MPI add" - input_cases = combination_pairs( + input_cases = bignum_common.combination_pairs( [ "1c67967269c6", "9cde3", "-1c67967269c6", "-9cde3", @@ -229,7 +172,8 @@ class BignumAdd(BignumOperation): ) def result(self) -> str: - return quote_str("{:x}".format(self.int_a + self.int_b)) + return bignum_common.quote_str("{:x}").format(self.int_a + self.int_b) + if __name__ == '__main__': # Use the section of the docstring relevant to the CLI as description From ce769d1fc9fe99e6207fa4a797755ccfabf83f12 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:32:19 +0100 Subject: [PATCH 0397/1574] Add test generation for mpi_core_add_if Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index b30f8581a..711ec69ff 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -70,3 +70,22 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac for a_value, b_value in cls.get_value_pairs(): yield cls(a_value, b_value).create_test_case() + + +class BignumCoreAddIf(BignumCoreOperation): + """Test cases for bignum core add if.""" + count = 0 + symbol = "+" + test_function = "mpi_core_add_if" + test_name = "mbedtls_mpi_core_add_if" + + def result(self) -> str: + tmp = self.int_a + self.int_b + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + bound_8 = bignum_common.bound_mpi8(bound_val) + carry_4, remainder_4 = divmod(tmp, bound_4) + carry_8, remainder_8 = divmod(tmp, bound_8) + return "\"{:x}\":{}:\"{:x}\":{}".format( + remainder_4, carry_4, remainder_8, carry_8 + ) From 6351c7f5f3e1c04bbcb16d164c343847a36baaa5 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Fri, 30 Sep 2022 16:33:11 +0100 Subject: [PATCH 0398/1574] Add test generation for mpi_core_sub Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 711ec69ff..a8d6ec216 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -89,3 +89,24 @@ class BignumCoreAddIf(BignumCoreOperation): return "\"{:x}\":{}:\"{:x}\":{}".format( remainder_4, carry_4, remainder_8, carry_8 ) + + +class BignumCoreSub(BignumCoreOperation): + """Test cases for bignum core sub.""" + count = 0 + symbol = "-" + test_function = "mpi_core_sub" + test_name = "mbedtls_mpi_core_sub" + + def result(self) -> str: + if self.int_a >= self.int_b: + result_4 = result_8 = self.int_a - self.int_b + carry = 0 + else: + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + result_4 = bound_4 + self.int_a - self.int_b + bound_8 = bignum_common.bound_mpi8(bound_val) + result_8 = bound_8 + self.int_a - self.int_b + carry = 1 + return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) From bbf0a32d6770df25d6548b2d9daf4bd2b20b4f11 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:07:13 +0100 Subject: [PATCH 0399/1574] Add flag for unique combinations in operations Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 13 ++++++++++++- scripts/mbedtls_dev/bignum_core.py | 1 + 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index b20fe815d..7857dd65c 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -77,10 +77,14 @@ class OperationCommon: combined to produce pairs of values. input_cases: List of tuples containing pairs of test case inputs. This can be used to implement specific pairs of inputs. + unique_combinations_only: Boolean to select if test case combinations + must be unique. If True, only A,B or B,A would be included as a test + case. If False, both A,B and B,A would be included. """ symbol = "" input_values = [] # type: List[str] input_cases = [] # type: List[Tuple[str, str]] + unique_combinations_only = True def __init__(self, val_a: str, val_b: str) -> None: self.arg_a = val_a @@ -107,5 +111,12 @@ class OperationCommon: Combinations are first generated from all input values, and then specific cases provided. """ - yield from combination_pairs(cls.input_values) + if cls.unique_combinations_only: + yield from combination_pairs(cls.input_values) + else: + yield from ( + (a, b) + for a in cls.input_values + for b in cls.input_values + ) yield from cls.input_cases diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a8d6ec216..f2e3db74b 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -97,6 +97,7 @@ class BignumCoreSub(BignumCoreOperation): symbol = "-" test_function = "mpi_core_sub" test_name = "mbedtls_mpi_core_sub" + unique_combinations_only = False def result(self) -> str: if self.int_a >= self.int_b: From 0a9c48b68ea86e41b0a58b78cae006905590e10f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:08:26 +0100 Subject: [PATCH 0400/1574] Add test generation for mpi_core_mla Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 74 +++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f2e3db74b..47b09fd40 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -15,13 +15,12 @@ # limitations under the License. from abc import ABCMeta -from typing import Iterator +from typing import Iterator, List from . import test_case from . import test_data_generation from . import bignum_common - class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum core test case generation.""" @@ -111,3 +110,74 @@ class BignumCoreSub(BignumCoreOperation): result_8 = bound_8 + self.int_a - self.int_b carry = 1 return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) + + +class BignumCoreMLA(BignumCoreOperation): + """Test cases for fixed-size multiply accumulate.""" + count = 0 + test_function = "mpi_core_mla" + test_name = "mbedtls_mpi_core_mla" + unique_combinations_only = False + + input_values = [ + "0", "1", "fffe", "ffffffff", "100000000", "20000000000000", + "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", + "fffffffffffffffffefefefefefefefe", + "100000000000000000000000000000000", + "1234567890abcdef01234567890abcdef0", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f" + "34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf17" + "9298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38" + "edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec02507" + "6b12b" + ) + ] # type: List[str] + input_scalars = [ + "0", "3", "fe", "ff", "ffff", "10000", "ffffffff", "100000000", + "7f7f7f7f7f7f7f7f", "8000000000000000", "fffffffffffffffe" + ] # type: List[str] + + def __init__(self, val_a: str, val_b: str, val_s: str) -> None: + super().__init__(val_a, val_b) + self.arg_scalar = val_s + self.int_scalar = bignum_common.hex_to_int(val_s) + if bignum_common.limbs_mpi4(self.int_scalar) > 1: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + + def arguments(self) -> List[str]: + return [ + bignum_common.quote_str(self.arg_a), + bignum_common.quote_str(self.arg_b), + bignum_common.quote_str(self.arg_scalar), + self.result() + ] + + def description(self) -> str: + """Override and add the additional scalar.""" + if not self.case_description: + self.case_description = "0x{} + 0x{} * 0x{}".format( + self.arg_a, self.arg_b, self.arg_scalar + ) + return super().description() + + def result(self) -> str: + result = self.int_a + (self.int_b * self.int_scalar) + bound_val = max(self.int_a, self.int_b) + bound_4 = bignum_common.bound_mpi4(bound_val) + bound_8 = bignum_common.bound_mpi8(bound_val) + carry_4, remainder_4 = divmod(result, bound_4) + carry_8, remainder_8 = divmod(result, bound_8) + return "\"{:x}\":\"{:x}\":\"{:x}\":\"{:x}\"".format( + remainder_4, carry_4, remainder_8, carry_8 + ) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + """Override for additional scalar input.""" + for a_value, b_value in cls.get_value_pairs(): + for s_value in cls.input_scalars: + cur_op = cls(a_value, b_value, s_value) + yield cur_op.create_test_case() From a850312e9d88fbcd5233acac6bcda87694cfec47 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 10:10:40 +0100 Subject: [PATCH 0401/1574] Add test generation for mpi_core_montmul Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 15 + scripts/mbedtls_dev/bignum_core.py | 430 ++++++++++++++++++++++++++- 2 files changed, 444 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7857dd65c..c340cd53a 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -22,6 +22,21 @@ from typing import Iterator, List, Tuple, TypeVar T = TypeVar('T') #pylint: disable=invalid-name +def invmod(a: int, n: int) -> int: + """Return inverse of a to modulo n. + + Equivalent to pow(a, -1, n) in Python 3.8+. Implementation is equivalent + to long_invmod() in CPython. + """ + b, c = 1, 0 + while n: + q, r = divmod(a, n) + a, b, c, n = n, c, b - q*c, r + # at this point a is the gcd of the original inputs + if a == 1: + return b + raise ValueError("Not invertible") + def hex_to_int(val: str) -> int: return int(val, 16) if val else 0 diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 47b09fd40..f04db2648 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -15,7 +15,7 @@ # limitations under the License. from abc import ABCMeta -from typing import Iterator, List +from typing import Iterator, List, Tuple from . import test_case from . import test_data_generation @@ -181,3 +181,431 @@ class BignumCoreMLA(BignumCoreOperation): for s_value in cls.input_scalars: cur_op = cls(a_value, b_value, s_value) yield cur_op.create_test_case() + + +class BignumCoreMontmul(BignumCoreTarget): + """Test cases for Montgomery multiplication.""" + count = 0 + test_function = "mpi_core_montmul" + test_name = "mbedtls_mpi_core_montmul" + + start_2_mpi4 = False + start_2_mpi8 = False + + replay_test_cases = [ + (2, 1, 1, 1, "19", "1", "1D"), (2, 1, 1, 1, "7", "1", "9"), + (2, 1, 1, 1, "4", "1", "9"), + ( + 12, 1, 6, 1, ( + "3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402" + "B07CC8C7CE0B781C641A1EA8DB2F4343" + ), "1", ( + "66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A5" + "94B6BED27A168D31D4A52F88925AA8F5" + ) + ), ( + 8, 1, 4, 1, + "1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211", + "1", "B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561" + ), ( + 22, 1, 11, 1, ( + "7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB" + "82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB" + "23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E" + ), "1", ( + "284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC558547" + "25B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500" + "A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123" + ) + ) + ] # type: List[Tuple[int, int, int, int, str, str, str]] + + random_test_cases = [ + ("2", "2", "3", ""), ("1", "2", "3", ""), ("2", "1", "3", ""), + ("6", "5", "7", ""), ("3", "4", "7", ""), ("1", "6", "7", ""), ("5", "6", "7", ""), + ("3", "4", "B", ""), ("7", "4", "B", ""), ("9", "7", "B", ""), ("2", "a", "B", ""), + ("25", "16", "29", "(0x29 is prime)"), ("8", "28", "29", ""), + ("18", "21", "29", ""), ("15", "f", "29", ""), + ("e2", "ea", "FF", ""), ("43", "72", "FF", ""), + ("d8", "70", "FF", ""), ("3c", "7c", "FF", ""), + ("99", "b9", "101", "(0x101 is prime)"), ("65", "b2", "101", ""), + ("81", "32", "101", ""), ("51", "dd", "101", ""), + ("d5", "143", "38B", "(0x38B is prime)"), ("3d", "387", "38B", ""), + ("160", "2e5", "38B", ""), ("10f", "137", "38B", ""), + ("7dac", "25a", "8003", "(0x8003 is prime)"), ("6f1c", "3286", "8003", ""), + ("59ed", "2f3f", "8003", ""), ("6893", "736d", "8003", ""), + ("d199", "2832", "10001", "(0x10001 is prime)"), ("c3b2", "3e5b", "10001", ""), + ("abe4", "214e", "10001", ""), ("4360", "a05d", "10001", ""), + ("3f5a1", "165b2", "7F7F7", ""), ("3bd29", "37863", "7F7F7", ""), + ("60c47", "64819", "7F7F7", ""), ("16584", "12c49", "7F7F7", ""), + ("1ff03f", "610347", "800009", "(0x800009 is prime)"), ("340fd5", "19812e", "800009", ""), + ("3fe2e8", "4d0dc7", "800009", ""), ("40356", "e6392", "800009", ""), + ("dd8a1d", "266c0e", "100002B", "(0x100002B is prime)"), + ("3fa1cb", "847fd6", "100002B", ""), ("5f439d", "5c3196", "100002B", ""), + ("18d645", "f72dc6", "100002B", ""), + ("20051ad", "37def6e", "37EEE9D", "(0x37EEE9D is prime)"), + ("2ec140b", "3580dbf", "37EEE9D", ""), ("1d91b46", "190d4fc", "37EEE9D", ""), + ("34e488d", "1224d24", "37EEE9D", ""), + ("2a4fe2cb", "263466a9", "8000000B", "(0x8000000B is prime)"), + ("5643fe94", "29a1aefa", "8000000B", ""), ("29633513", "7b007ac4", "8000000B", ""), + ("2439cef5", "5c9d5a47", "8000000B", ""), + ("4de3cfaa", "50dea178", "8CD626B9", "(0x8CD626B9 is prime)"), + ("b8b8563", "10dbbbac", "8CD626B9", ""), ("4e8a6151", "5574ec19", "8CD626B9", ""), + ("69224878", "309cfc23", "8CD626B9", ""), + ("fb6f7fb6", "afb05423", "10000000F", "(0x10000000F is prime)"), + ("8391a243", "26034dcd", "10000000F", ""), ("d26b98c", "14b2d6aa", "10000000F", ""), + ("6b9f1371", "a21daf1d", "10000000F", ""), + ( + "9f49435ad", "c8264ade8", "174876E7E9", + "0x174876E7E9 is prime (dec) 99999999977" + ), + ("c402da434", "1fb427acf", "174876E7E9", ""), + ("f6ebc2bb1", "1096d39f2a", "174876E7E9", ""), + ("153b7f7b6b", "878fda8ff", "174876E7E9", ""), + ("2c1adbb8d6", "4384d2d3c6", "8000000017", "(0x8000000017 is prime)"), + ("2e4f9cf5fb", "794f3443d9", "8000000017", ""), + ("149e495582", "3802b8f7b7", "8000000017", ""), + ("7b9d49df82", "69c68a442a", "8000000017", ""), + ("683a134600", "6dd80ea9f6", "864CB9076D", "(0x864CB9076D is prime)"), + ("13a870ff0d", "59b099694a", "864CB9076D", ""), + ("37d06b0e63", "4d2147e46f", "864CB9076D", ""), + ("661714f8f4", "22e55df507", "864CB9076D", ""), + ("2f0a96363", "52693307b4", "F7F7F7F7F7", ""), + ("3c85078e64", "f2275ecb6d", "F7F7F7F7F7", ""), + ("352dae68d1", "707775b4c6", "F7F7F7F7F7", ""), + ("37ae0f3e0b", "912113040f", "F7F7F7F7F7", ""), + ("6dada15e31", "f58ed9eff7", "1000000000F", "(0x1000000000F is prime)"), + ("69627a7c89", "cfb5ebd13d", "1000000000F", ""), + ("a5e1ad239b", "afc030c731", "1000000000F", ""), + ("f1cc45f4c5", "c64ad607c8", "1000000000F", ""), + ("2ebad87d2e31", "4c72d90bca78", "800000000005", "(0x800000000005 is prime)"), + ("a30b3cc50d", "29ac4fe59490", "800000000005", ""), + ("33674e9647b4", "5ec7ee7e72d3", "800000000005", ""), + ("3d956f474f61", "74070040257d", "800000000005", ""), + ("48348e3717d6", "43fcb4399571", "800795D9BA47", "(0x800795D9BA47 is prime)"), + ("5234c03cc99b", "2f3cccb87803", "800795D9BA47", ""), + ("3ed13db194ab", "44b8f4ba7030", "800795D9BA47", ""), + ("1c11e843bfdb", "95bd1b47b08", "800795D9BA47", ""), + ("a81d11cb81fd", "1e5753a3f33d", "1000000000015", "(0x1000000000015 is prime)"), + ("688c4db99232", "36fc0cf7ed", "1000000000015", ""), + ("f0720cc07e07", "fc76140ed903", "1000000000015", ""), + ("2ec61f8d17d1", "d270c85e36d2", "1000000000015", ""), + ( + "6a24cd3ab63820", "ed4aad55e5e348", "100000000000051", + "(0x100000000000051 is prime)" + ), + ("e680c160d3b248", "31e0d8840ed510", "100000000000051", ""), + ("a80637e9aebc38", "bb81decc4e1738", "100000000000051", ""), + ("9afa5a59e9d630", "be9e65a6d42938", "100000000000051", ""), + ("ab5e104eeb71c000", "2cffbd639e9fea00", "ABCDEF0123456789", ""), + ("197b867547f68a00", "44b796cf94654800", "ABCDEF0123456789", ""), + ("329f9483a04f2c00", "9892f76961d0f000", "ABCDEF0123456789", ""), + ("4a2e12dfb4545000", "1aa3e89a69794500", "ABCDEF0123456789", ""), + ( + "8b9acdf013d140f000", "12e4ceaefabdf2b2f00", "25A55A46E5DA99C71C7", + "0x25A55A46E5DA99C71C7 is the 3rd repunit prime(dec) 11111111111111111111111" + ), + ("1b8d960ea277e3f5500", "14418aa980e37dd000", "25A55A46E5DA99C71C7", ""), + ("7314524977e8075980", "8172fa45618ccd0d80", "25A55A46E5DA99C71C7", ""), + ("ca14f031769be63580", "147a2f3cf2964ca9400", "25A55A46E5DA99C71C7", ""), + ( + "18532ba119d5cd0cf39735c0000", "25f9838e31634844924733000000", + "314DC643FB763F2B8C0E2DE00879", + "0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3" + ), + ( + "a56e2d2517519e3970e70c40000", "ec27428d4bb380458588fa80000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "1cb5e8257710e8653fff33a00000", "15fdd42fe440fd3a1d121380000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "e50d07a65fc6f93e538ce040000", "1f4b059ca609f3ce597f61240000", + "314DC643FB763F2B8C0E2DE00879", "" + ), + ( + "1ea3ade786a095d978d387f30df9f20000000", + "127c448575f04af5a367a7be06c7da0000000", + "47BF19662275FA2F6845C74942ED1D852E521", + "0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4" + ), + ( + "16e15b0ca82764e72e38357b1f10a20000000", + "43e2355d8514bbe22b0838fdc3983a0000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "be39332529d93f25c3d116c004c620000000", + "5cccec42370a0a2c89c6772da801a0000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "ecaa468d90de0eeda474d39b3e1fc0000000", + "1e714554018de6dc0fe576bfd3b5660000000", + "47BF19662275FA2F6845C74942ED1D852E521", "" + ), + ( + "32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000", + "8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", + ( + "0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931" + " is (dec) 99999999977^6" + ) + ), + ( + "29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000", + "6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000", + "7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000", + "530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000", + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", "" + ), + ( + "a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000", + "75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", + ( + "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499" + "is (dec) 99999999977^7" + ) + ), + ( + "bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000", + "397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000", + "ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000", + "925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000", + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", "" + ), + ( + "1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000", + "51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + ( + "0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146" + "380E41 is 99999999977^8" + ) + ), + ( + "1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000", + "520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + "57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000", + "41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + "d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000", + "6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000", + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "" + ), + ( + ( + "2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbf" + "a1e6000000000000000000000000" + ), ( + "1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a0" + "0315800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), ( + "0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC" + "902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10" + ) + ), + ( + ( + "c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de47" + "40800000000000000000000000" + ), ( + "c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f709603419" + "3c800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba" + "5ee800000000000000000000000" + ), ( + "1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c33" + "65b800000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd" + "01a800000000000000000000000" + ), ( + "54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b" + "8b000000000000000000000000" + ), ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC90" + "2713E40F51E3B3C214EDFABC451" + ), "" + ), + ( + ( + "544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b23089917843" + "06d48f78686115ee19e25400000000000000000000000000000000" + ), ( + "677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0" + "a0148d1625745e9c4c827300000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), ( + "0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBF" + "A11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime," + " (dec) 10^143 + 3^4" + ) + ), + ( + ( + "76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865c" + "b6464174795d07e30015b80000000000000000000000000000000" + ), ( + "6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c7" + "9a52af190abd51739009a900000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ), + ( + ( + "6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd6" + "3d1d8cfbc1d498162786ba00000000000000000000000000000000" + ), ( + "1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb" + "4c2f6d0667f9467fdcf33400000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ), + ( + ( + "7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5" + "a9f0ad04facb69aa3715f00000000000000000000000000000000" + ), ( + "764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d" + "799020e244a835a145ec9800000000000000000000000000000000" + ), ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA1" + "1DABD6E6144BEF37C6800000000000000000000000000000000051" + ), "" + ) + ] # type: List[Tuple[str, str, str, str]] + + def __init__( + self, val_a: str, val_b: str, val_n: str, case_description: str = "" + ): + self.case_description = case_description + self.arg_a = val_a + self.int_a = bignum_common.hex_to_int(val_a) + self.arg_b = val_b + self.int_b = bignum_common.hex_to_int(val_b) + self.arg_n = val_n + self.int_n = bignum_common.hex_to_int(val_n) + + limbs_a4 = bignum_common.limbs_mpi4(self.int_a) + limbs_a8 = bignum_common.limbs_mpi8(self.int_a) + self.limbs_b4 = bignum_common.limbs_mpi4(self.int_b) + self.limbs_b8 = bignum_common.limbs_mpi8(self.int_b) + self.limbs_an4 = bignum_common.limbs_mpi4(self.int_n) + self.limbs_an8 = bignum_common.limbs_mpi8(self.int_n) + + if limbs_a4 > self.limbs_an4 or limbs_a8 > self.limbs_an8: + raise Exception("Limbs of input A ({}) exceeds N ({})".format( + self.arg_a, self.arg_n + )) + + def arguments(self) -> List[str]: + return [ + str(self.limbs_an4), str(self.limbs_b4), + str(self.limbs_an8), str(self.limbs_b8), + bignum_common.quote_str(self.arg_a), + bignum_common.quote_str(self.arg_b), + bignum_common.quote_str(self.arg_n), + self.result() + ] + + def description(self) -> str: + if self.case_description != "replay": + if not self.start_2_mpi4 and self.limbs_an4 > 1: + tmp = "(start of 2-MPI 4-byte bignums) " + self.__class__.start_2_mpi4 = True + elif not self.start_2_mpi8 and self.limbs_an8 > 1: + tmp = "(start of 2-MPI 8-byte bignums) " + self.__class__.start_2_mpi8 = True + else: + tmp = "(gen) " + self.case_description = tmp + self.case_description + return super().description() + + def result(self) -> str: + """Get the result of the operation.""" + r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) + i4 = bignum_common.invmod(r4, self.int_n) + x4 = self.int_a * self.int_b * i4 + x4 = x4 % self.int_n + + r8 = bignum_common.bound_mpi8_limbs(self.limbs_an8) + i8 = bignum_common.invmod(r8, self.int_n) + x8 = self.int_a * self.int_b * i8 + x8 = x8 % self.int_n + return "\"{:x}\":\"{:x}\"".format(x4, x8) + + def set_limbs( + self, limbs_an4: int, limbs_b4: int, limbs_an8: int, limbs_b8: int + ) -> None: + """Set number of limbs for each input. + + Replaces default values set during initialization. + """ + self.limbs_an4 = limbs_an4 + self.limbs_b4 = limbs_b4 + self.limbs_an8 = limbs_an8 + self.limbs_b8 = limbs_b8 + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + """Generate replay and randomly generated test cases.""" + # Test cases which replay captured invocations during unit test runs. + for limbs_an4, limbs_b4, limbs_an8, limbs_b8, a, b, n in cls.replay_test_cases: + cur_op = cls(a, b, n, case_description="replay") + cur_op.set_limbs(limbs_an4, limbs_b4, limbs_an8, limbs_b8) + yield cur_op.create_test_case() + # Test cases generated randomly + for a, b, n, description in cls.random_test_cases: + cur_op = cls(a, b, n, case_description=description) + yield cur_op.create_test_case() From 7a2731463b44c2c53751a96a40c591cd63219edc Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 4 Oct 2022 14:57:39 +0100 Subject: [PATCH 0402/1574] Add function to generate random montmul cases Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 98 +++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f04db2648..bbd0ac4af 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -14,8 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +import random + from abc import ABCMeta -from typing import Iterator, List, Tuple +from typing import Dict, Iterator, List, Tuple from . import test_case from . import test_data_generation @@ -605,7 +607,99 @@ class BignumCoreMontmul(BignumCoreTarget): cur_op = cls(a, b, n, case_description="replay") cur_op.set_limbs(limbs_an4, limbs_b4, limbs_an8, limbs_b8) yield cur_op.create_test_case() - # Test cases generated randomly + # Random test cases can be generated using mpi_modmul_case_generate() + # Uses a mixture of primes and odd numbers as N, with four randomly + # generated cases for each N. for a, b, n, description in cls.random_test_cases: cur_op = cls(a, b, n, case_description=description) yield cur_op.create_test_case() + + +def mpi_modmul_case_generate() -> None: + """Generate valid inputs for montmul tests using moduli. + + For each modulus, generates random values for A and B and simple descriptions + for the test case. + """ + moduli = [ + ("3", ""), ("7", ""), ("B", ""), ("29", ""), ("FF", ""), + ("101", ""), ("38B", ""), ("8003", ""), ("10001", ""), + ("7F7F7", ""), ("800009", ""), ("100002B", ""), ("37EEE9D", ""), + ("8000000B", ""), ("8CD626B9", ""), ("10000000F", ""), + ("174876E7E9", "is prime (dec) 99999999977"), + ("8000000017", ""), ("864CB9076D", ""), ("F7F7F7F7F7", ""), + ("1000000000F", ""), ("800000000005", ""), ("800795D9BA47", ""), + ("1000000000015", ""), ("100000000000051", ""), ("ABCDEF0123456789", ""), + ( + "25A55A46E5DA99C71C7", + "is the 3rd repunit prime (dec) 11111111111111111111111" + ), + ("314DC643FB763F2B8C0E2DE00879", "is (dec)99999999977^3"), + ("47BF19662275FA2F6845C74942ED1D852E521", "is (dec) 99999999977^4"), + ( + "97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931", + "is (dec) 99999999977^6" + ), + ( + "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", + "is (dec) 99999999977^7" + ), + ( + "141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41", + "is (dec) 99999999977^8" + ), + ( + ( + "2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E283" + "3EC902713E40F51E3B3C214EDFABC451" + ), + "is (dec) 99999999977^10" + ), + ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11" + "DABD6E6144BEF37C6800000000000000000000000000000000051", + "is prime, (dec) 10^143 + 3^4" + ) + ] # type: List[Tuple[str, str]] + primes = [ + "3", "7", "B", "29", "101", "38B", "8003", "10001", "800009", + "100002B", "37EEE9D", "8000000B", "8CD626B9", + # From here they require > 1 4-byte MPI + "10000000F", "174876E7E9", "8000000017", "864CB9076D", "1000000000F", + "800000000005", "800795D9BA47", "1000000000015", "100000000000051", + # From here they require > 1 8-byte MPI + "25A55A46E5DA99C71C7", # this is 11111111111111111111111 decimal + # 10^143 + 3^4: (which is prime) + # 100000000000000000000000000000000000000000000000000000000000000000000000000000 + # 000000000000000000000000000000000000000000000000000000000000000081 + ( + "8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11" + "DABD6E6144BEF37C6800000000000000000000000000000000051" + ) + ] # type: List[str] + generated_inputs = [] + for mod, description in moduli: + n = bignum_common.hex_to_int(mod) + mod_read = "{:x}".format(n) + if mod_read != mod.lower(): + raise ValueError("Read modulus not equal to input.") + case_count = 3 if n < 5 else 4 + cases = {} # type: Dict[int, int] + i = 0 + while i < case_count: + a = random.randint(1, n) + b = random.randint(1, n) + if cases.get(a) == b: + continue + cases[a] = b + if description: + out_description = "0x{} {}".format(mod_read, description) + elif i == 0 and len(mod) > 1 and mod in primes: + out_description = "(0x{} is prime)" + else: + out_description = "" + generated_inputs.append( + ("{:x}".format(a), "{:x}".format(b), mod, out_description) + ) + i += 1 + print(generated_inputs) From 1b20e7e645b186d1affc75daa2d6e4f6f1b4ac30 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 12 Oct 2022 14:53:17 +0100 Subject: [PATCH 0403/1574] Redefine result() method to return List Many bignum tests have multiple calculated result values, so return these as a list, rather than formatting as a string. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 6 ++-- scripts/mbedtls_dev/bignum_core.py | 47 ++++++++++++++++---------- tests/scripts/generate_bignum_tests.py | 10 +++--- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index c340cd53a..88fa4dfd0 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -108,10 +108,12 @@ class OperationCommon: self.int_b = hex_to_int(val_b) def arguments(self) -> List[str]: - return [quote_str(self.arg_a), quote_str(self.arg_b), self.result()] + return [ + quote_str(self.arg_a), quote_str(self.arg_b) + ] + self.result() @abstractmethod - def result(self) -> str: + def result(self) -> List[str]: """Get the result of the operation. This could be calculated during initialization and stored as `_result` diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index bbd0ac4af..b4dff8938 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -80,16 +80,19 @@ class BignumCoreAddIf(BignumCoreOperation): test_function = "mpi_core_add_if" test_name = "mbedtls_mpi_core_add_if" - def result(self) -> str: + def result(self) -> List[str]: tmp = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) bound_4 = bignum_common.bound_mpi4(bound_val) bound_8 = bignum_common.bound_mpi8(bound_val) carry_4, remainder_4 = divmod(tmp, bound_4) carry_8, remainder_8 = divmod(tmp, bound_8) - return "\"{:x}\":{}:\"{:x}\":{}".format( - remainder_4, carry_4, remainder_8, carry_8 - ) + return [ + "\"{:x}\"".format(remainder_4), + str(carry_4), + "\"{:x}\"".format(remainder_8), + str(carry_8) + ] class BignumCoreSub(BignumCoreOperation): @@ -100,7 +103,7 @@ class BignumCoreSub(BignumCoreOperation): test_name = "mbedtls_mpi_core_sub" unique_combinations_only = False - def result(self) -> str: + def result(self) -> List[str]: if self.int_a >= self.int_b: result_4 = result_8 = self.int_a - self.int_b carry = 0 @@ -111,7 +114,11 @@ class BignumCoreSub(BignumCoreOperation): bound_8 = bignum_common.bound_mpi8(bound_val) result_8 = bound_8 + self.int_a - self.int_b carry = 1 - return "\"{:x}\":\"{:x}\":{}".format(result_4, result_8, carry) + return [ + "\"{:x}\"".format(result_4), + "\"{:x}\"".format(result_8), + str(carry) + ] class BignumCoreMLA(BignumCoreOperation): @@ -153,9 +160,8 @@ class BignumCoreMLA(BignumCoreOperation): return [ bignum_common.quote_str(self.arg_a), bignum_common.quote_str(self.arg_b), - bignum_common.quote_str(self.arg_scalar), - self.result() - ] + bignum_common.quote_str(self.arg_scalar) + ] + self.result() def description(self) -> str: """Override and add the additional scalar.""" @@ -165,16 +171,19 @@ class BignumCoreMLA(BignumCoreOperation): ) return super().description() - def result(self) -> str: + def result(self) -> List[str]: result = self.int_a + (self.int_b * self.int_scalar) bound_val = max(self.int_a, self.int_b) bound_4 = bignum_common.bound_mpi4(bound_val) bound_8 = bignum_common.bound_mpi8(bound_val) carry_4, remainder_4 = divmod(result, bound_4) carry_8, remainder_8 = divmod(result, bound_8) - return "\"{:x}\":\"{:x}\":\"{:x}\":\"{:x}\"".format( - remainder_4, carry_4, remainder_8, carry_8 - ) + return [ + "\"{:x}\"".format(remainder_4), + "\"{:x}\"".format(carry_4), + "\"{:x}\"".format(remainder_8), + "\"{:x}\"".format(carry_8) + ] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -557,9 +566,8 @@ class BignumCoreMontmul(BignumCoreTarget): str(self.limbs_an8), str(self.limbs_b8), bignum_common.quote_str(self.arg_a), bignum_common.quote_str(self.arg_b), - bignum_common.quote_str(self.arg_n), - self.result() - ] + bignum_common.quote_str(self.arg_n) + ] + self.result() def description(self) -> str: if self.case_description != "replay": @@ -574,7 +582,7 @@ class BignumCoreMontmul(BignumCoreTarget): self.case_description = tmp + self.case_description return super().description() - def result(self) -> str: + def result(self) -> List[str]: """Get the result of the operation.""" r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) i4 = bignum_common.invmod(r4, self.int_n) @@ -585,7 +593,10 @@ class BignumCoreMontmul(BignumCoreTarget): i8 = bignum_common.invmod(r8, self.int_n) x8 = self.int_a * self.int_b * i8 x8 = x8 % self.int_n - return "\"{:x}\":\"{:x}\"".format(x4, x8) + return [ + "\"{:x}\"".format(x4), + "\"{:x}\"".format(x8) + ] def set_limbs( self, limbs_an4: int, limbs_b4: int, limbs_an8: int, limbs_b8: int diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 1eec27b10..493582968 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -57,7 +57,7 @@ of BaseTarget in test_data_generation.py. import sys from abc import ABCMeta -from typing import Iterator +from typing import Iterator, List import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -144,8 +144,8 @@ class BignumCmp(BignumOperation): self._result = int(self.int_a > self.int_b) - int(self.int_a < self.int_b) self.symbol = ["<", "==", ">"][self._result + 1] - def result(self) -> str: - return str(self._result) + def result(self) -> List[str]: + return [str(self._result)] class BignumCmpAbs(BignumCmp): @@ -171,8 +171,8 @@ class BignumAdd(BignumOperation): ] ) - def result(self) -> str: - return bignum_common.quote_str("{:x}").format(self.int_a + self.int_b) + def result(self) -> List[str]: + return [bignum_common.quote_str("{:x}").format(self.int_a + self.int_b)] if __name__ == '__main__': From ffe44789367fc7824f532452f0edb0231d692059 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 12 Oct 2022 17:15:26 +0100 Subject: [PATCH 0404/1574] Move mpi_core_bitlen tests to bignum_core files Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 27 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 14 ++++++++++ tests/suites/test_suite_mpi.data | 27 -------------------- tests/suites/test_suite_mpi.function | 14 ---------- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data index d61acd00e..030015154 100644 --- a/tests/suites/test_suite_bignum_core.data +++ b/tests/suites/test_suite_bignum_core.data @@ -131,6 +131,33 @@ mpi_core_io_le:"0941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290 Test mbedtls_mpi_core_io_le #21 (Buffer and limbs fit, input unaligned, odd number of limbs) mpi_core_io_le:"de4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b442400":82:21:0:0 +Test mbedtls_mpi_core_bitlen 764-bit +mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 + +Test mbedtls_mpi_core_bitlen 0x18 +mpi_core_bitlen:"18":5 + +Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s) +mpi_core_bitlen:"00000000000000018":5 + +Test mbedtls_mpi_core_bitlen 0x18 << 64 +mpi_core_bitlen:"180000000000000000":69 + +Test mbedtls_mpi_core_bitlen 0x01 +mpi_core_bitlen:"1":1 + +Test mbedtls_mpi_core_bitlen 0x0f +mpi_core_bitlen:"f":4 + +Test mbedtls_mpi_core_bitlen 0x10 +mpi_core_bitlen:"10":5 + +Test mbedtls_mpi_core_bitlen 0x0a +mpi_core_bitlen:"a":4 + +Test mbedtls_mpi_core_bitlen: 0 (1 limb) +mpi_core_bitlen:"0":0 + mbedtls_mpi_core_lt_ct: x=y (1 limb) mpi_core_lt_ct:"2B5":"2B5":0 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index a24bade19..2bd8aac28 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -155,6 +155,20 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_bitlen( char *input_X, int nr_bits ) +{ + mbedtls_mpi_uint *X = NULL; + size_t limbs; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); + TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); + +exit: + mbedtls_free( X ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) { diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index fca63372a..93279a658 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -139,33 +139,6 @@ mpi_lsb:"24":2 Base test mbedtls_mpi_lsb #4 mpi_lsb:"2000":13 -Test mbedtls_mpi_core_bitlen 764-bit -mpi_core_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 - -Test mbedtls_mpi_core_bitlen 0x18 -mpi_core_bitlen:"18":5 - -Test mbedtls_mpi_core_bitlen 0x18 with leading 0 limb(s) -mpi_core_bitlen:"00000000000000018":5 - -Test mbedtls_mpi_core_bitlen 0x18 << 64 -mpi_core_bitlen:"180000000000000000":69 - -Test mbedtls_mpi_core_bitlen 0x01 -mpi_core_bitlen:"1":1 - -Test mbedtls_mpi_core_bitlen 0x0f -mpi_core_bitlen:"f":4 - -Test mbedtls_mpi_core_bitlen 0x10 -mpi_core_bitlen:"10":5 - -Test mbedtls_mpi_core_bitlen 0x0a -mpi_core_bitlen:"a":4 - -Test mbedtls_mpi_core_bitlen: 0 (1 limb) -mpi_core_bitlen:"0":0 - Test mbedtls_mpi_bitlen 764-bit mpi_bitlen:"941379d00fed1491fe15df284dfde4a142f68aa8d412023195cee66883e6290ffe703f4ea5963bf212713cee46b107c09182b5edcd955adac418bf4918e2889af48e1099d513830cec85c26ac1e158b52620e33ba8692f893efbb2f958b4424":764 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index c26766b2c..4e82a4b47 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -394,20 +394,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_bitlen( char *input_X, int nr_bits ) -{ - mbedtls_mpi_uint *X = NULL; - size_t limbs; - - TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); - TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); - -exit: - mbedtls_free( X ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_bitlen( char * input_X, int nr_bits ) { From 2295eecb1223ae53a5c4972b5cae42ab59e6b7dc Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 18 Oct 2022 15:42:51 +0100 Subject: [PATCH 0405/1574] Add missing space in string Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index b4dff8938..a300225ab 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -387,7 +387,7 @@ class BignumCoreMontmul(BignumCoreTarget): "DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499", ( "0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499" - "is (dec) 99999999977^7" + " is (dec) 99999999977^7" ) ), ( From 6baf12b18d0aa2905ccf8dfeedc033e4d08f26e4 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 12:46:35 +0100 Subject: [PATCH 0406/1574] Move legacy mod functions back to test_suite_mpi Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.data | 60 --------------------- tests/suites/test_suite_bignum_mod.function | 60 --------------------- tests/suites/test_suite_mpi.data | 60 +++++++++++++++++++++ tests/suites/test_suite_mpi.function | 46 ++++++++++++++++ 4 files changed, 106 insertions(+), 120 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index c76dad8f8..cb781403d 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -24,63 +24,3 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - -Base test mbedtls_mpi_mod_mpi #1 -mpi_mod_mpi:"3e8":"d":"c":0 - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) -mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) -mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_mpi #3 -mpi_mod_mpi:"-3e8":"d":"1":0 - -Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) -mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) -mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_mpi: 0 (null) % 1 -mpi_mod_mpi:"":"1":"":0 - -Test mbedtls_mpi_mod_mpi: 0 (null) % -1 -mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 - -Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO - -Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 - -Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 - -Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 - -Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 - -Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE - -Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 154362306..9f7320965 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -4,19 +4,6 @@ #include "bignum_mod.h" #include "constant_time_internal.h" #include "test/constant_flow.h" - -/* Check the validity of the sign bit in an MPI object. Reject representations - * that are not supported by the rest of the library and indicate a bug when - * constructing the value. */ -static int sign_is_valid( const mbedtls_mpi *X ) -{ - if( X->s != 1 && X->s != -1 ) - return( 0 ); // invalid sign bit, e.g. 0 - if( mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) - return( 0 ); // negative zero - return( 1 ); -} - /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -51,50 +38,3 @@ exit: #undef MLIMBS } /* END_CASE */ - - -/* BEGIN_CASE */ -void mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) -{ - mbedtls_mpi X, Y, A; - int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - } - -exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) -{ - mbedtls_mpi X; - int res; - mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); - } - -exit: - mbedtls_mpi_free( &X ); -} -/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 93279a658..794031901 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -1258,6 +1258,66 @@ mpi_div_int:"00":0:"":"":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Test mbedtls_mpi_div_int: 0 (null) / 1 mpi_div_int:"":1:"":"":0 +Base test mbedtls_mpi_mod_mpi #1 +mpi_mod_mpi:"3e8":"d":"c":0 + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (null)) +mpi_mod_mpi:"3e8":"":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #2 (Divide by zero (1 limb)) +mpi_mod_mpi:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_mpi #3 +mpi_mod_mpi:"-3e8":"d":"1":0 + +Base test mbedtls_mpi_mod_mpi #4 (Negative modulo) +mpi_mod_mpi:"3e8":"-d":"-1":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_mpi #5 (Negative modulo) +mpi_mod_mpi:"-3e8":"-d":"-c":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_mpi: 0 (null) % 1 +mpi_mod_mpi:"":"1":"":0 + +Test mbedtls_mpi_mod_mpi: 0 (null) % -1 +mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #1 +mpi_mod_int:"3e8":13:12:0 + +Base test mbedtls_mpi_mod_int #2 (Divide by zero) +mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO + +Base test mbedtls_mpi_mod_int #3 +mpi_mod_int:"-3e8":13:1:0 + +Base test mbedtls_mpi_mod_int #4 (Negative modulo) +mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #5 (Negative modulo) +mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Base test mbedtls_mpi_mod_int #6 (By 1) +mpi_mod_int:"3e8":1:0:0 + +Base test mbedtls_mpi_mod_int #7 (By 2) +mpi_mod_int:"3e9":2:1:0 + +Base test mbedtls_mpi_mod_int #8 (By 2) +mpi_mod_int:"3e8":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 1 +mpi_mod_int:"":1:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % 2 +mpi_mod_int:"":2:0:0 + +Test mbedtls_mpi_mod_int: 0 (null) % -1 +mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_int: 0 (null) % -2 +mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE + Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index 4e82a4b47..db274100a 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -1244,6 +1244,52 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_mpi( char * input_X, char * input_Y, + char * input_A, int div_result ) +{ + mbedtls_mpi X, Y, A; + int res; + mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); + TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + } + +exit: + mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_int( char * input_X, int input_Y, + int input_A, int div_result ) +{ + mbedtls_mpi X; + int res; + mbedtls_mpi_uint r; + mbedtls_mpi_init( &X ); + + TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + res = mbedtls_mpi_mod_int( &r, &X, input_Y ); + TEST_ASSERT( res == div_result ); + if( res == 0 ) + { + TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + } + +exit: + mbedtls_mpi_free( &X ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_exp_mod( char * input_A, char * input_E, char * input_N, char * input_X, From 63653b9b0a40ca10b946d89a6ad2cf3d84e9b62a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 13:37:12 +0100 Subject: [PATCH 0407/1574] Remove unnecessary check Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a300225ab..1bd248266 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -692,8 +692,6 @@ def mpi_modmul_case_generate() -> None: for mod, description in moduli: n = bignum_common.hex_to_int(mod) mod_read = "{:x}".format(n) - if mod_read != mod.lower(): - raise ValueError("Read modulus not equal to input.") case_count = 3 if n < 5 else 4 cases = {} # type: Dict[int, int] i = 0 From f86c82e8f3d504b775dc89f7e0143e4d0d918fae Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 13:50:10 +0100 Subject: [PATCH 0408/1574] Pass bits_in_limb parameter to duplicated methods Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_common.py | 31 ++++++++-------------------- scripts/mbedtls_dev/bignum_core.py | 30 +++++++++++++-------------- 2 files changed, 24 insertions(+), 37 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 88fa4dfd0..c81770ed7 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -43,31 +43,18 @@ def hex_to_int(val: str) -> int: def quote_str(val) -> str: return "\"{}\"".format(val) -def bound_mpi8(val: int) -> int: - """First number exceeding 8-byte limbs needed for given input value.""" - return bound_mpi8_limbs(limbs_mpi8(val)) +def bound_mpi(val: int, bits_in_limb: int) -> int: + """First number exceeding number of limbs needed for given input value.""" + return bound_mpi_limbs(limbs_mpi(val, bits_in_limb), bits_in_limb) -def bound_mpi4(val: int) -> int: - """First number exceeding 4-byte limbs needed for given input value.""" - return bound_mpi4_limbs(limbs_mpi4(val)) - -def bound_mpi8_limbs(limbs: int) -> int: - """First number exceeding maximum of given 8-byte limbs.""" - bits = 64 * limbs +def bound_mpi_limbs(limbs: int, bits_in_limb: int) -> int: + """First number exceeding maximum of given number of limbs.""" + bits = bits_in_limb * limbs return 1 << bits -def bound_mpi4_limbs(limbs: int) -> int: - """First number exceeding maximum of given 4-byte limbs.""" - bits = 32 * limbs - return 1 << bits - -def limbs_mpi8(val: int) -> int: - """Return the number of 8-byte limbs required to store value.""" - return (val.bit_length() + 63) // 64 - -def limbs_mpi4(val: int) -> int: - """Return the number of 4-byte limbs required to store value.""" - return (val.bit_length() + 31) // 32 +def limbs_mpi(val: int, bits_in_limb: int) -> int: + """Return the number of limbs required to store value.""" + return (val.bit_length() + bits_in_limb - 1) // bits_in_limb def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: """Return all pair combinations from input values. diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 1bd248266..3652ac20a 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -83,8 +83,8 @@ class BignumCoreAddIf(BignumCoreOperation): def result(self) -> List[str]: tmp = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) + bound_8 = bignum_common.bound_mpi(bound_val, 64) carry_4, remainder_4 = divmod(tmp, bound_4) carry_8, remainder_8 = divmod(tmp, bound_8) return [ @@ -109,9 +109,9 @@ class BignumCoreSub(BignumCoreOperation): carry = 0 else: bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) result_4 = bound_4 + self.int_a - self.int_b - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_8 = bignum_common.bound_mpi(bound_val, 64) result_8 = bound_8 + self.int_a - self.int_b carry = 1 return [ @@ -153,7 +153,7 @@ class BignumCoreMLA(BignumCoreOperation): super().__init__(val_a, val_b) self.arg_scalar = val_s self.int_scalar = bignum_common.hex_to_int(val_s) - if bignum_common.limbs_mpi4(self.int_scalar) > 1: + if bignum_common.limbs_mpi(self.int_scalar, 32) > 1: self.dependencies = ["MBEDTLS_HAVE_INT64"] def arguments(self) -> List[str]: @@ -174,8 +174,8 @@ class BignumCoreMLA(BignumCoreOperation): def result(self) -> List[str]: result = self.int_a + (self.int_b * self.int_scalar) bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi4(bound_val) - bound_8 = bignum_common.bound_mpi8(bound_val) + bound_4 = bignum_common.bound_mpi(bound_val, 32) + bound_8 = bignum_common.bound_mpi(bound_val, 64) carry_4, remainder_4 = divmod(result, bound_4) carry_8, remainder_8 = divmod(result, bound_8) return [ @@ -548,12 +548,12 @@ class BignumCoreMontmul(BignumCoreTarget): self.arg_n = val_n self.int_n = bignum_common.hex_to_int(val_n) - limbs_a4 = bignum_common.limbs_mpi4(self.int_a) - limbs_a8 = bignum_common.limbs_mpi8(self.int_a) - self.limbs_b4 = bignum_common.limbs_mpi4(self.int_b) - self.limbs_b8 = bignum_common.limbs_mpi8(self.int_b) - self.limbs_an4 = bignum_common.limbs_mpi4(self.int_n) - self.limbs_an8 = bignum_common.limbs_mpi8(self.int_n) + limbs_a4 = bignum_common.limbs_mpi(self.int_a, 32) + limbs_a8 = bignum_common.limbs_mpi(self.int_a, 64) + self.limbs_b4 = bignum_common.limbs_mpi(self.int_b, 32) + self.limbs_b8 = bignum_common.limbs_mpi(self.int_b, 64) + self.limbs_an4 = bignum_common.limbs_mpi(self.int_n, 32) + self.limbs_an8 = bignum_common.limbs_mpi(self.int_n, 64) if limbs_a4 > self.limbs_an4 or limbs_a8 > self.limbs_an8: raise Exception("Limbs of input A ({}) exceeds N ({})".format( @@ -584,12 +584,12 @@ class BignumCoreMontmul(BignumCoreTarget): def result(self) -> List[str]: """Get the result of the operation.""" - r4 = bignum_common.bound_mpi4_limbs(self.limbs_an4) + r4 = bignum_common.bound_mpi_limbs(self.limbs_an4, 32) i4 = bignum_common.invmod(r4, self.int_n) x4 = self.int_a * self.int_b * i4 x4 = x4 % self.int_n - r8 = bignum_common.bound_mpi8_limbs(self.limbs_an8) + r8 = bignum_common.bound_mpi_limbs(self.limbs_an8, 64) i8 = bignum_common.invmod(r8, self.int_n) x8 = self.int_a * self.int_b * i8 x8 = x8 % self.int_n From bd3ddafee204db634c9c03bc567ba4b5bf2c8c85 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 15:15:29 +0100 Subject: [PATCH 0409/1574] Move tests added in #6289 Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_core.data | 39 +++ tests/suites/test_suite_bignum_core.function | 142 ++++++++ tests/suites/test_suite_bignum_mod_raw.data | 39 +++ .../suites/test_suite_bignum_mod_raw.function | 168 ++++++++++ tests/suites/test_suite_mpi.data | 78 ----- tests/suites/test_suite_mpi.function | 310 ------------------ 6 files changed, 388 insertions(+), 388 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.data index 030015154..cb6fe424b 100644 --- a/tests/suites/test_suite_bignum_core.data +++ b/tests/suites/test_suite_bignum_core.data @@ -245,6 +245,45 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 +mbedtls_mpi_core_cond_assign: 1 limb +mpi_core_cond_assign:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_core_cond_assign: more limbs #1 +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_core_cond_assign: more limbs #2 +mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_assign: more limbs #3 +mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs +mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 + +mbedtls_mpi_core_cond_assign: copy half of the limbs +mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +mbedtls_mpi_core_cond_swap: same value +mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 + +mbedtls_mpi_core_cond_swap: 1 limb +mpi_core_cond_swap:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_core_cond_swap: more limbs #1 +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_core_cond_swap: more limbs #2 +mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_core_cond_swap: more limbs #3 +mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs +mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 + +mbedtls_mpi_core_cond_swap: copy half of the limbs +mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + mbedtls_mpi_montg_init #1 mpi_montg_init:"000000000000001d":"cb08d3dcb08d3dcb" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 2bd8aac28..de8b7f194 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -196,6 +196,148 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_cond_assign( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) + == 0 ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + } + else + ASSERT_COMPARE( X, bytes, Y, bytes ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_cond_swap( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *tmp_X = NULL; + mbedtls_mpi_uint *tmp_Y = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, + input_X->x, input_X->len ) + == 0 ); + ASSERT_ALLOC( X, limbs ); + memcpy( X, tmp_X, bytes ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, + input_Y->x, input_Y->len ) + == 0 ); + ASSERT_ALLOC( Y, limbs ); + memcpy( Y, tmp_Y, bytes ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); + } + else + { + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); + } + +exit: + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, char * input_S4, int carry4, diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 6b5bb645e..788165d1a 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -139,3 +139,42 @@ mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_ Test mbedtls_mpi_mod_raw_io #22 (writing with invalid endianness) mpi_mod_raw_io:"":1:1:MBEDTLS_MPI_MOD_EXT_REP_INVALID:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_raw_cond_assign: 1 limb +mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #1 +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #2 +mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_assign: more limbs #3 +mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs +mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 + +mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs +mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +mbedtls_mpi_mod_raw_cond_swap: same value +mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 + +mbedtls_mpi_mod_raw_cond_swap: 1 limb +mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #1 +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #2 +mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 + +mbedtls_mpi_mod_raw_cond_swap: more limbs #3 +mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 + +mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs +mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 + +mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs +mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 76574752b..099c94432 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -106,3 +106,171 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_cond_assign( data_t * input_X, + data_t * input_Y, + int input_bytes ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + mbedtls_mpi_uint *buff_m = NULL; + mbedtls_mpi_mod_modulus m; + size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC( Y, limbs ); + + ASSERT_ALLOC( buff_m, limbs ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, copy_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, + input_X->x, input_X->len ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, + input_Y->x, input_Y->len ) + == 0 ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs len ); + size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs = limbs_X; + size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_X, limbs_Y ); + TEST_ASSERT( copy_limbs <= limbs ); + + ASSERT_ALLOC( tmp_X, limbs ); + ASSERT_ALLOC( tmp_Y, limbs ); + + ASSERT_ALLOC( buff_m, copy_limbs ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + &m, buff_m, copy_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + == 0 ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) + == 0 ); + ASSERT_ALLOC( X, limbs ); + memcpy( X, tmp_X, bytes ); + + TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) + == 0 ); + ASSERT_ALLOC( Y, bytes ); + memcpy( Y, tmp_Y, bytes ); + + /* condition is false */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); + + /* condition is true */ + TEST_CF_SECRET( X, bytes ); + TEST_CF_SECRET( Y, bytes ); + + mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); + + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + + /* Check if the given length is copied even it is smaller + than the length of the given MPIs. */ + if( copy_limbs < limbs ) + { + ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); + ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); + TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); + TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); + } + else + { + ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); + ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); + } + +exit: + mbedtls_free( tmp_X ); + mbedtls_free( tmp_Y ); + mbedtls_free( X ); + mbedtls_free( Y ); + + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( buff_m ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_mpi.data index 794031901..78afcb64c 100644 --- a/tests/suites/test_suite_mpi.data +++ b/tests/suites/test_suite_mpi.data @@ -301,84 +301,6 @@ mpi_cmp_mpi:"-1230000000000000000":"":-1 Test mbedtls_mpi_cmp_mpi: large negative < 0 (1 limb) mpi_cmp_mpi:"-1230000000000000000":"0":-1 -mbedtls_mpi_core_cond_assign: 1 limb -mpi_core_cond_assign:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_core_cond_assign: more limbs #1 -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_core_cond_assign: more limbs #2 -mpi_core_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_core_cond_assign: more limbs #3 -mpi_core_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_core_cond_assign: copy 256 bytes of limbs -mpi_core_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"6E3173EEAC8D68A5AB53D259F32D9E9C298FD2C4FAD3BEE9151DC103EA2382F5480C7D11F451C060A1E3D887E05A620EF6395763CB7A40FC473DD0771456A018E18635EA971C36DCAD09D60E8BD0E2E0CCD1AECB8BE0ABA881DBE60163F6C45947EC0B05FDAAA3DF944627DD4FACBAD3FF2AB4B99D91E548C06A4AF320A9CA0D2FD0CB19B90B9D6A8BF59CB631DD925B6DEA621FE962099D3D0BED6B13C0C546DC6B563A7FC63B1B77D277897DD7B9DF28C4C9213A183B83D982964C6AD8192CE7354B11ED727EDEF85074C46E4E2E6C1728FB7980385CDB36512F927847C6A14A118624ABC12B09DBEE60D651B5431AAD982228C61655EABB80C263871AE1CF":256 - -mbedtls_mpi_core_cond_assign: copy half of the limbs -mpi_core_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_core_cond_swap: same value -mpi_core_cond_swap:"FFFFFFFF":"FFFFFFFF":4 - -mbedtls_mpi_core_cond_swap: 1 limb -mpi_core_cond_swap:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_core_cond_swap: more limbs #1 -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_core_cond_swap: more limbs #2 -mpi_core_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_core_cond_swap: more limbs #3 -mpi_core_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_core_cond_swap: copy 256 bytes of limbs -mpi_core_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"9FBBA284460D8EAB5E0D66B634BD18FBA58C0C25417DD637526A7622C6425B46E09AEFBB8C2340AC823DFE990A62C85DB23BCDBEA734134606CEEB4BCF7444569D5EC4E32341ED09D7A5D0BB8B11D7B726BAECCF37D4FC1BEBD892CADD7BE9E093343C1A68D7A188DFE145C1EDBD8048B24E20A076F981D75ABE44318ADC40ED316C444774B6A90D3EE49557315AA6FAB162A498C0B2E2C15BD94186A665E12DDC39211583FA5F21218A3B46999FEBA4DFF454FB6ED35B8F3AE5F8EA840838BD76006DA112F85EDAA2CC07518FFC9724D5695BAF74F16C8D1A3A06029D2F5C1023D9E8A84D1267BD9AF82D1F5F77092D34BE4E8C4D1EA8C58F90B094DCFD6920":256 - -mbedtls_mpi_core_cond_swap: copy half of the limbs -mpi_core_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_mod_raw_cond_assign: 1 limb -mpi_mod_raw_cond_assign:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #1 -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #2 -mpi_mod_raw_cond_assign:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_mod_raw_cond_assign: more limbs #3 -mpi_mod_raw_cond_assign:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_mod_raw_cond_assign: copy 256 bytes of limbs -mpi_mod_raw_cond_assign:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"38AAE958A11CCE9F4B4D0EDF64D31DF6FEA451D56B3BAB3DB796739B96C5C9C619DAE2AD5394D41FC3746A4F35BA186F02D908E900A2BA5AC95D494378A6A6FC619801DA3F3B4C5BAAA49B16DD3B2EF9AFB4B82449F90628E1438405D321ACA8476EA3E7124D46D5F25CD57143F2C6A022F7D6EBF7C726AEF56D97E3944EACD627A814D2F546F5A659DD316AE57584BC46F0D976D537E78AB09D2599BB0F073366C541CEF4B6D76FE72D000A01167FCE506B805B295C12BFCAA3B768D8E6AA50D939BDB519A94000B7B18B2D36AE888EDC33DC933E9612D112BB7A95D0748F175E69F00B9D8470C64E27B4FF39551B09FF046F864E9FC22A3E1F73570DF31214":256 - -mbedtls_mpi_mod_raw_cond_assign: copy half of the limbs -mpi_mod_raw_cond_assign:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - -mbedtls_mpi_mod_raw_cond_swap: same value -mpi_mod_raw_cond_swap:"FFFFFFFF":"FFFFFFFF":4 - -mbedtls_mpi_mod_raw_cond_swap: 1 limb -mpi_mod_raw_cond_swap:"FFFFFFFF":"11111111":4 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #1 -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"0123456789ABCDEF0123456789ABCDEF":16 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #2 -mpi_mod_raw_cond_swap:"11111111EEEEEEEE77777777CCCCCCCC":"FEDCBA9876543210FEDCBA9876543210":16 - -mbedtls_mpi_mod_raw_cond_swap: more limbs #3 -mpi_mod_raw_cond_swap:"562D2B7E83BDC6FF783CEC0D6F46EAE7":"4C314E3B5CEB009C25F3300D5ECF670A":16 - -mbedtls_mpi_mod_raw_cond_swap: copy 256 bytes of limbs -mpi_mod_raw_cond_swap:"00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF00000000111111112222222233333333444444445555555566666666777777778888888899999999AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDDEEEEEEEEFFFFFFFF":"A6154F6146E5AE06C705EF228DB022B4C0C908D9FF11E83CB0836A37DD11D72B5AE0D053B6D0B376B015E3B09DCC04644F12CBCBD0407300DEDA1D817E99A030BA128A57494F6C6BC650A840B70B3A1CDF8A75A387184C93DEF02DD538C60E8764AD2E4600952E09D24DC5524AB34070D25D204174D23B2BFDACBC67F8973C47FAF01CE9810130934AB6A94C5E6D223EDEAE904FD18368231AC3113C2CD73E879124CE21FC379C695C41D6861F5FB957570C3E6EF61F4FBA5D9945FB42931FC8E68370177DB313BEB7AF79B1F0F872368946FF35BD059E60677342EB3A0431714044AD508CD244B7CE200C5DC75B3BC7846A4CF0436C9288F2153124C9283171":256 - -mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs -mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 - Base test mbedtls_mpi_lt_mpi_ct #1 mpi_lt_mpi_ct:1:"2B5":1:"2B5":0:0 diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_mpi.function index db274100a..4cec0a7c7 100644 --- a/tests/suites/test_suite_mpi.function +++ b/tests/suites/test_suite_mpi.function @@ -457,316 +457,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - } - else - ASSERT_COMPARE( X, bytes, Y, bytes ); - -exit: - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *tmp_X = NULL; - mbedtls_mpi_uint *tmp_Y = NULL; - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, - input_X->x, input_X->len ) - == 0 ); - ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, bytes ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); - ASSERT_ALLOC( Y, limbs ); - memcpy( Y, tmp_Y, bytes ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); - ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); - TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); - } - else - { - ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); - } - -exit: - mbedtls_free( tmp_X ); - mbedtls_free( tmp_Y ); - mbedtls_free( X ); - mbedtls_free( Y ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, - int input_bytes ) -{ - mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *Y = NULL; - mbedtls_mpi_uint *buff_m = NULL; - mbedtls_mpi_mod_modulus m; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - ASSERT_ALLOC( buff_m, limbs ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, - input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); - size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); - - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - ASSERT_ALLOC( buff_m, copy_limbs ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) - == 0 ); - ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, bytes ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - ASSERT_ALLOC( Y, bytes ); - memcpy( Y, tmp_Y, bytes ); - - /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); - - /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); - - mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - - /* Check if the given length is copied even it is smaller - than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); - ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); - TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); - } - else - { - ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); - } - -exit: - mbedtls_free( tmp_X ); - mbedtls_free( tmp_Y ); - mbedtls_free( X ); - mbedtls_free( Y ); - - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( buff_m ); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_lt_mpi_ct( int size_X, char * input_X, int size_Y, char * input_Y, From f1c24f0fbc0c1de8649f6931dd8467fe0cb5722a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 19 Oct 2022 16:43:22 +0100 Subject: [PATCH 0410/1574] Add missing include Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod_raw.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 099c94432..18ac97f78 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -1,6 +1,7 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" +#include "bignum_core.h" #include "bignum_mod_raw.h" #include "constant_time_internal.h" #include "test/constant_flow.h" From 01dd5480255f3555a090dd7bff856d9d767a62d9 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 19 Oct 2022 17:13:57 +0100 Subject: [PATCH 0411/1574] Minor fixes to x509_get_name() test function Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 6947f3c19..eb5f1aa78 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -824,7 +824,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *name; unsigned char *p; size_t name_len; - mbedtls_x509_name head; + mbedtls_x509_name head = { 0 }; mbedtls_x509_name *allocated, *prev; int ret; @@ -832,12 +832,9 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) p = name; ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); - if( ret == 0 ) { allocated = head.next; - head.next = NULL; - prev = NULL; while( allocated != NULL ) { @@ -848,7 +845,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) } } - TEST_ASSERT( ret == exp_ret ); + TEST_EQUAL( ret, exp_ret ); mbedtls_free( name ); } From 2bb9c8a884c55bd2c63c84b3e7a33967a07598f6 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 20 Oct 2022 10:18:37 +0100 Subject: [PATCH 0412/1574] Change brace initialization to memset Signed-off-by: David Horstmann --- tests/suites/test_suite_x509parse.function | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index eb5f1aa78..a3606f29b 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -824,10 +824,12 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *name; unsigned char *p; size_t name_len; - mbedtls_x509_name head = { 0 }; + mbedtls_x509_name head; mbedtls_x509_name *allocated, *prev; int ret; + memset( &head, 0, sizeof( head ) ); + name = mbedtls_test_unhexify_alloc( rdn_sequence, &name_len ); p = name; From dd2e4683d0bdfada6a40e49154b3c02f67f62bfa Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 10:16:56 +0100 Subject: [PATCH 0413/1574] Bignum Core: add limb size specific test generation In Bignum Core the result also involves a carry and both the result and the carry depend on the size of the limbs. Before this change both 32 and 64 bit specific result have been passed to the test functions. Moving this decision out of the tests makes the test functions easier to write and read and the test cases easier to read and debug. The change doesn't make writing the generator script any harder and might even make reading it easier. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 3652ac20a..23db980e8 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -72,6 +72,24 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac yield cls(a_value, b_value).create_test_case() +class BignumCoreOperationArchSplit(BignumCoreOperation): + #pylint: disable=abstract-method + """Common features for bignum core operations where the result depends on + the limb size.""" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + self.bits_in_limb = bits_in_limb + if self.bits_in_limb == 32: + self.dependencies = ["MBEDTLS_HAVE_INT32"] + elif self.bits_in_limb == 64: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value, 32).create_test_case() + yield cls(a_value, b_value, 64).create_test_case() class BignumCoreAddIf(BignumCoreOperation): """Test cases for bignum core add if.""" From e153a715f0c6093dd0a8ee0c0d649a80970aa1b1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 10:25:29 +0100 Subject: [PATCH 0414/1574] mpi_core_add_if: simplify tests Use the new, limb size aware base class to generate tests for mpi_core_add_if(). Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 18 ++++++-------- tests/suites/test_suite_bignum_core.function | 26 ++++++-------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 23db980e8..0b6ee9717 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -91,7 +91,7 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): yield cls(a_value, b_value, 32).create_test_case() yield cls(a_value, b_value, 64).create_test_case() -class BignumCoreAddIf(BignumCoreOperation): +class BignumCoreAddIf(BignumCoreOperationArchSplit): """Test cases for bignum core add if.""" count = 0 symbol = "+" @@ -99,17 +99,15 @@ class BignumCoreAddIf(BignumCoreOperation): test_name = "mbedtls_mpi_core_add_if" def result(self) -> List[str]: - tmp = self.int_a + self.int_b + result = self.int_a + self.int_b bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi(bound_val, 32) - bound_8 = bignum_common.bound_mpi(bound_val, 64) - carry_4, remainder_4 = divmod(tmp, bound_4) - carry_8, remainder_8 = divmod(tmp, bound_8) + + bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + carry, result = divmod(result, bound) + return [ - "\"{:x}\"".format(remainder_4), - str(carry_4), - "\"{:x}\"".format(remainder_8), - str(carry_8) + "\"{:x}\"".format(result), + str(carry) ] diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index de8b7f194..5bc955ca7 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -340,10 +340,9 @@ exit: /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, - char * input_S4, int carry4, - char * input_S8, int carry8 ) + char * input_S, int carry ) { - mbedtls_mpi S4, S8, A, B; + mbedtls_mpi S, A, B; mbedtls_mpi_uint *a = NULL; /* first value to add */ mbedtls_mpi_uint *b = NULL; /* second value to add */ mbedtls_mpi_uint *sum = NULL; @@ -351,28 +350,20 @@ void mpi_core_add_if( char * input_A, char * input_B, mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S4 ); - mbedtls_mpi_init( &S8 ); + mbedtls_mpi_init( &S ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S4, input_S4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S8, input_S8 ) ); - - /* We only need to work with one of (S4, carry4) or (S8, carry8) depending - * on sizeof(mbedtls_mpi_uint) - */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &S4 : &S8; - mbedtls_mpi_uint carry = ( sizeof(mbedtls_mpi_uint) == 4 ) ? carry4 : carry8; + TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); /* All of the inputs are +ve (or zero) */ TEST_EQUAL( 1, A.s ); TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X->s ); + TEST_EQUAL( 1, S.s ); /* Test cases are such that A <= B, so #limbs should be <= */ TEST_LE_U( A.n, B.n ); - TEST_LE_U( X->n, B.n ); + TEST_LE_U( S.n, B.n ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -400,7 +391,7 @@ void mpi_core_add_if( char * input_A, char * input_B, */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( sum, S.p, S.n * sizeof(mbedtls_mpi_uint) ); /* The test cases have a <= b to avoid repetition, so we test a + b then, * if a != b, b + a. If a == b, we can test when a and b are aliased */ @@ -448,8 +439,7 @@ exit: mbedtls_free( sum ); mbedtls_free( d ); - mbedtls_mpi_free( &S4 ); - mbedtls_mpi_free( &S8 ); + mbedtls_mpi_free( &S ); mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); } From 66414209519a912dc63d346916b52187982b9e73 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:36:16 +0200 Subject: [PATCH 0415/1574] Bignum core: Break shift_r function out of the classic shift_r This commit contains the function prototype for mbedtls_mpi_core_shift_r, and the implementation minimally modified from mbedtls_mpi_shift_r. Signed-off-by: Gilles Peskine --- library/bignum.c | 35 ++++++++++++++++++++++------------- library/bignum_core.h | 15 +++++++++++++++ 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 1c7f9197f..0787272fe 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -770,27 +770,38 @@ cleanup: * Right-shift: X >>= count */ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) +{ + MPI_VALIDATE_RET( X != NULL ); + if( X->n != 0 ) + mbedtls_mpi_core_shift_r( X->p, X->n, count ); + return( 0 ); +} + +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ) { size_t i, v0, v1; mbedtls_mpi_uint r0 = 0, r1; - MPI_VALIDATE_RET( X != NULL ); v0 = count / biL; v1 = count & (biL - 1); - if( v0 > X->n || ( v0 == X->n && v1 > 0 ) ) - return mbedtls_mpi_lset( X, 0 ); + if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) + { + memset( X, 0, limbs * ciL ); + return; + } /* * shift by count / limb_size */ if( v0 > 0 ) { - for( i = 0; i < X->n - v0; i++ ) - X->p[i] = X->p[i + v0]; + for( i = 0; i < limbs - v0; i++ ) + X[i] = X[i + v0]; - for( ; i < X->n; i++ ) - X->p[i] = 0; + for( ; i < limbs; i++ ) + X[i] = 0; } /* @@ -798,16 +809,14 @@ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) */ if( v1 > 0 ) { - for( i = X->n; i > 0; i-- ) + for( i = limbs; i > 0; i-- ) { - r1 = X->p[i - 1] << (biL - v1); - X->p[i - 1] >>= v1; - X->p[i - 1] |= r0; + r1 = X[i - 1] << (biL - v1); + X[i - 1] >>= v1; + X[i - 1] |= r0; r0 = r1; } } - - return( 0 ); } /* diff --git a/library/bignum_core.h b/library/bignum_core.h index 196736d05..4ba14331c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -262,6 +262,21 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); +/** \brief Shift a machine integer right by a number of bits. + * + * Shifting by more bits than there are bit positions + * in \p X is valid and results in setting \p X to 0. + * + * This function's execution time depends on the value + * of \p count (and of course \p limbs). + * + * \param[in,out] X The number to shift. + * \param limbs The number of limbs of \p X. This must be at least 1. + * \param count The number of bits to shift by. + */ +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ); + /** * \brief Conditional addition of two fixed-size large unsigned integers, * returning the carry. From c279b2fa4a72e53c4bce6426c95043b8e7b1c2a2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:38:38 +0200 Subject: [PATCH 0416/1574] Move mbedtls_mpi_core_shift_r to the proper source file Signed-off-by: Gilles Peskine --- library/bignum.c | 42 --------------------------------------- library/bignum_core.c | 46 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 0787272fe..58cd2f732 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -777,48 +777,6 @@ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) return( 0 ); } -void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, - size_t count ) -{ - size_t i, v0, v1; - mbedtls_mpi_uint r0 = 0, r1; - - v0 = count / biL; - v1 = count & (biL - 1); - - if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) - { - memset( X, 0, limbs * ciL ); - return; - } - - /* - * shift by count / limb_size - */ - if( v0 > 0 ) - { - for( i = 0; i < limbs - v0; i++ ) - X[i] = X[i + v0]; - - for( ; i < limbs; i++ ) - X[i] = 0; - } - - /* - * shift by count % limb_size - */ - if( v1 > 0 ) - { - for( i = limbs; i > 0; i-- ) - { - r1 = X[i - 1] << (biL - v1); - X[i - 1] >>= v1; - X[i - 1] |= r0; - r0 = r1; - } - } -} - /* * Compare unsigned values */ diff --git a/library/bignum_core.c b/library/bignum_core.c index 89fd4043e..00837298b 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -316,6 +316,52 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } + + +void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, + size_t count ) +{ + size_t i, v0, v1; + mbedtls_mpi_uint r0 = 0, r1; + + v0 = count / biL; + v1 = count & (biL - 1); + + if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) + { + memset( X, 0, limbs * ciL ); + return; + } + + /* + * shift by count / limb_size + */ + if( v0 > 0 ) + { + for( i = 0; i < limbs - v0; i++ ) + X[i] = X[i + v0]; + + for( ; i < limbs; i++ ) + X[i] = 0; + } + + /* + * shift by count % limb_size + */ + if( v1 > 0 ) + { + for( i = limbs; i > 0; i-- ) + { + r1 = X[i - 1] << (biL - v1); + X[i - 1] >>= v1; + X[i - 1] |= r0; + r0 = r1; + } + } +} + + + mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, size_t limbs, From 5ff03d49c0be5d1dea0e13cb803016fa210faf17 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 11:21:22 +0100 Subject: [PATCH 0417/1574] Bignum Core test: move bound to constructor We will need it to pad parameters in the base class, but it is useful because every child class would need to calculate it anyway. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 0b6ee9717..8327df1b8 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -79,11 +79,13 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: super().__init__(val_a, val_b) + bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb + self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] + self.dependencies = ["MBDTLS_HAVE_INT64"] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -100,10 +102,8 @@ class BignumCoreAddIf(BignumCoreOperationArchSplit): def result(self) -> List[str]: result = self.int_a + self.int_b - bound_val = max(self.int_a, self.int_b) - bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - carry, result = divmod(result, bound) + carry, result = divmod(result, self.bound) return [ "\"{:x}\"".format(result), From ba516f752436dbe23c62ced96f526f04d62faa97 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 17 Oct 2022 13:47:13 +0100 Subject: [PATCH 0418/1574] mpi_core_add_if test: Remove dependency on old API Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 19 ++- tests/suites/test_suite_bignum_core.function | 123 +++++++------------ 2 files changed, 59 insertions(+), 83 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 8327df1b8..ab582d3a7 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -61,8 +61,8 @@ class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metac generated to provide some context to the test case. """ if not self.case_description: - self.case_description = "{} {} {}".format( - self.arg_a, self.symbol, self.arg_b + self.case_description = "{:x} {} {:x}".format( + self.int_a, self.symbol, self.int_b ) return super().description() @@ -82,10 +82,20 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs*self.bits_in_limb//8 + self.hex_digits = 2*byte_len if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: - self.dependencies = ["MBDTLS_HAVE_INT64"] + self.dependencies = ["MBEDTLS_HAVE_INT64"] + else: + raise ValueError("Invalid number of bits in limb!") + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -106,11 +116,10 @@ class BignumCoreAddIf(BignumCoreOperationArchSplit): carry, result = divmod(result, self.bound) return [ - "\"{:x}\"".format(result), + bignum_common.quote_str(self.pad_to_limbs(result)), str(carry) ] - class BignumCoreSub(BignumCoreOperation): """Test cases for bignum core sub.""" count = 0 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 5bc955ca7..ab4f5b564 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -342,106 +342,73 @@ exit: void mpi_core_add_if( char * input_A, char * input_B, char * input_S, int carry ) { - mbedtls_mpi S, A, B; - mbedtls_mpi_uint *a = NULL; /* first value to add */ - mbedtls_mpi_uint *b = NULL; /* second value to add */ - mbedtls_mpi_uint *sum = NULL; - mbedtls_mpi_uint *d = NULL; /* destination - the in/out first operand */ + mbedtls_mpi_uint *A = NULL; /* first value to add */ + size_t A_limbs; + mbedtls_mpi_uint *B = NULL; /* second value to add */ + size_t B_limbs; + mbedtls_mpi_uint *S = NULL; /* expected result */ + size_t S_limbs; + mbedtls_mpi_uint *X = NULL; /* destination - the in/out first operand */ + size_t X_limbs; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); + X_limbs = S_limbs; + ASSERT_ALLOC( X, X_limbs ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); + /* add_if expects all operands to be the same length */ + TEST_EQUAL( A_limbs, B_limbs ); + TEST_EQUAL( A_limbs, S_limbs ); + size_t limbs = A_limbs; + size_t bytes = limbs * sizeof( *A ); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, S.s ); + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ - /* Test cases are such that A <= B, so #limbs should be <= */ - TEST_LE_U( A.n, B.n ); - TEST_LE_U( S.n, B.n ); + /* A + B */ - /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ - - /* mbedtls_mpi_core_add_if() uses input arrays of mbedtls_mpi_uints which - * must be the same size. The MPIs we've read in will only have arrays - * large enough for the number they represent. Therefore we create new - * raw arrays of mbedtls_mpi_uints and populate them from the MPIs we've - * just read in. - * - * We generated test data such that B was always >= A, so that's how many - * limbs each of these need. - */ - size_t limbs = B.n; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( sum, bytes ); - ASSERT_ALLOC( d, bytes ); - - /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as - * processed by mbedtls_mpi_core_add_if()) are little endian, we can just - * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) - */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( sum, S.p, S.n * sizeof(mbedtls_mpi_uint) ); - - /* The test cases have a <= b to avoid repetition, so we test a + b then, - * if a != b, b + a. If a == b, we can test when a and b are aliased */ - - /* a + b */ - - /* cond = 0 => d unchanged, no carry */ - memcpy( d, a, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, b, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, a, bytes ); + /* cond = 0 => X unchanged, no carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, A, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, b, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) + if ( memcmp( A, B, bytes ) == 0 ) { - /* a == b, so test where a and b are aliased */ + /* A == B, so test where A and B are aliased */ - /* cond = 0 => d unchanged, no carry */ - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( b, b, limbs, 0 ) ); - ASSERT_COMPARE( b, bytes, B.p, bytes ); + /* cond = 0 => X unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( b, b, limbs, 1 ) ); - ASSERT_COMPARE( b, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); } else { - /* a != b, so test b + a */ + /* A != B, so test B + A */ /* cond = 0 => d unchanged, no carry */ - memcpy( d, b, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( d, a, limbs, 0 ) ); - ASSERT_COMPARE( d, bytes, b, bytes ); + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( d, a, limbs, 1 ) ); - ASSERT_COMPARE( d, bytes, sum, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); } exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( sum ); - mbedtls_free( d ); - - mbedtls_mpi_free( &S ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( S ); + mbedtls_free( X ); } /* END_CASE */ From b0ee5772878d11b92fa103254e96d38509c93ed0 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 23:13:33 +0200 Subject: [PATCH 0419/1574] Bignum core: test shift_r Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_core.py | 41 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 20 ++++++++++ 2 files changed, 61 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 3652ac20a..e6310f32b 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -29,6 +29,47 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): target_basename = 'test_suite_bignum_core.generated' +class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): + """Test cases for mbedtls_bignum_core_shift_r().""" + count = 0 + test_function = "mpi_core_shift_r" + test_name = "Core shift right" + + DATA = [ + ('00', '0', [0, 1, 8]), + ('01', '1', [0, 1, 2, 8, 64]), + ('dee5ca1a7ef10a75', '64-bit', + list(range(11)) + [31, 32, 33, 63, 64, 65, 71, 72]), + ('002e7ab0070ad57001', '[leading 0 limb]', + [0, 1, 8, 63, 64]), + ('a1055eb0bb1efa1150ff', '80-bit', + [0, 1, 8, 63, 64, 65, 72, 79, 80, 81, 88, 128, 129, 136]), + ('020100000000000000001011121314151617', '138-bit', + [0, 1, 8, 9, 16, 72, 73, 136, 137, 138, 144]), + ] + + def __init__(self, input_hex: str, descr: str, count: int) -> None: + self.input_hex = input_hex + self.number_description = descr + self.shift_count = count + self.result = bignum_common.hex_to_int(input_hex) >> count + + def arguments(self) -> List[str]: + return ['"{}"'.format(self.input_hex), + str(self.shift_count), + '"{:0{}x}"'.format(self.result, len(self.input_hex))] + + def description(self) -> str: + return 'Core shift {} >> {}'.format(self.number_description, + self.shift_count) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for input_hex, descr, counts in cls.DATA: + for count in counts: + yield cls(input_hex, descr, count).create_test_case() + + class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Common features for bignum core operations.""" diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index de8b7f194..94b0ce298 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -338,6 +338,26 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_shift_r( char *input, int count, char *result ) +{ + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *Y = NULL; + size_t limbs, n; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &limbs, input ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &n, result ) ); + TEST_EQUAL( limbs, n ); + + mbedtls_mpi_core_shift_r( X, limbs, count ); + ASSERT_COMPARE( X, limbs * ciL, Y, limbs * ciL ); + +exit: + mbedtls_free( X ); + mbedtls_free( Y ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_add_if( char * input_A, char * input_B, char * input_S4, int carry4, From 2c95a56e13501e1f02ec570b70fc19d3a3572796 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 20 Oct 2022 12:38:44 +0200 Subject: [PATCH 0420/1574] Remove KNOWN_MBEDTLS_SUPPORTED_HASH_ALG as it is now not used anywhere Signed-off-by: Przemek Stekiel --- tests/include/test/psa_exercise_key.h | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/tests/include/test/psa_exercise_key.h b/tests/include/test/psa_exercise_key.h index 18333a937..aa0aeb5af 100644 --- a/tests/include/test/psa_exercise_key.h +++ b/tests/include/test/psa_exercise_key.h @@ -52,30 +52,6 @@ #undef KNOWN_SUPPORTED_HASH_ALG #endif -/** \def KNOWN_MBEDTLS_SUPPORTED_HASH_ALG - * - * A hash algorithm that is known to be supported by Mbed TLS APIs. - * - * This is used in some smoke tests where the hash algorithm is used as - * part of another algorithm like a signature algorithm and the hashing is - * completed through an Mbed TLS hash API, not the PSA one. - */ -#if defined(MBEDTLS_MD5_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_MD5 -/* MBEDTLS_RIPEMD160_C omitted. This is necessary for the sake of - * exercise_signature_key() because Mbed TLS doesn't support RIPEMD160 - * in RSA PKCS#1v1.5 signatures. A RIPEMD160-only configuration would be - * implausible anyway. */ -#elif defined(MBEDTLS_SHA1_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_1 -#elif defined(MBEDTLS_SHA256_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_256 -#elif defined(MBEDTLS_SHA512_C) -#define KNOWN_MBEDTLS_SUPPORTED_HASH_ALG PSA_ALG_SHA_512 -#else -#undef KNOWN_MBEDLTS_SUPPORTED_HASH_ALG -#endif - /** \def KNOWN_SUPPORTED_BLOCK_CIPHER * * A block cipher that is known to be supported. From 560805d665ac8de7f016e5fa1af96a5646deaf23 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 20 Oct 2022 12:04:40 +0100 Subject: [PATCH 0421/1574] Fix mbedtls_mpi_core_add_if test aliasing Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index ab4f5b564..9803587bc 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -383,7 +383,7 @@ void mpi_core_add_if( char * input_A, char * input_B, /* cond = 0 => X unchanged, no carry */ memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); /* cond = 1 => correct result and carry */ From 78e3c9b5747b49e6821172927f6479a23d28278b Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 20 Oct 2022 12:09:30 +0100 Subject: [PATCH 0422/1574] Fix style in bignum_core.py Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index ab582d3a7..2e641953d 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -82,9 +82,9 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs*self.bits_in_limb//8 - self.hex_digits = 2*byte_len + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs * self.bits_in_limb // 8 + self.hex_digits = 2 * byte_len if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: From be17655b5714a032af19ada0ab1d44446ae74f41 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 20 Oct 2022 16:57:10 +0100 Subject: [PATCH 0423/1574] mbedtls_mpi_mod_modulus_init() must be called before any 'goto exit' in tests Fixes Coverity issues 381527 and 381526. Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 18ac97f78..88b891780 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -17,6 +17,9 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, int iendian, int iret, int oret ) { + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + if( iret != 0 ) TEST_ASSERT( oret == 0 ); @@ -44,8 +47,6 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, else endian = iendian; - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; memset( init, 0xFF, sizeof( init ) ); int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, @@ -124,6 +125,8 @@ void mpi_mod_raw_cond_assign( data_t * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -131,7 +134,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, limbs ); ASSERT_ALLOC( buff_m, limbs ); - mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, @@ -203,6 +205,8 @@ void mpi_mod_raw_cond_swap( data_t * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -210,7 +214,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, limbs ); ASSERT_ALLOC( buff_m, copy_limbs ); - mbedtls_mpi_mod_modulus_init( &m ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, From 076b2d062f4e33776be5d05795386c341d71c4e1 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 21 Oct 2022 11:09:45 +0800 Subject: [PATCH 0424/1574] Improve the method of printing string build version Following changes are introduced with this commit: - Call mbedtls_version_get_string before printing string build version instead of printing macro directly - Output build version in the beginning of ssl_client2 program Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 59a96d212..ae4bb5702 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -26,7 +26,6 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_VERSION_C) -#include "mbedtls/build_info.h" #include "mbedtls/version.h" #endif /* MBEDTLS_VERSION_C */ @@ -1003,9 +1002,11 @@ int main( int argc, char *argv[] ) { if( strcmp( q, "1" ) == 0 ) { + char version_str[10]; + memset( version_str, 0, 10 ); + mbedtls_version_get_string( version_str ); mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, - mbedtls_version_get_number() ); + version_str, mbedtls_version_get_number() ); goto exit; } } @@ -1722,6 +1723,14 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ +#if defined(MBEDTLS_VERSION_C) + char version_str[10]; + memset( version_str, 0, 10 ); + mbedtls_version_get_string( version_str ); + mbedtls_printf( "build version: %s (build %u)\n", + version_str, mbedtls_version_get_number() ); +#endif /* MBEDTLS_VERSION_C */ + /* * 0. Initialize the RNG and the session data */ @@ -2480,11 +2489,6 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_VERSION_C) - mbedtls_printf( "build version: %s (build %u)\n", - MBEDTLS_VERSION_STRING, mbedtls_version_get_number() ); -#endif /* MBEDTLS_VERSION_C */ - #if defined(MBEDTLS_X509_CRT_PARSE_C) /* * 5. Verify the server certificate From 02e2fa0f64b6ded7a81d50fa4524b9be6c9a4315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 21 Oct 2022 11:01:22 +0200 Subject: [PATCH 0425/1574] Make ChangeLog more visible in PR template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- .github/pull_request_template.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c5804436a..9bc3b0a4f 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -17,6 +17,10 @@ Changes do not have to be backported if: Yes | NO Which branch? +## Requires ChangeLog entry + +YES | NO - if no, why not? + ## Migrations If there is any API change, what's the incentive and logic for it. From 01df9ddda758536f9020eb7c4dfaba9600e7b22b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 20 Oct 2022 14:21:21 +0200 Subject: [PATCH 0426/1574] Add test component: component_test_psa_crypto_config_reference_hash_use_psa Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 61d675f4f..140166b8f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2110,6 +2110,34 @@ component_test_psa_crypto_config_accel_hash_use_psa () { fi } +component_test_psa_crypto_config_reference_hash_use_psa() { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + # start with full + scripts/config.py full + # use PSA config and disable driver-less algs as in the component + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + # disable options as in the component + # (no need to disable whole modules, we'll just skip their test suite) + scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + make test + + # hidden option: when running outcome-analysis.sh, we can skip this + if [ "${SKIP_SSL_OPT_COMPAT_SH-unset}" = "unset" ]; then + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + tests/ssl-opt.sh + + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + tests/compat.sh + else + echo "skip ssl-opt.sh and compat.sh" + fi +} + component_test_psa_crypto_config_accel_cipher () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated cipher" From 4e95590ae79ba9c026eec992f3e307f4cf16f8a4 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 21 Oct 2022 13:42:08 +0200 Subject: [PATCH 0427/1574] analyze_outcomes.py: Add test coverage regresion analyze for driver only builds Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 77 ++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 6 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index d06a0596f..f5d2ac131 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -60,6 +60,41 @@ def analyze_coverage(results, outcomes): # fixed this branch to have full coverage of test cases. results.warning('Test case not executed: {}', key) +def analyze_driver_vs_reference(outcomes, components, ignored_tests): + """Check that all tests executed in the reference component are also + executed in the corresponding driver component. + Skip test suits provided in ignored_tests list. + """ + driver_component = components[0] + reference_component = components[1] + available = check_test_cases.collect_available_test_cases() + result = True + + for key in available: + # Skip ignored test suites + test_suit = key.split(';')[0] # retrieve test suit name + test_suit = test_suit.split('.')[0] # retrieve main part of test suit name + if(test_suit in ignored_tests): + continue + # Continue if test was not executed by any component + hits = outcomes[key].hits() if key in outcomes else 0 + if(hits == 0): + continue + # Search for tests that run in reference component and not in driver component + driver_test_passed = False + reference_test_passed = False + for entry in outcomes[key].successes: + if(driver_component in entry): + driver_test_passed = True + if(reference_component in entry): + reference_test_passed = True + #if(driver_test_passed == True and reference_test_passed == False): + # print('{}: driver: passed; reference: skipped'.format(key)) + if(driver_test_passed == False and reference_test_passed == True): + print('{}: driver: skipped/failed; reference: passed'.format(key)) + result = False + return result + def analyze_outcomes(outcomes): """Run all analyses on the given outcome collection.""" results = Results() @@ -87,20 +122,50 @@ by a semicolon. outcomes[key].failures.append(setup) return outcomes -def analyze_outcome_file(outcome_file): - """Analyze the given outcome file.""" +def do_analyze_coverage(outcome_file): + """Perform coverage analyze.""" outcomes = read_outcome_file(outcome_file) - return analyze_outcomes(outcomes) + results = analyze_outcomes(outcomes) + return (True if results.error_count == 0 else False) + +def do_analyze_driver_vs_reference(outcome_file, components, ignored_tests): + """Perform driver vs reference analyze.""" + # We need exactly 2 components to analyze (first driver and second reference) + if(len(components) != 2 or "accel" not in components[0] or "reference" not in components[1]): + print('Error: Wrong component list. Exactly 2 components are required (driver,reference). ') + return False + outcomes = read_outcome_file(outcome_file) + return analyze_driver_vs_reference(outcomes, components, ignored_tests) def main(): try: parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('outcomes', metavar='OUTCOMES.CSV', + parser.add_argument('--outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') + parser.add_argument('--task', + help='Analyze to be done: analyze_coverage or analyze_driver_vs_reference') + parser.add_argument('--components', + help='List of test components to compare. Must be exactly 2 in valid order: driver,reference. ' + 'Apply only for analyze_driver_vs_reference task.') + parser.add_argument('--ignore', + help='List of test suits to ignore. Apply only for analyze_driver_vs_reference task.') options = parser.parse_args() - results = analyze_outcome_file(options.outcomes) - if results.error_count > 0: + + result = False + + if(options.task == 'analyze_coverage'): + result = do_analyze_coverage(options.outcomes) + elif(options.task == 'analyze_driver_vs_reference'): + components_list = options.components.split(',') + ignored_tests_list = options.ignore.split(',') + ignored_tests_list = ['test_suite_' + x for x in ignored_tests_list] + result = do_analyze_driver_vs_reference(options.outcomes, components_list, ignored_tests_list) + else: + print('Error: Unknown task: {}'.format(options.task)) + + if(result == False): sys.exit(1) + print("SUCCESS :-)") except Exception: # pylint: disable=broad-except # Print the backtrace and exit explicitly with our chosen status. traceback.print_exc() From 831fee68c3f514e49b01b1752ccaff11cf0fca7b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 16:22:59 +0200 Subject: [PATCH 0428/1574] tls13: keys: Avoid input buffer copy In mbedtls_ssl_tls13_evolve_secret() avoid to copy the input buffer into a local buffer as the copy is avoidable. This also fixes a potential overflow as the size of the local buffer was not checked when copying into it. With the current calls to mbedtls_ssl_tls13_evolve_secret() no buffer overflow was expected to happen though. Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 730e50c67..737a063a7 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -38,9 +38,6 @@ #define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ .name = string, -#define TLS1_3_EVOLVE_INPUT_SIZE ( PSA_HASH_MAX_SIZE > PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ) ? \ - PSA_HASH_MAX_SIZE : PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE - struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = { /* This seems to work in C, despite the string literal being one @@ -334,9 +331,12 @@ int mbedtls_ssl_tls13_evolve_secret( int ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; - size_t hlen, ilen; + size_t hlen; unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - unsigned char tmp_input [ TLS1_3_EVOLVE_INPUT_SIZE ] = { 0 }; + const unsigned char all_zeroes_input[ MBEDTLS_TLS1_3_MD_MAX_SIZE ] = { 0 }; + const unsigned char *l_input = NULL; + size_t l_input_len; + psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; @@ -364,12 +364,13 @@ int mbedtls_ssl_tls13_evolve_secret( if( input != NULL && input_len != 0 ) { - memcpy( tmp_input, input, input_len ); - ilen = input_len; + l_input = input; + l_input_len = input_len; } else { - ilen = hlen; + l_input = all_zeroes_input; + l_input_len = hlen; } status = psa_key_derivation_setup( &operation, @@ -388,8 +389,7 @@ int mbedtls_ssl_tls13_evolve_secret( status = psa_key_derivation_input_bytes( &operation, PSA_KEY_DERIVATION_INPUT_SECRET, - tmp_input, - ilen ); + l_input, l_input_len ); if( status != PSA_SUCCESS ) goto cleanup; @@ -406,7 +406,6 @@ int mbedtls_ssl_tls13_evolve_secret( status = ( status == PSA_SUCCESS ? abort_status : status ); ret = ( ret == 0 ? psa_ssl_status_to_mbedtls ( status ) : ret ); mbedtls_platform_zeroize( tmp_secret, sizeof(tmp_secret) ); - mbedtls_platform_zeroize( tmp_input, sizeof(tmp_input) ); return( ret ); } From 4c7edb2b9bf2ee7792545f1ae557f1a214c2d614 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 15:37:11 +0200 Subject: [PATCH 0429/1574] tls13: keys: Fix indentation Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 43 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 737a063a7..7feac2d6f 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1250,9 +1250,6 @@ exit: int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) && defined(MBEDTLS_ECDH_C) - psa_status_t status = PSA_ERROR_GENERIC_ERROR; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED && MBEDTLS_ECDH_C */ mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); @@ -1269,27 +1266,29 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { #if defined(MBEDTLS_ECDH_C) /* Compute ECDH shared secret. */ - status = psa_raw_key_agreement( - PSA_ALG_ECDH, handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - handshake->premaster, sizeof( handshake->premaster ), - &handshake->pmslen ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); - return( ret ); - } + psa_status_t status = PSA_ERROR_GENERIC_ERROR; - status = psa_destroy_key( handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); - } + status = psa_raw_key_agreement( + PSA_ALG_ECDH, handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, + handshake->premaster, sizeof( handshake->premaster ), + &handshake->pmslen ); + if( status != PSA_SUCCESS ) + { + ret = psa_ssl_status_to_mbedtls( status ); + MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); + return( ret ); + } - handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; + status = psa_destroy_key( handshake->ecdh_psa_privkey ); + if( status != PSA_SUCCESS ) + { + ret = psa_ssl_status_to_mbedtls( status ); + MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); + return( ret ); + } + + handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_ECDH_C */ } else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) From 3b056202d3ae23a2a9658bf46a243f46741c33ec Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 17:20:21 +0200 Subject: [PATCH 0430/1574] tls13: keys: Do not use `handshake->premaster` `handshake->premaster` was used to store the (EC)DHE shared secret but in TLS 1.3 there is no need to store it in a context. Futhermore, `handshake->premaster` and more specifically its sizing is TLS 1.2 specific thus better to not use it in TLS 1.3. Allocate a buffer to store the shared secret instead. Allocation instead of a stack buffer as the maintenance of the size of such buffer is harder (new elliptic curve for ECDHE, support for FFDHE ... ). Signed-off-by: Ronald Cron --- library/ssl_misc.h | 5 +++-- library/ssl_tls13_keys.c | 37 +++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 828937c3f..8a1834fd2 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -600,8 +600,6 @@ struct mbedtls_ssl_handshake_params size_t ecrs_n; /*!< place for saving a length */ #endif - size_t pmslen; /*!< premaster length */ - mbedtls_ssl_ciphersuite_t const *ciphersuite_info; void (*update_checksum)(mbedtls_ssl_context *, const unsigned char *, size_t); @@ -853,8 +851,11 @@ struct mbedtls_ssl_handshake_params unsigned char randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN + MBEDTLS_SERVER_HELLO_RANDOM_LEN]; /*!< random bytes */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) unsigned char premaster[MBEDTLS_PREMASTER_SIZE]; /*!< premaster secret */ + size_t pmslen; /*!< premaster length */ +#endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) int extensions_present; /*!< extension presence; Each bitfield diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 7feac2d6f..b1f992e75 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1253,6 +1253,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); + unsigned char *shared_secret = NULL; + size_t shared_secret_len = 0; #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) /* @@ -1267,17 +1269,28 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECDH_C) /* Compute ECDH shared secret. */ psa_status_t status = PSA_ERROR_GENERIC_ERROR; + psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT; + + status = psa_get_key_attributes( handshake->ecdh_psa_privkey, + &key_attributes ); + if( status != PSA_SUCCESS ) + ret = psa_ssl_status_to_mbedtls( status ); + + shared_secret_len = PSA_BITS_TO_BYTES( + psa_get_key_bits( &key_attributes ) ); + shared_secret = mbedtls_calloc( 1, shared_secret_len ); + if( shared_secret == NULL ) + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); status = psa_raw_key_agreement( PSA_ALG_ECDH, handshake->ecdh_psa_privkey, handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - handshake->premaster, sizeof( handshake->premaster ), - &handshake->pmslen ); + shared_secret, shared_secret_len, &shared_secret_len ); if( status != PSA_SUCCESS ) { ret = psa_ssl_status_to_mbedtls( status ); MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); - return( ret ); + goto cleanup; } status = psa_destroy_key( handshake->ecdh_psa_privkey ); @@ -1285,7 +1298,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) { ret = psa_ssl_status_to_mbedtls( status ); MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); + goto cleanup; } handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; @@ -1306,22 +1319,26 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) */ ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, handshake->tls13_master_secrets.early, - handshake->premaster, handshake->pmslen, + shared_secret, shared_secret_len, handshake->tls13_master_secrets.handshake ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); - return( ret ); + goto cleanup; } MBEDTLS_SSL_DEBUG_BUF( 4, "Handshake secret", handshake->tls13_master_secrets.handshake, PSA_HASH_LENGTH( hash_alg ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) - mbedtls_platform_zeroize( handshake->premaster, sizeof( handshake->premaster ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ - return( 0 ); +cleanup: + if( shared_secret != NULL ) + { + mbedtls_platform_zeroize( shared_secret, shared_secret_len ); + mbedtls_free( shared_secret ); + } + + return( ret ); } /* Generate application traffic keys since any records following a 1-RTT Finished message From b15d4d8966032e1b39709e6a21fce5a88509992c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 08:47:32 +0200 Subject: [PATCH 0431/1574] tls13: keys: Fix error code Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index b1f992e75..d8d28f11d 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1307,11 +1307,11 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "DHE not supported." ) ); - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } #else - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ /* From 9a6a49c7cba1f20d2121b6d14b8ede104e79da6a Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 08:52:30 +0200 Subject: [PATCH 0432/1574] tls13: keys: Fail if the group type is not ECDHE or DHE Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index d8d28f11d..897541bb1 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1304,9 +1304,9 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_ECDH_C */ } - else if( mbedtls_ssl_tls13_named_group_is_dhe( handshake->offered_group_id ) ) + else { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DHE not supported." ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Group not supported." ) ); return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } From fa1e04a7c4cfcd9f31b70096487b3fe7d2079a29 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 09:04:59 +0200 Subject: [PATCH 0433/1574] tls13: keys: Fix PSK build only case When deriving the handshake stage master secret, in the case of a PSK only build, the only possible key exchange mode is PSK and there is no ephemeral key exchange shared secret in that case. Thus do not error out in that case in the first phae of the derivation dedicated to the shared secret. Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 897541bb1..2209dd145 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1310,8 +1310,6 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#else - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ /* From 2a87e9bf83640e3b1bc86679c52656c26a0212c2 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 19 Oct 2022 10:55:26 +0200 Subject: [PATCH 0434/1574] tls: Align set and usage check for PSK Check that the identity length is not zero in ssl_conf_set_psk_identity() as it is done in mbedtls_ssl_conf_has_static_psk(). Signed-off-by: Ronald Cron --- library/ssl_tls.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4678f5386..a3586e747 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1654,6 +1654,7 @@ static int ssl_conf_set_psk_identity( mbedtls_ssl_config *conf, { /* Identity len will be encoded on two bytes */ if( psk_identity == NULL || + psk_identity_len == 0 || ( psk_identity_len >> 16 ) != 0 || psk_identity_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) { From d29e13eb1bc1d17344cb4d7e26c2c79509540dce Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 19 Oct 2022 10:33:48 +0200 Subject: [PATCH 0435/1574] tls: Use the same function in TLS 1.2 and 1.3 to check PSK conf Signed-off-by: Ronald Cron --- library/ssl_misc.h | 3 ++- library/ssl_tls.c | 19 ++++++++++++------- library/ssl_tls12_client.c | 21 --------------------- library/ssl_tls13_client.c | 13 ++++--------- 4 files changed, 18 insertions(+), 38 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8a1834fd2..ae602562d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1366,7 +1366,8 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ -#if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_2) + +#if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); #endif diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a3586e747..b62e2ac73 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1600,15 +1600,20 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_conf_psk_is_configured( mbedtls_ssl_config const *conf ) +int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { + if( conf->psk_identity == NULL || + conf->psk_identity_len == 0 ) + { + return( 0 ); + } + #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( !mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) + if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) return( 1 ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL ) + + if( conf->psk != NULL && conf->psk_len != 0 ) return( 1 ); return( 0 ); @@ -1678,7 +1683,7 @@ int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( ssl_conf_psk_is_configured( conf ) ) + if( mbedtls_ssl_conf_has_static_psk( conf ) ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); /* Check and set raw PSK */ @@ -1796,7 +1801,7 @@ int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( ssl_conf_psk_is_configured( conf ) ) + if( mbedtls_ssl_conf_has_static_psk( conf ) ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); /* Check and set opaque PSK */ diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7b62e71a5..72c77bb89 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -49,27 +49,6 @@ #include "hash_info.h" -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) -{ - if( conf->psk_identity == NULL || - conf->psk_identity_len == 0 ) - { - return( 0 ); - } - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - return( 1 ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - if( conf->psk != NULL && conf->psk_len != 0 ) - return( 1 ); - - return( 0 ); -} -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ - #if defined(MBEDTLS_SSL_RENEGOTIATION) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8510d8f3e..4aba59f9e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -728,11 +728,6 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -static int ssl_tls13_has_configured_psk( const mbedtls_ssl_config *conf ) -{ - return( conf->psk != NULL && conf->psk_identity != NULL ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *hash_alg, @@ -740,7 +735,7 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, size_t *identity_len ) { - if( !ssl_tls13_has_configured_psk( ssl->conf ) ) + if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -756,7 +751,7 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, size_t *psk_len ) { - if( !ssl_tls13_has_configured_psk( ssl->conf ) ) + if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -775,7 +770,7 @@ static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) configured_psk_count++; } #endif - if( ssl_tls13_has_configured_psk( ssl->conf ) ) + if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK is configured" ) ); configured_psk_count++; @@ -1094,7 +1089,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, } else #endif - if( ssl_tls13_has_configured_psk( ssl->conf ) ) + if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) { ret = ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ); } From 20a8e63b2359abe20e467aec9238ba10bce9d19c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 3 Oct 2022 17:36:44 +0200 Subject: [PATCH 0436/1574] programs: ssl: Fix some mbedtls_ssl_conf_sig_algs() guards Signed-off-by: Ronald Cron --- programs/ssl/ssl_client2.c | 5 ++--- programs/ssl/ssl_server2.c | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 87c13c02a..ecf1987ec 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2026,11 +2026,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1fd63d2d0..b347f0069 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3232,11 +3232,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) From 81378b72e8e8caf2ee1943ac1b56dbee4919d234 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 09:18:01 +0200 Subject: [PATCH 0437/1574] programs: ssl: Remove dependency on TLS 1.3 for "sig_algs" option Signature algorithms can be specified through the sig_algs option for TLS 1.2 as well. Signed-off-by: Ronald Cron --- programs/ssl/ssl_client2.c | 18 +++++++----------- programs/ssl/ssl_server2.c | 18 +++++++----------- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index ecf1987ec..1637a7359 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -269,8 +269,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -719,10 +718,9 @@ int main( int argc, char *argv[] ) mbedtls_net_context server_fd; io_ctx_t io_ctx; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif unsigned char buf[MAX_REQUEST_SIZE + 1]; @@ -1165,11 +1163,10 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif else if( strcmp( p, "etm" ) == 0 ) { switch( atoi( q ) ) @@ -1572,8 +1569,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -1672,7 +1668,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index b347f0069..f94f1b85a 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -435,8 +435,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -1506,10 +1505,9 @@ int main( int argc, char *argv[] ) size_t context_buf_len = 0; #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif int i; char *p, *q; @@ -1867,11 +1865,10 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif else if( strcmp( p, "renegotiation" ) == 0 ) { opt.renegotiation = (atoi( q )) ? @@ -2454,8 +2451,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -2554,7 +2550,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) From 457fb7a523047b856425f82f2304f672ae50881d Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:02:06 +0200 Subject: [PATCH 0438/1574] tests: ssl: Fix ciphersuite identifier Signed-off-by: Ronald Cron --- tests/suites/test_suite_ssl.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 2b58e6005..f7ac4df67 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3131,7 +3131,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #1 # - Complete record: 1703030015c74061535eb12f5f25a781957874742ab7fb305dd5 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"70696e67":"c74061535eb12f5f25a781957874742ab7fb305dd5" SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - Server App Key: 0b6d22c8ff68097ea871c672073773bf @@ -3142,7 +3142,7 @@ SSL TLS 1.3 Record Encryption, tls13.ulfheim.net Example #2 # - Complete record: 1703030015370e5f168afa7fb16b663ecdfca3dbb81931a90ca7 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"0b6d22c8ff68097ea871c672073773bf":"1b13dd9f8d8f17091d34b349":"49134b95328f279f0183860589ac6707":"bc4dd5f7b98acff85466261d":"706f6e67":"370e5f168afa7fb16b663ecdfca3dbb81931a90ca7" SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # Application Data record sent by Client in 1-RTT example of RFC 8448, Section 3 @@ -3161,7 +3161,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #1 # 3a ee bb 21 69 49 15 e4 # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_CLIENT:0:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"a23f7054b62c94d0affafe8228ba55cbefacea42f914aa66bcab3f2b9819a8a5b46b395bd54a9a20441e2b62974e1f5a6292a2977014bd1e3deae63aeebb21694915e4" SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # Application Data record sent by Server in 1-RTT example of RFC 8448, Section 3 @@ -3180,7 +3180,7 @@ SSL TLS 1.3 Record Encryption RFC 8448 Example #2 # 0d d0 32 e1 67 c2 95 5d # - Padding used: No (== granularity 1) depends_on:MBEDTLS_AES_C:MBEDTLS_ECDSA_C:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED -ssl_tls13_record_protection:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" +ssl_tls13_record_protection:MBEDTLS_TLS1_3_AES_128_GCM_SHA256:MBEDTLS_SSL_IS_SERVER:1:1:"9f02283b6c9c07efc26bb9f2ac92e356":"cf782b88dd83549aadf1e984":"17422dda596ed5d9acd890e3c63f5051":"5b78923dee08579033e523d9":"000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031":"2e937e11ef4ac740e538ad36005fc4a46932fc3225d05f82aa1b36e30efaf97d90e6dffc602dcb501a59a8fcc49c4bf2e5f0a21c0047c2abf332540dd032e167c2955d" SSL TLS 1.3 Key schedule: Application secrets derivation helper # Vector from RFC 8448 From f64cc03b099abf9860fc194c31a930ee19d674d3 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:32:19 +0200 Subject: [PATCH 0439/1574] tests: ssl: Add missing dependencies on certificate based handshake Signed-off-by: Ronald Cron --- tests/suites/test_suite_ssl.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index f7ac4df67..c130e5363 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -261,7 +261,7 @@ depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, tls1_3 -depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3 Handshake, ECDHE-RSA-WITH-AES-256-GCM-SHA384 From 81cd7ab492977249868a83d4aa290cabbc3b8173 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 12:15:27 +0200 Subject: [PATCH 0440/1574] tests: ssl: Add missing dependency on MBEDTLS_X509_CRT_PARSE_C Signed-off-by: Ronald Cron --- tests/suites/test_suite_x509write.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 1120bee14..5caf14325 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -235,7 +235,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CRT_WRITE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CRT_WRITE_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void x509_crt_check( char *subject_key_file, char *subject_pwd, char *subject_name, char *issuer_key_file, char *issuer_pwd, char *issuer_name, From 2ea36af693c5f3a0adccff671908caa9b928a3f2 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 09:37:16 +0200 Subject: [PATCH 0441/1574] ssl-opt.sh: TLS 1.3 kex: Do not use sig_algs if no cert Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index c8586d2c2..6914ccd51 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -2792,7 +2792,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2830,7 +2830,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ @@ -2869,7 +2869,7 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KE MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ - "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ + "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ From bc5adf4ef83c10398db772df5fb160b386b2a26b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 11:06:14 +0200 Subject: [PATCH 0442/1574] ssl-opt.sh: Add dependencies on handshake with cert Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-compat.sh | 722 ++++++++++++++++++- tests/scripts/generate_tls13_compat_tests.py | 3 +- tests/ssl-opt.sh | 128 ++++ 3 files changed, 851 insertions(+), 2 deletions(-) diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 5a71d1c42..5611510bc 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -20,7 +20,7 @@ # Purpose # # List TLS1.3 compat test cases. They are generated by -# `./tests/scripts/generate_tls13_compat_tests.py -a -o tests/opt-testcases/tls13-compat.sh`. +# `./tests/scripts/generate_tls13_compat_tests.py -a -o ./tests/opt-testcases/tls13-compat.sh`. # # PLEASE DO NOT EDIT THIS FILE. IF NEEDED, PLEASE MODIFY `generate_tls13_compat_tests.py` # AND REGENERATE THIS FILE. @@ -28,6 +28,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -44,6 +45,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -60,6 +62,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -76,6 +79,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -93,6 +97,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -109,6 +114,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -125,6 +131,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -141,6 +148,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -158,6 +166,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -174,6 +183,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -190,6 +200,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -206,6 +217,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -223,6 +235,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -239,6 +252,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -255,6 +269,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -271,6 +286,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -288,6 +304,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -304,6 +321,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -320,6 +338,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -336,6 +355,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -353,6 +373,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -369,6 +390,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -385,6 +407,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -401,6 +424,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -418,6 +442,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -434,6 +459,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -450,6 +476,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -466,6 +493,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -483,6 +511,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -499,6 +528,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -515,6 +545,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -531,6 +562,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -548,6 +580,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -564,6 +597,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -580,6 +614,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -596,6 +631,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -613,6 +649,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -629,6 +666,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -645,6 +683,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -661,6 +700,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -678,6 +718,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -694,6 +735,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -710,6 +752,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -726,6 +769,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -743,6 +787,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -759,6 +804,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -775,6 +821,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -791,6 +838,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -808,6 +856,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -824,6 +873,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -840,6 +890,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -856,6 +907,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -873,6 +925,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -889,6 +942,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -905,6 +959,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -921,6 +976,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -938,6 +994,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -954,6 +1011,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -970,6 +1028,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -986,6 +1045,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1003,6 +1063,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1019,6 +1080,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1035,6 +1097,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1051,6 +1114,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1068,6 +1132,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1084,6 +1149,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1100,6 +1166,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1116,6 +1183,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1133,6 +1201,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1149,6 +1218,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1165,6 +1235,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1181,6 +1252,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1198,6 +1270,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1214,6 +1287,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1230,6 +1304,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1246,6 +1321,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1263,6 +1339,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1279,6 +1356,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1295,6 +1373,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1311,6 +1390,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1328,6 +1408,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1344,6 +1425,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1360,6 +1442,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1376,6 +1459,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1393,6 +1477,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1409,6 +1494,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1425,6 +1511,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1441,6 +1528,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1458,6 +1546,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1474,6 +1563,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1490,6 +1580,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1506,6 +1597,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1523,6 +1615,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1539,6 +1632,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1555,6 +1649,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1571,6 +1666,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1588,6 +1684,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1604,6 +1701,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1620,6 +1718,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1636,6 +1735,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1653,6 +1753,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1671,6 +1772,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1689,6 +1791,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1707,6 +1810,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1726,6 +1830,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1744,6 +1849,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1762,6 +1868,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1780,6 +1887,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1799,6 +1907,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1817,6 +1926,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1835,6 +1945,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1853,6 +1964,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1872,6 +1984,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1890,6 +2003,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1908,6 +2022,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1926,6 +2041,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1945,6 +2061,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1963,6 +2080,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1981,6 +2099,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1999,6 +2118,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2018,6 +2138,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2036,6 +2157,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2054,6 +2176,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2072,6 +2195,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2091,6 +2215,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2109,6 +2234,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2127,6 +2253,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2145,6 +2272,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2164,6 +2292,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2182,6 +2311,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2200,6 +2330,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2218,6 +2349,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2237,6 +2369,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2255,6 +2388,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2273,6 +2407,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2291,6 +2426,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2310,6 +2446,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2328,6 +2465,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2346,6 +2484,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2364,6 +2503,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2383,6 +2523,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2401,6 +2542,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2419,6 +2561,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2437,6 +2580,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2456,6 +2600,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2474,6 +2619,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2492,6 +2638,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2510,6 +2657,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2529,6 +2677,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2547,6 +2696,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2565,6 +2715,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2583,6 +2734,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2602,6 +2754,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2620,6 +2773,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2638,6 +2792,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2656,6 +2811,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2675,6 +2831,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2693,6 +2850,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2711,6 +2869,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2729,6 +2888,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2748,6 +2908,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2766,6 +2927,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2784,6 +2946,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2802,6 +2965,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2821,6 +2985,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2839,6 +3004,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2857,6 +3023,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2875,6 +3042,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2894,6 +3062,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2912,6 +3081,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2930,6 +3100,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2948,6 +3119,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2967,6 +3139,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2985,6 +3158,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3003,6 +3177,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3021,6 +3196,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3040,6 +3216,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3058,6 +3235,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3076,6 +3254,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3094,6 +3273,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3113,6 +3293,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3131,6 +3312,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3149,6 +3331,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3167,6 +3350,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3186,6 +3370,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3204,6 +3389,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3222,6 +3408,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3240,6 +3427,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3259,6 +3447,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3277,6 +3466,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3295,6 +3485,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3313,6 +3504,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3332,6 +3524,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3350,6 +3543,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3368,6 +3562,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3386,6 +3581,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3405,6 +3601,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3423,6 +3620,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3441,6 +3639,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3459,6 +3658,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3479,6 +3679,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3496,6 +3697,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3513,6 +3715,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3530,6 +3733,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -3548,6 +3752,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3565,6 +3770,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3582,6 +3788,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3599,6 +3806,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -3617,6 +3825,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3634,6 +3843,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3651,6 +3861,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3668,6 +3879,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -3686,6 +3898,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3703,6 +3916,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3720,6 +3934,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3737,6 +3952,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -3755,6 +3971,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3772,6 +3989,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3789,6 +4007,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3806,6 +4025,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -3824,6 +4044,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3841,6 +4062,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3858,6 +4080,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3875,6 +4098,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -3893,6 +4117,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3910,6 +4135,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3927,6 +4153,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3944,6 +4171,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -3962,6 +4190,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3979,6 +4208,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3996,6 +4226,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4013,6 +4244,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -4031,6 +4263,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4048,6 +4281,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4065,6 +4299,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4082,6 +4317,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -4100,6 +4336,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4117,6 +4354,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4134,6 +4372,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4151,6 +4390,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -4169,6 +4409,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4186,6 +4427,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4203,6 +4445,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4220,6 +4463,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4238,6 +4482,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4255,6 +4500,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4272,6 +4518,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4289,6 +4536,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4307,6 +4555,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4324,6 +4573,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4341,6 +4591,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4358,6 +4609,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4376,6 +4628,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4393,6 +4646,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4410,6 +4664,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4427,6 +4682,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4445,6 +4701,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4462,6 +4719,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4479,6 +4737,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4496,6 +4755,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4514,6 +4774,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4531,6 +4792,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4548,6 +4810,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4565,6 +4828,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4583,6 +4847,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4600,6 +4865,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4617,6 +4883,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4634,6 +4901,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4652,6 +4920,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4669,6 +4938,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4686,6 +4956,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4703,6 +4974,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4721,6 +4993,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4738,6 +5011,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4755,6 +5029,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4772,6 +5047,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4790,6 +5066,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4807,6 +5084,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4824,6 +5102,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4841,6 +5120,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4859,6 +5139,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4876,6 +5157,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4893,6 +5175,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4910,6 +5193,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4928,6 +5212,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4945,6 +5230,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4962,6 +5248,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4979,6 +5266,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4997,6 +5285,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5014,6 +5303,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5031,6 +5321,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5048,6 +5339,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5066,6 +5358,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5083,6 +5376,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5100,6 +5394,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5117,6 +5412,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5135,6 +5431,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5152,6 +5449,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5169,6 +5467,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5186,6 +5485,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5206,6 +5506,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5225,6 +5526,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5244,6 +5546,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5263,6 +5566,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5283,6 +5587,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5302,6 +5607,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5321,6 +5627,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5340,6 +5647,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5360,6 +5668,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5379,6 +5688,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5398,6 +5708,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5417,6 +5728,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5437,6 +5749,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5456,6 +5769,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5475,6 +5789,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5494,6 +5809,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5514,6 +5830,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5533,6 +5850,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5552,6 +5870,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5571,6 +5890,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5591,6 +5911,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5610,6 +5931,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5629,6 +5951,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5648,6 +5971,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -5668,6 +5992,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5687,6 +6012,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5706,6 +6032,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5725,6 +6052,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -5745,6 +6073,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5764,6 +6093,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5783,6 +6113,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5802,6 +6133,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -5822,6 +6154,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5841,6 +6174,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5860,6 +6194,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5879,6 +6214,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -5899,6 +6235,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5918,6 +6255,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5937,6 +6275,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5956,6 +6295,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -5976,6 +6316,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5995,6 +6336,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6014,6 +6356,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6033,6 +6376,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6053,6 +6397,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6072,6 +6417,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6091,6 +6437,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6110,6 +6457,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6130,6 +6478,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6149,6 +6498,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6168,6 +6518,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6187,6 +6538,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6207,6 +6559,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6226,6 +6579,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6245,6 +6599,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6264,6 +6619,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6284,6 +6640,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6303,6 +6660,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6322,6 +6680,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6341,6 +6700,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6361,6 +6721,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6380,6 +6741,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6399,6 +6761,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6418,6 +6781,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6438,6 +6802,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6457,6 +6822,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6476,6 +6842,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6495,6 +6862,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6515,6 +6883,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6534,6 +6903,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6553,6 +6923,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6572,6 +6943,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6592,6 +6964,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6611,6 +6984,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6630,6 +7004,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6649,6 +7024,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6669,6 +7045,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6688,6 +7065,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6707,6 +7085,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6726,6 +7105,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6746,6 +7126,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6765,6 +7146,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6784,6 +7166,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6803,6 +7186,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6823,6 +7207,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6842,6 +7227,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6861,6 +7247,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6880,6 +7267,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6900,6 +7288,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6919,6 +7308,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6938,6 +7328,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6957,6 +7348,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6977,6 +7369,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6996,6 +7389,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7015,6 +7409,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7034,6 +7429,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7054,6 +7450,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7073,6 +7470,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7092,6 +7490,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7111,6 +7510,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7128,10 +7528,12 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7152,10 +7554,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7176,10 +7580,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7200,11 +7606,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7226,10 +7634,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7250,10 +7660,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7274,10 +7686,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7298,11 +7712,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7324,10 +7740,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7348,10 +7766,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7372,10 +7792,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7396,11 +7818,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7422,10 +7846,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7446,10 +7872,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7470,10 +7898,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7494,11 +7924,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7520,10 +7952,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7544,10 +7978,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7568,10 +8004,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7592,11 +8030,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7618,10 +8058,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7642,10 +8084,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7666,10 +8110,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7690,11 +8136,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -7716,10 +8164,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7740,10 +8190,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7764,10 +8216,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7788,11 +8242,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -7814,10 +8270,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7838,10 +8296,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7862,10 +8322,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7886,11 +8348,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -7912,10 +8376,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7936,10 +8402,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7960,10 +8428,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7984,11 +8454,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -8010,10 +8482,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8034,10 +8508,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8058,10 +8534,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8082,11 +8560,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -8108,10 +8588,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8132,10 +8614,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8156,10 +8640,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8180,11 +8666,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8206,10 +8694,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8230,10 +8720,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8254,10 +8746,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8278,11 +8772,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8304,10 +8800,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8328,10 +8826,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8352,10 +8852,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8376,11 +8878,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8402,10 +8906,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8426,10 +8932,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8450,10 +8958,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8474,11 +8984,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -8500,10 +9012,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8524,10 +9038,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8548,10 +9064,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8572,11 +9090,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -8598,10 +9118,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8622,10 +9144,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8646,10 +9170,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8670,11 +9196,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8696,10 +9224,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8720,10 +9250,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8744,10 +9276,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8768,11 +9302,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8794,10 +9330,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8818,10 +9356,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8842,10 +9382,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8866,11 +9408,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8892,10 +9436,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8916,10 +9462,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8940,10 +9488,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8964,11 +9514,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -8990,10 +9542,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9014,10 +9568,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9038,10 +9594,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9062,11 +9620,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9088,10 +9648,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9112,10 +9674,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9136,10 +9700,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9160,11 +9726,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9186,10 +9754,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9210,10 +9780,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9234,10 +9806,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9258,11 +9832,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9284,10 +9860,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9308,10 +9886,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9332,10 +9912,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9356,11 +9938,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9382,10 +9966,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9406,10 +9992,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9430,10 +10018,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9454,11 +10044,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9480,10 +10072,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9504,10 +10098,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9528,10 +10124,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9552,11 +10150,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9578,6 +10178,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ @@ -9592,6 +10193,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ @@ -9606,6 +10208,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ @@ -9620,6 +10223,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ @@ -9634,6 +10238,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ @@ -9648,6 +10253,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ @@ -9662,6 +10268,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ @@ -9676,6 +10283,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ @@ -9690,6 +10298,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ @@ -9704,6 +10313,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ @@ -9718,6 +10328,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ @@ -9732,6 +10343,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ @@ -9746,6 +10358,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ @@ -9760,6 +10373,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ @@ -9774,6 +10388,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ @@ -9788,6 +10403,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ @@ -9802,6 +10418,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ @@ -9816,6 +10433,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ @@ -9830,6 +10448,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ @@ -9844,6 +10463,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ @@ -9858,6 +10478,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9874,6 +10495,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9890,6 +10512,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9906,6 +10529,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9922,6 +10546,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9938,6 +10563,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9954,6 +10580,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9970,6 +10597,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -9986,6 +10614,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10002,6 +10631,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10018,6 +10648,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10034,6 +10665,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10050,6 +10682,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10066,6 +10699,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10082,6 +10716,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10098,6 +10733,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10114,6 +10750,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10130,6 +10767,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10146,6 +10784,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10162,6 +10801,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10179,6 +10819,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10196,6 +10837,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10213,6 +10855,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10230,6 +10873,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10247,6 +10891,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10264,6 +10909,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10281,6 +10927,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10298,6 +10945,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10315,6 +10963,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10332,6 +10981,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10349,6 +10999,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10366,6 +11017,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10383,6 +11035,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10400,6 +11053,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10417,6 +11071,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10434,6 +11089,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10451,6 +11107,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10468,6 +11125,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10485,6 +11143,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10502,6 +11161,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10521,6 +11181,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10540,6 +11201,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10559,6 +11221,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10578,6 +11241,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10597,6 +11261,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10616,6 +11281,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10635,6 +11301,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10654,6 +11321,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10673,6 +11341,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10692,6 +11361,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10711,6 +11381,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10730,6 +11401,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10749,6 +11421,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10768,6 +11441,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10787,6 +11461,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10806,6 +11481,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10825,6 +11501,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10844,6 +11521,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10863,6 +11541,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10882,6 +11561,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -10898,10 +11578,12 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10921,10 +11603,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10944,10 +11628,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10967,10 +11653,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10990,10 +11678,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11013,10 +11703,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11036,10 +11728,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11059,10 +11753,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11082,10 +11778,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11105,10 +11803,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11128,10 +11828,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11151,10 +11853,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11174,10 +11878,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11197,10 +11903,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11220,10 +11928,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11243,10 +11953,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11266,10 +11978,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11289,10 +12003,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11312,10 +12028,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11335,10 +12053,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_key_exchange_with_cert_in_tls13_enabled requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 7819a8766..0e94af6f0 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -357,7 +357,8 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', - 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3'] + 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', + 'requires_key_exchange_with_cert_in_tls13_enabled'] if self._compat_mode: ret += ['requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE'] diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index f6437f515..3378013b3 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -251,6 +251,29 @@ requires_any_configs_disabled() { fi } +TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" + +requires_key_exchange_with_cert_in_tls12_enabled() { + if ! $P_QUERY -any $TLS1_2_KEY_EXCHANGES_WITH_CERT + then + SKIP_NEXT="YES" + fi +} + +requires_key_exchange_with_cert_in_tls13_enabled() { + requires_key_exchange_with_cert_in_tls12_enabled +} + +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { + requires_key_exchange_with_cert_in_tls12_enabled +} + get_config_value_or_default() { # This function uses the query_config command line option to query the # required Mbed TLS compile time configuration from the ssl_server2 @@ -5158,6 +5181,7 @@ run_test "DER format: with 9 trailing random bytes" \ # Tests for auth_mode, there are duplicated tests using ca callback for authentication # When updating these tests, modify the matching authentication tests accordingly +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5169,6 +5193,7 @@ run_test "Authentication: server badcert, client required" \ -c "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5180,6 +5205,7 @@ run_test "Authentication: server badcert, client optional" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server goodcert, client optional, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=optional ca_file=none ca_path=none" \ @@ -5191,6 +5217,7 @@ run_test "Authentication: server goodcert, client optional, no trusted CA" \ -C "X509 - Certificate verification failed" \ -C "SSL - No CA Chain is set, but required to operate" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server goodcert, client required, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=required ca_file=none ca_path=none" \ @@ -5210,6 +5237,7 @@ run_test "Authentication: server goodcert, client required, no trusted CA" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5221,6 +5249,7 @@ run_test "Authentication: server ECDH p256v1, client required, p256v1 unsuppo requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5231,6 +5260,7 @@ run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsuppo -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server badcert, client none" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5242,6 +5272,7 @@ run_test "Authentication: server badcert, client none" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client SHA256, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5252,6 +5283,7 @@ run_test "Authentication: client SHA256, server required" \ -c "Supported Signature Algorithm found: 5," requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client SHA384, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5261,6 +5293,7 @@ run_test "Authentication: client SHA384, server required" \ -c "Supported Signature Algorithm found: 4," \ -c "Supported Signature Algorithm found: 5," +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client has no cert, server required (TLS)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=none \ @@ -5276,6 +5309,7 @@ run_test "Authentication: client has no cert, server required (TLS)" \ -s "! mbedtls_ssl_handshake returned" \ -s "No client certification received from the client, but required by the authentication mode" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server required" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5296,6 +5330,7 @@ run_test "Authentication: client badcert, server required" \ # detect that its write end of the connection is closed and abort # before reading the alert message. +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client cert self-signed and trusted, server required" \ "$P_SRV debug_level=3 auth_mode=required ca_file=data_files/server5-selfsigned.crt" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5311,6 +5346,7 @@ run_test "Authentication: client cert self-signed and trusted, server require -S "! The certificate is not correctly signed" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client cert not trusted, server required" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5327,6 +5363,7 @@ run_test "Authentication: client cert not trusted, server required" \ -s "! mbedtls_ssl_handshake returned" \ -s "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5344,6 +5381,7 @@ run_test "Authentication: client badcert, server optional" \ -C "! mbedtls_ssl_handshake returned" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client badcert, server none" \ "$P_SRV debug_level=3 auth_mode=none" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5361,6 +5399,7 @@ run_test "Authentication: client badcert, server none" \ -C "! mbedtls_ssl_handshake returned" \ -S "X509 - Certificate verification failed" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5378,6 +5417,7 @@ run_test "Authentication: client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: openssl client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$O_CLI" \ @@ -5389,6 +5429,7 @@ run_test "Authentication: openssl client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client no cert, openssl server optional" \ "$O_SRV -verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5400,6 +5441,7 @@ run_test "Authentication: client no cert, openssl server optional" \ -C "! mbedtls_ssl_handshake returned" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: client no cert, openssl server required" \ "$O_SRV -Verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5422,6 +5464,7 @@ MAX_IM_CA='8' # are in place so that the semantics are consistent with the test description. requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5431,6 +5474,7 @@ run_test "Authentication: server max_int chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5441,6 +5485,7 @@ run_test "Authentication: server max_int+1 chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5452,6 +5497,7 @@ run_test "Authentication: server max_int+1 chain, client optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: server max_int+1 chain, client none" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5462,6 +5508,7 @@ run_test "Authentication: server max_int+1 chain, client none" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server default" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5471,6 +5518,7 @@ run_test "Authentication: client max_int+1 chain, server default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server optional" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5480,6 +5528,7 @@ run_test "Authentication: client max_int+1 chain, server optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int+1 chain, server required" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5489,6 +5538,7 @@ run_test "Authentication: client max_int+1 chain, server required" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client max_int chain, server required" \ "$P_SRV ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -5499,6 +5549,7 @@ run_test "Authentication: client max_int chain, server required" \ # Tests for CA list in CertificateRequest messages requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send CA list in CertificateRequest (default)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5507,6 +5558,7 @@ run_test "Authentication: send CA list in CertificateRequest (default)" \ -s "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: do not send CA list in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5515,6 +5567,7 @@ run_test "Authentication: do not send CA list in CertificateRequest" \ -S "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send CA list in CertificateRequest, client self signed" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5528,6 +5581,7 @@ run_test "Authentication: send CA list in CertificateRequest, client self sig -s "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt conf DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server1.crt \ @@ -5539,6 +5593,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest" \ -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server2.crt \ @@ -5550,6 +5605,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ -c "DN hint: C=NL, O=PolarSSL, CN=localhost" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication: send alt hs DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=3 \ crt_file2=data_files/server1.crt \ @@ -5565,6 +5621,7 @@ run_test "Authentication: send alt hs DN hints in CertificateRequest" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5578,6 +5635,7 @@ run_test "Authentication, CA callback: server badcert, client required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5599,6 +5657,7 @@ run_test "Authentication, CA callback: server badcert, client optional" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5612,6 +5671,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client required, p requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5624,6 +5684,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client optional, p requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client SHA256, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5636,6 +5697,7 @@ run_test "Authentication, CA callback: client SHA256, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client SHA384, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5648,6 +5710,7 @@ run_test "Authentication, CA callback: client SHA384, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client badcert, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5672,6 +5735,7 @@ run_test "Authentication, CA callback: client badcert, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client cert not trusted, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5692,6 +5756,7 @@ run_test "Authentication, CA callback: client cert not trusted, server requir requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client badcert, server optional" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5714,6 +5779,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5726,6 +5792,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5738,6 +5805,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5751,6 +5819,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int+1 chain, server optional" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5763,6 +5832,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int+1 chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5775,6 +5845,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Authentication, CA callback: client max_int chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -5799,6 +5870,7 @@ run_test "Certificate hash: client TLS 1.2 -> SHA-2" \ # tests for SNI requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: no SNI callback" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key" \ @@ -5808,6 +5880,7 @@ run_test "SNI: no SNI callback" \ -c "subject name *: C=NL, O=PolarSSL, CN=localhost" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: matching cert 1" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5819,6 +5892,7 @@ run_test "SNI: matching cert 1" \ -c "subject name *: C=NL, O=PolarSSL, CN=localhost" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: matching cert 2" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5830,6 +5904,7 @@ run_test "SNI: matching cert 2" \ -c "subject name *: C=NL, O=PolarSSL, CN=polarssl.example" requires_config_disabled MBEDTLS_X509_REMOVE_INFO +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: no matching cert" \ "$P_SRV debug_level=3 \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5842,6 +5917,7 @@ run_test "SNI: no matching cert" \ -c "mbedtls_ssl_handshake returned" \ -c "SSL - A fatal alert message was received from our peer" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth no override: optional" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5855,6 +5931,7 @@ run_test "SNI: client auth no override: optional" \ -C "skip write certificate verify" \ -S "skip parse certificate verify" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth override: none -> optional" \ "$P_SRV debug_level=3 auth_mode=none \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5868,6 +5945,7 @@ run_test "SNI: client auth override: none -> optional" \ -C "skip write certificate verify" \ -S "skip parse certificate verify" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: client auth override: optional -> none" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5879,6 +5957,7 @@ run_test "SNI: client auth override: optional -> none" \ -c "got no certificate request" \ -c "skip write certificate" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA no override" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5897,6 +5976,7 @@ run_test "SNI: CA no override" \ -s "! The certificate is not correctly signed by the trusted CA" \ -S "The certificate has been revoked (is on a CRL)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA override" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -5915,6 +5995,7 @@ run_test "SNI: CA override" \ -S "! The certificate is not correctly signed by the trusted CA" \ -S "The certificate has been revoked (is on a CRL)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "SNI: CA override with CRL" \ "$P_SRV debug_level=3 auth_mode=optional \ crt_file=data_files/server5.crt key_file=data_files/server5.key \ @@ -6083,6 +6164,7 @@ run_test "SNI: DTLS, CA override with CRL" \ # Tests for non-blocking I/O: exercise a variety of handshake flows +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Non-blocking I/O: basic handshake" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0" \ @@ -6091,6 +6173,7 @@ run_test "Non-blocking I/O: basic handshake" \ -C "mbedtls_ssl_handshake returned" \ -c "Read from server: .* bytes read" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Non-blocking I/O: client auth" \ "$P_SRV nbio=2 tickets=0 auth_mode=required" \ "$P_CLI nbio=2 tickets=0" \ @@ -6100,6 +6183,7 @@ run_test "Non-blocking I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1" \ @@ -6109,6 +6193,7 @@ run_test "Non-blocking I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + client auth" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1" \ @@ -6118,6 +6203,7 @@ run_test "Non-blocking I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + client auth + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6127,6 +6213,7 @@ run_test "Non-blocking I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: ticket + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6136,6 +6223,7 @@ run_test "Non-blocking I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Non-blocking I/O: session-id resume" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0 reconnect=1" \ @@ -6146,6 +6234,7 @@ run_test "Non-blocking I/O: session-id resume" \ # Tests for event-driven I/O: exercise a variety of handshake flows +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Event-driven I/O: basic handshake" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0" \ @@ -6154,6 +6243,7 @@ run_test "Event-driven I/O: basic handshake" \ -C "mbedtls_ssl_handshake returned" \ -c "Read from server: .* bytes read" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Event-driven I/O: client auth" \ "$P_SRV event=1 tickets=0 auth_mode=required" \ "$P_CLI event=1 tickets=0" \ @@ -6163,6 +6253,7 @@ run_test "Event-driven I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1" \ @@ -6172,6 +6263,7 @@ run_test "Event-driven I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + client auth" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1" \ @@ -6181,6 +6273,7 @@ run_test "Event-driven I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + client auth + resume" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6190,6 +6283,7 @@ run_test "Event-driven I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: ticket + resume" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6199,6 +6293,7 @@ run_test "Event-driven I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls12_enabled run_test "Event-driven I/O: session-id resume" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0 reconnect=1" \ @@ -6323,6 +6418,7 @@ run_test "Not supported version check: srv max TLS 1.1" \ # Tests for ALPN extension +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: none" \ "$P_SRV debug_level=3" \ "$P_CLI debug_level=3" \ @@ -6335,6 +6431,7 @@ run_test "ALPN: none" \ -C "Application Layer Protocol is" \ -S "Application Layer Protocol is" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: client only" \ "$P_SRV debug_level=3" \ "$P_CLI debug_level=3 alpn=abc,1234" \ @@ -6347,6 +6444,7 @@ run_test "ALPN: client only" \ -c "Application Layer Protocol is (none)" \ -S "Application Layer Protocol is" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: server only" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3" \ @@ -6359,6 +6457,7 @@ run_test "ALPN: server only" \ -C "Application Layer Protocol is" \ -s "Application Layer Protocol is (none)" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli1-srv1" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=abc,1234" \ @@ -6371,6 +6470,7 @@ run_test "ALPN: both, common cli1-srv1" \ -c "Application Layer Protocol is abc" \ -s "Application Layer Protocol is abc" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli2-srv1" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=1234,abc" \ @@ -6383,6 +6483,7 @@ run_test "ALPN: both, common cli2-srv1" \ -c "Application Layer Protocol is abc" \ -s "Application Layer Protocol is abc" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, common cli1-srv2" \ "$P_SRV debug_level=3 alpn=abc,1234" \ "$P_CLI debug_level=3 alpn=1234,abcde" \ @@ -6395,6 +6496,7 @@ run_test "ALPN: both, common cli1-srv2" \ -c "Application Layer Protocol is 1234" \ -s "Application Layer Protocol is 1234" +requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "ALPN: both, no common" \ "$P_SRV debug_level=3 alpn=abc,123" \ "$P_CLI debug_level=3 alpn=1234,abcde" \ @@ -6556,6 +6658,7 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6568,6 +6671,7 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6580,6 +6684,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6592,6 +6697,7 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6604,6 +6710,7 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6616,6 +6723,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6678,6 +6786,7 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6690,6 +6799,7 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6701,6 +6811,7 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6713,6 +6824,7 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6796,6 +6908,7 @@ run_test "extKeyUsage cli: codeSign -> fail" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6808,6 +6921,7 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6820,6 +6934,7 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6832,6 +6947,7 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -6891,6 +7007,7 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6902,6 +7019,7 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6913,6 +7031,7 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6924,6 +7043,7 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7988,6 +8108,7 @@ run_test "Small client packet TLS 1.2 AEAD shorter tag" \ 0 \ -s "Read from client: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -7995,6 +8116,7 @@ run_test "Small client packet TLS 1.3 AEAD" \ 0 \ -s "Read from client: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8052,12 +8174,14 @@ run_test "Small server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small server packet TLS 1.3 AEAD" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 1 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Small server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -8128,6 +8252,7 @@ run_test "Large client packet TLS 1.2 AEAD shorter tag" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8136,6 +8261,7 @@ run_test "Large client packet TLS 1.3 AEAD" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8183,12 +8309,14 @@ run_test "Large server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 16384 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large server packet TLS 1.3 AEAD" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 16384 bytes read" +requires_key_exchange_with_cert_in_tls13_enabled run_test "Large server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ From 89ca97712870a168fad8ad6f7cb15b6f166c9d2f Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 14:56:45 +0200 Subject: [PATCH 0443/1574] ssl-opt.sh: Improve dependencies of some TLS 1.3 test cases Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 80 ++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 3378013b3..970ee9e99 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -6655,9 +6655,9 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ -c "Ciphersuite is TLS-" \ -c "! Usage does not match the keyUsage extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6668,9 +6668,9 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6681,9 +6681,9 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ @@ -6694,9 +6694,9 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6707,9 +6707,9 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6720,9 +6720,9 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6783,12 +6783,11 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ -s "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ -cert data_files/server2.ku-ds.crt" \ 0 \ @@ -6796,24 +6795,22 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ 0 \ -s "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ 0 \ @@ -6821,12 +6818,11 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ 0 \ @@ -6905,9 +6901,9 @@ run_test "extKeyUsage cli: codeSign -> fail" \ -c "Processing of the Certificate handshake message failed" \ -C "Ciphersuite is TLS-" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6918,9 +6914,9 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6931,9 +6927,9 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -6944,9 +6940,9 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ -C "Processing of the Certificate handshake message failed" \ -c "Ciphersuite is" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ @@ -7004,48 +7000,44 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ -s "bad certificate (usage extensions)" \ -s "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cli.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ 0 \ -S "bad certificate (usage extensions)" \ -S "Processing of the Certificate handshake message failed" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_openssl_tls1_3 -requires_config_disabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_key_exchange_with_cert_in_tls13_enabled run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ - "$P_SRV debug_level=1 auth_mode=optional" \ + "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ 0 \ From 8f26c8a0cfdc95d4f6af6d6928cae379e13db3ab Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 20 Oct 2022 05:19:47 -0400 Subject: [PATCH 0444/1574] Fix a typo in test_suite_cipher Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index af617fc56..2c0a1ec84 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -116,7 +116,7 @@ static int cipher_reset_key( mbedtls_cipher_context_t *ctx, int cipher_id, mbedtls_cipher_free( ctx ); mbedtls_cipher_init( ctx ); -#if !defined(MBEDTLS_USE_PSA_CRYPO) || !defined(MBEDTLS_TEST_DEPRECATED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; (void) tag_len; #else @@ -1067,7 +1067,7 @@ void test_vec_crypt( int cipher_id, int operation, data_t *key, memset( output, 0x00, sizeof( output ) ); /* Prepare context */ -#if !defined(MBEDTLS_USE_PSA_CRYPO) || !defined(MBEDTLS_TEST_DEPRECATED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; #else if( use_psa == 1 ) @@ -1095,7 +1095,7 @@ void test_vec_crypt( int cipher_id, int operation, data_t *key, exit: mbedtls_cipher_free( &ctx ); -#if defined(MBEDTLS_USE_PSA_CRYPO) && defined(MBEDTLS_TEST_DEPRECATED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_TEST_DEPRECATED) PSA_DONE( ); #endif /* MBEDTLS_USE_PSA_CRYPTO && defined(MBEDTLS_TEST_DEPRECATED */ } From d066c79d7e3ac8a5d87ff83aed54b18078364334 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 05:29:08 -0400 Subject: [PATCH 0445/1574] Add missing ECB requirements for PSA cipher aes tests Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aes.data | 48 ++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/suites/test_suite_cipher.aes.data b/tests/suites/test_suite_cipher.aes.data index 8220e8d2c..41e6230ba 100644 --- a/tests/suites/test_suite_cipher.aes.data +++ b/tests/suites/test_suite_cipher.aes.data @@ -2111,99 +2111,99 @@ depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_ test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 From ed05279e4f2f765d5b98238fc896d8de4f472586 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 05:37:54 -0400 Subject: [PATCH 0446/1574] Comment fix Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index 2c0a1ec84..b7c3b5144 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -1097,7 +1097,7 @@ exit: mbedtls_cipher_free( &ctx ); #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_TEST_DEPRECATED) PSA_DONE( ); -#endif /* MBEDTLS_USE_PSA_CRYPTO && defined(MBEDTLS_TEST_DEPRECATED */ +#endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_TEST_DEPRECATED */ } /* END_CASE */ From abc6fbb8d70d177f0507cf282600278632dc668f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:36:08 +0200 Subject: [PATCH 0447/1574] Fix brief description Signed-off-by: Gilles Peskine --- library/bignum_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 4ba14331c..56a3bf874 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -262,7 +262,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); -/** \brief Shift a machine integer right by a number of bits. +/** \brief Shift an MPI right in place by a number of bits. * * Shifting by more bits than there are bit positions * in \p X is valid and results in setting \p X to 0. From ce220662119bff13da53ef5606ebf233e049ee54 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:54:43 +0200 Subject: [PATCH 0448/1574] Rename test_suite_bignum for consistency with bignum.{h,c} Align the name of the bignum test suite with the source module (which was renamed from mpi.c to bignum.c in the PolarSSL 1.x days). This also brings it into line with the test suites for the low-level bignum interfaces. Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 4 ++-- tests/suites/{test_suite_mpi.data => test_suite_bignum.data} | 0 .../{test_suite_mpi.function => test_suite_bignum.function} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename tests/suites/{test_suite_mpi.data => test_suite_bignum.data} (100%) rename tests/suites/{test_suite_mpi.function => test_suite_bignum.function} (100%) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 493582968..4ac9210e7 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -70,8 +70,8 @@ from mbedtls_dev import bignum_core # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method - """Target for bignum (mpi) test case generation.""" - target_basename = 'test_suite_mpi.generated' + """Target for bignum (legacy) test case generation.""" + target_basename = 'test_suite_bignum.generated' class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): diff --git a/tests/suites/test_suite_mpi.data b/tests/suites/test_suite_bignum.data similarity index 100% rename from tests/suites/test_suite_mpi.data rename to tests/suites/test_suite_bignum.data diff --git a/tests/suites/test_suite_mpi.function b/tests/suites/test_suite_bignum.function similarity index 100% rename from tests/suites/test_suite_mpi.function rename to tests/suites/test_suite_bignum.function From 42832bd406a35326a219913d72603f0913002bea Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 18:56:47 +0200 Subject: [PATCH 0449/1574] Don't use test_suite_mpi as an example It just got renamed, and it's also not the most canonical example since it's a somewhat deprecated interface. Make a different module the example. Signed-off-by: Gilles Peskine --- CONTRIBUTING.md | 2 +- tests/scripts/generate-afl-tests.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 66fe5f1af..0e2cf4912 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -54,7 +54,7 @@ Tests ----- As mentioned, tests that show the correctness of the feature or bug fix should be added to the pull request, if no such tests exist. -Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_mpi.c`). These files are generated from a `function file` (e.g. `suites/test_suite_mpi.function`) and a `data file` (e.g. `suites/test_suite_mpi.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. +Mbed TLS includes a comprehensive set of test suites in the `tests/` directory that are dynamically generated to produce the actual test source files (e.g. `test_suite_rsa.c`). These files are generated from a `function file` (e.g. `suites/test_suite_rsa.function`) and a `data file` (e.g. `suites/test_suite_rsa.data`). The function file contains the test functions. The data file contains the test cases, specified as parameters that will be passed to the test function. [A Knowledge Base article describing how to add additional tests is available on the Mbed TLS website](https://mbed-tls.readthedocs.io/en/latest/kb/development/test_suites/). diff --git a/tests/scripts/generate-afl-tests.sh b/tests/scripts/generate-afl-tests.sh index 7c9f432ae..a640b566d 100755 --- a/tests/scripts/generate-afl-tests.sh +++ b/tests/scripts/generate-afl-tests.sh @@ -6,7 +6,7 @@ # # Usage: generate-afl-tests.sh # - should be the path to one of the test suite files -# such as 'test_suite_mpi.data' +# such as 'test_suite_rsa.data' # # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 From a020d535adb1e30a01531effd4bb3a9be9ccf4fc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 19:00:38 +0200 Subject: [PATCH 0450/1574] Avoid having both test_suite_XXX.data and test_suite_XXX.*.data Although our build scripts support that, it's annoying, because it makes "test_suite_XXX" ambiguous between "all the data for test_suite_XXX.function" and "just test_suite_XXX.data". Signed-off-by: Gilles Peskine --- .../{test_suite_bignum.data => test_suite_bignum.misc.data} | 0 ...st_suite_bignum_core.data => test_suite_bignum_core.misc.data} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/suites/{test_suite_bignum.data => test_suite_bignum.misc.data} (100%) rename tests/suites/{test_suite_bignum_core.data => test_suite_bignum_core.misc.data} (100%) diff --git a/tests/suites/test_suite_bignum.data b/tests/suites/test_suite_bignum.misc.data similarity index 100% rename from tests/suites/test_suite_bignum.data rename to tests/suites/test_suite_bignum.misc.data diff --git a/tests/suites/test_suite_bignum_core.data b/tests/suites/test_suite_bignum_core.misc.data similarity index 100% rename from tests/suites/test_suite_bignum_core.data rename to tests/suites/test_suite_bignum_core.misc.data From fc4f11b5d00b30fbd6bca1c5fe395b556adaa10c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 21 Oct 2022 19:34:54 +0200 Subject: [PATCH 0451/1574] Improve test component name Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 30ab9ba63..74c56d579 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1554,7 +1554,7 @@ component_build_crypto_full () { are_empty_libraries library/libmbedx509.* library/libmbedtls.* } -component_build_crypto_light () { +component_test_crypto_for_psa_service () { msg "build: make, config for PSA crypto service" scripts/config.py crypto scripts/config.py set MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER From ba970be1420dd4255c32a05ac4b2f5827d4a99ab Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Fri, 21 Oct 2022 13:39:00 -0400 Subject: [PATCH 0452/1574] Fix test dependencies for cases that are PSA-based These should be using PSA-type macros, not MBEDTLS_XXX_C. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_cipher.aes.data | 108 +-- tests/suites/test_suite_cipher.ccm.data | 192 ++--- tests/suites/test_suite_cipher.gcm.data | 1008 +++++++++++------------ 3 files changed, 654 insertions(+), 654 deletions(-) diff --git a/tests/suites/test_suite_cipher.aes.data b/tests/suites/test_suite_cipher.aes.data index 41e6230ba..aabd8617d 100644 --- a/tests/suites/test_suite_cipher.aes.data +++ b/tests/suites/test_suite_cipher.aes.data @@ -2015,195 +2015,195 @@ depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:0 AES-128-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"00000000000000000000000000000000":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"00000000000000000000000000000000":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"00000000000000000000000000000000":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_CBC:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"00000000000000000000000000000000":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"00000000000000000000000000000000":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_CBC:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-CBC crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-CBC crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-CBC crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"00000000000000000000000000000000":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-CBC crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-CBC crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-CBC crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_CBC:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"00000000000000000000000000000000":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"80000000000000000000000000000000":"3ad78e726c1ec02b7ebfe92b23d9ec34":0:1 AES-128-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"ffffffffffffffffffffffffffffe000":"":"00000000000000000000000000000000":"323994cfb9da285a5d9642e1759b224a":0:1 AES-128-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"10a58869d74be5a374cf867cfb473859":"":"00000000000000000000000000000000":"6d251e6944b051e04eaa6fb4dbf78465":0:1 AES-128-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_ENCRYPT:"00000000000000000000000000000000":"":"f34481ec3cc627bacd5dc3fb08f273e6":"0336763e966d92595a567cc9ce537f5e":0:1 AES-128-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"3ad78e726c1ec02b7ebfe92b23d9ec34":"80000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"ffffc000000000000000000000000000":"":"df556a33438db87bc41b1752c55e5e49":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"10a58869d74be5a374cf867cfb473859":"":"6d251e6944b051e04eaa6fb4dbf78465":"00000000000000000000000000000000":0:1 AES-128-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_128_ECB:MBEDTLS_DECRYPT:"00000000000000000000000000000000":"":"0336763e966d92595a567cc9ce537f5e":"f34481ec3cc627bacd5dc3fb08f273e6":0:1 AES-192-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"6cd02513e8d4dc986b4afe087a60bd0c":0:1 AES-192-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"ff0000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"833f71258d53036b02952c76c744f5a1":0:1 AES-192-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"00000000000000000000000000000000":"0956259c9cd5cfd0181cca53380cde06":0:1 AES-192-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_ENCRYPT:"000000000000000000000000000000000000000000000000":"":"1b077a6af4b7f98229de786d7516b639":"275cfc0413d8ccb70513c3859b1d0f72":0:1 AES-192-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"6cd02513e8d4dc986b4afe087a60bd0c":"80000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"ffe000000000000000000000000000000000000000000000":"":"7ababc4b3f516c9aafb35f4140b548f9":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"e9f065d7c13573587f7875357dfbb16c53489f6a4bd0f7cd":"":"0956259c9cd5cfd0181cca53380cde06":"00000000000000000000000000000000":0:1 AES-192-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_192_ECB:MBEDTLS_DECRYPT:"000000000000000000000000000000000000000000000000":"":"275cfc0413d8ccb70513c3859b1d0f72":"1b077a6af4b7f98229de786d7516b639":0:1 AES-256-ECB crypt Encrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"80000000000000000000000000000000":"ddc6bf790c15760d8d9aeb6f9a75fd4e":0:1 AES-256-ECB crypt Encrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"ff00000000000000000000000000000000000000000000000000000000000000":"":"00000000000000000000000000000000":"ec52a212f80a09df6317021bc2a9819e":0:1 AES-256-ECB crypt Encrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"00000000000000000000000000000000":"46f2fb342d6f0ab477476fc501242c5f":0:1 AES-256-ECB crypt Encrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_ENCRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"014730f80ac625fe84f026c60bfd547d":"5c9d844ed46f9885085e5d6a4f94c7d7":0:1 AES-256-ECB crypt Decrypt NIST KAT #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"ddc6bf790c15760d8d9aeb6f9a75fd4e":"80000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #2 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"ffe0000000000000000000000000000000000000000000000000000000000000":"":"d1ccb9b1337002cbac42c520b5d67722":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #3 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"c47b0294dbbbee0fec4757f22ffeee3587ca4730c3d33b691df38bab076bc558":"":"46f2fb342d6f0ab477476fc501242c5f":"00000000000000000000000000000000":0:1 AES-256-ECB crypt Decrypt NIST KAT #4 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:PSA_WANT_ALG_ECB_NO_PADDING +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_ECB_NO_PADDING test_vec_crypt:MBEDTLS_CIPHER_AES_256_ECB:MBEDTLS_DECRYPT:"0000000000000000000000000000000000000000000000000000000000000000":"":"5c9d844ed46f9885085e5d6a4f94c7d7":"014730f80ac625fe84f026c60bfd547d":0:1 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 @@ -2231,27 +2231,27 @@ depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_ test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":0:0 AES-128-CCM*-NO-TAG crypt Encrypt NIST VPT AES-128 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"7301c907b9d2aaac355c5416ff25c59b":"7304b65b6dab466273862c88b9":"484300aa3a506afcd313b49ead8d":"928ca58b0d373dc50c52afac787c":0:1 AES-128-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-128 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_128_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9403aff859fbb":"4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":0:1 AES-192-CCM*-NO-TAG crypt Encrypt NIST VTT AES-192 #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"11fd45743d946e6d37341fec49947e8c70482494a8f07fcc":"c6aeebcb146cfafaae66f78aab":"ee7e6075ba52846de5d6254959a18affc4faf59c8ef63489":"137d9da59baf5cbfd46620c5f298fc766de10ac68e774edf":0:1 AES-192-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-192 #15 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_192_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9403aff859fbb":"a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":0:1 AES-256-CCM*-NO-TAG crypt Encrypt NIST VADT AES-256 #1 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_ENCRYPT:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886df3ba3e6da3a1389":"72a60f345a1978fb40f28a2fa4":"30d56ff2a25b83fee791110fcaea48e41db7c7f098a81000":"55f068c0bbba8b598013dd1841fd740fda2902322148ab5e":0:1 AES-256-CCM*-NO-TAG crypt Decrypt NIST DVPT AES-256 #13 PSA -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM_STAR_NO_TAG test_vec_crypt:MBEDTLS_CIPHER_AES_256_CCM_STAR_NO_TAG:MBEDTLS_DECRYPT:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":0:1 Cipher Corner Case behaviours diff --git a/tests/suites/test_suite_cipher.ccm.data b/tests/suites/test_suite_cipher.ccm.data index 44c05ec6d..3ea44be8a 100644 --- a/tests/suites/test_suite_cipher.ccm.data +++ b/tests/suites/test_suite_cipher.ccm.data @@ -479,385 +479,385 @@ depends_on:MBEDTLS_CAMELLIA_C:MBEDTLS_CCM_C auth_crypt_tv:MBEDTLS_CIPHER_CAMELLIA_128_CCM:"D75C2778078CA93D971F96FDE720F4CD":"003B8FD8D3A937B160B6A31C1C":"A4D499F78419728C19178B0C":"4B198156393B0F7796086AAFB454F8C3F034CCA966":"945F1FCEA7E11BEE6A2F":"":"9DC9EDAE2FF5DF8636E8C6DE0EED55F7867E33337D":0 AES-128-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4ae701103c63deca5b5a3939d7d05992":"5a8aa485c316e9":"":"":"02209f55":"":"":1 AES-128-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4ae701103c63deca5b5a3939d7d05992":"3796cf51b87266":"":"":"9a04c241":"FAIL":"":1 AES-128-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"5a8aa485c316e9":"":"":"75d582db43ce9b13ab4b6f7f14341330":"":"":1 AES-128-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"3796cf51b87266":"":"":"3a65e03af37b81d05acc7ec1bc39deb0":"FAIL":"":1 AES-128-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"5a8aa485c316e9403aff859fbb":"":"":"90156f3f":"":"":1 AES-128-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3":"a16a2e741f1cd9717285b6d882":"":"":"88909016":"FAIL":"":1 AES-128-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"5a8aa485c316e9403aff859fbb":"":"":"fb04dc5a44c6bb000f2440f5154364b4":"":"":1 AES-128-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"a16a2e741f1cd9717285b6d882":"":"":"5447075bf42a59b91f08064738b015ab":"FAIL":"":1 AES-128-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"5a8aa485c316e9":"":"a90e8ea44085ced791b2fdb7fd44b5cf0bd7d27718029bb7":"03e1fa6b":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-128-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"19ebfde2d5468ba0a3031bde629b11fd":"31f8fa25827d48":"":"50aafe0578c115c4a8e126ff7b3ccb64dce8ccaa8ceda69f":"23e5d81c":"FAIL":"":1 AES-128-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"5a8aa485c316e9":"":"24ab9eeb0e5508cae80074f1070ee188a637171860881f1f":"2d9a3fbc210595b7b8b1b41523111a8e":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-128-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"31f8fa25827d48":"":"7ebfda6fa5da1dbffd82dc29b875798fbcef8ba0084fbd24":"63af747cc88a001fa94e060290f209c4":"FAIL":"":1 AES-128-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"5a8aa485c316e9403aff859fbb":"":"4a550134f94455979ec4bf89ad2bd80d25a77ae94e456134":"a3e138b9":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-128-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"197afb02ffbd8f699dacae87094d5243":"49004912fdd7269279b1f06a89":"":"118ec53dd1bfbe52d5b9fe5dfebecf2ee674ec983eada654":"091a5ae9":"FAIL":"":1 AES-128-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9403aff859fbb":"":"4bfe4e35784f0a65b545477e5e2f4bae0e1e6fa717eaf2cb":"6a9a970b9beb2ac1bd4fd62168f8378a":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-128-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"49004912fdd7269279b1f06a89":"":"0c56a503aa2c12e87450d45a7b714db980fd348f327c0065":"a65666144994bad0c8195bcb4ade1337":"FAIL":"":1 AES-128-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"782e4318":"":"":1 AES-128-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"90929a4b0ac65b350ad1591611fe4829":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"a04f270a":"FAIL":"":1 AES-128-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"41b476013f45e4a781f253a6f3b1e530":"":"":1 AES-128-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"f9f018fcd125822616083fffebc4c8e6":"FAIL":"":1 AES-128-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"9f69f24f":"":"":1 AES-128-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"e17afaa4":"FAIL":"":1 AES-128-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"1859ac36a40a6b28b34266253627797a":"":"":1 AES-128-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"edf8b46eb69ac0044116019dec183072":"FAIL":"":1 AES-128-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"6be31860ca271ef448de8f8d8b39346daf4b81d7e92d65b3":"38f125fa":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-128-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"f9fdca4ac64fe7f014de0f43039c7571":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"4cc57a9927a6bc401441870d3193bf89ebd163f5c01501c7":"28a66b69":"FAIL":"":1 AES-128-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"b351ab96b2e45515254558d5212673ee6c776d42dbca3b51":"2cf3a20b7fd7c49e6e79bef475c2906f":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-128-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"df1a5285caa41b4bb47f6e5ceceba4e82721828d68427a30":"81d18ca149d6766bfaccec88f194eb5b":"FAIL":"":1 AES-128-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"934f893824e880f743d196b22d1f340a52608155087bd28a":"c25e5329":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-128-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"a7aa635ea51b0bb20a092bd5573e728c":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"f43ba9d834ad85dfab3f1c0c27c3441fe4e411a38a261a65":"59b3b3ee":"FAIL":"":1 AES-128-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"26511fb51fcfa75cb4b44da75a6e5a0e":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"50038b5fdd364ee747b70d00bd36840ece4ea19998123375":"c0a458bfcafa3b2609afe0f825cbf503":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-128-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_128_CCM:"26511fb51fcfa75cb4b44da75a6e5a0e":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"78ed8ff6b5a1255d0fbd0a719a9c27b059ff5f83d0c4962c":"390042ba8bb5f6798dab01c5afad7306":"FAIL":"":1 AES-192-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c":"5a8aa485c316e9":"":"":"9d4b7f3b":"":"":1 AES-192-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"c98ad7f38b2c7e970c9b965ec87a08208384718f78206c6c":"3796cf51b87266":"":"":"80745de9":"FAIL":"":1 AES-192-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"5a8aa485c316e9":"":"":"17223038fa99d53681ca1beabe78d1b4":"":"":1 AES-192-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"3796cf51b87266":"":"":"d0e1eeef4d2a264536bb1c2c1bde7c35":"FAIL":"":1 AES-192-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"5a8aa485c316e9403aff859fbb":"":"":"fe69ed84":"":"":1 AES-192-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"4bb3c4a4f893ad8c9bdc833c325d62b3d3ad1bccf9282a65":"a16a2e741f1cd9717285b6d882":"":"":"db7ffc82":"FAIL":"":1 AES-192-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"5a8aa485c316e9403aff859fbb":"":"":"0c66a8e547ed4f8c2c9a9a1eb5d455b9":"":"":1 AES-192-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"a16a2e741f1cd9717285b6d882":"":"":"38757b3a61a4dc97ca3ab88bf1240695":"FAIL":"":1 AES-192-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"5a8aa485c316e9":"":"411986d04d6463100bff03f7d0bde7ea2c3488784378138c":"ddc93a54":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-192-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"19ebfde2d5468ba0a3031bde629b11fd4094afcb205393fa":"31f8fa25827d48":"":"32b649ab56162e55d4148a1292d6a225a988eb1308298273":"b6889036":"FAIL":"":1 AES-192-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"5a8aa485c316e9":"":"cba4b4aeb85f0492fd8d905c4a6d8233139833373ef188a8":"c5a5ebecf7ac8607fe412189e83d9d20":"":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22":1 AES-192-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"31f8fa25827d48":"":"ca62713728b5c9d652504b0ae8fd4fee5d297ee6a8d19cb6":"e699f15f14d34dcaf9ba8ed4b877c97d":"FAIL":"":1 AES-192-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"5a8aa485c316e9403aff859fbb":"":"042653c674ef2a90f7fb11d30848e530ae59478f1051633a":"34fad277":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-192-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"197afb02ffbd8f699dacae87094d524324576b99844f75e1":"49004912fdd7269279b1f06a89":"":"1902d9769a7ba3d3268e1257395c8c2e5f98eef295dcbfa5":"a35df775":"FAIL":"":1 AES-192-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9403aff859fbb":"":"a5b7d8cca2069908d1ed88e6a9fe2c9bede3131dad54671e":"a7ade30a07d185692ab0ebdf4c78cf7a":"":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697":1 AES-192-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"49004912fdd7269279b1f06a89":"":"9a98617fb97a0dfe466be692272dcdaec1c5443a3b51312e":"f042c86363cc05afb98c66e16be8a445":"FAIL":"":1 AES-192-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"1d089a5f":"":"":1 AES-192-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"90929a4b0ac65b350ad1591611fe48297e03956f6083e451":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"2f46022a":"FAIL":"":1 AES-192-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"":"5280a2137fee3deefcfe9b63a1199fb3":"":"":1 AES-192-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"a265480ca88d5f":"a2248a882ecbf850daf91933a389e78e81623d233dfd47bf8321361a38f138fe":"":"d40a7318c5f2d82f838c0beeefe0d598":"FAIL":"":1 AES-192-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"5e0eaebd":"":"":1 AES-192-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"6a798d7c5e1a72b43e20ad5c7b08567b12ab744b61c070e2":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"71b7fc33":"FAIL":"":1 AES-192-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"":"d07ccf9fdc3d33aa94cda3d230da707c":"":"":1 AES-192-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"8739b4bea1a099fe547499cbc6":"f6107696edb332b2ea059d8860fee26be42e5e12e1a4f79a8d0eafce1b2278a7":"":"65fe32b649dc328c9f531584897e85b3":"FAIL":"":1 AES-192-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"9f6ca4af9b159148c889a6584d1183ea26e2614874b05045":"75dea8d1":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-192-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"f9fdca4ac64fe7f014de0f43039c757194d544ce5d15eed4":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"84d8212e9cfc2121252baa3b065b1edcf50497b9594db1eb":"d7965825":"FAIL":"":1 AES-192-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"5a8aa485c316e9":"3796cf51b8726652a4204733b8fbb047cf00fb91a9837e22ec22b1a268f88e2c":"6aab64c4787599d8f213446beadb16e08dba60e97f56dbd1":"4d1d980d6fe0fb44b421992662b97975":"":"a265480ca88d5f536db0dc6abc40faf0d05be7a966977768":1 AES-192-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"fdd2d6f503c915":"5b92394f21ddc3ad49d9b0881b829a5935cb3a4d23e292a62fb66b5e7ab7020e":"4980b2ee49b1aaf393175f5ab9bae95ec7904557dfa20660":"3c51d36c826f01384100886198a7f6a3":"FAIL":"":1 AES-192-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"16e543d0e20615ff0df15acd9927ddfe40668a54bb854ccc":"c25e9fce":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-192-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"a7aa635ea51b0bb20a092bd5573e728ccd4b3e8cdd2ab33d":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"df35b109caf690656ae278bbd8f8bba687a2ce11b105dae9":"8ecedb3e":"FAIL":"":1 AES-192-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886":"5a8aa485c316e9403aff859fbb":"a16a2e741f1cd9717285b6d882c1fc53655e9773761ad697a7ee6410184c7982":"c5b0b2ef17498c5570eb335df4588032958ba3d69bf6f317":"8464a6f7fa2b76744e8e8d95691cecb8":"":"8739b4bea1a099fe547499cbc6d1b13d849b8084c9b6acc5":1 AES-192-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_192_CCM:"26511fb51fcfa75cb4b44da75a6e5a0eb8d9c8f3b906f886":"0812757ad0cc4d17c4cfe7a642":"ec6c44a7e94e51a3ca6dee229098391575ec7213c85267fbf7492fdbeee61b10":"d1f0518929f4ae2f0543de2a7dfe4bb0110bb3057e524a1c":"06bd6dc2e6bcc3436cffb969ae900388":"FAIL":"":1 AES-256-CCM test vector NIST #1 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6":"a544218dadd3c1":"":"":"469c90bb":"":"":1 AES-256-CCM test vector NIST #2 PSA (P=0, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"eda32f751456e33195f1f499cf2dc7c97ea127b6d488f211ccc5126fbb24afa6":"d3d5424e20fbec":"":"":"46a908ed":"FAIL":"":1 AES-256-CCM test vector NIST #3 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"a544218dadd3c1":"":"":"8207eb14d33855a52acceed17dbcbf6e":"":"":1 AES-256-CCM test vector NIST #4 PSA (P=0, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"d3d5424e20fbec":"":"":"60f8e127cb4d30db6df0622158cd931d":"FAIL":"":1 AES-256-CCM test vector NIST #5 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"a544218dadd3c10583db49cf39":"":"":"8a19a133":"":"":1 AES-256-CCM test vector NIST #6 PSA (P=0, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"e1b8a927a95efe94656677b692662000278b441c79e879dd5c0ddc758bdc9ee8":"3c0e2815d37d844f7ac240ba9d":"":"":"2e317f1b":"FAIL":"":1 AES-256-CCM test vector NIST #7 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"a544218dadd3c10583db49cf39":"":"":"97e1a8dd4259ccd2e431e057b0397fcf":"":"":1 AES-256-CCM test vector NIST #8 PSA (P=0, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"3c0e2815d37d844f7ac240ba9d":"":"":"5a9596c511ea6a8671adefc4f2157d8b":"FAIL":"":1 AES-256-CCM test vector NIST #9 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"a544218dadd3c1":"":"64a1341679972dc5869fcf69b19d5c5ea50aa0b5e985f5b7":"22aa8d59":"":"d3d5424e20fbec43ae495353ed830271515ab104f8860c98":1 AES-256-CCM test vector NIST #10 PSA (P=24, N=7, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"af063639e66c284083c5cf72b70d8bc277f5978e80d9322d99f2fdc718cda569":"bfcda8b5a2d0d2":"":"c5b7f802bffc498c1626e3774f1d9f94045dfd8e1a10a202":"77d00a75":"FAIL":"":1 AES-256-CCM test vector NIST #11 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c1":"":"bc51c3925a960e7732533e4ef3a4f69ee6826de952bcb0fd":"374f3bb6db8377ebfc79674858c4f305":"":"d3d5424e20fbec43ae495353ed830271515ab104f8860c98":1 AES-256-CCM test vector NIST #12 PSA (P=24, N=7, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"bfcda8b5a2d0d2":"":"afa1fa8e8a70e26b02161150556d604101fdf423f332c336":"3275f2a4907d51b734fe7238cebbd48f":"FAIL":"":1 AES-256-CCM test vector NIST #13 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"a544218dadd3c10583db49cf39":"":"63e00d30e4b08fd2a1cc8d70fab327b2368e77a93be4f412":"3d14fb3f":"":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":1 AES-256-CCM test vector NIST #14 PSA (P=24, N=13, A=0, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"f7079dfa3b5c7b056347d7e437bcded683abd6e2c9e069d333284082cbb5d453":"894dcaa61008eb8fb052c60d41":"":"bb5425b3869b76856ec58e39886fb6f6f2ac13fe44cb132d":"8d0c0099":"FAIL":"":1 AES-256-CCM test vector NIST #15 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"a544218dadd3c10583db49cf39":"":"f0050ad16392021a3f40207bed3521fb1e9f808f49830c42":"3a578d179902f912f9ea1afbce1120b3":"":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e":1 AES-256-CCM test vector NIST #16 PSA (P=24, N=13, A=0, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"894dcaa61008eb8fb052c60d41":"":"c408190d0fbf5034f83b24a8ed9657331a7ce141de4fae76":"9084607b83bd06e6442eac8dacf583cc":"FAIL":"":1 AES-256-CCM test vector NIST #17 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"":"92d00fbe":"":"":1 AES-256-CCM test vector NIST #18 PSA (P=0, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"1b0e8df63c57f05d9ac457575ea764524b8610ae5164e6215f426f5a7ae6ede4":"78c46e3249ca28":"232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc":"":"9143e5c4":"FAIL":"":1 AES-256-CCM test vector NIST #19 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"":"93af11a08379eb37a16aa2837f09d69d":"":"":1 AES-256-CCM test vector NIST #20 PSA (P=0, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"78c46e3249ca28":"232e957c65ffa11988e830d4617d500f1c4a35c1221f396c41ab214f074ca2dc":"":"d19b0c14ec686a7961ca7c386d125a65":"FAIL":"":1 AES-256-CCM test vector NIST #21 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"":"866d4227":"":"":1 AES-256-CCM test vector NIST #22 PSA (P=0, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"a4bc10b1a62c96d459fbaf3a5aa3face7313bb9e1253e696f96a7a8e36801088":"e8de970f6ee8e80ede933581b5":"89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a":"":"94cb1127":"FAIL":"":1 AES-256-CCM test vector NIST #23 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"":"867b0d87cf6e0f718200a97b4f6d5ad5":"":"":1 AES-256-CCM test vector NIST #24 PSA (P=0, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"e8de970f6ee8e80ede933581b5":"89f8b068d34f56bc49d839d8e47b347e6dae737b903b278632447e6c0485d26a":"":"677a040d46ee3f2b7838273bdad14f16":"FAIL":"":1 AES-256-CCM test vector NIST #25 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"c2fe12658139f5d0dd22cadf2e901695b579302a72fc5608":"3ebc7720":"":"78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3":1 AES-256-CCM test vector NIST #26 PSA (P=24, N=7, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a":"6ba004fd176791":"5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b":"94748ba81229e53c38583a8564b23ebbafc6f6efdf4c2a81":"c44db2c9":"FAIL":"":1 AES-256-CCM test vector NIST #27 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"a544218dadd3c1":"d3d5424e20fbec43ae495353ed830271515ab104f8860c988d15b6d36c038eab":"3341168eb8c48468c414347fb08f71d2086f7c2d1bd581ce":"1ac68bd42f5ec7fa7e068cc0ecd79c2a":"":"78c46e3249ca28e1ef0531d80fd37c124d9aecb7be6668e3":1 AES-256-CCM test vector NIST #28 PSA (P=24, N=7, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"6ba004fd176791":"5a053b2a1bb87e85d56527bfcdcd3ecafb991bb10e4c862bb0751c700a29f54b":"d543acda712b898cbb27b8f598b2e4438ce587a836e27851":"47c3338a2400809e739b63ba8227d2f9":"FAIL":"":1 AES-256-CCM test vector NIST #29 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"c0ea400b599561e7905b99262b4565d5c3dc49fad84d7c69":"ef891339":"":"e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3":1 AES-256-CCM test vector NIST #30 PSA (P=24, N=13, A=32, T=4) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"705334e30f53dd2f92d190d2c1437c8772f940c55aa35e562214ed45bd458ffe":"8fa501c5dd9ac9b868144c9fa5":"5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800":"60871e03ea0eb968536c99f926ea24ef43d41272ad9fb7f6":"3d488623":"FAIL":"":1 AES-256-CCM test vector NIST #31 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e":"a544218dadd3c10583db49cf39":"3c0e2815d37d844f7ac240ba9d6e3a0b2a86f706e885959e09a1005e024f6907":"8d34cdca37ce77be68f65baf3382e31efa693e63f914a781":"367f30f2eaad8c063ca50795acd90203":"":"e8de970f6ee8e80ede933581b5bcf4d837e2b72baa8b00c3":1 AES-256-CCM test vector NIST #32 PSA (P=24, N=13, A=32, T=16) -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_AES_C:MBEDTLS_CCM_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM auth_crypt_tv:MBEDTLS_CIPHER_AES_256_CCM:"314a202f836f9f257e22d8c11757832ae5131d357a72df88f3eff0ffcee0da4e":"8fa501c5dd9ac9b868144c9fa5":"5bb40e3bb72b4509324a7edc852f72535f1f6283156e63f6959ffaf39dcde800":"516c0095cc3d85fd55e48da17c592e0c7014b9daafb82bdc":"4b41096dfdbe9cc1ab610f8f3e038d16":"FAIL":"":1 diff --git a/tests/suites/test_suite_cipher.gcm.data b/tests/suites/test_suite_cipher.gcm.data index 1ec2e446b..7b6363550 100644 --- a/tests/suites/test_suite_cipher.gcm.data +++ b/tests/suites/test_suite_cipher.gcm.data @@ -2731,2017 +2731,2017 @@ depends_on:MBEDTLS_GCM_C:MBEDTLS_AES_C auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca264e7caecad56ee31c8bf8dde9592f753a6299e76c60ac1e93cff3b3de8ce9":"4763a4e37b806a5f4510f69fd8c63571":"07daeba37a66ebe15f3d6451d1176f3a7107a302da6966680c425377e621fd71610d1fc9c95122da5bf85f83b24c4b783b1dcd6b508d41e22c09b5c43693d072869601fc7e3f5a51dbd3bc6508e8d095b9130fb6a7f2a043f3a432e7ce68b7de06c1379e6bab5a1a48823b76762051b4e707ddc3201eb36456e3862425cb011a":"8d03cf6fac31182ad3e6f32e4c823e3b421aef786d5651afafbf70ef14c00524ab814bc421b1d4181b4d3d82d6ae4e8032e43a6c4e0691184425b37320798f865c88b9b306466311d79e3e42076837474c37c9f6336ed777f05f70b0c7d72bd4348a4cd754d0f0c3e4587f9a18313ea2d2bace502a24ea417d3041b709a0471f":"3105dddb":"FAIL":"":0 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d785dafea3e966731ef6fc6202262584":"d91a46205ee94058b3b8403997592dd2":"":"":"3b92a17c1b9c3578a68cffea5a5b6245":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"aec963833b9098de1ababc853ab74d96":"4e0ffd93beffd732c6f7d6ad606a2d24":"":"":"e9fcedc176dfe587dc61b2011010cdf1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c4fb9e3393681da9cec5ec96f87c5c31":"845e910bc055d895879f62101d08b4c7":"":"":"99fb783c497416e4b6e2a5de7c782057":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2a930f2e09beceacd9919cb76f2ac8d3":"340d9af44f6370eff534c653033a785a":"":"":"0c1e5e9c8fe5edfd11f114f3503d63":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe71177e02073b1c407b5724e2263a5e":"83c23d20d2a9d4b8f92da96587c96b18":"":"":"43b2ca795420f35f6cb39f5dfa47a2":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b02392fd7f228888c281e59d1eaa15fb":"2726344ba8912c737e195424e1e6679e":"":"":"a10b601ca8053536a2af2cc255d2b6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"21895cbafc16b7b8bf5867e88e0853d4":"f987ce1005d9bbd31d2452fb80957753":"":"":"952a7e265830d58a6778d68b9450":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9bb9742bf47f68caf64963d7c10a97b0":"34a85669de64e1cd44731905fddbcbc5":"":"":"e9b6be928aa77b2de28b480ae74c":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"4e9708e4b37e2e1b5feaf4f5ab54e2a6":"1c53a9fdd23919b036d99560619a9939":"":"":"6611b50d6fbca83047f9f5fe1768":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"82fede79db25f00be96eb050a22cea87":"e9c50b517ab26c89b83c1f0cac50162c":"":"":"d0c0ce9db60b77b0e31d05e048":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1d98566fca5201abb12914311a8bd532":"590aef4b46a9023405d075edab7e6849":"":"":"a1cfd1a27b341f49eda2ca8305":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3038771820c2e1319f02a74b8a7a0c08":"e556d9f07fb69d7e9a644261c80fac92":"":"":"4d2f005d662b6a8787f231c5e1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0fb7eef50de598d7d8b508d019a30d5a":"a2a2617040116c2c7e4236d2d8278213":"":"":"68413c58df7bb5f067197ca0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8cc58b609204215c8ab4908286e56e5c":"fb83ea637279332677b5f68081173e99":"":"":"a2a9160d82739a55d8cd419f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"81a5fd184742a478432963f6477e8f92":"da297cbb53b11d7c379e0566299b4d5a":"":"":"200bee49466fdda2f21f0062":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"f604ac66d626959e595cbb7b4128e096":"269d2a49d533c6bb38008711f38e0b39":"":"":"468200fa4683e8be":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2e308ba7903e925f768c1d00ff3eb623":"335acd2aa48a47a37cfe21e491f1b141":"":"":"4872bfd5e2ff55f6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1304e2a5a3520454a5109df61a67da7a":"dbe8b452acf4fa1444c3668e9ee72d26":"":"":"83a0d3440200ca95":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ecf1ec2c9a8f2e9cc799f9b9fddb3232":"ddf0b695aef5df2b594fcaae72b7e41c":"":"":"2819aedf":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9ab5c8ca905b5fe50461f4a68941144b":"96dd3927a96e16123f2e9d6b367d303f":"":"":"6e0c53ef":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b5fc7af605721a9cfe61c1ee6a4b3e22":"6b757d4055823d1035d01077666037d6":"":"":"e8c09ddd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"03c0b4a6e508a8490db0d086a82c9db7":"ac52f6c1a05030321fa39f87e89fdb5e":"33316ca79d10a79f4fd038593e8eef09625089dc4e0ffe4bc1f2871554fa6666ab3e7fe7885edef694b410456f3ec0e513bb25f1b48d95e4820c5972c1aabb25c84c08566002dadc36df334c1ce86847964a122016d389ac873bca8c335a7a99bcef91e1b985ae5d488a2d7f78b4bf14e0c2dc715e814f4e24276057cf668172":"":"756292d8b4653887edef51679b161812":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b228d3d15219ea9ad5651fce02c8374d":"5c7eafaead029c3fe3cf3835fe758d0e":"8c35dd805c08686b9b4d460f81b4dcb8c46c6d57842dc3e72ba90952e2bebf17fe7184445b02f801800a944486d662a127d01d3b7f42679052cdc73ce533129af8d13957415c5495142157d6ce8a68aa977e56f562fed98e468e42522767656ce50369471060381bb752dd5e77c79677a4cadffa39e518e30a789e793b07ea21":"":"a4dde1ab93c84937c3bbc3ad5237818d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"776afcbabedd5577fe660a60f920b536":"5bbb7f1b14084e520408dd87b97705e9":"44631fc9d4a07416b0dfb4e2b42071e3e2be45502c9ddf72b3e61810eeda31a7d685ebb2ee43a2c06af374569f439ee1668c550067de2dece9ec46ee72b260858d6033f814e85275c5ae669b60803a8c516de32804fa34d3a213ccfaf6689046e25eeb30b9e1608e689f4d31cc664b83a468a51165f5625f12f098a6bf7ddab2":"":"a5347d41d93b587240651bcd5230264f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"20abeafa25fc4ea7d0592cb3e9b4d5fe":"3aba79a58c5aa664856b41d552c7a8d3":"98cfecaae9eb9a7c3b17e6bc5f80d8a4bf7a9f4fa5e01b74cae15ee6af14633205aafe3b28fb7b7918e12322ea27352056a603746d728a61361134a561619400ff2bf679045bac2e0fbc2c1d41f8faba4b27c7827bceda4e9bf505df4185515dd3a5e26f7639c8ad5a38bc5906a44be062f02cc53862678ae36fa3de3c02c982":"":"2a67ad1471a520fe09a304f0975f31":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2bc73fba942ff105823b5dccf6befb1c":"902c3e3b69b1ef8395d7281ff74cce38":"4adec0b4ac00325a860044d9f9519daa4f7c163229a75819b0fd7d8e23319f030e61dfa8eadabff42ea27bc36bdb6cad249e801ca631b656836448b7172c11126bad2781e6a1aa4f62c4eda53409408b008c057e0b81215cc13ddabbb8f1915f4bbab854f8b00763a530ad5055d265778cd3080d0bd35b76a329bdd5b5a2d268":"":"ebdd7c8e87fe733138a433543542d1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"356a4c245868243d61756cabe86da887":"b442f2ec6d45a17144c258fd59fe5b3b":"12cccc3c60474b0a1579c5006c2134850724fa6c9da3a7022d4f65fd238b052bdf34ea34aa7dbadad64996065acee588ab6bd29726d07ed24ffae2d33aadf3e66ebb87f57e689fd85128be1c9e3d8362fad1f8096ee391f75b576fb213d394cef6f091fc5488d9aa152be69475b9167abd6dd4fd93bbbc7b8ca316c952eb19c6":"":"ed26080dcb670590613d97d7c47cf4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dfa7e93aff73600fc552324253066e2c":"c20001e93f1cd05253c277a9445d61e4":"a64d1e20058a1f7e698622a02f7ff8dc11886717ede17bbdc3c4645a66a71d8b04346fb389a251ffb0a7f445a25faf642bb7e4697d2cacf925e78c4be98457996afb25b0516b50f179441d1923312364947f8f1e0f5715b43bd537727bf943d7b4679b0b0b28b94e56e7bbf554d9cf79fcee4387f32bb6f91efdd23620035be6":"":"6ba5e4dace9a54b50b901d9b73ad":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2ecea80b48d2ecd194a7699aa7d8ccfc":"8b4db08bafc23b65ae50a2d20661d270":"efc2ca1a3b41b90f8ddf74291d68f072a6e025d0c91c3ce2b133525943c73ebadc71f150be20afeb097442fa51be31a641df65d90ebd81dcbaf32711ed31f5e0271421377ffe14ddafea3ca60a600588d484856a98de73f56a766ae60bae384a4ae01a1a06821cf0c7a6b4ee4c8f413748457b3777283d3310218fb55c107293":"":"246a9d37553088b6411ebb62aa16":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d38fee3fd3d6d08224c3c83529a25d08":"a942ccb11cf9468186fabfc18c899801":"1c92a4ce0a1dae27e720d6f9b1e460276538de437f3812ab1177cf0273b05908f296f33ba0f4c790abe2ce958b1d92b930a0d81243e6ad09ef86ee8e3270243095096537cb1054fcfcf537d828b65af9b6cf7c50f5b8470f7908f314d0859107eed772ee1732c78e8a2e35b2493f3e8c1e601b08aeab8d9729e0294dca168c62":"":"803a08700ec86fdeb88f7a388921":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1899b0cbae41d705c6eed3226afb5bc0":"82d0910aa53e300a487d880d018d0dea":"6bf5583cc1007d74f3529db63b8d4e085400ccf3725eab8e19cb145f3910c61465a21486740a26f74691866a9f632af9fae81f5f0bffedf0c28a6ce0fd520bb4db04a3cd1a7d29d8801e05e4b9c9374fd89bcb539489c2f7f1f801c253a1cc737408669bcd133b62da357f7399a52179125aa59fae6707d340846886d730a835":"":"c5d58870fee9ce157f5ec1fa8f":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8b95323d86d02754f4c2874b42ec6eb0":"4f76084acbdef9999c71dcc794238d7c":"ebc75788377c0b264818a6f97c19cf92c29f1c7cdeb6b5f0a92d238fa4614bc35d0cfe4ec9d045cd628ff6262c460679ac15b0c6366d9289bbd217e5012279e0af0fb2cfcbdf51fe16935968cbb727f725fe5bcd4428905849746c8493600ce8b2cfc1b61b04c8b752b915fed611d6b54ef73ec4e3950d6db1807b1ce7ed1dcc":"":"c4724ff1d2c57295eb733e9cad":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"30da555559eb11cf7e0eff9d99e9607d":"7799275bf12335f281ec94a870f90a0b":"e735d556e15aec78d9736016c8c99db753ed14d4e4adaaa1dd7eaad702ea5dc337433f8c2b45afdf2f385fdf6c55574425571e079ca759b6235f877ed11618ff212bafd865a22b80b76b3b5cf1acfd24d92fd41607bbb7382f26cd703757088d497b16b32de80e1256c734a9b83356b6fced207177de75458481eaef59a431d7":"":"3c82272130e17c4a0a007a908e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ed2ac74af896c5190c271cfa6af02fd2":"e0226e2d8da47badad1fb78b9a797f27":"8f11353ae476ff923013e6e736ffc9d23101a1c471ccc07ad372a8430d6559c376075efce2e318cdf4c9443dbf132e7e6da5524045028c97e904633b44c4d189a4b64237ac7692dd03c0e751ce9f04d0fdbd8a96074cd7dfa2fd441a52328b4ac3974b4902db45663f7b6f24947dba618f8b9769e927faf84c9f49ad8239b9fb":"":"db8af7a0d548fc54d9457c73":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0225b73fe5fbbe52f838d873173959d8":"02a048764f48d9aed1147ee922395bbf":"9b46a57b06e156c877e94c089814493ead879397dab3dfcab2db349ef387efcd0cc339a7e79131a2c580188fc7429044a465b8329d74cd8f47272a4ed32582b1c5c7e3d32341ae902ea4923dc33df8062bc24bb51a11d2ecc82f464f615041387f9c82bd2135d4e240fe56fa8a68e6a9a417e6702430a434b14d70cf02db3181":"":"e2c2ce4022c49a95c9ac9026":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"89ca3771a0ef3287568b4ac036120198":"7e83d2ffa8af8c554cfd71a0db56ef5b":"1bd7a9d6262882bd12c62bd50942965b3cdcadf5e0fab2dc4d0daf0ee4b16e92c6e2464c0caa423cdce88e4d843490609716ec5e44c41672c656ac0e444d3622557ea8420c94deae3ad190ddaf859f6f8c23e4e2e32a46d28df23de4f99bd6c34f69e06eddfdfa5f263dbe8baf9d4296b2c543e4c4847271e7590374edf46234":"":"06b2bf62591dc7ec1b814705":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a41a297bd96e224942998fe2192934a1":"6827f2c5a0b7ecd6bbc696abb0adf556":"f32041abd8543415cbac423d945dda5378a16a7e94d9ab5dbd2d32eb1c5048cc7c8e4df3ca84ec725f18c34cfdeaa7595392aabfd66d9e2f37c1165369cd806cd9d2110def6f5fad4345e5a6e2326c9300199438fcc078cd9fcf4d76872cac77fc9a0a8ac7e4d63995078a9addecf798460ff5910861b76c71bccfb6b629d722":"":"49a4917eef61f78e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a9372c058f42e0a1d019bdb528313919":"8d03f423230c8f00a5b6b712d426a2af":"cfef4e70fcc1821eeccf7c7b5eb3c0c3b5f72dc762426e0bd26242f8aa68c5b716ab97eded5e5720caccc1965da603d556d8214d5828f2cf276d95bf552d47313876796221f62ccb818a6d801088755d58cfb751bfed0d5a19718d4e0f94b850e0279b3a69295d1837cba958a6cc56e7594080b9e5b954a199fdc9e54ddc8583":"":"b82cd11cd3575c8d":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6302b7338f8fa84195ad9abbacd89b4e":"e1bed5c53547cbc85f3411fbb43bb08b":"bcd329c076e8da2797d50dcdcf271cecf3ce12f3c136ed746edc722f907be6133276ee099038fdc5d73eec812739c7489d4bcc275f95451b44890416e3ffe5a1b6fa3986b84eee3adad774c6feaecb1f785053eeda2cfc18953b8547866d98918dbe0a6abc168ac7d77467a367f11c284924d9d186ef64ef0fd54eacd75156d2":"":"5222d092e9e8bd6c":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"78b5c28d62e4b2097873a1180bd5a3a5":"c93902c2819ee494f0fc4b259ee65dd8":"e6b1192674a02083a6cf36d4ba93ba40a5331fadf63fd1eb2efa2ee9c0d8818472aaaf2b4705746011753f30f447c8f58dd34d29606daf57eadc172529837058cb78a378b19da8d63c321f550dfa256b5fd9f30e93d8f377443bfcd125f86a079a1765d2010be73d060f24eebae8d05e644688b2149bc39e18bd527bc066f2ba":"":"eae48137":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d84130578070e036c9e3df5b5509473":"3b9b4950523a19c6866fd2b0cde541fd":"a764931e1b21a140c54a8619aacdb4358834987fb6e263cec525f888f9e9764c165aaa7db74f2c42273f912daeae6d72b232a872ac2c652d7cd3af3a5753f58331c11b6c866475697876dbc4c6ca0e52a00ba015ee3c3b7fb444c6e50a4b4b9bbe135fc0632d32a3f79f333d8f487771ed12522e664b9cf90e66da267f47a74d":"":"79987692":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08428605ab4742a3e8a55354d4764620":"128f5f4a817e4af04113847a223adeb0":"464b484ed79d93a48e0f804e04df69d7ca10ad04ba7188d69e6549ab50503baaec67e0acba5537d1163c868fd3e350e9d0ae9123046bc76815c201a947aa4a7e4ed239ce889d4ff9c8d043877de06df5fc27cf67442b729b02e9c30287c0821ef9fa15d4cccbc53a95fa9ec3ed432ca960ebbf5a169ccada95a5bf4c7c968830":"":"3eb3e3a2":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0dd358bc3f992f26e81e3a2f3aa2d517":"d8c750bb443ee1a169dfe97cfe4d855b":"":"87cc4fd75788c9d5cc83bae5d764dd249d178ab23224049795d4288b5ed9ea3f317068a39a7574b300c8544226e87b08e008fbe241d094545c211d56ac44437d41491a438272738968c8d371aa7787b5f606c8549a9d868d8a71380e9657d3c0337979feb01de5991fc1470dfc59eb02511efbbff3fcb479a862ba3844a25aaa":"a81d13973baa22a751833d7d3f94b3b1":"":"77949b29f085bb3abb71a5386003811233056d3296eb093370f7777dadd306d93d59dcb9754d3857cf2758091ba661f845ef0582f6ae0e134328106f0d5d16b541cd74fdc756dc7b53f4f8a194daeea9369ebb1630c01ccb307b848e9527da20a39898d748fd59206f0b79d0ed946a8958033a45bd9ae673518b32606748eb65":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"43b5f18227e5c74288dbeff03801acd6":"08ee12246cf7edb81da3d610f3ebd167":"":"f58d630f10cfca61d4644d4f6505bab629e8e8faf1673e64417f9b79e622966a7011cfb3ff74db5cebf09ad3f41643d4437d213204a6c8397e7d59b8a5b1970aed2b6bb5ea1933c72c351f6ba96c0b0b98188f6e373f5db6c5ebece911ec7a1848abd3ae335515c774e0027dab7d1c07d047d3b8825ff94222dbaf6f9ab597ee":"82d83b2f7da218d1d1441a5b37bcb065":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a433c612d7e1bdff881e4d63ba8b141":"8b670cf31f470f79a6c0b79e73863ca1":"":"ce10758332f423228b5e4ae31efda7677586934a1d8f05d9b7a0dc4e2010ec3eaacb71a527a5fff8e787d75ebd24ad163394c891b33477ed9e2a2d853c364cb1c5d0bc317fcaf4010817dbe5f1fd1037c701b291b3a66b164bc818bf5c00a4c210a1671faa574d74c7f3543f6c09aaf117e12e2eb3dae55edb1cc5b4086b617d":"8526fd25daf890e79946a205b698f287":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8e9d75c781d63b29f1816859f7a0e0a0":"748a3b486b62a164cedcf1bab9325add":"":"a9f1883f58e4ef78377992101ab86da0dafcefa827904dd94dff6f6704b1e45517165a34c5555a55b04c6992fb6d0840a71bd262fe59815e5c7b80fe803b47d5ba44982a3f72cb42f591d8b62df38c9f56a5868af8f68242e3a15f97be8ef2399dbace1273f509623b6f9e4d27a97436aebf2d044e75f1c62694db77ceac05de":"131e0e4ce46d768674a7bcacdcef9c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe6b8553002c69396d9976bb48d30779":"595b17d0d76b83780235f5e0c92bd21f":"":"786f4801b16de7a4931ab143b269c7acc68f1ed9b17a95e8929ccec7d53413059fd4267bedbf079d9d69e90314c1345bc9cb9132f1af69323157ddf7533ced42b4b7bd39004f14d326f5b03bc19084d231d93bcab328312d99b426c1e86e8e049d380bb492e2e32ad690af4cf86838d89a0dfdcbc30e8c9e9039e423a234e113":"8879de07815a88877b0623de9be411":"":"b15dc7cd44adcb0783f30f592e5e03ccd47851725af9fe45bfc5b01ae35779b9a8b3f26fec468b188ec3cad40785c608d6bfd867b0ccf07a836ec20d2d9b8451636df153a32b637e7dcdbd606603d9e53f6e4c4cc8396286ce64b0ea638c10e5a567c0bc8e808080b71be51381e051336e60bf1663f6d2d7640a575e0752553b":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"14898c56009b459172fef9c17993b54f":"0862f8f87289988711a877d3231d44eb":"":"e7ba6ef722273238b975d551f95d3e77e9b75b24c547b86eafb457d409803bdf6e1443839d8604ee497020e1a3dbd687a819b17fdde0fcf240ce2129792792a58bfcd825773001ee959bf9ec8d228e27ce1cd93d7fb86769a3793361b6f82bf7daf284afc1ece657a1ee6346ea9294880755b9b623563ad2657ba2286488a2ef":"36938974301ae733760f83439437c4":"":"3fd56897a62743e0ab4a465bcc9777d5fd21ad2c9a59d7e4e1a60feccdc722b9820ec65cb47e1d1160d12ff2ea93abe11bc101b82514ead7d542007fee7b4e2dd6822849cd3e82d761ff7cf5ce4f40ad9fec54050a632a401451b426812cf03c2b16a8667a88bb3f7497e3308a91de6fd646d6a3562c92c24272411229a90802":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fe5253d4b071793b081ebc122cc2a5f8":"49e82d86804e196421ec19ddc8541066":"":"b57a0bd7714ae95e77fa9452e11a7ed4a2bec60f81ad6ddb956d4b1cb5dfc277dcb4034d501801b26733b5e08c710c3cfdccc1b208dc7a92cd7ebe166320582bcaff64cc943c36fbe7008f004e5db70c40de05fa68b0c9d4c16c8f976130f20702b99674cd2f4c93aeaeb3abca4b1114dbc3a4b33e1226ad801aa0e21f7cc49b":"e8b8ae34f842277fe92729e891e3":"":"c4a31c7ec820469f895d57579f987733337ec6547d78d17c44a18fab91f0322cfe05f23f9afaf019cf9531dec2d420f3591d334f40d78643fd957b91ab588a7e392447bd702652017ede7fb0d61d444a3b3cc4136e1d4df13d9532eb71bcf3ff0ae65e847e1c572a2f90632362bc424da2249b36a84be2c2bb216ae7708f745c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b3502d6f0d172246e16503cdf5793296":"6ce994689ff72f9df62f386a187c1a13":"":"09268b8046f1558794e35cdc4945b94227a176dd8cb77f92f883542b1c4be698c379541fd1d557c2a07c7206afdd49506d6a1559123de1783c7a60006df06d87f9119fb105e9b278eb93f81fd316b6fdc38ef702a2b9feaa878a0d1ea999db4c593438f32e0f849f3adabf277a161afb5c1c3460039156eec78944d5666c2563":"21cdf44ff4993eb54b55d58e5a8f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5fb33dd73db309b9dfd3aee605cd94bf":"3f6486f9e9e645292e0e425bac232268":"":"f4e011f8c99038c46854b427475f23488077ebf051c4b705a1adfdd493a0a10af7a7e9453965b94f52f61ae62ce9243a82a2dbf9c5a285db3fe34ed34ed08b5926f34c48171195f7062d02a6e6e795322a0475017371cb8f645cdcac94afc66dc43e7583bdf1c25790f4235076a53de6c64f3bc5004e5a9ce4783fbf639fad97":"7ee5e0e2082b18d09abf141f902e":"":"0503cb531f1c967dae24f16dd651d544988a732020134896a0f109222e8639bf29ff69877c6ef4ac3df1b260842f909384e3d4409b99a47112681c4b17430041ca447a903a6c1b138f0efbb3b850d8290fceac9723a32edbf8e2d6e8143b1cbc7bf2d28d1b6c7f341a69918758cc82bbab5d898fa0f572d4ceaa11234cb511ec":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a958fe3b520081b638d9e4c7d5da7ac7":"c396109e96afde6f685d3c38aa3c2fae":"":"dfa9487378c7d8af9c8dbd9e533cd81503d9e4e7dab43133bad11fd3050a53a833df9cc3208af1a86110567d311d5fc54b0d627de433c381b10e113898203ac5225140f951cdb64c6494592b6453f9b6f952ec5ece732fb46c09a324f26b27cdad63588006bb5c6c00b9aa10d5d3b2f9eaab69beeddd6f93966654f964260018":"06ca91004be43cf46ed4599e23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ec319fb143eac8215b51541daec268f2":"8a4684f42a1775b03806574f401cff78":"":"d298d988e74927736237eb8ab09d7a86b854fa2fd1f7f3be83b417ac10aa9291f4af5b3fbaf75a296ac32369ad57ded3984b84711953e477de3035ba430a30ffb84c941936e6c8d2cae8d80159876f87dd682747f2dccc36d7c32ab227032b8ac70b313fa4202ea236e3ec4d9e4d8b48cf3b90b378edc5b1dbeec929549344f8":"e91acb1bfda191630b560debc9":"":"27ce4a622959930f4059f247d29d1438257093cc973bf1bae4e0515da88b9a7e21ec59c7e4d062035cdf88b91254d856b11c8c1944865fa12922227ded3eecccaa36341ecf5405c708e9ea173f1e6cdf090499d3bb079910771080814607a1efe62ec6835dc0333d19dd39dd9ea9f31cd3632128536149a122050bb9365b521d":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"14a3e69f351ac39b4297749a90c1365c":"eb1c6c04437aa5a32bcc208bb3c01724":"":"051224f7b208549dcfda5f9d56ce5f0a072ef1f23f3810c693516c92622be6ed4d7a9e0f9450980ba490b2e9e3468ea7eef10bc9ebd673d91f32b748c1bf2c50cc4ebb59fc409c6d780bba00700d563ce1dc9927a6c860095a42ed053f3d640debfbfa7a4e6d5de234af19755000d95e7f414f1f78285ee165410c020038286b":"e418815960559aefee8e0c3831":"":"797310a6ed9ce47cdc25f7f88f5dbbf6f8f4837701704d7afced250585922744598d6f95ba2eecf86e030cc5ee71b328fc1c4f2d4df945d1b91a2803d6ae8eba6881be5fe0f298dd0c0279e12720ede60b9e857ccca5abe9b4d7ee7f25108beebbfe33f05c0d9903bf613c2e7ed6a87b71b5e386d81b3ae53efd01055bbcccc2":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c34827771fc3918d1cee09ba9401b832":"2379bbd39a1c22bc93b9b9cc45f3840b":"":"ce79701b661066e53191c9acdaf677ad41622314898d7216e3f113e2e6e215d26d8bd139827f06ab3ea5c4105694e87db1dd6cec10e1f86a8744d4c541f08e40319e22ab42fc1a6c89edfd486b6f142c6bbbf84a73912e0b2e55b79db306ccabf839855afdd889e52ae981520c89e7dc29bb2adb1906cca8c93fcb21290a095b":"26e1f6cf0d9e0f36dfd669eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b1f9bd2006ec550b7b9913d383200b5d":"ca28fa6b64bb3b32ef7d211f1c8be759":"":"6d9fc8f586d50d6e0128172ae147844e80136905d3a297497a9566ca7c7445029028f14c9950acee92a5c12a9150f5e024e01c7505dd83937542b0b1288de9c292ae8ad918a09b2edf8493540b74c73d2794f2eb6eed18eba520ddea9567462c83330f33d7892fcde0b10c73a4e26ab1bef037cec7e0190b95188e9a752fee6f":"c87aac7ad0e85dbb103c0733":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8b2cef1a92aa0af2b00fb2a99855d5bc":"08d87b7acee87d884667f6b1e32e34d0":"":"fd09525ef3c65ab5823e1b6c36b4a9449a3975c5d3a9e7e33c61fb32edcbb8e8c915b6202e3fbce87d73cc3b66d83d9ea7e1e353cc7468f08626932cf0235563e2a28953ee5a0afadb1c3cb513b1f1fc9a8a6cf326174b877448672f7731dd6430a51619da1a169ab302da5af5b38802f8bbf5890b5d9b45deda799679501dc4":"3bd7685318010b0c5fe3308b":"":"583e64631c218549923e8ad33b728d07f23b0f19d2aff1ad7e20d564c591db0e117caa8f21e3f3345e3d84f0ccbb27274cddf9274410fc342cb2a5d4aea4e925d0dd5350389ee0dea23a842ff3f5c1198374a96f41e055f999cfbc2f47ceaa883da8eb6ff729f583eff1f91bd3f3254d4e81e60d9993b3455e67f405708e4422":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"175c306f8644b0c4b894ae3d0971505e":"9860268ca2e10974f3726a0e5b9b310f":"":"fbe7ced7048f83e3a075661c4924eb77da1b4d6019d504afb942d728b31fd3b17557bd101c08453540a5e28d3505aeb8801a448afac2d9f68d20c0a31c7ef22bd95438851789eef1bebe8d96ac29607025b7e1366fecd3690ba90c315528dc435d9a786d36a16808d4b3e2c7c5175a1279792f1daccf51b2f91ac839465bb89a":"f809105e5fc5b13c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08c0edcfe342a676ccdc04bdf854b4b0":"4a7b70753930fe659f8cc38e5833f0c7":"":"1fc8ef8480c32d908b4bcbfa7074a38e915c20ed7a1c608422087e89442d7c5af6fe9c9a716c55793248062d8e6c6e8e904e2804da3a43701e4c78ecdb67e0b25308afc6d9b463356439cd095cff1bdf0fd91ab301c79fd257046cba79a5d5cd99f2502ad968420e4d499110106072dc687f434db0955c756a174a9024373c48":"9ab1e2f3c4606376":"":"983458c3f198bc685d98cea2b23cf71f0eb126e90937cab3492a46d9dc85d76bbb8035c6e209c34b2a7187df007faabe9f3064dc63f1cb15bf5a10655e39b94732e0c6583d56327e9701344e048887a81b256181cdfa9ec42ebc990875e4852240ddcb3cbc4ea4e6307075fd314f7190f3553267bd68b19e954e310ec3f8dbab":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"241067a0301edf0f825d793e03383ea1":"a30994261f48a66bb6c1fc3d69659228":"":"6984bb9830843529fad7f5e7760db89c778d62c764fcd2136ffb35d7d869f62f61d7fef64f65b7136398c1b5a792844528a18a13fba40b186ae08d1153b538007fc460684e2add8a9ed8dd82acbb8d357240daaa0c4deb979e54715545db03fe22e6d3906e89bdc81d535dae53075a58f65099434bfeed943dbc6024a92aa06a":"36c3b4a732ba75ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"03cccb5357bd2848332d1696f2ff90cb":"e0754022dfb1f813ccaf321558790806":"":"5e2f18cbc1e773df9f28be08abb3d0b64d545c870c5778ac8bb396bef857d2ac1342ae1afb3bf5d64e667bf837458415d48396204fe560e3b635eb10e560e437f2d0396952998fd36e116cd047c1d7f6fc9901094454d24165c557a8816e0d0a8e0ce41e040ba6f26ca567c74fc47d9738b8cd8dae5dfc831c65bc1ba9603a07":"c75f0246":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"4e5e53c84a05d5a5348bac7b2611cf62":"47e40543b7d16bc9122c40b106d31d43":"":"489c00c05dec06f282924c680f621ab99ac87f7d33ebbb4ca0eee187ec177d30d2b4afb4ee9f0dc019cf1a4da16d84b7f5f5c7fce72a32461db115b5a5a433024fd5ed3d47161836bb057a0189ed768f95e45fa967d0cc512fc91b555808c4033c945e8f2f7d36428dcb61f697e791b74e5c79b2bcb9cb81bec70d8119cd8d76":"81eec75d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2c94008bf377f90b7a1c0d2ea38f730c":"abfe92931a8411a39986b74560a38211":"":"7b3d619d115de9970b2df4e1f25194940b3f3da04c653231e8e6946de9dc08ae5ba37e2a93c232e1f9445f31c01333045f22bd832e3b5f9833f37070fafb0ef1c44cc5637058ab64d9e07bb81b32852d4cf749a3ddbfdb494f8de8bb4e31f46033f8a16bc22e2595d023845505ea5db74dd69ab4ca940078b09efb4ff19bdb66":"47d42e78":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"69eedf3777e594c30e94e9c5e2bce467":"a3330638a809ba358d6c098e4342b81e":"df4e3f2b47cf0e8590228fcf9913fb8a5eb9751bba318fd2d57be68c7e788e04fabf303699b99f26313d1c4956105cd2817aad21b91c28f3b9251e9c0b354490fa5abfcea0065aa3cc9b96772eb8af06a1a9054bf12d3ae698dfb01a13f989f8b8a4bb61686cf3adf58f05873a24d403a62a092290c2481e4159588fea6b9a09":"5114e9983c96fecec3f7304ca42f52aa16cb7c6aadfb62ad537c93a3188835ca0703dad34c73cf96435b668b68a7a1d056931959316e8d3ab956bf64c4e07479c7767f9d488b0c0c351333ccf400b7e0be19a0fd173e3f2a1ae313f27e516952260fd2da9ab9daca478ebb93cd07d0b7503b32364d8e308d904d966c58f226bb":"5de3068e1e20eed469265000077b1db9":"":"208e6321238bf5c6e2ef55a4b8f531cbbfb0d77374fe32df6dd663486cf79beeed39bb6910c3c78dd0cc30707a0a12b226b2d06024db25dcd8a4e620f009cafa5242121e864c7f3f4360aaf1e9d4e548d99615156f156008418c1c41ff2bbc007cecf8f209c73203e6df89b32871de637b3d6af2e277d146ae03f3404d387b77":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"45cc35311eedf0ba093bf901931a7036":"fed5084de3c348f5a0adf4c2fd4e848a":"6e210914e4aed188d576f5ad7fc7e4cf7dd8d82f34ea3bcbdb7267cfd9045f806978dbff3460c4e8ff8c4edb6ad2edba405a8d915729d89aab2116b36a70b54f5920a97f5a571977e0329eda6c696749be940eabfc6d8b0bbd6fbdb87657b3a7695da9f5d3a7384257f20e0becd8512d3705cc246ee6ca1e610921cf92603d79":"5dc8d7525eaad035c19714ae1b1e538cb66a4089027245351e0ad9297410fb3a0c1155407c10a8bb95a9ca624a9c9925dac003ee78926c6e90ff4ccdba10e8a78bda1c4478162a0e302de5ff05fb0f94c89c3c7429fb94828bdcd97d21333c2ee72963ee6f056ce272b8bab007e653a42b01d1d2041ba627f169c8c0d32e6dae":"266a895fc21da5176b44b446d7d1921d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9edb5231ca4a136b4df4ae22b8588f9f":"c342e9bdabe7be922b2695f5894e032c":"a45c7f8032ac5144deef8d5380f033aea2786b0592720a867f4831eaccc6b85d3fd568aedc6e472e017455b0b5b30cf7a08ea43ca587f35e1646ecd9b4dc774d11e350c82c65692be1e9541cbd72a283bdcf93dc7115545f373747b4f8d5915ed0c42fbeefd3e9bd86003d65efc2361fde5b874ddabcf8265e6b884615102eff":"493df801c57f8bb591955712d92d3fc34518f0599fec8533b2b4473364e1df4f560c12444cf50eeb584676b7e955c742189de6b50b8e012dfa6642f3679fb02bc6d8e08d1db88c8ae955a7946263e06494e17f8df246b672942661e5563302252208f2e00a0d77068a020e26082c291a75a06f63c41e2830292a418b2b5fd9dd":"5ed3ea75c8172fa0e8755fef7b4c90f1":"":"56696e501fac1e8d5b83ef911ed11337d5d51ff5342a82993dd5340bb9632e6606eef68ec5fe8cec6b34ebbc596c279e6cbc9221c4cde933f6d93ae014e3c4ca49593f35eaa638606d059519bac3a3373519e6184e7227d2aa62170c36479fe239cb698bfca863925a4c9fb1338685a55a6dfd3bd9c52d8ae12be8551fce6e1a":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d5fdcb8f5225090e63fae9b68f92c7cb":"581c818282a0905df5ffff652e5604e9":"f1ae6cd7b07f261105f555cf812a1d5bf8dd9aac07666318acffa11abb77d0238156663acbf7543825b45c6e9cddb481a40995ecd78bb5f4cba5df7c7efb00fc19c7f45e94d37697aca8ef368b99165393b6107f900194c797cd3289cb097eb5915f2abfd6aa52dd1effffdde448e30075a1c053246db54b0ec16eadca1c0071":"d39b9cba95e3a3aab9bc1d03ff475c04faeb5b7f0510777f39e5a05756606eb7ddd154aac035d9ddaf3535629821dd8f014dedd52cd184f52fc706e3c89a3a271398c9125d9a624dafb297a56022ca2ea331ea7359ab5e65f8e14814788e64e0a886a9b1a0144bf268fdcf9d94c3d10a0452f40111da9df108252e9039eacea3":"827e66b5b70dce56215cfb86c9a642":"":"cec11a12e47fd443f878e8e9fe23c65f29dd2d53cec59b799bcb0928de8e2f92fe85c27cec5c842ef30967b919accafe0c0d731b57f0bb5685d90a3061cb473e50e8aeca1346d1f47f7db06941f83f21ba5976d97c28cab547d8c1f38387a04b8a0b212da55b75fbaf9562eeeabd78eadcbab66457f0cd4e0d28133a64cb063f":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"036198cd3a3ab9319684d0f811cf2992":"47dffc6b3b80ffef4b943bde87b9cf3c":"ec4de476cd337f564a3facb544d0ff31cd89af4c3d9a28543e45156189f8eff8f804494dda83a1fb2c30ce858884a01ec63db59268452b1eea0f0d48280bb7340eaacc84509469dd94d303774d053d7ab4fb5f6c26581efeb19165f8cb09d58ec314d09ab8356731e87fd081f661e7b2d1a7c3aa4af5448a12b742e7b210b0b0":"6b95b9e82a695fb7b466ce3adb536f525d8314f95eada39efb49baf121093ce7d5439f0d8223e03530b85accd388a70650ca9f7e63eb32afecb7b1916ed9b762128cc641caf3e08e027c3d88481d653b6b15172e977dfb9b3f88465911aee162501cbf8501ce2b66ee151bbfdc23225f638f18750c239d62471663e5ee2a5856":"6cf68a374bea08a977ec8a04b92e8b":"":"5c2f7c408167be3d266ff634e1993fe291aef7efae245fa0b6b5bde886a810c866ae6a078286684d1b66116e636e285f03646e09f3c4ed7b184e7c171ba84f3bfd9500c6f35964a404892b4cdcdd3f697fc5b01934a86019810987a9fea7efca016049873f1072f62df3c17f57ea1d88ccd8757f7e3c5d96e8a18d5366a39ea9":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c9fbbff8f25f951ba874dfc5ff38584e":"1c1fc752673be6d4ff4cc749fc11e0fe":"abfde0b60acfe265b62ed68ebebc1f5f725f155c4b8a8aeec8d704701c51ff7817060c1b0ce6b80d6efc9836c9ea2bc022ec67db4cd34e945e3a1b153fd2e0f7ac84bb4b07e04cbb529ee24014b16067f9f082b940c9d5e54024d3e5e910310457478560721587da7b5343d89eec5a8fce389c01185db15e7faa9a3fa32e8ab9":"ca401071396da00376add467490abc6e6a7d8a85852026979f7013a09cf689113c8d833560cd6c5b8fdaa8fdd818e773ac13954839a0a2c91efeaf4e0e14de43308419a8b86fa2ae600a88a6bd39dfaabc16a3c7c1b77a5c2aab7f7caceb2f8595324125efbb7c96ba16c47d0bd10568b24bf445d72d683268466e68e46df500":"ff0b2c384e03b50e7e829c7a9f95aa":"":"239637fac6e180e71b2c9fa63ce8805f453d81499623ec2deba9b033350250662897867bffaf0c314244baf9e1fe3e1bb7c626d616bfbf3e0ac09a32aaf718b432337c9dc57c2d6fc4a0a09bdc05b9184d1b90c7193b7869f91e2caa8b3b35c10c6621ffae4c609bdf4e4e3f06e930541c381451ef58f4f30a559d2b79b0e6b6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3a314ec178da96311e42334a616fb38b":"d7ea27c819e3eb2666611bb1c7fc068d":"db8dcc31a5681f13d56abd51bd2dcb0d2b171628186e215a68bf16167b4acd00c3441973c3fa62fa2698ee5c6749fc20e542364d63c40756d8bcff780269e5201bafdced3cdc97931d8203873431882c84522c151b775285d0a3c5d7667254c74724ff0ea9d417aa6c62835865dfded34edd331c0c235a089427672c5a9211c9":"518b3f5384ab54f80497d55be7a5d6902bc7718386212c2ec7537db331514b3838f104bf9054e03039a4cfb73f41e5d0a9648e569ed738cea8d33917430dff6afa8f07a75e324b9262fa196a4439dcd66b0535ee5bea0d292600227c2a79ed03be0671740e5cb7b306d855612bd3abcbf02cf7e7cecbb6cdbb33d57b4e3234a2":"1e774647b1ca406e0ed7141a8e1e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e818372a63b7e2c23b524e29ba752bdb":"36e617e787cb25e154f73af1da68cb06":"71801d69796c2ce36b043c157aec9fd2e06fd1ec596126d10c26b6d44e3dc36c4fa30a030d65c382b6ddfd958e71fe9c16732e595137a3d6764c15480fc3358e9a113ba492b31274663f5842df5d1cc6bad70e83b34675a4411e2e70755aede0ff5035601be130562e27a20283d6f144ff1bdb5276dec05fad80d51b28d50688":"c1bf1b702a95ceaa6b48a1cdd888ae51f58a9fc3232bd6c784529a83301c6d0cdda6e605ad9a2563f54a8d59f624ae7c589e48b85041a010dcb6fb8739d43e79a456fc0e8574af086df78680460c3cdc4e00dc3b9d4e76b0de26e9aec546705249fa7e7466c01001c2667eaf2813be1f0f116916f34843a06b201d653aa1b27e":"3744262bc76f283964c1c15dc069":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a04f16882ff45816739d1b6697ce8b7":"66f504d9a9128ad7fb7f1430d37c4784":"f641c53c83c4fb1ff8044bfa97cdf63fe75d8159d65b3e5ad585b89c083a53cf4a2f7a58eaeaf45fa71f2c07bc5725a6b03307d7f32884a133a4c803700bf1e12564b98b71f63b434ddf13ad2c467dda25ffa6effcafa72452b20c34cfae71e47096f8745b487e9f1945f5bec83f7ec2709a13b504d92315b1b727a78902be84":"6a4f3dbb3371f64258fd1f831349e745a4e19a33aad794b1de3788729618beed619586092120e9e5dc3ac6e0d52f991f7be61afbfaa4399ac716ad79a2734827254b1627791dc92a128a6f43426b8085dee94242e83176a3d762658f18ecc1e37e3e1531648c9caed212ea2cf3b3843cb92cb07730f30fe2dca3925470fadd06":"fbb37084396394fecd9581741f3c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"38cf029a4b20607030586cd2d82146e6":"6330084319e2bf32cd5240f4826944bc":"80746cfb0127c592f8164d751b0e14a5b379056a884cece7ee4e9b80538d7ff6be56a3b19c135786722aaf315123b47672b0251e87ea45f0fd3601cf93f9efa6cbd9ad537f54d57f1e187f821faac24096ecec19d137c9f4cf145c278af4cd8de01c7758784fda06f1cc62d92ae1977786f3d0645714ab4ab6f48c8794b12f73":"f4c9f4476561c9ebdac71b282ae6e2f9f03547da98e66d4d857720db2fcc9ed1f363858db34c9dcaca0109d7c81db24150493115f2bb6985efa8686e3d2ab719d33b230aa4c5c70696bf42f225fb3c6704711c054a882d89b320884a78cb59cd2100496edf4010487597fb9135d8ca79693a43843e9626fd6c64a8722b3a27dc":"7b021de5cda915ba58f90ceef4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cf4d81fc5997c744a572bed71f4ae609":"bc4e20c56931c967ce8e3b8f5f1c392f":"b6b8294abf7da5703f864721f7904d3821f5568bf4b269e44edef4f1c95ddc172d83a06c0ad9f7f1fd2e292c17a876392bc5bb705d370b2f16ff721bef7648f423346fd3a4d762676e6fcf2d690553a47224af29afed0f452d263be90eb8150a13d720f1db6f1abc1c2ec18cfbf93b8ed3c5aa7cfc1dcb514d69f90409687a4d":"f3d65d70326e641fbe7fd945fe9cf66c74f17d0d1020ae8ac488f39b7285c99d8632bc2201960f3d77daccfecc04428abe0853aa8d82b90a93127c72b2d2af53f7f1bd0afb99d50f0b3b24e934ec98eddb278b2c65866442cebf10208c7ce1b7ecf764858480b2a269b106fa6d2428d5ad17612e53e62ccc7ad1184663aeb9a7":"0a86142a0af81c8df64ba689f4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d88ad40b42ead744f1b7a36685658be1":"52c3158f5bd65a0a7ce1c5b57b9b295e":"dde2663335c40e5550ae192b843fa9fb4ef357b5c09d9f39dafda3296a4d14031817ee4dc1a201d677597d81e37050cd3dc86c25adbd551e947a080b6c47ec7be8a927ef7920bd1bb81f2c59801a2b9d745d33344cbe4838bcf2eb8dce53ab82c75c9bbab8e406597f6908aaa81fbbdef25aa69116c8f7a8cdc9958435aa32ac":"e99d2566fe6bcb2a04d167605db7c0f1e5567ff2d8d3292c15bbccc5d1e872bcb15a30b3bb8b1eb45e02fba15946e6bca310583a6740845a0f74f4ebfd5c59ced46875823e369e0447cc3e5d03dae530adf3c9846362c94e7f9d17207bf92d4d59981d8fd904eb8b96a0a23eb0f8d7e7a87e8e8892a2451524da6841ce575c27":"7643b3534eb5cb38331ed2e572":"":"6f87f6be2f4e7421aa26fe321045d1e23066a02158634bef35890581c92367d0bc232940de30974c70a66c60137a9f3924d12db1e5bc1b0e7131ea3620a25eb805b7d670263b82c8bbfcd6839305025390fc17d42d82daebe1b24f73ff9aa4617e3866785dded88f8b55ef89b2798ea2641a592a46428d9020f9bf853c194576":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c3ce86a212a30e724b4c624057db4e79":"9e03f0dd4cb2b3d830a6925e4400ed89":"92c48a39d93ea3308f55f6650d33fdf17a902076d582a94a82ac99496de9f62312292b844bbca5a683ef0f0710bbc1c7f89cbcca8f9c0299f154590d32059bd99fca5d78c450ede0d11d55075947caf2151218ce7a06c1e81985a7781a3444054170b457fd7ba816026310112abb47c8eddfd3ab7f679a0f60efc6c6dd3b759e":"3582ef7a9565c9a8e4496750ee5ca3e3a80df6238f7b7608e3394ec56d1360777921da039ede34abcedd01081babd496ba4de74a7de501181d6bb2022a6cc7f79d89a4c6a97676fb0f2b42f70e2d0bc1eaac364c3646df4f611c1d6b09737451b81b5a4da73c05fb58391c74e44498b80b26f1c29562d23c39b5d3f086b280cb":"3230fe94b6ccd63e605f87d0":"":"052347a4273cddba65b2a0b961477f07edee440a9117ab204359d2dd45ad2a6dad3b60ead891e7da6d79f3017ac90f95725a0089f04d25ce537bf53b7ea8e1ea58692d34c221db141e2a9fd7211adcee03ef8b5bf3c5d36311d20bb3d81f70f7e7272d0e2b6d12293b1a2c31b70f140a8f08d98c6231a3c429c3d0a10b2e1c1c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a0155360b84420b5bf4fb410ea02f31e":"46f0386be7363887e7e357376305eab5":"611bc290f91798ad84f0a5ecb5a7cb8fa35e9ab6a5a51c9869a68a076e96f92c9c117595f92cbac5d33343fa2accd2541473907cbc54792c5e215ae857424c921b04ca4b81376bbedbfcc0e565c118f2aced08f247698eed5e2d202c48245161cabeac9fa195219f9799fa253e339561e13012167f1d02b4012b7791b7c863ba":"ecdb51522fc440f7471ea6a31f7c1ef1ec2153e5bcf6303297dbf8ddb3830b45ed9866157375ce4bdeb5e32fcbc6607984fccd7e6552628736608ab13072856d432ceccd3e90d1bb52ca9ada9cee90eb89ac10e887a1978fd0fb3d7bb20caaf35539e150be8044b725b8427c4c4a910f79980865d36344a8784bcc3d58460acb":"ac5addcc10cae6c1345520f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"694f621f594d96b16c32254ff06f3f9c":"542db4e107485a3cd24c7ad337a4f1b5":"27b7bfa5eb34ba376e515e58ab8b6556c396820d0074a1fe3b984945dcf5251ca450456ccb4bb66ec739b03fdc5f72d24553e843255adc012d1f1c95aa3cdac5d12926465354217203052cbd4869a8b5be2e01d0fe66b5a6a8da0a2ce351557e2991ce77baa812b9c67b8e1c5a1fc348710e1a73a0fd49acfd538b7db6bef8b3":"e61476b8b7f101ca6005f25af2b9bee795d62720bbbf59357057ca7cd473e00f0d465255fce8d6164657603323549fb4e3d33fa51054b1a70cc7e492916dea85453e9107fe781bfeb4a622c5b2306a8dddef99386dc50745003aa7220cd7f32fb0a060fa7682576769a48f9169c7d11fe0a8a61b95f5d6dfcf216f7d0c652a84":"0bdef4d771a1740381e7db97":"":"8b27a338fd2153d304f04655e09bd9bdf4468890ecce1e3b51de2c9a25a8d9336a9acd753ce270b1fe8d50196feac68145e0fd59c9cb3aa7c1e8af03494bc4279c6e287c849f3c775ada584ae173100946ae6921ef7c96bbc6f216093548702cf1867bb1bf1f4c9e90a34230a2b2aeb584622dd615023a43a406e64428bd9170":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"78826a5215a1d5e1b39cad5a06861f8f":"feb9d740fd1e221e328b5ef5ed19eff5":"ca9411b368d8295210d7a04da05a351d287f2f67d978ef1bb936de9f8065473f6fa11495da2eab13a1002231c86411d5409bbc718e2042ee99e013b1df1ef786e9fc1f2d43293c854128184efb9317c4ef82a002eac8b28fcd91d8a714a3aa25fc3c0ae4af9f4bcf5ad19a30cd8ec4b1785df70aa92074da419abe433dd4c435":"0fe2c798d7015d3e2f8725648d95729c45d357dc0c89fc63b9df5a68d3e65419540f663e9190793a29c58c495d5c6a731782acf119e2df8a96fb180ad772c301d098dbc5e3560ac45b6631a01cef7eed6db51f223775d601d2e11b9baa55e2f0651344777e5a03f6738a2013626a891b5f134f07b16598b8cbe3aeaefa1c2a26":"a724bbb295a02883":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d450f5253251121606e56687952bf2f1":"fe7ff90b020fc77d7fcd90bc583850ac":"a3bca9ff25a60006eb18f993dcdc99681e414e27605264dfd25652195d7fe1489550afd07fc7346b88d93b59eb6642913646e93bf50ee1db5dd30106cf181124d8ad01c72ed99038c9798620abdf5c78c419b08c97f982b34d9e9105d9aa4538afcd37f62e2412f14f7a248fcd60abaf2b66cd4554767f99030f1a495d56a5ae":"479b4f421bd8ac7f615c4a507da187cb5d4b1f1e2c6113d1f9678c1ba92dc5e17c5b525d7f3208733223eb82af0820b8476e9b08ca714ce044417b24d2238720cb8ffdc69db558cbaff52e3651b400e16c9d5ac8ed8949a19c35516f80394a04bd1cfdced7b204f779d792086e00b2ebca2f55a1140e85f5ee9ac7cfc5a31747":"6446398aff73ed23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"90a59f6b0abf932311f0b65623c17740":"20778bea82a6717038e7064f48a31981":"4022d04f1454a72d2efe57533bd32757595220b20f3a37d166cec0412fb1eb2588f939ecd906c805f4827338669888e9f730905001eb1b136b95e306edf70d9ba1e5cd0aa13a25a1f28ab55cff36f9cd7036c735e3b285d26002ad2ed1074b566e252ea3ec8a9ce10882375dc3f1d9676e301dcb179eaae991120b796cc35648":"be5a948a771a8df12adaf74d702f064a75f6483c03203365fbde7d184844fe6dee0b84cf344be05b1d163817ba1516fcb87b9167ed81f884ada73b0058e2b38cba515bbbe462f4c21f8de1d41bca2cf4340aa659f9f07886c2bb620d9c3295318c07fa3c17fe8242409359c08bcb337e5cf268880839b6a20f4ee4b3f04e7024":"dc77c1d7e0902d48":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6be4ef629f0b38194c74f7b66418922d":"fb77a4b9b246271abfc656433f87628c":"e5d5227725a19a3050fbf2a97a6e854bc1218b94a4a3403b721ace3447daff68fff5553a26edd41219e68fb61fb9e964d0a3c29796251ae4eb942187cdc55d13a09dfb487e93d9e2072d7271456a77c6ccb81154443eea176314d6e3a08619b52cd880f1c28ae5214ac0090a3855dbd74f87389fe8afebd464330fb683dff81a":"b67ea20a320f4ec0e4185c62a4ad79a3c97a8189a5e4d1deff9d3edff0f9a9323532853c1a2a2c1e62e4d1afebfcdf1d8461921ea601750380e63b912d8b7389198f976851d88a19f1aa32c97143668ad00838d98da1c4f2be0e6e2dc964d170d7f7ad2e2997982e5ca110e744b6e10c24ca18eadff6b129b1f290c8a7e0a593":"3d8fc6fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c50e37244931e8debc12b3d561c83ba2":"6c0b1fd7ab424a6883c36457d1b5521f":"516dc25f6452ae169ce293c5cee440de47353ca5ba770dca0f04175950e87a2d4c3f84fbc6eeacaac436853492929680066f959e74de4b736ab924d8367b90aaa6e9492561ad4b5aa78b6737d562e960edc3b983e2e01a186e9f22896f48d8dfcfb6a42cfe2c6006c687a27772820a1e8875bdf09e8104248ce4db883376bc04":"b9abf0796f2d2f774735546cf809030f65ed0c7f6bd469ef2fe0ef32aa0225b57fbce07c36017bbc1806a81ff1a429278160a07643f864485b4e0e35d57553dc1a131e32aa10f1f91d663b10f0a418f472ed7b4bca54fd7ffdbb22c4d7764d94a7ffd04730614459431eb64335b9b65363de292c04275d40a7b968c0f5c486e9":"7d4393f0":"":"962509e494f10269b70ebad02b0cd799d1d41191a734863ef502aff3d3ba48dc2acf9da9a3fc3f40be4d210dc5e128bc00499aec57aa0a4669863165428687b88d46fad41e36af8ea6605586eaa5c0736d0d53b9d523e0cb5a0b285048e060a73cbf4b587d2cd787debdb2b4c8cda731a61a15b19fe8b561fbdd3a7373853ae1":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"8531ddb03977383405baf2ee9ca7d64b":"baf623867d6a25fd85d1f08e599c0566":"18f92cdd37dcd7f99b06838f3f68748aba367baabaebd0da9ee787d70e752fa07dea553a43b643b8d8f460175c0746675205e20a7a98acfcac864d7c4cf5ab4c41c031738c76882acda003c5af47b1c4df8894a827a317935d970d4afaee17715c9cfd1883e8c345f19d1f89e229b8edba6b4f53b86d8da1c0f159afb83b6b33":"d90c9e26509bdba9b1dea8d2b94f2b1881d22c2bd756ad23cd61944710a1c1f2807170ed47a6870ae654e44757fcb3822ef28b37946cafc07284f8a0c22ae3552954f0d87b8d8c825bd546935b494cacb4262d9e2a88f254f200ad31367d8b3715afbabea5f34214ffedb14d7c84806022aba2dc8f88a314ffbb24017d1a9b9f":"2fc9de46":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"862dd5b362cfa556ca37e73cff7f4a0e":"81530a243655a60d22d9ab40d2520447":"":"":"3b9b2af54e610ed0b3dda96961dd8783":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3452b7bc100c334292e08343f139b9d0":"8f92739a30fe4ba24079f5d42753d6ac":"":"":"0eeca69f8b95e1a902cc3ab1aaa8e2af":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"31a0cbaf21b943f8badc939e94eac7eb":"d5bb2c4eaec47088230972ae34fcda9c":"":"":"580e728512c8e44fbb3fe2c498e05323":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9e8fca537746e7cbff97f1dcd40a3392":"43e9f2bf186b2af8cc022e7c7412d641":"":"":"4465a3f9d9751789bcef5c7c58cbc5":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"35b5854ca83792ad691dbda1a66790fb":"cff61cf9b32ea30cf7e3692aa6e74bed":"":"":"726793199df533dd9055b0ac7c939d":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"07259267c1c6a015437a5d8cfa92f9e6":"18b9cf2ad7ace6ec1c8366b72878cf20":"":"":"4340f6263f0ba2d82c2eb79cb0cc7e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fa1df8955aa3ef191900b06e7c1b7d46":"6928c138c98a4350c318fbdccd3f44ba":"":"":"7c89d9e77515d271b6ed54c9c4e3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c04200ce41ce77d772babb206315ec7d":"a885d58f0f38f9ff26d906fa1bfb12f4":"":"":"9ee0d025421f2bf18caf563953fb":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"650df049461be341c3099bd1613dcead":"8a4ff6327b49d297248ce2d5bd38afa8":"":"":"13f067ef0d7b448d56e70d282fed":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ee61b5bf5060fcc637dc833926898508":"b2dcf21f9ffa4a883044d29f087f9b85":"":"":"9ab1d66666d4dea3cbb5982238":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"01cc56ca7e64db7fbef66236a5c49493":"8ea5b63004189792cc040ef18b37e550":"":"":"d685aeb54aa129a21bed17766e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"134dd72ac8e28ab46720c2f42284a303":"c6368e4c0ba0ec90fa7488af9997a4c7":"":"":"4ad9cdf19ff7d7fd7e273efced":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"180c04b2bde6901edcda66085f73ecd9":"9193b206beade4cb036f01a9db187cb8":"":"":"530f5e9ed0879ccef3a7b360":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"aaac85742a55ffa07e98106d6d6b1004":"630cd8ab849253c4da95ac80324ecc28":"":"":"37911820c810e3700c3a9321":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"ab663c4f8f2fdc7d5eabf6ef26169b4e":"86e6100669929e329a1d258cd3552dc9":"":"":"958d6141f7fb2b2dc7d851a6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0dd756d49fd25380c4026ea03cafc2da":"6a6f7e39b0d730ea1670e13d16c12c28":"":"":"872ef05a28da5ea1":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"bd8a834b288bdc7578b6c6ab36f5d068":"aa77de0af5fa4dd1ed2ada5cb94813a0":"":"":"c5c094e83755f2b6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"020d280dbd06939bbb5e6edc6f6d39c6":"09aea6f0e57598452719d6f63b6fe5a0":"":"":"05d6c56ba601e85b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e47f41a27a2722df293c1431badc0f90":"227c036fca03171a890806b9fa0c250d":"":"":"86c22189":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9d3e112114b94e26e93d3855d4be26bd":"99b98525160c4bb2029da5553ff82b59":"":"":"33bee715":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5b4b7688588125349fbb66004a30d5d4":"b4ae363edb529d8b927c051cf21a2d9d":"":"":"6a920617":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c4b6c5b8e21c32f36b0ae4ef3b75d5cd":"3d1036bf0000e6f1b77a799f2ef32dec":"1cf2b6cbe86a87b4b5bb3cc50024aeb27c48143658d47b41f2f20b87ed67bd6fc3b85a3a803f66d3576608f5d6ce6cad11e02fe12de5390722dccb8242e1dd140051bef51aa9716c860d45d45bca6effbb1a4797e6e7406a04db5d823766c0f011ebc28e9a8cd4446ec8a75ea8bdc1b2fdbb5cc364fa9877886e30404593df34":"":"a49725014c214ef7cc2d28b9b2b53da7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"63c3f81500746eaf383fe3975d84f849":"0799d4152fd73c1604b4610cf7171fe1":"cb8248e5f904cc9ccccf6f273fe621eee1b4d7ed98480f9e806a48b84e2d6a733772ecf8fb7fe91805715cddab2b462b89f6e6c7cf873f65031f13c357d5f57b00b7c391c39e78ad1ed94be236ca0ae316bce11bc33c5d701fdfc58abbe918b9c42f7b3d6e89d46f9784b388a6e6daf47730b9fa665d755a17e89932fa669c44":"":"c53d01e53ee4a6ea106ea4a66538265e":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b0c88b191ce6e8e4a3941f7960b7eae5":"e2a899961c332c815685c553351fa519":"308bf10570af48d632911f3641dea60d78046211c01a63bb8e4e5cbddfff8841d2f2b11e18ccb2170805ef4cacf7804d64e0feef40731a1704907f33b77788c18ccf35b224ec3046a67664ac9a3481d2385b6ddeec6da4f32423f94ea9663a5c51cc388cef33744a8159b4fb654dfdb5092718bf926c824be31197f07f276b5f":"":"92604d37407aff33f8b677326cbb94fc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c818dfa0885a09f65ef78712f5ce6609":"ca279284723530fdd68ae880e0ce775c":"2a562abdbb483ca5f355f9cc1c5e607bdd624a078a76b717ce0f8f35d0d4c54b629f372f15d20c848d01420c6af5a7040d42063704a17b46259dcc53723caf2d4bf556143ff9117c752fa4f22c9c155c99b7bf5949d089cdafd562165b9cbf53ff51cec21f49128c8a599718bbcdb4a5d705d20509c44c8945e2a133164b9942":"":"20e9a3a98d71d460743e1efaab13c6":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"2354c6b6afaa883e7ce91faca4981f8b":"604f2730c756c8c39a0527093bc2feb5":"959b4b0b9ce2e9120b327d2d090117553999ee10bdd384a546fc6de0957ef4b447daf07b3d07ef7dbc811f36b0fc09a175d26e4d1263cb5e21eda5ecab85d763807bb20b3cb6ac3f31d548dff00aae058d434ebcf6f7e3a37f11324134f453dd0ea7f51094863486426ff1706129a5a93c53d8c5ccb56cafa5881981fe233cb0":"":"3588c9aa769897dfa328549fbbd10a":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"b0af48e6aebbb6ff5b7c92bd140b085f":"d210d6502a5221ac1274a9c7f5a81725":"d725311ca10eb4b4aa24e6dd19c5e72dc34fc1ff53feb25d924a9b7d8d72205790ca4b1275bd93ad60c27a5587a45659bca07c111e9748fb683a03465153ffd735b7d134b479674ab8596f0596496fe2090f623fd1e4dd730c5283d8b172db8a25df42d9b34f388ed32676a56b8ba03347e47379702654508ccd0a21ff03516e":"":"e6222f068a1e18f09ba6c771eabd86":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"a05fe482fe164b2eca7f6c3e377b39d8":"145327bcc10335fccb93afbf4b17e6e7":"ea6f2e93b5e1bf127d40440b8d6397405246b1b48eebe16964f18928f6b4b8ee2c36322d7126905c1a5b816996e340404b586edc2d77afac11a6c1266511f9eff1a320b035442d4078f8e42ca63cf26d12a971a7adf4645d1bd9a8e4d0a20722f7c2d529beaecc4033f7738075e1cdc6d8a929da5582540678935b82e7b7ba68":"":"3900bde9fa9ae2cbeee54d04f224":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dacbadf819eb16a63f6f091d13ed04d4":"b9ebce724b0dcb0989ac2d8e7ff8aaec":"7dc6e2189d8a96f3507e352e05e8fd1b4bab988c2f1c706115887119f63b78084f015d85f6b460901a02880103e4d36e8f6527dfd74e4a3acd3f578c0cc726b528875f701ff8b66e5c11b4689c346a098e123bebfa253362cb86829be73c2b85a6881fa976aa730fabb76775027feec7fd920a6c8965a4a509ea812d7c413a95":"":"8988fca83c8cfb1f8feefac46f04":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"969244c7444f3f3bf193b28f8e8e96dc":"49b2845a1a1c87fa66eb8f78c05ac029":"1414a07e86d8b61d1eff43e1ff4ab42c1c95e159058b74c731e3007d21a5eb78bc17b7e920363a3974aeb8608813dc9a4655199b6703ed337450702d8ab16a89776831b2c7c811fec3acc23598a0aa01680a7bf42a4e258145beb08c9f0eacf2bb5f56d26bea3ad11e1a956a630b80f3d22bf35592b4704f7c464b08b06dd7f8":"":"a291c7527385f037f62e60fd8a96":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"525abe490c8434802b69439c590a5290":"141f79f0501316e66451c41c7af0f0cd":"be440db66d3f81be467605a7b2805ec1df5e71e1b1b04bd7a4d05e912f5aa1912ba08de72df18613b32b7edf78963c48c80c25178b3b19262b85bb829f5377e0b368b500d6d3b442f54172d4ca4500eb5b4d478b602e5dc11d090539455087ce1e5b9ea74355fc06e9b60cbf25a9804d3f8c623fff130abc48bc2d8d116b8366":"":"038c7e95f790e6ca5ce73f9551":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"51644e025659de983f5c8156516b812e":"614837c743d0974e9cca497f13038c02":"60c5d062ade2c5c2dec68b734dd3e58ec474a586d1c4797fdfa2337800510134cb27a10d501927632af3c1febc275010c0d2e5abee630cd2bc792963fa82a42286ab047b934a261927311b40f5f953bfd661427921147cac7613d95ee86e16326ef67c1ed097e8fb87a78753d785de34e03a182232786079cb6be00182e41c9e":"":"77e3deba2c7f9386f85bc4a801":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"08566ca7310302dfb84d76ea0525ba20":"5f20ec9c35c08aa7f1c0e8a20fdbd2b3":"5d84e32768b8d1e7e3c426b3118d48e35491bf1bb454b359c8429220216efd8826be94fe1919409a128ccd8125a594f1691c9421fc3dbbb3f757bf2355bb0d074ceec165eb70e26eb53fa2cb5d84dfae06babb557805ef7b8c61c1bc76137571bcc5e84bf5987dc49013831d78bd497ccc49cde7dca2cb75e7ab967da8c6ce81":"":"873f037fc05252a44dc76f8155":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dfb54db96383fa911bf5b4fa1218ef9a":"7e849e24983f63f1194b396bbd2d55e0":"d3fb689c5818810dd104693f3306a10b27178444af26798a194f7c2ab31ff3a172904b951942b1a26c8ae5b5b1ee2d86dc78bb72a335fde350766d7d9aef6f549871dd46b04b2cc319fcdd47be437d431ad18cab82d51ca9fa57f4108a8de622a92f87d28c0349fab27757fd773413f559a8c00d30e258c1f6cd96f9759bd957":"":"dada7fc7fed58db462854ef6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"389cf888474e9403e5f4d0e22ffec439":"ef57794cf6fac9f9cea3e8499b53b1d6":"7ea7f7f4763ad208eb6199285b6b2819756c4e3caf2d0ac6f5076ae6785fecdcc4b138a51860ff8b87aaac3a18c2df778a4818308d458dba28f5017513e1454f60be20dae68736ea6d48b1f9deadb517df63140acbd329fbfbc9b82f3ca1862c9e998f0faff1d3ae60b005bf66829f5cf0c5fa03efbdd92d39351e3954be0257":"":"92726d90ad26130e65f2beb4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e55abb2ca36c822bf2a030ac703cb8b4":"d86f7177e8ec90f9e9edf10175d5012d":"777a9d93091de56324c10712243f5541722e0b27e1f303fef6faa387a8666161ab354dbea6c43c82a24e8623bfec39aab13164add6be0dfd55d23204c0975b4ba6fbda51363befde482a9ccc1eb9f151e6ad59c77a1e24dd268389e4686f198a936dd603044a3fb653d63cff80597f5a2913c8a2ec1b7d9dce5728dd56c78c2c":"":"65025250343ed8c09b3fceed":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"586114f3b1dc087e1b2739b28c592dfe":"ae5a38ddd455505284434a4bcfe81ef2":"531ff8c285e532d961f49bd210a5523cd9b19a697a3a3fb26db940a496f253862405b1e825daeda7eb0445c98022b8342c8f8ea20301618483f8ab04b6ebccd7e7fc57878fb544a5bf78fa896f50ac30126ff8afca8a86388666b64c643d16812729bfd7e5c03ba52f7e6ea4c6a685404f7bcbd956964417fa0ea9a6d7290c41":"":"467a815610faeb82":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cbfe806bddb7f06b3826b097550c68f5":"04c1b6c9fd2ab76fc2adfe15d3421bbb":"cfa86d02599652cb4ffff027b9c6ef2336dc9fe946f64fa5ce83f624e144563d4738381bc5371c3cb55cf41ceda07e62cb635ff37246bfa428785229c6e869d5df69d7949a8577889a29e3d05b788ddd43608d9c14e3f1b51ce2085b9a976fe843e3396a74922babe6797d5f01c37ead623b5b582505bcd29edf8a6ea36b0fc7":"":"0697ac372a9acafd":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"96ce3a095a91effdd91d616f1f02ddcd":"579d6633ec6687afa24ef874899b58e0":"3ff3c0038148ed391b6a10aad623a82fe9209c5ba74482f11506d597b5fc7af977235d8ee9e28cf2160346ddd0e33a5bd1fb67b87dad7167fdd4b2b4000d8460ef7b3e1b59b9d61d06cfbe7945379ed6b650de86f396a38cc70d47b8a349f067d00144c903c276b323be6a929a7d7dd8ae7d254d640cdc1176f98e01a1d8c82f":"":"55a0f61032e048f3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"24ece168c2971cf2b404ea206dc9e29d":"e9db62a42491664a6c46cbb0b2bafc92":"3579f6c0cb3d2a5d0c4548855c7c052d36b6a8dfc60f4ca1b4bbe28ed87306119e71982dd84c4205ceba918d675472753df1b5192d3693dbf6a061c6056e312135ffc5ff426895a7e30f7f675d2cb21de06eea5e3761b94deef7537b985d324864c9ff6ab6e230a1006720f98c958912b604a6d03e3979887c07be3ceaafc78f":"":"d2b15a23":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d3c3cf993f6740a019e61ce13c29955c":"af900ac348082ff32d2e0ab886079516":"2ddd0e8c99661f0757f04aa79a1ffa24ad48fbe5da68b9e71f7a0cf1b4f2ca9b757695900b7549d48847ae49950dc9b270b1569d29dcbef412216737bd83509c17ae41c34ccda318939cb37a0a380762993a7568c0b07794e78746173dd5c0d921cd50de4b548c1589e142c3dadbad42161aaeda2310f3c6d5c722d9ac69e96d":"":"f2d3a6ff":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"5f1e5bd45ee8bb207ebbd730510ff218":"8846424a194f5de858556e6be5b65d7f":"e968947fc0e49136e730b97f6b16e393d5e4fdf3e4803a23af79211ef59f29167c60ead72fd489da32d2ffa43b2bca2074f9d1b4f5396ca65004b0806cb7c6dfa751fb6afbee3e443f3c9b0e3df6722e0d1320441400c5ca508afb657c2b7f1669b0de21761dccab9a40fc513768bd1f552692626ce35078a2e0e12f5d930647":"":"0d6c15da":"":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3997050377cfbb802cc438d973661688":"c95c84c263bdfd5f1de66e7e616cf3fb":"":"b02f0dd373e42c65e8e1db2dd76a432e0b2bf6e630c8aaf0d48af51b3709b175de9a19b3245ae75818274c771c06fae225c4f8b002236712336e805ab006449eb29cc5e29abd82b06c32d4c36ee99acb9a6d7d9eae6ec6ec263c002a22c4a898c74f6abd6d92112367ca7ffe82787c5b39e7012ba22825d3612af3d41e8008a8":"b35b3cf6ed59ccb69dbc9b47a3f284ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c58583f6479d9bc9f1bffddefee66e59":"cee448b48d3506ff3ecc227a87987846":"":"564a9f700cbc1f895e4f4fa6426f73b4956896a15e6127e7560d74e3fd0b980d2ee45b7a6a3884fa613d91d13921e3f90967d7132bdafcd146dd8ff7147ed1964c2bdb3e12f4133d3dbbc3bf030ff37b1d2147c493ce885068d9ba5bebae24903aaac004aa0ab73fe789e4150e75ddc2bde2700db02e6398d53e88ac652964ac":"361fc2896d7ee986ecef7cbe665bc60c":"":"9cce7db3fc087d8cb384f6b1a81f03b3fafa2e3281e9f0fcf08a8283929f32439bb0d302516f0ab65b79181fc223a42345bad6e46ff8bcb55add90207f74481227f71a6230a3e13739ef2d015f5003638234b01e58537b7cfab5a8edac19721f41d46948987d1bb1b1d9485a672647bb3b5cb246a1d753a0d107bff036ac7d95":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0bc2bde877e881aea512068105694968":"05f0c34ab2e8e8026b0a23719344b71f":"":"1a6369a45e8ef2846c42d54f92d0d140a94f9633432782dcbf094f1444a1d006acd07ef6076cd0faee226f9ff14adc1fb23e3c63ed818c9a743efbe16624981663e5a64f03f411dcd326e0c259bcadca3b3dd7660ed985c1b77f13a3b232a5934f8b54e46f8368c6e6eb75f933196fa973e7413e4b1442b9dee5e265b44255ed":"46bab9fc2dbe87b8f6ca0ed4d73e5368":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e14f45ba5d1eb52e0412240da5d7b5f9":"d7f8ef12f66f8b7c60aea02ef6ff688f":"":"9a85fda19ce923f093a0c25b0c52f5d9534828af7c7687d22307004ae2d10c4592242c0f2704070307ab55b137780d1e2013a19396ab43ff6a295b63fdcf323456d149758f9a2bb37f1418d62ea6368b24d5067b9c63d2968e06d6586c7e3275faffa005f7c7bfef51303e4c2b2ed4564acd17d50efac9f5e3e7f16ce589c39b":"beede05e4928c808bc660f3de95634":"":"4ad5b9ace0c0c7c07df2900faf37a902899471e7aa4a0a1ad5387f8f56d73f78f619be79a4e253f95b15d52895a05bae9ecffa916d35efacd8baf1c704d2aa4a38c234efc4dcfb191ec0fa0b522328fa5b5dff55e8c443fee660ebe3d8ad85de157a889aefc823720030a4cd6ba94a6309dd61806f0abb27772432018bc61701":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"9a64579f3601b0022d357b601cd876ab":"515efc6d036f95db7df56b1bbec0aff2":"":"88be1f4bc8c81b8a9d7abc073cb2751e209ab6b912c15dc094002f95a57a660b9f08b1b34f5947223205b579e704d70a9ecb54520ce3491e52965be643f729516f5cb018beeedc68a7d66c0d40a3f392ec7729c566ce1e9f964c4c0bd61b291ccb96e3d1fac18a401a302f3775697c71edb8ff5a8275a815eba9dd3b912e3759":"13ea92ba35fced366d1e47c97ca5c9":"":"7fc8565760c168d640f24896c69758355b17310dbc359f38b73fc7b57fe3f4b6ecad3f298be931c96a639df3c5744f7e932b32d222f5534efb8eb5d5b98d218dce3efef5c8c7ce65738bf63412d0a8ed209071218a6fa2f7be79b38d0b2f5b571ec73f1a91721bd409b1722b313683e97d53df19ded95fd471124fa5f294a4bb":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1bda4acfd10ab635f357935bb0ab7020":"48b77c587616ffaa449533a91230b449":"":"c9ac8d4ef7d83848fdc03664957c28b9b76710797d5db1c21e713e85eb0898892223e52be1644fc7362c95026ebb9c9ca74d7d3739eff10cab1eda00c36628dae0b98d119a14635800e37cd340faa6fbba9c3d41d52722cc3969612b1a8c5ca9a68773f5ee654506cb88ea65fb1eddf5ab6312d0170dc03324e483342448b854":"8325e4394c91719691145e68e56439":"":"1287ad3719508a9be70c19e3b134a2eaa4415d736c55922e9abcfd7f621ea07ffb9b78d8a9668c74bbd548b5e6519ea12609d2d6197c8bd3da9c13c46628f218e7ff81884ff7eb34664ab00f86e09cd623bec248d8898ef054fce8f718a0e0978e8b5d037709c524114ec37809ac3fd1604e223e08f594e7aa12097f7dc1850b":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d21cf24bc5bd176b4b0fd4c8477bb70d":"208cb9dced20b18edddb91596e902124":"":"2e7108fd25c88b799263791940594ec80b26ccd53455c837b2e6cf4e27fcf9707af3f0fe311355e1b03ac3b5ee0af09fb6fb9f0311f8545d40a658119e6a87ba8ba72cc5fdb1386bc455c8fec51a7c0fec957bed4d6441180741197962d51b17c393b57553e53602f2a343a0871ea2dc4b1506663b2768ce271b89c4ed99eec6":"7edfb9daf8ca2babcc02537463e9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d02e2b02170986944487cba8448f998":"6336077bb83eff1c9ea715de99b372cd":"":"bc1d7553f4a28754cf59ed6f7a901901f04ce62a449db2b45ad60329d0341bb9ba421c783c28a9200b41da8ab6328d826293134a7d0c9a5775dd2735e7767efda4ad183566e0847d6d978abd1a8ab13b16b8323acef05ced3b571631e1e24ad44d65e6ffa64e03c9970e94bacb9f721aba06cda6a08806a3be63dddd8029301d":"0466bb2957281f64b59eafed3509":"":"5f395958f2f7acafb1bca6d3a6ec48b717f2ceeac1b77e1b0edc09a09e4a299d2ec722cc7daf34c8f4121a93c80b2adb20a2fc95afd09320f91085c93c8b082dd703814c9777501d23bf9b328f07f04652592dc5a3f4321626a695b8db8e65c8617c809eb2978d8c9a882ffa82a4bb707c1a8f9a965bdacce5c041bafc94a1c6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"cd1ad1de0521d41645d13c97a18f4a20":"413873a0b063ad039da5513896233286":"":"588c2617517329f3e1e7ba6206a183dc9232e6a4fa8c8b89532d46235af1e542acaa7eae4d034f139b00449076ba2ef9a692cae422998878dabdac60993dce9880d280bec1419803ba937366e5285c4a7f31a5f232f8d3ef73efe7267b3ef82a02f97d320ebc9db6219fbdf1c7f611e8e5164e9ecf25b32f9c07dfa12aa705af":"d4dbe9cae116553b0cbe1984d176":"":"bd519b7e6921e6026784cd7b836c89bc1fa98e4013b41d2bf091ef0d602e44a70df89816c068d37f0c6377af46c8bfa73ec0d5bc0b61966f23e55a15a83cea49f37cc02213b4996f9353ee2b73a798b626e524b9c15937ecf98a4eded83fb62e6deea1de31e0a7f1d210f6d964bc3e69b269da834720fd33487874489b8932a8":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1cb120e9cd718b5119b4a58af0644eff":"5a7087989bfe2f6eddcb56fde4d72529":"":"4c8e8fb8c87ff6b994ae71bfbf0fa4529f03bad86edf9d27cf899ea93a32972640697e00546136c1dbc7e63662200951b6479c58ae26b1bd8c3b4f507c0d945d615183196868ec4f4865d1d00bb919a00184e9663f6cb9a7a0ddfc73ee2901f7a56ef2074d554f48cef254be558fca35651be405f91c39e0367762b4715d05fa":"95d8bd12af8a5ab677309df0fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"315b206778c28ed0bfdd6e66088a5c39":"7ec6f47ec56dda5b52bbdaa6ad2eb6da":"":"6186f57a85b65f54efbf9974a193012b1396fc0ca887227e1865f1c915ac2af9bbd55969f7de57ce9fb87604cf11c7bc822b542f745be8a101877a810ed72bf4544d0acb91f0f9d3c30b6a18c48b82557433d0db930e03bcecc6fb53530bfd99ee89f9e154aa1a3e2a2c2a7a9e08c9aed1deab7fae8ea5a31158b50bca2f5e79":"930750c53effc7b84aa10b2276":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"e886de1c907c97e7db8ec80a79df90f8":"612cacbf33266353d0a29a24532f3c0c":"":"c64cc9596d7c738746ab800f688eec190a4c802c55b2528931d74d294496892b81f53d3073d48f9bef1d58ce3be26547474cdda2868abeab71aff566fff613b4e5bfed1be1d2fff35d8ffa33302d3da1c82e421aa3a23848f31e26d90c0cb2ac2ae136ada73404ed3e0e1d3e7cb355a11cd2a4f9393b4d5eac988104fe1cf959":"76634e58d8f3a48f15875ac1d6":"":"7001d7395efb432e2804cc65c0ba5d4719ce84177ce46292c4fd62a5596bd2bab1d5c44217ac43235bd94489c43d01618a11f047d2e247062c3b88d6e59adaa1f46514fb33b7843483920bee60a41f3cb312322c305d25251b4704fb66da58637c95a9d539731434f60ef44fe3cd6d37e2c8e7089880a563938dcc98b43f08fd":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3b936e09a6477f3bd52030a29df5001d":"f93105be83fa5e315d73acfdcf578de7":"":"65cf11d1afad19b34f282f98f140315992392f5d4eed4265085b29e1e5553f4783fec681ba2d368486ba6a54c00e71c82c08ca3d097904f021ce4b0acba2d2a7005e28e5f8750ea3d18a4f78363c37583e85104234498942c639a0564b0d80055c21cb7735dd44348298291ab602f345b1d74d624750c0177fbd5cca6f99223b":"91b55bb5e3f3f1abcf335db5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"dc9e2095de7b1b48481b56bf6a3604cd":"9e5268db19a1b51c0496a160ca76f8f7":"":"ed61ff94a3f84c72147faefa615e2df00324fb01790cf9764c72c1b8ba47f17866a1fd64ee5c2f53865d1bc24ec93165a6774466a59603199ee476c1f2da7d932c8943d126aa172d532d8475a484d42bb45fcf92766feafd7f3e2e3d42d22f6f84a90e7e688232f799d80cd2cc152ddd21ecfb137701ecafcb2b65abe2e4e6f4":"0fa9588536fca71bb44260f7":"":"ef562e301fcf923ff1a1acd3aff9b1c963058228655fe8a66cab01396547dbd2aa1f79a22eefc62944b86d1a31ebe2d17130175b8c003d6755b0eb8b79895b0f7f8046c5ae888a067ba17bc8e11a8f6e5023a9cd42f6461966c28e505b371c0f72a2606bff430a58016e99713d25ce11f10391fb4a922e27989422c6a64f9107":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3f93901fd7cc88db3ba76a158d658c7b":"7e98de461e6d96c0ce6c8d8b3854cf49":"":"16402fded879fcbfe9405902aa63ca2a520889e0045f687455469b7bb867829a01208b8dc5dcc852d8ee478993c30e6d9ec6408773b367821310a0ae171d38d71e06981ff6e845acffbc794142b87c748e12484c0636419d79be3d798cde59e9dae0a4a4a4346596427e6b235ad52e6a1b02d6f4df0c7de35fc390cae36aef14":"86c9a70e4bab304ae46e6542":"":"1b4c09569b42c469b3ab6b39312c214502ec09f5fe2fed1d1933d13cdc6a7b77a5d135123fa69d9207d6844b0357b26b7a2f53b33a5cd218dacda87b78b09cf259e48e74076812c432e2d0833fb269721f9347c96e158500f9b2283342a35c8de0a022edce711118d72d8fbaa354bfb0ffee465844ef2d37e24ec2cea8556648":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"42289f3d3cd5838e250ef54b128e60d1":"e557389a216ad724aafdab0180e1892e":"":"3edae1d554b67d2036f5fdbdb2945cc112f100adc1b47009c2e23f6a2eaee78d1f39ce8a98f715853cc29fc793fb6981ec3036834188dea7d668185ccc8642071b15de1332f6a59c8a9b4399733eb4b3d8f224af57ba6b4a8e64494bb6630b9d28e7ec3349064350febcef6a3ad1d6cca1b1da74f3d2921c2b28a2dd399c3416":"6f78bc809f31393e":"":"25c476659cc7b343a69088baf868a811ba37daca85c4093105bf98235a90aeca015ab034da008af0982f9b2e80df804c186a9b2e97f74cffd70ebb7771d874fcaf12f6d01c44a8b0ec2898cf4493cf09a16a88a65cd77909bbf0430c9603869bd5f20d56cb51d8a3f0a032fc30d925c96599d296b1ec41c2912bda426adea4fb":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3d772eabb7f19475665ca2a7e693bcfc":"0747cbb486a013453fde1ca6abb11dbe":"":"e9fc4d86f5b857fa6057b73f967351e06f87288c40a95b9e378c84f1a4c0f4b80ed0a0b44ff90a8973be4199c0c4006fc4f5ea19d5f1fe8b9c8c01f4675ab85afab0592bb3daba36bb4fc7ed9eea867e9d8cc50c19fb62a5a57956e9efacebac5e9f849649d35a329bd68de97bb6e5ff7bef477a86765c2c9ec15e24cbba5c6e":"8e761ffaea68f967":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"fb7fd753ee6eaaf283a42a121dab4e43":"8164929fb54485377ecccc9b9621af5e":"":"fd5cecb2c0287cb8229e97d9cc4b9885f428710528884ce663ed1728cd44cb2df93e56ef17ace0678d1e341366c652f4ba7ee45797d39be4a05c1151e5cde499e13e5d45549b5d95a174d03616d06ef96e9d7b2b6bb0d79a726b253dd64223a5f09611671b234ccf9b383952f8888814b2c167e774cfbf54e9c6b99a753f4fa9":"40a2fa7f4370afb2":"":"6208d068be60f7b04b80fc611062e6caaef9a5cf59f850d174b7446c78c039ea9aefe4885e19c2b33911d32ce1fe3c48ddffa4b03e450fd35da03f40c4e7c5bb3b1c3f3049dbfad3ac81ca1b79cafbaa172f4900e3829d38edea3b64000f93924a801259bc4b2523445c64bc23bfee190b952468507fa4baf6dc2bec66fcf0d8":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"30d757fd73a0fd5fa49159ad0653296d":"b35b8df0aebd0608517f2830e0e70cd0":"":"17d485b258f80d8924e35291118cfdcffd86c47851b65f0b06a7c1f5202de82f3f460fc61b1aa38fdba7c8ded375c92cf005afe63e59d362c0960044af39241b81ca24e85c5faa43903229355b7313fee21b992ef3931d9d2407b32b3cf72dd7acbc7948395eb513cb2fd428b215ba2bd1e29c62f45d0ce231884f62480c6d8f":"954c0e99":"":"022618d2598f79104e918a09c937a82b3db59243b5e13de731fcb912e4366105797ce47f6dce7f08073f2f41e5c15fd6b1ec4b5861469a4880c3b0bd769b78c696ff29c28c9349d5a46a6e5ad9211bd4b708a8c0b6928ebbb0dac1c0a5f5ce6b05de6a50073128566a23f09cc1b826aa5803f9f750aa4debf59f24ae9f98c9b5":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d9d3cfd5900de5d5e2109e7721cfeef6":"b4b9dfb013de6f7c44779e5a9daaf5e5":"":"e4243cc37cc32dfcedf9bb76890e706af6ab1e06b290b8ccfe2a55e5dabe68cb390f7636dc9676b431d4dc8ad3f6d989e510194294ab7ab0556789046743cf374d8b6462f5f95a17f3f44337d6c69ee47b0e1ad7e5ce6f9b224c54099a104e70d2d06af869b921ea47febe08f90c591ed49c1f12003afceabd2c7bba458a0111":"2b81e8ce":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"68dc138f19354d73eaa1cf0e79231d74":"e7147749560f491420a2d893c075bb76":"":"ce345567a76bc30d8b4fd2239788221cfa75e1a310aeeeb8c355f8eea57d80967f3047fbd4e6173fac5caeb22151fa607065953c4c35e0537b9e3788cc80de9eedf2a340698bde99a6a1bdc81265319da3e52f7a53883b7f21749237fcfd3cd4f149bb2be7a4ddd9ef0544cfe0789040d1dc951b6447304942f03ab0beae8866":"70a83f6f":"":"64b021612c78b3e192e8349d48b77d02927e7fd70c7160d37cb8ef472f6bcd9df9d93431627c1c80875e208724ae05f94fdd2e005e9707b78a1bf3bbca7beec4b03ddd4d9de6235ffd6d84a8b9a1842e104c1e22df4566f6c4d3d4e3d96a56b9b8a5cdce9da70aa236109b289266036f285564060b204dfd7ac915eea0dd0b1e":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"7362c86344e0aefb0cf0d04768f9c05d":"7e8d12c2f0dcf4f792247134234ac94b":"86d2b5debc3b10495da353d6821f6cad380776d805bd8660b08dcdb1acd87026e4f344b547a4db47b5f44cded314bec4ce9a417ce40a2acd5a21460c42dfcd27483abf3f38dd8cc5fa523b6768a26513df5896435baa97781cff1966e2e3d6ec6d0a9cdc013de5a50e4d46831667055bad04f784024a82f9cd087ae4cd37dd64":"8baffc7836004deb87c0111d47c182512bf861874021ddfcd559acf2c4a51cf5bc4bfdee2d039b9c005b6af95a2607643dcf4d9cd9d62412f709334556db22fc91d7b40438505d6806ccb2f2c21ae731bc1f1c825d28a71ab27095a39985e96ccd07cfb2e75243ccafd474494a2338c324ef533ca5f17d2ac1b1883140342ced":"9594da428fd8c1b13ecb23afa2c1af2e":"":"e2c424f42aedd56f0e17a39d43ad19c8e2731efc7a25f077aef51d55280b10e667e338bd981b82a975ef62bf53bc52496b6995d33c90c7ae14767c126826e3f32bd23f444ddcfd7a0dd323b0ae2c22defad04ce63892b45c176bd0b86f5fa057a3dc371359744cb80bbfb4a195755136a0ea90b4044a45bc1b069f3cb3695c04":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"58748bb204ccb7bdafdbf739b6c19a3e":"93ac298c73c88e127a4d9dd81bf24e3d":"8f168fc4d1da13bdbefae3f9d6ac1d8cb19fcec1f43f727951af0a466d8826649a46c3cb50c045ea83849fce0eedbc042a1a435e6d9d59017997a2d5459b940078b8a7f3b6b0ff279ff8c560248296a17240ff1b0643d1f436b6e3f2079363fc49fb45f410debbdde083b92057916368cb807d603cb82e2c0dc01658bff7f1ab":"b72902c9ebb72a86be539b19a52fd9af00aa4de081d90c0d8ad580ebb5900177a036f40a1e9b43e3a07d715466526d6d7544e5a5551805b62463f956cd519fc99182c2d54bd62fc7ffc6e5ebf1503859b706da11a1b6c707a67a70789dbfc10ef726bd360f9f2347326e068e757c8443ddc9308a171e682359ae1bfe87194ab5":"efba4589d4a03555766bbc3b421dd60f":"":"d5c97a659f016904ff76286f810e8e92da6f8db2c63d8a42e617760780637e32105503440cdf04d1fe67813312f1479fda8d746c8b0b080591eba83850382f600e9d8680516c6579669f0b3d0a30323510f9de1c92512790b8347751994d022156cae64da0808a649d163a0e99e869fdf224b7c1a6a8fbc613d5917eca8ee08c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6cc13cbd62428bb8658dd3954fe9181f":"86740da7ce4efbed70af55e1d6c10fdf":"be561ac15e3cfda624b422af97c26719c140bb50e4a993d636efe9c7f1963fb9047a0762169b571a698ff310bc417e34d4039b7562a95af710ccc1b197964a376c986fd2ed8ac4b0c7b4e843c37a41366f2f483c821a1823f317416c7e4f32eed9b9dc2ae1a2f3ed32c4b3187358a2329aa42191b7c2fe87b6e27ff20303cb29":"2c9ec982d1cfb644ddbc53c0759b10493206d5186affc6882fbb2ba3aa430f9bae1209db2d78dcc125f3c909a54dd84fdff96c71e678216a58390ef4308bdd90f94f7109c4edefa76a74fda64b201b7a435bbabc27298f3eaa4c2d1393bd584f811fff52638f6ad2f6d86a8c3c9c030d9d4264c8c079592a36178d25991cff09":"76b990a1e010e5f088f6ae90bec40b32":"":"0b9a5f5d2e6852b75b9cf26c1b310b2200e56dafcf3c941478862cdf9737ac8e2cb9b38d41bd4a1872ea1b4cfd51a1a0b9b743aca439eefa10de8459a0a7a221c5429b3dee393f17031ca6c399df8e05657c3db55be9c9dd29e690042a4ed8db732efce7c58d6b20a2a0f7c79e42e5ada43b87ab00f481c20cac1b35514dcdc9":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"286d3f5080cfe88538571188fbeb2dd5":"da6140bd4dc6456ddab19069e86efb35":"5d350a04562a605e9082ebd8faec6c27e561425849e7f0f05f5049859c2c1bd2c4682ebf9773fab6177d2601fd5a086cefc3adef5a2f8f6b5dc9e649e98dd0a3d1a2524419f01305bd0fcfff52d84a20d1b14dea2138dcc54eea2bf263c6fe27c3e7255f1f359d0d00fb1b350d7a04965af30027632520197e85eb41de6bb286":"55135928997711360622eda1820c815aa22115204b1e9bb567e231ac6ea2594b4d652627b6816bdc6c40a4411fd6b12fab9a1f169d81c476dbf77151bff13f98ca0d1dc0a68ea681652be089fadbc66c604284eebfc8ce4cf10f4ca6bda0e0f6634023db6e3f0f1de626c3249a28a642ecc9ec5ff401e941fa8a3c691566c0ae":"d90d34094d740214dd3de685010ce3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"726ae113a096769b657f973ea6d2d5dd":"2f9900226c97585d200dd20a279c154a":"761663c3fcbf1db12bc25546b2425b8229b3153e75f79fa63958819caee3febff74603d99264b5a82ef5980439bef89301ae3206a1d01a3bbd7a6c99d27d1e934cc725daeb483f826c2c9d788fd1f67a627864cf8b5f94df777bb59ef90cb6781a2000e6f0baa4f1ea4754b47bb7cbd2699f83634e4d8ab16b325b2c49f13499":"90636012ba8c51d16f8f6df3d3bcabc3f09aeffbe2a762f62e677913188045b861b2e7d9a7bd93dcee46e9e4832e497a6f79db52b4e45c8dab20fa568ff9c4ace55be3216f514a3284768a25d86b1c7da5377622f3e90ed4c7bd4571715af4d0a2ab5181d0475f699202e4406bb9cfdbd4fa7f22d0dd744d36b3223134658496":"d095bfb8990d4fd64752ee24f3de1e":"":"9f7759c6d24fd9aa0df02a7c0cc5f17e61622c63195f85dfafa5d820d3ad218c7288ec017821100f1fade10f9bb447a4a01e3698b045548c7619a08f2304e2818a9bf55e70b40f8b994b7dcf0cb243848cf3f6fdfec3ebbb147d01df84a3ec62cd8fa5d78ad9f2f28cd288a35eb49a5172339e9872e8e7e3350b0d69f59acd07":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"73a9eeda721c6f292e6b399e2647f8a6":"c1e80eb723960049cc4448b66433f1cf":"fb2a0b1f817404e74aee0a6ec8f2cd86f0c9114ed367b2690c44ad80f9d3377d7fd5066beaf1daa739d27ed3fba98379188016b1fe901204a174f9ffca370c181aece5e5d40939a0d460913b40b895e78a3b80ddf3d613c05e4e27bfd161ea2ef42271a2679f2cdca5b728ffb2319781c946a4f3ecacf486b754b30bb04ea60b":"215fc7e52abe4c751ca2f7f9a5cbde9ab8b44b8d4054bb62dcea6df5b936145ca6ec83a2b78b070638fd6e5ea3bad5d0caf1b8f755f391c3e0962a92337e3eba575585eb83680075fc818860388c587746af78d5fc75ccd0a63f1612abb1ba0f04a2228ca27fbddba4878f9b2683683f516b6d6fe4f6622e603bd3c5ad45e332":"e08161262234d0d5be22f09e5646bf":"":"b5e286183f16dd9403bec6786bd4836cc6add47947ef111fb1d5503c18c333c8fe60959502f58390d0e0f69fbe5fee13c72aed65fe6e32f6ea45877fe44f8a556aa5157b112e572197c1c350b7943c6cf2e9146018599524d27599f09c86027f2c5927e4a20c63833870e8369baa36ecc07cdb3ced520b5ae46869ff357ca089":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"90dbda7397d8fc46215a1218a6ffd0d8":"7be477d14df5dc15877ae537b62e1a56":"7358ddf1310a58871a2f76705f1cf64223c015c4d1574104d2e38783bb866205042f05c86e76c47a2516ce284911f1d2cbee079982dd77167e328b8324eec47c9244cc5668cf908c679bb586d4dd32c6c99ed99a6b571cf18b00689463e7a88cea6ea32d288301a10a9139ed6092ffe298e25b8cfb6b4be8217f16076dcd0a90":"4f82a1eca6c9184240f50f7e0cfec07ec772cad5276d93043c462d8364addd9a652eed385ccc6b0faa6ca679ab3a4c3d0be6a759425fd38316ee6a1b1b0c52c1bb3b57a9bd7c8a3be95c82f37800c2e3b42dde031851937398811f8f8dc2a15bfd2d6be99a572d56f536e62bc5b041d3944da666081cd755ec347f464214bf33":"776d871944159c51b2f5ec1980a6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"0c85174d428fc1c7c89ca5d1b8aaba25":"b3c9dfa4c55388a128fbf62aa5927361":"3f552d45b61cf05ae2aa92668e89f3338a15ec7c5b7113b6571cfcd9e4c4a962043ccd9323f828dd645e8a91b007ce2112b7f978ad22ee9821698a4f2559d987ae4421452ad2e8d180953297156426d4540aff2104d8637b56b034a3a1823cf962bffbc465fe6148097975a8821ca7487e6e6c7ff4ee4de899fe67345676bb1c":"3735cbfb8000260021d1938d2a18e7737f378ecddb11a46ce387bf04e20bbfcc902457637fd152ab87017185601f32a7f906057123b6c2da31a1069c93e3cacc59a359aebd3e31b302e1a1f7d5d8f1b2917a8fe79181fa633b925ce03a1198dac48f4c959076b55bc6b3d50188af2c6aa33d83698aa8db22649f39825ba54775":"1e7dec83830183d56f443a16471d":"":"3d98cabca4afb7c1f6b8eeed521f4666ae252ac12d17ebf4a710b9a22d839b69458387ba4bbec2f6400e0cff80fbe4682c24efcd3b8c594d9b515ca7842c9d5988c42b59b6526c29a99256451e2927f5b956ef262f97c733dfa8bff73644473b9a8562bdfca748f4733ddce94a60024dfbfcde62fb3cbd7c3d955012d5338b91":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"d89f06eb07744d43d44734faf9751d07":"185f8d033713ee629e93561cf8d5acb8":"743bcb671d0aa1c547b5448d64d7c6b290777625ba28f25ca0fbf1fc66495a2fde0648a8db51039b0e7340d993aef8afb48269e660cb599837d1e46f72727762d887ee84c073d6136d1b0bc7d4c78f5673a4a6b73375937e8d54a47304845f38ca6b4f51cf14136a0826016535dc5ed003e38c3ac362b9d58ba8b555a05a1412":"36cc3b2f563305208a03378f7dc036119f7de3fee77cefac06515853d36609a622382ed026c59783fbc0d9910767874c516e10c7bf3e3d104f73b3463c8d93a63418c76cb0d05e62e9c8642cb4f32caced2620912cb6c79e5110a27d5fba1ef3b4d0578077858526c5e4254365f2b2ab47a45df4af08980b3b7a9b66dff5b38c":"fcad48076eb03ebe85c6d64f6357":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"6150f14dc53f391e815acfabed9f9e20":"7e92dd558bd2662c3a539dfe21a352cf":"9b4624e9118e6aa5dc65b69856638f77fd3f9f562046f50ba92a64e988258637932af7979f000505b84a71ff5dd7b60bad62586b1a8837a61c15a1a1ba7f06668272c28169915d7f06297b6c2a96c8c44203a422bfd25500c82e11274ffe07706365bfd3da34af4c4dd8ad7b620de7284a5af729bea9c4ed2631bdcba2ebdb7d":"fd8f337017e1b60d6618e6e4ad37c1f230cdeb78891579c2c63d4e6a4f7d2cb7252e99de333c73db45958808c08e91359c885a7385ab6f9ed98a27927a5b83c3a456ce2e01869712675e527155ba1e339ac14a3ccd7a4b87360902f2b8381308fe5a4eac5c90d0b84da4bf5b907de6ff3139cffd23b49a78750006100183032a":"922a7b48ad5bf61e6d70751cfe":"":"f272a3ee9b981f97785cc6fad350e516d72d402dae0d8a531c064ec64598b2a5760f9b279c10aa1ff71bec07300ab0373187138e7a103fc4130105afa6b6346f3d368b40d6f542375de97878ad4d976d64c5c4968a17be2b1757a17c03100231c34721250cd37cc596678764083ade89ae3b1a2151ff9151edcd7ba0eb8a4649":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3e8216072ed6fcde0fe0f636b27ed718":"23a122cf363c3117b8c663388c760ee4":"28ce0b4a44fa83323e060f3ff6436b8829d4f842090296bdc952b6d4a6b1b1a66be06168c63c4643e6ac186f7ffd8d144f603b2d4bc0d65be48121676f9fa1f359029c512bebfd75075ff357bc55f20fc76d9f2477c9930f16408f9f09c5ae86efa2529d2f1449ceeb635b83ca13662860ef9ac04a3d8ab4605eccd2d9ae5a71":"3b50f2a8dca9f70178503d861d9e37f5edfafc80ee023bfed390a477372986e4794175ec22ac038c3461aba50c9b2379cab48512946efdfe2cb9c12a858b373a5309324f410e6a05e88ba892759dbee6e486dc9665f66cb5950ea7e71317fa94abbebd67a3948746a998173fbbb4f14f9effbdf66d3b6e346053496a4b1934ce":"531a65cc5dfeca671cc64078d1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"1af434b73a1210b08595ffa686079832":"ae318f3cb881d1680f6afbf6713a9a2f":"3763c9241be0d9d9a9e46e64b12e107d16cca267ff87844c2325af910cc9a485c7015d95bbe62398864d079fb2b577ba0cfad923c24fa30691ad7d767d651eed4a33d0be8f06fed43f58b2e0bb04959f10b9e8e73bd80d3a6a8c8ce637bfbdb9d02c2b0a3dd8317c4997822031a35d34b3b61819b425c10c64e839b29874ddfb":"13f6c1c2d4edcf1438a7b4e85bcd1c84a989831a64d205e7854fce8817ddfceab67d10506ccf6ed9ce50080ef809e28e46cba7b0c96be6a811f59cd09cb3b7b3fe5073ee6763f40aee61e3e65356093f97deef5a8721d995e71db27a51f60a50e34ac3348852c445188cfc64337455f317f87535d465c6f96006f4079396eba3":"2ae7350dd3d1909a73f8d64255":"":"3cd2a770300ce4c85740666640936a0fe48888788702fc37e7a8296adb40b862ec799f257a16821adaa7315bd31e8dec60e4a8faeb8ba2ee606340f0219a6440e9c1d3168425e58fac02e8a88865f30649913d988353ab81f42a5ad43f960055f0877acda20f493208c2c40754fbf4ccee040975aa358ea3fe62cbd028c1611a":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"04036d2f5273c6ff5b8364aa595359c9":"edc433c381140dff929d9df9f62f4cb6":"404acfeeea342aeea8c8b7449af9e20ddf5b85dc7770d2144a4dd05959613d04d0cfece5a21cbb1a9175ddc9443ffacd2085332eb4c337a12a7bb294c95960e7c0bde4b8ab30a91e50267bbd0b8d2a4ed381409ea2e4c84f9a2070a793ce3c90ea8a4b140651b452674f85d5b76d0055df115608bf3a3c60996108023ebabe65":"acf79b6099490af938fb5fd8913255b3daa22786b03356cdf3e0ffaf570f9f866047b8e15c9953f893d97e7098265297396868ebc383be8547e8ec9d974b6a65b5dc5147cdadef2e2ad96696e84e44f364c2ba18c8aabe21f99489957b2b5484bf3fb4fecaf5ddaa1d373e910059c978918a3d01b955de2adb475914bf2c2067":"71f818f1a2b789fabbda8ec1":"":"4729cb642304de928b9dca32bb3d7b7836dd3973bbccf3f013c8ff4b59eca56f5d34d1b8f030a7b581b2f8fdc1e22b76a4cbc10095559876736d318d6c96c5c64cbd9fbd1d8eb4df38a2d56640d67d490d03acc1cd32d3f377eb1907bbd600f21d740b578080ba9c6ddc7dc6c50cdcee41fec51499cb944713c0961fc64f5a70":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"59fe44c6e28d025b2ad05e6e867051ab":"eb0c30320029433f66d29b3fd5c6563b":"49b7418b87374b462d25309b1c06e3132a3c8f4a4fcf29fed58e0902509426be712639db21c076df7b83dcfcc2c2c8fcc88576f4622a4366eb42f84ebf760e3eb22b14f8b5ff83f06a6f04a924eaab05b912e126e80da22461abf7f1925fd72ebdf2aea335a044726e7c2ebbb2b8aeebab4f7de5e186b50f275b700794d895d8":"20e66bae1215de9a87a0b878d39015d17e0d4542a1aaba2000cefbd5f892c26a410f55f0d7dc2f6b66690f2997032985e5516e068bfc6ec8a3669f566e280b0cefded519023b735ee3bcbfc5b6ce8203b727933a750f9bd515ec448c1f3a030aa0f40e607727a3239ebbe655d46b38a3d867e481ccf0fadbf0d59b665d2ed6b5":"296c4cdaeb94beb2847dc53d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"c314264cee0e6db30ebe9b2f6d4991b2":"4cd4431bb6dea8eb18ae74e4c35a6698":"0eeafbfd04f9a0ea18e5bdc688c7df27183f346187e9574b61222006f2b3e12e8d9d9bf1f0f15949ee1a7ee8e5c80ee903b8ba2860e15ccb999929f280200b159c2adca481748d0632a7b40601c45055f8cb5126148e6cbab2c76f543537ab54eb276188343cea3c4ab0d7b65b8754e55cfe3f6a5c41b6ea3c08b81fcecc968a":"d436ff9abfb044a332c4e009b591719a67b12a5366da0a66edf19605c34daa37588e15dd3da0d1a097215e469439de79cca74e04cd4904e5b4a6cb4e0ea54e6ba4e624ed6bd48be32d1ef68ffea1639a14e91a5914c2346ea526df95cbd4ad1b8ee842da210b35b6315c3075ecc267d51643c4b39202d0ad793cbb0045ebdc19":"fda18d2f795d900f057fe872":"":"cb9e0fb0ac13ca730b79e34745584b362d0716c344e4de90d8352b21117471ba12c97f193150b33774baee5e4a0f11b10428eaf0106c958e16aa46c5f6f3d99eed93d1b9ba3957bed05a8b9cc8c5511cf813a66dc7d773cb735b0523d8d6b0b80639b031ddc375f714c6dd50055320cd7ed44a471c8d5645c938a9005d0b5050":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"26072018bd0bda524b5beb66a622c63e":"c783d6d3b8392160e3b68038b43cf1f4":"8ae7c809a9dc40a6732a7384e3c64abb359c1b09dcb752e5a6b584873e3890230c6fc572b9ad24d849766f849c73f060fc48f664c1af9e6707e223691b77e170966ed164e0cc25ede3fbc3541c480f75b71e7be88fe730d8b361ea2733c6f37e6a59621de6004e020894b51dfb525973d641efe8d5fd9077a0bbc9dc7933a5de":"91c524b359dae3bc49117eebfa610672af1e7754054607317d4c417e7b1a68453f72d355468f825aeb7fde044b20049aed196ec6646cce1eeeccf06cb394286272b573220cdb846613ebc4683442dccc7a19ec86ef1ec971c115726584ae1f4008f94e47d1290d8b6b7a932cfe07165fd2b94e8f96d15f73bf72939c73f4bd11":"edffe55c60235556":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"201751d3da98bd39ff4e5990a56cfea7":"6172468634bf4e5dda96f67d433062d7":"ae2d770f40706e1eaa36e087b0093ec11ed58afbde4695794745e7523be0a1e4e54daade393f68ba770956d1cfb267b083431851d713249ffe4b61227f1784769ce8c9127f54271526d54181513aca69dc013b2dfb4a5277f4798b1ff674bca79b3dec4a7a27fcf2905ae0ce03f727c315662cd906e57aa557d1023cce2acd84":"2965af0bde3565a00e61cebbfe0b51b5b5ee98dbbfff7b1b5bf61da5ba537e6f4cf5fa07d2b20e518232c4961e6bc3ae247b797429da5d7eee2fc675b07066ac2e670261c6e9a91d920c7076101d86d5ef422b58e74bdc1e0b1d58298d3ee0f510ee3a3f63a3bbc24a55be556e465c20525dd100e33815c2a128ac89574884c1":"66c247e5ad4e1d6a":"":"efd064d4b4ef4c37b48ddf2fa6f5facc5e9cc4c3255b23a1e3765fabb5a339fa0eda754a5381b72989fc1323ff9a6bbaecd904eb4835e5a511b922927574673061ed8de23299ea1456054e7ebb62869878c34fb95e48c8385b5ebceecb962654cf1586b3f54e7887ce31850363e9a22be9e6fbc22e694db81aa055490495dbf2":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"3bc0dcb5261a641a08e6cb00d23e4deb":"16fa19f69fceed9e97173207158755a5":"92ddd3b98f08fc8538f6106f6434a1efa0a7441cc7f6fd0841103c2e4dd181ea0c9a4811b3cb1bad1986a44d8addabc02dd6980daf7d60405b38dadc836bb1d0620ceab84e0134aca7c30f9f9490436b27acfd7052f9d7f0379b8e7116571017add46b9976f4b41431d47bae6f5f34dc42410793bc26c84bfe84fb53ae138c85":"d533ad89a1a578db330c01b4e04d08238b020e36aebe87cf2b0bf0b01f1ce4197be8b0596e475a95946918152e8b334ba89f60486c31f0bd8773ca4ff1319fe92197088b131e728d64405441c4fb5466641f0b8682e6cb371f8a8936140b16677f6def8b3dd9cbf47a73f553f1dca4320ad76f387e92f910f9434543f0df0626":"f5289e1204ace3b2":"":"be0c30deeffbe51706247928132002b24d29272eee6b9d618483868e67280236632fa1ae06f3ef793f67bd01b1b01f70a827367c1cd28f778910457c7cbd977dfefff1f84a522247e19b2fd01fa22ce67cef9503d45c80a5084741f04108f2462b7cdd06a8f1f044fea2b05e920bcc061fbc6910175d732f45102a63c76ae48c":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"239c15492d6deec979e79236baca4635":"916b8b5417578fa83d2e9e9b8e2e7f6b":"b39eb732bc296c555cc9f00cf4caaf37d012329f344a6b74a873baf0d8dde9631f5e57b45b957d6aec0f7978e573dd78b43d459b77756037cd64d10d49966eb3a2a08d0f4d5e4f5dcb8713f4e4756acdf9925c5fc6120c477f6dffc59b0b47a3d5efd32b8c9052b321bb9b5129e5c6a095d8de563601b34608456f58d7221f2d":"d64886ce5f5b4adb7fe8f95904bc1461749c931655b02819ffdd0ae31bad4175125aa68962f8e36ec834a7d53a191a74c937e81ec93ad9ce0d3b286d3c11ff1733c0b7780130768c120b1833933561cf07399ca49b912370ae34f0e49b9c8cb9920eddc6816ab2ae261c6d7f70058a9b83a494026f249e58c4c613eefafe6974":"fc08cbbe":"":"95c169721ea007c3f292e4ec7562a426d9baa7d374fd82e1e48d1eaca93d891d5ffa9acf5e3bd82e713ac627141e26a8b654920baffab948401cc3c390d6eea9d7b78c4fcb080b0aa9222e4d51bf201ccfd9328995831435e065d92ad37ee41c7c4366cc1efe15c07fc0470608866aeea96997772ecf926934c5d02efe05f250":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"db68a96e216b0dd9945f14b878487e03":"8a1a72e7bb740ec37ea4619c3007f8ae":"1b4f37190a59a4fff41d348798d1829031204fd7ac2a1be7b5ea385567e95e2ace25bf9e324488dd3ab8ce7f29d4c9a4f4b1a8a97f774871ee825e2c17700128d3c55908d3b684a1f550fdb8b38149ff759c21debdd54e49d64d3e8aac803dfd81600464ed484749bb993f89d4224b3d7d55c756b454466ff9fd609019ed5e83":"5634196a32d4cbfa7a2f874a1e0f86287d2942090e0cc6a82bd5caf40136a27ddf524a17713ce4af04ca6cb640a7205cce4ac9cb2d0ab380d533e1e968089ea5740c0fcbfa51f2424008e0b89dc7b3396b224cfaed53b3ac0604879983d3e6e6d36053de4866f52976890f72b8f4b9505e4ebdd04c0497048c3ce19336133ea4":"9251d3e3":"":"0c6bb3ee5de5cbb4b39d85d509bcacb3dda63fa50897936531339882962e8dc54c285c8944768d12096d4a3c2b42ffa92603cee2da9b435ec52908fca6d38ed74f898fe0ffa761f96038ff7dfeccc65bb841c3457b8de1e97d9bee82e2911602ee2dc555b33a227424dea86d610d37c447776295b412b412903ad2cede5170b6":1 AES-GCM NIST Validation PSA (AES-128,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_128_GCM:"659b9e729d12f68b73fdc2f7260ab114":"459df18e2dfbd66d6ad04978432a6d97":"ee0b0b52a729c45b899cc924f46eb1908e55aaaeeaa0c4cdaacf57948a7993a6debd7b6cd7aa426dc3b3b6f56522ba3d5700a820b1697b8170bad9ca7caf1050f13d54fb1ddeb111086cb650e1c5f4a14b6a927205a83bf49f357576fd0f884a83b068154352076a6e36a5369436d2c8351f3e6bfec65b4816e3eb3f144ed7f9":"fd0732a38224c3f16f58de3a7f333da2ecdb6eec92b469544a891966dd4f8fb64a711a793f1ef6a90e49765eacaccdd8cc438c2b57c51902d27a82ee4f24925a864a9513a74e734ddbf77204a99a3c0060fcfbaccae48fe509bc95c3d6e1b1592889c489801265715e6e4355a45357ce467c1caa2f1c3071bd3a9168a7d223e3":"8e5a6a79":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"806766a4d2b6507cc4113bc0e46eebe120eacd948c24dc7f":"4f801c772395c4519ec830980c8ca5a4":"":"":"8fa16452b132bebc6aa521e92cb3b0ea":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0c2abdcd2e4ae4137509761a38e6ca436b99c21b141f28f5":"335ca01a07081fea4e605eb5f23a778e":"":"":"d7f475dfcb92a75bc8521c12bb2e8b86":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"eef490a0c2ecb32472e1654184340cc7433c34da981c062d":"d9172c3344d37ff93d2dcb2170ea5d01":"":"":"017fef05260a496654896d4703db3888":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fe0c3490f1f0dba23cf5c64e6e1740d06f85e0afec6772f3":"f47e915163fa3df7f6c15b9d69f53907":"":"":"14e1a057a2e7ffbd2208e9c25dbba1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4356b3b1f308df3573509945afe5268984f9d953f01096de":"a35b397b34a14a8e24d05a37be4d1822":"":"":"e045ecba220d22c80826b77a21b013":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e2898937cc575c8bb7444413884deafe8eaf326be8849e42":"169a449ccb3eb29805b15304d603b132":"":"":"3a807251f3d6242849a69972b14f6d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"75683c7df0442e10b5368fcd6bb481f0bff8d95aae90487e":"538641f7d1cc5c68715971cee607da73":"":"":"07d68fffe417adc3397706d73b95":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0724ee1f317997ce77bb659446fcb5a557490f40597341c7":"0d8eb78032d83c676820b2ef5ccc2cc8":"":"":"7da181563b26c7aefeb29e71cc69":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"be2f0f4ae4ab851b258ec5602628df261b6a69e309ff9043":"646a91d83ae72b9b9e9fce64135cbf73":"":"":"169e717e2bae42e3eb61d0a1a29b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"583c328daecd18c2ac5c83a0c263de194a4c73aa4700fe76":"55e10d5e9b438b02505d30f211b16fea":"":"":"95c0a4ea9e80f91a4acce500f7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b40857e7e6f26050f1e9a6cbe05e15a0ba07c2055634ad47":"e25ef162a4295d7d24de75a673172346":"":"":"89ea4d1f34edb716b322ea7f6f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"627008956e31fea497fb120b438a2a043c23b1b38dc6bc10":"08ea464baac54469b0498419d83820e6":"":"":"ab064a8d380fe2cda38e61f9e1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8c386d67d7c2bfd46b8571d8685b35741e87a3ed4a46c9db":"766996fb67ace9e6a22d7f802455d4ef":"":"":"9a641be173dc3557ea015372":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"711bc5aa6b94fa3287fad0167ac1a9ef5e8e01c16a79e95a":"75cdb8b83017f3dc5ac8733016ab47c7":"":"":"81e3a5580234d8e0b2204bc3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c74620828402e0bdf3f7a5353668505dc1550a31debce59a":"cfbefe265583ab3a2285e8080141ba48":"":"":"355a43bcebbe7f72b6cd27ea":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1eb53aa548b41bfdc85c657ebdebdae0c7e525a6432bc012":"37ffc64d4b2d9c82dd17d1ad3076d82b":"":"":"34b8e037084b3f2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"50d077575f6db91024a8e564db83324539e9b7add7bb98e4":"118d0283294d4084127cce4b0cd5b5fa":"":"":"507a361d8ac59882":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d9ddca0807305025d61919ed7893d7d5c5a3c9f012f4842f":"b78d518b6c41a9e031a00b10fb178327":"":"":"f401d546c8b739ff":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6ed8d8afde4dc3872cbc274d7c47b719205518496dd7951d":"14eb280288740d464e3b8f296c642daa":"":"":"39e64d7a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"80aace5ab74f261bc09ac6f66898f69e7f348f805d52404d":"f54bf4aac8fb631c8b6ff5e96465fae6":"":"":"1ec1c1a1":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"23b76efd0dbc8d501885ab7d43a7dacde91edd9cde1e1048":"75532d15e582e6c477b411e727d4171e":"":"":"76a0e017":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"94c50453dd3ef7f7ea763ae13fa34debb9c1198abbf32326":"1afe962bc46e36099165552ddb329ac6":"b2920dd9b0325a87e8edda8db560bfe287e44df79cf61edba3b2c95e34629638ecb86584f05a303603065e63323523f6ccc5b605679d1722cde5561f89d268d5f8db8e6bdffda4839c4a04982e8314da78e89f8f8ad9c0fee86332906bf78d2f20afcaabdc282008c6d09df2bfe9be2c9027bb49268b8be8936be39fa8b1ae03":"":"51e1f19a7dea5cfe9b9ca9d09096c3e7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c6a98102af3d875bcdebe594661d3a6b376970c02b11d019":"bea8cd85a28a2c05bf7406b8eef1efcc":"f2f80e2c042092cc7240b598ab30fad055bce85408aa0f8cefaf8a7204f0e2acb87c78f46a5867b1f1c19461cbf5ed5d2ca21c96a63fb1f42f10f394952e63520795c56df77d6a04cb5ad006ee865a47dc2349a814a630b3d4c4e0fd149f51e8fa846656ea569fd29a1ebafc061446eb80ec182f833f1f6d9083545abf52fa4c":"":"04b80f25ae9d07f5fd8220263ac3f2f7":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ec3cc45a22fdc7cc79ed658d9e9dbc138dcc7d6e795cba1a":"b10d9c70205e142704f9d1f74caee0f6":"714994017c169c574aaff2f8bad15f8fa6a385117f5405f74846eca873ca4a8f4876adf704f2fcaff2dfa75c17afefd08a4707292debc6d9fafda6244ca509bc52b0c6b70f09b14c0d7c667583c091d4064e241ba1f82dd43dc3ea4b8922be65faf5583f6b21ff5b22d3632eb4a426675648250e4b3e37c688d6129b954ef6a8":"":"d22407fd3ae1921d1b380461d2e60210":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5a32ebc7a2338038ced36d2b85cbc6c45cca9845a7c5aa99":"9afe0882e418c9af205eeb90e131d212":"61ff8a8bc22803f17e8e9f01aff865bc7d3083ff413ce392a989e46ebed5114894de906f7d36439024d8f2e69cc815ac043fff2f75169f6c9aa9761ff32d10a1353213ac756cb84bd3613f8261ef390e1d00c3a8fb82764b0cda4e0049219e87d2e92c38f78ffac242391f838a248f608bb2b56b31bbb453d1098e99d079ea1b":"":"fcbb932ddb0128df78a71971c52838":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bf22885e7f13bcc63bb0a2ca90c20e5c86001f05edf85d8":"99dec21f4781284722b5074ea567c171":"9f4176dacf26e27aa0e669cd4d44bca41f83468c70b54c745a601408a214bf876941ae2ae4d26929113f5de2e7d15a7bb656541292137bf2129fdc31f06f070e3cfaf0a7b30d93d8d3c76a981d75cd0ffa0bcacb34597d5be1a055c35eefeddc07ee098603e48ad88eb7a2ec19c1aefc5c7be9a237797397aa27590d5261f67a":"":"18fd1feec5e3bbf0985312dd6100d1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cfd75a9d3788d965895553ab5fb7a8ff0aa383b7594850a6":"a6df69e5f77f4d99d5318c45c87451b2":"041aeb2fa0f7df027cd7709a992e041179d499f5dbccd389035bf7e514a38b5f8368379d2d7b5015d4fa6fadfd7c75abd2d855f5ea4220315fad2c2d435d910253bf76f252a21c57fe74f7247dac32f4276d793d30d48dd61d0e14a4b7f07a56c94d3799d04324dfb2b27a22a5077e280422d4f014f253d138e74c9ac3428a7b":"":"fd78b9956e4e4522605db410f97e84":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b0b21ae138485591c6bef7b3d5a0aa0e9762c30a50e4bba2":"56dc980e1cba1bc2e3b4a0733d7897ca":"a38458e5cc71f22f6f5880dc018c5777c0e6c8a1301e7d0300c02c976423c2b65f522db4a90401035346d855c892cbf27092c81b969e99cb2b6198e450a95c547bb0145652c9720aaf72a975e4cb5124b483a42f84b5cd022367802c5f167a7dfc885c1f983bb4525a88c8257df3067b6d36d2dbf6323df80c3eaeffc2d176a5":"":"b11f5c0e8cb6fea1a170c9342437":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8775665aba345b1c3e626128b5afa3d0da8f4d36b8cf1ca6":"cd17f761670e1f104f8ea4fb0cec7166":"2ee08a51ceaca1dbbb3ee09b72f57427fd34bd95da5b4c0933cbb0fc2f7270cffd3476aa05deeb892a7e6a8a3407e61f8631d1a00e47d46efb918393ee5099df7d65c12ab8c9640bfcb3a6cce00c3243d0b3f316f0822cfeae05ee67b419393cc81846b60c42aeb5c53f0ede1280dc36aa8ef59addd10668dd61557ce760c544":"":"6cdf60e62c91a6a944fa80da1854":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cc9922299b47725952f06272168b728218d2443028d81597":"9b2f1a40717afcdbb6a95d6e335c9e4d":"bcfca8420bc7b9df0290d8c1bcf4e3e66d3a4be1c947af82dd541336e44e2c4fa7c6b456980b174948de30b694232b03f8eb990f849b5f57762886b449671e4f0b5e7a173f12910393bdf5c162163584c774ad3bba39794767a4cc45f4a582d307503960454631cdf551e528a863f2e014b1fca4955a78bd545dec831e4d71c7":"":"dd515e5a8b41ecc441443a749b31":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5a27d718f21c5cbdc52a745b931bc77bd1afa8b1231f8815":"59661051912fba45023aef4e6f9380a5":"2b7ce5cea81300ed23501493310f1316581ef8a50e37eaadd4bb5f527add6deb09e7dcc67652e44ac889b48726d8c0ae80e2b3a89dd34232eb1da32f7f4fcd5bf8e920d286db8604f23ab06eab3e6f99beb55fe3725107e9d67a491cdada1580717bbf64c28799c9ab67922da9194747f32fd84197070a86838d1c9ebae379b7":"":"f33e8f42b58f45a0456f83a13e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b83e933cf54ac58f8c7e5ed18e4ed2213059158ed9cb2c30":"8710af55dd79da45a4b24f6e972bc60a":"b7a428bc68696cee06f2f8b43f63b47914e29f04a4a40c0eec6193a9a24bbe012d68bea5573382dd579beeb0565b0e0334cce6724997138b198fce8325f07069d6890ac4c052e127aa6e70a6248e6536d1d3c6ac60d8cd14d9a45200f6540305f882df5fca2cac48278f94fe502b5abe2992fa2719b0ce98b7ef1b5582e0151c":"":"380128ad7f35be87a17c9590fa":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d2f85f92092385f15da43a086cff64c7448b4ee5a83ed72e":"9026dfd09e4553cd51c4c13ce70830de":"3c8de64c14df73c1b470a9d8aa693af96e487d548d03a92ce59c0baec8576129945c722586a66f03deb5029cbda029fb22d355952c3dadfdede20b63f4221f27c8e5d710e2b335c2d9a9b7ca899597a03c41ee6508e40a6d74814441ac3acb64a20f48a61e8a18f4bbcbd3e7e59bb3cd2be405afd6ac80d47ce6496c4b9b294c":"":"e9e5beea7d39c9250347a2a33d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"de7df44ce007c99f7baad6a6955195f14e60999ed9818707":"4d209e414965fe99636c1c6493bba3a3":"da3bc6bdd414a1e07e00981cf9199371192a1fb2eaae20f7091e5fe5368e26d61b981f7f1d29f1a9085ad2789d101155a980de98d961c093941502268adb70537ad9783e6c7d5157c939f59b8ad474c3d7fc1fcc91165cdf8dd9d6ec70d6400086d564b68ebead0d03ebd3aa66ded555692b8de0baf43bc0ddef42e3a9eb34ab":"":"24483a57c20826a709b7d10a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1dfa5ff20046c775b5e768c2bd9775066ae766345b7befc3":"2d49409b869b8b9fc5b67767979ca8cd":"e35d34478b228bc903ea2423697e603cc077967d7cfb062e95bc11d89fbe0a1f1d4569f89b2a7047300c1f5131d91564ec9bce014d18ba605a1c1e4e15e3e5c18413b8b59cbb25ab8f088885225de1235c16c7d9a8d06a23cb0b38fd1d5c6c19617fe08fd6bf01c965ed593149a1c6295435e98463e4f03a511d1a7e82c11f01":"":"23012503febbf26dc2d872dc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2df3ee3a6484c48fdd0d37bab443228c7d873c984529dfb4":"dc6aeb41415c115d66443fbd7acdfc8f":"eafc6007fafb461d3b151bdff459e56dd09b7b48b93ea730c85e5424f762b4a9080de44497a7c56dd7855628ffc61c7b4faeb7d6f413d464fe5ec6401f3028427ae3e62db3ff39cd0f5333a664d3505ff42caa8899b96a92ec01934d4b59556feb9055e8dfb81f55e60135345bfce3e4199bfcdb3ce42523e7d24be2a04cdb67":"":"e8e80bf6e5c4a55e7964f455":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce0787f65e6c24a1c444c35dcd38195197530aa20f1f6f3b":"55300431b1eaac0375681d7821e1eb7a":"84a699a34a1e597061ef95e8ec3c21b592e9236ddb98c68d7e05f1e709937b48ec34a4b88d99708d133a2cc33f5cf6819d5e7b82888e49faa5d54147d36c9e486630aa68fef88d55537119db1d57df0402f56e219f7ece7b4bb5f996dbe1c664a75174c880a00b0f2a56e35d17b69c550921961505afabf4bfd66cf04dc596d1":"":"74264163131d16ac":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3a15541b5857a668dc9899b2e198d2416e83bac13282ca46":"89bf8ab0cea6f59616eeb9b314d7c333":"4d2843f34f9ea13a1ac521479457005178bcf8b2ebeaeb09097ea4471da9f6cc60a532bcda1c18cab822af541de3b87de606999e994ace3951f58a02de0d6620c9ae04549326da449a3e90364a17b90b6b17debc0f454bb0e7e98aef56a1caccf8c91614d1616db30fc8223dbcd8e77bf55d8253efe034fd66f7191e0303c52f":"":"8f4877806daff10e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b61cdfd19c136ee2acbe09b7993a4683a713427518f8e559":"4066118061c904ed1e866d4f31d11234":"153c075ecdd184fd8a0fca25cae8f720201361ef84f3c638b148ca32c51d091a0e394236d0b51c1d2ee601914120c56dfea1289af470dbc9ef462ec5f974e455e6a83e215a2c8e27c0c5b5b45b662b7f58635a29866e8f76ab41ee628c12a24ab4d5f7954665c3e4a3a346739f20393fc5700ec79d2e3c2722c3fb3c77305337":"":"4eff7227b42f9a7d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce175a7df7e429fcc233540e6b8524323e91f40f592ba144":"c34484b4857b93e309df8e1a0e1ec9a3":"ce8d8775f047b543a6cc0d9ef9bc0db5ac5d610dc3ff6e12e0ad7cd3a399ebb762331e3c1101a189b3433a7ff4cd880a0639d2581b71e398dd982f55a11bf0f4e6ee95bacd897e8ec34649e1c256ee6ccecb33e36c76927cc5124bc2962713ad44cbd435ae3c1143796d3037fa1d659e5dad7ebf3c8cbdb5b619113d7ce8c483":"":"ff355f10":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5f659ed236ba60494e9bf1ee2cb40edcf3f25a2bac2e5bc5":"ad49f12f202320255406c2f40e55b034":"6da62892f436dfe9790e72d26f4858ca156d1d655c9cc4336fcf282b0f3f0b201e47f799c3019109af89ef5fd48a4811980930e82cd95f86b1995d977c847bbb06ecdcc98b1aae100b23c9c2f0dcf317a1fb36f14e90e396e6c0c594bcc0dc5f3ebf86ce7ecd4b06d1c43202734d53f55751a6e6bbda982104102af240def4eb":"":"cb4d8c1d":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a73f318b1e298ba4ac0ab2aed74f73543b1017cccbd1b240":"abe33b7e8d88bd30deb96d1e90c4e951":"6de616b000047b14b6759015183dd753c61499c0e665d06a89e4fb0cd0dd3064ff8651582e901ef5d0cdf3344c29c70c3aabc2aaf83cb3f284c6fe4104906d389b027e7d9ca60d010f06ef8cd9e55db2483d06552ddbe3fc43b24c55085cd998eae3edec36673445bf626e933c15b6af08ea21cbace4720b0b68fe1a374877d5":"":"4a28ec97":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"73d5be74615bc5b627eedfb95746fb5f17cbf25b500a597f":"eb16ed8de81efde2915a901f557fba95":"":"fc40993eb8559e6b127315c03103ce31b70fc0e07a766d9eecf2e4e8d973faa4afd3053c9ebef0282c9e3d2289d21b6c339748273fa1edf6d6ef5c8f1e1e9301b250297092d9ac4f4843125ea7299d5370f7f49c258eac2a58cc9df14c162604ba0801728994dc82cb625981130c3ca8cdb3391658d4e034691e62ece0a6e407":"804056dca9f102c4a13a930c81d77eca":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a249135c9f2f5a8b1af66442a4d4e101771a918ef8acee05":"80b6e48fe4a3b08d40c1636b25dfd2c4":"":"c62b39b937edbdc9b644321d5d284e62eaa4154010c7a3208c1ef4706fba90223da04b2f686a28b975eff17386598ba77e212855692f384782c1f3c00be011e466e145f6f8b65c458e41409e01a019b290773992e19334ffaca544e28fc9044a5e86bcd2fa5ad2e76f2be3f014d8c387456a8fcfded3ae4d1194d0e3e53a2031":"951c1c89b6d95661630d739dd9120a73":"":"b865f8dd64a6f51a500bcfc8cadbc9e9f5d54d2d27d815ecfe3d5731e1b230c587b46958c6187e41b52ff187a14d26aa41c5f9909a3b77859429232e5bd6c6dc22cf5590402476d033a32682e8ab8dc7ed0b089c5ab20ab9a8c5d6a3be9ea7aa56c9d3ab08de4a4a019abb447db448062f16a533d416951a8ff6f13ed5608f77":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fa832a4b37dcb3c0879a771bb8ae734f0d88b9be497797a8":"70835abab9f945c84ef4e97cdcf2a694":"":"0f1105f9ec24121232b60b6ef3c3e8ca9eec1a3d7625004b857d1d77f292b6ec065d92f5bb97e0dc2fdfdf823a5db275109a9472690caea04730e4bd732c33548718e9f7658bbf3e30b8d07790cd540c5754486ed8e4d6920cefaeb1c182c4d67ebed0d205ba0bd9441a599d55e45094b380f3478bcfca9646a0d7aa18d08e52":"a459be0b349f6e8392c2a86edd8a9da5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"dda216287910d1f5c0a312f63c243612388bc510cb76c5ba":"7f770140df5b8678bc9c4b962b8c9034":"":"d6617d583344d4fe472099d2a688297857215a3e31b47d1bf355ccfe9cf2398a3eba362c670c88f8c7162903275dfd4761d095900bd97eba72200d4045d72bd239bda156829c36b38b1ff5e4230125e5695f623e129829721e889da235bb7d4b9da07cce8c3ceb96964fd2f9dd1ff0997e1a3e253a688ceb1bfec76a7c567266":"9823e3242b3f890c6a456f1837e039":"":"b4910277224025f58a5d0f37385b03fcd488dfef7580eb5c270c10bd7a6f6d9c7ddc2d1368d68d4e04f90e3df029ed028432a09f710be1610b2a75bd05f31bae83920573929573affd0eb03c63e0cec7a027deab792f43ee6307fd3c5078d43d5b1407ac023824d41c9437d66eeec172488f28d700aa4b54931aad7cd458456f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c5afa1e61d4594b1c2fa637f64f18dd557e4df3255b47f24":"151fd3ba32f5bde72adce6291bcf63ea":"":"5c772cdf19571cd51d71fc166d33a0b892fbca4eae36ab0ac94e6164d51acb2d4e60d4f3a19c3757a93960e7fd90b9a6cdf98bdf259b370ed6c7ef8cb96dba7e3a875e6e7fe6abc76aabad30c8743b3e47c8de5d604c748eeb16806c2e75180a96af7741904eca61769d39e943eb4c4c25f2afd68e9472043de2bb03e9edae20":"f0626cc07f2ed1a7570386a4110fc1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"febd4ff0fedd9f16bccb62380d59cd41b8eff1834347d8fa":"743699d3759781e82a3d21c7cd7991c8":"":"dc971c8f65ece2ea4130afd4db38fc657c085ea19c76fef50f5bd0f8dd364cc22471c2fa36be8cde78529f58a78888e9de10961760a01af005e42fc5b03e6f64962e6b18eaedea979d33d1b06e2038b1aad8993e5b20cae6cc93f3f7cf2ad658fbba633d74f21a2003dded5f5dda3b46ed7424845c11bab439fbb987f0be09f8":"1da347f9b6341049e63140395ad445":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d280d079110c1c826cc77f490d807dd8d508eb579a160c49":"85b241d516b94759c9ef975f557bccea":"":"a286d19610a990d64f3accd329fc005d468465a98cfa2f3606c6d0fbeb9732879bad3ca8094322a334a43155baed02d8e13a2fbf259d80066c6f418a1a74b23e0f6238f505b2b3dc906ffcb4910ce6c878b595bb4e5f8f3e2ede912b38dbafdf4659a93b056a1a67cb0ec1dbf00d93223f3b20b3f64a157105c5445b61628abf":"bbf289df539f78c3a912b141da3a":"":"b9286ab91645c20de040a805020fed53c612d493a8ce9c71649ae16bd50eab6fb7f3a9180e1651d5413aa542608d7ecbf9fc7378c0bef4d439bc35434b6cf803976b8783aecc83a91e95cea72c2a26a883b710252e0c2a6baa115739a0692c85f6d34ff06234fbdc79b8c4a8ea0a7056fb48c18f73aaf5084868abb0dfaa287d":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5e80f87fa2156c62df7be2ad16c4890de5ee5868a684fcf9":"9769f71c76b5b6c60462a845d2c123ad":"":"c829073efd5c5150d2b7e2cdaeff979830d1aa983c747724ade6472c647a6e8e5033046e0359ea62fc26b4c95bccb3ac416fdf54e95815c35bf86d3fdd7856abbb618fe8fcd35a9295114926a0c9df92317d44ba1885a0c67c10b9ba24b8b2f3a464308c5578932247bf9c79d939aa3576376d2d6b4f14a378ab775531fe8abf":"394b6c631a69be3ed8c90770f3d4":"":"f886bd92ca9d73a52e626b0c63a3daa138faaacf7809086d04f5c0c899362aa22e25d8659653b59c3103668461d9785bb425c6c1026ad9c924271cec9f27a9b341f708ca86f1d82a77aae88b25da9061b78b97276f3216720352629bd1a27ebf890da6f42d8c63d68342a93c382442d49dd4b62219504785cee89dffdc36f868":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d8a7b99e53f5e5b197364d4516cace4b928de50e571315e3":"4b12c6701534098e23e1b4659f684d6f":"":"d0db0ac5e14bf03729125f3137d4854b4d8ce2d264f8646da17402bdad7034c0d84d7a80f107eb202aeadbfdf063904ae9793c6ae91ee8bcc0fc0674d8111f6aea6607633f92e4be3cfbb64418101db8b0a9225c83e60ffcf7a7f71f77149a13f8c5227cd92855241e11ee363062a893a76ac282fb47b523b306cd8235cd81c2":"729b31c65d8699c93d741caac8e3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c874b427b7181b0c90b887147c36f242827149324fd5c945":"4b8dda046a5b7c46abeeca2f2f9bcaf8":"":"bdd90190d587a564af022f06c8bd1a68735b6f18f04113fdcec24c6027aaf0271b183336fb713d247a173d9e095dae6e9badb0ab069712302875406f14320151fd43b90a3d6f35cc856636b1a6f98afc797cb5259567e2e9b7ce62d7b3370b5ee852722faf740edf815b3af460cdd7de90ca6ab6cd173844216c064b16ea3696":"fe1e427bcb15ce026413a0da87":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"56543cd6e2ebb1e3dc136a826bfc37eddb12f7a26430a1b4":"927ce8a596ed28c85d9cb8e688a829e6":"":"d541dd3acec2da042e6ea26fb90ff9a3861191926423b6dc99c5110b3bf150b362017159d0b85ffea397106a0d8299ec22791cb06103cd44036eed0d6d9f953724fb003068b3c3d97da129c28d97f09e6300cbea06ba66f410ca61c3311ce334c55f077c37acb3b7129c481748f79c958bc3bbeb2d3ff445ad361ed4bbc79f0a":"3a98f471112a8a646460e8efd0":"":"a602d61e7a35cbe0e463119bb66fd4bb6c75d1fe0b211b9d6a0a6e9e84b0794282318f0d33ec053f2cfba1623e865681affeaf29f3da3113995e87d51a5ab4872bb05b5be8ef2b14dfc3df5a48cbc9b10853a708ee4886a7390e8e4d286740a0dd41c025c8d72eda3f73f3cec5c33d5e50b643afd7691213cccccc2c41b9bd7a":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"caaf81cd380f3af7885ef0d6196a1688c9372c5850dc5b0b":"508c55f1726896f5b9f0a7024fe2fad0":"":"6f269929b92c6281e00672eaec183f187b2ddecc11c9045319521d245b595ab154dd50f045a660c4d53ae07d1b7a7fd6b21da10976eb5ffcddda08c1e9075a3b4d785faa003b4dd243f379e0654740b466704d9173bc43292ae0e279a903a955ce33b299bf2842b3461f7c9a2bd311f3e87254b5413d372ec543d6efa237b95a":"3b8026268caf599ee677ecfd70":"":"c4a96fb08d7c2eebd17046172b98569bc2441929fc0d6876aa1f389b80c05e2ede74dc6f8c3896a2ccf518e1b375ee75e4967f7cca21fa81ee176f8fb8753381ce03b2df873897131adc62a0cbebf718c8e0bb8eeed3104535f17a9c706d178d95a1b232e9dac31f2d1bdb3a1b098f3056f0e3d18be36bd746675779c0f80a10":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2fc9d9ac8469cfc718add2b03a4d8c8dcc2eeca08e5ff7bc":"b2a7c0d52fc60bacc3d1a94f33087095":"":"bc84d8a962a9cfd179d242788473d980d177abd0af9edccb14c6dc41535439a1768978158eeed99466574ea820dbedea68c819ffd9f9915ca8392c2e03049d7198baeca1d3491fe2345e64c1012aff03985b86c831ad516d4f5eb538109fff25383c7b0fa6b940ae19b0987d8c3e4a37ccbbd2034633c1eb0df1e9ddf3a8239e":"0a7a36ec128d0deb60869893":"":"fc3cd6486dfe944f7cb035787573a554f4fe010c15bd08d6b09f73066f6f272ff84474f3845337b6e429c947d419c511c2945ffb181492c5465940cef85077e8a6a272a07e310a2f3808f11be03d96162913c613d9c3f25c3893c2bd2a58a619a9757fd16cc20c1308f2140557330379f07dbfd8979b26b075977805f1885acc":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"81ff729efa4a9aa2eccc37c5f846235b53d3b93c79c709c8":"1bd17f04d1dc2e447b41665952ad9031":"":"3992ad29eeb97d17bd5c0f04d8589903ee23ccb2b1adc2992a48a2eb62c2644c0df53b4afe4ace60dc5ec249c0c083473ebac3323539a575c14fa74c8381d1ac90cb501240f96d1779b287f7d8ba8775281d453aae37c803185f2711d21f5c00eb45cad37587ed196d1633f1eb0b33abef337447d03ec09c0e3f7fd32e8c69f0":"01b0a815dc6da3e32851e1fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"068500e8d4f8d4af9035cdaa8e005a648352e8f28bdafc8a":"5ea9198b860679759357befdbb106b62":"":"98e32428d9d21c4b60e690a2ce1cf70bee90df31302d1819b7d27fd577dd990f7ffe6ba5ef117caac718cc1880b4ca98f72db281c9609e189307302dc2866f20be3a545a565521368a6881e2642cba63b3cf4c8b5e5a8eabeb3e8b004618b8f77667c111e5402c5d7c66afd297c575ce5092e898d5831031d225cee668c186a1":"d58752f66b2cb9bb2bc388eb":"":"2ef3a17fcdb154f60d5e80263b7301a8526d2de451ea49adb441aa2541986b868dab24027178f48759dbe874ae7aa7b27fb19461c6678a0ba84bbcd8567ba2412a55179e15e7c1a1392730ac392b59c51d48f8366d45b933880095800e1f36ff1ac00753f6363b0e854f494552f1f2efe028d969e6b1a8080149dd853aa6751e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7474d9b07739001b25baf6867254994e06e54c578508232f":"3ade6c92fe2dc575c136e3fbbba5c484":"":"1cbab2b6e4274caa80987072914f667b887198f7aaf4574608b91b5274f5afc3eb05a457554ff5d346d460f92c068bc626fd301d0bb15cb3726504b3d88ecd46a15077728ddc2b698a2e8c5ea5885fc534ac227b8f103d193f1977badf4f853a0931398da01f8019a9b1ff271b3a783ff0fae6f54db425af6e3a345ba7512cbf":"67c25240b8e39b63":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d50d4c7d442d8a92d0489a96e897d50dda6fbe47ca7713ee":"41b37c04ab8a80f5a8d9d82a3a444772":"":"b36b4caf1d47b0d10652824bd57b603ec1c16f4720ce7d43edde8af1b9737f61b68b882566e04da50136f27d9af4c4c57fff4c8465c8a85f0aeadc17e02709cc9ba818d9a272709e5fb65dd5612a5c5d700da399b3668a00041a51c23de616ea3f72093d85ecbfd9dd0b5d02b541fb605dcffe81e9f45a5c0c191cc0b92ac56d":"4ee54d280829e6ef":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"38f3ec3ec775dac76ae484d5b6ca61c695c7beafba4606ca":"9af53cf6891a749ab286f5c34238088a":"":"49726b8cefc842a02f2d7bef099871f38257cc8ea096c9ac50baced6d940acb4e8baf932bec379a973a2c3a3bc49f60f7e9eef45eafdd15bda1dd1557f068e81226af503934eb96564d14c03f0f351974c8a54fb104fb07417fe79272e4b0c0072b9f89b770326562e4e1b14cad784a2cd1b4ae1dc43623ec451a1cae55f6f84":"6f6f344dd43b0d20":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6db4ef061513ef6690d57aef50d8011e0dd7eb4432d82374":"623df5a0922d1e8c883debb2e0e5e0b1":"":"b7f9206995bc97311855ee832e2b40c41ab2d1a40d9263683c95b14dcc51c74d2de7b6198f9d4766c659e7619fe2693a5b188fac464ccbd5e632c5fd248cedba4028a92de12ed91415077e94cfe7a60f117052dea8916dfe0a51d92c1c03927e93012dbacd29bbbc50ce537a8173348ca904ac86df55940e9394c2895a9fe563":"14f690d7":"":"a6414daa9be693e7ebb32480a783c54292e57feef4abbb3636bebbc3074bfc608ad55896fe9bd5ab875e52a43f715b98f52c07fc9fa6194ea0cd8ed78404f251639069c5a313ccfc6b94fb1657153ff48f16f6e22b3c4a0b7f88e188c90176447fe27fa7ddc2bac3d2b7edecad5f7605093ac4280b38ae6a4c040d2d4d491b42":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8901bec4d3c64071d8c30c720c093221e05efed71da280bf":"9265abe966cb83838d7fd9302938f49d":"":"7c447e700db7367260dffa42050e612eff062eb0c8a6b4fe34858800bcb8ec2f622cb5213767b5771433783e9b0fa617c9ffb7fde09845dafc16dfc0df61215c0ca1191eabf43293db6603d5285859de7ef3329f5e71201586fb0188f0840ed5b877043ca06039768c77ff8687c5cfc2fd013a0b8da48344c568fce6b39e2b19":"6f6c38bc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2c57eb763f886154d3846cc333fc8ae8b3c7c9c3705f9872":"9b3781165e7ff113ecd1d83d1df2366d":"":"9fe7d210221773ba4a163850bab290ba9b7bf5e825760ac940c290a1b40cd6dd5b9fb6385ae1a79d35ee7b355b34275857d5b847bef4ac7a58f6f0e9de68687807009f5dc26244935d7bcafc7aed18316ce6c375192d2a7bf0bee8a632fe4f412440292e39339b94b28281622842f88048be4640486f2b21a119658c294ce32e":"62f32d4e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"307d31a594e54f673bea2f977835670aca4f3d45c9c376cc":"0bdaa353c4904d32432926f27534c73c":"aa39f04559ccc2cae3d563dda831fb238b2582cb2c2bb28cff20cc20200724c8771b9805ef7464b8fc06c7b8060c6920fd2779fbc807c2292c8c1f88f8088755609a1732ff8c0b06606452b970c79997b985889404fd907c4668a0bcc11ba617175f4525523494a244da60b238468c863055f04db20ea489adf545d56c0a71d8":"d7385a7bd0cb76e1e242fa547c474370bcc7cc7cf3e3fa37b00fe08a56383ca31d023d8c493f6d42e482b0f32e4f244dd100ea08eee6535e5bb8d27f76dbb7eead6ba8e031ccd0eaeb649edee92aeaf0f027d59efd4e39b1f34b15ceb8b592ee0f171b1773b308c0e747790b0e6ace90fc661caa5f942bdc197067f28fbe87d1":"2ddda790aae2ca427f5fb032c29673e6":"":"0b92262759897f4bd5624a891187eba6040d79322a2a5a60fb75c6c6a5badd117abe40c6d963931bbc72dca1a1bf1f5388030fe323b3b24bd408334b95908177fb59af57c5cc6b31825bc7097eec7fec19f9cdb41c0264fd22f71893bcf881c1510feb8057e64880f1ea2df8dc60bb300fd06b0a582f7be534e522caadc4a2c7":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"23c201968def551817f20e49b09dbb5aae0033305bef68a0":"bd2952d215aed5e915d863e7f7696b3e":"23f35fac583897519b94998084ad6d77666e13595109e874625bc6ccc6d0c7816a62d64b02e670fa664e3bb52c276b1bafbeb44e5f9cc3ae028daf1d787344482f31fce5d2800020732b381a8b11c6837f428204b7ed2f4c4810067f2d4da99987b66e6525fc6b9217a8f6933f1681b7cfa857e102f616a7c84adc2f676e3a8f":"77bc8af42d1b64ee39012df5fc33c554af32bfef6d9182804dcfe370dfc4b9d059bdbc55f6ba4eacb8e3a491d96a65360d790864ba60acf1a605f6b28a6591513ea3cfd768ff47aee242a8e9bdfac399b452231bfd59d81c9b91f8dc589ad751d8f9fdad01dd00631f0cb51cb0248332f24194b577e5571ceb5c037a6d0bcfe8":"bb9ba3a9ac7d63e67bd78d71dc3133b3":"":"17d93c921009c6b0b3ecf243d08b701422983f2dcaec9c8d7604a2d5565ed96ce5cddcb183cd5882f8d61d3202c9015d207fed16a4c1195ba712428c727601135315fc504e80c253c3a2e4a5593fc6c4a206edce1fd7104e8a888385bbb396d3cdf1eb2b2aa4d0c9e45451e99550d9cfa05aafe6e7b5319c73c33fd6f98db3c5":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6baec0669add30acb8f678ce477a2b171f89d1f41935c491":"b1472f92f552ca0d62496b8fa622c569":"5ae64edf11b4dbc7294d3d01bc9faf310dc08a92b28e664e0a7525f938d32ef033033f1de8931f39a58df0eabc8784423f0a6355efcff008cae62c1d8e5b7baefd360a5a2aa1b7068522faf8e437e6419be305ada05715bf21d73bd227531fea4bc31a6ce1662aec49f1961ee28e33ae00eb20013fd84b51cfe0d5adbdaff592":"5712b84c4c97d75f84edd50561bc1d3f1ba451cc3b358b2403b5e528290954348cf7a235b4dc11a72ddbc503191204e98a9744d85419508c8ca76438c13305f716f1e239a6d9f6423c27217a0057aa75f6d7e2fb356e7194f271459ab5482589ea311b33e3d3845952ff4067dd2b9bcc2e8f83630b0a219e904040abd643d839":"29a2d607b2d2d9c96d093000b401a94f":"":"beb687f062ae7f5159d07609dd58d7b81c478d180bc0b4c07ae799626ff1da2be2e0d78b2a2a1f563257f161491a5ac500cd719da6379e30d0f6d0a7a33203381e058f487fc60989923afbee76e703c03abc73bb01bd262ff6f0ac931f771e9b4f2980e7d8c0a9e939fa6e1094796894f2c78f453e4abe64cb285016435ef0e8":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7b882a2df81fdb9275fb05d120f32417e8ffedd07457e938":"5c064d3418b89388fb21c61d8c74d2c5":"5bfa7113d34e00f34713cf07c386d055e889bb42d7f6c8631ffce5668e98cb19bed8820b90ecb2b35df7134f975700347e5514287cfef7ffa2b0ff48b1de0769b03dca6610995d67cb80052cb2e5914eb4ed43ef5861f4b9364314fde6ad2b82fbba7fd849dfa6e46ecc12edc8cabfff28d9bd23c2bcc8ab3661c9ba4d5fee06":"0aae7213da279b34d6dcf2a691b2d0333112ea22de0c3c68d47cf9f9f4ed8ad4e03d4a60ec18c3a04ac9c2abb73e1023051029b5e8705bb69c4c50afc84deb0379db5077be1f663652f8bd8958271af2c1ac4a87e08cb526bab8a030652f2a29af8055d0f31e35475caee27f84c156ef8642e5bfef89192f5bde3c54279ffe06":"0943abb85adee47741540900cc833f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"51d94d21482c00bb5bc7e7e03aa017ba58f5a23494b72c2a":"fb21cd763e6f25540f8ad455deaccdf0":"019d1db5569eeff83306f65d653b01064854c1be8446cd2516336667c6557e7844fc349adea64a12dc19ac7e8e40b0520a48fac64571a93d669045607085ac9fa78fed99bbf644908d7763fe5f7f503947a9fe8661b7c6aef8da101acca0aed758ca1580eeb2f26ae3bf2de06ce8827a91a694179991a993cdf814efbcc61ca5":"3a9c69c1ed2340bfde1495658dbf4f54731a19b3922a1d535df8d0b2582f5e803b5891e8ad1aa256c923956dcda2430d0c0696bce63295fb61183e040566e459338f908d23ae51f64020c1ef3d192428f23312b285fc4111d50d1add58f4a49008a22c90d3365230e9158cd56f9d84f079bdd673555d4dc76c74b02fa9920e7d":"a93bd682b57e1d1bf4af97e93b8927":"":"7093f44703f2cbb3d12d9872b07a8cd44deb62dae48bc573b11a1ee1c9f3105223423fac3181c312a8a61757a432d92719f486c21e311b840aa63cf530710c873df27fecda0956075923f1ecc39bffb862706f48bde2de15612930fc8630d2036e9e4cfc1c69779171bd23d9e1d5de50a9e0a0de4bd82ed3efc45299980bb4cc":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e6756470937f5d9af76f2abe6df2d0bc15ff8e39b5154071":"4500193711a5d817a9f48deafda39772":"92fa22dba0eee6b1de1ddd24713b1be44c7105df90e6e7a54dcbf19025e560eb4986ee080cf613898a1a69d5ab460a3b8aa2723a95ac4a4af48224b011b55fb7582ae18f6746591eab2bd33d82a8dbbae3f7877e28afef9857a623530b31d8198b2df43f903d6e48ddae0848741f9eaae7b5504c67ad13791818f3c55c9b3d1e":"afae92bd56c426c095d76633701aa9bea5ce05490482c6c64ac24468c3e1af6e6030a6bb6649745b011c6729bde985b9242e22105322fbb8853dcabbd00165d0b07d7b499e0238b6513bf6351eb40635a798f7e6e2d31125dda45ffe8964596fdbff55df22d4e9025bd4f39e7c9b90e74b3ee58d6901f113900ee47a4df5afd7":"7d9f97c97c3424c79966f5b45af090":"":"62258d60f0138c0405df4b2ec1e308b374603a9eace45932fdc2999e9e2261de8b1099473d1fc741c46c334023aa5d9359f7ef966240aaf7e310d874b5956fd180fb1124cbeb91cf86020c78a1a0335f5f029bd34677dd2d5076482f3b3e85808f54998f4bac8b8fa968febceec3458fb882fc0530271f144fb3e2ab8c1a6289":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"30db73d46b518669c45b81bc67b93bed3d0864f7e9e8e789":"5069e2d2f82b36de8c2eb171f301135d":"ef781dce556b84188adee2b6e1d64dac2751dd8592abc6c72af7b998dfae40cbe692a4cae0b4aa2c95910e270600550fca1e83640c64efb1eb0e0a90a6fc475ae1db863a64ce9cc272f00abac8a63d48dd9f1c0a5f4586224befed05be4afae5bd92249833d565cc6b65fd8955cb8a7d7bd9f4b6a229e3881212871a52c15d1c":"750bc1d2f91d786bb1e621192a376f552538ba8c07d50d9e10b9345f31b3e5f9d8ad7c719c03d8548a3b184b741cd06c49d7fb6fe80258d60c01c2987c337c823211cee7c1cf82077266889bc7767475e0eeabb2ef6b5a1de2089aaef77565d40a1c2c470a880c911e77a186eacca173b25970574f05c0bdcd5428b39b52af7f":"a5100c5e9a16aedf0e1bd8604335":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"209f0478f1a62cb54c551181cbd4d24b796e95f3a06b6cb9":"7be1768f6ffb31599eb6def7d1daa41c":"9cb49357536ebe087e1475a5387907a9e51ad1550697f13c6cc04384ec8a67dea13376bdd5e26b815c84a78f921b506b9e2086de50f849185f05ba7c3041e49e42c0673df856da109a78b8e0ce918c25836f7e781e6b16168e4e5976d27ebc83f20b7bf4beadecb9b4f17a7a0d3a3db27fc65288a754b5031a2f5a1394801e6e":"66db7cc97b4a8266c0a2228e8028e38d8986e79fcbcc3caff3050fdd2de87b7ff7a6895b988b0bdb7fcc4d6e2d538dcfaad43ce2f98b6d32500f5a6e6183d84cb19157a699cdde1266d6d75a251ee1a2eb97bfe6405d50be2b17a58ba6eafaee0a023a28d568fd1c914f06041a49c79b9df9efe63d56883cbbbeaba809273d2e":"4d2ac05bfd4b59b15a6f70ea7cd0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1bfa30b315e7b908263330140fa2d66ed57104784a43cc70":"b7081a3010b524218390ba6dd460a1ec":"8c1f42b5931d69ae351fcde7d2b4136d4898a4fa8ba62d55cef721dadf19beaabf9d1900bdf2e58ee568b808684eecbf7aa3c890f65c54b967b94484be082193b2d8393007389abaa9debbb49d727a2ac16b4dab2c8f276840e9c65a47974d9b04f2e63adf38b6aad763f0d7cdb2c3d58691adde6e51e0a85093a4c4944f5bf2":"8eeee9865e23fa51dbbf197fa41776b7edbdb9381a22c935299cd959a46190788ae82f4e645b0362df89bfc00241964784bc7ef70f6f97e81687d52e552a33af20ae34a3005e0a7b85d094368d707c3c4cd3ef31c0daf3ccaa1676609ed199327f4139d0c120977e6babceed28896d2cb3129630f3ee135572dc39433057e26a":"4da85b8ec861dd8be54787bb83f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fc47156a693e59a1dea0618c41441fe669fc65dcfb7d0726":"ea1935ed014883cc427983d7962d9992":"0d85b8513becfe8c91d0f6ffb65ec31f2cf406c51c0da88893c43d1327fd8ad1f4bab2d7b5e27438d643397034a72f8666bf641b6781bc90f764db387eae6720b5723d510194570ccd773e1b3bebfc333cc099d078583e8dac60d174d332925a24a45110c8d2abe8924ea677ac74db66ea789e2838efc96c78bceaa6236c0a67":"3e4f0a586bad532a08c8863ebba01fd25014baa907e6032ee43d4a7dfc7c3171916dcdf9faee0531f27527872ae4e127b6b9aaee93f5e74d0ab23f3874aa0e291564bc97f17085dd7d5eb9a85d9f44574e5952929eda08863b64c85dd395c91b01fe5bef66e3fa8f9ee5bf62c25d80dc84fbe002ecfd218430b26f3549f734a1":"8781b045a509c4239b9f44624e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b5fcd780a03ba80341081ef96b440c0e4348afde4d60c1d5":"ad20cce056e74ec5d0a76d6280998f15":"28f8fcf23b9c1ba40c19ffc1092632e35f234c1e8b82bcd5309d37bf849a2ce401413d1f242cf255ed597f9a93a1d6e50676997f95aa612e580d88234a86ddc404292746f0b2f5cf15abebcea6659f998ec6a1cb5a9914fee5aa1aa5d04b3c20914e45095e4141ce9c173653dd91c3ebe4ed4a9a28f3915d7b2edba34c2a58d8":"6316f3beb32f6f3bf8f2ff6a2c160b432bafd3036d3eefa1e4ec204f24892e37dc4d75c7ce9a24b5c49fb4df901f35ef9d5955f7dc289c56cb74753f4d6b2982267d5269d12237e21202a65061849c65e90e6702dda03a35ace3a3a098d16b4bfbb85b7232404baee37776a9b51af6b3059a5f170f4ebe4ecf11061ca3c1f1f3":"2ad4520ddc3b907414d934cc1d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4382507dddccf1385fc831da8924147563416d0656e168ec":"a37687c9cd4bdc1ead4e6b8f78bee7f5":"fa9ae30509cbb6fe104c21480ae7b8ec9f12f1afb17320d77b77cdf32ce8c5a3f7f927e501118c7ccd6975b79225059cef530a4fcb0a9719f5e2d3bebe7bb6ec0855e495a31e5075eb50aa6c1227e48b03e3fdf780084ac4912eb3a5674cca9dd6ac037366b230ae631a8580d2d117942dee5d5ddbbb2233afeca53289cc4f68":"e5c5430b960aa35dc8540215c2772d66811270859e33dd4477904759e7e5eb2986a52a4ccc9f592e614147b5ea2ead6636a15c6426336b2995d9a31ab36d76578c3540bc6693842a4bc0491c7963ee9cda2317951cf93244bd30bcdfec69a4767004636fe7d1be7300c35e80627bab9236a075a803e9e1080b9159060c643a78":"4221818d4be45306e205813789":"":"b5b36719bc4d13a5fbf37188ea814cdf3c97a430784330540325c899570e15482300bc82c5b8163074e0544c5132e3ce93bba68bd7a8d2db81d1431b424b697c1158c4d70625666d5ff99145ca34856815c905b5a0fd95806df56b9cd5b384bda3e394b409048eb1037144cc071539c02397e931da28a43cc354d584643afd4f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7a66db3450dac9a1e63d2639f34c5c6a3fbfb3c8e8230199":"21f8341529b210ade7f2c6055e13007a":"1699bc8c198ab03e22d9bc4f3682aad335c6e35f3f616bb69769a9d5a202511797e770ae0d8d8528ef7b2bb25b4294d47427b43f0580fa71d93fdef667f4f4196f84e41c0b1978796d0de74a94420fb8571bff39137fa231c572b31be9ae72338288bef5f8c992121dc918538551f346e279a9047df14ec9fc0fd399cd3bd8d8":"6463a7eb2496379bc8a5635541525926a6f9fa718e338221952118ae4cf03a85f2074b4ebaf108b9c725809be1e6309c3a444b66f12286f6ea9d80c3413706b234b26372e8f00783819314a994c9e3ecf6abdd255cbfe01b3865e1390a35dcd2853a3d99ed992e82ec67ba245f088cb090adade74bdbc8a1bad0f06cbea766a6":"4af02b81b26104d1d31e295a":"":"53fe6a34d280f2c96d1ae2b2e8baf6abd67cedf7d214312f75dd4a1bec28a641dda3e71aa398726b2b0b1f515e1f4259ee97acaf17f122db9ec7814c2de6a88d36c3ac106396ad03d337c2cd2d2b9b4b7170e23a5848ca7ea129838f967dfdfe83b45ff2a9be699bfb2346115465d59f074f09e24d8fcbd9ece0018c92776c43":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1f5c818f24d201f9fb23fcca211b0545eee5c5c9b440810d":"3a163067bdd90fce0406d1c198a88771":"a5e94e233d04fe0c4b6c4684b386902fe05096702237dfbe76f73befa69b6f30394cf9fe3358997942df65842748fb4f075a3dc06e147bd8d67fc4371113a4d75c70219257c650a6f38a136659e20a1cf3a119397835c304e0fb2a33aa3c3019175c86463043d5edc6992874f61e81cd0d26af8b62cf8c8626901d4f16d84236":"9a7566817a06f792e96a6a2ba8e0a01f8837e2de06796e68b0782cc54ed0b04fc5e24a1ad37d5ffb035548b882d88150e89915b89f57cde2bf3c43ab9dae356927daef6bd61cc9edd5e1b7a4abea2f71313677f1b2fdf3d8d4a7e9814ea820fbc3e5c83947db961839a985a57ced7f5e4a1efffcfd17a2c806d4cdc1e79162da":"b124eea927e2a62a875494a1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9a301f7edf83da63bcf37216a3a33d7613331c3210281dd7":"d73a546b0fa307633ac89506fa86138b":"f57fe548cf4a551a216ffb24a1dcf1b79c95f9abf06443fd58af042d287c2165db373c82a94172db517840f22e45e966e3ead91ce1ddad132bcb844e406e84b76a0b5b0ee23064b66a229f32a2d3b9c71103f020c4ba57fc0f0608b7114914cf2ada0c5a9bc4afbfa9ce5da320f34beb2211d569a142f53bfd262f6d149c4350":"e09cc8543db7804870004706a26e94b457c125bd648b581a196f962f2ae8fa55d9bc66530ba5020e22d282080b4720dc9a2096a11c0fcc3d9a67cd1cf95cd7cd2417ba308c761e64be24347a14c9423447094a5c72a0043c288b35e753ba0aa748f208381249fb1c8d195a472192404b6c8172663ee4b4d4ecfa426e1fb003f2":"f536a3b8c333b1aa520d6440":"":"124a327a8c22b7652886dac2c84b8997ca8a6f61c9ba9c094b5aea41eaa050a6df6cbf280259e5466071bcfa53b4ebc76c3cc4afc8c0385189a5382933aa57c89aab78dca84331e0fe8f0aab3a7857d3e13f08dcd90ec5f0684f82088ef8eb7fd67e75de43b67afc3a0beb458f5ebd61b2c779e6c539d795c667bb7dcc2b762e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fd40e8226fd13cb95ba50b7cdf0f07f7ab7037cf8705ca50":"3406e70cbe16b047fedaa537eb892279":"390b18d22d5ecc0b5a524ae9afac6fd948ac72d1360775a88b385aa862cce8a27f3e4b420e539bec6e8958f8c1b5416c313fa0a16f921149a2bfeae29ad2348949b29a73970e5be925ec0c35218b82a020cf21bb68c6931f86b29e01b85500a73f3ee7eb78da60078f42550da83b2e301d151d69b273a050f89e57dfc4787cbf":"75aa7df5c3c443d48ee998064b6fd112c20d2d90c98e00d025ef08d1ad3595385be99de47fa627549b827c48bc79eb1dcaf2f1be95a45f7e55755b952aee5ae0748e68bee1b014a628f3f7dc88e0ebac1d1d00e268355f5101838ce125c57003aebc02a1c9d6ae2cd6e2592f52c0be38cef21a680ae35c909cab99dce9837aef":"69e06c72ead69501":"":"6e8d661cd320b1b39f8494836fcf738b0ab82873d3903c9ee34d74f618aea36099926b54c1589225ec9a9d48ca53657f10d9289c31f199c37c48fb9cbe1cda1e790aaeedf73871f66a3761625cca3c4f642bc4f254868f6b903e80ceeeb015569ace23376567d3712ad16d1289dc504f15d9b2751b23e7722b9e6d8e0827859f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a85ab87563b809b01725764d64ba4cc6a143e2e0362f0c52":"9f991ff16a3e3eb164a4f819c9f1821a":"df289511f78d8fa2505afc4c71ab1d7c31a8d15d1e5fcbb29d70f0e56f89c4d7b30f1b3b4745b5d2cc7af34fb4c95461372bf516ec192b400dc8fdb0ca9fe1f30f5320d0fadf20155cfcddcf09233c6f591c1c89917e38a003f56b94a1e2429d1f2b6297db790d7dce84d9fa13d2d86a0e4d100e154050b07178bee4cdf18126":"ef43629721b50bd3656b7ae31b6e4b4ba1cf2c72ed0460ee7d9fb416631ddc597e5f9aebbcf4442b95cc46e28476a464dd87caf9c1c1d6c99d3e3e059dc23f8d2fe155ff5e59c50d640bc052c62adee3aa1295b38732e3458f379e98a8dbdfed04c22a5761792e87fa67ecbcbf3b90eb1bcd1d3f49e60132452f28afece83e90":"dc4c97fe8cc53350":"":"ff0e531c7344f0425d62d5fbedf4bc8d3d5cc80647e67b852c1a58ad1516d376d954cb8dda739f6a4df3cf1507e59696610bcb6b34340d6313028e00d7197845d392e73331aaf168b474a67364d8f9dab740509fabf92af75045f0afabc1b5829264d138820952bbc484d1100d058a4de32b4ece82746b2b4a85fb2993d4add8":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f4f1e03abb927ffd0b081b9dce83a56a6dd419a6313ac34f":"d1e29bb51a3c4e871d15bb0cd86257e2":"ae2911cdaaad1194c5d7868b6d8f30287105df132eb0cecca14b6e23ec7ac39cc01da1c567a0219cca7b902cc2e825e30f9524a473eb6e1d4d1beff5ab4f29103b2c7522a33dd33182fa955c4f09a75196b1072a6f0340fc55a802d29c7067f05219c21857ebff89ada11f648c1f28dfbfdaab56028f05509de17e2381457ebc":"0e70421499bc4bcb3851afa34cdf5be374722815abdd9bcee5f332dbe890bdc1c0210ab10667e5bb924bf3c1120e25a0c074da620076f143940989e222086d1b34a1200d09aea1f810ef6de7d8520c65eef9539fde5a6422606c588fce6264e5f91f934ede6397c4b307d2d7e07a518fce577a427fa92923cbba637ae495afad":"44f760787f7bc3c0":"":"2199fa5051461b67581429ab19de2ccb50b8b02e12c0e1d81a8a14929f84e09d9715b7d198e77e632de4af1c08c5041276204a7ed76646385e288e96e1a4b0b0f2b1a9df7f0892beaea3cb58d9632720158f6daa4cbbfc0ebdc56ff6a5175768ff2abd24cb7669bc3fe40f8aba7869d2dd7dac86b6ebc4e4ce261edbec88db17":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"33efe20433c6a1ad261a1fed494961749e5bf9d35809b59d":"dc94673b0c49c6d3b4611e278212c748":"919f7397a6d03836423b7cac53177fcfbe457d4aa4348646f646aae1bc5a15568cdb8c96fabef278ace248aca531110a4f4f9e8ab0c32525ad816ae3facf03175232dc84addcd6065f9cc1f513966b63fd27e91a09f1921b95d6bd8f08f1dbce073bcf827847f774514b478b9d7fb5426847dd4dee6f39b5768c1fb729b32d03":"cfbeb61be50def25f513346498f75984bfe797a8ad56be34f2461e2d673f6ce14e7479a59777267b75dadc6b9522599ebe5d7b079495a58ca187ec47796f6ee8c322278ad7451b038c938928adcff6105a8ea3780aedc45b6a3323d3ae6fbce5da4fb59ca5ec0a16a70494c3c4859672348532505e44f915e0b9b8a296ef5225":"c5098340":"":"c5e47d8c60b04df1974b68a14095d9bc8429a413d21960b15bae4fd7356bf7872e0da0a1a385ca2982d3aa3182e63ea4bb8ca01410cd4e71ddad34aa1f12c1387902b3d56634f89c619a2e6756648ab3bf90e9bc945afc9140eb935b633bae96bb067e9ee421697bcf80b14b1b88dbf13e010b472a7ca5411db36848b9c7a37f":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3ed5dadefa0f6d14fedd1a3cdbab109f6660896a952ac5ab":"553a14f1e1619f9d7bd07cd823961f25":"eb8ea81d3e328a1113942cd5efd0f2b5e7f088791c8fc05690a34584101c4d493628ee7d0099a2865ac194b9124c3fb924de0c4428d0a1c26ea3ad9a0bc89187a16673e3b6f7e370dfb2dc26e8a56a9cf91f9c2088c020a766efe0d0c91689743a603f2cd1e300a6a84828b3b515a4b9a06e6bb20457bf124cd6ce4ac8b83d51":"aef617f69724e020309ec39d9587520efda68a8e303686c3a41ef700cba05b7c6e43e95aadb1a566f61650c87845835e789eb2366941e3bfef6d9846af0e0dbc43249117ad6f299bbc40669ac383cdf79289ada6ccd8ccfe329a0dc6a38eea1a99550457102d10f641cda50c21f533b1f981663f74a0a7c657c04d9fc6696ff4":"dc413c4c":"":"bc1f34991a48aabb0fea513f790f0d223e9feac4c99fa1e8427f01ab8b4b2827cfaf239342de36051a846af0306a3f82e7aed98dd0416fb078bc7f3b617b00ceb2cea4ddafc22dd022efa8303e9804510e0e888065d8427345156d823f796f74130c06db9f9934435552b4fefd051953e20ecba3a4514ac121d7d2097d597439":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6d97e8bff3923a778504fb917dbc1428a1328587047697d9":"0c28dc4cd53725091c2fb68a476c2e40":"f3932f5e82d75a1e3eba1591c17769e1a45819ccf057c31e76fa810b93678766d25905e859775c244e96bcafbc75c4a2d95e7d02868ccb2f65e49276f0b645ac8cf6e3758402304a3c25ce2de0a49f401b1acadaff8b57589b45cc79130ddc8387f41cc383e33ef38eec019152051c756198d6f782ccf56297b9fe944269a65a":"dc1a81efd51e967767f5bdd7e2e425732c1d28451f2bf5bdf3f5a6492279330594d360dd8a193e5dbde1be49bf143a35c38bcd059f762ada65c5119e097f0976891347f4d829b087bd72daa3494b344cbd3370c4459ca243bd57aeda4cb86cdd0bf274f07830cdbf5e5be4eb9b742ddffef8aa35626d2b9ea0a29d3c3d058b28":"e6d6df7a":"":"39327836e9d8cfb59397adcf045a85644c52c3563290795811f26350c8bce8f55ca779cbcd15479efd8144b8a39ef611153955c70bf3a7da9d4d944c2407a0d735784fcb68de1083eebf6940ebc9cf92f9f139c01404b503ff64e61126a94e881351473507884357040fd32714b872c254349071069644e2bd642905521b944e":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2c78e29971e90a01bb65973f81260b9344fa835751f5f142":"f1a23ce6e2bc9088a62c887abecd30ae":"":"":"d4d5c22f993c8c610145fcbe4e021687":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8c582d5b6a40ef0e4048ec20f0263572d7cc82704e380851":"ef221a1c66fda17906190b7c99ab60b8":"":"":"6327dcb46ffb3d0fd8fbf3d2848a8f01":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3a58abadd29e946e23ca9eb09af059913d5394971bda6a4f":"7c29b3196d44df78fa514a1967fcd3a6":"":"":"fc123944bbea6c5075a5f987aed9cf99":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"04bdde4c35c385783715d8a883640851b860ce0e8436ec19":"783f9a3c36b6d0c9fd57c15105316535":"":"":"23e21a803cac5237777014686564f2":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4ba5fba0c22fbe10c2d1690c5d99938522de9c5186721bac":"2acc2073089a34d4651eee39a262e8ae":"":"":"7ac742c859a02a543b50464c66dcf5":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f12890b0a8819faa5a8e0e487f7f064af42fa6d5519d009f":"c937615675738f4b3227c799833d1e61":"":"":"88300bd65b12dcb341f1f6d8a15584":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"51878f3630298a81297f4a21514fea637faa3815d4f26fae":"1f939226feab012dabfc2193637d15b1":"":"":"eed5fcb7607c038b354746d91c5b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ae596e74840a600556a06f97b13b89e38f67c152f1a1b930":"e2076e1050070d468659885ea77e88d0":"":"":"b4586bdbd4b6b899648f2333eee0":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fd33b7a0efae34339ca987b5eb8075385fd1276e63cc8530":"2d07bb8616fc0bbb71755a1bd256e7fb":"":"":"6b60d645220cfde42d88296ac193":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5685b12a6617d554c36b62af5b8ff2239cb3ffb1d2c40e14":"6c31194df99d08881fa5b1dd33b45a92":"":"":"69431593c376c9f8052bf10747":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"036ae037410dae9f0741608516d03b855c9c1851df8c54a4":"73599275f8237f14c4a52b283c07275d":"":"":"6f7249d25c9f273434c4720275":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ac144f39ebd6124bad85c9c7fb4f75bff389ece2e8085d83":"d0871bfc3693245be478e6a257c79efb":"":"":"5a99d59631d0e12f58b7b95ccd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a8a541ff11a1b8548e832d9e015edeccc94b87dadc156065":"c72bb300b624c27cded863eba56e7587":"":"":"ea2528e7439be2ed0a0d6b2a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"30dd8f400335e9c688e13cc0b1007bd21736a6d395d152e2":"28899601fa95f532b030f11bbeb87011":"":"":"35625638589bb7f6ccdb0222":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"cb8f672b04d706d7d4125d6830fff5d2ec069569bea050ce":"375d4134e8649367f4db9bdb07aa8594":"":"":"70610bf329683e15ecf8c79f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"bf71e5b1cd6eb363ecd89a4958675a1166c10749e1ff1f44":"9f502fb5ac90ff5f5616dd1fa837387d":"":"":"a4b5138122e1209d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5b9d1dfb2303b66848e363793bdca0e5ada8599cb2c09e24":"2ee96384dd29f8a4c4a6102549a026ab":"":"":"3b33a10189338c3b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a35ae271f70ebacb28173b37b921f5abcad1712a1cf5d5db":"8d97f354564d8185b57f7727626850a0":"":"":"813d2f98a760130c":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bdd0cb826d5d28c2ab9777d5a0c1558e7c8227c53ed4c4f":"daf13501a47ee73c0197d8b774eec399":"":"":"a6d108c0":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"81b4d5ee4e1cbee1d8966fb3946409e6e64319a4b83231f5":"bc2f9320d6b62eea29ebc9cf7fc9f04a":"":"":"a47cdadd":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"5813627d26d568dfe5a0f8184cf561fe455eb98b98841fe0":"817199254a912880405c9729d75ed391":"":"":"d81d9b41":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"94f160e2325da2330fbe4e15910d33c2014f01ace58e5b24":"80a1b99750980bf2be84a17032fc2721":"066fdd980cf043a732403ee5f65c82ca81e3fc858ad3cfa343014a8426fd3806770f127e2041efb42e31506ce83390ac5d76de2fe1806df24ce6e4bb894972a107ef99e51e4acfb0e325ab053f9824514b5941ab1ec598fbb57a5d18ed34d72992a19215d914e34ad1a22326e493d1ff2da7bc271c96ad3ab66d0c32bd711293":"":"dd153cfd7aa946280660c445f586fa28":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4785846f7c0524e78f3eb137fd433e1808af64549af69183":"5334476a5fa3fa50dcc4b12f8ac00b51":"e70f82d1e3361ac5a5c9a087e47984d5533ba296f9b7e4a192a4ab28a833cdbbd5cece3415cf6fbb2f8055560b5c31c98d83d139954e1c03a464739f1eb5ad982c4371cf20b8984bbd97d5f40b336f5e96df3d272b95f7547be15c3bc05b3caac7d08c5eb5de8bdd246e74f6caa6bff76ea0417730ce72b911867f88fdcf73a0":"":"c59231ddaae98e0e8db6b3fe8f4d3427":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"49b085fe1a8e1ae769ed09fc585d29eb24d589689992e6c5":"899878b0684fb865d30190821817b88c":"f789eafe3d02826b619ca4fbca7bb1919e5c6f7c33824a2f7f815dc50e329979705f7ef61e9adf7899d34f1b8840384ff62ef6d29eea38c45d12be9249aca69a02222cd744d81958c6816304ff0d81d6714a2023b3dd9d940db5c50afd89c52774d28d6afde2b6c68425b6acbe34682531a2e57e2b9a7729b3e8d96a729b15cc":"":"2c84bf7a8947ab93b10ae408243b4993":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"75847588760ecb6ca548747b743914c89fea367a5ccb81b6":"7d8a9fd254e2061c01e39eb574951924":"b03c57dfd49152401a225357f1d6e533f3a423e5cfce07b8ae7ca9daf68645e5bd67b3ca2421eac447530b27c6dc6bd9c7f1b22441b8cc8c4ac26cec2c9c0d665a35b66d779a3772d714f802d6b6272984808d0740344b6abdb63e626ef4e1ab0469da521c7908b2c95a0fd07437c0e9d4d2451ae189ad61ff19f4efb405127c":"":"e8aac14b53cdbc2028d330fc8d92a7":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e3a18a96d2e45d2f60780dc39cee7160e28cb810bf09858c":"26a4d659665ded39b7a1583de756d0ad":"83f8d9c58169b4c68032321197077ff5c8ee4ebb732b040748e1b55dcf53375ae86fb9646a672b5c5bc805a92c475cbb6d0ed689a58abdf2230250a7d3fbd8cfab07835fa85e738a7f74bc3e93616d844b1ec61b79f23dfea62e1815f295d43f61d7b5956103b31ca88afb0b3d37eb42cf77232dbf2258065232971c397dcbcb":"":"dc034564d4be7de243ff059b5f9160":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7be3909170ea7a2ff76f9f28241d8cc48ddeafa8517c6f8c":"8dee7e29350c60c5bcfec89da6617d2e":"f6e9e7a7f9716760eb43060d5c80236a0f118b0f750ebd5df01fd2dba95c556ecd2e54a3f337767321abf569c8137a8e48c5b44037ba62951e9f9f709e6e4540a36d769f3945d01a20a2ed1891c415a16d95cab7ddf9bcebf18842c830067509a2a5d49a9684324c433d53824d2f8fd326b149af17f40e5bf5e49185738fba60":"":"942b52277e9dc0a30d737d00f5e597":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1fe413bafc4753e1511b580c830449bee56e0e5b9acb852c":"e30829f64f3eda13bfb2ac572aceb3de":"6c772d08b4d7507e35804572fa697c646c77301954cc5c160941e49e230697ed8c23338b9f30c3ead69b1c1a2329ff025dcd3c0d0a9cc83fee4979448aa71ddb9d569bedc8c497a2a4ac3b60d087d7872f0a110bf90493ae7da03b0953734223156cd2d6c562e4a978a6dd5cdb229dd58dd4d0f50ac015f2f5e89dac4aa29a19":"":"87737873b82586bb29b406946cae":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b4bc4378d423931f9b320bb57df584c641406c1daa7448ad":"eca70e10c0358838a3f4a45c4b016ccd":"68d1c045c1604e3c3dd4f7c7543240aca8dbc5266dc18c5a8071e8b09e3700b7cf819044b2722d8db92021f42a0afb295d7b16ecf4e4704a50a527a2e72d7f53617c358e3b7be3d7fecda612ce6842fcfaa68f2d1b8a59d8b8391779f2fab99f820862c94029f444abe62367c5de0a4becc359660e4a5366f7d482bdc362b866":"":"06f95ca69c222a8985887925b15e":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1cd4414ffd24e830e2dc49727efa592e430a6a75391cf111":"a08e32ad7d63f975de314ad2c0fa13fc":"20a271f1f4c6bea8f1584ab39a7179ec448650e2ff67a7338d1bc9fab7f73b2ce5222cd07ded947d135d9d0670dc368f0a4b50ece85cbf641877f9fe0ac6a7e6afb32fdb1b3cd35360bb80cfffc34cfb94dbcbee9ca5be98a0ca846394a135860fba57c6f0125dcb9fb8b61be681ada31a997638ee172525c03dd13171534a91":"":"c68842cafc50070799f7c8acd62a":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9e0ef9ed5e6f00a721a9893e1f0d9079c5aa667a4cdd2a52":"5f015fd556e87ff0d0df586fb452306d":"b82986135e49e03f6f8f3ce4048ded2e63ee0c31ddc84929e022ee8561159179b3bb4403ebdafdf6beae51ac5bf4abed4dbc251433417ece3228b260eca5134e5390cba49a0b6fcbbbabb085378374e4e671d9ba265298e9864bfce256884247c36f9bddceb79b6a3e700cb3dd40088ba7bb6ab6aa11b6be261a7e5348f4a7d1":"":"ec9a79a88a164e1a6253d8312e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"9bc8f15d98e089d60d4db00808700053f78b33c31652c3e4":"5cc0ff9bb7d5b9b2aa06f6ecf669d5bb":"24ac95a6ed2f78853f9ab20f53de47e7f662f72aea454141e2131aace7ed2daeb395bbccdbf004e23ce04ad85909f30151b6526c1ce7934726f99997bbab27055b379e5e43b80ad546e2d1655d1adad4cbe51282643bb4df086deb1b48c1bd3ac3b53c4a406be2687174028ecf7e7976e5c7a11c9a3827813ade32baef9f15ec":"":"9779b7c3ece6c23d5813e243ec":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"19afc43a4481f796d77561f80b5b2e1514c96c5d1d86e64c":"d4c06595fefd4a81bbbd4b40c2e1989d":"98fcca51352998d0126b5539e3fb9a238ac31c05954fc206d381909aee70983b6ab99d3f3efe8530a1c3cfe3b62756321b1d0771a5940055eba1e71fa64f29291aa5e5b0af0fcc8e6f5a02688d9e93417225eded791a35217822ffb346d3fa2809b65abe729448316be30cf661137d3c0e49846cb0df598d90eda545afb64a5e":"":"ca82448429106009094c21d70b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b4fc31dcfef6203fdb296cc928c13b7df56bfe6f32583057":"6308a78dc8f3c90442dc52196649c38e":"2567d80c253b080c0158102558551445d8ce4d5ddee2014a2be5cbad62e1717a0fd4d2059447c3151192951eb11a4a7b19a952f6ba261c87f10f4c9032028de3cc5a2a573a4e993a690fc8954daa3ec92743e7343e75b646c4fa9cbc3fceb4f5d59bb439c23754c4d9666fbc16c90c0cac91679b6ad1bfe5dcf6bd1a8a67c6b5":"":"9d1603799e2485a03e7b05a0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"1c2d9412486c381440213e1588b6bb58b0da53300b9d3089":"727ed8846daab874d5a9918b47d016f4":"656430f0c1423018b5e2efbb1e32a5385c1a9a1779c4dbd585dea91edc39ea8752ebfc2d8064251a8a5ae71e1845f24a7e42c6371c2ecb31e2229d5f4923bffc21d4804575a84836f3cf90ec6047bb360b558a41a975ece111b5284dfa2441705a6df54fc66ca6cc1af9163ecc46902fac337d5f67f563fde8e8e7e64b8588b7":"":"05ee6ce13711535864674a5b":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"abf7a97569427225a4bd5143c716a22e62f84c145bb51511":"e255088cdfe8ae5c9fea86d74d2f1b7d":"b850993300f54d078f83ceb9aef7345bbf758f92365b6625c210f61dad4f2a2319f51d883a383a706392d3dfca1706eba585a6fac8bd4294c0bb2cb3f6b454d5c97819e8e5c926754840261b07ec4ef1f87cf281d75c187839689944230306e1903047915e086043990745864819ad713d34a244aa4e9d755fdb137105d7eed8":"":"0c9c17388d0610f99d0a093f":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"45a6df655e88bc880acff41520aafd0cc8aa8aeb8952fd06":"1125e1de94970c9e7be70e58e7626ef4":"fe9838a445b8edef19b3e9f33c8c0c265b3a12c97b8ec57ceb94f65ae5227177de38f1e338dccb2b24e5bd0f0eb8127f83eba0f1ddfa55198789df0cdd1d977fcb985ad9c7d51b96e749d2cf3cc7a1ec4dfcbc641a1a022d55def328e081af890a7e699f2dbafdf506389e045aa1219239d5868ba675a3925602b6fb6f6e6d37":"":"1c3bd1e0d4918e36":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"279f4f2ab4b70778fdb9ca7800cd20e323601d7aa2c75366":"0f7b402560735cf03d5da58de5b6c685":"7dd9a8c848bbcf5127161c8a419a436a0dad559f7c1613cdf41594e177016acb1ccf44be852185c42e7120902a42efe83855995ab52cf5c190d499fcfd698c671fd72949dc3ea7ddb874e586a3aa455a021cec7b5f8608462ca66f926aba76e60a5846d4eb204155cd3c1328da51ba35c3007b8bb394f34e3a8b81ddd2ea1115":"":"dab612351f75e2cb":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6716ab937755684af7403e6fba5452c1b11568a9047bb50f":"2fd5a446dd564619ef75b6e00905ffe0":"20d261d3192996c21da69e979c26f5f937e6ea4cb7b05c6ef556ce4d86ca0fe85ec2425d274c43b5212fe9d27bb48b04e887461a9f45f524059b87eaea2e287a8d4537f338b0212012a9d4b6610e8c97dd554e0b3c3133e05c14d0ddab3524c93fd527e223b1996b4cff0a4a7438f1d54890bf573cd803941b69e5fc6212c5d2":"":"f1d743b7e1b73af5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"7dc94b5bbd6315ad8d2b67f0c683d10cf456f822a3ebb024":"6f3eedeb57dcf12bfb3cd80849893c90":"ee1ff367f4b23c156e3dccff84ae4bf2b8ecec1fb5ffd25ccaa93b6c6834389bd79655bd4bac75238eb0f65d3603ecc57c8774798309e85b6677e78ed2077b712cf28795d0dc8fee994f97373a82338ef67c62378136a79a990ecbcd6367445e805efa98f9168826e57cb8dd7e7b1d5c89ad98358646fa56dd2a71c40e0275a1":"":"4dc74971":"":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3bbe223e253bf272599e28af6861013ecd0c88710947ed41":"4fbf09ffaffb600f0de38fb12315cab5":"5388146f6479f7b3b280f45655a95b847ee27c734fb2fd91f6c009b1ab1810c772c7435d3221069f9490d251b76e740147906ac1db1c209c175b21aa10881c44fb307d4d2900aa3b1d56fb0edb9f2a58505653a17fee350e12755b9656bc65c78c1593d5cb7178e29f82209caf53e60fddf725f6957cc9718bf410c4a0229ed4":"":"fb845ab7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"461877813acfe6e9979eab729b52e3d192b3236758bb6563":"6985cf77b75a47a3978dd6412d59200b":"385551854a89ab37063ba0ed911501b3d632153c5c2992e154c0a334bc36620476f11495437b842409e0954f7352cbf288d158bdbbaf72621ea2ce75b708bc276f796c5aa7fd0071e522c5f175a9e7787deef79f6362101aa3607b4588f2e1df7127f617c6073593a1c792b959e201e4a7a43ea8b1c3af026376439ef629266c":"":"c840d994":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"09770f9114120a2c1c3cc416fe0eb8699e07141158a5bdff":"cff291d2364fc06a3a89e867b0e67e56":"":"875e2e5b5c02e0a33e71b678aa29c15ce18ec259cf4b41874893ed3112daa56ff2a7475681b8b3d9028ef184d30658e881c908f3588f69899962074db4ddfc0597f8debb66c8388a1bccf0ffe2cf9f078dc1c93f8191f920754442ad4a325985c62de1a57a25de4e9ed5c2fd0f2c8af33f3b140bac12bf60fdb33e0ec557955b":"81f1eb568d0af29680518df7378ba3e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4fbf1c785c087ad06b43d4163cf9b9396deffd3712856379":"1c8f41424acaf009996ceaa815b24ad4":"":"96a690e5319c94d94923988025307e543f16fd970aec24524cf9808dc62b093359287251503f4231bf52cd1a16a80bfa82d8f585d96855dc1932f4919a92da2618d6448fc18a234f9acb386ab4ab4a9e38ea341e7c54faceff38c162d74e7fabbca13aadb71e9c8ae6072e7bef4073cf08aa7faaa6d639f98d15bad4ed183ced":"9f3c0349c5a4a740a82d6d63bf00fb17":"":"6100b091e52366fb422251d9b68974b6c666a62a8bb77a1ffd7c7d1ae586a6ee763b84dc11aace02a25af91d194b70b3265ec46872fded54275b7ddb26ee1f20c857328f46a694fb1dce68bcaecbd587ece5b505d658d57d50333e30b639eea1f6537b37c175f62497c6c84e3cfddae214285d2d68d90dd5cd8ce2273d25c8ca":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3e0ce4fb4fe4bb2fdf97b23084ff5671b9b899624184acef":"a950ab0dd84115e3829ab0ad3bbb1193":"":"df89974b1534f0ba262bbea5efe39d8b72820cc8a720cc99520fedbf667515c3f6d8c3e25c72c48c1cff042171df58421741aacb2a49f23167257be7d7004d56b14901b2075eaca85946e9fbf1bbf4ae98227efc62bf255a25dd0402d37c67ba553531c699dd89ff797e7a5b5b9a9aa51e73ca2dacfda0f814152aa8ed8c79f9":"25cfde73e7a29115828dfe1617f8b53e":"":"847b54e176ccc83081cb966efc4b4a3bf7809ce0b4885009f620f61fafcaa78feee91a835ae6c1a942571811108b1e81b4c4ddac46aaff599c14988c9a1fb9f387ab7f1357b581568b7b34e167ac2c8c2b2b8a4df3fd7ad8947a363c1c0cb782ec54b1901e928821cf319669dd77eb37b15c67f13ad787ff74312812731ca3e6":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6be3c66b20e5e66ababbfba1b38e5a716eafce23a1767b69":"3a2acf69bba19f5d1d1947af2cfda781":"":"de1cd978354a499415176f260021abe0a8c5bc34d166f53d20e02e413e1377ce4ef5d7f58337c62251a3b4ddea0dea23c40e5de037fd5dd8a558eb53bffa4e8ce94899afa8284afab503c1a485999a154d23777f9d8a031b7ad5c6d23d6abbe3b775c77876ad50f6bed14ac0b2b88fb19c438e4b7eb03f7d4d3fcca90dd01260":"f826d212f7c1212fb8a8bf23996826":"":"fd1f7b56e5664cf4c91e58f7c50f6c5e98e42ca2e4adcc00348cee6f662b382ad4022da54a47d8faeb9b76a24dfc4f493c27fc0bc421a4648fad7b14b0df95d8752013feb033b1fd971daa2c9a5df898bece6a3b8fa078dd130071df20a68cd0f394be25dcbb3e85bdfa0df4797fa6f01f5f0da7a6e86320207ddb5b3be53ae0":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"d16abb9f5b38d7f5abba9dc36995ce6ce928ed822a07b7c4":"3cd95429c6de1d327b9eb3c45424a87c":"":"e72f29b1fc1dbfc2d93a0f3b79ea4b9806ce9b2c4d490ac5c0c3c793df9dc7df5471e834b84d18afa5a7516f9a6a813a9b65ae2f083a854730547e28a1f60fe97d8dba1d2d433e11847b9bffd8873ec634e64365530c905dd6f274e45c9795ac127a6f356f63cc6c116c5dd8c628e7e17e1fadc58f8452bf21f53c4133198118":"13521236f190f78e75c0897c5fb237":"":"cd8bb97c28df092b6783ef653fd26f2bdc27c442bab0a4c7bee2789f389dcd1b280c0231672721bfbbc939a0449557678ec61ba0afb2e5817e6f7d94387f84ecafbfa1216d65e7f5025f47b0d2905cff7c99adf8306a3d9850c5908be05f87cb1d36a4837dba428aac97d7fbc18e3778f8d81a319259504c87fc94bd0766ed93":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"0bc344b1a4078807e5f53a6e7e1e36fa83108473ae2fb4c2":"bd505fcba464e6e2c58fdf29f5695fb9":"":"8bd73f94c71e3765bc7d17fdc90a9ba6aff9648b46300e4048985fbbd7c60c39c3766f7c524780bfc2296dc11e1132134921760a373104edc376eab6e91e9a60a5c4a5972935df12eadae074722bdc0147c3caf6a62fd449ef37d76b65f6d210283c94ac524cf13186e444d80a70b01e4373cc0462546f1caee6b49e738a742c":"8510fff71bb879f56ea2fe43f6ff50":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c8097398fc21f93eea6a95aa93a3231096817b65520bc549":"776248381941e16908f52d19207881f5":"":"80b0abbaebbd537a0810ed75cd172d29d50f5982e4d01f8664ddb2dfda8f57fa0ed87e64a779a1d7f5e568b6acfdc739572a7176752307b430fb1fa1c3c2c346477cebe7d01b16745ca6c8929a7f446c03ad9a9e8a5a935de78ca6c701e8c1c5e6d2550c42949cf5342fb5ef4c6ab9bb02ace8388b16edf72a1237e5d1d0e820":"7fc4388b2f8eab0f0c2d6a08527e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"76d4bb5694faaf344db83bc6d6c47d56bb6ab52700826f2d":"603977845d82faccb401817ecce6e2fe":"":"9e31fda6a171f0d4a5f2af2c4f827b1312d9dda5d78fa329b8f1b6373b9b29be358601e5bb0d0c615aef4b9e441c811219f1f2ff2d0ab23e0cd829a88b5b615ee72e5e3ea604fa26cc6438ec4c30e90f7348e9116adf8e8efb7498320d2da16679fa546b1aa9afc7720b074c4e48e06862d41428c9e71a4772c2e195a6f36978":"c955a3bc316841be07e406d289c8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a3e5020695587984074d78d9c98b8e1a5719e5f88372740e":"4cd56de54e5140a587be7dfd02d3a39e":"":"c0bfe3b2dc4dad17ec5a7662d86847fb67e582cc0baf469bc9baa7a075d48a8b97521a1072c2798bfbdae5ca3752eda1cb96fe5cf24af989eb77a2948aae3d8b70d83d93f84c49347f788480f34051621c358c03cf8159a70fc72cb8bc02876234ffe76b181da8b22b8796c87b0904da1af46de519c20d8d1b1dc7cc24e39ba5":"1a29527a41330259f918d99d7509":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"afe986ead799727063958e2ce13ca846f76c51605439f839":"f85a95ed10b69623162ab68d1098de94":"":"7c1b354a5bb214bd95147e32d81e658705089c38035d0ea423eb1a5c82f97443c6903d2cf1ba7a007eec7c8ff98b8f82b073d9636a79bd47c7f2f639a8eb4e92076f9ed615766f43ac3a4f1687301ed7d507766605e0e332880ae740ab72e861a2cb6dce1df1ff8be1873d25845ee7c665e712c5bbe029a1788634bce122836c":"3cf1cdb4a4fdc48da78a8b4e81":"":"a7f252ad7983e7083260598051bffd83f40f4d4a8b580cc2388d720a0979dde71549ddcb86b0a62c4964fca591d0982f3a203f2f8884ff4991f17e20f759ea7125ba2bb4d993722f23938994eb2709c850f33ed9889e5a3966f9d7b76add46aedf230e8f417425f9db79ccd46b5660361de7c5d87f71a9d82c491c0c3daaf56c":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2cfaa215841826a977ae6adfdd993346210c49dd04d5d493":"537a4ee307af3072e745570aaaadce34":"":"e8eb3b6edd0ca4201b49a6a83036445aba1a1db040f3e74511363bce769760a9914e05a067f555ca15a57c6e02e66fbe4e04dd8c8db8d6d14ebc01cc7d84a20ff0aacb69bb3679d6b7d9d2e07deda7c2d4fe4c584fe1166e78d21dc56b9cdad93709c03b9145b887f87b4f605f24f989d5e0534fc71a58e8a8619ee99f69e5f5":"df01cffbd3978850e07328e6b8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"128ddc83d2170c403a517615056dceec0d19d6fd7632e738":"5124b410c43d875eca6ce298c45994a7":"":"cfe9f7797ee37bfc4f564419bf2268c964479efa7435970874154432930f3b2736438da4dc9c76200009651340e23044bc9d200a32acfd4df2e1b98b0bae3e9ff9d6e8181d926d2d03f89768edc35b963d341931ac57d2739b270ce254f042b64ceac4b75223b233602c9a4bdc925967b051440c28805d816abe76fc9d593f5a":"56ad9c1653f11a41fd649cccd8":"":"cf91f087fd7faf362caacf4a68cff51ec57b3075563e4ad0955df20b366e92bd75c3762cf4a6f0eb859872667a5c55aa5d94f5ac9479b1b9c9345b50f82379d551506a2ab02b0441b14b28b78a12b38500d703a8c19888fe612d4710eec7cd18c16d6a4b55d3c69760e2bed99efc8b551dbe2ac9b9b64715f87180b8e14d1795":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"98581c28983c4da321ce0c419cc0d476d539e77da513c894":"ff10234524433b871202c2cca6acb194":"":"bdef5b65b5111b29e781a6b71a0160179c52b5bccb1ac5c0377b26cf3f61432f3ccd67633a836357c24b5099db0510a7f8110f59e8227cacd11f17ea1798b5d4d68902ca6c6eccd319fef14545edd135078b38d43b61c9af269fc72f7a209ba7897e4c6dbd21bb71d7e93d2d2426ffa1557cae28e74059d3baf06ba419a47b39":"984943355a7aef15c4fb8033":"":"808e28bfd441cb8890416a757d252c986daa8d607ac9cadd2f4fd29eddbcf3b859ba298e14a4ccefe2c2752b123f87b98d6708fde48faca4bc7dd818a7ea76cfa4357932e59cb6be0e9283bdfb49454b86b9fd04aa8cdef503c65d13fcff42e9cd8f142f8c06cf7daa6d8ef8b9c9d69c39e8afd980048fecf731fd674b2a814b":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"167b8b6df8014c8f3de912b77f5a0c113580aa42d785298f":"49da91e926091a448d57d521cc90f3c0":"":"4f787de12ba907a589edf74c8e7a6cdaaabebddd465a86e170e1efc289240298b516fddc43c7fd9bb1c51720a4455db4dd630b59aebaa82bd578eb3cb19f8b23ee6897c1fefaef820430efa6eb7d6ff04de4d8b079605fb520b0d33e96c28f0cd71983c4ce76c0ea62fd7209d21ec7b416881d545824a73d1f9f8d3323fdb90c":"99198f55f9fa763651bba58e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"71f5f8505fba62f08fa0557dd5407fc83a852c6007ccecc8":"b5efb9feae3de41b5ce9aa75583b8d21":"":"3e19ec02365e450e946123a3362f9859352eb52902a6bcb8a782285dfac9d2b282f56302b60d6e9f53fddd16bbf04976cf4eb84ef3b6583e9dc2f805276a7b7340dec7abde4916fb94b0ed9c9af6d4917b27e44d25f3952d0444cd32a4a574e165a23fa8c93229ceb48345171a4f20d610b5be7d9e40dcf7209128f029fed6bf":"9604d031fa43dcd0853e641c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4cdb38f8185a4186fc983e58a776a6454b92ecf0bffefe98":"aef257dd44d14d0bc75f9311ef24e85a":"":"1ca72c50a093076e9a9dfa09888b9c89eb36a942072fc536a81713f05a2669b39fdb2871b82ca47dcaf18393ca81dcb499aafcc4ed57ea79f8d4f9bd63540610215b2c65481b294638cec41264a7fdca4230df5fe1e7e3d8d26dcd0c435fec8e9bf778f9e6f13482157a9722761601e08425f6160d3bb626ae39ee1117b0353c":"d951becb0d55f9fb":"":"2eaa7e922dbd8963e2078aae216636276f3f7cb5d7f35fa759e91bddb6e247a93c388241ba1d0d37040c0b9e447c67d35b4991c1acce97914f3bc22ee50171bc5922299983ee70af79303265bc1ae1e7334202460618b4a8891d1a7eaaac5cac1e4dce024ce662d14849993f89e771fb873644b552120fd346250df39aaaa403":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ee8d3aced3aa3cb2166aa66c4a252c12dc0978830d0bc75b":"c15c9c0b0b70c7321df044bfde2b15fb":"":"ee69b2421d43a9f383d99f9802ba4d6cf1c537b42041c86cce681049bb475e5098d4181f1902b0a49c202bf34ef70ea7b787fa685ab8f824fcc27282146d8158925bfef47ccba89aa81c0565eacb087b46b8706c9f886b7edf863701003051d6fb57e45e61d33412591ec818d016eec7dee4254636615a43dacb4f1e6ec35702":"c5c9851a6bf686d0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4a8538d609444e3197ab740cd33b66db1cf53600096b94e0":"0bd64d222532dae8ab63dc299355bf2a":"":"8c2b8fb775d1b21c41a3dcf48ad6d68ab05be3879f9b94b305a6ce4d799e3a992c1c3a65a3e4eab563edb57424927c90c76e49386e29dd5e7de2800fcc0eefbc8b4f977f71be3754c006ee93dc09b1cfa59c424b6b3987aeb56feefc21004c63e8284b6845e395bc8843cca0917267fb4a8f2db1f7daafe7a9da95083a44de70":"3477cad1fd4098b2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"447f0f065771b6129952e52206a64fe0844658ed685e39cd":"37e3a300542d9caf3975c6429cb8a2e8":"":"fea5d227869e527882c63a68a6623f4a699df82b3dc715c7260a5554336df8376744c05ae89ec27d40da02d9f1c5e9e29405579fd4132143cb21cdbe3edfaaab62128ecc28018725c8dd309d2376223d2e2edfea9765699b2630ff5d9fe9bec416c0ca6418b938d195d31a08e4034c49d79e3a249edd65f985230b33c444dd02":"06bfca29":"":"e1bdd1c212b159b87e41a5f64dcba6b27aa0f5c8871fabfb588df0e06bd7730ec1beb0e3388f96c992a573ff69b34870f83c53fb65b420c1c6f92e2aa6f03917e8203d77c7f5ee08baf9fab12f9d38fc0ffb83807ba781c3dd7b62edca2121f68ef230b42b8adbd4cea072209d02713789ed559b83739a54cfde69e68bdc4128":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f465e95f6fc19fe6968b98319b547104d0c01c17105f8fc0":"6cba4efc8d4840aa044a92d03d6b4d69":"":"2426f108368a00d2a49670a3b64b4f0569c6da9660163e7b209ec3f8d058ee11f7818a8c5030c5f4ce6e1e5a93faa3e5ae3d0bd5d712fbc891cfeb20845707edcf5e29719a5246a3b024fb12d37bd1b81df3812fd50b1dfb3e948ce546dd165cc77f903c07fe32bc7da7fbc25036679017317ce94cd8a00c1bce7379774f1714":"92750ac9":"":"2e59b104c1a6f6d651000396adbfa009bf4cf8cbf714da8e4d3b4a62bd7f522d614decf090c7552a4b9e8d7ee457ba642d5100c0c81c14cbba8c8ff49b12827f6ebd41504ccb6dfc97cdf8532d1f7f7e603c609efa72d2ae0dce036ec4ab36849a0c06f8737d9710075a1daaed3867ca0a7e22111c0e7afae91f553b6fd66c6e":1 AES-GCM NIST Validation PSA (AES-192,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f08e3e9f7b3a20ccdc4d98b56f2b567399a28a6b3908deab":"4f4636d1b283bfa72c82809eb4f12519":"":"a986e816f1eafb532c716a555cca1839a1b0523410134ea0426ab309520b339fc1fdeb40478ae76823cee4e03b8d3450e6be92d5ff17b2f78400f0176e6d6a3930bd076a7a3c87c3397dcc0520c6b7b4ff9059ea21e71c91912a74aac2ca70eec422b507cc5c60860bb8baca01eec2a3003970ba84011efe576804b2820e306c":"16c80a62":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"87b5372571fb244648053c99405999130f87a7c178052297":"a1cc81b87bd36affe3af50546e361c9e":"684ce23f59632308d7db14f7f6eddaf4d83271fb0c27401b09518a775b36252540f14305f0dae13ff6c0dc565c9e570759e070c8ac73dfb97abd3285689a7cdcfc941f6271be3b418740b42ba4a114421065a785be3dfa944c86af56da8209779e8736e62529c418b507c6d8ae002cbc0431747722afd64521734f99273de455":"ae078d1554fc6a14447a28c3dd753e790f7ef9b53e35c3e0fe63a7b1b326bc56034847f8a31c2d6358049aae990bfe7575b439db370aa515e225e0ec730488c700a7b0a96a7b8e4e8e4c6afec20decd16fe3c0f3f8d7a6cf7a8711d170829d14c706cceb00e133b8c65c8e08cd984b884662eddd2258ce629abf6b9dd28688c9":"98177b3428e64bc98631375905c0100f":"":"8be7df33a86b1162464af738de582a357d0ce8e213bba1b7913c0d13ad759d62c3bf4366f5130b3af2b255b7ad530b4977627f9e76b07e360c079d0f763dabbd22e976b98cd5495c6182f95bc963aad4b719446f49d3a448d11cac5bfcba4b675b8e4d88a389e2580e8f383f95bf85c72e698680d2a2bc993c9ee1ce0d1f1ac3":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a2d069b826455d5e79e65db4f1d2b6a29ae9f401bc623917":"6d40a0c7813bc0410ff73f19bb5d89c9":"9960376b1898618d98c327c1761959d045488cc6198238bbe72662f276d47b41e8aebc06dbce63da5adcb302a61ade140c72b9cf9f6dfad6ecedd7401c9509fae349d3c7debe35117776227ba167f2b75921d7321d79f4ebca13d20af1638a1567043365f179f4162795fe4fd80b5d832e4ca70e7bf9830bc272b82182f70d2e":"acd6225dc5b9109d56ea565ab38dd4db432a7ec08f0db04f1c6b691c96d2eaaa6be62da7cc7fd75f931716c7f39705ea7cf828f1a5a325955e9b2c77e7fb2d562be6a89b3351b1b3d1355b43b73ed425049430314c16bf0836ed580e9390a3b8e2a652fddbfa939ca4c3c99765b09db7f30bf2ef88e1aa030e68958722cb0da3":"010195091d4e1684029e58439039d91e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f3252351fe8e7c628c418c1a49709bf1f8e20add82539948":"eacd2b1c3cf01bf4ea7582d8ee2675d5":"141cb39a2fb8e735e0c97207f1b618a4b98f6b9bf8c44a1c8e9ea575a7759cc2a02301274553e7744408b2c577b4c8c2a00e18f8717fd8a6d2f46a44eeb05d685fbef7edeb4229e7ea9b8e419ffcb504d33583b3ae421c84caeca9f9789047dd7b1810318d3765307233567bc40e003401c9f4e1b07a2a7162889e1a092aedc1":"7e8d2816d280c91d232bad43b6610e2d0532a9f670f221a3a975fb16472c2e83b168115e87a487bcd14b37f075e1faa59c42515c353cdefc728ac617b7d273fa96778e3fb5f7a1132f8e2add4a57015b15d1984338b7862356243d1c5aa628406f4a507498eda12d2f652c55e8e58113ed828783b82505790654f036b610f89a":"63a310b4f43b421a863fb00fafd7eac4":"":"699c146927ae29025e5b20088b20af27bc75449e4725ee6b7d5dc60b44ba8a06f7d265330c16060fbd6def244630d056c82676be2dc85d891c63d005804085c93ce88f3f57c2d2c0371c31027d0a4a0031e3f473cb373db63d4ff8f65be9ebe74045de813a4e6c688110d000f6b12406881c08085c9348e1f0315038907e33f7":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"e462957f2c500bf2d6bfa9af97938fdd8930e360ea4175e7":"b380584a3f4e0e59add4753c282f2cf7":"682b0af6592eef173e559407e7f56574c069251b92092570cbb7f5a2f05e88bed0af48dcda45b2930b1ee7d5da78dc43ec3598a38593df7c548058eda3c9275c1304489aff95f33a6cd79e724e8d12ca0ae92b20273eb3736efcd50dc49e803ad631dcbf64376a45a687eb4e417aef08a3f5f8230d3f0b266ea732c21ed2eed7":"82a7a6dd82a5ea3d9a8e9541d854978487eda298b483df02b45c76b8b38bac98ffd969dd160a2765595b19d4ea3e64351ce95764a903f595dd673d13facf5a5594e01be1d60a0c6d28b866a1f93a63a74fecb6d73ac6fb26b20c008b93db53e9dc1d3e3902359fd47734fe22a5c6958f97e9001cc4e8b6484d9542dbbdfcfcdc":"28a43253d8b37795433140641e9ffd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"4a62ddd87f41c6df756e8da0985dcd8c91e73ba395b3d79b":"1d1843e2118772d76a0244a2c33c60bd":"028b92727b75b14cb8dfeb7a86a7fec50cd5de46aa4a34645754918b8606819d4bf8a2e7531a05ae5505492ca6cbc8c0e6d6ab2dea23bff1fdf581bb780b4a3312aa39639383fd10bcf92489801954733f16b021c2e84809345216f8f28a99773341e40c4a64305a2098eaa39f26a93bd556c97f02090e1a6c181a4e13e17d3a":"37a83ee6dbdece212446739ea353cb957b9aa409c88bee042bbc3a6e5199aeb28f2b4b00ff433c0c68d6db5a197566019db8a4c7a792e2839a19a302ee02bee046adce04c1fbbd5b0c457d7cbe277992ce2c153d132269e2d1f12b084cf3026a202b4664bc9d11832e9b99c7cc5035dcfde5991dd41aeb4fbf8bec5126a9f524":"ab738073228bdf1e8fd4430b5c7d79":"":"e702f1bb9a1f395c74fca0ce9cdf29e7332c14acaca45200cd432a5767be38929ef8de43d0e1a5e7300c1eb669ac1ab997b31cb1403af8451e77e63505920af0f8c3abf5a9450ea47371039ba1cf2d65a14fa5f013b7ce1d175859404dcf6461a36e8bc260e7abf739d8951ddf1a3754e2d65e0aa31320a5ffca822023bc0906":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fc46976d38a581a7042a94ea4b5bfe3587ddc65d1162d71e":"b5e92563dd0339df00b7ffa2239d21bc":"7b6f6e104acbcd7188161477d8e425ff99add22df4d22de7f28d0a0075ca4ef848f68d07ed22d3165c08e40890ce04d1bd05b1a6ccb2fec8193d5f7dffc93d97a0c036b3748f708b011b68247a0249b9e1a60b652164e5c2fd7210377de804ac010c8aa08a11f40af97e8370a59f936cd14c22ea7a236d904145adc04a241fc0":"4b9e858fc8f01903e426112192d4ae4686b1ae4d683b75afb2b8c63590275943d0d6d6a23b6d35796a2f101203acba107474ca6f4ff6dd87d6b77785ad1d160ef2755d84092dc70c86db5e639b689943b15efa646aff44b3f51f5d3f4cf6c8f7fc5adfe7bf2d72f75b93b8ee94ef3fa69ea0fc0bb77b3983901fdcd30bcd36f5":"d4356cb417953b01f7b1110c8aa3eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"403e49feadd4db763652ed5c4b1e12680cfe0abc30f4696d":"1a60258a56e15f92814b4d372255a80d":"a4ffa9e3c612103224c86515dad4343cbca7a7daf277f5828670834f4d9af67b9a935c71b2130dfbc929c4409bffb7974ffa87523b58890770439c33342880b33319c626bf776c1c0aeb9c2a348a7681572f4ff711d94c192f3450e8b1275f9d02c742a2c9f1da316e9918bf787f22699172986cb9b10fc56d5f6b8392ff92b8":"221c61d769febce3913bfead9a201a805f11005ddcac185cbae00ce749de9c4362889b1b0d9546e91598e0ddedb88b673a90acca65d7e71a85636be052f361839a646dc8b834c02f3e2261d370e6bac9636b7536225b5ea77881200c8a3450d21bfd1e11afb3a470e178ecfe944a25a7cd0254e04a42b67723aac8afffd56fee":"62646fc8bfe38b3ba6d62f9011e3":"":"5c76c90dea7d659804ad873960906259fbdda3614277ec575d9eec730e747a2e7b9df6716b4c38d3451e319eeecee74d1f4918266fc9239de87080f1ad437b47c6904ed2d5514161ad25e3e237655e00e53fe18d452576580e89b2f1f0f6aa7e40a337fd8c48d690fe013a67264a80e9b5dfd009a9152d559aa02a68f401a09b":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"c3471259512d1f03ce44c1ddac186e9a56c1434a6ac567c6":"50164c63d466148ab371376d5c2b6b72":"11d1f523888bea1fbc680d34bc9b66957d651efa59e788db3d3f6f50e72184b9d14e9ff9bc05fb687520cf423d681812e007025eedf0e78e7e8191e6b62404e8eb400cf837d762a31aa248553367263d6de091fcf7abedc3e69fc118b7efb0594c89b96c387b7c28ed9a7b75db60b6b5133949b891ff81eca5790a265f12a58c":"dd5b98b3b3cf03fb92be579068a885afd984630692eb5f155fa6b49f2b1690b803d34b90e8de3cc39c2e61650ffffb51e7ef36d35ad17dc4d91f336363b0734996b162b509c9954cab3dd959bde7e437e9100d84c44104c61e29dbe12492a0272ce6eea2906d390de7808d337e8c650b3301af04a9ed52ab9ea208f3c7439d6c":"6c5f38232e8a43871ab72a3419ad":"":"50438ee712720abf2089331e4c058b30c30c3d17834c507c0010ac3f974a256d01b14a45e9ce5193c5cede41330cf31e1a07a1f5e3ceca515cc971bfda0fbe0b823450efc30563e8ed941b0350f146ec75cd31a2c7e1e469c2dd860c0fd5b286219018d4fbacda164a40d2980aa3a27aa95f8b8e2cd8e2f5f20d79a22c3ff028":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ec326a1e0fe6a99421398df4fc7d8fea67b67e5f5fcd50ad":"c94aa4baa840a044dbd5942787a0c951":"f8401c578f20d9c250ea86eb945184e007a0190462c7abddf238ce1ceddcc230756aa222386d8ba66ebbba13de008ced140896ac55bc47c231cc81370ca9feadc225e017d59890e6291cc4cca27db3078c0cd6cbb51afb62210226a76837c5454728cb5ce3afe7352e7fe75421f94986e6b7b26321bbca15c75ac7c13dc15f50":"6d5016c434a0f4b4a5d9e0b6b8e2d848a94f132f055d2d847e54601a4c9cfc5966a654d696f8a3529a48a90b491ea0d31c08eae8ef364f71f8ec7ae7f7e39bb9c331137b2578362ff165628099944ba8deb0d99ac660d5ed2215b9a7626ff1fa6173cd8dd676c988d16c9cf750a0d793f584c3c8f5fd5d167bc278f4d77a629c":"3269922affb9d767f5abe041cc8e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"a7ef81652f604e88a72416924c53979dc73cadd3575eda1c":"0cc9ae54c9a85f3e9325c5f3658ab3b2":"d0195b744351aa25a57a99df9573dfa3cebe9850139149b64f7e4af37756a430dda8af98e4ed480e913aa82821c01c1f75b187e105a8f39621757d522c083a8d81d7d8bfe6cf15c439d0692b6affd655a11bcd2457046fae996a1075c66029867b88cd23c503ae04037dd41f27bafd5000d1f516002f9fcc0f2500e8c1b27de0":"9ecd19a8eba9fba843486e1bbfb8d9053c5e04b24e30174d4aa89d8307439d653f8630edddafd51719c744bcb4bce3e444847567bd2cdde2995870d0634cc0ba2bde4b6bc2bc583062fb83874a1c25b50aeb945bd109a151772c077438c4d1caaeb5b0c56390ac23c6d117f3a00fd616306fc2ffc4c1e76f934b30fbbc52eec2":"22c2efeddfd5d9cb528861c4eb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"605271a41e263c92dc14fe9df5203e79d58cc2d1289dc361":"7f128092a777fc503adc7f6b85eb2006":"aef9f984fb645e08d5f0aa07a31c114d2f8e9eca047e4a8d5471378cfc2ced1159dc093d174788e58447a854be58942ed9a3fd45f3f4a1af7351e087369a267797c525f134e79709097e733b9003b9be0c569fc70ee3462b815b6410e19954ce2efac121300c06fd9e00542a9c6a5a682fe1010c145acbbb8b82333bdb5ddfd9":"2bda3448a283ecba31e0299c0a9e44628cb2b41fa7b1a41107e107cabc381083bdbe048f2804568fdd5fe016f4d607f694042a459ba03a2deda4cccc8cbe4612d8ed0d4575e48bc9f59843369dbe2af6d048e65ff4250e1eef61d7b1b378fe2f3305b133ddc7e37d95ca6de89a971730fc80da943a767ff137707a8d8a24329c":"673afea592b2ce16bd058469f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"fa076f36cb678e2275561e9553ebdf397360e5a5e44791c4":"1ecd53d94fe287047ff184e8b9b71a26":"5ff25f7bac5f76f533f9edffdfd2b2991d7fc4cd5a0452a1031da6094cd498297fb2a05ae8db71cb3451e4ac33a01172619035a9621d2d54f812ef5343e14b9dedc93838e4cf30e223d215b4d2476ea961a17ac7295069f25b2a12d6e2efe76d91f45632c6d4e61ff19a95d5ae36af960d95050ce98b5791df0b7e322411c884":"513305e86c0cb046c5d3720b25a406392766bd1fb7de2758de370ff2e68281e211922890c61f3659460f22c45a57895b424441262a3ba0606df4e2701f38281fd3436a4d0e0f8efecd231808a9ea063dfb725015a91f27cadfe7909a0ee109eac391ac807afed1767ae0515b9c1b51ae9a48b38fe7fec7fe0ddee562c945e5ae":"079e8db9c3e6eddb0335b1cf64":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"ce9dafa0e7e53a8766fc0bc38fba807d04e14e5ed61bc234":"fd0751af49814ee98b2b0cdf730adaa6":"1cba488a0fc8a012f9a336cc7b01cbcc504178eeb08237dbedbc6c7ac68fdf3a6742751a207e43d43068abf6ef4e12a5e3c17e5a2f9398fc04ced67377cbb858fd6020fad675a880adb249e4aba94b96efa515d1cdf5c0c3071a27a3245968867ea94b2bfc2028a67be34c84c3f475944497aa8ca1ab009f8e4b11c8308c1996":"b585b8bf634757dac015f2f69f2ae674372a664f2115ad2d03bd3e0c335306b02d0947d3cda5991f5c0c25f12ead2c3cc2d65d575fd67091c70bc93ddb4b1e21f7b0fc6e6ae652dea93a6564ff13489f927942e64dd94bf8f821c7ffdef16df58bd8306a957821ac256da6f19c9d96e48eee87f88acb83bae05d693b70b9337b":"e5dc92f4ad4000e9b62fb637":"":"95f4324b0656bef19eca5570548fc6a7a9923f4e2a7e42066891bc132fd73bc1c9089755d996756de0072824e69c43f2db8ba2bf6f90d3c4eafc0721ceaccce1af896f9fb15fb19c4746979b6d945f593fad61d550f81d12b5945ed728c02931d7f8d917285c22a3af748d75a6bf163fddd84b941d8564c1a63192c816ad6d6d":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"8a328554fed68dc4838fbc89fd162c99ec105b36651abbc9":"e4f7c69a1d026eeebfc45e77bd7b3538":"e349dcedb0bfcc771c820f0d510b80cef32ae3326484e25aa183015941e7844bc46f617d5e61fd64fa71759e90fcb72ae220bcd507f0fb389b689dd3fa29b3b937eded85f26ada9e0f3f5109f82fef47c7eba7313049750ad17969e7550c0d4093ed18ee27843d082bcee8bf3fc7833d569b7723998595a5a1d871089fd238da":"75986f56972c045c850ed68aeb229f203b228fdfc36cad6b16d9bd12037c48700d20d8062a983ffeca76b8d36a67ef51bc8853706e83a34e4e23ff4f4a4eb943f19dbe85e454043d7906be6587a85079f9ccd27962d2905117d2dbeaf725d6ffe87bef52b2138da153ef29b18065b3342b3f9d07837d57b8bc5f2597de06c54f":"8e8320912fff628f47e92430":"":"a1ed65cfc7e1aeccd0531bce1dc749c7aa84451ec0f29856f12f22c4105888c7d62e2e2fc8ad7a62748610b16e57490f061ad063c88800037d7244ee59e109d445205280473390336d7b6089f3a78218447b1b2398c4d0b3aac8b57a35891ad60dc1b69ad75e2e86248ceac7bb4cf3caade4a896e5ee8c76893ef990f6f65266":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"6e7f6feb4022312de5c804ed1d7a37580d74499107f8cc8b":"6ce13485ffbc80567b02dd542344d7ef":"c6804a2bd8c34de14fe485c8b7caa2564adaf9fcbb754bd2cc1d88ba9183f13d110c762a3c5d2afc0fbc80aedcb91e45efe43d9320075420ee85ab22505f20e77fa4624b0387346c1bd944e9cd54055b5135c7fc92e85390ecf45a7091136b47e3d68d9076594cfad36c36047538e652178c375a2fe59a246a79784577860189":"4f5bbdf575ab8f778549f749f2265e17dc7225713e73ee6d7be163ff7071557dcc2240b0705c079008605f81396414ac64f06b1b637876e04c3fca8d0fa576cef4dd3dc553fd6808eaf120f837f9bb1d9dbbd5cf67ed497167fc7db89d3a84151b81aeab0e921057f121583df5ed7f976b206ece17a913f23485385f64c462a8":"974bd0c4a8cac1563a0e0ce0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"46d6e982feff0e7d04a84384c56739b69626dde500e4b7fb":"71a6d1e022a6bdff6460c674fb0cf048":"67a8455c7d3fbfdba3c5ec5f40e0be935fbb9417e805771832ffad06ba38a61b8377997af1f586dc0fa1e3da0b39facd520db1f0ec2bdf1904a3a897f0b507c901fab30a85de51effa9f7d4703ceeb2ca72abe0bd146ba0bd3ffdee11628310db7d65ea1343b018084ea2414995f86fefb45ba91a9dc2236d92078b4305671b5":"a5160fb2d397b55a7eba02df33a042404188f02f4492d46f4edc03fc67723d64f5f7fed3a60728438703c60454a30f473ac918ffc8f98be5c5e9779ee984415e415ce3c71f9acc3f808d215be58535d3144cebe7982b9b527edbe41446161094d6fc74dec2e0a1c644bbc2cf5779a22bd4117a7edb11d13e35e95feeb418d3f0":"84f1efd34ff84e83":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"991dcaa2e8fdad2b4e6e462a3c06c96067ef5e9fb133496a":"978913d2c822ba7cc758041d5ee46759":"5a94dc81af011a8af263318b60215b9752292b194b89f6fc013b0fe8e29133de631d981862f2c131ee34905bd93caffc3b8f91aeb0264b27a509e5c6a41ae781209f8c5895d0d35b3c5e1ae34a1a92a2b979e0e62132051394940ea4d9bfffb8d89ba1e8331b15bdf05c41db83a57745a4a651a757cc8648acdcf850a2f25367":"9cd0c27f0c2011c1ab947400d28516c7f46d22a409a18fd35c1babf693b8030dfd7822d9ba03bb8fd56a00f9c7149c056640dde690889d2f23978eeeb28ccc26e2fc251220a3682c963f5580c654c1a6736cccb1b8ed104ec7390021d244bd9f92abde89e39a4b83eff8211c8a6259bd6ac2af1da7dfb8cf1355238056c60381":"15d456da7645abf2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"f29cff00781f5916930f125489c87d21f6593324d1506f65":"50db7ee25a9f815c784236f908bfd7f2":"ec1482e18692bcd6894a364c4a6abb9c3b9818bb17e5e1fc9ec0b41702c423f3a60907e94c888fad8e78f51e1f724b39969ba7b11d31b503504b304d5c4b4cbd42634f4ec5080a9fe51c82e121ae191270dd2c307af84c82d892d982413a50ccce33698054f761a3fa93da9a1fca321296b378a50d458ba78e57a70da4676150":"a3e8595747b7147d471ac4fe38014bf4a409931e3f419ff88ae249ba7a7f51bd0ede371bf153bab4b28020b7a82a8ca30b75f1e3bcfee3c13db813cbc85138ef05874dedb14a6e5b6d06d7589a83bd5e052dc64433a8e24c1188b9470ddb2536d13b4b7bff0c5afcfaa9aa0157c3aae3b1774df2df14f965d6dee4332edba67e":"a1e19ef2f0d4b9f1":"":"eea18261a4de31d8619e77005ebbb3998c5dcfac2bc120ae465e29d6b4c46de7e6c044c8b148ffe4eda7629c243df8af4e7ceb512d5751a3ee58defb0690b6f26b51086dedfde38748f6f0bbe6b495f4304373188e5d2dc93461bd51bf720149a7d3aa543623b122b9af0123b2cdc9020136b041a49498ec4aa696c2d3c46d06":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"2087e14092dad6df8996715cb1cfca90094f030328080ffd":"d30504afb6f8b6ac444b4a76115d79d1":"d95845d268c8d8f9135d310c39e30f55f83ef7ffee69e6ba1f80d08e92ed473b5ac12cc8f7a872bfc8b325e6b8e374609c90beaf52d975f71caeef5ee4c13de08dce80d358ee1cd091faea209a24e3392adcfe01aeb2b2e1738bc75d4a9b7cd31df7f878141cf278d150f6faa83fb3a2fd1225542a39c900606c602f15c06a4f":"6d039513061980fb195bdf2f7c7079ca4b7e0fdd50d948cbfab5ba10b99e3aea27f08abd000c428851de82cacb0d64c146cd9567e9d55b89819876d6a635bd68bcaf47ffa41e02d9ee97f5a2363bfe6131ae7a21ea5130ae953a64d57d6cbfd45260c5f1946388d445ce97d23ab7ba31a5069a4896bc940a71de32bde02bc18d":"5412f25c":"":"1e81a4c10a3440d0002ddc1bfa42ebb08e504fcc8f0497915c51b6f5f75fee3f0cd3e9c5a81ff6528e0fecd68a36192114f17fa1a4cfe21918dac46e3ba1383c2678c7a6889a980024ee2a21bcf737f7723b5735e1ebe78996f7c7eace2802ebb8284216867d73b53a370a57d5b587d070a96db34b5b4f5afe7f39830498c112":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"3fc76d627c775de2f789279dc7b67979a9f1cc23c8dcabc9":"8f6fd53eb97e12dcd4d40f2843e25365":"e56995df73e52606a11de9df6c7bfb0ef93b86bf6766e319aea59372060294b0e1b13c6288c2310a4bef725a2dddb174f3e1228649861757903c4497a0eec9c141454fc75f101439a2150e368857c4f0f6e5161c42c77f632bf1c229a52595cbf16e9018de9a8f6a1e6b8b18bd244f93f001eb2eb315405d223c0d27ece9d4d9":"92a60d38fc687b92d44635aafee416a142d11a025680e5aa42e9ba5aa010462991ad3dd7328ca4a693673410f9bba37f05a551b949ab0d43fc61ef3b8996dd3fc1b325e66eec6cc61ea667500f82a83e699756a139d14be6ca9747ed38cd9b1d9da032ece311331bdcd698666ddc970b8be2b746ec55fe60e65d7ae47c6f853c":"613ba486":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-192,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_192_GCM:"b10979797fb8f418a126120d45106e1779b4538751a19bf6":"ca362e615024a1fe11286668646cc1de":"237d95d86a5ad46035870f576a1757eded636c7234d5ed0f8039f6f59f1333cc31cb893170d1baa98bd4e79576de920120ead0fdecfb343edbc2fcc556540a91607388a05d43bdb8b55f1327552feed3b620614dfcccb2b342083896cbc81dc9670b761add998913ca813163708a45974e6d7b56dfd0511a72eb879f239d6a6d":"e3dc64e3c02731fe6e6ec0e899183018da347bf8bd476aa7746d7a7729d83a95f64bb732ba987468d0cede154e28169f7bafa36559200795037ee38279e0e4ca40f9cfa85aa0c8035df9649345c8fdffd1c31528b485dfe443c1923180cc8fae5196d16f822be4ad07e3f1234e1d218e7c8fb37a0e4480dc6717c9c09ff5c45f":"28d730ea":"":"dafde27aa8b3076bfa16ab1d89207d339c4997f8a756cc3eb62c0b023976de808ab640ba4467f2b2ea83d238861229c73387594cd43770386512ea595a70888b4c38863472279e06b923e7cf32438199b3e054ac4bc21baa8df39ddaa207ebb17fa4cad6e83ea58c3a92ec74e6e01b0a8979af145dd31d5df29750bb91b42d45":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2c186654406b2b92c9639a7189d4ab5ab0b9bb87c43005027f3fa832fd3507b1":"3a0324d63a70400490c92e7604a3ba97":"":"":"4c61cd2e28a13d78a4e87ea7374dd01a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"747d01d82d7382b4263e7cbf25bd198a8a92faabf8d7367584c7e2fa506e9c5f":"7156358b203a44ef173706fdc81900f8":"":"":"9687fb231c4742a74d6bf78c62b8ac53":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1cbe30216136b7eaf223e6a7b46c06625176d9a08182fa806a63d8b143aa768b":"4fe6ace582c4e26ce71ee7f756fb7a88":"":"":"d5bdf8ec2896acafb7022708d74646c7":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f31194c83bb8da979a1eabb3337ceb3d38a663790da74380d8f94142ab8b8797":"404efd26b665c97ea75437892cf676b6":"":"":"e491075851eec28c723159cc1b2c76":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"daeed52ae4bf5cbe1ad58ae4ccb3da81fb9c0b6f7619ca21979313ad9d3e83c1":"4037eadb11249884b6b38b5525ba2df4":"":"":"360c6ef41cbd9cd4a4e649712d2930":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3ad81c34389406a965c60edb3214663ac4a6bd5cfd154ae8d9dc86dae93def64":"cebbce06a88852d3bb2978dbe2b5995a":"":"":"bd7ca9f6bd1099cde87c0f0d7cc887":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4c152ba30aefa5b2a08b0b4d9bf3f16fc208bb0bc4c4eca9411dc262d9276bad":"008d040fbd7342464209f330cf56722c":"":"":"c87107585751e666bedae2b1b7e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9aed4ae6b1d857fdcbe5aec6db38440613dcc49f24aa31fba1f300b2585723f1":"947c5f0432723f2d7b560eca90842df1":"":"":"7d331fedcea0fd1e9e6a84385467":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cc80bc031676eff5f34dd076388a5130e985f9e06df4b4bf8490ff9ff20aae73":"51f639467083377795111d44f7d16592":"":"":"02d31f29e15f60ae3bee1ad7ea65":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"db7a40213b5b4b07e9900dc28f599403b0579cbce13fcd44dff090062f952686":"aea6f8690f865bca9f77a5ff843d2365":"":"":"7f2280776d6cd6802b3c85083c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"299b874eaa8b7baf769f81f4988a41e2708ae928e69a5ba7b893e8e6b2db5c3b":"2aa04d85d2c0dc6f5294cb71c0d89ac1":"":"":"ea01723a22838ed65ceb80b1cf":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a6c7b4c8175db4cf23d0593ed8ea949043880fc02e2725f0ab90ae638f9dcfce":"ae07f8c7ac82c4f4c086e04a20db12bc":"":"":"1132e4fff06db51ff135ed9ced":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b98e1bf76828b65a81005449971fdc8b11be546d31de6616cd73c5813050c326":"929b006eb30d69b49a7f52392d7d3f11":"":"":"33940d330f7c019a57b74f2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"09ccef64ae761a70fe16772cba462b058a69477c91595de26a5f1bd637c3816f":"e34b19381f05693f7606ce043626664d":"":"":"2adc2c45947bfa7faa5c464a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"654cf46598e5ad3e243472a459bcd80f1e026a65429352dbd56e73fcc5895d1c":"a56f27709e670b85e5917d5c1d5b0cc2":"":"":"177b9a5e6d9731419dd33c5c":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84bca1b2768b9202bf194f2d5e5a0a5f51fd8bb725f2bab8a3fccbdb64a4ea70":"c45b2708c5bdf65ec6cc66b6dfb3623b":"":"":"fe82300adffd8c17":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c8ae011795c9a60ad7660a31fe354fa6f7e9c2724d7a126436291680cd95c007":"1bd9ea6186450f9cd253ccfed2812b1c":"":"":"35214bbc510430e3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"df2f0a8a3849f497d12bda44e12ce30a6957f3febcd5ec9bc134171326ca66d3":"728cb9608b67a489a382aa677b1f4f5b":"":"":"e2ef5d9cc5791c01":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"78e8a8ad1ecd17446cf9cd9c56facfd4e10faf5762da0fd0da177f6a9b9c3a71":"f169ce6f3ccc58f6434ae2b8ad1a63a1":"":"":"0fe57572":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"02ca6d8a862e25db9d68e4404abc107e700135df4157cfb135ce98eaa33151c9":"7b722fdd43cff20832812f9baf2d6791":"":"":"72dea6cc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9a2b709dbcc3a4fb15b3ad541fb008c381b7e985b57df52f07ca7cd26ab1ecc4":"729baa4c0ef75ed8aae746376b39fe3c":"":"":"2a0d607c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"449d39f863e4909984b37f2e5c09ea4d4b3e9fac67bd57c299e4e1d1f084aaa3":"d8e9118f331bb5a359f0aa8882861b72":"4ddcae0bc24d622e12bdeaac73e8d1ab7957af051d27dfaafce53aeed4cdd3f989ea25989a2f41cfb3c38dbd841c5560b0b5ab1861b1fbcd236865d13da55b50219462e021f8a21848a64a85326031fcec8fe47a6ef4a435dd2b2fff637644ffcf3914ef2dfa5dd556421bfd297be150b31db039f0f2cc422b282e659e70cceb":"":"c595b9d99414891228c9fa5edb5fcce3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3e70e66813fc48f984dcda4d1c9c24f1d5d1b71ecfc8bb9581782e7cca5a5cc6":"d804f1051e72c9b7117002b862eb45ff":"0b1ab2b7a87cebac668c7a532fa8fa56a22cabf0c41fc1e6744ffe07c857c6865d623f508351f98f3f0c577d1eb94300a30a445472218c8ac626b0bee7d4c122d33f8130436a89add341e8ef7e00694afb4ad80d314d87ad3f921c7105eed05431b8151df7cff2c8e3790efd4acd3f60332dc7f34fdd90beef70f9093361d65b":"":"c09c2e3fdfefa222f7345ae4efb978fc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8e534041090b45b80f287dc5fa20ebda017ad81b0530e680f62c6280fd8881af":"ead675b019ef5c6bbf4985f2a382d6c1":"b1db220052c4bebcef27eed6db0dc91be481179d71160c5a2ddb2fe497a05484840b04cce48980057d770fbbd0d5f3d5c633b55470617ad2cab5767188283310337825c4b0eafe13b5b11293dec230dad43b220885105767938c7ec4600fe063f98aa14bc6afb886fc874c10546749da295f571e696305bd9165486e29f43f52":"":"9aa0cdad5686ca515cd58aed94938ef4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2de18874470c09db683cf45cd752bdfa8bf33e7967220b1a69f41f2a02da1d80":"af30eb2d0a0c2a50ea413f3285aa88d4":"22889b868d8ccc9f488406813caed199b23091ddd796c8632f564e7cf5a39dfb725266a931fec958659b6fc5b6b9343b8217edb0acb010afc9416601155262b57bd398d62f555953f0e15958e19ae004fbc9cb25e0269a9eaa38a4635a27bfa719fb249fa49337796bcf5f416bba87fbf3b19f0d8c11290c25ca50bbdc822f01":"":"646bbc9b14681af65b0d1c4c9f1d0d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1a1bb9122e762ecd7ff861a1d65e52607d98e7ae5bd1c3a944e443710f3b0599":"32f99ea4cbf52c2701c2252e5e6c863d":"91b7a70c3a06c1f7f2ea584acb5dd76177ba07323c94f2e8f7cbe93fc0bb7c389c3c88e16aa53174f0fc373bc778a6ccf91bf61b6e92c2969d3441eb17a0a835d30dcf882472a6d3cb036533b04d79f05ebfaadf221ae1c14af3f02fa41867acfdfa35f81e8a9d11d42b9a63288c759063c0c3040c3e6ee69cf7c75f9c33fea1":"":"a8e29e08623a3efdbbe8b111de30a4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3bfad1e8f9850577f9ba3f290e9a5e91b494c2d99534220362e171a7543177ac":"8410886b70c57d7ded8596443bd1b157":"ca801c83596795515ea931edba00e06e332bf84246b7036e10b317e2d09a51b2981fcb664ee3bf4180bb0b12ed1cda221abc6790b27c26914f5ef9cea9536e2453cd5b247cb054e295c2687b725a97cbc484b8eb86c6ceee03bd07a54a9301a3ac0ddb23aecb825a238252e7575329058b40e75575a7f16439edf5be163ce5f5":"":"e3645db0c600dba52044efcecfc331":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"65debdf2f2191a6cd8de8ad4d5d4d0d8f731f67744e2545df6b2a7cba89c1ee0":"fdab2ee547dd8b6f5a4ea2dd19697b3e":"d2b0a0438ee0f145aec9a7ca452b788ecb473152b78fb75f6ace721afc7b0ae1942049b790f3a5b6221a8760295659756d35347cc04029be03459f3e23a71209b4e0bbe13a253a888c83db23376d3a6d9a539f7c9fa4a12dc64297e7c93dfa0ab53ef76b6e1d95bf6f3d5e6ee8f08662fc03ec9d40eff0a43f23ac313671bfd9":"":"c25fc157c3f2474885e2eea48aea":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"496ae810380460d40cd2fdae8c0739f16b87205cc7f57db0a71a473eb361d570":"77233de96f5e1744337778212b411bd5":"85f5b54b4c4af5c808120bd28d98e44e96f4126623e57684957e9fc4fd1a2d0583940b8fc8314a249325476e8d05247831b04709580ae714e8187cd38f9559419e14c9fc4f8c454ec191b8ef2a3610988fe3339d0dc6b72f5978f9eff9d596dfabf27056e3a908c6497267461386e860f6b9d65526294bcb92908b5661b06b5a":"":"4ed91af6340e70b0c2b94ab6f82e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"aca188183b46139cc7cffc82a6aaaeb2fd73cecad14e75c663bd62daf1ec711d":"7bbf7fb55eb70cce94cc6a2b67de55ba":"015cfba90f069545fed60f31992ff3d3c3592eb91e7a53df5978ded64291954cb99a57de82d5398ce782b68d14ac04a8b425395bd076ead59eb445721bdb2f45e19fa089117800cbbac7b8313fb165ccb1122acb654e1242dc7fe6885ea1cbb7281b1270cfa1549cdfe9b47caf47b4ac3807e562e48c066566f5e606b5023b47":"":"3bcb5c2a4261d75bfa106fb25ee1":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8cd6815f6ec15f03b7a53f159e877a5981e0ab7f6e6c261ddde4b47cbb2f2366":"c431c07d9adf5f61204a017259cddd75":"4e1a835402bde4f5227e64b46a1f8d0f23a9434e189377fcdf1b9621ba1987eb86a7f3b97ed0babfd674e74c5604a03dd016d71000a72bbbd00a7f7fe56ad0fcb36a3e24dd0fdb63bd66d4db415f35012416ed599796ca3f678df7eb5a1b17f75abb348ddd3b366369a7b362c9488aedab836b61f9a158f0b129c8ca0a53a81e":"":"0e463806ff34e206f703dd96b3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8f0a72abcda104aa7fae501f9a3b686d00d3f6fe984731db8a2865bfec587073":"ab8acd063775d1b1314f14e90fddd1be":"02c6d426e7f20b725d8cde0a6382e49b029b52126889013ef45251f27b2fadb95ca4a9a3b16ad06999eeca4a473e813045db4942e9b9ff2e5a5e429d9bac298372344d1b781d5facabf6d779643f31ada6124eb50aad599044b54279ec9b25714ac8a3b9ad2487cec7f4b1ee245d7be3d496d6af1d4cbee1c8201312541f3064":"":"3f0ccc134091e0c0425887b1b9":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"417135cad74280e6f8597dc791431c95cb8fa63bbf7197e3ab37c4b1d6d9438a":"0fe22d9ba1d0e32656e3a9f07a517a27":"a0b2712e81d329d5b076a4be2ad6823cee6dbd17d9a592d065bdebb92b1ff37a56bf2f5e5341f39c574246ccda19e5f35fede49c9ba958f3920cc5440fb404fab7846884ca0c2a3af5b51f4fe97a1395571319cc5b40f8aac986d77de280db82343983982638326ef003e0c013af19c34672975dc99ccc0853a1acf7c617d965":"":"888b836c9111073924a9b43069":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"304824914e32ea0efd61be6972586093349bd2cc2cf0cff44be943682b2dbff5":"b6d927a71929029f6766be42746f7cb1":"7281c81c7514f4b17cb125c4649006ef8959a400a1e4d609d277e363e433725fa32346a10bcbd826b6afc8222158920d0a2db1e6fc915e81231c34c3941ecf3c6f94ffe2136190cae3dc39a4277acbc247f36291b5614a8433b1a0780434a6c50521b72ec25145bbd3b192647155d5dd9df9e66762d39592602ea99bf9bfff49":"":"b6044c4d7f59491f68b2c61e":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"8a10e9abe9389738e12a4bb6f553ae81e8bd320e0dfbc05fbae2128c1fde7a23":"6da44354e198e3beb54792718becbcc1":"199d754630135b669bf2ec581d3027a569412ab39a78dd9d482e87b778ec65c6473656260c27827e00e566f1e3728fd7bc1853a39d00e43752c6f62c6f9b542a302eea4fd314473674f6926a878ec1e4b475d889126ce6317115aea7660b86ab7f7595695787f6954903f72361c917523615a86d6ce724bd4a20c9257984c0c6":"":"5c5683e587baf2bd32de3df5":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d164ffde5dd684becaf73e9667e3e6acb316682c41aea247899e104a54dd7a7f":"1d388e19e9d7a9750e2fc1187d4b075a":"f166a5b6f91261cda56f1a537f42ffb8aed10af5e0248f8910034b92dbc58d25953f1497f571d31fbf5ec30d92234b440161703851f0e43530418147ce6270fbcb5db33ab819ba8973051908704b6bea8aaca0718947e6aa82498a6e26a813981783ed9bf9d02eb1ea60927530c4700ff21f00179002b27903dd4103bbc5c645":"":"52e10495105799ead991547b":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2854188c28b15af4b8e528ab25c0950fc1384976f242716c91bddeec06f2fdea":"075af9c31f5252b8920092cbd999e7a0":"e9452f71093843a025bb5f655eb6a4e8316ab5946484b11818f22b62f4df75d5891fa3397537093a261dc9a7648b7477ea1f5fc761716e302763364bcab7992595edd0fc1c7f7ac719c879e6616e2007948eb8530065a6cccf73d0fe4a0598819b471b0856e6d90ea0fc0e5d36a30ee925b6b8e5dbf40e77f01efe782c0bb4f7":"":"6ff8fd87e5a31eb6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2bfc445ac0365ae6c3c3815fd18bbd0c60ea224f6620d9b6ac442a500221f104":"43c5f3367a9955aaee1a0c4d4a330059":"db0bae8ce7c66a8ba2fedec22f236212e9a7ad72b371de285c7dc6d2f6c22df0ce4920e0f03f91eb1653c4490050b9f18a2a047115796f0adc41707d1ffcbf148aed5c82013f557e6c28f49434fc4eb20112f43566f212c48cec9894ac40772fcd9b611ee9444df7b73e35b8a38428ccb064c9c50491d2535e0b539f424db83e":"":"49aaa806cb2eeadd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b828f99aaf751bf22d993ed682e488595617a607ed74aaacbb6b60457453080":"d48dac1d8d77e245420feb2598812418":"f50f785f4e7c848a55a616ecf4b6b1e1ca85e16de7100c7e4273d411bd95c1380ee157ba501ba9616980195f34e39f43e335f33253342feb8ed64443483c721b85241a0320b3cac83104de2db47188c61a373fba592ea16feeefdee1f2bb43927396f58151418672ebb74afff5c029503a0d0be81430e81ed443e08b74c03183":"":"a5b71ecf845b25d0":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b6da11d69fca3e4c907628d3eb63d95c7e502fc901372fd097e064e70831432":"6fe2148f250ea178d4c8ca8423ead87d":"a8097bb74ded776f578eb7588f5ef8915db9bfa7262af700c8e76ee114e07557b6786dd5a60a66b2703e7c9de5d6b42aca92568aec5d1ecc298dbd0edb150b8cc13c9a78698f7674caa94da6cacd1f3ef4ca4238c59830ea725ab3a6284e28966c8c32d9bccfb0cfd6583a5ca309debe86549a6f317d15c5f928cbc7f473310c":"":"e9cdbc52":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c5ae9328be49e761064080fc213e53e373fd86359a09d0355e2d438d9b8e68f1":"a7e3f8660ff925d5c88c5aceffbd7026":"2ddddba7a56cc808aec4602f09ae9bd78887827bf0315d8dbe16821606ef9d117746dd138bf1f23565d1ab8f4cee36d53fe3730632c5df9f12109b16edbeae285bb49dfdd155f5dc97b319a85362d53cc86817b7c1c31e5e87c9f37422f133d00dd0776bd92ab05ce6860573cd911645cfe3fbe515e85f744899a447fe443653":"":"e35dbac8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e4f8ca13ba86c658cc7f42d4f029422209efbd101bc10a1df81a42cfb3a0f79f":"1a362fa0e4054ba11e4b06d59c8bc9cf":"e7ad5c75aa13659f8ce4b1650c46382645ec67418199b84ea445b8ceef619ef3fbde59ed3d313c459e36fcf87d26ef2b453409b32f1086934c3072c1ef0aac83762d28b1193b9afff2c083ce4300b768b0ae23ff9d3dcf65bc1693f1350da65180620aab205aceacfc683c8be53a332e2d0337a7518d2a5204f9c8d7325a4799":"":"e7a37f15":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"00050a21ca1e72cd0924be31b943c60854be6744577de3dd9d1f4fada4a19ea6":"2fc1afc1395d8409919248709f468496":"":"693ffd3d92294857a99c702a0799eeca28ab066dd90917b9ea5ef8f6547f1d90b106cbec8ef2c22af9f8efa6c652f2f97c2baf33af14fe9def230d49524bd65909c3df1490f637f99e788dcc042b40e00bd524c91e2427ef991bf77e7b2f770cda6e90076c5dac4cac7ee3958b53ff8ce846c3a96281f53c2c52f5f3e523536f":"e39b6a7fd5ac67a2a1cc24d5eb9d9c74":"":"cfcd6b9ff7641829cbadeaa2e56f1f150a099eccf3e378fa4da59794dcc4490aa4f9c5db0ab245bec36a7d4557a572008e42f03bc1baff3c946f23f54a4dc9828f106cf4264e4ab40165839d1085e7795b1ae0950f0ee4a08e46ada501b6b51dee0e518129c9426e5bd44c66674a9f99cfe676f002cfd344c5bbd22d3d91e600":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f10965a66255f0c3515af497ccbb257a09f22ec2d57c5edae322a3e6d2d188ef":"c571ce0e911de5d883dc4a0787483235":"":"91598690edf2de8b27f9bc7461a84e80811cee544f0542923898328cf157590251f0342cb81d359b5dccc5391a12320d1444c26f24178977dd6705c2b365dc1ece0152c42e2f0ee3162cf886ef5529f4f16a77f3bdd2aeccd405b59addf098521d0d38cc25f1991e11be7ecf24caedb48a2a286d2e560a38fa9001c5a228c4d1":"6d9d3a5dbc8dce385f092fff14bfffda":"":"2867996e389e09ec0da94d42e77b1e436b50065b09ca4adf1cd03240444ee699dbb7b3fc081a1869ca607d77d5ff9754fc3c997ff0a4ee17543a2ba77886b88a7128bcc51d3450df58ff3a26671b02c1d213df6adb6f7e853080eb46b504517cbaea162710a9bbc2da8b552eb6b0e0cb98e44fcab0a157312be67974678d143e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4437ee7d16d8c3ca1aa01e20b66749efa901614d4bb4bee786ad5a5f1bfde2e6":"275393276745bc43bae4af1e5d43a31e":"":"ff80727a3485cdbc7fab4ee9fadfdc621c538e2055706629046078f1aa3fb687fc728d3a7ffa52ae457b7b5649613eab7bafa464bb435314c49e5900750f7ad39ca9b75df6b2eaa755439e101f67b7ae4cd80dc4a9dea0027048253f2d0a6014056ca69b8c85605b00cf75fa7634a0ddf464270a8c79ce1a1324c4a4c513b24b":"a82ff1e87d26e4d6e417b60fb2d3ce23":"":"88f994d276ed20be3932d16f551c4b7e2ed80411f2e72ce098fa0b70c22157a59edab30649fec447dd63f0c87dceca7238ef0d9561b58489ba7bd86f2892743099f40af63c432f78ac0ad0b5c2be47b9e3045e7237b096ee400f430af63a6f309de785caf190f3f4aabbe79f727a741590de542bd343df68d13db55a5f8bab41":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"fe4ec037ce563dadee435cfcb2bf090f1f7ccc7d1b5b4fab2f1b738348f8ed2f":"47f5264f7a5b65b671892a05fa556f63":"":"64eb8a4bda9804c09b04cfcd89094928c21480908b81ee19d6c29c2a3631b1a5bdc8e7f8ea56f7b8b8e14a5208296026785cac3a6afa54be8af4d5faedcd12b6621bde0f8ec5a2635fe72a89468ca7704c73aa40cd2ba97aef08886b27a694d339b00e7d12a31308672f87c06a7388a1432f869eb4cc1da864140b1b33931925":"660462b4088f6628a630f2e4170b21":"":"4a310e035361f98b8c54fb4cef70b1a9c910552ece056ca8fdab54c52308ec0ad7fe9dd1dae92badab5010577de522088768fa6466fbccce22e14c51ca7986c4063d0f06bf578dab16a91856713198a7138395c49c78b6314b57ab72fd079028c8dc351952d90b04a7cd2b245df0c0522447cdb7d3329fd9425fe5cb40a8e7c9":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e6e1ada628ca76eb9832cc6b5efc5c9d2686bb587366a6de2d734233fa95279e":"5a100b451e3a63a3e6d4b8a9e59c6bce":"":"a0ac738e0fb35246b84a6fbe319f827039515df25d0c0fc6de7c048253ae63d3c561e44a12672ffeae1cb925610b482aa422bbee0e1784fc69baac3a97d69f51e6d2a17957b44b318624ea7ec680a559f4d3f2761d09bee66efb3a312ae6b3ecb673e756b2a0f654671e82500e7ace91f2be2a74bc3bc1ec1a4b6877a53c27c8":"88df9a1ea54e5bd2ef24da6880b79d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cd5c1e90d78213155c51767c52c290b3d657db8414ee0a7604a2ec7b48105667":"4e022d8d86efbd347e8cbab7e979771f":"":"8e987693da0fb77b6d1282eebd3a03e05d9955ff81929b1a2c721574862a067ddee392c7ece52ca1451f3e6e321d7208882d97b4149af6d78d65c054e1bfcdfa62bd2202de32dea8363f8d7f041891ce281840f3cd906ab46ca748e5b3b11890b4014bf0271c9427c874097782d1c13dbb40e78fc8276fc134f3c29923a43a01":"e7df79af0aef011299c3b882e3a45b":"":"3b20473d9b5018d089e7f74d3fef22ec2805948a9e07689831973c704a6d8db4d090af88d696ab8c3aae9740a2bbd7f03e0b18b2b591e59c335c1043a2578a89b1a9f20fd0dd53f12e00e9bfdb27de8caac772bbfc4de9e4a255a5d1b04e59625a87b8279babe613def58d890d5502abf2f709aab625dcc20c58772832c7bbab":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6e3dfc07003bb6a2d82bd5263b2832f47db4e73279266c7a9ea21f4f18eddf83":"7c0f49fb54f5e68c84e81add009284e6":"":"a960da222af9d4da5797e6957d59b00f6d3893599c70e95c0984b56eb3329b191703c2532f3288b15ebf655b9b5ee4617484e5ac9c39bb06731d03ebe4fef9495d003b0ed694cf540b4dc759d32629e55512680badd81234bd71ffd55fcb5e6a85031c1dc31ee1ed198939582d8336c905717cc87101dcfcf9d833fac815c8ea":"b2ec0f3da02a9eb3132fb4ebe3b8":"":"a40b6f70f0572fe0bc70d83368e7c154f7dbd501f52501630a2e523d18e216e07368521f6040d806299397722b99bcf7f85d36b8bed934b49aa1fa76d38783e6a2e392d6d0786d467f7bc894a739ecf94f0fe884a9c391154f8326bf31ea5242a18aa263d04da4b63b11de23b42d3e10a2d5460cb32700cdf50a0d89165ba22a":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4103b1ddff87a508a219c808a04ad4750668688f4c2ee75b92d28d70b98a2c94":"5cea906737518c2cb901016e30206276":"":"a00a196193ff07006b7df524824bd0971d63f447a3a7bb1b75c1e2d11789482c115cff677b54948d36dc4de34200bce97be0101d88cee39b177857dd5da3cb0d2f9d6e1150f72a3bd655e0bace1d25a657ba9a7f8dff082b4460432075afb20173da22b49beeb6a030d72ba07869ff4389fc1c28d87018d7c1a9829c21932197":"3a3a771dd5f31c977e154ef5c73a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cd8c2f0c330d5db316dae7a16b57d681ca058864f7bd60f3d0de174442283f77":"387ee8c1e7f047e94d06d0322eec02fc":"":"e2a5ad295d35031535bf13c2993bd0b292e8a9465b9dab738e59ba03670248a1ecc92b38a55bae34729162271cc1572c35fcccb27417b48dfcbff852a7a8845cc829a4461061b558ac8b5930a5c6491ffba04a9d0dff220b3cd5e4fc2e0f3db3b2ddd90328f2cad819573a7856299620b02f5ee0267f3b56981afbf1b7d9e3e1":"62356850d12b54e39872357cfa03":"":"17b7f6bdfc1993c56dd9bd674cc276a55a46fdd9fd5fe435b9e4b7ebc7052a9dc76a99e4e43aba7d486603189c90d10a21ad3722c86bf5bc856a0f930ff5bca65be708b76bb8a29105da67f31eebcec81f28aaf526d2f8f0feac393a24959dcd612e2b93b4463f61957d2b3046bcdf855e346601e4c7760c0ca618ee7bf55381":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7e19e400872eed721d560202cd757d3eb99729496b6e3a6d38dd8afe1066045a":"d2b277f78e98f1fa16f977ce72ee22a7":"":"3fb9abc7aba654dfb174e8899c17db222ffbb387b7260fc6f015b54f1cd74284c516e21aae3b72338e5e8dc643cfafca0678f5bda3a7539f1612dddb04366031b5a3eda55f3232c1b176cc9be7cc07e0ebca674a272224929c401a2530efc6d4eed0087b544b12d172a01bc8340d9c2a2ebcb5af8b07d96073a879fda140c196":"4c81c044101f458fdfac9ca3b9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d0653934a16fd36c27d54488a1829302b931bed6e26ca26047242b85b50bfb61":"94886a1845aebba5ed6b86f580be47f9":"":"c02347e1add9178d830d8baaad9aeee37e958bedf2cc846e2561fe8c83481d0a8a85911e7f1f6e444b28f30bd96c13c390e80f616feb6844ee6fa486543a2e3f38c138f45b4405e3fb331b64648219aaf1d574be948ccfca6afc18d12488db19c35b05601e47c0af5d49a93a5dd4420f38585c1eb033e173376fa390d3f948df":"4be34ff42085ef4443c8b6042d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d0f0ccb88c7cec9496f26a59ddc67dc59ebe49ae3dd89ef3be008598727e214c":"e5ca84b907ac761a5e68a9080da0a88a":"":"7845e155f4f28021291e7c814a1ace8f42b239990831aa82758fc1e376cace0b6f668f7f2f224dede1ef5b1df7ae74b2c01483701044acbbb72a9216eec6b7ef0190f114b3c73c6985c4653f11601c774d10b7f9df1f1e1f3ff4fafa20d6525edb37d9e5acfafe6d3468ee068d407fdb56dc718c98425926831253978d727854":"c8f78e4139dd3eaf2baef8aafb":"":"0cc3ede50b0d3fb9ada11300a3239a383c98f968ad65266d57a195bb18d3e568fe6cabba258da4bee9e923c7c838e06dc887a6c49cc1453ea6a227c6a83e651a8742e0316cad5efc93739393e3603446b5c920a206db1434adbb8ebde4d1a7a8699c7f6c61b2d57c9709b564338423b4f526d6c157647a6c45da9dd521061f05":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e35dcea17cbf391491ae5ba6056d0dd13b348183474dd4b614742751bdebfc32":"fa549b33b5a43d85f012929a4816297a":"":"5213542beb044910d7fdeec8bb89de93f350760e493286eaef1140485380d429f74a4279c1842a5c64f3ca3381cb5dbb0621de48821bded650cb59703e0ca88f4e9c3d15875f9dc87d85ba7e4bae9986ef8c203fce6f0ce52c28e3a93befb4cc4ba3d963d2283cd30f9bf6ab99d92f2f4f3aff0b022f1751b89d43ea10bbb28a":"afa61e843cee615c97de42a7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"844c50ddc0ac1d9364b21003287d6ae6360d12bbb17a85351362420ee4ca588e":"2f8512bb7e214db774a217a4615139e1":"":"3a3bf4ccaf05f7c02f5e158dd2c5cb08c6aed4b1ba404a6d8ef9a0737fe2f350b3e22188fc330ea63e35df82f996e3cf94d331c4246cdb25bb2c409762e05ddc21f337edee51b64f1766ad18f520b3f34735b24278d9d647c533a743e0c1e9c81e9dee975cdc47e8582113fd250ef59353605b64acb7c025a97854c1a5c03237":"f1da1cebe00d80eb4e025feb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2aae1aa047a20ed2d6d8336d923864cee9404f924031ae327fbfe2d293e1d93c":"3da9af3567d70553ca3a9636f0b26470":"":"8e5b6b9e4e7d01de9a919dd33c0c1eb94dcfebf28847c754c62c1c00642d9e96f15b5d28ad103ff6969be750aadfd02fc146935562c83ec459a932a2fd5fda32eb851e6cff33335abd5c2434ae4f5524d6bc74a38094ced360f4606a1a17096ff06604952c8ca94a9a6dc4a251e13b0e0c54bd8a6dff5f397a1eb1cf186fa518":"e1026b3d15d261b2fb47632e":"":"58c52ea9f3b162511160eed1a68b6f52b3c4f5834af728de97a3d9e4ba337b29aad12636003cf5be9ffbeae0f383f7cf32f645a8f6fc5cdc1cde91c625c69a92bc434ed671e52a0044a48f3fce55cae49a7d065c2a72603a7efe58b5a7b18ac500d1a51420e820357e7a439b1c02198ebe3d4e62d5573a3aa5f40900a21e3b41":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f3d69208cb0d27474e9a231cd46eac7c1574fff950c48bbd1ba03fad16f563df":"b957f05921d21f2192f587768dc12b4f":"":"0d1f06eef5e8f2c81d1a73bb1dca93c22cfb6e40e9948bc75b0d84830fb9216330424f580b89050c3fb3f620eca8f9fd09fb86d2e8b3a0869c6022d8a705fc280d66fd16d3aba7395d6be4bed44145d51d42d56285f3675726d62d94c081364a6d440511de83a613c598b03078e2ec7648c6302defbbea66aafd33e1a4b1686c":"322374fbb192abbc":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cb2cdeb17fa6bcb006c7fc60858a12a411804464458db351957e8caf42f1ee6c":"31bd7c971a6d330b566567ab19590545":"":"296504131354b2c1928982f12d408ba2377f2d4bbe87e4c69f92a15bf6003910a43bda6c8929df66b3ab1d202a5258cad199f32f36cc30d2dc06199c2a52f7ccadad1fce50123c5f8434dec57cc60cc780263d7aace8f59cc8a6c54bddbaded3adb12ae2ee0bacf6a8da635ff85b51a4e8a1b3dc404863b90059de4ad0f158dd":"efc5a1acf433aaa3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f94170790fadab3240df568197f9d6f6855afaed8d07eceeaa2380121872529f":"2f9c0647a4af7f61ced45f28d45c43f1":"":"ed231b78db082f652bc6310c396993b52de804a82464fa3fac602a1286535f59c67fc2b1b420c7321eb42b971edde24cd4cb9e75c843f2ac6fb8ecdad612d2e5049cf39327aa7a8d43ec821161c385f3fdc92284a764a5d1cbae886f07f93017f83a105bb7c3cc4fc51e2781516a2471b65c940ddae6b550ad37b35f53d7cc64":"ab74877a0b223e1c":"":"1cb5ed0c10cee98ff8ecfa5a1b6592391bbd9f9b1dc1ff351e0af23920d546b5e27d62b94daabd32f7f96a2632dc9fd7c19bf55f3b9b7cd492e76f4d6b0f5b437c155c14a75e65bfc4120bef186da05e06a2fd3696f210292ee422ddbce6e63d99ee766b68363139438733c5e567177f72e52ef2df6a7dd33fc0376d12ec3005":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"797c0091ff8787fe7cd0427c02922620e7f6fb71c52ddcc03a9f25c89ba33490":"69d81c73008a6827a692fa636fbab8bb":"":"2d3efc8900315c3691a8e3c9de3319d4deaf538fcf41aa0e295b861d0ac85baf56d149a6437747dd6976f44016e012b88de542fb8e5b9e4ad10c19deec4b7c0b69bc1b2e33d44a981ded66127dea354b072010b8dc24b85ed2ffeea3b9c0e931619dbbf22677691f0d54fc03eaa162e0ab0d760ad41021f67057c0d6ac19ca8f":"be2dda5c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"90ce1afb5500489b9edbad987f4009509c847b3e55cdf0c764ef2fb085e3d033":"e119e166471ecf44bc3a070639619931":"":"98482b54edce2bac1cd64d44917dcf117ebfbfe26ad17a9b263447028304f1cf5a69559c05b5d833420f4fddb6e308277d01eb4b3235f1c4b47d33d3899325b55e7be19d43187a5b1b1354ce02a529b3df1c13b4883902ae9fc565079dee825e705f3e580371e4fd86c3b0d31bae98adb529901f346ca07127314152b4370edd":"b2f54b3a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"29264a90f114a800c0fc3247b3bda00981a12a8f85cf3a19ea4c7ffdd005f4bb":"cf296aa43cb7b328e09c8975e067404e":"":"587c8e53ab5ae8c31e16160b4a41d88798e27f4ad61c573c023c62d4dbb3952eef5026ad7b453fa9e0694347ab8fe50a6cf20da566202b81e325cee9c07ab2d4d53ed45b3ec2d2135936515f8a24f2a8116807dce9df3c44edf64c32647145152ff241d9e018e4101e400af070192dc3b498b5a213d265b4cfc8c8d4d7deccb5":"56015c1e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84ff9a8772815b929d55f6052c0354cf3e02bcc8336fcfe5794952b4c45d5d96":"5c044a66e488b853baf479f7dee2aadb":"00304e3d40cbc6d2bee0778462884f4ec047a8c74bb3dd7e100f2b9d0e529fd24730063986117b56ca876b208a3691425ac63afc3d504ccb499c76622eade09717023fcb7d956b01ce24a3e53cb5da472be3fcf5b278b5d9e377de22fab75bc74afa9670f5fe9691aa0ed77e43f6abc67a61ec409ec39fd66ac0307bf195f36f":"a87de56d49725a1625baf12fd15931fe1a6783dce5d1e744eba108f45e0c105d8141dc027d0e33ad7efb6752b43729715e2f3e2c42ebdab4d5f72f886bd821c4372244699ddded99a63dbe7763a5a3bc21cbfc253cdc2514eba2a4f54e24dca7c207cb3f6ae80153d77fe0641f357d5a073dcd425c38deb77c45f27427345516":"72ddd9966ede9b684bc981cbb2113313":"":"aadb8537309940422f67ca393aa6182d67fe7c52092538a15e98a4254f0a9087c7f10903d5e78078c2e55de914dec8b6b35cb720e3e55963c0ac9901e44b83a0e7c5b2d3f002aec0a4a08354febe47b2abb955f2a21107626ef0b8e1e099650812a6fecf36908fce2d078c2735cf7c2b970a309e5c6d6ff29c26a05720c57105":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5ca3991d0160b1729ae1a622dcf4b03b1f4ba86150bd66bf35cbbee9258af10":"f8402184d1cc36df07b68ecb1ab42047":"d378cfd29758bcbd21e26a324239c42c992941b3ad68d9f2b3d2def3a051fd172ee882562970ef59798ff8d9eb5f724ff17626156f4cf5d93e41ffef6e525919af6194ea9bbb58c67563d3ffd90e5a6e2a3a33bd1fa3d55eff5dba7cd439d571f7e08014c4780e3d10904ef22b660897e78258da20b2600e88d71c35ecb6329a":"62aad5854a238f096bdde0711ac6f5763e7fea29db068ea8c911f17ba91e6d7807883e6fc5ba7db17af33da2b00973008a3425e65cc786ce1b97360019ee2cef74563d54752be436b905705b507c3d62689df4edf0356d26b693eb43d8a2a927a9f3866b7e0e19e84a90447bd6f47e31070fa7c2a71e3f78229ee19fa47e848f":"9e8b59b4971130557aa84ec3ac7e4133":"":"556dd32edc0af3c64186fe8c000ddad1516cd14721c93c228e379d4f87e32c79e734539cec930322048f34a2b34931c585d44f09966caf187ec4b9244c991a8a5f263e9da1d08d6086e52535afdb36c7662307521cbceb9ecb470a76970243723fbc1613b6ebbcae261ac2f1936e66ce29ec7350b2e6b2f73a910ade645154f7":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"df867d1dd8a287821a54479cab6f88636d2aca30e1bf01a5dffc735e17590356":"35019826c51dd1ef07ff915d9ac4ea96":"0375ed93f287eefe414ab2968844bd10148860c528dbf571a77aa74f98cc669a7fc317adc9f7cf2d80dda29b19db635b30a044399f3665b6176ed669146d28f5ada03b3d32d53fe46575a8afcd37f20386d9e36f7e090b4fefadfab7f008e02f1b5022c0eeb81d03443a276eae48c038ed173631687d2450b913b02c97243edb":"6517272cac85d7f38902bcb4b96a0c59c4bdc46bfefa6ebacd7f2fb1629b87ca91de2ffefc42ce3cfd34dcbf01b3f7cadcea3f99e6addf35d36c51f2ceb1f85c1f56a04ec9c9fff60cd7fc238674992183ea3de72ef778561b906202b7b83fe6562a0bca9c1e0a18638e8685b998b4192f5120435809ad6e93a0422d00725262":"e49beb083a9b008ae97a17e3825692f0":"":"723be39bc13adbc48c861b07753f64fac1ae28fc8933acba888b6538721df0a8b91c040a26522fe0dbb7335d8f63d209e89f7cde23afa9ca3c584b336d63a91e07fdd8808b14c3214c96a202e665bbaaa34248ff30348f3d79c9f16e66ad6c5903305acd887a89b6244eb7c2d96e18b13a686de935bf3821444ee20f48678be5":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0e8e9ce6294b7fbc534a96bdd060120976a6e08315d2ea73ac61d085cd462a44":"4edc6be20f904b4789e5bee0a80a3fc8":"db28ce076b360816cd1e04b7729f8ab080e0a07f35204350f3bd056945aab8638c0e8311ab056f3e5debdbfbb03fae700770264faf73e0f3a05a5812aee84ab613c82f4a76da276250675f6a663f85e2c26d4f4a8666a7f4cedaffc1a7218dec11ca4e72b8b5d5b620d1efbd3d3b94a5ae0d118b9860dfd543b04c78d13a94c3":"9855f186b51358f0e2111c06bfaaeaec9bf95c55e246375c614fad9883d86c82a20c86538dc5f42a0ea69677d59a20c5112d15d2a8396f12096242ad5d7b838d16ee0679fc4017af75bc15e8ad2f77b0e802c864031cbfb0bacd95c828d1db4b7bab0713619e9e5e8fe6902aac7a9e6c42eb05f5b156f7e663ee43e6fdb62480":"03cfe6c36c3f54b3188a6ef3866b84":"":"e10142f852a0d680c983aad2b4609ccbd35ff61bb3eb66442aee6e01d4cc1cd70f45210acbd506395d6ca0cfebc195a196c94b94fc2afb9ffa3b1714653e07e048804746955e2070e1e96bff58f9bc56f3862aaa5fe23a6a57b5e764666ddec9e3e5a6af063f2c150889268619d0128b3b5562d27070e58e41aadd471d92d07e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"886c77b80f5f3a21c01932685a540b23629f6d41d5574fc527227ed0bdf2e21b":"5ec506edb1890a5a63b464490450d419":"05b8d820c9f439d7aeae5c7da0ee25fb0dad47cc3e6f3a47e8b984e856201546975f8214531fc3c2e504d2ac10fa49cb948596b9a8fab01b95c49d6f04d1589f93b77b899e803dd20e1f00a51c0b5953e85be639109b14b100e35ca26d84ea629964b0db8260dfa5a150a66261bf37e79de2ec49e9f1b082a7c58ecd3d39b6c9":"53a17d7b69f607f08676d6f6dd4e8db08e01333a8355d8c87616e84cdf10ef5b041fc6ddc3f6a245c0f534c2b167064af82f45e4702a5e8dede59579fdecf6713353392433950c9b97c38d9ee515ac97d0970ccf03981954540088567a30941bb2cca08cbed680500f8342faa7aebbc6c143e2ea57ba6b4ac1fd975dcc5d0871":"ffdf56e1c1a7252b88422787536484":"":"79ee27adfa9698a97d217c5010ec807806feda37db811e398c3b82abf698aece08561fffc6c601d2691738e279eeb57e5804e1405a9913830e3ba0d7b979213ef40d733a19497d4bb1b8b2c609a8f904e29771fa230c39a48ebb8c3376f07c8013fff6e34f10fe53988a6ec87a9296c0a7cfba769adefe599ec6671012965973":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5231ca6d772edd9ea2d251e22d7d455928c22474b4b44130dad57e6511fed6ee":"048698a4a0feabc1f336112e2794795a":"3a81b6b0b722899ff931cb73c39222d555b83ae3f8880b982593cbc1ab8be90d1ee32fd7dfe697cf24c95b7309d82c3fed3aa6b3d5740cc86a28174ac8f17d860ebb251ac0d71751c2ff47b48bfb0b3beb4f51494464cda34feaecddb1dbbe5fa36c681ada0787d6ed728afc4008b95929a1905787917adc95f1034fedcd817a":"2767c808410ee132291585ea74a48ad3102f883f07d060c91c5f10abd37fe0996d2210dc490260238ae15f5d74c7be2a1e15d80db09079c520047f88488a7802857a3fc3b81d85a96949997430a880177880a31d4d0c9c9045247804f057a4f2756d6e40375a4a3187c4376d6bf573ce334cda1ed88d8a50db499e7cdb89d8db":"ba61edeb7b8966188854fc7926aad2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5a3f516a7898e04e5da4efd6c7c5989b77552d195464620c2b35b9a4fda29cce":"9310af6974890c0a0364231f9cc8103d":"2103af8356bcb9dfc2a4f1d4ed09cbcd8e1990d23865605e19f87feb50bf8d10d0257740e5557a9297f0499c01e29a1a513ca18e6f43f7406c865cbe3951a7771128f3110c8da3bd696368901944549552842a1f6fd96cc681b45da098f3c1acb3d237d2363285f520d0b6714b698790b7660c52ac84a42c9721ac7e9d38a2ef":"5cc28b61ae97557774bdcd7ff653f4aa349df68d53c7e5a65263883ef1fe224ad40e86bffc2d38f28a2ed9ae1fc08563e2a1e46246106546eb8e6064c06baa0046fa137421734b7f0f94656a4f459d9d981717557d843700d116b6e5e2dd3af5f67c34edf31b40b71fd3c6f2475f9310feb70bcb973be52d41e86792c49d54c0":"993fc8e7176557ee9eb8dd944691":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"59c9258554363d8a885fc0f5d112fee08eadfc7ce52a0e7e73e3d0d41d9a0290":"77e51e89dc47bbcac79cca21e81a61de":"25a6f8800a9b914c0ebf9a45d72355c03ee72a138eb81b2980f332645ce1d7aa4659805821866aee2b276e2c032776b4eaf36f93b5f9a72b791be24e31eff105ca6d0700e3069ee327983dd7fe1c7465d6c6d77837aff69055149988e7199847fad98605c377d997dbd40f3e2ff1a4f978a493684e401249e69540fbde96323c":"79c491411402ea7878e480519fd984dde44bce6459303bb76d4eaf97d4e345d1aafaa68ceb0590b41cfed0f411b675d9344c7e888cccfc9eb6fe6b229d198f94ba516ee850ee7f078a4f5f32a23f92f72264e3a76a31ebd042564315ac4f2ec0bb49ba6d08cfd2d3a6308688e39f28e3ecd669c588368cee8210edf5dbefb925":"ee6d85d3f3703b45adb4f9b2f155":"":"44ca68deed5478074adfddc97f06f44c08bf7bca4dee8707d621fc7396fe2efcdad0a167d1708a9ff59ce4cddb86920bf1dbdf41b2109a1815ffc4e596787319114cad8adab46cf7f080c9ef20bcf67a8441ba55eac449f979280319524c74cf247818a8c5478ea6f6770996026a43781285dd89c36212050afc88faa56135fb":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5e9eae594cb54c8089330e4404ff79abb1c0841b0be5347a14633ad1e1ff44fa":"0917b486da754f48bb43ecc8766a7ce3":"2aa1ef2f91aeba5da10b48a882dbd4574df4e9157a18abf8cecd03e4176712ba171b6ecb0e745841ff84e35063e47b08101afc44cfd9cededb913a82f00b9d4bac922f23a22f200642270399896405d00fa5271718eefb4cd5fe7e5f32097766ebff36ff1898a1c8a1a01cc18e6121e470805c37ff298fc65ef2fb1b336d09fd":"32abc1eb6077555a85a0a6fd1c78cccca6c8b375842e2eb8eee45ee6c38dc0837443d16c647252e8124639dd01c808ac5e857a25d927c2a75e2fa8955cad5beb5c206fc050cd933fc4621f5718936f01f39dd700ae1aee7537cc595df8789c5d1a6e1e87b1c7a60e3ce5d57c80dd65dee3801798e1481b1963bcc78cc69f8c50":"92282b022e393924ab9c65b258c2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"aaf03c3055a35362212b9b059931e7a24fc71e32bc9a533428c9dc31077f2ebc":"7dfccd077b29e6ed5720244bb76bde9f":"21edd1c6056f51fd5f314e5c26728182edcd9df92877f30498949098dcde8089eed84e76d774ef8874d77125669a302d268b99dcd66b349d0271dde6f8cc94dc4f2df3787887b1173cad94d067e346846befb108005387102854d9387d2c0fbc9636cdf73a10d145f4b612c201b46e1ff4465f6a7654ce3da5792daf9a27fb35":"c0e12cdd8233878505e025d52427536be7b6bf1887d2dd20eac7092db80b22417a3a4ca83cdf5bc5e36161be1ff9b73f7ceb297c6d07c9cb2a75035a5dc079e48283daea60596f4b356ca28c243e628cbe459f069709fe193394c9b1a31d8ccc5a3a4eba30056c415e68571a2c34bb5c32efff12e9aa483c4a68be5e76aba4cd":"6154c6799ad7cdc2d89801943a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"60c775971a9eac7950ed2bdd85bd60fe948ba04c419f6743fb67f37557e46c6e":"9b92ad7079b0de09c94091386577338b":"1f6a84b0df75bd99a2a64849e9686957c6a60932ebe898d033128be9b757e9890225925d856bfdc33ff514c63145f357730bb0435c65342bc5e025267b410af6fd388a5eca01b7efc87fd3b1b791df791bd47dfab736350d7b7f368b4100e04c939d5af957bab95ed502dac904e969876674602a0f0790da2d7351b686e46590":"8abb2e66a4d08074916056bb8e925551372f737f0e1b597c5d08ee102989743a273b29d7281013f8b3aee2934399cb427370d70370ee86eb41584b653660c633506a53cae747826bb7d93909f069d5aacf058b7f2bbdc58ea08653db857bda83a979fc22a4f126dfef7aac45177f4cdb802fab0c812fb35d12a8176ec21336d7":"1d6cd4ab3914e109f22668867f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3b426e449337a14bc0663246ab61b671b523c9a3130c21ed59c93fa6a5aa5ae3":"e6efc96acd105fe4a48d1ac931eea096":"0902cf7a0685444126369712ac47962bc2f7a3a5837f1b6190d9ab1adb4cd35e7f0892eee628b8e07fcf2b598cebe1ec07d8c4823172ae66a135bb51cc71590707b691a66b56af1ffe38772911d11685da355728eaddd83752d21c119d7b59f4c17c2403629fa55cd70cd331aed7b0de673c85f25c2e9e0267f53f0b7480c8ca":"291bd5a00d71eb7d547b7c94e7030ba4a947418eaeb378a3bacd304b08c6f92f6958eaba968ac6aa23e0512a2a8ad7c1ca2f8fcf623bfc1281f5b7b598c08d2aebcd447668b23238c5e338b4c2ac7f8fd381714c596ea3e0c17aca4317a08563e58f0f52a8af08e078dc242ae54ee0fe3869f8c9687b004a4ded0aa27d8f4c5d":"ca4bfeedcd19d301d3f08cb729":"":"bcef3f2fd101b828d36cb38530cf9a0a7a285ac1c55ee1069cc78466327e85887534c98a8891d579effd832c0f7d6e7e822fb1eea85a39317a547591def4aeed6660872859fc9d1df9725d3c40e9ccaa900e0f1426a55d20ac4f2e8e07bd3bbc687f8e059ab93e7604c97e75ac94be1c8c24f4c4da0080a4d77953fb090cbb62":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ceaf204ff504ea8e7fade1a2097f2b527a44766860447322fa5ad346cd810217":"cfdb8183251f4b61c64e73243594fdc6":"a60f3969fd1b14793dd1425aa0b1f742a4861e0b50eaffd1525cd209ba6d1252176763bb5bee59aaa55f92341cdc0705899aba44cf0ec05cbf80274ebef65cd9507fd4224b25cac19610968d6a37e2daf9ddf046ef158ef512401f8fd0e4f95662eebdee09dd4a7894cc8c409be086d41280bd78d6bc04c35a4e8cd3a2e83be3":"1c8e4cf6018211518494d46c2e0607fa42e236abc28d58f8175c530f84b1f030572f5f6a74cb5517e1fb999a637d352afcbeadea9121e695675859b66b499a3a351ecba5226e58ebbb59fe12e359e4c89cd51c8703d4643c49921ae495801c73627df404b91e828e1d0e03ae09a39defb5aa5f2c8106953772ba0713d3261329":"9e45029f4f13a4767ee05cec":"":"5cdc66b587ed5eebb04f42b83a6ab7017093514881c598cce332d74fa3fab927493ac15bff26835296e080b5b45ef907c0529fc2f4ed2fc09db179ef598e5d193ea60c301d3f8d823404814e3e74de0e1d2417c963e9246c353201c7a42659d447376e7d05c579dd4c3ae51c2436407b8eff16ec31f592f04b8013efcfd0f367":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"15652abe38cd09777bba21d0db04637f5737d3cb3922181b9f2d07bfdafd327a":"3a5e0d223ae981efb405566264e3e776":"cd755437cb61b539908e0cfaaa36c0123f8f17d1e6539783cb61d4b56cac3bc1e971c1ea558b12669b025cb6b9ad55991c6e2f8ee8b0b7901790193e226a0fbbfff7ff0bee6a554660b9f32e061b6c04bf048484ff9ebd492f7e50e744edd72d02c8fd32f87f9421bf18a5a20ebb4d9dbe39a13c34b7296232470e8be587ba09":"1d6c153dec3b4738a09c9fbdfe31a093eb7ea79b8fa49f83e5e1f46893590f074fb171fb66e30ef887767014e3a10a3aa05da2bd50dd7b7936e1d7f6f31af9030e31e76bdf147f4396464db0f6a72511c4885c6c2305d339906e3c761a3249d7ebea3bf463e8b79c3706e684575550e964b8047979f7aed6ea05056c4b5840b1":"01a573d8e99c884563310954":"":"162430c23f7adcf98575a2d9249b4b5cec42efae33776360ebfa6a19c8eee4bd6b07cbd274deadc3292b7cdbb7803e99d9f67ccc5077f3ad5808f339a05b3213dbfd11377673d4f9b486a67a72a9ac8ea9ba699861dce0de7e2fd83d3ba2a2ec7fabf18b95a2bbe2184ff7bddd63111b560b3afe7f2c76807614ba36c1b011fb":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a43f6d07042a15cd49f6f52a2a3a67c6c2ff420d95bb94b9fe03b287c3abcaf8":"3b6fad21f0034bba8b1f7a344edf7a3c":"2e01c0523c8293fc51388281dccdb8d0a2d215d729289deb327b8142d716c2bb849e9476545b82f3882ba7961b70c5da2a925ba18b6b121e9215d52ac479c9129c9cd28f81584ff84509d5f9dcb7eaae66911b303cc388efa5020ac26a9cd9ea953f61992a306eb4b35bcd8447eea63cef37bb0c95c1e37811115cf26c53e8c5":"b67e58c8b608724fd20aa097ee483bc4c804490cc79de635170944af75c87ae0ad8261365c1dc80d852553bcba18da9fbc3fbe61d27550a03003ef0c60202054626655509a9e1ab54677e537a4e761df011d6c6dd041c795446b384161ae9eab441afd24d19b58eb4fe5116cd7b11b751ebbd0a2adba7afc380d9d775177099a":"43470bc3d7c573cb3a5230f5":"":"e1720d451fa7ab9db4988567187244b15b6fe795dd4fef579fb72e41b21aaa436d2e5d8735a4abd232a3fb9188c75c247f6034cdebb07fd7f260f8e54efefa4f2981cafa510dd5c482a27753a7c015b3cae1c18c7c99a6d6daa4781b80f18bbe6620bfc1518a32531017a1a52aadb96a7794887c11ad6bdd68187ba14f72a4b5":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1f0f0191e18db07c0501dbab4ed952c5603a4cd249d2d8d17e62e10b96ae713f":"ab8be16b4db809c81be4684b726c05ab":"a5a6e828352a44bd438ad58de80011be0408d410f6e762e3145f8b264a70c593476b41bb87875746c97de7d5fab120bd2f716b37c343608ee48d197a46c7546fafcdbe3e7688b7e9d2f5b6319c91d3881d804546b5f3dbe480996968dd046f406c11f0dc671be0421cbc8b4ea6811dd504281518bb96148dddf9f0dc4e2e2436":"aad40e7866c26e486b6f6e8eb14a130d5f88891bf0d09aa8fe32f447ab8dea7bee5d3eda4499c0103a010483f2b64fdf1155499d31decf528c77dd7627884f9995c213cf7402143dbb7561d69c86886734260ac94ffac7eb33598d25714228ef43f744ec1af2a87e789f1e5d6fff0fbd5082dcc49328f194e8f8a14a5bfc962d":"d8bd7d8773893519":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a6cf7d83137f57f2310ee6bf31e8883952bb07ccdc12f516233ed533ea967e5d":"f17e37e73a28c682366bfe619cc673bb":"0f4dd201b18e20230b6233e0d7add6f96537dd4e82d3d0704c047fab41af5faf6bd52bd14fa9a072f81d92a2ce04352f0b66f088c67102d2d127a9850b09ff6087f194a6e8ccaba24091feb303eebb65f1203b2d22af44e7be4de71f03e6f6cbadf28e15af58f58eb62e5bddfae06df773cc3f0942520de20078dda752e3270f":"83ab20698fd7573fd121976a72b45a7f03aad84702fc8ac73d6926eabd8a546895aeffe4ba81d117507e2cd37d58eeff71cc3afa8a4449be85f228ea52f6dc6395bb43c1c9f795343720841682d9b2f00602eafa4d4cbe297bfc62467e526b9d823cc8eeecd9e5f8dbc2f65610663c6f37b3d896651b254bd60215629ade3b2a":"74110471ccd75912":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b0c85ac6b3887639838ddca94c5c69f38115aa00122322c8114642d12ea1b8fe":"14f68e533ecf02bceb9a504d452e78c7":"796a46236fd0ff6572b1d6257c874038f870aa71cbb06b39046d0fb6489d6ae8622b5154292ae5c4e1d5ff706daedb2e812533ae3a635d339a7fbe53780e3e8204924a5deb4b6856618f4c7465d125a3edffe1ab8f88b31d49537791c0f3171f08dbb5ed1d9ed863dafbae4ecb46824a4922862fe0954ee2caa09ab0e77ed8fc":"0210fce418e7e2199cb8f899c81b9be74a630d00269755f882fc4db27632e99685cc12c426a7503473646df1288d0ede28408be9add5713628700f8e2b2e27d7522520ed00ac47239084651eb99e7d03e1520aae137b768f3144232c16b72158fd5da4a26a2525b9b27791bf06d1eb2e671c54daf64fddc1420bc2a30a324ba5":"6fb0b5c83b5212bf":"":"5e6c362f7587936bcb306673713a6f1fb080783a20e9bbb906456973e529cfa0298206184509c30e1d3793eaaa5d564edd4488f04311821eb652e0a1f4adaf6971505ca014788c8ce085ceb3523d70284ed2bb0aebeba7af83d484df69c87f55a93b3d87baa43bd301c4e55eb8c45dcf3e4612535ea1bd5fdb4c3b9056d0cae9":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #0 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e61b1a6b40e2ab1245ff65dcfb9948318ac4fe55e9ed600cec301dae32ae0e93":"c356244b3034d288e4d4fe901b8e27c1":"bdcfeb09d5b97bab05a7acd9849e7de2c5beb7a4dc573c7e1c1d0c0409245a6584023114fdcc6413c800ca16847bde750b27c4d590248e2ce457c19b0f614f6aff4d78d4a19b3251531e5e852fbb05d09412cc1ff8988d1955ca6f5fe2d820f20a7642e3ae69e8122b06ba0918e806400b9b615e1abe6fdd4f56a7d02d649083":"8d67fa9fcf078e421cb63abeb25dba739ab0e09a091dd06b0c616e1e888f350edb2d73a42f57f115266ea20c7f8fc143ac746649612df06a5e29b4a15934dc049be1ab49d018ab86c4f37d8c3d9c714f038029e74d8ee3dbe61d81adc63712ea413b37f7604da12107aa1695d9b0981e5a92cdfaa5fbda0e31b22c6fd6f3b499":"86acc02f":"":"7c73182eca97d9617abb478a6ce62e3491a7e9951981c89c3071b161a4c80440614c3f24d0155073e28dcccee96bc8303dab4901ef77318df522d16d9da47770ef022395d6104cd623d93d67090a27507fc8ca04157e7939e639c62cd0e7d8a472314833c0eaa9ba2fd54a25b02854e3bff25cccd638885c082374ae520ed392":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #1 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4f5a02e9843d28c8c226ed70d44b8fced8fb757ab6ece4d4f06e3c3cec79e44f":"099e5d9aae89fb6391a18adf844a758e":"ad93e8662c3196e48cfdb5aa3bc923cd204151aa980cbec78f0d592b701f779c1c49f9e8686d7e2385a4146b21a643a59c18c8b82214f42560bcd686fad7c7c8e8c1944ce6b20ec9537dd14b6cf2592740ca112f4cd582250d69f240d3e957040e1f7e19c60b3c8f2bd00cb666604c38946eb9b2f17336d281b4794f71e538a2":"3ec13950d329f24074714c583bdc35686b811f775b76b0a8fcfa66fc56426c9d022f8ab0af38f8d2f71a068548330cdbe891670181ed7491bf40c739ef4dd93689fd35929b225089d2b151f83d9b3cd767300611144586767354c0491112c205409f3168092d27f9b9f433afb79820a2811984d48e70c1fb2a13bbb3ddbc53fb":"30298885":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #2 [#1] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1cdb218e0bd0e02156e5b48182990f778889793ef6018a8928e61164ac047c8e":"d2ffbb176f86bee958e08e5c7c6357c7":"bc580c4223f34e4f867d97febf9b03629d1c00c73df94436852cafd1408c945c5474c554cb0faf2bae35d3160c823d339a64ebd607cf765fa91f416fc6db042bc2bd7445c129b4a0e04b6f92a7b7b669eb70be9f9b2569e774db7cb7ae83943e3a12d29221356e08e5bf1b09e65f193d00d9fe89f82b84b3b8b062e649163dc8":"4d039618a0eb640329f90fe97de18bc928fc3fc7a0db42c97774bec2e882e872fc1097c8319f7837a16516bf387b1bae321c565e8fc1cb8480f051158e4685f0adba310d2c6253bc1300403cbd3f7ddcb2796a69f8bf9e73d47aada9a02673c1a3d5ecdac838abf22b385906236529a1b7dd5b8af2611a04cf4f83b15ba41cfc":"1997daa9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"dc1a145c18bdbca760f35eea0d4a5992de04a0615964ec8b419c8288ab1470f0":"7f8368254955e1b6d55b5c64458f3e66":"":"":"8ddaa2c3ed09d53731834fa932d9d3af":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7b4766d3a6615ee58b390daa228ae7a541c46ce80a1efe227cc43cb777df3232":"274367f31ec16601fe87a8e35b7a22dd":"":"":"5f3a757b596e06e9b246ed9bac9397f9":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d19b04055bf6e7ff82e89daef66c9d8319ab25f9197e559444c5729b92c4f338":"796efaff4f172bef78453d36a237cd36":"":"":"3b445f38bf4db94f1a9ec771173a29e8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7ca68e300534a90a7a87ca9906e4ac614a6aa51f769b6e6129753a4f83d10317":"45e6b23f8b3feefd4b0ea06880b2c324":"":"":"6c0a1c9c2cf5a40407bfa1d5958612":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a2b7cd693239bbc93599d3d12c9876e7303b227b8ae718e2c62e689e1fd62903":"548c9c8fcc16416a9d2b35c29f0dacb3":"":"":"3aa21f221266e7773eeba4440d1d01":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"156b854beb0c276a5e724f5da72f0d1ca4ae7cbd5f93a2257d95c2e5bfd78ad4":"a5129e2530f47bcad42fc5774ee09fe7":"":"":"6bb09ed183527c5d5ed46f568af35f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d824330c60141264e1f709d63227a9a731bcc42b4adec1d8f0161b10b4fdb2ab":"c5afaa45312c64ab3c3cf9d6c4e0cc47":"":"":"55952a01eee29d8a1734bbdf3f8f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5517589948d8aea778df6fd66c17a170d327f69e504f0a4bd504c4286a9f578":"6404b111c6289eefa0d88ed6117bb730":"":"":"637f82e592831531a8e877adfc2c":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"f6137b2bcbd327fbcc7f313efa10f6ffaed30e4782e222e1225c87103fcae905":"3b87b08337a82272b192bd067e3245ec":"":"":"1f2dda372f20ffddd9dd4810e05f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b5e70d1b78e931abf44bba3f937dbc344858516a8a8afe605818dc67d0c3e4c4":"58e70095c6f3a0cda2cdc7775e2f383d":"":"":"1763573f7dab8b46bc177e6147":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"90de0c047d1dd01d521f2dedec7eb81bc0ace7a5a693a7869eaafbb6e725ad7b":"d565c9cdfb5d0a25c4083b51729626bd":"":"":"78738d3e9f5e00b49635ac9a2d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c43e8dbeafb079692483a9fcbab964b76fccca6ca99e1388a1aa9bf78dfd2f02":"f2bd4fe0d30c0e8d429cac90c8a7b1c8":"":"":"ea7b52490943380ccc902ca5ae":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"13540919fdb95559e37b535a427efeee334309e34c4608459e204d931b8087e7":"c993c1802df0f075ce92963eb9bff9bd":"":"":"edfab013213591beb53e6419":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2a7b2e07c148ff0f627ae28c241a395876bbed0c20f3fd637330e986db025714":"8f7e1621c2227839da4ea60548290ffa":"":"":"f9da62f59c080160ec30b43d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b3e7837a75b38ae6d4299a1ae4af3c2460dfca558708de0874d6b1a5689b8360":"05d363b2452beff4b47afb052ac3c973":"":"":"6b4a16d1ea1c21b22bdcb235":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9df3ccd95f7570f6ecf5e5329dcb79bcd46cbcf083fe03aa8f5bd0f645c6a607":"774f4e70a7577b5101c0c3d019655d3e":"":"":"98ff89a8e28c03fd":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1c7123e2e8d3774c8f1bdbb2272f19129e04f29b4351ae19c3b9d24e6ea1fe87":"99f25cebd6cfa7f41390b42df6a65f48":"":"":"8e14a0a4853a156a":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"490090323e9257517e2453469caa3414045cacb4d05d5cebc6b9c06fa6d19291":"c1beff1ff6cdd62339aa21149c4da1e6":"":"":"f998d7c08d609b3a":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"360e48dd38d9e7f5bf29a2994ab5b3c9c70247102d94049ae791850807a4c845":"88126c350dfc079c569210ee44a0e31a":"":"":"f2ebe5e4":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1562b32e4dd843edaf4474b62cadd8f46d50461f5b22c9f1a8eae7367d35d71b":"af29fdb96f726c76f76c473c873b9e08":"":"":"13fd6dfd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d5160d0c98ffcb1c26aad755f67589000e2bb25fa940e6b1d81d780f421353d9":"1552604763453b48a57cea1aed8113f4":"":"":"660c5175":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c3a3ea3a097c0c2b3a4cb78462d87fd5a8f348687c4150e9d3354b388ab13d17":"f77945979241fb3a454d8e3da193e169":"a69bac31241a2c07d3f7e331b77f662b1e67ccb81c07f52578b01f5785de9437f02eb7627ca7b9af09c1cb428fe93d6deb31f4d6dd2f0729f87480bdeb92d985de1aaad4bcebc6fbad83bede9a5dd1ca6a15bf5d8a96d4edb5bee1f7d195e9b2e5fb2221a596d69f257c18a143eda870e22d3f2ed20c9b3b0d8c8a229c462fff":"":"6b4b1a84f49befe3897d59ce85598a9f":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e1626327d987342cba5c8c63b75b4ed65463a2b9c831f4f9f80325fa867d1d73":"4e25800deab7ecec2a2311f8fb44eb7d":"ebaffd558f24dae03117c69ac4b2b4aaeaffe7e0e7599eaba678bfce23a9914dc9f80b69f4a1c837a5544cba08064a8f924064cba4d783623600d8b61837a08b4e0d4eb9218c29bc3edb8dd0e78c1534ab52331f949b09b25fbf73bece7054179817bc15b4e869c5df1af569c2b19cb6d060855be9a15f2cf497c168c4e683f2":"":"8faa0ffb91311a1a2827b86fec01788d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"938da64b837275b0c80c442bdf2301aa75e387fe65a775d10a8ec840f62ff429":"dec6adeb60216cbb8a6c3afba49fa201":"4ac144bd95f405649444f01ab67ef3e4c0a54fdbd933b6ba00518c79db45c22c90030c45aadcfdb53ec8199be0cbb22dbb9ab938a871f4b3b0c98ed32590a051abb946c42726b3e9701f183b2092985e3457943a6350fbcaece2e6b111b179ea3fd10ac080a577a1481785111d5f294bc28519c470ff94392a51a2c40a42d8b5":"":"2211ca91a809adb8cf55f001745c0563":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e2436484ea1f454d6451ad8dbd1574b208d7a3ab4fa34869299b85c24348b43d":"97040d2ec094fe1c64fa35b35b7451a7":"bc198677513ce0e66697dfe52b22315fa5d8f92042f34cc9f373a01f94607df1a599132f60af010ed9b5e52162dd7b162912b68b11700e08f5fdafd84d10f760fc05ec97c05b83e55155194f399594015b90a19c04fb992e228940fe1b54ba59c4bb8318b33cc0df1cb1d71c389473dfb3eefabfe269ca95db59a7bc0201c253":"":"2e080ba16011e22a779da1922345c2":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7fb3fc72eb8a3aa5b102f90039f852cc3fd64f46915f5e49f1d9e02fe9cc13b1":"f6120fea313362524917c53d90bafb4f":"60c2be7fbd15faf895fd19a9ce775fe2b183b45cffafe4fcbf50d421bea97347e41a9418cfa129b2dda63b889a70063010215dbe38c37feae18bc31b34f31b726f22177f2b4b9d648dd4aa80edfd12dafaee10baa83224354432d1cb62ccabe38bb8448d162cd0d30e988d2e1a2458ffdafaacbdff928756390f66dc60d7ea45":"":"83de3f521fcfdaff902386f359e683":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"697c96d80d0a3fa9af35b86f31fb71a17aed30ce841c79896bbc8863b3b3ee04":"3a5163ec7e007061838d755ac219855e":"de50c12da63232768d5eb9920d49683b5b7114cb77448fa10b9d63552ec5d9c2eac94b375d11f944959f903bb20c696639b6e7f108ec1e873870098c631ddacb2c25268cfc26d2a4cacfb7dda7383374c5456bcf4daa887a887f4293f8caa14419472a8bf7ffd214dfb2743091238b6d1142b116c2b9f4360c6fe0015cd7de81":"":"cd4542b26094a1c8e058648874f06f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"66c1d9ce3feb0e966c33e3fd542ec11cc32f18c2514b953103d32abcdc72633a":"46fdb88fdde9b7d74e893802a0303256":"55d2f263d2e3cf0b390fce1dd1ebd5f666086f26e1ce2f08002bedbb810ada3922c6bfcf6a6adaa556e9e326c9766f02b3eb6e278da2fa3baa7dbdb6373be3c6ecfbe646b1a39e27c5a449db9b559e7ea3496366b8cdbca00ee7a3dea7fdfbea1665bbf58bd69bb961c33a0fd7d37b580b6a82804f394f9d5d4366772cee3115":"":"96ca402b16b0f2cd0cdff77935d3":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d7c949420dc9497232cd5810f316d11f9e85d36c430b5943ba79836d88c1eb92":"7ef9788ff09cbeedd9569d49083a4097":"ca1de5cc3fcde2638eb72210e551e9c0e0a3f5570d5be83a9a4406b545d854bf17e75b9cd0f4c45722fbd71319a317b72a8798485e9316a1c8102432b83bc95af42f6d50700ba68f6f2e19b6af609b73ad643dfa43da94be32cc09b024e087c120e4d2c20f96f8e9ddfe7eae186a540a22131cedfe556d1ebd9306684e345fd1":"":"8233588fca3ad1698d07b25fa3c4":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6fe7c70815aa12326cdcbb2d2d3e088bbaaef98b730f87fe8510b33d30e12afe":"e0253bd1f19e99a7f8848206fb8ac4a4":"397897eca4856f90d14c3cdfe1ad3cba47e23174ae2dab7d2a6320898584e03bffa3ffd526f416d7b3c579b0f3628744e36eebb5df519240c81d8bbbf5c5966519c5da083ab30a7aa42deae6180e517cdd764b7f77d19cc1a84141817758887a8d7265e7e62279b9d33cd2f1ba10fd54c6c96d4b8a5dbe2318fef629c8e2af0f":"":"477b0a884d788d1905646bd66084":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"cbeefb3817cb02d617f385cf2371d52c8bcbc29e5e7a55cd2da131ca184c6e89":"f74156d6400ae46b612531848bffe18f":"1abe2ab05ceccf2391273126fe4a4426b94d2c3b97a7f1cd2ee6bb952bf4a546e972b5a1701d5ddb0e5bb7a248fcb47107a9fc77e4b9806b68a11850119aa239fa8be1370e3a2e1a8b168f7323afdfc4b8917d92570167848a56132d68876abc386c258a9233dc8a9eb73443b052e842c3d63e8b5369acdd038404e4e9a4b038":"":"0cb67cec1820339fa0552702dd":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e6f5f65ce2fc8ec3f602f5df90eb7d506dd771337913680ac16bdcd15c56583d":"9212a548c597677d1747e98ce6fb18a4":"55ca486c0183d0134925880d2e21dde0af51c4c77c6038a5a9c0497884e0aa4715bdb5b4bb864acc708ac00b511a24fa08496df6a0ca83259110e97a011b876e748a1d0eae2951ce7c22661a3e2ecf50633c50e3d26fa33c2319c139b288825b7aa5efbd133a5ce7483feecb11167099565e3131d5f0cb360f2174f46cb6b37c":"":"08d7cc52d1637db2a43c399310":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0e9a0391435acb57eae2e6217e0941c79a3ff938ec6a19b8a7db2ea972e49f54":"27cd1d7af7e491e30c8110cc01392529":"79140d32bb32dace0779e2d37a0f744d6d973e99a279962b43a6c0af63772e8a0a21d5d9dd3c33d4b218cb2f6f24dd8d93bb4e1e6a788cb93135321ecfed455e747fa919b85b63b9e98b4980a8ccb3b19d50d735742cb5853720c2ad37fa5b0e655149583585830f8d799c0d2e67c0dc24fc9273d9730f3bb367c487a5f89a25":"":"fbb477dd4b9898a9abc5a45c63":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"55a12eeca637654252e3e40b371667e3f308b00f2fd2af696223e4cd89e3fd4e":"8a3793b6441258360f7f4801b03d0b26":"f5810dc5f25e49bd6d94bc63c2494aa7a579a4056a25f1dd9b2734d0b8731ee52523edd54ff475651d45c213e1bf254327fb0e2c41a7d85345b02bcc9d27b08915d332e1659671991a4bb74055967bebbba6ecceb182f57977130623d5a7b2175fa5a84b334868661c1f450b95562928b4791759796a177d59ed18bbf141e2ad":"":"99230019630647aedebbb24b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3d353f870a9c088de5674efd97646b9c5420b2bcdfcffefcadd81682847e5331":"f267fa982af5c85359b6447f9b7715ea":"7cf55630867af5dff747c8dd25bcc531d94a7730a20b6c03d46059ea93fcaa00d07ee17dad0e0dff814b02dfef0cbe00b37fd2f5f95ead7c72be60016f2934d7683fc1e47185c7211c49cb03e209b088edb14e533dbcb792ab7033728904f7ff12381a236dba97894ec1fafcf853ab15fff343f9265d0283acef10168ffd1271":"":"9553b583d4f9a1a8946fe053":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d227c9ff5d17a984983056fb96f3991932ae8132377529c29238cf7db94a359d":"b8f6536f376a7efe0e684acf350bae70":"1cc25da31f90de7fa47ebce92754d3faa99f88d4e25ccab45645c1acdf850d55d7f02f61a0bfdc3125f29259d7da8abef532fe0966c63d3486753c8a2cb63a39349a0641b2f2b9526a03b97d58ca60fbb054c6c164ff2836688b0cad54df2b165bc082eeae660e768dde5130e30f8edc863446661c74da69b9e56de8ae388da0":"":"44b95a37fab232c2efb11231":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b2a57ef85ffcf0548c3d087012b336c46f6574cf1d97ca087bfad042ee83eec2":"3d580402d2a8dc4d7466e5dcb456be7a":"c2b9e95c16e55028794a63ef82d11fb83a2a75dc34a81f238e472c33264534bdd54cd07d02a0ecf9019ad1a6d6c779f339dd479e37940486950f183bade24fca2f24f06d4037b3555b09fc80279ea311769473eb0630b694a29823324cdf780d7d1a50d89f7a23b05f7a8c3ad04b7949aa9e6a55978ba48d8078b5a2fd3c1bbb":"":"072d4118e70cd5ab":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"63889ed5bf2c27d518a696b71c0f85592e3337aae95b5bf07289e4c5dfdc088d":"1ad534280a0fac7dce31f2ae4fb73f5a":"be1b9dabea33bb9443e27f674b27931c0fba699a33dc86fab29e50b76a9441030444b465317bbf2949faf908bc1b501d11a5ea2042e4b460a85f3be5836729e523d99b56ef39231d5c6d8ae2c2ab36ef44e2aa02a1f2c559c6e333216c7f9ed5f9b880a88e920219204c99a3ae8f90afd1396563bc59a691a93e0070b0b5fd90":"":"1bcea0ac2c1a0c73":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"94e3e2c17cfb6f52d4fdba3ba6d18bba891b6662e85df14d7e61f04adb69e0e5":"8a80efb3bfe220526997543409fddb4d":"05da1b0f7ac6eef488d3f087ecae7f35abe3ef36d339709dc3fcb5b471979268ee894c3b6c7f984300d70bc5ea5fba923bfb41d88652bdaecc710964c51f3e2ae2c280b7d6c8e3b9a8a8991d19d92d46c8a158123187f19397ad1ad9080b4ffd04b82b5d68d89dacd3e76439013728c1395263e722b28e45dabf1ef46b8e70b5":"":"faa5c13d899f17ea":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"fe5e479ad0d79dbf717a1f51f5250d467819e444b79cb3def1e0033c80ddadd8":"47ce838083fd070d8544c0ad5337cdc6":"98476bf05a18c4ff1b6024dd779c1ac06d838705a0a83fe42bee5fc6ebf3b2a1a5049b67f4aabc8239cd6ff56504bcbad1e2498c159bbec2a6635933945f6ea49e5bc763dcf94f4b3643d3888f16105abb0965e24f51cb4949406124145e9ae31cc76535b4178492f38b311099df2751f674363ae7a58f6f93019653b7e6a6f0":"":"a3958500":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"27d4dedb71a8f68ca5ce2b9e56da772bf5a09b7981d41cd29f485bd2d1adb8d4":"7e6f0343c54539717a97b6c8b9f7dec4":"d386db78043f719b7e137cbf79a7f53dda2fe3baccbebb57d499f6eb168e5151f10081d76b72ae0f30165efbdda469e826f9246e59dbcad5c0b27691c00d6c192c24073e99c19cf8c142087c0b83c4ce2fc7ba1e696394e5620ab2d117d5dcd2ac2298997407fd5de07d008de8f9941a4a5f8074736a59404118afac0700be6c":"":"50fd1798":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,0,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"5a7aa836a469d28542d0d24d3232fad266da8fc889c6b6038b726d3da25f7b20":"9faf7cd805803e143ec8f3f13475efd2":"1006c707f608728b2bf64734062b12a5625062bcdcb80a3ce2058352a2922d5e6fbe19681b4f0d79ad3c837f81e72f2fbf8df669894e802a39072b26c286f4b05188c708f7c6edd5f5bb90b87ffa95b86d84d6c1c4591b11d22c772a8ad7f2fe6bd8b46be0e93672df2e8bff8ba80629e1846cfd4603e75f2d98874665c1a089":"":"07764143":"":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a9444fd176acbe061d0221fde3ddfcc4ff74e995d981a831297c4cbda51c22a1":"5714732145470da1c42452e10cd274b5":"":"c146ff5a988496cad7eced7a2ea471e0117d5d6bd2562c23ce9db4bf36d83ba3fc22e90486ec288a627d208e0b2fd3b65f8301cf7fc41d97959981a95cd1cf37effc46db99b94b21c941c3613c26a10b1a6b7793f467d58ff5134612230f1c49d7e1fcf664fe52fc6eca46273982f6fe729b009d90eb8d8e4a0b0dbe907b76da":"db85b830a03357f408587410ebafd10d":"":"a3cad9a57fa28e6f6aaa37150a803bf8b77e765f0702e492c4e5ebb31ae6b12d791149153e469a92bb625784a699fd7ca517500ee3f2851840ba67063b28b481e24ba441314e8b7128f5aaccaf4c4e2c92258eb27310bf031422b7fc2f220f621d4c64837c9377222aced2411628018a409a744902c9e95c14b77d5bb7f5846b":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"686d3bd071e3f46f180611bc4ec8d7726fe72b6c617e7d42b3339f53918c9e36":"a714e51e43aecfe2fda8f824ea1dc4b7":"":"21983ad66449c557263aef299da6eef8f31d576fc17ed2dac3e836f7c2ceaff3094b2695452680e188df10c174810efd1fbaa6c832baedce0b92e4c7121447f6461ac909b4302cdf658095b1de532b536faa4fb38cfdf4192eb5c3fe090d979a343492f841b1edc6eb24b24bdcb90bbbe36d5f8409ce7d27194a7bb995ecc387":"cd30c3618c10d57e9a4477b4a44c5c36":"":"9610908a0eb2ee885981c9e512e1a55075a212d311073bbb2fb9248cce07af16ee4c58bdc8dbe806d28480f9065838146f3e1eb3ae97012cfe53863a13d487f061a49a6c78ca22a321fa25157dbe68c47d78f2359540cc9031ee42d78855ed90e6b8ea3d67725bfffcb6db3d438c982b5f88d9b660f7d82cb300c1fa1edebb6b":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6fe81f15a02e2ecf46e61199c057102d160e6b5d447d4a275972323fff908c3e":"91d55cfdcdcd7d735d48100ff82227c3":"":"0b4ee0385e6665da8fd2ae47f2d0cf1c5bd395a3bb447047ab5a3ae0b95355bf83d0381119a8d4c01acbe60cd7885da650502f73498a682fdc94f7b14f4c753226064fa15e3a90a6083e053f52f404b0d22394e243b187f913ee2c6bb16c3033f79d794852071970523a67467ce63c35390c163775de2be68b505a63f60245e8":"cd7da82e890b6d7480c7186b2ea7e6f1":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"4c2095e1379389dc3810e8819314f5a2f87d1494213c5b1de1a402f7f4f746c4":"19788b2e0bd757947596676436e22df1":"":"26ec8ebac0560538a948afbc18fb730e9a91f21392bde24b88b200f96114b229a5b57fa9d02cf10e6592d4dfb28bf0f00740c61157ce28784e9066ea3afd44ecf3a494723610cb593c0feffc6897e3435c6f448697ad3e241685c4e133eff53bdd0fe44dd8a033cfb1e1ea37a493934eb5303ae6ef47ce6478f767ef9e3301ab":"f26a20bea561004267a0bfbf01674e":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"be5351efc0277afc9759ec2464a22cb4401f7a17efd1a205e7af023c7ed30ee1":"c6b26117d9dbd80c1c242ad41abe2acc":"":"1eca91406f338fc09c2988b1d7dc8c409d719300c03840a497d7b680cdd5e09b144903477f7116a934e1d931cf368af1fc2a0a0e7caa95475a3cd7bf585a16fda31eb3f8201db0216b37a1635c1c030836b3dd05ca5b0194388fa198e717822131d5d4318690ef82d35ac80b27fff19aec8f020dc6c6ce28f0813bbbf8230ad9":"61051d6c0801b4a6b6ca0124c019f3":"":"95447aded336d6c20d483a6f062d533efed0261ad321d37bf8b7321b98f55c0f0082ce7f3d341b18fea29a72fc909d30cd8c84a1640227227287674a9b2f16a81b191ecf3b6232d656c32d7b38bea82a1b27d5897694a2be56d7e39aa1e725f326b91bad20455f58a94a545170cb43d13d4b91e1cee82abb6a6e0d95d4de0567":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"814c2cdfdeecf39d43bb141fbfc62dac44f7552c5e5dac2d4913303fc860119b":"0db3ade15cb0dea98a47d1377e034d63":"":"0d3013a1d7132f685d001420daa6c7b643bc36b887511acc4588237d3b412c79e4ebba29c08248ad46c7239e8daa232b7483c9c4e3d1c0bbebc696401efe21f7fd6fc0525a4ab81bd9a893d5f7ab23b70ed07c00f33649b8a996a006de6c94f7793f72848793f4d5b31311c68aae1e715b37409fbe506dac038a0950f05fe82b":"e62f910b6046ba4e934d3cfc6e024c":"":"374d03cfe4dacf668df5e703902cc784f011f418b43887702972dcc3f021bcb9bdd61ed5425f2975b6da7052c4859501eb2f295eb95d10ba6b2d74e7decc1acacebf8568e93a70a7f40be41ac38db6f751518c2f44a69c01c44745c51ad9a333eda9c89d001aa644f1e4063a8eb2a3592e21c6abc515b5aacaec8c32bcf1d3c4":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1ae4541110f2bc4f83cd720b5c40c8315413d896e034b75007f172baa13d29ec":"83f98eec51ee4cae4cb7fe28b64d1355":"":"5ea811e7fbfc0e00bf2a6abfac50cad9efd90041c5f7fb8f046a0fecbd193b70a2de8a774d01dd3cd54f848cb3e9f5152ee1b052ba698bebfba1fbbdae44a260447d6e6482640ae4d01c9cac3d37d4ffe9a0de0b6001de504a33ef7620efe3ce48ecd6f5b1b3a89185c86d4d662a843ff730e040e3668d6170be4cced8a18a1c":"df47eef69ba2faab887aa8f48e4b":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"20c9b662ec4bd13bf58d64cb0a7159b0e7fee4703af66292bf75c8bd6e42e8dc":"2bc0847d46f3d1064bbf8fe8567f54a2":"":"45b64f2ed5ac707890c0c1726adf338770ce6a728fe86bb372c4c49409a32705f881bc4d31a27c455c7c7df9dd2c541743523e7d32f88930d988857847f011be5f5f31a31e8812745147cbff5c1294d0fd4a7285db4833f22bf1975250da99c4d0dd2c9688d7f8001bb6ef2bc898ce4d42c5b78e74645b56ce992338f49d4183":"5a1bf25aa8d5c3fe5cf1be8e54a1":"":"9079d6275db076625e8474c2914fe483d413d5339202f98f06c3b0ef063d8f3d31029deaf7f9349bfec57e5cf11f46f02d5a6520c7992efc951adbbea6d08e53faeb10dfe8b67ee4685da9ea4fe932551a65821147d06d4c462338e6ddda52017c2bc187fd6d02b7d5193f77da809d4e59a9061efad2f9cadbc4cd9b29728d32":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0a1554db37f2e275732a77e521cbd8170729d8677a85db73feacf3c66a89d689":"b9194a4d42b139f04c29178467955f1d":"":"5421d93b7e6e0091978c673df4f3a406aef5f13eb5e6f95da19b0783308cbe26d4fd6c669cc4a9f069d7e62e4c6fad14b80e918fe91556a9a941a28b3dbf776a68ac7c42df7059b5ed713e78120aec84e7b68e96226c2b5e11a994864ed61b122e7e42ef6cfdae278fadbae1b3ea3362f4e6dc68eef6a70477b8a3ffcfba0df9":"05949d591793ca52e679bfdf64f3":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"3ab1d9bb571c4bdc9f3ef340914bddcfe0c8e7718d4a2530334372cec86e5fcb":"6a5335901284dd3b64dc4a7f810bab96":"":"80bcea307e009745724d5f15d21f3b61a5d5a8401530346b34a2adfa13e3e8c9c9327d6fad914b081e554fbe6c1c6fe070b566620e559555c702c0ab5becf61ea1d9de64351ce43b2276ef4e20b5af7ce43db6d21286af4e740ef00c6d790705afcf0ee4850fffc12c662f2bd8212feb21db31065ab8f717a7509c213352b869":"04b8e5423aee8c06539f435edd":"":"36b9602eee20b8f18dce0783cd1e01a799f81ae0a1ce6d293a26c62f47e7dad85c8446697cc09c81d3d9ead6f9e55c4147211660c8aea9536cc5516e9883c7d6854be580af8cd47ba38fa8451f0dad9c904e0e7f9997eff7e29bf880cd7cedd79493a0e299efe644046e4a46bf6645dfb2397b3a482a346b215deb778c9b7636":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7dddbd5657e22750bfe6baa70a1f4ac46c1ef8bee573a57cfcef50b66f85e593":"fcb962c39e4850efc8ffd43d9cd960a6":"":"2bf5aba83a8161b9d21ff29251fb0efa697b1ea9c1b3de8481d5fd4d6b57afda0b098decdc8278cc855f25da4116ed558fc4e665a49a8fff3aef11115757a99c10b5a73b1f794f9502186c13dc79442f9226bbf4df19a6440281f76184933aeae438a25f85dbd0781e020a9f7e29fb8e517f597719e639cbd6061ea3b4b67fb0":"1d8cdadcf1872fb2b697e82ef6":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6916b93b2712421f1f4582de7ec4237c4e42e2b32c7dced2f8bb5bd2e0598312":"b4d9248bb500e40de99ca2a13e743f1c":"":"3739cca20279a36ddb857ac22beae901a49529b3182463ab81a7c46e437eb0b0571e8c16f7b626ecd9f2ca0cd83debe3f83e5d58ed3738899f4b616755eb57fb965208f261736bdf7648b1f8595c6b6a779768115e3077dfee7a42d44b555a51675fb1ce9961d0e21b2b9b477c0541184350e70decf7c14a4c24b8a6cd5fed8e":"090d03446d65adcc0a42387e8e":"":"0255be7ac7ac6feb3a21f572f6a593cc8a97f17af7064c80e478f4a6c469cf94d604bc014b003bf284d216161a9c8a493af43c6a0d8caf813a9e6f83c7ed56dd57543876b11f76aa2be80dcd79d19ac61f00fa423ac2f52fae7a8327cd91494ca4116feb735980ad0a4b1445cb7f38cc712b8aee72179e65b97fca38694e3670":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b751c8b724165009a8bd97a9d2a0e22cae5a95c4743c55eeeef0a6fe7d946bec":"160c50c0621c03fd1572df6ba49f0d1e":"":"e8546a5af1e38114822e60e75563a9399c88796f303c99c69d1f3c50379da81e1cd5b5a4a721e23c59da58ea4361b7ff58408e506a27fea24f9a235c6af7f7a5bd93fa31e90edfc322821c08d6324134830b7fe160b4a3e6d27866a10e6e60762a31618ef92f5c67ccb1deb1f1b188f0e687165e7c366c7418920df4f4fcdcae":"9fef9becf21901496772996f":"":"175fa6b7cd781ec057ff78ba410f2897a920739b5fc4f04bc9b998fbc7cc18e327ad44d59b167e4627256aaecd97dc3e4a7c9baaf51d177787a7f4a0a2d207a855753c4754d41348982d9418b6b24b590632d5115dc186b0ba3bec16b41fa47c0077c5d091ec705e554475024814c5167121dd224c544686398df3f33c210e82":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0faf32c22c2a4ee38fe4b5ce08f98fdf6f83b5038dcba5ec8332b3eeb5c710c7":"04885a5846f5f75a760193de7f07853c":"":"8a556cc30075753c6e94c2f669bca2058ff6abcbffffc82da7cfca0a45af82dfb4cf487ceb4ede72be87ee4c8b72db1e96459de1dc96721464c544c001d785f2188b9fccaec4b1a37970d38b326f30163d2fdfdf8a2ce74aec55abcd823772b54f8081d086a2e7b17b4086d6c4a5ea67828ef0b593ea1387b2c61f5dfe8f2bb0":"0c13506ed9f082dd08434342":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0dddc3d2f82bdcdbc37648a6b9b416af28753740f8e998cd1a52a0b665369f1c":"0a93b883cbd42998ae2e39aab342cb28":"":"07bf84b15b21951fd22049be6991a672503ae243b8d285fb1e515e1d2c36bfd5b0d0bcce85791f2cea8f616aed68a7d9cf4eaf76418e8b1ec27751de67cbfd9d9f7905b2667904f10d598503f04c04ea00a681ff89a9c446d5763898430bd7a9dfebfe544e3ed3e639b362683a651e087626ffa63c0c2b3e0dd088b81b07f75e":"5c37918edb7aa65b246fd5a6":"":"ff7b7b2f88b8c6f9f9bad7152874e995eea0ff1ce1ecd9b8d563642a37a31499f14d70f0dd835b7adf80928497f845fd8c2786cd53af25f8c9fe1bba24e3c3860162635bbed58f06cf6c9966bb9b570987a48329279bb84afb9e464bb4ad19ae6600175086e28929569027c5285d2ed97615e5a7dada40ba03c440861f524475":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"a0b1a62e46e7712277fc711e19d0c0c865ee77b42ac964b7202dbcaf428086c2":"e20957a49a27e247d00379850f934d6c":"":"7dd7c0787fdbea4aacf929341659dcf4b75cbca8f92001e8b62a4d7b40272c5755fa9c445857db05328dc11ce5221f044f4b3dafbf0e2d72a1ad0d3e4c804148db578218690ccc620d8b97b4450ff83400a6caaa959617611446a6627138a4067be9ea410d4b0581022ab621928205b4a4480560fc4c2c3b39a2805684006f35":"c99751516620bf89":"":"9307620479f076c39f53965c87d20c2aff11c736c040dba74cd690d275591a5defc57a02f6806de82eb7051548589484364f6c9b91f233a87258ede1ee276cb2c93b4fc76f4d7e60cbd29ba2c54cb479c178fa462c1c2fb6eeb3f1df0edfb894c9222b994c4931dedf7c6e8ddecbde385ddf4481807f52322a47bf5ff7272991":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ffcc1c88fba1723b3ab57b458d9bffb98b878c967fb43b9db2ae0753d32a3bb1":"d533c2170c5dc203512c81c34eff4077":"":"19b6dec86d93c466307de3a36c0791ed1010b1b9cf8d30347ae46e0f9283c9fda43da8cb491dd17cc4298b1f0b876d6a0f4bcbc9667fe34564bc08f8f7b67045057d19f4bf027bc839e590822fa09a5cef1af18e64a0116aa2a01a3f246c2b5272c18c9aa23efe674ba53d533ae8f0695cb78c1155cdc7a9d7fae2c4567dc07c":"167ec8675e7f9e12":"":"0539287ac546fe5342e4c3c0ec07127dcd22899abfe8cdd6e89d08f1374d76e877bec4844d06e0a9f32d181c8d945ba16a54ce3725fae21d8245c070a4da0c646203d6b91325b665ab98c30295851c59265b4ab567b968b6e98536b7850738d92e9627b4c9c6f5d9ae2520944783d8f788a1aa11f3f5245660d41f388e26e0a1":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"55e94b339c3bafe068ef9cc30787cc6705850114976843777c92b4b331801650":"2e2b31214d61276a54daf2ccb98baa36":"":"147cc7bc4008dadf1956520b5998d961499bdf3d8b168591adbfd99411ad7b34eb4b2a5c1bb0522b810fec12dd7c775784d7ecdc741e6dec8191361e6abf473b219221801951b4d5ffe955ab50eef9cffdfee65ba29ddfa943fb52d722825338c307870a48a35f51db340aa946c71904d03174b1e4a498238b9d631a6982c68d":"5266e9c67c252164":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"13c9572bdef62510d84f2d415cc481cd1e71b9c1132b43e63b21ba4e16de9b39":"a8339ba505a14786ad05edfe8cebb8d0":"":"7c78e634dec811173ff3c4a9a48ae3ae794fbd2aefd4b31701777ff6fcb670744c592a1d298d319717870dca364b2a3562a4ffa422bf7173c4f7ea9b0edf675e948f8370ffd0fd0d5703a9d33e8f9f375b8b641a1b1eecd1692ad1d461a68d97f91f9087f213aff23db1246ee16f403969c238f99eed894658277da23ced11ee":"df3cab08":"":"91f9780daefd2c1010c458054ac6e35baa885cdd2c95e28e13f84451064e31e0739f27bf259cb376ab951e1c7048e1252f0849ccb5453fc97b319666ebbfbc7ef3055212a61582d1b69158f3b1629950a41bc756bded20498492ebc49a1535d1bd915e59c49b87ffebea2f4ad4516ecdd63fa5afda9cce9dc730d6ab2757384a":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"30a14ca53913acbb215b4e4159083106db3fff83cbedd1e5425f65af1e94f5dd":"4f23f04904de76d6decd4bd380ff56b1":"":"8c5f73ee1544553b712ad7a14f31379c8d54a4e432fb6c5112436988d83c4e94954b0249b470538fb977b756fbee70b811d4dc047a869e207bb0b495f1e271d0034e912000e97594033e0dedde0591b297f8a84bafcc93a46268a5bba117b558f1c73513e971c80a7083e1718fc12d0cc0d996a8e09603d564f0b8e81eea28bc":"18e92b96":"":"bb4b3f8061edd6fa418dd71fe22eb0528547050b3bfbaa1c74e82148470d557499ce856de3e988384c0a73671bf370e560d8fda96dabe4728b5f72a6f9efd5023b07a96a631cafdf2c878b2567104c466f82b89f429915cf3331845febcff008558f836b4c12d53e94d363eae43a50fc6cb36f4ca183be92ca5f299704e2c8cf":1 AES-GCM NIST Validation PSA (AES-256,128,1024,0,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"e69f419140289ac25fb0e2ef9cc4f7e06777ac20f7d631918d1af0c8883b7d6a":"531248afdaaf1b86cf34d2394900afd9":"":"ff8dfa4e70490ea9c84cb894dc5d7e1b935ebcdea80a39c4161d4db42cbb269cc86abd381af15ec9a4a42ed18c1eed540decec19722df46f22aa06883297cb393fb23e4bb31a817e88357aa923c7ecbcf24c28a09f622dd21fa70c0a02193024fdcefeaa96cc1b50f81a65dfa9e1bb5126f0c9766a861eed096ec15fb07b0f81":"c6885cdd":"":"f75299e0ead3834fc7ebd4b2051541b598ad57cc908fdcd4324cf4ccf7dcf7b3f0737ad6c026399a8b1b6d3d50011b3c48ea2c89833b4b44c437677f230b75d36848781d4af14546894eecd873a2b1c3d2fcdd676b10bd55112038c0fdaa7b5598fe4db273a1b6744cba47189b7e2a973651bfc2aaa9e9abea4494047b957a80":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"404a5d1ac9e32f9caabffbfa485ce9c27edc9e5cde0f2aab4f32ce3121449b88":"b6e6c078e6869df156faa9ac32f057c3":"6ebc75fc9304f2b139abc7d3f68b253228009c503a08b7be77852da9e1afbe72c9ab374740b0dc391fa4d7e17de6a0aa08c69e6f5c5f05411e71e70c69dfbcf693df84c30f7a8e6c7949ea1e734297c0ea3df9b7e905faa6bbdcaf1ff2625a39363308331d74892cf531cb3f6d7db31bbe9a039fca87100367747024f68c5b77":"b63ec4d28854b7fe2d4d13973f5bcb16f78494ce25cc2820de9d0dc1d8d91db1f19bc9e01cee8418c9e88a69b2f30cdbb0dbdbb50be71e1e666c111c126f2b7197c02f69a1b2ec5e1bf4062b2d0b22fb0fa1585b4e6286b29f6ac98d1b1319dd99851fa6921607077d2947140fdeeea145b56ea7b6af276c9f65393bc43ede33":"94c1b9b70f9c48e7efd40ecab320c2d3":"":"56a0ac94f3ec7be2608154f779c434ee96db5ed4f5a6e1acfb32361ce04e16e1337be5978df06d7c4f6012385fb9d45bb397dc00f165883714b4a5b2f72f69c018ffa6d4420ad1b772e94575f035ad203be3d34b5b789a99389f295b43f004de3daaef7fa918712d3a23ca44329595e08da190e3678bc6ad9b500b9f885abe23":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"b56f0c980acf7875cf7f27d53ad4a276adc126d0b93a5774ac4277eecad4309e":"b004c049decfb43d6f3ec13c56f839ef":"b2045b97fbb52a5fc6ff03d74e59dd696f3f442c0b555add8e6d111f835df420f45e970c4b32a84f0c45ba3710b5cd574001862b073efa5c9c4bd50127b2ce72d2c736c5e2723956da5a0acb82041a609386d07b50551c1d1fa4678886bac54b0bd080cc5ef607dca2a0d6a1e71f0e3833678bf8560bc059dae370ec94d43af6":"2c94299e36b7c4a825ecbc5a7809061e0a6761764a5a655ffdb0c20e5c3fcb10f4e93c68aa0a38c2acc5d06f2b7c4ff4fcf814b551bfefa248dbe06a09a0f153213538a31fa7cf7d646b5b53908d8978f514c9c4d6d66f2b3738024b5f9c3fd86b6da0c818203183f4205f186ea44a54edb911b1a17c424c95852c8d271b2e93":"fce7234f7f76b5d502fd2b96fc9b1ce7":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,128) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"1c5027c36e6caa1b3e5e45fead32b5e3126ac41f106c491b0b3a7c16502f4fe6":"3ee660f03858669e557e3effdd7df6bd":"93e803c79de6ad652def62cf3cd34f9addc9dd1774967a0f69e1d28361eb2cacc177c63c07657389ce23bbe65d73e0460946d31be495424655c7724eac044cafafe1540fcbd4218921367054e43e3d21e0fa6a0da9f8b20c5cdbd019c944a2d2ee6aa6760ee1131e58fec9da30790f5a873e792098a82ddf18c3813611d9242a":"58f0ceaa31c0025d2e6bb58720cce4b64f5f6c657c847ae42936eb1e343fea397c8a8cf2f5ef02ffaec25f431900dcb0910cf32cea9eca3b78aed1c451c7af51066489f87b2a5f8cf28d6fdb6ce49d898b6167b590a3907be7618be11fb0922a3cfd18e73efef19e5cdc250fa33f61e3940c6482ae35f339e8c0a85a17379a4e":"ac33f5ffca9df4efc09271ff7a4f58e2":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"34c3019810d72b5e584f0758f2f5888a42729a33610aafa9824badade4136bbd":"f315ea36c17fc57dab3a2737d687cd4f":"f33c5a3a9e546ad5b35e4febf2ae557ca767b55d93bb3c1cf62d862d112dbd26f8fe2a3f54d347c1bc30029e55118bab2662b99b984b8b8e2d76831f94e48587de2709e32f16c26695f07e654b703eba6428f30070e23ed40b61d04dd1430e33c629117d945d9c0e4d36c79a8b8ab555d85083a898e7e7fbeb64a45cc3511d99":"22deef66cbb7db240c399b6c83407f090d6999ba25e560b2087fed0467904bb5c40cbaa05b8bf0ff5a77c53fa229478d8e0736414daf9c420417c391c9a523fd85954533f1304d81359bdcc2c4ac90d9f5f8a67a517d7f05ba0409b718159baf11cd9154e815d5745179beb59954a45a8676a375d5af7fae4d0da05c4ea91a13":"0bae9403888efb4d8ec97df604cd5d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"29397d98fc5a7f04b5c8b6aa3a1dd975b6e4678457ae7f0691eee40b5397503a":"885543a45fd1163e34ef9276145b0f8c":"d88beaa0664bcef178cbdbfab17ff526b5c0f8ad9543c6a312d93c336707fbf87c0448b07a550580953279f552f368225cc6971f1eecc718d6aad1729c8d8873081357752bd09d77075fa680cb2dc4139171e4a0aaa50b28c262c14fd10b8d799ca1c6641bb7dfdfdf3dea69aa2b9e4e4726dc18b0784afa4228e5ccb1eb2422":"0bbf1079cb5569c32257bc7e52371db46f3961b457402b816588243b4523543430d5ca56b52de6632724c51e6c3af310b28822c749a12bdd58dee58bbc3266631562a998ec3acdc8a2567a9f07f7f9759c3f50b1d1dcdd529256b80c0d227fc1fe8b58c62d1c643f1ac2996809fd061afcf4a9af184c14db9e63ec885c49de61":"7b334d7af54b916821f6136e977a1f":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,120) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"7555dfcf354da07fd70f951d94ec1d86a635edfdb7929460207b2a39cc0cf4a3":"e1b30b6a47e8c21228e41a21b1a004f0":"bf986d3842378440f8924bb7f117d1a86888a666915a93ba65d486d14c580501e736d3418cebee572439318b21b6e4e504a7b075b8c2300c014e87e04fa842b6a2a3ebd9e6134b9ddd78e0a696223b1dc775f3288a6a9569c64b4d8fc5e04f2047c70115f692d2c2cefe7488de42ff862d7c0f542e58d69f0f8c9bf67ef48aea":"a1351cfffd1b0cbf80c3318cc432d3238cb647e996b7b53c527783594683f535950cd08788687c77226b2d3f095955884adc2e475ca1e1eab04e37d5e901ae8934a9d3a0cb37b80612ca25d989856dfa7607b03039b64d7dcd468204f03e0f2c55cb41c5367c56ca6c561425992b40e2d4f380b3d8419f681e88ebe2d4bdad36":"d8ef5438b7cf5dc11209a635ce1095":"":"95e8db7c8ecab8a60ceb49726153a7c5553cf571bc40515944d833485e19bf33cb954e2555943778040165a6cfffecef79eb7d82fef5a2f136f004bb5e7c35ae827fac3da292a185b5b8fc262012c05caeda5453ede3303cfeb0c890db1facadaa2895bdbb33265ada0bb46030607b6cf94f86961178e2e2deeb53c63900f1ec":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"bbeafe86c72ab0354b733b69b09e4d3462feb1658fe404004d81503f3a6e132f":"ee1caba93cb549054ca29715a536393e":"e44b0e0d275ae7c38a7dc2f768e899c1c11a4c4cb5b5bd25cd2132e3ecbaa5a63654312603e1c5b393c0ce6253c55986ee45bb1daac78a26749d88928f9b9908690fc148a656b78e3595319432763efbcf6957c9b2150ccabfd4833d0dcee01758c5efb47321a948b379a2ec0abcd6b6cbf41a8883f0f5d5bf7b240cb35f0777":"a033c2051e425d01d97d563572e42c5113860e5dedcd24c76e3e357559ba3250f1fc5d4a931a9d0900ac025400f0158621f0b1215b2907467bfc874bcabbb28e28de81fe1ee5b79985261c512afec2327c8c5957df90c9eb77950de4a4860b57a9e6e145ea15eb52da63f217f94a5c8e5fcb5d361b86e0e67637a450cdbcb06f":"a4809e072f93deb7b77c52427095":"":"e62adf9bbd92dd03cc5250251691f724c6ece1cb89d8c4daf31cc732a5420f6bedab71aab0238ba23bd7165ed1f692561ef457fd1d47413949405b6fc8e17922b17026d89d5830b383546ea516a56f3a1c45ec1251583ae880fa8985bd3dcc1d6a57b746971937bf370e76482238cc08c2c3b13258151e0a6475cc017f8a3d0e":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"6ad06c88dd4f3becf35eed95bb859be2406a1803a66e4332a74c5f75c09b9a01":"07d8b4a6e77aef9018828b61e0fdf2a4":"cca1fd0278045dda80b847f0975b6cbf31e1910d2c99b4eb78c360d89133a1c52e66c5c3801824afc1f079d2b2b1c827199e83f680e59b9a7de9b15fa7b6848b5bf4e16a12ac1af4cf2b4d7bb45673c5e1241e9996440860a9204fc27cae46a991607bc5e7120d6c115ddcbdd02c022b262602139081e61eee4aba7193f13992":"2219c11672884b93d0290b6a7140feafe416461f1cdaf0b3aa64693d7db2eb10feae46aac7af549fa1b0abc78c11f8df7ee803ef70310fc3e67769f8b4bc64f81143a6ebf8bee9d386a8ede5d2cc0ed17985a3b7bb95191ef55e684690ccdc5ca504bc6eb28442b353861a034a43532c025f666e80be967a6b05b9dd3a91ff58":"e3ede170386e76321a575c095966":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,112) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"87bbf7c15689e8c99a5a32a8ba0dfebcfe1989159807428cdd1f382c3ea95178":"2f19aa1f3a82a7398706953f01739da7":"590dbd230854aa2b5ac19fc3dc9453e5bb9637e47d97b92486a599bdafdfb27c3852e3d06a91429bb820eb12a5318ed8861ffe87d659c462ef167be22604facfa3afb601b2167989b9e3b2e5b59e7d07fda27ffccd450869d528410b0aff468f70cc10ef6723a74af6eebc1572c123a9b5a9aab748a31fa764716d3293ff5de7":"b77d3bf3b30b3e6e5c86cbfb7e5455f6480f423cc76834b4663d28d9f1eb5c40212634e3347668427f7848352ab789886f96682a568260bdaeb7de0aae2af36f5ae04f06c332b158d923706c1c6255c673feeadb6d30bfc901e60b92acd9ddd83ef98686c4d492f4a60e97af2541d470a6a6b21903441020ea7619cf28a06986":"5c43fc4dc959fabeebb188dbf3a5":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"24095a66b6eb0320ca75e2ab78e8496a45f4b000fc43436904c3e386fb852ed2":"0955c1f0e271edca279e016074886f60":"f5160c75c449e6bb971e73b7d04ab9b9a85879f6eb2d67354af94a4f0ca339c0a03a5b9ede87a4ff6823b698113a38ae5327e6878c3ccc0e36d74fe07aa51c027c3b334812862bc660178f5d0f3e764c0b828a5e3f2e7d7a1185b7e79828304a7ad3ddcd724305484177e66f4f81e66afdc5bbee0ec174bff5eb3719482bd2d8":"4690edc843e23d9d9b9a4dab8fa8193f8bf03897d3d29759e9dc9e0f8a970c0f5d4399b9f60461fe5cf439f9b0d54bbc075695e4d76b76298cc2b75bb3e0b516ee9ada93f77c4c002ba9fd163a1e4b377befb76c1e5ab8b3901f214c0a4c48bd2aa2f33560d46e2721a060d4671dc97633ff9bcd703bb0fbed9a4a2c259b53f3":"75a31347598f09fceeea6736fe":"":"0dd2dca260325967267667ff3ccdc6d6b35648821a42090abba46282869bac4bdc20a8bee024bea18a07396c38dbb45d9481fedcc423a3928cfa78a2f0ae8eedb062add810bdbee77ddc26c29e4f9fda1ab336d04ef42947b05fbdb9bc4df79e37af951d19d6bf5e5cb34eef898f23642a9c4a9111ed0b7a08abeeefbbd45c23":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"086b77b5731f971f0bf5b8227361b216746daf8b08c583ad38f114a64aa7877b":"164058e5e425f9da40d22c9098a16204":"6633eae08a1df85f2d36e162f2d7ddd92b0c56b7477f3c6cdb9919d0e4b1e54ea7635c202dcf52d1c688afbbb15552adda32b4cd30aa462b367f02ded02e0d64eeee2a6b95462b191784143c25607fd08a23a2fbc75cf6bee294daf2042587fdd8fe3d22c3a242c624cf0a51a7c14db4f0f766ec437de4c83b64f23706a24437":"629317212ff8bd8a7676e4c00b81a9577de6397c832f99ac974fa2bbbccb6e3b8aa776db6922eed0b014bf3923799da7d9d0854c8817470e1e2f7fc7a572f9d0316ee60cde7ef025d59b897d29a6fee721aeb2f7bb44f9afb471e8a7b0b43a39b5497a3b4d6beb4b511f0cefa12ce5e6d843609d3e06999acfbee50a22ca1eee":"2eb6eb6d516ed4cf1778b4e378":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,104) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"0f9e806b0d937268561c0eafbbdd14ec715b7e9cef4118d6eb28abbb91266745":"8657996634e74d4689f292645f103a2e":"2ca253355e893e58cb1a900fbb62d61595de5c4186dc8a9129da3657a92b4a631bbdc3d5f86395385a9aa8557b67f886e3bb807620e558c93aea8e65826eadeb21544418ee40f5420c2d2b8270491be6fc2dcbfd12847fa350910dd615e9a1881bc2ced3b0ac3bde445b735e43c0c84f9d120ca5edd655779fc13c6f88b484f7":"2ae4baef22ace26f464a9b0c75802303f2d7c0f9a1ed1d0180135189765bdd347fea0cc2b73ee7fbbf95ea1fda22597b8aad826f63e744069a9c349488b2cc1cf9372f423cc650302082125724730ae5a4d878e07385ddc99034c6b6b46748f02c80b179fe6406b1d33581950cb9bcd1d1ea1ec7b5becfd6c1f5b279412c433a":"83155ebb1a42112dd1c474f37b":"":"87d69fc3cbc757b2b57b180c6ba34db4e20dde19976bfb3d274d32e7cea13f0c7d9e840d59ce857718c985763b7639e448516ddbbda559457cd8cb364fa99addd5ba44ef45c11060d9be82b4ebe1f0711ac95433074649b6c08eeab539fdfc99c77498b420427e4d70e316111845793de1f67fb0d04e3389a8862f46f4582dc8":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c24c17911f6db4b3e37c46bcc6fa35efc1a55f7754f0bb99f2eea93398116447":"5098cc52a69ee044197e2c000c2d4ab8":"9ad4dee311d854925fc7f10eca4f5dd4e6990cb2d4325da2ef25a9a23690f5c5590be285d33aaeba76506c59edec64b8c3ff8e62716d1c385fbce2a42bc7bd5d8e8584de1944543ab6f340c20911f8b7b3be1a1db18a4bb94119333339de95815cae09365b016edc184e11f3c5b851f1fa92b1b63cfa3872a127109c1294b677":"0bd92cb106867e25ad427ff6e5f384d2d0f432fc389852187fcc7b0bf9f6d11a102a872b99ed1ad9a05dab0f79fa634745535efed804ff42b0af8dad20ba44709391fb263f245e5a2c52d9ce904179633282f57a1229b0a9c4557a5c0aeda29bbc5a7a871fa8b62d58100c3722c21e51e3b3e913185235526e7a5a91c559717d":"f7930e3fab74a91cb6543e72":"":"6124ede608d416baa5e653a898ca76e9f47f08403c1984feec112e670ded2226e0073f8881ab2161cfda541dccae19691285f7391a729f07aba18f340bb452c1da39cbe83cf476cfc105b64187e0d2227dd283dcba8b6a350f9956b18861fa131d3f00c034443e8f60e0fdfcfaabbed93381ae374a8bf66523d33646183e1379":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"d267a8379260036ff3d1ec07a7b086ff75706bad12d37d9656f04776f3d8b85c":"674dc34e8c74c51fa42aacd625a1bd5b":"6a9a8af732ae96d0b5a9730ad792e296150d59770a20a3fdbbc2a3a035a88ac445d64f37d684e22003c214b771c1995719da72f3ed24a96618284dd414f0cac364640b23c680dc80492a435c8ec10add53b0d9e3374f1cf5bfc663e3528fa2f6209846421ea6f481b7ecf57714f7bc2527edc4e0466b13e750dd4d4c0cc0cdfc":"80c68a330ef50e3e516681f1e535868b03466e7edbb86cb385d01db487da3dd3edad940fdc98d918b7db9b59f8d61369eee2928c88557306c4a13e366af0708d94cb90a15f1c3bc45544bdb05ff964da5e06c5ae965f20adb504620aed7bce2e82f4e408d00219c15ef85fae1ff13fea53deb78afa5f2a50edbd622446e4a894":"bea660e963b08fc657741bc8":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,96) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"c86cb637753010f639fa3aa3bff7c28b74f012ad6090f2a31b0801d086f183ad":"87ff6e0bb313502fedf3d2696bff99b5":"2816f1132724f42e40deabab25e325b282f8c615a79e0c98c00d488ee56237537240234966565e46bfb0c50f2b10366d1589620e6e78bd90ade24d38a272f3fff53c09466aa2d3ef793d7f814a064b713821850a6e6a058f5139a1088347a9fa0f54e38abd51ddfc7ef040bf41d188f3f86c973551ced019812c1fc668649621":"6b7858557e0fd0f957842fb30e8d54dedbc127eb4bbf9de319f731fa28a606df2c046a0bce8ecda4e75d3596e4e988efd6bc279aa005bc52fad92ba07f5b1dfda4cc417029f9778c88d6fe5341a0fd48893dcb7c68d0df310a060f2a5235aee422d380f7209bc0909b2aa7e876044056f0b915dab0bc13cbea5a3b86d40ca802":"7859f047f32b51833333accf":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2c31ca0cac3efe467168198f06beacf39565a6f57f82e1048a5c06a231315882":"95cae6e85f33f3043182460589be3639":"67523751a9b1b643d00de4511b55e4268cb2d18e79e01a55fc7b677d529bd6400940fb25ea6ae135c1a816e61b69e90b966981aeda685934b107066e1467db78973492ad791e20aef430db3a047447141def8be6e6a9a15089607c3af9368cdb11b7b5fbf90691505d0c33664766945d387904e7089b915a3c28886ba1763bb5":"65261d6e29b2369b1828a7cef2df9873d6e6057c499301afedd6cb65b5036ddb95f9e353fbf38e54c4f46f88164325b33620ce183beb2e411fbb89a0e0002e542fc161cad32a61ee6f1e1717e0b4dcd0340b116f795bc1009dbbc65bc31c9b549bf03c40bc204cd0d02ec884be907777ebeed8b527ec3af7cbb508193c0745de":"21309d0351cac45e":"":"1d5f2cb921f54aeb552b4304142facd49497837deb1f00d26fbeddbab922fd80b00dba782961f8fce84f1f7973e81eed6ee168b1760c575c891f40a1dae0fa1a08738025d13ef6e0b30be4f054d874f1b8a2427a19ebb071d98365c32316a88a68c2b40daf1ea831a64519ac3679acb4e04986ecc614ec673c498c6fee459e40":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca9fa36ca2159dff9723f6cfdb13280446eb6bc3688043c7e2e2504184791596":"d13ca73365e57114fc698ee60ba0ad84":"2aa510b7f1620bfce90080e0e25f5468dbc5314b50914e793b5278369c51ac017eace9fd15127fca5a726ad9e67bdee5af298988d9a57ec4bbc43d4eb849535eb10521ac7cd7ed647479a42876af2ebc9e2108b539febdaa9127c49bda1bda800f6034050b8576e944311dfbca59d64d259571b6d2ed5b2fc07127239b03f4b7":"ac04c4293554cd832aa400c811cb202d815d6178aa1343b4628592b7f3ae45dc5f12ea47be4b43e1865f40b06ab67b3a9fb3644248a9b3efe131a8addb7447978bb51ccf749e75574fea60e8781677200af023b2f8c415f4e6d8c575a9e374916d9ec3a612b16e37beb589444b588e0b770d9f8e818ad83f83aa4ecf386d17a7":"2111d55d96a4d84d":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,64) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"2f802e838250064c15fdee28d7bd4872850355870847701ad9742b2d6eb4b0c0":"2dd550cfd97f8e1d8d31ba5537ae4710":"72b9630dda40306e785b961934c56e20948f8eac0e981f49787eb3dbd6e4607f7d08d10ca643746bf1efa7e5066993683d527a90f2d45ec9cf73113f1f17bb67958be669acd4e2927f1dacfde902cd3048056d7f6dfdd8630ff054efce4526db7c9321d6d2be2236f4d60e27b89d8ec94f65a06dc0953c8c4533a51b6a29bd2c":"e2ca8c8d172ff90232879f510d1225af91bc323bdf636363c2903fcd1790692c8bcb03a1cccb18814678852c6b3a441552e541b843ee5e4f86a152fa73d05aea659fe08aa6428bb257eaa2a7b579fdc4022c1dec359a854253c1aefc983c5ede8c97517ea69fc4606e25f13ffb0f5f49160691454fbb74e704326738353525f7":"bd6c8823c9005c85":"":"f6dd0b5f3d1a393a1837112962dba175a13c2d1e525ef95734caf34949d8b2d63b4fe5603226b5f632f2d7f927361ba639dc0e3c63414f45462342695916d5792133b4a24c7c4cbe2b97c712bf27ab62d3d68b3875d58ffe4b7c30a8171bff1a9e2f3995768faacda2ea9213ff35798b9e4513f6a87bd3f5a9d93e847e768359":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #0 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"84dd53ce0146cb71c32776033bb243098d78a22ac17f52a62a122f5653fb4e33":"f0c90a1bca52f30fab3670df0d3beab0":"a3ea8032f36a5ca3d7a1088fd08ac50ae6bdc06ad3a534b773ac3e3d4a3d524499e56274a0062c58c3b0685cc850f4725e5c221af8f51c6df2bbd5fbcff4a93ba4c1054f7f9c67fd9285511a08d328d76a642f067227d378f95a1e67587b90251f9103ed3cacdb6bf69e0794e366d8b92d8de37b4e028de0778841f356ac044d":"68222bffa782dcfe4f328fc20eb520e75a9a5fedbe13ec7fcf0e82fba08bb87a8a8e02902638e32fe0e2294344b380797f8028426ffcc0531c739c884892394c48ff0779c5f5edf0a36a3fb8aa91213347774ec4bf0fe1049bd53746b13beef3c637169826c367056cb1aa0a3868e23f886a9c7b8015c26af9e40794662f6b21":"b1ece9fb":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #1 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"9bb36fe25e966a075ae2c3bb43b5877679ebc379d5123c8eda3fa0e30b95cae0":"59869df4ef5754b406478a2fb608ee99":"ecd125682e8a8e26757c888b0c8b95dec5e7ed7ac991768f93e8af5bcf6f21ed4d4d38699ee7984ed13635fff72f938150157c9a27fcda121ffced7b492d2b18dad299cb6495ed5f68441aefc8219d2cf717d15d5cd2dbce4606fcf90fe45f3601127cf6acee210bd7df97309f773974a35bef1d33df984101c2fc9d4b55259e":"fb3a4be643c10343251c6f0745aaa54349463f622ca04a792e9b4780866844b30aeef3269fc60cac0ea031c5f3780b535e15154f7c76eb4a371b8ae368550f3fa2ce693c34511ec96b839cac567f1b0de0e7e3116d729b45d1b16e453703a43db73f5d0c3e430f16b142420b5f0d26d72ac3dba543d7d813603b0bfdca3dd63e":"cb3f5338":"FAIL":"":1 AES-GCM NIST Validation PSA (AES-256,128,1024,1024,32) #2 [#2] -depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:MBEDTLS_GCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_TEST_DEPRECATED:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES auth_crypt_tv:MBEDTLS_CIPHER_AES_256_GCM:"ca264e7caecad56ee31c8bf8dde9592f753a6299e76c60ac1e93cff3b3de8ce9":"4763a4e37b806a5f4510f69fd8c63571":"07daeba37a66ebe15f3d6451d1176f3a7107a302da6966680c425377e621fd71610d1fc9c95122da5bf85f83b24c4b783b1dcd6b508d41e22c09b5c43693d072869601fc7e3f5a51dbd3bc6508e8d095b9130fb6a7f2a043f3a432e7ce68b7de06c1379e6bab5a1a48823b76762051b4e707ddc3201eb36456e3862425cb011a":"8d03cf6fac31182ad3e6f32e4c823e3b421aef786d5651afafbf70ef14c00524ab814bc421b1d4181b4d3d82d6ae4e8032e43a6c4e0691184425b37320798f865c88b9b306466311d79e3e42076837474c37c9f6336ed777f05f70b0c7d72bd4348a4cd754d0f0c3e4587f9a18313ea2d2bace502a24ea417d3041b709a0471f":"3105dddb":"FAIL":"":1 From d8d2ea5674871f3d708626c33d5342921b3ef266 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 15:48:06 +0200 Subject: [PATCH 0453/1574] Add TLS 1.3 key exchange mode config options Add TLS 1.3 specific configuration options to enable/disable the support for TLS 1.3 key exchange modes. These configurations are introduced to move away from the aforementioned enablement/disablement based on MBEDTLS_KEY_EXCHANGE_xxx_ENABLED options that relate to group of TLS 1.2 ciphersuites. Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 31 +++++++++++++++++++--- include/mbedtls/build_info.h | 16 ++++++++++++ include/mbedtls/check_config.h | 13 ++++++++++ include/mbedtls/mbedtls_config.h | 41 ++++++++++++++++++++++++++++++ tests/scripts/depends.py | 4 ++- 5 files changed, 100 insertions(+), 5 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index fc0087ff8..30185f4e1 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -141,10 +141,33 @@ Support description | MBEDTLS_USE_PSA_CRYPTO | yes | (1) These options must remain in their default state of enabled. - (2) Key exchange configuration options for TLS 1.3 will likely to be - organized around the notion of key exchange mode along the line - of the MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE/PSK/PSK_EPHEMERAL/EPHEMERAL - runtime configuration macros. + (2) See the TLS 1.3 specific build options section below. + +- TLS 1.3 specific build options: + + - MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE enables the support for middlebox + compatibility mode as defined in section D.4 of RFC 8446. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + support of the ephemeral key exchange mode. If it is the only key exchange + mode enabled, the TLS 1.3 implementation does not contain any code related + to PSK based key exchange. The ephemeral key exchange mode requires at least + one of the key exchange protocol allowed by the TLS 1.3 specification, the + parsing and validation of x509 certificates and at least one signature + algorithm allowed by the TLS 1.3 specification for signature computing and + verification. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for + the PSK key exchange mode as defined by RFC 8446. If it is the only key + exchange mode enabled, the TLS 1.3 implementation does not contain any code + related to key exchange protocols, certificates and signatures. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support + for the PSK ephemeral key exchange mode. If it is the only key exchange + mode enabled, the TLS 1.3 implementation does not contain any code + related to certificates and signatures. The PSK ephemeral key exchange + mode requirss at least one of the key exchange protocol allowed by the + TLS 1.3 specification. Prototype upstreaming status diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 6195ac979..041c5b61e 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -78,6 +78,22 @@ #define MBEDTLS_PK_WRITE_C #endif +#if !defined(MBEDTLS_SSL_PROTO_TLS1_3) +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +#undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED +#endif + /* Make sure all configuration symbols are set before including check_config.h, * even the ones that are calculated programmatically. */ #if defined(MBEDTLS_PSA_CRYPTO_CONFIG) /* PSA_WANT_xxx influences MBEDTLS_xxx */ || \ diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 0081ca3d6..6a9647994 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -806,6 +806,19 @@ #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) +#if !( defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_X509_CRT_PARSE_C) && \ + ( defined(MBEDTLS_ECDSA_C) || defined(MBEDTLS_PKCS1_V21) ) ) +#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED defined, but not all prerequisites" +#endif +#endif + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#if !( defined(MBEDTLS_ECDH_C) ) +#error "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED defined, but not all prerequisites" +#endif +#endif + /* * The current implementation of TLS 1.3 requires MBEDTLS_SSL_KEEP_PEER_CERTIFICATE. */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 61007d801..9588ca4b4 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1552,6 +1552,47 @@ */ //#define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + * + * Enable TLS 1.3 PSK key exchange mode. + * + * Comment to disable support for the PSK key exchange mode in TLS 1.3. If + * MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any + * effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + * + * Enable TLS 1.3 ephemeral key exchange mode. + * + * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C, MBEDTLS_ECDSA_C or + * MBEDTLS_PKCS1_V21 + * + * Comment to disable support for the ephemeral key exchange mode in TLS 1.3. + * If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not have any + * effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + +/** + * \def MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + * + * Enable TLS 1.3 PSK ephemeral key exchange mode. + * + * Requires: MBEDTLS_ECDH_C + * + * Comment to disable support for the PSK ephemeral key exchange mode in + * TLS 1.3. If MBEDTLS_SSL_PROTO_TLS1_3 is not enabled, this option does not + * have any effect on the build. + * + */ +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + /** * \def MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE * diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index ce7fee65c..f2396ee96 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -237,7 +237,9 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], + 'MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', + 'MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED', + 'MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED'], 'MBEDTLS_ECP_DP_SECP256R1_ENABLED': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED'], 'MBEDTLS_PKCS1_V21': ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], 'MBEDTLS_PKCS1_V15': ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', From 928cbd34e733e0274fb9634fa6e7fc86a24bc6e9 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 16:14:26 +0200 Subject: [PATCH 0454/1574] tls13: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED instead of MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED to guard code specific to the TLS 1.3 ephemeral key exchange mode. Use it also for the dependencies of TLS 1.3 only tests relying on ephemeral key exchange mode, but for tests in tls13-kex-modes.sh where the change is done later using all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_.*ENABLED macros. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 2 +- library/ssl_misc.h | 134 +- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 20 +- library/ssl_tls13_generic.c | 12 +- library/ssl_tls13_server.c | 18 +- tests/opt-testcases/tls13-compat.sh | 1440 +++++++++--------- tests/scripts/generate_tls13_compat_tests.py | 2 +- tests/ssl-opt.sh | 170 ++- tests/suites/test_suite_ssl.data | 2 +- 10 files changed, 950 insertions(+), 852 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 219d82072..6ae85d99c 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1450,7 +1450,7 @@ struct mbedtls_ssl_config const int *MBEDTLS_PRIVATE(sig_hashes); /*!< allowed signature hashes */ #endif const uint16_t *MBEDTLS_PRIVATE(sig_algs); /*!< allowed signature algorithms */ -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) const mbedtls_ecp_group_id *MBEDTLS_PRIVATE(curve_list); /*!< allowed curves */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index ae602562d..a58e2a124 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1873,7 +1873,7 @@ int mbedtls_ssl_tls13_fetch_handshake_msg( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * Handler of TLS 1.3 write Certificate message */ @@ -1886,7 +1886,7 @@ int mbedtls_ssl_tls13_write_certificate( mbedtls_ssl_context *ssl ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Generic handler of Certificate Verify @@ -2063,10 +2063,7 @@ static inline const void *mbedtls_ssl_get_sig_algs( #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ } - -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) static inline int mbedtls_ssl_sig_alg_is_received( const mbedtls_ssl_context *ssl, uint16_t own_sig_alg ) { @@ -2081,61 +2078,7 @@ static inline int mbedtls_ssl_sig_alg_is_received( const mbedtls_ssl_context *ss } return( 0 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, - uint16_t proposed_sig_alg ) -{ - const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); - if( sig_alg == NULL ) - return( 0 ); - - for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) - { - if( *sig_alg == proposed_sig_alg ) - return( 1 ); - } - return( 0 ); -} - -static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg ) -{ - *pk_type = mbedtls_ssl_pk_alg_from_sig( sig_alg & 0xff ); - *md_alg = mbedtls_ssl_md_alg_from_hash( ( sig_alg >> 8 ) & 0xff ); - - if( *pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE ) - return( 0 ); - - switch( sig_alg ) - { -#if defined(MBEDTLS_PKCS1_V21) -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - *md_alg = MBEDTLS_MD_SHA256; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - *md_alg = MBEDTLS_MD_SHA384; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - *md_alg = MBEDTLS_MD_SHA512; - *pk_type = MBEDTLS_PK_RSASSA_PSS; - break; -#endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#endif /* MBEDTLS_PKCS1_V21 */ - default: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); - } - return( 0 ); -} - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( const uint16_t sig_alg ) { @@ -2203,7 +2146,63 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( return( 1 ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, + mbedtls_pk_context *key ); +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, + uint16_t proposed_sig_alg ) +{ + const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); + if( sig_alg == NULL ) + return( 0 ); + + for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) + { + if( *sig_alg == proposed_sig_alg ) + return( 1 ); + } + return( 0 ); +} + +static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg ) +{ + *pk_type = mbedtls_ssl_pk_alg_from_sig( sig_alg & 0xff ); + *md_alg = mbedtls_ssl_md_alg_from_hash( ( sig_alg >> 8 ) & 0xff ); + + if( *pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE ) + return( 0 ); + + switch( sig_alg ) + { +#if defined(MBEDTLS_PKCS1_V21) +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + *md_alg = MBEDTLS_MD_SHA256; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + *md_alg = MBEDTLS_MD_SHA384; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + *md_alg = MBEDTLS_MD_SHA512; + *pk_type = MBEDTLS_PK_RSASSA_PSS; + break; +#endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif /* MBEDTLS_PKCS1_V21 */ + default: + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + } + return( 0 ); +} #if defined(MBEDTLS_SSL_PROTO_TLS1_2) static inline int mbedtls_ssl_tls12_sig_alg_is_supported( @@ -2281,25 +2280,16 @@ static inline int mbedtls_ssl_sig_alg_is_supported( } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) { return( mbedtls_ssl_tls13_sig_alg_is_supported( sig_alg ) ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#endif ((void) ssl); ((void) sig_alg); return( 0 ); } - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, - mbedtls_pk_context *key ); - -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index b62e2ac73..1e7d9a33b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4822,7 +4822,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_suiteb_sig_algs; -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 4aba59f9e..c44399e3a 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2065,7 +2065,7 @@ static int ssl_tls13_process_encrypted_extensions( mbedtls_ssl_context *ssl ) mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, buf, buf_len ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); else @@ -2082,7 +2082,7 @@ cleanup: } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * STATE HANDLING: CertificateRequest * @@ -2319,7 +2319,7 @@ static int ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_SERVER_FINISHED @@ -2365,7 +2365,7 @@ static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) ( "Switch to handshake traffic keys for outbound traffic" ) ); mbedtls_ssl_set_outbound_transform( ssl, ssl->handshake->transform_handshake ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( ssl->handshake->client_auth ) { int ret = mbedtls_ssl_tls13_write_certificate( ssl ); @@ -2395,7 +2395,7 @@ static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY */ @@ -2409,7 +2409,7 @@ static int ssl_tls13_write_client_certificate_verify( mbedtls_ssl_context *ssl ) return( ret ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_CLIENT_FINISHED @@ -2722,7 +2722,7 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_process_encrypted_extensions( ssl ); break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: ret = ssl_tls13_process_certificate_request( ssl ); break; @@ -2734,7 +2734,7 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) case MBEDTLS_SSL_CERTIFICATE_VERIFY: ret = ssl_tls13_process_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_SERVER_FINISHED: ret = ssl_tls13_process_server_finished( ssl ); @@ -2744,11 +2744,11 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_write_client_certificate( ssl ); break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY: ret = ssl_tls13_write_client_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_CLIENT_FINISHED: ret = ssl_tls13_write_client_finished( ssl ); diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index abb7a1481..3913c1669 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -83,7 +83,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * STATE HANDLING: Read CertificateVerify */ @@ -285,12 +285,12 @@ error: return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ int mbedtls_ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char verify_buffer[SSL_VERIFY_STRUCT_MAX_SIZE]; size_t verify_buffer_len; @@ -348,7 +348,7 @@ cleanup: ((void) ssl); MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ } /* @@ -757,7 +757,7 @@ cleanup: MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * enum { * X509(0), @@ -1078,7 +1078,7 @@ cleanup: return( ret ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3e54f3879..e5cd416e5 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1104,7 +1104,7 @@ static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ - defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) @@ -1229,7 +1229,7 @@ static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) return( -1 ); } #endif /* MBEDTLS_X509_CRT_PARSE_C && - MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * @@ -1634,7 +1634,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_TLS_EXT_SIG_ALG: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found signature_algorithms extension" ) ); @@ -1649,7 +1649,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: MBEDTLS_SSL_DEBUG_MSG( 3, @@ -2390,7 +2390,7 @@ static int ssl_tls13_write_encrypted_extensions( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, msg_len ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); else @@ -2405,7 +2405,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #define SSL_CERTIFICATE_REQUEST_SEND_REQUEST 0 #define SSL_CERTIFICATE_REQUEST_SKIP 1 /* Coordination: @@ -2573,7 +2573,7 @@ static int ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Handler for MBEDTLS_SSL_SERVER_FINISHED @@ -2984,7 +2984,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) } break; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: ret = ssl_tls13_write_certificate_request( ssl ); break; @@ -2996,7 +2996,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) case MBEDTLS_SSL_CERTIFICATE_VERIFY: ret = ssl_tls13_write_certificate_verify( ssl ); break; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ /* * Injection of dummy-CCS's for middlebox compatibility diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 5611510bc..59e305246 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -28,7 +28,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -45,7 +45,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -62,7 +62,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -79,7 +79,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -97,7 +97,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -114,7 +114,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -131,7 +131,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -148,7 +148,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -166,7 +166,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -183,7 +183,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -200,7 +200,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -217,7 +217,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -235,7 +235,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -252,7 +252,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -269,7 +269,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -286,7 +286,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -304,7 +304,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -321,7 +321,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -338,7 +338,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -355,7 +355,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -373,7 +373,7 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -390,7 +390,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -407,7 +407,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -424,7 +424,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -442,7 +442,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -459,7 +459,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -476,7 +476,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -493,7 +493,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -511,7 +511,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -528,7 +528,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -545,7 +545,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -562,7 +562,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -580,7 +580,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -597,7 +597,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -614,7 +614,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -631,7 +631,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -649,7 +649,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -666,7 +666,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -683,7 +683,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -700,7 +700,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -718,7 +718,7 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -735,7 +735,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -752,7 +752,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -769,7 +769,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -787,7 +787,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -804,7 +804,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -821,7 +821,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -838,7 +838,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -856,7 +856,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -873,7 +873,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -890,7 +890,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -907,7 +907,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -925,7 +925,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -942,7 +942,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -959,7 +959,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -976,7 +976,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -994,7 +994,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1011,7 +1011,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1028,7 +1028,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1045,7 +1045,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1063,7 +1063,7 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1080,7 +1080,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1097,7 +1097,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1114,7 +1114,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1132,7 +1132,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1149,7 +1149,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1166,7 +1166,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1183,7 +1183,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1201,7 +1201,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1218,7 +1218,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1235,7 +1235,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1252,7 +1252,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1270,7 +1270,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1287,7 +1287,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1304,7 +1304,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1321,7 +1321,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1339,7 +1339,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1356,7 +1356,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1373,7 +1373,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1390,7 +1390,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1408,7 +1408,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -1425,7 +1425,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -1442,7 +1442,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -1459,7 +1459,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1477,7 +1477,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -1494,7 +1494,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -1511,7 +1511,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -1528,7 +1528,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1546,7 +1546,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -1563,7 +1563,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -1580,7 +1580,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -1597,7 +1597,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1615,7 +1615,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -1632,7 +1632,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -1649,7 +1649,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -1666,7 +1666,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1684,7 +1684,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -1701,7 +1701,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -1718,7 +1718,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -1735,7 +1735,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_openssl_tls1_3 @@ -1753,7 +1753,7 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1772,7 +1772,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1791,7 +1791,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1810,7 +1810,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1830,7 +1830,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1849,7 +1849,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1868,7 +1868,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1887,7 +1887,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1907,7 +1907,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1926,7 +1926,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1945,7 +1945,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -1964,7 +1964,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -1984,7 +1984,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2003,7 +2003,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2022,7 +2022,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2041,7 +2041,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2061,7 +2061,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2080,7 +2080,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2099,7 +2099,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2118,7 +2118,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2138,7 +2138,7 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2157,7 +2157,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2176,7 +2176,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2195,7 +2195,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2215,7 +2215,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2234,7 +2234,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2253,7 +2253,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2272,7 +2272,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2292,7 +2292,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2311,7 +2311,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2330,7 +2330,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2349,7 +2349,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2369,7 +2369,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2388,7 +2388,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2407,7 +2407,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2426,7 +2426,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2446,7 +2446,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2465,7 +2465,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2484,7 +2484,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2503,7 +2503,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2523,7 +2523,7 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2542,7 +2542,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2561,7 +2561,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2580,7 +2580,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2600,7 +2600,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2619,7 +2619,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2638,7 +2638,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2657,7 +2657,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2677,7 +2677,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2696,7 +2696,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2715,7 +2715,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2734,7 +2734,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2754,7 +2754,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2773,7 +2773,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2792,7 +2792,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2811,7 +2811,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2831,7 +2831,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2850,7 +2850,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2869,7 +2869,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2888,7 +2888,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2908,7 +2908,7 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2927,7 +2927,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2946,7 +2946,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -2965,7 +2965,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -2985,7 +2985,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3004,7 +3004,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3023,7 +3023,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3042,7 +3042,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3062,7 +3062,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3081,7 +3081,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3100,7 +3100,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3119,7 +3119,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3139,7 +3139,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3158,7 +3158,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3177,7 +3177,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3196,7 +3196,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3216,7 +3216,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3235,7 +3235,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3254,7 +3254,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3273,7 +3273,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3293,7 +3293,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3312,7 +3312,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3331,7 +3331,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3350,7 +3350,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3370,7 +3370,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3389,7 +3389,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3408,7 +3408,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3427,7 +3427,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3447,7 +3447,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3466,7 +3466,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3485,7 +3485,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3504,7 +3504,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3524,7 +3524,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3543,7 +3543,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3562,7 +3562,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3581,7 +3581,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3601,7 +3601,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3620,7 +3620,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3639,7 +3639,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -3658,7 +3658,7 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_gnutls_tls1_3 @@ -3679,7 +3679,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3697,7 +3697,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3715,7 +3715,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3733,7 +3733,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -3752,7 +3752,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3770,7 +3770,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3788,7 +3788,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3806,7 +3806,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -3825,7 +3825,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3843,7 +3843,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3861,7 +3861,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3879,7 +3879,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -3898,7 +3898,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3916,7 +3916,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3934,7 +3934,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3952,7 +3952,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -3971,7 +3971,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -3989,7 +3989,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4007,7 +4007,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4025,7 +4025,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4044,7 +4044,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4062,7 +4062,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4080,7 +4080,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4098,7 +4098,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -4117,7 +4117,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4135,7 +4135,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4153,7 +4153,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4171,7 +4171,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -4190,7 +4190,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4208,7 +4208,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4226,7 +4226,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4244,7 +4244,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -4263,7 +4263,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4281,7 +4281,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4299,7 +4299,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4317,7 +4317,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -4336,7 +4336,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4354,7 +4354,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4372,7 +4372,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4390,7 +4390,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -4409,7 +4409,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4427,7 +4427,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4445,7 +4445,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4463,7 +4463,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4482,7 +4482,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4500,7 +4500,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4518,7 +4518,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4536,7 +4536,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4555,7 +4555,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4573,7 +4573,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4591,7 +4591,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4609,7 +4609,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4628,7 +4628,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4646,7 +4646,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4664,7 +4664,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4682,7 +4682,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -4701,7 +4701,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4719,7 +4719,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4737,7 +4737,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_CHACHA20_POLY1305_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4755,7 +4755,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -4774,7 +4774,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4792,7 +4792,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4810,7 +4810,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4828,7 +4828,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -4847,7 +4847,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4865,7 +4865,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4883,7 +4883,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4901,7 +4901,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -4920,7 +4920,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4938,7 +4938,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4956,7 +4956,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -4974,7 +4974,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -4993,7 +4993,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5011,7 +5011,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5029,7 +5029,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5047,7 +5047,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5066,7 +5066,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5084,7 +5084,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5102,7 +5102,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5120,7 +5120,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5139,7 +5139,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5157,7 +5157,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5175,7 +5175,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5193,7 +5193,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5212,7 +5212,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5230,7 +5230,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5248,7 +5248,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5266,7 +5266,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5285,7 +5285,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5303,7 +5303,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5321,7 +5321,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5339,7 +5339,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5358,7 +5358,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5376,7 +5376,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5394,7 +5394,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5412,7 +5412,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5431,7 +5431,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5449,7 +5449,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp384r1.crt -key data_files/ecdsa_secp384r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp384r1_sha384 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5467,7 +5467,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp521r1.crt -key data_files/ecdsa_secp521r1.key -ciphersuites TLS_AES_128_CCM_8_SHA256 -sigalgs ecdsa_secp521r1_sha512 -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -5485,7 +5485,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5506,7 +5506,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5526,7 +5526,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5546,7 +5546,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5566,7 +5566,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -5587,7 +5587,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5607,7 +5607,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5627,7 +5627,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5647,7 +5647,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -5668,7 +5668,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5688,7 +5688,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5708,7 +5708,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5728,7 +5728,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -5749,7 +5749,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5769,7 +5769,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5789,7 +5789,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5809,7 +5809,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -5830,7 +5830,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5850,7 +5850,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5870,7 +5870,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5890,7 +5890,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -5911,7 +5911,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5931,7 +5931,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5951,7 +5951,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -5971,7 +5971,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -5992,7 +5992,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6012,7 +6012,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6032,7 +6032,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6052,7 +6052,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -6073,7 +6073,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6093,7 +6093,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6113,7 +6113,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6133,7 +6133,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -6154,7 +6154,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6174,7 +6174,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6194,7 +6194,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6214,7 +6214,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -6235,7 +6235,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6255,7 +6255,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6275,7 +6275,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6295,7 +6295,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -6316,7 +6316,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6336,7 +6336,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6356,7 +6356,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6376,7 +6376,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6397,7 +6397,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6417,7 +6417,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6437,7 +6437,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6457,7 +6457,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6478,7 +6478,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6498,7 +6498,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6518,7 +6518,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6538,7 +6538,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6559,7 +6559,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6579,7 +6579,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6599,7 +6599,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6619,7 +6619,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -6640,7 +6640,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6660,7 +6660,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6680,7 +6680,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+CHACHA20-POLY1305:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6700,7 +6700,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -6721,7 +6721,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6741,7 +6741,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6761,7 +6761,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6781,7 +6781,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -6802,7 +6802,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6822,7 +6822,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6842,7 +6842,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6862,7 +6862,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -6883,7 +6883,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6903,7 +6903,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6923,7 +6923,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6943,7 +6943,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -6964,7 +6964,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -6984,7 +6984,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7004,7 +7004,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7024,7 +7024,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7045,7 +7045,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7065,7 +7065,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7085,7 +7085,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7105,7 +7105,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7126,7 +7126,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7146,7 +7146,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7166,7 +7166,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7186,7 +7186,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7207,7 +7207,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7227,7 +7227,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7247,7 +7247,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7267,7 +7267,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7288,7 +7288,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7308,7 +7308,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7328,7 +7328,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7348,7 +7348,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7369,7 +7369,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7389,7 +7389,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7409,7 +7409,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7429,7 +7429,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7450,7 +7450,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7470,7 +7470,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp384r1.crt --x509keyfile data_files/ecdsa_secp384r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP384R1-SHA384:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7490,7 +7490,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp521r1.crt --x509keyfile data_files/ecdsa_secp521r1.key --priority=NONE:+AES-128-CCM-8:+SHA256:+AEAD:+SIGN-ECDSA-SECP521R1-SHA512:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -7510,7 +7510,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -7528,12 +7528,12 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7554,12 +7554,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7580,12 +7580,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7606,13 +7606,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -7634,12 +7634,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7660,12 +7660,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7686,12 +7686,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7712,13 +7712,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -7740,12 +7740,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7766,12 +7766,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7792,12 +7792,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7818,13 +7818,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -7846,12 +7846,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7872,12 +7872,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7898,12 +7898,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7924,13 +7924,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -7952,12 +7952,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -7978,12 +7978,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8004,12 +8004,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-GCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8030,13 +8030,13 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -8058,12 +8058,12 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8084,12 +8084,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8110,12 +8110,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8136,13 +8136,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ @@ -8164,12 +8164,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8190,12 +8190,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8216,12 +8216,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8242,13 +8242,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ @@ -8270,12 +8270,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8296,12 +8296,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8322,12 +8322,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8348,13 +8348,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ @@ -8376,12 +8376,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8402,12 +8402,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8428,12 +8428,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8454,13 +8454,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ @@ -8482,12 +8482,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8508,12 +8508,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8534,12 +8534,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-256-GCM-SHA384 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8560,13 +8560,13 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ @@ -8588,12 +8588,12 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8614,12 +8614,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8640,12 +8640,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8666,13 +8666,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -8694,12 +8694,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8720,12 +8720,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8746,12 +8746,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8772,13 +8772,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -8800,12 +8800,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8826,12 +8826,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8852,12 +8852,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8878,13 +8878,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -8906,12 +8906,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8932,12 +8932,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8958,12 +8958,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -8984,13 +8984,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9012,12 +9012,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9038,12 +9038,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9064,12 +9064,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-CHACHA20-POLY1305-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9090,13 +9090,13 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9118,12 +9118,12 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9144,12 +9144,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9170,12 +9170,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9196,13 +9196,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9224,12 +9224,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9250,12 +9250,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9276,12 +9276,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9302,13 +9302,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9330,12 +9330,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9356,12 +9356,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9382,12 +9382,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9408,13 +9408,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9436,12 +9436,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9462,12 +9462,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9488,12 +9488,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9514,13 +9514,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -9542,12 +9542,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9568,12 +9568,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9594,12 +9594,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9620,13 +9620,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -9648,12 +9648,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9674,12 +9674,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9700,12 +9700,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9726,13 +9726,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ @@ -9754,12 +9754,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9780,12 +9780,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9806,12 +9806,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9832,13 +9832,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ @@ -9860,12 +9860,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9886,12 +9886,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9912,12 +9912,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9938,13 +9938,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ @@ -9966,12 +9966,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -9992,12 +9992,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10018,12 +10018,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10044,13 +10044,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ @@ -10072,12 +10072,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10098,12 +10098,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ "$P_SRV crt_file=data_files/ecdsa_secp384r1.crt key_file=data_files/ecdsa_secp384r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp384r1_sha384 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10124,12 +10124,12 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ "$P_SRV crt_file=data_files/ecdsa_secp521r1.crt key_file=data_files/ecdsa_secp521r1.key debug_level=4 force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256 sig_algs=ecdsa_secp521r1_sha512 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -10150,13 +10150,13 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ @@ -10178,7 +10178,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ @@ -10193,7 +10193,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ @@ -10208,7 +10208,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ @@ -10223,7 +10223,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ @@ -10238,7 +10238,7 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ @@ -10253,7 +10253,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ @@ -10268,7 +10268,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ @@ -10283,7 +10283,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ @@ -10298,7 +10298,7 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ @@ -10313,7 +10313,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ @@ -10328,7 +10328,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ @@ -10343,7 +10343,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ @@ -10358,7 +10358,7 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ @@ -10373,7 +10373,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ @@ -10388,7 +10388,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ @@ -10403,7 +10403,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ @@ -10418,7 +10418,7 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ @@ -10433,7 +10433,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ @@ -10448,7 +10448,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ @@ -10463,7 +10463,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ @@ -10478,7 +10478,7 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10495,7 +10495,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10512,7 +10512,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10529,7 +10529,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10546,7 +10546,7 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10563,7 +10563,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10580,7 +10580,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10597,7 +10597,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10614,7 +10614,7 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10631,7 +10631,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10648,7 +10648,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10665,7 +10665,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10682,7 +10682,7 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10699,7 +10699,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10716,7 +10716,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10733,7 +10733,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10750,7 +10750,7 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10767,7 +10767,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10784,7 +10784,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10801,7 +10801,7 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 requires_gnutls_next_no_ticket @@ -10819,7 +10819,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10837,7 +10837,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10855,7 +10855,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10873,7 +10873,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10891,7 +10891,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10909,7 +10909,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10927,7 +10927,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10945,7 +10945,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10963,7 +10963,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10981,7 +10981,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -10999,7 +10999,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11017,7 +11017,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11035,7 +11035,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11053,7 +11053,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11071,7 +11071,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11089,7 +11089,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X448 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11107,7 +11107,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11125,7 +11125,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-384 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11143,7 +11143,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups P-521 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11161,7 +11161,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ "$O_NEXT_SRV_NO_CERT -cert data_files/ecdsa_secp256r1.crt -key data_files/ecdsa_secp256r1.key -groups X25519 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -11181,7 +11181,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11201,7 +11201,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11221,7 +11221,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11241,7 +11241,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11261,7 +11261,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11281,7 +11281,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11301,7 +11301,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11321,7 +11321,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11341,7 +11341,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11361,7 +11361,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11381,7 +11381,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11401,7 +11401,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11421,7 +11421,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11441,7 +11441,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11461,7 +11461,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11481,7 +11481,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X448:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11501,7 +11501,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP256R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11521,7 +11521,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP384R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11541,7 +11541,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-SECP521R1:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11561,7 +11561,7 @@ requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ "$G_NEXT_SRV_NO_CERT --http --disable-client-cert --debug=4 --x509certfile data_files/ecdsa_secp256r1.crt --x509keyfile data_files/ecdsa_secp256r1.key --priority=NONE:+CIPHER-ALL:+MAC-ALL:+SIGN-ALL:+GROUP-X25519:+VERS-TLS1.3:%NO_TICKETS" \ @@ -11578,12 +11578,12 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11603,12 +11603,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11628,12 +11628,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11653,12 +11653,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11678,12 +11678,12 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11703,12 +11703,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11728,12 +11728,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11753,12 +11753,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11778,12 +11778,12 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11803,12 +11803,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11828,12 +11828,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11853,12 +11853,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11878,12 +11878,12 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11903,12 +11903,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11928,12 +11928,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11953,12 +11953,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x448 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -11978,12 +11978,12 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp256r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12003,12 +12003,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp384r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12028,12 +12028,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=secp521r1 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ @@ -12053,12 +12053,12 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ "$P_SRV crt_file=data_files/ecdsa_secp256r1.crt key_file=data_files/ecdsa_secp256r1.key debug_level=4 sig_algs=ecdsa_secp256r1_sha256 curves=x25519 force_version=tls13 tls13_kex_modes=ephemeral cookies=0 tickets=0" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 0e94af6f0..5c445df72 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -358,7 +358,7 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', - 'requires_key_exchange_with_cert_in_tls13_enabled'] + 'requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED'] if self._compat_mode: ret += ['requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE'] diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 970ee9e99..42faac01c 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -266,12 +266,14 @@ requires_key_exchange_with_cert_in_tls12_enabled() { fi } -requires_key_exchange_with_cert_in_tls13_enabled() { - requires_key_exchange_with_cert_in_tls12_enabled -} - requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { - requires_key_exchange_with_cert_in_tls12_enabled + if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_2 + then + requires_key_exchange_with_cert_in_tls12_enabled + elif ! $P_QUERY -all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + then + SKIP_NEXT="YES" + fi } get_config_value_or_default() { @@ -6658,7 +6660,7 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6671,7 +6673,7 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6684,7 +6686,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6697,7 +6699,7 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6710,7 +6712,7 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6723,7 +6725,7 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6785,7 +6787,7 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6797,7 +6799,7 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6808,7 +6810,7 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6820,7 +6822,7 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6904,7 +6906,7 @@ run_test "extKeyUsage cli: codeSign -> fail" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6917,7 +6919,7 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6930,7 +6932,7 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6943,7 +6945,7 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -7002,7 +7004,7 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7013,7 +7015,7 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7024,7 +7026,7 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7035,7 +7037,7 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -8100,7 +8102,7 @@ run_test "Small client packet TLS 1.2 AEAD shorter tag" \ 0 \ -s "Read from client: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8108,7 +8110,7 @@ run_test "Small client packet TLS 1.3 AEAD" \ 0 \ -s "Read from client: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=1 \ @@ -8166,14 +8168,14 @@ run_test "Small server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small server packet TLS 1.3 AEAD" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 1 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Small server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=1 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -8244,7 +8246,7 @@ run_test "Large client packet TLS 1.2 AEAD shorter tag" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large client packet TLS 1.3 AEAD" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8253,7 +8255,7 @@ run_test "Large client packet TLS 1.3 AEAD" \ -c "16384 bytes written in $(fragments_for_write 16384) fragments" \ -s "Read from client: $MAX_CONTENT_LEN bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large client packet TLS 1.3 AEAD shorter tag" \ "$P_SRV force_version=tls13" \ "$P_CLI request_size=16384 \ @@ -8301,14 +8303,14 @@ run_test "Large server packet TLS 1.2 AEAD shorter tag" \ 0 \ -c "Read from server: 16384 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large server packet TLS 1.3 AEAD" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-SHA256" \ 0 \ -c "Read from server: 16384 bytes read" -requires_key_exchange_with_cert_in_tls13_enabled +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "Large server packet TLS 1.3 AEAD shorter tag" \ "$P_SRV response_size=16384 force_version=tls13" \ "$P_CLI force_ciphersuite=TLS1-3-AES-128-CCM-8-SHA256" \ @@ -11183,6 +11185,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=3" \ @@ -11216,6 +11219,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=3" \ @@ -11250,6 +11254,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -alpn h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11285,6 +11290,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert --alpn=h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11319,6 +11325,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server alpn - openssl" \ "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 alpn=h2" \ "$O_NEXT_CLI -msg -tls1_3 -no_middlebox -alpn h2" \ @@ -11334,6 +11341,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server alpn - gnutls" \ "$P_SRV debug_level=3 tickets=0 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 alpn=h2" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V --alpn h2" \ @@ -11431,6 +11439,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -verify 10" \ "$P_CLI debug_level=4 crt_file=none key_file=none" \ @@ -11447,6 +11456,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --verify-client-cert" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -11462,6 +11472,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no server middlebox compat - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key" \ @@ -11476,6 +11487,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no server middlebox compat - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ @@ -11491,6 +11503,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11507,6 +11520,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11522,6 +11536,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11538,6 +11553,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11553,6 +11569,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11569,6 +11586,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11585,6 +11603,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11602,6 +11621,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11618,6 +11638,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11635,6 +11656,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11651,6 +11673,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11668,6 +11691,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11684,6 +11708,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11703,6 +11728,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11720,6 +11746,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -no_middlebox" \ "$P_CLI debug_level=4 crt_file=data_files/cli2.crt key_file=data_files/cli2.key key_opaque=1" \ @@ -11735,6 +11762,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, no server middlebox compat - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE" \ "$P_CLI debug_level=3 crt_file=data_files/cli2.crt \ @@ -11751,6 +11779,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11768,6 +11797,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11784,6 +11814,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11801,6 +11832,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11817,6 +11849,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11834,6 +11867,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11851,6 +11885,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11869,6 +11904,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11886,6 +11922,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11904,6 +11941,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11921,6 +11959,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11939,6 +11978,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11956,6 +11996,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11976,6 +12017,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11991,6 +12033,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -12006,6 +12049,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ @@ -12023,6 +12067,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12039,6 +12084,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12053,6 +12099,7 @@ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -tls1_3 -no_middlebox" \ @@ -12069,6 +12116,7 @@ run_test "TLS 1.3: Server side check - openssl" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_openssl_tls1_3 run_test "TLS 1.3: Server side check - openssl with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ @@ -12090,6 +12138,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12109,6 +12158,7 @@ requires_gnutls_next_no_ticket requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost -d 4 --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12128,6 +12178,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 force_version=tls13" \ @@ -12147,6 +12198,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13" \ @@ -12164,6 +12216,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with client empty certificate" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 crt_file=none key_file=none force_version=tls13" \ @@ -12182,6 +12235,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with optional client authentication" \ "$P_SRV debug_level=4 auth_mode=optional crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=none key_file=none" \ @@ -12199,6 +12253,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server: HRR check - mbedtls" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1" \ "$P_CLI debug_level=4 force_version=tls13 curves=secp256r1,secp384r1" \ @@ -12216,6 +12271,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check, no server certificate available" \ "$P_SRV debug_level=4 crt_file=none key_file=none force_version=tls13" \ "$P_CLI debug_level=4 force_version=tls13" \ @@ -12228,6 +12284,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12241,6 +12298,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12254,6 +12312,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12277,6 +12336,7 @@ requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12291,6 +12351,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12305,6 +12366,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both peers do not support middlebox compatibility" \ "$O_NEXT_SRV -msg -tls1_3 -no_middlebox -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12318,6 +12380,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O server with middlebox compat support, not client" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12329,6 +12392,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12343,6 +12407,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both peers do not support middlebox compatibility" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12357,6 +12422,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G server with middlebox compat support, not client" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12369,6 +12435,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12381,6 +12448,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12394,6 +12462,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12406,6 +12475,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug" \ @@ -12421,6 +12491,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12436,6 +12507,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12452,6 +12524,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12465,6 +12538,7 @@ requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12480,6 +12554,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12495,6 +12570,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both peers do not support middlebox compatibility" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -no_middlebox -num_tickets 0 -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12509,6 +12585,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR server with middlebox compat support, not client" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12521,6 +12598,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12535,6 +12613,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both peers do not support middlebox compatibility" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12550,6 +12629,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR server with middlebox compat support, not client" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12563,6 +12643,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12575,6 +12656,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12588,6 +12670,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12600,6 +12683,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384" \ @@ -12615,6 +12699,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both peers do not support middlebox compatibility" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12630,6 +12715,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12646,6 +12732,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12659,6 +12746,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12675,6 +12763,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12691,6 +12780,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12710,6 +12800,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12728,6 +12819,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12747,6 +12839,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12763,6 +12856,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12779,6 +12873,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12794,6 +12889,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, G->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12808,6 +12904,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, O->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12822,6 +12919,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, m->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12836,6 +12934,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12850,6 +12949,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12864,6 +12964,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12879,6 +12980,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12894,6 +12996,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12911,6 +13014,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -12928,6 +13032,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -12946,6 +13051,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -12998,6 +13104,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13020,6 +13127,7 @@ requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index c130e5363..a35762d7f 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -261,7 +261,7 @@ depends_on:MBEDTLS_SSL_PROTO_TLS1_2 handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, tls1_3 -depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED +depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3:MBEDTLS_SSL_VERSION_TLS1_3 Handshake, ECDHE-RSA-WITH-AES-256-GCM-SHA384 From 41a443a68de83c6934128abf23c417fea15e1ece Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 16:38:25 +0200 Subject: [PATCH 0455/1574] tls13: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK.*ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED instead of MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED to guard code specific to one of the TLS 1.3 key exchange mode with PSK. Signed-off-by: Ronald Cron --- library/ssl_client.c | 10 ++++------ library/ssl_misc.h | 12 +++++++----- library/ssl_tls.c | 4 ++-- library/ssl_tls13_client.c | 13 ++++++------- library/ssl_tls13_keys.c | 8 ++++---- library/ssl_tls13_keys.h | 4 ++-- library/ssl_tls13_server.c | 34 +++++++++++++++++----------------- tests/ssl-opt.sh | 7 +++++++ 8 files changed, 49 insertions(+), 43 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 90ec252d4..543c82162 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -637,8 +637,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* The "pre_shared_key" extension (RFC 8446 Section 4.2.11) * MUST be the last extension in the ClientHello. */ @@ -650,7 +649,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, return( ret ); p += output_len; } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* Write the length of the list of extensions. */ extensions_len = p - p_extensions_len - 2; @@ -957,8 +956,7 @@ int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, msg_len ); ssl->handshake->update_checksum( ssl, buf, msg_len - binders_len ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( binders_len > 0 ) { MBEDTLS_SSL_PROC_CHK( @@ -967,7 +965,7 @@ int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) ssl->handshake->update_checksum( ssl, buf + msg_len - binders_len, binders_len ); } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, diff --git a/library/ssl_misc.h b/library/ssl_misc.h index a58e2a124..5a23676f3 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -619,7 +619,7 @@ struct mbedtls_ssl_handshake_params #if defined(MBEDTLS_SSL_SRV_C) /** selected_group of key_share extension in HelloRetryRequest message. */ uint16_t hrr_selected_group; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) uint8_t tls13_kex_modes; /*!< Key exchange modes supported by the client */ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) @@ -1786,7 +1786,8 @@ static inline int mbedtls_ssl_conf_tls13_some_psk_enabled( mbedtls_ssl_context * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); } -#if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_SRV_C) && \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * Given a list of key exchange modes, check if at least one of them is * supported. @@ -1833,7 +1834,8 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); } -#endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_SRV_C && + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* * Helper functions to check the selected key exchange mode. @@ -2451,7 +2453,7 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( unsigned char *obuf, size_t buf_len, size_t *olen ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * \brief Given an SSL context and its associated configuration, write the TLS * 1.3 specific Pre-Shared key extension. @@ -2484,7 +2486,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 1e7d9a33b..7486f1f86 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3665,7 +3665,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( handshake->psk ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -4895,7 +4895,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) conf->psk_identity = NULL; conf->psk_identity_len = 0; } -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) ssl_key_cert_free( conf->key_cert ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c44399e3a..acac23174 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -602,7 +602,7 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* * ssl_tls13_write_psk_key_exchange_modes_ext() structure: * @@ -1112,8 +1112,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( 0 ); } - -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, unsigned char *buf, @@ -1151,7 +1150,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, p += ext_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* For PSK-based key exchange we need the pre_shared_key extension * and the psk_key_exchange_modes extension. * @@ -1165,7 +1164,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, if( ret != 0 ) return( ret ); p += ext_len; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif *out_len = p - buf; @@ -1681,7 +1680,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, goto cleanup; break; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); if( is_hrr ) @@ -1698,7 +1697,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, return( ret ); } break; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif case MBEDTLS_TLS_EXT_KEY_SHARE: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found key_shares extension" ) ); diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 2209dd145..5954b62ef 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1067,7 +1067,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) } hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) { ret = mbedtls_ssl_tls13_export_handshake_psk( ssl, &psk, &psk_len ); @@ -1083,7 +1083,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, NULL, psk, psk_len, handshake->tls13_master_secrets.early ); #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) mbedtls_free( (void*)psk ); #endif if( ret != 0 ) @@ -1614,7 +1614,7 @@ cleanup: return( ret ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, unsigned char **psk, size_t *psk_len ) @@ -1655,7 +1655,7 @@ int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, return( 0 ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index f3bdf373b..966b5c5e4 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -691,7 +691,7 @@ int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** * \brief Export TLS 1.3 PSK from handshake context * @@ -707,7 +707,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, unsigned char **psk, size_t *psk_len ); -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index e5cd416e5..2b33a00e1 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -59,7 +59,7 @@ static const mbedtls_ssl_ciphersuite_t *ssl_tls13_validate_peer_ciphersuite( return( ciphersuite_info ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* From RFC 8446: * * enum { psk_ke(0), psk_dhe_ke(1), (255) } PskKeyExchangeMode; @@ -701,7 +701,7 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* From RFC 8446: * struct { @@ -993,7 +993,7 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( MBEDTLS_SSL_EXT_SIG_ALG ) ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( mbedtls_ssl_context *ssl ) @@ -1015,7 +1015,7 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -1027,7 +1027,7 @@ static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) && mbedtls_ssl_tls13_psk_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_key_exchange( ssl ) ); @@ -1040,7 +1040,7 @@ static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) && mbedtls_ssl_tls13_psk_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( ssl ) ); @@ -1289,11 +1289,11 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *extensions_end; int hrr_required = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) const unsigned char *cipher_suites; const unsigned char *pre_shared_key_ext = NULL; const unsigned char *pre_shared_key_ext_end = NULL; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif ssl->handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; @@ -1400,7 +1400,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * with CipherSuite defined as: * uint8 CipherSuite[2]; */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) cipher_suites = p; #endif cipher_suites_end = p + cipher_suites_len; @@ -1581,7 +1581,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS; break; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found psk key exchange modes extension" ) ); @@ -1596,7 +1596,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; break; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); @@ -1608,14 +1608,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Delay processing of the PSK identity once we have * found out which algorithms to use. We keep a pointer * to the buffer and the size for later processing. */ pre_shared_key_ext = p; pre_shared_key_ext_end = extension_data_end; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; break; @@ -1669,7 +1669,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Update checksum with either * - The entire content of the CH message, if no PSK extension is present * - The content up to but excluding the PSK extension, if present. @@ -1698,7 +1698,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } } else -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ { ssl->handshake->update_checksum( ssl, buf, p - buf ); } @@ -2154,7 +2154,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, p += output_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) if( !is_hrr && mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) { ret = ssl_tls13_write_server_pre_shared_key_ext( ssl, p, end, &output_len ); @@ -2166,7 +2166,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, } p += output_len; } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif MBEDTLS_PUT_UINT16_BE( p - p_extensions_len - 2, p_extensions_len, 0 ); diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 42faac01c..707249457 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12981,6 +12981,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12997,6 +12998,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -13015,6 +13017,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -13033,6 +13036,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -13052,6 +13056,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -13105,6 +13110,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13128,6 +13134,7 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ From e68ab4f55eb3ad3badbd44717f01223b161aff32 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 12:46:29 +0200 Subject: [PATCH 0456/1574] Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED to guard TLS code (both TLS 1.2 and 1.3) specific to handshakes involving certificates. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 8 ++-- include/mbedtls/ssl_ciphersuites.h | 5 ++ library/ssl_client.c | 4 +- library/ssl_misc.h | 22 ++++----- library/ssl_tls.c | 40 ++++++++-------- programs/ssl/ssl_client2.c | 70 ++++++++++++++-------------- programs/ssl/ssl_server2.c | 48 +++++++++---------- tests/suites/test_suite_ssl.function | 64 ++++++++++++------------- 8 files changed, 133 insertions(+), 128 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 6ae85d99c..8b2a8b64c 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1444,13 +1444,13 @@ struct mbedtls_ssl_config void *MBEDTLS_PRIVATE(p_async_config_data); /*!< Configuration data set by mbedtls_ssl_conf_async_private_cb(). */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) const int *MBEDTLS_PRIVATE(sig_hashes); /*!< allowed signature hashes */ #endif const uint16_t *MBEDTLS_PRIVATE(sig_algs); /*!< allowed signature algorithms */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) const mbedtls_ecp_group_id *MBEDTLS_PRIVATE(curve_list); /*!< allowed curves */ @@ -3598,7 +3598,7 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, const uint16_t *groups ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2) /** * \brief Set the allowed hashes for signatures during the handshake. @@ -3644,7 +3644,7 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes( mbedtls_ssl_config *conf, */ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, const uint16_t* sig_algs ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) /** diff --git a/include/mbedtls/ssl_ciphersuites.h b/include/mbedtls/ssl_ciphersuites.h index cd6ccbc90..6682ee830 100644 --- a/include/mbedtls/ssl_ciphersuites.h +++ b/include/mbedtls/ssl_ciphersuites.h @@ -292,6 +292,11 @@ typedef enum { #define MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED #endif +#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) +#define MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED +#endif + /* Key exchanges allowing client certificate requests */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ diff --git a/library/ssl_client.c b/library/ssl_client.c index 543c82162..01f1b68eb 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -608,7 +608,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) ( propose_tls13 && mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) ) || @@ -623,7 +623,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, return( ret ); p += output_len; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( propose_tls12 ) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 5a23676f3..7917a2333 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -245,7 +245,7 @@ #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define MBEDTLS_TLS_SIG_NONE MBEDTLS_TLS1_3_SIG_NONE @@ -255,7 +255,7 @@ #define MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg >> 8) #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Check that we obey the standard's message size bounds @@ -629,7 +629,7 @@ struct mbedtls_ssl_handshake_params #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t received_sig_algs[MBEDTLS_RECEIVED_SIG_ALGS_SIZE]; #endif @@ -862,7 +862,7 @@ struct mbedtls_ssl_handshake_params represents an extension and defined as \c MBEDTLS_SSL_EXT_XXX */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) unsigned char certificate_request_context_len; unsigned char *certificate_request_context; #endif @@ -1918,7 +1918,7 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Parse TLS Signature Algorithm extension */ @@ -1926,7 +1926,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Get handshake transcript */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -2046,7 +2046,7 @@ static inline int mbedtls_ssl_named_group_is_supported( uint16_t named_group ) static inline const void *mbedtls_ssl_get_sig_algs( const mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) if( ssl->handshake != NULL && @@ -2058,11 +2058,11 @@ static inline const void *mbedtls_ssl_get_sig_algs( #endif return( ssl->conf->sig_algs ); -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ ((void) ssl); return( NULL ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -2153,7 +2153,7 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, mbedtls_pk_context *key ); #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, uint16_t proposed_sig_alg ) { @@ -2292,7 +2292,7 @@ static inline int mbedtls_ssl_sig_alg_is_supported( ((void) sig_alg); return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Corresponding PSA algorithm for MBEDTLS_CIPHER_NULL. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7486f1f86..0ea40085f 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -843,7 +843,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* Heap allocate and translate sig_hashes from internal hash identifiers to @@ -909,7 +909,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) ssl->handshake->sig_algs_heap_allocated = 0; } #endif /* !MBEDTLS_DEPRECATED_REMOVED */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ return( 0 ); } @@ -2395,7 +2395,7 @@ void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, } #endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2) /* * Set allowed/preferred hashes for handshake signatures @@ -2416,7 +2416,7 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, #endif /* !MBEDTLS_DEPRECATED_REMOVED */ conf->sig_algs = sig_algs; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) #if !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -3587,7 +3587,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) if ( ssl->handshake->sig_algs_heap_allocated ) mbedtls_free( (void*) handshake->sig_algs ); @@ -3599,7 +3599,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( (void*) handshake->certificate_request_context ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) if( ssl->conf->f_async_cancel != NULL && handshake->async_in_progress != 0 ) @@ -4465,7 +4465,7 @@ static int ssl_preset_suiteb_ciphersuites[] = { 0 }; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* NOTICE: * For ssl_preset_*_sig_algs and ssl_tls12_preset_*_sig_algs, the following @@ -4610,7 +4610,7 @@ static uint16_t ssl_tls12_preset_suiteb_sig_algs[] = { }; #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ static uint16_t ssl_preset_suiteb_groups[] = { #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) @@ -4622,7 +4622,7 @@ static uint16_t ssl_preset_suiteb_groups[] = { MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; -#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* Function for checking `ssl_preset_*_sig_algs` and `ssl_tls12_preset_*_sig_algs` * to make sure there are no duplicated signature algorithm entries. */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -4646,7 +4646,7 @@ static int ssl_check_no_sig_alg_duplication( uint16_t * sig_algs ) return( ret ); } -#endif /* MBEDTLS_DEBUG_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Load default in mbedtls_ssl_config @@ -4658,7 +4658,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #endif -#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ssl_check_no_sig_alg_duplication( ssl_preset_suiteb_sig_algs ) ) { mbedtls_printf( "ssl_preset_suiteb_sig_algs has duplicated entries\n" ); @@ -4684,7 +4684,7 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#endif /* MBEDTLS_DEBUG_C && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Use the functions here so that they are covered in tests, * but otherwise access member directly for efficiency */ @@ -4815,14 +4815,14 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->cert_profile = &mbedtls_x509_crt_profile_suiteb; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( mbedtls_ssl_conf_is_tls12_only( conf ) ) conf->sig_algs = ssl_tls12_preset_suiteb_sig_algs; else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_suiteb_sig_algs; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; @@ -4841,14 +4841,14 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->cert_profile = &mbedtls_x509_crt_profile_default; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( mbedtls_ssl_conf_is_tls12_only( conf ) ) conf->sig_algs = ssl_tls12_preset_default_sig_algs; else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ conf->sig_algs = ssl_preset_default_sig_algs; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; @@ -5274,7 +5274,7 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, #endif /* !MBEDTLS_USE_PSA_CRYPTO */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* mbedtls_ssl_parse_sig_alg_ext() * * The `extension_data` field of signature algorithm contains a `SignatureSchemeList` @@ -5382,7 +5382,7 @@ int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -8588,7 +8588,7 @@ int mbedtls_ssl_validate_ciphersuite( return( 0 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Function for writing a signature algorithm extension. * @@ -8691,7 +8691,7 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) /* diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 1637a7359..6b797117f 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -120,7 +120,7 @@ int main( void ) #define GET_REQUEST "GET %s HTTP/1.0\r\nExtra-header: " #define GET_REQUEST_END "\r\n\r\n" -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_CONTEXT_CRT_CB \ " context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \ " to the SSL configuration of the SSL context.\n" \ @@ -129,8 +129,8 @@ int main( void ) " - 1: Use CRT callback bound to SSL context\n" #else #define USAGE_CONTEXT_CRT_CB "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -148,10 +148,10 @@ int main( void ) #define USAGE_IO \ " No file operations available (MBEDTLS_FS_IO not defined)\n" #endif /* MBEDTLS_FS_IO */ -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #define USAGE_IO "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private key as if it were opaque\n" \ " default: 0 (disabled)\n" @@ -269,7 +269,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -540,7 +540,7 @@ struct options #include "ssl_test_common_source.c" -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static unsigned char peer_crt_info[1024]; /* @@ -578,7 +578,7 @@ static int my_verify( void *data, mbedtls_x509_crt *crt, return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) int report_cid_usage( mbedtls_ssl_context *ssl, @@ -718,7 +718,7 @@ int main( int argc, char *argv[] ) mbedtls_net_context server_fd; io_ctx_t io_ctx; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; #endif @@ -775,7 +775,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_TIMING_C) mbedtls_timing_delay_context timer; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt clicert; @@ -784,7 +784,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ char *p, *q; const int *list; #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -825,7 +825,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_config_init( &conf ); memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) ); rng_init( &rng ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &clicert ); mbedtls_pk_init( &pkey ); @@ -1025,7 +1025,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1163,7 +1163,7 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; #endif @@ -1569,7 +1569,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -1668,7 +1668,7 @@ int main( int argc, char *argv[] ) sig_alg_list[i] = MBEDTLS_TLS1_3_SIG_NONE; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) if( opt.alpn_string != NULL ) @@ -1701,7 +1701,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -1823,7 +1823,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key type: %s)\n", strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? mbedtls_pk_get_name( &pkey ) : "none" ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * 2. Setup stuff @@ -1841,7 +1841,7 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. */ if( opt.allow_sha1 > 0 ) @@ -1854,7 +1854,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_verify( &conf, my_verify, NULL ); memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) @@ -1991,7 +1991,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -2012,7 +2012,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL && @@ -2022,7 +2022,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif @@ -2099,7 +2099,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", @@ -2122,10 +2122,10 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ io_ctx.ssl = &ssl; io_ctx.net = &server_fd; @@ -2446,7 +2446,7 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate */ @@ -2469,7 +2469,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " . Peer certificate information ...\n" ); mbedtls_printf( "%s\n", peer_crt_info ); #endif /* !MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ret = report_cid_usage( &ssl, "initial handshake" ); @@ -2844,9 +2844,9 @@ send_request: mbedtls_printf( " . Restarting connection from same port..." ); fflush( stdout ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3080,9 +3080,9 @@ reconnect: mbedtls_printf( " . Reconnecting with saved session..." ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) { @@ -3186,14 +3186,14 @@ exit: mbedtls_free( context_buf ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &clicert ); mbedtls_x509_crt_free( &cacert ); mbedtls_pk_free( &pkey ); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_destroy_key( key_slot ); #endif -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index f94f1b85a..c8594ffbf 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -175,7 +175,7 @@ int main( void ) */ #define DFL_IO_BUF_LEN 200 -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_FS_IO) #define USAGE_IO \ " ca_file=%%s The single file containing the top-level CA(s) you fully trust\n" \ @@ -206,8 +206,8 @@ int main( void ) #endif /* MBEDTLS_FS_IO */ #else #define USAGE_IO "" -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_KEY_OPAQUE \ " key_opaque=%%d Handle your private keys as if they were opaque\n" \ " default: 0 (disabled)\n" @@ -435,7 +435,7 @@ int main( void ) #define USAGE_CURVES "" #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #define USAGE_SIG_ALGS \ " sig_algs=a,b,c,d default: \"default\" (library default)\n" \ " example: \"ecdsa_secp256r1_sha256,ecdsa_secp384r1_sha384\"\n" @@ -1113,7 +1113,7 @@ typedef struct unsigned remaining_delay; } ssl_async_operation_context_t; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* Note that ssl_async_operation_type_t and the array below need to be kept in sync! * `ssl_async_operation_names[op]` is the name of op for each value `op` @@ -1276,7 +1276,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) mbedtls_printf( "Async cancel callback.\n" ); mbedtls_free( ctx ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -1455,7 +1455,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_RENEGOTIATION) unsigned char renego_period[8] = { 0 }; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint32_t flags; mbedtls_x509_crt cacert; mbedtls_x509_crt srvcert; @@ -1468,7 +1468,7 @@ int main( int argc, char *argv[] ) mbedtls_svc_key_id_t key_slot2 = MBEDTLS_SVC_KEY_ID_INIT; /* invalid key slot */ #endif int key_cert_init = 0, key_cert_init2 = 0; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) ssl_async_key_context_t ssl_async_keys; #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ @@ -1505,7 +1505,7 @@ int main( int argc, char *argv[] ) size_t context_buf_len = 0; #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; #endif @@ -1552,7 +1552,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_init( &ssl ); mbedtls_ssl_config_init( &conf ); rng_init( &rng ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_init( &cacert ); mbedtls_x509_crt_init( &srvcert ); mbedtls_pk_init( &pkey ); @@ -1781,7 +1781,7 @@ int main( int argc, char *argv[] ) opt.key_file = q; else if( strcmp( p, "key_pwd" ) == 0 ) opt.key_pwd = q; -#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "key_opaque" ) == 0 ) opt.key_opaque = atoi( q ); #endif @@ -1865,7 +1865,7 @@ int main( int argc, char *argv[] ) } else if( strcmp( p, "curves" ) == 0 ) opt.curves = q; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; #endif @@ -2451,7 +2451,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) { p = (char *) opt.sig_algs; @@ -2583,7 +2583,7 @@ int main( int argc, char *argv[] ) goto exit; mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ @@ -2791,7 +2791,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " ok (key types: %s, %s)\n", key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none", key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" ); -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) if( opt.dhm_file != NULL ) @@ -2841,7 +2841,7 @@ int main( int argc, char *argv[] ) goto exit; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. Hence we allow it here. A real-world server should use the default profile unless there is a good reason not to. */ @@ -2851,7 +2851,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test ); mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( opt.auth_mode != DFL_AUTH_MODE ) mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); @@ -3102,7 +3102,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( strcmp( opt.ca_path, "none" ) != 0 && strcmp( opt.ca_file, "none" ) != 0 ) { @@ -3191,7 +3191,7 @@ int main( int argc, char *argv[] ) &ssl_async_keys ); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(SNI_OPTION) if( opt.sni != NULL ) @@ -3228,7 +3228,7 @@ int main( int argc, char *argv[] ) } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.sig_algs != NULL ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif @@ -3542,7 +3542,7 @@ handshake: { mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) { char vrfy_buf[512]; @@ -3597,7 +3597,7 @@ handshake: } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the client certificate */ @@ -3626,7 +3626,7 @@ handshake: mbedtls_printf( "%s\n", crt_buf ); } #endif /* MBEDTLS_X509_REMOVE_INFO */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ if( opt.eap_tls != 0 ) { @@ -4320,7 +4320,7 @@ exit: mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) mbedtls_x509_crt_free( &cacert ); mbedtls_x509_crt_free( &srvcert ); mbedtls_pk_free( &pkey ); diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index cc7497818..9ac642b2f 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -31,7 +31,7 @@ typedef struct log_pattern size_t counter; } log_pattern; -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static int rng_seed = 0xBEEF; static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) { @@ -103,7 +103,7 @@ typedef struct handshake_test_options void init_handshake_options( handshake_test_options *opts ) { -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) srand( rng_seed ); rng_seed += 0xD0; #endif @@ -790,7 +790,7 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) return msg_len; } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * Structure with endpoint's certificates for SSL communication tests. @@ -1178,7 +1178,7 @@ int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, return ( max_steps >= 0 ) ? ret : -1; } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * Write application data. Increase write counter if necessary. @@ -1750,7 +1750,7 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, memset( session->id, 66, session->id_len ); memset( session->master, 17, sizeof( session->master ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) if( crt_file != NULL && strlen( crt_file ) != 0 ) { mbedtls_x509_crt tmp_crt; @@ -1801,9 +1801,9 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, mbedtls_x509_crt_free( &tmp_crt ); } -#else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ +#else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ (void) crt_file; -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ session->verify_result = 0xdeadbeef; #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) @@ -2029,7 +2029,7 @@ int exchange_data( mbedtls_ssl_context *ssl_1, ssl_2, 256, 1 ); } -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_version, const mbedtls_ssl_context *ssl ) { @@ -2066,10 +2066,10 @@ static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_v exit: return( 0 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) void perform_handshake( handshake_test_options *options ) { /* forced_ciphersuite needs to last until the end of the handshake */ @@ -2467,7 +2467,7 @@ exit: #endif USE_PSA_DONE( ); } -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_TEST_HOOKS) /* @@ -3685,7 +3685,7 @@ void ssl_dtls_replay( data_t * prevs, data_t * new, int ret ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ void ssl_set_hostname_twice( char *hostname0, char *hostname1 ) { mbedtls_ssl_context ssl; @@ -4752,7 +4752,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, TEST_ASSERT( memcmp( original.master, restored.master, sizeof( original.master ) ) == 0 ); -#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) TEST_ASSERT( ( original.peer_cert == NULL ) == ( restored.peer_cert == NULL ) ); @@ -4778,7 +4778,7 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, original.peer_cert_digest_len ) == 0 ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ TEST_ASSERT( original.verify_result == restored.verify_result ); #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) @@ -5100,7 +5100,7 @@ void ssl_session_serialize_version_check( int corrupt_major, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void mbedtls_endpoint_sanity( int endpoint_type ) { enum { BUFFSIZE = 1024 }; @@ -5127,7 +5127,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void move_handshake_to_state(int endpoint_type, int state, int need_pass) { enum { BUFFSIZE = 1024 }; @@ -5183,7 +5183,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void handshake_version( int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version ) @@ -5208,7 +5208,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) { handshake_test_options options; @@ -5229,7 +5229,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_cipher( char* cipher, int pk_alg, int dtls ) { test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); @@ -5239,7 +5239,7 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, int psa_alg, int psa_alg2, int psa_usage, int expected_handshake_result, @@ -5266,7 +5266,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments, int dtls ) @@ -5294,7 +5294,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5306,7 +5306,7 @@ void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments ) @@ -5318,7 +5318,7 @@ void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_serialization( ) { handshake_test_options options; @@ -5334,7 +5334,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) { handshake_test_options options; @@ -5373,7 +5373,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void renegotiation( int legacy_renegotiation ) { handshake_test_options options; @@ -5392,7 +5392,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, int serialize, int dtls, char *cipher ) { @@ -5416,7 +5416,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_serialize_mfl( int mfl ) { test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5427,7 +5427,7 @@ void resize_buffers_serialize_mfl( int mfl ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, char *cipher ) { @@ -5828,7 +5828,7 @@ void conf_group() } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ void force_bad_session_id_len( ) { enum { BUFFSIZE = 1024 }; @@ -6015,7 +6015,7 @@ void cid_sanity( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ void raw_key_agreement_fail( int bad_server_ecdhe_key ) { enum { BUFFSIZE = 17000 }; @@ -6086,7 +6086,7 @@ exit: USE_PSA_DONE( ); } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ void tls13_server_certificate_msg_invalid_vector_len( ) { int ret = -1; From 73fe8df9221b4627bf995f656772dcf8457c9c33 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 5 Oct 2022 14:31:43 +0200 Subject: [PATCH 0457/1574] Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED Introduce and use MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED to guard TLS code (both 1.2 and 1.3) specific to handshakes involving PSKs. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 10 +++++----- include/mbedtls/ssl_ciphersuites.h | 5 +++++ library/ssl_misc.h | 9 +++++---- library/ssl_tls.c | 12 +++++------ programs/ssl/ssl_client2.c | 24 +++++++++++----------- programs/ssl/ssl_server2.c | 30 ++++++++++++++-------------- tests/suites/test_suite_ssl.function | 8 ++++---- 7 files changed, 52 insertions(+), 46 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 8b2a8b64c..9677c7163 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1393,7 +1393,7 @@ struct mbedtls_ssl_config void *MBEDTLS_PRIVATE(p_vrfy); /*!< context for X.509 verify calllback */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_SRV_C) /** Callback to retrieve PSK key from identity */ int (*MBEDTLS_PRIVATE(f_psk))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); @@ -1463,7 +1463,7 @@ struct mbedtls_ssl_config mbedtls_mpi MBEDTLS_PRIVATE(dhm_G); /*!< generator for DHM */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psk_opaque); /*!< PSA key slot holding opaque PSK. This field @@ -1494,7 +1494,7 @@ struct mbedtls_ssl_config * Its value is non-zero if and only if * \c psk is not \c NULL or \c psk_opaque * is not \c 0. */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) const char **MBEDTLS_PRIVATE(alpn_list); /*!< ordered list of protocols */ @@ -3296,7 +3296,7 @@ int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, mbedtls_pk_context *pk_key ); #endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /** * \brief Configure pre-shared keys (PSKs) and their * identities to be used in PSK-based ciphersuites. @@ -3465,7 +3465,7 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, size_t), void *p_psk ); #endif /* MBEDTLS_SSL_SRV_C */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) /** diff --git a/include/mbedtls/ssl_ciphersuites.h b/include/mbedtls/ssl_ciphersuites.h index 6682ee830..b46116e0d 100644 --- a/include/mbedtls/ssl_ciphersuites.h +++ b/include/mbedtls/ssl_ciphersuites.h @@ -346,6 +346,11 @@ typedef enum { #define MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED #endif +#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#define MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED +#endif + /* Key exchanges using DHE */ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 7917a2333..41bb9c514 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -675,7 +675,7 @@ struct mbedtls_ssl_handshake_params const mbedtls_ecp_curve_info **curves; /*!< Supported elliptic curves */ #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t psk_opaque; /*!< Opaque PSK from the callback */ uint8_t psk_opaque_is_internal; @@ -684,7 +684,7 @@ struct mbedtls_ssl_handshake_params size_t psk_len; /*!< Length of PSK from callback */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ uint16_t selected_identity; -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) mbedtls_x509_crt_restart_ctx ecrs_ctx; /*!< restart context */ @@ -1366,12 +1366,13 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); #endif - #if defined(MBEDTLS_USE_PSA_CRYPTO) /** * Get the first defined opaque PSK by order of precedence: @@ -1424,7 +1425,7 @@ static inline int mbedtls_ssl_get_psk( const mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_PK_C) unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 0ea40085f..63a433dbe 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1599,7 +1599,7 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { if( conf->psk_identity == NULL || @@ -1842,7 +1842,7 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, } #endif /* MBEDTLS_SSL_SRV_C */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode( @@ -3645,7 +3645,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( (void *) handshake->curves ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ! mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) { @@ -3665,7 +3665,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_free( handshake->psk ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -4873,7 +4873,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) mbedtls_mpi_free( &conf->dhm_G ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) { @@ -4895,7 +4895,7 @@ void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) conf->psk_identity = NULL; conf->psk_identity_len = 0; } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) ssl_key_cert_free( conf->key_cert ); diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6b797117f..556ecb97c 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -173,7 +173,7 @@ int main( void ) #define USAGE_CID "" #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #define USAGE_PSK_RAW \ " psk=%%s default: \"\" (disabled)\n" \ " The PSK values are in hex, without 0x.\n" \ @@ -195,7 +195,7 @@ int main( void ) #define USAGE_PSK USAGE_PSK_RAW USAGE_PSK_SLOT #else #define USAGE_PSK "" -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) #define USAGE_CA_CALLBACK \ @@ -724,7 +724,7 @@ int main( int argc, char *argv[] ) unsigned char buf[MAX_REQUEST_SIZE + 1]; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) unsigned char psk[MBEDTLS_PSK_MAX_LEN]; size_t psk_len = 0; #endif @@ -756,7 +756,7 @@ int main( int argc, char *argv[] ) const char *pers = "ssl_client2"; #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) mbedtls_svc_key_id_t slot = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = 0; psa_key_attributes_t key_attributes; @@ -1403,7 +1403,7 @@ int main( int argc, char *argv[] ) mbedtls_debug_set_threshold( opt.debug_level ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /* * Unhexify the pre-shared key if any is given */ @@ -1416,7 +1416,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) @@ -1475,7 +1475,7 @@ int main( int argc, char *argv[] ) } #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined (MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined (MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( opt.psk_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ @@ -1486,7 +1486,7 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } @@ -2027,7 +2027,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -2065,7 +2065,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ if( opt.min_version != DFL_MIN_VERSION ) mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version ); @@ -3195,7 +3195,7 @@ exit: #endif #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -3214,7 +3214,7 @@ exit: ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED && +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index c8594ffbf..67be9bf8a 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -241,7 +241,7 @@ int main( void ) #define USAGE_CID "" #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #define USAGE_PSK_RAW \ " psk=%%s default: \"\" (disabled)\n" \ " The PSK values are in hex, without 0x.\n" \ @@ -276,7 +276,7 @@ int main( void ) #define USAGE_PSK USAGE_PSK_RAW USAGE_PSK_SLOT #else #define USAGE_PSK "" -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) #define USAGE_CA_CALLBACK \ " ca_callback=%%d default: 0 (disabled)\n" \ @@ -907,7 +907,7 @@ int cert_callback( mbedtls_ssl_context *ssl ) #endif /* SNI_OPTION */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) typedef struct _psk_entry psk_entry; @@ -1020,7 +1020,7 @@ int psk_callback( void *p_info, mbedtls_ssl_context *ssl, return( -1 ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ static mbedtls_net_context listen_fd, client_fd; @@ -1280,7 +1280,7 @@ static void ssl_async_cancel( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot, psa_algorithm_t alg, unsigned char *psk, @@ -1303,7 +1303,7 @@ static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot, return( PSA_SUCCESS ); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) @@ -1431,7 +1431,7 @@ int main( int argc, char *argv[] ) int query_config_ret = 0; io_ctx_t io_ctx; unsigned char* buf = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t alg = 0; mbedtls_svc_key_id_t psk_slot = MBEDTLS_SVC_KEY_ID_INIT; @@ -2336,7 +2336,7 @@ int main( int argc, char *argv[] ) } #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 ) { /* Determine KDF algorithm the opaque PSK will be used in. */ @@ -2347,7 +2347,7 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } @@ -2374,7 +2374,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /* * Unhexify the pre-shared key and parse the list if any given */ @@ -2393,7 +2393,7 @@ int main( int argc, char *argv[] ) goto exit; } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_ECP_C) if( opt.curves != NULL ) @@ -3233,7 +3233,7 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( strlen( opt.psk ) != 0 && strlen( opt.psk_identity ) != 0 ) { @@ -4314,7 +4314,7 @@ exit: sni_free( sni_info ); #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) ret = psk_free( psk_info ); if( ( ret != 0 ) && ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) ) mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); @@ -4348,7 +4348,7 @@ exit: } #endif -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) && \ +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.psk_opaque != 0 ) { @@ -4365,7 +4365,7 @@ exit: (int) status ); } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED && +#endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 9ac642b2f..7447a1d0e 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2076,7 +2076,7 @@ void perform_handshake( handshake_test_options *options ) int forced_ciphersuite[2]; enum { BUFFSIZE = 17000 }; mbedtls_endpoint client, server; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) const char *psk_identity = "foo"; #endif #if defined(MBEDTLS_TIMING_C) @@ -2188,7 +2188,7 @@ void perform_handshake( handshake_test_options *options ) TEST_ASSERT( MBEDTLS_SSL_MAX_FRAG_LEN_NONE == options->mfl ); #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) if( options->psk_str != NULL && options->psk_str->len > 0 ) { TEST_ASSERT( mbedtls_ssl_conf_psk( &client.conf, options->psk_str->x, @@ -5621,7 +5621,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ void test_multiple_psks() { unsigned char psk0[10] = { 0 }; @@ -5651,7 +5651,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */ void test_multiple_psks_opaque( int mode ) { /* From 59625848e6fb3a6f7623afcca17f6f6102760e19 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 10:36:34 +0200 Subject: [PATCH 0458/1574] ssl-opt.sh: TLS 1.3 kex: Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_*ENABLED Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 577 ++++++++++++++++--------- 1 file changed, 382 insertions(+), 195 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 6914ccd51..6ef0c3c99 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -32,9 +32,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -# SOME_ECDHE_ENABLED? -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -52,9 +51,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -# SOME_ECDHE_ENABLED? -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ @@ -228,7 +226,7 @@ run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -245,7 +243,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -264,7 +262,7 @@ run_test "TLS 1.3: G->m: all/psk, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -282,7 +280,7 @@ run_test "TLS 1.3: G->m: all/psk, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -300,7 +298,7 @@ run_test "TLS 1.3: G->m: all/psk, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -319,7 +317,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -337,7 +335,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -355,8 +353,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -375,8 +372,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -394,8 +390,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -413,8 +408,7 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -433,8 +427,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -452,8 +445,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -471,8 +463,7 @@ run_test "TLS 1.3: G->m: all/psk_ephemeral, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -489,8 +480,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_ephemeral, fail, no common kex requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -509,8 +500,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -528,8 +519,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -547,8 +538,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_all, fail, key material mismatch" requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -567,8 +558,8 @@ run_test "TLS 1.3: G->m: all/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -586,8 +577,8 @@ run_test "TLS 1.3: G->m: all/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -605,8 +596,8 @@ run_test "TLS 1.3: G->m: all/psk_all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -625,8 +616,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -644,8 +635,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key id mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -663,8 +654,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_all, fail, key material mismatc requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -683,8 +674,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -702,8 +693,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, good, key id mismatch, requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -721,8 +712,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/ephemeral_all, fail, key material mism requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -741,8 +732,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -760,8 +751,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -779,8 +770,8 @@ run_test "TLS 1.3: G->m: all/ephemeral_all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -799,8 +790,9 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/ephemeral_all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -819,8 +811,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -838,8 +831,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -857,8 +851,9 @@ run_test "TLS 1.3: G->m: ephemeral_all/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -877,8 +872,9 @@ run_test "TLS 1.3: G->m: all/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -896,8 +892,9 @@ run_test "TLS 1.3: G->m: all/all, good, key id mismatch, dhe." \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -915,8 +912,9 @@ run_test "TLS 1.3: G->m: all/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -935,8 +933,9 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/all, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -954,8 +953,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/all, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ @@ -974,8 +973,8 @@ run_test "TLS 1.3: G->m: ephemeral_all/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -994,8 +993,8 @@ run_test "TLS 1.3: G->m: all/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1013,8 +1012,8 @@ run_test "TLS 1.3: G->m: all/psk_or_ephemeral, fail, key material mismatch" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1033,8 +1032,8 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:-ECDHE-PSK:-DHE-PSK:+PSK:+VERS-TLS1.3 \ @@ -1052,8 +1051,7 @@ run_test "TLS 1.3: G->m: psk_or_ephemeral/psk_or_ephemeral, fail, key materia requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1 \ @@ -1067,8 +1065,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp256r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP384R1 \ @@ -1082,8 +1079,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp384r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP521R1 \ @@ -1097,8 +1093,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(secp521r1) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X25519 \ @@ -1112,8 +1107,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(x25519) check, good" \ requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-X448 \ @@ -1127,7 +1121,7 @@ run_test "TLS 1.3: G->m: psk_ephemeral group(x448) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1143,7 +1137,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk, fail, no common kex mode" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1161,7 +1155,7 @@ run_test "TLS 1.3: O->m: all/psk, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1178,7 +1172,7 @@ run_test "TLS 1.3: O->m: all/psk, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1195,8 +1189,7 @@ run_test "TLS 1.3: O->m: all/psk, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1214,8 +1207,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1232,8 +1224,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1250,8 +1241,7 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1269,8 +1259,7 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1287,8 +1276,7 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1305,8 +1293,8 @@ run_test "TLS 1.3: O->m: all/psk_ephemeral, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1324,8 +1312,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1342,8 +1330,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1360,8 +1348,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_all, fail, key material mismatch" requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1379,8 +1367,8 @@ run_test "TLS 1.3: O->m: all/psk_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1397,8 +1385,8 @@ run_test "TLS 1.3: O->m: all/psk_all, fail, key id mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1415,8 +1403,8 @@ run_test "TLS 1.3: O->m: all/psk_all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1434,8 +1422,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1452,8 +1440,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, good, key id mismatch, requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1470,8 +1458,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/ephemeral_all, fail, key material mism requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1489,8 +1477,8 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1507,8 +1495,8 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=ephemeral_all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1525,8 +1513,9 @@ run_test "TLS 1.3: O->m: all/ephemeral_all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1544,8 +1533,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1562,8 +1552,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1580,8 +1571,9 @@ run_test "TLS 1.3: O->m: ephemeral_all/all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1599,8 +1591,9 @@ run_test "TLS 1.3: O->m: all/all, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1617,8 +1610,9 @@ run_test "TLS 1.3: O->m: all/all, good, key id mismatch, dhe." \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1635,8 +1629,8 @@ run_test "TLS 1.3: O->m: all/all, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg \ @@ -1654,8 +1648,8 @@ run_test "TLS 1.3: O->m: ephemeral_all/psk_or_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1673,8 +1667,8 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_or_ephemeral debug_level=5 $(get_srv_psk_list)" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex \ @@ -1691,8 +1685,7 @@ run_test "TLS 1.3: O->m: all/psk_or_ephemeral, fail, key material mismatch" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups P-256 \ @@ -1705,8 +1698,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp256r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp384r1 \ @@ -1719,8 +1711,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp384r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups secp521r1 \ @@ -1733,8 +1724,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(secp521r1) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X25519 \ @@ -1747,8 +1737,7 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(x25519) check, good" \ requires_openssl_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70" \ "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -groups X448 \ @@ -1760,9 +1749,8 @@ run_test "TLS 1.3: O->m: psk_ephemeral group(x448) check, good" \ -S "key exchange mode: ephemeral" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ "$O_NEXT_CLI_NO_CERT -tls1_3 -msg -allow_no_dhe_kex -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70 -groups P-256:P-384" \ @@ -1774,11 +1762,10 @@ run_test "TLS 1.3 O->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ -S "key exchange mode: ephemeral" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef curves=secp384r1" \ "$G_NEXT_CLI_NO_CERT --debug=4 --single-key-share --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1 --pskusername Client_identity --pskkey 6162636465666768696a6b6c6d6e6f70 localhost" \ @@ -1797,6 +1784,7 @@ run_test "TLS 1.3 G->m: psk_ephemeral group(secp256r1->secp384r1) check, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1810,6 +1798,7 @@ run_test "TLS 1.3: m->m: psk/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1822,6 +1811,7 @@ run_test "TLS 1.3: m->m: psk/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1834,6 +1824,8 @@ run_test "TLS 1.3: m->m: psk/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1846,6 +1838,8 @@ run_test "TLS 1.3: m->m: psk/psk_ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1858,6 +1852,9 @@ run_test "TLS 1.3: m->m: psk/ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1870,6 +1867,8 @@ run_test "TLS 1.3: m->m: psk/ephemeral_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1883,6 +1882,8 @@ run_test "TLS 1.3: m->m: psk/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1896,6 +1897,8 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1908,6 +1911,9 @@ run_test "TLS 1.3: m->m: psk/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -1921,6 +1927,9 @@ run_test "TLS 1.3: m->m: psk/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk" \ @@ -1934,6 +1943,9 @@ run_test "TLS 1.3: m->m: psk/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk" \ @@ -1947,6 +1959,8 @@ run_test "TLS 1.3: m->m: psk/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -1959,6 +1973,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -1972,6 +1987,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -1985,6 +2001,7 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ @@ -1998,8 +2015,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2011,6 +2028,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2025,8 +2044,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2039,6 +2058,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c psk=040506 tls13_kex_modes=psk_ephemeral" \ @@ -2051,6 +2072,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/ephemeral_all, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2064,6 +2087,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2077,6 +2102,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2089,6 +2116,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/psk_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2102,6 +2132,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_ephemeral" \ @@ -2114,6 +2147,9 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2127,6 +2163,8 @@ run_test "TLS 1.3: m->m: psk_ephemeral/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2136,6 +2174,8 @@ run_test "TLS 1.3: m->m: ephemeral/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2145,6 +2185,7 @@ run_test "TLS 1.3: m->m: ephemeral/psk_ephemeral, fail - no common kex mode" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2155,6 +2196,8 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2165,6 +2208,9 @@ run_test "TLS 1.3: m->m: ephemeral/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2174,6 +2220,9 @@ run_test "TLS 1.3: m->m: ephemeral/psk_all, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2185,6 +2234,9 @@ run_test "TLS 1.3: m->m: ephemeral/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2197,6 +2249,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2210,6 +2264,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2222,6 +2278,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key id mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2234,6 +2292,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_ephemeral, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2248,6 +2308,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2261,6 +2323,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2274,6 +2338,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all,good,key id mismatch,fal requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2286,6 +2352,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/ephemeral_all, fail, key material mism requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2299,6 +2368,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2312,6 +2384,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2324,6 +2399,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/psk_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2337,6 +2415,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=ephemeral_all" \ @@ -2350,6 +2431,9 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, good, key id mismatch, fallback" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2363,6 +2447,8 @@ run_test "TLS 1.3: m->m: ephemeral_all/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2376,6 +2462,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2388,6 +2476,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2400,6 +2490,8 @@ run_test "TLS 1.3: m->m: psk_all/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2413,6 +2505,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2426,6 +2520,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2438,6 +2534,9 @@ run_test "TLS 1.3: m->m: psk_all/psk_ephemeral, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2449,6 +2548,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral, fail - no common kex mode" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2462,6 +2564,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2474,6 +2579,9 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2486,6 +2594,8 @@ run_test "TLS 1.3: m->m: psk_all/ephemeral_all, fail, key material mismatch" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2499,6 +2609,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2512,6 +2624,8 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2524,6 +2638,9 @@ run_test "TLS 1.3: m->m: psk_all/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2537,6 +2654,9 @@ run_test "TLS 1.3: m->m: psk_all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=psk_all" \ @@ -2549,6 +2669,9 @@ run_test "TLS 1.3: m->m: psk_all/all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2562,6 +2685,9 @@ run_test "TLS 1.3: m->m: psk_all/all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2575,6 +2701,9 @@ run_test "TLS 1.3: m->m: all/psk, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2588,6 +2717,9 @@ run_test "TLS 1.3: m->m: all/psk, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2600,6 +2732,9 @@ run_test "TLS 1.3: m->m: all/psk, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2613,6 +2748,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2626,6 +2764,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2638,6 +2779,9 @@ run_test "TLS 1.3: m->m: all/psk_ephemeral, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2651,6 +2795,9 @@ run_test "TLS 1.3: m->m: all/ephemeral, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2664,6 +2811,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2678,6 +2828,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, good, key id mismatch, fallback" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2690,6 +2843,9 @@ run_test "TLS 1.3: m->m: all/ephemeral_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2703,6 +2859,9 @@ run_test "TLS 1.3: m->m: all/psk_all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2716,6 +2875,9 @@ run_test "TLS 1.3: m->m: all/psk_all, fail, key id mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2728,6 +2890,9 @@ run_test "TLS 1.3: m->m: all/psk_all, fail, key material mismatch" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, good" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2741,6 +2906,9 @@ run_test "TLS 1.3: m->m: all/all, good" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=010203 psk_identity=0d0e0f tls13_kex_modes=all" \ @@ -2754,6 +2922,9 @@ run_test "TLS 1.3: m->m: all/all, good, key id mismatch, fallback" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->m: all/all, fail, key material mismatch" \ "$P_SRV nbio=2 debug_level=5 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ "$P_CLI nbio=2 debug_level=5 psk=040506 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2769,8 +2940,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -2788,8 +2958,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->O: psk/ephemeral_all, fail - no common kex mode" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -2807,8 +2976,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2826,8 +2995,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -2846,8 +3015,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2865,8 +3033,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: psk_ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -2885,8 +3052,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2903,8 +3069,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -2922,8 +3087,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2941,8 +3106,8 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: ephemeral_all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -2961,8 +3126,9 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: all/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -2980,8 +3146,9 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->O: all/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -3000,6 +3167,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -3019,6 +3187,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ @@ -3038,6 +3207,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -3057,6 +3228,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ @@ -3076,6 +3249,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -3095,6 +3269,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ @@ -3115,6 +3290,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -3131,6 +3307,7 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ @@ -3148,6 +3325,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -3167,6 +3346,8 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ @@ -3187,6 +3368,9 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ @@ -3206,6 +3390,9 @@ requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ From de08cf354335efea87faba2b970c5ac206efedd8 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 17:15:35 +0200 Subject: [PATCH 0459/1574] tls13: Do not use MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED Use MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED instead. Signed-off-by: Ronald Cron --- library/ssl_tls13_generic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 3913c1669..48e367582 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -357,7 +357,7 @@ cleanup: * */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* * Structure of Certificate message: @@ -534,9 +534,9 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* Validate certificate chain sent by the server. */ MBEDTLS_CHECK_RETURN_CRITICAL @@ -727,14 +727,14 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) ); -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) unsigned char *buf; size_t buf_len; @@ -752,7 +752,7 @@ int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ) buf, buf_len ); cleanup: -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); return( ret ); From 82be0d4b4db3fb8ab84d79e8b2b435b984a29874 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 17:25:34 +0200 Subject: [PATCH 0460/1574] tls13: Do not use MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 5954b62ef..642b91260 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1256,7 +1256,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) unsigned char *shared_secret = NULL; size_t shared_secret_len = 0; -#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) /* * Compute ECDHE secret used to compute the handshake secret from which * client_handshake_traffic_secret and server_handshake_traffic_secret @@ -1310,7 +1311,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED || + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ /* * Compute the Handshake Secret From 766c0cdb1f96c487225c8530a8b8570f1d1c34f0 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 12:17:11 +0200 Subject: [PATCH 0461/1574] tls13: Add missing kex guards Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 5 ++++- library/ssl_tls13_server.c | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index acac23174..0ff85c674 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -210,6 +210,7 @@ static int ssl_tls13_reset_key_share( mbedtls_ssl_context *ssl ) /* * Functions for writing key_share extension. */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, uint16_t *group_id ) @@ -364,7 +365,7 @@ cleanup: return( ret ); } - +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ /* * ssl_tls13_parse_hrr_key_share_ext() @@ -1142,6 +1143,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) if( mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) { ret = ssl_tls13_write_key_share_ext( ssl, p, end, &ext_len ); @@ -1149,6 +1151,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; } +#endif #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* For PSK-based key exchange we need the pre_shared_key extension diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 2b33a00e1..8b9ac343a 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -3027,6 +3027,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) ret = ssl_tls13_handshake_wrapup( ssl ); break; +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE: ret = mbedtls_ssl_tls13_process_certificate( ssl ); if( ret == 0 ) @@ -3053,6 +3054,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) ssl, MBEDTLS_SSL_CLIENT_FINISHED ); } break; +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_NEW_SESSION_TICKET: From 8328113cad67dad24faee63c525f7e6acd29a1d5 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 18 Oct 2022 09:37:39 +0200 Subject: [PATCH 0462/1574] ssl-opt.sh: Fix some test checks for ephemeral only kex build Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 6ef0c3c99..209c34a2f 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3057,10 +3057,6 @@ run_test "TLS 1.3: m->O: ephemeral/all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" @@ -3074,10 +3070,6 @@ run_test "TLS 1.3: m->O: ephemeral/ephemeral_all, good" \ "$O_NEXT_SRV -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203" \ "$P_CLI debug_level=4 sig_algs=ecdsa_secp256r1_sha256 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -c "<= write client hello" \ - -c "found key_shares extension" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 ok" @@ -3295,10 +3287,6 @@ run_test "TLS 1.3: m->G: ephemeral/all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" @@ -3312,10 +3300,6 @@ run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ - -c "=> write client hello" \ - -c "skip psk_key_exchange_modes extension" \ - -s "Not sending extension (PSK Key Exchange Modes/45)" \ - -c "<= write client hello" \ -c "Selected key exchange mode: ephemeral" \ -c "HTTP/1.0 200 OK" From 571f1ff6dcc94f880dde2b469ae3ffb488e30fbf Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 4 Oct 2022 09:33:27 +0200 Subject: [PATCH 0463/1574] Make sure TLS 1.2 kex macros are undefined in builds without TLS 1.2 Signed-off-by: Ronald Cron --- include/mbedtls/build_info.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 041c5b61e..9c9a34546 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -78,6 +78,20 @@ #define MBEDTLS_PK_WRITE_C #endif +#if !defined(MBEDTLS_SSL_PROTO_TLS1_2) +#undef MBEDTLS_KEY_EXCHANGE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED +#undef MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif + #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED From c3f43b663e99d12a0c4703428dad3f46e7dc385c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 17 Oct 2022 17:35:32 +0200 Subject: [PATCH 0464/1574] all.sh: Add components testing TLS 1.3 kex partial enablement Signed-off-by: Ronald Cron --- tests/scripts/all.sh | 87 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 61d675f4f..bfd865b8f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3218,11 +3218,90 @@ component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without MBEDTLS_SSL_PROTO_TLS1_2" - if_build_succeeded make test + msg "test_suite_ssl: TLS 1.3 only, all key exchange modes enabled" + cd tests; ./test_suite_ssl; cd .. - msg "ssl-opt.sh (TLS 1.3)" - if_build_succeeded tests/ssl-opt.sh + msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk () { + msg "build: TLS 1.3 only from default, only PSK key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_ECDH_C + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only PSK key exchange mode enabled" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only PSK key exchange mode enabled" + tests/ssl-opt.sh +} + +component_test_tls13_only_ephemeral () { + msg "build: TLS 1.3 only from default, only ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only ephemeral key exchange mode" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only ephemeral key exchange mode" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk_ephemeral () { + msg "build: TLS 1.3 only from default, only PSK ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral key exchange mode" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, only PSK ephemeral key exchange mode" + tests/ssl-opt.sh +} + +component_test_tls13_only_psk_all () { + msg "build: TLS 1.3 only from default, without ephemeral key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_PKCS1_V21 + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" + tests/ssl-opt.sh +} + +component_test_tls13_only_ephemeral_all () { + msg "build: TLS 1.3 only from default, without PSK key exchange mode" + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" + + msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" + cd tests; ./test_suite_ssl; cd .. + + msg "ssl-opt.sh: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" + tests/ssl-opt.sh } component_test_tls13_only_with_hooks () { From 9810b6d0b7b3240251324c69f6fc615e6b12d99b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:22:45 +0200 Subject: [PATCH 0465/1574] Fix kex config options documentation in tls13-support.md Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 30185f4e1..1c568d82c 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -148,7 +148,12 @@ Support description - MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE enables the support for middlebox compatibility mode as defined in section D.4 of RFC 8446. - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for + the PSK key exchange mode as defined by RFC 8446. If it is the only key + exchange mode enabled, the TLS 1.3 implementation does not contain any code + related to key exchange protocols, certificates and signatures. + + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support of the ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code related to PSK based key exchange. The ephemeral key exchange mode requires at least @@ -157,16 +162,11 @@ Support description algorithm allowed by the TLS 1.3 specification for signature computing and verification. - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED enables the support for - the PSK key exchange mode as defined by RFC 8446. If it is the only key + - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED enables the + support for the PSK ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code - related to key exchange protocols, certificates and signatures. - - - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the support - for the PSK ephemeral key exchange mode. If it is the only key exchange - mode enabled, the TLS 1.3 implementation does not contain any code related to certificates and signatures. The PSK ephemeral key exchange - mode requirss at least one of the key exchange protocol allowed by the + mode requires at least one of the key exchange protocol allowed by the TLS 1.3 specification. From a2900bcd1e2059bebf6a010203e9b0b5e2ddcef4 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:37:35 +0200 Subject: [PATCH 0466/1574] tls13: keys: Simplify code guard Signed-off-by: Ronald Cron --- library/ssl_tls13_keys.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 642b91260..ec84a996c 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1256,8 +1256,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) unsigned char *shared_secret = NULL; size_t shared_secret_len = 0; -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) || \ - defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) /* * Compute ECDHE secret used to compute the handshake secret from which * client_handshake_traffic_secret and server_handshake_traffic_secret @@ -1311,8 +1310,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED || - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ /* * Compute the Handshake Secret From 5de538c9dd546ad0c3af9d6fe2c23a3b0585ad0c Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 14:47:56 +0200 Subject: [PATCH 0467/1574] ssl-opt.sh: Remove requires_key_exchange_with_cert_in_tls12_enabled Remove requires_key_exchange_with_cert_in_tls12_enabled and use `requires_any_configs_enabled` directly instead. Signed-off-by: Ronald Cron --- tests/scripts/generate_tls13_compat_tests.py | 1 - tests/ssl-opt.sh | 95 +++++++++----------- 2 files changed, 44 insertions(+), 52 deletions(-) diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 5c445df72..764c0ee3f 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -357,7 +357,6 @@ class MbedTLSBase(TLSProgram): def pre_checks(self): ret = ['requires_config_enabled MBEDTLS_DEBUG_C', - 'requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3', 'requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED'] if self._compat_mode: diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 707249457..8945bdf83 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -259,17 +259,10 @@ TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED" -requires_key_exchange_with_cert_in_tls12_enabled() { - if ! $P_QUERY -any $TLS1_2_KEY_EXCHANGES_WITH_CERT - then - SKIP_NEXT="YES" - fi -} - requires_key_exchange_with_cert_in_tls12_or_tls13_enabled() { if $P_QUERY -all MBEDTLS_SSL_PROTO_TLS1_2 then - requires_key_exchange_with_cert_in_tls12_enabled + requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT elif ! $P_QUERY -all MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED then SKIP_NEXT="YES" @@ -5195,7 +5188,7 @@ run_test "Authentication: server badcert, client required" \ -c "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5207,7 +5200,7 @@ run_test "Authentication: server badcert, client optional" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server goodcert, client optional, no trusted CA" \ "$P_SRV" \ "$P_CLI debug_level=3 auth_mode=optional ca_file=none ca_path=none" \ @@ -5239,7 +5232,7 @@ run_test "Authentication: server goodcert, client required, no trusted CA" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5251,7 +5244,7 @@ run_test "Authentication: server ECDH p256v1, client required, p256v1 unsuppo requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5262,7 +5255,7 @@ run_test "Authentication: server ECDH p256v1, client optional, p256v1 unsuppo -c "bad server certificate (ECDH curve)" # Expect failure only at ECDH params check requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server badcert, client none" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5274,7 +5267,7 @@ run_test "Authentication: server badcert, client none" \ -C "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client SHA256, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5285,7 +5278,7 @@ run_test "Authentication: client SHA256, server required" \ -c "Supported Signature Algorithm found: 5," requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client SHA384, server required" \ "$P_SRV auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5419,7 +5412,7 @@ run_test "Authentication: client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: openssl client no cert, server optional" \ "$P_SRV debug_level=3 auth_mode=optional" \ "$O_CLI" \ @@ -5431,7 +5424,7 @@ run_test "Authentication: openssl client no cert, server optional" \ -S "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client no cert, openssl server optional" \ "$O_SRV -verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5443,7 +5436,7 @@ run_test "Authentication: client no cert, openssl server optional" \ -C "! mbedtls_ssl_handshake returned" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: client no cert, openssl server required" \ "$O_SRV -Verify 10 -tls1_2" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -5487,7 +5480,7 @@ run_test "Authentication: server max_int+1 chain, client default" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5499,7 +5492,7 @@ run_test "Authentication: server max_int+1 chain, client optional" \ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: server max_int+1 chain, client none" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5551,7 +5544,7 @@ run_test "Authentication: client max_int chain, server required" \ # Tests for CA list in CertificateRequest messages requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send CA list in CertificateRequest (default)" \ "$P_SRV debug_level=3 auth_mode=required" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5560,7 +5553,7 @@ run_test "Authentication: send CA list in CertificateRequest (default)" \ -s "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: do not send CA list in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI crt_file=data_files/server6.crt \ @@ -5569,7 +5562,7 @@ run_test "Authentication: do not send CA list in CertificateRequest" \ -S "requested DN" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send CA list in CertificateRequest, client self signed" \ "$P_SRV debug_level=3 auth_mode=required cert_req_ca_list=0" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5583,7 +5576,7 @@ run_test "Authentication: send CA list in CertificateRequest, client self sig -s "X509 - Certificate verification failed" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt conf DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server1.crt \ @@ -5595,7 +5588,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest" \ -c "DN hint: C=NL, O=PolarSSL, CN=PolarSSL Server 1" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=2 \ crt_file2=data_files/server2.crt \ @@ -5607,7 +5600,7 @@ run_test "Authentication: send alt conf DN hints in CertificateRequest (2)" \ -c "DN hint: C=NL, O=PolarSSL, CN=localhost" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication: send alt hs DN hints in CertificateRequest" \ "$P_SRV debug_level=3 auth_mode=optional cert_req_ca_list=3 \ crt_file2=data_files/server1.crt \ @@ -5623,7 +5616,7 @@ run_test "Authentication: send alt hs DN hints in CertificateRequest" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server badcert, client required" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5637,7 +5630,7 @@ run_test "Authentication, CA callback: server badcert, client required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server badcert, client optional" \ "$P_SRV crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -5659,7 +5652,7 @@ run_test "Authentication, CA callback: server badcert, client optional" \ requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server ECDH p256v1, client required, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5673,7 +5666,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client required, p requires_config_enabled MBEDTLS_ECP_C requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server ECDH p256v1, client optional, p256v1 unsupported" \ "$P_SRV debug_level=1 key_file=data_files/server5.key \ crt_file=data_files/server5.ku-ka.crt" \ @@ -5686,7 +5679,7 @@ run_test "Authentication, CA callback: server ECDH p256v1, client optional, p requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client SHA256, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5699,7 +5692,7 @@ run_test "Authentication, CA callback: client SHA256, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client SHA384, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server6.crt \ @@ -5712,7 +5705,7 @@ run_test "Authentication, CA callback: client SHA384, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client badcert, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5737,7 +5730,7 @@ run_test "Authentication, CA callback: client badcert, server required" \ requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client cert not trusted, server required" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=required" \ "$P_CLI debug_level=3 crt_file=data_files/server5-selfsigned.crt \ @@ -5758,7 +5751,7 @@ run_test "Authentication, CA callback: client cert not trusted, server requir requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client badcert, server optional" \ "$P_SRV ca_callback=1 debug_level=3 auth_mode=optional" \ "$P_CLI debug_level=3 crt_file=data_files/server5-badsign.crt \ @@ -5781,7 +5774,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c09.pem \ key_file=data_files/dir-maxpath/09.key" \ @@ -5794,7 +5787,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int+1 chain, client default" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5807,7 +5800,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: server max_int+1 chain, client optional" \ "$P_SRV crt_file=data_files/dir-maxpath/c10.pem \ key_file=data_files/dir-maxpath/10.key" \ @@ -5821,7 +5814,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int+1 chain, server optional" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=optional" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5834,7 +5827,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int+1 chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c10.pem \ @@ -5847,7 +5840,7 @@ requires_config_value_equals "MBEDTLS_X509_MAX_INTERMEDIATE_CA" $MAX_IM_CA requires_full_size_output_buffer requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Authentication, CA callback: client max_int chain, server required" \ "$P_SRV ca_callback=1 debug_level=3 ca_file=data_files/dir-maxpath/00.crt auth_mode=required" \ "$P_CLI crt_file=data_files/dir-maxpath/c09.pem \ @@ -6185,7 +6178,7 @@ run_test "Non-blocking I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1" \ @@ -6195,7 +6188,7 @@ run_test "Non-blocking I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + client auth" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1" \ @@ -6205,7 +6198,7 @@ run_test "Non-blocking I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + client auth + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=required" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6215,7 +6208,7 @@ run_test "Non-blocking I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: ticket + resume" \ "$P_SRV nbio=2 tickets=1 auth_mode=none" \ "$P_CLI nbio=2 tickets=1 reconnect=1" \ @@ -6225,7 +6218,7 @@ run_test "Non-blocking I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Non-blocking I/O: session-id resume" \ "$P_SRV nbio=2 tickets=0 auth_mode=none" \ "$P_CLI nbio=2 tickets=0 reconnect=1" \ @@ -6255,7 +6248,7 @@ run_test "Event-driven I/O: client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1" \ @@ -6265,7 +6258,7 @@ run_test "Event-driven I/O: ticket" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + client auth" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1" \ @@ -6275,7 +6268,7 @@ run_test "Event-driven I/O: ticket + client auth" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + client auth + resume" \ "$P_SRV event=1 tickets=1 auth_mode=required" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6285,7 +6278,7 @@ run_test "Event-driven I/O: ticket + client auth + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: ticket + resume" \ "$P_SRV event=1 tickets=1 auth_mode=none" \ "$P_CLI event=1 tickets=1 reconnect=1" \ @@ -6295,7 +6288,7 @@ run_test "Event-driven I/O: ticket + resume" \ -c "Read from server: .* bytes read" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_key_exchange_with_cert_in_tls12_enabled +requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT run_test "Event-driven I/O: session-id resume" \ "$P_SRV event=1 tickets=0 auth_mode=none" \ "$P_CLI event=1 tickets=0 reconnect=1" \ From 70ed41754dd7dfe7a0de3e23ea89f7a63758648d Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 15:48:19 +0200 Subject: [PATCH 0468/1574] ssl-opt.sh: Simplify TLS 1.3 dependencies Simplify TLS 1.3 dependencies taking into account that MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED implies that MBEDTLS_SSL_PROTO_TLS1_3 is defined. Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 509 ++++++++++++++++++----------------------------- 1 file changed, 198 insertions(+), 311 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 8945bdf83..996cd1a4f 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -6651,9 +6651,8 @@ run_test "keyUsage cli: DigitalSignature, RSA: fail, soft" \ -c "! Usage does not match the keyUsage extension" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ds_ke.crt" \ @@ -6664,9 +6663,8 @@ run_test "keyUsage cli 1.3: DigitalSignature+KeyEncipherment, RSA: OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ke.crt" \ @@ -6677,9 +6675,8 @@ run_test "keyUsage cli 1.3: KeyEncipherment, RSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server2.key \ -cert data_files/server2.ku-ka.crt" \ @@ -6690,9 +6687,8 @@ run_test "keyUsage cli 1.3: KeyAgreement, RSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ds.crt" \ @@ -6703,9 +6699,8 @@ run_test "keyUsage cli 1.3: DigitalSignature, ECDSA: OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ke.crt" \ @@ -6716,9 +6711,8 @@ run_test "keyUsage cli 1.3: KeyEncipherment, ECDSA: fail" \ -C "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli 1.3: KeyAgreement, ECDSA: fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.ku-ka.crt" \ @@ -6779,8 +6773,8 @@ run_test "keyUsage cli-auth: ECDSA, KeyAgreement: fail (soft)" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6791,8 +6785,8 @@ run_test "keyUsage cli-auth 1.3: RSA, DigitalSignature: OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server2.key \ @@ -6802,8 +6796,8 @@ run_test "keyUsage cli-auth 1.3: RSA, KeyEncipherment: fail (soft)" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6814,8 +6808,8 @@ run_test "keyUsage cli-auth 1.3: ECDSA, DigitalSignature: OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "keyUsage cli-auth 1.3: ECDSA, KeyAgreement: fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -6897,9 +6891,8 @@ run_test "extKeyUsage cli: codeSign -> fail" \ -C "Ciphersuite is TLS-" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv.crt" \ @@ -6910,9 +6903,8 @@ run_test "extKeyUsage cli 1.3: serverAuth -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-srv_cli.crt" \ @@ -6923,9 +6915,8 @@ run_test "extKeyUsage cli 1.3: serverAuth,clientAuth -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs_any.crt" \ @@ -6936,9 +6927,8 @@ run_test "extKeyUsage cli 1.3: codeSign,anyEKU -> OK" \ -c "Ciphersuite is" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli 1.3: codeSign -> fail" \ "$O_NEXT_SRV_NO_CERT -tls1_3 -num_tickets=0 -key data_files/server5.key \ -cert data_files/server5.eku-cs.crt" \ @@ -6996,8 +6986,8 @@ run_test "extKeyUsage cli-auth: codeSign -> fail (hard)" \ -s "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7007,8 +6997,8 @@ run_test "extKeyUsage cli-auth 1.3: clientAuth -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7018,8 +7008,8 @@ run_test "extKeyUsage cli-auth 1.3: serverAuth,clientAuth -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -7029,8 +7019,8 @@ run_test "extKeyUsage cli-auth 1.3: codeSign,anyEKU -> OK" \ -S "Processing of the Certificate handshake message failed" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "extKeyUsage cli-auth 1.3: codeSign -> fail (soft)" \ "$P_SRV debug_level=1 force_version=tls13 auth_mode=optional" \ "$O_NEXT_CLI_NO_CERT -key data_files/server5.key \ @@ -11174,11 +11164,10 @@ run_test "TLS 1.3: Test gnutls tls1_3 feature" \ # TLS1.3 test cases requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=3" \ @@ -11208,11 +11197,10 @@ run_test "TLS 1.3: minimal feature sets - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: minimal feature sets - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=3" \ @@ -11242,12 +11230,11 @@ run_test "TLS 1.3: minimal feature sets - gnutls" \ -c "HTTP/1.0 200 OK" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -alpn h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11278,12 +11265,11 @@ run_test "TLS 1.3: alpn - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_ALPN -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: alpn - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert --alpn=h2" \ "$P_CLI debug_level=3 alpn=h2" \ @@ -11314,7 +11300,6 @@ run_test "TLS 1.3: alpn - gnutls" \ -c "Application Layer Protocol is h2" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN @@ -11330,7 +11315,6 @@ run_test "TLS 1.3: server alpn - openssl" \ -s "Application Layer Protocol is h2" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_ALPN @@ -11428,11 +11412,10 @@ run_test "TLS 1.3: Not supported version check:openssl: srv max TLS 1.2" \ -C "Protocol : TLSv1.2" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -verify 10" \ "$P_CLI debug_level=4 crt_file=none key_file=none" \ @@ -11445,11 +11428,10 @@ run_test "TLS 1.3: Client authentication, no client certificate - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --verify-client-cert" \ "$P_CLI debug_level=3 crt_file=none key_file=none" \ @@ -11462,7 +11444,6 @@ run_test "TLS 1.3: Client authentication, no client certificate - gnutls" \ requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -11477,7 +11458,6 @@ run_test "TLS 1.3: Client authentication, no server middlebox compat - openss requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -11492,11 +11472,10 @@ run_test "TLS 1.3: Client authentication, no server middlebox compat - gnutls -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11509,11 +11488,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11525,11 +11503,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp256r1_sha256 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11542,11 +11519,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11558,11 +11534,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp384r1_sha384 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11575,11 +11550,10 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11591,12 +11565,11 @@ run_test "TLS 1.3: Client authentication, ecdsa_secp521r1_sha512 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11609,12 +11582,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11626,12 +11598,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha256 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11644,12 +11615,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11661,12 +11631,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha384 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11679,12 +11648,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - openssl" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11696,12 +11664,11 @@ run_test "TLS 1.3: Client authentication, rsa_pss_rsae_sha512 - gnutls" \ -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -11716,12 +11683,11 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - ope requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11735,7 +11701,6 @@ run_test "TLS 1.3: Client authentication, client alg not in server list - gnu # Test using an opaque private key for client authentication requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO @@ -11751,7 +11716,6 @@ run_test "TLS 1.3: Client authentication - opaque key, no server middlebox co requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_USE_PSA_CRYPTO @@ -11767,12 +11731,11 @@ run_test "TLS 1.3: Client authentication - opaque key, no server middlebox co -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11785,12 +11748,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp256r1.crt \ @@ -11802,12 +11764,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp256r1_sha256 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11820,12 +11781,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp384r1.crt \ @@ -11837,12 +11797,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp384r1_sha384 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11855,12 +11814,11 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -11872,13 +11830,12 @@ run_test "TLS 1.3: Client authentication - opaque key, ecdsa_secp521r1_sha512 -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 crt_file=data_files/cert_sha256.crt \ @@ -11891,13 +11848,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/server2-sha256.crt \ @@ -11909,13 +11865,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha256 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11928,13 +11883,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11946,13 +11900,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha384 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10" \ "$P_CLI debug_level=4 force_version=tls13 crt_file=data_files/cert_sha256.crt \ @@ -11965,13 +11918,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS" \ "$P_CLI debug_level=3 force_version=tls13 crt_file=data_files/server2-sha256.crt \ @@ -11983,13 +11935,12 @@ run_test "TLS 1.3: Client authentication - opaque key, rsa_pss_rsae_sha512 - -c "Protocol is TLSv1.3" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - openssl" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache -Verify 10 -sigalgs ecdsa_secp256r1_sha256" \ @@ -12004,13 +11955,12 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_RSA_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_USE_PSA_CRYPTO -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Client authentication - opaque key, client alg not in server list - gnutls" \ "$G_NEXT_SRV --debug=4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:-SIGN-ALL:+SIGN-ECDSA-SECP256R1-SHA256:%NO_TICKETS" \ "$P_CLI debug_level=3 crt_file=data_files/ecdsa_secp521r1.crt \ @@ -12022,12 +11972,11 @@ run_test "TLS 1.3: Client authentication - opaque key, client alg not in serv -c "no suitable signature algorithm" \ -C "unkown pk type" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_128_GCM_SHA256 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12038,12 +11987,11 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - openssl" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 ok" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ "$O_NEXT_SRV -ciphersuites TLS_AES_256_GCM_SHA384 -sigalgs ecdsa_secp256r1_sha256 -groups P-256 -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12054,13 +12002,12 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - openssl" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 ok" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-128-GCM:+SHA256:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12071,13 +12018,12 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_128_GCM_SHA256 - gnutls" \ -c "Protocol is TLSv1.3" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ "$G_NEXT_SRV -d 4 --priority=NONE:+GROUP-SECP256R1:+AES-256-GCM:+SHA384:+AEAD:+SIGN-ECDSA-SECP256R1-SHA256:+VERS-TLS1.3:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12089,7 +12035,6 @@ run_test "TLS 1.3: HRR check, ciphersuite TLS_AES_256_GCM_SHA384 - gnutls" \ -c "HTTP/1.0 200 OK" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12106,11 +12051,10 @@ run_test "TLS 1.3: Server side check - openssl" \ -s "tls13 server state: MBEDTLS_SSL_CLIENT_FINISHED" \ -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_openssl_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_openssl_tls1_3 run_test "TLS 1.3: Server side check - openssl with client authentication" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -cert data_files/server5.crt -key data_files/server5.key -tls1_3 -no_middlebox" \ @@ -12128,7 +12072,6 @@ run_test "TLS 1.3: Server side check - openssl with client authentication" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12148,7 +12091,6 @@ run_test "TLS 1.3: Server side check - gnutls" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED @@ -12167,7 +12109,6 @@ run_test "TLS 1.3: Server side check - gnutls with client authentication" \ -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12187,7 +12128,6 @@ run_test "TLS 1.3: Server side check - mbedtls" \ -s "tls13 server state: MBEDTLS_SSL_HANDSHAKE_WRAPUP" \ -c "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12205,7 +12145,6 @@ run_test "TLS 1.3: Server side check - mbedtls with client authentication" \ -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12224,7 +12163,6 @@ run_test "TLS 1.3: Server side check - mbedtls with client empty certificate" -s "=> parse client hello" \ -s "<= parse client hello" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12245,7 +12183,6 @@ run_test "TLS 1.3: Server side check - mbedtls with optional client authentic requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: server: HRR check - mbedtls" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1" \ @@ -12260,7 +12197,6 @@ run_test "TLS 1.3: server: HRR check - mbedtls" \ -s "=> write hello retry request" \ -s "<= write hello retry request" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12273,11 +12209,10 @@ run_test "TLS 1.3: Server side check, no server certificate available" \ -s "No certificate available." requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - openssl with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12287,11 +12222,10 @@ run_test "TLS 1.3: Server side check - openssl with sni" \ -s "HTTP/1.0 200 OK" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - gnutls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server5.crt,data_files/server5.key,data_files/test-ca_cat12.crt,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12300,12 +12234,11 @@ run_test "TLS 1.3: Server side check - gnutls with sni" \ -s "parse ServerName extension" \ -s "HTTP/1.0 200 OK" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Server side check - mbedtls with sni" \ "$P_SRV debug_level=4 auth_mode=required crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -12324,7 +12257,6 @@ done unset TEST_SUITE_NAME # Test 1.3 compatibility mode -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12339,12 +12271,11 @@ run_test "TLS 1.3 m->m both peers do not support middlebox compatibility" \ -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 tickets=0" \ "$P_CLI debug_level=4" \ @@ -12355,7 +12286,6 @@ run_test "TLS 1.3 m->m both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12369,7 +12299,6 @@ run_test "TLS 1.3 m->O both peers do not support middlebox compatibility" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12381,11 +12310,10 @@ run_test "TLS 1.3 m->O server with middlebox compat support, not client" \ -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4" \ @@ -12396,7 +12324,6 @@ run_test "TLS 1.3 m->O both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12411,7 +12338,6 @@ run_test "TLS 1.3 m->G both peers do not support middlebox compatibility" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12424,11 +12350,10 @@ run_test "TLS 1.3 m->G server with middlebox compat support, not client" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4" \ @@ -12437,7 +12362,6 @@ run_test "TLS 1.3 m->G both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12451,11 +12375,10 @@ run_test "TLS 1.3 O->m both peers do not support middlebox compatibility" \ -C "14 03 03 00 01" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug -no_middlebox" \ @@ -12464,11 +12387,10 @@ run_test "TLS 1.3 O->m server with middlebox compat support, not client" \ -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$O_NEXT_CLI -msg -debug" \ @@ -12480,7 +12402,6 @@ run_test "TLS 1.3 O->m both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12496,11 +12417,10 @@ run_test "TLS 1.3 G->m both peers do not support middlebox compatibility" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12513,11 +12433,10 @@ run_test "TLS 1.3 G->m server with middlebox compat support, not client" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12526,7 +12445,6 @@ run_test "TLS 1.3 G->m both with middlebox compat support" \ -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO" \ -c "SSL 3.3 ChangeCipherSpec packet received" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12542,12 +12460,11 @@ run_test "TLS 1.3 m->m HRR both peers do not support middlebox compatibility" -S "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 force_version=tls13 curves=secp384r1 tickets=0" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12559,7 +12476,6 @@ run_test "TLS 1.3 m->m HRR both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12574,7 +12490,6 @@ run_test "TLS 1.3 m->O HRR both peers do not support middlebox compatibility" -C "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12587,11 +12502,10 @@ run_test "TLS 1.3 m->O HRR server with middlebox compat support, not client" -c "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ "$O_NEXT_SRV -msg -tls1_3 -groups P-384 -num_tickets 0 -no_resume_ephemeral -no_cache" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12602,7 +12516,6 @@ run_test "TLS 1.3 m->O HRR both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12618,7 +12531,6 @@ run_test "TLS 1.3 m->G HRR both peers do not support middlebox compatibility" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C @@ -12632,11 +12544,10 @@ run_test "TLS 1.3 m->G HRR server with middlebox compat support, not client" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ "$G_NEXT_SRV --priority=NORMAL:-GROUP-ALL:+GROUP-SECP384R1:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:%NO_TICKETS --disable-client-cert" \ "$P_CLI debug_level=4 curves=secp256r1,secp384r1" \ @@ -12645,7 +12556,6 @@ run_test "TLS 1.3 m->G HRR both with middlebox compat support" \ -c "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12659,11 +12569,10 @@ run_test "TLS 1.3 O->m HRR both peers do not support middlebox compatibility" -C "14 03 03 00 01" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384 -no_middlebox" \ @@ -12672,11 +12581,10 @@ run_test "TLS 1.3 O->m HRR server with middlebox compat support, not client" -s "tls13 server state: MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST" \ requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$O_NEXT_CLI -msg -debug -groups P-256:P-384" \ @@ -12688,7 +12596,6 @@ run_test "TLS 1.3 O->m HRR both with middlebox compat support" \ requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_disabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C @@ -12704,11 +12611,10 @@ run_test "TLS 1.3 G->m HRR both peers do not support middlebox compatibility" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12721,11 +12627,10 @@ run_test "TLS 1.3 G->m HRR server with middlebox compat support, not client" requires_gnutls_tls1_3 requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 curves=secp384r1 tickets=0" \ "$G_NEXT_CLI localhost --debug=10 --priority=NORMAL:-GROUP-ALL:+GROUP-SECP256R1:+GROUP-SECP384R1:%NO_TICKETS:%DISABLE_TLS13_COMPAT_MODE -V" \ @@ -12735,11 +12640,10 @@ run_test "TLS 1.3 G->m HRR both with middlebox compat support" \ -c "SSL 3.3 ChangeCipherSpec packet received" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12752,11 +12656,10 @@ run_test "TLS 1.3: Check signature algorithm order, m->O" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12768,12 +12671,11 @@ run_test "TLS 1.3: Check signature algorithm order, m->G" \ -c "CertificateVerify signature with rsa_pss_rsae_sha512" \ -c "HTTP/1.0 200 [Oo][Kk]" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12789,11 +12691,10 @@ run_test "TLS 1.3: Check signature algorithm order, m->m" \ -c "HTTP/1.0 200 [Oo][Kk]" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12808,11 +12709,10 @@ run_test "TLS 1.3: Check signature algorithm order, O->m" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check signature algorithm order, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12828,11 +12728,10 @@ run_test "TLS 1.3: Check signature algorithm order, G->m" \ -s "ssl_tls13_pick_key_cert:selected signature algorithm rsa_pss_rsae_sha512" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12845,11 +12744,10 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, G->m" \ -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12861,12 +12759,11 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, O->m" \ 1 \ -S "ssl_tls13_pick_key_cert:check signature algorithm" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12878,11 +12775,10 @@ run_test "TLS 1.3: Check server no suitable signature algorithm, m->m" \ -S "ssl_tls13_pick_key_cert:check signature algorithm" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, G->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12893,11 +12789,10 @@ run_test "TLS 1.3: Check server no suitable certificate, G->m" \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, O->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12907,12 +12802,11 @@ run_test "TLS 1.3: Check server no suitable certificate, O->m" \ 1 \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check server no suitable certificate, m->m" \ "$P_SRV debug_level=4 force_version=tls13 crt_file=data_files/server2-sha256.crt key_file=data_files/server2.key @@ -12923,11 +12817,10 @@ run_test "TLS 1.3: Check server no suitable certificate, m->m" \ -s "ssl_tls13_pick_key_cert:no suitable certificate found" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->O" \ "$O_NEXT_SRV_NO_CERT -cert data_files/server2-sha256.crt -key data_files/server2.key -msg -tls1_3 -num_tickets 0 -no_resume_ephemeral -no_cache @@ -12938,11 +12831,10 @@ run_test "TLS 1.3: Check client no signature algorithm, m->O" \ -c "no suitable signature algorithm" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->G" \ "$G_NEXT_SRV_NO_CERT --x509certfile data_files/server2-sha256.crt --x509keyfile data_files/server2.key -d 4 @@ -12952,12 +12844,11 @@ run_test "TLS 1.3: Check client no signature algorithm, m->G" \ 1 \ -c "no suitable signature algorithm" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: Check client no signature algorithm, m->m" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required crt_file2=data_files/server2-sha256.crt key_file2=data_files/server2.key @@ -12969,12 +12860,11 @@ run_test "TLS 1.3: Check client no signature algorithm, m->m" \ -c "no suitable signature algorithm" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ "$O_NEXT_SRV -msg -tls1_3 -no_resume_ephemeral -no_cache --num_tickets 4" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -12986,12 +12876,11 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->O" \ -c "HTTP/1.0 200 ok" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ @@ -13004,13 +12893,12 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ -s "This is a resumed session" requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED # https://github.com/openssl/openssl/issues/10714 # Until now, OpenSSL client does not support reconnect. skip_next_test @@ -13023,13 +12911,12 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$G_NEXT_CLI localhost -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 -V -r" \ @@ -13043,13 +12930,13 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -13097,13 +12984,13 @@ run_test "TLS 1.2: Check rsa_pss_rsae compatibility issue, m->G" \ -c "Protocol is TLSv1.2" \ -c "HTTP/1.0 200 [Oo][Kk]" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ @@ -13121,13 +13008,13 @@ run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ From 083da8eb53818da506590f311f684b9d60c24d94 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 20 Oct 2022 15:53:51 +0200 Subject: [PATCH 0469/1574] tls13: client: Improve coding style Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0ff85c674..72f48577a 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -736,7 +736,7 @@ static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, size_t *identity_len ) { - if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) + if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; @@ -752,7 +752,7 @@ static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, size_t *psk_len ) { - if( !mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) + if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) return( -1 ); *hash_alg = PSA_ALG_SHA_256; From 10bf956334892a5d87e13738684e705ffde92d49 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 21 Oct 2022 08:51:33 +0200 Subject: [PATCH 0470/1574] tls13: Fix documentation Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 1c568d82c..2a1faed00 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -154,7 +154,7 @@ Support description related to key exchange protocols, certificates and signatures. - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED enables the - support of the ephemeral key exchange mode. If it is the only key exchange + support for the ephemeral key exchange mode. If it is the only key exchange mode enabled, the TLS 1.3 implementation does not contain any code related to PSK based key exchange. The ephemeral key exchange mode requires at least one of the key exchange protocol allowed by the TLS 1.3 specification, the From 454eb9172d3b044284525c7bf7966244872a6ffb Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 21 Oct 2022 08:56:04 +0200 Subject: [PATCH 0471/1574] ssl-opt.sh: Fix list of TLS 1.2 key exchanges with cert Signed-off-by: Ronald Cron --- tests/ssl-opt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 996cd1a4f..e2f9206ec 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -251,7 +251,7 @@ requires_any_configs_disabled() { fi } -TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ +TLS1_2_KEY_EXCHANGES_WITH_CERT="MBEDTLS_KEY_EXCHANGE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED \ From 58bbc23ca30794e109609948f4f64051615e9c39 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 24 Oct 2022 08:10:10 +0200 Subject: [PATCH 0472/1574] Use coverage analyze as default task Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index f5d2ac131..1100086c1 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -140,9 +140,9 @@ def do_analyze_driver_vs_reference(outcome_file, components, ignored_tests): def main(): try: parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--outcomes', metavar='OUTCOMES.CSV', + parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') - parser.add_argument('--task', + parser.add_argument('--task', default='analyze_coverage', help='Analyze to be done: analyze_coverage or analyze_driver_vs_reference') parser.add_argument('--components', help='List of test components to compare. Must be exactly 2 in valid order: driver,reference. ' From c86dedfdc183eb0a7681887416085be182e08101 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 24 Oct 2022 09:16:04 +0200 Subject: [PATCH 0473/1574] Fix code style Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 32 +++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 1100086c1..3e9599730 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -74,23 +74,23 @@ def analyze_driver_vs_reference(outcomes, components, ignored_tests): # Skip ignored test suites test_suit = key.split(';')[0] # retrieve test suit name test_suit = test_suit.split('.')[0] # retrieve main part of test suit name - if(test_suit in ignored_tests): + if test_suit in ignored_tests: continue # Continue if test was not executed by any component hits = outcomes[key].hits() if key in outcomes else 0 - if(hits == 0): + if hits == 0: continue # Search for tests that run in reference component and not in driver component driver_test_passed = False reference_test_passed = False for entry in outcomes[key].successes: - if(driver_component in entry): + if driver_component in entry: driver_test_passed = True - if(reference_component in entry): + if reference_component in entry: reference_test_passed = True - #if(driver_test_passed == True and reference_test_passed == False): + #if(driver_test_passed is True and reference_test_passed is False): # print('{}: driver: passed; reference: skipped'.format(key)) - if(driver_test_passed == False and reference_test_passed == True): + if(driver_test_passed is False and reference_test_passed is True): print('{}: driver: skipped/failed; reference: passed'.format(key)) result = False return result @@ -126,7 +126,7 @@ def do_analyze_coverage(outcome_file): """Perform coverage analyze.""" outcomes = read_outcome_file(outcome_file) results = analyze_outcomes(outcomes) - return (True if results.error_count == 0 else False) + return results.error_count == 0 def do_analyze_driver_vs_reference(outcome_file, components, ignored_tests): """Perform driver vs reference analyze.""" @@ -143,27 +143,31 @@ def main(): parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') parser.add_argument('--task', default='analyze_coverage', - help='Analyze to be done: analyze_coverage or analyze_driver_vs_reference') + help='Analyze to be done: analyze_coverage or ' + 'analyze_driver_vs_reference') parser.add_argument('--components', - help='List of test components to compare. Must be exactly 2 in valid order: driver,reference. ' + help='List of test components to compare. ' + 'Must be exactly 2 in valid order: driver,reference. ' 'Apply only for analyze_driver_vs_reference task.') parser.add_argument('--ignore', - help='List of test suits to ignore. Apply only for analyze_driver_vs_reference task.') + help='List of test suits to ignore. ' + 'Apply only for analyze_driver_vs_reference task.') options = parser.parse_args() result = False - if(options.task == 'analyze_coverage'): + if options.task == 'analyze_coverage': result = do_analyze_coverage(options.outcomes) - elif(options.task == 'analyze_driver_vs_reference'): + elif options.task == 'analyze_driver_vs_reference': components_list = options.components.split(',') ignored_tests_list = options.ignore.split(',') ignored_tests_list = ['test_suite_' + x for x in ignored_tests_list] - result = do_analyze_driver_vs_reference(options.outcomes, components_list, ignored_tests_list) + result = do_analyze_driver_vs_reference(options.outcomes, + components_list, ignored_tests_list) else: print('Error: Unknown task: {}'.format(options.task)) - if(result == False): + if result is False: sys.exit(1) print("SUCCESS :-)") except Exception: # pylint: disable=broad-except From ab0451bc2c28185608243273327d10aa92c34e90 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 24 Oct 2022 11:29:35 +0200 Subject: [PATCH 0474/1574] Fix build command in test_psa_crypto_config_reference_hash_use_psa Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 140166b8f..d84ad8531 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2123,6 +2123,8 @@ component_test_psa_crypto_config_reference_hash_use_psa() { scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA + make + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" make test From f160ef1dd1b9888555a16f7d0883f603bb40e4cb Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 24 Oct 2022 13:11:38 +0100 Subject: [PATCH 0475/1574] Refactor macro-spanning if in ssl_client2.c Signed-off-by: David Horstmann --- programs/ssl/ssl_client2.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6377162b2..2060c8c17 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1732,15 +1732,17 @@ int main( int argc, char *argv[] ) if( ret != 0 ) break; } - if( ret == 0 ) #endif /* MBEDTLS_PEM_PARSE_C */ - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + if( ret == 0 ) { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) - break; + for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + { + ret = mbedtls_x509_crt_parse_der( &cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i] ); + if( ret != 0 ) + break; + } } } if( ret < 0 ) From 3f44e5b11a140bb62dc45df9c9cae2c7b1a4dfd4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 24 Oct 2022 13:12:19 +0100 Subject: [PATCH 0476/1574] Refactor macro-spanning if in ssl_server2.c Signed-off-by: David Horstmann --- programs/ssl/ssl_server2.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 7526bc6cf..5f84f9fc3 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -2537,15 +2537,17 @@ int main( int argc, char *argv[] ) if( ret != 0 ) break; } - if( ret == 0 ) #endif /* MBEDTLS_PEM_PARSE_C */ - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + if( ret == 0 ) { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) - break; + for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) + { + ret = mbedtls_x509_crt_parse_der( &cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i] ); + if( ret != 0 ) + break; + } } } if( ret < 0 ) From 468c50656e23242907fb6fd34bf9a7c9354e9e36 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:30:14 -0400 Subject: [PATCH 0477/1574] Fix key exchange dependencies for ssl_parse_server_ecdh_params Resulting from particular configs in which this code is used. Signed-off-by: Andrzej Kurek --- library/ssl_tls12_client.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7b62e71a5..f60d0cb56 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1771,10 +1771,10 @@ static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, unsigned char **p, @@ -1839,7 +1839,15 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, return( 0 ); } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ #else +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) { @@ -1869,6 +1877,15 @@ static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) return( 0 ); } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || + MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, unsigned char **p, @@ -1904,11 +1921,10 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, return( ret ); } -#endif /* MBEDTLS_USE_PSA_CRYPTO */ -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || - MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ - +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || \ + MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#endif /* !MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, From 57d1063db9876938d5c4fdbec5f92c7644fecc79 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:32:01 -0400 Subject: [PATCH 0478/1574] Fix tls_prf generic dependencies One version was already surrounded by the USE_PSA define, so the VIA_XX_OR_XX macros were removed; Second version is when USE_PSA is undefined, so MBEDTLS_ macros can be used. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4678f5386..c8904f288 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5447,8 +5447,8 @@ static psa_status_t setup_psa_key_derivation( psa_key_derivation_operation_t* de return( PSA_SUCCESS ); } -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(PSA_WANT_ALG_SHA_384) || \ + defined(PSA_WANT_ALG_SHA_256) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5523,9 +5523,12 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, return( 0 ); } -#endif +#endif /* PSA_WANT_ALG_SHA_256 || PSA_WANT_ALG_SHA_384 */ #else /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_MD_C) && \ + ( defined(MBEDTLS_SHA256_C) || \ + defined(MBEDTLS_SHA384_C) ) MBEDTLS_CHECK_RETURN_CRITICAL static int tls_prf_generic( mbedtls_md_type_t md_type, const unsigned char *secret, size_t slen, @@ -5616,6 +5619,7 @@ exit: return( ret ); } +#endif /* MBEDTLS_MD_C && ( MBEDTLS_SHA256_C || MBEDTLS_SHA384_C ) */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) From 409248a73ac5cf0a46f52e0d3138ef1e0a738d8a Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:33:21 -0400 Subject: [PATCH 0479/1574] mbedtls_ssl_get_handshake_transcript is unusable without hashes Mark unused variables when compiling without SHA256 and SHA384. In future a proper dependency will be added to TLS 1.2 to enforce either of these hashes to be on. Signed-off-by: Andrzej Kurek --- library/ssl_tls.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c8904f288..c3bb9f92c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5261,6 +5261,13 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ default: +#if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; + (void) dst; + (void) dst_len; + (void) olen; +#endif break; } return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); From 2c7993c4563fd882bf97d32e449e46a36d07567f Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:41:20 -0400 Subject: [PATCH 0480/1574] depends.py: add a config option to unset MBEDTLS_USE_PSA This lets us perform any test without MBEDTLS_USE_PSA Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index ce7fee65c..8baa8f3af 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -146,6 +146,8 @@ derived.""" # Turn off options that are not relevant to the tests and slow them down. run_config_py(options, ['full']) run_config_py(options, ['unset', 'MBEDTLS_TEST_HOOKS']) + if options.unset_use_psa: + run_config_py(options, ['unset', 'MBEDTLS_USE_PSA_CRYPTO']) def collect_config_symbols(options): """Read the list of settings from mbedtls_config.h. @@ -534,6 +536,9 @@ def main(): parser.add_argument('--make-command', metavar='CMD', help='Command to run instead of make (e.g. gmake)', action='store', default='make') + parser.add_argument('--unset-use-psa', + help='Unset MBEDTLS_USE_PSA_CRYPTO before any test', + action='store_true', dest='unset_use_psa') parser.add_argument('tasks', metavar='TASKS', nargs='*', help='The domain(s) or job(s) to test (default: all).', default=True) From 54413b10c2350cbf6a637bdb0fc244b931a7bb08 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 20 Oct 2022 05:57:03 +0000 Subject: [PATCH 0481/1574] Add early data support preparatory work Add MBEDTLS_SSL_EARLY_DATA configuration option Define early_data_enabled field in mbedtls_ssl_config Add function mbedtls_ssl_conf_early_data Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 8 +++++++ include/mbedtls/ssl.h | 38 ++++++++++++++++++++++++++++++++ library/ssl_misc.h | 3 +++ library/ssl_tls13_generic.c | 8 +++++++ 4 files changed, 57 insertions(+) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9588ca4b4..8e4572619 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1632,6 +1632,14 @@ */ #define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1 +/** +* \def MBEDTLS_SSL_EARLY_DATA +* +* Allows to add functionality for TLS/DTLS 1.3 early data. +* +*/ +//#define MBEDTLS_SSL_EARLY_DATA + /** * \def MBEDTLS_SSL_PROTO_DTLS * diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 9677c7163..57c07b4d0 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -329,6 +329,12 @@ #define MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED 1 #define MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED 0 +#define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 +#define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 + +#define MBEDTLS_SSL_EARLY_DATA_OFF 0 +#define MBEDTLS_SSL_EARLY_DATA_ON 1 + #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 @@ -1496,6 +1502,12 @@ struct mbedtls_ssl_config * is not \c 0. */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_EARLY_DATA) + int early_data_enabled; /*!< Early data indication: + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_SSL_ALPN) const char **MBEDTLS_PRIVATE(alpn_list); /*!< ordered list of protocols */ #endif @@ -1905,6 +1917,32 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); */ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); +/** +* \brief Set the early_data mode +* Default: disabled on server and client +* +* \param ssl SSL context +* \param early_data can be: +* +* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used +* (default on server) +* (default on client) +* +* MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and +* may be negotiated in the handshake. Application using +* early data functionality needs to be aware of the +* lack of replay protection of the early data application +* payloads. +* +* \param max_early_data Max number of bytes allowed for early data (server only). +* \param early_data_callback Callback function when early data is received (server +* only). +*/ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_X509_CRT_PARSE_C) /** * \brief Set the verification callback (Optional). diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514..c02ff58b5 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -243,6 +243,9 @@ /* Maximum size in bytes of list in supported elliptic curve ext., RFC 4492 */ #define MBEDTLS_SSL_MAX_CURVE_LIST_LEN 65535 +/* Maximum amount of early data to buffer on the server. */ +#define MBEDTLS_SSL_MAX_EARLY_DATA 1024 + #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 48e367582..5f895932a 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1080,6 +1080,14 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ +#if defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ) +{ + conf->early_data_enabled = early_data; +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /* * * STATE HANDLING: Incoming Finished message. From 600804b0e7b7755e77fe9d48dc1b74d678c37c66 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 20 Oct 2022 09:22:38 +0000 Subject: [PATCH 0482/1574] Remove useless early data related macros for the time being Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 5 ++++- include/mbedtls/ssl.h | 10 ++-------- library/ssl_misc.h | 3 --- library/ssl_tls13_generic.c | 2 +- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 8e4572619..9480de006 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1635,8 +1635,11 @@ /** * \def MBEDTLS_SSL_EARLY_DATA * -* Allows to add functionality for TLS/DTLS 1.3 early data. +* Enable support for RFC 8446 TLS 1.3 early data. * +* Requires: MBEDTLS_SSL_PROTO_TLS1_3 +* +* Comment this to disable support for early data. */ //#define MBEDTLS_SSL_EARLY_DATA diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 57c07b4d0..b8e12ecba 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -332,9 +332,6 @@ #define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 #define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 -#define MBEDTLS_SSL_EARLY_DATA_OFF 0 -#define MBEDTLS_SSL_EARLY_DATA_ON 1 - #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 @@ -1921,8 +1918,8 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * \brief Set the early_data mode * Default: disabled on server and client * -* \param ssl SSL context -* \param early_data can be: +* \param conf The SSL configuration to use. +* \param early_data_enabled can be: * * MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used * (default on server) @@ -1934,9 +1931,6 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * lack of replay protection of the early data application * payloads. * -* \param max_early_data Max number of bytes allowed for early data (server only). -* \param early_data_callback Callback function when early data is received (server -* only). */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, diff --git a/library/ssl_misc.h b/library/ssl_misc.h index c02ff58b5..41bb9c514 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -243,9 +243,6 @@ /* Maximum size in bytes of list in supported elliptic curve ext., RFC 4492 */ #define MBEDTLS_SSL_MAX_CURVE_LIST_LEN 65535 -/* Maximum amount of early data to buffer on the server. */ -#define MBEDTLS_SSL_MAX_EARLY_DATA 1024 - #define MBEDTLS_RECEIVED_SIG_ALGS_SIZE 20 #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 5f895932a..976a13471 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1084,7 +1084,7 @@ cleanup: void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ) { - conf->early_data_enabled = early_data; + conf->early_data_enabled = early_data_enabled; } #endif /* MBEDTLS_SSL_EARLY_DATA */ From 72de95dcf53a50691d85dcd166bc584f3a293c1c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 02:54:33 +0000 Subject: [PATCH 0483/1574] Move function mbedtls_ssl_tls13_conf_early_data to ssl_tls.c Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 21 +++++++++++---------- library/ssl_tls.c | 8 ++++++++ library/ssl_tls13_generic.c | 8 -------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index b8e12ecba..78842a12b 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1500,9 +1500,9 @@ struct mbedtls_ssl_config #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_EARLY_DATA) - int early_data_enabled; /*!< Early data indication: - * - MBEDTLS_SSL_EARLY_DATA_DISABLED, - * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ + int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_ALPN) @@ -1915,15 +1915,14 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); /** -* \brief Set the early_data mode -* Default: disabled on server and client +* \brief Set the early data mode +* Default: disabled on server and client * -* \param conf The SSL configuration to use. +* \param conf The SSL configuration to use. * \param early_data_enabled can be: * -* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality will not be used -* (default on server) -* (default on client) +* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality is disabled +* This is the default on client and server. * * MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and * may be negotiated in the handshake. Application using @@ -1931,9 +1930,11 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * lack of replay protection of the early data application * payloads. * +* \warning This interface is experimental and may change without notice. +* */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) -void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, +void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 63a433dbe..f385f5d4b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1425,6 +1425,14 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, { conf->tls13_kex_modes = kex_modes & MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; } + +#if defined(MBEDTLS_SSL_EARLY_DATA) +void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, + int early_data_enabled ) +{ + conf->early_data_enabled = early_data_enabled; +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 976a13471..48e367582 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1080,14 +1080,6 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_EARLY_DATA) -void mbedtls_ssl_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ) -{ - conf->early_data_enabled = early_data_enabled; -} -#endif /* MBEDTLS_SSL_EARLY_DATA */ - /* * * STATE HANDLING: Incoming Finished message. From 95a0730f178980085c8f7acfd3b26c5c67511464 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 02:56:00 +0000 Subject: [PATCH 0484/1574] Change prerequisites of MBEDTLS_SSL_EARLY_DATA and add related check Signed-off-by: Xiaokang Qian --- include/mbedtls/check_config.h | 7 +++++++ include/mbedtls/mbedtls_config.h | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 6a9647994..d36db4a9e 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -842,6 +842,13 @@ "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" #endif +/* Early data requires PSK related mode defined */ +#if defined(MBEDTLS_SSL_EARLY_DATA) && \ + ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ + !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)) +#error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ !defined(MBEDTLS_SSL_PROTO_TLS1_2) #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 9480de006..7ce8083d4 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1640,6 +1640,10 @@ * Requires: MBEDTLS_SSL_PROTO_TLS1_3 * * Comment this to disable support for early data. +* +* This feature is experimental, not completed and thus not ready for +* production. +* */ //#define MBEDTLS_SSL_EARLY_DATA From d69d06fffa726594a18ecb97f27c8f979ac09211 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 06:51:25 +0000 Subject: [PATCH 0485/1574] Improve format issue Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 78842a12b..a07c72326 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1501,8 +1501,8 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_EARLY_DATA) int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: - * - MBEDTLS_SSL_EARLY_DATA_DISABLED, - * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ + * - MBEDTLS_SSL_EARLY_DATA_DISABLED, + * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_ALPN) @@ -1914,6 +1914,7 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); */ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) /** * \brief Set the early data mode * Default: disabled on server and client @@ -1933,7 +1934,6 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * \warning This interface is experimental and may change without notice. * */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ From 65fc0de894b1a9c195010652580abcb92c65fe1f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 09:08:57 +0000 Subject: [PATCH 0486/1574] Improve the prerequisites for early data Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 7ce8083d4..252413378 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1637,7 +1637,8 @@ * * Enable support for RFC 8446 TLS 1.3 early data. * -* Requires: MBEDTLS_SSL_PROTO_TLS1_3 +* Requires: MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * * Comment this to disable support for early data. * From 059848ff23682e04773145ff72807feb2155d2da Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:16:45 +0100 Subject: [PATCH 0487/1574] Minor changes to asn1write.c Signed-off-by: David Horstmann --- library/asn1write.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/asn1write.c b/library/asn1write.c index 6c2a71f00..ee743d84e 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -78,11 +78,11 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ return( 4 ); } - int len_valid = 1; + int len_is_valid = 1; #if SIZE_MAX > 0xFFFFFFFF - len_valid = ( len <= 0xFFFFFFFF ); + len_is_valid = ( len <= 0xFFFFFFFF ); #endif - if( len_valid ) + if( len_is_valid ) { if( *p - start < 5 ) return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); @@ -94,10 +94,8 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_ *--(*p) = 0x84; return( 5 ); } - else - { - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); - } + + return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); } int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, unsigned char tag ) From 9b0eb90131d97974cd82d0f1addcdbc34278caef Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:23:34 +0100 Subject: [PATCH 0488/1574] Rename ARIA_SELF_TEST_IF_FAIL Change to ARIA_SELF_TEST_ASSERT Signed-off-by: David Horstmann --- library/aria.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/library/aria.c b/library/aria.c index 43ca762e1..f3c15dabb 100644 --- a/library/aria.c +++ b/library/aria.c @@ -895,7 +895,7 @@ static const uint8_t aria_test2_ctr_ct[3][48] = // CTR ciphertext }; #endif /* MBEDTLS_CIPHER_MODE_CFB */ -#define ARIA_SELF_TEST_IF_FAIL( cond ) \ +#define ARIA_SELF_TEST_ASSERT( cond ) \ do { \ if( cond ) { \ if( verbose ) \ @@ -939,7 +939,7 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (enc): ", 128 + 64 * i ); mbedtls_aria_setkey_enc( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_pt, blk ); - ARIA_SELF_TEST_IF_FAIL( + ARIA_SELF_TEST_ASSERT( memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) != 0 ); @@ -948,7 +948,7 @@ int mbedtls_aria_self_test( int verbose ) mbedtls_printf( " ARIA-ECB-%d (dec): ", 128 + 64 * i ); mbedtls_aria_setkey_dec( &ctx, aria_test1_ecb_key, 128 + 64 * i ); mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_ct[i], blk ); - ARIA_SELF_TEST_IF_FAIL( + ARIA_SELF_TEST_ASSERT( memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) != 0 ); } @@ -969,7 +969,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0x55, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cbc_ct[i], 48 ) + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cbc_ct[i], 48 ) != 0 ); /* Test CBC decryption */ @@ -980,7 +980,7 @@ int mbedtls_aria_self_test( int verbose ) memset( buf, 0xAA, sizeof( buf ) ); mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, aria_test2_cbc_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -999,7 +999,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); /* Test CFB decryption */ if( verbose ) @@ -1010,7 +1010,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, iv, aria_test2_cfb_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); @@ -1028,7 +1028,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_pt, buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); /* Test CTR decryption */ if( verbose ) @@ -1039,7 +1039,7 @@ int mbedtls_aria_self_test( int verbose ) j = 0; mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, aria_test2_ctr_ct[i], buf ); - ARIA_SELF_TEST_IF_FAIL( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); } if( verbose ) mbedtls_printf( "\n" ); From 6e11687ba58a205792af927f02529f380dd0043f Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:32:08 +0100 Subject: [PATCH 0489/1574] Minor improvements to ecp.c changes Signed-off-by: David Horstmann --- library/ecp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 2cec0a0b0..8326aa138 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -2287,12 +2287,12 @@ cleanup: mbedtls_free( T ); } - int should_free_R = 0; /* prevent caller from using invalid value */ - should_free_R = ( ret != 0 ); + int should_free_R = ( ret != 0 ); #if defined(MBEDTLS_ECP_RESTARTABLE) /* don't free R while in progress in case R == P */ - should_free_R = should_free_R && ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); + if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + should_free_R = 0; #endif if( should_free_R ) mbedtls_ecp_point_free( R ); From 7aee0ec0ba11c3c74002ccd63b1181fee6f576e4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:38:25 +0100 Subject: [PATCH 0490/1574] Minor improvements in ssl_client.c Signed-off-by: David Horstmann --- library/ssl_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 08cb3421e..bfa1c747b 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -794,7 +794,8 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) */ int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); + if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) + renegotiating = 1; #endif if( !renegotiating ) { From 3a334c2edcd16b184d3a83a0b84e6ad1cfe8e404 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 25 Oct 2022 10:53:44 +0100 Subject: [PATCH 0491/1574] Minor improvements to ssl_tls12_server.c Signed-off-by: David Horstmann --- library/ssl_tls12_server.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index fcf8e9a06..d4760a3a6 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -714,13 +714,13 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, #endif list = ssl->conf->key_cert; - int pk_alg_none = 0; + int pk_alg_is_none = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - pk_alg_none = ( pk_alg == PSA_ALG_NONE ); + pk_alg_is_none = ( pk_alg == PSA_ALG_NONE ); #else - pk_alg_none = ( pk_alg == MBEDTLS_PK_NONE ); + pk_alg_is_none = ( pk_alg == MBEDTLS_PK_NONE ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( pk_alg_none ) + if( pk_alg_is_none ) return( 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); @@ -737,21 +737,21 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", cur->cert ); - int key_type_mismatch = 0; + int key_type_matches = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - key_type_mismatch = ( ( ssl->conf->f_async_sign_start == NULL && - ssl->conf->f_async_decrypt_start == NULL && - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) || - ! mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); + key_type_matches = ( ( ssl->conf->f_async_sign_start != NULL || + ssl->conf->f_async_decrypt_start != NULL || + mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) && + mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); #else - key_type_mismatch = ( - ! mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); + key_type_matches = ( + mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #else - key_type_mismatch = ( ! mbedtls_pk_can_do( &cur->cert->pk, pk_alg ) ); + key_type_matches = mbedtls_pk_can_do( &cur->cert->pk, pk_alg ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( key_type_mismatch ) + if( !key_type_matches ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); continue; From ec440f2397a8e4326457abb315b2d33496948cf2 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 11 Aug 2022 17:29:32 +0100 Subject: [PATCH 0492/1574] bignum_mod_raw: Ported mbedtls_mpi_get_montgomery_constant_unsafe from prototype Signed-off-by: Minos Galanakis --- library/bignum_core.c | 16 ++++++++++++++++ library/bignum_core.h | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 00837298b..457405d27 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,4 +511,20 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } +int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + if ( X == NULL || N == NULL ) goto cleanup; + + MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 1 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, N->n * 2 * biL ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( X, X, N ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shrink( X, N->n ) ); + +cleanup: + return( ret ); +} + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 56a3bf874..3100bd5ff 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -412,4 +412,23 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *N, size_t AN_limbs, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); +/** + * \brief Calculate initialisation value for fast Montgomery modular + * multiplication + * + * \param[out] X A pointer to the result of the calculation of + * Montgomery const 2^{2*n*biL} mod N. + * \param[in] N Little-endian presentation of the modulus, which must be odd. + * + * \return 0 if successful. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if there is not enough space + * to store the value of Montgomery constant squared. + * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. + * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. + * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL + * or other operations fail. + */ +int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 1a1b1755548b2b0e773df39922f87def8820ea20 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 10 Oct 2022 14:50:06 +0100 Subject: [PATCH 0493/1574] test_suite_bignum: Added tests for `mpi_get_montgomery_constant_unsafe()` This patch adds the test for the method calculating the RR. The input/expected data are generated manually using the following Python3 snippet: ~~~~~ import math title="mpi_get_montgomery_constant_unsafe" tt = title + " #{}" in_data = [ "0f", ... ] def limb_no(number, bil=64): return int(math.ceil(int.bit_length(number)/(bil * 1.0))) def calc_rr(number, bil=64 ): return '{:x}'.format(pow(pow(2, limb_no(number, bil) * bil), 2, number)) def calc_rr_str(number, prefix=""): rr64 = calc_rr(number) rr32 = calc_rr(number, bil=32) return '{}:"{:x}":"{}":"{}"'.format(prefix,number, rr32, rr64) print("\n\n".join(["{}\n{}".format(tt.format(in_data.index(v)+1), calc_rr_str(int(v,base=16), title)) for v in in_data])) ~~~~~ Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 78 ++++++++++++++++++++++++ tests/suites/test_suite_bignum.misc.data | 33 ++++++++++ 2 files changed, 111 insertions(+) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4cec0a7c7..e94681a28 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1,8 +1,10 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" +#include "bignum_core.h" #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" +#include "mbedtls/error.h" #if MBEDTLS_MPI_MAX_BITS > 792 #define MPI_MAX_BITS_LARGER_THAN_792 @@ -1414,6 +1416,82 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_get_montgomery_constant_unsafe_neg( ) +{ + mbedtls_mpi N, RR; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + const char * n = "7ffffffffffffff1"; + + /* Test for NULL input pointers */ + TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, + mbedtls_mpi_get_montgomery_constant_unsafe( NULL, &N ) ); + + TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, NULL ) ); + + /* Test for zero divisor */ + TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + + /* Test for negative input */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); + N.s = -1; + TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, + mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + N.s = 1; + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_get_montgomery_constant_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) +{ + mbedtls_mpi N, RR, RR_REF; + + /* Select the appropriate output */ + char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + mbedtls_mpi_init( &RR_REF ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, sign_is_valid(&N)); + TEST_EQUAL( 1, sign_is_valid(&RR_REF)); + + /* Test valid input */ + TEST_EQUAL( 0, mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + + /* Test that the moduli is odd */ + TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, sign_is_valid(&RR)); + + /* rr is updated to a valid pointer */ + TEST_ASSERT( RR.p != NULL ); + + /* Calculated rr matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); + mbedtls_mpi_free( &RR_REF ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 78afcb64c..b93b18391 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,6 +1902,39 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mbedtls_mpi_get_montgomery_constant_unsafe_neg +mpi_get_montgomery_constant_unsafe_neg: + +mbedtls_mpi_get_montgomery_constant_unsafe #1 +mpi_get_montgomery_constant_unsafe:"f":"1":"1" + +mbedtls_mpi_get_montgomery_constant_unsafe #2 +mpi_get_montgomery_constant_unsafe:"fd":"ec":"24" + +mbedtls_mpi_get_montgomery_constant_unsafe #3 +mpi_get_montgomery_constant_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" + +mbedtls_mpi_get_montgomery_constant_unsafe #4 +mpi_get_montgomery_constant_unsafe:"eeff99aa11":"3308cb71":"3308cb71" + +mbedtls_mpi_get_montgomery_constant_unsafe #5 +mpi_get_montgomery_constant_unsafe:"800000000005":"6400000000":"6400000000" + +mbedtls_mpi_get_montgomery_constant_unsafe #6 +mpi_get_montgomery_constant_unsafe:"7fffffffffffffff":"4":"4" + +mbedtls_mpi_get_montgomery_constant_unsafe #7 +mpi_get_montgomery_constant_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" + +mbedtls_mpi_get_montgomery_constant_unsafe #8 +mpi_get_montgomery_constant_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" + +mbedtls_mpi_get_montgomery_constant_unsafe #9 +mpi_get_montgomery_constant_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" + +mbedtls_mpi_get_montgomery_constant_unsafe #10 +mpi_get_montgomery_constant_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: From 4f43f61c6ad965a8a9cae7afc5af875c959b33b6 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 09:46:59 +0100 Subject: [PATCH 0494/1574] Renamed mbedtls_mpi_get_montgomery_constant_unsafe to mpi_core_get_mont_R2_unsafe Signed-off-by: Minos Galanakis --- library/bignum_core.c | 4 +-- library/bignum_core.h | 4 +-- tests/suites/test_suite_bignum.function | 18 +++++----- tests/suites/test_suite_bignum.misc.data | 44 ++++++++++++------------ 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 457405d27..a3547bd64 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,8 +511,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } -int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ) +int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index 3100bd5ff..57f27ddf2 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -428,7 +428,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL * or other operations fail. */ -int mbedtls_mpi_get_montgomery_constant_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ); +int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, + mbedtls_mpi const *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index e94681a28..4b5aee577 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1417,7 +1417,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_get_montgomery_constant_unsafe_neg( ) +void mpi_core_get_mont_R2_unsafe_neg( ) { mbedtls_mpi N, RR; mbedtls_mpi_init( &N ); @@ -1426,20 +1426,20 @@ void mpi_get_montgomery_constant_unsafe_neg( ) /* Test for NULL input pointers */ TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_get_montgomery_constant_unsafe( NULL, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( NULL, &N ) ); TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, NULL ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, NULL ) ); /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test for negative input */ TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); N.s = -1; TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); N.s = 1; exit: @@ -1449,9 +1449,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_get_montgomery_constant_unsafe( char * input_N, - char * input_RR_X4, - char * input_RR_X8 ) +void mpi_core_get_mont_R2_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) { mbedtls_mpi N, RR, RR_REF; @@ -1471,7 +1471,7 @@ void mpi_get_montgomery_constant_unsafe( char * input_N, TEST_EQUAL( 1, sign_is_valid(&RR_REF)); /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_get_montgomery_constant_unsafe( &RR, &N ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index b93b18391..0c9e91785 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,38 +1902,38 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_get_montgomery_constant_unsafe_neg -mpi_get_montgomery_constant_unsafe_neg: +mbedtls_mpi_core_get_mont_R2_unsafe_neg +mpi_core_get_mont_R2_unsafe_neg: -mbedtls_mpi_get_montgomery_constant_unsafe #1 -mpi_get_montgomery_constant_unsafe:"f":"1":"1" +mbedtls_mpi_core_get_mont_R2_unsafe #1 +mpi_core_get_mont_R2_unsafe:"f":"1":"1" -mbedtls_mpi_get_montgomery_constant_unsafe #2 -mpi_get_montgomery_constant_unsafe:"fd":"ec":"24" +mbedtls_mpi_core_get_mont_R2_unsafe #2 +mpi_core_get_mont_R2_unsafe:"fd":"ec":"24" -mbedtls_mpi_get_montgomery_constant_unsafe #3 -mpi_get_montgomery_constant_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" +mbedtls_mpi_core_get_mont_R2_unsafe #3 +mpi_core_get_mont_R2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" -mbedtls_mpi_get_montgomery_constant_unsafe #4 -mpi_get_montgomery_constant_unsafe:"eeff99aa11":"3308cb71":"3308cb71" +mbedtls_mpi_core_get_mont_R2_unsafe #4 +mpi_core_get_mont_R2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" -mbedtls_mpi_get_montgomery_constant_unsafe #5 -mpi_get_montgomery_constant_unsafe:"800000000005":"6400000000":"6400000000" +mbedtls_mpi_core_get_mont_R2_unsafe #5 +mpi_core_get_mont_R2_unsafe:"800000000005":"6400000000":"6400000000" -mbedtls_mpi_get_montgomery_constant_unsafe #6 -mpi_get_montgomery_constant_unsafe:"7fffffffffffffff":"4":"4" +mbedtls_mpi_core_get_mont_R2_unsafe #6 +mpi_core_get_mont_R2_unsafe:"7fffffffffffffff":"4":"4" -mbedtls_mpi_get_montgomery_constant_unsafe #7 -mpi_get_montgomery_constant_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" +mbedtls_mpi_core_get_mont_R2_unsafe #7 +mpi_core_get_mont_R2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" -mbedtls_mpi_get_montgomery_constant_unsafe #8 -mpi_get_montgomery_constant_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" +mbedtls_mpi_core_get_mont_R2_unsafe #8 +mpi_core_get_mont_R2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" -mbedtls_mpi_get_montgomery_constant_unsafe #9 -mpi_get_montgomery_constant_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" +mbedtls_mpi_core_get_mont_R2_unsafe #9 +mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" -mbedtls_mpi_get_montgomery_constant_unsafe #10 -mpi_get_montgomery_constant_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" +mbedtls_mpi_core_get_mont_R2_unsafe #10 +mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" MPI Selftest depends_on:MBEDTLS_SELF_TEST From b85506e250dc40ba6b4dde887fac5feaf3e47f30 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 09:51:53 +0100 Subject: [PATCH 0495/1574] bignum_core.h: Comment update for mbedtls_mpi_core_get_mont_R2_unsafe Signed-off-by: Minos Galanakis --- library/bignum_core.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 57f27ddf2..d46aea3e0 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -413,11 +413,12 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); /** - * \brief Calculate initialisation value for fast Montgomery modular - * multiplication + * \brief Calculate the square of the Montgomery constant. (Needed + * for conversion and operations in Montgomery form.) * * \param[out] X A pointer to the result of the calculation of - * Montgomery const 2^{2*n*biL} mod N. + * the square of the Montgomery constant: + * 2^{2*n*biL} mod N. * \param[in] N Little-endian presentation of the modulus, which must be odd. * * \return 0 if successful. From b9243ef231ce11a9efda4116ab0df3086f58ce91 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:06:16 +0100 Subject: [PATCH 0496/1574] test_suite_bignum: Fixed whitespace issues Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4b5aee577..6b59a517f 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1467,17 +1467,17 @@ void mpi_core_get_mont_R2_unsafe( char * input_N, TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid(&N)); - TEST_EQUAL( 1, sign_is_valid(&RR_REF)); + TEST_EQUAL( 1, sign_is_valid( &N ) ); + TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); /* Test valid input */ TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ - TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); + TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); /* Output is +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid(&RR)); + TEST_EQUAL( 1, sign_is_valid( &RR ) ); /* rr is updated to a valid pointer */ TEST_ASSERT( RR.p != NULL ); From e1913a8da8c4d868c2e7b408d03b8f48dab8534c Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:44:40 +0100 Subject: [PATCH 0497/1574] test_suite_bignum: Updated test cases for mbedtls_mpi_core_get_mont_R2_unsafe This patch adds tests for 192 and 2048 bits inputs. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.misc.data | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 0c9e91785..3aec84d19 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1933,7 +1933,10 @@ mbedtls_mpi_core_get_mont_R2_unsafe #9 mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" mbedtls_mpi_core_get_mont_R2_unsafe #10 -mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa6af813c808dbf33dbfa11dabd6e6144bef37c6800000000000000000000000000000000051":"78a9f16233856e722242e964006ed8666bfe8e55ea736ea86ce7aa71511e36d9ea1509ad5d821f7777e4a2d885924d15cc11e2ccd85eba69ab04989":"5c9d20a5636b6d7abdec003c1ad87e7c88ebf7238a5d85800d3bc214512cd6269558728307ae94eb389e2ccd85eba69ab0493e8277211ce1be22db" +mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" + +mbedtls_mpi_core_get_mont_R2_unsafe #11 +mpi_core_get_mont_R2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" MPI Selftest depends_on:MBEDTLS_SELF_TEST From ae4fb671b4e55396c4538b5e7cb60e7885865891 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 20 Oct 2022 10:47:26 +0100 Subject: [PATCH 0498/1574] mbedtls_mpi_core_get_mont_R2_unsafe: Removed NULL input checking Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 -- library/bignum_core.h | 3 +-- tests/suites/test_suite_bignum.function | 8 -------- 3 files changed, 1 insertion(+), 12 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index a3547bd64..ad22a1542 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -516,8 +516,6 @@ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( X == NULL || N == NULL ) goto cleanup; - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, N->n * 2 * biL ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( X, X, N ) ); diff --git a/library/bignum_core.h b/library/bignum_core.h index d46aea3e0..9870da41f 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -426,8 +426,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * to store the value of Montgomery constant squared. * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. - * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED \p N, \p X are NULL - * or other operations fail. + * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED if other operations fail. */ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, mbedtls_mpi const *N ); diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 6b59a517f..b598ea624 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -4,7 +4,6 @@ #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" -#include "mbedtls/error.h" #if MBEDTLS_MPI_MAX_BITS > 792 #define MPI_MAX_BITS_LARGER_THAN_792 @@ -1424,13 +1423,6 @@ void mpi_core_get_mont_R2_unsafe_neg( ) mbedtls_mpi_init( &RR ); const char * n = "7ffffffffffffff1"; - /* Test for NULL input pointers */ - TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_core_get_mont_R2_unsafe( NULL, &N ) ); - - TEST_EQUAL( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, NULL ) ); - /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); From 51d638baf6a9081c2a42c845f24cd3591c1c84c5 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 24 Oct 2022 09:59:44 +0100 Subject: [PATCH 0499/1574] bignum_core: Style update 'mbedtls_mpi_core_get_mont_R2_unsafe' aligns const keyword to match the style of the rest of the module. Documentation is also updated to remove `MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED`. Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 +- library/bignum_core.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index ad22a1542..675eb3070 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -512,7 +512,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, } int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ) + const mbedtls_mpi *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index 9870da41f..f3d460929 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -426,9 +426,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * to store the value of Montgomery constant squared. * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. - * \return #MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED if other operations fail. */ int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, - mbedtls_mpi const *N ); + const mbedtls_mpi *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ From a081c51cd3aac62f5cc28ed901337762d427cfe1 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 24 Oct 2022 12:16:28 +0100 Subject: [PATCH 0500/1574] Renamed mpi_core_get_mont_R2_unsafe_neg -> mpi_core_get_mont_r2_unsafe_neg Signed-off-by: Minos Galanakis --- library/bignum_core.c | 2 +- library/bignum_core.h | 2 +- tests/suites/test_suite_bignum.function | 10 ++--- tests/suites/test_suite_bignum.misc.data | 48 ++++++++++++------------ 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 675eb3070..963af5b18 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -511,7 +511,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); } -int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, +int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/bignum_core.h b/library/bignum_core.h index f3d460929..503bc1d33 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -427,7 +427,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. */ -int mbedtls_mpi_core_get_mont_R2_unsafe( mbedtls_mpi *X, +int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index b598ea624..fc3e9ef91 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1416,7 +1416,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_R2_unsafe_neg( ) +void mpi_core_get_mont_r2_unsafe_neg( ) { mbedtls_mpi N, RR; mbedtls_mpi_init( &N ); @@ -1425,13 +1425,13 @@ void mpi_core_get_mont_R2_unsafe_neg( ) /* Test for zero divisor */ TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); /* Test for negative input */ TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); N.s = -1; TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); N.s = 1; exit: @@ -1441,7 +1441,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_R2_unsafe( char * input_N, +void mpi_core_get_mont_r2_unsafe( char * input_N, char * input_RR_X4, char * input_RR_X8 ) { @@ -1463,7 +1463,7 @@ void mpi_core_get_mont_R2_unsafe( char * input_N, TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_R2_unsafe( &RR, &N ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); /* Test that the moduli is odd */ TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 3aec84d19..f3522df8a 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,41 +1902,41 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_get_mont_R2_unsafe_neg -mpi_core_get_mont_R2_unsafe_neg: +mbedtls_mpi_core_get_mont_r2_unsafe_neg +mpi_core_get_mont_r2_unsafe_neg: -mbedtls_mpi_core_get_mont_R2_unsafe #1 -mpi_core_get_mont_R2_unsafe:"f":"1":"1" +mbedtls_mpi_core_get_mont_r2_unsafe #1 +mpi_core_get_mont_r2_unsafe:"f":"1":"1" -mbedtls_mpi_core_get_mont_R2_unsafe #2 -mpi_core_get_mont_R2_unsafe:"fd":"ec":"24" +mbedtls_mpi_core_get_mont_r2_unsafe #2 +mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" -mbedtls_mpi_core_get_mont_R2_unsafe #3 -mpi_core_get_mont_R2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" +mbedtls_mpi_core_get_mont_r2_unsafe #3 +mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" -mbedtls_mpi_core_get_mont_R2_unsafe #4 -mpi_core_get_mont_R2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" +mbedtls_mpi_core_get_mont_r2_unsafe #4 +mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" -mbedtls_mpi_core_get_mont_R2_unsafe #5 -mpi_core_get_mont_R2_unsafe:"800000000005":"6400000000":"6400000000" +mbedtls_mpi_core_get_mont_r2_unsafe #5 +mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" -mbedtls_mpi_core_get_mont_R2_unsafe #6 -mpi_core_get_mont_R2_unsafe:"7fffffffffffffff":"4":"4" +mbedtls_mpi_core_get_mont_r2_unsafe #6 +mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" -mbedtls_mpi_core_get_mont_R2_unsafe #7 -mpi_core_get_mont_R2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" +mbedtls_mpi_core_get_mont_r2_unsafe #7 +mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" -mbedtls_mpi_core_get_mont_R2_unsafe #8 -mpi_core_get_mont_R2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" +mbedtls_mpi_core_get_mont_r2_unsafe #8 +mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" -mbedtls_mpi_core_get_mont_R2_unsafe #9 -mpi_core_get_mont_R2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" +mbedtls_mpi_core_get_mont_r2_unsafe #9 +mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" -mbedtls_mpi_core_get_mont_R2_unsafe #10 -mpi_core_get_mont_R2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" +mbedtls_mpi_core_get_mont_r2_unsafe #10 +mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" -mbedtls_mpi_core_get_mont_R2_unsafe #11 -mpi_core_get_mont_R2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" +mbedtls_mpi_core_get_mont_r2_unsafe #11 +mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" MPI Selftest depends_on:MBEDTLS_SELF_TEST From c98871339d8b80c120d40b2611840c8c9bb90b2c Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Wed, 24 Aug 2022 12:54:36 +0100 Subject: [PATCH 0501/1574] Extract MPI_CORE(add) from the prototype Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 18 +++++++++++++++--- library/bignum_core.h | 23 +++++++++++++++++++++++ 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 00837298b..3f4e6510a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -316,8 +316,6 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, return( 0 ); } - - void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ) { @@ -360,7 +358,21 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, } } - +mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ) +{ + mbedtls_mpi_uint c = 0, t; + for( size_t i = 0; i < n; i++ ) + { + t = c; + t += l[i]; c = ( t < l[i] ); + t += r[i]; c += ( t < r[i] ); + d[i] = t; + } + return( c ); +} mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, diff --git a/library/bignum_core.h b/library/bignum_core.h index 56a3bf874..0d7b89f20 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -277,6 +277,29 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ); +#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal + +/** + * \brief Add two known-size large unsigned integers, returning the carry. + * + * Calculate l + r where l and r have the same size. + * This function operates modulo (2^ciL)^n and returns the carry + * (1 if there was a wraparound, and 0 otherwise). + * + * d may be aliased to l or r. + * + * \param[out] d The result of the addition. + * \param[in] l The left operand. + * \param[in] r The right operand. + * \param n Number of limbs of \p d, \p l and \p r. + * + * \return 1 if `l + r >= (2^{ciL})^n`, 0 otherwise. + */ +mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + const mbedtls_mpi_uint *r, + size_t n ); + /** * \brief Conditional addition of two fixed-size large unsigned integers, * returning the carry. From af7d44b4d2a098317dea61c7692757f5b827713f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 24 Aug 2022 14:05:26 +0100 Subject: [PATCH 0502/1574] Tidy up, remove MPI_CORE(), apply the naming convention, and use the new mbedtls_mpi_core_add() Signed-off-by: Tom Cosgrove --- library/bignum.c | 31 ++++++++++++++----------------- library/bignum_core.c | 23 +++++++++++++---------- library/bignum_core.h | 29 ++++++++++++++--------------- 3 files changed, 41 insertions(+), 42 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 58cd2f732..f30df2bc5 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -867,8 +867,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ) int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t i, j; - mbedtls_mpi_uint *o, *p, c, tmp; + size_t j; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); MPI_VALIDATE_RET( B != NULL ); @@ -882,7 +881,7 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, A ) ); /* - * X should always be positive as a result of unsigned additions. + * X must always be positive as a result of unsigned additions. */ X->s = 1; @@ -892,27 +891,25 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); - o = B->p; p = X->p; c = 0; + /* j is the number of non-zero limbs of B. Add those to X. */ - /* - * tmp is used because it might happen that p == o - */ - for( i = 0; i < j; i++, o++, p++ ) - { - tmp= *o; - *p += c; c = ( *p < c ); - *p += tmp; c += ( *p < tmp ); - } + mbedtls_mpi_uint *p = X->p; + + mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j); + + p += j; + + /* Now propagate any carry */ while( c != 0 ) { - if( i >= X->n ) + if( j >= X->n ) { - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i + 1 ) ); - p = X->p + i; + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j + 1 ) ); + p = X->p + j; } - *p += c; c = ( *p < c ); i++; p++; + *p += c; c = ( *p < c ); j++; p++; } cleanup: diff --git a/library/bignum_core.c b/library/bignum_core.c index 3f4e6510a..6862316c4 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -358,19 +358,22 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, } } -mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ) +mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ) { - mbedtls_mpi_uint c = 0, t; - for( size_t i = 0; i < n; i++ ) + mbedtls_mpi_uint c = 0; + + for( size_t i = 0; i < limbs; i++ ) { - t = c; - t += l[i]; c = ( t < l[i] ); - t += r[i]; c += ( t < r[i] ); - d[i] = t; + mbedtls_mpi_uint t = c + A[i]; + c = ( t < A[i] ); + t += B[i]; + c += ( t < B[i] ); + X[i] = t; } + return( c ); } diff --git a/library/bignum_core.h b/library/bignum_core.h index 0d7b89f20..8cc985ef3 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -277,28 +277,27 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, size_t count ); -#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal - /** - * \brief Add two known-size large unsigned integers, returning the carry. + * \brief Add two fixed-size large unsigned integers, returning the carry. * - * Calculate l + r where l and r have the same size. - * This function operates modulo (2^ciL)^n and returns the carry + * Calculates `A + B` where `A` and `B` have the same size. + * + * This function operates modulo 2^(biL*limbs) and returns the carry * (1 if there was a wraparound, and 0 otherwise). * - * d may be aliased to l or r. + * \p X may be aliased to \p A or \p B. * - * \param[out] d The result of the addition. - * \param[in] l The left operand. - * \param[in] r The right operand. - * \param n Number of limbs of \p d, \p l and \p r. + * \param[out] X The result of the addition. + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs of \p X, \p A and \p B. * - * \return 1 if `l + r >= (2^{ciL})^n`, 0 otherwise. + * \return 1 if `A + B >= 2^(biL*limbs)`, 0 otherwise. */ -mbedtls_mpi_uint MPI_CORE(add)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - const mbedtls_mpi_uint *r, - size_t n ); +mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs ); /** * \brief Conditional addition of two fixed-size large unsigned integers, From eee0d6ce6bcf5f280f9986f2679d2e3dd43c4736 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:45:50 +0100 Subject: [PATCH 0503/1574] Extend the unit tests for mbedtls_mpi_core_add_if() to also test mbedtls_mpi_core_add() Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_core.py | 8 +-- tests/suites/test_suite_bignum_core.function | 64 +++++++++++++++----- 2 files changed, 53 insertions(+), 19 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index e46364b1a..0d238e714 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -144,12 +144,12 @@ class BignumCoreOperationArchSplit(BignumCoreOperation): yield cls(a_value, b_value, 32).create_test_case() yield cls(a_value, b_value, 64).create_test_case() -class BignumCoreAddIf(BignumCoreOperationArchSplit): - """Test cases for bignum core add if.""" +class BignumCoreAddAndAddIf(BignumCoreOperationArchSplit): + """Test cases for bignum core add and add-if.""" count = 0 symbol = "+" - test_function = "mpi_core_add_if" - test_name = "mbedtls_mpi_core_add_if" + test_function = "mpi_core_add_and_add_if" + test_name = "mpi_core_add_and_add_if" def result(self) -> List[str]: result = self.int_a + self.int_b diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index fb5fe3ae4..1cd8b4081 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -359,41 +359,52 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_add_if( char * input_A, char * input_B, - char * input_S, int carry ) +void mpi_core_add_and_add_if( char * input_A, char * input_B, + char * input_S, int carry ) { mbedtls_mpi_uint *A = NULL; /* first value to add */ - size_t A_limbs; mbedtls_mpi_uint *B = NULL; /* second value to add */ - size_t B_limbs; mbedtls_mpi_uint *S = NULL; /* expected result */ - size_t S_limbs; mbedtls_mpi_uint *X = NULL; /* destination - the in/out first operand */ - size_t X_limbs; + size_t A_limbs, B_limbs, S_limbs; TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); - X_limbs = S_limbs; - ASSERT_ALLOC( X, X_limbs ); - /* add_if expects all operands to be the same length */ + /* add and add_if expect all operands to be the same length */ TEST_EQUAL( A_limbs, B_limbs ); TEST_EQUAL( A_limbs, S_limbs ); size_t limbs = A_limbs; size_t bytes = limbs * sizeof( *A ); + ASSERT_ALLOC( X, limbs ); + /* The test cases have A <= B to avoid repetition, so we test A + B then, * if A != B, B + A. If A == B, we can test when A and B are aliased */ /* A + B */ - /* cond = 0 => X unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and first operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and second operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => X unchanged, no carry */ memcpy( X, A, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, A, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); @@ -401,12 +412,21 @@ void mpi_core_add_if( char * input_A, char * input_B, { /* A == B, so test where A and B are aliased */ - /* cond = 0 => X unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, output aliased to both operands => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => X unchanged, no carry */ memcpy( X, B, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); } @@ -414,12 +434,26 @@ void mpi_core_add_if( char * input_A, char * input_B, { /* A != B, so test B + A */ - /* cond = 0 => d unchanged, no carry */ + /* add => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and first operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add, alias output and second operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* add_if: cond = 0 => d unchanged, no carry */ memcpy( X, B, bytes ); TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); ASSERT_COMPARE( X, bytes, B, bytes ); - /* cond = 1 => correct result and carry */ + /* add_if: cond = 1 => correct result and carry */ TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); ASSERT_COMPARE( X, bytes, S, bytes ); } From 82f131063a871f40f9cd06ceb59735530514f4ef Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:46:03 +0100 Subject: [PATCH 0504/1574] Update documentation following review comment Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 8cc985ef3..084af7487 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -282,7 +282,7 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, * * Calculates `A + B` where `A` and `B` have the same size. * - * This function operates modulo 2^(biL*limbs) and returns the carry + * This function operates modulo `2^(biL*limbs)` and returns the carry * (1 if there was a wraparound, and 0 otherwise). * * \p X may be aliased to \p A or \p B. From 6469fdfb0aa44da4ccb7e55a692deaf02a9bf14c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 12:46:13 +0100 Subject: [PATCH 0505/1574] Fix whitespace issue spotted in review Signed-off-by: Tom Cosgrove --- library/bignum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index f30df2bc5..d33f07cc4 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -895,7 +895,7 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi mbedtls_mpi_uint *p = X->p; - mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j); + mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j ); p += j; From dd0c8f9c26b576464f72b080da7d922f2c2bce98 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 25 Oct 2022 17:35:29 +0200 Subject: [PATCH 0506/1574] tls13-kex-modes.sh: Remove unnecessary GnuTLS option Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-kex-modes.sh | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 209c34a2f..f4997402f 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3161,7 +3161,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 0 \ -c "=> write client hello" \ @@ -3181,7 +3181,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3: m->G: psk/ephemeral_all, fail - no common kex mode" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk" \ 1 \ -c "=> write client hello" \ @@ -3202,7 +3202,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 0 \ -c "=> write client hello" \ @@ -3223,7 +3223,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ 1 \ -c "=> write client hello" \ @@ -3243,7 +3243,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3263,7 +3263,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: psk_ephemeral/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_ephemeral" \ 0 \ -c "=> write client hello" \ @@ -3284,7 +3284,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Selected key exchange mode: ephemeral" \ @@ -3297,7 +3297,7 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral" \ 0 \ -c "Selected key exchange mode: ephemeral" \ @@ -3312,7 +3312,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3333,7 +3333,7 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: ephemeral_all/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=ephemeral_all" \ 0 \ -c "=> write client hello" \ @@ -3356,7 +3356,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ @@ -3378,7 +3378,7 @@ requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ - "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+CIPHER-ALL --pskpasswd=data_files/simplepass.psk" \ + "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=all" \ 0 \ -c "=> write client hello" \ From 37ca3a9acdaa2e7d2f1c991d0616181b84275902 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 25 Oct 2022 15:59:09 +0100 Subject: [PATCH 0507/1574] Moved tests from test_suite_bignum to test_suite_bignum_core This patch moves the following tests to test_suite_bignum_core: * `mbedtls_mpi_core_get_mont_r2_unsafe_neg()` * `mbedtls_mpi_core_get_mont_r2_unsafe()` Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum.function | 70 ------------------- tests/suites/test_suite_bignum.misc.data | 36 ---------- tests/suites/test_suite_bignum_core.function | 69 ++++++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 36 ++++++++++ 4 files changed, 105 insertions(+), 106 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index fc3e9ef91..4cec0a7c7 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1,6 +1,5 @@ /* BEGIN_HEADER */ #include "mbedtls/bignum.h" -#include "bignum_core.h" #include "mbedtls/entropy.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -1415,75 +1414,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe_neg( ) -{ - mbedtls_mpi N, RR; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - const char * n = "7ffffffffffffff1"; - - /* Test for zero divisor */ - TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - - /* Test for negative input */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); - N.s = -1; - TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - N.s = 1; - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe( char * input_N, - char * input_RR_X4, - char * input_RR_X8 ) -{ - mbedtls_mpi N, RR, RR_REF; - - /* Select the appropriate output */ - char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - mbedtls_mpi_init( &RR_REF ); - - /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); - - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid( &N ) ); - TEST_EQUAL( 1, sign_is_valid( &RR_REF ) ); - - /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); - - /* Test that the moduli is odd */ - TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, sign_is_valid( &RR ) ); - - /* rr is updated to a valid pointer */ - TEST_ASSERT( RR.p != NULL ); - - /* Calculated rr matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); - -exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); - mbedtls_mpi_free( &RR_REF ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index f3522df8a..78afcb64c 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1902,42 +1902,6 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -mbedtls_mpi_core_get_mont_r2_unsafe_neg -mpi_core_get_mont_r2_unsafe_neg: - -mbedtls_mpi_core_get_mont_r2_unsafe #1 -mpi_core_get_mont_r2_unsafe:"f":"1":"1" - -mbedtls_mpi_core_get_mont_r2_unsafe #2 -mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" - -mbedtls_mpi_core_get_mont_r2_unsafe #3 -mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" - -mbedtls_mpi_core_get_mont_r2_unsafe #4 -mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" - -mbedtls_mpi_core_get_mont_r2_unsafe #5 -mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" - -mbedtls_mpi_core_get_mont_r2_unsafe #6 -mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" - -mbedtls_mpi_core_get_mont_r2_unsafe #7 -mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" - -mbedtls_mpi_core_get_mont_r2_unsafe #8 -mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" - -mbedtls_mpi_core_get_mont_r2_unsafe #9 -mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" - -mbedtls_mpi_core_get_mont_r2_unsafe #10 -mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" - -mbedtls_mpi_core_get_mont_r2_unsafe #11 -mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" - MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index fb5fe3ae4..74ee27a0b 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -766,3 +766,72 @@ exit: mbedtls_mpi_free( &R ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_get_mont_r2_unsafe_neg( ) +{ + mbedtls_mpi N, RR; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + const char * n = "7ffffffffffffff1"; + + /* Test for zero divisor */ + TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + + /* Test for negative input */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); + N.s = -1; + TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, + mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + N.s = 1; + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_get_mont_r2_unsafe( char * input_N, + char * input_RR_X4, + char * input_RR_X8 ) +{ + mbedtls_mpi N, RR, RR_REF; + + /* Select the appropriate output */ + char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + mbedtls_mpi_init( &RR_REF ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, N.s ); + TEST_EQUAL( 1, RR_REF.s ); + + /* Test valid input */ + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + + /* Test that the moduli is odd */ + TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, RR_REF.s ); + + /* rr is updated to a valid pointer */ + TEST_ASSERT( RR.p != NULL ); + + /* Calculated rr matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); + +exit: + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &RR ); + mbedtls_mpi_free( &RR_REF ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index cb6fe424b..a8fe9ab9d 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -328,3 +328,39 @@ mpi_montg_init:"baea2d65939296fc2536f18f2a4042a741f33088ecd5000e76c67a466e7a1e69 mbedtls_mpi_montg_init #15 mpi_montg_init:"bf741f75e28a44e271cf43e68dbadd23c72d2f2e1fc78a6d6aaaadf2ccbf26c9a232aff5b3f3f29323b114f3018144ed9438943e07820e222137d3bb229b61671e61f75f6021a26436df9e669929fa392df021f105d2fce0717468a522018721ccde541b9a7b558128419f457ef33a5753f00c20c2d709727eef6278c55b278b10abe1d13e538514128b5dcb7bfd015e0fdcb081555071813974135d5ab5000630a94f5b0f4021a504ab4f3df2403e6140b9939f8bbe714635f5cff10744be03":"aab901da57bba355" + +mbedtls_mpi_core_get_mont_r2_unsafe_neg +mpi_core_get_mont_r2_unsafe_neg: + +mbedtls_mpi_core_get_mont_r2_unsafe #1 +mpi_core_get_mont_r2_unsafe:"f":"1":"1" + +mbedtls_mpi_core_get_mont_r2_unsafe #2 +mpi_core_get_mont_r2_unsafe:"fd":"ec":"24" + +mbedtls_mpi_core_get_mont_r2_unsafe #3 +mpi_core_get_mont_r2_unsafe:"eeff99aa37":"a23bd6a686":"a23bd6a686" + +mbedtls_mpi_core_get_mont_r2_unsafe #4 +mpi_core_get_mont_r2_unsafe:"eeff99aa11":"3308cb71":"3308cb71" + +mbedtls_mpi_core_get_mont_r2_unsafe #5 +mpi_core_get_mont_r2_unsafe:"800000000005":"6400000000":"6400000000" + +mbedtls_mpi_core_get_mont_r2_unsafe #6 +mpi_core_get_mont_r2_unsafe:"7fffffffffffffff":"4":"4" + +mbedtls_mpi_core_get_mont_r2_unsafe #7 +mpi_core_get_mont_r2_unsafe:"80fe000a10000001":"5dbc6e833bad575a":"5dbc6e833bad575a" + +mbedtls_mpi_core_get_mont_r2_unsafe #8 +mpi_core_get_mont_r2_unsafe:"25a55a46e5da99c71c7":"11637ce1347edeaf669":"1e455bf7451c05bc711" + +mbedtls_mpi_core_get_mont_r2_unsafe #9 +mpi_core_get_mont_r2_unsafe:"314dc643fb763f2b8c0e2de00879":"1058ad82120c3a10196bb36229c1":"1058ad82120c3a10196bb36229c1" + +mbedtls_mpi_core_get_mont_r2_unsafe #10 +mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396":"5d96a26447dca0cb7209c048f9e63e8dc623d67c8f44396" + +mbedtls_mpi_core_get_mont_r2_unsafe #11 +mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" From 93003d87a93879f647251b2f7994f1e57d1b2e9f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 25 Oct 2022 17:01:19 +0100 Subject: [PATCH 0508/1574] Split out testing of core_add and core_add_if per Janos' request Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_core.function | 230 ++++++++++++------- 1 file changed, 151 insertions(+), 79 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 1cd8b4081..c5ef62dde 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -5,6 +5,154 @@ #include "constant_time_internal.h" #include "test/constant_flow.h" +/** Verifies mbedtls_mpi_core_add(). + * + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs in each MPI (\p A, \p B, \p S and \p X). + * \param[in] S Little-endian presentation of the expected sum. + * \param carry Expected carry from the addition. + * \param[in,out] X Temporary storage to be used for results. + * + * \return 1 if mbedtls_mpi_core_add() passes this test, otherwise 0. + */ +static int mpi_core_verify_add( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X ) +{ + int ret = 0; + + size_t bytes = limbs * sizeof( *A ); + + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ + + /* A + B */ + + /* A + B => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B; alias output and first operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B; alias output and second operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + if ( memcmp( A, B, bytes ) == 0 ) + { + /* A == B, so test where A and B are aliased */ + + /* A + A => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + A, output aliased to both operands => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + else + { + /* A != B, so test B + A */ + + /* B + A => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A; alias output and first operand => correct result and carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A; alias output and second operand => correct result and carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + + ret = 1; + +exit: + return ret; +} + +/** Verifies mbedtls_mpi_core_add_if(). + * + * \param[in] A Little-endian presentation of the left operand. + * \param[in] B Little-endian presentation of the right operand. + * \param limbs Number of limbs in each MPI (\p A, \p B, \p S and \p X). + * \param[in] S Little-endian presentation of the expected sum. + * \param carry Expected carry from the addition. + * \param[in,out] X Temporary storage to be used for results. + * + * \return 1 if mbedtls_mpi_core_add_if() passes this test, otherwise 0. + */ +static int mpi_core_verify_add_if( mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X ) +{ + int ret = 0; + + size_t bytes = limbs * sizeof( *A ); + + /* The test cases have A <= B to avoid repetition, so we test A + B then, + * if A != B, B + A. If A == B, we can test when A and B are aliased */ + + /* A + B */ + + /* cond = 0 => X unchanged, no carry */ + memcpy( X, A, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, A, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + if ( memcmp( A, B, bytes ) == 0 ) + { + /* A == B, so test where A and B are aliased */ + + /* cond = 0 => X unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + else + { + /* A != B, so test B + A */ + + /* cond = 0 => d unchanged, no carry */ + memcpy( X, B, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); + ASSERT_COMPARE( X, bytes, B, bytes ); + + /* cond = 1 => correct result and carry */ + TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + + ret = 1; + +exit: + return ret; +} + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -375,88 +523,12 @@ void mpi_core_add_and_add_if( char * input_A, char * input_B, /* add and add_if expect all operands to be the same length */ TEST_EQUAL( A_limbs, B_limbs ); TEST_EQUAL( A_limbs, S_limbs ); - size_t limbs = A_limbs; - size_t bytes = limbs * sizeof( *A ); + size_t limbs = A_limbs; ASSERT_ALLOC( X, limbs ); - /* The test cases have A <= B to avoid repetition, so we test A + B then, - * if A != B, B + A. If A == B, we can test when A and B are aliased */ - - /* A + B */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and first operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and second operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => X unchanged, no carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, A, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - if ( memcmp( A, B, bytes ) == 0 ) - { - /* A == B, so test where A and B are aliased */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, output aliased to both operands => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => X unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } - else - { - /* A != B, so test B + A */ - - /* add => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and first operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add, alias output and second operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - - /* add_if: cond = 0 => d unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); - - /* add_if: cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } + TEST_ASSERT( mpi_core_verify_add( A, B, limbs, S, carry, X ) ); + TEST_ASSERT( mpi_core_verify_add_if( A, B, limbs, S, carry, X ) ); exit: mbedtls_free( A ); From a709a0f2c62b89f11a1b277bbf13a5a2d85ce96b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 27 Sep 2022 16:46:11 +0200 Subject: [PATCH 0509/1574] tls13: Declare PSK ephemeral key exchange mode first In the PSK exchange modes extension declare first PSK ephemeral if we support both PSK ephemeral and PSK. This is aligned with our implementation giving precedence to PSK ephemeral over pure PSK and improve compatibility with GnuTLS. Signed-off-by: Ronald Cron --- library/ssl_tls13_client.c | 16 ++++++++-------- tests/opt-testcases/tls13-kex-modes.sh | 13 +++++++------ tests/ssl-opt.sh | 2 +- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 72f48577a..ac19f6308 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -648,14 +648,6 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, */ p += 5; - if( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) ) - { - *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE; - ke_modes_len++; - - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding pure PSK key exchange mode" ) ); - } - if( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) ) { *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_ECDHE; @@ -664,6 +656,14 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding PSK-ECDHE key exchange mode" ) ); } + if( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) ) + { + *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE; + ke_modes_len++; + + MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding pure PSK key exchange mode" ) ); + } + /* Now write the extension and ke_modes length */ MBEDTLS_PUT_UINT16_BE( ke_modes_len + 1, buf, 2 ); buf[4] = ke_modes_len; diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index f4997402f..4f62ed69b 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -3212,7 +3212,7 @@ run_test "TLS 1.3: m->G: psk_all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3222,10 +3222,10 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED -run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ +run_test "TLS 1.3: m->G: psk_all/ephemeral_all, good" \ "$G_NEXT_SRV -d 4 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK --pskpasswd=data_files/simplepass.psk" \ "$P_CLI debug_level=4 force_version=tls13 psk=010203 psk_identity=0a0b0c tls13_kex_modes=psk_all" \ - 1 \ + 0 \ -c "=> write client hello" \ -c "client hello, adding pre_shared_key extension, omitting PSK binder list" \ -c "client hello, adding psk_key_exchange_modes extension" \ @@ -3233,7 +3233,8 @@ run_test "TLS 1.3: m->G: psk_all/ephemeral_all, fail - no fallback" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Last error was: -0x7780 - SSL - A fatal alert message was received from our peer" + -c "Selected key exchange mode: psk_ephemeral" \ + -c "HTTP/1.0 200 OK" #GNUTLS-SERVER psk_ephemeral mode requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3366,7 +3367,7 @@ run_test "TLS 1.3: m->G: all/all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: psk$" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 @@ -3388,5 +3389,5 @@ run_test "TLS 1.3: m->G: all/ephemeral_all, good" \ -s "Parsing extension 'PSK Key Exchange Modes/45'" \ -s "Parsing extension 'Pre Shared Key/41'" \ -c "<= write client hello" \ - -c "Selected key exchange mode: ephemeral" \ + -c "Selected key exchange mode: psk_ephemeral" \ -c "HTTP/1.0 200 OK" diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index e2f9206ec..a75b3f593 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12882,7 +12882,7 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3: NewSessionTicket: Basic check, m->G" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --disable-client-cert" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3 --disable-client-cert" \ "$P_CLI debug_level=1 reco_mode=1 reconnect=1" \ 0 \ -c "Protocol is TLSv1.3" \ From eac00ad2a6abb35b648f3ad9929eb0d704ab8489 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 13 Sep 2022 10:16:31 +0200 Subject: [PATCH 0510/1574] tls13: server: Note down client not being authenticated in SSL context Signed-off-by: Ronald Cron --- library/ssl_tls13_server.c | 3 + tests/opt-testcases/tls13-compat.sh | 1440 +++++------------- tests/scripts/generate_tls13_compat_tests.py | 2 +- 3 files changed, 364 insertions(+), 1081 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 8b9ac343a..f82cc04c8 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2429,7 +2429,10 @@ static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) authmode = ssl->conf->authmode; if( authmode == MBEDTLS_SSL_VERIFY_NONE ) + { + ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_SKIP_VERIFY; return( SSL_CERTIFICATE_REQUEST_SKIP ); + } ssl->handshake->certificate_request_sent = 1; diff --git a/tests/opt-testcases/tls13-compat.sh b/tests/opt-testcases/tls13-compat.sh index 59e305246..7f9d46fe4 100755 --- a/tests/opt-testcases/tls13-compat.sh +++ b/tests/opt-testcases/tls13-compat.sh @@ -27,7 +27,6 @@ # requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -39,12 +38,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -56,12 +54,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -73,12 +70,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -91,12 +87,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -108,12 +103,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -125,12 +119,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -142,12 +135,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -160,12 +152,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -177,12 +168,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -194,12 +184,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -211,12 +200,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -229,12 +217,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -246,12 +233,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -263,12 +249,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -280,12 +265,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -298,12 +282,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -315,12 +298,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -332,12 +314,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -349,12 +330,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -367,12 +347,11 @@ run_test "TLS 1.3 O->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -384,12 +363,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -401,12 +379,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -418,12 +395,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -436,12 +412,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -453,12 +428,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -470,12 +444,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -487,12 +460,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -505,12 +477,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -522,12 +493,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -539,12 +509,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -556,12 +525,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -574,12 +542,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -591,12 +558,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -608,12 +574,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -625,12 +590,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -643,12 +607,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -660,12 +623,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -677,12 +639,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -694,12 +655,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -712,12 +672,11 @@ run_test "TLS 1.3 O->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -729,12 +688,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -746,12 +704,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -763,12 +720,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -781,12 +737,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -798,12 +753,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -815,12 +769,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -832,12 +785,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -850,12 +802,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -867,12 +818,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -884,12 +834,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -901,12 +850,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -919,12 +867,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -936,12 +883,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -953,12 +899,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -970,12 +915,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -988,12 +932,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1005,12 +948,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1022,12 +964,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1039,12 +980,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1057,12 +997,11 @@ run_test "TLS 1.3 O->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1074,12 +1013,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1091,12 +1029,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1108,12 +1045,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1126,12 +1062,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1143,12 +1078,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1160,12 +1094,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1177,12 +1110,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1195,12 +1127,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1212,12 +1143,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1229,12 +1159,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1246,12 +1175,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1264,12 +1192,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1281,12 +1208,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1298,12 +1224,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1315,12 +1240,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1333,12 +1257,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1350,12 +1273,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1367,12 +1289,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1384,12 +1305,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1402,12 +1322,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1419,12 +1338,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1436,12 +1354,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1453,12 +1370,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1471,12 +1387,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1488,12 +1403,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1505,12 +1419,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1522,12 +1435,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1540,12 +1452,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1557,12 +1468,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1574,12 +1484,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1591,12 +1500,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1609,12 +1517,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1626,12 +1533,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1643,12 +1549,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1660,12 +1565,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1678,12 +1582,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1695,12 +1598,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1712,12 +1614,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -1729,12 +1630,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1747,12 +1647,11 @@ run_test "TLS 1.3 O->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1766,12 +1665,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1785,12 +1683,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1804,12 +1701,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1824,12 +1720,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1843,12 +1738,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1862,12 +1756,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1881,12 +1774,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1901,12 +1793,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1920,12 +1811,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1939,12 +1829,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1958,12 +1847,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -1978,12 +1866,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -1997,12 +1884,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2016,12 +1902,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2035,12 +1920,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2055,12 +1939,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2074,12 +1957,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2093,12 +1975,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2112,12 +1993,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2132,12 +2012,11 @@ run_test "TLS 1.3 G->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2151,12 +2030,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2170,12 +2048,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2189,12 +2066,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2209,12 +2085,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2228,12 +2103,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2247,12 +2121,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2266,12 +2139,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2286,12 +2158,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2305,12 +2176,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2324,12 +2194,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2343,12 +2212,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2363,12 +2231,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2382,12 +2249,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2401,12 +2267,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2420,12 +2285,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2440,12 +2304,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2459,12 +2322,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2478,12 +2340,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2497,12 +2358,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2517,12 +2377,11 @@ run_test "TLS 1.3 G->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2536,12 +2395,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2555,12 +2413,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2574,12 +2431,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2594,12 +2450,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2613,12 +2468,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2632,12 +2486,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2651,12 +2504,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2671,12 +2523,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2690,12 +2541,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2709,12 +2559,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2728,12 +2577,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2748,12 +2596,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2767,12 +2614,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2786,12 +2632,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2805,12 +2650,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2825,12 +2669,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2844,12 +2687,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2863,12 +2705,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2882,12 +2723,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2902,12 +2742,11 @@ run_test "TLS 1.3 G->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2921,12 +2760,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2940,12 +2778,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2959,12 +2796,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -2979,12 +2815,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -2998,12 +2833,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3017,12 +2851,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3036,12 +2869,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3056,12 +2888,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3075,12 +2906,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3094,12 +2924,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3113,12 +2942,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3133,12 +2961,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3152,12 +2979,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3171,12 +2997,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3190,12 +3015,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3210,12 +3034,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3229,12 +3052,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3248,12 +3070,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3267,12 +3088,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3287,12 +3107,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3306,12 +3125,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3325,12 +3143,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3344,12 +3161,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3364,12 +3180,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3383,12 +3198,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3402,12 +3216,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3421,12 +3234,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3441,12 +3253,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3460,12 +3271,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3479,12 +3289,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3498,12 +3307,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3518,12 +3326,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3537,12 +3344,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3556,12 +3362,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3575,12 +3380,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3595,12 +3399,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3614,12 +3417,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3633,12 +3435,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -3652,12 +3453,11 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3672,13 +3472,12 @@ run_test "TLS 1.3 G->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -C "received HelloRetryRequest message" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -3696,7 +3495,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -3714,7 +3512,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -3732,7 +3529,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3751,7 +3547,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -3769,7 +3564,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -3787,7 +3581,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -3805,7 +3598,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3824,7 +3616,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -3842,7 +3633,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -3860,7 +3650,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -3878,7 +3667,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3897,7 +3685,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -3915,7 +3702,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -3933,7 +3719,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -3951,7 +3736,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -3970,7 +3754,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -3988,7 +3771,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -4006,7 +3788,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -4024,7 +3805,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4043,7 +3823,6 @@ run_test "TLS 1.3 m->O: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4061,7 +3840,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4079,7 +3857,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4097,7 +3874,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4116,7 +3892,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4134,7 +3909,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4152,7 +3926,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4170,7 +3943,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4189,7 +3961,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4207,7 +3978,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4225,7 +3995,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4243,7 +4012,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4262,7 +4030,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -4280,7 +4047,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -4298,7 +4064,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -4316,7 +4081,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4335,7 +4099,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -4353,7 +4116,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -4371,7 +4133,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -4389,7 +4150,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4408,7 +4168,6 @@ run_test "TLS 1.3 m->O: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4426,7 +4185,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4444,7 +4202,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4462,7 +4219,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4481,7 +4237,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4499,7 +4254,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4517,7 +4271,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4535,7 +4288,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4554,7 +4306,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4572,7 +4323,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4590,7 +4340,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4608,7 +4357,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4627,7 +4375,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -4645,7 +4392,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -4663,7 +4409,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -4681,7 +4426,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4700,7 +4444,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -4718,7 +4461,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -4736,7 +4478,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -4754,7 +4495,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4773,7 +4513,6 @@ run_test "TLS 1.3 m->O: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -4791,7 +4530,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -4809,7 +4547,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -4827,7 +4564,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4846,7 +4582,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -4864,7 +4599,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -4882,7 +4616,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -4900,7 +4633,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4919,7 +4651,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -4937,7 +4668,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -4955,7 +4685,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -4973,7 +4702,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -4992,7 +4720,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5010,7 +4737,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5028,7 +4754,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5046,7 +4771,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5065,7 +4789,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5083,7 +4806,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5101,7 +4823,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5119,7 +4840,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5138,7 +4858,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5156,7 +4875,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5174,7 +4892,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5192,7 +4909,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5211,7 +4927,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -5229,7 +4944,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -5247,7 +4961,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -5265,7 +4978,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5284,7 +4996,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -5302,7 +5013,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -5320,7 +5030,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -5338,7 +5047,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5357,7 +5065,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5375,7 +5082,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5393,7 +5099,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5411,7 +5116,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5430,7 +5134,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5448,7 +5151,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5466,7 +5168,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5484,7 +5185,6 @@ run_test "TLS 1.3 m->O: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5505,7 +5205,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5525,7 +5224,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5545,7 +5243,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5565,7 +5262,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5586,7 +5282,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -5606,7 +5301,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -5626,7 +5320,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -5646,7 +5339,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5667,7 +5359,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -5687,7 +5378,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -5707,7 +5397,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -5727,7 +5416,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5748,7 +5436,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -5768,7 +5455,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -5788,7 +5474,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -5808,7 +5493,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5829,7 +5513,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -5849,7 +5532,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -5869,7 +5551,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -5889,7 +5570,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5910,7 +5590,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -5930,7 +5609,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -5950,7 +5628,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -5970,7 +5647,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -5991,7 +5667,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6011,7 +5686,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6031,7 +5705,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6051,7 +5724,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6072,7 +5744,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6092,7 +5763,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6112,7 +5782,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6132,7 +5801,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6153,7 +5821,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -6173,7 +5840,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -6193,7 +5859,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -6213,7 +5878,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6234,7 +5898,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -6254,7 +5917,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -6274,7 +5936,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -6294,7 +5955,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6315,7 +5975,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -6335,7 +5994,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -6355,7 +6013,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -6375,7 +6032,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6396,7 +6052,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6416,7 +6071,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6436,7 +6090,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6456,7 +6109,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6477,7 +6129,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6497,7 +6148,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6517,7 +6167,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6537,7 +6186,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6558,7 +6206,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -6578,7 +6225,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -6598,7 +6244,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -6618,7 +6263,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6639,7 +6283,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -6659,7 +6302,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -6679,7 +6321,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -6699,7 +6340,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6720,7 +6360,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -6740,7 +6379,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -6760,7 +6398,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -6780,7 +6417,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6801,7 +6437,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -6821,7 +6456,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -6841,7 +6475,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -6861,7 +6494,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6882,7 +6514,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -6902,7 +6533,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -6922,7 +6552,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -6942,7 +6571,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -6963,7 +6591,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -6983,7 +6610,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7003,7 +6629,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7023,7 +6648,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7044,7 +6668,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7064,7 +6687,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7084,7 +6706,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -7104,7 +6725,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7125,7 +6745,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -7145,7 +6764,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -7165,7 +6783,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -7185,7 +6802,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7206,7 +6822,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -7226,7 +6841,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -7246,7 +6860,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -7266,7 +6879,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7287,7 +6899,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -7307,7 +6918,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -7327,7 +6937,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -7347,7 +6956,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7368,7 +6976,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -7388,7 +6995,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7408,7 +7014,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7428,7 +7033,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7449,7 +7053,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7469,7 +7072,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7489,7 +7091,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -7509,7 +7110,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7527,12 +7127,10 @@ run_test "TLS 1.3 m->G: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -7543,7 +7141,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7553,12 +7151,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -7569,7 +7165,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7579,12 +7175,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -7595,7 +7189,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7605,13 +7199,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7623,7 +7215,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7633,12 +7225,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -7649,7 +7239,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7659,12 +7249,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -7675,7 +7263,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7685,12 +7273,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -7701,7 +7287,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7711,13 +7297,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7729,7 +7313,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7739,12 +7323,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -7755,7 +7337,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7765,12 +7347,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -7781,7 +7361,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7791,12 +7371,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -7807,7 +7385,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7817,13 +7395,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7835,7 +7411,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7845,12 +7421,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -7861,7 +7435,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7871,12 +7445,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -7887,7 +7459,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -7897,12 +7469,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -7913,7 +7483,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -7923,13 +7493,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -7941,7 +7509,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -7951,12 +7519,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -7967,7 +7533,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -7977,12 +7543,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -7993,7 +7557,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8003,12 +7567,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -8019,7 +7581,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8029,13 +7591,11 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8047,7 +7607,7 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-GCM-SHA256 ( id=4865 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1301 ) - TLS1-3-AES-128-GCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8057,12 +7617,10 @@ run_test "TLS 1.3 m->m: AES_128_GCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ @@ -8073,7 +7631,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8083,12 +7641,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ @@ -8099,7 +7655,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8109,12 +7665,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ @@ -8125,7 +7679,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8135,13 +7689,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8153,7 +7705,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8163,12 +7715,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ @@ -8179,7 +7729,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8189,12 +7739,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ @@ -8205,7 +7753,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8215,12 +7763,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ @@ -8231,7 +7777,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8241,13 +7787,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8259,7 +7803,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8269,12 +7813,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ @@ -8285,7 +7827,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8295,12 +7837,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ @@ -8311,7 +7851,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8321,12 +7861,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ @@ -8337,7 +7875,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8347,13 +7885,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8365,7 +7901,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8375,12 +7911,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ @@ -8391,7 +7925,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8401,12 +7935,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ @@ -8417,7 +7949,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8427,12 +7959,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ @@ -8443,7 +7973,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8453,13 +7983,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8471,7 +7999,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8481,12 +8009,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ @@ -8497,7 +8023,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8507,12 +8033,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ @@ -8523,7 +8047,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8533,12 +8057,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ @@ -8549,7 +8071,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8559,13 +8081,11 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8577,7 +8097,7 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-256-GCM-SHA384 ( id=4866 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1302 ) - TLS1-3-AES-256-GCM-SHA384" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8587,12 +8107,10 @@ run_test "TLS 1.3 m->m: AES_256_GCM_SHA384,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -8603,7 +8121,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8613,12 +8131,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -8629,7 +8145,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8639,12 +8155,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -8655,7 +8169,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8665,13 +8179,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8683,7 +8195,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8693,12 +8205,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp256r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -8709,7 +8219,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8719,12 +8229,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -8735,7 +8243,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8745,12 +8253,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -8761,7 +8267,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8771,13 +8277,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8789,7 +8293,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8799,12 +8303,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp384r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -8815,7 +8317,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8825,12 +8327,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp256r1_sha25 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -8841,7 +8341,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8851,12 +8351,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp384r1_sha38 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -8867,7 +8365,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8877,13 +8375,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,ecdsa_secp521r1_sha51 requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -8895,7 +8391,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -8905,12 +8401,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,secp521r1,rsa_pss_rsae_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -8921,7 +8415,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -8931,12 +8425,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp256r1_sha256" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -8947,7 +8439,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -8957,12 +8449,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp384r1_sha384" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -8973,7 +8463,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -8983,13 +8473,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,ecdsa_secp521r1_sha512" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9001,7 +8489,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9011,12 +8499,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -9027,7 +8513,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9037,12 +8523,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -9053,7 +8537,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9063,12 +8547,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -9079,7 +8561,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9089,13 +8571,11 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9107,7 +8587,7 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-CHACHA20-POLY1305-SHA256 ( id=4867 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1303 ) - TLS1-3-CHACHA20-POLY1305-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9117,12 +8597,10 @@ run_test "TLS 1.3 m->m: CHACHA20_POLY1305_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -9133,7 +8611,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9143,12 +8621,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -9159,7 +8635,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9169,12 +8645,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -9185,7 +8659,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9195,13 +8669,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9213,7 +8685,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9223,12 +8695,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -9239,7 +8709,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9249,12 +8719,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -9265,7 +8733,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9275,12 +8743,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -9291,7 +8757,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9301,13 +8767,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9319,7 +8783,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9329,12 +8793,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -9345,7 +8807,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9355,12 +8817,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -9371,7 +8831,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9381,12 +8841,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -9397,7 +8855,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9407,13 +8865,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9425,7 +8881,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9435,12 +8891,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -9451,7 +8905,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9461,12 +8915,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -9477,7 +8929,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9487,12 +8939,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -9503,7 +8953,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9513,13 +8963,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9531,7 +8979,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9541,12 +8989,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -9557,7 +9003,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9567,12 +9013,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -9583,7 +9027,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9593,12 +9037,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -9609,7 +9051,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9619,13 +9061,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9637,7 +9077,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-SHA256 ( id=4868 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1304 ) - TLS1-3-AES-128-CCM-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9647,12 +9087,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ @@ -9663,7 +9101,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9673,12 +9111,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ @@ -9689,7 +9125,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9699,12 +9135,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ @@ -9715,7 +9149,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9725,13 +9159,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9743,7 +9175,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9753,12 +9185,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp256r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ @@ -9769,7 +9199,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9779,12 +9209,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ @@ -9795,7 +9223,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9805,12 +9233,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ @@ -9821,7 +9247,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9831,13 +9257,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9849,7 +9273,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9859,12 +9283,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp384r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ @@ -9875,7 +9297,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9885,12 +9307,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ @@ -9901,7 +9321,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -9911,12 +9331,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ @@ -9927,7 +9345,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -9937,13 +9355,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -9955,7 +9371,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -9965,12 +9381,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,secp521r1,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ @@ -9981,7 +9395,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -9991,12 +9405,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ @@ -10007,7 +9419,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -10017,12 +9429,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ @@ -10033,7 +9443,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -10043,13 +9453,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -10061,7 +9469,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -10071,12 +9479,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x25519,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ @@ -10087,7 +9493,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x403" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0403 )" \ @@ -10097,12 +9503,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp256r1_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ @@ -10113,7 +9517,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x503" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0503 )" \ @@ -10123,12 +9527,10 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp384r1_sha384" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ @@ -10139,7 +9541,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x603" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0603 )" \ @@ -10149,13 +9551,11 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,ecdsa_secp521r1_sha512" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_X509_RSASSA_PSS_SUPPORT @@ -10167,7 +9567,7 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ -s "server hello, chosen ciphersuite: TLS1-3-AES-128-CCM-8-SHA256 ( id=4869 )" \ -s "received signature algorithm: 0x804" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "server hello, chosen ciphersuite: ( 1305 ) - TLS1-3-AES-128-CCM-8-SHA256" \ -c "Certificate Verify: Signature algorithm ( 0804 )" \ @@ -10177,7 +9577,6 @@ run_test "TLS 1.3 m->m: AES_128_CCM_8_SHA256,x448,rsa_pss_rsae_sha256" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10187,12 +9586,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10202,12 +9600,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10217,12 +9614,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10232,12 +9628,11 @@ run_test "TLS 1.3 O->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10247,12 +9642,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10262,12 +9656,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10277,12 +9670,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10292,12 +9684,11 @@ run_test "TLS 1.3 O->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10307,12 +9698,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10322,12 +9712,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10337,12 +9726,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10352,12 +9740,11 @@ run_test "TLS 1.3 O->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10367,12 +9754,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10382,12 +9768,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10397,12 +9782,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10412,12 +9796,11 @@ run_test "TLS 1.3 O->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10427,12 +9810,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10442,12 +9824,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10457,12 +9838,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_openssl_tls1_3 @@ -10472,12 +9852,11 @@ run_test "TLS 1.3 O->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10489,12 +9868,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10506,12 +9884,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10523,12 +9900,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10540,12 +9916,11 @@ run_test "TLS 1.3 G->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10557,12 +9932,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10574,12 +9948,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10591,12 +9964,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10608,12 +9980,11 @@ run_test "TLS 1.3 G->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10625,12 +9996,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10642,12 +10012,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10659,12 +10028,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10676,12 +10044,11 @@ run_test "TLS 1.3 G->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10693,12 +10060,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10710,12 +10076,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10727,12 +10092,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10744,12 +10108,11 @@ run_test "TLS 1.3 G->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x448" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10761,12 +10124,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp256r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10778,12 +10140,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp384r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10795,12 +10156,11 @@ run_test "TLS 1.3 G->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: secp521r1" requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_gnutls_tls1_3 @@ -10812,13 +10172,12 @@ run_test "TLS 1.3 G->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -s "HRR selected_group: x25519" requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ @@ -10836,7 +10195,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ @@ -10854,7 +10212,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ @@ -10872,7 +10229,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ @@ -10890,7 +10246,6 @@ run_test "TLS 1.3 m->O: HRR secp256r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ @@ -10908,7 +10263,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ @@ -10926,7 +10280,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ @@ -10944,7 +10297,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ @@ -10962,7 +10314,6 @@ run_test "TLS 1.3 m->O: HRR secp384r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ @@ -10980,7 +10331,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ @@ -10998,7 +10348,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ @@ -11016,7 +10365,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> x25519" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ @@ -11034,7 +10382,6 @@ run_test "TLS 1.3 m->O: HRR secp521r1 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ @@ -11052,7 +10399,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ @@ -11070,7 +10416,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ @@ -11088,7 +10433,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ @@ -11106,7 +10450,6 @@ run_test "TLS 1.3 m->O: HRR x25519 -> x448" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ @@ -11124,7 +10467,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp256r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ @@ -11142,7 +10484,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp384r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ @@ -11160,7 +10501,6 @@ run_test "TLS 1.3 m->O: HRR x448 -> secp521r1" \ requires_openssl_tls1_3 requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->O: HRR x448 -> x25519" \ @@ -11180,7 +10520,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp384r1" \ @@ -11200,7 +10539,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> secp521r1" \ @@ -11220,7 +10558,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x25519" \ @@ -11240,7 +10577,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp256r1 -> x448" \ @@ -11260,7 +10596,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp256r1" \ @@ -11280,7 +10615,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> secp521r1" \ @@ -11300,7 +10634,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x25519" \ @@ -11320,7 +10653,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp384r1 -> x448" \ @@ -11340,7 +10672,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp256r1" \ @@ -11360,7 +10691,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> secp384r1" \ @@ -11380,7 +10710,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x25519" \ @@ -11400,7 +10729,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR secp521r1 -> x448" \ @@ -11420,7 +10748,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp256r1" \ @@ -11440,7 +10767,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp384r1" \ @@ -11460,7 +10786,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> secp521r1" \ @@ -11480,7 +10805,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x25519 -> x448" \ @@ -11500,7 +10824,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp256r1" \ @@ -11520,7 +10843,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp384r1" \ @@ -11540,7 +10862,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> secp521r1" \ @@ -11560,7 +10881,6 @@ requires_gnutls_next_no_ticket requires_gnutls_next_disable_tls13_compat requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ @@ -11577,12 +10897,10 @@ run_test "TLS 1.3 m->G: HRR x448 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ @@ -11591,7 +10909,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11602,12 +10920,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ @@ -11616,7 +10932,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11627,12 +10943,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ @@ -11641,7 +10955,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11652,12 +10966,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ @@ -11666,7 +10978,7 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp256r1 ( 17 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11677,12 +10989,10 @@ run_test "TLS 1.3 m->m: HRR secp256r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ @@ -11691,7 +11001,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11702,12 +11012,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ @@ -11716,7 +11024,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11727,12 +11035,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ @@ -11741,7 +11047,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11752,12 +11058,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ @@ -11766,7 +11070,7 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp384r1 ( 18 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11777,12 +11081,10 @@ run_test "TLS 1.3 m->m: HRR secp384r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ @@ -11791,7 +11093,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11802,12 +11104,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ @@ -11816,7 +11116,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11827,12 +11127,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ @@ -11841,7 +11139,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: x25519 ( 1d )" \ @@ -11852,12 +11150,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x25519" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ @@ -11866,7 +11162,7 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: secp521r1 ( 19 )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11877,12 +11173,10 @@ run_test "TLS 1.3 m->m: HRR secp521r1 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ @@ -11891,7 +11185,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -11902,12 +11196,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ @@ -11916,7 +11208,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -11927,12 +11219,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ @@ -11941,7 +11231,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -11952,12 +11242,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ @@ -11966,7 +11254,7 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x448(001e)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x25519 ( 1d )" \ -c "NamedGroup: x448 ( 1e )" \ @@ -11977,12 +11265,10 @@ run_test "TLS 1.3 m->m: HRR x25519 -> x448" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ @@ -11991,7 +11277,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp256r1(0017)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp256r1 ( 17 )" \ @@ -12002,12 +11288,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp256r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ @@ -12016,7 +11300,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp384r1(0018)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp384r1 ( 18 )" \ @@ -12027,12 +11311,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp384r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ @@ -12041,7 +11323,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: secp521r1(0019)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: secp521r1 ( 19 )" \ @@ -12052,12 +11334,10 @@ run_test "TLS 1.3 m->m: HRR x448 -> secp521r1" \ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ @@ -12066,7 +11346,7 @@ run_test "TLS 1.3 m->m: HRR x448 -> x25519" \ 0 \ -s "Protocol is TLSv1.3" \ -s "got named group: x25519(001d)" \ - -s "Verifying peer X.509 certificate... ok" \ + -s "Certificate verification was skipped" \ -c "Protocol is TLSv1.3" \ -c "NamedGroup: x448 ( 1e )" \ -c "NamedGroup: x25519 ( 1d )" \ diff --git a/tests/scripts/generate_tls13_compat_tests.py b/tests/scripts/generate_tls13_compat_tests.py index 764c0ee3f..1d665e046 100755 --- a/tests/scripts/generate_tls13_compat_tests.py +++ b/tests/scripts/generate_tls13_compat_tests.py @@ -398,7 +398,7 @@ class MbedTLSServ(MbedTLSBase): named_group=named_group, iana_value=NAMED_GROUP_IANA_VALUE[named_group])] - check_strings.append("Verifying peer X.509 certificate... ok") + check_strings.append("Certificate verification was skipped") return ['-s "{}"'.format(i) for i in check_strings] def pre_cmd(self): From 93dcb1ba8d1b139b9bb77cfca473840b3997f162 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 3 Oct 2022 12:02:17 +0200 Subject: [PATCH 0511/1574] Update TLS 1.3 support document Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index 2a1faed00..f30590bd4 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -28,9 +28,12 @@ Support description - Mbed TLS does not support DHE key establishment. - - Mbed TLS does not support pre-shared keys, including any form of - session resumption. This implies that it does not support sending early - data (0-RTT data). + - Mbed TLS supports pre-shared keys for key establishment, pre-shared keys + provisioned externally as well as provisioned via the ticket mechanism. + + - Mbed TLS supports session resumption via the ticket mechanism. + + - Mbed TLS does not support sending or receiving early data (0-RTT data). - Supported cipher suites: depends on the library configuration. Potentially all of them: @@ -54,8 +57,8 @@ Support description | server_certificate_type | no | | padding | no | | key_share | YES | - | pre_shared_key | no | - | psk_key_exchange_modes | no | + | pre_shared_key | YES | + | psk_key_exchange_modes | YES | | early_data | no | | cookie | no | | supported_versions | YES | @@ -118,7 +121,7 @@ Support description | MBEDTLS_SSL_RENEGOTIATION | n/a | | MBEDTLS_SSL_MAX_FRAGMENT_LENGTH | no | | | | - | MBEDTLS_SSL_SESSION_TICKETS | no | + | MBEDTLS_SSL_SESSION_TICKETS | yes | | MBEDTLS_SSL_SERVER_NAME_INDICATION | yes | | MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH | no | | | | @@ -175,8 +178,7 @@ Prototype upstreaming status The following parts of the TLS 1.3 prototype remain to be upstreamed: -- Pre-shared keys, session resumption and 0-RTT data (both client and server - side). +- Sending (client) and receiving (server) early data (0-RTT data). - New TLS Message Processing Stack (MPS) From 78bffd1ff59fa7cdca7198e03c7eb324d6a85b92 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:02:33 +0200 Subject: [PATCH 0512/1574] Fix spelling of a disabled option Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 74c56d579..a99ebbc36 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1564,7 +1564,7 @@ component_test_crypto_for_psa_service () { # System stuff scripts/config.py unset MBEDTLS_ERROR_C scripts/config.py unset MBEDTLS_TIMING_C - scripts/config.py unset MBEDTLS_VERSION_FEATURES_C + scripts/config.py unset MBEDTLS_VERSION_FEATURES # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C scripts/config.py unset MBEDTLS_NIST_KW_C From 1f10807837b0f47c4b606bd2fbfa8be5337f4cfb Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:02:56 +0200 Subject: [PATCH 0513/1574] Disable pk in the PSA service config build It's not needed as a feature. It gets reenabled automatically in build_info.h like pk_write and pk_parse, but that's an implementation detail. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a99ebbc36..9bd2c2d06 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1575,6 +1575,7 @@ component_test_crypto_for_psa_service () { # MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C are actually currently needed # in PSA code to work with RSA keys. We don't require users to set those: # they will be reenabled in build_info.h. + scripts/config.py unset MBEDTLS_PK_C scripts/config.py unset MBEDTLS_PK_PARSE_C scripts/config.py unset MBEDTLS_PK_WRITE_C make CFLAGS='-O1 -Werror' all test From 649e04e3d1a1b56b858cc58e20514b9c564b6fb5 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:05:57 +0200 Subject: [PATCH 0514/1574] PSA service config build: note why we aren't disabling cipher and md Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9bd2c2d06..6e5d9236e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1567,6 +1567,8 @@ component_test_crypto_for_psa_service () { scripts/config.py unset MBEDTLS_VERSION_FEATURES # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C + # Keep MBEDTLS_CIPHER_C because psa_crypto_cipher, CCM and GCM need it. + # Keep MBEDTLS_MD_C because deterministic ECDSA needs it for HMAC_DRBG. scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_PEM_PARSE_C scripts/config.py unset MBEDTLS_PEM_WRITE_C From b06f0717b3504fec669d93e17171a040e08cc269 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 25 Oct 2022 21:06:11 +0200 Subject: [PATCH 0515/1574] PSA service config build: disable more modules not used by PSA Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6e5d9236e..30d10cb10 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1568,6 +1568,7 @@ component_test_crypto_for_psa_service () { # Crypto stuff with no PSA interface scripts/config.py unset MBEDTLS_BASE64_C # Keep MBEDTLS_CIPHER_C because psa_crypto_cipher, CCM and GCM need it. + scripts/config.py unset MBEDTLS_HKDF_C # PSA's HKDF is independent # Keep MBEDTLS_MD_C because deterministic ECDSA needs it for HMAC_DRBG. scripts/config.py unset MBEDTLS_NIST_KW_C scripts/config.py unset MBEDTLS_PEM_PARSE_C From 4ef4c89af20c267ad858232c8c5345b318814ffb Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 25 Oct 2022 13:39:16 +0000 Subject: [PATCH 0516/1574] Fix CI failure in build_info.h Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 1 + include/mbedtls/mbedtls_config.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 9c9a34546..006233a37 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -96,6 +96,7 @@ #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +#undef MBEDTLS_SSL_EARLY_DATA #endif #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 252413378..fcdd5782a 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1640,7 +1640,8 @@ * Requires: MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * -* Comment this to disable support for early data. +* Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 +* is not enabled, this option does not have any effect on the build. * * This feature is experimental, not completed and thus not ready for * production. From 72dbfef6e4b48d02327f663dcc695cc2abadfa75 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 26 Oct 2022 06:33:57 +0000 Subject: [PATCH 0517/1574] Improve coding styles Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 2 +- library/ssl_tls.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index a07c72326..01ede4088 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1935,7 +1935,7 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); * */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ); + int early_data_enabled ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f385f5d4b..6b545a6f3 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1428,7 +1428,7 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_EARLY_DATA) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ) + int early_data_enabled ) { conf->early_data_enabled = early_data_enabled; } From 7cb0077c5d611a9782ed009c52e4da20cda06cbb Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:49:22 -0400 Subject: [PATCH 0518/1574] Add all.sh components running depends.py without MBEDTLS_USE_PSA_CRYPTO Signed-off-by: Andrzej Kurek --- tests/scripts/all.sh | 49 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 6 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 61d675f4f..4c8117416 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1777,38 +1777,75 @@ component_build_key_exchanges () { tests/scripts/key-exchanges.pl } +# depends.py family of tests component_test_depends_py_cipher_id () { msg "test/build: depends.py cipher_id (gcc)" - tests/scripts/depends.py cipher_id + tests/scripts/depends.py cipher_id --unset-use-psa } component_test_depends_py_cipher_chaining () { msg "test/build: depends.py cipher_chaining (gcc)" - tests/scripts/depends.py cipher_chaining + tests/scripts/depends.py cipher_chaining --unset-use-psa } component_test_depends_py_cipher_padding () { msg "test/build: depends.py cipher_padding (gcc)" - tests/scripts/depends.py cipher_padding + tests/scripts/depends.py cipher_padding --unset-use-psa } component_test_depends_py_curves () { msg "test/build: depends.py curves (gcc)" - tests/scripts/depends.py curves + tests/scripts/depends.py curves --unset-use-psa } component_test_depends_py_hashes () { msg "test/build: depends.py hashes (gcc)" - tests/scripts/depends.py hashes + tests/scripts/depends.py hashes --unset-use-psa } component_test_depends_py_kex () { msg "test/build: depends.py kex (gcc)" - tests/scripts/depends.py kex + tests/scripts/depends.py kex --unset-use-psa } component_test_depends_py_pkalgs () { msg "test/build: depends.py pkalgs (gcc)" + tests/scripts/depends.py pkalgs --unset-use-psa +} + +# PSA equivalents of the depends.py tests +component_test_depends_py_cipher_id_psa () { + msg "test/build: depends.py cipher_id (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_id +} + +component_test_depends_py_cipher_chaining_psa () { + msg "test/build: depends.py cipher_chaining (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_chaining +} + +component_test_depends_py_cipher_padding_psa () { + msg "test/build: depends.py cipher_padding (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py cipher_padding +} + +component_test_depends_py_curves_psa () { + msg "test/build: depends.py curves (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py curves +} + +component_test_depends_py_hashes_psa () { + msg "test/build: depends.py hashes (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py hashes +} + +component_test_depends_py_kex_psa () { + msg "test/build: depends.py kex (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" + tests/scripts/depends.py kex +} + +component_test_depends_py_pkalgs_psa () { + msg "test/build: depends.py pkalgs (gcc) with MBEDTLS_USE_PSA_CRYPTO defined" tests/scripts/depends.py pkalgs } From 29c002ebdf5e8233adc0a08bf9e2c9cd714e9c47 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 24 Oct 2022 10:59:55 -0400 Subject: [PATCH 0519/1574] Remove unused perl dependency scripts curves.pl, depends-hashes.pl, key-exchanges.pl and depends-pkalgs.pl are now superseded by depends.py. Update all references to them accordingly. Signed-off-by: Andrzej Kurek --- README.md | 2 +- tests/scripts/all.sh | 38 ---------- tests/scripts/basic-in-docker.sh | 4 +- tests/scripts/curves.pl | 126 ------------------------------- tests/scripts/depends-hashes.pl | 101 ------------------------- tests/scripts/depends-pkalgs.pl | 107 -------------------------- tests/scripts/key-exchanges.pl | 76 ------------------- 7 files changed, 3 insertions(+), 451 deletions(-) delete mode 100755 tests/scripts/curves.pl delete mode 100755 tests/scripts/depends-hashes.pl delete mode 100755 tests/scripts/depends-pkalgs.pl delete mode 100755 tests/scripts/key-exchanges.pl diff --git a/README.md b/README.md index 9c9cf9112..cc61da03c 100644 --- a/README.md +++ b/README.md @@ -242,7 +242,7 @@ For machines with a Unix shell and OpenSSL (and optionally GnuTLS) installed, ad - `tests/ssl-opt.sh` runs integration tests for various TLS options (renegotiation, resumption, etc.) and tests interoperability of these options with other implementations. - `tests/compat.sh` tests interoperability of every ciphersuite with other implementations. - `tests/scripts/test-ref-configs.pl` test builds in various reduced configurations. -- `tests/scripts/key-exchanges.pl` test builds in configurations with a single key exchange enabled +- `tests/scripts/depends.py` test builds in configurations with a single curve, key exchange, hash, cipher, or pkalg on. - `tests/scripts/all.sh` runs a combination of the above tests, plus some more, with various build options (such as ASan, full `mbedtls_config.h`, etc). Porting Mbed TLS diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 4c8117416..c9abbd69f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1739,44 +1739,6 @@ support_build_baremetal () { ! grep -q -F time.h /usr/include/x86_64-linux-gnu/sys/types.h } -component_test_depends_curves () { - msg "test/build: curves.pl (gcc)" # ~ 4 min - tests/scripts/curves.pl -} - -component_test_depends_curves_psa () { - msg "test/build: curves.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/curves.pl -} - -component_test_depends_hashes () { - msg "test/build: depends-hashes.pl (gcc)" # ~ 2 min - tests/scripts/depends-hashes.pl -} - -component_test_depends_hashes_psa () { - msg "test/build: depends-hashes.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/depends-hashes.pl -} - -component_test_depends_pkalgs () { - msg "test/build: depends-pkalgs.pl (gcc)" # ~ 2 min - tests/scripts/depends-pkalgs.pl -} - -component_test_depends_pkalgs_psa () { - msg "test/build: depends-pkalgs.pl with MBEDTLS_USE_PSA_CRYPTO defined (gcc)" - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - tests/scripts/depends-pkalgs.pl -} - -component_build_key_exchanges () { - msg "test/build: key-exchanges (gcc)" # ~ 1 min - tests/scripts/key-exchanges.pl -} - # depends.py family of tests component_test_depends_py_cipher_id () { msg "test/build: depends.py cipher_id (gcc)" diff --git a/tests/scripts/basic-in-docker.sh b/tests/scripts/basic-in-docker.sh index 50bcb05b3..1f65710c8 100755 --- a/tests/scripts/basic-in-docker.sh +++ b/tests/scripts/basic-in-docker.sh @@ -40,6 +40,6 @@ for compiler in clang gcc; do run_in_docker -e OSSL_NO_DTLS=1 tests/compat.sh run_in_docker tests/ssl-opt.sh -e '\(DTLS\|SCSV\).*openssl' run_in_docker tests/scripts/test-ref-configs.pl - run_in_docker tests/scripts/curves.pl - run_in_docker tests/scripts/key-exchanges.pl + run_in_docker tests/scripts/depends.py curves + run_in_docker tests/scripts/depends.py kex done diff --git a/tests/scripts/curves.pl b/tests/scripts/curves.pl deleted file mode 100755 index fcaca9141..000000000 --- a/tests/scripts/curves.pl +++ /dev/null @@ -1,126 +0,0 @@ -#!/usr/bin/env perl - -# curves.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# The purpose of this test script is to validate that the library works -# when only a single curve is enabled. In particular, this validates that -# curve-specific code is guarded by the proper preprocessor conditionals, -# both in the library and in tests. -# -# Since this script only tests builds with a single curve, it can't detect -# bugs that are only triggered when multiple curves are present. We do -# also test in many configurations where all curves are enabled, as well -# as a few configurations in configs/*.h with a restricted subset of curves. -# -# Here are some known test gaps that could be addressed by testing all -# 2^n combinations of support for n curves, which is impractical: -# * There could be product bugs when curves A and B are enabled but not C. -# For example, a MAX_SIZE calculation that forgets B, where -# size(A) < size(B) < size(C). -# * For test cases that require three or more curves, validate that they're -# not missing dependencies. This is extremely rare. (For test cases that -# require curves A and B but are missing a dependency on B, this is -# detected in the A-only build.) -# Usage: tests/scripts/curves.pl -# -# This script should be executed from the root of the project directory. -# -# Only curves that are enabled in mbedtls_config.h will be tested. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $sed_cmd = 's/^#define \(MBEDTLS_ECP_DP.*_ENABLED\)/\1/p'; -my $config_h = 'include/mbedtls/mbedtls_config.h'; -my @curves = split( /\s+/, `sed -n -e '$sed_cmd' $config_h` ); - -# Determine which curves support ECDSA by checking the dependencies of -# ECDSA in check_config.h. -my %curve_supports_ecdsa = (); -{ - local $/ = ""; - local *CHECK_CONFIG; - open(CHECK_CONFIG, '<', 'include/mbedtls/check_config.h') - or die "open include/mbedtls/check_config.h: $!"; - while (my $stanza = ) { - if ($stanza =~ /\A#if defined\(MBEDTLS_ECDSA_C\)/) { - for my $curve ($stanza =~ /(?<=\()MBEDTLS_ECP_DP_\w+_ENABLED(?=\))/g) { - $curve_supports_ecdsa{$curve} = 1; - } - last; - } - } - close(CHECK_CONFIG); -} - -system( "cp $config_h $config_h.bak" ) and die; -sub abort { - system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; - # use an exit code between 1 and 124 for git bisect (die returns 255) - warn $_[0]; - exit 1; -} - -# Disable all the curves. We'll then re-enable them one by one. -for my $curve (@curves) { - system( "scripts/config.pl unset $curve" ) - and abort "Failed to disable $curve\n"; -} -# Depends on a specific curve. Also, ignore error if it wasn't enabled. -system( "scripts/config.pl unset MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED" ); -system( "scripts/config.pl unset MBEDTLS_ECJPAKE_C" ); - -# Test with only $curve enabled, for each $curve. -for my $curve (@curves) { - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing with only curve: $curve\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "$curve"; - - system( "scripts/config.pl set $curve" ) - and abort "Failed to enable $curve\n"; - - my $ecdsa = $curve_supports_ecdsa{$curve} ? "set" : "unset"; - for my $dep (qw(MBEDTLS_ECDSA_C - MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED - MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)) { - system( "scripts/config.pl $ecdsa $dep" ) - and abort "Failed to $ecdsa $dep\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make" ) - and abort "Failed to build: only $curve\n"; - system( "make test" ) - and abort "Failed test suite: only $curve\n"; - - system( "scripts/config.pl unset $curve" ) - and abort "Failed to disable $curve\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/depends-hashes.pl b/tests/scripts/depends-hashes.pl deleted file mode 100755 index db18a92ae..000000000 --- a/tests/scripts/depends-hashes.pl +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env perl - -# depends-hashes.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual hashes in each test suite. This -# is a verification step to ensure we don't ship test suites that do not work -# for some build options. -# -# The process is: -# for each possible hash -# build the library and test suites with the hash disabled -# execute the test suites -# -# And any test suite with the wrong dependencies will fail. -# -# Usage: tests/scripts/depends-hashes.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $config_h = 'include/mbedtls/mbedtls_config.h'; - -# as many SSL options depend on specific hashes, -# and SSL is not in the test suites anyways, -# disable it to avoid dependency issues -my $ssl_sed_cmd = 's/^#define \(MBEDTLS_SSL.*\)/\1/p'; -my @ssl = split( /\s+/, `sed -n -e '$ssl_sed_cmd' $config_h` ); - -# Each element of this array holds list of configuration options that -# should be tested together. Certain options depend on each other and -# separating them would generate invalid configurations. -my @hash_configs = ( - ['unset MBEDTLS_MD5_C'], - ['unset MBEDTLS_SHA512_C', 'unset MBEDTLS_SHA384_C '], - ['unset MBEDTLS_SHA384_C'], - ['unset MBEDTLS_SHA256_C', 'unset MBEDTLS_SHA224_C', 'unset MBEDTLS_LMS_C', 'unset MBEDTLS_LMS_PRIVATE'], - ['unset MBEDTLS_SHA1_C'], -); - -system( "cp $config_h $config_h.bak" ) and die; -sub abort { - system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; - # use an exit code between 1 and 124 for git bisect (die returns 255) - warn $_[0]; - exit 1; -} - -for my $hash_config (@hash_configs) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - my $hash_config_string = join(', ', @$hash_config); - - print "\n******************************************\n"; - print "* Testing hash options: $hash_config_string\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "-$hash_config_string"; - - for my $hash (@$hash_config) { - system( "scripts/config.py $hash" ) - and abort "Failed to $hash\n"; - } - - for my $opt (@ssl) { - system( "scripts/config.py unset $opt" ) - and abort "Failed to disable $opt\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make lib" ) - and abort "Failed to build lib: $hash_config_string\n"; - system( "cd tests && make" ) and abort "Failed to build tests: $hash_config_string\n"; - system( "make test" ) and abort "Failed test suite: $hash_config_string\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/depends-pkalgs.pl b/tests/scripts/depends-pkalgs.pl deleted file mode 100755 index 6eb726927..000000000 --- a/tests/scripts/depends-pkalgs.pl +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env perl - -# depends-pkalgs.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual PK algs (those that can be used -# from the PK layer, so currently signature and encryption but not key -# exchange) in each test suite. This is a verification step to ensure we don't -# ship test suites that do not work for some build options. -# -# The process is: -# for each possible PK alg -# build the library and test suites with that alg disabled -# execute the test suites -# -# And any test suite with the wrong dependencies will fail. -# -# Usage: tests/scripts/depends-pkalgs.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $config_h = 'include/mbedtls/mbedtls_config.h'; - -# Some algorithms can't be disabled on their own as others depend on them, so -# we list those reverse-dependencies here to keep check_config.h happy. -my %algs = ( - 'MBEDTLS_ECDSA_C' => ['MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED'], - 'MBEDTLS_ECP_C' => ['MBEDTLS_ECDSA_C', - 'MBEDTLS_ECDH_C', - 'MBEDTLS_ECJPAKE_C', - 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED'], - 'MBEDTLS_X509_RSASSA_PSS_SUPPORT' => [], - 'MBEDTLS_PKCS1_V21' => ['MBEDTLS_X509_RSASSA_PSS_SUPPORT'], - 'MBEDTLS_PKCS1_V15' => ['MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], - 'MBEDTLS_RSA_C' => ['MBEDTLS_X509_RSASSA_PSS_SUPPORT', - 'MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED', - 'MBEDTLS_KEY_EXCHANGE_RSA_ENABLED'], -); - -system( "cp $config_h $config_h.bak" ) and die; -sub abort { - system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; - # use an exit code between 1 and 124 for git bisect (die returns 255) - warn $_[0]; - exit 1; -} - -while( my ($alg, $extras) = each %algs ) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing without alg: $alg\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = "-$alg"; - - system( "scripts/config.py unset $alg" ) - and abort "Failed to disable $alg\n"; - for my $opt (@$extras) { - system( "scripts/config.py unset $opt" ) - and abort "Failed to disable $opt\n"; - } - - system( "CFLAGS='-Werror -Wall -Wextra' make lib" ) - and abort "Failed to build lib: $alg\n"; - system( "cd tests && make" ) and abort "Failed to build tests: $alg\n"; - system( "make test" ) and abort "Failed test suite: $alg\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; diff --git a/tests/scripts/key-exchanges.pl b/tests/scripts/key-exchanges.pl deleted file mode 100755 index 46f1b9754..000000000 --- a/tests/scripts/key-exchanges.pl +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/env perl - -# key-exchanges.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Purpose -# -# To test the code dependencies on individual key exchanges in the SSL module. -# is a verification step to ensure we don't ship SSL code that do not work -# for some build options. -# -# The process is: -# for each possible key exchange -# build the library with all but that key exchange disabled -# -# Usage: tests/scripts/key-exchanges.pl -# -# This script should be executed from the root of the project directory. -# -# For best effect, run either with cmake disabled, or cmake enabled in a mode -# that includes -Werror. - -use warnings; -use strict; - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $sed_cmd = 's/^#define \(MBEDTLS_KEY_EXCHANGE_.*_ENABLED\)/\1/p'; -my $config_h = 'include/mbedtls/mbedtls_config.h'; -my @kexes = split( /\s+/, `sed -n -e '$sed_cmd' $config_h` ); - -system( "cp $config_h $config_h.bak" ) and die; -sub abort { - system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; - # use an exit code between 1 and 124 for git bisect (die returns 255) - warn $_[0]; - exit 1; -} - -for my $kex (@kexes) { - system( "cp $config_h.bak $config_h" ) and die "$config_h not restored\n"; - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing with key exchange: $kex\n"; - print "******************************************\n"; - $ENV{MBEDTLS_TEST_CONFIGURATION} = $kex; - - # full config with all key exchanges disabled except one - system( "scripts/config.py full" ) and abort "Failed config full\n"; - for my $k (@kexes) { - next if $k eq $kex; - system( "scripts/config.py unset $k" ) - and abort "Failed to disable $k\n"; - } - - system( "make lib CFLAGS='-Os -Werror'" ) and abort "Failed to build lib: $kex\n"; -} - -system( "mv $config_h.bak $config_h" ) and die "$config_h not restored\n"; -system( "make clean" ) and die; -exit 0; From 85b9e095254691c7626ae152a88b91726247ec05 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Mon, 24 Oct 2022 19:08:59 +0200 Subject: [PATCH 0520/1574] Add change log Signed-off-by: Ronald Cron --- ChangeLog.d/tls13-misc.txt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 ChangeLog.d/tls13-misc.txt diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt new file mode 100644 index 000000000..497ed38d2 --- /dev/null +++ b/ChangeLog.d/tls13-misc.txt @@ -0,0 +1,9 @@ +Features + * Mbed TLS supports TLS 1.3 key establishment via pre-shared keys, + pre-shared keys provisioned externally or via the ticket mechanism + (session resumption). + The MBEDTLS_SSL_SESSION_TICKETS configuration option controls the support + for the ticket mechanism. + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED configuration options + have been introduced to control the support for the three possible + TLS 1.3 key exchange modes. From 4d13c833dad616601b5b1c8d78ee470fc6b28224 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 26 Oct 2022 16:11:26 +0200 Subject: [PATCH 0521/1574] analyze_outcomes.py: remove components and ignore parameters Use a dictionary to specify optional parameters for each task. If the task is not specified then all tasks are executed. Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 54 +++++++++++++++++++------------ 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 3e9599730..de52d776b 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -122,14 +122,18 @@ by a semicolon. outcomes[key].failures.append(setup) return outcomes -def do_analyze_coverage(outcome_file): +def do_analyze_coverage(outcome_file, args): """Perform coverage analyze.""" + del args # unused outcomes = read_outcome_file(outcome_file) results = analyze_outcomes(outcomes) return results.error_count == 0 -def do_analyze_driver_vs_reference(outcome_file, components, ignored_tests): +def do_analyze_driver_vs_reference(outcome_file, args): """Perform driver vs reference analyze.""" + components = args['components'].split(',') + ignored_tests = args['ignored'].split(',') + ignored_tests = ['test_suite_' + x for x in ignored_tests] # We need exactly 2 components to analyze (first driver and second reference) if(len(components) != 2 or "accel" not in components[0] or "reference" not in components[1]): print('Error: Wrong component list. Exactly 2 components are required (driver,reference). ') @@ -137,35 +141,43 @@ def do_analyze_driver_vs_reference(outcome_file, components, ignored_tests): outcomes = read_outcome_file(outcome_file) return analyze_driver_vs_reference(outcomes, components, ignored_tests) +# List of tasks with function that can handle this task and additional arguments if required +# pylint: disable=line-too-long +TASKS = { + 'analyze_coverage': { + 'test_function': do_analyze_coverage, + 'args': {}}, + 'analyze_driver_vs_reference_hash': { + 'test_function': do_analyze_driver_vs_reference, + 'args': { + 'components': 'test_psa_crypto_config_accel_hash_use_psa,test_psa_crypto_config_reference_hash_use_psa', + 'ignored': 'md,mdx,shax,entropy,hmac_drbg,random,psa_crypto_init,hkdf'}} +} +# pylint: enable=line-too-long + def main(): try: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') - parser.add_argument('--task', default='analyze_coverage', - help='Analyze to be done: analyze_coverage or ' - 'analyze_driver_vs_reference') - parser.add_argument('--components', - help='List of test components to compare. ' - 'Must be exactly 2 in valid order: driver,reference. ' - 'Apply only for analyze_driver_vs_reference task.') - parser.add_argument('--ignore', - help='List of test suits to ignore. ' - 'Apply only for analyze_driver_vs_reference task.') + parser.add_argument('--task', default='all', + help='Analyze to be done: all or analyze_coverage or ' + 'analyze_driver_vs_reference_hash') options = parser.parse_args() - result = False + result = True - if options.task == 'analyze_coverage': - result = do_analyze_coverage(options.outcomes) - elif options.task == 'analyze_driver_vs_reference': - components_list = options.components.split(',') - ignored_tests_list = options.ignore.split(',') - ignored_tests_list = ['test_suite_' + x for x in ignored_tests_list] - result = do_analyze_driver_vs_reference(options.outcomes, - components_list, ignored_tests_list) + if options.task == 'all': + for task in TASKS: + if not TASKS[task]['test_function'](options.outcomes, TASKS[task]['args']): + result = False + elif options.task in TASKS: + if not TASKS[options.task]['test_function'](options.outcomes, + TASKS[options.task]['args']): + result = False else: print('Error: Unknown task: {}'.format(options.task)) + result = False if result is False: sys.exit(1) From 49540ac5292bfbc0399badb3383a418c0e3dd4bd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Oct 2022 18:02:56 +0200 Subject: [PATCH 0522/1574] Move copyright notice out of the Doxygen documentation Signed-off-by: Gilles Peskine --- include/mbedtls/constant_time.h | 3 ++- include/mbedtls/legacy_or_psa.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/constant_time.h b/include/mbedtls/constant_time.h index c5de57a01..fb1f7e98e 100644 --- a/include/mbedtls/constant_time.h +++ b/include/mbedtls/constant_time.h @@ -1,6 +1,7 @@ /** * Constant-time functions - * + */ +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index 2156be946..fe87399e7 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -2,6 +2,8 @@ * Macros to express dependencies for code and tests that may use either the * legacy API or PSA in various builds; mostly for internal use. * + */ +/* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * From 3a9ebd69c38aa92b310d7e4acf64ee9e3d82aade Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 26 Oct 2022 18:03:14 +0200 Subject: [PATCH 0523/1574] Declare legacy_or_psa.h as private We think we're likely to change these macros. So make them *only* for internal use, not just "mostly". Signed-off-by: Gilles Peskine --- include/mbedtls/legacy_or_psa.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index fe87399e7..f872ddaf1 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -1,7 +1,8 @@ /** * Macros to express dependencies for code and tests that may use either the - * legacy API or PSA in various builds; mostly for internal use. - * + * legacy API or PSA in various builds. This whole header file is currently + * for internal use only and both the header file and the macros it defines + * may change or be removed without notice. */ /* * Copyright The Mbed TLS Contributors From 1df7070acc530560351a6fe6fdc7b9bef240fb9a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 26 Oct 2022 17:08:54 +0100 Subject: [PATCH 0524/1574] Fix all.sh dependency on DTLS connection ID Ensure MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT is unset where MBEDTLS_SSL_DTLS_CONNECTION_ID is unset. Signed-off-by: Dave Rodgman --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e89108eb9..55bdc14aa 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1238,6 +1238,7 @@ component_test_full_no_cipher () { scripts/config.py unset MBEDTLS_PSA_CRYPTO_STORAGE_C scripts/config.py unset MBEDTLS_SSL_DTLS_ANTI_REPLAY scripts/config.py unset MBEDTLS_SSL_DTLS_CONNECTION_ID + scripts/config.py unset MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 scripts/config.py unset MBEDTLS_SSL_SRV_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO From 5f6f32a0addcfb3b70197f216a745da58d2cd92e Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 27 Oct 2022 08:24:43 +0200 Subject: [PATCH 0525/1574] Remove hidden option to skip ssl-opt and compat tests Also remove compat tests from reference component as results from this run are not included in outcome file. Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index d84ad8531..cecfb5d61 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2098,16 +2098,11 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test - # hidden option: when running outcome-analysis.sh, we can skip this - if [ "${SKIP_SSL_OPT_COMPAT_SH-unset}" = "unset" ]; then - msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/ssl-opt.sh + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" - tests/compat.sh - else - echo "skip ssl-opt.sh and compat.sh" - fi + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + tests/compat.sh } component_test_psa_crypto_config_reference_hash_use_psa() { @@ -2128,16 +2123,8 @@ component_test_psa_crypto_config_reference_hash_use_psa() { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" make test - # hidden option: when running outcome-analysis.sh, we can skip this - if [ "${SKIP_SSL_OPT_COMPAT_SH-unset}" = "unset" ]; then - msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - tests/ssl-opt.sh - - msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - tests/compat.sh - else - echo "skip ssl-opt.sh and compat.sh" - fi + msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + tests/ssl-opt.sh } component_test_psa_crypto_config_accel_cipher () { From 120ed8f8faf0128a9632917710059d27816001ec Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 27 Oct 2022 10:29:15 +0200 Subject: [PATCH 0526/1574] Add comments to explan the purpose of the reference component Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index cecfb5d61..6a7501a97 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2041,6 +2041,9 @@ component_test_psa_crypto_config_accel_hash () { make test } +# Note that component_test_psa_crypto_config_reference_hash_use_psa +# is related to this component and both components need to be kept in sync. +# For details please see comments for component_test_psa_crypto_config_reference_hash_use_psa. component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" @@ -2105,6 +2108,10 @@ component_test_psa_crypto_config_accel_hash_use_psa () { tests/compat.sh } +# This component provides reference configuration for test_psa_crypto_config_accel_hash_use_psa +# without accelerated hash. The outcome from both components are used by the analyze_outcomes.py +# script to find regression in test coverage when accelerated hash is used (tests and ssl-opt). +# Both components need to be kept in sync. component_test_psa_crypto_config_reference_hash_use_psa() { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" # start with full From 4e0fca3737161e32ceefbb0204c677d914cefeee Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 09:47:21 +0100 Subject: [PATCH 0527/1574] Fix test dependency on DTLS connection ID Ensure MBEDTLS_SSL_DTLS_CONNECTION_ID and MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT are unset when MBEDTLS_SSL_PROTO_DTLS is not set in tls13-only tests. Signed-off-by: Dave Rodgman --- tests/configs/tls13-only.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/configs/tls13-only.h b/tests/configs/tls13-only.h index 0a22c544b..751cdf862 100644 --- a/tests/configs/tls13-only.h +++ b/tests/configs/tls13-only.h @@ -32,3 +32,5 @@ #undef MBEDTLS_SSL_DTLS_ANTI_REPLAY #undef MBEDTLS_SSL_DTLS_HELLO_VERIFY #undef MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE +#undef MBEDTLS_SSL_DTLS_CONNECTION_ID +#undef MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT From cd860dfe0290d21afd69bcc0cae18f8dc6a4d170 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 18 Aug 2022 16:23:05 +0100 Subject: [PATCH 0528/1574] bignum_mod: Added Montgomery constants This patch adds the Montgomery constants to the `mbedtls_mpi_mont_struct`. Signed-off-by: Minos Galanakis --- library/bignum_mod.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index c25eb8742..3b3338c2d 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -53,7 +53,11 @@ typedef struct size_t limbs; } mbedtls_mpi_mod_residue; -typedef void *mbedtls_mpi_mont_struct; +typedef struct { + mbedtls_mpi_uint const *rr; /* The residue for 2^{2*n*biL} mod N */ + mbedtls_mpi_uint mm; /* Montgomery const for -N^{-1} mod 2^{ciL} */ +} mbedtls_mpi_mont_struct; + typedef void *mbedtls_mpi_opt_red_struct; typedef struct { From 760f5d6b6b82767e0ce6e22a9e384161734bc2ea Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 11 Aug 2022 12:21:09 +0100 Subject: [PATCH 0529/1574] bignum_mod: Updated mbedtls_mpi_mod_modulus_setup/free with new fields At the current state, those fields are initialised to 0, NULL. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index f2c11a582..7cf1b012c 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,8 +77,8 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - mbedtls_free( m->rep.mont ); - break; + m->rep.mont.rr = NULL; + m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: mbedtls_free( m->rep.ored ); break; @@ -120,8 +120,8 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; - m->rep.mont = NULL; - break; + m->rep.mont.rr = NULL; + m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; m->rep.ored = NULL; From 8b3336331507ee2ccc49e3a13c73fde1820cff5a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 11 Oct 2022 11:28:24 +0100 Subject: [PATCH 0530/1574] bignum_mod: Updated modulus lifecycle with mm and rr. This patch updates the `mbedtls_mpi_mod_modulus_setup/free()` methods to precalculate mm and rr(Montgomery const squared) during setup and zeroize it during free. A static `set_mont_const_square()` is added to manage the memory allocation and parameter checking before invoking the `mbedtls_mpi_core_get_mont_r2_unsafe()` Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7cf1b012c..92c011cff 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,6 +77,9 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, + m->limbs ); + mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); m->rep.mont.rr = NULL; m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: @@ -93,6 +96,38 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } +static int set_mont_const_square( const mbedtls_mpi_uint **X, + const mbedtls_mpi_uint *A, + size_t limbs ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_mpi N; + mbedtls_mpi RR; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &RR ); + + if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) + goto cleanup; + + if ( !mbedtls_mpi_grow( &N, limbs )) + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + else + goto cleanup; + + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); + + *X = RR.p; + RR.p = NULL; + ret = 0; + +cleanup: + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); + ret = ( ret != 0 ) ? MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED : 0; + return( ret ); +} + int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, const mbedtls_mpi_uint *p, size_t p_limbs, @@ -120,8 +155,9 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; - m->rep.mont.rr = NULL; - m->rep.mont.mm = 0; break; + m->rep.mont.mm = mbedtls_mpi_core_montmul_init( m->p ); + set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); + break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; m->rep.ored = NULL; From dd365a526fc32cd688558e0c4aa9642f4670c97f Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 19 Oct 2022 01:48:32 +0100 Subject: [PATCH 0531/1574] test_suite_bignum: Updated `mpi_mod_setup()` test This patch updates the `mpi_mod_setup()` test suite to check for incosistencies in the montgomery constant data's lifecycle. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod.function | 30 ++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 9f7320965..8716f679a 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -17,20 +17,48 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; + const size_t mp_size = sizeof(mbedtls_mpi_uint); + mbedtls_mpi_uint * rr; int ret; - memset( mp, 0xFF, sizeof(mp) ); + memset( mp, 0xFF, mp_size ); mbedtls_mpi_mod_modulus_init( &m ); ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); TEST_EQUAL( ret, iret ); + /* Only test if the constants have been set-up */ + if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { + /* Test that the consts have been calculated */ + TEST_ASSERT( m.rep.mont.rr != NULL ); + TEST_ASSERT( m.rep.mont.mm != 0 ); + + /* Keep a copy of the memory location used to store Montgomery const */ + rr = (mbedtls_mpi_uint *)m.rep.mont.rr; + } + /* Address sanitiser should catch if we try to free mp */ mbedtls_mpi_mod_modulus_free( &m ); /* Make sure that the modulus doesn't have reference to mp anymore */ TEST_ASSERT( m.p != mp ); + /* Only test if the constants have been set-up */ + if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { + /* Reuse the allocated buffer for a zeroization check */ + memset( mp, 0x00, mp_size ); + + /* Verify the data and pointers allocated have been properly wiped */ + TEST_ASSERT( m.rep.mont.rr == NULL ); + TEST_ASSERT( m.rep.mont.mm == 0 ); + + /* mbedtls_mpi_mod_modulus_free() has set the + * (mbedtls_mpi_uint *)m.rep.mont.rr -> NULL. + * Verify that the actual data have been zeroed */ + ASSERT_COMPARE( rr, mp_size, &mp, mp_size ); + } exit: /* It should be safe to call an mbedtls free several times */ mbedtls_mpi_mod_modulus_free( &m ); From 771c47055f2b9db6762ab32dab36092952990573 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 12:22:22 +0100 Subject: [PATCH 0532/1574] bignum_mod: Style changes This patch addresses review comments with regards to style of `mbedtls_mpi_mod_modulus_setup/free()`. It also removes a test check which was triggering a use-after-free. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 9 +++++---- tests/suites/test_suite_bignum_mod.function | 7 ------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 92c011cff..705b2dbae 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -81,7 +81,8 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->limbs ); mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); m->rep.mont.rr = NULL; - m->rep.mont.mm = 0; break; + m->rep.mont.mm = 0; + break; case MBEDTLS_MPI_MOD_REP_OPT_RED: mbedtls_free( m->rep.ored ); break; @@ -110,11 +111,11 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) goto cleanup; - if ( !mbedtls_mpi_grow( &N, limbs )) - memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); - else + if ( mbedtls_mpi_grow( &N, limbs )) goto cleanup; + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); *X = RR.p; diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 8716f679a..2e0377a70 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -18,7 +18,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; const size_t mp_size = sizeof(mbedtls_mpi_uint); - mbedtls_mpi_uint * rr; int ret; memset( mp, 0xFF, mp_size ); @@ -34,8 +33,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) TEST_ASSERT( m.rep.mont.rr != NULL ); TEST_ASSERT( m.rep.mont.mm != 0 ); - /* Keep a copy of the memory location used to store Montgomery const */ - rr = (mbedtls_mpi_uint *)m.rep.mont.rr; } /* Address sanitiser should catch if we try to free mp */ @@ -54,10 +51,6 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) TEST_ASSERT( m.rep.mont.rr == NULL ); TEST_ASSERT( m.rep.mont.mm == 0 ); - /* mbedtls_mpi_mod_modulus_free() has set the - * (mbedtls_mpi_uint *)m.rep.mont.rr -> NULL. - * Verify that the actual data have been zeroed */ - ASSERT_COMPARE( rr, mp_size, &mp, mp_size ); } exit: /* It should be safe to call an mbedtls free several times */ From a380b06c26086e695345a04163c1d174c3eb7d20 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 27 Oct 2022 14:15:26 +0200 Subject: [PATCH 0533/1574] Add fake dependency to test CI Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_error.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_error.data b/tests/suites/test_suite_error.data index dec5639ee..65f0daa84 100644 --- a/tests/suites/test_suite_error.data +++ b/tests/suites/test_suite_error.data @@ -3,7 +3,7 @@ depends_on:MBEDTLS_AES_C error_strerror:-0x0020:"AES - Invalid key length" Single high error -depends_on:MBEDTLS_RSA_C +depends_on:MBEDTLS_RSA_C:MBEDTLS_ENTROPY_C error_strerror:-0x4080:"RSA - Bad input parameters to function" Low and high error From 66e05505b627c5a34799ff53f99540024d391d92 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 16:29:38 +0100 Subject: [PATCH 0534/1574] Support generating DER format certificates Signed-off-by: Dave Rodgman --- programs/x509/cert_write.c | 41 +++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 5a13f4e78..1f4b1a09a 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -69,6 +69,9 @@ int main( void ) #define USAGE_CSR "" #endif /* MBEDTLS_X509_CSR_PARSE_C */ +#define FORMAT_PEM 0 +#define FORMAT_DER 1 + #define DFL_ISSUER_CRT "" #define DFL_REQUEST_FILE "" #define DFL_SUBJECT_KEY "subject.key" @@ -93,6 +96,7 @@ int main( void ) #define DFL_SUBJ_IDENT 1 #define DFL_CONSTRAINTS 1 #define DFL_DIGEST MBEDTLS_MD_SHA256 +#define DFL_FORMAT FORMAT_PEM #define USAGE \ "\n usage: cert_write param=<>...\n" \ @@ -161,6 +165,7 @@ int main( void ) " ssl_ca\n" \ " email_ca\n" \ " object_signing_ca\n" \ + " format=pem|der default: pem\n" \ "\n" @@ -192,6 +197,7 @@ struct options unsigned char key_usage; /* key usage flags */ mbedtls_asn1_sequence *ext_key_usage; /* extended key usages */ unsigned char ns_cert_type; /* NS cert type */ + int format; /* format */ } opt; int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, @@ -201,19 +207,33 @@ int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, int ret; FILE *f; unsigned char output_buf[4096]; + unsigned char *output_start; size_t len = 0; memset( output_buf, 0, 4096 ); - if( ( ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096, - f_rng, p_rng ) ) < 0 ) - return( ret ); + if ( opt.format == FORMAT_DER ) + { + ret = mbedtls_x509write_crt_der( crt, output_buf, 4096, + f_rng, p_rng ); + if( ret < 0 ) + return( ret ); - len = strlen( (char *) output_buf ); + len = ret; + output_start = output_buf + 4096 - len; + } else { + ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096, + f_rng, p_rng ); + if( ret < 0 ) + return( ret ); + + len = strlen( (char *) output_buf ); + output_start = output_buf; + } if( ( f = fopen( output_file, "w" ) ) == NULL ) return( -1 ); - if( fwrite( output_buf, 1, len, f ) != len ) + if( fwrite( output_start, 1, len, f ) != len ) { fclose( f ); return( -1 ); @@ -292,6 +312,7 @@ int main( int argc, char *argv[] ) opt.subject_identifier = DFL_SUBJ_IDENT; opt.authority_identifier = DFL_AUTH_IDENT; opt.basic_constraints = DFL_CONSTRAINTS; + opt.format = DFL_FORMAT; for( i = 1; i < argc; i++ ) { @@ -508,6 +529,16 @@ int main( int argc, char *argv[] ) q = r; } } + else if( strcmp( p, "format" ) == 0 ) + { + if ( strcmp(q, "der" ) == 0 ) opt.format = FORMAT_DER; + else if ( strcmp(q, "pem" ) == 0 ) opt.format = FORMAT_PEM; + else + { + mbedtls_printf( "Invalid argument for option %s\n", p ); + goto usage; + } + } else goto usage; } From 4d4c98b1b959a2f1ac270806cfa36d849d286889 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 15:58:02 +0100 Subject: [PATCH 0535/1574] bignum_mod: `mbedtls_mpi_mod_modulus_setup()` refactoring. This patch addresses more review comments, and fixes a circular depedency in the `mbedtls_mpi_mod_modulus_setup()`. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 28 +++++++++++++-------- tests/suites/test_suite_bignum_mod.function | 7 +----- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 705b2dbae..60c073ac4 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -77,10 +77,13 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) switch( m->int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, - m->limbs ); - mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); - m->rep.mont.rr = NULL; + if (m->rep.mont.rr != NULL) + { + mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, + m->limbs ); + mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); + m->rep.mont.rr = NULL; + } m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: @@ -104,6 +107,7 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi N; mbedtls_mpi RR; + *X = NULL; mbedtls_mpi_init( &N ); mbedtls_mpi_init( &RR ); @@ -111,16 +115,18 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) goto cleanup; - if ( mbedtls_mpi_grow( &N, limbs )) + if ( mbedtls_mpi_grow( &N, limbs ) ) goto cleanup; - memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); - mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); + ret = mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); - *X = RR.p; - RR.p = NULL; - ret = 0; + if ( ret == 0 ) + { + *X = RR.p; + RR.p = NULL; + } cleanup: mbedtls_mpi_free(&N); @@ -157,7 +163,7 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; m->rep.mont.mm = mbedtls_mpi_core_montmul_init( m->p ); - set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); + ret = set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 2e0377a70..ad89bdf3e 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -17,10 +17,9 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; - const size_t mp_size = sizeof(mbedtls_mpi_uint); int ret; - memset( mp, 0xFF, mp_size ); + memset( mp, 0xFF, sizeof(mp) ); mbedtls_mpi_mod_modulus_init( &m ); ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); @@ -44,13 +43,9 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) /* Only test if the constants have been set-up */ if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) { - /* Reuse the allocated buffer for a zeroization check */ - memset( mp, 0x00, mp_size ); - /* Verify the data and pointers allocated have been properly wiped */ TEST_ASSERT( m.rep.mont.rr == NULL ); TEST_ASSERT( m.rep.mont.mm == 0 ); - } exit: /* It should be safe to call an mbedtls free several times */ From 683850b416bb7dbf6ecf102274c67e5c13ea5076 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:24:46 +0100 Subject: [PATCH 0536/1574] Update tests/suites/test_suite_ecdsa.function Co-authored-by: Gilles Peskine Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index b1a1611fb..d5959d5dc 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -479,9 +479,7 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * mbedtls_mpi_init( &sig_s ); /* Prepare ECP group context */ - curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); - TEST_ASSERT( curve_info != NULL ); - TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, curve_info->grp_id ), 0 ); + TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, grp_id ), 0 ); /* Prepare public key */ TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.X, x ), 0 ); From 5d13e5e568aed78745b0e2d4552e25f65c369c6f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:34:21 +0100 Subject: [PATCH 0537/1574] Improve changelog for ECDSA verify fix Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt index 6dbd4702e..166f91ecb 100644 --- a/ChangeLog.d/ecdsa-verify-fixes.txt +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -1,5 +1,5 @@ Bugfix - * Fix ECDSA verification, where it was failing to validate the public key - for signatures where R == 1 and S == 1. This bug meant that it was - possible to verify such signatures with an invalid public key, in some - cases. + * Fix ECDSA verification, where it was not always validating the + public key. This bug meant that it was possible to verify a + signature with an invalid public key, in some cases. Reported by + Guido Vranken in #4420. From ce48c92c6c2291faddf28409341d38820faf7b75 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 27 Oct 2022 20:36:47 +0100 Subject: [PATCH 0538/1574] Credit Cryptofuzz in the changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/ecdsa-verify-fixes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt index 166f91ecb..b41b0461a 100644 --- a/ChangeLog.d/ecdsa-verify-fixes.txt +++ b/ChangeLog.d/ecdsa-verify-fixes.txt @@ -2,4 +2,4 @@ Bugfix * Fix ECDSA verification, where it was not always validating the public key. This bug meant that it was possible to verify a signature with an invalid public key, in some cases. Reported by - Guido Vranken in #4420. + Guido Vranken using Cryptofuzz in #4420. From 0c61a749b79663e2445e2da7884041badf4c80c4 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 27 Oct 2022 18:20:33 +0100 Subject: [PATCH 0539/1574] test_suite_bignum_mod_raw: Removed parameter for `mbedtls_mpi_mod_modulus_setup()` This patch updates the tests `mpi_mod_raw_cond_swap()` & `mpi_mod_raw_cond_assign()` to use a non-zero modulus when invoking `mbedtls_mpi_mod_modulus_setup()` Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod_raw.function | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 88b891780..7c9d5dbe4 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -134,6 +134,7 @@ void mpi_mod_raw_cond_assign( data_t * input_X, ASSERT_ALLOC( Y, limbs ); ASSERT_ALLOC( buff_m, limbs ); + memset( buff_m, 0xFF, copy_bytes ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, @@ -214,6 +215,7 @@ void mpi_mod_raw_cond_swap( data_t * input_X, ASSERT_ALLOC( tmp_Y, limbs ); ASSERT_ALLOC( buff_m, copy_limbs ); + memset( buff_m, 0xFF, copy_bytes ); TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, From 84645e92c61d91e2ee8b40053cb83336a77e33a9 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Thu, 27 Oct 2022 10:17:09 +0800 Subject: [PATCH 0540/1574] Simplify code of adding output in ssl_client2 - print build version macro defined in build_info.h directly - Remove all the MBEDTLS_VERSION_C guards as build version information is always available in build_info.h Signed-off-by: Yanray Wang --- programs/ssl/ssl_client2.c | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index e74656ee7..e3fdb1f7c 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -25,10 +25,6 @@ #include "test/psa_crypto_helpers.h" #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_VERSION_C) -#include "mbedtls/version.h" -#endif /* MBEDTLS_VERSION_C */ - #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) int main( void ) { @@ -364,14 +360,6 @@ int main( void ) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES "" #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_VERSION_C) -#define USAGE_BUILD_VERSION \ - " build_version=%%d default: none (disabled)\n" \ - " option: 1 (print the build version only a stop)\n" -#else -#define USAGE_BUILD_VERSION "" -#endif /* MBEDTLS_VERSION_C */ - /* USAGE is arbitrarily split to stay under the portable string literal * length limit: 4095 bytes in C99. */ #define USAGE1 \ @@ -387,8 +375,9 @@ int main( void ) " application data message is sent followed by\n" \ " a second non-empty message before attempting\n" \ " to read a response from the server\n" \ - USAGE_BUILD_VERSION \ " debug_level=%%d default: 0 (disabled)\n" \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print build version only and stop)\n" \ " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ " event=%%d default: 0 (loop)\n" \ @@ -995,20 +984,16 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } -#if defined(MBEDTLS_VERSION_C) else if( strcmp( p, "build_version" ) == 0 ) { if( strcmp( q, "1" ) == 0 ) { - char version_str[10]; - memset( version_str, 0, 10 ); - mbedtls_version_get_string( version_str ); - mbedtls_printf( "build version: %s (build %u)\n", - version_str, mbedtls_version_get_number() ); + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER ); goto exit; } } -#endif /* MBEDTLS_VERSION_C */ else if( strcmp( p, "context_crt_cb" ) == 0 ) { opt.context_crt_cb = atoi( q ); @@ -1721,13 +1706,8 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ -#if defined(MBEDTLS_VERSION_C) - char version_str[10]; - memset( version_str, 0, 10 ); - mbedtls_version_get_string( version_str ); - mbedtls_printf( "build version: %s (build %u)\n", - version_str, mbedtls_version_get_number() ); -#endif /* MBEDTLS_VERSION_C */ + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); /* * 0. Initialize the RNG and the session data From eaf46d1291d57ed36d31cf14ca61edf5505b9972 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 28 Oct 2022 10:38:37 +0800 Subject: [PATCH 0541/1574] Add output of build version in ssl_server2 Usage: - By default, build version is printed out in the beginning of ssl_server2 application. - ./ssl_server2 build_version=1 only prints build verison and stop Signed-off-by: Yanray Wang --- programs/ssl/ssl_server2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1fd63d2d0..7aead3ade 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -489,6 +489,8 @@ int main( void ) " server_addr=%%s default: (all interfaces)\n" \ " server_port=%%d default: 4433\n" \ " debug_level=%%d default: 0 (disabled)\n" \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print build version only and stop)\n" \ " buffer_size=%%d default: 200 \n" \ " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ @@ -1745,6 +1747,16 @@ int main( int argc, char *argv[] ) if( opt.debug_level < 0 || opt.debug_level > 65535 ) goto usage; } + else if( strcmp( p, "build_version" ) == 0 ) + { + if( strcmp( q, "1" ) == 0 ) + { + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER ); + goto exit; + } + } else if( strcmp( p, "nbio" ) == 0 ) { opt.nbio = atoi( q ); @@ -2576,6 +2588,9 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ALPN */ + mbedtls_printf( "build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); + /* * 0. Initialize the RNG and the session data */ From ad9e99bd2ea52b32f0b62ed55d8b6781c88be272 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 28 Oct 2022 12:18:52 +0800 Subject: [PATCH 0542/1574] fix session resumption fail when hostname is not localhost Change-Id: Icb2f625bb11debb5c7cae36e34d7270f7baae4d5 Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 12 +++++++----- tests/ssl-opt.sh | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 80862f96a..d183c6633 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -83,6 +83,7 @@ int main( void ) #define DFL_RECSPLIT -1 #define DFL_DHMLEN -1 #define DFL_RECONNECT 0 +#define DFL_RECO_SERVER_NAME NULL #define DFL_RECO_DELAY 0 #define DFL_RECO_MODE 1 #define DFL_CID_ENABLED 0 @@ -403,8 +404,8 @@ int main( void ) USAGE_RENEGO \ " exchanges=%%d default: 1\n" \ " reconnect=%%d number of reconnections using session resumption\n" \ - " default: 0 (disabled)\n" \ - " reco_server_name=%%s default: localhost\n" \ + " default: 0 (disabled)\n" \ + " reco_server_name=%%s default: NULL\n" \ " reco_delay=%%d default: 0 seconds\n" \ " reco_mode=%%d 0: copy session, 1: serialize session\n" \ " default: 1\n" \ @@ -921,7 +922,7 @@ int main( int argc, char *argv[] ) opt.recsplit = DFL_RECSPLIT; opt.dhmlen = DFL_DHMLEN; opt.reconnect = DFL_RECONNECT; - opt.reco_server_name = DFL_SERVER_NAME; + opt.reco_server_name = DFL_RECO_SERVER_NAME; opt.reco_delay = DFL_RECO_DELAY; opt.reco_mode = DFL_RECO_MODE; opt.reconnect_hard = DFL_RECONNECT_HARD; @@ -1118,7 +1119,7 @@ int main( int argc, char *argv[] ) if( opt.reconnect < 0 || opt.reconnect > 2 ) goto usage; } - else if( strcmp( p, "rec_server_name" ) == 0 ) + else if( strcmp( p, "reco_server_name" ) == 0 ) opt.reco_server_name = q; else if( strcmp( p, "reco_delay" ) == 0 ) { @@ -3113,7 +3114,8 @@ reconnect: } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ( ret = mbedtls_ssl_set_hostname( &ssl, + if( opt.reco_server_name != NULL && + ( ret = mbedtls_ssl_set_hostname( &ssl, opt.reco_server_name ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index e2f9206ec..eff37df82 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13018,7 +13018,7 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=4 \ sni=localhost,data_files/server2.crt,data_files/server2.key,-,-,-,polarssl.example,data_files/server1-nospace.crt,data_files/server1.key,-,-,-" \ - "$P_CLI debug_level=4 server_name=localhost rec_server_name=remote reco_mode=1 reconnect=1" \ + "$P_CLI debug_level=4 server_name=localhost reco_server_name=remote reco_mode=1 reconnect=1" \ 1 \ -c "Protocol is TLSv1.3" \ -c "got new session ticket." \ From c3a7fa386e0c8098207cb3b959a4550c51ebd159 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 28 Oct 2022 12:38:33 +0800 Subject: [PATCH 0543/1574] Update output message when certification verified fail Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index d183c6633..11c3ccc26 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2240,7 +2240,10 @@ int main( int argc, char *argv[] ) " or you didn't set ca_file or ca_path " "to an appropriate value.\n" " Alternatively, you may want to use " - "auth_mode=optional for testing purposes.\n" ); + "auth_mode=optional for testing purposes if " + "server is not TLS 1.3.\n" + " For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`" + "or other folder that has root certificates\n" ); mbedtls_printf( "\n" ); goto exit; } From f00466e2e06b18f12b790d8ac69f138742c6dc54 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 09:22:28 +0100 Subject: [PATCH 0544/1574] Build fix - remove line of dead code Signed-off-by: Dave Rodgman --- tests/suites/test_suite_ecdsa.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index d5959d5dc..28351e229 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -472,7 +472,6 @@ void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * { mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; - const mbedtls_ecp_curve_info *curve_info; mbedtls_ecdsa_init( &ctx ); mbedtls_mpi_init( &sig_r ); From 169ae4f528244653eb6629351c4eeab4932ac30c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:24:29 +0100 Subject: [PATCH 0545/1574] Add Changelog entry Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/cert_write-set-extended-key-usages.txt diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt new file mode 100644 index 000000000..5843d9e70 --- /dev/null +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -0,0 +1,4 @@ +Features + * cert_write: support for setting extended key usage attributes. + * cert_write: support for writing certificate files in either PEM + or DER format. From d7dfc0922efc8211a511710482418240b18eb07f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:38:05 +0100 Subject: [PATCH 0546/1574] Update Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt index 5843d9e70..02bc8013c 100644 --- a/ChangeLog.d/cert_write-set-extended-key-usages.txt +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -1,4 +1,6 @@ Features - * cert_write: support for setting extended key usage attributes. + * cert_write: support for setting extended key usage attributes. A + corresponding new public API call has been added in the library, + mbedtls_x509write_crt_set_ext_key_usage. * cert_write: support for writing certificate files in either PEM or DER format. From b3166f4b2f9577aeb04afba02062d61d6b1c1334 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 28 Oct 2022 11:39:04 +0100 Subject: [PATCH 0547/1574] Update Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/cert_write-set-extended-key-usages.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt index 02bc8013c..18b7b040d 100644 --- a/ChangeLog.d/cert_write-set-extended-key-usages.txt +++ b/ChangeLog.d/cert_write-set-extended-key-usages.txt @@ -1,6 +1,6 @@ Features * cert_write: support for setting extended key usage attributes. A corresponding new public API call has been added in the library, - mbedtls_x509write_crt_set_ext_key_usage. + mbedtls_x509write_crt_set_ext_key_usage(). * cert_write: support for writing certificate files in either PEM or DER format. From 73621ef0f08951885b321f0b9964203ae04c9fb5 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 28 Oct 2022 11:23:15 -0500 Subject: [PATCH 0548/1574] pkcs7: Improve verify logic and rebuild test data Various responses to feedback regarding the pkcs7_verify_signed_data/hash functions. Mainly, merge these two functions into one to reduce redudant logic [1]. As a result, an identified bug about skipping over a signer is patched [2]. Additionally, add a conditional in the verify logic that checks if the given x509 validity period is expired [3]. During testing of this conditional, it turned out that all of the testing data was expired. So, rebuild all of the pkcs7 testing data to refresh timestamps. [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r999652525 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r997090215 [3] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r967238206 Signed-off-by: Nick Child --- library/pkcs7.c | 87 +++++++----------- tests/data_files/pkcs7-rsa-sha256-1.crt | 32 +++---- tests/data_files/pkcs7-rsa-sha256-1.der | Bin 845 -> 845 bytes tests/data_files/pkcs7-rsa-sha256-1.key | 52 +++++------ tests/data_files/pkcs7-rsa-sha256-1.pem | 84 ++++++++--------- tests/data_files/pkcs7-rsa-sha256-2.crt | 32 +++---- tests/data_files/pkcs7-rsa-sha256-2.der | Bin 845 -> 845 bytes tests/data_files/pkcs7-rsa-sha256-2.key | 52 +++++------ tests/data_files/pkcs7-rsa-sha256-2.pem | 84 ++++++++--------- .../data_files/pkcs7_data_cert_encrypted.der | Bin 452 -> 452 bytes .../pkcs7_data_cert_signed_sha1.der | Bin 1276 -> 1276 bytes .../pkcs7_data_cert_signed_sha256.der | Bin 1284 -> 1284 bytes .../pkcs7_data_cert_signed_sha512.der | Bin 1284 -> 1284 bytes .../data_files/pkcs7_data_cert_signed_v2.der | Bin 1284 -> 1284 bytes .../pkcs7_data_cert_signeddata_sha256.der | Bin 1265 -> 1265 bytes .../pkcs7_data_multiple_certs_signed.der | Bin 2504 -> 2504 bytes .../data_files/pkcs7_data_multiple_signed.der | Bin 810 -> 810 bytes .../data_files/pkcs7_data_signed_badcert.der | Bin 1284 -> 1284 bytes .../pkcs7_data_signed_badsigner.der | Bin 1284 -> 1284 bytes .../pkcs7_data_without_cert_signed.der | Bin 435 -> 435 bytes .../pkcs7_signerInfo_issuer_invalid_size.der | Bin 1284 -> 1284 bytes .../pkcs7_signerInfo_serial_invalid_size.der | Bin 1284 -> 1284 bytes 22 files changed, 200 insertions(+), 223 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index c4d605e00..56b6bb617 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -623,12 +623,12 @@ out: return( ret ); } -int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, - const mbedtls_x509_crt *cert, - const unsigned char *data, - size_t datalen ) +static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen, + const int is_data_hash ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *hash; mbedtls_pk_context pk_cxt = cert->pk; @@ -642,6 +642,14 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, goto out; } + if( mbedtls_x509_time_is_past( &cert->valid_to ) || + mbedtls_x509_time_is_future( &cert->valid_from )) + { + printf("EXPRED\n"); + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + goto out; + } + /* * Potential TODOs * Currently we iterate over all signers and return success if any of them @@ -676,8 +684,17 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; goto out; } - - ret = mbedtls_md( md_info, data, datalen, hash ); + if( is_data_hash ) + { + if( datalen != mbedtls_md_get_size( md_info )) + ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + else + memcpy(hash, data, datalen); + } + else + { + ret = mbedtls_md( md_info, data, datalen, hash ); + } if( ret != 0 ) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; @@ -688,7 +705,6 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, mbedtls_md_get_size( md_info ), signer->sig.p, signer->sig.len ); - mbedtls_free( hash ); if( ret == 0 ) @@ -698,59 +714,20 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, out: return( ret ); } +int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen ) +{ + return( mbedtls_pkcs7_data_or_hash_verify( pkcs7, cert, data, datalen, 0 ) ); +} int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *hash, size_t hashlen ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const mbedtls_md_info_t *md_info; - mbedtls_md_type_t md_alg; - mbedtls_pk_context pk_cxt; - mbedtls_pkcs7_signer_info *signer; - - pk_cxt = cert->pk; - - if( pkcs7->signed_data.no_of_signers == 0 ) - { - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - goto out; - } - - signer = &pkcs7->signed_data.signers; - for( signer = &pkcs7->signed_data.signers; signer; signer = signer->next ) - { - ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); - if( ret != 0 ) - { - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - continue; - } - - md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - { - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - continue; - } - - if( hashlen != mbedtls_md_get_size( md_info ) ) - { - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - signer = signer->next; - continue; - } - - ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, hashlen, - pkcs7->signed_data.signers.sig.p, - pkcs7->signed_data.signers.sig.len ); - if( ret == 0 ) - break; - } - -out: - return( ret ); + return( mbedtls_pkcs7_data_or_hash_verify( pkcs7, cert, hash, hashlen, 1 ) ); } /* diff --git a/tests/data_files/pkcs7-rsa-sha256-1.crt b/tests/data_files/pkcs7-rsa-sha256-1.crt index ebbaf7cc6..9e461cd0c 100644 --- a/tests/data_files/pkcs7-rsa-sha256-1.crt +++ b/tests/data_files/pkcs7-rsa-sha256-1.crt @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIDSTCCAjGgAwIBAgIUMBERfOWtW1Y8Y661YJt3KlBYYZ0wDQYJKoZIhvcNAQEL +MIIDSTCCAjGgAwIBAgIUe97d0kRM0c3+XEGoECyJt98ubL8wDQYJKoZIhvcNAQEL BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT -NyBDZXJ0IDEwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +NyBDZXJ0IDEwHhcNMjIxMDI4MTYxMDU2WhcNMjMxMDI4MTYxMDU2WjA0MQswCQYD VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMfqRyKXRqfkj/BThWvwcKfv -qsTiZmVOE6sIusfY86qae4Yv8R8AaBgA3eYbSOat/Xyr3VFgZGtv9Hc8iDM7K1h9 -U9WBKPGN1gGw12LzAxIbf+t5qkH21YtPNkr7liwJruhTh/JLypKE/SVW1XIS47PE -Ug92emsRMKfgsReO7x/EmB/c5cnXfwnrc+DKog2eB+6eIPhq2uq0g+/bV8hkx8+D -N50Qq1OMdy0s/RXeurlYG72jhpj978eOq467vUIIxyD4ggsh9f3ZMOEGFlGjSiZL -CXTgbIbwXnndamf3iqWWN5ZiDH6NVP1UTfCvxvX4HfBE928z0OXu4k7QxNaboEEC -AwEAAaNTMFEwHQYDVR0OBBYEFF1d36HSc95cdyWYy/SRZPsmWncJMB8GA1UdIwQY -MBaAFF1d36HSc95cdyWYy/SRZPsmWncJMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI -hvcNAQELBQADggEBAIqAZJRQFPL8GFpxp0ZjF4vSiKX/D0/+LJB+vei4ZGZMaqRo -afT9LBAquK1JjXYXJ9wz56ueVxggouVLb6XTrAwsHISwVxKzxkmBde2egPZ9L7tw -EJdb2YPAkdoi3fY259N6KS8S0MwMMi/YmiXpVpQiPQ5tQFdbT9oSqewi/C7TudFc -hez1M7ToYfbMaZ1yQxf5otT8wKVKhLdEb9ncE2Jku6eH+5+lcVFsliLcNo28bd0c -joRYufduegaxmFluq4YWCozgET38AFKiG9Y8fK34He/qJIwHn7nWJ3cy3j+NAh3X -gpobw4JhCNXaInaNx/BZsoedjXnkunhgRijykOU= +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMi2z2mJnNHw67TKZFwF5w4N +Lv7dzGHQicvVFaOaNXm5I0O2HsdQBg+07TeHYzJADkJfHTdsfnXClzMU7fS7MMj4 +3QO5/P+VWiRdSRN61uYAVsrBlVKoZdUhhxh8wELJxJ4+OpwXpTS0U82rwMsRO09j +9bMXS57pkCsZENEUlqJ5p0Mmrc/uEL/Z5+uvuzd76bY5WRZdE91XURccra08HTra +xovIAR1htUz2AXi+NoOaiayRq0GePKN9a6iB0lUYxNtovKb3yDYC9pmoaxf7Hnc7 +y+dLuTpJslGuhkKLV0Dhhoux1vq54ocS6Y7DGa2Pyk1zAQxLCcS4BFiWHnzwg1MC +AwEAAaNTMFEwHQYDVR0OBBYEFIru5ZR8xnxd1RWnbip+zTHuUv3IMB8GA1UdIwQY +MBaAFIru5ZR8xnxd1RWnbip+zTHuUv3IMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAIIda5jNRX3r0rCBrKJ+vs1Pk6zIKEQ7Oeq/+p+k6eRUO0b8 +wx4rW0gXeQPeppaaxKLMZXBlA5DxsI1DpML5dcfti/M1bHIYOAISRRqPEd5GVTy8 +1ltCVN249mg06yHdoqjzO1geFIRVesoblO6JMd3xYDe3pxcTIakZNq/Cf/zjld51 +1fcMuLWu4F/1BwiNZa8eQ5Zs1Cy+b3+s+NrgVd2CIrFpZSFyP4EkUXhZXJha6Rf9 +SzmYdz4al7e9EAhURvQlm8wJpFSSkoLBuJtx7Vh6d14KPUU2NB9F2ulp6AbJb+/H +EGd3bAK6IhIrkZmxTAwowESHUJBwuX890tbZcnM= -----END CERTIFICATE----- diff --git a/tests/data_files/pkcs7-rsa-sha256-1.der b/tests/data_files/pkcs7-rsa-sha256-1.der index 622df1e7a38899b4da3a3601badd4fb36a333238..0d799ea335a51b79ecc1f0b50037469ab0b69ade 100644 GIT binary patch delta 668 zcmV;N0%QHn2F(T|FoFX~FoFUxpaTK{0s<6!-rdqfOwrB$TtTQ1EQz<@E^NP%BT5=F zF)%VXF*Y$UH8xro4Kgz^FfuqXHZd?YHj#%|f5^7aX^EWC@awe7WLyR34h=5;-OORo ziOba$qnb5&xg$fi9>-7y547z!hhs884nkiYH*9`&!k04??ex1a$oSm@x%~f?S|nXb z6MEL>09MMul~Sl>)ggx%e857<#GXDnoEN1uv{TKiz{?RkPh<777fYV$kSiGw(G-@V ze|e`vCaurz5Wm^y>#w^vd+D}0Sr%Or-B(c;9IdT99Xi^^i^u^TVYN*50eHSPgPMt~ zk*h(TJfnSUsDaW|7{uFXyr%caHUjpUsB0Jd9(Oy-=S#UdNwQI{hC+*1K;edqvDW&z z;)fFHj>8$PkIGGR0SrqC#JB`lmL7cYOM_Da0|5X5qf;(a1+tfGFt%}}eU-MIE>H0vSVqNwvbSRNFF zReH)BlIx2G2qA*mTQufl))f8&+jb=CI_xV5g}U-btFjb*PMLzZmREWU4l ztoYjCRo#Ljv1w%?azBA2QFvKgm|E!<{YyERcRm`Ix4jSuR7UhAo6HHMRFaZ{!MK}o z?O1wuUJ5-$HZ&ha+UaTN2FY*l#}H?CYy!F>5-X9Ju}lmoz(j{okZ`$wJ<`_M0&;Vx C%{4m! delta 668 zcmV;N0%QHn2F(T|FoFX~FoFUxpaTK{0s<5;5fOalty@++W3IJen|CTuSYe%!BT5=D zF)=bUF*GqSF*#Zn4Kgt?F)}nUG%+wSIgy80f5+-aB9}&|a>IJ+gHeB$IpW|oe-;2jCU<8{T1H2xmX*$ zqlTFM@5hd-j=Q}=2*)7!f(s$_{n;?#1{P7HN+wGQbl_};@LqY{YG?O~rIt6AVhnzb zRQ*&<@UO=8_#N;>_ir=MNsV?FC)_jV ztDaXFAfn|7_$3@jXkuvZeZ#z}#7?Vf=4eJ{Ik5SLrogTRs6BHi{j=hJ#AFA~tq z3^Fg+nkDI0lp;M2Z9rFBPudcx>>~Uwf77|qT!rlQGqmVo_RMLWazhvSqSXArrAmai zL~q&L6Jlh$r-%EWrEyVgmLl9Xjl6B$9FBxox%X~*2CWRn`p9`k1(lnM_&)G{uK8UvQQ1q%$k4#Z z!qCjnz|<^CoY%-0!JXJ1QGar(>9mr6%Y}c*KMlFOui@X$DK5c&&jYT{sBtuUoUx+t zsmf%%>M1R@%DP+X=JE3zE%*HR_(_UK>F=G3z8w6lU?)-B_gMb0o$C3MB~rf%HExUE z-R@8*6lByjGuES5@y?5#(MR7`-L_K@EK^otR;k<9*c>shVC{ivg&YrJ88@=mA9{L& z;UT-+txo+y>xD_&$G2>&3%DnfJ(ugSm&NXh5oPhV8U`(ojWa(Sn{^~%&wX*82mIly z3_qoB+ji&!lV4=FbJl+0C%*rW92b09k^E-;=TznXq*p848ZIx-_q^O+x^VM1Q^~AX zjfc0~*^xN)+^#q29`+kbPtD^GUN(IpWBhUNHB*_G85tNC2O9($$g(kq%JQ*@v554! zhV72mXTI*@5_2;2*9y`6y7oK+d62X+i-dt#16Bo-HJDWEm!w|i5EOhjkMVY=XI%W| zhccJWuG*aG?zFo8!o(KEZH{a=rB;Wse^KHwV6W2LtI|GksjBUoHvS`wtt+}N8_c^Y z=i2ggex}(Ux#ZpQQ=a^&kXP83dADs)rdar(OAN_czfyN?u*XLhZlJUIu%w zM;tEc!Q6SGj1dZ#o$3qsm^dDNwZ{4K)AIJ&&8_*X4yn)8O4Cp`tj%$4nQ6}~FRlGM z^iSq%I~|>Ud$#u9ym|83C1oX(>;IY$Oxczun7(1-CYwS(hTz;q87E5l7StzwJ+xM< zBe|>p(_UpmU#ep`eve*dYMG=kecuWIcTFeT delta 668 zcmV;N0%QHn2F(T|FoFX~FoFUxpaTK{0s<6Cy!juc+$grNQ8zCP?2_`mKgV!rV%e4I{`4p#D%T)>6x_|cAxJle2yhu%qExiH ze?R~zl=8Xz@}BYYHKsME{8ia79|i+e9U}x7FcyFm*K)AFuurOgC=T%b=jj6_`}|eelPCfu zf1#4a8|W|LX$ykwi9P~}?sv$kb0I3eWW;!Qd9?&oqIMx~YMJfEKV;OB2$VeAX|+Tp z+`c=(Gm4s&G*?fPFNCIcQ=Wv^ic@Z|@%9yOk?Nx{Ua;lh%q>ZY$JHDpj9;>ijI5`s zUB+*qucfZUO7sD}D~MppfBs#Tzh(q1(AA!YaiCOLDH=h)%N5M4RgoDg z#eQmp#I diff --git a/tests/data_files/pkcs7-rsa-sha256-2.key b/tests/data_files/pkcs7-rsa-sha256-2.key index 6226f8ad4..659c01566 100644 --- a/tests/data_files/pkcs7-rsa-sha256-2.key +++ b/tests/data_files/pkcs7-rsa-sha256-2.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDeLQBIvG/mRNzi -Lr/dVnbolKkEFz6jDZ3U490N4cXeQr2Amd3QKGEDnTzrRlsS3vPc6alCP0qfIUqQ -jsNLnIMQnvemoacfwVbzBugWm7cUl1mJhr9KyZhRNy8M7JLyvT/HcGhi2ZXq/vQo -IyrXIH4U3M28IUg3hwhwGVqiVLS6QAAolPK5+/Ke8fM1qFFLJ7VIkwssNUgh7yIR -j3gm0+EFV2DcSD9h+drO8Gh6rRy6RrSUrEsU8X28XJmzEJaw2mP/AKy8aNlSqrxi -b/dCA42xsjkR0TDrsccY6MAvfsh+MbVUZfNtXbCRUkp5gBAV2rN4ZJ3hVQcYke71 -H+tVr++tAgMBAAECggEANzztAyiGkbOxTzLcVQV4Tt8XHoNA+X0bLqDwhtEJRvdE -8kJPGb/QTvu696voXMq9ysD1ahkeTm4Sgdpcx+HD3FAJto4eZRDGs2mWLnjMjfwL -MNwll0yD6D1WH1p6NovC3a0e5uS+F00IGyqTLiVP85PqOsnzkIqsGGLVW+K/hEaK -lRqKEf5tYzkdmlay8SfJQf03TuJVFp6qAgG/gH2EkGR/B4SLotXYDNXLFAzlx/N3 -QXHRIKhYOcvznbJ7Doww+nCyO613cUeZ1t3/22QRC3Vm8WMaYzxivGoMzmGM2YqI -MtUG+zXm4if9+MmT0CQ3meWLYwkIbFax6/6DLS6iKQKBgQD4EU4CEEjCsnYm7668 -0THvkcEsOTvSKroLYPKsuUbeoBfCvK4/o6kb2dQbR9c8MnHAJ8yN9gMbuP/njPUu -G9/sycI3uDRYpsQDeBcD74NtCAKqB1s7kcucMzxudwAqw/jJCJxyPqGiS8HJGQRO -sQMtBkvQx9RqKKagAgCWwaiLQwKBgQDlR76cQN3GSVRZfsA2rqTyZo8b4ECSEu0O -4vSQ0i5xMWp8uJLRBxktRYYCMfzH6dHDG+GNYearolOHm7BfC3QUH2EC6kE2D/9P -A40JrF7QEkDRtQ2rmNOQ2diLB1wYQiqRJieuXVIIzaRcyenRxP6ec2YMmHl9FaPh -dmYzjtDSTwKBgFr2/YQENKowhuMAQTM8AvO2nv94fVc0E8TYaCSuTC6Wxh/C0KLF -gN2VoxHd5i9M0CmGbpwf+kPQMwbVyZJ+5j4OPgnwokFf5cDf6JCo46i3p0JyMCJH -9EHzB9X6DTWhZzlQzw2Vqe+5l/YGFm5EusVn6aVFob7L6U4DbfPaT9PBAoGAD1Hi -55fh+azOqQgyGbVDqjq2Fzu9tMT0+AisJL0Wg1O09M50aOkbgo3hrWXfqQ/zhyDm -ykafXhqDkE0T1NX0FKAgIEy8vLsG6SWol9vfnfGKSTjax/t3L3eO44NDYQ+Svo4Z -Gqp7n8D12YlYST7rcHTvfan2fCglAhyiKZHCXDsCgYEA0BeqGpJ6Oz6O8g61JixG -EryjO2cCnQLWlwlal40L63wY5tNDCixuDM6zJFq/tT9DYMuNANrfsqWU2ImKTNPE -kwlMgP813aPXREgyV3ylL4KLusfDF6hqPtDcU2QK05LuTX7puHwi0pR8jAmPzrng -Y2ncNnRJI7vczDETaW1vuoE= +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJlTWWdP6nE/of +5VTTvoD+uZREU07nUNeYfEEy42ioceUkky57lIQ9Iy20fp4PDzKnSfHj5GRIdfu5 +ovTB8yA+GHOO4x/DPiXPyXQa+nEo2xXdt0BxElIyipldSI0h3Oi5W8Xvets+IBF2 +IyQDJH6+gYNYnnCtwJZxCOBdAbEHwuXYAOEHHtqJL3E7oWILx7S2flDeHGudCsNK +OLuRWHZfPSgwhOMzafDGmsRgvN8XDOAPV6ox8me2tsLwAk5Zi0NqvxPkTf/ExxHp +eGPsr/NlI49i6qhGgNOnb0nTj3Whs/Y1GWrqgcO03Lhhlc667GdIP7B1yp4PU6aX +oQFfx6yVAgMBAAECggEBAMVHm3w134qQCHfyroPTqtaftDTx+wRyn6yB3iT5XdGM +NZ8H07Pp80kKBo7gY7uFOiNyQKKxQFuR69sPWc3+LI3YzC8IpGslhUfHdjN46gn7 +73hfAVgnf/4qmlEq0cRUOAY/hIUMjUhNhglB9tqEeu3iPjMaTFgfZJwW/czH/QMD +w4zj5XoLgwRkqVvUceu/dBgV8KP5DpON+q8wpfWtjunv7rg5Nc3BVBrpb5SadJ7T +i5TsS+pZQyp+mTvyCI3A1hkr2Vw5tULWO8SPhuEQkdtC/CL+luCUO7L16lU6KhFB +qP5Fduik5skyLCVvAMUkjKcrC22k0gkhOHvfmMhjaAECgYEA68+hAQIiV9ErZGk9 +ZLu+VJHBSPmEQCkUcbviwzoRo8YSyka12TZERy+NJcvmD9deNgFbp8GyZf01XJWH +slSYt6LyInrJrTpv+3q2Vl5GQp0f+39i7MHnwGGKbWsDbSAm+L9yKTJzYJz1O5fo +in06AiyyGPwnXd1cm5bTXVX+dQECgYEA2tdi6DXF8awE23pv4HphPBhXS5hmYP/D +NC7CtP8wQsxjPdiIxkBFFVEaFCC2njq1VhTyJb5noJM4kOIwcoaQ/zgyyxQa0u7w ++CqvAh1WwG+sT/B7vivrtDmmYeyGQapFo5DRIz+MflKAhzDhtnEyT9vLuCdn8J95 +0YvxZJ9+k5UCgYEAh+e7SER9nJUt6AoLWyIlGMKEXlWIFh5W7RG3KIMwJW6D59aG ++fAfu9M5Cx6PsnOSlZeExpOJCOS9O2Xmti2xcqzT1nFkCJWUcqCPtAlTfxLlmuIZ +FpDOy36r9FHnwJ32OAjGd93ex0DOyZDMcfyoURaHcoTo/10UAYwUt0dXhwECgYAI +xad2TWmA1XdgYNkJM36gTQ16v0IjUz084z70yGHj25OC0CIzaDIct6KG+gS39Px9 +1dsa/jXjLuOOkzKD9LbtNBB9KXIl0GQiXnujZw+qKQ/MKISdS99n2wO7WyLKkQu3 +kb+AXTTBf4cdZC04BfORVesll5bIA2x7pNNpSCdnvQKBgG7VXYcPlIV7iAyi2xFa +uN1jccu/AK7xA0G1jz2SHNlpet74LmWR8XsTujJeo8WG1IRFxSky4h/pAP0XWIFO +0LPK7eeDtnFq6y1/DXpI+/9BWX5T/8+4Yk93p37YrBVWKfd21dhrAklQs11m3rlQ +Qn6c/zyvMKSyrCVxo5pTd5Il -----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7-rsa-sha256-2.pem b/tests/data_files/pkcs7-rsa-sha256-2.pem index 0f03a43a0..b11a00a19 100644 --- a/tests/data_files/pkcs7-rsa-sha256-2.pem +++ b/tests/data_files/pkcs7-rsa-sha256-2.pem @@ -1,48 +1,48 @@ -----BEGIN CERTIFICATE----- -MIIDSTCCAjGgAwIBAgIUSbz5H6XcKL1urGmyF9I9v63PwccwDQYJKoZIhvcNAQEL +MIIDSTCCAjGgAwIBAgIUVk1VQCWvWZ4ycHmycg7wDfN8+3wwDQYJKoZIhvcNAQEL BQAwNDELMAkGA1UEBhMCTkwxDjAMBgNVBAoMBVBLQ1M3MRUwEwYDVQQDDAxQS0NT -NyBDZXJ0IDIwHhcNMjAxMTI0MTQxMDE5WhcNMjExMTI0MTQxMDE5WjA0MQswCQYD +NyBDZXJ0IDIwHhcNMjIxMDI4MTYxMDU2WhcNMjMxMDI4MTYxMDU2WjA0MQswCQYD VQQGEwJOTDEOMAwGA1UECgwFUEtDUzcxFTATBgNVBAMMDFBLQ1M3IENlcnQgMjCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN4tAEi8b+ZE3OIuv91WduiU -qQQXPqMNndTj3Q3hxd5CvYCZ3dAoYQOdPOtGWxLe89zpqUI/Sp8hSpCOw0ucgxCe -96ahpx/BVvMG6BabtxSXWYmGv0rJmFE3LwzskvK9P8dwaGLZler+9CgjKtcgfhTc -zbwhSDeHCHAZWqJUtLpAACiU8rn78p7x8zWoUUsntUiTCyw1SCHvIhGPeCbT4QVX -YNxIP2H52s7waHqtHLpGtJSsSxTxfbxcmbMQlrDaY/8ArLxo2VKqvGJv90IDjbGy -ORHRMOuxxxjowC9+yH4xtVRl821dsJFSSnmAEBXas3hkneFVBxiR7vUf61Wv760C -AwEAAaNTMFEwHQYDVR0OBBYEFNdysL6wT6p/KA7w/efpAyX7/FXZMB8GA1UdIwQY -MBaAFNdysL6wT6p/KA7w/efpAyX7/FXZMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI -hvcNAQELBQADggEBAKGSxRvoL+FpC4LtiT4Cie53yKlzISq+ZMR4eHm1BFSidiFv -apntxj9k1JIIlDzbabVEJdy+O8EzipqUNFdPky+EpnZTnoTXilNusPH2FW+R6qMx -XrDl4MwtSYnH1RwkjF+yjYysp6pdxm+gr6k7lS4biHq6VfUYSvQBvSuIYMn+XZa/ -ZgQs0NWeh3GgVFkpGkG/yxXMq1WRGSrFfmqExLVpMeNXTINQsK5PH/JMaj44c4T7 -+qbq9Rf4U4ezkTUXHsQQsA3dFpPiL5Lv6RS+31VKLpXYJQ9j/Z+IWBFjTf/utt5T -VA2cEFCZIkNYUoX8RVs23cQr/ZNBxxgO/7JYNSE= +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMmVNZZ0/qcT+h/lVNO+gP65 +lERTTudQ15h8QTLjaKhx5SSTLnuUhD0jLbR+ng8PMqdJ8ePkZEh1+7mi9MHzID4Y +c47jH8M+Jc/JdBr6cSjbFd23QHESUjKKmV1IjSHc6Llbxe962z4gEXYjJAMkfr6B +g1iecK3AlnEI4F0BsQfC5dgA4Qce2okvcTuhYgvHtLZ+UN4ca50Kw0o4u5FYdl89 +KDCE4zNp8MaaxGC83xcM4A9XqjHyZ7a2wvACTlmLQ2q/E+RN/8THEel4Y+yv82Uj +j2LqqEaA06dvSdOPdaGz9jUZauqBw7TcuGGVzrrsZ0g/sHXKng9TppehAV/HrJUC +AwEAAaNTMFEwHQYDVR0OBBYEFI5FVrtfLwPXRERcyVX6qBVvfoduMB8GA1UdIwQY +MBaAFI5FVrtfLwPXRERcyVX6qBVvfoduMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI +hvcNAQELBQADggEBAKRl0wgREe6eAduJSV5fs+Ec0s2qs2lHQqt/0JGEIbZBBtka +q1UH9CIMMAd6Kb0kh5GlJT2shg/EAYWoitMwntkeRYTln2k2/B5jux+U5Ph4HyC+ +ad2GqmsoXWDru79rltT7Pv1hS1ofJyQ4Jv88vQA/SuIIRGdTC24VAVgg00JxvDRB +xeqsQ9Pld4ebg4VvqsInnSpmKCcxfWxFhJk/Ax8bK/tV/GnrPiwsvry1j9nZyebS +IyI01/6DwJS2ZhFnsLGyPHFOAFNtomjIdQ6gf2L1wq0qiGOKj/K9IzFNCpCz82a+ +gMgqFzCT5TCZC16kUG2NA2pXAx9O4uppKjRk97U= -----END CERTIFICATE----- -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDeLQBIvG/mRNzi -Lr/dVnbolKkEFz6jDZ3U490N4cXeQr2Amd3QKGEDnTzrRlsS3vPc6alCP0qfIUqQ -jsNLnIMQnvemoacfwVbzBugWm7cUl1mJhr9KyZhRNy8M7JLyvT/HcGhi2ZXq/vQo -IyrXIH4U3M28IUg3hwhwGVqiVLS6QAAolPK5+/Ke8fM1qFFLJ7VIkwssNUgh7yIR -j3gm0+EFV2DcSD9h+drO8Gh6rRy6RrSUrEsU8X28XJmzEJaw2mP/AKy8aNlSqrxi -b/dCA42xsjkR0TDrsccY6MAvfsh+MbVUZfNtXbCRUkp5gBAV2rN4ZJ3hVQcYke71 -H+tVr++tAgMBAAECggEANzztAyiGkbOxTzLcVQV4Tt8XHoNA+X0bLqDwhtEJRvdE -8kJPGb/QTvu696voXMq9ysD1ahkeTm4Sgdpcx+HD3FAJto4eZRDGs2mWLnjMjfwL -MNwll0yD6D1WH1p6NovC3a0e5uS+F00IGyqTLiVP85PqOsnzkIqsGGLVW+K/hEaK -lRqKEf5tYzkdmlay8SfJQf03TuJVFp6qAgG/gH2EkGR/B4SLotXYDNXLFAzlx/N3 -QXHRIKhYOcvznbJ7Doww+nCyO613cUeZ1t3/22QRC3Vm8WMaYzxivGoMzmGM2YqI -MtUG+zXm4if9+MmT0CQ3meWLYwkIbFax6/6DLS6iKQKBgQD4EU4CEEjCsnYm7668 -0THvkcEsOTvSKroLYPKsuUbeoBfCvK4/o6kb2dQbR9c8MnHAJ8yN9gMbuP/njPUu -G9/sycI3uDRYpsQDeBcD74NtCAKqB1s7kcucMzxudwAqw/jJCJxyPqGiS8HJGQRO -sQMtBkvQx9RqKKagAgCWwaiLQwKBgQDlR76cQN3GSVRZfsA2rqTyZo8b4ECSEu0O -4vSQ0i5xMWp8uJLRBxktRYYCMfzH6dHDG+GNYearolOHm7BfC3QUH2EC6kE2D/9P -A40JrF7QEkDRtQ2rmNOQ2diLB1wYQiqRJieuXVIIzaRcyenRxP6ec2YMmHl9FaPh -dmYzjtDSTwKBgFr2/YQENKowhuMAQTM8AvO2nv94fVc0E8TYaCSuTC6Wxh/C0KLF -gN2VoxHd5i9M0CmGbpwf+kPQMwbVyZJ+5j4OPgnwokFf5cDf6JCo46i3p0JyMCJH -9EHzB9X6DTWhZzlQzw2Vqe+5l/YGFm5EusVn6aVFob7L6U4DbfPaT9PBAoGAD1Hi -55fh+azOqQgyGbVDqjq2Fzu9tMT0+AisJL0Wg1O09M50aOkbgo3hrWXfqQ/zhyDm -ykafXhqDkE0T1NX0FKAgIEy8vLsG6SWol9vfnfGKSTjax/t3L3eO44NDYQ+Svo4Z -Gqp7n8D12YlYST7rcHTvfan2fCglAhyiKZHCXDsCgYEA0BeqGpJ6Oz6O8g61JixG -EryjO2cCnQLWlwlal40L63wY5tNDCixuDM6zJFq/tT9DYMuNANrfsqWU2ImKTNPE -kwlMgP813aPXREgyV3ylL4KLusfDF6hqPtDcU2QK05LuTX7puHwi0pR8jAmPzrng -Y2ncNnRJI7vczDETaW1vuoE= +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJlTWWdP6nE/of +5VTTvoD+uZREU07nUNeYfEEy42ioceUkky57lIQ9Iy20fp4PDzKnSfHj5GRIdfu5 +ovTB8yA+GHOO4x/DPiXPyXQa+nEo2xXdt0BxElIyipldSI0h3Oi5W8Xvets+IBF2 +IyQDJH6+gYNYnnCtwJZxCOBdAbEHwuXYAOEHHtqJL3E7oWILx7S2flDeHGudCsNK +OLuRWHZfPSgwhOMzafDGmsRgvN8XDOAPV6ox8me2tsLwAk5Zi0NqvxPkTf/ExxHp +eGPsr/NlI49i6qhGgNOnb0nTj3Whs/Y1GWrqgcO03Lhhlc667GdIP7B1yp4PU6aX +oQFfx6yVAgMBAAECggEBAMVHm3w134qQCHfyroPTqtaftDTx+wRyn6yB3iT5XdGM +NZ8H07Pp80kKBo7gY7uFOiNyQKKxQFuR69sPWc3+LI3YzC8IpGslhUfHdjN46gn7 +73hfAVgnf/4qmlEq0cRUOAY/hIUMjUhNhglB9tqEeu3iPjMaTFgfZJwW/czH/QMD +w4zj5XoLgwRkqVvUceu/dBgV8KP5DpON+q8wpfWtjunv7rg5Nc3BVBrpb5SadJ7T +i5TsS+pZQyp+mTvyCI3A1hkr2Vw5tULWO8SPhuEQkdtC/CL+luCUO7L16lU6KhFB +qP5Fduik5skyLCVvAMUkjKcrC22k0gkhOHvfmMhjaAECgYEA68+hAQIiV9ErZGk9 +ZLu+VJHBSPmEQCkUcbviwzoRo8YSyka12TZERy+NJcvmD9deNgFbp8GyZf01XJWH +slSYt6LyInrJrTpv+3q2Vl5GQp0f+39i7MHnwGGKbWsDbSAm+L9yKTJzYJz1O5fo +in06AiyyGPwnXd1cm5bTXVX+dQECgYEA2tdi6DXF8awE23pv4HphPBhXS5hmYP/D +NC7CtP8wQsxjPdiIxkBFFVEaFCC2njq1VhTyJb5noJM4kOIwcoaQ/zgyyxQa0u7w ++CqvAh1WwG+sT/B7vivrtDmmYeyGQapFo5DRIz+MflKAhzDhtnEyT9vLuCdn8J95 +0YvxZJ9+k5UCgYEAh+e7SER9nJUt6AoLWyIlGMKEXlWIFh5W7RG3KIMwJW6D59aG ++fAfu9M5Cx6PsnOSlZeExpOJCOS9O2Xmti2xcqzT1nFkCJWUcqCPtAlTfxLlmuIZ +FpDOy36r9FHnwJ32OAjGd93ex0DOyZDMcfyoURaHcoTo/10UAYwUt0dXhwECgYAI +xad2TWmA1XdgYNkJM36gTQ16v0IjUz084z70yGHj25OC0CIzaDIct6KG+gS39Px9 +1dsa/jXjLuOOkzKD9LbtNBB9KXIl0GQiXnujZw+qKQ/MKISdS99n2wO7WyLKkQu3 +kb+AXTTBf4cdZC04BfORVesll5bIA2x7pNNpSCdnvQKBgG7VXYcPlIV7iAyi2xFa +uN1jccu/AK7xA0G1jz2SHNlpet74LmWR8XsTujJeo8WG1IRFxSky4h/pAP0XWIFO +0LPK7eeDtnFq6y1/DXpI+/9BWX5T/8+4Yk93p37YrBVWKfd21dhrAklQs11m3rlQ +Qn6c/zyvMKSyrCVxo5pTd5Il -----END PRIVATE KEY----- diff --git a/tests/data_files/pkcs7_data_cert_encrypted.der b/tests/data_files/pkcs7_data_cert_encrypted.der index 0d0706931e625b35b37466511e87ea4da5a731ba..763057d9e5eb7be478369ddaba4f227fbe94afee 100644 GIT binary patch delta 366 zcmV-!0g?X11H=Q6Uw?bv-O@x%(aru`L8uTciMQV_Y`-uK1_>&LNQUo z07}fdUAVJ>X*kQqd%D*rLG$nqctJVMX|%rz8CJY0cOZ|=bocqC8hzAniNN`=Iq zg~|@O?Gp`C`nG6LWNiH}uQV;lvC7Iq>~EVGRC&qVB&h7M3V&(J7{f#jt%@Bd*gWd- zMfq+qY7!9F!t%(f_B#}$tOR! z>kStU9iTuzl0dPYpx!o0?a6Pq&oW{hS6&LNQUo z01MTcgrxL5dy@l*VL5lRlyDm?g)3;67Ot5m=D4eHp1yroHeJsaMz@eznL)aHdzF@W z`L^fGvI-n8JF6vSG~uiUuSN4WLRZ=kt<}U1PsMO$_m}q5!GDh1{Wy+Mhg(GKA%rl- z@sdwGUn!=!UWY{X&uig>@}@2 zJ%Sql=M9|xz+Dk5zXs@I7r*vWg|S{en$X5uW@;P%+#7~y7P7vpi>sgYFC-PxwAqbz z<;2LE_6QQLgJ<*+BYG42=5sl(_A1-;UC7e7B@5w%zz5lxjUF+0XkuP5GJ_9Tl6gEZ zJO&9WhDe6@4FLxMFdYU7V1`HmWdj5ODg+QZckg~VIky`(o)-umhz_rS5NV*BB$WjF MN+nIx-1da?hxulsi~s-t diff --git a/tests/data_files/pkcs7_data_cert_signed_sha1.der b/tests/data_files/pkcs7_data_cert_signed_sha1.der index a888525244b49ec910b7e4b46c338fd3e74f9d37..b6f95998fc3eb91ccb47856b79f61d06bac9af24 100644 GIT binary patch delta 943 zcmeyv`G<3YyGZrDyO&&iE}s1tQ8JtpV>L*;)mB;PNl@KKIh}r`*-(D;)TxBS49`kGOgUH?7U6xcmNy!mbd2Z z$wm%*PVutlId!FnrW=dA{j%HO#E-koJOBKj8l@8JDO`2!8AI5qgHwZ6q+V5Qm#8`5 zbn?hNJF7Y3OHH-}pIv?6w4k+r^4HDc-t%5g(3TXqC^BtPedTgzwYBHp3GBc5{Pp_X z=G8B^Sw@P*3f~P66qi}M)<)Lq*0JsrjIxPaeZDbP>@#bg)wyQkYR7pti)*u2G+qjo zIC48<&$90)%$UB-T#+sQTdv&t^mFf>R-T&z*R?ryhdVrM>)v?n*Um@nLNEIcORnud zxtb5&&B08}j0}v6gAD==WZ9TQW%*ddSVX$sJ)Kf>tS0uV=<+ zO7#oga|^ZEb1m8_^J#Q0!LwzR!-cGR4a?_?E>*%FK|h)wyr>{&K#v zO0TH7BiE{VP5s&dZYFHWYV~!qjNYrS3awXLROQ_lqRV#OR{5Y);L~01pKU(!8U|hd z5UIrb$WD$F4qc(NSr${+Dpp7(9p=l(8SQd&@xJ#*T@jT zowz@u{`f0*rRi?VpY(qSZq5Esu>Ae1BahNj{e)L@>^gqq^Qu|ZZTcVO88Rdo?mm2`Sn6U&?JdjIFgJYJ;yfYJBXy#<<~n(r0EN>H61|s~o>w?e;hG`aMmD zbKQ&J_D|lYCbj%k4ZB(-^my};ApWwdY(azN4>pSTy_c^)GDH5()05ZhIbRn)IJJm( z9{am_3O}-Lz1q_J{&x6@l;h`{&F2cN4(=(})%h!WZ`aNU>Aj2FX8e7Byl-{i?!8VN z#}$4waVviPd(+?{n^@ptFEww@k_S0$AL1(SW~G1cS~|^qS`trPZ^+*e-w*4Lef=T( z!R33t@r9@F9{F83a&5Nv0!JohMh3>k!3Kc_vTV$uvV1IJEF!V7_ZMC&z86!jI^*=0 zi7CI;qRKf9}Aa<^ph?n@m@|MUC*)0t4W z_r;EsG@q;`8JS=H>Ii7ZnF8Md_2q&fNUf%wD{?fw0oM}pT z%zF3a-j(TViP-r)uZnHsjL5vzZDL$K4+L%hFa#}y=j*8;ig26tGATOdXImI+|)j|xAMuZiUc=}PfQb@PHts(#hMr=-(!}mXLO0S zbr0kgJrXY4*qo;&+Nji@-1J?Br8?i#h_kG95l`&L*`;-BL8_ zZI8IOUe32WPgq+_?dCLV7uC6nF diff --git a/tests/data_files/pkcs7_data_cert_signed_sha256.der b/tests/data_files/pkcs7_data_cert_signed_sha256.der index 3f2dfb5ace1ae4c6571da3551fac2c2c0d65d89a..778fb7b4246a314999cac675ef2bf0147f8439b8 100644 GIT binary patch delta 947 zcmZqSYT=sTEmD2&?j;wWi)a7EIIa-T>D+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4FU~h*_cCR`B=nQM7rKRolq`akuLr`{{Q`kiOT)^!i!zp``mrmmNBo|bb(XJ3B(njg0wgx+mZ+L)QDSY+R* z5?B!#Gb8Gy_+M|!8Rd3T)3@&x;0SU1qB{Ew=aP^~lbR0hm|gfbqN+TO%huJ*MBeq* z%gh&SC-dJQ7f3J9VcMl6q&;!wMjsxH11{|W6AE_L+g`eMlc}h9awoGZ)&x2E5wlW# ziDvax!;Gx`PFtoX#JOreFxl##^dO+n_E1T`!4W^xuFPt?&6Q1c_pc^rUDl%8FXvcTFD$w6>aN+Em+4aYgGUb%(XQ+o1sP_eMdd{4edE>G% zV`giN`oXe0F?QX`aTCA3ROp?(=Wq6wt#5W#CG9uRxXHBhdgLtWb)gPLH4SEuyg6!q zZoDMIT3cke#QCM~BrUI?ds1w3pYg&S}7u@`!$Odgze4i OE(e_cEcJv*F$MrvY`x2AxP^nVC$&HhlZ{QasUkJ3{8gjaLyI)3Bxs#(=-`XA*PG9(!8 zK9lx%w)St$>brpnDcSj7%56G~t+gX+gReGfeC)l(xZ!%zXJ#Sk`q!1K9KT)d_BZqT zJxzym-HYJ%Pu`~{wft2LyILglc=M4U{<5lUL4)NFHj4MXm#;rEL;lXwlh^AxUl%_( zwTO2f`@4AxKeBGU+S2^~cKC^uH)k$lnm(59^P8 z{UQ6o<$J#Ig{SWx`CT}2ZMOFUMLDI@B5(Z)oSQSi8VN$K{YDk$9AoA&tL{#B&w`B3|OC3x9^ZWnP znNYX)#g3FTpR6SrnP2|u2x#qC>)Bf-u71b(`RaM$5(d5FhwS@TDn0D;cV1I3 zH@auv%OrcfX_oZirbLdbx0K3ykAH~V)IPVj^2x4>1UHROOcS0??qqhwnjj}XVpghm z+kL3@>*2TIooQc|i9Zy1B2aVd`Dz}Ycl_G(w(f9Ft?pua*m*Nd^v2|wp(}0*9u-PH zxxXfW^Kk#tCd)sDAzpqRmC4b(p_h{uCbtN5B;LDr>lv@Y^4?>{N}Qjm51hoMt7OcJ-;(w=WC6YS5)OlX2d>br){eIQ6dd z&ib?J?a2`nG}M3xwuTvO$oJhis_q-C+|jqDzQy(#{0`(`dNS#oY0 Pw^pJzTPjx?lOqoRq+iEN diff --git a/tests/data_files/pkcs7_data_cert_signed_sha512.der b/tests/data_files/pkcs7_data_cert_signed_sha512.der index bf143a56f0b499929747df519279532d86354d61..41849a943e54d4d08d0d1fdf9926f2c362fc986b 100644 GIT binary patch delta 947 zcmZqSYT=sTEmD2&?j;wWi)a7EIIa-T>D+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4FU~h*_cCR`B=nQM7rKRolq`akuLr`{{Q`kiOT)^!i!zp``mrmmNBo|bb(XJ3B(njg0wgx+mZ+L)QDSY+R* z5?B!#Gb8Gy_+M|!8Rd3T)3@&x;0SU1qB{Ew=aP^~lbR0hm|gfbqN+TO%huJ*MBeq* z%gh&SC-dJQ7f3J9VcMl6q&;!wMjsxH11{|W6AE_L+g`eMlc}h9awoGZ)&x2E5wlXg zUDKZ{D|r+8ul;Jgp?mAZnm&(}-(|n7;+t^I|0i1*&&QfqVhnEfDzTO&KLu<4?AoQr z&6a7pj47`3r@*0G@83KN-+VkaHT#!B(BfO^mfj!F-g3@(BUMs+k)^YeJ?y0S!8a%G z#2Brt$Tc;JnPT|m_jZwsTyI$97=7;udG;TRIa%MHzp6a>l9^dqy>{s99~mVq*X!mL zyuR1&6?gE@=cuLXasMV&1W2s)&A08pqb9EQe%*rGmOHJNtU7$K$hfCVZiNKf#e(~@ z1g5;d#B$)}<~VbqRg?Ecn|`T%xGM4Vnczc0r&z9U`+MIp{AuY_d;jK+cN{8fW*5ER QDG*~-KO;icmTBgH01S=CAOHXW delta 947 zcmZqSYT=sTEn*-jSo3skbeK)@x~&Pb%e4X`66a2g_mVa+G&C|XG%++Vw2TtxH8Mov zPRui(_*2AxP^nVC$&HhlZ{QasUkJ3{8gjaLyI)3Bxs#(=-`XA*PG9(!8 zK9lx%w)St$>brpnDcSj7%56G~t+gX+gReGfeC)l(xZ!%zXJ#Sk`q!1K9KT)d_BZqT zJxzym-HYJ%Pu`~{wft2LyILglc=M4U{<5lUL4)NFHj4MXm#;rEL;lXwlh^AxUl%_( zwTO2f`@4AxKeBGU+S2^~cKC^uH)k$lnm(59^P8 z{UQ6o<$J#Ig{SWx`CT}2ZMOFUMLDI@B5(Z)oSQSi8VN$K{YDk$9AoA&tL{#B&w`B3|OC3x9^ZWnP znNYX)#g3FTpR6SrnP2|u2x#qC>)Bf-u71b(`RaM$5(d5FhwS@TDn0D;cV1I3 zH@auv%OrcfX_oZirbLdbx0K3ykAH~V)IPVj^2x4>1UHROOcS0??qqhwnjj}XVpgi> z7k{95aZ*_J!lkb`S_M|W9x`-NmRxqWrcOSgXK$bUOMw}?}4ckXKQ z?RVSveiU54_l5>bce$S9fj{!A7T$a7oqn17>e5QKtmhpK0p9mNG)6vno6oyl!MHEP z)nN{!xulzt!=*QU>)*7MuzpBZh)CDGue8Z&RsB?fut3d&OCO&&`1|S4mN(Z7Z}Ta< zcO7|dsT+6rJ0vmMGM>?9W$@lvD%|nT+w%-Zjg(i{KvMvewvG?Eh}C; PBYi=!>z)7pOyZ{i)pf~# diff --git a/tests/data_files/pkcs7_data_cert_signed_v2.der b/tests/data_files/pkcs7_data_cert_signed_v2.der index 1a24a8a2e3b72232f8ec4c2a1b2a45df051a2444..befd17c190253d2fc76833b5f6cc60b6a2742a2c 100644 GIT binary patch delta 960 zcmZqSYT=q7$;o8MZ@|mOnb0;-NmHcy-rY+sJ{Qmai*Z~bpwqeizFyA$iSb_2MurAP z7KUbq2Bv0F;=D%2NZg5e<`aJ_)SuXPKC^Sq#SgEyoJxsdea^?L_wVkR#0#CLuZk|7 zWm>sY*?F7X@c=gdEpN@+lZ_nsoZ@B8bLvVDO*a;K`(?Mmi63{FcmDZ5HA*GcQ@HBd zGlsBJ2d4(DNWH4qE>Uy9>Ew}lc2;x5mzrz|KD+wBX+dlMz3080pe-qIQDoYp z`pV_bYHQEG6WD+A`Rnz&&8uH-vy2pr6}}rDC@!;ht&ObJtz+FM7-bW;`g~)o*k{%} zt8>l7)sFLQ7T0F4XuK3EapZQ!o@L)pm@$2uxguNqw_LgP>F3@%tvojcu4{AZ4tIFi z*1hrCubq$Dg^GE818-d(ifvvq`=NK0tdDd{Qi zIt}lBOfcWRTwGXjrKH*VL-l{^A5Xnkdi6Wcj;-q+#D8Vy=uKTO=R7Uviq5|L`ZYgp zJqW$qq_i%?Iu%E z@#IcsSF8zg@*`%Y`V!6RtA-g_`<=E-O^9>VeqgfIKj}e0q3xlPeuE=^rd^rUcAG1k z>h51n&bqSWthZp@t@$4B0(5Rld?=4^V-PxW|38z;=3h(aXv|})-7@X)hSw%d)*p&R z)pE^Un^0 z((6JUifS6n9(i-r{M>j+gtfNFaEbFv-$`0tLHDHC=059J4qnv}Ros5ner2)z%1;_H bleJPrPWNjTD+t@0*If=c{aNY>lVS`2W9h&O delta 960 zcmZqSYT=q7$*G%~rw~(NV8k_1NmIl?P_X9d+UPKwp$6H>DCzm(f_7+Y&c)CON|)cDwYjd8>Eq|eMk z()F(^S2=#W+U;-V^?RBQ=eifc?Vr3)O=|h88g{iv=<((wLHuP^*@6bkA8ZuwdoN#q zWQP2mrzfx1bG|NqaB30nJob0<6nK zv?QLo-jKf`z8}^f`}#xngUk1P;|ovUJ@UJ70L%ZtQsXENs&Ig9^Xbmh;1rCu%DUGi_< z5l%|ky}bSR{H29~In$KxnDy?-y(`n#60!4pUKQKM8IgIb+r+qf9thh0VF+3zea)t3 z?GM@auT*;2=kL6xUT$>HzL!b%debcF!%c}CS8pkm^&bBaxv70_Z{?F+6$x${pO_{* zo!rUniZww_e#ER)@3#9;>(|3?!#mTyEE9hy@! zZzkisdFw9Ru5s#J>7Dgw)!UODGV#xX<~)=Q__NWFk#TKwd9?L5-H_yr&sm=qOuu^h zpuGEWdpFPEkhQu0?j4rAv|Lr;xrS!b#E^un$l06h?}#ihG`XhAIeBVr_eslQ*BjYA c0((>Z-}cR1VzT7iHg2s%Z?;sfG$uzL03W2vUH||9 diff --git a/tests/data_files/pkcs7_data_cert_signeddata_sha256.der b/tests/data_files/pkcs7_data_cert_signeddata_sha256.der index 7c631f9d7495886951dc80a63dc299421620b8de..85ea9f9fc1f29c7a68936a17ddf3825f10e9636f 100644 GIT binary patch delta 943 zcmey!`H^#ig-G?iyO&&iE}s1tQ8JtpV>L*;)mB;PNl@KKIh}r`*-(D;)TxBS49`kGOgUH?7U6xcmNy!mbd2Z z$wm%*PVutlId!FnrW=dA{j%HO#E-koJOBKj8l@8JDO`2!8AI5qgHwZ6q+V5Qm#8`5 zbn?hNJF7Y3OHH-}pIv?6w4k+r^4HDc-t%5g(3TXqC^BtPedTgzwYBHp3GBc5{Pp_X z=G8B^Sw@P*3f~P66qi}M)<)Lq*0JsrjIxPaeZDbP>@#bg)wyQkYR7pti)*u2G+qjo zIC48<&$90)%$UB-T#+sQTdv&t^mFf>R-T&z*R?ryhdVrM>)v?n*Um@nLNEIcORnud zxtb5&&B08}j0}v6gAD==WZ9TQW%*ddSVX$sJ)Kf>tS0uV=<+ zO7#oga|^ZEb1m8_kq}EYPsgF%@UUi6vdzZ%1jqi zxW>5auK7pqSL+&jj%desyeiP&aB$)5o7wfpk}~C#>u0Ek6sY$FaC*+1mwDr|F=J+H zjQYW{J27_M%5f9FzEtR)z2|TCmaT7gRweB>(74I8^Lpeg>2;wFMKuj(kGwf*er~)Z z!dhEoxWxIT?<6g+pnFnmbD#Aq2e0agDsI1Ozp_|<n;bJ L{w(!`NihZhmT0`V delta 943 zcmey!`H^#ig@}QmV9nFD(P1{p>$WD$F4qc(NSr&-$4kn<(9p=l(8SQd&@xJ#*T@jT zowy;Q{`f0*rRi?VpY(qSZq5Esu>Ae1BahNj{e)L@>^gqq^Qu|ZZTcVO88Rdo?mm2`Sn6U&?JdjIFgJYJ;yfYJBXy#<<~n(r0EN>H61|s~o>w?e;hG`aMmD zbKQ&J_D|lYCbj%k4ZB(-^my};ApWwdY(azN4>pSTy_c^)GDH5()05ZhIbRn)IJJm( z9{am_3O}-Lz1q_J{&x6@l;h`{&F2cN4(=(})%h!WZ`aNU>Aj2FX8e7Byl-{i?!8VN z#}$4waVviPd(+?{n^@ptFEww@k_S0$AL1(SW~G1cS~|^qS`trPZ^+*e-w*4Lef=T( z!R33t@r9@F9{F83a&5Nv0!JohMh3>k!3Kc_vTV$uvV1IJEF!V7_ZMC&z86!jI^*=0 zi7CI;qRKf9}Aa<^ph?n@m@|MUC*)0t4W z_r;EsG@q;`8JS=H>Ii7ZnF8Md_2q&fNUf%wD{?fw0oM}pT z%zF3a-j(TViP-r)uZnHsjL5vzZDL$K4+L%hFa#}y=j*8;ig26tGATOdXImI+|)j|xAMuZiUc=}PfQb@PA+41#hMr=pJ!I8ciVla z_3Poc;hkw;mWe+Uc_L7A>-lOPpLhJ)^S17APOa`@df0h0O!UU&nV~Cg3LX_oKDoap zfb($w(k9D4h9O>l9hJ$^yrGwq7ACg{bR^!pcIz3h!t&l@#!5do@t)XVzp2w{Z>sv# zwTGU6@byyO))BM8WV=?!m5s%%Dx78|ns)W6*S9YVzG~2=Hg~x6nfPZxa~{eD{Ml&8$hbDTJlcAjZb)**=d4c)reD2$P~QExy_;un$lBb0_YO;5 zTCS?_Ttl;IVn{+(y7LlfxRjIZ~JC0F&j#v=lKK)k+X5#cdNci zQnPMvrO`_pTYFKeHCm&*_wGOMymOrQ=XbvEukZZ6Z&-L(IMY-la)v!&c=PS}k&|Af zpki{{>=pl>ELRh8B@|Lg9i@sws;D|b&MIB|ugnqTRL$CxCJ(p1!6iR_ySYXi^>jM* zng8sSBlhb%eR_Kr=mjG>DEzv_smtWsiLd~BP+W+X9$oh5%a`-13 zL_a*vbChv57LJ(w#Bpo1FVDKtizSsPM(oueVNlW6A48rg(`?48d&j_<79Kmz5L4<( zrowr_w<7taEOdSSD+-bSF z3wY428dsEDlU1!p)hdhftBjeziZMR;bUyzvtP0#Mtn`B%K*Kc0KAY078#h_iCFrNx z>CPvlHcsx-7ZQb5(g)7hW{jEz1Ncl&Guk=r^P$8|(>NO-2*3d-vq4%RCAdIX34YFV zoFXY3%ellsqBBdhB0!!rj@q#PHH?J)$A)u?A>4|FH?eJux{Y8x)L;1sNk_fvBe-AOHvyxn+jc zm92N6D&fPMg7`PjZV?ZNS+0gTn;@?LkEcC(Bu^zjz0krI!kr45H z0^)-xyG@rMWUZ7^=xmfG_3z$`mG&It9hVFF(Pl9zs1jV7W^_AHXELaqNUDKZLW}T1Ssx{<{P8uRErW zFgY3ZOUGJW96BZoJciyjyaA#Bdr77~nb4`M_iDAqfVmu&NQrwGSk*6AEPodvhl=vY z#24y-U>6h)u!p!cw4!2nXG_M^)X1j^xU};7qqyGO*1KTuhQ=l>f;orHy;7gyQ2wW6 z_nrP)`6Q2&jPG4=l-Zfg=B>Nk(Zli(WX>|Okk_T$@?ILq*A4_TUs%P-D|>SNXhFpS zH*&0a&=3^x#LvvR$}LR}xg5zt`S|we)AHP0FbZ?ZEf(%`mIUqokPIZlTqOk;iEa*$ zCC#!teBZT?n}SKxPmDG!6{o~D!(08t@e#~wJ!Rf3In2ZfUh6WLB z3#qt2nb!cghfZ>R_dhzJQ{gUIJ1dfDl+Is%w3aXQ2=^W&VhTuq?@)B14yzkPj8psoaW ziX(jhvT@H`&k5FB833>_AOcU&109sxKocWkR2m*A`lq|fp!5) zoYjrw#SnZrUT0p)%fNkBl%~aL&AMg2>DO+)9h@DxRc8YiEGtw~m{e(qE;dxxSh6@u z8Dm8|zpQ?$MO;4^!5o75v@C8SPe delta 1910 zcmaKsX*3&%0)LC8?$3RBNd*B&{uprI=d6khY>#YZ0}Eii%jPLak#- z8`Ro_cBn8+YpAt}L2D^R?2KsNd-La=caHOZ-gED-d%k=7N^AydEN+VghU`suR~7+;%To%D);XDVnJ?K^;vBX81S$2Mqe;Z9sG?Ij>Kt0)-ps8O{?Ac7!Y_O2 zm3bHPe5K0&k!&kkmIQCK-KHw^$A~0zCNDrjb#;~J=Lo~UDi*a}|iwn~rRjfKAq0p)v4CcdIh!FanSizCt6aJivD>GSZ3#~Pnqa$uKE-nMY{ zaF~*-`2rIdkVe}7^i2M;WB6jpXLm5D`0f?RLD_r3t4dT-t2J?wEANYcS)F=VQhCSe zRvwINLSfzJDQ70RweJN-i#8Ov2iK)2N@mQ+UJ?j7mnn^z#W40&)|by_h?TUDX-1r% zHm3ko#uFYZbtm|Uk50kDDIC6gV`?!a>QhIgw~f}OM%Fwc0ceLv03b_&0ATkL4gX@DDA;Xut81G(ls5h)>e4yz6$J328tuJKDA}&~S=M1`dF5yc#H6oD9REat&E3+H@BoRd4t9n|k`r2hnbV;$O z6`b#$mePglFL1g5m;REy$u{SN1o}?qE`QzDI-@hL76<13!BV%qkSZQ>`g$4mMF+`3 zNGoTv{cw}Mv1RkkZg-D*Gp5rGW!odIgW`i$gYJ{kLv=F{#d| zsCbaVR8u6rcoruHrLOI$uHc@d*BQsLIewSf$#keCX`SRBEq(@S913ug|HI~Sfq&S1 zn*By;2|gPnm9Uz28IZOX(N`0yuG5L{iHwYD7QvQr@tu?rv z7hfBuKh807b)dnMs=_h!r15l2Fmq#9fk<60NB+#5pBdD*OXG|xpUt?@NXe+LuJ!6A zmOih!m}{U!j_$ziKvCPmY+bTY5g?T?Ls1e*(o!E!Ih2T|1>qZ*IHde?J{Cn>Oj9 zFhMKC{W>Z8M$WIlE5=cx`%z_rsQ`&Z*^{IEJY;YqzEAyVkl#0iCZClsxu<=ZCc8f z#8^>k&;&v4YCl=|#)9*cSrtb?15#L+;Su3+u|*&27q~^(EX^Msd9C^r$K1vagJsnVQa?DIJb(+sju&TIJQ{A3n^~UD9X*Q%v^%Xj%KJu^<-J;4j z6UCF><=-{-g8^AJiwv+>OzW+`m&HnO&|gl6t2mYF(#uci!E@&%>5J%+c>7ZIVjnwE RH{h*eiL5Z=eSp)-eH44%-O@x%(aru`L8uTciMQV_Y`>9_B7bx#d(|;$YQI9Xm0(^) zE8sM>Ph#LuaXrFxk1)heHHv9_KC^j(e&5w&YSg&ROA&tBpGfXdEZG?FcVC7862#yC z0wlBgrJN|927R=a!?5c#f;;eY6((&rMS~d9a3L4v`e|ntAl3o8-8baKu{#4BHj z>ToZx!J(VkYk$UKX&xhgm?uk@e{yjhnpv zYqYiOxq4#1Feupqxz|~m8?IGAa(sX`;!6m8`LWUz1$}Zcq(kXVk}674-Wmp-=8q#& zs)$;1ht)r+b04YlC>)b2WE9JfDRUqbKR15UP|Ncg-eH1Ve5q#yXTUI<{uC-vBcPda=VV#kYB7a7^!iDw2?N^Cr^rjc# z6yy+m+UKhbOzsaWp0&6`WqXPO;fdK+71)!RRjAn!#S&x5zkE;$!;htcIs7qHN=}G* zV_OYX(_*1xgb;{f-qzaY4IrnD#xo-MvJJ?vKeCBJy=5nrt-|NoK7VD`x299oFp4gj0iK?&(A#`Mjj2m&{HpEAh#X($Qk>x(Q2enm0RgRB zcUwEQEmUJ@^J?;-m(|n3A4kVOMoCjtt!@6^!x_@2B_QW0DT0wyU}{;LvOnAuq%kzs zB?*(2eT&ICb4A!|j1awKPwkGGq%@??whJm@O9o{MW&%MBkvu*ZG6EDyy!juc+$g2jZ}SvN zew6kYK$D{Mvb+g}T=7X{EDI8WgADk*0D+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4Hg>6vN4Cs^0A1qh;+SsI;G}VP3%?C z<#}3lXAR#4{XJnI50X}9kuVTzz^Y(!3X^JmlWg{kv#zzTFKuXCv#4(0S^vpvPH4DT zTfW-=YyOg#PeQES{v4Lmj`k3*WWKj-+N>js&ZHKkGEexpq1SoIp`WG4-*$gC%_)+w zU=nhb>KDA{7HYHSTC`Kh-5uXDOkOMAU9{q}b%dNqOK8<8=_&6z4ex$TFyFphTv&0X zq}lpI^?&LgPrX-q^*hgwt?M4de`V+BOL{)hlm#wRriM;Er zmzgivPUgQqE|6ZH!?a6DNPFVUjXpdY2VB|%CKT+fx4m@jCR0)IgCl;XU76K(n=6~@?q5yLy0YV}w_x3^ z`5x~AbZ$y~D35Pr5IS=IKap~rhY8uQQd2`hK z+;~ZZwYJD`iStX}Nm^b(_oUe7KI>NwUeys*+2AxP^nVC$&HhlZ{QasUkJ3{8gjaLyI)3Bxs#(=-`XA*PG9(!8 zK9lx%w)St$>brpnDcSj7%56G~t+gX+gReGfeC)l(xZ!%zXJ#Sk`q!1K9KT)d_BZqT zJxzym-HYJ%Pu`~{wft2LyILglc=M4U{<5lUL4)NFHj4MXm#;rEL;lXwlh^AxUl%_( zwTO2f`@4AxKeBGU+S2^~cKC^uH)k$lnm(59^P8 z{UQ6o<$J#Ig{SWx`CT}2ZMOFUM*_cCRm02VV#2TG9^Id(;tbb!sTws;@y`zmj37W z|EDvdZtsg7DQP}gOENOQ{M8ZA+OgKNw@h69j`8!=^TH(*7CrUOUwU~BkB&^shH#DYm8QPXg)=-x`Zs2&z6_h9WXqT95FYJ+ zOK9aAr9XQ0mv>%_X?^q6c*~2#Z)Y;+7CDRmTy*8nfu&w8+gBCKl99M5CmGvI~5V@&+Zg1t2T@?v#8lRXZJe}Oh?20u(PJYC! zRPVO?Q0v#jZ^Jv&zAO`eDDp(0=GODoJU;LEwdZZ!;hb9C#q_ZAW|-)W$umP&+!Q=2 zlzei3O#tWN{-sTpe+)ys{5mR=qj^IwCoN2F5$H&~ckR|QUWMho$BdPJZsI+$!G2Sx z)816|scR2C|KRJTysaZ6BTU9vCN;K{2Q?GAd7JSv9OK&FQym{*`+^%uz zUFn_mXVu%29WwFHg62Gw4fwOskdbk1ba}M(HrD+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4FU~h*_cCR`B=nQM7rKRolq`akuLr`{{Q`kiOT)^!i!zp``mrmmNBo|bb(XJ3B(njg0wgx+mZ+L)QDSY+R* z5?B!#Gb8Gy_+M|!8Rd3T)3@&x;0SU1qB{Ew=aP^~lbR0hm|gfbqN+TO%huJ*MBeq* z%gh&SC-dJQ7f3J9VcMl6q&;!wMjsxH11{|W6AE_L+g`eMQ=q8Wu!*tUpoy`ViILI3 zXW_(rQ!ys2>2vZUW~KTP&FZU$8CmUro-svg53`VBM|x9`6ElZc2P8k8fiTI&%L%lgj2_OXq0JW2@aV?eK=zCQa5K zibd6O&0U)%E)^(>KmC=NE~apeao1h*kKC`;HS`?Oj_-I?pugeZ!r3>o>yIU6$|={+ zP!B0k?+f7coH;M^#${v1%+?t7gJpMO?7EfXCVqXX&^vq2-|Q`0-|VbP+Hat7lWFJm z$XU|sLLG`~8q6MfbJYCYcu9n{w#aaa^Gn}JT3$i-q}b*@>sJn5)e%+Pe${?uvHZ$U d8Zwi$QbbPoYZfaA+nd*24mkZ;>Isu#3;=4#!At-E delta 969 zcmZqSYT=sTEn*-jSo3skbeK)@x~&Pb%e4X`66a2g_mVa+G&C|XG%++Vw2TtxH8Mov zPRui(_*2AxP^nVC$&HhlZ{QasUkJ3{8gjaLyI)3Bxs#(=-`XA*PG9(!8 zK9lx%w)St$>brpnDcSj7%56G~t+gX+gReGfeC)l(xZ!%zXJ#Sk`q!1K9KT)d_BZqT zJxzym-HYJ%Pu`~{wft2LyILglc=M4U{<5lUL4)NFHj4MXm#;rEL;lXwlh^AxUl%_( zwTO2f`@4AxKeBGU+S2^~cKC^uH)k$lnm(59^P8 z{UQ6o<$J#Ig{SWx`CT}2ZMOFUMLDI@B5(Z)oSQSi8VN$K{YDk$9AoA&tL{#B&w`B3|OC3x9^ZWnP znNYX)#g3FTpR6SrnP2|u2x#qC>)Bf-u71b(`RaM$5(d5FhwS@TDn0D;cV1I3 zH@auv%OrcfX_oZirbLdbx0K3ykAH~V)IPVj^2x4>1UHRO5)+;pHZhhPG%*%4F)|wX z=%(f=#8f02a!sDktdBLBPJYC!RPVO?Q0v#jZ^Jv&zAO`eDDp(0=GODoJU;LEwdZZ! z;hb9C#q_ZAW|-)W$umP&+!Q=2lzei3O#tWN{-sTpe+)ys{5mR=qj^IwCoN2F5$H&~ zckR|QUWMho$BdPJZsI+$!G2Sx)816|scR2C|KRJTysaZ6BTU9vCN;K{2 zQ?GAd7JSv9OK&FQym{*`+^%uzUFn_mXVu%29WwFHg62Gw4fwOskdbk1ba}M(Hr9_B7bx#d(|;$YQI9Xm0(^) zE8sM>Ph#LuaXrFxk1)heHHv9_KC^j(e&5w&YSg&ROA&tBpGfXdEZG?FcVC7862#yC z0wlBgrJN|927R=a!?5c#f;;eY6((&rMS~d9a3L4v`e|ntAl3o8-8baKu{#4BHj z>ToZx!J(VkYk$UKX&xhgm?uk@e{yjhnpv zYqYiOxq4#1Feupqxz|~m8?IGAa(sX`;!6m8`LWUz1$}Zcq(kXVk}674-Wmp-=8q#& ns)$;1ht)r+b04YlC>)b2WE9JfDRUqbKR15UP|Ncg}{ delta 289 zcmV++0p9+z1G58=eH1Ve5q#yXTUI<{uC-vBcPda=VV#kYB7a7^!iDw2?N^Cr^rjc# z6yy+m+UKhbOzsaWp0&6`WqXPO;fdK+71)!RRjAn!#S&x5zkE;$!;htcIs7qHN=}G* zV_OYX(_*1xgb;{f-qzaY4IrnD#xo-MvJJ?vKeCBJy=5nrt-|NoK7VD`x299oFp4gj0iK?&(A#`Mjj2m&{HpEAh#X($Qk>x(Q2enm0RgRB zcUwEQEmUJ@^J?;-m(|n3A4kVOMoCjtt!@6^!x_@2B_QW0DT0wyU}{;LvOnAuq%kzs nB?*(2eT&ICb4A!|j1awKPwkGGq%@??whJm@O9o{MW&%MBQ09sM diff --git a/tests/data_files/pkcs7_signerInfo_issuer_invalid_size.der b/tests/data_files/pkcs7_signerInfo_issuer_invalid_size.der index cfaac2fa78e46fa9db2efe9fbf1bb71b6519d4ab..2973ccd7e50b2f7e667d651e76d939d01fc0f287 100644 GIT binary patch delta 963 zcmZqSYT=sTEmD2&?j;wWi)a7EIIa-T>D+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4FU~h*_cCR`B=nQM7rKRolq`akuLr`{{Q`kiOT)^!i!zp``mrmmNBo|bb(XJ3B(njg0wgx+mZ+L)QDSY+R* z5?B!#Gb8Gy_+M|!8Rd3T)3@&x;0SU1qB{Ew=aP^~lbR0hm|gfbqN+TO%huJ*MBeq* z%gh&SC-dJQ7f3J9VcMl6q&;!wMjsxH11{|W6AE_L+g`eMQ?RJmu!*tUpoy`ViILI3 z$G~)Afr%Is)&x5F5wlW#iDvax!;Gx`PFtoX#JOreFxl##^dO+n_E1T`!4W^xuFPt? z&6Q1c_pc^rUDl%8FXvcTFD$w6>aN+Em+4aYgGUb%( zXQ+o1sP_eMdd{4edE>G%V`giN`oXe0F?QX`aTCA3ROp?(=Wq6wt#5W#CG9uRxXHBh zdgLtWb)gPLH4SEuyg6!qZoDMIT3cke#QCM~BrUI?ds1w3pYg&S}7u@`!$Odgze4iE(e_cEcJv*F$Mr&G{F%7 delta 970 zcmZqSYT=sTEn*-jSo3skbeK)@x~&Pb%e4X`66a2g_mVa+G&C|XG%++Vw2TtxH8Mov zPRui(_*2AxP^nVC$&HhlZ{QasUkJ3{8gjaLyI)3Bxs#(=-`XA*PG9(!8 zK9lx%w)St$>brpnDcSj7%56G~t+gX+gReGfeC)l(xZ!%zXJ#Sk`q!1K9KT)d_BZqT zJxzym-HYJ%Pu`~{wft2LyILglc=M4U{<5lUL4)NFHj4MXm#;rEL;lXwlh^AxUl%_( zwTO2f`@4AxKeBGU+S2^~cKC^uH)k$lnm(59^P8 z{UQ6o<$J#Ig{SWx`CT}2ZMOFUMLDI@B5(Z)oSQSi8VN$K{YDk$9AoA&tL{#B&w`B3|OC3x9^ZWnP znNYX)#g3FTpR6SrnP2|u2x#qC>)Bf-u71b(`RaM$5(d5FhwS@TDn0D;cV1I3 zH@auv%OrcfX_oZirbLdbx0K3ykAH~V)IPVj^2x4>1UHROk`ta9HZhhPG%*%4F)|wX z80eC-Np2<^JbXnjma}ZSKJglDwKS3e@y`A;r^vfmVXRGy!<*UlcRY*r_Qk?8Ulx4Tpi6HiRsub^=H-FlN~bg&w}PWlnwZ^(U6gGZFG6G^)}s* zrph^a mYHjyP%VO6X**yY#Q~cld&0J!#D+!_FK7S6crR%qLjxlVLo-7IQ?n>>UL#{9 z?!-LviN6)-wh8Gmsz{kM%L=qvF;O$vWZ)LzA;wpGi#pJxn|;O$9Xo3YqM80 zUJ8{sayw(svhOF%n7++ikuCmPuH5?cbMKv2o|^*KwK;W%J3MUb-gxcT&PVM+FZ&Kl zuI)eNTg=Gg&3R-8OT;v}nh)O1!A#7I42+9|4FU~h*_cCR`B=nQM7rKRolq`akuLr`{{Q`kiOT)^!i!zp``mrmmNBo|bb(XJ3B(njg0wgx+mZ+L)QDSY+R* z5?B!#Gb8Gy_+M|!8Rd3T)3@&x;0SU1qB{Ew=aP^~lbR0hm|gfbqN+TO%huJ*MBeq* z%gh&SC-dJQ7f3J9VcMl6q&;!wMjsxH11{|W6AE_L+g`eMlc}h9awoHks3^7+Ir$N@ zQhkYL^;N@+to=?~rY6L>YCka9>Ywx=pwRYENx#7nKhv(vYP-#qO?CILCTCsQan@U~ z?$&&dcL6##B|enLw=oDEx&NO@W%IA4b2R3$)oz(~c*ARxChHHyqH4M3uFVpc3KYek z{>n@jQ@F;s>#q4n?pNy?dX8wvcf2al-*9l@?3>y3$C5JTl5q#yXTUI<{uC-vBcPda=VV#j*N*gdSF)}nUG%+wSIa(JD zGBGhRGBhzXF)%SXT9Ixyk^3Nj$LdESmqw@LkML84Yw&QV@2bS&W@Szjs|dQs*z>BI zdxkIZ9{^|=0Nv&rNan5me5>72U}S4=^mjanGdn9-eN)weDDjQf0kGF%^8*qaf9rXw zLH5;)Pc};XmMjUb=u?OCOUjaj{Uuh_auVaS#8MA-dTS9dr{J*{j_)6T#F!u4<;mB7 z3F~v<%AyUP2kxFA_-fkfw1e;4SIA_?&x1Fe5UW#+cP%Xa72dkJSR1{ghM4{D$BwIx zyS+jP#~}EE3nBIW*)ZV-7Ez;0CQAu);B1EQUU}VWXZMPwmN%AS41SGN{Zvixug3NG z9q>f=Z!^&4?&40+#MYZjpg{ry0RRD`Q!r659R>qc9S#H*1QcCe-=WfT-duMjn9KB$ zWcwyscL^{b1_Mv$kqUB3( zrPHhoEF6TeR}!(S_-S#%;(|Rc{641;HGB4PgCFxd_ zB0UamKv!E&+7hYkBK$6Y)49=Hh3xe+wCG{>%xRr+Ll^m?)cnAuN`$vWZ`s@vVr09g zhx?zUaZzlRBHT8Oylveaj)Yjb_ilOyv6xwItA-W|jNlPH`~Xs-8`eC0t@s`9>LiQ@ zpSjj2cQW2TjRGClf|?t{f?){N+9Gz1$M9LQhn20 ziY}P}o}RAI+k8TesY`17s_n^$9AD;AoZ%f%{IM|s0j*niTRXNbRAXrKYVx3$)ziTr zN5?-#NmEp Date: Sun, 26 Jun 2022 19:32:09 -0400 Subject: [PATCH 0549/1574] Shared code to free x509 structs Signed-off-by: Glenn Strauss --- ChangeLog.d/mbedtls_asn1_type_free.txt | 2 + include/mbedtls/asn1.h | 9 +++ library/asn1parse.c | 10 +++ library/ssl_tls12_client.c | 10 +-- library/x509.c | 15 +--- library/x509_crl.c | 24 +------ library/x509_crt.c | 80 ++-------------------- library/x509_csr.c | 12 +--- tests/suites/test_suite_x509parse.function | 24 +------ 9 files changed, 37 insertions(+), 149 deletions(-) create mode 100644 ChangeLog.d/mbedtls_asn1_type_free.txt diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt new file mode 100644 index 000000000..87ac5ec5b --- /dev/null +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -0,0 +1,2 @@ +Features + * Shared code to free x509 structs like mbedtls_x509_named_data diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index be2cae7b5..5d274950a 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -625,6 +625,15 @@ void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); +/** + * \brief Free all shallow entries in a mbedtls_asn1_named_data list, + * but do not free internal pointer targets. + * + * \param name Head of the list of named data entries to free. + * This function calls mbedtls_free() on each list element. + */ +void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ); + /** \} name Functions to parse ASN.1 data structures */ /** \} addtogroup asn1_module */ diff --git a/library/asn1parse.c b/library/asn1parse.c index d874fff46..12a378cf3 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -455,6 +455,16 @@ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) } } +void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ) +{ + for( mbedtls_asn1_named_data *next; name != NULL; name = next ) + { + next = name->next; + mbedtls_platform_zeroize( name, sizeof( *name ) ); + mbedtls_free( name ); + } +} + const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, const char *oid, size_t len ) { diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 5360b3cb7..1c53a0990 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2680,7 +2680,6 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) { unsigned char *p = dn + i + 2; mbedtls_x509_name name; - mbedtls_x509_name *name_cur, *name_prv; size_t asn1_len; char s[MBEDTLS_X509_MAX_DN_NAME_SIZE]; memset( &name, 0, sizeof( name ) ); @@ -2700,14 +2699,7 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "DN hint: %.*s", mbedtls_x509_dn_gets( s, sizeof(s), &name ), s ) ); - name_cur = name.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( name.next ); } #endif diff --git a/library/x509.c b/library/x509.c index c5b0161e7..362e03676 100644 --- a/library/x509.c +++ b/library/x509.c @@ -472,7 +472,6 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, size_t set_len; const unsigned char *end_set; mbedtls_x509_name *head = cur; - mbedtls_x509_name *prev, *allocated; /* don't use recursion, we'd risk stack overflow if not optimized */ while( 1 ) @@ -530,18 +529,8 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, error: /* Skip the first element as we did not allocate it */ - allocated = head->next; - - while( allocated != NULL ) - { - prev = allocated; - allocated = allocated->next; - - mbedtls_platform_zeroize( prev, sizeof( *prev ) ); - mbedtls_free( prev ); - } - - mbedtls_platform_zeroize( head, sizeof( *head ) ); + mbedtls_asn1_free_named_data_list_shallow( head->next ); + head->next = NULL; return( ret ); } diff --git a/library/x509_crl.c b/library/x509_crl.c index 2a3fac790..d830fcd05 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -705,28 +705,16 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) { mbedtls_x509_crl *crl_cur = crl; mbedtls_x509_crl *crl_prv; - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; mbedtls_x509_crl_entry *entry_cur; mbedtls_x509_crl_entry *entry_prv; - if( crl == NULL ) - return; - - do + while( crl_cur != NULL ) { #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) mbedtls_free( crl_cur->sig_opts ); #endif - name_cur = crl_cur->issuer.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( crl_cur->issuer.next ); entry_cur = crl_cur->entry.next; while( entry_cur != NULL ) @@ -744,13 +732,6 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) mbedtls_free( crl_cur->raw.p ); } - crl_cur = crl_cur->next; - } - while( crl_cur != NULL ); - - crl_cur = crl; - do - { crl_prv = crl_cur; crl_cur = crl_cur->next; @@ -758,7 +739,6 @@ void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) if( crl_prv != crl ) mbedtls_free( crl_prv ); } - while( crl_cur != NULL ); } #endif /* MBEDTLS_X509_CRL_PARSE_C */ diff --git a/library/x509_crt.c b/library/x509_crt.c index c4f97bbe2..81186fa0c 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -685,16 +685,7 @@ static int x509_get_subject_alt_name( unsigned char **p, */ if( ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ) { - mbedtls_x509_sequence *seq_cur = subject_alt_name->next; - mbedtls_x509_sequence *seq_prv; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } + mbedtls_asn1_sequence_free( subject_alt_name->next ); subject_alt_name->next = NULL; return( ret ); } @@ -3300,15 +3291,8 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) { mbedtls_x509_crt *cert_cur = crt; mbedtls_x509_crt *cert_prv; - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; - mbedtls_x509_sequence *seq_cur; - mbedtls_x509_sequence *seq_prv; - if( crt == NULL ) - return; - - do + while( cert_cur != NULL ) { mbedtls_pk_free( &cert_cur->pk ); @@ -3316,53 +3300,11 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) mbedtls_free( cert_cur->sig_opts ); #endif - name_cur = cert_cur->issuer.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } - - name_cur = cert_cur->subject.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } - - seq_cur = cert_cur->ext_key_usage.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } - - seq_cur = cert_cur->subject_alt_names.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } - - seq_cur = cert_cur->certificate_policies.next; - while( seq_cur != NULL ) - { - seq_prv = seq_cur; - seq_cur = seq_cur->next; - mbedtls_platform_zeroize( seq_prv, - sizeof( mbedtls_x509_sequence ) ); - mbedtls_free( seq_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( cert_cur->issuer.next ); + mbedtls_asn1_free_named_data_list_shallow( cert_cur->subject.next ); + mbedtls_asn1_sequence_free( cert_cur->ext_key_usage.next ); + mbedtls_asn1_sequence_free( cert_cur->subject_alt_names.next ); + mbedtls_asn1_sequence_free( cert_cur->certificate_policies.next ); if( cert_cur->raw.p != NULL && cert_cur->own_buffer ) { @@ -3370,13 +3312,6 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) mbedtls_free( cert_cur->raw.p ); } - cert_cur = cert_cur->next; - } - while( cert_cur != NULL ); - - cert_cur = crt; - do - { cert_prv = cert_cur; cert_cur = cert_cur->next; @@ -3384,7 +3319,6 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) if( cert_prv != crt ) mbedtls_free( cert_prv ); } - while( cert_cur != NULL ); } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) diff --git a/library/x509_csr.c b/library/x509_csr.c index dee0ea62d..f9462adde 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -375,9 +375,6 @@ void mbedtls_x509_csr_init( mbedtls_x509_csr *csr ) */ void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ) { - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; - if( csr == NULL ) return; @@ -387,14 +384,7 @@ void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ) mbedtls_free( csr->sig_opts ); #endif - name_cur = csr->subject.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_platform_zeroize( name_prv, sizeof( mbedtls_x509_name ) ); - mbedtls_free( name_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( csr->subject.next ); if( csr->raw.p != NULL ) { diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index a3606f29b..3369a8a3f 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -825,7 +825,6 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) unsigned char *p; size_t name_len; mbedtls_x509_name head; - mbedtls_x509_name *allocated, *prev; int ret; memset( &head, 0, sizeof( head ) ); @@ -835,17 +834,7 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); if( ret == 0 ) - { - allocated = head.next; - - while( allocated != NULL ) - { - prev = allocated; - allocated = allocated->next; - - mbedtls_free( prev ); - } - } + mbedtls_asn1_free_named_data_list_shallow( head.next ); TEST_EQUAL( ret, exp_ret ); @@ -859,7 +848,7 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected int ret = 0, i; size_t len = 0, out_size; mbedtls_asn1_named_data *names = NULL; - mbedtls_x509_name parsed, *parsed_cur, *parsed_prv; + mbedtls_x509_name parsed, *parsed_cur; // Size of buf is maximum required for test cases unsigned char buf[80], *out = NULL, *c; const char *short_name; @@ -913,14 +902,7 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected exit: mbedtls_free( out ); mbedtls_asn1_free_named_data_list( &names ); - - parsed_cur = parsed.next; - while( parsed_cur != 0 ) - { - parsed_prv = parsed_cur; - parsed_cur = parsed_cur->next; - mbedtls_free( parsed_prv ); - } + mbedtls_asn1_free_named_data_list_shallow( parsed.next ); } /* END_CASE */ From 7db3124c00afe5162c595c1e73eeec21438c1a23 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 1 Jul 2022 13:22:45 -0400 Subject: [PATCH 0550/1574] Skip asn1 zeroize if freeing shallow pointers This skips zeroizing additional pointers to data. (Note: actual sensitive data should still be zeroized when freed.) Signed-off-by: Glenn Strauss --- library/asn1parse.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/library/asn1parse.c b/library/asn1parse.c index 12a378cf3..4bc17710c 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -314,7 +314,6 @@ void mbedtls_asn1_sequence_free( mbedtls_asn1_sequence *seq ) while( seq != NULL ) { mbedtls_asn1_sequence *next = seq->next; - mbedtls_platform_zeroize( seq, sizeof( *seq ) ); mbedtls_free( seq ); seq = next; } @@ -450,7 +449,8 @@ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) while( ( cur = *head ) != NULL ) { *head = cur->next; - mbedtls_asn1_free_named_data( cur ); + mbedtls_free( cur->oid.p ); + mbedtls_free( cur->val.p ); mbedtls_free( cur ); } } @@ -460,7 +460,6 @@ void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ) for( mbedtls_asn1_named_data *next; name != NULL; name = next ) { next = name->next; - mbedtls_platform_zeroize( name, sizeof( *name ) ); mbedtls_free( name ); } } From bb82ab764f064495cb5890493d2519e313ce55d0 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 28 Oct 2022 12:28:54 -0500 Subject: [PATCH 0551/1574] pkcs7: Respond to feeback on parsing logic After recieving review on the pkcs7 parsing functions, attempt to use better API's, increase consisitency and use better documentation. The changes are in response to the following comments: - use mbedtls_x509_crt_parse_der instead of mbedtls_x509_crt_parse [1] - make lack of support for authenticatedAttributes more clear [2] - increment pointer in pkcs7_get_content_info_type rather than after [3] - rename `start` to `p` for consistency in mbedtls_pkcs7_parse_der [4] [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r992509630 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r992562450 [3] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r992741877 [4] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r992754103 Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 3 +++ library/pkcs7.c | 27 ++++++++++++++------------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 9486c7153..2a557bfad 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -38,6 +38,9 @@ * - The RFC specifies the Signed Data type can contain * certificate-revocation lists (crls). This implementation has no support * for crls so it is assumed to be an empty list. + * - The RFC allows for SignerInfo structure to optionally contain + * unauthenticatedAttributes and authenticatedAttributes. In Mbed TLS it is + * assumed these fields are empty. */ #ifndef MBEDTLS_PKCS7_H diff --git a/library/pkcs7.c b/library/pkcs7.c index 56b6bb617..ab7bebdf2 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -126,6 +126,7 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, pkcs7->tag = MBEDTLS_ASN1_OID; pkcs7->len = len; pkcs7->p = *p; + *p += len; out: return( ret ); @@ -197,8 +198,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len1 = 0; size_t len2 = 0; - unsigned char *end_set, *end_cert; - unsigned char *start = *p; + unsigned char *end_set, *end_cert, *start; if( ( ret = mbedtls_asn1_get_tag( p, end, &len1, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) @@ -235,7 +235,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, } *p = start; - if( ( ret = mbedtls_x509_crt_parse( certs, *p, len1 ) ) < 0 ) + if( ( ret = mbedtls_x509_crt_parse_der( certs, *p, len1 ) ) < 0 ) { ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; goto out; @@ -289,6 +289,8 @@ out: * [1] IMPLICIT Attributes OPTIONAL, * Returns 0 if the signerInfo is valid. * Return negative error code for failure. + * Structure must not contain vales for authenticatedAttributes + * and unauthenticatedAttributes. **/ static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, mbedtls_pkcs7_signer_info *signer ) @@ -335,6 +337,8 @@ static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, if( ret != 0 ) goto out; + /* Asssume authenticatedAttributes is nonexistent */ + ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->sig_alg_identifier ); if( ret != 0 ) goto out; @@ -510,8 +514,6 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, goto out; } - p = p + signed_data->content.oid.len; - /* Look for certificates, there may or may not be any */ mbedtls_x509_crt_init( &signed_data->certs ); ret = pkcs7_get_certificates( &p, end_set, &signed_data->certs ); @@ -548,7 +550,7 @@ out: int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, const size_t buflen ) { - unsigned char *start; + unsigned char *p; unsigned char *end; size_t len = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -561,17 +563,17 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, } /* make an internal copy of the buffer for parsing */ - pkcs7->raw.p = start = mbedtls_calloc( 1, buflen ); + pkcs7->raw.p = p = mbedtls_calloc( 1, buflen ); if( pkcs7->raw.p == NULL ) { ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; goto out; } - memcpy( start, buf, buflen ); + memcpy( p, buf, buflen ); pkcs7->raw.len = buflen; - end = start + buflen; + end = p + buflen; - ret = pkcs7_get_content_info_type( &start, end, &pkcs7->content_type_oid ); + ret = pkcs7_get_content_info_type( &p, end, &pkcs7->content_type_oid ); if( ret != 0 ) { len = buflen; @@ -596,14 +598,13 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, } isoidset = 1; - start = start + pkcs7->content_type_oid.len; - ret = pkcs7_get_next_content_len( &start, end, &len ); + ret = pkcs7_get_next_content_len( &p, end, &len ); if( ret != 0 ) goto out; try_data: - ret = pkcs7_get_signed_data( start, len, &pkcs7->signed_data ); + ret = pkcs7_get_signed_data( p, len, &pkcs7->signed_data ); if ( ret != 0 ) goto out; From 5f39767495331edc29417c52e55f06a0ab665d41 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Fri, 28 Oct 2022 12:38:41 -0500 Subject: [PATCH 0552/1574] pkcs7: Fix imports Respond to feedback about duplicate imports[1] and new import style [2]. [1] https://github.com/Mbed-TLS/mbedtls/pull/3431#discussion_r991355485 [2] https://github.com/Mbed-TLS/mbedtls/pull/3431#pullrequestreview-1138745361 Signed-off-by: Nick Child --- library/pkcs7.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index ab7bebdf2..7976a0b3a 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -34,17 +34,8 @@ #include #endif -#if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" #include "mbedtls/platform_util.h" -#else -#include -#include -#define mbedtls_free free -#define mbedtls_calloc calloc -#define mbedtls_printf printf -#define mbedtls_snprintf snprintf -#endif #if defined(MBEDTLS_HAVE_TIME) #include "mbedtls/platform_time.h" From 4bb369c4eb155711099fca602d16761831532168 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:44:19 +0200 Subject: [PATCH 0553/1574] Always enable MBEDTLS_TEST_HOOKS in TLS 1.3-only test configurations MBEDTLS_TEST_HOOKS is not supposed to change the behavior of the library, so it's generally good to have it on in functional tests. Signed-off-by: Gilles Peskine --- tests/configs/tls13-only.h | 5 +++++ tests/scripts/all.sh | 16 ++-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/tests/configs/tls13-only.h b/tests/configs/tls13-only.h index 0a22c544b..7483f1cd9 100644 --- a/tests/configs/tls13-only.h +++ b/tests/configs/tls13-only.h @@ -22,9 +22,11 @@ * limitations under the License. */ +/* Enable TLS 1.3 and core 1.3 features */ #define MBEDTLS_SSL_PROTO_TLS1_3 #define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +/* Disable TLS 1.2 and 1.2-specific features */ #undef MBEDTLS_SSL_ENCRYPT_THEN_MAC #undef MBEDTLS_SSL_EXTENDED_MASTER_SECRET #undef MBEDTLS_SSL_PROTO_TLS1_2 @@ -32,3 +34,6 @@ #undef MBEDTLS_SSL_DTLS_ANTI_REPLAY #undef MBEDTLS_SSL_DTLS_HELLO_VERIFY #undef MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE + +/* Enable some invasive tests */ +#define MBEDTLS_TEST_HOOKS diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e8f172607..6e1d4014a 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3248,8 +3248,8 @@ component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - msg "test_suite_ssl: TLS 1.3 only, all key exchange modes enabled" - cd tests; ./test_suite_ssl; cd .. + msg "test: TLS 1.3 only, all key exchange modes enabled" + make test msg "ssl-opt.sh: TLS 1.3 only, all key exchange modes enabled" tests/ssl-opt.sh @@ -3334,18 +3334,6 @@ component_test_tls13_only_ephemeral_all () { tests/ssl-opt.sh } -component_test_tls13_only_with_hooks () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 and MBEDTLS_TEST_HOOKS, without MBEDTLS_SSL_PROTO_TLS1_2" - scripts/config.py set MBEDTLS_TEST_HOOKS - make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" - - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without MBEDTLS_SSL_PROTO_TLS1_2" - if_build_succeeded make test - - msg "ssl-opt.sh (TLS 1.3)" - if_build_succeeded tests/ssl-opt.sh -} - component_test_tls13 () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding" scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 From 8a4fd0e7a9b04b82cf6331b54cd5b296fe9cb8d3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:51:19 +0200 Subject: [PATCH 0554/1574] Remove redundant build-only driver interface component component_build_psa_accel_alg_ecdsa is subsumed by component_test_psa_crypto_config_accel_ecdsa, which has the same configuration and additionally runs the unit tests. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6e1d4014a..823164456 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2238,25 +2238,6 @@ component_test_psa_crypto_config_chachapoly_disabled() { make test } -# This should be renamed to test and updated once the accelerator ECDSA code is in place and ready to test. -component_build_psa_accel_alg_ecdsa() { - # full plus MBEDTLS_PSA_CRYPTO_CONFIG with PSA_WANT_ALG_ECDSA - # without MBEDTLS_ECDSA_C - # PSA_WANT_ALG_ECDSA and PSA_WANT_ALG_DETERMINISTIC_ECDSA are already - # set in include/psa/crypto_config.h - msg "build: full + MBEDTLS_PSA_CRYPTO_CONFIG + PSA_WANT_ALG_ECDSA without MBEDTLS_ECDSA_C" - scripts/config.py full - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS - scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO - scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py unset MBEDTLS_ECDSA_C - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED - # Need to define the correct symbol and include the test driver header path in order to build with the test driver - make CC=gcc CFLAGS="$ASAN_CFLAGS -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_PSA_ACCEL_ALG_ECDSA -DMBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA -I../tests/include -O2" LDFLAGS="$ASAN_CFLAGS" -} - # This should be renamed to test and updated once the accelerator ECDH code is in place and ready to test. component_build_psa_accel_alg_ecdh() { # full plus MBEDTLS_PSA_CRYPTO_CONFIG with PSA_WANT_ALG_ECDH From 78e06a1054d89a2db0eadfee219c9127b39272ea Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 29 Oct 2022 17:55:11 +0200 Subject: [PATCH 0555/1574] Remove redundant TLS 1.3 components * component_test_tls13_with_padding: just explicitly sets some options that are identical with full. * component_test_tls13_with_ecp_restartable: redundant since TLS 1.3 doesn't have any support for restartable ECC. * component_test_tls13_with_everest: not useful since TLS 1.3 doesn't call ECDH directly, it just relies on the PSA abstraction. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 40 ---------------------------------------- 1 file changed, 40 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 823164456..12affa19f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3341,46 +3341,6 @@ component_test_tls13_no_compatibility_mode () { tests/ssl-opt.sh } -component_test_tls13_with_padding () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16 - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with padding" - make test - msg "ssl-opt.sh (TLS 1.3 with padding)" - tests/ssl-opt.sh -} - -component_test_tls13_with_ecp_restartable () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_ECP_RESTARTABLE - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with ecp_restartable" - make test - msg "ssl-opt.sh (TLS 1.3 with ecp_restartable)" - tests/ssl-opt.sh -} - -component_test_tls13_with_everest () { - msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest" - scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 - scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE - scripts/config.py set MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED - scripts/config.py unset MBEDTLS_ECP_RESTARTABLE - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, with Everest" - make test - msg "ssl-opt.sh (TLS 1.3 with everest)" - tests/ssl-opt.sh -} - component_build_mingw () { msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s make CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 lib programs From 2883219edbb54d02d2954d8fec43b820e64a0b48 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 13:53:31 +0800 Subject: [PATCH 0556/1574] Improve output message Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 11c3ccc26..86a9c1e19 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2241,7 +2241,7 @@ int main( int argc, char *argv[] ) "to an appropriate value.\n" " Alternatively, you may want to use " "auth_mode=optional for testing purposes if " - "server is not TLS 1.3.\n" + "not using TLS 1.3.\n" " For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`" "or other folder that has root certificates\n" ); mbedtls_printf( "\n" ); From def7ae4404f707aa3ce2228137d5e88804bb5a35 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 14:13:19 +0800 Subject: [PATCH 0557/1574] Add auth mode check Signed-off-by: Jerry Yu --- library/ssl_tls.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed..6446b760e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1012,6 +1012,30 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl) if( ret != 0 ) return( ret ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + /* RFC 8446 section 4.4.3 + * + * If the verification fails, the receiver MUST terminate the handshake with + * a "decrypt_error" alert. + * + * If the client is configured as TLS 1.3 only with optional verify, return + * bad config. + * + */ + if( mbedtls_ssl_conf_tls13_ephemeral_enabled( + (mbedtls_ssl_context *)ssl ) && + ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && + ssl->conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) + { + MBEDTLS_SSL_DEBUG_MSG( + 1, ( "Optional verfiy auth mode " + "is not available for TLS 1.3 client" ) ); + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + /* Space for further checks */ return( 0 ); From 12f5c6b2bcc9e9f8e64a6324c9b5c2fe58c4cce4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 14:24:07 +0800 Subject: [PATCH 0558/1574] Add changelog entry Signed-off-by: Jerry Yu --- ...session_resumption_fail_when_hostname_is_not_localhost.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt new file mode 100644 index 000000000..4a4d535ae --- /dev/null +++ b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix TLS 1.3 session reumption fail. Fixes #6488. + * Add configuration check to exclude TLS 1.3 optional authentication of + client. From da6017cbe340ab9907e4882816c3ffdbfa1bf815 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 30 Oct 2022 21:02:40 +0100 Subject: [PATCH 0559/1574] Group cpp_dummy_build test into an existing component No need to do yet another build just to compile an additional trivial program. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 12affa19f..9295c9d00 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1542,12 +1542,15 @@ component_test_psa_collect_statuses () { component_test_full_cmake_clang () { msg "build: cmake, full config, clang" # ~ 50s scripts/config.py full - CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On . + CC=clang CXX=clang cmake -D CMAKE_BUILD_TYPE:String=Release -D ENABLE_TESTING=On -D TEST_CPP=1 . make msg "test: main suites (full config, clang)" # ~ 5s make test + msg "test: cpp_dummy_build (full config, clang)" # ~ 1s + programs/test/cpp_dummy_build + msg "test: psa_constant_names (full config, clang)" # ~ 1s tests/scripts/test_psa_constant_names.py @@ -1842,15 +1845,6 @@ component_test_depends_py_pkalgs_psa () { tests/scripts/depends.py pkalgs } -component_test_make_cxx () { - msg "build: Unix make, full, gcc + g++" - scripts/config.py full - make TEST_CPP=1 lib programs - - msg "test: cpp_dummy_build" - programs/test/cpp_dummy_build -} - component_build_module_alt () { msg "build: MBEDTLS_XXX_ALT" # ~30s scripts/config.py full From 471dee5a128a33da461eaf7e546188b99572f7bb Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:33:14 +0800 Subject: [PATCH 0560/1574] Add debug helpers to track extensions Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 21 ++++++ library/ssl_tls13_generic.c | 126 ++++++++++++++++++++++++++++++++++++ library/ssl_tls13_server.c | 60 +---------------- 3 files changed, 150 insertions(+), 57 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 9f1df736b..07e8c7103 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -45,4 +45,25 @@ const char *mbedtls_ssl_named_group_to_str( uint16_t in ); #endif /* MBEDTLS_DEBUG_C */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_DEBUG_C) + +const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); + +void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + const char *hs_msg_name, + uint32_t extensions_present ); + +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) \ + mbedtls_ssl_tls13_print_extensions( \ + ssl, level, __FILE__, __LINE__, hs_msg_name, extensions_present ) +#else + +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) + +#endif + +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + #endif /* SSL_DEBUG_HELPERS_H */ diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 48e367582..662e6f4c8 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1485,4 +1485,130 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_DEBUG_C) +const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( "server_name" ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( "max_fragment_length" ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( "status_request" ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( "supported_groups" ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( "signature_algorithms" ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( "use_srtp" ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( "heartbeat" ); + + case MBEDTLS_TLS_EXT_ALPN: + return( "application_layer_protocol_negotiation" ); + + case MBEDTLS_TLS_EXT_SCT: + return( "signed_certificate_timestamp" ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( "client_certificate_type" ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( "server_certificate_type" ); + + case MBEDTLS_TLS_EXT_PADDING: + return( "padding" ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( "pre_shared_key" ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( "early_data" ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( "supported_versions" ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( "cookie" ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( "psk_key_exchange_modes" ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( "certificate_authorities" ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( "oid_filters" ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( "post_handshake_auth" ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( "signature_algorithms_cert" ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( "key_share" ); + }; + + return( "unknown" ); +} + +void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + const char *hs_msg_name, + uint32_t extensions_present ) +{ + static const struct{ + uint32_t extension_mask; + const char *extension_name; + } mask_to_str_table[] = { + { MBEDTLS_SSL_EXT_SERVERNAME, "server_name" }, + { MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH, "max_fragment_length" }, + { MBEDTLS_SSL_EXT_STATUS_REQUEST, "status_request" }, + { MBEDTLS_SSL_EXT_SUPPORTED_GROUPS, "supported_groups" }, + { MBEDTLS_SSL_EXT_SIG_ALG, "signature_algorithms" }, + { MBEDTLS_SSL_EXT_USE_SRTP, "use_srtp" }, + { MBEDTLS_SSL_EXT_HEARTBEAT, "heartbeat" }, + { MBEDTLS_SSL_EXT_ALPN, "application_layer_protocol_negotiation" }, + { MBEDTLS_SSL_EXT_SCT, "signed_certificate_timestamp" }, + { MBEDTLS_SSL_EXT_CLI_CERT_TYPE, "client_certificate_type" }, + { MBEDTLS_SSL_EXT_SERV_CERT_TYPE, "server_certificate_type" }, + { MBEDTLS_SSL_EXT_PADDING, "padding" }, + { MBEDTLS_SSL_EXT_PRE_SHARED_KEY, "pre_shared_key" }, + { MBEDTLS_SSL_EXT_EARLY_DATA, "early_data" }, + { MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS, "supported_versions" }, + { MBEDTLS_SSL_EXT_COOKIE, "cookie" }, + { MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES, "psk_key_exchange_modes" }, + { MBEDTLS_SSL_EXT_CERT_AUTH, "certificate_authorities" }, + { MBEDTLS_SSL_EXT_OID_FILTERS, "oid_filters" }, + { MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH, "post_handshake_auth" }, + { MBEDTLS_SSL_EXT_SIG_ALG_CERT, "signature_algorithms_cert" }, + { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; + + mbedtls_debug_print_msg( ssl, level, file, line, + "extension list of %s:", hs_msg_name ); + + for( unsigned i = 0; + i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); + i++ ) + { + const char *extension_name = mask_to_str_table[i].extension_name; + uint32_t is_present = extensions_present & + mask_to_str_table[i].extension_mask; + + mbedtls_debug_print_msg( ssl, level, file, line, + "- %s extension ( %s )", extension_name, + is_present ? "true" : "false" ); + } +} + +#endif /* MBEDTLS_DEBUG_C */ + #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3762393b9..b24aa4a8c 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -926,56 +926,6 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_DEBUG_C) -static void ssl_tls13_debug_print_client_hello_exts( mbedtls_ssl_context *ssl ) -{ - ((void) ssl); - - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Supported Extensions:" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- KEY_SHARE_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_KEY_SHARE ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- PSK_KEY_EXCHANGE_MODES_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) > 0 ) ? - "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- PRE_SHARED_KEY_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SIGNATURE_ALGORITHM_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SIG_ALG ) > 0 ) ? "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SUPPORTED_GROUPS_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ) >0 ) ? - "TRUE" : "FALSE" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SUPPORTED_VERSION_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#if defined ( MBEDTLS_SSL_SERVER_NAME_INDICATION ) - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- SERVERNAME_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_SERVERNAME ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ -#if defined ( MBEDTLS_SSL_ALPN ) - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "- ALPN_EXTENSION ( %s )", - ( ( ssl->handshake->extensions_present - & MBEDTLS_SSL_EXT_ALPN ) > 0 ) ? - "TRUE" : "FALSE" ) ); -#endif /* MBEDTLS_SSL_ALPN */ -} -#endif /* MBEDTLS_DEBUG_C */ - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, int exts_mask ) @@ -1655,18 +1605,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, default: MBEDTLS_SSL_DEBUG_MSG( 3, - ( "unknown extension found: %ud ( ignoring )", - extension_type ) ); + ( "client hello: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); } p += extension_data_len; } -#if defined(MBEDTLS_DEBUG_C) - /* List all the extensions we have received */ - ssl_tls13_debug_print_client_hello_exts( ssl ); -#endif /* MBEDTLS_DEBUG_C */ - mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); From e18dc7eb9ac8d4d4161dace796c436cb6a2ef225 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:29:22 +0800 Subject: [PATCH 0561/1574] Add forbidden extensions check for ClientHello Signed-off-by: Jerry Yu --- library/ssl_misc.h | 173 ++++++++++++++++++++++++++++++++++++- library/ssl_tls13_server.c | 57 +++++++++--- 2 files changed, 216 insertions(+), 14 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514..cf3010a8f 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,6 +103,93 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) +/* Except ServerHello, other message should ignore unrecognized extension. + * + * RFC 8446 page 31 + * + * The ServerHello MUST only include extensions which are required to establish + * the cryptographic context and negotiate the protocol version. + * + * RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which is + * not specified for the message in which it appears, it MUST abort the handshake + * with an "illegal_parameter" alert. + */ +#define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) + +/* RFC 8446 page 36. Allowed extensions for ClienHello */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ + ( MBEDTLS_SSL_EXT_SERVERNAME | \ + MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ + MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ + MBEDTLS_SSL_EXT_SIG_ALG | \ + MBEDTLS_SSL_EXT_USE_SRTP | \ + MBEDTLS_SSL_EXT_HEARTBEAT | \ + MBEDTLS_SSL_EXT_ALPN | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ + MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ + MBEDTLS_SSL_EXT_PADDING | \ + MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ + MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES | \ + MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_COOKIE | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ + MBEDTLS_SSL_EXT_CERT_AUTH | \ + MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH | \ + MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for EncryptedExtensions */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ + ( MBEDTLS_SSL_EXT_SERVERNAME | \ + MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ + MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ + MBEDTLS_SSL_EXT_USE_SRTP | \ + MBEDTLS_SSL_EXT_HEARTBEAT | \ + MBEDTLS_SSL_EXT_ALPN | \ + MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ + MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ + MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for CertificateRequest */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ + ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SIG_ALG | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_CERT_AUTH | \ + MBEDTLS_SSL_EXT_OID_FILTERS | \ + MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for Certificate */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ + ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ + MBEDTLS_SSL_EXT_SCT | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for ServerHello */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ + ( MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + +/* RFC 8446 page 36. Allowed extensions for HelloRetryRequest */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ + ( MBEDTLS_SSL_EXT_KEY_SHARE | \ + MBEDTLS_SSL_EXT_COOKIE | \ + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + +/* RFC 8446 page 36. Allowed extensions for NewSessionTicket */ +#define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ + ( MBEDTLS_SSL_EXT_EARLY_DATA | \ + MBEDTLS_SSL_EXT_UNRECOGNIZED ) + /* * Helper macros for function call with return check. */ @@ -858,7 +945,7 @@ struct mbedtls_ssl_handshake_params #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - int extensions_present; /*!< extension presence; Each bitfield + uint32_t extensions_present; /*!< extension presence; Each bitfield represents an extension and defined as \c MBEDTLS_SSL_EXT_XXX */ @@ -1838,6 +1925,90 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ +/* + * Helper functions to check if the extension is allowed or forbiden + */ +static inline int mbedtls_ssl_tls13_has_extensions( mbedtls_ssl_context *ssl, + int extensions_mask ) +{ + int masked = ssl->handshake->extensions_present & extensions_mask; + return( masked != 0 ); +} + +static inline int mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_KEY_SHARE ); + }; + + return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); +} + /* * Helper functions to check the selected key exchange mode. */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index b24aa4a8c..32f64d73c 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1239,6 +1239,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; + uint32_t extensions_present; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1247,7 +1248,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *pre_shared_key_ext_end = NULL; #endif - ssl->handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + extensions_present = MBEDTLS_SSL_EXT_NONE; /* * ClientHello layout: @@ -1431,7 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( ssl->handshake->extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1449,6 +1450,27 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -1462,7 +1484,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 1, "mbedtls_ssl_parse_servername_ext", ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SERVERNAME; break; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ @@ -1485,7 +1506,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_GROUPS; break; #endif /* MBEDTLS_ECDH_C */ @@ -1515,7 +1535,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; break; #endif /* MBEDTLS_ECDH_C */ @@ -1530,7 +1549,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ( "ssl_tls13_parse_supported_versions_ext" ), ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS; break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1546,13 +1564,12 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; break; #endif case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( ssl->handshake->extensions_present & + if( ( extensions_present & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( @@ -1567,8 +1584,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, */ pre_shared_key_ext = p; pre_shared_key_ext_end = extension_data_end; -#endif - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ break; #if defined(MBEDTLS_SSL_ALPN) @@ -1582,7 +1598,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 1, ( "mbedtls_ssl_parse_alpn_ext" ), ret ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_ALPN; break; #endif /* MBEDTLS_SSL_ALPN */ @@ -1599,7 +1614,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ret ) ); return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -1613,6 +1627,22 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "ClientHello", extensions_present ); + + /* RFC 8446 page 102 + * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and + * HelloRetryRequest messages. + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "client hello: supported_versions not found" ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, p - buf ); @@ -1636,7 +1666,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - ssl->handshake->extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1651,6 +1681,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->update_checksum( ssl, buf, p - buf ); } + ssl->handshake->extensions_present = extensions_present; ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); From cbd082f396eabdba054c03215b6636c254275d87 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 16:55:10 +0800 Subject: [PATCH 0562/1574] Add extension check for EncryptedExtensions Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 40 +++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index ac19f6308..db0eb44d7 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -32,6 +32,7 @@ #include "ssl_misc.h" #include "ssl_client.h" #include "ssl_tls13_keys.h" +#include "ssl_debug_helpers.h" /* Write extensions */ @@ -1969,6 +1970,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; + uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -1978,6 +1980,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; @@ -1996,10 +2000,27 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* The client MUST check EncryptedExtensions for the - * presence of any forbidden extensions and if any are found MUST abort - * the handshake with an "unsupported_extension" alert. + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_SERVERNAME: @@ -2024,17 +2045,18 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "unsupported extension found: %u ", extension_type) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); - return ( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + break; } p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "EncrypedExtensions", extensions_present ); + /* Check that we consumed all the message. */ if( p != end ) { From c55a6af9eb9749cba60c67954b4d077e21e9d0ac Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:01:21 +0800 Subject: [PATCH 0563/1574] Add extensions check for CertificateRequest Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 66 +++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index db0eb44d7..599f488be 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2162,7 +2162,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; - unsigned char sig_alg_ext_found = 0; + uint32_t extensions_present; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2202,10 +2202,13 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; + uint32_t extension_mask; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2214,6 +2217,38 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extension_mask & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + + if( extensions_present & extension_mask ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Duplicate %s extensions found", + mbedtls_tls13_get_extension_name( extension_type ) ) ); + goto decode_error; + + } + extensions_present |= extension_mask; + switch( extension_type ) { case MBEDTLS_TLS_EXT_SIG_ALG: @@ -2223,25 +2258,22 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p + extension_data_len ); if( ret != 0 ) return( ret ); - if( ! sig_alg_ext_found ) - sig_alg_ext_found = 1; - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Duplicate signature algorithms extensions found" ) ); - goto decode_error; - } + break; default: - MBEDTLS_SSL_DEBUG_MSG( - 3, - ( "unknown extension found: %u ( ignoring )", - extension_type ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "certificate request: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); break; } + p += extension_data_len; } + + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "CertificateRequest", extensions_present ); + /* Check that we consumed all the message. */ if( p != end ) { @@ -2249,8 +2281,12 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, ( "CertificateRequest misaligned" ) ); goto decode_error; } - /* Check that we found signature algorithms extension */ - if( ! sig_alg_ext_found ) + + /* RFC 8446 page 60 + * + * The "signature_algorithms" extension MUST be specified + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); From 2eaa76044b13e6ced8d828438629718c3221cc2f Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:28:15 +0800 Subject: [PATCH 0564/1574] Add extension check for Certificate Signed-off-by: Jerry Yu --- library/ssl_tls13_generic.c | 59 ++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 662e6f4c8..bd56666a9 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -447,6 +447,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, while( p < certificate_list_end ) { size_t cert_data_len, extensions_len; + const unsigned char *extensions_end; + uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 3 ); cert_data_len = MBEDTLS_GET_UINT24_BE( p, 0 ); @@ -504,7 +506,62 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); p += 2; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); - p += extensions_len; + + extensions_end = p + extensions_len; + extensions_present = MBEDTLS_SSL_EXT_NONE; + + while( p < extensions_end ) + { + unsigned int extension_type; + size_t extension_data_len; + + /* + * struct { + * ExtensionType extension_type; (2 bytes) + * opaque extension_data<0..2^16-1>; + * } Extension; + */ + MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); + extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); + extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + p += 4; + + MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and + * which is not specified for the message in which it appears, it MUST + * abort the handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "encrypted extensions : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) + { + default: + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Certificate: received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + break; + } + + p += extension_data_len; + } + + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "Certificate", extensions_present ); } exit: From 2c5363e58b92c245e03dd0ad3997622d6bedf320 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:42:49 +0800 Subject: [PATCH 0565/1574] Add extension check for ServerHello and HRR Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 50 +++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 599f488be..f42e591bd 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1496,6 +1496,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, mbedtls_ssl_handshake_params *handshake = ssl->handshake; size_t extensions_len; const unsigned char *extensions_end; + uint32_t extensions_present, allowed_extension_mask; uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; @@ -1641,6 +1642,11 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); + extensions_present = MBEDTLS_SSL_EXT_NONE; + allowed_extension_mask = is_hrr ? + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; + while( p < extensions_end ) { unsigned int extension_type; @@ -1655,6 +1661,24 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s: received %s(%u) extension", + is_hrr ? "hello retry request" : "server hello", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & allowed_extension_mask ) == 0 ) + { + fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; + goto cleanup; + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_COOKIE: @@ -1727,18 +1751,32 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( - 3, - ( "unknown extension found: %u ( ignoring )", + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s: ignore %s(%u) extension", + is_hrr ? "hello retry request" : "server hello", + mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); - - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; + break; } p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); + + /* RFC 8446 page 102 + * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and + * HelloRetryRequest messages. + */ + if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "%s: supported_versions not found", + is_hrr ? "hello retry request" : "server hello" ) ); + fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; + } + cleanup: if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ) From 6ba9f1c959cdcb30e0da23c1a7ced1ceb85e73a6 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 4 Aug 2022 17:53:25 +0800 Subject: [PATCH 0566/1574] Add extension check for NewSessionTicket Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f42e591bd..1abe09e5e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2565,9 +2565,12 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *end ) { const unsigned char *p = buf; + uint32_t extensions_present; ((void) ssl); + extensions_present = MBEDTLS_SSL_EXT_NONE; + while( p < end ) { unsigned int extension_type; @@ -2580,6 +2583,27 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); + /* RFC 8446 page 35 + * + * If an implementation receives an extension which it recognizes and which + * is not specified for the message in which it appears, it MUST abort the + * handshake with an "illegal_parameter" alert. + */ + extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "NewSessionTicket : received %s(%u) extension", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); + if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "forbidden extension received." ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + switch( extension_type ) { case MBEDTLS_TLS_EXT_EARLY_DATA: @@ -2587,11 +2611,18 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, break; default: + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "NewSessionTicket : received %s(%u) extension ( ignored )", + mbedtls_tls13_get_extension_name( extension_type ), + extension_type ) ); break; } + p += extension_data_len; } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "NewSessionTicket", extensions_present ); + return( 0 ); } From d15992d3ce5aba001a843b0b832cbbf3a4cd8da5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 10:58:31 +0800 Subject: [PATCH 0567/1574] fix wrong setting of unrecognized ext Signed-off-by: Jerry Yu --- library/ssl_misc.h | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index cf3010a8f..aaa910fc8 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,14 +103,18 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) -/* Except ServerHello, other message should ignore unrecognized extension. +/* For request messages, we should just ignore unrecognized extension when + * parsing messages. For response messages, we should not ignore unrecognized + * extension when parsing messages. Request messages include ClientHello, + * Certificate and NewSessionTicket. Response messages include ServerHello, + * EncryptExtensions, Certificate and HelloRetryRequest. * - * RFC 8446 page 31 + * RFC 8446 section 4.1.3 * * The ServerHello MUST only include extensions which are required to establish * the cryptographic context and negotiate the protocol version. * - * RFC 8446 page 35 + * RFC 8446 section 4.2 * * If an implementation receives an extension which it recognizes and which is * not specified for the message in which it appears, it MUST abort the handshake @@ -118,7 +122,7 @@ */ #define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) -/* RFC 8446 page 36. Allowed extensions for ClienHello */ +/* RFC 8446 section 4.2. Allowed extensions for ClienHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ ( MBEDTLS_SSL_EXT_SERVERNAME | \ MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ @@ -143,7 +147,7 @@ MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) -/* RFC 8446 page 36. Allowed extensions for EncryptedExtensions */ +/* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ ( MBEDTLS_SSL_EXT_SERVERNAME | \ MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ @@ -153,10 +157,9 @@ MBEDTLS_SSL_EXT_ALPN | \ MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_EARLY_DATA ) -/* RFC 8446 page 36. Allowed extensions for CertificateRequest */ +/* RFC 8446 section 4.2. Allowed extensions for CertificateRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ MBEDTLS_SSL_EXT_SIG_ALG | \ @@ -166,26 +169,24 @@ MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) -/* RFC 8446 page 36. Allowed extensions for Certificate */ +/* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_SCT ) -/* RFC 8446 page 36. Allowed extensions for ServerHello */ +/* RFC 8446 section 4.2. Allowed extensions for ServerHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ ( MBEDTLS_SSL_EXT_KEY_SHARE | \ MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) -/* RFC 8446 page 36. Allowed extensions for HelloRetryRequest */ +/* RFC 8446 section 4.2. Allowed extensions for HelloRetryRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ ( MBEDTLS_SSL_EXT_KEY_SHARE | \ MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) -/* RFC 8446 page 36. Allowed extensions for NewSessionTicket */ +/* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ ( MBEDTLS_SSL_EXT_EARLY_DATA | \ MBEDTLS_SSL_EXT_UNRECOGNIZED ) From 43ff252688c77568d3a19f43e75efa96effbee60 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 12:58:05 +0800 Subject: [PATCH 0568/1574] Remove unnecessary checks. Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 1abe09e5e..5b7a14a28 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1683,12 +1683,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, { case MBEDTLS_TLS_EXT_COOKIE: - if( !is_hrr ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; - } - ret = ssl_tls13_parse_cookie_ext( ssl, p, extension_data_end ); if( ret != 0 ) @@ -1711,11 +1705,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( is_hrr ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; - goto cleanup; - } if( ( ret = ssl_tls13_parse_server_pre_shared_key_ext( ssl, p, extension_data_end ) ) != 0 ) @@ -1765,18 +1754,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); - /* RFC 8446 page 102 - * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and - * HelloRetryRequest messages. - */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "%s: supported_versions not found", - is_hrr ? "hello retry request" : "server hello" ) ); - fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; - } - cleanup: if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ) @@ -2277,14 +2254,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - if( extensions_present & extension_mask ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Duplicate %s extensions found", - mbedtls_tls13_get_extension_name( extension_type ) ) ); - goto decode_error; - - } extensions_present |= extension_mask; switch( extension_type ) From 9872eb2d691602f51fae5629c2ff606666c25f80 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 13:42:01 +0800 Subject: [PATCH 0569/1574] change return type for unexpected extension Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 5b7a14a28..2e0599d00 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1740,12 +1740,13 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s: ignore %s(%u) extension", + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "%s: unexpected extension (%s(%u)) received .", is_hrr ? "hello retry request" : "server hello", mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); - break; + ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; + goto cleanup; } p += extension_data_len; From ffa15827933a9fcc5af5fb39155a4650e56bb48d Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 15:19:42 +0800 Subject: [PATCH 0570/1574] move get_extension mask Signed-off-by: Jerry Yu --- library/ssl_misc.h | 81 +------------------------------------ library/ssl_tls13_generic.c | 74 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 79 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index aaa910fc8..10ebfff98 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1927,88 +1927,11 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* - * Helper functions to check if the extension is allowed or forbiden + * Helper functions for extensions checking and convert. */ -static inline int mbedtls_ssl_tls13_has_extensions( mbedtls_ssl_context *ssl, - int extensions_mask ) -{ - int masked = ssl->handshake->extensions_present & extensions_mask; - return( masked != 0 ); -} -static inline int mbedtls_tls13_get_extension_mask( uint16_t extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( MBEDTLS_SSL_EXT_SERVERNAME ); +uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( MBEDTLS_SSL_EXT_SIG_ALG ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( MBEDTLS_SSL_EXT_USE_SRTP ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( MBEDTLS_SSL_EXT_HEARTBEAT ); - - case MBEDTLS_TLS_EXT_ALPN: - return( MBEDTLS_SSL_EXT_ALPN ); - - case MBEDTLS_TLS_EXT_SCT: - return( MBEDTLS_SSL_EXT_SCT ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_PADDING: - return( MBEDTLS_SSL_EXT_PADDING ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( MBEDTLS_SSL_EXT_EARLY_DATA ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( MBEDTLS_SSL_EXT_COOKIE ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( MBEDTLS_SSL_EXT_CERT_AUTH ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( MBEDTLS_SSL_EXT_OID_FILTERS ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( MBEDTLS_SSL_EXT_KEY_SHARE ); - }; - - return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); -} /* * Helper functions to check the selected key exchange mode. diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index bd56666a9..5eac1f1b1 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1542,6 +1542,80 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ +uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_KEY_SHARE ); + }; + + return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); +} + #if defined(MBEDTLS_DEBUG_C) const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) { From 0c354a211bed62b86e8c00b6eb806e16e0dc563a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 29 Aug 2022 15:25:36 +0800 Subject: [PATCH 0571/1574] introduce sent/recv extensions field And remove `extensions_present` Signed-off-by: Jerry Yu --- library/ssl_client.c | 24 ++++- library/ssl_debug_helpers.h | 6 +- library/ssl_misc.h | 17 +++- library/ssl_tls.c | 8 +- library/ssl_tls13_client.c | 189 +++++++++++++++--------------------- library/ssl_tls13_generic.c | 118 +++++++++++++++++----- library/ssl_tls13_server.c | 64 ++++-------- 7 files changed, 235 insertions(+), 191 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index d9c678159..b0d2dcf3c 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -106,6 +106,14 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, *olen = hostname_len + 9; +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SERVERNAME ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SERVERNAME ) ) ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ @@ -177,6 +185,14 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, /* Extension length = *out_len - 2 (ext_type) - 2 (ext_len) */ MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_ALPN ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_ALPN ) ) ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } #endif /* MBEDTLS_SSL_ALPN */ @@ -296,7 +312,11 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SUPPORTED_GROUPS; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); + MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); @@ -557,7 +577,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Keeping track of the included extensions */ - handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + handshake->sent_extensions = MBEDTLS_SSL_EXT_NONE; #endif /* First write extensions, then the total length */ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 07e8c7103..6b97bc652 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -52,12 +52,12 @@ const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, int level, const char *file, int line, - const char *hs_msg_name, + int hs_msg_type, uint32_t extensions_present ); -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) \ +#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_type, extensions_present ) \ mbedtls_ssl_tls13_print_extensions( \ - ssl, level, __FILE__, __LINE__, hs_msg_name, extensions_present ) + ssl, level, __FILE__, __LINE__, hs_msg_type, extensions_present ) #else #define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 10ebfff98..b7f1440bb 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -946,9 +946,8 @@ struct mbedtls_ssl_handshake_params #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - uint32_t extensions_present; /*!< extension presence; Each bitfield - represents an extension and defined - as \c MBEDTLS_SSL_EXT_XXX */ + uint32_t sent_extensions; /*!< extensions sent by endpoint */ + uint32_t received_extensions; /*!< extensions received by endpoint */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) unsigned char certificate_request_context_len; @@ -1932,6 +1931,18 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, + int hs_msg_type, + uint32_t extension_type, + uint32_t allowed_mask ); + +static inline void mbedtls_tls13_set_sent_ext_mask( mbedtls_ssl_context *ssl, + uint16_t extension_type ) +{ + ssl->handshake->sent_extensions |= + mbedtls_tls13_get_extension_mask( extension_type ); +} /* * Helper functions to check the selected key exchange mode. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed..9947d39d8 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8713,8 +8713,14 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_SIG_ALG; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SIG_ALG ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SIG_ALG ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + return( 0 ); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 2e0599d00..c29b90ee3 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,7 +89,12 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; - + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) ) ); return( 0 ); } @@ -360,7 +365,13 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_KEY_SHARE ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_KEY_SHARE ) ) ); cleanup: @@ -513,7 +524,6 @@ static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, else return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_KEY_SHARE; return( ret ); } @@ -601,6 +611,13 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; + + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_COOKIE ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_COOKIE ) ) ); return( 0 ); } @@ -670,7 +687,13 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, buf[4] = ke_modes_len; *out_len = p - buf; - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES; + + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ) ) ); return ( 0 ); } @@ -982,8 +1005,6 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf ); - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( 0 ); } @@ -1038,6 +1059,13 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); + mbedtls_tls13_set_sent_ext_mask( ssl, + MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + MBEDTLS_SSL_DEBUG_MSG( + 4, ( "sent %s extension", + mbedtls_tls13_get_extension_name( + MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) ); + return( 0 ); } @@ -1110,8 +1138,6 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, return( ret ); } - ssl->handshake->extensions_present |= MBEDTLS_SSL_EXT_PRE_SHARED_KEY; - return( 0 ); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -1389,7 +1415,7 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, ssl->session_negotiate->tls_version = ssl->tls_version; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - handshake->extensions_present = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; ret = ssl_server_hello_is_hrr( ssl, buf, end ); switch( ret ) @@ -1496,10 +1522,10 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, mbedtls_ssl_handshake_params *handshake = ssl->handshake; size_t extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present, allowed_extension_mask; uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; + uint32_t allowed_extensions_mask; /* * Check there is space for minimal fields @@ -1642,8 +1668,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - extensions_present = MBEDTLS_SSL_EXT_NONE; - allowed_extension_mask = is_hrr ? + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1661,23 +1687,14 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s: received %s(%u) extension", - is_hrr ? "hello retry request" : "server hello", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & allowed_extension_mask ) == 0 ) - { - fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; - goto cleanup; - } + ret = mbedtls_tls13_check_received_extensions( + ssl, + is_hrr ? + -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, + extension_type, + allowed_extensions_mask ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -1740,11 +1757,6 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "%s: unexpected extension (%s(%u)) received .", - is_hrr ? "hello retry request" : "server hello", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } @@ -1753,7 +1765,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, is_hrr ? "HelloRetryRequest" : "ServerHello", extensions_present ); + 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, + ssl->handshake->received_extensions ); cleanup: @@ -1803,7 +1816,7 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) * 3) If only the key_share extension was received then the key * exchange mode is EPHEMERAL-only. */ - switch( handshake->extensions_present & + switch( handshake->received_extensions & ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ) ) { /* Only the pre_shared_key extension was received */ @@ -1986,7 +1999,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; - uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -1996,7 +2008,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2016,26 +2028,11 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2071,7 +2068,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "EncrypedExtensions", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2178,7 +2176,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; - uint32_t extensions_present; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2218,13 +2215,12 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; - uint32_t extension_mask; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2233,29 +2229,11 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); - - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extension_mask & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } - - extensions_present |= extension_mask; + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2280,7 +2258,9 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "CertificateRequest", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, + MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2290,11 +2270,11 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, goto decode_error; } - /* RFC 8446 page 60 + /* RFC 8446 section 4.3.2 * * The "signature_algorithms" extension MUST be specified */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); @@ -2535,16 +2515,15 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *end ) { const unsigned char *p = buf; - uint32_t extensions_present; - ((void) ssl); - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < end ) { unsigned int extension_type; size_t extension_data_len; + int ret; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2553,26 +2532,11 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "NewSessionTicket : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -2591,7 +2555,8 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "NewSessionTicket", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 5eac1f1b1..7b66be1c7 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -448,7 +448,6 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, { size_t cert_data_len, extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 3 ); cert_data_len = MBEDTLS_GET_UINT24_BE( p, 0 ); @@ -508,7 +507,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - extensions_present = MBEDTLS_SSL_EXT_NONE; + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -528,26 +527,12 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and - * which is not specified for the message in which it appears, it MUST - * abort the handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); + if( ret != 0 ) + return( ret ); + switch( extension_type ) { default: @@ -561,7 +546,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "Certificate", extensions_present ); + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->received_extensions ); } exit: @@ -1691,9 +1677,31 @@ const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) return( "unknown" ); } +static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) +{ + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_CLIENT_HELLO: + return( "ClientHello" ); + case MBEDTLS_SSL_HS_SERVER_HELLO: + return( "ServerHello" ); + case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + return( "HelloRetryRequest" ); + case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: + return( "NewSessionTicket" ); + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + return( "EncryptedExtensions" ); + case MBEDTLS_SSL_HS_CERTIFICATE: + return( "Certificate" ); + case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: + return( "CertificateRequest" ); + } + return( NULL ); +} + void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, int level, const char *file, int line, - const char *hs_msg_name, + int hs_msg_type, uint32_t extensions_present ) { static const struct{ @@ -1724,7 +1732,8 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; mbedtls_debug_print_msg( ssl, level, file, line, - "extension list of %s:", hs_msg_name ); + "extension list of %s:", + ssl_tls13_get_hs_msg_name( hs_msg_type ) ); for( unsigned i = 0; i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); @@ -1742,4 +1751,63 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, #endif /* MBEDTLS_DEBUG_C */ +/* RFC 8446 section 4.2 + * + * If an implementation receives an extension which it recognizes and which is + * not specified for the message in which it appears, it MUST abort the handshake + * with an "illegal_parameter" alert. + * + */ + +int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, + int hs_msg_type, + uint32_t extension_type, + uint32_t allowed_mask ) +{ + uint32_t extension_mask; + +#if defined(MBEDTLS_DEBUG_C) + const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); +#endif + + extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "%s : received %s(%x) extension", + hs_msg_name, + mbedtls_tls13_get_extension_name( extension_type ), + (unsigned int)extension_type ) ); + + if( ( extension_mask & allowed_mask ) == 0 ) + { + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + + ssl->handshake->received_extensions |= extension_mask; + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_SERVER_HELLO: + case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + case MBEDTLS_SSL_HS_CERTIFICATE: + if( ( ~ssl->handshake->sent_extensions & extension_mask ) == 0 ) + return( 0 ); + break; + default: + return( 0 ); + } + + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); +} + #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 32f64d73c..4fdd6ade8 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -930,7 +930,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, int exts_mask ) { - int masked = ssl->handshake->extensions_present & exts_mask; + int masked = ssl->handshake->received_extensions & exts_mask; return( masked == exts_mask ); } @@ -1239,7 +1239,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; - uint32_t extensions_present; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1248,8 +1247,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *pre_shared_key_ext_end = NULL; #endif - extensions_present = MBEDTLS_SSL_EXT_NONE; - /* * ClientHello layout: * 0 . 1 protocol version @@ -1419,20 +1416,23 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); + ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + while( p < extensions_end ) { unsigned int extension_type; size_t extension_data_len; const unsigned char *extension_data_end; - /* RFC 8446, page 57 + /* RFC 8446, section 4.2.11 * * The "pre_shared_key" extension MUST be the last extension in the * ClientHello (this facilitates implementation as described below). * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( ssl->handshake->received_extensions & + mbedtls_tls13_get_extension_mask( MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1450,26 +1450,11 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - /* RFC 8446 page 35 - * - * If an implementation receives an extension which it recognizes and which - * is not specified for the message in which it appears, it MUST abort the - * handshake with an "illegal_parameter" alert. - */ - extensions_present |= mbedtls_tls13_get_extension_mask( extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello : received %s(%u) extension", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); - if( ( extensions_present & MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "forbidden extension received." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + ret = mbedtls_tls13_check_received_extensions( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + if( ret != 0 ) + return( ret ); switch( extension_type ) { @@ -1569,7 +1554,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( extensions_present & + if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( @@ -1622,26 +1607,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ( "client hello: received %s(%u) extension ( ignored )", mbedtls_tls13_get_extension_name( extension_type ), extension_type ) ); + break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, "ClientHello", extensions_present ); - - /* RFC 8446 page 102 - * - "supported_versions" is REQUIRED for all ClientHello, ServerHello, and - * HelloRetryRequest messages. - */ - if( ( extensions_present & MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "client hello: supported_versions not found" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + MBEDTLS_SSL_TLS1_3_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1655,7 +1628,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( ssl->handshake->extensions_present & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( ssl->handshake->received_extensions & + MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) { ssl->handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); @@ -1666,7 +1640,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - extensions_present &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + ssl->handshake->received_extensions &= + ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1681,7 +1656,6 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, ssl->handshake->update_checksum( ssl, buf, p - buf ); } - ssl->handshake->extensions_present = extensions_present; ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); From 03112ae0228e2031eb01c8fc70a0df371ddb2191 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 30 Aug 2022 16:27:17 +0800 Subject: [PATCH 0572/1574] change input extension_type Signed-off-by: Jerry Yu --- library/ssl_misc.h | 2 +- library/ssl_tls13_generic.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index b7f1440bb..dad1c82a1 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1929,7 +1929,7 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) * Helper functions for extensions checking and convert. */ -uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ); +uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 7b66be1c7..2fbcdf063 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1528,7 +1528,7 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -uint32_t mbedtls_tls13_get_extension_mask( uint16_t extension_type ) +uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ) { switch( extension_type ) { From c4bf5d658e47f6b0d6b73e4ab851a074b92681ae Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 29 Oct 2022 09:08:47 +0800 Subject: [PATCH 0573/1574] fix various issues - Signature of - mbedtls_tls13_set_hs_sent_ext_mask - check_received_extension and issues - Also fix comment issue. - improve readablity. Signed-off-by: Jerry Yu --- library/ssl_client.c | 9 ++---- library/ssl_misc.h | 24 ++++++++------- library/ssl_tls.c | 3 +- library/ssl_tls13_client.c | 58 +++++++++++++++---------------------- library/ssl_tls13_generic.c | 50 +++++++++++++++++--------------- library/ssl_tls13_server.c | 34 ++++++++++------------ 6 files changed, 84 insertions(+), 94 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index b0d2dcf3c..16cef0204 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -107,8 +107,7 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, *olen = hostname_len + 9; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SERVERNAME ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -186,8 +185,7 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_ALPN ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -312,8 +310,7 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index dad1c82a1..3aeab0cd8 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -103,11 +103,12 @@ #define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) #define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) -/* For request messages, we should just ignore unrecognized extension when - * parsing messages. For response messages, we should not ignore unrecognized - * extension when parsing messages. Request messages include ClientHello, - * Certificate and NewSessionTicket. Response messages include ServerHello, - * EncryptExtensions, Certificate and HelloRetryRequest. +/* In messages containing extension requests, we should ignore unrecognized + * extensions. In messages containing extension responses, unrecognized + * extensions should result in handshake abortion. Messages containing + * extension requests include ClientHello, CertificateRequest and + * NewSessionTicket. Messages containing extension responses include + * ServerHello, HelloRetryRequest, EncryptedExtensions and Certificate. * * RFC 8446 section 4.1.3 * @@ -1932,13 +1933,14 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, - int hs_msg_type, - uint32_t extension_type, - uint32_t allowed_mask ); +int mbedtls_ssl_tls13_check_received_extension( + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask ); -static inline void mbedtls_tls13_set_sent_ext_mask( mbedtls_ssl_context *ssl, - uint16_t extension_type ) +static inline void mbedtls_ssl_tls13_set_hs_sent_ext_mask( + mbedtls_ssl_context *ssl, unsigned int extension_type ) { ssl->handshake->sent_extensions |= mbedtls_tls13_get_extension_mask( extension_type ); diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9947d39d8..3678ec0bd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8713,8 +8713,7 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SIG_ALG ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c29b90ee3..27747a209 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,8 +89,8 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -365,8 +365,7 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_KEY_SHARE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", @@ -612,8 +611,7 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_COOKIE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -688,8 +686,8 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -1059,8 +1057,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); - mbedtls_tls13_set_sent_ext_mask( ssl, - MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", mbedtls_tls13_get_extension_name( @@ -1668,7 +1666,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1687,7 +1685,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, @@ -1766,7 +1764,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - ssl->handshake->received_extensions ); + handshake->received_extensions ); cleanup: @@ -1999,6 +1997,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, size_t extensions_len; const unsigned char *p = buf; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); @@ -2008,7 +2007,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2028,7 +2027,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ); if( ret != 0 ) @@ -2036,16 +2035,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, switch( extension_type ) { - case MBEDTLS_TLS_EXT_SERVERNAME: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found server_name extension" ) ); - - /* The server_name extension should be an empty extension */ - - break; - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found extensions supported groups" ) ); - break; - #if defined(MBEDTLS_SSL_ALPN) case MBEDTLS_TLS_EXT_ALPN: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); @@ -2069,7 +2058,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2176,6 +2165,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, size_t certificate_request_context_len = 0; size_t extensions_len = 0; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* ... * opaque certificate_request_context<0..2^8-1> @@ -2191,7 +2181,6 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "Certificate Request Context", p, certificate_request_context_len ); - mbedtls_ssl_handshake_params *handshake = ssl->handshake; handshake->certificate_request_context = mbedtls_calloc( 1, certificate_request_context_len ); if( handshake->certificate_request_context == NULL ) @@ -2215,7 +2204,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -2229,7 +2218,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ); if( ret != 0 ) @@ -2260,7 +2249,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2274,7 +2263,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * * The "signature_algorithms" extension MUST be specified */ - if( ( ssl->handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); @@ -2514,10 +2503,11 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *buf, const unsigned char *end ) { + mbedtls_ssl_handshake_params *handshake = ssl->handshake; const unsigned char *p = buf; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < end ) { @@ -2532,7 +2522,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); if( ret != 0 ) @@ -2556,7 +2546,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 2fbcdf063..21644ede4 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -398,6 +398,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, size_t certificate_list_len = 0; const unsigned char *p = buf; const unsigned char *certificate_list_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); certificate_request_context_len = p[0]; @@ -507,7 +508,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -527,9 +528,9 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); - ret = mbedtls_tls13_check_received_extensions( - ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); + ret = mbedtls_ssl_tls13_check_received_extension( + ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); if( ret != 0 ) return( ret ); @@ -547,7 +548,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_CERTIFICATE, handshake->received_extensions ); } exit: @@ -555,7 +556,7 @@ exit: if( p != end ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad Certificate message" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, \ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, MBEDTLS_ERR_SSL_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_DECODE_ERROR ); } @@ -1759,43 +1760,46 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, * */ -int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, - int hs_msg_type, - uint32_t extension_type, - uint32_t allowed_mask ) +int mbedtls_ssl_tls13_check_received_extension( + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask ) { - uint32_t extension_mask; - #if defined(MBEDTLS_DEBUG_C) const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); #endif - - extension_mask = mbedtls_tls13_get_extension_mask( extension_type ); + uint32_t extension_mask = mbedtls_tls13_get_extension_mask( received_extension_type ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s : received %s(%x) extension", hs_msg_name, - mbedtls_tls13_get_extension_name( extension_type ), - (unsigned int)extension_type ) ); + mbedtls_tls13_get_extension_name( received_extension_type ), + (unsigned int)received_extension_type ) ); - if( ( extension_mask & allowed_mask ) == 0 ) + if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s : forbidden extension received.", hs_msg_name ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } ssl->handshake->received_extensions |= extension_mask; + /* + * If it is a message containing extension responses, check that we + * previously sent the extension. + */ switch( hs_msg_type ) { case MBEDTLS_SSL_HS_SERVER_HELLO: case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_HS_CERTIFICATE: - if( ( ~ssl->handshake->sent_extensions & extension_mask ) == 0 ) + /* Check if the received extension is sent by peer message.*/ + if( ( ssl->handshake->sent_extensions & extension_mask ) != 0 ) return( 0 ); break; default: @@ -1803,11 +1807,11 @@ int mbedtls_tls13_check_received_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + 3, ( "%s : unexpected extension received.", hs_msg_name ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); } #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 4fdd6ade8..f0f06b81a 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1239,6 +1239,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, const unsigned char *cipher_suites_end; size_t extensions_len; const unsigned char *extensions_end; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; int hrr_required = 0; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -1304,7 +1305,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, random bytes", p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); - memcpy( &ssl->handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); + memcpy( &handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); p += MBEDTLS_CLIENT_HELLO_RANDOM_LEN; /* ... @@ -1374,13 +1375,13 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, continue; ssl->session_negotiate->ciphersuite = cipher_suite; - ssl->handshake->ciphersuite_info = ciphersuite_info; + handshake->ciphersuite_info = ciphersuite_info; MBEDTLS_SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %04x - %s", cipher_suite, ciphersuite_info->name ) ); } - if( ssl->handshake->ciphersuite_info == NULL ) + if( handshake->ciphersuite_info == NULL ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); @@ -1416,7 +1417,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); - ssl->handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; while( p < extensions_end ) { @@ -1431,8 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( ssl->handshake->received_extensions & - mbedtls_tls13_get_extension_mask( MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) + if( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1450,7 +1450,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); extension_data_end = p + extension_data_len; - ret = mbedtls_tls13_check_received_extensions( + ret = mbedtls_ssl_tls13_check_received_extension( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); if( ret != 0 ) @@ -1554,13 +1554,13 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( ssl->handshake->received_extensions & + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Delay processing of the PSK identity once we have @@ -1614,7 +1614,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->received_extensions ); + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1628,10 +1628,9 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( ssl->handshake->received_extensions & - MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) { - ssl->handshake->update_checksum( ssl, buf, + handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); ret = ssl_tls13_parse_pre_shared_key_ext( ssl, pre_shared_key_ext, @@ -1640,8 +1639,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - ssl->handshake->received_extensions &= - ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + handshake->received_extensions &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; } else if( ret != 0 ) { @@ -1653,14 +1651,14 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, else #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ { - ssl->handshake->update_checksum( ssl, buf, p - buf ); + handshake->update_checksum( ssl, buf, p - buf ); } ret = ssl_tls13_determine_key_exchange_mode( ssl ); if( ret < 0 ) return( ret ); - mbedtls_ssl_optimize_checksum( ssl, ssl->handshake->ciphersuite_info ); + mbedtls_ssl_optimize_checksum( ssl, handshake->ciphersuite_info ); return( hrr_required ? SSL_CLIENT_HELLO_HRR_REQUIRED : SSL_CLIENT_HELLO_OK ); } From 7a485c1fdf02b6370c1a96eec44700243c31dcee Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:08:18 +0800 Subject: [PATCH 0574/1574] Add ext id and utilities - Remove `MBEDTLS_SSL_EXT_*` - Add macros and functions for translating iana identifer. - Add internal identity for extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 67 +++++++++++++++----------- library/ssl_tls.c | 95 +++++++++++++++++++++++++++++++++++++ library/ssl_tls13_generic.c | 74 ----------------------------- 3 files changed, 134 insertions(+), 102 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 3aeab0cd8..8bd98b3c4 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -75,33 +75,46 @@ #define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */ /* - * Mask of TLS 1.3 handshake extensions used in extensions_present - * of mbedtls_ssl_handshake_params. + * Inernal identity of handshake extensions */ -#define MBEDTLS_SSL_EXT_NONE 0 +#define MBEDTLS_SSL_EXT_ID_UNRECOGNIZED 0 +#define MBEDTLS_SSL_EXT_ID_SERVERNAME 1 +#define MBEDTLS_SSL_EXT_ID_SERVERNAME_HOSTNAME 1 +#define MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH 2 +#define MBEDTLS_SSL_EXT_ID_STATUS_REQUEST 3 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS 4 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_ELLIPTIC_CURVES 4 +#define MBEDTLS_SSL_EXT_ID_SIG_ALG 5 +#define MBEDTLS_SSL_EXT_ID_USE_SRTP 6 +#define MBEDTLS_SSL_EXT_ID_HEARTBEAT 7 +#define MBEDTLS_SSL_EXT_ID_ALPN 8 +#define MBEDTLS_SSL_EXT_ID_SCT 9 +#define MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE 10 +#define MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE 11 +#define MBEDTLS_SSL_EXT_ID_PADDING 12 +#define MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY 13 +#define MBEDTLS_SSL_EXT_ID_EARLY_DATA 14 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS 15 +#define MBEDTLS_SSL_EXT_ID_COOKIE 16 +#define MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES 17 +#define MBEDTLS_SSL_EXT_ID_CERT_AUTH 18 +#define MBEDTLS_SSL_EXT_ID_OID_FILTERS 19 +#define MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH 20 +#define MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT 21 +#define MBEDTLS_SSL_EXT_ID_KEY_SHARE 22 +#define MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC 23 +#define MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS 24 +#define MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC 25 +#define MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET 26 +#define MBEDTLS_SSL_EXT_ID_SESSION_TICKET 27 -#define MBEDTLS_SSL_EXT_SERVERNAME ( 1 << 0 ) -#define MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ( 1 << 1 ) -#define MBEDTLS_SSL_EXT_STATUS_REQUEST ( 1 << 2 ) -#define MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ( 1 << 3 ) -#define MBEDTLS_SSL_EXT_SIG_ALG ( 1 << 4 ) -#define MBEDTLS_SSL_EXT_USE_SRTP ( 1 << 5 ) -#define MBEDTLS_SSL_EXT_HEARTBEAT ( 1 << 6 ) -#define MBEDTLS_SSL_EXT_ALPN ( 1 << 7 ) -#define MBEDTLS_SSL_EXT_SCT ( 1 << 8 ) -#define MBEDTLS_SSL_EXT_CLI_CERT_TYPE ( 1 << 9 ) -#define MBEDTLS_SSL_EXT_SERV_CERT_TYPE ( 1 << 10 ) -#define MBEDTLS_SSL_EXT_PADDING ( 1 << 11 ) -#define MBEDTLS_SSL_EXT_PRE_SHARED_KEY ( 1 << 12 ) -#define MBEDTLS_SSL_EXT_EARLY_DATA ( 1 << 13 ) -#define MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ( 1 << 14 ) -#define MBEDTLS_SSL_EXT_COOKIE ( 1 << 15 ) -#define MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ( 1 << 16 ) -#define MBEDTLS_SSL_EXT_CERT_AUTH ( 1 << 17 ) -#define MBEDTLS_SSL_EXT_OID_FILTERS ( 1 << 18 ) -#define MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ( 1 << 19 ) -#define MBEDTLS_SSL_EXT_SIG_ALG_CERT ( 1 << 20 ) -#define MBEDTLS_SSL_EXT_KEY_SHARE ( 1 << 21 ) +/* Utility for translating IANA extension type. */ +uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ); +uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); +/* Macros used to define mask constants */ +#define MBEDTLS_SSL_EXT_MASK( id ) ( 1ULL << ( MBEDTLS_SSL_EXT_ID_##id ) ) +/* Reset value of extension mask */ +#define MBEDTLS_SSL_EXT_MASK_NONE 0 /* In messages containing extension requests, we should ignore unrecognized * extensions. In messages containing extension responses, unrecognized @@ -1930,8 +1943,6 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) * Helper functions for extensions checking and convert. */ -uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ); - MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_check_received_extension( mbedtls_ssl_context *ssl, @@ -1943,7 +1954,7 @@ static inline void mbedtls_ssl_tls13_set_hs_sent_ext_mask( mbedtls_ssl_context *ssl, unsigned int extension_type ) { ssl->handshake->sent_extensions |= - mbedtls_tls13_get_extension_mask( extension_type ); + mbedtls_ssl_get_extension_mask( extension_type ); } /* diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 3678ec0bd..b3210c415 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -521,6 +521,101 @@ static void ssl_clear_peer_cert( mbedtls_ssl_session *session ) } #endif /* MBEDTLS_X509_CRT_PARSE_C */ +uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ) +{ + switch( extension_type ) + { + case MBEDTLS_TLS_EXT_SERVERNAME: + return( MBEDTLS_SSL_EXT_ID_SERVERNAME ); + + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + return( MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH ); + + case MBEDTLS_TLS_EXT_STATUS_REQUEST: + return( MBEDTLS_SSL_EXT_ID_STATUS_REQUEST ); + + case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS ); + + case MBEDTLS_TLS_EXT_SIG_ALG: + return( MBEDTLS_SSL_EXT_ID_SIG_ALG ); + + case MBEDTLS_TLS_EXT_USE_SRTP: + return( MBEDTLS_SSL_EXT_ID_USE_SRTP ); + + case MBEDTLS_TLS_EXT_HEARTBEAT: + return( MBEDTLS_SSL_EXT_ID_HEARTBEAT ); + + case MBEDTLS_TLS_EXT_ALPN: + return( MBEDTLS_SSL_EXT_ID_ALPN ); + + case MBEDTLS_TLS_EXT_SCT: + return( MBEDTLS_SSL_EXT_ID_SCT ); + + case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: + return( MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: + return( MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE ); + + case MBEDTLS_TLS_EXT_PADDING: + return( MBEDTLS_SSL_EXT_ID_PADDING ); + + case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: + return( MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY ); + + case MBEDTLS_TLS_EXT_EARLY_DATA: + return( MBEDTLS_SSL_EXT_ID_EARLY_DATA ); + + case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS ); + + case MBEDTLS_TLS_EXT_COOKIE: + return( MBEDTLS_SSL_EXT_ID_COOKIE ); + + case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: + return( MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES ); + + case MBEDTLS_TLS_EXT_CERT_AUTH: + return( MBEDTLS_SSL_EXT_ID_CERT_AUTH ); + + case MBEDTLS_TLS_EXT_OID_FILTERS: + return( MBEDTLS_SSL_EXT_ID_OID_FILTERS ); + + case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: + return( MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH ); + + case MBEDTLS_TLS_EXT_SIG_ALG_CERT: + return( MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT ); + + case MBEDTLS_TLS_EXT_KEY_SHARE: + return( MBEDTLS_SSL_EXT_ID_KEY_SHARE ); + + case MBEDTLS_TLS_EXT_TRUNCATED_HMAC: + return( MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC ); + + case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: + return( MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS ); + + case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: + return( MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC ); + + case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: + return( MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET ); + + case MBEDTLS_TLS_EXT_SESSION_TICKET: + return( MBEDTLS_SSL_EXT_ID_SESSION_TICKET ); + + } + + return( MBEDTLS_SSL_EXT_ID_UNRECOGNIZED ); +} + +uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) +{ + return( 1 << mbedtls_ssl_get_extension_id( extension_type ) ); +} + void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info ) { diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 21644ede4..a52b4ca69 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1529,80 +1529,6 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -uint32_t mbedtls_tls13_get_extension_mask( unsigned int extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( MBEDTLS_SSL_EXT_SERVERNAME ); - - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( MBEDTLS_SSL_EXT_STATUS_REQUEST ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( MBEDTLS_SSL_EXT_SUPPORTED_GROUPS ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( MBEDTLS_SSL_EXT_SIG_ALG ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( MBEDTLS_SSL_EXT_USE_SRTP ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( MBEDTLS_SSL_EXT_HEARTBEAT ); - - case MBEDTLS_TLS_EXT_ALPN: - return( MBEDTLS_SSL_EXT_ALPN ); - - case MBEDTLS_TLS_EXT_SCT: - return( MBEDTLS_SSL_EXT_SCT ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( MBEDTLS_SSL_EXT_CLI_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( MBEDTLS_SSL_EXT_SERV_CERT_TYPE ); - - case MBEDTLS_TLS_EXT_PADDING: - return( MBEDTLS_SSL_EXT_PADDING ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( MBEDTLS_SSL_EXT_PRE_SHARED_KEY ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( MBEDTLS_SSL_EXT_EARLY_DATA ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( MBEDTLS_SSL_EXT_COOKIE ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( MBEDTLS_SSL_EXT_CERT_AUTH ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( MBEDTLS_SSL_EXT_OID_FILTERS ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( MBEDTLS_SSL_EXT_SIG_ALG_CERT ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( MBEDTLS_SSL_EXT_KEY_SHARE ); - }; - - return( MBEDTLS_SSL_EXT_UNRECOGNIZED ); -} - #if defined(MBEDTLS_DEBUG_C) const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) { From e50f2f1a8e5d56d162cf7dd58b835c5ee96295a1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 26 Oct 2022 15:14:33 +0100 Subject: [PATCH 0575/1574] Add mbedtls_mpi_core_ct_uint_table_lookup This will be needed for extracting modular exponentiation from the prototype. The function signature is kept aligned to the prototype, but the implementation is new. (The implementation of this function in the prototype has further optimisations which are out of scope for now.) The function is not reused in the bignum counterpart as it will become redundant soon. This function is meant to be static, but doesn't have the qualifier as it is not used yet and would cause compiler warnings. The MBEDTLS_STATIC_TESTABLE macro will be added in a later commit. Signed-off-by: Janos Follath --- library/bignum_core.c | 14 ++++++++++++++ library/bignum_core.h | 19 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index b401fa36c..c1da93d0a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -540,4 +540,18 @@ cleanup: return( ret ); } +void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ) +{ + for( size_t i = 0; i < count; i++ ) + { + unsigned char assign = mbedtls_ct_size_bool_eq( i, index ); + const mbedtls_mpi_uint *current = table + i * limbs; + mbedtls_mpi_core_cond_assign( dest, current, limbs, assign ); + } +} + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 9a5b89fc6..3618e4200 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -452,4 +452,23 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); +/** + * Select an MPI from a table without leaking the index. + * + * \param dest The destination buffer. This must point to a writable + * buffer of at least \p limbs limbs. + * \param table The address of the table. This must point to a readable + * array of \p count elements of + * \p limbs limbs each each. + * \param limbs The length of a table entry in limbs. + * \param count The number of elements in \p table. + * \param index The secret table index to look up. This must be in the + * range `0,..,count-1`. + */ +void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 032924f29759f6ca43395e9b42cf615c7e1da0ce Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 26 Oct 2022 19:10:29 +0100 Subject: [PATCH 0576/1574] Add mbedtls_mpi_core_ct_uint_table_lookup tests Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 38 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 37 +++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 0d238e714..e88f469a1 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -69,6 +69,44 @@ class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): for count in counts: yield cls(input_hex, descr, count).create_test_case() +class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): + """Test cases for mbedtls_mpi_core_ct_uint_table_lookup().""" + count = 0 + test_function = "mpi_core_ct_uint_table_lookup" + test_name = "Constant time MPI table lookup" + + bitsizes = [ + (32, "One limb"), + (192, "Smallest curve sized"), + (512, "Largest curve sized"), + (2048, "Small FF/RSA sized"), + (4096, "Large FF/RSA sized"), + ] + + window_sizes = [ 0, 1, 2, 3, 4, 5, 6 ] + + def __init__(self, + bitsize: int, descr: str, window_size: int) -> None: + self.bitsize = bitsize + self.bitsize_description = descr + self.window_size = window_size + + def arguments(self) -> List[str]: + return [str(self.bitsize), str(self.window_size)] + + def description(self) -> str: + return '{} - {} MPI with {} bit window'.format( + BignumCoreCTLookup.test_name, + self.bitsize_description, + self.window_size + ) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for bitsize, bitsize_description in cls.bitsizes: + for window_size in cls.window_sizes: + yield (cls(bitsize, bitsize_description, window_size) + .create_test_case()) class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): #pylint: disable=abstract-method diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 57c2f3738..696d873ea 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -941,3 +941,40 @@ exit: mbedtls_mpi_free( &RR_REF ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) +{ + size_t limbs = BITS_TO_LIMBS( bitlen ); + size_t count = ( (size_t) 1 ) << window_size; + + mbedtls_mpi_uint *table = NULL; + ASSERT_ALLOC( table, limbs * count ); + + mbedtls_mpi_uint *dest = NULL; + ASSERT_ALLOC( dest, limbs ); + + /* + * Fill the table with a unique counter so that differences are easily + * detected. (And have their relationship to the index relatively non-trivial just + * to be sure.) + */ + for( size_t i = 0; i < count * limbs; i++ ) + { + table[i] = ~i - 1; + } + + for( size_t i = 0; i < count; i++ ) + { + memset( dest, 0x00, limbs * sizeof( *dest ) ); + mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); + + mbedtls_mpi_uint *current = table + i * limbs; + ASSERT_COMPARE( dest, limbs * sizeof( *dest ), + current, limbs * sizeof( *current ) ); + } + +exit: + ; +} +/* END_CASE */ From 133f4e427b65354095dc3c6f96087fc14e1b4df4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 28 Oct 2022 10:54:46 +0100 Subject: [PATCH 0577/1574] Test mpi_core_table_lookup for constant timeness Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 696d873ea..f4fd51c16 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -966,12 +966,23 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) for( size_t i = 0; i < count; i++ ) { + /* + * We shouldn't leak anything through timing. + * We need to set these in every loop as we need to make the loop + * variable public for the loop head and comparison macros make the + * rest public automatically. + */ + TEST_CF_SECRET( &i, sizeof( i ) ); + TEST_CF_SECRET( dest, limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( table, count * limbs * sizeof( mbedtls_mpi_uint ) ); + memset( dest, 0x00, limbs * sizeof( *dest ) ); mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); mbedtls_mpi_uint *current = table + i * limbs; ASSERT_COMPARE( dest, limbs * sizeof( *dest ), current, limbs * sizeof( *current ) ); + TEST_CF_PUBLIC( &i, sizeof( i ) ); } exit: From e8734d8a55877592f73c530a0711ebe4ae2a5a01 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 14:30:24 +0000 Subject: [PATCH 0578/1574] Apply suggestions from code review Two spelling fixes (changelog & a comment) Signed-off-by: Dave Rodgman --- ...3_session_resumption_fail_when_hostname_is_not_localhost.txt | 2 +- library/ssl_tls.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt index 4a4d535ae..5797f48e8 100644 --- a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt +++ b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt @@ -1,4 +1,4 @@ Bugfix - * Fix TLS 1.3 session reumption fail. Fixes #6488. + * Fix TLS 1.3 session resumption fail. Fixes #6488. * Add configuration check to exclude TLS 1.3 optional authentication of client. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 6446b760e..981ec7b68 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1030,7 +1030,7 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl) ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) { MBEDTLS_SSL_DEBUG_MSG( - 1, ( "Optional verfiy auth mode " + 1, ( "Optional verify auth mode " "is not available for TLS 1.3 client" ) ); return( MBEDTLS_ERR_SSL_BAD_CONFIG ); } From 88e3177fccd7fb3ea1db4ef0b5a1addc6b770c45 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 14:32:46 +0000 Subject: [PATCH 0579/1574] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index e88f469a1..f8ba12b02 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -76,14 +76,14 @@ class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): test_name = "Constant time MPI table lookup" bitsizes = [ - (32, "One limb"), - (192, "Smallest curve sized"), - (512, "Largest curve sized"), - (2048, "Small FF/RSA sized"), - (4096, "Large FF/RSA sized"), - ] + (32, "One limb"), + (192, "Smallest curve sized"), + (512, "Largest curve sized"), + (2048, "Small FF/RSA sized"), + (4096, "Large FF/RSA sized"), + ] - window_sizes = [ 0, 1, 2, 3, 4, 5, 6 ] + window_sizes = [0, 1, 2, 3, 4, 5, 6] def __init__(self, bitsize: int, descr: str, window_size: int) -> None: @@ -96,10 +96,10 @@ class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): def description(self) -> str: return '{} - {} MPI with {} bit window'.format( - BignumCoreCTLookup.test_name, - self.bitsize_description, - self.window_size - ) + BignumCoreCTLookup.test_name, + self.bitsize_description, + self.window_size + ) @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: From 3951a4f3ada028d08e50d32ab837f0a226afd0b0 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Mon, 31 Oct 2022 09:17:15 -0500 Subject: [PATCH 0580/1574] pkcs7: Use better error codes Remove an unnecessary debug print (whoops). Use new error code for when the x509 is expired. When there are no signers return invalid certificate. Signed-off-by: Nick Child Co-authored-by: Dave Rodgman Signed-off-by: Nick Child --- include/mbedtls/pkcs7.h | 1 + library/pkcs7.c | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 2a557bfad..52895ac2b 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -69,6 +69,7 @@ #define MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA -0x5700 /**< Input invalid. */ #define MBEDTLS_ERR_PKCS7_ALLOC_FAILED -0x5780 /**< Allocation of memory failed. */ #define MBEDTLS_ERR_PKCS7_VERIFY_FAIL -0x5800 /**< Verification Failed */ +#define MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID -0x5880 /**< The PKCS7 date issued/expired dates are invalid */ /* \} name */ /** diff --git a/library/pkcs7.c b/library/pkcs7.c index 7976a0b3a..ca0170a6d 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -630,15 +630,14 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, if( pkcs7->signed_data.no_of_signers == 0 ) { - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; goto out; } if( mbedtls_x509_time_is_past( &cert->valid_to ) || mbedtls_x509_time_is_future( &cert->valid_from )) { - printf("EXPRED\n"); - ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; + ret = MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID; goto out; } From 3d973314b22a840e047f910e6cfdc69ccdf354d1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 14:54:24 +0000 Subject: [PATCH 0581/1574] Update PR template Signed-off-by: Dave Rodgman --- .github/pull_request_template.md | 50 ++++++++++++-------------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9bc3b0a4f..0650969a4 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,40 +1,28 @@ -Notes: -* Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). -* This is just a template, so feel free to use/remove the unnecessary things ## Description -A few sentences describing the overall goals of the pull request's commits. + +Please write a few sentences describing the overall goals of the pull request's commits. -## Status -**READY/IN DEVELOPMENT/HOLD** -## Requires Backporting +## Gatekeeper checklist + +- [ ] **changelog** provided, or not required +- [ ] **backport** done, or not required +- [ ] **tests** provided, or not required + + + +## Notes for the submitter + +Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). + +#### Backporting + When there is a bug fix, it should be backported to all maintained and supported branches. Changes do not have to be backported if: -- This PR is a new feature\enhancement + +- This PR is a new feature / enhancement - This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch -Yes | NO -Which branch? +It is fine to defer providing a backport until the main PR is approved. -## Requires ChangeLog entry - -YES | NO - if no, why not? - -## Migrations -If there is any API change, what's the incentive and logic for it. - -YES | NO - -## Additional comments -Any additional information that could be of interest - -## Todos -- [ ] Tests -- [ ] Documentation -- [ ] Changelog updated -- [ ] Backported - - -## Steps to test or reproduce -Outline the steps to test or reproduce the PR here. From ef67d38bc0a7c610f021154ef296207b4ea1bc6e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 15:11:49 +0000 Subject: [PATCH 0582/1574] Fix memory leak in mpi_core_ct_uint_table_lookup test Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index f4fd51c16..c0bee70d2 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -949,9 +949,9 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) size_t count = ( (size_t) 1 ) << window_size; mbedtls_mpi_uint *table = NULL; - ASSERT_ALLOC( table, limbs * count ); - mbedtls_mpi_uint *dest = NULL; + + ASSERT_ALLOC( table, limbs * count ); ASSERT_ALLOC( dest, limbs ); /* @@ -986,6 +986,7 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) } exit: - ; + mbedtls_free(table); + mbedtls_free(dest); } /* END_CASE */ From 12cee78ea72d2775aaabe20c30b9fd954bbb2382 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 15:34:11 +0000 Subject: [PATCH 0583/1574] Update PSA links in README.md Signed-off-by: Dave Rodgman --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cc61da03c..1a4edb05c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ Documentation The main Mbed TLS documentation is available via [ReadTheDocs](https://mbed-tls.readthedocs.io/). -Documentation for the PSA Cryptography API is available [on GitHub](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface). +Documentation for the PSA Cryptography API is available [on GitHub](https://arm-software.github.io/psa-api/crypto/). To generate a local copy of the library documentation in HTML format, tailored to your compile-time configuration: @@ -265,11 +265,11 @@ Mbed TLS is mostly written in portable C99; however, it has a few platform requi PSA cryptography API -------------------- -### PSA API design +### PSA API Arm's [Platform Security Architecture (PSA)](https://developer.arm.com/architectures/security-architectures/platform-security-architecture) is a holistic set of threat models, security analyses, hardware and firmware architecture specifications, and an open source firmware reference implementation. PSA provides a recipe, based on industry best practice, that allows security to be consistently designed in, at both a hardware and firmware level. -The [PSA cryptography API](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface) provides access to a set of cryptographic primitives. It has a dual purpose. First, it can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication. Second, it can also be used independently of other PSA components on any platform. +The [PSA cryptography API](https://arm-software.github.io/psa-api/crypto/) provides access to a set of cryptographic primitives. It has a dual purpose. First, it can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication. Second, it can also be used independently of other PSA components on any platform. The design goals of the PSA cryptography API include: @@ -281,10 +281,6 @@ The design goals of the PSA cryptography API include: Arm welcomes feedback on the design of the API. If you think something could be improved, please open an issue on our Github repository. Alternatively, if you prefer to provide your feedback privately, please email us at [`mbed-crypto@arm.com`](mailto:mbed-crypto@arm.com). All feedback received by email is treated confidentially. -### PSA API documentation - -A browsable copy of the PSA Cryptography API documents is available on the [PSA cryptography interfaces documentation portal](https://armmbed.github.io/mbed-crypto/psa/#application-programming-interface) in [PDF](https://armmbed.github.io/mbed-crypto/PSA_Cryptography_API_Specification.pdf) and [HTML](https://armmbed.github.io/mbed-crypto/html/index.html) formats. - ### PSA implementation in Mbed TLS Mbed TLS includes a reference implementation of the PSA Cryptography API. From 119e5d7a6b379be074aa7a0452acb401a41e820d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 31 Oct 2022 15:57:31 +0000 Subject: [PATCH 0584/1574] Update CONTRIBUTING.md, and refer to this from the template Signed-off-by: Dave Rodgman --- .github/pull_request_template.md | 13 ++----------- CONTRIBUTING.md | 14 ++++++++++---- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0650969a4..94fb0202a 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,15 +14,6 @@ Please write a few sentences describing the overall goals of the pull request's ## Notes for the submitter -Pull requests cannot be accepted until the PR follows the [contributing guidelines](../CONTRIBUTING.md). In particular, each commit must have at least one `Signed-off-by:` line from the committer to certify that the contribution is made under the terms of the [Developer Certificate of Origin](../dco.txt). - -#### Backporting - -When there is a bug fix, it should be backported to all maintained and supported branches. -Changes do not have to be backported if: - -- This PR is a new feature / enhancement -- This PR contains changes in the API. If this is true, and there is a need for the fix to be backported, the fix should be handled differently in the legacy branch - -It is fine to defer providing a backport until the main PR is approved. +Please refer to the [contributing guidelines](../CONTRIBUTING.md), especially the +checklist for PR contributors. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e2cf4912..0eca8aba0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,15 @@ Contributing ============ -We gratefully accept bug reports and contributions from the community. There are some requirements we need to fulfill in order to be able to integrate contributions: +We gratefully accept bug reports and contributions from the community. - - As with any open source project, contributions will be reviewed by the project team and community and may need some modifications to be accepted. - - The contribution should not break API or ABI, unless there is a real justification for that. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. +Quick Checklist for PR contributors +----------------------------------- +More details on all of these points may be found in the sections below. + +- [Sign-off](#license-and-copyright): all commits must be signed off +- [Tests](#tests): please ensure the PR includes adequate tests +- [Changelog](#documentation): if needed, please provide a changelog entry +- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted) Coding Standards ---------------- @@ -25,7 +31,7 @@ Backwards Compatibility The project aims to minimise the impact on users upgrading to newer versions of the library and it should not be necessary for a user to make any changes to their own code to work with a newer version of the library. Unless the user has made an active decision to use newer features, a newer generation of the library or a change has been necessary due to a security issue or other significant software defect, no modifications to their own code should be necessary. To achieve this, API compatibility is maintained between different versions of Mbed TLS on the main development branch and in LTS (Long Term Support) branches, as described in [BRANCHES.md](BRANCHES.md). -To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. +To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. Where changes to an existing interface are necessary, functions in the public interface which need to be changed, are marked as 'deprecated'. This is done with the preprocessor symbols `MBEDTLS_DEPRECATED_WARNING` and `MBEDTLS_DEPRECATED_REMOVED`. Then, a new function with a new name but similar if not identical behaviour to the original function containing the necessary changes should be created alongside the existing deprecated function. From 8904a2db297aeff67cceb16ff9369b7c03116865 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 31 Oct 2022 15:32:28 +0000 Subject: [PATCH 0585/1574] mpi_core_ct_uint_table_lookup: style and docs Signed-off-by: Janos Follath --- library/bignum_core.c | 13 ++++++------- library/bignum_core.h | 13 ++++++------- scripts/mbedtls_dev/bignum_core.py | 1 - 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index c1da93d0a..b3bb3bcb8 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -541,16 +541,15 @@ cleanup: } void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *table, - size_t limbs, - size_t count, - size_t index ) + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index ) { - for( size_t i = 0; i < count; i++ ) + for( size_t i = 0; i < count; i++, table += limbs ) { unsigned char assign = mbedtls_ct_size_bool_eq( i, index ); - const mbedtls_mpi_uint *current = table + i * limbs; - mbedtls_mpi_core_cond_assign( dest, current, limbs, assign ); + mbedtls_mpi_core_cond_assign( dest, table, limbs, assign ); } } diff --git a/library/bignum_core.h b/library/bignum_core.h index 3618e4200..ccccebbff 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -453,17 +453,16 @@ int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); /** - * Select an MPI from a table without leaking the index. + * Copy an MPI from a table without leaking the index. * * \param dest The destination buffer. This must point to a writable * buffer of at least \p limbs limbs. * \param table The address of the table. This must point to a readable - * array of \p count elements of - * \p limbs limbs each each. - * \param limbs The length of a table entry in limbs. - * \param count The number of elements in \p table. - * \param index The secret table index to look up. This must be in the - * range `0,..,count-1`. + * array of \p count elements of \p limbs limbs each. + * \param limbs The number of limbs in each table entry. + * \param count The number of entries in \p table. + * \param index The (secret) table index to look up. This must be in the + * range `0 .. count-1`. */ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, const mbedtls_mpi_uint *table, diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f8ba12b02..9929e13fa 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -71,7 +71,6 @@ class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): """Test cases for mbedtls_mpi_core_ct_uint_table_lookup().""" - count = 0 test_function = "mpi_core_ct_uint_table_lookup" test_name = "Constant time MPI table lookup" From 29b9b2b699cc4ed27e637a90404a77806cc20e32 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:08:14 +0000 Subject: [PATCH 0586/1574] Fix zeroization at NULL pointer Signed-off-by: Dave Rodgman --- library/ssl_tls.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a49f774ed..3c91b4513 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5635,7 +5635,9 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, exit: mbedtls_md_free( &md_ctx ); - mbedtls_platform_zeroize( tmp, tmp_len ); + if ( tmp != NULL ) + mbedtls_platform_zeroize( tmp, tmp_len ); + mbedtls_platform_zeroize( h_i, sizeof( h_i ) ); mbedtls_free( tmp ); From 5875f5f96bc514afd841fdfc5987dfbe72e5c840 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:27:14 +0000 Subject: [PATCH 0587/1574] Add Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/fix_zeroization.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_zeroization.txt diff --git a/ChangeLog.d/fix_zeroization.txt b/ChangeLog.d/fix_zeroization.txt new file mode 100644 index 000000000..ad74d9c59 --- /dev/null +++ b/ChangeLog.d/fix_zeroization.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix possible crash in TLS PRF code, if a failure to allocate memory occurs. + Reported by Michael Madsen in #6516. From ba864848e7dd6f5807092faa17e9a4de27d0e66e Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 16:40:40 +0000 Subject: [PATCH 0588/1574] Remove duplicate function prototype Signed-off-by: Dave Rodgman --- library/psa_crypto_cipher.h | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index fae98473c..e5fe23bb3 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -24,22 +24,6 @@ #include #include -/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier - * as well as the PSA type and size of the key to be used with the cipher - * algorithm. - * - * \param alg PSA cipher algorithm identifier - * \param key_type PSA key type - * \param key_bits Size of the key in bits - * \param[out] cipher_id Mbed TLS cipher algorithm identifier - * - * \return The Mbed TLS cipher information of the cipher algorithm. - * \c NULL if the PSA cipher algorithm is not supported. - */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( - psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t *cipher_id ); - /** * \brief Set the key for a multipart symmetric encryption operation. * From f3928fb3e0d3f67047dd935e17e7b2d783194a33 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 20:39:04 +0000 Subject: [PATCH 0589/1574] Reinstate note about all PRs receiving review Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0eca8aba0..8645da735 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ Contributing ============ -We gratefully accept bug reports and contributions from the community. +We gratefully accept bug reports and contributions from the community. All PRs are reviewed by the project team / community, and may need some modifications to +be accepted. Quick Checklist for PR contributors ----------------------------------- From b256640d72ed9b5a29796292edc20fada47f915a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 1 Nov 2022 20:40:48 +0000 Subject: [PATCH 0590/1574] Improve list formatting Signed-off-by: Dave Rodgman --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8645da735..d19fe57cc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,10 +7,10 @@ Quick Checklist for PR contributors ----------------------------------- More details on all of these points may be found in the sections below. -- [Sign-off](#license-and-copyright): all commits must be signed off -- [Tests](#tests): please ensure the PR includes adequate tests -- [Changelog](#documentation): if needed, please provide a changelog entry -- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted) +- [Sign-off](#license-and-copyright): all commits must be signed off. +- [Tests](#tests): please ensure the PR includes adequate tests. +- [Changelog](#documentation): if needed, please provide a changelog entry. +- [Backports](#long-term-support-branches): provide a backport if needed (it's fine to wait until the main PR is accepted). Coding Standards ---------------- From 1630447eed7e2023222db1efdb92acd5062d6112 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 2 Nov 2022 09:25:38 +0000 Subject: [PATCH 0591/1574] Move declaration of mbedtls_cipher_info_from_psa into psa_crypto_cipher.h Signed-off-by: Dave Rodgman --- library/psa_crypto_aead.c | 1 + library/psa_crypto_cipher.h | 16 ++++++++++++++++ library/psa_crypto_core.h | 16 ---------------- library/psa_crypto_mac.c | 1 + 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 48969b3a3..730ef9555 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -24,6 +24,7 @@ #include "psa_crypto_aead.h" #include "psa_crypto_core.h" +#include "psa_crypto_cipher.h" #include #include "mbedtls/platform.h" diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index e5fe23bb3..fae98473c 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -24,6 +24,22 @@ #include #include +/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier + * as well as the PSA type and size of the key to be used with the cipher + * algorithm. + * + * \param alg PSA cipher algorithm identifier + * \param key_type PSA key type + * \param key_bits Size of the key in bits + * \param[out] cipher_id Mbed TLS cipher algorithm identifier + * + * \return The Mbed TLS cipher information of the cipher algorithm. + * \c NULL if the PSA cipher algorithm is not supported. + */ +const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( + psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, + mbedtls_cipher_id_t *cipher_id ); + /** * \brief Set the key for a multipart symmetric encryption operation. * diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 8c91b04d0..98638481c 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -246,22 +246,6 @@ psa_status_t psa_copy_key_material_into_slot( psa_key_slot_t *slot, */ psa_status_t mbedtls_to_psa_error( int ret ); -/** Get Mbed TLS cipher information given the cipher algorithm PSA identifier - * as well as the PSA type and size of the key to be used with the cipher - * algorithm. - * - * \param alg PSA cipher algorithm identifier - * \param key_type PSA key type - * \param key_bits Size of the key in bits - * \param[out] cipher_id Mbed TLS cipher algorithm identifier - * - * \return The Mbed TLS cipher information of the cipher algorithm. - * \c NULL if the PSA cipher algorithm is not supported. - */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( - psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t *cipher_id ); - /** Import a key in binary format. * * \note The signature of this function is that of a PSA driver diff --git a/library/psa_crypto_mac.c b/library/psa_crypto_mac.c index dcf065a67..d771e23e1 100644 --- a/library/psa_crypto_mac.c +++ b/library/psa_crypto_mac.c @@ -24,6 +24,7 @@ #include #include "psa_crypto_core.h" +#include "psa_crypto_cipher.h" #include "psa_crypto_mac.h" #include From 0877dc8f558f4a199d714b86c2ccfd63f085ed2d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 2 Nov 2022 09:29:35 +0000 Subject: [PATCH 0592/1574] Improve documentation for psa_crypto_cipher.h Signed-off-by: Dave Rodgman --- library/psa_crypto_cipher.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index fae98473c..3bd5360cd 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -1,5 +1,5 @@ /* - * PSA cipher driver entry points + * PSA cipher driver entry points and associated auxiliary functions */ /* * Copyright The Mbed TLS Contributors From 28f85e6683adb7a6f6c01252a8cd01ee4f12a012 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 09:51:02 +0000 Subject: [PATCH 0593/1574] Fix const time in mpi_core_ct_uint_table_lookup test Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index c0bee70d2..d5d58d870 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -966,20 +966,22 @@ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) for( size_t i = 0; i < count; i++ ) { + mbedtls_mpi_uint *current = table + i * limbs; + memset( dest, 0x00, limbs * sizeof( *dest ) ); + /* * We shouldn't leak anything through timing. * We need to set these in every loop as we need to make the loop - * variable public for the loop head and comparison macros make the - * rest public automatically. + * variable public for the loop head and the buffers for comparison. */ TEST_CF_SECRET( &i, sizeof( i ) ); - TEST_CF_SECRET( dest, limbs * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( table, count * limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET( dest, limbs * sizeof( *dest ) ); + TEST_CF_SECRET( table, count * limbs * sizeof( *table ) ); - memset( dest, 0x00, limbs * sizeof( *dest ) ); mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); - mbedtls_mpi_uint *current = table + i * limbs; + TEST_CF_PUBLIC( dest, limbs * sizeof( *dest ) ); + TEST_CF_PUBLIC( table, count * limbs * sizeof( *table ) ); ASSERT_COMPARE( dest, limbs * sizeof( *dest ), current, limbs * sizeof( *current ) ); TEST_CF_PUBLIC( &i, sizeof( i ) ); From df0ad658a30e1a6a613852522fe322582666b49a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:20:57 +0800 Subject: [PATCH 0594/1574] tls13: Add allowed extesions constants. - And refactor check_received_extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 105 +++++++++++++++++++----------------- library/ssl_tls13_generic.c | 25 ++++----- 2 files changed, 66 insertions(+), 64 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8bd98b3c4..8ffdccb37 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -134,76 +134,83 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); * not specified for the message in which it appears, it MUST abort the handshake * with an "illegal_parameter" alert. */ -#define MBEDTLS_SSL_EXT_UNRECOGNIZED ( 1U << 31 ) + +/* Extensions that not recognized by TLS 1.3 */ +#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED \ + ( MBEDTLS_SSL_EXT_MASK( SUPPORTED_POINT_FORMATS ) | \ + MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ + MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ + MBEDTLS_SSL_EXT_MASK( SESSION_TICKET ) | \ + MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) /* RFC 8446 section 4.2. Allowed extensions for ClienHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ - ( MBEDTLS_SSL_EXT_SERVERNAME | \ - MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ - MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ - MBEDTLS_SSL_EXT_SIG_ALG | \ - MBEDTLS_SSL_EXT_USE_SRTP | \ - MBEDTLS_SSL_EXT_HEARTBEAT | \ - MBEDTLS_SSL_EXT_ALPN | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ - MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_PADDING | \ - MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES | \ - MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS | \ - MBEDTLS_SSL_EXT_CERT_AUTH | \ - MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH | \ - MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ + MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ + MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ + MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ + MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ + MBEDTLS_SSL_EXT_MASK( ALPN ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) | \ + MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( PADDING ) | \ + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) | \ + MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ + MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) | \ + MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( POST_HANDSHAKE_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ - ( MBEDTLS_SSL_EXT_SERVERNAME | \ - MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH | \ - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | \ - MBEDTLS_SSL_EXT_USE_SRTP | \ - MBEDTLS_SSL_EXT_HEARTBEAT | \ - MBEDTLS_SSL_EXT_ALPN | \ - MBEDTLS_SSL_EXT_CLI_CERT_TYPE | \ - MBEDTLS_SSL_EXT_SERV_CERT_TYPE | \ - MBEDTLS_SSL_EXT_EARLY_DATA ) + ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ + MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ + MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ + MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ + MBEDTLS_SSL_EXT_MASK( ALPN ) | \ + MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ + MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) ) /* RFC 8446 section 4.2. Allowed extensions for CertificateRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ - ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SIG_ALG | \ - MBEDTLS_SSL_EXT_SCT | \ - MBEDTLS_SSL_EXT_CERT_AUTH | \ - MBEDTLS_SSL_EXT_OID_FILTERS | \ - MBEDTLS_SSL_EXT_SIG_ALG_CERT | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) | \ + MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ + MBEDTLS_SSL_EXT_MASK( OID_FILTERS ) | \ + MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ - ( MBEDTLS_SSL_EXT_STATUS_REQUEST | \ - MBEDTLS_SSL_EXT_SCT ) + ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ + MBEDTLS_SSL_EXT_MASK( SCT ) ) /* RFC 8446 section 4.2. Allowed extensions for ServerHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ - ( MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) /* RFC 8446 section 4.2. Allowed extensions for HelloRetryRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ - ( MBEDTLS_SSL_EXT_KEY_SHARE | \ - MBEDTLS_SSL_EXT_COOKIE | \ - MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS ) + ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ + MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ + MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) /* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ - ( MBEDTLS_SSL_EXT_EARLY_DATA | \ - MBEDTLS_SSL_EXT_UNRECOGNIZED ) + ( MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) /* * Helper macros for function call with return check. diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a52b4ca69..1bbd7f033 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1685,28 +1685,22 @@ void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, * with an "illegal_parameter" alert. * */ - int mbedtls_ssl_tls13_check_received_extension( mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int received_extension_type, uint32_t hs_msg_allowed_extensions_mask ) { -#if defined(MBEDTLS_DEBUG_C) - const char *hs_msg_name = ssl_tls13_get_hs_msg_name( hs_msg_type ); -#endif - uint32_t extension_mask = mbedtls_tls13_get_extension_mask( received_extension_type ); + uint32_t extension_mask = mbedtls_ssl_get_extension_mask( + received_extension_type ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "%s : received %s(%x) extension", - hs_msg_name, - mbedtls_tls13_get_extension_name( received_extension_type ), - (unsigned int)received_extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "received" ); if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : forbidden extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "is illegal" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); @@ -1721,7 +1715,7 @@ int mbedtls_ssl_tls13_check_received_extension( switch( hs_msg_type ) { case MBEDTLS_SSL_HS_SERVER_HELLO: - case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. + case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_HS_CERTIFICATE: /* Check if the received extension is sent by peer message.*/ @@ -1732,8 +1726,8 @@ int mbedtls_ssl_tls13_check_received_extension( return( 0 ); } - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "%s : unexpected extension received.", hs_msg_name ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, hs_msg_type, received_extension_type, "is unsupported" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); @@ -1741,3 +1735,4 @@ int mbedtls_ssl_tls13_check_received_extension( } #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ + From 909e03c52f7e2132656ed83e5f985466f51f9b24 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 18 Oct 2022 18:14:33 +0200 Subject: [PATCH 0595/1574] Bignum core: fill_random: prototype Signed-off-by: Gilles Peskine --- library/bignum_core.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index ccccebbff..624eaf49a 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -470,4 +470,28 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, size_t count, size_t index ); +/** + * \brief Fill an integer with a number of random bytes. + * + * \param X The destination MPI. + * \param X_limbs The number of limbs of \p X. + * \param bytes The number of random bytes to generate. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. This may be + * \c NULL if \p f_rng doesn't need a context argument. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p X does not have + * enough room for \p bytes bytes. + * \return A negative error code on RNG failure. + * + * \note The bytes obtained from the RNG are interpreted + * as a big-endian representation of an MPI; this can + * be relevant in applications like deterministic ECDSA. + */ +int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, + size_t bytes, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + #endif /* MBEDTLS_BIGNUM_CORE_H */ From 5980f2bd36b6e5508550085dd05d59069e4047ab Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Sep 2022 20:55:53 +0200 Subject: [PATCH 0596/1574] Implement mbedtls_mpi_core_fill_random Turn mpi_fill_random_internal() into mbedtls_mpi_core_fill_random(). It had basically the right code except for how X is passed to the function. Write unit tests. Signed-off-by: Gilles Peskine --- library/bignum.c | 23 ++++--- tests/suites/test_suite_bignum_core.function | 53 +++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 66 +++++++++++++++++++ 3 files changed, 132 insertions(+), 10 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index d33f07cc4..b5431a0fe 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1934,25 +1934,26 @@ cleanup: /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_random()). + * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). * The size and sign of X are unchanged. * n_bytes must not be 0. */ -static int mpi_fill_random_internal( - mbedtls_mpi *X, size_t n_bytes, +int mbedtls_mpi_core_fill_random( + mbedtls_mpi_uint *X, size_t X_limbs, + size_t n_bytes, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const size_t limbs = CHARS_TO_LIMBS( n_bytes ); const size_t overhead = ( limbs * ciL ) - n_bytes; - if( X->n < limbs ) + if( X_limbs < limbs ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - memset( X->p, 0, overhead ); - memset( (unsigned char *) X->p + limbs * ciL, 0, ( X->n - limbs ) * ciL ); - MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X->p + overhead, n_bytes ) ); - mbedtls_mpi_core_bigendian_to_host( X->p, limbs ); + memset( X, 0, overhead ); + memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); + MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); + mbedtls_mpi_core_bigendian_to_host( X, limbs ); cleanup: return( ret ); @@ -1980,7 +1981,7 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, if( size == 0 ) return( 0 ); - ret = mpi_fill_random_internal( X, size, f_rng, p_rng ); + ret = mbedtls_mpi_core_fill_random( X->p, X->n, size, f_rng, p_rng ); cleanup: return( ret ); @@ -2042,7 +2043,9 @@ int mbedtls_mpi_random( mbedtls_mpi *X, */ do { - MBEDTLS_MPI_CHK( mpi_fill_random_internal( X, n_bytes, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X->p, X->n, + n_bytes, + f_rng, p_rng ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( X, 8 * n_bytes - n_bits ) ); if( --count == 0 ) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index d5d58d870..745a8af46 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -992,3 +992,56 @@ exit: mbedtls_free(dest); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_core_fill_random( int wanted_bytes_arg, int extra_rng_bytes, + int extra_limbs, int before, int expected_ret ) +{ + size_t wanted_bytes = wanted_bytes_arg; + mbedtls_mpi_uint *X = NULL; + size_t X_limbs = CHARS_TO_LIMBS( wanted_bytes ) + extra_limbs; + size_t rng_bytes = wanted_bytes + extra_rng_bytes; + unsigned char *rnd_data = NULL; + mbedtls_test_rnd_buf_info rnd_info = {NULL, rng_bytes, NULL, NULL}; + int ret; + + /* Prepare an RNG with known output, limited to rng_bytes. */ + ASSERT_ALLOC( rnd_data, rng_bytes ); + TEST_EQUAL( 0, mbedtls_test_rnd_std_rand( NULL, rnd_data, rng_bytes ) ); + rnd_info.buf = rnd_data; + + /* Allocate an MPI with room for wanted_bytes plus extra_limbs. + * extra_limbs may be negative but the total limb count must be positive. + * Fill the MPI with the byte value in before. */ + TEST_LE_U( 1, X_limbs ); + ASSERT_ALLOC( X, X_limbs ); + memset( X, before, X_limbs * sizeof( *X ) ); + + ret = mbedtls_mpi_core_fill_random( X, X_limbs, wanted_bytes, + mbedtls_test_rnd_buffer_rand, + &rnd_info ); + TEST_EQUAL( expected_ret, ret ); + + if( expected_ret == 0 ) + { + /* mbedtls_mpi_core_fill_random is documented to use bytes from the + * RNG as a big-endian representation of the number. We used an RNG + * with known output, so check that the output contains the + * expected value. Bytes above wanted_bytes must be zero. */ + for( size_t i = 0; i < wanted_bytes; i++ ) + { + mbedtls_test_set_step( i ); + TEST_EQUAL( GET_BYTE( X, i ), rnd_data[wanted_bytes - 1 - i] ); + } + for( size_t i = wanted_bytes; i < X_limbs * ciL; i++ ) + { + mbedtls_test_set_step( i ); + TEST_EQUAL( GET_BYTE( X, i ), 0 ); + } + } + +exit: + mbedtls_free( rnd_data ); + mbedtls_free( X ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index a8fe9ab9d..743bb3efe 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -364,3 +364,69 @@ mpi_core_get_mont_r2_unsafe:"8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"5 mbedtls_mpi_core_get_mont_r2_unsafe #11 mpi_core_get_mont_r2_unsafe:"d1cece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e":"12d7243d92ebc8338221f6dcec8ad8a2ec64c10a98339c8721beb1cb79e629253a7aa35e25d5421e6c2b43ddc4310cf4443875c070a7a5a5cc2c4c3eefa8a133af2e477fb7bb5b5058c6120946a7f9f08f2fab51e2f243b9ba206d2bfd62e4ef647dda49100d7004794f28172be2d715905fbd2e9ab8588c774523c0e096b49b6855a10e5ce0d8498370949a29d71d293788bf10a71e2447d4b2f11959a72f7290e2950772d14c83f15532468745fa58a83fca8883b0b6169a27ec0cf922c4f39d283bb20fca5ff1de01d9c66b8a710108b951af634d56c843d9505bf2edd5a7b8f0b72a5c95672151e60075a78084e83fbe284617a90c74c8335cce38bb012e" + +Fill random core: 0 bytes +mpi_core_fill_random:0:0:1:0:0 + +Fill random core: 1 byte, RNG stops at 0 +mpi_core_fill_random:1:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 1 byte, RNG just sufficient +mpi_core_fill_random:1:0:0:0:0 + +Fill random core: 1 byte, RNG not exhausted +mpi_core_fill_random:1:1:0:0:0 + +Fill random core: 1 byte, prior content nonzero +mpi_core_fill_random:1:0:0:0xba:0 + +Fill random core: 1 byte, 1 extra limb +mpi_core_fill_random:1:0:1:0:0 + +Fill random core: 1 byte, 1 extra limb, prior content nonzero +mpi_core_fill_random:1:0:1:0xba:0 + +Fill random core: 8 bytes, RNG stops before +mpi_core_fill_random:8:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 8 bytes, RNG just sufficient +mpi_core_fill_random:8:0:0:0:0 + +Fill random core: 8 bytes, RNG not exhausted +mpi_core_fill_random:8:1:0:0:0 + +Fill random core: 8 bytes, prior content nonzero +mpi_core_fill_random:8:0:0:0xba:0 + +Fill random core: 8 bytes, 1 extra limb +mpi_core_fill_random:8:0:1:0:0 + +Fill random core: 8 bytes, 1 extra limb, prior content nonzero +mpi_core_fill_random:8:0:1:0xba:0 + +Fill random core: 9 bytes, 1 missing limb +mpi_core_fill_random:9:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Fill random core: 42 bytes, RNG stops before +mpi_core_fill_random:42:-1:0:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED + +Fill random core: 42 bytes, RNG just sufficient +mpi_core_fill_random:42:0:0:0:0 + +Fill random core: 42 bytes, RNG not exhausted +mpi_core_fill_random:42:1:0:0:0 + +Fill random core: 42 bytes, prior content nonzero +mpi_core_fill_random:42:0:0:0xba:0 + +Fill random core: 42 bytes, 1 extra limb +mpi_core_fill_random:42:0:1:0:0 + +Fill random core: 42 bytes, 1 extra limb, prior content nonzero +mpi_core_fill_random:42:0:1:0xba:0 + +Fill random core: 42 bytes, 1 missing limb +mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Fill random core: 42 bytes, 5 missing limbs +mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA From 009d195a56522868cc7a887783f5db04706fd2ac Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Sep 2022 21:00:00 +0200 Subject: [PATCH 0597/1574] Move mbedtls_mpi_core_fill_random to the proper .c file Signed-off-by: Gilles Peskine --- library/bignum.c | 28 ---------------------------- library/bignum_core.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index b5431a0fe..76202fe51 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1931,34 +1931,6 @@ cleanup: return( ret ); } -/* Fill X with n_bytes random bytes. - * X must already have room for those bytes. - * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). - * The size and sign of X are unchanged. - * n_bytes must not be 0. - */ -int mbedtls_mpi_core_fill_random( - mbedtls_mpi_uint *X, size_t X_limbs, - size_t n_bytes, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( n_bytes ); - const size_t overhead = ( limbs * ciL ) - n_bytes; - - if( X_limbs < limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - memset( X, 0, overhead ); - memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); - MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); - mbedtls_mpi_core_bigendian_to_host( X, limbs ); - -cleanup: - return( ret ); -} - /* * Fill X with size bytes of random. * diff --git a/library/bignum_core.c b/library/bignum_core.c index b3bb3bcb8..e40599596 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -553,4 +553,33 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, } } + +/* Fill X with n_bytes random bytes. + * X must already have room for those bytes. + * The ordering of the bytes returned from the RNG is suitable for + * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). + * The size and sign of X are unchanged. + * n_bytes must not be 0. + */ +int mbedtls_mpi_core_fill_random( + mbedtls_mpi_uint *X, size_t X_limbs, + size_t n_bytes, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + const size_t limbs = CHARS_TO_LIMBS( n_bytes ); + const size_t overhead = ( limbs * ciL ) - n_bytes; + + if( X_limbs < limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + memset( X, 0, overhead ); + memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); + MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); + mbedtls_mpi_core_bigendian_to_host( X, limbs ); + +cleanup: + return( ret ); +} + #endif /* MBEDTLS_BIGNUM_C */ From dd54324765bceba86a983a2ad4f8ba87d023e959 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 23:07:23 +0200 Subject: [PATCH 0598/1574] Increase iterations for some statistical tests I ran into a sequence where the assertion `stats[8] > 0` failed for the range 1..272 with 100 iterations. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.misc.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 78afcb64c..29ba4ab46 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1766,16 +1766,16 @@ MPI random in range: 1..12 mpi_random_many:1:"0c":1000 MPI random in range: 1..255 -mpi_random_many:1:"ff":100 +mpi_random_many:1:"ff":200 MPI random in range: 1..256 -mpi_random_many:1:"0100":100 +mpi_random_many:1:"0100":200 MPI random in range: 1..257 -mpi_random_many:1:"0101":100 +mpi_random_many:1:"0101":200 MPI random in range: 1..272 -mpi_random_many:1:"0110":100 +mpi_random_many:1:"0110":200 MPI random in range: 1..2^64-1 mpi_random_many:1:"ffffffffffffffff":100 From 22cdd0ccd3af1f4721181ebcc949bf2f25db0ccd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 27 Oct 2022 20:15:13 +0200 Subject: [PATCH 0599/1574] Update some internal comments The refactoring of fill_random had left some obsolete bits in comments. Signed-off-by: Gilles Peskine --- library/bignum.c | 7 +++---- library/bignum_core.c | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 76202fe51..521787d74 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1933,10 +1933,9 @@ cleanup: /* * Fill X with size bytes of random. - * - * Use a temporary bytes representation to make sure the result is the same - * regardless of the platform endianness (useful when f_rng is actually - * deterministic, eg for tests). + * The bytes returned from the RNG are used in a specific order which + * is suitable for deterministic ECDSA (see the specification of + * mbedtls_mpi_random() and the implementation in mbedtls_mpi_fill_random()). */ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, int (*f_rng)(void *, unsigned char *, size_t), diff --git a/library/bignum_core.c b/library/bignum_core.c index e40599596..b990a8dcc 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -557,9 +557,8 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for - * deterministic ECDSA (see RFC 6979 §3.3 and mbedtls_mpi_core_random()). - * The size and sign of X are unchanged. - * n_bytes must not be 0. + * deterministic ECDSA (see RFC 6979 §3.3 and the specification of + * mbedtls_mpi_core_random()). */ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, From 9bd28dc1e199d79257321aee4639bea6b201f1db Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Wed, 2 Nov 2022 16:36:14 +0100 Subject: [PATCH 0600/1574] Update changed log Signed-off-by: Asfandyar Orakzai --- ChangeLog | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6dfb23fa6..29428a900 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,6 +122,11 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. + * Brought in PSA code gen driver list JSON, + auto generated templating support for key management, + transparent and opaque keys ( import/export/copy ), iincluded some + general JSON validation, and more specifically for the given entry points. + Addresses ver 1.1 of #5137 Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage From 2a8bcf8c6fe64099bdd274b0b2aa2c7af2f81fc4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 10:47:30 +0000 Subject: [PATCH 0601/1574] Add bignum merge scaffolding Signed-off-by: Janos Follath --- library/bignum_core.c | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index b990a8dcc..34aecda50 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -553,7 +553,6 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, } } - /* Fill X with n_bytes random bytes. * X must already have room for those bytes. * The ordering of the bytes returned from the RNG is suitable for @@ -581,4 +580,44 @@ cleanup: return( ret ); } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ From 5933f691a24125b95e9d1d086694e87953490a09 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:35:17 +0000 Subject: [PATCH 0602/1574] Add merge slots to Bignum files Legacy Bignum is excluded as it doesn't get regular extensions like new ones. Each slot uses comments of their respective filetype. Since .data files don't have a syntax for comments, dummy test cases are used. (These test cases will never be executed and no noise will be added to tests.) Signed-off-by: Janos Follath --- library/bignum_core.h | 40 ++++++++++ library/bignum_mod.c | 40 ++++++++++ library/bignum_mod.h | 40 ++++++++++ library/bignum_mod_raw.c | 40 ++++++++++ library/bignum_mod_raw.h | 40 ++++++++++ scripts/mbedtls_dev/bignum_core.py | 41 ++++++++++ tests/suites/test_suite_bignum_core.function | 40 ++++++++++ tests/suites/test_suite_bignum_core.misc.data | 80 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.data | 80 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.function | 40 ++++++++++ tests/suites/test_suite_bignum_mod_raw.data | 80 +++++++++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 40 ++++++++++ 12 files changed, 601 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 624eaf49a..ad04e0828 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -494,4 +494,44 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_CORE_H */ diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 60c073ac4..13108c51f 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -184,4 +184,44 @@ exit: return( ret ); } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 3b3338c2d..29c26f2ef 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -148,4 +148,44 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, */ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_MOD_H */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 4b8a69800..a329e86df 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -102,4 +102,44 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, } } +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_C */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 6f8f1559c..30648d3cc 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -138,4 +138,44 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, unsigned char *output, size_t output_length ); +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ + #endif /* MBEDTLS_BIGNUM_MOD_RAW_H */ diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 9929e13fa..87098075f 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -815,3 +815,44 @@ def mpi_modmul_case_generate() -> None: ) i += 1 print(generated_inputs) + +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 745a8af46..f50fd07e4 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1045,3 +1045,43 @@ exit: mbedtls_free( X ); } /* END_CASE */ + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 743bb3efe..28de24392 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -430,3 +430,83 @@ mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Fill random core: 42 bytes, 5 missing limbs mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_core_io_null diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index cb781403d..c80bfa338 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -24,3 +24,83 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index ad89bdf3e..1a2d0c135 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -54,3 +54,43 @@ exit: #undef MLIMBS } /* END_CASE */ + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 788165d1a..c47d47396 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -178,3 +178,83 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 + +BEGIN MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 1 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 2 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 3 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 4 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 5 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 6 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 7 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 8 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 9 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +BEGIN MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 + +END MERGE SLOT 10 +depends_on:MBEDTLS_BIGNUM_MERGE +mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 7c9d5dbe4..a6361d7e0 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -279,4 +279,44 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); } + +/* BEGIN MERGE SLOT 1 */ + +/* END MERGE SLOT 1 */ + +/* BEGIN MERGE SLOT 2 */ + +/* END MERGE SLOT 2 */ + +/* BEGIN MERGE SLOT 3 */ + +/* END MERGE SLOT 3 */ + +/* BEGIN MERGE SLOT 4 */ + +/* END MERGE SLOT 4 */ + +/* BEGIN MERGE SLOT 5 */ + +/* END MERGE SLOT 5 */ + +/* BEGIN MERGE SLOT 6 */ + +/* END MERGE SLOT 6 */ + +/* BEGIN MERGE SLOT 7 */ + +/* END MERGE SLOT 7 */ + +/* BEGIN MERGE SLOT 8 */ + +/* END MERGE SLOT 8 */ + +/* BEGIN MERGE SLOT 9 */ + +/* END MERGE SLOT 9 */ + +/* BEGIN MERGE SLOT 10 */ + +/* END MERGE SLOT 10 */ /* END_CASE */ From df8239b846b2f61b59751071c402f5d6b626abb1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:40:58 +0000 Subject: [PATCH 0603/1574] Add script for generating mod_raw test cases This commit only adds the boilerplate, no actual tests are added. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod_raw.py | 29 +++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/mbedtls_dev/bignum_mod_raw.py diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py new file mode 100644 index 000000000..767073171 --- /dev/null +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -0,0 +1,29 @@ +"""Framework classes for generation of bignum mod_raw test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from abc import ABCMeta +from typing import Dict, Iterator, List, Tuple + +from . import test_data_generation +from . import bignum_common + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum mod_raw test case generation.""" + target_basename = 'test_suite_bignum_mod_raw.generated' + From b99b056f0af8c07db063987a75b96ee65bd0975f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:44:08 +0000 Subject: [PATCH 0604/1574] Add script for generating mod test cases This commit only adds the boilerplate, no actual tests are added. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/mbedtls_dev/bignum_mod.py diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py new file mode 100644 index 000000000..3bed853c6 --- /dev/null +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -0,0 +1,29 @@ +"""Framework classes for generation of bignum mod test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +from abc import ABCMeta +from typing import Dict, Iterator, List, Tuple + +from . import test_data_generation +from . import bignum_common + +class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + """Target for bignum mod test case generation.""" + target_basename = 'test_suite_bignum_mod.generated' + From 1be322a79569e8d7c56c24f7880919f7dc37d93e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 14:46:23 +0000 Subject: [PATCH 0605/1574] Add merge slots to raw and mod_raw test generation Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 40 +++++++++++++++++++++++++++ scripts/mbedtls_dev/bignum_mod_raw.py | 40 +++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 3bed853c6..f4f05912f 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -27,3 +27,43 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod test case generation.""" target_basename = 'test_suite_bignum_mod.generated' +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 767073171..d5d48fe32 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -27,3 +27,43 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 + From be136522961081c83b9e129c80e81dbee25e9690 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 15:12:04 +0000 Subject: [PATCH 0606/1574] Use comments for merge separators in .data files We do have a comment syntax for .data files, there is no need for dummy test cases. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.misc.data | 80 +++++------------- tests/suites/test_suite_bignum_mod.data | 81 +++++-------------- tests/suites/test_suite_bignum_mod_raw.data | 81 +++++-------------- 3 files changed, 62 insertions(+), 180 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 28de24392..30c767c74 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -431,82 +431,42 @@ mpi_core_fill_random:42:0:-1:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA Fill random core: 42 bytes, 5 missing limbs mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# BEGIN MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_core_io_null +# END MERGE SLOT 10 diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index c80bfa338..d06541fd6 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -25,82 +25,43 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 Test mbedtls_mpi_mod_setup #9 (Both representations valid) mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index c47d47396..6644b1e22 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -179,82 +179,43 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 -BEGIN MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 1 -END MERGE SLOT 1 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 1 -BEGIN MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 2 -END MERGE SLOT 2 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 2 -BEGIN MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 3 -END MERGE SLOT 3 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 3 -BEGIN MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 4 -END MERGE SLOT 4 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 4 -BEGIN MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 5 -END MERGE SLOT 5 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 5 -BEGIN MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 6 -END MERGE SLOT 6 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 6 -BEGIN MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 7 -END MERGE SLOT 7 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 7 -BEGIN MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 8 -END MERGE SLOT 8 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 8 -BEGIN MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 9 -END MERGE SLOT 9 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# END MERGE SLOT 9 -BEGIN MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 -END MERGE SLOT 10 -depends_on:MBEDTLS_BIGNUM_MERGE -mpi_mod_raw_io:"00":1:1:MBEDTLS_MPI_MOD_EXT_REP_BE:0:0 From 6642cafae39ee01e2767c0b13e74d4ffa057a4bd Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 16:14:08 +0000 Subject: [PATCH 0607/1574] Fix merge separator position Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod_raw.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index a6361d7e0..8ac1ef497 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -279,6 +279,7 @@ exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( buff_m ); } +/* END_CASE */ /* BEGIN MERGE SLOT 1 */ @@ -319,4 +320,3 @@ exit: /* BEGIN MERGE SLOT 10 */ /* END MERGE SLOT 10 */ -/* END_CASE */ From 9cf14cd6b0efe947aee100749406a3f46788775f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 16:15:25 +0000 Subject: [PATCH 0608/1574] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 1 - scripts/mbedtls_dev/bignum_mod.py | 5 ----- scripts/mbedtls_dev/bignum_mod_raw.py | 5 ----- 3 files changed, 11 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 87098075f..0cc86b809 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -855,4 +855,3 @@ def mpi_modmul_case_generate() -> None: # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index f4f05912f..117e1ee7b 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -14,13 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import random - from abc import ABCMeta -from typing import Dict, Iterator, List, Tuple from . import test_data_generation -from . import bignum_common class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -66,4 +62,3 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index d5d48fe32..2a4886ca9 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,13 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -import random - from abc import ABCMeta -from typing import Dict, Iterator, List, Tuple from . import test_data_generation -from . import bignum_common class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -66,4 +62,3 @@ class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - From c1a81bc998f22c57bc25318c66d1f931f06e5c5d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 2 Nov 2022 17:33:11 +0000 Subject: [PATCH 0609/1574] Remove trailing new lines Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.data | 1 - tests/suites/test_suite_bignum_mod_raw.data | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index d06541fd6..95faa53b8 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -64,4 +64,3 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 6644b1e22..8cbd918f8 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -218,4 +218,3 @@ mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA # BEGIN MERGE SLOT 10 # END MERGE SLOT 10 - From ee2b637d03c8835dda0eb29ea0782114f80f75cd Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Wed, 2 Nov 2022 21:50:27 +0100 Subject: [PATCH 0610/1574] Fixed change log issue Signed-off-by: Asfandyar Orakzai --- ChangeLog | 7 +------ ChangeLog.d/psa_crypto_code_gen_1_1.txt | 6 ++++++ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 ChangeLog.d/psa_crypto_code_gen_1_1.txt diff --git a/ChangeLog b/ChangeLog index 29428a900..aedcb16bc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,12 +122,7 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. - * Brought in PSA code gen driver list JSON, - auto generated templating support for key management, - transparent and opaque keys ( import/export/copy ), iincluded some - general JSON validation, and more specifically for the given entry points. - Addresses ver 1.1 of #5137 - + Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage module before freeing them. These buffers contain secret key material, and diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt new file mode 100644 index 000000000..549d68dda --- /dev/null +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -0,0 +1,6 @@ +Features + * Brought in PSA code geneneration JSON driver list. + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). + Included some general JSON validation, and more specifically for the given entry points. + Addresses version 1.1 of #5137 \ No newline at end of file From d820ca5d07835e490a5dcb99402be8929dff001d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 3 Nov 2022 08:42:54 +0000 Subject: [PATCH 0611/1574] Fix bignum test generator class names Co-authored-by: minosgalanakis <30719586+minosgalanakis@users.noreply.github.com> Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod.py | 2 +- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 117e1ee7b..2bd7fbbda 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -18,7 +18,7 @@ from abc import ABCMeta from . import test_data_generation -class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): +class BignumModTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod test case generation.""" target_basename = 'test_suite_bignum_mod.generated' diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 2a4886ca9..2e059b26e 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -18,7 +18,7 @@ from abc import ABCMeta from . import test_data_generation -class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): +class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' From 4f63ac43582826d76111830f1bd548ff2a5f9daa Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 10:18:05 +0100 Subject: [PATCH 0612/1574] fixed changelog formating Signed-off-by: Asfandyar Orakzai --- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 549d68dda..94c9ac184 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -2,5 +2,5 @@ Features * Brought in PSA code geneneration JSON driver list. Added auto generated templating support for key management. Added Support for transparent and opaque keys (import/export/copy). - Included some general JSON validation, and more specifically for the given entry points. - Addresses version 1.1 of #5137 \ No newline at end of file + Included some general JSON validation, and more specifically for the + given entry points. Addresses version 1.1 of #5137 \ No newline at end of file From 65cd8a4a23652474f6ec0cf95f6114269bc0647c Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 11:16:40 +0100 Subject: [PATCH 0613/1574] fixed formating issues in psa_crypto_code_gen_1_1.txt Signed-off-by: Asfandyar Orakzai --- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 94c9ac184..087e4ee49 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -1,6 +1,7 @@ Features - * Brought in PSA code geneneration JSON driver list. - Added auto generated templating support for key management. - Added Support for transparent and opaque keys (import/export/copy). - Included some general JSON validation, and more specifically for the - given entry points. Addresses version 1.1 of #5137 \ No newline at end of file + * Brought in PSA code geneneration JSON driver list. + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). + Included some general JSON validation for the given entry points. + Addresses version 1.1 of #5137. + From 9b656d3c80c41144019a85f54d68fc9a84d0d827 Mon Sep 17 00:00:00 2001 From: Asfandyar Orakzai Date: Thu, 3 Nov 2022 11:39:36 +0100 Subject: [PATCH 0614/1574] removed stray whitespaces from change logs Signed-off-by: Asfandyar Orakzai --- ChangeLog | 2 +- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index aedcb16bc..6dfb23fa6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -122,7 +122,7 @@ Features and hmac_demo.c, which use PSA and the md/cipher interfaces side by side in order to illustrate how the operation is performed in PSA. Addresses #5208. - + Security * Zeroize dynamically-allocated buffers used by the PSA Crypto key storage module before freeing them. These buffers contain secret key material, and diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 087e4ee49..2c18e6f31 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -1,7 +1,6 @@ Features * Brought in PSA code geneneration JSON driver list. - Added auto generated templating support for key management. - Added Support for transparent and opaque keys (import/export/copy). + Added auto generated templating support for key management. + Added Support for transparent and opaque keys (import/export/copy). Included some general JSON validation for the given entry points. Addresses version 1.1 of #5137. - From fc234b7b52af978e0bff0c79a8f685bf9ab839b0 Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 2 Nov 2022 15:23:39 -0500 Subject: [PATCH 0615/1574] test/pkcs7: Add Windows CRLF EOF to data files Windows tests are failing pkcs7 verification due to differnt line endings. Therefore, add make instuctions for building the data files with Windows EOF instead. As a result, regenerate other data files so that verification works. Add these CRLF EOF files to the exception in check_files to ignore the line endings. Signed-off-by: Nick Child --- tests/data_files/Makefile | 8 ++++++++ tests/data_files/pkcs7_data.bin | 2 +- tests/data_files/pkcs7_data_1.bin | 2 +- .../data_files/pkcs7_data_cert_encrypted.der | Bin 452 -> 452 bytes .../pkcs7_data_cert_signed_sha1.der | Bin 1276 -> 1276 bytes .../pkcs7_data_cert_signed_sha256.der | Bin 1284 -> 1284 bytes .../pkcs7_data_cert_signed_sha512.der | Bin 1284 -> 1284 bytes .../data_files/pkcs7_data_cert_signed_v2.der | Bin 1284 -> 1284 bytes .../pkcs7_data_cert_signeddata_sha256.der | Bin 1265 -> 1265 bytes .../pkcs7_data_multiple_certs_signed.der | Bin 2504 -> 2504 bytes .../data_files/pkcs7_data_multiple_signed.der | Bin 810 -> 810 bytes .../data_files/pkcs7_data_signed_badcert.der | Bin 1284 -> 1284 bytes .../pkcs7_data_signed_badsigner.der | Bin 1284 -> 1284 bytes .../pkcs7_data_without_cert_signed.der | Bin 435 -> 435 bytes .../pkcs7_signerInfo_issuer_invalid_size.der | Bin 1284 -> 1284 bytes .../pkcs7_signerInfo_serial_invalid_size.der | Bin 1284 -> 1284 bytes tests/scripts/check_files.py | 1 + tests/suites/test_suite_pkcs7.function | 2 +- 18 files changed, 12 insertions(+), 3 deletions(-) diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index b92944ac2..581de256f 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -1136,6 +1136,14 @@ pkcs7_test_cert_1 = pkcs7-rsa-sha256-1.crt pkcs7_test_cert_2 = pkcs7-rsa-sha256-2.crt pkcs7_test_file = pkcs7_data.bin +$(pkcs7_test_file): + echo -e "Hello\xd" > $@ +all_final += $(pkcs7_test_file) + +pkcs7_data_1.bin: + echo -e "2\xd" > $@ +all_final += pkcs7_data_1.bin + # Generate signing cert pkcs7-rsa-sha256-1.crt: $(OPENSSL) req -x509 -subj="/C=NL/O=PKCS7/CN=PKCS7 Cert 1" -sha256 -nodes -days 365 -newkey rsa:2048 -keyout pkcs7-rsa-sha256-1.key -out pkcs7-rsa-sha256-1.crt diff --git a/tests/data_files/pkcs7_data.bin b/tests/data_files/pkcs7_data.bin index e965047ad..40ee26477 100644 --- a/tests/data_files/pkcs7_data.bin +++ b/tests/data_files/pkcs7_data.bin @@ -1 +1 @@ -Hello +Hello diff --git a/tests/data_files/pkcs7_data_1.bin b/tests/data_files/pkcs7_data_1.bin index 0cfbf0888..78c6baefd 100644 --- a/tests/data_files/pkcs7_data_1.bin +++ b/tests/data_files/pkcs7_data_1.bin @@ -1 +1 @@ -2 +2 diff --git a/tests/data_files/pkcs7_data_cert_encrypted.der b/tests/data_files/pkcs7_data_cert_encrypted.der index 763057d9e5eb7be478369ddaba4f227fbe94afee..b7b1c8331d7899a34c9abbc490fa8c4ab99bdd7a 100644 GIT binary patch delta 327 zcmV-N0l5Ce1H=Q6hJPE)4$EW?YqVdyJBdo8YIJN>@8BewJ9eM(4TYQQ9aJ%WnUhyT zu0wBXZAF(k)I=bfF&5Ngz4bntvBK`xfT>mKybF-i-VB{>XNRj_cMi`4q@dCXz|Q&a zUJ|2R1i6f_!mF56I>Vux-a@^!)qyZuS-crr7VqJeUl8=F@qfv%I;dNga5n+37D`p! zlMd~E)f0Vp%djr-#fG0}hO1!^>Uiy#0a{Kx80qW57A*pdd&Wf!6j5qlP^A5wG-0f; z|D7(H$zIIf1}|8b96=X*BtwW|+GPG(DYijRe8cy@LQ7h5t>bS!?@<`yH5dmoWeU delta 327 zcmV-N0l5Ce1H=Q6hJQ-Tx?Q-lfoV9)#(TQgCqeV@4tPO1&1tm13K>?sDR&@`&2;zq zr5b(IZ;8P9uP7ZhV};5Nx$P4TQ~I`OP-JZVFRwH$$g#@GLhNsw7*u)5+$5;%u?lI* z7{f#jt%@Bd*gWd-Mfq+qY7!9F!t%(f_BmMLJc+}gPe-SXVlKe-8=>1~dR{fL1YSk2nD0zG z1e1lidjeML9yt-&lcdkej*zP>Dvpa!;p-i({!UoRGkSWHP_PS{49*_fNF&2ebMTFu za%v$Ei*vw1bh%2l|Mv>FqOyh&-GTi&S#ZbEYa0&xp0+K0aLL7Hh7cW4f# zURfNN9epg{Ht*AKLnMtAH$e)jo`R1nP)0NcVMtOkw3hYdzCOt!YerQGGW1m{oBRn zm8U~%`C1I$PK8v5^MvUh3AZkwyfqsS&?zHlgr}nOEDx;tzGEP+vx+-qhFKS`eENmc QzTmdm((B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/data_files/pkcs7_data_cert_signed_sha512.der b/tests/data_files/pkcs7_data_cert_signed_sha512.der index 41849a943e54d4d08d0d1fdf9926f2c362fc986b..a4aa5875876de0170637190fe7e71da8bbd73ee6 100644 GIT binary patch delta 266 zcmV+l0rmcb3WN%<1O$IWxkRl)AS@Ao`ZoC;w%Vw76Q@b>Y0K5Kn{oXNP?Z`kesT;a zS>3BVN*QzSsoHr?1a0hzYtmYDw`udB8*#cr{u_NkM3rg=X|Sx+S(J*|A5FG3oOAgX zlH33xWKdE&+j*Q=1MuH4HlHEM-1CF|CQB1y%^Cs-#q@rC7a2eEB$hG&@m*)d1L9~p0fgJ|V- zKO|i_bomi{{JOd>3kGR5rUG7x`4Ga|@9gGRv&UU!Yx*EkquOUVOYzOxLul+8bbZkT ziFpTB$xFfP$=qBrsd#NQGF+4~^!v9I(F*JY9sy0<5=oE7T*-fjZ>o1=(l$1Be=Ak% z_-J$l*M6RG>)wY-UcvnHTBRpm{*ri57_CijJ&)Wb7bfqnpxZgQJEW?^!E!T{}_UWl>h($ diff --git a/tests/data_files/pkcs7_data_cert_signed_v2.der b/tests/data_files/pkcs7_data_cert_signed_v2.der index befd17c190253d2fc76833b5f6cc60b6a2742a2c..4f4cb047e079c550dc063ef53425dce81a5e31a3 100644 GIT binary patch delta 266 zcmV+l0rmcb3WN%<1O$Iu?AURY!QTIn!c37Sn^m*$X}ls_GHfwS8c}#}{uIbCzD`TW zJi0c?c6YQvXeXQL9(>B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/data_files/pkcs7_data_cert_signeddata_sha256.der b/tests/data_files/pkcs7_data_cert_signeddata_sha256.der index 85ea9f9fc1f29c7a68936a17ddf3825f10e9636f..cb7d75103daf5ed7cbaf0e2201458ca7c1fad8cf 100644 GIT binary patch delta 266 zcmV+l0rmdz3GoTA@dJNb?AURY!QTIn!c37Sn^m*$X}ls_GHfwS8c}#}{uIbCzD`TW zJi0c?c6YQvXeXQL9(>B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&@It`H2?qr delta 266 zcmV+l0rmdz3GoTA@dJN!DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTr;+Q8~^|S diff --git a/tests/data_files/pkcs7_data_multiple_certs_signed.der b/tests/data_files/pkcs7_data_multiple_certs_signed.der index 69371ae202cfa21a20a1dfdaf11e115c4daa4ffa..4a237e9d145e0f4afedd8c3bcffb3bf146f96c4a 100644 GIT binary patch delta 529 zcmV+s0`C3D6UY;=Q3rop?AURY!QTIn!c37Sn^m*$X}ls_GHfwS8c}#}{uIbCzD`TW zJi0c?c6YQvXeXQL9(>B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 zhj;z#gj$!seGmdI(34RJcYg$6nA~40nd7`J)?_Vz3SsZ7!CW}UV>7(W?(R04PfAvsza}k$w!Zp1P85JQYK(t8eSRuudAsp~VycCG=)wvTwxZ6C zO@A@n8yQoQ&tZkH&NQ#!Se6BQHtDf(w#I(f!YFLNs6Y6jXUDv834gBV*Wr+x(}er{ zVUv#hr5uTq#~rg5a}O5h=XQpAM%V`rkvs<*Z_WQzcHy4B6` z;Fmz`YDF9WQ%?FJP@g-edw~JD9;fA9+x`>*QE+G1uo@}|dGLr_iAsmhwv0`F=#XGY Tfv&lHBGL0V?~*Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? z6F)b8(@@Lv8sq{YT$51&2C4>-vwvIc*m0G?-v5xoOpzv=RkQGEydqpOY%xq4QFw3u6v!~XPD{r; zx;DvnceFuhC!6UWeBXQ-IBMb;VsV`lqoDurfIUVDV)D(XHxz`2GE&3W1x>gVJ}U?s zI2P>)1jZ%ITknV#A(nGR1^b7L;jSpEWbXEmAH zZ_YK%t#>A%y8=wDnQMsP%b0~s>s$+N$4J@v&T4GbH-(F=xD;WECol7)6~^FyJ+PRE zcm3>yT9?0l5CSdGkvu+=@c}u11YnrlUn`m8ye`&cEq@AO@2kOFILBi%yv*+IHkwaL zTivMYStdaw{DDDrb4S@q%Kig?;G43KF)W z&W=rgG2I&(Qv2nJ>e%Hb%Y`>^K_@QUVym1MCuIJa`kekzl z`}|>(j{Kz@iIc}2vlnv@7U$=7hI-`v#bVa+UFC)6xlZ(!qi17hqRXncwl-vo0Cu|7 z&GF!uK&2C4>-vww6cd(|;$YQI9Xm0(^)E8sM>Ph#LuaXrFxk1)heHHv9_KC^j( ze&5w&YSg&ROA&tBpGfXdEZG?FcVC7862#yC0wlBgrJN|927R=a!?5c#f;;eY6((&r zMS~d9a3L4v`e|ntAl3o8-8baKu{#4BHj>ToZx!J(VkYk$UKX&xhgm?uk@e{yjhnpvYqYiOxq4#1Feupqxz|~m8?IGAa(sX` z;!6m8`LWUz1$}Zcq(kXVk}674-Wmp-=8q#&s)$;1ht)r+b04YlC>)b2WE9JfDRUqb zKR15UP|NcgZN{+F&q)V$;=K`E_uLJ=BpwhMP|$yp+n#k}G+}v0`4NNxU>SQKtjF zhGLsqxx*LkZB9X4AHb?>SEMlbakt^j9y0a5wBlO9B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/data_files/pkcs7_data_signed_badsigner.der b/tests/data_files/pkcs7_data_signed_badsigner.der index aff1448728d2d6f7dd2cf447251fe08cf7ac28e8..aa5447c44d27f7f4ccb8239e0598699a0055f9db 100644 GIT binary patch delta 266 zcmV+l0rmcb3WN%<1O$Iu?AURY!QTIn!c37Sn^m*$X}ls_GHfwS8c}#}{uIbCzD`TW zJi0c?c6YQvXeXQL9(>B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/data_files/pkcs7_data_without_cert_signed.der b/tests/data_files/pkcs7_data_without_cert_signed.der index dbff326ad33bb0fbedf6716cfa01f015537a8572..b47fe927e5b427158e0d5f27002e6e1ca885dd63 100644 GIT binary patch delta 265 zcmV+k0rvj01G58=vwvIc*m0G?-v5xoOpzv=RkQGEydqpOY%xq4QFw3u6v!~XPD{r; zx;DvnceFuhC!6UWeBXQ-IBMb;VsV`lqoDurfIUVDV)D(XHxz`2GE&3W1x>gVJ}U?s zI2P>)1jZ%ITknV#A(nGR1^b7L;jSpEWbXEmAH zZ_YK%t#>A%y8=wDnQMsP%b0~s>s$+N$4J@v&T4GbH-(F=xD;WECol7)6~^FyJ+PRE Pcm3>yT9?0l5CSdGJ5+y6 delta 265 zcmV+k0rvj01G58=vww6cd(|;$YQI9Xm0(^)E8sM>Ph#LuaXrFxk1)heHHv9_KC^j( ze&5w&YSg&ROA&tBpGfXdEZG?FcVC7862#yC0wlBgrJN|927R=a!?5c#f;;eY6((&r zMS~d9a3L4v`e|ntAl3o8-8baKu{#4BHj>ToZx!J(VkYk$UKX&xhgm?uk@e{yjhnpvYqYiOxq4#1Feupqxz|~m8?IGAa(sX` z;!6m8`LWUz1$}Zcq(kXVk}674-Wmp-=8q#&s)$;1ht)r+b04YlC>)b2WE9JfDRUqb PKR15UP|NcgB?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/data_files/pkcs7_signerInfo_serial_invalid_size.der b/tests/data_files/pkcs7_signerInfo_serial_invalid_size.der index 2db359072b44bcabbecbc1d0cae2c647c2406131..f4b4e384dbfc145a6c0382f71b51c8718701eb1c 100644 GIT binary patch delta 266 zcmV+l0rmcb3WN%<1O$Iu?AURY!QTIn!c37Sn^m*$X}ls_GHfwS8c}#}{uIbCzD`TW zJi0c?c6YQvXeXQL9(>B?;p`Da(~G6eTla5aa}3e+TdY?AzX>u*U!F`1s)FqsZdS94=7(pdfic4sx2 z+HcM^&8>GPpt}N0t(j|x;LDhWOzT_=ZpTR3`Oa!=)Hj8Tthf|miYG7gq!q^Ce?736 Qhj;z#gj$!seGmdI&|Q3faR2}S delta 266 zcmV+l0rmcb3WN%<1O$I{DSOp1XllPgw3T39MJwPmwNGN;P;ouNbdNB^PBn^Ydp@&y zf_~rCV`|j6%}Wt}+Mh`7P%POP@ONK^020LC{{kel`lXyGo(6rimcy{?G=e+ua}_3S zH${UO(r_Uc<@#x779iFEy4^SN3+k?bjKnKni0W`Ju)(35*=v8sVrd>Df0!p!a3_vX z2}zlrY1q><0cnL?C&6~yTt156{cE(f?74bkzc47-0=d^&nj5ZFKyrM5 zHsVVNeEG4`6a{^9F{DH3O_C}~Qr;Q{o#u}tQ>utsbBEPGsdFEx@+cgWDr6MPk12B? Q6F)b8(@@Lv8sq{YTw`H;SO5S3 diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index a0f5e1f53..50af88a6b 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -119,6 +119,7 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', + r'tests/data_files/pkcs7_data.*\.bin\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index c5094bcca..a1de9998d 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -150,7 +150,7 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch res = stat( filetobesigned, &st ); TEST_ASSERT( res == 0 ); - file = fopen( filetobesigned, "r" ); + file = fopen( filetobesigned, "rb" ); TEST_ASSERT( file != NULL ); datalen = st.st_size; From f8b3b7291033aee81691575c562194005793cbe9 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 3 Nov 2022 14:46:18 +0000 Subject: [PATCH 0616/1574] Add merge slots to bignum_common.py Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index c81770ed7..279668fd5 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -124,3 +124,43 @@ class OperationCommon: for b in cls.input_values ) yield from cls.input_cases + +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + +# END MERGE SLOT 7 + +# BEGIN MERGE SLOT 8 + +# END MERGE SLOT 8 + +# BEGIN MERGE SLOT 9 + +# END MERGE SLOT 9 + +# BEGIN MERGE SLOT 10 + +# END MERGE SLOT 10 From 2364aaefa64db2d3303a0b716eff14134f60fa66 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 4 Nov 2022 11:33:04 +0000 Subject: [PATCH 0617/1574] Update tests/suites/test_suite_pkcs7.function Address test dependency issue Signed-off-by: Dave Rodgman --- tests/suites/test_suite_pkcs7.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index a1de9998d..14a088253 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -10,7 +10,7 @@ /* END_HEADER */ /* BEGIN_DEPENDENCIES - * depends_on:MBEDTLS_PKCS7_C + * depends_on:MBEDTLS_PKCS7_C:MBEDTLS_RSA_C * END_DEPENDENCIES */ From b85838f2f4ce9289061fd0bf07c51bb596af2ca7 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 3 Nov 2022 17:49:29 +0000 Subject: [PATCH 0618/1574] Change test templating syntax to be valid C For the benefit of auto-formatting tools, move from the '$placeholder' templating syntax to a new syntax of the form: __MBEDTLS_TEST_TEMPLATE__PLACEHOLDER This change allows the test code template to be almost entirely valid C. Signed-off-by: David Horstmann --- tests/scripts/generate_test_code.py | 75 ++++++++++++++++++----------- tests/suites/main_test.function | 44 ++++++++--------- 2 files changed, 69 insertions(+), 50 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index f5750aacf..6d65986c8 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -126,33 +126,33 @@ code that is generated or read from helpers and platform files. This script replaces following fields in the template and generates the test source file: -$test_common_helpers <-- All common code from helpers.function - is substituted here. -$functions_code <-- Test functions are substituted here - from the input test_suit_xyz.function - file. C preprocessor checks are generated - for the build dependencies specified - in the input file. This script also - generates wrappers for the test - functions with code to expand the - string parameters read from the data - file. -$expression_code <-- This script enumerates the - expressions in the .data file and - generates code to handle enumerated - expression Ids and return the values. -$dep_check_code <-- This script enumerates all - build dependencies and generate - code to handle enumerated build - dependency Id and return status: if - the dependency is defined or not. -$dispatch_code <-- This script enumerates the functions - specified in the input test data file - and generates the initializer for the - function table in the template - file. -$platform_code <-- Platform specific setup and test - dispatch code. +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS <-- All common code from helpers.function + is substituted here. +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE <-- Test functions are substituted here + from the input test_suit_xyz.function + file. C preprocessor checks are generated + for the build dependencies specified + in the input file. This script also + generates wrappers for the test + functions with code to expand the + string parameters read from the data + file. +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE <-- This script enumerates the + expressions in the .data file and + generates code to handle enumerated + expression Ids and return the values. +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE <-- This script enumerates all + build dependencies and generate + code to handle enumerated build + dependency Id and return status: if + the dependency is defined or not. +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE <-- This script enumerates the functions + specified in the input test data file + and generates the initializer for the + function table in the template + file. +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE <-- Platform specific setup and test + dispatch code. """ @@ -974,11 +974,30 @@ def write_test_source_file(template_file, c_file, snippets): :param snippets: Generated and code snippets :return: """ + + # Create a placeholder pattern with the correct named capture groups + # to override the default provided with Template. + # Match nothing (no way of escaping placeholders). + escaped = "(?P(?!))" + # Match the "__MBEDTLS_TEST_TEMPLATE__PLACEHOLDER_NAME" pattern. + named = "__MBEDTLS_TEST_TEMPLATE__(?P[A-Z][_A-Z0-9]*)" + # Match nothing (no braced placeholder syntax). + braced = "(?P(?!))" + # If not already matched, a "__MBEDTLS_TEST_TEMPLATE__" prefix is invalid. + invalid = "(?P__MBEDTLS_TEST_TEMPLATE__)" + placeholder_pattern = re.compile(escaped \ + + "|" + named \ + + "|" + braced \ + + "|" + invalid) + with open(template_file, 'r') as template_f, open(c_file, 'w') as c_f: for line_no, line in enumerate(template_f.readlines(), 1): # Update line number. +1 as #line directive sets next line number snippets['line_no'] = line_no + 1 - code = string.Template(line).substitute(**snippets) + template = string.Template(line) + template.pattern = placeholder_pattern + snippets = {k.upper():v for (k, v) in snippets.items()} + code = template.substitute(**snippets) c_f.write(code) diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function index e01686534..48003d4f2 100644 --- a/tests/suites/main_test.function +++ b/tests/suites/main_test.function @@ -3,17 +3,17 @@ * *** THIS FILE HAS BEEN MACHINE GENERATED *** * * This file has been machine generated using the script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * - * Test file : $test_file + * Test file : __MBEDTLS_TEST_TEMPLATE__TEST_FILE * * The following files were used to create this file. * - * Main code file : $test_main_file - * Platform code file : $test_platform_file - * Helper file : $test_common_helper_file - * Test suite file : $test_case_file - * Test suite data : $test_case_data_file + * Main code file : __MBEDTLS_TEST_TEMPLATE__TEST_MAIN_FILE + * Platform code file : __MBEDTLS_TEST_TEMPLATE__TEST_PLATFORM_FILE + * Helper file : __MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPER_FILE + * Test suite file : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_FILE + * Test suite data : __MBEDTLS_TEST_TEMPLATE__TEST_CASE_DATA_FILE * */ @@ -37,9 +37,9 @@ /*----------------------------------------------------------------------------*/ /* Common helper code */ -$test_common_helpers +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ @@ -48,9 +48,9 @@ $test_common_helpers #define TEST_SUITE_ACTIVE -$functions_code +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ @@ -62,7 +62,7 @@ $functions_code * For optimizing space for embedded targets each expression/macro * is identified by a unique identifier instead of string literals. * Identifiers and evaluation code is generated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * * \param exp_id Expression identifier. * \param out_value Pointer to int to hold the integer. @@ -78,8 +78,8 @@ int get_expression( int32_t exp_id, int32_t * out_value ) switch( exp_id ) { -$expression_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: { ret = KEY_VALUE_MAPPING_NOT_FOUND; @@ -95,7 +95,7 @@ $expression_code * For optimizing space for embedded targets each dependency * is identified by a unique identifier instead of string literals. * Identifiers and check code is generated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * * \param dep_id Dependency identifier. * @@ -109,8 +109,8 @@ int dep_check( int dep_id ) switch( dep_id ) { -$dep_check_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: break; } @@ -137,13 +137,13 @@ typedef void (*TestWrapper_t)( void **param_array ); /** * \brief Table of test function wrappers. Used by dispatch_test(). * This table is populated by script: - * $generator_script + * __MBEDTLS_TEST_TEMPLATE__GENERATOR_SCRIPT * */ TestWrapper_t test_funcs[] = { -$dispatch_code -#line $line_no "suites/main_test.function" +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" }; /** @@ -219,9 +219,9 @@ int check_test( size_t func_idx ) } -$platform_code +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE -#line $line_no "suites/main_test.function" +#line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" /*----------------------------------------------------------------------------*/ /* Main Test code */ From d25cab0327d40e05f5bd9ea84fb5cc61f820cdd8 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 12:48:30 +0800 Subject: [PATCH 0619/1574] Refactor debug helpers for exts and hs message Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 46 +++++++---- library/ssl_misc.h | 3 + library/ssl_tls.c | 146 +++++++++++++++++++++++++++++++++++ library/ssl_tls13_generic.c | 149 ------------------------------------ 4 files changed, 180 insertions(+), 164 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 6b97bc652..8fce87a98 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -43,27 +43,43 @@ const char *mbedtls_ssl_sig_alg_to_str( uint16_t in ); const char *mbedtls_ssl_named_group_to_str( uint16_t in ); -#endif /* MBEDTLS_DEBUG_C */ +const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) -#if defined(MBEDTLS_DEBUG_C) +void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, uint32_t extensions_mask, + const char *extra ); -const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ); +void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, + unsigned int extension_type, + const char *extra_msg0, + const char *extra_msg1 ); -void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - uint32_t extensions_present ); +#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ + mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, \ + ssl->handshake->sent_extensions, \ + "sent" ) -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_type, extensions_present ) \ - mbedtls_ssl_tls13_print_extensions( \ - ssl, level, __FILE__, __LINE__, hs_msg_type, extensions_present ) +#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) \ + mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, \ + ssl->handshake->received_extensions, \ + "received" ) + +#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) \ + mbedtls_ssl_print_extension_type( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extension_type, extra, NULL ) #else -#define MBEDTLS_SSL_TLS1_3_PRINT_EXTS( level, hs_msg_name, extensions_present ) +#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) -#endif +#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) -#endif /* SSL_DEBUG_HELPERS_H */ +#endif /* MBEDTLS_DEBUG_C */ + +#endif /* MBEDTLS_SSL_DEBUG_HELPERS_H */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8ffdccb37..7c32969b2 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -74,6 +74,9 @@ #define MBEDTLS_SSL_RENEGOTIATION_DONE 2 /* Done or aborted */ #define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */ +/* Faked handshake message identity for HelloRetryRequest. */ +#define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) + /* * Inernal identity of handshake extensions */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index b3210c415..7bc0a0cd5 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -616,6 +616,152 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) return( 1 << mbedtls_ssl_get_extension_id( extension_type ) ); } +#if defined(MBEDTLS_DEBUG_C) +static const char *extension_name_table[] = { + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unreognized", + [MBEDTLS_SSL_EXT_ID_SERVERNAME] = "server_name", + [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = "max_fragment_length", + [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = "status_request", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS] = "supported_groups", + [MBEDTLS_SSL_EXT_ID_SIG_ALG] = "signature_algorithms", + [MBEDTLS_SSL_EXT_ID_USE_SRTP] = "use_srtp", + [MBEDTLS_SSL_EXT_ID_HEARTBEAT] = "heartbeat", + [MBEDTLS_SSL_EXT_ID_ALPN] = "application_layer_protocol_negotiation", + [MBEDTLS_SSL_EXT_ID_SCT] = "signed_certificate_timestamp", + [MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE] = "client_certificate_type", + [MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE] = "server_certificate_type", + [MBEDTLS_SSL_EXT_ID_PADDING] = "padding", + [MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY] = "pre_shared_key", + [MBEDTLS_SSL_EXT_ID_EARLY_DATA] = "early_data", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS] = "supported_versions", + [MBEDTLS_SSL_EXT_ID_COOKIE] = "cookie", + [MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES] = "psk_key_exchange_modes", + [MBEDTLS_SSL_EXT_ID_CERT_AUTH] = "certificate_authorities", + [MBEDTLS_SSL_EXT_ID_OID_FILTERS] = "oid_filters", + [MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH] = "post_handshake_auth", + [MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT] = "signature_algorithms_cert", + [MBEDTLS_SSL_EXT_ID_KEY_SHARE] = "key_share", + [MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC] = "truncated_hmac", + [MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS] = "supported_point_formats", + [MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC] = "encrypt_then_mac", + [MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET] = "extended_master_secret", + [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = "session_ticket" +}; + +static unsigned int extension_type_tbl[]={ + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = 0xff, + [MBEDTLS_SSL_EXT_ID_SERVERNAME] = MBEDTLS_TLS_EXT_SERVERNAME, + [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, + [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = MBEDTLS_TLS_EXT_STATUS_REQUEST, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS] = MBEDTLS_TLS_EXT_SUPPORTED_GROUPS, + [MBEDTLS_SSL_EXT_ID_SIG_ALG] = MBEDTLS_TLS_EXT_SIG_ALG, + [MBEDTLS_SSL_EXT_ID_USE_SRTP] = MBEDTLS_TLS_EXT_USE_SRTP, + [MBEDTLS_SSL_EXT_ID_HEARTBEAT] = MBEDTLS_TLS_EXT_HEARTBEAT, + [MBEDTLS_SSL_EXT_ID_ALPN] = MBEDTLS_TLS_EXT_ALPN, + [MBEDTLS_SSL_EXT_ID_SCT] = MBEDTLS_TLS_EXT_SCT, + [MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE] = MBEDTLS_TLS_EXT_CLI_CERT_TYPE, + [MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE] = MBEDTLS_TLS_EXT_SERV_CERT_TYPE, + [MBEDTLS_SSL_EXT_ID_PADDING] = MBEDTLS_TLS_EXT_PADDING, + [MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY] = MBEDTLS_TLS_EXT_PRE_SHARED_KEY, + [MBEDTLS_SSL_EXT_ID_EARLY_DATA] = MBEDTLS_TLS_EXT_EARLY_DATA, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS] = MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, + [MBEDTLS_SSL_EXT_ID_COOKIE] = MBEDTLS_TLS_EXT_COOKIE, + [MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES] = MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES, + [MBEDTLS_SSL_EXT_ID_CERT_AUTH] = MBEDTLS_TLS_EXT_CERT_AUTH, + [MBEDTLS_SSL_EXT_ID_OID_FILTERS] = MBEDTLS_TLS_EXT_OID_FILTERS, + [MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH] = MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH, + [MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT] = MBEDTLS_TLS_EXT_SIG_ALG_CERT, + [MBEDTLS_SSL_EXT_ID_KEY_SHARE] = MBEDTLS_TLS_EXT_KEY_SHARE, + [MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC] = MBEDTLS_TLS_EXT_TRUNCATED_HMAC, + [MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS] = MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, + [MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC] = MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, + [MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET] = MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, + [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = MBEDTLS_TLS_EXT_SESSION_TICKET +}; + +const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ) +{ + return( extension_name_table[ + mbedtls_ssl_get_extension_id( extension_type ) ] ); +} + +static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) +{ + switch( hs_msg_type ) + { + case MBEDTLS_SSL_HS_CLIENT_HELLO: + return( "ClientHello" ); + case MBEDTLS_SSL_HS_SERVER_HELLO: + return( "ServerHello" ); + case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: + return( "HelloRetryRequest" ); + case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: + return( "NewSessionTicket" ); + case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: + return( "EncryptedExtensions" ); + case MBEDTLS_SSL_HS_CERTIFICATE: + return( "Certificate" ); + case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: + return( "CertificateRequest" ); + } + return( NULL ); +} + +void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, + unsigned int extension_type, + const char *extra_msg0, + const char *extra_msg1 ) +{ + const char *extra_msg; + if( extra_msg0 && extra_msg1 ) + { + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension %s %s.", + ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), + extension_type, + extra_msg0, extra_msg1 ); + return; + } + + extra_msg = extra_msg0 ? extra_msg0 : extra_msg1; + if( extra_msg ) + { + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension %s.", ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), extension_type, + extra_msg ); + return; + } + + mbedtls_debug_print_msg( + ssl, level, file, line, + "%s: %s(%u) extension.", ssl_tls13_get_hs_msg_name( hs_msg_type ), + mbedtls_ssl_get_extension_name( extension_type ), extension_type ); +} + +void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, uint32_t extensions_mask, + const char *extra ) +{ + + for( unsigned i = 0; + i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] ); + i++ ) + { + mbedtls_ssl_print_extension_type( + ssl, level, file, line, hs_msg_type, extension_type_tbl[i], + extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); + } +} + +#endif /* MBEDTLS_DEBUG_C */ + void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info ) { diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1bbd7f033..a94bbef28 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1529,155 +1529,6 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_DEBUG_C) -const char *mbedtls_tls13_get_extension_name( uint16_t extension_type ) -{ - switch( extension_type ) - { - case MBEDTLS_TLS_EXT_SERVERNAME: - return( "server_name" ); - - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( "max_fragment_length" ); - - case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( "status_request" ); - - case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( "supported_groups" ); - - case MBEDTLS_TLS_EXT_SIG_ALG: - return( "signature_algorithms" ); - - case MBEDTLS_TLS_EXT_USE_SRTP: - return( "use_srtp" ); - - case MBEDTLS_TLS_EXT_HEARTBEAT: - return( "heartbeat" ); - - case MBEDTLS_TLS_EXT_ALPN: - return( "application_layer_protocol_negotiation" ); - - case MBEDTLS_TLS_EXT_SCT: - return( "signed_certificate_timestamp" ); - - case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( "client_certificate_type" ); - - case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( "server_certificate_type" ); - - case MBEDTLS_TLS_EXT_PADDING: - return( "padding" ); - - case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( "pre_shared_key" ); - - case MBEDTLS_TLS_EXT_EARLY_DATA: - return( "early_data" ); - - case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( "supported_versions" ); - - case MBEDTLS_TLS_EXT_COOKIE: - return( "cookie" ); - - case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( "psk_key_exchange_modes" ); - - case MBEDTLS_TLS_EXT_CERT_AUTH: - return( "certificate_authorities" ); - - case MBEDTLS_TLS_EXT_OID_FILTERS: - return( "oid_filters" ); - - case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( "post_handshake_auth" ); - - case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( "signature_algorithms_cert" ); - - case MBEDTLS_TLS_EXT_KEY_SHARE: - return( "key_share" ); - }; - - return( "unknown" ); -} - -static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) -{ - switch( hs_msg_type ) - { - case MBEDTLS_SSL_HS_CLIENT_HELLO: - return( "ClientHello" ); - case MBEDTLS_SSL_HS_SERVER_HELLO: - return( "ServerHello" ); - case -MBEDTLS_SSL_HS_SERVER_HELLO: // HRR does not have IANA value. - return( "HelloRetryRequest" ); - case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: - return( "NewSessionTicket" ); - case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: - return( "EncryptedExtensions" ); - case MBEDTLS_SSL_HS_CERTIFICATE: - return( "Certificate" ); - case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: - return( "CertificateRequest" ); - } - return( NULL ); -} - -void mbedtls_ssl_tls13_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - uint32_t extensions_present ) -{ - static const struct{ - uint32_t extension_mask; - const char *extension_name; - } mask_to_str_table[] = { - { MBEDTLS_SSL_EXT_SERVERNAME, "server_name" }, - { MBEDTLS_SSL_EXT_MAX_FRAGMENT_LENGTH, "max_fragment_length" }, - { MBEDTLS_SSL_EXT_STATUS_REQUEST, "status_request" }, - { MBEDTLS_SSL_EXT_SUPPORTED_GROUPS, "supported_groups" }, - { MBEDTLS_SSL_EXT_SIG_ALG, "signature_algorithms" }, - { MBEDTLS_SSL_EXT_USE_SRTP, "use_srtp" }, - { MBEDTLS_SSL_EXT_HEARTBEAT, "heartbeat" }, - { MBEDTLS_SSL_EXT_ALPN, "application_layer_protocol_negotiation" }, - { MBEDTLS_SSL_EXT_SCT, "signed_certificate_timestamp" }, - { MBEDTLS_SSL_EXT_CLI_CERT_TYPE, "client_certificate_type" }, - { MBEDTLS_SSL_EXT_SERV_CERT_TYPE, "server_certificate_type" }, - { MBEDTLS_SSL_EXT_PADDING, "padding" }, - { MBEDTLS_SSL_EXT_PRE_SHARED_KEY, "pre_shared_key" }, - { MBEDTLS_SSL_EXT_EARLY_DATA, "early_data" }, - { MBEDTLS_SSL_EXT_SUPPORTED_VERSIONS, "supported_versions" }, - { MBEDTLS_SSL_EXT_COOKIE, "cookie" }, - { MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES, "psk_key_exchange_modes" }, - { MBEDTLS_SSL_EXT_CERT_AUTH, "certificate_authorities" }, - { MBEDTLS_SSL_EXT_OID_FILTERS, "oid_filters" }, - { MBEDTLS_SSL_EXT_POST_HANDSHAKE_AUTH, "post_handshake_auth" }, - { MBEDTLS_SSL_EXT_SIG_ALG_CERT, "signature_algorithms_cert" }, - { MBEDTLS_SSL_EXT_KEY_SHARE, "key_share" } }; - - mbedtls_debug_print_msg( ssl, level, file, line, - "extension list of %s:", - ssl_tls13_get_hs_msg_name( hs_msg_type ) ); - - for( unsigned i = 0; - i < sizeof( mask_to_str_table ) / sizeof( mask_to_str_table[0] ); - i++ ) - { - const char *extension_name = mask_to_str_table[i].extension_name; - uint32_t is_present = extensions_present & - mask_to_str_table[i].extension_mask; - - mbedtls_debug_print_msg( ssl, level, file, line, - "- %s extension ( %s )", extension_name, - is_present ? "true" : "false" ); - } -} - -#endif /* MBEDTLS_DEBUG_C */ - /* RFC 8446 section 4.2 * * If an implementation receives an extension which it recognizes and which is From 4b8f2f72668270e46b475c697565df0bbb305876 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:31:22 +0800 Subject: [PATCH 0620/1574] Refactor sent extension message output Signed-off-by: Jerry Yu --- library/ssl_client.c | 18 ++++++------------ library/ssl_tls.c | 4 ---- library/ssl_tls13_client.c | 26 ++++---------------------- library/ssl_tls13_generic.c | 2 ++ library/ssl_tls13_server.c | 10 ++++++++++ 5 files changed, 22 insertions(+), 38 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 16cef0204..1c5b447fe 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -108,10 +108,6 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SERVERNAME ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } @@ -186,10 +182,6 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_ALPN ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); } @@ -310,10 +302,8 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); @@ -684,6 +674,10 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, p_extensions_len, extensions_len ); } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); +#endif + *out_len = p - buf; return( 0 ); } diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7bc0a0cd5..04d2ef440 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8955,10 +8955,6 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SIG_ALG ) ) ); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ return( 0 ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 27747a209..54101cb34 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -89,12 +89,10 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, } *out_len = 5 + versions_len; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) ) ); + return( 0 ); } @@ -366,11 +364,6 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_KEY_SHARE ) ) ); cleanup: @@ -610,12 +603,8 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, *out_len = handshake->hrr_cookie_len + 6; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_COOKIE ) ) ); + return( 0 ); } @@ -688,10 +677,7 @@ static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ) ) ); + return ( 0 ); } @@ -1059,10 +1045,6 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); - MBEDTLS_SSL_DEBUG_MSG( - 4, ( "sent %s extension", - mbedtls_tls13_get_extension_name( - MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a94bbef28..1a1737283 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -887,6 +887,8 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, *out_len = p - buf; + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index f0f06b81a..0239090f3 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2128,6 +2128,10 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len ); + MBEDTLS_SSL_PRINT_SENT_EXTS( + 3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : + MBEDTLS_SSL_HS_SERVER_HELLO ); + return( ret ); } @@ -2312,6 +2316,8 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len ); + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + return( 0 ); } @@ -2441,6 +2447,8 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, *out_len = p - buf; + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + return( 0 ); } @@ -2834,6 +2842,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); + MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + return( 0 ); } From 63a459cde5995c1909d873c707fae8fef09e8e37 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:38:40 +0800 Subject: [PATCH 0621/1574] Refactor client_hello parser and writer Signed-off-by: Jerry Yu --- library/ssl_client.c | 2 +- library/ssl_tls13_server.c | 42 ++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 1c5b447fe..ebf0fa701 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -564,7 +564,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* Keeping track of the included extensions */ - handshake->sent_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; #endif /* First write extensions, then the total length */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 0239090f3..607347d73 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -940,9 +940,9 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | - MBEDTLS_SSL_EXT_KEY_SHARE | - MBEDTLS_SSL_EXT_SIG_ALG ) ); + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | + MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) ); } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -952,8 +952,8 @@ static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } MBEDTLS_CHECK_RETURN_CRITICAL @@ -962,10 +962,10 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( { return( ssl_tls13_client_hello_has_exts( ssl, - MBEDTLS_SSL_EXT_SUPPORTED_GROUPS | - MBEDTLS_SSL_EXT_KEY_SHARE | - MBEDTLS_SSL_EXT_PRE_SHARED_KEY | - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) ); + MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | + MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | + MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -1417,7 +1417,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -1432,7 +1432,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) + if( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key is not last extension." ) ); @@ -1555,7 +1555,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); if( ( handshake->received_extensions & - MBEDTLS_SSL_EXT_PSK_KEY_EXCHANGE_MODES ) == 0 ) + MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) == 0 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, @@ -1603,18 +1603,16 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -1628,7 +1626,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, /* If we've settled on a PSK-based exchange, parse PSK identity ext */ if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( handshake->received_extensions & MBEDTLS_SSL_EXT_PRE_SHARED_KEY ) ) + ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) ) { handshake->update_checksum( ssl, buf, pre_shared_key_ext - buf ); @@ -1639,12 +1637,12 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, cipher_suites_end ); if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) { - handshake->received_extensions &= ~MBEDTLS_SSL_EXT_PRE_SHARED_KEY; + handshake->received_extensions &= ~MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ); } else if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_tls13_parse_pre_shared_key_ext" ), - ret ); + MBEDTLS_SSL_DEBUG_RET( + 1, "ssl_tls13_parse_pre_shared_key_ext" , ret ); return( ret ); } } From 9eba750916b751bb1cf1a1d4c0fc2c59bd7be64f Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 13:46:16 +0800 Subject: [PATCH 0622/1574] Refactor encrypted extensions Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 54101cb34..082be20b3 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1989,7 +1989,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -2029,18 +2029,16 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "encrypted extensions: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); /* Check that we consumed all the message. */ if( p != end ) From 6d0e78ba22cbaa19e4de862a79b03cdedefe4ff2 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:13:25 +0800 Subject: [PATCH 0623/1574] Refactor certificate request Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 082be20b3..688eb5201 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2184,7 +2184,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -2217,19 +2217,16 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "certificate request: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( 3, - MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); /* Check that we consumed all the message. */ if( p != end ) @@ -2243,7 +2240,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * * The "signature_algorithms" extension MUST be specified */ - if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_SIG_ALG ) == 0 ) + if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithms extension found" ) ); From 0d5cfb7703c51be78e71a6efd4548753ca7929c9 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:15:48 +0800 Subject: [PATCH 0624/1574] Refactor Certificate Signed-off-by: Jerry Yu --- library/ssl_tls13_generic.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 1a1737283..a9c8c973f 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -508,7 +508,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); extensions_end = p + extensions_len; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < extensions_end ) { @@ -537,18 +537,16 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Certificate: received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_CERTIFICATE, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); } exit: From edab637b515d4015c10c59b4ecc176e66bea62d1 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:37:31 +0800 Subject: [PATCH 0625/1574] Refactor new session ticket Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 20 +++++++------------- library/ssl_tls13_server.c | 2 ++ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 688eb5201..b0a835f4e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2484,7 +2484,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, const unsigned char *p = buf; - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; while( p < end ) { @@ -2500,30 +2500,24 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); + ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ); if( ret != 0 ) return( ret ); switch( extension_type ) { - case MBEDTLS_TLS_EXT_EARLY_DATA: - MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); - break; - default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "NewSessionTicket : received %s(%u) extension ( ignored )", - mbedtls_tls13_get_extension_name( extension_type ), - extension_type ) ); + MBEDTLS_SSL_PRINT_EXT_TYPE( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + extension_type, "( ignored )" ); break; } p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 607347d73..f31e7ab89 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2832,6 +2832,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * Note: We currently don't have any extensions. * Set length to zero. */ + ssl->handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); MBEDTLS_PUT_UINT16_BE( 0, p, 0 ); p += 2; From 50e00e3ac6b7c9f7940d0f459d727bd35a96c9fc Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 31 Oct 2022 14:45:01 +0800 Subject: [PATCH 0626/1574] Refactor server hello Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 24 ++++++++++-------------- library/ssl_tls13_server.c | 1 + 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index b0a835f4e..fff0febed 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1395,7 +1395,7 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, ssl->session_negotiate->tls_version = ssl->tls_version; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; ret = ssl_server_hello_is_hrr( ssl, buf, end ); switch( ret ) @@ -1506,6 +1506,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info; int fatal_alert = 0; uint32_t allowed_extensions_mask; + int hs_msg_type = is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : + MBEDTLS_SSL_HS_SERVER_HELLO; /* * Check there is space for minimal fields @@ -1648,7 +1650,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); - handshake->received_extensions = MBEDTLS_SSL_EXT_NONE; + handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; allowed_extensions_mask = is_hrr ? MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; @@ -1668,11 +1670,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, extension_data_end = p + extension_data_len; ret = mbedtls_ssl_tls13_check_received_extension( - ssl, - is_hrr ? - -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - extension_type, - allowed_extensions_mask ); + ssl, hs_msg_type, extension_type, allowed_extensions_mask ); if( ret != 0 ) return( ret ); @@ -1744,9 +1742,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_TLS1_3_PRINT_EXTS( - 3, is_hrr ? -MBEDTLS_SSL_HS_SERVER_HELLO : MBEDTLS_SSL_HS_SERVER_HELLO, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, hs_msg_type ); cleanup: @@ -1797,20 +1793,20 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) * exchange mode is EPHEMERAL-only. */ switch( handshake->received_extensions & - ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ) ) + ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ) ) { /* Only the pre_shared_key extension was received */ - case MBEDTLS_SSL_EXT_PRE_SHARED_KEY: + case MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; break; /* Only the key_share extension was received */ - case MBEDTLS_SSL_EXT_KEY_SHARE: + case MBEDTLS_SSL_EXT_MASK( KEY_SHARE ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; break; /* Both the pre_shared_key and key_share extensions were received */ - case ( MBEDTLS_SSL_EXT_PRE_SHARED_KEY | MBEDTLS_SSL_EXT_KEY_SHARE ): + case ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; break; diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index f31e7ab89..288332865 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2001,6 +2001,7 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, size_t output_len; *out_len = 0; + ssl->handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; /* ... * ProtocolVersion legacy_version = 0x0303; // TLS 1.2 From f467d46bbbcee711d647441152d0f316a354e855 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 7 Nov 2022 13:12:44 +0800 Subject: [PATCH 0627/1574] move get_srv_psk_list It can be reused in other test-suites Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 9 --------- tests/ssl-opt.sh | 10 ++++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 4f62ed69b..b1320c5b5 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,15 +18,6 @@ # limitations under the License. # -get_srv_psk_list () -{ - case $(( TESTS % 3 )) in - 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; - 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; - 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; - esac -} - requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index a75b3f593..f264b5ed1 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1024,6 +1024,16 @@ is_gnutls() { esac } +# Generate random psk_list argument for ssl_server2 +get_srv_psk_list () +{ + case $(( TESTS % 3 )) in + 0) echo "psk_list=abc,dead,def,beef,Client_identity,6162636465666768696a6b6c6d6e6f70";; + 1) echo "psk_list=abc,dead,Client_identity,6162636465666768696a6b6c6d6e6f70,def,beef";; + 2) echo "psk_list=Client_identity,6162636465666768696a6b6c6d6e6f70,abc,dead,def,beef";; + esac +} + # Determine what calc_verify trace is to be expected, if any. # # calc_verify is only called for two things: to calculate the From 38860e2f1952ba6179ef24604c2ef9abb04ae9c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 7 Nov 2022 10:05:49 +0100 Subject: [PATCH 0628/1574] Improve test suite detection in run-test-suites.pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Looking for executables causes problems with leftover compiled test suites from other branches when we forget to run make clean before switching branches. Using the .data files is more robust as most of them are tracked, so will be removed when switching branches. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/run-test-suites.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl index 22eadd180..8a5bb937d 100755 --- a/tests/scripts/run-test-suites.pl +++ b/tests/scripts/run-test-suites.pl @@ -50,11 +50,13 @@ GetOptions( 'verbose|v:1' => \$verbose, ) or die; -# All test suites = executable files, excluding source files, debug -# and profiling information, etc. We can't just grep {! /\./} because -# some of our test cases' base names contain a dot. -my @suites = grep { -x $_ || /\.exe$/ } glob 'test_suite_*'; -@suites = grep { !/\.c$/ && !/\.data$/ && -f } @suites; +# All test suites = executable files derived from a .data file. +my @suites = (); +for my $data_file (glob 'suites/test_suite_*.data') { + (my $base = $data_file) =~ s#^suites/(.*)\.data$#$1#; + push @suites, $base if -x $base; + push @suites, "$base.exe" if -e "$base.exe"; +} die "$0: no test suite found\n" unless @suites; # "foo" as a skip pattern skips "test_suite_foo" and "test_suite_foo.bar" From 3f1606a1f68f65962a3cc45898a3658fe75115d1 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Fri, 4 Nov 2022 16:55:57 +0000 Subject: [PATCH 0629/1574] Refactor call hierarchy for ECDH so that it goes through the driver wrapper in a similar fashion to ECDSA. Add component_test_psa_config_accel_ecdh to all.sh to test key agreement driver wrapper with libtestdriver1. Signed-off-by: Aditya Deshpande --- include/psa/crypto_config.h | 4 +- library/psa_crypto.c | 80 ++----------------- library/psa_crypto_ecp.c | 72 +++++++++++++++++ library/psa_crypto_ecp.h | 7 ++ .../crypto_config_test_driver_extension.h | 11 ++- tests/scripts/all.sh | 40 ++++++++++ tests/src/drivers/test_driver_key_agreement.c | 39 ++++++--- 7 files changed, 167 insertions(+), 86 deletions(-) diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 5ab4fdef3..9f8866b9c 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -62,7 +62,7 @@ #define PSA_WANT_ALG_CHACHA20_POLY1305 1 #define PSA_WANT_ALG_CTR 1 #define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1 -#define PSA_WANT_ALG_ECB_NO_PADDING 1 +//#define PSA_WANT_ALG_ECB_NO_PADDING 1 #define PSA_WANT_ALG_ECDH 1 #define PSA_WANT_ALG_ECDSA 1 #define PSA_WANT_ALG_JPAKE 1 @@ -86,7 +86,7 @@ #define PSA_WANT_ALG_SHA_256 1 #define PSA_WANT_ALG_SHA_384 1 #define PSA_WANT_ALG_SHA_512 1 -#define PSA_WANT_ALG_STREAM_CIPHER 1 +//#define PSA_WANT_ALG_STREAM_CIPHER 1 #define PSA_WANT_ALG_TLS12_PRF 1 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1 #define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 86b84bf19..07f315121 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5735,62 +5735,6 @@ psa_status_t psa_key_derivation_input_key( /****************************************************************/ /* Key agreement */ /****************************************************************/ - -#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) -static psa_status_t psa_key_agreement_ecdh( const uint8_t *peer_key, - size_t peer_key_length, - const mbedtls_ecp_keypair *our_key, - uint8_t *shared_secret, - size_t shared_secret_size, - size_t *shared_secret_length ) -{ - mbedtls_ecp_keypair *their_key = NULL; - mbedtls_ecdh_context ecdh; - psa_status_t status; - size_t bits = 0; - psa_ecc_family_t curve = mbedtls_ecc_group_to_psa( our_key->grp.id, &bits ); - mbedtls_ecdh_init( &ecdh ); - - status = mbedtls_psa_ecp_load_representation( - PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve), - bits, - peer_key, - peer_key_length, - &their_key ); - if( status != PSA_SUCCESS ) - goto exit; - - status = mbedtls_to_psa_error( - mbedtls_ecdh_get_params( &ecdh, their_key, MBEDTLS_ECDH_THEIRS ) ); - if( status != PSA_SUCCESS ) - goto exit; - status = mbedtls_to_psa_error( - mbedtls_ecdh_get_params( &ecdh, our_key, MBEDTLS_ECDH_OURS ) ); - if( status != PSA_SUCCESS ) - goto exit; - - status = mbedtls_to_psa_error( - mbedtls_ecdh_calc_secret( &ecdh, - shared_secret_length, - shared_secret, shared_secret_size, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); - if( status != PSA_SUCCESS ) - goto exit; - if( PSA_BITS_TO_BYTES( bits ) != *shared_secret_length ) - status = PSA_ERROR_CORRUPTION_DETECTED; - -exit: - if( status != PSA_SUCCESS ) - mbedtls_platform_zeroize( shared_secret, shared_secret_size ); - mbedtls_ecdh_free( &ecdh ); - mbedtls_ecp_keypair_free( their_key ); - mbedtls_free( their_key ); - - return( status ); -} -#endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ - #define PSA_KEY_AGREEMENT_MAX_SHARED_SECRET_SIZE MBEDTLS_ECP_MAX_BYTES psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attributes, @@ -5807,24 +5751,12 @@ psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attribut { #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) case PSA_ALG_ECDH: - if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( attributes->core.type ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - mbedtls_ecp_keypair *ecp = NULL; - psa_status_t status = mbedtls_psa_ecp_load_representation( - attributes->core.type, - attributes->core.bits, - key_buffer, - key_buffer_size, - &ecp ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_key_agreement_ecdh( peer_key, peer_key_length, - ecp, - shared_secret, shared_secret_size, - shared_secret_length ); - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); - return( status ); + return( mbedtls_psa_key_agreement_ecdh( attributes, key_buffer, + key_buffer_size, alg, + peer_key, peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ) ); #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ default: (void) attributes; diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index 29f53b96e..97baef925 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -33,6 +33,7 @@ #include "mbedtls/platform.h" #include +#include #include #include @@ -464,4 +465,75 @@ cleanup: #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ * defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) */ +/****************************************************************/ +/* ECDH Key Agreement */ +/****************************************************************/ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) +psa_status_t mbedtls_psa_key_agreement_ecdh( + 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 ) +{ + if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( attributes->core.type ) || + ! PSA_ALG_IS_ECDH(alg) ) + return( PSA_ERROR_INVALID_ARGUMENT ); + mbedtls_ecp_keypair *ecp = NULL; + psa_status_t status = mbedtls_psa_ecp_load_representation( + attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, + &ecp ); + if( status != PSA_SUCCESS ) + return( status ); + mbedtls_ecp_keypair *their_key = NULL; + mbedtls_ecdh_context ecdh; + size_t bits = 0; + psa_ecc_family_t curve = mbedtls_ecc_group_to_psa( ecp->grp.id, &bits ); + mbedtls_ecdh_init( &ecdh ); + + status = mbedtls_psa_ecp_load_representation( + PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve), + bits, + peer_key, + peer_key_length, + &their_key ); + if( status != PSA_SUCCESS ) + goto exit; + + status = mbedtls_to_psa_error( + mbedtls_ecdh_get_params( &ecdh, their_key, MBEDTLS_ECDH_THEIRS ) ); + if( status != PSA_SUCCESS ) + goto exit; + status = mbedtls_to_psa_error( + mbedtls_ecdh_get_params( &ecdh, ecp, MBEDTLS_ECDH_OURS ) ); + if( status != PSA_SUCCESS ) + goto exit; + + status = mbedtls_to_psa_error( + mbedtls_ecdh_calc_secret( &ecdh, + shared_secret_length, + shared_secret, shared_secret_size, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE ) ); + if( status != PSA_SUCCESS ) + goto exit; + if( PSA_BITS_TO_BYTES( bits ) != *shared_secret_length ) + status = PSA_ERROR_CORRUPTION_DETECTED; + +exit: + if( status != PSA_SUCCESS ) + mbedtls_platform_zeroize( shared_secret, shared_secret_size ); + mbedtls_ecdh_free( &ecdh ); + mbedtls_ecp_keypair_free( their_key ); + mbedtls_free( their_key ); + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + return( status ); +} +#endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ + + #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/psa_crypto_ecp.h b/library/psa_crypto_ecp.h index 429c06271..5a7f6f284 100644 --- a/library/psa_crypto_ecp.h +++ b/library/psa_crypto_ecp.h @@ -218,4 +218,11 @@ psa_status_t mbedtls_psa_ecdsa_verify_hash( 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 ); + +psa_status_t mbedtls_psa_key_agreement_ecdh( + 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 ); #endif /* PSA_CRYPTO_ECP_H */ diff --git a/tests/include/test/drivers/crypto_config_test_driver_extension.h b/tests/include/test/drivers/crypto_config_test_driver_extension.h index 0bbca4aef..fbfe8da7a 100644 --- a/tests/include/test/drivers/crypto_config_test_driver_extension.h +++ b/tests/include/test/drivers/crypto_config_test_driver_extension.h @@ -54,6 +54,14 @@ #endif #endif +#if defined(PSA_WANT_ALG_ECDH) +#if defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) +#undef MBEDTLS_PSA_ACCEL_ALG_ECDH +#else +#define MBEDTLS_PSA_ACCEL_ALG_ECDH 1 +#endif +#endif + #if defined(PSA_WANT_ALG_MD5) #if defined(MBEDTLS_PSA_ACCEL_ALG_MD5) #undef MBEDTLS_PSA_ACCEL_ALG_MD5 @@ -202,7 +210,6 @@ #define MBEDTLS_PSA_ACCEL_ALG_CCM 1 #define MBEDTLS_PSA_ACCEL_ALG_CMAC 1 #define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING 1 -#define MBEDTLS_PSA_ACCEL_ALG_ECDH 1 #define MBEDTLS_PSA_ACCEL_ALG_GCM 1 #define MBEDTLS_PSA_ACCEL_ALG_HKDF 1 #define MBEDTLS_PSA_ACCEL_ALG_HKDF_EXTRACT 1 @@ -215,6 +222,7 @@ #define MBEDTLS_PSA_ACCEL_ALG_TLS12_PSK_TO_MS 1 #if defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA) +#if defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) #define MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_256 1 #define MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_384 1 #define MBEDTLS_PSA_ACCEL_ECC_BRAINPOOL_P_R1_512 1 @@ -229,6 +237,7 @@ #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384 1 #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521 1 #endif +#endif #define MBEDTLS_PSA_ACCEL_KEY_TYPE_DERIVE 1 #define MBEDTLS_PSA_ACCEL_KEY_TYPE_HMAC 1 diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a4c6c86c1..7f1723bcd 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1885,6 +1885,46 @@ component_test_psa_crypto_config_accel_ecdsa () { make test } +component_test_psa_crypto_config_accel_ecdh () { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDH" + + # Disable ALG_STREAM_CIPHER and ALG_ECB_NO_PADDING to avoid having + # partial support for cipher operations in the driver test library. + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + + # SHA384 needed for some ECDSA signature tests. + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C + + loc_accel_list="ALG_ECDH KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" + loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) + make -C tests libtestdriver1.a CFLAGS=" -g3 $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + + # Restore test driver base configuration + scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C + scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C + + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 + scripts/config.py unset MBEDTLS_ECDH_C + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + + loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" + make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 -g3 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + + not grep mbedtls_ecdh_ library/ecdh.o + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDH" + make test +} + component_test_psa_crypto_config_accel_rsa_signature () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated RSA signature" diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 884899ff2..ccea61dd7 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -19,15 +19,22 @@ #include +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) && defined(PSA_CRYPTO_DRIVER_TEST) + #include "psa/crypto.h" #include "psa_crypto_core.h" +#include "psa_crypto_ecp.h" #include "test/drivers/key_agreement.h" #include "test/drivers/test_driver.h" #include +#include -#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) && defined(PSA_CRYPTO_DRIVER_TEST) +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) +#include "libtestdriver1/include/psa/crypto.h" +#include "libtestdriver1/library/psa_crypto_ecp.h" +#endif mbedtls_test_driver_key_agreement_hooks_t mbedtls_test_driver_key_agreement_hooks = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT; @@ -58,16 +65,30 @@ psa_status_t mbedtls_test_transparent_key_agreement( return( PSA_SUCCESS ); } - return( psa_key_agreement_raw_builtin( + if( PSA_ALG_IS_ECDH(alg) ) + { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + (LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDH) + return( libtestdriver1_mbedtls_psa_key_agreement_ecdh( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, + shared_secret_length ) ); +#elif defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) + return( mbedtls_psa_key_agreement_ecdh( attributes, - key_buffer, - key_buffer_size, - alg, - peer_key, - peer_key_length, - shared_secret, - shared_secret_size, + key_buffer, key_buffer_size, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, shared_secret_length ) ); +#endif + } + else + { + return( PSA_ERROR_INVALID_ARGUMENT ); + } + } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ From 5567c660cd3ec3db1e893af6adad31161d43f673 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 7 Nov 2022 10:43:29 +0000 Subject: [PATCH 0630/1574] Fix formatting and code comments Signed-off-by: Aditya Deshpande --- library/psa_crypto_ecp.c | 3 +- library/psa_crypto_ecp.h | 44 ++++++++++++++++++- tests/src/drivers/test_driver_key_agreement.c | 2 +- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index 97baef925..b840426ab 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -468,8 +468,9 @@ cleanup: /****************************************************************/ /* ECDH Key Agreement */ /****************************************************************/ + #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) -psa_status_t mbedtls_psa_key_agreement_ecdh( +psa_status_t mbedtls_psa_key_agreement_ecdh( 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, diff --git a/library/psa_crypto_ecp.h b/library/psa_crypto_ecp.h index 5a7f6f284..386e87aa9 100644 --- a/library/psa_crypto_ecp.h +++ b/library/psa_crypto_ecp.h @@ -219,7 +219,49 @@ psa_status_t mbedtls_psa_ecdsa_verify_hash( psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, const uint8_t *signature, size_t signature_length ); -psa_status_t mbedtls_psa_key_agreement_ecdh( + +/** Perform a key agreement and return the raw ECDH shared secret. + * + * \note The signature of this function is that of a PSA driver + * key_agreement entry point. This function behaves as a key_agreement + * entry point as defined in the PSA driver interface specification for + * transparent drivers. + * + * \param[in] attributes The attributes of the key to use for the + * operation. + * \param[in] key_buffer The buffer containing the private key + * context. + * \param[in] key_buffer_size Size of the \p key_buffer buffer in + * bytes. + * \param[in] alg A key agreement algorithm that is + * compatible with the type of the key. + * \param[in] peer_key The buffer containing the key context + * of the peer's public key. + * \param[in] peer_key_length Size of the \p peer_key buffer in + * bytes. + * \param[out] shared_secret The buffer to which the shared secret + * is to be written. + * \param[in] shared_secret_size Size of the \p shared_secret buffer in + * bytes. + * \param[out] shared_secret_length On success, the number of bytes that make + * up the returned shared secret. + * \retval #PSA_SUCCESS + * Success. Shared secret successfully calculated. + * \retval #PSA_ERROR_INVALID_HANDLE + * \retval #PSA_ERROR_NOT_PERMITTED + * \retval #PSA_ERROR_INVALID_ARGUMENT + * \p alg is not a key agreement algorithm, or + * \p private_key is not compatible with \p alg, + * or \p peer_key is not valid for \p alg or not compatible with + * \p private_key. + * \retval #PSA_ERROR_BUFFER_TOO_SMALL + * \p shared_secret_size is too small + * \retval #PSA_ERROR_NOT_SUPPORTED + * \p alg is not a supported key agreement algorithm. + * \retval #PSA_ERROR_INSUFFICIENT_MEMORY + * \retval #PSA_ERROR_CORRUPTION_DETECTED + */ +psa_status_t mbedtls_psa_key_agreement_ecdh( 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, diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index ccea61dd7..393a81a23 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -82,7 +82,7 @@ psa_status_t mbedtls_test_transparent_key_agreement( alg, peer_key, peer_key_length, shared_secret, shared_secret_size, shared_secret_length ) ); -#endif +#endif } else { From 7ba7b3aded7f51051213704edc6c6e710cdee9aa Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 19 Oct 2022 17:22:15 +0200 Subject: [PATCH 0631/1574] Update tests to use mbedtls_test_read_mpi_core In conditional assign and swap tests use the mbedtls_test_read_mpi_core function for reading MPIs. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_core.function | 54 +++++--------- .../suites/test_suite_bignum_mod_raw.function | 70 ++++++------------- 2 files changed, 39 insertions(+), 85 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index f50fd07e4..021b7b31c 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -345,14 +345,18 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_assign( data_t * input_X, - data_t * input_Y, +void mpi_core_cond_assign( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -361,24 +365,12 @@ void mpi_core_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, input_Y->x, input_Y->len ) - == 0 ); - /* condition is false */ TEST_CF_SECRET( X, bytes ); TEST_CF_SECRET( Y, bytes ); mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -387,9 +379,6 @@ void mpi_core_cond_assign( data_t * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) @@ -407,16 +396,20 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_swap( data_t * input_X, - data_t * input_Y, +void mpi_core_cond_swap( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -425,18 +418,9 @@ void mpi_core_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, - input_X->x, input_X->len ) - == 0 ); ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, bytes ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); ASSERT_ALLOC( Y, limbs ); memcpy( Y, tmp_Y, bytes ); @@ -446,9 +430,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -458,9 +439,6 @@ void mpi_core_cond_swap( data_t * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 8ac1ef497..556cca07f 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -110,16 +110,20 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_cond_assign( data_t * input_X, - data_t * input_Y, +void mpi_mod_raw_cond_assign( char * input_X, + char * input_Y, int input_bytes ) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; mbedtls_mpi_mod_modulus m; - size_t limbs_X = CHARS_TO_LIMBS( input_X->len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -130,24 +134,12 @@ void mpi_mod_raw_cond_assign( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( X, limbs ); - ASSERT_ALLOC( Y, limbs ); - - ASSERT_ALLOC( buff_m, limbs ); - memset( buff_m, 0xFF, copy_bytes ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + ASSERT_ALLOC( buff_m, copy_limbs ); + memset( buff_m, 0xFF, copy_limbs ); + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( X, limbs, - input_X->x, input_X->len ) - == 0 ); - - TEST_ASSERT( mbedtls_mpi_core_read_be( Y, limbs, - input_Y->x, input_Y->len ) - == 0 ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); /* condition is false */ TEST_CF_SECRET( X, bytes ); @@ -155,9 +147,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -166,9 +155,6 @@ void mpi_mod_raw_cond_assign( data_t * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs len ); - size_t limbs_Y = CHARS_TO_LIMBS( input_Y->len ); + size_t limbs_X; + size_t limbs_Y; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); + size_t limbs = limbs_X; size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -211,24 +201,16 @@ void mpi_mod_raw_cond_swap( data_t * input_X, TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); - ASSERT_ALLOC( tmp_X, limbs ); - ASSERT_ALLOC( tmp_Y, limbs ); - ASSERT_ALLOC( buff_m, copy_limbs ); - memset( buff_m, 0xFF, copy_bytes ); - TEST_ASSERT( mbedtls_mpi_mod_modulus_setup( + memset( buff_m, 0xFF, copy_limbs ); + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - == 0 ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_X, limbs, input_X->x, input_X->len ) - == 0 ); ASSERT_ALLOC( X, limbs ); memcpy( X, tmp_X, bytes ); - TEST_ASSERT( mbedtls_mpi_core_read_be( tmp_Y, limbs, input_Y->x, input_Y->len ) - == 0 ); ASSERT_ALLOC( Y, bytes ); memcpy( Y, tmp_Y, bytes ); @@ -238,9 +220,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 0 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -250,9 +229,6 @@ void mpi_mod_raw_cond_swap( data_t * input_X, mbedtls_mpi_mod_raw_cond_swap( X, Y, &m, 1 ); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); - /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) From a8cf998bc9569ce29dae28c3387a44882d226cdc Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 20 Oct 2022 12:27:36 +0200 Subject: [PATCH 0632/1574] Let the allocated memory visible for the memory sanitizer Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_core.function | 15 +++++++++++++++ tests/suites/test_suite_bignum_mod_raw.function | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 021b7b31c..612a7c6bd 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -371,6 +371,9 @@ void mpi_core_cond_assign( char * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -379,10 +382,16 @@ void mpi_core_cond_assign( char * input_X, mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) { + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); } @@ -430,6 +439,9 @@ void mpi_core_cond_swap( char * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + ASSERT_COMPARE( X, bytes, tmp_X, bytes ); ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); @@ -439,6 +451,9 @@ void mpi_core_cond_swap( char * input_X, mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs < limbs ) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 556cca07f..4b906751f 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -147,6 +147,9 @@ void mpi_mod_raw_cond_assign( char * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); /* condition is true */ @@ -155,6 +158,9 @@ void mpi_mod_raw_cond_assign( char * input_X, mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + TEST_CF_PUBLIC( X, bytes ); + TEST_CF_PUBLIC( Y, bytes ); + /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ if( copy_limbs Date: Mon, 7 Nov 2022 15:28:49 +0100 Subject: [PATCH 0633/1574] Fix outdated reference in debug message Signed-off-by: Jan Bruckner --- library/ssl_msg.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 4cd4107ca..dbc639188 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1797,8 +1797,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) if( ssl->f_recv == NULL && ssl->f_recv_timeout == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " - "or mbedtls_ssl_set_bio()" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -2013,8 +2012,7 @@ int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ) if( ssl->f_send == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " - "or mbedtls_ssl_set_bio()" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } From ec6bb5879adf411c4c1df1388e9d429363cf6398 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 7 Nov 2022 17:11:48 +0000 Subject: [PATCH 0634/1574] Disabled tests in test_suite_ssl that won't work without builtin ECDH Signed-off-by: Aditya Deshpande --- tests/scripts/all.sh | 4 ++-- tests/suites/test_suite_ssl.data | 36 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7f1723bcd..2b78a4f46 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1899,7 +1899,7 @@ component_test_psa_crypto_config_accel_ecdh () { loc_accel_list="ALG_ECDH KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) - make -C tests libtestdriver1.a CFLAGS=" -g3 $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + make -C tests libtestdriver1.a CFLAGS=" $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" # Restore test driver base configuration scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C @@ -1917,7 +1917,7 @@ component_test_psa_crypto_config_accel_ecdh () { scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" - make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 -g3 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" not grep mbedtls_ecdh_ library/ecdh.o diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 121069452..6f63e7331 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -262,11 +262,11 @@ depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_ handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:0 Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:0 Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:0 Handshake, PSK-WITH-AES-128-CBC-SHA @@ -290,11 +290,11 @@ depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_ handshake_cipher:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256":MBEDTLS_PK_RSA:1 DTLS Handshake, ECDHE-ECDSA-WITH-AES-256-CCM -depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS handshake_cipher:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:1 DTLS Handshake, ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_SSL_PROTO_DTLS handshake_cipher:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:1 DTLS Handshake, PSK-WITH-AES-128-CBC-SHA @@ -402,59 +402,59 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: handshake_ciphersuite_select:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384":MBEDTLS_PK_RSA:"":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDHE-ECDSA-WITH-AES-256-CCM, non-opaque -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED handshake_ciphersuite_select:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:"":PSA_ALG_NONE:PSA_ALG_NONE:0:0:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM Handshake, select ECDHE-ECDSA-WITH-AES-256-CCM, opaque, PSA_ALG_ANY_HASH -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM Handshake, select ECDHE-ECDSA-WITH-AES-256-CCM, opaque, PSA_ALG_SHA_256 -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:0:MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM Handshake, select ECDHE-ECDSA-WITH-AES-256-CCM, opaque, bad alg -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDH:PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDHE-ECDSA-WITH-AES-256-CCM, opaque, bad usage -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C:MBEDTLS_CCM_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDHE-ECDSA-WITH-AES-256-CCM":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDH-RSA-WITH-AES-256-CBC-SHA384, non-opaque -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED handshake_ciphersuite_select:"TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_NONE:PSA_ALG_NONE:0:0:MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Handshake, select ECDH-RSA-WITH-AES-256-CBC-SHA384, opaque -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDH:PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:0:MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 Handshake, select ECDH-RSA-WITH-AES-256-CBC-SHA384, opaque, bad alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDH-RSA-WITH-AES-256-CBC-SHA384, opaque, bad usage -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_RSA_C:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDH:PSA_ALG_NONE:PSA_KEY_USAGE_DECRYPT:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384, non-opaque -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_NONE:PSA_ALG_NONE:0:0:MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 Handshake, select ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384, opaque, PSA_ALG_ANY_HASH -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH|PSA_KEY_USAGE_DERIVE:0:MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 Handshake, select ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384, opaque, PSA_ALG_SHA_384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH|PSA_KEY_USAGE_DERIVE:0:MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 Handshake, select ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384, opaque, missing alg -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_NONE:PSA_KEY_USAGE_SIGN_HASH|PSA_KEY_USAGE_DERIVE:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Handshake, select ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384, opaque, missing usage -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_ECDSA_C:MBEDTLS_ECDH_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_CAMELLIA_C:MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED:MBEDTLS_USE_PSA_CRYPTO handshake_ciphersuite_select:"TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384":MBEDTLS_PK_ECDSA:"":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ALG_ECDH:PSA_KEY_USAGE_SIGN_HASH:MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE:0 Sending app data via TLS, MFL=512 without fragmentation From 70dc3e28956f6d87b4e082c1ae9ba08546082fd3 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 7 Nov 2022 17:12:28 +0000 Subject: [PATCH 0635/1574] Reword the documentation for deprecation Change the wording of the section of CONTRIBUTING.md on function deprecation to make it easier to understand. Signed-off-by: David Horstmann --- CONTRIBUTING.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d19fe57cc..9fea52c52 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,11 +34,9 @@ The project aims to minimise the impact on users upgrading to newer versions of To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. -Where changes to an existing interface are necessary, functions in the public interface which need to be changed, are marked as 'deprecated'. This is done with the preprocessor symbols `MBEDTLS_DEPRECATED_WARNING` and `MBEDTLS_DEPRECATED_REMOVED`. Then, a new function with a new name but similar if not identical behaviour to the original function containing the necessary changes should be created alongside the existing deprecated function. +Where changes to an existing interface are necessary, functions in the public interface which need to be changed are marked as 'deprecated'. If there is a strong reason to replace an existing function with one that has a slightly different interface (different prototype, or different documented behavior), create a new function with a new name with the desired interface. Keep the old function, but mark it as deprecated. -When a build is made with the deprecation preprocessor symbols defined, a compiler warning will be generated to warn a user that the function will be removed at some point in the future, notifying users that they should change from the older deprecated function to the newer function at their own convenience. - -Therefore, no changes are permitted to the definition of functions in the public interface which will change the API. Instead the interface can only be changed by its extension. As described above, if a function needs to be changed, a new function needs to be created alongside it, with a new name, and whatever change is necessary, such as a new parameter or the addition of a return value. +No changes are permitted to the definition of functions in the public interface which will change the API. Instead the interface can only be changed by its extension. As described above, if a function needs to be changed, a new function needs to be created alongside it, with a new name, and whatever change is necessary, such as a new parameter or the addition of a return value. Periodically, the library will remove deprecated functions from the library which will be a breaking change in the API, but such changes will be made only in a planned, structured way that gives sufficient notice to users of the library. From 82ba274c01378f9e7e5ff72ffae6d8819d157309 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 4 Nov 2022 04:01:23 -0400 Subject: [PATCH 0636/1574] Deprecate mbedtls_asn1_free_named_data() Signed-off-by: Glenn Strauss --- ChangeLog.d/mbedtls_asn1_type_free.txt | 4 ++++ include/mbedtls/asn1.h | 16 ++++++++++++---- library/asn1parse.c | 2 ++ tests/suites/test_suite_asn1parse.data | 5 +++++ tests/suites/test_suite_asn1parse.function | 4 ++-- 5 files changed, 25 insertions(+), 6 deletions(-) diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt index 87ac5ec5b..81f3a2007 100644 --- a/ChangeLog.d/mbedtls_asn1_type_free.txt +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -1,2 +1,6 @@ Features * Shared code to free x509 structs like mbedtls_x509_named_data +New deprecations + * Deprecate mbedtls_asn1_free_named_data(). + Use mbedtls_asn1_free_named_data_list() + or mbedtls_asn1_free_named_data_list_shallow() diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index 5d274950a..8b66ee228 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -24,6 +24,7 @@ #include "mbedtls/private_access.h" #include "mbedtls/build_info.h" +#include "mbedtls/platform_util.h" #include @@ -606,22 +607,29 @@ int mbedtls_asn1_get_alg_null( unsigned char **p, const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, const char *oid, size_t len ); +#if !defined(MBEDTLS_DEPRECATED_REMOVED) /** * \brief Free a mbedtls_asn1_named_data entry * + * \deprecated This function is deprecated and will be removed in a + * future version of the library. + * Please use mbedtls_asn1_free_named_data_list() + * or mbedtls_asn1_free_named_data_list_shallow(). + * * \param entry The named data entry to free. * This function calls mbedtls_free() on * `entry->oid.p` and `entry->val.p`. */ -void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); +void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); +#endif /* MBEDTLS_DEPRECATED_REMOVED */ /** * \brief Free all entries in a mbedtls_asn1_named_data list. * * \param head Pointer to the head of the list of named data entries to free. - * This function calls mbedtls_asn1_free_named_data() and - * mbedtls_free() on each list element and - * sets \c *head to \c NULL. + * This function calls mbedtls_free() on + * `entry->oid.p` and `entry->val.p` and then on `entry` + * for each list entry, and sets \c *head to \c NULL. */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); diff --git a/library/asn1parse.c b/library/asn1parse.c index 4bc17710c..28a3b144b 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -431,6 +431,7 @@ int mbedtls_asn1_get_alg_null( unsigned char **p, return( 0 ); } +#if !defined(MBEDTLS_DEPRECATED_REMOVED) void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *cur ) { if( cur == NULL ) @@ -441,6 +442,7 @@ void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *cur ) mbedtls_platform_zeroize( cur, sizeof( mbedtls_asn1_named_data ) ); } +#endif /* MBEDTLS_DEPRECATED_REMOVED */ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) { diff --git a/tests/suites/test_suite_asn1parse.data b/tests/suites/test_suite_asn1parse.data index 36ab1e481..c129e3c8f 100644 --- a/tests/suites/test_suite_asn1parse.data +++ b/tests/suites/test_suite_asn1parse.data @@ -608,18 +608,23 @@ Find named data: first match find_named_data:"414141":"414141":"434343":"444444":"414141":0:0 Free named data: null pointer +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data_null: Free named data: all null +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:0:0 Free named data: with oid +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:1:0:0 Free named data: with val +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:1:0 Free named data: with next +depends_on:MBEDTLS_TEST_DEPRECATED free_named_data:0:0:1 Free named data list (empty) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 002d8c426..dac8e312b 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -735,7 +735,7 @@ void find_named_data( data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ void free_named_data_null( ) { mbedtls_asn1_free_named_data( NULL ); @@ -743,7 +743,7 @@ void free_named_data_null( ) } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ void free_named_data( int with_oid, int with_val, int with_next ) { mbedtls_asn1_named_data next = From aa36c2a6f66a2db081238f3e202ca28a625fae3b Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 7 Nov 2022 20:08:54 -0500 Subject: [PATCH 0637/1574] Update tests/suites/test_suite_asn1parse.function Co-authored-by: Andrzej Kurek Signed-off-by: Glenn Strauss --- tests/suites/test_suite_asn1parse.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index dac8e312b..6d7e49ee4 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -743,7 +743,7 @@ void free_named_data_null( ) } /* END_CASE */ -/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ void free_named_data( int with_oid, int with_val, int with_next ) { mbedtls_asn1_named_data next = From 2a642996483a26166aa20284d46540a10a992aa7 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 7 Nov 2022 20:09:38 -0500 Subject: [PATCH 0638/1574] Update tests/suites/test_suite_asn1parse.function Co-authored-by: Andrzej Kurek Signed-off-by: Glenn Strauss --- tests/suites/test_suite_asn1parse.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 6d7e49ee4..62669b35f 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -735,7 +735,7 @@ void find_named_data( data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, } /* END_CASE */ -/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED */ +/* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ void free_named_data_null( ) { mbedtls_asn1_free_named_data( NULL ); From 0750d08601df0c68f25ee0f929732f67c252f7ed Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Tue, 8 Nov 2022 02:25:01 -0500 Subject: [PATCH 0639/1574] Add comments for some forbidden aliasing in bignum Signed-off-by: Glenn Strauss --- include/mbedtls/bignum.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/bignum.h b/include/mbedtls/bignum.h index ee3743048..9d15955f3 100644 --- a/include/mbedtls/bignum.h +++ b/include/mbedtls/bignum.h @@ -758,11 +758,11 @@ int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, * * \param Q The destination MPI for the quotient. * This may be \c NULL if the value of the - * quotient is not needed. + * quotient is not needed. This must not alias A or B. * \param R The destination MPI for the remainder value. * This may be \c NULL if the value of the - * remainder is not needed. - * \param A The dividend. This must point to an initialized MPi. + * remainder is not needed. This must not alias A or B. + * \param A The dividend. This must point to an initialized MPI. * \param B The divisor. This must point to an initialized MPI. * * \return \c 0 if successful. @@ -779,10 +779,10 @@ int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, * * \param Q The destination MPI for the quotient. * This may be \c NULL if the value of the - * quotient is not needed. + * quotient is not needed. This must not alias A. * \param R The destination MPI for the remainder value. * This may be \c NULL if the value of the - * remainder is not needed. + * remainder is not needed. This must not alias A. * \param A The dividend. This must point to an initialized MPi. * \param b The divisor. * @@ -837,6 +837,7 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, * \brief Perform a sliding-window exponentiation: X = A^E mod N * * \param X The destination MPI. This must point to an initialized MPI. + * This must not alias E or N. * \param A The base of the exponentiation. * This must point to an initialized MPI. * \param E The exponent MPI. This must point to an initialized MPI. From e5991328ffaa3139f6a747cd6a68fbac55e931aa Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 7 Nov 2022 14:03:44 +0800 Subject: [PATCH 0640/1574] fix tls13 psk only test fail Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 17 ++++++-- tests/opt-testcases/tls13-misc.sh | 70 +++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+), 4 deletions(-) create mode 100755 tests/opt-testcases/tls13-misc.sh diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 288332865..598ca91bf 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -934,6 +934,7 @@ static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, return( masked == exts_mask ); } +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -944,8 +945,9 @@ static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) ); } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( mbedtls_ssl_context *ssl ) @@ -955,7 +957,9 @@ static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) @@ -967,19 +971,24 @@ static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) return( mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( ssl ) ); +#else + ((void) ssl); + return( 0 ); +#endif } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) return( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) && mbedtls_ssl_tls13_psk_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_key_exchange( ssl ) ); @@ -992,7 +1001,7 @@ static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_check_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) return( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) && mbedtls_ssl_tls13_psk_ephemeral_enabled( ssl ) && ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( ssl ) ); diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh new file mode 100755 index 000000000..661b3500b --- /dev/null +++ b/tests/opt-testcases/tls13-misc.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# tls13-misc.sh +# +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured psk only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "key exchange mode: psk$" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured psk_ephemeral only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "key exchange mode: psk_ephemeral$" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED +requires_all_configs_disabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3:+GROUP-ALL \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 0 \ + -s "key exchange mode: ephemeral$" + From ca7d5065562b90210374fb2cf9c08c400879d8e1 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 31 May 2022 14:43:23 +0200 Subject: [PATCH 0641/1574] Use PSA PAKE API when MBEDTLS_USE_PSA_CRYPTO is selected Signed-off-by: Neil Armstrong Signed-off-by: Valerio Setti --- library/ssl_misc.h | 9 +- library/ssl_tls.c | 131 ++++++++++++++++++++++++ library/ssl_tls12_client.c | 195 +++++++++++++++++++++++++++++++++++- library/ssl_tls12_server.c | 197 ++++++++++++++++++++++++++++++++++++- 4 files changed, 527 insertions(+), 5 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514..8b9624350 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -50,7 +50,8 @@ #include "mbedtls/sha512.h" #endif -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + !defined(MBEDTLS_USE_PSA_CRYPTO) #include "mbedtls/ecjpake.h" #endif @@ -663,7 +664,13 @@ struct mbedtls_ssl_handshake_params #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_pake_operation_t psa_pake_ctx; /*!< EC J-PAKE key exchange */ + mbedtls_svc_key_id_t psa_pake_password; + uint8_t psa_pake_ctx_is_ok; +#else mbedtls_ecjpake_context ecjpake_ctx; /*!< EC J-PAKE key exchange */ +#endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_CLI_C) unsigned char *ecjpake_cache; /*!< Cache for ClientHello ext */ size_t ecjpake_cache_len; /*!< Length of cached data */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 5200d9044..ebada7a39 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -668,7 +668,12 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) mbedtls_ecdh_init( &handshake->ecdh_ctx ); #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + handshake->psa_pake_ctx = psa_pake_operation_init(); + handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT; +#else mbedtls_ecjpake_init( &handshake->ecjpake_ctx ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_CLI_C) handshake->ecjpake_cache = NULL; handshake->ecjpake_cache_len = 0; @@ -1615,11 +1620,75 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, const unsigned char *pw, size_t pw_len ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_pake_role_t psa_role; + psa_status_t status; +#else mbedtls_ecjpake_role role; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ if( ssl->handshake == NULL || ssl->conf == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + psa_role = PSA_PAKE_ROLE_SERVER; + else + psa_role = PSA_PAKE_ROLE_CLIENT; + + + if( pw_len > 0 ) + { + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + + status = psa_import_key( &attributes, pw, pw_len, + &ssl->handshake->psa_pake_password ); + if( status != PSA_SUCCESS ) + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); + psa_pake_cs_set_primitive( &cipher_suite, + PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, + PSA_ECC_FAMILY_SECP_R1, + 256) ); + psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); + + status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + if( pw_len > 0 ) + { + psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, + ssl->handshake->psa_pake_password ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + } + + ssl->handshake->psa_pake_ctx_is_ok = 1; + + return( 0 ); +#else if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) role = MBEDTLS_ECJPAKE_SERVER; else @@ -1630,6 +1699,7 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -3665,7 +3735,13 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) mbedtls_ecdh_free( &handshake->ecdh_ctx ); #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_pake_abort( &handshake->psa_pake_ctx ); + psa_destroy_key( handshake->psa_pake_password ); + handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT; +#else mbedtls_ecjpake_free( &handshake->ecjpake_ctx ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_CLI_C) mbedtls_free( handshake->ecjpake_cache ); handshake->ecjpake_cache = NULL; @@ -5879,6 +5955,55 @@ static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, else #endif { +#if defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + if( handshake->ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) + { + psa_status_t status; + psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; + psa_key_derivation_operation_t derivation = + PSA_KEY_DERIVATION_OPERATION_INIT; + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "perform PSA-based PMS KDF for ECJPAKE" ) ); + + handshake->pmslen = PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE; + + status = psa_key_derivation_setup( &derivation, alg ); + if( status != PSA_SUCCESS ) + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + + status = psa_key_derivation_set_capacity( &derivation, + PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); + if( status != PSA_SUCCESS ) + { + psa_key_derivation_abort( &derivation ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + status = psa_pake_get_implicit_key( &handshake->psa_pake_ctx, + &derivation ); + if( status != PSA_SUCCESS ) + { + psa_key_derivation_abort( &derivation ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + status = psa_key_derivation_output_bytes( &derivation, + handshake->premaster, + handshake->pmslen ); + if( status != PSA_SUCCESS ) + { + psa_key_derivation_abort( &derivation ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + status = psa_key_derivation_abort( &derivation ); + if( status != PSA_SUCCESS ) + { + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + } +#endif ret = handshake->tls_prf( handshake->premaster, handshake->pmslen, lbl, seed, seed_len, master, @@ -5917,6 +6042,7 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ) return( ret ); } + /* Compute master secret if needed */ ret = ssl_compute_master( ssl->handshake, ssl->session_negotiate->master, @@ -8620,8 +8746,13 @@ int mbedtls_ssl_validate_ciphersuite( #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && + ssl->handshake->psa_pake_ctx_is_ok != 1 ) +#else if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) +#endif /* MBEDTLS_USE_PSA_CRYPTO */ { return( -1 ); } diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 5360b3cb7..3d25e4003 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -130,15 +130,24 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, const unsigned char *end, size_t *olen ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status; +#else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ unsigned char *p = buf; size_t kkpp_len; *olen = 0; /* Skip costly extension if we can't use EC J-PAKE anyway */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( ssl->handshake->psa_pake_ctx_is_ok != 1 ) + return( 0 ); +#else if( mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) return( 0 ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding ecjpake_kkpp extension" ) ); @@ -158,6 +167,43 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, { MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) + size_t output_offset = 0; + size_t output_len; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(p + 2 + output_offset) = 65; + } else { + *(p + 2 + output_offset) = 32; + } + output_offset += 1; + + status = psa_pake_output( &ssl->handshake->psa_pake_ctx, + step, p + 2 + output_offset, + end - p - output_offset - 2, + &output_len ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + } + + kkpp_len = output_offset; +#else ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, p + 2, end - p - 2, &kkpp_len, ssl->conf->f_rng, ssl->conf->p_rng ); @@ -167,6 +213,7 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, "mbedtls_ecjpake_write_round_one", ret ); return( ret ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ ssl->handshake->ecjpake_cache = mbedtls_calloc( 1, kkpp_len ); if( ssl->handshake->ecjpake_cache == NULL ) @@ -849,10 +896,11 @@ static int ssl_parse_supported_point_formats_ext( mbedtls_ssl_context *ssl, ssl->handshake->ecdh_ctx.point_format = p[0]; #endif /* !MBEDTLS_USE_PSA_CRYPTO && ( MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C ) */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) mbedtls_ecjpake_set_point_format( &ssl->handshake->ecjpake_ctx, p[0] ); -#endif +#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ MBEDTLS_SSL_DEBUG_MSG( 4, ( "point format selected: %d", p[0] ) ); return( 0 ); } @@ -876,6 +924,9 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, size_t len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ if( ssl->handshake->ciphersuite_info->key_exchange != MBEDTLS_KEY_EXCHANGE_ECJPAKE ) @@ -889,6 +940,52 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, ssl->handshake->ecjpake_cache = NULL; ssl->handshake->ecjpake_cache_len = 0; +#if defined(MBEDTLS_USE_PSA_CRYPTO) + size_t input_offset = 0; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* Length is stored at the first byte */ + size_t length = buf[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + goto psa_pake_error; + } + + status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + ret = psa_ssl_status_to_mbedtls( status ); + goto psa_pake_error; + } + + input_offset += length; + } + } + + return( 0 ); + +psa_pake_error: + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + + return( ret ); +#else if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, buf, len ) ) != 0 ) { @@ -901,6 +998,7 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, } return( 0 ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -2296,6 +2394,61 @@ start_processing: #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status; + size_t len = end - p; + size_t input_offset = 0; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + size_t length; + + if( step == PSA_PAKE_STEP_KEY_SHARE ) + { + /* Length is stored after 3bytes curve */ + length = p[input_offset + 3]; + input_offset += 3 + 1; + } + else + { + /* Length is stored at the first byte */ + length = p[input_offset]; + input_offset += 1; + } + + if( input_offset + length > len ) + { + ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + goto psa_pake_out; + } + + status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, + p + input_offset, length ); + if( status != PSA_SUCCESS) + { + ret = psa_ssl_status_to_mbedtls( status ); + goto psa_pake_out; + } + + input_offset += length; + } + +psa_pake_out: + if( ret != 0 ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round two", ret ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } +#else ret = mbedtls_ecjpake_read_round_two( &ssl->handshake->ecjpake_ctx, p, end - p ); if( ret != 0 ) @@ -2307,6 +2460,7 @@ start_processing: MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } else #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -3235,6 +3389,42 @@ ecdh_calc_secret: { header_len = 4; +#if defined(MBEDTLS_USE_PSA_CRYPTO) + unsigned char *out_p = ssl->out_msg + header_len; + unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - + header_len; + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(out_p + output_offset) = 65; + } else { + *(out_p + output_offset) = 32; + } + output_offset += 1; + status = psa_pake_output( &ssl->handshake->psa_pake_ctx, + step, out_p + output_offset, + end_p - out_p - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + + content_len = output_offset; +#else ret = mbedtls_ecjpake_write_round_two( &ssl->handshake->ecjpake_ctx, ssl->out_msg + header_len, MBEDTLS_SSL_OUT_CONTENT_LEN - header_len, @@ -3254,6 +3444,7 @@ ecdh_calc_secret: MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_derive_secret", ret ); return( ret ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 71f703c7f..68b4d0988 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -268,10 +268,11 @@ static int ssl_parse_supported_point_formats( mbedtls_ssl_context *ssl, ssl->handshake->ecdh_ctx.point_format = p[0]; #endif /* !MBEDTLS_USE_PSA_CRYPTO && ( MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C ) */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) mbedtls_ecjpake_set_point_format( &ssl->handshake->ecjpake_ctx, p[0] ); -#endif +#endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ MBEDTLS_SSL_DEBUG_MSG( 4, ( "point format selected: %d", p[0] ) ); return( 0 ); } @@ -292,13 +293,52 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, size_t len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( ssl->handshake->psa_pake_ctx_is_ok != 1 ) +#else if( mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) +#endif /* MBEDTLS_USE_PSA_CRYPTO */ { MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip ecjpake kkpp extension" ) ); return( 0 ); } +#if defined(MBEDTLS_USE_PSA_CRYPTO) + size_t input_offset = 0; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* Length is stored at the first byte */ + size_t length = buf[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + goto psa_pake_error; + } + + status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + ret = psa_ssl_status_to_mbedtls( status ); + goto psa_pake_error; + } + + input_offset += length; + } + } +#else if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, buf, len ) ) != 0 ) { @@ -307,11 +347,26 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( ret ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Only mark the extension as OK when we're sure it is */ ssl->handshake->cli_exts |= MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK; return( 0 ); + +#if defined(MBEDTLS_USE_PSA_CRYPTO) +psa_pake_error: + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + + return( ret ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -1973,7 +2028,11 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, unsigned char *buf, size_t *olen ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_status_t status; +#else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ unsigned char *p = buf; const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t kkpp_len; @@ -1996,6 +2055,42 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0 ); p += 2; +#if defined(MBEDTLS_USE_PSA_CRYPTO) + size_t output_offset = 0; + size_t output_len; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(p + 2 + output_offset) = 65; + } else { + *(p + 2 + output_offset) = 32; + } + output_offset += 1; + status = psa_pake_output( &ssl->handshake->psa_pake_ctx, + step, p + 2 + output_offset, + end - p - output_offset - 2, + &output_len ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); + return; + } + + output_offset += output_len; + } + } + + kkpp_len = output_offset; +#else ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, p + 2, end - p - 2, &kkpp_len, ssl->conf->f_rng, ssl->conf->p_rng ); @@ -2004,6 +2099,7 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_RET( 1 , "mbedtls_ecjpake_write_round_one", ret ); return; } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ MBEDTLS_PUT_UINT16_BE( kkpp_len, p, 0 ); p += 2; @@ -2807,6 +2903,61 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + unsigned char *out_p = ssl->out_msg + ssl->out_msglen; + unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - + ssl->out_msglen; + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + size_t ec_len; + +#if !defined(MBEDTLS_ECJPAKE_ALT) + psa_pake_operation_t* pake_op = &(ssl->handshake->psa_pake_ctx); + + mbedtls_ecp_tls_write_group( &(pake_op->ctx.ecjpake.grp), + &ec_len, out_p + output_offset, + end_p - out_p); +#else + const mbedtls_ecp_curve_info *curve_info; + + if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + + *out_p = MBEDTLS_ECP_TLS_NAMED_CURVE; + + MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p + 1, 0 ); + ec_len = 3; +#endif //MBEDTLS_PSA_BUILTIN_ALG_JPAKE + output_offset += ec_len; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(out_p + output_offset) = 65; + } else { + *(out_p + output_offset) = 32; + } + output_offset += 1; + status = psa_pake_output( &ssl->handshake->psa_pake_ctx, + step, out_p + output_offset, + end_p - out_p - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + + ssl->out_msglen += output_offset; +#else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; @@ -2822,6 +2973,7 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, } ssl->out_msglen += len; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -4039,6 +4191,46 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + size_t len = end - p; + psa_status_t status; + size_t input_offset = 0; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* Length is stored at the first byte */ + size_t length = p[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + goto psa_pake_out; + } + + status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, + p + input_offset, length ); + if( status != PSA_SUCCESS) + { + ret = psa_ssl_status_to_mbedtls( status ); + goto psa_pake_out; + } + + input_offset += length; + } + +psa_pake_out: + if( ret != 0 ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round two", ret ); + return( ret ); + } +#else ret = mbedtls_ecjpake_read_round_two( &ssl->handshake->ecjpake_ctx, p, end - p ); if( ret != 0 ) @@ -4055,6 +4247,7 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_derive_secret", ret ); return( ret ); } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ } else #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ From e2977b690187ff848b1a0f26db6c35f5620104c8 Mon Sep 17 00:00:00 2001 From: Neil Armstrong Date: Tue, 13 Sep 2022 14:30:57 +0200 Subject: [PATCH 0642/1574] Remove TLS 1.2 exception about EC J-PAKE and PSA Crypto Signed-off-by: Neil Armstrong --- docs/use-psa-crypto.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/use-psa-crypto.md b/docs/use-psa-crypto.md index b22d37f65..11442ed66 100644 --- a/docs/use-psa-crypto.md +++ b/docs/use-psa-crypto.md @@ -86,7 +86,6 @@ is enabled, no change required on the application side. Current exceptions: -- EC J-PAKE (when `MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED` is defined) - finite-field (non-EC) Diffie-Hellman (used in key exchanges: DHE-RSA, DHE-PSK) From cdac0d53053eb8892003ac836af8c4ff4d492def Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 8 Nov 2022 15:55:00 +0800 Subject: [PATCH 0643/1574] check_names: extend typo check to PSA macro/enum names Typos of PSA macro and enum names are not checked by check_names.py. This commit extend the check list to include PSA_XXX references. The words should be macro/enum names defined as public_macros, internal_macros, private_macros and enums. This commit alse extend the scope of enums to include those are defined in library/*.c. A new type of macros "private", which are defined in library/*.c was also added. Signed-off-by: Pengyu Lv --- tests/scripts/check_names.py | 45 ++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 396ab740d..fc44fbd44 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -36,7 +36,7 @@ NameChecker performs the following checks: declared in the header files. This uses the nm command. - All macros, constants, and identifiers (function names, struct names, etc) follow the required regex pattern. -- Typo checking: All words that begin with MBED exist as macros or constants. +- Typo checking: All words that begin with MBED|PSA exist as macros or constants. The script returns 0 on success, 1 on test failure, and 2 if there is a script error. It must be run from Mbed TLS root. @@ -191,11 +191,12 @@ class PatternMismatch(Problem): # pylint: disable=too-few-public-methods class Typo(Problem): # pylint: disable=too-few-public-methods """ - A problem that occurs when a word using MBED doesn't appear to be defined as - constants nor enum values. Created with NameCheck.check_for_typos() + A problem that occurs when a word using MBED or PSA doesn't + appear to be defined as constants nor enum values. Created with + NameCheck.check_for_typos() Fields: - * match: the Match object of the MBED name in question. + * match: the Match object of the MBED|PSA name in question. """ def __init__(self, match): self.match = match @@ -245,7 +246,7 @@ class CodeParser(): .format(str(self.excluded_files)) ) - all_macros = {"public": [], "internal": []} + all_macros = {"public": [], "internal": [], "private":[]} all_macros["public"] = self.parse_macros([ "include/mbedtls/*.h", "include/psa/*.h", @@ -256,9 +257,14 @@ class CodeParser(): "library/*.h", "tests/include/test/drivers/*.h", ]) + all_macros["private"] = self.parse_macros([ + "library/*.c", + ]) enum_consts = self.parse_enum_consts([ "include/mbedtls/*.h", + "include/psa/*.h", "library/*.h", + "library/*.c", "3rdparty/everest/include/everest/everest.h", "3rdparty/everest/include/everest/x25519.h" ]) @@ -269,7 +275,7 @@ class CodeParser(): "3rdparty/everest/include/everest/everest.h", "3rdparty/everest/include/everest/x25519.h" ]) - mbed_words = self.parse_mbed_words([ + mbed_psa_words = self.parse_mbed_psa_words([ "include/mbedtls/*.h", "include/psa/*.h", "library/*.h", @@ -302,10 +308,11 @@ class CodeParser(): return { "public_macros": actual_macros["public"], "internal_macros": actual_macros["internal"], + "private_macros": all_macros["private"], "enum_consts": enum_consts, "identifiers": identifiers, "symbols": symbols, - "mbed_words": mbed_words + "mbed_psa_words": mbed_psa_words } def is_file_excluded(self, path, exclude_wildcards): @@ -373,25 +380,28 @@ class CodeParser(): return macros - def parse_mbed_words(self, include, exclude=None): + def parse_mbed_psa_words(self, include, exclude=None): """ - Parse all words in the file that begin with MBED, in and out of macros, - comments, anything. + Parse all words in the file that begin with MBED|PSA, in and out of + macros, comments, anything. Args: * include: A List of glob expressions to look for files through. * exclude: A List of glob expressions for excluding files. - Returns a List of Match objects for words beginning with MBED. + Returns a List of Match objects for words beginning with MBED|PSA. """ # Typos of TLS are common, hence the broader check below than MBEDTLS. - mbed_regex = re.compile(r"\bMBED.+?_[A-Z0-9_]*") + mbed_regex = re.compile(r"\b(MBED.+?|PSA)_[A-Z0-9_]*") exclusions = re.compile(r"// *no-check-names|#error") files = self.get_files(include, exclude) - self.log.debug("Looking for MBED words in {} files".format(len(files))) + self.log.debug( + "Looking for MBED|PSA words in {} files" + .format(len(files)) + ) - mbed_words = [] + mbed_psa_words = [] for filename in files: with open(filename, "r", encoding="utf-8") as fp: for line_no, line in enumerate(fp): @@ -399,14 +409,14 @@ class CodeParser(): continue for name in mbed_regex.finditer(line): - mbed_words.append(Match( + mbed_psa_words.append(Match( filename, line, line_no, name.span(0), name.group(0))) - return mbed_words + return mbed_psa_words def parse_enum_consts(self, include, exclude=None): """ @@ -832,12 +842,13 @@ class NameChecker(): for match in self.parse_result["public_macros"] + self.parse_result["internal_macros"] + + self.parse_result["private_macros"] + self.parse_result["enum_consts"] } typo_exclusion = re.compile(r"XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$|" r"MBEDTLS_TEST_LIBTESTDRIVER*") - for name_match in self.parse_result["mbed_words"]: + for name_match in self.parse_result["mbed_psa_words"]: found = name_match.name in all_caps_names # Since MBEDTLS_PSA_ACCEL_XXX defines are defined by the From f3f1f81c1a9de0ee3ef4e890de96f0af57f53cd7 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 8 Nov 2022 16:56:51 +0800 Subject: [PATCH 0644/1574] add exclusive rule for PSA_CRYPTO_DRIVER_TEST This macro is expected to be defined out of the library, and there is no definition in the library. Thus it needs to be excluded from typo check. Signed-off-by: Pengyu Lv --- tests/scripts/check_names.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index fc44fbd44..3c800d1a2 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -846,7 +846,8 @@ class NameChecker(): self.parse_result["enum_consts"] } typo_exclusion = re.compile(r"XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$|" - r"MBEDTLS_TEST_LIBTESTDRIVER*") + r"MBEDTLS_TEST_LIBTESTDRIVER*|" + r"PSA_CRYPTO_DRIVER_TEST") for name_match in self.parse_result["mbed_psa_words"]: found = name_match.name in all_caps_names From c1ecb25d8ad0c68281732d09f29b1d35781ea193 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 8 Nov 2022 18:17:00 +0800 Subject: [PATCH 0645/1574] fix PSA_XXX typos detected by check_names.py Fix the PSA_XXX typos detected by check_names.py. PSA_WANT is actually not typo, but would cause a false negative result. So PSA_WANT is reworded to PSA_WANT_xxx. Signed-off-by: Pengyu Lv --- include/mbedtls/legacy_or_psa.h | 2 +- include/psa/crypto_values.h | 12 ++++++------ library/psa_crypto_aead.h | 2 +- library/psa_crypto_its.h | 4 ++-- library/psa_crypto_rsa.h | 4 ++-- .../psa_crypto_driver_wrappers.c.jinja | 8 ++++---- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index f872ddaf1..35798a590 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -64,7 +64,7 @@ * The naming scheme for these macros is: * MBEDTLS_HAS_feature_VIA_legacy_OR_PSA(_condition) * where: - * - feature is expressed the same way as in PSA_WANT macros, for example: + * - feature is expressed the same way as in PSA_WANT_xxx macros, for example: * KEY_TYPE_AES, ALG_SHA_256, ECC_SECP_R1_256; * - legacy is either LOWLEVEL or the name of the layer: MD, CIPHER; * - condition is omitted if it's based on availability, else it's diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index b465ddb14..152e394b9 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -1760,7 +1760,7 @@ #define PSA_ALG_HKDF_BASE ((psa_algorithm_t)0x08000100) /** Macro to build an HKDF algorithm. * - * For example, `PSA_ALG_HKDF(PSA_ALG_SHA256)` is HKDF using HMAC-SHA-256. + * For example, `PSA_ALG_HKDF(PSA_ALG_SHA_256)` is HKDF using HMAC-SHA-256. * * This key derivation algorithm uses the following inputs: * - #PSA_KEY_DERIVATION_INPUT_SALT is the salt used in the "extract" step. @@ -1805,7 +1805,7 @@ #define PSA_ALG_HKDF_EXTRACT_BASE ((psa_algorithm_t)0x08000400) /** Macro to build an HKDF-Extract algorithm. * - * For example, `PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA256)` is + * For example, `PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)` is * HKDF-Extract using HMAC-SHA-256. * * This key derivation algorithm uses the following inputs: @@ -1854,7 +1854,7 @@ #define PSA_ALG_HKDF_EXPAND_BASE ((psa_algorithm_t)0x08000500) /** Macro to build an HKDF-Expand algorithm. * - * For example, `PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA256)` is + * For example, `PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)` is * HKDF-Expand using HMAC-SHA-256. * * This key derivation algorithm uses the following inputs: @@ -1925,7 +1925,7 @@ * concatenation of ServerHello.Random + ClientHello.Random, * and the label is "key expansion". * - * For example, `PSA_ALG_TLS12_PRF(PSA_ALG_SHA256)` represents the + * For example, `PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)` represents the * TLS 1.2 PRF using HMAC-SHA-256. * * \param hash_alg A hash algorithm (\c PSA_ALG_XXX value such that @@ -1995,7 +1995,7 @@ * PSA_ALG_RSA_PKCS1V15_CRYPT, passed to the key derivation operation * with `psa_key_derivation_input_bytes()`. * - * For example, `PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA256)` represents the + * For example, `PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)` represents the * TLS-1.2 PSK to MasterSecret derivation PRF using HMAC-SHA-256. * * \param hash_alg A hash algorithm (\c PSA_ALG_XXX value such that @@ -2050,7 +2050,7 @@ * PBKDF2 is defined by PKCS#5, republished as RFC 8018 (section 5.2). * This macro specifies the PBKDF2 algorithm constructed using a PRF based on * HMAC with the specified hash. - * For example, `PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA256)` specifies PBKDF2 + * For example, `PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256)` specifies PBKDF2 * using the PRF HMAC-SHA-256. * * This key derivation algorithm uses the following inputs, which must be diff --git a/library/psa_crypto_aead.h b/library/psa_crypto_aead.h index 17b3953c6..70f714a83 100644 --- a/library/psa_crypto_aead.h +++ b/library/psa_crypto_aead.h @@ -508,4 +508,4 @@ psa_status_t mbedtls_psa_aead_finish( psa_status_t mbedtls_psa_aead_abort( mbedtls_psa_aead_operation_t *operation ); -#endif /* PSA_CRYPTO_AEAD */ +#endif /* PSA_CRYPTO_AEAD_H */ diff --git a/library/psa_crypto_its.h b/library/psa_crypto_its.h index 3a3f49a72..1b8dc2032 100644 --- a/library/psa_crypto_its.h +++ b/library/psa_crypto_its.h @@ -73,7 +73,7 @@ struct psa_storage_info_t * \return A status indicating the success/failure of the operation * * \retval #PSA_SUCCESS The operation completed successfully - * \retval #PSA_ERROR_NOT_PERMITTED The operation failed because the provided `uid` value was already created with PSA_STORAGE_WRITE_ONCE_FLAG + * \retval #PSA_ERROR_NOT_PERMITTED The operation failed because the provided `uid` value was already created with PSA_STORAGE_FLAG_WRITE_ONCE * \retval #PSA_ERROR_NOT_SUPPORTED The operation failed because one or more of the flags provided in `create_flags` is not supported or is not valid * \retval #PSA_ERROR_INSUFFICIENT_STORAGE The operation failed because there was insufficient space on the storage medium * \retval #PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error) @@ -137,7 +137,7 @@ psa_status_t psa_its_get_info(psa_storage_uid_t uid, * * \retval #PSA_SUCCESS The operation completed successfully * \retval #PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided key value was not found in the storage - * \retval #PSA_ERROR_NOT_PERMITTED The operation failed because the provided key value was created with PSA_STORAGE_WRITE_ONCE_FLAG + * \retval #PSA_ERROR_NOT_PERMITTED The operation failed because the provided key value was created with PSA_STORAGE_FLAG_WRITE_ONCE * \retval #PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error) */ psa_status_t psa_its_remove(psa_storage_uid_t uid); diff --git a/library/psa_crypto_rsa.h b/library/psa_crypto_rsa.h index 197caa88a..5835c6fc5 100644 --- a/library/psa_crypto_rsa.h +++ b/library/psa_crypto_rsa.h @@ -249,7 +249,7 @@ psa_status_t mbedtls_psa_rsa_verify_hash( * \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_COMMUNICATION_FAILURE * \retval #PSA_ERROR_HARDWARE_FAILURE - * \retval #PSA_ERROR_TAMPERING_DETECTED + * \retval #PSA_ERROR_CORRUPTION_DETECTED * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY * \retval #PSA_ERROR_BAD_STATE * The library has not been previously initialized by psa_crypto_init(). @@ -306,7 +306,7 @@ psa_status_t mbedtls_psa_asymmetric_encrypt( const psa_key_attributes_t *attribu * \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_COMMUNICATION_FAILURE * \retval #PSA_ERROR_HARDWARE_FAILURE - * \retval #PSA_ERROR_TAMPERING_DETECTED + * \retval #PSA_ERROR_CORRUPTION_DETECTED * \retval #PSA_ERROR_INSUFFICIENT_ENTROPY * \retval #PSA_ERROR_INVALID_PADDING * \retval #PSA_ERROR_BAD_STATE diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index a491b07e0..a3e605837 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -291,7 +291,7 @@ psa_status_t psa_driver_wrapper_sign_hash( alg, hash, hash_length, signature, signature_size, signature_length ) ); } -#endif /* PSA_CRYPTO_SE_C */ +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = @@ -375,7 +375,7 @@ psa_status_t psa_driver_wrapper_verify_hash( alg, hash, hash_length, signature, signature_length ) ); } -#endif /* PSA_CRYPTO_SE_C */ +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_location_t location = @@ -647,7 +647,7 @@ bits return( PSA_SUCCESS ); } -#endif /* PSA_CRYPTO_SE_C */ +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ switch( location ) { @@ -715,7 +715,7 @@ data_length *( (psa_key_slot_number_t *)key_buffer ), data, data_size, data_length ) ); } -#endif /* PSA_CRYPTO_SE_C */ +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ switch( location ) { From 98061a75a1847f04275f98b732a8d64f42ab789f Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Tue, 8 Nov 2022 10:33:44 +0000 Subject: [PATCH 0646/1574] Add default return case to mbedtls_test_transparent_key_agreement() Signed-off-by: Aditya Deshpande --- include/psa/crypto_config.h | 4 ++-- tests/src/drivers/test_driver_key_agreement.c | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 13532a045..5ab4fdef3 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -62,7 +62,7 @@ #define PSA_WANT_ALG_CHACHA20_POLY1305 1 #define PSA_WANT_ALG_CTR 1 #define PSA_WANT_ALG_DETERMINISTIC_ECDSA 1 -#define PSA_WANT_ALG_ECB_NO_PADDING +#define PSA_WANT_ALG_ECB_NO_PADDING 1 #define PSA_WANT_ALG_ECDH 1 #define PSA_WANT_ALG_ECDSA 1 #define PSA_WANT_ALG_JPAKE 1 @@ -86,7 +86,7 @@ #define PSA_WANT_ALG_SHA_256 1 #define PSA_WANT_ALG_SHA_384 1 #define PSA_WANT_ALG_SHA_512 1 -#define PSA_WANT_ALG_STREAM_CIPHER +#define PSA_WANT_ALG_STREAM_CIPHER 1 #define PSA_WANT_ALG_TLS12_PRF 1 #define PSA_WANT_ALG_TLS12_PSK_TO_MS 1 #define PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS 1 diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 393a81a23..20d1d6b87 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -82,6 +82,16 @@ psa_status_t mbedtls_test_transparent_key_agreement( alg, peer_key, peer_key_length, shared_secret, shared_secret_size, shared_secret_length ) ); +#else + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) peer_key; + (void) peer_key_length; + (void) shared_secret; + (void) shared_secret_size; + (void) shared_secret_length; + return( PSA_ERROR_NOT_SUPPORTED ); #endif } else From 14a87291bde671808d4d1cf1e9bad4e60f88b49e Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 8 Nov 2022 19:41:28 +0800 Subject: [PATCH 0647/1574] fix false negative reported by check_names.py The PSA_CRYPTO_C is excluded from typo check for the following false negative report: ``` > include/mbedtls/check_config.h:329: 'PSA_CRYPTO_C' looks like a typo. It was not found in any macros or any enums. If this is not a typo, put //no- check-names after it. | 329 | * Note: ECJPAKE_C depends on MD_C || PSA_CRYPTO_C. */ | ^^^^^^^^^^^^ ``` Signed-off-by: Pengyu Lv --- tests/scripts/check_names.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 3c800d1a2..2ddf41ed9 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -847,7 +847,8 @@ class NameChecker(): } typo_exclusion = re.compile(r"XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$|" r"MBEDTLS_TEST_LIBTESTDRIVER*|" - r"PSA_CRYPTO_DRIVER_TEST") + r"PSA_CRYPTO_DRIVER_TEST|" + r"PSA_CRYPTO_C") for name_match in self.parse_result["mbed_psa_words"]: found = name_match.name in all_caps_names From ea52ed91cf746915736625ad6205c5adc615e160 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:01:17 +0800 Subject: [PATCH 0648/1574] fix typo and spell issues Signed-off-by: Jerry Yu --- library/ssl_misc.h | 14 +++++++------- library/ssl_tls.c | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 7c32969b2..77b091d03 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -78,7 +78,7 @@ #define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) /* - * Inernal identity of handshake extensions + * Internal identity of handshake extensions */ #define MBEDTLS_SSL_EXT_ID_UNRECOGNIZED 0 #define MBEDTLS_SSL_EXT_ID_SERVERNAME 1 @@ -138,8 +138,8 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); * with an "illegal_parameter" alert. */ -/* Extensions that not recognized by TLS 1.3 */ -#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED \ +/* Extensions that are not recognized by TLS 1.3 */ +#define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED \ ( MBEDTLS_SSL_EXT_MASK( SUPPORTED_POINT_FORMATS ) | \ MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ @@ -169,7 +169,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( POST_HANDSHAKE_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ @@ -191,7 +191,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ MBEDTLS_SSL_EXT_MASK( OID_FILTERS ) | \ MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ @@ -213,7 +213,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ ( MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNREOGNIZED ) + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) /* * Helper macros for function call with return check. @@ -1950,7 +1950,7 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ /* - * Helper functions for extensions checking and convert. + * Helper functions for extensions checking. */ MBEDTLS_CHECK_RETURN_CRITICAL diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 04d2ef440..cf71d263a 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -618,7 +618,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) #if defined(MBEDTLS_DEBUG_C) static const char *extension_name_table[] = { - [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unreognized", + [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = "unrecognized", [MBEDTLS_SSL_EXT_ID_SERVERNAME] = "server_name", [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = "max_fragment_length", [MBEDTLS_SSL_EXT_ID_STATUS_REQUEST] = "status_request", @@ -648,7 +648,7 @@ static const char *extension_name_table[] = { [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = "session_ticket" }; -static unsigned int extension_type_tbl[]={ +static unsigned int extension_type_table[]={ [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = 0xff, [MBEDTLS_SSL_EXT_ID_SERVERNAME] = MBEDTLS_TLS_EXT_SERVERNAME, [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, @@ -755,7 +755,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, i++ ) { mbedtls_ssl_print_extension_type( - ssl, level, file, line, hs_msg_type, extension_type_tbl[i], + ssl, level, file, line, hs_msg_type, extension_type_table[i], extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); } } From c437ee3bac80e52b5d6d637f6816426fb12a7c2a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:04:15 +0800 Subject: [PATCH 0649/1574] fix wrong return value Signed-off-by: Jerry Yu --- library/ssl_tls13_server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 598ca91bf..378ce8fc9 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1447,8 +1447,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, 3, ( "pre_shared_key is not last extension." ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); From c018204019a6a935ae0bf3ab888cd7a6d7fc2039 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 8 Nov 2022 08:12:56 -0500 Subject: [PATCH 0650/1574] Improve error injection in EC J-PAKE tests Instead of corrupting the public key part of the message, corrupt the proof part. A proof is conceptually similar to a signature, and changing anything in it should make it invalid with a high probability. Also, instead of shifting data, perform a bitflip. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_psa_crypto.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 36a8efaae..779f594dc 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -790,8 +790,8 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 1 ) { - buffer0[s_x1_pk_off + 8] >>= 4; - buffer0[s_x2_pk_off + 7] <<= 4; + buffer0[s_x1_pr_off + 8] ^= 1; + buffer0[s_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; } @@ -1013,8 +1013,8 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, if( inject_error == 2 ) { - buffer1[c_x1_pk_off + 12] >>= 4; - buffer1[c_x2_pk_off + 7] <<= 4; + buffer1[c_x1_pr_off + 12] ^= 1; + buffer1[c_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; } From b95dd3683b99d5a34876952f65d915656804c819 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:19:34 +0800 Subject: [PATCH 0651/1574] Add missing mask set and tls13 unrecognized extension Signed-off-by: Jerry Yu --- library/ssl_misc.h | 1 + library/ssl_tls.c | 5 +++++ library/ssl_tls13_server.c | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 77b091d03..ad8754cac 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -144,6 +144,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ MBEDTLS_SSL_EXT_MASK( SESSION_TICKET ) | \ + MBEDTLS_SSL_EXT_MASK( TRUNCATED_HMAC ) | \ MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) /* RFC 8446 section 4.2. Allowed extensions for ClienHello */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index cf71d263a..4787ca058 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -9155,6 +9155,11 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, p[6] = MBEDTLS_BYTE_0( protocol_name_len ); memcpy( p + 7, ssl->alpn_chosen, protocol_name_len ); + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); +#endif + return ( 0 ); } #endif /* MBEDTLS_SSL_ALPN */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 378ce8fc9..051afa270 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -700,6 +700,8 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent selected_identity: %u", ssl->handshake->selected_identity ) ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + return( 0 ); } @@ -1812,6 +1814,9 @@ static int ssl_tls13_write_server_hello_supported_versions_ext( *out_len = 6; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + return( 0 ); } @@ -1918,6 +1923,8 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, *out_len = p - buf; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + return( 0 ); } @@ -1982,6 +1989,8 @@ static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, *out_len = 6; + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + return( 0 ); } From 79aa721adee6042afecae06c124d35a36337b18a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:30:21 +0800 Subject: [PATCH 0652/1574] Rename ext print function and macro Signed-off-by: Jerry Yu --- library/ssl_debug_helpers.h | 19 +++++++++---------- library/ssl_tls.c | 14 ++++++-------- library/ssl_tls13_client.c | 6 +++--- library/ssl_tls13_generic.c | 8 ++++---- library/ssl_tls13_server.c | 2 +- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 8fce87a98..ad84619a0 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -50,12 +50,10 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, int hs_msg_type, uint32_t extensions_mask, const char *extra ); -void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - unsigned int extension_type, - const char *extra_msg0, - const char *extra_msg1 ); +void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1 ); #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ @@ -69,16 +67,17 @@ void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, ssl->handshake->received_extensions, \ "received" ) -#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) \ - mbedtls_ssl_print_extension_type( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extension_type, extra, NULL ) +#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ + mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extension_type, \ + extra, NULL ) #else #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) #define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) -#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) +#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) #endif /* MBEDTLS_DEBUG_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4787ca058..efe24634f 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -704,15 +704,13 @@ static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return( "CertificateRequest" ); } - return( NULL ); + return( "Unknown" ); } -void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, - unsigned int extension_type, - const char *extra_msg0, - const char *extra_msg1 ) +void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1 ) { const char *extra_msg; if( extra_msg0 && extra_msg1 ) @@ -754,7 +752,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] ); i++ ) { - mbedtls_ssl_print_extension_type( + mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index fff0febed..f4502d290 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2025,7 +2025,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, "( ignored )" ); break; @@ -2213,7 +2213,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, break; default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, "( ignored )" ); break; @@ -2504,7 +2504,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, "( ignored )" ); break; diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a9c8c973f..39b86b984 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -537,7 +537,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, switch( extension_type ) { default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, "( ignored )" ); break; @@ -1545,12 +1545,12 @@ int mbedtls_ssl_tls13_check_received_extension( uint32_t extension_mask = mbedtls_ssl_get_extension_mask( received_extension_type ); - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "received" ); if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) { - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "is illegal" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, @@ -1577,7 +1577,7 @@ int mbedtls_ssl_tls13_check_received_extension( return( 0 ); } - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, hs_msg_type, received_extension_type, "is unsupported" ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 051afa270..28f242295 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1614,7 +1614,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ default: - MBEDTLS_SSL_PRINT_EXT_TYPE( + MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, "( ignored )" ); break; From 7de2ff0310f4c7e7493844533e10785a6207a2a8 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:43:46 +0800 Subject: [PATCH 0653/1574] Refactor extension list print Signed-off-by: Jerry Yu --- library/ssl_client.c | 3 ++- library/ssl_debug_helpers.h | 16 +++------------- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 12 ++++++++---- library/ssl_tls13_generic.c | 6 ++++-- library/ssl_tls13_server.c | 17 +++++++++++------ 6 files changed, 29 insertions(+), 27 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index ebf0fa701..b226cafff 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -675,7 +675,8 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->sent_extensions ); #endif *out_len = p - buf; diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index ad84619a0..ccdda2a0d 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -55,17 +55,9 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int extension_type, const char *extra_msg0, const char *extra_msg1 ); -#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) \ +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, \ - ssl->handshake->sent_extensions, \ - "sent" ) - -#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) \ - mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, \ - ssl->handshake->received_extensions, \ - "received" ) + hs_msg_type, extension_mask, NULL ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ @@ -73,9 +65,7 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, extra, NULL ) #else -#define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type ) - -#define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type ) +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index efe24634f..ea8464f0c 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -754,7 +754,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, { mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], - extensions_mask & ( 1 << i ) ? "was" : "was not", extra ); + extensions_mask & ( 1 << i ) ? "exists" : "does not exists", extra ); } } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f4502d290..364e886bc 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1742,7 +1742,8 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, hs_msg_type ); + MBEDTLS_SSL_PRINT_EXTS( + 3, hs_msg_type, ssl->handshake->received_extensions ); cleanup: @@ -2034,7 +2035,8 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2222,7 +2224,8 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + ssl->handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2513,7 +2516,8 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + ssl->handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 39b86b984..a39949c1c 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -546,7 +546,8 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE, + ssl->handshake->received_extensions ); } exit: @@ -885,7 +886,8 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, *out_len = p - buf; - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->sent_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 28f242295..597fbb7e6 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1623,7 +1623,8 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_RECEIVED_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO ); + MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, + ssl->handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, @@ -2145,9 +2146,10 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len ); - MBEDTLS_SSL_PRINT_SENT_EXTS( + MBEDTLS_SSL_PRINT_EXTS( 3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : - MBEDTLS_SSL_HS_SERVER_HELLO ); + MBEDTLS_SSL_HS_SERVER_HELLO, + ssl->handshake->sent_extensions ); return( ret ); } @@ -2333,7 +2335,8 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len ); - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, ssl->handshake->sent_extensions ); return( 0 ); } @@ -2464,7 +2467,8 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, *out_len = p - buf; - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, ssl->handshake->sent_extensions ); return( 0 ); } @@ -2861,7 +2865,8 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); - MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET ); + MBEDTLS_SSL_PRINT_EXTS( + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->sent_extensions ); return( 0 ); } From 616ba75c233b47dac91ac652621acb15b30a32c9 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 8 Nov 2022 21:49:47 +0800 Subject: [PATCH 0654/1574] move test cases and mark `tls13-kex-modes.sh` as locked Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-kex-modes.sh | 215 +------------------------ tests/opt-testcases/tls13-misc.sh | 214 ++++++++++++++++++++++++ 2 files changed, 216 insertions(+), 213 deletions(-) diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index b1320c5b5..2681f61f1 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,219 +18,8 @@ # limitations under the License. # -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED - -run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ - "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ - --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ - localhost" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -s "Found PSK KEX MODE" \ - -s "No matched ciphersuite" - -requires_openssl_tls1_3 -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 -requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED - -run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ - "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ - "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ - -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -s "Found PSK KEX MODE" \ - -s "No matched ciphersuite" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 0" \ - -s "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: ephemeral$" \ - -S "ticket is not authentic" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ - "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 2" \ - -s "sent selected_identity: 1" \ - -s "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: ephemeral$" \ - -s "ticket is not authentic" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -s "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -s "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -s "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -s "Ticket age exceeds limitation" \ - -S "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -s "Ticket age outside tolerance window" - -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ - "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ - 0 \ - -c "Pre-configured PSK number = 1" \ - -S "sent selected_identity:" \ - -s "key exchange mode: ephemeral" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: psk$" \ - -S "ticket is not authentic" \ - -S "ticket is expired" \ - -S "Invalid ticket start time" \ - -S "Ticket age exceeds limitation" \ - -s "Ticket age outside tolerance window" - -requires_gnutls_tls1_3 -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED -run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ - "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ - "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ - --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ - localhost" \ - 1 \ - -s "found psk key exchange modes extension" \ - -s "found pre_shared_key extension" \ - -s "Found PSK_EPHEMERAL KEX MODE" \ - -S "Found PSK KEX MODE" \ - -S "key exchange mode: psk$" \ - -S "key exchange mode: psk_ephemeral" \ - -S "key exchange mode: ephemeral" +# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases can be generated by +# scripts in future(#6280) requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 661b3500b..4ad6faa48 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -18,6 +18,220 @@ # limitations under the License. # +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +run_test "TLS 1.3: PSK: No valid ciphersuite. G->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-CIPHER-ALL:+AES-256-GCM:+AEAD:+SHA384:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK:+VERS-TLS1.3 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "No matched ciphersuite" + +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + +run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ + "$P_SRV force_version=tls13 tls13_kex_modes=all debug_level=5 $(get_srv_psk_list)" \ + "$O_NEXT_CLI -tls1_3 -msg -allow_no_dhe_kex -ciphersuites TLS_AES_256_GCM_SHA384\ + -psk_identity Client_identity -psk 6162636465666768696a6b6c6d6e6f70" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -s "Found PSK KEX MODE" \ + -s "No matched ciphersuite" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 0" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -S "ticket is not authentic" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ + "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 2" \ + -s "sent selected_identity: 1" \ + -s "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: ephemeral$" \ + -s "ticket is not authentic" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -s "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -s "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -s "Ticket age exceeds limitation" \ + -S "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -s "Ticket age outside tolerance window" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ + "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -S "ticket is not authentic" \ + -S "ticket is expired" \ + -S "Invalid ticket start time" \ + -S "Ticket age exceeds limitation" \ + -s "Ticket age outside tolerance window" + +requires_gnutls_tls1_3 +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +run_test "TLS 1.3: G->m: ephemeral_all/psk, fail, no common kex mode" \ + "$P_SRV force_version=tls13 tls13_kex_modes=psk debug_level=5 $(get_srv_psk_list)" \ + "$G_NEXT_CLI -d 10 --priority NORMAL:-VERS-ALL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:-PSK:+VERS-TLS1.3 \ + --pskusername Client_identity --pskkey=6162636465666768696a6b6c6d6e6f70 \ + localhost" \ + 1 \ + -s "found psk key exchange modes extension" \ + -s "found pre_shared_key extension" \ + -s "Found PSK_EPHEMERAL KEX MODE" \ + -S "Found PSK KEX MODE" \ + -S "key exchange mode: psk$" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: ephemeral" + requires_gnutls_tls1_3 requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SRV_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ From c1cc7a4c76cae48453dd70c6ad92f33d192f1667 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 8 Nov 2022 19:13:15 +0000 Subject: [PATCH 0655/1574] Merge and reorder paragraphs for clarity Signed-off-by: David Horstmann --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9fea52c52..9fee0cb0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,9 +34,7 @@ The project aims to minimise the impact on users upgrading to newer versions of To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. -Where changes to an existing interface are necessary, functions in the public interface which need to be changed are marked as 'deprecated'. If there is a strong reason to replace an existing function with one that has a slightly different interface (different prototype, or different documented behavior), create a new function with a new name with the desired interface. Keep the old function, but mark it as deprecated. - -No changes are permitted to the definition of functions in the public interface which will change the API. Instead the interface can only be changed by its extension. As described above, if a function needs to be changed, a new function needs to be created alongside it, with a new name, and whatever change is necessary, such as a new parameter or the addition of a return value. +No changes are permitted to the definition of functions in the public interface which will change the API. Instead the interface can only be changed by its extension. Where changes to an existing interface are necessary, functions in the public interface which need to be changed are marked as 'deprecated'. If there is a strong reason to replace an existing function with one that has a slightly different interface (different prototype, or different documented behavior), create a new function with a new name with the desired interface. Keep the old function, but mark it as deprecated. Periodically, the library will remove deprecated functions from the library which will be a breaking change in the API, but such changes will be made only in a planned, structured way that gives sufficient notice to users of the library. From 9b1144d5bce4ee8739d884e99811932ab532cc97 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 8 Nov 2022 19:13:58 +0000 Subject: [PATCH 0656/1574] Minor grammatical fix Signed-off-by: David Horstmann --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9fee0cb0f..fc79e49d2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,7 +32,7 @@ Backwards Compatibility The project aims to minimise the impact on users upgrading to newer versions of the library and it should not be necessary for a user to make any changes to their own code to work with a newer version of the library. Unless the user has made an active decision to use newer features, a newer generation of the library or a change has been necessary due to a security issue or other significant software defect, no modifications to their own code should be necessary. To achieve this, API compatibility is maintained between different versions of Mbed TLS on the main development branch and in LTS (Long Term Support) branches, as described in [BRANCHES.md](BRANCHES.md). -To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there will be a major release. +To minimise such disruption to users, where a change to the interface is required, all changes to the ABI or API, even on the main development branch where new features are added, need to be justifiable by either being a significant enhancement, new feature or bug fix which is best resolved by an interface change. If there is an API change, the contribution, if accepted, will be merged only when there is a major release. No changes are permitted to the definition of functions in the public interface which will change the API. Instead the interface can only be changed by its extension. Where changes to an existing interface are necessary, functions in the public interface which need to be changed are marked as 'deprecated'. If there is a strong reason to replace an existing function with one that has a slightly different interface (different prototype, or different documented behavior), create a new function with a new name with the desired interface. Keep the old function, but mark it as deprecated. From ab45425623fa487e423070df499017e65a210c0a Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Tue, 8 Nov 2022 14:55:32 -0800 Subject: [PATCH 0657/1574] include: mbedtls: Add missing private_access header This adds a missing private access header. Signed-off-by: Moritz Fischer --- include/mbedtls/lms.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 5e03d9b5f..fe87d40a5 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -30,6 +30,7 @@ #include #include +#include "mbedtls/private_access.h" #include "mbedtls/build_info.h" #define MBEDTLS_ERR_LMS_BAD_INPUT_DATA -0x0011 /**< Bad data has been input to an LMS function */ From 0b7e07904e6c325c6cb1a581e1cb3925e792296a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 10:45:15 +0100 Subject: [PATCH 0658/1574] Forbid empty mpi_core in test data This way static analyzers have a chance of knowing we don't expect the bignum functions to support empty inputs. As things are, Coverity keeps complaining about it. Signed-off-by: Gilles Peskine --- tests/src/helpers.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/src/helpers.c b/tests/src/helpers.c index b7c83646c..cc23fd7c4 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -357,8 +357,12 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, size_t hex_len = strlen( input ); size_t byte_len = ( hex_len + 1 ) / 2; *plimbs = CHARS_TO_LIMBS( byte_len ); + + /* A core bignum is not allowed to be empty. Forbid it as test data, + * this way static analyzers have a chance of knowing we don't expect + * the bignum functions to support empty inputs. */ if( *plimbs == 0 ) - return( 0 ); + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); if( *pX == NULL ) From 6856f4c70d2a0e3fb16e180ae45aa19db36772d7 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 9 Nov 2022 10:50:29 +0100 Subject: [PATCH 0659/1574] Fix typos and comments Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index de52d776b..74b3184d0 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -63,7 +63,7 @@ def analyze_coverage(results, outcomes): def analyze_driver_vs_reference(outcomes, components, ignored_tests): """Check that all tests executed in the reference component are also executed in the corresponding driver component. - Skip test suits provided in ignored_tests list. + Skip test suites provided in ignored_tests list. """ driver_component = components[0] reference_component = components[1] @@ -72,9 +72,9 @@ def analyze_driver_vs_reference(outcomes, components, ignored_tests): for key in available: # Skip ignored test suites - test_suit = key.split(';')[0] # retrieve test suit name - test_suit = test_suit.split('.')[0] # retrieve main part of test suit name - if test_suit in ignored_tests: + test_suite = key.split(';')[0] # retrieve test suit name + test_suite = test_suite.split('.')[0] # retrieve main part of test suit name + if test_suite in ignored_tests: continue # Continue if test was not executed by any component hits = outcomes[key].hits() if key in outcomes else 0 @@ -88,8 +88,6 @@ def analyze_driver_vs_reference(outcomes, components, ignored_tests): driver_test_passed = True if reference_component in entry: reference_test_passed = True - #if(driver_test_passed is True and reference_test_passed is False): - # print('{}: driver: passed; reference: skipped'.format(key)) if(driver_test_passed is False and reference_test_passed is True): print('{}: driver: skipped/failed; reference: passed'.format(key)) result = False @@ -123,7 +121,7 @@ by a semicolon. return outcomes def do_analyze_coverage(outcome_file, args): - """Perform coverage analyze.""" + """Perform coverage analysis.""" del args # unused outcomes = read_outcome_file(outcome_file) results = analyze_outcomes(outcomes) @@ -141,7 +139,7 @@ def do_analyze_driver_vs_reference(outcome_file, args): outcomes = read_outcome_file(outcome_file) return analyze_driver_vs_reference(outcomes, components, ignored_tests) -# List of tasks with function that can handle this task and additional arguments if required +# List of tasks with a function that can handle this task and additional arguments if required # pylint: disable=line-too-long TASKS = { 'analyze_coverage': { @@ -161,7 +159,7 @@ def main(): parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') parser.add_argument('--task', default='all', - help='Analyze to be done: all or analyze_coverage or ' + help='Analysis to be done: all or analyze_coverage or ' 'analyze_driver_vs_reference_hash') options = parser.parse_args() From 95b5addcd63dfccd6ac7470983bbdefa36e9c255 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 11:18:38 +0100 Subject: [PATCH 0660/1574] Don't test mbedtls_mpi_core_lt_ct with 0 limbs A core MPI must have at least 1 limb. We can no longer test with 0 limbs, and we don't need to anyway, so don't try. Signed-off-by: Gilles Peskine --- library/constant_time_internal.h | 1 + tests/suites/test_suite_bignum_core.misc.data | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index 9cc63c230..1e4a3ab0b 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -138,6 +138,7 @@ unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, * \param B The right-hand MPI. This must point to an array of limbs * with the same allocated length as \p A. * \param limbs The number of limbs in \p A and \p B. + * This must not be 0. * * \return The result of the comparison: * \c 1 if \p A is less than \p B. diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 30c767c74..62480e47f 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -167,9 +167,6 @@ mpi_core_lt_ct:"2B5":"2B4":0 mbedtls_mpi_core_lt_ct: xy (63 bit x, y first byte greater) mpi_core_lt_ct:"7FFFFFFFFFFFFFFF":"00000000000000FF":0 From 51f30ff6e687ccd669611a4d9190cc98d67886a9 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 9 Nov 2022 12:07:29 +0100 Subject: [PATCH 0661/1574] Make separate components for ref and driver in TASKS Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 74b3184d0..031e16132 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -60,13 +60,11 @@ def analyze_coverage(results, outcomes): # fixed this branch to have full coverage of test cases. results.warning('Test case not executed: {}', key) -def analyze_driver_vs_reference(outcomes, components, ignored_tests): +def analyze_driver_vs_reference(outcomes, component_ref,component_driver, ignored_tests): """Check that all tests executed in the reference component are also executed in the corresponding driver component. Skip test suites provided in ignored_tests list. """ - driver_component = components[0] - reference_component = components[1] available = check_test_cases.collect_available_test_cases() result = True @@ -84,9 +82,9 @@ def analyze_driver_vs_reference(outcomes, components, ignored_tests): driver_test_passed = False reference_test_passed = False for entry in outcomes[key].successes: - if driver_component in entry: + if component_driver in entry: driver_test_passed = True - if reference_component in entry: + if component_ref in entry: reference_test_passed = True if(driver_test_passed is False and reference_test_passed is True): print('{}: driver: skipped/failed; reference: passed'.format(key)) @@ -129,18 +127,14 @@ def do_analyze_coverage(outcome_file, args): def do_analyze_driver_vs_reference(outcome_file, args): """Perform driver vs reference analyze.""" - components = args['components'].split(',') ignored_tests = args['ignored'].split(',') ignored_tests = ['test_suite_' + x for x in ignored_tests] - # We need exactly 2 components to analyze (first driver and second reference) - if(len(components) != 2 or "accel" not in components[0] or "reference" not in components[1]): - print('Error: Wrong component list. Exactly 2 components are required (driver,reference). ') - return False + outcomes = read_outcome_file(outcome_file) - return analyze_driver_vs_reference(outcomes, components, ignored_tests) + return analyze_driver_vs_reference(outcomes, args['component_ref'], + args['component_driver'], ignored_tests) # List of tasks with a function that can handle this task and additional arguments if required -# pylint: disable=line-too-long TASKS = { 'analyze_coverage': { 'test_function': do_analyze_coverage, @@ -148,10 +142,10 @@ TASKS = { 'analyze_driver_vs_reference_hash': { 'test_function': do_analyze_driver_vs_reference, 'args': { - 'components': 'test_psa_crypto_config_accel_hash_use_psa,test_psa_crypto_config_reference_hash_use_psa', + 'component_ref': 'test_psa_crypto_config_reference_hash_use_psa', + 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', 'ignored': 'md,mdx,shax,entropy,hmac_drbg,random,psa_crypto_init,hkdf'}} } -# pylint: enable=line-too-long def main(): try: From be279c7bcc6f5b33a704ff925960d81fdc72b3c1 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 9 Nov 2022 12:17:08 +0100 Subject: [PATCH 0662/1574] Make a list from ignored tests in TASKS Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 031e16132..85ec97c16 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -127,8 +127,7 @@ def do_analyze_coverage(outcome_file, args): def do_analyze_driver_vs_reference(outcome_file, args): """Perform driver vs reference analyze.""" - ignored_tests = args['ignored'].split(',') - ignored_tests = ['test_suite_' + x for x in ignored_tests] + ignored_tests = ['test_suite_' + x for x in args['ignored_suites']] outcomes = read_outcome_file(outcome_file) return analyze_driver_vs_reference(outcomes, args['component_ref'], @@ -144,7 +143,13 @@ TASKS = { 'args': { 'component_ref': 'test_psa_crypto_config_reference_hash_use_psa', 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', - 'ignored': 'md,mdx,shax,entropy,hmac_drbg,random,psa_crypto_init,hkdf'}} + 'ignored_suites': ['shax','mdx', # the software implementations that are being excluded + 'md' # the legacy abstraction layer that's being excluded + 'entropy','hmac_drbg','random', # temporary limitation (see RNG EPIC) + 'psa_crypto_init', # doesn't work with external RNG + 'hkdf', # legacy still depends on MD, but there's a PSA interface that doesn't + 'pkcs7 ' # recent addition, will be addressed later + ]}} } def main(): From 91e35e3c32426387541f176f2d9320d3514b3564 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 9 Nov 2022 11:45:29 +0000 Subject: [PATCH 0663/1574] Enable mpi_mod_int test case to take full-range MPI integers Also add commented-out test cases that currently fail Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.function | 37 +++++++++++++++++----- tests/suites/test_suite_bignum.misc.data | 40 +++++++++++++++++------- 2 files changed, 58 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 4cec0a7c7..40b23fe63 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -959,24 +959,47 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_int( char * input_X, int input_Y, - int input_A, int div_result ) +void mpi_mod_int( char * input_X, char * input_Y, + char * input_A, int mod_result ) { mbedtls_mpi X; + mbedtls_mpi Y; + mbedtls_mpi A; int res; mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_mod_int( &r, &X, input_Y ); - TEST_ASSERT( res == div_result ); + mbedtls_mpi_init( &X ); + mbedtls_mpi_init( &Y ); + mbedtls_mpi_init( &A ); + + /* We use MPIs to read Y and A since the test framework limits us to + * ints, so we can't have 64-bit values */ + TEST_EQUAL( mbedtls_test_read_mpi( &X, input_X ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &Y, input_Y ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); + + TEST_EQUAL( Y.n, 1 ); + TEST_EQUAL( A.n, 1 ); + + /* Convert the MPIs for Y and A to signed mbedtls_mpi_uints */ + mbedtls_mpi_uint y = Y.p[0]; + if( Y.s == -1 ) + y = -y; + mbedtls_mpi_uint a = A.p[0]; + if( A.s == -1 ) + a = -a; + + res = mbedtls_mpi_mod_int( &r, &X, y ); + TEST_EQUAL( res, mod_result ); if( res == 0 ) { - TEST_ASSERT( r == (mbedtls_mpi_uint) input_A ); + TEST_EQUAL( r, a ); } exit: mbedtls_mpi_free( &X ); + mbedtls_mpi_free( &Y ); + mbedtls_mpi_free( &A ); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 29ba4ab46..70b4998e2 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1205,40 +1205,56 @@ Test mbedtls_mpi_mod_mpi: 0 (null) % -1 mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #1 -mpi_mod_int:"3e8":13:12:0 +mpi_mod_int:"3e8":"d":"c":0 Base test mbedtls_mpi_mod_int #2 (Divide by zero) -mpi_mod_int:"3e8":0:0:MBEDTLS_ERR_MPI_DIVISION_BY_ZERO +mpi_mod_int:"3e8":"0":"0":MBEDTLS_ERR_MPI_DIVISION_BY_ZERO Base test mbedtls_mpi_mod_int #3 -mpi_mod_int:"-3e8":13:1:0 +mpi_mod_int:"-3e8":"d":"1":0 Base test mbedtls_mpi_mod_int #4 (Negative modulo) -mpi_mod_int:"3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"3e8":"-d":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #5 (Negative modulo) -mpi_mod_int:"-3e8":-13:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"-3e8":"-d":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Base test mbedtls_mpi_mod_int #6 (By 1) -mpi_mod_int:"3e8":1:0:0 +mpi_mod_int:"3e8":"1":"0":0 Base test mbedtls_mpi_mod_int #7 (By 2) -mpi_mod_int:"3e9":2:1:0 +mpi_mod_int:"3e9":"2":"1":0 Base test mbedtls_mpi_mod_int #8 (By 2) -mpi_mod_int:"3e8":2:0:0 +mpi_mod_int:"3e8":"2":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % 1 -mpi_mod_int:"":1:0:0 +mpi_mod_int:"":"1":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % 2 -mpi_mod_int:"":2:0:0 +mpi_mod_int:"":"2":"0":0 Test mbedtls_mpi_mod_int: 0 (null) % -1 -mpi_mod_int:"":-1:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":"-1":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_int: 0 (null) % -2 -mpi_mod_int:"":-2:0:MBEDTLS_ERR_MPI_NEGATIVE_VALUE +mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +# CURRENTLY FAILS +#Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 +#depends_on:MBEDTLS_HAVE_INT64 +#mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 + +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT: WHEN FIXED, REMOVE "depends_on" LINE +Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 From 992de3c56284bf48758a33d189a511a73c7c727e Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 9 Nov 2022 13:54:49 +0100 Subject: [PATCH 0664/1574] Make TASK parameter positional and allow more than one task Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 36 +++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 85ec97c16..f78af68f3 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -144,7 +144,7 @@ TASKS = { 'component_ref': 'test_psa_crypto_config_reference_hash_use_psa', 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', 'ignored_suites': ['shax','mdx', # the software implementations that are being excluded - 'md' # the legacy abstraction layer that's being excluded + 'md', # the legacy abstraction layer that's being excluded 'entropy','hmac_drbg','random', # temporary limitation (see RNG EPIC) 'psa_crypto_init', # doesn't work with external RNG 'hkdf', # legacy still depends on MD, but there's a PSA interface that doesn't @@ -157,24 +157,38 @@ def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') - parser.add_argument('--task', default='all', - help='Analysis to be done: all or analyze_coverage or ' - 'analyze_driver_vs_reference_hash') + parser.add_argument('task', default='all', + help='Analysis to be done. By default, run all tasks. ' + 'With one or more TASK, run only those. ' + 'TASK can be the name of a single task or ' + 'coma-separated list of tasks. ') + parser.add_argument('--list', action='store_true', + help='List all available tasks and exit.') options = parser.parse_args() + if options.list: + for task in TASKS: + print(task) + sys.exit(0) + result = True + tasks = [] if options.task == 'all': for task in TASKS: + tasks.append(task) + else: + tasks = options.task.split(',') + + for task in tasks: + if task not in TASKS: + print('Error: invalid task: {}'.format(task)) + sys.exit(1) + + for task in TASKS: + if task in tasks: if not TASKS[task]['test_function'](options.outcomes, TASKS[task]['args']): result = False - elif options.task in TASKS: - if not TASKS[options.task]['test_function'](options.outcomes, - TASKS[options.task]['args']): - result = False - else: - print('Error: Unknown task: {}'.format(options.task)) - result = False if result is False: sys.exit(1) From 93986645d8a6f6e157d04c892386ddc6fa5a7de5 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 9 Nov 2022 15:06:44 +0100 Subject: [PATCH 0665/1574] Remove reference vs drivers test from outcome-analysis.sh Signed-off-by: Przemek Stekiel --- .../psa-migration/outcome-analysis.sh | 71 ++++++------------- 1 file changed, 20 insertions(+), 51 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 81ab69183..908468548 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -13,6 +13,7 @@ # - the set of tests skipped in the driver-only build is the same as in an # equivalent software-based configuration, or the difference is small enough, # justified, and a github issue is created to track it. +# This part is verified by tests/scripts/analyze_outcomes.py # # WARNING: this script checks out a commit other than the head of the current # branch; it checks out the current branch again when running successfully, @@ -26,30 +27,12 @@ # re-running this script (for example "get numbers before this PR"). # ----- BEGIN edit this ----- -# The component in all.sh that builds and tests with drivers. -DRIVER_COMPONENT=test_psa_crypto_config_accel_hash_use_psa -# A similar configuration to that of the component, except without drivers, -# for comparison. -reference_config () { - # start with full - scripts/config.py full - # use PSA config and disable driver-less algs as in the component - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - # disable options as in the component - # (no need to disable whole modules, we'll just skip their test suite) - scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA -} # Space-separated list of test suites to ignore: # if SSS is in that list, test_suite_SSS and test_suite_SSS.* are ignored. IGNORE="md mdx shax" # accelerated IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) IGNORE="$IGNORE psa_crypto_init" # needs internal RNG IGNORE="$IGNORE hkdf" # disabled in the all.sh component tested -# Compare only "reference vs driver" or also "before vs after"? -BEFORE_AFTER=1 # 0 or 1 # ----- END edit this ----- set -eu @@ -65,38 +48,27 @@ record() { make check } -if [ "$BEFORE_AFTER" -eq 1 ]; then - # save current HEAD - HEAD=$(git branch --show-current) +# save current HEAD +HEAD=$(git branch --show-current) - # get the numbers before this PR for default and full - cleanup - git checkout $(git merge-base HEAD development) - record "before-default" - - cleanup - scripts/config.py full - record "before-full" - - # get the numbers now for default and full - cleanup - git checkout $HEAD - record "after-default" - - cleanup - scripts/config.py full - record "after-full" -fi - -# get the numbers now for driver-only and reference +# get the numbers before this PR for default and full cleanup -reference_config -record "reference" +git checkout $(git merge-base HEAD development) +record "before-default" cleanup -export MBEDTLS_TEST_OUTCOME_FILE="$PWD/outcome-drivers.csv" -export SKIP_SSL_OPT_COMPAT_SH=1 -tests/scripts/all.sh -k test_psa_crypto_config_accel_hash_use_psa +scripts/config.py full +record "before-full" + +# get the numbers now for default and full +cleanup +git checkout $HEAD +record "after-default" + +cleanup +scripts/config.py full +record "after-full" + # analysis @@ -156,8 +128,5 @@ compare_builds () { } populate_suites -if [ "$BEFORE_AFTER" -eq 1 ]; then - compare_builds before-default after-default - compare_builds before-full after-full -fi -compare_builds reference drivers +compare_builds before-default after-default +compare_builds before-full after-full From 97be6a913ecf7d4436ca7bf923958b5bb5191421 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 9 Nov 2022 22:43:31 +0800 Subject: [PATCH 0666/1574] fix various issues - typo error - replace `ssl->hanshake` with handshake Signed-off-by: Jerry Yu --- library/ssl_client.c | 2 +- library/ssl_debug_helpers.h | 4 ++-- library/ssl_tls.c | 2 +- library/ssl_tls13_client.c | 9 ++++----- library/ssl_tls13_generic.c | 2 +- library/ssl_tls13_server.c | 2 +- tests/opt-testcases/tls13-kex-modes.sh | 2 +- 7 files changed, 11 insertions(+), 12 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index b226cafff..0f0ea1dc5 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -676,7 +676,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->sent_extensions ); #endif *out_len = p - buf; diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index ccdda2a0d..4412f8e21 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -55,9 +55,9 @@ void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int extension_type, const char *extra_msg0, const char *extra_msg1 ); -#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) \ +#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extensions_mask ) \ mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extension_mask, NULL ) + hs_msg_type, extensions_mask, NULL ) #define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index ea8464f0c..20648a166 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -754,7 +754,7 @@ void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, { mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], - extensions_mask & ( 1 << i ) ? "exists" : "does not exists", extra ); + extensions_mask & ( 1 << i ) ? "exists" : "does not exist", extra ); } } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 364e886bc..9940a0e5e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1742,8 +1742,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( - 3, hs_msg_type, ssl->handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS( 3, hs_msg_type, handshake->received_extensions ); cleanup: @@ -2036,7 +2035,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2225,7 +2224,7 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - ssl->handshake->received_extensions ); + handshake->received_extensions ); /* Check that we consumed all the message. */ if( p != end ) @@ -2517,7 +2516,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, - ssl->handshake->received_extensions ); + handshake->received_extensions ); return( 0 ); } diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a39949c1c..f85499889 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -547,7 +547,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE, - ssl->handshake->received_extensions ); + handshake->received_extensions ); } exit: diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 597fbb7e6..3cd03108f 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -1624,7 +1624,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, - ssl->handshake->received_extensions ); + handshake->received_extensions ); mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, diff --git a/tests/opt-testcases/tls13-kex-modes.sh b/tests/opt-testcases/tls13-kex-modes.sh index 2681f61f1..974d513d8 100755 --- a/tests/opt-testcases/tls13-kex-modes.sh +++ b/tests/opt-testcases/tls13-kex-modes.sh @@ -18,7 +18,7 @@ # limitations under the License. # -# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases can be generated by +# DO NOT ADD NEW TEST CASES INTO THIS FILE. The left cases will be generated by # scripts in future(#6280) requires_gnutls_tls1_3 From 89e82e1685e87add62385d100f7d9b428042cdbc Mon Sep 17 00:00:00 2001 From: Nick Child Date: Wed, 9 Nov 2022 10:36:10 -0600 Subject: [PATCH 0667/1574] pkcs7: Add dependecy on MBEDTLS_MD_C Signed-off-by: Nick Child --- include/mbedtls/check_config.h | 3 ++- include/mbedtls/mbedtls_config.h | 3 ++- tests/scripts/all.sh | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index dcb6392f1..e5f8b8975 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -992,7 +992,8 @@ #if defined(MBEDTLS_PKCS7_C) && ( ( !defined(MBEDTLS_ASN1_PARSE_C) ) || \ ( !defined(MBEDTLS_OID_C) ) || ( !defined(MBEDTLS_PK_PARSE_C) ) || \ ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) ||\ - ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || ( !defined(MBEDTLS_BIGNUM_C) ) ) + ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || ( !defined(MBEDTLS_BIGNUM_C) ) \ + ( !defined(MBEDTLS_MD_C) ) ) #error "MBEDTLS_PKCS7_C is defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 45dd2748c..84dcf47ff 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2669,7 +2669,8 @@ * Module: library/pkcs7.c * * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_OID_C, MBEDTLS_PK_PARSE_C, - * MBEDTLS_X509_CRT_PARSE_C MBEDTLS_X509_CRL_PARSE_C, MBEDTLS_BIGNUM_C + * MBEDTLS_X509_CRT_PARSE_C MBEDTLS_X509_CRL_PARSE_C, + * MBEDTLS_BIGNUM_C, MBEDTLS_MD_C * * This module is required for the PKCS7 parsing modules. */ diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 7139fde6b..401afaf15 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1211,6 +1211,7 @@ component_test_crypto_full_no_md () { scripts/config.py unset MBEDTLS_HKDF_C scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_PKCS5_C + scripts/config.py unset MBEDTLS_PKCS7_C scripts/config.py unset MBEDTLS_PKCS12_C # Indirect dependencies scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC @@ -1871,6 +1872,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py unset MBEDTLS_HKDF_C scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_PKCS5_C + scripts/config.py unset MBEDTLS_PKCS7_C scripts/config.py unset MBEDTLS_PKCS12_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA From 360f8e442971fcb8f48820d6138ee4b8405befb9 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 9 Nov 2022 17:27:33 +0000 Subject: [PATCH 0668/1574] Minor improvements to test code script Signed-off-by: David Horstmann --- tests/scripts/generate_test_code.py | 65 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index 6d65986c8..938f24cf4 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -126,33 +126,39 @@ code that is generated or read from helpers and platform files. This script replaces following fields in the template and generates the test source file: -__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS <-- All common code from helpers.function - is substituted here. -__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE <-- Test functions are substituted here - from the input test_suit_xyz.function - file. C preprocessor checks are generated - for the build dependencies specified - in the input file. This script also - generates wrappers for the test - functions with code to expand the - string parameters read from the data - file. -__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE <-- This script enumerates the - expressions in the .data file and - generates code to handle enumerated - expression Ids and return the values. -__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE <-- This script enumerates all - build dependencies and generate - code to handle enumerated build - dependency Id and return status: if - the dependency is defined or not. -__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE <-- This script enumerates the functions - specified in the input test data file - and generates the initializer for the - function table in the template - file. -__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE <-- Platform specific setup and test - dispatch code. +__MBEDTLS_TEST_TEMPLATE__TEST_COMMON_HELPERS + All common code from helpers.function + is substituted here. +__MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE + Test functions are substituted here + from the input test_suit_xyz.function + file. C preprocessor checks are generated + for the build dependencies specified + in the input file. This script also + generates wrappers for the test + functions with code to expand the + string parameters read from the data + file. +__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE + This script enumerates the + expressions in the .data file and + generates code to handle enumerated + expression Ids and return the values. +__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE + This script enumerates all + build dependencies and generate + code to handle enumerated build + dependency Id and return status: if + the dependency is defined or not. +__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE + This script enumerates the functions + specified in the input test data file + and generates the initializer for the + function table in the template + file. +__MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE + Platform specific setup and test + dispatch code. """ @@ -985,10 +991,7 @@ def write_test_source_file(template_file, c_file, snippets): braced = "(?P(?!))" # If not already matched, a "__MBEDTLS_TEST_TEMPLATE__" prefix is invalid. invalid = "(?P__MBEDTLS_TEST_TEMPLATE__)" - placeholder_pattern = re.compile(escaped \ - + "|" + named \ - + "|" + braced \ - + "|" + invalid) + placeholder_pattern = re.compile("|".join([escaped, named, braced, invalid])) with open(template_file, 'r') as template_f, open(c_file, 'w') as c_f: for line_no, line in enumerate(template_f.readlines(), 1): From d21ecd71c0227c39178375c8204f63ff7b5987ec Mon Sep 17 00:00:00 2001 From: ihsinme Date: Tue, 8 Nov 2022 14:30:45 +0300 Subject: [PATCH 0669/1574] dh_genprime: Fix issue where the error code returned by mbedtls_mpi_write_file() is incorrectly reported on failure In 'dh_genprime.c', the following condition can be found inside an 'if' statement: ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) != 0 As the '!=' operator binds closer than the assignment operator ('='), the value assigned to 'ret' will be the boolean result of the comparison (0 or 1) instead of the status code returned by 'mbedtls_mpi_write_file'. This means that the above statement is actually equivalent to: ret = ( mbedtls_mpi_write_file( "P = ", &P, 16, fout ) != 0 ) What we want instead is for the the status code to be assigned to 'ret'. If the value assigned is non-zero, it will be 'truthy' and the 'if' branch will be taken. ( ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) ) != 0 This PR fixes the issue by explicitly specifying the precedence of operations with parentheses. Signed-off-by: ihsinme --- programs/pkey/dh_genprime.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 2e696e574..331838bb4 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -157,8 +157,8 @@ int main( int argc, char **argv ) goto exit; } - if( ( ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) != 0 ) || - ( ret = mbedtls_mpi_write_file( "G = ", &G, 16, fout ) != 0 ) ) + if( ( ( ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) ) != 0 ) || + ( ( ret = mbedtls_mpi_write_file( "G = ", &G, 16, fout ) ) != 0 ) ) { mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret ); fclose( fout ); From 50e5616553b9d3d6f39b2030a6eb6462f2d9921d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 10 Nov 2022 10:07:35 +0000 Subject: [PATCH 0670/1574] Fix typo in check_config.h Signed-off-by: Dave Rodgman --- include/mbedtls/check_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 701bdedc1..e49cf12b7 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -1065,7 +1065,7 @@ #if defined(MBEDTLS_PKCS7_C) && ( ( !defined(MBEDTLS_ASN1_PARSE_C) ) || \ ( !defined(MBEDTLS_OID_C) ) || ( !defined(MBEDTLS_PK_PARSE_C) ) || \ ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) ||\ - ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || ( !defined(MBEDTLS_BIGNUM_C) ) \ + ( !defined(MBEDTLS_X509_CRL_PARSE_C) ) || ( !defined(MBEDTLS_BIGNUM_C) ) || \ ( !defined(MBEDTLS_MD_C) ) ) #error "MBEDTLS_PKCS7_C is defined, but not all prerequisites" #endif From e9c86a100a90196e2560bc1614c53e68b3d71d2a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 11:46:47 +0000 Subject: [PATCH 0671/1574] bignum_mod_raw.py: Added BignumModRawOperation This patch is adding a basic instantance of `BignumModRawOperation` and creates an `BignumModRawOperationArchSplit` class, copying over the implementation of `BignumCoreRawOperationArchSplit`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 2e059b26e..1127ced8d 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -15,8 +15,11 @@ # limitations under the License. from abc import ABCMeta +from typing import Dict, Iterator, List +from . import test_case from . import test_data_generation +from . import bignum_common class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method @@ -48,7 +51,42 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): + #pylint: disable=abstract-method + pass +class BignumModRawOperationArchSplit(BignumModRawOperation): + #pylint: disable=abstract-method + """Common features for bignum core operations where the result depends on + the limb size.""" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + bound_val = max(self.int_a, self.int_b) + self.bits_in_limb = bits_in_limb + self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) + limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs * self.bits_in_limb // 8 + self.hex_digits = 2 * byte_len + if self.bits_in_limb == 32: + self.dependencies = ["MBEDTLS_HAVE_INT32"] + elif self.bits_in_limb == 64: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + else: + raise ValueError("Invalid number of bits in limb!") + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + self.arg_a_int = bignum_common.hex_to_int(self.arg_a) + self.arg_b_int = bignum_common.hex_to_int(self.arg_b) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value, 32).create_test_case() + yield cls(a_value, b_value, 64).create_test_case() # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From a461ece8104d1e50b0d9e041c63fb0218ca265e0 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 12:36:02 +0000 Subject: [PATCH 0672/1574] bignum_mod_raw.py: Refactoring `BignumModRawOperation` This patch modifies the BignumModRawOperation class to provide special access to key members commonly used in tests. It binds the module's getters to conversion functions which enable automatic conversions such as: * hex to int. * zero padding hex strings. * common Montgomery constants such as R, R^2 and R^01 are now be calculated upon access. class `BignumModRawOperationArchSplit` is also updated to utilise the new design. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 83 +++++++++++++++++++-------- 1 file changed, 59 insertions(+), 24 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 1127ced8d..19942ed16 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -53,40 +53,75 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): # BEGIN MERGE SLOT 7 class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): #pylint: disable=abstract-method - pass + """Target for bignum mod_raw test case generation.""" + + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_a=val_a, val_b=val_b) + self.val_n = val_n + self.bits_in_limb = bits_in_limb + + @property + def int_n(self) -> int: + return bignum_common.hex_to_int(self.val_n) + + @property + def boundary(self) -> int: + data_in = [self.int_a, self.int_b, self.int_n] + return max([n for n in data_in if n is not None]) + + @property + def limbs(self) -> int: + return bignum_common.limbs_mpi(self.boundary, self.bits_in_limb) + + @property + def hex_digits(self) -> int: + return 2 * (self.limbs * self.bits_in_limb // 8) + + @property + def hex_n(self) -> str: + return "{:x}".format(self.int_n).zfill(self.hex_digits) + + @property + def hex_a(self) -> str: + return "{:x}".format(self.int_a).zfill(self.hex_digits) + + @property + def hex_b(self) -> str: + return "{:x}".format(self.int_b).zfill(self.hex_digits) + + @property + def r(self) -> int: # pylint: disable=invalid-name + l = bignum_common.limbs_mpi(self.int_n, self.bits_in_limb) + return bignum_common.bound_mpi_limbs(l, self.bits_in_limb) + + @property + def r_inv(self) -> int: + return bignum_common.invmod(self.r, self.int_n) + + @property + def r_sqrt(self) -> int: # pylint: disable=invalid-name + return pow(self.r, 2) class BignumModRawOperationArchSplit(BignumModRawOperation): #pylint: disable=abstract-method - """Common features for bignum core operations where the result depends on + """Common features for bignum mod raw operations where the result depends on the limb size.""" - def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: - super().__init__(val_a, val_b) - bound_val = max(self.int_a, self.int_b) - self.bits_in_limb = bits_in_limb - self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs * self.bits_in_limb // 8 - self.hex_digits = 2 * byte_len - if self.bits_in_limb == 32: - self.dependencies = ["MBEDTLS_HAVE_INT32"] - elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] - else: - raise ValueError("Invalid number of bits in limb!") - self.arg_a = self.arg_a.zfill(self.hex_digits) - self.arg_b = self.arg_b.zfill(self.hex_digits) - self.arg_a_int = bignum_common.hex_to_int(self.arg_a) - self.arg_b_int = bignum_common.hex_to_int(self.arg_b) + limb_sizes = [32, 64] # type: List[int] - def pad_to_limbs(self, val) -> str: - return "{:x}".format(val).zfill(self.hex_digits) + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_n=val_n, val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) + + if bits_in_limb not in self.limb_sizes: + raise ValueError("Invalid number of bits in limb!") + + self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value, 32).create_test_case() - yield cls(a_value, b_value, 64).create_test_case() + for bil in cls.limb_sizes: + yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 5566eff65740025802810e55cdaad026d563c34c Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 7 Nov 2022 16:02:21 +0000 Subject: [PATCH 0673/1574] generate_bignum_tests: Enabled BignumModRaw automatic generation Signed-off-by: Minos Galanakis --- tests/scripts/generate_bignum_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 4ac9210e7..a105203b0 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -66,7 +66,7 @@ from mbedtls_dev import bignum_common # Import modules containing additional test classes # Test function classes in these modules will be registered by # the framework -from mbedtls_dev import bignum_core # pylint: disable=unused-import +from mbedtls_dev import bignum_core, bignum_mod_raw # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): #pylint: disable=abstract-method From 855c228b29ccdb6723608e6089565be318fabd9a Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 11:33:25 +0000 Subject: [PATCH 0674/1574] bignum_mod_raw.py: Moved Classes outside of slots This patch moves `BignumModRawOperation` and `BignumModRawOperationArchSplit` outside of the scaffolding merge slot. It also renames `r_sqrt` property to `r2`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 53 ++++++++++++++------------- 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 19942ed16..1465e3ed7 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -26,31 +26,6 @@ class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' -# BEGIN MERGE SLOT 1 - -# END MERGE SLOT 1 - -# BEGIN MERGE SLOT 2 - -# END MERGE SLOT 2 - -# BEGIN MERGE SLOT 3 - -# END MERGE SLOT 3 - -# BEGIN MERGE SLOT 4 - -# END MERGE SLOT 4 - -# BEGIN MERGE SLOT 5 - -# END MERGE SLOT 5 - -# BEGIN MERGE SLOT 6 - -# END MERGE SLOT 6 - -# BEGIN MERGE SLOT 7 class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" @@ -99,7 +74,7 @@ class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, m return bignum_common.invmod(self.r, self.int_n) @property - def r_sqrt(self) -> int: # pylint: disable=invalid-name + def r2(self) -> int: # pylint: disable=invalid-name return pow(self.r, 2) class BignumModRawOperationArchSplit(BignumModRawOperation): @@ -122,6 +97,32 @@ class BignumModRawOperationArchSplit(BignumModRawOperation): for a_value, b_value in cls.get_value_pairs(): for bil in cls.limb_sizes: yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() +# BEGIN MERGE SLOT 1 + +# END MERGE SLOT 1 + +# BEGIN MERGE SLOT 2 + +# END MERGE SLOT 2 + +# BEGIN MERGE SLOT 3 + +# END MERGE SLOT 3 + +# BEGIN MERGE SLOT 4 + +# END MERGE SLOT 4 + +# BEGIN MERGE SLOT 5 + +# END MERGE SLOT 5 + +# BEGIN MERGE SLOT 6 + +# END MERGE SLOT 6 + +# BEGIN MERGE SLOT 7 + # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 9feb19f98dedd0aa516c38dd83e7f6bccd3fa052 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 10 Nov 2022 12:05:55 +0000 Subject: [PATCH 0675/1574] Use mbedtls_mpi_sint not mbedtls_mpi_uint in mpi_mod_int test Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.function | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 40b23fe63..5c3d776f0 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -981,11 +981,21 @@ void mpi_mod_int( char * input_X, char * input_Y, TEST_EQUAL( Y.n, 1 ); TEST_EQUAL( A.n, 1 ); - /* Convert the MPIs for Y and A to signed mbedtls_mpi_uints */ - mbedtls_mpi_uint y = Y.p[0]; + /* Convert the MPIs for Y and A to (signed) mbedtls_mpi_sints */ + + /* Since we're converting sign+magnitude to two's complement, we lose one + * bit of value in the output. This means there are some values we can't + * represent, e.g. (hex) -A0000000 on 32-bit systems. These are technically + * invalid test cases, so could be considered "won't happen", but they are + * easy to test for, and this helps guard against human error. */ + + mbedtls_mpi_sint y = (mbedtls_mpi_sint) Y.p[0]; + TEST_ASSERT( y >= 0 ); /* If y < 0 here, we can't make negative y */ if( Y.s == -1 ) y = -y; - mbedtls_mpi_uint a = A.p[0]; + + mbedtls_mpi_sint a = (mbedtls_mpi_sint) A.p[0]; + TEST_ASSERT( a >= 0 ); /* Same goes for a */ if( A.s == -1 ) a = -a; From 163d8952b391f00665c3badd7357e6cb1bcfb172 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 10 Nov 2022 12:17:36 +0000 Subject: [PATCH 0676/1574] Add additional (would fail) test cases for mpi_mod_int with 0 remainder Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum.misc.data | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 70b4998e2..0b8aa334a 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1240,7 +1240,7 @@ mpi_mod_int:"":"-1":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_int: 0 (null) % -2 mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE -# CURRENTLY FAILS +# CURRENTLY FAILS - SEE GITHUB ISSUE #6540 #Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 #depends_on:MBEDTLS_HAVE_INT64 #mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 @@ -1248,7 +1248,15 @@ mpi_mod_int:"":"-2":"0":MBEDTLS_ERR_MPI_NEGATIVE_VALUE Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 5178236083361335880 -> 3386266129388798810 mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA4847DCCA48":"2EFE6F1A7D28035A":0 -# CURRENTLY FAILS WHEN MPIS ARE 32-BIT: WHEN FIXED, REMOVE "depends_on" LINE +# CURRENTLY FAILS - SEE GITHUB ISSUE #6540 +#Test mbedtls_mpi_mod_int: 230772460340062999996714233870911201200 % 5178236083361335880 -> 0 +#depends_on:MBEDTLS_HAVE_INT64 +#mpi_mod_int:"AD9D28BF6C4E98FDC2584FEF03A6DFB0":"47DCCA4847DCCA48":"0":0 + +Test mbedtls_mpi_mod_mpi: 230772460340062999996714233870911201200 % 5178236083361335880 -> 0 +mpi_mod_mpi:"AD9D28BF6C4E98FDC2584FEF03A6DFB0":"47DCCA4847DCCA48":"0":0 + +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT (ISSUE #6450): WHEN FIXED, REMOVE "depends_on" LINE Test mbedtls_mpi_mod_int: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 depends_on:MBEDTLS_HAVE_INT64 mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 @@ -1256,6 +1264,14 @@ mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000300000010 % 1205652040 -> 3644370 mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980CEE30A":"47DCCA48":"379BD2":0 +# CURRENTLY FAILS WHEN MPIS ARE 32-BIT (ISSUE #6450): WHEN FIXED, REMOVE "depends_on" LINE +Test mbedtls_mpi_mod_int: 230772460340063000000100500000296355640 % 1205652040 -> 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_int:"AD9D28BF6C4E98FDF156BF0980974738":"47DCCA48":"0":0 + +Test mbedtls_mpi_mod_mpi: 230772460340063000000100500000296355640 % 1205652040 -> 0 +mpi_mod_mpi:"AD9D28BF6C4E98FDF156BF0980974738":"47DCCA48":"0":0 + Base test mbedtls_mpi_exp_mod #1 mpi_exp_mod:"17":"d":"1d":"18":0 From bd2bfa92bd679983c0fff75fe5b39811ab393ca4 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Thu, 10 Nov 2022 14:07:20 +0000 Subject: [PATCH 0677/1574] Add Changelog entry Signed-off-by: Aditya Deshpande --- ChangeLog.d/fix_dh_genprime_error_reporting.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_dh_genprime_error_reporting.txt diff --git a/ChangeLog.d/fix_dh_genprime_error_reporting.txt b/ChangeLog.d/fix_dh_genprime_error_reporting.txt new file mode 100644 index 000000000..1c98947f3 --- /dev/null +++ b/ChangeLog.d/fix_dh_genprime_error_reporting.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix bug in error reporting in dh_genprime.c where upon failure, + the error code returned by mbedtls_mpi_write_file() is overwritten + and therefore not printed. From ebd0caffdf66d57bf64625bb2ec41e031a66aca5 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 10 Nov 2022 15:33:54 +0000 Subject: [PATCH 0678/1574] Fix test memory allocation Fix error in memory allocation in test code, which was triggering an error in test_memory_buffer_allocator. Signed-off-by: Dave Rodgman --- tests/suites/test_suite_pkcs7.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 14a088253..e3961407d 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -75,7 +75,7 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has TEST_ASSERT( file != NULL ); datalen = st.st_size; - data = mbedtls_calloc( datalen, 1 ); + ASSERT_ALLOC( data, datalen ); TEST_ASSERT( data != NULL ); buflen = fread( (void *)data , sizeof( unsigned char ), datalen, file ); @@ -154,7 +154,7 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch TEST_ASSERT( file != NULL ); datalen = st.st_size; - data = ( unsigned char* ) calloc( datalen, sizeof(unsigned char) ); + ASSERT_ALLOC( data, datalen ); buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); TEST_ASSERT( buflen == datalen ); From 0c3f5f14711198f39e6870caf3c57dfc27457d8c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 10 Nov 2022 19:33:25 +0100 Subject: [PATCH 0679/1574] Remove some Python 2 compatibility code Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index 938f24cf4..d994f6bf9 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -220,25 +220,17 @@ class FileWrapper(io.FileIO): :param file_name: File path to open. """ - super(FileWrapper, self).__init__(file_name, 'r') + super().__init__(file_name, 'r') self._line_no = 0 - def next(self): + def __next__(self): """ - Python 2 iterator method. This method overrides base class's - next method and extends the next method to count the line - numbers as each line is read. - - It works for both Python 2 and Python 3 by checking iterator - method name in the base iterator object. + This method overrides base class's __next__ method and extends it + method to count the line numbers as each line is read. :return: Line read from file. """ - parent = super(FileWrapper, self) - if hasattr(parent, '__next__'): - line = parent.__next__() # Python 3 - else: - line = parent.next() # Python 2 # pylint: disable=no-member + line = super().__next__() if line is not None: self._line_no += 1 # Convert byte array to string with correct encoding and @@ -246,9 +238,6 @@ class FileWrapper(io.FileIO): return line.decode(sys.getdefaultencoding()).rstrip() + '\n' return None - # Python 3 iterator method - __next__ = next - def get_line_no(self): """ Gives current line number. From 1d7cc08af1c87c0f5754b466466ddcf24408e0c7 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 10 Nov 2022 19:50:34 +0100 Subject: [PATCH 0680/1574] Add target to generated all .c (and .datax) files Signed-off-by: Gilles Peskine --- tests/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Makefile b/tests/Makefile index 7c08f54e1..28501c90d 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -163,6 +163,7 @@ src/drivers/%.o : src/drivers/%.c $(CC) $(LOCAL_CFLAGS) $(CFLAGS) -o $@ -c $< C_FILES := $(addsuffix .c,$(APPS)) +c: $(C_FILES) # Wildcard target for test code generation: # A .c file is generated for each .data file in the suites/ directory. Each .c From 71565cff3aeaa7f0acb0a019fd646dc0bd67d8d0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 11 Nov 2022 10:37:38 +0000 Subject: [PATCH 0681/1574] Disable PKCS7 for some TLS 1.3 tests Signed-off-by: Dave Rodgman --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 716495e28..d3ad4d92d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3242,6 +3242,7 @@ component_test_tls13_only_psk () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py unset MBEDTLS_PKCS7_C make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, only PSK key exchange mode enabled" @@ -3273,6 +3274,7 @@ component_test_tls13_only_psk_ephemeral () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py unset MBEDTLS_PKCS7_C make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral key exchange mode" @@ -3290,6 +3292,7 @@ component_test_tls13_only_psk_all () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py unset MBEDTLS_PKCS7_C make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" From 5ad4a93596ef3b7ec4d70ade7a30a18149f09efc Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Tue, 9 Aug 2022 14:45:53 +0100 Subject: [PATCH 0682/1574] bignum_mod_raw: Added conversion methods for internal/public data representation Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.c | 21 +++++++++++++++++++++ library/bignum_mod_raw.h | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index a329e86df..97f7731c4 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,7 +127,28 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ) +{ + mbedtls_mpi_uint one = 1; + mbedtls_mpi T; + mbedtls_mpi_init( &T ); + mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, + m->rep.mont.mm, T.p ); + mbedtls_mpi_free( &T ); + return( 0 ); +} +int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ) +{ + mbedtls_mpi T; + mbedtls_mpi_init( &T ); + mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, 1, m->p, m->limbs, + m->rep.mont.mm, T.p ); + mbedtls_mpi_free( &T ); + return( 0 ); +} /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 30648d3cc..38415f415 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -163,7 +163,25 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/** Convert from internal to public (little endian) data presentation + * + * \param X The address of the MPI. + * \param m The address of a modulus. + * + * \return \c 0 if successful. + */ +int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ); +/** Convert from public (little endian) to internal data presentation. + * + * \param X The address of the MPI. + * \param m The address of a modulus. + * + * \return \c 0 if successful. + */ +int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *modulus ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From d9299c388e9bb60166c72e943c704a3d079256bd Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 1 Nov 2022 16:19:07 +0000 Subject: [PATCH 0683/1574] bignum_mod_raw: Refactored Montgomery conversion functions This patch updates the `mbedtls_mpi_mod_raw_conv_xx()` methods as follows: * Renamed for simplicity: conv_fwd -> from_mont_rep, conv_inv -> to_mont_rep. * Uncoupled the dependency on the legaly bignum interface. * `mbedtls_mpi` is no longer used for temporary buffer allocation. Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.c | 42 ++++++++++++++++++++++++++-------------- library/bignum_mod_raw.h | 20 +++++++++++-------- 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 97f7731c4..b43add77d 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,26 +127,38 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ) +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ) { - mbedtls_mpi_uint one = 1; - mbedtls_mpi T; - mbedtls_mpi_init( &T ); - mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, - m->rep.mont.mm, T.p ); - mbedtls_mpi_free( &T ); + mbedtls_mpi_uint *T; + const size_t t_limbs = m->limbs * 2 + 1; + + if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, m->limbs, m->p, m->limbs, + m->rep.mont.mm, T ); + + mbedtls_platform_zeroize( T, t_limbs * ciL ); + mbedtls_free( T ); return( 0 ); } -int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ) +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ) { - mbedtls_mpi T; - mbedtls_mpi_init( &T ); - mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, 1, m->p, m->limbs, - m->rep.mont.mm, T.p ); - mbedtls_mpi_free( &T ); + const mbedtls_mpi_uint one = 1; + const size_t t_limbs = m->limbs * 2 + 1; + mbedtls_mpi_uint *T; + + if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, + m->rep.mont.mm, T ); + + mbedtls_platform_zeroize( T, t_limbs * ciL ); + mbedtls_free( T ); return( 0 ); } /* END MERGE SLOT 7 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 38415f415..f738e917e 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -163,25 +163,29 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -/** Convert from internal to public (little endian) data presentation +/** Convert an MPI into Montgomery form. * * \param X The address of the MPI. - * \param m The address of a modulus. + * Must have the same number of limbs as \p m. + * \param m The address of the modulus, which gives the size of + * the base `R` = 2^(biL*m->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_conv_inv( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ); +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ); -/** Convert from public (little endian) to internal data presentation. +/** Convert an MPI back from Montgomery representation. * * \param X The address of the MPI. - * \param m The address of a modulus. + * Must have the same number of limbs as \p m. + * \param m The address of the modulus, which gives the size of + * the base `R`= 2^(biL*m->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_conv_fwd( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *modulus ); +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From 631b491cbf7de025d4a0c670789ab8b5e42f4e8d Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 7 Nov 2022 15:53:23 +0000 Subject: [PATCH 0684/1574] bignum_tests: Added test for `mbedtls_mpi_mod_raw_to_mont_rep()` Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 4b906751f..026b49d13 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -294,7 +294,43 @@ exit: /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/* BEGIN_CASE */ +void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi N, A, X; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &X ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, X.s ); + TEST_EQUAL( 1, A.s ); + + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A.p ,&m ) ); + + /* Calculated matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &X ); +} +/* END_CASE */ /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From df070d660d6eaee91ba0811894ea1d0ccdad8c48 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 8 Nov 2022 16:19:04 +0000 Subject: [PATCH 0685/1574] bignum_tests: Added test for `mbedtls_mpi_mod_raw_from_mont_rep()` Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 026b49d13..8536e310e 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -324,6 +324,44 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) /* Output is +ve (or zero) */ TEST_EQUAL( 1, A.s ); +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_free( &N ); + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &X ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi N, A, X; + mbedtls_mpi_mod_modulus m; + + mbedtls_mpi_init( &N ); + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &X ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + + /* All of the inputs are +ve (or zero) */ + TEST_EQUAL( 1, X.s ); + TEST_EQUAL( 1, A.s ); + + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A.p ,&m ) ); + + /* Calculated matches expected value */ + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); + + /* Output is +ve (or zero) */ + TEST_EQUAL( 1, A.s ); + exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_mpi_free( &N ); From 47691fb75619044716a3a5f9c356bbf595d5fd70 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 09:02:51 +0000 Subject: [PATCH 0686/1574] bignum_tests: Refactored mpi_mod_raw_to/fromt_mont_rep This patch migrates the tests to use the `mbedtls_test_read_mpi_core()`. Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 82 +++++++++---------- 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 8536e310e..d0ffd27b0 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -297,76 +297,70 @@ exit: /* BEGIN_CASE */ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) { - mbedtls_mpi N, A, X; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; mbedtls_mpi_mod_modulus m; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &X ); + size_t n_limbs, a_limbs, x_limbs, x_bytes; /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, X.s ); - TEST_EQUAL( 1, A.s ); + /* Test that input does not require more limbs than modulo */ + TEST_LE_U(a_limbs, n_limbs); mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A.p ,&m ) ); - - /* Calculated matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, A.s ); + /* Convert from cannonical into Montgomery representation */ + TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A, &m ) ); + /* The result matches expected value */ + ASSERT_COMPARE( A, x_bytes, X, x_bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &X ); + mbedtls_free( N ); + mbedtls_free( A ); + mbedtls_free( X ); } /* END_CASE */ /* BEGIN_CASE */ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) { - mbedtls_mpi N, A, X; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; mbedtls_mpi_mod_modulus m; - - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &X ); + size_t n_limbs, a_limbs, x_limbs, x_bytes; /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, X.s ); - TEST_EQUAL( 1, A.s ); + /* Test that input does not require more limbs than modulo */ + TEST_LE_U(a_limbs, n_limbs); mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N.p, N.n, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A.p ,&m ) ); - - /* Calculated matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &A, &X ) == 0 ); - - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, A.s ); + /* Convert from Montgomery into cannonical representation */ + TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A, &m ) ); + /* The result matches expected value */ + ASSERT_COMPARE( A, x_bytes, X, x_bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &X ); + mbedtls_free( N ); + mbedtls_free( A ); + mbedtls_free( X ); } /* END_CASE */ /* END MERGE SLOT 7 */ From 0cf42200fad5a05b3bf588021c22a5f1a4fed9c9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 11 Nov 2022 16:36:51 +0100 Subject: [PATCH 0687/1574] Fix typo and copypasta Signed-off-by: Gilles Peskine --- tests/scripts/test_generate_test_code.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index 9bf66f1cc..9796463e4 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -682,12 +682,12 @@ exit: @patch("generate_test_code.gen_dependencies") @patch("generate_test_code.gen_function_wrapper") @patch("generate_test_code.parse_function_arguments") - def test_functio_name_on_newline(self, parse_function_arguments_mock, - gen_function_wrapper_mock, - gen_dependencies_mock, - gen_dispatch_mock): + def test_function_name_on_newline(self, parse_function_arguments_mock, + gen_function_wrapper_mock, + gen_dependencies_mock, + gen_dispatch_mock): """ - Test when exit label is present. + Test with line break before the function name. :return: """ parse_function_arguments_mock.return_value = ([], '', []) From 07510f5ba3968d71ec0849e8335c0d7d514dd200 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 11 Nov 2022 16:37:16 +0100 Subject: [PATCH 0688/1574] Allow comments in prototypes of unit test functions Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 38 +++++++- tests/scripts/test_generate_test_code.py | 96 +++++++++++++++++++++ tests/suites/test_suite_psa_crypto.function | 7 +- 3 files changed, 139 insertions(+), 2 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index d994f6bf9..a1eaa957f 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -519,6 +519,41 @@ def generate_function_code(name, code, local_vars, args_dispatch, gen_dependencies(dependencies) return preprocessor_check_start + code + preprocessor_check_end +COMMENT_START_REGEX = re.compile(r'/[*/]') + +def skip_comments(line, stream): + """Remove comments in line. + + If the line contains an unfinished comment, read more lines from stream + until the line that contains the comment. + + :return: The original line with inner comments replaced by spaces. + Trailing comments and whitespace may be removed completely. + """ + pos = 0 + while True: + opening = COMMENT_START_REGEX.search(line, pos) + if not opening: + break + if line[opening.start(0) + 1] == '/': # //... + continuation = line + while continuation.endswith('\\\n'): + # This errors out if the file ends with an unfinished line + # comment. That's acceptable to not complicat the code further. + continuation = next(stream) + return line[:opening.start(0)].rstrip() + '\n' + # Parsing /*...*/, looking for the end + closing = line.find('*/', opening.end(0)) + while closing == -1: + # This errors out if the file ends with an unfinished block + # comment. That's acceptable to not complicat the code further. + line += next(stream) + closing = line.find('*/', opening.end(0)) + pos = closing + 2 + line = (line[:opening.start(0)] + + ' ' * (pos - opening.start(0)) + + line[pos:]) + return re.sub(r' +(\n|\Z)', r'\1', line) def parse_function_code(funcs_f, dependencies, suite_dependencies): """ @@ -538,6 +573,7 @@ def parse_function_code(funcs_f, dependencies, suite_dependencies): # across multiple lines. Here we try to find the start of # arguments list, then remove '\n's and apply the regex to # detect function start. + line = skip_comments(line, funcs_f) up_to_arg_list_start = code + line[:line.find('(') + 1] match = re.match(TEST_FUNCTION_VALIDATION_REGEX, up_to_arg_list_start.replace('\n', ' '), re.I) @@ -546,7 +582,7 @@ def parse_function_code(funcs_f, dependencies, suite_dependencies): name = match.group('func_name') if not re.match(FUNCTION_ARG_LIST_END_REGEX, line): for lin in funcs_f: - line += lin + line += skip_comments(lin, funcs_f) if re.search(FUNCTION_ARG_LIST_END_REGEX, line): break args, local_vars, args_dispatch = parse_function_arguments( diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index 9796463e4..f36675397 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -724,6 +724,102 @@ exit: yes sir yes sir 3 bags full } +''' + self.assertEqual(code, expected) + + @patch("generate_test_code.gen_dispatch") + @patch("generate_test_code.gen_dependencies") + @patch("generate_test_code.gen_function_wrapper") + @patch("generate_test_code.parse_function_arguments") + def test_case_starting_with_comment(self, parse_function_arguments_mock, + gen_function_wrapper_mock, + gen_dependencies_mock, + gen_dispatch_mock): + """ + Test with comments before the function signature + :return: + """ + parse_function_arguments_mock.return_value = ([], '', []) + gen_function_wrapper_mock.return_value = '' + gen_dependencies_mock.side_effect = gen_dependencies + gen_dispatch_mock.side_effect = gen_dispatch + data = '''/* comment */ +/* more + * comment */ +// this is\ +still \ +a comment +void func() +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +/* END_CASE */ +''' + stream = StringIOWrapper('test_suite_ut.function', data) + _, _, code, _ = parse_function_code(stream, [], []) + + expected = '''#line 1 "test_suite_ut.function" + + + +void test_func() +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +''' + self.assertEqual(code, expected) + + @patch("generate_test_code.gen_dispatch") + @patch("generate_test_code.gen_dependencies") + @patch("generate_test_code.gen_function_wrapper") + @patch("generate_test_code.parse_function_arguments") + def test_comment_in_prototype(self, parse_function_arguments_mock, + gen_function_wrapper_mock, + gen_dependencies_mock, + gen_dispatch_mock): + """ + Test with comments in the function prototype + :return: + """ + parse_function_arguments_mock.return_value = ([], '', []) + gen_function_wrapper_mock.return_value = '' + gen_dependencies_mock.side_effect = gen_dependencies + gen_dispatch_mock.side_effect = gen_dispatch + data = ''' +void func( int x, // (line \\ + comment) + int y /* lone closing parenthesis) */ ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +/* END_CASE */ +''' + stream = StringIOWrapper('test_suite_ut.function', data) + _, _, code, _ = parse_function_code(stream, [], []) + + expected = '''#line 1 "test_suite_ut.function" + +void test_func( int x, + int y ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} ''' self.assertEqual(code, expected) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 779f594dc..ad1ec8c68 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -1412,6 +1412,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ +/* Construct and attempt to import a large unstructured key. */ void import_large_key( int type_arg, int byte_size_arg, int expected_status_arg ) { @@ -1468,6 +1469,9 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ASN1_WRITE_C */ +/* Import an RSA key with a valid structure (but not valid numbers + * inside, beyond having sensible size and parity). This is expected to + * fail for large keys. */ void import_rsa_made_up( int bits_arg, int keypair, int expected_status_arg ) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -1513,6 +1517,7 @@ void import_export( data_t *data, int expected_bits, int export_size_delta, int expected_export_status_arg, + /*whether reexport must give the original input exactly*/ int canonical_input ) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -1617,7 +1622,7 @@ exit: /* BEGIN_CASE */ void import_export_public_key( data_t *data, - int type_arg, + int type_arg, // key pair or public key int alg_arg, int lifetime_arg, int export_size_delta, From a252f6b24c95322617059a2ba61bc691cb63df19 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 19:23:53 +0000 Subject: [PATCH 0689/1574] bignum_mod_raw.py: Added BignumModRawConvertToMont This patch adds test class for 'mpi_mod_raw_to_mont_rep()`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 88 +++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 1465e3ed7..cea7ec78d 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -122,7 +122,95 @@ class BignumModRawOperationArchSplit(BignumModRawOperation): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +class BignumModRawConvertToMont(BignumModRawOperationArchSplit): + """ Test cases for mpi_mod_raw_to_mont_rep(). """ + test_function = "mpi_mod_raw_to_mont_rep" + test_name = "Convert into Mont: " + + test_data_moduli = ["b", + "fd", + "eeff99aa37", + "eeff99aa11", + "800000000005", + "7fffffffffffffff", + "80fe000a10000001", + "25a55a46e5da99c71c7", + "1058ad82120c3a10196bb36229c1", + "7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f" + "18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a" + "98df75154f8c914a282f8b", + "8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63", + "ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f" + "2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a6" + "4d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2" + "deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d" + "6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a0" + "7e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d389" + "8c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6" + "bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3a" + "d4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181d" + "b8896f33bb12e6ef73f12ec5c5ea7a8a337" + ] + + test_input_numbers = ["0", + "1", + "97", + "f5", + "6f5c3", + "745bfe50f7", + "ffa1f9924123", + "334a8b983c79bd", + "5b84f632b58f3461", + "19acd15bc38008e1", + "ffffffffffffffff", + "54ce6a6bb8247fa0427cfc75a6b0599", + "fecafe8eca052f154ce6a6bb8247fa019558bfeecce9bb9", + "a87d7a56fa4bfdc7da42ef798b9cf6843d4c54794698cb14d72" + "851dec9586a319f4bb6d5695acbd7c92e7a42a5ede6972adcbc" + "f68425265887f2d721f462b7f1b91531bac29fa648facb8e3c6" + "1bd5ae42d5a59ba1c89a95897bfe541a8ce1d633b98f379c481" + "6f25e21f6ac49286b261adb4b78274fe5f61c187581f213e84b" + "2a821e341ef956ecd5de89e6c1a35418cd74a549379d2d4594a" + "577543147f8e35b3514e62cf3e89d1156cdc91ab5f4c928fbd6" + "9148c35df5962fed381f4d8a62852a36823d5425f7487c13a12" + "523473fb823aa9d6ea5f42e794e15f2c1a8785cf6b7d51a4617" + "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" + ] + + descr_tpl = '{} #{} N: \"{}\" A: \"{}\".' + + def result(self) -> List[str]: + return [self.hex_x] + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.hex_n, + self.hex_a, + self.hex_x]] + + def description(self) -> str: + return self.descr_tpl.format(self.test_name, + self.count, + self.int_n, + self.int_a) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for bil in [32, 64]: + for n in cls.test_data_moduli: + for i in cls.test_input_numbers: + # Skip invalid combinations where A.limbs > N.limbs + if bignum_common.hex_to_int(i) > bignum_common.hex_to_int(n): + continue + yield cls(n, i, bits_in_limb=bil).create_test_case() + + @property + def x(self) -> int: # pylint: disable=invalid-name + return (self.int_a * self.r) % self.int_n + + @property + def hex_x(self) -> str: + return "{:x}".format(self.x).zfill(self.hex_digits) # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 50de073c84a5cc0946a87dddc457b3d125cb5ac1 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 9 Nov 2022 19:36:16 +0000 Subject: [PATCH 0690/1574] bignum_mod_raw.py: Added BignumModRawConvertfromMont This patch adds test class for 'mpi_mod_raw_from_mont_rep()`. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index cea7ec78d..bd694a608 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -211,6 +211,37 @@ class BignumModRawConvertToMont(BignumModRawOperationArchSplit): @property def hex_x(self) -> str: return "{:x}".format(self.x).zfill(self.hex_digits) + +class BignumModRawConvertFromMont(BignumModRawConvertToMont): + """ Test cases for mpi_mod_raw_from_mont_rep(). """ + + test_function = "mpi_mod_raw_from_mont_rep" + test_name = "Convert from Mont: " + + test_input_numbers = ["0", + "1", + "3ca", + "539ed428", + "7dfe5c6beb35a2d6", + "dca8de1c2adfc6d7aafb9b48e", + "a7d17b6c4be72f3d5c16bf9c1af6fc933", + "2fec97beec546f9553142ed52f147845463f579", + "378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f", + "b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395a" + "b3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675" + "487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57" + "d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea" + "41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab3" + "58d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c" + "6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8" + "de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74" + "e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32" + "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" + ] + + @property + def x(self): # pylint: disable=invalid-name + return (self.int_a * self.r_inv) % self.int_n # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 0e97d4d16dcf4d90fdac381a3c0ec7cd68fd29f2 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 24 Oct 2022 11:12:51 +0000 Subject: [PATCH 0691/1574] Add early data indication to client side Add fields to mbedtls_ssl_context Add write early data indication function Add check whether write early data indication Add early data option to ssl_client2 Add test cases for early data Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 4 ++++ include/mbedtls/ssl.h | 16 ++++++++++++++ library/ssl_misc.h | 19 ++++++++++++++++ library/ssl_tls.c | 9 ++++++++ library/ssl_tls13_client.c | 39 +++++++++++++++++++++++---------- library/ssl_tls13_generic.c | 35 ++++++++++++++++++++++++++++++ programs/ssl/ssl_client2.c | 42 ++++++++++++++++++++++++++++++++++++ tests/configs/tls13-only.h | 1 + tests/ssl-opt.sh | 18 ++++++++++++++++ 9 files changed, 172 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 170cbebbe..f1bb52770 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -112,6 +112,10 @@ #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +#endif + +#if !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ + !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) #undef MBEDTLS_SSL_EARLY_DATA #endif diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 01ede4088..47ce3c695 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -332,6 +332,9 @@ #define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 #define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 +#define MBEDTLS_SSL_EARLY_DATA_OFF 0 +#define MBEDTLS_SSL_EARLY_DATA_ON 1 + #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 @@ -801,6 +804,11 @@ typedef struct mbedtls_ssl_key_cert mbedtls_ssl_key_cert; typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) +#define MBEDTLS_SSL_EARLY_DATA_NOT_SENT 0 +#define MBEDTLS_SSL_EARLY_DATA_REJECTED 1 +#define MBEDTLS_SSL_EARLY_DATA_ACCEPTED 2 +#endif /** * \brief Callback type: server-side session cache getter * @@ -1783,6 +1791,13 @@ struct mbedtls_ssl_context * and #MBEDTLS_SSL_CID_DISABLED. */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ +#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) + /* + * early data request state + */ + int MBEDTLS_PRIVATE(early_data_status); +#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ + /** Callback to export key block and master secret */ mbedtls_ssl_export_keys_t *MBEDTLS_PRIVATE(f_export_keys); void *MBEDTLS_PRIVATE(p_export_keys); /*!< context for key export callback */ @@ -1936,6 +1951,7 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); + #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index ad8754cac..2b1f90f4f 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -987,6 +987,15 @@ struct mbedtls_ssl_handshake_params } tls13_master_secrets; mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; + +#if defined(MBEDTLS_SSL_EARLY_DATA) + mbedtls_ssl_tls13_early_secrets early_secrets; + + int early_data; /*!< Early data indication: + * 0 -- MBEDTLS_SSL_EARLY_DATA_DISABLED (for no early data), and + * 1 -- MBEDTLS_SSL_EARLY_DATA_ENABLED (for use early data) + */ +#endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) @@ -1480,6 +1489,11 @@ int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_SESSION_TICKETS) +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ); +#endif + #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL @@ -2046,6 +2060,11 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( size_t *out_len ); #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_SSL_EARLY_DATA) +int mbedtls_ssl_tls13_write_early_data_ext( + mbedtls_ssl_context *ssl, + unsigned char *buf, const unsigned char *end, size_t *olen); +#endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index da90b2350..945a2e9bd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1872,6 +1872,15 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) +int mbedtls_ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) +{ + mbedtls_ssl_session *session = ssl->session_negotiate; + return( ssl->handshake->resume && + session != NULL && session->ticket != NULL ); +} +#endif + #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 9940a0e5e..0d24474ec 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -693,13 +693,6 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) -static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) -{ - mbedtls_ssl_session *session = ssl->session_negotiate; - return( ssl->handshake->resume && - session != NULL && session->ticket != NULL ); -} - MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *hash_alg, @@ -708,7 +701,7 @@ static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, { mbedtls_ssl_session *session = ssl->session_negotiate; - if( !ssl_tls13_has_configured_ticket( ssl ) ) + if( !mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); @@ -726,7 +719,7 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, mbedtls_ssl_session *session = ssl->session_negotiate; - if( !ssl_tls13_has_configured_ticket( ssl ) ) + if( !mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); @@ -773,7 +766,7 @@ static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) { int configured_psk_count = 0; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl_tls13_has_configured_ticket( ssl ) ) + if( mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket is configured" ) ); configured_psk_count++; @@ -1093,7 +1086,8 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( selected_identity == 0 && ssl_tls13_has_configured_ticket( ssl ) ) + if( selected_identity == 0 && + mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) { ret = ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ); } @@ -1160,6 +1154,29 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, } #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) + if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && + ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 || + mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) && + ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) + { + ret = mbedtls_ssl_tls13_write_early_data_ext( ssl, p, end, &ext_len ); + if( ret != 0 ) + return( ret ); + p += ext_len; + + ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_ON; + /* We're using rejected once we send the EarlyData extension, + and change it to accepted upon receipt of the server extension. */ + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_REJECTED; + } + else + { + MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write early_data extension" ) ); + ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_OFF; + } +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* For PSK-based key exchange we need the pre_shared_key extension * and the psk_key_exchange_modes extension. diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index f85499889..875748753 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1374,6 +1374,41 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ +/* Early Data Extension + * + * struct {} Empty; + * + * struct { + * select ( Handshake.msg_type ) { + * case new_session_ticket: uint32 max_early_data_size; + * case client_hello: Empty; + * case encrypted_extensions: Empty; + * }; + * } EarlyDataIndication; + */ +#if defined(MBEDTLS_SSL_EARLY_DATA) +int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len ) +{ + unsigned char *p = buf; + *out_len = 0; + ((void) ssl); + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_DEBUG_MSG( + 3, ( "client hello, adding early_data extension" ) ); + + MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EARLY_DATA, p, 0 ); + /* Write length of the early data indication extension */ + MBEDTLS_PUT_UINT16_BE( 0, p, 2 ); + + *out_len = 4; + return( 0 ); +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /* Reset SSL context and update hash for handling HRR. * * Replace Transcript-Hash(X) by diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 56efb3c17..9685e69d4 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -344,6 +344,14 @@ int main( void ) #define USAGE_SERIALIZATION "" #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) +#define USAGE_EARLY_DATA \ + " early_data=%%d default: 0 (disabled)\n" \ + " options: 0 (disabled), 1 (enabled)\n" +#else +#define USAGE_EARLY_DATA "" +#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_PROTO_TLS1_3 */ + #define USAGE_KEY_OPAQUE_ALGS \ " key_opaque_algs=%%s Allowed opaque key algorithms.\n" \ " comma-separated pair of values among the following:\n" \ @@ -533,6 +541,7 @@ struct options * after renegotiation */ int reproducible; /* make communication reproducible */ int skip_close_notify; /* skip sending the close_notify alert */ + int early_data; /* support for early data */ int query_config_mode; /* whether to read config */ int use_srtp; /* Support SRTP */ int force_srtp_profile; /* SRTP protection profile to use or all */ @@ -1189,7 +1198,24 @@ int main( int argc, char *argv[] ) default: goto usage; } } + #if defined(MBEDTLS_SSL_PROTO_TLS1_3) +#if defined(MBEDTLS_SSL_EARLY_DATA) + else if( strcmp( p, "early_data" ) == 0 ) + { + switch( atoi( q ) ) + { + case 0: + opt.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED; + break; + case 1: + opt.early_data = MBEDTLS_SSL_EARLY_DATA_ENABLED; + break; + default: goto usage; + } + } +#endif /* MBEDTLS_SSL_EARLY_DATA */ + else if( strcmp( p, "tls13_kex_modes" ) == 0 ) { if( strcmp( q, "psk" ) == 0 ) @@ -2091,6 +2117,10 @@ int main( int argc, char *argv[] ) if( opt.max_version != DFL_MAX_VERSION ) mbedtls_ssl_conf_max_tls_version( &conf, opt.max_version ); +#if defined(MBEDTLS_SSL_EARLY_DATA) + mbedtls_ssl_tls13_conf_early_data( &conf, opt.early_data ); +#endif /* MBEDTLS_SSL_EARLY_DATA */ + if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) { mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", @@ -2467,6 +2497,12 @@ int main( int argc, char *argv[] ) } } +#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) + /* TODO: We can log the actual early data status after we define + * the API mbedtls_ssl_get_early_data_status. + */ +#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ + #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate @@ -3177,6 +3213,12 @@ reconnect: mbedtls_printf( " ok\n" ); +#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) + /* TODO: We can log the actual early data status when reconnect + * after we define the API mbedtls_ssl_get_early_data_status. + */ +#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ + goto send_request; } diff --git a/tests/configs/tls13-only.h b/tests/configs/tls13-only.h index 7483f1cd9..a4dcb92ba 100644 --- a/tests/configs/tls13-only.h +++ b/tests/configs/tls13-only.h @@ -24,6 +24,7 @@ /* Enable TLS 1.3 and core 1.3 features */ #define MBEDTLS_SSL_PROTO_TLS1_3 +#define MBEDTLS_SSL_EARLY_DATA #define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE /* Disable TLS 1.2 and 1.2-specific features */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 9eb925aa1..14123fa9a 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -80,12 +80,14 @@ fi if [ -n "${OPENSSL_NEXT:-}" ]; then O_NEXT_SRV="$OPENSSL_NEXT s_server -www -cert data_files/server5.crt -key data_files/server5.key" + O_NEXT_SRV_NO_WWW="$OPENSSL_NEXT s_server -cert data_files/server5.crt -key data_files/server5.key" O_NEXT_SRV_NO_CERT="$OPENSSL_NEXT s_server -www " O_NEXT_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client -CAfile data_files/test-ca_cat12.crt" O_NEXT_CLI_NO_CERT="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client" else O_NEXT_SRV=false O_NEXT_SRV_NO_CERT=false + O_NEXT_SRV_NO_WWW=false O_NEXT_CLI_NO_CERT=false O_NEXT_CLI=false fi @@ -1690,6 +1692,7 @@ fi if [ -n "${OPENSSL_NEXT:-}" ]; then O_NEXT_SRV="$O_NEXT_SRV -accept $SRV_PORT" O_NEXT_SRV_NO_CERT="$O_NEXT_SRV_NO_CERT -accept $SRV_PORT" + O_NEXT_SRV_NO_WWW="$O_NEXT_SRV_NO_WWW -accept $SRV_PORT" O_NEXT_CLI="$O_NEXT_CLI -connect 127.0.0.1:+SRV_PORT" O_NEXT_CLI_NO_CERT="$O_NEXT_CLI_NO_CERT -connect 127.0.0.1:+SRV_PORT" fi @@ -13039,6 +13042,21 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" +requires_openssl_next +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3, ext PSK, early data" \ + "$O_NEXT_SRV_NO_WWW -msg -debug -tls1_3 -early_data -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI nbio=2 debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ + 1 \ + -c "=> write client hello" \ + -c "client hello, adding early_data extension" \ + -c "<= write client hello" \ + -c "client state: MBEDTLS_SSL_SERVER_HELLO" + # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_MEMORY_DEBUG From 911c0cc4f0971e0cc77685359cc8b649bb147e4f Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 31 Oct 2022 09:35:32 +0000 Subject: [PATCH 0692/1574] Fix format issues in comments Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 2 +- library/ssl_tls13_generic.c | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 47ce3c695..6369de0a9 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1793,7 +1793,7 @@ struct mbedtls_ssl_context #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) /* - * early data request state + * early data request status */ int MBEDTLS_PRIVATE(early_data_status); #endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 875748753..a27315102 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1375,8 +1375,6 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ /* Early Data Extension - * - * struct {} Empty; * * struct { * select ( Handshake.msg_type ) { From 893ad8196689e0c75ec3a318bee1270da724222e Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Mon, 31 Oct 2022 10:38:10 +0000 Subject: [PATCH 0693/1574] Remove useless early_secrets field Signed-off-by: Xiaokang Qian --- library/ssl_misc.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 2b1f90f4f..52dbb3b17 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -989,8 +989,6 @@ struct mbedtls_ssl_handshake_params mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_tls13_early_secrets early_secrets; - int early_data; /*!< Early data indication: * 0 -- MBEDTLS_SSL_EARLY_DATA_DISABLED (for no early data), and * 1 -- MBEDTLS_SSL_EARLY_DATA_ENABLED (for use early data) From b781a2323c8aa878b3370a6335479940b6d9483c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 1 Nov 2022 07:39:46 +0000 Subject: [PATCH 0694/1574] Move ssl_tls13_has_configured_ticket() back to tls13 client Signed-off-by: Xiaokang Qian --- library/ssl_misc.h | 5 ----- library/ssl_tls.c | 9 --------- library/ssl_tls13_client.c | 18 +++++++++++++----- 3 files changed, 13 insertions(+), 19 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 52dbb3b17..901c1049d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1487,11 +1487,6 @@ int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ -#if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_SESSION_TICKETS) -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ); -#endif - #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 945a2e9bd..da90b2350 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1872,15 +1872,6 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) -int mbedtls_ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) -{ - mbedtls_ssl_session *session = ssl->session_negotiate; - return( ssl->handshake->resume && - session != NULL && session->ticket != NULL ); -} -#endif - #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) { diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0d24474ec..bb7e14bea 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -693,6 +693,14 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) +{ + mbedtls_ssl_session *session = ssl->session_negotiate; + return( ssl->handshake->resume && + session != NULL && session->ticket != NULL ); +} + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *hash_alg, @@ -701,7 +709,7 @@ static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, { mbedtls_ssl_session *session = ssl->session_negotiate; - if( !mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) + if( !ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); @@ -719,7 +727,7 @@ static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, mbedtls_ssl_session *session = ssl->session_negotiate; - if( !mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) + if( !ssl_tls13_has_configured_ticket( ssl ) ) return( -1 ); *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); @@ -766,7 +774,7 @@ static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) { int configured_psk_count = 0; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) + if( ssl_tls13_has_configured_ticket( ssl ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket is configured" ) ); configured_psk_count++; @@ -1087,7 +1095,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_SESSION_TICKETS) if( selected_identity == 0 && - mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) + ssl_tls13_has_configured_ticket( ssl ) ) { ret = ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ); } @@ -1157,7 +1165,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 || - mbedtls_ssl_tls13_has_configured_ticket( ssl ) ) && + ssl_tls13_has_configured_ticket( ssl ) ) && ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) { ret = mbedtls_ssl_tls13_write_early_data_ext( ssl, p, end, &ext_len ); From 338f7276835fa1543de883017c8dc7802b567521 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 2 Nov 2022 07:18:30 +0000 Subject: [PATCH 0695/1574] Move EARLY_DATA_OFF/ON guard to ssl_misc.h Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 3 --- library/ssl_misc.h | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 6369de0a9..8c4985987 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -332,9 +332,6 @@ #define MBEDTLS_SSL_EARLY_DATA_DISABLED 0 #define MBEDTLS_SSL_EARLY_DATA_ENABLED 1 -#define MBEDTLS_SSL_EARLY_DATA_OFF 0 -#define MBEDTLS_SSL_EARLY_DATA_ON 1 - #define MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED 0 #define MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED 1 diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 901c1049d..d454ebb51 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -77,6 +77,10 @@ /* Faked handshake message identity for HelloRetryRequest. */ #define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) +/* Early data indication sent or not */ +#define MBEDTLS_SSL_EARLY_DATA_OFF 0 +#define MBEDTLS_SSL_EARLY_DATA_ON 1 + /* * Internal identity of handshake extensions */ From 76332816c7a29d2f5f3e8a623fd4b9712caead08 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 2 Nov 2022 07:22:48 +0000 Subject: [PATCH 0696/1574] Define the EARLY_DATA_STATUS Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 7 ++++--- library/ssl_tls13_client.c | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 8c4985987..92ab1a390 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -802,9 +802,10 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) -#define MBEDTLS_SSL_EARLY_DATA_NOT_SENT 0 -#define MBEDTLS_SSL_EARLY_DATA_REJECTED 1 -#define MBEDTLS_SSL_EARLY_DATA_ACCEPTED 2 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED 2 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 3 #endif /** * \brief Callback type: server-side session cache getter diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index bb7e14bea..8879c44af 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1176,7 +1176,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_ON; /* We're using rejected once we send the EarlyData extension, and change it to accepted upon receipt of the server extension. */ - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_REJECTED; + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; } else { From ecc2948f211627acb21d4d9b7b003543f84f0692 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 2 Nov 2022 07:52:47 +0000 Subject: [PATCH 0697/1574] Fix format issues Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 1 - library/ssl_misc.h | 7 ++++--- library/ssl_tls13_client.c | 8 +++----- library/ssl_tls13_generic.c | 5 ++--- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 92ab1a390..f1d16bc60 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1949,7 +1949,6 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); - #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index d454ebb51..581e1534c 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2058,9 +2058,10 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( #endif /* MBEDTLS_ECDH_C */ #if defined(MBEDTLS_SSL_EARLY_DATA) -int mbedtls_ssl_tls13_write_early_data_ext( - mbedtls_ssl_context *ssl, - unsigned char *buf, const unsigned char *end, size_t *olen); +int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len ); #endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 8879c44af..c019db2fa 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -693,7 +693,6 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) -MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) { mbedtls_ssl_session *session = ssl->session_negotiate; @@ -1094,8 +1093,7 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( selected_identity == 0 && - ssl_tls13_has_configured_ticket( ssl ) ) + if( selected_identity == 0 && ssl_tls13_has_configured_ticket( ssl ) ) { ret = ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ); } @@ -1174,8 +1172,8 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, p += ext_len; ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_ON; - /* We're using rejected once we send the EarlyData extension, - and change it to accepted upon receipt of the server extension. */ + /* Initializes the status to `rejected`. Changes it to `accepted` + * when `early_data` is received in EncryptedExtesion. */ ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; } else diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index a27315102..04790387a 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1374,11 +1374,11 @@ cleanup: #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ -/* Early Data Extension +/* Early Data Indication Extension * * struct { * select ( Handshake.msg_type ) { - * case new_session_ticket: uint32 max_early_data_size; + * ... * case client_hello: Empty; * case encrypted_extensions: Empty; * }; @@ -1399,7 +1399,6 @@ int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, 3, ( "client hello, adding early_data extension" ) ); MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EARLY_DATA, p, 0 ); - /* Write length of the early data indication extension */ MBEDTLS_PUT_UINT16_BE( 0, p, 2 ); *out_len = 4; From b0c32d8b20d729cad83cb786bf2c1cca7a8fde4c Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 2 Nov 2022 10:51:13 +0000 Subject: [PATCH 0698/1574] Update early data test cases Signed-off-by: Xiaokang Qian --- tests/ssl-opt.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 14123fa9a..868de81d2 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -80,14 +80,14 @@ fi if [ -n "${OPENSSL_NEXT:-}" ]; then O_NEXT_SRV="$OPENSSL_NEXT s_server -www -cert data_files/server5.crt -key data_files/server5.key" - O_NEXT_SRV_NO_WWW="$OPENSSL_NEXT s_server -cert data_files/server5.crt -key data_files/server5.key" + O_NEXT_SRV_EARLY_DATA="$OPENSSL_NEXT s_server -early_data -cert data_files/server5.crt -key data_files/server5.key" O_NEXT_SRV_NO_CERT="$OPENSSL_NEXT s_server -www " O_NEXT_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client -CAfile data_files/test-ca_cat12.crt" O_NEXT_CLI_NO_CERT="echo 'GET / HTTP/1.0' | $OPENSSL_NEXT s_client" else O_NEXT_SRV=false O_NEXT_SRV_NO_CERT=false - O_NEXT_SRV_NO_WWW=false + O_NEXT_SRV_EARLY_DATA=false O_NEXT_CLI_NO_CERT=false O_NEXT_CLI=false fi @@ -1692,7 +1692,7 @@ fi if [ -n "${OPENSSL_NEXT:-}" ]; then O_NEXT_SRV="$O_NEXT_SRV -accept $SRV_PORT" O_NEXT_SRV_NO_CERT="$O_NEXT_SRV_NO_CERT -accept $SRV_PORT" - O_NEXT_SRV_NO_WWW="$O_NEXT_SRV_NO_WWW -accept $SRV_PORT" + O_NEXT_SRV_EARLY_DATA="$O_NEXT_SRV_EARLY_DATA -accept $SRV_PORT" O_NEXT_CLI="$O_NEXT_CLI -connect 127.0.0.1:+SRV_PORT" O_NEXT_CLI_NO_CERT="$O_NEXT_CLI_NO_CERT -connect 127.0.0.1:+SRV_PORT" fi @@ -13049,8 +13049,8 @@ requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_EARLY_DATA run_test "TLS 1.3, ext PSK, early data" \ - "$O_NEXT_SRV_NO_WWW -msg -debug -tls1_3 -early_data -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI nbio=2 debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ + "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ 1 \ -c "=> write client hello" \ -c "client hello, adding early_data extension" \ From 01323a46c6f7e8a2b39b78a3458b456d88c41be6 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 3 Nov 2022 02:27:35 +0000 Subject: [PATCH 0699/1574] Add session ticket related check when send early data Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index c019db2fa..9434c2b08 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -700,6 +700,18 @@ static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) session != NULL && session->ticket != NULL ); } +#if defined(MBEDTLS_SSL_EARLY_DATA) +static int ssl_tls13_early_data_ticket_verify( mbedtls_ssl_context *ssl ) +{ + mbedtls_ssl_session *session = ssl->session_negotiate; + return( ssl->handshake->resume && + session != NULL && session->ticket != NULL && + session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + mbedtls_ssl_tls13_cipher_suite_is_offered( + ssl, session->ciphersuite ) ); +} +#endif + MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, psa_algorithm_t *hash_alg, @@ -1162,8 +1174,11 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 || - ssl_tls13_has_configured_ticket( ssl ) ) && + ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + || ssl_tls13_early_data_ticket_verify( ssl ) +#endif + ) && ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) { ret = mbedtls_ssl_tls13_write_early_data_ext( ssl, p, end, &ext_len ); From a341225fd03a96051b482e0fd64623c464885864 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Fri, 4 Nov 2022 10:13:19 +0000 Subject: [PATCH 0700/1574] Change function name ssl_tls13_early_data_has_valid_ticket Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 9434c2b08..b539f8ff4 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -701,7 +701,7 @@ static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_SSL_EARLY_DATA) -static int ssl_tls13_early_data_ticket_verify( mbedtls_ssl_context *ssl ) +static int ssl_tls13_early_data_has_valid_ticket( mbedtls_ssl_context *ssl ) { mbedtls_ssl_session *session = ssl->session_negotiate; return( ssl->handshake->resume && @@ -1176,7 +1176,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 #if defined(MBEDTLS_SSL_SESSION_TICKETS) - || ssl_tls13_early_data_ticket_verify( ssl ) + || ssl_tls13_early_data_has_valid_ticket( ssl ) #endif ) && ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) From f447e8a8d38730cb0973888cfd1cce818942c290 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 8 Nov 2022 07:02:27 +0000 Subject: [PATCH 0701/1574] Address comments base on reviews Improve early data indication check Update test case to gnutls server Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 23 ++++++++++++++++------- library/ssl_debug_helpers.h | 5 +++++ library/ssl_misc.h | 7 ------- library/ssl_tls13_client.c | 22 ++++++++++++---------- tests/ssl-opt.sh | 14 +++++++------- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index f1d16bc60..080474613 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -802,11 +802,23 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) -#define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED 2 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 3 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT 2 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED 3 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 4 #endif + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) + +typedef enum +{ + MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA = 1, + MBEDTLS_SSL_TICKET_ALLOW_DHE_RESUMPTION = 2, + MBEDTLS_SSL_TICKET_ALLOW_PSK_RESUMPTION = 4, +} mbedtls_ssl_ticket_flags; + +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** * \brief Callback type: server-side session cache getter * @@ -1790,9 +1802,6 @@ struct mbedtls_ssl_context #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) - /* - * early data request status - */ int MBEDTLS_PRIVATE(early_data_status); #endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 4412f8e21..9efbbbcd2 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -33,6 +33,11 @@ const char *mbedtls_ssl_states_str( mbedtls_ssl_states in ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +const char *mbedtls_ssl_ticket_flags_str( mbedtls_ssl_ticket_flags in ); +#endif /* defined(MBEDTLS_SSL_PROTO_TLS1_3) && + defined(MBEDTLS_SSL_SESSION_TICKETS) */ + const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in ); const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 581e1534c..342cabb3a 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -991,13 +991,6 @@ struct mbedtls_ssl_handshake_params } tls13_master_secrets; mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; - -#if defined(MBEDTLS_SSL_EARLY_DATA) - int early_data; /*!< Early data indication: - * 0 -- MBEDTLS_SSL_EARLY_DATA_DISABLED (for no early data), and - * 1 -- MBEDTLS_SSL_EARLY_DATA_ENABLED (for use early data) - */ -#endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index b539f8ff4..46c7c4589 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -705,8 +705,8 @@ static int ssl_tls13_early_data_has_valid_ticket( mbedtls_ssl_context *ssl ) { mbedtls_ssl_session *session = ssl->session_negotiate; return( ssl->handshake->resume && - session != NULL && session->ticket != NULL && session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ( session->ticket_flags & MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA ) && mbedtls_ssl_tls13_cipher_suite_is_offered( ssl, session->ciphersuite ) ); } @@ -1174,11 +1174,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 1 -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - || ssl_tls13_early_data_has_valid_ticket( ssl ) -#endif - ) && + ssl_tls13_early_data_has_valid_ticket( ssl ) && ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) { ret = mbedtls_ssl_tls13_write_early_data_ext( ssl, p, end, &ext_len ); @@ -1186,15 +1182,14 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; - ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_ON; - /* Initializes the status to `rejected`. Changes it to `accepted` + /* Initializes the status to `indication sent`. Changes it to `accepted` * when `early_data` is received in EncryptedExtesion. */ - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT; } else { MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write early_data extension" ) ); - ssl->handshake->early_data = MBEDTLS_SSL_EARLY_DATA_OFF; + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT; } #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -2543,6 +2538,13 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, switch( extension_type ) { + case MBEDTLS_TLS_EXT_EARLY_DATA: + MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); + if( extension_data_len == 4 && ssl->session != NULL) + ssl->session->ticket_flags |= + MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA; + break; + default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 868de81d2..b6c3982d8 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13042,15 +13042,15 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" -requires_openssl_next -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 +requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3, ext PSK, early data" \ - "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +run_test "TLS 1.3: NewSessionTicket: early data, m->G" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --earlydata --disable-client-cert" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1" \ 1 \ -c "=> write client hello" \ -c "client hello, adding early_data extension" \ From a042b8406d0ec8489eceff88e27c5583577bab26 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 01:59:33 +0000 Subject: [PATCH 0702/1574] Address some format issues Signed-off-by: Xiaokang Qian --- library/ssl_misc.h | 4 ---- library/ssl_tls13_client.c | 8 +++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 342cabb3a..4d7f63547 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -77,10 +77,6 @@ /* Faked handshake message identity for HelloRetryRequest. */ #define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) -/* Early data indication sent or not */ -#define MBEDTLS_SSL_EARLY_DATA_OFF 0 -#define MBEDTLS_SSL_EARLY_DATA_ON 1 - /* * Internal identity of handshake extensions */ diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 46c7c4589..f68b24080 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1182,8 +1182,10 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; - /* Initializes the status to `indication sent`. Changes it to `accepted` - * when `early_data` is received in EncryptedExtesion. */ + /* Initializes the status to `indication sent`. It will be updated to + * `accepted` or `rejected` depend on whether the EncryptedExtension + * message will contain an early data indication extension or not. + */ ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT; } else @@ -2540,7 +2542,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, { case MBEDTLS_TLS_EXT_EARLY_DATA: MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); - if( extension_data_len == 4 && ssl->session != NULL) + if( extension_data_len == 4 && ssl->session != NULL ) ssl->session->ticket_flags |= MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA; break; From 097771672d0923b10d7eb44bc689e3f0ff717bce Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 03:46:23 +0000 Subject: [PATCH 0703/1574] Update early data document and prerequisites check Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 4 ++++ include/mbedtls/check_config.h | 5 +++-- include/mbedtls/mbedtls_config.h | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index f1bb52770..71f5bffd2 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -119,6 +119,10 @@ #undef MBEDTLS_SSL_EARLY_DATA #endif +#if !defined(MBEDTLS_SSL_SESSION_TICKETS) +#undef MBEDTLS_SSL_EARLY_DATA +#endif + #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) #define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index d36db4a9e..4eb1528bb 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -844,8 +844,9 @@ /* Early data requires PSK related mode defined */ #if defined(MBEDTLS_SSL_EARLY_DATA) && \ - ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ - !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)) + ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \ + ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ + !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) ) ) #error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index b4c863521..93ca9b58a 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1641,7 +1641,10 @@ * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 -* is not enabled, this option does not have any effect on the build. +* is not enabled or both MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED and +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED are disabled or +* MBEDTLS_SSL_SESSION_TICKETS is not enabled, this option does not have any +* effect on the build. * * This feature is experimental, not completed and thus not ready for * production. From 50a47940b60d0dcb104bfcd3d0300df95e6e95d8 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 03:58:41 +0000 Subject: [PATCH 0704/1574] Update early data test case with gnutls Signed-off-by: Xiaokang Qian --- tests/ssl-opt.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index b6c3982d8..ccca83b73 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13048,14 +13048,15 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED -run_test "TLS 1.3: NewSessionTicket: early data, m->G" \ +run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --earlydata --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1" \ 1 \ - -c "=> write client hello" \ - -c "client hello, adding early_data extension" \ - -c "<= write client hello" \ - -c "client state: MBEDTLS_SSL_SERVER_HELLO" + -c "client hello, adding early_data extension" \ + -c "Reconnecting with saved session" \ + -c "unsupported extension found: 42" \ + -s "Parsing extension 'Early Data/42' (0 bytes)" \ + -s "Sending extension Early Data/42 (0 bytes)" # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From 29ee43c0e17d4c1a7bf3b1c47d54e14d8ae73bb7 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 07:39:57 +0000 Subject: [PATCH 0705/1574] Update document base on comments Signed-off-by: Xiaokang Qian --- include/mbedtls/mbedtls_config.h | 3 ++- include/mbedtls/ssl.h | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 93ca9b58a..e3bae2cf8 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1637,7 +1637,8 @@ * * Enable support for RFC 8446 TLS 1.3 early data. * -* Requires: MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or +* Requires: MBEDTLS_SSL_SESSION_TICKETS and either +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 080474613..1ae441caa 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -802,6 +802,15 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) +/* Define the status of early data. + * MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN : Initilized. + * MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT: Have sent early data + * indication in client hello successfully. + * MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT: Have sent client hello without + * data indication. + * MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED: Server side reject the early data. + * MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED: Server side accept the early data. + */ #define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 #define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 #define MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT 2 From 2d87a9eeb551fe6d5c447374283eb163f33ab4a9 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 07:55:48 +0000 Subject: [PATCH 0706/1574] Pend one alert in case wrong EXT_EARLY_DATA length Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index f68b24080..4935fbf4e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2542,9 +2542,18 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, { case MBEDTLS_TLS_EXT_EARLY_DATA: MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); - if( extension_data_len == 4 && ssl->session != NULL ) + if( extension_data_len != 4 ) + { + MBEDTLS_SSL_PEND_FATAL_ALERT( + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR ); + return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + } + if( ssl->session != NULL ) + { ssl->session->ticket_flags |= MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA; + } break; default: From ae07cd995a7cb20f570a00dfaaf4d03cdc1ae422 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 08:09:47 +0000 Subject: [PATCH 0707/1574] Change ticket_flag base on review Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 10 ++++------ library/ssl_debug_helpers.h | 5 ----- library/ssl_tls13_client.c | 5 +++-- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 1ae441caa..8b1ed23d1 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -820,12 +820,10 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -typedef enum -{ - MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA = 1, - MBEDTLS_SSL_TICKET_ALLOW_DHE_RESUMPTION = 2, - MBEDTLS_SSL_TICKET_ALLOW_PSK_RESUMPTION = 4, -} mbedtls_ssl_ticket_flags; +typedef uint8_t mbedtls_ssl_tls13_ticket_flags; +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION ( 1u << 0 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION ( 1u << 2 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION ( 1u << 3 ) #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 9efbbbcd2..4412f8e21 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -33,11 +33,6 @@ const char *mbedtls_ssl_states_str( mbedtls_ssl_states in ); -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -const char *mbedtls_ssl_ticket_flags_str( mbedtls_ssl_ticket_flags in ); -#endif /* defined(MBEDTLS_SSL_PROTO_TLS1_3) && - defined(MBEDTLS_SSL_SESSION_TICKETS) */ - const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in ); const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 4935fbf4e..aea7adab0 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -706,7 +706,8 @@ static int ssl_tls13_early_data_has_valid_ticket( mbedtls_ssl_context *ssl ) mbedtls_ssl_session *session = ssl->session_negotiate; return( ssl->handshake->resume && session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ( session->ticket_flags & MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA ) && + ( session->ticket_flags & + MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION ) && mbedtls_ssl_tls13_cipher_suite_is_offered( ssl, session->ciphersuite ) ); } @@ -2552,7 +2553,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, if( ssl->session != NULL ) { ssl->session->ticket_flags |= - MBEDTLS_SSL_TICKET_ALLOW_EARLY_DATA; + MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION; } break; From fe3483f9a142ca019c5371d04a3b83e084289cf7 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 9 Nov 2022 10:45:23 +0000 Subject: [PATCH 0708/1574] Update early data doument and config dependencies Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 4 ---- include/mbedtls/check_config.h | 7 ++----- include/mbedtls/mbedtls_config.h | 9 +++------ include/mbedtls/ssl.h | 13 ++----------- library/ssl_tls13_client.c | 6 +++--- 5 files changed, 10 insertions(+), 29 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 71f5bffd2..f1bb52770 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -119,10 +119,6 @@ #undef MBEDTLS_SSL_EARLY_DATA #endif -#if !defined(MBEDTLS_SSL_SESSION_TICKETS) -#undef MBEDTLS_SSL_EARLY_DATA -#endif - #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) || \ defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) #define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 4eb1528bb..4c4bde49b 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -842,11 +842,8 @@ "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" #endif -/* Early data requires PSK related mode defined */ -#if defined(MBEDTLS_SSL_EARLY_DATA) && \ - ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \ - ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ - !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) ) ) +/* Early data requires MBEDTLS_SSL_SESSION_TICKETS defined */ +#if defined(MBEDTLS_SSL_EARLY_DATA) && !defined(MBEDTLS_SSL_SESSION_TICKETS) #error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index e3bae2cf8..3c4697175 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1637,15 +1637,12 @@ * * Enable support for RFC 8446 TLS 1.3 early data. * -* Requires: MBEDTLS_SSL_SESSION_TICKETS and either -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED +* Requires: MBEDTLS_SSL_SESSION_TICKETS * * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 * is not enabled or both MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED and -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED are disabled or -* MBEDTLS_SSL_SESSION_TICKETS is not enabled, this option does not have any -* effect on the build. +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED are disabled, +* this option does not have any effect on the build. * * This feature is experimental, not completed and thus not ready for * production. diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 8b1ed23d1..16de0f806 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -802,15 +802,6 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) -/* Define the status of early data. - * MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN : Initilized. - * MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT: Have sent early data - * indication in client hello successfully. - * MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT: Have sent client hello without - * data indication. - * MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED: Server side reject the early data. - * MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED: Server side accept the early data. - */ #define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 #define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 #define MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT 2 @@ -822,8 +813,8 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; typedef uint8_t mbedtls_ssl_tls13_ticket_flags; #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION ( 1u << 0 ) -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION ( 1u << 2 ) -#define MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION ( 1u << 3 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION ( 1u << 1 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1u << 2 ) #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index aea7adab0..405cce031 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -707,7 +707,7 @@ static int ssl_tls13_early_data_has_valid_ticket( mbedtls_ssl_context *ssl ) return( ssl->handshake->resume && session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ( session->ticket_flags & - MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION ) && + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ) && mbedtls_ssl_tls13_cipher_suite_is_offered( ssl, session->ciphersuite ) ); } @@ -1184,7 +1184,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, p += ext_len; /* Initializes the status to `indication sent`. It will be updated to - * `accepted` or `rejected` depend on whether the EncryptedExtension + * `accepted` or `rejected` depending on whether the EncryptedExtension * message will contain an early data indication extension or not. */ ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT; @@ -2553,7 +2553,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, if( ssl->session != NULL ) { ssl->session->ticket_flags |= - MBEDTLS_SSL_TLS1_3_TICKET_HAS_EARLY_DATA_INDACTION; + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA; } break; From de95604f6c144807b315f3b3625b540729cbf7b7 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 10 Nov 2022 03:11:54 +0000 Subject: [PATCH 0709/1574] Update ticket_flags related macros Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 16de0f806..02685e1f8 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -812,9 +812,12 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) typedef uint8_t mbedtls_ssl_tls13_ticket_flags; -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION ( 1u << 0 ) -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION ( 1u << 1 ) -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1u << 2 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION << 1 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** From 402bb1ee905e43410ddb442b8070f901677e7416 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 10 Nov 2022 10:38:17 +0000 Subject: [PATCH 0710/1574] Update documents and check Signed-off-by: Xiaokang Qian --- include/mbedtls/build_info.h | 4 ---- include/mbedtls/check_config.h | 9 +++++++-- include/mbedtls/mbedtls_config.h | 8 ++++---- tests/configs/tls13-only.h | 1 - 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index f1bb52770..170cbebbe 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -112,10 +112,6 @@ #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED #undef MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED -#endif - -#if !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ - !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) #undef MBEDTLS_SSL_EARLY_DATA #endif diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 4c4bde49b..f932901ec 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -842,8 +842,13 @@ "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" #endif -/* Early data requires MBEDTLS_SSL_SESSION_TICKETS defined */ -#if defined(MBEDTLS_SSL_EARLY_DATA) && !defined(MBEDTLS_SSL_SESSION_TICKETS) +/* Early data requires MBEDTLS_SSL_SESSION_TICKETS and SOME_PSK related + * mode defined + */ +#if defined(MBEDTLS_SSL_EARLY_DATA) && \ + ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \ + ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ + !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) ) ) #error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 3c4697175..12d503e38 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1637,12 +1637,12 @@ * * Enable support for RFC 8446 TLS 1.3 early data. * -* Requires: MBEDTLS_SSL_SESSION_TICKETS +* Requires: MBEDTLS_SSL_SESSION_TICKETS and either +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or +* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 -* is not enabled or both MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED and -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED are disabled, -* this option does not have any effect on the build. +* is not enabled, this option does not have any effect on the build. * * This feature is experimental, not completed and thus not ready for * production. diff --git a/tests/configs/tls13-only.h b/tests/configs/tls13-only.h index a4dcb92ba..7483f1cd9 100644 --- a/tests/configs/tls13-only.h +++ b/tests/configs/tls13-only.h @@ -24,7 +24,6 @@ /* Enable TLS 1.3 and core 1.3 features */ #define MBEDTLS_SSL_PROTO_TLS1_3 -#define MBEDTLS_SSL_EARLY_DATA #define MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE /* Disable TLS 1.2 and 1.2-specific features */ From 733c76e08a32b81905fb0a50a486c203d3699776 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 14 Nov 2022 08:33:21 +0100 Subject: [PATCH 0711/1574] Fix style issues pointed by pylint Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index f78af68f3..2cdad692b 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -60,7 +60,7 @@ def analyze_coverage(results, outcomes): # fixed this branch to have full coverage of test cases. results.warning('Test case not executed: {}', key) -def analyze_driver_vs_reference(outcomes, component_ref,component_driver, ignored_tests): +def analyze_driver_vs_reference(outcomes, component_ref, component_driver, ignored_tests): """Check that all tests executed in the reference component are also executed in the corresponding driver component. Skip test suites provided in ignored_tests list. @@ -143,12 +143,14 @@ TASKS = { 'args': { 'component_ref': 'test_psa_crypto_config_reference_hash_use_psa', 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', - 'ignored_suites': ['shax','mdx', # the software implementations that are being excluded + 'ignored_suites': ['shax', 'mdx', # the software implementations that are being excluded 'md', # the legacy abstraction layer that's being excluded - 'entropy','hmac_drbg','random', # temporary limitation (see RNG EPIC) + 'entropy', 'hmac_drbg', 'random', # temporary limitation + # (see RNG EPIC) 'psa_crypto_init', # doesn't work with external RNG - 'hkdf', # legacy still depends on MD, but there's a PSA interface that doesn't - 'pkcs7 ' # recent addition, will be addressed later + 'hkdf', # legacy still depends on MD, + # but there's a PSA interface that doesn't + 'pkcs7' # recent addition, will be addressed later ]}} } From 8b6826d309fcf90d6f7bde72e2fad184b56a6d8b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 14 Nov 2022 08:33:47 +0100 Subject: [PATCH 0712/1574] Revert "Add fake dependency to test CI" This reverts commit a380b06c26086e695345a04163c1d174c3eb7d20. Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_error.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_error.data b/tests/suites/test_suite_error.data index 65f0daa84..dec5639ee 100644 --- a/tests/suites/test_suite_error.data +++ b/tests/suites/test_suite_error.data @@ -3,7 +3,7 @@ depends_on:MBEDTLS_AES_C error_strerror:-0x0020:"AES - Invalid key length" Single high error -depends_on:MBEDTLS_RSA_C:MBEDTLS_ENTROPY_C +depends_on:MBEDTLS_RSA_C error_strerror:-0x4080:"RSA - Bad input parameters to function" Low and high error From 5b98d73864b189349dacaaf07c16207e72bcf3a2 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 10 Nov 2022 18:55:00 +0000 Subject: [PATCH 0713/1574] Linewrap for the benefit of Uncrustify The last line of programs/psa/key_ladder_demo.c is of the following form: #endif /* Very long comment ... */ Uncrustify tries to reduce the length: #endif \ /* Very long comment ... */ and causes a compiler error as there is a continuation line with no actual code in it. Work around this by linewrapping the comment in advance. Signed-off-by: David Horstmann --- programs/psa/key_ladder_demo.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/programs/psa/key_ladder_demo.c b/programs/psa/key_ladder_demo.c index 13037190d..f40874e1c 100644 --- a/programs/psa/key_ladder_demo.c +++ b/programs/psa/key_ladder_demo.c @@ -713,4 +713,6 @@ usage_failure: usage( ); return( EXIT_FAILURE ); } -#endif /* MBEDTLS_SHA256_C && MBEDTLS_MD_C && MBEDTLS_AES_C && MBEDTLS_CCM_C && MBEDTLS_PSA_CRYPTO_C && MBEDTLS_FS_IO */ +#endif /* MBEDTLS_SHA256_C && MBEDTLS_MD_C && + MBEDTLS_AES_C && MBEDTLS_CCM_C && + MBEDTLS_PSA_CRYPTO_C && MBEDTLS_FS_IO */ From 48e8fc737a58c50e0c8a267a4de669265ef7b381 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 19 Oct 2022 15:14:29 +0200 Subject: [PATCH 0714/1574] Adding unit test for mbedtls_x509write_csr_set_extension() The already existing "x509_csr_check()" function is extended in order to support/test also CSR's extensions. The test is performed by adding an extended key usage. Signed-off-by: Valerio Setti --- tests/data_files/Makefile | 5 ++ tests/data_files/server1.req.sha256.ext | 17 +++++++ tests/suites/test_suite_x509write.data | 28 ++++++----- tests/suites/test_suite_x509write.function | 56 +++++++++++++++++++++- 4 files changed, 93 insertions(+), 13 deletions(-) create mode 100644 tests/data_files/server1.req.sha256.ext diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 6187d17bc..cd4285c15 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -881,6 +881,11 @@ server1.req.sha256: server1.key $(MBEDTLS_CERT_REQ) output_file=$@ filename=$< subject_name="C=NL,O=PolarSSL,CN=PolarSSL Server 1" md=SHA256 all_final += server1.req.sha256 +server1.req.sha256.ext: server1.key + # Generating this with OpenSSL as a comparison point to test we're getting the same result + openssl req -new -out $@ -key $< -subj '/C=NL/O=PolarSSL/CN=PolarSSL Server 1' -sha256 -addext "extendedKeyUsage=serverAuth" +all_final += server1.req.sha256.ext + server1.req.sha384: server1.key $(MBEDTLS_CERT_REQ) output_file=$@ filename=$< subject_name="C=NL,O=PolarSSL,CN=PolarSSL Server 1" md=SHA384 all_final += server1.req.sha384 diff --git a/tests/data_files/server1.req.sha256.ext b/tests/data_files/server1.req.sha256.ext new file mode 100644 index 000000000..3f26f09ef --- /dev/null +++ b/tests/data_files/server1.req.sha256.ext @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIICpzCCAY8CAQAwPDELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRow +GAYDVQQDDBFQb2xhclNTTCBTZXJ2ZXIgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAKkCHz1AatVVU4v9Nu6CZS4VYV6Jv7joRZDb7ogWUtPxQ1BHlhJZ +ZIdr/SvgRvlzvt3PkuGRW+1moG+JKXlFgNCDatVBQ3dfOXwJBEeCsFc5cO2j7BUZ +HqgzCEfBBUKp/UzDtN/dBh9NEFFAZ3MTD0D4bYElXwqxU8YwfhU5rPla7n+SnqYF +W+cTl4W1I5LZ1CQG1QkliXUH3aYajz8JGb6tZSxk65Wb3P5BXhem2mxbacwCuhQs +FiScStzN0PdSZ3PxLaAj/X70McotcMqJCwTbLqZPcG6ezr1YieJTWZ5uWpJl4og/ +DJQZo93l6J2VE+0p26twEtxaymsXq1KCVLECAwEAAaAmMCQGCSqGSIb3DQEJDjEX +MBUwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQELBQADggEBAHi0yEGu +Fh5tuLiLuT95UrRnly55+lTY9xchFiKtlcoEdSheybYxqk3JHuSSqojOFKZBlRdk +oG6Azg56/aMHPWyvtCMSRQX4b+FgjeQsm9IfhYNMquQOxyPxm62vjuU3MfZIofXH +hKdI6Ci2CDF4Fyvw50KBWniV38eE9+kjsvDLdXD3ESZJGhjjuFl8ReUiA2wdBTcP +XEZaXUIc6B4tUnlPeqn/2zp4GBqqWzNZx6TXBpApASGG3BEJnM52FVPC7E9p+8YZ +qIGuiF5Cz/rYZkpwffBWIfS2zZakHLm5TB8FgZkWlyReJU9Ihk2Tl/sZ1kllFdYa +xLPnLCL82KFL1Co= +-----END CERTIFICATE REQUEST----- diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index 1844e5cf6..5793ff8d8 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -1,30 +1,30 @@ Certificate Request check Server1 SHA1 depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha1":MBEDTLS_MD_SHA1:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha1":MBEDTLS_MD_SHA1:0:0:0:0:0 Certificate Request check Server1 SHA224 depends_on:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha224":MBEDTLS_MD_SHA224:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha224":MBEDTLS_MD_SHA224:0:0:0:0:0 Certificate Request check Server1 SHA256 depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha256":MBEDTLS_MD_SHA256:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha256":MBEDTLS_MD_SHA256:0:0:0:0:0 Certificate Request check Server1 SHA384 depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha384":MBEDTLS_MD_SHA384:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha384":MBEDTLS_MD_SHA384:0:0:0:0:0 Certificate Request check Server1 SHA512 depends_on:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha512":MBEDTLS_MD_SHA512:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha512":MBEDTLS_MD_SHA512:0:0:0:0:0 Certificate Request check Server1 MD5 depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.md5":MBEDTLS_MD_MD5:0:0:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.md5":MBEDTLS_MD_MD5:0:0:0:0:0 Certificate Request check Server1 key_usage depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.key_usage":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.key_usage":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:0:0:0 Certificate Request check opaque Server1 key_usage depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 @@ -32,23 +32,27 @@ x509_csr_check_opaque:"data_files/server1.key":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_D Certificate Request check Server1 key_usage empty depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.key_usage_empty":MBEDTLS_MD_SHA1:0:1:0:0 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.key_usage_empty":MBEDTLS_MD_SHA1:0:1:0:0:0 Certificate Request check Server1 ns_cert_type depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.cert_type":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.cert_type":MBEDTLS_MD_SHA1:0:0:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0 Certificate Request check Server1 ns_cert_type empty depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.cert_type_empty":MBEDTLS_MD_SHA1:0:0:0:1 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.cert_type_empty":MBEDTLS_MD_SHA1:0:0:0:1:0 Certificate Request check Server1 key_usage + ns_cert_type depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 -x509_csr_check:"data_files/server1.key":"data_files/server1.req.ku-ct":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.ku-ct":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0 Certificate Request check Server5 ECDSA, key_usage depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP256R1_ENABLED -x509_csr_check:"data_files/server5.key":"data_files/server5.req.ku.sha1":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION:1:0:0 +x509_csr_check:"data_files/server5.key":"data_files/server5.req.ku.sha1":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION:1:0:0:0 + +Certificate Request check Server1, set_extension +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15 +x509_csr_check:"data_files/server1.key":"data_files/server1.req.sha256.ext":MBEDTLS_MD_SHA256:0:0:0:0:1 Certificate Request check opaque Server5 ECDSA, key_usage depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 1120bee14..f37b7b8ee 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -5,6 +5,7 @@ #include "mbedtls/pem.h" #include "mbedtls/oid.h" #include "mbedtls/rsa.h" +#include "mbedtls/asn1write.h" #include "hash_info.h" #include "mbedtls/legacy_or_psa.h" @@ -74,6 +75,56 @@ cleanup: } #endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_PEM_WRITE_C && MBEDTLS_X509_CSR_WRITE_C */ +#if defined(MBEDTLS_X509_CSR_WRITE_C) + +/* + * The size of this temporary buffer is given by the sequence of functions + * called hereinafter: + * - mbedtls_asn1_write_oid() + * - 8 bytes for MBEDTLS_OID_EXTENDED_KEY_USAGE raw value + * - 1 byte for MBEDTLS_OID_EXTENDED_KEY_USAGE length + * - 1 byte for MBEDTLS_ASN1_OID tag + * - mbedtls_asn1_write_len() + * - 1 byte since we're dealing with sizes which are less than 0x80 + * - mbedtls_asn1_write_tag() + * - 1 byte + * + * This length is fine as long as this function is called using the + * MBEDTLS_OID_SERVER_AUTH OID. If this is changed in the future, then this + * buffer's length should be adjusted accordingly. + * Unfortunately there's no predefined max size for OIDs which can be used + * to set an overall upper boundary which is always guaranteed. + */ +#define EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH 12 + +static int csr_set_extended_key_usage( mbedtls_x509write_csr *ctx, + const char *oid, size_t oid_len ) +{ + unsigned char buf[EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH] = { 0 }; + unsigned char *p = buf + sizeof( buf ); + int ret; + size_t len = 0; + + /* + * Following functions fail anyway if the temporary buffer is not large, + * but we set an extra check here to emphasize a possible source of errors + */ + if ( oid_len > EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH ) + { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( &p, buf, oid, oid_len ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &p, buf, ret ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &p, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + + ret = mbedtls_x509write_csr_set_extension( ctx, MBEDTLS_OID_EXTENDED_KEY_USAGE, + MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), 0, p, len ); + + return ret; +} +#endif /* MBEDTLS_X509_CSR_WRITE_C */ /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -84,7 +135,7 @@ cleanup: /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CSR_WRITE_C */ void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type, int key_usage, int set_key_usage, int cert_type, - int set_cert_type ) + int set_cert_type, int set_extension ) { mbedtls_pk_context key; mbedtls_x509write_csr req; @@ -117,6 +168,9 @@ void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type, TEST_ASSERT( mbedtls_x509write_csr_set_key_usage( &req, key_usage ) == 0 ); if( set_cert_type != 0 ) TEST_ASSERT( mbedtls_x509write_csr_set_ns_cert_type( &req, cert_type ) == 0 ); + if ( set_extension != 0 ) + TEST_ASSERT( csr_set_extended_key_usage( &req, MBEDTLS_OID_SERVER_AUTH, + MBEDTLS_OID_SIZE( MBEDTLS_OID_SERVER_AUTH ) ) == 0 ); ret = mbedtls_x509write_csr_pem( &req, buf, sizeof( buf ), mbedtls_test_rnd_pseudo_rand, &rnd_info ); From d3068af2a8b6067e0c8a5574fa984eecd8027782 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 14 Nov 2022 16:15:19 +0100 Subject: [PATCH 0715/1574] Optimize code (tasks list initialization, task verification) Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 2cdad692b..ba38ec280 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -175,17 +175,15 @@ def main(): result = True - tasks = [] if options.task == 'all': - for task in TASKS: - tasks.append(task) + tasks = TASKS.keys() else: tasks = options.task.split(',') - for task in tasks: - if task not in TASKS: - print('Error: invalid task: {}'.format(task)) - sys.exit(1) + for task in tasks: + if task not in TASKS: + print('Error: invalid task: {}'.format(task)) + sys.exit(1) for task in TASKS: if task in tasks: From 9a0aafbe79dc362aecd284a6e24ff3c52949bc89 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 10 Nov 2022 10:45:43 +0000 Subject: [PATCH 0716/1574] Enable/disable MBEDTLS_SSL_EARLY_DATA for cases in ssl-opt.sh Signed-off-by: Xiaokang Qian --- programs/ssl/ssl_client2.c | 7 +++++++ tests/scripts/all.sh | 3 +++ tests/ssl-opt.sh | 9 +++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 9685e69d4..186ac18de 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -64,6 +64,7 @@ int main( void ) #define DFL_KEY_OPAQUE 0 #define DFL_KEY_PWD "" #define DFL_PSK "" +#define DFL_EARLY_DATA MBEDTLS_SSL_EARLY_DATA_DISABLED #define DFL_PSK_OPAQUE 0 #define DFL_PSK_IDENTITY "Client_identity" #define DFL_ECJPAKE_PW NULL @@ -430,6 +431,7 @@ int main( void ) USAGE_REPRODUCIBLE \ USAGE_CURVES \ USAGE_SIG_ALGS \ + USAGE_EARLY_DATA \ USAGE_DHMLEN \ USAGE_KEY_OPAQUE_ALGS \ "\n" @@ -541,7 +543,9 @@ struct options * after renegotiation */ int reproducible; /* make communication reproducible */ int skip_close_notify; /* skip sending the close_notify alert */ +#if defined(MBEDTLS_SSL_EARLY_DATA) int early_data; /* support for early data */ +#endif int query_config_mode; /* whether to read config */ int use_srtp; /* Support SRTP */ int force_srtp_profile; /* SRTP protection profile to use or all */ @@ -941,6 +945,9 @@ int main( int argc, char *argv[] ) opt.alpn_string = DFL_ALPN_STRING; opt.curves = DFL_CURVES; opt.sig_algs = DFL_SIG_ALGS; +#if defined(MBEDTLS_SSL_EARLY_DATA) + opt.early_data = DFL_EARLY_DATA; +#endif opt.transport = DFL_TRANSPORT; opt.hs_to_min = DFL_HS_TO_MIN; opt.hs_to_max = DFL_HS_TO_MAX; diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9295c9d00..32e920d22 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2105,6 +2105,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC + scripts/config.py unset MBEDTLS_SSL_EARLY_DATA scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" @@ -3221,6 +3222,7 @@ component_build_armcc () { component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test: TLS 1.3 only, all key exchange modes enabled" @@ -3300,6 +3302,7 @@ component_test_tls13_only_psk_all () { component_test_tls13_only_ephemeral_all () { msg "build: TLS 1.3 only from default, without PSK key exchange mode" scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index ccca83b73..20c1b0f4d 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13047,14 +13047,15 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+PSK --earlydata --disable-client-cert" \ - "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ 1 \ -c "client hello, adding early_data extension" \ -c "Reconnecting with saved session" \ - -c "unsupported extension found: 42" \ + -c "EncryptedExtensions: early_data(42) extension is unsupported" \ -s "Parsing extension 'Early Data/42' (0 bytes)" \ -s "Sending extension Early Data/42 (0 bytes)" From 72b9b17e1120f5c4c8ff7911697c57d73a26f8ee Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Fri, 11 Nov 2022 06:08:51 +0000 Subject: [PATCH 0717/1574] Add comments to fix mini format issue Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 02685e1f8..5294ec28b 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -813,9 +813,9 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; typedef uint8_t mbedtls_ssl_tls13_ticket_flags; #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA \ MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION << 1 From f90111b2b59c26a9a0ed18184a93fa2445f48f06 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 15 Nov 2022 06:15:15 +0000 Subject: [PATCH 0718/1574] Must call mbedtls_mpi_mod_modulus_init() before anything else in tests Fixes (new) Coverity issues 381893 and 381894 Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index d0ffd27b0..ff766b9dc 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -300,9 +300,11 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_mod_modulus m; size_t n_limbs, a_limbs, x_limbs, x_bytes; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + /* Read inputs */ TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); @@ -312,7 +314,6 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) /* Test that input does not require more limbs than modulo */ TEST_LE_U(a_limbs, n_limbs); - mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); @@ -335,9 +336,11 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_mod_modulus m; size_t n_limbs, a_limbs, x_limbs, x_bytes; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + /* Read inputs */ TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); @@ -347,7 +350,6 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) /* Test that input does not require more limbs than modulo */ TEST_LE_U(a_limbs, n_limbs); - mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); From 2cd5ce0c6b41dbe69c39c3cda2bd491a04d9effb Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 15 Nov 2022 10:33:53 +0000 Subject: [PATCH 0719/1574] Fix various issues cause rebase to latest code Signed-off-by: Xiaokang Qian --- include/mbedtls/check_config.h | 3 --- include/mbedtls/mbedtls_config.h | 2 +- include/mbedtls/ssl.h | 7 +++++-- library/ssl_tls13_client.c | 1 - library/ssl_tls13_generic.c | 5 +++-- programs/ssl/ssl_client2.c | 12 ------------ 6 files changed, 9 insertions(+), 21 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index f932901ec..391863971 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -842,9 +842,6 @@ "but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx" #endif -/* Early data requires MBEDTLS_SSL_SESSION_TICKETS and SOME_PSK related - * mode defined - */ #if defined(MBEDTLS_SSL_EARLY_DATA) && \ ( !defined(MBEDTLS_SSL_SESSION_TICKETS) || \ ( !defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) && \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 12d503e38..3f869b9ff 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1648,7 +1648,7 @@ * production. * */ -//#define MBEDTLS_SSL_EARLY_DATA +#define MBEDTLS_SSL_EARLY_DATA /** * \def MBEDTLS_SSL_PROTO_DTLS diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 5294ec28b..6829fd7b6 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -816,9 +816,12 @@ typedef uint8_t mbedtls_ssl_tls13_ticket_flags; MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA \ - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION << 1 +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1U << 3 ) +#define MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK \ + ( MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION | \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION | \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ) #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** * \brief Callback type: server-side session cache getter diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 405cce031..d276a9566 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2542,7 +2542,6 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, switch( extension_type ) { case MBEDTLS_TLS_EXT_EARLY_DATA: - MBEDTLS_SSL_DEBUG_MSG( 4, ( "early_data extension received" ) ); if( extension_data_len != 4 ) { MBEDTLS_SSL_PEND_FATAL_ALERT( diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 04790387a..761c00ec5 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1395,13 +1395,14 @@ int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, ((void) ssl); MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "client hello, adding early_data extension" ) ); MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EARLY_DATA, p, 0 ); MBEDTLS_PUT_UINT16_BE( 0, p, 2 ); *out_len = 4; + + mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_EARLY_DATA ); + return( 0 ); } #endif /* MBEDTLS_SSL_EARLY_DATA */ diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 186ac18de..6aa295d66 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2504,12 +2504,6 @@ int main( int argc, char *argv[] ) } } -#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) - /* TODO: We can log the actual early data status after we define - * the API mbedtls_ssl_get_early_data_status. - */ -#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ - #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 5. Verify the server certificate @@ -3220,12 +3214,6 @@ reconnect: mbedtls_printf( " ok\n" ); -#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) - /* TODO: We can log the actual early data status when reconnect - * after we define the API mbedtls_ssl_get_early_data_status. - */ -#endif /* MBEDTLS_SSL_EARLY_DATA && MBEDTLS_SSL_CLI_C */ - goto send_request; } From aa88e0b86b5df3d70b9b6fb80d8116a61e984450 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 15 Nov 2022 13:21:14 +0100 Subject: [PATCH 0720/1574] Make configurations (driver, reference) as close as possible Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 83 +++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6a7501a97..9fba034cd 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2041,6 +2041,45 @@ component_test_psa_crypto_config_accel_hash () { make test } +# Auxiliary function to build config for hashes with and without drivers +config_psa_crypto_hash_use_psa () { + DRIVER_ONLY="$1" + # start with config full for maximum coverage (also enables USE_PSA) + scripts/config.py full + # enable support for configuring PSA-only algorithms + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + if [ "$DRIVER_ONLY" -eq 1 ]; then + # enable support for drivers + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + # disable the built-in implementation of hashes + scripts/config.py unset MBEDTLS_MD5_C + scripts/config.py unset MBEDTLS_RIPEMD160_C + scripts/config.py unset MBEDTLS_SHA1_C + scripts/config.py unset MBEDTLS_SHA224_C + scripts/config.py unset MBEDTLS_SHA256_C # see external RNG below + scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT + scripts/config.py unset MBEDTLS_SHA384_C + scripts/config.py unset MBEDTLS_SHA512_C + scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT + fi + # Use an external RNG as currently internal RNGs depend on entropy.c + # which in turn hard-depends on SHA256_C (or SHA512_C). + # See component_test_psa_external_rng_no_drbg_use_psa. + scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG + scripts/config.py unset MBEDTLS_ENTROPY_C + scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED # depends on ENTROPY_C + scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT # depends on former + # Also unset MD_C and things that depend on it; + # see component_test_crypto_full_no_md. + if [ "$DRIVER_ONLY" -eq 1 ]; then + scripts/config.py unset MBEDTLS_MD_C + fi + scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation + scripts/config.py unset MBEDTLS_HMAC_DRBG_C + scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA +} + # Note that component_test_psa_crypto_config_reference_hash_use_psa # is related to this component and both components need to be kept in sync. # For details please see comments for component_test_psa_crypto_config_reference_hash_use_psa. @@ -2056,35 +2095,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" - # start with config full for maximum coverage (also enables USE_PSA) - scripts/config.py full - # enable support for drivers and configuring PSA-only algorithms - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - # disable the built-in implementation of hashes - scripts/config.py unset MBEDTLS_MD5_C - scripts/config.py unset MBEDTLS_RIPEMD160_C - scripts/config.py unset MBEDTLS_SHA1_C - scripts/config.py unset MBEDTLS_SHA224_C - scripts/config.py unset MBEDTLS_SHA256_C # see external RNG below - scripts/config.py unset MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT - scripts/config.py unset MBEDTLS_SHA384_C - scripts/config.py unset MBEDTLS_SHA512_C - scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT - # Use an external RNG as currently internal RNGs depend on entropy.c - # which in turn hard-depends on SHA256_C (or SHA512_C). - # See component_test_psa_external_rng_no_drbg_use_psa. - scripts/config.py set MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG - scripts/config.py unset MBEDTLS_ENTROPY_C - scripts/config.py unset MBEDTLS_ENTROPY_NV_SEED # depends on ENTROPY_C - scripts/config.py unset MBEDTLS_PLATFORM_NV_SEED_ALT # depends on former - # Also unset MD_C and things that depend on it; - # see component_test_crypto_full_no_md. - scripts/config.py unset MBEDTLS_MD_C - scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation - scripts/config.py unset MBEDTLS_HMAC_DRBG_C - scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA + config_psa_crypto_hash_use_psa 1 loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" all @@ -2105,7 +2116,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { tests/ssl-opt.sh msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - tests/compat.sh + #tests/compat.sh } # This component provides reference configuration for test_psa_crypto_config_accel_hash_use_psa @@ -2114,16 +2125,8 @@ component_test_psa_crypto_config_accel_hash_use_psa () { # Both components need to be kept in sync. component_test_psa_crypto_config_reference_hash_use_psa() { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - # start with full - scripts/config.py full - # use PSA config and disable driver-less algs as in the component - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - # disable options as in the component - # (no need to disable whole modules, we'll just skip their test suite) - scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC - scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA + + config_psa_crypto_hash_use_psa 0 make From 9f0ec53c4c876c02dd75f89c3c0ab0eb7917d560 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 8 Nov 2022 13:03:24 +0100 Subject: [PATCH 0721/1574] add a test for EC-JPAKE compatibility in TLS1.2 This is to ensure that the MbedTLS based implementation of EC-JPAKE is compatible with the PSA crypto one Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9295c9d00..b2af01c38 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1437,6 +1437,31 @@ component_test_tls1_2_default_cbc_legacy_cbc_etm_cipher_only_use_psa () { tests/ssl-opt.sh -f "TLS 1.2" } +# We're not aware of any other (open source) implementation of EC J-PAKE in TLS +# that we could use for interop testing. However, we now have sort of two +# implementations ourselves: one using PSA, the other not. At least test that +# these two interoperate with each other. +component_test_tls1_2_ecjpake_compatibility() { + msg "build: TLS1.2 server+client w/ EC-JPAKE w/o USE_PSA" + scripts/config.py set MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED + make -C programs ssl/ssl_server2 ssl/ssl_client2 + cp programs/ssl/ssl_server2 s2_no_use_psa + cp programs/ssl/ssl_client2 c2_no_use_psa + + msg "build: TLS1.2 server+client w/ EC-JPAKE w/ USE_PSA" + scripts/config.py set MBEDTLS_USE_PSA_CRYPTO + make clean + make -C programs ssl/ssl_server2 ssl/ssl_client2 + make -C programs test/udp_proxy test/query_compile_time_config + + msg "test: server w/o USE_PSA - client w/ USE_PSA" + P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f ECJPAKE + msg "test: client w/o USE_PSA - server w/ USE_PSA" + P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f ECJPAKE + + rm s2_no_use_psa c2_no_use_psa +} + component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" scripts/config.py full From 72ee1e3f3c4b7045cca770577d70cc88cb7b5460 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 21:34:09 +0100 Subject: [PATCH 0722/1574] Unify mbedtls_mpi_add_mpi and mbedtls_mpi_sub_mpi mbedtls_mpi_add_mpi() and mbedtls_mpi_sub_mpi() have the same logic, just with one bit to flip in the sign calculation. Move the shared logic to a new auxiliary function. This slightly reduces the code size (if the compiler doesn't inline) and reduces the maintenance burden. Signed-off-by: Gilles Peskine --- library/bignum.c | 47 +++++++++++++++-------------------------------- 1 file changed, 15 insertions(+), 32 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 521787d74..abbf9b8a4 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -972,10 +972,12 @@ cleanup: return( ret ); } -/* - * Signed addition: X = A + B +/* Common function for signed addition and subtraction. + * Calculate A + B * flip_B where flip_B is 1 or -1. */ -int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +static int add_sub_mpi( mbedtls_mpi *X, + const mbedtls_mpi *A, const mbedtls_mpi *B, + int flip_B ) { int ret, s; MPI_VALIDATE_RET( X != NULL ); @@ -983,7 +985,7 @@ int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi MPI_VALIDATE_RET( B != NULL ); s = A->s; - if( A->s * B->s < 0 ) + if( A->s * B->s * flip_B < 0 ) { if( mbedtls_mpi_cmp_abs( A, B ) >= 0 ) { @@ -1007,39 +1009,20 @@ cleanup: return( ret ); } +/* + * Signed addition: X = A + B + */ +int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +{ + return( add_sub_mpi( X, A, B, 1 ) ); +} + /* * Signed subtraction: X = A - B */ int mbedtls_mpi_sub_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) { - int ret, s; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); - - s = A->s; - if( A->s * B->s > 0 ) - { - if( mbedtls_mpi_cmp_abs( A, B ) >= 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, A, B ) ); - X->s = s; - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, B, A ) ); - X->s = -s; - } - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_add_abs( X, A, B ) ); - X->s = s; - } - -cleanup: - - return( ret ); + return( add_sub_mpi( X, A, B, -1 ) ); } /* From 128895775d4ccb64977f1d3f7020b85f19428fa8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 21:55:33 +0100 Subject: [PATCH 0723/1574] Document invariants of MPI objects Note that s must be +1 for zero. Note that p may be NULL for zero, when n is 0. Signed-off-by: Gilles Peskine --- include/mbedtls/bignum.h | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/bignum.h b/include/mbedtls/bignum.h index 9d15955f3..3bd1ca026 100644 --- a/include/mbedtls/bignum.h +++ b/include/mbedtls/bignum.h @@ -188,9 +188,27 @@ extern "C" { */ typedef struct mbedtls_mpi { - int MBEDTLS_PRIVATE(s); /*!< Sign: -1 if the mpi is negative, 1 otherwise */ - size_t MBEDTLS_PRIVATE(n); /*!< total # of limbs */ - mbedtls_mpi_uint *MBEDTLS_PRIVATE(p); /*!< pointer to limbs */ + /** Sign: -1 if the mpi is negative, 1 otherwise. + * + * The number 0 must be represented with `s = +1`. Although many library + * functions treat all-limbs-zero as equivalent to a valid representation + * of 0 regardless of the sign bit, there are exceptions, so bignum + * functions and external callers must always set \c s to +1 for the + * number zero. + * + * Note that this implies that calloc() or `... = {0}` does not create + * a valid MPI representation. You must call mbedtls_mpi_init(). + */ + int MBEDTLS_PRIVATE(s); + + /** Total number of limbs in \c p. */ + size_t MBEDTLS_PRIVATE(n); + + /** Pointer to limbs. + * + * This may be \c NULL if \c n is 0. + */ + mbedtls_mpi_uint *MBEDTLS_PRIVATE(p); } mbedtls_mpi; From 4cbbfd8d4ee6c724c385688467f23ca5a73071fc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 21:57:52 +0100 Subject: [PATCH 0724/1574] For binary operations, test both x op y and y op x This exposes a bug in mbedtls_mpi_add_mpi() and mbedtls_mpi_sub_mpi() which will be fixed in a subsequent commit. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 279668fd5..c2891fc61 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -57,15 +57,8 @@ def limbs_mpi(val: int, bits_in_limb: int) -> int: return (val.bit_length() + bits_in_limb - 1) // bits_in_limb def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: - """Return all pair combinations from input values. - - The return value is cast, as older versions of mypy are unable to derive - the specific type returned by itertools.combinations_with_replacement. - """ - return typing.cast( - List[Tuple[T, T]], - list(itertools.combinations_with_replacement(values, 2)) - ) + """Return all pair combinations from input values.""" + return [(x, y) for x in values for y in values] class OperationCommon: From 4a768dd17d9910e0e90ae739ecdaf68de1ee78f9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 22:02:16 +0100 Subject: [PATCH 0725/1574] Fix negative zero created by (-A) + (+A) or (-A) - (-A) In mbedtls_mpi_add_mpi() and mbedtls_mpi_sub_mpi(), and by extention mbedtls_mpi_add_int() and mbedtls_mpi_sub_int(), when the resulting value was zero, the sign bit of the result was incorrectly set to -1 when the left-hand operand was negative. This is not a valid mbedtls_mpi representation. Fix this: always set the sign to +1 when the result is 0. Signed-off-by: Gilles Peskine --- library/bignum.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index abbf9b8a4..42be815ba 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -987,14 +987,19 @@ static int add_sub_mpi( mbedtls_mpi *X, s = A->s; if( A->s * B->s * flip_B < 0 ) { - if( mbedtls_mpi_cmp_abs( A, B ) >= 0 ) + int cmp = mbedtls_mpi_cmp_abs( A, B ); + if( cmp >= 0 ) { MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, A, B ) ); - X->s = s; + /* If |A| = |B|, the result is 0 and we must set the sign bit + * to +1 regardless of which of A or B was negative. Otherwise, + * since |A| > |B|, the sign is the sign of A. */ + X->s = cmp == 0 ? 1 : s; } else { MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, B, A ) ); + /* Since |A| < |B|, the sign is the opposite of A. */ X->s = -s; } } From 806c9588ef424af188c5afe3c0932acee131bd63 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 22:05:52 +0100 Subject: [PATCH 0726/1574] Changelog entry for the negative zero from add/sub Signed-off-by: Gilles Peskine --- ChangeLog.d/negative-zero-from-add.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ChangeLog.d/negative-zero-from-add.txt diff --git a/ChangeLog.d/negative-zero-from-add.txt b/ChangeLog.d/negative-zero-from-add.txt new file mode 100644 index 000000000..107d858d3 --- /dev/null +++ b/ChangeLog.d/negative-zero-from-add.txt @@ -0,0 +1,6 @@ +Bugfix + * In the bignum module, operations of the form (-A) - (+A) or (-A) - (-A) + with A > 0 created an unintended representation of the value 0 which was + not processed correctly by some bignum operations. Fix this. This had no + consequence on cryptography code, but might affect applications that call + bignum directly and use negative numbers. From ca6e8aac587966c726c25723c67c3680edc57ef5 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 9 Nov 2022 21:08:44 +0100 Subject: [PATCH 0727/1574] Support negative zero as MPI test input The bignum module does not officially support "negative zero" (an mbedtls_mpi object with s=-1 and all limbs zero). However, we have a history of bugs where a function that should produce an official zero (with s=1), produces a negative zero in some circumstances. So it's good to check that the bignum functions are robust when passed a negative zero as input. And for that, we need a way to construct a negative zero from test case arguments. There are checks that functions don't produce negative zeros as output in the test suite. Skip those checks if there's a negative zero input: we don't want functions to _create_ negative zeros, but we don't mind if they _propagate_ negative zeros. Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 26 +++++++++++++++++----- tests/src/helpers.c | 28 ++++++++++++++++++++++-- tests/suites/test_suite_bignum.function | 17 +++++++++++--- tests/suites/test_suite_bignum.misc.data | 24 ++++++++++++++++++++ 4 files changed, 84 insertions(+), 11 deletions(-) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index e0e6fd27f..568d5e527 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -295,13 +295,19 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, /** Read an MPI from a hexadecimal string. * - * Like mbedtls_mpi_read_string(), but size the resulting bignum based - * on the number of digits in the string. In particular, construct a - * bignum with 0 limbs for an empty string, and a bignum with leading 0 - * limbs if the string has sufficiently many leading 0 digits. + * Like mbedtls_mpi_read_string(), but with tighter guarantees around + * edge cases. * - * This is important so that the "0 (null)" and "0 (1 limb)" and - * "leading zeros" test cases do what they claim. + * - This function guarantees that if \p s begins with '-' then the sign + * bit of the result will be negative, even if the value is 0. + * When this function encounters such a "negative 0", it + * increments #mbedtls_test_read_mpi. + * - The size of the result is exactly the minimum number of limbs needed + * to fit the digits in the input. In particular, this function constructs + * a bignum with 0 limbs for an empty string, and a bignum with leading 0 + * limbs if the string has sufficiently many leading 0 digits. + * This is important so that the "0 (null)" and "0 (1 limb)" and + * "leading zeros" test cases do what they claim. * * \param[out] X The MPI object to populate. It must be initialized. * \param[in] s The null-terminated hexadecimal string to read from. @@ -309,6 +315,14 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ); + +/** Nonzero if the current test case had an input parsed with + * mbedtls_test_read_mpi() that is a negative 0 (`"-"`, `"-0"`, `"-00"`, etc., + * constructing a result with the sign bit set to -1 and the value being + * all-limbs-0, which is not a valid representation in #mbedtls_mpi but is + * tested for robustness). + */ +extern unsigned mbedtls_test_case_uses_negative_0; #endif /* MBEDTLS_BIGNUM_C */ #endif /* TEST_HELPERS_H */ diff --git a/tests/src/helpers.c b/tests/src/helpers.c index cc23fd7c4..7c83714f1 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -89,6 +89,10 @@ void mbedtls_test_set_step( unsigned long step ) mbedtls_test_info.step = step; } +#if defined(MBEDTLS_BIGNUM_C) +unsigned mbedtls_test_case_uses_negative_0 = 0; +#endif + void mbedtls_test_info_reset( void ) { mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SUCCESS; @@ -98,6 +102,9 @@ void mbedtls_test_info_reset( void ) mbedtls_test_info.filename = 0; memset( mbedtls_test_info.line1, 0, sizeof( mbedtls_test_info.line1 ) ); memset( mbedtls_test_info.line2, 0, sizeof( mbedtls_test_info.line2 ) ); +#if defined(MBEDTLS_BIGNUM_C) + mbedtls_test_case_uses_negative_0 = 0; +#endif } int mbedtls_test_equal( const char *test, int line_no, const char* filename, @@ -396,6 +403,15 @@ exit: int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) { + int negative = 0; + /* Always set the sign bit to -1 if the input has a minus sign, even for 0. + * This creates an invalid representation, which mbedtls_mpi_read_string() + * avoids but we want to be able to create that in test data. */ + if( s[0] == '-' ) + { + ++s; + negative = 1; + } /* mbedtls_mpi_read_string() currently retains leading zeros. * It always allocates at least one limb for the value 0. */ if( s[0] == 0 ) @@ -403,7 +419,15 @@ int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) mbedtls_mpi_free( X ); return( 0 ); } - else - return( mbedtls_mpi_read_string( X, 16, s ) ); + int ret = mbedtls_mpi_read_string( X, 16, s ); + if( ret != 0 ) + return( ret ); + if( negative ) + { + if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) + ++mbedtls_test_case_uses_negative_0; + X->s = -1; + } + return( 0 ); } #endif diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 5c3d776f0..b75f534f4 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -13,10 +13,21 @@ * constructing the value. */ static int sign_is_valid( const mbedtls_mpi *X ) { + /* Only +1 and -1 are valid sign bits, not e.g. 0 */ if( X->s != 1 && X->s != -1 ) - return( 0 ); // invalid sign bit, e.g. 0 - if( mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) - return( 0 ); // negative zero + return( 0 ); + + /* The value 0 must be represented with the sign +1. A "negative zero" + * with s=-1 is an invalid representation. Forbid that. As an exception, + * we sometimes test the robustness of library functions when given + * a negative zero input. If a test case has a negative zero as input, + * we don't mind if the function has a negative zero output. */ + if( ! mbedtls_test_case_uses_negative_0 && + mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) + { + return( 0 ); + } + return( 1 ); } diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 0b8aa334a..818f3613b 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1144,6 +1144,18 @@ mpi_div_mpi:"":"1":"":"":0 Test mbedtls_mpi_div_mpi: 0 (null) / -1 mpi_div_mpi:"":"-1":"":"":0 +Test mbedtls_mpi_div_mpi: -0 (null) / 1 +mpi_div_mpi:"-":"1":"":"":0 + +Test mbedtls_mpi_div_mpi: -0 (null) / -1 +mpi_div_mpi:"-":"-1":"":"":0 + +Test mbedtls_mpi_div_mpi: -0 (null) / 42 +mpi_div_mpi:"-":"2a":"":"":0 + +Test mbedtls_mpi_div_mpi: -0 (null) / -42 +mpi_div_mpi:"-":"-2a":"":"":0 + Test mbedtls_mpi_div_mpi #1 mpi_div_mpi:"9e22d6da18a33d1ef28d2a82242b3f6e9c9742f63e5d440f58a190bfaf23a7866e67589adb80":"22":"4a6abf75b13dc268ea9cc8b5b6aaf0ac85ecd437a4e0987fb13cf8d2acc57c0306c738c1583":"1a":0 @@ -1204,6 +1216,18 @@ mpi_mod_mpi:"":"1":"":0 Test mbedtls_mpi_mod_mpi: 0 (null) % -1 mpi_mod_mpi:"":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE +Test mbedtls_mpi_mod_mpi: -0 (null) % 1 +mpi_mod_mpi:"-":"1":"":0 + +Test mbedtls_mpi_mod_mpi: -0 (null) % -1 +mpi_mod_mpi:"-":"-1":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + +Test mbedtls_mpi_mod_mpi: -0 (null) % 42 +mpi_mod_mpi:"-":"2a":"":0 + +Test mbedtls_mpi_mod_mpi: -0 (null) % -42 +mpi_mod_mpi:"-":"-2a":"":MBEDTLS_ERR_MPI_NEGATIVE_VALUE + Base test mbedtls_mpi_mod_int #1 mpi_mod_int:"3e8":"d":"c":0 From 35af02171d186b29c746e9e54c32387f75dcd30d Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 20:43:33 +0100 Subject: [PATCH 0728/1574] Add negative zero as an input to automatically generated tests Although negative zero is officially unsupported, we've had bugs related to it in the past. So do test functions with a negative zero input. There will likely be cases where we don't want to accept negative zero as if it was valid, because it's too hard to handle. We'll add exceptions on a case by case basis. For the functions that are currently tested by the generated tests, the new test cases pass. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 8 +++++++- tests/scripts/generate_bignum_tests.py | 28 +++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index c2891fc61..1eb4ca7df 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -38,7 +38,13 @@ def invmod(a: int, n: int) -> int: raise ValueError("Not invertible") def hex_to_int(val: str) -> int: - return int(val, 16) if val else 0 + """Implement the syntax accepted by mbedtls_test_read_mpi(). + + This is a superset of what is accepted by mbedtls_test_read_mpi_core(). + """ + if val == '' or val == '-': + return 0 + return int(val, 16) def quote_str(val) -> str: return "\"{}\"".format(val) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index a105203b0..f1b24409e 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -78,11 +78,16 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABC #pylint: disable=abstract-method """Common features for bignum operations in legacy tests.""" input_values = [ - "", "0", "7b", "-7b", + "", "0", "-", "-0", + "7b", "-7b", "0000000000000000123", "-0000000000000000123", "1230000000000000000", "-1230000000000000000" ] + def description_suffix(self) -> str: + """Text to add at the end of the test case description.""" + return "" + def description(self) -> str: """Generate a description for the test case. @@ -96,6 +101,9 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABC self.symbol, self.value_description(self.arg_b) ) + description_suffix = self.description_suffix() + if description_suffix: + self.case_description += " " + description_suffix return super().description() @staticmethod @@ -107,6 +115,8 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABC """ if val == "": return "0 (null)" + if val == "-": + return "negative 0 (null)" if val == "0": return "0 (1 limb)" @@ -171,9 +181,21 @@ class BignumAdd(BignumOperation): ] ) - def result(self) -> List[str]: - return [bignum_common.quote_str("{:x}").format(self.int_a + self.int_b)] + def __init__(self, val_a: str, val_b: str) -> None: + super().__init__(val_a, val_b) + self._result = self.int_a + self.int_b + def description_suffix(self) -> str: + if (self.int_a >= 0 and self.int_b >= 0): + return "" # obviously positive result or 0 + if (self.int_a <= 0 and self.int_b <= 0): + return "" # obviously negative result or 0 + # The sign of the result is not obvious, so indicate it + return ", result{}0".format('>' if self._result > 0 else + '<' if self._result < 0 else '=') + + def result(self) -> List[str]: + return [bignum_common.quote_str("{:x}".format(self._result))] if __name__ == '__main__': # Use the section of the docstring relevant to the CLI as description From b9b9026c531e0f6c6df02a1025cdabc48cfa0e99 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 10 Nov 2022 09:15:21 +0100 Subject: [PATCH 0729/1574] Pacify pylint Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 5 +---- tests/scripts/generate_bignum_tests.py | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 1eb4ca7df..8b11bc283 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -14,9 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -import itertools -import typing - from abc import abstractmethod from typing import Iterator, List, Tuple, TypeVar @@ -42,7 +39,7 @@ def hex_to_int(val: str) -> int: This is a superset of what is accepted by mbedtls_test_read_mpi_core(). """ - if val == '' or val == '-': + if val in ['', '-']: return 0 return int(val, 16) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index f1b24409e..eee2f657a 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -85,6 +85,7 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABC ] def description_suffix(self) -> str: + #pylint: disable=no-self-use # derived classes need self """Text to add at the end of the test case description.""" return "" From 23875ceb112cc2dd66b034a76f7357c641987338 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 11 Nov 2022 15:59:51 +0100 Subject: [PATCH 0730/1574] Fix autocucumber in documentation Signed-off-by: Gilles Peskine --- tests/include/test/helpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 568d5e527..5f9bde697 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -301,7 +301,7 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, * - This function guarantees that if \p s begins with '-' then the sign * bit of the result will be negative, even if the value is 0. * When this function encounters such a "negative 0", it - * increments #mbedtls_test_read_mpi. + * increments #mbedtls_test_case_uses_negative_0. * - The size of the result is exactly the minimum number of limbs needed * to fit the digits in the input. In particular, this function constructs * a bignum with 0 limbs for an empty string, and a bignum with leading 0 From 348410f7097bfffdd73d9c370d2d1eb7a75b9b2c Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 15 Nov 2022 22:22:07 +0100 Subject: [PATCH 0731/1574] Make a copy of the key in operation while setting pake password Additionally use psa_get_and_lock_key_slot_with_policy() to obtain key. This requires making this function public. This will have to be solved while adding driver dipatch for EC-JPAKE. Signed-off-by: Przemek Stekiel --- include/psa/crypto_extra.h | 5 ++-- library/psa_crypto.c | 2 +- library/psa_crypto_pake.c | 59 +++++++++++++++++++++++++++++--------- 3 files changed, 49 insertions(+), 17 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 4f65398e2..d527e579b 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1829,7 +1829,7 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); */ #if defined(MBEDTLS_PSA_BUILTIN_PAKE) #define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, \ - MBEDTLS_SVC_KEY_ID_INIT, \ + NULL, 0 , \ PSA_PAKE_ROLE_NONE, {0}, 0, 0, \ {.dummy = 0}} #else @@ -1920,7 +1920,8 @@ struct psa_pake_operation_s #if defined(MBEDTLS_PSA_BUILTIN_PAKE) unsigned int MBEDTLS_PRIVATE(input_step); unsigned int MBEDTLS_PRIVATE(output_step); - mbedtls_svc_key_id_t MBEDTLS_PRIVATE(password); + uint8_t* MBEDTLS_PRIVATE(password_data); + size_t MBEDTLS_PRIVATE(password_bytes); psa_pake_role_t MBEDTLS_PRIVATE(role); uint8_t MBEDTLS_PRIVATE(buffer[MBEDTLS_PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 2ce5e4320..55319c4bd 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -890,7 +890,7 @@ static psa_status_t psa_restrict_key_policy( * On success, the returned key slot is locked. It is the responsibility of * the caller to unlock the key slot when it does not access it anymore. */ -static psa_status_t psa_get_and_lock_key_slot_with_policy( +psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot, psa_key_usage_t usage, diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 870b5b565..1deb48875 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -33,6 +33,11 @@ #include #include +extern psa_status_t psa_get_and_lock_key_slot_with_policy( + mbedtls_svc_key_id_t key, + psa_key_slot_t **p_slot, + psa_key_usage_t usage, + psa_algorithm_t alg ); /* * State sequence: * @@ -248,6 +253,7 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, psa_key_attributes_t attributes = psa_key_attributes_init(); psa_key_type_t type; psa_key_usage_t usage; + psa_key_slot_t *slot = NULL; if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) @@ -255,6 +261,9 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, return( PSA_ERROR_BAD_STATE ); } + if( psa_is_valid_key_id( password, 1 ) == 0 ) + return( PSA_ERROR_BAD_STATE ); + status = psa_get_key_attributes( password, &attributes ); if( status != PSA_SUCCESS ) return( status ); @@ -273,7 +282,33 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) return( PSA_ERROR_NOT_PERMITTED ); - operation->password = password; + status = psa_get_and_lock_key_slot_with_policy( password, &slot, + PSA_KEY_USAGE_DERIVE, + PSA_ALG_JPAKE ); + if( status != PSA_SUCCESS ) + return( status ); + + if( slot->key.data == NULL || slot->key.bytes == 0 ) + return( PSA_ERROR_INVALID_ARGUMENT ); + + if( operation->password_data != NULL ) + { + mbedtls_free( operation->password_data ); + operation->password_bytes = 0; + } + + operation->password_data = mbedtls_calloc( 1, slot->key.bytes ); + if( operation->password_data == NULL ) + { + status = psa_unlock_key_slot( slot ); + return( PSA_ERROR_INSUFFICIENT_MEMORY ); + } + memcpy( operation->password_data, slot->key.data, slot->key.bytes ); + operation->password_bytes = slot->key.bytes; + + status = psa_unlock_key_slot( slot ); + if( status != PSA_SUCCESS ) + return( status ); return( PSA_SUCCESS ); } @@ -348,9 +383,7 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_ecjpake_role role; - psa_key_slot_t *slot = NULL; if( operation->role == PSA_PAKE_ROLE_CLIENT ) role = MBEDTLS_ECJPAKE_CLIENT; @@ -359,22 +392,18 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) else return( PSA_ERROR_BAD_STATE ); - if( psa_is_valid_key_id( operation->password, 1 ) == 0 ) + if (operation->password_data == NULL || + operation->password_bytes == 0 ) + { return( PSA_ERROR_BAD_STATE ); - - status = psa_get_and_lock_key_slot( operation->password, &slot ); - if( status != PSA_SUCCESS ) - return( status ); - + } ret = mbedtls_ecjpake_setup( &operation->ctx.ecjpake, role, MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, - slot->key.data, slot->key.bytes ); - - psa_unlock_key_slot( slot ); - slot = NULL; + operation->password_data, + operation->password_bytes ); if( ret != 0 ) return( mbedtls_ecjpake_to_psa_error( ret ) ); @@ -840,7 +869,9 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) { operation->input_step = PSA_PAKE_STEP_INVALID; operation->output_step = PSA_PAKE_STEP_INVALID; - operation->password = MBEDTLS_SVC_KEY_ID_INIT; + mbedtls_free( operation->password_data ); + operation->password_data = NULL; + operation->password_bytes = 0; operation->role = PSA_PAKE_ROLE_NONE; mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; From 6110a16555bcb185c825fbfcccaca200a1c98c95 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 21:22:27 +0100 Subject: [PATCH 0732/1574] Document mbedtls_mpi_uint and mbedtls_mpi_sint Since they're part of the public API (even if only through a few functions), they should be documented. I deliberately skipped documenting how to configure the size of the type. Right now, MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 have no Doxygen documentation, so it's ambiguous whether they're part of the public API. Resolving this ambiguity is out of scope of my current work. Signed-off-by: Gilles Peskine --- include/mbedtls/bignum.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/mbedtls/bignum.h b/include/mbedtls/bignum.h index 9d15955f3..5800d4acb 100644 --- a/include/mbedtls/bignum.h +++ b/include/mbedtls/bignum.h @@ -179,6 +179,20 @@ #endif /* !MBEDTLS_NO_UDBL_DIVISION */ #endif /* !MBEDTLS_HAVE_INT64 */ +/** \typedef mbedtls_mpi_uint + * \brief The type of machine digits in a bignum, called _limbs_. + * + * This is always an unsigned integer type with no padding bits. The size + * is platform-dependent. + */ + +/** \typedef mbedtls_mpi_sint + * \brief The signed type corresponding to #mbedtls_mpi_uint. + * + * This is always an signed integer type with no padding bits. The size + * is platform-dependent. + */ + #ifdef __cplusplus extern "C" { #endif From db14a9d180069e8a6cb63455e75463aad9f68889 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 22:59:00 +0100 Subject: [PATCH 0733/1574] Fix NULL+0 in addition 0 + 0 Fix undefined behavior (typically harmless in practice) of mbedtls_mpi_add_mpi(), mbedtls_mpi_add_abs() and mbedtls_mpi_add_int() when both operands are 0 and the left operand is represented with 0 limbs. Signed-off-by: Gilles Peskine --- ChangeLog.d/mpi-add-0-ub.txt | 4 ++++ library/bignum.c | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 ChangeLog.d/mpi-add-0-ub.txt diff --git a/ChangeLog.d/mpi-add-0-ub.txt b/ChangeLog.d/mpi-add-0-ub.txt new file mode 100644 index 000000000..9f131a430 --- /dev/null +++ b/ChangeLog.d/mpi-add-0-ub.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix undefined behavior (typically harmless in practice) of + mbedtls_mpi_add_mpi(), mbedtls_mpi_add_abs() and mbedtls_mpi_add_int() + when both operands are 0 and the left operand is represented with 0 limbs. diff --git a/library/bignum.c b/library/bignum.c index 521787d74..497ccbc81 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -889,6 +889,11 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi if( B->p[j - 1] != 0 ) break; + /* Exit early to avoid undefined behavior on NULL+0 when X->n == 0 + * and B is 0 (of any size). */ + if( j == 0 ) + return( 0 ); + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); /* j is the number of non-zero limbs of B. Add those to X. */ From af601f97519f90cc4b669984dd3fcf215b8b2792 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 23:02:14 +0100 Subject: [PATCH 0734/1574] Fix undefined behavior with the most negative mbedtls_mpi_sint When x is the most negative value of a two's complement type, `(unsigned_type)(-x)` has undefined behavior, whereas `-(unsigned_type)x` has well-defined behavior and does what was intended. Signed-off-by: Gilles Peskine --- ChangeLog.d/mpi-most-negative-sint.txt | 4 + library/bignum.c | 10 +- tests/suites/test_suite_bignum.function | 144 +++++++++++++++++++++++ tests/suites/test_suite_bignum.misc.data | 3 + 4 files changed, 156 insertions(+), 5 deletions(-) create mode 100644 ChangeLog.d/mpi-most-negative-sint.txt diff --git a/ChangeLog.d/mpi-most-negative-sint.txt b/ChangeLog.d/mpi-most-negative-sint.txt new file mode 100644 index 000000000..5e775c482 --- /dev/null +++ b/ChangeLog.d/mpi-most-negative-sint.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix undefined behavior (typically harmless in practice) when some bignum + functions receive the most negative value of mbedtls_mpi_sint. Credit + to OSS-Fuzz. Fixes #6597. diff --git a/library/bignum.c b/library/bignum.c index 497ccbc81..04aca69e8 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -263,7 +263,7 @@ int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ) MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) ); memset( X->p, 0, X->n * ciL ); - X->p[0] = ( z < 0 ) ? -z : z; + X->p[0] = ( z < 0 ) ? -(mbedtls_mpi_uint)z : z; X->s = ( z < 0 ) ? -1 : 1; cleanup: @@ -853,7 +853,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ) mbedtls_mpi_uint p[1]; MPI_VALIDATE_RET( X != NULL ); - *p = ( z < 0 ) ? -z : z; + *p = ( z < 0 ) ? -(mbedtls_mpi_uint)z : z; Y.s = ( z < 0 ) ? -1 : 1; Y.n = 1; Y.p = p; @@ -1057,7 +1057,7 @@ int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -b : b; + p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; @@ -1075,7 +1075,7 @@ int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -b : b; + p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; @@ -1413,7 +1413,7 @@ int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, mbedtls_mpi_uint p[1]; MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -b : b; + p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 5c3d776f0..323846759 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1447,6 +1447,150 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void most_negative_mpi_sint( ) +{ + /* Ad hoc tests for n = -p = -2^(biL-1) as a mbedtls_mpi_sint. We + * guarantee that mbedtls_mpi_sint is a two's complement type, so this + * is a valid value. However, negating it (`-n`) has undefined behavior + * (although in practice `-n` evaluates to the value n). + * + * This function has ad hoc tests for this value. It's separated from other + * functions because the test framework makes it hard to pass this value + * into test cases. + * + * In the comments here: + * - biL = number of bits in limbs + * - p = 2^(biL-1) (smallest positive value not in mbedtls_mpi_sint range) + * - n = -2^(biL-1) (largest negative value in mbedtls_mpi_sint range) + */ + + mbedtls_mpi A, R, X; + mbedtls_mpi_init( &A ); + mbedtls_mpi_init( &R ); + mbedtls_mpi_init( &X ); + + const size_t biL = 8 * sizeof( mbedtls_mpi_sint ); + mbedtls_mpi_uint most_positive_plus_1 = (mbedtls_mpi_uint) 1 << ( biL - 1 ); + const mbedtls_mpi_sint most_positive = most_positive_plus_1 - 1; + const mbedtls_mpi_sint most_negative = - most_positive - 1; + TEST_EQUAL( (mbedtls_mpi_uint) most_negative, + (mbedtls_mpi_uint) 1 << ( biL - 1 ) ); + TEST_EQUAL( (mbedtls_mpi_uint) most_negative << 1, 0 ); + + /* Test mbedtls_mpi_lset() */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); + TEST_EQUAL( A.s, -1 ); + TEST_EQUAL( A.n, 1 ); + TEST_EQUAL( A.p[0], most_positive_plus_1 ); + + /* Test mbedtls_mpi_cmp_int(): -p == -p */ + TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), 0 ); + + /* Test mbedtls_mpi_cmp_int(): -(p+1) < -p */ + A.p[0] = most_positive_plus_1 + 1; + TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), -1 ); + + /* Test mbedtls_mpi_cmp_int(): -(p-1) > -p */ + A.p[0] = most_positive_plus_1 - 1; + TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), 1 ); + + /* Test mbedtls_mpi_add_int(): (p-1) + (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); + TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -1 ), 0 ); + + /* Test mbedtls_mpi_add_int(): (0) + (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, 0 ), 0 ); + TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, most_negative ), 0 ); + + /* Test mbedtls_mpi_add_int(): (-p) + (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( X.s, -1 ); + TEST_EQUAL( X.n, 2 ); + TEST_EQUAL( X.p[0], 0 ); + TEST_EQUAL( X.p[1], 1 ); + + /* Test mbedtls_mpi_sub_int(): (p) - (-p) */ + mbedtls_mpi_free( &X ); + TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); + TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( X.s, 1 ); + TEST_EQUAL( X.n, 1 ); + TEST_EQUAL( X.p[0], ~(mbedtls_mpi_uint)0 ); + + /* Test mbedtls_mpi_sub_int(): (0) - (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, 0 ), 0 ); + TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( X.s, 1 ); + TEST_EQUAL( X.n, 1 ); + TEST_EQUAL( X.p[0], most_positive_plus_1 ); + + /* Test mbedtls_mpi_sub_int(): (-p) - (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); + + /* Test mbedtls_mpi_div_int(): (-p+1) / (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, -most_positive ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, -most_positive ), 0 ); + + /* Test mbedtls_mpi_div_int(): (-p) / (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + + /* Test mbedtls_mpi_div_int(): (-2*p) / (-p) */ + TEST_EQUAL( mbedtls_mpi_shift_l( &A, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 2 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + + /* Test mbedtls_mpi_div_int(): (-2*p+1) / (-p) */ + TEST_EQUAL( mbedtls_mpi_add_int( &A, &A, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, -most_positive ), 0 ); + + /* Test mbedtls_mpi_div_int(): (p-1) / (-p) */ + TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, most_positive ), 0 ); + + /* Test mbedtls_mpi_div_int(): (p) / (-p) */ + TEST_EQUAL( mbedtls_mpi_add_int( &A, &A, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + + /* Test mbedtls_mpi_div_int(): (2*p) / (-p) */ + TEST_EQUAL( mbedtls_mpi_shift_l( &A, 1 ), 0 ); + TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -2 ), 0 ); + TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + + /* Test mbedtls_mpi_mod_int(): never valid */ + TEST_EQUAL( mbedtls_mpi_mod_int( X.p, &A, most_negative ), + MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); + + /* Test mbedtls_mpi_random(): never valid */ + TEST_EQUAL( mbedtls_mpi_random( &X, most_negative, &A, + mbedtls_test_rnd_std_rand, NULL ), + MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + +exit: + mbedtls_mpi_free( &A ); + mbedtls_mpi_free( &R ); + mbedtls_mpi_free( &X ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void mpi_selftest( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index 0b8aa334a..7aaacbe73 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1934,6 +1934,9 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Most negative mbedtls_mpi_sint +most_negative_mpi_sint: + MPI Selftest depends_on:MBEDTLS_SELF_TEST mpi_selftest: From ef7f4e47b183549784239d2d5bd3bb5c856e93c6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 23:25:27 +0100 Subject: [PATCH 0735/1574] Express abs(z) in a way that satisfies GCC and MSVC Signed-off-by: Gilles Peskine --- library/bignum.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 04aca69e8..53a9aa5e7 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -252,6 +252,17 @@ void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ) memcpy( Y, &T, sizeof( mbedtls_mpi ) ); } +static inline mbedtls_mpi_uint mpi_sint_abs( mbedtls_mpi_sint z ) +{ + if( z >= 0 ) + return( z ); + /* Take care to handle the most negative value (-2^(biL-1)) correctly. + * A naive -z would have undefined behavior. + * Write this in a way that makes popular compilers happy (GCC, Clang, + * MSVC). */ + return( (mbedtls_mpi_uint) 0 - (mbedtls_mpi_uint) z ); +} + /* * Set value from integer */ @@ -263,7 +274,7 @@ int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ) MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) ); memset( X->p, 0, X->n * ciL ); - X->p[0] = ( z < 0 ) ? -(mbedtls_mpi_uint)z : z; + X->p[0] = mpi_sint_abs( z ); X->s = ( z < 0 ) ? -1 : 1; cleanup: @@ -853,7 +864,7 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ) mbedtls_mpi_uint p[1]; MPI_VALIDATE_RET( X != NULL ); - *p = ( z < 0 ) ? -(mbedtls_mpi_uint)z : z; + *p = mpi_sint_abs( z ); Y.s = ( z < 0 ) ? -1 : 1; Y.n = 1; Y.p = p; @@ -1057,7 +1068,7 @@ int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; + p[0] = mpi_sint_abs( b ); B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; @@ -1075,7 +1086,7 @@ int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; + p[0] = mpi_sint_abs( b ); B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; @@ -1413,7 +1424,7 @@ int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, mbedtls_mpi_uint p[1]; MPI_VALIDATE_RET( A != NULL ); - p[0] = ( b < 0 ) ? -(mbedtls_mpi_uint)b : b; + p[0] = mpi_sint_abs( b ); B.s = ( b < 0 ) ? -1 : 1; B.n = 1; B.p = p; From 298f781948d4bd69cfe826ce86de907ac9dbb6c2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 15 Nov 2022 23:54:26 +0100 Subject: [PATCH 0736/1574] Use .datax for `make test`, not .data Looking for the .data file doesn't work in out-of-tree builds. Use the .datax file instead. `make clean` removes all .datax files, so this resolves the issue of executables not present on the current branch being left behind after a branch change followed by a `make clean`. Signed-off-by: Gilles Peskine --- tests/scripts/run-test-suites.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/scripts/run-test-suites.pl b/tests/scripts/run-test-suites.pl index 8a5bb937d..cedc0bfa5 100755 --- a/tests/scripts/run-test-suites.pl +++ b/tests/scripts/run-test-suites.pl @@ -50,10 +50,10 @@ GetOptions( 'verbose|v:1' => \$verbose, ) or die; -# All test suites = executable files derived from a .data file. +# All test suites = executable files with a .datax file. my @suites = (); -for my $data_file (glob 'suites/test_suite_*.data') { - (my $base = $data_file) =~ s#^suites/(.*)\.data$#$1#; +for my $data_file (glob 'test_suite_*.datax') { + (my $base = $data_file) =~ s/\.datax$//; push @suites, $base if -x $base; push @suites, "$base.exe" if -e "$base.exe"; } From 2dbfedae4a269c72438f6fff8e5cf6974e37c1ea Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 15 Nov 2022 10:52:57 +0000 Subject: [PATCH 0737/1574] Update early data test cases with latest code message Signed-off-by: Xiaokang Qian --- tests/scripts/all.sh | 3 +-- tests/ssl-opt.sh | 61 +++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 5 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 32e920d22..4b6a4cbb9 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3222,7 +3222,6 @@ component_build_armcc () { component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" - scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test: TLS 1.3 only, all key exchange modes enabled" @@ -3255,6 +3254,7 @@ component_test_tls13_only_ephemeral () { msg "build: TLS 1.3 only from default, only ephemeral key exchange mode" scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, only ephemeral key exchange mode" @@ -3302,7 +3302,6 @@ component_test_tls13_only_psk_all () { component_test_tls13_only_ephemeral_all () { msg "build: TLS 1.3 only from default, without PSK key exchange mode" scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED - scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 20c1b0f4d..5576320ff 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13050,14 +13050,69 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_EARLY_DATA run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ + "$P_CLI debug_level=4 force_version=tls13 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + 1 \ + -c "Reconnecting with saved session" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ + -s "Parsing extension 'Early Data/42' (0 bytes)" \ + -s "Sending extension Early Data/42 (0 bytes)" \ + -s "early data accepted" + +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3 m->G: EarlyData: hybrid check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ 1 \ - -c "client hello, adding early_data extension" \ -c "Reconnecting with saved session" \ - -c "EncryptedExtensions: early_data(42) extension is unsupported" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ -s "Parsing extension 'Early Data/42' (0 bytes)" \ - -s "Sending extension Early Data/42 (0 bytes)" + -s "Sending extension Early Data/42 (0 bytes)" \ + -s "early data accepted" + +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3 m->G: EarlyData: negative check, fail" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + 0 \ + -c "Reconnecting with saved session" \ + -C "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension does not exist." \ + -C "EncryptedExtensions: early_data(42) extension received." \ + -C "EncryptedExtensions: early_data(42) extension ( ignored )." + +#TODO openssl compatible mode can't work currently, it will need external psk. +skip_next_test +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3, ext PSK, early data" \ + "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ + 1 \ + -c "Reconnecting with saved session" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From f3cefb4f4cf3b0720a6f56fe70371ba6889aefac Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 16 Nov 2022 03:23:46 +0000 Subject: [PATCH 0738/1574] Move early data test cases to tls13-misc.sh Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-misc.sh | 72 +++++++++++++++++++++++++++++++ tests/ssl-opt.sh | 72 ------------------------------- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 4ad6faa48..cc650c1e1 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -282,3 +282,75 @@ run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \ 0 \ -s "key exchange mode: ephemeral$" +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ + "$P_CLI debug_level=4 force_version=tls13 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + 1 \ + -c "Reconnecting with saved session" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ + -s "Parsing extension 'Early Data/42' (0 bytes)" \ + -s "Sending extension Early Data/42 (0 bytes)" \ + -s "early data accepted" + +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3 m->G: EarlyData: hybrid check, good" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + 1 \ + -c "Reconnecting with saved session" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ + -s "Parsing extension 'Early Data/42' (0 bytes)" \ + -s "Sending extension Early Data/42 (0 bytes)" \ + -s "early data accepted" + +requires_gnutls_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3 m->G: EarlyData: negative check, fail" \ + "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + 0 \ + -c "Reconnecting with saved session" \ + -C "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension does not exist." \ + -C "EncryptedExtensions: early_data(42) extension received." \ + -C "EncryptedExtensions: early_data(42) extension ( ignored )." + +#TODO openssl compatible mode can't work currently, it will need external psk. +skip_next_test +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_EARLY_DATA +run_test "TLS 1.3, ext PSK, early data" \ + "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ + "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ + 1 \ + -c "Reconnecting with saved session" \ + -c "NewSessionTicket: early_data(42) extension received." \ + -c "ClientHello: early_data(42) extension exists." \ + -c "EncryptedExtensions: early_data(42) extension received." \ + -c "EncryptedExtensions: early_data(42) extension ( ignored )." + diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 5576320ff..fdbb31050 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13042,78 +13042,6 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ - "$P_CLI debug_level=4 force_version=tls13 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ - 1 \ - -c "Reconnecting with saved session" \ - -c "NewSessionTicket: early_data(42) extension received." \ - -c "ClientHello: early_data(42) extension exists." \ - -c "EncryptedExtensions: early_data(42) extension received." \ - -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ - -s "Parsing extension 'Early Data/42' (0 bytes)" \ - -s "Sending extension Early Data/42 (0 bytes)" \ - -s "early data accepted" - -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3 m->G: EarlyData: hybrid check, good" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ - "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ - 1 \ - -c "Reconnecting with saved session" \ - -c "NewSessionTicket: early_data(42) extension received." \ - -c "ClientHello: early_data(42) extension exists." \ - -c "EncryptedExtensions: early_data(42) extension received." \ - -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ - -s "Parsing extension 'Early Data/42' (0 bytes)" \ - -s "Sending extension Early Data/42 (0 bytes)" \ - -s "early data accepted" - -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3 m->G: EarlyData: negative check, fail" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ - "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ - 0 \ - -c "Reconnecting with saved session" \ - -C "NewSessionTicket: early_data(42) extension received." \ - -c "ClientHello: early_data(42) extension does not exist." \ - -C "EncryptedExtensions: early_data(42) extension received." \ - -C "EncryptedExtensions: early_data(42) extension ( ignored )." - -#TODO openssl compatible mode can't work currently, it will need external psk. -skip_next_test -requires_config_enabled MBEDTLS_SSL_SRV_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3, ext PSK, early data" \ - "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ - "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ - 1 \ - -c "Reconnecting with saved session" \ - -c "NewSessionTicket: early_data(42) extension received." \ - -c "ClientHello: early_data(42) extension exists." \ - -c "EncryptedExtensions: early_data(42) extension received." \ - -c "EncryptedExtensions: early_data(42) extension ( ignored )." - # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_MEMORY_DEBUG From 51c5a8b561f4e509ed69ea3761c89248410146a9 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 16 Nov 2022 08:32:51 +0000 Subject: [PATCH 0739/1574] Update ticket flag macros Define the ALLOW_PSK_RESUMPTION and ALLOW_PSK_EPHEMERAL_RESUMPTION to the key exchange mode EXCHANGE_MODE_PSK and EXCHANGE_MODE_PSK_EPHEMERAL to facilate later check. Since they are 1( 1u<<0 ) and 4( 1u<<2 ), so define ALLOW_EARLY_DATA to 8( 1u<<3 ). Signed-off-by: Xiaokang Qian --- include/mbedtls/ssl.h | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 6829fd7b6..d0558511a 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -810,19 +810,20 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) - typedef uint8_t mbedtls_ssl_tls13_ticket_flags; -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1U << 3 ) -#define MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK \ - ( MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION | \ - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION | \ +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1U << 3 ) + +#define MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK \ + ( MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION | \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION | \ MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ) #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + /** * \brief Callback type: server-side session cache getter * From 0cc4320e16fc58dfab6dbe277e4115032b9c0220 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 16 Nov 2022 08:43:50 +0000 Subject: [PATCH 0740/1574] Add EARLY_DATA guard to the early data extension in session ticket Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index d276a9566..0372f2d98 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2541,6 +2541,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, switch( extension_type ) { +#if defined(MBEDTLS_SSL_EARLY_DATA) case MBEDTLS_TLS_EXT_EARLY_DATA: if( extension_data_len != 4 ) { @@ -2555,6 +2556,7 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA; } break; +#endif /* MBEDTLS_SSL_EARLY_DATA */ default: MBEDTLS_SSL_PRINT_EXT( From e9f92c4fbc212390cf104185222f83bb9eba5bd9 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 16 Nov 2022 10:23:05 +0100 Subject: [PATCH 0741/1574] tls: Fix in_cid buffer size in transform structure Signed-off-by: Ronald Cron --- library/ssl_misc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 41bb9c514..72bf096a3 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1021,7 +1021,7 @@ struct mbedtls_ssl_transform #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) uint8_t in_cid_len; uint8_t out_cid_len; - unsigned char in_cid [ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; + unsigned char in_cid [ MBEDTLS_SSL_CID_IN_LEN_MAX ]; unsigned char out_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ From 9a1396bfcc2bc2c43aa94f2fdffcfb4341c229b7 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 16 Nov 2022 11:04:48 +0100 Subject: [PATCH 0742/1574] Add ChangeLog Signed-off-by: Ronald Cron --- ChangeLog.d/fix-in-cid-buffer-size.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ChangeLog.d/fix-in-cid-buffer-size.txt diff --git a/ChangeLog.d/fix-in-cid-buffer-size.txt b/ChangeLog.d/fix-in-cid-buffer-size.txt new file mode 100644 index 000000000..c8ede1f1c --- /dev/null +++ b/ChangeLog.d/fix-in-cid-buffer-size.txt @@ -0,0 +1,15 @@ +Bugfix + * Fix potential buffer overflow in DTLS with MBEDTLS_SSL_DTLS_CONNECTION_ID + enabled leading to context corruption. + +Security + * Fix potential memory probe through non-constant time memcmp() in DTLS + with MBEDTLS_SSL_DTLS_CONNECTION_ID enabled. The memory probe is possible + only under very specific and unlikely conditions: + 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX < MBEDTLS_SSL_CID_IN_LEN_MAX if + MBEDTLS_SSL_CONTEXT_SERIALIZATION is disabled, + MBEDTLS_SERVER_HELLO_RANDOM_LEN + MBEDTLS_CLIENT_HELLO_RANDOM_LEN + + 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX < MBEDTLS_SSL_CID_IN_LEN_MAX if + MBEDTLS_SSL_CONTEXT_SERIALIZATION is enabled. Those conditions are not + met with the default values of MBEDTLS_SSL_CID_IN_LEN_MAX and + MBEDTLS_SSL_CID_OUT_LEN_MAX where the two maximum lengths are equal. From e7bab00825c42bb39ed63d42a98c306cb9869edd Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 16 Nov 2022 08:51:01 +0000 Subject: [PATCH 0743/1574] Update enabled guards for early data cases Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-misc.sh | 22 +++++++++++++++------- tests/scripts/all.sh | 1 - 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index cc650c1e1..8b9d5750f 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -287,8 +287,9 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_EARLY_DATA +requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ "$P_CLI debug_level=4 force_version=tls13 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ @@ -307,8 +308,9 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_EARLY_DATA +requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->G: EarlyData: hybrid check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ @@ -327,9 +329,10 @@ requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_EARLY_DATA -run_test "TLS 1.3 m->G: EarlyData: negative check, fail" \ +requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED +run_test "TLS 1.3 m->G: EarlyData: no early_data in NewSessionTicket, good." \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ 0 \ @@ -339,11 +342,16 @@ run_test "TLS 1.3 m->G: EarlyData: negative check, fail" \ -C "EncryptedExtensions: early_data(42) extension received." \ -C "EncryptedExtensions: early_data(42) extension ( ignored )." -#TODO openssl compatible mode can't work currently, it will need external psk. +#TODO: OpenSSL tests don't work now. It might be openssl options issue, cause GnuTLS has worked. skip_next_test -requires_config_enabled MBEDTLS_SSL_SRV_C +requires_openssl_tls1_3 +requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C -requires_config_enabled MBEDTLS_SSL_EARLY_DATA +requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_EARLY_DATA +requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3, ext PSK, early data" \ "$O_NEXT_SRV_EARLY_DATA -msg -debug -tls1_3 -psk_identity 0a0b0c -psk 010203 -allow_no_dhe_kex -nocert" \ "$P_CLI debug_level=5 force_version=tls13 tls13_kex_modes=psk early_data=1 psk=010203 psk_identity=0a0b0c" \ diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 4b6a4cbb9..245324a5f 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2105,7 +2105,6 @@ component_test_psa_crypto_config_accel_hash_use_psa () { scripts/config.py unset MBEDTLS_HKDF_C # has independent PSA implementation scripts/config.py unset MBEDTLS_HMAC_DRBG_C scripts/config.py unset MBEDTLS_ECDSA_DETERMINISTIC - scripts/config.py unset MBEDTLS_SSL_EARLY_DATA scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_DETERMINISTIC_ECDSA loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" From f3be7ccadebd605ad23c4b46bfce1aa2af02666a Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 16 Nov 2022 12:53:20 +0100 Subject: [PATCH 0744/1574] Keep drivers enabled also in reference build Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9fba034cd..c76a94fcf 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2046,11 +2046,10 @@ config_psa_crypto_hash_use_psa () { DRIVER_ONLY="$1" # start with config full for maximum coverage (also enables USE_PSA) scripts/config.py full - # enable support for configuring PSA-only algorithms + # enable support for drivers and configuring PSA-only algorithms scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS if [ "$DRIVER_ONLY" -eq 1 ]; then - # enable support for drivers - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS # disable the built-in implementation of hashes scripts/config.py unset MBEDTLS_MD5_C scripts/config.py unset MBEDTLS_RIPEMD160_C From 02c25b5f83f6f607007133b1f49931fe7c2630f5 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 15 Nov 2022 14:08:42 +0100 Subject: [PATCH 0745/1574] tls12: psa_pake: use common code for parsing/writing round one and round two data Share a common parsing code for both server and client for parsing round one and two. Signed-off-by: Valerio Setti --- library/ssl_misc.h | 212 +++++++++++++++++++++++++++++++++++++ library/ssl_tls.c | 22 ++-- library/ssl_tls12_client.c | 179 +++++-------------------------- library/ssl_tls12_server.c | 125 +++++----------------- 4 files changed, 279 insertions(+), 259 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 8b9624350..d4ce35c5a 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2364,6 +2364,218 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) } #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) +/** + * \brief Parse the provided input buffer for getting the first round + * of key exchange. This code is common between server and client + * + * \param pake_ctx [in] the PAKE's operation/context structure + * \param buf [in] input buffer to parse + * \param len [in] length of the input buffer + * + * \return 0 on success or a negative error code in case of failure + */ +static inline int psa_tls12_parse_ecjpake_round_one( + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len ) +{ + psa_status_t status; + size_t input_offset = 0; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1; x <= 2; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; + step <= PSA_PAKE_STEP_ZK_PROOF; + ++step ) + { + /* Length is stored at the first byte */ + size_t length = buf[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } + + status = psa_pake_input( pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + return psa_ssl_status_to_mbedtls( status ); + } + + input_offset += length; + } + } + + return( 0 ); +} + +/** + * \brief Parse the provided input buffer for getting the second round + * of key exchange. This code is common between server and client + * + * \param pake_ctx [in] the PAKE's operation/context structure + * \param buf [in] input buffer to parse + * \param len [in] length of the input buffer + * + * \return 0 on success or a negative error code in case of failure + */ +static inline int psa_tls12_parse_ecjpake_round_two( + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len, int role ) +{ + psa_status_t status; + size_t input_offset = 0; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + size_t length; + + /* + * On its 2nd round, the server sends 3 extra bytes which identify the + * curve. Therefore we should skip them only on the client side + */ + if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && + ( role == MBEDTLS_SSL_IS_CLIENT ) ) + { + /* Length is stored after the 3 bytes for the curve */ + length = buf[input_offset + 3]; + input_offset += 3 + 1; + } + else + { + /* Length is stored at the first byte */ + length = buf[input_offset]; + input_offset += 1; + } + + if( input_offset + length > len ) + { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + status = psa_pake_input( pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + return psa_ssl_status_to_mbedtls( status ); + } + + input_offset += length; + } + + return( 0 ); +} + +/** + * \brief Write the first round of key exchange into the provided output + * buffer. This code is common between server and client + * + * \param pake_ctx [in] the PAKE's operation/context structure + * \param buf [out] the output buffer in which data will be written to + * \param len [in] length of the output buffer + * \param olen [out] the length of the data really written on the buffer + * + * \return 0 on success or a negative error code in case of failure + */ +static inline int psa_tls12_write_ecjpake_round_one( + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen ) +{ + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(buf + output_offset) = 65; + } else { + *(buf + output_offset) = 32; + } + output_offset += 1; + + status = psa_pake_output( pake_ctx, step, + buf + output_offset, + len - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + } + + *olen = output_offset; + + return( 0 ); +} + +/** + * \brief Write the second round of key exchange into the provided output + * buffer. This code is common between server and client + * + * \param pake_ctx [in] the PAKE's operation/context structure + * \param buf [out] the output buffer in which data will be written to + * \param len [in] length of the output buffer + * \param olen [out] the length of the data really written on the buffer + * + * \return 0 on success or a negative error code in case of failure + */ +static inline int psa_tls12_write_ecjpake_round_two( + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen ) +{ + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + if (step != PSA_PAKE_STEP_ZK_PROOF) { + *(buf + output_offset) = 65; + } else { + *(buf + output_offset) = 32; + } + output_offset += 1; + status = psa_pake_output( pake_ctx, + step, buf + output_offset, + len - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + + *olen = output_offset; + + return( 0 ); +} +#endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO + /** * \brief TLS record protection modes */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index ebada7a39..8771c595b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1616,23 +1616,19 @@ void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, /* * Set EC J-PAKE password for current handshake */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, const unsigned char *pw, size_t pw_len ) { -#if defined(MBEDTLS_USE_PSA_CRYPTO) psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_pake_role_t psa_role; psa_status_t status; -#else - mbedtls_ecjpake_role role; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ if( ssl->handshake == NULL || ssl->conf == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) psa_role = PSA_PAKE_ROLE_SERVER; else @@ -1688,7 +1684,17 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, ssl->handshake->psa_pake_ctx_is_ok = 1; return( 0 ); -#else +} +#else /* MBEDTLS_USE_PSA_CRYPTO */ +int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, + const unsigned char *pw, + size_t pw_len ) +{ + mbedtls_ecjpake_role role; + + if( ssl->handshake == NULL || ssl->conf == NULL ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) role = MBEDTLS_ECJPAKE_SERVER; else @@ -1699,8 +1705,8 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) @@ -3734,6 +3740,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if !defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECDH_C) mbedtls_ecdh_free( &handshake->ecdh_ctx ); #endif + #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_pake_abort( &handshake->psa_pake_ctx ); @@ -6042,7 +6049,6 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ) return( ret ); } - /* Compute master secret if needed */ ret = ssl_compute_master( ssl->handshake, ssl->session_negotiate->master, diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 3d25e4003..c90ed2e46 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -130,13 +130,9 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, const unsigned char *end, size_t *olen ) { -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_status_t status; -#else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ unsigned char *p = buf; - size_t kkpp_len; + size_t kkpp_len = 0; *olen = 0; @@ -168,41 +164,15 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t output_offset = 0; - size_t output_len; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) + ret = psa_tls12_write_ecjpake_round_one(&ssl->handshake->psa_pake_ctx, + p + 2, end - p - 2, &kkpp_len ); + if ( ret != 0 ) { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* For each step, prepend 1 byte with the length of the data */ - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(p + 2 + output_offset) = 65; - } else { - *(p + 2 + output_offset) = 32; - } - output_offset += 1; - - status = psa_pake_output( &ssl->handshake->psa_pake_ctx, - step, p + 2 + output_offset, - end - p - output_offset - 2, - &output_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; - } + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); + return( ret ); } - - kkpp_len = output_offset; #else ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, p + 2, end - p - 2, &kkpp_len, @@ -924,9 +894,6 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, size_t len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_status_t status; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ if( ssl->handshake->ciphersuite_info->key_exchange != MBEDTLS_KEY_EXCHANGE_ECJPAKE ) @@ -941,50 +908,21 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, ssl->handshake->ecjpake_cache_len = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t input_offset = 0; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) + if( ( ret = psa_tls12_parse_ecjpake_round_one( + &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* Length is stored at the first byte */ - size_t length = buf[input_offset]; - input_offset += 1; + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - if( input_offset + length > len ) - { - ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; - goto psa_pake_error; - } - - status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - ret = psa_ssl_status_to_mbedtls( status ); - goto psa_pake_error; - } - - input_offset += length; - } + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + return( ret ); } return( 0 ); - -psa_pake_error: - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); - mbedtls_ssl_send_alert_message( - ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - - return( ret ); #else if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, buf, len ) ) != 0 ) @@ -2395,48 +2333,9 @@ start_processing: if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_status_t status; - size_t len = end - p; - size_t input_offset = 0; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - size_t length; - - if( step == PSA_PAKE_STEP_KEY_SHARE ) - { - /* Length is stored after 3bytes curve */ - length = p[input_offset + 3]; - input_offset += 3 + 1; - } - else - { - /* Length is stored at the first byte */ - length = p[input_offset]; - input_offset += 1; - } - - if( input_offset + length > len ) - { - ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; - goto psa_pake_out; - } - - status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, - p + input_offset, length ); - if( status != PSA_SUCCESS) - { - ret = psa_ssl_status_to_mbedtls( status ); - goto psa_pake_out; - } - - input_offset += length; - } - -psa_pake_out: - if( ret != 0 ) + if( ( ret = psa_tls12_parse_ecjpake_round_two( + &ssl->handshake->psa_pake_ctx, p, end - p, + ssl->conf->endpoint ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); @@ -3393,37 +3292,15 @@ ecdh_calc_secret: unsigned char *out_p = ssl->out_msg + header_len; unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len; - psa_status_t status; - size_t output_offset = 0; - size_t output_len; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) + ret = psa_tls12_write_ecjpake_round_two( &ssl->handshake->psa_pake_ctx, + out_p, end_p - out_p, &content_len ); + if ( ret != 0 ) { - /* For each step, prepend 1 byte with the length of the data */ - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(out_p + output_offset) = 65; - } else { - *(out_p + output_offset) = 32; - } - output_offset += 1; - status = psa_pake_output( &ssl->handshake->psa_pake_ctx, - step, out_p + output_offset, - end_p - out_p - output_offset, - &output_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); + return( ret ); } - - content_len = output_offset; #else ret = mbedtls_ecjpake_write_round_two( &ssl->handshake->ecjpake_ctx, ssl->out_msg + header_len, diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 68b4d0988..806efd21b 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -290,12 +290,9 @@ static int ssl_parse_supported_point_formats( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, const unsigned char *buf, - size_t len ) + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_status_t status; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ssl->handshake->psa_pake_ctx_is_ok != 1 ) @@ -308,35 +305,19 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t input_offset = 0; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) + if ( ( ret = psa_tls12_parse_ecjpake_round_one( + &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* Length is stored at the first byte */ - size_t length = buf[input_offset]; - input_offset += 1; + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - if( input_offset + length > len ) - { - ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; - goto psa_pake_error; - } + MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - ret = psa_ssl_status_to_mbedtls( status ); - goto psa_pake_error; - } - - input_offset += length; - } + return( ret ); } #else if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, @@ -353,20 +334,6 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, ssl->handshake->cli_exts |= MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK; return( 0 ); - -#if defined(MBEDTLS_USE_PSA_CRYPTO) -psa_pake_error: - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); - mbedtls_ssl_send_alert_message( - ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - - return( ret ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ @@ -2903,13 +2870,13 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_USE_PSA_CRYPTO) unsigned char *out_p = ssl->out_msg + ssl->out_msglen; unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen; - psa_status_t status; size_t output_offset = 0; - size_t output_len; + size_t output_len = 0; size_t ec_len; #if !defined(MBEDTLS_ECJPAKE_ALT) @@ -2931,34 +2898,20 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, #endif //MBEDTLS_PSA_BUILTIN_ALG_JPAKE output_offset += ec_len; - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) + ret = psa_tls12_write_ecjpake_round_two( &ssl->handshake->psa_pake_ctx, + out_p + output_offset, + end_p - out_p - output_offset, &output_len ); + if( ret != 0 ) { - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(out_p + output_offset) = 65; - } else { - *(out_p + output_offset) = 32; - } - output_offset += 1; - status = psa_pake_output( &ssl->handshake->psa_pake_ctx, - step, out_p + output_offset, - end_p - out_p - output_offset, - &output_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); + return( ret ); } + output_offset += output_len; ssl->out_msglen += output_offset; #else - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; ret = mbedtls_ecjpake_write_round_two( @@ -4192,37 +4145,9 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t len = end - p; - psa_status_t status; - size_t input_offset = 0; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* Length is stored at the first byte */ - size_t length = p[input_offset]; - input_offset += 1; - - if( input_offset + length > len ) - { - ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; - goto psa_pake_out; - } - - status = psa_pake_input( &ssl->handshake->psa_pake_ctx, step, - p + input_offset, length ); - if( status != PSA_SUCCESS) - { - ret = psa_ssl_status_to_mbedtls( status ); - goto psa_pake_out; - } - - input_offset += length; - } - -psa_pake_out: - if( ret != 0 ) + if( ( ret = psa_tls12_parse_ecjpake_round_two( + &ssl->handshake->psa_pake_ctx, p, end - p, + ssl->conf->endpoint ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); From fbbc1f3812cd13ccf86c2e8d090f62ef6a27705a Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 15 Nov 2022 16:39:55 +0100 Subject: [PATCH 0746/1574] tls12: psa_pake: use proper defines for the output size of each step in ECJPAKE Signed-off-by: Valerio Setti --- library/ssl_misc.h | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index d4ce35c5a..34879a18c 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2366,6 +2366,18 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) + +/* Currently JPAKE only supports elliptic curve secp256r1 */ +#define MBEDTLS_SSL_ECJPAKE_PSA_PRIMITIVE \ + PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256 ) + +/* Expected output data size for each "step" of EC-JPAKE key echange */ +#define MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ) \ + PSA_PAKE_OUTPUT_SIZE( PSA_ALG_JPAKE, \ + MBEDTLS_SSL_ECJPAKE_PSA_PRIMITIVE, \ + step ) + /** * \brief Parse the provided input buffer for getting the first round * of key exchange. This code is common between server and client @@ -2376,7 +2388,7 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) * * \return 0 on success or a negative error code in case of failure */ -static inline int psa_tls12_parse_ecjpake_round_one( +static inline int psa_tls12_parse_ecjpake_round_one( psa_pake_operation_t *pake_ctx, const unsigned char *buf, size_t len ) @@ -2502,11 +2514,7 @@ static inline int psa_tls12_write_ecjpake_round_one( ++step ) { /* For each step, prepend 1 byte with the length of the data */ - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(buf + output_offset) = 65; - } else { - *(buf + output_offset) = 32; - } + *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); output_offset += 1; status = psa_pake_output( pake_ctx, step, @@ -2552,11 +2560,7 @@ static inline int psa_tls12_write_ecjpake_round_two( ++step ) { /* For each step, prepend 1 byte with the length of the data */ - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(buf + output_offset) = 65; - } else { - *(buf + output_offset) = 32; - } + *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); output_offset += 1; status = psa_pake_output( pake_ctx, step, buf + output_offset, From 4a9caaa0c9cae90d5cc4a7e08f92752698cee6cc Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 16 Nov 2022 08:17:09 +0100 Subject: [PATCH 0747/1574] tls12: psa_pake: check elliptic curve's TLS ID on handshake Signed-off-by: Valerio Setti --- library/ssl_misc.h | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 34879a18c..807e7811d 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2452,22 +2452,27 @@ static inline int psa_tls12_parse_ecjpake_round_two( /* * On its 2nd round, the server sends 3 extra bytes which identify the - * curve. Therefore we should skip them only on the client side + * curve: + * - the 1st one is MBEDTLS_ECP_TLS_NAMED_CURVE + * - the 2nd and 3rd represent curve's TLS ID + * Validate this data before moving forward */ - if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && + if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && ( role == MBEDTLS_SSL_IS_CLIENT ) ) { - /* Length is stored after the 3 bytes for the curve */ - length = buf[input_offset + 3]; - input_offset += 3 + 1; - } - else - { - /* Length is stored at the first byte */ - length = buf[input_offset]; - input_offset += 1; + uint16_t tls_id = MBEDTLS_GET_UINT16_BE( buf, 1 ); + + if( ( *buf != MBEDTLS_ECP_TLS_NAMED_CURVE ) || + ( mbedtls_ecp_curve_info_from_tls_id( tls_id ) == NULL ) ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + + input_offset += 3; } + /* Length is stored at the first byte */ + length = buf[input_offset]; + input_offset += 1; + if( input_offset + length > len ) { return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; From 6f1b5741ae239433414b772adb06e8515c1bd353 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 16 Nov 2022 10:00:32 +0100 Subject: [PATCH 0748/1574] tls12: psa_pake: simplify EC info parsing in server's 2nd round Signed-off-by: Valerio Setti --- library/ssl_tls12_server.c | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 806efd21b..38899f952 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -2877,26 +2877,24 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, ssl->out_msglen; size_t output_offset = 0; size_t output_len = 0; - size_t ec_len; - -#if !defined(MBEDTLS_ECJPAKE_ALT) - psa_pake_operation_t* pake_op = &(ssl->handshake->psa_pake_ctx); - - mbedtls_ecp_tls_write_group( &(pake_op->ctx.ecjpake.grp), - &ec_len, out_p + output_offset, - end_p - out_p); -#else const mbedtls_ecp_curve_info *curve_info; - if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - + /* + * The first 3 bytes are: + * [0] MBEDTLS_ECP_TLS_NAMED_CURVE + * [1, 2] elliptic curve's TLS ID + * + * However since we only support secp256r1 for now, we hardcode its + * TLS ID here + */ + if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( + MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) + { + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + } *out_p = MBEDTLS_ECP_TLS_NAMED_CURVE; - - MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p + 1, 0 ); - ec_len = 3; -#endif //MBEDTLS_PSA_BUILTIN_ALG_JPAKE - output_offset += ec_len; + MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p, 1 ); + output_offset += sizeof( uint8_t ) + sizeof( uint16_t ); ret = psa_tls12_write_ecjpake_round_two( &ssl->handshake->psa_pake_ctx, out_p + output_offset, From 52d8e96ff6f729c9f64222c56f1088458f023dce Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 16 Nov 2022 12:55:27 +0100 Subject: [PATCH 0749/1574] Disable PSA_WANT_ALG_STREAM_CIPHER, PSA_WANT_ALG_ECB_NO_PADDING also in reference config Signed-off-by: Przemek Stekiel Signed-off-by: Przemek Stekiel --- tests/scripts/all.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index c76a94fcf..22c3f760e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2115,7 +2115,7 @@ component_test_psa_crypto_config_accel_hash_use_psa () { tests/ssl-opt.sh msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - #tests/compat.sh + tests/compat.sh } # This component provides reference configuration for test_psa_crypto_config_accel_hash_use_psa @@ -2125,6 +2125,9 @@ component_test_psa_crypto_config_accel_hash_use_psa () { component_test_psa_crypto_config_reference_hash_use_psa() { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + config_psa_crypto_hash_use_psa 0 make From 6419ab5299a723684f7ada8d69f0e8046ecc7d26 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 16 Nov 2022 12:57:06 +0100 Subject: [PATCH 0750/1574] Reduce number of skipped suites (after making configs more similar) Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index ba38ec280..508933718 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -145,12 +145,6 @@ TASKS = { 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', 'ignored_suites': ['shax', 'mdx', # the software implementations that are being excluded 'md', # the legacy abstraction layer that's being excluded - 'entropy', 'hmac_drbg', 'random', # temporary limitation - # (see RNG EPIC) - 'psa_crypto_init', # doesn't work with external RNG - 'hkdf', # legacy still depends on MD, - # but there's a PSA interface that doesn't - 'pkcs7' # recent addition, will be addressed later ]}} } From 0f0b54851944c7c4523061810711850e8851ad73 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 16 Nov 2022 14:23:51 +0000 Subject: [PATCH 0751/1574] Limit ChangeLog entry to 80 characters Signed-off-by: Tom Cosgrove --- ...-possible-false-success-in-mbedtls_cipher_check_tag.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt b/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt index 01492438a..1f9e0aa35 100644 --- a/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt +++ b/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt @@ -1,4 +1,5 @@ Changes - * Calling AEAD tag-specific functions for non-AEAD algorithms (which should not - be done - they are documented for use only by AES-GCM and ChaCha20+Poly1305) - now returns MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE instead of success (0). + * Calling AEAD tag-specific functions for non-AEAD algorithms (which + should not be done - they are documented for use only by AES-GCM and + ChaCha20+Poly1305) now returns MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE + instead of success (0). From 7c7954842b6e287f95168a5dafdc00f0491e1675 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 15 Nov 2022 22:26:12 +0100 Subject: [PATCH 0752/1574] Adapt ec-jpake_setup test Now when operation holds pointer to dynamically allocated buffer for password key we can't do copy of the operation object in test instead we need to re-initialize operation object after error. Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_psa_crypto.function | 54 ++++++++++++++++----- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 779f594dc..60befa73f 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -31,6 +31,29 @@ #define ASSERT_OPERATION_IS_ACTIVE( operation ) TEST_ASSERT( operation.id != 0 ) #define ASSERT_OPERATION_IS_INACTIVE( operation ) TEST_ASSERT( operation.id == 0 ) +#if defined(PSA_WANT_ALG_JPAKE) +void ecjpake_operation_setup( psa_pake_operation_t *operation, + psa_pake_cipher_suite_t *cipher_suite, + psa_pake_role_t role, + mbedtls_svc_key_id_t key, + size_t key_available ) +{ + *operation = psa_pake_operation_init(); + + TEST_EQUAL( psa_pake_setup( operation, cipher_suite ), + PSA_SUCCESS ); + + TEST_EQUAL( psa_pake_set_role( operation, role), + PSA_SUCCESS ); + + if( key_available ) + TEST_EQUAL( psa_pake_set_password_key( operation, key ), + PSA_SUCCESS ); +exit: + return; +} +#endif + /** An invalid export length that will never be set by psa_export_key(). */ static const size_t INVALID_EXPORT_LENGTH = ~0U; @@ -8740,7 +8763,6 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); - psa_pake_operation_t op_copy = psa_pake_operation_init(); psa_algorithm_t alg = alg_arg; psa_pake_primitive_t primitive = primitive_arg; psa_key_type_t key_type_pw = key_type_pw_arg; @@ -8839,22 +8861,25 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, if( input_first ) { /* Invalid parameters (input) */ - op_copy = operation; - TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid parameters (step) */ - op_copy = operation; - TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - op_copy = operation; - TEST_EQUAL( psa_pake_input( &op_copy, PSA_PAKE_STEP_ZK_PROOF, + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); /* Possibly valid */ + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, size_key_share ), expected_status_input_output); @@ -8875,22 +8900,25 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, else { /* Invalid parameters (output) */ - op_copy = operation; - TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); - op_copy = operation; /* Invalid parameters (step) */ - TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF + 10, + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - op_copy = operation; - TEST_EQUAL( psa_pake_output( &op_copy, PSA_PAKE_STEP_ZK_PROOF, + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); /* Possibly valid */ + ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, buf_size, &output_len ), expected_status_input_output ); From 1def5becc285b9150b334d7626e98d413b29a026 Mon Sep 17 00:00:00 2001 From: Przemyslaw Stekiel Date: Wed, 16 Nov 2022 12:00:26 +0100 Subject: [PATCH 0753/1574] Add psa_get_and_lock_key_slot_with_policy to header file Signed-off-by: Przemyslaw Stekiel --- library/psa_crypto_core.h | 8 ++++++++ library/psa_crypto_pake.c | 5 ----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 98638481c..37f8162de 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -183,6 +183,14 @@ static inline psa_key_slot_number_t psa_key_slot_get_slot_number( } #endif +/** Get the description of a key given its identifier and policy constraints + * and lock it. + */ +psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, + psa_key_slot_t **p_slot, + psa_key_usage_t usage, + psa_algorithm_t alg ); + /** Completely wipe a slot in memory, including its policy. * * Persistent storage is not affected. diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 1deb48875..224f922db 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -33,11 +33,6 @@ #include #include -extern psa_status_t psa_get_and_lock_key_slot_with_policy( - mbedtls_svc_key_id_t key, - psa_key_slot_t **p_slot, - psa_key_usage_t usage, - psa_algorithm_t alg ); /* * State sequence: * From 542d9323521434bb5b4533eec244e95f79e73eae Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 17 Nov 2022 09:43:34 +0100 Subject: [PATCH 0754/1574] Fix handling of default value for task argument Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 508933718..4ebd5f630 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -153,7 +153,7 @@ def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument('outcomes', metavar='OUTCOMES.CSV', help='Outcome file to analyze') - parser.add_argument('task', default='all', + parser.add_argument('task', default='all', nargs='?', help='Analysis to be done. By default, run all tasks. ' 'With one or more TASK, run only those. ' 'TASK can be the name of a single task or ' From 8c0eb9744ce3a8bc9cf7bb5c0fec21ccfc6d8cc3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 17 Nov 2022 08:48:12 +0000 Subject: [PATCH 0755/1574] Must call mbedtls_mpi_mod_modulus_init() before anything else in tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index ff766b9dc..4adccce25 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -117,10 +117,12 @@ void mpi_mod_raw_cond_assign( char * input_X, mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; - mbedtls_mpi_mod_modulus m; size_t limbs_X; size_t limbs_Y; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); @@ -129,8 +131,6 @@ void mpi_mod_raw_cond_assign( char * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); @@ -190,10 +190,12 @@ void mpi_mod_raw_cond_swap( char * input_X, mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; mbedtls_mpi_uint *buff_m = NULL; - mbedtls_mpi_mod_modulus m; size_t limbs_X; size_t limbs_Y; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); @@ -202,8 +204,6 @@ void mpi_mod_raw_cond_swap( char * input_X, size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); - mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( limbs_X, limbs_Y ); TEST_ASSERT( copy_limbs <= limbs ); From e9622ac4bac64a2c0b5550b30be5b23f63fa7f60 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 17 Nov 2022 09:23:32 +0000 Subject: [PATCH 0756/1574] Remove the fore_tls13 option case from client side Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-misc.sh | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 8b9d5750f..3e2fd0b20 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -291,27 +291,6 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ - "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ - "$P_CLI debug_level=4 force_version=tls13 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ - 1 \ - -c "Reconnecting with saved session" \ - -c "NewSessionTicket: early_data(42) extension received." \ - -c "ClientHello: early_data(42) extension exists." \ - -c "EncryptedExtensions: early_data(42) extension received." \ - -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ - -s "Parsing extension 'Early Data/42' (0 bytes)" \ - -s "Sending extension Early Data/42 (0 bytes)" \ - -s "early data accepted" - -requires_gnutls_tls1_3 -requires_config_enabled MBEDTLS_DEBUG_C -requires_config_enabled MBEDTLS_SSL_CLI_C -requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_EARLY_DATA -requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED -run_test "TLS 1.3 m->G: EarlyData: hybrid check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ 1 \ @@ -332,7 +311,7 @@ requires_all_configs_enabled MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE \ MBEDTLS_SSL_EARLY_DATA requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED -run_test "TLS 1.3 m->G: EarlyData: no early_data in NewSessionTicket, good." \ +run_test "TLS 1.3 m->G: EarlyData: no early_data in NewSessionTicket, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ 0 \ From 85c54ea3613f44c0f8c4c52d265128dcf478aaf4 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 17 Nov 2022 11:50:23 +0100 Subject: [PATCH 0757/1574] Allow providing space sepatated tasks Signed-off-by: Przemek Stekiel --- tests/scripts/analyze_outcomes.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 4ebd5f630..bb4439653 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -9,6 +9,7 @@ less likely to be useful. import argparse import sys import traceback +import re import check_test_cases @@ -157,7 +158,7 @@ def main(): help='Analysis to be done. By default, run all tasks. ' 'With one or more TASK, run only those. ' 'TASK can be the name of a single task or ' - 'coma-separated list of tasks. ') + 'comma/space-separated list of tasks. ') parser.add_argument('--list', action='store_true', help='List all available tasks and exit.') options = parser.parse_args() @@ -172,7 +173,7 @@ def main(): if options.task == 'all': tasks = TASKS.keys() else: - tasks = options.task.split(',') + tasks = re.split(r'[, ]+', options.task) for task in tasks: if task not in TASKS: From 152ae07682a7c7630b03fc2337721b4b0a19df01 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 17 Nov 2022 13:24:36 +0100 Subject: [PATCH 0758/1574] Change password ec j-pake operation fields to more suitable Signed-off-by: Przemek Stekiel --- include/psa/crypto_extra.h | 4 ++-- library/psa_crypto_pake.c | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index d527e579b..33e2e77b9 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -1920,8 +1920,8 @@ struct psa_pake_operation_s #if defined(MBEDTLS_PSA_BUILTIN_PAKE) unsigned int MBEDTLS_PRIVATE(input_step); unsigned int MBEDTLS_PRIVATE(output_step); - uint8_t* MBEDTLS_PRIVATE(password_data); - size_t MBEDTLS_PRIVATE(password_bytes); + uint8_t* MBEDTLS_PRIVATE(password); + size_t MBEDTLS_PRIVATE(password_len); psa_pake_role_t MBEDTLS_PRIVATE(role); uint8_t MBEDTLS_PRIVATE(buffer[MBEDTLS_PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 224f922db..b89954830 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -286,20 +286,20 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( slot->key.data == NULL || slot->key.bytes == 0 ) return( PSA_ERROR_INVALID_ARGUMENT ); - if( operation->password_data != NULL ) + if( operation->password != NULL ) { - mbedtls_free( operation->password_data ); - operation->password_bytes = 0; + mbedtls_free( operation->password ); + operation->password_len = 0; } - operation->password_data = mbedtls_calloc( 1, slot->key.bytes ); - if( operation->password_data == NULL ) + operation->password = mbedtls_calloc( 1, slot->key.bytes ); + if( operation->password == NULL ) { status = psa_unlock_key_slot( slot ); return( PSA_ERROR_INSUFFICIENT_MEMORY ); } - memcpy( operation->password_data, slot->key.data, slot->key.bytes ); - operation->password_bytes = slot->key.bytes; + memcpy( operation->password, slot->key.data, slot->key.bytes ); + operation->password_len = slot->key.bytes; status = psa_unlock_key_slot( slot ); if( status != PSA_SUCCESS ) @@ -387,8 +387,8 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) else return( PSA_ERROR_BAD_STATE ); - if (operation->password_data == NULL || - operation->password_bytes == 0 ) + if (operation->password == NULL || + operation->password_len == 0 ) { return( PSA_ERROR_BAD_STATE ); } @@ -397,8 +397,8 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) role, MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, - operation->password_data, - operation->password_bytes ); + operation->password, + operation->password_len ); if( ret != 0 ) return( mbedtls_ecjpake_to_psa_error( ret ) ); @@ -864,9 +864,9 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) { operation->input_step = PSA_PAKE_STEP_INVALID; operation->output_step = PSA_PAKE_STEP_INVALID; - mbedtls_free( operation->password_data ); - operation->password_data = NULL; - operation->password_bytes = 0; + mbedtls_free( operation->password ); + operation->password = NULL; + operation->password_len = 0; operation->role = PSA_PAKE_ROLE_NONE; mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); operation->buffer_length = 0; From 369ae0afc35079979d32b93ba824898a23e1f733 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 17 Nov 2022 14:14:31 +0100 Subject: [PATCH 0759/1574] Zeroize pake password buffer before free Signed-off-by: Przemek Stekiel --- library/psa_crypto_pake.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index b89954830..ef31af420 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -288,6 +288,7 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( operation->password != NULL ) { + mbedtls_platform_zeroize( operation->password, operation->password_len ); mbedtls_free( operation->password ); operation->password_len = 0; } @@ -864,6 +865,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) { operation->input_step = PSA_PAKE_STEP_INVALID; operation->output_step = PSA_PAKE_STEP_INVALID; + mbedtls_platform_zeroize( operation->password, operation->password_len ); mbedtls_free( operation->password ); operation->password = NULL; operation->password_len = 0; From 5dc7999946f302afd392fc15e999b8313e72d2e9 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 17 Nov 2022 14:51:52 +0100 Subject: [PATCH 0760/1574] Simplify the change log Signed-off-by: Ronald Cron --- ChangeLog.d/fix-in-cid-buffer-size.txt | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/ChangeLog.d/fix-in-cid-buffer-size.txt b/ChangeLog.d/fix-in-cid-buffer-size.txt index c8ede1f1c..8a6c85023 100644 --- a/ChangeLog.d/fix-in-cid-buffer-size.txt +++ b/ChangeLog.d/fix-in-cid-buffer-size.txt @@ -1,15 +1,4 @@ -Bugfix - * Fix potential buffer overflow in DTLS with MBEDTLS_SSL_DTLS_CONNECTION_ID - enabled leading to context corruption. - Security - * Fix potential memory probe through non-constant time memcmp() in DTLS - with MBEDTLS_SSL_DTLS_CONNECTION_ID enabled. The memory probe is possible - only under very specific and unlikely conditions: - 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX < MBEDTLS_SSL_CID_IN_LEN_MAX if - MBEDTLS_SSL_CONTEXT_SERIALIZATION is disabled, - MBEDTLS_SERVER_HELLO_RANDOM_LEN + MBEDTLS_CLIENT_HELLO_RANDOM_LEN + - 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX < MBEDTLS_SSL_CID_IN_LEN_MAX if - MBEDTLS_SSL_CONTEXT_SERIALIZATION is enabled. Those conditions are not - met with the default values of MBEDTLS_SSL_CID_IN_LEN_MAX and - MBEDTLS_SSL_CID_OUT_LEN_MAX where the two maximum lengths are equal. + * Fix potential heap buffer overread and overwrite in DTLS if + MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and + MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX. From 96a0fd951f8995b381ba31b104ce971b0c56007a Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Tue, 8 Nov 2022 17:09:56 +0000 Subject: [PATCH 0761/1574] Fix signature algorithms list entry getting overwritten by length. Fix bug whereby the supported signature algorithm list sent by the server in the certificate request would not leave enough space for the length to be written, and thus the first element would get overwritten, leaving two random bytes in the last entry. Signed-off-by: Paul Elliott --- ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 5 +++++ library/ssl_tls12_server.c | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/fix-tls12server-sent-sigalgs.txt diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt new file mode 100644 index 000000000..9abde2b52 --- /dev/null +++ b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix a bug whereby the the list of signature algorithms sent as part of the + TLS 1.2 server certificate request would get corrupted, meaning the first + algorithm would not get sent and an entry consisting of two random bytes + would be sent instead. Found by Serban Bejan and Dudek Sebastian. diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 71f703c7f..3dab2467c 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -2531,10 +2531,15 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) if( ! mbedtls_ssl_sig_alg_is_supported( ssl, *sig_alg ) ) continue; - MBEDTLS_PUT_UINT16_BE( *sig_alg, p, sa_len ); + /* Write elements at offsets starting from 1 (offset 0 is for the + * length). Thus the offset of each element is the length of the + * partial list including that element. */ sa_len += 2; + MBEDTLS_PUT_UINT16_BE( *sig_alg, p, sa_len ); + } + /* Fill in list length. */ MBEDTLS_PUT_UINT16_BE( sa_len, p, 0 ); sa_len += 2; p += sa_len; From ec71b0937f74a84a781f955ecb10ca89ba1577b2 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Tue, 15 Nov 2022 10:21:50 -0500 Subject: [PATCH 0762/1574] Introduce a test for single signature algorithm correctness The value of the first sent signature algorithm is overwritten. This test forces only a single algorithm to be sent and then validates that the client received such algorithm. 04 03 is the expected value for SECP256R1_SHA256. Signed-off-by: Andrzej Kurek --- library/ssl_tls12_client.c | 2 +- tests/ssl-opt.sh | 29 +++++++++++++++++++++-------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 1c53a0990..21b3ba621 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2654,7 +2654,7 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) for( size_t i = 0; i < sig_alg_len; i += 2 ) { MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Supported Signature Algorithm found: %d,%d", + ( "Supported Signature Algorithm found: %02x %02x", sig_alg[i], sig_alg[i + 1] ) ); } #endif diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index fc892a18b..c5d0d9ada 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2371,6 +2371,19 @@ run_test "Unique IV in GCM" \ -u "IV used" \ -U "IV used" +# Test for correctness of sent single supported algorithm +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_DEBUG_C +requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_ECDSA_C +requires_hash_alg SHA_256 +run_test "Single supported algorithm sending" \ + "$P_SRV sig_algs=ecdsa_secp256r1_sha256 auth_mode=required" \ + "$P_CLI sig_algs=ecdsa_secp256r1_sha256 debug_level=3" \ + 0 \ + -c "Supported Signature Algorithm found: 04 03" + # Tests for certificate verification callback requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Configuration-specific CRT verification callback" \ @@ -5274,8 +5287,8 @@ run_test "Authentication: client SHA256, server required" \ key_file=data_files/server6.key \ force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" \ 0 \ - -c "Supported Signature Algorithm found: 4," \ - -c "Supported Signature Algorithm found: 5," + -c "Supported Signature Algorithm found: 04 " \ + -c "Supported Signature Algorithm found: 05 " requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_any_configs_enabled $TLS1_2_KEY_EXCHANGES_WITH_CERT @@ -5285,8 +5298,8 @@ run_test "Authentication: client SHA384, server required" \ key_file=data_files/server6.key \ force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 0 \ - -c "Supported Signature Algorithm found: 4," \ - -c "Supported Signature Algorithm found: 5," + -c "Supported Signature Algorithm found: 04 " \ + -c "Supported Signature Algorithm found: 05 " requires_key_exchange_with_cert_in_tls12_or_tls13_enabled run_test "Authentication: client has no cert, server required (TLS)" \ @@ -5687,8 +5700,8 @@ run_test "Authentication, CA callback: client SHA256, server required" \ force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384" \ 0 \ -s "use CA callback for X.509 CRT verification" \ - -c "Supported Signature Algorithm found: 4," \ - -c "Supported Signature Algorithm found: 5," + -c "Supported Signature Algorithm found: 04 " \ + -c "Supported Signature Algorithm found: 05 " requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 @@ -5700,8 +5713,8 @@ run_test "Authentication, CA callback: client SHA384, server required" \ force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256" \ 0 \ -s "use CA callback for X.509 CRT verification" \ - -c "Supported Signature Algorithm found: 4," \ - -c "Supported Signature Algorithm found: 5," + -c "Supported Signature Algorithm found: 04 " \ + -c "Supported Signature Algorithm found: 05 " requires_config_enabled MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From 3b4cedaa713427e609bebfa59538a77d5eac74ce Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Thu, 17 Nov 2022 12:47:10 +0000 Subject: [PATCH 0763/1574] Add SSL_SRV requirement to test Signed-off-by: Paul Elliott --- tests/ssl-opt.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c5d0d9ada..41dd491f7 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2376,6 +2376,7 @@ requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C +requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_ECDSA_C requires_hash_alg SHA_256 run_test "Single supported algorithm sending" \ From f6e342cae29c68c4e598962c3f9553aa7e1b92c2 Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Thu, 17 Nov 2022 12:50:29 +0000 Subject: [PATCH 0764/1574] Add test for single signature alg with openssl Test supplied by Gilles Peskine. Also rename previous test to fit to naming pattern. Signed-off-by: Paul Elliott --- tests/ssl-opt.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 41dd491f7..f2e3f0cc7 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2379,12 +2379,23 @@ requires_config_enabled MBEDTLS_SSL_CLI_C requires_config_enabled MBEDTLS_SSL_SRV_C requires_config_enabled MBEDTLS_ECDSA_C requires_hash_alg SHA_256 -run_test "Single supported algorithm sending" \ +run_test "Single supported algorithm sending: mbedtls client" \ "$P_SRV sig_algs=ecdsa_secp256r1_sha256 auth_mode=required" \ "$P_CLI sig_algs=ecdsa_secp256r1_sha256 debug_level=3" \ 0 \ -c "Supported Signature Algorithm found: 04 03" +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_ECDSA_C +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_hash_alg SHA_256 +run_test "Single supported algorithm sending: openssl client" \ + "$P_SRV sig_algs=ecdsa_secp256r1_sha256 auth_mode=required" \ + "$O_CLI -cert data_files/server6.crt \ + -key data_files/server6.key" \ + 0 + # Tests for certificate verification callback requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Configuration-specific CRT verification callback" \ From a08b1a40a0ff0a69fa7114280f3b1e31772466ee Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 15:10:02 +0100 Subject: [PATCH 0765/1574] tls: psa_pake: move move key exchange read/write functions to ssl_tls.c Inlined functions might cause the compiled code to have different sizes depending on the usage and this not acceptable in some cases. Therefore read/write functions used in the initial key exchange are moved to a standard C file. Signed-off-by: Valerio Setti --- library/ssl_misc.h | 159 ++--------------------------------- library/ssl_tls.c | 167 +++++++++++++++++++++++++++++++++++++ library/ssl_tls12_client.c | 8 +- library/ssl_tls12_server.c | 6 +- 4 files changed, 182 insertions(+), 158 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 807e7811d..d022721a7 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2388,43 +2388,10 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) * * \return 0 on success or a negative error code in case of failure */ -static inline int psa_tls12_parse_ecjpake_round_one( +int mbedtls_psa_ecjpake_read_round_one( psa_pake_operation_t *pake_ctx, const unsigned char *buf, - size_t len ) -{ - psa_status_t status; - size_t input_offset = 0; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1; x <= 2; ++x ) - { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; - step <= PSA_PAKE_STEP_ZK_PROOF; - ++step ) - { - /* Length is stored at the first byte */ - size_t length = buf[input_offset]; - input_offset += 1; - - if( input_offset + length > len ) - { - return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; - } - - status = psa_pake_input( pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - return psa_ssl_status_to_mbedtls( status ); - } - - input_offset += length; - } - } - - return( 0 ); -} + size_t len ); /** * \brief Parse the provided input buffer for getting the second round @@ -2436,60 +2403,10 @@ static inline int psa_tls12_parse_ecjpake_round_one( * * \return 0 on success or a negative error code in case of failure */ -static inline int psa_tls12_parse_ecjpake_round_two( +int mbedtls_psa_ecjpake_read_round_two( psa_pake_operation_t *pake_ctx, const unsigned char *buf, - size_t len, int role ) -{ - psa_status_t status; - size_t input_offset = 0; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - size_t length; - - /* - * On its 2nd round, the server sends 3 extra bytes which identify the - * curve: - * - the 1st one is MBEDTLS_ECP_TLS_NAMED_CURVE - * - the 2nd and 3rd represent curve's TLS ID - * Validate this data before moving forward - */ - if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && - ( role == MBEDTLS_SSL_IS_CLIENT ) ) - { - uint16_t tls_id = MBEDTLS_GET_UINT16_BE( buf, 1 ); - - if( ( *buf != MBEDTLS_ECP_TLS_NAMED_CURVE ) || - ( mbedtls_ecp_curve_info_from_tls_id( tls_id ) == NULL ) ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - - input_offset += 3; - } - - /* Length is stored at the first byte */ - length = buf[input_offset]; - input_offset += 1; - - if( input_offset + length > len ) - { - return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; - } - - status = psa_pake_input( pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - return psa_ssl_status_to_mbedtls( status ); - } - - input_offset += length; - } - - return( 0 ); -} + size_t len, int role ); /** * \brief Write the first round of key exchange into the provided output @@ -2502,43 +2419,10 @@ static inline int psa_tls12_parse_ecjpake_round_two( * * \return 0 on success or a negative error code in case of failure */ -static inline int psa_tls12_write_ecjpake_round_one( +int mbedtls_psa_ecjpake_write_round_one( psa_pake_operation_t *pake_ctx, unsigned char *buf, - size_t len, size_t *olen ) -{ - psa_status_t status; - size_t output_offset = 0; - size_t output_len; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) - { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* For each step, prepend 1 byte with the length of the data */ - *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); - output_offset += 1; - - status = psa_pake_output( pake_ctx, step, - buf + output_offset, - len - output_offset, - &output_len ); - if( status != PSA_SUCCESS ) - { - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; - } - } - - *olen = output_offset; - - return( 0 ); -} + size_t len, size_t *olen ); /** * \brief Write the second round of key exchange into the provided output @@ -2551,38 +2435,11 @@ static inline int psa_tls12_write_ecjpake_round_one( * * \return 0 on success or a negative error code in case of failure */ -static inline int psa_tls12_write_ecjpake_round_two( +int mbedtls_psa_ecjpake_write_round_two( psa_pake_operation_t *pake_ctx, unsigned char *buf, - size_t len, size_t *olen ) -{ - psa_status_t status; - size_t output_offset = 0; - size_t output_len; + size_t len, size_t *olen ); - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* For each step, prepend 1 byte with the length of the data */ - *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); - output_offset += 1; - status = psa_pake_output( pake_ctx, - step, buf + output_offset, - len - output_offset, - &output_len ); - if( status != PSA_SUCCESS ) - { - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; - } - - *olen = output_offset; - - return( 0 ); -} #endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO /** diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 8771c595b..35262cb88 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8194,6 +8194,173 @@ end: return( ret ); } +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) +int mbedtls_psa_ecjpake_read_round_one( + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len ) +{ + psa_status_t status; + size_t input_offset = 0; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1; x <= 2; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; + step <= PSA_PAKE_STEP_ZK_PROOF; + ++step ) + { + /* Length is stored at the first byte */ + size_t length = buf[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } + + status = psa_pake_input( pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + return psa_ssl_status_to_mbedtls( status ); + } + + input_offset += length; + } + } + + return( 0 ); +} + +int mbedtls_psa_ecjpake_read_round_two( + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len, int role ) +{ + psa_status_t status; + size_t input_offset = 0; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + size_t length; + + /* + * On its 2nd round, the server sends 3 extra bytes which identify the + * curve: + * - the 1st one is MBEDTLS_ECP_TLS_NAMED_CURVE + * - the 2nd and 3rd represent curve's TLS ID + * Validate this data before moving forward + */ + if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && + ( role == MBEDTLS_SSL_IS_CLIENT ) ) + { + uint16_t tls_id = MBEDTLS_GET_UINT16_BE( buf, 1 ); + + if( ( *buf != MBEDTLS_ECP_TLS_NAMED_CURVE ) || + ( mbedtls_ecp_curve_info_from_tls_id( tls_id ) == NULL ) ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + + input_offset += 3; + } + + /* Length is stored at the first byte */ + length = buf[input_offset]; + input_offset += 1; + + if( input_offset + length > len ) + { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + status = psa_pake_input( pake_ctx, step, + buf + input_offset, length ); + if( status != PSA_SUCCESS) + { + return psa_ssl_status_to_mbedtls( status ); + } + + input_offset += length; + } + + return( 0 ); +} + +int mbedtls_psa_ecjpake_write_round_one( + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen ) +{ + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + + /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ + for( unsigned int x = 1 ; x <= 2 ; ++x ) + { + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); + output_offset += 1; + + status = psa_pake_output( pake_ctx, step, + buf + output_offset, + len - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + } + + *olen = output_offset; + + return( 0 ); +} + +int mbedtls_psa_ecjpake_write_round_two( + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen ) +{ + psa_status_t status; + size_t output_offset = 0; + size_t output_len; + + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; + step <= PSA_PAKE_STEP_ZK_PROOF ; + ++step ) + { + /* For each step, prepend 1 byte with the length of the data */ + *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); + output_offset += 1; + status = psa_pake_output( pake_ctx, + step, buf + output_offset, + len - output_offset, + &output_len ); + if( status != PSA_SUCCESS ) + { + return( psa_ssl_status_to_mbedtls( status ) ); + } + + output_offset += output_len; + } + + *olen = output_offset; + + return( 0 ); +} +#endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO + #if defined(MBEDTLS_USE_PSA_CRYPTO) int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl, unsigned char *hash, size_t *hashlen, diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index c90ed2e46..4e986d1df 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -164,7 +164,7 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = psa_tls12_write_ecjpake_round_one(&ssl->handshake->psa_pake_ctx, + ret = mbedtls_psa_ecjpake_write_round_one(&ssl->handshake->psa_pake_ctx, p + 2, end - p - 2, &kkpp_len ); if ( ret != 0 ) { @@ -908,7 +908,7 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, ssl->handshake->ecjpake_cache_len = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = psa_tls12_parse_ecjpake_round_one( + if( ( ret = mbedtls_psa_ecjpake_read_round_one( &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -2333,7 +2333,7 @@ start_processing: if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = psa_tls12_parse_ecjpake_round_two( + if( ( ret = mbedtls_psa_ecjpake_read_round_two( &ssl->handshake->psa_pake_ctx, p, end - p, ssl->conf->endpoint ) ) != 0 ) { @@ -3292,7 +3292,7 @@ ecdh_calc_secret: unsigned char *out_p = ssl->out_msg + header_len; unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len; - ret = psa_tls12_write_ecjpake_round_two( &ssl->handshake->psa_pake_ctx, + ret = mbedtls_psa_ecjpake_write_round_two( &ssl->handshake->psa_pake_ctx, out_p, end_p - out_p, &content_len ); if ( ret != 0 ) { diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 38899f952..f5c50ea67 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -305,7 +305,7 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( ( ret = psa_tls12_parse_ecjpake_round_one( + if ( ( ret = mbedtls_psa_ecjpake_read_round_one( &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -2896,7 +2896,7 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p, 1 ); output_offset += sizeof( uint8_t ) + sizeof( uint16_t ); - ret = psa_tls12_write_ecjpake_round_two( &ssl->handshake->psa_pake_ctx, + ret = mbedtls_psa_ecjpake_write_round_two( &ssl->handshake->psa_pake_ctx, out_p + output_offset, end_p - out_p - output_offset, &output_len ); if( ret != 0 ) @@ -4143,7 +4143,7 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = psa_tls12_parse_ecjpake_round_two( + if( ( ret = mbedtls_psa_ecjpake_read_round_two( &ssl->handshake->psa_pake_ctx, p, end - p, ssl->conf->endpoint ) ) != 0 ) { From a98836476782db7fc3883b02c25707fe3da2cd3a Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 15:34:59 +0100 Subject: [PATCH 0766/1574] tls: psa_pake: fix missing new round one parsing function on tls12 server Signed-off-by: Valerio Setti --- library/ssl_tls12_server.c | 43 +++++++------------------------------- 1 file changed, 7 insertions(+), 36 deletions(-) diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index f5c50ea67..2e480636a 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -1995,11 +1995,7 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, unsigned char *buf, size_t *olen ) { -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_status_t status; -#else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ unsigned char *p = buf; const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t kkpp_len; @@ -2023,40 +2019,15 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, p += 2; #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t output_offset = 0; - size_t output_len; - - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) + ret = mbedtls_psa_ecjpake_write_round_one( &ssl->handshake->psa_pake_ctx, + p + 2, end - p - 2, &kkpp_len ); + if ( ret != 0 ) { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* For each step, prepend 1 byte with the length of the data */ - if (step != PSA_PAKE_STEP_ZK_PROOF) { - *(p + 2 + output_offset) = 65; - } else { - *(p + 2 + output_offset) = 32; - } - output_offset += 1; - status = psa_pake_output( &ssl->handshake->psa_pake_ctx, - step, p + 2 + output_offset, - end - p - output_offset - 2, - &output_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", status ); - return; - } - - output_offset += output_len; - } + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); + return; } - - kkpp_len = output_offset; #else ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, p + 2, end - p - 2, &kkpp_len, From 30ebe11f869ef6c04396e77bc091ca2d31a45c17 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 16:23:34 +0100 Subject: [PATCH 0767/1574] tls: psa_pake: add a check on read size on both rounds Signed-off-by: Valerio Setti --- library/ssl_tls.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 35262cb88..06a5ec53d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8231,6 +8231,9 @@ int mbedtls_psa_ecjpake_read_round_one( } } + if ( input_offset != len ) + return PSA_ERROR_INVALID_ARGUMENT; + return( 0 ); } @@ -8286,6 +8289,9 @@ int mbedtls_psa_ecjpake_read_round_two( input_offset += length; } + if ( input_offset != len ) + return PSA_ERROR_INVALID_ARGUMENT; + return( 0 ); } From 9bed8ec5d85536275ca32b0cd6bb738612ea98e6 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 16:36:19 +0100 Subject: [PATCH 0768/1574] tls: psa_pake: make round two reading function symmatric to the writing one Signed-off-by: Valerio Setti --- library/ssl_misc.h | 3 +-- library/ssl_tls.c | 21 +-------------------- library/ssl_tls12_client.c | 26 ++++++++++++++++++++++++-- library/ssl_tls12_server.c | 3 +-- 4 files changed, 27 insertions(+), 26 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index d022721a7..82a951a58 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2405,8 +2405,7 @@ int mbedtls_psa_ecjpake_read_round_one( */ int mbedtls_psa_ecjpake_read_round_two( psa_pake_operation_t *pake_ctx, - const unsigned char *buf, - size_t len, int role ); + const unsigned char *buf, size_t len ); /** * \brief Write the first round of key exchange into the provided output diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 06a5ec53d..ae12c7ebd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8240,7 +8240,7 @@ int mbedtls_psa_ecjpake_read_round_one( int mbedtls_psa_ecjpake_read_round_two( psa_pake_operation_t *pake_ctx, const unsigned char *buf, - size_t len, int role ) + size_t len ) { psa_status_t status; size_t input_offset = 0; @@ -8251,25 +8251,6 @@ int mbedtls_psa_ecjpake_read_round_two( { size_t length; - /* - * On its 2nd round, the server sends 3 extra bytes which identify the - * curve: - * - the 1st one is MBEDTLS_ECP_TLS_NAMED_CURVE - * - the 2nd and 3rd represent curve's TLS ID - * Validate this data before moving forward - */ - if( ( step == PSA_PAKE_STEP_KEY_SHARE ) && - ( role == MBEDTLS_SSL_IS_CLIENT ) ) - { - uint16_t tls_id = MBEDTLS_GET_UINT16_BE( buf, 1 ); - - if( ( *buf != MBEDTLS_ECP_TLS_NAMED_CURVE ) || - ( mbedtls_ecp_curve_info_from_tls_id( tls_id ) == NULL ) ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - - input_offset += 3; - } - /* Length is stored at the first byte */ length = buf[input_offset]; input_offset += 1; diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 4e986d1df..6dd8ef50f 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2333,9 +2333,31 @@ start_processing: if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) + /* + * The first 3 bytes are: + * [0] MBEDTLS_ECP_TLS_NAMED_CURVE + * [1, 2] elliptic curve's TLS ID + * + * However since we only support secp256r1 for now, we check only + * that TLS ID here + */ + uint16_t read_tls_id = MBEDTLS_GET_UINT16_BE( p, 1 ); + const mbedtls_ecp_curve_info *curve_info; + + if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( + MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) + { + return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + } + + if( ( *p != MBEDTLS_ECP_TLS_NAMED_CURVE ) || + ( read_tls_id != curve_info->tls_id ) ) + return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + + p += 3; + if( ( ret = mbedtls_psa_ecjpake_read_round_two( - &ssl->handshake->psa_pake_ctx, p, end - p, - ssl->conf->endpoint ) ) != 0 ) + &ssl->handshake->psa_pake_ctx, p, end - p ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 2e480636a..3bc7217b7 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -4115,8 +4115,7 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) if( ( ret = mbedtls_psa_ecjpake_read_round_two( - &ssl->handshake->psa_pake_ctx, p, end - p, - ssl->conf->endpoint ) ) != 0 ) + &ssl->handshake->psa_pake_ctx, p, end - p ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); From 6b3dab03b5f0c3fe42ebfb83cf171192c08dd88f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 17:14:54 +0100 Subject: [PATCH 0769/1574] tls: psa_pake: use a single function for round one and two in key exchange read/write Signed-off-by: Valerio Setti --- library/ssl_misc.h | 48 +++++------------- library/ssl_tls.c | 101 +++++++------------------------------ library/ssl_tls12_client.c | 20 +++++--- library/ssl_tls12_server.c | 20 +++++--- 4 files changed, 57 insertions(+), 132 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 82a951a58..0f43a18f4 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2378,6 +2378,11 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) MBEDTLS_SSL_ECJPAKE_PSA_PRIMITIVE, \ step ) +typedef enum { + MBEDTLS_ECJPAKE_ROUND_ONE, + MBEDTLS_ECJPAKE_ROUND_TWO +} mbedtls_ecjpake_rounds_t; + /** * \brief Parse the provided input buffer for getting the first round * of key exchange. This code is common between server and client @@ -2385,27 +2390,15 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) * \param pake_ctx [in] the PAKE's operation/context structure * \param buf [in] input buffer to parse * \param len [in] length of the input buffer + * \param round [in] either MBEDTLS_ECJPAKE_ROUND_ONE or + * MBEDTLS_ECJPAKE_ROUND_TWO * * \return 0 on success or a negative error code in case of failure */ -int mbedtls_psa_ecjpake_read_round_one( +int mbedtls_psa_ecjpake_read_round( psa_pake_operation_t *pake_ctx, const unsigned char *buf, - size_t len ); - -/** - * \brief Parse the provided input buffer for getting the second round - * of key exchange. This code is common between server and client - * - * \param pake_ctx [in] the PAKE's operation/context structure - * \param buf [in] input buffer to parse - * \param len [in] length of the input buffer - * - * \return 0 on success or a negative error code in case of failure - */ -int mbedtls_psa_ecjpake_read_round_two( - psa_pake_operation_t *pake_ctx, - const unsigned char *buf, size_t len ); + size_t len, mbedtls_ecjpake_rounds_t round ); /** * \brief Write the first round of key exchange into the provided output @@ -2415,29 +2408,16 @@ int mbedtls_psa_ecjpake_read_round_two( * \param buf [out] the output buffer in which data will be written to * \param len [in] length of the output buffer * \param olen [out] the length of the data really written on the buffer + * \param round [in] either MBEDTLS_ECJPAKE_ROUND_ONE or + * MBEDTLS_ECJPAKE_ROUND_TWO * * \return 0 on success or a negative error code in case of failure */ -int mbedtls_psa_ecjpake_write_round_one( +int mbedtls_psa_ecjpake_write_round( psa_pake_operation_t *pake_ctx, unsigned char *buf, - size_t len, size_t *olen ); - -/** - * \brief Write the second round of key exchange into the provided output - * buffer. This code is common between server and client - * - * \param pake_ctx [in] the PAKE's operation/context structure - * \param buf [out] the output buffer in which data will be written to - * \param len [in] length of the output buffer - * \param olen [out] the length of the data really written on the buffer - * - * \return 0 on success or a negative error code in case of failure - */ -int mbedtls_psa_ecjpake_write_round_two( - psa_pake_operation_t *pake_ctx, - unsigned char *buf, - size_t len, size_t *olen ); + size_t len, size_t *olen, + mbedtls_ecjpake_rounds_t round ); #endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO diff --git a/library/ssl_tls.c b/library/ssl_tls.c index ae12c7ebd..a1fa8697b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8196,16 +8196,20 @@ end: #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_psa_ecjpake_read_round_one( +int mbedtls_psa_ecjpake_read_round( psa_pake_operation_t *pake_ctx, const unsigned char *buf, - size_t len ) + size_t len, mbedtls_ecjpake_rounds_t round ) { psa_status_t status; size_t input_offset = 0; + /* + * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice + * At round two perform a single cycle + */ + unsigned int remaining_steps = ( round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1; x <= 2; ++x ) + for( ; remaining_steps > 0; remaining_steps-- ) { for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; step <= PSA_PAKE_STEP_ZK_PROOF; @@ -8237,59 +8241,25 @@ int mbedtls_psa_ecjpake_read_round_one( return( 0 ); } -int mbedtls_psa_ecjpake_read_round_two( - psa_pake_operation_t *pake_ctx, - const unsigned char *buf, - size_t len ) -{ - psa_status_t status; - size_t input_offset = 0; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - size_t length; - - /* Length is stored at the first byte */ - length = buf[input_offset]; - input_offset += 1; - - if( input_offset + length > len ) - { - return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; - } - - status = psa_pake_input( pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - return psa_ssl_status_to_mbedtls( status ); - } - - input_offset += length; - } - - if ( input_offset != len ) - return PSA_ERROR_INVALID_ARGUMENT; - - return( 0 ); -} - -int mbedtls_psa_ecjpake_write_round_one( +int mbedtls_psa_ecjpake_write_round( psa_pake_operation_t *pake_ctx, unsigned char *buf, - size_t len, size_t *olen ) + size_t len, size_t *olen, + mbedtls_ecjpake_rounds_t round ) { psa_status_t status; size_t output_offset = 0; size_t output_len; + /* + * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice + * At round two perform a single cycle + */ + unsigned int remaining_steps = ( round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; - /* Repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice */ - for( unsigned int x = 1 ; x <= 2 ; ++x ) + for( ; remaining_steps > 0; remaining_steps-- ) { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; + for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; + step <= PSA_PAKE_STEP_ZK_PROOF; ++step ) { /* For each step, prepend 1 byte with the length of the data */ @@ -8313,39 +8283,6 @@ int mbedtls_psa_ecjpake_write_round_one( return( 0 ); } - -int mbedtls_psa_ecjpake_write_round_two( - psa_pake_operation_t *pake_ctx, - unsigned char *buf, - size_t len, size_t *olen ) -{ - psa_status_t status; - size_t output_offset = 0; - size_t output_len; - - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE ; - step <= PSA_PAKE_STEP_ZK_PROOF ; - ++step ) - { - /* For each step, prepend 1 byte with the length of the data */ - *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); - output_offset += 1; - status = psa_pake_output( pake_ctx, - step, buf + output_offset, - len - output_offset, - &output_len ); - if( status != PSA_SUCCESS ) - { - return( psa_ssl_status_to_mbedtls( status ) ); - } - - output_offset += output_len; - } - - *olen = output_offset; - - return( 0 ); -} #endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO #if defined(MBEDTLS_USE_PSA_CRYPTO) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 6dd8ef50f..8fcf5a4f5 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -164,8 +164,9 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = mbedtls_psa_ecjpake_write_round_one(&ssl->handshake->psa_pake_ctx, - p + 2, end - p - 2, &kkpp_len ); + ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx, + p + 2, end - p - 2, &kkpp_len, + MBEDTLS_ECJPAKE_ROUND_ONE ); if ( ret != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -908,8 +909,9 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, ssl->handshake->ecjpake_cache_len = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_psa_ecjpake_read_round_one( - &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) + if( ( ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, buf, len, + MBEDTLS_ECJPAKE_ROUND_ONE ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); @@ -2356,8 +2358,9 @@ start_processing: p += 3; - if( ( ret = mbedtls_psa_ecjpake_read_round_two( - &ssl->handshake->psa_pake_ctx, p, end - p ) ) != 0 ) + if( ( ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, p, end - p, + MBEDTLS_ECJPAKE_ROUND_TWO ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); @@ -3314,8 +3317,9 @@ ecdh_calc_secret: unsigned char *out_p = ssl->out_msg + header_len; unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len; - ret = mbedtls_psa_ecjpake_write_round_two( &ssl->handshake->psa_pake_ctx, - out_p, end_p - out_p, &content_len ); + ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, + out_p, end_p - out_p, &content_len, + MBEDTLS_ECJPAKE_ROUND_TWO ); if ( ret != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 3bc7217b7..e6dee49c1 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -305,8 +305,9 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( ( ret = mbedtls_psa_ecjpake_read_round_one( - &ssl->handshake->psa_pake_ctx, buf, len ) ) != 0 ) + if ( ( ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, buf, len, + MBEDTLS_ECJPAKE_ROUND_ONE ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); @@ -2019,8 +2020,9 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, p += 2; #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = mbedtls_psa_ecjpake_write_round_one( &ssl->handshake->psa_pake_ctx, - p + 2, end - p - 2, &kkpp_len ); + ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, + p + 2, end - p - 2, &kkpp_len, + MBEDTLS_ECJPAKE_ROUND_ONE ); if ( ret != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -2867,9 +2869,10 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p, 1 ); output_offset += sizeof( uint8_t ) + sizeof( uint16_t ); - ret = mbedtls_psa_ecjpake_write_round_two( &ssl->handshake->psa_pake_ctx, + ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, out_p + output_offset, - end_p - out_p - output_offset, &output_len ); + end_p - out_p - output_offset, &output_len, + MBEDTLS_ECJPAKE_ROUND_TWO ); if( ret != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -4114,8 +4117,9 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_psa_ecjpake_read_round_two( - &ssl->handshake->psa_pake_ctx, p, end - p ) ) != 0 ) + if( ( ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, p, end - p, + MBEDTLS_ECJPAKE_ROUND_TWO ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); psa_pake_abort( &ssl->handshake->psa_pake_ctx ); From 819de86895383292f26ae83619f20eb853a00a75 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 18:05:19 +0100 Subject: [PATCH 0770/1574] tls: removed extra white spaces and other minor fix Signed-off-by: Valerio Setti --- library/ssl_tls.c | 6 +++--- library/ssl_tls12_server.c | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index a1fa8697b..fa415a894 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8203,7 +8203,7 @@ int mbedtls_psa_ecjpake_read_round( { psa_status_t status; size_t input_offset = 0; - /* + /* * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice * At round two perform a single cycle */ @@ -8235,7 +8235,7 @@ int mbedtls_psa_ecjpake_read_round( } } - if ( input_offset != len ) + if( input_offset != len ) return PSA_ERROR_INVALID_ARGUMENT; return( 0 ); @@ -8250,7 +8250,7 @@ int mbedtls_psa_ecjpake_write_round( psa_status_t status; size_t output_offset = 0; size_t output_len; - /* + /* * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice * At round two perform a single cycle */ diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index e6dee49c1..1e9e51b30 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -305,8 +305,8 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( ( ret = mbedtls_psa_ecjpake_read_round( - &ssl->handshake->psa_pake_ctx, buf, len, + if( ( ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, buf, len, MBEDTLS_ECJPAKE_ROUND_ONE ) ) != 0 ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -2867,7 +2867,7 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, } *out_p = MBEDTLS_ECP_TLS_NAMED_CURVE; MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p, 1 ); - output_offset += sizeof( uint8_t ) + sizeof( uint16_t ); + output_offset += 3; ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, out_p + output_offset, From aca21b717c26407f146f2bcf7ee7241854209639 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 17 Nov 2022 18:17:01 +0100 Subject: [PATCH 0771/1574] tls: psa_pake: enforce not empty passwords Signed-off-by: Valerio Setti --- include/mbedtls/ecjpake.h | 2 +- include/mbedtls/ssl.h | 3 ++- library/ssl_tls.c | 35 ++++++++++++++++------------------- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h index e7ca1b235..3dd3361a1 100644 --- a/include/mbedtls/ecjpake.h +++ b/include/mbedtls/ecjpake.h @@ -113,7 +113,7 @@ void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx ); * \param curve The identifier of the elliptic curve to use, * for example #MBEDTLS_ECP_DP_SECP256R1. * \param secret The pre-shared secret (passphrase). This must be - * a readable buffer of length \p len Bytes. It need + * a readable not empty buffer of length \p len Bytes. It need * only be valid for the duration of this call. * \param len The length of the pre-shared secret \p secret. * diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 01ede4088..085235721 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -3824,9 +3824,10 @@ void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, * \note The SSL context needs to be already set up. The right place * to call this function is between \c mbedtls_ssl_setup() or * \c mbedtls_ssl_reset() and \c mbedtls_ssl_handshake(). + * Password cannot be empty (see RFC 8236). * * \param ssl SSL context - * \param pw EC J-PAKE password (pre-shared secret) + * \param pw EC J-PAKE password (pre-shared secret). It cannot be empty * \param pw_len length of pw in bytes * * \return 0 on success, or a negative error code. diff --git a/library/ssl_tls.c b/library/ssl_tls.c index fa415a894..062ff25dd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1634,18 +1634,18 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, else psa_role = PSA_PAKE_ROLE_CLIENT; + /* Empty password is not valid */ + if( ( pw == NULL) || ( pw_len == 0 ) ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( pw_len > 0 ) - { - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - status = psa_import_key( &attributes, pw, pw_len, - &ssl->handshake->psa_pake_password ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } + status = psa_import_key( &attributes, pw, pw_len, + &ssl->handshake->psa_pake_password ); + if( status != PSA_SUCCESS ) + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); psa_pake_cs_set_primitive( &cipher_suite, @@ -1669,16 +1669,13 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } - if( pw_len > 0 ) + psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, + ssl->handshake->psa_pake_password ); + if( status != PSA_SUCCESS ) { - psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, - ssl->handshake->psa_pake_password ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } ssl->handshake->psa_pake_ctx_is_ok = 1; From 4e83173bb7b6770d99022d79ac2d3624c80b8c37 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Fri, 18 Nov 2022 10:57:46 +0000 Subject: [PATCH 0772/1574] Skip early data basic check temp Signed-off-by: Xiaokang Qian --- tests/opt-testcases/tls13-misc.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 3e2fd0b20..edece456b 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -282,6 +282,9 @@ run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \ 0 \ -s "key exchange mode: ephemeral$" +# skip the basic check now cause it will randomly trigger the anti-replay protection in gnutls_server +# Add it back once we fix the issue +skip_next_test requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C From 61ea17d30a2da481987e634e100082fccc46062f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 18 Nov 2022 12:11:00 +0100 Subject: [PATCH 0773/1574] tls: psa_pake: fix return values in parse functions Ensure they all belong to the MBEDTLS_ERR_SSL_* group Signed-off-by: Valerio Setti --- library/ssl_tls.c | 2 +- library/ssl_tls12_client.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 062ff25dd..c1436c532 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8233,7 +8233,7 @@ int mbedtls_psa_ecjpake_read_round( } if( input_offset != len ) - return PSA_ERROR_INVALID_ARGUMENT; + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; return( 0 ); } diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 8fcf5a4f5..7c293ec9e 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2354,7 +2354,7 @@ start_processing: if( ( *p != MBEDTLS_ECP_TLS_NAMED_CURVE ) || ( read_tls_id != curve_info->tls_id ) ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); p += 3; From 18f48eb48ebbf4751c7d4b8f40d6874b5ce33f13 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 18 Nov 2022 22:24:56 +0100 Subject: [PATCH 0774/1574] Fix intended backslash in test data Signed-off-by: Gilles Peskine --- tests/scripts/test_generate_test_code.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index f36675397..ae1aa2af4 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -746,8 +746,8 @@ exit: data = '''/* comment */ /* more * comment */ -// this is\ -still \ +// this is\\ +still \\ a comment void func() { From 45747a07797bdcc652b88cbaf73e102d5c4c697c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 18 Nov 2022 22:25:18 +0100 Subject: [PATCH 0775/1574] Add test cases for comment nesting Add a test case that would fail if all line comments were parsed before block comments, and a test case that would fail if all block comments were parsed before line comments. Signed-off-by: Gilles Peskine --- tests/scripts/test_generate_test_code.py | 88 ++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index ae1aa2af4..d8b8cf979 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -820,6 +820,94 @@ exit: yes sir yes sir 3 bags full } +''' + self.assertEqual(code, expected) + + @patch("generate_test_code.gen_dispatch") + @patch("generate_test_code.gen_dependencies") + @patch("generate_test_code.gen_function_wrapper") + @patch("generate_test_code.parse_function_arguments") + def test_line_comment_in_block_comment(self, parse_function_arguments_mock, + gen_function_wrapper_mock, + gen_dependencies_mock, + gen_dispatch_mock): + """ + Test with line comment in block comment. + :return: + """ + parse_function_arguments_mock.return_value = ([], '', []) + gen_function_wrapper_mock.return_value = '' + gen_dependencies_mock.side_effect = gen_dependencies + gen_dispatch_mock.side_effect = gen_dispatch + data = ''' +void func( int x /* // */ ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +/* END_CASE */ +''' + stream = StringIOWrapper('test_suite_ut.function', data) + _, _, code, _ = parse_function_code(stream, [], []) + + expected = '''#line 1 "test_suite_ut.function" + +void test_func( int x ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +''' + self.assertEqual(code, expected) + + @patch("generate_test_code.gen_dispatch") + @patch("generate_test_code.gen_dependencies") + @patch("generate_test_code.gen_function_wrapper") + @patch("generate_test_code.parse_function_arguments") + def test_block_comment_in_line_comment(self, parse_function_arguments_mock, + gen_function_wrapper_mock, + gen_dependencies_mock, + gen_dispatch_mock): + """ + Test with block comment in line comment. + :return: + """ + parse_function_arguments_mock.return_value = ([], '', []) + gen_function_wrapper_mock.return_value = '' + gen_dependencies_mock.side_effect = gen_dependencies + gen_dispatch_mock.side_effect = gen_dispatch + data = ''' +// /* +void func( int x ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} +/* END_CASE */ +''' + stream = StringIOWrapper('test_suite_ut.function', data) + _, _, code, _ = parse_function_code(stream, [], []) + + expected = '''#line 1 "test_suite_ut.function" + + +void test_func( int x ) +{ + ba ba black sheep + have you any wool +exit: + yes sir yes sir + 3 bags full +} ''' self.assertEqual(code, expected) From 268ea5a9b0ef88120cfd1feb240f228ddf1c9c54 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 18 Nov 2022 22:26:03 +0100 Subject: [PATCH 0776/1574] Typos in comments Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index a1eaa957f..e70fffb93 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -539,14 +539,14 @@ def skip_comments(line, stream): continuation = line while continuation.endswith('\\\n'): # This errors out if the file ends with an unfinished line - # comment. That's acceptable to not complicat the code further. + # comment. That's acceptable to not complicate the code further. continuation = next(stream) return line[:opening.start(0)].rstrip() + '\n' # Parsing /*...*/, looking for the end closing = line.find('*/', opening.end(0)) while closing == -1: # This errors out if the file ends with an unfinished block - # comment. That's acceptable to not complicat the code further. + # comment. That's acceptable to not complicate the code further. line += next(stream) closing = line.find('*/', opening.end(0)) pos = closing + 2 From 9ac62c3a973f7f89df9f53d7332c120e2c528753 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 18 Nov 2022 22:27:37 +0100 Subject: [PATCH 0777/1574] Explain space preservation Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index e70fffb93..c1d1c1cbf 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -550,6 +550,13 @@ def skip_comments(line, stream): line += next(stream) closing = line.find('*/', opening.end(0)) pos = closing + 2 + # Replace inner comment by spaces. There needs to be at least one space + # for things like 'int/*ihatespaces*/foo'. Go further and preserve the + # width of the comment, this way column positions in error messages + # remain correct. + # TODO: It would be better to preserve line breaks, to get accurate + # line numbers if there's something interesting after a comment on + # the same line. line = (line[:opening.start(0)] + ' ' * (pos - opening.start(0)) + line[pos:]) From 6969eee5d2a19b0aab2ffeece3d8a128e7f4e550 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 10 Oct 2022 10:25:26 +0800 Subject: [PATCH 0778/1574] Remove `Terminated` message on 22.04 Signed-off-by: Jerry Yu --- tests/ssl-opt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index fdbb31050..53b3885c7 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1362,7 +1362,7 @@ do_run_test_once() { if [ -n "$PXY_CMD" ]; then kill $PXY_PID >/dev/null 2>&1 - wait $PXY_PID + wait $PXY_PID >> $PXY_OUT 2>&1 fi } From 0b61217c36b19dadc278d6793a59e1b42475ec82 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 12 Oct 2022 15:29:58 +0800 Subject: [PATCH 0779/1574] set new_session_ticket_* to handshake_over Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index d0558511a..366554587 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -4651,7 +4651,9 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ); */ static inline int mbedtls_ssl_is_handshake_over( mbedtls_ssl_context *ssl ) { - return( ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_HANDSHAKE_OVER ); + return( ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_HANDSHAKE_OVER || + ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_NEW_SESSION_TICKET || + ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH); } /** From e219c11b4e61b9f3f5077175fc083b26dc76e523 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 24 Oct 2022 01:27:01 +0000 Subject: [PATCH 0780/1574] Replace internal usage of mbedtls_ssl_is_handshake_over Signed-off-by: Jerry Yu --- library/ssl_msg.c | 28 ++++++++++++++-------------- library/ssl_tls.c | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbc639188..c4af7bf6d 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1883,7 +1883,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) { len = in_buf_len - ( ssl->in_hdr - ssl->in_buf ); - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) timeout = ssl->handshake->retransmit_timeout; else timeout = ssl->conf->read_timeout; @@ -1907,7 +1907,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "timeout" ) ); mbedtls_ssl_set_timer( ssl, 0 ); - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { if( ssl_double_retransmit_timeout( ssl ) != 0 ) { @@ -2343,7 +2343,7 @@ int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) return( ret ); /* Update state and set timer */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; else { @@ -2936,9 +2936,9 @@ int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ( ( mbedtls_ssl_is_handshake_over( ssl ) == 0 && + ( ( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && recv_msg_seq != ssl->handshake->in_msg_seq ) || - ( mbedtls_ssl_is_handshake_over( ssl ) == 1 && + ( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) ) ) { if( recv_msg_seq > ssl->handshake->in_msg_seq ) @@ -3004,7 +3004,7 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 && hs != NULL ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL ) { ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen ); } @@ -3651,7 +3651,7 @@ static int ssl_check_client_reconnect( mbedtls_ssl_context *ssl ) */ if( rec_epoch == 0 && ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - mbedtls_ssl_is_handshake_over( ssl ) == 1 && + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && ssl->in_left > 13 && ssl->in_buf[13] == MBEDTLS_SSL_HS_CLIENT_HELLO ) @@ -4821,7 +4821,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) /* Drop unexpected ApplicationData records, * except at the beginning of renegotiations */ if( ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA && - mbedtls_ssl_is_handshake_over( ssl ) == 0 + ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER #if defined(MBEDTLS_SSL_RENEGOTIATION) && ! ( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && ssl->state == MBEDTLS_SSL_SERVER_HELLO ) @@ -4833,7 +4833,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) { mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); } @@ -5258,7 +5258,7 @@ static int ssl_check_ctr_renegotiate( mbedtls_ssl_context *ssl ) int in_ctr_cmp; int out_ctr_cmp; - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 || + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER || ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING || ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED ) { @@ -5502,7 +5502,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) } #endif - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { ret = mbedtls_ssl_handshake( ssl ); if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && @@ -5613,7 +5613,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) /* We're going to return something now, cancel timer, * except if handshake (renegotiation) is in progress */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) mbedtls_ssl_set_timer( ssl, 0 ); #if defined(MBEDTLS_SSL_PROTO_DTLS) @@ -5758,7 +5758,7 @@ int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_ } #endif - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) { @@ -5786,7 +5786,7 @@ int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write close notify" ) ); - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) { if( ( ret = mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_WARNING, diff --git a/library/ssl_tls.c b/library/ssl_tls.c index da90b2350..5eca7eec0 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -168,7 +168,7 @@ int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, *enabled = MBEDTLS_SSL_CID_DISABLED; if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || - mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -3602,7 +3602,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) if( ssl == NULL || ssl->conf == NULL || ssl->handshake == NULL || - mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) { return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -3706,7 +3706,7 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> handshake" ) ); /* Main handshake loop */ - while( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + while( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { ret = mbedtls_ssl_handshake_step( ssl ); @@ -3807,7 +3807,7 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) /* On server, just send the request */ if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) { - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_PENDING; @@ -3827,7 +3827,7 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) */ if( ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) { - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( ( ret = mbedtls_ssl_start_renegotiation( ssl ) ) != 0 ) @@ -4130,7 +4130,7 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * (only DTLS) but are currently used to simplify the implementation. */ /* The initial handshake must be over */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Initial handshake isn't over" ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); From 6848a619229a9d12542ab721009002bef92cf245 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 27 Oct 2022 13:03:26 +0800 Subject: [PATCH 0781/1574] Revert "Replace internal usage of mbedtls_ssl_is_handshake_over" This reverts commit 1d3ed2975e7ef0d84050a3aece02eec1f890dec3. Signed-off-by: Jerry Yu --- library/ssl_msg.c | 28 ++++++++++++++-------------- library/ssl_tls.c | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index c4af7bf6d..dbc639188 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1883,7 +1883,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) { len = in_buf_len - ( ssl->in_hdr - ssl->in_buf ); - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) timeout = ssl->handshake->retransmit_timeout; else timeout = ssl->conf->read_timeout; @@ -1907,7 +1907,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "timeout" ) ); mbedtls_ssl_set_timer( ssl, 0 ); - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { if( ssl_double_retransmit_timeout( ssl ) != 0 ) { @@ -2343,7 +2343,7 @@ int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) return( ret ); /* Update state and set timer */ - if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; else { @@ -2936,9 +2936,9 @@ int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ( ( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && + ( ( mbedtls_ssl_is_handshake_over( ssl ) == 0 && recv_msg_seq != ssl->handshake->in_msg_seq ) || - ( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && + ( mbedtls_ssl_is_handshake_over( ssl ) == 1 && ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) ) ) { if( recv_msg_seq > ssl->handshake->in_msg_seq ) @@ -3004,7 +3004,7 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 && hs != NULL ) { ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen ); } @@ -3651,7 +3651,7 @@ static int ssl_check_client_reconnect( mbedtls_ssl_context *ssl ) */ if( rec_epoch == 0 && ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && + mbedtls_ssl_is_handshake_over( ssl ) == 1 && ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && ssl->in_left > 13 && ssl->in_buf[13] == MBEDTLS_SSL_HS_CLIENT_HELLO ) @@ -4821,7 +4821,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) /* Drop unexpected ApplicationData records, * except at the beginning of renegotiations */ if( ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA && - ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER + mbedtls_ssl_is_handshake_over( ssl ) == 0 #if defined(MBEDTLS_SSL_RENEGOTIATION) && ! ( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && ssl->state == MBEDTLS_SSL_SERVER_HELLO ) @@ -4833,7 +4833,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + mbedtls_ssl_is_handshake_over( ssl ) == 1 ) { mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); } @@ -5258,7 +5258,7 @@ static int ssl_check_ctr_renegotiate( mbedtls_ssl_context *ssl ) int in_ctr_cmp; int out_ctr_cmp; - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER || + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 || ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING || ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED ) { @@ -5502,7 +5502,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) } #endif - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { ret = mbedtls_ssl_handshake( ssl ); if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && @@ -5613,7 +5613,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) /* We're going to return something now, cancel timer, * except if handshake (renegotiation) is in progress */ - if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) mbedtls_ssl_set_timer( ssl, 0 ); #if defined(MBEDTLS_SSL_PROTO_DTLS) @@ -5758,7 +5758,7 @@ int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_ } #endif - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) { @@ -5786,7 +5786,7 @@ int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write close notify" ) ); - if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) { if( ( ret = mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_WARNING, diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 5eca7eec0..da90b2350 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -168,7 +168,7 @@ int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, *enabled = MBEDTLS_SSL_CID_DISABLED; if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || - ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -3602,7 +3602,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) if( ssl == NULL || ssl->conf == NULL || ssl->handshake == NULL || - ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + mbedtls_ssl_is_handshake_over( ssl ) == 1 ) { return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -3706,7 +3706,7 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> handshake" ) ); /* Main handshake loop */ - while( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + while( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { ret = mbedtls_ssl_handshake_step( ssl ); @@ -3807,7 +3807,7 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) /* On server, just send the request */ if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) { - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_PENDING; @@ -3827,7 +3827,7 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) */ if( ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) { - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); if( ( ret = mbedtls_ssl_start_renegotiation( ssl ) ) != 0 ) @@ -4130,7 +4130,7 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * (only DTLS) but are currently used to simplify the implementation. */ /* The initial handshake must be over */ - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Initial handshake isn't over" ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); From 5ed73ff6de713a91c5486f09136c08947d84819a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 27 Oct 2022 13:08:42 +0800 Subject: [PATCH 0782/1574] Add NEW_SESSION_TICKET* into handshake over states All state list after HANDSHAKE_OVER as is_handshakeover Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 8 +++----- library/ssl_tls.c | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 366554587..8c4d76c86 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -661,8 +661,6 @@ typedef enum MBEDTLS_SSL_SERVER_FINISHED, MBEDTLS_SSL_FLUSH_BUFFERS, MBEDTLS_SSL_HANDSHAKE_WRAPUP, - MBEDTLS_SSL_HANDSHAKE_OVER, - MBEDTLS_SSL_NEW_SESSION_TICKET, MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT, MBEDTLS_SSL_HELLO_RETRY_REQUEST, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS, @@ -671,6 +669,8 @@ typedef enum MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO, MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO, MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST, + MBEDTLS_SSL_HANDSHAKE_OVER, + MBEDTLS_SSL_NEW_SESSION_TICKET, MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH, } mbedtls_ssl_states; @@ -4651,9 +4651,7 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ); */ static inline int mbedtls_ssl_is_handshake_over( mbedtls_ssl_context *ssl ) { - return( ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_HANDSHAKE_OVER || - ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_NEW_SESSION_TICKET || - ssl->MBEDTLS_PRIVATE( state ) == MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH); + return( ssl->MBEDTLS_PRIVATE( state ) >= MBEDTLS_SSL_HANDSHAKE_OVER ); } /** diff --git a/library/ssl_tls.c b/library/ssl_tls.c index da90b2350..df57c9f96 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -7544,7 +7544,7 @@ void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ) #endif mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); - ssl->state++; + ssl->state = MBEDTLS_SSL_HANDSHAKE_OVER; MBEDTLS_SSL_DEBUG_MSG( 3, ( "<= handshake wrapup" ) ); } From 1fb3299ad76abb608fe667a83169d65383d31e50 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 27 Oct 2022 13:18:19 +0800 Subject: [PATCH 0783/1574] Replace internal usage of is_handshake_over. NEW_SESSION_TICKETS* are processed in handshake_step. Change the stop condition from `mbedtls_ssl_is_handshake_over` to directly check. Signed-off-by: Jerry Yu --- library/ssl_msg.c | 16 ++++++++-------- library/ssl_tls.c | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbc639188..5d56dd6f4 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1883,7 +1883,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) { len = in_buf_len - ( ssl->in_hdr - ssl->in_buf ); - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) timeout = ssl->handshake->retransmit_timeout; else timeout = ssl->conf->read_timeout; @@ -1907,7 +1907,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "timeout" ) ); mbedtls_ssl_set_timer( ssl, 0 ); - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { if( ssl_double_retransmit_timeout( ssl ) != 0 ) { @@ -2936,9 +2936,9 @@ int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ( ( mbedtls_ssl_is_handshake_over( ssl ) == 0 && + ( ( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && recv_msg_seq != ssl->handshake->in_msg_seq ) || - ( mbedtls_ssl_is_handshake_over( ssl ) == 1 && + ( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) ) ) { if( recv_msg_seq > ssl->handshake->in_msg_seq ) @@ -3004,7 +3004,7 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 && hs != NULL ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL ) { ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen ); } @@ -4833,7 +4833,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) { mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); } @@ -5502,7 +5502,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) } #endif - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { ret = mbedtls_ssl_handshake( ssl ); if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && @@ -5758,7 +5758,7 @@ int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_ } #endif - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) { diff --git a/library/ssl_tls.c b/library/ssl_tls.c index df57c9f96..506333d77 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3602,7 +3602,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) if( ssl == NULL || ssl->conf == NULL || ssl->handshake == NULL || - mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) { return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -3706,7 +3706,7 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> handshake" ) ); /* Main handshake loop */ - while( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + while( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) { ret = mbedtls_ssl_handshake_step( ssl ); From c5826eaba2e2770e25492e71a27bc5262947faa4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 27 Oct 2022 17:20:26 +0800 Subject: [PATCH 0784/1574] Add debug message Signed-off-by: Jerry Yu --- tests/ssl-opt.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 53b3885c7..3ec345caa 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -11139,8 +11139,8 @@ not_with_valgrind # risk of non-mbedtls peer timing out requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "DTLS proxy: 3d, gnutls server, fragmentation, nbio" \ -p "$P_PXY drop=5 delay=5 duplicate=5" \ - "$G_NEXT_SRV -u --mtu 512" \ - "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2" \ + "$G_NEXT_SRV -u --mtu 512 -d 10" \ + "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2 debug_level=5" \ 0 \ -s "Extra-header:" \ -c "Extra-header:" From cfda4bbeac554a4f77249d456e3c1946e17145b3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 27 Oct 2022 22:20:49 +0800 Subject: [PATCH 0785/1574] Replace handshake over in flight transmit Fix deadloop in DTLS resumption test. Signed-off-by: Jerry Yu --- library/ssl_msg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 5d56dd6f4..eae1ddead 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -2343,7 +2343,7 @@ int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) return( ret ); /* Update state and set timer */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) + if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; else { From a8d3c5048f2553e11d6837724bbf4e1ceb89fcc9 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 30 Oct 2022 14:51:23 +0800 Subject: [PATCH 0786/1574] Rename new session ticket name for TLS 1.3 NewSessionTicket is different with TLS 1.2. It should not share same state. Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 6 ++++-- library/ssl_msg.c | 2 +- library/ssl_tls13_client.c | 4 ++-- library/ssl_tls13_server.c | 18 +++++++++--------- tests/ssl-opt.sh | 20 ++++++++++---------- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 8c4d76c86..afb634e2f 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -661,6 +661,8 @@ typedef enum MBEDTLS_SSL_SERVER_FINISHED, MBEDTLS_SSL_FLUSH_BUFFERS, MBEDTLS_SSL_HANDSHAKE_WRAPUP, + + MBEDTLS_SSL_NEW_SESSION_TICKET, MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT, MBEDTLS_SSL_HELLO_RETRY_REQUEST, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS, @@ -670,8 +672,8 @@ typedef enum MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO, MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST, MBEDTLS_SSL_HANDSHAKE_OVER, - MBEDTLS_SSL_NEW_SESSION_TICKET, - MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH, + MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET, + MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH, } mbedtls_ssl_states; diff --git a/library/ssl_msg.c b/library/ssl_msg.c index eae1ddead..0a414abf9 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -5299,7 +5299,7 @@ static int ssl_tls13_check_new_session_ticket( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "NewSessionTicket received" ) ); mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_NEW_SESSION_TICKET ); + MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); return( MBEDTLS_ERR_SSL_WANT_READ ); } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0372f2d98..db8476c75 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2743,7 +2743,7 @@ static int ssl_tls13_postprocess_new_session_ticket( mbedtls_ssl_context *ssl, } /* - * Handler for MBEDTLS_SSL_NEW_SESSION_TICKET + * Handler for MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_process_new_session_ticket( mbedtls_ssl_context *ssl ) @@ -2857,7 +2857,7 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_SSL_NEW_SESSION_TICKET: + case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET: ret = ssl_tls13_process_new_session_ticket( ssl ); if( ret != 0 ) break; diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 3cd03108f..ce8767c5f 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2628,7 +2628,7 @@ static int ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) mbedtls_ssl_tls13_handshake_wrapup( ssl ); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET ); + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); #else mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); #endif @@ -2636,7 +2636,7 @@ static int ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) } /* - * Handler for MBEDTLS_SSL_NEW_SESSION_TICKET + * Handler for MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET */ #define SSL_NEW_SESSION_TICKET_SKIP 0 #define SSL_NEW_SESSION_TICKET_WRITE 1 @@ -2872,7 +2872,7 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, } /* - * Handler for MBEDTLS_SSL_NEW_SESSION_TICKET + * Handler for MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET */ static int ssl_tls13_write_new_session_ticket( mbedtls_ssl_context *ssl ) { @@ -2908,8 +2908,8 @@ static int ssl_tls13_write_new_session_ticket( mbedtls_ssl_context *ssl ) else ssl->handshake->new_session_tickets_count--; - mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH ); + mbedtls_ssl_handshake_set_state( + ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH ); } else { @@ -3045,7 +3045,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_SSL_NEW_SESSION_TICKET: + case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET: ret = ssl_tls13_write_new_session_ticket( ssl ); if( ret != 0 ) { @@ -3054,9 +3054,9 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) ret ); } break; - case MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH: + case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH: /* This state is necessary to do the flush of the New Session - * Ticket message written in MBEDTLS_SSL_NEW_SESSION_TICKET + * Ticket message written in MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET * as part of ssl_prepare_handshake_step. */ ret = 0; @@ -3064,7 +3064,7 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) if( ssl->handshake->new_session_tickets_count == 0 ) mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_NEW_SESSION_TICKET ); + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 3ec345caa..062e68858 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -12920,8 +12920,8 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, O->m" \ "$O_NEXT_CLI -msg -debug -tls1_3 -reconnect" \ 0 \ -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_SSL_SESSION_TICKETS @@ -12937,8 +12937,8 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, G->m" \ -c "Connecting again- trying to resume previous session" \ -c "NEW SESSION TICKET (4) was received" \ -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ -s "key exchange mode: ephemeral" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" @@ -12960,8 +12960,8 @@ run_test "TLS 1.3: NewSessionTicket: Basic check, m->m" \ -c "Reconnecting with saved session" \ -c "HTTP/1.0 200 OK" \ -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ -s "key exchange mode: ephemeral" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" @@ -13015,8 +13015,8 @@ run_test "TLS 1.3: NewSessionTicket: servername check, m->m" \ -c "Reconnecting with saved session" \ -c "HTTP/1.0 200 OK" \ -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" \ -s "key exchange mode: ephemeral" \ -s "key exchange mode: psk_ephemeral" \ -s "found pre_shared_key extension" @@ -13039,8 +13039,8 @@ run_test "TLS 1.3: NewSessionTicket: servername negative check, m->m" \ -c "Reconnecting with saved session" \ -c "Hostname mismatch the session ticket, disable session resumption." \ -s "=> write NewSessionTicket msg" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET" \ - -s "server state: MBEDTLS_SSL_NEW_SESSION_TICKET_FLUSH" + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET" \ + -s "server state: MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH" # Test heap memory usage after handshake requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From 668070d5f41b425ce98a14f4f5e048e4366899a1 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 9 Nov 2022 22:49:19 +0800 Subject: [PATCH 0787/1574] Remove unnecessary replace Signed-off-by: Jerry Yu --- library/ssl_msg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 0a414abf9..9eb1b7967 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -1883,7 +1883,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) { len = in_buf_len - ( ssl->in_hdr - ssl->in_buf ); - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) timeout = ssl->handshake->retransmit_timeout; else timeout = ssl->conf->read_timeout; @@ -3004,7 +3004,7 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && hs != NULL ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 0 && hs != NULL ) { ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen ); } From 9b421456b05c0b0c8354bb965e9e431159cd0c00 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 18 Nov 2022 21:09:41 +0800 Subject: [PATCH 0788/1574] Revert change in dtls1.2 Signed-off-by: Jerry Yu --- library/ssl_msg.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 9eb1b7967..cacedcaf9 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -2936,9 +2936,9 @@ int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ( ( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER && + ( ( mbedtls_ssl_is_handshake_over( ssl ) == 0 && recv_msg_seq != ssl->handshake->in_msg_seq ) || - ( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER && + ( mbedtls_ssl_is_handshake_over( ssl ) == 1 && ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) ) ) { if( recv_msg_seq > ssl->handshake->in_msg_seq ) @@ -4833,7 +4833,7 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) } if( ssl->handshake != NULL && - ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + mbedtls_ssl_is_handshake_over( ssl ) == 1 ) { mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); } From dddd35ccf37b8372ff99c71faba367cec3e5714b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sun, 20 Nov 2022 12:30:58 +0800 Subject: [PATCH 0789/1574] remvoe unrelative change Signed-off-by: Jerry Yu --- tests/ssl-opt.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 062e68858..a4789db81 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -11139,8 +11139,8 @@ not_with_valgrind # risk of non-mbedtls peer timing out requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "DTLS proxy: 3d, gnutls server, fragmentation, nbio" \ -p "$P_PXY drop=5 delay=5 duplicate=5" \ - "$G_NEXT_SRV -u --mtu 512 -d 10" \ - "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2 debug_level=5" \ + "$G_NEXT_SRV -u --mtu 512" \ + "$P_CLI dgram_packing=0 dtls=1 hs_timeout=500-60000 nbio=2" \ 0 \ -s "Extra-header:" \ -c "Extra-header:" From 0cd8967ba10a8f1d6a2b9be1e4f1a8289e8484ee Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 9 Nov 2022 12:14:14 +0000 Subject: [PATCH 0790/1574] Split test generator base class The class BaseTarget served two purposes: - track test cases and target files for generation - provide an abstract base class for individual test groups Splitting these allows decoupling these two and to have further common superclasses across targets. No intended change in generated test cases. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 5 ++-- scripts/mbedtls_dev/bignum_core.py | 14 +++++------ scripts/mbedtls_dev/bignum_mod.py | 6 ++--- scripts/mbedtls_dev/bignum_mod_raw.py | 4 +-- scripts/mbedtls_dev/test_data_generation.py | 28 +++++++++++++-------- tests/scripts/generate_bignum_tests.py | 6 ++--- 6 files changed, 35 insertions(+), 28 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 8b11bc283..ba30be40e 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -17,6 +17,8 @@ from abc import abstractmethod from typing import Iterator, List, Tuple, TypeVar +from . import test_data_generation + T = TypeVar('T') #pylint: disable=invalid-name def invmod(a: int, n: int) -> int: @@ -63,8 +65,7 @@ def combination_pairs(values: List[T]) -> List[Tuple[T, T]]: """Return all pair combinations from input values.""" return [(x, y) for x in values for y in values] - -class OperationCommon: +class OperationCommon(test_data_generation.BaseTest): """Common features for bignum binary operations. This adds functionality common in binary operation tests. diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 0cc86b809..db9d1b7ca 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -16,20 +16,19 @@ import random -from abc import ABCMeta from typing import Dict, Iterator, List, Tuple from . import test_case from . import test_data_generation from . import bignum_common -class BignumCoreTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): - #pylint: disable=abstract-method +class BignumCoreTarget(test_data_generation.BaseTarget): + #pylint: disable=abstract-method, too-few-public-methods """Target for bignum core test case generation.""" target_basename = 'test_suite_bignum_core.generated' -class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): +class BignumCoreShiftR(BignumCoreTarget, test_data_generation.BaseTest): """Test cases for mbedtls_bignum_core_shift_r().""" count = 0 test_function = "mpi_core_shift_r" @@ -69,7 +68,7 @@ class BignumCoreShiftR(BignumCoreTarget, metaclass=ABCMeta): for count in counts: yield cls(input_hex, descr, count).create_test_case() -class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): +class BignumCoreCTLookup(BignumCoreTarget, test_data_generation.BaseTest): """Test cases for mbedtls_mpi_core_ct_uint_table_lookup().""" test_function = "mpi_core_ct_uint_table_lookup" test_name = "Constant time MPI table lookup" @@ -107,7 +106,8 @@ class BignumCoreCTLookup(BignumCoreTarget, metaclass=ABCMeta): yield (cls(bitsize, bitsize_description, window_size) .create_test_case()) -class BignumCoreOperation(bignum_common.OperationCommon, BignumCoreTarget, metaclass=ABCMeta): +class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon, + metaclass=ABCMeta): #pylint: disable=abstract-method """Common features for bignum core operations.""" input_values = [ @@ -297,7 +297,7 @@ class BignumCoreMLA(BignumCoreOperation): yield cur_op.create_test_case() -class BignumCoreMontmul(BignumCoreTarget): +class BignumCoreMontmul(BignumCoreTarget, test_data_generation.BaseTest): """Test cases for Montgomery multiplication.""" count = 0 test_function = "mpi_core_montmul" diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 2bd7fbbda..a604cc0c5 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -14,12 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from abc import ABCMeta - from . import test_data_generation -class BignumModTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): - #pylint: disable=abstract-method +class BignumModTarget(test_data_generation.BaseTarget): + #pylint: disable=abstract-method, too-few-public-methods """Target for bignum mod test case generation.""" target_basename = 'test_suite_bignum_mod.generated' diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index bd694a608..4f12d9a86 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -21,8 +21,8 @@ from . import test_case from . import test_data_generation from . import bignum_common -class BignumModRawTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): - #pylint: disable=abstract-method +class BignumModRawTarget(test_data_generation.BaseTarget): + #pylint: disable=abstract-method, too-few-public-methods """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index eec0f9d97..3d703eec7 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -25,6 +25,7 @@ import argparse import os import posixpath import re +import inspect from abc import ABCMeta, abstractmethod from typing import Callable, Dict, Iterable, Iterator, List, Type, TypeVar @@ -35,12 +36,8 @@ from . import test_case T = TypeVar('T') #pylint: disable=invalid-name -class BaseTarget(metaclass=ABCMeta): - """Base target for test case generation. - - Child classes of this class represent an output file, and can be referred - to as file targets. These indicate where test cases will be written to for - all subclasses of the file target, which is set by `target_basename`. +class BaseTest(metaclass=ABCMeta): + """Base class for test case generation. Attributes: count: Counter for test cases from this class. @@ -48,8 +45,6 @@ class BaseTarget(metaclass=ABCMeta): automatically generated using the class, or manually set. dependencies: A list of dependencies required for the test case. show_test_count: Toggle for inclusion of `count` in the test description. - target_basename: Basename of file to write generated tests to. This - should be specified in a child class of BaseTarget. test_function: Test function which the class generates cases for. test_name: A common name or description of the test function. This can be `test_function`, a clearer equivalent, or a short summary of the @@ -59,7 +54,6 @@ class BaseTarget(metaclass=ABCMeta): case_description = "" dependencies = [] # type: List[str] show_test_count = True - target_basename = "" test_function = "" test_name = "" @@ -121,6 +115,20 @@ class BaseTarget(metaclass=ABCMeta): """ raise NotImplementedError + +class BaseTarget: + """Base target for test case generation. + + Child classes of this class represent an output file, and can be referred + to as file targets. These indicate where test cases will be written to for + all subclasses of the file target, which is set by `target_basename`. + + Attributes: + target_basename: Basename of file to write generated tests to. This + should be specified in a child class of BaseTarget. + """ + target_basename = "" + @classmethod def generate_tests(cls) -> Iterator[test_case.TestCase]: """Generate test cases for the class and its subclasses. @@ -132,7 +140,7 @@ class BaseTarget(metaclass=ABCMeta): yield from `generate_tests()` in each. Calling this method on a class X will yield test cases from all classes derived from X. """ - if cls.test_function: + if issubclass(cls, BaseTest) and not inspect.isabstract(cls): yield from cls.generate_function_tests() for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index eee2f657a..9e5db3a11 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -68,13 +68,13 @@ from mbedtls_dev import bignum_common # the framework from mbedtls_dev import bignum_core, bignum_mod_raw # pylint: disable=unused-import -class BignumTarget(test_data_generation.BaseTarget, metaclass=ABCMeta): - #pylint: disable=abstract-method +class BignumTarget(test_data_generation.BaseTarget): """Target for bignum (legacy) test case generation.""" target_basename = 'test_suite_bignum.generated' -class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): +class BignumOperation(bignum_common.OperationCommon, BignumTarget, + metaclass=ABCMeta): #pylint: disable=abstract-method """Common features for bignum operations in legacy tests.""" input_values = [ From 87df373e0e52949dbe394893ad768e563c2683a4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 9 Nov 2022 12:31:23 +0000 Subject: [PATCH 0791/1574] Bignum test: Move identical function to superclass No intended change in generated test cases. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 6 ++++++ scripts/mbedtls_dev/bignum_core.py | 5 ----- tests/scripts/generate_bignum_tests.py | 5 ----- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index ba30be40e..02241141f 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -17,6 +17,7 @@ from abc import abstractmethod from typing import Iterator, List, Tuple, TypeVar +from . import test_case from . import test_data_generation T = TypeVar('T') #pylint: disable=invalid-name @@ -122,6 +123,11 @@ class OperationCommon(test_data_generation.BaseTest): ) yield from cls.input_cases + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value).create_test_case() + # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index db9d1b7ca..a1c2e1bc6 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -144,11 +144,6 @@ class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon, ) return super().description() - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value).create_test_case() - class BignumCoreOperationArchSplit(BignumCoreOperation): #pylint: disable=abstract-method diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 9e5db3a11..d923828ce 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -132,11 +132,6 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, tmp = "large " + tmp return tmp - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value).create_test_case() - class BignumCmp(BignumOperation): """Test cases for bignum value comparison.""" From 3aeb60add6038855fc63704947824a016a6e79fc Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 9 Nov 2022 13:24:46 +0000 Subject: [PATCH 0792/1574] Bignum test: move archsplit to superclass We need arch split tests in different modules, moving it to the common module makes it reusable. No intended changes in the generated tests. (The position of the core_add_if tests changed, but they are still all there.) Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 46 +++++++++++++++ scripts/mbedtls_dev/bignum_core.py | 88 +++++++++------------------- 2 files changed, 73 insertions(+), 61 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 02241141f..7ab788be0 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -97,6 +97,19 @@ class OperationCommon(test_data_generation.BaseTest): quote_str(self.arg_a), quote_str(self.arg_b) ] + self.result() + def description(self) -> str: + """Generate a description for the test case. + + If not set, case_description uses the form A `symbol` B, where symbol + is used to represent the operation. Descriptions of each value are + generated to provide some context to the test case. + """ + if not self.case_description: + self.case_description = "{:x} {} {:x}".format( + self.int_a, self.symbol, self.int_b + ) + return super().description() + @abstractmethod def result(self) -> List[str]: """Get the result of the operation. @@ -128,6 +141,39 @@ class OperationCommon(test_data_generation.BaseTest): for a_value, b_value in cls.get_value_pairs(): yield cls(a_value, b_value).create_test_case() + +class OperationCommonArchSplit(OperationCommon): + #pylint: disable=abstract-method + """Common features for operations where the result depends on + the limb size.""" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + bound_val = max(self.int_a, self.int_b) + self.bits_in_limb = bits_in_limb + self.bound = bound_mpi(bound_val, self.bits_in_limb) + limbs = limbs_mpi(bound_val, self.bits_in_limb) + byte_len = limbs * self.bits_in_limb // 8 + self.hex_digits = 2 * byte_len + if self.bits_in_limb == 32: + self.dependencies = ["MBEDTLS_HAVE_INT32"] + elif self.bits_in_limb == 64: + self.dependencies = ["MBEDTLS_HAVE_INT64"] + else: + raise ValueError("Invalid number of bits in limb!") + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + yield cls(a_value, b_value, 32).create_test_case() + yield cls(a_value, b_value, 64).create_test_case() + + # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a1c2e1bc6..591e53c20 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -106,75 +106,41 @@ class BignumCoreCTLookup(BignumCoreTarget, test_data_generation.BaseTest): yield (cls(bitsize, bitsize_description, window_size) .create_test_case()) -class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon, - metaclass=ABCMeta): +INPUT_VALUES = [ + "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", + "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", + "8000000000000000", "fefefefefefefefe", "fffffffffffffffe", + "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", + "fffffffffffffffffefefefefefefefe", "fffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffff", "100000000000000000000000000000000", + "1234567890abcdef01234567890abcdef0", + "fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "10000000000000000000000000000000000000000000000000000000000000000", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029" + "643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947" + "c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0" + "cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b" + ) +] + + +class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon): #pylint: disable=abstract-method """Common features for bignum core operations.""" - input_values = [ - "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", - "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", - "8000000000000000", "fefefefefefefefe", "fffffffffffffffe", - "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", - "fffffffffffffffffefefefefefefefe", "fffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffff", "100000000000000000000000000000000", - "1234567890abcdef01234567890abcdef0", - "fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe", - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "10000000000000000000000000000000000000000000000000000000000000000", - "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", - ( - "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029" - "643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947" - "c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0" - "cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b" - ) - ] - - def description(self) -> str: - """Generate a description for the test case. - - If not set, case_description uses the form A `symbol` B, where symbol - is used to represent the operation. Descriptions of each value are - generated to provide some context to the test case. - """ - if not self.case_description: - self.case_description = "{:x} {} {:x}".format( - self.int_a, self.symbol, self.int_b - ) - return super().description() + input_values = INPUT_VALUES -class BignumCoreOperationArchSplit(BignumCoreOperation): +class BignumCoreOperationArchSplit(BignumCoreTarget, + bignum_common.OperationCommonArchSplit): #pylint: disable=abstract-method """Common features for bignum core operations where the result depends on the limb size.""" + input_values = INPUT_VALUES - def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: - super().__init__(val_a, val_b) - bound_val = max(self.int_a, self.int_b) - self.bits_in_limb = bits_in_limb - self.bound = bignum_common.bound_mpi(bound_val, self.bits_in_limb) - limbs = bignum_common.limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs * self.bits_in_limb // 8 - self.hex_digits = 2 * byte_len - if self.bits_in_limb == 32: - self.dependencies = ["MBEDTLS_HAVE_INT32"] - elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] - else: - raise ValueError("Invalid number of bits in limb!") - self.arg_a = self.arg_a.zfill(self.hex_digits) - self.arg_b = self.arg_b.zfill(self.hex_digits) - - def pad_to_limbs(self, val) -> str: - return "{:x}".format(val).zfill(self.hex_digits) - - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value, 32).create_test_case() - yield cls(a_value, b_value, 64).create_test_case() class BignumCoreAddAndAddIf(BignumCoreOperationArchSplit): """Test cases for bignum core add and add-if.""" From 351e6885f55fd6354b57b51a5dbaadf3231aa7c8 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 9 Nov 2022 16:04:41 +0000 Subject: [PATCH 0793/1574] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/test_data_generation.py | 2 ++ tests/scripts/generate_bignum_tests.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/test_data_generation.py b/scripts/mbedtls_dev/test_data_generation.py index 3d703eec7..02aa51051 100644 --- a/scripts/mbedtls_dev/test_data_generation.py +++ b/scripts/mbedtls_dev/test_data_generation.py @@ -117,6 +117,7 @@ class BaseTest(metaclass=ABCMeta): class BaseTarget: + #pylint: disable=too-few-public-methods """Base target for test case generation. Child classes of this class represent an output file, and can be referred @@ -141,6 +142,7 @@ class BaseTarget: will yield test cases from all classes derived from X. """ if issubclass(cls, BaseTest) and not inspect.isabstract(cls): + #pylint: disable=no-member yield from cls.generate_function_tests() for subclass in sorted(cls.__subclasses__(), key=lambda c: c.__name__): yield from subclass.generate_tests() diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index d923828ce..89d0ac29e 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -57,7 +57,7 @@ of BaseTarget in test_data_generation.py. import sys from abc import ABCMeta -from typing import Iterator, List +from typing import List import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_case @@ -69,6 +69,7 @@ from mbedtls_dev import bignum_common from mbedtls_dev import bignum_core, bignum_mod_raw # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget): + #pylint: disable=too-few-public-methods """Target for bignum (legacy) test case generation.""" target_basename = 'test_suite_bignum.generated' From 5b1dbb4cbcdad4f3c37e40219c3f1a2398d7d87d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 17 Nov 2022 13:32:43 +0000 Subject: [PATCH 0794/1574] Bignum Tests: Move ModOperation to common The class BignumModRawOperation implements functionality that are needed in other modules, therefore we move it to common. No intended changes to test cases. The order of add_and_add_if and sub tests have been switched. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 52 +++++++++++++++++++++++++ scripts/mbedtls_dev/bignum_mod_raw.py | 55 +-------------------------- 2 files changed, 54 insertions(+), 53 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7ab788be0..28e27b039 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -142,6 +142,58 @@ class OperationCommon(test_data_generation.BaseTest): yield cls(a_value, b_value).create_test_case() +class ModOperationCommon(OperationCommon): + #pylint: disable=abstract-method + """Target for bignum mod_raw test case generation.""" + + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_a=val_a, val_b=val_b) + self.val_n = val_n + self.bits_in_limb = bits_in_limb + + @property + def int_n(self) -> int: + return hex_to_int(self.val_n) + + @property + def boundary(self) -> int: + data_in = [self.int_a, self.int_b, self.int_n] + return max([n for n in data_in if n is not None]) + + @property + def limbs(self) -> int: + return limbs_mpi(self.boundary, self.bits_in_limb) + + @property + def hex_digits(self) -> int: + return 2 * (self.limbs * self.bits_in_limb // 8) + + @property + def hex_n(self) -> str: + return "{:x}".format(self.int_n).zfill(self.hex_digits) + + @property + def hex_a(self) -> str: + return "{:x}".format(self.int_a).zfill(self.hex_digits) + + @property + def hex_b(self) -> str: + return "{:x}".format(self.int_b).zfill(self.hex_digits) + + @property + def r(self) -> int: # pylint: disable=invalid-name + l = limbs_mpi(self.int_n, self.bits_in_limb) + return bound_mpi_limbs(l, self.bits_in_limb) + + @property + def r_inv(self) -> int: + return invmod(self.r, self.int_n) + + @property + def r2(self) -> int: # pylint: disable=invalid-name + return pow(self.r, 2) + + class OperationCommonArchSplit(OperationCommon): #pylint: disable=abstract-method """Common features for operations where the result depends on diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 4f12d9a86..884e2ef4a 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,7 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from abc import ABCMeta from typing import Dict, Iterator, List from . import test_case @@ -26,58 +25,8 @@ class BignumModRawTarget(test_data_generation.BaseTarget): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' -class BignumModRawOperation(bignum_common.OperationCommon, BignumModRawTarget, metaclass=ABCMeta): - #pylint: disable=abstract-method - """Target for bignum mod_raw test case generation.""" - - def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: - super().__init__(val_a=val_a, val_b=val_b) - self.val_n = val_n - self.bits_in_limb = bits_in_limb - - @property - def int_n(self) -> int: - return bignum_common.hex_to_int(self.val_n) - - @property - def boundary(self) -> int: - data_in = [self.int_a, self.int_b, self.int_n] - return max([n for n in data_in if n is not None]) - - @property - def limbs(self) -> int: - return bignum_common.limbs_mpi(self.boundary, self.bits_in_limb) - - @property - def hex_digits(self) -> int: - return 2 * (self.limbs * self.bits_in_limb // 8) - - @property - def hex_n(self) -> str: - return "{:x}".format(self.int_n).zfill(self.hex_digits) - - @property - def hex_a(self) -> str: - return "{:x}".format(self.int_a).zfill(self.hex_digits) - - @property - def hex_b(self) -> str: - return "{:x}".format(self.int_b).zfill(self.hex_digits) - - @property - def r(self) -> int: # pylint: disable=invalid-name - l = bignum_common.limbs_mpi(self.int_n, self.bits_in_limb) - return bignum_common.bound_mpi_limbs(l, self.bits_in_limb) - - @property - def r_inv(self) -> int: - return bignum_common.invmod(self.r, self.int_n) - - @property - def r2(self) -> int: # pylint: disable=invalid-name - return pow(self.r, 2) - -class BignumModRawOperationArchSplit(BignumModRawOperation): +class BignumModRawOperationArchSplit(bignum_common.ModOperationCommon, + BignumModRawTarget): #pylint: disable=abstract-method """Common features for bignum mod raw operations where the result depends on the limb size.""" From 948afcecb91caed178b85c6c285768ea604a82aa Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 17 Nov 2022 13:38:56 +0000 Subject: [PATCH 0795/1574] Bignum Tests: move ModOperationArchSplit to common The class BignumModRawOperationArchSplit has functionality that are needed in other modules, therefore moving it to bignum_common. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 22 ++++++++++++++++++++++ scripts/mbedtls_dev/bignum_mod_raw.py | 24 ++---------------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 28e27b039..b853d1136 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -226,6 +226,28 @@ class OperationCommonArchSplit(OperationCommon): yield cls(a_value, b_value, 64).create_test_case() +class ModOperationCommonArchSplit(ModOperationCommon): + #pylint: disable=abstract-method + """Common features for bignum mod raw operations where the result depends on + the limb size.""" + + limb_sizes = [32, 64] # type: List[int] + + def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + super().__init__(val_n=val_n, val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) + + if bits_in_limb not in self.limb_sizes: + raise ValueError("Invalid number of bits in limb!") + + self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + for bil in cls.limb_sizes: + yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() + + # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 884e2ef4a..58a93fc5d 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -25,27 +25,6 @@ class BignumModRawTarget(test_data_generation.BaseTarget): """Target for bignum mod_raw test case generation.""" target_basename = 'test_suite_bignum_mod_raw.generated' -class BignumModRawOperationArchSplit(bignum_common.ModOperationCommon, - BignumModRawTarget): - #pylint: disable=abstract-method - """Common features for bignum mod raw operations where the result depends on - the limb size.""" - - limb_sizes = [32, 64] # type: List[int] - - def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: - super().__init__(val_n=val_n, val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) - - if bits_in_limb not in self.limb_sizes: - raise ValueError("Invalid number of bits in limb!") - - self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] - - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - for bil in cls.limb_sizes: - yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 @@ -71,7 +50,8 @@ class BignumModRawOperationArchSplit(bignum_common.ModOperationCommon, # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 -class BignumModRawConvertToMont(BignumModRawOperationArchSplit): +class BignumModRawConvertToMont(bignum_common.ModOperationCommonArchSplit, + BignumModRawTarget): """ Test cases for mpi_mod_raw_to_mont_rep(). """ test_function = "mpi_mod_raw_to_mont_rep" From 155ad8c2971973b950c5c730a21fd9815f57fef7 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 17 Nov 2022 14:42:40 +0000 Subject: [PATCH 0796/1574] Bignum Tests: remove ModOperationCommonArchSplit The functionality of ModOperationCommonArchSplit is needed in several subclasses, therefore moving it to a superclass. There is another, redundant ArchSplit class, which will be removed in a later commit. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 49 ++++++++++++--------------- scripts/mbedtls_dev/bignum_mod_raw.py | 3 +- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index b853d1136..cbbbf9f67 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -80,17 +80,29 @@ class OperationCommon(test_data_generation.BaseTest): unique_combinations_only: Boolean to select if test case combinations must be unique. If True, only A,B or B,A would be included as a test case. If False, both A,B and B,A would be included. + arch_split: Boolean to select if different test cases are needed + depending on the architecture/limb size. This will cause test + objects being generated with different architectures. Individual + test objects can tell their architecture by accessing the + bits_in_limb instance variable. """ symbol = "" input_values = [] # type: List[str] input_cases = [] # type: List[Tuple[str, str]] unique_combinations_only = True + arch_split = False + limb_sizes = [32, 64] # type: List[int] - def __init__(self, val_a: str, val_b: str) -> None: + def __init__(self, val_a: str, val_b: str, bits_in_limb: int = 64) -> None: self.arg_a = val_a self.arg_b = val_b self.int_a = hex_to_int(val_a) self.int_b = hex_to_int(val_b) + if bits_in_limb not in self.limb_sizes: + raise ValueError("Invalid number of bits in limb!") + if self.arch_split: + self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] + self.bits_in_limb = bits_in_limb def arguments(self) -> List[str]: return [ @@ -139,17 +151,22 @@ class OperationCommon(test_data_generation.BaseTest): @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value).create_test_case() + if cls.arch_split: + for bil in cls.limb_sizes: + yield cls(a_value, b_value, + bits_in_limb=bil).create_test_case() + else: + yield cls(a_value, b_value).create_test_case() class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" - def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: - super().__init__(val_a=val_a, val_b=val_b) + def __init__(self, val_n: str, val_a: str, val_b: str = "0", + bits_in_limb: int = 64) -> None: + super().__init__(val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) self.val_n = val_n - self.bits_in_limb = bits_in_limb @property def int_n(self) -> int: @@ -226,28 +243,6 @@ class OperationCommonArchSplit(OperationCommon): yield cls(a_value, b_value, 64).create_test_case() -class ModOperationCommonArchSplit(ModOperationCommon): - #pylint: disable=abstract-method - """Common features for bignum mod raw operations where the result depends on - the limb size.""" - - limb_sizes = [32, 64] # type: List[int] - - def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: - super().__init__(val_n=val_n, val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) - - if bits_in_limb not in self.limb_sizes: - raise ValueError("Invalid number of bits in limb!") - - self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] - - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - for bil in cls.limb_sizes: - yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() - - # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 58a93fc5d..f44acef73 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -50,12 +50,13 @@ class BignumModRawTarget(test_data_generation.BaseTarget): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 -class BignumModRawConvertToMont(bignum_common.ModOperationCommonArchSplit, +class BignumModRawConvertToMont(bignum_common.ModOperationCommon, BignumModRawTarget): """ Test cases for mpi_mod_raw_to_mont_rep(). """ test_function = "mpi_mod_raw_to_mont_rep" test_name = "Convert into Mont: " + arch_split = True test_data_moduli = ["b", "fd", From b41ab926b2dc1808235099bbeed31159dbebc4c1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 17 Nov 2022 15:13:02 +0000 Subject: [PATCH 0797/1574] Bignum Tests: move properties to superclass Move properties that are needed in several children to the superclass. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 40 +++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index cbbbf9f67..7d52749f8 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -104,6 +104,27 @@ class OperationCommon(test_data_generation.BaseTest): self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] self.bits_in_limb = bits_in_limb + @property + def boundary(self) -> int: + data_in = [self.int_a, self.int_b] + return max([n for n in data_in if n is not None]) + + @property + def limbs(self) -> int: + return limbs_mpi(self.boundary, self.bits_in_limb) + + @property + def hex_digits(self) -> int: + return 2 * (self.limbs * self.bits_in_limb // 8) + + @property + def hex_a(self) -> str: + return "{:x}".format(self.int_a).zfill(self.hex_digits) + + @property + def hex_b(self) -> str: + return "{:x}".format(self.int_b).zfill(self.hex_digits) + def arguments(self) -> List[str]: return [ quote_str(self.arg_a), quote_str(self.arg_b) @@ -177,26 +198,10 @@ class ModOperationCommon(OperationCommon): data_in = [self.int_a, self.int_b, self.int_n] return max([n for n in data_in if n is not None]) - @property - def limbs(self) -> int: - return limbs_mpi(self.boundary, self.bits_in_limb) - - @property - def hex_digits(self) -> int: - return 2 * (self.limbs * self.bits_in_limb // 8) - @property def hex_n(self) -> str: return "{:x}".format(self.int_n).zfill(self.hex_digits) - @property - def hex_a(self) -> str: - return "{:x}".format(self.int_a).zfill(self.hex_digits) - - @property - def hex_b(self) -> str: - return "{:x}".format(self.int_b).zfill(self.hex_digits) - @property def r(self) -> int: # pylint: disable=invalid-name l = limbs_mpi(self.int_n, self.bits_in_limb) @@ -221,9 +226,6 @@ class OperationCommonArchSplit(OperationCommon): bound_val = max(self.int_a, self.int_b) self.bits_in_limb = bits_in_limb self.bound = bound_mpi(bound_val, self.bits_in_limb) - limbs = limbs_mpi(bound_val, self.bits_in_limb) - byte_len = limbs * self.bits_in_limb // 8 - self.hex_digits = 2 * byte_len if self.bits_in_limb == 32: self.dependencies = ["MBEDTLS_HAVE_INT32"] elif self.bits_in_limb == 64: From 6fa3f0653ae081ea43d5414624993d17f9b056dd Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 17 Nov 2022 20:33:51 +0000 Subject: [PATCH 0798/1574] Bignum Tests: remove OperationCommonArchSplit The ArchSplit functionality was duplicated and moved to OperationCommon from the other copy. The remnants of the functionality is moved to the only subclass using this. There is no semantic change to the generated tests. The order has changed however: core_add tests have been moved before core_mla tests and the order of the 64 and 32 bit versions have been swapped. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 52 ++++++++------------------- scripts/mbedtls_dev/bignum_core.py | 24 +++++++------ scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 3 files changed, 29 insertions(+), 49 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7d52749f8..0784f845f 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -80,17 +80,18 @@ class OperationCommon(test_data_generation.BaseTest): unique_combinations_only: Boolean to select if test case combinations must be unique. If True, only A,B or B,A would be included as a test case. If False, both A,B and B,A would be included. - arch_split: Boolean to select if different test cases are needed - depending on the architecture/limb size. This will cause test - objects being generated with different architectures. Individual - test objects can tell their architecture by accessing the - bits_in_limb instance variable. + input_style: Controls the way how test data is passed to the functions + in the generated test cases. "variable" passes them as they are + defined in the python source. "arch_split" pads the values with + zeroes depending on the architecture/limb size. If this is set, + test cases are generated for all architectures. """ symbol = "" input_values = [] # type: List[str] input_cases = [] # type: List[Tuple[str, str]] unique_combinations_only = True - arch_split = False + input_styles = ["variable", "arch_split"] # type: List[str] + input_style = "variable" # type: str limb_sizes = [32, 64] # type: List[int] def __init__(self, val_a: str, val_b: str, bits_in_limb: int = 64) -> None: @@ -100,7 +101,7 @@ class OperationCommon(test_data_generation.BaseTest): self.int_b = hex_to_int(val_b) if bits_in_limb not in self.limb_sizes: raise ValueError("Invalid number of bits in limb!") - if self.arch_split: + if self.input_style == "arch_split": self.dependencies = ["MBEDTLS_HAVE_INT{:d}".format(bits_in_limb)] self.bits_in_limb = bits_in_limb @@ -109,6 +110,10 @@ class OperationCommon(test_data_generation.BaseTest): data_in = [self.int_a, self.int_b] return max([n for n in data_in if n is not None]) + @property + def limb_boundary(self) -> int: + return bound_mpi(self.boundary, self.bits_in_limb) + @property def limbs(self) -> int: return limbs_mpi(self.boundary, self.bits_in_limb) @@ -171,8 +176,10 @@ class OperationCommon(test_data_generation.BaseTest): @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + if cls.input_style not in cls.input_styles: + raise ValueError("Unknown input style!") for a_value, b_value in cls.get_value_pairs(): - if cls.arch_split: + if cls.input_style == "arch_split": for bil in cls.limb_sizes: yield cls(a_value, b_value, bits_in_limb=bil).create_test_case() @@ -216,35 +223,6 @@ class ModOperationCommon(OperationCommon): return pow(self.r, 2) -class OperationCommonArchSplit(OperationCommon): - #pylint: disable=abstract-method - """Common features for operations where the result depends on - the limb size.""" - - def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: - super().__init__(val_a, val_b) - bound_val = max(self.int_a, self.int_b) - self.bits_in_limb = bits_in_limb - self.bound = bound_mpi(bound_val, self.bits_in_limb) - if self.bits_in_limb == 32: - self.dependencies = ["MBEDTLS_HAVE_INT32"] - elif self.bits_in_limb == 64: - self.dependencies = ["MBEDTLS_HAVE_INT64"] - else: - raise ValueError("Invalid number of bits in limb!") - self.arg_a = self.arg_a.zfill(self.hex_digits) - self.arg_b = self.arg_b.zfill(self.hex_digits) - - def pad_to_limbs(self, val) -> str: - return "{:x}".format(val).zfill(self.hex_digits) - - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - yield cls(a_value, b_value, 32).create_test_case() - yield cls(a_value, b_value, 64).create_test_case() - - # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 591e53c20..749403705 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -106,6 +106,7 @@ class BignumCoreCTLookup(BignumCoreTarget, test_data_generation.BaseTest): yield (cls(bitsize, bitsize_description, window_size) .create_test_case()) + INPUT_VALUES = [ "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", @@ -127,38 +128,39 @@ INPUT_VALUES = [ ) ] - class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon): #pylint: disable=abstract-method """Common features for bignum core operations.""" input_values = INPUT_VALUES -class BignumCoreOperationArchSplit(BignumCoreTarget, - bignum_common.OperationCommonArchSplit): - #pylint: disable=abstract-method - """Common features for bignum core operations where the result depends on - the limb size.""" - input_values = INPUT_VALUES - - -class BignumCoreAddAndAddIf(BignumCoreOperationArchSplit): +class BignumCoreAddAndAddIf(BignumCoreOperation): """Test cases for bignum core add and add-if.""" count = 0 symbol = "+" test_function = "mpi_core_add_and_add_if" test_name = "mpi_core_add_and_add_if" + input_style = "arch_split" + + def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: + super().__init__(val_a, val_b) + self.arg_a = self.arg_a.zfill(self.hex_digits) + self.arg_b = self.arg_b.zfill(self.hex_digits) + + def pad_to_limbs(self, val) -> str: + return "{:x}".format(val).zfill(self.hex_digits) def result(self) -> List[str]: result = self.int_a + self.int_b - carry, result = divmod(result, self.bound) + carry, result = divmod(result, self.limb_boundary) return [ bignum_common.quote_str(self.pad_to_limbs(result)), str(carry) ] + class BignumCoreSub(BignumCoreOperation): """Test cases for bignum core sub.""" count = 0 diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index f44acef73..b330c493d 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -56,7 +56,7 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, test_function = "mpi_mod_raw_to_mont_rep" test_name = "Convert into Mont: " - arch_split = True + input_style = "arch_split" test_data_moduli = ["b", "fd", From 4c59d35e00d08ae2a6ab51a13077776c05d22a3d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 18 Nov 2022 16:05:46 +0000 Subject: [PATCH 0799/1574] Bignum tests: make args use input_style Before arg_ attributes were the arguments as they were defined in the python script. Turning these into properties and having them take the form respect the style set in input_style makes the class easier to use and more consistent. This change makes the hex_ properties redundant and therefore they are removed. There are no semantic changes to the generated test cases. (The order of appearance of 64 and 32 bit mpi_core_add_and_add_if test cases has changed.) Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 30 +++++++++++++++++++-------- scripts/mbedtls_dev/bignum_core.py | 10 +-------- scripts/mbedtls_dev/bignum_mod_raw.py | 4 ++-- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 0784f845f..907c0b6d5 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -95,8 +95,8 @@ class OperationCommon(test_data_generation.BaseTest): limb_sizes = [32, 64] # type: List[int] def __init__(self, val_a: str, val_b: str, bits_in_limb: int = 64) -> None: - self.arg_a = val_a - self.arg_b = val_b + self.val_a = val_a + self.val_b = val_b self.int_a = hex_to_int(val_a) self.int_b = hex_to_int(val_b) if bits_in_limb not in self.limb_sizes: @@ -122,13 +122,25 @@ class OperationCommon(test_data_generation.BaseTest): def hex_digits(self) -> int: return 2 * (self.limbs * self.bits_in_limb // 8) - @property - def hex_a(self) -> str: - return "{:x}".format(self.int_a).zfill(self.hex_digits) + def format_arg(self, val) -> str: + if self.input_style not in self.input_styles: + raise ValueError("Unknown input style!") + if self.input_style == "variable": + return val + else: + return val.zfill(self.hex_digits) + + def format_result(self, res) -> str: + res_str = '{:x}'.format(res) + return quote_str(self.format_arg(res_str)) @property - def hex_b(self) -> str: - return "{:x}".format(self.int_b).zfill(self.hex_digits) + def arg_a(self) -> str: + return self.format_arg(self.val_a) + + @property + def arg_b(self) -> str: + return self.format_arg(self.val_b) def arguments(self) -> List[str]: return [ @@ -206,8 +218,8 @@ class ModOperationCommon(OperationCommon): return max([n for n in data_in if n is not None]) @property - def hex_n(self) -> str: - return "{:x}".format(self.int_n).zfill(self.hex_digits) + def arg_n(self) -> str: + return self.format_arg(self.val_n) @property def r(self) -> int: # pylint: disable=invalid-name diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 749403705..48390b98c 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -142,21 +142,13 @@ class BignumCoreAddAndAddIf(BignumCoreOperation): test_name = "mpi_core_add_and_add_if" input_style = "arch_split" - def __init__(self, val_a: str, val_b: str, bits_in_limb: int) -> None: - super().__init__(val_a, val_b) - self.arg_a = self.arg_a.zfill(self.hex_digits) - self.arg_b = self.arg_b.zfill(self.hex_digits) - - def pad_to_limbs(self, val) -> str: - return "{:x}".format(val).zfill(self.hex_digits) - def result(self) -> List[str]: result = self.int_a + self.int_b carry, result = divmod(result, self.limb_boundary) return [ - bignum_common.quote_str(self.pad_to_limbs(result)), + self.format_result(result), str(carry) ] diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index b330c493d..e2d8cd698 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -114,8 +114,8 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, return [self.hex_x] def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.hex_n, - self.hex_a, + return [bignum_common.quote_str(n) for n in [self.arg_n, + self.arg_a, self.hex_x]] def description(self) -> str: From abfca8f938e9923a849a0aaa350767e93f10ca5a Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 18 Nov 2022 16:48:45 +0000 Subject: [PATCH 0800/1574] Bignum tests: make n an attribute Having int_ variants as an attribute has the advantage of the input being validated when the object is instantiated. In theory otherwise if a particular int_ attribute is not accessed, then the invalid argument is passed to the tests as it is. (This would in all likelihood detected by the actual test cases, still, it is more robust like this.) There are no semantic changes to the generated test cases. (The order of appearance of 64 and 32 bit mpi_core_add_and_add_if test cases has changed.) Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 907c0b6d5..58eb11ebd 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -97,6 +97,8 @@ class OperationCommon(test_data_generation.BaseTest): def __init__(self, val_a: str, val_b: str, bits_in_limb: int = 64) -> None: self.val_a = val_a self.val_b = val_b + # Setting the int versions here as opposed to making them @properties + # provides earlier/more robust input validation. self.int_a = hex_to_int(val_a) self.int_b = hex_to_int(val_b) if bits_in_limb not in self.limb_sizes: @@ -207,10 +209,9 @@ class ModOperationCommon(OperationCommon): bits_in_limb: int = 64) -> None: super().__init__(val_a=val_a, val_b=val_b, bits_in_limb=bits_in_limb) self.val_n = val_n - - @property - def int_n(self) -> int: - return hex_to_int(self.val_n) + # Setting the int versions here as opposed to making them @properties + # provides earlier/more robust input validation. + self.int_n = hex_to_int(val_n) @property def boundary(self) -> int: From a36a3d36b5c749011f8b94f88d37a3f3523ff8a8 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 18 Nov 2022 17:49:13 +0000 Subject: [PATCH 0801/1574] Bignum tests: add arity Add the ability to control the number of operands, by setting the arity class attribute. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 30 ++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 58eb11ebd..ecff206a3 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -85,6 +85,8 @@ class OperationCommon(test_data_generation.BaseTest): defined in the python source. "arch_split" pads the values with zeroes depending on the architecture/limb size. If this is set, test cases are generated for all architectures. + arity: the number of operands for the operation. Currently supported + values are 1 and 2. """ symbol = "" input_values = [] # type: List[str] @@ -93,8 +95,10 @@ class OperationCommon(test_data_generation.BaseTest): input_styles = ["variable", "arch_split"] # type: List[str] input_style = "variable" # type: str limb_sizes = [32, 64] # type: List[int] + arities = [1, 2] + arity = 2 - def __init__(self, val_a: str, val_b: str, bits_in_limb: int = 64) -> None: + def __init__(self, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: self.val_a = val_a self.val_b = val_b # Setting the int versions here as opposed to making them @properties @@ -109,8 +113,11 @@ class OperationCommon(test_data_generation.BaseTest): @property def boundary(self) -> int: - data_in = [self.int_a, self.int_b] - return max([n for n in data_in if n is not None]) + if self.arity == 1: + return self.int_a + elif self.arity == 2: + return max(self.int_a, self.int_b) + raise ValueError("Unsupported number of operands!") @property def limb_boundary(self) -> int: @@ -142,12 +149,15 @@ class OperationCommon(test_data_generation.BaseTest): @property def arg_b(self) -> str: + if self.arity == 1: + raise AttributeError("Operation is unary and doesn't have arg_b!") return self.format_arg(self.val_b) def arguments(self) -> List[str]: - return [ - quote_str(self.arg_a), quote_str(self.arg_b) - ] + self.result() + args = [quote_str(self.arg_a)] + if self.arity == 2: + args.append(quote_str(self.arg_b)) + return args + self.result() def description(self) -> str: """Generate a description for the test case. @@ -192,6 +202,8 @@ class OperationCommon(test_data_generation.BaseTest): def generate_function_tests(cls) -> Iterator[test_case.TestCase]: if cls.input_style not in cls.input_styles: raise ValueError("Unknown input style!") + if cls.arity not in cls.arities: + raise ValueError("Unsupported number of operands!") for a_value, b_value in cls.get_value_pairs(): if cls.input_style == "arch_split": for bil in cls.limb_sizes: @@ -215,13 +227,15 @@ class ModOperationCommon(OperationCommon): @property def boundary(self) -> int: - data_in = [self.int_a, self.int_b, self.int_n] - return max([n for n in data_in if n is not None]) + return self.int_n @property def arg_n(self) -> str: return self.format_arg(self.val_n) + def arguments(self) -> List[str]: + return [quote_str(self.arg_n)] + super().arguments() + @property def r(self) -> int: # pylint: disable=invalid-name l = limbs_mpi(self.int_n, self.bits_in_limb) From 1921fd585cb0314bb7e6e165727664c52052dd97 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 18 Nov 2022 17:51:02 +0000 Subject: [PATCH 0802/1574] Bignum tests: use arity in bignum_mod_raw This makes a couple of properties redundant which are cleaned up. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod_raw.py | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index e2d8cd698..6c217c235 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -57,6 +57,7 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, test_function = "mpi_mod_raw_to_mont_rep" test_name = "Convert into Mont: " input_style = "arch_split" + arity = 1 test_data_moduli = ["b", "fd", @@ -111,12 +112,8 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, descr_tpl = '{} #{} N: \"{}\" A: \"{}\".' def result(self) -> List[str]: - return [self.hex_x] - - def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.arg_n, - self.arg_a, - self.hex_x]] + result = (self.int_a * self.r) % self.int_n + return [self.format_result(result)] def description(self) -> str: return self.descr_tpl.format(self.test_name, @@ -134,13 +131,6 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, continue yield cls(n, i, bits_in_limb=bil).create_test_case() - @property - def x(self) -> int: # pylint: disable=invalid-name - return (self.int_a * self.r) % self.int_n - - @property - def hex_x(self) -> str: - return "{:x}".format(self.x).zfill(self.hex_digits) class BignumModRawConvertFromMont(BignumModRawConvertToMont): """ Test cases for mpi_mod_raw_from_mont_rep(). """ @@ -169,9 +159,11 @@ class BignumModRawConvertFromMont(BignumModRawConvertToMont): "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" ] - @property - def x(self): # pylint: disable=invalid-name - return (self.int_a * self.r_inv) % self.int_n + def result(self) -> List[str]: + result = (self.int_a * self.r_inv) % self.int_n + return [self.format_result(result)] + + # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 939621f8ed6803f2967568a3d70582ba27e85e07 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 18 Nov 2022 18:15:24 +0000 Subject: [PATCH 0803/1574] Bignum tests: add support for filtering Sometimes we don't want all possible combinations of the input data and sometimes not all combinations make sense. We are adding a convenient way to decide on a case by case basis. Now child classes only need to implement the is_valid method and the invalid cases will be filtered out automatically. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index ecff206a3..b22846b71 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -172,6 +172,10 @@ class OperationCommon(test_data_generation.BaseTest): ) return super().description() + @property + def is_valid(self) -> bool: + return True + @abstractmethod def result(self) -> List[str]: """Get the result of the operation. @@ -204,13 +208,18 @@ class OperationCommon(test_data_generation.BaseTest): raise ValueError("Unknown input style!") if cls.arity not in cls.arities: raise ValueError("Unsupported number of operands!") - for a_value, b_value in cls.get_value_pairs(): - if cls.input_style == "arch_split": - for bil in cls.limb_sizes: - yield cls(a_value, b_value, - bits_in_limb=bil).create_test_case() - else: - yield cls(a_value, b_value).create_test_case() + if cls.input_style == "arch_split": + test_objects = (cls(a_value, b_value, bits_in_limb=bil) + for a_value, b_value in cls.get_value_pairs() + for bil in cls.limb_sizes) + else: + test_objects = (cls(a_value, b_value) for + a_value, b_value in cls.get_value_pairs()) + yield from (valid_test_object.create_test_case() + for valid_test_object in filter( + lambda test_object: test_object.is_valid, + test_objects + )) class ModOperationCommon(OperationCommon): From c4fca5de3ebe5a586a4be591f32b4b641d6e558c Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 10:42:20 +0000 Subject: [PATCH 0804/1574] Bignum tests: automate modulo test object generation Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 37 +++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index b22846b71..7d7170d17 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -209,12 +209,12 @@ class OperationCommon(test_data_generation.BaseTest): if cls.arity not in cls.arities: raise ValueError("Unsupported number of operands!") if cls.input_style == "arch_split": - test_objects = (cls(a_value, b_value, bits_in_limb=bil) - for a_value, b_value in cls.get_value_pairs() + test_objects = (cls(a, b, bits_in_limb=bil) + for a, b in cls.get_value_pairs() for bil in cls.limb_sizes) else: - test_objects = (cls(a_value, b_value) for - a_value, b_value in cls.get_value_pairs()) + test_objects = (cls(a, b) + for a, b in cls.get_value_pairs()) yield from (valid_test_object.create_test_case() for valid_test_object in filter( lambda test_object: test_object.is_valid, @@ -225,6 +225,7 @@ class OperationCommon(test_data_generation.BaseTest): class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" + moduli = [] # type: List[str] def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: @@ -258,6 +259,34 @@ class ModOperationCommon(OperationCommon): def r2(self) -> int: # pylint: disable=invalid-name return pow(self.r, 2) + @property + def is_valid(self) -> bool: + if self.int_a >= self.int_n: + return False + if self.arity == 2 and self.int_b >= self.int_n: + return False + return True + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + if cls.input_style not in cls.input_styles: + raise ValueError("Unknown input style!") + if cls.arity not in cls.arities: + raise ValueError("Unsupported number of operands!") + if cls.input_style == "arch_split": + test_objects = (cls(n, a, b, bits_in_limb=bil) + for n in cls.moduli + for a, b in cls.get_value_pairs() + for bil in cls.limb_sizes) + else: + test_objects = (cls(n, a, b) + for n in cls.moduli + for a, b in cls.get_value_pairs()) + yield from (valid_test_object.create_test_case() + for valid_test_object in filter( + lambda test_object: test_object.is_valid, + test_objects + )) # BEGIN MERGE SLOT 1 From 98edf21bb4bb33b1dc2b6a62f0eca204b4160c48 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 12:48:17 +0000 Subject: [PATCH 0805/1574] Bignum test: remove type restrictrion The special case list type depends on the arity and the subclass. Remove type restriction to make defining special case lists more flexible and natural. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 16 +++++++++++----- scripts/mbedtls_dev/bignum_core.py | 10 ++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7d7170d17..ed321d7c3 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -15,7 +15,8 @@ # limitations under the License. from abc import abstractmethod -from typing import Iterator, List, Tuple, TypeVar +from typing import Iterator, List, Tuple, TypeVar, Any +from itertools import chain from . import test_case from . import test_data_generation @@ -90,7 +91,7 @@ class OperationCommon(test_data_generation.BaseTest): """ symbol = "" input_values = [] # type: List[str] - input_cases = [] # type: List[Tuple[str, str]] + input_cases = [] # type: List[Any] unique_combinations_only = True input_styles = ["variable", "arch_split"] # type: List[str] input_style = "variable" # type: str @@ -200,7 +201,6 @@ class OperationCommon(test_data_generation.BaseTest): for a in cls.input_values for b in cls.input_values ) - yield from cls.input_cases @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: @@ -212,14 +212,20 @@ class OperationCommon(test_data_generation.BaseTest): test_objects = (cls(a, b, bits_in_limb=bil) for a, b in cls.get_value_pairs() for bil in cls.limb_sizes) + special_cases = (cls(*args, bits_in_limb=bil) # type: ignore + for args in cls.input_cases + for bil in cls.limb_sizes) else: test_objects = (cls(a, b) for a, b in cls.get_value_pairs()) + special_cases = (cls(*args) for args in cls.input_cases) yield from (valid_test_object.create_test_case() for valid_test_object in filter( lambda test_object: test_object.is_valid, - test_objects - )) + chain(test_objects, special_cases) + ) + ) + class ModOperationCommon(OperationCommon): diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 48390b98c..1bfc652ef 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -243,6 +243,16 @@ class BignumCoreMLA(BignumCoreOperation): "\"{:x}\"".format(carry_8) ] + @classmethod + def get_value_pairs(cls) -> Iterator[Tuple[str, str]]: + """Generator to yield pairs of inputs. + + Combinations are first generated from all input values, and then + specific cases provided. + """ + yield from super().get_value_pairs() + yield from cls.input_cases + @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: """Override for additional scalar input.""" From 435b305a491853c7b477f5b012c226832574104e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 14:18:02 +0000 Subject: [PATCH 0806/1574] Bignum tests: add special cases to mod Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index ed321d7c3..6fd42d1e7 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -273,6 +273,15 @@ class ModOperationCommon(OperationCommon): return False return True + @classmethod + def input_cases_args(cls) -> Iterator[Tuple[Any, Any, Any]]: + if cls.arity == 1: + yield from ((n, a, "0") for a, n in cls.input_cases) + elif cls.arity == 2: + yield from ((n, a, b) for a, b, n in cls.input_cases) + else: + raise ValueError("Unsupported number of operands!") + @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: if cls.input_style not in cls.input_styles: @@ -284,14 +293,18 @@ class ModOperationCommon(OperationCommon): for n in cls.moduli for a, b in cls.get_value_pairs() for bil in cls.limb_sizes) + special_cases = (cls(*args, bits_in_limb=bil) + for args in cls.input_cases_args() + for bil in cls.limb_sizes) else: test_objects = (cls(n, a, b) for n in cls.moduli for a, b in cls.get_value_pairs()) + special_cases = (cls(*args) for args in cls.input_cases_args()) yield from (valid_test_object.create_test_case() for valid_test_object in filter( lambda test_object: test_object.is_valid, - test_objects + chain(test_objects, special_cases) )) # BEGIN MERGE SLOT 1 From 284672ccfb23b7a62aa730cc86012722cd794f85 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 14:55:43 +0000 Subject: [PATCH 0807/1574] Bignum tests: complete support for unary operators There are no intended changes to generated tests. (The ordering of tests in the mod_raw module has changed.) Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 19 ++-- scripts/mbedtls_dev/bignum_mod_raw.py | 149 ++++++++++++-------------- 2 files changed, 81 insertions(+), 87 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 6fd42d1e7..318e25ca1 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -193,14 +193,19 @@ class OperationCommon(test_data_generation.BaseTest): Combinations are first generated from all input values, and then specific cases provided. """ - if cls.unique_combinations_only: - yield from combination_pairs(cls.input_values) + if cls.arity == 1: + yield from ((a, "0") for a in cls.input_values) + elif cls.arity == 2: + if cls.unique_combinations_only: + yield from combination_pairs(cls.input_values) + else: + yield from ( + (a, b) + for a in cls.input_values + for b in cls.input_values + ) else: - yield from ( - (a, b) - for a in cls.input_values - for b in cls.input_values - ) + raise ValueError("Unsupported number of operands!") @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 6c217c235..087c8dc87 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,9 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, Iterator, List +from typing import Dict, List -from . import test_case from . import test_data_generation from . import bignum_common @@ -59,55 +58,55 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, input_style = "arch_split" arity = 1 - test_data_moduli = ["b", - "fd", - "eeff99aa37", - "eeff99aa11", - "800000000005", - "7fffffffffffffff", - "80fe000a10000001", - "25a55a46e5da99c71c7", - "1058ad82120c3a10196bb36229c1", - "7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f" - "18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a" - "98df75154f8c914a282f8b", - "8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63", - "ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f" - "2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a6" - "4d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2" - "deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d" - "6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a0" - "7e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d389" - "8c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6" - "bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3a" - "d4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181d" - "b8896f33bb12e6ef73f12ec5c5ea7a8a337" - ] + moduli = ["b", + "fd", + "eeff99aa37", + "eeff99aa11", + "800000000005", + "7fffffffffffffff", + "80fe000a10000001", + "25a55a46e5da99c71c7", + "1058ad82120c3a10196bb36229c1", + "7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f" + "18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a" + "98df75154f8c914a282f8b", + "8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63", + "ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f" + "2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a6" + "4d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2" + "deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d" + "6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a0" + "7e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d389" + "8c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6" + "bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3a" + "d4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181d" + "b8896f33bb12e6ef73f12ec5c5ea7a8a337" + ] - test_input_numbers = ["0", - "1", - "97", - "f5", - "6f5c3", - "745bfe50f7", - "ffa1f9924123", - "334a8b983c79bd", - "5b84f632b58f3461", - "19acd15bc38008e1", - "ffffffffffffffff", - "54ce6a6bb8247fa0427cfc75a6b0599", - "fecafe8eca052f154ce6a6bb8247fa019558bfeecce9bb9", - "a87d7a56fa4bfdc7da42ef798b9cf6843d4c54794698cb14d72" - "851dec9586a319f4bb6d5695acbd7c92e7a42a5ede6972adcbc" - "f68425265887f2d721f462b7f1b91531bac29fa648facb8e3c6" - "1bd5ae42d5a59ba1c89a95897bfe541a8ce1d633b98f379c481" - "6f25e21f6ac49286b261adb4b78274fe5f61c187581f213e84b" - "2a821e341ef956ecd5de89e6c1a35418cd74a549379d2d4594a" - "577543147f8e35b3514e62cf3e89d1156cdc91ab5f4c928fbd6" - "9148c35df5962fed381f4d8a62852a36823d5425f7487c13a12" - "523473fb823aa9d6ea5f42e794e15f2c1a8785cf6b7d51a4617" - "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" - ] + input_values = ["0", + "1", + "97", + "f5", + "6f5c3", + "745bfe50f7", + "ffa1f9924123", + "334a8b983c79bd", + "5b84f632b58f3461", + "19acd15bc38008e1", + "ffffffffffffffff", + "54ce6a6bb8247fa0427cfc75a6b0599", + "fecafe8eca052f154ce6a6bb8247fa019558bfeecce9bb9", + "a87d7a56fa4bfdc7da42ef798b9cf6843d4c54794698cb14d72" + "851dec9586a319f4bb6d5695acbd7c92e7a42a5ede6972adcbc" + "f68425265887f2d721f462b7f1b91531bac29fa648facb8e3c6" + "1bd5ae42d5a59ba1c89a95897bfe541a8ce1d633b98f379c481" + "6f25e21f6ac49286b261adb4b78274fe5f61c187581f213e84b" + "2a821e341ef956ecd5de89e6c1a35418cd74a549379d2d4594a" + "577543147f8e35b3514e62cf3e89d1156cdc91ab5f4c928fbd6" + "9148c35df5962fed381f4d8a62852a36823d5425f7487c13a12" + "523473fb823aa9d6ea5f42e794e15f2c1a8785cf6b7d51a4617" + "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" + ] descr_tpl = '{} #{} N: \"{}\" A: \"{}\".' @@ -121,16 +120,6 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, self.int_n, self.int_a) - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for bil in [32, 64]: - for n in cls.test_data_moduli: - for i in cls.test_input_numbers: - # Skip invalid combinations where A.limbs > N.limbs - if bignum_common.hex_to_int(i) > bignum_common.hex_to_int(n): - continue - yield cls(n, i, bits_in_limb=bil).create_test_case() - class BignumModRawConvertFromMont(BignumModRawConvertToMont): """ Test cases for mpi_mod_raw_from_mont_rep(). """ @@ -138,26 +127,26 @@ class BignumModRawConvertFromMont(BignumModRawConvertToMont): test_function = "mpi_mod_raw_from_mont_rep" test_name = "Convert from Mont: " - test_input_numbers = ["0", - "1", - "3ca", - "539ed428", - "7dfe5c6beb35a2d6", - "dca8de1c2adfc6d7aafb9b48e", - "a7d17b6c4be72f3d5c16bf9c1af6fc933", - "2fec97beec546f9553142ed52f147845463f579", - "378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f", - "b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395a" - "b3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675" - "487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57" - "d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea" - "41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab3" - "58d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c" - "6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8" - "de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74" - "e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32" - "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" - ] + input_values = ["0", + "1", + "3ca", + "539ed428", + "7dfe5c6beb35a2d6", + "dca8de1c2adfc6d7aafb9b48e", + "a7d17b6c4be72f3d5c16bf9c1af6fc933", + "2fec97beec546f9553142ed52f147845463f579", + "378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f", + "b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395a" + "b3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675" + "487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57" + "d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea" + "41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab3" + "58d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c" + "6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8" + "de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74" + "e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32" + "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" + ] def result(self) -> List[str]: result = (self.int_a * self.r_inv) % self.int_n From 8ae7a657acb7e35b51de4c39c4e47aba4858a11e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 15:05:19 +0000 Subject: [PATCH 0808/1574] Bignum tests: improve mod descriptions There are no semantic changes to the generated tests. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 23 +++++++++++++++++++---- scripts/mbedtls_dev/bignum_mod_raw.py | 12 +++--------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 318e25ca1..9e92b8e61 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -168,9 +168,14 @@ class OperationCommon(test_data_generation.BaseTest): generated to provide some context to the test case. """ if not self.case_description: - self.case_description = "{:x} {} {:x}".format( - self.int_a, self.symbol, self.int_b - ) + if self.arity == 1: + self.case_description = "{} {:x}".format( + self.symbol, self.int_a + ) + elif self.arity == 2: + self.case_description = "{:x} {} {:x}".format( + self.int_a, self.symbol, self.int_b + ) return super().description() @property @@ -232,7 +237,6 @@ class OperationCommon(test_data_generation.BaseTest): ) - class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" @@ -278,6 +282,17 @@ class ModOperationCommon(OperationCommon): return False return True + def description(self) -> str: + """Generate a description for the test case. + + It uses the form A `symbol` B mod N, where symbol is used to represent + the operation. + """ + + if not self.case_description: + return super().description() + " mod {:x}".format(self.int_n) + return super().description() + @classmethod def input_cases_args(cls) -> Iterator[Tuple[Any, Any, Any]]: if cls.arity == 1: diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 087c8dc87..b23fbb2dc 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -55,6 +55,7 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, test_function = "mpi_mod_raw_to_mont_rep" test_name = "Convert into Mont: " + symbol = "R *" input_style = "arch_split" arity = 1 @@ -108,24 +109,17 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" ] - descr_tpl = '{} #{} N: \"{}\" A: \"{}\".' - def result(self) -> List[str]: result = (self.int_a * self.r) % self.int_n return [self.format_result(result)] - def description(self) -> str: - return self.descr_tpl.format(self.test_name, - self.count, - self.int_n, - self.int_a) - class BignumModRawConvertFromMont(BignumModRawConvertToMont): """ Test cases for mpi_mod_raw_from_mont_rep(). """ - + count = 0 test_function = "mpi_mod_raw_from_mont_rep" test_name = "Convert from Mont: " + symbol = "1/R *" input_values = ["0", "1", From a36e430251d855143267c2ea1185d13c7d8e3042 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 19 Nov 2022 15:55:53 +0000 Subject: [PATCH 0809/1574] Bignum tests: add support for fixed width input Only fixed width input_style uses the default value of the bits_in_limb parameter, so set it to 32 in order to have less leading zeroes. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 9e92b8e61..b68653a03 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -93,13 +93,13 @@ class OperationCommon(test_data_generation.BaseTest): input_values = [] # type: List[str] input_cases = [] # type: List[Any] unique_combinations_only = True - input_styles = ["variable", "arch_split"] # type: List[str] + input_styles = ["variable", "fixed", "arch_split"] # type: List[str] input_style = "variable" # type: str limb_sizes = [32, 64] # type: List[int] arities = [1, 2] arity = 2 - def __init__(self, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: + def __init__(self, val_a: str, val_b: str = "0", bits_in_limb: int = 32) -> None: self.val_a = val_a self.val_b = val_b # Setting the int versions here as opposed to making them @properties From b2a850c746ea475aaa22c7c26756d1eefdfd6883 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 10:56:05 +0000 Subject: [PATCH 0810/1574] Bignum Tests: add test data The goal of this commit is to add some constants that can be used to define datasets and add test data in a more readable and reusable manner. All platforms using ECC need to support calculations with at least 192 bits, therefore constants for this length are added. We are not using a curve prime as those will be tested elsewhere and it is better not to play favourites. All platforms using RSA or FFDH need to support calculations with at least 1024 bits, therefore numbers of this size are added too. A safe prime is added for both sizes as it makes all elements generators (except 0 and 1 of course), which in turn makes some tests more effective. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_data.py | 109 +++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 scripts/mbedtls_dev/bignum_data.py diff --git a/scripts/mbedtls_dev/bignum_data.py b/scripts/mbedtls_dev/bignum_data.py new file mode 100644 index 000000000..78fbb8c04 --- /dev/null +++ b/scripts/mbedtls_dev/bignum_data.py @@ -0,0 +1,109 @@ +"""Base values and datasets for bignum generated tests and helper functions that +produced them.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import random + +# Functions calling these were used to produce test data and are here only for +# reproducability, they are not used by the test generation framework/classes +try: + from Cryptodome.Util.number import isPrime, getPrime #type: ignore #pylint: disable=import-error +except ImportError: + pass + +# Generated by bignum_common.gen_safe_prime(192,1) +SAFE_PRIME_192_BIT_SEED_1 = "d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +# First number generated by random.getrandbits(192) - seed(2,2), not a prime +RANDOM_192_BIT_SEED_2_NO1 = "177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +# Second number generated by random.getrandbits(192) - seed(2,2), not a prime +RANDOM_192_BIT_SEED_2_NO2 = "cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +# Third number generated by random.getrandbits(192) - seed(2,2), not a prime +RANDOM_192_BIT_SEED_2_NO3 = "3653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f" + +# Fourth number generated by random.getrandbits(192) - seed(2,2), not a prime +RANDOM_192_BIT_SEED_2_NO4 = "ffed9235288bc781ae66267594c9c9500925e4749b575bd1" + +# Ninth number generated by random.getrandbits(192) - seed(2,2), not a prime +RANDOM_192_BIT_SEED_2_NO9 = "2a1be9cd8697bbd0e2520e33e44c50556c71c4a66148a86f" + +# Generated by bignum_common.gen_safe_prime(1024,3) +SAFE_PRIME_1024_BIT_SEED_3 = ("c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b" + "2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577" + "e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca9" + "62db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba130" + "2efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c82" + "87b3996cf6ad5223") + +# First number generated by random.getrandbits(1024) - seed(4,2), not a prime +RANDOM_1024_BIT_SEED_4_NO1 = ("6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed" + "3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8" + "534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4" + "a14876aeaff1a098ca5996666ceab360512bd13110722311" + "710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74" + "da4f9fc3c6da5d7") + +# Second number generated by random.getrandbits(1024) - seed(4,2), not a prime +RANDOM_1024_BIT_SEED_4_NO2 = ("f1cfd99216df648647adec26793d0e453f5082492d83a823" + "3fb62d2c81862fc9634f806fabf4a07c566002249b191bf4" + "d8441b5616332aca5f552773e14b0190d93936e1daca3c06" + "f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a0" + "2a3187853184ff27459142deccea264542a00403ce80c4b0" + "a4042bb3d4341aad") + +# Third number generated by random.getrandbits(1024) - seed(4,2), not a prime +RANDOM_1024_BIT_SEED_4_NO3 = ("14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb38" + "3bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd" + "6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada" + "4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f" + "01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecf" + "d160c5d0ef412ed6") + +# Fourth number generated by random.getrandbits(1024) - seed(4,2), not a prime +RANDOM_1024_BIT_SEED_4_NO4 = ("32decd6b8efbc170a26a25c852175b7a96b98b5fbf37a2be" + "6f98bca35b17b9662f0733c846bbe9e870ef55b1a1f65507" + "a2909cb633e238b4e9dd38b869ace91311021c9e32111ac1" + "ac7cc4a4ff4dab102522d53857c49391b36cc9aa78a330a1" + "a5e333cb88dcf94384d4cd1f47ca7883ff5a52f1a05885ac" + "7671863c0bdbc23a") + +# Fifth number generated by random.getrandbits(1024) - seed(4,2), not a prime +RANDOM_1024_BIT_SEED_4_NO5 = ("53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8" + "f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac87" + "0692b534758240df4a7a03052d733dcdef40af2e54c0ce68" + "1f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b" + "4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc" + "52d32377e78131c1") + +def __gen_safe_prime(bits, seed): + ''' + Generate a safe prime. + + This function is intended for generating constants offline and shouldn't be + used in test generation classes. + + Requires pycryptodomex for getPrime and isPrime and python 3.9 or later for + randbytes. + ''' + rng = random.Random() + # We want reproducability across python versions + rng.seed(seed, version=2) + while True: + prime = 2*getPrime(bits-1, rng.randbytes)+1 #pylint: disable=no-member + if isPrime(prime, 1e-30): + return prime From dac44e6021f0653352ef81611738f8cbf432543d Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 11:58:12 +0000 Subject: [PATCH 0811/1574] Bignum tests: add default datasets Add data for small values, 192 bit and 1024 bit values, primes, non-primes odd, even, and some typical corner cases. All subclasses override this for the time being so there are no changes to the test cases. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 5 +++-- scripts/mbedtls_dev/bignum_data.py | 27 +++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index b68653a03..e03c1c3f8 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -20,6 +20,7 @@ from itertools import chain from . import test_case from . import test_data_generation +from .bignum_data import INPUTS_DEFAULT, MODULI_DEFAULT T = TypeVar('T') #pylint: disable=invalid-name @@ -90,7 +91,7 @@ class OperationCommon(test_data_generation.BaseTest): values are 1 and 2. """ symbol = "" - input_values = [] # type: List[str] + input_values = INPUTS_DEFAULT # type: List[str] input_cases = [] # type: List[Any] unique_combinations_only = True input_styles = ["variable", "fixed", "arch_split"] # type: List[str] @@ -240,7 +241,7 @@ class OperationCommon(test_data_generation.BaseTest): class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" - moduli = [] # type: List[str] + moduli = MODULI_DEFAULT # type: List[str] def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: diff --git a/scripts/mbedtls_dev/bignum_data.py b/scripts/mbedtls_dev/bignum_data.py index 78fbb8c04..74d21d0ca 100644 --- a/scripts/mbedtls_dev/bignum_data.py +++ b/scripts/mbedtls_dev/bignum_data.py @@ -90,6 +90,33 @@ RANDOM_1024_BIT_SEED_4_NO5 = ("53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8" "4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc" "52d32377e78131c1") +# Adding 192 bit and 1024 bit numbers because these are the shortest required +# for ECC and RSA respectively. +INPUTS_DEFAULT = [ + "0", "1", # corner cases + "2", "3", # small primes + "4", # non-prime even + "38", # small random + SAFE_PRIME_192_BIT_SEED_1, # prime + RANDOM_192_BIT_SEED_2_NO1, # not a prime + RANDOM_192_BIT_SEED_2_NO2, # not a prime + SAFE_PRIME_1024_BIT_SEED_3, # prime + RANDOM_1024_BIT_SEED_4_NO1, # not a prime + RANDOM_1024_BIT_SEED_4_NO3, # not a prime + RANDOM_1024_BIT_SEED_4_NO2, # largest (not a prime) + ] + +# Only odd moduli are present as in the new bignum code only odd moduli are +# supported for now. +MODULI_DEFAULT = [ + "53", # safe prime + "45", # non-prime + SAFE_PRIME_192_BIT_SEED_1, # safe prime + RANDOM_192_BIT_SEED_2_NO4, # not a prime + SAFE_PRIME_1024_BIT_SEED_3, # safe prime + RANDOM_1024_BIT_SEED_4_NO5, # not a prime + ] + def __gen_safe_prime(bits, seed): ''' Generate a safe prime. From be5e7aea7ceefc27dd69f405da1ed76170ba231c Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 12:45:58 +0000 Subject: [PATCH 0812/1574] Bignum tests: remove deprecated dataset Remove old dataset that was overriding the defaults in bignum_core. This will change the datasets for core_sub and core_add to the default inherited from bignum_common. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 1bfc652ef..deff6a8a6 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -107,31 +107,9 @@ class BignumCoreCTLookup(BignumCoreTarget, test_data_generation.BaseTest): .create_test_case()) -INPUT_VALUES = [ - "0", "1", "3", "f", "fe", "ff", "100", "ff00", "fffe", "ffff", "10000", - "fffffffe", "ffffffff", "100000000", "1f7f7f7f7f7f7f", - "8000000000000000", "fefefefefefefefe", "fffffffffffffffe", - "ffffffffffffffff", "10000000000000000", "1234567890abcdef0", - "fffffffffffffffffefefefefefefefe", "fffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffff", "100000000000000000000000000000000", - "1234567890abcdef01234567890abcdef0", - "fffffffffffffffffffffffffffffffffffffffffffffffffefefefefefefefe", - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "10000000000000000000000000000000000000000000000000000000000000000", - "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", - ( - "4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029" - "643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947" - "c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0" - "cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b" - ) -] - class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon): #pylint: disable=abstract-method """Common features for bignum core operations.""" - input_values = INPUT_VALUES class BignumCoreAddAndAddIf(BignumCoreOperation): From 76c21bd2421cd8ecb0bcd31c095399f31cb9da2e Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 12:52:53 +0000 Subject: [PATCH 0813/1574] Bignum tests: flatten class hierarchy in _core There is no semantic changes to the generated tests, the order of the test blocks has changed. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index deff6a8a6..806e13193 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -107,12 +107,7 @@ class BignumCoreCTLookup(BignumCoreTarget, test_data_generation.BaseTest): .create_test_case()) -class BignumCoreOperation(BignumCoreTarget, bignum_common.OperationCommon): - #pylint: disable=abstract-method - """Common features for bignum core operations.""" - - -class BignumCoreAddAndAddIf(BignumCoreOperation): +class BignumCoreAddAndAddIf(BignumCoreTarget, bignum_common.OperationCommon): """Test cases for bignum core add and add-if.""" count = 0 symbol = "+" @@ -131,7 +126,7 @@ class BignumCoreAddAndAddIf(BignumCoreOperation): ] -class BignumCoreSub(BignumCoreOperation): +class BignumCoreSub(BignumCoreTarget, bignum_common.OperationCommon): """Test cases for bignum core sub.""" count = 0 symbol = "-" @@ -157,7 +152,7 @@ class BignumCoreSub(BignumCoreOperation): ] -class BignumCoreMLA(BignumCoreOperation): +class BignumCoreMLA(BignumCoreTarget, bignum_common.OperationCommon): """Test cases for fixed-size multiply accumulate.""" count = 0 test_function = "mpi_core_mla" From f45797652fef6a53a11bd760c76e3f987f03a901 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 13:32:54 +0000 Subject: [PATCH 0814/1574] Bignum tests: set unique combinations off by default Normally we need all the combinations, unique combinations make sense only if the operation is commutative. No changes to generated tests. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_common.py | 2 +- scripts/mbedtls_dev/bignum_core.py | 3 +-- tests/scripts/generate_bignum_tests.py | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index e03c1c3f8..67ea78db4 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -93,7 +93,7 @@ class OperationCommon(test_data_generation.BaseTest): symbol = "" input_values = INPUTS_DEFAULT # type: List[str] input_cases = [] # type: List[Any] - unique_combinations_only = True + unique_combinations_only = False input_styles = ["variable", "fixed", "arch_split"] # type: List[str] input_style = "variable" # type: str limb_sizes = [32, 64] # type: List[int] diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 806e13193..4910daea8 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -114,6 +114,7 @@ class BignumCoreAddAndAddIf(BignumCoreTarget, bignum_common.OperationCommon): test_function = "mpi_core_add_and_add_if" test_name = "mpi_core_add_and_add_if" input_style = "arch_split" + unique_combinations_only = True def result(self) -> List[str]: result = self.int_a + self.int_b @@ -132,7 +133,6 @@ class BignumCoreSub(BignumCoreTarget, bignum_common.OperationCommon): symbol = "-" test_function = "mpi_core_sub" test_name = "mbedtls_mpi_core_sub" - unique_combinations_only = False def result(self) -> List[str]: if self.int_a >= self.int_b: @@ -157,7 +157,6 @@ class BignumCoreMLA(BignumCoreTarget, bignum_common.OperationCommon): count = 0 test_function = "mpi_core_mla" test_name = "mbedtls_mpi_core_mla" - unique_combinations_only = False input_values = [ "0", "1", "fffe", "ffffffff", "100000000", "20000000000000", diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 89d0ac29e..c3058e98a 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -78,6 +78,7 @@ class BignumOperation(bignum_common.OperationCommon, BignumTarget, metaclass=ABCMeta): #pylint: disable=abstract-method """Common features for bignum operations in legacy tests.""" + unique_combinations_only = True input_values = [ "", "0", "-", "-0", "7b", "-7b", From f352c67bc30e48c4162126f340e247d5835b8627 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sun, 20 Nov 2022 13:40:25 +0000 Subject: [PATCH 0815/1574] Bignum tests: use default dataset in mod_raw While at it, flatten class hierarchy as well. Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_mod_raw.py | 79 ++------------------------- 1 file changed, 5 insertions(+), 74 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index b23fbb2dc..60f2feded 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -49,98 +49,29 @@ class BignumModRawTarget(test_data_generation.BaseTarget): # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 + class BignumModRawConvertToMont(bignum_common.ModOperationCommon, BignumModRawTarget): """ Test cases for mpi_mod_raw_to_mont_rep(). """ - test_function = "mpi_mod_raw_to_mont_rep" test_name = "Convert into Mont: " symbol = "R *" input_style = "arch_split" arity = 1 - moduli = ["b", - "fd", - "eeff99aa37", - "eeff99aa11", - "800000000005", - "7fffffffffffffff", - "80fe000a10000001", - "25a55a46e5da99c71c7", - "1058ad82120c3a10196bb36229c1", - "7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f" - "18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a" - "98df75154f8c914a282f8b", - "8335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63", - "ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f" - "2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a6" - "4d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2" - "deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d" - "6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a0" - "7e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d389" - "8c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6" - "bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3a" - "d4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181d" - "b8896f33bb12e6ef73f12ec5c5ea7a8a337" - ] - - input_values = ["0", - "1", - "97", - "f5", - "6f5c3", - "745bfe50f7", - "ffa1f9924123", - "334a8b983c79bd", - "5b84f632b58f3461", - "19acd15bc38008e1", - "ffffffffffffffff", - "54ce6a6bb8247fa0427cfc75a6b0599", - "fecafe8eca052f154ce6a6bb8247fa019558bfeecce9bb9", - "a87d7a56fa4bfdc7da42ef798b9cf6843d4c54794698cb14d72" - "851dec9586a319f4bb6d5695acbd7c92e7a42a5ede6972adcbc" - "f68425265887f2d721f462b7f1b91531bac29fa648facb8e3c6" - "1bd5ae42d5a59ba1c89a95897bfe541a8ce1d633b98f379c481" - "6f25e21f6ac49286b261adb4b78274fe5f61c187581f213e84b" - "2a821e341ef956ecd5de89e6c1a35418cd74a549379d2d4594a" - "577543147f8e35b3514e62cf3e89d1156cdc91ab5f4c928fbd6" - "9148c35df5962fed381f4d8a62852a36823d5425f7487c13a12" - "523473fb823aa9d6ea5f42e794e15f2c1a8785cf6b7d51a4617" - "947fb3baf674f74a673cf1d38126983a19ed52c7439fab42c2185" - ] - def result(self) -> List[str]: result = (self.int_a * self.r) % self.int_n return [self.format_result(result)] -class BignumModRawConvertFromMont(BignumModRawConvertToMont): +class BignumModRawConvertFromMont(bignum_common.ModOperationCommon, + BignumModRawTarget): """ Test cases for mpi_mod_raw_from_mont_rep(). """ - count = 0 test_function = "mpi_mod_raw_from_mont_rep" test_name = "Convert from Mont: " symbol = "1/R *" - - input_values = ["0", - "1", - "3ca", - "539ed428", - "7dfe5c6beb35a2d6", - "dca8de1c2adfc6d7aafb9b48e", - "a7d17b6c4be72f3d5c16bf9c1af6fc933", - "2fec97beec546f9553142ed52f147845463f579", - "378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f", - "b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395a" - "b3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675" - "487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57" - "d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea" - "41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab3" - "58d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c" - "6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8" - "de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74" - "e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32" - "138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627" - ] + input_style = "arch_split" + arity = 1 def result(self) -> List[str]: result = (self.int_a * self.r_inv) % self.int_n From cd356c3cdb312e276473e038d1593f6f92bcd5b3 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Sun, 20 Nov 2022 19:05:20 +0100 Subject: [PATCH 0816/1574] Add ec-jpake test to verify if key can be destroyed after set_password_key Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_psa_crypto.data | 9 +++++++-- tests/suites/test_suite_psa_crypto.function | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index cce3fd0fe..659205d52 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6549,11 +6549,16 @@ ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_ PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0 PSA PAKE: ecjpake rounds, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:0 + +# This test case relies on implementation (it may need to be adjusted in the future) +PSA PAKE: ecjpake rounds - key is destroyed after being passed to set_password_key +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:1 PSA PAKE: ecjpake no input errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 60befa73f..f84a0cc3f 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -9002,7 +9002,7 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, - int client_input_first ) + int client_input_first, int destroy_key ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -9053,6 +9053,9 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + if( destroy_key == 1 ) + psa_destroy_key( key ); + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), From 79f6b6bb1bcbef2fb783cb43724903dea30377f7 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 14:17:03 +0100 Subject: [PATCH 0817/1574] tls: psa_pake: fixing mbedtls_psa_ecjpake_write_round() It might happen that the psa_pake_output() function returns elements which are not exactly 32 or 65 bytes as expected, but 1 bytes less. As a consequence, insted of hardcoding the expected value for the length in the output buffer, we write the correct one as obtained from psa_pake_output() Signed-off-by: Valerio Setti --- library/ssl_tls.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c1436c532..7b51040c4 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8259,20 +8259,27 @@ int mbedtls_psa_ecjpake_write_round( step <= PSA_PAKE_STEP_ZK_PROOF; ++step ) { - /* For each step, prepend 1 byte with the length of the data */ - *(buf + output_offset) = MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ); - output_offset += 1; - + /* + * For each step, prepend 1 byte with the length of the data. + * + * NOTE = psa_pake_output() sometimes output elements which are + * NOT 32 or 65 bytes as expected, but 1 byte less. So, instead + * of hardcoding the expected length, we + * - get the output first + * - then write the length of this output + */ status = psa_pake_output( pake_ctx, step, - buf + output_offset, - len - output_offset, + buf + output_offset + 1, + len - output_offset - 1, &output_len ); if( status != PSA_SUCCESS ) { return( psa_ssl_status_to_mbedtls( status ) ); } - output_offset += output_len; + *(buf + output_offset) = output_len; + + output_offset += output_len + 1; } } From 5151bdf46eb83823c4946c500c48bbad3b8f76e7 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 14:30:02 +0100 Subject: [PATCH 0818/1574] tls: psa_pake: add missing braces Signed-off-by: Valerio Setti --- library/ssl_tls12_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7c293ec9e..5ff8ab4b8 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2354,7 +2354,9 @@ start_processing: if( ( *p != MBEDTLS_ECP_TLS_NAMED_CURVE ) || ( read_tls_id != curve_info->tls_id ) ) + { return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + } p += 3; From e2d6b5f45b207efa6745cfdbf73332e7403bb5b8 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 21 Nov 2022 15:03:52 +0100 Subject: [PATCH 0819/1574] psa_key_slot_get_slot_number: Move documentation to header file Signed-off-by: Przemek Stekiel --- library/psa_crypto.c | 13 ------------- library/psa_crypto_core.h | 10 ++++++++++ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 55319c4bd..8c9deffad 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -877,19 +877,6 @@ static psa_status_t psa_restrict_key_policy( return( PSA_SUCCESS ); } -/** Get the description of a key given its identifier and policy constraints - * and lock it. - * - * The key must have allow all the usage flags set in \p usage. If \p alg is - * nonzero, the key must allow operations with this algorithm. If \p alg is - * zero, the algorithm is not checked. - * - * In case of a persistent key, the function loads the description of the key - * into a key slot if not already done. - * - * On success, the returned key slot is locked. It is the responsibility of - * the caller to unlock the key slot when it does not access it anymore. - */ psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot, diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 37f8162de..5cefa273a 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -185,6 +185,16 @@ static inline psa_key_slot_number_t psa_key_slot_get_slot_number( /** Get the description of a key given its identifier and policy constraints * and lock it. + * + * The key must have allow all the usage flags set in \p usage. If \p alg is + * nonzero, the key must allow operations with this algorithm. If \p alg is + * zero, the algorithm is not checked. + * + * In case of a persistent key, the function loads the description of the key + * into a key slot if not already done. + * + * On success, the returned key slot is locked. It is the responsibility of + * the caller to unlock the key slot when it does not access it anymore. */ psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot, From ad0f357178448f9483c572b26b32345d182a99b4 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 21 Nov 2022 15:04:37 +0100 Subject: [PATCH 0820/1574] Optimize pake code that sets/use password key Signed-off-by: Przemek Stekiel --- library/psa_crypto_pake.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index ef31af420..9ac4c5f29 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -256,9 +256,6 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, return( PSA_ERROR_BAD_STATE ); } - if( psa_is_valid_key_id( password, 1 ) == 0 ) - return( PSA_ERROR_BAD_STATE ); - status = psa_get_key_attributes( password, &attributes ); if( status != PSA_SUCCESS ) return( status ); @@ -283,15 +280,8 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( status != PSA_SUCCESS ) return( status ); - if( slot->key.data == NULL || slot->key.bytes == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - if( operation->password != NULL ) - { - mbedtls_platform_zeroize( operation->password, operation->password_len ); - mbedtls_free( operation->password ); - operation->password_len = 0; - } + return( PSA_ERROR_BAD_STATE ); operation->password = mbedtls_calloc( 1, slot->key.bytes ); if( operation->password == NULL ) @@ -388,11 +378,8 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) else return( PSA_ERROR_BAD_STATE ); - if (operation->password == NULL || - operation->password_len == 0 ) - { + if( operation->password_len == 0 ) return( PSA_ERROR_BAD_STATE ); - } ret = mbedtls_ecjpake_setup( &operation->ctx.ecjpake, role, @@ -404,6 +391,11 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) if( ret != 0 ) return( mbedtls_ecjpake_to_psa_error( ret ) ); + mbedtls_platform_zeroize( operation->password, operation->password_len ); + mbedtls_free( operation->password ); + operation->password = NULL; + operation->password_len = 0; + operation->state = PSA_PAKE_STATE_READY; return( PSA_SUCCESS ); @@ -453,7 +445,13 @@ static psa_status_t psa_pake_output_internal( if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) + { + mbedtls_platform_zeroize( operation->password, operation->password_len ); + mbedtls_free( operation->password ); + operation->password = NULL; + operation->password_len = 0; return( status ); + } } if( operation->state != PSA_PAKE_STATE_READY && @@ -661,7 +659,13 @@ static psa_status_t psa_pake_input_internal( { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) + { + mbedtls_platform_zeroize( operation->password, operation->password_len ); + mbedtls_free( operation->password ); + operation->password = NULL; + operation->password_len = 0; return( status ); + } } if( operation->state != PSA_PAKE_STATE_READY && @@ -865,7 +869,8 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) { operation->input_step = PSA_PAKE_STEP_INVALID; operation->output_step = PSA_PAKE_STEP_INVALID; - mbedtls_platform_zeroize( operation->password, operation->password_len ); + if( operation->password_len > 0 ) + mbedtls_platform_zeroize( operation->password, operation->password_len ); mbedtls_free( operation->password ); operation->password = NULL; operation->password_len = 0; From f82effa9826a0e93aaa8c4c7928ad1016a16a8e8 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 21 Nov 2022 15:10:32 +0100 Subject: [PATCH 0821/1574] Optimize pake test code Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_psa_crypto.function | 40 ++++++++++----------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index f84a0cc3f..ca1614bef 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -32,25 +32,23 @@ #define ASSERT_OPERATION_IS_INACTIVE( operation ) TEST_ASSERT( operation.id == 0 ) #if defined(PSA_WANT_ALG_JPAKE) -void ecjpake_operation_setup( psa_pake_operation_t *operation, +int ecjpake_operation_setup( psa_pake_operation_t *operation, psa_pake_cipher_suite_t *cipher_suite, psa_pake_role_t role, mbedtls_svc_key_id_t key, size_t key_available ) { - *operation = psa_pake_operation_init(); + PSA_ASSERT( psa_pake_abort( operation ) ); - TEST_EQUAL( psa_pake_setup( operation, cipher_suite ), - PSA_SUCCESS ); + PSA_ASSERT( psa_pake_setup( operation, cipher_suite ) ); - TEST_EQUAL( psa_pake_set_role( operation, role), - PSA_SUCCESS ); + PSA_ASSERT( psa_pake_set_role( operation, role) ); if( key_available ) - TEST_EQUAL( psa_pake_set_password_key( operation, key ), - PSA_SUCCESS ); + PSA_ASSERT( psa_pake_set_password_key( operation, key ) ); + return 0; exit: - return; + return 1; } #endif @@ -8865,21 +8863,21 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0 ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid parameters (step) */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ) , 0 ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, size_zk_proof ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ), 0 ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, output_buffer, size_zk_proof ), PSA_ERROR_BAD_STATE ); /* Possibly valid */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ), 0 ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, size_key_share ), expected_status_input_output); @@ -8904,21 +8902,21 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, NULL, 0, NULL ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid parameters (step) */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ), 0 ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, buf_size, &output_len ), PSA_ERROR_INVALID_ARGUMENT ); /* Invalid first step */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ), 0 ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, output_buffer, buf_size, &output_len ), PSA_ERROR_BAD_STATE ); /* Possibly valid */ - ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ); + TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, + key, pw_data->len ), 0 ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, output_buffer, buf_size, &output_len ), expected_status_input_output ); From 39e08d4094218c84611f73d50b7507d8230467e0 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Wed, 16 Nov 2022 17:08:53 +0000 Subject: [PATCH 0822/1574] Add tests for the key agreement driver wrapper to test_suite_psa_crypto_driver_wrappers Signed-off-by: Aditya Deshpande --- tests/include/test/drivers/key_agreement.h | 3 + tests/scripts/all.sh | 8 -- tests/src/drivers/test_driver_key_agreement.c | 2 + ...test_suite_psa_crypto_driver_wrappers.data | 16 ++++ ..._suite_psa_crypto_driver_wrappers.function | 90 +++++++++++++++++++ 5 files changed, 111 insertions(+), 8 deletions(-) diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h index 634cbac19..ec6515982 100644 --- a/tests/include/test/drivers/key_agreement.h +++ b/tests/include/test/drivers/key_agreement.h @@ -45,6 +45,9 @@ static inline mbedtls_test_driver_key_agreement_hooks_t return( v ); } +extern mbedtls_test_driver_key_agreement_hooks_t + mbedtls_test_driver_key_agreement_hooks; + psa_status_t mbedtls_test_transparent_key_agreement( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 199efb6a8..203a5fefa 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1960,18 +1960,10 @@ component_test_psa_crypto_config_accel_ecdh () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - # SHA384 needed for some ECDSA signature tests. - scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C - loc_accel_list="ALG_ECDH KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS=" $ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" - # Restore test driver base configuration - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 20d1d6b87..51301f8f0 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -50,6 +50,8 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t shared_secret_size, size_t *shared_secret_length ) { + ++mbedtls_test_driver_key_agreement_hooks.hits; + if( mbedtls_test_driver_key_agreement_hooks.forced_status != PSA_SUCCESS ) return( mbedtls_test_driver_key_agreement_hooks.forced_status ); diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.data b/tests/suites/test_suite_psa_crypto_driver_wrappers.data index 0a8d59521..74b74da92 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.data +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.data @@ -299,6 +299,22 @@ export_key private to public through driver: error depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:MBEDTLS_PK_PARSE_C:MBEDTLS_PK_WRITE_C:PSA_WANT_ECC_SECP_R1_256 export_key:PSA_ERROR_GENERIC_ERROR:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"":PSA_ERROR_GENERIC_ERROR +raw key agreement through driver: fake +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 +key_agreement:PSA_ALG_ECDH:PSA_SUCCESS:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"0102030405":PSA_SUCCESS + +raw key agreement through driver: in-driver +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 +key_agreement:PSA_ALG_ECDH:PSA_SUCCESS:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"":PSA_SUCCESS + +raw key agreement through driver: fallback +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_ECDH +key_agreement:PSA_ALG_ECDH:PSA_ERROR_NOT_SUPPORTED:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"":PSA_SUCCESS + +raw key agreement through driver: error +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 +key_agreement:PSA_ALG_ECDH:PSA_ERROR_GENERIC_ERROR:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"":PSA_ERROR_GENERIC_ERROR + PSA symmetric encrypt validation: AES-CTR, 16 bytes, good depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES cipher_encrypt_validation:PSA_ALG_CTR:PSA_KEY_TYPE_AES:"2b7e151628aed2a6abf7158809cf4f3c":"6bc1bee22e409f96e93d7e117393172a" diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.function b/tests/suites/test_suite_psa_crypto_driver_wrappers.function index 128352bb8..7fa3c947e 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.function +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.function @@ -1,5 +1,6 @@ /* BEGIN_HEADER */ #include "test/drivers/test_driver.h" +#include #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) /* Sanity checks on the output of RSA encryption. @@ -541,6 +542,95 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void key_agreement( int alg_arg, + int force_status_arg, + int our_key_type_arg, + data_t *our_key_data, + data_t *peer_key_data, + data_t *expected_output, + data_t* fake_output, + int expected_status_arg ) +{ + psa_status_t force_status = force_status_arg; + psa_status_t expected_status = expected_status_arg; + psa_algorithm_t alg = alg_arg; + psa_key_type_t our_key_type = our_key_type_arg; + mbedtls_svc_key_id_t our_key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + const uint8_t *expected_output_ptr = NULL; + size_t expected_output_length = 0; + unsigned char *actual_output = NULL; + size_t actual_output_length = ~0; + size_t key_bits; + psa_status_t actual_status; + mbedtls_test_driver_key_agreement_hooks = + mbedtls_test_driver_key_agreement_hooks_init(); + + PSA_ASSERT( psa_crypto_init( ) ); + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, our_key_type ); + PSA_ASSERT( psa_import_key( &attributes, + our_key_data->x, our_key_data->len, + &our_key ) ); + + PSA_ASSERT( psa_get_key_attributes( our_key, &attributes ) ); + key_bits = psa_get_key_bits( &attributes ); + + TEST_LE_U( expected_output->len, + PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ) ); + TEST_LE_U( PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ), + PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ); + + if( fake_output->len > 0 ) + { + expected_output_ptr = + mbedtls_test_driver_key_agreement_hooks.forced_output = + fake_output->x; + + expected_output_length = + mbedtls_test_driver_key_agreement_hooks.forced_output_length = + fake_output->len; + } + else + { + expected_output_ptr = expected_output->x; + expected_output_length = expected_output->len; + } + + mbedtls_test_driver_key_agreement_hooks.hits = 0; + mbedtls_test_driver_key_agreement_hooks.forced_status = force_status; + + ASSERT_ALLOC( actual_output, expected_output->len ); + actual_status = psa_raw_key_agreement( alg, our_key, + peer_key_data->x, peer_key_data->len, + actual_output, expected_output->len, + &actual_output_length ) ; + TEST_EQUAL( actual_status, expected_status ); + TEST_EQUAL( mbedtls_test_driver_key_agreement_hooks.hits, 1 ); + + if( actual_status == PSA_SUCCESS ) + { + ASSERT_COMPARE( actual_output, actual_output_length, + expected_output_ptr, expected_output_length); + } + mbedtls_free( actual_output ); + actual_output = NULL; + actual_output_length = ~0; + +exit: + psa_reset_key_attributes( &attributes ); + psa_destroy_key( our_key ); + PSA_DONE( ); + mbedtls_test_driver_key_agreement_hooks = + mbedtls_test_driver_key_agreement_hooks_init(); + +} + +/* END_CASE */ + /* BEGIN_CASE */ void cipher_encrypt_validation( int alg_arg, int key_type_arg, From fdd24b8c496449abc1e024857d582ea8b6b4b4b4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 22 Nov 2022 13:12:56 +0800 Subject: [PATCH 0823/1574] Revert change in flight transmit Signed-off-by: Jerry Yu --- library/ssl_msg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index cacedcaf9..80471d4c5 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -2343,7 +2343,7 @@ int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) return( ret ); /* Update state and set timer */ - if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) + if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; else { From c2e110f44577908617815915f52793c6c39483f0 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 22 Nov 2022 09:01:46 +0100 Subject: [PATCH 0824/1574] tls13: Disable MBEDTLS_SSL_EARLY_DATA by default Eventually we want it to be enabled by default when TLS 1.3 is enabled but currently the feature is on development thus it should not be enabled by default. Signed-off-by: Ronald Cron --- include/mbedtls/mbedtls_config.h | 2 +- tests/scripts/all.sh | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 3f869b9ff..12d503e38 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1648,7 +1648,7 @@ * production. * */ -#define MBEDTLS_SSL_EARLY_DATA +//#define MBEDTLS_SSL_EARLY_DATA /** * \def MBEDTLS_SSL_PROTO_DTLS diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 8272dcc31..3a69fd7d7 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3250,6 +3250,7 @@ component_build_armcc () { component_test_tls13_only () { msg "build: default config with MBEDTLS_SSL_PROTO_TLS1_3, without MBEDTLS_SSL_PROTO_TLS1_2" + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test: TLS 1.3 only, all key exchange modes enabled" @@ -3269,6 +3270,7 @@ component_test_tls13_only_psk () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, only PSK key exchange mode enabled" @@ -3301,6 +3303,7 @@ component_test_tls13_only_psk_ephemeral () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, only PSK ephemeral key exchange mode" @@ -3318,6 +3321,7 @@ component_test_tls13_only_psk_all () { scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION scripts/config.py unset MBEDTLS_ECDSA_C scripts/config.py unset MBEDTLS_PKCS1_V21 + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, PSK and PSK ephemeral key exchange modes" @@ -3330,6 +3334,7 @@ component_test_tls13_only_psk_all () { component_test_tls13_only_ephemeral_all () { msg "build: TLS 1.3 only from default, without PSK key exchange mode" scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED + scripts/config.py set MBEDTLS_SSL_EARLY_DATA make CFLAGS="'-DMBEDTLS_USER_CONFIG_FILE=\"../tests/configs/tls13-only.h\"'" msg "test_suite_ssl: TLS 1.3 only, ephemeral and PSK ephemeral key exchange modes" @@ -3344,6 +3349,7 @@ component_test_tls13 () { scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 scripts/config.py set MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 + scripts/config.py set MBEDTLS_SSL_EARLY_DATA CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding" @@ -3357,6 +3363,7 @@ component_test_tls13_no_compatibility_mode () { scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 scripts/config.py unset MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE scripts/config.py set MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 1 + scripts/config.py set MBEDTLS_SSL_EARLY_DATA CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make msg "test: default config with MBEDTLS_SSL_PROTO_TLS1_3 enabled, without padding" From 0bdec19c93a2aacf023c46bb81e3ce0fb8cc6baa Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 22 Nov 2022 09:10:35 +0100 Subject: [PATCH 0825/1574] Further optimizations of pake set_password implementation Signed-off-by: Przemek Stekiel --- library/psa_crypto_pake.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 9ac4c5f29..659b712a5 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -274,19 +274,19 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) return( PSA_ERROR_NOT_PERMITTED ); + if( operation->password != NULL ) + return( PSA_ERROR_BAD_STATE ); + status = psa_get_and_lock_key_slot_with_policy( password, &slot, PSA_KEY_USAGE_DERIVE, PSA_ALG_JPAKE ); if( status != PSA_SUCCESS ) return( status ); - if( operation->password != NULL ) - return( PSA_ERROR_BAD_STATE ); - operation->password = mbedtls_calloc( 1, slot->key.bytes ); if( operation->password == NULL ) { - status = psa_unlock_key_slot( slot ); + psa_unlock_key_slot( slot ); return( PSA_ERROR_INSUFFICIENT_MEMORY ); } memcpy( operation->password, slot->key.data, slot->key.bytes ); @@ -388,14 +388,14 @@ static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) operation->password, operation->password_len ); - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); - mbedtls_platform_zeroize( operation->password, operation->password_len ); mbedtls_free( operation->password ); operation->password = NULL; operation->password_len = 0; + if( ret != 0 ) + return( mbedtls_ecjpake_to_psa_error( ret ) ); + operation->state = PSA_PAKE_STATE_READY; return( PSA_SUCCESS ); @@ -445,13 +445,7 @@ static psa_status_t psa_pake_output_internal( if( operation->state == PSA_PAKE_STATE_SETUP ) { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - mbedtls_platform_zeroize( operation->password, operation->password_len ); - mbedtls_free( operation->password ); - operation->password = NULL; - operation->password_len = 0; return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && @@ -659,13 +653,7 @@ static psa_status_t psa_pake_input_internal( { status = psa_pake_ecjpake_setup( operation ); if( status != PSA_SUCCESS ) - { - mbedtls_platform_zeroize( operation->password, operation->password_len ); - mbedtls_free( operation->password ); - operation->password = NULL; - operation->password_len = 0; return( status ); - } } if( operation->state != PSA_PAKE_STATE_READY && From 8bee89994dbcc119812ac81102eb22e959cf9093 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Thu, 27 Oct 2022 10:21:05 +0000 Subject: [PATCH 0826/1574] Add parse function for early data in encrypted extentions Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 63 +++++++++++++++++++++++++++++++ tests/opt-testcases/tls13-misc.sh | 4 +- 2 files changed, 65 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0372f2d98..839fe3679 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1335,6 +1335,53 @@ static int ssl_tls13_is_downgrade_negotiation( mbedtls_ssl_context *ssl, return( 0 ); } +#if defined(MBEDTLS_SSL_EARLY_DATA) +/* + * ssl_tls13_parse_ee_early_data_ext() + * Parse early data indication extension in EncryptedExtensions. + * + * struct {} Empty; + * + * struct { + * select (Handshake.msg_type) { + * ... + * case client_hello: Empty; + * case encrypted_extensions: Empty; + * }; + * } EarlyDataIndication; + * + */ + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_parse_ee_early_data_ext( mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len ) +{ + if( ssl->early_data_status < MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT ) + { + /* The server must not send the EarlyDataIndication if the + * client hasn't indicated the use of early data. */ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + } + + if( len != 0 ) + { + /* The message must be empty. */ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR ); + return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + } + + /* Nothing to parse */ + ((void) buf); + + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; + return( 0 ); +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /* Returns a negative value on failure, and otherwise * - SSL_SERVER_HELLO or * - SSL_SERVER_HELLO_HRR @@ -2060,6 +2107,22 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, break; #endif /* MBEDTLS_SSL_ALPN */ + +#if defined(MBEDTLS_SSL_EARLY_DATA) + case MBEDTLS_TLS_EXT_EARLY_DATA: + ret = ssl_tls13_parse_ee_early_data_ext( + ssl, p, (size_t)extension_data_len ); + if( ret != 0 ) + { + ssl->early_data_status = + MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; + MBEDTLS_SSL_DEBUG_RET( + 1, "ssl_tls13_parse_ee_early_data_ext", ret ); + return( ret ); + } + break; +#endif /* MBEDTLS_SSL_EARLY_DATA */ + default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index edece456b..ed428480c 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -301,7 +301,7 @@ run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ -c "NewSessionTicket: early_data(42) extension received." \ -c "ClientHello: early_data(42) extension exists." \ -c "EncryptedExtensions: early_data(42) extension received." \ - -c "EncryptedExtensions: early_data(42) extension ( ignored )." \ + -c "EncryptedExtensions: early_data(42) extension exists." \ -s "Parsing extension 'Early Data/42' (0 bytes)" \ -s "Sending extension Early Data/42 (0 bytes)" \ -s "early data accepted" @@ -322,7 +322,7 @@ run_test "TLS 1.3 m->G: EarlyData: no early_data in NewSessionTicket, good" \ -C "NewSessionTicket: early_data(42) extension received." \ -c "ClientHello: early_data(42) extension does not exist." \ -C "EncryptedExtensions: early_data(42) extension received." \ - -C "EncryptedExtensions: early_data(42) extension ( ignored )." + -C "EncryptedExtensions: early_data(42) extension exists." #TODO: OpenSSL tests don't work now. It might be openssl options issue, cause GnuTLS has worked. skip_next_test From d4a9b1ab8d124eaf7bff20d4bfe078f4ddc09483 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 11:11:10 +0100 Subject: [PATCH 0827/1574] tls: psa_pake: remove useless defines and fix a comment Signed-off-by: Valerio Setti --- library/ssl_misc.h | 11 ----------- library/ssl_tls.c | 9 ++------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 0f43a18f4..2ff7e0c22 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2367,17 +2367,6 @@ static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) -/* Currently JPAKE only supports elliptic curve secp256r1 */ -#define MBEDTLS_SSL_ECJPAKE_PSA_PRIMITIVE \ - PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, \ - PSA_ECC_FAMILY_SECP_R1, 256 ) - -/* Expected output data size for each "step" of EC-JPAKE key echange */ -#define MBEDTLS_SSL_ECJPAKE_OUTPUT_SIZE( step ) \ - PSA_PAKE_OUTPUT_SIZE( PSA_ALG_JPAKE, \ - MBEDTLS_SSL_ECJPAKE_PSA_PRIMITIVE, \ - step ) - typedef enum { MBEDTLS_ECJPAKE_ROUND_ONE, MBEDTLS_ECJPAKE_ROUND_TWO diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7b51040c4..5bfdde7bc 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8260,13 +8260,8 @@ int mbedtls_psa_ecjpake_write_round( ++step ) { /* - * For each step, prepend 1 byte with the length of the data. - * - * NOTE = psa_pake_output() sometimes output elements which are - * NOT 32 or 65 bytes as expected, but 1 byte less. So, instead - * of hardcoding the expected length, we - * - get the output first - * - then write the length of this output + * For each step, prepend 1 byte with the length of the data as + * given by psa_pake_output(). */ status = psa_pake_output( pake_ctx, step, buf + output_offset + 1, From 18a3856a03bb246db82069ff330dbb2343239281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 22 Nov 2022 11:49:55 +0100 Subject: [PATCH 0828/1574] Document another limitation of driver-only hashes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/driver-only-hashes.txt | 16 ++++++++++------ include/mbedtls/mbedtls_config.h | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt index 2062bcb57..a160f924b 100644 --- a/ChangeLog.d/driver-only-hashes.txt +++ b/ChangeLog.d/driver-only-hashes.txt @@ -8,12 +8,16 @@ Features are only provided by PSA drivers. In these configurations, you need to call `psa_crypto_init()` before you call any function from those modules; this is not required in configurations where the built-in - implementation is still available. Note that some crypto modules and - features still depend on the built-in implementation of hashes: - MBEDTLS_HKDF_C (but the PSA HKDF function do not depend on it), - MBEDTLS_ENTROPY_C, MBEDTLS_HMAC_DRBG_C and MBEDTLS_ECDSA_DETERMINISTIC. - In particular, for now, compiling without built-in hashes requires use - of MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. + implementation is still available. Note that for modules that use MD + (RSA, PKCS5, PKCS12, EC J-PAKE) in builds that have MBEDTLS_MD_C enabled, + all hashes used with those modules need to be built-in, as drivers are only + used when MBEDTLS_MD_C is disabled; configurations where some hashes are + available as built-ins, and some only from drivers, are currently not + supported. Also note that some crypto modules and features still depend on + the built-in implementation of hashes: MBEDTLS_HKDF_C (but the PSA HKDF + functions do not depend on it), MBEDTLS_ENTROPY_C, MBEDTLS_HMAC_DRBG_C and + MBEDTLS_ECDSA_DETERMINISTIC. In particular, for now, compiling without + built-in hashes requires use of MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 no longer depend on MD. This means it is now possible to use them in configurations where the built-in implementations of hashes are excluded diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 3f869b9ff..b16a5b4d4 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1146,6 +1146,11 @@ * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() * before doing any PKCS#1 v2.1 operation. * + * \warning When building with MBEDTLS_MD_C, all hashes used with this + * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by + * this module in builds where MBEDTLS_MD_C is disabled. + * * This enables support for RSAES-OAEP and RSASSA-PSS operations. */ #define MBEDTLS_PKCS1_V21 @@ -2433,6 +2438,11 @@ * * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() * before doing any EC J-PAKE operations. + * + * \warning When building with MBEDTLS_MD_C, all hashes used with this + * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by + * this module in builds where MBEDTLS_MD_C is disabled. */ #define MBEDTLS_ECJPAKE_C @@ -2777,6 +2787,11 @@ * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() * before doing any PKCS5 operation. * + * \warning When building with MBEDTLS_MD_C, all hashes used with this + * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by + * this module in builds where MBEDTLS_MD_C is disabled. + * * This module adds support for the PKCS#5 functions. */ #define MBEDTLS_PKCS5_C @@ -2796,6 +2811,11 @@ * \warning If building without MBEDTLS_MD_C, you must call psa_crypto_init() * before doing any PKCS12 operation. * + * \warning When building with MBEDTLS_MD_C, all hashes used with this + * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by + * this module in builds where MBEDTLS_MD_C is disabled. + * * This module enables PKCS#12 functions. */ #define MBEDTLS_PKCS12_C From 2f7fd76d9167cabb8d3adf349cfce19025ed6ed6 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Tue, 22 Nov 2022 11:10:34 +0000 Subject: [PATCH 0829/1574] Replace PSA_KEY_AGREEMENT_MAX_SHARED_SECRET_SIZE with PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE in psa_key_agreement_internal(). Signed-off-by: Aditya Deshpande --- library/psa_crypto.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 07f315121..f0c3d5adf 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5735,7 +5735,6 @@ psa_status_t psa_key_derivation_input_key( /****************************************************************/ /* Key agreement */ /****************************************************************/ -#define PSA_KEY_AGREEMENT_MAX_SHARED_SECRET_SIZE MBEDTLS_ECP_MAX_BYTES psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, @@ -5809,7 +5808,7 @@ static psa_status_t psa_key_agreement_internal( psa_key_derivation_operation_t * size_t peer_key_length ) { psa_status_t status; - uint8_t shared_secret[PSA_KEY_AGREEMENT_MAX_SHARED_SECRET_SIZE]; + uint8_t shared_secret[PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE]; size_t shared_secret_length = 0; psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE( operation->alg ); From da13072c5bfc56a04ec5bb0bf0ab464889d3699b Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Tue, 22 Nov 2022 09:08:57 +0100 Subject: [PATCH 0830/1574] tls13: Make ..._RECEIVED_NEW_SESSION_TICKET experimental We are considering using a callback instead. Signed-off-by: Ronald Cron --- include/mbedtls/ssl.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index d0558511a..94bbee59b 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -96,7 +96,10 @@ /* Error space gap */ /** Processing of the Certificate handshake message failed. */ #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE -0x7A00 -/** Received NewSessionTicket Post Handshake Message */ +/** + * Received NewSessionTicket Post Handshake Message. + * This error code is experimental and may be changed or removed without notice. + */ #define MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET -0x7B00 /* Error space gap */ /* Error space gap */ From d9b2348d8f66553a03b9f95c10d7e0768d2988b4 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Thu, 25 Aug 2022 08:25:19 +0100 Subject: [PATCH 0831/1574] Extract MPI_CORE(sub_int) from the prototype Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 15 +++++++++++++++ library/bignum_core.h | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 34aecda50..0315c84f9 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -590,6 +590,21 @@ cleanup: /* BEGIN MERGE SLOT 3 */ +mbedtls_mpi_uint MPI_CORE(sub_int)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + mbedtls_mpi_uint c, size_t n ) +{ + for( size_t i = 0; i < n; i++ ) + { + mbedtls_mpi_uint s, t; + s = l[i]; + t = s - c; c = ( t > s ); + d[i] = t; + } + + return( c ); +} + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index ad04e0828..68b4bd144 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -504,6 +504,24 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, /* BEGIN MERGE SLOT 3 */ +#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal + +/** + * \brief Subtract unsigned integer from known-size large unsigned integers. + * Return the borrow. + * + * \param[out] d The result of the subtraction. + * \param[in] l The left operand. + * \param[in] r The unsigned scalar to subtract. + * \param n Number of limbs of \p d and \p l. + * + * \return 1 if `l < r`. + * 0 if `l >= r`. + */ +mbedtls_mpi_uint MPI_CORE(sub_int)( mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *l, + mbedtls_mpi_uint r, size_t n ); + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From f7ff4c9a112bf0a56ee1c8ee7f1c02cb87a81857 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 25 Aug 2022 08:39:07 +0100 Subject: [PATCH 0832/1574] Tidy up, remove MPI_CORE(), and apply the naming convention Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 17 +++++++++-------- library/bignum_core.h | 21 ++++++++++----------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 0315c84f9..41d323968 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -590,16 +590,17 @@ cleanup: /* BEGIN MERGE SLOT 3 */ -mbedtls_mpi_uint MPI_CORE(sub_int)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - mbedtls_mpi_uint c, size_t n ) +mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + mbedtls_mpi_uint c, /* doubles as carry */ + size_t limbs ) { - for( size_t i = 0; i < n; i++ ) + for( size_t i = 0; i < limbs; i++ ) { - mbedtls_mpi_uint s, t; - s = l[i]; - t = s - c; c = ( t > s ); - d[i] = t; + mbedtls_mpi_uint s = A[i]; + mbedtls_mpi_uint t = s - c; + c = ( t > s ); + X[i] = t; } return( c ); diff --git a/library/bignum_core.h b/library/bignum_core.h index 68b4bd144..d48e7053b 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -504,23 +504,22 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, /* BEGIN MERGE SLOT 3 */ -#define MPI_CORE(func) mbedtls_mpi_core_ ## func ## _minimal - /** * \brief Subtract unsigned integer from known-size large unsigned integers. * Return the borrow. * - * \param[out] d The result of the subtraction. - * \param[in] l The left operand. - * \param[in] r The unsigned scalar to subtract. - * \param n Number of limbs of \p d and \p l. + * \param[out] X The result of the subtraction. + * \param[in] A The left operand. + * \param b The unsigned scalar to subtract. + * \param limbs Number of limbs of \p X and \p A. * - * \return 1 if `l < r`. - * 0 if `l >= r`. + * \return 1 if `A < b`. + * 0 if `A >= b`. */ -mbedtls_mpi_uint MPI_CORE(sub_int)( mbedtls_mpi_uint *d, - const mbedtls_mpi_uint *l, - mbedtls_mpi_uint r, size_t n ); +mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + mbedtls_mpi_uint b, + size_t limbs ); /* END MERGE SLOT 3 */ From 452c99c17331b1d5a718d2b70080c1608f0c50f3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 25 Aug 2022 10:07:07 +0100 Subject: [PATCH 0833/1574] Use mbedtls_mpi_core_sub_int() in mbedtls_mpi_sub_abs() Signed-off-by: Tom Cosgrove --- library/bignum.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index ba0398825..a68957a53 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -968,17 +968,15 @@ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi carry = mbedtls_mpi_core_sub( X->p, A->p, B->p, n ); if( carry != 0 ) { - /* Propagate the carry to the first nonzero limb of X. */ - for( ; n < X->n && X->p[n] == 0; n++ ) - --X->p[n]; - /* If we ran out of space for the carry, it means that the result - * is negative. */ - if( n == X->n ) + /* Propagate the carry through the rest of X. */ + carry = mbedtls_mpi_core_sub_int( X->p + n, X->p + n, carry, X->n - n ); + + /* If we have further carry/borrow, the result is negative. */ + if( carry != 0 ) { ret = MBEDTLS_ERR_MPI_NEGATIVE_VALUE; goto cleanup; } - --X->p[n]; } /* X should always be positive as a result of unsigned subtractions. */ From c3d8041fe7d5dd189ab0bd7bf96d8261b062a238 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 15:01:39 +0000 Subject: [PATCH 0834/1574] Introduce mbedtls_xor Signed-off-by: Dave Rodgman --- library/common.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/library/common.h b/library/common.h index a630fcc45..d1af48eb2 100644 --- a/library/common.h +++ b/library/common.h @@ -26,6 +26,7 @@ #include "mbedtls/build_info.h" #include +#include /** Helper to define a function as static except when building invasive tests. * @@ -390,6 +391,32 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c } #endif +/** + * Perform a fast block XOR operation, such that + * r[i] = a[i] ^ b[i] where 0 <= i < n + * + * \param r Pointer to result (buffer of at least \p n bytes). \p r + * may be equal to either \p a or \p b, but behaviour when + * it overlaps in other ways is undefined. + * \param a Pointer to input (buffer of at least \p n bytes) + * \param b Pointer to input (buffer of at least \p n bytes) + * \param n Number of bytes to process. + */ +static inline void mbedtls_xor( unsigned char* r, unsigned char const *a, unsigned char const *b, size_t n ) +{ + uint32_t *a32 = (uint32_t*)a; + uint32_t *b32 = (uint32_t*)b; + uint32_t *r32 = (uint32_t*)r; + for ( size_t i = 0; i < (n >> 2); i++ ) + { + r32[i] = a32[i] ^ b32[i]; + } + for ( size_t i = n - (n % 4) ; i < n; i++ ) + { + r[i] = a[i] ^ b[i]; + } +} + /* Fix MSVC C99 compatible issue * MSVC support __func__ from visual studio 2015( 1900 ) * Use MSVC predefine macro to avoid name check fail. From 99d88c1ab488c806b4919d50301c38488f1fb478 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 16:03:43 +0100 Subject: [PATCH 0835/1574] tls: psa_pake: fix missing casting in mbedtls_psa_ecjpake_write_round Signed-off-by: Valerio Setti --- library/ssl_tls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 5bfdde7bc..4efcee067 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -8272,7 +8272,7 @@ int mbedtls_psa_ecjpake_write_round( return( psa_ssl_status_to_mbedtls( status ) ); } - *(buf + output_offset) = output_len; + *(buf + output_offset) = (uint8_t) output_len; output_offset += output_len + 1; } From 8e7d6a03869e4578c16d98bcc7309a09df4dc776 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 4 Oct 2022 13:27:40 +0100 Subject: [PATCH 0836/1574] mpi_exp_mod: load the output variable to the table This is done in preparation for constant time loading that will be added in a later commit. Signed-off-by: Janos Follath --- library/bignum.c | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 8717c8abc..1c42ef21b 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1974,7 +1974,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, size_t i, j, nblimbs; size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; - mbedtls_mpi RR, T, W[ 1 << MBEDTLS_MPI_WINDOW_SIZE ], WW, Apos; + mbedtls_mpi RR, T, W[ ( 1 << MBEDTLS_MPI_WINDOW_SIZE ) + 1 ], WW, Apos; int neg; MPI_VALIDATE_RET( X != NULL ); @@ -2021,6 +2021,14 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], j ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T, j * 2 ) ); + /* + * Append the output variable to the end of the table for constant time + * lookup. From this point on we need to use the table entry in each + * calculation, this makes it safe to use simple assignment. + */ + const size_t x_index = sizeof( W ) / sizeof( W[0] ) - 1; + W[x_index] = *X; + /* * Compensate for negative A (and correct at the end) */ @@ -2066,10 +2074,10 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, mpi_montmul( &W[1], &RR, N, mm, &T ); /* - * X = R^2 * R^-1 mod N = R mod N + * W[x_index] = R^2 * R^-1 mod N = R mod N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, &RR ) ); - mpi_montred( X, N, mm, &T ); + MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[x_index], &RR ) ); + mpi_montred( &W[x_index], N, mm, &T ); if( wsize > 1 ) { @@ -2127,9 +2135,9 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, if( ei == 0 && state == 1 ) { /* - * out of window, square X + * out of window, square W[x_index] */ - mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); continue; } @@ -2144,16 +2152,16 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, if( nbits == wsize ) { /* - * X = X^wsize R^-1 mod N + * W[x_index] = W[x_index]^wsize R^-1 mod N */ for( i = 0; i < wsize; i++ ) - mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); /* - * X = X * W[wbits] R^-1 mod N + * W[x_index] = W[x_index] * W[wbits] R^-1 mod N */ MBEDTLS_MPI_CHK( mpi_select( &WW, W, (size_t) 1 << wsize, wbits ) ); - mpi_montmul( X, &WW, N, mm, &T ); + mpi_montmul( &W[x_index], &WW, N, mm, &T ); state--; nbits = 0; @@ -2166,25 +2174,30 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - mpi_montmul( X, X, N, mm, &T ); + mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); wbits <<= 1; if( ( wbits & ( one << wsize ) ) != 0 ) - mpi_montmul( X, &W[1], N, mm, &T ); + mpi_montmul( &W[x_index], &W[1], N, mm, &T ); } /* - * X = A^E * R * R^-1 mod N = A^E mod N + * W[x_index] = A^E * R * R^-1 mod N = A^E mod N */ - mpi_montred( X, N, mm, &T ); + mpi_montred( &W[x_index], N, mm, &T ); if( neg && E->n != 0 && ( E->p[0] & 1 ) != 0 ) { - X->s = -1; - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( X, N, X ) ); + W[x_index].s = -1; + MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &W[x_index], N, &W[x_index] ) ); } + /* + * Load the result in the output variable. + */ + *X = W[x_index]; + cleanup: for( i = ( one << ( wsize - 1 ) ); i < ( one << wsize ); i++ ) From b764ee1603bc03d3838ed5814cd1da6940a92fac Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 4 Oct 2022 14:00:09 +0100 Subject: [PATCH 0837/1574] mpi_exp_mod: protect out of window zeroes Out of window zeroes were doing squaring on the output variable directly. This leaks the position of windows and the out of window zeroes. Loading the output variable from the table in constant time removes this leakage. Signed-off-by: Janos Follath --- library/bignum.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 1c42ef21b..2ba6b7c97 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1975,6 +1975,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; mbedtls_mpi RR, T, W[ ( 1 << MBEDTLS_MPI_WINDOW_SIZE ) + 1 ], WW, Apos; + const size_t w_count = sizeof( W ) / sizeof( W[0] ); int neg; MPI_VALIDATE_RET( X != NULL ); @@ -2026,7 +2027,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * lookup. From this point on we need to use the table entry in each * calculation, this makes it safe to use simple assignment. */ - const size_t x_index = sizeof( W ) / sizeof( W[0] ) - 1; + const size_t x_index = w_count - 1; W[x_index] = *X; /* @@ -2137,7 +2138,8 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square W[x_index] */ - mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + mpi_montmul( &W[x_index], &WW, N, mm, &T ); continue; } @@ -2155,12 +2157,15 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * W[x_index] = W[x_index]^wsize R^-1 mod N */ for( i = 0; i < wsize; i++ ) - mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); + { + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + mpi_montmul( &W[x_index], &WW, N, mm, &T ); + } /* * W[x_index] = W[x_index] * W[wbits] R^-1 mod N */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, (size_t) 1 << wsize, wbits ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, wbits ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); state--; @@ -2174,12 +2179,16 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - mpi_montmul( &W[x_index], &W[x_index], N, mm, &T ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + mpi_montmul( &W[x_index], &WW, N, mm, &T ); wbits <<= 1; if( ( wbits & ( one << wsize ) ) != 0 ) - mpi_montmul( &W[x_index], &W[1], N, mm, &T ); + { + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, 1 ) ); + mpi_montmul( &W[x_index], &WW, N, mm, &T ); + } } /* From b3608afe29b7743de13923e6683ae74e34f77b46 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 4 Oct 2022 14:57:17 +0100 Subject: [PATCH 0838/1574] Add ChangeLog entry Signed-off-by: Janos Follath --- ChangeLog.d/rsa-fix-priviliged-side-channel.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 ChangeLog.d/rsa-fix-priviliged-side-channel.txt diff --git a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt new file mode 100644 index 000000000..d4ffa915c --- /dev/null +++ b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt @@ -0,0 +1,8 @@ +Security + * An adversary with access to precise enough information about memory + accesses (typically, an untrusted operating system attacking a secure + enclave) could recover an RSA private key after observing the victim + performing a single private-key operation if the window size used for the + exponentiation was 3 or smaller. Found and reported by Zili KOU, + Wenjian HE, Sharad Sinha, and Wei ZHANG. + From f08b40eaabfc22b2422e8bd300f3ccdfcaded591 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 11 Nov 2022 15:56:38 +0000 Subject: [PATCH 0839/1574] mpi_exp_mod: improve documentation Signed-off-by: Janos Follath --- library/bignum.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 2ba6b7c97..dbf529505 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2023,11 +2023,20 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T, j * 2 ) ); /* - * Append the output variable to the end of the table for constant time - * lookup. From this point on we need to use the table entry in each - * calculation, this makes it safe to use simple assignment. + * If we call mpi_montmul() without doing a table lookup first, we leak + * through timing side channels the fact that a squaring is happening. In + * some strong attack settings this can be enough to defeat blinding. + * + * To prevent this leak, we append the output variable to the end of the + * table. This allows as to always do a constant time lookup whenever we + * call mpi_montmul(). */ const size_t x_index = w_count - 1; + /* + * To prevent the leak, we need to use the table entry in each calculation + * from this point on. This makes it safe to load X into the table by a + * simple assignment. + */ W[x_index] = *X; /* From 844614814e14e3ab691763263b5102affbdaf7f1 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 14:31:22 +0000 Subject: [PATCH 0840/1574] mpi_exp_mod: remove memory ownership confusion Elements of W didn't all have the same owner: all were owned by this function, except W[x_index]. It is more robust if we make a proper copy of X. Signed-off-by: Janos Follath --- library/bignum.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index dbf529505..a564edf6c 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2012,16 +2012,6 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, wsize = MBEDTLS_MPI_WINDOW_SIZE; #endif - j = N->n + 1; - /* All W[i] and X must have at least N->n limbs for the mpi_montmul() - * and mpi_montred() calls later. Here we ensure that W[1] and X are - * large enough, and later we'll grow other W[i] to the same length. - * They must not be shrunk midway through this function! - */ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], j ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T, j * 2 ) ); - /* * If we call mpi_montmul() without doing a table lookup first, we leak * through timing side channels the fact that a squaring is happening. In @@ -2030,14 +2020,23 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * To prevent this leak, we append the output variable to the end of the * table. This allows as to always do a constant time lookup whenever we * call mpi_montmul(). + * + * To achieve this, we make a copy of X and we use the table entry in each + * calculation from this point on. */ const size_t x_index = w_count - 1; - /* - * To prevent the leak, we need to use the table entry in each calculation - * from this point on. This makes it safe to load X into the table by a - * simple assignment. + mbedtls_mpi_init( &W[x_index] ); + mbedtls_mpi_copy( &W[x_index], X ); + + j = N->n + 1; + /* All W[i] and X must have at least N->n limbs for the mpi_montmul() + * and mpi_montred() calls later. Here we ensure that W[1] and X are + * large enough, and later we'll grow other W[i] to the same length. + * They must not be shrunk midway through this function! */ - W[x_index] = *X; + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[x_index], j ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], j ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T, j * 2 ) ); /* * Compensate for negative A (and correct at the end) @@ -2214,14 +2213,17 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * Load the result in the output variable. */ - *X = W[x_index]; + mbedtls_mpi_copy( X, &W[x_index] ); cleanup: for( i = ( one << ( wsize - 1 ) ); i < ( one << wsize ); i++ ) mbedtls_mpi_free( &W[i] ); - mbedtls_mpi_free( &W[1] ); mbedtls_mpi_free( &T ); mbedtls_mpi_free( &Apos ); + mbedtls_mpi_free( &W[1] ); + mbedtls_mpi_free( &W[x_index] ); + mbedtls_mpi_free( &T ); + mbedtls_mpi_free( &Apos ); mbedtls_mpi_free( &WW ); if( prec_RR == NULL || prec_RR->p == NULL ) From 7fa11b88f3d223edca5bf3169b8b2fe93b498210 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 14:48:02 +0000 Subject: [PATCH 0841/1574] mpi_exp_mod: rename local variables Signed-off-by: Janos Follath --- library/bignum.c | 54 +++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index a564edf6c..b611c3110 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1970,12 +1970,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi *prec_RR ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t wbits, wsize, one = 1; + size_t window_bitsize, one = 1; size_t i, j, nblimbs; size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; mbedtls_mpi RR, T, W[ ( 1 << MBEDTLS_MPI_WINDOW_SIZE ) + 1 ], WW, Apos; - const size_t w_count = sizeof( W ) / sizeof( W[0] ); + const size_t w_table_size = sizeof( W ) / sizeof( W[0] ); int neg; MPI_VALIDATE_RET( X != NULL ); @@ -2004,12 +2004,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, i = mbedtls_mpi_bitlen( E ); - wsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : + window_bitsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; #if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) - if( wsize > MBEDTLS_MPI_WINDOW_SIZE ) - wsize = MBEDTLS_MPI_WINDOW_SIZE; + if( window_bitsize > MBEDTLS_MPI_WINDOW_SIZE ) + window_bitsize = MBEDTLS_MPI_WINDOW_SIZE; #endif /* @@ -2024,7 +2024,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * To achieve this, we make a copy of X and we use the table entry in each * calculation from this point on. */ - const size_t x_index = w_count - 1; + const size_t x_index = w_table_size - 1; mbedtls_mpi_init( &W[x_index] ); mbedtls_mpi_copy( &W[x_index], X ); @@ -2088,23 +2088,23 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[x_index], &RR ) ); mpi_montred( &W[x_index], N, mm, &T ); - if( wsize > 1 ) + if( window_bitsize > 1 ) { /* - * W[1 << (wsize - 1)] = W[1] ^ (wsize - 1) + * W[1 << (window_bitsize - 1)] = W[1] ^ (window_bitsize - 1) */ - j = one << ( wsize - 1 ); + j = one << ( window_bitsize - 1 ); MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[j], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); - for( i = 0; i < wsize - 1; i++ ) + for( i = 0; i < window_bitsize - 1; i++ ) mpi_montmul( &W[j], &W[j], N, mm, &T ); /* * W[i] = W[i - 1] * W[1] */ - for( i = j + 1; i < ( one << wsize ); i++ ) + for( i = j + 1; i < ( one << window_bitsize ); i++ ) { MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); @@ -2116,7 +2116,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, nblimbs = E->n; bufsize = 0; nbits = 0; - wbits = 0; + size_t exponent_bits_in_window = 0; state = 0; while( 1 ) @@ -2146,7 +2146,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square W[x_index] */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); continue; } @@ -2157,28 +2157,29 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, state = 2; nbits++; - wbits |= ( ei << ( wsize - nbits ) ); + exponent_bits_in_window |= ( ei << ( window_bitsize - nbits ) ); - if( nbits == wsize ) + if( nbits == window_bitsize ) { /* - * W[x_index] = W[x_index]^wsize R^-1 mod N + * W[x_index] = W[x_index]^window_bitsize R^-1 mod N */ - for( i = 0; i < wsize; i++ ) + for( i = 0; i < window_bitsize; i++ ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); } /* - * W[x_index] = W[x_index] * W[wbits] R^-1 mod N + * W[x_index] = W[x_index] * W[exponent_bits_in_window] R^-1 mod N */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, wbits ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, + exponent_bits_in_window ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); state--; nbits = 0; - wbits = 0; + exponent_bits_in_window = 0; } } @@ -2187,14 +2188,14 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); - wbits <<= 1; + exponent_bits_in_window <<= 1; - if( ( wbits & ( one << wsize ) ) != 0 ) + if( ( exponent_bits_in_window & ( one << window_bitsize ) ) != 0 ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_count, 1 ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, 1 ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); } } @@ -2217,7 +2218,8 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, cleanup: - for( i = ( one << ( wsize - 1 ) ); i < ( one << wsize ); i++ ) + for( i = ( one << ( window_bitsize - 1 ) ); + i < ( one << window_bitsize ); i++ ) mbedtls_mpi_free( &W[i] ); mbedtls_mpi_free( &W[1] ); From 3646ff02ad96ed188734aed822c16d3815085465 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 14:55:05 +0000 Subject: [PATCH 0842/1574] mpi_exp_mod: move X next to the precomputed values With small exponents (for example, when doing RSA-1024 with CRT, each prime is 512 bits and we'll use wsize = 5 which may be smaller that the maximum - or even worse when doing public RSA operations which typically have a 16-bit exponent so we'll use wsize = 1) the usage of W will have pre-computed values, then empty space, then the accumulator at the very end. Move X next to the precomputed values to make accesses more efficient and intuitive. Signed-off-by: Janos Follath --- library/bignum.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index b611c3110..d3cd90d74 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1975,7 +1975,6 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; mbedtls_mpi RR, T, W[ ( 1 << MBEDTLS_MPI_WINDOW_SIZE ) + 1 ], WW, Apos; - const size_t w_table_size = sizeof( W ) / sizeof( W[0] ); int neg; MPI_VALIDATE_RET( X != NULL ); @@ -2006,6 +2005,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, window_bitsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; + const size_t w_table_used_size = ( 1 << window_bitsize ) + 1; #if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) if( window_bitsize > MBEDTLS_MPI_WINDOW_SIZE ) @@ -2024,7 +2024,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * To achieve this, we make a copy of X and we use the table entry in each * calculation from this point on. */ - const size_t x_index = w_table_size - 1; + const size_t x_index = w_table_used_size - 1; mbedtls_mpi_init( &W[x_index] ); mbedtls_mpi_copy( &W[x_index], X ); @@ -2146,7 +2146,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square W[x_index] */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); continue; } @@ -2166,14 +2166,15 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < window_bitsize; i++ ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, + x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); } /* * W[x_index] = W[x_index] * W[exponent_bits_in_window] R^-1 mod N */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, exponent_bits_in_window ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); @@ -2188,14 +2189,14 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, x_index ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, x_index ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); exponent_bits_in_window <<= 1; if( ( exponent_bits_in_window & ( one << window_bitsize ) ) != 0 ) { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_size, 1 ) ); + MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, 1 ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); } } From b2c2fca974b81282d2fe747e27909a6681869d51 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 15:05:31 +0000 Subject: [PATCH 0843/1574] mpi_exp_mod: simplify freeing loop Signed-off-by: Janos Follath --- library/bignum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index d3cd90d74..9b4773970 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2219,12 +2219,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, cleanup: - for( i = ( one << ( window_bitsize - 1 ) ); - i < ( one << window_bitsize ); i++ ) + /* The first bit of the sliding window is always 1 and therefore the first + * half of the table was unused. */ + for( i = w_table_used_size/2; i < w_table_used_size; i++ ) mbedtls_mpi_free( &W[i] ); mbedtls_mpi_free( &W[1] ); - mbedtls_mpi_free( &W[x_index] ); mbedtls_mpi_free( &T ); mbedtls_mpi_free( &Apos ); mbedtls_mpi_free( &WW ); From 74601209fa38426dc085c06aa9864e53b44bc996 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 15:54:20 +0000 Subject: [PATCH 0844/1574] mpi_exp_mod: remove the 'one' variable Signed-off-by: Janos Follath --- library/bignum.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 9b4773970..4b2687b62 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1970,7 +1970,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi *prec_RR ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t window_bitsize, one = 1; + size_t window_bitsize; size_t i, j, nblimbs; size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; @@ -2091,9 +2091,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, if( window_bitsize > 1 ) { /* - * W[1 << (window_bitsize - 1)] = W[1] ^ (window_bitsize - 1) + * W[i] = W[1] ^ i + * + * The first bit of the sliding window is always 1 and therefore we + * only need to store the second half of the table. */ - j = one << ( window_bitsize - 1 ); + j = w_table_used_size / 2; MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[j], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); @@ -2103,8 +2106,10 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * W[i] = W[i - 1] * W[1] + * (The last element in the table is for the result X, so we don't need + * to calculate that.) */ - for( i = j + 1; i < ( one << window_bitsize ); i++ ) + for( i = j + 1; i < w_table_used_size - 1; i++ ) { MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); @@ -2194,7 +2199,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, exponent_bits_in_window <<= 1; - if( ( exponent_bits_in_window & ( one << window_bitsize ) ) != 0 ) + if( ( exponent_bits_in_window & ( (size_t) 1 << window_bitsize ) ) != 0 ) { MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, 1 ) ); mpi_montmul( &W[x_index], &WW, N, mm, &T ); From be54ca77e243526fd7e9009882e90248e6c06c79 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 16:14:54 +0000 Subject: [PATCH 0845/1574] mpi_exp_mod: improve documentation Signed-off-by: Janos Follath --- library/bignum.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 4b2687b62..b68a15e19 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2013,13 +2013,33 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, #endif /* - * If we call mpi_montmul() without doing a table lookup first, we leak - * through timing side channels the fact that a squaring is happening. In - * some strong attack settings this can be enough to defeat blinding. + * This function is not constant-trace: its memory accesses depend on the + * exponent value. To defend against timing attacks, callers (such as RSA + * and DHM) should use exponent blinding. However this is not enough if the + * adversary can find the exponent in a single trace, so this function + * takes extra precautions against adversaries who can observe memory + * access patterns. * - * To prevent this leak, we append the output variable to the end of the - * table. This allows as to always do a constant time lookup whenever we - * call mpi_montmul(). + * This function performs a series of multiplications by table elements and + * squarings, and we want the prevent the adversary from finding out which + * table element was used, and from distinguishing between multiplications + * and squarings. Firstly, when multiplying by an element of the window + * W[i], we do a constant-trace table lookup to obfuscate i. This leaves + * squarings as having a different memory access patterns from other + * multiplications. So secondly, we put the accumulator X in the table as + * well, and also do a constant-trace table lookup to multiply by X. + * + * This way, all multiplications take the form of a lookup-and-multiply. + * The number of lookup-and-multiply operations inside each iteration of + * the main loop still depends on the bits of the exponent, but since the + * other operations in the loop don't have an easily recognizable memory + * trace, an adversary is unlikely to be able to observe the exact + * patterns. + * + * An adversary may still be able to recover the exponent if they can + * observe both memory accesses and branches. However, branch prediction + * exploitation typically requires many traces of execution over the same + * data, which is defeated by randomized blinding. * * To achieve this, we make a copy of X and we use the table entry in each * calculation from this point on. From 74369b2497ed0c8e8ad2d9eed604a6b89804c222 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 21 Nov 2022 16:22:35 +0000 Subject: [PATCH 0846/1574] Add paper title to Changelog Signed-off-by: Janos Follath --- ChangeLog.d/rsa-fix-priviliged-side-channel.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt index d4ffa915c..f112eae43 100644 --- a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt +++ b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt @@ -4,5 +4,6 @@ Security enclave) could recover an RSA private key after observing the victim performing a single private-key operation if the window size used for the exponentiation was 3 or smaller. Found and reported by Zili KOU, - Wenjian HE, Sharad Sinha, and Wei ZHANG. + Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks + and Defenses of the Sliding Window Algorithm in TEEs" - DATE 2023. From 9c09326572b9baaac9530f9bd688c65ca241c010 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 10:15:00 +0000 Subject: [PATCH 0847/1574] mpi_mod_exp: be pedantic about right shift The window size starts giving diminishing returns around 6 on most platforms and highly unlikely to be more than 31 in practical use cases. Still, compilers and static analysers might complain about this and better to be pedantic. Co-authored-by: Gilles Peskine Signed-off-by: Janos Follath --- library/bignum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index b68a15e19..53d16495b 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2005,7 +2005,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, window_bitsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; - const size_t w_table_used_size = ( 1 << window_bitsize ) + 1; + const size_t w_table_used_size = ( (size_t)1 << window_bitsize ) + 1; #if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) if( window_bitsize > MBEDTLS_MPI_WINDOW_SIZE ) From 060009518b8cd6c65f0b32ae02da831235c7ef2a Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 10:18:06 +0000 Subject: [PATCH 0848/1574] mpi_exp_mod: fix out of bounds access The table size was set before the configured window size bound was applied which lead to out of bounds access when the configured window size bound is less. Signed-off-by: Janos Follath --- library/bignum.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index 53d16495b..618da377f 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2005,13 +2005,14 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, window_bitsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; - const size_t w_table_used_size = ( (size_t)1 << window_bitsize ) + 1; #if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) if( window_bitsize > MBEDTLS_MPI_WINDOW_SIZE ) window_bitsize = MBEDTLS_MPI_WINDOW_SIZE; #endif + const size_t w_table_used_size = ( (size_t) 1 << window_bitsize ) + 1; + /* * This function is not constant-trace: its memory accesses depend on the * exponent value. To defend against timing attacks, callers (such as RSA From c8d66d50d06e3fb801e4b87b4fec5658b300c191 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 10:47:10 +0000 Subject: [PATCH 0849/1574] mpi_exp_mod: reduce the table size by one The first half of the table is not used, let's reuse index 0 for the result instead of appending it in the end. Signed-off-by: Janos Follath --- library/bignum.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 618da377f..993eb2aed 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1974,7 +1974,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, size_t i, j, nblimbs; size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; - mbedtls_mpi RR, T, W[ ( 1 << MBEDTLS_MPI_WINDOW_SIZE ) + 1 ], WW, Apos; + mbedtls_mpi RR, T, W[ (size_t) 1 << MBEDTLS_MPI_WINDOW_SIZE ], WW, Apos; int neg; MPI_VALIDATE_RET( X != NULL ); @@ -2011,7 +2011,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, window_bitsize = MBEDTLS_MPI_WINDOW_SIZE; #endif - const size_t w_table_used_size = ( (size_t) 1 << window_bitsize ) + 1; + const size_t w_table_used_size = (size_t) 1 << window_bitsize; /* * This function is not constant-trace: its memory accesses depend on the @@ -2045,7 +2045,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * To achieve this, we make a copy of X and we use the table entry in each * calculation from this point on. */ - const size_t x_index = w_table_used_size - 1; + const size_t x_index = 0; mbedtls_mpi_init( &W[x_index] ); mbedtls_mpi_copy( &W[x_index], X ); @@ -2109,6 +2109,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[x_index], &RR ) ); mpi_montred( &W[x_index], N, mm, &T ); + if( window_bitsize > 1 ) { /* @@ -2116,6 +2117,10 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * * The first bit of the sliding window is always 1 and therefore we * only need to store the second half of the table. + * + * (There are two special elements in the table: W[0] for the + * accumulator/result and W[1] for A in Montgomery form. Both of these + * are already set at this point.) */ j = w_table_used_size / 2; @@ -2127,10 +2132,8 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * W[i] = W[i - 1] * W[1] - * (The last element in the table is for the result X, so we don't need - * to calculate that.) */ - for( i = j + 1; i < w_table_used_size - 1; i++ ) + for( i = j + 1; i < w_table_used_size; i++ ) { MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); @@ -2250,6 +2253,7 @@ cleanup: for( i = w_table_used_size/2; i < w_table_used_size; i++ ) mbedtls_mpi_free( &W[i] ); + mbedtls_mpi_free( &W[0] ); mbedtls_mpi_free( &W[1] ); mbedtls_mpi_free( &T ); mbedtls_mpi_free( &Apos ); From 33480a372b4c618cc3ad3b6b16b0f42e37fad94c Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 10:51:25 +0000 Subject: [PATCH 0850/1574] Changelog: expand conference acronym for clarity Signed-off-by: Janos Follath --- ChangeLog.d/rsa-fix-priviliged-side-channel.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt index f112eae43..bafe18d30 100644 --- a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt +++ b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt @@ -5,5 +5,6 @@ Security performing a single private-key operation if the window size used for the exponentiation was 3 or smaller. Found and reported by Zili KOU, Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks - and Defenses of the Sliding Window Algorithm in TEEs" - DATE 2023. + and Defenses of the Sliding Window Algorithm in TEEs" - Design, Automation + and Test in Europe 2023. From 3165f063b56e1e233875f529a8b01dbd771cce60 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 15:00:46 +0000 Subject: [PATCH 0851/1574] mpi_exp_mod: use x_index consistently Signed-off-by: Janos Follath --- library/bignum.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum.c b/library/bignum.c index 993eb2aed..3f81d5de3 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -2253,7 +2253,7 @@ cleanup: for( i = w_table_used_size/2; i < w_table_used_size; i++ ) mbedtls_mpi_free( &W[i] ); - mbedtls_mpi_free( &W[0] ); + mbedtls_mpi_free( &W[x_index] ); mbedtls_mpi_free( &W[1] ); mbedtls_mpi_free( &T ); mbedtls_mpi_free( &Apos ); From d66d5b2fef284e46953bac5a0f7ebb8f35d0e15b Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 22 Nov 2022 15:07:31 +0000 Subject: [PATCH 0852/1574] Add unit tests for mbedtls_mpi_core_sub_int(), MPI A - scalar b Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_core.py | 31 +++++++++++++ tests/suites/test_suite_bignum_core.function | 46 ++++++++++++++++++++ 2 files changed, 77 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 4910daea8..b8e2a3123 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -763,6 +763,37 @@ def mpi_modmul_case_generate() -> None: # BEGIN MERGE SLOT 3 +class BignumCoreSubInt(BignumCoreTarget, bignum_common.OperationCommon): + """Test cases for bignum core sub int.""" + count = 0 + symbol = "-" + test_function = "mpi_core_sub_int" + test_name = "mpi_core_sub_int" + input_style = "arch_split" + + @property + def is_valid(self) -> bool: + # This is "sub int", so b is only one limb + if bignum_common.limbs_mpi(self.int_b, self.bits_in_limb) > 1: + return False + return True + + # Overriding because we don't want leading zeros on b + @property + def arg_b(self) -> str: + return self.val_b + + def result(self) -> List[str]: + result = self.int_a - self.int_b + + borrow, result = divmod(result, self.limb_boundary) + + # Borrow will be -1 if non-zero, but we want it to be 1 in the test data + return [ + self.format_result(result), + str(-borrow) + ] + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 612a7c6bd..d5bb42002 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1049,6 +1049,52 @@ exit: /* BEGIN MERGE SLOT 3 */ +/* BEGIN_CASE */ +void mpi_core_sub_int( char * input_A, char * input_B, + char * input_X, int borrow ) +{ + /* We are testing A - b, where A is an MPI and b is a scalar, expecting + * result X with borrow borrow. However, for ease of handling we encode b + * as a 1-limb MPI (B) in the .data file. */ + + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *R = NULL; + size_t A_limbs, B_limbs, X_limbs; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + + /* The MPI encoding of scalar b must be only 1 limb */ + TEST_EQUAL( B_limbs, 1 ); + + /* The subtraction is fixed-width, so A and X must have the same number of limbs */ + TEST_EQUAL( A_limbs, X_limbs ); + size_t limbs = A_limbs; + + ASSERT_ALLOC( R, limbs ); + +#define TEST_COMPARE_CORE_MPIS( A, B, limbs ) \ + ASSERT_COMPARE( A, (limbs) * sizeof(mbedtls_mpi_uint), B, (limbs) * sizeof(mbedtls_mpi_uint) ) + + /* 1. R = A - b. Result and borrow should be correct */ + TEST_EQUAL( mbedtls_mpi_core_sub_int( R, A, B[0], limbs ), borrow ); + TEST_COMPARE_CORE_MPIS( R, X, limbs ); + + /* 2. A = A - b. Result and borrow should be correct */ + TEST_EQUAL( mbedtls_mpi_core_sub_int( A, A, B[0], limbs ), borrow ); + TEST_COMPARE_CORE_MPIS( A, X, limbs ); + +exit: + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( X ); + mbedtls_free( R ); +} +/* END_CASE */ + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From 4413b6690f00621313cee70601e68be76ddebd13 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 17:31:50 +0000 Subject: [PATCH 0853/1574] Add tests for mbedtls_xor Signed-off-by: Dave Rodgman --- tests/suites/test_suite_common.data | 20 +++++++ tests/suites/test_suite_common.function | 76 +++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 tests/suites/test_suite_common.data create mode 100644 tests/suites/test_suite_common.function diff --git a/tests/suites/test_suite_common.data b/tests/suites/test_suite_common.data new file mode 100644 index 000000000..500852d54 --- /dev/null +++ b/tests/suites/test_suite_common.data @@ -0,0 +1,20 @@ +Block xor, length 0 +mbedtls_xor:0 + +Block xor, length 1 +mbedtls_xor:1 + +Block xor, length 3 +mbedtls_xor:3 + +Block xor, length 4 +mbedtls_xor:4 + +Block xor, length 7 +mbedtls_xor:7 + +Block xor, length 8 +mbedtls_xor:8 + +Block xor, length 16 +mbedtls_xor:16 diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function new file mode 100644 index 000000000..17eae27c4 --- /dev/null +++ b/tests/suites/test_suite_common.function @@ -0,0 +1,76 @@ +/* BEGIN_HEADER */ +#include "../library/common.h" + +void fill_arrays( unsigned char *a, unsigned char *b, unsigned char *r1, unsigned char *r2, size_t n ) +{ + for ( size_t i = 0; i < n; i++ ) + { + a[i] = (unsigned char) i * 3; + b[i] = (unsigned char) i * 3 + 1; + r1[i] = (unsigned char) i * 3 + 2; + r2[i] = r1[i]; + } +} +/* END_HEADER */ + +/* BEGIN_CASE */ +void mbedtls_xor( int len ) +{ + size_t n = (size_t) len; + unsigned char *a = NULL, *b = NULL, *r1 = NULL, *r2 = NULL; + ASSERT_ALLOC( a, n ); + ASSERT_ALLOC( b, n ); + ASSERT_ALLOC( r1, n ); + ASSERT_ALLOC( r2, n ); + + /* Test non-overlapping */ + fill_arrays( a, b, r1, r2, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i] = a[i] ^ b[i]; + } + mbedtls_xor( r2, a, b, n ); + ASSERT_COMPARE( r1, n, r2, n ); + + /* Test r == a */ + fill_arrays( a, b, r1, r2, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i] = r1[i] ^ b[i]; + } + mbedtls_xor( r2, r2, b, n ); + ASSERT_COMPARE( r1, n, r2, n ); + + /* Test r == b */ + fill_arrays( a, b, r1, r2, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i] = a[i] ^ r1[i]; + } + mbedtls_xor( r2, a, r2, n ); + ASSERT_COMPARE( r1, n, r2, n ); + + /* Test a == b */ + fill_arrays( a, b, r1, r2, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i] = a[i] ^ a[i]; + } + mbedtls_xor( r2, a, a, n ); + ASSERT_COMPARE( r1, n, r2, n ); + + /* Test a == b == r */ + fill_arrays( a, b, r1, r2, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i] = r1[i] ^ r1[i]; + } + mbedtls_xor( r2, r2, r2, n ); + ASSERT_COMPARE( r1, n, r2, n ); +exit: + if ( a != NULL ) mbedtls_free( a ); + if ( a != NULL ) mbedtls_free( b ); + if ( r1 != NULL ) mbedtls_free( r1 ); + if ( r2 != NULL ) mbedtls_free( r2 ); +} +/* END_CASE */ From a8cf607458dfda284ceaabdf033e5a7a99a45807 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 15:02:54 +0000 Subject: [PATCH 0854/1574] Use mbedtls_xor in AES Signed-off-by: Dave Rodgman --- library/aes.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/library/aes.c b/library/aes.c index 7d035246f..4f7c88859 100644 --- a/library/aes.c +++ b/library/aes.c @@ -978,7 +978,6 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, const unsigned char *input, unsigned char *output ) { - int i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[16]; @@ -1009,8 +1008,7 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, if( ret != 0 ) goto exit; - for( i = 0; i < 16; i++ ) - output[i] = (unsigned char)( output[i] ^ iv[i] ); + mbedtls_xor( output, output, iv, 16 ); memcpy( iv, temp, 16 ); @@ -1023,8 +1021,7 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, { while( length > 0 ) { - for( i = 0; i < 16; i++ ) - output[i] = (unsigned char)( input[i] ^ iv[i] ); + mbedtls_xor( output, input, iv, 16 ); ret = mbedtls_aes_crypt_ecb( ctx, mode, output, output ); if( ret != 0 ) @@ -1106,8 +1103,6 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, while( blocks-- ) { - size_t i; - if( leftover && ( mode == MBEDTLS_AES_DECRYPT ) && blocks == 0 ) { /* We are on the last block in a decrypt operation that has @@ -1119,15 +1114,13 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, mbedtls_gf128mul_x_ble( tweak, tweak ); } - for( i = 0; i < 16; i++ ) - tmp[i] = input[i] ^ tweak[i]; + mbedtls_xor( tmp, input, tweak, 16 ); ret = mbedtls_aes_crypt_ecb( &ctx->crypt, mode, tmp, tmp ); if( ret != 0 ) return( ret ); - for( i = 0; i < 16; i++ ) - output[i] = tmp[i] ^ tweak[i]; + mbedtls_xor( output, tmp, tweak, 16 ); /* Update the tweak for the next block. */ mbedtls_gf128mul_x_ble( tweak, tweak ); @@ -1147,20 +1140,19 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, size_t i; unsigned char *prev_output = output - 16; - /* Copy ciphertext bytes from the previous block to our output for each - * byte of ciphertext we won't steal. At the same time, copy the - * remainder of the input for this final round (since the loop bounds - * are the same). */ + /* Copy the remainder of the input for this final round. */ for( i = 0; i < leftover; i++ ) { output[i] = prev_output[i]; - tmp[i] = input[i] ^ t[i]; } + /* Copy ciphertext bytes from the previous block to our output for each + * byte of ciphertext we won't steal. */ + mbedtls_xor( tmp, input, t, leftover ); + /* Copy ciphertext bytes from the previous block for input in this * round. */ - for( ; i < 16; i++ ) - tmp[i] = prev_output[i] ^ t[i]; + mbedtls_xor( tmp + i, prev_output + i, t + i, 16 - i ); ret = mbedtls_aes_crypt_ecb( &ctx->crypt, mode, tmp, tmp ); if( ret != 0 ) @@ -1168,8 +1160,7 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, /* Write the result back to the previous block, overriding the previous * output we copied. */ - for( i = 0; i < 16; i++ ) - prev_output[i] = tmp[i] ^ t[i]; + mbedtls_xor( prev_output, tmp, t, 16 ); } return( 0 ); From 7bb6b84b293d7c621dc7a3f15bc1b13976bcf912 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:18:55 +0000 Subject: [PATCH 0855/1574] Use mbedtls_xor in ARIA Signed-off-by: Dave Rodgman --- library/aria.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/library/aria.c b/library/aria.c index 924f95283..a1876b776 100644 --- a/library/aria.c +++ b/library/aria.c @@ -588,7 +588,6 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, const unsigned char *input, unsigned char *output ) { - int i; unsigned char temp[MBEDTLS_ARIA_BLOCKSIZE]; ARIA_VALIDATE_RET( ctx != NULL ); @@ -608,8 +607,7 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, memcpy( temp, input, MBEDTLS_ARIA_BLOCKSIZE ); mbedtls_aria_crypt_ecb( ctx, input, output ); - for( i = 0; i < MBEDTLS_ARIA_BLOCKSIZE; i++ ) - output[i] = (unsigned char)( output[i] ^ iv[i] ); + mbedtls_xor( output, output, iv, MBEDTLS_ARIA_BLOCKSIZE ); memcpy( iv, temp, MBEDTLS_ARIA_BLOCKSIZE ); @@ -622,8 +620,7 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, { while( length > 0 ) { - for( i = 0; i < MBEDTLS_ARIA_BLOCKSIZE; i++ ) - output[i] = (unsigned char)( input[i] ^ iv[i] ); + mbedtls_xor( output, input, iv, MBEDTLS_ARIA_BLOCKSIZE ); mbedtls_aria_crypt_ecb( ctx, output, output ); memcpy( iv, output, MBEDTLS_ARIA_BLOCKSIZE ); From d23399eb699f2533f62779ac629b943c99a4c479 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:23:11 +0000 Subject: [PATCH 0856/1574] Use mbedtls_xor in Camellia Signed-off-by: Dave Rodgman --- library/camellia.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/library/camellia.c b/library/camellia.c index 5dd6c5615..6e781c72b 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -526,7 +526,6 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, const unsigned char *input, unsigned char *output ) { - int i; unsigned char temp[16]; if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; @@ -541,8 +540,7 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, memcpy( temp, input, 16 ); mbedtls_camellia_crypt_ecb( ctx, mode, input, output ); - for( i = 0; i < 16; i++ ) - output[i] = (unsigned char)( output[i] ^ iv[i] ); + mbedtls_xor( output, output, iv, 16 ); memcpy( iv, temp, 16 ); @@ -555,8 +553,7 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, { while( length > 0 ) { - for( i = 0; i < 16; i++ ) - output[i] = (unsigned char)( input[i] ^ iv[i] ); + mbedtls_xor( output, input, iv, 16 ); mbedtls_camellia_crypt_ecb( ctx, mode, output, output ); memcpy( iv, output, 16 ); From 0d3b55bca8c3325f8c00ae558a0e8e63c34bd91d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:30:35 +0000 Subject: [PATCH 0857/1574] Use mbedtls_xor in ccm Signed-off-by: Dave Rodgman --- library/ccm.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/library/ccm.c b/library/ccm.c index 3edfba366..7bf9e9f5f 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -112,7 +112,6 @@ static int mbedtls_ccm_crypt( mbedtls_ccm_context *ctx, const unsigned char *input, unsigned char *output ) { - size_t i; size_t olen = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char tmp_buf[16] = {0}; @@ -125,8 +124,7 @@ static int mbedtls_ccm_crypt( mbedtls_ccm_context *ctx, return ret; } - for( i = 0; i < use_len; i++ ) - output[i] = input[i] ^ tmp_buf[offset + i]; + mbedtls_xor( output, input, tmp_buf + offset, use_len ); mbedtls_platform_zeroize(tmp_buf, sizeof(tmp_buf)); return ret; @@ -269,7 +267,6 @@ int mbedtls_ccm_update_ad( mbedtls_ccm_context *ctx, size_t add_len ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char i; size_t olen, use_len, offset; if( ctx->state & CCM_STATE__ERROR ) @@ -310,8 +307,7 @@ int mbedtls_ccm_update_ad( mbedtls_ccm_context *ctx, if( use_len > add_len ) use_len = add_len; - for( i = 0; i < use_len; i++ ) - ctx->y[i + offset] ^= add[i]; + mbedtls_xor( ctx->y + offset, ctx->y + offset, add, use_len ); ctx->processed += use_len; add_len -= use_len; @@ -381,8 +377,7 @@ int mbedtls_ccm_update( mbedtls_ccm_context *ctx, if( ctx->mode == MBEDTLS_CCM_ENCRYPT || \ ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT ) { - for( i = 0; i < use_len; i++ ) - ctx->y[i + offset] ^= input[i]; + mbedtls_xor( ctx->y + offset, ctx->y + offset, input, use_len ); if( use_len + offset == 16 || ctx->processed == ctx->plaintext_len ) { @@ -411,8 +406,7 @@ int mbedtls_ccm_update( mbedtls_ccm_context *ctx, if( ret != 0 ) goto exit; - for( i = 0; i < use_len; i++ ) - ctx->y[i + offset] ^= local_output[i]; + mbedtls_xor( ctx->y + offset, ctx->y + offset, local_output, use_len ); memcpy( output, local_output, use_len ); mbedtls_platform_zeroize( local_output, 16 ); From c1d9022bab918ff4b9791759e726a374ce802ea8 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:35:42 +0000 Subject: [PATCH 0858/1574] Use mbedtls_xor in ChaCha20 Signed-off-by: Dave Rodgman --- library/chacha20.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/library/chacha20.c b/library/chacha20.c index e53eb82f5..28751043a 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -222,7 +222,6 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, unsigned char *output ) { size_t offset = 0U; - size_t i; /* Use leftover keystream bytes, if available */ while( size > 0U && ctx->keystream_bytes_used < CHACHA20_BLOCK_SIZE_BYTES ) @@ -242,17 +241,7 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, chacha20_block( ctx->state, ctx->keystream8 ); ctx->state[CHACHA20_CTR_INDEX]++; - for( i = 0U; i < 64U; i += 8U ) - { - output[offset + i ] = input[offset + i ] ^ ctx->keystream8[i ]; - output[offset + i+1] = input[offset + i+1] ^ ctx->keystream8[i+1]; - output[offset + i+2] = input[offset + i+2] ^ ctx->keystream8[i+2]; - output[offset + i+3] = input[offset + i+3] ^ ctx->keystream8[i+3]; - output[offset + i+4] = input[offset + i+4] ^ ctx->keystream8[i+4]; - output[offset + i+5] = input[offset + i+5] ^ ctx->keystream8[i+5]; - output[offset + i+6] = input[offset + i+6] ^ ctx->keystream8[i+6]; - output[offset + i+7] = input[offset + i+7] ^ ctx->keystream8[i+7]; - } + mbedtls_xor( output + offset, input + offset, ctx->keystream8, 64U ); offset += CHACHA20_BLOCK_SIZE_BYTES; size -= CHACHA20_BLOCK_SIZE_BYTES; @@ -265,10 +254,7 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, chacha20_block( ctx->state, ctx->keystream8 ); ctx->state[CHACHA20_CTR_INDEX]++; - for( i = 0U; i < size; i++) - { - output[offset + i] = input[offset + i] ^ ctx->keystream8[i]; - } + mbedtls_xor( output + offset, input + offset, ctx->keystream8, size ); ctx->keystream_bytes_used = size; From 8c0ff81ce713f84f6c70c92195d0a06a8bea442b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:38:44 +0000 Subject: [PATCH 0859/1574] Use mbedtls_xor in CMAC Signed-off-by: Dave Rodgman --- library/cmac.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/library/cmac.c b/library/cmac.c index 3cc49d10c..987085686 100644 --- a/library/cmac.c +++ b/library/cmac.c @@ -148,15 +148,6 @@ exit: #endif /* !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST) */ #if !defined(MBEDTLS_CMAC_ALT) -static void cmac_xor_block( unsigned char *output, const unsigned char *input1, - const unsigned char *input2, - const size_t block_size ) -{ - size_t idx; - - for( idx = 0; idx < block_size; idx++ ) - output[ idx ] = input1[ idx ] ^ input2[ idx ]; -} /* * Create padded last block from (partial) last block. @@ -247,7 +238,7 @@ int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, input, block_size - cmac_ctx->unprocessed_len ); - cmac_xor_block( state, cmac_ctx->unprocessed_block, state, block_size ); + mbedtls_xor( state, cmac_ctx->unprocessed_block, state, block_size ); if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, &olen ) ) != 0 ) @@ -267,7 +258,7 @@ int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, * final partial or complete block */ for( j = 1; j < n; j++ ) { - cmac_xor_block( state, input, state, block_size ); + mbedtls_xor( state, input, state, block_size ); if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, &olen ) ) != 0 ) @@ -319,16 +310,16 @@ int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx, if( cmac_ctx->unprocessed_len < block_size ) { cmac_pad( M_last, block_size, last_block, cmac_ctx->unprocessed_len ); - cmac_xor_block( M_last, M_last, K2, block_size ); + mbedtls_xor( M_last, M_last, K2, block_size ); } else { /* Last block is complete block */ - cmac_xor_block( M_last, last_block, K1, block_size ); + mbedtls_xor( M_last, last_block, K1, block_size ); } - cmac_xor_block( state, M_last, state, block_size ); + mbedtls_xor( state, M_last, state, block_size ); if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, &olen ) ) != 0 ) { From ffb5499988f7a2cd1d908a7c542e3daad22d72c7 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:40:58 +0000 Subject: [PATCH 0860/1574] Use mbedtls_xor in CTR_DRBG Signed-off-by: Dave Rodgman --- library/ctr_drbg.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index 71c48afd2..f5c5e7b61 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -174,8 +174,7 @@ static int block_cipher_df( unsigned char *output, while( use_len > 0 ) { - for( i = 0; i < MBEDTLS_CTR_DRBG_BLOCKSIZE; i++ ) - chain[i] ^= p[i]; + mbedtls_xor( chain, chain, p, MBEDTLS_CTR_DRBG_BLOCKSIZE ); p += MBEDTLS_CTR_DRBG_BLOCKSIZE; use_len -= ( use_len >= MBEDTLS_CTR_DRBG_BLOCKSIZE ) ? MBEDTLS_CTR_DRBG_BLOCKSIZE : use_len; From 2e9db8e9bf54f734c441cd07b10b880cfcb2f7da Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:43:29 +0000 Subject: [PATCH 0861/1574] Use mbedtls_xor in DES Signed-off-by: Dave Rodgman --- library/des.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/library/des.c b/library/des.c index 65f5681cf..c56d4d4fe 100644 --- a/library/des.c +++ b/library/des.c @@ -635,7 +635,6 @@ int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, const unsigned char *input, unsigned char *output ) { - int i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[8]; @@ -646,8 +645,7 @@ int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, { while( length > 0 ) { - for( i = 0; i < 8; i++ ) - output[i] = (unsigned char)( input[i] ^ iv[i] ); + mbedtls_xor( output, input, iv, 8 ); ret = mbedtls_des_crypt_ecb( ctx, output, output ); if( ret != 0 ) @@ -668,8 +666,7 @@ int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, if( ret != 0 ) goto exit; - for( i = 0; i < 8; i++ ) - output[i] = (unsigned char)( output[i] ^ iv[i] ); + mbedtls_xor( output, output, iv, 8 ); memcpy( iv, temp, 8 ); @@ -741,7 +738,6 @@ int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, const unsigned char *input, unsigned char *output ) { - int i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[8]; @@ -752,8 +748,7 @@ int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, { while( length > 0 ) { - for( i = 0; i < 8; i++ ) - output[i] = (unsigned char)( input[i] ^ iv[i] ); + mbedtls_xor( output, input, iv, 8 ); ret = mbedtls_des3_crypt_ecb( ctx, output, output ); if( ret != 0 ) @@ -774,8 +769,7 @@ int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, if( ret != 0 ) goto exit; - for( i = 0; i < 8; i++ ) - output[i] = (unsigned char)( output[i] ^ iv[i] ); + mbedtls_xor( output, output, iv, 8 ); memcpy( iv, temp, 8 ); From d22fb73e3ed52812e4c474df148064cd4abb9b71 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:53:25 +0000 Subject: [PATCH 0862/1574] Use mbedtls_xor in GCM Signed-off-by: Dave Rodgman --- library/gcm.c | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/library/gcm.c b/library/gcm.c index f004a73c7..0178b5ba7 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -235,7 +235,6 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char work_buf[16]; - size_t i; const unsigned char *p; size_t use_len, olen = 0; uint64_t iv_bits; @@ -268,8 +267,7 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, { use_len = ( iv_len < 16 ) ? iv_len : 16; - for( i = 0; i < use_len; i++ ) - ctx->y[i] ^= p[i]; + mbedtls_xor( ctx->y, ctx->y, p, use_len ); gcm_mult( ctx, ctx->y, ctx->y ); @@ -277,8 +275,7 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, p += use_len; } - for( i = 0; i < 16; i++ ) - ctx->y[i] ^= work_buf[i]; + mbedtls_xor( ctx->y, ctx->y, work_buf, 16); gcm_mult( ctx, ctx->y, ctx->y ); } @@ -313,7 +310,7 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, const unsigned char *add, size_t add_len ) { const unsigned char *p; - size_t use_len, i, offset; + size_t use_len, offset; /* IV is limited to 2^64 bits, so 2^61 bytes */ if( (uint64_t) add_len >> 61 != 0 ) @@ -328,8 +325,7 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, if( use_len > add_len ) use_len = add_len; - for( i = 0; i < use_len; i++ ) - ctx->buf[i+offset] ^= p[i]; + mbedtls_xor( ctx->buf + offset, ctx->buf + offset, p, use_len ); if( offset + use_len == 16 ) gcm_mult( ctx, ctx->buf, ctx->buf ); @@ -343,8 +339,7 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, while( add_len >= 16 ) { - for( i = 0; i < 16; i++ ) - ctx->buf[i] ^= p[i]; + mbedtls_xor( ctx->buf, ctx->buf, p, 16 ); gcm_mult( ctx, ctx->buf, ctx->buf ); @@ -354,8 +349,7 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, if( add_len > 0 ) { - for( i = 0; i < add_len; i++ ) - ctx->buf[i] ^= p[i]; + mbedtls_xor( ctx->buf, ctx->buf, p, add_len ); } return( 0 ); @@ -378,7 +372,6 @@ static int gcm_mask( mbedtls_gcm_context *ctx, const unsigned char *input, unsigned char *output ) { - size_t i; size_t olen = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -389,14 +382,12 @@ static int gcm_mask( mbedtls_gcm_context *ctx, return( ret ); } - for( i = 0; i < use_len; i++ ) - { - if( ctx->mode == MBEDTLS_GCM_DECRYPT ) - ctx->buf[offset + i] ^= input[i]; - output[i] = ectr[offset + i] ^ input[i]; - if( ctx->mode == MBEDTLS_GCM_ENCRYPT ) - ctx->buf[offset + i] ^= output[i]; - } + if( ctx->mode == MBEDTLS_GCM_DECRYPT ) + mbedtls_xor( ctx->buf + offset, ctx->buf + offset, input, use_len ); + mbedtls_xor( output, ectr + offset, input, use_len ); + if( ctx->mode == MBEDTLS_GCM_ENCRYPT ) + mbedtls_xor( ctx->buf + offset, ctx->buf + offset, output, use_len ); + return( 0 ); } @@ -489,7 +480,6 @@ int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, unsigned char *tag, size_t tag_len ) { unsigned char work_buf[16]; - size_t i; uint64_t orig_len; uint64_t orig_add_len; @@ -524,13 +514,11 @@ int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, MBEDTLS_PUT_UINT32_BE( ( orig_len >> 32 ), work_buf, 8 ); MBEDTLS_PUT_UINT32_BE( ( orig_len ), work_buf, 12 ); - for( i = 0; i < 16; i++ ) - ctx->buf[i] ^= work_buf[i]; + mbedtls_xor( ctx->buf, ctx->buf, work_buf, 16 ); gcm_mult( ctx, ctx->buf, ctx->buf ); - for( i = 0; i < tag_len; i++ ) - tag[i] ^= ctx->buf[i]; + mbedtls_xor( tag, tag, ctx->buf, tag_len ); } return( 0 ); From 99a507ee55e0969ee49c33584f0a6eeaf68c2f4c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:54:54 +0000 Subject: [PATCH 0863/1574] Use mbedtls_xor in md Signed-off-by: Dave Rodgman --- library/md.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/library/md.c b/library/md.c index 8efcf105b..9c161a53f 100644 --- a/library/md.c +++ b/library/md.c @@ -633,7 +633,6 @@ int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char sum[MBEDTLS_MD_MAX_SIZE]; unsigned char *ipad, *opad; - size_t i; if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL ) return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); @@ -657,11 +656,8 @@ int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, memset( ipad, 0x36, ctx->md_info->block_size ); memset( opad, 0x5C, ctx->md_info->block_size ); - for( i = 0; i < keylen; i++ ) - { - ipad[i] = (unsigned char)( ipad[i] ^ key[i] ); - opad[i] = (unsigned char)( opad[i] ^ key[i] ); - } + mbedtls_xor( ipad, ipad, key, keylen ); + mbedtls_xor( opad, opad, key, keylen ); if( ( ret = mbedtls_md_starts( ctx ) ) != 0 ) goto cleanup; From 74b345f2821231b6a979aa3c19c0d80d377d5bb9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 16:56:59 +0000 Subject: [PATCH 0864/1574] Use mbedtls_xor in PKCS #5 Signed-off-by: Dave Rodgman --- library/pkcs5.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/library/pkcs5.c b/library/pkcs5.c index ac5945a11..a6bc1b55c 100644 --- a/library/pkcs5.c +++ b/library/pkcs5.c @@ -211,7 +211,6 @@ static int pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, uint32_t key_length, unsigned char *output ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - int j; unsigned int i; unsigned char md1[MBEDTLS_MD_MAX_SIZE]; unsigned char work[MBEDTLS_MD_MAX_SIZE]; @@ -263,8 +262,7 @@ static int pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, // U1 xor U2 // - for( j = 0; j < md_size; j++ ) - work[j] ^= md1[j]; + mbedtls_xor( work, work, md1, md_size ); } use_len = ( key_length < md_size ) ? key_length : md_size; @@ -396,8 +394,7 @@ exit: // U1 xor U2 // - for( j = 0; j < md_size; j++ ) - work[j] ^= md1[j]; + mbedtls_xor( work, work, md1, md_size ); } use_len = ( key_length < md_size ) ? key_length : md_size; From c36a56e8907f6295515f7374dd0a1666085ebdad Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 17:00:26 +0000 Subject: [PATCH 0865/1574] Use mbedtls_xor in TLS messaging layer Signed-off-by: Dave Rodgman --- library/ssl_msg.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index dbc639188..085233c15 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -511,15 +511,12 @@ static void ssl_build_record_nonce( unsigned char *dst_iv, unsigned char const *dynamic_iv, size_t dynamic_iv_len ) { - size_t i; - /* Start with Fixed IV || 0 */ memset( dst_iv, 0, dst_iv_len ); memcpy( dst_iv, fixed_iv, fixed_iv_len ); dst_iv += dst_iv_len - dynamic_iv_len; - for( i = 0; i < dynamic_iv_len; i++ ) - dst_iv[i] ^= dynamic_iv[i]; + mbedtls_xor( dst_iv, dst_iv, dynamic_iv, dynamic_iv_len ); } #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ From fdb77cdae3565b9228a887b45f4de541832b5399 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 11 Nov 2022 12:02:24 +0100 Subject: [PATCH 0866/1574] psa_crypto_pake: internally call to psa_pake_abort() in case of errors In this way, in case of error, it is not possible to continue using the same psa_pake_operation_t without reinitializing it. This should make the PSA pake's behavior closer to what expected by the specification Signed-off-by: Valerio Setti --- library/psa_crypto_pake.c | 96 +++++++++++++++++++++++++++++++-------- 1 file changed, 76 insertions(+), 20 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 659b712a5..431057ca4 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -197,9 +197,14 @@ static psa_status_t mbedtls_ecjpake_to_psa_error( int ret ) psa_status_t psa_pake_setup( psa_pake_operation_t *operation, const psa_pake_cipher_suite_t *cipher_suite) { + psa_status_t status; + /* A context must be freshly initialized before it can be set up. */ if( operation->alg != PSA_ALG_NONE ) - return( PSA_ERROR_BAD_STATE ); + { + status = PSA_ERROR_BAD_STATE; + goto error; + } if( cipher_suite == NULL || PSA_ALG_IS_PAKE(cipher_suite->algorithm ) == 0 || @@ -207,7 +212,8 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_DH ) || PSA_ALG_IS_HASH( cipher_suite->hash ) == 0 ) { - return( PSA_ERROR_INVALID_ARGUMENT ); + status = PSA_ERROR_INVALID_ARGUMENT; + goto error; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) @@ -218,7 +224,8 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, cipher_suite->bits != 256 || cipher_suite->hash != PSA_ALG_SHA_256 ) { - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + goto error; } operation->alg = cipher_suite->algorithm; @@ -238,7 +245,11 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, } else #endif - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + +error: + psa_pake_abort( operation ); + return status; } psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, @@ -253,12 +264,13 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { - return( PSA_ERROR_BAD_STATE ); + status = PSA_ERROR_BAD_STATE; + goto error; } status = psa_get_key_attributes( password, &attributes ); if( status != PSA_SUCCESS ) - return( status ); + goto error; type = psa_get_key_type( &attributes ); usage = psa_get_key_usage_flags( &attributes ); @@ -268,11 +280,14 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, if( type != PSA_KEY_TYPE_PASSWORD && type != PSA_KEY_TYPE_PASSWORD_HASH ) { - return( PSA_ERROR_INVALID_ARGUMENT ); + status = PSA_ERROR_INVALID_ARGUMENT; + goto error; } - if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) - return( PSA_ERROR_NOT_PERMITTED ); + if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) { + status = PSA_ERROR_NOT_PERMITTED; + goto error; + } if( operation->password != NULL ) return( PSA_ERROR_BAD_STATE ); @@ -297,47 +312,74 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, return( status ); return( PSA_SUCCESS ); + +error: + psa_pake_abort(operation); + return( status ); } psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, const uint8_t *user_id, size_t user_id_len ) { + psa_status_t status; + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { - return( PSA_ERROR_BAD_STATE ); + status = PSA_ERROR_BAD_STATE; + goto error; } if( user_id_len == 0 || user_id == NULL ) - return( PSA_ERROR_INVALID_ARGUMENT ); + { + status = PSA_ERROR_INVALID_ARGUMENT; + goto error; + } - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + +error: + psa_pake_abort(operation); + return( status ); } psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, const uint8_t *peer_id, size_t peer_id_len ) { + psa_status_t status; + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { - return( PSA_ERROR_BAD_STATE ); + status = PSA_ERROR_BAD_STATE; + goto error; } if( peer_id_len == 0 || peer_id == NULL ) - return( PSA_ERROR_INVALID_ARGUMENT ); + { + status = PSA_ERROR_INVALID_ARGUMENT; + goto error; + } - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + +error: + psa_pake_abort(operation); + return( status ); } psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, psa_pake_role_t role ) { + psa_status_t status; + if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) { - return( PSA_ERROR_BAD_STATE ); + status = PSA_ERROR_BAD_STATE; + goto error; } if( role != PSA_PAKE_ROLE_NONE && @@ -346,7 +388,8 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, role != PSA_PAKE_ROLE_CLIENT && role != PSA_PAKE_ROLE_SERVER ) { - return( PSA_ERROR_INVALID_ARGUMENT ); + status = PSA_ERROR_INVALID_ARGUMENT; + goto error; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) @@ -362,7 +405,11 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, } else #endif - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + +error: + psa_pake_abort(operation); + return( status ); } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) @@ -812,7 +859,10 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, operation->state != PSA_PAKE_STATE_READY || operation->input_step != PSA_PAKE_STEP_DERIVE || operation->output_step != PSA_PAKE_STEP_DERIVE ) - return( PSA_ERROR_BAD_STATE ); + { + status = PSA_ERROR_BAD_STATE; + goto error; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) if( operation->alg == PSA_ALG_JPAKE ) @@ -842,7 +892,13 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, } else #endif - return( PSA_ERROR_NOT_SUPPORTED ); + status = PSA_ERROR_NOT_SUPPORTED; + +error: + psa_key_derivation_abort( output ); + psa_pake_abort( operation ); + + return( status ); } psa_status_t psa_pake_abort(psa_pake_operation_t * operation) From 1070aed778b12931bde949ec3f6938d6e0cac9be Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 11 Nov 2022 19:37:31 +0100 Subject: [PATCH 0867/1574] test_suite_psa_crypto: do not re-use PAKE's contexts in case of errors As for ecjpake_setup(), now the test function can handle: - "external" errors, through parameters set by the data file - "internal" ones, through enums which inject ad-hoc failures Similarly also ecjpake_rounds() can handle both type of errors, but right now there's no erroneous case in the associated ".data" file. In both cases, after an error the current test is terminated. Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto.data | 141 ++++++--- tests/suites/test_suite_psa_crypto.function | 327 ++++++++++++-------- 2 files changed, 305 insertions(+), 163 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 659205d52..247c57e33 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6491,74 +6491,133 @@ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY PSA derive persistent key: HKDF SHA-256, exportable persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY +PSA PAKE: uninitialized access to psa_pake_operation_t +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE + PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_INVALID_ARGUMENT:0:0:0 +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid primitive type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive family depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid hash depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":PSA_ERROR_NOT_SUPPORTED:0:0:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED -PSA PAKE: ecjpake setup server output step first +PSA PAKE: duplicate a valid setup depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":0:0:0:0 - -PSA PAKE: ecjpake setup server input step first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":0:0:0:0 - -PSA PAKE: ecjpake setup server empty password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":0:0:0:PSA_ERROR_BAD_STATE - -PSA PAKE: ecjpake setup client output step first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:0:0 - -PSA PAKE: ecjpake setup client input step first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:1:"abcd":0:0:0:0 - -PSA PAKE: ecjpake setup client empty password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":0:0:0:PSA_ERROR_BAD_STATE - -PSA PAKE: ecjpake setup client bad password key type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:PSA_ERROR_INVALID_ARGUMENT:0 - -PSA PAKE: ecjpake setup client bad password key usage -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":0:0:PSA_ERROR_NOT_PERMITTED:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":0:PSA_ERROR_NOT_SUPPORTED:0:0 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: wrong key type password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: wrong key usage type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED + +PSA PAKE: set invalid user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set invalid peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_USER:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: set peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_PEER:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: empty server password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE + +PSA PAKE: empty client password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE + +PSA PAKE: invalid input +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_EMPTY_IO_BUFFER:0 + +PSA PAKE: unkown input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_UNKNOWN_STEP:0 + +PSA PAKE: invalid first input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_INVALID_FIRST_STEP:0 + +PSA PAKE: input buffer too large +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_WRONG_BUFFER_SIZE:0 + +PSA PAKE: valid input operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 + +PSA PAKE: invalid output +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_EMPTY_IO_BUFFER:0 + +PSA PAKE: unkown output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_UNKNOWN_STEP:0 + +PSA PAKE: invalid first output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_INVALID_FIRST_STEP:0 + +PSA PAKE: output buffer too small +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_WRONG_BUFFER_SIZE:0 + +PSA PAKE: valid output operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 + +PSA PAKE: ecjpake setup client bad password key type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: ecjpake setup client bad password key usage +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ERR_NONE PSA PAKE: ecjpake rounds, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:0 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:INJECT_ERR_NONE -# This test case relies on implementation (it may need to be adjusted in the future) -PSA PAKE: ecjpake rounds - key is destroyed after being passed to set_password_key +PSA PAKE: ecjpake rounds, early key derivation 1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:1 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_1 + +PSA PAKE: ecjpake rounds, early key derivation 2 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_2 PSA PAKE: ecjpake no input errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index ca1614bef..8d42bf9b3 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -1318,6 +1318,24 @@ exit: } #endif /* PSA_WANT_ALG_JPAKE */ +typedef enum +{ + INJECT_ERR_NONE = 0, + INJECT_ERR_UNINITIALIZED_ACCESS, + INJECT_ERR_DUPLICATE_SETUP, + INJECT_ERR_INVALID_USER, + INJECT_ERR_INVALID_PEER, + INJECT_ERR_SET_USER, + INJECT_ERR_SET_PEER, + INJECT_EMPTY_IO_BUFFER, + INJECT_UNKNOWN_STEP, + INJECT_INVALID_FIRST_STEP, + INJECT_WRONG_BUFFER_SIZE, + INJECT_VALID_OPERATION_AFTER_FAILURE, + INJECT_ANTICIPATE_KEY_DERIVATION_1, + INJECT_ANTICIPATE_KEY_DERIVATION_2, +} ecjpake_injected_failure_t; + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -8753,11 +8771,9 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, int primitive_arg, int hash_arg, int role_arg, - int input_first, data_t *pw_data, - int expected_status_setup_arg, - int expected_status_set_role_arg, - int expected_status_set_password_key_arg, - int expected_status_input_output_arg) + int test_input, data_t *pw_data, + int inj_err_type_arg, + int expected_error_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); @@ -8769,12 +8785,9 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, psa_pake_role_t role = role_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_status_t expected_status_setup = expected_status_setup_arg; - psa_status_t expected_status_set_role = expected_status_set_role_arg; - psa_status_t expected_status_set_password_key = - expected_status_set_password_key_arg; - psa_status_t expected_status_input_output = - expected_status_input_output_arg; + ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; + psa_status_t expected_error = expected_error_arg; + psa_status_t status; unsigned char *output_buffer = NULL; size_t output_len = 0; @@ -8799,54 +8812,90 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_set_password_key( &operation, key ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_set_role( &operation, role ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - NULL, 0, NULL ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), - PSA_ERROR_BAD_STATE ); - - PSA_ASSERT( psa_pake_abort( &operation ) ); - - TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), - expected_status_setup ); - if( expected_status_setup != PSA_SUCCESS ) + if ( inj_err_type == INJECT_ERR_UNINITIALIZED_ACCESS ) + { + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_password_key( &operation, key ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_role( &operation, role ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0, NULL ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); goto exit; + } - TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), - PSA_ERROR_BAD_STATE ); - - TEST_EQUAL( psa_pake_set_role( &operation, role), - expected_status_set_role ); - if( expected_status_set_role != PSA_SUCCESS ) + status = psa_pake_setup( &operation, &cipher_suite ); + if (status != PSA_SUCCESS) + { + TEST_EQUAL( status, expected_error ); goto exit; + } + + if( inj_err_type == INJECT_ERR_DUPLICATE_SETUP ) + { + TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), + expected_error ); + goto exit; + } + + status = psa_pake_set_role( &operation, role); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error ); + goto exit; + } if( pw_data->len > 0 ) { - TEST_EQUAL( psa_pake_set_password_key( &operation, key ), - expected_status_set_password_key ); - if( expected_status_set_password_key != PSA_SUCCESS ) + status = psa_pake_set_password_key( &operation, key ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error ); goto exit; + } } - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); + if ( inj_err_type == INJECT_ERR_INVALID_USER ) + { + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } - const uint8_t unsupported_id[] = "abcd"; + if ( inj_err_type == INJECT_ERR_INVALID_PEER ) + { + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } - TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); - TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); + if ( inj_err_type == INJECT_ERR_SET_USER ) + { + const uint8_t unsupported_id[] = "abcd"; + TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + goto exit; + } + + if ( inj_err_type == INJECT_ERR_SET_PEER ) + { + const uint8_t unsupported_id[] = "abcd"; + TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + goto exit; + } const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, PSA_PAKE_STEP_KEY_SHARE ); @@ -8855,85 +8904,109 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, PSA_PAKE_STEP_ZK_PROOF ); - /* First round */ - if( input_first ) + if ( test_input ) { - /* Invalid parameters (input) */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, - NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); - /* Invalid parameters (step) */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ) , 0 ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, size_zk_proof ), - PSA_ERROR_INVALID_ARGUMENT ); - /* Invalid first step */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ), 0 ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, size_zk_proof ), - PSA_ERROR_BAD_STATE ); - - /* Possibly valid */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ), 0 ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, size_key_share ), - expected_status_input_output); - - if( expected_status_input_output == PSA_SUCCESS ) + if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) { - /* Buffer too large */ - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } - /* The operation's state should be invalidated at this point */ + if ( inj_err_type == INJECT_UNKNOWN_STEP ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, size_zk_proof ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, size_zk_proof ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + status = psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, size_key_share ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error); + goto exit; + } + + if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) + { + // Just trigger any kind of error. We don't care about the result here + psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1 ); TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public ), - PSA_ERROR_BAD_STATE ); + PSA_ERROR_BAD_STATE ); + goto exit; } - } - else - { - /* Invalid parameters (output) */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - NULL, 0, NULL ), - PSA_ERROR_INVALID_ARGUMENT ); - /* Invalid parameters (step) */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ), 0 ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, buf_size, &output_len ), - PSA_ERROR_INVALID_ARGUMENT ); - /* Invalid first step */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ), 0 ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); - - /* Possibly valid */ - TEST_EQUAL( ecjpake_operation_setup( &operation, &cipher_suite, role, - key, pw_data->len ), 0 ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, buf_size, &output_len ), - expected_status_input_output ); - - if( expected_status_input_output == PSA_SUCCESS ) + } else { + if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) { - TEST_ASSERT( output_len > 0 ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + NULL, 0, NULL ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } - /* Buffer too small */ - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ), - PSA_ERROR_BUFFER_TOO_SMALL ); + if ( inj_err_type == INJECT_UNKNOWN_STEP ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, buf_size, &output_len ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } - /* The operation's state should be invalidated at this point */ + if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + status = psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, buf_size, &output_len ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error); + goto exit; + } + + TEST_ASSERT( output_len > 0 ); + + if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) + { TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); + output_buffer, size_zk_public - 1, &output_len ), + PSA_ERROR_BUFFER_TOO_SMALL ); + goto exit; + } + + if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) + { + // Just trigger any kind of error. We don't care about the result here + psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); + goto exit; } } @@ -9000,7 +9073,8 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, - int client_input_first, int destroy_key ) + int client_input_first, int destroy_key, + int client_input_first, int inj_err_type_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -9014,6 +9088,7 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t client_derive = PSA_KEY_DERIVATION_OPERATION_INIT; + ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; PSA_INIT( ); @@ -9054,19 +9129,27 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, if( destroy_key == 1 ) psa_destroy_key( key ); - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + if( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1 ) + { + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), PSA_ERROR_BAD_STATE ); + goto exit; + } /* First round */ ecjpake_do_round( alg, primitive_arg, &server, &client, client_input_first, 1, 0 ); - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + if ( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_2 ) + { + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), PSA_ERROR_BAD_STATE ); + goto exit; + } /* Second round */ ecjpake_do_round( alg, primitive_arg, &server, &client, From 024b028ce16f0cf1dbaa172e8e40f1519e326b8d Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 16 Nov 2022 12:32:29 +0100 Subject: [PATCH 0868/1574] test: split psa_pake function/data from the generic test_suite_psa_crypto Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto.data | 172 --- tests/suites/test_suite_psa_crypto.function | 4 - tests/suites/test_suite_psa_crypto_pake.data | 171 +++ .../test_suite_psa_crypto_pake.function | 1060 +++++++++++++++++ 4 files changed, 1231 insertions(+), 176 deletions(-) create mode 100644 tests/suites/test_suite_psa_crypto_pake.data create mode 100644 tests/suites/test_suite_psa_crypto_pake.function diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 247c57e33..946234c41 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -6490,175 +6490,3 @@ persistent_key_load_key_from_storage:"":PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY PSA derive persistent key: HKDF SHA-256, exportable persistent_key_load_key_from_storage:"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b":PSA_KEY_TYPE_RAW_DATA:1024:PSA_KEY_USAGE_EXPORT:0:DERIVE_KEY - -PSA PAKE: uninitialized access to psa_pake_operation_t -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE - -PSA PAKE: invalid alg -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: invalid primitive type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: invalid primitive family -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: invalid primitive bits -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: invalid hash -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: duplicate a valid setup -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE - -PSA PAKE: ecjpake setup invalid role NONE -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: wrong key type password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: wrong key usage type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED - -PSA PAKE: set invalid user -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: set invalid peer -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: set user -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_USER:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: set peer -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_PEER:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: empty server password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE - -PSA PAKE: empty client password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE - -PSA PAKE: invalid input -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_EMPTY_IO_BUFFER:0 - -PSA PAKE: unkown input step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_UNKNOWN_STEP:0 - -PSA PAKE: invalid first input step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_INVALID_FIRST_STEP:0 - -PSA PAKE: input buffer too large -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_WRONG_BUFFER_SIZE:0 - -PSA PAKE: valid input operation after a failure -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 - -PSA PAKE: invalid output -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_EMPTY_IO_BUFFER:0 - -PSA PAKE: unkown output step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_UNKNOWN_STEP:0 - -PSA PAKE: invalid first output step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_INVALID_FIRST_STEP:0 - -PSA PAKE: output buffer too small -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_WRONG_BUFFER_SIZE:0 - -PSA PAKE: valid output operation after a failure -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 - -PSA PAKE: ecjpake setup client bad password key type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: ecjpake setup client bad password key usage -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED - -PSA PAKE: ecjpake rounds -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ERR_NONE - -PSA PAKE: ecjpake rounds, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:INJECT_ERR_NONE - -PSA PAKE: ecjpake rounds, early key derivation 1 -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_1 - -PSA PAKE: ecjpake rounds, early key derivation 2 -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_2 - -PSA PAKE: ecjpake no input errors -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" - -PSA PAKE: ecjpake no input errors, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" - -PSA PAKE: ecjpake inject input errors, first round client -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:1:"abcdef" - -PSA PAKE: ecjpake inject input errors, first round client, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:1:"abcdef" - -PSA PAKE: ecjpake inject input errors, first round server -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:2:"abcdef" - -PSA PAKE: ecjpake inject input errors, first round server, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:2:"abcdef" - -PSA PAKE: ecjpake inject input errors, second round client -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:3:"abcdef" - -PSA PAKE: ecjpake inject input errors, second round client, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:3:"abcdef" - -PSA PAKE: ecjpake inject input errors, second round server -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:4:"abcdef" - -PSA PAKE: ecjpake inject input errors, second round server, client input first -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" - -PSA PAKE: ecjpake size macros -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 -ecjpake_size_macros: diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 8d42bf9b3..a2297639e 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -9073,7 +9073,6 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, - int client_input_first, int destroy_key, int client_input_first, int inj_err_type_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); @@ -9126,9 +9125,6 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); - if( destroy_key == 1 ) - psa_destroy_key( key ); - if( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1 ) { TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data new file mode 100644 index 000000000..fba9e8ee3 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -0,0 +1,171 @@ +PSA PAKE: uninitialized access to psa_pake_operation_t +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE + +PSA PAKE: invalid alg +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: invalid primitive type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: invalid primitive family +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: invalid primitive bits +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: invalid hash +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: duplicate a valid setup +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE + +PSA PAKE: ecjpake setup invalid role NONE +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: wrong key type password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: wrong key usage type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED + +PSA PAKE: set invalid user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set invalid peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_USER:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: set peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_PEER:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: empty server password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE + +PSA PAKE: empty client password +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE + +PSA PAKE: invalid input +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_EMPTY_IO_BUFFER:0 + +PSA PAKE: unkown input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_UNKNOWN_STEP:0 + +PSA PAKE: invalid first input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_INVALID_FIRST_STEP:0 + +PSA PAKE: input buffer too large +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_WRONG_BUFFER_SIZE:0 + +PSA PAKE: valid input operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 + +PSA PAKE: invalid output +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_EMPTY_IO_BUFFER:0 + +PSA PAKE: unkown output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_UNKNOWN_STEP:0 + +PSA PAKE: invalid first output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_INVALID_FIRST_STEP:0 + +PSA PAKE: output buffer too small +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_WRONG_BUFFER_SIZE:0 + +PSA PAKE: valid output operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 + +PSA PAKE: ecjpake setup client bad password key type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: ecjpake setup client bad password key usage +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED + +PSA PAKE: ecjpake rounds +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ERR_NONE + +PSA PAKE: ecjpake rounds, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:INJECT_ERR_NONE + +PSA PAKE: ecjpake rounds, early key derivation 1 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_1 + +PSA PAKE: ecjpake rounds, early key derivation 2 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_2 + +PSA PAKE: ecjpake no input errors +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" + +PSA PAKE: ecjpake no input errors, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round client +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:1:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round client, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:1:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round server +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:2:"abcdef" + +PSA PAKE: ecjpake inject input errors, first round server, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:2:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round client +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:3:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round client, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:3:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round server +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:4:"abcdef" + +PSA PAKE: ecjpake inject input errors, second round server, client input first +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" + +PSA PAKE: ecjpake size macros +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +ecjpake_size_macros: diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function new file mode 100644 index 000000000..c378b4932 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -0,0 +1,1060 @@ +/* BEGIN_HEADER */ +#include + +#include "psa/crypto.h" + +#if defined(PSA_WANT_ALG_JPAKE) +static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, + psa_pake_operation_t *server, + psa_pake_operation_t *client, + int client_input_first, + int round, int inject_error ) +{ + unsigned char *buffer0 = NULL, *buffer1 = NULL; + size_t buffer_length = ( + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC) + + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF)) * 2; + /* The output should be exactly this size according to the spec */ + const size_t expected_size_key_share = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_KEY_SHARE); + /* The output should be exactly this size according to the spec */ + const size_t expected_size_zk_public = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PUBLIC); + /* The output can be smaller: the spec allows stripping leading zeroes */ + const size_t max_expected_size_zk_proof = + PSA_PAKE_OUTPUT_SIZE(alg, primitive, PSA_PAKE_STEP_ZK_PROOF); + size_t buffer0_off = 0; + size_t buffer1_off = 0; + size_t s_g1_len, s_g2_len, s_a_len; + size_t s_g1_off, s_g2_off, s_a_off; + size_t s_x1_pk_len, s_x2_pk_len, s_x2s_pk_len; + size_t s_x1_pk_off, s_x2_pk_off, s_x2s_pk_off; + size_t s_x1_pr_len, s_x2_pr_len, s_x2s_pr_len; + size_t s_x1_pr_off, s_x2_pr_off, s_x2s_pr_off; + size_t c_g1_len, c_g2_len, c_a_len; + size_t c_g1_off, c_g2_off, c_a_off; + size_t c_x1_pk_len, c_x2_pk_len, c_x2s_pk_len; + size_t c_x1_pk_off, c_x2_pk_off, c_x2s_pk_off; + size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; + size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; + psa_status_t expected_status = PSA_SUCCESS; + psa_status_t status; + + ASSERT_ALLOC( buffer0, buffer_length ); + ASSERT_ALLOC( buffer1, buffer_length ); + + switch( round ) + { + case 1: + /* Server first round Output */ + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g1_len ) ); + TEST_EQUAL( s_g1_len, expected_size_key_share ); + s_g1_off = buffer0_off; + buffer0_off += s_g1_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pk_len ) ); + TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); + s_x1_pk_off = buffer0_off; + buffer0_off += s_x1_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pr_len ) ); + TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); + s_x1_pr_off = buffer0_off; + buffer0_off += s_x1_pr_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g2_len ) ); + TEST_EQUAL( s_g2_len, expected_size_key_share ); + s_g2_off = buffer0_off; + buffer0_off += s_g2_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pk_len ) ); + TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); + s_x2_pk_off = buffer0_off; + buffer0_off += s_x2_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pr_len ) ); + TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); + s_x2_pr_off = buffer0_off; + buffer0_off += s_x2_pr_len; + + if( inject_error == 1 ) + { + buffer0[s_x1_pr_off + 8] ^= 1; + buffer0[s_x2_pr_off + 7] ^= 1; + expected_status = PSA_ERROR_DATA_INVALID; + } + + /* + * When injecting errors in inputs, the implementation is + * free to detect it right away of with a delay. + * This permits delaying the error until the end of the input + * sequence, if no error appears then, this will be treated + * as an error. + */ + + if( client_input_first == 1 ) + { + /* Client first round Input */ + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 1 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } + + /* Client first round Output */ + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g1_len ) ); + TEST_EQUAL( c_g1_len, expected_size_key_share ); + c_g1_off = buffer1_off; + buffer1_off += c_g1_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pk_len ) ); + TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); + c_x1_pk_off = buffer1_off; + buffer1_off += c_x1_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pr_len ) ); + TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); + c_x1_pr_off = buffer1_off; + buffer1_off += c_x1_pr_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g2_len ) ); + TEST_EQUAL( c_g2_len, expected_size_key_share ); + c_g2_off = buffer1_off; + buffer1_off += c_g2_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pk_len ) ); + TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); + c_x2_pk_off = buffer1_off; + buffer1_off += c_x2_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pr_len ) ); + TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); + c_x2_pr_off = buffer1_off; + buffer1_off += c_x2_pr_len; + + if( client_input_first == 0 ) + { + /* Client first round Input */ + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len ); + if( inject_error == 1 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 1 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } + + if( inject_error == 2 ) + { + buffer1[c_x1_pr_off + 12] ^= 1; + buffer1[c_x2_pr_off + 7] ^= 1; + expected_status = PSA_ERROR_DATA_INVALID; + } + + /* Server first round Input */ + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len ); + if( inject_error == 2 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 2 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + + break; + + case 2: + /* Server second round Output */ + buffer0_off = 0; + + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_a_len ) ); + TEST_EQUAL( s_a_len, expected_size_key_share ); + s_a_off = buffer0_off; + buffer0_off += s_a_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pk_len ) ); + TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); + s_x2s_pk_off = buffer0_off; + buffer0_off += s_x2s_pk_len; + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pr_len ) ); + TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); + s_x2s_pr_off = buffer0_off; + buffer0_off += s_x2s_pr_len; + + if( inject_error == 3 ) + { + buffer0[s_x2s_pk_off + 12] += 0x33; + expected_status = PSA_ERROR_DATA_INVALID; + } + + if( client_input_first == 1 ) + { + /* Client second round Input */ + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 3 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } + + /* Client second round Output */ + buffer1_off = 0; + + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_a_len ) ); + TEST_EQUAL( c_a_len, expected_size_key_share ); + c_a_off = buffer1_off; + buffer1_off += c_a_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pk_len ) ); + TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); + c_x2s_pk_off = buffer1_off; + buffer1_off += c_x2s_pk_len; + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pr_len ) ); + TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); + c_x2s_pr_off = buffer1_off; + buffer1_off += c_x2s_pr_len; + + if( client_input_first == 0 ) + { + /* Client second round Input */ + status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len ); + if( inject_error == 3 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 3 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } + + if( inject_error == 4 ) + { + buffer1[c_x2s_pk_off + 7] += 0x28; + expected_status = PSA_ERROR_DATA_INVALID; + } + + /* Server second round Input */ + status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len ); + if( inject_error == 4 && status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_status ); + break; + } + else + { + TEST_EQUAL( status, PSA_SUCCESS ); + } + + /* Error didn't trigger, make test fail */ + if( inject_error == 4 ) + TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + + break; + + } + +exit: + mbedtls_free( buffer0 ); + mbedtls_free( buffer1 ); +} +#endif /* PSA_WANT_ALG_JPAKE */ + +typedef enum +{ + INJECT_ERR_NONE = 0, + INJECT_ERR_UNINITIALIZED_ACCESS, + INJECT_ERR_DUPLICATE_SETUP, + INJECT_ERR_INVALID_USER, + INJECT_ERR_INVALID_PEER, + INJECT_ERR_SET_USER, + INJECT_ERR_SET_PEER, + INJECT_EMPTY_IO_BUFFER, + INJECT_UNKNOWN_STEP, + INJECT_INVALID_FIRST_STEP, + INJECT_WRONG_BUFFER_SIZE, + INJECT_VALID_OPERATION_AFTER_FAILURE, + INJECT_ANTICIPATE_KEY_DERIVATION_1, + INJECT_ANTICIPATE_KEY_DERIVATION_2, +} ecjpake_injected_failure_t; + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_PSA_CRYPTO_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ +void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, + int primitive_arg, int hash_arg, int role_arg, + int test_input, data_t *pw_data, + int inj_err_type_arg, + int expected_error_arg) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t operation = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_pake_primitive_t primitive = primitive_arg; + psa_key_type_t key_type_pw = key_type_pw_arg; + psa_key_usage_t key_usage_pw = key_usage_pw_arg; + psa_algorithm_t hash_alg = hash_arg; + psa_pake_role_t role = role_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; + psa_status_t expected_error = expected_error_arg; + psa_status_t status; + unsigned char *output_buffer = NULL; + size_t output_len = 0; + + PSA_INIT( ); + + size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE); + ASSERT_ALLOC( output_buffer, buf_size ); + + if( pw_data->len > 0 ) + { + psa_set_key_usage_flags( &attributes, key_usage_pw ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, key_type_pw ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + } + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + PSA_ASSERT( psa_pake_abort( &operation ) ); + + if ( inj_err_type == INJECT_ERR_UNINITIALIZED_ACCESS ) + { + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_password_key( &operation, key ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_set_role( &operation, role ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0, NULL ), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), + expected_error ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + goto exit; + } + + status = psa_pake_setup( &operation, &cipher_suite ); + if (status != PSA_SUCCESS) + { + TEST_EQUAL( status, expected_error ); + goto exit; + } + + if( inj_err_type == INJECT_ERR_DUPLICATE_SETUP ) + { + TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), + expected_error ); + goto exit; + } + + status = psa_pake_set_role( &operation, role); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error ); + goto exit; + } + + if( pw_data->len > 0 ) + { + status = psa_pake_set_password_key( &operation, key ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error ); + goto exit; + } + } + + if ( inj_err_type == INJECT_ERR_INVALID_USER ) + { + TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_ERR_INVALID_PEER ) + { + TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_ERR_SET_USER ) + { + const uint8_t unsupported_id[] = "abcd"; + TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + goto exit; + } + + if ( inj_err_type == INJECT_ERR_SET_PEER ) + { + const uint8_t unsupported_id[] = "abcd"; + TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), + PSA_ERROR_NOT_SUPPORTED ); + goto exit; + } + + const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_KEY_SHARE ); + const size_t size_zk_public = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PUBLIC ); + const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, + PSA_PAKE_STEP_ZK_PROOF ); + + if ( test_input ) + { + if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_UNKNOWN_STEP ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, size_zk_proof ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, size_zk_proof ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + status = psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, size_key_share ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error); + goto exit; + } + + if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) + { + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1 ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) + { + // Just trigger any kind of error. We don't care about the result here + psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1 ); + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + } else { + if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + NULL, 0, NULL ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_UNKNOWN_STEP ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, buf_size, &output_len ), + PSA_ERROR_INVALID_ARGUMENT ); + goto exit; + } + + if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + status = psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, buf_size, &output_len ); + if ( status != PSA_SUCCESS ) + { + TEST_EQUAL( status, expected_error); + goto exit; + } + + TEST_ASSERT( output_len > 0 ); + + if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) + { + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len ), + PSA_ERROR_BUFFER_TOO_SMALL ); + goto exit; + } + + if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) + { + // Just trigger any kind of error. We don't care about the result here + psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len ); + TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + } + +exit: + PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT( psa_pake_abort( &operation ) ); + mbedtls_free( output_buffer ); + PSA_DONE( ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ +void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, + int client_input_first, int inject_error, + data_t *pw_data ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t server = psa_pake_operation_init(); + psa_pake_operation_t client = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_algorithm_t hash_alg = hash_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + PSA_INIT( ); + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + + PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); + PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + + PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); + PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + + PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); + PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, inject_error ); + + if( inject_error == 1 || inject_error == 2 ) + goto exit; + + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, inject_error ); + +exit: + psa_destroy_key( key ); + psa_pake_abort( &server ); + psa_pake_abort( &client ); + PSA_DONE( ); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ +void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, + int derive_alg_arg, data_t *pw_data, + int client_input_first, int inj_err_type_arg ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_operation_t server = psa_pake_operation_init(); + psa_pake_operation_t client = psa_pake_operation_init(); + psa_algorithm_t alg = alg_arg; + psa_algorithm_t hash_alg = hash_arg; + psa_algorithm_t derive_alg = derive_alg_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_key_derivation_operation_t server_derive = + PSA_KEY_DERIVATION_OPERATION_INIT; + psa_key_derivation_operation_t client_derive = + PSA_KEY_DERIVATION_OPERATION_INIT; + ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; + + PSA_INIT( ); + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, + &key ) ); + + psa_pake_cs_set_algorithm( &cipher_suite, alg ); + psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); + psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + + /* Get shared key */ + PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); + PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); + + if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || + PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) + { + PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t*) "", 0) ); + } + + PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); + PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + + PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); + PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + + PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); + PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + + if( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1 ) + { + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + /* First round */ + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 1, 0 ); + + if ( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_2 ) + { + TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), + PSA_ERROR_BAD_STATE ); + TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), + PSA_ERROR_BAD_STATE ); + goto exit; + } + + /* Second round */ + ecjpake_do_round( alg, primitive_arg, &server, &client, + client_input_first, 2, 0 ); + + PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); + PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); + +exit: + psa_key_derivation_abort( &server_derive ); + psa_key_derivation_abort( &client_derive ); + psa_destroy_key( key ); + psa_pake_abort( &server ); + psa_pake_abort( &client ); + PSA_DONE( ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void ecjpake_size_macros( ) +{ + const psa_algorithm_t alg = PSA_ALG_JPAKE; + const size_t bits = 256; + const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits ); + const psa_key_type_t key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( + PSA_ECC_FAMILY_SECP_R1 ); + + // https://armmbed.github.io/mbed-crypto/1.1_PAKE_Extension.0-bet.0/html/pake.html#pake-step-types + /* The output for KEY_SHARE and ZK_PUBLIC is the same as a public key */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + /* The output for ZK_PROOF is the same bitsize as the curve */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_BITS_TO_BYTES( bits ) ); + + /* Input sizes are the same as output sizes */ + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC) ); + TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF) ); + + /* These inequalities will always hold even when other PAKEs are added */ + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_OUTPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_MAX_SIZE ); +} +/* END_CASE */ From 7bb65ad22f221a3a24f82674fe3f698ccfc35ba0 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 18 Nov 2022 18:27:48 +0100 Subject: [PATCH 0869/1574] test: psa_crypto_pake: enhanced ecjpake_setup() - external errors are now checked in the specified point. If the same error happens in another line, then this is not valid and the test fails - fixed some inconsistency in which injected error codes were not taken from the data file. Now all the expected error code are read from the data file - added a couple of defines to shrink the code Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 178 +++++------ .../test_suite_psa_crypto_pake.function | 282 ++++++++---------- 2 files changed, 214 insertions(+), 246 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index fba9e8ee3..9d15ed331 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -1,130 +1,136 @@ PSA PAKE: uninitialized access to psa_pake_operation_t depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid primitive type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive family depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid hash depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: duplicate a valid setup depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":ERR_IN_SET_ROLE:PSA_ERROR_NOT_SUPPORTED PSA PAKE: wrong key type password depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: wrong key usage type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED - -PSA PAKE: set invalid user -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: set invalid peer -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT - -PSA PAKE: set user -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_USER:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: set peer -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_ERR_SET_PEER:PSA_ERROR_NOT_SUPPORTED - -PSA PAKE: empty server password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE - -PSA PAKE: empty client password -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":INJECT_ERR_NONE:PSA_ERROR_BAD_STATE - -PSA PAKE: invalid input -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_EMPTY_IO_BUFFER:0 - -PSA PAKE: unkown input step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_UNKNOWN_STEP:0 - -PSA PAKE: invalid first input step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_INVALID_FIRST_STEP:0 - -PSA PAKE: input buffer too large -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_WRONG_BUFFER_SIZE:0 - -PSA PAKE: valid input operation after a failure -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 - -PSA PAKE: invalid output -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_EMPTY_IO_BUFFER:0 - -PSA PAKE: unkown output step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_UNKNOWN_STEP:0 - -PSA PAKE: invalid first output step -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_INVALID_FIRST_STEP:0 - -PSA PAKE: output buffer too small -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_WRONG_BUFFER_SIZE:0 - -PSA PAKE: valid output operation after a failure -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":INJECT_VALID_OPERATION_AFTER_FAILURE:0 - -PSA PAKE: ecjpake setup client bad password key type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: ecjpake setup client bad password key usage depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":INJECT_ERR_NONE:PSA_ERROR_NOT_PERMITTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED + +PSA PAKE: wrong key usage type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED + +PSA PAKE: ecjpake setup client bad password key type +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set invalid user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set invalid peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: set user +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_SET_USER:PSA_ERROR_NOT_SUPPORTED + +PSA PAKE: set peer +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_SET_PEER:PSA_ERROR_NOT_SUPPORTED + +# NOTE: this test should be enabled once the psa_pake_set_password_key() function +# will reject empty passwords. The expected error code must be adjusted +# accordingly to the code +#PSA PAKE: empty server password +#depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +#ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_BAD_STATE + +# NOTE: this test should be enabled once the psa_pake_set_password_key() function +# will reject empty passwords The expected error code must be adjusted +# accordingly to the code +#PSA PAKE: empty client password +#depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +#ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_BAD_STATE + +PSA PAKE: invalid input +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: unkown input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: invalid first input step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE + +PSA PAKE: input buffer too large +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: valid input operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE + +PSA PAKE: invalid output +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: unkown output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT + +PSA PAKE: invalid first output step +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE + +PSA PAKE: output buffer too small +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_BUFFER_TOO_SMALL + +PSA PAKE: valid output operation after a failure +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE PSA PAKE: ecjpake rounds depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ERR_NONE +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_NONE PSA PAKE: ecjpake rounds, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:INJECT_ERR_NONE +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:ERR_NONE PSA PAKE: ecjpake rounds, early key derivation 1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_1 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 PSA PAKE: ecjpake rounds, early key derivation 2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:INJECT_ANTICIPATE_KEY_DERIVATION_2 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 PSA PAKE: ecjpake no input errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index c378b4932..f8022e4da 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -596,22 +596,57 @@ exit: typedef enum { - INJECT_ERR_NONE = 0, - INJECT_ERR_UNINITIALIZED_ACCESS, - INJECT_ERR_DUPLICATE_SETUP, - INJECT_ERR_INVALID_USER, - INJECT_ERR_INVALID_PEER, - INJECT_ERR_SET_USER, - INJECT_ERR_SET_PEER, - INJECT_EMPTY_IO_BUFFER, - INJECT_UNKNOWN_STEP, - INJECT_INVALID_FIRST_STEP, - INJECT_WRONG_BUFFER_SIZE, - INJECT_VALID_OPERATION_AFTER_FAILURE, - INJECT_ANTICIPATE_KEY_DERIVATION_1, - INJECT_ANTICIPATE_KEY_DERIVATION_2, -} ecjpake_injected_failure_t; + ERR_NONE = 0, + /* errors forced internally in the code */ + ERR_INJECT_UNINITIALIZED_ACCESS, + ERR_INJECT_DUPLICATE_SETUP, + ERR_INJECT_INVALID_USER, + ERR_INJECT_INVALID_PEER, + ERR_INJECT_SET_USER, + ERR_INJECT_SET_PEER, + ERR_INJECT_EMPTY_IO_BUFFER, + ERR_INJECT_UNKNOWN_STEP, + ERR_INJECT_INVALID_FIRST_STEP, + ERR_INJECT_WRONG_BUFFER_SIZE, + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE, + ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1, + ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2, + /* erros issued from the .data file */ + ERR_IN_SETUP, + ERR_IN_SET_ROLE, + ERR_IN_SET_PASSWORD_KEY, + ERR_IN_INPUT, + ERR_IN_OUTPUT, +} ecjpake_error_stage_t; +/* + * This check is used for errors issued through wrong input parameters. The + * check is always performed because, in case of all valid parameters, the + * setup function can go on + */ +#define SETUP_ALWAYS_CHECK_STEP( test_function, this_check_err_stage ) \ + status = test_function; \ + if( err_stage != this_check_err_stage ) \ + { \ + PSA_ASSERT( status ); \ + } \ + else \ + { \ + TEST_EQUAL( status, expected_error ); \ + goto exit; \ + } + +/* + * This check is used for errors injected explicitly. The check is conditional + * because once the error is triggered, the setup function cannot proceed so + * it would not be possible to check following steps + */ +#define SETUP_CONDITIONAL_CHECK_STEP( test_function, this_check_err_stage ) \ + if( err_stage == this_check_err_stage ) \ + { \ + TEST_EQUAL( test_function, expected_error ); \ + goto exit; \ + } /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -623,7 +658,7 @@ typedef enum void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, int primitive_arg, int hash_arg, int role_arg, int test_input, data_t *pw_data, - int inj_err_type_arg, + int err_stage_arg, int expected_error_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); @@ -636,16 +671,17 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, psa_pake_role_t role = role_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; + ecjpake_error_stage_t err_stage = err_stage_arg; psa_status_t expected_error = expected_error_arg; psa_status_t status; unsigned char *output_buffer = NULL; size_t output_len = 0; + const uint8_t unsupp_id[] = "abcd"; PSA_INIT( ); - size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, - PSA_PAKE_STEP_KEY_SHARE); + size_t buf_size = PSA_PAKE_OUTPUT_SIZE( alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE ); ASSERT_ALLOC( output_buffer, buf_size ); if( pw_data->len > 0 ) @@ -663,7 +699,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, PSA_ASSERT( psa_pake_abort( &operation ) ); - if ( inj_err_type == INJECT_ERR_UNINITIALIZED_ACCESS ) + if ( err_stage == ERR_INJECT_UNINITIALIZED_ACCESS ) { TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), expected_error ); @@ -687,66 +723,29 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, goto exit; } - status = psa_pake_setup( &operation, &cipher_suite ); - if (status != PSA_SUCCESS) - { - TEST_EQUAL( status, expected_error ); - goto exit; - } + SETUP_ALWAYS_CHECK_STEP( psa_pake_setup( &operation, &cipher_suite ), + ERR_IN_SETUP ); - if( inj_err_type == INJECT_ERR_DUPLICATE_SETUP ) - { - TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), - expected_error ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_setup( &operation, &cipher_suite ), + ERR_INJECT_DUPLICATE_SETUP); - status = psa_pake_set_role( &operation, role); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error ); - goto exit; - } + SETUP_ALWAYS_CHECK_STEP( psa_pake_set_role( &operation, role), + ERR_IN_SET_ROLE ); - if( pw_data->len > 0 ) - { - status = psa_pake_set_password_key( &operation, key ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error ); - goto exit; - } - } + SETUP_ALWAYS_CHECK_STEP( psa_pake_set_password_key( &operation, key ), + ERR_IN_SET_PASSWORD_KEY ); - if ( inj_err_type == INJECT_ERR_INVALID_USER ) - { - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_user( &operation, NULL, 0 ), + ERR_INJECT_INVALID_USER ); - if ( inj_err_type == INJECT_ERR_INVALID_PEER ) - { - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_peer( &operation, NULL, 0 ), + ERR_INJECT_INVALID_PEER ); - if ( inj_err_type == INJECT_ERR_SET_USER ) - { - const uint8_t unsupported_id[] = "abcd"; - TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_user( &operation, unsupp_id, 4 ), + ERR_INJECT_SET_USER ); - if ( inj_err_type == INJECT_ERR_SET_PEER ) - { - const uint8_t unsupported_id[] = "abcd"; - TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_peer( &operation, unsupp_id, 4 ), + ERR_INJECT_SET_PEER ); const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, PSA_PAKE_STEP_KEY_SHARE ); @@ -757,108 +756,71 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, if ( test_input ) { - if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, + PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), + ERR_INJECT_EMPTY_IO_BUFFER ); - if ( inj_err_type == INJECT_UNKNOWN_STEP ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, + PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, size_zk_proof ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + ERR_INJECT_UNKNOWN_STEP ); - if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, + PSA_PAKE_STEP_ZK_PROOF, output_buffer, size_zk_proof ), - PSA_ERROR_BAD_STATE ); - goto exit; - } + ERR_INJECT_INVALID_FIRST_STEP ) - status = psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, size_key_share ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error); - goto exit; - } + SETUP_ALWAYS_CHECK_STEP( psa_pake_input( &operation, + PSA_PAKE_STEP_KEY_SHARE, + output_buffer, size_key_share ), + ERR_IN_INPUT ); - if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, + PSA_PAKE_STEP_ZK_PUBLIC, output_buffer, size_zk_public + 1 ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + ERR_INJECT_WRONG_BUFFER_SIZE ); - if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) - { - // Just trigger any kind of error. We don't care about the result here - psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public ), - PSA_ERROR_BAD_STATE ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( + ( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1 ), + psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public ) ), + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE ); } else { - if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, + PSA_PAKE_STEP_ZK_PROOF, NULL, 0, NULL ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + ERR_INJECT_EMPTY_IO_BUFFER ); - if ( inj_err_type == INJECT_UNKNOWN_STEP ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, + PSA_PAKE_STEP_ZK_PROOF + 10, output_buffer, buf_size, &output_len ), - PSA_ERROR_INVALID_ARGUMENT ); - goto exit; - } + ERR_INJECT_UNKNOWN_STEP ); - if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, + PSA_PAKE_STEP_ZK_PROOF, output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); - goto exit; - } + ERR_INJECT_INVALID_FIRST_STEP ); - status = psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, buf_size, &output_len ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error); - goto exit; - } + SETUP_ALWAYS_CHECK_STEP( psa_pake_output( &operation, + PSA_PAKE_STEP_KEY_SHARE, + output_buffer, buf_size, &output_len ), + ERR_IN_OUTPUT ); TEST_ASSERT( output_len > 0 ); - if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ), - PSA_ERROR_BUFFER_TOO_SMALL ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, + PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, + &output_len ), + ERR_INJECT_WRONG_BUFFER_SIZE ); - if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) - { - // Just trigger any kind of error. We don't care about the result here - psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); - goto exit; - } + SETUP_CONDITIONAL_CHECK_STEP( + ( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len ), + psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len ) ), + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE ); } exit: @@ -924,7 +886,7 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, - int client_input_first, int inj_err_type_arg ) + int client_input_first, int err_stage_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -938,7 +900,7 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t client_derive = PSA_KEY_DERIVATION_OPERATION_INIT; - ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; + ecjpake_error_stage_t err_stage = err_stage_arg; PSA_INIT( ); @@ -976,7 +938,7 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); - if( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1 ) + if( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 ) { TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); @@ -989,7 +951,7 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, ecjpake_do_round( alg, primitive_arg, &server, &client, client_input_first, 1, 0 ); - if ( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_2 ) + if ( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 ) { TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), PSA_ERROR_BAD_STATE ); From 6d4e75f0c68fa9b86a08cc0d7ad98c20d5dd2ac5 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 14:56:56 +0100 Subject: [PATCH 0870/1574] psa_crypto_pake: initialize psa_status_t stack variables Signed-off-by: Valerio Setti --- library/psa_crypto_pake.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index 431057ca4..da66dae7d 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -197,7 +197,7 @@ static psa_status_t mbedtls_ecjpake_to_psa_error( int ret ) psa_status_t psa_pake_setup( psa_pake_operation_t *operation, const psa_pake_cipher_suite_t *cipher_suite) { - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; /* A context must be freshly initialized before it can be set up. */ if( operation->alg != PSA_ALG_NONE ) @@ -322,7 +322,7 @@ psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, const uint8_t *user_id, size_t user_id_len ) { - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) @@ -348,7 +348,7 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, const uint8_t *peer_id, size_t peer_id_len ) { - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) @@ -373,7 +373,7 @@ error: psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, psa_pake_role_t role ) { - psa_status_t status; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; if( operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_SETUP ) From e5d7864aa0e67c7448439a1b120143bc72d80e14 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 15:17:54 +0100 Subject: [PATCH 0871/1574] test: psa_pake: improved description of macros used in ecjpake_setup() Signed-off-by: Valerio Setti --- .../test_suite_psa_crypto_pake.function | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index f8022e4da..52c7a7ab0 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -620,9 +620,14 @@ typedef enum } ecjpake_error_stage_t; /* - * This check is used for errors issued through wrong input parameters. The - * check is always performed because, in case of all valid parameters, the - * setup function can go on + * This check is used for functions that might either succeed or fail depending + * on the parameters that are passed in from the *.data file: + * - in case of success following functions depend on the current one + * - in case of failure the test is always terminated. There are two options + * here + * - terminated successfully if this exact error was expected at this stage + * - terminated with failure otherwise (either no error was expected at this + * stage or a different error code was expected) */ #define SETUP_ALWAYS_CHECK_STEP( test_function, this_check_err_stage ) \ status = test_function; \ @@ -637,9 +642,14 @@ typedef enum } /* - * This check is used for errors injected explicitly. The check is conditional - * because once the error is triggered, the setup function cannot proceed so - * it would not be possible to check following steps + * This check is used for failures that are injected at code level. There's only + * 1 input parameter that is relevant in this case and it's the stage at which + * the error should be injected. + * The check is conditional in this case because, once the error is triggered, + * the pake's context structure is compromised and the setup function cannot + * proceed further. As a consequence the test is terminated. + * The test succeeds if the returned error is exactly the expected one, + * otherwise it fails. */ #define SETUP_CONDITIONAL_CHECK_STEP( test_function, this_check_err_stage ) \ if( err_stage == this_check_err_stage ) \ From e65a41f2784b7fa0e85480d2a58961c1166abd2f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 15:38:29 +0100 Subject: [PATCH 0872/1574] test: psa_pake: fixes in ecjpake_setup() Both changes concern the ERR_INJECT_UNINITIALIZED_ACCESS case: - removed unnecessary psa_pake_abort() - added psa_pake_get_implicit_key() Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.function | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 52c7a7ab0..845b38f70 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -687,6 +687,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, unsigned char *output_buffer = NULL; size_t output_len = 0; const uint8_t unsupp_id[] = "abcd"; + psa_key_derivation_operation_t key_derivation; PSA_INIT( ); @@ -713,23 +714,20 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, { TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); TEST_EQUAL( psa_pake_set_password_key( &operation, key ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); TEST_EQUAL( psa_pake_set_role( &operation, role ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0, NULL ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0 ), + expected_error ); + TEST_EQUAL( psa_pake_get_implicit_key( &operation, &key_derivation ), expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); goto exit; } From ac3ba95ee43ed95b2e73328cf7939d1bf9b9e827 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 21 Nov 2022 16:22:29 +0100 Subject: [PATCH 0873/1574] test: psa_pake: fix data file for ecjpake_setup() Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 25 ++++---------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index 9d15ed331..3a477cd39 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -1,6 +1,6 @@ PSA PAKE: uninitialized access to psa_pake_operation_t depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 @@ -30,21 +30,13 @@ PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":ERR_IN_SET_ROLE:PSA_ERROR_NOT_SUPPORTED -PSA PAKE: wrong key type password +PSA PAKE: wrong password key type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT -PSA PAKE: ecjpake setup client bad password key usage +PSA PAKE: wrong password key usage depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED - -PSA PAKE: wrong key usage type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:0:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED - -PSA PAKE: ecjpake setup client bad password key type -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_DERIVE:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED PSA PAKE: set invalid user depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 @@ -65,17 +57,10 @@ ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_ # NOTE: this test should be enabled once the psa_pake_set_password_key() function # will reject empty passwords. The expected error code must be adjusted # accordingly to the code -#PSA PAKE: empty server password +#PSA PAKE: empty password #depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 #ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_BAD_STATE -# NOTE: this test should be enabled once the psa_pake_set_password_key() function -# will reject empty passwords The expected error code must be adjusted -# accordingly to the code -#PSA PAKE: empty client password -#depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -#ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_CLIENT:0:"":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_BAD_STATE - PSA PAKE: invalid input depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT From 40323c5d51337c5b4f61d9dd99fa86e64d608e0b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 10:38:49 +0100 Subject: [PATCH 0874/1574] test: psa_pake: improved ecjpake_do_round() test function Now it's possible to inject an error in every single step of the key exchange process. Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 92 ++- .../test_suite_psa_crypto_pake.function | 581 +++++++----------- 2 files changed, 299 insertions(+), 374 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index 3a477cd39..88a634ff2 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -101,61 +101,105 @@ PSA PAKE: valid output operation after a failure depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE -PSA PAKE: ecjpake rounds +PSA PAKE: check rounds w/o forced errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_NONE -PSA PAKE: ecjpake rounds, client input first +PSA PAKE: check rounds w/o forced errors, TLS12_PRF +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"abcdef":0:ERR_NONE + +PSA PAKE: check rounds w/o forced errors, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:ERR_NONE -PSA PAKE: ecjpake rounds, early key derivation 1 +PSA PAKE: force early key derivation 1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 -PSA PAKE: ecjpake rounds, early key derivation 2 +PSA PAKE: force early key derivation 2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 -PSA PAKE: ecjpake no input errors +PSA PAKE: no injected errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_NONE:PSA_SUCCESS -PSA PAKE: ecjpake no input errors, client input first +PSA PAKE: no injected errors, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:0:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:"abcdef":ERR_NONE:PSA_SUCCESS -PSA PAKE: ecjpake inject input errors, first round client +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:1:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, first round client, client input first +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:1:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, first round server +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:2:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, first round server, client input first +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:2:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, second round client +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:3:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, second round client, client input first +PSA PAKE: inject ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:3:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, second round server +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:4:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1:PSA_ERROR_DATA_INVALID -PSA PAKE: ecjpake inject input errors, second round server, client input first +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:1:4:"abcdef" +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2 +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_KEY_SHARE +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_KEY_SHARE:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PROOF +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PROOF:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_KEY_SHARE +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_KEY_SHARE:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC:PSA_ERROR_DATA_INVALID + +PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PROOF +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PROOF:PSA_ERROR_DATA_INVALID PSA PAKE: ecjpake size macros depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 845b38f70..8d83019b5 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -3,12 +3,88 @@ #include "psa/crypto.h" +typedef enum +{ + ERR_NONE = 0, + /* errors forced internally in the code */ + ERR_INJECT_UNINITIALIZED_ACCESS, + ERR_INJECT_DUPLICATE_SETUP, + ERR_INJECT_INVALID_USER, + ERR_INJECT_INVALID_PEER, + ERR_INJECT_SET_USER, + ERR_INJECT_SET_PEER, + ERR_INJECT_EMPTY_IO_BUFFER, + ERR_INJECT_UNKNOWN_STEP, + ERR_INJECT_INVALID_FIRST_STEP, + ERR_INJECT_WRONG_BUFFER_SIZE, + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE, + ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1, + ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2, + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1, + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1, + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1, + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2, + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2, + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2, + ERR_INJECT_ROUND2_CLIENT_KEY_SHARE, + ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC, + ERR_INJECT_ROUND2_CLIENT_ZK_PROOF, + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1, + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1, + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1, + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2, + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2, + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2, + ERR_INJECT_ROUND2_SERVER_KEY_SHARE, + ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC, + ERR_INJECT_ROUND2_SERVER_ZK_PROOF, + /* erros issued from the .data file */ + ERR_IN_SETUP, + ERR_IN_SET_ROLE, + ERR_IN_SET_PASSWORD_KEY, + ERR_IN_INPUT, + ERR_IN_OUTPUT, +} ecjpake_error_stage_t; + +typedef enum +{ + PAKE_ROUND_ONE, + PAKE_ROUND_TWO +} pake_round_t; + +/* Inject an error on the specified buffer ONLY it this is the correct stage */ +#define DO_ROUND_CONDITIONAL_INJECT( this_stage, buf ) \ + if ( this_stage == err_stage ) \ + { \ + *( buf + 7) ^= 1; \ + *( buf + 8 ) ^= 1; \ + } + +#define DO_ROUND_UPDATE_OFFSETS( main_buf_offset, step_offset, step_size ) \ + { \ + step_offset = main_buf_offset; \ + main_buf_offset += step_size; \ + } + +#define DO_ROUND_CHECK_FAILURE( ) \ + if( err_stage != ERR_NONE && status != PSA_SUCCESS ) \ + { \ + TEST_EQUAL( status, expected_error_arg ); \ + break; \ + } \ + else \ + { \ + TEST_EQUAL( status, PSA_SUCCESS ); \ + } + #if defined(PSA_WANT_ALG_JPAKE) static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, psa_pake_operation_t *server, psa_pake_operation_t *client, int client_input_first, - int round, int inject_error ) + pake_round_t round, + ecjpake_error_stage_t err_stage, + int expected_error_arg ) { unsigned char *buffer0 = NULL, *buffer1 = NULL; size_t buffer_length = ( @@ -38,7 +114,6 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, size_t c_x1_pk_off, c_x2_pk_off, c_x2s_pk_off; size_t c_x1_pr_len, c_x2_pr_len, c_x2s_pr_len; size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; - psa_status_t expected_status = PSA_SUCCESS; psa_status_t status; ASSERT_ALLOC( buffer0, buffer_length ); @@ -46,51 +121,61 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, switch( round ) { - case 1: + case PAKE_ROUND_ONE: /* Server first round Output */ PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g1_len ) ); TEST_EQUAL( s_g1_len, expected_size_key_share ); - s_g1_off = buffer0_off; - buffer0_off += s_g1_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_g1_off, s_g1_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pk_len ) ); TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); - s_x1_pk_off = buffer0_off; - buffer0_off += s_x1_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x1_pk_off, s_x1_pk_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x1_pr_len ) ); TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); - s_x1_pr_off = buffer0_off; - buffer0_off += s_x1_pr_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x1_pr_off, s_x1_pr_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, buffer0 + buffer0_off, 512 - buffer0_off, &s_g2_len ) ); TEST_EQUAL( s_g2_len, expected_size_key_share ); - s_g2_off = buffer0_off; - buffer0_off += s_g2_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_g2_off, s_g2_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pk_len ) ); TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); - s_x2_pk_off = buffer0_off; - buffer0_off += s_x2_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2_pk_off, s_x2_pk_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2_pr_len ) ); TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); - s_x2_pr_off = buffer0_off; - buffer0_off += s_x2_pr_len; - - if( inject_error == 1 ) - { - buffer0[s_x1_pr_off + 8] ^= 1; - buffer0[s_x2_pr_off + 7] ^= 1; - expected_status = PSA_ERROR_DATA_INVALID; - } + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2_pr_off, s_x2_pr_len ); /* * When injecting errors in inputs, the implementation is @@ -99,90 +184,44 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, * sequence, if no error appears then, this will be treated * as an error. */ - if( client_input_first == 1 ) { /* Client first round Input */ status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_g1_off, s_g1_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x1_pk_off, s_x1_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x1_pr_off, s_x1_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_g2_off, s_g2_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x2_pk_off, s_x2_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x2_pr_off, s_x2_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 1 ) + if( ( err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1 ) && + ( err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2 ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } } /* Client first round Output */ @@ -190,211 +229,131 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, buffer1 + buffer1_off, 512 - buffer1_off, &c_g1_len ) ); TEST_EQUAL( c_g1_len, expected_size_key_share ); - c_g1_off = buffer1_off; - buffer1_off += c_g1_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_g1_off, c_g1_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pk_len ) ); TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); - c_x1_pk_off = buffer1_off; - buffer1_off += c_x1_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x1_pk_off, c_x1_pk_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x1_pr_len ) ); TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); - c_x1_pr_off = buffer1_off; - buffer1_off += c_x1_pr_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x1_pr_off, c_x1_pr_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, buffer1 + buffer1_off, 512 - buffer1_off, &c_g2_len ) ); TEST_EQUAL( c_g2_len, expected_size_key_share ); - c_g2_off = buffer1_off; - buffer1_off += c_g2_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_g2_off, c_g2_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pk_len ) ); TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); - c_x2_pk_off = buffer1_off; - buffer1_off += c_x2_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2_pk_off, c_x2_pk_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2_pr_len ) ); TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); - c_x2_pr_off = buffer1_off; - buffer1_off += c_x2_pr_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2_pr_off, buffer1_off ); if( client_input_first == 0 ) { /* Client first round Input */ status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_g1_off, s_g1_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x1_pk_off, s_x1_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x1_pr_off, s_x1_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_g2_off, s_g2_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x2_pk_off, s_x2_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x2_pr_off, s_x2_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 1 ) + if( ( err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1 ) && + ( err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2 ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); - } - - if( inject_error == 2 ) - { - buffer1[c_x1_pr_off + 12] ^= 1; - buffer1[c_x2_pr_off + 7] ^= 1; - expected_status = PSA_ERROR_DATA_INVALID; + } } /* Server first round Input */ status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, buffer1 + c_g1_off, c_g1_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + c_x1_pk_off, c_x1_pk_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, buffer1 + c_x1_pr_off, c_x1_pr_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, buffer1 + c_g2_off, c_g2_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + c_x2_pk_off, c_x2_pk_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, buffer1 + c_x2_pr_off, c_x2_pr_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 2 ) + if( ( err_stage >= ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1 ) && + ( err_stage <= ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2 ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } break; - case 2: + case PAKE_ROUND_TWO: /* Server second round Output */ buffer0_off = 0; @@ -402,71 +361,52 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, buffer0 + buffer0_off, 512 - buffer0_off, &s_a_len ) ); TEST_EQUAL( s_a_len, expected_size_key_share ); - s_a_off = buffer0_off; - buffer0_off += s_a_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_SERVER_KEY_SHARE, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_a_off, s_a_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pk_len ) ); TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); - s_x2s_pk_off = buffer0_off; - buffer0_off += s_x2s_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2s_pk_off, s_x2s_pk_len ); + PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, buffer0 + buffer0_off, 512 - buffer0_off, &s_x2s_pr_len ) ); TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); - s_x2s_pr_off = buffer0_off; - buffer0_off += s_x2s_pr_len; - - if( inject_error == 3 ) - { - buffer0[s_x2s_pk_off + 12] += 0x33; - expected_status = PSA_ERROR_DATA_INVALID; - } + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_SERVER_ZK_PROOF, + buffer0 + buffer0_off ); + DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2s_pr_off, s_x2s_pr_len ); if( client_input_first == 1 ) { /* Client second round Input */ status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_a_off, s_a_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x2s_pk_off, s_x2s_pk_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x2s_pr_off, s_x2s_pr_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 3 ) + if( ( err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE ) && + ( err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } } /* Client second round Output */ @@ -476,113 +416,73 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, buffer1 + buffer1_off, 512 - buffer1_off, &c_a_len ) ); TEST_EQUAL( c_a_len, expected_size_key_share ); - c_a_off = buffer1_off; - buffer1_off += c_a_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_CLIENT_KEY_SHARE, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_a_off, c_a_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pk_len ) ); TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); - c_x2s_pk_off = buffer1_off; - buffer1_off += c_x2s_pk_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2s_pk_off, c_x2s_pk_len ); + PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, buffer1 + buffer1_off, 512 - buffer1_off, &c_x2s_pr_len ) ); TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); - c_x2s_pr_off = buffer1_off; - buffer1_off += c_x2s_pr_len; + DO_ROUND_CONDITIONAL_INJECT( + ERR_INJECT_ROUND2_CLIENT_ZK_PROOF, + buffer1 + buffer1_off ); + DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2s_pr_off, c_x2s_pr_len ); if( client_input_first == 0 ) { /* Client second round Input */ status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, buffer0 + s_a_off, s_a_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, buffer0 + s_x2s_pk_off, s_x2s_pk_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, buffer0 + s_x2s_pr_off, s_x2s_pr_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 3 ) + if( ( err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE ) && + ( err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); - } - - if( inject_error == 4 ) - { - buffer1[c_x2s_pk_off + 7] += 0x28; - expected_status = PSA_ERROR_DATA_INVALID; + } } /* Server second round Input */ status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, buffer1 + c_a_off, c_a_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, buffer1 + c_x2s_pk_off, c_x2s_pk_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, buffer1 + c_x2s_pr_off, c_x2s_pr_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); - break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); - } + DO_ROUND_CHECK_FAILURE( ); /* Error didn't trigger, make test fail */ - if( inject_error == 4 ) + if( ( err_stage >= ERR_INJECT_ROUND2_CLIENT_KEY_SHARE ) && + ( err_stage <= ERR_INJECT_ROUND2_CLIENT_ZK_PROOF ) ) + { TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + } break; @@ -594,31 +494,6 @@ exit: } #endif /* PSA_WANT_ALG_JPAKE */ -typedef enum -{ - ERR_NONE = 0, - /* errors forced internally in the code */ - ERR_INJECT_UNINITIALIZED_ACCESS, - ERR_INJECT_DUPLICATE_SETUP, - ERR_INJECT_INVALID_USER, - ERR_INJECT_INVALID_PEER, - ERR_INJECT_SET_USER, - ERR_INJECT_SET_PEER, - ERR_INJECT_EMPTY_IO_BUFFER, - ERR_INJECT_UNKNOWN_STEP, - ERR_INJECT_INVALID_FIRST_STEP, - ERR_INJECT_WRONG_BUFFER_SIZE, - ERR_INJECT_VALID_OPERATION_AFTER_FAILURE, - ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1, - ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2, - /* erros issued from the .data file */ - ERR_IN_SETUP, - ERR_IN_SET_ROLE, - ERR_IN_SET_PASSWORD_KEY, - ERR_IN_INPUT, - ERR_IN_OUTPUT, -} ecjpake_error_stage_t; - /* * This check is used for functions that might either succeed or fail depending * on the parameters that are passed in from the *.data file: @@ -723,7 +598,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0, NULL ), expected_error ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, + TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0 ), expected_error ); TEST_EQUAL( psa_pake_get_implicit_key( &operation, &key_derivation ), @@ -841,8 +716,10 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, - int client_input_first, int inject_error, - data_t *pw_data ) + int client_input_first, + data_t *pw_data, + int err_stage_arg, + int expected_error_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -851,6 +728,7 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, psa_algorithm_t hash_alg = hash_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + ecjpake_error_stage_t err_stage = err_stage_arg; PSA_INIT( ); @@ -864,7 +742,6 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); psa_pake_cs_set_hash( &cipher_suite, hash_alg ); - PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); @@ -875,13 +752,15 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, inject_error ); + client_input_first, PAKE_ROUND_ONE, + err_stage, expected_error_arg ); - if( inject_error == 1 || inject_error == 2 ) + if( err_stage != ERR_NONE ) goto exit; ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, inject_error ); + client_input_first, PAKE_ROUND_TWO, + err_stage, expected_error_arg ); exit: psa_destroy_key( key ); @@ -957,7 +836,8 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, /* First round */ ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, 0 ); + client_input_first, PAKE_ROUND_ONE, + ERR_NONE, PSA_SUCCESS ); if ( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 ) { @@ -970,7 +850,8 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, /* Second round */ ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, 0 ); + client_input_first, PAKE_ROUND_TWO, + ERR_NONE, PSA_SUCCESS ); PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); From b697745d14e5563cee27f31d8d6d82e3d00c1475 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 11:29:02 +0100 Subject: [PATCH 0875/1574] test: psa_pake: fix erroneously duplicated tests Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index 88a634ff2..c8e814602 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -189,17 +189,17 @@ PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PROOF depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PROOF:PSA_ERROR_DATA_INVALID -PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_KEY_SHARE +PSA PAKE: inject ERR_INJECT_ROUND2_SERVER_KEY_SHARE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_KEY_SHARE:PSA_ERROR_DATA_INVALID +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_SERVER_KEY_SHARE:PSA_ERROR_DATA_INVALID -PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC +PSA PAKE: inject ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC:PSA_ERROR_DATA_INVALID +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC:PSA_ERROR_DATA_INVALID -PSA PAKE: inject ERR_INJECT_ROUND2_CLIENT_ZK_PROOF +PSA PAKE: inject ERR_INJECT_ROUND2_SERVER_ZK_PROOF depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_CLIENT_ZK_PROOF:PSA_ERROR_DATA_INVALID +ecjpake_rounds_inject:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:0:"abcdef":ERR_INJECT_ROUND2_SERVER_ZK_PROOF:PSA_ERROR_DATA_INVALID PSA PAKE: ecjpake size macros depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 From b9ef1c2f03381892fecda63e1007621bacea8b0b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 11:31:18 +0100 Subject: [PATCH 0876/1574] test: psa_pake: fix error inject macro in ecjpake_do_round() Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.function | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 8d83019b5..f1cbce55f 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -52,12 +52,15 @@ typedef enum PAKE_ROUND_TWO } pake_round_t; -/* Inject an error on the specified buffer ONLY it this is the correct stage */ +/* + * Inject an error on the specified buffer ONLY it this is the correct stage. + * Offset 7 is arbitrary, but chosen because it's "in the middle" of the part + * we're corrupting. + */ #define DO_ROUND_CONDITIONAL_INJECT( this_stage, buf ) \ if ( this_stage == err_stage ) \ { \ *( buf + 7) ^= 1; \ - *( buf + 8 ) ^= 1; \ } #define DO_ROUND_UPDATE_OFFSETS( main_buf_offset, step_offset, step_size ) \ From db4736a4cac07c7b1b21a5fccf9c6d2fe0aab313 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 12:24:21 +0100 Subject: [PATCH 0877/1574] test: psa_pake: remove empty password test Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 55 ++++++++----------- .../test_suite_psa_crypto_pake.function | 16 +++--- 2 files changed, 31 insertions(+), 40 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index c8e814602..80b22f92e 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -1,105 +1,98 @@ PSA PAKE: uninitialized access to psa_pake_operation_t depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_UNINITIALIZED_ACCESS:PSA_ERROR_BAD_STATE PSA PAKE: invalid alg depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_SHA_256:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SETUP:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid primitive type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_DH, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive family depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_K1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid primitive bits depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 128):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid hash depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_1:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SETUP:PSA_ERROR_NOT_SUPPORTED PSA PAKE: duplicate a valid setup depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_DUPLICATE_SETUP:PSA_ERROR_BAD_STATE PSA PAKE: ecjpake setup invalid role NONE depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:"abcd":ERR_IN_SET_ROLE:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_NONE:0:ERR_IN_SET_ROLE:PSA_ERROR_NOT_SUPPORTED PSA PAKE: wrong password key type depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_HMAC:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: wrong password key usage depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_ENCRYPT:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_NOT_PERMITTED PSA PAKE: set invalid user depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_INVALID_USER:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: set invalid peer depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_INVALID_PEER:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: set user depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_SET_USER:PSA_ERROR_NOT_SUPPORTED +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_SET_USER:PSA_ERROR_NOT_SUPPORTED PSA PAKE: set peer depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_SET_PEER:PSA_ERROR_NOT_SUPPORTED - -# NOTE: this test should be enabled once the psa_pake_set_password_key() function -# will reject empty passwords. The expected error code must be adjusted -# accordingly to the code -#PSA PAKE: empty password -#depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -#ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"":ERR_IN_SET_PASSWORD_KEY:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_SET_PEER:PSA_ERROR_NOT_SUPPORTED PSA PAKE: invalid input depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: unkown input step depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid first input step depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE PSA PAKE: input buffer too large depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: valid input operation after a failure depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:"abcd":ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:1:ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE PSA PAKE: invalid output depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_EMPTY_IO_BUFFER:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: unkown output step depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_UNKNOWN_STEP:PSA_ERROR_INVALID_ARGUMENT PSA PAKE: invalid first output step depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_INVALID_FIRST_STEP:PSA_ERROR_BAD_STATE PSA PAKE: output buffer too small depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_BUFFER_TOO_SMALL +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_WRONG_BUFFER_SIZE:PSA_ERROR_BUFFER_TOO_SMALL PSA PAKE: valid output operation after a failure depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 -ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:"abcd":ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE +ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_PAKE_ROLE_SERVER:0:ERR_INJECT_VALID_OPERATION_AFTER_FAILURE:PSA_ERROR_BAD_STATE PSA PAKE: check rounds w/o forced errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index f1cbce55f..77e8ed694 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -545,7 +545,7 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, int primitive_arg, int hash_arg, int role_arg, - int test_input, data_t *pw_data, + int test_input, int err_stage_arg, int expected_error_arg) { @@ -565,6 +565,7 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, unsigned char *output_buffer = NULL; size_t output_len = 0; const uint8_t unsupp_id[] = "abcd"; + const uint8_t password[] = "abcd"; psa_key_derivation_operation_t key_derivation; PSA_INIT( ); @@ -573,14 +574,11 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, PSA_PAKE_STEP_KEY_SHARE ); ASSERT_ALLOC( output_buffer, buf_size ); - if( pw_data->len > 0 ) - { - psa_set_key_usage_flags( &attributes, key_usage_pw ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type_pw ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); - } + psa_set_key_usage_flags( &attributes, key_usage_pw ); + psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type( &attributes, key_type_pw ); + PSA_ASSERT( psa_import_key( &attributes, password, sizeof( password ), + &key ) ); psa_pake_cs_set_algorithm( &cipher_suite, alg ); psa_pake_cs_set_primitive( &cipher_suite, primitive ); From e0d41de82231ae7a613c640b20c20ec88902ce0a Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 15:47:27 +0100 Subject: [PATCH 0878/1574] test: psa_pake: add missing initialization in ecjpake_setup() Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.function | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 77e8ed694..13c9bcb07 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -566,7 +566,8 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, size_t output_len = 0; const uint8_t unsupp_id[] = "abcd"; const uint8_t password[] = "abcd"; - psa_key_derivation_operation_t key_derivation; + psa_key_derivation_operation_t key_derivation = + PSA_KEY_DERIVATION_OPERATION_INIT; PSA_INIT( ); From 8c18baf8c1ef8c2ed24981e2298d0e730eaa1e1b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 18:15:55 +0000 Subject: [PATCH 0879/1574] Add test for unaligned buffers Signed-off-by: Dave Rodgman --- tests/suites/test_suite_common.function | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function index 17eae27c4..8412e60f3 100644 --- a/tests/suites/test_suite_common.function +++ b/tests/suites/test_suite_common.function @@ -18,10 +18,10 @@ void mbedtls_xor( int len ) { size_t n = (size_t) len; unsigned char *a = NULL, *b = NULL, *r1 = NULL, *r2 = NULL; - ASSERT_ALLOC( a, n ); - ASSERT_ALLOC( b, n ); - ASSERT_ALLOC( r1, n ); - ASSERT_ALLOC( r2, n ); + ASSERT_ALLOC( a, n + 1 ); + ASSERT_ALLOC( b, n + 1 ); + ASSERT_ALLOC( r1, n + 1 ); + ASSERT_ALLOC( r2, n + 1 ); /* Test non-overlapping */ fill_arrays( a, b, r1, r2, n ); @@ -67,6 +67,15 @@ void mbedtls_xor( int len ) } mbedtls_xor( r2, r2, r2, n ); ASSERT_COMPARE( r1, n, r2, n ); + + /* Test non-word-aligned buffers */ + fill_arrays( a + 1, b + 1, r1 + 1, r2 + 1, n ); + for ( size_t i = 0; i < n; i++ ) + { + r1[i + 1] = a[i + 1] ^ b[i + 1]; + } + mbedtls_xor( r2 + 1, a + 1, b + 1, n ); + ASSERT_COMPARE( r1 + 1, n, r2 + 1, n ); exit: if ( a != NULL ) mbedtls_free( a ); if ( a != NULL ) mbedtls_free( b ); From 728b142f40098fac1f4e2d54ff16023ff3171a7d Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 22 Nov 2022 19:47:24 +0100 Subject: [PATCH 0880/1574] test: psa_pake: port changes from cd356c3 Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 14 +++++++++----- tests/suites/test_suite_psa_crypto_pake.function | 6 +++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index 80b22f92e..4dd1598c2 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -96,23 +96,27 @@ ecjpake_setup:PSA_ALG_JPAKE:PSA_KEY_TYPE_PASSWORD:PSA_KEY_USAGE_DERIVE:PSA_PAKE_ PSA PAKE: check rounds w/o forced errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_NONE +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0:ERR_NONE PSA PAKE: check rounds w/o forced errors, TLS12_PRF depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"abcdef":0:ERR_NONE +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"abcdef":0:0:ERR_NONE + +PSA PAKE: check rounds, key is destroyed after being passed to set_password_key +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:1:ERR_NONE PSA PAKE: check rounds w/o forced errors, client input first depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:ERR_NONE +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":1:0:ERR_NONE PSA PAKE: force early key derivation 1 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 PSA PAKE: force early key derivation 2 depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 +ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0:ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 PSA PAKE: no injected errors depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256 diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 13c9bcb07..4f000c13a 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -775,7 +775,8 @@ exit: /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, int derive_alg_arg, data_t *pw_data, - int client_input_first, int err_stage_arg ) + int client_input_first, int destroy_key, + int err_stage_arg ) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -827,6 +828,9 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + if( destroy_key == 1 ) + psa_destroy_key( key ); + if( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 ) { TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), From fdd967ebdc53c1d3947f3fc145087579e32011ff Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 22 Nov 2022 18:55:17 +0000 Subject: [PATCH 0881/1574] Detect support for unaligned memory access Signed-off-by: Dave Rodgman --- library/common.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/library/common.h b/library/common.h index d1af48eb2..bcb99f752 100644 --- a/library/common.h +++ b/library/common.h @@ -69,6 +69,18 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ #define MBEDTLS_ALLOW_PRIVATE_ACCESS +/** Detect architectures where unaligned memory accesses are safe and performant. + * + * This list is incomplete. + */ +#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ + || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(__aarch64__) \ + || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ + || defined(__ARM_ARCH_7A__) +#define MBEDTLS_ALLOW_UNALIGNED_ACCESS +#endif + /** Byte Reading Macros * * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th @@ -404,6 +416,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ static inline void mbedtls_xor( unsigned char* r, unsigned char const *a, unsigned char const *b, size_t n ) { +#if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) uint32_t *a32 = (uint32_t*)a; uint32_t *b32 = (uint32_t*)b; uint32_t *r32 = (uint32_t*)r; @@ -415,6 +428,12 @@ static inline void mbedtls_xor( unsigned char* r, unsigned char const *a, unsign { r[i] = a[i] ^ b[i]; } +#else + for ( size_t i = 0; i < n; i++ ) + { + r[i] = a[i] ^ b[i]; + } +#endif } /* Fix MSVC C99 compatible issue From b6673f0f193dac31232a7ddc23e9b9c4f66bacf5 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 30 Sep 2022 14:13:14 +0100 Subject: [PATCH 0882/1574] Add modular exponentiation to bignum core Signed-off-by: Janos Follath --- library/bignum_core.c | 135 ++++++++++++++++++++++++++++++++++++++++++ library/bignum_core.h | 23 +++++++ 2 files changed, 158 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 34aecda50..227351b70 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -582,6 +582,141 @@ cleanup: /* BEGIN MERGE SLOT 1 */ +static size_t mpi_exp_mod_get_window_size( size_t Ebits ) +{ + size_t wsize = ( Ebits > 671 ) ? 6 : ( Ebits > 239 ) ? 5 : + ( Ebits > 79 ) ? 4 : ( Ebits > 23 ) ? 3 : 1; + +#if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) + if( wsize > MBEDTLS_MPI_WINDOW_SIZE ) + wsize = MBEDTLS_MPI_WINDOW_SIZE; +#endif + + return( wsize ); +} + +int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, + mbedtls_mpi_uint const *A, + const mbedtls_mpi_uint *N, + size_t n, + const mbedtls_mpi_uint *E, + size_t E_len, + const mbedtls_mpi_uint *RR ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + /* heap allocated memory pool */ + mbedtls_mpi_uint *mempool = NULL; + /* pointers to temporaries within memory pool */ + mbedtls_mpi_uint *Wtbl, *Wselect, *temp; + /* pointers to table entries */ + mbedtls_mpi_uint *Wcur, *Wlast, *W1; + + size_t wsize, welem; + mbedtls_mpi_uint one = 1, mm; + + mm = mbedtls_mpi_core_montmul_init( N ); /* Compute Montgomery constant */ + E += E_len; /* Skip to end of exponent buffer */ + + wsize = mpi_exp_mod_get_window_size( E_len * biL ); + welem = 1 << wsize; + + /* Allocate memory pool and set pointers to parts of it */ + const size_t table_limbs = welem * n; + const size_t temp_limbs = 2 * n + 1; + const size_t wselect_limbs = n; + const size_t total_limbs = table_limbs + temp_limbs + wselect_limbs; + + mempool = mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); + if( mempool == NULL ) + { + ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; + goto cleanup; + } + + Wtbl = mempool; + Wselect = Wtbl + table_limbs; + temp = Wselect + wselect_limbs; + + /* + * Window precomputation + */ + + /* W[0] = 1 (in Montgomery presentation) */ + memset( Wtbl, 0, n * ciL ); Wtbl[0] = 1; + mbedtls_mpi_core_montmul( Wtbl, Wtbl, RR, n, N, n, mm, temp ); + Wcur = Wtbl + n; + /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ + memcpy( Wcur, A, n * ciL ); + mbedtls_mpi_core_montmul( Wcur, Wcur, RR, n, N, n, mm, temp ); + W1 = Wcur; + Wcur += n; + /* W[i+1] = W[i] * W[1], i >= 2 */ + Wlast = W1; + for( size_t i=2; i < welem; i++, Wlast += n, Wcur += n ) + mbedtls_mpi_core_montmul( Wcur, Wlast, W1, n, N, n, mm, temp ); + + /* + * Sliding window exponentiation + */ + + /* X = 1 (in Montgomery presentation) initially */ + memcpy( X, Wtbl, n * ciL ); + + size_t limb_bits_remaining = 0; + mbedtls_mpi_uint window = 0; + size_t window_bits = 0, cur_limb; + while( 1 ) + { + size_t window_bits_missing = wsize - window_bits; + + const int no_more_bits = + ( limb_bits_remaining == 0 ) && ( E_len == 0 ); + const int window_full = + ( window_bits_missing == 0 ); + + /* Clear window if it's full or if we don't have further bits. */ + if( window_full || no_more_bits ) + { + if( window_bits == 0 ) + break; + /* Select table entry, square and multiply */ + mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtbl, + n, welem, window ); + mbedtls_mpi_core_montmul( X, X, Wselect, n, N, n, mm, temp ); + window = window_bits = 0; + continue; + } + + /* Load next exponent limb if necessary */ + if( limb_bits_remaining == 0 ) + { + cur_limb = *--E; + E_len--; + limb_bits_remaining = biL; + } + + /* Square */ + mbedtls_mpi_core_montmul( X, X, X, n, N, n, mm, temp ); + + /* Insert next exponent bit into window */ + window <<= 1; + window |= ( cur_limb >> ( biL - 1 ) ); + cur_limb <<= 1; + window_bits++; + limb_bits_remaining--; + } + + /* Convert X back to normal presentation */ + mbedtls_mpi_core_montmul( X, X, &one, 1, N, n, mm, temp ); + + ret = 0; + +cleanup: + + mbedtls_free( mempool ); + return( ret ); +} + /* END MERGE SLOT 1 */ /* BEGIN MERGE SLOT 2 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index ad04e0828..82da14216 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -496,6 +496,29 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, /* BEGIN MERGE SLOT 1 */ +/** + * \brief Perform a modular exponentiation with secret exponent: + * X = A^E mod N + * + * \param[out] X The destination MPI, as a little endian array of length + * \p limbs. + * \param[in] A The base MPI, as a little endian array of length \p limbs. + * \param[in] N The modulus, as a little endian array of length \p limbs. + * \param limbs The number of limbs in \p X, \p A, \p N, \p RR. + * \param[in] E The exponent, as a little endian array of length \p E_limbs. + * \param E_limbs The number of limbs in \p E. + * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little + * endian array of length \p limbs. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. + */ +int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, size_t limbs, + const mbedtls_mpi_uint *E, size_t E_limbs, + const mbedtls_mpi_uint *RR ); + /* END MERGE SLOT 1 */ /* BEGIN MERGE SLOT 2 */ From bad42c4d0dbda9787ca476ad3df40de7f0d69264 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Wed, 9 Nov 2022 14:30:44 +0000 Subject: [PATCH 0883/1574] mpi_core_exp_mod: fix local variable type On platforms with size_t different from int, mismatch between size_t and mpi_uint can cause incorrect results or complaints from the compiler. Signed-off-by: Janos Follath mpi_core_exp_mod: Cast local variable explicitly Signed-off-by: Janos Follath --- library/bignum_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 227351b70..3b660d005 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -618,7 +618,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, E += E_len; /* Skip to end of exponent buffer */ wsize = mpi_exp_mod_get_window_size( E_len * biL ); - welem = 1 << wsize; + welem = ( (size_t) 1 ) << wsize; /* Allocate memory pool and set pointers to parts of it */ const size_t table_limbs = welem * n; @@ -663,8 +663,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, memcpy( X, Wtbl, n * ciL ); size_t limb_bits_remaining = 0; - mbedtls_mpi_uint window = 0; - size_t window_bits = 0, cur_limb; + mbedtls_mpi_uint cur_limb, window = 0; + size_t window_bits = 0; while( 1 ) { size_t window_bits_missing = wsize - window_bits; From 59cbd1be27f7aef2bad1f6b16333a67df7461e16 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 28 Oct 2022 18:13:43 +0100 Subject: [PATCH 0884/1574] Make mbedtls_mpi_core_ct_uint_table_lookup static Now that we have a function that calls mbedtls_mpi_core_ct_uint_table_lookup(), the compiler won't complain if we make it static. Signed-off-by: Janos Follath --- library/bignum_core.c | 1 + library/bignum_core.h | 2 ++ tests/suites/test_suite_bignum_core.function | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 3b660d005..2337ae521 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -540,6 +540,7 @@ cleanup: return( ret ); } +MBEDTLS_STATIC_TESTABLE void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, const mbedtls_mpi_uint *table, size_t limbs, diff --git a/library/bignum_core.h b/library/bignum_core.h index 82da14216..ede816125 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -452,6 +452,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, const mbedtls_mpi *N ); +#if defined(MBEDTLS_TEST_HOOKS) /** * Copy an MPI from a table without leaking the index. * @@ -469,6 +470,7 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, size_t limbs, size_t count, size_t index ); +#endif /* MBEDTLS_TEST_HOOKS */ /** * \brief Fill an integer with a number of random bytes. diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 612a7c6bd..46689468b 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -935,7 +935,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) { size_t limbs = BITS_TO_LIMBS( bitlen ); From 0f0d1e88a2afa2349d3f14182f6ef6bffd1b8d40 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 6 Oct 2022 13:36:21 +0100 Subject: [PATCH 0885/1574] mpi_core_exp_mod: add unit tests The test cases aim to mirror the legacy function, but needed the some cases to be removed because: - Null representation is not valid in core - There are no negative numbers in core - Bignum core doesn't do parameter checking and there are no promises for even N The _size variant of the test has been removed as bignum core doesn't do parameter checking and there is no promises for inputs that are larger than MBEDTLS_MPI_MAX_SIZE. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.function | 53 +++++++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 25 +++++++++ 2 files changed, 78 insertions(+) diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 46689468b..e262ec103 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1041,6 +1041,59 @@ exit: /* BEGIN MERGE SLOT 1 */ +/* BEGIN_CASE */ +void mpi_core_exp_mod( char * input_A, char * input_E, + char * input_N, char * input_X ) +{ + mbedtls_mpi_uint *A = NULL; + size_t A_limbs; + mbedtls_mpi_uint *E = NULL; + size_t E_limbs; + mbedtls_mpi_uint *N = NULL; + size_t N_limbs; + mbedtls_mpi_uint *X = NULL; + size_t X_limbs; + const mbedtls_mpi_uint *R2 = NULL; + mbedtls_mpi_uint *Y = NULL; + /* Legacy MPIs for computing R2 */ + mbedtls_mpi N_mpi; + mbedtls_mpi_init( &N_mpi ); + mbedtls_mpi R2_mpi; + mbedtls_mpi_init( &R2_mpi ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &E, &E_limbs, input_E ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &N_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + ASSERT_ALLOC( Y, N_limbs ); + + TEST_EQUAL( A_limbs, N_limbs ); + TEST_EQUAL( X_limbs, N_limbs ); + + TEST_EQUAL( 0, mbedtls_mpi_grow( &N_mpi, N_limbs ) ); + memcpy( N_mpi.p, N, N_limbs * sizeof( *N ) ); + N_mpi.n = N_limbs; + TEST_EQUAL( 0, + mbedtls_mpi_core_get_mont_r2_unsafe( &R2_mpi, &N_mpi ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &R2_mpi, N_limbs ) ); + R2 = R2_mpi.p; + + TEST_EQUAL( 0, + mbedtls_mpi_core_exp_mod( Y, A, N, N_limbs, E, E_limbs, R2 ) ); + TEST_EQUAL( 0, memcmp( X, Y, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + +exit: + mbedtls_free( A ); + mbedtls_free( E ); + mbedtls_free( N ); + mbedtls_free( X ); + mbedtls_free( Y ); + mbedtls_mpi_free( &N_mpi ); + mbedtls_mpi_free( &R2_mpi ); + // R2 doesn't need to be freed as it is only aliasing R2_mpi +} +/* END_CASE */ + /* END MERGE SLOT 1 */ /* BEGIN MERGE SLOT 2 */ diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 62480e47f..58e45a3f6 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -430,6 +430,31 @@ mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA # BEGIN MERGE SLOT 1 +Base test mbedtls_mpi_core_exp_mod #1 +mpi_core_exp_mod:"17":"0d":"1d":"18" + +Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 0 (1 limb) mod 9 +mpi_core_exp_mod:"00":"00":"09":"01" + +Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 1 mod 9 +mpi_core_exp_mod:"00":"01":"09":"00" + +Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 2 mod 9 +mpi_core_exp_mod:"00":"02":"09":"00" + +Test mbedtls_mpi_core_exp_mod: 1 ^ 0 (1 limb) mod 9 +mpi_core_exp_mod:"01":"00":"09":"01" + +Test mbedtls_mpi_core_exp_mod: 4 ^ 0 (1 limb) mod 9 +mpi_core_exp_mod:"04":"00":"09":"01" + +Test mbedtls_mpi_core_exp_mod: 10 ^ 0 (1 limb) mod 9 +mpi_core_exp_mod:"0a":"00":"09":"01" + +Test mbedtls_mpi_core_exp_mod #1 +depends_on:MPI_MAX_BITS_LARGER_THAN_792 +mpi_core_exp_mod:"00000000000000000000000000109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"0037880b547b41bda303bddda307eefe24b4aedf076c9b814b903aaf328a10825c7e259a20afc6b70b487bb21a6d32d0ee98a0b9f42ff812c901e2f79237fe3e00856992dd69d93ebc0664c75863829621751b0ac35a8ae8a0965841607d3099b8e0ed24442749ba09acbcb165598dcd40" + # END MERGE SLOT 1 # BEGIN MERGE SLOT 2 From a77911e5c1e791854af8fb9e0b26319ac2b9e3be Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 8 Oct 2022 09:48:20 +0100 Subject: [PATCH 0886/1574] core_exp_mod: improve window selection We are looking at the exponent at limb granularity and therefore exponent bits can't go below 32. The `mpi_` prefix is also removed as it is better not to have prefix at all than to have just a partial. (Full prefix would be overly long and would hurt readability.) Signed-off-by: Janos Follath --- library/bignum_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 2337ae521..79d5a720e 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -583,10 +583,10 @@ cleanup: /* BEGIN MERGE SLOT 1 */ -static size_t mpi_exp_mod_get_window_size( size_t Ebits ) +static size_t exp_mod_get_window_size( size_t Ebits ) { size_t wsize = ( Ebits > 671 ) ? 6 : ( Ebits > 239 ) ? 5 : - ( Ebits > 79 ) ? 4 : ( Ebits > 23 ) ? 3 : 1; + ( Ebits > 79 ) ? 4 : 1; #if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) if( wsize > MBEDTLS_MPI_WINDOW_SIZE ) @@ -618,7 +618,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mm = mbedtls_mpi_core_montmul_init( N ); /* Compute Montgomery constant */ E += E_len; /* Skip to end of exponent buffer */ - wsize = mpi_exp_mod_get_window_size( E_len * biL ); + wsize = exp_mod_get_window_size( E_len * biL ); welem = ( (size_t) 1 ) << wsize; /* Allocate memory pool and set pointers to parts of it */ From 0ec6e3f3949713328e22f5cdfe300e5a7649c799 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 14 Nov 2022 12:52:08 +0000 Subject: [PATCH 0887/1574] mpi_core_mod_exp: improve style and documentation No intended change in behaviour. Signed-off-by: Janos Follath --- library/bignum_core.c | 49 ++++++++++++++++++++++--------------------- library/bignum_core.h | 12 +++++------ 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 79d5a720e..944b4be6a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -597,11 +597,11 @@ static size_t exp_mod_get_window_size( size_t Ebits ) } int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, - mbedtls_mpi_uint const *A, + const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *N, - size_t n, + size_t AN_limbs, const mbedtls_mpi_uint *E, - size_t E_len, + size_t E_limbs, const mbedtls_mpi_uint *RR ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -616,15 +616,15 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mbedtls_mpi_uint one = 1, mm; mm = mbedtls_mpi_core_montmul_init( N ); /* Compute Montgomery constant */ - E += E_len; /* Skip to end of exponent buffer */ + E += E_limbs; /* Skip to end of exponent buffer */ - wsize = exp_mod_get_window_size( E_len * biL ); + wsize = exp_mod_get_window_size( E_limbs * biL ); welem = ( (size_t) 1 ) << wsize; /* Allocate memory pool and set pointers to parts of it */ - const size_t table_limbs = welem * n; - const size_t temp_limbs = 2 * n + 1; - const size_t wselect_limbs = n; + const size_t table_limbs = welem * AN_limbs; + const size_t temp_limbs = 2 * AN_limbs + 1; + const size_t wselect_limbs = AN_limbs; const size_t total_limbs = table_limbs + temp_limbs + wselect_limbs; mempool = mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); @@ -643,25 +643,26 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, */ /* W[0] = 1 (in Montgomery presentation) */ - memset( Wtbl, 0, n * ciL ); Wtbl[0] = 1; - mbedtls_mpi_core_montmul( Wtbl, Wtbl, RR, n, N, n, mm, temp ); - Wcur = Wtbl + n; + memset( Wtbl, 0, AN_limbs * ciL ); + Wtbl[0] = 1; + mbedtls_mpi_core_montmul( Wtbl, Wtbl, RR, AN_limbs, N, AN_limbs, mm, temp ); + Wcur = Wtbl + AN_limbs; /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ - memcpy( Wcur, A, n * ciL ); - mbedtls_mpi_core_montmul( Wcur, Wcur, RR, n, N, n, mm, temp ); + memcpy( Wcur, A, AN_limbs * ciL ); + mbedtls_mpi_core_montmul( Wcur, Wcur, RR, AN_limbs, N, AN_limbs, mm, temp ); W1 = Wcur; - Wcur += n; + Wcur += AN_limbs; /* W[i+1] = W[i] * W[1], i >= 2 */ Wlast = W1; - for( size_t i=2; i < welem; i++, Wlast += n, Wcur += n ) - mbedtls_mpi_core_montmul( Wcur, Wlast, W1, n, N, n, mm, temp ); + for( size_t i = 2; i < welem; i++, Wlast += AN_limbs, Wcur += AN_limbs ) + mbedtls_mpi_core_montmul( Wcur, Wlast, W1, AN_limbs, N, AN_limbs, mm, temp ); /* - * Sliding window exponentiation + * Fixed window exponentiation */ /* X = 1 (in Montgomery presentation) initially */ - memcpy( X, Wtbl, n * ciL ); + memcpy( X, Wtbl, AN_limbs * ciL ); size_t limb_bits_remaining = 0; mbedtls_mpi_uint cur_limb, window = 0; @@ -671,7 +672,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, size_t window_bits_missing = wsize - window_bits; const int no_more_bits = - ( limb_bits_remaining == 0 ) && ( E_len == 0 ); + ( limb_bits_remaining == 0 ) && ( E_limbs == 0 ); const int window_full = ( window_bits_missing == 0 ); @@ -682,8 +683,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, break; /* Select table entry, square and multiply */ mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtbl, - n, welem, window ); - mbedtls_mpi_core_montmul( X, X, Wselect, n, N, n, mm, temp ); + AN_limbs, welem, window ); + mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); window = window_bits = 0; continue; } @@ -692,12 +693,12 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, if( limb_bits_remaining == 0 ) { cur_limb = *--E; - E_len--; + E_limbs--; limb_bits_remaining = biL; } /* Square */ - mbedtls_mpi_core_montmul( X, X, X, n, N, n, mm, temp ); + mbedtls_mpi_core_montmul( X, X, X, AN_limbs, N, AN_limbs, mm, temp ); /* Insert next exponent bit into window */ window <<= 1; @@ -708,7 +709,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, } /* Convert X back to normal presentation */ - mbedtls_mpi_core_montmul( X, X, &one, 1, N, n, mm, temp ); + mbedtls_mpi_core_montmul( X, X, &one, 1, N, AN_limbs, mm, temp ); ret = 0; diff --git a/library/bignum_core.h b/library/bignum_core.h index ede816125..58a9f5a67 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -503,21 +503,21 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, * X = A^E mod N * * \param[out] X The destination MPI, as a little endian array of length - * \p limbs. - * \param[in] A The base MPI, as a little endian array of length \p limbs. - * \param[in] N The modulus, as a little endian array of length \p limbs. - * \param limbs The number of limbs in \p X, \p A, \p N, \p RR. + * \p AN_limbs. + * \param[in] A The base MPI, as a little endian array of length \p AN_limbs. + * \param[in] N The modulus, as a little endian array of length \p AN_limbs. + * \param AN_limbs The number of limbs in \p X, \p A, \p N, \p RR. * \param[in] E The exponent, as a little endian array of length \p E_limbs. * \param E_limbs The number of limbs in \p E. * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little - * endian array of length \p limbs. + * endian array of length \p AN_limbs. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. */ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, size_t limbs, + const mbedtls_mpi_uint *N, size_t AN_limbs, const mbedtls_mpi_uint *E, size_t E_limbs, const mbedtls_mpi_uint *RR ); From 07f2c69511303ddc667756c0bb56c90d737573b4 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 19:48:23 +0100 Subject: [PATCH 0888/1574] More consistent variable names Signed-off-by: Gilles Peskine --- library/bignum_core.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 944b4be6a..957f19098 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -608,7 +608,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* heap allocated memory pool */ mbedtls_mpi_uint *mempool = NULL; /* pointers to temporaries within memory pool */ - mbedtls_mpi_uint *Wtbl, *Wselect, *temp; + mbedtls_mpi_uint *Wtable, *Wselect, *temp; /* pointers to table entries */ mbedtls_mpi_uint *Wcur, *Wlast, *W1; @@ -624,8 +624,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* Allocate memory pool and set pointers to parts of it */ const size_t table_limbs = welem * AN_limbs; const size_t temp_limbs = 2 * AN_limbs + 1; - const size_t wselect_limbs = AN_limbs; - const size_t total_limbs = table_limbs + temp_limbs + wselect_limbs; + const size_t select_limbs = AN_limbs; + const size_t total_limbs = table_limbs + temp_limbs + select_limbs; mempool = mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); if( mempool == NULL ) @@ -634,19 +634,19 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, goto cleanup; } - Wtbl = mempool; - Wselect = Wtbl + table_limbs; - temp = Wselect + wselect_limbs; + Wtable = mempool; + Wselect = Wtable + table_limbs; + temp = Wselect + select_limbs; /* * Window precomputation */ /* W[0] = 1 (in Montgomery presentation) */ - memset( Wtbl, 0, AN_limbs * ciL ); - Wtbl[0] = 1; - mbedtls_mpi_core_montmul( Wtbl, Wtbl, RR, AN_limbs, N, AN_limbs, mm, temp ); - Wcur = Wtbl + AN_limbs; + memset( Wtable, 0, AN_limbs * ciL ); + Wtable[0] = 1; + mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); + Wcur = Wtable + AN_limbs; /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ memcpy( Wcur, A, AN_limbs * ciL ); mbedtls_mpi_core_montmul( Wcur, Wcur, RR, AN_limbs, N, AN_limbs, mm, temp ); @@ -662,7 +662,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, */ /* X = 1 (in Montgomery presentation) initially */ - memcpy( X, Wtbl, AN_limbs * ciL ); + memcpy( X, Wtable, AN_limbs * ciL ); size_t limb_bits_remaining = 0; mbedtls_mpi_uint cur_limb, window = 0; @@ -682,7 +682,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, if( window_bits == 0 ) break; /* Select table entry, square and multiply */ - mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtbl, + mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, AN_limbs, welem, window ); mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); window = window_bits = 0; From 7af166b827226e059118d8cb5c6e1ecb8e2ed3cf Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 19:52:30 +0100 Subject: [PATCH 0889/1574] Change E closer to where it's used Signed-off-by: Gilles Peskine --- library/bignum_core.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 957f19098..a6aa5a83b 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -616,7 +616,6 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mbedtls_mpi_uint one = 1, mm; mm = mbedtls_mpi_core_montmul_init( N ); /* Compute Montgomery constant */ - E += E_limbs; /* Skip to end of exponent buffer */ wsize = exp_mod_get_window_size( E_limbs * biL ); welem = ( (size_t) 1 ) << wsize; @@ -664,6 +663,9 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* X = 1 (in Montgomery presentation) initially */ memcpy( X, Wtable, AN_limbs * ciL ); + /* Start from the end of exponent buffer */ + E += E_limbs; + size_t limb_bits_remaining = 0; mbedtls_mpi_uint cur_limb, window = 0; size_t window_bits = 0; From cf979b0fc1ff4033c907ad5adf980ad4530e2f41 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 20:04:00 +0100 Subject: [PATCH 0890/1574] Define variables closer to their use Make variables const where possible. Signed-off-by: Gilles Peskine --- library/bignum_core.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index a6aa5a83b..c38daa48c 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -607,18 +607,9 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* heap allocated memory pool */ mbedtls_mpi_uint *mempool = NULL; - /* pointers to temporaries within memory pool */ - mbedtls_mpi_uint *Wtable, *Wselect, *temp; - /* pointers to table entries */ - mbedtls_mpi_uint *Wcur, *Wlast, *W1; - size_t wsize, welem; - mbedtls_mpi_uint one = 1, mm; - - mm = mbedtls_mpi_core_montmul_init( N ); /* Compute Montgomery constant */ - - wsize = exp_mod_get_window_size( E_limbs * biL ); - welem = ( (size_t) 1 ) << wsize; + const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); + const size_t welem = ( (size_t) 1 ) << wsize; /* Allocate memory pool and set pointers to parts of it */ const size_t table_limbs = welem * AN_limbs; @@ -633,14 +624,20 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, goto cleanup; } - Wtable = mempool; - Wselect = Wtable + table_limbs; - temp = Wselect + select_limbs; + /* pointers to temporaries within memory pool */ + mbedtls_mpi_uint *const Wtable = mempool; + mbedtls_mpi_uint *const Wselect = Wtable + table_limbs; + mbedtls_mpi_uint *const temp = Wselect + select_limbs; /* * Window precomputation */ + const mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N ); + + /* pointers to table entries */ + mbedtls_mpi_uint *Wcur, *Wlast, *W1; + /* W[0] = 1 (in Montgomery presentation) */ memset( Wtable, 0, AN_limbs * ciL ); Wtable[0] = 1; @@ -667,8 +664,11 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, E += E_limbs; size_t limb_bits_remaining = 0; - mbedtls_mpi_uint cur_limb, window = 0; + mbedtls_mpi_uint window = 0; size_t window_bits = 0; + /* Will be initialized properly in the first loop iteration */ + mbedtls_mpi_uint cur_limb = 0; + while( 1 ) { size_t window_bits_missing = wsize - window_bits; @@ -711,6 +711,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, } /* Convert X back to normal presentation */ + const mbedtls_mpi_uint one = 1; mbedtls_mpi_core_montmul( X, X, &one, 1, N, AN_limbs, mm, temp ); ret = 0; From 0de0a049f1f0c53da0ead6307ab7034d9d4b8534 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 20:12:49 +0100 Subject: [PATCH 0891/1574] Move window precomputation into an auxiliary function Signed-off-by: Gilles Peskine --- library/bignum_core.c | 49 ++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index c38daa48c..14f2f5a87 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -596,6 +596,34 @@ static size_t exp_mod_get_window_size( size_t Ebits ) return( wsize ); } +static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *RR, + size_t welem, + mbedtls_mpi_uint *Wtable, + mbedtls_mpi_uint *temp ) +{ + /* pointers to table entries */ + mbedtls_mpi_uint *Wcur, *Wlast, *W1; + + /* W[0] = 1 (in Montgomery presentation) */ + memset( Wtable, 0, AN_limbs * ciL ); + Wtable[0] = 1; + mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); + Wcur = Wtable + AN_limbs; + /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ + memcpy( Wcur, A, AN_limbs * ciL ); + mbedtls_mpi_core_montmul( Wcur, Wcur, RR, AN_limbs, N, AN_limbs, mm, temp ); + W1 = Wcur; + Wcur += AN_limbs; + /* W[i+1] = W[i] * W[1], i >= 2 */ + Wlast = W1; + for( size_t i = 2; i < welem; i++, Wlast += AN_limbs, Wcur += AN_limbs ) + mbedtls_mpi_core_montmul( Wcur, Wlast, W1, AN_limbs, N, AN_limbs, mm, temp ); +} + int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *N, @@ -635,23 +663,10 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N ); - /* pointers to table entries */ - mbedtls_mpi_uint *Wcur, *Wlast, *W1; - - /* W[0] = 1 (in Montgomery presentation) */ - memset( Wtable, 0, AN_limbs * ciL ); - Wtable[0] = 1; - mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); - Wcur = Wtable + AN_limbs; - /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ - memcpy( Wcur, A, AN_limbs * ciL ); - mbedtls_mpi_core_montmul( Wcur, Wcur, RR, AN_limbs, N, AN_limbs, mm, temp ); - W1 = Wcur; - Wcur += AN_limbs; - /* W[i+1] = W[i] * W[1], i >= 2 */ - Wlast = W1; - for( size_t i = 2; i < welem; i++, Wlast += AN_limbs, Wcur += AN_limbs ) - mbedtls_mpi_core_montmul( Wcur, Wlast, W1, AN_limbs, N, AN_limbs, mm, temp ); + /* Set Wtable[i] = A^(2^i) (in Montgomery representation) */ + exp_mod_precompute_window( A, N, AN_limbs, + mm, RR, + welem, Wtable, temp ); /* * Fixed window exponentiation From d83b5cb504cfc8ff17faf55fff20c68f25b44a86 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 20:26:14 +0100 Subject: [PATCH 0892/1574] Local readability improvements Signed-off-by: Gilles Peskine --- library/bignum_core.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 14f2f5a87..b7d6b6253 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -605,23 +605,23 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, mbedtls_mpi_uint *Wtable, mbedtls_mpi_uint *temp ) { - /* pointers to table entries */ - mbedtls_mpi_uint *Wcur, *Wlast, *W1; - /* W[0] = 1 (in Montgomery presentation) */ memset( Wtable, 0, AN_limbs * ciL ); Wtable[0] = 1; mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); - Wcur = Wtable + AN_limbs; + /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ - memcpy( Wcur, A, AN_limbs * ciL ); - mbedtls_mpi_core_montmul( Wcur, Wcur, RR, AN_limbs, N, AN_limbs, mm, temp ); - W1 = Wcur; - Wcur += AN_limbs; + mbedtls_mpi_uint *W1 = Wtable + AN_limbs; + mbedtls_mpi_core_montmul( W1, A, RR, AN_limbs, N, AN_limbs, mm, temp ); + /* W[i+1] = W[i] * W[1], i >= 2 */ - Wlast = W1; - for( size_t i = 2; i < welem; i++, Wlast += AN_limbs, Wcur += AN_limbs ) - mbedtls_mpi_core_montmul( Wcur, Wlast, W1, AN_limbs, N, AN_limbs, mm, temp ); + mbedtls_mpi_uint *Wprev = W1; + for( size_t i = 2; i < welem; i++ ) + { + mbedtls_mpi_uint *Wcur = Wprev + AN_limbs; + mbedtls_mpi_core_montmul( Wcur, Wprev, W1, AN_limbs, N, AN_limbs, mm, temp ); + Wprev = Wcur; + } } int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, @@ -702,15 +702,17 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, AN_limbs, welem, window ); mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); - window = window_bits = 0; + window = 0; + window_bits = 0; continue; } /* Load next exponent limb if necessary */ if( limb_bits_remaining == 0 ) { - cur_limb = *--E; - E_limbs--; + --E; + cur_limb = *E; + --E_limbs; limb_bits_remaining = biL; } @@ -721,8 +723,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, window <<= 1; window |= ( cur_limb >> ( biL - 1 ) ); cur_limb <<= 1; - window_bits++; - limb_bits_remaining--; + ++window_bits; + --limb_bits_remaining; } /* Convert X back to normal presentation */ From c718a3ce94897377670a057851a60edca148c4e2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 20:42:09 +0100 Subject: [PATCH 0893/1574] Simplify exponent bit selection Use indices instead of mutating data to extract the bits of the exponent. Signed-off-by: Gilles Peskine --- library/bignum_core.c | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index b7d6b6253..c05e60322 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -675,21 +675,20 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* X = 1 (in Montgomery presentation) initially */ memcpy( X, Wtable, AN_limbs * ciL ); - /* Start from the end of exponent buffer */ - E += E_limbs; - - size_t limb_bits_remaining = 0; + /* We'll process the bits of E from most significant + * (limb_index=E_limbs-1, E_bit_index=biL-1) to least significant + * (limb_index=0, E_bit_index=0). */ + size_t E_limb_index = E_limbs; + size_t E_bit_index = 0; mbedtls_mpi_uint window = 0; size_t window_bits = 0; - /* Will be initialized properly in the first loop iteration */ - mbedtls_mpi_uint cur_limb = 0; while( 1 ) { size_t window_bits_missing = wsize - window_bits; const int no_more_bits = - ( limb_bits_remaining == 0 ) && ( E_limbs == 0 ); + ( E_bit_index == 0 ) && ( E_limb_index == 0 ); const int window_full = ( window_bits_missing == 0 ); @@ -707,24 +706,22 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, continue; } - /* Load next exponent limb if necessary */ - if( limb_bits_remaining == 0 ) - { - --E; - cur_limb = *E; - --E_limbs; - limb_bits_remaining = biL; - } - /* Square */ mbedtls_mpi_core_montmul( X, X, X, AN_limbs, N, AN_limbs, mm, temp ); /* Insert next exponent bit into window */ - window <<= 1; - window |= ( cur_limb >> ( biL - 1 ) ); - cur_limb <<= 1; + if( E_bit_index == 0 ) + { + --E_limb_index; + E_bit_index = biL - 1; + } + else + { + --E_bit_index; + } ++window_bits; - --limb_bits_remaining; + window <<= 1; + window |= ( E[E_limb_index] >> E_bit_index ) & 1; } /* Convert X back to normal presentation */ From 3b63d09fead5623c42cb3f0e54e36d52604ccfe8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 22:06:18 +0100 Subject: [PATCH 0894/1574] Make the main loop's logic clearer The loop ends when there are no more bits to process, with one twist: when that happens, we need to clear the window one last time. Since the window does not start empty (E_limbs==0 is not supported), the loop always starts with a non-empty window and some bits to process. So it's correct to move the window clearing logic to the end of the loop. This lets us exit the loop when the end of the exponent is reached. It would be clearer not to do the final window clearing inside the loop, so we wouldn't need to repeat the loop termination condition (end of exponent reached) inside the loop. However, this requires duplicating the code to clear the window. Empirically, this causes a significant code size increase, even if the window clearing code is placed into a function. Signed-off-by: Gilles Peskine --- library/bignum_core.c | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index c05e60322..737e08df2 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -683,29 +683,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mbedtls_mpi_uint window = 0; size_t window_bits = 0; - while( 1 ) + do { - size_t window_bits_missing = wsize - window_bits; - - const int no_more_bits = - ( E_bit_index == 0 ) && ( E_limb_index == 0 ); - const int window_full = - ( window_bits_missing == 0 ); - - /* Clear window if it's full or if we don't have further bits. */ - if( window_full || no_more_bits ) - { - if( window_bits == 0 ) - break; - /* Select table entry, square and multiply */ - mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, - AN_limbs, welem, window ); - mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); - window = 0; - window_bits = 0; - continue; - } - /* Square */ mbedtls_mpi_core_montmul( X, X, X, AN_limbs, N, AN_limbs, mm, temp ); @@ -722,7 +701,21 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, ++window_bits; window <<= 1; window |= ( E[E_limb_index] >> E_bit_index ) & 1; + + /* Clear window if it's full. Also clear the window at the end, + * when we've finished processing the exponent. */ + if( window_bits == wsize || + ( E_bit_index == 0 && E_limb_index == 0 ) ) + { + /* Select table entry, square and multiply */ + mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, + AN_limbs, welem, window ); + mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); + window = 0; + window_bits = 0; + } } + while( ! ( E_bit_index == 0 && E_limb_index == 0 ) ); /* Convert X back to normal presentation */ const mbedtls_mpi_uint one = 1; From 4380d7b7f30785b6bacc032b68f19f2e2a47d786 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 22:20:59 +0100 Subject: [PATCH 0895/1574] Simplify cleanup logic Take advantage of the fact that there's a single point of failure. Signed-off-by: Gilles Peskine --- library/bignum_core.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 737e08df2..a8879b327 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -632,10 +632,6 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, size_t E_limbs, const mbedtls_mpi_uint *RR ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - /* heap allocated memory pool */ - mbedtls_mpi_uint *mempool = NULL; - const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); const size_t welem = ( (size_t) 1 ) << wsize; @@ -645,11 +641,12 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const size_t select_limbs = AN_limbs; const size_t total_limbs = table_limbs + temp_limbs + select_limbs; - mempool = mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); + /* heap allocated memory pool */ + mbedtls_mpi_uint *mempool = + mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); if( mempool == NULL ) { - ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; - goto cleanup; + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); } /* pointers to temporaries within memory pool */ @@ -721,12 +718,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint one = 1; mbedtls_mpi_core_montmul( X, X, &one, 1, N, AN_limbs, mm, temp ); - ret = 0; - -cleanup: - mbedtls_free( mempool ); - return( ret ); + return( 0 ); } /* END MERGE SLOT 1 */ From 0b270a560340856fed09deb58df8801326cf82d6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 22:54:03 +0100 Subject: [PATCH 0896/1574] Explain a little more Signed-off-by: Gilles Peskine --- library/bignum_core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index a8879b327..247600c52 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -677,8 +677,10 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, * (limb_index=0, E_bit_index=0). */ size_t E_limb_index = E_limbs; size_t E_bit_index = 0; - mbedtls_mpi_uint window = 0; + /* At any given time, window contains window_bits bits from E. + * window_bits can go up to wsize. */ size_t window_bits = 0; + mbedtls_mpi_uint window = 0; do { @@ -704,9 +706,11 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, if( window_bits == wsize || ( E_bit_index == 0 && E_limb_index == 0 ) ) { - /* Select table entry, square and multiply */ + /* Select Wtable[window] without leaking window through + * memory access patterns. */ mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, AN_limbs, welem, window ); + /* Multiply X by the selected element. */ mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); window = 0; window_bits = 0; From 7d89d351e603564cea00942b0d817c90407c8811 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 16 Nov 2022 22:54:14 +0100 Subject: [PATCH 0897/1574] Zeroize sensitive data Signed-off-by: Gilles Peskine --- library/bignum_core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 247600c52..71a2fb16a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -624,6 +624,12 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, } } +/* Exponentiation: X := A^E mod N. + * + * As in other bignum functions, assume that AN_limbs and E_limbs are nonzero. + * + * RR must contain 2^{2*biL} mod N. + */ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *N, @@ -722,6 +728,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint one = 1; mbedtls_mpi_core_montmul( X, X, &one, 1, N, AN_limbs, mm, temp ); + mbedtls_platform_zeroize( mempool, total_limbs * sizeof(mbedtls_mpi_uint) ); mbedtls_free( mempool ); return( 0 ); } From 3321b5842c2f4d4135c2595c3d01f2f621261b80 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 21:08:33 +0000 Subject: [PATCH 0898/1574] mpi_exp_mod: improve documentation Signed-off-by: Janos Follath --- library/bignum_core.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 71a2fb16a..2b3405ffc 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -629,6 +629,10 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, * As in other bignum functions, assume that AN_limbs and E_limbs are nonzero. * * RR must contain 2^{2*biL} mod N. + * + * The algorithm is a variant of Left-to-right k-ary exponentiation: HAC 14.82 + * (The difference is that the body in our loop processes a single bit instead + * of a full window.) */ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, @@ -693,7 +697,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* Square */ mbedtls_mpi_core_montmul( X, X, X, AN_limbs, N, AN_limbs, mm, temp ); - /* Insert next exponent bit into window */ + /* Move to the next bit of the exponent */ if( E_bit_index == 0 ) { --E_limb_index; @@ -703,6 +707,7 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, { --E_bit_index; } + /* Insert next exponent bit into window */ ++window_bits; window <<= 1; window |= ( E[E_limb_index] >> E_bit_index ) & 1; @@ -717,7 +722,8 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, AN_limbs, welem, window ); /* Multiply X by the selected element. */ - mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, temp ); + mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, + temp ); window = 0; window_bits = 0; } From 05867cb036c40af689c174ee06f49a6a53c73de5 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 21:37:10 +0000 Subject: [PATCH 0899/1574] mpi_core_exp_mod: add generated tests Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 21 ++++++++++++++++++++ tests/suites/test_suite_bignum_core.function | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 4910daea8..f85fb2e36 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -755,6 +755,27 @@ def mpi_modmul_case_generate() -> None: # BEGIN MERGE SLOT 1 +class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): + """Test cases for bignum core exponentiation.""" + symbol = "^" + test_function = "mpi_core_exp_mod" + test_name = "Core modular exponentiation" + input_style = "fixed" + + def result(self) -> List[str]: + result = pow(self.int_a, self.int_b, self.int_n) + return [self.format_result(result)] + + @property + def is_valid(self) -> bool: + # The base needs to be canonical, but the exponent can be larger than + # the modulus (see for example exponent blinding) + if self.int_a < self.int_n: + return True + else: + return False + + # END MERGE SLOT 1 # BEGIN MERGE SLOT 2 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index e262ec103..f9a768c0c 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1042,8 +1042,8 @@ exit: /* BEGIN MERGE SLOT 1 */ /* BEGIN_CASE */ -void mpi_core_exp_mod( char * input_A, char * input_E, - char * input_N, char * input_X ) +void mpi_core_exp_mod( char * input_N, char * input_A, + char * input_E, char * input_X ) { mbedtls_mpi_uint *A = NULL; size_t A_limbs; From cf0e86c9b8ac88ec5dca7522824a53c1c518f036 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 21:40:24 +0000 Subject: [PATCH 0900/1574] mpi_core_exp_mod: remove manual tests The previous commit added generated tests, we don't need the manually added tests anymore. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_core.misc.data | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 58e45a3f6..62480e47f 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -430,31 +430,6 @@ mpi_core_fill_random:42:0:-5:0:MBEDTLS_ERR_MPI_BAD_INPUT_DATA # BEGIN MERGE SLOT 1 -Base test mbedtls_mpi_core_exp_mod #1 -mpi_core_exp_mod:"17":"0d":"1d":"18" - -Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 0 (1 limb) mod 9 -mpi_core_exp_mod:"00":"00":"09":"01" - -Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 1 mod 9 -mpi_core_exp_mod:"00":"01":"09":"00" - -Test mbedtls_mpi_core_exp_mod: 0 (1 limb) ^ 2 mod 9 -mpi_core_exp_mod:"00":"02":"09":"00" - -Test mbedtls_mpi_core_exp_mod: 1 ^ 0 (1 limb) mod 9 -mpi_core_exp_mod:"01":"00":"09":"01" - -Test mbedtls_mpi_core_exp_mod: 4 ^ 0 (1 limb) mod 9 -mpi_core_exp_mod:"04":"00":"09":"01" - -Test mbedtls_mpi_core_exp_mod: 10 ^ 0 (1 limb) mod 9 -mpi_core_exp_mod:"0a":"00":"09":"01" - -Test mbedtls_mpi_core_exp_mod #1 -depends_on:MPI_MAX_BITS_LARGER_THAN_792 -mpi_core_exp_mod:"00000000000000000000000000109fe45714866e56fdd4ad9b6b686df27224afb7868cf4f0cbb794526932853cbf0beea61594166654d13cd9fe0d9da594a97ee20230f12fb5434de73fb4f8102725a01622b31b1ea42e3a265019039ac1df31869bd97930d792fb72cdaa971d8a8015af":"33ae3764fd06a00cdc3cba5c45dc79a9edb4e67e4d057cc74139d531c25190d111775fc4a0f4439b8b1930bbd766e7b46f170601f316c8a18ff8d5cb5ca5581f168345d101edb462b7d93b7c520ccb8fb276b447a63d869203cc11f67a1122dc4da034218de85e39":"011a9351d2d32ccd568e75bf8b4ebbb2a36be691b55832edac662ff79803df8af525fba453068be16ac3920bcc1b468f8f7fe786e0fa4ecbabcad31e5e3b05def802eb8600deaf11ef452487db878df20a80606e4bb6a163b83895d034cc8b53dbcd005be42ffdd2ce99bed06089a0b79d":"0037880b547b41bda303bddda307eefe24b4aedf076c9b814b903aaf328a10825c7e259a20afc6b70b487bb21a6d32d0ee98a0b9f42ff812c901e2f79237fe3e00856992dd69d93ebc0664c75863829621751b0ac35a8ae8a0965841607d3099b8e0ed24442749ba09acbcb165598dcd40" - # END MERGE SLOT 1 # BEGIN MERGE SLOT 2 From 43d3de4977a86be1cf19bc6e3b7a558ab86737a6 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Tue, 22 Nov 2022 21:50:22 +0000 Subject: [PATCH 0901/1574] Make pylint happy Signed-off-by: Janos Follath --- scripts/mbedtls_dev/bignum_core.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index f85fb2e36..ed6ecbd00 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -770,11 +770,7 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): def is_valid(self) -> bool: # The base needs to be canonical, but the exponent can be larger than # the modulus (see for example exponent blinding) - if self.int_a < self.int_n: - return True - else: - return False - + return bool(self.int_a < self.int_n) # END MERGE SLOT 1 From a6a94ad599351ac1fc208ab5d9a4a1248e8fe2a2 Mon Sep 17 00:00:00 2001 From: Moritz Fischer Date: Sat, 12 Nov 2022 08:28:04 -0800 Subject: [PATCH 0902/1574] lms: Move merkle tree generation to heap allocation Larger height (e.g. H=20) trees cannot be put on the stack. Allocate memory for them based on need using mbedtls_calloc(). Signed-off-by: Moritz Fischer --- library/lms.c | 47 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/library/lms.c b/library/lms.c index 46ea567f2..78c7d2666 100644 --- a/library/lms.c +++ b/library/lms.c @@ -65,10 +65,9 @@ /* Currently only support H=10 */ #define H_TREE_HEIGHT_MAX 10 -#define MERKLE_TREE_NODE_AM_MAX (1u << (H_TREE_HEIGHT_MAX + 1u)) -#define MERKLE_TREE_NODE_AM(type) (1u << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) -#define MERKLE_TREE_LEAF_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) -#define MERKLE_TREE_INTERNAL_NODE_AM(type) (1u << MBEDTLS_LMS_H_TREE_HEIGHT(type)) +#define MERKLE_TREE_NODE_AM(type) ((size_t) 1 << (MBEDTLS_LMS_H_TREE_HEIGHT(type) + 1u)) +#define MERKLE_TREE_LEAF_NODE_AM(type) ((size_t) 1 << MBEDTLS_LMS_H_TREE_HEIGHT(type)) +#define MERKLE_TREE_INTERNAL_NODE_AM(type) ((size_t) 1 << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define D_CONST_LEN (2) static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; @@ -499,13 +498,21 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int leaf_node_id, unsigned char *path ) { - unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; + const size_t node_bytes = MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); unsigned int curr_node_id = leaf_node_id; unsigned int adjacent_node_id; + unsigned char *tree = NULL; unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = calculate_merkle_tree( ctx, ( unsigned char * )tree ); + tree = mbedtls_calloc( MERKLE_TREE_NODE_AM(ctx->params.type), + node_bytes ); + if ( tree == NULL ) + { + return MBEDTLS_ERR_LMS_ALLOC_FAILED; + } + + ret = calculate_merkle_tree( ctx, tree ); if( ret != 0 ) { goto exit; @@ -516,9 +523,8 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, { adjacent_node_id = curr_node_id ^ 1; - memcpy( &path[height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - &tree[adjacent_node_id], - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + memcpy( &path[height * node_bytes], + &tree[adjacent_node_id * node_bytes], node_bytes ); curr_node_id >>=1; } @@ -526,7 +532,9 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, ret = 0; exit: - mbedtls_platform_zeroize( tree, sizeof( tree ) ); + mbedtls_platform_zeroize( tree, node_bytes * + MERKLE_TREE_NODE_AM(ctx->params.type) ); + mbedtls_free ( tree ); return( ret ); } @@ -659,8 +667,9 @@ exit: int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, const mbedtls_lms_private_t *priv_ctx ) { - unsigned char tree[MERKLE_TREE_NODE_AM_MAX][MBEDTLS_LMS_M_NODE_BYTES_MAX]; + const size_t node_bytes = MBEDTLS_LMS_M_NODE_BYTES(priv_ctx->params.type); int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + unsigned char *tree = NULL; if( ! priv_ctx->have_private_key ) { @@ -679,25 +688,33 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); } + tree = mbedtls_calloc( MERKLE_TREE_NODE_AM(priv_ctx->params.type), + node_bytes ); + if ( tree == NULL ) + { + return MBEDTLS_ERR_LMS_ALLOC_FAILED; + } + memcpy( &ctx->params, &priv_ctx->params, sizeof( mbedtls_lmots_parameters_t ) ); - ret = calculate_merkle_tree( priv_ctx, ( unsigned char * )tree ); + ret = calculate_merkle_tree( priv_ctx, tree ); if( ret != 0 ) { goto exit; } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->T_1_pub_key, &tree[1], - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + memcpy( ctx->T_1_pub_key, &tree[node_bytes], node_bytes ); ctx->have_public_key = 1; ret = 0; exit: - mbedtls_platform_zeroize( tree, sizeof( tree ) ); + mbedtls_platform_zeroize( tree, node_bytes * + MERKLE_TREE_NODE_AM(priv_ctx->params.type) ); + mbedtls_free ( tree ); return( ret ); } From ca09afc60ace53dca16e6d1bea697fc308165423 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Tue, 22 Nov 2022 10:05:19 +0000 Subject: [PATCH 0903/1574] Remove useless function and parse early data in ee Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 72 +++++++++----------------------------- 1 file changed, 17 insertions(+), 55 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 839fe3679..9db2b7928 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1335,53 +1335,6 @@ static int ssl_tls13_is_downgrade_negotiation( mbedtls_ssl_context *ssl, return( 0 ); } -#if defined(MBEDTLS_SSL_EARLY_DATA) -/* - * ssl_tls13_parse_ee_early_data_ext() - * Parse early data indication extension in EncryptedExtensions. - * - * struct {} Empty; - * - * struct { - * select (Handshake.msg_type) { - * ... - * case client_hello: Empty; - * case encrypted_extensions: Empty; - * }; - * } EarlyDataIndication; - * - */ - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_ee_early_data_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) -{ - if( ssl->early_data_status < MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT ) - { - /* The server must not send the EarlyDataIndication if the - * client hasn't indicated the use of early data. */ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - } - - if( len != 0 ) - { - /* The message must be empty. */ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); - } - - /* Nothing to parse */ - ((void) buf); - - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; - return( 0 ); -} -#endif /* MBEDTLS_SSL_EARLY_DATA */ - /* Returns a negative value on failure, and otherwise * - SSL_SERVER_HELLO or * - SSL_SERVER_HELLO_HRR @@ -2110,16 +2063,25 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) case MBEDTLS_TLS_EXT_EARLY_DATA: - ret = ssl_tls13_parse_ee_early_data_ext( - ssl, p, (size_t)extension_data_len ); - if( ret != 0 ) + if( ssl->early_data_status != MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT ) { - ssl->early_data_status = - MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; - MBEDTLS_SSL_DEBUG_RET( - 1, "ssl_tls13_parse_ee_early_data_ext", ret ); - return( ret ); + /* The server must not send the EarlyDataIndication if the + * client hasn't indicated the use of early data. */ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } + + if( extension_data_len != 0 ) + { + /* The message must be empty. */ + MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR ); + return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + } + + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; + break; #endif /* MBEDTLS_SSL_EARLY_DATA */ From e861ba01d474034cbde57de9448d697daf8d8349 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 23 Nov 2022 03:21:02 +0000 Subject: [PATCH 0904/1574] Remove the duplicate early_data_status check Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 9db2b7928..57d3adb71 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2063,14 +2063,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) case MBEDTLS_TLS_EXT_EARLY_DATA: - if( ssl->early_data_status != MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT ) - { - /* The server must not send the EarlyDataIndication if the - * client hasn't indicated the use of early data. */ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - } if( extension_data_len != 0 ) { @@ -2080,7 +2072,7 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_DECODE_ERROR ); } - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; break; #endif /* MBEDTLS_SSL_EARLY_DATA */ From b157e915ad29e7e47443a2f624d9cb42c497d487 Mon Sep 17 00:00:00 2001 From: Xiaokang Qian Date: Wed, 23 Nov 2022 08:12:26 +0000 Subject: [PATCH 0905/1574] Move the early data status set afeter all of the extensions parse Signed-off-by: Xiaokang Qian --- library/ssl_tls13_client.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 57d3adb71..227c99d47 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2072,8 +2072,6 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_DECODE_ERROR ); } - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; - break; #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -2119,6 +2117,14 @@ static int ssl_tls13_process_encrypted_extensions( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_encrypted_extensions( ssl, buf, buf + buf_len ) ); +#if defined(MBEDTLS_SSL_EARLY_DATA) + if( ssl->handshake->received_extensions & + MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) ) + { + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; + } +#endif + mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, buf, buf_len ); From 3518fb11d0be25ca1e69009899b12fd25bfc0c7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 23 Nov 2022 13:14:52 +0100 Subject: [PATCH 0906/1574] Improve ChangeLog entry for driver-only hashes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - avoid long unstructured paragraph with long messy sentences - de-emphasize "no longer depends on MD" and emphasize "can work in some driver-only builds" instead - that's what users are interested in (building without MD is just the current way to accomplish that, but that will change in the future) Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/driver-only-hashes.txt | 41 +++++++++++++----------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt index a160f924b..930aadfef 100644 --- a/ChangeLog.d/driver-only-hashes.txt +++ b/ChangeLog.d/driver-only-hashes.txt @@ -1,24 +1,19 @@ Features - * Some crypto modules that previously depended on MD or a low-level hash - module, either unconditionally (RSA, PK, PKCS5, PKCS12, EC J-PAKE), or - for some features (PEM for encrypted files), are now able to use PSA - Crypto instead when the legacy API is not available. This means it is - now possible to use all features from those modules in configurations - where the built-in implementations of hashes are excluded and the hashes - are only provided by PSA drivers. In these configurations, you need to - call `psa_crypto_init()` before you call any function from those - modules; this is not required in configurations where the built-in - implementation is still available. Note that for modules that use MD - (RSA, PKCS5, PKCS12, EC J-PAKE) in builds that have MBEDTLS_MD_C enabled, - all hashes used with those modules need to be built-in, as drivers are only - used when MBEDTLS_MD_C is disabled; configurations where some hashes are - available as built-ins, and some only from drivers, are currently not - supported. Also note that some crypto modules and features still depend on - the built-in implementation of hashes: MBEDTLS_HKDF_C (but the PSA HKDF - functions do not depend on it), MBEDTLS_ENTROPY_C, MBEDTLS_HMAC_DRBG_C and - MBEDTLS_ECDSA_DETERMINISTIC. In particular, for now, compiling without - built-in hashes requires use of MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. - * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 no - longer depend on MD. This means it is now possible to use them in - configurations where the built-in implementations of hashes are excluded - and the hashes are only provided by PSA drivers. + * Some modules can now use PSA drivers for hashes, including with no + built-in implementation present, but only in some configurations. + - RSA PKCS#1 v2.1, PKCS5, PKCS12 and EC J-PAKE now use hashes from PSA + when (and only when) MBEDTLS_MD_C is disabled. + - PEM parsing of encrypted files now uses MD-5 from PSA when (and only + when) MBEDTLS_MD5_C is disabled. + See the documentation of the corresponding macros in mbedtls_config.h for + details. + Note that some modules are not able to use hashes from PSA yet, including + the entropy module. As a consequence, for now the only way to build with + all hashes only provided by drivers (no built-in hash) is to use + MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. + * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 now + properly negotiate/accept hashes based on their availability in PSA. + As a consequence, they now work in configurations where the built-in + implementations of (some) hashes are excluded and those hashes are only + provided by PSA drivers. (See previous entry for limitation on RSA-PSS + though: that module only use hashes from PSA when MBEDTLS_MD_C is off). From 42649d9270d9f75b63d55b08a10d334d266d3905 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 23 Nov 2022 14:15:57 +0100 Subject: [PATCH 0907/1574] Fix NULL+0 undefined behavior in ECB encryption and decryption psa_cipher_encrypt() and psa_cipher_decrypt() sometimes add a zero offset to a null pointer when the cipher does not use an IV. This is undefined behavior, although it works as naively expected on most platforms. This can cause a crash with modern Clang+ASan (depending on compiler optimizations). Signed-off-by: Gilles Peskine --- ChangeLog.d/psa-ecb-ub.txt | 3 ++ library/common.h | 37 +++++++++++++++++++++ library/psa_crypto.c | 4 +-- library/psa_crypto_cipher.c | 23 +++++++------ tests/suites/test_suite_psa_crypto.function | 5 +-- 5 files changed, 58 insertions(+), 14 deletions(-) create mode 100644 ChangeLog.d/psa-ecb-ub.txt diff --git a/ChangeLog.d/psa-ecb-ub.txt b/ChangeLog.d/psa-ecb-ub.txt new file mode 100644 index 000000000..9d725ac70 --- /dev/null +++ b/ChangeLog.d/psa-ecb-ub.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix undefined behavior (typically harmless in practice) in PSA ECB + encryption and decryption. diff --git a/library/common.h b/library/common.h index a630fcc45..53598228b 100644 --- a/library/common.h +++ b/library/common.h @@ -25,6 +25,7 @@ #include "mbedtls/build_info.h" +#include #include /** Helper to define a function as static except when building invasive tests. @@ -68,6 +69,42 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ #define MBEDTLS_ALLOW_PRIVATE_ACCESS +/** Return an offset into a buffer. + * + * This is just the addition of an offset to a pointer, except that this + * function also accepts an offset of 0 into a buffer whose pointer is null. + * + * \param p Pointer to a buffer of at least n bytes. + * This may be \p NULL if \p n is zero. + * \param n An offset in bytes. + * \return Pointer to offset \p n in the buffer \p p. + * Note that this is only a valid pointer if the size of the + * buffer is at least \p n + 1. + */ +static inline unsigned char *mbedtls_buffer_offset( + unsigned char *p, size_t n ) +{ + return( p == NULL ? NULL : p + n ); +} + +/** Return an offset into a read-only buffer. + * + * This is just the addition of an offset to a pointer, except that this + * function also accepts an offset of 0 into a buffer whose pointer is null. + * + * \param p Pointer to a buffer of at least n bytes. + * This may be \p NULL if \p n is zero. + * \param n An offset in bytes. + * \return Pointer to offset \p n in the buffer \p p. + * Note that this is only a valid pointer if the size of the + * buffer is at least \p n + 1. + */ +static inline const unsigned char *mbedtls_buffer_offset_const( + const unsigned char *p, size_t n ) +{ + return( p == NULL ? NULL : p + n ); +} + /** Byte Reading Macros * * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 8c9deffad..e881f2f3c 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -3454,8 +3454,8 @@ psa_status_t psa_cipher_encrypt( mbedtls_svc_key_id_t key, status = psa_driver_wrapper_cipher_encrypt( &attributes, slot->key.data, slot->key.bytes, alg, local_iv, default_iv_length, input, input_length, - output + default_iv_length, output_size - default_iv_length, - output_length ); + mbedtls_buffer_offset( output, default_iv_length ), + output_size - default_iv_length, output_length ); exit: unlock_status = psa_unlock_key_slot( slot ); diff --git a/library/psa_crypto_cipher.c b/library/psa_crypto_cipher.c index 70dc74d74..91a0e3b30 100644 --- a/library/psa_crypto_cipher.c +++ b/library/psa_crypto_cipher.c @@ -516,10 +516,10 @@ psa_status_t mbedtls_psa_cipher_encrypt( if( status != PSA_SUCCESS ) goto exit; - status = mbedtls_psa_cipher_finish( &operation, - output + update_output_length, - output_size - update_output_length, - &finish_output_length ); + status = mbedtls_psa_cipher_finish( + &operation, + mbedtls_buffer_offset( output, update_output_length ), + output_size - update_output_length, &finish_output_length ); if( status != PSA_SUCCESS ) goto exit; @@ -563,17 +563,20 @@ psa_status_t mbedtls_psa_cipher_decrypt( goto exit; } - status = mbedtls_psa_cipher_update( &operation, input + operation.iv_length, - input_length - operation.iv_length, - output, output_size, &olength ); + status = mbedtls_psa_cipher_update( + &operation, + mbedtls_buffer_offset_const( input, operation.iv_length ), + input_length - operation.iv_length, + output, output_size, &olength ); if( status != PSA_SUCCESS ) goto exit; accumulated_length = olength; - status = mbedtls_psa_cipher_finish( &operation, output + accumulated_length, - output_size - accumulated_length, - &olength ); + status = mbedtls_psa_cipher_finish( + &operation, + mbedtls_buffer_offset( output, accumulated_length ), + output_size - accumulated_length, &olength ); if( status != PSA_SUCCESS ) goto exit; diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index ca1614bef..1f3b3b64a 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -4,6 +4,7 @@ #include "mbedtls/asn1.h" #include "mbedtls/asn1write.h" #include "mbedtls/oid.h" +#include "common.h" /* For MBEDTLS_CTR_DRBG_MAX_REQUEST, knowing that psa_generate_random() * uses mbedtls_ctr_drbg internally. */ @@ -3983,7 +3984,7 @@ void cipher_alg_without_iv( int alg_arg, int key_type_arg, data_t *key_data, TEST_LE_U( length, output_buffer_size ); output_length += length; PSA_ASSERT( psa_cipher_finish( &operation, - output + output_length, + mbedtls_buffer_offset( output, output_length ), output_buffer_size - output_length, &length ) ); output_length += length; @@ -4001,7 +4002,7 @@ void cipher_alg_without_iv( int alg_arg, int key_type_arg, data_t *key_data, TEST_LE_U( length, output_buffer_size ); output_length += length; PSA_ASSERT( psa_cipher_finish( &operation, - output + output_length, + mbedtls_buffer_offset( output, output_length ), output_buffer_size - output_length, &length ) ); output_length += length; From 4a8c9e2cff36efea58220d124f4850de67352f77 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Wed, 26 Oct 2022 18:49:09 +0200 Subject: [PATCH 0908/1574] tls13: Add definition of mbedtls_ssl_{write,read}_early_data Signed-off-by: Ronald Cron --- docs/architecture/tls13-support.md | 172 +++++++++++++++++++++++++++++ include/mbedtls/ssl.h | 162 +++++++++++++++++++++++++-- library/ssl_tls13_client.c | 8 +- 3 files changed, 326 insertions(+), 16 deletions(-) diff --git a/docs/architecture/tls13-support.md b/docs/architecture/tls13-support.md index f30590bd4..85482ba9e 100644 --- a/docs/architecture/tls13-support.md +++ b/docs/architecture/tls13-support.md @@ -478,3 +478,175 @@ outbound message on server side as well. * state change: the state change is done in the main state handler to ease the navigation of the state machine transitions. + + +Writing and reading early or 0-RTT data +--------------------------------------- + +An application function to write and send a buffer of data to a server through +TLS may plausibly look like: + +``` +int write_data( mbedtls_ssl_context *ssl, + const unsigned char *data_to_write, + size_t data_to_write_len, + size_t *data_written ) +{ + *data_written = 0; + + while( *data_written < data_to_write_len ) + { + ret = mbedtls_ssl_write( ssl, data_to_write + *data_written, + data_to_write_len - *data_written ); + + if( ret < 0 && + ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + { + return( ret ); + } + + *data_written += ret; + } + + return( 0 ); +} +``` +where ssl is the SSL context to use, data_to_write the address of the data +buffer and data_to_write_len the number of data bytes. The handshake may +not be completed, not even started for the SSL context ssl when the function is +called and in that case the mbedtls_ssl_write() API takes care transparently of +completing the handshake before to write and send data to the server. The +mbedtls_ssl_write() may not been able to write and send all data in one go thus +the need for a loop calling it as long as there are still data to write and +send. + +An application function to write and send early data and only early data, +data sent during the first flight of client messages while the handshake is in +its initial phase, would look completely similar but the call to +mbedtls_ssl_write_early_data() instead of mbedtls_ssl_write(). +``` +int write_early_data( mbedtls_ssl_context *ssl, + const unsigned char *data_to_write, + size_t data_to_write_len, + size_t *data_written ) +{ + *data_written = 0; + + while( *data_written < data_to_write_len ) + { + ret = mbedtls_ssl_write_early_data( ssl, data_to_write + *data_written, + data_to_write_len - *data_written ); + + if( ret < 0 && + ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + { + return( ret ); + } + + *data_written += ret; + } + + return( 0 ); +} +``` +Note that compared to write_data(), write_early_data() can also return +MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA and that should be handled +specifically by the user of write_early_data(). A fresh SSL context (typically +just after a call to mbedtls_ssl_setup() or mbedtls_ssl_session_reset()) would +be expected when calling `write_early_data`. + +All together, code to write and send a buffer of data as long as possible as +early data and then as standard post-handshake application data could +plausibly look like: + +``` +ret = write_early_data( ssl, data_to_write, data_to_write_len, + &early_data_written ); +if( ret < 0 && + ret != MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA ) +{ + goto error; +} + +ret = write_data( ssl, data_to_write + early_data_written, + data_to_write_len - early_data_written, &data_written ); +if( ret < 0 ) + goto error; + +data_written += early_data_written; +``` + +Finally, taking into account that the server may reject early data, application +code to write and send a buffer of data could plausibly look like: +``` +ret = write_early_data( ssl, data_to_write, data_to_write_len, + &early_data_written ); +if( ret < 0 && + ret != MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA ) +{ + goto error; +} + +/* + * Make sure the handshake is completed as it is a requisite to + * mbedtls_ssl_get_early_data_status(). + */ +while( !mbedtls_ssl_is_handshake_over( ssl ) ) +{ + ret = mbedtls_ssl_handshake( ssl ); + if( ret < 0 && + ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + { + goto error; + } +} + +ret = mbedtls_ssl_get_early_data_status( ssl ); +if( ret < 0 ) + goto error; + +if( ret == MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED ) + early_data_written = 0; + +ret = write_data( ssl, data_to_write + early_data_written, + data_to_write_len - early_data_written, &data_written ); +if( ret < 0 ) + goto error; + +data_written += early_data_written; +``` + +Basically, the same holds for reading early data on the server side without the +complication of possible rejection. An application function to read early data +into a given buffer could plausibly look like: +``` +int read_early_data( mbedtls_ssl_context *ssl, + unsigned char *buffer, + size_t buffer_size, + size_t *data_len ) +{ + *data_len = 0; + + while( *data_len < buffer_size ) + { + ret = mbedtls_ssl_read_early_data( ssl, buffer + *data_len, + buffer_size - *data_len ); + + if( ret < 0 && + ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + { + return( ret ); + } + + *data_len += ret; + } + + return( 0 ); +} +``` +with again calls to read_early_data() expected to be done with a fresh SSL +context. diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index dddaaea39..ea5866108 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -96,15 +96,16 @@ /* Error space gap */ /** Processing of the Certificate handshake message failed. */ #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE -0x7A00 +/* Error space gap */ /** * Received NewSessionTicket Post Handshake Message. * This error code is experimental and may be changed or removed without notice. */ #define MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET -0x7B00 -/* Error space gap */ -/* Error space gap */ -/* Error space gap */ -/* Error space gap */ +/** Not possible to read early data */ +#define MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA -0x7B80 +/** Not possible to write early data */ +#define MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA -0x7C00 /* Error space gap */ /* Error space gap */ /* Error space gap */ @@ -806,14 +807,6 @@ typedef struct mbedtls_ssl_key_cert mbedtls_ssl_key_cert; typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif -#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) -#define MBEDTLS_SSL_EARLY_DATA_STATUS_UNKNOWN 0 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 1 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT 2 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED 3 -#define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 4 -#endif - #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) typedef uint8_t mbedtls_ssl_tls13_ticket_flags; @@ -4897,6 +4890,151 @@ int mbedtls_ssl_send_alert_message( mbedtls_ssl_context *ssl, */ int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ); +#if defined(MBEDTLS_SSL_EARLY_DATA) + +#if defined(MBEDTLS_SSL_SRV_C) +/** + * \brief Read at most 'len' application data bytes while performing + * the handshake (early data). + * + * \note This function behaves mainly as mbedtls_ssl_read(). The + * specification of mbedtls_ssl_read() relevant to TLS 1.3 + * (thus not the parts specific to (D)TLS 1.2) applies to this + * function and the present documentation is restricted to the + * differences with mbedtls_ssl_read(). + * + * \param ssl SSL context + * \param buf buffer that will hold the data + * \param len maximum number of bytes to read + * + * \return One additional specific return value: + * #MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA. + * + * #MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA is returned when it + * is not possible to read early data for the SSL context + * \p ssl. + * + * It may have been possible and it is not possible + * anymore because the server received the End of Early Data + * message or the maximum number of allowed early data for the + * PSK in use has been reached. + * + * It may never have been possible and will never be possible + * for the SSL context \p ssl because the use of early data + * is disabled for that context or more generally the context + * is not suitably configured to enable early data or the + * client does not use early data or the first call to the + * function was done while the handshake was already too + * advanced to gather and accept early data. + * + * It is not possible to read early data for the SSL context + * \p ssl but this does not preclude for using it with + * mbedtls_ssl_write(), mbedtls_ssl_read() or + * mbedtls_ssl_handshake(). + * + * \note When a server wants to retrieve early data, it is expected + * that this function starts the handshake for the SSL context + * \p ssl. But this is not mandatory. + * + */ +int mbedtls_ssl_read_early_data( mbedtls_ssl_context *ssl, + unsigned char *buf, size_t len ); +#endif /* MBEDTLS_SSL_SRV_C */ + +#if defined(MBEDTLS_SSL_CLI_C) +/** + * \brief Try to write exactly 'len' application data bytes while + * performing the handshake (early data). + * + * \note This function behaves mainly as mbedtls_ssl_write(). The + * specification of mbedtls_ssl_write() relevant to TLS 1.3 + * (thus not the parts specific to (D)TLS1.2) applies to this + * function and the present documentation is restricted to the + * differences with mbedtls_ssl_write(). + * + * \param ssl SSL context + * \param buf buffer holding the data + * \param len how many bytes must be written + * + * \return One additional specific return value: + * #MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA. + * + * #MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA is returned when it + * is not possible to write early data for the SSL context + * \p ssl. + * + * It may have been possible and it is not possible + * anymore because the client received the server Finished + * message, the server rejected early data or the maximum + * number of allowed early data for the PSK in use has been + * reached. + * + * It may never have been possible and will never be possible + * for the SSL context \p ssl because the use of early data + * is disabled for that context or more generally the context + * is not suitably configured to enable early data or the first + * call to the function was done while the handshake was + * already completed. + * + * It is not possible to write early data for the SSL context + * \p ssl but this does not preclude for using it with + * mbedtls_ssl_write(), mbedtls_ssl_read() or + * mbedtls_ssl_handshake(). + * + * \note This function may write early data only if the SSL context + * has been configured for the handshake with a PSK for which + * early data is allowed. + * + * \note To maximize the number of early data that can be written in + * the course of the handshake, it is expected that this + * function starts the handshake for the SSL context \p ssl. + * But this is not mandatory. + * + * \note This function does not provide any information on whether + * the server has accepted or will accept early data or not. + * When it returns a positive value, it just means that it + * has written early data to the server. To know whether the + * server has accepted early data or not, you should call + * mbedtls_ssl_get_early_data_status() with the handshake + * completed. + */ +int mbedtls_ssl_write_early_data( mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len ); + +#define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 0 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 1 +#define MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED 2 +/** + * \brief Get the status of the negotiation of the use of early data. + * + * \param ssl The SSL context to query + * + * \return #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if this function is called + * from the server-side. + * + * \return #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if this function is called + * prior to completion of the handshake. + * + * \return #MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT if the client has + * not indicated the use of early data to the server. + * + * \return #MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED if the client has + * indicated the use of early data and the server has accepted + * it. + * + * \return #MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED if the client has + * indicated the use of early data but the server has rejected + * it. In this situation, the client may want to re-send the + * early data it may have tried to send by calling + * mbedtls_ssl_write_early_data() as ordinary post-handshake + * application data by calling mbedtls_ssl_write(). + * + */ +int mbedtls_ssl_get_early_data_status( mbedtls_ssl_context *ssl ); +#endif /* MBEDTLS_SSL_CLI_C */ + +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /** * \brief Free referenced items in an SSL context and clear memory * diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 9d2e69e3e..0109f776c 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -1183,11 +1183,11 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, return( ret ); p += ext_len; - /* Initializes the status to `indication sent`. It will be updated to - * `accepted` or `rejected` depending on whether the EncryptedExtension - * message will contain an early data indication extension or not. + /* Initializes the status to `rejected`. It will be updated to + * `accepted` if the EncryptedExtension message contain an early data + * indication extension. */ - ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_INDICATION_SENT; + ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; } else { From 4c7cf7d742dce297c772fdf94f2de9d8a7237dab Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 9 Nov 2022 14:07:43 +0100 Subject: [PATCH 0909/1574] Add low level subtraction with modulus Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 10 ++++++++++ library/bignum_mod_raw.h | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index b43add77d..9a8e3ee9a 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -108,6 +108,16 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* BEGIN MERGE SLOT 2 */ +void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N ) +{ + mbedtls_mpi_uint c = mbedtls_mpi_core_sub( X, A, B, N->limbs ); + + (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, c ); +} + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f738e917e..0f1b0c0de 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -144,6 +144,26 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* BEGIN MERGE SLOT 2 */ +/** \brief Perform a subtraction of two MPIs and return the modulus + * of the result. + * + * The size of the operation is determined by \p N. + * + * \param[out] X The address of the result MPI. + * This must be initialized. Must have enough limbs to + * store the full value of the result. + * \param[in] A The address of the first MPI. This must be initialized. + * \param[in] B The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus. Use to perform a modulu + * operation on the result of the subtraction. + * + * \note Both \p A and \p B must be smaller than the modulus \p N. + */ +void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N ); + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From cefe03a10cb0e6010670cc9c265c6c1891130f6b Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 15 Nov 2022 18:50:17 +0100 Subject: [PATCH 0910/1574] Add tests for low level subtraction with modulus Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod_raw.data | 39 ++++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 53 +++++++++++++++++++ 2 files changed, 92 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 8cbd918f8..9290ef4f9 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -185,6 +185,45 @@ mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA # BEGIN MERGE SLOT 2 +mbedtls_mpi_mod_raw_sub: 0 - 0, mod 2 +mpi_mod_raw_sub:"0":"0":"2":"0" + +mbedtls_mpi_mod_raw_sub: 0 - 1, mod 2 +mpi_mod_raw_sub:"0":"1":"2":"1" + +mbedtls_mpi_mod_raw_sub: 1 - 0, mod 2 +mpi_mod_raw_sub:"1":"0":"2":"1" + +mbedtls_mpi_mod_raw_sub: 9 - 2, mod 10 +mpi_mod_raw_sub:"9":"2":"A":"7" + +mbedtls_mpi_mod_raw_sub: 6 - 7, mod 10 +mpi_mod_raw_sub:"6":"7":"A":"9" + +mbedtls_mpi_mod_raw_sub: 4 byte values, first is bigger +mpi_mod_raw_sub:"7DE15401":"5553FE19":"971F63D9":"288D55E8" + +mbedtls_mpi_mod_raw_sub: 4 byte values, second is bigger +mpi_mod_raw_sub:"58AB5FB1":"B7AFCADC":"DBD9D998":"7CD56E6D" + +mbedtls_mpi_mod_raw_sub: 8 byte values, first is bigger +mpi_mod_raw_sub:"8FE975EFDF264BDF":"6A4E956C95C1649E":"BB63D38C3AF7922E":"259AE0834964E741" + +mbedtls_mpi_mod_raw_sub: 8 byte values, second is bigger +mpi_mod_raw_sub:"0D6A093316013F68":"39DA803DB5C41434":"509876EAB3D1C663":"2427FFE0140EF197" + +mbedtls_mpi_mod_raw_sub: 16 byte values, first is bigger +mpi_mod_raw_sub:"94789C046DEC921C4EF12561271EEB12":"3AD8A050F6CC00354FDE5557E1839859":"A52A910D219A87F4F174FD9481873CEE":"599FFBB3772091E6FF12D009459B52B9" + +mbedtls_mpi_mod_raw_sub: 16 byte values, second is bigger +mpi_mod_raw_sub:"14D92E888E1274EDC37CA73B20B1F8BF":"8B7281E720762FD849948DCFA3CCC7F6":"94D3A7DE6456850BF05EB88B486DD4CD":"1E3A547FD1F2CA216A46D1F6C5530596" + +mbedtls_mpi_mod_raw_sub: 256 byte values, first is bigger +mpi_mod_raw_sub:"A39EE6C3FACCF07EEDDF235E8B31DBF843D2040AE2076B357EDD65FA16E639B9AA22451B9BA9E740343DC4BB0B1E6991B58084E1294A8849A326CAAC736514448D3D45464D5AC9D965046CD258923D892A027C89F4801DC754CAFC0418CF673D04D05E56074F46F59BD89CDE1D11168623293B564141DF7098EBCA253B10B4756C8897E4D23190AC943CE03AAFA7A76BCB8A44D8C76A3ABEC8F854BAD7333E80AAF2FA9A8D8BF148FD257396CD3B8E1418F0EE7C148146BF3DABF22C42E22A5397AC1CFFD77222D16700CDAAC8D9AB6CE1FD7A9DC7C826617748A7489AB77535F51BD9671FBCD1ADA63B4B780F46D325856F91DE68316CA34FEC645055614096":"66FF62A95E9CB6DE7242182484F223EDC6AE1E480773854A40A9EA2AD2349EA134722BCB9D8F55DBFA535CB919CE9A4933660F38DC08848D8A1442044AE3519D697DC85D999F525428A93D8347D975A54FDC46233402DD0E19E67F2146D49DB2990C88C0548DC14EE82E4A56F9C23B0119EC624FDF889D29BA4AB2B85040537649CF210C8F5712F0FD5B05CDA71949A1070FE9D28BF2D57D1D0D5DFD290E97060CA67A83F7C6F463E359E50102C6452E0EEAC3C0638264748466BA836C6CDAEB38B86F3A002324EE8C8690EC4E832692EA0216F71196E883209B62379B73E4474994554ADD57E4095A1004F475923EA44F553F325483328F7776A8DEB6A330F7":"CBB1EA630FEB95DCD8E54CE32CDC2CB7C42FDF8174B534F95247575399CAACBCAC7B6B35494E64308866ADD71C3AAB3875A0444635275F08EB77B52039559B1C9764EA1DA7F36676C4FAEB6F210DC6934156DB306ABDD75460CE3728C307A4829B7015CF1F4C7F086D30AE3B1045353FD590E36383F354AC8CCD38B65887D27F00B2862E0DD1DA0C5003BE346E4DB3980728334EE8DBABD649CE893F17CE64468E552F02EFBF4AF29F75CE032507412531B7B64F4B08BA971E83B3564602BB07129782879E04960319CBD885F6E83AD71D26C14FD5382087D24A6C7D201D0A25B772D194ED64EDC4B153BBB64CC51947752F6AF4E0DBE50EBBF215531144C139":"3C9F841A9C3039A07B9D0B3A063FB80A7D23E5C2DA93E5EB3E337BCF44B19B1875B0194FFE1A916439EA6801F14FCF48821A75A84D4203BC191288A82881C2A723BF7CE8B3BB77853C5B2F4F10B8C7E3DA263666C07D40B93AE47CE2D1FAC98A6BC3D595B2C185A6B3AA5287234EDB85093CD90661B94246DEA1176CEAD060FF22B976D842DA7DBB96E1DA6D088E5DCAC47A5B063B776541ABEAF6BDAE24A77A9E4C801695C4FCE519CB8E95CA7548E60A062ABBB0FEE24AB94537A8D6754F685EF3ADC5D74EFDE2DA7A3CBE7A5684D9F7FB63A6B6313DDE56AD4510FF4390EEAB87841C4264EDA44C2B468399B49481361A52AC13AE3A13D875BB719EBE0F9F" + +mbedtls_mpi_mod_raw_sub: 256 byte values, second is bigger +mpi_mod_raw_sub:"974663D69B8161A296AB77AD971DDA0672BE34E1EE5DB71D68AF76926CFB8C698AB19B45CD6F829260403839088DDF7E5339966D2D51DAC9E6EABB5C797739953D7537FC4B59EF089E5D0845C5501ECBEDECE2575AE8FC67D46E0B59DDED9528D66EF664D8415887CEC9641C0CBCB45B5EA921263B025EC4A7389695C95F7F17737FB4D42B8DA97BB8B4173276156D87E82F6EC157E1980EFBF0D9144CAB42797B5B0B0FA3D4008034456488202F213A7C28C19D514C111530F6895FAAA243BEFCDAB5CAEF4908F31AA2736BE287B81677F36A22C698FE964F88CDF8EE3DC7780735986627297BF63CA9EE8E9754FD443CE45E50165CF444A5CF538657D7E028":"A3B1E589E726DF39C69C7FFAF4A98D20D38F2DFB4DBCDF25FB95B93405C3DF0A2BE1940A3B5F9076389434D943750B48F5C44D13EB5C4502484D21BE3E7CC17BFC4C8AA12EE2EDF0014A64435678A489D0D28EFE2C54F5FBE262A32D27EF8B0172D3E8A40CF00856EDA21BFCD516DE3899838C535031DE227440B6A97B9A58398B6D8DB2CCE10230D9E738655B30022E737CF716F7C6E1C27D30E30FBA57C1A0224B929C6496B9D3DE40B8258211D8889C747069274F30887A717A95FEA4A4AE292F7ECAAFA69995B2ACA5A98F2AB850B291C3B935B260D598189732D2F9BAECC3A49603AEE5AA14D02393834C66B7F3D41D266264806F46533FC1044E52EF67":"B28F0A9BC32356B8DA0A7C0B96E0A7BF1A724C723486B13E050CE1A87A1FCA8868A3DA57C2F04EC578759A32EA96B3113EFA757586BBF93EE422CA2EE5A649D4B38D07729314B4E6E652886027DA61FD5AF4A2B1C38F5465D6B0310DF95D389CCC748961EDA8F24F57B18E3C485467CC13898325A77B609996EC23A9C312A37C135BBB49C50956B7FB2FD4FFE7A1F85538C19E8D84255184B6D98ED49F506831A1CA5198706F887D6F243E49CBC803B205F1FF87CA6E18859BFDB1FADF084F7F696B0C2AC7742ECC37A8270FAF00454D4C152C18AAE80D17B84B3E03CC38BD68E2D28A903F3CB2DC5C4FD2341E5F323B164AF996ADCF45619101BA65AC6B12EE":"A62388E8777DD921AA1973BE3954F4A4B9A15358D527893572269F06E15777E7C773E193550040E1A0219D92AFAF87469C6FBECEC8B18F0682C063CD20A0C1EDF4B5B4CDAF8BB5FF83652C6296B1DC3F780EF60AF2235AD1C8BB993AAF5B42C4300F9722B8FA428038D8D65B7FFA3DEED8AF17F8924BE13BC9E4039610D7CA59FB6DE26B23B5FE02D9FCB3CD028763AEAD741637E44007D1359984D931A3E90AFAD9CA0BAFACCF29C528EAAC69E54C63E5A650BBF46AF9125282C0C48B05EE903D16432B07169E299F9DF4D2025D45131176D2823BCEAAD86FBB74C9E77CC9F426638CF2B78084BDC8D62D3F694D778B7F1231845FABCA5FE3914CE7B5F003AF" + # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 4adccce25..22a73e032 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -275,6 +275,59 @@ exit: /* BEGIN MERGE SLOT 2 */ +/* BEGIN_CASE */ +void mpi_mod_raw_sub( char * input_A, + char * input_B, + char * input_N, + char * result ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *res = NULL; + size_t limbs_A; + size_t limbs_B; + size_t limbs_N; + size_t limbs_res; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &res, &limbs_res, result ), 0 ); + + size_t limbs = limbs_N; + size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + + TEST_ASSERT( limbs_A <= limbs ); + TEST_ASSERT( limbs_B <= limbs ); + TEST_ASSERT( limbs_res <= limbs ); + + ASSERT_ALLOC( X, limbs ); + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + + mbedtls_mpi_mod_raw_sub( X, A, B, &m ); + + ASSERT_COMPARE( X, bytes, res, bytes ); + +exit: + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( X ); + mbedtls_free( res ); + + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( N ); +} +/* END_CASE */ + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From c426d9b6cc48d2e957c1f0ddeceb2810e878bc24 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 15 Nov 2022 18:51:20 +0100 Subject: [PATCH 0911/1574] Add generated test for low level subtraction with modulus Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 90 +++++++++++++++++++++++++++ tests/CMakeLists.txt | 1 + tests/Makefile | 1 + 3 files changed, 92 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 60f2feded..5d4bda2a7 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -30,6 +30,96 @@ class BignumModRawTarget(test_data_generation.BaseTarget): # BEGIN MERGE SLOT 2 +class BignumModRawSub(BignumModRawOperation): + """Test cases for bignum mod raw sub.""" + count = 0 + symbol = "-" + test_function = "mpi_mod_raw_sub" + test_name = "mbedtls_mpi_mod_raw_sub" + unique_combinations_only = False + + input_values = [ + "0", "1", "fe", "ff", "fffe", "ffff", + "fffffffffffffffe", "ffffffffffffffff", + "fffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffff", + "1234567890abcdef01234567890abcdef0", + "3653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", + ( + "14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3" + "738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122" + "c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f" + "01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + ) + ] + + modulus_values = [ + "7", "ff", + "d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43", + "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67", + ( + "c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18ab" + "f5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d80" + "57abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba130" + "2efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223" + ), + ( + "5c083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4" + "fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac0" + "83126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf" + "3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac05d2" + ) + ] + + descr_tpl = '{} #{} \"{}\" - \"{}\" % \"{}\".' + + BITS_IN_LIMB = 32 + + @property + def boundary(self) -> int: + return self.int_n + + @property + def x(self): # pylint: disable=invalid-name + return (self.int_a - self.int_b) % self.int_n if self.int_n > 0 else 0 + + @property + def hex_x(self) -> str: + return format(self.x, 'x').zfill(self.hex_digits) + + def description(self) -> str: + return self.descr_tpl.format(self.test_name, + self.count, + self.int_a, + self.int_b, + self.int_n) + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.hex_a, + self.hex_b, + self.hex_n, + self.hex_x]] + + def result(self) -> List[str]: + return [self.hex_x] + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + for a_value, b_value in cls.get_value_pairs(): + int_a = bignum_common.hex_to_int(a_value) + int_b = bignum_common.hex_to_int(b_value) + highest = max(int_a, int_b) + + # Choose a modulus bigger then the arguments + for n_value in cls.modulus_values: + int_n = bignum_common.hex_to_int(n_value) + if highest < int_n: + yield cls(n_value, a_value, b_value, cls.BITS_IN_LIMB).create_test_case() + # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c23cb6b3d..0ef6fdbc4 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -70,6 +70,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_bignum_tests.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_common.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod_raw.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index 7c08f54e1..0b31cdd07 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -94,6 +94,7 @@ $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_core.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_mod_raw.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: From 3411e949cdc202824634af489ad5492ef46210d9 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 16 Nov 2022 11:31:00 +0100 Subject: [PATCH 0912/1574] Cas variable to proper type Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 9a8e3ee9a..6c694b0c5 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -115,7 +115,7 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, { mbedtls_mpi_uint c = mbedtls_mpi_core_sub( X, A, B, N->limbs ); - (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, c ); + (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned) c ); } /* END MERGE SLOT 2 */ From 02d2313829b1dad945b95873a502fd8dcd248559 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 23 Nov 2022 13:09:43 +0100 Subject: [PATCH 0913/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.h | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 0f1b0c0de..05fa9d6ac 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -144,20 +144,22 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* BEGIN MERGE SLOT 2 */ -/** \brief Perform a subtraction of two MPIs and return the modulus - * of the result. +/** \brief Subtract two MPIs, returning the residue modulo the specified + * modulus. * - * The size of the operation is determined by \p N. + * The size of the operation is determined by \p N. \p A and \p B must have + * the same number of limbs as \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. * * \param[out] X The address of the result MPI. * This must be initialized. Must have enough limbs to * store the full value of the result. * \param[in] A The address of the first MPI. This must be initialized. * \param[in] B The address of the second MPI. This must be initialized. - * \param[in] N The address of the modulus. Use to perform a modulu + * \param[in] N The address of the modulus. Used to perform a modulo * operation on the result of the subtraction. - * - * \note Both \p A and \p B must be smaller than the modulus \p N. */ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, From 68a45e0aaff5409e75d2eee01d179dcbd29e59fd Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 23 Nov 2022 13:12:51 +0100 Subject: [PATCH 0914/1574] Fix potential not initialized warning Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod_raw.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 22a73e032..aaf26ca79 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -291,6 +291,9 @@ void mpi_mod_raw_sub( char * input_A, size_t limbs_N; size_t limbs_res; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); @@ -305,9 +308,6 @@ void mpi_mod_raw_sub( char * input_A, ASSERT_ALLOC( X, limbs ); - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, N, limbs, MBEDTLS_MPI_MOD_EXT_REP_BE, From 4d3f3c54305b06c084ea8e9b6f64339d6e5174bc Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 23 Nov 2022 13:14:15 +0100 Subject: [PATCH 0915/1574] Fix the checking of the used limbs Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod_raw.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index aaf26ca79..256ec9dcb 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -302,9 +302,9 @@ void mpi_mod_raw_sub( char * input_A, size_t limbs = limbs_N; size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( limbs_A <= limbs ); - TEST_ASSERT( limbs_B <= limbs ); - TEST_ASSERT( limbs_res <= limbs ); + TEST_EQUAL( limbs_A, limbs ); + TEST_EQUAL( limbs_B, limbs ); + TEST_EQUAL( limbs_res, limbs ); ASSERT_ALLOC( X, limbs ); From b3b34666575f0a1ac8e828fa5efb12d42ecb4da5 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 23 Nov 2022 13:17:13 +0100 Subject: [PATCH 0916/1574] Test subtraction if the parameters are aliased to each other Signed-off-by: Gabor Mezei --- .../suites/test_suite_bignum_mod_raw.function | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 256ec9dcb..2d9e41228 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -314,9 +314,29 @@ void mpi_mod_raw_sub( char * input_A, MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); mbedtls_mpi_mod_raw_sub( X, A, B, &m ); - ASSERT_COMPARE( X, bytes, res, bytes ); + /* alias X to A */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_sub( X, X, B, &m ); + ASSERT_COMPARE( X, bytes, res, bytes ); + + /* alias X to B */ + memcpy( X, B, bytes ); + mbedtls_mpi_mod_raw_sub( X, A, X, &m ); + ASSERT_COMPARE( X, bytes, res, bytes ); + + /* A == B: alias A and B */ + if( memcmp( A, B, bytes ) == 0 ) + { + mbedtls_mpi_mod_raw_sub( X, A, A, &m ); + ASSERT_COMPARE( X, bytes, res, bytes ); + + /* X, A, B all aliased together */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_sub( X, X, X, &m ); + ASSERT_COMPARE( X, bytes, res, bytes ); + } exit: mbedtls_free( A ); mbedtls_free( B ); From f9a1c37bc8dd54d90ea706ed11a73e4b32a3e974 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 14:02:00 +0000 Subject: [PATCH 0917/1574] Whitespace cleanup Signed-off-by: Dave Rodgman --- library/common.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/common.h b/library/common.h index bcb99f752..94bf7b9d6 100644 --- a/library/common.h +++ b/library/common.h @@ -417,14 +417,14 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c static inline void mbedtls_xor( unsigned char* r, unsigned char const *a, unsigned char const *b, size_t n ) { #if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) - uint32_t *a32 = (uint32_t*)a; - uint32_t *b32 = (uint32_t*)b; - uint32_t *r32 = (uint32_t*)r; - for ( size_t i = 0; i < (n >> 2); i++ ) + uint32_t *a32 = (uint32_t *)a; + uint32_t *b32 = (uint32_t *)b; + uint32_t *r32 = (uint32_t *)r; + for ( size_t i = 0; i < ( n >> 2 ); i++ ) { r32[i] = a32[i] ^ b32[i]; } - for ( size_t i = n - (n % 4) ; i < n; i++ ) + for ( size_t i = n - ( n % 4 ) ; i < n; i++ ) { r[i] = a[i] ^ b[i]; } From 63d114305f1c46fd9cdf1903d7b520fb77a4b655 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 14:03:30 +0000 Subject: [PATCH 0918/1574] Whitespace cleanup Signed-off-by: Dave Rodgman --- library/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/common.h b/library/common.h index 94bf7b9d6..c3847cdbf 100644 --- a/library/common.h +++ b/library/common.h @@ -414,7 +414,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * \param b Pointer to input (buffer of at least \p n bytes) * \param n Number of bytes to process. */ -static inline void mbedtls_xor( unsigned char* r, unsigned char const *a, unsigned char const *b, size_t n ) +static inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { #if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) uint32_t *a32 = (uint32_t *)a; From 3c8eb7e9909dcfb05523d3c1c21f59687588bbfa Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 14:50:03 +0000 Subject: [PATCH 0919/1574] Provide external definition of mbedtls_xor Signed-off-by: Dave Rodgman --- library/common.h | 2 +- library/platform_util.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/library/common.h b/library/common.h index c3847cdbf..e502b5de1 100644 --- a/library/common.h +++ b/library/common.h @@ -414,7 +414,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * \param b Pointer to input (buffer of at least \p n bytes) * \param n Number of bytes to process. */ -static inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) +inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { #if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) uint32_t *a32 = (uint32_t *)a; diff --git a/library/platform_util.c b/library/platform_util.c index 916a7f444..8fba664d2 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -143,3 +143,8 @@ struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt, void (*mbedtls_test_hook_test_fail)( const char *, int, const char *); #endif /* MBEDTLS_TEST_HOOKS */ +/* + * Provide an external definition of mbedtls_xor so that the compiler + * has the option to not inline it + */ +extern inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ); From 6157fee306e581f12d4affc2b7eec2f5cb72d556 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 23 Nov 2022 16:13:13 +0100 Subject: [PATCH 0920/1574] Unify defintions of inline for MSVC (and old armcc?) Having multiple definitions was cumbersome, and meant we might forget the definition when adding an inline definition to a file that didn't have one before (as I did when I added an inline definition in common.h). Resolves #6649. Signed-off-by: Gilles Peskine --- include/mbedtls/aes.h | 5 ----- include/mbedtls/build_info.h | 6 ++++++ include/mbedtls/cipher.h | 5 ----- include/mbedtls/error.h | 5 ----- include/mbedtls/pem.h | 5 ----- include/mbedtls/pk.h | 5 ----- 6 files changed, 6 insertions(+), 25 deletions(-) diff --git a/include/mbedtls/aes.h b/include/mbedtls/aes.h index c35901122..1cd20fe06 100644 --- a/include/mbedtls/aes.h +++ b/include/mbedtls/aes.h @@ -61,11 +61,6 @@ /** Invalid input data. */ #define MBEDTLS_ERR_AES_BAD_INPUT_DATA -0x0021 -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #ifdef __cplusplus extern "C" { #endif diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 170cbebbe..362ce2fd5 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -53,6 +53,12 @@ #define _CRT_SECURE_NO_DEPRECATE 1 #endif +/* Define `inline` on some non-C99-compliant compilers. */ +#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ + !defined(inline) && !defined(__cplusplus) +#define inline __inline +#endif + #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/mbedtls_config.h" #else diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h index a3f52ea71..151da1d83 100644 --- a/include/mbedtls/cipher.h +++ b/include/mbedtls/cipher.h @@ -46,11 +46,6 @@ #define MBEDTLS_CIPHER_MODE_STREAM #endif -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /** The selected feature is not available. */ #define MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE -0x6080 /** Bad input parameters. */ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index eb8391311..04e089605 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -26,11 +26,6 @@ #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /** * Error code layout. * diff --git a/include/mbedtls/pem.h b/include/mbedtls/pem.h index c75a1246a..a4c6fb89f 100644 --- a/include/mbedtls/pem.h +++ b/include/mbedtls/pem.h @@ -27,11 +27,6 @@ #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /** * \name PEM Error codes * These error codes are returned in case of errors reading the diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h index 867961d32..db0bfacab 100644 --- a/include/mbedtls/pk.h +++ b/include/mbedtls/pk.h @@ -44,11 +44,6 @@ #include "psa/crypto.h" #endif -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /** Memory allocation failed. */ #define MBEDTLS_ERR_PK_ALLOC_FAILED -0x3F80 /** Type mismatch, eg attempt to encrypt with an ECDSA key */ From 6b3c0c59433d5354e255fbdc3e6c5a37299a34b4 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 23 Nov 2022 16:45:05 +0100 Subject: [PATCH 0921/1574] Update the test case generator Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 93 ++++----------------------- 1 file changed, 11 insertions(+), 82 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 5d4bda2a7..c27104854 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -30,95 +30,24 @@ class BignumModRawTarget(test_data_generation.BaseTarget): # BEGIN MERGE SLOT 2 -class BignumModRawSub(BignumModRawOperation): - """Test cases for bignum mod raw sub.""" - count = 0 +class BignumModRawSub(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for bignum mpi_mod_raw_sub().""" symbol = "-" test_function = "mpi_mod_raw_sub" test_name = "mbedtls_mpi_mod_raw_sub" - unique_combinations_only = False - - input_values = [ - "0", "1", "fe", "ff", "fffe", "ffff", - "fffffffffffffffe", "ffffffffffffffff", - "fffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffff", - "1234567890abcdef01234567890abcdef0", - "3653f8dd9b1f282e4067c3584ee207f8da94e3e8ab73738f", - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe", - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0", - ( - "14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3" - "738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122" - "c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f" - "01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - ) - ] - - modulus_values = [ - "7", "ff", - "d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff43", - "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67", - ( - "c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18ab" - "f5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d80" - "57abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba130" - "2efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223" - ), - ( - "5c083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4" - "fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac0" - "83126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf" - "3b645a1cac083126e978d4fdf3b645a1cac083126e978d4fdf3b645a1cac05d2" - ) - ] - - descr_tpl = '{} #{} \"{}\" - \"{}\" % \"{}\".' - - BITS_IN_LIMB = 32 - - @property - def boundary(self) -> int: - return self.int_n - - @property - def x(self): # pylint: disable=invalid-name - return (self.int_a - self.int_b) % self.int_n if self.int_n > 0 else 0 - - @property - def hex_x(self) -> str: - return format(self.x, 'x').zfill(self.hex_digits) - - def description(self) -> str: - return self.descr_tpl.format(self.test_name, - self.count, - self.int_a, - self.int_b, - self.int_n) + input_style = "fixed" + arity = 2 def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.hex_a, - self.hex_b, - self.hex_n, - self.hex_x]] + return [bignum_common.quote_str(n) for n in [self.arg_a, + self.arg_b, + self.arg_n] + ] + self.result() def result(self) -> List[str]: - return [self.hex_x] - - @classmethod - def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - for a_value, b_value in cls.get_value_pairs(): - int_a = bignum_common.hex_to_int(a_value) - int_b = bignum_common.hex_to_int(b_value) - highest = max(int_a, int_b) - - # Choose a modulus bigger then the arguments - for n_value in cls.modulus_values: - int_n = bignum_common.hex_to_int(n_value) - if highest < int_n: - yield cls(n_value, a_value, b_value, cls.BITS_IN_LIMB).create_test_case() + result = (self.int_a - self.int_b) % self.int_n + return [self.format_result(result)] # END MERGE SLOT 2 From 15531bc6d2e3c5e68229cd38baf59f382d238c89 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 16:11:04 +0000 Subject: [PATCH 0922/1574] Test for all alignment combinations Signed-off-by: Dave Rodgman --- tests/suites/test_suite_common.function | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function index 8412e60f3..6c0d4afc4 100644 --- a/tests/suites/test_suite_common.function +++ b/tests/suites/test_suite_common.function @@ -68,14 +68,19 @@ void mbedtls_xor( int len ) mbedtls_xor( r2, r2, r2, n ); ASSERT_COMPARE( r1, n, r2, n ); - /* Test non-word-aligned buffers */ - fill_arrays( a + 1, b + 1, r1 + 1, r2 + 1, n ); - for ( size_t i = 0; i < n; i++ ) + /* Test non-word-aligned buffers, for all combinations of alignedness */ + for ( int i = 0; i < 7; i++ ) { - r1[i + 1] = a[i + 1] ^ b[i + 1]; + int r_off = i & 1, a_off = (i & 2) >> 1, b_off = (i & 4) >> 2; + fill_arrays( a, b, r1, r2, n + 1 ); + + for ( size_t i = 0; i < n; i++ ) + { + r1[i + r_off] = a[i + a_off] ^ b[i + b_off]; + } + mbedtls_xor( r2 + r_off, a + a_off, b + b_off, n ); + ASSERT_COMPARE( r1 + r_off, n, r2 + r_off, n ); } - mbedtls_xor( r2 + 1, a + 1, b + 1, n ); - ASSERT_COMPARE( r1 + 1, n, r2 + 1, n ); exit: if ( a != NULL ) mbedtls_free( a ); if ( a != NULL ) mbedtls_free( b ); From 1bab27f9831c3258716d09ef9702dabcb6dca703 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 16:51:59 +0000 Subject: [PATCH 0923/1574] Prevent unaligned access under ASan builds Signed-off-by: Dave Rodgman --- library/common.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/common.h b/library/common.h index e502b5de1..3925a79ce 100644 --- a/library/common.h +++ b/library/common.h @@ -73,11 +73,12 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * * This list is incomplete. */ -#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ +#if (defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ || defined(__ARM_FEATURE_UNALIGNED) \ || defined(__aarch64__) \ || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ - || defined(__ARM_ARCH_7A__) + || defined(__ARM_ARCH_7A__)) \ + && (!(defined(__has_feature) && __has_feature(undefined_behavior_sanitizer))) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS #endif From 468df317bfea56a90eaf983b26fa8e9541c04aff Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 16:56:35 +0000 Subject: [PATCH 0924/1574] Fix MSVC support for inline keyword Signed-off-by: Dave Rodgman --- library/common.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/common.h b/library/common.h index 3925a79ce..808d13de2 100644 --- a/library/common.h +++ b/library/common.h @@ -28,6 +28,11 @@ #include #include +#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ + !defined(inline) && !defined(__cplusplus) +#define inline __inline +#endif + /** Helper to define a function as static except when building invasive tests. * * If a function is only used inside its own source file and should be From a6778013b4dd7bc3d60d57e0b87aa674d0b0ea76 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 17:16:57 +0000 Subject: [PATCH 0925/1574] Tidy up UBSan detection Signed-off-by: Dave Rodgman --- library/common.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/common.h b/library/common.h index 808d13de2..49c5826aa 100644 --- a/library/common.h +++ b/library/common.h @@ -78,12 +78,17 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * * This list is incomplete. */ +#if defined(__has_feature) +#if __has_feature(undefined_behavior_sanitizer) +#define MBEDTLS_HAVE_UBSAN +#endif +#endif + #if (defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ || defined(__ARM_FEATURE_UNALIGNED) \ || defined(__aarch64__) \ || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ - || defined(__ARM_ARCH_7A__)) \ - && (!(defined(__has_feature) && __has_feature(undefined_behavior_sanitizer))) + || defined(__ARM_ARCH_7A__)) && !defined(MBEDTLS_HAVE_UBSAN) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS #endif From e7cd137606437755acf6e2236d1913bf0efaee35 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 19:14:26 +0000 Subject: [PATCH 0926/1574] Define UNALIGNED_UINT32_PTR for unaligned access Signed-off-by: Dave Rodgman --- library/common.h | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/library/common.h b/library/common.h index 49c5826aa..75d28ff1f 100644 --- a/library/common.h +++ b/library/common.h @@ -74,22 +74,29 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ #define MBEDTLS_ALLOW_PRIVATE_ACCESS -/** Detect architectures where unaligned memory accesses are safe and performant. +/** MBEDTLS_ALLOW_UNALIGNED_ACCESS is defined for architectures where unaligned + * memory accesses are safe and performant. + * + * Unaligned accesses must be made via the UNALIGNED_UINT32_PTR type + * defined here. * * This list is incomplete. */ -#if defined(__has_feature) -#if __has_feature(undefined_behavior_sanitizer) -#define MBEDTLS_HAVE_UBSAN -#endif -#endif - -#if (defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ +#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ || defined(__ARM_FEATURE_UNALIGNED) \ || defined(__aarch64__) \ || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ - || defined(__ARM_ARCH_7A__)) && !defined(MBEDTLS_HAVE_UBSAN) + || defined(__ARM_ARCH_7A__) +#if (defined(__GNUC__) && __GNUC__ >= 4) \ + || (defined(__clang__) && __has_attribute(aligned)) \ + || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS +__attribute__((aligned(1))) typedef uint32_t unaligned_uint32_t; +#define UNALIGNED_UINT32_PTR unaligned_uint32_t +#elif defined(_MSC_VER) +#define MBEDTLS_ALLOW_UNALIGNED_ACCESS +#define UNALIGNED_UINT32_PTR __declspec(align(1)) uint32_t +#endif #endif /** Byte Reading Macros @@ -428,9 +435,9 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { #if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) - uint32_t *a32 = (uint32_t *)a; - uint32_t *b32 = (uint32_t *)b; - uint32_t *r32 = (uint32_t *)r; + UNALIGNED_UINT32_PTR *a32 = (uint32_t *)a; + UNALIGNED_UINT32_PTR *b32 = (uint32_t *)b; + UNALIGNED_UINT32_PTR *r32 = (uint32_t *)r; for ( size_t i = 0; i < ( n >> 2 ); i++ ) { r32[i] = a32[i] ^ b32[i]; From 3172e4e1c992ebdab7552fe822b2f35c6b5a83b8 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 19:38:13 +0000 Subject: [PATCH 0927/1574] Fix typo in test_suite_common Signed-off-by: Dave Rodgman --- tests/suites/test_suite_common.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function index 6c0d4afc4..c8a7a52ab 100644 --- a/tests/suites/test_suite_common.function +++ b/tests/suites/test_suite_common.function @@ -74,9 +74,9 @@ void mbedtls_xor( int len ) int r_off = i & 1, a_off = (i & 2) >> 1, b_off = (i & 4) >> 2; fill_arrays( a, b, r1, r2, n + 1 ); - for ( size_t i = 0; i < n; i++ ) + for ( size_t j = 0; j < n; j++ ) { - r1[i + r_off] = a[i + a_off] ^ b[i + b_off]; + r1[j + r_off] = a[j + a_off] ^ b[j + b_off]; } mbedtls_xor( r2 + r_off, a + a_off, b + b_off, n ); ASSERT_COMPARE( r1 + r_off, n, r2 + r_off, n ); From dd3103e9e7ece8173e8a8212e1c00b8078a99963 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 19:42:13 +0000 Subject: [PATCH 0928/1574] Tidy up UNALIGNED_UINT32_T macro Signed-off-by: Dave Rodgman --- library/common.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/common.h b/library/common.h index 75d28ff1f..affec10bf 100644 --- a/library/common.h +++ b/library/common.h @@ -77,7 +77,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c /** MBEDTLS_ALLOW_UNALIGNED_ACCESS is defined for architectures where unaligned * memory accesses are safe and performant. * - * Unaligned accesses must be made via the UNALIGNED_UINT32_PTR type + * Unaligned accesses must be made via the UNALIGNED_UINT32_T type * defined here. * * This list is incomplete. @@ -92,10 +92,10 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS __attribute__((aligned(1))) typedef uint32_t unaligned_uint32_t; -#define UNALIGNED_UINT32_PTR unaligned_uint32_t +#define UNALIGNED_UINT32_T unaligned_uint32_t #elif defined(_MSC_VER) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS -#define UNALIGNED_UINT32_PTR __declspec(align(1)) uint32_t +#define UNALIGNED_UINT32_T __declspec(align(1)) uint32_t #endif #endif @@ -435,9 +435,9 @@ __attribute__((aligned(1))) typedef uint32_t unaligned_uint32_t; inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { #if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) - UNALIGNED_UINT32_PTR *a32 = (uint32_t *)a; - UNALIGNED_UINT32_PTR *b32 = (uint32_t *)b; - UNALIGNED_UINT32_PTR *r32 = (uint32_t *)r; + UNALIGNED_UINT32_T *a32 = (uint32_t *)a; + UNALIGNED_UINT32_T *b32 = (uint32_t *)b; + UNALIGNED_UINT32_T *r32 = (uint32_t *)r; for ( size_t i = 0; i < ( n >> 2 ); i++ ) { r32[i] = a32[i] ^ b32[i]; From 358c7d6eb07906368a960f8aa47639bbe0560237 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 23 Nov 2022 20:29:03 +0000 Subject: [PATCH 0929/1574] Fix naming inconsistency Signed-off-by: Dave Rodgman --- library/common.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/common.h b/library/common.h index affec10bf..6ea89789b 100644 --- a/library/common.h +++ b/library/common.h @@ -91,8 +91,8 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c || (defined(__clang__) && __has_attribute(aligned)) \ || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS -__attribute__((aligned(1))) typedef uint32_t unaligned_uint32_t; -#define UNALIGNED_UINT32_T unaligned_uint32_t +__attribute__((aligned(1))) typedef uint32_t mbedtls_unaligned_uint32_t; +#define UNALIGNED_UINT32_T mbedtls_unaligned_uint32_t #elif defined(_MSC_VER) #define MBEDTLS_ALLOW_UNALIGNED_ACCESS #define UNALIGNED_UINT32_T __declspec(align(1)) uint32_t From fecc6b2fe49d8ca8567080f289c876210e6c4f75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 24 Nov 2022 09:40:12 +0100 Subject: [PATCH 0930/1574] Minor tune-up to ChangeLog & documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fix a recurring typo - use clearer names Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/driver-only-hashes.txt | 4 ++-- include/mbedtls/mbedtls_config.h | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt index 930aadfef..6ccd199ba 100644 --- a/ChangeLog.d/driver-only-hashes.txt +++ b/ChangeLog.d/driver-only-hashes.txt @@ -1,8 +1,8 @@ Features * Some modules can now use PSA drivers for hashes, including with no built-in implementation present, but only in some configurations. - - RSA PKCS#1 v2.1, PKCS5, PKCS12 and EC J-PAKE now use hashes from PSA - when (and only when) MBEDTLS_MD_C is disabled. + - RSA OAEP and PSS (PKCS#1 v2.1), PKCS5, PKCS12 and EC J-PAKE now use + hashes from PSA when (and only when) MBEDTLS_MD_C is disabled. - PEM parsing of encrypted files now uses MD-5 from PSA when (and only when) MBEDTLS_MD5_C is disabled. See the documentation of the corresponding macros in mbedtls_config.h for diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index b16a5b4d4..0688073b1 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1147,7 +1147,7 @@ * before doing any PKCS#1 v2.1 operation. * * \warning When building with MBEDTLS_MD_C, all hashes used with this - * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * need to be available as built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by * this module in builds where MBEDTLS_MD_C is disabled. * @@ -2440,7 +2440,7 @@ * before doing any EC J-PAKE operations. * * \warning When building with MBEDTLS_MD_C, all hashes used with this - * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * need to be available as built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by * this module in builds where MBEDTLS_MD_C is disabled. */ @@ -2788,7 +2788,7 @@ * before doing any PKCS5 operation. * * \warning When building with MBEDTLS_MD_C, all hashes used with this - * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * need to be available as built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by * this module in builds where MBEDTLS_MD_C is disabled. * @@ -2812,7 +2812,7 @@ * before doing any PKCS12 operation. * * \warning When building with MBEDTLS_MD_C, all hashes used with this - * need to be available a built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, + * need to be available as built-ins (that is, for SHA-256, MBEDTLS_SHA256_C, * etc.) as opposed to just PSA drivers. So far, PSA drivers are only used by * this module in builds where MBEDTLS_MD_C is disabled. * From 6921959b83abb43003bdc99603783a6a7cc9f88f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 09:27:15 +0000 Subject: [PATCH 0931/1574] Remove unused variable Signed-off-by: Dave Rodgman --- library/pkcs5.c | 1 - 1 file changed, 1 deletion(-) diff --git a/library/pkcs5.c b/library/pkcs5.c index a6bc1b55c..1e3b17e64 100644 --- a/library/pkcs5.c +++ b/library/pkcs5.c @@ -322,7 +322,6 @@ exit: mbedtls_md_free( &md_ctx ); return( ret ); #else - int j; unsigned int i; unsigned char md1[PSA_HASH_MAX_SIZE]; unsigned char work[PSA_HASH_MAX_SIZE]; From 3bb0e43b41ca36dc6ce91dfe16c051777e093890 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 24 Nov 2022 17:29:05 +0800 Subject: [PATCH 0932/1574] fix review comment Signed-off-by: Pengyu Lv --- include/mbedtls/check_config.h | 2 +- tests/scripts/check_names.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index d36db4a9e..85605a8bb 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -327,7 +327,7 @@ /* Use of EC J-PAKE in TLS requires SHA-256. * This will be taken from MD if it is present, or from PSA if MD is absent. - * Note: ECJPAKE_C depends on MD_C || PSA_CRYPTO_C. */ + * Note: MBEDTLS_ECJPAKE_C depends on MBEDTLS_MD_C || MBEDTLS_PSA_CRYPTO_C. */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ !( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) && \ !( !defined(MBEDTLS_MD_C) && defined(PSA_WANT_ALG_SHA_256) ) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 2ddf41ed9..3c800d1a2 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -847,8 +847,7 @@ class NameChecker(): } typo_exclusion = re.compile(r"XXX|__|_$|^MBEDTLS_.*CONFIG_FILE$|" r"MBEDTLS_TEST_LIBTESTDRIVER*|" - r"PSA_CRYPTO_DRIVER_TEST|" - r"PSA_CRYPTO_C") + r"PSA_CRYPTO_DRIVER_TEST") for name_match in self.parse_result["mbed_psa_words"]: found = name_match.name in all_caps_names From cbcbf4e4340b92380960ac7fe1267b9ab869a8f6 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 24 Nov 2022 11:48:59 +0100 Subject: [PATCH 0933/1574] Remove hand-written tests got raw_mod_sub The generated tests cover all off the hand-written tests. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod_raw.data | 39 --------------------- 1 file changed, 39 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 9290ef4f9..8cbd918f8 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -185,45 +185,6 @@ mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA # BEGIN MERGE SLOT 2 -mbedtls_mpi_mod_raw_sub: 0 - 0, mod 2 -mpi_mod_raw_sub:"0":"0":"2":"0" - -mbedtls_mpi_mod_raw_sub: 0 - 1, mod 2 -mpi_mod_raw_sub:"0":"1":"2":"1" - -mbedtls_mpi_mod_raw_sub: 1 - 0, mod 2 -mpi_mod_raw_sub:"1":"0":"2":"1" - -mbedtls_mpi_mod_raw_sub: 9 - 2, mod 10 -mpi_mod_raw_sub:"9":"2":"A":"7" - -mbedtls_mpi_mod_raw_sub: 6 - 7, mod 10 -mpi_mod_raw_sub:"6":"7":"A":"9" - -mbedtls_mpi_mod_raw_sub: 4 byte values, first is bigger -mpi_mod_raw_sub:"7DE15401":"5553FE19":"971F63D9":"288D55E8" - -mbedtls_mpi_mod_raw_sub: 4 byte values, second is bigger -mpi_mod_raw_sub:"58AB5FB1":"B7AFCADC":"DBD9D998":"7CD56E6D" - -mbedtls_mpi_mod_raw_sub: 8 byte values, first is bigger -mpi_mod_raw_sub:"8FE975EFDF264BDF":"6A4E956C95C1649E":"BB63D38C3AF7922E":"259AE0834964E741" - -mbedtls_mpi_mod_raw_sub: 8 byte values, second is bigger -mpi_mod_raw_sub:"0D6A093316013F68":"39DA803DB5C41434":"509876EAB3D1C663":"2427FFE0140EF197" - -mbedtls_mpi_mod_raw_sub: 16 byte values, first is bigger -mpi_mod_raw_sub:"94789C046DEC921C4EF12561271EEB12":"3AD8A050F6CC00354FDE5557E1839859":"A52A910D219A87F4F174FD9481873CEE":"599FFBB3772091E6FF12D009459B52B9" - -mbedtls_mpi_mod_raw_sub: 16 byte values, second is bigger -mpi_mod_raw_sub:"14D92E888E1274EDC37CA73B20B1F8BF":"8B7281E720762FD849948DCFA3CCC7F6":"94D3A7DE6456850BF05EB88B486DD4CD":"1E3A547FD1F2CA216A46D1F6C5530596" - -mbedtls_mpi_mod_raw_sub: 256 byte values, first is bigger -mpi_mod_raw_sub:"A39EE6C3FACCF07EEDDF235E8B31DBF843D2040AE2076B357EDD65FA16E639B9AA22451B9BA9E740343DC4BB0B1E6991B58084E1294A8849A326CAAC736514448D3D45464D5AC9D965046CD258923D892A027C89F4801DC754CAFC0418CF673D04D05E56074F46F59BD89CDE1D11168623293B564141DF7098EBCA253B10B4756C8897E4D23190AC943CE03AAFA7A76BCB8A44D8C76A3ABEC8F854BAD7333E80AAF2FA9A8D8BF148FD257396CD3B8E1418F0EE7C148146BF3DABF22C42E22A5397AC1CFFD77222D16700CDAAC8D9AB6CE1FD7A9DC7C826617748A7489AB77535F51BD9671FBCD1ADA63B4B780F46D325856F91DE68316CA34FEC645055614096":"66FF62A95E9CB6DE7242182484F223EDC6AE1E480773854A40A9EA2AD2349EA134722BCB9D8F55DBFA535CB919CE9A4933660F38DC08848D8A1442044AE3519D697DC85D999F525428A93D8347D975A54FDC46233402DD0E19E67F2146D49DB2990C88C0548DC14EE82E4A56F9C23B0119EC624FDF889D29BA4AB2B85040537649CF210C8F5712F0FD5B05CDA71949A1070FE9D28BF2D57D1D0D5DFD290E97060CA67A83F7C6F463E359E50102C6452E0EEAC3C0638264748466BA836C6CDAEB38B86F3A002324EE8C8690EC4E832692EA0216F71196E883209B62379B73E4474994554ADD57E4095A1004F475923EA44F553F325483328F7776A8DEB6A330F7":"CBB1EA630FEB95DCD8E54CE32CDC2CB7C42FDF8174B534F95247575399CAACBCAC7B6B35494E64308866ADD71C3AAB3875A0444635275F08EB77B52039559B1C9764EA1DA7F36676C4FAEB6F210DC6934156DB306ABDD75460CE3728C307A4829B7015CF1F4C7F086D30AE3B1045353FD590E36383F354AC8CCD38B65887D27F00B2862E0DD1DA0C5003BE346E4DB3980728334EE8DBABD649CE893F17CE64468E552F02EFBF4AF29F75CE032507412531B7B64F4B08BA971E83B3564602BB07129782879E04960319CBD885F6E83AD71D26C14FD5382087D24A6C7D201D0A25B772D194ED64EDC4B153BBB64CC51947752F6AF4E0DBE50EBBF215531144C139":"3C9F841A9C3039A07B9D0B3A063FB80A7D23E5C2DA93E5EB3E337BCF44B19B1875B0194FFE1A916439EA6801F14FCF48821A75A84D4203BC191288A82881C2A723BF7CE8B3BB77853C5B2F4F10B8C7E3DA263666C07D40B93AE47CE2D1FAC98A6BC3D595B2C185A6B3AA5287234EDB85093CD90661B94246DEA1176CEAD060FF22B976D842DA7DBB96E1DA6D088E5DCAC47A5B063B776541ABEAF6BDAE24A77A9E4C801695C4FCE519CB8E95CA7548E60A062ABBB0FEE24AB94537A8D6754F685EF3ADC5D74EFDE2DA7A3CBE7A5684D9F7FB63A6B6313DDE56AD4510FF4390EEAB87841C4264EDA44C2B468399B49481361A52AC13AE3A13D875BB719EBE0F9F" - -mbedtls_mpi_mod_raw_sub: 256 byte values, second is bigger -mpi_mod_raw_sub:"974663D69B8161A296AB77AD971DDA0672BE34E1EE5DB71D68AF76926CFB8C698AB19B45CD6F829260403839088DDF7E5339966D2D51DAC9E6EABB5C797739953D7537FC4B59EF089E5D0845C5501ECBEDECE2575AE8FC67D46E0B59DDED9528D66EF664D8415887CEC9641C0CBCB45B5EA921263B025EC4A7389695C95F7F17737FB4D42B8DA97BB8B4173276156D87E82F6EC157E1980EFBF0D9144CAB42797B5B0B0FA3D4008034456488202F213A7C28C19D514C111530F6895FAAA243BEFCDAB5CAEF4908F31AA2736BE287B81677F36A22C698FE964F88CDF8EE3DC7780735986627297BF63CA9EE8E9754FD443CE45E50165CF444A5CF538657D7E028":"A3B1E589E726DF39C69C7FFAF4A98D20D38F2DFB4DBCDF25FB95B93405C3DF0A2BE1940A3B5F9076389434D943750B48F5C44D13EB5C4502484D21BE3E7CC17BFC4C8AA12EE2EDF0014A64435678A489D0D28EFE2C54F5FBE262A32D27EF8B0172D3E8A40CF00856EDA21BFCD516DE3899838C535031DE227440B6A97B9A58398B6D8DB2CCE10230D9E738655B30022E737CF716F7C6E1C27D30E30FBA57C1A0224B929C6496B9D3DE40B8258211D8889C747069274F30887A717A95FEA4A4AE292F7ECAAFA69995B2ACA5A98F2AB850B291C3B935B260D598189732D2F9BAECC3A49603AEE5AA14D02393834C66B7F3D41D266264806F46533FC1044E52EF67":"B28F0A9BC32356B8DA0A7C0B96E0A7BF1A724C723486B13E050CE1A87A1FCA8868A3DA57C2F04EC578759A32EA96B3113EFA757586BBF93EE422CA2EE5A649D4B38D07729314B4E6E652886027DA61FD5AF4A2B1C38F5465D6B0310DF95D389CCC748961EDA8F24F57B18E3C485467CC13898325A77B609996EC23A9C312A37C135BBB49C50956B7FB2FD4FFE7A1F85538C19E8D84255184B6D98ED49F506831A1CA5198706F887D6F243E49CBC803B205F1FF87CA6E18859BFDB1FADF084F7F696B0C2AC7742ECC37A8270FAF00454D4C152C18AAE80D17B84B3E03CC38BD68E2D28A903F3CB2DC5C4FD2341E5F323B164AF996ADCF45619101BA65AC6B12EE":"A62388E8777DD921AA1973BE3954F4A4B9A15358D527893572269F06E15777E7C773E193550040E1A0219D92AFAF87469C6FBECEC8B18F0682C063CD20A0C1EDF4B5B4CDAF8BB5FF83652C6296B1DC3F780EF60AF2235AD1C8BB993AAF5B42C4300F9722B8FA428038D8D65B7FFA3DEED8AF17F8924BE13BC9E4039610D7CA59FB6DE26B23B5FE02D9FCB3CD028763AEAD741637E44007D1359984D931A3E90AFAD9CA0BAFACCF29C528EAAC69E54C63E5A650BBF46AF9125282C0C48B05EE903D16432B07169E299F9DF4D2025D45131176D2823BCEAAD86FBB74C9E77CC9F426638CF2B78084BDC8D62D3F694D778B7F1231845FABCA5FE3914CE7B5F003AF" - # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 From a45b6fee91e597c16872a14d20a5aa58e60ea4c9 Mon Sep 17 00:00:00 2001 From: Hanno Becker Date: Tue, 1 Nov 2022 13:14:28 +0000 Subject: [PATCH 0934/1574] Extract MPI_CORE(add_mod) from the prototype Signed-off-by: Tom Cosgrove --- library/bignum_mod_raw.c | 13 ++++++++++++- library/bignum_mod_raw.h | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index b43add77d..7c17e5602 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -119,7 +119,18 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ - +void MPI_CORE(add_mod)( mbedtls_mpi_uint *X, + mbedtls_mpi_uint const *A, + mbedtls_mpi_uint const *B, + const mbedtls_mpi_uint *N, + size_t n ) +{ + size_t carry, borrow = 0, fixup; + carry = mbedtls_mpi_core_add( X, A, B, n ); + borrow = mbedtls_mpi_core_sub( X, X, N, n); + fixup = ( carry < borrow ); + (void) mbedtls_mpi_core_add_if( X, N, n, fixup ); +} /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f738e917e..c57372c94 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -155,7 +155,20 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ - +/** + * \brief Perform a known-size modular addition. + * + * Calculate A + B mod N. + * + * \param[out] X The result of the modular addition. + * \param[in] A The left operand. This must be smaller than \p N. + * \param[in] B The right operand. This must be smaller than \p N. + * \param[in] N The modulus. + * \param n Number of limbs of \p X, \p A, \p B and \p N. + */ +void MPI_CORE(add_mod)( mbedtls_mpi_uint *X, mbedtls_mpi_uint const *A, + mbedtls_mpi_uint const *B, const mbedtls_mpi_uint *N, + size_t n ); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ From 0eea827cbda3a10ca6515e21901b23942b43aa5a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 1 Nov 2022 13:27:29 +0000 Subject: [PATCH 0935/1574] Rename MPI_CORE(add_mod) to mbedtls_mpi_mod_raw_add Signed-off-by: Werner Lewis --- library/bignum_mod_raw.c | 19 +++++++++---------- library/bignum_mod_raw.h | 22 +++++++++++++--------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 7c17e5602..2460329df 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -119,17 +119,16 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ -void MPI_CORE(add_mod)( mbedtls_mpi_uint *X, - mbedtls_mpi_uint const *A, - mbedtls_mpi_uint const *B, - const mbedtls_mpi_uint *N, - size_t n ) +void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, + mbedtls_mpi_uint const *A, + mbedtls_mpi_uint const *B, + const mbedtls_mpi_uint *N, + size_t limbs ) { - size_t carry, borrow = 0, fixup; - carry = mbedtls_mpi_core_add( X, A, B, n ); - borrow = mbedtls_mpi_core_sub( X, X, N, n); - fixup = ( carry < borrow ); - (void) mbedtls_mpi_core_add_if( X, N, n, fixup ); + size_t carry, borrow = 0; + carry = mbedtls_mpi_core_add( X, A, B, limbs ); + borrow = mbedtls_mpi_core_sub( X, X, N, limbs); + (void) mbedtls_mpi_core_add_if( X, N, limbs, ( carry < borrow ) ); } /* END MERGE SLOT 5 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index c57372c94..7b82c0639 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -158,17 +158,21 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /** * \brief Perform a known-size modular addition. * - * Calculate A + B mod N. + * Calculate `A + B modulo N` where \p A, \p B, and \p N have the same size. * - * \param[out] X The result of the modular addition. - * \param[in] A The left operand. This must be smaller than \p N. - * \param[in] B The right operand. This must be smaller than \p N. - * \param[in] N The modulus. - * \param n Number of limbs of \p X, \p A, \p B and \p N. + * \param[out] X The result of the modular addition. + * \param[in] A Little-endian presentation of the left operand. This + * must be smaller than \p N. + * \param[in] B Little-endian presentation of the right operand. This + * must be smaller than \p N. + * \param[in] N Little-endian presentation of the modulus. + * \param limbs Number of limbs of \p X, \p A, \p B and \p N. */ -void MPI_CORE(add_mod)( mbedtls_mpi_uint *X, mbedtls_mpi_uint const *A, - mbedtls_mpi_uint const *B, const mbedtls_mpi_uint *N, - size_t n ); +void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, + mbedtls_mpi_uint const *A, + mbedtls_mpi_uint const *B, + const mbedtls_mpi_uint *N, + size_t limbs ); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ From 9fa91ebcb906ad93218d92bbf816bdad17f9f198 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 1 Nov 2022 13:36:51 +0000 Subject: [PATCH 0936/1574] Use modulus structure in mbedtls_mpi_mod_raw_add Signed-off-by: Werner Lewis --- library/bignum_mod_raw.c | 9 ++++----- library/bignum_mod_raw.h | 12 ++++++------ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 2460329df..01f5a4423 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -122,13 +122,12 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, mbedtls_mpi_uint const *A, mbedtls_mpi_uint const *B, - const mbedtls_mpi_uint *N, - size_t limbs ) + const mbedtls_mpi_mod_modulus *N ) { size_t carry, borrow = 0; - carry = mbedtls_mpi_core_add( X, A, B, limbs ); - borrow = mbedtls_mpi_core_sub( X, X, N, limbs); - (void) mbedtls_mpi_core_add_if( X, N, limbs, ( carry < borrow ) ); + carry = mbedtls_mpi_core_add( X, A, B, N->limbs ); + borrow = mbedtls_mpi_core_sub( X, X, N->p, N->limbs ); + (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, ( carry < borrow ) ); } /* END MERGE SLOT 5 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7b82c0639..d6522381b 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -162,17 +162,17 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, * * \param[out] X The result of the modular addition. * \param[in] A Little-endian presentation of the left operand. This - * must be smaller than \p N. + * must be smaller than \p N, and have the same number of + * limbs. * \param[in] B Little-endian presentation of the right operand. This - * must be smaller than \p N. - * \param[in] N Little-endian presentation of the modulus. - * \param limbs Number of limbs of \p X, \p A, \p B and \p N. + * must be smaller than \p N, and have the same number of + * limbs. + * \param[in] N The address of the modulus. */ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, mbedtls_mpi_uint const *A, mbedtls_mpi_uint const *B, - const mbedtls_mpi_uint *N, - size_t limbs ); + const mbedtls_mpi_mod_modulus *N ); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ From baa34b6248b29a5c8153137b0b292dfa82095e6a Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 1 Nov 2022 15:37:50 +0000 Subject: [PATCH 0937/1574] Add test function for mpi_mod_raw_add Signed-off-by: Werner Lewis --- .../suites/test_suite_bignum_mod_raw.function | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 4adccce25..cf385e081 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -287,6 +287,97 @@ exit: /* BEGIN MERGE SLOT 5 */ +/* BEGIN_CASE */ +void mpi_mod_raw_add( char * input_A, char * input_B, + char * input_N, char * input_S ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *S = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_mod_modulus m; + size_t A_limbs, B_limbs, N_limbs, S_limbs; + + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &N_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); + + /* All inputs must have have the same number of limbs. */ + TEST_EQUAL( A_limbs, B_limbs ); + TEST_EQUAL( S_limbs, N_limbs ); + TEST_EQUAL( A_limbs, S_limbs ); + + size_t limbs = A_limbs; + size_t bytes = limbs * sizeof( *A ); + + ASSERT_ALLOC( X, limbs ); + + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_EXT_REP_BE, + MBEDTLS_MPI_MOD_REP_MONTGOMERY + ), 0 ); + + /* A + B => Correct result */ + mbedtls_mpi_mod_raw_add( X, A, B, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B: alias X to A => Correct result */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_add( X, X, B, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + B: alias X to B => Correct result */ + memcpy( X, B, bytes ); + mbedtls_mpi_mod_raw_add( X, A, X, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + if ( memcmp(A, B, bytes ) == 0 ) + { + /* A == B: alias A and B */ + + /* A + A => Correct result */ + mbedtls_mpi_mod_raw_add( X, A, A, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* A + A, alias X to A => Correct result */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_add( X, A, A, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + else + { + /* A != B: test B + A */ + + /* B + A => Correct result */ + mbedtls_mpi_mod_raw_add( X, B, A, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A: alias X to A => Correct result */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_add( X, B, X, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + + /* B + A: alias X to B => Correct result */ + memcpy( X, B, bytes ); + mbedtls_mpi_mod_raw_add( X, X, A, &m ); + ASSERT_COMPARE( X, bytes, S, bytes ); + } + +exit: + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( S ); + mbedtls_free( N ); + mbedtls_free( X ); + + mbedtls_mpi_mod_modulus_free( &m ); +} +/* END_CASE */ /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ From d391b8ce612d5472e3cb7a86ff8f69e642a43ba2 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 8 Nov 2022 15:53:47 +0000 Subject: [PATCH 0938/1574] Change types and move const before type Signed-off-by: Werner Lewis --- library/bignum_mod_raw.c | 6 +++--- library/bignum_mod_raw.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 01f5a4423..94dcf7724 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -120,11 +120,11 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* BEGIN MERGE SLOT 5 */ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, - mbedtls_mpi_uint const *A, - mbedtls_mpi_uint const *B, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *N ) { - size_t carry, borrow = 0; + mbedtls_mpi_uint carry, borrow; carry = mbedtls_mpi_core_add( X, A, B, N->limbs ); borrow = mbedtls_mpi_core_sub( X, X, N->p, N->limbs ); (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, ( carry < borrow ) ); diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index d6522381b..bcb4a1596 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -170,8 +170,8 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, * \param[in] N The address of the modulus. */ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, - mbedtls_mpi_uint const *A, - mbedtls_mpi_uint const *B, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *N ); /* END MERGE SLOT 5 */ From 1a277d9ad69eb75d8934d356838680116daf3ff6 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 8 Nov 2022 15:55:17 +0000 Subject: [PATCH 0939/1574] Replace comparison with XOR Signed-off-by: Werner Lewis --- library/bignum_mod_raw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 94dcf7724..8889f5541 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,7 +127,7 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, mbedtls_mpi_uint carry, borrow; carry = mbedtls_mpi_core_add( X, A, B, N->limbs ); borrow = mbedtls_mpi_core_sub( X, X, N->p, N->limbs ); - (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, ( carry < borrow ) ); + (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned char) ( carry ^ borrow ) ); } /* END MERGE SLOT 5 */ From f9075762455005d036ce2529df4a6138b2841284 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 8 Nov 2022 16:01:06 +0000 Subject: [PATCH 0940/1574] Pass correct arguments in test Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod_raw.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index cf385e081..c510ac5d8 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -344,9 +344,9 @@ void mpi_mod_raw_add( char * input_A, char * input_B, mbedtls_mpi_mod_raw_add( X, A, A, &m ); ASSERT_COMPARE( X, bytes, S, bytes ); - /* A + A, alias X to A => Correct result */ + /* A + A: X, A, B all aliased together => Correct result */ memcpy( X, A, bytes ); - mbedtls_mpi_mod_raw_add( X, A, A, &m ); + mbedtls_mpi_mod_raw_add( X, X, X, &m ); ASSERT_COMPARE( X, bytes, S, bytes ); } else From e4c0a6c3ba7348dc1d4e9d0d653c11bccf02bad4 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 17 Nov 2022 11:19:58 +0000 Subject: [PATCH 0941/1574] Change cast to correct type Signed-off-by: Werner Lewis --- library/bignum_mod_raw.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8889f5541..6ffe0a7e6 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -127,7 +127,7 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, mbedtls_mpi_uint carry, borrow; carry = mbedtls_mpi_core_add( X, A, B, N->limbs ); borrow = mbedtls_mpi_core_sub( X, X, N->p, N->limbs ); - (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned char) ( carry ^ borrow ) ); + (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned) ( carry ^ borrow ) ); } /* END MERGE SLOT 5 */ From 54d87bf5c29ea0bac64f84b4d67d58e8804a14f5 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 24 Nov 2022 15:47:02 +0000 Subject: [PATCH 0942/1574] Take limb count from the modulus in mod_raw_add tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index c510ac5d8..7b1bda708 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -296,9 +296,9 @@ void mpi_mod_raw_add( char * input_A, char * input_B, mbedtls_mpi_uint *S = NULL; mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_mod_modulus m; size_t A_limbs, B_limbs, N_limbs, S_limbs; + mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); @@ -306,14 +306,14 @@ void mpi_mod_raw_add( char * input_A, char * input_B, TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &N_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); - /* All inputs must have have the same number of limbs. */ - TEST_EQUAL( A_limbs, B_limbs ); - TEST_EQUAL( S_limbs, N_limbs ); - TEST_EQUAL( A_limbs, S_limbs ); - - size_t limbs = A_limbs; + /* Modulus gives the number of limbs; all inputs must have the same. */ + size_t limbs = N_limbs; size_t bytes = limbs * sizeof( *A ); + TEST_EQUAL( A_limbs, limbs ); + TEST_EQUAL( B_limbs, limbs ); + TEST_EQUAL( S_limbs, limbs ); + ASSERT_ALLOC( X, limbs ); TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( From abddad4af88b2aa9c2e6c09448112efd529a18a7 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 24 Nov 2022 15:54:16 +0000 Subject: [PATCH 0943/1574] Add note about aliasing of operands for mbedtls_mpi_mod_raw_add() Signed-off-by: Tom Cosgrove --- library/bignum_mod_raw.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index bcb4a1596..56a9f860d 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -158,15 +158,19 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /** * \brief Perform a known-size modular addition. * - * Calculate `A + B modulo N` where \p A, \p B, and \p N have the same size. + * Calculate `A + B modulo N`. + * + * The number of limbs in each operand, and the result, is given by the + * modulus \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. * * \param[out] X The result of the modular addition. * \param[in] A Little-endian presentation of the left operand. This - * must be smaller than \p N, and have the same number of - * limbs. + * must be smaller than \p N. * \param[in] B Little-endian presentation of the right operand. This - * must be smaller than \p N, and have the same number of - * limbs. + * must be smaller than \p N. * \param[in] N The address of the modulus. */ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, From 1923009cdb6f60964f80c84d3493dbfa47ec6cc4 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 24 Nov 2022 15:56:53 +0000 Subject: [PATCH 0944/1574] Add test generation for mbedtls_mpi_mod_raw_add() Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_mod_raw.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 60f2feded..ee144aa1e 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -42,6 +42,25 @@ class BignumModRawTarget(test_data_generation.BaseTarget): # BEGIN MERGE SLOT 5 +class BignumModRawAdd(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for bignum mpi_mod_raw_add().""" + symbol = "+" + test_function = "mpi_mod_raw_add" + test_name = "mbedtls_mpi_mod_raw_add" + input_style = "fixed" + arity = 2 + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.arg_a, + self.arg_b, + self.arg_n] + ] + self.result() + + def result(self) -> List[str]: + result = (self.int_a + self.int_b) % self.int_n + return [self.format_result(result)] + # END MERGE SLOT 5 # BEGIN MERGE SLOT 6 From fbc23225d62acd5443e9c616871e611d1800f3e5 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 18:07:37 +0000 Subject: [PATCH 0945/1574] Tidy up alignment-related code into separate header Signed-off-by: Dave Rodgman --- library/alignment.h | 382 ++++++++++++++++++++++++++++++++++++++++++++ library/common.h | 348 +--------------------------------------- 2 files changed, 383 insertions(+), 347 deletions(-) create mode 100644 library/alignment.h diff --git a/library/alignment.h b/library/alignment.h new file mode 100644 index 000000000..60e5dba13 --- /dev/null +++ b/library/alignment.h @@ -0,0 +1,382 @@ +/** + * \file alignment.h + * + * \brief Utility code for dealing with unaligned memory accesses + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBEDTLS_LIBRARY_ALIGNMENT_H +#define MBEDTLS_LIBRARY_ALIGNMENT_H + +#include + +/** MBEDTLS_ALLOW_UNALIGNED_ACCESS is defined for architectures where unaligned + * memory accesses are safe and performant. + * + * Unaligned accesses must be made via the UNALIGNED_UINT32_T type + * defined here. + * + * This list is incomplete. + */ +#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ + || defined(__ARM_FEATURE_UNALIGNED) \ + || defined(__aarch64__) \ + || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ + || defined(__ARM_ARCH_7A__) +#if (defined(__GNUC__) && __GNUC__ >= 4) \ + || (defined(__clang__) && __has_attribute(aligned)) \ + || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) + /* GCC, Clang and armcc */ +#define MBEDTLS_ALLOW_UNALIGNED_ACCESS +__attribute__((aligned(1))) typedef uint32_t mbedtls_unaligned_uint32_t; +#define UNALIGNED_UINT32_T mbedtls_unaligned_uint32_t +#elif defined(_MSC_VER) + /* MSVC */ +#define MBEDTLS_ALLOW_UNALIGNED_ACCESS +#define UNALIGNED_UINT32_T __declspec(align(1)) uint32_t +#elif (defined __ICCARM__) + /* IAR - this is disabled until we have the opportunity to test it */ +#undef MBEDTLS_ALLOW_UNALIGNED_ACCESS +#define UNALIGNED_UINT32_T _Pragma("data_alignment = 1") uint32_t +#endif +#endif + + +/** Byte Reading Macros + * + * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th + * byte from x, where byte 0 is the least significant byte. + */ +#define MBEDTLS_BYTE_0( x ) ( (uint8_t) ( ( x ) & 0xff ) ) +#define MBEDTLS_BYTE_1( x ) ( (uint8_t) ( ( ( x ) >> 8 ) & 0xff ) ) +#define MBEDTLS_BYTE_2( x ) ( (uint8_t) ( ( ( x ) >> 16 ) & 0xff ) ) +#define MBEDTLS_BYTE_3( x ) ( (uint8_t) ( ( ( x ) >> 24 ) & 0xff ) ) +#define MBEDTLS_BYTE_4( x ) ( (uint8_t) ( ( ( x ) >> 32 ) & 0xff ) ) +#define MBEDTLS_BYTE_5( x ) ( (uint8_t) ( ( ( x ) >> 40 ) & 0xff ) ) +#define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) +#define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) + +/** + * Get the unsigned 32 bits integer corresponding to four bytes in + * big-endian order (MSB first). + * + * \param data Base address of the memory to get the four bytes from. + * \param offset Offset from \p data of the first and most significant + * byte of the four bytes to build the 32 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT32_BE +#define MBEDTLS_GET_UINT32_BE( data , offset ) \ + ( \ + ( (uint32_t) ( data )[( offset ) ] << 24 ) \ + | ( (uint32_t) ( data )[( offset ) + 1] << 16 ) \ + | ( (uint32_t) ( data )[( offset ) + 2] << 8 ) \ + | ( (uint32_t) ( data )[( offset ) + 3] ) \ + ) +#endif + +/** + * Put in memory a 32 bits unsigned integer in big-endian order. + * + * \param n 32 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 32 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the most significant + * byte of the 32 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT32_BE +#define MBEDTLS_PUT_UINT32_BE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_3( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_2( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 3] = MBEDTLS_BYTE_0( n ); \ +} +#endif + +/** + * Get the unsigned 32 bits integer corresponding to four bytes in + * little-endian order (LSB first). + * + * \param data Base address of the memory to get the four bytes from. + * \param offset Offset from \p data of the first and least significant + * byte of the four bytes to build the 32 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT32_LE +#define MBEDTLS_GET_UINT32_LE( data, offset ) \ + ( \ + ( (uint32_t) ( data )[( offset ) ] ) \ + | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ + | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ + | ( (uint32_t) ( data )[( offset ) + 3] << 24 ) \ + ) +#endif + +/** + * Put in memory a 32 bits unsigned integer in little-endian order. + * + * \param n 32 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 32 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the least significant + * byte of the 32 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT32_LE +#define MBEDTLS_PUT_UINT32_LE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ + ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ +} +#endif + +/** + * Get the unsigned 16 bits integer corresponding to two bytes in + * little-endian order (LSB first). + * + * \param data Base address of the memory to get the two bytes from. + * \param offset Offset from \p data of the first and least significant + * byte of the two bytes to build the 16 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT16_LE +#define MBEDTLS_GET_UINT16_LE( data, offset ) \ + ( \ + ( (uint16_t) ( data )[( offset ) ] ) \ + | ( (uint16_t) ( data )[( offset ) + 1] << 8 ) \ + ) +#endif + +/** + * Put in memory a 16 bits unsigned integer in little-endian order. + * + * \param n 16 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 16 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the least significant + * byte of the 16 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT16_LE +#define MBEDTLS_PUT_UINT16_LE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ +} +#endif + +/** + * Get the unsigned 16 bits integer corresponding to two bytes in + * big-endian order (MSB first). + * + * \param data Base address of the memory to get the two bytes from. + * \param offset Offset from \p data of the first and most significant + * byte of the two bytes to build the 16 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT16_BE +#define MBEDTLS_GET_UINT16_BE( data, offset ) \ + ( \ + ( (uint16_t) ( data )[( offset ) ] << 8 ) \ + | ( (uint16_t) ( data )[( offset ) + 1] ) \ + ) +#endif + +/** + * Put in memory a 16 bits unsigned integer in big-endian order. + * + * \param n 16 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 16 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the most significant + * byte of the 16 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT16_BE +#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_0( n ); \ +} +#endif + +/** + * Get the unsigned 24 bits integer corresponding to three bytes in + * big-endian order (MSB first). + * + * \param data Base address of the memory to get the three bytes from. + * \param offset Offset from \p data of the first and most significant + * byte of the three bytes to build the 24 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT24_BE +#define MBEDTLS_GET_UINT24_BE( data , offset ) \ + ( \ + ( (uint32_t) ( data )[( offset ) ] << 16 ) \ + | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ + | ( (uint32_t) ( data )[( offset ) + 2] ) \ + ) +#endif + +/** + * Put in memory a 24 bits unsigned integer in big-endian order. + * + * \param n 24 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 24 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the most significant + * byte of the 24 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT24_BE +#define MBEDTLS_PUT_UINT24_BE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_2( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_0( n ); \ +} +#endif + +/** + * Get the unsigned 24 bits integer corresponding to three bytes in + * little-endian order (LSB first). + * + * \param data Base address of the memory to get the three bytes from. + * \param offset Offset from \p data of the first and least significant + * byte of the three bytes to build the 24 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT24_LE +#define MBEDTLS_GET_UINT24_LE( data, offset ) \ + ( \ + ( (uint32_t) ( data )[( offset ) ] ) \ + | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ + | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ + ) +#endif + +/** + * Put in memory a 24 bits unsigned integer in little-endian order. + * + * \param n 24 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 24 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the least significant + * byte of the 24 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT24_LE +#define MBEDTLS_PUT_UINT24_LE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ +} +#endif + +/** + * Get the unsigned 64 bits integer corresponding to eight bytes in + * big-endian order (MSB first). + * + * \param data Base address of the memory to get the eight bytes from. + * \param offset Offset from \p data of the first and most significant + * byte of the eight bytes to build the 64 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT64_BE +#define MBEDTLS_GET_UINT64_BE( data, offset ) \ + ( \ + ( (uint64_t) ( data )[( offset ) ] << 56 ) \ + | ( (uint64_t) ( data )[( offset ) + 1] << 48 ) \ + | ( (uint64_t) ( data )[( offset ) + 2] << 40 ) \ + | ( (uint64_t) ( data )[( offset ) + 3] << 32 ) \ + | ( (uint64_t) ( data )[( offset ) + 4] << 24 ) \ + | ( (uint64_t) ( data )[( offset ) + 5] << 16 ) \ + | ( (uint64_t) ( data )[( offset ) + 6] << 8 ) \ + | ( (uint64_t) ( data )[( offset ) + 7] ) \ + ) +#endif + +/** + * Put in memory a 64 bits unsigned integer in big-endian order. + * + * \param n 64 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 64 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the most significant + * byte of the 64 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT64_BE +#define MBEDTLS_PUT_UINT64_BE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_7( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_6( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_5( n ); \ + ( data )[( offset ) + 3] = MBEDTLS_BYTE_4( n ); \ + ( data )[( offset ) + 4] = MBEDTLS_BYTE_3( n ); \ + ( data )[( offset ) + 5] = MBEDTLS_BYTE_2( n ); \ + ( data )[( offset ) + 6] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 7] = MBEDTLS_BYTE_0( n ); \ +} +#endif + +/** + * Get the unsigned 64 bits integer corresponding to eight bytes in + * little-endian order (LSB first). + * + * \param data Base address of the memory to get the eight bytes from. + * \param offset Offset from \p data of the first and least significant + * byte of the eight bytes to build the 64 bits unsigned + * integer from. + */ +#ifndef MBEDTLS_GET_UINT64_LE +#define MBEDTLS_GET_UINT64_LE( data, offset ) \ + ( \ + ( (uint64_t) ( data )[( offset ) + 7] << 56 ) \ + | ( (uint64_t) ( data )[( offset ) + 6] << 48 ) \ + | ( (uint64_t) ( data )[( offset ) + 5] << 40 ) \ + | ( (uint64_t) ( data )[( offset ) + 4] << 32 ) \ + | ( (uint64_t) ( data )[( offset ) + 3] << 24 ) \ + | ( (uint64_t) ( data )[( offset ) + 2] << 16 ) \ + | ( (uint64_t) ( data )[( offset ) + 1] << 8 ) \ + | ( (uint64_t) ( data )[( offset ) ] ) \ + ) +#endif + +/** + * Put in memory a 64 bits unsigned integer in little-endian order. + * + * \param n 64 bits unsigned integer to put in memory. + * \param data Base address of the memory where to put the 64 + * bits unsigned integer in. + * \param offset Offset from \p data where to put the least significant + * byte of the 64 bits unsigned integer \p n. + */ +#ifndef MBEDTLS_PUT_UINT64_LE +#define MBEDTLS_PUT_UINT64_LE( n, data, offset ) \ +{ \ + ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ + ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ + ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ + ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ + ( data )[( offset ) + 4] = MBEDTLS_BYTE_4( n ); \ + ( data )[( offset ) + 5] = MBEDTLS_BYTE_5( n ); \ + ( data )[( offset ) + 6] = MBEDTLS_BYTE_6( n ); \ + ( data )[( offset ) + 7] = MBEDTLS_BYTE_7( n ); \ +} +#endif + +#endif /* MBEDTLS_LIBRARY_ALIGNMENT_H */ diff --git a/library/common.h b/library/common.h index 6ea89789b..63c936fe5 100644 --- a/library/common.h +++ b/library/common.h @@ -24,6 +24,7 @@ #define MBEDTLS_LIBRARY_COMMON_H #include "mbedtls/build_info.h" +#include "alignment.h" #include #include @@ -74,353 +75,6 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ #define MBEDTLS_ALLOW_PRIVATE_ACCESS -/** MBEDTLS_ALLOW_UNALIGNED_ACCESS is defined for architectures where unaligned - * memory accesses are safe and performant. - * - * Unaligned accesses must be made via the UNALIGNED_UINT32_T type - * defined here. - * - * This list is incomplete. - */ -#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ - || defined(__ARM_FEATURE_UNALIGNED) \ - || defined(__aarch64__) \ - || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ - || defined(__ARM_ARCH_7A__) -#if (defined(__GNUC__) && __GNUC__ >= 4) \ - || (defined(__clang__) && __has_attribute(aligned)) \ - || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) -#define MBEDTLS_ALLOW_UNALIGNED_ACCESS -__attribute__((aligned(1))) typedef uint32_t mbedtls_unaligned_uint32_t; -#define UNALIGNED_UINT32_T mbedtls_unaligned_uint32_t -#elif defined(_MSC_VER) -#define MBEDTLS_ALLOW_UNALIGNED_ACCESS -#define UNALIGNED_UINT32_T __declspec(align(1)) uint32_t -#endif -#endif - -/** Byte Reading Macros - * - * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th - * byte from x, where byte 0 is the least significant byte. - */ -#define MBEDTLS_BYTE_0( x ) ( (uint8_t) ( ( x ) & 0xff ) ) -#define MBEDTLS_BYTE_1( x ) ( (uint8_t) ( ( ( x ) >> 8 ) & 0xff ) ) -#define MBEDTLS_BYTE_2( x ) ( (uint8_t) ( ( ( x ) >> 16 ) & 0xff ) ) -#define MBEDTLS_BYTE_3( x ) ( (uint8_t) ( ( ( x ) >> 24 ) & 0xff ) ) -#define MBEDTLS_BYTE_4( x ) ( (uint8_t) ( ( ( x ) >> 32 ) & 0xff ) ) -#define MBEDTLS_BYTE_5( x ) ( (uint8_t) ( ( ( x ) >> 40 ) & 0xff ) ) -#define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) -#define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) - -/** - * Get the unsigned 32 bits integer corresponding to four bytes in - * big-endian order (MSB first). - * - * \param data Base address of the memory to get the four bytes from. - * \param offset Offset from \p data of the first and most significant - * byte of the four bytes to build the 32 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT32_BE -#define MBEDTLS_GET_UINT32_BE( data , offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] << 24 ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 3] ) \ - ) -#endif - -/** - * Put in memory a 32 bits unsigned integer in big-endian order. - * - * \param n 32 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 32 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the most significant - * byte of the 32 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT32_BE -#define MBEDTLS_PUT_UINT32_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_0( n ); \ -} -#endif - -/** - * Get the unsigned 32 bits integer corresponding to four bytes in - * little-endian order (LSB first). - * - * \param data Base address of the memory to get the four bytes from. - * \param offset Offset from \p data of the first and least significant - * byte of the four bytes to build the 32 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT32_LE -#define MBEDTLS_GET_UINT32_LE( data, offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 3] << 24 ) \ - ) -#endif - -/** - * Put in memory a 32 bits unsigned integer in little-endian order. - * - * \param n 32 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 32 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the least significant - * byte of the 32 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT32_LE -#define MBEDTLS_PUT_UINT32_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ -} -#endif - -/** - * Get the unsigned 16 bits integer corresponding to two bytes in - * little-endian order (LSB first). - * - * \param data Base address of the memory to get the two bytes from. - * \param offset Offset from \p data of the first and least significant - * byte of the two bytes to build the 16 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT16_LE -#define MBEDTLS_GET_UINT16_LE( data, offset ) \ - ( \ - ( (uint16_t) ( data )[( offset ) ] ) \ - | ( (uint16_t) ( data )[( offset ) + 1] << 8 ) \ - ) -#endif - -/** - * Put in memory a 16 bits unsigned integer in little-endian order. - * - * \param n 16 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 16 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the least significant - * byte of the 16 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT16_LE -#define MBEDTLS_PUT_UINT16_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ -} -#endif - -/** - * Get the unsigned 16 bits integer corresponding to two bytes in - * big-endian order (MSB first). - * - * \param data Base address of the memory to get the two bytes from. - * \param offset Offset from \p data of the first and most significant - * byte of the two bytes to build the 16 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT16_BE -#define MBEDTLS_GET_UINT16_BE( data, offset ) \ - ( \ - ( (uint16_t) ( data )[( offset ) ] << 8 ) \ - | ( (uint16_t) ( data )[( offset ) + 1] ) \ - ) -#endif - -/** - * Put in memory a 16 bits unsigned integer in big-endian order. - * - * \param n 16 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 16 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the most significant - * byte of the 16 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT16_BE -#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_0( n ); \ -} -#endif - -/** - * Get the unsigned 24 bits integer corresponding to three bytes in - * big-endian order (MSB first). - * - * \param data Base address of the memory to get the three bytes from. - * \param offset Offset from \p data of the first and most significant - * byte of the three bytes to build the 24 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT24_BE -#define MBEDTLS_GET_UINT24_BE( data , offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] ) \ - ) -#endif - -/** - * Put in memory a 24 bits unsigned integer in big-endian order. - * - * \param n 24 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 24 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the most significant - * byte of the 24 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT24_BE -#define MBEDTLS_PUT_UINT24_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_0( n ); \ -} -#endif - -/** - * Get the unsigned 24 bits integer corresponding to three bytes in - * little-endian order (LSB first). - * - * \param data Base address of the memory to get the three bytes from. - * \param offset Offset from \p data of the first and least significant - * byte of the three bytes to build the 24 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT24_LE -#define MBEDTLS_GET_UINT24_LE( data, offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ - ) -#endif - -/** - * Put in memory a 24 bits unsigned integer in little-endian order. - * - * \param n 24 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 24 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the least significant - * byte of the 24 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT24_LE -#define MBEDTLS_PUT_UINT24_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ -} -#endif - -/** - * Get the unsigned 64 bits integer corresponding to eight bytes in - * big-endian order (MSB first). - * - * \param data Base address of the memory to get the eight bytes from. - * \param offset Offset from \p data of the first and most significant - * byte of the eight bytes to build the 64 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT64_BE -#define MBEDTLS_GET_UINT64_BE( data, offset ) \ - ( \ - ( (uint64_t) ( data )[( offset ) ] << 56 ) \ - | ( (uint64_t) ( data )[( offset ) + 1] << 48 ) \ - | ( (uint64_t) ( data )[( offset ) + 2] << 40 ) \ - | ( (uint64_t) ( data )[( offset ) + 3] << 32 ) \ - | ( (uint64_t) ( data )[( offset ) + 4] << 24 ) \ - | ( (uint64_t) ( data )[( offset ) + 5] << 16 ) \ - | ( (uint64_t) ( data )[( offset ) + 6] << 8 ) \ - | ( (uint64_t) ( data )[( offset ) + 7] ) \ - ) -#endif - -/** - * Put in memory a 64 bits unsigned integer in big-endian order. - * - * \param n 64 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 64 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the most significant - * byte of the 64 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT64_BE -#define MBEDTLS_PUT_UINT64_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_7( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_6( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_5( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_4( n ); \ - ( data )[( offset ) + 4] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 5] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 6] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 7] = MBEDTLS_BYTE_0( n ); \ -} -#endif - -/** - * Get the unsigned 64 bits integer corresponding to eight bytes in - * little-endian order (LSB first). - * - * \param data Base address of the memory to get the eight bytes from. - * \param offset Offset from \p data of the first and least significant - * byte of the eight bytes to build the 64 bits unsigned - * integer from. - */ -#ifndef MBEDTLS_GET_UINT64_LE -#define MBEDTLS_GET_UINT64_LE( data, offset ) \ - ( \ - ( (uint64_t) ( data )[( offset ) + 7] << 56 ) \ - | ( (uint64_t) ( data )[( offset ) + 6] << 48 ) \ - | ( (uint64_t) ( data )[( offset ) + 5] << 40 ) \ - | ( (uint64_t) ( data )[( offset ) + 4] << 32 ) \ - | ( (uint64_t) ( data )[( offset ) + 3] << 24 ) \ - | ( (uint64_t) ( data )[( offset ) + 2] << 16 ) \ - | ( (uint64_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint64_t) ( data )[( offset ) ] ) \ - ) -#endif - -/** - * Put in memory a 64 bits unsigned integer in little-endian order. - * - * \param n 64 bits unsigned integer to put in memory. - * \param data Base address of the memory where to put the 64 - * bits unsigned integer in. - * \param offset Offset from \p data where to put the least significant - * byte of the 64 bits unsigned integer \p n. - */ -#ifndef MBEDTLS_PUT_UINT64_LE -#define MBEDTLS_PUT_UINT64_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 4] = MBEDTLS_BYTE_4( n ); \ - ( data )[( offset ) + 5] = MBEDTLS_BYTE_5( n ); \ - ( data )[( offset ) + 6] = MBEDTLS_BYTE_6( n ); \ - ( data )[( offset ) + 7] = MBEDTLS_BYTE_7( n ); \ -} -#endif - /** * Perform a fast block XOR operation, such that * r[i] = a[i] ^ b[i] where 0 <= i < n From 96d61d14d85fa2b7492b2738ee417a5e8fce0961 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 19:33:22 +0000 Subject: [PATCH 0946/1574] Use memcpy for unaligned accesses Signed-off-by: Dave Rodgman --- library/alignment.h | 50 ++++++++++++++++++++------------------------- library/common.h | 18 +++++----------- 2 files changed, 27 insertions(+), 41 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index 60e5dba13..6394be2f3 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -24,38 +24,32 @@ #define MBEDTLS_LIBRARY_ALIGNMENT_H #include +#include -/** MBEDTLS_ALLOW_UNALIGNED_ACCESS is defined for architectures where unaligned - * memory accesses are safe and performant. +/** + * Read the unsigned 32 bits integer from the given address, which need not + * be aligned. * - * Unaligned accesses must be made via the UNALIGNED_UINT32_T type - * defined here. - * - * This list is incomplete. + * \param p pointer to 4 bytes of data */ -#if defined(__i386__) || defined(__amd64__) || defined( __x86_64__) \ - || defined(__ARM_FEATURE_UNALIGNED) \ - || defined(__aarch64__) \ - || defined(__ARM_ARCH_8__) || defined(__ARM_ARCH_8A__) || defined(__ARM_ARCH_8M__) \ - || defined(__ARM_ARCH_7A__) -#if (defined(__GNUC__) && __GNUC__ >= 4) \ - || (defined(__clang__) && __has_attribute(aligned)) \ - || (defined(__ARMCC_VERSION) && __ARMCC_VERSION >= 5000000 ) - /* GCC, Clang and armcc */ -#define MBEDTLS_ALLOW_UNALIGNED_ACCESS -__attribute__((aligned(1))) typedef uint32_t mbedtls_unaligned_uint32_t; -#define UNALIGNED_UINT32_T mbedtls_unaligned_uint32_t -#elif defined(_MSC_VER) - /* MSVC */ -#define MBEDTLS_ALLOW_UNALIGNED_ACCESS -#define UNALIGNED_UINT32_T __declspec(align(1)) uint32_t -#elif (defined __ICCARM__) - /* IAR - this is disabled until we have the opportunity to test it */ -#undef MBEDTLS_ALLOW_UNALIGNED_ACCESS -#define UNALIGNED_UINT32_T _Pragma("data_alignment = 1") uint32_t -#endif -#endif +static inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) +{ + uint32_t r; + memcpy( &r, p, 4 ); + return r; +} +/** + * Write the unsigned 32 bits integer to the given address, which need not + * be aligned. + * + * \param p pointer to 4 bytes of data + * \param x data to write + */ +static inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) +{ + memcpy(p, &x, 4); +} /** Byte Reading Macros * diff --git a/library/common.h b/library/common.h index 63c936fe5..9dbe21b88 100644 --- a/library/common.h +++ b/library/common.h @@ -88,24 +88,16 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c */ inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { -#if defined(MBEDTLS_ALLOW_UNALIGNED_ACCESS) - UNALIGNED_UINT32_T *a32 = (uint32_t *)a; - UNALIGNED_UINT32_T *b32 = (uint32_t *)b; - UNALIGNED_UINT32_T *r32 = (uint32_t *)r; - for ( size_t i = 0; i < ( n >> 2 ); i++ ) + size_t i; + for ( i = 0; (i + 4) < n; i+= 4 ) { - r32[i] = a32[i] ^ b32[i]; + uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i); + mbedtls_put_unaligned_uint32(r + i, x); } - for ( size_t i = n - ( n % 4 ) ; i < n; i++ ) + for ( ; i < n; i++ ) { r[i] = a[i] ^ b[i]; } -#else - for ( size_t i = 0; i < n; i++ ) - { - r[i] = a[i] ^ b[i]; - } -#endif } /* Fix MSVC C99 compatible issue From 069e7f462a426795301aaaa79e811721427447df Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 19:37:26 +0000 Subject: [PATCH 0947/1574] Correct mixed up comments Signed-off-by: Dave Rodgman --- library/aes.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/aes.c b/library/aes.c index 4f7c88859..6e1bcd2be 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1140,14 +1140,14 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, size_t i; unsigned char *prev_output = output - 16; - /* Copy the remainder of the input for this final round. */ + /* Copy ciphertext bytes from the previous block to our output for each + * byte of ciphertext we won't steal. */ for( i = 0; i < leftover; i++ ) { output[i] = prev_output[i]; } - /* Copy ciphertext bytes from the previous block to our output for each - * byte of ciphertext we won't steal. */ + /* Copy the remainder of the input for this final round. */ mbedtls_xor( tmp, input, t, leftover ); /* Copy ciphertext bytes from the previous block for input in this From 4b910c1ed1313678ab894222cd2a4e05a5641b5e Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 19:44:52 +0000 Subject: [PATCH 0948/1574] Fix whitespace Signed-off-by: Dave Rodgman --- library/alignment.h | 2 +- library/common.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index 6394be2f3..a5b71d306 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -48,7 +48,7 @@ static inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) */ static inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) { - memcpy(p, &x, 4); + memcpy( p, &x, 4 ); } /** Byte Reading Macros diff --git a/library/common.h b/library/common.h index 9dbe21b88..943f84c48 100644 --- a/library/common.h +++ b/library/common.h @@ -89,10 +89,10 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { size_t i; - for ( i = 0; (i + 4) < n; i+= 4 ) + for ( i = 0; ( i + 4 ) < n; i+= 4 ) { - uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i); - mbedtls_put_unaligned_uint32(r + i, x); + uint32_t x = mbedtls_get_unaligned_uint32( a + i ) ^ mbedtls_get_unaligned_uint32( b + i ); + mbedtls_put_unaligned_uint32( r + i, x ); } for ( ; i < n; i++ ) { From 66433444fcd6fcd45b4d96c9a95e0a97e0ca3135 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 20:07:39 +0000 Subject: [PATCH 0949/1574] Fix static inline linker issues Signed-off-by: Dave Rodgman --- library/alignment.h | 4 ++-- library/platform_util.c | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index a5b71d306..755cde384 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -32,7 +32,7 @@ * * \param p pointer to 4 bytes of data */ -static inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) +inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) { uint32_t r; memcpy( &r, p, 4 ); @@ -46,7 +46,7 @@ static inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) * \param p pointer to 4 bytes of data * \param x data to write */ -static inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) +inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) { memcpy( p, &x, 4 ); } diff --git a/library/platform_util.c b/library/platform_util.c index 8fba664d2..7843609e1 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -144,7 +144,11 @@ void (*mbedtls_test_hook_test_fail)( const char *, int, const char *); #endif /* MBEDTLS_TEST_HOOKS */ /* - * Provide an external definition of mbedtls_xor so that the compiler - * has the option to not inline it + * Provide external definitions of some inline functions so that the compiler + * has the option to not inline them */ extern inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ); + +extern inline uint32_t mbedtls_get_unaligned_uint32( void const *p ); + +extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); \ No newline at end of file From c58858865b1b706ff2c1699b215d76bf827a78a1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 20:35:04 +0000 Subject: [PATCH 0950/1574] Fix off-by-one error Signed-off-by: Dave Rodgman --- library/common.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/common.h b/library/common.h index 943f84c48..c17506416 100644 --- a/library/common.h +++ b/library/common.h @@ -89,7 +89,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) { size_t i; - for ( i = 0; ( i + 4 ) < n; i+= 4 ) + for ( i = 0; ( i + 4 ) <= n; i += 4 ) { uint32_t x = mbedtls_get_unaligned_uint32( a + i ) ^ mbedtls_get_unaligned_uint32( b + i ); mbedtls_put_unaligned_uint32( r + i, x ); From aaf69fd6826d9c5c6ffa05a220ad1674602fcee2 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 20:40:28 +0000 Subject: [PATCH 0951/1574] Fix missing newline Signed-off-by: Dave Rodgman --- library/platform_util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/platform_util.c b/library/platform_util.c index 7843609e1..9d7323b3a 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -151,4 +151,4 @@ extern inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsign extern inline uint32_t mbedtls_get_unaligned_uint32( void const *p ); -extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); \ No newline at end of file +extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); From 875d2383d026f8c6adc8a00c0fdfc6f327ea29e3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 20:43:15 +0000 Subject: [PATCH 0952/1574] Improve documentation Signed-off-by: Dave Rodgman --- library/alignment.h | 1 + 1 file changed, 1 insertion(+) diff --git a/library/alignment.h b/library/alignment.h index 755cde384..dedfdc9e7 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -31,6 +31,7 @@ * be aligned. * * \param p pointer to 4 bytes of data + * \return Data at the given address */ inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) { From 7a910a8be0b4ea105223cd51a6e701d496d0756e Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 21:17:40 +0000 Subject: [PATCH 0953/1574] Minor formatting tweaks Signed-off-by: Dave Rodgman --- library/alignment.h | 6 +++--- library/common.h | 2 +- tests/suites/test_suite_common.function | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index dedfdc9e7..e7f11da40 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -33,10 +33,10 @@ * \param p pointer to 4 bytes of data * \return Data at the given address */ -inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) +inline uint32_t mbedtls_get_unaligned_uint32( const void *p ) { uint32_t r; - memcpy( &r, p, 4 ); + memcpy( &r, p, sizeof( r ) ); return r; } @@ -49,7 +49,7 @@ inline uint32_t mbedtls_get_unaligned_uint32( void const *p ) */ inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) { - memcpy( p, &x, 4 ); + memcpy( p, &x, sizeof( x ) ); } /** Byte Reading Macros diff --git a/library/common.h b/library/common.h index c17506416..2cc44fb71 100644 --- a/library/common.h +++ b/library/common.h @@ -86,7 +86,7 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * \param b Pointer to input (buffer of at least \p n bytes) * \param n Number of bytes to process. */ -inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ) +inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n ) { size_t i; for ( i = 0; ( i + 4 ) <= n; i += 4 ) diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function index c8a7a52ab..4444a52ce 100644 --- a/tests/suites/test_suite_common.function +++ b/tests/suites/test_suite_common.function @@ -82,9 +82,9 @@ void mbedtls_xor( int len ) ASSERT_COMPARE( r1 + r_off, n, r2 + r_off, n ); } exit: - if ( a != NULL ) mbedtls_free( a ); - if ( a != NULL ) mbedtls_free( b ); - if ( r1 != NULL ) mbedtls_free( r1 ); - if ( r2 != NULL ) mbedtls_free( r2 ); + mbedtls_free( a ); + mbedtls_free( b ); + mbedtls_free( r1 ); + mbedtls_free( r2 ); } /* END_CASE */ From b8c4a0d940421c08253234e0207721076fe50bb4 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 24 Nov 2022 21:18:55 +0000 Subject: [PATCH 0954/1574] Minor formatting tweaks Signed-off-by: Dave Rodgman --- library/platform_util.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/platform_util.c b/library/platform_util.c index 9d7323b3a..9c18dd502 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -147,8 +147,8 @@ void (*mbedtls_test_hook_test_fail)( const char *, int, const char *); * Provide external definitions of some inline functions so that the compiler * has the option to not inline them */ -extern inline void mbedtls_xor( unsigned char *r, unsigned char const *a, unsigned char const *b, size_t n ); +extern inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n ); -extern inline uint32_t mbedtls_get_unaligned_uint32( void const *p ); +extern inline uint32_t mbedtls_get_unaligned_uint32( const void *p ); extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); From 50fc127a4e3ef8d3ac2ca1c5c51f9fd6f1065fcd Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 24 Nov 2022 21:29:23 +0000 Subject: [PATCH 0955/1574] Change order of test arguments for bignum_mod_raw to simplify Python script Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_mod_raw.py | 6 ------ tests/suites/test_suite_bignum_mod_raw.function | 5 +++-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index ee144aa1e..4c53a7f4c 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -51,12 +51,6 @@ class BignumModRawAdd(bignum_common.ModOperationCommon, input_style = "fixed" arity = 2 - def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.arg_a, - self.arg_b, - self.arg_n] - ] + self.result() - def result(self) -> List[str]: result = (self.int_a + self.int_b) % self.int_n return [self.format_result(result)] diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 7b1bda708..148386189 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -288,8 +288,9 @@ exit: /* BEGIN MERGE SLOT 5 */ /* BEGIN_CASE */ -void mpi_mod_raw_add( char * input_A, char * input_B, - char * input_N, char * input_S ) +void mpi_mod_raw_add( char * input_N, + char * input_A, char * input_B, + char * input_S ) { mbedtls_mpi_uint *A = NULL; mbedtls_mpi_uint *B = NULL; From 4bdb9fbfa2fed35bffd675e56ed9028b08387520 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 24 Nov 2022 22:21:15 +0100 Subject: [PATCH 0956/1574] Enable all ciphers in OpenSSL >=1.1.0 OpenSSL may be configured to support features such as cipher suites or protocol versions that are disabled by default. Enable them all: we're testing, we don't care about enabling insecure stuff. This is not needed with the builds of OpenSSL that we're currently using on the Jenkins CI, but it's needed with more recent versions such as typically found on developer machines, and with future CI additions. The syntax to do that was only introduced in OpenSSL 1.1.0; fortunately we don't need to do anything special with earlier versions. With OpenSSL 1.1.1f on Ubuntu 20.04, this allows SHA-1 in certificates, which is still needed for a few test cases in ssl-opt.sh. Curiously, this is also needed for the cipher suite TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256 (and no other, including other DHE-PSK or ARIA cipher suites). Signed-off-by: Gilles Peskine --- tests/compat.sh | 14 ++++++++++++++ tests/ssl-opt.sh | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/tests/compat.sh b/tests/compat.sh index d68121712..529c2c542 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -595,6 +595,20 @@ setup_arguments() G_CLIENT_ARGS="-p $PORT --debug 3 $G_MODE" G_CLIENT_PRIO="NONE:$G_PRIO_MODE:+COMP-NULL:+CURVE-ALL:+SIGN-ALL" + # Newer versions of OpenSSL have a syntax to enable all "ciphers", even + # low-security ones. This covers not just cipher suites but also protocol + # versions. It is necessary, for example, to use (D)TLS 1.0/1.1 on + # OpenSSL 1.1.1f from Ubuntu 20.04. The syntax was only introduced in + # OpenSSL 1.1.0 (21e0c1d23afff48601eb93135defddae51f7e2e3) and I can't find + # a way to discover it from -help, so check the openssl version. + case $($OPENSSL_CMD version) in + "OpenSSL 0"*|"OpenSSL 1.0"*) :;; + *) + O_CLIENT_ARGS="$O_CLIENT_ARGS -cipher ALL@SECLEVEL=0" + O_SERVER_ARGS="$O_SERVER_ARGS -cipher ALL@SECLEVEL=0" + ;; + esac + if [ "X$VERIFY" = "XYES" ]; then M_SERVER_ARGS="$M_SERVER_ARGS ca_file=data_files/test-ca_cat12.crt auth_mode=required" diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index b460c67dc..c6f6e2963 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -1689,6 +1689,20 @@ if [ -n "${OPENSSL_LEGACY:-}" ]; then O_LEGACY_CLI="$O_LEGACY_CLI -connect 127.0.0.1:+SRV_PORT" fi +# Newer versions of OpenSSL have a syntax to enable all "ciphers", even +# low-security ones. This covers not just cipher suites but also protocol +# versions. It is necessary, for example, to use (D)TLS 1.0/1.1 on +# OpenSSL 1.1.1f from Ubuntu 20.04. The syntax was only introduced in +# OpenSSL 1.1.0 (21e0c1d23afff48601eb93135defddae51f7e2e3) and I can't find +# a way to discover it from -help, so check the openssl version. +case $($OPENSSL_CMD version) in + "OpenSSL 0"*|"OpenSSL 1.0"*) :;; + *) + O_CLI="$O_CLI -cipher ALL@SECLEVEL=0" + O_SRV="$O_SRV -cipher ALL@SECLEVEL=0" + ;; +esac + if [ -n "${OPENSSL_NEXT:-}" ]; then O_NEXT_SRV="$O_NEXT_SRV -accept $SRV_PORT" O_NEXT_SRV_NO_CERT="$O_NEXT_SRV_NO_CERT -accept $SRV_PORT" From 187db00399dc05c1e1ad29adf55a9f480334a780 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 23 Nov 2022 14:30:00 +0100 Subject: [PATCH 0957/1574] Update the Travis "full" build to use modern Clang Don't use an all.sh component because there isn't one that does what we want (modern Clang with ASan, and test everything). * We need to set CC explicitly or tweak PATH, because clang in $PATH on Travis focal instances is Clang 7 which is too old (we want Clang 10). * Travis lacks the array of versions of openssl and gnutls that we normally use for testing, so we need to exclude some tests (or build our own multiple versions of openssl and gnutls). The SSL test exclusions are ad hoc and based on what currently works. Signed-off-by: Gilles Peskine --- .travis.yml | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 67cb3ca61..eaf817a7b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,8 +25,40 @@ jobs: - tests/scripts/all.sh -k build_arm_linux_gnueabi_gcc_arm5vte build_arm_none_eabi_gcc_m0plus - name: full configuration + os: linux + dist: focal + addons: + apt: + packages: + - clang-10 + - gnutls-bin script: - - tests/scripts/all.sh -k test_full_cmake_gcc_asan + # Do a manual build+test sequence rather than using all.sh, + # because there's no all.sh component that does what we want, + # which is a build with Clang >= 10 and ASan, running all the SSL + # testing. + # - The clang executable in the default PATH is Clang 7 on + # Travis's focal instances, but we want Clang >= 10. + # - Running all the SSL testing requires a specific set of + # OpenSSL and GnuTLS versions and we don't want to bother + # with those on Travis. + # So we explicitly select clang-10 as the compiler, and we + # have ad hoc restrictions on SSL testing based on what is + # passing at the time of writing. We will remove these limitations + # gradually. + - make generated_files + - make CC=clang-10 CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all -O2' LDFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all' + - make test + - programs/test/selftest + - tests/scripts/test_psa_constant_names.py + - tests/ssl-opt.sh + # Modern OpenSSL does not support fixed ECDH or null ciphers. + - tests/compat.sh -p OpenSSL -e 'NULL\|ECDH-' + - tests/scripts/travis-log-failure.sh + # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. + - tests/compat.sh -p GnuTLS -e 'CAMELLIA' + - tests/scripts/travis-log-failure.sh + - tests/context-info.sh - name: Windows os: windows From 12269e27b190ae399916c81c02ded099864c1b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Fri, 25 Nov 2022 05:51:02 +0100 Subject: [PATCH 0958/1574] Add changelog for PKCS7 parser MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bence Szépkúti --- ChangeLog.d/pkcs7-parser.txt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 ChangeLog.d/pkcs7-parser.txt diff --git a/ChangeLog.d/pkcs7-parser.txt b/ChangeLog.d/pkcs7-parser.txt new file mode 100644 index 000000000..7f85f0ce1 --- /dev/null +++ b/ChangeLog.d/pkcs7-parser.txt @@ -0,0 +1,13 @@ +Features + * Added partial support for parsing the PKCS7 cryptographic message syntax, + as defined in RFC 2315. Currently, support is limited to the following: + - Only the signed data content type, version 1 is supported. + - Only DER encoding is supported. + - Only a single digest algorithm per message is supported. + - Only 0 or 1, certificate is supported per message, which must be in + X509 format. + - There is no support for certificate-revocation lists. + - The authenticated and unauthenticated attribute fields of SignerInfo + must be empty. + Many thanks to Daniel Axtens, Nayna Jain, and Nick Child from IBM for + contributing this feature. From 8f6583d8363086433cb1d8a86f5683589e9f9a74 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 25 Nov 2022 09:16:41 +0000 Subject: [PATCH 0959/1574] Fix for MSVC unsupported #inline keyword Signed-off-by: Dave Rodgman --- library/alignment.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index e7f11da40..986fdaa95 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -26,6 +26,11 @@ #include #include +#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ + !defined(inline) && !defined(__cplusplus) +#define inline __inline +#endif + /** * Read the unsigned 32 bits integer from the given address, which need not * be aligned. From 88e5566a9bc489039e0345e82d62afb3e0e531b7 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 10:14:54 +0100 Subject: [PATCH 0960/1574] Changed order of conditions in check_config.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 43e538cf9..519c2b1ff 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -903,8 +903,8 @@ #error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)" #endif -#if !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ - defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) && \ + !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) #error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequsites" #endif From e2c46e0413f9b6c145e54bc60a5848a03492dc70 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 10:44:11 +0100 Subject: [PATCH 0961/1574] Reference to RFC 9146 added MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added deprecated keyword to MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 770625010..8f4523694 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1320,9 +1320,10 @@ /** * \def MBEDTLS_SSL_DTLS_CONNECTION_ID * - * Enable support for the DTLS Connection ID extension, + * Enable support for the DTLS Connection ID (CID) extension, * which allows to identify DTLS connections across changes - * in the underlying transport. + * in the underlying transport. The CID functionality is described + * in RFC 9146. * * Setting this option enables the SSL APIs `mbedtls_ssl_set_cid()`, * mbedtls_ssl_get_own_cid()`, `mbedtls_ssl_get_peer_cid()` and @@ -1352,6 +1353,13 @@ * Set the value to 0 for the standard version, and * 1 for the legacy draft version. * + * \deprecated Support for the legacy version of the DTLS + * Connection ID feature is deprecated. Please + * switch to the standardized version defined + * in RFC 9146 enabled by utilizing + * MBEDTLS_SSL_DTLS_CONNECTION_ID without use + * of MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT. + * * Requires: MBEDTLS_SSL_DTLS_CONNECTION_ID */ #define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 0 From b2e661562557568aef263e880b80c6a441f0c385 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 10:53:44 +0100 Subject: [PATCH 0962/1574] Added deprecated warning in check_config.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Warns about the removal of the legacy DTLS Connection ID feature in a future version of Mbed TLS. Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 519c2b1ff..6bfb9faa5 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -908,6 +908,13 @@ #error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequsites" #endif +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) && MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT != 0 +#if defined(MBEDTLS_DEPRECATED_REMOVED) +#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT is deprecated and will be removed in a future version of Mbed TLS" +#elif defined(MBEDTLS_DEPRECATED_WARNING) +#warning "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT is deprecated and will be removed in a future version of Mbed TLS" +#endif +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT && MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT != 0 */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \ !defined(MBEDTLS_SSL_PROTO_TLS1_2) From 6b6b63f039ebb19d5a7eafd05aa84b98c68a1075 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 10:57:06 +0100 Subject: [PATCH 0963/1574] Added closing SECTION of doxygen markup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/ssl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 2a8a06dfb..3a4d660cf 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -402,6 +402,8 @@ #define MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY 16 #endif +/** \} name SECTION: Module settings */ + /* * Default to standard CID mode */ From df84bb30abf4a9d4e71ea5cf20fd64962ed379c4 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 11:14:03 +0100 Subject: [PATCH 0964/1574] Removed MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH from CID tests in all.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added also extra text. Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index ce92c1b41..51a88b7fb 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2711,39 +2711,37 @@ component_test_variable_ssl_in_out_buffer_len () { } component_test_variable_ssl_in_out_buffer_len_CID () { - msg "build: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled (ASan build)" - scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH + msg "build: MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled (ASan build)" scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make - msg "test: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID" + msg "test: MBEDTLS_SSL_DTLS_CONNECTION_ID (standard)" make test - msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + msg "test: ssl-opt.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled" tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + msg "test: compat.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled" tests/compat.sh } component_test_variable_ssl_in_out_buffer_len_CID_legacy () { - msg "build: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled (ASan build)" - scripts/config.py set MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH + msg "build: MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled (ASan build)" scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 1 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . make - msg "test: MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID" + msg "test: MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy)" make test - msg "test: ssl-opt.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + msg "test: ssl-opt.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled" tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH and MBEDTLS_SSL_DTLS_CONNECTION_ID enabled" + msg "test: compat.sh, MMBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled" tests/compat.sh } From db01d050112a4f41be5719db4e0fb1bdd71d9631 Mon Sep 17 00:00:00 2001 From: Hannes Tschofenig Date: Wed, 23 Nov 2022 11:18:19 +0100 Subject: [PATCH 0965/1574] Removal of redundant DTLS CID test in ssl-opt.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per suggestion from Manuel, I removed this redundant test. Signed-off-by: Hannes Tschofenig Signed-off-by: Manuel Pégourié-Gonnard --- tests/ssl-opt.sh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 31c007e62..cc0ac55cb 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2580,18 +2580,6 @@ run_test "Context serialization, client serializes, with CID" \ -c "Deserializing connection..." \ -S "Deserializing connection..." -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION -requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID -requires_cid_compat -run_test "Context serialization, client serializes, with CID (legacy)" \ - "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ - "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ - 0 \ - -c "Deserializing connection..." \ - -S "Deserializing connection..." - - requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, server serializes, CCM" \ "$P_SRV dtls=1 serialize=1 exchanges=2" \ From 61336848a922d29e45b06e79e3058be2a1a5a1b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 25 Nov 2022 11:12:38 +0100 Subject: [PATCH 0966/1574] Fix bug when legacy CID is enabled but not used MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When legacy CID is enabled at compile time, but not used at runtime, we would incorrectly skip the sequence number at the beginning of the AAD. There was already two "else" branches for writing the sequence number but none of them was taken in that particular case. Simplify the structure of the code: with TLS 1.2 (we're already in that branch), we always write the sequence number, unless we're using standard CID. Signed-off-by: Manuel Pégourié-Gonnard --- library/ssl_msg.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 58e6af2a5..c523b8249 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -551,9 +551,8 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, ((void) tls_version); ((void) taglen); -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - -#if MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ + MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 if( rec->cid_len != 0 ) { // seq_num_placeholder @@ -569,17 +568,12 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, cur++; } else +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ { // epoch + sequence number memcpy( cur, rec->ctr, sizeof( rec->ctr ) ); cur += sizeof( rec->ctr ); } -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 */ -#else - // epoch + sequence number - memcpy(cur, rec->ctr, sizeof(rec->ctr)); - cur += sizeof(rec->ctr); -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ } // type From 5a454f7781a36dbf9c34eeaf1db892184a7496ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 25 Nov 2022 11:25:08 +0100 Subject: [PATCH 0967/1574] Remove redundant tests in ssl-opt.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We don't need to have two copies of the test with one of them depending on legacy/compat CID: we can have just one copy, but make sure we run ssl-opt.sh both in a build with standard CID and in a build with legacy/compat - that's the job of all.sh (see next commit). Signed-off-by: Manuel Pégourié-Gonnard --- tests/ssl-opt.sh | 41 ----------------------------------------- 1 file changed, 41 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index cc0ac55cb..de9498374 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -525,14 +525,6 @@ requires_max_content_len() { requires_config_value_at_least "MBEDTLS_SSL_OUT_CONTENT_LEN" $1 } -CID_MODE=$( get_config_value_or_default "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT" ) - -requires_cid_compat() { - if [ "$CID_MODE" = "0" ]; then - SKIP_NEXT="YES" - fi -} - # skip next test if GnuTLS isn't available requires_gnutls() { if [ -z "${GNUTLS_AVAILABLE:-}" ]; then @@ -2616,16 +2608,6 @@ run_test "Context serialization, server serializes, with CID" \ -C "Deserializing connection..." \ -s "Deserializing connection..." -requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION -requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID -requires_cid_compat -run_test "Context serialization, server serializes, with CID (legacy)" \ - "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ - "$P_CLI dtls=1 serialize=0 exchanges=2 cid=1 cid_val=beef" \ - 0 \ - -C "Deserializing connection..." \ - -s "Deserializing connection..." - requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, both serialize, CCM" \ @@ -2663,18 +2645,6 @@ run_test "Context serialization, both serialize, with CID" \ -c "Deserializing connection..." \ -s "Deserializing connection..." -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION -requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID -requires_cid_compat -run_test "Context serialization, both serialize, with CID (legacy)" \ - "$P_SRV dtls=1 serialize=1 exchanges=2 cid=1 cid_val=dead" \ - "$P_CLI dtls=1 serialize=1 exchanges=2 cid=1 cid_val=beef" \ - 0 \ - -c "Deserializing connection..." \ - -s "Deserializing connection..." - - requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, re-init, client serializes, CCM" \ "$P_SRV dtls=1 serialize=0 exchanges=2" \ @@ -2711,17 +2681,6 @@ run_test "Context serialization, re-init, client serializes, with CID" \ -c "Deserializing connection..." \ -S "Deserializing connection..." -requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION -requires_config_enabled MBEDTLS_SSL_DTLS_CONNECTION_ID -requires_cid_compat -run_test "Context serialization, re-init, client serializes, with CID (legacy)" \ - "$P_SRV dtls=1 serialize=0 exchanges=2 cid=1 cid_val=dead" \ - "$P_CLI dtls=1 serialize=2 exchanges=2 cid=1 cid_val=beef" \ - 0 \ - -c "Deserializing connection..." \ - -S "Deserializing connection..." - requires_config_enabled MBEDTLS_SSL_CONTEXT_SERIALIZATION run_test "Context serialization, re-init, server serializes, CCM" \ "$P_SRV dtls=1 serialize=2 exchanges=2" \ From 6a543ba1d3f55a161e2f7c6195535a2386e9431e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 25 Nov 2022 11:30:10 +0100 Subject: [PATCH 0968/1574] Remove redundant component in all.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CID is now enabled in the default config (as well as full), so it's already tested in numerous all.sh components, not need to add one for that. We need a component for the legacy/compat option though as it's never enabled in existing components. So, keep that one, but adjust the name and fix a typo in a message. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 51a88b7fb..397e76505 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2710,26 +2710,8 @@ component_test_variable_ssl_in_out_buffer_len () { tests/compat.sh } -component_test_variable_ssl_in_out_buffer_len_CID () { - msg "build: MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled (ASan build)" - scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID - - CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . - make - - msg "test: MBEDTLS_SSL_DTLS_CONNECTION_ID (standard)" - make test - - msg "test: ssl-opt.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled" - tests/ssl-opt.sh - - msg "test: compat.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (standard) enabled" - tests/compat.sh -} - -component_test_variable_ssl_in_out_buffer_len_CID_legacy () { +component_test_dtls_cid_legacy () { msg "build: MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled (ASan build)" - scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID scripts/config.py set MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT 1 CC=gcc cmake -D CMAKE_BUILD_TYPE:String=Asan . @@ -2741,7 +2723,7 @@ component_test_variable_ssl_in_out_buffer_len_CID_legacy () { msg "test: ssl-opt.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled" tests/ssl-opt.sh - msg "test: compat.sh, MMBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled" + msg "test: compat.sh, MBEDTLS_SSL_DTLS_CONNECTION_ID (legacy) enabled" tests/compat.sh } From 5a34b36bbd329254dd0a305fe32019d5cba6aa66 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 25 Nov 2022 13:26:18 +0100 Subject: [PATCH 0969/1574] Remove more now-redundant definitions of inline Signed-off-by: Gilles Peskine --- include/psa/crypto_platform.h | 5 ----- library/aria.c | 5 ----- library/chacha20.c | 5 ----- library/debug.c | 5 ----- library/ecp.c | 5 ----- library/ecp_curves.c | 5 ----- library/mps_reader.c | 5 ----- library/poly1305.c | 5 ----- library/ssl_misc.h | 5 ----- 9 files changed, 45 deletions(-) diff --git a/include/psa/crypto_platform.h b/include/psa/crypto_platform.h index 47ab1cf9f..573b33c85 100644 --- a/include/psa/crypto_platform.h +++ b/include/psa/crypto_platform.h @@ -45,11 +45,6 @@ /* PSA requires several types which C99 provides in stdint.h. */ #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) /* Building for the PSA Crypto service on a PSA platform, a key owner is a PSA diff --git a/library/aria.c b/library/aria.c index 924f95283..5e52eea91 100644 --- a/library/aria.c +++ b/library/aria.c @@ -37,11 +37,6 @@ #include "mbedtls/platform_util.h" -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /* Parameter validation macros */ #define ARIA_VALIDATE_RET( cond ) \ MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_ARIA_BAD_INPUT_DATA ) diff --git a/library/chacha20.c b/library/chacha20.c index e53eb82f5..85d7461aa 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -36,11 +36,6 @@ #if !defined(MBEDTLS_CHACHA20_ALT) -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #define ROTL32( value, amount ) \ ( (uint32_t) ( (value) << (amount) ) | ( (value) >> ( 32 - (amount) ) ) ) diff --git a/library/debug.c b/library/debug.c index bdbf6dd11..6114a460f 100644 --- a/library/debug.c +++ b/library/debug.c @@ -30,11 +30,6 @@ #include #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #define DEBUG_BUF_SIZE 512 static int debug_threshold = 0; diff --git a/library/ecp.c b/library/ecp.c index 37f6090a8..cd7d5543c 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -88,11 +88,6 @@ #include "ecp_internal_alt.h" -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #if defined(MBEDTLS_SELF_TEST) /* * Counts of point addition and doubling, and field multiplications. diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 7b142370d..5cd2828f7 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -39,11 +39,6 @@ #define ECP_VALIDATE( cond ) \ MBEDTLS_INTERNAL_VALIDATE( cond ) -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #define ECP_MPI_INIT(s, n, p) {s, (n), (mbedtls_mpi_uint *)(p)} #define ECP_MPI_INIT_ARRAY(x) \ diff --git a/library/mps_reader.c b/library/mps_reader.c index 36958b46b..6f823bde1 100644 --- a/library/mps_reader.c +++ b/library/mps_reader.c @@ -29,11 +29,6 @@ #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #if defined(MBEDTLS_MPS_ENABLE_TRACE) static int mbedtls_mps_trace_id = MBEDTLS_MPS_TRACE_BIT_READER; #endif /* MBEDTLS_MPS_ENABLE_TRACE */ diff --git a/library/poly1305.c b/library/poly1305.c index 0850f66a3..4d0cdee25 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -32,11 +32,6 @@ #if !defined(MBEDTLS_POLY1305_ALT) -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - #define POLY1305_BLOCK_SIZE_BYTES ( 16U ) /* diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 4d7f63547..59910e4ea 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -56,11 +56,6 @@ #include "common.h" -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /* Shorthand for restartable ECC */ #if defined(MBEDTLS_ECP_RESTARTABLE) && \ defined(MBEDTLS_SSL_CLI_C) && \ From 7d23778178582afa9033bcbb2264300bac3767c6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 25 Nov 2022 13:34:59 +0100 Subject: [PATCH 0970/1574] Explain why p + n isn't good enough Signed-off-by: Gilles Peskine --- library/common.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/common.h b/library/common.h index 53598228b..25d5294e1 100644 --- a/library/common.h +++ b/library/common.h @@ -73,6 +73,9 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * * This is just the addition of an offset to a pointer, except that this * function also accepts an offset of 0 into a buffer whose pointer is null. + * (`p + n` has undefined behavior when `p` is null, even when `n == 0`. + * A null pointer is a valid buffer pointer when the size is 0, for example + * as the result of `malloc(0)` on some platforms.) * * \param p Pointer to a buffer of at least n bytes. * This may be \p NULL if \p n is zero. @@ -89,8 +92,7 @@ static inline unsigned char *mbedtls_buffer_offset( /** Return an offset into a read-only buffer. * - * This is just the addition of an offset to a pointer, except that this - * function also accepts an offset of 0 into a buffer whose pointer is null. + * Similar to mbedtls_buffer_offset(), but for const pointers. * * \param p Pointer to a buffer of at least n bytes. * This may be \p NULL if \p n is zero. From ddad40b1de89f2b65090af1c8723d0352a700b71 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 25 Nov 2022 14:18:52 +0000 Subject: [PATCH 0971/1574] Free the modulus before the data in it in mod_raw_add tests Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod_raw.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 148386189..193949381 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -370,13 +370,13 @@ void mpi_mod_raw_add( char * input_N, } exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( A ); mbedtls_free( B ); mbedtls_free( S ); mbedtls_free( N ); mbedtls_free( X ); - - mbedtls_mpi_mod_modulus_free( &m ); } /* END_CASE */ /* END MERGE SLOT 5 */ From 119d7e20115fa93577bb32c6d54aaf7cad5f7967 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 25 Nov 2022 15:50:30 +0000 Subject: [PATCH 0972/1574] Fix typo 'unsupoported' -> 'unsupported' Signed-off-by: David Horstmann --- tests/data_files/Makefile | 2 +- tests/data_files/test-ca.opensslconf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index d4f2011e9..aacf3e2a7 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -280,7 +280,7 @@ server5-nonprintable_othername.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS non-printable othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions nonprintable_othername_san -days 3650 -sha256 -key $< -out $@ server5-unsupported_othername.crt: server5.key - $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS unsupported othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions unsupoported_othername_san -days 3650 -sha256 -key $< -out $@ + $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS unsupported othername SAN" -set_serial 77 -config $(test_ca_config_file) -extensions unsupported_othername_san -days 3650 -sha256 -key $< -out $@ server5-fan.crt: server5.key $(OPENSSL) req -x509 -new -subj "/C=UK/O=Mbed TLS/CN=Mbed TLS FAN" -set_serial 77 -config $(test_ca_config_file) -extensions fan_cert -days 3650 -sha256 -key server5.key -out $@ diff --git a/tests/data_files/test-ca.opensslconf b/tests/data_files/test-ca.opensslconf index 3bb237903..b2c2fa1bc 100644 --- a/tests/data_files/test-ca.opensslconf +++ b/tests/data_files/test-ca.opensslconf @@ -18,7 +18,7 @@ subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:hw_module_name [nonprintable_othername_san] subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:nonprintable_hw_module_name -[unsupoported_othername_san] +[unsupported_othername_san] subjectAltName=otherName:1.2.3.4;UTF8:some other identifier [dns_alt_names] From a616afeae41225b7e79ae8f872f2fda8ab880ab8 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 25 Nov 2022 17:11:45 +0000 Subject: [PATCH 0973/1574] Remove redundant inline workarounds Signed-off-by: Dave Rodgman --- library/alignment.h | 5 +---- library/common.h | 5 ----- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index 986fdaa95..de1ab9148 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -26,10 +26,7 @@ #include #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif +#include "mbedtls/build_info.h" /** * Read the unsigned 32 bits integer from the given address, which need not diff --git a/library/common.h b/library/common.h index 97d180aef..9d3b8fe93 100644 --- a/library/common.h +++ b/library/common.h @@ -30,11 +30,6 @@ #include #include -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ - !defined(inline) && !defined(__cplusplus) -#define inline __inline -#endif - /** Helper to define a function as static except when building invasive tests. * * If a function is only used inside its own source file and should be From 81f4b11010097d578e81df49927a3743c4cfa210 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 14:40:38 +0000 Subject: [PATCH 0974/1574] bignum_mod: Added `mbedtls_mpi_mod_read/write()` IO functions This patch adds input and ouput fucntions in the `bignum_mod` layer. The data will be automatically converted between Cannonical and Montgomery representation if required. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 47 ++++++++++++++++++++++++++++++++++++++++++++ library/bignum_mod.h | 44 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 13108c51f..a4ed32b6a 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -209,7 +209,54 @@ exit: /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, + mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen ) +{ + int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + if ( r == NULL || m == NULL ) + goto cleanup; + + if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\ + r->limbs == 0 || m->limbs == 0 ) + goto cleanup; + + ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen ); + + if( ret != 0 ) + goto cleanup; + + if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) + ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m); + +cleanup: + return ( ret ); +} + +int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r, + mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen ) +{ + int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + + if ( r == NULL || m == NULL ) + goto cleanup; + + if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\ + r->limbs == 0 || m->limbs == 0 ) + goto cleanup; + + if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) + ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); + + ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen ); + +cleanup: + return ( ret ); +} /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 29c26f2ef..9378aabac 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -173,7 +173,51 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/** Read public representation data stored in a buffer into a residue structure. + * + * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must + * be compatible. The data will be automatically converted into the appropriate + * representation based on the value of `m->int_rep field`. + * + * \param r The address of the residue related to \p m. It must have as + * many limbs as the modulus \p m. + * \param m The address of the modulus. + * \param buf The input buffer to import from. + * \param buflen The length in bytes of \p buf. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * large enough to hold the value in \p buf. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation + * of \p m is invalid or \p X is not less than \p m. + */ +int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, + mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen ); +/** Write residue data onto a buffer using public representation data. + * + * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must + * be compatible. The data will be automatically converted into the appropriate + * representation based on the value of `m->int_rep field`. + * + * \param r The address of the residue related to \p m. It must have as + * many limbs as the modulus \p m. + * \param m The address of the modulus. + * \param buf The output buffer to export to. + * \param buflen The length in bytes of \p buf. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't + * large enough to hold the value of \p X. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation + * of \p m is invalid. + */ +int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r, + mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From 8f242706303b4b681fbe4e350ece31928b151098 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 10 Nov 2022 16:56:02 +0000 Subject: [PATCH 0975/1574] test_suite_bignum_mod: Added tests for hight level IO This patch adds the following tests for the high levet IO api: * mpi_mod_io_neg * mpi_mod_io Manually generated test data has also been included. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod.data | 231 +++++++++++++++++++- tests/suites/test_suite_bignum_mod.function | 142 ++++++++++++ 2 files changed, 366 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 95faa53b8..6b25c49ee 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -50,17 +50,234 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +Test mbedtls_mpi_mod_io_neg +mpi_mod_io_neg: -# END MERGE SLOT 7 +Test mbedtls_mpi_mod_io #1 N: "11" A: "119". +mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE -# BEGIN MERGE SLOT 8 +Test mbedtls_mpi_mod_io #2 N: "11" A: "136". +mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE -# END MERGE SLOT 8 +Test mbedtls_mpi_mod_io #3 N: "11" A: "119". +mpi_mod_io:"000000000000000b":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE -# BEGIN MERGE SLOT 9 +Test mbedtls_mpi_mod_io #4 N: "11" A: "136". +mpi_mod_io:"000000000000000b":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE -# END MERGE SLOT 9 +Test mbedtls_mpi_mod_io #5 N: "140737488355333" A: "119". +mpi_mod_io:"0000800000000005":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE -# BEGIN MERGE SLOT 10 +Test mbedtls_mpi_mod_io #6 N: "140737488355333" A: "136". +mpi_mod_io:"0000800000000005":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #7 N: "140737488355333" A: "119". +mpi_mod_io:"0000800000000005":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #8 N: "140737488355333" A: "136". +mpi_mod_io:"0000800000000005":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #9 N: "140737488355333" A: "119". +mpi_mod_io:"0000800000000005":"00000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #10 N: "140737488355333" A: "136". +mpi_mod_io:"0000800000000005":"ca03000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #11 N: "140737488355333" A: "119". +mpi_mod_io:"0000800000000005":"00000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #12 N: "140737488355333" A: "136". +mpi_mod_io:"0000800000000005":"28d49e5300000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #13 N: "9223372036854775807" A: "119". +mpi_mod_io:"7fffffffffffffff":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #14 N: "9223372036854775807" A: "136". +mpi_mod_io:"7fffffffffffffff":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #15 N: "9223372036854775807" A: "119". +mpi_mod_io:"7fffffffffffffff":"0000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #16 N: "9223372036854775807" A: "136". +mpi_mod_io:"7fffffffffffffff":"0100000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #17 N: "9223372036854775807" A: "119". +mpi_mod_io:"7fffffffffffffff":"00000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #18 N: "9223372036854775807" A: "136". +mpi_mod_io:"7fffffffffffffff":"ca03000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #19 N: "9223372036854775807" A: "119". +mpi_mod_io:"7fffffffffffffff":"00000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #20 N: "9223372036854775807" A: "136". +mpi_mod_io:"7fffffffffffffff":"28d49e5300000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #21 N: "9223372036854775807" A: "119". +mpi_mod_io:"7fffffffffffffff":"7dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #22 N: "9223372036854775807" A: "136". +mpi_mod_io:"7fffffffffffffff":"d6a235eb6b5cfe7d":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #23 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #24 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #25 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #26 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #27 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #28 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"ca030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #29 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #30 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"28d49e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #31 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #32 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"d6a235eb6b5cfe7d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #33 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #34 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"8eb4b9af7a6dfcadc2e18dca0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #35 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #36 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"33c96fafc1f96bc1d5f372bec4b6177d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #37 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #38 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"79f563548447f152ed423155f946c5ee7bc9fe020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #39 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "119". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"00000000000000000000000000000000000000000000000000000000000000000000000000000000378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #40 N: "6610145858169835373800827072568987987787972943497619105736762797475099959212160692262984293277166612477845864397201463825139894315919781838969391314120587" A: "136". +mpi_mod_io:"7e35b84cb19ea5bc57ec37f5e431462fa962d98c1e63738d4657f18ad6532e6adc3eafe67f1e5fa262af94cee8d3e7268593942a2a98df75154f8c914a282f8b":"4fdcca75f1d4e6dc789591f45a49ba2cb6a7c58b3bc88d3700000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #41 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #42 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #43 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #44 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"010000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #45 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #46 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"ca0300000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #47 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #48 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"28d49e530000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #49 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #50 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"d6a235eb6b5cfe7d00000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #51 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"00000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #52 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"8eb4b9af7a6dfcadc2e18dca0d0000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #53 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #54 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"33c96fafc1f96bc1d5f372bec4b6177d0a00000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #55 N: "201076468338594879614802819276237850336264827391977454179" A: "119". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"0000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #56 N: "201076468338594879614802819276237850336264827391977454179" A: "136". +mpi_mod_io:"08335616aed761f1f7f44e6bd49e807b82e3bf2bf11bfa63":"79f563548447f152ed423155f946c5ee7bc9fe0200000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #57 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #58 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #59 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #60 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #61 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ca":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #62 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"ca030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #63 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000539ed428":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #64 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"28d49e53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #65 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007dfe5c6beb35a2d6":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #66 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"d6a235eb6b5cfe7d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #67 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dca8de1c2adfc6d7aafb9b48e":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #68 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"8eb4b9af7a6dfcadc2e18dca0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #69 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a7d17b6c4be72f3d5c16bf9c1af6fc933":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #70 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"33c96fafc1f96bc1d5f372bec4b6177d0a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #71 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fec97beec546f9553142ed52f147845463f579":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #72 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"79f563548447f152ed423155f946c5ee7bc9fe020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #73 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000378dc83b8bc5a7b62cba495af4919578dce6d4f175cadc4f":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #74 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"4fdcca75f1d4e6dc789591f45a49ba2cb6a7c58b3bc88d3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":MBEDTLS_MPI_MOD_EXT_REP_LE + +Test mbedtls_mpi_mod_io #75 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "119". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"b6415f2a1a8e48a518345db11f56db3829c8f2c6415ab4a395ab3ac2ea4cbef4af86eb18a84eb6ded4c6ecbfc4b59c2879a675487f687adea9d197a84a5242a5cf6125ce19a6ad2e7341f1c57d43ea4f4c852a51cb63dabcd1c9de2b827a3146a3d175b35bea41ae75d2a286a3e9d43623152ac513dcdea1d72a7da846a8ab358d9be4926c79cfb287cf1cf25b689de3b912176be5dcaf4d4c6e7cb839a4a3243a6c47c1e2c99d65c59d6fa3672575c2f1ca8de6a32e854ec9d8ec635c96af7679fce26d7d159e4a9da3bd74e1272c376cd926d74fe3fb164a5935cff3d5cdb92b35fe2cea32138a7e6bfbc319ebd1725dacb9a359cbf693f2ecb785efb9d627":MBEDTLS_MPI_MOD_EXT_REP_BE + +Test mbedtls_mpi_mod_io #76 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". +mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"27d6b9ef85b7ecf293f6cb59a3b9ac5d72d1eb19c3fb6b7e8a1332ea2cfe352bb9cdd5f3cf35594a16fbe34fd726d96c372c27e174bda39d4a9e157d6de2fc7976af965c63ecd8c94e852ea3e68dcaf1c2752567a36f9dc5659dc9e2c1476c3a24a3a439b87c6e4c4dafdce56b1712b9e39d685bf21ccf87b2cf796c92e49b8d35aba846a87d2ad7a1dedc13c52a152336d4e9a386a2d275ae41ea5bb375d1a346317a822bdec9d1bcda63cb512a854c4fea437dc5f141732eada619ce2561cfa542524aa897d1a9de7a687f4875a679289cb5c4bfecc6d4deb64ea818eb86aff4be4ceac23aab95a3b45a41c6f2c82938db561fb15d3418a5488e1a2a5f41b6":MBEDTLS_MPI_MOD_EXT_REP_LE -# END MERGE SLOT 10 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 1a2d0c135..00e830670 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -80,7 +80,149 @@ exit: /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ +/* BEGIN_CASE */ +void mpi_mod_io_neg( ) +{ + #define IO_ZERO 0 + #define IO_ONE 1 + #define IO_MIN1 2 + #define IO_MAX 3 + #define IO_2LIMBS_MIN1 4 + #define IO_2LIMBS 5 + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *R = NULL; + mbedtls_mpi_uint *N2 = NULL; + mbedtls_mpi_uint *R2 = NULL; + unsigned char *r_buff = NULL; + + size_t n_limbs, r_limbs, n2_limbs, r2_limbs; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_residue r; + mbedtls_mpi_mod_modulus m2; + mbedtls_mpi_mod_residue rn = { NULL, 0 }; + + const char * s_data[ 6 ] = { "00", "01", "fe", "ff", + "7ffffffffffffffff0" ,"7ffffffffffffffff1" }; + const size_t buff_bytes = 1024; + + /* Allocate the memory for intermediate data structures */ + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, s_data[ IO_MIN1 ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, s_data[ IO_ONE ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N2, &n2_limbs, s_data[ IO_2LIMBS ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R2, &r2_limbs, s_data[ IO_2LIMBS_MIN1 ] ) ); + + mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init( &m2 ); + + /* Allocate more than required space on buffer so we can test for input_r > mpi */ + ASSERT_ALLOC( r_buff, buff_bytes ); + memset( r_buff, 0x1, 1 ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); + + /* Pass for input_r < modulo */ + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + + /* input_r == modulo -1 */ + memset( r_buff, 0xfd, buff_bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + + /* modulo->p == NULL || residue->p == NULL ( m2 has not been set-up ) */ + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m2, r_buff, 1 ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &rn, &m, r_buff, 1 ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &r, &m2, r_buff, 1 ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &rn, &m, r_buff, 1 ) ); + + /* Fail for r_limbs < m->limbs */ + r.limbs = m.limbs - 1; + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &rn, &m, r_buff, 1 ) ); + r.limbs = r_limbs; + + /* Fail if input_r >= modulo m */ + /* input_r = modulo */ + memset( r_buff, 0xfe, buff_bytes ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + + /* input_r > modulo */ + memset( r_buff, 0xff, buff_bytes ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + + /* Data too large to fit */ + TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes ) ); + + /* Read the two limbs input data into a larger modulus and residue */ + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m2, N2, n2_limbs, + MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + rn.p = R2; + rn.limbs = r2_limbs; + TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_write( &rn, &m2, r_buff, 1 ) ); + +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free( &m2 ); + mbedtls_free( N ); + mbedtls_free( R ); + mbedtls_free( N2 ); + mbedtls_free( R2 ); + mbedtls_free( r_buff ); + + #undef IO_ZERO + #undef IO_ONE + #undef IO_MIN1 + #undef IO_MAX + #undef IO_2LIMBS_MIN1 + #undef IO_2LIMBS +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_io( char * input_N, data_t * input_A, int iendian ) +{ + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *R = NULL; + unsigned char *r_buff = NULL; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_residue r; + size_t n_limbs, n_bytes, a_bytes; + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + n_bytes = n_limbs * sizeof( mbedtls_mpi_uint ); + a_bytes = input_A->len * sizeof( char ); + + /* Allocate the memory for intermediate data structures */ + ASSERT_ALLOC( R, n_bytes ); + ASSERT_ALLOC( r_buff, a_bytes ); + + /* Test that input's size is not greater to modulo's */ + TEST_LE_U(a_bytes, n_bytes ); + + /* Init Structures */ + mbedtls_mpi_mod_modulus_init( &m ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, iendian, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + /* Enforcing p_limbs >= m->limbs */ + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, input_A->x, input_A->len ) ); + + TEST_EQUAL( 0,mbedtls_mpi_mod_write( &r, &m, r_buff, a_bytes ) ); + + ASSERT_COMPARE( r_buff, a_bytes, input_A->x, a_bytes ); +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( N ); + mbedtls_free( R ); + mbedtls_free( r_buff ); +} +/* END_CASE */ /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From a17ad48e2d139d171dfe3bb59703b41eb869b18b Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 16 Nov 2022 16:29:15 +0000 Subject: [PATCH 0976/1574] bignum_mod: Fixed an issue with input checking in `mpi_mod_residue_setup` This patch is inverting the input type checking logic in the method, in order to ensure that residue < modulus. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 2 +- tests/suites/test_suite_bignum_mod.data | 4 +- tests/suites/test_suite_bignum_mod.function | 47 +++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index a4ed32b6a..6c13b4b22 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -39,7 +39,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, mbedtls_mpi_uint *p, size_t p_limbs ) { - if( p_limbs < m->limbs || !mbedtls_mpi_core_lt_ct( m->p, p, p_limbs ) ) + if( p_limbs > m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); r->limbs = m->limbs; diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 6b25c49ee..5edb283ae 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -50,6 +50,9 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 +Test mbedtls_mpi_residue_setup +mpi_residue_setup: + Test mbedtls_mpi_mod_io_neg mpi_mod_io_neg: @@ -280,4 +283,3 @@ mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a Test mbedtls_mpi_mod_io #76 N: "32292747613635961694771916499883650667878589411552643628627186850993060141490368296439843252993342320145797691611646027435006878234727648863911408777308953382400333083852585109256846643097239747078406546553406955958288616728627292699264194880486908744773379992784153004816057528456043920098334713005039494478693892693017304730883448003944721685094014669042959451482141781404822386404101555113742346277194830729517252154824958327000717338180410404929239489607893939166712107274943411892079802406181464789204374234653633818543559183821503846194953493439237710780169796543565449952151334229364816621060143650318299210551" A: "136". mpi_mod_io:"ffcece570f2f991013f26dd5b03c4c5b65f97be5905f36cb4664f2c78ff80aa8135a4aaf57ccb8a0aca2f394909a74cef1ef6758a64d11e2c149c393659d124bfc94196f0ce88f7d7d567efa5a649e2deefaa6e10fdc3deac60d606bf63fc540ac95294347031aefd73d6a9ee10188aaeb7a90d920894553cb196881691cadc51808715a07e8b24fcb1a63df047c7cdf084dd177ba368c806f3d51ddb5d3898c863e687ecaf7d649a57a46264a582f94d3c8f2edaf59f77a7f6bdaf83c991e8f06abe220ec8507386fce8c3da84c6c3903ab8f3ad4630a204196a7dbcbd9bcca4e40ec5cc5c09938d49f5e1e6181db8896f33bb12e6ef73f12ec5c5ea7a8a337":"27d6b9ef85b7ecf293f6cb59a3b9ac5d72d1eb19c3fb6b7e8a1332ea2cfe352bb9cdd5f3cf35594a16fbe34fd726d96c372c27e174bda39d4a9e157d6de2fc7976af965c63ecd8c94e852ea3e68dcaf1c2752567a36f9dc5659dc9e2c1476c3a24a3a439b87c6e4c4dafdce56b1712b9e39d685bf21ccf87b2cf796c92e49b8d35aba846a87d2ad7a1dedc13c52a152336d4e9a386a2d275ae41ea5bb375d1a346317a822bdec9d1bcda63cb512a854c4fea437dc5f141732eada619ce2561cfa542524aa897d1a9de7a687f4875a679289cb5c4bfecc6d4deb64ea818eb86aff4be4ceac23aab95a3b45a41c6f2c82938db561fb15d3418a5488e1a2a5f41b6":MBEDTLS_MPI_MOD_EXT_REP_LE - diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 00e830670..5a2d000ca 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -81,6 +81,53 @@ exit: /* BEGIN MERGE SLOT 7 */ /* BEGIN_CASE */ +void mpi_residue_setup( ) +{ + #define RS_ONE 0 + #define RS_MAX_MIN1 1 + #define RS_MAX 2 + const char * s_data[ 3 ] = { "01", "fe", "ff" }; + + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *R = NULL; + mbedtls_mpi_uint *R_MAX = NULL; + size_t n_limbs, r_limbs, r_max_limbs; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_residue r; + + /* Allocate the memory for intermediate data structures */ + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, s_data[ RS_MAX_MIN1 ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, s_data[ RS_ONE ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R_MAX, &r_max_limbs, s_data[ RS_MAX ] ) ); + + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); + + /* Test for r-> limbs > m-> limbs */ + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs + 1 ) ); + + /* Test for r-> p > m-> p */ + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R_MAX , r_max_limbs ) ); + + /* Test for r-> p == m-> p */ + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, N , r_max_limbs ) ); + +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( N ); + mbedtls_free( R ); + mbedtls_free( R_MAX ); + + #undef RS_ONE + #undef RS_MAX_MIN1 + #undef RS_MAX +} +/* END_CASE */ +/* BEGIN_CASE */ void mpi_mod_io_neg( ) { #define IO_ZERO 0 From aed832ac16a488c5e9dacfba5fa048420a2ffa6e Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 24 Nov 2022 09:09:47 +0000 Subject: [PATCH 0977/1574] bignum_mod: Adjusted input checking for `mbedtls_mpi_mod_residue_setup()` This patch adjusts the logic of the size checking of the method, and refactors the tests. Documentation has also been updated. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 2 +- library/bignum_mod.h | 13 ++++---- tests/suites/test_suite_bignum_mod.data | 25 ++++++++++++-- tests/suites/test_suite_bignum_mod.function | 36 +++++---------------- 4 files changed, 39 insertions(+), 37 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 6c13b4b22..770e63358 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -39,7 +39,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, mbedtls_mpi_uint *p, size_t p_limbs ) { - if( p_limbs > m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) + if( p_limbs > m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, p_limbs ) ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); r->limbs = m->limbs; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 9378aabac..4a01dfc69 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -75,16 +75,17 @@ typedef struct { /** Setup a residue structure. * - * \param[out] r The address of residue to setup. The size is determined by - * \p m. - * (In particular, it must have at least as many limbs as the - * modulus \p m.) + * \param[out] r The address of residue to setup. The resulting structure's + * size is determined by \p m. * \param[in] m The address of the modulus related to \p r. * \param[in] p The address of the limb array storing the value of \p r. * The memory pointed to by \p p will be used by \p r and must * not be modified in any way until after - * mbedtls_mpi_mod_residue_release() is called. - * \param p_limbs The number of limbs of \p p. + * mbedtls_mpi_mod_residue_release() is called. The data + * pointed by p should be compatible (in terms of size/endianness) + * with the representation used in \p m. + * \param p_limbs The number of limbs of \p p. It must have at most as + * many limbs as the modulus \p m.) * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 5edb283ae..e0aa5407f 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -50,8 +50,29 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 -Test mbedtls_mpi_residue_setup -mpi_residue_setup: +Test mbedtls_mpi_residue_setup #1 m > r +mpi_residue_setup:"fe":"01":0 + +Test mbedtls_mpi_residue_setup #2 r == m - 1 +mpi_residue_setup:"ff":"fe":0 + +Test mbedtls_mpi_residue_setup #3 m->limbs > r-> limbs && m > r +mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":0 + +Test mbedtls_mpi_residue_setup #4 m->limbs > r-> limbs && m > r +mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"fe":0 + +Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r +mpi_residue_setup:"7ffffffffffffffffffff000000000000000000000000000":"fe":-4 + +Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r +mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":-4 + +Test mbedtls_mpi_residue_setup #7 r == m +mpi_residue_setup:"fe":"fe":-4 + +Test mbedtls_mpi_residue_setup #8 r > m +mpi_residue_setup:"fe":"ff":-4 Test mbedtls_mpi_mod_io_neg mpi_mod_io_neg: diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 5a2d000ca..e4d7b41bc 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -81,52 +81,32 @@ exit: /* BEGIN MERGE SLOT 7 */ /* BEGIN_CASE */ -void mpi_residue_setup( ) +void mpi_residue_setup( char * input_X, char * input_Y, int ret ) { - #define RS_ONE 0 - #define RS_MAX_MIN1 1 - #define RS_MAX 2 - const char * s_data[ 3 ] = { "01", "fe", "ff" }; - mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; - mbedtls_mpi_uint *R_MAX = NULL; - size_t n_limbs, r_limbs, r_max_limbs; + size_t n_limbs, r_limbs; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; - /* Allocate the memory for intermediate data structures */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, s_data[ RS_MAX_MIN1 ] ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, s_data[ RS_ONE ] ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R_MAX, &r_max_limbs, s_data[ RS_MAX ] ) ); - mbedtls_mpi_mod_modulus_init( &m ); + /* Allocate the memory for intermediate data structures */ + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_X ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_Y ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); - - /* Test for r-> limbs > m-> limbs */ - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs + 1 ) ); - - /* Test for r-> p > m-> p */ - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, R_MAX , r_max_limbs ) ); - - /* Test for r-> p == m-> p */ - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_residue_setup( &r, &m, N , r_max_limbs ) ); + TEST_EQUAL( ret, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); mbedtls_free( R ); - mbedtls_free( R_MAX ); - - #undef RS_ONE - #undef RS_MAX_MIN1 - #undef RS_MAX } /* END_CASE */ + /* BEGIN_CASE */ void mpi_mod_io_neg( ) { From 8b375451c55600f32319771b3e36a3dce47b7881 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 24 Nov 2022 11:04:11 +0000 Subject: [PATCH 0978/1574] bignum_mod: Refactored `mbedtls_mpi_mod_read/write()` This patch adjusts the I/O methods and the tests. Documentation has also been updated to be more clear. Signed-off-by: Minos Galanakis --- library/bignum_mod.c | 14 ++++++---- library/bignum_mod.h | 19 +++++++------ tests/suites/test_suite_bignum_mod.function | 31 +++++++-------------- 3 files changed, 29 insertions(+), 35 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 770e63358..c10fb2ed3 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -210,8 +210,8 @@ exit: /* BEGIN MERGE SLOT 7 */ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - mbedtls_mpi_mod_modulus *m, - unsigned char *buf, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *buf, size_t buflen ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -219,7 +219,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, if ( r == NULL || m == NULL ) goto cleanup; - if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\ + if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs || r->limbs == 0 || m->limbs == 0 ) goto cleanup; @@ -228,6 +228,8 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, if( ret != 0 ) goto cleanup; + r->limbs = m->limbs; + if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m); @@ -235,8 +237,8 @@ cleanup: return ( ret ); } -int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r, - mbedtls_mpi_mod_modulus *m, +int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, unsigned char *buf, size_t buflen ) { @@ -245,7 +247,7 @@ int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r, if ( r == NULL || m == NULL ) goto cleanup; - if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs ||\ + if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs || r->limbs == 0 || m->limbs == 0 ) goto cleanup; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 4a01dfc69..f0ce3c444 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -177,8 +177,9 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /** Read public representation data stored in a buffer into a residue structure. * * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must - * be compatible. The data will be automatically converted into the appropriate - * representation based on the value of `m->int_rep field`. + * be compatible (Data in public representation is assumed to be in the m->ext_rep + * and will be padded to m->limbs). The data will be automatically converted + * into the appropriate internal representation based on the value of `m->int_rep`. * * \param r The address of the residue related to \p m. It must have as * many limbs as the modulus \p m. @@ -193,15 +194,17 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); * of \p m is invalid or \p X is not less than \p m. */ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - mbedtls_mpi_mod_modulus *m, - unsigned char *buf, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *buf, size_t buflen ); /** Write residue data onto a buffer using public representation data. * * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must - * be compatible. The data will be automatically converted into the appropriate - * representation based on the value of `m->int_rep field`. + * be compatible (Data will be exported onto the bufer using the m->ext_rep + * and will be read as of m->limbs length).The data will be automatically + * converted from the appropriate internal representation based on the + * value of `m->int_rep field`. * * \param r The address of the residue related to \p m. It must have as * many limbs as the modulus \p m. @@ -215,8 +218,8 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation * of \p m is invalid. */ -int mbedtls_mpi_mod_write( mbedtls_mpi_mod_residue *r, - mbedtls_mpi_mod_modulus *m, +int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, unsigned char *buf, size_t buflen ); /* END MERGE SLOT 7 */ diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index e4d7b41bc..715a83998 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -110,13 +110,6 @@ exit: /* BEGIN_CASE */ void mpi_mod_io_neg( ) { - #define IO_ZERO 0 - #define IO_ONE 1 - #define IO_MIN1 2 - #define IO_MAX 3 - #define IO_2LIMBS_MIN1 4 - #define IO_2LIMBS 5 - mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; mbedtls_mpi_uint *N2 = NULL; @@ -130,15 +123,18 @@ void mpi_mod_io_neg( ) mbedtls_mpi_mod_modulus m2; mbedtls_mpi_mod_residue rn = { NULL, 0 }; - const char * s_data[ 6 ] = { "00", "01", "fe", "ff", - "7ffffffffffffffff0" ,"7ffffffffffffffff1" }; + const char *hex_residue_single = "01"; + const char *hex_modulus_single = "fe"; + const char *hex_residue_multi = "7ffffffffffffffffffffffffffffff0"; + const char *hex_modulus_multi = "7ffffffffffffffffffffffffffffff1"; + const size_t buff_bytes = 1024; /* Allocate the memory for intermediate data structures */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, s_data[ IO_MIN1 ] ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, s_data[ IO_ONE ] ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N2, &n2_limbs, s_data[ IO_2LIMBS ] ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R2, &r2_limbs, s_data[ IO_2LIMBS_MIN1 ] ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, hex_modulus_single ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, hex_residue_single ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N2, &n2_limbs, hex_modulus_multi ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R2, &r2_limbs, hex_residue_multi ) ); mbedtls_mpi_mod_modulus_init( &m ); mbedtls_mpi_mod_modulus_init( &m2 ); @@ -155,7 +151,7 @@ void mpi_mod_io_neg( ) /* Pass for input_r < modulo */ TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); - /* input_r == modulo -1 */ + /* Pass for input_r == modulo -1 */ memset( r_buff, 0xfd, buff_bytes ); TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); @@ -198,13 +194,6 @@ exit: mbedtls_free( N2 ); mbedtls_free( R2 ); mbedtls_free( r_buff ); - - #undef IO_ZERO - #undef IO_ONE - #undef IO_MIN1 - #undef IO_MAX - #undef IO_2LIMBS_MIN1 - #undef IO_2LIMBS } /* END_CASE */ From b62bad442e6afc863829d130f3cb5e5b5bacdf61 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 16:48:41 +0000 Subject: [PATCH 0979/1574] Bidnum Mod: fix check in setup We want to make sure that the value has at least as many limbs allocated as the modulus as we need this to be able to do any operations in constant time. An invariant of the API is that the residue values are canonical, make sure that the residue is compared to the entire modulus. Signed-off-by: Janos Follath --- library/bignum_mod.c | 2 +- tests/suites/test_suite_bignum_mod.data | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index c10fb2ed3..1b3aff6a3 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -39,7 +39,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, mbedtls_mpi_uint *p, size_t p_limbs ) { - if( p_limbs > m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, p_limbs ) ) + if( p_limbs < m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); r->limbs = m->limbs; diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index e0aa5407f..02bc9f793 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -57,16 +57,16 @@ Test mbedtls_mpi_residue_setup #2 r == m - 1 mpi_residue_setup:"ff":"fe":0 Test mbedtls_mpi_residue_setup #3 m->limbs > r-> limbs && m > r -mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":0 +mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -Test mbedtls_mpi_residue_setup #4 m->limbs > r-> limbs && m > r -mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"fe":0 +Test mbedtls_mpi_residue_setup #4 m->limbs = r-> limbs && m > r +mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"0000000000000000000000000000000000000000000000fe":0 -Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r -mpi_residue_setup:"7ffffffffffffffffffff000000000000000000000000000":"fe":-4 +Test mbedtls_mpi_residue_setup #5 m->limbs < r-> limbs && m > r +mpi_residue_setup:"7ffffffff0000000":"000000000000000fe":0 Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r -mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":-4 +mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":0 Test mbedtls_mpi_residue_setup #7 r == m mpi_residue_setup:"fe":"fe":-4 From 50cd4b842b02c1a6d3052121f64e7b6b7dce6fd4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 17:08:13 +0000 Subject: [PATCH 0980/1574] Bignum Mod: Restrict residue setup In theory we could allow residues to have more allocated limbs than the modulus, but we might or might not need it in the end. Go for the simpler option for now and we can extend it later if we really need it. Signed-off-by: Janos Follath --- library/bignum_mod.c | 2 +- tests/suites/test_suite_bignum_mod.data | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 1b3aff6a3..4303efefa 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -39,7 +39,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, mbedtls_mpi_uint *p, size_t p_limbs ) { - if( p_limbs < m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) + if( p_limbs != m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); r->limbs = m->limbs; diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 02bc9f793..ba7d5779f 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -56,17 +56,17 @@ mpi_residue_setup:"fe":"01":0 Test mbedtls_mpi_residue_setup #2 r == m - 1 mpi_residue_setup:"ff":"fe":0 -Test mbedtls_mpi_residue_setup #3 m->limbs > r-> limbs && m > r -mpi_residue_setup:"000000000000000000000000000000007dfe5c6beb35a2d6":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Test mbedtls_mpi_residue_setup #3 m->limbs = r-> limbs && m > r +mpi_residue_setup:"7dfe5c6":"fe":0 Test mbedtls_mpi_residue_setup #4 m->limbs = r-> limbs && m > r mpi_residue_setup:"7ffffffffffffffffffffffffffffffffffffffffffffff1":"0000000000000000000000000000000000000000000000fe":0 -Test mbedtls_mpi_residue_setup #5 m->limbs < r-> limbs && m > r -mpi_residue_setup:"7ffffffff0000000":"000000000000000fe":0 +Test mbedtls_mpi_residue_setup #5 m->limbs > r-> limbs && m > r +mpi_residue_setup:"7ffffffff00000000":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_residue_setup #6 m->limbs < r-> limbs && m > r -mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":0 +mpi_residue_setup:"ff":"000000000000000000000000000000000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_residue_setup #7 r == m mpi_residue_setup:"fe":"fe":-4 From d3eed3370902b84213118f533f512464da01d691 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 17:42:02 +0000 Subject: [PATCH 0981/1574] Bignum Mod Raw: pass endianness as a parameter The external representation before included more than just endianness (like reading in Mongtomery curve scalars or converting hashes to numbers in a standard compliant way). These are higher level concepts and are out of scope for Bignum and for the modulus structure. Passing endianness as a parameter is a step towards removing it from the modulus structure. Signed-off-by: Janos Follath --- library/bignum_mod_raw.c | 10 ++++++---- library/bignum_mod_raw.h | 8 ++++++-- tests/suites/test_suite_bignum_mod_raw.function | 8 ++++---- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 2f49ea2d9..22e56b7e6 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -52,11 +52,12 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, const unsigned char *input, - size_t input_length ) + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch( m->ext_rep ) + switch( ext_rep ) { case MBEDTLS_MPI_MOD_EXT_REP_LE: ret = mbedtls_mpi_core_read_le( X, m->limbs, @@ -87,9 +88,10 @@ cleanup: int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char *output, - size_t output_length ) + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep ) { - switch( m->ext_rep ) + switch( ext_rep ) { case MBEDTLS_MPI_MOD_EXT_REP_LE: return( mbedtls_mpi_core_write_le( A, m->limbs, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f6c6ebd8f..d7b6dd115 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -106,6 +106,7 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, * \param[in] m The address of the modulus related to \p X. * \param[in] input The input buffer to import from. * \param input_length The length in bytes of \p input. + * \param ext_rep The endianness of the number in the input buffer. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't @@ -116,7 +117,8 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m, const unsigned char *input, - size_t input_length ); + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep ); /** Export A into unsigned binary data. * @@ -126,6 +128,7 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, * \param[in] m The address of the modulus related to \p A. * \param[out] output The output buffer to export to. * \param output_length The length in bytes of \p output. + * \param ext_rep The endianness in which the number should be written into the output buffer. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p output isn't @@ -136,7 +139,8 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *m, unsigned char *output, - size_t output_length ); + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep ); /* BEGIN MERGE SLOT 1 */ diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 00ed005f5..031897889 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -54,17 +54,17 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, TEST_EQUAL( ret, 0 ); if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len ); + ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len, endian ); TEST_EQUAL( ret, iret ); if( iret == 0 ) { if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) - m.ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb ); + ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb, endian ); TEST_EQUAL( ret, oret ); } From 3e3fc91c33d985f806ea336accec1fe3e1ec1b44 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 18:02:46 +0000 Subject: [PATCH 0982/1574] Bignum Mod: pass endianness as a parameter The external representation before included more than just endianness (like reading in Mongtomery curve scalars or converting hashes to numbers in a standard compliant way). These are higher level concepts and are out of scope for Bignum and for the modulus structure. Passing endianness as a parameter is a step towards removing it from the modulus structure. Signed-off-by: Janos Follath --- library/bignum_mod.c | 10 ++-- library/bignum_mod.h | 28 ++++++----- tests/suites/test_suite_bignum_mod.function | 51 +++++++++++++-------- 3 files changed, 54 insertions(+), 35 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 4303efefa..fa4831c7a 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -212,7 +212,8 @@ exit: int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, const unsigned char *buf, - size_t buflen ) + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -223,7 +224,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, r->limbs == 0 || m->limbs == 0 ) goto cleanup; - ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen ); + ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen, ext_rep ); if( ret != 0 ) goto cleanup; @@ -240,7 +241,8 @@ cleanup: int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, unsigned char *buf, - size_t buflen ) + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -254,7 +256,7 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); - ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen ); + ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen, ext_rep ); cleanup: return ( ret ); diff --git a/library/bignum_mod.h b/library/bignum_mod.h index f0ce3c444..e6da15fbc 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -181,11 +181,12 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); * and will be padded to m->limbs). The data will be automatically converted * into the appropriate internal representation based on the value of `m->int_rep`. * - * \param r The address of the residue related to \p m. It must have as - * many limbs as the modulus \p m. - * \param m The address of the modulus. - * \param buf The input buffer to import from. - * \param buflen The length in bytes of \p buf. + * \param r The address of the residue related to \p m. It must have as + * many limbs as the modulus \p m. + * \param m The address of the modulus. + * \param buf The input buffer to import from. + * \param buflen The length in bytes of \p buf. + * \param ext_rep The endianness of the number in the input buffer. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't @@ -196,7 +197,8 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, const unsigned char *buf, - size_t buflen ); + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ); /** Write residue data onto a buffer using public representation data. * @@ -206,11 +208,12 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * converted from the appropriate internal representation based on the * value of `m->int_rep field`. * - * \param r The address of the residue related to \p m. It must have as - * many limbs as the modulus \p m. - * \param m The address of the modulus. - * \param buf The output buffer to export to. - * \param buflen The length in bytes of \p buf. + * \param r The address of the residue related to \p m. It must have as + * many limbs as the modulus \p m. + * \param m The address of the modulus. + * \param buf The output buffer to export to. + * \param buflen The length in bytes of \p buf. + * \param ext_rep The endianness in which the number should be written into the output buffer. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't @@ -221,7 +224,8 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, unsigned char *buf, - size_t buflen ); + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 715a83998..5a75ebc3a 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -143,48 +143,59 @@ void mpi_mod_io_neg( ) ASSERT_ALLOC( r_buff, buff_bytes ); memset( r_buff, 0x1, 1 ); + mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + endian, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); /* Pass for input_r < modulo */ - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); /* Pass for input_r == modulo -1 */ memset( r_buff, 0xfd, buff_bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); /* modulo->p == NULL || residue->p == NULL ( m2 has not been set-up ) */ - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m2, r_buff, 1 ) ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &rn, &m, r_buff, 1 ) ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &r, &m2, r_buff, 1 ) ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &rn, &m, r_buff, 1 ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m2, r_buff, 1, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &rn, &m, r_buff, 1, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &r, &m2, r_buff, 1, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &rn, &m, r_buff, 1, endian ) ); /* Fail for r_limbs < m->limbs */ r.limbs = m.limbs - 1; - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &rn, &m, r_buff, 1 ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &rn, &m, r_buff, 1, endian ) ); r.limbs = r_limbs; /* Fail if input_r >= modulo m */ /* input_r = modulo */ memset( r_buff, 0xfe, buff_bytes ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); /* input_r > modulo */ memset( r_buff, 0xff, buff_bytes ); - TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, r_buff, 1 ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); /* Data too large to fit */ - TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, + mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); /* Read the two limbs input data into a larger modulus and residue */ TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m2, N2, n2_limbs, - MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + endian, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); rn.p = R2; rn.limbs = r2_limbs; - TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_write( &rn, &m2, r_buff, 1 ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, + mbedtls_mpi_mod_write( &rn, &m2, r_buff, 1, endian ) ); exit: mbedtls_mpi_mod_modulus_free( &m ); @@ -198,7 +209,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io( char * input_N, data_t * input_A, int iendian ) +void mpi_mod_io( char * input_N, data_t * input_A, int endian ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; @@ -221,15 +232,17 @@ void mpi_mod_io( char * input_N, data_t * input_A, int iendian ) /* Init Structures */ mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, iendian, + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, endian, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); /* Enforcing p_limbs >= m->limbs */ - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R, n_limbs ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, input_A->x, input_A->len ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, input_A->x, input_A->len, + endian ) ); - TEST_EQUAL( 0,mbedtls_mpi_mod_write( &r, &m, r_buff, a_bytes ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_write( &r, &m, r_buff, a_bytes, + endian ) ); ASSERT_COMPARE( r_buff, a_bytes, input_A->x, a_bytes ); exit: From 91295d2b8f3a6163b6cf29897548a1779f00b9fb Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 18:20:26 +0000 Subject: [PATCH 0983/1574] Bignum Mod: remove endianness from modulus The external representation before included more than just endianness (like reading in Mongtomery curve scalars or converting hashes to numbers in a standard compliant way). These are higher level concepts and are out of scope for Bignum and for the modulus structure. Signed-off-by: Janos Follath --- library/bignum_mod.c | 14 --------- library/bignum_mod.h | 4 --- tests/suites/test_suite_bignum_mod.data | 30 ++++--------------- tests/suites/test_suite_bignum_mod.function | 12 ++++---- .../suites/test_suite_bignum_mod_raw.function | 8 ++--- 5 files changed, 15 insertions(+), 53 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index fa4831c7a..3cb3c436d 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -65,7 +65,6 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ) m->p = NULL; m->limbs = 0; m->bits = 0; - m->ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } @@ -96,7 +95,6 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->p = NULL; m->limbs = 0; m->bits = 0; - m->ext_rep = MBEDTLS_MPI_MOD_EXT_REP_INVALID; m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } @@ -138,7 +136,6 @@ cleanup: int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, const mbedtls_mpi_uint *p, size_t p_limbs, - mbedtls_mpi_mod_ext_rep ext_rep, mbedtls_mpi_mod_rep_selector int_rep ) { int ret = 0; @@ -147,17 +144,6 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, m->limbs = p_limbs; m->bits = mbedtls_mpi_core_bitlen( p, p_limbs ); - switch( ext_rep ) - { - case MBEDTLS_MPI_MOD_EXT_REP_LE: - case MBEDTLS_MPI_MOD_EXT_REP_BE: - m->ext_rep = ext_rep; - break; - default: - ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - goto exit; - } - switch( int_rep ) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: diff --git a/library/bignum_mod.h b/library/bignum_mod.h index e6da15fbc..5f948a499 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -64,7 +64,6 @@ typedef struct { const mbedtls_mpi_uint *p; size_t limbs; // number of limbs size_t bits; // bitlen of p - mbedtls_mpi_mod_ext_rep ext_rep; // signals external representation (eg. byte order) mbedtls_mpi_mod_rep_selector int_rep; // selector to signal the active member of the union union rep { @@ -122,8 +121,6 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ); * not be modified in any way until after * mbedtls_mpi_mod_modulus_free() is called. * \param p_limbs The number of limbs of \p p. - * \param ext_rep The external representation to be used for residues - * associated with \p m (see #mbedtls_mpi_mod_ext_rep). * \param int_rep The internal representation to be used for residues * associated with \p m (see #mbedtls_mpi_mod_rep_selector). * @@ -134,7 +131,6 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ); int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, const mbedtls_mpi_uint *p, size_t p_limbs, - mbedtls_mpi_mod_ext_rep ext_rep, mbedtls_mpi_mod_rep_selector int_rep ); /** Free elements of a modulus structure. diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index ba7d5779f..ef9416e16 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -1,29 +1,11 @@ -Test mbedtls_mpi_mod_setup #1 (Both representations invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Test mbedtls_mpi_mod_setup #1 (Internal representation invalid) +mpi_mod_setup:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA -Test mbedtls_mpi_mod_setup #2 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Test mbedtls_mpi_mod_setup #6 (Optimised reduction) +mpi_mod_setup:MBEDTLS_MPI_MOD_REP_OPT_RED:0 -Test mbedtls_mpi_mod_setup #3 (Internal representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_INVALID:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #4 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_MONTGOMERY:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #5 (External representation invalid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_INVALID:MBEDTLS_MPI_MOD_REP_OPT_RED:MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -Test mbedtls_mpi_mod_setup #6 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #7 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_BE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 - -Test mbedtls_mpi_mod_setup #8 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_OPT_RED:0 - -Test mbedtls_mpi_mod_setup #9 (Both representations valid) -mpi_mod_setup:MBEDTLS_MPI_MOD_EXT_REP_LE:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 +Test mbedtls_mpi_mod_setup #7 (Montgomery representation) +mpi_mod_setup:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # BEGIN MERGE SLOT 1 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 5a75ebc3a..bb87ba9d9 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -12,7 +12,7 @@ */ /* BEGIN_CASE */ -void mpi_mod_setup( int ext_rep, int int_rep, int iret ) +void mpi_mod_setup( int int_rep, int iret ) { #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; @@ -22,7 +22,7 @@ void mpi_mod_setup( int ext_rep, int int_rep, int iret ) memset( mp, 0xFF, sizeof(mp) ); mbedtls_mpi_mod_modulus_init( &m ); - ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, ext_rep, int_rep ); + ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, int_rep ); TEST_EQUAL( ret, iret ); /* Only test if the constants have been set-up */ @@ -96,7 +96,7 @@ void mpi_residue_setup( char * input_X, char * input_Y, int ret ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_Y ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_EXT_REP_LE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); TEST_EQUAL( ret, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); @@ -145,7 +145,7 @@ void mpi_mod_io_neg( ) mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - endian, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); @@ -191,7 +191,7 @@ void mpi_mod_io_neg( ) /* Read the two limbs input data into a larger modulus and residue */ TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m2, N2, n2_limbs, - endian, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); rn.p = R2; rn.limbs = r2_limbs; TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, @@ -232,7 +232,7 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) /* Init Structures */ mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, endian, + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); /* Enforcing p_limbs >= m->limbs */ diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 031897889..eb1980c29 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -49,7 +49,7 @@ void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; memset( init, 0xFF, sizeof( init ) ); - int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, endian, + int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, MBEDTLS_MPI_MOD_REP_MONTGOMERY ); TEST_EQUAL( ret, 0 ); @@ -138,7 +138,6 @@ void mpi_mod_raw_cond_assign( char * input_X, memset( buff_m, 0xFF, copy_limbs ); TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); /* condition is false */ @@ -211,7 +210,6 @@ void mpi_mod_raw_cond_swap( char * input_X, memset( buff_m, 0xFF, copy_limbs ); TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); ASSERT_ALLOC( X, limbs ); @@ -480,7 +478,7 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) TEST_LE_U(a_limbs, n_limbs); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); /* Convert from cannonical into Montgomery representation */ TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A, &m ) ); @@ -516,7 +514,7 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) TEST_LE_U(a_limbs, n_limbs); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); /* Convert from Montgomery into cannonical representation */ TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A, &m ) ); From 41427dee80c1d2d1ea9feada36904b84549d7242 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Thu, 24 Nov 2022 19:04:54 +0000 Subject: [PATCH 0984/1574] Bignum Mod: improve documentation Signed-off-by: Janos Follath --- library/bignum_mod.h | 72 +++++++++++++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 25 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 5f948a499..52a5a5674 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -73,6 +73,18 @@ typedef struct { } mbedtls_mpi_mod_modulus; /** Setup a residue structure. + * + * The residue will be set up with the \p p buffer \p m modulus. + * + * The memory pointed by \p p will be used by the resulting residue structure. + * The value at the pointed memory will be the initial value of \p r and must + * hold a value that is less than the modulus. This value will be used as it is + * and interpreted according to the value of the `m->int_rep` field. + * + * The modulus \p m will be the modulus associated with \p r. The residue \p r + * should only be used in operations where the modulus is \p m or a modulus + * equivalent to \p m (in the sense that all their fields or memory pointed by + * their fields hold the same value). * * \param[out] r The address of residue to setup. The resulting structure's * size is determined by \p m. @@ -81,8 +93,9 @@ typedef struct { * The memory pointed to by \p p will be used by \p r and must * not be modified in any way until after * mbedtls_mpi_mod_residue_release() is called. The data - * pointed by p should be compatible (in terms of size/endianness) - * with the representation used in \p m. + * pointed by \p p should be less than the modulus (the value + * pointed by `m->p`) and already in the representation + * indicated by `m->int_rep`. * \param p_limbs The number of limbs of \p p. It must have at most as * many limbs as the modulus \p m.) * @@ -170,25 +183,28 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -/** Read public representation data stored in a buffer into a residue structure. +/** Read a residue from a byte buffer. * - * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must - * be compatible (Data in public representation is assumed to be in the m->ext_rep - * and will be padded to m->limbs). The data will be automatically converted - * into the appropriate internal representation based on the value of `m->int_rep`. + * The residue will be automatically converted to the internal representation + * based on the value of `m->int_rep` field. * - * \param r The address of the residue related to \p m. It must have as - * many limbs as the modulus \p m. + * The modulus \p m will be the modulus associated with \p r. The residue \p r + * should only be used in operations where the modulus is \p m or a modulus + * equivalent to \p m (in the sense that all their fields or memory pointed by + * their fields hold the same value). + * + * \param r The address of the residue. It must have as many limbs as + * the modulus \p m. * \param m The address of the modulus. * \param buf The input buffer to import from. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness of the number in the input buffer. * * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't + * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p r isn't * large enough to hold the value in \p buf. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation - * of \p m is invalid or \p X is not less than \p m. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep + * is invalid or the value in the buffer is not less than \p m. */ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, @@ -196,26 +212,32 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, size_t buflen, mbedtls_mpi_mod_ext_rep ext_rep ); -/** Write residue data onto a buffer using public representation data. +/** Write a residue into a byte buffer. * - * The `mbedtls_mpi_mod_residue` and `mbedtls_mpi_mod_modulus` structures must - * be compatible (Data will be exported onto the bufer using the m->ext_rep - * and will be read as of m->limbs length).The data will be automatically - * converted from the appropriate internal representation based on the - * value of `m->int_rep field`. + * The modulus \p m must be the modulus associated with \p r (see + * mbedtls_mpi_mod_residue_setup() and mbedtls_mpi_mod_read()). * - * \param r The address of the residue related to \p m. It must have as - * many limbs as the modulus \p m. - * \param m The address of the modulus. + * The residue will be automatically converted from the internal representation + * based on the value of `m->int_rep` field. + * + * \warning If the buffer is smaller than `m->bits`, the number of + * leading zeroes is leaked through side channels. If \p r is + * secret, the caller must ensure that \p buflen is at least + * (`m->bits`+7)/8. + * + * \param r The address of the residue. It must have as many limbs as + * the modulus \p m. + * \param m The address of the modulus associated with \r. * \param buf The output buffer to export to. * \param buflen The length in bytes of \p buf. - * \param ext_rep The endianness in which the number should be written into the output buffer. + * \param ext_rep The endianness in which the number should be written into + * the output buffer. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't - * large enough to hold the value of \p X. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation - * of \p m is invalid. + * large enough to hold the value of \p r (without leading + * zeroes). + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if of \p ext_rep is invalid. */ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, From fc6fbb4e969bc01857287c50ace8b197f2ffb1b7 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 25 Nov 2022 15:43:17 +0000 Subject: [PATCH 0985/1574] Bignum Mod: improve documentation Signed-off-by: Janos Follath Co-authored-by: Tom Cosgrove Signed-off-by: Janos Follath --- library/bignum_mod.h | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 52a5a5674..0706dd7a1 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -74,30 +74,30 @@ typedef struct { /** Setup a residue structure. * - * The residue will be set up with the \p p buffer \p m modulus. + * The residue will be set up with the buffer \p p and modulus \p m. * - * The memory pointed by \p p will be used by the resulting residue structure. - * The value at the pointed memory will be the initial value of \p r and must - * hold a value that is less than the modulus. This value will be used as it is + * The memory pointed to by \p p will be used by the resulting residue structure. + * The value at the pointed-to memory will be the initial value of \p r and must + * hold a value that is less than the modulus. This value will be used as-is * and interpreted according to the value of the `m->int_rep` field. * * The modulus \p m will be the modulus associated with \p r. The residue \p r * should only be used in operations where the modulus is \p m or a modulus - * equivalent to \p m (in the sense that all their fields or memory pointed by + * equivalent to \p m (in the sense that all their fields or memory pointed to by * their fields hold the same value). * - * \param[out] r The address of residue to setup. The resulting structure's + * \param[out] r The address of the residue to setup. The resulting structure's * size is determined by \p m. * \param[in] m The address of the modulus related to \p r. - * \param[in] p The address of the limb array storing the value of \p r. + * \param[in] p The address of the limb array containing the value of \p r. * The memory pointed to by \p p will be used by \p r and must * not be modified in any way until after * mbedtls_mpi_mod_residue_release() is called. The data - * pointed by \p p should be less than the modulus (the value - * pointed by `m->p`) and already in the representation + * pointed to by \p p must be less than the modulus (the value + * pointed to by `m->p`) and already in the representation * indicated by `m->int_rep`. - * \param p_limbs The number of limbs of \p p. It must have at most as - * many limbs as the modulus \p m.) + * \param p_limbs The number of limbs of \p p. Must be <= the number of + * limbs in the modulus \p m.) * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the @@ -186,15 +186,15 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /** Read a residue from a byte buffer. * * The residue will be automatically converted to the internal representation - * based on the value of `m->int_rep` field. + * based on the value of the `m->int_rep` field. * * The modulus \p m will be the modulus associated with \p r. The residue \p r * should only be used in operations where the modulus is \p m or a modulus * equivalent to \p m (in the sense that all their fields or memory pointed by * their fields hold the same value). * - * \param r The address of the residue. It must have as many limbs as - * the modulus \p m. + * \param r The address of the residue. It must have exactly the same + * number of limbs as the modulus \p m. * \param m The address of the modulus. * \param buf The input buffer to import from. * \param buflen The length in bytes of \p buf. @@ -237,7 +237,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p buf isn't * large enough to hold the value of \p r (without leading * zeroes). - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if of \p ext_rep is invalid. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep is invalid. */ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, From ee530cc6445e3f8138cd2217b92e78394d892c47 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 25 Nov 2022 15:54:40 +0000 Subject: [PATCH 0986/1574] Bignum Mod: improve documentation Signed-off-by: Janos Follath --- library/bignum_mod.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 0706dd7a1..67c48498e 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -86,8 +86,7 @@ typedef struct { * equivalent to \p m (in the sense that all their fields or memory pointed to by * their fields hold the same value). * - * \param[out] r The address of the residue to setup. The resulting structure's - * size is determined by \p m. + * \param[out] r The address of the residue to setup. * \param[in] m The address of the modulus related to \p r. * \param[in] p The address of the limb array containing the value of \p r. * The memory pointed to by \p p will be used by \p r and must @@ -96,8 +95,8 @@ typedef struct { * pointed to by \p p must be less than the modulus (the value * pointed to by `m->p`) and already in the representation * indicated by `m->int_rep`. - * \param p_limbs The number of limbs of \p p. Must be <= the number of - * limbs in the modulus \p m.) + * \param p_limbs The number of limbs of \p p. Must be the same as the number + * of limbs in the modulus \p m.) * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the @@ -138,8 +137,7 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ); * associated with \p m (see #mbedtls_mpi_mod_rep_selector). * * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep or \p int_rep is - * invalid. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p int_rep is invalid. */ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, const mbedtls_mpi_uint *p, From 799eaeefdb585478c192cf13974e762ed6269b80 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 25 Nov 2022 15:57:04 +0000 Subject: [PATCH 0987/1574] Bignum Mod: move init before any goto Test macros have goto instructions to the end where everything is freed. We need to call init before that happens to make calling free functions safe. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.function | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index bb87ba9d9..b716ab5ca 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -130,15 +130,15 @@ void mpi_mod_io_neg( ) const size_t buff_bytes = 1024; + mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init( &m2 ); + /* Allocate the memory for intermediate data structures */ TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, hex_modulus_single ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, hex_residue_single ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N2, &n2_limbs, hex_modulus_multi ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R2, &r2_limbs, hex_residue_multi ) ); - mbedtls_mpi_mod_modulus_init( &m ); - mbedtls_mpi_mod_modulus_init( &m2 ); - /* Allocate more than required space on buffer so we can test for input_r > mpi */ ASSERT_ALLOC( r_buff, buff_bytes ); memset( r_buff, 0x1, 1 ); @@ -218,6 +218,8 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) mbedtls_mpi_mod_residue r; size_t n_limbs, n_bytes, a_bytes; + mbedtls_mpi_mod_modulus_init( &m ); + /* Read inputs */ TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); n_bytes = n_limbs * sizeof( mbedtls_mpi_uint ); @@ -231,7 +233,6 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) TEST_LE_U(a_bytes, n_bytes ); /* Init Structures */ - mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); From f55505d38b330274c03148139667f0ca94278baa Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Fri, 25 Nov 2022 17:58:40 +0000 Subject: [PATCH 0988/1574] Bignum Mod Raw: fix tests after rebase Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod_raw.function | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index eb1980c29..c7decf007 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -308,7 +308,6 @@ void mpi_mod_raw_sub( char * input_A, TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, N, limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); mbedtls_mpi_mod_raw_sub( X, A, B, &m ); @@ -390,7 +389,6 @@ void mpi_mod_raw_add( char * input_N, TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( &m, N, limbs, - MBEDTLS_MPI_MOD_EXT_REP_BE, MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); From 91f3abdfdadcf1271bc88b9861324ca1b52d0ee4 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 11:47:14 +0000 Subject: [PATCH 0989/1574] Bignum Mod: improve residue_setup test - Rename input variables to match their purpose. - Assert fields upon success Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.function | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index b716ab5ca..6aaa9df76 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -81,7 +81,7 @@ exit: /* BEGIN MERGE SLOT 7 */ /* BEGIN_CASE */ -void mpi_residue_setup( char * input_X, char * input_Y, int ret ) +void mpi_residue_setup( char * input_N, char * input_R, int ret ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; @@ -92,14 +92,20 @@ void mpi_residue_setup( char * input_X, char * input_Y, int ret ) mbedtls_mpi_mod_modulus_init( &m ); /* Allocate the memory for intermediate data structures */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_X ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_Y ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_R ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); TEST_EQUAL( ret, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); + if ( ret == 0 ) + { + TEST_EQUAL( r.limbs, r_limbs ); + TEST_ASSERT( r.p == R ); + } + exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); From 96070a53a872a02c3cd70a0fde37dd254e0a79a9 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Fri, 25 Nov 2022 19:32:10 +0000 Subject: [PATCH 0990/1574] bignum_tests: Refactored `mpi_mod_io_neg()` This patch refactores the negative testing suite to utilised non-hardcoded input data. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod.data | 16 ++- tests/suites/test_suite_bignum_mod.function | 108 +++++++------------- 2 files changed, 49 insertions(+), 75 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index ef9416e16..1c2f75b11 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -56,8 +56,20 @@ mpi_residue_setup:"fe":"fe":-4 Test mbedtls_mpi_residue_setup #8 r > m mpi_residue_setup:"fe":"ff":-4 -Test mbedtls_mpi_mod_io_neg -mpi_mod_io_neg: +Test mbedtls_mpi_mod_io_neg #1 input_r < modulo m +mpi_mod_io_neg:"fe":"01":1:253:0 + +Test mbedtls_mpi_mod_io_neg #2 input_r == modulo m +mpi_mod_io_neg:"fe":"01":1:254:-4 + +Test mbedtls_mpi_mod_io_neg #3 input_r >= modulo m +mpi_mod_io_neg:"fe":"01":1:255:-4 + +Test mbedtls_mpi_mod_io_neg #4 input_r too large to fit +mpi_mod_io_neg:"fe":"01":1024:255:-8 + +Test mbedtls_mpi_mod_io_neg #5 Sucesfull read / output buffer too small +mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"7ffffffffffffffffffffffffffffff0":2:255:0 Test mbedtls_mpi_mod_io #1 N: "11" A: "119". mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 6aaa9df76..d318ba89c 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -114,102 +114,64 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io_neg( ) +void mpi_mod_io_neg( char * input_N, char * input_R, int buff_bytes, int buff_byte_val, int ret ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; - mbedtls_mpi_uint *N2 = NULL; - mbedtls_mpi_uint *R2 = NULL; unsigned char *r_buff = NULL; - - size_t n_limbs, r_limbs, n2_limbs, r2_limbs; + size_t n_limbs, r_limbs; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; - mbedtls_mpi_mod_modulus m2; mbedtls_mpi_mod_residue rn = { NULL, 0 }; - - const char *hex_residue_single = "01"; - const char *hex_modulus_single = "fe"; - const char *hex_residue_multi = "7ffffffffffffffffffffffffffffff0"; - const char *hex_modulus_multi = "7ffffffffffffffffffffffffffffff1"; - - const size_t buff_bytes = 1024; + mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; mbedtls_mpi_mod_modulus_init( &m ); - mbedtls_mpi_mod_modulus_init( &m2 ); /* Allocate the memory for intermediate data structures */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, hex_modulus_single ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, hex_residue_single ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N2, &n2_limbs, hex_modulus_multi ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R2, &r2_limbs, hex_residue_multi ) ); - - /* Allocate more than required space on buffer so we can test for input_r > mpi */ ASSERT_ALLOC( r_buff, buff_bytes ); - memset( r_buff, 0x1, 1 ); + /* Fill the buffer with the value passed in */ + memset( r_buff, buff_byte_val, buff_bytes ); - mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_R ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); - - /* Pass for input_r < modulo */ - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); - - /* Pass for input_r == modulo -1 */ - memset( r_buff, 0xfd, buff_bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); - - /* modulo->p == NULL || residue->p == NULL ( m2 has not been set-up ) */ + /* modulo->p == NULL || residue->p == NULL ( m has not been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m2, r_buff, 1, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &rn, &m, r_buff, 1, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m2, r_buff, 1, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &rn, &m, r_buff, 1, endian ) ); - - /* Fail for r_limbs < m->limbs */ - r.limbs = m.limbs - 1; - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &rn, &m, r_buff, 1, endian ) ); - r.limbs = r_limbs; - - /* Fail if input_r >= modulo m */ - /* input_r = modulo */ - memset( r_buff, 0xfe, buff_bytes ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); - - /* input_r > modulo */ - memset( r_buff, 0xff, buff_bytes ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, r_buff, 1, endian ) ); - - /* Data too large to fit */ - TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); - /* Read the two limbs input data into a larger modulus and residue */ - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m2, N2, n2_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - rn.p = R2; - rn.limbs = r2_limbs; - TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, - mbedtls_mpi_mod_write( &rn, &m2, r_buff, 1, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &r, &m, r_buff, buff_bytes, endian ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); + + /* modulo->p == NULL || residue->p == NULL ( m has been set-up ) */ + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &rn, &m, r_buff, buff_bytes, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &rn, &m, r_buff, buff_bytes, endian ) ); + + /* Fail for r_limbs > m->limbs */ + r.limbs = m.limbs + 1; + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &r, &m, r_buff, buff_bytes, endian ) ); + r.limbs = r_limbs; + + /* Test the read */ + TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); + + /* Test write overflow only when the representation is large and read is successful */ + if (r.limbs > 1 && ret == 0) + TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, + mbedtls_mpi_mod_write( &r, &m, r_buff, 1, endian ) ); exit: mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_mod_modulus_free( &m2 ); mbedtls_free( N ); mbedtls_free( R ); - mbedtls_free( N2 ); - mbedtls_free( R2 ); mbedtls_free( r_buff ); } /* END_CASE */ From 566c91db27a3b0d2b90e205db904966a6e5aa47f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 12:05:50 +0000 Subject: [PATCH 0991/1574] Bignum Mod: io_neg test pass data directly Pass buffer directly instead of constructing it in the function. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.data | 12 +++++----- tests/suites/test_suite_bignum_mod.function | 25 ++++++++------------- 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 1c2f75b11..8579becfa 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -57,19 +57,19 @@ Test mbedtls_mpi_residue_setup #8 r > m mpi_residue_setup:"fe":"ff":-4 Test mbedtls_mpi_mod_io_neg #1 input_r < modulo m -mpi_mod_io_neg:"fe":"01":1:253:0 +mpi_mod_io_neg:"fe":"01":"fd":0 Test mbedtls_mpi_mod_io_neg #2 input_r == modulo m -mpi_mod_io_neg:"fe":"01":1:254:-4 +mpi_mod_io_neg:"fe":"01":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA -Test mbedtls_mpi_mod_io_neg #3 input_r >= modulo m -mpi_mod_io_neg:"fe":"01":1:255:-4 +Test mbedtls_mpi_mod_io_neg #3 input_r > modulo m +mpi_mod_io_neg:"fe":"01":"ff":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_io_neg #4 input_r too large to fit -mpi_mod_io_neg:"fe":"01":1024:255:-8 +mpi_mod_io_neg:"fe":"01":"ffffffffffffffffff":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_io_neg #5 Sucesfull read / output buffer too small -mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"7ffffffffffffffffffffffffffffff0":2:255:0 +mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"7ffffffffffffffffffffffffffffff0":"ffff":0 Test mbedtls_mpi_mod_io #1 N: "11" A: "119". mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index d318ba89c..1d6b850b5 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -114,11 +114,10 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io_neg( char * input_N, char * input_R, int buff_bytes, int buff_byte_val, int ret ) +void mpi_mod_io_neg( char * input_N, char * input_R, data_t * buf, int ret ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; - unsigned char *r_buff = NULL; size_t n_limbs, r_limbs; mbedtls_mpi_mod_modulus m; @@ -128,20 +127,15 @@ void mpi_mod_io_neg( char * input_N, char * input_R, int buff_bytes, int buff_by mbedtls_mpi_mod_modulus_init( &m ); - /* Allocate the memory for intermediate data structures */ - ASSERT_ALLOC( r_buff, buff_bytes ); - /* Fill the buffer with the value passed in */ - memset( r_buff, buff_byte_val, buff_bytes ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_R ) ); /* modulo->p == NULL || residue->p == NULL ( m has not been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); @@ -149,30 +143,29 @@ void mpi_mod_io_neg( char * input_N, char * input_R, int buff_bytes, int buff_by /* modulo->p == NULL || residue->p == NULL ( m has been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &rn, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_read( &rn, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &rn, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_write( &rn, &m, buf->x, buf->len, endian ) ); /* Fail for r_limbs > m->limbs */ r.limbs = m.limbs + 1; TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, r_buff, buff_bytes, endian ) ); + mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); r.limbs = r_limbs; /* Test the read */ - TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, r_buff, buff_bytes, endian ) ); + TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); /* Test write overflow only when the representation is large and read is successful */ if (r.limbs > 1 && ret == 0) TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, - mbedtls_mpi_mod_write( &r, &m, r_buff, 1, endian ) ); + mbedtls_mpi_mod_write( &r, &m, buf->x, 1, endian ) ); exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); mbedtls_free( R ); - mbedtls_free( r_buff ); } /* END_CASE */ From 339b439906f9f36d36dac1ca5ece8eac73e72449 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 12:20:41 +0000 Subject: [PATCH 0992/1574] Bignum Mod: remove unused parameter in io_neg test The value was overwritten and the length wasn't used either. This latter could have lead to a buffer overflow as well. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.data | 10 +++++----- tests/suites/test_suite_bignum_mod.function | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 8579becfa..2ea4a5833 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -57,19 +57,19 @@ Test mbedtls_mpi_residue_setup #8 r > m mpi_residue_setup:"fe":"ff":-4 Test mbedtls_mpi_mod_io_neg #1 input_r < modulo m -mpi_mod_io_neg:"fe":"01":"fd":0 +mpi_mod_io_neg:"fe":"fd":0 Test mbedtls_mpi_mod_io_neg #2 input_r == modulo m -mpi_mod_io_neg:"fe":"01":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_io_neg:"fe":"fe":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_io_neg #3 input_r > modulo m -mpi_mod_io_neg:"fe":"01":"ff":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mpi_mod_io_neg:"fe":"ff":MBEDTLS_ERR_MPI_BAD_INPUT_DATA Test mbedtls_mpi_mod_io_neg #4 input_r too large to fit -mpi_mod_io_neg:"fe":"01":"ffffffffffffffffff":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL +mpi_mod_io_neg:"fe":"ffffffffffffffffff":MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL Test mbedtls_mpi_mod_io_neg #5 Sucesfull read / output buffer too small -mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"7ffffffffffffffffffffffffffffff0":"ffff":0 +mpi_mod_io_neg:"7ffffffffffffffffffffffffffffff1":"ffff":0 Test mbedtls_mpi_mod_io #1 N: "11" A: "119". mpi_mod_io:"000000000000000b":"0000000000000000":MBEDTLS_MPI_MOD_EXT_REP_BE diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 1d6b850b5..6a70e7287 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -114,11 +114,10 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io_neg( char * input_N, char * input_R, data_t * buf, int ret ) +void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; - size_t n_limbs, r_limbs; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; @@ -127,8 +126,10 @@ void mpi_mod_io_neg( char * input_N, char * input_R, data_t * buf, int ret ) mbedtls_mpi_mod_modulus_init( &m ); + size_t n_limbs; TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_R ) ); + size_t r_limbs = n_limbs; + ASSERT_ALLOC( R, r_limbs ); /* modulo->p == NULL || residue->p == NULL ( m has not been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, @@ -139,7 +140,7 @@ void mpi_mod_io_neg( char * input_N, char * input_R, data_t * buf, int ret ) TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , n_limbs ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); /* modulo->p == NULL || residue->p == NULL ( m has been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, From 898db6b8e5d24745128a4cf9bd4b63122af055c8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 26 Nov 2022 14:15:32 +0100 Subject: [PATCH 0993/1574] Move ssl_debug_helpers_generated to the correct library This is a private interface only, so it's an ABI change but not an API change. Signed-off-by: Gilles Peskine --- ChangeLog.d/move-ssl-modules.txt | 3 +++ library/CMakeLists.txt | 2 +- library/Makefile | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 ChangeLog.d/move-ssl-modules.txt diff --git a/ChangeLog.d/move-ssl-modules.txt b/ChangeLog.d/move-ssl-modules.txt new file mode 100644 index 000000000..f00e5ad83 --- /dev/null +++ b/ChangeLog.d/move-ssl-modules.txt @@ -0,0 +1,3 @@ +Bugfix + * Move some SSL-specific code out of libmbedcrypto where it had been placed + accidentally. diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 60b1cf4dd..bd832cbb3 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -84,7 +84,6 @@ set(src_crypto sha1.c sha256.c sha512.c - ssl_debug_helpers_generated.c threading.c timing.c version.c @@ -109,6 +108,7 @@ set(src_tls ssl_ciphersuites.c ssl_client.c ssl_cookie.c + ssl_debug_helpers_generated.c ssl_msg.c ssl_ticket.c ssl_tls.c diff --git a/library/Makefile b/library/Makefile index 6c3b75820..03474d275 100644 --- a/library/Makefile +++ b/library/Makefile @@ -149,7 +149,6 @@ OBJS_CRYPTO= \ sha1.o \ sha256.o \ sha512.o \ - ssl_debug_helpers_generated.o \ threading.o \ timing.o \ version.o \ @@ -178,6 +177,7 @@ OBJS_TLS= \ ssl_ciphersuites.o \ ssl_client.o \ ssl_cookie.o \ + ssl_debug_helpers_generated.o \ ssl_msg.o \ ssl_ticket.o \ ssl_tls.o \ From 89e31adbee9f837812fcfdd2490180a2039df20c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sat, 26 Nov 2022 14:18:45 +0100 Subject: [PATCH 0994/1574] Move mps modules to the correct library This is a private interface only, so it's an ABI change but not an API change. Signed-off-by: Gilles Peskine --- library/CMakeLists.txt | 4 ++-- library/Makefile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index bd832cbb3..8106dab59 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -49,8 +49,6 @@ set(src_crypto md.c md5.c memory_buffer_alloc.c - mps_reader.c - mps_trace.c nist_kw.c oid.c padlock.c @@ -103,6 +101,8 @@ set(src_x509 set(src_tls debug.c + mps_reader.c + mps_trace.c net_sockets.c ssl_cache.c ssl_ciphersuites.c diff --git a/library/Makefile b/library/Makefile index 03474d275..5073517ce 100644 --- a/library/Makefile +++ b/library/Makefile @@ -114,8 +114,6 @@ OBJS_CRYPTO= \ md.o \ md5.o \ memory_buffer_alloc.o \ - mps_reader.o \ - mps_trace.o \ nist_kw.o \ oid.o \ padlock.o \ @@ -172,6 +170,8 @@ OBJS_X509= \ OBJS_TLS= \ debug.o \ + mps_reader.o \ + mps_trace.o \ net_sockets.o \ ssl_cache.o \ ssl_ciphersuites.o \ From 6ef582f2b8a8c280e6f47ffb372c89f6b93cfb11 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 14:19:02 +0000 Subject: [PATCH 0995/1574] Bignum Mod Tests: improve readabilty and style Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 6a70e7287..8945968d7 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -160,7 +160,7 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); /* Test write overflow only when the representation is large and read is successful */ - if (r.limbs > 1 && ret == 0) + if ( r.limbs > 1 && ret == 0 ) TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_write( &r, &m, buf->x, 1, endian ) ); exit: @@ -185,14 +185,14 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) /* Read inputs */ TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); n_bytes = n_limbs * sizeof( mbedtls_mpi_uint ); - a_bytes = input_A->len * sizeof( char ); + a_bytes = input_A->len; /* Allocate the memory for intermediate data structures */ ASSERT_ALLOC( R, n_bytes ); ASSERT_ALLOC( r_buff, a_bytes ); /* Test that input's size is not greater to modulo's */ - TEST_LE_U(a_bytes, n_bytes ); + TEST_LE_U( a_bytes, n_bytes ); /* Init Structures */ TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, From 75b9f0fd2e463ce748dbd44efb1fd1fecbd26d89 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 14:28:50 +0000 Subject: [PATCH 0996/1574] mbedtls_mpi_mod_read/write: remove redundant checks The function isn't documented as accepting null pointer, and there's no reason why it should be. Just let it dereference the pointer. The null/zero checks are only marginally useful: they validate that m and r are properly populated objects, not freshly initialized ones. For that, it's enough to check that the pointers aren't null or that the sizes aren't zero, we don't need to check both. Also, use separate if statements for unrelated checks. Signed-off-by: Janos Follath --- library/bignum_mod.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 3cb3c436d..f07307ce5 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -203,11 +203,11 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - if ( r == NULL || m == NULL ) - goto cleanup; - if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs || - r->limbs == 0 || m->limbs == 0 ) + /* Do our best to check if r and m have been set up */ + if ( r->limbs == 0 || m->limbs == 0 ) + goto cleanup; + if ( r->limbs > m->limbs ) goto cleanup; ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen, ext_rep ); @@ -232,11 +232,10 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - if ( r == NULL || m == NULL ) + /* Do our best to check if r and m have been set up */ + if ( r->limbs == 0 || m->limbs == 0 ) goto cleanup; - - if ( r->p == NULL || m->p == NULL || r->limbs > m->limbs || - r->limbs == 0 || m->limbs == 0 ) + if ( r->limbs > m->limbs ) goto cleanup; if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) From d7bb35257b7279696a445a03d48579f58a53e5d3 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 14:59:27 +0000 Subject: [PATCH 0997/1574] mbedtls_mpi_mod_read/write: restrict pre-conditions Require equality for the number of limbs in the modulus and the residue. This makes these functions consistent with residue_setup(). Signed-off-by: Janos Follath --- library/bignum_mod.c | 4 ++-- tests/suites/test_suite_bignum_mod.function | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index f07307ce5..7f7c71512 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -207,7 +207,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, /* Do our best to check if r and m have been set up */ if ( r->limbs == 0 || m->limbs == 0 ) goto cleanup; - if ( r->limbs > m->limbs ) + if ( r->limbs != m->limbs ) goto cleanup; ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen, ext_rep ); @@ -235,7 +235,7 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, /* Do our best to check if r and m have been set up */ if ( r->limbs == 0 || m->limbs == 0 ) goto cleanup; - if ( r->limbs > m->limbs ) + if ( r->limbs != m->limbs ) goto cleanup; if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 8945968d7..7042ed3d2 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -148,13 +148,23 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &rn, &m, buf->x, buf->len, endian ) ); - /* Fail for r_limbs > m->limbs */ - r.limbs = m.limbs + 1; + /* Fail for r_limbs < m->limbs */ + r.limbs--; + TEST_ASSERT( r.limbs < m.limbs ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); - r.limbs = r_limbs; + r.limbs++; + + /* Fail for r_limbs > m->limbs */ + m.limbs--; + TEST_ASSERT( r.limbs > m.limbs ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + m.limbs++; /* Test the read */ TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); @@ -163,7 +173,9 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) if ( r.limbs > 1 && ret == 0 ) TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, mbedtls_mpi_mod_write( &r, &m, buf->x, 1, endian ) ); + exit: + mbedtls_mpi_mod_residue_release( &r ); mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); mbedtls_free( R ); From 8dfc8c41b7fb12a42d2828e88943850ec69e9480 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 15:39:02 +0000 Subject: [PATCH 0998/1574] mbedtls_mpi_mod_write: prevent data corruption The function wasn't converting back data to internal representation when writing it out. Signed-off-by: Janos Follath --- library/bignum_mod.c | 16 ++++++++++++++-- tests/suites/test_suite_bignum_mod.function | 10 ++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7f7c71512..4fe6e4854 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -231,6 +231,7 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + int conv_ret = 0; /* Do our best to check if r and m have been set up */ if ( r->limbs == 0 || m->limbs == 0 ) @@ -238,12 +239,23 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, if ( r->limbs != m->limbs ) goto cleanup; - if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) - ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); + if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { + conv_ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); + if( conv_ret != 0 ) + goto cleanup; + } ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen, ext_rep ); + if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + conv_ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); + cleanup: + + if ( ret == 0 ) + ret = conv_ret; + return ( ret ); } /* END MERGE SLOT 7 */ diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 7042ed3d2..df6bb45f6 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -187,9 +187,11 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; + mbedtls_mpi_uint *R_COPY = NULL; unsigned char *r_buff = NULL; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; + mbedtls_mpi_mod_residue r_copy; size_t n_limbs, n_bytes, a_bytes; mbedtls_mpi_mod_modulus_init( &m ); @@ -201,6 +203,7 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) /* Allocate the memory for intermediate data structures */ ASSERT_ALLOC( R, n_bytes ); + ASSERT_ALLOC( R_COPY, n_bytes ); ASSERT_ALLOC( r_buff, a_bytes ); /* Test that input's size is not greater to modulo's */ @@ -219,11 +222,18 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) TEST_EQUAL( 0, mbedtls_mpi_mod_write( &r, &m, r_buff, a_bytes, endian ) ); + /* Make sure that writing didn't change the value of r */ + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r_copy, &m, R_COPY, n_limbs ) ); + TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r_copy, &m, input_A->x, input_A->len, + endian ) ); + ASSERT_COMPARE( r.p, r.limbs, r_copy.p, r_copy.limbs ); + ASSERT_COMPARE( r_buff, a_bytes, input_A->x, a_bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); mbedtls_free( R ); + mbedtls_free( R_COPY ); mbedtls_free( r_buff ); } /* END_CASE */ From 0020df9cf929119eb322784a8608039533f645b9 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 17:23:16 +0000 Subject: [PATCH 0999/1574] mpi_mod_io: test with various buffer sizes Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.function | 70 ++++++++++++++++++--- 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index df6bb45f6..8fdd7b986 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -188,7 +188,8 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; mbedtls_mpi_uint *R_COPY = NULL; - unsigned char *r_buff = NULL; + unsigned char *obuf = NULL; + unsigned char *ref_buf = NULL; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; mbedtls_mpi_mod_residue r_copy; @@ -204,7 +205,6 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) /* Allocate the memory for intermediate data structures */ ASSERT_ALLOC( R, n_bytes ); ASSERT_ALLOC( R_COPY, n_bytes ); - ASSERT_ALLOC( r_buff, a_bytes ); /* Test that input's size is not greater to modulo's */ TEST_LE_U( a_bytes, n_bytes ); @@ -219,22 +219,72 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, input_A->x, input_A->len, endian ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_write( &r, &m, r_buff, a_bytes, - endian ) ); - - /* Make sure that writing didn't change the value of r */ - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r_copy, &m, R_COPY, n_limbs ) ); + /* Read a copy for checking that writing didn't change the value of r */ + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r_copy, &m, + R_COPY, n_limbs ) ); TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r_copy, &m, input_A->x, input_A->len, endian ) ); - ASSERT_COMPARE( r.p, r.limbs, r_copy.p, r_copy.limbs ); - ASSERT_COMPARE( r_buff, a_bytes, input_A->x, a_bytes ); + /* Get number of bytes without leading zeroes */ + size_t a_bytes_trimmed = a_bytes; + while( a_bytes_trimmed > 0 ) + { + unsigned char* r_byte_array = (unsigned char*) r.p; + if( r_byte_array[--a_bytes_trimmed] != 0 ) + break; + } + a_bytes_trimmed++; + + /* Test write with three output buffer sizes: tight, same as input and + * longer than the input */ + size_t obuf_sizes[3]; + const size_t obuf_sizes_len = sizeof( obuf_sizes ) / sizeof( obuf_sizes[0] ); + obuf_sizes[0] = a_bytes_trimmed; + obuf_sizes[1] = a_bytes; + obuf_sizes[2] = a_bytes + 8; + + for( size_t i = 0; i < obuf_sizes_len; i++ ) + { + ASSERT_ALLOC( obuf, obuf_sizes[i] ); + TEST_EQUAL( 0, mbedtls_mpi_mod_write( &r, &m, obuf, obuf_sizes[i], endian ) ); + + /* Make sure that writing didn't corrupt the value of r */ + ASSERT_COMPARE( r.p, r.limbs, r_copy.p, r_copy.limbs ); + + /* Set up reference output for checking the result */ + ASSERT_ALLOC( ref_buf, obuf_sizes[i] ); + switch( endian ) + { + case MBEDTLS_MPI_MOD_EXT_REP_LE: + memcpy( ref_buf, input_A->x, a_bytes_trimmed ); + break; + case MBEDTLS_MPI_MOD_EXT_REP_BE: + { + size_t a_offset = input_A->len - a_bytes_trimmed; + size_t ref_offset = obuf_sizes[i] - a_bytes_trimmed; + memcpy( ref_buf + ref_offset, input_A->x + a_offset, + a_bytes_trimmed ); + } + break; + default: + TEST_ASSERT( 0 ); + } + + /* Check the result */ + ASSERT_COMPARE( obuf, obuf_sizes[i], ref_buf, obuf_sizes[i] ); + + mbedtls_free( ref_buf ); + ref_buf = NULL; + mbedtls_free( obuf ); + obuf = NULL; + } + exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); mbedtls_free( R ); mbedtls_free( R_COPY ); - mbedtls_free( r_buff ); + mbedtls_free( obuf ); } /* END_CASE */ /* END MERGE SLOT 7 */ From 6eb92c04106faeab4ee280ed4c17b90eeb36436f Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 17:34:37 +0000 Subject: [PATCH 1000/1574] Bignum Mod: improve documentation and style Signed-off-by: Janos Follath --- library/bignum_mod.c | 31 +++++++++++++++---------------- library/bignum_mod.h | 8 +++----- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 4fe6e4854..74af509ae 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -50,7 +50,7 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, void mbedtls_mpi_mod_residue_release( mbedtls_mpi_mod_residue *r ) { - if ( r == NULL ) + if( r == NULL ) return; r->limbs = 0; @@ -59,7 +59,7 @@ void mbedtls_mpi_mod_residue_release( mbedtls_mpi_mod_residue *r ) void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ) { - if ( m == NULL ) + if( m == NULL ) return; m->p = NULL; @@ -70,7 +70,7 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ) void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) { - if ( m == NULL ) + if( m == NULL ) return; switch( m->int_rep ) @@ -110,17 +110,17 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, mbedtls_mpi_init( &N ); mbedtls_mpi_init( &RR ); - if ( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) + if( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) goto cleanup; - if ( mbedtls_mpi_grow( &N, limbs ) ) + if( mbedtls_mpi_grow( &N, limbs ) ) goto cleanup; memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); ret = mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); - if ( ret == 0 ) + if( ret == 0 ) { *X = RR.p; RR.p = NULL; @@ -205,20 +205,19 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, /* Do our best to check if r and m have been set up */ - if ( r->limbs == 0 || m->limbs == 0 ) + if( r->limbs == 0 || m->limbs == 0 ) goto cleanup; - if ( r->limbs != m->limbs ) + if( r->limbs != m->limbs ) goto cleanup; ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen, ext_rep ); - if( ret != 0 ) goto cleanup; r->limbs = m->limbs; - if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) - ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m); + if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); cleanup: return ( ret ); @@ -234,12 +233,12 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, int conv_ret = 0; /* Do our best to check if r and m have been set up */ - if ( r->limbs == 0 || m->limbs == 0 ) + if( r->limbs == 0 || m->limbs == 0 ) goto cleanup; - if ( r->limbs != m->limbs ) + if( r->limbs != m->limbs ) goto cleanup; - if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) { conv_ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); if( conv_ret != 0 ) @@ -248,12 +247,12 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen, ext_rep ); - if ( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) conv_ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); cleanup: - if ( ret == 0 ) + if( ret == 0 ) ret = conv_ret; return ( ret ); diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 67c48498e..ae486b9b6 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -82,9 +82,7 @@ typedef struct { * and interpreted according to the value of the `m->int_rep` field. * * The modulus \p m will be the modulus associated with \p r. The residue \p r - * should only be used in operations where the modulus is \p m or a modulus - * equivalent to \p m (in the sense that all their fields or memory pointed to by - * their fields hold the same value). + * should only be used in operations where the modulus is \p m. * * \param[out] r The address of the residue to setup. * \param[in] m The address of the modulus related to \p r. @@ -96,7 +94,7 @@ typedef struct { * pointed to by `m->p`) and already in the representation * indicated by `m->int_rep`. * \param p_limbs The number of limbs of \p p. Must be the same as the number - * of limbs in the modulus \p m.) + * of limbs in the modulus \p m. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the @@ -219,7 +217,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * based on the value of `m->int_rep` field. * * \warning If the buffer is smaller than `m->bits`, the number of - * leading zeroes is leaked through side channels. If \p r is + * leading zeroes is leaked through timing. If \p r is * secret, the caller must ensure that \p buflen is at least * (`m->bits`+7)/8. * From e7190a2960d2071b96246808f7f76996bdb61592 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Sat, 26 Nov 2022 18:46:54 +0000 Subject: [PATCH 1001/1574] mpi_mod_io_neg: fix use of uninitialized value Uninitialized values are invalid for the tested functions and we shouldn't be testing that. Signed-off-by: Janos Follath --- tests/suites/test_suite_bignum_mod.function | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 8fdd7b986..a941cb642 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -120,8 +120,7 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) mbedtls_mpi_uint *R = NULL; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_residue r; - mbedtls_mpi_mod_residue rn = { NULL, 0 }; + mbedtls_mpi_mod_residue r = { NULL, 0 }; mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; mbedtls_mpi_mod_modulus_init( &m ); @@ -131,22 +130,24 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) size_t r_limbs = n_limbs; ASSERT_ALLOC( R, r_limbs ); - /* modulo->p == NULL || residue->p == NULL ( m has not been set-up ) */ + /* modulus->p == NULL || residue->p == NULL ( m has not been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + /* Set up modulus and test with residue->p == NULL */ TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); - /* modulo->p == NULL || residue->p == NULL ( m has been set-up ) */ TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &rn, &m, buf->x, buf->len, endian ) ); + mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &rn, &m, buf->x, buf->len, endian ) ); + mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + + /* Do the rest of the tests with a residue set up with the input data */ + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); /* Fail for r_limbs < m->limbs */ r.limbs--; From 290f01b3f54a16045be201699becda8f500eebd5 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 21:28:31 +0100 Subject: [PATCH 1002/1574] Fix dangling freed pointer on error in pkcs7_get_signers_info_set This fixes a use-after-free in PKCS#7 parsing when the signer data is malformed. Credit to OSS-Fuzz (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53798). Signed-off-by: Gilles Peskine --- library/pkcs7.c | 5 +++-- ...t-missing_free-fuzz_pkcs7-6213931373035520.der | Bin 0 -> 108 bytes tests/suites/test_suite_pkcs7.data | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 tests/data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der diff --git a/library/pkcs7.c b/library/pkcs7.c index ca0170a6d..783aaa288 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -430,15 +430,16 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, goto out; cleanup: - signer = signers_set->next; pkcs7_free_signer_info( signers_set ); - while( signer ) + signer = signers_set->next; + while( signer != NULL ) { prev = signer; signer = signer->next; pkcs7_free_signer_info( prev ); mbedtls_free( prev ); } + signers_set->next = NULL; out: return( ret ); diff --git a/tests/data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der b/tests/data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der new file mode 100644 index 0000000000000000000000000000000000000000..ce4fb3bd49fdaf0ccd10069af549eb55ec9554fe GIT binary patch literal 108 zcmXrWVq#=8FQ)N1o+`_9YA&S>avAPZDrz-_=`$Y#L8#=y+L V!~mq36ch}Y*cezC2uLd+0|0Qt3R(aF literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index 4f81b6f28..5ecfb9111 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -62,6 +62,9 @@ PKCS7 Signed Data Parse Failure Corrupt signerInfo.serial #15.2 depends_on:MBEDTLS_SHA256_C pkcs7_parse:"data_files/pkcs7_signerInfo_serial_invalid_size.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO +pkcs7_get_signers_info_set error handling (6213931373035520) +pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + PKCS7 Only Signed Data Parse Pass #15 depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der":MBEDTLS_PKCS7_SIGNED_DATA From 2336555444a7fe4e0efc20f8017af914d7b5869c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 21:30:58 +0100 Subject: [PATCH 1003/1574] Improve test failure reporting Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pkcs7.function | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index e3961407d..f938f4237 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -26,10 +26,10 @@ void pkcs7_parse( char *pkcs7_file, int res_expect ) mbedtls_pkcs7_init( &pkcs7 ); res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == res_expect ); + TEST_EQUAL( res, res_expect ); exit: mbedtls_free( pkcs7_buf ); @@ -60,16 +60,16 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has mbedtls_x509_crt_init( &x509 ); res = mbedtls_x509_crt_parse_file( &x509, crt ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); + TEST_EQUAL( res, MBEDTLS_PKCS7_SIGNED_DATA ); res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); file = fopen( filetobesigned, "rb" ); TEST_ASSERT( file != NULL ); @@ -79,18 +79,18 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has TEST_ASSERT( data != NULL ); buflen = fread( (void *)data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen ); + TEST_EQUAL( buflen, datalen ); fclose( file ); if( do_hash_alg ) { res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); - TEST_ASSERT( res == 0 ); - TEST_ASSERT( md_alg == (mbedtls_md_type_t) do_hash_alg ); + TEST_EQUAL( res, 0 ); + TEST_EQUAL( md_alg, (mbedtls_md_type_t) do_hash_alg ); md_info = mbedtls_md_info_from_type( md_alg ); res = mbedtls_md( md_info, data, datalen, hash ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash) ); } @@ -98,7 +98,7 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has { res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); } - TEST_ASSERT( res == res_expect ); + TEST_EQUAL( res, res_expect ); exit: mbedtls_x509_crt_free( &x509 ); @@ -134,21 +134,21 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch mbedtls_x509_crt_init( &x509_2 ); res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_ASSERT( res == MBEDTLS_PKCS7_SIGNED_DATA ); + TEST_EQUAL( res, MBEDTLS_PKCS7_SIGNED_DATA ); - TEST_ASSERT( pkcs7.signed_data.no_of_signers == 2 ); + TEST_EQUAL( pkcs7.signed_data.no_of_signers, 2 ); res = mbedtls_x509_crt_parse_file( &x509_1, crt1 ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_x509_crt_parse_file( &x509_2, crt2 ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = stat( filetobesigned, &st ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); file = fopen( filetobesigned, "rb" ); TEST_ASSERT( file != NULL ); @@ -156,32 +156,32 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch datalen = st.st_size; ASSERT_ALLOC( data, datalen ); buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_ASSERT( buflen == datalen ); + TEST_EQUAL( buflen, datalen ); fclose( file ); if( do_hash_alg ) { res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); - TEST_ASSERT( res == 0 ); - TEST_ASSERT( md_alg == MBEDTLS_MD_SHA256 ); + TEST_EQUAL( res, 0 ); + TEST_EQUAL( md_alg, MBEDTLS_MD_SHA256 ); md_info = mbedtls_md_info_from_type( md_alg ); res = mbedtls_md( md_info, data, datalen, hash ); - TEST_ASSERT( res == 0 ); + TEST_EQUAL( res, 0 ); res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash) ); - TEST_ASSERT( res == res_expect ); + TEST_EQUAL( res, res_expect ); } else { res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_1, data, datalen ); - TEST_ASSERT( res == res_expect ); + TEST_EQUAL( res, res_expect ); } res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); - TEST_ASSERT( res == res_expect ); + TEST_EQUAL( res, res_expect ); exit: mbedtls_x509_crt_free( &x509_1 ); From 391005cb3b2b195636570108dba30cf71894a7d6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 21:32:37 +0100 Subject: [PATCH 1004/1574] Fix structures initialized too late in tests Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pkcs7.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index f938f4237..3d7dec686 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -54,11 +54,11 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; - USE_PSA_INIT(); - mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509 ); + USE_PSA_INIT(); + res = mbedtls_x509_crt_parse_file( &x509, crt ); TEST_EQUAL( res, 0 ); @@ -127,12 +127,12 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch mbedtls_x509_crt x509_1; mbedtls_x509_crt x509_2; - USE_PSA_INIT(); - mbedtls_pkcs7_init( &pkcs7 ); mbedtls_x509_crt_init( &x509_1 ); mbedtls_x509_crt_init( &x509_2 ); + USE_PSA_INIT(); + res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); TEST_EQUAL( res, 0 ); From 47a732635bfeb5c6a5b4260ccc2b841a00c71512 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 21:46:56 +0100 Subject: [PATCH 1005/1574] Simplify control flow in PKCS7 functions Remove useless goto in several functions. Signed-off-by: Gilles Peskine --- library/pkcs7.c | 106 ++++++++++++++++++------------------------------ 1 file changed, 39 insertions(+), 67 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 783aaa288..c1446def7 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -103,15 +103,13 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) { *p = start; - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ) ); } ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); if( ret != 0 ) { *p = start; - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ) ); } pkcs7->tag = MBEDTLS_ASN1_OID; @@ -119,7 +117,6 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, pkcs7->p = *p; *p += len; -out: return( ret ); } @@ -153,8 +150,7 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, | MBEDTLS_ASN1_SET ); if( ret != 0 ) { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ) ); } end = *p + len; @@ -162,16 +158,14 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, ret = mbedtls_asn1_get_alg_null( p, end, alg ); if( ret != 0 ) { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ) ); } /** For now, it assumes there is only one digest algorithm specified **/ if ( *p != end ) - ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; + return( MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); -out: - return( ret ); + return( 0 ); } /** @@ -195,10 +189,9 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) { if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - ret = 0; + return( 0 ); else - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ) ); } start = *p; end_set = *p + len1; @@ -207,8 +200,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CERT, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CERT, ret ) ); } end_cert = *p + len2; @@ -221,15 +213,13 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, */ if ( end_cert != end_set ) { - ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; - goto out; + return( MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); } *p = start; if( ( ret = mbedtls_x509_crt_parse_der( certs, *p, len1 ) ) < 0 ) { - ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; - goto out; + return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); } *p = *p + len1; @@ -238,10 +228,7 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, * Since in this version we strictly support single certificate, and reaching * here implies we have parsed successfully, we return 1. */ - ret = 1; - -out: - return( ret ); + return( 1 ); } /** @@ -255,7 +242,7 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OCTET_STRING ); if( ret != 0 ) - goto out; + return( ret ); signature->tag = MBEDTLS_ASN1_OCTET_STRING; signature->len = len; @@ -263,8 +250,7 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, *p = *p + len; -out: - return( ret ); + return( 0 ); } /** @@ -382,34 +368,32 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int count = 0; size_t len = 0; - mbedtls_pkcs7_signer_info *signer, *prev; ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ); if( ret != 0 ) { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, ret ) ); } /* Detect zero signers */ if( len == 0 ) { - ret = 0; - goto out; + return( 0 ); } end_set = *p + len; ret = pkcs7_get_signer_info( p, end_set, signers_set ); if( ret != 0 ) - goto out; + return( ret ); count++; - prev = signers_set; + mbedtls_pkcs7_signer_info *prev = signers_set; while( *p != end_set ) { - signer = mbedtls_calloc( 1, sizeof( mbedtls_pkcs7_signer_info ) ); + mbedtls_pkcs7_signer_info *signer = + mbedtls_calloc( 1, sizeof( mbedtls_pkcs7_signer_info ) ); if( !signer ) { ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; @@ -426,12 +410,11 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, count++; } - ret = count; - goto out; + return( count ); cleanup: pkcs7_free_signer_info( signers_set ); - signer = signers_set->next; + mbedtls_pkcs7_signer_info *signer = signers_set->next; while( signer != NULL ) { prev = signer; @@ -440,8 +423,6 @@ cleanup: mbedtls_free( prev ); } signers_set->next = NULL; - -out: return( ret ); } @@ -471,8 +452,7 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, | MBEDTLS_ASN1_SEQUENCE ); if( ret != 0 ) { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); - goto out; + return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ) ); } end_set = p + len; @@ -480,37 +460,35 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, /* Get version of signed data */ ret = pkcs7_get_version( &p, end_set, &signed_data->version ); if( ret != 0 ) - goto out; + return( ret ); /* Get digest algorithm */ ret = pkcs7_get_digest_algorithm_set( &p, end_set, &signed_data->digest_alg_identifiers ); if( ret != 0 ) - goto out; + return( ret ); ret = mbedtls_oid_get_md_alg( &signed_data->digest_alg_identifiers, &md_alg ); if( ret != 0 ) { - ret = MBEDTLS_ERR_PKCS7_INVALID_ALG; - goto out; + return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); } /* Do not expect any content */ ret = pkcs7_get_content_info_type( &p, end_set, &signed_data->content.oid ); if( ret != 0 ) - goto out; + return( ret ); if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &signed_data->content.oid ) ) { - ret = MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO; - goto out; + return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO ); } /* Look for certificates, there may or may not be any */ mbedtls_x509_crt_init( &signed_data->certs ); ret = pkcs7_get_certificates( &p, end_set, &signed_data->certs ); if( ret < 0 ) - goto out; + return( ret ); signed_data->no_of_certs = ret; @@ -525,18 +503,15 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, /* Get signers info */ ret = pkcs7_get_signers_info_set( &p, end_set, &signed_data->signers ); if( ret < 0 ) - goto out; + return( ret ); signed_data->no_of_signers = ret; /* Don't permit trailing data */ if ( p != end ) - ret = MBEDTLS_ERR_PKCS7_INVALID_FORMAT; - else - ret = 0; + return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT ); -out: - return( ret ); + return( 0 ); } int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, @@ -548,10 +523,9 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int isoidset = 0; - if( !pkcs7 ) + if( pkcs7 == NULL ) { - ret = MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA; - goto out; + return( MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA ); } /* make an internal copy of the buffer for parsing */ @@ -631,15 +605,13 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, if( pkcs7->signed_data.no_of_signers == 0 ) { - ret = MBEDTLS_ERR_PKCS7_INVALID_CERT; - goto out; + return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); } if( mbedtls_x509_time_is_past( &cert->valid_to ) || mbedtls_x509_time_is_future( &cert->valid_from )) { - ret = MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID; - goto out; + return( MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID ); } /* @@ -673,9 +645,9 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); if( hash == NULL ) { - ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; - goto out; + return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); } + /* BEGIN must free hash before jumping out */ if( is_data_hash ) { if( datalen != mbedtls_md_get_size( md_info )) @@ -698,12 +670,12 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, mbedtls_md_get_size( md_info ), signer->sig.p, signer->sig.len ); mbedtls_free( hash ); + /* END must free hash before jumping out */ if( ret == 0 ) break; } -out: return( ret ); } int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, From e7f8c616d0b9388fd20ffd6c9730ea8188f27716 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 21:51:19 +0100 Subject: [PATCH 1006/1574] Fix dangling freed pointer in pkcs7_free_signer_info This may have been a use-after-free, but I haven't worked out whether it was a problem or not. Even if it turns out to have been ok, keeping invalid pointers around is fragile. Signed-off-by: Gilles Peskine --- library/pkcs7.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/pkcs7.c b/library/pkcs7.c index c1446def7..fc6dd33f3 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -353,6 +353,7 @@ static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) name_cur = name_cur->next; mbedtls_free( name_prv ); } + signer->issuer.next = NULL; } /** From 4f01121f6e598c51e42a69f3fd9a54846013117a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Sun, 27 Nov 2022 22:02:10 +0100 Subject: [PATCH 1007/1574] Fix memory leak on error in pkcs7_get_signers_info_set mbedtls_x509_name allocates memory, which must be freed if there is a subsequent error. Credit to OSS-Fuzz (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53811). Signed-off-by: Gilles Peskine --- library/pkcs7.c | 2 +- ..._info_set-leak-fuzz_pkcs7-4541044530479104.der | Bin 0 -> 108 bytes tests/suites/test_suite_pkcs7.data | 3 +++ 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 tests/data_files/pkcs7_get_signers_info_set-leak-fuzz_pkcs7-4541044530479104.der diff --git a/library/pkcs7.c b/library/pkcs7.c index fc6dd33f3..e4238b6a3 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -387,7 +387,7 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, ret = pkcs7_get_signer_info( p, end_set, signers_set ); if( ret != 0 ) - return( ret ); + goto cleanup; count++; mbedtls_pkcs7_signer_info *prev = signers_set; diff --git a/tests/data_files/pkcs7_get_signers_info_set-leak-fuzz_pkcs7-4541044530479104.der b/tests/data_files/pkcs7_get_signers_info_set-leak-fuzz_pkcs7-4541044530479104.der new file mode 100644 index 0000000000000000000000000000000000000000..51aef0d0929043a6c080846758c96bf08a945216 GIT binary patch literal 108 zcmXrWVq#=8FQ)N1o+`_9YA&S+?7APZDrz-_=`$Y#L8#=yhC l!~mq36ch}Y*cezCVA3LnLJ(;XDFadhBo)BmKZH_H004ib3yc5& literal 0 HcmV?d00001 diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index 5ecfb9111..c329a771e 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -65,6 +65,9 @@ pkcs7_parse:"data_files/pkcs7_signerInfo_serial_invalid_size.der":MBEDTLS_ERR_PK pkcs7_get_signers_info_set error handling (6213931373035520) pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +pkcs7_get_signers_info_set error handling (4541044530479104) +pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + PKCS7 Only Signed Data Parse Pass #15 depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C pkcs7_parse:"data_files/pkcs7_data_cert_signeddata_sha256.der":MBEDTLS_PKCS7_SIGNED_DATA From a6ab9d8b12b836faf1cd58fc283b5879a6d5b333 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 28 Nov 2022 03:55:27 -0500 Subject: [PATCH 1008/1574] Add a changelog entry explaining usage of PSA in TLS 1.2 EC J-PAKE Signed-off-by: Andrzej Kurek --- ChangeLog.d/ecjpake-in-tls.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/ecjpake-in-tls.txt diff --git a/ChangeLog.d/ecjpake-in-tls.txt b/ChangeLog.d/ecjpake-in-tls.txt new file mode 100644 index 000000000..b84caab86 --- /dev/null +++ b/ChangeLog.d/ecjpake-in-tls.txt @@ -0,0 +1,5 @@ +Features + * The TLS 1.2 EC J-PAKE key exchange can now use the PSA Crypto API. + Additional PSA key slots will be allocated in the process of such key + exchange for builds that enable MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED and + MBEDTLS_USE_PSA_CRYPTO. From 84a6edac10ef263c030c957716cd7b69430388e3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 4 Nov 2022 11:17:35 +0800 Subject: [PATCH 1009/1574] change signature of get_cipher_key_info - it is a static function. The name is not follow nameing ruler - move the position. Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 66 ++++++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index ec84a996c..1b76996bc 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1052,6 +1052,35 @@ int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, return( 0 ); } +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_get_cipher_key_info( + const mbedtls_ssl_ciphersuite_t *ciphersuite_info, + size_t *key_len, size_t *iv_len ) +{ + psa_key_type_t key_type; + psa_algorithm_t alg; + size_t taglen; + size_t key_bits; + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + + if( ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ) + taglen = 8; + else + taglen = 16; + + status = mbedtls_ssl_cipher_to_psa( ciphersuite_info->cipher, taglen, + &alg, &key_type, &key_bits ); + if( status != PSA_SUCCESS ) + return psa_ssl_status_to_mbedtls( status ); + + *key_len = PSA_BITS_TO_BYTES( key_bits ); + + /* TLS 1.3 only have AEAD ciphers, IV length is unconditionally 12 bytes */ + *iv_len = 12; + + return 0; +} + int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1098,35 +1127,6 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) return( 0 ); } -MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_tls13_get_cipher_key_info( - const mbedtls_ssl_ciphersuite_t *ciphersuite_info, - size_t *key_len, size_t *iv_len ) -{ - psa_key_type_t key_type; - psa_algorithm_t alg; - size_t taglen; - size_t key_bits; - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - - if( ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ) - taglen = 8; - else - taglen = 16; - - status = mbedtls_ssl_cipher_to_psa( ciphersuite_info->cipher, taglen, - &alg, &key_type, &key_bits ); - if( status != PSA_SUCCESS ) - return psa_ssl_status_to_mbedtls( status ); - - *key_len = PSA_BITS_TO_BYTES( key_bits ); - - /* TLS 1.3 only have AEAD ciphers, IV length is unconditionally 12 bytes */ - *iv_len = 12; - - return 0; -} - /* mbedtls_ssl_tls13_generate_handshake_keys() generates keys necessary for * protecting the handshake messages, as described in Section 7 of TLS 1.3. */ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, @@ -1150,11 +1150,11 @@ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_tls13_generate_handshake_keys" ) ); - ret = mbedtls_ssl_tls13_get_cipher_key_info( ciphersuite_info, + ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_get_cipher_key_info", ret ); + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); return ret; } @@ -1370,11 +1370,11 @@ int mbedtls_ssl_tls13_generate_application_keys( /* Extract basic information about hash and ciphersuite */ - ret = mbedtls_ssl_tls13_get_cipher_key_info( handshake->ciphersuite_info, + ret = ssl_tls13_get_cipher_key_info( handshake->ciphersuite_info, &key_len, &iv_len ); if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_get_cipher_key_info", ret ); + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); goto cleanup; } From 3d9b590f0281e90d23ce6e8017d1826a7f6fb26b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 4 Nov 2022 14:07:25 +0800 Subject: [PATCH 1010/1574] guards transform_earlydata Signed-off-by: Jerry Yu --- library/ssl_misc.h | 14 +++++++------- library/ssl_tls.c | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 1902d715d..32e2b16d7 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -890,13 +890,6 @@ struct mbedtls_ssl_handshake_params uint16_t mtu; /*!< Handshake mtu, used to fragment outgoing messages */ #endif /* MBEDTLS_SSL_PROTO_DTLS */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - /*! TLS 1.3 transforms for 0-RTT and encrypted handshake messages. - * Those pointers own the transforms they reference. */ - mbedtls_ssl_transform *transform_handshake; - mbedtls_ssl_transform *transform_earlydata; -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - /* * Checksum contexts */ @@ -981,6 +974,8 @@ struct mbedtls_ssl_handshake_params unsigned char *certificate_request_context; #endif + /** TLS 1.3 transform for encrypted handshake messages. */ + mbedtls_ssl_transform *transform_handshake; union { unsigned char early [MBEDTLS_TLS1_3_MD_MAX_SIZE]; @@ -989,6 +984,11 @@ struct mbedtls_ssl_handshake_params } tls13_master_secrets; mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; +#if defined(MBEDTLS_SSL_EARLY_DATA) + mbedtls_ssl_tls13_early_secrets tls13_early_secrets; + /** TLS 1.3 transform for 0-RTT application and handshake messages. */ + mbedtls_ssl_transform *transform_earlydata; +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 3d3491bc6..83f2b3c3e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1447,9 +1447,11 @@ void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, if( ssl->handshake != NULL ) { +#if defined(MBEDTLS_SSL_EARLY_DATA) mbedtls_ssl_transform_free( ssl->handshake->transform_earlydata ); mbedtls_free( ssl->handshake->transform_earlydata ); ssl->handshake->transform_earlydata = NULL; +#endif mbedtls_ssl_transform_free( ssl->handshake->transform_handshake ); mbedtls_free( ssl->handshake->transform_handshake ); @@ -4067,9 +4069,11 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_transform_free( handshake->transform_handshake ); + mbedtls_free( handshake->transform_handshake ); +#if defined(MBEDTLS_SSL_EARLY_DATA) mbedtls_ssl_transform_free( handshake->transform_earlydata ); mbedtls_free( handshake->transform_earlydata ); - mbedtls_free( handshake->transform_handshake ); +#endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ From 91b560f38daa0e3d3ff740885c0a9c6ebb6104dc Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 4 Nov 2022 14:10:34 +0800 Subject: [PATCH 1011/1574] Add compute early transform Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 150 +++++++++++++++++++++++++++++++++++++++ library/ssl_tls13_keys.h | 17 +++++ 2 files changed, 167 insertions(+) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 1b76996bc..f1791810e 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1081,6 +1081,156 @@ static int ssl_tls13_get_cipher_key_info( return 0; } +#if defined(MBEDTLS_SSL_EARLY_DATA) +/* ssl_tls13_generate_early_keys() generates keys necessary for protecting + * the early app data messages described in section 7 RFC 8446. */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_type_t md_type; + + psa_algorithm_t hash_alg; + size_t hash_len; + + unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + size_t transcript_len; + + size_t key_len, iv_len; + + mbedtls_ssl_handshake_params *handshake = ssl->handshake; + const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; + mbedtls_ssl_tls13_early_secrets *tls13_early_secrets = &handshake->tls13_early_secrets; + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_tls13_generate_early_keys" ) ); + + ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); + return ret; + } + + md_type = ciphersuite_info->mac; + + hash_alg = mbedtls_hash_info_psa_from_md( ciphersuite_info->mac ); + hash_len = PSA_HASH_LENGTH( hash_alg ); + + ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, + transcript, + sizeof( transcript ), + &transcript_len ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, + "mbedtls_ssl_get_handshake_transcript", + ret ); + return( ret ); + } + + ret = mbedtls_ssl_tls13_derive_early_secrets( hash_alg, + handshake->tls13_master_secrets.early, + transcript, transcript_len, tls13_early_secrets ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( + 1, "mbedtls_ssl_tls13_derive_early_secrets", ret ); + return( ret ); + } + + MBEDTLS_SSL_DEBUG_BUF( + 4, "Client early traffic secret", + tls13_early_secrets->client_early_traffic_secret, + hash_len ); + + /* + * Export client handshake traffic secret + */ + if( ssl->f_export_keys != NULL ) + { + ssl->f_export_keys( ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET, + tls13_early_secrets->client_early_traffic_secret, + hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); + } + + ret = mbedtls_ssl_tls13_make_traffic_keys( hash_alg, + tls13_early_secrets->client_early_traffic_secret, + tls13_early_secrets->client_early_traffic_secret, + hash_len, key_len, iv_len, traffic_keys ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); + goto exit; + } + + MBEDTLS_SSL_DEBUG_BUF( 5, "client_handshake write_key", + traffic_keys->client_write_key, + traffic_keys->key_len); + + MBEDTLS_SSL_DEBUG_BUF( 5, "client_handshake write_iv", + traffic_keys->client_write_iv, + traffic_keys->iv_len); + + + MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_keys" ) ); + +exit: + + return( ret ); +} + +int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_ssl_key_set traffic_keys; + mbedtls_ssl_transform *transform_earlydata = NULL; + mbedtls_ssl_handshake_params *handshake = ssl->handshake; + + /* Next evolution in key schedule: Establish early_data secret and + * key material. */ + ret = ssl_tls13_generate_early_keys( ssl, &traffic_keys ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_generate_early_keys", + ret ); + goto cleanup; + } + + transform_earlydata = mbedtls_calloc( 1, sizeof( mbedtls_ssl_transform ) ); + if( transform_earlydata == NULL ) + { + ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; + goto cleanup; + } + + ret = mbedtls_ssl_tls13_populate_transform( + transform_earlydata, + ssl->conf->endpoint, + ssl->session_negotiate->ciphersuite, + &traffic_keys, + ssl ); + if( ret != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_populate_transform", ret ); + goto cleanup; + } + handshake->transform_earlydata = transform_earlydata; + +cleanup: + mbedtls_platform_zeroize( &traffic_keys, sizeof( traffic_keys ) ); + if( ret != 0 ) + mbedtls_free( transform_earlydata ); + + return( ret ); +} +#endif /* MBEDTLS_SSL_EARLY_DATA */ + int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index 966b5c5e4..81414d84f 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -667,6 +667,23 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context *ssl, size_t *actual_len, int which ); +#if defined(MBEDTLS_SSL_EARLY_DATA) +/** + * \brief Compute TLS 1.3 early transform + * + * \param ssl The SSL context to operate on. The early secret must have been + * computed. + * + * \returns \c 0 on success. + * \returns A negative error code on failure. + * + * \warning `early_secrets` is not computation. Caller MUST call + * mbedtls_ssl_tls13_key_schedule_stage_early() before this function. + */ +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ); +#endif /* MBEDTLS_SSL_EARLY_DATA */ + /** * \brief Compute TLS 1.3 handshake transform * From b094e124f2bdf5c05aee52cb61c9e61880900eb7 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 21 Nov 2022 13:03:47 +0800 Subject: [PATCH 1012/1574] fix various issues - Alignments - comment words in doxygen paragraph Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 49 +++++++++++++++++++--------------------- library/ssl_tls13_keys.h | 8 +++---- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index f1791810e..8f2a74e87 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1082,8 +1082,8 @@ static int ssl_tls13_get_cipher_key_info( } #if defined(MBEDTLS_SSL_EARLY_DATA) -/* ssl_tls13_generate_early_keys() generates keys necessary for protecting - * the early app data messages described in section 7 RFC 8446. */ +/* ssl_tls13_generate_early_keys() generates keys necessary for protecting the + early application and handshake messages described in section 7 RFC 8446. */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys ) @@ -1130,9 +1130,9 @@ static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, return( ret ); } - ret = mbedtls_ssl_tls13_derive_early_secrets( hash_alg, - handshake->tls13_master_secrets.early, - transcript, transcript_len, tls13_early_secrets ); + ret = mbedtls_ssl_tls13_derive_early_secrets( + hash_alg, handshake->tls13_master_secrets.early, + transcript, transcript_len, tls13_early_secrets ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( @@ -1142,27 +1142,28 @@ static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 4, "Client early traffic secret", - tls13_early_secrets->client_early_traffic_secret, - hash_len ); + tls13_early_secrets->client_early_traffic_secret, hash_len ); /* * Export client handshake traffic secret */ if( ssl->f_export_keys != NULL ) { - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET, - tls13_early_secrets->client_early_traffic_secret, - hash_len, - handshake->randbytes, - handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); + ssl->f_export_keys( + ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET, + tls13_early_secrets->client_early_traffic_secret, + hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); } - ret = mbedtls_ssl_tls13_make_traffic_keys( hash_alg, - tls13_early_secrets->client_early_traffic_secret, - tls13_early_secrets->client_early_traffic_secret, - hash_len, key_len, iv_len, traffic_keys ); + ret = mbedtls_ssl_tls13_make_traffic_keys( + hash_alg, + tls13_early_secrets->client_early_traffic_secret, + tls13_early_secrets->client_early_traffic_secret, + hash_len, key_len, iv_len, traffic_keys ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); @@ -1283,16 +1284,13 @@ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_type_t md_type; - psa_algorithm_t hash_alg; size_t hash_len; - unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t transcript_len; - - size_t key_len, iv_len; + size_t key_len; + size_t iv_len; mbedtls_ssl_handshake_params *handshake = ssl->handshake; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; @@ -1300,8 +1298,7 @@ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_tls13_generate_handshake_keys" ) ); - ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, - &key_len, &iv_len ); + ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); @@ -1521,7 +1518,7 @@ int mbedtls_ssl_tls13_generate_application_keys( /* Extract basic information about hash and ciphersuite */ ret = ssl_tls13_get_cipher_key_info( handshake->ciphersuite_info, - &key_len, &iv_len ); + &key_len, &iv_len ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index 81414d84f..5d9b570ac 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -671,14 +671,14 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context *ssl, /** * \brief Compute TLS 1.3 early transform * - * \param ssl The SSL context to operate on. The early secret must have been - * computed. + * \param ssl The SSL context to operate on. * * \returns \c 0 on success. * \returns A negative error code on failure. * - * \warning `early_secrets` is not computation. Caller MUST call - * mbedtls_ssl_tls13_key_schedule_stage_early() before this function. + * \warning `early_secrets` is not computed before this function. Call + * mbedtls_ssl_tls13_key_schedule_stage_early() to generate early + * secrets. */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ); From 3ce61ffca66ece6e48efb15ff674ca3329c80cc5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 21 Nov 2022 22:45:58 +0800 Subject: [PATCH 1013/1574] fix comments and function name issues Signed-off-by: Jerry Yu --- library/ssl_misc.h | 2 +- library/ssl_tls13_keys.c | 28 +++++++++++++++++----------- library/ssl_tls13_keys.h | 10 +++++++--- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 32e2b16d7..53d50f23c 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -986,7 +986,7 @@ struct mbedtls_ssl_handshake_params mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; #if defined(MBEDTLS_SSL_EARLY_DATA) mbedtls_ssl_tls13_early_secrets tls13_early_secrets; - /** TLS 1.3 transform for 0-RTT application and handshake messages. */ + /** TLS 1.3 transform for early data and handshake messages. */ mbedtls_ssl_transform *transform_earlydata; #endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 8f2a74e87..da4e5da35 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1082,11 +1082,18 @@ static int ssl_tls13_get_cipher_key_info( } #if defined(MBEDTLS_SSL_EARLY_DATA) -/* ssl_tls13_generate_early_keys() generates keys necessary for protecting the - early application and handshake messages described in section 7 RFC 8446. */ +/* + * ssl_tls13_generate_early_key() generates the key necessary for protecting + * the early application data and the EndOfEarlyData handshake message + * as described in section 7 of RFC 8446. + * + * NOTE: That only one key is generated, the key for the traffic from the + * client to the server. The TLS 1.3 specification does not define a secret + * and thus a key for server early traffic. + */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys ) +static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1104,7 +1111,7 @@ static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; mbedtls_ssl_tls13_early_secrets *tls13_early_secrets = &handshake->tls13_early_secrets; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_tls13_generate_early_keys" ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_tls13_generate_early_key" ) ); ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); if( ret != 0 ) @@ -1170,16 +1177,15 @@ static int ssl_tls13_generate_early_keys( mbedtls_ssl_context *ssl, goto exit; } - MBEDTLS_SSL_DEBUG_BUF( 5, "client_handshake write_key", + MBEDTLS_SSL_DEBUG_BUF( 4, "client early write_key", traffic_keys->client_write_key, traffic_keys->key_len); - MBEDTLS_SSL_DEBUG_BUF( 5, "client_handshake write_iv", + MBEDTLS_SSL_DEBUG_BUF( 4, "client early write_iv", traffic_keys->client_write_iv, traffic_keys->iv_len); - - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_keys" ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_key" ) ); exit: @@ -1195,10 +1201,10 @@ int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) /* Next evolution in key schedule: Establish early_data secret and * key material. */ - ret = ssl_tls13_generate_early_keys( ssl, &traffic_keys ); + ret = ssl_tls13_generate_early_key( ssl, &traffic_keys ); if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_generate_early_keys", + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_generate_early_key", ret ); goto cleanup; } diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index 5d9b570ac..fc64737cd 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -676,9 +676,13 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context *ssl, * \returns \c 0 on success. * \returns A negative error code on failure. * - * \warning `early_secrets` is not computed before this function. Call - * mbedtls_ssl_tls13_key_schedule_stage_early() to generate early - * secrets. + * \warning The function does not compute the early master secret. Call + * mbedtls_ssl_tls13_key_schedule_stage_early() before to + * call this function to generate the early master secret. + * \note For a client/server endpoint, the function computes only the + * encryption/decryption part of the transform as the decryption/ + * encryption part is not defined by the specification (no early + * traffic from the server to the client). */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ); From a8771839e835bad9d9a9a69f6a804310e1954a78 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 21 Nov 2022 23:16:54 +0800 Subject: [PATCH 1014/1574] Refactor make_traffic_keys Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 66 ++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index da4e5da35..c01da956a 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -215,6 +215,30 @@ cleanup: return( psa_ssl_status_to_mbedtls ( status ) ); } +static int ssl_tls13_make_traffic_key( + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + unsigned char *key, size_t key_len, + unsigned char *iv, size_t iv_len ) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, + secret, secret_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( key ), + NULL, 0, + key, key_len ); + if( ret != 0 ) + return( ret ); + + ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, + secret, secret_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( iv ), + NULL, 0, + iv, iv_len ); + return( ret ); +} + /* * The traffic keying material is generated from the following inputs: * @@ -240,35 +264,17 @@ int mbedtls_ssl_tls13_make_traffic_keys( { int ret = 0; - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, - client_secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( key ), - NULL, 0, - keys->client_write_key, key_len ); + ret = ssl_tls13_make_traffic_key( + hash_alg, client_secret, secret_len, + keys->client_write_key, key_len, + keys->client_write_iv, iv_len ); if( ret != 0 ) return( ret ); - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, - server_secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( key ), - NULL, 0, - keys->server_write_key, key_len ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, - client_secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( iv ), - NULL, 0, - keys->client_write_iv, iv_len ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, - server_secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( iv ), - NULL, 0, - keys->server_write_iv, iv_len ); + ret = ssl_tls13_make_traffic_key( + hash_alg, server_secret, secret_len, + keys->server_write_key, key_len, + keys->server_write_iv, iv_len ); if( ret != 0 ) return( ret ); @@ -1166,16 +1172,18 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); } - ret = mbedtls_ssl_tls13_make_traffic_keys( + ret = ssl_tls13_make_traffic_key( hash_alg, tls13_early_secrets->client_early_traffic_secret, - tls13_early_secrets->client_early_traffic_secret, - hash_len, key_len, iv_len, traffic_keys ); + hash_len, traffic_keys->client_write_key, key_len, + traffic_keys->client_write_iv, iv_len ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); goto exit; } + traffic_keys->key_len = key_len; + traffic_keys->iv_len = iv_len; MBEDTLS_SSL_DEBUG_BUF( 4, "client early write_key", traffic_keys->client_write_key, From e31688b7fa00c6f286c6f02e35b7cc92ec7459c4 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 22 Nov 2022 21:55:56 +0800 Subject: [PATCH 1015/1574] fix comments issue Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index c01da956a..57c1843e4 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1090,12 +1090,12 @@ static int ssl_tls13_get_cipher_key_info( #if defined(MBEDTLS_SSL_EARLY_DATA) /* * ssl_tls13_generate_early_key() generates the key necessary for protecting - * the early application data and the EndOfEarlyData handshake message - * as described in section 7 of RFC 8446. + * the early application data and handshake messages as described in section 7 + * of RFC 8446. * - * NOTE: That only one key is generated, the key for the traffic from the - * client to the server. The TLS 1.3 specification does not define a secret - * and thus a key for server early traffic. + * NOTE: Only one key is generated, the key for the traffic from the client to + * the server. The TLS 1.3 specification does not define a secret and thus + * a key for server early traffic. */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, From a5db6c0ce3ab6199f0a38db0138389dd63de1b76 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 23 Nov 2022 18:08:04 +0800 Subject: [PATCH 1016/1574] fix coding style issues. Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 57c1843e4..43f6ab681 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -215,6 +215,7 @@ cleanup: return( psa_ssl_status_to_mbedtls ( status ) ); } +MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_make_traffic_key( psa_algorithm_t hash_alg, const unsigned char *secret, size_t secret_len, @@ -1123,7 +1124,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); - return ret; + return( ret ); } md_type = ciphersuite_info->mac; @@ -1179,8 +1180,8 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, traffic_keys->client_write_iv, iv_len ); if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); - goto exit; + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_make_traffic_key", ret ); + return( 0 ); } traffic_keys->key_len = key_len; traffic_keys->iv_len = iv_len; @@ -1195,9 +1196,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_key" ) ); -exit: - - return( ret ); + return( 0 ); } int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) From 3d78e08ac0d05c49fb02ce6a2a1d73b9b2a1f21a Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Wed, 23 Nov 2022 18:26:20 +0800 Subject: [PATCH 1017/1574] erase early secrets and transcripts Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 43f6ab681..3d20ab730 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1124,7 +1124,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); - return( ret ); + goto cleanup; } md_type = ciphersuite_info->mac; @@ -1141,7 +1141,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_get_handshake_transcript", ret ); - return( ret ); + goto cleanup; } ret = mbedtls_ssl_tls13_derive_early_secrets( @@ -1151,7 +1151,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_derive_early_secrets", ret ); - return( ret ); + goto cleanup; } MBEDTLS_SSL_DEBUG_BUF( @@ -1181,7 +1181,7 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_make_traffic_key", ret ); - return( 0 ); + goto cleanup; } traffic_keys->key_len = key_len; traffic_keys->iv_len = iv_len; @@ -1196,7 +1196,12 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_key" ) ); - return( 0 ); +cleanup: + /* Erase secret and transcript */ + mbedtls_platform_zeroize( + tls13_early_secrets, sizeof( mbedtls_ssl_tls13_early_secrets ) ); + mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); + return( ret ); } int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) From 3861062f6bf5f27dc4e58f5e6de1a1d31572299d Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 28 Nov 2022 10:18:05 +0000 Subject: [PATCH 1018/1574] Tell cmake to get SKIP_TEST_SUITES from ENV If the variable SKIP_TEST_SUITES is not defined with -D, but is defined in an environment variable, tell cmake to get it from there. Signed-off-by: David Horstmann --- tests/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0ef6fdbc4..ae3d05459 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -107,6 +107,10 @@ endif() # the risk of a race. add_custom_target(test_suite_bignum_generated_data DEPENDS ${bignum_generated_data_files}) add_custom_target(test_suite_psa_generated_data DEPENDS ${psa_generated_data_files}) +# If SKIP_TEST_SUITES is not defined with -D, get it from the environment. +if((NOT DEFINED SKIP_TEST_SUITES) AND (DEFINED ENV{SKIP_TEST_SUITES})) + set(SKIP_TEST_SUITES $ENV{SKIP_TEST_SUITES}) +endif() # Test suites caught by SKIP_TEST_SUITES are built but not executed. # "foo" as a skip pattern skips "test_suite_foo" and "test_suite_foo.bar" # but not "test_suite_foobar". From 84bee4c49230ecd50ab6105faf696ff015f03624 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 28 Nov 2022 10:27:14 +0000 Subject: [PATCH 1019/1574] mbedtls_mpi_mod_write: improve readability Signed-off-by: Janos Follath --- library/bignum_mod.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 74af509ae..0f2d7e23a 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -230,7 +230,6 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - int conv_ret = 0; /* Do our best to check if r and m have been set up */ if( r->limbs == 0 || m->limbs == 0 ) @@ -240,21 +239,26 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) { - conv_ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); - if( conv_ret != 0 ) + ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); + if( ret != 0 ) goto cleanup; } ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen, ext_rep ); if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - conv_ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); + { + /* If this fails, the value of r is corrupted and we want to return + * this error (as opposed to the error code from the write above) to + * let the caller know. If it succeeds, we want to return the error + * code from write above. */ + int conv_ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); + if( ret == 0 ) + ret = conv_ret; + } cleanup: - if( ret == 0 ) - ret = conv_ret; - return ( ret ); } /* END MERGE SLOT 7 */ From a34d0308cc8dcd86cb974677ab920072a685793a Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 28 Nov 2022 10:11:48 +0100 Subject: [PATCH 1020/1574] test: psa_pake: fix dependency Signed-off-by: Valerio Setti --- tests/suites/test_suite_psa_crypto_pake.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_psa_crypto_pake.data b/tests/suites/test_suite_psa_crypto_pake.data index 4dd1598c2..f447ef05b 100644 --- a/tests/suites/test_suite_psa_crypto_pake.data +++ b/tests/suites/test_suite_psa_crypto_pake.data @@ -99,7 +99,7 @@ depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_ ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"abcdef":0:0:ERR_NONE PSA PAKE: check rounds w/o forced errors, TLS12_PRF -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF ecjpake_rounds:PSA_ALG_JPAKE:PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256):PSA_ALG_SHA_256:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"abcdef":0:0:ERR_NONE PSA PAKE: check rounds, key is destroyed after being passed to set_password_key From 1ac41dec09aebc2640f899a3e5d5d741337db416 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 28 Nov 2022 14:46:30 +0000 Subject: [PATCH 1021/1574] Add test function for opaque driver (simply returns PSA_ERROR_NOT_SUPPORTED), and address other review comments. Signed-off-by: Aditya Deshpande --- library/psa_crypto.c | 24 ++++++++-------- .../psa_crypto_driver_wrappers.c.jinja | 28 +++++++++++-------- tests/include/test/drivers/key_agreement.h | 20 ++++++------- tests/src/drivers/test_driver_key_agreement.c | 27 ++++++++++++++++-- ...test_suite_psa_crypto_driver_wrappers.data | 2 +- ..._suite_psa_crypto_driver_wrappers.function | 1 - 6 files changed, 65 insertions(+), 37 deletions(-) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index b41307e94..fe0eaa6f4 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5738,11 +5738,11 @@ psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attribut #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) case PSA_ALG_ECDH: return( mbedtls_psa_key_agreement_ecdh( attributes, key_buffer, - key_buffer_size, alg, - peer_key, peer_key_length, - shared_secret, - shared_secret_size, - shared_secret_length ) ); + key_buffer_size, alg, + peer_key, peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ) ); #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ default: (void) attributes; @@ -5771,18 +5771,20 @@ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, size_t shared_secret_size, size_t *shared_secret_length ) { - if( !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg) ) + if( !PSA_ALG_IS_RAW_KEY_AGREEMENT( alg ) ) return( PSA_ERROR_NOT_SUPPORTED ); psa_key_attributes_t attributes = { .core = private_key->attr }; - return( psa_driver_wrapper_key_agreement( &attributes, private_key->key.data, - private_key->key.bytes, - alg, peer_key, peer_key_length, - shared_secret, shared_secret_size, - shared_secret_length ) ); + return( psa_driver_wrapper_key_agreement( &attributes, + private_key->key.data, + private_key->key.bytes, alg, + peer_key, peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ) ); } /* Note that if this function fails, you must call psa_key_derivation_abort() diff --git a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja index 75ac6aa4d..3ad92aaef 100644 --- a/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja +++ b/scripts/data_files/driver_templates/psa_crypto_driver_wrappers.c.jinja @@ -2497,22 +2497,17 @@ psa_status_t psa_driver_wrapper_key_agreement( case PSA_KEY_LOCATION_LOCAL_STORAGE: /* Key is stored in the slot in export representation, so * cycle through all known transparent accelerators */ - #if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - #if defined(PSA_CRYPTO_DRIVER_TEST) +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) status = mbedtls_test_transparent_key_agreement( attributes, - key_buffer, - key_buffer_size, - alg, - peer_key, - peer_key_length, - shared_secret, - shared_secret_size, - shared_secret_length ); + key_buffer, key_buffer_size, alg, peer_key, + peer_key_length, shared_secret, shared_secret_size, + shared_secret_length ); if( status != PSA_ERROR_NOT_SUPPORTED ) return( status ); - #endif /* PSA_CRYPTO_DRIVER_TEST */ - #endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ /* Software Fallback */ status = psa_key_agreement_raw_builtin( attributes, @@ -2525,6 +2520,15 @@ psa_status_t psa_driver_wrapper_key_agreement( shared_secret_size, shared_secret_length ); return( status ); +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_key_agreement( attributes, + key_buffer, key_buffer_size, alg, peer_key, + peer_key_length, shared_secret, shared_secret_size, + shared_secret_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ default: (void) attributes; diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h index ec6515982..8f28cefda 100644 --- a/tests/include/test/drivers/key_agreement.h +++ b/tests/include/test/drivers/key_agreement.h @@ -59,16 +59,16 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t shared_secret_size, size_t *shared_secret_length ); -// psa_status_t mbedtls_test_opaque_key_agreement( -// 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 mbedtls_test_opaque_key_agreement( + 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 ); #endif /*PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 51301f8f0..3552f48f7 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -69,8 +69,8 @@ psa_status_t mbedtls_test_transparent_key_agreement( if( PSA_ALG_IS_ECDH(alg) ) { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - (LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDH) +#if (defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDH)) return( libtestdriver1_mbedtls_psa_key_agreement_ecdh( (const libtestdriver1_psa_key_attributes_t *) attributes, key_buffer, key_buffer_size, @@ -103,4 +103,27 @@ psa_status_t mbedtls_test_transparent_key_agreement( } +psa_status_t mbedtls_test_opaque_key_agreement( + 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 ) +{ + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + (void) peer_key; + (void) peer_key_length; + (void) shared_secret; + (void) shared_secret_size; + (void) shared_secret_length; + return( PSA_ERROR_NOT_SUPPORTED ); +} + #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.data b/tests/suites/test_suite_psa_crypto_driver_wrappers.data index 74b74da92..6069a696c 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.data +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.data @@ -308,7 +308,7 @@ depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:P key_agreement:PSA_ALG_ECDH:PSA_SUCCESS:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"":PSA_SUCCESS raw key agreement through driver: fallback -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_ECDH key_agreement:PSA_ALG_ECDH:PSA_ERROR_NOT_SUPPORTED:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":"04d12dfb5289c8d4f81208b70270398c342296970a0bccb74c736fc7554494bf6356fbf3ca366cc23e8157854c13c58d6aac23f046ada30f8353e74f33039872ab":"d6840f6b42f6edafd13116e0e12565202fef8e9ece7dce03812464d04b9442de":"":PSA_SUCCESS raw key agreement through driver: error diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.function b/tests/suites/test_suite_psa_crypto_driver_wrappers.function index 7fa3c947e..5f38614e8 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.function +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.function @@ -626,7 +626,6 @@ exit: PSA_DONE( ); mbedtls_test_driver_key_agreement_hooks = mbedtls_test_driver_key_agreement_hooks_init(); - } /* END_CASE */ From 1f8afa22a4312f94de639fe3f38bec0da062e316 Mon Sep 17 00:00:00 2001 From: Janos Follath Date: Mon, 28 Nov 2022 14:32:33 +0000 Subject: [PATCH 1022/1574] Bignum Mod: improve documentation and style Signed-off-by: Janos Follath --- library/bignum_mod.c | 1 - library/bignum_mod.h | 19 ++++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 0f2d7e23a..7a5539d8d 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -203,7 +203,6 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - /* Do our best to check if r and m have been set up */ if( r->limbs == 0 || m->limbs == 0 ) goto cleanup; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index ae486b9b6..d92f21ee0 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -189,10 +189,10 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); * equivalent to \p m (in the sense that all their fields or memory pointed by * their fields hold the same value). * - * \param r The address of the residue. It must have exactly the same + * \param[out] r The address of the residue. It must have exactly the same * number of limbs as the modulus \p m. - * \param m The address of the modulus. - * \param buf The input buffer to import from. + * \param[in] m The address of the modulus. + * \param[in] buf The input buffer to import from. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness of the number in the input buffer. * @@ -221,10 +221,12 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * secret, the caller must ensure that \p buflen is at least * (`m->bits`+7)/8. * - * \param r The address of the residue. It must have as many limbs as - * the modulus \p m. - * \param m The address of the modulus associated with \r. - * \param buf The output buffer to export to. + * \param[in] r The address of the residue. It must have the same number of + * limbs as the modulus \p m. (\p r is an input parameter, but + * its value will be modified during execution and restored + * before the function returns.) + * \param[in] m The address of the modulus associated with \r. + * \param[out] buf The output buffer to export to. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness in which the number should be written into * the output buffer. @@ -234,6 +236,9 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * large enough to hold the value of \p r (without leading * zeroes). * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep is invalid. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if couldn't allocate enough + * memory for conversion. Can occur only for moduli with + * MBEDTLS_MPI_MOD_REP_MONTGOMERY. */ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *m, From a360e1987aa369ff6f58b534fcbd09c932c07907 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:44:05 +0000 Subject: [PATCH 1023/1574] Add efficent unaligned get/put functions Signed-off-by: Dave Rodgman --- library/alignment.h | 52 +++++++++++++++++++++++++++++++++++++++++ library/platform_util.c | 8 +++++++ 2 files changed, 60 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index de1ab9148..3539c9175 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -28,6 +28,32 @@ #include "mbedtls/build_info.h" +/** + * Read the unsigned 16 bits integer from the given address, which need not + * be aligned. + * + * \param p pointer to 2 bytes of data + * \return Data at the given address + */ +inline uint16_t mbedtls_get_unaligned_uint16( const void *p ) +{ + uint16_t r; + memcpy( &r, p, sizeof( r ) ); + return r; +} + +/** + * Write the unsigned 16 bits integer to the given address, which need not + * be aligned. + * + * \param p pointer to 2 bytes of data + * \param x data to write + */ +inline void mbedtls_put_unaligned_uint16( void *p, uint16_t x ) +{ + memcpy( p, &x, sizeof( x ) ); +} + /** * Read the unsigned 32 bits integer from the given address, which need not * be aligned. @@ -54,6 +80,32 @@ inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) memcpy( p, &x, sizeof( x ) ); } +/** + * Read the unsigned 64 bits integer from the given address, which need not + * be aligned. + * + * \param p pointer to 8 bytes of data + * \return Data at the given address + */ +inline uint64_t mbedtls_get_unaligned_uint64( const void *p ) +{ + uint64_t r; + memcpy( &r, p, sizeof( r ) ); + return r; +} + +/** + * Write the unsigned 64 bits integer to the given address, which need not + * be aligned. + * + * \param p pointer to 8 bytes of data + * \param x data to write + */ +inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) +{ + memcpy( p, &x, sizeof( x ) ); +} + /** Byte Reading Macros * * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th diff --git a/library/platform_util.c b/library/platform_util.c index 9c18dd502..2b674f62e 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -149,6 +149,14 @@ void (*mbedtls_test_hook_test_fail)( const char *, int, const char *); */ extern inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n ); +extern inline uint16_t mbedtls_get_unaligned_uint16( const void *p ); + +extern inline void mbedtls_put_unaligned_uint16( void *p, uint16_t x ); + extern inline uint32_t mbedtls_get_unaligned_uint32( const void *p ); extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); + +extern inline uint64_t mbedtls_get_unaligned_uint64( const void *p ); + +extern inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ); From e5c42594e552173692ca0f4fb3abab821e5e7434 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:47:46 +0000 Subject: [PATCH 1024/1574] Add byte order detection macro Signed-off-by: Dave Rodgman --- library/alignment.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index 3539c9175..3f8926e29 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -120,6 +120,13 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) #define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) #define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) +#if !defined(__BYTE_ORDER__) +static const uint16_t mbedtls_byte_order_detector = { 0x100 }; +#define MBEDTLS_IS_BIG_ENDIAN (*((unsigned char *) (&mbedtls_byte_order_detector)) == 0x01) +#else +#define MBEDTLS_IS_BIG_ENDIAN ((__BYTE_ORDER__) == (__ORDER_BIG_ENDIAN__)) +#endif /* !defined(__BYTE_ORDER__) */ + /** * Get the unsigned 32 bits integer corresponding to four bytes in * big-endian order (MSB first). From 6298b24127cf4df20ff24890b9ab0d0a6253e70c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:51:49 +0000 Subject: [PATCH 1025/1574] Add byteswap routines Signed-off-by: Dave Rodgman --- library/alignment.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index 3f8926e29..3d38946d4 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -120,6 +120,35 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) #define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) #define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) +static inline uint16_t mbedtls_bswap16( uint16_t x ) { + return + ( x & 0x00ff ) << 8 | + ( x & 0xff00 ) >> 8; +} +#define MBEDTLS_BSWAP16 mbedtls_bswap16 + +static inline uint32_t mbedtls_bswap32( uint32_t x ) { + return + ( x & 0x000000ff ) << 24 | + ( x & 0x0000ff00 ) << 8 | + ( x & 0x00ff0000 ) >> 8 | + ( x & 0xff000000 ) >> 24; +} +#define MBEDTLS_BSWAP32 mbedtls_bswap32 + +static inline uint64_t mbedtls_bswap64( uint64_t x ) { + return + ( x & 0x00000000000000ff ) << 56 | + ( x & 0x000000000000ff00 ) << 40 | + ( x & 0x0000000000ff0000 ) << 24 | + ( x & 0x00000000ff000000 ) << 8 | + ( x & 0x000000ff00000000 ) >> 8 | + ( x & 0x0000ff0000000000 ) >> 24 | + ( x & 0x00ff000000000000 ) >> 40 | + ( x & 0xff00000000000000 ) >> 56; +} +#define MBEDTLS_BSWAP64 mbedtls_bswap64 + #if !defined(__BYTE_ORDER__) static const uint16_t mbedtls_byte_order_detector = { 0x100 }; #define MBEDTLS_IS_BIG_ENDIAN (*((unsigned char *) (&mbedtls_byte_order_detector)) == 0x01) From a5110b0d79c094b2a1e99e298930a9d8df22c874 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:48:45 +0000 Subject: [PATCH 1026/1574] Make use of efficient unaligned access functions Signed-off-by: Dave Rodgman --- library/alignment.h | 197 +++++++++++++++++++------------------------- 1 file changed, 85 insertions(+), 112 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index 3d38946d4..7638f9438 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -165,15 +165,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the four bytes to build the 32 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT32_BE -#define MBEDTLS_GET_UINT32_BE( data , offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] << 24 ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 3] ) \ +#define MBEDTLS_GET_UINT32_BE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? mbedtls_get_unaligned_uint32((data) + (offset)) \ + : MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \ ) -#endif /** * Put in memory a 32 bits unsigned integer in big-endian order. @@ -184,15 +180,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 32 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT32_BE -#define MBEDTLS_PUT_UINT32_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_0( n ); \ +#define MBEDTLS_PUT_UINT32_BE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), (uint32_t)(n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t)(n))); \ + } \ } -#endif /** * Get the unsigned 32 bits integer corresponding to four bytes in @@ -203,15 +201,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the four bytes to build the 32 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT32_LE -#define MBEDTLS_GET_UINT32_LE( data, offset ) \ - ( \ - ( (uint32_t) ( data )[( offset ) ] ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 3] << 24 ) \ +#define MBEDTLS_GET_UINT32_LE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \ + : mbedtls_get_unaligned_uint32((data) + (offset)) \ ) -#endif + /** * Put in memory a 32 bits unsigned integer in little-endian order. @@ -222,15 +217,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 32 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT32_LE -#define MBEDTLS_PUT_UINT32_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ +#define MBEDTLS_PUT_UINT32_LE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t)(n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), ((uint32_t)(n))); \ + } \ } -#endif /** * Get the unsigned 16 bits integer corresponding to two bytes in @@ -241,13 +238,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the two bytes to build the 16 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT16_LE -#define MBEDTLS_GET_UINT16_LE( data, offset ) \ - ( \ - ( (uint16_t) ( data )[( offset ) ] ) \ - | ( (uint16_t) ( data )[( offset ) + 1] << 8 ) \ +#define MBEDTLS_GET_UINT16_LE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \ + : mbedtls_get_unaligned_uint16((data) + (offset)) \ ) -#endif /** * Put in memory a 16 bits unsigned integer in little-endian order. @@ -258,13 +253,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 16 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT16_LE -#define MBEDTLS_PUT_UINT16_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ +#define MBEDTLS_PUT_UINT16_LE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t)(n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t)(n)); \ + } \ } -#endif /** * Get the unsigned 16 bits integer corresponding to two bytes in @@ -275,13 +274,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the two bytes to build the 16 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT16_BE -#define MBEDTLS_GET_UINT16_BE( data, offset ) \ - ( \ - ( (uint16_t) ( data )[( offset ) ] << 8 ) \ - | ( (uint16_t) ( data )[( offset ) + 1] ) \ +#define MBEDTLS_GET_UINT16_BE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? mbedtls_get_unaligned_uint16((data) + (offset)) \ + : MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \ ) -#endif /** * Put in memory a 16 bits unsigned integer in big-endian order. @@ -292,13 +289,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 16 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT16_BE -#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_0( n ); \ +#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t)(n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t)(n))); \ + } \ } -#endif /** * Get the unsigned 24 bits integer corresponding to three bytes in @@ -309,14 +310,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the three bytes to build the 24 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT24_BE #define MBEDTLS_GET_UINT24_BE( data , offset ) \ ( \ ( (uint32_t) ( data )[( offset ) ] << 16 ) \ | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ | ( (uint32_t) ( data )[( offset ) + 2] ) \ ) -#endif /** * Put in memory a 24 bits unsigned integer in big-endian order. @@ -327,14 +326,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 24 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT24_BE #define MBEDTLS_PUT_UINT24_BE( n, data, offset ) \ { \ ( data )[( offset ) ] = MBEDTLS_BYTE_2( n ); \ ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ ( data )[( offset ) + 2] = MBEDTLS_BYTE_0( n ); \ } -#endif /** * Get the unsigned 24 bits integer corresponding to three bytes in @@ -345,14 +342,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the three bytes to build the 24 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT24_LE #define MBEDTLS_GET_UINT24_LE( data, offset ) \ ( \ ( (uint32_t) ( data )[( offset ) ] ) \ | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ ) -#endif /** * Put in memory a 24 bits unsigned integer in little-endian order. @@ -363,14 +358,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 24 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT24_LE #define MBEDTLS_PUT_UINT24_LE( n, data, offset ) \ { \ ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ } -#endif /** * Get the unsigned 64 bits integer corresponding to eight bytes in @@ -381,19 +374,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the eight bytes to build the 64 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT64_BE -#define MBEDTLS_GET_UINT64_BE( data, offset ) \ - ( \ - ( (uint64_t) ( data )[( offset ) ] << 56 ) \ - | ( (uint64_t) ( data )[( offset ) + 1] << 48 ) \ - | ( (uint64_t) ( data )[( offset ) + 2] << 40 ) \ - | ( (uint64_t) ( data )[( offset ) + 3] << 32 ) \ - | ( (uint64_t) ( data )[( offset ) + 4] << 24 ) \ - | ( (uint64_t) ( data )[( offset ) + 5] << 16 ) \ - | ( (uint64_t) ( data )[( offset ) + 6] << 8 ) \ - | ( (uint64_t) ( data )[( offset ) + 7] ) \ +#define MBEDTLS_GET_UINT64_BE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? mbedtls_get_unaligned_uint64((data) + (offset)) \ + : MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \ ) -#endif /** * Put in memory a 64 bits unsigned integer in big-endian order. @@ -404,19 +389,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 64 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT64_BE -#define MBEDTLS_PUT_UINT64_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_7( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_6( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_5( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_4( n ); \ - ( data )[( offset ) + 4] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 5] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 6] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 7] = MBEDTLS_BYTE_0( n ); \ +#define MBEDTLS_PUT_UINT64_BE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t)(n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t)(n))); \ + } \ } -#endif /** * Get the unsigned 64 bits integer corresponding to eight bytes in @@ -427,19 +410,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the eight bytes to build the 64 bits unsigned * integer from. */ -#ifndef MBEDTLS_GET_UINT64_LE -#define MBEDTLS_GET_UINT64_LE( data, offset ) \ - ( \ - ( (uint64_t) ( data )[( offset ) + 7] << 56 ) \ - | ( (uint64_t) ( data )[( offset ) + 6] << 48 ) \ - | ( (uint64_t) ( data )[( offset ) + 5] << 40 ) \ - | ( (uint64_t) ( data )[( offset ) + 4] << 32 ) \ - | ( (uint64_t) ( data )[( offset ) + 3] << 24 ) \ - | ( (uint64_t) ( data )[( offset ) + 2] << 16 ) \ - | ( (uint64_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint64_t) ( data )[( offset ) ] ) \ +#define MBEDTLS_GET_UINT64_LE( data, offset ) \ + ( ( MBEDTLS_IS_BIG_ENDIAN ) \ + ? MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \ + : mbedtls_get_unaligned_uint64((data) + (offset)) \ ) -#endif /** * Put in memory a 64 bits unsigned integer in little-endian order. @@ -450,18 +425,16 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 64 bits unsigned integer \p n. */ -#ifndef MBEDTLS_PUT_UINT64_LE -#define MBEDTLS_PUT_UINT64_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 3] = MBEDTLS_BYTE_3( n ); \ - ( data )[( offset ) + 4] = MBEDTLS_BYTE_4( n ); \ - ( data )[( offset ) + 5] = MBEDTLS_BYTE_5( n ); \ - ( data )[( offset ) + 6] = MBEDTLS_BYTE_6( n ); \ - ( data )[( offset ) + 7] = MBEDTLS_BYTE_7( n ); \ +#define MBEDTLS_PUT_UINT64_LE( n, data, offset ) \ +{ \ + if ( MBEDTLS_IS_BIG_ENDIAN ) \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t)(n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t)(n)); \ + } \ } -#endif #endif /* MBEDTLS_LIBRARY_ALIGNMENT_H */ From f7f1f748e3059a0c5e23acab891b08ab0e78771a Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:52:45 +0000 Subject: [PATCH 1027/1574] Support built-in byteswap routines from clang, gcc, MSVC Signed-off-by: Dave Rodgman --- library/alignment.h | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index 7638f9438..86e78217b 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -25,6 +25,7 @@ #include #include +#include #include "mbedtls/build_info.h" @@ -120,13 +121,58 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) #define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) #define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) +/* + * Detect GCC built-in byteswap routines + */ +#if defined(__GNUC__) && defined(__GNUC_PREREQ) +#if __GNUC_PREREQ(4,8) +#define MBEDTLS_BSWAP16 __builtin_bswap16 +#endif /* __GNUC_PREREQ(4,8) */ +#if __GNUC_PREREQ(4,3) +#define MBEDTLS_BSWAP32 __builtin_bswap32 +#define MBEDTLS_BSWAP64 __builtin_bswap64 +#endif /* __GNUC_PREREQ(4,3) */ +#endif /* defined(__GNUC__) && defined(__GNUC_PREREQ) */ + +/* + * Detect Clang built-in byteswap routines + */ +#if defined(__clang__) && defined(__has_builtin) +#if __has_builtin(__builtin_bswap16) +#define MBEDTLS_BSWAP16 __builtin_bswap16 +#endif /* __has_builtin(__builtin_bswap16) */ +#if __has_builtin(__builtin_bswap32) +#define MBEDTLS_BSWAP32 __builtin_bswap32 +#endif /* __has_builtin(__builtin_bswap32) */ +#if __has_builtin(__builtin_bswap64) +#define MBEDTLS_BSWAP64 __builtin_bswap64 +#endif /* __has_builtin(__builtin_bswap64) */ +#endif /* defined(__clang__) && defined(__has_builtin) */ + +/* + * Detect MSVC built-in byteswap routines + */ +#if defined(_MSC_VER) +#define MBEDTLS_BSWAP16 _byteswap_ushort +#define MBEDTLS_BSWAP32 _byteswap_ulong +#define MBEDTLS_BSWAP64 _byteswap_uint64 +#endif /* defined(_MSC_VER) */ + +/* + * Where compiler built-ins are not present, fall back to C code that the + * compiler may be able to detect and transform into the relevant bswap or + * similar instruction. + */ +#if !defined(MBEDTLS_BSWAP16) static inline uint16_t mbedtls_bswap16( uint16_t x ) { return ( x & 0x00ff ) << 8 | ( x & 0xff00 ) >> 8; } #define MBEDTLS_BSWAP16 mbedtls_bswap16 +#endif /* !defined(MBEDTLS_BSWAP16) */ +#if !defined(MBEDTLS_BSWAP32) static inline uint32_t mbedtls_bswap32( uint32_t x ) { return ( x & 0x000000ff ) << 24 | @@ -135,7 +181,9 @@ static inline uint32_t mbedtls_bswap32( uint32_t x ) { ( x & 0xff000000 ) >> 24; } #define MBEDTLS_BSWAP32 mbedtls_bswap32 +#endif /* !defined(MBEDTLS_BSWAP32) */ +#if !defined(MBEDTLS_BSWAP64) static inline uint64_t mbedtls_bswap64( uint64_t x ) { return ( x & 0x00000000000000ff ) << 56 | @@ -148,6 +196,7 @@ static inline uint64_t mbedtls_bswap64( uint64_t x ) { ( x & 0xff00000000000000 ) >> 56; } #define MBEDTLS_BSWAP64 mbedtls_bswap64 +#endif /* !defined(MBEDTLS_BSWAP64) */ #if !defined(__BYTE_ORDER__) static const uint16_t mbedtls_byte_order_detector = { 0x100 }; From 6d23ff60dd2b16ac18bd8020006b7d1c1708604c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 28 Nov 2022 14:38:53 +0000 Subject: [PATCH 1028/1574] Make use of optimised bswap from bignum Signed-off-by: Dave Rodgman --- library/bignum_core.c | 52 +++++++++++++------------------------------ 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 41d323968..e3451aeda 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -83,45 +83,25 @@ static mbedtls_mpi_uint mpi_bigendian_to_host_c( mbedtls_mpi_uint a ) static mbedtls_mpi_uint mpi_bigendian_to_host( mbedtls_mpi_uint a ) { -#if defined(__BYTE_ORDER__) - -/* Nothing to do on bigendian systems. */ -#if ( __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ) - return( a ); -#endif /* __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ */ - -#if ( __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ) - -/* For GCC and Clang, have builtins for byte swapping. */ -#if defined(__GNUC__) && defined(__GNUC_PREREQ) -#if __GNUC_PREREQ(4,3) -#define have_bswap -#endif -#endif - -#if defined(__clang__) && defined(__has_builtin) -#if __has_builtin(__builtin_bswap32) && \ - __has_builtin(__builtin_bswap64) -#define have_bswap -#endif -#endif - -#if defined(have_bswap) - /* The compiler is hopefully able to statically evaluate this! */ - switch( sizeof(mbedtls_mpi_uint) ) + if ( MBEDTLS_IS_BIG_ENDIAN ) { - case 4: - return( __builtin_bswap32(a) ); - case 8: - return( __builtin_bswap64(a) ); + /* Nothing to do on bigendian systems. */ + return( a ); } -#endif -#endif /* __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ -#endif /* __BYTE_ORDER__ */ + else + { + switch( sizeof(mbedtls_mpi_uint) ) + { + case 4: + return (mbedtls_mpi_uint) MBEDTLS_BSWAP32( (uint32_t)a ); + case 8: + return (mbedtls_mpi_uint) MBEDTLS_BSWAP64( (uint64_t)a ); + } - /* Fall back to C-based reordering if we don't know the byte order - * or we couldn't use a compiler-specific builtin. */ - return( mpi_bigendian_to_host_c( a ) ); + /* Fall back to C-based reordering if we don't know the byte order + * or we couldn't use a compiler-specific builtin. */ + return( mpi_bigendian_to_host_c( a ) ); + } } void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, From a9a97dca63be6946c63ef27a9381514ce64d0c47 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 28 Nov 2022 18:26:16 +0100 Subject: [PATCH 1029/1574] psa_pake: add support for opaque password Signed-off-by: Valerio Setti --- include/mbedtls/ssl.h | 20 ++++++++++++++++ library/ssl_tls.c | 55 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index ea5866108..575520825 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -3860,6 +3860,26 @@ void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, const unsigned char *pw, size_t pw_len ); + +/** + * \brief Set the EC J-PAKE opaque password for current handshake. + * + * \note An internal copy is made, and destroyed as soon as the + * handshake is completed, or when the SSL context is reset or + * freed. + * + * \note The SSL context needs to be already set up. The right place + * to call this function is between \c mbedtls_ssl_setup() or + * \c mbedtls_ssl_reset() and \c mbedtls_ssl_handshake(). + * Password cannot be empty (see RFC 8236). + * + * \param ssl SSL context + * \param pwd EC J-PAKE opaque password + * + * \return 0 on success, or a negative error code. + */ +int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd ); #endif /*MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 3d3491bc6..f1d286c7d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1921,6 +1921,61 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, return( 0 ); } + +int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd ) +{ + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + psa_pake_role_t psa_role; + psa_status_t status; + + if( ssl->handshake == NULL || ssl->conf == NULL ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + + if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + psa_role = PSA_PAKE_ROLE_SERVER; + else + psa_role = PSA_PAKE_ROLE_CLIENT; + + if( mbedtls_svc_key_id_is_null( pwd ) ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ssl->handshake->psa_pake_password = pwd; + + psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); + psa_pake_cs_set_primitive( &cipher_suite, + PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, + PSA_ECC_FAMILY_SECP_R1, + 256) ); + psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); + + status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, + ssl->handshake->psa_pake_password ); + if( status != PSA_SUCCESS ) + { + psa_destroy_key( ssl->handshake->psa_pake_password ); + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + } + + ssl->handshake->psa_pake_ctx_is_ok = 1; + + return( 0 ); +} #else /* MBEDTLS_USE_PSA_CRYPTO */ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, const unsigned char *pw, From a13f5eb7b840cc0d0472eebf5e7c224c8bbf8ec2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 28 Nov 2022 21:30:04 +0100 Subject: [PATCH 1030/1574] Add missing dependency for the fuzzer-constructed test data Signed-off-by: Gilles Peskine --- tests/suites/test_suite_pkcs7.data | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index c329a771e..f3cbb628f 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -63,9 +63,11 @@ depends_on:MBEDTLS_SHA256_C pkcs7_parse:"data_files/pkcs7_signerInfo_serial_invalid_size.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO pkcs7_get_signers_info_set error handling (6213931373035520) +depends_on:MBEDTLS_RIPEMD160_C pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG pkcs7_get_signers_info_set error handling (4541044530479104) +depends_on:MBEDTLS_RIPEMD160_C pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG PKCS7 Only Signed Data Parse Pass #15 From aec08b3f42ac3d21f2134c4e0ce243e05cde3db0 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 29 Nov 2022 15:19:27 +0800 Subject: [PATCH 1031/1574] fix various format issues Signed-off-by: Jerry Yu --- library/ssl_tls13_keys.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 3d20ab730..cef61449b 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -224,7 +224,8 @@ static int ssl_tls13_make_traffic_key( { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, + ret = mbedtls_ssl_tls13_hkdf_expand_label( + hash_alg, secret, secret_len, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( key ), NULL, 0, @@ -232,7 +233,8 @@ static int ssl_tls13_make_traffic_key( if( ret != 0 ) return( ret ); - ret = mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, + ret = mbedtls_ssl_tls13_hkdf_expand_label( + hash_alg, secret, secret_len, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( iv ), NULL, 0, @@ -1103,16 +1105,13 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_type_t md_type; - psa_algorithm_t hash_alg; size_t hash_len; - unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t transcript_len; - - size_t key_len, iv_len; + size_t key_len; + size_t iv_len; mbedtls_ssl_handshake_params *handshake = ssl->handshake; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; From 66f09834ea5ee7ec883f72a0a15d8dfbb131334e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 28 Nov 2022 13:12:10 +0100 Subject: [PATCH 1032/1574] Enable optimisation with Asan with make in all.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All builds using ASAN_CFLAGS were with Asan but no optimisation, making them particularly slow. Indeed, we were overwriting CFLAGS which defaults to -O2 and not using any -O in the replacement. (CMake already has optimisations on with ASan.) While at it, also remove -Wall -Wextra which are redundant as they are already part of WARNING_CFLAGS which we are not overwriting. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b43f999d8..f72fe5282 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -185,7 +185,7 @@ pre_initialize_variables () { export CTEST_OUTPUT_ON_FAILURE=1 # CFLAGS and LDFLAGS for Asan builds that don't use CMake - ASAN_CFLAGS='-Werror -Wall -Wextra -fsanitize=address,undefined -fno-sanitize-recover=all' + ASAN_CFLAGS='-O2 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' # Gather the list of available components. These are the functions # defined in this script whose name starts with "component_". From 37d41c79b8c0420df9fd941f995609d0b3dca0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 29 Nov 2022 09:39:16 +0100 Subject: [PATCH 1033/1574] Add ChangeLog entry for DTLS Connection ID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/dtls-connection-id.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 ChangeLog.d/dtls-connection-id.txt diff --git a/ChangeLog.d/dtls-connection-id.txt b/ChangeLog.d/dtls-connection-id.txt new file mode 100644 index 000000000..eb9e216c4 --- /dev/null +++ b/ChangeLog.d/dtls-connection-id.txt @@ -0,0 +1,16 @@ +Features + * Add support for DTLS Connection ID as defined by RFC 9146, controlled by + MBEDTLS_SSL_DTLS_CONNECTION_ID (enabled by default) and configured with + mbedtls_ssl_set_cid(). + +Changes + * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 + of the draft, and was marked experimental and disabled by default. It is + now no longer experimental, and implements the final version from RFC 9146, + which is not interoperable with the draft-05 version. If you need to + communicate with peers that use earlier versions of Mbed TLS, you + need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT to 1, but then you + won't be able to communicate with peers that use the standard (non-draft) + version. If you need to interoperate with both classes of peers with the + same build of Mbed TLS, please let us know about your situation on the + mailing list or GitHub. From d572a82df98fab426957f7e17a13cc5837f54180 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 28 Nov 2022 18:27:51 +0100 Subject: [PATCH 1034/1574] tls: psa_pake: add test for opaque password Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 63 ++++++++++++++++++++++++++++++++----- programs/ssl/ssl_server2.c | 64 +++++++++++++++++++++++++++++++++----- tests/ssl-opt.sh | 18 +++++++++++ 3 files changed, 129 insertions(+), 16 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 6aa295d66..5c3af2c2f 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -68,6 +68,7 @@ int main( void ) #define DFL_PSK_OPAQUE 0 #define DFL_PSK_IDENTITY "Client_identity" #define DFL_ECJPAKE_PW NULL +#define DFL_ECJPAKE_PW_OPAQUE 0 #define DFL_EC_MAX_OPS -1 #define DFL_FORCE_CIPHER 0 #define DFL_TLS1_3_KEX_MODES MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL @@ -319,7 +320,8 @@ int main( void ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #define USAGE_ECJPAKE \ - " ecjpake_pw=%%s default: none (disabled)\n" + " ecjpake_pw=%%s default: none (disabled)\n" \ + " ecjpake_pw_opaque=%%d default: 0 (disabled)\n" #else #define USAGE_ECJPAKE "" #endif @@ -492,6 +494,7 @@ struct options const char *psk; /* the pre-shared key */ const char *psk_identity; /* the pre-shared key identity */ const char *ecjpake_pw; /* the EC J-PAKE password */ + int ecjpake_pw_opaque; /* set to 1 to use the opaque method for setting the password */ int ec_max_ops; /* EC consecutive operations limit */ int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -824,6 +827,10 @@ int main( int argc, char *argv[] ) MBEDTLS_TLS_SRTP_UNSET }; #endif /* MBEDTLS_SSL_DTLS_SRTP */ +#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ + defined( MBEDTLS_USE_PSA_CRYPTO ) + mbedtls_svc_key_id_t ecjpake_pw_slot = MBEDTLS_SVC_KEY_ID_INIT; /* ecjpake password key slot */ +#endif // MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); @@ -919,6 +926,7 @@ int main( int argc, char *argv[] ) #endif opt.psk_identity = DFL_PSK_IDENTITY; opt.ecjpake_pw = DFL_ECJPAKE_PW; + opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; opt.ec_max_ops = DFL_EC_MAX_OPS; opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -1094,6 +1102,8 @@ int main( int argc, char *argv[] ) opt.psk_identity = q; else if( strcmp( p, "ecjpake_pw" ) == 0 ) opt.ecjpake_pw = q; + else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) + opt.ecjpake_pw_opaque = atoi( q ); else if( strcmp( p, "ec_max_ops" ) == 0 ) opt.ec_max_ops = atoi( q ); else if( strcmp( p, "force_ciphersuite" ) == 0 ) @@ -2166,16 +2176,45 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) { - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ) ) ) != 0 ) +#if defined( MBEDTLS_USE_PSA_CRIPTO ) + if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", - ret ); - goto exit; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + + status = psa_import_key( &attributes, + (const unsigned char *) opt.ecjpake_pw, + strlen( opt.ecjpake_pw ), + &ecjpake_pw_slot ); + if( status != PSA_SUCCESS ) + { + mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n", + status ); + goto exit; + } + if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, + ecjpake_pw_slot ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); + goto exit; + } + } + else +#endif // MBEDTLS_USE_PSA_CRIPTO + { + if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, + (const unsigned char *) opt.ecjpake_pw, + strlen( opt.ecjpake_pw ) ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret ); + goto exit; + } } } -#endif +#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) @@ -3276,6 +3315,14 @@ exit: #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ +#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ + defined( MBEDTLS_USE_PSA_CRYPTO ) + if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) + { + psa_destroy_key( ecjpake_pw_slot ); + } +#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO + #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) const char* message = mbedtls_test_helper_is_psa_leaking(); if( message ) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1b4a94ab0..8e1aaf351 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -98,6 +98,7 @@ int main( void ) #define DFL_PSK_LIST_OPAQUE 0 #define DFL_PSK_IDENTITY "Client_identity" #define DFL_ECJPAKE_PW NULL +#define DFL_ECJPAKE_PW_OPAQUE 0 #define DFL_PSK_LIST NULL #define DFL_FORCE_CIPHER 0 #define DFL_TLS1_3_KEX_MODES MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL @@ -419,7 +420,8 @@ int main( void ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #define USAGE_ECJPAKE \ - " ecjpake_pw=%%s default: none (disabled)\n" + " ecjpake_pw=%%s default: none (disabled)\n" \ + " ecjpake_pw_opaque=%%d default: 0 (disabled)\n" #else #define USAGE_ECJPAKE "" #endif @@ -621,6 +623,7 @@ struct options const char *psk_identity; /* the pre-shared key identity */ char *psk_list; /* list of PSK id/key pairs for callback */ const char *ecjpake_pw; /* the EC J-PAKE password */ + int ecjpake_pw_opaque; /* set to 1 to use the opaque method for setting the password */ int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) int tls13_kex_modes; /* supported TLS 1.3 key exchange modes */ @@ -1506,6 +1509,10 @@ int main( int argc, char *argv[] ) unsigned char *context_buf = NULL; size_t context_buf_len = 0; #endif +#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ + defined( MBEDTLS_USE_PSA_CRYPTO ) + mbedtls_svc_key_id_t ecjpake_pw_slot = MBEDTLS_SVC_KEY_ID_INIT; /* ecjpake password key slot */ +#endif // MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; @@ -1661,6 +1668,7 @@ int main( int argc, char *argv[] ) opt.psk_identity = DFL_PSK_IDENTITY; opt.psk_list = DFL_PSK_LIST; opt.ecjpake_pw = DFL_ECJPAKE_PW; + opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES; @@ -1864,6 +1872,8 @@ int main( int argc, char *argv[] ) opt.psk_list = q; else if( strcmp( p, "ecjpake_pw" ) == 0 ) opt.ecjpake_pw = q; + else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) + opt.ecjpake_pw_opaque = atoi( q ); else if( strcmp( p, "force_ciphersuite" ) == 0 ) { opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q ); @@ -3488,18 +3498,48 @@ reset: } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) { - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ) ) ) != 0 ) +#if defined( MBEDTLS_USE_PSA_CRIPTO ) + if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret ); - goto exit; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + + status = psa_import_key( &attributes, + (const unsigned char *) opt.ecjpake_pw, + strlen( opt.ecjpake_pw ), + &ecjpake_pw_slot ); + if( status != PSA_SUCCESS ) + { + mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n", + status ); + goto exit; + } + if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, + ecjpake_pw_slot ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); + goto exit; + } + } + else +#endif // MBEDTLS_USE_PSA_CRIPTO + { + if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, + (const unsigned char *) opt.ecjpake_pw, + strlen( opt.ecjpake_pw ) ) ) != 0 ) + { + mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret ); + goto exit; + } } } -#endif +#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) @@ -4385,6 +4425,14 @@ exit: #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ +#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ + defined( MBEDTLS_USE_PSA_CRYPTO ) + if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) + { + psa_destroy_key( ecjpake_pw_slot ); + } +#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO + #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) const char* message = mbedtls_test_helper_is_psa_leaking(); if( message ) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c6f6e2963..224c8c054 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8007,6 +8007,24 @@ run_test "ECJPAKE: working, TLS" \ -S "SSL - The handshake negotiation failed" \ -S "SSL - Verification of the message MAC failed" +requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +run_test "ECJPAKE: working, TLS, opaque password" \ + "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ + "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ + force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ + 0 \ + -c "add ciphersuite: c0ff" \ + -c "adding ecjpake_kkpp extension" \ + -C "re-using cached ecjpake parameters" \ + -s "found ecjpake kkpp extension" \ + -S "skip ecjpake kkpp extension" \ + -S "ciphersuite mismatch: ecjpake not configured" \ + -s "server hello, ecjpake kkpp extension" \ + -c "found ecjpake_kkpp extension" \ + -S "SSL - The handshake negotiation failed" \ + -S "SSL - Verification of the message MAC failed" + server_needs_more_time 1 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 From 77e68c317601e0fa0488537587d762d262ff8a42 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 15:42:36 +0100 Subject: [PATCH 1035/1574] Move constant-time HMAC testing to its own suite These are very CPU-intensive, so make it easy to skip them. And conversely, make it easy to run them without the growing body of SSL tests. Signed-off-by: Gilles Peskine --- .../suites/test_suite_constant_time_hmac.data | 15 ++ .../test_suite_constant_time_hmac.function | 159 ++++++++++++++++++ tests/suites/test_suite_ssl.data | 16 -- tests/suites/test_suite_ssl.function | 150 ----------------- 4 files changed, 174 insertions(+), 166 deletions(-) create mode 100644 tests/suites/test_suite_constant_time_hmac.data create mode 100644 tests/suites/test_suite_constant_time_hmac.function diff --git a/tests/suites/test_suite_constant_time_hmac.data b/tests/suites/test_suite_constant_time_hmac.data new file mode 100644 index 000000000..abf90f0f6 --- /dev/null +++ b/tests/suites/test_suite_constant_time_hmac.data @@ -0,0 +1,15 @@ +Constant-flow HMAC: MD5 +depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +ssl_cf_hmac:MBEDTLS_MD_MD5 + +Constant-flow HMAC: SHA1 +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +ssl_cf_hmac:MBEDTLS_MD_SHA1 + +Constant-flow HMAC: SHA256 +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +ssl_cf_hmac:MBEDTLS_MD_SHA256 + +Constant-flow HMAC: SHA384 +depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA +ssl_cf_hmac:MBEDTLS_MD_SHA384 diff --git a/tests/suites/test_suite_constant_time_hmac.function b/tests/suites/test_suite_constant_time_hmac.function new file mode 100644 index 000000000..21ee50d4c --- /dev/null +++ b/tests/suites/test_suite_constant_time_hmac.function @@ -0,0 +1,159 @@ +/* BEGIN_HEADER */ + +#include +#include +#include +#include + +#include +/* END_HEADER */ + +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ +void ssl_cf_hmac( int hash ) +{ + /* + * Test the function mbedtls_ct_hmac() against a reference + * implementation. + */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_algorithm_t alg; + psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; +#else + mbedtls_md_context_t ctx, ref_ctx; + const mbedtls_md_info_t *md_info; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + size_t out_len, block_size; + size_t min_in_len, in_len, max_in_len, i; + /* TLS additional data is 13 bytes (hence the "lucky 13" name) */ + unsigned char add_data[13]; + unsigned char ref_out[MBEDTLS_HASH_MAX_SIZE]; + unsigned char *data = NULL; + unsigned char *out = NULL; + unsigned char rec_num = 0; + + USE_PSA_INIT( ); + +#if defined(MBEDTLS_USE_PSA_CRYPTO) + alg = PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( hash ) ); + + out_len = PSA_HASH_LENGTH( alg ); + block_size = PSA_HASH_BLOCK_LENGTH( alg ); + + /* mbedtls_ct_hmac() requires the key to be exportable */ + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT | + PSA_KEY_USAGE_VERIFY_HASH ); + psa_set_key_algorithm( &attributes, PSA_ALG_HMAC( alg ) ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); +#else + mbedtls_md_init( &ctx ); + mbedtls_md_init( &ref_ctx ); + + md_info = mbedtls_md_info_from_type( hash ); + TEST_ASSERT( md_info != NULL ); + out_len = mbedtls_md_get_size( md_info ); + TEST_ASSERT( out_len != 0 ); + block_size = hash == MBEDTLS_MD_SHA384 ? 128 : 64; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + + /* Use allocated out buffer to catch overwrites */ + ASSERT_ALLOC( out, out_len ); + +#if defined(MBEDTLS_USE_PSA_CRYPTO) + /* Set up dummy key */ + memset( ref_out, 42, sizeof( ref_out ) ); + TEST_EQUAL( PSA_SUCCESS, psa_import_key( &attributes, + ref_out, out_len, + &key ) ); +#else + /* Set up contexts with the given hash and a dummy key */ + TEST_EQUAL( 0, mbedtls_md_setup( &ctx, md_info, 1 ) ); + TEST_EQUAL( 0, mbedtls_md_setup( &ref_ctx, md_info, 1 ) ); + memset( ref_out, 42, sizeof( ref_out ) ); + TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ctx, ref_out, out_len ) ); + TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ref_ctx, ref_out, out_len ) ); + memset( ref_out, 0, sizeof( ref_out ) ); +#endif + + /* + * Test all possible lengths up to a point. The difference between + * max_in_len and min_in_len is at most 255, and make sure they both vary + * by at least one block size. + */ + for( max_in_len = 0; max_in_len <= 255 + block_size; max_in_len++ ) + { + mbedtls_test_set_step( max_in_len * 10000 ); + + /* Use allocated in buffer to catch overreads */ + ASSERT_ALLOC( data, max_in_len ); + + min_in_len = max_in_len > 255 ? max_in_len - 255 : 0; + for( in_len = min_in_len; in_len <= max_in_len; in_len++ ) + { + mbedtls_test_set_step( max_in_len * 10000 + in_len ); + + /* Set up dummy data and add_data */ + rec_num++; + memset( add_data, rec_num, sizeof( add_data ) ); + for( i = 0; i < in_len; i++ ) + data[i] = ( i & 0xff ) ^ rec_num; + + /* Get the function's result */ + TEST_CF_SECRET( &in_len, sizeof( in_len ) ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) + TEST_EQUAL( 0, mbedtls_ct_hmac( key, PSA_ALG_HMAC( alg ), + add_data, sizeof( add_data ), + data, in_len, + min_in_len, max_in_len, + out ) ); +#else + TEST_EQUAL( 0, mbedtls_ct_hmac( &ctx, add_data, sizeof( add_data ), + data, in_len, + min_in_len, max_in_len, + out ) ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + TEST_CF_PUBLIC( &in_len, sizeof( in_len ) ); + TEST_CF_PUBLIC( out, out_len ); + +#if defined(MBEDTLS_USE_PSA_CRYPTO) + TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_setup( &operation, + key, alg ) ); + TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, add_data, + sizeof( add_data ) ) ); + TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, + data, in_len ) ); + TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_finish( &operation, + out, out_len ) ); +#else + /* Compute the reference result */ + TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, add_data, + sizeof( add_data ) ) ); + TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, data, in_len ) ); + TEST_EQUAL( 0, mbedtls_md_hmac_finish( &ref_ctx, ref_out ) ); + TEST_EQUAL( 0, mbedtls_md_hmac_reset( &ref_ctx ) ); + + /* Compare */ + ASSERT_COMPARE( out, out_len, ref_out, out_len ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + } + + mbedtls_free( data ); + data = NULL; + } + +exit: +#if defined(MBEDTLS_USE_PSA_CRYPTO) + psa_mac_abort( &operation ); + psa_destroy_key( key ); +#else + mbedtls_md_free( &ref_ctx ); + mbedtls_md_free( &ctx ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + + mbedtls_free( data ); + mbedtls_free( out ); + + USE_PSA_DONE( ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index a35762d7f..5bd856bb2 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3378,22 +3378,6 @@ TLS 1.3: SRV: Session serialization, load buffer size depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_SRV_C ssl_serialize_session_load_buf_size:0:"":MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_VERSION_TLS1_3 -Constant-flow HMAC: MD5 -depends_on:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -ssl_cf_hmac:MBEDTLS_MD_MD5 - -Constant-flow HMAC: SHA1 -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA -ssl_cf_hmac:MBEDTLS_MD_SHA1 - -Constant-flow HMAC: SHA256 -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA -ssl_cf_hmac:MBEDTLS_MD_SHA256 - -Constant-flow HMAC: SHA384 -depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA -ssl_cf_hmac:MBEDTLS_MD_SHA384 - # these are the numbers we'd get with an empty plaintext and truncated HMAC Constant-flow memcpy from offset: small ssl_cf_memcpy_offset:0:5:10 diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7447a1d0e..39774c64d 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5438,156 +5438,6 @@ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ -void ssl_cf_hmac( int hash ) -{ - /* - * Test the function mbedtls_ct_hmac() against a reference - * implementation. - */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_algorithm_t alg; - psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; -#else - mbedtls_md_context_t ctx, ref_ctx; - const mbedtls_md_info_t *md_info; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - size_t out_len, block_size; - size_t min_in_len, in_len, max_in_len, i; - /* TLS additional data is 13 bytes (hence the "lucky 13" name) */ - unsigned char add_data[13]; - unsigned char ref_out[MBEDTLS_HASH_MAX_SIZE]; - unsigned char *data = NULL; - unsigned char *out = NULL; - unsigned char rec_num = 0; - - USE_PSA_INIT( ); - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - alg = PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( hash ) ); - - out_len = PSA_HASH_LENGTH( alg ); - block_size = PSA_HASH_BLOCK_LENGTH( alg ); - - /* mbedtls_ct_hmac() requires the key to be exportable */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT | - PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, PSA_ALG_HMAC( alg ) ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); -#else - mbedtls_md_init( &ctx ); - mbedtls_md_init( &ref_ctx ); - - md_info = mbedtls_md_info_from_type( hash ); - TEST_ASSERT( md_info != NULL ); - out_len = mbedtls_md_get_size( md_info ); - TEST_ASSERT( out_len != 0 ); - block_size = hash == MBEDTLS_MD_SHA384 ? 128 : 64; -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - /* Use allocated out buffer to catch overwrites */ - ASSERT_ALLOC( out, out_len ); - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - /* Set up dummy key */ - memset( ref_out, 42, sizeof( ref_out ) ); - TEST_EQUAL( PSA_SUCCESS, psa_import_key( &attributes, - ref_out, out_len, - &key ) ); -#else - /* Set up contexts with the given hash and a dummy key */ - TEST_EQUAL( 0, mbedtls_md_setup( &ctx, md_info, 1 ) ); - TEST_EQUAL( 0, mbedtls_md_setup( &ref_ctx, md_info, 1 ) ); - memset( ref_out, 42, sizeof( ref_out ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ctx, ref_out, out_len ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ref_ctx, ref_out, out_len ) ); - memset( ref_out, 0, sizeof( ref_out ) ); -#endif - - /* - * Test all possible lengths up to a point. The difference between - * max_in_len and min_in_len is at most 255, and make sure they both vary - * by at least one block size. - */ - for( max_in_len = 0; max_in_len <= 255 + block_size; max_in_len++ ) - { - mbedtls_test_set_step( max_in_len * 10000 ); - - /* Use allocated in buffer to catch overreads */ - ASSERT_ALLOC( data, max_in_len ); - - min_in_len = max_in_len > 255 ? max_in_len - 255 : 0; - for( in_len = min_in_len; in_len <= max_in_len; in_len++ ) - { - mbedtls_test_set_step( max_in_len * 10000 + in_len ); - - /* Set up dummy data and add_data */ - rec_num++; - memset( add_data, rec_num, sizeof( add_data ) ); - for( i = 0; i < in_len; i++ ) - data[i] = ( i & 0xff ) ^ rec_num; - - /* Get the function's result */ - TEST_CF_SECRET( &in_len, sizeof( in_len ) ); -#if defined(MBEDTLS_USE_PSA_CRYPTO) - TEST_EQUAL( 0, mbedtls_ct_hmac( key, PSA_ALG_HMAC( alg ), - add_data, sizeof( add_data ), - data, in_len, - min_in_len, max_in_len, - out ) ); -#else - TEST_EQUAL( 0, mbedtls_ct_hmac( &ctx, add_data, sizeof( add_data ), - data, in_len, - min_in_len, max_in_len, - out ) ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - TEST_CF_PUBLIC( &in_len, sizeof( in_len ) ); - TEST_CF_PUBLIC( out, out_len ); - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_setup( &operation, - key, alg ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, add_data, - sizeof( add_data ) ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, - data, in_len ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_finish( &operation, - out, out_len ) ); -#else - /* Compute the reference result */ - TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, add_data, - sizeof( add_data ) ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, data, in_len ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_finish( &ref_ctx, ref_out ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_reset( &ref_ctx ) ); - - /* Compare */ - ASSERT_COMPARE( out, out_len, ref_out, out_len ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - - mbedtls_free( data ); - data = NULL; - } - -exit: -#if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_mac_abort( &operation ); - psa_destroy_key( key ); -#else - mbedtls_md_free( &ref_ctx ); - mbedtls_md_free( &ctx ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - mbedtls_free( data ); - mbedtls_free( out ); - - USE_PSA_DONE( ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ void ssl_cf_memcpy_offset( int offset_min, int offset_max, int len ) { From 3ffd6bce81a025b3391b9486f39b096e212532fe Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 15:44:21 +0100 Subject: [PATCH 1036/1574] Create a separate test suite for constant-time functions This is the first step in arranging that functions from constant_time.c are tested in test_suite_constant_time.function. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_constant_time.data | 11 +++++ .../suites/test_suite_constant_time.function | 49 +++++++++++++++++++ tests/suites/test_suite_ssl.data | 12 ----- tests/suites/test_suite_ssl.function | 33 ------------- 4 files changed, 60 insertions(+), 45 deletions(-) create mode 100644 tests/suites/test_suite_constant_time.data create mode 100644 tests/suites/test_suite_constant_time.function diff --git a/tests/suites/test_suite_constant_time.data b/tests/suites/test_suite_constant_time.data new file mode 100644 index 000000000..4504aa4d6 --- /dev/null +++ b/tests/suites/test_suite_constant_time.data @@ -0,0 +1,11 @@ +# these are the numbers we'd get with an empty plaintext and truncated HMAC +Constant-flow memcpy from offset: small +ssl_cf_memcpy_offset:0:5:10 + +# we could get this with 255-bytes plaintext and untruncated SHA-256 +Constant-flow memcpy from offset: medium +ssl_cf_memcpy_offset:0:255:32 + +# we could get this with 255-bytes plaintext and untruncated SHA-384 +Constant-flow memcpy from offset: large +ssl_cf_memcpy_offset:100:339:48 diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function new file mode 100644 index 000000000..a3673b717 --- /dev/null +++ b/tests/suites/test_suite_constant_time.function @@ -0,0 +1,49 @@ +/* BEGIN_HEADER */ +/** \file test_suite_constant_time.function + * + * Functional testing of functions in the constant_time module. + * + * The tests are instrumented with #TEST_CF_SECRET and #TEST_CF_PUBLIC + * (see tests/include/test/constant_flow.h) so that running the tests + * under MSan or Valgrind will detect a non-constant-time implementation. + */ + +#include +#include +#include + +#include +/* END_HEADER */ + +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ +void ssl_cf_memcpy_offset( int offset_min, int offset_max, int len ) +{ + unsigned char *dst = NULL; + unsigned char *src = NULL; + size_t src_len = offset_max + len; + size_t secret; + + ASSERT_ALLOC( dst, len ); + ASSERT_ALLOC( src, src_len ); + + /* Fill src in a way that we can detect if we copied the right bytes */ + mbedtls_test_rnd_std_rand( NULL, src, src_len ); + + for( secret = offset_min; secret <= (size_t) offset_max; secret++ ) + { + mbedtls_test_set_step( (int) secret ); + + TEST_CF_SECRET( &secret, sizeof( secret ) ); + mbedtls_ct_memcpy_offset( dst, src, secret, + offset_min, offset_max, len ); + TEST_CF_PUBLIC( &secret, sizeof( secret ) ); + TEST_CF_PUBLIC( dst, len ); + + ASSERT_COMPARE( dst, len, src + secret, len ); + } + +exit: + mbedtls_free( dst ); + mbedtls_free( src ); +} +/* END_CASE */ diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 5bd856bb2..bc2edd120 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3378,18 +3378,6 @@ TLS 1.3: SRV: Session serialization, load buffer size depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_SSL_SRV_C ssl_serialize_session_load_buf_size:0:"":MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_VERSION_TLS1_3 -# these are the numbers we'd get with an empty plaintext and truncated HMAC -Constant-flow memcpy from offset: small -ssl_cf_memcpy_offset:0:5:10 - -# we could get this with 255-bytes plaintext and untruncated SHA-256 -Constant-flow memcpy from offset: medium -ssl_cf_memcpy_offset:0:255:32 - -# we could get this with 255-bytes plaintext and untruncated SHA-384 -Constant-flow memcpy from offset: large -ssl_cf_memcpy_offset:100:339:48 - Test configuration of groups for DHE through mbedtls_ssl_conf_curves() conf_curve: diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 39774c64d..e33b38979 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5438,39 +5438,6 @@ void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ -void ssl_cf_memcpy_offset( int offset_min, int offset_max, int len ) -{ - unsigned char *dst = NULL; - unsigned char *src = NULL; - size_t src_len = offset_max + len; - size_t secret; - - ASSERT_ALLOC( dst, len ); - ASSERT_ALLOC( src, src_len ); - - /* Fill src in a way that we can detect if we copied the right bytes */ - mbedtls_test_rnd_std_rand( NULL, src, src_len ); - - for( secret = offset_min; secret <= (size_t) offset_max; secret++ ) - { - mbedtls_test_set_step( (int) secret ); - - TEST_CF_SECRET( &secret, sizeof( secret ) ); - mbedtls_ct_memcpy_offset( dst, src, secret, - offset_min, offset_max, len ); - TEST_CF_PUBLIC( &secret, sizeof( secret ) ); - TEST_CF_PUBLIC( dst, len ); - - ASSERT_COMPARE( dst, len, src + secret, len ); - } - -exit: - mbedtls_free( dst ); - mbedtls_free( src ); -} -/* END_CASE */ - /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ void test_multiple_psks() { From df3dd4c3bce97001f9d2dcc09e18259ae02a7840 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 16:45:30 +0100 Subject: [PATCH 1037/1574] Test MBEDTLS_USE_PSA_CRYPTO with Valgrind Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b99b6ccc1..bd40dd051 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3444,30 +3444,43 @@ component_test_memsan () { component_test_valgrind () { msg "build: Release (clang)" + # default config, in particular without MBEDTLS_USE_PSA_CRYPTO CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release . make - msg "test: main suites valgrind (Release)" + msg "test: main suites, Valgrind (default config)" make memcheck # Optional parts (slow; currently broken on OS X because programs don't # seem to receive signals under valgrind on OS X). + # These optional parts don't run on the CI. if [ "$MEMORY" -gt 0 ]; then - msg "test: ssl-opt.sh --memcheck (Release)" + msg "test: ssl-opt.sh --memcheck (default config)" tests/ssl-opt.sh --memcheck fi if [ "$MEMORY" -gt 1 ]; then - msg "test: compat.sh --memcheck (Release)" + msg "test: compat.sh --memcheck (default config)" tests/compat.sh --memcheck fi if [ "$MEMORY" -gt 0 ]; then - msg "test: context-info.sh --memcheck (Release)" + msg "test: context-info.sh --memcheck (default config)" tests/context-info.sh --memcheck fi } +component_test_valgrind_psa () { + msg "build: Release, full (clang)" + # full config, in particular with MBEDTLS_USE_PSA_CRYPTO + scripts/config.py full + CC=clang cmake -D CMAKE_BUILD_TYPE:String=Release . + make + + msg "test: main suites, Valgrind (full config)" + make memcheck +} + support_test_cmake_out_of_source () { distrib_id="" distrib_ver="" From 0c67160b00ccd15886a984ef34ce581027ed106f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 16:01:41 +0100 Subject: [PATCH 1038/1574] Valgrind for constant flow: skip non-CF test suites When testing under Valgrind for constant flow, skip test suites that don't have any constant-flow annotations, since the testing wouldn't do anything more that testing with ordinary Valgrind (component_test_valgrind and component_test_valgrind_psa). This is a significant time saving since testing with Valgrind is very slow. Signed-off-by: Gilles Peskine --- tests/include/test/constant_flow.h | 6 ++++++ tests/scripts/all.sh | 17 +++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/tests/include/test/constant_flow.h b/tests/include/test/constant_flow.h index 9626af9e4..f3d676e28 100644 --- a/tests/include/test/constant_flow.h +++ b/tests/include/test/constant_flow.h @@ -46,6 +46,12 @@ * This file contains two implementations: one based on MemorySanitizer, the * other on valgrind's memcheck. If none of them is enabled, dummy macros that * do nothing are defined for convenience. + * + * \note #TEST_CF_SECRET must be called directly from within a .function file, + * not indirectly via a macro defined under tests/include or a function + * under tests/src. This is because we only run Valgrind for constant + * flow on test suites that have greppable annotations inside them (see + * `skip_suites_without_constant_flow` in `tests/scripts/all.sh`). */ #if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index bd40dd051..101d132ac 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1591,6 +1591,17 @@ component_test_full_cmake_clang () { env OPENSSL_CMD="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA' } +skip_suites_without_constant_flow () { + # Skip the test suites that don't have any constant-flow annotations. + # This will need to be adjusted if we ever start declaring things as + # secret from macros or functions inside tests/include or tests/src. + SKIP_TEST_SUITES=$( + git -C tests/suites grep -L TEST_CF_ 'test_suite_*.function' | + sed 's/test_suite_//; s/\.function$//' | + tr '\n' ,) + export SKIP_TEST_SUITES +} + component_test_memsan_constant_flow () { # This tests both (1) accesses to undefined memory, and (2) branches or # memory access depending on secret values. To distinguish between those: @@ -1642,12 +1653,13 @@ component_test_valgrind_constant_flow () { scripts/config.py full scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO + skip_suites_without_constant_flow cmake -D CMAKE_BUILD_TYPE:String=Release . make # this only shows a summary of the results (how many of each type) # details are left in Testing//DynamicAnalysis.xml - msg "test: main suites (full minus MBEDTLS_USE_PSA_CRYPTO, valgrind + constant flow)" + msg "test: some suites (full minus MBEDTLS_USE_PSA_CRYPTO, valgrind + constant flow)" make memcheck } @@ -1664,12 +1676,13 @@ component_test_valgrind_constant_flow_psa () { msg "build: cmake release GCC, full config with constant flow testing" scripts/config.py full scripts/config.py set MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND + skip_suites_without_constant_flow cmake -D CMAKE_BUILD_TYPE:String=Release . make # this only shows a summary of the results (how many of each type) # details are left in Testing//DynamicAnalysis.xml - msg "test: main suites (valgrind + constant flow)" + msg "test: some suites (valgrind + constant flow)" make memcheck } From 9ec14f6dcbf989844724fe98224684416371537b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 17:23:19 +0100 Subject: [PATCH 1039/1574] programs/fuzz: set sensible default CFLAGS Running make from programs/fuzz didn't set any optimization flags (running make from programs or from the root inherited the parent's optimization flags). Default to -O2. There were no -W flags. Default to -Wall -Wextra, but not -Werror in line with the other makefiles. Signed-off-by: Gilles Peskine --- programs/fuzz/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/programs/fuzz/Makefile b/programs/fuzz/Makefile index 59a2bb7f3..8477aa8cb 100644 --- a/programs/fuzz/Makefile +++ b/programs/fuzz/Makefile @@ -1,7 +1,9 @@ MBEDTLS_TEST_PATH:=../../tests/src MBEDTLS_TEST_OBJS:=$(patsubst %.c,%.o,$(wildcard ${MBEDTLS_TEST_PATH}/*.c ${MBEDTLS_TEST_PATH}/drivers/*.c)) -LOCAL_CFLAGS = -I../../tests/include -I../../include -D_FILE_OFFSET_BITS=64 +CFLAGS ?= -O2 +WARNING_CFLAGS ?= -Wall -Wextra +LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../../tests/include -I../../include -D_FILE_OFFSET_BITS=64 LOCAL_LDFLAGS = ${MBEDTLS_TEST_OBJS} \ -L../../library \ -lmbedtls$(SHARED_SUFFIX) \ From 77e8315f5b82fbce385c8b1695b83513ff32c216 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 29 Nov 2022 17:17:11 +0100 Subject: [PATCH 1040/1574] fix formatting and typos Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 18 +++++++++--------- programs/ssl/ssl_server2.c | 20 ++++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 5c3af2c2f..3a79b76ca 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -827,10 +827,10 @@ int main( int argc, char *argv[] ) MBEDTLS_TLS_SRTP_UNSET }; #endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ - defined( MBEDTLS_USE_PSA_CRYPTO ) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t ecjpake_pw_slot = MBEDTLS_SVC_KEY_ID_INIT; /* ecjpake password key slot */ -#endif // MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); @@ -2176,7 +2176,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) { -#if defined( MBEDTLS_USE_PSA_CRIPTO ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2203,7 +2203,7 @@ int main( int argc, char *argv[] ) } } else -#endif // MBEDTLS_USE_PSA_CRIPTO +#endif /* MBEDTLS_USE_PSA_CRYPTO */ { if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, (const unsigned char *) opt.ecjpake_pw, @@ -2214,7 +2214,7 @@ int main( int argc, char *argv[] ) } } } -#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) if( opt.context_crt_cb == 1 ) @@ -3315,13 +3315,13 @@ exit: #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ -#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ - defined( MBEDTLS_USE_PSA_CRYPTO ) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { psa_destroy_key( ecjpake_pw_slot ); } -#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) const char* message = mbedtls_test_helper_is_psa_leaking(); diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 8e1aaf351..c09a47a16 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1509,10 +1509,10 @@ int main( int argc, char *argv[] ) unsigned char *context_buf = NULL; size_t context_buf_len = 0; #endif -#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ - defined( MBEDTLS_USE_PSA_CRYPTO ) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t ecjpake_pw_slot = MBEDTLS_SVC_KEY_ID_INIT; /* ecjpake password key slot */ -#endif // MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) uint16_t sig_alg_list[SIG_ALG_LIST_SIZE]; @@ -3498,10 +3498,10 @@ reset: } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ -#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) { -#if defined( MBEDTLS_USE_PSA_CRIPTO ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -3528,7 +3528,7 @@ reset: } } else -#endif // MBEDTLS_USE_PSA_CRIPTO +#endif /* MBEDTLS_USE_PSA_CRYPTO */ { if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, (const unsigned char *) opt.ecjpake_pw, @@ -3539,7 +3539,7 @@ reset: } } } -#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) @@ -4425,13 +4425,13 @@ exit: #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ -#if defined( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ) && \ - defined( MBEDTLS_USE_PSA_CRYPTO ) +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ + defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { psa_destroy_key( ecjpake_pw_slot ); } -#endif // MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) const char* message = mbedtls_test_helper_is_psa_leaking(); From 661b9bca75560fc234febe03ea27d02504227e87 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 29 Nov 2022 17:19:25 +0100 Subject: [PATCH 1041/1574] test: psa_pake: add specific log message for the opaque password Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 1 + programs/ssl/ssl_server2.c | 1 + tests/ssl-opt.sh | 2 ++ 3 files changed, 4 insertions(+) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 3a79b76ca..736bc5123 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -2201,6 +2201,7 @@ int main( int argc, char *argv[] ) mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); goto exit; } + mbedtls_printf( "using opaque password\n"); } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index c09a47a16..6db20c66e 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -3526,6 +3526,7 @@ reset: mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); goto exit; } + mbedtls_printf( "using opaque password\n"); } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 224c8c054..53fe49e06 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8016,6 +8016,8 @@ run_test "ECJPAKE: working, TLS, opaque password" \ 0 \ -c "add ciphersuite: c0ff" \ -c "adding ecjpake_kkpp extension" \ + -c "using opaque password" \ + -s "using opaque password" \ -C "re-using cached ecjpake parameters" \ -s "found ecjpake kkpp extension" \ -S "skip ecjpake kkpp extension" \ From b6bc7524f9bd13be11ecdd301bffcd4fee95cd4c Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Tue, 29 Nov 2022 16:53:29 +0000 Subject: [PATCH 1042/1574] Minor formatting fixes to address code review comments Signed-off-by: Aditya Deshpande --- library/psa_crypto_ecp.c | 14 +++++++------- tests/src/drivers/test_driver_key_agreement.c | 3 +-- .../test_suite_psa_crypto_driver_wrappers.function | 1 - 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index b840426ab..537a74840 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -477,16 +477,17 @@ psa_status_t mbedtls_psa_key_agreement_ecdh( uint8_t *shared_secret, size_t shared_secret_size, size_t *shared_secret_length ) { + psa_status_t status; if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( attributes->core.type ) || ! PSA_ALG_IS_ECDH(alg) ) return( PSA_ERROR_INVALID_ARGUMENT ); mbedtls_ecp_keypair *ecp = NULL; - psa_status_t status = mbedtls_psa_ecp_load_representation( - attributes->core.type, - attributes->core.bits, - key_buffer, - key_buffer_size, - &ecp ); + status = mbedtls_psa_ecp_load_representation( + attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, + &ecp ); if( status != PSA_SUCCESS ) return( status ); mbedtls_ecp_keypair *their_key = NULL; @@ -523,7 +524,6 @@ psa_status_t mbedtls_psa_key_agreement_ecdh( goto exit; if( PSA_BITS_TO_BYTES( bits ) != *shared_secret_length ) status = PSA_ERROR_CORRUPTION_DETECTED; - exit: if( status != PSA_SUCCESS ) mbedtls_platform_zeroize( shared_secret, shared_secret_size ); diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 3552f48f7..7c37b0327 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -29,7 +29,6 @@ #include "test/drivers/test_driver.h" #include -#include #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) #include "libtestdriver1/include/psa/crypto.h" @@ -50,7 +49,7 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t shared_secret_size, size_t *shared_secret_length ) { - ++mbedtls_test_driver_key_agreement_hooks.hits; + mbedtls_test_driver_key_agreement_hooks.hits++; if( mbedtls_test_driver_key_agreement_hooks.forced_status != PSA_SUCCESS ) return( mbedtls_test_driver_key_agreement_hooks.forced_status ); diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.function b/tests/suites/test_suite_psa_crypto_driver_wrappers.function index 5f38614e8..b89579644 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.function +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.function @@ -1,6 +1,5 @@ /* BEGIN_HEADER */ #include "test/drivers/test_driver.h" -#include #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) /* Sanity checks on the output of RSA encryption. From d1bc6da3d3890cc3c70dbdfca6b993892dcebd5a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 21:14:19 +0100 Subject: [PATCH 1043/1574] Fix the build with MBEDTLS_TEST_HOOKS && !MBEDTLS_USE_PSA_CRYPTO Signed-off-by: Gilles Peskine --- tests/suites/test_suite_constant_time_hmac.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_constant_time_hmac.function b/tests/suites/test_suite_constant_time_hmac.function index 21ee50d4c..f8c1bfc0c 100644 --- a/tests/suites/test_suite_constant_time_hmac.function +++ b/tests/suites/test_suite_constant_time_hmac.function @@ -4,6 +4,7 @@ #include #include #include +#include #include /* END_HEADER */ From d8c08038216ffee6012a3ef88d9a2a9545120f6c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:03:32 +0100 Subject: [PATCH 1044/1574] Preserve line breaks in comments before test functions This way line numbers match better in error messages. Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 10 ++++------ tests/scripts/test_generate_test_code.py | 1 + 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index c1d1c1cbf..b7c8e2854 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -552,14 +552,12 @@ def skip_comments(line, stream): pos = closing + 2 # Replace inner comment by spaces. There needs to be at least one space # for things like 'int/*ihatespaces*/foo'. Go further and preserve the - # width of the comment, this way column positions in error messages - # remain correct. - # TODO: It would be better to preserve line breaks, to get accurate - # line numbers if there's something interesting after a comment on - # the same line. + # width of the comment and line breaks, this way positions in error + # messages remain correct. line = (line[:opening.start(0)] + - ' ' * (pos - opening.start(0)) + + re.sub(r'.', r' ', line[opening.start(0):pos]) + line[pos:]) + # Strip whitespace at the end of lines (it's irrelevant to error messages). return re.sub(r' +(\n|\Z)', r'\1', line) def parse_function_code(funcs_f, dependencies, suite_dependencies): diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index d8b8cf979..8b2bf78d8 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -766,6 +766,7 @@ exit: + void test_func() { ba ba black sheep From d622c7de56b31238a66a1cbe8cda9e56669b673d Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:18:05 +0100 Subject: [PATCH 1045/1574] Changelog entry files must have a .txt extension Signed-off-by: Gilles Peskine --- ChangeLog.d/{fix_cmake_gen_files => fix_cmake_gen_files.txt} | 0 ...ix_hard_link_across_drives => fix_hard_link_across_drives.txt} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename ChangeLog.d/{fix_cmake_gen_files => fix_cmake_gen_files.txt} (100%) rename ChangeLog.d/{fix_hard_link_across_drives => fix_hard_link_across_drives.txt} (100%) diff --git a/ChangeLog.d/fix_cmake_gen_files b/ChangeLog.d/fix_cmake_gen_files.txt similarity index 100% rename from ChangeLog.d/fix_cmake_gen_files rename to ChangeLog.d/fix_cmake_gen_files.txt diff --git a/ChangeLog.d/fix_hard_link_across_drives b/ChangeLog.d/fix_hard_link_across_drives.txt similarity index 100% rename from ChangeLog.d/fix_hard_link_across_drives rename to ChangeLog.d/fix_hard_link_across_drives.txt From 787c79dc1a39eddf32243d55547cbc5b0e3f8b6a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:27:03 +0100 Subject: [PATCH 1046/1574] Remove changelog entry for an internal change We removed internal code left over after removing a feature in Mbed TLS 3.0. The removal of the internal code is not user-visible. Signed-off-by: Gilles Peskine --- ChangeLog.d/remove_ssl_session_compression.txt | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 ChangeLog.d/remove_ssl_session_compression.txt diff --git a/ChangeLog.d/remove_ssl_session_compression.txt b/ChangeLog.d/remove_ssl_session_compression.txt deleted file mode 100644 index dc59f1c9d..000000000 --- a/ChangeLog.d/remove_ssl_session_compression.txt +++ /dev/null @@ -1,5 +0,0 @@ -Removals - * Remove compression property from SSL session struct. - MBEDTLS_SSL_COMPRESS_NULL is now the only supported - compression option and can be used for compatibility - reasons. Changes requested in #4223. From fc2ac75453d6f64d71a9f2972d856d2664d35bba Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 30 Nov 2022 11:13:00 +0000 Subject: [PATCH 1047/1574] Fix the name of basic-build-test.sh within the file Signed-off-by: Tom Cosgrove --- tests/scripts/basic-build-test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/basic-build-test.sh b/tests/scripts/basic-build-test.sh index 31beb1c21..a96254fd5 100755 --- a/tests/scripts/basic-build-test.sh +++ b/tests/scripts/basic-build-test.sh @@ -1,6 +1,6 @@ #!/bin/sh -# basic-build-tests.sh +# basic-build-test.sh # # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 @@ -36,7 +36,7 @@ # # This script has been written to be generic and should work on any shell. # -# Usage: basic-build-tests.sh +# Usage: basic-build-test.sh # # Abort on errors (and uninitiliased variables) From 30d9466762df04b00b78cdaab96d1881b02600b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 29 Nov 2022 12:37:53 +0100 Subject: [PATCH 1048/1574] Only run what we need from compat.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also, comment why we run those tests. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f72fe5282..978cb71e5 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2162,11 +2162,16 @@ component_test_psa_crypto_config_accel_hash_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" make test + # This is mostly useful so that we can later compare outcome files with + # the reference config in analyze_outcomes.py, to check that the + # dependency declarations in ssl-opt.sh and in TLS code are correct. msg "test: ssl-opt.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" tests/ssl-opt.sh - msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG without accelerated hash and USE_PSA" - tests/compat.sh + # This is to make sure all ciphersuites are exercised, but we don't need + # interop testing (besides, we already got some from ssl-opt.sh). + msg "test: compat.sh, MBEDTLS_PSA_CRYPTO_CONFIG with accelerated hash and USE_PSA" + tests/compat.sh -p mbedTLS -V YES } # This component provides reference configuration for test_psa_crypto_config_accel_hash_use_psa From fe549a76e4870866bfc0b9761d48e6ac774b41cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 30 Nov 2022 10:42:03 +0100 Subject: [PATCH 1049/1574] Add comment about use of ASAN_CFLAGS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 978cb71e5..11827e99d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -185,6 +185,7 @@ pre_initialize_variables () { export CTEST_OUTPUT_ON_FAILURE=1 # CFLAGS and LDFLAGS for Asan builds that don't use CMake + # default to -O2, use -Ox _after_ this if you want another level ASAN_CFLAGS='-O2 -Werror -fsanitize=address,undefined -fno-sanitize-recover=all' # Gather the list of available components. These are the functions From 2d0f27d0fcbc0f95bf7b7ed8810db178ab32a02b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 30 Nov 2022 11:54:34 +0000 Subject: [PATCH 1050/1574] Make use of optimised bswap from ARIA Signed-off-by: Dave Rodgman --- library/aria.c | 41 +---------------------------------------- 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/library/aria.c b/library/aria.c index 682d4ec41..517e10a77 100644 --- a/library/aria.c +++ b/library/aria.c @@ -98,47 +98,8 @@ static inline uint32_t aria_p1( uint32_t x ) * modify byte order: ( A B C D ) -> ( D C B A ), i.e. change endianness * * This is submatrix P3 in [1] Appendix B.1 - * - * Some compilers fail to translate this to a single instruction, - * so let's provide asm versions for common platforms with C fallback. */ -#if defined(MBEDTLS_HAVE_ASM) -#if defined(__arm__) /* rev available from v6 up */ -/* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */ -#if defined(__GNUC__) && \ - ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) && \ - __ARM_ARCH >= 6 -static inline uint32_t aria_p3( uint32_t x ) -{ - uint32_t r; - __asm( "rev %0, %1" : "=l" (r) : "l" (x) ); - return( r ); -} -#define ARIA_P3 aria_p3 -#elif defined(__ARMCC_VERSION) && __ARMCC_VERSION < 6000000 && \ - ( __TARGET_ARCH_ARM >= 6 || __TARGET_ARCH_THUMB >= 3 ) -static inline uint32_t aria_p3( uint32_t x ) -{ - uint32_t r; - __asm( "rev r, x" ); - return( r ); -} -#define ARIA_P3 aria_p3 -#endif -#endif /* arm */ -#if defined(__GNUC__) && \ - defined(__i386__) || defined(__amd64__) || defined( __x86_64__) -static inline uint32_t aria_p3( uint32_t x ) -{ - __asm( "bswap %0" : "=r" (x) : "0" (x) ); - return( x ); -} -#define ARIA_P3 aria_p3 -#endif /* x86 gnuc */ -#endif /* MBEDTLS_HAVE_ASM && GNUC */ -#if !defined(ARIA_P3) -#define ARIA_P3(x) ARIA_P2( ARIA_P1 ( x ) ) -#endif +#define ARIA_P3(x) MBEDTLS_BSWAP32(x) /* * ARIA Affine Transform From c84b7319410a6d0df6cd1dd259f14ffba31c8806 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 30 Nov 2022 14:43:31 +0000 Subject: [PATCH 1051/1574] Enable test generation from bignum_mod.py Signed-off-by: Werner Lewis --- tests/CMakeLists.txt | 1 + tests/Makefile | 1 + tests/scripts/generate_bignum_tests.py | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ae3d05459..71dd70b9a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -71,6 +71,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_common.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod_raw.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index 0b31cdd07..2d2d70a8f 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -95,6 +95,7 @@ generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_core.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_mod_raw.py +generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_mod.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_case.py generated_bignum_test_data: ../scripts/mbedtls_dev/test_data_generation.py generated_bignum_test_data: diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index c3058e98a..0b8471186 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -66,7 +66,7 @@ from mbedtls_dev import bignum_common # Import modules containing additional test classes # Test function classes in these modules will be registered by # the framework -from mbedtls_dev import bignum_core, bignum_mod_raw # pylint: disable=unused-import +from mbedtls_dev import bignum_core, bignum_mod_raw, bignum_mod # pylint: disable=unused-import class BignumTarget(test_data_generation.BaseTarget): #pylint: disable=too-few-public-methods From 2dae4b3ef609865f0b19b39cc4d44995af3d4833 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 30 Nov 2022 12:07:36 +0000 Subject: [PATCH 1052/1574] Support armcc builtin byteswap routine Signed-off-by: Dave Rodgman --- library/alignment.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/alignment.h b/library/alignment.h index 86e78217b..3c5fa2360 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -158,6 +158,11 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) #define MBEDTLS_BSWAP64 _byteswap_uint64 #endif /* defined(_MSC_VER) */ +/* Detect armcc built-in byteswap routine */ +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 410000) +#define MBEDTLS_BSWAP32 __rev +#endif + /* * Where compiler built-ins are not present, fall back to C code that the * compiler may be able to detect and transform into the relevant bswap or From 18f7028a0e84bcc6c091d3494e5291efdcd83198 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 16:38:49 +0100 Subject: [PATCH 1053/1574] Preserve line breaks from continued line comments The commit "Preserve line breaks in comments before test functions" only handled block comments. This commit handles line comments. Signed-off-by: Gilles Peskine --- tests/scripts/generate_test_code.py | 6 +++++- tests/scripts/test_generate_test_code.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/scripts/generate_test_code.py b/tests/scripts/generate_test_code.py index b7c8e2854..f19d30b61 100755 --- a/tests/scripts/generate_test_code.py +++ b/tests/scripts/generate_test_code.py @@ -537,11 +537,15 @@ def skip_comments(line, stream): break if line[opening.start(0) + 1] == '/': # //... continuation = line + # Count the number of line breaks, to keep line numbers aligned + # in the output. + line_count = 1 while continuation.endswith('\\\n'): # This errors out if the file ends with an unfinished line # comment. That's acceptable to not complicate the code further. continuation = next(stream) - return line[:opening.start(0)].rstrip() + '\n' + line_count += 1 + return line[:opening.start(0)].rstrip() + '\n' * line_count # Parsing /*...*/, looking for the end closing = line.find('*/', opening.end(0)) while closing == -1: diff --git a/tests/scripts/test_generate_test_code.py b/tests/scripts/test_generate_test_code.py index 8b2bf78d8..d23d74219 100755 --- a/tests/scripts/test_generate_test_code.py +++ b/tests/scripts/test_generate_test_code.py @@ -767,6 +767,8 @@ exit: + + void test_func() { ba ba black sheep @@ -813,6 +815,7 @@ exit: expected = '''#line 1 "test_suite_ut.function" void test_func( int x, + int y ) { ba ba black sheep From a6b69dabc5edc13b3c7bb42233237652964c8ecd Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 30 Nov 2022 16:44:49 +0100 Subject: [PATCH 1054/1574] test: psa_pake: add a separate test for opaque password Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 19 +++++++++++++++++-- tests/ssl-opt.sh | 3 ++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index b43f999d8..f465616d0 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1456,13 +1456,28 @@ component_test_tls1_2_ecjpake_compatibility() { make -C programs test/udp_proxy test/query_compile_time_config msg "test: server w/o USE_PSA - client w/ USE_PSA" - P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f ECJPAKE + P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f ECJPAKE -e ECJPAKE_OPAQUE_PW msg "test: client w/o USE_PSA - server w/ USE_PSA" - P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f ECJPAKE + P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f ECJPAKE -e ECJPAKE_OPAQUE_PW rm s2_no_use_psa c2_no_use_psa } +# Opaque password testing requires a separate test with repect to +# "test_tls1_2_ecjpake_compatibility". In that case there's a mix of PSA and +# MbedTLS based implementations of EC-JPAKE which makes it difficult to parse +# proper strings during the test. As a consequence here we just build the +# PSA variant for both client and server. +component_test_tls1_2_ecjpake_opaque_password() { + msg "build: TLS1.2 server+client w/ opaque password support" + scripts/config.py set MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED + scripts/config.py set MBEDTLS_USE_PSA_CRYPTO + make -C programs ssl/ssl_server2 ssl/ssl_client2 + make -C programs test/udp_proxy test/query_compile_time_config + + tests/ssl-opt.sh -f ECJPAKE_OPAQUE_PW +} + component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" scripts/config.py full diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 53fe49e06..f9393d779 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8008,8 +8008,9 @@ run_test "ECJPAKE: working, TLS" \ -S "SSL - Verification of the message MAC failed" requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "ECJPAKE: working, TLS, opaque password" \ +run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password" \ "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ From 5484e96117cdb050289f4e1507537ee6c196b045 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Wed, 30 Nov 2022 15:54:44 +0000 Subject: [PATCH 1055/1574] Add changelog entry Signed-off-by: Aditya Deshpande --- ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt diff --git a/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt b/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt new file mode 100644 index 000000000..b9c78a645 --- /dev/null +++ b/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt @@ -0,0 +1,5 @@ +Features + * Add a driver dispatch layer for raw key agreement, enabling alternative + implementations of raw key agreement through the key_agreement driver + entry point. This entry point is specified in the proposed PSA driver + interface, but had not yet been implemented. From cff7578822d61943fce9ba7cae14d32f343f605c Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 30 Nov 2022 16:34:07 +0000 Subject: [PATCH 1056/1574] Add imports to bignum_mod Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_mod.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index a604cc0c5..81ece0727 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -14,7 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. +from typing import Dict, List # pylint: disable=unused-import + from . import test_data_generation +from . import bignum_common # pylint: disable=unused-import class BignumModTarget(test_data_generation.BaseTarget): #pylint: disable=abstract-method, too-few-public-methods From 3d4ea5490f6004cbf1ad7a03280a6a5ff5c69351 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 17:35:44 +0100 Subject: [PATCH 1057/1574] Move lcov commands to a separate script Signed-off-by: Gilles Peskine --- Makefile | 9 +-------- scripts/lcov.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 8 deletions(-) create mode 100755 scripts/lcov.sh diff --git a/Makefile b/Makefile index 5b2ad16cd..85fa093ae 100644 --- a/Makefile +++ b/Makefile @@ -145,14 +145,7 @@ covtest: tests/ssl-opt.sh lcov: - rm -rf Coverage - lcov --capture --initial --directory library -o files.info - lcov --rc lcov_branch_coverage=1 --capture --directory library -o tests.info - lcov --rc lcov_branch_coverage=1 --add-tracefile files.info --add-tracefile tests.info -o all.info - lcov --rc lcov_branch_coverage=1 --remove all.info -o final.info '*.h' - gendesc tests/Descriptions.txt -o descriptions - genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --branch-coverage -o Coverage final.info - rm -f files.info tests.info all.info final.info descriptions + scripts/lcov.sh apidoc: mkdir -p apidoc diff --git a/scripts/lcov.sh b/scripts/lcov.sh new file mode 100755 index 000000000..ab86421f9 --- /dev/null +++ b/scripts/lcov.sh @@ -0,0 +1,10 @@ +#!/bin/sh + + rm -rf Coverage + lcov --capture --initial --directory library -o files.info + lcov --rc lcov_branch_coverage=1 --capture --directory library -o tests.info + lcov --rc lcov_branch_coverage=1 --add-tracefile files.info --add-tracefile tests.info -o all.info + lcov --rc lcov_branch_coverage=1 --remove all.info -o final.info '*.h' + gendesc tests/Descriptions.txt -o descriptions + genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --branch-coverage -o Coverage final.info + rm -f files.info tests.info all.info final.info descriptions From eff88034d4ac8bb6d56777e174db4ece606e5568 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 17:51:44 +0100 Subject: [PATCH 1058/1574] Add a bit of documentation Signed-off-by: Gilles Peskine --- scripts/lcov.sh | 58 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/scripts/lcov.sh b/scripts/lcov.sh index ab86421f9..8c8c8468b 100755 --- a/scripts/lcov.sh +++ b/scripts/lcov.sh @@ -1,10 +1,52 @@ #!/bin/sh - rm -rf Coverage - lcov --capture --initial --directory library -o files.info - lcov --rc lcov_branch_coverage=1 --capture --directory library -o tests.info - lcov --rc lcov_branch_coverage=1 --add-tracefile files.info --add-tracefile tests.info -o all.info - lcov --rc lcov_branch_coverage=1 --remove all.info -o final.info '*.h' - gendesc tests/Descriptions.txt -o descriptions - genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --branch-coverage -o Coverage final.info - rm -f files.info tests.info all.info final.info descriptions +help () { + cat < Date: Wed, 30 Nov 2022 17:52:01 +0100 Subject: [PATCH 1059/1574] Call the new lcov script from CMake builds The code in CMakeLists.txt was an old copy of the code in Makefile. This brings in branch coverage, which had only been added to Makefile. Signed-off-by: Gilles Peskine --- CMakeLists.txt | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59a960a8b..3a870a758 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -312,14 +312,7 @@ if(ENABLE_TESTING) ) ADD_CUSTOM_TARGET(lcov - COMMAND rm -rf Coverage - COMMAND lcov --capture --initial --directory library/CMakeFiles/mbedtls.dir -o files.info - COMMAND lcov --capture --directory library/CMakeFiles/mbedtls.dir -o tests.info - COMMAND lcov --add-tracefile files.info --add-tracefile tests.info -o all.info - COMMAND lcov --remove all.info -o final.info '*.h' - COMMAND gendesc tests/Descriptions.txt -o descriptions - COMMAND genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --no-branch-coverage -o Coverage final.info - COMMAND rm -f files.info tests.info all.info final.info descriptions + COMMAND scripts/lcov.sh ) ADD_CUSTOM_TARGET(memcheck From d7db883b712448dfcbed989787b7931fa4d75823 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 17:52:54 +0100 Subject: [PATCH 1060/1574] Fix "make lcov" in CMake out-of-tree builds Signed-off-by: Gilles Peskine --- tests/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ae3d05459..965daa88f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -242,6 +242,7 @@ if (NOT ${CMAKE_CURRENT_BINARY_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/seedfile") link_to_source(seedfile) endif() + link_to_source(Descriptions.txt) link_to_source(compat.sh) link_to_source(context-info.sh) link_to_source(data_files) From e628f291ae6efe77383aae11dfcf564e359fb631 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 17:56:58 +0100 Subject: [PATCH 1061/1574] Put temporary files in a temporary directory Signed-off-by: Gilles Peskine --- scripts/lcov.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/scripts/lcov.sh b/scripts/lcov.sh index 8c8c8468b..80ebc7987 100755 --- a/scripts/lcov.sh +++ b/scripts/lcov.sh @@ -34,13 +34,14 @@ set -eu lcov_rebuild_stats () { rm -rf Coverage - lcov --capture --initial --directory library -o files.info - lcov --rc lcov_branch_coverage=1 --capture --directory library -o tests.info - lcov --rc lcov_branch_coverage=1 --add-tracefile files.info --add-tracefile tests.info -o all.info - lcov --rc lcov_branch_coverage=1 --remove all.info -o final.info '*.h' - gendesc tests/Descriptions.txt -o descriptions - genhtml --title "mbed TLS" --description-file descriptions --keep-descriptions --legend --branch-coverage -o Coverage final.info - rm -f files.info tests.info all.info final.info descriptions + mkdir Coverage Coverage/tmp + lcov --capture --initial --directory library -o Coverage/tmp/files.info + lcov --rc lcov_branch_coverage=1 --capture --directory library -o Coverage/tmp/tests.info + lcov --rc lcov_branch_coverage=1 --add-tracefile Coverage/tmp/files.info --add-tracefile Coverage/tmp/tests.info -o Coverage/tmp/all.info + lcov --rc lcov_branch_coverage=1 --remove Coverage/tmp/all.info -o Coverage/tmp/final.info '*.h' + gendesc tests/Descriptions.txt -o Coverage/tmp/descriptions + genhtml --title "mbed TLS" --description-file Coverage/tmp/descriptions --keep-descriptions --legend --branch-coverage -o Coverage Coverage/tmp/final.info + rm -f Coverage/tmp/*.info Coverage/tmp/descriptions echo "Coverage report in: Coverage/index.html" } From 749a0d7be8d2a70443e553c1d26f86cb8b8c66fe Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 18:08:14 +0100 Subject: [PATCH 1062/1574] Add option to reset the traces, to use after rework Signed-off-by: Gilles Peskine --- scripts/lcov.sh | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/scripts/lcov.sh b/scripts/lcov.sh index 80ebc7987..718166ddb 100755 --- a/scripts/lcov.sh +++ b/scripts/lcov.sh @@ -2,7 +2,7 @@ help () { cat <&1; exit 120;; + esac +done +shift $((OPTIND - 1)) + +"$main" "$@" From fb5fedcd00726555def8b1d47293e87562db0f86 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 30 Nov 2022 15:20:33 +0000 Subject: [PATCH 1063/1574] Add tests for alignment.h Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.data | 113 ++++++ tests/suites/test_suite_alignment.function | 377 +++++++++++++++++++++ 2 files changed, 490 insertions(+) create mode 100644 tests/suites/test_suite_alignment.data create mode 100644 tests/suites/test_suite_alignment.function diff --git a/tests/suites/test_suite_alignment.data b/tests/suites/test_suite_alignment.data new file mode 100644 index 000000000..84b568b74 --- /dev/null +++ b/tests/suites/test_suite_alignment.data @@ -0,0 +1,113 @@ +Aligned 16-bit access +mbedtls_unaligned_access:16:0 + +Aligned 32-bit access +mbedtls_unaligned_access:32:0 + +Aligned 64-bit access +mbedtls_unaligned_access:64:0 + +Unaligned 16-bit access offset=1 +mbedtls_unaligned_access:16:1 + +Unaligned 32-bit access offset=1 +mbedtls_unaligned_access:32:1 + +Unaligned 64-bit access offset=1 +mbedtls_unaligned_access:64:1 + +Unaligned 16-bit access offset=4 +mbedtls_unaligned_access:16:4 + +Unaligned 32-bit access offset=4 +mbedtls_unaligned_access:32:4 + +Unaligned 64-bit access offset=4 +mbedtls_unaligned_access:64:4 + +Unaligned 16-bit access offset=7 +mbedtls_unaligned_access:16:7 + +Unaligned 32-bit access offset=7 +mbedtls_unaligned_access:32:7 + +Unaligned 64-bit access offset=7 +mbedtls_unaligned_access:64:7 + +Unaligned 16-bit access offset=8 +mbedtls_unaligned_access:16:8 + +Unaligned 32-bit access offset=8 +mbedtls_unaligned_access:32:8 + +Unaligned 64-bit access offset=8 +mbedtls_unaligned_access:64:8 + +Byteswap 16 +mbedtls_byteswap:0x07060504:0x03020100:16:0x00:0x01 + +Byteswap 16 all-zero +mbedtls_byteswap:0x0:0x0:16:0x00:0x0 + +Byteswap 16 all-ones +mbedtls_byteswap:0xffffffff:0xffffffff:16:0x00:0xffff + +Byteswap 32 +mbedtls_byteswap:0x07060504:0x03020100:32:0x00:0x010203 + +Byteswap 32 all-zero +mbedtls_byteswap:0x0:0x0:32:0x00:0x0 + +Byteswap 32 all-ones +mbedtls_byteswap:0xffffffff:0xffffffff:32:0x00:0xffffffff + +Byteswap 64 +mbedtls_byteswap:0x07060504:0x03020100:64:0x010203:0x04050607 + +Byteswap 64 all-zero +mbedtls_byteswap:0x0:0x0:64:0x00:0x0 + +Byteswap 64 all-ones +mbedtls_byteswap:0xffffffff:0xffffffff:64:0xffffffff:0xffffffff + +Get individual bytes +get_byte + +Endian-aware unaligned 16-bit BE offset=0 +unaligned_access_endian_aware:16:0:1 + +Endian-aware unaligned 16-bit BE offset=3 +unaligned_access_endian_aware:16:3:1 + +Endian-aware unaligned 16-bit LE offset=0 +unaligned_access_endian_aware:16:0:0 + +Endian-aware unaligned 16-bit LE offset=3 +unaligned_access_endian_aware:16:3:0 + +Endian-aware unaligned 32-bit BE offset=0 +unaligned_access_endian_aware:32:0:1 + +Endian-aware unaligned 32-bit BE offset=3 +unaligned_access_endian_aware:32:3:1 + +Endian-aware unaligned 32-bit LE offset=0 +unaligned_access_endian_aware:32:0:0 + +Endian-aware unaligned 32-bit LE offset=3 +unaligned_access_endian_aware:32:3:0 + +Endian-aware unaligned 64-bit BE offset=0 +unaligned_access_endian_aware:64:0:1 + +Endian-aware unaligned 64-bit BE offset=3 +unaligned_access_endian_aware:64:3:1 + +Endian-aware unaligned 64-bit LE offset=0 +unaligned_access_endian_aware:64:0:0 + +Endian-aware unaligned 64-bit LE offset=3 +unaligned_access_endian_aware:64:3:0 + +Big-endian check +mbedtls_is_big_endian diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function new file mode 100644 index 000000000..31d877cdf --- /dev/null +++ b/tests/suites/test_suite_alignment.function @@ -0,0 +1,377 @@ +/* BEGIN_HEADER */ +#include "../library/alignment.h" + +#include +/* END_HEADER */ + +/* BEGIN_CASE */ +void mbedtls_unaligned_access( int size, int offset ) +{ + /* Define 64-bit aligned raw byte array */ + uint64_t raw[2]; + + /* Populate with known data */ + uint8_t *x = (uint8_t *) raw; + for ( size_t i = 0; i < sizeof(raw); i++ ) + x[i] = (uint8_t)i; + + TEST_ASSERT( size == 16 || size == 32 || size == 64 ); + + uint64_t r = 0; + switch ( size ) + { + case 16: + r = mbedtls_get_unaligned_uint16( x + offset ); + break; + case 32: + r = mbedtls_get_unaligned_uint32( x + offset ); + break; + case 64: + r = mbedtls_get_unaligned_uint64( x + offset ); + break; + } + + /* Generate expected result */ + uint64_t expected = 0; + for ( uint8_t i = 0; i < 8; i++ ) + { + uint8_t shift; + if ( MBEDTLS_IS_BIG_ENDIAN ) + { + /* + * Similar to little-endian case described below, but the shift needs + * to be inverted + */ + shift = 7 - ( i * 8 ); + } else { + /* example for offset == 1: + * expected = (( 1 + 0 ) << (0 * 8)) | (( 1 + 1 ) << (1 * 8)) | (( 1 + 2 ) << (2 * 8))) + * = (1 << 0) | (2 << 8) | (3 << 16) ... + * = 0x0807060504030201 + * x = { 0, 1, 2, 3, ... } + * ie expected is the value that would be read from x on a LE system, when + * byte swapping is not performed + */ + shift = i * 8; + } + uint64_t b = offset + i; + expected |= b << shift; + } + + /* Mask out excess bits from expected result */ + switch ( size ) + { + case 16: + expected &= 0xffff; + break; + case 32: + expected &= 0xffffffff; + break; + } + + TEST_EQUAL( r, expected ); + + /* Write sentinel to the part of the array we will testing writing to */ + for ( size_t i = 0; i < (size_t) ( size / 8 ); i++ ) + { + x[i + offset] = 0xff; + } + /* + * Write back to the array with mbedtls_put_unaligned_uint16 and validate + * that the array is unchanged as a result. + */ + switch ( size ) + { + case 16: + mbedtls_put_unaligned_uint16( x + offset, r ); + break; + case 32: + mbedtls_put_unaligned_uint32( x + offset, r ); + break; + case 64: + mbedtls_put_unaligned_uint64( x + offset, r ); + break; + } + for ( size_t i = 0; i < sizeof(x); i++ ) + { + TEST_EQUAL( x[i], (uint8_t)i ); + } +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_byteswap( unsigned int input_h, unsigned int input_l, int size, + unsigned int expected_h, unsigned int expected_l ) +{ + uint64_t input = ( ((uint64_t)input_h ) << 32 ) | ( (uint64_t)input_l ); + uint64_t expected = ( ((uint64_t)expected_h) << 32 ) | ( (uint64_t)expected_l ); + + /* Check against expected */ + uint64_t r; + switch ( size ) + { + case 16: + r = MBEDTLS_BSWAP16( input ); + break; + case 32: + r = MBEDTLS_BSWAP32( input ); + break; + case 64: + r = MBEDTLS_BSWAP64( input ); + break; + } + TEST_EQUAL( r, expected ); + + /* + * Check byte by byte by extracting bytes from opposite ends of + * input and r. + */ + for ( size_t i = 0; i < (size_t)( size / 8 ); i++ ) + { + size_t s1 = i * 8; + size_t s2 = ( ( size / 8 - 1 ) - i ) * 8; + uint64_t a = ( input & ( (uint64_t)0xff << s1 ) ) >> s1; + uint64_t b = ( r & ( (uint64_t)0xff << s2 ) ) >> s2; + TEST_EQUAL( a, b ); + } + + /* Check BSWAP(BSWAP(x)) == x */ + switch ( size ) + { + case 16: + r = MBEDTLS_BSWAP16( r ); + TEST_EQUAL( r, input & 0xffff ); + break; + case 32: + r = MBEDTLS_BSWAP32( r ); + TEST_EQUAL( r, input & 0xffffffff ); + break; + case 64: + r = MBEDTLS_BSWAP64( r ); + TEST_EQUAL( r, input ); + break; + } +} +/* END_CASE */ + +/* BEGIN_CASE */ +void get_byte() +{ + uint8_t data[16]; + + for ( size_t i = 0; i < sizeof(data); i++ ) + data[i] = (uint8_t) i; + + uint64_t u64 = 0x0706050403020100; + for ( size_t b = 0; b < 8 ; b++ ) + { + uint8_t actual; + switch ( b ) + { + case 0: + actual = MBEDTLS_BYTE_0( u64 ); + break; + case 1: + actual = MBEDTLS_BYTE_1( u64 ); + break; + case 2: + actual = MBEDTLS_BYTE_2( u64 ); + break; + case 3: + actual = MBEDTLS_BYTE_3( u64 ); + break; + case 4: + actual = MBEDTLS_BYTE_4( u64 ); + break; + case 5: + actual = MBEDTLS_BYTE_5( u64 ); + break; + case 6: + actual = MBEDTLS_BYTE_6( u64 ); + break; + case 7: + actual = MBEDTLS_BYTE_7( u64 ); + break; + } + uint8_t expected = b; + TEST_EQUAL( actual, expected ); + } + + uint32_t u32 = 0x03020100; + for ( size_t b = 0; b < 4 ; b++ ) + { + uint8_t actual; + switch ( b ) + { + case 0: + actual = MBEDTLS_BYTE_0( u32 ); + break; + case 1: + actual = MBEDTLS_BYTE_1( u32 ); + break; + case 2: + actual = MBEDTLS_BYTE_2( u32 ); + break; + case 3: + actual = MBEDTLS_BYTE_3( u32 ); + break; + } + uint8_t expected = b; + TEST_EQUAL( actual, expected ); + } + + uint16_t u16 = 0x0100; + for ( size_t b = 0; b < 2 ; b++ ) + { + uint8_t actual; + switch ( b ) + { + case 0: + actual = MBEDTLS_BYTE_0( u16 ); + break; + case 1: + actual = MBEDTLS_BYTE_1( u16 ); + break; + } + uint8_t expected = b; + TEST_EQUAL( actual, expected ); + } + + uint8_t u8 = 0x01; + uint8_t actual = MBEDTLS_BYTE_0( u8 ); + TEST_EQUAL( actual, u8 ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void unaligned_access_endian_aware(int size, int offset, int big_endian ) +{ + TEST_ASSERT( size == 16 || size == 24 || size == 32 || size == 64 ); + TEST_ASSERT( offset >= 0 && offset < 8 ); + + /* Define 64-bit aligned raw byte array */ + uint64_t raw[2]; + /* Populate with known data: x == { 0, 1, 2, ... } */ + uint8_t *x = (uint8_t *) raw; + for ( size_t i = 0; i < sizeof(raw); i++ ) + x[i] = (uint8_t) i; + + uint64_t read; + if ( big_endian ) + { + switch ( size ) + { + case 16: + read = MBEDTLS_GET_UINT16_BE( x, offset ); + break; + case 24: + read = MBEDTLS_GET_UINT24_BE( x, offset ); + break; + case 32: + read = MBEDTLS_GET_UINT32_BE( x, offset ); + break; + case 64: + read = MBEDTLS_GET_UINT64_BE( x, offset ); + break; + } + } + else + { + switch ( size ) + { + case 16: + read = MBEDTLS_GET_UINT16_LE( x, offset ); + break; + case 24: + read = MBEDTLS_GET_UINT24_LE( x, offset ); + break; + case 32: + read = MBEDTLS_GET_UINT32_LE( x, offset ); + break; + case 64: + read = MBEDTLS_GET_UINT64_LE( x, offset ); + break; + } + } + + /* Build up expected value byte by byte, in either big or little endian format */ + uint64_t expected = 0; + for ( size_t i = 0; i < (size_t)(size / 8); i++ ) + { + uint64_t b = x[i + offset]; + uint8_t shift = (big_endian) ? (8 * ((size / 8 - 1) - i)) : (8 * i); + expected |= b << shift; + } + + /* Verify read */ + TEST_EQUAL( read, expected ); + + /* Test writing back to memory. First write sentiel */ + for ( size_t i = 0; i < (size_t)(size / 8); i++ ) + { + x[i + offset] = 0xff; + } + /* Overwrite sentinel with endian-aware write macro */ + if ( big_endian ) + { + switch ( size ) + { + case 16: + MBEDTLS_PUT_UINT16_BE( read, x, offset ); + break; + case 24: + MBEDTLS_PUT_UINT24_BE( read, x, offset ); + break; + case 32: + MBEDTLS_PUT_UINT32_BE( read, x, offset ); + break; + case 64: + MBEDTLS_PUT_UINT64_BE( read, x, offset ); + break; + } + } + else + { + switch ( size ) + { + case 16: + MBEDTLS_PUT_UINT16_LE( read, x, offset ); + break; + case 24: + MBEDTLS_PUT_UINT24_LE( read, x, offset ); + break; + case 32: + MBEDTLS_PUT_UINT32_LE( read, x, offset ); + break; + case 64: + MBEDTLS_PUT_UINT64_LE( read, x, offset ); + break; + } + } + + /* Verify write - check memory is correct */ + for ( size_t i = 0; i < sizeof(raw); i++ ) + TEST_EQUAL( x[i], (uint8_t) i ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_is_big_endian() +{ + uint16_t check = 0x1234; + uint8_t* p = (uint8_t*) ✓ + + if ( MBEDTLS_IS_BIG_ENDIAN ) + { + /* Big-endian: data stored MSB first, i.e. p == { 0x12, 0x34 } */ + TEST_EQUAL( p[0], 0x12 ); + TEST_EQUAL( p[1], 0x34 ); + } + else + { + /* Little-endian: data stored LSB first, i.e. p == { 0x34, 0x12 } */ + TEST_EQUAL( p[0], 0x34 ); + TEST_EQUAL( p[1], 0x12 ); + } +} +/* END_CASE */ From 7f62f36f820f368e27424a7721415b181432a76d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 09:44:31 +0000 Subject: [PATCH 1064/1574] Add changelog entry Signed-off-by: Dave Rodgman --- ChangeLog.d/alignment-perf.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/alignment-perf.txt diff --git a/ChangeLog.d/alignment-perf.txt b/ChangeLog.d/alignment-perf.txt new file mode 100644 index 000000000..8ab649bbc --- /dev/null +++ b/ChangeLog.d/alignment-perf.txt @@ -0,0 +1,4 @@ +Features + * Improvements to the code used to access unaligned and byte-swapped memory + reduce code size and improve performance (depending on compiler and target + architecture). From 28f424f2380eac2e4ea6a53eb48adea4f31e440c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 09:49:44 +0000 Subject: [PATCH 1065/1574] Clarify support for mixed-endian platforms Signed-off-by: Dave Rodgman --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 1a4edb05c..8a23bd28c 100644 --- a/README.md +++ b/README.md @@ -261,6 +261,7 @@ Mbed TLS is mostly written in portable C99; however, it has a few platform requi - Signed integers must be represented using two's complement. - `int` and `size_t` must be at least 32 bits wide. - The types `uint8_t`, `uint16_t`, `uint32_t` and their signed equivalents must be available. +- Mixed-endian platforms are not supported. PSA cryptography API -------------------- From 63e6a88874bcdb4a52738ba5e8d8e39a00ed6855 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 10:01:08 +0000 Subject: [PATCH 1066/1574] Suppress over-eager compiler warning in tests Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.function | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index 31d877cdf..39bccb0c4 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -2,6 +2,8 @@ #include "../library/alignment.h" #include + +#pragma clang diagnostic ignored "-Wunreachable-code" /* END_HEADER */ /* BEGIN_CASE */ From 9dc55ba9323f96ea8fc436853727ff4340a5d822 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 10:49:53 +0000 Subject: [PATCH 1067/1574] Suppress over-eager compiler warnings in test code Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.function | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index 39bccb0c4..3014b436d 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -3,7 +3,9 @@ #include +#if defined(__clang__) #pragma clang diagnostic ignored "-Wunreachable-code" +#endif /* END_HEADER */ /* BEGIN_CASE */ @@ -109,7 +111,7 @@ void mbedtls_byteswap( unsigned int input_h, unsigned int input_l, int size, uint64_t expected = ( ((uint64_t)expected_h) << 32 ) | ( (uint64_t)expected_l ); /* Check against expected */ - uint64_t r; + uint64_t r = 0; switch ( size ) { case 16: @@ -121,6 +123,8 @@ void mbedtls_byteswap( unsigned int input_h, unsigned int input_l, int size, case 64: r = MBEDTLS_BSWAP64( input ); break; + default: + TEST_ASSERT( ! "size must be 16, 32 or 64" ); } TEST_EQUAL( r, expected ); @@ -258,7 +262,7 @@ void unaligned_access_endian_aware(int size, int offset, int big_endian ) for ( size_t i = 0; i < sizeof(raw); i++ ) x[i] = (uint8_t) i; - uint64_t read; + uint64_t read = 0; if ( big_endian ) { switch ( size ) From 7fc53dd83dcff40256c22ab964d63a41203d4301 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 11:42:29 +0000 Subject: [PATCH 1068/1574] Suppress over-eager compiler warnings in tests Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index 3014b436d..fe576cf67 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -171,7 +171,8 @@ void get_byte() uint64_t u64 = 0x0706050403020100; for ( size_t b = 0; b < 8 ; b++ ) { - uint8_t actual; + uint8_t expected = b; + uint8_t actual = b + 1; switch ( b ) { case 0: @@ -199,14 +200,14 @@ void get_byte() actual = MBEDTLS_BYTE_7( u64 ); break; } - uint8_t expected = b; TEST_EQUAL( actual, expected ); } uint32_t u32 = 0x03020100; for ( size_t b = 0; b < 4 ; b++ ) { - uint8_t actual; + uint8_t expected = b; + uint8_t actual = b + 1; switch ( b ) { case 0: @@ -222,14 +223,14 @@ void get_byte() actual = MBEDTLS_BYTE_3( u32 ); break; } - uint8_t expected = b; TEST_EQUAL( actual, expected ); } uint16_t u16 = 0x0100; for ( size_t b = 0; b < 2 ; b++ ) { - uint8_t actual; + uint8_t expected = b; + uint8_t actual = b + 1; switch ( b ) { case 0: @@ -239,7 +240,6 @@ void get_byte() actual = MBEDTLS_BYTE_1( u16 ); break; } - uint8_t expected = b; TEST_EQUAL( actual, expected ); } From 481a5e427bb6efcde178bc38d666c2e5100f9dd8 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 13:31:20 +0000 Subject: [PATCH 1069/1574] Improve parsing of test data Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.data | 24 +++++++++------ tests/suites/test_suite_alignment.function | 34 ++++++++++++++++++---- 2 files changed, 44 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_alignment.data b/tests/suites/test_suite_alignment.data index 84b568b74..8c0c21d72 100644 --- a/tests/suites/test_suite_alignment.data +++ b/tests/suites/test_suite_alignment.data @@ -44,31 +44,37 @@ Unaligned 64-bit access offset=8 mbedtls_unaligned_access:64:8 Byteswap 16 -mbedtls_byteswap:0x07060504:0x03020100:16:0x00:0x01 +mbedtls_byteswap:"0100":16:"0001" + +Byteswap 16 with truncation +mbedtls_byteswap:"0706050403020100":16:"0001" Byteswap 16 all-zero -mbedtls_byteswap:0x0:0x0:16:0x00:0x0 +mbedtls_byteswap:"0000":16:"0000" Byteswap 16 all-ones -mbedtls_byteswap:0xffffffff:0xffffffff:16:0x00:0xffff +mbedtls_byteswap:"ffffffffffffffff":16:"ffff" Byteswap 32 -mbedtls_byteswap:0x07060504:0x03020100:32:0x00:0x010203 +mbedtls_byteswap:"03020100":32:"00010203" + +Byteswap 32 with truncation +mbedtls_byteswap:"0706050403020100":32:"00010203" Byteswap 32 all-zero -mbedtls_byteswap:0x0:0x0:32:0x00:0x0 +mbedtls_byteswap:"00000000":32:"00000000" Byteswap 32 all-ones -mbedtls_byteswap:0xffffffff:0xffffffff:32:0x00:0xffffffff +mbedtls_byteswap:"ffffffffffffffff":32:"ffffffff" Byteswap 64 -mbedtls_byteswap:0x07060504:0x03020100:64:0x010203:0x04050607 +mbedtls_byteswap:"0706050403020100":64:"01020304050607" Byteswap 64 all-zero -mbedtls_byteswap:0x0:0x0:64:0x00:0x0 +mbedtls_byteswap:"0000000000000000":64:"0000000000000000" Byteswap 64 all-ones -mbedtls_byteswap:0xffffffff:0xffffffff:64:0xffffffff:0xffffffff +mbedtls_byteswap:"ffffffffffffffff":64:"ffffffffffffffff" Get individual bytes get_byte diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index fe576cf67..06c566888 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -6,6 +6,30 @@ #if defined(__clang__) #pragma clang diagnostic ignored "-Wunreachable-code" #endif +#include + +/* + * Convert a string of the form "abcd" (case-insensitive) to a uint64_t. + */ +int parse_hex_string( char* hex_string, uint64_t *result ) +{ + uint8_t raw[8]; + size_t olen; + if ( mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0 ) return 0; + *result = 0; + for ( size_t i = 0; i < olen; i++ ) + { + if ( MBEDTLS_IS_BIG_ENDIAN ) { + *result |= ((uint64_t)raw[i]) << ( i * 8 ); + } + else + { + *result |= ((uint64_t)raw[i]) << ( (olen - i - 1) * 8 ); + } + } + return 1; +} + /* END_HEADER */ /* BEGIN_CASE */ @@ -104,13 +128,13 @@ void mbedtls_unaligned_access( int size, int offset ) /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_byteswap( unsigned int input_h, unsigned int input_l, int size, - unsigned int expected_h, unsigned int expected_l ) +void mbedtls_byteswap( char* input_str, int size, char *expected_str ) { - uint64_t input = ( ((uint64_t)input_h ) << 32 ) | ( (uint64_t)input_l ); - uint64_t expected = ( ((uint64_t)expected_h) << 32 ) | ( (uint64_t)expected_l ); + uint64_t input, expected; + TEST_ASSERT( parse_hex_string( input_str, &input ) ); + TEST_ASSERT( parse_hex_string( expected_str, &expected ) ); - /* Check against expected */ + /* Check against expected result */ uint64_t r = 0; switch ( size ) { From 094432903603a19e23419652127c34475212a7d0 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 1 Dec 2022 15:06:09 +0100 Subject: [PATCH 1070/1574] tls: pake: add check for empty passwords in mbedtls_ssl_set_hs_ecjpake_password() Signed-off-by: Valerio Setti --- library/ssl_tls.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index f1d286c7d..47c02a603 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1991,6 +1991,10 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, else role = MBEDTLS_ECJPAKE_CLIENT; + /* Empty password is not valid */ + if( ( pw == NULL) || ( pw_len == 0 ) ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + return( mbedtls_ecjpake_setup( &ssl->handshake->ecjpake_ctx, role, MBEDTLS_MD_SHA256, From 4452e98ec19faa66628f8d2fbf97d627b87ea2c7 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 1 Dec 2022 15:08:35 +0100 Subject: [PATCH 1071/1574] test: pake: add tests for set password functions Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.data | 28 ++++++++++ tests/suites/test_suite_ssl.function | 83 ++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index a35762d7f..0cec78493 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3567,3 +3567,31 @@ cookie_parsing:"16fefd0000000000000000002F010000de000000000000011efefd7b72727272 TLS 1.3 srv Certificate msg - wrong vector lengths tls13_server_certificate_msg_invalid_vector_len + +EC-JPAKE set password +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +ssl_ecjpake_set_password:0:ECJPAKE_ERR_NONE:0 + +EC-JPAKE set password - uninitiazed SSL context +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +ssl_ecjpake_set_password:0:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA + +EC-JPAKE set password - empty password +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +ssl_ecjpake_set_password:0:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA + +EC-JPAKE set opaque password +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO +ssl_ecjpake_set_password:1:ECJPAKE_ERR_NONE:0 + +EC-JPAKE set opaque password - uninitiazed SSL context +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO +ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA + +EC-JPAKE set opaque password - empty password +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO +ssl_ecjpake_set_password:1:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA + +EC-JPAKE set opaque password - uninitalized password key +depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO +ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNINITIALIZED_PWD_KEY:MBEDTLS_ERR_SSL_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7447a1d0e..bfc6a379f 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2582,6 +2582,15 @@ int tweak_tls13_certificate_msg_vector_len( return( 0 ); } #endif /* MBEDTLS_TEST_HOOKS */ + +typedef enum { + ECJPAKE_ERR_NONE, + ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT, + ECJPAKE_ERR_EMPTY_PASSWORD, + ECJPAKE_ERR_UNINITIALIZED_PWD_KEY, +} ecjpake_err_inj_step_t; + +#define ECJPAKE_TEST_PWD "bla" /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -6180,3 +6189,77 @@ exit: USE_PSA_DONE( ); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ +void ssl_ecjpake_set_password( int use_opaque_arg, + int err_injection_step_arg, + int expected_error_arg ) +{ + mbedtls_ssl_context ssl; + mbedtls_ssl_config conf; +#if defined( MBEDTLS_USE_PSA_CRYPTO ) + mbedtls_svc_key_id_t pwd_slot = MBEDTLS_SVC_KEY_ID_INIT; +#else /* MBEDTLS_USE_PSA_CRYPTO */ + (void) use_opaque_arg; +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + const unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = ""; + size_t pwd_len = 0; + ecjpake_err_inj_step_t err_injection_step = err_injection_step_arg; + int ret; + + USE_PSA_INIT( ); + + mbedtls_ssl_init( &ssl ); + + if( err_injection_step == ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT ) + goto run_test; + + mbedtls_ssl_config_init( &conf ); + + TEST_ASSERT( mbedtls_ssl_config_defaults( &conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT ) + == 0 ); + + TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + + if( err_injection_step == ECJPAKE_ERR_EMPTY_PASSWORD ) + goto run_test; + + pwd_len = strlen( ECJPAKE_TEST_PWD ); + memcpy( (void*) pwd_string, ECJPAKE_TEST_PWD, pwd_len ); + +#if defined( MBEDTLS_USE_PSA_CRYPTO ) + if( use_opaque_arg ) + { + if( err_injection_step == ECJPAKE_ERR_UNINITIALIZED_PWD_KEY ) + goto run_test; + + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); + psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + + TEST_ASSERT( psa_import_key( &attributes, pwd_string, + pwd_len, &pwd_slot ) == PSA_SUCCESS ); + } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + +run_test: +#if defined( MBEDTLS_USE_PSA_CRYPTO ) + ret = ( use_opaque_arg ) ? + mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : + mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); +#else /* MBEDTLS_USE_PSA_CRYPTO */ + ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + TEST_EQUAL( ret, expected_error_arg ); + + mbedtls_ssl_free( &ssl ); + mbedtls_ssl_config_free( &conf ); + + USE_PSA_DONE( ); +} +/* END_CASE */ From dc40bbc2d7c42f98d4ecc503dccebbe41c5dad03 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 1 Dec 2022 15:25:49 +0100 Subject: [PATCH 1072/1574] test: pake: remove redundant test for opaque passwords This is already covered by other already existing cases such as "component_test_full_cmake_gcc_asan" which build with "config.py full" and run all "ssl-opt.sh" test cases. Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index f465616d0..435ea232d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1463,21 +1463,6 @@ component_test_tls1_2_ecjpake_compatibility() { rm s2_no_use_psa c2_no_use_psa } -# Opaque password testing requires a separate test with repect to -# "test_tls1_2_ecjpake_compatibility". In that case there's a mix of PSA and -# MbedTLS based implementations of EC-JPAKE which makes it difficult to parse -# proper strings during the test. As a consequence here we just build the -# PSA variant for both client and server. -component_test_tls1_2_ecjpake_opaque_password() { - msg "build: TLS1.2 server+client w/ opaque password support" - scripts/config.py set MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED - scripts/config.py set MBEDTLS_USE_PSA_CRYPTO - make -C programs ssl/ssl_server2 ssl/ssl_client2 - make -C programs test/udp_proxy test/query_compile_time_config - - tests/ssl-opt.sh -f ECJPAKE_OPAQUE_PW -} - component_test_psa_external_rng_use_psa_crypto () { msg "build: full + PSA_CRYPTO_EXTERNAL_RNG + USE_PSA_CRYPTO minus CTR_DRBG" scripts/config.py full From 62b20488f18904f5ed36cd2443e1236b449750de Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 1 Dec 2022 14:27:37 +0000 Subject: [PATCH 1073/1574] Implement mbedtls_mpi_mod_sub() Signed-off-by: Tom Cosgrove --- library/bignum_mod.c | 11 ++ library/bignum_mod.h | 30 ++++- scripts/mbedtls_dev/bignum_mod.py | 19 +++ tests/suites/test_suite_bignum_mod.data | 21 +++ tests/suites/test_suite_bignum_mod.function | 138 ++++++++++++++++++++ 5 files changed, 218 insertions(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7a5539d8d..7cf2fb22c 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -179,7 +179,18 @@ exit: /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ +int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ) +{ + if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + mbedtls_mpi_mod_raw_sub( X->p, A->p, B->p, N ); + + return( 0 ); +} /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index d92f21ee0..0a8f4d3d0 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -163,7 +163,35 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ - +/** + * \brief Perform a fixed-size modular subtraction. + * + * Calculate `A - B modulo N`. + * + * \p A, \p B and \p X must all have the same number of limbs as \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. + * + * \note This function does not check that \p A or \p B are in canonical + * form (that is, are < \p N) - that will have been done by + * mbedtls_mpi_mod_residue_setup(). + * + * \param[out] X The address of the result MPI. Must be initialized. + * Must have the same number of limbs as the modulus \p N. + * \param[in] A The address of the first MPI. + * \param[in] B The address of the second MPI. + * \param[in] N The address of the modulus. Used to perform a modulo + * operation on the result of the subtraction. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the given MPIs do not + * have the correct number of limbs. + */ +int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ); /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 81ece0727..5f4e362b0 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -34,6 +34,25 @@ class BignumModTarget(test_data_generation.BaseTarget): # BEGIN MERGE SLOT 3 +class BignumModSub(bignum_common.ModOperationCommon, BignumModTarget): + """Test cases for bignum mpi_mod_sub().""" + symbol = "-" + test_function = "mpi_mod_sub" + test_name = "mbedtls_mpi_mod_sub" + input_style = "fixed" + arity = 2 + + # To make negative tests easier, append 0 for success to the generated cases + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.arg_n, + self.arg_a, + self.arg_b] + ] + self.result() + ["0"] + + def result(self) -> List[str]: + result = (self.int_a - self.int_b) % self.int_n + return [self.format_result(result)] + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 2ea4a5833..501d9d7d8 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -17,6 +17,27 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # BEGIN MERGE SLOT 3 +mpi_mod_sub base case for negative testing (N, a, b all >= 1 limb) +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"013fe57440828b4a0008aa4159":0 + +mpi_mod_sub with modulus too long/both inputs too short +mpi_mod_sub:"0000000014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_sub with first input too long +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_sub with second input too long +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_sub with both inputs too long +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_sub with first input too short +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"a99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_sub with second input too short +mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index a941cb642..abf6732b4 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -4,6 +4,47 @@ #include "bignum_mod.h" #include "constant_time_internal.h" #include "test/constant_flow.h" + +#define TEST_COMPARE_MPI_RESIDUES( a, b ) \ + ASSERT_COMPARE( (a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \ + (b).p, (b).limbs * sizeof(mbedtls_mpi_uint) ) + +int test_read_modulus( mbedtls_mpi_mod_modulus *m, + mbedtls_mpi_mod_rep_selector int_rep, + char *input ) +{ + mbedtls_mpi_uint *p = NULL; + size_t limbs; + + int ret = mbedtls_test_read_mpi_core( &p, &limbs, input ); + if( ret != 0 ) + return( ret ); + + return( mbedtls_mpi_mod_modulus_setup( m, p, limbs, int_rep ) ); +} + +int test_read_residue( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + char *input, + int skip_limbs_and_value_checks ) +{ + mbedtls_mpi_uint *p = NULL; + size_t limbs; + + int ret = mbedtls_test_read_mpi_core( &p, &limbs, input ); + if( ret != 0 ) + return( ret ); + + if( skip_limbs_and_value_checks ) + { + r->p = p; + r->limbs = limbs; + return( 0 ); + } + + /* mbedtls_mpi_mod_residue_setup() checks limbs, and that value < m */ + return( mbedtls_mpi_mod_residue_setup( r, m, p, limbs ) ); +} /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -64,7 +105,104 @@ exit: /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ +/* BEGIN_CASE */ +void mpi_mod_sub( char * input_N, + char * input_A, char * input_B, + char * input_D, int oret ) +{ + mbedtls_mpi_mod_residue a = { NULL, 0 }; + mbedtls_mpi_mod_residue b = { NULL, 0 }; + mbedtls_mpi_mod_residue d = { NULL, 0 }; + mbedtls_mpi_mod_residue x = { NULL, 0 }; + mbedtls_mpi_uint *X_raw = NULL; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( 0, + test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + + /* test_read_residue() normally checks that inputs have the same number of + * limbs as the modulus. For negative testing we can ask it to skip this + * with a non-zero final parameter. */ + TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &d, &m, input_D, oret != 0 ) ); + + size_t limbs = m.limbs; + size_t bytes = limbs * sizeof( *X_raw ); + + /* One spare limb for negative testing */ + ASSERT_ALLOC( X_raw, limbs + 1 ); + + if( oret == 0 ) + { + /* Sneak in a couple of negative tests on known-good data */ + + /* First, negative test with too many limbs in output */ + x.p = X_raw; + x.limbs = limbs + 1; + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + + /* Then negative test with too few limbs in output */ + if( limbs > 1 ) + { + x.p = X_raw; + x.limbs = limbs - 1; + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + } + + /* Negative testing with too many/too few limbs in a and b is covered by + * manually-written test cases with oret != 0. */ + + /* Back to the normally-scheduled programme */ + } + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); + + /* a - b => Correct result, or expected error */ + TEST_EQUAL( oret, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + if( oret != 0 ) + goto exit; + + TEST_COMPARE_MPI_RESIDUES( x, d ); + + /* a - b: alias x to a => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &x, &b, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, d ); + + /* a - b: alias x to b => Correct result */ + memcpy( x.p, b.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &a, &x, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, d ); + + if ( memcmp( a.p, b.p, bytes ) == 0 ) + { + /* a == b: alias a and b */ + + /* a - a => Correct result */ + TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &a, &a, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, d ); + + /* a - a: x, a, b all aliased together => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &x, &x, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, d ); + } + +exit: + mbedtls_free( (void *)m.p ); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ + mbedtls_mpi_mod_modulus_free( &m ); + + mbedtls_free( a.p ); + mbedtls_free( b.p ); + mbedtls_free( d.p ); + mbedtls_free( X_raw ); +} +/* END_CASE */ /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From a6934776c90a834a321daf7eeb35f2ad7d402c50 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 4 Nov 2022 15:39:30 +0800 Subject: [PATCH 1074/1574] Add reco_debug_level to reduce debug output Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1b4a94ab0..69e6b81e4 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -490,6 +490,8 @@ int main( void ) " debug_level=%%d default: 0 (disabled)\n" \ " build_version=%%d default: none (disabled)\n" \ " option: 1 (print build version only and stop)\n" \ + " reco_debug_level=%%d default: 0 (disabled)\n" \ + " debug_level for 2nd flight.\n" \ " buffer_size=%%d default: 200 \n" \ " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ @@ -592,6 +594,7 @@ struct options const char *server_addr; /* address on which the ssl service runs */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ + int reco_debug_level; /* level of 2nd flight debugging */ int nbio; /* should I/O be blocking? */ int event; /* loop or event-driven IO? level or edge triggered? */ uint32_t read_timeout; /* timeout on mbedtls_ssl_read() in milliseconds */ @@ -1629,6 +1632,7 @@ int main( int argc, char *argv[] ) opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; + opt.reco_debug_level = DFL_DEBUG_LEVEL; opt.event = DFL_EVENT; opt.response_size = DFL_RESPONSE_SIZE; opt.nbio = DFL_NBIO; @@ -1755,6 +1759,12 @@ int main( int argc, char *argv[] ) goto exit; } } + else if( strcmp( p, "reco_debug_level" ) == 0 ) + { + opt.reco_debug_level = atoi( q ); + if( opt.reco_debug_level < 0 || opt.reco_debug_level > 65535 ) + goto usage; + } else if( strcmp( p, "nbio" ) == 0 ) { opt.nbio = atoi( q ); @@ -4284,6 +4294,11 @@ close_notify: mbedtls_printf( " done\n" ); +#if defined(MBEDTLS_DEBUG_C) + if( opt.reco_debug_level ) + mbedtls_debug_set_threshold( opt.reco_debug_level ); +#endif + goto reset; /* From 16f6853b054d7551f8bacd5e5f00ebfa7ef8ab50 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 5 Nov 2022 10:50:06 +0800 Subject: [PATCH 1075/1574] Add max_early_data_size config option Signed-off-by: Jerry Yu --- include/mbedtls/check_config.h | 10 ++++++++++ include/mbedtls/mbedtls_config.h | 15 +++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 7f5558087..66407083d 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -32,6 +32,9 @@ #error "mbed TLS requires a platform with 8-bit chars" #endif +/* Need std integer definition for checking max_early_data_size */ +#include + #if defined(_WIN32) #if !defined(MBEDTLS_PLATFORM_C) #error "MBEDTLS_PLATFORM_C is required on Windows" @@ -849,6 +852,13 @@ #error "MBEDTLS_SSL_EARLY_DATA defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_SRV_C) && \ + ( !defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) || \ + ( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE <= 0 ) || \ + ( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE > UINT32_MAX ) ) +#error "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE MUST be defined and in range(1..UINT32_MAX)" +#endif + #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ !defined(MBEDTLS_SSL_PROTO_TLS1_2) #error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c719073c2..f33ce60b7 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1664,6 +1664,8 @@ * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * +* Requires: MBEDTLS_SSL_MAX_EARLY_DATA_SIZE >= 0 +* * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 * is not enabled, this option does not have any effect on the build. * @@ -1673,6 +1675,19 @@ */ //#define MBEDTLS_SSL_EARLY_DATA +/** + * \def MBEDTLS_SSL_MAX_EARLY_DATA_SIZE + * + * The maximium amount of 0-RTT data(RFC8446 section 4.6.1). + * It only works when MBEDTLS_SSL_EARLY_DATA is enabled and MUST be in range + * 1...UINT32_MAX + * + * This feature is experimental, not completed and thus not ready for + * production. + * + */ +#define MBEDTLS_SSL_MAX_EARLY_DATA_SIZE 1024 + /** * \def MBEDTLS_SSL_PROTO_DTLS * From cc4e007ff6de20825b8c2234bdf6a5a61e1f5a0e Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 22 Nov 2022 17:22:22 +0800 Subject: [PATCH 1076/1574] Add max_early_data_size to mbedtls_ssl_config Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 30 ++++++++++++++++++++++++++++++ library/ssl_tls.c | 13 +++++++++++++ 2 files changed, 43 insertions(+) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3165cd56a..edc1a9898 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1524,9 +1524,17 @@ struct mbedtls_ssl_config #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_EARLY_DATA) +#if defined(MBEDTLS_SSL_CLI_C) int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: * - MBEDTLS_SSL_EARLY_DATA_DISABLED, * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ +#endif /* MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SRV_C) + /* The maximium amount of 0-RTT data. RFC 8446 section 4.6.1 */ + uint32_t MBEDTLS_PRIVATE(max_early_data_size); +#endif /* MBEDTLS_SSL_SRV_C */ + #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_ALPN) @@ -1943,6 +1951,7 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) +#if defined(MBEDTLS_SSL_CLI_C) /** * \brief Set the early data mode * Default: disabled on server and client @@ -1964,6 +1973,27 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); +#endif /* MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SRV_C) +/** + * \brief Set the max_early_data_size parameter. + * + * \param[in] conf The SSL configuration to use. + * \param[in] max_early_data_size The maximum amount of 0-RTT data. + * - 0 Disable 0-RTT feature. + * + * \note max_early_data_size MUST be smaller than + * MBEDTLS_SSL_MAX_EARLY_DATA_SIZE. Otherwise, + * MBEDTLS_SSL_MAX_EARLY_DATA_SIZE will be used. + * + * \warning This interface is experimental and may change without notice. + * + */ +void mbedtls_ssl_tls13_conf_max_early_data_size( + mbedtls_ssl_config *conf, uint32_t max_early_data_size ); +#endif /* MBEDTLS_SSL_SRV_C */ + #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_X509_CRT_PARSE_C) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 83f2b3c3e..14ffef20b 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1699,11 +1699,24 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, } #if defined(MBEDTLS_SSL_EARLY_DATA) +#if defined(MBEDTLS_SSL_CLI_C) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ) { conf->early_data_enabled = early_data_enabled; } +#endif /* MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SRV_C) +void mbedtls_ssl_tls13_conf_max_early_data_size( + mbedtls_ssl_config *conf, uint32_t max_early_data_size ) +{ + conf->max_early_data_size = + max_early_data_size < MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ? + max_early_data_size : MBEDTLS_SSL_MAX_EARLY_DATA_SIZE; +} +#endif /* MBEDTLS_SSL_SRV_C */ + #endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ From 7854a4e01947adb30c5d7613f63082e505dfcfad Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 5 Nov 2022 23:14:47 +0800 Subject: [PATCH 1077/1574] Add max_early_data_size option for ssl_sever2 - to set max_early_data_set Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 69e6b81e4..dec50eee5 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -129,6 +129,7 @@ int main( void ) #define DFL_SNI NULL #define DFL_ALPN_STRING NULL #define DFL_CURVES NULL +#define DFL_MAX_EARLY_DATA_SIZE 0 #define DFL_SIG_ALGS NULL #define DFL_DHM_FILE NULL #define DFL_TRANSPORT MBEDTLS_SSL_TRANSPORT_STREAM @@ -424,6 +425,16 @@ int main( void ) #define USAGE_ECJPAKE "" #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) +#define USAGE_EARLY_DATA \ + " max_early_data_size=%%d default: 0 (disabled)\n" \ + " options: 0 (disabled), " \ + " -1 (enabled, builtin max size), " \ + " n > 0 (enabled, max amount data for 0-RTT )\n" +#else +#define USAGE_EARLY_DATA "" +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_ECP_C) #define USAGE_CURVES \ " curves=a,b,c,d default: \"default\" (library default)\n" \ @@ -680,6 +691,7 @@ struct options const char *cid_val_renego; /* the CID to use for incoming messages * after renegotiation */ int reproducible; /* make communication reproducible */ + uint32_t max_early_data_size; /* max amount early data */ int query_config_mode; /* whether to read config */ int use_srtp; /* Support SRTP */ int force_srtp_profile; /* SRTP protection profile to use or all */ @@ -1695,6 +1707,7 @@ int main( int argc, char *argv[] ) opt.sni = DFL_SNI; opt.alpn_string = DFL_ALPN_STRING; opt.curves = DFL_CURVES; + opt.max_early_data_size = DFL_MAX_EARLY_DATA_SIZE; opt.sig_algs = DFL_SIG_ALGS; opt.dhm_file = DFL_DHM_FILE; opt.transport = DFL_TRANSPORT; @@ -1891,6 +1904,12 @@ int main( int argc, char *argv[] ) else if( strcmp( p, "sig_algs" ) == 0 ) opt.sig_algs = q; #endif +#if defined(MBEDTLS_SSL_EARLY_DATA) + else if( strcmp( p, "max_early_data_size" ) == 0 ) + { + opt.max_early_data_size = atoi( q ); + } +#endif /* MBEDTLS_SSL_EARLY_DATA */ else if( strcmp( p, "renegotiation" ) == 0 ) { opt.renegotiation = (atoi( q )) ? @@ -2886,6 +2905,10 @@ int main( int argc, char *argv[] ) if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); +#if defined(MBEDTLS_SSL_EARLY_DATA) + mbedtls_ssl_tls13_conf_max_early_data_size( &conf, opt.max_early_data_size ); +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by From b287ddff7e9d50f10dd31ce6e02cb1f8d310ad69 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 1 Dec 2022 16:18:12 +0100 Subject: [PATCH 1078/1574] test: psa_pake: add more tests for opaque password setting Added mixed cases: - server using opaque password, while client not - client using opaque password, while server not Added a test with mismatched passwords in case both server and client are using opaque passwords (the same test was already present for the non-opaque case) Signed-off-by: Valerio Setti --- tests/ssl-opt.sh | 58 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index f9393d779..547a0f55c 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8010,7 +8010,7 @@ run_test "ECJPAKE: working, TLS" \ requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password" \ +run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client+server" \ "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ @@ -8028,6 +8028,48 @@ run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password" \ -S "SSL - The handshake negotiation failed" \ -S "SSL - Verification of the message MAC failed" +requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client only" \ + "$P_SRV debug_level=3 ecjpake_pw=bla" \ + "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ + force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ + 0 \ + -c "add ciphersuite: c0ff" \ + -c "adding ecjpake_kkpp extension" \ + -c "using opaque password" \ + -S "using opaque password" \ + -C "re-using cached ecjpake parameters" \ + -s "found ecjpake kkpp extension" \ + -S "skip ecjpake kkpp extension" \ + -S "ciphersuite mismatch: ecjpake not configured" \ + -s "server hello, ecjpake kkpp extension" \ + -c "found ecjpake_kkpp extension" \ + -S "SSL - The handshake negotiation failed" \ + -S "SSL - Verification of the message MAC failed" + +requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password server only" \ + "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ + "$P_CLI debug_level=3 ecjpake_pw=bla\ + force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ + 0 \ + -c "add ciphersuite: c0ff" \ + -c "adding ecjpake_kkpp extension" \ + -C "using opaque password" \ + -s "using opaque password" \ + -C "re-using cached ecjpake parameters" \ + -s "found ecjpake kkpp extension" \ + -S "skip ecjpake kkpp extension" \ + -S "ciphersuite mismatch: ecjpake not configured" \ + -s "server hello, ecjpake kkpp extension" \ + -c "found ecjpake_kkpp extension" \ + -S "SSL - The handshake negotiation failed" \ + -S "SSL - Verification of the message MAC failed" + server_needs_more_time 1 requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 @@ -8039,6 +8081,20 @@ run_test "ECJPAKE: password mismatch, TLS" \ -C "re-using cached ecjpake parameters" \ -s "SSL - Verification of the message MAC failed" +server_needs_more_time 1 +requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +run_test "ECJPAKE_OPAQUE_PW: opaque password mismatch, TLS" \ + "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ + "$P_CLI debug_level=3 ecjpake_pw=bad ecjpake_pw_opaque=1 \ + force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ + 1 \ + -c "using opaque password" \ + -s "using opaque password" \ + -C "re-using cached ecjpake parameters" \ + -s "SSL - Verification of the message MAC failed" + requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "ECJPAKE: working, DTLS" \ From e98db0b866996da2fbf71bec92d8cf7e365e4fa8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 1 Dec 2022 16:52:57 +0100 Subject: [PATCH 1079/1574] tls: pake: fix description for mbedtls_ssl_set_hs_ecjpake_password_opaque Signed-off-by: Valerio Setti --- include/mbedtls/ssl.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 575520825..97caad881 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -3864,14 +3864,12 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, /** * \brief Set the EC J-PAKE opaque password for current handshake. * - * \note An internal copy is made, and destroyed as soon as the - * handshake is completed, or when the SSL context is reset or - * freed. + * \note The input key in not copied, so the caller must not destroy + * it before the handshake is over. * * \note The SSL context needs to be already set up. The right place * to call this function is between \c mbedtls_ssl_setup() or * \c mbedtls_ssl_reset() and \c mbedtls_ssl_handshake(). - * Password cannot be empty (see RFC 8236). * * \param ssl SSL context * \param pwd EC J-PAKE opaque password From 202b1a07bacceb2c4b7041f3c95c0554f847c5d3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 1 Dec 2022 17:41:36 +0100 Subject: [PATCH 1080/1574] You need --coverage when linking as well Signed-off-by: Gilles Peskine --- Makefile | 5 +++-- scripts/lcov.sh | 8 +++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 85fa093ae..272252e91 100644 --- a/Makefile +++ b/Makefile @@ -136,8 +136,9 @@ check: lib tests test: check ifndef WINDOWS -# note: for coverage testing, build with: -# make CFLAGS='--coverage -g3 -O0' +# Note: for coverage testing, build with: +# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage -g3 -O0' +# For the reference coverage measurement, see tests/scripts/basic-build-test.sh covtest: $(MAKE) check programs/test/selftest diff --git a/scripts/lcov.sh b/scripts/lcov.sh index 718166ddb..8d141eedf 100755 --- a/scripts/lcov.sh +++ b/scripts/lcov.sh @@ -6,8 +6,14 @@ Usage: $0 [-r] Collect coverage statistics of library code into an HTML report. General instructions: -1. Build the library with CFLAGS="--coverage -O0 -g3". +1. Build the library with CFLAGS="--coverage -O0 -g3" and link the test + programs with LDFLAGS="--coverage". This can be an out-of-tree build. + For example (in-tree): + make CFLAGS="--coverage -O0 -g3" LDFLAGS="--coverage" + Or (out-of-tree): + mkdir build-coverage && cd build-coverage && + cmake -D CMAKE_BUILD_TYPE=Coverage .. && make 2. Run whatever tests you want. 3. Run this script from the parent of the directory containing the library object files and coverage statistics files. From 2f66115e0e0287d0510ab9135f1c6e449ffcd9ba Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 1 Dec 2022 18:05:31 +0100 Subject: [PATCH 1081/1574] No need for -g or -O in LDFLAGS Fix a mistake in the previous commit. Signed-off-by: Gilles Peskine --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 272252e91..af4430510 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,7 @@ test: check ifndef WINDOWS # Note: for coverage testing, build with: -# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage -g3 -O0' +# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage' # For the reference coverage measurement, see tests/scripts/basic-build-test.sh covtest: $(MAKE) check From bc5f03dabc36c80769952725bde07e03f021c546 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 12:36:57 +0000 Subject: [PATCH 1082/1574] Disable PKCS7 by default; improve docs Signed-off-by: Dave Rodgman --- ChangeLog.d/pkcs7-parser.txt | 13 ----------- include/mbedtls/mbedtls_config.h | 5 ++++- include/mbedtls/pkcs7.h | 37 +++++++++++++++++++++++++++----- 3 files changed, 36 insertions(+), 19 deletions(-) delete mode 100644 ChangeLog.d/pkcs7-parser.txt diff --git a/ChangeLog.d/pkcs7-parser.txt b/ChangeLog.d/pkcs7-parser.txt deleted file mode 100644 index 7f85f0ce1..000000000 --- a/ChangeLog.d/pkcs7-parser.txt +++ /dev/null @@ -1,13 +0,0 @@ -Features - * Added partial support for parsing the PKCS7 cryptographic message syntax, - as defined in RFC 2315. Currently, support is limited to the following: - - Only the signed data content type, version 1 is supported. - - Only DER encoding is supported. - - Only a single digest algorithm per message is supported. - - Only 0 or 1, certificate is supported per message, which must be in - X509 format. - - There is no support for certificate-revocation lists. - - The authenticated and unauthenticated attribute fields of SignerInfo - must be empty. - Many thanks to Daniel Axtens, Nayna Jain, and Nick Child from IBM for - contributing this feature. diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c719073c2..db28f06b1 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2817,6 +2817,9 @@ /** * \def MBEDTLS_PKCS7_C * + * This feature is a work in progress and not ready for production. The API may + * change. Testing and validation is incomplete. + * * Enable PKCS7 core for using PKCS7 formatted signatures. * RFC Link - https://tools.ietf.org/html/rfc2315 * @@ -2828,7 +2831,7 @@ * * This module is required for the PKCS7 parsing modules. */ -#define MBEDTLS_PKCS7_C +//#define MBEDTLS_PKCS7_C /** * \def MBEDTLS_PKCS12_C diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 52895ac2b..59a58408b 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -22,6 +22,11 @@ */ /** + * This feature is a work in progress and not ready for production. The API may + * change. Furthermore, please note that the implementation has only been + * validated with well-formed inputs, not yet with untrusted inputs (which is + * almost always the case in practice). + * * Note: For the time being, this implementation of the PKCS7 cryptographic * message syntax is a partial implementation of RFC 2315. * Differences include: @@ -179,7 +184,7 @@ void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ); * * \param pkcs7 The pkcs7 structure to be filled by parser for the output. * \param buf The buffer holding the DER encoded pkcs7. - * \param buflen The size in Bytes of \p buf. + * \param buflen The size in bytes of \p buf. * * \note This function makes an internal copy of the PKCS7 buffer * \p buf. In particular, \p buf may be destroyed or reused @@ -192,7 +197,18 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, const size_t buflen ); /** - * \brief Verification of PKCS7 signature. + * \brief Verification of PKCS7 signature against a caller-supplied + * certificate. + * + * For each signer in the PKCS structure, this function computes + * a signature over the supplied data, using the supplied + * certificate and the same digest algorithm as specified by the + * signer. It then compares this signature against the + * signer's signature; verification succeeds if any comparison + * matches. + * + * This function does not use the certificates held within the + * PKCS7 structure itself. * * \param pkcs7 PKCS7 structure containing signature. * \param cert Certificate containing key to verify signature. @@ -202,7 +218,7 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, * \note This function internally calculates the hash on the supplied * plain data for signature verification. * - * \return A negative error code on failure. + * \return 0 if the signatures match, or a negative error code on failure. */ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, @@ -210,7 +226,18 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, size_t datalen ); /** - * \brief Verification of PKCS7 signature. + * \brief Verification of PKCS7 signature against a caller-supplied + * certificate. + * + * For each signer in the PKCS structure, this function computes + * a signature over the supplied hash, using the supplied + * certificate and the same digest algorithm as specified by the + * signer. It then compares this signature against the + * signer's signature; verification succeeds if any comparison + * matches. + * + * This function does not use the certificates held within the + * PKCS7 structure itself. * * \param pkcs7 PKCS7 structure containing signature. * \param cert Certificate containing key to verify signature. @@ -220,7 +247,7 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, * \note This function is different from mbedtls_pkcs7_signed_data_verify() * in a way that it directly recieves the hash of the data. * - * \return A negative error code on failure. + * \return 0 if the signatures match, or a negative error code on failure. */ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, From 6ebaf7a1f8f5a8b2c63665b583022e1670260780 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 18:33:58 +0000 Subject: [PATCH 1083/1574] Whitespace fix Signed-off-by: Dave Rodgman --- include/mbedtls/mbedtls_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index db28f06b1..0e45bcac1 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2819,7 +2819,7 @@ * * This feature is a work in progress and not ready for production. The API may * change. Testing and validation is incomplete. - * + * * Enable PKCS7 core for using PKCS7 formatted signatures. * RFC Link - https://tools.ietf.org/html/rfc2315 * From 235d1d851945fb3766750c501264e5e681605fcb Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 1 Dec 2022 18:45:02 +0000 Subject: [PATCH 1084/1574] Improve wording Signed-off-by: Dave Rodgman --- include/mbedtls/pkcs7.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 59a58408b..79ab82fff 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -218,7 +218,7 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, * \note This function internally calculates the hash on the supplied * plain data for signature verification. * - * \return 0 if the signatures match, or a negative error code on failure. + * \return 0 if the signature verifies, or a negative error code on failure. */ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, @@ -247,7 +247,7 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, * \note This function is different from mbedtls_pkcs7_signed_data_verify() * in a way that it directly recieves the hash of the data. * - * \return 0 if the signatures match, or a negative error code on failure. + * \return 0 if the signature verifies, or a negative error code on failure. */ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, From 20c1f03dd51ea619ee43420b913c21071e91b08b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:39:44 +0100 Subject: [PATCH 1085/1574] Improve wording, punctuation, etc. Signed-off-by: Gilles Peskine --- ChangeLog.d/dtls-connection-id.txt | 15 ++++++++------- ...tend-query_compile_time_config-to-psa_want.txt | 2 +- ...build_error_for_mbedtls_deprecated_removed.txt | 4 ++-- ...x_build_tls1_2_with_single_encryption_type.txt | 5 ++--- ChangeLog.d/fix_cmake_using_iar_toolchain.txt | 2 +- ...mption_fail_when_hostname_is_not_localhost.txt | 6 +++--- ChangeLog.d/fix_zeroization.txt | 4 ++-- ChangeLog.d/mbedtls_asn1_type_free.txt | 4 ++-- ChangeLog.d/tls13-misc.txt | 11 +++++------ 9 files changed, 26 insertions(+), 27 deletions(-) diff --git a/ChangeLog.d/dtls-connection-id.txt b/ChangeLog.d/dtls-connection-id.txt index eb9e216c4..0d0a71f29 100644 --- a/ChangeLog.d/dtls-connection-id.txt +++ b/ChangeLog.d/dtls-connection-id.txt @@ -5,12 +5,13 @@ Features Changes * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 - of the draft, and was marked experimental and disabled by default. It is - now no longer experimental, and implements the final version from RFC 9146, - which is not interoperable with the draft-05 version. If you need to - communicate with peers that use earlier versions of Mbed TLS, you - need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT to 1, but then you - won't be able to communicate with peers that use the standard (non-draft) - version. If you need to interoperate with both classes of peers with the + of the IETF draft, and was marked experimental and disabled by default. + It is now no longer experimental, and implements the final version from + RFC 9146, which is not interoperable with the draft-05 version. + If you need to communicate with peers that use earlier versions of + Mbed TLS, you need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT to 1, + but then you won't be able to communicate with peers that use the standard + (non-draft) version. + If you need to interoperate with both classes of peers with the same build of Mbed TLS, please let us know about your situation on the mailing list or GitHub. diff --git a/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt b/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt index b268fd4f0..99b2ec4ee 100644 --- a/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt +++ b/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt @@ -1,2 +1,2 @@ Changes - * Add the ability to query PSA_WANT_xxx macros to query_compile_time_config + * Add the ability to query PSA_WANT_xxx macros to query_compile_time_config. diff --git a/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt b/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt index a70521a00..f0fa00046 100644 --- a/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt +++ b/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt @@ -1,3 +1,3 @@ Bugfix - * Fix build error due to missing prototype - warning when MBEDTLS_DEPRECATED_REMOVED is enabled + * Fix a build error due to a missing prototype warning when + MBEDTLS_DEPRECATED_REMOVED is enabled. diff --git a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt index bac491026..c7d269142 100644 --- a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt +++ b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt @@ -1,4 +1,3 @@ Bugfix - * Fix bugs and missing dependencies when - building and testing configurations with - only one encryption type enabled in TLS 1.2. + * Fix bugs and missing dependencies when building and testing + configurations with only one encryption type enabled in TLS 1.2. diff --git a/ChangeLog.d/fix_cmake_using_iar_toolchain.txt b/ChangeLog.d/fix_cmake_using_iar_toolchain.txt index ecc09c241..9ec6e0d6b 100644 --- a/ChangeLog.d/fix_cmake_using_iar_toolchain.txt +++ b/ChangeLog.d/fix_cmake_using_iar_toolchain.txt @@ -1,3 +1,3 @@ Bugfix - * Fixed an issue that cause compile error using CMake IAR toolchain. + * Fix a compilation error when using CMake with an IAR toolchain. Fixes #5964. diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt index 5797f48e8..9f5c6499d 100644 --- a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt +++ b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt @@ -1,4 +1,4 @@ Bugfix - * Fix TLS 1.3 session resumption fail. Fixes #6488. - * Add configuration check to exclude TLS 1.3 optional authentication of - client. + * Fix TLS 1.3 session resumption. Fixes #6488. + * Add a configuration check to exclude optional client authentication + in TLS 1.3 (where it is forbidden). diff --git a/ChangeLog.d/fix_zeroization.txt b/ChangeLog.d/fix_zeroization.txt index ad74d9c59..8b00dcc98 100644 --- a/ChangeLog.d/fix_zeroization.txt +++ b/ChangeLog.d/fix_zeroization.txt @@ -1,3 +1,3 @@ Bugfix - * Fix possible crash in TLS PRF code, if a failure to allocate memory occurs. - Reported by Michael Madsen in #6516. + * Fix a possible null pointer dereference if a memory allocation fails + in TLS PRF code. Reported by Michael Madsen in #6516. diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt index 81f3a2007..a6792afa1 100644 --- a/ChangeLog.d/mbedtls_asn1_type_free.txt +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -1,6 +1,6 @@ Features - * Shared code to free x509 structs like mbedtls_x509_named_data + * Shared code to free x509 structs like mbedtls_x509_named_data. New deprecations * Deprecate mbedtls_asn1_free_named_data(). Use mbedtls_asn1_free_named_data_list() - or mbedtls_asn1_free_named_data_list_shallow() + or mbedtls_asn1_free_named_data_list_shallow(). diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt index 497ed38d2..b76bb9171 100644 --- a/ChangeLog.d/tls13-misc.txt +++ b/ChangeLog.d/tls13-misc.txt @@ -1,9 +1,8 @@ Features - * Mbed TLS supports TLS 1.3 key establishment via pre-shared keys, + * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys, pre-shared keys provisioned externally or via the ticket mechanism (session resumption). - The MBEDTLS_SSL_SESSION_TICKETS configuration option controls the support - for the ticket mechanism. - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED configuration options - have been introduced to control the support for the three possible - TLS 1.3 key exchange modes. + The ticket mechanism is supported when the configuration option + MBEDTLS_SSL_SESSION_TICKETS is enabled. + New options MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED + control the support for the three possible TLS 1.3 key exchange modes. From 6d069afe6b8c251ac2aceae5d204c58daf786ae2 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:40:21 +0100 Subject: [PATCH 1086/1574] Clarify that these two entries are about CMake Signed-off-by: Gilles Peskine --- ChangeLog.d/fix_cmake_gen_files.txt | 4 ++-- ChangeLog.d/fix_hard_link_across_drives.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ChangeLog.d/fix_cmake_gen_files.txt b/ChangeLog.d/fix_cmake_gen_files.txt index 3b2c09992..e4c0c9f7f 100644 --- a/ChangeLog.d/fix_cmake_gen_files.txt +++ b/ChangeLog.d/fix_cmake_gen_files.txt @@ -1,3 +1,3 @@ Bugfix - * Fix an issue in releases with GEN_FILES turned off whereby missing - generated files could be turned into symlinks to themselves. + * Fix an issue with CMake builds in releases with GEN_FILES turned off, + whereby missing generated files could be turned into symlinks to themselves. diff --git a/ChangeLog.d/fix_hard_link_across_drives.txt b/ChangeLog.d/fix_hard_link_across_drives.txt index 0c55c3038..84d4a522c 100644 --- a/ChangeLog.d/fix_hard_link_across_drives.txt +++ b/ChangeLog.d/fix_hard_link_across_drives.txt @@ -1,3 +1,3 @@ Bugfix - * Fix a build issue on Windows where the source and build directory could not be on - different drives (#5751). + * Fix a build issue on Windows using CMake where the source and build + directory could not be on different drives. Fixes #5751. From 29a56a12510519c1411e312df5761eefc881774f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:47:10 +0100 Subject: [PATCH 1087/1574] Clarify ASN.1 entry named data free functions Mention the name of the new functions in the "Features" entry. Clarify what they're for (there's no structure called mbedtls_x509_named_data, it's mbedtls_asn1_named_data, but that name isn't so important here since we've mentioned the names of the functions). Signed-off-by: Gilles Peskine --- ChangeLog.d/mbedtls_asn1_type_free.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt index a6792afa1..3459bbe2d 100644 --- a/ChangeLog.d/mbedtls_asn1_type_free.txt +++ b/ChangeLog.d/mbedtls_asn1_type_free.txt @@ -1,5 +1,7 @@ Features - * Shared code to free x509 structs like mbedtls_x509_named_data. + * The new functions mbedtls_asn1_free_named_data_list() and + mbedtls_asn1_free_named_data_list_shallow() simplify the management + of memory in named data lists in X.509 structures. New deprecations * Deprecate mbedtls_asn1_free_named_data(). Use mbedtls_asn1_free_named_data_list() From 6593c7e1cba6a846906fb01785739d875a3d4e74 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 22:56:35 +0100 Subject: [PATCH 1088/1574] Clarify PSS sigalg entry If my understanding is correct (to be confirmed in review), this is a new feature which was not particularly desired on its own but was the simplest way to fix an interoperability issue in TLS 1.2 caused accidentally by the work on TLS 1.3. Signed-off-by: Gilles Peskine --- ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt b/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt index f88eb9ed4..c87c3fbbf 100644 --- a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt +++ b/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt @@ -1,8 +1,8 @@ Features - * When GnuTLS/Openssl server is configured in TLS 1.2 mode with a certificate - declaring an RSA public key and Mbed TLS is configured in hybrid mode, if - `rsa_pss_rsae_*` algorithms are before `rsa_pkcs1_*` ones in this list then - the GnuTLS/Openssl server chooses an `rsa_pss_rsae_*` signature algorithm - for its signature in the key exchange message. As Mbed TLS 1.2 does not - support them, the handshake fails. Add `rsa_pss_rsae_*` support for TLS 1.2 - to resolve the compitablity issue. + * Support rsa_pss_rsae_* signature algorithms in TLS 1.2. +Bugfix + * Fix an interoperability failure between an Mbed TLS client with both + TLS 1.2 and TLS 1.3 support, and a TLS 1.2 server such as GnuTLS or + OpenSSL that supports rsa_pss_rsae_* signature algorithms. This failed + because Mbed TLS supported PSS only in TLS 1.3, but advertised support + in TLS 1.2 as well. From 5ba1697e8a2fee2be65e631212f8f697386636bc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 23:00:08 +0100 Subject: [PATCH 1089/1574] Put behavior change in the correct category "Changes" is for miscellaneous stuff that doesn't affect backward compatibility. Signed-off-by: Gilles Peskine --- ChangeLog.d/dtls-connection-id.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/dtls-connection-id.txt b/ChangeLog.d/dtls-connection-id.txt index 0d0a71f29..ccb364ea5 100644 --- a/ChangeLog.d/dtls-connection-id.txt +++ b/ChangeLog.d/dtls-connection-id.txt @@ -3,7 +3,7 @@ Features MBEDTLS_SSL_DTLS_CONNECTION_ID (enabled by default) and configured with mbedtls_ssl_set_cid(). -Changes +Default behavior changes * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 of the IETF draft, and was marked experimental and disabled by default. It is now no longer experimental, and implements the final version from From 723bee67b21ea2e633b6a21ca60607a34e7fe67c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 23:06:21 +0100 Subject: [PATCH 1090/1574] Wrap lines to 79 columns max Signed-off-by: Gilles Peskine --- ChangeLog.d/LMS.txt | 10 +++++----- ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 8 ++++---- ChangeLog.d/fix_cmake_gen_files.txt | 3 ++- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt index 6de374f86..785bfcf84 100644 --- a/ChangeLog.d/LMS.txt +++ b/ChangeLog.d/LMS.txt @@ -3,9 +3,9 @@ Features Signature verification is production-ready, but generation is for testing purposes only. This currently only supports one parameter set (LMS_SHA256_M32_H10), meaning that each private key can be used to sign - 1024 messages. As such, it is not intended for use in TLS, but instead for - verification of assets transmitted over an insecure channel, particularly - firmware images. + 1024 messages. As such, it is not intended for use in TLS, but instead + for verification of assets transmitted over an insecure channel, + particularly firmware images. * Add the LM-OTS post-quantum-safe one-time signature scheme, which is - required for LMS. This can be used independently, but each key can only be - used to sign one message so is impractical for most circumstances. + required for LMS. This can be used independently, but each key can only + be used to sign one message so is impractical for most circumstances. diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt index 9abde2b52..d3c9aa1b5 100644 --- a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt +++ b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt @@ -1,5 +1,5 @@ Bugfix - * Fix a bug whereby the the list of signature algorithms sent as part of the - TLS 1.2 server certificate request would get corrupted, meaning the first - algorithm would not get sent and an entry consisting of two random bytes - would be sent instead. Found by Serban Bejan and Dudek Sebastian. + * Fix a bug whereby the the list of signature algorithms sent as part of + the TLS 1.2 server certificate request would get corrupted, meaning the + first algorithm would not get sent and an entry consisting of two random + bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. diff --git a/ChangeLog.d/fix_cmake_gen_files.txt b/ChangeLog.d/fix_cmake_gen_files.txt index e4c0c9f7f..6e5956af5 100644 --- a/ChangeLog.d/fix_cmake_gen_files.txt +++ b/ChangeLog.d/fix_cmake_gen_files.txt @@ -1,3 +1,4 @@ Bugfix * Fix an issue with CMake builds in releases with GEN_FILES turned off, - whereby missing generated files could be turned into symlinks to themselves. + whereby missing generated files could be turned into symlinks to + themselves. From f3cc9d925f3ee4716409367ef509d1591bc57c73 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 29 Nov 2022 23:18:23 +0100 Subject: [PATCH 1091/1574] Improve "codegen 1.1" entry "version 1.1 of #5137" is not meaningful to users, only as an internal project milestone. Explain what this means from a user's point of view. Announce the requirement for jsonschema in the proper section, which is "Requirement changes". Mention jinja2 and basic.requirements.txt which had not previously been explicitly mentioned in the changelog. Signed-off-by: Gilles Peskine --- ChangeLog.d/psa_crypto_code_gen_1_1.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt index 2c18e6f31..e10a81c9a 100644 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ b/ChangeLog.d/psa_crypto_code_gen_1_1.txt @@ -1,6 +1,13 @@ Features - * Brought in PSA code geneneration JSON driver list. - Added auto generated templating support for key management. - Added Support for transparent and opaque keys (import/export/copy). - Included some general JSON validation for the given entry points. - Addresses version 1.1 of #5137. + * The PSA driver wrapper generator generate_driver_wrappers.py now + supports a subset of the driver description language, including + the following entry points: import_key, export_key, export_public_key, + get_builtin_key, copy_key. + +Requirement changes + * When building with PSA drivers using generate_driver_wrappers.py, or + when building the library from the development branch rather than + from a release, the Python module jsonschema is now necessary, in + addition to jinja2. The official list of required Python modules is + maintained in scripts/basic.requirements.txt and may change again + in the future. From afb15206b5cb91a84aa733e8c0a87dd206c83ddd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 10:37:19 +0100 Subject: [PATCH 1092/1574] Wording clarification Signed-off-by: Gilles Peskine --- ChangeLog.d/tls13-misc.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt index b76bb9171..49ab58994 100644 --- a/ChangeLog.d/tls13-misc.txt +++ b/ChangeLog.d/tls13-misc.txt @@ -1,7 +1,7 @@ Features - * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys, - pre-shared keys provisioned externally or via the ticket mechanism - (session resumption). + * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys. + The pre-shared keys can provisioned externally or via the ticket + mechanism (session resumption). The ticket mechanism is supported when the configuration option MBEDTLS_SSL_SESSION_TICKETS is enabled. New options MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED From cf0074b2c8175660f21985cbd0513d2a022e94a3 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 30 Nov 2022 12:07:16 +0100 Subject: [PATCH 1093/1574] More wording improvements Signed-off-by: Gilles Peskine --- ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt | 8 ++++---- ChangeLog.d/dtls-connection-id.txt | 6 +++--- ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 2 +- ChangeLog.d/fix_cmake_gen_files.txt | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt b/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt index c87c3fbbf..0d409688e 100644 --- a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt +++ b/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt @@ -2,7 +2,7 @@ Features * Support rsa_pss_rsae_* signature algorithms in TLS 1.2. Bugfix * Fix an interoperability failure between an Mbed TLS client with both - TLS 1.2 and TLS 1.3 support, and a TLS 1.2 server such as GnuTLS or - OpenSSL that supports rsa_pss_rsae_* signature algorithms. This failed - because Mbed TLS supported PSS only in TLS 1.3, but advertised support - in TLS 1.2 as well. + TLS 1.2 and TLS 1.3 support, and a TLS 1.2 server that supports + rsa_pss_rsae_* signature algorithms. This failed because Mbed TLS + advertised support for PSS in both TLS 1.2 and 1.3, but only + actually supported PSS in TLS 1.3. diff --git a/ChangeLog.d/dtls-connection-id.txt b/ChangeLog.d/dtls-connection-id.txt index ccb364ea5..840f837d8 100644 --- a/ChangeLog.d/dtls-connection-id.txt +++ b/ChangeLog.d/dtls-connection-id.txt @@ -9,9 +9,9 @@ Default behavior changes It is now no longer experimental, and implements the final version from RFC 9146, which is not interoperable with the draft-05 version. If you need to communicate with peers that use earlier versions of - Mbed TLS, you need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT to 1, - but then you won't be able to communicate with peers that use the standard - (non-draft) version. + Mbed TLS, then you need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT + to 1, but then you won't be able to communicate with peers that use the + standard (non-draft) version. If you need to interoperate with both classes of peers with the same build of Mbed TLS, please let us know about your situation on the mailing list or GitHub. diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt index d3c9aa1b5..b74c6ec20 100644 --- a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt +++ b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt @@ -1,5 +1,5 @@ Bugfix - * Fix a bug whereby the the list of signature algorithms sent as part of + * Fix a bug whereby the list of signature algorithms sent as part of the TLS 1.2 server certificate request would get corrupted, meaning the first algorithm would not get sent and an entry consisting of two random bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. diff --git a/ChangeLog.d/fix_cmake_gen_files.txt b/ChangeLog.d/fix_cmake_gen_files.txt index 6e5956af5..cdec6e8a6 100644 --- a/ChangeLog.d/fix_cmake_gen_files.txt +++ b/ChangeLog.d/fix_cmake_gen_files.txt @@ -1,4 +1,4 @@ Bugfix - * Fix an issue with CMake builds in releases with GEN_FILES turned off, - whereby missing generated files could be turned into symlinks to - themselves. + * Fix an issue with in-tree CMake builds in releases with GEN_FILES + turned off: if a shipped file was missing from the working directory, + it could be turned into a symbolic link to itself. From 6f949ea67b20c1ca63813345a1d70191777d15d5 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Sep 2022 18:38:35 +0200 Subject: [PATCH 1094/1574] New constant-flow function mbedtls_mpi_core_uint_le_mpi Compare a single-limb MPI with a multi-limb MPI. This is rather ad hoc, but will be useful for mbedtls_mpi_core_random. Signed-off-by: Gilles Peskine --- library/bignum_core.c | 21 +++++++ library/bignum_core.h | 16 +++++ tests/suites/test_suite_bignum_core.function | 50 +++++++++++++++ tests/suites/test_suite_bignum_core.misc.data | 63 +++++++++++++++++++ 4 files changed, 150 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 663535107..08158fa78 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -154,6 +154,27 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, } } +/* Whether min <= A, in constant time. + * A_limbs must be at least 1. */ +unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, + const mbedtls_mpi_uint *A, + size_t A_limbs ) +{ + /* min <= least significant limb? */ + unsigned min_le_lsl = 1 ^ mbedtls_ct_mpi_uint_lt( A[0], min ); + + /* most significant limbs (excluding 1) are all zero? */ + mbedtls_mpi_uint msll_mask = 0; + for( size_t i = 1; i < A_limbs; i++ ) + msll_mask |= A[i]; + /* The most significant limbs of A are not all zero iff msll_mask != 0. */ + unsigned msll_nonzero = mbedtls_ct_mpi_uint_mask( msll_mask ) & 1; + + /* min <= A iff the lowest limb of A is >= min or the other limbs + * are not all zero. */ + return( min_le_lsl | msll_nonzero ); +} + void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, size_t limbs, diff --git a/library/bignum_core.h b/library/bignum_core.h index 24559c6e9..120fa184c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -129,6 +129,22 @@ size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ); void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, size_t A_limbs ); +/** \brief Compare a machine integer with an MPI. + * + * This function operates in constant time with respect + * to the values of \p min and \p A. + * + * \param min A machine integer. + * \param[in] A An MPI. + * \param A_limbs The number of limbs of \p A. + * This must be at least 1. + * + * \return 1 if \p min is less than or equal to \p A, otherwise 0. + */ +unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, + const mbedtls_mpi_uint *A, + size_t A_limbs ); + /** * \brief Perform a safe conditional copy of an MPI which doesn't reveal * whether assignment was done or not. diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 078239fdc..d842c496c 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -344,6 +344,56 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_uint_le_mpi( char *input_A ) +{ + mbedtls_mpi_uint *A = NULL; + size_t A_limbs = 0; + + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ), 0 ); + + int is_large = 0; /* nonzero limbs beyond the lowest-order one? */ + for( size_t i = 1; i < A_limbs; i++ ) + { + if( A[i] != 0 ) + { + is_large = 1; + break; + } + } + + TEST_CF_SECRET( A, A_limbs * sizeof( *A ) ); + + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( 0, A, A_limbs ), 1 ); + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0], A, A_limbs ), 1 ); + + if( is_large ) + { + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0] + 1, + A, A_limbs ), 1 ); + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ) >> 1, + A, A_limbs ), 1 ); + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ), + A, A_limbs ), 1 ); + } + else + { + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0] + 1, + A, A_limbs ), + A[0] + 1 <= A[0] ); + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ) >> 1, + A, A_limbs ), + (mbedtls_mpi_uint)( -1 ) >> 1 <= A[0] ); + TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ), + A, A_limbs ), + (mbedtls_mpi_uint)( -1 ) <= A[0] ); + } + +exit: + mbedtls_free( A ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_core_cond_assign( char * input_X, char * input_Y, diff --git a/tests/suites/test_suite_bignum_core.misc.data b/tests/suites/test_suite_bignum_core.misc.data index 62480e47f..81a767a0c 100644 --- a/tests/suites/test_suite_bignum_core.misc.data +++ b/tests/suites/test_suite_bignum_core.misc.data @@ -242,6 +242,69 @@ mpi_core_lt_ct:"11FFFFFFFFFFFFFFFF":"FF1111111111111111":1 mbedtls_mpi_core_lt_ct: x>y (alternating limbs) mpi_core_lt_ct:"FF1111111111111111":"11FFFFFFFFFFFFFFFF":0 +Test mbedtls_mpi_core_uint_le_mpi: 0 (1 limb) +mpi_core_uint_le_mpi:"00" + +Test mbedtls_mpi_core_uint_le_mpi: 0 (>=2 limbs) +mpi_core_uint_le_mpi:"000000000000000000" + +Test mbedtls_mpi_core_uint_le_mpi: 1 (1 limb) +mpi_core_uint_le_mpi:"01" + +Test mbedtls_mpi_core_uint_le_mpi: 1 (>=2 limbs) +mpi_core_uint_le_mpi:"000000000000000001" + +Test mbedtls_mpi_core_uint_le_mpi: 42 (1 limb) +mpi_core_uint_le_mpi:"2a" + +Test mbedtls_mpi_core_uint_le_mpi: 42 (>=2 limbs) +mpi_core_uint_le_mpi:"000000000000000042" + +Test mbedtls_mpi_core_uint_le_mpi: 2^31-1 +mpi_core_uint_le_mpi:"7fffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^31-1 with leading zero limb +mpi_core_uint_le_mpi:"00000000007fffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32-1 +mpi_core_uint_le_mpi:"ffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32-1 with leading zero limb +mpi_core_uint_le_mpi:"0000000000ffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32 +mpi_core_uint_le_mpi:"10000000" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32 with leading zero limb +mpi_core_uint_le_mpi:"000000000010000000" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32+1 +mpi_core_uint_le_mpi:"10000001" + +Test mbedtls_mpi_core_uint_le_mpi: 2^32+1 with leading zero limb +mpi_core_uint_le_mpi:"000000000010000001" + +Test mbedtls_mpi_core_uint_le_mpi: 2^63-1 +mpi_core_uint_le_mpi:"7fffffffffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^63-1 with leading zero limb +mpi_core_uint_le_mpi:"007fffffffffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^64-1 +mpi_core_uint_le_mpi:"ffffffffffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^64-1 with leading zero limb +mpi_core_uint_le_mpi:"00ffffffffffffffff" + +Test mbedtls_mpi_core_uint_le_mpi: 2^64 +mpi_core_uint_le_mpi:"010000000000000000" + +Test mbedtls_mpi_core_uint_le_mpi: 2^64+1 +mpi_core_uint_le_mpi:"010000000000000001" + +Test mbedtls_mpi_core_uint_le_mpi: 2^64+2 +mpi_core_uint_le_mpi:"010000000000000002" + mbedtls_mpi_core_cond_assign: 1 limb mpi_core_cond_assign:"FFFFFFFF":"11111111":4 From 8a32a75aa213a228594574e5035e40233bd00312 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Sep 2022 23:19:04 +0200 Subject: [PATCH 1095/1574] mbedtls_mpi_random: avoid local allocation Rewrite the minimum bound comparison to avoid a local allocation. This costs a bit of code size, but saves RAM. This is in preparation for moving the bulk of the function to the bignum_core module where allocation is not permitted. Signed-off-by: Gilles Peskine --- library/bignum.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index a68957a53..98d2442bb 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1968,10 +1968,9 @@ int mbedtls_mpi_random( mbedtls_mpi *X, { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; int count; - unsigned lt_lower = 1, lt_upper = 0; + unsigned ge_lower = 1, lt_upper = 0; size_t n_bits = mbedtls_mpi_bitlen( N ); size_t n_bytes = ( n_bits + 7 ) / 8; - mbedtls_mpi lower_bound; if( min < 0 ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); @@ -1997,14 +1996,10 @@ int mbedtls_mpi_random( mbedtls_mpi *X, */ count = ( n_bytes > 4 ? 30 : 250 ); - mbedtls_mpi_init( &lower_bound ); - /* Ensure that target MPI has exactly the same number of limbs * as the upper bound, even if the upper bound has leading zeros. * This is necessary for the mbedtls_mpi_lt_mpi_ct() check. */ MBEDTLS_MPI_CHK( mbedtls_mpi_resize_clear( X, N->n ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &lower_bound, N->n ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &lower_bound, min ) ); /* * Match the procedure given in RFC 6979 §3.3 (deterministic ECDSA) @@ -2027,13 +2022,12 @@ int mbedtls_mpi_random( mbedtls_mpi *X, goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_lt_mpi_ct( X, &lower_bound, <_lower ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lt_mpi_ct( X, N, <_upper ) ); + ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X->p, X->n ); + lt_upper = mbedtls_mpi_core_lt_ct( X->p, N->p, N->n ); } - while( lt_lower != 0 || lt_upper == 0 ); + while( ge_lower == 0 || lt_upper == 0 ); cleanup: - mbedtls_mpi_free( &lower_bound ); return( ret ); } From 26be89b3f6f183ef5da089bbf88b7eccbfc0c7f1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 13:43:30 +0200 Subject: [PATCH 1096/1574] Bignum core: random: prepare to break out the core function Shuffle things around a bit inside mbedtls_mpi_random() in preparation for breaking out mbedtls_mpi_core_random(). Signed-off-by: Gilles Peskine --- library/bignum.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 98d2442bb..82e47b7d8 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1966,17 +1966,24 @@ int mbedtls_mpi_random( mbedtls_mpi *X, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - int count; - unsigned ge_lower = 1, lt_upper = 0; - size_t n_bits = mbedtls_mpi_bitlen( N ); - size_t n_bytes = ( n_bits + 7 ) / 8; - if( min < 0 ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); if( mbedtls_mpi_cmp_int( N, min ) <= 0 ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + /* Ensure that target MPI has exactly the same number of limbs + * as the upper bound, even if the upper bound has leading zeros. + * This is necessary for the mbedtls_mpi_lt_mpi_ct() check. */ + int ret = mbedtls_mpi_resize_clear( X, N->n ); + if( ret != 0 ) + return( ret ); + + unsigned ge_lower = 1, lt_upper = 0; + size_t n_bits = mbedtls_mpi_bitlen( N ); + size_t n_bytes = ( n_bits + 7 ) / 8; + + ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + /* * When min == 0, each try has at worst a probability 1/2 of failing * (the msb has a probability 1/2 of being 0, and then the result will @@ -1994,12 +2001,7 @@ int mbedtls_mpi_random( mbedtls_mpi *X, * is small, use a higher repeat count, otherwise the probability of * failure is macroscopic. */ - count = ( n_bytes > 4 ? 30 : 250 ); - - /* Ensure that target MPI has exactly the same number of limbs - * as the upper bound, even if the upper bound has leading zeros. - * This is necessary for the mbedtls_mpi_lt_mpi_ct() check. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_resize_clear( X, N->n ) ); + int count = ( n_bytes > 4 ? 30 : 250 ); /* * Match the procedure given in RFC 6979 §3.3 (deterministic ECDSA) From 4a8c5cdfbf9e1aef65a9a745d7ce84e6ce3ac3ee Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 18 Oct 2022 18:15:01 +0200 Subject: [PATCH 1097/1574] Bignum core: random: prototype Signed-off-by: Gilles Peskine --- library/bignum_core.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index 120fa184c..eeca41eb4 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -512,6 +512,43 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +/** Generate a random number uniformly in a range. + * + * This function generates a random number between \p min inclusive and + * \p N exclusive. + * + * The procedure complies with RFC 6979 §3.3 (deterministic ECDSA) + * when the RNG is a suitably parametrized instance of HMAC_DRBG + * and \p min is \c 1. + * + * \note There are `N - min` possible outputs. The lower bound + * \p min can be reached, but the upper bound \p N cannot. + * + * \param X The destination MPI, with \p limbs limbs. + * It must not be aliased with \p N or otherwise overlap it. + * \param min The minimum value to return. + * \param N The upper bound of the range, exclusive, with \p limbs limbs. + * In other words, this is one plus the maximum value to return. + * \p N must be strictly larger than \p min. + * \param limbs The number of limbs of \p N and \p X. + * This must not be 0. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the implementation was + * unable to find a suitable value within a limited number + * of attempts. This has a negligible probability if \p N + * is significantly larger than \p min, which is the case + * for all usual cryptographic applications. + */ +int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_uint *N, + size_t limbs, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + /* BEGIN MERGE SLOT 1 */ /** From 78cf3bbf2251b9bd773f848abfc308298b901402 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:46:04 +0200 Subject: [PATCH 1098/1574] Bignum core: break mbedtls_mpi_core_random out of mbedtls_mpi_random Signed-off-by: Gilles Peskine --- library/bignum.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 82e47b7d8..060d88abf 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1978,11 +1978,20 @@ int mbedtls_mpi_random( mbedtls_mpi *X, if( ret != 0 ) return( ret ); - unsigned ge_lower = 1, lt_upper = 0; - size_t n_bits = mbedtls_mpi_bitlen( N ); - size_t n_bytes = ( n_bits + 7 ) / 8; + return( mbedtls_mpi_core_random( X->p, min, N->p, X->n, f_rng, p_rng ) ); +} - ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; +int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_uint *N, + size_t limbs, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + unsigned ge_lower = 1, lt_upper = 0; + size_t n_bits = mbedtls_mpi_core_bitlen( N, limbs ); + size_t n_bytes = ( n_bits + 7 ) / 8; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* * When min == 0, each try has at worst a probability 1/2 of failing @@ -2013,10 +2022,10 @@ int mbedtls_mpi_random( mbedtls_mpi *X, */ do { - MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X->p, X->n, + MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X, limbs, n_bytes, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( X, 8 * n_bytes - n_bits ) ); + mbedtls_mpi_core_shift_r( X, limbs, 8 * n_bytes - n_bits ); if( --count == 0 ) { @@ -2024,8 +2033,8 @@ int mbedtls_mpi_random( mbedtls_mpi *X, goto cleanup; } - ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X->p, X->n ); - lt_upper = mbedtls_mpi_core_lt_ct( X->p, N->p, N->n ); + ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X, limbs ); + lt_upper = mbedtls_mpi_core_lt_ct( X, N, limbs ); } while( ge_lower == 0 || lt_upper == 0 ); From 70375b2028b964b78aab109354f8241316d7894f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Sep 2022 15:47:23 +0200 Subject: [PATCH 1099/1574] Move mbedtls_mpi_core_random to the proper source file Signed-off-by: Gilles Peskine --- library/bignum.c | 61 ------------------------------------------- library/bignum_core.c | 61 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 060d88abf..142c4c660 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1981,67 +1981,6 @@ int mbedtls_mpi_random( mbedtls_mpi *X, return( mbedtls_mpi_core_random( X->p, min, N->p, X->n, f_rng, p_rng ) ); } -int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_uint *N, - size_t limbs, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) -{ - unsigned ge_lower = 1, lt_upper = 0; - size_t n_bits = mbedtls_mpi_core_bitlen( N, limbs ); - size_t n_bytes = ( n_bits + 7 ) / 8; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - /* - * When min == 0, each try has at worst a probability 1/2 of failing - * (the msb has a probability 1/2 of being 0, and then the result will - * be < N), so after 30 tries failure probability is a most 2**(-30). - * - * When N is just below a power of 2, as is the case when generating - * a random scalar on most elliptic curves, 1 try is enough with - * overwhelming probability. When N is just above a power of 2, - * as when generating a random scalar on secp224k1, each try has - * a probability of failing that is almost 1/2. - * - * The probabilities are almost the same if min is nonzero but negligible - * compared to N. This is always the case when N is crypto-sized, but - * it's convenient to support small N for testing purposes. When N - * is small, use a higher repeat count, otherwise the probability of - * failure is macroscopic. - */ - int count = ( n_bytes > 4 ? 30 : 250 ); - - /* - * Match the procedure given in RFC 6979 §3.3 (deterministic ECDSA) - * when f_rng is a suitably parametrized instance of HMAC_DRBG: - * - use the same byte ordering; - * - keep the leftmost n_bits bits of the generated octet string; - * - try until result is in the desired range. - * This also avoids any bias, which is especially important for ECDSA. - */ - do - { - MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X, limbs, - n_bytes, - f_rng, p_rng ) ); - mbedtls_mpi_core_shift_r( X, limbs, 8 * n_bytes - n_bits ); - - if( --count == 0 ) - { - ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; - goto cleanup; - } - - ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X, limbs ); - lt_upper = mbedtls_mpi_core_lt_ct( X, N, limbs ); - } - while( ge_lower == 0 || lt_upper == 0 ); - -cleanup: - return( ret ); -} - /* * Modular inverse: X = A^-1 mod N (HAC 14.61 / 14.64) */ diff --git a/library/bignum_core.c b/library/bignum_core.c index 08158fa78..a432c2b21 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -602,6 +602,67 @@ cleanup: return( ret ); } +int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_uint *N, + size_t limbs, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + unsigned ge_lower = 1, lt_upper = 0; + size_t n_bits = mbedtls_mpi_core_bitlen( N, limbs ); + size_t n_bytes = ( n_bits + 7 ) / 8; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* + * When min == 0, each try has at worst a probability 1/2 of failing + * (the msb has a probability 1/2 of being 0, and then the result will + * be < N), so after 30 tries failure probability is a most 2**(-30). + * + * When N is just below a power of 2, as is the case when generating + * a random scalar on most elliptic curves, 1 try is enough with + * overwhelming probability. When N is just above a power of 2, + * as when generating a random scalar on secp224k1, each try has + * a probability of failing that is almost 1/2. + * + * The probabilities are almost the same if min is nonzero but negligible + * compared to N. This is always the case when N is crypto-sized, but + * it's convenient to support small N for testing purposes. When N + * is small, use a higher repeat count, otherwise the probability of + * failure is macroscopic. + */ + int count = ( n_bytes > 4 ? 30 : 250 ); + + /* + * Match the procedure given in RFC 6979 §3.3 (deterministic ECDSA) + * when f_rng is a suitably parametrized instance of HMAC_DRBG: + * - use the same byte ordering; + * - keep the leftmost n_bits bits of the generated octet string; + * - try until result is in the desired range. + * This also avoids any bias, which is especially important for ECDSA. + */ + do + { + MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X, limbs, + n_bytes, + f_rng, p_rng ) ); + mbedtls_mpi_core_shift_r( X, limbs, 8 * n_bytes - n_bits ); + + if( --count == 0 ) + { + ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; + goto cleanup; + } + + ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X, limbs ); + lt_upper = mbedtls_mpi_core_lt_ct( X, N, limbs ); + } + while( ge_lower == 0 || lt_upper == 0 ); + +cleanup: + return( ret ); +} + /* BEGIN MERGE SLOT 1 */ static size_t exp_mod_get_window_size( size_t Ebits ) From 34e8a2c2875f94f863c260d5f64ee7751873f97b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 22:04:51 +0200 Subject: [PATCH 1100/1574] Test mbedtls_mpi_random differentially from mbedtls_mpi_core_random For good cases, test that mbedtls_mpi_random() produces the same output as mbedtls_mpi_core_random(). Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.function | 53 +++++++++++++++++++++++- tests/suites/test_suite_bignum.misc.data | 35 ++++++++++++++++ 2 files changed, 87 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 55bb2f58d..cf5492058 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -2,6 +2,7 @@ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" #include "constant_time_internal.h" +#include "bignum_core.h" #include "test/constant_flow.h" #if MBEDTLS_MPI_MAX_BITS > 792 @@ -1294,6 +1295,57 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_random_values( int min, char *max_hex ) +{ + mbedtls_test_rnd_pseudo_info rnd_core = { + {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', + 's', 'e', 'e', 'd', '!', 0}, + 0, 0}; + mbedtls_test_rnd_pseudo_info rnd_legacy; + memcpy( &rnd_legacy, &rnd_core, sizeof( rnd_core ) ); + mbedtls_mpi max_legacy; + mbedtls_mpi_init( &max_legacy ); + mbedtls_mpi_uint *R_core = NULL; + mbedtls_mpi R_legacy; + mbedtls_mpi_init( &R_legacy ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &max_legacy, max_hex ) ); + size_t limbs = max_legacy.n; + ASSERT_ALLOC( R_core, limbs * ciL ); + + /* Call the legacy function and the core function with the same random + * stream. */ + int core_ret = mbedtls_mpi_core_random( R_core, min, max_legacy.p, limbs, + mbedtls_test_rnd_pseudo_rand, + &rnd_core ); + int legacy_ret = mbedtls_mpi_random( &R_legacy, min, &max_legacy, + mbedtls_test_rnd_pseudo_rand, + &rnd_legacy ); + + /* They must return the same status, and, on success, output the + * same number, with the same limb count. */ + TEST_EQUAL( core_ret, legacy_ret ); + if( core_ret == 0 ) + { + ASSERT_COMPARE( R_core, limbs * ciL, + R_legacy.p, R_legacy.n * ciL ); + } + + /* Also check that they have consumed the RNG in the same way. */ + /* This may theoretically fail on rare platforms with padding in + * the structure! If this is a problem in practice, change to a + * field-by-field comparison. */ + ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), + &rnd_legacy, sizeof( rnd_legacy ) ); + +exit: + mbedtls_mpi_free( &max_legacy ); + mbedtls_free( R_core ); + mbedtls_mpi_free( &R_legacy ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) { @@ -1481,7 +1533,6 @@ void most_negative_mpi_sint( ) mbedtls_mpi_init( &R ); mbedtls_mpi_init( &X ); - const size_t biL = 8 * sizeof( mbedtls_mpi_sint ); mbedtls_mpi_uint most_positive_plus_1 = (mbedtls_mpi_uint) 1 << ( biL - 1 ); const mbedtls_mpi_sint most_positive = most_positive_plus_1 - 1; const mbedtls_mpi_sint most_negative = - most_positive - 1; diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index dc6830e8f..bc659c1af 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1958,6 +1958,41 @@ mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +MPI random legacy=core: 0..1 +mpi_random_values:0:"01" + +MPI random legacy=core: 0..2 +mpi_random_values:0:"02" + +MPI random legacy=core: 1..2 +mpi_random_values:1:"02" + +MPI random legacy=core: 2^30..2^31 +mpi_random_values:0x40000000:"80000000" + +MPI random legacy=core: 2^31-1..2^32-1 +mpi_random_values:0x7fffffff:"ffffffff" + +MPI random legacy=core: 0..2^256 +mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" + +MPI random legacy=core: 0..2^256+1 +mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" + +# The following test cases return MPI_NOT_ACCEPTABLE +# (verified at the time of writing, not enforced at runtime) +MPI random legacy=core: 2^28-1..2^28 (improbable) +mpi_random_values:0x0fffffff:"10000000" + +MPI random legacy=core: 2^29-1..2^29 (improbable) +mpi_random_values:0x1fffffff:"20000000" + +MPI random legacy=core: 2^30-1..2^30 (improbable) +mpi_random_values:0x3fffffff:"40000000" + +MPI random legacy=core: 2^31-1..2^31 (improbable) +mpi_random_values:0x7fffffff:"80000000" + Most negative mbedtls_mpi_sint most_negative_mpi_sint: From e3a1b81cb9bfa44b1db98b9a227cd4df3d96873e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 22:18:17 +0200 Subject: [PATCH 1101/1574] Switch mpi_random_many test function to testing core The test function mpi_random_many() is the main function for testing the get-random-in-range function. It validates that the random generator's output is within the desired range, and performs some basic statistical checks including checking that small ranges are covered exhaustively. Switch this function from testing mbedtls_mpi_random() to testing mbedtls_mpi_core_random(). This does not reduce the test coverage of mbedtls_mpi_random() because the same properties are now validated indirectly via mpi_random_values() which checks that mbedtls_mpi_random() and mbedtls_mpi_core_random() produce identical values for identical inputs. As of this commit, mpi_random_many() still uses some legacy mpi functions internally because the corresponding functions don't exist yet in core. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.function | 49 +++++++++++++++---------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index cf5492058..6fd0b1b5f 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1347,7 +1347,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_random_many( int min, data_t *bound_bytes, int iterations ) +void mpi_random_many( int min, char *bound_hex, int iterations ) { /* Generate numbers in the range 1..bound-1. Do it iterations times. * This function assumes that the value of bound is at least 2 and @@ -1355,9 +1355,11 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) * effectively never occurs. */ - mbedtls_mpi upper_bound; + data_t bound_bytes = {NULL, 0}; + mbedtls_mpi_uint *upper_bound = NULL; + size_t limbs; size_t n_bits; - mbedtls_mpi result; + mbedtls_mpi_uint *result = NULL; size_t b; /* If upper_bound is small, stats[b] is the number of times the value b * has been generated. Otherwise stats[b] is the number of times a @@ -1367,12 +1369,11 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) int full_stats; size_t i; - mbedtls_mpi_init( &upper_bound ); - mbedtls_mpi_init( &result ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, + bound_hex ) ); + ASSERT_ALLOC( result, limbs * ciL ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, - bound_bytes->x, bound_bytes->len ) ); - n_bits = mbedtls_mpi_bitlen( &upper_bound ); + n_bits = mbedtls_mpi_core_bitlen( upper_bound, limbs ); /* Consider a bound "small" if it's less than 2^5. This value is chosen * to be small enough that the probability of missing one value is * negligible given the number of iterations. It must be less than @@ -1381,7 +1382,7 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) if( n_bits <= 5 ) { full_stats = 1; - stats_len = bound_bytes->x[bound_bytes->len - 1]; + stats_len = (uint8_t) upper_bound[0]; } else { @@ -1393,23 +1394,28 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) for( i = 0; i < (size_t) iterations; i++ ) { mbedtls_test_set_step( i ); - TEST_EQUAL( 0, mbedtls_mpi_random( &result, min, &upper_bound, - mbedtls_test_rnd_std_rand, NULL ) ); + TEST_EQUAL( 0, mbedtls_mpi_core_random( result, + min, upper_bound, limbs, + mbedtls_test_rnd_std_rand, NULL ) ); - TEST_ASSERT( sign_is_valid( &result ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &result, &upper_bound ) < 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &result, min ) >= 0 ); + /* Temporarily use a legacy MPI for analysis, because the + * necessary auxiliary functions don't exist yet in core. */ + mbedtls_mpi B = {1, limbs, upper_bound}; + mbedtls_mpi R = {1, limbs, result}; + + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) < 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_int( &R, min ) >= 0 ); if( full_stats ) { uint8_t value; - TEST_EQUAL( 0, mbedtls_mpi_write_binary( &result, &value, 1 ) ); + TEST_EQUAL( 0, mbedtls_mpi_write_binary( &R, &value, 1 ) ); TEST_ASSERT( value < stats_len ); ++stats[value]; } else { for( b = 0; b < n_bits; b++ ) - stats[b] += mbedtls_mpi_get_bit( &result, b ); + stats[b] += mbedtls_mpi_get_bit( &R, b ); } } @@ -1427,8 +1433,12 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) } else { + bound_bytes.len = limbs * sizeof( mbedtls_mpi_uint ); + ASSERT_ALLOC( bound_bytes.x, bound_bytes.len ); + mbedtls_mpi_core_write_be( upper_bound, limbs, + bound_bytes.x, bound_bytes.len ); int statistically_safe_all_the_way = - is_significantly_above_a_power_of_2( bound_bytes ); + is_significantly_above_a_power_of_2( &bound_bytes ); for( b = 0; b < n_bits; b++ ) { mbedtls_test_set_step( 1000000 + b ); @@ -1449,8 +1459,9 @@ void mpi_random_many( int min, data_t *bound_bytes, int iterations ) } exit: - mbedtls_mpi_free( &upper_bound ); - mbedtls_mpi_free( &result ); + mbedtls_free( bound_bytes.x ); + mbedtls_free( upper_bound ); + mbedtls_free( result ); mbedtls_free( stats ); } /* END_CASE */ From da9746e8cec20b043459ccdc85de567eb7611a36 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 27 Sep 2022 22:38:38 +0200 Subject: [PATCH 1102/1574] Test NOT_ACCEPTABLE cases for MPI get-random Test some cases where mbedtls_mpi_core_random() or mbedtls_mpi_random() should return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE. These test cases use a very small range that makes the NOT_ACCEPTABLE case likely. The test code uses a deterministic RNG whose implementation is in the test framework, so we know that the tests will pass reproducibly unless the implementation the test framework changes. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.function | 37 +++++++++++++++++++ tests/suites/test_suite_bignum.misc.data | 45 ++++++++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 6fd0b1b5f..9dc5e595d 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -1295,9 +1295,46 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) +{ + /* Same RNG as in mpi_random_values */ + mbedtls_test_rnd_pseudo_info rnd = { + {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', + 's', 'e', 'e', 'd', '!', 0}, + 0, 0}; + size_t limbs; + mbedtls_mpi_uint *lower_bound = NULL; + mbedtls_mpi_uint *upper_bound = NULL; + mbedtls_mpi_uint *result = NULL; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, + bound_bytes ) ); + ASSERT_ALLOC( lower_bound, limbs * ciL ); + lower_bound[0] = min; + ASSERT_ALLOC( result, limbs * ciL ); + + TEST_EQUAL( expected_ret, + mbedtls_mpi_core_random( result, min, upper_bound, limbs, + mbedtls_test_rnd_pseudo_rand, &rnd ) ); + + if( expected_ret == 0 ) + { + TEST_EQUAL( 0, mbedtls_mpi_core_lt_ct( result, lower_bound, limbs ) ); + TEST_EQUAL( 1, mbedtls_mpi_core_lt_ct( result, upper_bound, limbs ) ); + } + +exit: + mbedtls_free( lower_bound ); + mbedtls_free( upper_bound ); + mbedtls_free( result ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_random_values( int min, char *max_hex ) { + /* Same RNG as in mpi_core_random_basic */ mbedtls_test_rnd_pseudo_info rnd_core = { {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', 's', 'e', 'e', 'd', '!', 0}, diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index bc659c1af..fa4c5bce4 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1788,6 +1788,51 @@ mpi_fill_random:16:15:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED Fill random: MAX_SIZE bytes, RNG failure after MAX_SIZE-1 bytes mpi_fill_random:MBEDTLS_MPI_MAX_SIZE:MBEDTLS_MPI_MAX_SIZE-1:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED +MPI core random basic: 0..1 +mpi_core_random_basic:0:"01":0 + +MPI core random basic: 0..2 +mpi_core_random_basic:0:"02":0 + +MPI core random basic: 1..2 +mpi_core_random_basic:1:"02":0 + +MPI core random basic: 2^30..2^31 +mpi_core_random_basic:0x40000000:"80000000":0 + +MPI core random basic: 0..2^128 +mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0 + +MPI core random basic: 2^30..2^129 +mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 + +# Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE +# and for mpi_random_values where we want to return NOT_ACCEPTABLE but +# this isn't checked at runtime. +MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE) +mpi_random_values:0x0fffffff:"10000000" + +MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE) +mpi_random_values:0x1fffffff:"20000000" + +MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE) +mpi_random_values:0x3fffffff:"40000000" + +MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE) +mpi_random_values:0x7fffffff:"80000000" + MPI random in range: 1..2 mpi_random_many:1:"02":1000 From 757f3594741ebf7687fffb79079551836603c7e6 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 2 Dec 2022 11:07:11 +0100 Subject: [PATCH 1103/1574] tls: pake: do not destroy key on errors while setting opaque password Signed-off-by: Valerio Setti --- library/ssl_tls.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 47c02a603..1438124dd 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1950,31 +1950,24 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } + goto error; status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } + goto error; psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, ssl->handshake->psa_pake_password ); if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } + goto error; ssl->handshake->psa_pake_ctx_is_ok = 1; return( 0 ); + +error: + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } #else /* MBEDTLS_USE_PSA_CRYPTO */ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, From e7518ba28eb7c88b6de12e8882843a66783fb6fc Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 2 Dec 2022 12:09:43 +0100 Subject: [PATCH 1104/1574] test: pake: reshaping the ssl_ecjpake_set_password() Removed the "error injection" strategy. Now the functions checks for all the errors in a row. Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.data | 24 ++----------- tests/suites/test_suite_ssl.function | 51 ++++++++++++++-------------- 2 files changed, 27 insertions(+), 48 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 0cec78493..66d32a14b 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3570,28 +3570,8 @@ tls13_server_certificate_msg_invalid_vector_len EC-JPAKE set password depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED -ssl_ecjpake_set_password:0:ECJPAKE_ERR_NONE:0 - -EC-JPAKE set password - uninitiazed SSL context -depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED -ssl_ecjpake_set_password:0:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA - -EC-JPAKE set password - empty password -depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED -ssl_ecjpake_set_password:0:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA +ssl_ecjpake_set_password:0 EC-JPAKE set opaque password depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO -ssl_ecjpake_set_password:1:ECJPAKE_ERR_NONE:0 - -EC-JPAKE set opaque password - uninitiazed SSL context -depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO -ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT:MBEDTLS_ERR_SSL_BAD_INPUT_DATA - -EC-JPAKE set opaque password - empty password -depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO -ssl_ecjpake_set_password:1:ECJPAKE_ERR_EMPTY_PASSWORD:MBEDTLS_ERR_SSL_BAD_INPUT_DATA - -EC-JPAKE set opaque password - uninitalized password key -depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO -ssl_ecjpake_set_password:1:ECJPAKE_ERR_UNINITIALIZED_PWD_KEY:MBEDTLS_ERR_SSL_BAD_INPUT_DATA +ssl_ecjpake_set_password:1 diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index bfc6a379f..0530ca00f 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2583,14 +2583,20 @@ int tweak_tls13_certificate_msg_vector_len( } #endif /* MBEDTLS_TEST_HOOKS */ -typedef enum { - ECJPAKE_ERR_NONE, - ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT, - ECJPAKE_ERR_EMPTY_PASSWORD, - ECJPAKE_ERR_UNINITIALIZED_PWD_KEY, -} ecjpake_err_inj_step_t; - #define ECJPAKE_TEST_PWD "bla" + +#if defined( MBEDTLS_USE_PSA_CRYPTO ) +#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \ + ret = ( use_opaque_arg ) ? \ + mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : \ + mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); \ + TEST_ASSERT( ret == exp_ret_val ) +#else +#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \ + ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, \ + pwd_string, pwd_len ); \ + TEST_ASSERT( ret == exp_ret_val ) +#endif /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -6191,9 +6197,7 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -void ssl_ecjpake_set_password( int use_opaque_arg, - int err_injection_step_arg, - int expected_error_arg ) +void ssl_ecjpake_set_password( int use_opaque_arg ) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; @@ -6204,15 +6208,14 @@ void ssl_ecjpake_set_password( int use_opaque_arg, #endif /* MBEDTLS_USE_PSA_CRYPTO */ const unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = ""; size_t pwd_len = 0; - ecjpake_err_inj_step_t err_injection_step = err_injection_step_arg; int ret; USE_PSA_INIT( ); mbedtls_ssl_init( &ssl ); - if( err_injection_step == ECJPAKE_ERR_UNITIALIZED_SSL_CONTEXT ) - goto run_test; + /* test with uninitalized SSL context */ + ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); mbedtls_ssl_config_init( &conf ); @@ -6224,8 +6227,8 @@ void ssl_ecjpake_set_password( int use_opaque_arg, TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); - if( err_injection_step == ECJPAKE_ERR_EMPTY_PASSWORD ) - goto run_test; + /* test with empty password */ + ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); pwd_len = strlen( ECJPAKE_TEST_PWD ); memcpy( (void*) pwd_string, ECJPAKE_TEST_PWD, pwd_len ); @@ -6233,8 +6236,8 @@ void ssl_ecjpake_set_password( int use_opaque_arg, #if defined( MBEDTLS_USE_PSA_CRYPTO ) if( use_opaque_arg ) { - if( err_injection_step == ECJPAKE_ERR_UNINITIALIZED_PWD_KEY ) - goto run_test; + /* test with uninitialized password key */ + ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -6247,16 +6250,12 @@ void ssl_ecjpake_set_password( int use_opaque_arg, } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -run_test: -#if defined( MBEDTLS_USE_PSA_CRYPTO ) - ret = ( use_opaque_arg ) ? - mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : - mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); -#else /* MBEDTLS_USE_PSA_CRYPTO */ - ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - TEST_EQUAL( ret, expected_error_arg ); + /* final check which should work without errors */ + ECJPAKE_TEST_SET_PASSWORD( 0 ); +#if defined( MBEDTLS_USE_PSA_CRYPTO ) + psa_destroy_key( pwd_slot ); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ mbedtls_ssl_free( &ssl ); mbedtls_ssl_config_free( &conf ); From d6feb208694f33b6e612351ff02c7b061335cdef Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 2 Dec 2022 14:28:49 +0100 Subject: [PATCH 1105/1574] test: pake: allow opaque password only when USE_PSA is enabled Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 15 +++++++++++++-- programs/ssl/ssl_server2.c | 15 +++++++++++++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 736bc5123..f7b66aeac 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -319,12 +319,17 @@ int main( void ) #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) #define USAGE_ECJPAKE \ " ecjpake_pw=%%s default: none (disabled)\n" \ " ecjpake_pw_opaque=%%d default: 0 (disabled)\n" -#else +#else /* MBEDTLS_USE_PSA_CRYPTO */ +#define USAGE_ECJPAKE \ + " ecjpake_pw=%%s default: none (disabled)\n" +#endif /* MBEDTLS_USE_PSA_CRYPTO */ +#else /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #define USAGE_ECJPAKE "" -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_ECP_RESTARTABLE) #define USAGE_ECRESTART \ @@ -494,7 +499,9 @@ struct options const char *psk; /* the pre-shared key */ const char *psk_identity; /* the pre-shared key identity */ const char *ecjpake_pw; /* the EC J-PAKE password */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) int ecjpake_pw_opaque; /* set to 1 to use the opaque method for setting the password */ +#endif int ec_max_ops; /* EC consecutive operations limit */ int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -926,7 +933,9 @@ int main( int argc, char *argv[] ) #endif opt.psk_identity = DFL_PSK_IDENTITY; opt.ecjpake_pw = DFL_ECJPAKE_PW; +#if defined(MBEDTLS_USE_PSA_CRYPTO) opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; +#endif opt.ec_max_ops = DFL_EC_MAX_OPS; opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -1102,8 +1111,10 @@ int main( int argc, char *argv[] ) opt.psk_identity = q; else if( strcmp( p, "ecjpake_pw" ) == 0 ) opt.ecjpake_pw = q; +#if defined(MBEDTLS_USE_PSA_CRYPTO) else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) opt.ecjpake_pw_opaque = atoi( q ); +#endif else if( strcmp( p, "ec_max_ops" ) == 0 ) opt.ec_max_ops = atoi( q ); else if( strcmp( p, "force_ciphersuite" ) == 0 ) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 6db20c66e..3b5ca73ca 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -419,12 +419,17 @@ int main( void ) #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) +#if defined(MBEDTLS_USE_PSA_CRYPTO) #define USAGE_ECJPAKE \ " ecjpake_pw=%%s default: none (disabled)\n" \ " ecjpake_pw_opaque=%%d default: 0 (disabled)\n" -#else +#else /* MBEDTLS_USE_PSA_CRYPTO */ +#define USAGE_ECJPAKE \ + " ecjpake_pw=%%s default: none (disabled)\n" +#endif /* MBEDTLS_USE_PSA_CRYPTO */ +#else /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #define USAGE_ECJPAKE "" -#endif +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_ECP_C) #define USAGE_CURVES \ @@ -623,7 +628,9 @@ struct options const char *psk_identity; /* the pre-shared key identity */ char *psk_list; /* list of PSK id/key pairs for callback */ const char *ecjpake_pw; /* the EC J-PAKE password */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) int ecjpake_pw_opaque; /* set to 1 to use the opaque method for setting the password */ +#endif int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) int tls13_kex_modes; /* supported TLS 1.3 key exchange modes */ @@ -1668,7 +1675,9 @@ int main( int argc, char *argv[] ) opt.psk_identity = DFL_PSK_IDENTITY; opt.psk_list = DFL_PSK_LIST; opt.ecjpake_pw = DFL_ECJPAKE_PW; +#if defined(MBEDTLS_USE_PSA_CRYPTO) opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; +#endif opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES; @@ -1872,8 +1881,10 @@ int main( int argc, char *argv[] ) opt.psk_list = q; else if( strcmp( p, "ecjpake_pw" ) == 0 ) opt.ecjpake_pw = q; +#if defined(MBEDTLS_USE_PSA_CRYPTO) else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) opt.ecjpake_pw_opaque = atoi( q ); +#endif else if( strcmp( p, "force_ciphersuite" ) == 0 ) { opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q ); From 70e029006d6907cbc528664660e30a591464ed7e Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 2 Dec 2022 16:21:56 +0100 Subject: [PATCH 1106/1574] test: pake: fix mixed testing in test_tls1_2_ecjpake_compatibility Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 12 ++++++++---- tests/ssl-opt.sh | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 435ea232d..780f996a3 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1455,10 +1455,14 @@ component_test_tls1_2_ecjpake_compatibility() { make -C programs ssl/ssl_server2 ssl/ssl_client2 make -C programs test/udp_proxy test/query_compile_time_config - msg "test: server w/o USE_PSA - client w/ USE_PSA" - P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f ECJPAKE -e ECJPAKE_OPAQUE_PW - msg "test: client w/o USE_PSA - server w/ USE_PSA" - P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f ECJPAKE -e ECJPAKE_OPAQUE_PW + msg "test: server w/o USE_PSA - client w/ USE_PSA, text password" + P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: working, TLS" + msg "test: server w/o USE_PSA - client w/ USE_PSA, opaque password" + P_SRV=../s2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: opaque password client only, working, TLS" + msg "test: client w/o USE_PSA - server w/ USE_PSA, text password" + P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: working, TLS" + msg "test: client w/o USE_PSA - server w/ USE_PSA, opaque password" + P_CLI=../c2_no_use_psa tests/ssl-opt.sh -f "ECJPAKE: opaque password server only, working, TLS" rm s2_no_use_psa c2_no_use_psa } diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 547a0f55c..3906d3ed1 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8010,7 +8010,7 @@ run_test "ECJPAKE: working, TLS" \ requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client+server" \ +run_test "ECJPAKE: opaque password client+server, working, TLS" \ "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ @@ -8031,7 +8031,7 @@ run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client+server" \ requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client only" \ +run_test "ECJPAKE: opaque password client only, working, TLS" \ "$P_SRV debug_level=3 ecjpake_pw=bla" \ "$P_CLI debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1\ force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ @@ -8052,7 +8052,7 @@ run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password client only" \ requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "ECJPAKE_OPAQUE_PW: working, TLS, opaque password server only" \ +run_test "ECJPAKE: opaque password server only, working, TLS" \ "$P_SRV debug_level=3 ecjpake_pw=bla ecjpake_pw_opaque=1" \ "$P_CLI debug_level=3 ecjpake_pw=bla\ force_ciphersuite=TLS-ECJPAKE-WITH-AES-128-CCM-8" \ From 760f3a0a48f163323835798acf0eb6b2231aa71e Mon Sep 17 00:00:00 2001 From: "Issam E. Maghni" Date: Sat, 19 Nov 2022 18:34:01 +0000 Subject: [PATCH 1107/1574] Install CMake files in MbedTLS dir Right now, CMake files are installed in /cmake. That being said, it gets easily bloated, and the standard is to use a directory with the same name as the project. I discovered this issue with this "bug": https://github.com/termux/termux-packages/issues/12416 The issue's author claimed that MbedTLS's files were not installed in the lib directory. But the patch applied by termux team broke CMake's search of MbedTLS config files. So I wanted to upstream the real fix here instead. Here are some examples of projects using directories: - https://github.com/xiph/flac/blob/1.4.2/CMakeLists.txt#L239 - https://gitlab.freedesktop.org/dbus/dbus/-/blob/dbus-1.15.2/CMakeLists.txt#L675 - https://github.com/catchorg/Catch2/blob/v3.2.0/CMakeLists.txt#L62 - https://github.com/capnproto/capnproto/blob/v0.10.2/c++/CMakeLists.txt#L162 Signed-off-by: Issam E. Maghni --- CMakeLists.txt | 4 ++-- ChangeLog.d/cmake-install.txt | 3 +++ programs/test/cmake_package_install/CMakeLists.txt | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 ChangeLog.d/cmake-install.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 59a960a8b..f72de6420 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -355,7 +355,7 @@ if(NOT DISABLE_PACKAGE_CONFIG_AND_INSTALL) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/MbedTLSConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/cmake/MbedTLSConfigVersion.cmake" - DESTINATION "cmake") + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/MbedTLS") export( EXPORT MbedTLSTargets @@ -365,7 +365,7 @@ if(NOT DISABLE_PACKAGE_CONFIG_AND_INSTALL) install( EXPORT MbedTLSTargets NAMESPACE MbedTLS:: - DESTINATION "cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/MbedTLS" FILE "MbedTLSTargets.cmake") if(CMAKE_VERSION VERSION_GREATER 3.15 OR CMAKE_VERSION VERSION_EQUAL 3.15) diff --git a/ChangeLog.d/cmake-install.txt b/ChangeLog.d/cmake-install.txt new file mode 100644 index 000000000..d8eb72e1e --- /dev/null +++ b/ChangeLog.d/cmake-install.txt @@ -0,0 +1,3 @@ +Changes + * Install the .cmake files into CMAKE_INSTALL_LIBDIR/cmake/MbedTLS, + typically /usr/lib/cmake/MbedTLS. diff --git a/programs/test/cmake_package_install/CMakeLists.txt b/programs/test/cmake_package_install/CMakeLists.txt index 711a1e506..fb5ad51b5 100644 --- a/programs/test/cmake_package_install/CMakeLists.txt +++ b/programs/test/cmake_package_install/CMakeLists.txt @@ -26,7 +26,7 @@ execute_process( # Locate the package. # -set(MbedTLS_DIR "${MbedTLS_INSTALL_DIR}/cmake") +list(INSERT CMAKE_PREFIX_PATH 0 "${MbedTLS_INSTALL_DIR}") find_package(MbedTLS REQUIRED) # From 1797b05602630bd7f985c77b4b721613d70aaaa2 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Sun, 4 Dec 2022 17:19:59 +0000 Subject: [PATCH 1108/1574] Fix typos prior to release Signed-off-by: Tom Cosgrove --- ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 2 +- doxygen/input/doc_encdec.h | 2 +- include/mbedtls/asn1write.h | 2 +- include/mbedtls/check_config.h | 2 +- include/mbedtls/config_psa.h | 2 +- include/mbedtls/lms.h | 6 +++--- include/mbedtls/mbedtls_config.h | 2 +- include/mbedtls/pkcs12.h | 2 +- include/mbedtls/pkcs7.h | 2 +- include/mbedtls/rsa.h | 2 +- include/mbedtls/ssl.h | 10 +++++----- include/psa/crypto.h | 4 ++-- include/psa/crypto_se_driver.h | 10 +++++----- include/psa/crypto_sizes.h | 2 +- include/psa/crypto_types.h | 2 +- include/psa/crypto_values.h | 6 +++--- library/aes.c | 2 +- library/ccm.c | 2 +- library/debug.c | 2 +- library/lmots.h | 2 +- library/mps_reader.c | 2 +- library/pkcs7.c | 2 +- library/psa_crypto.c | 2 +- library/psa_crypto_se.h | 2 +- library/ssl_client.c | 2 +- library/ssl_misc.h | 2 +- library/ssl_msg.c | 6 +++--- library/ssl_tls12_client.c | 2 +- library/ssl_tls13_server.c | 2 +- library/x509.c | 2 +- library/x509_crl.c | 2 +- programs/pkey/dh_genprime.c | 2 +- programs/psa/aead_demo.c | 2 +- programs/psa/hmac_demo.c | 2 +- programs/ssl/dtls_client.c | 2 +- programs/ssl/ssl_server2.c | 2 +- programs/test/benchmark.c | 2 +- programs/test/udp_proxy.c | 14 +++++++------- programs/x509/cert_req.c | 2 +- programs/x509/cert_write.c | 2 +- scripts/mbedtls_dev/bignum_data.py | 4 ++-- tests/include/test/psa_crypto_helpers.h | 2 +- tests/scripts/check_names.py | 4 ++-- tests/scripts/generate_psa_tests.py | 6 +++--- tests/scripts/test_psa_compliance.py | 2 +- tests/suites/test_suite_mps.function | 2 +- tests/suites/test_suite_psa_crypto.function | 4 ++-- .../test_suite_psa_crypto_driver_wrappers.function | 8 ++++---- .../test_suite_psa_crypto_generate_key.function | 2 +- .../test_suite_psa_crypto_persistent_key.function | 2 +- tests/suites/test_suite_ssl.function | 4 ++-- 51 files changed, 81 insertions(+), 81 deletions(-) diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt index 9abde2b52..4a684bd31 100644 --- a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt +++ b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt @@ -1,5 +1,5 @@ Bugfix - * Fix a bug whereby the the list of signature algorithms sent as part of the + * Fix a bug whereby the list of signature algorithms sent as part of the TLS 1.2 server certificate request would get corrupted, meaning the first algorithm would not get sent and an entry consisting of two random bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. diff --git a/doxygen/input/doc_encdec.h b/doxygen/input/doc_encdec.h index 96734bdd8..ec149aef7 100644 --- a/doxygen/input/doc_encdec.h +++ b/doxygen/input/doc_encdec.h @@ -38,7 +38,7 @@ * All symmetric encryption algorithms are accessible via the generic cipher layer * (see \c mbedtls_cipher_setup()). * - * The asymmetric encryptrion algorithms are accessible via the generic public + * The asymmetric encryption algorithms are accessible via the generic public * key layer (see \c mbedtls_pk_init()). * * The following algorithms are provided: diff --git a/include/mbedtls/asn1write.h b/include/mbedtls/asn1write.h index 555472089..e6f0479ca 100644 --- a/include/mbedtls/asn1write.h +++ b/include/mbedtls/asn1write.h @@ -352,7 +352,7 @@ int mbedtls_asn1_write_octet_string( unsigned char **p, const unsigned char *sta * the existing buffer to fit \p val_len. * * \return A pointer to the new / existing entry on success. - * \return \c NULL if if there was a memory allocation error. + * \return \c NULL if there was a memory allocation error. */ mbedtls_asn1_named_data *mbedtls_asn1_store_named_data( mbedtls_asn1_named_data **list, const char *oid, size_t oid_len, diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 7f5558087..2d1e5fa2a 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -905,7 +905,7 @@ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) && \ !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequsites" +#error "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT defined, but not all prerequisites" #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) && MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT != 0 diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 5b27dda2a..5727c5eb7 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -7,7 +7,7 @@ * those definitions to define symbols used in the library code. * * Users and integrators should not edit this file, please edit - * include/mbedtls/mbedtls_config.h for MBETLS_XXX settings or + * include/mbedtls/mbedtls_config.h for MBEDTLS_XXX settings or * include/psa/crypto_config.h for PSA_WANT_XXX settings. */ /* diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index fe87d40a5..1179cd1b3 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -58,7 +58,7 @@ #define MBEDTLS_LMS_TYPE_LEN (4) #define MBEDTLS_LMS_H_TREE_HEIGHT(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 10u : 0) -/* The length of a hash output, Currently only imlemented for SHA256. +/* The length of a hash output, Currently only implemented for SHA256. * Max is 32 bytes. */ #define MBEDTLS_LMS_M_NODE_BYTES(type) ((type) == MBEDTLS_LMS_SHA256_M32_H10 ? 32 : 0) @@ -82,7 +82,7 @@ extern "C" { /** The Identifier of the LMS parameter set, as per * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml - * We are only implementing a subset of the types, particularly H10, for the sake of simplicty. + * We are only implementing a subset of the types, particularly H10, for the sake of simplicity. */ typedef enum { MBEDTLS_LMS_SHA256_M32_H10 = 0x6, @@ -90,7 +90,7 @@ typedef enum { /** The Identifier of the LMOTS parameter set, as per * https://www.iana.org/assignments/leighton-micali-signatures/leighton-micali-signatures.xhtml. - * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicty. + * We are only implementing a subset of the types, particularly N32_W8, for the sake of simplicity. */ typedef enum { MBEDTLS_LMOTS_SHA256_N32_W8 = 4 diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index c719073c2..f65034d8c 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1543,7 +1543,7 @@ * Requires: MBEDTLS_SSL_KEEP_PEER_CERTIFICATE * Requires: MBEDTLS_PSA_CRYPTO_C * - * Note: even though TLS 1.3 depends on PSA Crypto, and uses it unconditonally + * Note: even though TLS 1.3 depends on PSA Crypto, and uses it unconditionally * for most operations, if you want it to only use PSA for all crypto * operations, you need to also enable MBEDTLS_USE_PSA_CRYPTO; otherwise X.509 * operations, and functions that are common with TLS 1.2 (record protection, diff --git a/include/mbedtls/pkcs12.h b/include/mbedtls/pkcs12.h index 1b87aea92..327996a9e 100644 --- a/include/mbedtls/pkcs12.h +++ b/include/mbedtls/pkcs12.h @@ -94,7 +94,7 @@ int mbedtls_pkcs12_pbe( mbedtls_asn1_buf *pbe_params, int mode, * no byte order mark and with a null terminator (i.e. the * last two bytes should be 0x00 0x00). * \param pwdlen length of the password (may be 0). - * \param salt Salt buffer to use This may only be \c NULL when + * \param salt Salt buffer to use. This may only be \c NULL when * \p saltlen is 0. * \param saltlen length of the salt (may be zero) * \param mbedtls_md mbedtls_md type to use during the derivation diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index 52895ac2b..12a9cd627 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -218,7 +218,7 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, * \param hashlen Length of the hash. * * \note This function is different from mbedtls_pkcs7_signed_data_verify() - * in a way that it directly recieves the hash of the data. + * in a way that it directly receives the hash of the data. * * \return A negative error code on failure. */ diff --git a/include/mbedtls/rsa.h b/include/mbedtls/rsa.h index 002551f03..2bfaf8f71 100644 --- a/include/mbedtls/rsa.h +++ b/include/mbedtls/rsa.h @@ -239,7 +239,7 @@ int mbedtls_rsa_import( mbedtls_rsa_context *ctx, * \param N The RSA modulus. This may be \c NULL. * \param N_len The Byte length of \p N; it is ignored if \p N == NULL. * \param P The first prime factor of \p N. This may be \c NULL. - * \param P_len The Byte length of \p P; it ns ignored if \p P == NULL. + * \param P_len The Byte length of \p P; it is ignored if \p P == NULL. * \param Q The second prime factor of \p N. This may be \c NULL. * \param Q_len The Byte length of \p Q; it is ignored if \p Q == NULL. * \param D The private exponent. This may be \c NULL. diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3165cd56a..05ccee414 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -2136,7 +2136,7 @@ void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, * the `ServerHello` contains the CID extension, too, * the CID extension will actually be put to use. * - On the Server, enabling the use of the CID through - * this call implies that that the server will look for + * this call implies that the server will look for * the CID extension in a `ClientHello` from the client, * and, if present, reply with a CID extension in its * `ServerHello`. @@ -2582,7 +2582,7 @@ static inline uintptr_t mbedtls_ssl_conf_get_user_data_n( * \note The library stores \c p without accessing it. It is the responsibility * of the caller to ensure that the pointer remains valid. * - * \param ssl The SSL context context to modify. + * \param ssl The SSL context to modify. * \param p The new value of the user data. */ static inline void mbedtls_ssl_set_user_data_p( @@ -2596,7 +2596,7 @@ static inline void mbedtls_ssl_set_user_data_p( * * You can retrieve this value later with mbedtls_ssl_get_user_data_n(). * - * \param ssl The SSL context context to modify. + * \param ssl The SSL context to modify. * \param n The new value of the user data. */ static inline void mbedtls_ssl_set_user_data_n( @@ -2613,7 +2613,7 @@ static inline void mbedtls_ssl_set_user_data_n( * called. The value is undefined if mbedtls_ssl_set_user_data_n() has * been called without a subsequent call to mbedtls_ssl_set_user_data_p(). * - * \param ssl The SSL context context to modify. + * \param ssl The SSL context to modify. * \return The current value of the user data. */ static inline void *mbedtls_ssl_get_user_data_p( @@ -2629,7 +2629,7 @@ static inline void *mbedtls_ssl_get_user_data_p( * called. The value is undefined if mbedtls_ssl_set_user_data_p() has * been called without a subsequent call to mbedtls_ssl_set_user_data_n(). * - * \param ssl The SSL context context to modify. + * \param ssl The SSL context to modify. * \return The current value of the user data. */ static inline uintptr_t mbedtls_ssl_get_user_data_n( diff --git a/include/psa/crypto.h b/include/psa/crypto.h index a71ca3fd6..03181ed33 100644 --- a/include/psa/crypto.h +++ b/include/psa/crypto.h @@ -525,7 +525,7 @@ psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key, * * This function destroys a key from both volatile * memory and, if applicable, non-volatile storage. Implementations shall - * make a best effort to ensure that that the key material cannot be recovered. + * make a best effort to ensure that the key material cannot be recovered. * * This function also erases any metadata such as policies and frees * resources associated with the key. @@ -3823,7 +3823,7 @@ psa_status_t psa_key_derivation_verify_bytes( * compares those bytes to an expected value, provided as key of type * #PSA_KEY_TYPE_PASSWORD_HASH. * If you view the key derivation's output as a stream of bytes, this - * function destructively reads the number of bytes corresponding the the + * function destructively reads the number of bytes corresponding to the * length of the expected value from the stream before comparing them. * The operation's capacity decreases by the number of bytes read. * diff --git a/include/psa/crypto_se_driver.h b/include/psa/crypto_se_driver.h index f0252c88c..225fb1763 100644 --- a/include/psa/crypto_se_driver.h +++ b/include/psa/crypto_se_driver.h @@ -226,7 +226,7 @@ typedef psa_status_t (*psa_drv_se_mac_finish_t)(void *op_context, * operation by comparing the resulting MAC against a provided value * * \param[in,out] op_context A hardware-specific structure for the previously - * started MAC operation to be fiinished + * started MAC operation to be finished * \param[in] p_mac The MAC value against which the resulting MAC * will be compared against * \param[in] mac_length The size in bytes of the value stored in `p_mac` @@ -337,7 +337,7 @@ typedef struct { /** Function that completes a MAC operation with a verify check */ psa_drv_se_mac_finish_verify_t MBEDTLS_PRIVATE(p_finish_verify); - /** Function that aborts a previoustly started MAC operation + /** Function that aborts a previously started MAC operation */ psa_drv_se_mac_abort_t MBEDTLS_PRIVATE(p_abort); /** Function that performs a MAC operation in one call @@ -746,7 +746,7 @@ typedef psa_status_t (*psa_drv_se_aead_encrypt_t)(psa_drv_se_context_t *drv_cont size_t ciphertext_size, size_t *p_ciphertext_length); -/** A function that peforms a secure element authenticated decryption operation +/** A function that performs a secure element authenticated decryption operation * * \param[in,out] drv_context The driver context structure. * \param[in] key_slot Slot containing the key to use @@ -1157,7 +1157,7 @@ typedef struct { * * Different key derivation algorithms require a different number of inputs. * Instead of having an API that takes as input variable length arrays, which - * can be problemmatic to manage on embedded platforms, the inputs are passed + * can be problematic to manage on embedded platforms, the inputs are passed * to the driver via a function, `psa_drv_se_key_derivation_collateral`, that * is called multiple times with different `collateral_id`s. Thus, for a key * derivation algorithm that required 3 parameter inputs, the flow would look @@ -1271,7 +1271,7 @@ typedef struct { psa_drv_se_key_derivation_collateral_t MBEDTLS_PRIVATE(p_collateral); /** Function that performs a final key derivation step */ psa_drv_se_key_derivation_derive_t MBEDTLS_PRIVATE(p_derive); - /** Function that perforsm a final key derivation or agreement and + /** Function that performs a final key derivation or agreement and * exports the key */ psa_drv_se_key_derivation_export_t MBEDTLS_PRIVATE(p_export); } psa_drv_se_key_derivation_t; diff --git a/include/psa/crypto_sizes.h b/include/psa/crypto_sizes.h index 231ea624a..b42b2df0d 100644 --- a/include/psa/crypto_sizes.h +++ b/include/psa/crypto_sizes.h @@ -717,7 +717,7 @@ (PSA_KEY_EXPORT_ASN1_INTEGER_MAX_SIZE(key_bits) + 11) /* Maximum size of the export encoding of an RSA key pair. - * Assumes thatthe public exponent is less than 2^32 and that the size + * Assumes that the public exponent is less than 2^32 and that the size * difference between the two primes is at most 1 bit. * * RSAPrivateKey ::= SEQUENCE { diff --git a/include/psa/crypto_types.h b/include/psa/crypto_types.h index 739062dfe..af61aea9d 100644 --- a/include/psa/crypto_types.h +++ b/include/psa/crypto_types.h @@ -297,7 +297,7 @@ typedef psa_key_id_t mbedtls_svc_key_id_t; #else /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ /* Implementation-specific: The Mbed Cryptography library can be built as - * part of a multi-client service that exposes the PSA Cryptograpy API in each + * part of a multi-client service that exposes the PSA Cryptography API in each * client and encodes the client identity in the key identifier argument of * functions such as psa_open_key(). */ diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index b465ddb14..c9c1ec05f 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -2577,7 +2577,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * This flag allows the key to be used for a MAC verification operation * or for an asymmetric signature verification operation, - * if otherwise permitted by by the key's type and policy. + * if otherwise permitted by the key's type and policy. * * For a key pair, this concerns the public key. */ @@ -2587,7 +2587,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * hash. * * This flag allows the key to be used for a key derivation operation or for - * a key agreement operation, if otherwise permitted by by the key's type and + * a key agreement operation, if otherwise permitted by the key's type and * policy. * * If this flag is present on all keys used in calls to @@ -2603,7 +2603,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * This flag allows the key to be used: * * This flag allows the key to be used in a key derivation operation, if - * otherwise permitted by by the key's type and policy. + * otherwise permitted by the key's type and policy. * * If this flag is present on all keys used in calls to * psa_key_derivation_input_key() for a key derivation operation, then it diff --git a/library/aes.c b/library/aes.c index 7d035246f..319d9bb67 100644 --- a/library/aes.c +++ b/library/aes.c @@ -1112,7 +1112,7 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, { /* We are on the last block in a decrypt operation that has * leftover bytes, so we need to use the next tweak for this block, - * and this tweak for the lefover bytes. Save the current tweak for + * and this tweak for the leftover bytes. Save the current tweak for * the leftovers and then update the current tweak for use on this, * the last full block. */ memcpy( prev_tweak, tweak, sizeof( tweak ) ); diff --git a/library/ccm.c b/library/ccm.c index 3edfba366..675783e4c 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -144,7 +144,7 @@ static int ccm_calculate_first_block_if_ready(mbedtls_ccm_context *ctx) unsigned char i; size_t len_left, olen; - /* length calulcation can be done only after both + /* length calculation can be done only after both * mbedtls_ccm_starts() and mbedtls_ccm_set_lengths() have been executed */ if( !(ctx->state & CCM_STATE__STARTED) || !(ctx->state & CCM_STATE__LENGTHS_SET) ) diff --git a/library/debug.c b/library/debug.c index 6114a460f..78ce9cedc 100644 --- a/library/debug.c +++ b/library/debug.c @@ -107,7 +107,7 @@ void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, /* * With non-blocking I/O and examples that just retry immediately, * the logs would be quickly flooded with WANT_READ, so ignore that. - * Don't ignore WANT_WRITE however, since is is usually rare. + * Don't ignore WANT_WRITE however, since it is usually rare. */ if( ret == MBEDTLS_ERR_SSL_WANT_READ ) return; diff --git a/library/lmots.h b/library/lmots.h index 39e869925..022dcf3d4 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -139,7 +139,7 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, * this public key. * * \param ctx The initialized LMOTS context that contains the - * publc key. + * public key. * \param key The buffer into which the key will be output. Must * be at least #MBEDTLS_LMOTS_PUBLIC_KEY_LEN in size. * diff --git a/library/mps_reader.c b/library/mps_reader.c index 6f823bde1..df97b6cd1 100644 --- a/library/mps_reader.c +++ b/library/mps_reader.c @@ -530,7 +530,7 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, * of the accumulator. */ memmove( acc, acc + acc_backup_offset, acc_backup_len ); - /* Copy uncmmitted parts of the current fragment to the + /* Copy uncommitted parts of the current fragment to the * accumulator. */ memcpy( acc + acc_backup_len, frag + frag_backup_offset, frag_backup_len ); diff --git a/library/pkcs7.c b/library/pkcs7.c index e4238b6a3..5b22afac9 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -314,7 +314,7 @@ static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, if( ret != 0 ) goto out; - /* Asssume authenticatedAttributes is nonexistent */ + /* Assume authenticatedAttributes is nonexistent */ ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->sig_alg_identifier ); if( ret != 0 ) diff --git a/library/psa_crypto.c b/library/psa_crypto.c index c73f342e2..cb5791fc7 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5998,7 +5998,7 @@ psa_status_t psa_generate_random( uint8_t *output, if( status != PSA_SUCCESS ) return( status ); /* Breaking up a request into smaller chunks is currently not supported - * for the extrernal RNG interface. */ + * for the external RNG interface. */ if( output_length != output_size ) return( PSA_ERROR_INSUFFICIENT_ENTROPY ); return( PSA_SUCCESS ); diff --git a/library/psa_crypto_se.h b/library/psa_crypto_se.h index 549dfb69e..693c3ead5 100644 --- a/library/psa_crypto_se.h +++ b/library/psa_crypto_se.h @@ -139,7 +139,7 @@ psa_status_t psa_find_se_slot_for_key( psa_se_drv_table_entry_t *driver, psa_key_slot_number_t *slot_number ); -/** Destoy a key in a secure element. +/** Destroy a key in a secure element. * * This function calls the relevant driver method to destroy a key * and updates the driver's persistent data. diff --git a/library/ssl_client.c b/library/ssl_client.c index 0f0ea1dc5..2c4ce4316 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -784,7 +784,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) /* * Generate the random bytes, except when responding to a verify request - * where we MUST reuse the previoulsy generated random bytes + * where we MUST reuse the previously generated random bytes * (RFC 6347 4.2.1). */ #if defined(MBEDTLS_SSL_PROTO_DTLS) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 53d50f23c..5808cab08 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -143,7 +143,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); MBEDTLS_SSL_EXT_MASK( TRUNCATED_HMAC ) | \ MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) -/* RFC 8446 section 4.2. Allowed extensions for ClienHello */ +/* RFC 8446 section 4.2. Allowed extensions for ClientHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 040dc80e1..e4d50dbfd 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -691,7 +691,7 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, int auth_done = 0; unsigned char * data; /* For an explanation of the additional data length see - * the descrpition of ssl_extract_add_data_from_record(). + * the description of ssl_extract_add_data_from_record(). */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char add_data[23 + MBEDTLS_SSL_CID_OUT_LEN_MAX]; @@ -1289,7 +1289,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #endif unsigned char* data; /* For an explanation of the additional data length see - * the descrpition of ssl_extract_add_data_from_record(). + * the description of ssl_extract_add_data_from_record(). */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char add_data[23 + MBEDTLS_SSL_CID_IN_LEN_MAX]; @@ -4098,7 +4098,7 @@ static int ssl_load_buffered_message( mbedtls_ssl_context *ssl ) if( hs == NULL ) return( -1 ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_load_buffered_messsage" ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_load_buffered_message" ) ); if( ssl->state == MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC || ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC ) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 5def8b6ca..eda8891b8 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1972,7 +1972,7 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, /* * Note: we currently ignore the PKS identity hint, as we only allow one - * PSK to be provisionned on the client. This could be changed later if + * PSK to be provisioned on the client. This could be changed later if * someone needs that feature. */ *p += len; diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index ce8767c5f..6caae89b4 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -634,7 +634,7 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, if( p_identity_len != identities_end || p_binder_len != binders_end ) { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key extesion decode error" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key extension decode error" ) ); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, MBEDTLS_ERR_SSL_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_DECODE_ERROR ); diff --git a/library/x509.c b/library/x509.c index 362e03676..be8797300 100644 --- a/library/x509.c +++ b/library/x509.c @@ -233,7 +233,7 @@ static int x509_get_hash_alg( const mbedtls_x509_buf *alg, mbedtls_md_type_t *md * * RFC 4055 (which defines use of RSASSA-PSS in PKIX) states that the value * of trailerField MUST be 1, and PKCS#1 v2.2 doesn't even define any other - * option. Enfore this at parsing time. + * option. Enforce this at parsing time. */ int mbedtls_x509_get_rsassa_pss_params( const mbedtls_x509_buf *params, mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, diff --git a/library/x509_crl.c b/library/x509_crl.c index d830fcd05..dc2d2e3e2 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -1,5 +1,5 @@ /* - * X.509 Certidicate Revocation List (CRL) parsing + * X.509 Certificate Revocation List (CRL) parsing * * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 331838bb4..3e81d135f 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -42,7 +42,7 @@ int main( void ) #define USAGE \ "\n usage: dh_genprime param=<>...\n" \ - "\n acceprable parameters:\n" \ + "\n acceptable parameters:\n" \ " bits=%%d default: 2048\n" #define DFL_BITS 2048 diff --git a/programs/psa/aead_demo.c b/programs/psa/aead_demo.c index c4ed0dd82..1efd13265 100644 --- a/programs/psa/aead_demo.c +++ b/programs/psa/aead_demo.c @@ -104,7 +104,7 @@ void print_buf( const char *title, uint8_t *buf, size_t len ) /* Run a PSA function and bail out if it fails. * The symbolic name of the error code can be recovered using: - * programs/psa/psa_consant_name status */ + * programs/psa/psa_constant_name status */ #define PSA_CHECK( expr ) \ do \ { \ diff --git a/programs/psa/hmac_demo.c b/programs/psa/hmac_demo.c index 6238892b4..f949a8983 100644 --- a/programs/psa/hmac_demo.c +++ b/programs/psa/hmac_demo.c @@ -81,7 +81,7 @@ void print_buf( const char *title, uint8_t *buf, size_t len ) /* Run a PSA function and bail out if it fails. * The symbolic name of the error code can be recovered using: - * programs/psa/psa_consant_name status */ + * programs/psa/psa_constant_name status */ #define PSA_CHECK( expr ) \ do \ { \ diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c index 23a34e049..d13ea2889 100644 --- a/programs/ssl/dtls_client.c +++ b/programs/ssl/dtls_client.c @@ -343,5 +343,5 @@ exit: mbedtls_exit( ret ); } #endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_DTLS && MBEDTLS_NET_C && - MBEDTLD_TIMING_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && + MBEDTLS_TIMING_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_RSA_C && MBEDTLS_PEM_PARSE_C */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 1b4a94ab0..d0c41541e 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1949,7 +1949,7 @@ int main( int argc, char *argv[] ) * is not recommended in practice. * `psk_or_ephemeral` exists in theory, we need this mode to test if * this setting work correctly. With this key exchange setting, server - * should always perform `ephemeral` handshake. `psk` or `psk_ephermal` + * should always perform `ephemeral` handshake. `psk` or `psk_ephemeral` * is not expected. */ else if( strcmp( q, "psk_or_ephemeral" ) == 0 ) diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index ecb093e14..6313c522a 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -416,7 +416,7 @@ static void TimerProc( void *TimerContext ) Sleep( alarmMs ); mbedtls_timing_alarmed = 1; /* _endthread will be called implicitly on return - * That ensures execution of thread funcition's epilogue */ + * That ensures execution of thread function's epilogue */ } static void mbedtls_set_alarm( int seconds ) diff --git a/programs/test/udp_proxy.c b/programs/test/udp_proxy.c index e3386d189..ccd130310 100644 --- a/programs/test/udp_proxy.c +++ b/programs/test/udp_proxy.c @@ -377,7 +377,7 @@ static const char *msg_type( unsigned char *msg, size_t len ) #if defined(MBEDTLS_TIMING_C) /* Return elapsed time in milliseconds since the first call */ -static unsigned ellapsed_time( void ) +static unsigned elapsed_time( void ) { static int initialized = 0; static struct mbedtls_timing_hr_time hires; @@ -413,9 +413,9 @@ static int ctx_buffer_flush( ctx_buffer *buf ) int ret; mbedtls_printf( " %05u flush %s: %u bytes, %u datagrams, last %u ms\n", - ellapsed_time(), buf->description, + elapsed_time(), buf->description, (unsigned) buf->len, buf->num_datagrams, - ellapsed_time() - buf->packet_lifetime ); + elapsed_time() - buf->packet_lifetime ); ret = mbedtls_net_send( buf->ctx, buf->data, buf->len ); @@ -427,7 +427,7 @@ static int ctx_buffer_flush( ctx_buffer *buf ) static unsigned ctx_buffer_time_remaining( ctx_buffer *buf ) { - unsigned const cur_time = ellapsed_time(); + unsigned const cur_time = elapsed_time(); if( buf->num_datagrams == 0 ) return( (unsigned) -1 ); @@ -467,7 +467,7 @@ static int ctx_buffer_append( ctx_buffer *buf, buf->len += len; if( ++buf->num_datagrams == 1 ) - buf->packet_lifetime = ellapsed_time(); + buf->packet_lifetime = elapsed_time(); return( (int) len ); } @@ -517,10 +517,10 @@ void print_packet( const packet *p, const char *why ) #if defined(MBEDTLS_TIMING_C) if( why == NULL ) mbedtls_printf( " %05u dispatch %s %s (%u bytes)\n", - ellapsed_time(), p->way, p->type, p->len ); + elapsed_time(), p->way, p->type, p->len ); else mbedtls_printf( " %05u dispatch %s %s (%u bytes): %s\n", - ellapsed_time(), p->way, p->type, p->len, why ); + elapsed_time(), p->way, p->type, p->len, why ); #else if( why == NULL ) mbedtls_printf( " dispatch %s %s (%u bytes)\n", diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 30b389ab4..4879583ce 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -355,7 +355,7 @@ int main( int argc, char *argv[] ) if( ( ret = write_certificate_request( &req, opt.output_file, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) { - mbedtls_printf( " failed\n ! write_certifcate_request %d", ret ); + mbedtls_printf( " failed\n ! write_certificate_request %d", ret ); goto exit; } diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index f9366fe80..a8910d7f6 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -752,7 +752,7 @@ int main( int argc, char *argv[] ) if( ret != 0 ) { mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! x509write_crt_set_basic_contraints " + mbedtls_printf( " failed\n ! x509write_crt_set_basic_constraints " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); goto exit; } diff --git a/scripts/mbedtls_dev/bignum_data.py b/scripts/mbedtls_dev/bignum_data.py index 74d21d0ca..e6ed30005 100644 --- a/scripts/mbedtls_dev/bignum_data.py +++ b/scripts/mbedtls_dev/bignum_data.py @@ -18,7 +18,7 @@ produced them.""" import random # Functions calling these were used to produce test data and are here only for -# reproducability, they are not used by the test generation framework/classes +# reproducibility, they are not used by the test generation framework/classes try: from Cryptodome.Util.number import isPrime, getPrime #type: ignore #pylint: disable=import-error except ImportError: @@ -128,7 +128,7 @@ def __gen_safe_prime(bits, seed): randbytes. ''' rng = random.Random() - # We want reproducability across python versions + # We want reproducibility across python versions rng.seed(seed, version=2) while True: prime = 2*getPrime(bits-1, rng.randbytes)+1 #pylint: disable=no-member diff --git a/tests/include/test/psa_crypto_helpers.h b/tests/include/test/psa_crypto_helpers.h index bc2b016db..354295091 100644 --- a/tests/include/test/psa_crypto_helpers.h +++ b/tests/include/test/psa_crypto_helpers.h @@ -189,7 +189,7 @@ psa_status_t mbedtls_test_record_status( psa_status_t status, * * Do a key policy permission extension on key usage policies always involves * permissions of other usage policies - * (like PSA_KEY_USAGE_SIGN_HASH involves PSA_KEY_USAGE_SIGN_MESSGAE). + * (like PSA_KEY_USAGE_SIGN_HASH involves PSA_KEY_USAGE_SIGN_MESSAGE). */ psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags ); diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 396ab740d..920537e3f 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -629,7 +629,7 @@ class CodeParser(): self.log.info("Compiling...") symbols = [] - # Back up the config and atomically compile with the full configratuion. + # Back up the config and atomically compile with the full configuration. shutil.copy( "include/mbedtls/mbedtls_config.h", "include/mbedtls/mbedtls_config.h.bak" @@ -892,7 +892,7 @@ def main(): parser.add_argument( "-q", "--quiet", action="store_true", - help="hide unnecessary text, explanations, and highlighs" + help="hide unnecessary text, explanations, and highlights" ) args = parser.parse_args() diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 2f0900757..b27104843 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -80,7 +80,7 @@ def automatic_dependencies(*expressions: str) -> List[str]: # A temporary hack: at the time of writing, not all dependency symbols # are implemented yet. Skip test cases for which the dependency symbols are # not available. Once all dependency symbols are available, this hack must -# be removed so that a bug in the dependency symbols proprely leads to a test +# be removed so that a bug in the dependency symbols properly leads to a test # failure. def read_implemented_dependencies(filename: str) -> FrozenSet[str]: return frozenset(symbol @@ -459,7 +459,7 @@ class StorageKey(psa_storage.Key): """Prepare to generate a key. * `usage` : The usage flags used for the key. - * `without_implicit_usage`: Flag to defide to apply the usage extension + * `without_implicit_usage`: Flag to define to apply the usage extension """ usage_flags = set(usage) if not without_implicit_usage: @@ -483,7 +483,7 @@ class StorageTestData(StorageKey): ) -> None: """Prepare to generate test data - * `description` : used for the the test case names + * `description` : used for the test case names * `expected_usage`: the usage flags generated as the expected usage flags in the test cases. CAn differ from the usage flags stored in the keys because of the usage flags extension. diff --git a/tests/scripts/test_psa_compliance.py b/tests/scripts/test_psa_compliance.py index 7d06db1aa..92db4171a 100755 --- a/tests/scripts/test_psa_compliance.py +++ b/tests/scripts/test_psa_compliance.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 """Run the PSA Crypto API compliance test suite. Clone the repo and check out the commit specified by PSA_ARCH_TEST_REPO and PSA_ARCH_TEST_REF, -then complie and run the test suite. The clone is stored at /psa-arch-tests. +then compile and run the test suite. The clone is stored at /psa-arch-tests. Known defects in either the test suite or mbedtls - identified by their test number - are ignored, while unexpected failures AND successes are reported as errors, to help keep the list of known defects as up to date as possible. diff --git a/tests/suites/test_suite_mps.function b/tests/suites/test_suite_mps.function index c40c50e69..ec1122ae4 100644 --- a/tests/suites/test_suite_mps.function +++ b/tests/suites/test_suite_mps.function @@ -295,7 +295,7 @@ void mbedtls_mps_reader_reclaim_overflow() /* This test exercises the behaviour of the MPS reader with accumulator * in the situation where upon calling mbedtls_mps_reader_reclaim(), the * uncommitted data together with the excess data missing in the last - * call to medtls_mps_reader_get() exceeds the bounds of the type + * call to mbedtls_mps_reader_get() exceeds the bounds of the type * holding the buffer length. */ diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index 0c0f2ed65..dbbac764d 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -622,7 +622,7 @@ exit: * the data in to be encrypted / decrypted. If * -1, no chunking * \param expected_output Expected output - * \param is_verify If non-zero this is an verify operation. + * \param is_verify If non-zero this is a verify operation. * \param do_zero_parts If non-zero, interleave zero length chunks * with normal length chunks. * \return int Zero on failure, non-zero on success. @@ -6131,7 +6131,7 @@ void aead_multipart_state_test( int key_type_arg, data_t *key_data, psa_aead_abort( &operation ); - /* Test for calling set lengths with an plaintext length of SIZE_MAX, after setting nonce */ + /* Test for calling set lengths with a plaintext length of SIZE_MAX, after setting nonce */ PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.function b/tests/suites/test_suite_psa_crypto_driver_wrappers.function index b89579644..b713cb284 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.function +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.function @@ -748,14 +748,14 @@ void cipher_encrypt_multipart( int alg_arg, mbedtls_psa_cipher_operation_t mbedtls_operation = MBEDTLS_PSA_CIPHER_OPERATION_INIT; - mbedtls_transparent_test_driver_cipher_operation_t tranparent_operation = + mbedtls_transparent_test_driver_cipher_operation_t transparent_operation = MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; mbedtls_opaque_test_driver_cipher_operation_t opaque_operation = MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; operation.ctx.mbedtls_ctx = mbedtls_operation; - operation.ctx.transparent_test_driver_ctx = tranparent_operation; + operation.ctx.transparent_test_driver_ctx = transparent_operation; operation.ctx.opaque_test_driver_ctx = opaque_operation; PSA_ASSERT( psa_crypto_init( ) ); @@ -880,14 +880,14 @@ void cipher_decrypt_multipart( int alg_arg, mbedtls_psa_cipher_operation_t mbedtls_operation = MBEDTLS_PSA_CIPHER_OPERATION_INIT; - mbedtls_transparent_test_driver_cipher_operation_t tranparent_operation = + mbedtls_transparent_test_driver_cipher_operation_t transparent_operation = MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; mbedtls_opaque_test_driver_cipher_operation_t opaque_operation = MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; operation.ctx.mbedtls_ctx = mbedtls_operation; - operation.ctx.transparent_test_driver_ctx = tranparent_operation; + operation.ctx.transparent_test_driver_ctx = transparent_operation; operation.ctx.opaque_test_driver_ctx = opaque_operation; PSA_ASSERT( psa_crypto_init( ) ); diff --git a/tests/suites/test_suite_psa_crypto_generate_key.function b/tests/suites/test_suite_psa_crypto_generate_key.function index dbe9a0ecf..6dc604350 100644 --- a/tests/suites/test_suite_psa_crypto_generate_key.function +++ b/tests/suites/test_suite_psa_crypto_generate_key.function @@ -18,7 +18,7 @@ void generate_key( int key_type_arg, int bits_arg, int expected_status_arg) psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = INVALID_KEY_ID; - // key lifetiem, usage flags, algorithm are irrelevant for this test + // key lifetime, usage flags, algorithm are irrelevant for this test psa_key_type_t key_type = key_type_arg; size_t bits = bits_arg; psa_status_t expected_status = expected_status_arg; diff --git a/tests/suites/test_suite_psa_crypto_persistent_key.function b/tests/suites/test_suite_psa_crypto_persistent_key.function index 08db34aa4..bb8792313 100644 --- a/tests/suites/test_suite_psa_crypto_persistent_key.function +++ b/tests/suites/test_suite_psa_crypto_persistent_key.function @@ -2,7 +2,7 @@ /* The tests in this module verify the contents of key store files. They * access internal key storage functions directly. Some of the tests depend - * on the the storage format. On the other hand, these tests treat the storage + * on the storage format. On the other hand, these tests treat the storage * subsystem as a black box, and in particular have no reliance on the * internals of the ITS implementation. * diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7447a1d0e..0dd8b7c56 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -511,7 +511,7 @@ void mbedtls_mock_socket_close( mbedtls_mock_socket* socket ) * \p peer1 and \p peer2 must have been previously initialized by calling * mbedtls_mock_socket_init(). * - * The capacites of the internal buffers are set to \p bufsize. Setting this to + * The capacities of the internal buffers are set to \p bufsize. Setting this to * the correct value allows for simulation of MTU, sanity testing the mock * implementation and mocking TCP connections with lower memory cost. */ @@ -652,7 +652,7 @@ void mbedtls_message_socket_init( mbedtls_test_message_socket_context *ctx ) } /* - * Setup a given mesasge socket context including initialization of + * Setup a given message socket context including initialization of * input/output queues to a chosen capacity of messages. Also set the * corresponding mock socket. * From 54dfcb7794fa9db4a1139a2351a2c6ddb7cd2103 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 5 Dec 2022 15:43:09 +0800 Subject: [PATCH 1109/1574] fix comments and debug info issues Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index dec50eee5..ef0b1a84d 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -430,7 +430,7 @@ int main( void ) " max_early_data_size=%%d default: 0 (disabled)\n" \ " options: 0 (disabled), " \ " -1 (enabled, builtin max size), " \ - " n > 0 (enabled, max amount data for 0-RTT )\n" + " n > 0 (enabled, max amount of early data )\n" #else #define USAGE_EARLY_DATA "" #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -502,7 +502,7 @@ int main( void ) " build_version=%%d default: none (disabled)\n" \ " option: 1 (print build version only and stop)\n" \ " reco_debug_level=%%d default: 0 (disabled)\n" \ - " debug_level for 2nd flight.\n" \ + " level of debugging for re-connection.\n" \ " buffer_size=%%d default: 200 \n" \ " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ @@ -605,7 +605,7 @@ struct options const char *server_addr; /* address on which the ssl service runs */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ - int reco_debug_level; /* level of 2nd flight debugging */ + int reco_debug_level; /* level of debugging for re-connection. */ int nbio; /* should I/O be blocking? */ int event; /* loop or event-driven IO? level or edge triggered? */ uint32_t read_timeout; /* timeout on mbedtls_ssl_read() in milliseconds */ @@ -691,7 +691,7 @@ struct options const char *cid_val_renego; /* the CID to use for incoming messages * after renegotiation */ int reproducible; /* make communication reproducible */ - uint32_t max_early_data_size; /* max amount early data */ + uint32_t max_early_data_size; /* max amount of early data */ int query_config_mode; /* whether to read config */ int use_srtp; /* Support SRTP */ int force_srtp_profile; /* SRTP protection profile to use or all */ From 416b48c0236825e585e8a1ff9e9d2f3b709e7bbc Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 5 Dec 2022 08:08:28 +0000 Subject: [PATCH 1110/1574] ChangeLog entry is fixed in a different PR Signed-off-by: Tom Cosgrove --- ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt index 4a684bd31..9abde2b52 100644 --- a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt +++ b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt @@ -1,5 +1,5 @@ Bugfix - * Fix a bug whereby the list of signature algorithms sent as part of the + * Fix a bug whereby the the list of signature algorithms sent as part of the TLS 1.2 server certificate request would get corrupted, meaning the first algorithm would not get sent and an entry consisting of two random bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. From ca6d6614a61cbaee5e1eb7bf8f67e3746aa9e738 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 5 Dec 2022 10:48:23 +0000 Subject: [PATCH 1111/1574] Fix broken link Signed-off-by: Dave Rodgman --- .github/pull_request_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 94fb0202a..50a4901c5 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -14,6 +14,6 @@ Please write a few sentences describing the overall goals of the pull request's ## Notes for the submitter -Please refer to the [contributing guidelines](../CONTRIBUTING.md), especially the +Please refer to the [contributing guidelines](https://github.com/Mbed-TLS/mbedtls/blob/development/CONTRIBUTING.md), especially the checklist for PR contributors. From dbcbf44d650cff6d84e3838068b56587a74f742c Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 5 Dec 2022 11:15:10 +0000 Subject: [PATCH 1112/1574] Update include/mbedtls/mbedtls_config.h Co-authored-by: Tom Cosgrove Signed-off-by: Dave Rodgman --- include/mbedtls/mbedtls_config.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 0e45bcac1..826ab6459 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2817,8 +2817,9 @@ /** * \def MBEDTLS_PKCS7_C * - * This feature is a work in progress and not ready for production. The API may - * change. Testing and validation is incomplete. + * This feature is a work in progress and not ready for production. Testing and + * validation is incomplete, and handling of malformed inputs may not be robust. + * The API may change. * * Enable PKCS7 core for using PKCS7 formatted signatures. * RFC Link - https://tools.ietf.org/html/rfc2315 From ac5ca5a0ea4d81dffdf36063801b4c57579ecdb7 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Fri, 4 Mar 2022 12:50:46 +0800 Subject: [PATCH 1113/1574] Refactor cookie members of handshake struct Signed-off-by: Jerry Yu --- library/ssl_client.c | 4 ++-- library/ssl_misc.h | 38 ++++++++++++++++++++++++++------------ library/ssl_tls12_client.c | 4 ++-- library/ssl_tls12_server.c | 6 +++--- library/ssl_tls13_client.c | 16 ++++++++-------- 5 files changed, 41 insertions(+), 27 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 0f0ea1dc5..82695f1bc 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -524,8 +524,8 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, { MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, cookie", handshake->cookie, - handshake->verify_cookie_len ); - cookie_len = handshake->verify_cookie_len; + handshake->cookie_len ); + cookie_len = handshake->cookie_len; } MBEDTLS_SSL_CHK_BUF_PTR( p, end, cookie_len + 1 ); diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 53d50f23c..ab667a2ce 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -846,19 +846,33 @@ struct mbedtls_ssl_handshake_params } buffering; #if defined(MBEDTLS_SSL_CLI_C) && \ - ( defined(MBEDTLS_SSL_PROTO_DTLS) || defined(MBEDTLS_SSL_PROTO_TLS1_3) ) - unsigned char *cookie; /*!< HelloVerifyRequest cookie for DTLS - * HelloRetryRequest cookie for TLS 1.3 */ + ( defined(MBEDTLS_SSL_PROTO_DTLS) || \ + defined(MBEDTLS_SSL_PROTO_TLS1_3) ) + unsigned char *cookie; /*!< HelloVerifyRequest cookie for DTLS + * HelloRetryRequest cookie for TLS 1.3 */ +#if !defined(MBEDTLS_SSL_PROTO_TLS1_3) + /* RFC 6347 page 15 + ... + opaque cookie<0..2^8-1>; + ... + */ + uint8_t cookie_len; +#else + /* RFC 8446 page 39 + ... + opaque cookie<0..2^16-1>; + ... + If TLS1_3 is enabled, the max length is 2^16 - 1 + */ + uint16_t cookie_len; /*!< DTLS: HelloVerifyRequest cookie length + * TLS1_3: HelloRetryRequest cookie length */ +#endif #endif /* MBEDTLS_SSL_CLI_C && - ( MBEDTLS_SSL_PROTO_DTLS || MBEDTLS_SSL_PROTO_TLS1_3 ) */ -#if defined(MBEDTLS_SSL_PROTO_DTLS) - unsigned char verify_cookie_len; /*!< Cli: HelloVerifyRequest cookie - * length - * Srv: flag for sending a cookie */ -#endif /* MBEDTLS_SSL_PROTO_DTLS */ -#if defined(MBEDTLS_SSL_CLI_C) && defined(MBEDTLS_SSL_PROTO_TLS1_3) - uint16_t hrr_cookie_len; /*!< HelloRetryRequest cookie length */ -#endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_TLS1_3 */ + ( MBEDTLS_SSL_PROTO_DTLS || + MBEDTLS_SSL_PROTO_TLS1_3 ) */ +#if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_PROTO_DTLS) + unsigned char cookie_verify_result; /*!< Srv: flag for sending a cookie */ +#endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_SSL_PROTO_DTLS) unsigned int out_msg_seq; /*!< Outgoing handshake sequence number */ diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 5def8b6ca..dd55456c9 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1200,7 +1200,7 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) } memcpy( ssl->handshake->cookie, p, cookie_len ); - ssl->handshake->verify_cookie_len = cookie_len; + ssl->handshake->cookie_len = cookie_len; /* Start over at ClientHello */ ssl->state = MBEDTLS_SSL_CLIENT_HELLO; @@ -1284,7 +1284,7 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) /* We made it through the verification process */ mbedtls_free( ssl->handshake->cookie ); ssl->handshake->cookie = NULL; - ssl->handshake->verify_cookie_len = 0; + ssl->handshake->cookie_len = 0; } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index eeb579a5c..5cdbcc016 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -1274,12 +1274,12 @@ read_record_header: ssl->cli_id, ssl->cli_id_len ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 2, ( "cookie verification failed" ) ); - ssl->handshake->verify_cookie_len = 1; + ssl->handshake->cookie_verify_result = 1; } else { MBEDTLS_SSL_DEBUG_MSG( 2, ( "cookie verification passed" ) ); - ssl->handshake->verify_cookie_len = 0; + ssl->handshake->cookie_verify_result = 0; } } else @@ -2244,7 +2244,7 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->handshake->verify_cookie_len != 0 ) + ssl->handshake->cookie_verify_result != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 2, ( "client hello was not authenticated" ) ); MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server hello" ) ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0109f776c..839b95445 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -553,7 +553,7 @@ static int ssl_tls13_parse_cookie_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "cookie extension", p, cookie_len ); mbedtls_free( handshake->cookie ); - handshake->hrr_cookie_len = 0; + handshake->cookie_len = 0; handshake->cookie = mbedtls_calloc( 1, cookie_len ); if( handshake->cookie == NULL ) { @@ -564,7 +564,7 @@ static int ssl_tls13_parse_cookie_ext( mbedtls_ssl_context *ssl, } memcpy( handshake->cookie, p, cookie_len ); - handshake->hrr_cookie_len = cookie_len; + handshake->cookie_len = cookie_len; return( 0 ); } @@ -587,21 +587,21 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, cookie", handshake->cookie, - handshake->hrr_cookie_len ); + handshake->cookie_len ); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, handshake->hrr_cookie_len + 6 ); + MBEDTLS_SSL_CHK_BUF_PTR( p, end, handshake->cookie_len + 6 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding cookie extension" ) ); MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_COOKIE, p, 0 ); - MBEDTLS_PUT_UINT16_BE( handshake->hrr_cookie_len + 2, p, 2 ); - MBEDTLS_PUT_UINT16_BE( handshake->hrr_cookie_len, p, 4 ); + MBEDTLS_PUT_UINT16_BE( handshake->cookie_len + 2, p, 2 ); + MBEDTLS_PUT_UINT16_BE( handshake->cookie_len, p, 4 ); p += 6; /* Cookie */ - memcpy( p, handshake->cookie, handshake->hrr_cookie_len ); + memcpy( p, handshake->cookie, handshake->cookie_len ); - *out_len = handshake->hrr_cookie_len + 6; + *out_len = handshake->cookie_len + 6; mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); From e01304f6d8c60a31212d67a6784733cc74423ca5 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 7 Apr 2022 10:51:55 +0800 Subject: [PATCH 1114/1574] fix type conversion issue Signed-off-by: Jerry Yu --- library/ssl_client.c | 8 ++++++-- library/ssl_tls12_client.c | 7 ++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 82695f1bc..6d3789d59 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -518,7 +518,11 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_DTLS) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { - unsigned char cookie_len = 0; +#if !defined(MBEDTLS_SSL_PROTO_TLS1_3) + uint8_t cookie_len = 0; +#else + uint16_t cookie_len = 0; +#endif /* !MBEDTLS_SSL_PROTO_TLS1_3 */ if( handshake->cookie != NULL ) { @@ -529,7 +533,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, } MBEDTLS_SSL_CHK_BUF_PTR( p, end, cookie_len + 1 ); - *p++ = cookie_len; + *p++ = ( unsigned char )cookie_len; if( cookie_len > 0 ) { memcpy( p, handshake->cookie, cookie_len ); diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index dd55456c9..0444f27b8 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1137,7 +1137,12 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) { const unsigned char *p = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); uint16_t dtls_legacy_version; - unsigned char cookie_len; + +#if !defined(MBEDTLS_SSL_PROTO_TLS1_3) + uint8_t cookie_len; +#else + uint16_t cookie_len; +#endif MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse hello verify request" ) ); From ed4f59eec3ce136225ab5d6c1bd5992b6f2478f2 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 5 Dec 2022 12:07:50 +0000 Subject: [PATCH 1115/1574] Fix another typo where 'PSK' was 'PKS' Signed-off-by: Tom Cosgrove --- library/ssl_tls12_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index eda8891b8..7a1745205 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1971,7 +1971,7 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, } /* - * Note: we currently ignore the PKS identity hint, as we only allow one + * Note: we currently ignore the PSK identity hint, as we only allow one * PSK to be provisioned on the client. This could be changed later if * someone needs that feature. */ From f51f972d67e76c2e76c0a2cc6ed803a70ad429ed Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 5 Dec 2022 15:47:40 +0000 Subject: [PATCH 1116/1574] Apply review comments Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_mod.py | 11 +++-------- tests/suites/test_suite_bignum_mod.function | 14 +++++++------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 5f4e362b0..aa06fe863 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -42,16 +42,11 @@ class BignumModSub(bignum_common.ModOperationCommon, BignumModTarget): input_style = "fixed" arity = 2 - # To make negative tests easier, append 0 for success to the generated cases - def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.arg_n, - self.arg_a, - self.arg_b] - ] + self.result() + ["0"] - def result(self) -> List[str]: result = (self.int_a - self.int_b) % self.int_n - return [self.format_result(result)] + # To make negative tests easier, append 0 for success to the + # generated cases + return [self.format_result(result), "0"] # END MERGE SLOT 3 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index abf6732b4..0d2e232f9 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -9,9 +9,9 @@ ASSERT_COMPARE( (a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \ (b).p, (b).limbs * sizeof(mbedtls_mpi_uint) ) -int test_read_modulus( mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_mod_rep_selector int_rep, - char *input ) +static int test_read_modulus( mbedtls_mpi_mod_modulus *m, + mbedtls_mpi_mod_rep_selector int_rep, + char *input ) { mbedtls_mpi_uint *p = NULL; size_t limbs; @@ -23,10 +23,10 @@ int test_read_modulus( mbedtls_mpi_mod_modulus *m, return( mbedtls_mpi_mod_modulus_setup( m, p, limbs, int_rep ) ); } -int test_read_residue( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - char *input, - int skip_limbs_and_value_checks ) +static int test_read_residue( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + char *input, + int skip_limbs_and_value_checks ) { mbedtls_mpi_uint *p = NULL; size_t limbs; From 12c46bd14f3179d48deed3d5393c2ef83bd121aa Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 11:02:51 +0800 Subject: [PATCH 1117/1574] fix various issues - disable reuse of max_early_data_size. - make conf_early_data available for server. - various comment issues Signed-off-by: Jerry Yu --- include/mbedtls/check_config.h | 5 ++--- include/mbedtls/mbedtls_config.h | 12 +++++++----- include/mbedtls/ssl.h | 27 ++++++++++++++++----------- library/ssl_tls.c | 2 -- 4 files changed, 25 insertions(+), 21 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 66407083d..e548a216f 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -32,7 +32,6 @@ #error "mbed TLS requires a platform with 8-bit chars" #endif -/* Need std integer definition for checking max_early_data_size */ #include #if defined(_WIN32) @@ -854,9 +853,9 @@ #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_SRV_C) && \ ( !defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) || \ - ( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE <= 0 ) || \ + ( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE < 0 ) || \ ( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE > UINT32_MAX ) ) -#error "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE MUST be defined and in range(1..UINT32_MAX)" +#error "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE MUST be defined and in range(0..UINT32_MAX)" #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index f33ce60b7..2172072ba 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1664,8 +1664,6 @@ * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED * -* Requires: MBEDTLS_SSL_MAX_EARLY_DATA_SIZE >= 0 -* * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 * is not enabled, this option does not have any effect on the build. * @@ -1678,9 +1676,13 @@ /** * \def MBEDTLS_SSL_MAX_EARLY_DATA_SIZE * - * The maximium amount of 0-RTT data(RFC8446 section 4.6.1). - * It only works when MBEDTLS_SSL_EARLY_DATA is enabled and MUST be in range - * 1...UINT32_MAX + * The default maximum amount of 0-RTT data. See the documentation of + * \c mbedtls_ssl_tls13_conf_max_early_data_size() for more information. + * + * It must be positive and smaller than UINT32_MAX. + * + * If MBEDTLS_SSL_EARLY_DATA is not defined, this default value does not + * have any impact on the build. * * This feature is experimental, not completed and thus not ready for * production. diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index edc1a9898..7ed735e35 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1524,14 +1524,12 @@ struct mbedtls_ssl_config #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_EARLY_DATA) -#if defined(MBEDTLS_SSL_CLI_C) int MBEDTLS_PRIVATE(early_data_enabled); /*!< Early data enablement: * - MBEDTLS_SSL_EARLY_DATA_DISABLED, * - MBEDTLS_SSL_EARLY_DATA_ENABLED */ -#endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) - /* The maximium amount of 0-RTT data. RFC 8446 section 4.6.1 */ + /* The maximum amount of 0-RTT data. RFC 8446 section 4.6.1 */ uint32_t MBEDTLS_PRIVATE(max_early_data_size); #endif /* MBEDTLS_SSL_SRV_C */ @@ -1951,7 +1949,6 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) -#if defined(MBEDTLS_SSL_CLI_C) /** * \brief Set the early data mode * Default: disabled on server and client @@ -1973,19 +1970,27 @@ void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); */ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ); -#endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) /** - * \brief Set the max_early_data_size parameter. + * \brief Set the maximum amount of 0-RTT data in bytes + * Default: #MBEDTLS_SSL_MAX_EARLY_DATA_SIZE + * + * This function sets the value of the max_early_data_size + * field of the early data indication extension included in + * the NewSessionTicket messages that the server may send. + * + * The value defines the maximum amount of 0-RTT data + * in bytes that a client will be allowed to send when using + * one of the tickets defined by the NewSessionTicket messages. + * + * \note When resuming a session using a ticket, if the server receives more + * early data than allowed for the ticket, it terminates the connection. + * The maximum amount of 0-RTT data should thus be large enough + * to allow a minimum of early data to be exchanged. * * \param[in] conf The SSL configuration to use. * \param[in] max_early_data_size The maximum amount of 0-RTT data. - * - 0 Disable 0-RTT feature. - * - * \note max_early_data_size MUST be smaller than - * MBEDTLS_SSL_MAX_EARLY_DATA_SIZE. Otherwise, - * MBEDTLS_SSL_MAX_EARLY_DATA_SIZE will be used. * * \warning This interface is experimental and may change without notice. * diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 14ffef20b..227f8841d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1699,13 +1699,11 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, } #if defined(MBEDTLS_SSL_EARLY_DATA) -#if defined(MBEDTLS_SSL_CLI_C) void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, int early_data_enabled ) { conf->early_data_enabled = early_data_enabled; } -#endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) void mbedtls_ssl_tls13_conf_max_early_data_size( From 2c93fc15449545bfce5aad483af0b4b335717e48 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 11:05:44 +0800 Subject: [PATCH 1118/1574] Revert "Add reco_debug_level to reduce debug output" This reverts commit a6934776c90a834a321daf7eeb35f2ad7d402c50. Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index ef0b1a84d..00f0c92c1 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -501,8 +501,6 @@ int main( void ) " debug_level=%%d default: 0 (disabled)\n" \ " build_version=%%d default: none (disabled)\n" \ " option: 1 (print build version only and stop)\n" \ - " reco_debug_level=%%d default: 0 (disabled)\n" \ - " level of debugging for re-connection.\n" \ " buffer_size=%%d default: 200 \n" \ " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ @@ -605,7 +603,6 @@ struct options const char *server_addr; /* address on which the ssl service runs */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ - int reco_debug_level; /* level of debugging for re-connection. */ int nbio; /* should I/O be blocking? */ int event; /* loop or event-driven IO? level or edge triggered? */ uint32_t read_timeout; /* timeout on mbedtls_ssl_read() in milliseconds */ @@ -1644,7 +1641,6 @@ int main( int argc, char *argv[] ) opt.server_addr = DFL_SERVER_ADDR; opt.server_port = DFL_SERVER_PORT; opt.debug_level = DFL_DEBUG_LEVEL; - opt.reco_debug_level = DFL_DEBUG_LEVEL; opt.event = DFL_EVENT; opt.response_size = DFL_RESPONSE_SIZE; opt.nbio = DFL_NBIO; @@ -1772,12 +1768,6 @@ int main( int argc, char *argv[] ) goto exit; } } - else if( strcmp( p, "reco_debug_level" ) == 0 ) - { - opt.reco_debug_level = atoi( q ); - if( opt.reco_debug_level < 0 || opt.reco_debug_level > 65535 ) - goto usage; - } else if( strcmp( p, "nbio" ) == 0 ) { opt.nbio = atoi( q ); @@ -4317,11 +4307,6 @@ close_notify: mbedtls_printf( " done\n" ); -#if defined(MBEDTLS_DEBUG_C) - if( opt.reco_debug_level ) - mbedtls_debug_set_threshold( opt.reco_debug_level ); -#endif - goto reset; /* From d146a37d564f2ff72499d42453f7a77a7f50d236 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 12:33:48 +0800 Subject: [PATCH 1119/1574] Change the definition of max_early_data_size argument. `conf_max_early_data_size` does not reuse as en/disable. When call it, we should call `conf_early_data()` also. Signed-off-by: Jerry Yu --- programs/ssl/ssl_server2.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 00f0c92c1..29a140a9f 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -427,10 +427,9 @@ int main( void ) #if defined(MBEDTLS_SSL_EARLY_DATA) #define USAGE_EARLY_DATA \ - " max_early_data_size=%%d default: 0 (disabled)\n" \ - " options: 0 (disabled), " \ - " -1 (enabled, builtin max size), " \ - " n > 0 (enabled, max amount of early data )\n" + " max_early_data_size=%%d default: -1 (disabled)\n" \ + " options: -1 (disabled), " \ + " >= 0 (enabled, max amount of early data )\n" #else #define USAGE_EARLY_DATA "" #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -1547,6 +1546,9 @@ int main( int argc, char *argv[] ) }; #endif /* MBEDTLS_SSL_DTLS_SRTP */ +#if defined(MBEDTLS_SSL_EARLY_DATA) + int tls13_early_data_enabled = MBEDTLS_SSL_EARLY_DATA_DISABLED; +#endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); #if defined(MBEDTLS_MEMORY_DEBUG) @@ -1897,7 +1899,14 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_EARLY_DATA) else if( strcmp( p, "max_early_data_size" ) == 0 ) { - opt.max_early_data_size = atoi( q ); + long long value = atoll( q ); + tls13_early_data_enabled = + value >= 0 ? MBEDTLS_SSL_EARLY_DATA_ENABLED : + MBEDTLS_SSL_EARLY_DATA_DISABLED; + if( tls13_early_data_enabled ) + { + opt.max_early_data_size = atoi( q ); + } } #endif /* MBEDTLS_SSL_EARLY_DATA */ else if( strcmp( p, "renegotiation" ) == 0 ) @@ -2896,7 +2905,12 @@ int main( int argc, char *argv[] ) mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_tls13_conf_max_early_data_size( &conf, opt.max_early_data_size ); + mbedtls_ssl_tls13_conf_early_data( &conf, tls13_early_data_enabled ); + if( tls13_early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) + { + mbedtls_ssl_tls13_conf_max_early_data_size( + &conf, opt.max_early_data_size ); + } #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) From 39da9857df4f261b9efc54b77c5cbc7e1aa5d059 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 16:58:36 +0800 Subject: [PATCH 1120/1574] remove limitation of max_early_data_size Signed-off-by: Jerry Yu --- library/ssl_tls.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 227f8841d..65af6b62a 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1709,9 +1709,7 @@ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, void mbedtls_ssl_tls13_conf_max_early_data_size( mbedtls_ssl_config *conf, uint32_t max_early_data_size ) { - conf->max_early_data_size = - max_early_data_size < MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ? - max_early_data_size : MBEDTLS_SSL_MAX_EARLY_DATA_SIZE; + conf->max_early_data_size = max_early_data_size; } #endif /* MBEDTLS_SSL_SRV_C */ From 2b7ad6472bb9f6c5e4df300ae8482936dbc11c34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 10:42:44 +0100 Subject: [PATCH 1121/1574] Document all effects of MBEDTLS_ECP_RESTARTABLE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It might not be obvious that this option goes beyond adding new functions, but also automagically modifies the behaviour of TLS in some circumstances. Moreover, the exact modifications and circumstances were not documented anywhere outside the ChangeLog. Fix that. While at it, adjust the test that checks no restartable behaviour with other key exchanges, to use a key exchange that allows cert-based client authentication so that we can check that this is not restartable either. We don't have any automated test checking that the server is never affected. That would require adding an ec_max_ops command-line option to ssl_server2 that never has any effect, just to check that it indeed doesn't. I'm not sure that's worth it. I tested manually and could confirm that the server never has restartable behaviour, even for the parts that are shared between client and server such as cert chain verification. Note (from re-reading the code): all restartable behaviour is controlled by the flag ssl->handshake->ecrs_enabled which is only client-side with the ECDHE-ECDSA key exchange (TLS 1.2). Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 26 ++++++++++++++++++++++++-- tests/ssl-opt.sh | 14 ++++++++++---- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 826ab6459..b5f0bf2b4 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -690,11 +690,33 @@ * This is useful in non-threaded environments if you want to avoid blocking * for too long on ECC (and, hence, X.509 or SSL/TLS) operations. * - * Uncomment this macro to enable restartable ECC computations. + * This option: + * - Adds xxx_restartable() variants of existing operations in the + * following modules, with corresponding restart context types: + * - ECP: scalar multiplication (mult), linear combination (muladd); + * - ECDSA: signature generation & verification; + * - PK: signature generation & verification; + * - X509: certificate chain verification. + * - Adds mbedtls_ecdh_enable_restart() in the ECDH module. + * - Changes the behaviour of TLS 1.2 clients (not servers) when using the + * ECDHE-ECDSA key exchange (not other key exchanges) to make all ECC + * computations restartable: + * - ECDH operations from the key exchange; + * - verification of the server's key exchange signature; + * - verification of the server's certificate chain; + * - generation of our signature if client authentication is used, with an + * ECC key/certificate. + * + * \note In the cases above, the usual SSL/TLS functions, such as + * mbedtls_ssl_handshake(), can now return + * MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS. * * \note This option only works with the default software implementation of * elliptic curve functionality. It is incompatible with - * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT. + * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT, + * and MBEDTLS_USE_PSA_CRYPTO. + * + * Uncomment this macro to enable restartable ECC computations. */ //#define MBEDTLS_ECP_RESTARTABLE diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 1fe8baeb6..154ba348e 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8493,13 +8493,19 @@ run_test "EC restart: TLS, max_ops=1000 no client auth" \ -c "mbedtls_ecdh_make_public.*4b00" \ -C "mbedtls_pk_sign.*4b00" + +# Restartable is only for ECDHE-ECDSA, with another ciphersuite we expect no +# restartable behaviour at all (not even client auth). +# This is the same as "EC restart: TLS, max_ops=1000" except with ECDHE-RSA, +# and all 4 assertions negated. requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: TLS, max_ops=1000, ECDHE-PSK" \ - "$P_SRV curves=secp256r1 psk=abc123" \ - "$P_CLI force_ciphersuite=TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 \ - psk=abc123 debug_level=1 ec_max_ops=1000" \ +run_test "EC restart: TLS, max_ops=1000, ECDHE-RSA" \ + "$P_SRV curves=secp256r1 auth_mode=required" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 \ + key_file=data_files/server5.key crt_file=data_files/server5.crt \ + debug_level=1 ec_max_ops=1000" \ 0 \ -C "x509_verify_cert.*4b00" \ -C "mbedtls_pk_verify.*4b00" \ From 6ee56aa18f370be6f5bafe54c3c7af5b1b78926e Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 17:47:22 +0800 Subject: [PATCH 1122/1574] Add default values for conf->*early_data* - early_data default to disable - max_early_data_size default to built-in value Signed-off-by: Jerry Yu --- library/ssl_tls.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 65af6b62a..332e42872 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5126,6 +5126,15 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) + +#if defined(MBEDTLS_SSL_EARLY_DATA) + mbedtls_ssl_tls13_conf_early_data( conf, MBEDTLS_SSL_EARLY_DATA_DISABLED ); +#if defined(MBEDTLS_SSL_SRV_C) + mbedtls_ssl_tls13_conf_max_early_data_size( + conf, MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ); +#endif +#endif /* MBEDTLS_SSL_EARLY_DATA */ + #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_conf_new_session_tickets( conf, MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); From ad27b8074f4196102291645d6aacaa96e21a4dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 5 Dec 2022 12:54:11 +0100 Subject: [PATCH 1123/1574] Declare ECP_RESTARTABLE and USE_PSA compatible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is only the beginning: - some test failures in test_suite_pk, test_suite_x509 and ssl-opt.sh will be fixed in the next few commits; - then the interactions between those options will be documented and tested. Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 5 ++--- include/mbedtls/mbedtls_config.h | 3 ++- scripts/config.py | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 7f5558087..e2f8e6270 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -114,15 +114,14 @@ #endif #if defined(MBEDTLS_ECP_RESTARTABLE) && \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) || \ - defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \ + ( defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \ defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) || \ defined(MBEDTLS_ECDSA_SIGN_ALT) || \ defined(MBEDTLS_ECDSA_VERIFY_ALT) || \ defined(MBEDTLS_ECDSA_GENKEY_ALT) || \ defined(MBEDTLS_ECP_INTERNAL_ALT) || \ defined(MBEDTLS_ECP_ALT) ) -#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative or PSA-based ECP implementation" +#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative ECP implementation" #endif #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index b5f0bf2b4..219dd4539 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -707,6 +707,8 @@ * - generation of our signature if client authentication is used, with an * ECC key/certificate. * + * TODO: document interation with USE_PSA_CRYPTO + * * \note In the cases above, the usual SSL/TLS functions, such as * mbedtls_ssl_handshake(), can now return * MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS. @@ -1928,7 +1930,6 @@ * before calling any function from the SSL/TLS, X.509 or PK modules. * * Requires: MBEDTLS_PSA_CRYPTO_C. - * Conflicts with: MBEDTLS_ECP_RESTARTABLE * * Uncomment this to enable internal use of PSA Crypto and new associated APIs. */ diff --git a/scripts/config.py b/scripts/config.py index 7e58acd0a..a53c470f0 100755 --- a/scripts/config.py +++ b/scripts/config.py @@ -194,7 +194,6 @@ EXCLUDE_FROM_FULL = frozenset([ 'MBEDTLS_DEPRECATED_WARNING', # conflicts with deprecated options 'MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED', # influences the use of ECDH in TLS 'MBEDTLS_ECP_NO_FALLBACK', # removes internal ECP implementation - 'MBEDTLS_ECP_RESTARTABLE', # incompatible with USE_PSA_CRYPTO 'MBEDTLS_ENTROPY_FORCE_SHA256', # interacts with CTR_DRBG_128_BIT_KEY 'MBEDTLS_HAVE_SSE2', # hardware dependency 'MBEDTLS_MEMORY_BACKTRACE', # depends on MEMORY_BUFFER_ALLOC_C From 77d3057c6df1b3787c9512b346737ab626955044 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 6 Dec 2022 11:25:09 +0100 Subject: [PATCH 1124/1574] More grammar fixes Signed-off-by: Gilles Peskine --- ChangeLog.d/fix_hard_link_across_drives.txt | 2 +- ChangeLog.d/tls13-misc.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/fix_hard_link_across_drives.txt b/ChangeLog.d/fix_hard_link_across_drives.txt index 84d4a522c..46d05c0cf 100644 --- a/ChangeLog.d/fix_hard_link_across_drives.txt +++ b/ChangeLog.d/fix_hard_link_across_drives.txt @@ -1,3 +1,3 @@ Bugfix * Fix a build issue on Windows using CMake where the source and build - directory could not be on different drives. Fixes #5751. + directories could not be on different drives. Fixes #5751. diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt index 49ab58994..673317328 100644 --- a/ChangeLog.d/tls13-misc.txt +++ b/ChangeLog.d/tls13-misc.txt @@ -1,6 +1,6 @@ Features * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys. - The pre-shared keys can provisioned externally or via the ticket + The pre-shared keys can be provisioned externally or via the ticket mechanism (session resumption). The ticket mechanism is supported when the configuration option MBEDTLS_SSL_SESSION_TICKETS is enabled. From 2e1e43fb82e1f914934e2c17f8be92b1f8bd247f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 6 Dec 2022 11:41:57 +0100 Subject: [PATCH 1125/1574] test: pake: fix error in ssl_ecjpake_set_password() Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 0530ca00f..4f8ef524d 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6206,7 +6206,7 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) #else /* MBEDTLS_USE_PSA_CRYPTO */ (void) use_opaque_arg; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - const unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = ""; + unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = ""; size_t pwd_len = 0; int ret; @@ -6231,7 +6231,7 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); pwd_len = strlen( ECJPAKE_TEST_PWD ); - memcpy( (void*) pwd_string, ECJPAKE_TEST_PWD, pwd_len ); + memcpy( pwd_string, ECJPAKE_TEST_PWD, pwd_len ); #if defined( MBEDTLS_USE_PSA_CRYPTO ) if( use_opaque_arg ) From ba22c9c1ff453f5d1585313207d158b34c4a1fb5 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 6 Dec 2022 11:42:33 +0100 Subject: [PATCH 1126/1574] test: pake: remove useless check in ssl_ecjpake_set_password() Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 4f8ef524d..c3b6015a3 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6227,7 +6227,7 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); - /* test with empty password */ + /* test with empty password or unitialized password key (depending on use_opaque_arg) */ ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); pwd_len = strlen( ECJPAKE_TEST_PWD ); @@ -6236,9 +6236,6 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) #if defined( MBEDTLS_USE_PSA_CRYPTO ) if( use_opaque_arg ) { - /* test with uninitialized password key */ - ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); From ecda1868934796d0f423feaceadc07ce360f3bd3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 6 Dec 2022 10:46:30 +0000 Subject: [PATCH 1127/1574] Require input to mbedtls_mpi_core_exp_mod() to already be in Montgomery form Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 10 ++++------ library/bignum_core.h | 3 ++- scripts/mbedtls_dev/bignum_core.py | 15 +++++++++++++-- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 663535107..2ed907da3 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -610,9 +610,9 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, Wtable[0] = 1; mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); - /* W[1] = A * R^2 * R^-1 mod N = A * R mod N */ + /* W[1] = A (already in Montgomery presentation) */ mbedtls_mpi_uint *W1 = Wtable + AN_limbs; - mbedtls_mpi_core_montmul( W1, A, RR, AN_limbs, N, AN_limbs, mm, temp ); + memcpy( W1, A, AN_limbs * ciL ); /* W[i+1] = W[i] * W[1], i >= 2 */ mbedtls_mpi_uint *Wprev = W1; @@ -625,6 +625,8 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, } /* Exponentiation: X := A^E mod N. + * + * A must already be in Montgomery form. * * As in other bignum functions, assume that AN_limbs and E_limbs are nonzero. * @@ -730,10 +732,6 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, } while( ! ( E_bit_index == 0 && E_limb_index == 0 ) ); - /* Convert X back to normal presentation */ - const mbedtls_mpi_uint one = 1; - mbedtls_mpi_core_montmul( X, X, &one, 1, N, AN_limbs, mm, temp ); - mbedtls_platform_zeroize( mempool, total_limbs * sizeof(mbedtls_mpi_uint) ); mbedtls_free( mempool ); return( 0 ); diff --git a/library/bignum_core.h b/library/bignum_core.h index 24559c6e9..334856456 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -500,11 +500,12 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, /** * \brief Perform a modular exponentiation with secret exponent: - * X = A^E mod N + * X = A^E mod N, where \p A is already in Montgomery form. * * \param[out] X The destination MPI, as a little endian array of length * \p AN_limbs. * \param[in] A The base MPI, as a little endian array of length \p AN_limbs. + * Must be in Montgomery form. * \param[in] N The modulus, as a little endian array of length \p AN_limbs. * \param AN_limbs The number of limbs in \p X, \p A, \p N, \p RR. * \param[in] E The exponent, as a little endian array of length \p E_limbs. diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 2960d242d..a000bde07 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -759,12 +759,23 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): """Test cases for bignum core exponentiation.""" symbol = "^" test_function = "mpi_core_exp_mod" - test_name = "Core modular exponentiation" + test_name = "Core modular exponentiation (Mongtomery form only)" input_style = "fixed" + def arguments(self) -> List[str]: + # Input 'a' has to be given in Montgomery form + mont_a = (self.int_a * self.r) % self.int_n + arg_mont_a = self.format_arg('{:x}'.format(mont_a)) + return [bignum_common.quote_str(n) for n in [self.arg_n, + arg_mont_a, + self.arg_b] + ] + self.result() + def result(self) -> List[str]: + # Result has to be given in Montgomery form result = pow(self.int_a, self.int_b, self.int_n) - return [self.format_result(result)] + mont_result = (result * self.r) % self.int_n + return [self.format_result(mont_result)] @property def is_valid(self) -> bool: From e1b6b7c0ac6b1862ec745f7b514a54b50e99d501 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 29 Nov 2022 12:25:05 +0000 Subject: [PATCH 1128/1574] Implement mbedtls_mpi_mod_add() Signed-off-by: Werner Lewis --- library/bignum_mod.c | 11 ++ library/bignum_mod.h | 30 +++++- scripts/mbedtls_dev/bignum_mod.py | 14 +++ tests/suites/test_suite_bignum_mod.data | 19 ++++ tests/suites/test_suite_bignum_mod.function | 111 ++++++++++++++++++++ 5 files changed, 184 insertions(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7cf2fb22c..0057ebae2 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -198,7 +198,18 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ +int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ) +{ + if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + mbedtls_mpi_mod_raw_add(X->p, A->p, B->p, N); + + return( 0 ); +} /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 0a8f4d3d0..26d31d4c5 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -199,7 +199,35 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ - +/** + * \brief Perform a fixed-size modular addition. + * + * Calculate `A + B modulo N`. + * + * \p A, \p B and \p X must all have the same number of limbs as \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. + * + * \note This function does not check that \p A or \p B are in canonical + * form (that is, are < \p N) - that will have been done by + * mbedtls_mpi_mod_residue_setup(). + * + * \param[out] X The address of the result MPI. Must be initialized. + * Must have the same number of limbs as the modulus \p N. + * \param[in] A The address of the first MPI. + * \param[in] B The address of the second MPI. + * \param[in] N The address of the modulus. Used to perform a modulo + * operation on the result of the addition. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the given MPIs do not + * have the correct number of limbs. + */ +int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index aa06fe863..9086c2eb5 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -55,6 +55,20 @@ class BignumModSub(bignum_common.ModOperationCommon, BignumModTarget): # END MERGE SLOT 4 # BEGIN MERGE SLOT 5 +class BignumModAdd(bignum_common.ModOperationCommon, BignumModTarget): + """Test cases for bignum mpi_mod_add().""" + count = 0 + symbol = "+" + test_function = "mpi_mod_add" + test_name = "mbedtls_mpi_mod_add" + input_style = "fixed" + + def result(self) -> List[str]: + result = (self.int_a + self.int_b) % self.int_n + # To make negative tests easier, append "0" for success to the + # generated cases + return [self.format_result(result), "0"] + # END MERGE SLOT 5 diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.data index 501d9d7d8..7b1c85fb0 100644 --- a/tests/suites/test_suite_bignum_mod.data +++ b/tests/suites/test_suite_bignum_mod.data @@ -45,7 +45,26 @@ mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93" # END MERGE SLOT 4 # BEGIN MERGE SLOT 5 +mpi_mod_add base case for negative testing (N, a, b all >= 1 limb) +mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00033b3096f574ee9a919c815a":0 +mpi_mod_add with modulus too long/both inputs too short +mpi_mod_add:"0000000014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_add with first input too long +mpi_mod_add:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_add with second input too long +mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_add with both inputs too long +mpi_mod_add:"014320a022ccb75bdf470ddf25":"0000000000000025a55a46e5da99c71c7":"000000000033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_add with first input too short +mpi_mod_add:"014320a022ccb75bdf470ddf25":"a99c71c7":"00033b2e3c9fd0803ce8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mpi_mod_add with second input too short +mpi_mod_add:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA # END MERGE SLOT 5 # BEGIN MERGE SLOT 6 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 0d2e232f9..0676fbb50 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -210,7 +210,118 @@ exit: /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ +/* BEGIN_CASE */ +void mpi_mod_add( char * input_N, + char * input_A, char * input_B, + char * input_S, int oret ) +{ + mbedtls_mpi_mod_residue a = { NULL, 0 }; + mbedtls_mpi_mod_residue b = { NULL, 0 }; + mbedtls_mpi_mod_residue s = { NULL, 0 }; + mbedtls_mpi_mod_residue x = { NULL, 0 }; + mbedtls_mpi_uint *X_raw = NULL; + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( 0, + test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + + /* test_read_residue() normally checks that inputs have the same number of + * limbs as the modulus. For negative testing we can ask it to skip this + * with a non-zero final parameter. */ + TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &s, &m, input_S, oret != 0 ) ); + + size_t limbs = m.limbs; + size_t bytes = limbs * sizeof( *X_raw ); + + /* One spare limb for negative testing */ + ASSERT_ALLOC( X_raw, limbs + 1 ); + + if( oret == 0 ) + { + /* Negative test with too many limbs in output */ + x.p = X_raw; + x.limbs = limbs + 1; + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + + /* Negative test with too few limbs in output */ + if( limbs > 1 ) + { + x.p = X_raw; + x.limbs = limbs - 1; + TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + } + + /* Negative testing with too many/too few limbs in a and b is covered by + * manually-written test cases with oret != 0. */ + } + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); + + /* A + B => Correct result or expected error */ + TEST_EQUAL( oret, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + if( oret != 0 ) + goto exit; + + TEST_COMPARE_MPI_RESIDUES( x, s ); + + /* a + b: alias x to a => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &b, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + + /* a + b: alias x to b => Correct result */ + memcpy( x.p, b.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &a, &x, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + + if ( memcmp( a.p, b.p, bytes ) == 0 ) + { + /* a == b: alias a and b */ + + /* a + a => Correct result */ + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &a, &a, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + + /* a + a: x, a, b all aliased together => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &x, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + } + else + { + /* a != b: test b + a */ + + /* b + a => Correct result */ + mbedtls_mpi_mod_add( &x, &b, &a, &m ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + + /* b + a: alias x to a => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &b, &x, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + + /* b + a: alias x to b => Correct result */ + memcpy( x.p, b.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &a, &m ) ); + TEST_COMPARE_MPI_RESIDUES( x, s ); + } + +exit: + mbedtls_free( (void *)m.p ); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ + mbedtls_mpi_mod_modulus_free( &m ); + + mbedtls_free( a.p ); + mbedtls_free( b.p ); + mbedtls_free( s.p ); + mbedtls_free( X_raw ); +} +/* END_CASE */ /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ From 93a31c9efd1857b20aeeb2b5cbc69acb2b7d3c0f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 6 Dec 2022 10:14:57 +0000 Subject: [PATCH 1129/1574] Re-enable pylint unused warnings Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_mod.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 9086c2eb5..a16699a64 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -14,10 +14,10 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List # pylint: disable=unused-import +from typing import Dict, List from . import test_data_generation -from . import bignum_common # pylint: disable=unused-import +from . import bignum_common class BignumModTarget(test_data_generation.BaseTarget): #pylint: disable=abstract-method, too-few-public-methods From 3f2999ad256a022e7c6fdc1cd031bc6dece7c911 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 6 Dec 2022 10:17:58 +0000 Subject: [PATCH 1130/1574] Rename test_suite_bignum_mod.data for consistency Use the same naming convention as bignum and bignum_core now that test data is generated. Signed-off-by: Werner Lewis --- ...test_suite_bignum_mod.data => test_suite_bignum_mod.misc.data} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tests/suites/{test_suite_bignum_mod.data => test_suite_bignum_mod.misc.data} (100%) diff --git a/tests/suites/test_suite_bignum_mod.data b/tests/suites/test_suite_bignum_mod.misc.data similarity index 100% rename from tests/suites/test_suite_bignum_mod.data rename to tests/suites/test_suite_bignum_mod.misc.data From c240600f2490fb7fd01db78dfa8a0e2aec003633 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 6 Dec 2022 12:20:43 +0000 Subject: [PATCH 1131/1574] Separate out to_montgomery and from_montgomery for bignum tests Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_common.py | 6 ++++++ scripts/mbedtls_dev/bignum_core.py | 6 +++--- scripts/mbedtls_dev/bignum_mod_raw.py | 5 ++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 67ea78db4..81bc28e19 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -251,6 +251,12 @@ class ModOperationCommon(OperationCommon): # provides earlier/more robust input validation. self.int_n = hex_to_int(val_n) + def to_montgomery(self, val) -> int: + return (val * self.r) % self.int_n + + def from_montgomery(self, val) -> int: + return (val * self.r_inv) % self.int_n + @property def boundary(self) -> int: return self.int_n diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index a000bde07..118a659cf 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -764,7 +764,7 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): def arguments(self) -> List[str]: # Input 'a' has to be given in Montgomery form - mont_a = (self.int_a * self.r) % self.int_n + mont_a = self.to_montgomery(self.int_a) arg_mont_a = self.format_arg('{:x}'.format(mont_a)) return [bignum_common.quote_str(n) for n in [self.arg_n, arg_mont_a, @@ -772,9 +772,9 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): ] + self.result() def result(self) -> List[str]: - # Result has to be given in Montgomery form + # Result has to be given in Montgomery form too result = pow(self.int_a, self.int_b, self.int_n) - mont_result = (result * self.r) % self.int_n + mont_result = self.to_montgomery(result) return [self.format_result(mont_result)] @property diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 0bbad5dd9..d05479a00 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -92,10 +92,9 @@ class BignumModRawConvertToMont(bignum_common.ModOperationCommon, arity = 1 def result(self) -> List[str]: - result = (self.int_a * self.r) % self.int_n + result = self.to_montgomery(self.int_a) return [self.format_result(result)] - class BignumModRawConvertFromMont(bignum_common.ModOperationCommon, BignumModRawTarget): """ Test cases for mpi_mod_raw_from_mont_rep(). """ @@ -106,7 +105,7 @@ class BignumModRawConvertFromMont(bignum_common.ModOperationCommon, arity = 1 def result(self) -> List[str]: - result = (self.int_a * self.r_inv) % self.int_n + result = self.from_montgomery(self.int_a) return [self.format_result(result)] From 21d459d26a4329dd32579551a38f93ba731c163f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 6 Dec 2022 12:36:00 +0000 Subject: [PATCH 1132/1574] Add type annotations Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 81bc28e19..3ff8b2f35 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -251,10 +251,10 @@ class ModOperationCommon(OperationCommon): # provides earlier/more robust input validation. self.int_n = hex_to_int(val_n) - def to_montgomery(self, val) -> int: + def to_montgomery(self, val: int) -> int: return (val * self.r) % self.int_n - def from_montgomery(self, val) -> int: + def from_montgomery(self, val: int) -> int: return (val * self.r_inv) % self.int_n @property From 0a0ddedfb73a1a87e5e83a666b62e353d7fa9573 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 6 Dec 2022 14:37:18 +0000 Subject: [PATCH 1133/1574] Have mbedtls_mpi_core_exp_mod() take a temporary instead of allocating memory Last PR needed for #6293 Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 57 ++++++++++--------- library/bignum_core.h | 60 +++++++++++++------- tests/suites/test_suite_bignum_core.function | 28 +++++++-- 3 files changed, 92 insertions(+), 53 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 2ed907da3..30fc66130 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -596,6 +596,19 @@ static size_t exp_mod_get_window_size( size_t Ebits ) return( wsize ); } +size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ) +{ + const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); + const size_t welem = ( (size_t) 1 ) << wsize; + + /* How big does each part of the working memory pool need to be? */ + const size_t table_limbs = welem * AN_limbs; + const size_t select_limbs = AN_limbs; + const size_t temp_limbs = 2 * AN_limbs + 1; + + return( table_limbs + select_limbs + temp_limbs ); +} + static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, const mbedtls_mpi_uint *N, size_t AN_limbs, @@ -636,35 +649,27 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, * (The difference is that the body in our loop processes a single bit instead * of a full window.) */ -int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - const mbedtls_mpi_uint *E, - size_t E_limbs, - const mbedtls_mpi_uint *RR ) +void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *E, + size_t E_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T ) { const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); const size_t welem = ( (size_t) 1 ) << wsize; - /* Allocate memory pool and set pointers to parts of it */ - const size_t table_limbs = welem * AN_limbs; - const size_t temp_limbs = 2 * AN_limbs + 1; - const size_t select_limbs = AN_limbs; - const size_t total_limbs = table_limbs + temp_limbs + select_limbs; + /* This is how we will use the temporary storage T, which must have space + * for table_limbs, select_limbs and (2 * AN_limbs + 1) for montmul. */ + const size_t table_limbs = welem * AN_limbs; + const size_t select_limbs = AN_limbs; - /* heap allocated memory pool */ - mbedtls_mpi_uint *mempool = - mbedtls_calloc( total_limbs, sizeof(mbedtls_mpi_uint) ); - if( mempool == NULL ) - { - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - } - - /* pointers to temporaries within memory pool */ - mbedtls_mpi_uint *const Wtable = mempool; - mbedtls_mpi_uint *const Wselect = Wtable + table_limbs; - mbedtls_mpi_uint *const temp = Wselect + select_limbs; + /* Pointers to specific parts of the temporary working memory pool */ + mbedtls_mpi_uint *const Wtable = T; + mbedtls_mpi_uint *const Wselect = Wtable + table_limbs; + mbedtls_mpi_uint *const temp = Wselect + select_limbs; /* * Window precomputation @@ -731,10 +736,6 @@ int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, } } while( ! ( E_bit_index == 0 && E_limb_index == 0 ) ); - - mbedtls_platform_zeroize( mempool, total_limbs * sizeof(mbedtls_mpi_uint) ); - mbedtls_free( mempool ); - return( 0 ); } /* END MERGE SLOT 1 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 334856456..add7fee32 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -499,28 +499,50 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, /* BEGIN MERGE SLOT 1 */ /** - * \brief Perform a modular exponentiation with secret exponent: - * X = A^E mod N, where \p A is already in Montgomery form. + * \brief Returns the number of limbs of working memory required for + * a call to `mbedtls_mpi_core_exp_mod()`. * - * \param[out] X The destination MPI, as a little endian array of length - * \p AN_limbs. - * \param[in] A The base MPI, as a little endian array of length \p AN_limbs. - * Must be in Montgomery form. - * \param[in] N The modulus, as a little endian array of length \p AN_limbs. - * \param AN_limbs The number of limbs in \p X, \p A, \p N, \p RR. - * \param[in] E The exponent, as a little endian array of length \p E_limbs. - * \param E_limbs The number of limbs in \p E. - * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little - * endian array of length \p AN_limbs. + * \param AN_limbs The number of limbs in the input `A` and the modulus `N` + * (they must be the same size) that will be given to + * `mbedtls_mpi_core_exp_mod()`. + * \param E_limbs The number of limbs in the exponent `E` that will be given + * to `mbedtls_mpi_core_exp_mod()`. * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. + * \return The number of limbs of working memory required by + * `mbedtls_mpi_core_exp_mod()`. */ -int mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, size_t AN_limbs, - const mbedtls_mpi_uint *E, size_t E_limbs, - const mbedtls_mpi_uint *RR ); +size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ); + +/** + * \brief Perform a modular exponentiation with secret exponent: + * X = A^E mod N, where \p A is already in Montgomery form. + * + * \param[out] X The destination MPI, as a little endian array of length + * \p AN_limbs. + * \param[in] A The base MPI, as a little endian array of length \p AN_limbs. + * Must be in Montgomery form. + * \param[in] N The modulus, as a little endian array of length \p AN_limbs. + * \param AN_limbs The number of limbs in \p X, \p A, \p N, \p RR. + * \param[in] E The exponent, as a little endian array of length \p E_limbs. + * \param E_limbs The number of limbs in \p E. + * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little + * endian array of length \p AN_limbs. + * \param[in,out] T Temporary storage of at least the number of limbs returned + * by `mbedtls_mpi_core_exp_mod_working_limbs()`. + * Its initial content is unused and its final content is + * indeterminate. + * It must not alias or otherwise overlap any of the other + * parameters. + * It is up to the caller to zeroize \p T when it is no + * longer needed, and before freeing it if it was dynamically + * allocated. + */ +void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, size_t AN_limbs, + const mbedtls_mpi_uint *E, size_t E_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T ); /* END MERGE SLOT 1 */ diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 078239fdc..b64127afc 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1046,15 +1046,13 @@ void mpi_core_exp_mod( char * input_N, char * input_A, char * input_E, char * input_X ) { mbedtls_mpi_uint *A = NULL; - size_t A_limbs; mbedtls_mpi_uint *E = NULL; - size_t E_limbs; mbedtls_mpi_uint *N = NULL; - size_t N_limbs; mbedtls_mpi_uint *X = NULL; - size_t X_limbs; + size_t A_limbs, E_limbs, N_limbs, X_limbs; const mbedtls_mpi_uint *R2 = NULL; mbedtls_mpi_uint *Y = NULL; + mbedtls_mpi_uint *T = NULL; /* Legacy MPIs for computing R2 */ mbedtls_mpi N_mpi; mbedtls_mpi_init( &N_mpi ); @@ -1078,11 +1076,29 @@ void mpi_core_exp_mod( char * input_N, char * input_A, TEST_EQUAL( 0, mbedtls_mpi_grow( &R2_mpi, N_limbs ) ); R2 = R2_mpi.p; - TEST_EQUAL( 0, - mbedtls_mpi_core_exp_mod( Y, A, N, N_limbs, E, E_limbs, R2 ) ); + size_t working_limbs = mbedtls_mpi_core_exp_mod_working_limbs( N_limbs, + E_limbs ); + + /* No point exactly duplicating the code in mbedtls_mpi_core_exp_mod_working_limbs() + * to see if the output is correct, but we can check that it's in a + * reasonable range. The current calculation works out as + * `1 + N_limbs * (welem + 3)`, where welem is the number of elements in + * the window (1 << 1 up to 1 << 6). + */ + size_t min_expected_working_limbs = 1 + N_limbs * 4; + size_t max_expected_working_limbs = 1 + N_limbs * 67; + + TEST_LE_U( min_expected_working_limbs, working_limbs ); + TEST_LE_U( working_limbs, max_expected_working_limbs ); + + ASSERT_ALLOC( T, working_limbs ); + + mbedtls_mpi_core_exp_mod( Y, A, N, N_limbs, E, E_limbs, R2, T ); + TEST_EQUAL( 0, memcmp( X, Y, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); exit: + mbedtls_free( T ); mbedtls_free( A ); mbedtls_free( E ); mbedtls_free( N ); From 614688711d246b115ff20614b6713c03ad1bfc8b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 6 Dec 2022 14:44:08 +0000 Subject: [PATCH 1134/1574] Fix spelling of test dependency Signed-off-by: Dave Rodgman --- tests/suites/test_suite_psa_crypto.data | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 946234c41..9ced77c2b 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -4138,7 +4138,7 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_256 ):"9ac4335b469bbd791439248504dd0d49c71349a295fee5a1c68507f45a9e1c7b":"6a3399f69421ffe1490377adf2ea1f117d81a63cf5bf22e918d51175eb259151ce95d7c26cc04e25503e2f7a1ec3573e3c2412534bb4a19b3a7811742f49f50f" PSA sign hash: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 sign_hash_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA( PSA_ALG_SHA_384 ):"59e1748777448c69de6b800d7a33bbfb9ff1b463e44354c3553bcdb9c666fa90125a3c79f90397bdf5f6a13de828684f":"cd40ba1b555ca5994d30ddffc4ad734b1f5c604675b0f249814aa5de3992ef3ddf4d5dc5d2aab1979ce210b560754df671363d99795475882894c048e3b986ca" PSA sign hash: deterministic ECDSA SECP384R1 SHA-256 @@ -4406,7 +4406,7 @@ depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TY sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"616263":"36e5b5a7da1c9c265dc447de3a5a704fcb8c03f7a3749dde48d84c9bf736fc1ed48d8b3660e7d3cbc6b1870730b7ce2a043f69e37ccb340b98d1e65184e03548" PSA sign message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 sign_message_deterministic:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263":"7ea712a20e3a8cbe0c6e64195362ba7635bbe78af51ddedd7a5fd858395250c592654c35d3b0614ae0e3b329c25cf5b4a5fcb243af3e3ad15c8446fe401be066" PSA sign message: deterministic ECDSA SECP384R1 SHA-256 @@ -4526,7 +4526,7 @@ depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAI sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: deterministic ECDSA SECP256R1 SHA-384 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDLTS_PSA_BUILTIN_ALG_SHA_384 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256:MBEDTLS_PSA_BUILTIN_ALG_SHA_384 sign_verify_message:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"ab45435712649cb30bbddac49197eebf2740ffc7f874d9244c3460f54f322d3a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"616263" PSA sign/verify message: randomized ECDSA SECP384R1 SHA-256 From e6cb118d56c234ed662c98b36ca768e51fcad210 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 7 Oct 2022 19:27:43 +0100 Subject: [PATCH 1135/1574] Add configuration file for Uncrustify Signed-off-by: David Horstmann --- codestyle.cfg | 252 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 codestyle.cfg diff --git a/codestyle.cfg b/codestyle.cfg new file mode 100644 index 000000000..f4b47b246 --- /dev/null +++ b/codestyle.cfg @@ -0,0 +1,252 @@ +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Configuration options for Mbed TLS code style + +# Line length options + +# Wrap lines at 100 characters +code_width = 100 + +# Allow splitting long for statements between the condition statements +ls_for_split_full = true + +# Allow splitting function calls between arguments +ls_func_split_full = true + +input_tab_size = 4 + +# Spaces-only indentation +indent_with_tabs = 0 + +indent_columns = 4 + +# Indent 'case' 1 level from 'switch' +indent_switch_case = indent_columns + +# Line-up strings broken by '\' +indent_align_string = true + +# Braces on the same line (Egyptian-style braces) +nl_enum_brace = remove +nl_union_brace = remove +nl_struct_brace = remove +nl_do_brace = remove +nl_if_brace = remove +nl_for_brace = remove +nl_else_brace = remove # Note: this option may cause problems for macro-guarded if-else partials +nl_while_brace = remove +nl_switch_brace = remove + +# Braces on same line as keywords that follow them - 'else' and the 'while' in 'do {} while ()'; +nl_brace_else = remove +nl_brace_while = remove +# Space before else on the same line +sp_brace_else = add +# If else is on the same line as '{', force exactly 1 space between them +sp_else_brace = force + +# Functions are the exception and have braces on the next line +nl_fcall_brace = add +nl_fdef_brace = add + +# Force exactly one space between ')' and '{' in statements +sp_sparen_brace = force + +# At least 1 space around assignment +sp_assign = add + +# Remove spaces around the preprocessor '##' token-concatenate +sp_pp_concat = ignore + +# At least 1 space around '||' and '&&' +sp_bool = add + +# But no space after the '!' operator +sp_not = remove + +# No space after the bitwise-not '~' operator +sp_inv = remove + +# No space after the addressof '&' operator +sp_addr = remove + +# No space around the member '.' and '->' operators +sp_member = remove + +# No space after the dereference '*' operator +sp_deref = remove + +# No space after a unary negation '-' +sp_sign = remove + +# No space between the '++'/'--' operator and its operand +sp_incdec = remove + +# At least 1 space around comparison operators +sp_compare = add + +# Remove spaces inside all kinds of parentheses: + +# Remove spaces inside parentheses +sp_inside_paren = remove + +# No spaces inside statement parentheses +sp_inside_sparen = remove + +# No spaces inside cast parentheses '( char )x' -> '(char)x' +sp_inside_paren_cast = remove + +# No spaces inside function parentheses +sp_inside_fparen = remove +# (The case where the function has no parameters/arguments) +sp_inside_fparens = remove + +# No spaces inside the first parentheses in a function type +sp_inside_tparen = remove + +# (Uncrustify >= 0.74.0) No spaces inside parens in for statements +sp_inside_for = remove + +# Remove spaces between nested parentheses '( (' -> '((' +sp_paren_paren = remove +# (Uncrustify >= 0.74.0) +sp_sparen_paren = remove + +# Remove spaces between ')' and adjacent '(' +sp_cparen_oparen = remove + +# (Uncrustify >= 0.73.0) space between 'do' and '{' +sp_do_brace_open = force + +# (Uncrustify >= 0.73.0) space between '}' and 'while' +sp_brace_close_while = force + +# At least 1 space before a '*' pointer star +sp_before_ptr_star = add + +# Remove spaces between pointer stars +sp_between_ptr_star = remove + +# No space after a pointer star +sp_after_ptr_star = remove + +# But allow a space in the case of e.g. char * const x; +sp_after_ptr_star_qualifier = ignore + +# Remove space after star in a function return type +sp_after_ptr_star_func = remove + +# At least 1 space after a type in variable definition etc +sp_after_type = add + +# Force exactly 1 space between a statement keyword (e.g. 'if') and an opening parenthesis +sp_before_sparen = force + +# Remove a space before a ';' +sp_before_semi = remove +# (Uncrustify >= 0.73.0) Remove space before a semi in a non-empty for +sp_before_semi_for = remove +# (Uncrustify >= 0.73.0) Remove space in empty first statement of a for +sp_before_semi_for_empty = remove +# (Uncrustify >= 0.74.0) Remove space in empty middle statement of a for +sp_between_semi_for_empty = remove + +# Add a space after a ';' (unless a comment follows) +sp_after_semi = add +# (Uncrustify >= 0.73.0) Add a space after a semi in non-empty for statements +sp_after_semi_for = add +# (Uncrustify >= 0.73.0) No space after final semi in empty for statements +sp_after_semi_for_empty = remove + +# Remove spaces on the inside of square brackets '[]' +sp_inside_square = remove + +# Must have at least 1 space after a comma +sp_after_comma = add + +# Must not have a space before a comma +sp_before_comma = remove + +# No space before the ':' in a case statement +sp_before_case_colon = remove + +# No space after a cast - '(char) x' -> '(char)x' +sp_after_cast = remove + +# No space between 'sizeof' and '(' +sp_sizeof_paren = remove + +# At least 1 space inside '{ }' +sp_inside_braces = add + +# At least 1 space inside '{ }' in an enum +sp_inside_braces_enum = add + +# At least 1 space inside '{ }' in a struct +sp_inside_braces_struct = add + +# Except for empty braces which should not have a space + +# At least 1 space between a function return type and the function name +sp_type_func = add + +# No space between a function name and its arguments/parameters +sp_func_proto_paren = remove +sp_func_def_paren = remove +sp_func_call_paren = remove + +# No space between '__attribute__' and '(' +sp_attribute_paren = remove + +# No space between 'defined' and '(' in preprocessor conditions +sp_defined_paren = remove + +# At least 1 space between a macro's name and its definition +sp_macro = add +sp_macro_func = add + +# Force exactly 1 space between a '}' and the name of a typedef if on the same line +sp_brace_typedef = force + +# At least 1 space before a '\' line continuation +sp_before_nl_cont = add + +# At least 1 space around '?' and ':' in ternary statements +sp_cond_colon = add +sp_cond_question = add + +# Space between #else/#endif and comment afterwards +sp_endif_cmt = add + +# Remove newlines at the start of a file +nl_start_of_file = remove + +# At least 1 newline at the end of a file +nl_end_of_file = add +nl_end_of_file_min = 1 + +# Add braces in single-line statements +mod_full_brace_do = add +mod_full_brace_for = add +mod_full_brace_if = add +mod_full_brace_while = add + +# Remove parentheses from return statements +mod_paren_on_return = remove + +# Disable removal of leading spaces in a multi-line comment if the first and +# last lines are the same length +cmt_multi_check_last = false From fa928f1c44a79cf050527f7f2ff24098d08bd044 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 1 Nov 2022 15:46:16 +0000 Subject: [PATCH 1136/1574] Add script to run Uncrustify Signed-off-by: David Horstmann --- scripts/code_style.py | 153 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100755 scripts/code_style.py diff --git a/scripts/code_style.py b/scripts/code_style.py new file mode 100755 index 000000000..7923db451 --- /dev/null +++ b/scripts/code_style.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 +"""Check or fix the code style by running Uncrustify. +""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import argparse +import io +import os +import subprocess +import sys +from typing import List + +CONFIG_FILE = "codestyle.cfg" +UNCRUSTIFY_EXE = "uncrustify" +UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] +STDOUT_UTF8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') +STDERR_UTF8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + +def get_src_files() -> List[str]: + """ + Use git ls-files to get a list of the source files + """ + git_ls_files_cmd = ["git", "ls-files", \ + "*.[hc]", \ + "tests/suites/*.function", \ + "scripts/data_files/*.fmt"] + + result = subprocess.run(git_ls_files_cmd, stdout=subprocess.PIPE, \ + stderr=STDERR_UTF8, check=False) + + if result.returncode != 0: + print("Error: git ls-files returned: "+str(result.returncode), \ + file=STDERR_UTF8) + return [] + else: + src_files = str(result.stdout, "utf-8").split() + # Don't correct style for files in 3rdparty/ + src_files = list(filter( \ + lambda filename: not filename.startswith("3rdparty/"), \ + src_files)) + return src_files + +def get_uncrustify_version() -> str: + """ + Get the version string from Uncrustify + """ + version_args = ["--version"] + result = subprocess.run([UNCRUSTIFY_EXE] + version_args, \ + stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) + if result.returncode != 0: + print("Error getting version: "+str(result.stderr, "utf-8"), \ + file=STDERR_UTF8) + return "" + else: + return str(result.stdout, "utf-8") + +def check_style_is_correct(src_file_list: List[str]) -> bool: + """ + Check the code style and output a diff foir each file whose style is + incorrect. + """ + style_correct = True + for src_file in src_file_list: + uncrustify_cmd = [UNCRUSTIFY_EXE] + UNCRUSTIFY_ARGS + [src_file] + subprocess.run(uncrustify_cmd, stdout=subprocess.PIPE, \ + stderr=subprocess.PIPE, check=False) + + # Uncrustify makes changes to the code and places the result in a new + # file with the extension ".uncrustify". To get the changes (if any) + # simply diff the 2 files. + diff_cmd = ["diff", "-u", src_file, src_file+".uncrustify"] + result = subprocess.run(diff_cmd, stdout=subprocess.PIPE, \ + stderr=STDERR_UTF8, check=False) + if len(result.stdout) > 0: + print(src_file+" - Incorrect code style.", file=STDOUT_UTF8) + print("File changed - diff:", file=STDOUT_UTF8) + print(str(result.stdout, "utf-8"), file=STDOUT_UTF8) + style_correct = False + else: + print(src_file+" - OK.", file=STDOUT_UTF8) + + # Tidy up artifact + os.remove(src_file+".uncrustify") + + return style_correct + +def fix_style_single_pass(src_file_list: List[str]) -> None: + """ + Run Uncrustify once over the source files. + """ + code_change_args = UNCRUSTIFY_ARGS + ["--no-backup"] + for src_file in src_file_list: + uncrustify_cmd = [UNCRUSTIFY_EXE] + code_change_args + [src_file] + subprocess.run(uncrustify_cmd, check=False, stdout=STDOUT_UTF8, \ + stderr=STDERR_UTF8) + +def fix_style(src_file_list: List[str]) -> int: + """ + Fix the code style. This takes 2 passes of Uncrustify. + """ + fix_style_single_pass(src_file_list) + fix_style_single_pass(src_file_list) + + # Guard against future changes that cause the codebase to require + # more passes. + if not check_style_is_correct(src_file_list): + print("Error: Code style still incorrect after second run of Uncrustify.", \ + file=STDERR_UTF8) + return 1 + else: + return 0 + +def main() -> int: + """ + Main with command line arguments. + """ + uncrustify_version = get_uncrustify_version() + if "0.75.1" not in uncrustify_version: + print("Warning: Using unsupported Uncrustify version '" \ + + uncrustify_version + "'", file=STDOUT_UTF8) + + src_files = get_src_files() + + parser = argparse.ArgumentParser() + parser.add_argument('-f', '--fix', action='store_true', \ + help='modify source files to fix the code style') + + args = parser.parse_args() + + if args.fix: + # Fix mode + return fix_style(src_files) + else: + # Check mode + if check_style_is_correct(src_files): + return 0 + else: + return 1 + +if __name__ == '__main__': + sys.exit(main()) From 1b84781184cb35c6dee9e79615c92ad642355ca0 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 14 Nov 2022 15:40:46 +0000 Subject: [PATCH 1137/1574] Disable code style correction in check_config.h Code style correction currently messes up check_names.py Signed-off-by: David Horstmann --- include/mbedtls/check_config.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index d36db4a9e..90246fe87 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -23,6 +23,7 @@ #ifndef MBEDTLS_CHECK_CONFIG_H #define MBEDTLS_CHECK_CONFIG_H +/* *INDENT-OFF* */ /* * We assume CHAR_BIT is 8 in many places. In practice, this is true on our * target platforms, so not an issue, but let's just be extra sure. @@ -1069,4 +1070,5 @@ */ typedef int mbedtls_iso_c_forbids_empty_translation_units; +/* *INDENT-ON* */ #endif /* MBEDTLS_CHECK_CONFIG_H */ From 6e5bc033117255503782c979fe322d13c82ddae6 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 1 Dec 2022 15:49:03 +0000 Subject: [PATCH 1138/1574] Add ChangeLog entry for code style script Signed-off-by: David Horstmann --- ChangeLog.d/add_code_style_correction_script.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/add_code_style_correction_script.txt diff --git a/ChangeLog.d/add_code_style_correction_script.txt b/ChangeLog.d/add_code_style_correction_script.txt new file mode 100644 index 000000000..32ec767d8 --- /dev/null +++ b/ChangeLog.d/add_code_style_correction_script.txt @@ -0,0 +1,3 @@ +Changes + * Add a config file for Uncrustify and a script to correct the code style + using Uncrustify. From 556e8a321978b4f3d971ea4217305226fbe5bc25 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 6 Dec 2022 16:31:25 +0000 Subject: [PATCH 1139/1574] Fix additional mis-spelling Signed-off-by: Dave Rodgman --- library/ssl_tls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 83f2b3c3e..2fcc950b2 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -4241,7 +4241,7 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 1, ( "There is pending outgoing data" ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } - /* Protocol must be DLTS, not TLS */ + /* Protocol must be DTLS, not TLS */ if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Only DTLS is supported" ) ); From 92b5ac1a4788762686928a3d2b23f42cbba09ab8 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 10 Nov 2022 18:30:52 +0000 Subject: [PATCH 1140/1574] Add all.sh component to test with code style Run the main test suites after running code style correction to check that code style correction does not break these tests. Signed-off-by: David Horstmann --- tests/scripts/all.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 9295c9d00..028248228 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3537,6 +3537,26 @@ support_test_psa_compliance () { [ "$ver_major" -eq 3 ] && [ "$ver_minor" -ge 10 ] } +component_test_corrected_code_style () { + ./scripts/code_style.py --fix + + msg "build: make, default config (out-of-box), corrected code style" + make + + msg "test: main suites make, default config (out-of-box), corrected code style" + make test + + # Clean up code-style corrections + git checkout -- . +} + +support_test_corrected_code_style() { + case $(uncrustify --version) in + *0.75.1*) true;; + *) false;; + esac +} + component_check_python_files () { msg "Lint: Python scripts" tests/scripts/check-python-files.sh From de09ddd64ee7801b5caa21aebb373f80deee72fc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 6 Dec 2022 13:20:55 +0100 Subject: [PATCH 1141/1574] Move tests of random-in-range functions to their own suite The random-in-nrange test code has auxiliary functions that are common to all the interfaces (core, mod_raw (upcoming), mod (upcoming), legacy), and does some differential testing to check that all the layers consume the RNG in the saame way. Test them all in the same test suite. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum.function | 307 ---------------- tests/suites/test_suite_bignum.misc.data | 250 ------------- tests/suites/test_suite_bignum_random.data | 249 +++++++++++++ .../suites/test_suite_bignum_random.function | 331 ++++++++++++++++++ 4 files changed, 580 insertions(+), 557 deletions(-) create mode 100644 tests/suites/test_suite_bignum_random.data create mode 100644 tests/suites/test_suite_bignum_random.function diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 9dc5e595d..01af2ffc0 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -90,50 +90,6 @@ static int f_rng_bytes_left( void *state, unsigned char *buf, size_t len ) return( 0 ); } -/* Test whether bytes represents (in big-endian base 256) a number b that - * is significantly above a power of 2. That is, b must not have a long run - * of unset bits after the most significant bit. - * - * Let n be the bit-size of b, i.e. the integer such that 2^n <= b < 2^{n+1}. - * This function returns 1 if, when drawing a number between 0 and b, - * the probability that this number is at least 2^n is not negligible. - * This probability is (b - 2^n) / b and this function checks that this - * number is above some threshold A. The threshold value is heuristic and - * based on the needs of mpi_random_many(). - */ -static int is_significantly_above_a_power_of_2( data_t *bytes ) -{ - const uint8_t *p = bytes->x; - size_t len = bytes->len; - unsigned x; - - /* Skip leading null bytes */ - while( len > 0 && p[0] == 0 ) - { - ++p; - --len; - } - /* 0 is not significantly above a power of 2 */ - if( len == 0 ) - return( 0 ); - /* Extract the (up to) 2 most significant bytes */ - if( len == 1 ) - x = p[0]; - else - x = ( p[0] << 8 ) | p[1]; - - /* Shift the most significant bit of x to position 8 and mask it out */ - while( ( x & 0xfe00 ) != 0 ) - x >>= 1; - x &= 0x00ff; - - /* At this point, x = floor((b - 2^n) / 2^(n-8)). b is significantly above - * a power of 2 iff x is significantly above 0 compared to 2^8. - * Testing x >= 2^4 amounts to picking A = 1/16 in the function - * description above. */ - return( x >= 0x10 ); -} - /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -1295,269 +1251,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ -void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) -{ - /* Same RNG as in mpi_random_values */ - mbedtls_test_rnd_pseudo_info rnd = { - {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', - 's', 'e', 'e', 'd', '!', 0}, - 0, 0}; - size_t limbs; - mbedtls_mpi_uint *lower_bound = NULL; - mbedtls_mpi_uint *upper_bound = NULL; - mbedtls_mpi_uint *result = NULL; - - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, - bound_bytes ) ); - ASSERT_ALLOC( lower_bound, limbs * ciL ); - lower_bound[0] = min; - ASSERT_ALLOC( result, limbs * ciL ); - - TEST_EQUAL( expected_ret, - mbedtls_mpi_core_random( result, min, upper_bound, limbs, - mbedtls_test_rnd_pseudo_rand, &rnd ) ); - - if( expected_ret == 0 ) - { - TEST_EQUAL( 0, mbedtls_mpi_core_lt_ct( result, lower_bound, limbs ) ); - TEST_EQUAL( 1, mbedtls_mpi_core_lt_ct( result, upper_bound, limbs ) ); - } - -exit: - mbedtls_free( lower_bound ); - mbedtls_free( upper_bound ); - mbedtls_free( result ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_random_values( int min, char *max_hex ) -{ - /* Same RNG as in mpi_core_random_basic */ - mbedtls_test_rnd_pseudo_info rnd_core = { - {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', - 's', 'e', 'e', 'd', '!', 0}, - 0, 0}; - mbedtls_test_rnd_pseudo_info rnd_legacy; - memcpy( &rnd_legacy, &rnd_core, sizeof( rnd_core ) ); - mbedtls_mpi max_legacy; - mbedtls_mpi_init( &max_legacy ); - mbedtls_mpi_uint *R_core = NULL; - mbedtls_mpi R_legacy; - mbedtls_mpi_init( &R_legacy ); - - TEST_EQUAL( 0, mbedtls_test_read_mpi( &max_legacy, max_hex ) ); - size_t limbs = max_legacy.n; - ASSERT_ALLOC( R_core, limbs * ciL ); - - /* Call the legacy function and the core function with the same random - * stream. */ - int core_ret = mbedtls_mpi_core_random( R_core, min, max_legacy.p, limbs, - mbedtls_test_rnd_pseudo_rand, - &rnd_core ); - int legacy_ret = mbedtls_mpi_random( &R_legacy, min, &max_legacy, - mbedtls_test_rnd_pseudo_rand, - &rnd_legacy ); - - /* They must return the same status, and, on success, output the - * same number, with the same limb count. */ - TEST_EQUAL( core_ret, legacy_ret ); - if( core_ret == 0 ) - { - ASSERT_COMPARE( R_core, limbs * ciL, - R_legacy.p, R_legacy.n * ciL ); - } - - /* Also check that they have consumed the RNG in the same way. */ - /* This may theoretically fail on rare platforms with padding in - * the structure! If this is a problem in practice, change to a - * field-by-field comparison. */ - ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), - &rnd_legacy, sizeof( rnd_legacy ) ); - -exit: - mbedtls_mpi_free( &max_legacy ); - mbedtls_free( R_core ); - mbedtls_mpi_free( &R_legacy ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_random_many( int min, char *bound_hex, int iterations ) -{ - /* Generate numbers in the range 1..bound-1. Do it iterations times. - * This function assumes that the value of bound is at least 2 and - * that iterations is large enough that a one-in-2^iterations chance - * effectively never occurs. - */ - - data_t bound_bytes = {NULL, 0}; - mbedtls_mpi_uint *upper_bound = NULL; - size_t limbs; - size_t n_bits; - mbedtls_mpi_uint *result = NULL; - size_t b; - /* If upper_bound is small, stats[b] is the number of times the value b - * has been generated. Otherwise stats[b] is the number of times a - * value with bit b set has been generated. */ - size_t *stats = NULL; - size_t stats_len; - int full_stats; - size_t i; - - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, - bound_hex ) ); - ASSERT_ALLOC( result, limbs * ciL ); - - n_bits = mbedtls_mpi_core_bitlen( upper_bound, limbs ); - /* Consider a bound "small" if it's less than 2^5. This value is chosen - * to be small enough that the probability of missing one value is - * negligible given the number of iterations. It must be less than - * 256 because some of the code below assumes that "small" values - * fit in a byte. */ - if( n_bits <= 5 ) - { - full_stats = 1; - stats_len = (uint8_t) upper_bound[0]; - } - else - { - full_stats = 0; - stats_len = n_bits; - } - ASSERT_ALLOC( stats, stats_len ); - - for( i = 0; i < (size_t) iterations; i++ ) - { - mbedtls_test_set_step( i ); - TEST_EQUAL( 0, mbedtls_mpi_core_random( result, - min, upper_bound, limbs, - mbedtls_test_rnd_std_rand, NULL ) ); - - /* Temporarily use a legacy MPI for analysis, because the - * necessary auxiliary functions don't exist yet in core. */ - mbedtls_mpi B = {1, limbs, upper_bound}; - mbedtls_mpi R = {1, limbs, result}; - - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) < 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &R, min ) >= 0 ); - if( full_stats ) - { - uint8_t value; - TEST_EQUAL( 0, mbedtls_mpi_write_binary( &R, &value, 1 ) ); - TEST_ASSERT( value < stats_len ); - ++stats[value]; - } - else - { - for( b = 0; b < n_bits; b++ ) - stats[b] += mbedtls_mpi_get_bit( &R, b ); - } - } - - if( full_stats ) - { - for( b = min; b < stats_len; b++ ) - { - mbedtls_test_set_step( 1000000 + b ); - /* Assert that each value has been reached at least once. - * This is almost guaranteed if the iteration count is large - * enough. This is a very crude way of checking the distribution. - */ - TEST_ASSERT( stats[b] > 0 ); - } - } - else - { - bound_bytes.len = limbs * sizeof( mbedtls_mpi_uint ); - ASSERT_ALLOC( bound_bytes.x, bound_bytes.len ); - mbedtls_mpi_core_write_be( upper_bound, limbs, - bound_bytes.x, bound_bytes.len ); - int statistically_safe_all_the_way = - is_significantly_above_a_power_of_2( &bound_bytes ); - for( b = 0; b < n_bits; b++ ) - { - mbedtls_test_set_step( 1000000 + b ); - /* Assert that each bit has been set in at least one result and - * clear in at least one result. Provided that iterations is not - * too small, it would be extremely unlikely for this not to be - * the case if the results are uniformly distributed. - * - * As an exception, the top bit may legitimately never be set - * if bound is a power of 2 or only slightly above. - */ - if( statistically_safe_all_the_way || b != n_bits - 1 ) - { - TEST_ASSERT( stats[b] > 0 ); - } - TEST_ASSERT( stats[b] < (size_t) iterations ); - } - } - -exit: - mbedtls_free( bound_bytes.x ); - mbedtls_free( upper_bound ); - mbedtls_free( result ); - mbedtls_free( stats ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_random_sizes( int min, data_t *bound_bytes, int nlimbs, int before ) -{ - mbedtls_mpi upper_bound; - mbedtls_mpi result; - - mbedtls_mpi_init( &upper_bound ); - mbedtls_mpi_init( &result ); - - if( before != 0 ) - { - /* Set result to sign(before) * 2^(|before|-1) */ - TEST_ASSERT( mbedtls_mpi_lset( &result, before > 0 ? 1 : -1 ) == 0 ); - if( before < 0 ) - before = - before; - TEST_ASSERT( mbedtls_mpi_shift_l( &result, before - 1 ) == 0 ); - } - - TEST_EQUAL( 0, mbedtls_mpi_grow( &result, nlimbs ) ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, - bound_bytes->x, bound_bytes->len ) ); - TEST_EQUAL( 0, mbedtls_mpi_random( &result, min, &upper_bound, - mbedtls_test_rnd_std_rand, NULL ) ); - TEST_ASSERT( sign_is_valid( &result ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &result, &upper_bound ) < 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &result, min ) >= 0 ); - -exit: - mbedtls_mpi_free( &upper_bound ); - mbedtls_mpi_free( &result ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mpi_random_fail( int min, data_t *bound_bytes, int expected_ret ) -{ - mbedtls_mpi upper_bound; - mbedtls_mpi result; - int actual_ret; - - mbedtls_mpi_init( &upper_bound ); - mbedtls_mpi_init( &result ); - - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, - bound_bytes->x, bound_bytes->len ) ); - actual_ret = mbedtls_mpi_random( &result, min, &upper_bound, - mbedtls_test_rnd_std_rand, NULL ); - TEST_EQUAL( expected_ret, actual_ret ); - -exit: - mbedtls_mpi_free( &upper_bound ); - mbedtls_mpi_free( &result ); -} -/* END_CASE */ - /* BEGIN_CASE */ void most_negative_mpi_sint( ) { diff --git a/tests/suites/test_suite_bignum.misc.data b/tests/suites/test_suite_bignum.misc.data index fa4c5bce4..5eda4c11a 100644 --- a/tests/suites/test_suite_bignum.misc.data +++ b/tests/suites/test_suite_bignum.misc.data @@ -1788,256 +1788,6 @@ mpi_fill_random:16:15:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED Fill random: MAX_SIZE bytes, RNG failure after MAX_SIZE-1 bytes mpi_fill_random:MBEDTLS_MPI_MAX_SIZE:MBEDTLS_MPI_MAX_SIZE-1:0:MBEDTLS_ERR_ENTROPY_SOURCE_FAILED -MPI core random basic: 0..1 -mpi_core_random_basic:0:"01":0 - -MPI core random basic: 0..2 -mpi_core_random_basic:0:"02":0 - -MPI core random basic: 1..2 -mpi_core_random_basic:1:"02":0 - -MPI core random basic: 2^30..2^31 -mpi_core_random_basic:0x40000000:"80000000":0 - -MPI core random basic: 0..2^128 -mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0 - -MPI core random basic: 2^30..2^129 -mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 - -# Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE -# and for mpi_random_values where we want to return NOT_ACCEPTABLE but -# this isn't checked at runtime. -MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE - -MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE) -mpi_random_values:0x0fffffff:"10000000" - -MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE - -MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE) -mpi_random_values:0x1fffffff:"20000000" - -MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE - -MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE) -mpi_random_values:0x3fffffff:"40000000" - -MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE - -MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE) -mpi_random_values:0x7fffffff:"80000000" - -MPI random in range: 1..2 -mpi_random_many:1:"02":1000 - -MPI random in range: 1..3 -mpi_random_many:1:"03":1000 - -MPI random in range: 1..4 -mpi_random_many:1:"04":1000 - -MPI random in range: 1..5 -mpi_random_many:1:"05":1000 - -MPI random in range: 1..6 -mpi_random_many:1:"06":1000 - -MPI random in range: 1..7 -mpi_random_many:1:"07":1000 - -MPI random in range: 1..8 -mpi_random_many:1:"08":1000 - -MPI random in range: 1..9 -mpi_random_many:1:"09":1000 - -MPI random in range: 1..10 -mpi_random_many:1:"0a":1000 - -MPI random in range: 1..11 -mpi_random_many:1:"0b":1000 - -MPI random in range: 1..12 -mpi_random_many:1:"0c":1000 - -MPI random in range: 1..255 -mpi_random_many:1:"ff":200 - -MPI random in range: 1..256 -mpi_random_many:1:"0100":200 - -MPI random in range: 1..257 -mpi_random_many:1:"0101":200 - -MPI random in range: 1..272 -mpi_random_many:1:"0110":200 - -MPI random in range: 1..2^64-1 -mpi_random_many:1:"ffffffffffffffff":100 - -MPI random in range: 1..2^64 -mpi_random_many:1:"010000000000000000":100 - -MPI random in range: 1..2^64+1 -mpi_random_many:1:"010000000000000001":100 - -MPI random in range: 1..2^64+2^63 -mpi_random_many:1:"018000000000000000":100 - -MPI random in range: 1..2^65-1 -mpi_random_many:1:"01ffffffffffffffff":100 - -MPI random in range: 1..2^65 -mpi_random_many:1:"020000000000000000":100 - -MPI random in range: 1..2^65+1 -mpi_random_many:1:"020000000000000001":100 - -MPI random in range: 1..2^65+2^64 -mpi_random_many:1:"030000000000000000":100 - -MPI random in range: 1..2^66+2^65 -mpi_random_many:1:"060000000000000000":100 - -MPI random in range: 1..2^71-1 -mpi_random_many:1:"7fffffffffffffffff":100 - -MPI random in range: 1..2^71 -mpi_random_many:1:"800000000000000000":100 - -MPI random in range: 1..2^71+1 -mpi_random_many:1:"800000000000000001":100 - -MPI random in range: 1..2^71+2^70 -mpi_random_many:1:"c00000000000000000":100 - -MPI random in range: 1..2^72-1 -mpi_random_many:1:"ffffffffffffffffff":100 - -MPI random in range: 1..2^72 -mpi_random_many:1:"01000000000000000000":100 - -MPI random in range: 1..2^72+1 -mpi_random_many:1:"01000000000000000001":100 - -MPI random in range: 1..2^72+2^71 -mpi_random_many:1:"01800000000000000000":100 - -MPI random in range: 0..1 -mpi_random_many:0:"04":10000 - -MPI random in range: 0..4 -mpi_random_many:0:"04":10000 - -MPI random in range: 2..4 -mpi_random_many:2:"04":10000 - -MPI random in range: 3..4 -mpi_random_many:3:"04":10000 - -MPI random in range: smaller result -mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0 - -MPI random in range: same size result (32-bit limbs) -mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0 - -MPI random in range: same size result (64-bit limbs) -mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0 - -MPI random in range: larger result -mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0 - -## The "0 limb in upper bound" tests rely on the fact that -## mbedtls_mpi_read_binary() bases the size of the MPI on the size of -## the input, without first checking for leading zeros. If this was -## not the case, the tests would still pass, but would not exercise -## the advertised behavior. -MPI random in range: leading 0 limb in upper bound #0 -mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0 - -MPI random in range: leading 0 limb in upper bound #1 -mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0 - -MPI random in range: leading 0 limb in upper bound #2 -mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0 - -MPI random in range: leading 0 limb in upper bound #3 -mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0 - -MPI random in range: leading 0 limb in upper bound #4 -mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0 - -MPI random in range: previously small >0 -mpi_random_sizes:1:"1234567890":4:1 - -MPI random in range: previously small <0 -mpi_random_sizes:1:"1234567890":4:-1 - -MPI random in range: previously large >0 -mpi_random_sizes:1:"1234":4:65 - -MPI random in range: previously large <0 -mpi_random_sizes:1:"1234":4:-65 - -MPI random bad arguments: min < 0 -mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random bad arguments: min = N = 0 -mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random bad arguments: min = N = 1 -mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random bad arguments: min > N = 0 -mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random bad arguments: min > N = 1 -mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random bad arguments: min > N = 1, 0 limb in upper bound -mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA - -MPI random legacy=core: 0..1 -mpi_random_values:0:"01" - -MPI random legacy=core: 0..2 -mpi_random_values:0:"02" - -MPI random legacy=core: 1..2 -mpi_random_values:1:"02" - -MPI random legacy=core: 2^30..2^31 -mpi_random_values:0x40000000:"80000000" - -MPI random legacy=core: 2^31-1..2^32-1 -mpi_random_values:0x7fffffff:"ffffffff" - -MPI random legacy=core: 0..2^256 -mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" - -MPI random legacy=core: 0..2^256+1 -mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" - -# The following test cases return MPI_NOT_ACCEPTABLE -# (verified at the time of writing, not enforced at runtime) -MPI random legacy=core: 2^28-1..2^28 (improbable) -mpi_random_values:0x0fffffff:"10000000" - -MPI random legacy=core: 2^29-1..2^29 (improbable) -mpi_random_values:0x1fffffff:"20000000" - -MPI random legacy=core: 2^30-1..2^30 (improbable) -mpi_random_values:0x3fffffff:"40000000" - -MPI random legacy=core: 2^31-1..2^31 (improbable) -mpi_random_values:0x7fffffff:"80000000" - Most negative mbedtls_mpi_sint most_negative_mpi_sint: diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data new file mode 100644 index 000000000..c511af533 --- /dev/null +++ b/tests/suites/test_suite_bignum_random.data @@ -0,0 +1,249 @@ +MPI core random basic: 0..1 +mpi_core_random_basic:0:"01":0 + +MPI core random basic: 0..2 +mpi_core_random_basic:0:"02":0 + +MPI core random basic: 1..2 +mpi_core_random_basic:1:"02":0 + +MPI core random basic: 2^30..2^31 +mpi_core_random_basic:0x40000000:"80000000":0 + +MPI core random basic: 0..2^128 +mpi_core_random_basic:0x40000000:"0100000000000000000000000000000000":0 + +MPI core random basic: 2^30..2^129 +mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 + +# Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE +# and for mpi_random_values where we want to return NOT_ACCEPTABLE but +# this isn't checked at runtime. +MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE) +mpi_random_values:0x0fffffff:"10000000" + +MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE) +mpi_random_values:0x1fffffff:"20000000" + +MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE) +mpi_random_values:0x3fffffff:"40000000" + +MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE) +mpi_random_values:0x7fffffff:"80000000" + +MPI random in range: 1..2 +mpi_random_many:1:"02":1000 + +MPI random in range: 1..3 +mpi_random_many:1:"03":1000 + +MPI random in range: 1..4 +mpi_random_many:1:"04":1000 + +MPI random in range: 1..5 +mpi_random_many:1:"05":1000 + +MPI random in range: 1..6 +mpi_random_many:1:"06":1000 + +MPI random in range: 1..7 +mpi_random_many:1:"07":1000 + +MPI random in range: 1..8 +mpi_random_many:1:"08":1000 + +MPI random in range: 1..9 +mpi_random_many:1:"09":1000 + +MPI random in range: 1..10 +mpi_random_many:1:"0a":1000 + +MPI random in range: 1..11 +mpi_random_many:1:"0b":1000 + +MPI random in range: 1..12 +mpi_random_many:1:"0c":1000 + +MPI random in range: 1..255 +mpi_random_many:1:"ff":200 + +MPI random in range: 1..256 +mpi_random_many:1:"0100":200 + +MPI random in range: 1..257 +mpi_random_many:1:"0101":200 + +MPI random in range: 1..272 +mpi_random_many:1:"0110":200 + +MPI random in range: 1..2^64-1 +mpi_random_many:1:"ffffffffffffffff":100 + +MPI random in range: 1..2^64 +mpi_random_many:1:"010000000000000000":100 + +MPI random in range: 1..2^64+1 +mpi_random_many:1:"010000000000000001":100 + +MPI random in range: 1..2^64+2^63 +mpi_random_many:1:"018000000000000000":100 + +MPI random in range: 1..2^65-1 +mpi_random_many:1:"01ffffffffffffffff":100 + +MPI random in range: 1..2^65 +mpi_random_many:1:"020000000000000000":100 + +MPI random in range: 1..2^65+1 +mpi_random_many:1:"020000000000000001":100 + +MPI random in range: 1..2^65+2^64 +mpi_random_many:1:"030000000000000000":100 + +MPI random in range: 1..2^66+2^65 +mpi_random_many:1:"060000000000000000":100 + +MPI random in range: 1..2^71-1 +mpi_random_many:1:"7fffffffffffffffff":100 + +MPI random in range: 1..2^71 +mpi_random_many:1:"800000000000000000":100 + +MPI random in range: 1..2^71+1 +mpi_random_many:1:"800000000000000001":100 + +MPI random in range: 1..2^71+2^70 +mpi_random_many:1:"c00000000000000000":100 + +MPI random in range: 1..2^72-1 +mpi_random_many:1:"ffffffffffffffffff":100 + +MPI random in range: 1..2^72 +mpi_random_many:1:"01000000000000000000":100 + +MPI random in range: 1..2^72+1 +mpi_random_many:1:"01000000000000000001":100 + +MPI random in range: 1..2^72+2^71 +mpi_random_many:1:"01800000000000000000":100 + +MPI random in range: 0..1 +mpi_random_many:0:"04":10000 + +MPI random in range: 0..4 +mpi_random_many:0:"04":10000 + +MPI random in range: 2..4 +mpi_random_many:2:"04":10000 + +MPI random in range: 3..4 +mpi_random_many:3:"04":10000 + +MPI random in range: smaller result +mpi_random_sizes:1:"aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb":1:0 + +MPI random in range: same size result (32-bit limbs) +mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":2:0 + +MPI random in range: same size result (64-bit limbs) +mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":1:0 + +MPI random in range: larger result +mpi_random_sizes:1:"aaaaaaaaaaaaaaaa":3:0 + +## The "0 limb in upper bound" tests rely on the fact that +## mbedtls_mpi_read_binary() bases the size of the MPI on the size of +## the input, without first checking for leading zeros. If this was +## not the case, the tests would still pass, but would not exercise +## the advertised behavior. +MPI random in range: leading 0 limb in upper bound #0 +mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":0:0 + +MPI random in range: leading 0 limb in upper bound #1 +mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":1:0 + +MPI random in range: leading 0 limb in upper bound #2 +mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":2:0 + +MPI random in range: leading 0 limb in upper bound #3 +mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":3:0 + +MPI random in range: leading 0 limb in upper bound #4 +mpi_random_sizes:1:"00aaaaaaaaaaaaaaaa":4:0 + +MPI random in range: previously small >0 +mpi_random_sizes:1:"1234567890":4:1 + +MPI random in range: previously small <0 +mpi_random_sizes:1:"1234567890":4:-1 + +MPI random in range: previously large >0 +mpi_random_sizes:1:"1234":4:65 + +MPI random in range: previously large <0 +mpi_random_sizes:1:"1234":4:-65 + +MPI random bad arguments: min < 0 +mpi_random_fail:-1:"04":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random bad arguments: min = N = 0 +mpi_random_fail:0:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random bad arguments: min = N = 1 +mpi_random_fail:1:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random bad arguments: min > N = 0 +mpi_random_fail:1:"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random bad arguments: min > N = 1 +mpi_random_fail:2:"01":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random bad arguments: min > N = 1, 0 limb in upper bound +mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random legacy=core: 0..1 +mpi_random_values:0:"01" + +MPI random legacy=core: 0..2 +mpi_random_values:0:"02" + +MPI random legacy=core: 1..2 +mpi_random_values:1:"02" + +MPI random legacy=core: 2^30..2^31 +mpi_random_values:0x40000000:"80000000" + +MPI random legacy=core: 2^31-1..2^32-1 +mpi_random_values:0x7fffffff:"ffffffff" + +MPI random legacy=core: 0..2^256 +mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" + +MPI random legacy=core: 0..2^256+1 +mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" + +# The following test cases return MPI_NOT_ACCEPTABLE +# (verified at the time of writing, not enforced at runtime) +MPI random legacy=core: 2^28-1..2^28 (improbable) +mpi_random_values:0x0fffffff:"10000000" + +MPI random legacy=core: 2^29-1..2^29 (improbable) +mpi_random_values:0x1fffffff:"20000000" + +MPI random legacy=core: 2^30-1..2^30 (improbable) +mpi_random_values:0x3fffffff:"40000000" + +MPI random legacy=core: 2^31-1..2^31 (improbable) +mpi_random_values:0x7fffffff:"80000000" diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function new file mode 100644 index 000000000..7a6607328 --- /dev/null +++ b/tests/suites/test_suite_bignum_random.function @@ -0,0 +1,331 @@ +/* BEGIN_HEADER */ +/* Dedicated test suite for mbedtls_mpi_core_random() and the upper-layer + * functions. Due to the complexity of how these functions are tested, + * we test all the layers in a single test suite, unlike the way other + * functions are tested with each layer in its own test suite. + */ + +#include "mbedtls/bignum.h" +#include "mbedtls/entropy.h" +#include "bignum_core.h" +#include "constant_time_internal.h" + +/* This test suite only manipulates non-negative bignums. */ +static int sign_is_valid( const mbedtls_mpi *X ) +{ + return( X->s == 1 ); +} + +/* Test whether bytes represents (in big-endian base 256) a number b that + * is significantly above a power of 2. That is, b must not have a long run + * of unset bits after the most significant bit. + * + * Let n be the bit-size of b, i.e. the integer such that 2^n <= b < 2^{n+1}. + * This function returns 1 if, when drawing a number between 0 and b, + * the probability that this number is at least 2^n is not negligible. + * This probability is (b - 2^n) / b and this function checks that this + * number is above some threshold A. The threshold value is heuristic and + * based on the needs of mpi_random_many(). + */ +static int is_significantly_above_a_power_of_2( data_t *bytes ) +{ + const uint8_t *p = bytes->x; + size_t len = bytes->len; + unsigned x; + + /* Skip leading null bytes */ + while( len > 0 && p[0] == 0 ) + { + ++p; + --len; + } + /* 0 is not significantly above a power of 2 */ + if( len == 0 ) + return( 0 ); + /* Extract the (up to) 2 most significant bytes */ + if( len == 1 ) + x = p[0]; + else + x = ( p[0] << 8 ) | p[1]; + + /* Shift the most significant bit of x to position 8 and mask it out */ + while( ( x & 0xfe00 ) != 0 ) + x >>= 1; + x &= 0x00ff; + + /* At this point, x = floor((b - 2^n) / 2^(n-8)). b is significantly above + * a power of 2 iff x is significantly above 0 compared to 2^8. + * Testing x >= 2^4 amounts to picking A = 1/16 in the function + * description above. */ + return( x >= 0x10 ); +} + +/* END_HEADER */ + +/* BEGIN_DEPENDENCIES + * depends_on:MBEDTLS_BIGNUM_C + * END_DEPENDENCIES + */ + +/* BEGIN_CASE */ +void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) +{ + /* Same RNG as in mpi_random_values */ + mbedtls_test_rnd_pseudo_info rnd = { + {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', + 's', 'e', 'e', 'd', '!', 0}, + 0, 0}; + size_t limbs; + mbedtls_mpi_uint *lower_bound = NULL; + mbedtls_mpi_uint *upper_bound = NULL; + mbedtls_mpi_uint *result = NULL; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, + bound_bytes ) ); + ASSERT_ALLOC( lower_bound, limbs * ciL ); + lower_bound[0] = min; + ASSERT_ALLOC( result, limbs * ciL ); + + TEST_EQUAL( expected_ret, + mbedtls_mpi_core_random( result, min, upper_bound, limbs, + mbedtls_test_rnd_pseudo_rand, &rnd ) ); + + if( expected_ret == 0 ) + { + TEST_EQUAL( 0, mbedtls_mpi_core_lt_ct( result, lower_bound, limbs ) ); + TEST_EQUAL( 1, mbedtls_mpi_core_lt_ct( result, upper_bound, limbs ) ); + } + +exit: + mbedtls_free( lower_bound ); + mbedtls_free( upper_bound ); + mbedtls_free( result ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_random_values( int min, char *max_hex ) +{ + /* Same RNG as in mpi_core_random_basic */ + mbedtls_test_rnd_pseudo_info rnd_core = { + {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', + 's', 'e', 'e', 'd', '!', 0}, + 0, 0}; + mbedtls_test_rnd_pseudo_info rnd_legacy; + memcpy( &rnd_legacy, &rnd_core, sizeof( rnd_core ) ); + mbedtls_mpi max_legacy; + mbedtls_mpi_init( &max_legacy ); + mbedtls_mpi_uint *R_core = NULL; + mbedtls_mpi R_legacy; + mbedtls_mpi_init( &R_legacy ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi( &max_legacy, max_hex ) ); + size_t limbs = max_legacy.n; + ASSERT_ALLOC( R_core, limbs * ciL ); + + /* Call the legacy function and the core function with the same random + * stream. */ + int core_ret = mbedtls_mpi_core_random( R_core, min, max_legacy.p, limbs, + mbedtls_test_rnd_pseudo_rand, + &rnd_core ); + int legacy_ret = mbedtls_mpi_random( &R_legacy, min, &max_legacy, + mbedtls_test_rnd_pseudo_rand, + &rnd_legacy ); + + /* They must return the same status, and, on success, output the + * same number, with the same limb count. */ + TEST_EQUAL( core_ret, legacy_ret ); + if( core_ret == 0 ) + { + ASSERT_COMPARE( R_core, limbs * ciL, + R_legacy.p, R_legacy.n * ciL ); + } + + /* Also check that they have consumed the RNG in the same way. */ + /* This may theoretically fail on rare platforms with padding in + * the structure! If this is a problem in practice, change to a + * field-by-field comparison. */ + ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), + &rnd_legacy, sizeof( rnd_legacy ) ); + +exit: + mbedtls_mpi_free( &max_legacy ); + mbedtls_free( R_core ); + mbedtls_mpi_free( &R_legacy ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_random_many( int min, char *bound_hex, int iterations ) +{ + /* Generate numbers in the range 1..bound-1. Do it iterations times. + * This function assumes that the value of bound is at least 2 and + * that iterations is large enough that a one-in-2^iterations chance + * effectively never occurs. + */ + + data_t bound_bytes = {NULL, 0}; + mbedtls_mpi_uint *upper_bound = NULL; + size_t limbs; + size_t n_bits; + mbedtls_mpi_uint *result = NULL; + size_t b; + /* If upper_bound is small, stats[b] is the number of times the value b + * has been generated. Otherwise stats[b] is the number of times a + * value with bit b set has been generated. */ + size_t *stats = NULL; + size_t stats_len; + int full_stats; + size_t i; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, + bound_hex ) ); + ASSERT_ALLOC( result, limbs * ciL ); + + n_bits = mbedtls_mpi_core_bitlen( upper_bound, limbs ); + /* Consider a bound "small" if it's less than 2^5. This value is chosen + * to be small enough that the probability of missing one value is + * negligible given the number of iterations. It must be less than + * 256 because some of the code below assumes that "small" values + * fit in a byte. */ + if( n_bits <= 5 ) + { + full_stats = 1; + stats_len = (uint8_t) upper_bound[0]; + } + else + { + full_stats = 0; + stats_len = n_bits; + } + ASSERT_ALLOC( stats, stats_len ); + + for( i = 0; i < (size_t) iterations; i++ ) + { + mbedtls_test_set_step( i ); + TEST_EQUAL( 0, mbedtls_mpi_core_random( result, + min, upper_bound, limbs, + mbedtls_test_rnd_std_rand, NULL ) ); + + /* Temporarily use a legacy MPI for analysis, because the + * necessary auxiliary functions don't exist yet in core. */ + mbedtls_mpi B = {1, limbs, upper_bound}; + mbedtls_mpi R = {1, limbs, result}; + + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) < 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_int( &R, min ) >= 0 ); + if( full_stats ) + { + uint8_t value; + TEST_EQUAL( 0, mbedtls_mpi_write_binary( &R, &value, 1 ) ); + TEST_ASSERT( value < stats_len ); + ++stats[value]; + } + else + { + for( b = 0; b < n_bits; b++ ) + stats[b] += mbedtls_mpi_get_bit( &R, b ); + } + } + + if( full_stats ) + { + for( b = min; b < stats_len; b++ ) + { + mbedtls_test_set_step( 1000000 + b ); + /* Assert that each value has been reached at least once. + * This is almost guaranteed if the iteration count is large + * enough. This is a very crude way of checking the distribution. + */ + TEST_ASSERT( stats[b] > 0 ); + } + } + else + { + bound_bytes.len = limbs * sizeof( mbedtls_mpi_uint ); + ASSERT_ALLOC( bound_bytes.x, bound_bytes.len ); + mbedtls_mpi_core_write_be( upper_bound, limbs, + bound_bytes.x, bound_bytes.len ); + int statistically_safe_all_the_way = + is_significantly_above_a_power_of_2( &bound_bytes ); + for( b = 0; b < n_bits; b++ ) + { + mbedtls_test_set_step( 1000000 + b ); + /* Assert that each bit has been set in at least one result and + * clear in at least one result. Provided that iterations is not + * too small, it would be extremely unlikely for this not to be + * the case if the results are uniformly distributed. + * + * As an exception, the top bit may legitimately never be set + * if bound is a power of 2 or only slightly above. + */ + if( statistically_safe_all_the_way || b != n_bits - 1 ) + { + TEST_ASSERT( stats[b] > 0 ); + } + TEST_ASSERT( stats[b] < (size_t) iterations ); + } + } + +exit: + mbedtls_free( bound_bytes.x ); + mbedtls_free( upper_bound ); + mbedtls_free( result ); + mbedtls_free( stats ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_random_sizes( int min, data_t *bound_bytes, int nlimbs, int before ) +{ + mbedtls_mpi upper_bound; + mbedtls_mpi result; + + mbedtls_mpi_init( &upper_bound ); + mbedtls_mpi_init( &result ); + + if( before != 0 ) + { + /* Set result to sign(before) * 2^(|before|-1) */ + TEST_ASSERT( mbedtls_mpi_lset( &result, before > 0 ? 1 : -1 ) == 0 ); + if( before < 0 ) + before = - before; + TEST_ASSERT( mbedtls_mpi_shift_l( &result, before - 1 ) == 0 ); + } + + TEST_EQUAL( 0, mbedtls_mpi_grow( &result, nlimbs ) ); + TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, + bound_bytes->x, bound_bytes->len ) ); + TEST_EQUAL( 0, mbedtls_mpi_random( &result, min, &upper_bound, + mbedtls_test_rnd_std_rand, NULL ) ); + TEST_ASSERT( sign_is_valid( &result ) ); + TEST_ASSERT( mbedtls_mpi_cmp_mpi( &result, &upper_bound ) < 0 ); + TEST_ASSERT( mbedtls_mpi_cmp_int( &result, min ) >= 0 ); + +exit: + mbedtls_mpi_free( &upper_bound ); + mbedtls_mpi_free( &result ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_random_fail( int min, data_t *bound_bytes, int expected_ret ) +{ + mbedtls_mpi upper_bound; + mbedtls_mpi result; + int actual_ret; + + mbedtls_mpi_init( &upper_bound ); + mbedtls_mpi_init( &result ); + + TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, + bound_bytes->x, bound_bytes->len ) ); + actual_ret = mbedtls_mpi_random( &result, min, &upper_bound, + mbedtls_test_rnd_std_rand, NULL ); + TEST_EQUAL( expected_ret, actual_ret ); + +exit: + mbedtls_mpi_free( &upper_bound ); + mbedtls_mpi_free( &result ); +} +/* END_CASE */ From 8781dd0e6185b1d82951e313029e0ab40f1936ad Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 6 Dec 2022 23:05:06 +0100 Subject: [PATCH 1142/1574] Fix overly large allocations of MPIs The second argument of ASSERT_ALLOC is a number of array elements, not a number of bytes. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_random.function | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 7a6607328..c8bca6e7c 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -82,9 +82,9 @@ void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, bound_bytes ) ); - ASSERT_ALLOC( lower_bound, limbs * ciL ); + ASSERT_ALLOC( lower_bound, limbs ); lower_bound[0] = min; - ASSERT_ALLOC( result, limbs * ciL ); + ASSERT_ALLOC( result, limbs ); TEST_EQUAL( expected_ret, mbedtls_mpi_core_random( result, min, upper_bound, limbs, @@ -121,7 +121,7 @@ void mpi_random_values( int min, char *max_hex ) TEST_EQUAL( 0, mbedtls_test_read_mpi( &max_legacy, max_hex ) ); size_t limbs = max_legacy.n; - ASSERT_ALLOC( R_core, limbs * ciL ); + ASSERT_ALLOC( R_core, limbs ); /* Call the legacy function and the core function with the same random * stream. */ @@ -180,7 +180,7 @@ void mpi_random_many( int min, char *bound_hex, int iterations ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, bound_hex ) ); - ASSERT_ALLOC( result, limbs * ciL ); + ASSERT_ALLOC( result, limbs ); n_bits = mbedtls_mpi_core_bitlen( upper_bound, limbs ); /* Consider a bound "small" if it's less than 2^5. This value is chosen From c689ed86330d8b16010e4c4a9faf9b848a237676 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 7 Dec 2022 14:40:38 +0100 Subject: [PATCH 1143/1574] tls: pake: minor adjustments Signed-off-by: Valerio Setti --- include/mbedtls/ssl.h | 3 +-- library/ssl_tls.c | 18 +++++++++--------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 97caad881..6d453ad1c 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -3864,8 +3864,7 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, /** * \brief Set the EC J-PAKE opaque password for current handshake. * - * \note The input key in not copied, so the caller must not destroy - * it before the handshake is over. + * \note The key must remain valid until the handshake is over. * * \note The SSL context needs to be already set up. The right place * to call this function is between \c mbedtls_ssl_setup() or diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 1438124dd..810db243d 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1932,11 +1932,6 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( ssl->handshake == NULL || ssl->conf == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - psa_role = PSA_PAKE_ROLE_SERVER; - else - psa_role = PSA_PAKE_ROLE_CLIENT; - if( mbedtls_svc_key_id_is_null( pwd ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); ssl->handshake->psa_pake_password = pwd; @@ -1952,6 +1947,11 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( status != PSA_SUCCESS ) goto error; + if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + psa_role = PSA_PAKE_ROLE_SERVER; + else + psa_role = PSA_PAKE_ROLE_CLIENT; + status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); if( status != PSA_SUCCESS ) goto error; @@ -1979,15 +1979,15 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, if( ssl->handshake == NULL || ssl->conf == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + /* Empty password is not valid */ + if( ( pw == NULL) || ( pw_len == 0 ) ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) role = MBEDTLS_ECJPAKE_SERVER; else role = MBEDTLS_ECJPAKE_CLIENT; - /* Empty password is not valid */ - if( ( pw == NULL) || ( pw_len == 0 ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - return( mbedtls_ecjpake_setup( &ssl->handshake->ecjpake_ctx, role, MBEDTLS_MD_SHA256, From d5fa0bfb859fe2410bbafa9714bc01ac8f4ddd21 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 7 Dec 2022 15:27:08 +0100 Subject: [PATCH 1144/1574] test: pake: check psa key validity before destroying it Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 11 ++++++++++- programs/ssl/ssl_server2.c | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index f7b66aeac..54e9861cc 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3331,7 +3331,16 @@ exit: defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { - psa_destroy_key( ecjpake_pw_slot ); + psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT; + + /* Ensure the key is still valid before destroying it */ + status = psa_get_key_attributes( ecjpake_pw_slot, &key_attr ); + if( status == PSA_SUCCESS && + PSA_ALG_IS_PAKE( psa_get_key_algorithm( &key_attr ) ) ) + { + psa_destroy_key( ecjpake_pw_slot ); + } + psa_reset_key_attributes( &key_attr ); } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 3b5ca73ca..004616fd1 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -4441,7 +4441,16 @@ exit: defined(MBEDTLS_USE_PSA_CRYPTO) if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) { - psa_destroy_key( ecjpake_pw_slot ); + psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT; + + /* Ensure the key is still valid before destroying it */ + status = psa_get_key_attributes( ecjpake_pw_slot, &key_attr ); + if( status == PSA_SUCCESS && + PSA_ALG_IS_PAKE( psa_get_key_algorithm( &key_attr ) ) ) + { + psa_destroy_key( ecjpake_pw_slot ); + } + psa_reset_key_attributes( &key_attr ); } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ From f11e05a41307275e91a91b23ebe0550557e57da1 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 7 Dec 2022 15:41:05 +0100 Subject: [PATCH 1145/1574] test: psa: minor improvements to test Signed-off-by: Valerio Setti --- tests/ssl-opt.sh | 6 ++++++ tests/suites/test_suite_ssl.function | 15 +++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 3906d3ed1..03f5955e9 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -7989,6 +7989,8 @@ run_test "ECJPAKE: server not configured" \ -C "found ecjpake_kkpp extension" \ -s "SSL - The handshake negotiation failed" +# Note: if the name of this test is changed, then please adjust the corresponding +# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "ECJPAKE: working, TLS" \ @@ -8028,6 +8030,8 @@ run_test "ECJPAKE: opaque password client+server, working, TLS" \ -S "SSL - The handshake negotiation failed" \ -S "SSL - Verification of the message MAC failed" +# Note: if the name of this test is changed, then please adjust the corresponding +# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 @@ -8049,6 +8053,8 @@ run_test "ECJPAKE: opaque password client only, working, TLS" \ -S "SSL - The handshake negotiation failed" \ -S "SSL - Verification of the message MAC failed" +# Note: if the name of this test is changed, then please adjust the corresponding +# filtering label in "test_tls1_2_ecjpake_compatibility" (in "all.sh") requires_config_enabled MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index c3b6015a3..3d9a6fd73 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2590,12 +2590,12 @@ int tweak_tls13_certificate_msg_vector_len( ret = ( use_opaque_arg ) ? \ mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : \ mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); \ - TEST_ASSERT( ret == exp_ret_val ) + TEST_EQUAL( ret, exp_ret_val ) #else #define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \ ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, \ pwd_string, pwd_len ); \ - TEST_ASSERT( ret == exp_ret_val ) + TEST_EQUAL( ret, exp_ret_val ) #endif /* END_HEADER */ @@ -6219,13 +6219,12 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) mbedtls_ssl_config_init( &conf ); - TEST_ASSERT( mbedtls_ssl_config_defaults( &conf, + TEST_EQUAL( mbedtls_ssl_config_defaults( &conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) - == 0 ); + MBEDTLS_SSL_PRESET_DEFAULT ), 0 ); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_EQUAL( mbedtls_ssl_setup( &ssl, &conf ), 0 ); /* test with empty password or unitialized password key (depending on use_opaque_arg) */ ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -6242,8 +6241,8 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - TEST_ASSERT( psa_import_key( &attributes, pwd_string, - pwd_len, &pwd_slot ) == PSA_SUCCESS ); + PSA_ASSERT( psa_import_key( &attributes, pwd_string, + pwd_len, &pwd_slot ) ); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ From 70d1fa538a864ee5201e04a3c0f64b4d86e0021b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 7 Dec 2022 16:20:27 +0100 Subject: [PATCH 1146/1574] tls: pake: fix missing return values check Signed-off-by: Valerio Setti --- library/ssl_tls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 810db243d..c5a8d2478 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1908,7 +1908,7 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } - psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, + status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, ssl->handshake->psa_pake_password ); if( status != PSA_SUCCESS ) { @@ -1956,7 +1956,7 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( status != PSA_SUCCESS ) goto error; - psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, + status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, ssl->handshake->psa_pake_password ); if( status != PSA_SUCCESS ) goto error; From ae7fe7ee536580f941b02af2acd81936ee337523 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 7 Dec 2022 17:36:59 +0100 Subject: [PATCH 1147/1574] tls: pake: avoid useless psa_pake_abort in setting opaque password Signed-off-by: Valerio Setti --- library/ssl_tls.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index c5a8d2478..57cfe424e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1945,7 +1945,7 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); if( status != PSA_SUCCESS ) - goto error; + return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) psa_role = PSA_PAKE_ROLE_SERVER; From 3e5d56e7d4ba1c67a1e8f6aea84c189e2fbcad81 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 7 Dec 2022 22:57:54 +0100 Subject: [PATCH 1148/1574] Remove duplicated test cases Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_random.data | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data index c511af533..fe290531a 100644 --- a/tests/suites/test_suite_bignum_random.data +++ b/tests/suites/test_suite_bignum_random.data @@ -233,17 +233,3 @@ mpi_random_values:0:"01000000000000000000000000000000000000000000000000000000000 MPI random legacy=core: 0..2^256+1 mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" - -# The following test cases return MPI_NOT_ACCEPTABLE -# (verified at the time of writing, not enforced at runtime) -MPI random legacy=core: 2^28-1..2^28 (improbable) -mpi_random_values:0x0fffffff:"10000000" - -MPI random legacy=core: 2^29-1..2^29 (improbable) -mpi_random_values:0x1fffffff:"20000000" - -MPI random legacy=core: 2^30-1..2^30 (improbable) -mpi_random_values:0x3fffffff:"40000000" - -MPI random legacy=core: 2^31-1..2^31 (improbable) -mpi_random_values:0x7fffffff:"80000000" From a7f0d7b029382b77ae3ff19ecd0ca1b305b11021 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 7 Dec 2022 13:29:07 +0000 Subject: [PATCH 1149/1574] mbedtls_mpi_core_exp_mod() ouuput may alias input A Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 3 +++ tests/suites/test_suite_bignum_core.function | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/library/bignum_core.h b/library/bignum_core.h index add7fee32..b7af4d0aa 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -517,6 +517,9 @@ size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ) * \brief Perform a modular exponentiation with secret exponent: * X = A^E mod N, where \p A is already in Montgomery form. * + * \p X may be aliased to \p A, but not to \p RR or \p E, even if \p E_limbs == + * \p AN_limbs. + * * \param[out] X The destination MPI, as a little endian array of length * \p AN_limbs. * \param[in] A The base MPI, as a little endian array of length \p AN_limbs. diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index b64127afc..7bf03fb49 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1097,6 +1097,12 @@ void mpi_core_exp_mod( char * input_N, char * input_A, TEST_EQUAL( 0, memcmp( X, Y, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + /* Check when output aliased to input */ + + mbedtls_mpi_core_exp_mod( A, A, N, N_limbs, E, E_limbs, R2, T ); + + TEST_EQUAL( 0, memcmp( X, A, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + exit: mbedtls_free( T ); mbedtls_free( A ); From 6129268fee9ccf7be1dd8bd24b7cf96d45e35cd1 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 8 Dec 2022 09:44:10 +0000 Subject: [PATCH 1150/1574] Bignum: Implement mbedtls_mpi_mod_raw_inv_prime() and tests Fixes #6023. Signed-off-by: Tom Cosgrove --- library/bignum_mod_raw.c | 28 ++++++++ library/bignum_mod_raw.h | 45 ++++++++++++ scripts/mbedtls_dev/bignum_common.py | 4 +- scripts/mbedtls_dev/bignum_data.py | 14 +++- scripts/mbedtls_dev/bignum_mod_raw.py | 31 +++++++++ .../suites/test_suite_bignum_mod_raw.function | 69 +++++++++++++++++++ 6 files changed, 187 insertions(+), 4 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 22e56b7e6..03924d247 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -124,6 +124,34 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 3 */ +size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs( size_t AN_limbs ) +{ + /* mbedtls_mpi_mod_raw_inv_prime() needs a temporary for the exponent, + * which will be the same size as the modulus and input (AN_limbs), + * and additional space to pass to mbedtls_mpi_core_exp_mod(). */ + return( AN_limbs + + mbedtls_mpi_core_exp_mod_working_limbs( AN_limbs, AN_limbs ) ); +} + +void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T ) +{ + /* Inversion by power: g^|G| = 1 => g^(-1) = g^(|G|-1), and + * |G| = N - 1, so we want + * g^(|G|-1) = g^(N - 2) + */ + mbedtls_mpi_uint *Nminus2 = T; + (void) mbedtls_mpi_core_sub_int( Nminus2, N, 2, AN_limbs ); + + mbedtls_mpi_core_exp_mod( X, + A, N, AN_limbs, Nminus2, AN_limbs, + RR, T + AN_limbs ); +} + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index d7b6dd115..698119e19 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -174,6 +174,51 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 3 */ +/** + * \brief Returns the number of limbs of working memory required for + * a call to `mbedtls_mpi_mod_raw_inv_prime()`. + * + * \param AN_limbs The number of limbs in the input `A` and the modulus `N` + * (they must be the same size) that will be given to + * `mbedtls_mpi_mod_raw_inv_prime()`. + * + * \return The number of limbs of working memory required by + * `mbedtls_mpi_mod_raw_inv_prime()`. + */ +size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs( size_t AN_limbs ); + +/** + * \brief Perform fixed-width modular inversion of a Montgomery-form MPI with + * respect to a modulus \p N that must be prime. + * + * \p X may be aliased to \p A, but not to \p N or \p RR. + * + * \param[out] X The modular inverse of \p A with respect to \p N. + * Will be in Montgomery form. + * \param[in] A The number to calculate the modular inverse of. + * Must be in Montgomery form. Must not be 0. + * \param[in] N The modulus, as a little-endian array of length \p AN_limbs. + * Must be prime. + * \param AN_limbs The number of limbs in \p A, \p N and \p RR. + * \param[in] RR The precomputed residue of 2^{2*biL} modulo N, as a little- + * endian array of length \p AN_limbs. + * \param[in,out] T Temporary storage of at least the number of limbs returned + * by `mbedtls_mpi_mod_raw_inv_prime_working_limbs()`. + * Its initial content is unused and its final content is + * indeterminate. + * It must not alias or otherwise overlap any of the other + * parameters. + * It is up to the caller to zeroize \p T when it is no + * longer needed, and before freeing it if it was dynamically + * allocated. + */ +void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T ); + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 3ff8b2f35..0339b1ad1 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -99,6 +99,7 @@ class OperationCommon(test_data_generation.BaseTest): limb_sizes = [32, 64] # type: List[int] arities = [1, 2] arity = 2 + suffix = False # for arity = 1, symbol can be prefix (default) or suffix def __init__(self, val_a: str, val_b: str = "0", bits_in_limb: int = 32) -> None: self.val_a = val_a @@ -170,7 +171,8 @@ class OperationCommon(test_data_generation.BaseTest): """ if not self.case_description: if self.arity == 1: - self.case_description = "{} {:x}".format( + format_string = "{1:x} {0}" if self.suffix else "{0} {1:x}" + self.case_description = format_string.format( self.symbol, self.int_a ) elif self.arity == 2: diff --git a/scripts/mbedtls_dev/bignum_data.py b/scripts/mbedtls_dev/bignum_data.py index e6ed30005..965893320 100644 --- a/scripts/mbedtls_dev/bignum_data.py +++ b/scripts/mbedtls_dev/bignum_data.py @@ -90,8 +90,8 @@ RANDOM_1024_BIT_SEED_4_NO5 = ("53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8" "4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc" "52d32377e78131c1") -# Adding 192 bit and 1024 bit numbers because these are the shortest required -# for ECC and RSA respectively. +# Adding 192 bit and 1024 bit numbers because these are the shortest required +# for ECC and RSA respectively. INPUTS_DEFAULT = [ "0", "1", # corner cases "2", "3", # small primes @@ -110,13 +110,21 @@ INPUTS_DEFAULT = [ # supported for now. MODULI_DEFAULT = [ "53", # safe prime - "45", # non-prime + "45", # non-prime SAFE_PRIME_192_BIT_SEED_1, # safe prime RANDOM_192_BIT_SEED_2_NO4, # not a prime SAFE_PRIME_1024_BIT_SEED_3, # safe prime RANDOM_1024_BIT_SEED_4_NO5, # not a prime ] +# Some functions, e.g. mbedtls_mpi_mod_raw_inv_prime(), only support prime moduli. +ONLY_PRIME_MODULI = [ + "53", # safe prime + "8ac72304057392b5", # 9999999997777777333 (longer, not safe, prime) + SAFE_PRIME_192_BIT_SEED_1, # safe prime + SAFE_PRIME_1024_BIT_SEED_3, # safe prime + ] + def __gen_safe_prime(bits, seed): ''' Generate a safe prime. diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index d05479a00..1a23a60ea 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -18,6 +18,7 @@ from typing import Dict, List from . import test_data_generation from . import bignum_common +from .bignum_data import ONLY_PRIME_MODULI class BignumModRawTarget(test_data_generation.BaseTarget): #pylint: disable=abstract-method, too-few-public-methods @@ -53,6 +54,36 @@ class BignumModRawSub(bignum_common.ModOperationCommon, # BEGIN MERGE SLOT 3 +class BignumModRawInvPrime(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for bignum mpi_mod_raw_inv_prime().""" + moduli = ONLY_PRIME_MODULI + symbol = "^ -1" + test_function = "mpi_mod_raw_inv_prime" + test_name = "mbedtls_mpi_mod_raw_inv_prime (Montgomery form only)" + input_style = "fixed" + arity = 1 + suffix = True + + @property + def is_valid(self) -> bool: + return self.int_a > 0 and self.int_a < self.int_n + + def arguments(self) -> List[str]: + # Input has to be given in Montgomery form + mont_a = self.to_montgomery(self.int_a) + arg_mont_a = self.format_arg('{:x}'.format(mont_a)) + return [bignum_common.quote_str(n) for n in [self.arg_n, + arg_mont_a] + ] + self.result() + + def result(self) -> List[str]: + result = bignum_common.invmod(self.int_a, self.int_n) + if result < 0: + result += self.int_n + mont_result = self.to_montgomery(result) + return [self.format_result(mont_result)] + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index c7decf007..5d23707e4 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -349,6 +349,75 @@ exit: /* BEGIN MERGE SLOT 3 */ +/* BEGIN_CASE */ +void mpi_mod_raw_inv_prime( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + size_t A_limbs, N_limbs, X_limbs; + mbedtls_mpi_uint *Y = NULL; + mbedtls_mpi_uint *T = NULL; + const mbedtls_mpi_uint *R2 = NULL; + + /* Legacy MPIs for computing R2 */ + mbedtls_mpi N_mpi; /* gets set up manually, aliasing N, so no need to free */ + mbedtls_mpi R2_mpi; + mbedtls_mpi_init( &R2_mpi ); + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &N_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + ASSERT_ALLOC( Y, N_limbs ); + + TEST_EQUAL( A_limbs, N_limbs ); + TEST_EQUAL( X_limbs, N_limbs ); + + N_mpi.s = 1; + N_mpi.p = N; + N_mpi.n = N_limbs; + TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &R2_mpi, &N_mpi ) ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &R2_mpi, N_limbs ) ); + R2 = R2_mpi.p; + + size_t working_limbs = mbedtls_mpi_mod_raw_inv_prime_working_limbs( N_limbs ); + + /* No point exactly duplicating the code in mbedtls_mpi_mod_raw_inv_prime_working_limbs() + * to see if the output is correct, but we can check that it's in a + * reasonable range. The current calculation works out as + * `1 + N_limbs * (welem + 4)`, where welem is the number of elements in + * the window (1 << 1 up to 1 << 6). + */ + size_t min_expected_working_limbs = 1 + N_limbs * 5; + size_t max_expected_working_limbs = 1 + N_limbs * 68; + + TEST_LE_U( min_expected_working_limbs, working_limbs ); + TEST_LE_U( working_limbs, max_expected_working_limbs ); + + ASSERT_ALLOC( T, working_limbs ); + + mbedtls_mpi_mod_raw_inv_prime( Y, A, N, N_limbs, R2, T ); + + TEST_EQUAL( 0, memcmp( X, Y, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + + /* Check when output aliased to input */ + + mbedtls_mpi_mod_raw_inv_prime( A, A, N, N_limbs, R2, T ); + + TEST_EQUAL( 0, memcmp( X, A, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + +exit: + mbedtls_free( T ); + mbedtls_free( A ); + mbedtls_free( N ); + mbedtls_free( X ); + mbedtls_free( Y ); + mbedtls_mpi_free( &R2_mpi ); + // R2 doesn't need to be freed as it is only aliasing R2_mpi + // N_mpi doesn't need to be freed as it is only aliasing N +} +/* END_CASE */ + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From 73defe4da0981216bd865617490d3f0cf1077d60 Mon Sep 17 00:00:00 2001 From: Zachary Fleckenstein Date: Thu, 8 Dec 2022 07:28:29 -0500 Subject: [PATCH 1151/1574] Fix typo in `library/entropy.c` Signed-off-by: Zachary Fleckenstein --- library/entropy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/entropy.c b/library/entropy.c index 1e0d9d328..545fd9db8 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -564,7 +564,7 @@ static int mbedtls_entropy_source_self_test_check_bits( const unsigned char *buf } /* - * A test to ensure hat the entropy sources are functioning correctly + * A test to ensure that the entropy sources are functioning correctly * and there is no obvious failure. The test performs the following checks: * - The entropy source is not providing only 0s (all bits unset) or 1s (all * bits set). From b74aa5a2242e9fc96bb19f3b33aae8aa7f47bc5f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 8 Dec 2022 13:43:08 +0000 Subject: [PATCH 1152/1574] Add Changelog for Arm compile fix Signed-off-by: Dave Rodgman --- ChangeLog.d/fix_arm_compile_erorr.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix_arm_compile_erorr.txt diff --git a/ChangeLog.d/fix_arm_compile_erorr.txt b/ChangeLog.d/fix_arm_compile_erorr.txt new file mode 100644 index 000000000..28c1d45e2 --- /dev/null +++ b/ChangeLog.d/fix_arm_compile_erorr.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix a build error when compiling the bignum module for some Arm platforms. + Fixes #6089, #6124, #6217. From 48223bc19e52a058e4b9c1579a042238cd49d3a8 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 8 Dec 2022 14:43:19 +0000 Subject: [PATCH 1153/1574] Bump version to 3.3.0. No changes to .so versions. Signed-off-by: Dave Rodgman --- CMakeLists.txt | 2 +- doxygen/input/doc_mainpage.h | 2 +- doxygen/mbedtls.doxyfile | 2 +- include/mbedtls/build_info.h | 10 +++++----- library/CMakeLists.txt | 6 +++--- tests/suites/test_suite_version.data | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 59a960a8b..337e4db95 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -350,7 +350,7 @@ if(NOT DISABLE_PACKAGE_CONFIG_AND_INSTALL) write_basic_package_version_file( "cmake/MbedTLSConfigVersion.cmake" COMPATIBILITY SameMajorVersion - VERSION 3.2.1) + VERSION 3.3.0) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/cmake/MbedTLSConfig.cmake" diff --git a/doxygen/input/doc_mainpage.h b/doxygen/input/doc_mainpage.h index c05042b87..7c6464fa9 100644 --- a/doxygen/input/doc_mainpage.h +++ b/doxygen/input/doc_mainpage.h @@ -22,7 +22,7 @@ */ /** - * @mainpage mbed TLS v3.2.1 source code documentation + * @mainpage mbed TLS v3.3.0 source code documentation * * This documentation describes the internal structure of mbed TLS. It was * automatically generated from specially formatted comment blocks in diff --git a/doxygen/mbedtls.doxyfile b/doxygen/mbedtls.doxyfile index f722d2817..0c744daaa 100644 --- a/doxygen/mbedtls.doxyfile +++ b/doxygen/mbedtls.doxyfile @@ -1,4 +1,4 @@ -PROJECT_NAME = "mbed TLS v3.2.1" +PROJECT_NAME = "mbed TLS v3.3.0" OUTPUT_DIRECTORY = ../apidoc/ FULL_PATH_NAMES = NO OPTIMIZE_OUTPUT_FOR_C = YES diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 362ce2fd5..049a120ef 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -37,17 +37,17 @@ * Major, Minor, Patchlevel */ #define MBEDTLS_VERSION_MAJOR 3 -#define MBEDTLS_VERSION_MINOR 2 -#define MBEDTLS_VERSION_PATCH 1 +#define MBEDTLS_VERSION_MINOR 3 +#define MBEDTLS_VERSION_PATCH 0 /** * The single version number has the following structure: * MMNNPP00 * Major version | Minor version | Patch version */ -#define MBEDTLS_VERSION_NUMBER 0x03020100 -#define MBEDTLS_VERSION_STRING "3.2.1" -#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 3.2.1" +#define MBEDTLS_VERSION_NUMBER 0x03030000 +#define MBEDTLS_VERSION_STRING "3.3.0" +#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 3.3.0" #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) #define _CRT_SECURE_NO_DEPRECATE 1 diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 8106dab59..d846c496d 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -282,7 +282,7 @@ endif(USE_STATIC_MBEDTLS_LIBRARY) if(USE_SHARED_MBEDTLS_LIBRARY) set(CMAKE_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR}) add_library(${mbedcrypto_target} SHARED ${src_crypto}) - set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.2.1 SOVERSION 12) + set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.3.0 SOVERSION 12) target_link_libraries(${mbedcrypto_target} PUBLIC ${libs}) if(TARGET everest) @@ -290,11 +290,11 @@ if(USE_SHARED_MBEDTLS_LIBRARY) endif() add_library(${mbedx509_target} SHARED ${src_x509}) - set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.2.1 SOVERSION 4) + set_target_properties(${mbedx509_target} PROPERTIES VERSION 3.3.0 SOVERSION 4) target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) add_library(${mbedtls_target} SHARED ${src_tls}) - set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.2.1 SOVERSION 18) + set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.3.0 SOVERSION 18) target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) endif(USE_SHARED_MBEDTLS_LIBRARY) diff --git a/tests/suites/test_suite_version.data b/tests/suites/test_suite_version.data index f131029d5..ea6fc62f9 100644 --- a/tests/suites/test_suite_version.data +++ b/tests/suites/test_suite_version.data @@ -1,8 +1,8 @@ Check compile time library version -check_compiletime_version:"3.2.1" +check_compiletime_version:"3.3.0" Check runtime library version -check_runtime_version:"3.2.1" +check_runtime_version:"3.3.0" Check for MBEDTLS_VERSION_C check_feature:"MBEDTLS_VERSION_C":0 From 69591e9207b39ea29ff9994c0dfa70e476aa5704 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 8 Dec 2022 14:59:54 +0000 Subject: [PATCH 1154/1574] Assemble changelog Signed-off-by: Dave Rodgman --- ChangeLog | 206 ++++++++++++++++++ ChangeLog.d/LMS.txt | 11 - .../add-rsa-pss-rsae-support-for-tls12.txt | 8 - ..._mul-fix-x86-pic-compilation-for-gcc-4.txt | 4 - .../cert_write-set-extended-key-usages.txt | 6 - ChangeLog.d/driver-only-hashes.txt | 19 -- ChangeLog.d/dtls-connection-id.txt | 17 -- ChangeLog.d/ecdsa-verify-fixes.txt | 5 - ChangeLog.d/ecjpake-in-tls.txt | 5 - ChangeLog.d/ecjpake_to_pms.txt | 5 - ...-query_compile_time_config-to-psa_want.txt | 2 - ChangeLog.d/fix-aes-shallow-copying.txt | 2 - ...-ctr-drbg-may-free-invalid-aes-context.txt | 4 - ChangeLog.d/fix-in-cid-buffer-size.txt | 4 - ...se-success-in-mbedtls_cipher_check_tag.txt | 5 - ChangeLog.d/fix-tls12server-sent-sigalgs.txt | 5 - ChangeLog.d/fix_aead_psa_driver_build.txt | 3 - ChangeLog.d/fix_arm_compile_erorr.txt | 3 - ...d_error_for_mbedtls_deprecated_removed.txt | 3 - ...ild_tls1_2_with_single_encryption_type.txt | 3 - ChangeLog.d/fix_cmake_gen_files.txt | 4 - ChangeLog.d/fix_cmake_using_iar_toolchain.txt | 3 - .../fix_dh_genprime_error_reporting.txt | 4 - ChangeLog.d/fix_hard_link_across_drives.txt | 3 - .../fix_psa_crypto_cipher_h_include.txt | 4 - ...on_fail_when_hostname_is_not_localhost.txt | 4 - ChangeLog.d/fix_x509_get_name_mem_leak.txt | 4 - ChangeLog.d/fix_x509_info_hwmodulename.txt | 5 - ChangeLog.d/fix_zeroization.txt | 3 - ChangeLog.d/mbedtls_asn1_type_free.txt | 8 - ChangeLog.d/move-ssl-modules.txt | 3 - ChangeLog.d/mpi-add-0-ub.txt | 4 - ChangeLog.d/mpi-most-negative-sint.txt | 4 - ChangeLog.d/muladdc_microblaze.txt | 3 - ChangeLog.d/negative-zero-from-add.txt | 6 - ChangeLog.d/nonversioned-library-soname.txt | 5 - ChangeLog.d/platform-setbuf.txt | 3 - ChangeLog.d/psa-ecb-ub.txt | 3 - ChangeLog.d/psa_crypto_code_gen_1_1.txt | 13 -- ChangeLog.d/psa_crypto_pake.txt | 4 - ...a_driver_wrapper_for_raw_key_agreement.txt | 5 - ChangeLog.d/psa_rsa_needs_pk.txt | 5 - .../rsa-fix-priviliged-side-channel.txt | 10 - ChangeLog.d/tls13-misc.txt | 8 - ChangeLog.d/tls13_sig_alg_selection.txt | 3 - ChangeLog.d/x509-broken-symlink-handling.txt | 5 - 46 files changed, 206 insertions(+), 240 deletions(-) delete mode 100644 ChangeLog.d/LMS.txt delete mode 100644 ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt delete mode 100644 ChangeLog.d/bn_mul-fix-x86-pic-compilation-for-gcc-4.txt delete mode 100644 ChangeLog.d/cert_write-set-extended-key-usages.txt delete mode 100644 ChangeLog.d/driver-only-hashes.txt delete mode 100644 ChangeLog.d/dtls-connection-id.txt delete mode 100644 ChangeLog.d/ecdsa-verify-fixes.txt delete mode 100644 ChangeLog.d/ecjpake-in-tls.txt delete mode 100644 ChangeLog.d/ecjpake_to_pms.txt delete mode 100644 ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt delete mode 100644 ChangeLog.d/fix-aes-shallow-copying.txt delete mode 100644 ChangeLog.d/fix-ctr-drbg-may-free-invalid-aes-context.txt delete mode 100644 ChangeLog.d/fix-in-cid-buffer-size.txt delete mode 100644 ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt delete mode 100644 ChangeLog.d/fix-tls12server-sent-sigalgs.txt delete mode 100644 ChangeLog.d/fix_aead_psa_driver_build.txt delete mode 100644 ChangeLog.d/fix_arm_compile_erorr.txt delete mode 100644 ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt delete mode 100644 ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt delete mode 100644 ChangeLog.d/fix_cmake_gen_files.txt delete mode 100644 ChangeLog.d/fix_cmake_using_iar_toolchain.txt delete mode 100644 ChangeLog.d/fix_dh_genprime_error_reporting.txt delete mode 100644 ChangeLog.d/fix_hard_link_across_drives.txt delete mode 100644 ChangeLog.d/fix_psa_crypto_cipher_h_include.txt delete mode 100644 ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt delete mode 100644 ChangeLog.d/fix_x509_get_name_mem_leak.txt delete mode 100644 ChangeLog.d/fix_x509_info_hwmodulename.txt delete mode 100644 ChangeLog.d/fix_zeroization.txt delete mode 100644 ChangeLog.d/mbedtls_asn1_type_free.txt delete mode 100644 ChangeLog.d/move-ssl-modules.txt delete mode 100644 ChangeLog.d/mpi-add-0-ub.txt delete mode 100644 ChangeLog.d/mpi-most-negative-sint.txt delete mode 100644 ChangeLog.d/muladdc_microblaze.txt delete mode 100644 ChangeLog.d/negative-zero-from-add.txt delete mode 100644 ChangeLog.d/nonversioned-library-soname.txt delete mode 100644 ChangeLog.d/platform-setbuf.txt delete mode 100644 ChangeLog.d/psa-ecb-ub.txt delete mode 100644 ChangeLog.d/psa_crypto_code_gen_1_1.txt delete mode 100644 ChangeLog.d/psa_crypto_pake.txt delete mode 100644 ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt delete mode 100644 ChangeLog.d/psa_rsa_needs_pk.txt delete mode 100644 ChangeLog.d/rsa-fix-priviliged-side-channel.txt delete mode 100644 ChangeLog.d/tls13-misc.txt delete mode 100644 ChangeLog.d/tls13_sig_alg_selection.txt delete mode 100644 ChangeLog.d/x509-broken-symlink-handling.txt diff --git a/ChangeLog b/ChangeLog index 80b86175f..d79a0506c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,211 @@ Mbed TLS ChangeLog (Sorted per branch, date) += Mbed TLS 3.3.0 branch released 2022-12-14 + +API changes + * Add an ad-hoc key derivation function handling EC J-PAKE to PMS + calculation that can be used to derive the session secret in TLS 1.2, + as described in draft-cragie-tls-ecjpake-01. This can be achieved by + using PSA_ALG_TLS12_ECJPAKE_TO_PMS as the key derivation algorithm. + +Default behavior changes + * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 + of the IETF draft, and was marked experimental and disabled by default. + It is now no longer experimental, and implements the final version from + RFC 9146, which is not interoperable with the draft-05 version. + If you need to communicate with peers that use earlier versions of + Mbed TLS, then you need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT + to 1, but then you won't be able to communicate with peers that use the + standard (non-draft) version. + If you need to interoperate with both classes of peers with the + same build of Mbed TLS, please let us know about your situation on the + mailing list or GitHub. + +Requirement changes + * When building with PSA drivers using generate_driver_wrappers.py, or + when building the library from the development branch rather than + from a release, the Python module jsonschema is now necessary, in + addition to jinja2. The official list of required Python modules is + maintained in scripts/basic.requirements.txt and may change again + in the future. + +New deprecations + * Deprecate mbedtls_asn1_free_named_data(). + Use mbedtls_asn1_free_named_data_list() + or mbedtls_asn1_free_named_data_list_shallow(). + +Features + * Support rsa_pss_rsae_* signature algorithms in TLS 1.2. + * make: enable building unversioned shared library, with e.g.: + "SHARED=1 SOEXT_TLS=so SOEXT_X509=so SOEXT_CRYPTO=so make lib" + resulting in library names like "libmbedtls.so" rather than + "libmbedcrypto.so.11". + * Expose the EC J-PAKE functionality through the Draft PSA PAKE Crypto API. + Only the ECC primitive with secp256r1 curve and SHA-256 hash algorithm + are supported in this implementation. + * Some modules can now use PSA drivers for hashes, including with no + built-in implementation present, but only in some configurations. + - RSA OAEP and PSS (PKCS#1 v2.1), PKCS5, PKCS12 and EC J-PAKE now use + hashes from PSA when (and only when) MBEDTLS_MD_C is disabled. + - PEM parsing of encrypted files now uses MD-5 from PSA when (and only + when) MBEDTLS_MD5_C is disabled. + See the documentation of the corresponding macros in mbedtls_config.h for + details. + Note that some modules are not able to use hashes from PSA yet, including + the entropy module. As a consequence, for now the only way to build with + all hashes only provided by drivers (no built-in hash) is to use + MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. + * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 now + properly negotiate/accept hashes based on their availability in PSA. + As a consequence, they now work in configurations where the built-in + implementations of (some) hashes are excluded and those hashes are only + provided by PSA drivers. (See previous entry for limitation on RSA-PSS + though: that module only use hashes from PSA when MBEDTLS_MD_C is off). + * Add support for opaque keys as the private keys associated to certificates + for authentication in TLS 1.3. + * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme. + Signature verification is production-ready, but generation is for testing + purposes only. This currently only supports one parameter set + (LMS_SHA256_M32_H10), meaning that each private key can be used to sign + 1024 messages. As such, it is not intended for use in TLS, but instead + for verification of assets transmitted over an insecure channel, + particularly firmware images. + * Add the LM-OTS post-quantum-safe one-time signature scheme, which is + required for LMS. This can be used independently, but each key can only + be used to sign one message so is impractical for most circumstances. + * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys. + The pre-shared keys can be provisioned externally or via the ticket + mechanism (session resumption). + The ticket mechanism is supported when the configuration option + MBEDTLS_SSL_SESSION_TICKETS is enabled. + New options MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED + control the support for the three possible TLS 1.3 key exchange modes. + * cert_write: support for setting extended key usage attributes. A + corresponding new public API call has been added in the library, + mbedtls_x509write_crt_set_ext_key_usage(). + * cert_write: support for writing certificate files in either PEM + or DER format. + * The PSA driver wrapper generator generate_driver_wrappers.py now + supports a subset of the driver description language, including + the following entry points: import_key, export_key, export_public_key, + get_builtin_key, copy_key. + * The new functions mbedtls_asn1_free_named_data_list() and + mbedtls_asn1_free_named_data_list_shallow() simplify the management + of memory in named data lists in X.509 structures. + * The TLS 1.2 EC J-PAKE key exchange can now use the PSA Crypto API. + Additional PSA key slots will be allocated in the process of such key + exchange for builds that enable MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED and + MBEDTLS_USE_PSA_CRYPTO. + * Add support for DTLS Connection ID as defined by RFC 9146, controlled by + MBEDTLS_SSL_DTLS_CONNECTION_ID (enabled by default) and configured with + mbedtls_ssl_set_cid(). + * Add a driver dispatch layer for raw key agreement, enabling alternative + implementations of raw key agreement through the key_agreement driver + entry point. This entry point is specified in the proposed PSA driver + interface, but had not yet been implemented. + +Security + * Fix potential heap buffer overread and overwrite in DTLS if + MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and + MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX. + * An adversary with access to precise enough information about memory + accesses (typically, an untrusted operating system attacking a secure + enclave) could recover an RSA private key after observing the victim + performing a single private-key operation if the window size used for the + exponentiation was 3 or smaller. Found and reported by Zili KOU, + Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks + and Defenses of the Sliding Window Algorithm in TEEs" - Design, Automation + and Test in Europe 2023. + +Bugfix + * Refactor mbedtls_aes_context to support shallow-copying. Fixes #2147. + * Fix an issue with in-tree CMake builds in releases with GEN_FILES + turned off: if a shipped file was missing from the working directory, + it could be turned into a symbolic link to itself. + * Fix a long-standing build failure when building x86 PIC code with old + gcc (4.x). The code will be slower, but will compile. We do however + recommend upgrading to a more recent compiler instead. Fixes #1910. + * Fix support for little-endian Microblaze when MBEDTLS_HAVE_ASM is defined. + Contributed by Kazuyuki Kimura to fix #2020. + * Use double quotes to include private header file psa_crypto_cipher.h. + Fixes 'file not found with include' error + when building with Xcode. + * Fix handling of broken symlinks when loading certificates using + mbedtls_x509_crt_parse_path(). Instead of returning an error as soon as a + broken link is encountered, skip the broken link and continue parsing + other certificate files. Contributed by Eduardo Silva in #2602. + * Fix an interoperability failure between an Mbed TLS client with both + TLS 1.2 and TLS 1.3 support, and a TLS 1.2 server that supports + rsa_pss_rsae_* signature algorithms. This failed because Mbed TLS + advertised support for PSS in both TLS 1.2 and 1.3, but only + actually supported PSS in TLS 1.3. + * Fix a compilation error when using CMake with an IAR toolchain. + Fixes #5964. + * Fix a build error due to a missing prototype warning when + MBEDTLS_DEPRECATED_REMOVED is enabled. + * Fix mbedtls_ctr_drbg_free() on an initialized but unseeded context. When + MBEDTLS_AES_ALT is enabled, it could call mbedtls_aes_free() on an + uninitialized context. + * Fix a build issue on Windows using CMake where the source and build + directories could not be on different drives. Fixes #5751. + * Fix bugs and missing dependencies when building and testing + configurations with only one encryption type enabled in TLS 1.2. + * Provide the missing definition of mbedtls_setbuf() in some configurations + with MBEDTLS_PLATFORM_C disabled. Fixes #6118, #6196. + * Fix compilation errors when trying to build with + PSA drivers for AEAD (GCM, CCM, Chacha20-Poly1305). + * Fix memory leak in ssl_parse_certificate_request() caused by + mbedtls_x509_get_name() not freeing allocated objects in case of error. + Change mbedtls_x509_get_name() to clean up allocated objects on error. + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. + * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not + MBEDTLS_PK_PARSE_C. Fixes #6409. + * Fix ECDSA verification, where it was not always validating the + public key. This bug meant that it was possible to verify a + signature with an invalid public key, in some cases. Reported by + Guido Vranken using Cryptofuzz in #4420. + * Fix a possible null pointer dereference if a memory allocation fails + in TLS PRF code. Reported by Michael Madsen in #6516. + * Fix TLS 1.3 session resumption. Fixes #6488. + * Add a configuration check to exclude optional client authentication + in TLS 1.3 (where it is forbidden). + * Fix a bug in which mbedtls_x509_crt_info() would produce non-printable + bytes when parsing certificates containing a binary RFC 4108 + HardwareModuleName as a Subject Alternative Name extension. Hardware + serial numbers are now rendered in hex format. Fixes #6262. + * Fix bug in error reporting in dh_genprime.c where upon failure, + the error code returned by mbedtls_mpi_write_file() is overwritten + and therefore not printed. + * In the bignum module, operations of the form (-A) - (+A) or (-A) - (-A) + with A > 0 created an unintended representation of the value 0 which was + not processed correctly by some bignum operations. Fix this. This had no + consequence on cryptography code, but might affect applications that call + bignum directly and use negative numbers. + * Fix a bug whereby the list of signature algorithms sent as part of + the TLS 1.2 server certificate request would get corrupted, meaning the + first algorithm would not get sent and an entry consisting of two random + bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. + * Fix undefined behavior (typically harmless in practice) of + mbedtls_mpi_add_mpi(), mbedtls_mpi_add_abs() and mbedtls_mpi_add_int() + when both operands are 0 and the left operand is represented with 0 limbs. + * Fix undefined behavior (typically harmless in practice) when some bignum + functions receive the most negative value of mbedtls_mpi_sint. Credit + to OSS-Fuzz. Fixes #6597. + * Fix undefined behavior (typically harmless in practice) in PSA ECB + encryption and decryption. + * Move some SSL-specific code out of libmbedcrypto where it had been placed + accidentally. + * Fix a build error when compiling the bignum module for some Arm platforms. + Fixes #6089, #6124, #6217. + +Changes + * Add the ability to query PSA_WANT_xxx macros to query_compile_time_config. + * Calling AEAD tag-specific functions for non-AEAD algorithms (which + should not be done - they are documented for use only by AES-GCM and + ChaCha20+Poly1305) now returns MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE + instead of success (0). + = Mbed TLS 3.2.1 branch released 2022-07-12 Bugfix diff --git a/ChangeLog.d/LMS.txt b/ChangeLog.d/LMS.txt deleted file mode 100644 index 785bfcf84..000000000 --- a/ChangeLog.d/LMS.txt +++ /dev/null @@ -1,11 +0,0 @@ -Features - * Add the LMS post-quantum-safe stateful-hash asymmetric signature scheme. - Signature verification is production-ready, but generation is for testing - purposes only. This currently only supports one parameter set - (LMS_SHA256_M32_H10), meaning that each private key can be used to sign - 1024 messages. As such, it is not intended for use in TLS, but instead - for verification of assets transmitted over an insecure channel, - particularly firmware images. - * Add the LM-OTS post-quantum-safe one-time signature scheme, which is - required for LMS. This can be used independently, but each key can only - be used to sign one message so is impractical for most circumstances. diff --git a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt b/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt deleted file mode 100644 index 0d409688e..000000000 --- a/ChangeLog.d/add-rsa-pss-rsae-support-for-tls12.txt +++ /dev/null @@ -1,8 +0,0 @@ -Features - * Support rsa_pss_rsae_* signature algorithms in TLS 1.2. -Bugfix - * Fix an interoperability failure between an Mbed TLS client with both - TLS 1.2 and TLS 1.3 support, and a TLS 1.2 server that supports - rsa_pss_rsae_* signature algorithms. This failed because Mbed TLS - advertised support for PSS in both TLS 1.2 and 1.3, but only - actually supported PSS in TLS 1.3. diff --git a/ChangeLog.d/bn_mul-fix-x86-pic-compilation-for-gcc-4.txt b/ChangeLog.d/bn_mul-fix-x86-pic-compilation-for-gcc-4.txt deleted file mode 100644 index 1d59c2277..000000000 --- a/ChangeLog.d/bn_mul-fix-x86-pic-compilation-for-gcc-4.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix a long-standing build failure when building x86 PIC code with old - gcc (4.x). The code will be slower, but will compile. We do however - recommend upgrading to a more recent compiler instead. Fixes #1910. diff --git a/ChangeLog.d/cert_write-set-extended-key-usages.txt b/ChangeLog.d/cert_write-set-extended-key-usages.txt deleted file mode 100644 index 18b7b040d..000000000 --- a/ChangeLog.d/cert_write-set-extended-key-usages.txt +++ /dev/null @@ -1,6 +0,0 @@ -Features - * cert_write: support for setting extended key usage attributes. A - corresponding new public API call has been added in the library, - mbedtls_x509write_crt_set_ext_key_usage(). - * cert_write: support for writing certificate files in either PEM - or DER format. diff --git a/ChangeLog.d/driver-only-hashes.txt b/ChangeLog.d/driver-only-hashes.txt deleted file mode 100644 index 6ccd199ba..000000000 --- a/ChangeLog.d/driver-only-hashes.txt +++ /dev/null @@ -1,19 +0,0 @@ -Features - * Some modules can now use PSA drivers for hashes, including with no - built-in implementation present, but only in some configurations. - - RSA OAEP and PSS (PKCS#1 v2.1), PKCS5, PKCS12 and EC J-PAKE now use - hashes from PSA when (and only when) MBEDTLS_MD_C is disabled. - - PEM parsing of encrypted files now uses MD-5 from PSA when (and only - when) MBEDTLS_MD5_C is disabled. - See the documentation of the corresponding macros in mbedtls_config.h for - details. - Note that some modules are not able to use hashes from PSA yet, including - the entropy module. As a consequence, for now the only way to build with - all hashes only provided by drivers (no built-in hash) is to use - MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG. - * When MBEDTLS_USE_PSA_CRYPTO is enabled, X.509, TLS 1.2 and TLS 1.3 now - properly negotiate/accept hashes based on their availability in PSA. - As a consequence, they now work in configurations where the built-in - implementations of (some) hashes are excluded and those hashes are only - provided by PSA drivers. (See previous entry for limitation on RSA-PSS - though: that module only use hashes from PSA when MBEDTLS_MD_C is off). diff --git a/ChangeLog.d/dtls-connection-id.txt b/ChangeLog.d/dtls-connection-id.txt deleted file mode 100644 index 840f837d8..000000000 --- a/ChangeLog.d/dtls-connection-id.txt +++ /dev/null @@ -1,17 +0,0 @@ -Features - * Add support for DTLS Connection ID as defined by RFC 9146, controlled by - MBEDTLS_SSL_DTLS_CONNECTION_ID (enabled by default) and configured with - mbedtls_ssl_set_cid(). - -Default behavior changes - * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 - of the IETF draft, and was marked experimental and disabled by default. - It is now no longer experimental, and implements the final version from - RFC 9146, which is not interoperable with the draft-05 version. - If you need to communicate with peers that use earlier versions of - Mbed TLS, then you need to define MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT - to 1, but then you won't be able to communicate with peers that use the - standard (non-draft) version. - If you need to interoperate with both classes of peers with the - same build of Mbed TLS, please let us know about your situation on the - mailing list or GitHub. diff --git a/ChangeLog.d/ecdsa-verify-fixes.txt b/ChangeLog.d/ecdsa-verify-fixes.txt deleted file mode 100644 index b41b0461a..000000000 --- a/ChangeLog.d/ecdsa-verify-fixes.txt +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix - * Fix ECDSA verification, where it was not always validating the - public key. This bug meant that it was possible to verify a - signature with an invalid public key, in some cases. Reported by - Guido Vranken using Cryptofuzz in #4420. diff --git a/ChangeLog.d/ecjpake-in-tls.txt b/ChangeLog.d/ecjpake-in-tls.txt deleted file mode 100644 index b84caab86..000000000 --- a/ChangeLog.d/ecjpake-in-tls.txt +++ /dev/null @@ -1,5 +0,0 @@ -Features - * The TLS 1.2 EC J-PAKE key exchange can now use the PSA Crypto API. - Additional PSA key slots will be allocated in the process of such key - exchange for builds that enable MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED and - MBEDTLS_USE_PSA_CRYPTO. diff --git a/ChangeLog.d/ecjpake_to_pms.txt b/ChangeLog.d/ecjpake_to_pms.txt deleted file mode 100644 index 4dd2075de..000000000 --- a/ChangeLog.d/ecjpake_to_pms.txt +++ /dev/null @@ -1,5 +0,0 @@ -API changes - * Add an ad-hoc key derivation function handling ECJPAKE to PMS - calculation that can be used to derive the session secret in TLS 1.2, - as described in draft-cragie-tls-ecjpake-01. This can be achieved by - using PSA_ALG_TLS12_ECJPAKE_TO_PMS as the key derivation algorithm. diff --git a/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt b/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt deleted file mode 100644 index 99b2ec4ee..000000000 --- a/ChangeLog.d/extend-query_compile_time_config-to-psa_want.txt +++ /dev/null @@ -1,2 +0,0 @@ -Changes - * Add the ability to query PSA_WANT_xxx macros to query_compile_time_config. diff --git a/ChangeLog.d/fix-aes-shallow-copying.txt b/ChangeLog.d/fix-aes-shallow-copying.txt deleted file mode 100644 index 0c119d628..000000000 --- a/ChangeLog.d/fix-aes-shallow-copying.txt +++ /dev/null @@ -1,2 +0,0 @@ -Bugfix - * Refactor mbedtls_aes_context to support shallow-copying. Fixes #2147. diff --git a/ChangeLog.d/fix-ctr-drbg-may-free-invalid-aes-context.txt b/ChangeLog.d/fix-ctr-drbg-may-free-invalid-aes-context.txt deleted file mode 100644 index fe62c28ed..000000000 --- a/ChangeLog.d/fix-ctr-drbg-may-free-invalid-aes-context.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix mbedtls_ctr_drbg_free() on an initialized but unseeded context. When - MBEDTLS_AES_ALT is enabled, it could call mbedtls_aes_free() on an - uninitialized context. diff --git a/ChangeLog.d/fix-in-cid-buffer-size.txt b/ChangeLog.d/fix-in-cid-buffer-size.txt deleted file mode 100644 index 8a6c85023..000000000 --- a/ChangeLog.d/fix-in-cid-buffer-size.txt +++ /dev/null @@ -1,4 +0,0 @@ -Security - * Fix potential heap buffer overread and overwrite in DTLS if - MBEDTLS_SSL_DTLS_CONNECTION_ID is enabled and - MBEDTLS_SSL_CID_IN_LEN_MAX > 2 * MBEDTLS_SSL_CID_OUT_LEN_MAX. diff --git a/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt b/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt deleted file mode 100644 index 1f9e0aa35..000000000 --- a/ChangeLog.d/fix-possible-false-success-in-mbedtls_cipher_check_tag.txt +++ /dev/null @@ -1,5 +0,0 @@ -Changes - * Calling AEAD tag-specific functions for non-AEAD algorithms (which - should not be done - they are documented for use only by AES-GCM and - ChaCha20+Poly1305) now returns MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE - instead of success (0). diff --git a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt b/ChangeLog.d/fix-tls12server-sent-sigalgs.txt deleted file mode 100644 index b74c6ec20..000000000 --- a/ChangeLog.d/fix-tls12server-sent-sigalgs.txt +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix - * Fix a bug whereby the list of signature algorithms sent as part of - the TLS 1.2 server certificate request would get corrupted, meaning the - first algorithm would not get sent and an entry consisting of two random - bytes would be sent instead. Found by Serban Bejan and Dudek Sebastian. diff --git a/ChangeLog.d/fix_aead_psa_driver_build.txt b/ChangeLog.d/fix_aead_psa_driver_build.txt deleted file mode 100644 index a6d11d38d..000000000 --- a/ChangeLog.d/fix_aead_psa_driver_build.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix compilation errors when trying to build with - PSA drivers for AEAD (GCM, CCM, Chacha20-Poly1305). diff --git a/ChangeLog.d/fix_arm_compile_erorr.txt b/ChangeLog.d/fix_arm_compile_erorr.txt deleted file mode 100644 index 28c1d45e2..000000000 --- a/ChangeLog.d/fix_arm_compile_erorr.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix a build error when compiling the bignum module for some Arm platforms. - Fixes #6089, #6124, #6217. diff --git a/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt b/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt deleted file mode 100644 index f0fa00046..000000000 --- a/ChangeLog.d/fix_build_error_for_mbedtls_deprecated_removed.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix a build error due to a missing prototype warning when - MBEDTLS_DEPRECATED_REMOVED is enabled. diff --git a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt b/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt deleted file mode 100644 index c7d269142..000000000 --- a/ChangeLog.d/fix_build_tls1_2_with_single_encryption_type.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix bugs and missing dependencies when building and testing - configurations with only one encryption type enabled in TLS 1.2. diff --git a/ChangeLog.d/fix_cmake_gen_files.txt b/ChangeLog.d/fix_cmake_gen_files.txt deleted file mode 100644 index cdec6e8a6..000000000 --- a/ChangeLog.d/fix_cmake_gen_files.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix an issue with in-tree CMake builds in releases with GEN_FILES - turned off: if a shipped file was missing from the working directory, - it could be turned into a symbolic link to itself. diff --git a/ChangeLog.d/fix_cmake_using_iar_toolchain.txt b/ChangeLog.d/fix_cmake_using_iar_toolchain.txt deleted file mode 100644 index 9ec6e0d6b..000000000 --- a/ChangeLog.d/fix_cmake_using_iar_toolchain.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix a compilation error when using CMake with an IAR toolchain. - Fixes #5964. diff --git a/ChangeLog.d/fix_dh_genprime_error_reporting.txt b/ChangeLog.d/fix_dh_genprime_error_reporting.txt deleted file mode 100644 index 1c98947f3..000000000 --- a/ChangeLog.d/fix_dh_genprime_error_reporting.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix bug in error reporting in dh_genprime.c where upon failure, - the error code returned by mbedtls_mpi_write_file() is overwritten - and therefore not printed. diff --git a/ChangeLog.d/fix_hard_link_across_drives.txt b/ChangeLog.d/fix_hard_link_across_drives.txt deleted file mode 100644 index 46d05c0cf..000000000 --- a/ChangeLog.d/fix_hard_link_across_drives.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix a build issue on Windows using CMake where the source and build - directories could not be on different drives. Fixes #5751. diff --git a/ChangeLog.d/fix_psa_crypto_cipher_h_include.txt b/ChangeLog.d/fix_psa_crypto_cipher_h_include.txt deleted file mode 100644 index bf2e65dd4..000000000 --- a/ChangeLog.d/fix_psa_crypto_cipher_h_include.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Use double quotes to include private header file psa_crypto_cipher.h. - Fixes 'file not found with include' error - when building with Xcode. diff --git a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt b/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt deleted file mode 100644 index 9f5c6499d..000000000 --- a/ChangeLog.d/fix_tls13_session_resumption_fail_when_hostname_is_not_localhost.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix TLS 1.3 session resumption. Fixes #6488. - * Add a configuration check to exclude optional client authentication - in TLS 1.3 (where it is forbidden). diff --git a/ChangeLog.d/fix_x509_get_name_mem_leak.txt b/ChangeLog.d/fix_x509_get_name_mem_leak.txt deleted file mode 100644 index 358d1afa7..000000000 --- a/ChangeLog.d/fix_x509_get_name_mem_leak.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix memory leak in ssl_parse_certificate_request() caused by - mbedtls_x509_get_name() not freeing allocated objects in case of error. - Change mbedtls_x509_get_name() to clean up allocated objects on error. diff --git a/ChangeLog.d/fix_x509_info_hwmodulename.txt b/ChangeLog.d/fix_x509_info_hwmodulename.txt deleted file mode 100644 index 8b227cec3..000000000 --- a/ChangeLog.d/fix_x509_info_hwmodulename.txt +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix - * Fix a bug in which mbedtls_x509_crt_info() would produce non-printable - bytes when parsing certificates containing a binary RFC 4108 - HardwareModuleName as a Subject Alternative Name extension. Hardware - serial numbers are now rendered in hex format. Fixes #6262. diff --git a/ChangeLog.d/fix_zeroization.txt b/ChangeLog.d/fix_zeroization.txt deleted file mode 100644 index 8b00dcc98..000000000 --- a/ChangeLog.d/fix_zeroization.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix a possible null pointer dereference if a memory allocation fails - in TLS PRF code. Reported by Michael Madsen in #6516. diff --git a/ChangeLog.d/mbedtls_asn1_type_free.txt b/ChangeLog.d/mbedtls_asn1_type_free.txt deleted file mode 100644 index 3459bbe2d..000000000 --- a/ChangeLog.d/mbedtls_asn1_type_free.txt +++ /dev/null @@ -1,8 +0,0 @@ -Features - * The new functions mbedtls_asn1_free_named_data_list() and - mbedtls_asn1_free_named_data_list_shallow() simplify the management - of memory in named data lists in X.509 structures. -New deprecations - * Deprecate mbedtls_asn1_free_named_data(). - Use mbedtls_asn1_free_named_data_list() - or mbedtls_asn1_free_named_data_list_shallow(). diff --git a/ChangeLog.d/move-ssl-modules.txt b/ChangeLog.d/move-ssl-modules.txt deleted file mode 100644 index f00e5ad83..000000000 --- a/ChangeLog.d/move-ssl-modules.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Move some SSL-specific code out of libmbedcrypto where it had been placed - accidentally. diff --git a/ChangeLog.d/mpi-add-0-ub.txt b/ChangeLog.d/mpi-add-0-ub.txt deleted file mode 100644 index 9f131a430..000000000 --- a/ChangeLog.d/mpi-add-0-ub.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix undefined behavior (typically harmless in practice) of - mbedtls_mpi_add_mpi(), mbedtls_mpi_add_abs() and mbedtls_mpi_add_int() - when both operands are 0 and the left operand is represented with 0 limbs. diff --git a/ChangeLog.d/mpi-most-negative-sint.txt b/ChangeLog.d/mpi-most-negative-sint.txt deleted file mode 100644 index 5e775c482..000000000 --- a/ChangeLog.d/mpi-most-negative-sint.txt +++ /dev/null @@ -1,4 +0,0 @@ -Bugfix - * Fix undefined behavior (typically harmless in practice) when some bignum - functions receive the most negative value of mbedtls_mpi_sint. Credit - to OSS-Fuzz. Fixes #6597. diff --git a/ChangeLog.d/muladdc_microblaze.txt b/ChangeLog.d/muladdc_microblaze.txt deleted file mode 100644 index 70fdff020..000000000 --- a/ChangeLog.d/muladdc_microblaze.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix support for little-endian Microblaze when MBEDTLS_HAVE_ASM is defined. - Contributed by Kazuyuki Kimura to fix #2020. diff --git a/ChangeLog.d/negative-zero-from-add.txt b/ChangeLog.d/negative-zero-from-add.txt deleted file mode 100644 index 107d858d3..000000000 --- a/ChangeLog.d/negative-zero-from-add.txt +++ /dev/null @@ -1,6 +0,0 @@ -Bugfix - * In the bignum module, operations of the form (-A) - (+A) or (-A) - (-A) - with A > 0 created an unintended representation of the value 0 which was - not processed correctly by some bignum operations. Fix this. This had no - consequence on cryptography code, but might affect applications that call - bignum directly and use negative numbers. diff --git a/ChangeLog.d/nonversioned-library-soname.txt b/ChangeLog.d/nonversioned-library-soname.txt deleted file mode 100644 index 8d83a2d6d..000000000 --- a/ChangeLog.d/nonversioned-library-soname.txt +++ /dev/null @@ -1,5 +0,0 @@ -Features - * make: enable building unversioned shared library, with e.g.: - "SHARED=1 SOEXT_TLS=so SOEXT_X509=so SOEXT_CRYPTO=so make lib" - resulting in library names like "libmbedtls.so" rather than - "libmbedcrypto.so.11". diff --git a/ChangeLog.d/platform-setbuf.txt b/ChangeLog.d/platform-setbuf.txt deleted file mode 100644 index 844f70cf2..000000000 --- a/ChangeLog.d/platform-setbuf.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Provide the missing definition of mbedtls_setbuf() in some configurations - with MBEDTLS_PLATFORM_C disabled. Fixes #6118, #6196. diff --git a/ChangeLog.d/psa-ecb-ub.txt b/ChangeLog.d/psa-ecb-ub.txt deleted file mode 100644 index 9d725ac70..000000000 --- a/ChangeLog.d/psa-ecb-ub.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bugfix - * Fix undefined behavior (typically harmless in practice) in PSA ECB - encryption and decryption. diff --git a/ChangeLog.d/psa_crypto_code_gen_1_1.txt b/ChangeLog.d/psa_crypto_code_gen_1_1.txt deleted file mode 100644 index e10a81c9a..000000000 --- a/ChangeLog.d/psa_crypto_code_gen_1_1.txt +++ /dev/null @@ -1,13 +0,0 @@ -Features - * The PSA driver wrapper generator generate_driver_wrappers.py now - supports a subset of the driver description language, including - the following entry points: import_key, export_key, export_public_key, - get_builtin_key, copy_key. - -Requirement changes - * When building with PSA drivers using generate_driver_wrappers.py, or - when building the library from the development branch rather than - from a release, the Python module jsonschema is now necessary, in - addition to jinja2. The official list of required Python modules is - maintained in scripts/basic.requirements.txt and may change again - in the future. diff --git a/ChangeLog.d/psa_crypto_pake.txt b/ChangeLog.d/psa_crypto_pake.txt deleted file mode 100644 index e0ae04638..000000000 --- a/ChangeLog.d/psa_crypto_pake.txt +++ /dev/null @@ -1,4 +0,0 @@ -Features - * Expose the EC J-PAKE functionality through the Draft PSA PAKE Crypto API. - Only the ECC primitive with secp256r1 curve and SHA-256 hash algorithm - are supported in this implementation. diff --git a/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt b/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt deleted file mode 100644 index b9c78a645..000000000 --- a/ChangeLog.d/psa_driver_wrapper_for_raw_key_agreement.txt +++ /dev/null @@ -1,5 +0,0 @@ -Features - * Add a driver dispatch layer for raw key agreement, enabling alternative - implementations of raw key agreement through the key_agreement driver - entry point. This entry point is specified in the proposed PSA driver - interface, but had not yet been implemented. diff --git a/ChangeLog.d/psa_rsa_needs_pk.txt b/ChangeLog.d/psa_rsa_needs_pk.txt deleted file mode 100644 index 995963d7e..000000000 --- a/ChangeLog.d/psa_rsa_needs_pk.txt +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix - * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not - MBEDTLS_USE_PSA_CRYPTO or MBEDTLS_PK_WRITE_C. Fixes #6408. - * Fix build failure with MBEDTLS_RSA_C and MBEDTLS_PSA_CRYPTO_C but not - MBEDTLS_PK_PARSE_C. Fixes #6409. diff --git a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt b/ChangeLog.d/rsa-fix-priviliged-side-channel.txt deleted file mode 100644 index bafe18d30..000000000 --- a/ChangeLog.d/rsa-fix-priviliged-side-channel.txt +++ /dev/null @@ -1,10 +0,0 @@ -Security - * An adversary with access to precise enough information about memory - accesses (typically, an untrusted operating system attacking a secure - enclave) could recover an RSA private key after observing the victim - performing a single private-key operation if the window size used for the - exponentiation was 3 or smaller. Found and reported by Zili KOU, - Wenjian HE, Sharad Sinha, and Wei ZHANG. See "Cache Side-channel Attacks - and Defenses of the Sliding Window Algorithm in TEEs" - Design, Automation - and Test in Europe 2023. - diff --git a/ChangeLog.d/tls13-misc.txt b/ChangeLog.d/tls13-misc.txt deleted file mode 100644 index 673317328..000000000 --- a/ChangeLog.d/tls13-misc.txt +++ /dev/null @@ -1,8 +0,0 @@ -Features - * Mbed TLS now supports TLS 1.3 key establishment via pre-shared keys. - The pre-shared keys can be provisioned externally or via the ticket - mechanism (session resumption). - The ticket mechanism is supported when the configuration option - MBEDTLS_SSL_SESSION_TICKETS is enabled. - New options MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_xxx_ENABLED - control the support for the three possible TLS 1.3 key exchange modes. diff --git a/ChangeLog.d/tls13_sig_alg_selection.txt b/ChangeLog.d/tls13_sig_alg_selection.txt deleted file mode 100644 index 8857750b4..000000000 --- a/ChangeLog.d/tls13_sig_alg_selection.txt +++ /dev/null @@ -1,3 +0,0 @@ -Features - * Add support for opaque keys as the private keys associated to certificates - for authentication in TLS 1.3. diff --git a/ChangeLog.d/x509-broken-symlink-handling.txt b/ChangeLog.d/x509-broken-symlink-handling.txt deleted file mode 100644 index 52288dc08..000000000 --- a/ChangeLog.d/x509-broken-symlink-handling.txt +++ /dev/null @@ -1,5 +0,0 @@ -Bugfix - * Fix handling of broken symlinks when loading certificates using - mbedtls_x509_crt_parse_path(). Instead of returning an error as soon as a - broken link is encountered, skip the broken link and continue parsing - other certificate files. Contributed by Eduardo Silva in #2602. From b7dab4131575b17e6c4b1f51c332d3b8dac271f9 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 13:12:21 +0000 Subject: [PATCH 1155/1574] Miscellaneous improvements to code style script Signed-off-by: David Horstmann --- scripts/code_style.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 7923db451..7de223a16 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -32,9 +32,9 @@ def get_src_files() -> List[str]: """ Use git ls-files to get a list of the source files """ - git_ls_files_cmd = ["git", "ls-files", \ - "*.[hc]", \ - "tests/suites/*.function", \ + git_ls_files_cmd = ["git", "ls-files", + "*.[hc]", + "tests/suites/*.function", "scripts/data_files/*.fmt"] result = subprocess.run(git_ls_files_cmd, stdout=subprocess.PIPE, \ @@ -56,8 +56,7 @@ def get_uncrustify_version() -> str: """ Get the version string from Uncrustify """ - version_args = ["--version"] - result = subprocess.run([UNCRUSTIFY_EXE] + version_args, \ + result = subprocess.run([UNCRUSTIFY_EXE, "--version"], \ stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) if result.returncode != 0: print("Error getting version: "+str(result.stderr, "utf-8"), \ From ca13c4f59f1f85e152786f341a58dc07443c034e Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:33:52 +0000 Subject: [PATCH 1156/1574] Use helper function for error printing Signed-off-by: David Horstmann --- scripts/code_style.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 7de223a16..068298aec 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -28,6 +28,9 @@ UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] STDOUT_UTF8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') STDERR_UTF8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') +def print_err(*args): + print("Error: ", *args, file=STDERR_UTF8) + def get_src_files() -> List[str]: """ Use git ls-files to get a list of the source files @@ -41,8 +44,7 @@ def get_src_files() -> List[str]: stderr=STDERR_UTF8, check=False) if result.returncode != 0: - print("Error: git ls-files returned: "+str(result.returncode), \ - file=STDERR_UTF8) + print_err("git ls-files returned: "+str(result.returncode)) return [] else: src_files = str(result.stdout, "utf-8").split() @@ -59,8 +61,7 @@ def get_uncrustify_version() -> str: result = subprocess.run([UNCRUSTIFY_EXE, "--version"], \ stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) if result.returncode != 0: - print("Error getting version: "+str(result.stderr, "utf-8"), \ - file=STDERR_UTF8) + print_err("Could not get Uncrustify version:", str(result.stderr, "utf-8")) return "" else: return str(result.stdout, "utf-8") @@ -115,8 +116,7 @@ def fix_style(src_file_list: List[str]) -> int: # Guard against future changes that cause the codebase to require # more passes. if not check_style_is_correct(src_file_list): - print("Error: Code style still incorrect after second run of Uncrustify.", \ - file=STDERR_UTF8) + print("Code style still incorrect after second run of Uncrustify.") return 1 else: return 0 From 9711f4eeb4e8453b626c50ee3f3f92f4a44e0bc4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:36:10 +0000 Subject: [PATCH 1157/1574] Fix typo in code style script Signed-off-by: David Horstmann --- scripts/code_style.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 068298aec..be333f093 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -68,7 +68,7 @@ def get_uncrustify_version() -> str: def check_style_is_correct(src_file_list: List[str]) -> bool: """ - Check the code style and output a diff foir each file whose style is + Check the code style and output a diff for each file whose style is incorrect. """ style_correct = True From 2cf779ceff908b1e7bb54cb609f5e7d35e48d33e Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:44:36 +0000 Subject: [PATCH 1158/1574] Use constant for supported Uncrustify version Define and report the supported Uncrustify version (and remove extra newlines from version output). Signed-off-by: David Horstmann --- scripts/code_style.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index be333f093..4aa9a40a0 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -22,6 +22,7 @@ import subprocess import sys from typing import List +UNCRUSTIFY_SUPPORTED_VERSION = "0.75.1" CONFIG_FILE = "codestyle.cfg" UNCRUSTIFY_EXE = "uncrustify" UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] @@ -125,10 +126,11 @@ def main() -> int: """ Main with command line arguments. """ - uncrustify_version = get_uncrustify_version() - if "0.75.1" not in uncrustify_version: + uncrustify_version = get_uncrustify_version().strip() + if UNCRUSTIFY_SUPPORTED_VERSION not in uncrustify_version: print("Warning: Using unsupported Uncrustify version '" \ - + uncrustify_version + "'", file=STDOUT_UTF8) + + uncrustify_version + "' (Note: The only supported version" \ + "is " + UNCRUSTIFY_SUPPORTED_VERSION + ")", file=STDOUT_UTF8) src_files = get_src_files() From b488ca34971f0856ae47d4de8d01bff4fca422a2 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:53:15 +0000 Subject: [PATCH 1159/1574] Remove ChangeLog entry, style is not yet official Signed-off-by: David Horstmann --- ChangeLog.d/add_code_style_correction_script.txt | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 ChangeLog.d/add_code_style_correction_script.txt diff --git a/ChangeLog.d/add_code_style_correction_script.txt b/ChangeLog.d/add_code_style_correction_script.txt deleted file mode 100644 index 32ec767d8..000000000 --- a/ChangeLog.d/add_code_style_correction_script.txt +++ /dev/null @@ -1,3 +0,0 @@ -Changes - * Add a config file for Uncrustify and a script to correct the code style - using Uncrustify. From 190041d2b1684f635e8efd921beb59f6bc2ceaa5 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:56:18 +0000 Subject: [PATCH 1160/1574] Explain that the script is only for the future Signed-off-by: David Horstmann --- scripts/code_style.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/code_style.py b/scripts/code_style.py index 4aa9a40a0..f93df7b6f 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 """Check or fix the code style by running Uncrustify. + +Note: The code style enforced by this script is not yet introduced to +Mbed TLS. At present this script will only be used to prepare for a future +change of code style. """ # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 From 0e648f041c2f38b311bbd1fd11f3ee833a4a826e Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 14:57:28 +0000 Subject: [PATCH 1161/1574] Rename Uncrustify configuration Make it more obvious that this is an Uncrustify configuration file. Signed-off-by: David Horstmann --- codestyle.cfg => .uncrustify.cfg | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename codestyle.cfg => .uncrustify.cfg (100%) diff --git a/codestyle.cfg b/.uncrustify.cfg similarity index 100% rename from codestyle.cfg rename to .uncrustify.cfg From be88e80e3d9296bff748677cb46c75dcaf5fd055 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 15:00:20 +0000 Subject: [PATCH 1162/1574] Improvements to the top of the code style config Signed-off-by: David Horstmann --- .uncrustify.cfg | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.uncrustify.cfg b/.uncrustify.cfg index f4b47b246..ce3ee75c4 100644 --- a/.uncrustify.cfg +++ b/.uncrustify.cfg @@ -1,3 +1,8 @@ +# Configuration options for Uncrustify specifying the Mbed TLS code style. +# +# Note: The code style represented by this file has not yet been introduced +# to Mbed TLS. +# # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 # @@ -13,7 +18,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Configuration options for Mbed TLS code style # Line length options From d021032d51977dc42d27ff3d112b2f848cbb6416 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 15:02:14 +0000 Subject: [PATCH 1163/1574] Remove legacy comments from config Signed-off-by: David Horstmann --- .uncrustify.cfg | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.uncrustify.cfg b/.uncrustify.cfg index ce3ee75c4..ac9173e18 100644 --- a/.uncrustify.cfg +++ b/.uncrustify.cfg @@ -50,7 +50,7 @@ nl_struct_brace = remove nl_do_brace = remove nl_if_brace = remove nl_for_brace = remove -nl_else_brace = remove # Note: this option may cause problems for macro-guarded if-else partials +nl_else_brace = remove nl_while_brace = remove nl_switch_brace = remove @@ -202,8 +202,6 @@ sp_inside_braces_enum = add # At least 1 space inside '{ }' in a struct sp_inside_braces_struct = add -# Except for empty braces which should not have a space - # At least 1 space between a function return type and the function name sp_type_func = add From 0ebc12ea41c051b3c58140efd8f26f2f478cd5fa Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 15:04:20 +0000 Subject: [PATCH 1164/1574] Add spaces around '+' Signed-off-by: David Horstmann --- scripts/code_style.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index f93df7b6f..588484856 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -49,7 +49,7 @@ def get_src_files() -> List[str]: stderr=STDERR_UTF8, check=False) if result.returncode != 0: - print_err("git ls-files returned: "+str(result.returncode)) + print_err("git ls-files returned: " + str(result.returncode)) return [] else: src_files = str(result.stdout, "utf-8").split() @@ -85,19 +85,19 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: # Uncrustify makes changes to the code and places the result in a new # file with the extension ".uncrustify". To get the changes (if any) # simply diff the 2 files. - diff_cmd = ["diff", "-u", src_file, src_file+".uncrustify"] + diff_cmd = ["diff", "-u", src_file, src_file + ".uncrustify"] result = subprocess.run(diff_cmd, stdout=subprocess.PIPE, \ stderr=STDERR_UTF8, check=False) if len(result.stdout) > 0: - print(src_file+" - Incorrect code style.", file=STDOUT_UTF8) + print(src_file + " - Incorrect code style.", file=STDOUT_UTF8) print("File changed - diff:", file=STDOUT_UTF8) print(str(result.stdout, "utf-8"), file=STDOUT_UTF8) style_correct = False else: - print(src_file+" - OK.", file=STDOUT_UTF8) + print(src_file + " - OK.", file=STDOUT_UTF8) # Tidy up artifact - os.remove(src_file+".uncrustify") + os.remove(src_file + ".uncrustify") return style_correct From 2a3ffb4203b952a7de3512db311e45e6d4e332f3 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 8 Dec 2022 16:27:46 +0100 Subject: [PATCH 1165/1574] test: pake: add test for opaque password key Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 3d9a6fd73..01d4fe357 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6237,10 +6237,21 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + /* First try with an invalid usage */ + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + PSA_ASSERT( psa_import_key( &attributes, pwd_string, + pwd_len, &pwd_slot ) ); + + ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + + psa_destroy_key( pwd_slot ); + + /* Then set the correct usage */ + psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + PSA_ASSERT( psa_import_key( &attributes, pwd_string, pwd_len, &pwd_slot ) ); } From ae93a3f98468fc93c22ac3964bd657a59415eabe Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 17:03:01 +0000 Subject: [PATCH 1166/1574] Fixup: Config file name in code style script Signed-off-by: David Horstmann --- scripts/code_style.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 588484856..ebf0cd48e 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -27,7 +27,7 @@ import sys from typing import List UNCRUSTIFY_SUPPORTED_VERSION = "0.75.1" -CONFIG_FILE = "codestyle.cfg" +CONFIG_FILE = ".uncrustify.cfg" UNCRUSTIFY_EXE = "uncrustify" UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] STDOUT_UTF8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') From c6b604e842af5da4cc5135cdcc49a07eb38ebfe0 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 8 Dec 2022 17:38:27 +0000 Subject: [PATCH 1167/1574] Reindent line continuations for pylint Signed-off-by: David Horstmann --- scripts/code_style.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index ebf0cd48e..68cd55620 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -41,9 +41,9 @@ def get_src_files() -> List[str]: Use git ls-files to get a list of the source files """ git_ls_files_cmd = ["git", "ls-files", - "*.[hc]", - "tests/suites/*.function", - "scripts/data_files/*.fmt"] + "*.[hc]", + "tests/suites/*.function", + "scripts/data_files/*.fmt"] result = subprocess.run(git_ls_files_cmd, stdout=subprocess.PIPE, \ stderr=STDERR_UTF8, check=False) From eb3f788b032a514875320db819b67625cd9fedb8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 8 Dec 2022 18:42:58 +0100 Subject: [PATCH 1168/1574] tls: pake: do not destroy password key in TLS Signed-off-by: Valerio Setti --- library/ssl_tls.c | 14 ++++++++++---- programs/ssl/ssl_client2.c | 18 +++++++----------- programs/ssl/ssl_server2.c | 18 +++++++----------- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 57cfe424e..259d08884 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1934,7 +1934,6 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( mbedtls_svc_key_id_is_null( pwd ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - ssl->handshake->psa_pake_password = pwd; psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); psa_pake_cs_set_primitive( &cipher_suite, @@ -1956,8 +1955,7 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( status != PSA_SUCCESS ) goto error; - status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, - ssl->handshake->psa_pake_password ); + status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, pwd ); if( status != PSA_SUCCESS ) goto error; @@ -4037,7 +4035,15 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_pake_abort( &handshake->psa_pake_ctx ); - psa_destroy_key( handshake->psa_pake_password ); + /* + * Opaque keys are not stored in the handshake's data and it's the user + * responsibility to destroy them. Clear ones, instead, are created by + * the TLS library and should be destroyed at the same level + */ + if( ! mbedtls_svc_key_id_is_null( handshake->psa_pake_password ) ) + { + psa_destroy_key( handshake->psa_pake_password ); + } handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT; #else mbedtls_ecjpake_free( &handshake->ecjpake_ctx ); diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 54e9861cc..13ffa3d53 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3329,18 +3329,14 @@ exit: #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) + /* + * In case opaque keys it's the user responsibility to keep the key valid + * for the duration of the handshake and destroy it at the end + */ + if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) && + ( ! mbedtls_svc_key_id_is_null( ecjpake_pw_slot ) ) ) { - psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT; - - /* Ensure the key is still valid before destroying it */ - status = psa_get_key_attributes( ecjpake_pw_slot, &key_attr ); - if( status == PSA_SUCCESS && - PSA_ALG_IS_PAKE( psa_get_key_algorithm( &key_attr ) ) ) - { - psa_destroy_key( ecjpake_pw_slot ); - } - psa_reset_key_attributes( &key_attr ); + psa_destroy_key( ecjpake_pw_slot ); } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 004616fd1..4b195c4f1 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -4439,18 +4439,14 @@ exit: #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) + /* + * In case opaque keys it's the user responsibility to keep the key valid + * for the duration of the handshake and destroy it at the end + */ + if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) && + ( ! mbedtls_svc_key_id_is_null( ecjpake_pw_slot ) ) ) { - psa_key_attributes_t key_attr = PSA_KEY_ATTRIBUTES_INIT; - - /* Ensure the key is still valid before destroying it */ - status = psa_get_key_attributes( ecjpake_pw_slot, &key_attr ); - if( status == PSA_SUCCESS && - PSA_ALG_IS_PAKE( psa_get_key_algorithm( &key_attr ) ) ) - { - psa_destroy_key( ecjpake_pw_slot ); - } - psa_reset_key_attributes( &key_attr ); + psa_destroy_key( ecjpake_pw_slot ); } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ From 0ab6c8acb7e604abe2570f94d913013b416fcedd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 8 Dec 2022 22:18:31 +0100 Subject: [PATCH 1169/1574] Remove obsolete target covtest This target dates back from before basic-build-test.sh existed. Refer to that script instead. Signed-off-by: Gilles Peskine --- CMakeLists.txt | 14 +++++++------- Makefile | 18 ++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a870a758..6bf9fae09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -304,13 +304,13 @@ if(ENABLE_TESTING) # additional convenience targets for Unix only if(UNIX) - ADD_CUSTOM_TARGET(covtest - COMMAND make test - COMMAND programs/test/selftest - COMMAND tests/compat.sh - COMMAND tests/ssl-opt.sh - ) - + # For coverage testing: + # 1. Build with: + # cmake -D CMAKE_BUILD_TYPE=Coverage /path/to/source && make + # 2. Run the relevant tests for the part of the code you're interested in. + # For the reference coverage measurement, see + # tests/scripts/basic-build-test.sh + # 3. Run scripts/lcov.sh to generate an HTML report. ADD_CUSTOM_TARGET(lcov COMMAND scripts/lcov.sh ) diff --git a/Makefile b/Makefile index af4430510..2f1be6528 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PERL ?= perl .SILENT: -.PHONY: all no_test programs lib tests install uninstall clean test check covtest lcov apidoc apidoc_clean +.PHONY: all no_test programs lib tests install uninstall clean test check lcov apidoc apidoc_clean all: programs tests $(MAKE) post_build @@ -136,15 +136,13 @@ check: lib tests test: check ifndef WINDOWS -# Note: for coverage testing, build with: -# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage' -# For the reference coverage measurement, see tests/scripts/basic-build-test.sh -covtest: - $(MAKE) check - programs/test/selftest - tests/compat.sh - tests/ssl-opt.sh - +# For coverage testing: +# 1. Build with: +# make CFLAGS='--coverage -g3 -O0' LDFLAGS='--coverage' +# 2. Run the relevant tests for the part of the code you're interested in. +# For the reference coverage measurement, see +# tests/scripts/basic-build-test.sh +# 3. Run scripts/lcov.sh to generate an HTML report. lcov: scripts/lcov.sh From 2e19981e17eb40d6ed421fc651b4b519f1637c58 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 1 Dec 2022 18:57:19 +0800 Subject: [PATCH 1170/1574] tls13: guards transform negotiate Signed-off-by: Jerry Yu --- include/mbedtls/ssl.h | 2 ++ library/ssl_msg.c | 3 +++ library/ssl_tls.c | 40 +++++++++++++++++++++++++++++----------- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 3f48377b6..b8e739bf4 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -1656,9 +1656,11 @@ struct mbedtls_ssl_context mbedtls_ssl_transform *MBEDTLS_PRIVATE(transform); /*!< negotiated transform params * This pointer owns the transform * it references. */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) mbedtls_ssl_transform *MBEDTLS_PRIVATE(transform_negotiate); /*!< transform params in negotiation * This pointer owns the transform * it references. */ +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /*! The application data transform in TLS 1.3. diff --git a/library/ssl_msg.c b/library/ssl_msg.c index e4d50dbfd..c9ef8e49d 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -5097,9 +5097,12 @@ int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) * data. */ MBEDTLS_SSL_DEBUG_MSG( 3, ( "switching to new transform spec for inbound data" ) ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) ssl->transform_in = ssl->transform_negotiate; +#endif ssl->session_in = ssl->session_negotiate; + #if defined(MBEDTLS_SSL_PROTO_DTLS) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 9bb9dc23c..eba5e3ba9 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -965,13 +965,16 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_handshake_init( mbedtls_ssl_context *ssl ) { /* Clear old handshake information if present */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( ssl->transform_negotiate ) mbedtls_ssl_transform_free( ssl->transform_negotiate ); +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ if( ssl->session_negotiate ) mbedtls_ssl_session_free( ssl->session_negotiate ); if( ssl->handshake ) mbedtls_ssl_handshake_free( ssl ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* * Either the pointers are now NULL or cleared properly and can be freed. * Now allocate missing structures. @@ -980,6 +983,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) { ssl->transform_negotiate = mbedtls_calloc( 1, sizeof(mbedtls_ssl_transform) ); } +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ if( ssl->session_negotiate == NULL ) { @@ -998,18 +1002,23 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) #endif /* All pointers should exist and can be directly freed without issue */ - if( ssl->handshake == NULL || + if( ssl->handshake == NULL || +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) ssl->transform_negotiate == NULL || - ssl->session_negotiate == NULL ) +#endif + ssl->session_negotiate == NULL ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc() of ssl sub-contexts failed" ) ); mbedtls_free( ssl->handshake ); - mbedtls_free( ssl->transform_negotiate ); - mbedtls_free( ssl->session_negotiate ); - ssl->handshake = NULL; + +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + mbedtls_free( ssl->transform_negotiate ); ssl->transform_negotiate = NULL; +#endif + + mbedtls_free( ssl->session_negotiate ); ssl->session_negotiate = NULL; return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); @@ -1017,9 +1026,12 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) /* Initialize structures */ mbedtls_ssl_session_init( ssl->session_negotiate ); - mbedtls_ssl_transform_init( ssl->transform_negotiate ); ssl_handshake_params_init( ssl->handshake ); +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + mbedtls_ssl_transform_init( ssl->transform_negotiate ); +#endif + #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) @@ -3975,7 +3987,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_hash_abort( &handshake->fin_sha256_psa ); #else - mbedtls_sha256_free( &handshake->fin_sha256 ); + mbedtls_sha256_free( &handshake->fin_sha256 ); #endif #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -4512,10 +4524,12 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, /* This has been allocated by ssl_handshake_init(), called by * by either mbedtls_ssl_session_reset_int() or mbedtls_ssl_setup(). */ - ssl->transform = ssl->transform_negotiate; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + ssl->transform = ssl->transform_negotiate; ssl->transform_in = ssl->transform; ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; +#endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); @@ -4748,14 +4762,18 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) mbedtls_free( ssl->transform ); } + if( ssl->handshake ) { mbedtls_ssl_handshake_free( ssl ); - mbedtls_ssl_transform_free( ssl->transform_negotiate ); - mbedtls_ssl_session_free( ssl->session_negotiate ); - mbedtls_free( ssl->handshake ); + +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + mbedtls_ssl_transform_free( ssl->transform_negotiate ); mbedtls_free( ssl->transform_negotiate ); +#endif + + mbedtls_ssl_session_free( ssl->session_negotiate ); mbedtls_free( ssl->session_negotiate ); } From ddda0506040a6d1f02a998edbf824c6e324638a6 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 1 Dec 2022 19:43:12 +0800 Subject: [PATCH 1171/1574] tls13: Upstream various fix in prototype - Adjust max input_max_frag_len - Guard transform_negotiate - Adjust function position - update comments - fix wrong requirements Signed-off-by: Jerry Yu --- library/ssl_misc.h | 10 ++++++---- library/ssl_tls.c | 8 ++++++-- library/ssl_tls13_client.c | 7 +++---- tests/ssl-opt.sh | 10 +++++++++- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 5808cab08..b20b72d69 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2058,6 +2058,12 @@ int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) +/* + * Write Signature Algorithm extension + */ +MBEDTLS_CHECK_RETURN_CRITICAL +int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, + const unsigned char *end, size_t *out_len ); /* * Parse TLS Signature Algorithm extension */ @@ -2605,10 +2611,6 @@ int mbedtls_ssl_validate_ciphersuite( mbedtls_ssl_protocol_version min_tls_version, mbedtls_ssl_protocol_version max_tls_version ); -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, - const unsigned char *end, size_t *out_len ); - #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_parse_server_name_ext( mbedtls_ssl_context *ssl, diff --git a/library/ssl_tls.c b/library/ssl_tls.c index eba5e3ba9..7723363df 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3198,12 +3198,14 @@ size_t mbedtls_ssl_get_input_max_frag_len( const mbedtls_ssl_context *ssl ) size_t max_len = MBEDTLS_SSL_IN_CONTENT_LEN; size_t read_mfl; +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* Use the configured MFL for the client if we're past SERVER_HELLO_DONE */ if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && ssl->state >= MBEDTLS_SSL_SERVER_HELLO_DONE ) { return ssl_mfl_code_to_length( ssl->conf->mfl_code ); } +#endif /* Check if a smaller max length was negotiated */ if( ssl->session_out != NULL ) @@ -3215,7 +3217,7 @@ size_t mbedtls_ssl_get_input_max_frag_len( const mbedtls_ssl_context *ssl ) } } - // During a handshake, use the value being negotiated + /* During a handshake, use the value being negotiated */ if( ssl->session_negotiate != NULL ) { read_mfl = ssl_mfl_code_to_length( ssl->session_negotiate->mfl_code ); @@ -3486,6 +3488,8 @@ static unsigned char ssl_serialized_session_header[] = { * * case MBEDTLS_SSL_VERSION_TLS1_2: * serialized_session_tls12 data; + * case MBEDTLS_SSL_MINOR_VERSION_4: + * serialized_session_tls13 data; * * }; * @@ -4525,7 +4529,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, /* This has been allocated by ssl_handshake_init(), called by * by either mbedtls_ssl_session_reset_int() or mbedtls_ssl_setup(). */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - ssl->transform = ssl->transform_negotiate; + ssl->transform = ssl->transform_negotiate; ssl->transform_in = ssl->transform; ssl->transform_out = ssl->transform; ssl->transform_negotiate = NULL; diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 0109f776c..3295e67c3 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2805,11 +2805,10 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) switch( ssl->state ) { - /* - * ssl->state is initialized as HELLO_REQUEST. It is the same - * as CLIENT_HELLO state. - */ case MBEDTLS_SSL_HELLO_REQUEST: + mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + break; + case MBEDTLS_SSL_CLIENT_HELLO: ret = mbedtls_ssl_write_client_hello( ssl ); break; diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 1fe8baeb6..9e6930635 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -2090,6 +2090,8 @@ run_test "Opaque keys for server authentication: EC + RSA, force ECDHE-ECDSA" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3 opaque key: no suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,none" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ @@ -2103,6 +2105,8 @@ run_test "TLS 1.3 opaque key: no suitable algorithm found" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3 opaque key: suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ @@ -2111,11 +2115,13 @@ run_test "TLS 1.3 opaque key: suitable algorithm found" \ -c "key type: Opaque" \ -s "key types: Opaque, Opaque" \ -C "error" \ - -S "error" \ + -S "error" requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3 opaque key: first client sig alg not suitable" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs=rsa-sign-pss-sha512,none" \ "$P_CLI debug_level=4 sig_algs=rsa_pss_rsae_sha256,rsa_pss_rsae_sha512" \ @@ -2130,6 +2136,8 @@ run_test "TLS 1.3 opaque key: first client sig alg not suitable" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_3 requires_config_enabled MBEDTLS_USE_PSA_CRYPTO requires_config_enabled MBEDTLS_RSA_C +requires_config_enabled MBEDTLS_SSL_SRV_C +requires_config_enabled MBEDTLS_SSL_CLI_C run_test "TLS 1.3 opaque key: 2 keys on server, suitable algorithm found" \ "$P_SRV debug_level=4 force_version=tls13 auth_mode=required key_opaque=1 key_opaque_algs2=ecdsa-sign,none key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ "$P_CLI debug_level=4 key_opaque=1 key_opaque_algs=rsa-decrypt,rsa-sign-pss" \ From 141bbe7beeabad6b212f16a615b7f5d191586b3e Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 1 Dec 2022 20:30:41 +0800 Subject: [PATCH 1172/1574] tls13: Adjust include files - remove duplicate and unused included - Adjust the order to system, mbedtls global, local. Signed-off-by: Jerry Yu --- library/ssl_client.c | 6 +----- library/ssl_tls13_generic.c | 6 ++---- library/ssl_tls13_server.c | 10 ---------- 3 files changed, 3 insertions(+), 19 deletions(-) diff --git a/library/ssl_client.c b/library/ssl_client.c index 2c4ce4316..b7de4bcec 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -24,15 +24,11 @@ #if defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) || defined(MBEDTLS_SSL_PROTO_TLS1_2) -#include "mbedtls/platform.h" - #include #include "mbedtls/debug.h" #include "mbedtls/error.h" -#if defined(MBEDTLS_HAVE_TIME) -#include "mbedtls/platform_time.h" -#endif +#include "mbedtls/platform.h" #include "ssl_client.h" #include "ssl_misc.h" diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 761c00ec5..0aecb3544 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -28,16 +28,14 @@ #include "mbedtls/oid.h" #include "mbedtls/platform.h" #include "mbedtls/constant_time.h" -#include +#include "psa/crypto.h" +#include "mbedtls/psa_util.h" #include "ssl_misc.h" #include "ssl_tls13_invasive.h" #include "ssl_tls13_keys.h" #include "ssl_debug_helpers.h" -#include "psa/crypto.h" -#include "mbedtls/psa_util.h" - const uint8_t mbedtls_ssl_tls13_hello_retry_request_magic[ MBEDTLS_SERVER_HELLO_RANDOM_LEN ] = { 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 6caae89b4..685e10ba1 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -30,16 +30,6 @@ #include "ssl_tls13_keys.h" #include "ssl_debug_helpers.h" -#if defined(MBEDTLS_ECP_C) -#include "mbedtls/ecp.h" -#endif /* MBEDTLS_ECP_C */ - -#include "mbedtls/platform.h" - -#include "ssl_misc.h" -#include "ssl_tls13_keys.h" -#include "ssl_debug_helpers.h" - static const mbedtls_ssl_ciphersuite_t *ssl_tls13_validate_peer_ciphersuite( mbedtls_ssl_context *ssl, From 0c2a738c2305496e29d5abe9ba185c7722bdd3e3 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 6 Dec 2022 13:27:25 +0800 Subject: [PATCH 1173/1574] fix various issues Signed-off-by: Jerry Yu --- library/ssl_msg.c | 1 - library/ssl_tls.c | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/library/ssl_msg.c b/library/ssl_msg.c index c9ef8e49d..d1e8887d7 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -5102,7 +5102,6 @@ int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) #endif ssl->session_in = ssl->session_negotiate; - #if defined(MBEDTLS_SSL_PROTO_DTLS) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 7723363df..f141f03ec 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -3482,13 +3482,14 @@ static unsigned char ssl_serialized_session_header[] = { * // the structure of mbedtls_ssl_session. * * uint8_t minor_ver; // Protocol minor version. Possible values: - * // - TLS 1.2 (3) + * // - TLS 1.2 (0x0303) + * // - TLS 1.3 (0x0304) * * select (serialized_session.tls_version) { * * case MBEDTLS_SSL_VERSION_TLS1_2: * serialized_session_tls12 data; - * case MBEDTLS_SSL_MINOR_VERSION_4: + * case MBEDTLS_SSL_VERSION_TLS1_3: * serialized_session_tls13 data; * * }; @@ -4766,7 +4767,6 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) mbedtls_free( ssl->transform ); } - if( ssl->handshake ) { mbedtls_ssl_handshake_free( ssl ); From 79ae7eb4d1bd58f9d871cf665722a57e47f384e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 5 Dec 2022 12:55:51 +0100 Subject: [PATCH 1174/1574] Use deterministic ECDSA in PSA when we do in legacy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the two failing cases in test_suite_pk when ECP_RESTARTABLE and USE_PSA_CRYPTO are both enabled. The two failing cases where ECDSA restartable sign/verify: ECDSA, max_ops=0 (disabled) ECDSA restartable sign/verify: ECKEY, max_ops=0 (disabled) associated with test function pk_sign_verify_restart(). The failure was caused by the interaction of several things that are each reasonable on their own: 1. The test function relies on ECDSA restartable, which is reasonable as it allows making sure that the generated signature is correct with a simple memcmp(). 2. The implementation of pk_sign_restartable() has a shortcut to dispatch to the sign function (as opposed to sign_restartable) when restart is disabled (max_ops == 0). 3. When USE_PSA is enabled, the sign function dispatches to PSA, which so far always used ECDSA (non-deterministic) even when the non-PSA version would use deterministic ECDSA. This could be fixed by changing any of those. I chose (3) because I think it makes sense that when PK dispatches to PSA instead of legacy this should not change which version of ECDSA is selected. OTOH, I think it makes sense to keep (2), because that means more opportunities to dispatch to PSA. Signed-off-by: Manuel Pégourié-Gonnard --- library/pk_wrap.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/pk_wrap.c b/library/pk_wrap.c index 5de8fa65f..00abffb2d 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -1162,8 +1162,13 @@ static int ecdsa_sign_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, size_t key_len; unsigned char buf[MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES]; unsigned char *p; +#if defined(MBEDTLS_ECDSA_DETERMINISTIC) + psa_algorithm_t psa_sig_md = + PSA_ALG_DETERMINISTIC_ECDSA( mbedtls_hash_info_psa_from_md( md_alg ) ); +#else psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA( mbedtls_hash_info_psa_from_md( md_alg ) ); +#endif size_t curve_bits; psa_ecc_family_t curve = mbedtls_ecc_group_to_psa( ctx->grp.id, &curve_bits ); From cc6e0a650fa94a733d93237869c26450a9dd2680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 5 Dec 2022 12:55:05 +0100 Subject: [PATCH 1175/1574] Fix missing initialisation of PSA Crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes the two failures in test_suite_x509parse when both ECP_RESTARTABLE and USE_PSA_CRYPTO are enabled. The failure happened because the operation is dispatched to PSA when restart is disabled (max_ops == 0). Previously it was correct for this test function not to initialize PSA, because it depends on ECP_RESTARTABLE which used to conflict with USE_PSA_CRYPTO, but that's no longer the case. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_x509parse.function | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 2585720ed..dc36b8166 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -579,6 +579,8 @@ void x509_verify_restart( char *crt_file, char *ca_file, mbedtls_x509_crt_init( &crt ); mbedtls_x509_crt_init( &ca ); + USE_PSA_INIT( ); + TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); TEST_ASSERT( mbedtls_x509_crt_parse_file( &ca, ca_file ) == 0 ); @@ -607,6 +609,7 @@ exit: mbedtls_x509_crt_restart_free( &rs_ctx ); mbedtls_x509_crt_free( &crt ); mbedtls_x509_crt_free( &ca ); + USE_PSA_DONE( ); } /* END_CASE */ From 55a188b420a16cfcb3409fa94945c446cb3e56fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 12:00:33 +0100 Subject: [PATCH 1176/1574] Clarify the "restart vs use PSA" situation in TLS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/psa-limitations.md | 7 +- docs/use-psa-crypto.md | 21 ++-- include/mbedtls/mbedtls_config.h | 13 +- tests/ssl-opt.sh | 116 +++++++++++++++++- 4 files changed, 136 insertions(+), 21 deletions(-) diff --git a/docs/architecture/psa-migration/psa-limitations.md b/docs/architecture/psa-migration/psa-limitations.md index e565b283e..c3680231d 100644 --- a/docs/architecture/psa-migration/psa-limitations.md +++ b/docs/architecture/psa-migration/psa-limitations.md @@ -17,8 +17,11 @@ Restartable ECC operations There is currently no support for that in PSA at all, but it will be added at some point, see . -Currently, `MBEDTLS_USE_PSA_CRYPTO` is simply incompatible with -`MBEDTLS_ECP_RESTARTABLE`. +Currently, when `MBEDTLS_USE_PSA_CRYPTO` and `MBEDTLS_ECP_RESTARTABLE` are +both enabled, some operations that should be restartable are not (ECDH in TLS +1.2 clients using ECDHE-ECDSA), as they are using PSA instead, and some +operations that should use PSA do not (signature generation & verification) as +they use the legacy API instead, in order to get restartable behaviour. Things that are in the API but not implemented yet -------------------------------------------------- diff --git a/docs/use-psa-crypto.md b/docs/use-psa-crypto.md index 11442ed66..194d96fb4 100644 --- a/docs/use-psa-crypto.md +++ b/docs/use-psa-crypto.md @@ -7,9 +7,6 @@ operations, and enables new APIs for using keys handled by PSA Crypto. General considerations ---------------------- -**Compile-time:** enabling `MBEDTLS_USE_PSA_CRYPTO` requires -`MBEDTLS_ECP_RESTARTABLE` to be disabled. - **Application code:** when this option is enabled, you need to call `psa_crypto_init()` before calling any function from the SSL/TLS, X.509 or PK module. @@ -86,28 +83,34 @@ is enabled, no change required on the application side. Current exceptions: -- finite-field (non-EC) Diffie-Hellman (used in key exchanges: DHE-RSA, - DHE-PSK) +- Finite-field (non-EC) Diffie-Hellman (used in key exchanges: DHE-RSA, + DHE-PSK). +- Restartable operations when `MBEDTLS_ECP_RESTARTABLE` is also enabled (see + the documentation of that option). Other than the above exceptions, all crypto operations are based on PSA when `MBEDTLS_USE_PSA_CRYPTO` is enabled. ### X.509: most crypto operations based on PSA -Current exception: +Current exceptions: -- verification of RSA-PSS signatures with a salt length that is different from +- Verification of RSA-PSS signatures with a salt length that is different from the hash length. +- Restartable operations when `MBEDTLS_ECP_RESTARTABLE` is also enabled (see + the documentation of that option). Other than the above exception, all crypto operations are based on PSA when `MBEDTLS_USE_PSA_CRYPTO` is enabled. ### PK layer: most crypto operations based on PSA -Current exception: +Current exceptions: -- verification of RSA-PSS signatures with a salt length that is different from +- Verification of RSA-PSS signatures with a salt length that is different from the hash length, or with an MGF hash that's different from the message hash. +- Restartable operations when `MBEDTLS_ECP_RESTARTABLE` is also enabled (see + the documentation of that option). Other than the above exception, all crypto operations are based on PSA when `MBEDTLS_USE_PSA_CRYPTO` is enabled. diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 219dd4539..7a681d1f2 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -701,22 +701,25 @@ * - Changes the behaviour of TLS 1.2 clients (not servers) when using the * ECDHE-ECDSA key exchange (not other key exchanges) to make all ECC * computations restartable: - * - ECDH operations from the key exchange; + * - ECDH operations from the key exchange - unless MBEDTLS_USE_PSA_CRYPTO + * is also enabled. * - verification of the server's key exchange signature; * - verification of the server's certificate chain; * - generation of our signature if client authentication is used, with an * ECC key/certificate. * - * TODO: document interation with USE_PSA_CRYPTO - * * \note In the cases above, the usual SSL/TLS functions, such as * mbedtls_ssl_handshake(), can now return * MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS. * + * \note When this option and MBEDTLS_USE_PSA_CRYPTO are both enabled, + * restartable operations in PK, X.509 and TLS (see above) are not + * using PSA. On the other hand, ECDH computations in TLS are using + * PSA, and are not restartable. + * * \note This option only works with the default software implementation of * elliptic curve functionality. It is incompatible with - * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT, - * and MBEDTLS_USE_PSA_CRYPTO. + * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT. * * Uncomment this macro to enable restartable ECC computations. */ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 154ba348e..b9b2bc5cc 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -8395,10 +8395,12 @@ run_test "EC restart: TLS, max_ops=65535" \ -C "mbedtls_ecdh_make_public.*4b00" \ -C "mbedtls_pk_sign.*4b00" +# With USE_PSA disabled we expect full restartable behaviour. requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: TLS, max_ops=1000" \ +requires_config_disabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000 (no USE_PSA)" \ "$P_SRV curves=secp256r1 auth_mode=required" \ "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ key_file=data_files/server5.key crt_file=data_files/server5.crt \ @@ -8409,6 +8411,25 @@ run_test "EC restart: TLS, max_ops=1000" \ -c "mbedtls_ecdh_make_public.*4b00" \ -c "mbedtls_pk_sign.*4b00" +# With USE_PSA enabled we expect only partial restartable behaviour: +# everything except ECDH (where TLS calls PSA directly). +requires_config_enabled MBEDTLS_ECP_RESTARTABLE +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000 (USE_PSA)" \ + "$P_SRV curves=secp256r1 auth_mode=required" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ + key_file=data_files/server5.key crt_file=data_files/server5.crt \ + debug_level=1 ec_max_ops=1000" \ + 0 \ + -c "x509_verify_cert.*4b00" \ + -c "mbedtls_pk_verify.*4b00" \ + -C "mbedtls_ecdh_make_public.*4b00" \ + -c "mbedtls_pk_sign.*4b00" + +# This works the same with & without USE_PSA as we never get to ECDH: +# we abort as soon as we determined the cert is bad. requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 @@ -8428,10 +8449,12 @@ run_test "EC restart: TLS, max_ops=1000, badsign" \ -c "! mbedtls_ssl_handshake returned" \ -c "X509 - Certificate verification failed" +# With USE_PSA disabled we expect full restartable behaviour. requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign" \ +requires_config_disabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign (no USE_PSA)" \ "$P_SRV curves=secp256r1 auth_mode=required \ crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -8447,10 +8470,34 @@ run_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign" \ -C "! mbedtls_ssl_handshake returned" \ -C "X509 - Certificate verification failed" +# With USE_PSA enabled we expect only partial restartable behaviour: +# everything except ECDH (where TLS calls PSA directly). requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign" \ +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000, auth_mode=optional badsign (USE_PSA)" \ + "$P_SRV curves=secp256r1 auth_mode=required \ + crt_file=data_files/server5-badsign.crt \ + key_file=data_files/server5.key" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ + key_file=data_files/server5.key crt_file=data_files/server5.crt \ + debug_level=1 ec_max_ops=1000 auth_mode=optional" \ + 0 \ + -c "x509_verify_cert.*4b00" \ + -c "mbedtls_pk_verify.*4b00" \ + -C "mbedtls_ecdh_make_public.*4b00" \ + -c "mbedtls_pk_sign.*4b00" \ + -c "! The certificate is not correctly signed by the trusted CA" \ + -C "! mbedtls_ssl_handshake returned" \ + -C "X509 - Certificate verification failed" + +# With USE_PSA disabled we expect full restartable behaviour. +requires_config_enabled MBEDTLS_ECP_RESTARTABLE +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_disabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign (no USE_PSA)" \ "$P_SRV curves=secp256r1 auth_mode=required \ crt_file=data_files/server5-badsign.crt \ key_file=data_files/server5.key" \ @@ -8466,10 +8513,34 @@ run_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign" \ -C "! mbedtls_ssl_handshake returned" \ -C "X509 - Certificate verification failed" +# With USE_PSA enabled we expect only partial restartable behaviour: +# everything except ECDH (where TLS calls PSA directly). requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: DTLS, max_ops=1000" \ +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000, auth_mode=none badsign (USE_PSA)" \ + "$P_SRV curves=secp256r1 auth_mode=required \ + crt_file=data_files/server5-badsign.crt \ + key_file=data_files/server5.key" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ + key_file=data_files/server5.key crt_file=data_files/server5.crt \ + debug_level=1 ec_max_ops=1000 auth_mode=none" \ + 0 \ + -C "x509_verify_cert.*4b00" \ + -c "mbedtls_pk_verify.*4b00" \ + -C "mbedtls_ecdh_make_public.*4b00" \ + -c "mbedtls_pk_sign.*4b00" \ + -C "! The certificate is not correctly signed by the trusted CA" \ + -C "! mbedtls_ssl_handshake returned" \ + -C "X509 - Certificate verification failed" + +# With USE_PSA disabled we expect full restartable behaviour. +requires_config_enabled MBEDTLS_ECP_RESTARTABLE +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_disabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: DTLS, max_ops=1000 (no USE_PSA)" \ "$P_SRV curves=secp256r1 auth_mode=required dtls=1" \ "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ key_file=data_files/server5.key crt_file=data_files/server5.crt \ @@ -8480,10 +8551,29 @@ run_test "EC restart: DTLS, max_ops=1000" \ -c "mbedtls_ecdh_make_public.*4b00" \ -c "mbedtls_pk_sign.*4b00" +# With USE_PSA enabled we expect only partial restartable behaviour: +# everything except ECDH (where TLS calls PSA directly). requires_config_enabled MBEDTLS_ECP_RESTARTABLE requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 -run_test "EC restart: TLS, max_ops=1000 no client auth" \ +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: DTLS, max_ops=1000 (USE_PSA)" \ + "$P_SRV curves=secp256r1 auth_mode=required dtls=1" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ + key_file=data_files/server5.key crt_file=data_files/server5.crt \ + dtls=1 debug_level=1 ec_max_ops=1000" \ + 0 \ + -c "x509_verify_cert.*4b00" \ + -c "mbedtls_pk_verify.*4b00" \ + -C "mbedtls_ecdh_make_public.*4b00" \ + -c "mbedtls_pk_sign.*4b00" + +# With USE_PSA disabled we expect full restartable behaviour. +requires_config_enabled MBEDTLS_ECP_RESTARTABLE +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_disabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000 no client auth (no USE_PSA)" \ "$P_SRV curves=secp256r1" \ "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ debug_level=1 ec_max_ops=1000" \ @@ -8494,6 +8584,22 @@ run_test "EC restart: TLS, max_ops=1000 no client auth" \ -C "mbedtls_pk_sign.*4b00" +# With USE_PSA enabled we expect only partial restartable behaviour: +# everything except ECDH (where TLS calls PSA directly). +requires_config_enabled MBEDTLS_ECP_RESTARTABLE +requires_config_enabled MBEDTLS_ECP_DP_SECP256R1_ENABLED +requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 +requires_config_enabled MBEDTLS_USE_PSA_CRYPTO +run_test "EC restart: TLS, max_ops=1000 no client auth (USE_PSA)" \ + "$P_SRV curves=secp256r1" \ + "$P_CLI force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ + debug_level=1 ec_max_ops=1000" \ + 0 \ + -c "x509_verify_cert.*4b00" \ + -c "mbedtls_pk_verify.*4b00" \ + -C "mbedtls_ecdh_make_public.*4b00" \ + -C "mbedtls_pk_sign.*4b00" + # Restartable is only for ECDHE-ECDSA, with another ciphersuite we expect no # restartable behaviour at all (not even client auth). # This is the same as "EC restart: TLS, max_ops=1000" except with ECDHE-RSA, From a37398427b05fe7af56ec1fd0314d59aac7b5b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 09:35:54 +0100 Subject: [PATCH 1177/1574] Remove check for tests disabled with USE_PSA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous commit declared that some tests cases in ssl-opt.sh depend on USE_PSA being disabled, which is the right thing to do. We had a check that forbade that - it was mainly meant to prevent accidental re-introduction of such dependencies after we cleaned up a number of cases where it was not warranted, but already at the time that was controversial [1]. Now it's preventing us from doing the right thing, so let's just remove it. [1]: https://github.com/Mbed-TLS/mbedtls/pull/5742#discussion_r855112412 See also https://github.com/Mbed-TLS/mbedtls/pull/5907/ which also removes this for a similar reason. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index d3eedcf35..e1717a14b 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -871,12 +871,6 @@ component_check_test_cases () { fi tests/scripts/check_test_cases.py $opt unset opt - - # Check that no tests are explicitely disabled when USE_PSA_CRYPTO is set - # as a matter of policy to ensure there is no missed testing - msg "Check: explicitely disabled test with USE_PSA_CRYPTO" # < 1s - not grep -n 'depends_on:.*!MBEDTLS_USE_PSA_CRYPTO' tests/suites/*.function tests/suites/*.data - not grep -n '^ *requires_config_disabled.*MBEDTLS_USE_PSA_CRYPTO' tests/ssl-opt.sh tests/opt-testcases/*.sh } component_check_doxygen_warnings () { From a6e3d3ec1032f9a71d1ce33eb841b571248b2917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 12:10:33 +0100 Subject: [PATCH 1178/1574] Disable restartable in build_module_alt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously we did not need that as restartable was excluded from full. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index e1717a14b..a6a688c1a 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1869,10 +1869,13 @@ component_test_depends_py_pkalgs_psa () { component_build_module_alt () { msg "build: MBEDTLS_XXX_ALT" # ~30s scripts/config.py full - # Disable options that are incompatible with some ALT implementations. + + # Disable options that are incompatible with some ALT implementations: # aesni.c and padlock.c reference mbedtls_aes_context fields directly. scripts/config.py unset MBEDTLS_AESNI_C scripts/config.py unset MBEDTLS_PADLOCK_C + # MBEDTLS_ECP_RESTARTABLE is documented as incompatible. + scripts/config.py unset MBEDTLS_ECP_RESTARTABLE # You can only have one threading implementation: alt or pthread, not both. scripts/config.py unset MBEDTLS_THREADING_PTHREAD # The SpecifiedECDomain parsing code accesses mbedtls_ecp_group fields @@ -1884,10 +1887,12 @@ component_build_module_alt () { # MBEDTLS_SHA512_*ALT can't be used with MBEDTLS_SHA512_USE_A64_CRYPTO_* scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT scripts/config.py unset MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY + # Enable all MBEDTLS_XXX_ALT for whole modules. Do not enable # MBEDTLS_XXX_YYY_ALT which are for single functions. scripts/config.py set-all 'MBEDTLS_([A-Z0-9]*|NIST_KW)_ALT' scripts/config.py unset MBEDTLS_DHM_ALT #incompatible with MBEDTLS_DEBUG_C + # We can only compile, not link, since we don't have any implementations # suitable for testing with the dummy alt headers. make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' lib From 578664601e0b0ac7d74099270f88ea03e7be547e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 12:14:49 +0100 Subject: [PATCH 1179/1574] Fix missing dependency declaration in test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit muladd() (restartable or not) is only available when at least one short weirstrass curve is enabled. Found by depends.py curves (now that restartable is part of full). Also, document that restartable only work for short weierstrass curves (actually unrelated, but this made me think of that). Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 2 ++ tests/suites/test_suite_ecp.function | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 7a681d1f2..921a74918 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -721,6 +721,8 @@ * elliptic curve functionality. It is incompatible with * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT. * + * \note This option only works for Short Weierstrass curves. + * * Uncomment this macro to enable restartable ECC computations. */ //#define MBEDTLS_ECP_RESTARTABLE diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 7d29e525e..2971c576c 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -237,7 +237,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */ +/* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ void ecp_muladd_restart( int id, char *xR_str, char *yR_str, char *u1_str, char *u2_str, char *xQ_str, char *yQ_str, From ad45c4d3862b1a64f66f96a52ccbc433bdf5720b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 6 Dec 2022 13:20:06 +0100 Subject: [PATCH 1180/1574] Document that ECP_RESTARTABLE depends on ECP_C MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is not new, it had always been the case, just not documented. Pointed out by depends.py pkalgs (again, now that restartable is part of full). Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/check_config.h | 5 +++++ include/mbedtls/mbedtls_config.h | 2 ++ tests/scripts/depends.py | 1 + 3 files changed, 8 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index e2f8e6270..17010fe5a 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -124,6 +124,11 @@ #error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative ECP implementation" #endif +#if defined(MBEDTLS_ECP_RESTARTABLE) && \ + !defined(MBEDTLS_ECP_C) +#error "MBEDTLS_ECP_RESTARTABLE defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C) #error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 921a74918..5d4033c17 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -723,6 +723,8 @@ * * \note This option only works for Short Weierstrass curves. * + * Requires: MBEDTLS_ECP_C + * * Uncomment this macro to enable restartable ECC computations. */ //#define MBEDTLS_ECP_RESTARTABLE diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 0d6ec94c8..d09b732ca 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -234,6 +234,7 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_ECP_C': ['MBEDTLS_ECDSA_C', 'MBEDTLS_ECDH_C', 'MBEDTLS_ECJPAKE_C', + 'MBEDTLS_ECP_RESTARTABLE', 'MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED', 'MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED', From 182a23b1da41917e84cc3c2476f12eb4466d28ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 7 Dec 2022 10:38:43 +0100 Subject: [PATCH 1181/1574] Adjust all.sh now that restartable is in full MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index a6a688c1a..08c6a744b 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1913,7 +1913,6 @@ component_test_no_use_psa_crypto_full_cmake_asan() { # full minus MBEDTLS_USE_PSA_CRYPTO: run the same set of tests as basic-build-test.sh msg "build: cmake, full config minus MBEDTLS_USE_PSA_CRYPTO, ASan" scripts/config.py full - scripts/config.py set MBEDTLS_ECP_RESTARTABLE # not using PSA, so enable restartable ECC scripts/config.py unset MBEDTLS_PSA_CRYPTO_C scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 @@ -1928,6 +1927,9 @@ component_test_no_use_psa_crypto_full_cmake_asan() { msg "test: main suites (full minus MBEDTLS_USE_PSA_CRYPTO)" make test + # Note: ssl-opt.sh has some test cases that depend on + # MBEDTLS_ECP_RESTARTABLE && !MBEDTLS_USE_PSA_CRYPTO + # This is the only component where those tests are not skipped. msg "test: ssl-opt.sh (full minus MBEDTLS_USE_PSA_CRYPTO)" tests/ssl-opt.sh From b2812cc2746311c6dc7d72242f434bf09c25d807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 9 Dec 2022 09:53:55 +0100 Subject: [PATCH 1182/1574] Clarify documentation of ECP_RESTARTABLE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- include/mbedtls/mbedtls_config.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 5d4033c17..b4f5eb7d4 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -693,7 +693,8 @@ * This option: * - Adds xxx_restartable() variants of existing operations in the * following modules, with corresponding restart context types: - * - ECP: scalar multiplication (mult), linear combination (muladd); + * - ECP (for Short Weierstrass curves only): scalar multiplication (mul), + * linear combination (muladd); * - ECDSA: signature generation & verification; * - PK: signature generation & verification; * - X509: certificate chain verification. @@ -701,12 +702,12 @@ * - Changes the behaviour of TLS 1.2 clients (not servers) when using the * ECDHE-ECDSA key exchange (not other key exchanges) to make all ECC * computations restartable: - * - ECDH operations from the key exchange - unless MBEDTLS_USE_PSA_CRYPTO - * is also enabled. + * - ECDH operations from the key exchange, only for Short Weierstass + * curves, only when MBEDTLS_USE_PSA_CRYPTO is not enabled. * - verification of the server's key exchange signature; * - verification of the server's certificate chain; - * - generation of our signature if client authentication is used, with an - * ECC key/certificate. + * - generation of the client's signature if client authentication is used, + * with an ECC key/certificate. * * \note In the cases above, the usual SSL/TLS functions, such as * mbedtls_ssl_handshake(), can now return @@ -715,14 +716,13 @@ * \note When this option and MBEDTLS_USE_PSA_CRYPTO are both enabled, * restartable operations in PK, X.509 and TLS (see above) are not * using PSA. On the other hand, ECDH computations in TLS are using - * PSA, and are not restartable. + * PSA, and are not restartable. These are temporary limitations that + * should be lifted in the future. * * \note This option only works with the default software implementation of * elliptic curve functionality. It is incompatible with * MBEDTLS_ECP_ALT, MBEDTLS_ECDH_XXX_ALT, MBEDTLS_ECDSA_XXX_ALT. * - * \note This option only works for Short Weierstrass curves. - * * Requires: MBEDTLS_ECP_C * * Uncomment this macro to enable restartable ECC computations. From df0c73c3085477714d3c5fd3fb14a8973573a24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 9 Dec 2022 09:57:39 +0100 Subject: [PATCH 1183/1574] Readability improvement in pk_wrap.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- library/pk_wrap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/library/pk_wrap.c b/library/pk_wrap.c index 00abffb2d..ea7d7263e 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -1162,12 +1162,11 @@ static int ecdsa_sign_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, size_t key_len; unsigned char buf[MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES]; unsigned char *p; + psa_algorithm_t psa_hash = mbedtls_hash_info_psa_from_md( md_alg ); #if defined(MBEDTLS_ECDSA_DETERMINISTIC) - psa_algorithm_t psa_sig_md = - PSA_ALG_DETERMINISTIC_ECDSA( mbedtls_hash_info_psa_from_md( md_alg ) ); + psa_algorithm_t psa_sig_md = PSA_ALG_DETERMINISTIC_ECDSA( psa_hash ); #else - psa_algorithm_t psa_sig_md = - PSA_ALG_ECDSA( mbedtls_hash_info_psa_from_md( md_alg ) ); + psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA( psa_hash ); #endif size_t curve_bits; psa_ecc_family_t curve = From 67bad73e870477a2c44f843eac50f91c148db6fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 9 Dec 2022 10:01:29 +0100 Subject: [PATCH 1184/1574] Add a ChangeLog entry for the ECDSA deterministic change MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- ChangeLog.d/pk-sign-restartable.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 ChangeLog.d/pk-sign-restartable.txt diff --git a/ChangeLog.d/pk-sign-restartable.txt b/ChangeLog.d/pk-sign-restartable.txt new file mode 100644 index 000000000..35da2be13 --- /dev/null +++ b/ChangeLog.d/pk-sign-restartable.txt @@ -0,0 +1,5 @@ +Changes + * When MBEDTLS_USE_PSA_CRYPTO and MBEDTLS_ECDSA_DETERMINISTIC are both + defined, mbedtls_pk_sign() now use deterministic ECDSA for ECDSA + signatures. This aligns the behaviour with MBEDTLS_USE_PSA_CRYPTO to + the behaviour without it, where deterministic ECDSA was already used. From c18d93270524af261e44ef96292a609b541da705 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 9 Dec 2022 09:44:10 +0000 Subject: [PATCH 1185/1574] Add generated files Signed-off-by: Dave Rodgman --- library/error.c | 873 + library/psa_crypto_driver_wrappers.c | 2582 ++ library/ssl_debug_helpers_generated.c | 223 + library/version_features.c | 809 + programs/psa/psa_constant_names_generated.c | 474 + programs/test/query_config.c | 4692 +++ tests/suites/test_suite_bignum.generated.data | 975 + .../test_suite_bignum_core.generated.data | 13499 +++++++ .../test_suite_bignum_mod.generated.data | 1380 + .../test_suite_bignum_mod_raw.generated.data | 3573 ++ ...ite_psa_crypto_generate_key.generated.data | 358 + ...te_psa_crypto_not_supported.generated.data | 931 + ...st_suite_psa_crypto_op_fail.generated.data | 30822 ++++++++++++++++ ...ite_psa_crypto_storage_format.current.data | 8035 ++++ ...st_suite_psa_crypto_storage_format.v0.data | 8395 +++++ visualc/VS2010/aead_demo.vcxproj | 167 + visualc/VS2010/benchmark.vcxproj | 167 + visualc/VS2010/cert_app.vcxproj | 167 + visualc/VS2010/cert_req.vcxproj | 167 + visualc/VS2010/cert_write.vcxproj | 167 + visualc/VS2010/cipher_aead_demo.vcxproj | 167 + visualc/VS2010/crl_app.vcxproj | 167 + visualc/VS2010/crypt_and_hash.vcxproj | 167 + visualc/VS2010/crypto_examples.vcxproj | 167 + visualc/VS2010/dh_client.vcxproj | 167 + visualc/VS2010/dh_genprime.vcxproj | 167 + visualc/VS2010/dh_server.vcxproj | 167 + visualc/VS2010/dtls_client.vcxproj | 167 + visualc/VS2010/dtls_server.vcxproj | 167 + visualc/VS2010/ecdh_curve25519.vcxproj | 167 + visualc/VS2010/ecdsa.vcxproj | 167 + visualc/VS2010/gen_entropy.vcxproj | 167 + visualc/VS2010/gen_key.vcxproj | 167 + visualc/VS2010/gen_random_ctr_drbg.vcxproj | 167 + visualc/VS2010/generic_sum.vcxproj | 167 + visualc/VS2010/hello.vcxproj | 167 + visualc/VS2010/hmac_demo.vcxproj | 167 + visualc/VS2010/key_app.vcxproj | 167 + visualc/VS2010/key_app_writer.vcxproj | 167 + visualc/VS2010/key_ladder_demo.vcxproj | 167 + visualc/VS2010/load_roots.vcxproj | 167 + visualc/VS2010/mbedTLS.sln | 741 + visualc/VS2010/mbedTLS.vcxproj | 424 + visualc/VS2010/md_hmac_demo.vcxproj | 167 + visualc/VS2010/mini_client.vcxproj | 167 + visualc/VS2010/mpi_demo.vcxproj | 167 + visualc/VS2010/pem2der.vcxproj | 167 + visualc/VS2010/pk_decrypt.vcxproj | 167 + visualc/VS2010/pk_encrypt.vcxproj | 167 + visualc/VS2010/pk_sign.vcxproj | 167 + visualc/VS2010/pk_verify.vcxproj | 167 + visualc/VS2010/psa_constant_names.vcxproj | 167 + .../VS2010/query_compile_time_config.vcxproj | 168 + visualc/VS2010/req_app.vcxproj | 167 + visualc/VS2010/rsa_decrypt.vcxproj | 167 + visualc/VS2010/rsa_encrypt.vcxproj | 167 + visualc/VS2010/rsa_genkey.vcxproj | 167 + visualc/VS2010/rsa_sign.vcxproj | 167 + visualc/VS2010/rsa_sign_pss.vcxproj | 167 + visualc/VS2010/rsa_verify.vcxproj | 167 + visualc/VS2010/rsa_verify_pss.vcxproj | 167 + visualc/VS2010/selftest.vcxproj | 167 + visualc/VS2010/ssl_client1.vcxproj | 167 + visualc/VS2010/ssl_client2.vcxproj | 169 + visualc/VS2010/ssl_context_info.vcxproj | 167 + visualc/VS2010/ssl_fork_server.vcxproj | 167 + visualc/VS2010/ssl_mail_client.vcxproj | 167 + visualc/VS2010/ssl_server.vcxproj | 167 + visualc/VS2010/ssl_server2.vcxproj | 169 + visualc/VS2010/strerror.vcxproj | 167 + visualc/VS2010/udp_proxy.vcxproj | 167 + visualc/VS2010/zeroize.vcxproj | 167 + 72 files changed, 87976 insertions(+) create mode 100644 library/error.c create mode 100644 library/psa_crypto_driver_wrappers.c create mode 100644 library/ssl_debug_helpers_generated.c create mode 100644 library/version_features.c create mode 100644 programs/psa/psa_constant_names_generated.c create mode 100644 programs/test/query_config.c create mode 100644 tests/suites/test_suite_bignum.generated.data create mode 100644 tests/suites/test_suite_bignum_core.generated.data create mode 100644 tests/suites/test_suite_bignum_mod.generated.data create mode 100644 tests/suites/test_suite_bignum_mod_raw.generated.data create mode 100644 tests/suites/test_suite_psa_crypto_generate_key.generated.data create mode 100644 tests/suites/test_suite_psa_crypto_not_supported.generated.data create mode 100644 tests/suites/test_suite_psa_crypto_op_fail.generated.data create mode 100644 tests/suites/test_suite_psa_crypto_storage_format.current.data create mode 100644 tests/suites/test_suite_psa_crypto_storage_format.v0.data create mode 100644 visualc/VS2010/aead_demo.vcxproj create mode 100644 visualc/VS2010/benchmark.vcxproj create mode 100644 visualc/VS2010/cert_app.vcxproj create mode 100644 visualc/VS2010/cert_req.vcxproj create mode 100644 visualc/VS2010/cert_write.vcxproj create mode 100644 visualc/VS2010/cipher_aead_demo.vcxproj create mode 100644 visualc/VS2010/crl_app.vcxproj create mode 100644 visualc/VS2010/crypt_and_hash.vcxproj create mode 100644 visualc/VS2010/crypto_examples.vcxproj create mode 100644 visualc/VS2010/dh_client.vcxproj create mode 100644 visualc/VS2010/dh_genprime.vcxproj create mode 100644 visualc/VS2010/dh_server.vcxproj create mode 100644 visualc/VS2010/dtls_client.vcxproj create mode 100644 visualc/VS2010/dtls_server.vcxproj create mode 100644 visualc/VS2010/ecdh_curve25519.vcxproj create mode 100644 visualc/VS2010/ecdsa.vcxproj create mode 100644 visualc/VS2010/gen_entropy.vcxproj create mode 100644 visualc/VS2010/gen_key.vcxproj create mode 100644 visualc/VS2010/gen_random_ctr_drbg.vcxproj create mode 100644 visualc/VS2010/generic_sum.vcxproj create mode 100644 visualc/VS2010/hello.vcxproj create mode 100644 visualc/VS2010/hmac_demo.vcxproj create mode 100644 visualc/VS2010/key_app.vcxproj create mode 100644 visualc/VS2010/key_app_writer.vcxproj create mode 100644 visualc/VS2010/key_ladder_demo.vcxproj create mode 100644 visualc/VS2010/load_roots.vcxproj create mode 100644 visualc/VS2010/mbedTLS.sln create mode 100644 visualc/VS2010/mbedTLS.vcxproj create mode 100644 visualc/VS2010/md_hmac_demo.vcxproj create mode 100644 visualc/VS2010/mini_client.vcxproj create mode 100644 visualc/VS2010/mpi_demo.vcxproj create mode 100644 visualc/VS2010/pem2der.vcxproj create mode 100644 visualc/VS2010/pk_decrypt.vcxproj create mode 100644 visualc/VS2010/pk_encrypt.vcxproj create mode 100644 visualc/VS2010/pk_sign.vcxproj create mode 100644 visualc/VS2010/pk_verify.vcxproj create mode 100644 visualc/VS2010/psa_constant_names.vcxproj create mode 100644 visualc/VS2010/query_compile_time_config.vcxproj create mode 100644 visualc/VS2010/req_app.vcxproj create mode 100644 visualc/VS2010/rsa_decrypt.vcxproj create mode 100644 visualc/VS2010/rsa_encrypt.vcxproj create mode 100644 visualc/VS2010/rsa_genkey.vcxproj create mode 100644 visualc/VS2010/rsa_sign.vcxproj create mode 100644 visualc/VS2010/rsa_sign_pss.vcxproj create mode 100644 visualc/VS2010/rsa_verify.vcxproj create mode 100644 visualc/VS2010/rsa_verify_pss.vcxproj create mode 100644 visualc/VS2010/selftest.vcxproj create mode 100644 visualc/VS2010/ssl_client1.vcxproj create mode 100644 visualc/VS2010/ssl_client2.vcxproj create mode 100644 visualc/VS2010/ssl_context_info.vcxproj create mode 100644 visualc/VS2010/ssl_fork_server.vcxproj create mode 100644 visualc/VS2010/ssl_mail_client.vcxproj create mode 100644 visualc/VS2010/ssl_server.vcxproj create mode 100644 visualc/VS2010/ssl_server2.vcxproj create mode 100644 visualc/VS2010/strerror.vcxproj create mode 100644 visualc/VS2010/udp_proxy.vcxproj create mode 100644 visualc/VS2010/zeroize.vcxproj diff --git a/library/error.c b/library/error.c new file mode 100644 index 000000000..3ab1cd6e8 --- /dev/null +++ b/library/error.c @@ -0,0 +1,873 @@ +/* + * Error message information + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "common.h" + +#include "mbedtls/error.h" + +#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) + +#if defined(MBEDTLS_ERROR_C) + +#include "mbedtls/platform.h" + +#include +#include + +#if defined(MBEDTLS_AES_C) +#include "mbedtls/aes.h" +#endif + +#if defined(MBEDTLS_ARIA_C) +#include "mbedtls/aria.h" +#endif + +#if defined(MBEDTLS_ASN1_PARSE_C) +#include "mbedtls/asn1.h" +#endif + +#if defined(MBEDTLS_BASE64_C) +#include "mbedtls/base64.h" +#endif + +#if defined(MBEDTLS_BIGNUM_C) +#include "mbedtls/bignum.h" +#endif + +#if defined(MBEDTLS_CAMELLIA_C) +#include "mbedtls/camellia.h" +#endif + +#if defined(MBEDTLS_CCM_C) +#include "mbedtls/ccm.h" +#endif + +#if defined(MBEDTLS_CHACHA20_C) +#include "mbedtls/chacha20.h" +#endif + +#if defined(MBEDTLS_CHACHAPOLY_C) +#include "mbedtls/chachapoly.h" +#endif + +#if defined(MBEDTLS_CIPHER_C) +#include "mbedtls/cipher.h" +#endif + +#if defined(MBEDTLS_CTR_DRBG_C) +#include "mbedtls/ctr_drbg.h" +#endif + +#if defined(MBEDTLS_DES_C) +#include "mbedtls/des.h" +#endif + +#if defined(MBEDTLS_DHM_C) +#include "mbedtls/dhm.h" +#endif + +#if defined(MBEDTLS_ECP_C) +#include "mbedtls/ecp.h" +#endif + +#if defined(MBEDTLS_ENTROPY_C) +#include "mbedtls/entropy.h" +#endif + +#if defined(MBEDTLS_ERROR_C) +#include "mbedtls/error.h" +#endif + +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#endif + +#if defined(MBEDTLS_GCM_C) +#include "mbedtls/gcm.h" +#endif + +#if defined(MBEDTLS_HKDF_C) +#include "mbedtls/hkdf.h" +#endif + +#if defined(MBEDTLS_HMAC_DRBG_C) +#include "mbedtls/hmac_drbg.h" +#endif + +#if defined(MBEDTLS_LMS_C) +#include "mbedtls/lms.h" +#endif + +#if defined(MBEDTLS_MD_C) +#include "mbedtls/md.h" +#endif + +#if defined(MBEDTLS_NET_C) +#include "mbedtls/net_sockets.h" +#endif + +#if defined(MBEDTLS_OID_C) +#include "mbedtls/oid.h" +#endif + +#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) +#include "mbedtls/pem.h" +#endif + +#if defined(MBEDTLS_PK_C) +#include "mbedtls/pk.h" +#endif + +#if defined(MBEDTLS_PKCS12_C) +#include "mbedtls/pkcs12.h" +#endif + +#if defined(MBEDTLS_PKCS5_C) +#include "mbedtls/pkcs5.h" +#endif + +#if defined(MBEDTLS_PKCS7_C) +#include "mbedtls/pkcs7.h" +#endif + +#if defined(MBEDTLS_POLY1305_C) +#include "mbedtls/poly1305.h" +#endif + +#if defined(MBEDTLS_RSA_C) +#include "mbedtls/rsa.h" +#endif + +#if defined(MBEDTLS_SHA1_C) +#include "mbedtls/sha1.h" +#endif + +#if defined(MBEDTLS_SHA256_C) +#include "mbedtls/sha256.h" +#endif + +#if defined(MBEDTLS_SHA512_C) +#include "mbedtls/sha512.h" +#endif + +#if defined(MBEDTLS_SSL_TLS_C) +#include "mbedtls/ssl.h" +#endif + +#if defined(MBEDTLS_THREADING_C) +#include "mbedtls/threading.h" +#endif + +#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) +#include "mbedtls/x509.h" +#endif + + +const char * mbedtls_high_level_strerr( int error_code ) +{ + int high_level_error_code; + + if( error_code < 0 ) + error_code = -error_code; + + /* Extract the high-level part from the error code. */ + high_level_error_code = error_code & 0xFF80; + + switch( high_level_error_code ) + { + /* Begin Auto-Generated Code. */ +#if defined(MBEDTLS_CIPHER_C) + case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE): + return( "CIPHER - The selected feature is not available" ); + case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA): + return( "CIPHER - Bad input parameters" ); + case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED): + return( "CIPHER - Failed to allocate memory" ); + case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING): + return( "CIPHER - Input data contains invalid padding and is rejected" ); + case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED): + return( "CIPHER - Decryption of block requires a full block" ); + case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED): + return( "CIPHER - Authentication failed (for AEAD modes)" ); + case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT): + return( "CIPHER - The context is invalid. For example, because it was freed" ); +#endif /* MBEDTLS_CIPHER_C */ + +#if defined(MBEDTLS_DHM_C) + case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA): + return( "DHM - Bad input parameters" ); + case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED): + return( "DHM - Reading of the DHM parameters failed" ); + case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED): + return( "DHM - Making of the DHM parameters failed" ); + case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED): + return( "DHM - Reading of the public values failed" ); + case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED): + return( "DHM - Making of the public value failed" ); + case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED): + return( "DHM - Calculation of the DHM secret failed" ); + case -(MBEDTLS_ERR_DHM_INVALID_FORMAT): + return( "DHM - The ASN.1 data is not formatted correctly" ); + case -(MBEDTLS_ERR_DHM_ALLOC_FAILED): + return( "DHM - Allocation of memory failed" ); + case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR): + return( "DHM - Read or write of file failed" ); + case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED): + return( "DHM - Setting the modulus and generator failed" ); +#endif /* MBEDTLS_DHM_C */ + +#if defined(MBEDTLS_ECP_C) + case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA): + return( "ECP - Bad input parameters to function" ); + case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL): + return( "ECP - The buffer is too small to write to" ); + case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE): + return( "ECP - The requested feature is not available, for example, the requested curve is not supported" ); + case -(MBEDTLS_ERR_ECP_VERIFY_FAILED): + return( "ECP - The signature is not valid" ); + case -(MBEDTLS_ERR_ECP_ALLOC_FAILED): + return( "ECP - Memory allocation failed" ); + case -(MBEDTLS_ERR_ECP_RANDOM_FAILED): + return( "ECP - Generation of random value, such as ephemeral key, failed" ); + case -(MBEDTLS_ERR_ECP_INVALID_KEY): + return( "ECP - Invalid private or public key" ); + case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH): + return( "ECP - The buffer contains a valid signature followed by more data" ); + case -(MBEDTLS_ERR_ECP_IN_PROGRESS): + return( "ECP - Operation in progress, call again with the same parameters to continue" ); +#endif /* MBEDTLS_ECP_C */ + +#if defined(MBEDTLS_MD_C) + case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE): + return( "MD - The selected feature is not available" ); + case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA): + return( "MD - Bad input parameters to function" ); + case -(MBEDTLS_ERR_MD_ALLOC_FAILED): + return( "MD - Failed to allocate memory" ); + case -(MBEDTLS_ERR_MD_FILE_IO_ERROR): + return( "MD - Opening or reading of file failed" ); +#endif /* MBEDTLS_MD_C */ + +#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) + case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT): + return( "PEM - No PEM header or footer found" ); + case -(MBEDTLS_ERR_PEM_INVALID_DATA): + return( "PEM - PEM string is not as expected" ); + case -(MBEDTLS_ERR_PEM_ALLOC_FAILED): + return( "PEM - Failed to allocate memory" ); + case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV): + return( "PEM - RSA IV is not in hex-format" ); + case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG): + return( "PEM - Unsupported key encryption algorithm" ); + case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED): + return( "PEM - Private key password can't be empty" ); + case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH): + return( "PEM - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE): + return( "PEM - Unavailable feature, e.g. hashing/encryption combination" ); + case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA): + return( "PEM - Bad input parameters to function" ); +#endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */ + +#if defined(MBEDTLS_PK_C) + case -(MBEDTLS_ERR_PK_ALLOC_FAILED): + return( "PK - Memory allocation failed" ); + case -(MBEDTLS_ERR_PK_TYPE_MISMATCH): + return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" ); + case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA): + return( "PK - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PK_FILE_IO_ERROR): + return( "PK - Read/write of file failed" ); + case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION): + return( "PK - Unsupported key version" ); + case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT): + return( "PK - Invalid key tag or value" ); + case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG): + return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" ); + case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED): + return( "PK - Private key password can't be empty" ); + case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH): + return( "PK - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PK_INVALID_PUBKEY): + return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" ); + case -(MBEDTLS_ERR_PK_INVALID_ALG): + return( "PK - The algorithm tag or value is invalid" ); + case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE): + return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" ); + case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE): + return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" ); + case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH): + return( "PK - The buffer contains a valid signature followed by more data" ); + case -(MBEDTLS_ERR_PK_BUFFER_TOO_SMALL): + return( "PK - The output buffer is too small" ); +#endif /* MBEDTLS_PK_C */ + +#if defined(MBEDTLS_PKCS12_C) + case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA): + return( "PKCS12 - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE): + return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" ); + case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT): + return( "PKCS12 - PBE ASN.1 data not as expected" ); + case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH): + return( "PKCS12 - Given private key password does not allow for correct decryption" ); +#endif /* MBEDTLS_PKCS12_C */ + +#if defined(MBEDTLS_PKCS5_C) + case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA): + return( "PKCS5 - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT): + return( "PKCS5 - Unexpected ASN.1 data" ); + case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE): + return( "PKCS5 - Requested encryption or digest alg not available" ); + case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH): + return( "PKCS5 - Given private key password does not allow for correct decryption" ); +#endif /* MBEDTLS_PKCS5_C */ + +#if defined(MBEDTLS_PKCS7_C) + case -(MBEDTLS_ERR_PKCS7_INVALID_FORMAT): + return( "PKCS7 - The format is invalid, e.g. different type expected" ); + case -(MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE): + return( "PKCS7 - Unavailable feature, e.g. anything other than signed data" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_VERSION): + return( "PKCS7 - The PKCS7 version element is invalid or cannot be parsed" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO): + return( "PKCS7 - The PKCS7 content info invalid or cannot be parsed" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_ALG): + return( "PKCS7 - The algorithm tag or value is invalid or cannot be parsed" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_CERT): + return( "PKCS7 - The certificate tag or value is invalid or cannot be parsed" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE): + return( "PKCS7 - Error parsing the signature" ); + case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO): + return( "PKCS7 - Error parsing the signer's info" ); + case -(MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA): + return( "PKCS7 - Input invalid" ); + case -(MBEDTLS_ERR_PKCS7_ALLOC_FAILED): + return( "PKCS7 - Allocation of memory failed" ); + case -(MBEDTLS_ERR_PKCS7_VERIFY_FAIL): + return( "PKCS7 - Verification Failed" ); + case -(MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID): + return( "PKCS7 - The PKCS7 date issued/expired dates are invalid" ); +#endif /* MBEDTLS_PKCS7_C */ + +#if defined(MBEDTLS_RSA_C) + case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA): + return( "RSA - Bad input parameters to function" ); + case -(MBEDTLS_ERR_RSA_INVALID_PADDING): + return( "RSA - Input data contains invalid padding and is rejected" ); + case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED): + return( "RSA - Something failed during generation of a key" ); + case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED): + return( "RSA - Key failed to pass the validity check of the library" ); + case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED): + return( "RSA - The public key operation failed" ); + case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED): + return( "RSA - The private key operation failed" ); + case -(MBEDTLS_ERR_RSA_VERIFY_FAILED): + return( "RSA - The PKCS#1 verification failed" ); + case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE): + return( "RSA - The output buffer for decryption is not large enough" ); + case -(MBEDTLS_ERR_RSA_RNG_FAILED): + return( "RSA - The random generator failed to generate non-zeros" ); +#endif /* MBEDTLS_RSA_C */ + +#if defined(MBEDTLS_SSL_TLS_C) + case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS): + return( "SSL - A cryptographic operation is in progress. Try again later" ); + case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE): + return( "SSL - The requested feature is not available" ); + case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA): + return( "SSL - Bad input parameters to function" ); + case -(MBEDTLS_ERR_SSL_INVALID_MAC): + return( "SSL - Verification of the message MAC failed" ); + case -(MBEDTLS_ERR_SSL_INVALID_RECORD): + return( "SSL - An invalid SSL record was received" ); + case -(MBEDTLS_ERR_SSL_CONN_EOF): + return( "SSL - The connection indicated an EOF" ); + case -(MBEDTLS_ERR_SSL_DECODE_ERROR): + return( "SSL - A message could not be parsed due to a syntactic error" ); + case -(MBEDTLS_ERR_SSL_NO_RNG): + return( "SSL - No RNG was provided to the SSL module" ); + case -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE): + return( "SSL - No client certification received from the client, but required by the authentication mode" ); + case -(MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION): + return( "SSL - Client received an extended server hello containing an unsupported extension" ); + case -(MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL): + return( "SSL - No ALPN protocols supported that the client advertises" ); + case -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED): + return( "SSL - The own private key or pre-shared key is not set, but needed" ); + case -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED): + return( "SSL - No CA Chain is set, but required to operate" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE): + return( "SSL - An unexpected message was received from our peer" ); + case -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE): + return( "SSL - A fatal alert message was received from our peer" ); + case -(MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME): + return( "SSL - No server could be identified matching the client's SNI" ); + case -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY): + return( "SSL - The peer notified us that the connection is going to be closed" ); + case -(MBEDTLS_ERR_SSL_BAD_CERTIFICATE): + return( "SSL - Processing of the Certificate handshake message failed" ); + case -(MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET): + return( "SSL - * Received NewSessionTicket Post Handshake Message. This error code is experimental and may be changed or removed without notice" ); + case -(MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA): + return( "SSL - Not possible to read early data" ); + case -(MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA): + return( "SSL - Not possible to write early data" ); + case -(MBEDTLS_ERR_SSL_ALLOC_FAILED): + return( "SSL - Memory allocation failed" ); + case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED): + return( "SSL - Hardware acceleration function returned with error" ); + case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH): + return( "SSL - Hardware acceleration function skipped / left alone data" ); + case -(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION): + return( "SSL - Handshake protocol not within min/max boundaries" ); + case -(MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE): + return( "SSL - The handshake negotiation failed" ); + case -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED): + return( "SSL - Session ticket has expired" ); + case -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH): + return( "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" ); + case -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY): + return( "SSL - Unknown identity received (eg, PSK identity)" ); + case -(MBEDTLS_ERR_SSL_INTERNAL_ERROR): + return( "SSL - Internal error (eg, unexpected failure in lower-level module)" ); + case -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING): + return( "SSL - A counter would wrap (eg, too many messages exchanged)" ); + case -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO): + return( "SSL - Unexpected message at ServerHello in renegotiation" ); + case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED): + return( "SSL - DTLS client must retry for hello verification" ); + case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL): + return( "SSL - A buffer is too small to receive or write a message" ); + case -(MBEDTLS_ERR_SSL_WANT_READ): + return( "SSL - No data of requested type currently available on underlying transport" ); + case -(MBEDTLS_ERR_SSL_WANT_WRITE): + return( "SSL - Connection requires a write call" ); + case -(MBEDTLS_ERR_SSL_TIMEOUT): + return( "SSL - The operation timed out" ); + case -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT): + return( "SSL - The client initiated a reconnect from the same port" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD): + return( "SSL - Record header looks valid but is not expected" ); + case -(MBEDTLS_ERR_SSL_NON_FATAL): + return( "SSL - The alert message received indicates a non-fatal error" ); + case -(MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER): + return( "SSL - A field in a message was incorrect or inconsistent with other fields" ); + case -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING): + return( "SSL - Internal-only message signaling that further message-processing should be done" ); + case -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS): + return( "SSL - The asynchronous operation is not completed yet" ); + case -(MBEDTLS_ERR_SSL_EARLY_MESSAGE): + return( "SSL - Internal-only message signaling that a message arrived early" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_CID): + return( "SSL - An encrypted DTLS-frame with an unexpected CID was received" ); + case -(MBEDTLS_ERR_SSL_VERSION_MISMATCH): + return( "SSL - An operation failed due to an unexpected version or configuration" ); + case -(MBEDTLS_ERR_SSL_BAD_CONFIG): + return( "SSL - Invalid value in SSL config" ); +#endif /* MBEDTLS_SSL_TLS_C */ + +#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) + case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE): + return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_OID): + return( "X509 - Requested OID is unknown" ); + case -(MBEDTLS_ERR_X509_INVALID_FORMAT): + return( "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" ); + case -(MBEDTLS_ERR_X509_INVALID_VERSION): + return( "X509 - The CRT/CRL/CSR version element is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_SERIAL): + return( "X509 - The serial tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_ALG): + return( "X509 - The algorithm tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_NAME): + return( "X509 - The name tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_DATE): + return( "X509 - The date tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_SIGNATURE): + return( "X509 - The signature tag or value invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS): + return( "X509 - The extension tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_VERSION): + return( "X509 - CRT/CRL/CSR has an unsupported version number" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG): + return( "X509 - Signature algorithm (oid) is unsupported" ); + case -(MBEDTLS_ERR_X509_SIG_MISMATCH): + return( "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" ); + case -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED): + return( "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" ); + case -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT): + return( "X509 - Format not recognized as DER or PEM" ); + case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA): + return( "X509 - Input invalid" ); + case -(MBEDTLS_ERR_X509_ALLOC_FAILED): + return( "X509 - Allocation of memory failed" ); + case -(MBEDTLS_ERR_X509_FILE_IO_ERROR): + return( "X509 - Read/write of file failed" ); + case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL): + return( "X509 - Destination buffer is too small" ); + case -(MBEDTLS_ERR_X509_FATAL_ERROR): + return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" ); +#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */ + /* End Auto-Generated Code. */ + + default: + break; + } + + return( NULL ); +} + +const char * mbedtls_low_level_strerr( int error_code ) +{ + int low_level_error_code; + + if( error_code < 0 ) + error_code = -error_code; + + /* Extract the low-level part from the error code. */ + low_level_error_code = error_code & ~0xFF80; + + switch( low_level_error_code ) + { + /* Begin Auto-Generated Code. */ +#if defined(MBEDTLS_AES_C) + case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH): + return( "AES - Invalid key length" ); + case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH): + return( "AES - Invalid data input length" ); + case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA): + return( "AES - Invalid input data" ); +#endif /* MBEDTLS_AES_C */ + +#if defined(MBEDTLS_ARIA_C) + case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA): + return( "ARIA - Bad input data" ); + case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH): + return( "ARIA - Invalid data input length" ); +#endif /* MBEDTLS_ARIA_C */ + +#if defined(MBEDTLS_ASN1_PARSE_C) + case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA): + return( "ASN1 - Out of data when parsing an ASN1 data structure" ); + case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG): + return( "ASN1 - ASN1 tag was of an unexpected value" ); + case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH): + return( "ASN1 - Error when trying to determine the length or invalid length" ); + case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH): + return( "ASN1 - Actual length differs from expected length" ); + case -(MBEDTLS_ERR_ASN1_INVALID_DATA): + return( "ASN1 - Data is invalid" ); + case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED): + return( "ASN1 - Memory allocation failed" ); + case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL): + return( "ASN1 - Buffer too small when writing ASN.1 data structure" ); +#endif /* MBEDTLS_ASN1_PARSE_C */ + +#if defined(MBEDTLS_BASE64_C) + case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL): + return( "BASE64 - Output buffer too small" ); + case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER): + return( "BASE64 - Invalid character in input" ); +#endif /* MBEDTLS_BASE64_C */ + +#if defined(MBEDTLS_BIGNUM_C) + case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR): + return( "BIGNUM - An error occurred while reading from or writing to a file" ); + case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA): + return( "BIGNUM - Bad input parameters to function" ); + case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER): + return( "BIGNUM - There is an invalid character in the digit string" ); + case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL): + return( "BIGNUM - The buffer is too small to write to" ); + case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE): + return( "BIGNUM - The input arguments are negative or result in illegal output" ); + case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO): + return( "BIGNUM - The input argument for division is zero, which is not allowed" ); + case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE): + return( "BIGNUM - The input arguments are not acceptable" ); + case -(MBEDTLS_ERR_MPI_ALLOC_FAILED): + return( "BIGNUM - Memory allocation failed" ); +#endif /* MBEDTLS_BIGNUM_C */ + +#if defined(MBEDTLS_CAMELLIA_C) + case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA): + return( "CAMELLIA - Bad input data" ); + case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH): + return( "CAMELLIA - Invalid data input length" ); +#endif /* MBEDTLS_CAMELLIA_C */ + +#if defined(MBEDTLS_CCM_C) + case -(MBEDTLS_ERR_CCM_BAD_INPUT): + return( "CCM - Bad input parameters to the function" ); + case -(MBEDTLS_ERR_CCM_AUTH_FAILED): + return( "CCM - Authenticated decryption failed" ); +#endif /* MBEDTLS_CCM_C */ + +#if defined(MBEDTLS_CHACHA20_C) + case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA): + return( "CHACHA20 - Invalid input parameter(s)" ); +#endif /* MBEDTLS_CHACHA20_C */ + +#if defined(MBEDTLS_CHACHAPOLY_C) + case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE): + return( "CHACHAPOLY - The requested operation is not permitted in the current state" ); + case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED): + return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" ); +#endif /* MBEDTLS_CHACHAPOLY_C */ + +#if defined(MBEDTLS_CTR_DRBG_C) + case -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED): + return( "CTR_DRBG - The entropy source failed" ); + case -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG): + return( "CTR_DRBG - The requested random buffer length is too big" ); + case -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG): + return( "CTR_DRBG - The input (entropy + additional data) is too large" ); + case -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR): + return( "CTR_DRBG - Read or write error in file" ); +#endif /* MBEDTLS_CTR_DRBG_C */ + +#if defined(MBEDTLS_DES_C) + case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH): + return( "DES - The data input has an invalid length" ); +#endif /* MBEDTLS_DES_C */ + +#if defined(MBEDTLS_ENTROPY_C) + case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED): + return( "ENTROPY - Critical entropy source failure" ); + case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES): + return( "ENTROPY - No more sources can be added" ); + case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED): + return( "ENTROPY - No sources have been added to poll" ); + case -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE): + return( "ENTROPY - No strong sources have been added to poll" ); + case -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR): + return( "ENTROPY - Read/write error in file" ); +#endif /* MBEDTLS_ENTROPY_C */ + +#if defined(MBEDTLS_ERROR_C) + case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR): + return( "ERROR - Generic error" ); + case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED): + return( "ERROR - This is a bug in the library" ); +#endif /* MBEDTLS_ERROR_C */ + +#if defined(MBEDTLS_PLATFORM_C) + case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED): + return( "PLATFORM - Hardware accelerator failed" ); + case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED): + return( "PLATFORM - The requested feature is not supported by the platform" ); +#endif /* MBEDTLS_PLATFORM_C */ + +#if defined(MBEDTLS_GCM_C) + case -(MBEDTLS_ERR_GCM_AUTH_FAILED): + return( "GCM - Authenticated decryption failed" ); + case -(MBEDTLS_ERR_GCM_BAD_INPUT): + return( "GCM - Bad input parameters to function" ); + case -(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL): + return( "GCM - An output buffer is too small" ); +#endif /* MBEDTLS_GCM_C */ + +#if defined(MBEDTLS_HKDF_C) + case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA): + return( "HKDF - Bad input parameters to function" ); +#endif /* MBEDTLS_HKDF_C */ + +#if defined(MBEDTLS_HMAC_DRBG_C) + case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG): + return( "HMAC_DRBG - Too many random requested in single call" ); + case -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG): + return( "HMAC_DRBG - Input too large (Entropy + additional)" ); + case -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR): + return( "HMAC_DRBG - Read/write error in file" ); + case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED): + return( "HMAC_DRBG - The entropy source failed" ); +#endif /* MBEDTLS_HMAC_DRBG_C */ + +#if defined(MBEDTLS_LMS_C) + case -(MBEDTLS_ERR_LMS_BAD_INPUT_DATA): + return( "LMS - Bad data has been input to an LMS function" ); + case -(MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS): + return( "LMS - Specified LMS key has utilised all of its private keys" ); + case -(MBEDTLS_ERR_LMS_VERIFY_FAILED): + return( "LMS - LMS signature verification failed" ); + case -(MBEDTLS_ERR_LMS_ALLOC_FAILED): + return( "LMS - LMS failed to allocate space for a private key" ); + case -(MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL): + return( "LMS - Input/output buffer is too small to contain requited data" ); +#endif /* MBEDTLS_LMS_C */ + +#if defined(MBEDTLS_NET_C) + case -(MBEDTLS_ERR_NET_SOCKET_FAILED): + return( "NET - Failed to open a socket" ); + case -(MBEDTLS_ERR_NET_CONNECT_FAILED): + return( "NET - The connection to the given server / port failed" ); + case -(MBEDTLS_ERR_NET_BIND_FAILED): + return( "NET - Binding of the socket failed" ); + case -(MBEDTLS_ERR_NET_LISTEN_FAILED): + return( "NET - Could not listen on the socket" ); + case -(MBEDTLS_ERR_NET_ACCEPT_FAILED): + return( "NET - Could not accept the incoming connection" ); + case -(MBEDTLS_ERR_NET_RECV_FAILED): + return( "NET - Reading information from the socket failed" ); + case -(MBEDTLS_ERR_NET_SEND_FAILED): + return( "NET - Sending information through the socket failed" ); + case -(MBEDTLS_ERR_NET_CONN_RESET): + return( "NET - Connection was reset by peer" ); + case -(MBEDTLS_ERR_NET_UNKNOWN_HOST): + return( "NET - Failed to get an IP address for the given hostname" ); + case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL): + return( "NET - Buffer is too small to hold the data" ); + case -(MBEDTLS_ERR_NET_INVALID_CONTEXT): + return( "NET - The context is invalid, eg because it was free()ed" ); + case -(MBEDTLS_ERR_NET_POLL_FAILED): + return( "NET - Polling the net context failed" ); + case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA): + return( "NET - Input invalid" ); +#endif /* MBEDTLS_NET_C */ + +#if defined(MBEDTLS_OID_C) + case -(MBEDTLS_ERR_OID_NOT_FOUND): + return( "OID - OID is not found" ); + case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL): + return( "OID - output buffer is too small" ); +#endif /* MBEDTLS_OID_C */ + +#if defined(MBEDTLS_POLY1305_C) + case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA): + return( "POLY1305 - Invalid input parameter(s)" ); +#endif /* MBEDTLS_POLY1305_C */ + +#if defined(MBEDTLS_SHA1_C) + case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA): + return( "SHA1 - SHA-1 input data was malformed" ); +#endif /* MBEDTLS_SHA1_C */ + +#if defined(MBEDTLS_SHA256_C) + case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA): + return( "SHA256 - SHA-256 input data was malformed" ); +#endif /* MBEDTLS_SHA256_C */ + +#if defined(MBEDTLS_SHA512_C) + case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA): + return( "SHA512 - SHA-512 input data was malformed" ); +#endif /* MBEDTLS_SHA512_C */ + +#if defined(MBEDTLS_THREADING_C) + case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA): + return( "THREADING - Bad input parameters to function" ); + case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR): + return( "THREADING - Locking / unlocking / free failed with error code" ); +#endif /* MBEDTLS_THREADING_C */ + /* End Auto-Generated Code. */ + + default: + break; + } + + return( NULL ); +} + +void mbedtls_strerror( int ret, char *buf, size_t buflen ) +{ + size_t len; + int use_ret; + const char * high_level_error_description = NULL; + const char * low_level_error_description = NULL; + + if( buflen == 0 ) + return; + + memset( buf, 0x00, buflen ); + + if( ret < 0 ) + ret = -ret; + + if( ret & 0xFF80 ) + { + use_ret = ret & 0xFF80; + + // Translate high level error code. + high_level_error_description = mbedtls_high_level_strerr( ret ); + + if( high_level_error_description == NULL ) + mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); + else + mbedtls_snprintf( buf, buflen, "%s", high_level_error_description ); + +#if defined(MBEDTLS_SSL_TLS_C) + // Early return in case of a fatal error - do not try to translate low + // level code. + if(use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) + return; +#endif /* MBEDTLS_SSL_TLS_C */ + } + + use_ret = ret & ~0xFF80; + + if( use_ret == 0 ) + return; + + // If high level code is present, make a concatenation between both + // error strings. + // + len = strlen( buf ); + + if( len > 0 ) + { + if( buflen - len < 5 ) + return; + + mbedtls_snprintf( buf + len, buflen - len, " : " ); + + buf += len + 3; + buflen -= len + 3; + } + + // Translate low level error code. + low_level_error_description = mbedtls_low_level_strerr( ret ); + + if( low_level_error_description == NULL ) + mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); + else + mbedtls_snprintf( buf, buflen, "%s", low_level_error_description ); +} + +#else /* MBEDTLS_ERROR_C */ + +/* + * Provide a dummy implementation when MBEDTLS_ERROR_C is not defined + */ +void mbedtls_strerror( int ret, char *buf, size_t buflen ) +{ + ((void) ret); + + if( buflen > 0 ) + buf[0] = '\0'; +} + +#endif /* MBEDTLS_ERROR_C */ + +#if defined(MBEDTLS_TEST_HOOKS) +void (*mbedtls_test_hook_error_add)( int, int, const char *, int ); +#endif + +#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */ diff --git a/library/psa_crypto_driver_wrappers.c b/library/psa_crypto_driver_wrappers.c new file mode 100644 index 000000000..198194139 --- /dev/null +++ b/library/psa_crypto_driver_wrappers.c @@ -0,0 +1,2582 @@ +/* + * Functions to delegate cryptographic operations to an available + * and appropriate accelerator. + * Warning: This file is now auto-generated. + */ +/* Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +/* BEGIN-common headers */ +#include "common.h" +#include "psa_crypto_aead.h" +#include "psa_crypto_cipher.h" +#include "psa_crypto_core.h" +#include "psa_crypto_driver_wrappers.h" +#include "psa_crypto_hash.h" +#include "psa_crypto_mac.h" +#include "psa_crypto_rsa.h" + +#include "mbedtls/platform.h" +/* END-common headers */ + +#if defined(MBEDTLS_PSA_CRYPTO_C) + +/* BEGIN-driver headers */ +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) +/* Headers for mbedtls_test opaque driver */ +#if defined(PSA_CRYPTO_DRIVER_TEST) +#include "test/drivers/test_driver.h" + +#endif +/* Headers for mbedtls_test transparent driver */ +#if defined(PSA_CRYPTO_DRIVER_TEST) +#include "test/drivers/test_driver.h" + +#endif + +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ +/* END-driver headers */ + +/* Auto-generated values depending on which drivers are registered. + * ID 0 is reserved for unallocated operations. + * ID 1 is reserved for the Mbed TLS software driver. */ +/* BEGIN-driver id definition */ +#define PSA_CRYPTO_MBED_TLS_DRIVER_ID (1) +#define MBEDTLS_TEST_OPAQUE_DRIVER_ID (2) +#define MBEDTLS_TEST_TRANSPARENT_DRIVER_ID (3) + +/* END-driver id */ + +/* BEGIN-Common Macro definitions */ + +/* END-Common Macro definitions */ + +/* Support the 'old' SE interface when asked to */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) +/* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style + * SE driver is present, to avoid unused argument errors at compile time. */ +#ifndef PSA_CRYPTO_DRIVER_PRESENT +#define PSA_CRYPTO_DRIVER_PRESENT +#endif +#include "psa_crypto_se.h" +#endif + +psa_status_t psa_driver_wrapper_init( void ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + status = psa_init_all_se_drivers( ); + if( status != PSA_SUCCESS ) + return( status ); +#endif + +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_init( ); + if( status != PSA_SUCCESS ) + return( status ); + + status = mbedtls_test_opaque_init( ); + if( status != PSA_SUCCESS ) + return( status ); +#endif + + (void) status; + return( PSA_SUCCESS ); +} + +void psa_driver_wrapper_free( void ) +{ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + /* Unregister all secure element drivers, so that we restart from + * a pristine state. */ + psa_unregister_all_se_drivers( ); +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + +#if defined(PSA_CRYPTO_DRIVER_TEST) + mbedtls_test_transparent_free( ); + mbedtls_test_opaque_free( ); +#endif +} + +/* Start delegation functions */ +psa_status_t psa_driver_wrapper_sign_message( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_signature_sign_message( + attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_size, + signature_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + break; + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_signature_sign_message( + attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_size, + signature_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); + break; +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + break; + } + + return( psa_sign_message_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_size, + signature_length ) ); +} + +psa_status_t psa_driver_wrapper_verify_message( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_signature_verify_message( + attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + break; + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_signature_verify_message( + attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_length ) ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); + break; +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + break; + } + + return( psa_verify_message_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + signature, + signature_length ) ); +} + +psa_status_t psa_driver_wrapper_sign_hash( + 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 ) +{ + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + if( drv->asymmetric == NULL || + drv->asymmetric->p_sign == NULL ) + { + /* Key is defined in SE, but we have no way to exercise it */ + return( PSA_ERROR_NOT_SUPPORTED ); + } + return( drv->asymmetric->p_sign( + drv_context, *( (psa_key_slot_number_t *)key_buffer ), + alg, hash, hash_length, + signature, signature_size, signature_length ) ); + } +#endif /* PSA_CRYPTO_SE_C */ + + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_signature_sign_hash( attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_size, + signature_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + /* Fell through, meaning no accelerator supports this operation */ + return( psa_sign_hash_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_size, + signature_length ) ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_signature_sign_hash( attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_size, + signature_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_verify_hash( + 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 ) +{ + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + if( drv->asymmetric == NULL || + drv->asymmetric->p_verify == NULL ) + { + /* Key is defined in SE, but we have no way to exercise it */ + return( PSA_ERROR_NOT_SUPPORTED ); + } + return( drv->asymmetric->p_verify( + drv_context, *( (psa_key_slot_number_t *)key_buffer ), + alg, hash, hash_length, + signature, signature_length ) ); + } +#endif /* PSA_CRYPTO_SE_C */ + + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_signature_verify_hash( + attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + return( psa_verify_hash_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_length ) ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_signature_verify_hash( attributes, + key_buffer, + key_buffer_size, + alg, + hash, + hash_length, + signature, + signature_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +/** Calculate the key buffer size required to store the key material of a key + * associated with an opaque driver from input key data. + * + * \param[in] attributes The key attributes + * \param[in] data The input key data. + * \param[in] data_length The input data length. + * \param[out] key_buffer_size Minimum buffer size to contain the key material. + * + * \retval #PSA_SUCCESS + * \retval #PSA_ERROR_INVALID_ARGUMENT + * \retval #PSA_ERROR_NOT_SUPPORTED + */ +psa_status_t psa_driver_wrapper_get_key_buffer_size_from_key_data( + const psa_key_attributes_t *attributes, + const uint8_t *data, + size_t data_length, + size_t *key_buffer_size ) +{ + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + psa_key_type_t key_type = attributes->core.type; + + *key_buffer_size = 0; + switch( location ) + { +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + *key_buffer_size = mbedtls_test_opaque_size_function( key_type, + PSA_BYTES_TO_BITS( data_length ) ); + return( ( *key_buffer_size != 0 ) ? + PSA_SUCCESS : PSA_ERROR_NOT_SUPPORTED ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ + + default: + (void)key_type; + (void)data; + (void)data_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +/** Get the key buffer size required to store the key material of a key + * associated with an opaque driver. + * + * \param[in] attributes The key attributes. + * \param[out] key_buffer_size Minimum buffer size to contain the key material + * + * \retval #PSA_SUCCESS + * The minimum size for a buffer to contain the key material has been + * returned successfully. + * \retval #PSA_ERROR_NOT_SUPPORTED + * The type and/or the size in bits of the key or the combination of + * the two is not supported. + * \retval #PSA_ERROR_INVALID_ARGUMENT + * The key is declared with a lifetime not known to us. + */ +psa_status_t psa_driver_wrapper_get_key_buffer_size( + const psa_key_attributes_t *attributes, + size_t *key_buffer_size ) +{ + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + psa_key_type_t key_type = attributes->core.type; + size_t key_bits = attributes->core.bits; + + *key_buffer_size = 0; + switch( location ) + { +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: +#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) + /* Emulate property 'builtin_key_size' */ + if( psa_key_id_is_builtin( + MBEDTLS_SVC_KEY_ID_GET_KEY_ID( + psa_get_key_id( attributes ) ) ) ) + { + *key_buffer_size = sizeof( psa_drv_slot_number_t ); + return( PSA_SUCCESS ); + } +#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ + *key_buffer_size = mbedtls_test_opaque_size_function( key_type, + key_bits ); + return( ( *key_buffer_size != 0 ) ? + PSA_SUCCESS : PSA_ERROR_NOT_SUPPORTED ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ + + default: + (void)key_type; + (void)key_bits; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_generate_key( + const psa_key_attributes_t *attributes, + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION(attributes->core.lifetime); + + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + size_t pubkey_length = 0; /* We don't support this feature yet */ + if( drv->key_management == NULL || + drv->key_management->p_generate == NULL ) + { + /* Key is defined as being in SE, but we have no way to generate it */ + return( PSA_ERROR_NOT_SUPPORTED ); + } + return( drv->key_management->p_generate( + drv_context, + *( (psa_key_slot_number_t *)key_buffer ), + attributes, NULL, 0, &pubkey_length ) ); + } +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + /* Transparent drivers are limited to generating asymmetric keys */ + if( PSA_KEY_TYPE_IS_ASYMMETRIC( attributes->core.type ) ) + { + /* Cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_generate_key( + attributes, key_buffer, key_buffer_size, + key_buffer_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + break; +#endif /* PSA_CRYPTO_DRIVER_TEST */ + } +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Software fallback */ + status = psa_generate_key_internal( + attributes, key_buffer, key_buffer_size, key_buffer_length ); + break; + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_generate_key( + attributes, key_buffer, key_buffer_size, key_buffer_length ); + break; +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + /* Key is declared with a lifetime not known to us */ + status = PSA_ERROR_INVALID_ARGUMENT; + break; + } + + return( status ); +} + +psa_status_t psa_driver_wrapper_import_key( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( + psa_get_key_lifetime( attributes ) ); + + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + if( drv->key_management == NULL || + drv->key_management->p_import == NULL ) + return( PSA_ERROR_NOT_SUPPORTED ); + + /* The driver should set the number of key bits, however in + * case it doesn't, we initialize bits to an invalid value. */ + *bits = PSA_MAX_KEY_BITS + 1; + status = drv->key_management->p_import( + drv_context, + *( (psa_key_slot_number_t *)key_buffer ), + attributes, data, data_length, bits ); + + if( status != PSA_SUCCESS ) + return( status ); + + if( (*bits) > PSA_MAX_KEY_BITS ) + return( PSA_ERROR_NOT_SUPPORTED ); + + return( PSA_SUCCESS ); + } +#endif /* PSA_CRYPTO_SE_C */ + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + status = mbedtls_test_transparent_import_key + (attributes, + data, + data_length, + key_buffer, + key_buffer_size, + key_buffer_length, + bits + ); + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Fell through, meaning no accelerator supports this operation */ + return( psa_import_key_into_slot( attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, bits ) ); + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + case 0x7fffff: + return( mbedtls_test_opaque_import_key + (attributes, + data, + data_length, + key_buffer, + key_buffer_size, + key_buffer_length, + bits + )); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } + +} + +psa_status_t psa_driver_wrapper_export_key( + 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 status = PSA_ERROR_INVALID_ARGUMENT; + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( + psa_get_key_lifetime( attributes ) ); + + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + if( ( drv->key_management == NULL ) || + ( drv->key_management->p_export == NULL ) ) + { + return( PSA_ERROR_NOT_SUPPORTED ); + } + + return( drv->key_management->p_export( + drv_context, + *( (psa_key_slot_number_t *)key_buffer ), + data, data_size, data_length ) ); + } +#endif /* PSA_CRYPTO_SE_C */ + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + return( psa_export_key_internal( attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length ) ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + case 0x7fffff: + return( mbedtls_test_opaque_export_key + (attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length + )); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + return( status ); + } + +} + +psa_status_t psa_driver_wrapper_export_public_key( + 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 status = PSA_ERROR_INVALID_ARGUMENT; + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( + psa_get_key_lifetime( attributes ) ); + + /* Try dynamically-registered SE interface first */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + if( ( drv->key_management == NULL ) || + ( drv->key_management->p_export_public == NULL ) ) + { + return( PSA_ERROR_NOT_SUPPORTED ); + } + + return( drv->key_management->p_export_public( + drv_context, + *( (psa_key_slot_number_t *)key_buffer ), + data, data_size, data_length ) ); + } +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + status = mbedtls_test_transparent_export_public_key + (attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length + ); + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + /* Fell through, meaning no accelerator supports this operation */ + return( psa_export_public_key_internal( attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length ) ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + case 0x7fffff: + return( mbedtls_test_opaque_export_public_key + (attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length + )); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + return( status ); + } + +} + +psa_status_t psa_driver_wrapper_get_builtin_key( + psa_drv_slot_number_t slot_number, + psa_key_attributes_t *attributes, + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) +{ + + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + switch( location ) + { +#if defined(PSA_CRYPTO_DRIVER_TEST) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + case 0x7fffff: + return( mbedtls_test_opaque_get_builtin_key + (slot_number, + attributes, + key_buffer, + key_buffer_size, + key_buffer_length + )); +#endif + + +#endif /* PSA_CRYPTO_DRIVER_TEST */ + default: + (void) slot_number; + (void) key_buffer; + (void) key_buffer_size; + (void) key_buffer_length; + return( PSA_ERROR_DOES_NOT_EXIST ); + } + +} + +psa_status_t psa_driver_wrapper_copy_key( + psa_key_attributes_t *attributes, + const uint8_t *source_key, size_t source_key_length, + uint8_t *target_key_buffer, size_t target_key_buffer_size, + size_t *target_key_buffer_length ) +{ + + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + const psa_drv_se_t *drv; + psa_drv_se_context_t *drv_context; + + if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) + { + /* Copying to a secure element is not implemented yet. */ + return( PSA_ERROR_NOT_SUPPORTED ); + } +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + + switch( location ) + { +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) + +#if (defined(PSA_CRYPTO_DRIVER_TEST) ) + case 0x7fffff: + return( mbedtls_test_opaque_copy_key + (attributes, + source_key, + source_key_length, + target_key_buffer, + target_key_buffer_size, + target_key_buffer_length + )); +#endif + + +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + (void)source_key; + (void)source_key_length; + (void)target_key_buffer; + (void)target_key_buffer_size; + (void)target_key_buffer_length; + status = PSA_ERROR_INVALID_ARGUMENT; + } + return( status ); + +} + +/* + * Cipher functions + */ +psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_cipher_encrypt( attributes, + key_buffer, + key_buffer_size, + alg, + iv, + iv_length, + input, + input_length, + output, + output_size, + output_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + return( mbedtls_psa_cipher_encrypt( attributes, + key_buffer, + key_buffer_size, + alg, + iv, + iv_length, + input, + input_length, + output, + output_size, + output_length ) ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_cipher_encrypt( attributes, + key_buffer, + key_buffer_size, + alg, + iv, + iv_length, + input, + input_length, + output, + output_size, + output_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + (void)iv; + (void)iv_length; + (void)input; + (void)input_length; + (void)output; + (void)output_size; + (void)output_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_cipher_decrypt( attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + output, + output_size, + output_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + return( mbedtls_psa_cipher_decrypt( attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + output, + output_size, + output_length ) ); +#else + return( PSA_ERROR_NOT_SUPPORTED ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_cipher_decrypt( attributes, + key_buffer, + key_buffer_size, + alg, + input, + input_length, + output, + output_size, + output_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + (void)input; + (void)input_length; + (void)output; + (void)output_size; + (void)output_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_cipher_encrypt_setup( + 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 ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_cipher_encrypt_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, + key_buffer, + key_buffer_size, + alg ); + /* Declared with fallback == true */ + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + /* Fell through, meaning no accelerator supports this operation */ + status = mbedtls_psa_cipher_encrypt_setup( &operation->ctx.mbedtls_ctx, + attributes, + key_buffer, + key_buffer_size, + alg ); + if( status == PSA_SUCCESS ) + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + return( PSA_ERROR_NOT_SUPPORTED ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_cipher_encrypt_setup( + &operation->ctx.opaque_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; + + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)operation; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_cipher_decrypt_setup( + 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 ) +{ + psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_cipher_decrypt_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, + key_buffer, + key_buffer_size, + alg ); + /* Declared with fallback == true */ + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + /* Fell through, meaning no accelerator supports this operation */ + status = mbedtls_psa_cipher_decrypt_setup( &operation->ctx.mbedtls_ctx, + attributes, + key_buffer, + key_buffer_size, + alg ); + if( status == PSA_SUCCESS ) + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + + return( status ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + return( PSA_ERROR_NOT_SUPPORTED ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_cipher_decrypt_setup( + &operation->ctx.opaque_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; + + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)operation; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_cipher_set_iv( + psa_cipher_operation_t *operation, + const uint8_t *iv, + size_t iv_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_cipher_set_iv( &operation->ctx.mbedtls_ctx, + iv, + iv_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_cipher_set_iv( + &operation->ctx.transparent_test_driver_ctx, + iv, iv_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_cipher_set_iv( + &operation->ctx.opaque_test_driver_ctx, + iv, iv_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)iv; + (void)iv_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_cipher_update( + psa_cipher_operation_t *operation, + const uint8_t *input, + size_t input_length, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_cipher_update( &operation->ctx.mbedtls_ctx, + input, + input_length, + output, + output_size, + output_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_cipher_update( + &operation->ctx.transparent_test_driver_ctx, + input, input_length, + output, output_size, output_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_cipher_update( + &operation->ctx.opaque_test_driver_ctx, + input, input_length, + output, output_size, output_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)input; + (void)input_length; + (void)output; + (void)output_size; + (void)output_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_cipher_finish( + psa_cipher_operation_t *operation, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_cipher_finish( &operation->ctx.mbedtls_ctx, + output, + output_size, + output_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_cipher_finish( + &operation->ctx.transparent_test_driver_ctx, + output, output_size, output_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_cipher_finish( + &operation->ctx.opaque_test_driver_ctx, + output, output_size, output_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)output; + (void)output_size; + (void)output_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_cipher_abort( + psa_cipher_operation_t *operation ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_cipher_abort( &operation->ctx.mbedtls_ctx ) ); +#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + status = mbedtls_test_transparent_cipher_abort( + &operation->ctx.transparent_test_driver_ctx ); + mbedtls_platform_zeroize( + &operation->ctx.transparent_test_driver_ctx, + sizeof( operation->ctx.transparent_test_driver_ctx ) ); + return( status ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + status = mbedtls_test_opaque_cipher_abort( + &operation->ctx.opaque_test_driver_ctx ); + mbedtls_platform_zeroize( + &operation->ctx.opaque_test_driver_ctx, + sizeof( operation->ctx.opaque_test_driver_ctx ) ); + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +/* + * Hashing functions + */ +psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; + + /* Try accelerators first */ +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_hash_compute( + alg, input, input_length, hash, hash_size, hash_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + + /* If software fallback is compiled in, try fallback */ +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + status = mbedtls_psa_hash_compute( alg, input, input_length, + hash, hash_size, hash_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + (void) status; + (void) alg; + (void) input; + (void) input_length; + (void) hash; + (void) hash_size; + (void) hash_length; + + return( PSA_ERROR_NOT_SUPPORTED ); +} + +psa_status_t psa_driver_wrapper_hash_setup( + psa_hash_operation_t *operation, + psa_algorithm_t alg ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + + /* Try setup on accelerators first */ +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_hash_setup( + &operation->ctx.test_driver_ctx, alg ); + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + + /* If software fallback is compiled in, try fallback */ +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + status = mbedtls_psa_hash_setup( &operation->ctx.mbedtls_ctx, alg ); + if( status == PSA_SUCCESS ) + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif + /* Nothing left to try if we fall through here */ + (void) status; + (void) operation; + (void) alg; + return( PSA_ERROR_NOT_SUPPORTED ); +} + +psa_status_t psa_driver_wrapper_hash_clone( + const psa_hash_operation_t *source_operation, + psa_hash_operation_t *target_operation ) +{ + switch( source_operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + target_operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + return( mbedtls_psa_hash_clone( &source_operation->ctx.mbedtls_ctx, + &target_operation->ctx.mbedtls_ctx ) ); +#endif +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + target_operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + return( mbedtls_test_transparent_hash_clone( + &source_operation->ctx.test_driver_ctx, + &target_operation->ctx.test_driver_ctx ) ); +#endif + default: + (void) target_operation; + return( PSA_ERROR_BAD_STATE ); + } +} + +psa_status_t psa_driver_wrapper_hash_update( + psa_hash_operation_t *operation, + const uint8_t *input, + size_t input_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_hash_update( &operation->ctx.mbedtls_ctx, + input, input_length ) ); +#endif +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_hash_update( + &operation->ctx.test_driver_ctx, + input, input_length ) ); +#endif + default: + (void) input; + (void) input_length; + return( PSA_ERROR_BAD_STATE ); + } +} + +psa_status_t psa_driver_wrapper_hash_finish( + psa_hash_operation_t *operation, + uint8_t *hash, + size_t hash_size, + size_t *hash_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_hash_finish( &operation->ctx.mbedtls_ctx, + hash, hash_size, hash_length ) ); +#endif +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_hash_finish( + &operation->ctx.test_driver_ctx, + hash, hash_size, hash_length ) ); +#endif + default: + (void) hash; + (void) hash_size; + (void) hash_length; + return( PSA_ERROR_BAD_STATE ); + } +} + +psa_status_t psa_driver_wrapper_hash_abort( + psa_hash_operation_t *operation ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_HASH) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_hash_abort( &operation->ctx.mbedtls_ctx ) ); +#endif +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_hash_abort( + &operation->ctx.test_driver_ctx ) ); +#endif + default: + return( PSA_ERROR_BAD_STATE ); + } +} + +psa_status_t psa_driver_wrapper_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 ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_aead_encrypt( + attributes, key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + plaintext, plaintext_length, + ciphertext, ciphertext_size, ciphertext_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Fell through, meaning no accelerator supports this operation */ + return( mbedtls_psa_aead_encrypt( + attributes, key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + plaintext, plaintext_length, + ciphertext, ciphertext_size, ciphertext_length ) ); + + /* Add cases for opaque driver here */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_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 ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_aead_decrypt( + attributes, key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + ciphertext, ciphertext_length, + plaintext, plaintext_size, plaintext_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Fell through, meaning no accelerator supports this operation */ + return( mbedtls_psa_aead_decrypt( + attributes, key_buffer, key_buffer_size, + alg, + nonce, nonce_length, + additional_data, additional_data_length, + ciphertext, ciphertext_length, + plaintext, plaintext_size, plaintext_length ) ); + + /* Add cases for opaque driver here */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_aead_encrypt_setup( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + status = mbedtls_test_transparent_aead_encrypt_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, key_buffer, key_buffer_size, + alg ); + + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Fell through, meaning no accelerator supports this operation */ + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + status = mbedtls_psa_aead_encrypt_setup( + &operation->ctx.mbedtls_ctx, attributes, + key_buffer, key_buffer_size, + alg ); + + return( status ); + + /* Add cases for opaque driver here */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_aead_decrypt_setup( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + status = mbedtls_test_transparent_aead_decrypt_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Fell through, meaning no accelerator supports this operation */ + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + status = mbedtls_psa_aead_decrypt_setup( + &operation->ctx.mbedtls_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + return( status ); + + /* Add cases for opaque driver here */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_aead_set_nonce( + psa_aead_operation_t *operation, + const uint8_t *nonce, + size_t nonce_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_set_nonce( &operation->ctx.mbedtls_ctx, + nonce, + nonce_length ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_set_nonce( + &operation->ctx.transparent_test_driver_ctx, + nonce, nonce_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)nonce; + (void)nonce_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_set_lengths( + psa_aead_operation_t *operation, + size_t ad_length, + size_t plaintext_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_set_lengths( &operation->ctx.mbedtls_ctx, + ad_length, + plaintext_length ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_set_lengths( + &operation->ctx.transparent_test_driver_ctx, + ad_length, plaintext_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)ad_length; + (void)plaintext_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_update_ad( + psa_aead_operation_t *operation, + const uint8_t *input, + size_t input_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_update_ad( &operation->ctx.mbedtls_ctx, + input, + input_length ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_update_ad( + &operation->ctx.transparent_test_driver_ctx, + input, input_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)input; + (void)input_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_update( + psa_aead_operation_t *operation, + const uint8_t *input, + size_t input_length, + uint8_t *output, + size_t output_size, + size_t *output_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_update( &operation->ctx.mbedtls_ctx, + input, input_length, + output, output_size, + output_length ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_update( + &operation->ctx.transparent_test_driver_ctx, + input, input_length, output, output_size, + output_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)input; + (void)input_length; + (void)output; + (void)output_size; + (void)output_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_finish( + 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 ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_finish( &operation->ctx.mbedtls_ctx, + ciphertext, + ciphertext_size, + ciphertext_length, tag, + tag_size, tag_length ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_finish( + &operation->ctx.transparent_test_driver_ctx, + ciphertext, ciphertext_size, + ciphertext_length, tag, tag_size, tag_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)ciphertext; + (void)ciphertext_size; + (void)ciphertext_length; + (void)tag; + (void)tag_size; + (void)tag_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_verify( + psa_aead_operation_t *operation, + uint8_t *plaintext, + size_t plaintext_size, + size_t *plaintext_length, + const uint8_t *tag, + size_t tag_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + { + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; + size_t check_tag_length; + + status = mbedtls_psa_aead_finish( &operation->ctx.mbedtls_ctx, + plaintext, + plaintext_size, + plaintext_length, + check_tag, + sizeof( check_tag ), + &check_tag_length ); + + if( status == PSA_SUCCESS ) + { + if( tag_length != check_tag_length || + mbedtls_psa_safer_memcmp( tag, check_tag, tag_length ) + != 0 ) + status = PSA_ERROR_INVALID_SIGNATURE; + } + + mbedtls_platform_zeroize( check_tag, sizeof( check_tag ) ); + + return( status ); + } + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_verify( + &operation->ctx.transparent_test_driver_ctx, + plaintext, plaintext_size, + plaintext_length, tag, tag_length ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + (void)plaintext; + (void)plaintext_size; + (void)plaintext_length; + (void)tag; + (void)tag_length; + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +psa_status_t psa_driver_wrapper_aead_abort( + psa_aead_operation_t *operation ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_AEAD) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_aead_abort( &operation->ctx.mbedtls_ctx ) ); + +#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_aead_abort( + &operation->ctx.transparent_test_driver_ctx ) ); + + /* Add cases for opaque driver here */ + +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + } + + return( PSA_ERROR_INVALID_ARGUMENT ); +} + +/* + * MAC functions + */ +psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_mac_compute( + attributes, key_buffer, key_buffer_size, alg, + input, input_length, + mac, mac_size, mac_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + /* Fell through, meaning no accelerator supports this operation */ + status = mbedtls_psa_mac_compute( + attributes, key_buffer, key_buffer_size, alg, + input, input_length, + mac, mac_size, mac_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + return( PSA_ERROR_NOT_SUPPORTED ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_mac_compute( + attributes, key_buffer, key_buffer_size, alg, + input, input_length, + mac, mac_size, mac_length ); + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + (void) input; + (void) input_length; + (void) mac; + (void) mac_size; + (void) mac_length; + (void) status; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_sign_setup( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_mac_sign_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + /* Declared with fallback == true */ + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + /* Fell through, meaning no accelerator supports this operation */ + status = mbedtls_psa_mac_sign_setup( &operation->ctx.mbedtls_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + if( status == PSA_SUCCESS ) + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + return( PSA_ERROR_NOT_SUPPORTED ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_mac_sign_setup( + &operation->ctx.opaque_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; + + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void) status; + (void) operation; + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_verify_setup( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_mac_verify_setup( + &operation->ctx.transparent_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + /* Declared with fallback == true */ + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + /* Fell through, meaning no accelerator supports this operation */ + status = mbedtls_psa_mac_verify_setup( &operation->ctx.mbedtls_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + if( status == PSA_SUCCESS ) + operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; + + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + return( PSA_ERROR_NOT_SUPPORTED ); + + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + status = mbedtls_test_opaque_mac_verify_setup( + &operation->ctx.opaque_test_driver_ctx, + attributes, + key_buffer, key_buffer_size, + alg ); + + if( status == PSA_SUCCESS ) + operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; + + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + /* Key is declared with a lifetime not known to us */ + (void) status; + (void) operation; + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_update( + psa_mac_operation_t *operation, + const uint8_t *input, + size_t input_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_mac_update( &operation->ctx.mbedtls_ctx, + input, input_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_mac_update( + &operation->ctx.transparent_test_driver_ctx, + input, input_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_mac_update( + &operation->ctx.opaque_test_driver_ctx, + input, input_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + (void) input; + (void) input_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_sign_finish( + psa_mac_operation_t *operation, + uint8_t *mac, + size_t mac_size, + size_t *mac_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_mac_sign_finish( &operation->ctx.mbedtls_ctx, + mac, mac_size, mac_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_mac_sign_finish( + &operation->ctx.transparent_test_driver_ctx, + mac, mac_size, mac_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_mac_sign_finish( + &operation->ctx.opaque_test_driver_ctx, + mac, mac_size, mac_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + (void) mac; + (void) mac_size; + (void) mac_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_verify_finish( + psa_mac_operation_t *operation, + const uint8_t *mac, + size_t mac_length ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_mac_verify_finish( &operation->ctx.mbedtls_ctx, + mac, mac_length ) ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_mac_verify_finish( + &operation->ctx.transparent_test_driver_ctx, + mac, mac_length ) ); + + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_mac_verify_finish( + &operation->ctx.opaque_test_driver_ctx, + mac, mac_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + (void) mac; + (void) mac_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_mac_abort( + psa_mac_operation_t *operation ) +{ + switch( operation->id ) + { +#if defined(MBEDTLS_PSA_BUILTIN_MAC) + case PSA_CRYPTO_MBED_TLS_DRIVER_ID: + return( mbedtls_psa_mac_abort( &operation->ctx.mbedtls_ctx ) ); +#endif /* MBEDTLS_PSA_BUILTIN_MAC */ + +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: + return( mbedtls_test_transparent_mac_abort( + &operation->ctx.transparent_test_driver_ctx ) ); + case MBEDTLS_TEST_OPAQUE_DRIVER_ID: + return( mbedtls_test_opaque_mac_abort( + &operation->ctx.opaque_test_driver_ctx ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + default: + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +/* + * Asymmetric cryptography + */ +psa_status_t psa_driver_wrapper_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 ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_asymmetric_encrypt( attributes, + key_buffer, key_buffer_size, alg, input, input_length, + salt, salt_length, output, output_size, + output_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + return( mbedtls_psa_asymmetric_encrypt( attributes, + key_buffer, key_buffer_size, alg, input, input_length, + salt, salt_length, output, output_size, output_length ) + ); + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_asymmetric_encrypt( attributes, + key_buffer, key_buffer_size, alg, input, input_length, + salt, salt_length, output, output_size, output_length ) + ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + (void)input; + (void)input_length; + (void)salt; + (void)salt_length; + (void)output; + (void)output_size; + (void)output_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_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 ) +{ + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = mbedtls_test_transparent_asymmetric_decrypt( attributes, + key_buffer, key_buffer_size, alg, input, input_length, + salt, salt_length, output, output_size, + output_length ); + /* Declared with fallback == true */ + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + return( mbedtls_psa_asymmetric_decrypt( attributes, + key_buffer, key_buffer_size, alg,input, input_length, + salt, salt_length, output, output_size, + output_length ) ); + /* Add cases for opaque driver here */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_asymmetric_decrypt( attributes, + key_buffer, key_buffer_size, alg, input, input_length, + salt, salt_length, output, output_size, + output_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + /* Key is declared with a lifetime not known to us */ + (void)status; + (void)key_buffer; + (void)key_buffer_size; + (void)alg; + (void)input; + (void)input_length; + (void)salt; + (void)salt_length; + (void)output; + (void)output_size; + (void)output_length; + return( PSA_ERROR_INVALID_ARGUMENT ); + } +} + +psa_status_t psa_driver_wrapper_key_agreement( + 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 status = PSA_ERROR_CORRUPTION_DETECTED; + psa_key_location_t location = + PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); + + switch( location ) + { + case PSA_KEY_LOCATION_LOCAL_STORAGE: + /* Key is stored in the slot in export representation, so + * cycle through all known transparent accelerators */ +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + status = + mbedtls_test_transparent_key_agreement( attributes, + key_buffer, key_buffer_size, alg, peer_key, + peer_key_length, shared_secret, shared_secret_size, + shared_secret_length ); + if( status != PSA_ERROR_NOT_SUPPORTED ) + return( status ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + /* Software Fallback */ + status = psa_key_agreement_raw_builtin( attributes, + key_buffer, + key_buffer_size, + alg, + peer_key, + peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length ); + return( status ); +#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) +#if defined(PSA_CRYPTO_DRIVER_TEST) + case PSA_CRYPTO_TEST_DRIVER_LOCATION: + return( mbedtls_test_opaque_key_agreement( attributes, + key_buffer, key_buffer_size, alg, peer_key, + peer_key_length, shared_secret, shared_secret_size, + shared_secret_length ) ); +#endif /* PSA_CRYPTO_DRIVER_TEST */ +#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ + + default: + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) peer_key; + (void) peer_key_length; + (void) shared_secret; + (void) shared_secret_size; + (void) shared_secret_length; + return( PSA_ERROR_NOT_SUPPORTED ); + + } + } + +#endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/ssl_debug_helpers_generated.c b/library/ssl_debug_helpers_generated.c new file mode 100644 index 000000000..e3e93f8c6 --- /dev/null +++ b/library/ssl_debug_helpers_generated.c @@ -0,0 +1,223 @@ +/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */ + +/** + * \file ssl_debug_helpers_generated.c + * + * \brief Automatically generated helper functions for debugging + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "common.h" + +#if defined(MBEDTLS_DEBUG_C) + +#include "ssl_debug_helpers.h" + + +const char *mbedtls_ssl_named_group_to_str( uint16_t in ) +{ + switch( in ) + { + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1: + return "secp192k1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1: + return "secp192r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1: + return "secp224k1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1: + return "secp224r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1: + return "secp256k1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1: + return "secp256r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1: + return "secp384r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1: + return "secp521r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1: + return "bp256r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1: + return "bp384r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1: + return "bp512r1"; + case MBEDTLS_SSL_IANA_TLS_GROUP_X25519: + return "x25519"; + case MBEDTLS_SSL_IANA_TLS_GROUP_X448: + return "x448"; + case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048: + return "ffdhe2048"; + case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE3072: + return "ffdhe3072"; + case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE4096: + return "ffdhe4096"; + case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE6144: + return "ffdhe6144"; + case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192: + return "ffdhe8192"; + }; + + return "UNKOWN"; +} +const char *mbedtls_ssl_sig_alg_to_str( uint16_t in ) +{ + switch( in ) + { + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: + return "rsa_pkcs1_sha256"; + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: + return "rsa_pkcs1_sha384"; + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: + return "rsa_pkcs1_sha512"; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: + return "ecdsa_secp256r1_sha256"; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: + return "ecdsa_secp384r1_sha384"; + case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: + return "ecdsa_secp521r1_sha512"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: + return "rsa_pss_rsae_sha256"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: + return "rsa_pss_rsae_sha384"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: + return "rsa_pss_rsae_sha512"; + case MBEDTLS_TLS1_3_SIG_ED25519: + return "ed25519"; + case MBEDTLS_TLS1_3_SIG_ED448: + return "ed448"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256: + return "rsa_pss_pss_sha256"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384: + return "rsa_pss_pss_sha384"; + case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512: + return "rsa_pss_pss_sha512"; + case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1: + return "rsa_pkcs1_sha1"; + case MBEDTLS_TLS1_3_SIG_ECDSA_SHA1: + return "ecdsa_sha1"; + case MBEDTLS_TLS1_3_SIG_NONE: + return "none"; + }; + + return "UNKNOWN"; +} +const char *mbedtls_ssl_states_str( mbedtls_ssl_states in ) +{ + const char * in_to_str[]= + { + [MBEDTLS_SSL_HELLO_REQUEST] = "MBEDTLS_SSL_HELLO_REQUEST", + [MBEDTLS_SSL_CLIENT_HELLO] = "MBEDTLS_SSL_CLIENT_HELLO", + [MBEDTLS_SSL_SERVER_HELLO] = "MBEDTLS_SSL_SERVER_HELLO", + [MBEDTLS_SSL_SERVER_CERTIFICATE] = "MBEDTLS_SSL_SERVER_CERTIFICATE", + [MBEDTLS_SSL_SERVER_KEY_EXCHANGE] = "MBEDTLS_SSL_SERVER_KEY_EXCHANGE", + [MBEDTLS_SSL_CERTIFICATE_REQUEST] = "MBEDTLS_SSL_CERTIFICATE_REQUEST", + [MBEDTLS_SSL_SERVER_HELLO_DONE] = "MBEDTLS_SSL_SERVER_HELLO_DONE", + [MBEDTLS_SSL_CLIENT_CERTIFICATE] = "MBEDTLS_SSL_CLIENT_CERTIFICATE", + [MBEDTLS_SSL_CLIENT_KEY_EXCHANGE] = "MBEDTLS_SSL_CLIENT_KEY_EXCHANGE", + [MBEDTLS_SSL_CERTIFICATE_VERIFY] = "MBEDTLS_SSL_CERTIFICATE_VERIFY", + [MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC] = "MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC", + [MBEDTLS_SSL_CLIENT_FINISHED] = "MBEDTLS_SSL_CLIENT_FINISHED", + [MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC] = "MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC", + [MBEDTLS_SSL_SERVER_FINISHED] = "MBEDTLS_SSL_SERVER_FINISHED", + [MBEDTLS_SSL_FLUSH_BUFFERS] = "MBEDTLS_SSL_FLUSH_BUFFERS", + [MBEDTLS_SSL_HANDSHAKE_WRAPUP] = "MBEDTLS_SSL_HANDSHAKE_WRAPUP", + [MBEDTLS_SSL_NEW_SESSION_TICKET] = "MBEDTLS_SSL_NEW_SESSION_TICKET", + [MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT] = "MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT", + [MBEDTLS_SSL_HELLO_RETRY_REQUEST] = "MBEDTLS_SSL_HELLO_RETRY_REQUEST", + [MBEDTLS_SSL_ENCRYPTED_EXTENSIONS] = "MBEDTLS_SSL_ENCRYPTED_EXTENSIONS", + [MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY] = "MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY", + [MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED] = "MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED", + [MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO] = "MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO", + [MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO] = "MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO", + [MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST] = "MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST", + [MBEDTLS_SSL_HANDSHAKE_OVER] = "MBEDTLS_SSL_HANDSHAKE_OVER", + [MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET] = "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET", + [MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH] = "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH", + }; + + if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || + in_to_str[ in ] == NULL ) + { + return "UNKNOWN_VALUE"; + } + return in_to_str[ in ]; +} + +const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in ) +{ + const char * in_to_str[]= + { + [MBEDTLS_SSL_VERSION_UNKNOWN] = "MBEDTLS_SSL_VERSION_UNKNOWN", + [MBEDTLS_SSL_VERSION_TLS1_2] = "MBEDTLS_SSL_VERSION_TLS1_2", + [MBEDTLS_SSL_VERSION_TLS1_3] = "MBEDTLS_SSL_VERSION_TLS1_3", + }; + + if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || + in_to_str[ in ] == NULL ) + { + return "UNKNOWN_VALUE"; + } + return in_to_str[ in ]; +} + +const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in ) +{ + const char * in_to_str[]= + { + [MBEDTLS_SSL_TLS_PRF_NONE] = "MBEDTLS_SSL_TLS_PRF_NONE", + [MBEDTLS_SSL_TLS_PRF_SHA384] = "MBEDTLS_SSL_TLS_PRF_SHA384", + [MBEDTLS_SSL_TLS_PRF_SHA256] = "MBEDTLS_SSL_TLS_PRF_SHA256", + [MBEDTLS_SSL_HKDF_EXPAND_SHA384] = "MBEDTLS_SSL_HKDF_EXPAND_SHA384", + [MBEDTLS_SSL_HKDF_EXPAND_SHA256] = "MBEDTLS_SSL_HKDF_EXPAND_SHA256", + }; + + if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || + in_to_str[ in ] == NULL ) + { + return "UNKNOWN_VALUE"; + } + return in_to_str[ in ]; +} + +const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in ) +{ + const char * in_to_str[]= + { + [MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET", +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET", + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET", + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET", + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET", + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET", + [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET", +#endif + }; + + if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || + in_to_str[ in ] == NULL ) + { + return "UNKNOWN_VALUE"; + } + return in_to_str[ in ]; +} + + + +#endif /* MBEDTLS_DEBUG_C */ +/* End of automatically generated file. */ + diff --git a/library/version_features.c b/library/version_features.c new file mode 100644 index 000000000..e328cca33 --- /dev/null +++ b/library/version_features.c @@ -0,0 +1,809 @@ +/* + * Version feature information + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "common.h" + +#if defined(MBEDTLS_VERSION_C) + +#include "mbedtls/version.h" + +#include + +static const char * const features[] = { +#if defined(MBEDTLS_VERSION_FEATURES) +#if defined(MBEDTLS_HAVE_ASM) + "MBEDTLS_HAVE_ASM", +#endif /* MBEDTLS_HAVE_ASM */ +#if defined(MBEDTLS_NO_UDBL_DIVISION) + "MBEDTLS_NO_UDBL_DIVISION", +#endif /* MBEDTLS_NO_UDBL_DIVISION */ +#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) + "MBEDTLS_NO_64BIT_MULTIPLICATION", +#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ +#if defined(MBEDTLS_HAVE_SSE2) + "MBEDTLS_HAVE_SSE2", +#endif /* MBEDTLS_HAVE_SSE2 */ +#if defined(MBEDTLS_HAVE_TIME) + "MBEDTLS_HAVE_TIME", +#endif /* MBEDTLS_HAVE_TIME */ +#if defined(MBEDTLS_HAVE_TIME_DATE) + "MBEDTLS_HAVE_TIME_DATE", +#endif /* MBEDTLS_HAVE_TIME_DATE */ +#if defined(MBEDTLS_PLATFORM_MEMORY) + "MBEDTLS_PLATFORM_MEMORY", +#endif /* MBEDTLS_PLATFORM_MEMORY */ +#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) + "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS", +#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ +#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) + "MBEDTLS_PLATFORM_SETBUF_ALT", +#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ +#if defined(MBEDTLS_PLATFORM_EXIT_ALT) + "MBEDTLS_PLATFORM_EXIT_ALT", +#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ +#if defined(MBEDTLS_PLATFORM_TIME_ALT) + "MBEDTLS_PLATFORM_TIME_ALT", +#endif /* MBEDTLS_PLATFORM_TIME_ALT */ +#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) + "MBEDTLS_PLATFORM_FPRINTF_ALT", +#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ +#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) + "MBEDTLS_PLATFORM_PRINTF_ALT", +#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ +#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) + "MBEDTLS_PLATFORM_SNPRINTF_ALT", +#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) + "MBEDTLS_PLATFORM_VSNPRINTF_ALT", +#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ +#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) + "MBEDTLS_PLATFORM_NV_SEED_ALT", +#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ +#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) + "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT", +#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ +#if defined(MBEDTLS_DEPRECATED_WARNING) + "MBEDTLS_DEPRECATED_WARNING", +#endif /* MBEDTLS_DEPRECATED_WARNING */ +#if defined(MBEDTLS_DEPRECATED_REMOVED) + "MBEDTLS_DEPRECATED_REMOVED", +#endif /* MBEDTLS_DEPRECATED_REMOVED */ +#if defined(MBEDTLS_TIMING_ALT) + "MBEDTLS_TIMING_ALT", +#endif /* MBEDTLS_TIMING_ALT */ +#if defined(MBEDTLS_AES_ALT) + "MBEDTLS_AES_ALT", +#endif /* MBEDTLS_AES_ALT */ +#if defined(MBEDTLS_ARIA_ALT) + "MBEDTLS_ARIA_ALT", +#endif /* MBEDTLS_ARIA_ALT */ +#if defined(MBEDTLS_CAMELLIA_ALT) + "MBEDTLS_CAMELLIA_ALT", +#endif /* MBEDTLS_CAMELLIA_ALT */ +#if defined(MBEDTLS_CCM_ALT) + "MBEDTLS_CCM_ALT", +#endif /* MBEDTLS_CCM_ALT */ +#if defined(MBEDTLS_CHACHA20_ALT) + "MBEDTLS_CHACHA20_ALT", +#endif /* MBEDTLS_CHACHA20_ALT */ +#if defined(MBEDTLS_CHACHAPOLY_ALT) + "MBEDTLS_CHACHAPOLY_ALT", +#endif /* MBEDTLS_CHACHAPOLY_ALT */ +#if defined(MBEDTLS_CMAC_ALT) + "MBEDTLS_CMAC_ALT", +#endif /* MBEDTLS_CMAC_ALT */ +#if defined(MBEDTLS_DES_ALT) + "MBEDTLS_DES_ALT", +#endif /* MBEDTLS_DES_ALT */ +#if defined(MBEDTLS_DHM_ALT) + "MBEDTLS_DHM_ALT", +#endif /* MBEDTLS_DHM_ALT */ +#if defined(MBEDTLS_ECJPAKE_ALT) + "MBEDTLS_ECJPAKE_ALT", +#endif /* MBEDTLS_ECJPAKE_ALT */ +#if defined(MBEDTLS_GCM_ALT) + "MBEDTLS_GCM_ALT", +#endif /* MBEDTLS_GCM_ALT */ +#if defined(MBEDTLS_NIST_KW_ALT) + "MBEDTLS_NIST_KW_ALT", +#endif /* MBEDTLS_NIST_KW_ALT */ +#if defined(MBEDTLS_MD5_ALT) + "MBEDTLS_MD5_ALT", +#endif /* MBEDTLS_MD5_ALT */ +#if defined(MBEDTLS_POLY1305_ALT) + "MBEDTLS_POLY1305_ALT", +#endif /* MBEDTLS_POLY1305_ALT */ +#if defined(MBEDTLS_RIPEMD160_ALT) + "MBEDTLS_RIPEMD160_ALT", +#endif /* MBEDTLS_RIPEMD160_ALT */ +#if defined(MBEDTLS_RSA_ALT) + "MBEDTLS_RSA_ALT", +#endif /* MBEDTLS_RSA_ALT */ +#if defined(MBEDTLS_SHA1_ALT) + "MBEDTLS_SHA1_ALT", +#endif /* MBEDTLS_SHA1_ALT */ +#if defined(MBEDTLS_SHA256_ALT) + "MBEDTLS_SHA256_ALT", +#endif /* MBEDTLS_SHA256_ALT */ +#if defined(MBEDTLS_SHA512_ALT) + "MBEDTLS_SHA512_ALT", +#endif /* MBEDTLS_SHA512_ALT */ +#if defined(MBEDTLS_ECP_ALT) + "MBEDTLS_ECP_ALT", +#endif /* MBEDTLS_ECP_ALT */ +#if defined(MBEDTLS_MD5_PROCESS_ALT) + "MBEDTLS_MD5_PROCESS_ALT", +#endif /* MBEDTLS_MD5_PROCESS_ALT */ +#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) + "MBEDTLS_RIPEMD160_PROCESS_ALT", +#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ +#if defined(MBEDTLS_SHA1_PROCESS_ALT) + "MBEDTLS_SHA1_PROCESS_ALT", +#endif /* MBEDTLS_SHA1_PROCESS_ALT */ +#if defined(MBEDTLS_SHA256_PROCESS_ALT) + "MBEDTLS_SHA256_PROCESS_ALT", +#endif /* MBEDTLS_SHA256_PROCESS_ALT */ +#if defined(MBEDTLS_SHA512_PROCESS_ALT) + "MBEDTLS_SHA512_PROCESS_ALT", +#endif /* MBEDTLS_SHA512_PROCESS_ALT */ +#if defined(MBEDTLS_DES_SETKEY_ALT) + "MBEDTLS_DES_SETKEY_ALT", +#endif /* MBEDTLS_DES_SETKEY_ALT */ +#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) + "MBEDTLS_DES_CRYPT_ECB_ALT", +#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ +#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) + "MBEDTLS_DES3_CRYPT_ECB_ALT", +#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ +#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) + "MBEDTLS_AES_SETKEY_ENC_ALT", +#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ +#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) + "MBEDTLS_AES_SETKEY_DEC_ALT", +#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ +#if defined(MBEDTLS_AES_ENCRYPT_ALT) + "MBEDTLS_AES_ENCRYPT_ALT", +#endif /* MBEDTLS_AES_ENCRYPT_ALT */ +#if defined(MBEDTLS_AES_DECRYPT_ALT) + "MBEDTLS_AES_DECRYPT_ALT", +#endif /* MBEDTLS_AES_DECRYPT_ALT */ +#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) + "MBEDTLS_ECDH_GEN_PUBLIC_ALT", +#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ +#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) + "MBEDTLS_ECDH_COMPUTE_SHARED_ALT", +#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ +#if defined(MBEDTLS_ECDSA_VERIFY_ALT) + "MBEDTLS_ECDSA_VERIFY_ALT", +#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ +#if defined(MBEDTLS_ECDSA_SIGN_ALT) + "MBEDTLS_ECDSA_SIGN_ALT", +#endif /* MBEDTLS_ECDSA_SIGN_ALT */ +#if defined(MBEDTLS_ECDSA_GENKEY_ALT) + "MBEDTLS_ECDSA_GENKEY_ALT", +#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ +#if defined(MBEDTLS_ECP_INTERNAL_ALT) + "MBEDTLS_ECP_INTERNAL_ALT", +#endif /* MBEDTLS_ECP_INTERNAL_ALT */ +#if defined(MBEDTLS_ECP_NO_FALLBACK) + "MBEDTLS_ECP_NO_FALLBACK", +#endif /* MBEDTLS_ECP_NO_FALLBACK */ +#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) + "MBEDTLS_ECP_RANDOMIZE_JAC_ALT", +#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ +#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) + "MBEDTLS_ECP_ADD_MIXED_ALT", +#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ +#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) + "MBEDTLS_ECP_DOUBLE_JAC_ALT", +#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) + "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT", +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) + "MBEDTLS_ECP_NORMALIZE_JAC_ALT", +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ +#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) + "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT", +#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ +#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) + "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT", +#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ +#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) + "MBEDTLS_ECP_NORMALIZE_MXZ_ALT", +#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ +#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) + "MBEDTLS_ENTROPY_HARDWARE_ALT", +#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ +#if defined(MBEDTLS_AES_ROM_TABLES) + "MBEDTLS_AES_ROM_TABLES", +#endif /* MBEDTLS_AES_ROM_TABLES */ +#if defined(MBEDTLS_AES_FEWER_TABLES) + "MBEDTLS_AES_FEWER_TABLES", +#endif /* MBEDTLS_AES_FEWER_TABLES */ +#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) + "MBEDTLS_CAMELLIA_SMALL_MEMORY", +#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ +#if defined(MBEDTLS_CHECK_RETURN_WARNING) + "MBEDTLS_CHECK_RETURN_WARNING", +#endif /* MBEDTLS_CHECK_RETURN_WARNING */ +#if defined(MBEDTLS_CIPHER_MODE_CBC) + "MBEDTLS_CIPHER_MODE_CBC", +#endif /* MBEDTLS_CIPHER_MODE_CBC */ +#if defined(MBEDTLS_CIPHER_MODE_CFB) + "MBEDTLS_CIPHER_MODE_CFB", +#endif /* MBEDTLS_CIPHER_MODE_CFB */ +#if defined(MBEDTLS_CIPHER_MODE_CTR) + "MBEDTLS_CIPHER_MODE_CTR", +#endif /* MBEDTLS_CIPHER_MODE_CTR */ +#if defined(MBEDTLS_CIPHER_MODE_OFB) + "MBEDTLS_CIPHER_MODE_OFB", +#endif /* MBEDTLS_CIPHER_MODE_OFB */ +#if defined(MBEDTLS_CIPHER_MODE_XTS) + "MBEDTLS_CIPHER_MODE_XTS", +#endif /* MBEDTLS_CIPHER_MODE_XTS */ +#if defined(MBEDTLS_CIPHER_NULL_CIPHER) + "MBEDTLS_CIPHER_NULL_CIPHER", +#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ +#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) + "MBEDTLS_CIPHER_PADDING_PKCS7", +#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ +#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) + "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS", +#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) + "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN", +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) + "MBEDTLS_CIPHER_PADDING_ZEROS", +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ +#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) + "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY", +#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) + "MBEDTLS_ECP_DP_SECP192R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) + "MBEDTLS_ECP_DP_SECP224R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) + "MBEDTLS_ECP_DP_SECP256R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) + "MBEDTLS_ECP_DP_SECP384R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) + "MBEDTLS_ECP_DP_SECP521R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) + "MBEDTLS_ECP_DP_SECP192K1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) + "MBEDTLS_ECP_DP_SECP224K1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) + "MBEDTLS_ECP_DP_SECP256K1_ENABLED", +#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) + "MBEDTLS_ECP_DP_BP256R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) + "MBEDTLS_ECP_DP_BP384R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) + "MBEDTLS_ECP_DP_BP512R1_ENABLED", +#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) + "MBEDTLS_ECP_DP_CURVE25519_ENABLED", +#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) + "MBEDTLS_ECP_DP_CURVE448_ENABLED", +#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ +#if defined(MBEDTLS_ECP_NIST_OPTIM) + "MBEDTLS_ECP_NIST_OPTIM", +#endif /* MBEDTLS_ECP_NIST_OPTIM */ +#if defined(MBEDTLS_ECP_RESTARTABLE) + "MBEDTLS_ECP_RESTARTABLE", +#endif /* MBEDTLS_ECP_RESTARTABLE */ +#if defined(MBEDTLS_ECDSA_DETERMINISTIC) + "MBEDTLS_ECDSA_DETERMINISTIC", +#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ +#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) + "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) + "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) + "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED", +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ +#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) + "MBEDTLS_PK_PARSE_EC_EXTENDED", +#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ +#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) + "MBEDTLS_ERROR_STRERROR_DUMMY", +#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ +#if defined(MBEDTLS_GENPRIME) + "MBEDTLS_GENPRIME", +#endif /* MBEDTLS_GENPRIME */ +#if defined(MBEDTLS_FS_IO) + "MBEDTLS_FS_IO", +#endif /* MBEDTLS_FS_IO */ +#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) + "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES", +#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ +#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) + "MBEDTLS_NO_PLATFORM_ENTROPY", +#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ +#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) + "MBEDTLS_ENTROPY_FORCE_SHA256", +#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ +#if defined(MBEDTLS_ENTROPY_NV_SEED) + "MBEDTLS_ENTROPY_NV_SEED", +#endif /* MBEDTLS_ENTROPY_NV_SEED */ +#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) + "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER", +#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ +#if defined(MBEDTLS_MEMORY_DEBUG) + "MBEDTLS_MEMORY_DEBUG", +#endif /* MBEDTLS_MEMORY_DEBUG */ +#if defined(MBEDTLS_MEMORY_BACKTRACE) + "MBEDTLS_MEMORY_BACKTRACE", +#endif /* MBEDTLS_MEMORY_BACKTRACE */ +#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) + "MBEDTLS_PK_RSA_ALT_SUPPORT", +#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ +#if defined(MBEDTLS_PKCS1_V15) + "MBEDTLS_PKCS1_V15", +#endif /* MBEDTLS_PKCS1_V15 */ +#if defined(MBEDTLS_PKCS1_V21) + "MBEDTLS_PKCS1_V21", +#endif /* MBEDTLS_PKCS1_V21 */ +#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) + "MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS", +#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ +#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) + "MBEDTLS_PSA_CRYPTO_CLIENT", +#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) + "MBEDTLS_PSA_CRYPTO_DRIVERS", +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ +#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) + "MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG", +#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ +#if defined(MBEDTLS_PSA_CRYPTO_SPM) + "MBEDTLS_PSA_CRYPTO_SPM", +#endif /* MBEDTLS_PSA_CRYPTO_SPM */ +#if defined(MBEDTLS_PSA_INJECT_ENTROPY) + "MBEDTLS_PSA_INJECT_ENTROPY", +#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ +#if defined(MBEDTLS_RSA_NO_CRT) + "MBEDTLS_RSA_NO_CRT", +#endif /* MBEDTLS_RSA_NO_CRT */ +#if defined(MBEDTLS_SELF_TEST) + "MBEDTLS_SELF_TEST", +#endif /* MBEDTLS_SELF_TEST */ +#if defined(MBEDTLS_SHA256_SMALLER) + "MBEDTLS_SHA256_SMALLER", +#endif /* MBEDTLS_SHA256_SMALLER */ +#if defined(MBEDTLS_SHA512_SMALLER) + "MBEDTLS_SHA512_SMALLER", +#endif /* MBEDTLS_SHA512_SMALLER */ +#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) + "MBEDTLS_SSL_ALL_ALERT_MESSAGES", +#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + "MBEDTLS_SSL_DTLS_CONNECTION_ID", +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) + "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT", +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ +#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) + "MBEDTLS_SSL_ASYNC_PRIVATE", +#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ +#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) + "MBEDTLS_SSL_CONTEXT_SERIALIZATION", +#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ +#if defined(MBEDTLS_SSL_DEBUG_ALL) + "MBEDTLS_SSL_DEBUG_ALL", +#endif /* MBEDTLS_SSL_DEBUG_ALL */ +#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) + "MBEDTLS_SSL_ENCRYPT_THEN_MAC", +#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ +#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) + "MBEDTLS_SSL_EXTENDED_MASTER_SECRET", +#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ +#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) + "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE", +#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ +#if defined(MBEDTLS_SSL_RENEGOTIATION) + "MBEDTLS_SSL_RENEGOTIATION", +#endif /* MBEDTLS_SSL_RENEGOTIATION */ +#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) + "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", +#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + "MBEDTLS_SSL_PROTO_TLS1_2", +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + "MBEDTLS_SSL_PROTO_TLS1_3", +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ +#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) + "MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE", +#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) + "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) + "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) + "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) + "MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE", +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) + "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH", +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ +#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) + "MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS", +#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ +#if defined(MBEDTLS_SSL_EARLY_DATA) + "MBEDTLS_SSL_EARLY_DATA", +#endif /* MBEDTLS_SSL_EARLY_DATA */ +#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) + "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE", +#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ +#if defined(MBEDTLS_SSL_PROTO_DTLS) + "MBEDTLS_SSL_PROTO_DTLS", +#endif /* MBEDTLS_SSL_PROTO_DTLS */ +#if defined(MBEDTLS_SSL_ALPN) + "MBEDTLS_SSL_ALPN", +#endif /* MBEDTLS_SSL_ALPN */ +#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) + "MBEDTLS_SSL_DTLS_ANTI_REPLAY", +#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ +#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) + "MBEDTLS_SSL_DTLS_HELLO_VERIFY", +#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ +#if defined(MBEDTLS_SSL_DTLS_SRTP) + "MBEDTLS_SSL_DTLS_SRTP", +#endif /* MBEDTLS_SSL_DTLS_SRTP */ +#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) + "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE", +#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + "MBEDTLS_SSL_SESSION_TICKETS", +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + "MBEDTLS_SSL_SERVER_NAME_INDICATION", +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ +#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) + "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH", +#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) + "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN", +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) + "MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND", +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ +#if defined(MBEDTLS_TEST_HOOKS) + "MBEDTLS_TEST_HOOKS", +#endif /* MBEDTLS_TEST_HOOKS */ +#if defined(MBEDTLS_THREADING_ALT) + "MBEDTLS_THREADING_ALT", +#endif /* MBEDTLS_THREADING_ALT */ +#if defined(MBEDTLS_THREADING_PTHREAD) + "MBEDTLS_THREADING_PTHREAD", +#endif /* MBEDTLS_THREADING_PTHREAD */ +#if defined(MBEDTLS_USE_PSA_CRYPTO) + "MBEDTLS_USE_PSA_CRYPTO", +#endif /* MBEDTLS_USE_PSA_CRYPTO */ +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) + "MBEDTLS_PSA_CRYPTO_CONFIG", +#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ +#if defined(MBEDTLS_VERSION_FEATURES) + "MBEDTLS_VERSION_FEATURES", +#endif /* MBEDTLS_VERSION_FEATURES */ +#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) + "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK", +#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ +#if defined(MBEDTLS_X509_REMOVE_INFO) + "MBEDTLS_X509_REMOVE_INFO", +#endif /* MBEDTLS_X509_REMOVE_INFO */ +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) + "MBEDTLS_X509_RSASSA_PSS_SUPPORT", +#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ +#if defined(MBEDTLS_AESNI_C) + "MBEDTLS_AESNI_C", +#endif /* MBEDTLS_AESNI_C */ +#if defined(MBEDTLS_AES_C) + "MBEDTLS_AES_C", +#endif /* MBEDTLS_AES_C */ +#if defined(MBEDTLS_ASN1_PARSE_C) + "MBEDTLS_ASN1_PARSE_C", +#endif /* MBEDTLS_ASN1_PARSE_C */ +#if defined(MBEDTLS_ASN1_WRITE_C) + "MBEDTLS_ASN1_WRITE_C", +#endif /* MBEDTLS_ASN1_WRITE_C */ +#if defined(MBEDTLS_BASE64_C) + "MBEDTLS_BASE64_C", +#endif /* MBEDTLS_BASE64_C */ +#if defined(MBEDTLS_BIGNUM_C) + "MBEDTLS_BIGNUM_C", +#endif /* MBEDTLS_BIGNUM_C */ +#if defined(MBEDTLS_CAMELLIA_C) + "MBEDTLS_CAMELLIA_C", +#endif /* MBEDTLS_CAMELLIA_C */ +#if defined(MBEDTLS_ARIA_C) + "MBEDTLS_ARIA_C", +#endif /* MBEDTLS_ARIA_C */ +#if defined(MBEDTLS_CCM_C) + "MBEDTLS_CCM_C", +#endif /* MBEDTLS_CCM_C */ +#if defined(MBEDTLS_CHACHA20_C) + "MBEDTLS_CHACHA20_C", +#endif /* MBEDTLS_CHACHA20_C */ +#if defined(MBEDTLS_CHACHAPOLY_C) + "MBEDTLS_CHACHAPOLY_C", +#endif /* MBEDTLS_CHACHAPOLY_C */ +#if defined(MBEDTLS_CIPHER_C) + "MBEDTLS_CIPHER_C", +#endif /* MBEDTLS_CIPHER_C */ +#if defined(MBEDTLS_CMAC_C) + "MBEDTLS_CMAC_C", +#endif /* MBEDTLS_CMAC_C */ +#if defined(MBEDTLS_CTR_DRBG_C) + "MBEDTLS_CTR_DRBG_C", +#endif /* MBEDTLS_CTR_DRBG_C */ +#if defined(MBEDTLS_DEBUG_C) + "MBEDTLS_DEBUG_C", +#endif /* MBEDTLS_DEBUG_C */ +#if defined(MBEDTLS_DES_C) + "MBEDTLS_DES_C", +#endif /* MBEDTLS_DES_C */ +#if defined(MBEDTLS_DHM_C) + "MBEDTLS_DHM_C", +#endif /* MBEDTLS_DHM_C */ +#if defined(MBEDTLS_ECDH_C) + "MBEDTLS_ECDH_C", +#endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_ECDSA_C) + "MBEDTLS_ECDSA_C", +#endif /* MBEDTLS_ECDSA_C */ +#if defined(MBEDTLS_ECJPAKE_C) + "MBEDTLS_ECJPAKE_C", +#endif /* MBEDTLS_ECJPAKE_C */ +#if defined(MBEDTLS_ECP_C) + "MBEDTLS_ECP_C", +#endif /* MBEDTLS_ECP_C */ +#if defined(MBEDTLS_ENTROPY_C) + "MBEDTLS_ENTROPY_C", +#endif /* MBEDTLS_ENTROPY_C */ +#if defined(MBEDTLS_ERROR_C) + "MBEDTLS_ERROR_C", +#endif /* MBEDTLS_ERROR_C */ +#if defined(MBEDTLS_GCM_C) + "MBEDTLS_GCM_C", +#endif /* MBEDTLS_GCM_C */ +#if defined(MBEDTLS_HKDF_C) + "MBEDTLS_HKDF_C", +#endif /* MBEDTLS_HKDF_C */ +#if defined(MBEDTLS_HMAC_DRBG_C) + "MBEDTLS_HMAC_DRBG_C", +#endif /* MBEDTLS_HMAC_DRBG_C */ +#if defined(MBEDTLS_LMS_C) + "MBEDTLS_LMS_C", +#endif /* MBEDTLS_LMS_C */ +#if defined(MBEDTLS_LMS_PRIVATE) + "MBEDTLS_LMS_PRIVATE", +#endif /* MBEDTLS_LMS_PRIVATE */ +#if defined(MBEDTLS_NIST_KW_C) + "MBEDTLS_NIST_KW_C", +#endif /* MBEDTLS_NIST_KW_C */ +#if defined(MBEDTLS_MD_C) + "MBEDTLS_MD_C", +#endif /* MBEDTLS_MD_C */ +#if defined(MBEDTLS_MD5_C) + "MBEDTLS_MD5_C", +#endif /* MBEDTLS_MD5_C */ +#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) + "MBEDTLS_MEMORY_BUFFER_ALLOC_C", +#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ +#if defined(MBEDTLS_NET_C) + "MBEDTLS_NET_C", +#endif /* MBEDTLS_NET_C */ +#if defined(MBEDTLS_OID_C) + "MBEDTLS_OID_C", +#endif /* MBEDTLS_OID_C */ +#if defined(MBEDTLS_PADLOCK_C) + "MBEDTLS_PADLOCK_C", +#endif /* MBEDTLS_PADLOCK_C */ +#if defined(MBEDTLS_PEM_PARSE_C) + "MBEDTLS_PEM_PARSE_C", +#endif /* MBEDTLS_PEM_PARSE_C */ +#if defined(MBEDTLS_PEM_WRITE_C) + "MBEDTLS_PEM_WRITE_C", +#endif /* MBEDTLS_PEM_WRITE_C */ +#if defined(MBEDTLS_PK_C) + "MBEDTLS_PK_C", +#endif /* MBEDTLS_PK_C */ +#if defined(MBEDTLS_PK_PARSE_C) + "MBEDTLS_PK_PARSE_C", +#endif /* MBEDTLS_PK_PARSE_C */ +#if defined(MBEDTLS_PK_WRITE_C) + "MBEDTLS_PK_WRITE_C", +#endif /* MBEDTLS_PK_WRITE_C */ +#if defined(MBEDTLS_PKCS5_C) + "MBEDTLS_PKCS5_C", +#endif /* MBEDTLS_PKCS5_C */ +#if defined(MBEDTLS_PKCS7_C) + "MBEDTLS_PKCS7_C", +#endif /* MBEDTLS_PKCS7_C */ +#if defined(MBEDTLS_PKCS12_C) + "MBEDTLS_PKCS12_C", +#endif /* MBEDTLS_PKCS12_C */ +#if defined(MBEDTLS_PLATFORM_C) + "MBEDTLS_PLATFORM_C", +#endif /* MBEDTLS_PLATFORM_C */ +#if defined(MBEDTLS_POLY1305_C) + "MBEDTLS_POLY1305_C", +#endif /* MBEDTLS_POLY1305_C */ +#if defined(MBEDTLS_PSA_CRYPTO_C) + "MBEDTLS_PSA_CRYPTO_C", +#endif /* MBEDTLS_PSA_CRYPTO_C */ +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + "MBEDTLS_PSA_CRYPTO_SE_C", +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ +#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) + "MBEDTLS_PSA_CRYPTO_STORAGE_C", +#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ +#if defined(MBEDTLS_PSA_ITS_FILE_C) + "MBEDTLS_PSA_ITS_FILE_C", +#endif /* MBEDTLS_PSA_ITS_FILE_C */ +#if defined(MBEDTLS_RIPEMD160_C) + "MBEDTLS_RIPEMD160_C", +#endif /* MBEDTLS_RIPEMD160_C */ +#if defined(MBEDTLS_RSA_C) + "MBEDTLS_RSA_C", +#endif /* MBEDTLS_RSA_C */ +#if defined(MBEDTLS_SHA1_C) + "MBEDTLS_SHA1_C", +#endif /* MBEDTLS_SHA1_C */ +#if defined(MBEDTLS_SHA224_C) + "MBEDTLS_SHA224_C", +#endif /* MBEDTLS_SHA224_C */ +#if defined(MBEDTLS_SHA256_C) + "MBEDTLS_SHA256_C", +#endif /* MBEDTLS_SHA256_C */ +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) + "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT", +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) + "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY", +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ +#if defined(MBEDTLS_SHA384_C) + "MBEDTLS_SHA384_C", +#endif /* MBEDTLS_SHA384_C */ +#if defined(MBEDTLS_SHA512_C) + "MBEDTLS_SHA512_C", +#endif /* MBEDTLS_SHA512_C */ +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) + "MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT", +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) + "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY", +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ +#if defined(MBEDTLS_SSL_CACHE_C) + "MBEDTLS_SSL_CACHE_C", +#endif /* MBEDTLS_SSL_CACHE_C */ +#if defined(MBEDTLS_SSL_COOKIE_C) + "MBEDTLS_SSL_COOKIE_C", +#endif /* MBEDTLS_SSL_COOKIE_C */ +#if defined(MBEDTLS_SSL_TICKET_C) + "MBEDTLS_SSL_TICKET_C", +#endif /* MBEDTLS_SSL_TICKET_C */ +#if defined(MBEDTLS_SSL_CLI_C) + "MBEDTLS_SSL_CLI_C", +#endif /* MBEDTLS_SSL_CLI_C */ +#if defined(MBEDTLS_SSL_SRV_C) + "MBEDTLS_SSL_SRV_C", +#endif /* MBEDTLS_SSL_SRV_C */ +#if defined(MBEDTLS_SSL_TLS_C) + "MBEDTLS_SSL_TLS_C", +#endif /* MBEDTLS_SSL_TLS_C */ +#if defined(MBEDTLS_THREADING_C) + "MBEDTLS_THREADING_C", +#endif /* MBEDTLS_THREADING_C */ +#if defined(MBEDTLS_TIMING_C) + "MBEDTLS_TIMING_C", +#endif /* MBEDTLS_TIMING_C */ +#if defined(MBEDTLS_VERSION_C) + "MBEDTLS_VERSION_C", +#endif /* MBEDTLS_VERSION_C */ +#if defined(MBEDTLS_X509_USE_C) + "MBEDTLS_X509_USE_C", +#endif /* MBEDTLS_X509_USE_C */ +#if defined(MBEDTLS_X509_CRT_PARSE_C) + "MBEDTLS_X509_CRT_PARSE_C", +#endif /* MBEDTLS_X509_CRT_PARSE_C */ +#if defined(MBEDTLS_X509_CRL_PARSE_C) + "MBEDTLS_X509_CRL_PARSE_C", +#endif /* MBEDTLS_X509_CRL_PARSE_C */ +#if defined(MBEDTLS_X509_CSR_PARSE_C) + "MBEDTLS_X509_CSR_PARSE_C", +#endif /* MBEDTLS_X509_CSR_PARSE_C */ +#if defined(MBEDTLS_X509_CREATE_C) + "MBEDTLS_X509_CREATE_C", +#endif /* MBEDTLS_X509_CREATE_C */ +#if defined(MBEDTLS_X509_CRT_WRITE_C) + "MBEDTLS_X509_CRT_WRITE_C", +#endif /* MBEDTLS_X509_CRT_WRITE_C */ +#if defined(MBEDTLS_X509_CSR_WRITE_C) + "MBEDTLS_X509_CSR_WRITE_C", +#endif /* MBEDTLS_X509_CSR_WRITE_C */ +#endif /* MBEDTLS_VERSION_FEATURES */ + NULL +}; + +int mbedtls_version_check_feature( const char *feature ) +{ + const char * const *idx = features; + + if( *idx == NULL ) + return( -2 ); + + if( feature == NULL ) + return( -1 ); + + while( *idx != NULL ) + { + if( !strcmp( *idx, feature ) ) + return( 0 ); + idx++; + } + return( -1 ); +} + +#endif /* MBEDTLS_VERSION_C */ diff --git a/programs/psa/psa_constant_names_generated.c b/programs/psa/psa_constant_names_generated.c new file mode 100644 index 000000000..2ee35fe3f --- /dev/null +++ b/programs/psa/psa_constant_names_generated.c @@ -0,0 +1,474 @@ +/* Automatically generated by generate_psa_constant.py. DO NOT EDIT. */ + +static const char *psa_strerror(psa_status_t status) +{ + switch (status) { + case PSA_ERROR_ALREADY_EXISTS: return "PSA_ERROR_ALREADY_EXISTS"; + case PSA_ERROR_BAD_STATE: return "PSA_ERROR_BAD_STATE"; + case PSA_ERROR_BUFFER_TOO_SMALL: return "PSA_ERROR_BUFFER_TOO_SMALL"; + case PSA_ERROR_COMMUNICATION_FAILURE: return "PSA_ERROR_COMMUNICATION_FAILURE"; + case PSA_ERROR_CORRUPTION_DETECTED: return "PSA_ERROR_CORRUPTION_DETECTED"; + case PSA_ERROR_DATA_CORRUPT: return "PSA_ERROR_DATA_CORRUPT"; + case PSA_ERROR_DATA_INVALID: return "PSA_ERROR_DATA_INVALID"; + case PSA_ERROR_DOES_NOT_EXIST: return "PSA_ERROR_DOES_NOT_EXIST"; + case PSA_ERROR_GENERIC_ERROR: return "PSA_ERROR_GENERIC_ERROR"; + case PSA_ERROR_HARDWARE_FAILURE: return "PSA_ERROR_HARDWARE_FAILURE"; + case PSA_ERROR_INSUFFICIENT_DATA: return "PSA_ERROR_INSUFFICIENT_DATA"; + case PSA_ERROR_INSUFFICIENT_ENTROPY: return "PSA_ERROR_INSUFFICIENT_ENTROPY"; + case PSA_ERROR_INSUFFICIENT_MEMORY: return "PSA_ERROR_INSUFFICIENT_MEMORY"; + case PSA_ERROR_INSUFFICIENT_STORAGE: return "PSA_ERROR_INSUFFICIENT_STORAGE"; + case PSA_ERROR_INVALID_ARGUMENT: return "PSA_ERROR_INVALID_ARGUMENT"; + case PSA_ERROR_INVALID_HANDLE: return "PSA_ERROR_INVALID_HANDLE"; + case PSA_ERROR_INVALID_PADDING: return "PSA_ERROR_INVALID_PADDING"; + case PSA_ERROR_INVALID_SIGNATURE: return "PSA_ERROR_INVALID_SIGNATURE"; + case PSA_ERROR_NOT_PERMITTED: return "PSA_ERROR_NOT_PERMITTED"; + case PSA_ERROR_NOT_SUPPORTED: return "PSA_ERROR_NOT_SUPPORTED"; + case PSA_ERROR_STORAGE_FAILURE: return "PSA_ERROR_STORAGE_FAILURE"; + case PSA_SUCCESS: return "PSA_SUCCESS"; + default: return NULL; + } +} + +static const char *psa_ecc_family_name(psa_ecc_family_t curve) +{ + switch (curve) { + case PSA_ECC_FAMILY_BRAINPOOL_P_R1: return "PSA_ECC_FAMILY_BRAINPOOL_P_R1"; + case PSA_ECC_FAMILY_MONTGOMERY: return "PSA_ECC_FAMILY_MONTGOMERY"; + case PSA_ECC_FAMILY_SECP_K1: return "PSA_ECC_FAMILY_SECP_K1"; + case PSA_ECC_FAMILY_SECP_R1: return "PSA_ECC_FAMILY_SECP_R1"; + case PSA_ECC_FAMILY_SECP_R2: return "PSA_ECC_FAMILY_SECP_R2"; + case PSA_ECC_FAMILY_SECT_K1: return "PSA_ECC_FAMILY_SECT_K1"; + case PSA_ECC_FAMILY_SECT_R1: return "PSA_ECC_FAMILY_SECT_R1"; + case PSA_ECC_FAMILY_SECT_R2: return "PSA_ECC_FAMILY_SECT_R2"; + case PSA_ECC_FAMILY_TWISTED_EDWARDS: return "PSA_ECC_FAMILY_TWISTED_EDWARDS"; + default: return NULL; + } +} + +static const char *psa_dh_family_name(psa_dh_family_t group) +{ + switch (group) { + case PSA_DH_FAMILY_CUSTOM: return "PSA_DH_FAMILY_CUSTOM"; + case PSA_DH_FAMILY_RFC7919: return "PSA_DH_FAMILY_RFC7919"; + default: return NULL; + } +} + +static const char *psa_hash_algorithm_name(psa_algorithm_t hash_alg) +{ + switch (hash_alg) { + case PSA_ALG_ANY_HASH: return "PSA_ALG_ANY_HASH"; + case PSA_ALG_CATEGORY_HASH: return "PSA_ALG_CATEGORY_HASH"; + case PSA_ALG_MD5: return "PSA_ALG_MD5"; + case PSA_ALG_RIPEMD160: return "PSA_ALG_RIPEMD160"; + case PSA_ALG_SHA3_224: return "PSA_ALG_SHA3_224"; + case PSA_ALG_SHA3_256: return "PSA_ALG_SHA3_256"; + case PSA_ALG_SHA3_384: return "PSA_ALG_SHA3_384"; + case PSA_ALG_SHA3_512: return "PSA_ALG_SHA3_512"; + case PSA_ALG_SHAKE256_512: return "PSA_ALG_SHAKE256_512"; + case PSA_ALG_SHA_1: return "PSA_ALG_SHA_1"; + case PSA_ALG_SHA_224: return "PSA_ALG_SHA_224"; + case PSA_ALG_SHA_256: return "PSA_ALG_SHA_256"; + case PSA_ALG_SHA_384: return "PSA_ALG_SHA_384"; + case PSA_ALG_SHA_512: return "PSA_ALG_SHA_512"; + case PSA_ALG_SHA_512_224: return "PSA_ALG_SHA_512_224"; + case PSA_ALG_SHA_512_256: return "PSA_ALG_SHA_512_256"; + default: return NULL; + } +} + +static const char *psa_ka_algorithm_name(psa_algorithm_t ka_alg) +{ + switch (ka_alg) { + case PSA_ALG_CATEGORY_KEY_AGREEMENT: return "PSA_ALG_CATEGORY_KEY_AGREEMENT"; + case PSA_ALG_ECDH: return "PSA_ALG_ECDH"; + case PSA_ALG_FFDH: return "PSA_ALG_FFDH"; + default: return NULL; + } +} + +static int psa_snprint_key_type(char *buffer, size_t buffer_size, + psa_key_type_t type) +{ + size_t required_size = 0; + switch (type) { + case PSA_KEY_TYPE_AES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_AES", 16); break; + case PSA_KEY_TYPE_ARIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ARIA", 17); break; + case PSA_KEY_TYPE_CAMELLIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CAMELLIA", 21); break; + case PSA_KEY_TYPE_CATEGORY_FLAG_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_FLAG_PAIR", 31); break; + case PSA_KEY_TYPE_CATEGORY_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_KEY_PAIR", 30); break; + case PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY", 32); break; + case PSA_KEY_TYPE_CATEGORY_RAW: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_RAW", 25); break; + case PSA_KEY_TYPE_CATEGORY_SYMMETRIC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_SYMMETRIC", 31); break; + case PSA_KEY_TYPE_CHACHA20: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CHACHA20", 21); break; + case PSA_KEY_TYPE_DERIVE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DERIVE", 19); break; + case PSA_KEY_TYPE_DES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DES", 16); break; + case PSA_KEY_TYPE_DH_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_KEY_PAIR_BASE", 29); break; + case PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE", 31); break; + case PSA_KEY_TYPE_DSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_KEY_PAIR", 25); break; + case PSA_KEY_TYPE_DSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_PUBLIC_KEY", 27); break; + case PSA_KEY_TYPE_ECC_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_KEY_PAIR_BASE", 30); break; + case PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE", 32); break; + case PSA_KEY_TYPE_HMAC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_HMAC", 17); break; + case PSA_KEY_TYPE_NONE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_NONE", 17); break; + case PSA_KEY_TYPE_PASSWORD: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD", 21); break; + case PSA_KEY_TYPE_PASSWORD_HASH: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD_HASH", 26); break; + case PSA_KEY_TYPE_PEPPER: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PEPPER", 19); break; + case PSA_KEY_TYPE_RAW_DATA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RAW_DATA", 21); break; + case PSA_KEY_TYPE_RSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_KEY_PAIR", 25); break; + case PSA_KEY_TYPE_RSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_PUBLIC_KEY", 27); break; + default: + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { + append_with_curve(&buffer, buffer_size, &required_size, + "PSA_KEY_TYPE_ECC_KEY_PAIR", 25, + PSA_KEY_TYPE_ECC_GET_FAMILY(type)); + } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type)) { + append_with_curve(&buffer, buffer_size, &required_size, + "PSA_KEY_TYPE_ECC_PUBLIC_KEY", 27, + PSA_KEY_TYPE_ECC_GET_FAMILY(type)); + } else if (PSA_KEY_TYPE_IS_DH_KEY_PAIR(type)) { + append_with_group(&buffer, buffer_size, &required_size, + "PSA_KEY_TYPE_DH_KEY_PAIR", 24, + PSA_KEY_TYPE_DH_GET_FAMILY(type)); + } else if (PSA_KEY_TYPE_IS_DH_PUBLIC_KEY(type)) { + append_with_group(&buffer, buffer_size, &required_size, + "PSA_KEY_TYPE_DH_PUBLIC_KEY", 26, + PSA_KEY_TYPE_DH_GET_FAMILY(type)); + } else { + return snprintf(buffer, buffer_size, + "0x%04x", (unsigned) type); + } + break; + } + buffer[0] = 0; + return (int) required_size; +} + +#define NO_LENGTH_MODIFIER 0xfffffffflu +static int psa_snprint_algorithm(char *buffer, size_t buffer_size, + psa_algorithm_t alg) +{ + size_t required_size = 0; + psa_algorithm_t core_alg = alg; + unsigned long length_modifier = NO_LENGTH_MODIFIER; + if (PSA_ALG_IS_MAC(alg)) { + core_alg = PSA_ALG_TRUNCATED_MAC(alg, 0); + if (alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(", 33); + length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg); + } else if (core_alg != alg) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_TRUNCATED_MAC(", 22); + length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg); + } + } else if (PSA_ALG_IS_AEAD(alg)) { + core_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg); + if (core_alg == 0) { + /* For unknown AEAD algorithms, there is no "default tag length". */ + core_alg = alg; + } else if (alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(", 43); + length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); + } else if (core_alg != alg) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32); + length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); + } + } else if (PSA_ALG_IS_KEY_AGREEMENT(alg) && + !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) { + core_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg); + append(&buffer, buffer_size, &required_size, + "PSA_ALG_KEY_AGREEMENT(", 22); + append_with_alg(&buffer, buffer_size, &required_size, + psa_ka_algorithm_name, + PSA_ALG_KEY_AGREEMENT_GET_BASE(alg)); + append(&buffer, buffer_size, &required_size, ", ", 2); + } + switch (core_alg) { + case PSA_ALG_ANY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ANY_HASH", 16); break; + case PSA_ALG_CATEGORY_AEAD: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_AEAD", 21); break; + case PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION", 38); break; + case PSA_ALG_CATEGORY_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_CIPHER", 23); break; + case PSA_ALG_CATEGORY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_HASH", 21); break; + case PSA_ALG_CATEGORY_KEY_AGREEMENT: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_AGREEMENT", 30); break; + case PSA_ALG_CATEGORY_KEY_DERIVATION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_DERIVATION", 31); break; + case PSA_ALG_CATEGORY_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_MAC", 20); break; + case PSA_ALG_CATEGORY_PAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_PAKE", 21); break; + case PSA_ALG_CATEGORY_SIGN: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_SIGN", 21); break; + case PSA_ALG_CBC_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_MAC", 15); break; + case PSA_ALG_CBC_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_NO_PADDING", 22); break; + case PSA_ALG_CBC_PKCS7: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_PKCS7", 17); break; + case PSA_ALG_CCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM", 11); break; + case PSA_ALG_CCM_STAR_NO_TAG: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM_STAR_NO_TAG", 23); break; + case PSA_ALG_CFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_CFB", 11); break; + case PSA_ALG_CHACHA20_POLY1305: append(&buffer, buffer_size, &required_size, "PSA_ALG_CHACHA20_POLY1305", 25); break; + case PSA_ALG_CIPHER_MAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CIPHER_MAC_BASE", 23); break; + case PSA_ALG_CMAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CMAC", 12); break; + case PSA_ALG_CTR: append(&buffer, buffer_size, &required_size, "PSA_ALG_CTR", 11); break; + case PSA_ALG_DETERMINISTIC_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_DSA_BASE", 30); break; + case PSA_ALG_DETERMINISTIC_ECDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_ECDSA_BASE", 32); break; + case PSA_ALG_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DSA_BASE", 16); break; + case PSA_ALG_ECB_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECB_NO_PADDING", 22); break; + case PSA_ALG_ECDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDH", 12); break; + case PSA_ALG_ECDSA_ANY: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDSA_ANY", 17); break; + case PSA_ALG_ED25519PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED25519PH", 17); break; + case PSA_ALG_ED448PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED448PH", 15); break; + case PSA_ALG_FFDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_FFDH", 12); break; + case PSA_ALG_GCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_GCM", 11); break; + case PSA_ALG_HASH_EDDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HASH_EDDSA_BASE", 23); break; + case PSA_ALG_HKDF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_BASE", 17); break; + case PSA_ALG_HKDF_EXPAND_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXPAND_BASE", 24); break; + case PSA_ALG_HKDF_EXTRACT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXTRACT_BASE", 25); break; + case PSA_ALG_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HMAC_BASE", 17); break; + case PSA_ALG_JPAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_JPAKE", 13); break; + case PSA_ALG_MD5: append(&buffer, buffer_size, &required_size, "PSA_ALG_MD5", 11); break; + case PSA_ALG_NONE: append(&buffer, buffer_size, &required_size, "PSA_ALG_NONE", 12); break; + case PSA_ALG_OFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_OFB", 11); break; + case PSA_ALG_PBKDF2_AES_CMAC_PRF_128: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_AES_CMAC_PRF_128", 31); break; + case PSA_ALG_PBKDF2_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_HMAC_BASE", 24); break; + case PSA_ALG_PURE_EDDSA: append(&buffer, buffer_size, &required_size, "PSA_ALG_PURE_EDDSA", 18); break; + case PSA_ALG_RIPEMD160: append(&buffer, buffer_size, &required_size, "PSA_ALG_RIPEMD160", 17); break; + case PSA_ALG_RSA_OAEP_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_OAEP_BASE", 21); break; + case PSA_ALG_RSA_PKCS1V15_CRYPT: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_CRYPT", 26); break; + case PSA_ALG_RSA_PKCS1V15_SIGN_RAW: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_SIGN_RAW", 29); break; + case PSA_ALG_RSA_PSS_ANY_SALT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_ANY_SALT_BASE", 29); break; + case PSA_ALG_RSA_PSS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_BASE", 20); break; + case PSA_ALG_SHA3_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_224", 16); break; + case PSA_ALG_SHA3_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_256", 16); break; + case PSA_ALG_SHA3_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_384", 16); break; + case PSA_ALG_SHA3_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_512", 16); break; + case PSA_ALG_SHAKE256_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHAKE256_512", 20); break; + case PSA_ALG_SHA_1: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_1", 13); break; + case PSA_ALG_SHA_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_224", 15); break; + case PSA_ALG_SHA_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_256", 15); break; + case PSA_ALG_SHA_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_384", 15); break; + case PSA_ALG_SHA_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512", 15); break; + case PSA_ALG_SHA_512_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_224", 19); break; + case PSA_ALG_SHA_512_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_256", 19); break; + case PSA_ALG_STREAM_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_STREAM_CIPHER", 21); break; + case PSA_ALG_TLS12_ECJPAKE_TO_PMS: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_ECJPAKE_TO_PMS", 28); break; + case PSA_ALG_TLS12_PRF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PRF_BASE", 22); break; + case PSA_ALG_TLS12_PSK_TO_MS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PSK_TO_MS_BASE", 28); break; + case PSA_ALG_XTS: append(&buffer, buffer_size, &required_size, "PSA_ALG_XTS", 11); break; + default: + if (PSA_ALG_IS_DETERMINISTIC_DSA(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_DETERMINISTIC_DSA(", 25 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_DETERMINISTIC_ECDSA(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_DETERMINISTIC_ECDSA(", 27 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RANDOMIZED_DSA(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_DSA(", 11 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RANDOMIZED_ECDSA(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_ECDSA(", 13 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_HKDF(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_HKDF(", 12 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_HKDF_EXPAND(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_HKDF_EXPAND(", 19 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_HKDF_EXTRACT(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_HKDF_EXTRACT(", 20 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_HMAC(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_HMAC(", 12 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_PBKDF2_HMAC(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_PBKDF2_HMAC(", 19 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RSA_OAEP(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_RSA_OAEP(", 16 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_RSA_PKCS1V15_SIGN(", 25 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RSA_PSS_STANDARD_SALT(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_RSA_PSS(", 15 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_RSA_PSS_ANY_SALT(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_RSA_PSS_ANY_SALT(", 24 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_TLS12_PRF(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_TLS12_PRF(", 17 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else if (PSA_ALG_IS_TLS12_PSK_TO_MS(core_alg)) { + append(&buffer, buffer_size, &required_size, + "PSA_ALG_TLS12_PSK_TO_MS(", 23 + 1); + append_with_alg(&buffer, buffer_size, &required_size, + psa_hash_algorithm_name, + PSA_ALG_GET_HASH(core_alg)); + append(&buffer, buffer_size, &required_size, ")", 1); + } else { + append_integer(&buffer, buffer_size, &required_size, + "0x%08lx", (unsigned long) core_alg); + } + break; + } + if (core_alg != alg) { + if (length_modifier != NO_LENGTH_MODIFIER) { + append(&buffer, buffer_size, &required_size, ", ", 2); + append_integer(&buffer, buffer_size, &required_size, + "%lu", length_modifier); + } + append(&buffer, buffer_size, &required_size, ")", 1); + } + buffer[0] = 0; + return (int) required_size; +} + +static int psa_snprint_key_usage(char *buffer, size_t buffer_size, + psa_key_usage_t usage) +{ + size_t required_size = 0; + if (usage == 0) { + if (buffer_size > 1) { + buffer[0] = '0'; + buffer[1] = 0; + } else if (buffer_size == 1) { + buffer[0] = 0; + } + return 1; + } + if (usage & PSA_KEY_USAGE_COPY) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_COPY", 18); + usage ^= PSA_KEY_USAGE_COPY; + } + if (usage & PSA_KEY_USAGE_DECRYPT) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DECRYPT", 21); + usage ^= PSA_KEY_USAGE_DECRYPT; + } + if (usage & PSA_KEY_USAGE_DERIVE) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DERIVE", 20); + usage ^= PSA_KEY_USAGE_DERIVE; + } + if (usage & PSA_KEY_USAGE_ENCRYPT) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_ENCRYPT", 21); + usage ^= PSA_KEY_USAGE_ENCRYPT; + } + if (usage & PSA_KEY_USAGE_EXPORT) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_EXPORT", 20); + usage ^= PSA_KEY_USAGE_EXPORT; + } + if (usage & PSA_KEY_USAGE_SIGN_HASH) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_HASH", 23); + usage ^= PSA_KEY_USAGE_SIGN_HASH; + } + if (usage & PSA_KEY_USAGE_SIGN_MESSAGE) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_MESSAGE", 26); + usage ^= PSA_KEY_USAGE_SIGN_MESSAGE; + } + if (usage & PSA_KEY_USAGE_VERIFY_DERIVATION) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_DERIVATION", 31); + usage ^= PSA_KEY_USAGE_VERIFY_DERIVATION; + } + if (usage & PSA_KEY_USAGE_VERIFY_HASH) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_HASH", 25); + usage ^= PSA_KEY_USAGE_VERIFY_HASH; + } + if (usage & PSA_KEY_USAGE_VERIFY_MESSAGE) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_MESSAGE", 28); + usage ^= PSA_KEY_USAGE_VERIFY_MESSAGE; + } + if (usage != 0) { + if (required_size != 0) { + append(&buffer, buffer_size, &required_size, " | ", 3); + } + append_integer(&buffer, buffer_size, &required_size, + "0x%08lx", (unsigned long) usage); + } else { + buffer[0] = 0; + } + return (int) required_size; +} + +/* End of automatically generated file. */ diff --git a/programs/test/query_config.c b/programs/test/query_config.c new file mode 100644 index 000000000..97e44b103 --- /dev/null +++ b/programs/test/query_config.c @@ -0,0 +1,4692 @@ +/* + * Query Mbed TLS compile time configurations from mbedtls_config.h + * + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "mbedtls/build_info.h" + +#include "query_config.h" + +#include "mbedtls/platform.h" + +/* + * Include all the headers with public APIs in case they define a macro to its + * default value when that configuration is not set in mbedtls_config.h, or + * for PSA_WANT macros, in case they're auto-defined based on mbedtls_config.h + * rather than defined directly in crypto_config.h. + */ +#include "psa/crypto.h" + +#include "mbedtls/aes.h" +#include "mbedtls/aria.h" +#include "mbedtls/asn1.h" +#include "mbedtls/asn1write.h" +#include "mbedtls/base64.h" +#include "mbedtls/bignum.h" +#include "mbedtls/camellia.h" +#include "mbedtls/ccm.h" +#include "mbedtls/chacha20.h" +#include "mbedtls/chachapoly.h" +#include "mbedtls/cipher.h" +#include "mbedtls/cmac.h" +#include "mbedtls/ctr_drbg.h" +#include "mbedtls/debug.h" +#include "mbedtls/des.h" +#include "mbedtls/dhm.h" +#include "mbedtls/ecdh.h" +#include "mbedtls/ecdsa.h" +#include "mbedtls/ecjpake.h" +#include "mbedtls/ecp.h" +#include "mbedtls/entropy.h" +#include "mbedtls/error.h" +#include "mbedtls/gcm.h" +#include "mbedtls/hkdf.h" +#include "mbedtls/hmac_drbg.h" +#include "mbedtls/md.h" +#include "mbedtls/md5.h" +#include "mbedtls/memory_buffer_alloc.h" +#include "mbedtls/net_sockets.h" +#include "mbedtls/nist_kw.h" +#include "mbedtls/oid.h" +#include "mbedtls/pem.h" +#include "mbedtls/pk.h" +#include "mbedtls/pkcs12.h" +#include "mbedtls/pkcs5.h" +#if defined(MBEDTLS_HAVE_TIME) +#include "mbedtls/platform_time.h" +#endif +#include "mbedtls/platform_util.h" +#include "mbedtls/poly1305.h" +#include "mbedtls/ripemd160.h" +#include "mbedtls/rsa.h" +#include "mbedtls/sha1.h" +#include "mbedtls/sha256.h" +#include "mbedtls/sha512.h" +#include "mbedtls/ssl.h" +#include "mbedtls/ssl_cache.h" +#include "mbedtls/ssl_ciphersuites.h" +#include "mbedtls/ssl_cookie.h" +#include "mbedtls/ssl_ticket.h" +#include "mbedtls/threading.h" +#include "mbedtls/timing.h" +#include "mbedtls/version.h" +#include "mbedtls/x509.h" +#include "mbedtls/x509_crl.h" +#include "mbedtls/x509_crt.h" +#include "mbedtls/x509_csr.h" + +#include + +/* + * Helper macros to convert a macro or its expansion into a string + * WARNING: This does not work for expanding function-like macros. However, + * Mbed TLS does not currently have configuration options used in this fashion. + */ +#define MACRO_EXPANSION_TO_STR(macro) MACRO_NAME_TO_STR(macro) +#define MACRO_NAME_TO_STR(macro) \ + mbedtls_printf( "%s", strlen( #macro "" ) > 0 ? #macro "\n" : "" ) + +#define STRINGIFY(macro) #macro +#define OUTPUT_MACRO_NAME_VALUE(macro) mbedtls_printf( #macro "%s\n", \ + ( STRINGIFY(macro) "" )[0] != 0 ? "=" STRINGIFY(macro) : "" ) + +#if defined(_MSC_VER) +/* + * Visual Studio throws the warning 4003 because many Mbed TLS feature macros + * are defined empty. This means that from the preprocessor's point of view + * the macro MBEDTLS_EXPANSION_TO_STR is being invoked without arguments as + * some macros expand to nothing. We suppress that specific warning to get a + * clean build and to ensure that tests treating warnings as errors do not + * fail. + */ +#pragma warning(push) +#pragma warning(disable:4003) +#endif /* _MSC_VER */ + +int query_config( const char *config ) +{ +#if defined(MBEDTLS_CONFIG_VERSION) + if( strcmp( "MBEDTLS_CONFIG_VERSION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CONFIG_VERSION ); + return( 0 ); + } +#endif /* MBEDTLS_CONFIG_VERSION */ + +#if defined(MBEDTLS_HAVE_ASM) + if( strcmp( "MBEDTLS_HAVE_ASM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_ASM ); + return( 0 ); + } +#endif /* MBEDTLS_HAVE_ASM */ + +#if defined(MBEDTLS_NO_UDBL_DIVISION) + if( strcmp( "MBEDTLS_NO_UDBL_DIVISION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NO_UDBL_DIVISION ); + return( 0 ); + } +#endif /* MBEDTLS_NO_UDBL_DIVISION */ + +#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) + if( strcmp( "MBEDTLS_NO_64BIT_MULTIPLICATION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NO_64BIT_MULTIPLICATION ); + return( 0 ); + } +#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ + +#if defined(MBEDTLS_HAVE_SSE2) + if( strcmp( "MBEDTLS_HAVE_SSE2", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_SSE2 ); + return( 0 ); + } +#endif /* MBEDTLS_HAVE_SSE2 */ + +#if defined(MBEDTLS_HAVE_TIME) + if( strcmp( "MBEDTLS_HAVE_TIME", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_TIME ); + return( 0 ); + } +#endif /* MBEDTLS_HAVE_TIME */ + +#if defined(MBEDTLS_HAVE_TIME_DATE) + if( strcmp( "MBEDTLS_HAVE_TIME_DATE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_TIME_DATE ); + return( 0 ); + } +#endif /* MBEDTLS_HAVE_TIME_DATE */ + +#if defined(MBEDTLS_PLATFORM_MEMORY) + if( strcmp( "MBEDTLS_PLATFORM_MEMORY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_MEMORY ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_MEMORY */ + +#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) + if( strcmp( "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NO_STD_FUNCTIONS ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ + +#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) + if( strcmp( "MBEDTLS_PLATFORM_SETBUF_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETBUF_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ + +#if defined(MBEDTLS_PLATFORM_EXIT_ALT) + if( strcmp( "MBEDTLS_PLATFORM_EXIT_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_EXIT_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ + +#if defined(MBEDTLS_PLATFORM_TIME_ALT) + if( strcmp( "MBEDTLS_PLATFORM_TIME_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_TIME_ALT */ + +#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) + if( strcmp( "MBEDTLS_PLATFORM_FPRINTF_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FPRINTF_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) + if( strcmp( "MBEDTLS_PLATFORM_PRINTF_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_PRINTF_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) + if( strcmp( "MBEDTLS_PLATFORM_SNPRINTF_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SNPRINTF_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) + if( strcmp( "MBEDTLS_PLATFORM_VSNPRINTF_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_VSNPRINTF_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) + if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ + +#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) + if( strcmp( "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ + +#if defined(MBEDTLS_DEPRECATED_WARNING) + if( strcmp( "MBEDTLS_DEPRECATED_WARNING", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DEPRECATED_WARNING ); + return( 0 ); + } +#endif /* MBEDTLS_DEPRECATED_WARNING */ + +#if defined(MBEDTLS_DEPRECATED_REMOVED) + if( strcmp( "MBEDTLS_DEPRECATED_REMOVED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DEPRECATED_REMOVED ); + return( 0 ); + } +#endif /* MBEDTLS_DEPRECATED_REMOVED */ + +#if defined(MBEDTLS_TIMING_ALT) + if( strcmp( "MBEDTLS_TIMING_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_TIMING_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_TIMING_ALT */ + +#if defined(MBEDTLS_AES_ALT) + if( strcmp( "MBEDTLS_AES_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_AES_ALT */ + +#if defined(MBEDTLS_ARIA_ALT) + if( strcmp( "MBEDTLS_ARIA_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ARIA_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ARIA_ALT */ + +#if defined(MBEDTLS_CAMELLIA_ALT) + if( strcmp( "MBEDTLS_CAMELLIA_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_CAMELLIA_ALT */ + +#if defined(MBEDTLS_CCM_ALT) + if( strcmp( "MBEDTLS_CCM_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CCM_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_CCM_ALT */ + +#if defined(MBEDTLS_CHACHA20_ALT) + if( strcmp( "MBEDTLS_CHACHA20_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHA20_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_CHACHA20_ALT */ + +#if defined(MBEDTLS_CHACHAPOLY_ALT) + if( strcmp( "MBEDTLS_CHACHAPOLY_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHAPOLY_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_CHACHAPOLY_ALT */ + +#if defined(MBEDTLS_CMAC_ALT) + if( strcmp( "MBEDTLS_CMAC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CMAC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_CMAC_ALT */ + +#if defined(MBEDTLS_DES_ALT) + if( strcmp( "MBEDTLS_DES_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DES_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_DES_ALT */ + +#if defined(MBEDTLS_DHM_ALT) + if( strcmp( "MBEDTLS_DHM_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DHM_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_DHM_ALT */ + +#if defined(MBEDTLS_ECJPAKE_ALT) + if( strcmp( "MBEDTLS_ECJPAKE_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECJPAKE_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECJPAKE_ALT */ + +#if defined(MBEDTLS_GCM_ALT) + if( strcmp( "MBEDTLS_GCM_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_GCM_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_GCM_ALT */ + +#if defined(MBEDTLS_NIST_KW_ALT) + if( strcmp( "MBEDTLS_NIST_KW_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NIST_KW_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_NIST_KW_ALT */ + +#if defined(MBEDTLS_MD5_ALT) + if( strcmp( "MBEDTLS_MD5_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_MD5_ALT */ + +#if defined(MBEDTLS_POLY1305_ALT) + if( strcmp( "MBEDTLS_POLY1305_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_POLY1305_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_POLY1305_ALT */ + +#if defined(MBEDTLS_RIPEMD160_ALT) + if( strcmp( "MBEDTLS_RIPEMD160_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_RIPEMD160_ALT */ + +#if defined(MBEDTLS_RSA_ALT) + if( strcmp( "MBEDTLS_RSA_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_RSA_ALT */ + +#if defined(MBEDTLS_SHA1_ALT) + if( strcmp( "MBEDTLS_SHA1_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA1_ALT */ + +#if defined(MBEDTLS_SHA256_ALT) + if( strcmp( "MBEDTLS_SHA256_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_ALT */ + +#if defined(MBEDTLS_SHA512_ALT) + if( strcmp( "MBEDTLS_SHA512_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_ALT */ + +#if defined(MBEDTLS_ECP_ALT) + if( strcmp( "MBEDTLS_ECP_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_ALT */ + +#if defined(MBEDTLS_MD5_PROCESS_ALT) + if( strcmp( "MBEDTLS_MD5_PROCESS_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_PROCESS_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_MD5_PROCESS_ALT */ + +#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) + if( strcmp( "MBEDTLS_RIPEMD160_PROCESS_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_PROCESS_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA1_PROCESS_ALT) + if( strcmp( "MBEDTLS_SHA1_PROCESS_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_PROCESS_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA1_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA256_PROCESS_ALT) + if( strcmp( "MBEDTLS_SHA256_PROCESS_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_PROCESS_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA512_PROCESS_ALT) + if( strcmp( "MBEDTLS_SHA512_PROCESS_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_PROCESS_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_PROCESS_ALT */ + +#if defined(MBEDTLS_DES_SETKEY_ALT) + if( strcmp( "MBEDTLS_DES_SETKEY_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DES_SETKEY_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_DES_SETKEY_ALT */ + +#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) + if( strcmp( "MBEDTLS_DES_CRYPT_ECB_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DES_CRYPT_ECB_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ + +#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) + if( strcmp( "MBEDTLS_DES3_CRYPT_ECB_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DES3_CRYPT_ECB_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ + +#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) + if( strcmp( "MBEDTLS_AES_SETKEY_ENC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_SETKEY_ENC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ + +#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) + if( strcmp( "MBEDTLS_AES_SETKEY_DEC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_SETKEY_DEC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ + +#if defined(MBEDTLS_AES_ENCRYPT_ALT) + if( strcmp( "MBEDTLS_AES_ENCRYPT_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ENCRYPT_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_AES_ENCRYPT_ALT */ + +#if defined(MBEDTLS_AES_DECRYPT_ALT) + if( strcmp( "MBEDTLS_AES_DECRYPT_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_DECRYPT_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_AES_DECRYPT_ALT */ + +#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) + if( strcmp( "MBEDTLS_ECDH_GEN_PUBLIC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_GEN_PUBLIC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ + +#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) + if( strcmp( "MBEDTLS_ECDH_COMPUTE_SHARED_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_COMPUTE_SHARED_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ + +#if defined(MBEDTLS_ECDSA_VERIFY_ALT) + if( strcmp( "MBEDTLS_ECDSA_VERIFY_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_VERIFY_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ + +#if defined(MBEDTLS_ECDSA_SIGN_ALT) + if( strcmp( "MBEDTLS_ECDSA_SIGN_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_SIGN_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECDSA_SIGN_ALT */ + +#if defined(MBEDTLS_ECDSA_GENKEY_ALT) + if( strcmp( "MBEDTLS_ECDSA_GENKEY_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_GENKEY_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ + +#if defined(MBEDTLS_ECP_INTERNAL_ALT) + if( strcmp( "MBEDTLS_ECP_INTERNAL_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_INTERNAL_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_INTERNAL_ALT */ + +#if defined(MBEDTLS_ECP_NO_FALLBACK) + if( strcmp( "MBEDTLS_ECP_NO_FALLBACK", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NO_FALLBACK ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_NO_FALLBACK */ + +#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) + if( strcmp( "MBEDTLS_ECP_RANDOMIZE_JAC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RANDOMIZE_JAC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) + if( strcmp( "MBEDTLS_ECP_ADD_MIXED_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_ADD_MIXED_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ + +#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) + if( strcmp( "MBEDTLS_ECP_DOUBLE_JAC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DOUBLE_JAC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) + if( strcmp( "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) + if( strcmp( "MBEDTLS_ECP_NORMALIZE_JAC_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_JAC_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) + if( strcmp( "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ + +#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) + if( strcmp( "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RANDOMIZE_MXZ_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) + if( strcmp( "MBEDTLS_ECP_NORMALIZE_MXZ_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_MXZ_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ + +#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) + if( strcmp( "MBEDTLS_ENTROPY_HARDWARE_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_HARDWARE_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ + +#if defined(MBEDTLS_AES_ROM_TABLES) + if( strcmp( "MBEDTLS_AES_ROM_TABLES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ROM_TABLES ); + return( 0 ); + } +#endif /* MBEDTLS_AES_ROM_TABLES */ + +#if defined(MBEDTLS_AES_FEWER_TABLES) + if( strcmp( "MBEDTLS_AES_FEWER_TABLES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_FEWER_TABLES ); + return( 0 ); + } +#endif /* MBEDTLS_AES_FEWER_TABLES */ + +#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) + if( strcmp( "MBEDTLS_CAMELLIA_SMALL_MEMORY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_SMALL_MEMORY ); + return( 0 ); + } +#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ + +#if defined(MBEDTLS_CHECK_RETURN_WARNING) + if( strcmp( "MBEDTLS_CHECK_RETURN_WARNING", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHECK_RETURN_WARNING ); + return( 0 ); + } +#endif /* MBEDTLS_CHECK_RETURN_WARNING */ + +#if defined(MBEDTLS_CIPHER_MODE_CBC) + if( strcmp( "MBEDTLS_CIPHER_MODE_CBC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CBC ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_MODE_CBC */ + +#if defined(MBEDTLS_CIPHER_MODE_CFB) + if( strcmp( "MBEDTLS_CIPHER_MODE_CFB", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CFB ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_MODE_CFB */ + +#if defined(MBEDTLS_CIPHER_MODE_CTR) + if( strcmp( "MBEDTLS_CIPHER_MODE_CTR", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CTR ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_MODE_CTR */ + +#if defined(MBEDTLS_CIPHER_MODE_OFB) + if( strcmp( "MBEDTLS_CIPHER_MODE_OFB", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_OFB ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_MODE_OFB */ + +#if defined(MBEDTLS_CIPHER_MODE_XTS) + if( strcmp( "MBEDTLS_CIPHER_MODE_XTS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_XTS ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_MODE_XTS */ + +#if defined(MBEDTLS_CIPHER_NULL_CIPHER) + if( strcmp( "MBEDTLS_CIPHER_NULL_CIPHER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_NULL_CIPHER ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ + +#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) + if( strcmp( "MBEDTLS_CIPHER_PADDING_PKCS7", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_PKCS7 ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ + +#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) + if( strcmp( "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ + +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) + if( strcmp( "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ + +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) + if( strcmp( "MBEDTLS_CIPHER_PADDING_ZEROS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ZEROS ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ + +#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) + if( strcmp( "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_USE_128_BIT_KEY ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ + +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP192R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP192R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP224R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP224R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP256R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP256R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP384R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP384R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP521R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP521R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP192K1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP192K1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP224K1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP224K1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_SECP256K1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP256K1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_BP256R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP256R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_BP384R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP384R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_BP512R1_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP512R1_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_CURVE25519_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_CURVE25519_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) + if( strcmp( "MBEDTLS_ECP_DP_CURVE448_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_CURVE448_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ + +#if defined(MBEDTLS_ECP_NIST_OPTIM) + if( strcmp( "MBEDTLS_ECP_NIST_OPTIM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NIST_OPTIM ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_NIST_OPTIM */ + +#if defined(MBEDTLS_ECP_RESTARTABLE) + if( strcmp( "MBEDTLS_ECP_RESTARTABLE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RESTARTABLE ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_RESTARTABLE */ + +#if defined(MBEDTLS_ECDSA_DETERMINISTIC) + if( strcmp( "MBEDTLS_ECDSA_DETERMINISTIC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_DETERMINISTIC ); + return( 0 ); + } +#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ + +#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_PSK_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_RSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ + +#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) + if( strcmp( "MBEDTLS_PK_PARSE_EC_EXTENDED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PK_PARSE_EC_EXTENDED ); + return( 0 ); + } +#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ + +#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) + if( strcmp( "MBEDTLS_ERROR_STRERROR_DUMMY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ERROR_STRERROR_DUMMY ); + return( 0 ); + } +#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ + +#if defined(MBEDTLS_GENPRIME) + if( strcmp( "MBEDTLS_GENPRIME", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_GENPRIME ); + return( 0 ); + } +#endif /* MBEDTLS_GENPRIME */ + +#if defined(MBEDTLS_FS_IO) + if( strcmp( "MBEDTLS_FS_IO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_FS_IO ); + return( 0 ); + } +#endif /* MBEDTLS_FS_IO */ + +#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) + if( strcmp( "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES ); + return( 0 ); + } +#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ + +#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) + if( strcmp( "MBEDTLS_NO_PLATFORM_ENTROPY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NO_PLATFORM_ENTROPY ); + return( 0 ); + } +#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ + +#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) + if( strcmp( "MBEDTLS_ENTROPY_FORCE_SHA256", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_FORCE_SHA256 ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ + +#if defined(MBEDTLS_ENTROPY_NV_SEED) + if( strcmp( "MBEDTLS_ENTROPY_NV_SEED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_NV_SEED ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_NV_SEED */ + +#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) + if( strcmp( "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ + +#if defined(MBEDTLS_MEMORY_DEBUG) + if( strcmp( "MBEDTLS_MEMORY_DEBUG", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_DEBUG ); + return( 0 ); + } +#endif /* MBEDTLS_MEMORY_DEBUG */ + +#if defined(MBEDTLS_MEMORY_BACKTRACE) + if( strcmp( "MBEDTLS_MEMORY_BACKTRACE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_BACKTRACE ); + return( 0 ); + } +#endif /* MBEDTLS_MEMORY_BACKTRACE */ + +#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) + if( strcmp( "MBEDTLS_PK_RSA_ALT_SUPPORT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PK_RSA_ALT_SUPPORT ); + return( 0 ); + } +#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ + +#if defined(MBEDTLS_PKCS1_V15) + if( strcmp( "MBEDTLS_PKCS1_V15", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS1_V15 ); + return( 0 ); + } +#endif /* MBEDTLS_PKCS1_V15 */ + +#if defined(MBEDTLS_PKCS1_V21) + if( strcmp( "MBEDTLS_PKCS1_V21", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS1_V21 ); + return( 0 ); + } +#endif /* MBEDTLS_PKCS1_V21 */ + +#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) + if( strcmp( "MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ + +#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) + if( strcmp( "MBEDTLS_PSA_CRYPTO_CLIENT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CLIENT ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ + +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) + if( strcmp( "MBEDTLS_PSA_CRYPTO_DRIVERS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_DRIVERS ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ + +#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) + if( strcmp( "MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ + +#if defined(MBEDTLS_PSA_CRYPTO_SPM) + if( strcmp( "MBEDTLS_PSA_CRYPTO_SPM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_SPM ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_SPM */ + +#if defined(MBEDTLS_PSA_INJECT_ENTROPY) + if( strcmp( "MBEDTLS_PSA_INJECT_ENTROPY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_INJECT_ENTROPY ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ + +#if defined(MBEDTLS_RSA_NO_CRT) + if( strcmp( "MBEDTLS_RSA_NO_CRT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_NO_CRT ); + return( 0 ); + } +#endif /* MBEDTLS_RSA_NO_CRT */ + +#if defined(MBEDTLS_SELF_TEST) + if( strcmp( "MBEDTLS_SELF_TEST", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SELF_TEST ); + return( 0 ); + } +#endif /* MBEDTLS_SELF_TEST */ + +#if defined(MBEDTLS_SHA256_SMALLER) + if( strcmp( "MBEDTLS_SHA256_SMALLER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_SMALLER ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_SMALLER */ + +#if defined(MBEDTLS_SHA512_SMALLER) + if( strcmp( "MBEDTLS_SHA512_SMALLER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_SMALLER ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_SMALLER */ + +#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) + if( strcmp( "MBEDTLS_SSL_ALL_ALERT_MESSAGES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ALL_ALERT_MESSAGES ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ + +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + if( strcmp( "MBEDTLS_SSL_DTLS_CONNECTION_ID", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CONNECTION_ID ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ + +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) + if( strcmp( "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ + +#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) + if( strcmp( "MBEDTLS_SSL_ASYNC_PRIVATE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ASYNC_PRIVATE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ + +#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) + if( strcmp( "MBEDTLS_SSL_CONTEXT_SERIALIZATION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CONTEXT_SERIALIZATION ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ + +#if defined(MBEDTLS_SSL_DEBUG_ALL) + if( strcmp( "MBEDTLS_SSL_DEBUG_ALL", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DEBUG_ALL ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DEBUG_ALL */ + +#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) + if( strcmp( "MBEDTLS_SSL_ENCRYPT_THEN_MAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ENCRYPT_THEN_MAC ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ + +#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) + if( strcmp( "MBEDTLS_SSL_EXTENDED_MASTER_SECRET", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_EXTENDED_MASTER_SECRET ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ + +#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) + if( strcmp( "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_KEEP_PEER_CERTIFICATE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ + +#if defined(MBEDTLS_SSL_RENEGOTIATION) + if( strcmp( "MBEDTLS_SSL_RENEGOTIATION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_RENEGOTIATION ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_RENEGOTIATION */ + +#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) + if( strcmp( "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_MAX_FRAGMENT_LENGTH ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ + +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + if( strcmp( "MBEDTLS_SSL_PROTO_TLS1_2", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_TLS1_2 ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + if( strcmp( "MBEDTLS_SSL_PROTO_TLS1_3", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_TLS1_3 ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + +#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) + if( strcmp( "MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) + if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) + if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) + if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) + if( strcmp( "MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ + +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) + if( strcmp( "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ + +#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) + if( strcmp( "MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ + +#if defined(MBEDTLS_SSL_EARLY_DATA) + if( strcmp( "MBEDTLS_SSL_EARLY_DATA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_EARLY_DATA ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_EARLY_DATA */ + +#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) + if( strcmp( "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ + +#if defined(MBEDTLS_SSL_PROTO_DTLS) + if( strcmp( "MBEDTLS_SSL_PROTO_DTLS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_DTLS ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_PROTO_DTLS */ + +#if defined(MBEDTLS_SSL_ALPN) + if( strcmp( "MBEDTLS_SSL_ALPN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ALPN ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_ALPN */ + +#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) + if( strcmp( "MBEDTLS_SSL_DTLS_ANTI_REPLAY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_ANTI_REPLAY ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ + +#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) + if( strcmp( "MBEDTLS_SSL_DTLS_HELLO_VERIFY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_HELLO_VERIFY ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ + +#if defined(MBEDTLS_SSL_DTLS_SRTP) + if( strcmp( "MBEDTLS_SSL_DTLS_SRTP", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_SRTP ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_SRTP */ + +#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) + if( strcmp( "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + if( strcmp( "MBEDTLS_SSL_SESSION_TICKETS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SESSION_TICKETS ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + if( strcmp( "MBEDTLS_SSL_SERVER_NAME_INDICATION", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SERVER_NAME_INDICATION ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ + +#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) + if( strcmp( "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ + +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) + if( strcmp( "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN ); + return( 0 ); + } +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ + +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) + if( strcmp( "MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND ); + return( 0 ); + } +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ + +#if defined(MBEDTLS_TEST_HOOKS) + if( strcmp( "MBEDTLS_TEST_HOOKS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_HOOKS ); + return( 0 ); + } +#endif /* MBEDTLS_TEST_HOOKS */ + +#if defined(MBEDTLS_THREADING_ALT) + if( strcmp( "MBEDTLS_THREADING_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_THREADING_ALT */ + +#if defined(MBEDTLS_THREADING_PTHREAD) + if( strcmp( "MBEDTLS_THREADING_PTHREAD", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_PTHREAD ); + return( 0 ); + } +#endif /* MBEDTLS_THREADING_PTHREAD */ + +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if( strcmp( "MBEDTLS_USE_PSA_CRYPTO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_USE_PSA_CRYPTO ); + return( 0 ); + } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) + if( strcmp( "MBEDTLS_PSA_CRYPTO_CONFIG", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CONFIG ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ + +#if defined(MBEDTLS_VERSION_FEATURES) + if( strcmp( "MBEDTLS_VERSION_FEATURES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_VERSION_FEATURES ); + return( 0 ); + } +#endif /* MBEDTLS_VERSION_FEATURES */ + +#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) + if( strcmp( "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK ); + return( 0 ); + } +#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ + +#if defined(MBEDTLS_X509_REMOVE_INFO) + if( strcmp( "MBEDTLS_X509_REMOVE_INFO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_REMOVE_INFO ); + return( 0 ); + } +#endif /* MBEDTLS_X509_REMOVE_INFO */ + +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) + if( strcmp( "MBEDTLS_X509_RSASSA_PSS_SUPPORT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_RSASSA_PSS_SUPPORT ); + return( 0 ); + } +#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ + +#if defined(MBEDTLS_AESNI_C) + if( strcmp( "MBEDTLS_AESNI_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AESNI_C ); + return( 0 ); + } +#endif /* MBEDTLS_AESNI_C */ + +#if defined(MBEDTLS_AES_C) + if( strcmp( "MBEDTLS_AES_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_AES_C ); + return( 0 ); + } +#endif /* MBEDTLS_AES_C */ + +#if defined(MBEDTLS_ASN1_PARSE_C) + if( strcmp( "MBEDTLS_ASN1_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ASN1_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_ASN1_PARSE_C */ + +#if defined(MBEDTLS_ASN1_WRITE_C) + if( strcmp( "MBEDTLS_ASN1_WRITE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ASN1_WRITE_C ); + return( 0 ); + } +#endif /* MBEDTLS_ASN1_WRITE_C */ + +#if defined(MBEDTLS_BASE64_C) + if( strcmp( "MBEDTLS_BASE64_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_BASE64_C ); + return( 0 ); + } +#endif /* MBEDTLS_BASE64_C */ + +#if defined(MBEDTLS_BIGNUM_C) + if( strcmp( "MBEDTLS_BIGNUM_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_BIGNUM_C ); + return( 0 ); + } +#endif /* MBEDTLS_BIGNUM_C */ + +#if defined(MBEDTLS_CAMELLIA_C) + if( strcmp( "MBEDTLS_CAMELLIA_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_C ); + return( 0 ); + } +#endif /* MBEDTLS_CAMELLIA_C */ + +#if defined(MBEDTLS_ARIA_C) + if( strcmp( "MBEDTLS_ARIA_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ARIA_C ); + return( 0 ); + } +#endif /* MBEDTLS_ARIA_C */ + +#if defined(MBEDTLS_CCM_C) + if( strcmp( "MBEDTLS_CCM_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CCM_C ); + return( 0 ); + } +#endif /* MBEDTLS_CCM_C */ + +#if defined(MBEDTLS_CHACHA20_C) + if( strcmp( "MBEDTLS_CHACHA20_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHA20_C ); + return( 0 ); + } +#endif /* MBEDTLS_CHACHA20_C */ + +#if defined(MBEDTLS_CHACHAPOLY_C) + if( strcmp( "MBEDTLS_CHACHAPOLY_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHAPOLY_C ); + return( 0 ); + } +#endif /* MBEDTLS_CHACHAPOLY_C */ + +#if defined(MBEDTLS_CIPHER_C) + if( strcmp( "MBEDTLS_CIPHER_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_C ); + return( 0 ); + } +#endif /* MBEDTLS_CIPHER_C */ + +#if defined(MBEDTLS_CMAC_C) + if( strcmp( "MBEDTLS_CMAC_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CMAC_C ); + return( 0 ); + } +#endif /* MBEDTLS_CMAC_C */ + +#if defined(MBEDTLS_CTR_DRBG_C) + if( strcmp( "MBEDTLS_CTR_DRBG_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_C ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_C */ + +#if defined(MBEDTLS_DEBUG_C) + if( strcmp( "MBEDTLS_DEBUG_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DEBUG_C ); + return( 0 ); + } +#endif /* MBEDTLS_DEBUG_C */ + +#if defined(MBEDTLS_DES_C) + if( strcmp( "MBEDTLS_DES_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DES_C ); + return( 0 ); + } +#endif /* MBEDTLS_DES_C */ + +#if defined(MBEDTLS_DHM_C) + if( strcmp( "MBEDTLS_DHM_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_DHM_C ); + return( 0 ); + } +#endif /* MBEDTLS_DHM_C */ + +#if defined(MBEDTLS_ECDH_C) + if( strcmp( "MBEDTLS_ECDH_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_C ); + return( 0 ); + } +#endif /* MBEDTLS_ECDH_C */ + +#if defined(MBEDTLS_ECDSA_C) + if( strcmp( "MBEDTLS_ECDSA_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_C ); + return( 0 ); + } +#endif /* MBEDTLS_ECDSA_C */ + +#if defined(MBEDTLS_ECJPAKE_C) + if( strcmp( "MBEDTLS_ECJPAKE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECJPAKE_C ); + return( 0 ); + } +#endif /* MBEDTLS_ECJPAKE_C */ + +#if defined(MBEDTLS_ECP_C) + if( strcmp( "MBEDTLS_ECP_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_C ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_C */ + +#if defined(MBEDTLS_ENTROPY_C) + if( strcmp( "MBEDTLS_ENTROPY_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_C ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_C */ + +#if defined(MBEDTLS_ERROR_C) + if( strcmp( "MBEDTLS_ERROR_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ERROR_C ); + return( 0 ); + } +#endif /* MBEDTLS_ERROR_C */ + +#if defined(MBEDTLS_GCM_C) + if( strcmp( "MBEDTLS_GCM_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_GCM_C ); + return( 0 ); + } +#endif /* MBEDTLS_GCM_C */ + +#if defined(MBEDTLS_HKDF_C) + if( strcmp( "MBEDTLS_HKDF_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HKDF_C ); + return( 0 ); + } +#endif /* MBEDTLS_HKDF_C */ + +#if defined(MBEDTLS_HMAC_DRBG_C) + if( strcmp( "MBEDTLS_HMAC_DRBG_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_C ); + return( 0 ); + } +#endif /* MBEDTLS_HMAC_DRBG_C */ + +#if defined(MBEDTLS_LMS_C) + if( strcmp( "MBEDTLS_LMS_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_LMS_C ); + return( 0 ); + } +#endif /* MBEDTLS_LMS_C */ + +#if defined(MBEDTLS_LMS_PRIVATE) + if( strcmp( "MBEDTLS_LMS_PRIVATE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_LMS_PRIVATE ); + return( 0 ); + } +#endif /* MBEDTLS_LMS_PRIVATE */ + +#if defined(MBEDTLS_NIST_KW_C) + if( strcmp( "MBEDTLS_NIST_KW_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NIST_KW_C ); + return( 0 ); + } +#endif /* MBEDTLS_NIST_KW_C */ + +#if defined(MBEDTLS_MD_C) + if( strcmp( "MBEDTLS_MD_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MD_C ); + return( 0 ); + } +#endif /* MBEDTLS_MD_C */ + +#if defined(MBEDTLS_MD5_C) + if( strcmp( "MBEDTLS_MD5_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_C ); + return( 0 ); + } +#endif /* MBEDTLS_MD5_C */ + +#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) + if( strcmp( "MBEDTLS_MEMORY_BUFFER_ALLOC_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_BUFFER_ALLOC_C ); + return( 0 ); + } +#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ + +#if defined(MBEDTLS_NET_C) + if( strcmp( "MBEDTLS_NET_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_NET_C ); + return( 0 ); + } +#endif /* MBEDTLS_NET_C */ + +#if defined(MBEDTLS_OID_C) + if( strcmp( "MBEDTLS_OID_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_OID_C ); + return( 0 ); + } +#endif /* MBEDTLS_OID_C */ + +#if defined(MBEDTLS_PADLOCK_C) + if( strcmp( "MBEDTLS_PADLOCK_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PADLOCK_C ); + return( 0 ); + } +#endif /* MBEDTLS_PADLOCK_C */ + +#if defined(MBEDTLS_PEM_PARSE_C) + if( strcmp( "MBEDTLS_PEM_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PEM_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PEM_PARSE_C */ + +#if defined(MBEDTLS_PEM_WRITE_C) + if( strcmp( "MBEDTLS_PEM_WRITE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PEM_WRITE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PEM_WRITE_C */ + +#if defined(MBEDTLS_PK_C) + if( strcmp( "MBEDTLS_PK_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PK_C ); + return( 0 ); + } +#endif /* MBEDTLS_PK_C */ + +#if defined(MBEDTLS_PK_PARSE_C) + if( strcmp( "MBEDTLS_PK_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PK_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PK_PARSE_C */ + +#if defined(MBEDTLS_PK_WRITE_C) + if( strcmp( "MBEDTLS_PK_WRITE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PK_WRITE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PK_WRITE_C */ + +#if defined(MBEDTLS_PKCS5_C) + if( strcmp( "MBEDTLS_PKCS5_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS5_C ); + return( 0 ); + } +#endif /* MBEDTLS_PKCS5_C */ + +#if defined(MBEDTLS_PKCS7_C) + if( strcmp( "MBEDTLS_PKCS7_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS7_C ); + return( 0 ); + } +#endif /* MBEDTLS_PKCS7_C */ + +#if defined(MBEDTLS_PKCS12_C) + if( strcmp( "MBEDTLS_PKCS12_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS12_C ); + return( 0 ); + } +#endif /* MBEDTLS_PKCS12_C */ + +#if defined(MBEDTLS_PLATFORM_C) + if( strcmp( "MBEDTLS_PLATFORM_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_C ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_C */ + +#if defined(MBEDTLS_POLY1305_C) + if( strcmp( "MBEDTLS_POLY1305_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_POLY1305_C ); + return( 0 ); + } +#endif /* MBEDTLS_POLY1305_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_C) + if( strcmp( "MBEDTLS_PSA_CRYPTO_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_C ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + if( strcmp( "MBEDTLS_PSA_CRYPTO_SE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_SE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) + if( strcmp( "MBEDTLS_PSA_CRYPTO_STORAGE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_STORAGE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ + +#if defined(MBEDTLS_PSA_ITS_FILE_C) + if( strcmp( "MBEDTLS_PSA_ITS_FILE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_ITS_FILE_C ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_ITS_FILE_C */ + +#if defined(MBEDTLS_RIPEMD160_C) + if( strcmp( "MBEDTLS_RIPEMD160_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_C ); + return( 0 ); + } +#endif /* MBEDTLS_RIPEMD160_C */ + +#if defined(MBEDTLS_RSA_C) + if( strcmp( "MBEDTLS_RSA_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_C ); + return( 0 ); + } +#endif /* MBEDTLS_RSA_C */ + +#if defined(MBEDTLS_SHA1_C) + if( strcmp( "MBEDTLS_SHA1_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_C ); + return( 0 ); + } +#endif /* MBEDTLS_SHA1_C */ + +#if defined(MBEDTLS_SHA224_C) + if( strcmp( "MBEDTLS_SHA224_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA224_C ); + return( 0 ); + } +#endif /* MBEDTLS_SHA224_C */ + +#if defined(MBEDTLS_SHA256_C) + if( strcmp( "MBEDTLS_SHA256_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_C ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_C */ + +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) + if( strcmp( "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ + +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) + if( strcmp( "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY ); + return( 0 ); + } +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ + +#if defined(MBEDTLS_SHA384_C) + if( strcmp( "MBEDTLS_SHA384_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA384_C ); + return( 0 ); + } +#endif /* MBEDTLS_SHA384_C */ + +#if defined(MBEDTLS_SHA512_C) + if( strcmp( "MBEDTLS_SHA512_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_C ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_C */ + +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) + if( strcmp( "MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ + +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) + if( strcmp( "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY ); + return( 0 ); + } +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ + +#if defined(MBEDTLS_SSL_CACHE_C) + if( strcmp( "MBEDTLS_SSL_CACHE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CACHE_C */ + +#if defined(MBEDTLS_SSL_COOKIE_C) + if( strcmp( "MBEDTLS_SSL_COOKIE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_COOKIE_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_COOKIE_C */ + +#if defined(MBEDTLS_SSL_TICKET_C) + if( strcmp( "MBEDTLS_SSL_TICKET_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TICKET_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TICKET_C */ + +#if defined(MBEDTLS_SSL_CLI_C) + if( strcmp( "MBEDTLS_SSL_CLI_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CLI_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SRV_C) + if( strcmp( "MBEDTLS_SSL_SRV_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SRV_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_SRV_C */ + +#if defined(MBEDTLS_SSL_TLS_C) + if( strcmp( "MBEDTLS_SSL_TLS_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS_C ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_TLS_C */ + +#if defined(MBEDTLS_THREADING_C) + if( strcmp( "MBEDTLS_THREADING_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_C ); + return( 0 ); + } +#endif /* MBEDTLS_THREADING_C */ + +#if defined(MBEDTLS_TIMING_C) + if( strcmp( "MBEDTLS_TIMING_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_TIMING_C ); + return( 0 ); + } +#endif /* MBEDTLS_TIMING_C */ + +#if defined(MBEDTLS_VERSION_C) + if( strcmp( "MBEDTLS_VERSION_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_VERSION_C ); + return( 0 ); + } +#endif /* MBEDTLS_VERSION_C */ + +#if defined(MBEDTLS_X509_USE_C) + if( strcmp( "MBEDTLS_X509_USE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_USE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_USE_C */ + +#if defined(MBEDTLS_X509_CRT_PARSE_C) + if( strcmp( "MBEDTLS_X509_CRT_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRT_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CRT_PARSE_C */ + +#if defined(MBEDTLS_X509_CRL_PARSE_C) + if( strcmp( "MBEDTLS_X509_CRL_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRL_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CRL_PARSE_C */ + +#if defined(MBEDTLS_X509_CSR_PARSE_C) + if( strcmp( "MBEDTLS_X509_CSR_PARSE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CSR_PARSE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CSR_PARSE_C */ + +#if defined(MBEDTLS_X509_CREATE_C) + if( strcmp( "MBEDTLS_X509_CREATE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CREATE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CREATE_C */ + +#if defined(MBEDTLS_X509_CRT_WRITE_C) + if( strcmp( "MBEDTLS_X509_CRT_WRITE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRT_WRITE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CRT_WRITE_C */ + +#if defined(MBEDTLS_X509_CSR_WRITE_C) + if( strcmp( "MBEDTLS_X509_CSR_WRITE_C", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CSR_WRITE_C ); + return( 0 ); + } +#endif /* MBEDTLS_X509_CSR_WRITE_C */ + +#if defined(MBEDTLS_CONFIG_FILE) + if( strcmp( "MBEDTLS_CONFIG_FILE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CONFIG_FILE ); + return( 0 ); + } +#endif /* MBEDTLS_CONFIG_FILE */ + +#if defined(MBEDTLS_USER_CONFIG_FILE) + if( strcmp( "MBEDTLS_USER_CONFIG_FILE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_USER_CONFIG_FILE ); + return( 0 ); + } +#endif /* MBEDTLS_USER_CONFIG_FILE */ + +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE) + if( strcmp( "MBEDTLS_PSA_CRYPTO_CONFIG_FILE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CONFIG_FILE ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_CONFIG_FILE */ + +#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE) + if( strcmp( "MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE */ + +#if defined(MBEDTLS_MPI_WINDOW_SIZE) + if( strcmp( "MBEDTLS_MPI_WINDOW_SIZE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MPI_WINDOW_SIZE ); + return( 0 ); + } +#endif /* MBEDTLS_MPI_WINDOW_SIZE */ + +#if defined(MBEDTLS_MPI_MAX_SIZE) + if( strcmp( "MBEDTLS_MPI_MAX_SIZE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MPI_MAX_SIZE ); + return( 0 ); + } +#endif /* MBEDTLS_MPI_MAX_SIZE */ + +#if defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) + if( strcmp( "MBEDTLS_CTR_DRBG_ENTROPY_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_ENTROPY_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_ENTROPY_LEN */ + +#if defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL) + if( strcmp( "MBEDTLS_CTR_DRBG_RESEED_INTERVAL", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_RESEED_INTERVAL ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_RESEED_INTERVAL */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_INPUT) + if( strcmp( "MBEDTLS_CTR_DRBG_MAX_INPUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_INPUT ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_MAX_INPUT */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_REQUEST) + if( strcmp( "MBEDTLS_CTR_DRBG_MAX_REQUEST", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_REQUEST ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_MAX_REQUEST */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) + if( strcmp( "MBEDTLS_CTR_DRBG_MAX_SEED_INPUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ); + return( 0 ); + } +#endif /* MBEDTLS_CTR_DRBG_MAX_SEED_INPUT */ + +#if defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) + if( strcmp( "MBEDTLS_HMAC_DRBG_RESEED_INTERVAL", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_RESEED_INTERVAL ); + return( 0 ); + } +#endif /* MBEDTLS_HMAC_DRBG_RESEED_INTERVAL */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_INPUT) + if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_INPUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_INPUT ); + return( 0 ); + } +#endif /* MBEDTLS_HMAC_DRBG_MAX_INPUT */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST) + if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_REQUEST", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_REQUEST ); + return( 0 ); + } +#endif /* MBEDTLS_HMAC_DRBG_MAX_REQUEST */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) + if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT ); + return( 0 ); + } +#endif /* MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT */ + +#if defined(MBEDTLS_ECP_WINDOW_SIZE) + if( strcmp( "MBEDTLS_ECP_WINDOW_SIZE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_WINDOW_SIZE ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_WINDOW_SIZE */ + +#if defined(MBEDTLS_ECP_FIXED_POINT_OPTIM) + if( strcmp( "MBEDTLS_ECP_FIXED_POINT_OPTIM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_FIXED_POINT_OPTIM ); + return( 0 ); + } +#endif /* MBEDTLS_ECP_FIXED_POINT_OPTIM */ + +#if defined(MBEDTLS_ENTROPY_MAX_SOURCES) + if( strcmp( "MBEDTLS_ENTROPY_MAX_SOURCES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MAX_SOURCES ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_MAX_SOURCES */ + +#if defined(MBEDTLS_ENTROPY_MAX_GATHER) + if( strcmp( "MBEDTLS_ENTROPY_MAX_GATHER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MAX_GATHER ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_MAX_GATHER */ + +#if defined(MBEDTLS_ENTROPY_MIN_HARDWARE) + if( strcmp( "MBEDTLS_ENTROPY_MIN_HARDWARE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MIN_HARDWARE ); + return( 0 ); + } +#endif /* MBEDTLS_ENTROPY_MIN_HARDWARE */ + +#if defined(MBEDTLS_MEMORY_ALIGN_MULTIPLE) + if( strcmp( "MBEDTLS_MEMORY_ALIGN_MULTIPLE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_ALIGN_MULTIPLE ); + return( 0 ); + } +#endif /* MBEDTLS_MEMORY_ALIGN_MULTIPLE */ + +#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) + if( strcmp( "MBEDTLS_PLATFORM_STD_MEM_HDR", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_MEM_HDR ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_MEM_HDR */ + +#if defined(MBEDTLS_PLATFORM_STD_CALLOC) + if( strcmp( "MBEDTLS_PLATFORM_STD_CALLOC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_CALLOC ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_CALLOC */ + +#if defined(MBEDTLS_PLATFORM_STD_FREE) + if( strcmp( "MBEDTLS_PLATFORM_STD_FREE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_FREE ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_FREE */ + +#if defined(MBEDTLS_PLATFORM_STD_SETBUF) + if( strcmp( "MBEDTLS_PLATFORM_STD_SETBUF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_SETBUF ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_SETBUF */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT) + if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_EXIT */ + +#if defined(MBEDTLS_PLATFORM_STD_TIME) + if( strcmp( "MBEDTLS_PLATFORM_STD_TIME", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_TIME ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_TIME */ + +#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) + if( strcmp( "MBEDTLS_PLATFORM_STD_FPRINTF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_FPRINTF ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_FPRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_PRINTF) + if( strcmp( "MBEDTLS_PLATFORM_STD_PRINTF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_PRINTF ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_PRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) + if( strcmp( "MBEDTLS_PLATFORM_STD_SNPRINTF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_SNPRINTF ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_SNPRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) + if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT_SUCCESS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT_SUCCESS ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_EXIT_SUCCESS */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) + if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT_FAILURE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT_FAILURE ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_EXIT_FAILURE */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) + if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_READ", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_READ ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_READ */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) + if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_WRITE ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_WRITE */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) + if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_FILE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_FILE ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_FILE */ + +#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_CALLOC_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_CALLOC_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_CALLOC_MACRO */ + +#if defined(MBEDTLS_PLATFORM_FREE_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_FREE_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FREE_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_FREE_MACRO */ + +#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_EXIT_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_EXIT_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_EXIT_MACRO */ + +#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_SETBUF_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETBUF_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_SETBUF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_TIME_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_TIME_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_TIME_MACRO */ + +#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_TIME_TYPE_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_TYPE_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_TIME_TYPE_MACRO */ + +#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_FPRINTF_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FPRINTF_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_FPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_PRINTF_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_PRINTF_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_PRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_SNPRINTF_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SNPRINTF_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_SNPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_VSNPRINTF_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_VSNPRINTF_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_VSNPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_READ_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_NV_SEED_READ_MACRO */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) + if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO */ + +#if defined(MBEDTLS_CHECK_RETURN) + if( strcmp( "MBEDTLS_CHECK_RETURN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_CHECK_RETURN ); + return( 0 ); + } +#endif /* MBEDTLS_CHECK_RETURN */ + +#if defined(MBEDTLS_IGNORE_RETURN) + if( strcmp( "MBEDTLS_IGNORE_RETURN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_IGNORE_RETURN ); + return( 0 ); + } +#endif /* MBEDTLS_IGNORE_RETURN */ + +#if defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) + if( strcmp( "MBEDTLS_PSA_HMAC_DRBG_MD_TYPE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_HMAC_DRBG_MD_TYPE ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_HMAC_DRBG_MD_TYPE */ + +#if defined(MBEDTLS_PSA_KEY_SLOT_COUNT) + if( strcmp( "MBEDTLS_PSA_KEY_SLOT_COUNT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_KEY_SLOT_COUNT ); + return( 0 ); + } +#endif /* MBEDTLS_PSA_KEY_SLOT_COUNT */ + +#if defined(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT) + if( strcmp( "MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT */ + +#if defined(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES) + if( strcmp( "MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES */ + +#if defined(MBEDTLS_SSL_IN_CONTENT_LEN) + if( strcmp( "MBEDTLS_SSL_IN_CONTENT_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_IN_CONTENT_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_IN_CONTENT_LEN */ + +#if defined(MBEDTLS_SSL_CID_IN_LEN_MAX) + if( strcmp( "MBEDTLS_SSL_CID_IN_LEN_MAX", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_IN_LEN_MAX ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CID_IN_LEN_MAX */ + +#if defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) + if( strcmp( "MBEDTLS_SSL_CID_OUT_LEN_MAX", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_OUT_LEN_MAX ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CID_OUT_LEN_MAX */ + +#if defined(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY) + if( strcmp( "MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY */ + +#if defined(MBEDTLS_SSL_OUT_CONTENT_LEN) + if( strcmp( "MBEDTLS_SSL_OUT_CONTENT_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_OUT_CONTENT_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_OUT_CONTENT_LEN */ + +#if defined(MBEDTLS_SSL_DTLS_MAX_BUFFERING) + if( strcmp( "MBEDTLS_SSL_DTLS_MAX_BUFFERING", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_MAX_BUFFERING ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_DTLS_MAX_BUFFERING */ + +#if defined(MBEDTLS_PSK_MAX_LEN) + if( strcmp( "MBEDTLS_PSK_MAX_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PSK_MAX_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_PSK_MAX_LEN */ + +#if defined(MBEDTLS_SSL_COOKIE_TIMEOUT) + if( strcmp( "MBEDTLS_SSL_COOKIE_TIMEOUT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_COOKIE_TIMEOUT ); + return( 0 ); + } +#endif /* MBEDTLS_SSL_COOKIE_TIMEOUT */ + +#if defined(MBEDTLS_X509_MAX_INTERMEDIATE_CA) + if( strcmp( "MBEDTLS_X509_MAX_INTERMEDIATE_CA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_MAX_INTERMEDIATE_CA ); + return( 0 ); + } +#endif /* MBEDTLS_X509_MAX_INTERMEDIATE_CA */ + +#if defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) + if( strcmp( "MBEDTLS_X509_MAX_FILE_PATH_LEN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_X509_MAX_FILE_PATH_LEN ); + return( 0 ); + } +#endif /* MBEDTLS_X509_MAX_FILE_PATH_LEN */ + +#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT) + if( strcmp( "MBEDTLS_PLATFORM_ZEROIZE_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_ZEROIZE_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ + +#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT) + if( strcmp( "MBEDTLS_PLATFORM_GMTIME_R_ALT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_GMTIME_R_ALT ); + return( 0 ); + } +#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */ + +#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) + if( strcmp( "MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED ); + return( 0 ); + } +#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */ + +#if defined(PSA_WANT_ALG_CBC_MAC) + if( strcmp( "PSA_WANT_ALG_CBC_MAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_MAC ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CBC_MAC */ + +#if defined(PSA_WANT_ALG_CBC_NO_PADDING) + if( strcmp( "PSA_WANT_ALG_CBC_NO_PADDING", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_NO_PADDING ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CBC_NO_PADDING */ + +#if defined(PSA_WANT_ALG_CBC_PKCS7) + if( strcmp( "PSA_WANT_ALG_CBC_PKCS7", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_PKCS7 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CBC_PKCS7 */ + +#if defined(PSA_WANT_ALG_CCM) + if( strcmp( "PSA_WANT_ALG_CCM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CCM ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CCM */ + +#if defined(PSA_WANT_ALG_CMAC) + if( strcmp( "PSA_WANT_ALG_CMAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CMAC ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CMAC */ + +#if defined(PSA_WANT_ALG_CFB) + if( strcmp( "PSA_WANT_ALG_CFB", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CFB ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CFB */ + +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) + if( strcmp( "PSA_WANT_ALG_CHACHA20_POLY1305", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CHACHA20_POLY1305 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ + +#if defined(PSA_WANT_ALG_CTR) + if( strcmp( "PSA_WANT_ALG_CTR", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CTR ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_CTR */ + +#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) + if( strcmp( "PSA_WANT_ALG_DETERMINISTIC_ECDSA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_DETERMINISTIC_ECDSA ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_DETERMINISTIC_ECDSA */ + +#if defined(PSA_WANT_ALG_ECB_NO_PADDING) + if( strcmp( "PSA_WANT_ALG_ECB_NO_PADDING", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECB_NO_PADDING ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_ECB_NO_PADDING */ + +#if defined(PSA_WANT_ALG_ECDH) + if( strcmp( "PSA_WANT_ALG_ECDH", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECDH ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_ECDH */ + +#if defined(PSA_WANT_ALG_ECDSA) + if( strcmp( "PSA_WANT_ALG_ECDSA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECDSA ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_ECDSA */ + +#if defined(PSA_WANT_ALG_JPAKE) + if( strcmp( "PSA_WANT_ALG_JPAKE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_JPAKE ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_JPAKE */ + +#if defined(PSA_WANT_ALG_GCM) + if( strcmp( "PSA_WANT_ALG_GCM", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_GCM ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_GCM */ + +#if defined(PSA_WANT_ALG_HKDF) + if( strcmp( "PSA_WANT_ALG_HKDF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_HKDF */ + +#if defined(PSA_WANT_ALG_HKDF_EXTRACT) + if( strcmp( "PSA_WANT_ALG_HKDF_EXTRACT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF_EXTRACT ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_HKDF_EXTRACT */ + +#if defined(PSA_WANT_ALG_HKDF_EXPAND) + if( strcmp( "PSA_WANT_ALG_HKDF_EXPAND", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF_EXPAND ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_HKDF_EXPAND */ + +#if defined(PSA_WANT_ALG_HMAC) + if( strcmp( "PSA_WANT_ALG_HMAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HMAC ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_HMAC */ + +#if defined(PSA_WANT_ALG_MD5) + if( strcmp( "PSA_WANT_ALG_MD5", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_MD5 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_MD5 */ + +#if defined(PSA_WANT_ALG_OFB) + if( strcmp( "PSA_WANT_ALG_OFB", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_OFB ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_OFB */ + +#if defined(PSA_WANT_ALG_PBKDF2_HMAC) + if( strcmp( "PSA_WANT_ALG_PBKDF2_HMAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_PBKDF2_HMAC ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_PBKDF2_HMAC */ + +#if defined(PSA_WANT_ALG_RIPEMD160) + if( strcmp( "PSA_WANT_ALG_RIPEMD160", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RIPEMD160 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_RIPEMD160 */ + +#if defined(PSA_WANT_ALG_RSA_OAEP) + if( strcmp( "PSA_WANT_ALG_RSA_OAEP", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_OAEP ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_RSA_OAEP */ + +#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) + if( strcmp( "PSA_WANT_ALG_RSA_PKCS1V15_CRYPT", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PKCS1V15_CRYPT ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_RSA_PKCS1V15_CRYPT */ + +#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) + if( strcmp( "PSA_WANT_ALG_RSA_PKCS1V15_SIGN", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PKCS1V15_SIGN ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */ + +#if defined(PSA_WANT_ALG_RSA_PSS) + if( strcmp( "PSA_WANT_ALG_RSA_PSS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PSS ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_RSA_PSS */ + +#if defined(PSA_WANT_ALG_SHA_1) + if( strcmp( "PSA_WANT_ALG_SHA_1", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_1 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_SHA_1 */ + +#if defined(PSA_WANT_ALG_SHA_224) + if( strcmp( "PSA_WANT_ALG_SHA_224", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_224 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_SHA_224 */ + +#if defined(PSA_WANT_ALG_SHA_256) + if( strcmp( "PSA_WANT_ALG_SHA_256", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_256 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_SHA_256 */ + +#if defined(PSA_WANT_ALG_SHA_384) + if( strcmp( "PSA_WANT_ALG_SHA_384", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_384 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_SHA_384 */ + +#if defined(PSA_WANT_ALG_SHA_512) + if( strcmp( "PSA_WANT_ALG_SHA_512", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_512 ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_SHA_512 */ + +#if defined(PSA_WANT_ALG_STREAM_CIPHER) + if( strcmp( "PSA_WANT_ALG_STREAM_CIPHER", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_STREAM_CIPHER ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_STREAM_CIPHER */ + +#if defined(PSA_WANT_ALG_TLS12_PRF) + if( strcmp( "PSA_WANT_ALG_TLS12_PRF", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_PRF ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_TLS12_PRF */ + +#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) + if( strcmp( "PSA_WANT_ALG_TLS12_PSK_TO_MS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_PSK_TO_MS ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_TLS12_PSK_TO_MS */ + +#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) + if( strcmp( "PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS */ + +#if defined(PSA_WANT_ALG_XTS) + if( strcmp( "PSA_WANT_ALG_XTS", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_XTS ); + return( 0 ); + } +#endif /* PSA_WANT_ALG_XTS */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_256", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_256 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_384", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_384 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) + if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_512", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_512 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */ + +#if defined(PSA_WANT_ECC_MONTGOMERY_255) + if( strcmp( "PSA_WANT_ECC_MONTGOMERY_255", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_MONTGOMERY_255 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_MONTGOMERY_255 */ + +#if defined(PSA_WANT_ECC_MONTGOMERY_448) + if( strcmp( "PSA_WANT_ECC_MONTGOMERY_448", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_MONTGOMERY_448 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_MONTGOMERY_448 */ + +#if defined(PSA_WANT_ECC_SECP_K1_192) + if( strcmp( "PSA_WANT_ECC_SECP_K1_192", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_192 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_K1_192 */ + +#if defined(PSA_WANT_ECC_SECP_K1_224) + if( strcmp( "PSA_WANT_ECC_SECP_K1_224", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_224 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_K1_224 */ + +#if defined(PSA_WANT_ECC_SECP_K1_256) + if( strcmp( "PSA_WANT_ECC_SECP_K1_256", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_256 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_K1_256 */ + +#if defined(PSA_WANT_ECC_SECP_R1_192) + if( strcmp( "PSA_WANT_ECC_SECP_R1_192", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_192 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_R1_192 */ + +#if defined(PSA_WANT_ECC_SECP_R1_224) + if( strcmp( "PSA_WANT_ECC_SECP_R1_224", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_224 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_R1_224 */ + +#if defined(PSA_WANT_ECC_SECP_R1_256) + if( strcmp( "PSA_WANT_ECC_SECP_R1_256", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_256 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_R1_256 */ + +#if defined(PSA_WANT_ECC_SECP_R1_384) + if( strcmp( "PSA_WANT_ECC_SECP_R1_384", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_384 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_R1_384 */ + +#if defined(PSA_WANT_ECC_SECP_R1_521) + if( strcmp( "PSA_WANT_ECC_SECP_R1_521", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_521 ); + return( 0 ); + } +#endif /* PSA_WANT_ECC_SECP_R1_521 */ + +#if defined(PSA_WANT_KEY_TYPE_DERIVE) + if( strcmp( "PSA_WANT_KEY_TYPE_DERIVE", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_DERIVE ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_DERIVE */ + +#if defined(PSA_WANT_KEY_TYPE_HMAC) + if( strcmp( "PSA_WANT_KEY_TYPE_HMAC", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_HMAC ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_HMAC */ + +#if defined(PSA_WANT_KEY_TYPE_AES) + if( strcmp( "PSA_WANT_KEY_TYPE_AES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_AES ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_AES */ + +#if defined(PSA_WANT_KEY_TYPE_ARIA) + if( strcmp( "PSA_WANT_KEY_TYPE_ARIA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ARIA ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_ARIA */ + +#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) + if( strcmp( "PSA_WANT_KEY_TYPE_CAMELLIA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_CAMELLIA ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */ + +#if defined(PSA_WANT_KEY_TYPE_CHACHA20) + if( strcmp( "PSA_WANT_KEY_TYPE_CHACHA20", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_CHACHA20 ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */ + +#if defined(PSA_WANT_KEY_TYPE_DES) + if( strcmp( "PSA_WANT_KEY_TYPE_DES", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_DES ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_DES */ + +#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) + if( strcmp( "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ECC_KEY_PAIR ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR */ + +#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) + if( strcmp( "PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */ + +#if defined(PSA_WANT_KEY_TYPE_RAW_DATA) + if( strcmp( "PSA_WANT_KEY_TYPE_RAW_DATA", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RAW_DATA ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_RAW_DATA */ + +#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) + if( strcmp( "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RSA_KEY_PAIR ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ + +#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) + if( strcmp( "PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY", config ) == 0 ) + { + MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY ); + return( 0 ); + } +#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */ + + /* If the symbol is not found, return an error */ + return( 1 ); +} + +void list_config( void ) +{ + #if defined(MBEDTLS_CONFIG_VERSION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CONFIG_VERSION); +#endif /* MBEDTLS_CONFIG_VERSION */ + +#if defined(MBEDTLS_HAVE_ASM) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_ASM); +#endif /* MBEDTLS_HAVE_ASM */ + +#if defined(MBEDTLS_NO_UDBL_DIVISION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_UDBL_DIVISION); +#endif /* MBEDTLS_NO_UDBL_DIVISION */ + +#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_64BIT_MULTIPLICATION); +#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ + +#if defined(MBEDTLS_HAVE_SSE2) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_SSE2); +#endif /* MBEDTLS_HAVE_SSE2 */ + +#if defined(MBEDTLS_HAVE_TIME) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_TIME); +#endif /* MBEDTLS_HAVE_TIME */ + +#if defined(MBEDTLS_HAVE_TIME_DATE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_TIME_DATE); +#endif /* MBEDTLS_HAVE_TIME_DATE */ + +#if defined(MBEDTLS_PLATFORM_MEMORY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_MEMORY); +#endif /* MBEDTLS_PLATFORM_MEMORY */ + +#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS); +#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ + +#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETBUF_ALT); +#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ + +#if defined(MBEDTLS_PLATFORM_EXIT_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_EXIT_ALT); +#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ + +#if defined(MBEDTLS_PLATFORM_TIME_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_ALT); +#endif /* MBEDTLS_PLATFORM_TIME_ALT */ + +#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FPRINTF_ALT); +#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_PRINTF_ALT); +#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SNPRINTF_ALT); +#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_VSNPRINTF_ALT); +#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_ALT); +#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ + +#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT); +#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ + +#if defined(MBEDTLS_DEPRECATED_WARNING) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEPRECATED_WARNING); +#endif /* MBEDTLS_DEPRECATED_WARNING */ + +#if defined(MBEDTLS_DEPRECATED_REMOVED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEPRECATED_REMOVED); +#endif /* MBEDTLS_DEPRECATED_REMOVED */ + +#if defined(MBEDTLS_TIMING_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TIMING_ALT); +#endif /* MBEDTLS_TIMING_ALT */ + +#if defined(MBEDTLS_AES_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ALT); +#endif /* MBEDTLS_AES_ALT */ + +#if defined(MBEDTLS_ARIA_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ARIA_ALT); +#endif /* MBEDTLS_ARIA_ALT */ + +#if defined(MBEDTLS_CAMELLIA_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_ALT); +#endif /* MBEDTLS_CAMELLIA_ALT */ + +#if defined(MBEDTLS_CCM_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CCM_ALT); +#endif /* MBEDTLS_CCM_ALT */ + +#if defined(MBEDTLS_CHACHA20_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHA20_ALT); +#endif /* MBEDTLS_CHACHA20_ALT */ + +#if defined(MBEDTLS_CHACHAPOLY_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHAPOLY_ALT); +#endif /* MBEDTLS_CHACHAPOLY_ALT */ + +#if defined(MBEDTLS_CMAC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CMAC_ALT); +#endif /* MBEDTLS_CMAC_ALT */ + +#if defined(MBEDTLS_DES_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_ALT); +#endif /* MBEDTLS_DES_ALT */ + +#if defined(MBEDTLS_DHM_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DHM_ALT); +#endif /* MBEDTLS_DHM_ALT */ + +#if defined(MBEDTLS_ECJPAKE_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECJPAKE_ALT); +#endif /* MBEDTLS_ECJPAKE_ALT */ + +#if defined(MBEDTLS_GCM_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GCM_ALT); +#endif /* MBEDTLS_GCM_ALT */ + +#if defined(MBEDTLS_NIST_KW_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NIST_KW_ALT); +#endif /* MBEDTLS_NIST_KW_ALT */ + +#if defined(MBEDTLS_MD5_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_ALT); +#endif /* MBEDTLS_MD5_ALT */ + +#if defined(MBEDTLS_POLY1305_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_POLY1305_ALT); +#endif /* MBEDTLS_POLY1305_ALT */ + +#if defined(MBEDTLS_RIPEMD160_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_ALT); +#endif /* MBEDTLS_RIPEMD160_ALT */ + +#if defined(MBEDTLS_RSA_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_ALT); +#endif /* MBEDTLS_RSA_ALT */ + +#if defined(MBEDTLS_SHA1_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_ALT); +#endif /* MBEDTLS_SHA1_ALT */ + +#if defined(MBEDTLS_SHA256_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_ALT); +#endif /* MBEDTLS_SHA256_ALT */ + +#if defined(MBEDTLS_SHA512_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_ALT); +#endif /* MBEDTLS_SHA512_ALT */ + +#if defined(MBEDTLS_ECP_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_ALT); +#endif /* MBEDTLS_ECP_ALT */ + +#if defined(MBEDTLS_MD5_PROCESS_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_PROCESS_ALT); +#endif /* MBEDTLS_MD5_PROCESS_ALT */ + +#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_PROCESS_ALT); +#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA1_PROCESS_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_PROCESS_ALT); +#endif /* MBEDTLS_SHA1_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA256_PROCESS_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_PROCESS_ALT); +#endif /* MBEDTLS_SHA256_PROCESS_ALT */ + +#if defined(MBEDTLS_SHA512_PROCESS_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_PROCESS_ALT); +#endif /* MBEDTLS_SHA512_PROCESS_ALT */ + +#if defined(MBEDTLS_DES_SETKEY_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_SETKEY_ALT); +#endif /* MBEDTLS_DES_SETKEY_ALT */ + +#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_CRYPT_ECB_ALT); +#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ + +#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES3_CRYPT_ECB_ALT); +#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ + +#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_SETKEY_ENC_ALT); +#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ + +#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_SETKEY_DEC_ALT); +#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ + +#if defined(MBEDTLS_AES_ENCRYPT_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ENCRYPT_ALT); +#endif /* MBEDTLS_AES_ENCRYPT_ALT */ + +#if defined(MBEDTLS_AES_DECRYPT_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_DECRYPT_ALT); +#endif /* MBEDTLS_AES_DECRYPT_ALT */ + +#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_GEN_PUBLIC_ALT); +#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ + +#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_COMPUTE_SHARED_ALT); +#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ + +#if defined(MBEDTLS_ECDSA_VERIFY_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_VERIFY_ALT); +#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ + +#if defined(MBEDTLS_ECDSA_SIGN_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_SIGN_ALT); +#endif /* MBEDTLS_ECDSA_SIGN_ALT */ + +#if defined(MBEDTLS_ECDSA_GENKEY_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_GENKEY_ALT); +#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ + +#if defined(MBEDTLS_ECP_INTERNAL_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_INTERNAL_ALT); +#endif /* MBEDTLS_ECP_INTERNAL_ALT */ + +#if defined(MBEDTLS_ECP_NO_FALLBACK) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NO_FALLBACK); +#endif /* MBEDTLS_ECP_NO_FALLBACK */ + +#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RANDOMIZE_JAC_ALT); +#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_ADD_MIXED_ALT); +#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ + +#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DOUBLE_JAC_ALT); +#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT); +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_JAC_ALT); +#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ + +#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT); +#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ + +#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT); +#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ + +#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_MXZ_ALT); +#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ + +#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_HARDWARE_ALT); +#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ + +#if defined(MBEDTLS_AES_ROM_TABLES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ROM_TABLES); +#endif /* MBEDTLS_AES_ROM_TABLES */ + +#if defined(MBEDTLS_AES_FEWER_TABLES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_FEWER_TABLES); +#endif /* MBEDTLS_AES_FEWER_TABLES */ + +#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_SMALL_MEMORY); +#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ + +#if defined(MBEDTLS_CHECK_RETURN_WARNING) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHECK_RETURN_WARNING); +#endif /* MBEDTLS_CHECK_RETURN_WARNING */ + +#if defined(MBEDTLS_CIPHER_MODE_CBC) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CBC); +#endif /* MBEDTLS_CIPHER_MODE_CBC */ + +#if defined(MBEDTLS_CIPHER_MODE_CFB) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CFB); +#endif /* MBEDTLS_CIPHER_MODE_CFB */ + +#if defined(MBEDTLS_CIPHER_MODE_CTR) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CTR); +#endif /* MBEDTLS_CIPHER_MODE_CTR */ + +#if defined(MBEDTLS_CIPHER_MODE_OFB) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_OFB); +#endif /* MBEDTLS_CIPHER_MODE_OFB */ + +#if defined(MBEDTLS_CIPHER_MODE_XTS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_XTS); +#endif /* MBEDTLS_CIPHER_MODE_XTS */ + +#if defined(MBEDTLS_CIPHER_NULL_CIPHER) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_NULL_CIPHER); +#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ + +#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_PKCS7); +#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ + +#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS); +#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ + +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN); +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ + +#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ZEROS); +#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ + +#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY); +#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ + +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP192R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP224R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP256R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP384R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP521R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP192K1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP224K1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP256K1_ENABLED); +#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP256R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP384R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP512R1_ENABLED); +#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_CURVE25519_ENABLED); +#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ + +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_CURVE448_ENABLED); +#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ + +#if defined(MBEDTLS_ECP_NIST_OPTIM) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NIST_OPTIM); +#endif /* MBEDTLS_ECP_NIST_OPTIM */ + +#if defined(MBEDTLS_ECP_RESTARTABLE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RESTARTABLE); +#endif /* MBEDTLS_ECP_RESTARTABLE */ + +#if defined(MBEDTLS_ECDSA_DETERMINISTIC) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_DETERMINISTIC); +#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ + +#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ + +#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED); +#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ + +#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_PARSE_EC_EXTENDED); +#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ + +#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ERROR_STRERROR_DUMMY); +#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ + +#if defined(MBEDTLS_GENPRIME) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GENPRIME); +#endif /* MBEDTLS_GENPRIME */ + +#if defined(MBEDTLS_FS_IO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_FS_IO); +#endif /* MBEDTLS_FS_IO */ + +#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES); +#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ + +#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_PLATFORM_ENTROPY); +#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ + +#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_FORCE_SHA256); +#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ + +#if defined(MBEDTLS_ENTROPY_NV_SEED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_NV_SEED); +#endif /* MBEDTLS_ENTROPY_NV_SEED */ + +#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER); +#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ + +#if defined(MBEDTLS_MEMORY_DEBUG) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_DEBUG); +#endif /* MBEDTLS_MEMORY_DEBUG */ + +#if defined(MBEDTLS_MEMORY_BACKTRACE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_BACKTRACE); +#endif /* MBEDTLS_MEMORY_BACKTRACE */ + +#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_RSA_ALT_SUPPORT); +#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ + +#if defined(MBEDTLS_PKCS1_V15) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS1_V15); +#endif /* MBEDTLS_PKCS1_V15 */ + +#if defined(MBEDTLS_PKCS1_V21) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS1_V21); +#endif /* MBEDTLS_PKCS1_V21 */ + +#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS); +#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ + +#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CLIENT); +#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ + +#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_DRIVERS); +#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ + +#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG); +#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ + +#if defined(MBEDTLS_PSA_CRYPTO_SPM) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_SPM); +#endif /* MBEDTLS_PSA_CRYPTO_SPM */ + +#if defined(MBEDTLS_PSA_INJECT_ENTROPY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_INJECT_ENTROPY); +#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ + +#if defined(MBEDTLS_RSA_NO_CRT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_NO_CRT); +#endif /* MBEDTLS_RSA_NO_CRT */ + +#if defined(MBEDTLS_SELF_TEST) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SELF_TEST); +#endif /* MBEDTLS_SELF_TEST */ + +#if defined(MBEDTLS_SHA256_SMALLER) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_SMALLER); +#endif /* MBEDTLS_SHA256_SMALLER */ + +#if defined(MBEDTLS_SHA512_SMALLER) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_SMALLER); +#endif /* MBEDTLS_SHA512_SMALLER */ + +#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ALL_ALERT_MESSAGES); +#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ + +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CONNECTION_ID); +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ + +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT); +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ + +#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ASYNC_PRIVATE); +#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ + +#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CONTEXT_SERIALIZATION); +#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ + +#if defined(MBEDTLS_SSL_DEBUG_ALL) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DEBUG_ALL); +#endif /* MBEDTLS_SSL_DEBUG_ALL */ + +#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ENCRYPT_THEN_MAC); +#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ + +#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_EXTENDED_MASTER_SECRET); +#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ + +#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE); +#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ + +#if defined(MBEDTLS_SSL_RENEGOTIATION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_RENEGOTIATION); +#endif /* MBEDTLS_SSL_RENEGOTIATION */ + +#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH); +#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ + +#if defined(MBEDTLS_SSL_PROTO_TLS1_2) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_TLS1_2); +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_TLS1_3); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ + +#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE); +#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED); +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED); +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED); +#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ + +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE); +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ + +#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH); +#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ + +#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS); +#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ + +#if defined(MBEDTLS_SSL_EARLY_DATA) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_EARLY_DATA); +#endif /* MBEDTLS_SSL_EARLY_DATA */ + +#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE); +#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ + +#if defined(MBEDTLS_SSL_PROTO_DTLS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_DTLS); +#endif /* MBEDTLS_SSL_PROTO_DTLS */ + +#if defined(MBEDTLS_SSL_ALPN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ALPN); +#endif /* MBEDTLS_SSL_ALPN */ + +#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_ANTI_REPLAY); +#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ + +#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_HELLO_VERIFY); +#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ + +#if defined(MBEDTLS_SSL_DTLS_SRTP) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_SRTP); +#endif /* MBEDTLS_SSL_DTLS_SRTP */ + +#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE); +#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ + +#if defined(MBEDTLS_SSL_SESSION_TICKETS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SESSION_TICKETS); +#endif /* MBEDTLS_SSL_SESSION_TICKETS */ + +#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SERVER_NAME_INDICATION); +#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ + +#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH); +#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ + +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN); +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ + +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND); +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ + +#if defined(MBEDTLS_TEST_HOOKS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_HOOKS); +#endif /* MBEDTLS_TEST_HOOKS */ + +#if defined(MBEDTLS_THREADING_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_ALT); +#endif /* MBEDTLS_THREADING_ALT */ + +#if defined(MBEDTLS_THREADING_PTHREAD) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_PTHREAD); +#endif /* MBEDTLS_THREADING_PTHREAD */ + +#if defined(MBEDTLS_USE_PSA_CRYPTO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_USE_PSA_CRYPTO); +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CONFIG); +#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ + +#if defined(MBEDTLS_VERSION_FEATURES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_VERSION_FEATURES); +#endif /* MBEDTLS_VERSION_FEATURES */ + +#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK); +#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ + +#if defined(MBEDTLS_X509_REMOVE_INFO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_REMOVE_INFO); +#endif /* MBEDTLS_X509_REMOVE_INFO */ + +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_RSASSA_PSS_SUPPORT); +#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ + +#if defined(MBEDTLS_AESNI_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AESNI_C); +#endif /* MBEDTLS_AESNI_C */ + +#if defined(MBEDTLS_AES_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_C); +#endif /* MBEDTLS_AES_C */ + +#if defined(MBEDTLS_ASN1_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ASN1_PARSE_C); +#endif /* MBEDTLS_ASN1_PARSE_C */ + +#if defined(MBEDTLS_ASN1_WRITE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ASN1_WRITE_C); +#endif /* MBEDTLS_ASN1_WRITE_C */ + +#if defined(MBEDTLS_BASE64_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_BASE64_C); +#endif /* MBEDTLS_BASE64_C */ + +#if defined(MBEDTLS_BIGNUM_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_BIGNUM_C); +#endif /* MBEDTLS_BIGNUM_C */ + +#if defined(MBEDTLS_CAMELLIA_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_C); +#endif /* MBEDTLS_CAMELLIA_C */ + +#if defined(MBEDTLS_ARIA_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ARIA_C); +#endif /* MBEDTLS_ARIA_C */ + +#if defined(MBEDTLS_CCM_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CCM_C); +#endif /* MBEDTLS_CCM_C */ + +#if defined(MBEDTLS_CHACHA20_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHA20_C); +#endif /* MBEDTLS_CHACHA20_C */ + +#if defined(MBEDTLS_CHACHAPOLY_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHAPOLY_C); +#endif /* MBEDTLS_CHACHAPOLY_C */ + +#if defined(MBEDTLS_CIPHER_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_C); +#endif /* MBEDTLS_CIPHER_C */ + +#if defined(MBEDTLS_CMAC_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CMAC_C); +#endif /* MBEDTLS_CMAC_C */ + +#if defined(MBEDTLS_CTR_DRBG_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_C); +#endif /* MBEDTLS_CTR_DRBG_C */ + +#if defined(MBEDTLS_DEBUG_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEBUG_C); +#endif /* MBEDTLS_DEBUG_C */ + +#if defined(MBEDTLS_DES_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_C); +#endif /* MBEDTLS_DES_C */ + +#if defined(MBEDTLS_DHM_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DHM_C); +#endif /* MBEDTLS_DHM_C */ + +#if defined(MBEDTLS_ECDH_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_C); +#endif /* MBEDTLS_ECDH_C */ + +#if defined(MBEDTLS_ECDSA_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_C); +#endif /* MBEDTLS_ECDSA_C */ + +#if defined(MBEDTLS_ECJPAKE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECJPAKE_C); +#endif /* MBEDTLS_ECJPAKE_C */ + +#if defined(MBEDTLS_ECP_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_C); +#endif /* MBEDTLS_ECP_C */ + +#if defined(MBEDTLS_ENTROPY_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_C); +#endif /* MBEDTLS_ENTROPY_C */ + +#if defined(MBEDTLS_ERROR_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ERROR_C); +#endif /* MBEDTLS_ERROR_C */ + +#if defined(MBEDTLS_GCM_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GCM_C); +#endif /* MBEDTLS_GCM_C */ + +#if defined(MBEDTLS_HKDF_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HKDF_C); +#endif /* MBEDTLS_HKDF_C */ + +#if defined(MBEDTLS_HMAC_DRBG_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_C); +#endif /* MBEDTLS_HMAC_DRBG_C */ + +#if defined(MBEDTLS_LMS_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_LMS_C); +#endif /* MBEDTLS_LMS_C */ + +#if defined(MBEDTLS_LMS_PRIVATE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_LMS_PRIVATE); +#endif /* MBEDTLS_LMS_PRIVATE */ + +#if defined(MBEDTLS_NIST_KW_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NIST_KW_C); +#endif /* MBEDTLS_NIST_KW_C */ + +#if defined(MBEDTLS_MD_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD_C); +#endif /* MBEDTLS_MD_C */ + +#if defined(MBEDTLS_MD5_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_C); +#endif /* MBEDTLS_MD5_C */ + +#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_BUFFER_ALLOC_C); +#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ + +#if defined(MBEDTLS_NET_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NET_C); +#endif /* MBEDTLS_NET_C */ + +#if defined(MBEDTLS_OID_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_OID_C); +#endif /* MBEDTLS_OID_C */ + +#if defined(MBEDTLS_PADLOCK_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PADLOCK_C); +#endif /* MBEDTLS_PADLOCK_C */ + +#if defined(MBEDTLS_PEM_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PEM_PARSE_C); +#endif /* MBEDTLS_PEM_PARSE_C */ + +#if defined(MBEDTLS_PEM_WRITE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PEM_WRITE_C); +#endif /* MBEDTLS_PEM_WRITE_C */ + +#if defined(MBEDTLS_PK_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_C); +#endif /* MBEDTLS_PK_C */ + +#if defined(MBEDTLS_PK_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_PARSE_C); +#endif /* MBEDTLS_PK_PARSE_C */ + +#if defined(MBEDTLS_PK_WRITE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_WRITE_C); +#endif /* MBEDTLS_PK_WRITE_C */ + +#if defined(MBEDTLS_PKCS5_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS5_C); +#endif /* MBEDTLS_PKCS5_C */ + +#if defined(MBEDTLS_PKCS7_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS7_C); +#endif /* MBEDTLS_PKCS7_C */ + +#if defined(MBEDTLS_PKCS12_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS12_C); +#endif /* MBEDTLS_PKCS12_C */ + +#if defined(MBEDTLS_PLATFORM_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_C); +#endif /* MBEDTLS_PLATFORM_C */ + +#if defined(MBEDTLS_POLY1305_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_POLY1305_C); +#endif /* MBEDTLS_POLY1305_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_C); +#endif /* MBEDTLS_PSA_CRYPTO_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_SE_C); +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ + +#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_STORAGE_C); +#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ + +#if defined(MBEDTLS_PSA_ITS_FILE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_ITS_FILE_C); +#endif /* MBEDTLS_PSA_ITS_FILE_C */ + +#if defined(MBEDTLS_RIPEMD160_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_C); +#endif /* MBEDTLS_RIPEMD160_C */ + +#if defined(MBEDTLS_RSA_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_C); +#endif /* MBEDTLS_RSA_C */ + +#if defined(MBEDTLS_SHA1_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_C); +#endif /* MBEDTLS_SHA1_C */ + +#if defined(MBEDTLS_SHA224_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA224_C); +#endif /* MBEDTLS_SHA224_C */ + +#if defined(MBEDTLS_SHA256_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_C); +#endif /* MBEDTLS_SHA256_C */ + +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT); +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ + +#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY); +#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ + +#if defined(MBEDTLS_SHA384_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA384_C); +#endif /* MBEDTLS_SHA384_C */ + +#if defined(MBEDTLS_SHA512_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_C); +#endif /* MBEDTLS_SHA512_C */ + +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT); +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ + +#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY); +#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ + +#if defined(MBEDTLS_SSL_CACHE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_C); +#endif /* MBEDTLS_SSL_CACHE_C */ + +#if defined(MBEDTLS_SSL_COOKIE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_COOKIE_C); +#endif /* MBEDTLS_SSL_COOKIE_C */ + +#if defined(MBEDTLS_SSL_TICKET_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TICKET_C); +#endif /* MBEDTLS_SSL_TICKET_C */ + +#if defined(MBEDTLS_SSL_CLI_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CLI_C); +#endif /* MBEDTLS_SSL_CLI_C */ + +#if defined(MBEDTLS_SSL_SRV_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SRV_C); +#endif /* MBEDTLS_SSL_SRV_C */ + +#if defined(MBEDTLS_SSL_TLS_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS_C); +#endif /* MBEDTLS_SSL_TLS_C */ + +#if defined(MBEDTLS_THREADING_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_C); +#endif /* MBEDTLS_THREADING_C */ + +#if defined(MBEDTLS_TIMING_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TIMING_C); +#endif /* MBEDTLS_TIMING_C */ + +#if defined(MBEDTLS_VERSION_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_VERSION_C); +#endif /* MBEDTLS_VERSION_C */ + +#if defined(MBEDTLS_X509_USE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_USE_C); +#endif /* MBEDTLS_X509_USE_C */ + +#if defined(MBEDTLS_X509_CRT_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRT_PARSE_C); +#endif /* MBEDTLS_X509_CRT_PARSE_C */ + +#if defined(MBEDTLS_X509_CRL_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRL_PARSE_C); +#endif /* MBEDTLS_X509_CRL_PARSE_C */ + +#if defined(MBEDTLS_X509_CSR_PARSE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CSR_PARSE_C); +#endif /* MBEDTLS_X509_CSR_PARSE_C */ + +#if defined(MBEDTLS_X509_CREATE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CREATE_C); +#endif /* MBEDTLS_X509_CREATE_C */ + +#if defined(MBEDTLS_X509_CRT_WRITE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRT_WRITE_C); +#endif /* MBEDTLS_X509_CRT_WRITE_C */ + +#if defined(MBEDTLS_X509_CSR_WRITE_C) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CSR_WRITE_C); +#endif /* MBEDTLS_X509_CSR_WRITE_C */ + +#if defined(MBEDTLS_CONFIG_FILE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CONFIG_FILE); +#endif /* MBEDTLS_CONFIG_FILE */ + +#if defined(MBEDTLS_USER_CONFIG_FILE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_USER_CONFIG_FILE); +#endif /* MBEDTLS_USER_CONFIG_FILE */ + +#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CONFIG_FILE); +#endif /* MBEDTLS_PSA_CRYPTO_CONFIG_FILE */ + +#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE); +#endif /* MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE */ + +#if defined(MBEDTLS_MPI_WINDOW_SIZE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MPI_WINDOW_SIZE); +#endif /* MBEDTLS_MPI_WINDOW_SIZE */ + +#if defined(MBEDTLS_MPI_MAX_SIZE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MPI_MAX_SIZE); +#endif /* MBEDTLS_MPI_MAX_SIZE */ + +#if defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_ENTROPY_LEN); +#endif /* MBEDTLS_CTR_DRBG_ENTROPY_LEN */ + +#if defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_RESEED_INTERVAL); +#endif /* MBEDTLS_CTR_DRBG_RESEED_INTERVAL */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_INPUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_INPUT); +#endif /* MBEDTLS_CTR_DRBG_MAX_INPUT */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_REQUEST) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_REQUEST); +#endif /* MBEDTLS_CTR_DRBG_MAX_REQUEST */ + +#if defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT); +#endif /* MBEDTLS_CTR_DRBG_MAX_SEED_INPUT */ + +#if defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL); +#endif /* MBEDTLS_HMAC_DRBG_RESEED_INTERVAL */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_INPUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_INPUT); +#endif /* MBEDTLS_HMAC_DRBG_MAX_INPUT */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_REQUEST); +#endif /* MBEDTLS_HMAC_DRBG_MAX_REQUEST */ + +#if defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT); +#endif /* MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT */ + +#if defined(MBEDTLS_ECP_WINDOW_SIZE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_WINDOW_SIZE); +#endif /* MBEDTLS_ECP_WINDOW_SIZE */ + +#if defined(MBEDTLS_ECP_FIXED_POINT_OPTIM) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_FIXED_POINT_OPTIM); +#endif /* MBEDTLS_ECP_FIXED_POINT_OPTIM */ + +#if defined(MBEDTLS_ENTROPY_MAX_SOURCES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MAX_SOURCES); +#endif /* MBEDTLS_ENTROPY_MAX_SOURCES */ + +#if defined(MBEDTLS_ENTROPY_MAX_GATHER) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MAX_GATHER); +#endif /* MBEDTLS_ENTROPY_MAX_GATHER */ + +#if defined(MBEDTLS_ENTROPY_MIN_HARDWARE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MIN_HARDWARE); +#endif /* MBEDTLS_ENTROPY_MIN_HARDWARE */ + +#if defined(MBEDTLS_MEMORY_ALIGN_MULTIPLE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_ALIGN_MULTIPLE); +#endif /* MBEDTLS_MEMORY_ALIGN_MULTIPLE */ + +#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_MEM_HDR); +#endif /* MBEDTLS_PLATFORM_STD_MEM_HDR */ + +#if defined(MBEDTLS_PLATFORM_STD_CALLOC) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_CALLOC); +#endif /* MBEDTLS_PLATFORM_STD_CALLOC */ + +#if defined(MBEDTLS_PLATFORM_STD_FREE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_FREE); +#endif /* MBEDTLS_PLATFORM_STD_FREE */ + +#if defined(MBEDTLS_PLATFORM_STD_SETBUF) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_SETBUF); +#endif /* MBEDTLS_PLATFORM_STD_SETBUF */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT); +#endif /* MBEDTLS_PLATFORM_STD_EXIT */ + +#if defined(MBEDTLS_PLATFORM_STD_TIME) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_TIME); +#endif /* MBEDTLS_PLATFORM_STD_TIME */ + +#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_FPRINTF); +#endif /* MBEDTLS_PLATFORM_STD_FPRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_PRINTF) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_PRINTF); +#endif /* MBEDTLS_PLATFORM_STD_PRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_SNPRINTF); +#endif /* MBEDTLS_PLATFORM_STD_SNPRINTF */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS); +#endif /* MBEDTLS_PLATFORM_STD_EXIT_SUCCESS */ + +#if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT_FAILURE); +#endif /* MBEDTLS_PLATFORM_STD_EXIT_FAILURE */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_READ); +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_READ */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE); +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_WRITE */ + +#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_FILE); +#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_FILE */ + +#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_CALLOC_MACRO); +#endif /* MBEDTLS_PLATFORM_CALLOC_MACRO */ + +#if defined(MBEDTLS_PLATFORM_FREE_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FREE_MACRO); +#endif /* MBEDTLS_PLATFORM_FREE_MACRO */ + +#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_EXIT_MACRO); +#endif /* MBEDTLS_PLATFORM_EXIT_MACRO */ + +#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETBUF_MACRO); +#endif /* MBEDTLS_PLATFORM_SETBUF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_TIME_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_MACRO); +#endif /* MBEDTLS_PLATFORM_TIME_MACRO */ + +#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_TYPE_MACRO); +#endif /* MBEDTLS_PLATFORM_TIME_TYPE_MACRO */ + +#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FPRINTF_MACRO); +#endif /* MBEDTLS_PLATFORM_FPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_PRINTF_MACRO); +#endif /* MBEDTLS_PLATFORM_PRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SNPRINTF_MACRO); +#endif /* MBEDTLS_PLATFORM_SNPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_VSNPRINTF_MACRO); +#endif /* MBEDTLS_PLATFORM_VSNPRINTF_MACRO */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO); +#endif /* MBEDTLS_PLATFORM_NV_SEED_READ_MACRO */ + +#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO); +#endif /* MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO */ + +#if defined(MBEDTLS_CHECK_RETURN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHECK_RETURN); +#endif /* MBEDTLS_CHECK_RETURN */ + +#if defined(MBEDTLS_IGNORE_RETURN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_IGNORE_RETURN); +#endif /* MBEDTLS_IGNORE_RETURN */ + +#if defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE); +#endif /* MBEDTLS_PSA_HMAC_DRBG_MD_TYPE */ + +#if defined(MBEDTLS_PSA_KEY_SLOT_COUNT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_KEY_SLOT_COUNT); +#endif /* MBEDTLS_PSA_KEY_SLOT_COUNT */ + +#if defined(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT); +#endif /* MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT */ + +#if defined(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES); +#endif /* MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES */ + +#if defined(MBEDTLS_SSL_IN_CONTENT_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_IN_CONTENT_LEN); +#endif /* MBEDTLS_SSL_IN_CONTENT_LEN */ + +#if defined(MBEDTLS_SSL_CID_IN_LEN_MAX) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_IN_LEN_MAX); +#endif /* MBEDTLS_SSL_CID_IN_LEN_MAX */ + +#if defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_OUT_LEN_MAX); +#endif /* MBEDTLS_SSL_CID_OUT_LEN_MAX */ + +#if defined(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY); +#endif /* MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY */ + +#if defined(MBEDTLS_SSL_OUT_CONTENT_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_OUT_CONTENT_LEN); +#endif /* MBEDTLS_SSL_OUT_CONTENT_LEN */ + +#if defined(MBEDTLS_SSL_DTLS_MAX_BUFFERING) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_MAX_BUFFERING); +#endif /* MBEDTLS_SSL_DTLS_MAX_BUFFERING */ + +#if defined(MBEDTLS_PSK_MAX_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSK_MAX_LEN); +#endif /* MBEDTLS_PSK_MAX_LEN */ + +#if defined(MBEDTLS_SSL_COOKIE_TIMEOUT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_COOKIE_TIMEOUT); +#endif /* MBEDTLS_SSL_COOKIE_TIMEOUT */ + +#if defined(MBEDTLS_X509_MAX_INTERMEDIATE_CA) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_MAX_INTERMEDIATE_CA); +#endif /* MBEDTLS_X509_MAX_INTERMEDIATE_CA */ + +#if defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_MAX_FILE_PATH_LEN); +#endif /* MBEDTLS_X509_MAX_FILE_PATH_LEN */ + +#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_ZEROIZE_ALT); +#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ + +#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_GMTIME_R_ALT); +#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */ + +#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) + OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED); +#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */ + +#if defined(PSA_WANT_ALG_CBC_MAC) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_MAC); +#endif /* PSA_WANT_ALG_CBC_MAC */ + +#if defined(PSA_WANT_ALG_CBC_NO_PADDING) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_NO_PADDING); +#endif /* PSA_WANT_ALG_CBC_NO_PADDING */ + +#if defined(PSA_WANT_ALG_CBC_PKCS7) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_PKCS7); +#endif /* PSA_WANT_ALG_CBC_PKCS7 */ + +#if defined(PSA_WANT_ALG_CCM) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CCM); +#endif /* PSA_WANT_ALG_CCM */ + +#if defined(PSA_WANT_ALG_CMAC) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CMAC); +#endif /* PSA_WANT_ALG_CMAC */ + +#if defined(PSA_WANT_ALG_CFB) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CFB); +#endif /* PSA_WANT_ALG_CFB */ + +#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CHACHA20_POLY1305); +#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ + +#if defined(PSA_WANT_ALG_CTR) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CTR); +#endif /* PSA_WANT_ALG_CTR */ + +#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_DETERMINISTIC_ECDSA); +#endif /* PSA_WANT_ALG_DETERMINISTIC_ECDSA */ + +#if defined(PSA_WANT_ALG_ECB_NO_PADDING) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECB_NO_PADDING); +#endif /* PSA_WANT_ALG_ECB_NO_PADDING */ + +#if defined(PSA_WANT_ALG_ECDH) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECDH); +#endif /* PSA_WANT_ALG_ECDH */ + +#if defined(PSA_WANT_ALG_ECDSA) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECDSA); +#endif /* PSA_WANT_ALG_ECDSA */ + +#if defined(PSA_WANT_ALG_JPAKE) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_JPAKE); +#endif /* PSA_WANT_ALG_JPAKE */ + +#if defined(PSA_WANT_ALG_GCM) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_GCM); +#endif /* PSA_WANT_ALG_GCM */ + +#if defined(PSA_WANT_ALG_HKDF) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF); +#endif /* PSA_WANT_ALG_HKDF */ + +#if defined(PSA_WANT_ALG_HKDF_EXTRACT) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF_EXTRACT); +#endif /* PSA_WANT_ALG_HKDF_EXTRACT */ + +#if defined(PSA_WANT_ALG_HKDF_EXPAND) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF_EXPAND); +#endif /* PSA_WANT_ALG_HKDF_EXPAND */ + +#if defined(PSA_WANT_ALG_HMAC) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HMAC); +#endif /* PSA_WANT_ALG_HMAC */ + +#if defined(PSA_WANT_ALG_MD5) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_MD5); +#endif /* PSA_WANT_ALG_MD5 */ + +#if defined(PSA_WANT_ALG_OFB) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_OFB); +#endif /* PSA_WANT_ALG_OFB */ + +#if defined(PSA_WANT_ALG_PBKDF2_HMAC) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_PBKDF2_HMAC); +#endif /* PSA_WANT_ALG_PBKDF2_HMAC */ + +#if defined(PSA_WANT_ALG_RIPEMD160) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RIPEMD160); +#endif /* PSA_WANT_ALG_RIPEMD160 */ + +#if defined(PSA_WANT_ALG_RSA_OAEP) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_OAEP); +#endif /* PSA_WANT_ALG_RSA_OAEP */ + +#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT); +#endif /* PSA_WANT_ALG_RSA_PKCS1V15_CRYPT */ + +#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PKCS1V15_SIGN); +#endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */ + +#if defined(PSA_WANT_ALG_RSA_PSS) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PSS); +#endif /* PSA_WANT_ALG_RSA_PSS */ + +#if defined(PSA_WANT_ALG_SHA_1) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_1); +#endif /* PSA_WANT_ALG_SHA_1 */ + +#if defined(PSA_WANT_ALG_SHA_224) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_224); +#endif /* PSA_WANT_ALG_SHA_224 */ + +#if defined(PSA_WANT_ALG_SHA_256) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_256); +#endif /* PSA_WANT_ALG_SHA_256 */ + +#if defined(PSA_WANT_ALG_SHA_384) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_384); +#endif /* PSA_WANT_ALG_SHA_384 */ + +#if defined(PSA_WANT_ALG_SHA_512) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_512); +#endif /* PSA_WANT_ALG_SHA_512 */ + +#if defined(PSA_WANT_ALG_STREAM_CIPHER) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_STREAM_CIPHER); +#endif /* PSA_WANT_ALG_STREAM_CIPHER */ + +#if defined(PSA_WANT_ALG_TLS12_PRF) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_PRF); +#endif /* PSA_WANT_ALG_TLS12_PRF */ + +#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_PSK_TO_MS); +#endif /* PSA_WANT_ALG_TLS12_PSK_TO_MS */ + +#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS); +#endif /* PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS */ + +#if defined(PSA_WANT_ALG_XTS) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_XTS); +#endif /* PSA_WANT_ALG_XTS */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_256); +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_384); +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */ + +#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_512); +#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */ + +#if defined(PSA_WANT_ECC_MONTGOMERY_255) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_MONTGOMERY_255); +#endif /* PSA_WANT_ECC_MONTGOMERY_255 */ + +#if defined(PSA_WANT_ECC_MONTGOMERY_448) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_MONTGOMERY_448); +#endif /* PSA_WANT_ECC_MONTGOMERY_448 */ + +#if defined(PSA_WANT_ECC_SECP_K1_192) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_192); +#endif /* PSA_WANT_ECC_SECP_K1_192 */ + +#if defined(PSA_WANT_ECC_SECP_K1_224) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_224); +#endif /* PSA_WANT_ECC_SECP_K1_224 */ + +#if defined(PSA_WANT_ECC_SECP_K1_256) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_256); +#endif /* PSA_WANT_ECC_SECP_K1_256 */ + +#if defined(PSA_WANT_ECC_SECP_R1_192) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_192); +#endif /* PSA_WANT_ECC_SECP_R1_192 */ + +#if defined(PSA_WANT_ECC_SECP_R1_224) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_224); +#endif /* PSA_WANT_ECC_SECP_R1_224 */ + +#if defined(PSA_WANT_ECC_SECP_R1_256) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_256); +#endif /* PSA_WANT_ECC_SECP_R1_256 */ + +#if defined(PSA_WANT_ECC_SECP_R1_384) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_384); +#endif /* PSA_WANT_ECC_SECP_R1_384 */ + +#if defined(PSA_WANT_ECC_SECP_R1_521) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_521); +#endif /* PSA_WANT_ECC_SECP_R1_521 */ + +#if defined(PSA_WANT_KEY_TYPE_DERIVE) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_DERIVE); +#endif /* PSA_WANT_KEY_TYPE_DERIVE */ + +#if defined(PSA_WANT_KEY_TYPE_HMAC) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_HMAC); +#endif /* PSA_WANT_KEY_TYPE_HMAC */ + +#if defined(PSA_WANT_KEY_TYPE_AES) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_AES); +#endif /* PSA_WANT_KEY_TYPE_AES */ + +#if defined(PSA_WANT_KEY_TYPE_ARIA) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ARIA); +#endif /* PSA_WANT_KEY_TYPE_ARIA */ + +#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_CAMELLIA); +#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */ + +#if defined(PSA_WANT_KEY_TYPE_CHACHA20) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_CHACHA20); +#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */ + +#if defined(PSA_WANT_KEY_TYPE_DES) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_DES); +#endif /* PSA_WANT_KEY_TYPE_DES */ + +#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR); +#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR */ + +#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY); +#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */ + +#if defined(PSA_WANT_KEY_TYPE_RAW_DATA) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RAW_DATA); +#endif /* PSA_WANT_KEY_TYPE_RAW_DATA */ + +#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR); +#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ + +#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) + OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY); +#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */ + + +} +#if defined(_MSC_VER) +#pragma warning(pop) +#endif /* _MSC_VER */ diff --git a/tests/suites/test_suite_bignum.generated.data b/tests/suites/test_suite_bignum.generated.data new file mode 100644 index 000000000..6badd0b01 --- /dev/null +++ b/tests/suites/test_suite_bignum.generated.data @@ -0,0 +1,975 @@ +# Automatically generated by generate_bignum_tests.py. Do not edit! + +MPI add #1 0 (null) + 0 (null) +mpi_add_mpi:"":"":"0" + +MPI add #2 0 (null) + 0 (1 limb) +mpi_add_mpi:"":"0":"0" + +MPI add #3 0 (null) + negative 0 (null) +mpi_add_mpi:"":"-":"0" + +MPI add #4 0 (null) + negative with leading zero limb +mpi_add_mpi:"":"-0":"0" + +MPI add #5 0 (null) + positive +mpi_add_mpi:"":"7b":"7b" + +MPI add #6 0 (null) + negative +mpi_add_mpi:"":"-7b":"-7b" + +MPI add #7 0 (null) + positive with leading zero limb +mpi_add_mpi:"":"0000000000000000123":"123" + +MPI add #8 0 (null) + negative with leading zero limb +mpi_add_mpi:"":"-0000000000000000123":"-123" + +MPI add #9 0 (null) + large positive +mpi_add_mpi:"":"1230000000000000000":"1230000000000000000" + +MPI add #10 0 (null) + large negative +mpi_add_mpi:"":"-1230000000000000000":"-1230000000000000000" + +MPI add #11 0 (1 limb) + 0 (null) +mpi_add_mpi:"0":"":"0" + +MPI add #12 0 (1 limb) + 0 (1 limb) +mpi_add_mpi:"0":"0":"0" + +MPI add #13 0 (1 limb) + negative 0 (null) +mpi_add_mpi:"0":"-":"0" + +MPI add #14 0 (1 limb) + negative with leading zero limb +mpi_add_mpi:"0":"-0":"0" + +MPI add #15 0 (1 limb) + positive +mpi_add_mpi:"0":"7b":"7b" + +MPI add #16 0 (1 limb) + negative +mpi_add_mpi:"0":"-7b":"-7b" + +MPI add #17 0 (1 limb) + positive with leading zero limb +mpi_add_mpi:"0":"0000000000000000123":"123" + +MPI add #18 0 (1 limb) + negative with leading zero limb +mpi_add_mpi:"0":"-0000000000000000123":"-123" + +MPI add #19 0 (1 limb) + large positive +mpi_add_mpi:"0":"1230000000000000000":"1230000000000000000" + +MPI add #20 0 (1 limb) + large negative +mpi_add_mpi:"0":"-1230000000000000000":"-1230000000000000000" + +MPI add #21 negative 0 (null) + 0 (null) +mpi_add_mpi:"-":"":"0" + +MPI add #22 negative 0 (null) + 0 (1 limb) +mpi_add_mpi:"-":"0":"0" + +MPI add #23 negative 0 (null) + negative 0 (null) +mpi_add_mpi:"-":"-":"0" + +MPI add #24 negative 0 (null) + negative with leading zero limb +mpi_add_mpi:"-":"-0":"0" + +MPI add #25 negative 0 (null) + positive +mpi_add_mpi:"-":"7b":"7b" + +MPI add #26 negative 0 (null) + negative +mpi_add_mpi:"-":"-7b":"-7b" + +MPI add #27 negative 0 (null) + positive with leading zero limb +mpi_add_mpi:"-":"0000000000000000123":"123" + +MPI add #28 negative 0 (null) + negative with leading zero limb +mpi_add_mpi:"-":"-0000000000000000123":"-123" + +MPI add #29 negative 0 (null) + large positive +mpi_add_mpi:"-":"1230000000000000000":"1230000000000000000" + +MPI add #30 negative 0 (null) + large negative +mpi_add_mpi:"-":"-1230000000000000000":"-1230000000000000000" + +MPI add #31 negative with leading zero limb + 0 (null) +mpi_add_mpi:"-0":"":"0" + +MPI add #32 negative with leading zero limb + 0 (1 limb) +mpi_add_mpi:"-0":"0":"0" + +MPI add #33 negative with leading zero limb + negative 0 (null) +mpi_add_mpi:"-0":"-":"0" + +MPI add #34 negative with leading zero limb + negative with leading zero limb +mpi_add_mpi:"-0":"-0":"0" + +MPI add #35 negative with leading zero limb + positive +mpi_add_mpi:"-0":"7b":"7b" + +MPI add #36 negative with leading zero limb + negative +mpi_add_mpi:"-0":"-7b":"-7b" + +MPI add #37 negative with leading zero limb + positive with leading zero limb +mpi_add_mpi:"-0":"0000000000000000123":"123" + +MPI add #38 negative with leading zero limb + negative with leading zero limb +mpi_add_mpi:"-0":"-0000000000000000123":"-123" + +MPI add #39 negative with leading zero limb + large positive +mpi_add_mpi:"-0":"1230000000000000000":"1230000000000000000" + +MPI add #40 negative with leading zero limb + large negative +mpi_add_mpi:"-0":"-1230000000000000000":"-1230000000000000000" + +MPI add #41 positive + 0 (null) +mpi_add_mpi:"7b":"":"7b" + +MPI add #42 positive + 0 (1 limb) +mpi_add_mpi:"7b":"0":"7b" + +MPI add #43 positive + negative 0 (null) +mpi_add_mpi:"7b":"-":"7b" + +MPI add #44 positive + negative with leading zero limb +mpi_add_mpi:"7b":"-0":"7b" + +MPI add #45 positive + positive +mpi_add_mpi:"7b":"7b":"f6" + +MPI add #46 positive + negative , result=0 +mpi_add_mpi:"7b":"-7b":"0" + +MPI add #47 positive + positive with leading zero limb +mpi_add_mpi:"7b":"0000000000000000123":"19e" + +MPI add #48 positive + negative with leading zero limb , result<0 +mpi_add_mpi:"7b":"-0000000000000000123":"-a8" + +MPI add #49 positive + large positive +mpi_add_mpi:"7b":"1230000000000000000":"123000000000000007b" + +MPI add #50 positive + large negative , result<0 +mpi_add_mpi:"7b":"-1230000000000000000":"-122ffffffffffffff85" + +MPI add #51 negative + 0 (null) +mpi_add_mpi:"-7b":"":"-7b" + +MPI add #52 negative + 0 (1 limb) +mpi_add_mpi:"-7b":"0":"-7b" + +MPI add #53 negative + negative 0 (null) +mpi_add_mpi:"-7b":"-":"-7b" + +MPI add #54 negative + negative with leading zero limb +mpi_add_mpi:"-7b":"-0":"-7b" + +MPI add #55 negative + positive , result=0 +mpi_add_mpi:"-7b":"7b":"0" + +MPI add #56 negative + negative +mpi_add_mpi:"-7b":"-7b":"-f6" + +MPI add #57 negative + positive with leading zero limb , result>0 +mpi_add_mpi:"-7b":"0000000000000000123":"a8" + +MPI add #58 negative + negative with leading zero limb +mpi_add_mpi:"-7b":"-0000000000000000123":"-19e" + +MPI add #59 negative + large positive , result>0 +mpi_add_mpi:"-7b":"1230000000000000000":"122ffffffffffffff85" + +MPI add #60 negative + large negative +mpi_add_mpi:"-7b":"-1230000000000000000":"-123000000000000007b" + +MPI add #61 positive with leading zero limb + 0 (null) +mpi_add_mpi:"0000000000000000123":"":"123" + +MPI add #62 positive with leading zero limb + 0 (1 limb) +mpi_add_mpi:"0000000000000000123":"0":"123" + +MPI add #63 positive with leading zero limb + negative 0 (null) +mpi_add_mpi:"0000000000000000123":"-":"123" + +MPI add #64 positive with leading zero limb + negative with leading zero limb +mpi_add_mpi:"0000000000000000123":"-0":"123" + +MPI add #65 positive with leading zero limb + positive +mpi_add_mpi:"0000000000000000123":"7b":"19e" + +MPI add #66 positive with leading zero limb + negative , result>0 +mpi_add_mpi:"0000000000000000123":"-7b":"a8" + +MPI add #67 positive with leading zero limb + positive with leading zero limb +mpi_add_mpi:"0000000000000000123":"0000000000000000123":"246" + +MPI add #68 positive with leading zero limb + negative with leading zero limb , result=0 +mpi_add_mpi:"0000000000000000123":"-0000000000000000123":"0" + +MPI add #69 positive with leading zero limb + large positive +mpi_add_mpi:"0000000000000000123":"1230000000000000000":"1230000000000000123" + +MPI add #70 positive with leading zero limb + large negative , result<0 +mpi_add_mpi:"0000000000000000123":"-1230000000000000000":"-122fffffffffffffedd" + +MPI add #71 negative with leading zero limb + 0 (null) +mpi_add_mpi:"-0000000000000000123":"":"-123" + +MPI add #72 negative with leading zero limb + 0 (1 limb) +mpi_add_mpi:"-0000000000000000123":"0":"-123" + +MPI add #73 negative with leading zero limb + negative 0 (null) +mpi_add_mpi:"-0000000000000000123":"-":"-123" + +MPI add #74 negative with leading zero limb + negative with leading zero limb +mpi_add_mpi:"-0000000000000000123":"-0":"-123" + +MPI add #75 negative with leading zero limb + positive , result<0 +mpi_add_mpi:"-0000000000000000123":"7b":"-a8" + +MPI add #76 negative with leading zero limb + negative +mpi_add_mpi:"-0000000000000000123":"-7b":"-19e" + +MPI add #77 negative with leading zero limb + positive with leading zero limb , result=0 +mpi_add_mpi:"-0000000000000000123":"0000000000000000123":"0" + +MPI add #78 negative with leading zero limb + negative with leading zero limb +mpi_add_mpi:"-0000000000000000123":"-0000000000000000123":"-246" + +MPI add #79 negative with leading zero limb + large positive , result>0 +mpi_add_mpi:"-0000000000000000123":"1230000000000000000":"122fffffffffffffedd" + +MPI add #80 negative with leading zero limb + large negative +mpi_add_mpi:"-0000000000000000123":"-1230000000000000000":"-1230000000000000123" + +MPI add #81 large positive + 0 (null) +mpi_add_mpi:"1230000000000000000":"":"1230000000000000000" + +MPI add #82 large positive + 0 (1 limb) +mpi_add_mpi:"1230000000000000000":"0":"1230000000000000000" + +MPI add #83 large positive + negative 0 (null) +mpi_add_mpi:"1230000000000000000":"-":"1230000000000000000" + +MPI add #84 large positive + negative with leading zero limb +mpi_add_mpi:"1230000000000000000":"-0":"1230000000000000000" + +MPI add #85 large positive + positive +mpi_add_mpi:"1230000000000000000":"7b":"123000000000000007b" + +MPI add #86 large positive + negative , result>0 +mpi_add_mpi:"1230000000000000000":"-7b":"122ffffffffffffff85" + +MPI add #87 large positive + positive with leading zero limb +mpi_add_mpi:"1230000000000000000":"0000000000000000123":"1230000000000000123" + +MPI add #88 large positive + negative with leading zero limb , result>0 +mpi_add_mpi:"1230000000000000000":"-0000000000000000123":"122fffffffffffffedd" + +MPI add #89 large positive + large positive +mpi_add_mpi:"1230000000000000000":"1230000000000000000":"2460000000000000000" + +MPI add #90 large positive + large negative , result=0 +mpi_add_mpi:"1230000000000000000":"-1230000000000000000":"0" + +MPI add #91 large negative + 0 (null) +mpi_add_mpi:"-1230000000000000000":"":"-1230000000000000000" + +MPI add #92 large negative + 0 (1 limb) +mpi_add_mpi:"-1230000000000000000":"0":"-1230000000000000000" + +MPI add #93 large negative + negative 0 (null) +mpi_add_mpi:"-1230000000000000000":"-":"-1230000000000000000" + +MPI add #94 large negative + negative with leading zero limb +mpi_add_mpi:"-1230000000000000000":"-0":"-1230000000000000000" + +MPI add #95 large negative + positive , result<0 +mpi_add_mpi:"-1230000000000000000":"7b":"-122ffffffffffffff85" + +MPI add #96 large negative + negative +mpi_add_mpi:"-1230000000000000000":"-7b":"-123000000000000007b" + +MPI add #97 large negative + positive with leading zero limb , result<0 +mpi_add_mpi:"-1230000000000000000":"0000000000000000123":"-122fffffffffffffedd" + +MPI add #98 large negative + negative with leading zero limb +mpi_add_mpi:"-1230000000000000000":"-0000000000000000123":"-1230000000000000123" + +MPI add #99 large negative + large positive , result=0 +mpi_add_mpi:"-1230000000000000000":"1230000000000000000":"0" + +MPI add #100 large negative + large negative +mpi_add_mpi:"-1230000000000000000":"-1230000000000000000":"-2460000000000000000" + +MPI add #101 large positive + large positive +mpi_add_mpi:"1c67967269c6":"1c67967269c6":"38cf2ce4d38c" + +MPI add #102 large positive + positive +mpi_add_mpi:"1c67967269c6":"9cde3":"1c67967c37a9" + +MPI add #103 large positive + large negative , result=0 +mpi_add_mpi:"1c67967269c6":"-1c67967269c6":"0" + +MPI add #104 large positive + negative , result>0 +mpi_add_mpi:"1c67967269c6":"-9cde3":"1c6796689be3" + +MPI add #105 positive + large positive +mpi_add_mpi:"9cde3":"1c67967269c6":"1c67967c37a9" + +MPI add #106 positive + positive +mpi_add_mpi:"9cde3":"9cde3":"139bc6" + +MPI add #107 positive + large negative , result<0 +mpi_add_mpi:"9cde3":"-1c67967269c6":"-1c6796689be3" + +MPI add #108 positive + negative , result=0 +mpi_add_mpi:"9cde3":"-9cde3":"0" + +MPI add #109 large negative + large positive , result=0 +mpi_add_mpi:"-1c67967269c6":"1c67967269c6":"0" + +MPI add #110 large negative + positive , result<0 +mpi_add_mpi:"-1c67967269c6":"9cde3":"-1c6796689be3" + +MPI add #111 large negative + large negative +mpi_add_mpi:"-1c67967269c6":"-1c67967269c6":"-38cf2ce4d38c" + +MPI add #112 large negative + negative +mpi_add_mpi:"-1c67967269c6":"-9cde3":"-1c67967c37a9" + +MPI add #113 negative + large positive , result>0 +mpi_add_mpi:"-9cde3":"1c67967269c6":"1c6796689be3" + +MPI add #114 negative + positive , result=0 +mpi_add_mpi:"-9cde3":"9cde3":"0" + +MPI add #115 negative + large negative +mpi_add_mpi:"-9cde3":"-1c67967269c6":"-1c67967c37a9" + +MPI add #116 negative + negative +mpi_add_mpi:"-9cde3":"-9cde3":"-139bc6" + +MPI compare #1 0 (null) == 0 (null) +mpi_cmp_mpi:"":"":0 + +MPI compare #2 0 (null) == 0 (1 limb) +mpi_cmp_mpi:"":"0":0 + +MPI compare #3 0 (null) == negative 0 (null) +mpi_cmp_mpi:"":"-":0 + +MPI compare #4 0 (null) == negative with leading zero limb +mpi_cmp_mpi:"":"-0":0 + +MPI compare #5 0 (null) < positive +mpi_cmp_mpi:"":"7b":-1 + +MPI compare #6 0 (null) > negative +mpi_cmp_mpi:"":"-7b":1 + +MPI compare #7 0 (null) < positive with leading zero limb +mpi_cmp_mpi:"":"0000000000000000123":-1 + +MPI compare #8 0 (null) > negative with leading zero limb +mpi_cmp_mpi:"":"-0000000000000000123":1 + +MPI compare #9 0 (null) < large positive +mpi_cmp_mpi:"":"1230000000000000000":-1 + +MPI compare #10 0 (null) > large negative +mpi_cmp_mpi:"":"-1230000000000000000":1 + +MPI compare #11 0 (1 limb) == 0 (null) +mpi_cmp_mpi:"0":"":0 + +MPI compare #12 0 (1 limb) == 0 (1 limb) +mpi_cmp_mpi:"0":"0":0 + +MPI compare #13 0 (1 limb) == negative 0 (null) +mpi_cmp_mpi:"0":"-":0 + +MPI compare #14 0 (1 limb) == negative with leading zero limb +mpi_cmp_mpi:"0":"-0":0 + +MPI compare #15 0 (1 limb) < positive +mpi_cmp_mpi:"0":"7b":-1 + +MPI compare #16 0 (1 limb) > negative +mpi_cmp_mpi:"0":"-7b":1 + +MPI compare #17 0 (1 limb) < positive with leading zero limb +mpi_cmp_mpi:"0":"0000000000000000123":-1 + +MPI compare #18 0 (1 limb) > negative with leading zero limb +mpi_cmp_mpi:"0":"-0000000000000000123":1 + +MPI compare #19 0 (1 limb) < large positive +mpi_cmp_mpi:"0":"1230000000000000000":-1 + +MPI compare #20 0 (1 limb) > large negative +mpi_cmp_mpi:"0":"-1230000000000000000":1 + +MPI compare #21 negative 0 (null) == 0 (null) +mpi_cmp_mpi:"-":"":0 + +MPI compare #22 negative 0 (null) == 0 (1 limb) +mpi_cmp_mpi:"-":"0":0 + +MPI compare #23 negative 0 (null) == negative 0 (null) +mpi_cmp_mpi:"-":"-":0 + +MPI compare #24 negative 0 (null) == negative with leading zero limb +mpi_cmp_mpi:"-":"-0":0 + +MPI compare #25 negative 0 (null) < positive +mpi_cmp_mpi:"-":"7b":-1 + +MPI compare #26 negative 0 (null) > negative +mpi_cmp_mpi:"-":"-7b":1 + +MPI compare #27 negative 0 (null) < positive with leading zero limb +mpi_cmp_mpi:"-":"0000000000000000123":-1 + +MPI compare #28 negative 0 (null) > negative with leading zero limb +mpi_cmp_mpi:"-":"-0000000000000000123":1 + +MPI compare #29 negative 0 (null) < large positive +mpi_cmp_mpi:"-":"1230000000000000000":-1 + +MPI compare #30 negative 0 (null) > large negative +mpi_cmp_mpi:"-":"-1230000000000000000":1 + +MPI compare #31 negative with leading zero limb == 0 (null) +mpi_cmp_mpi:"-0":"":0 + +MPI compare #32 negative with leading zero limb == 0 (1 limb) +mpi_cmp_mpi:"-0":"0":0 + +MPI compare #33 negative with leading zero limb == negative 0 (null) +mpi_cmp_mpi:"-0":"-":0 + +MPI compare #34 negative with leading zero limb == negative with leading zero limb +mpi_cmp_mpi:"-0":"-0":0 + +MPI compare #35 negative with leading zero limb < positive +mpi_cmp_mpi:"-0":"7b":-1 + +MPI compare #36 negative with leading zero limb > negative +mpi_cmp_mpi:"-0":"-7b":1 + +MPI compare #37 negative with leading zero limb < positive with leading zero limb +mpi_cmp_mpi:"-0":"0000000000000000123":-1 + +MPI compare #38 negative with leading zero limb > negative with leading zero limb +mpi_cmp_mpi:"-0":"-0000000000000000123":1 + +MPI compare #39 negative with leading zero limb < large positive +mpi_cmp_mpi:"-0":"1230000000000000000":-1 + +MPI compare #40 negative with leading zero limb > large negative +mpi_cmp_mpi:"-0":"-1230000000000000000":1 + +MPI compare #41 positive > 0 (null) +mpi_cmp_mpi:"7b":"":1 + +MPI compare #42 positive > 0 (1 limb) +mpi_cmp_mpi:"7b":"0":1 + +MPI compare #43 positive > negative 0 (null) +mpi_cmp_mpi:"7b":"-":1 + +MPI compare #44 positive > negative with leading zero limb +mpi_cmp_mpi:"7b":"-0":1 + +MPI compare #45 positive == positive +mpi_cmp_mpi:"7b":"7b":0 + +MPI compare #46 positive > negative +mpi_cmp_mpi:"7b":"-7b":1 + +MPI compare #47 positive < positive with leading zero limb +mpi_cmp_mpi:"7b":"0000000000000000123":-1 + +MPI compare #48 positive > negative with leading zero limb +mpi_cmp_mpi:"7b":"-0000000000000000123":1 + +MPI compare #49 positive < large positive +mpi_cmp_mpi:"7b":"1230000000000000000":-1 + +MPI compare #50 positive > large negative +mpi_cmp_mpi:"7b":"-1230000000000000000":1 + +MPI compare #51 negative < 0 (null) +mpi_cmp_mpi:"-7b":"":-1 + +MPI compare #52 negative < 0 (1 limb) +mpi_cmp_mpi:"-7b":"0":-1 + +MPI compare #53 negative < negative 0 (null) +mpi_cmp_mpi:"-7b":"-":-1 + +MPI compare #54 negative < negative with leading zero limb +mpi_cmp_mpi:"-7b":"-0":-1 + +MPI compare #55 negative < positive +mpi_cmp_mpi:"-7b":"7b":-1 + +MPI compare #56 negative == negative +mpi_cmp_mpi:"-7b":"-7b":0 + +MPI compare #57 negative < positive with leading zero limb +mpi_cmp_mpi:"-7b":"0000000000000000123":-1 + +MPI compare #58 negative > negative with leading zero limb +mpi_cmp_mpi:"-7b":"-0000000000000000123":1 + +MPI compare #59 negative < large positive +mpi_cmp_mpi:"-7b":"1230000000000000000":-1 + +MPI compare #60 negative > large negative +mpi_cmp_mpi:"-7b":"-1230000000000000000":1 + +MPI compare #61 positive with leading zero limb > 0 (null) +mpi_cmp_mpi:"0000000000000000123":"":1 + +MPI compare #62 positive with leading zero limb > 0 (1 limb) +mpi_cmp_mpi:"0000000000000000123":"0":1 + +MPI compare #63 positive with leading zero limb > negative 0 (null) +mpi_cmp_mpi:"0000000000000000123":"-":1 + +MPI compare #64 positive with leading zero limb > negative with leading zero limb +mpi_cmp_mpi:"0000000000000000123":"-0":1 + +MPI compare #65 positive with leading zero limb > positive +mpi_cmp_mpi:"0000000000000000123":"7b":1 + +MPI compare #66 positive with leading zero limb > negative +mpi_cmp_mpi:"0000000000000000123":"-7b":1 + +MPI compare #67 positive with leading zero limb == positive with leading zero limb +mpi_cmp_mpi:"0000000000000000123":"0000000000000000123":0 + +MPI compare #68 positive with leading zero limb > negative with leading zero limb +mpi_cmp_mpi:"0000000000000000123":"-0000000000000000123":1 + +MPI compare #69 positive with leading zero limb < large positive +mpi_cmp_mpi:"0000000000000000123":"1230000000000000000":-1 + +MPI compare #70 positive with leading zero limb > large negative +mpi_cmp_mpi:"0000000000000000123":"-1230000000000000000":1 + +MPI compare #71 negative with leading zero limb < 0 (null) +mpi_cmp_mpi:"-0000000000000000123":"":-1 + +MPI compare #72 negative with leading zero limb < 0 (1 limb) +mpi_cmp_mpi:"-0000000000000000123":"0":-1 + +MPI compare #73 negative with leading zero limb < negative 0 (null) +mpi_cmp_mpi:"-0000000000000000123":"-":-1 + +MPI compare #74 negative with leading zero limb < negative with leading zero limb +mpi_cmp_mpi:"-0000000000000000123":"-0":-1 + +MPI compare #75 negative with leading zero limb < positive +mpi_cmp_mpi:"-0000000000000000123":"7b":-1 + +MPI compare #76 negative with leading zero limb < negative +mpi_cmp_mpi:"-0000000000000000123":"-7b":-1 + +MPI compare #77 negative with leading zero limb < positive with leading zero limb +mpi_cmp_mpi:"-0000000000000000123":"0000000000000000123":-1 + +MPI compare #78 negative with leading zero limb == negative with leading zero limb +mpi_cmp_mpi:"-0000000000000000123":"-0000000000000000123":0 + +MPI compare #79 negative with leading zero limb < large positive +mpi_cmp_mpi:"-0000000000000000123":"1230000000000000000":-1 + +MPI compare #80 negative with leading zero limb > large negative +mpi_cmp_mpi:"-0000000000000000123":"-1230000000000000000":1 + +MPI compare #81 large positive > 0 (null) +mpi_cmp_mpi:"1230000000000000000":"":1 + +MPI compare #82 large positive > 0 (1 limb) +mpi_cmp_mpi:"1230000000000000000":"0":1 + +MPI compare #83 large positive > negative 0 (null) +mpi_cmp_mpi:"1230000000000000000":"-":1 + +MPI compare #84 large positive > negative with leading zero limb +mpi_cmp_mpi:"1230000000000000000":"-0":1 + +MPI compare #85 large positive > positive +mpi_cmp_mpi:"1230000000000000000":"7b":1 + +MPI compare #86 large positive > negative +mpi_cmp_mpi:"1230000000000000000":"-7b":1 + +MPI compare #87 large positive > positive with leading zero limb +mpi_cmp_mpi:"1230000000000000000":"0000000000000000123":1 + +MPI compare #88 large positive > negative with leading zero limb +mpi_cmp_mpi:"1230000000000000000":"-0000000000000000123":1 + +MPI compare #89 large positive == large positive +mpi_cmp_mpi:"1230000000000000000":"1230000000000000000":0 + +MPI compare #90 large positive > large negative +mpi_cmp_mpi:"1230000000000000000":"-1230000000000000000":1 + +MPI compare #91 large negative < 0 (null) +mpi_cmp_mpi:"-1230000000000000000":"":-1 + +MPI compare #92 large negative < 0 (1 limb) +mpi_cmp_mpi:"-1230000000000000000":"0":-1 + +MPI compare #93 large negative < negative 0 (null) +mpi_cmp_mpi:"-1230000000000000000":"-":-1 + +MPI compare #94 large negative < negative with leading zero limb +mpi_cmp_mpi:"-1230000000000000000":"-0":-1 + +MPI compare #95 large negative < positive +mpi_cmp_mpi:"-1230000000000000000":"7b":-1 + +MPI compare #96 large negative < negative +mpi_cmp_mpi:"-1230000000000000000":"-7b":-1 + +MPI compare #97 large negative < positive with leading zero limb +mpi_cmp_mpi:"-1230000000000000000":"0000000000000000123":-1 + +MPI compare #98 large negative < negative with leading zero limb +mpi_cmp_mpi:"-1230000000000000000":"-0000000000000000123":-1 + +MPI compare #99 large negative < large positive +mpi_cmp_mpi:"-1230000000000000000":"1230000000000000000":-1 + +MPI compare #100 large negative == large negative +mpi_cmp_mpi:"-1230000000000000000":"-1230000000000000000":0 + +MPI compare #101 negative > negative +mpi_cmp_mpi:"-2":"-3":1 + +MPI compare #102 negative == negative +mpi_cmp_mpi:"-2":"-2":0 + +MPI compare #103 positive < positive +mpi_cmp_mpi:"2b4":"2b5":-1 + +MPI compare #104 positive < positive +mpi_cmp_mpi:"2b5":"2b6":-1 + +MPI compare (abs) #1 0 (null) == 0 (null) +mpi_cmp_abs:"":"":0 + +MPI compare (abs) #2 0 (null) == 0 (1 limb) +mpi_cmp_abs:"":"0":0 + +MPI compare (abs) #3 0 (null) == 0 (null) +mpi_cmp_abs:"":"":0 + +MPI compare (abs) #4 0 (null) == 0 (1 limb) +mpi_cmp_abs:"":"0":0 + +MPI compare (abs) #5 0 (null) < positive +mpi_cmp_abs:"":"7b":-1 + +MPI compare (abs) #6 0 (null) < positive +mpi_cmp_abs:"":"7b":-1 + +MPI compare (abs) #7 0 (null) < positive with leading zero limb +mpi_cmp_abs:"":"0000000000000000123":-1 + +MPI compare (abs) #8 0 (null) < positive with leading zero limb +mpi_cmp_abs:"":"0000000000000000123":-1 + +MPI compare (abs) #9 0 (null) < large positive +mpi_cmp_abs:"":"1230000000000000000":-1 + +MPI compare (abs) #10 0 (null) < large positive +mpi_cmp_abs:"":"1230000000000000000":-1 + +MPI compare (abs) #11 0 (1 limb) == 0 (null) +mpi_cmp_abs:"0":"":0 + +MPI compare (abs) #12 0 (1 limb) == 0 (1 limb) +mpi_cmp_abs:"0":"0":0 + +MPI compare (abs) #13 0 (1 limb) == 0 (null) +mpi_cmp_abs:"0":"":0 + +MPI compare (abs) #14 0 (1 limb) == 0 (1 limb) +mpi_cmp_abs:"0":"0":0 + +MPI compare (abs) #15 0 (1 limb) < positive +mpi_cmp_abs:"0":"7b":-1 + +MPI compare (abs) #16 0 (1 limb) < positive +mpi_cmp_abs:"0":"7b":-1 + +MPI compare (abs) #17 0 (1 limb) < positive with leading zero limb +mpi_cmp_abs:"0":"0000000000000000123":-1 + +MPI compare (abs) #18 0 (1 limb) < positive with leading zero limb +mpi_cmp_abs:"0":"0000000000000000123":-1 + +MPI compare (abs) #19 0 (1 limb) < large positive +mpi_cmp_abs:"0":"1230000000000000000":-1 + +MPI compare (abs) #20 0 (1 limb) < large positive +mpi_cmp_abs:"0":"1230000000000000000":-1 + +MPI compare (abs) #21 0 (null) == 0 (null) +mpi_cmp_abs:"":"":0 + +MPI compare (abs) #22 0 (null) == 0 (1 limb) +mpi_cmp_abs:"":"0":0 + +MPI compare (abs) #23 0 (null) == 0 (null) +mpi_cmp_abs:"":"":0 + +MPI compare (abs) #24 0 (null) == 0 (1 limb) +mpi_cmp_abs:"":"0":0 + +MPI compare (abs) #25 0 (null) < positive +mpi_cmp_abs:"":"7b":-1 + +MPI compare (abs) #26 0 (null) < positive +mpi_cmp_abs:"":"7b":-1 + +MPI compare (abs) #27 0 (null) < positive with leading zero limb +mpi_cmp_abs:"":"0000000000000000123":-1 + +MPI compare (abs) #28 0 (null) < positive with leading zero limb +mpi_cmp_abs:"":"0000000000000000123":-1 + +MPI compare (abs) #29 0 (null) < large positive +mpi_cmp_abs:"":"1230000000000000000":-1 + +MPI compare (abs) #30 0 (null) < large positive +mpi_cmp_abs:"":"1230000000000000000":-1 + +MPI compare (abs) #31 0 (1 limb) == 0 (null) +mpi_cmp_abs:"0":"":0 + +MPI compare (abs) #32 0 (1 limb) == 0 (1 limb) +mpi_cmp_abs:"0":"0":0 + +MPI compare (abs) #33 0 (1 limb) == 0 (null) +mpi_cmp_abs:"0":"":0 + +MPI compare (abs) #34 0 (1 limb) == 0 (1 limb) +mpi_cmp_abs:"0":"0":0 + +MPI compare (abs) #35 0 (1 limb) < positive +mpi_cmp_abs:"0":"7b":-1 + +MPI compare (abs) #36 0 (1 limb) < positive +mpi_cmp_abs:"0":"7b":-1 + +MPI compare (abs) #37 0 (1 limb) < positive with leading zero limb +mpi_cmp_abs:"0":"0000000000000000123":-1 + +MPI compare (abs) #38 0 (1 limb) < positive with leading zero limb +mpi_cmp_abs:"0":"0000000000000000123":-1 + +MPI compare (abs) #39 0 (1 limb) < large positive +mpi_cmp_abs:"0":"1230000000000000000":-1 + +MPI compare (abs) #40 0 (1 limb) < large positive +mpi_cmp_abs:"0":"1230000000000000000":-1 + +MPI compare (abs) #41 positive > 0 (null) +mpi_cmp_abs:"7b":"":1 + +MPI compare (abs) #42 positive > 0 (1 limb) +mpi_cmp_abs:"7b":"0":1 + +MPI compare (abs) #43 positive > 0 (null) +mpi_cmp_abs:"7b":"":1 + +MPI compare (abs) #44 positive > 0 (1 limb) +mpi_cmp_abs:"7b":"0":1 + +MPI compare (abs) #45 positive == positive +mpi_cmp_abs:"7b":"7b":0 + +MPI compare (abs) #46 positive == positive +mpi_cmp_abs:"7b":"7b":0 + +MPI compare (abs) #47 positive < positive with leading zero limb +mpi_cmp_abs:"7b":"0000000000000000123":-1 + +MPI compare (abs) #48 positive < positive with leading zero limb +mpi_cmp_abs:"7b":"0000000000000000123":-1 + +MPI compare (abs) #49 positive < large positive +mpi_cmp_abs:"7b":"1230000000000000000":-1 + +MPI compare (abs) #50 positive < large positive +mpi_cmp_abs:"7b":"1230000000000000000":-1 + +MPI compare (abs) #51 positive > 0 (null) +mpi_cmp_abs:"7b":"":1 + +MPI compare (abs) #52 positive > 0 (1 limb) +mpi_cmp_abs:"7b":"0":1 + +MPI compare (abs) #53 positive > 0 (null) +mpi_cmp_abs:"7b":"":1 + +MPI compare (abs) #54 positive > 0 (1 limb) +mpi_cmp_abs:"7b":"0":1 + +MPI compare (abs) #55 positive == positive +mpi_cmp_abs:"7b":"7b":0 + +MPI compare (abs) #56 positive == positive +mpi_cmp_abs:"7b":"7b":0 + +MPI compare (abs) #57 positive < positive with leading zero limb +mpi_cmp_abs:"7b":"0000000000000000123":-1 + +MPI compare (abs) #58 positive < positive with leading zero limb +mpi_cmp_abs:"7b":"0000000000000000123":-1 + +MPI compare (abs) #59 positive < large positive +mpi_cmp_abs:"7b":"1230000000000000000":-1 + +MPI compare (abs) #60 positive < large positive +mpi_cmp_abs:"7b":"1230000000000000000":-1 + +MPI compare (abs) #61 positive with leading zero limb > 0 (null) +mpi_cmp_abs:"0000000000000000123":"":1 + +MPI compare (abs) #62 positive with leading zero limb > 0 (1 limb) +mpi_cmp_abs:"0000000000000000123":"0":1 + +MPI compare (abs) #63 positive with leading zero limb > 0 (null) +mpi_cmp_abs:"0000000000000000123":"":1 + +MPI compare (abs) #64 positive with leading zero limb > 0 (1 limb) +mpi_cmp_abs:"0000000000000000123":"0":1 + +MPI compare (abs) #65 positive with leading zero limb > positive +mpi_cmp_abs:"0000000000000000123":"7b":1 + +MPI compare (abs) #66 positive with leading zero limb > positive +mpi_cmp_abs:"0000000000000000123":"7b":1 + +MPI compare (abs) #67 positive with leading zero limb == positive with leading zero limb +mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 + +MPI compare (abs) #68 positive with leading zero limb == positive with leading zero limb +mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 + +MPI compare (abs) #69 positive with leading zero limb < large positive +mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 + +MPI compare (abs) #70 positive with leading zero limb < large positive +mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 + +MPI compare (abs) #71 positive with leading zero limb > 0 (null) +mpi_cmp_abs:"0000000000000000123":"":1 + +MPI compare (abs) #72 positive with leading zero limb > 0 (1 limb) +mpi_cmp_abs:"0000000000000000123":"0":1 + +MPI compare (abs) #73 positive with leading zero limb > 0 (null) +mpi_cmp_abs:"0000000000000000123":"":1 + +MPI compare (abs) #74 positive with leading zero limb > 0 (1 limb) +mpi_cmp_abs:"0000000000000000123":"0":1 + +MPI compare (abs) #75 positive with leading zero limb > positive +mpi_cmp_abs:"0000000000000000123":"7b":1 + +MPI compare (abs) #76 positive with leading zero limb > positive +mpi_cmp_abs:"0000000000000000123":"7b":1 + +MPI compare (abs) #77 positive with leading zero limb == positive with leading zero limb +mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 + +MPI compare (abs) #78 positive with leading zero limb == positive with leading zero limb +mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 + +MPI compare (abs) #79 positive with leading zero limb < large positive +mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 + +MPI compare (abs) #80 positive with leading zero limb < large positive +mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 + +MPI compare (abs) #81 large positive > 0 (null) +mpi_cmp_abs:"1230000000000000000":"":1 + +MPI compare (abs) #82 large positive > 0 (1 limb) +mpi_cmp_abs:"1230000000000000000":"0":1 + +MPI compare (abs) #83 large positive > 0 (null) +mpi_cmp_abs:"1230000000000000000":"":1 + +MPI compare (abs) #84 large positive > 0 (1 limb) +mpi_cmp_abs:"1230000000000000000":"0":1 + +MPI compare (abs) #85 large positive > positive +mpi_cmp_abs:"1230000000000000000":"7b":1 + +MPI compare (abs) #86 large positive > positive +mpi_cmp_abs:"1230000000000000000":"7b":1 + +MPI compare (abs) #87 large positive > positive with leading zero limb +mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 + +MPI compare (abs) #88 large positive > positive with leading zero limb +mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 + +MPI compare (abs) #89 large positive == large positive +mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 + +MPI compare (abs) #90 large positive == large positive +mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 + +MPI compare (abs) #91 large positive > 0 (null) +mpi_cmp_abs:"1230000000000000000":"":1 + +MPI compare (abs) #92 large positive > 0 (1 limb) +mpi_cmp_abs:"1230000000000000000":"0":1 + +MPI compare (abs) #93 large positive > 0 (null) +mpi_cmp_abs:"1230000000000000000":"":1 + +MPI compare (abs) #94 large positive > 0 (1 limb) +mpi_cmp_abs:"1230000000000000000":"0":1 + +MPI compare (abs) #95 large positive > positive +mpi_cmp_abs:"1230000000000000000":"7b":1 + +MPI compare (abs) #96 large positive > positive +mpi_cmp_abs:"1230000000000000000":"7b":1 + +MPI compare (abs) #97 large positive > positive with leading zero limb +mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 + +MPI compare (abs) #98 large positive > positive with leading zero limb +mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 + +MPI compare (abs) #99 large positive == large positive +mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 + +MPI compare (abs) #100 large positive == large positive +mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 + +MPI compare (abs) #101 positive < positive +mpi_cmp_abs:"2":"3":-1 + +MPI compare (abs) #102 positive == positive +mpi_cmp_abs:"2":"2":0 + +MPI compare (abs) #103 positive < positive +mpi_cmp_abs:"2b4":"2b5":-1 + +MPI compare (abs) #104 positive < positive +mpi_cmp_abs:"2b5":"2b6":-1 + +# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_core.generated.data b/tests/suites/test_suite_bignum_core.generated.data new file mode 100644 index 000000000..6cd83342d --- /dev/null +++ b/tests/suites/test_suite_bignum_core.generated.data @@ -0,0 +1,13499 @@ +# Automatically generated by generate_bignum_tests.py. Do not edit! + +mpi_core_add_and_add_if #1 0 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0":"0":"0":0 + +mpi_core_add_and_add_if #2 0 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0":"0":"0":0 + +mpi_core_add_and_add_if #3 0 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000000":"00000001":"00000001":0 + +mpi_core_add_and_add_if #4 0 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000":"0000000000000001":"0000000000000001":0 + +mpi_core_add_and_add_if #5 0 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000000":"00000002":"00000002":0 + +mpi_core_add_and_add_if #6 0 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000":"0000000000000002":"0000000000000002":0 + +mpi_core_add_and_add_if #7 0 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000000":"00000003":"00000003":0 + +mpi_core_add_and_add_if #8 0 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000":"0000000000000003":"0000000000000003":0 + +mpi_core_add_and_add_if #9 0 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000000":"00000004":"00000004":0 + +mpi_core_add_and_add_if #10 0 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000":"0000000000000004":"0000000000000004":0 + +mpi_core_add_and_add_if #11 0 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000000":"00000038":"00000038":0 + +mpi_core_add_and_add_if #12 0 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000":"0000000000000038":"0000000000000038":0 + +mpi_core_add_and_add_if #13 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_add_and_add_if #14 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_add_and_add_if #15 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_add_and_add_if #16 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_add_and_add_if #17 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_add_and_add_if #18 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_add_and_add_if #19 0 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_add_and_add_if #20 0 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_add_and_add_if #21 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_add_and_add_if #22 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_add_and_add_if #23 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_add_and_add_if #24 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_add_and_add_if #25 0 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_add_and_add_if #26 0 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_add_and_add_if #27 1 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000000":"00000001":0 + +mpi_core_add_and_add_if #28 1 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000000":"0000000000000001":0 + +mpi_core_add_and_add_if #29 1 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000001":"00000002":0 + +mpi_core_add_and_add_if #30 1 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000001":"0000000000000002":0 + +mpi_core_add_and_add_if #31 1 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000002":"00000003":0 + +mpi_core_add_and_add_if #32 1 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000002":"0000000000000003":0 + +mpi_core_add_and_add_if #33 1 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000003":"00000004":0 + +mpi_core_add_and_add_if #34 1 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000003":"0000000000000004":0 + +mpi_core_add_and_add_if #35 1 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000004":"00000005":0 + +mpi_core_add_and_add_if #36 1 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000004":"0000000000000005":0 + +mpi_core_add_and_add_if #37 1 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000001":"00000038":"00000039":0 + +mpi_core_add_and_add_if #38 1 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000001":"0000000000000038":"0000000000000039":0 + +mpi_core_add_and_add_if #39 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 + +mpi_core_add_and_add_if #40 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 + +mpi_core_add_and_add_if #41 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 + +mpi_core_add_and_add_if #42 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 + +mpi_core_add_and_add_if #43 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 + +mpi_core_add_and_add_if #44 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 + +mpi_core_add_and_add_if #45 1 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 + +mpi_core_add_and_add_if #46 1 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 + +mpi_core_add_and_add_if #47 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 + +mpi_core_add_and_add_if #48 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 + +mpi_core_add_and_add_if #49 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 + +mpi_core_add_and_add_if #50 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 + +mpi_core_add_and_add_if #51 1 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 + +mpi_core_add_and_add_if #52 1 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 + +mpi_core_add_and_add_if #53 2 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000000":"00000002":0 + +mpi_core_add_and_add_if #54 2 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000000":"0000000000000002":0 + +mpi_core_add_and_add_if #55 2 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000001":"00000003":0 + +mpi_core_add_and_add_if #56 2 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000001":"0000000000000003":0 + +mpi_core_add_and_add_if #57 2 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000002":"00000004":0 + +mpi_core_add_and_add_if #58 2 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000002":"0000000000000004":0 + +mpi_core_add_and_add_if #59 2 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000003":"00000005":0 + +mpi_core_add_and_add_if #60 2 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000003":"0000000000000005":0 + +mpi_core_add_and_add_if #61 2 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000004":"00000006":0 + +mpi_core_add_and_add_if #62 2 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000004":"0000000000000006":0 + +mpi_core_add_and_add_if #63 2 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000002":"00000038":"0000003a":0 + +mpi_core_add_and_add_if #64 2 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000002":"0000000000000038":"000000000000003a":0 + +mpi_core_add_and_add_if #65 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 + +mpi_core_add_and_add_if #66 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 + +mpi_core_add_and_add_if #67 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 + +mpi_core_add_and_add_if #68 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 + +mpi_core_add_and_add_if #69 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 + +mpi_core_add_and_add_if #70 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 + +mpi_core_add_and_add_if #71 2 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 + +mpi_core_add_and_add_if #72 2 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 + +mpi_core_add_and_add_if #73 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 + +mpi_core_add_and_add_if #74 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 + +mpi_core_add_and_add_if #75 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 + +mpi_core_add_and_add_if #76 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 + +mpi_core_add_and_add_if #77 2 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 + +mpi_core_add_and_add_if #78 2 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 + +mpi_core_add_and_add_if #79 3 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000000":"00000003":0 + +mpi_core_add_and_add_if #80 3 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000000":"0000000000000003":0 + +mpi_core_add_and_add_if #81 3 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000001":"00000004":0 + +mpi_core_add_and_add_if #82 3 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000001":"0000000000000004":0 + +mpi_core_add_and_add_if #83 3 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000002":"00000005":0 + +mpi_core_add_and_add_if #84 3 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000002":"0000000000000005":0 + +mpi_core_add_and_add_if #85 3 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000003":"00000006":0 + +mpi_core_add_and_add_if #86 3 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000003":"0000000000000006":0 + +mpi_core_add_and_add_if #87 3 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000004":"00000007":0 + +mpi_core_add_and_add_if #88 3 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000004":"0000000000000007":0 + +mpi_core_add_and_add_if #89 3 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000003":"00000038":"0000003b":0 + +mpi_core_add_and_add_if #90 3 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000003":"0000000000000038":"000000000000003b":0 + +mpi_core_add_and_add_if #91 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 + +mpi_core_add_and_add_if #92 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 + +mpi_core_add_and_add_if #93 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 + +mpi_core_add_and_add_if #94 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 + +mpi_core_add_and_add_if #95 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 + +mpi_core_add_and_add_if #96 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 + +mpi_core_add_and_add_if #97 3 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 + +mpi_core_add_and_add_if #98 3 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 + +mpi_core_add_and_add_if #99 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 + +mpi_core_add_and_add_if #100 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 + +mpi_core_add_and_add_if #101 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 + +mpi_core_add_and_add_if #102 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 + +mpi_core_add_and_add_if #103 3 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 + +mpi_core_add_and_add_if #104 3 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 + +mpi_core_add_and_add_if #105 4 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000000":"00000004":0 + +mpi_core_add_and_add_if #106 4 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000000":"0000000000000004":0 + +mpi_core_add_and_add_if #107 4 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000001":"00000005":0 + +mpi_core_add_and_add_if #108 4 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000001":"0000000000000005":0 + +mpi_core_add_and_add_if #109 4 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000002":"00000006":0 + +mpi_core_add_and_add_if #110 4 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000002":"0000000000000006":0 + +mpi_core_add_and_add_if #111 4 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000003":"00000007":0 + +mpi_core_add_and_add_if #112 4 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000003":"0000000000000007":0 + +mpi_core_add_and_add_if #113 4 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000004":"00000008":0 + +mpi_core_add_and_add_if #114 4 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000004":"0000000000000008":0 + +mpi_core_add_and_add_if #115 4 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000004":"00000038":"0000003c":0 + +mpi_core_add_and_add_if #116 4 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000004":"0000000000000038":"000000000000003c":0 + +mpi_core_add_and_add_if #117 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 + +mpi_core_add_and_add_if #118 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 + +mpi_core_add_and_add_if #119 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 + +mpi_core_add_and_add_if #120 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 + +mpi_core_add_and_add_if #121 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 + +mpi_core_add_and_add_if #122 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 + +mpi_core_add_and_add_if #123 4 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 + +mpi_core_add_and_add_if #124 4 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 + +mpi_core_add_and_add_if #125 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 + +mpi_core_add_and_add_if #126 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 + +mpi_core_add_and_add_if #127 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 + +mpi_core_add_and_add_if #128 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 + +mpi_core_add_and_add_if #129 4 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 + +mpi_core_add_and_add_if #130 4 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 + +mpi_core_add_and_add_if #131 38 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000000":"00000038":0 + +mpi_core_add_and_add_if #132 38 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000000":"0000000000000038":0 + +mpi_core_add_and_add_if #133 38 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000001":"00000039":0 + +mpi_core_add_and_add_if #134 38 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000001":"0000000000000039":0 + +mpi_core_add_and_add_if #135 38 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000002":"0000003a":0 + +mpi_core_add_and_add_if #136 38 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000002":"000000000000003a":0 + +mpi_core_add_and_add_if #137 38 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000003":"0000003b":0 + +mpi_core_add_and_add_if #138 38 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000003":"000000000000003b":0 + +mpi_core_add_and_add_if #139 38 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000004":"0000003c":0 + +mpi_core_add_and_add_if #140 38 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000004":"000000000000003c":0 + +mpi_core_add_and_add_if #141 38 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"00000038":"00000038":"00000070":0 + +mpi_core_add_and_add_if #142 38 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000038":"0000000000000038":"0000000000000070":0 + +mpi_core_add_and_add_if #143 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 + +mpi_core_add_and_add_if #144 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 + +mpi_core_add_and_add_if #145 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 + +mpi_core_add_and_add_if #146 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 + +mpi_core_add_and_add_if #147 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 + +mpi_core_add_and_add_if #148 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 + +mpi_core_add_and_add_if #149 38 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 + +mpi_core_add_and_add_if #150 38 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 + +mpi_core_add_and_add_if #151 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 + +mpi_core_add_and_add_if #152 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 + +mpi_core_add_and_add_if #153 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 + +mpi_core_add_and_add_if #154 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 + +mpi_core_add_and_add_if #155 38 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 + +mpi_core_add_and_add_if #156 38 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 + +mpi_core_add_and_add_if #157 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_add_and_add_if #158 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_add_and_add_if #159 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 + +mpi_core_add_and_add_if #160 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 + +mpi_core_add_and_add_if #161 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 + +mpi_core_add_and_add_if #162 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 + +mpi_core_add_and_add_if #163 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 + +mpi_core_add_and_add_if #164 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 + +mpi_core_add_and_add_if #165 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 + +mpi_core_add_and_add_if #166 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 + +mpi_core_add_and_add_if #167 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 + +mpi_core_add_and_add_if #168 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 + +mpi_core_add_and_add_if #169 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6":1 + +mpi_core_add_and_add_if #170 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6":1 + +mpi_core_add_and_add_if #171 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 + +mpi_core_add_and_add_if #172 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 + +mpi_core_add_and_add_if #173 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 + +mpi_core_add_and_add_if #174 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 + +mpi_core_add_and_add_if #175 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 + +mpi_core_add_and_add_if #176 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 + +mpi_core_add_and_add_if #177 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 + +mpi_core_add_and_add_if #178 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 + +mpi_core_add_and_add_if #179 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 + +mpi_core_add_and_add_if #180 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 + +mpi_core_add_and_add_if #181 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 + +mpi_core_add_and_add_if #182 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 + +mpi_core_add_and_add_if #183 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_add_and_add_if #184 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_add_and_add_if #185 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 + +mpi_core_add_and_add_if #186 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 + +mpi_core_add_and_add_if #187 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 + +mpi_core_add_and_add_if #188 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 + +mpi_core_add_and_add_if #189 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 + +mpi_core_add_and_add_if #190 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 + +mpi_core_add_and_add_if #191 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 + +mpi_core_add_and_add_if #192 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 + +mpi_core_add_and_add_if #193 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 + +mpi_core_add_and_add_if #194 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 + +mpi_core_add_and_add_if #195 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 + +mpi_core_add_and_add_if #196 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 + +mpi_core_add_and_add_if #197 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6":0 + +mpi_core_add_and_add_if #198 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6":0 + +mpi_core_add_and_add_if #199 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 + +mpi_core_add_and_add_if #200 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 + +mpi_core_add_and_add_if #201 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 + +mpi_core_add_and_add_if #202 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 + +mpi_core_add_and_add_if #203 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 + +mpi_core_add_and_add_if #204 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 + +mpi_core_add_and_add_if #205 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 + +mpi_core_add_and_add_if #206 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 + +mpi_core_add_and_add_if #207 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 + +mpi_core_add_and_add_if #208 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 + +mpi_core_add_and_add_if #209 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_add_and_add_if #210 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_add_and_add_if #211 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 + +mpi_core_add_and_add_if #212 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 + +mpi_core_add_and_add_if #213 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 + +mpi_core_add_and_add_if #214 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 + +mpi_core_add_and_add_if #215 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 + +mpi_core_add_and_add_if #216 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 + +mpi_core_add_and_add_if #217 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 + +mpi_core_add_and_add_if #218 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 + +mpi_core_add_and_add_if #219 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 + +mpi_core_add_and_add_if #220 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 + +mpi_core_add_and_add_if #221 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 + +mpi_core_add_and_add_if #222 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 + +mpi_core_add_and_add_if #223 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 + +mpi_core_add_and_add_if #224 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 + +mpi_core_add_and_add_if #225 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e3045ff78d10ef056922089abc68248b8dc866e2b7457ba":1 + +mpi_core_add_and_add_if #226 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e3045ff78d10ef056922089abc68248b8dc866e2b7457ba":1 + +mpi_core_add_and_add_if #227 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 + +mpi_core_add_and_add_if #228 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 + +mpi_core_add_and_add_if #229 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 + +mpi_core_add_and_add_if #230 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 + +mpi_core_add_and_add_if #231 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 + +mpi_core_add_and_add_if #232 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 + +mpi_core_add_and_add_if #233 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 + +mpi_core_add_and_add_if #234 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 + +mpi_core_add_and_add_if #235 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_add_and_add_if #236 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_add_and_add_if #237 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 + +mpi_core_add_and_add_if #238 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 + +mpi_core_add_and_add_if #239 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 + +mpi_core_add_and_add_if #240 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 + +mpi_core_add_and_add_if #241 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 + +mpi_core_add_and_add_if #242 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 + +mpi_core_add_and_add_if #243 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 + +mpi_core_add_and_add_if #244 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 + +mpi_core_add_and_add_if #245 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 + +mpi_core_add_and_add_if #246 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 + +mpi_core_add_and_add_if #247 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 + +mpi_core_add_and_add_if #248 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 + +mpi_core_add_and_add_if #249 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 + +mpi_core_add_and_add_if #250 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 + +mpi_core_add_and_add_if #251 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 + +mpi_core_add_and_add_if #252 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 + +mpi_core_add_and_add_if #253 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"92774fd8e9b2de823740117b6f1cc7fe2376bbe8d4a3c2d6593a2adf1c9c3157ebc0a59603e8fa1a324b4efec1322aefc251f6dea5e6944f2a14b29755ba7b00af57d64459e79952c5b62d57ef3e55b4b7a53565ea24897e52bdff3ed55742605df889362517cebdd594097878342aba23a29d17c65459050f6732d9ed5aa446":1 + +mpi_core_add_and_add_if #254 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"92774fd8e9b2de823740117b6f1cc7fe2376bbe8d4a3c2d6593a2adf1c9c3157ebc0a59603e8fa1a324b4efec1322aefc251f6dea5e6944f2a14b29755ba7b00af57d64459e79952c5b62d57ef3e55b4b7a53565ea24897e52bdff3ed55742605df889362517cebdd594097878342aba23a29d17c65459050f6732d9ed5aa446":1 + +mpi_core_add_and_add_if #255 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 + +mpi_core_add_and_add_if #256 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 + +mpi_core_add_and_add_if #257 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 + +mpi_core_add_and_add_if #258 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 + +mpi_core_add_and_add_if #259 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 + +mpi_core_add_and_add_if #260 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 + +mpi_core_add_and_add_if #261 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_add_and_add_if #262 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_add_and_add_if #263 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 + +mpi_core_add_and_add_if #264 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 + +mpi_core_add_and_add_if #265 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 + +mpi_core_add_and_add_if #266 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 + +mpi_core_add_and_add_if #267 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 + +mpi_core_add_and_add_if #268 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 + +mpi_core_add_and_add_if #269 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 + +mpi_core_add_and_add_if #270 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 + +mpi_core_add_and_add_if #271 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 + +mpi_core_add_and_add_if #272 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 + +mpi_core_add_and_add_if #273 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 + +mpi_core_add_and_add_if #274 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 + +mpi_core_add_and_add_if #275 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 + +mpi_core_add_and_add_if #276 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 + +mpi_core_add_and_add_if #277 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 + +mpi_core_add_and_add_if #278 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 + +mpi_core_add_and_add_if #279 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 + +mpi_core_add_and_add_if #280 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 + +mpi_core_add_and_add_if #281 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae":0 + +mpi_core_add_and_add_if #282 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae":0 + +mpi_core_add_and_add_if #283 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 + +mpi_core_add_and_add_if #284 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 + +mpi_core_add_and_add_if #285 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 + +mpi_core_add_and_add_if #286 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 + +mpi_core_add_and_add_if #287 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_add_and_add_if #288 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_add_and_add_if #289 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 + +mpi_core_add_and_add_if #290 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 + +mpi_core_add_and_add_if #291 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 + +mpi_core_add_and_add_if #292 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 + +mpi_core_add_and_add_if #293 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 + +mpi_core_add_and_add_if #294 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 + +mpi_core_add_and_add_if #295 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 + +mpi_core_add_and_add_if #296 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 + +mpi_core_add_and_add_if #297 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 + +mpi_core_add_and_add_if #298 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 + +mpi_core_add_and_add_if #299 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 + +mpi_core_add_and_add_if #300 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 + +mpi_core_add_and_add_if #301 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 + +mpi_core_add_and_add_if #302 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 + +mpi_core_add_and_add_if #303 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 + +mpi_core_add_and_add_if #304 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 + +mpi_core_add_and_add_if #305 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 + +mpi_core_add_and_add_if #306 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 + +mpi_core_add_and_add_if #307 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 + +mpi_core_add_and_add_if #308 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 + +mpi_core_add_and_add_if #309 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac":0 + +mpi_core_add_and_add_if #310 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac":0 + +mpi_core_add_and_add_if #311 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 + +mpi_core_add_and_add_if #312 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 + +mpi_core_add_and_add_if #313 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_add_and_add_if #314 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_add_and_add_if #315 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 + +mpi_core_add_and_add_if #316 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 + +mpi_core_add_and_add_if #317 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 + +mpi_core_add_and_add_if #318 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 + +mpi_core_add_and_add_if #319 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 + +mpi_core_add_and_add_if #320 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 + +mpi_core_add_and_add_if #321 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 + +mpi_core_add_and_add_if #322 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 + +mpi_core_add_and_add_if #323 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 + +mpi_core_add_and_add_if #324 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 + +mpi_core_add_and_add_if #325 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 + +mpi_core_add_and_add_if #326 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 + +mpi_core_add_and_add_if #327 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 + +mpi_core_add_and_add_if #328 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 + +mpi_core_add_and_add_if #329 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 + +mpi_core_add_and_add_if #330 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 + +mpi_core_add_and_add_if #331 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 + +mpi_core_add_and_add_if #332 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 + +mpi_core_add_and_add_if #333 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 + +mpi_core_add_and_add_if #334 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 + +mpi_core_add_and_add_if #335 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 + +mpi_core_add_and_add_if #336 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 + +mpi_core_add_and_add_if #337 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e39fb3242dbec90c8f5bd84cf27a1c8a7ea104925b0750467f6c5a59030c5f92c69f00df57e940f8acc00449363237e9b08836ac2c665594beaa4ee7c2960321b2726dc3b594780debfe180776bae70bbc1195434102f220944bc8cc9ea4a74054630f0a6309fe4e8b2285bd99d44c8a854008079d01896148085767a868355a":1 + +mpi_core_add_and_add_if #338 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e39fb3242dbec90c8f5bd84cf27a1c8a7ea104925b0750467f6c5a59030c5f92c69f00df57e940f8acc00449363237e9b08836ac2c665594beaa4ee7c2960321b2726dc3b594780debfe180776bae70bbc1195434102f220944bc8cc9ea4a74054630f0a6309fe4e8b2285bd99d44c8a854008079d01896148085767a868355a":1 + +Constant time MPI table lookup - One limb MPI with 0 bit window +mpi_core_ct_uint_table_lookup:32:0 + +Constant time MPI table lookup - One limb MPI with 1 bit window +mpi_core_ct_uint_table_lookup:32:1 + +Constant time MPI table lookup - One limb MPI with 2 bit window +mpi_core_ct_uint_table_lookup:32:2 + +Constant time MPI table lookup - One limb MPI with 3 bit window +mpi_core_ct_uint_table_lookup:32:3 + +Constant time MPI table lookup - One limb MPI with 4 bit window +mpi_core_ct_uint_table_lookup:32:4 + +Constant time MPI table lookup - One limb MPI with 5 bit window +mpi_core_ct_uint_table_lookup:32:5 + +Constant time MPI table lookup - One limb MPI with 6 bit window +mpi_core_ct_uint_table_lookup:32:6 + +Constant time MPI table lookup - Smallest curve sized MPI with 0 bit window +mpi_core_ct_uint_table_lookup:192:0 + +Constant time MPI table lookup - Smallest curve sized MPI with 1 bit window +mpi_core_ct_uint_table_lookup:192:1 + +Constant time MPI table lookup - Smallest curve sized MPI with 2 bit window +mpi_core_ct_uint_table_lookup:192:2 + +Constant time MPI table lookup - Smallest curve sized MPI with 3 bit window +mpi_core_ct_uint_table_lookup:192:3 + +Constant time MPI table lookup - Smallest curve sized MPI with 4 bit window +mpi_core_ct_uint_table_lookup:192:4 + +Constant time MPI table lookup - Smallest curve sized MPI with 5 bit window +mpi_core_ct_uint_table_lookup:192:5 + +Constant time MPI table lookup - Smallest curve sized MPI with 6 bit window +mpi_core_ct_uint_table_lookup:192:6 + +Constant time MPI table lookup - Largest curve sized MPI with 0 bit window +mpi_core_ct_uint_table_lookup:512:0 + +Constant time MPI table lookup - Largest curve sized MPI with 1 bit window +mpi_core_ct_uint_table_lookup:512:1 + +Constant time MPI table lookup - Largest curve sized MPI with 2 bit window +mpi_core_ct_uint_table_lookup:512:2 + +Constant time MPI table lookup - Largest curve sized MPI with 3 bit window +mpi_core_ct_uint_table_lookup:512:3 + +Constant time MPI table lookup - Largest curve sized MPI with 4 bit window +mpi_core_ct_uint_table_lookup:512:4 + +Constant time MPI table lookup - Largest curve sized MPI with 5 bit window +mpi_core_ct_uint_table_lookup:512:5 + +Constant time MPI table lookup - Largest curve sized MPI with 6 bit window +mpi_core_ct_uint_table_lookup:512:6 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 0 bit window +mpi_core_ct_uint_table_lookup:2048:0 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 1 bit window +mpi_core_ct_uint_table_lookup:2048:1 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 2 bit window +mpi_core_ct_uint_table_lookup:2048:2 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 3 bit window +mpi_core_ct_uint_table_lookup:2048:3 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 4 bit window +mpi_core_ct_uint_table_lookup:2048:4 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 5 bit window +mpi_core_ct_uint_table_lookup:2048:5 + +Constant time MPI table lookup - Small FF/RSA sized MPI with 6 bit window +mpi_core_ct_uint_table_lookup:2048:6 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 0 bit window +mpi_core_ct_uint_table_lookup:4096:0 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 1 bit window +mpi_core_ct_uint_table_lookup:4096:1 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 2 bit window +mpi_core_ct_uint_table_lookup:4096:2 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 3 bit window +mpi_core_ct_uint_table_lookup:4096:3 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 4 bit window +mpi_core_ct_uint_table_lookup:4096:4 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 5 bit window +mpi_core_ct_uint_table_lookup:4096:5 + +Constant time MPI table lookup - Large FF/RSA sized MPI with 6 bit window +mpi_core_ct_uint_table_lookup:4096:6 + +Core modular exponentiation (Mongtomery form only) #1 0 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #2 0 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #3 0 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #4 0 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #5 0 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000004":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #6 0 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000038":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #7 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #8 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #9 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #10 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #11 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #12 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #13 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #14 1 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #15 1 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000001":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #16 1 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000002":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #17 1 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000003":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #18 1 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000004":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #19 1 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000038":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #20 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #21 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #22 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #23 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #24 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #25 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #26 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000024":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #27 2 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #28 2 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000001":"0000000000000048" + +Core modular exponentiation (Mongtomery form only) #29 2 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000002":"000000000000003d" + +Core modular exponentiation (Mongtomery form only) #30 2 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000003":"0000000000000027" + +Core modular exponentiation (Mongtomery form only) #31 2 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000004":"000000000000004e" + +Core modular exponentiation (Mongtomery form only) #32 2 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000038":"000000000000001f" + +Core modular exponentiation (Mongtomery form only) #33 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003e" + +Core modular exponentiation (Mongtomery form only) #34 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000002a" + +Core modular exponentiation (Mongtomery form only) #35 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000016" + +Core modular exponentiation (Mongtomery form only) #36 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000d" + +Core modular exponentiation (Mongtomery form only) #37 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000027" + +Core modular exponentiation (Mongtomery form only) #38 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000046" + +Core modular exponentiation (Mongtomery form only) #39 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000048":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000008" + +Core modular exponentiation (Mongtomery form only) #40 3 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #41 3 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000001":"0000000000000019" + +Core modular exponentiation (Mongtomery form only) #42 3 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000002":"000000000000004b" + +Core modular exponentiation (Mongtomery form only) #43 3 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000003":"000000000000003b" + +Core modular exponentiation (Mongtomery form only) #44 3 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000004":"000000000000000b" + +Core modular exponentiation (Mongtomery form only) #45 3 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000038":"000000000000001a" + +Core modular exponentiation (Mongtomery form only) #46 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000004e" + +Core modular exponentiation (Mongtomery form only) #47 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000044" + +Core modular exponentiation (Mongtomery form only) #48 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000004b" + +Core modular exponentiation (Mongtomery form only) #49 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000031" + +Core modular exponentiation (Mongtomery form only) #50 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000003b" + +Core modular exponentiation (Mongtomery form only) #51 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000031" + +Core modular exponentiation (Mongtomery form only) #52 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000019":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000001e" + +Core modular exponentiation (Mongtomery form only) #53 4 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #54 4 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000001":"000000000000003d" + +Core modular exponentiation (Mongtomery form only) #55 4 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000002":"000000000000004e" + +Core modular exponentiation (Mongtomery form only) #56 4 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000003":"000000000000003f" + +Core modular exponentiation (Mongtomery form only) #57 4 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000004":"0000000000000003" + +Core modular exponentiation (Mongtomery form only) #58 4 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000038":"000000000000001d" + +Core modular exponentiation (Mongtomery form only) #59 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000021" + +Core modular exponentiation (Mongtomery form only) #60 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000031" + +Core modular exponentiation (Mongtomery form only) #61 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000004e" + +Core modular exponentiation (Mongtomery form only) #62 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000007" + +Core modular exponentiation (Mongtomery form only) #63 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000003f" + +Core modular exponentiation (Mongtomery form only) #64 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000007" + +Core modular exponentiation (Mongtomery form only) #65 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"000000000000003d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000b" + +Core modular exponentiation (Mongtomery form only) #66 38 ^ 0 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000000":"0000000000000024" + +Core modular exponentiation (Mongtomery form only) #67 38 ^ 1 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000001":"0000000000000018" + +Core modular exponentiation (Mongtomery form only) #68 38 ^ 2 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000002":"0000000000000010" + +Core modular exponentiation (Mongtomery form only) #69 38 ^ 3 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000003":"0000000000000042" + +Core modular exponentiation (Mongtomery form only) #70 38 ^ 4 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000004":"000000000000002c" + +Core modular exponentiation (Mongtomery form only) #71 38 ^ 38 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000038":"000000000000000b" + +Core modular exponentiation (Mongtomery form only) #72 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000023" + +Core modular exponentiation (Mongtomery form only) #73 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000020" + +Core modular exponentiation (Mongtomery form only) #74 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000043" + +Core modular exponentiation (Mongtomery form only) #75 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000004f" + +Core modular exponentiation (Mongtomery form only) #76 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000042" + +Core modular exponentiation (Mongtomery form only) #77 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000004" + +Core modular exponentiation (Mongtomery form only) #78 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 +mpi_core_exp_mod:"0000000000000053":"0000000000000018":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000004c" + +Core modular exponentiation (Mongtomery form only) #170 0 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #171 0 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #172 0 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #173 0 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #174 0 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #175 0 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000038":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #176 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #177 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #178 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #179 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #180 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #181 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #182 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000" + +Core modular exponentiation (Mongtomery form only) #183 1 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #184 1 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000001":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #185 1 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000002":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #186 1 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000003":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #187 1 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000004":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #188 1 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000038":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #189 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #190 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #191 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #192 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #193 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #194 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #195 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000034":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #196 2 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #197 2 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000001":"0000000000000023" + +Core modular exponentiation (Mongtomery form only) #198 2 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000002":"0000000000000001" + +Core modular exponentiation (Mongtomery form only) #199 2 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000003":"0000000000000002" + +Core modular exponentiation (Mongtomery form only) #200 2 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000004":"0000000000000004" + +Core modular exponentiation (Mongtomery form only) #201 2 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000038":"000000000000003a" + +Core modular exponentiation (Mongtomery form only) #202 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003e" + +Core modular exponentiation (Mongtomery form only) #203 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000001d" + +Core modular exponentiation (Mongtomery form only) #204 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000001d" + +Core modular exponentiation (Mongtomery form only) #205 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000003b" + +Core modular exponentiation (Mongtomery form only) #206 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000008" + +Core modular exponentiation (Mongtomery form only) #207 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000d" + +Core modular exponentiation (Mongtomery form only) #208 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000023":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000002f" + +Core modular exponentiation (Mongtomery form only) #209 3 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #210 3 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000001":"0000000000000012" + +Core modular exponentiation (Mongtomery form only) #211 3 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000002":"0000000000000036" + +Core modular exponentiation (Mongtomery form only) #212 3 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000003":"0000000000000018" + +Core modular exponentiation (Mongtomery form only) #213 3 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000004":"0000000000000003" + +Core modular exponentiation (Mongtomery form only) #214 3 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000038":"0000000000000012" + +Core modular exponentiation (Mongtomery form only) #215 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000001b" + +Core modular exponentiation (Mongtomery form only) #216 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000006" + +Core modular exponentiation (Mongtomery form only) #217 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000006" + +Core modular exponentiation (Mongtomery form only) #218 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000027" + +Core modular exponentiation (Mongtomery form only) #219 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000009" + +Core modular exponentiation (Mongtomery form only) #220 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000027" + +Core modular exponentiation (Mongtomery form only) #221 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000012":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000036" + +Core modular exponentiation (Mongtomery form only) #222 4 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #223 4 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000001" + +Core modular exponentiation (Mongtomery form only) #224 4 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000004" + +Core modular exponentiation (Mongtomery form only) #225 4 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000010" + +Core modular exponentiation (Mongtomery form only) #226 4 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000040" + +Core modular exponentiation (Mongtomery form only) #227 4 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000038":"0000000000000001" + +Core modular exponentiation (Mongtomery form only) #228 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003a" + +Core modular exponentiation (Mongtomery form only) #229 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #230 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #231 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000037" + +Core modular exponentiation (Mongtomery form only) #232 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000031" + +Core modular exponentiation (Mongtomery form only) #233 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000037" + +Core modular exponentiation (Mongtomery form only) #234 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"0000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000004" + +Core modular exponentiation (Mongtomery form only) #235 38 ^ 0 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000000":"0000000000000034" + +Core modular exponentiation (Mongtomery form only) #236 38 ^ 1 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000001":"000000000000000e" + +Core modular exponentiation (Mongtomery form only) #237 38 ^ 2 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000002":"0000000000000019" + +Core modular exponentiation (Mongtomery form only) #238 38 ^ 3 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000003":"0000000000000014" + +Core modular exponentiation (Mongtomery form only) #239 38 ^ 4 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000004":"0000000000000010" + +Core modular exponentiation (Mongtomery form only) #240 38 ^ 38 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000038":"0000000000000037" + +Core modular exponentiation (Mongtomery form only) #241 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000038" + +Core modular exponentiation (Mongtomery form only) #242 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000011" + +Core modular exponentiation (Mongtomery form only) #243 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000011" + +Core modular exponentiation (Mongtomery form only) #244 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000005" + +Core modular exponentiation (Mongtomery form only) #245 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000044" + +Core modular exponentiation (Mongtomery form only) #246 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000040" + +Core modular exponentiation (Mongtomery form only) #247 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 +mpi_core_exp_mod:"0000000000000045":"000000000000000e":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000002c" + +Core modular exponentiation (Mongtomery form only) #339 0 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #340 0 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #341 0 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #342 0 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #343 0 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #344 0 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #345 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #346 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #347 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #348 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #349 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #350 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #351 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #352 1 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #353 1 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #354 1 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000002":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #355 1 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000003":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #356 1 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000004":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #357 1 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000038":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #358 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #359 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #360 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #361 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #362 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #363 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #364 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #365 2 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #366 2 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000001":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" + +Core modular exponentiation (Mongtomery form only) #367 2 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000002":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" + +Core modular exponentiation (Mongtomery form only) #368 2 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000003":"a0359b265cc460e064d2ffdffb6d97d7ed3d06420bf28dcd" + +Core modular exponentiation (Mongtomery form only) #369 2 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000004":"6eaa0ea652105abd46a0ffbc6820408ef4d629a7e055643f" + +Core modular exponentiation (Mongtomery form only) #370 2 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000038":"62015328f2ca428af48be3c3fcd2f5d8ec5e4455d7eafb29" + +Core modular exponentiation (Mongtomery form only) #371 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" + +Core modular exponentiation (Mongtomery form only) #372 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"736abac95d6913b563ab6ff9a569e4abc9aa12e85a544fc1" + +Core modular exponentiation (Mongtomery form only) #373 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"282c8509e8b0a486b3c4e12271eadfdfe1809ded8d2795d7" + +Core modular exponentiation (Mongtomery form only) #374 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0175241247dcdbbf89f446579973575b638b58b7f2e3e367" + +Core modular exponentiation (Mongtomery form only) #375 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2e65c6de86c5c97cd8d871ba5f6525316fe2c4573f80300" + +Core modular exponentiation (Mongtomery form only) #376 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"142557251841691ee543b7f389e21395a4e58aecdb2ec4bb" + +Core modular exponentiation (Mongtomery form only) #377 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"89ebe4c06108cfff8af5bfa1ae74a016eb2a47fea953dc1d" + +Core modular exponentiation (Mongtomery form only) #378 3 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #379 3 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000001":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" + +Core modular exponentiation (Mongtomery form only) #380 3 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000002":"ce74737ff54bf9dce1cdffdc6cb2a8b707992365d462d672" + +Core modular exponentiation (Mongtomery form only) #381 3 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000003":"c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a0" + +Core modular exponentiation (Mongtomery form only) #382 3 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000004":"b40ed24c63e890a7d815fea35c707568174327b2bafbcf2a" + +Core modular exponentiation (Mongtomery form only) #383 3 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000038":"8813b3fbe64484b1bce761cc58c440081dd65c0e2fce3a62" + +Core modular exponentiation (Mongtomery form only) #384 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" + +Core modular exponentiation (Mongtomery form only) #385 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cd7adadf6ded8b4750d7547e3bfee9dd6ab336d05bcc1bea" + +Core modular exponentiation (Mongtomery form only) #386 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"455d2f52a5208242666bd83d75127ce619e2f3153a75c4f3" + +Core modular exponentiation (Mongtomery form only) #387 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aec48a75180e3bcf1586bfb806a41599c701bb0a13734137" + +Core modular exponentiation (Mongtomery form only) #388 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"48aec5edce9dbb93307c9f1b43cc1c7ea4f5f7034a91be1e" + +Core modular exponentiation (Mongtomery form only) #389 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"6731cabcb7db4086080d1c1d76d93dbc4b1604d343c7f6d7" + +Core modular exponentiation (Mongtomery form only) #390 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"26db13a77ba51e3a29249c1d83f74f798547b71391c182cd" + +Core modular exponentiation (Mongtomery form only) #391 4 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #392 4 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000001":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" + +Core modular exponentiation (Mongtomery form only) #393 4 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000002":"6eaa0ea652105abd46a0ffbc6820408ef4d629a7e055643f" + +Core modular exponentiation (Mongtomery form only) #394 4 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000003":"1725eb4c79509cee1479feea830b23fa0810e0e712362246" + +Core modular exponentiation (Mongtomery form only) #395 4 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000004":"5c97ad31e54273b851e7fbaa0c2c8fe82043839c48d88918" + +Core modular exponentiation (Mongtomery form only) #396 4 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000038":"7e3bde47fedc2e1cc1be77ae2fc87640579e1f338f8767c6" + +Core modular exponentiation (Mongtomery form only) #397 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" + +Core modular exponentiation (Mongtomery form only) #398 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"13f157672ac702d88612609658e50fe336390a368de63811" + +Core modular exponentiation (Mongtomery form only) #399 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"7bd536293aa0a337596886cf1e1503512973a6b3cafbf599" + +Core modular exponentiation (Mongtomery form only) #400 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"80b42a0fbce2bcaf13c9710a13de25543fd311ed02a8247a" + +Core modular exponentiation (Mongtomery form only) #401 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2fb1779eef2fb9c5b85013851d8ec5d404a60a12e7a21030" + +Core modular exponentiation (Mongtomery form only) #402 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0702555838a9f70a56265d5f722d13e3923f04146f2d1864" + +Core modular exponentiation (Mongtomery form only) #403 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3dbb796d3196a61f8f9c448731192ab3bc8429f28f1efc26" + +Core modular exponentiation (Mongtomery form only) #404 38 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #405 38 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000001":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" + +Core modular exponentiation (Mongtomery form only) #406 38 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000002":"557c4363331406805c40cad14b7b37370f079ded668dfa9f" + +Core modular exponentiation (Mongtomery form only) #407 38 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000003":"ac955566480891c6ebbe5d7a3ee387378d950d01a8b510f6" + +Core modular exponentiation (Mongtomery form only) #408 38 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000004":"0ff58e792a3d60e206be721a1c2e9c3db52814caebc8c376" + +Core modular exponentiation (Mongtomery form only) #409 38 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000038":"9192a9df5fbe61561274de19a967d2f48262afb2319875d3" + +Core modular exponentiation (Mongtomery form only) #410 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" + +Core modular exponentiation (Mongtomery form only) #411 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"7dc4a890f04c11924824e053725f4835103178a9e6b91f0e" + +Core modular exponentiation (Mongtomery form only) #412 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"caf610a7e50cc1b225c830220ce430e3d71d5b9b2c63c32d" + +Core modular exponentiation (Mongtomery form only) #413 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cc084102738f63219204e5311f4b473d66461ff47940d961" + +Core modular exponentiation (Mongtomery form only) #414 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"483cf8addb7ed889ed57f74597aaf131d112a42ebb95c46f" + +Core modular exponentiation (Mongtomery form only) #415 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"be2e8eacadc61914b863a8fc21273c0defdbe7fc9993f991" + +Core modular exponentiation (Mongtomery form only) #416 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"82cfbe250b33cc8c9f42c6851b81e1ce853eb4f5d9c477c6" + +Core modular exponentiation (Mongtomery form only) #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000001":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" + +Core modular exponentiation (Mongtomery form only) #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000002":"8cf29cb53dff685f629a4464bccc8e83b32e76165b5821ba" + +Core modular exponentiation (Mongtomery form only) #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000003":"638536b608028f1bd69faa2028bca8354b921396cba9a68a" + +Core modular exponentiation (Mongtomery form only) #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000004":"6a50d1c3bc09aa9c69f97fe308a6ffd5559f0ea2d5d8d8b7" + +Core modular exponentiation (Mongtomery form only) #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000038":"89bf50d3553ba1accb080cb0c21b2a8808307b1bfac88bb6" + +Core modular exponentiation (Mongtomery form only) #436 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" + +Core modular exponentiation (Mongtomery form only) #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2adca997fb1adbc30f958fcbb83f2348b4ca0b719119bb95" + +Core modular exponentiation (Mongtomery form only) #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"95af967be5e7d836bd093c3a844685f95e952387404857db" + +Core modular exponentiation (Mongtomery form only) #439 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6c4b190c526b19cb1f5392f60b9a7fae40ecd620c2da0b42" + +Core modular exponentiation (Mongtomery form only) #440 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"9292184182b3939ff72185aa4f3aac9054d7a365620bf258" + +Core modular exponentiation (Mongtomery form only) #441 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"44e78065023a54a431eb8d548defe45d607014d147f79737" + +Core modular exponentiation (Mongtomery form only) #442 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"ad8a821ec364be5096e5d9051e75f0a5c9617d91aa1bb9a7" + +Core modular exponentiation (Mongtomery form only) #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Core modular exponentiation (Mongtomery form only) #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000001":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" + +Core modular exponentiation (Mongtomery form only) #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000002":"84f5715e6166e92d827da90f387d9974d31df7a41eb9bbee" + +Core modular exponentiation (Mongtomery form only) #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000003":"55213e86191cc7819cc98db4aa0cc8f26a72a47b6504b16d" + +Core modular exponentiation (Mongtomery form only) #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000004":"11fb76bc742e761930f5ec720dc42b23c0ea939913359549" + +Core modular exponentiation (Mongtomery form only) #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000038":"67de8bdd949244a08d4c0c47e39af43424dbfbc1cf6ee41f" + +Core modular exponentiation (Mongtomery form only) #449 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" + +Core modular exponentiation (Mongtomery form only) #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"342bc4a4c507359ac34e1be50bb9fef6109f096c28049458" + +Core modular exponentiation (Mongtomery form only) #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1f39ea71fad1e059db23871f472cbe4b916f6c50f1aa8445" + +Core modular exponentiation (Mongtomery form only) #452 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"7bd9203bf975bbf70004804ae02041c53f0826b6921d4bdd" + +Core modular exponentiation (Mongtomery form only) #453 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"05cd13191af06a48e3d51f24fd0e325fae4e80f19c38d950" + +Core modular exponentiation (Mongtomery form only) #454 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"93a98908baf47d0fe6d644208746b5cf52e2a0c20da64d8c" + +Core modular exponentiation (Mongtomery form only) #455 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0ca01d0a16599026b808970ae5864bdc70be430b5cd821c1" + +Core modular exponentiation (Mongtomery form only) #508 0 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #509 0 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #510 0 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #511 0 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #512 0 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #513 0 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #514 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #515 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #516 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #517 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #518 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #519 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #520 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #521 1 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #522 1 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #523 1 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000002":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #524 1 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000003":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #525 1 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000004":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #526 1 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000038":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #527 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #528 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #529 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #530 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #531 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #532 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #533 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #534 2 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #535 2 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000001":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" + +Core modular exponentiation (Mongtomery form only) #536 2 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000002":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" + +Core modular exponentiation (Mongtomery form only) #537 2 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000003":"00936e56bba1c3f28ccecc5359b1b57fb6d0dc5b25452178" + +Core modular exponentiation (Mongtomery form only) #538 2 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000004":"0126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f0" + +Core modular exponentiation (Mongtomery form only) #539 2 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000038":"cbc7f16c92d2a2baba8c4286877c783301191afdbc82133c" + +Core modular exponentiation (Mongtomery form only) #540 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2b118a033f97d99a7eaf2e635107a7d5d185aa2682a84133" + +Core modular exponentiation (Mongtomery form only) #541 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"56dc49a743dd116f415f3a2ad6671fb419eecea7284bebe7" + +Core modular exponentiation (Mongtomery form only) #542 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"21309971b728ef8cf371dfc5b2aeefb22471115d3765e99f" + +Core modular exponentiation (Mongtomery form only) #543 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"726dc37bdeb90f4f7572f74fde8b66fb91adfb03d90d5bc6" + +Core modular exponentiation (Mongtomery form only) #544 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"05218fe7ccf32bb0ce0af8fa2c3772cb1e72b693da49b39f" + +Core modular exponentiation (Mongtomery form only) #545 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"617c21498dbd7725fba62b007f396121b9151a975fff2dbf" + +Core modular exponentiation (Mongtomery form only) #546 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"322d47389940543ad6d62761a3c768a1defee368213a44bb" + +Core modular exponentiation (Mongtomery form only) #547 3 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #548 3 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000001":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" + +Core modular exponentiation (Mongtomery form only) #549 3 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000002":"00a5dc219315fc70de68a5ddc4e7ec2fadaaf7e689edc5a7" + +Core modular exponentiation (Mongtomery form only) #550 3 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000003":"01f19464b941f5529b39f1994eb7c48f0900e7b39dc950f5" + +Core modular exponentiation (Mongtomery form only) #551 3 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000004":"05d4bd2e2bc5dff7d1add4cbec274dad1b02b71ad95bf2df" + +Core modular exponentiation (Mongtomery form only) #552 3 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000038":"e1d12672c2c17dc8c31840d61868d88c3fdede1e5cbe86f4" + +Core modular exponentiation (Mongtomery form only) #553 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8826f459981b454f59f868f6b5baff708a7a6f8a89eb7fd1" + +Core modular exponentiation (Mongtomery form only) #554 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b34dfb4ea6bcac1c2876110f44b7a3f233ddbcfb83eb7d79" + +Core modular exponentiation (Mongtomery form only) #555 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"62dcfde863135359f415fc585f1d2f0f4bb7740b2280f673" + +Core modular exponentiation (Mongtomery form only) #556 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"233200d88fc6201432f29f8566cd2f76f1540be079de67df" + +Core modular exponentiation (Mongtomery form only) #557 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"08c778349c44ca8f816835e12a380b05eb8328bb1cccf42f" + +Core modular exponentiation (Mongtomery form only) #558 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c28724438933eda12a1b1cdc98f120ffd0beb199019adf75" + +Core modular exponentiation (Mongtomery form only) #559 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"9e5488e21e1b68309a85c3c3ba243573f72ca7580e54cbba" + +Core modular exponentiation (Mongtomery form only) #560 4 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #561 4 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000001":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" + +Core modular exponentiation (Mongtomery form only) #562 4 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000002":"0126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f0" + +Core modular exponentiation (Mongtomery form only) #563 4 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000003":"049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc0" + +Core modular exponentiation (Mongtomery form only) #564 4 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000004":"126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f00" + +Core modular exponentiation (Mongtomery form only) #565 4 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000038":"5e1c6fc900a0e2024e6bdd4aadb6647e5dffdecac715edf4" + +Core modular exponentiation (Mongtomery form only) #566 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"766bbaa1933aab0715c65e36ae8059fb3e60b68fcd3ae54d" + +Core modular exponentiation (Mongtomery form only) #567 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"bf129c5d7b1b4d651a3deecced7ea3c67ab8d7f8f08e5c7b" + +Core modular exponentiation (Mongtomery form only) #568 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ef38652911f419b30f296f1b4e8f0ab986cec2b54bc33235" + +Core modular exponentiation (Mongtomery form only) #569 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3594f35e8a4141ab3dd4ba10f4de940c213173aef686a16c" + +Core modular exponentiation (Mongtomery form only) #570 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"df0f1b5e5a8aa09b9f79c926a18683bb6c1dd13554d39c67" + +Core modular exponentiation (Mongtomery form only) #571 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"08555128e4e0b2930a55a6302efab147ac7576f8eb080a51" + +Core modular exponentiation (Mongtomery form only) #572 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"281b3fbb20852f3089852bfd9b0abe81d191f6d2f837e14e" + +Core modular exponentiation (Mongtomery form only) #573 38 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #574 38 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000001":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" + +Core modular exponentiation (Mongtomery form only) #575 38 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000002":"e1c0f4cf4fb40b679ca8dfa1581deb8fefd16b9111db3fc0" + +Core modular exponentiation (Mongtomery form only) #576 38 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000003":"65bc912caca14ed7e3638ec9cbebff2ab58ecd6a2c3d5eff" + +Core modular exponentiation (Mongtomery form only) #577 38 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000004":"42d5313447461a14c0ffee09d2488476edfb4d3453eae3d2" + +Core modular exponentiation (Mongtomery form only) #578 38 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000038":"2299552f34156570f24335bc0a568b3261ce14457ebbf8a7" + +Core modular exponentiation (Mongtomery form only) #579 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"307558b7dc37e8ef3acef9c8082d95037512056c80564c29" + +Core modular exponentiation (Mongtomery form only) #580 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b4b8fd89e333a7d2a82b1de2b775a634fa7cac12ae52a5f9" + +Core modular exponentiation (Mongtomery form only) #581 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"762f48a5698f2ad605dcb7429892b8fa6d0f9605e9a4a0e0" + +Core modular exponentiation (Mongtomery form only) #582 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"97e926f3e1c1846373e9e061e6714a2c36b17fc6f10765c6" + +Core modular exponentiation (Mongtomery form only) #583 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f3424dd6731094b5f39fa423358ef0f96b35fd59b1ffd132" + +Core modular exponentiation (Mongtomery form only) #584 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"49c7fe0a6742343da8dde3c7467d656bc88f8296fa5fc6ad" + +Core modular exponentiation (Mongtomery form only) #585 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"30680fd9cc06ae8f28b5ed29a769a80086250dfb8f043f77" + +Core modular exponentiation (Mongtomery form only) #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000001":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" + +Core modular exponentiation (Mongtomery form only) #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000002":"8e252eee33d3c6f20e8fdc43b373e365ad11421986ea558f" + +Core modular exponentiation (Mongtomery form only) #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000003":"32df6cb40c45993b472077311d695be543130ba21e63e898" + +Core modular exponentiation (Mongtomery form only) #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000004":"59b53f94b3344393c8d5b848caff67eab6416011bfe31433" + +Core modular exponentiation (Mongtomery form only) #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000038":"199e4f207e8a2403a86031f1036c69c5a4c9e6b93477bf3e" + +Core modular exponentiation (Mongtomery form only) #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e03fc545ec699307c098b78b00fd551399d33fcb00173163" + +Core modular exponentiation (Mongtomery form only) #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c4885e82e45f2f63cf303ea8b606f606270d71aa30674338" + +Core modular exponentiation (Mongtomery form only) #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"67e70d4b42f34c908082fb52bdec47aecf1f92dd4e067857" + +Core modular exponentiation (Mongtomery form only) #595 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"44a032cd98fca45f0ecaff08a5773e702b544d499fff2932" + +Core modular exponentiation (Mongtomery form only) #596 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3809ceb74b5a154b9fdde8cb28acc2785488a0b8b9a9fa94" + +Core modular exponentiation (Mongtomery form only) #597 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"30936e50177af6e0b66e2b344ef5a3b423732bbdc87003ea" + +Core modular exponentiation (Mongtomery form only) #598 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"599c66c4c58a0f811e451732f8a5477188c61b11f2106a9f" + +Core modular exponentiation (Mongtomery form only) #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000001":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" + +Core modular exponentiation (Mongtomery form only) #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000002":"2a91d83c37801d9f91d54cbb054e17aa97cdd37f9d529be5" + +Core modular exponentiation (Mongtomery form only) #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000003":"eec76b0f9fb50b5ab61e4f23af30a4edaa05eaf95ad7c20f" + +Core modular exponentiation (Mongtomery form only) #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000004":"23e3f02f76dbc6874d2682c1be0ac17158fc5c06d2f3e642" + +Core modular exponentiation (Mongtomery form only) #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000038":"7f0032ad4012649e4aac26fd4c6fdbf4c664e8851cab4ad2" + +Core modular exponentiation (Mongtomery form only) #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"557745996a3416a26b0b7847e40a4f43fa89a2e04f424aa6" + +Core modular exponentiation (Mongtomery form only) #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e7cfdc1529afdfd8c15c44d718bea8740eb64724d00dbb54" + +Core modular exponentiation (Mongtomery form only) #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e4fc581667af423aa43baffaaed7f68975adf89e5a13895d" + +Core modular exponentiation (Mongtomery form only) #608 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bd20affafd19cc9d921925eabaa79a9539cc466dd91e6c39" + +Core modular exponentiation (Mongtomery form only) #609 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a5d5aa35a6ecc1bbcb5d9bd3ae28a6266a50896dff6992e3" + +Core modular exponentiation (Mongtomery form only) #610 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c1d04aada3c17ed78aff0b2c4851d095b95a8f4387d8b1b2" + +Core modular exponentiation (Mongtomery form only) #611 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"49072571a90ac5bf4af577b508fe6ce7cfa8c3ea881a9b5e" + +Core modular exponentiation (Mongtomery form only) #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Core modular exponentiation (Mongtomery form only) #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000001":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" + +Core modular exponentiation (Mongtomery form only) #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000002":"531c46d0a91c719bc7284a841541118abed4c736f781c15a" + +Core modular exponentiation (Mongtomery form only) #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000003":"6f5f4fb84f5773a70c1f400d44b569677977e4d441b9c386" + +Core modular exponentiation (Mongtomery form only) #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000004":"94f54ca664c35010042187f244c530dc28aaae49bb3802d3" + +Core modular exponentiation (Mongtomery form only) #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000038":"59a47284611c4cb93f75d01c6268be2c82185ddddc137e4d" + +Core modular exponentiation (Mongtomery form only) #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b5df45fe64ae405265d657d91c9f0f90b4d84dda823061b9" + +Core modular exponentiation (Mongtomery form only) #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"569599bb9d443f3fcfb6ebef84dc3e892cbd64d2854bf899" + +Core modular exponentiation (Mongtomery form only) #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"098b667be2a182fbe1c7964ba526b2ff0239e02b16c9e993" + +Core modular exponentiation (Mongtomery form only) #621 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"8e583b3e60f042d28179567c5b41e282b5eefc21a3c19bc6" + +Core modular exponentiation (Mongtomery form only) #622 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"865d2e2d793457e7ffca7bb3bfde4267761c773d1b1c8627" + +Core modular exponentiation (Mongtomery form only) #623 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b430042099b81fa9a12433287d727936ad7fe4622eb7f128" + +Core modular exponentiation (Mongtomery form only) #624 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e37ca0f1d54b16ca066b99cdf702cefc276109cc2cc6b673" + +Core modular exponentiation (Mongtomery form only) #677 0 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #678 0 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #679 0 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #680 0 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #681 0 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #682 0 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #683 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #684 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #685 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #686 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #687 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #688 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #689 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #690 1 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #691 1 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #692 1 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #693 1 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #694 1 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #695 1 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #696 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #697 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #698 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #699 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #700 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #701 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #702 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #703 2 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #704 2 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" + +Core modular exponentiation (Mongtomery form only) #705 2 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" + +Core modular exponentiation (Mongtomery form only) #706 2 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"23ab70c36f81a774ebbfa896d47018094eae5473d8cd31d041dd29a470f30948653cc411ec731d7d048775063a05295134662da6c27f1a742d98830b535b98fc9348d0aa3e7a016223711d4853c8537869c5f5026d495088624a03c5d54bb41e2a2551f14688f64ad41bd0a5a6fb2a5d4dd2ee89205a42e6b2fc01be5d3acaa2" + +Core modular exponentiation (Mongtomery form only) #707 2 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4756e186df034ee9d77f512da8e030129d5ca8e7b19a63a083ba5348e1e61290ca798823d8e63afa090eea0c740a52a268cc5b4d84fe34e85b310616a6b731f92691a1547cf402c446e23a90a790a6f0d38bea04da92a110c494078baa97683c544aa3e28d11ec95a837a14b4df654ba9ba5dd1240b485cd65f8037cba759544" + +Core modular exponentiation (Mongtomery form only) #708 2 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"6c4527d8818fe9b3c3ad2135aa5e5c55a440eddc2257c76b5a4d5a040cad5c0257def0733ce5751a3b82ebc5c9bce9272a1a7b3db2e222ebb759c0f243fca3e951473729f38ad6d63889c24b010f38c048d2069028d1120d210c15aefb9a0a8621ffa31dc9cfc2fb6fe017b8e6ea808ebeb21c68f99c9794f03d06f2f9f62f45" + +Core modular exponentiation (Mongtomery form only) #709 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"96ba10023d64b95130dd9b1fc451e10e0580b324fb6cbbfc8be78f3248301023810c752386189cddcd3e98b87c6958ef0681df7f1b65cf233ee05f36b67846e28c8425a3640df66594f4aaff10f331aefd205c855470a1991363ad141b5f384e943b0e1a81b031d2404f11cba9567bfcb1b3218e632e4aca920569d83179ddd9" + +Core modular exponentiation (Mongtomery form only) #710 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"872c522133b076c2edf608b2c8a8a9a409d8ea6fd6ed1e051beec4225039702a2b7bda1db1601d2345b317813d868f2a9af4ab924119f751448bba43566a0f981a53dd3b4b1bbd72ebd1e8e90a6de03a83ddb253a431cef1740f097bd3f8db6dc5574ad5ad232f3fa68c4163776a0ac46ada7c97c1d6ea5fc87d3f2a30b89385" + +Core modular exponentiation (Mongtomery form only) #711 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3cb732efdefb447968b500f51050a3f3bf67e3ff779181192e0832c1a207d120228b3a207fcf25a896d9d77a7ca9b5adba5bb5b303fbe104c3a96a6683af809d140905888f0563ae2e42165f35adbecf7772cf2dfb08cc4364602f6d7fa7bb0ce278309d5c8faa859dac7faee51d6a362a434475faea72d56ccc79da2e148fb3" + +Core modular exponentiation (Mongtomery form only) #712 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" + +Core modular exponentiation (Mongtomery form only) #713 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"9918bafd8d24b13e3fc8204e7d6fc60817a8823f228ee97078a6ad3824ede67575e444082d431b736b7a350c860b34890213665d54a035d4b7eb409f3ac0278e2acfa593d30ff1f2866c375409926d726318bced0b3967e5ccb216fb3f5d4e97a2c3b656dac66c6850635bd40e4f605371a6cfa53edc935056f9d5f02dbf3e1d" + +Core modular exponentiation (Mongtomery form only) #714 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"73fa2bb5acd45764062b02179ea27d5461e84eb4bca3535bfcde71f323da9347f757b43df62b7ea30c608c5c24c2c55038ae2e40eb361f1bc347d963ed1884ae97b24f475f07b2380f611989c5559ebcf1ab6944d8dc4d8691fee3e8c97f854eb2942924a99887018b5fca5da5a28c6783059b5fadbc953d59a620bb9bc0a849" + +Core modular exponentiation (Mongtomery form only) #715 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"885754d024af72007a9337da7d5f26ca624135954754f28a58abe19fda051df81d28d37a05fab101020034d841d8ac89a8dff92d1da433c99937ba9ff4414b54c16e4a4a2e23de88ebc9a613a24314a5ebafda56008419dd1b5a1a5bdb09bf454ec97d53f6d5d42b242f4d5d1251b4dbd370912b90ce55abf16b8358b1ad342f" + +Core modular exponentiation (Mongtomery form only) #716 3 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #717 3 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" + +Core modular exponentiation (Mongtomery form only) #718 3 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"5a6fc8d6faa83833d01f9fd91ce1b40a3cf2f67f6e7b506515401434e2a4f09c6f5c7146ea7ea06feb61cd86d96c13d9533d32376f8bd04c988e29bfa87e5b7c3b9ce588118634b8c096069c5c29289e0df35a4f78370bc938eb04266aa012edfb290d5633fd0eebe951cbe96ae115003c019ffd3d3016642b486851668d787f" + +Core modular exponentiation (Mongtomery form only) #719 3 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"4613b2987b1f395a54bed6cd9f16b81fa51d8589e1200fc41323272f19a0b92958350109bd876442a8ffc1152bab2614188e9b36fbb026be34a023f34e9dd4f45b2ac576079ed180dee6fd291cdc4effce07743b7392de9c81620cd3d5349799c27ee367896b4564d12b5f00048929a3a233916bd46616a9fa259f873cfb175a" + +Core modular exponentiation (Mongtomery form only) #720 3 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"08ff6fdcfc843ccde29c7bab25b5c45fdd9d32a9390e4de10ccc601dbe9412d012beb05236a1afbae1d99bc022685cc46882d635a01d2a1308d6128e40fc415cb9d4653fe9e8a7d939d9e0cf5ef5c2250e43c1ff65a657165ac726dc14f2259d1880659b89b5e8cf88b81843d181678dd4c965b79a08177b66bd4528c043f3eb" + +Core modular exponentiation (Mongtomery form only) #721 3 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0605fdd294bef13e94307289ab35206540bf0a36a79fb843682511016551fa99b897d044fe6feccdc4c005835bd06c48e99b4cea06cef8529322ceb21ebabc7dad3ffebb13fa32a7dca0a1d9c93cf521009ecea8914ff506197e5f5200aa9a0668f7fbc2821f9043a56e0d8b8b958843cb440529288c07333d075aa816237af9" + +Core modular exponentiation (Mongtomery form only) #722 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"7890921a7448bdab32aa424843ce8010ee83c1fb32d6a07e2f4dbe585bf25c6634fcf691d93b41733d48cece809e7fdcb4d8dad762b2d005d585ae44ac5ec502edc08262a809b9b61e5da3d1f93f6f630de4cdb56a7ba55d22432a33369edf2bf61c3bca726373ac804cbfab60db62d9fb3cbe91957575c6e24bddec9e154cc7" + +Core modular exponentiation (Mongtomery form only) #723 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"29e680d3931a2dd7d1f6b26aa8d2916031b55aaadce6809afa262917f593e5049ed45bc57e6e8db82de2bb86e281a30f8cddf905c06ca5cfe1c95f970b849b399e8ec52422e70c15d32f5efd1d1bd5d41ba6aca7bdf84f94d4d9e9090a35f38f154659224dbc2255439b0f2f9f3a334d61772ed678f410ab4ae5508576556120" + +Core modular exponentiation (Mongtomery form only) #724 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"395acb8fc952259a02b4c2624be7a893f4e96af0317e802cc3ff3dc6d5ea76de63008403ebee34440b5d8da7c64587db6f8e8a187778945f4b14939300b5178a0acb0ede421554790a7f572f3378af4b335a7f5a29d62b7e80c461489e83de1f948ff916abee8bae5a3186d2ab33ca7594dd9795b2168275e55ffbe9a50d0863" + +Core modular exponentiation (Mongtomery form only) #725 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" + +Core modular exponentiation (Mongtomery form only) #726 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1826ee39ff1d6010e8de749eab208337df68b64707709e26f91f278b3785ac024b610889630dcdd3568719d6e7419eb9e9867c0cb2e306cd49467dc1763eeb75d1d04297dbd9a0d276e33a25671e79e135536612f5faed71b3a1c977229a949cc40b2fa9df9caaf6a23ca73d38af553b8b7a6e97ab0eec09bd4d83fee364e90a" + +Core modular exponentiation (Mongtomery form only) #727 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4d12dbb2a99afcbe90085a98909061e31cef8e6998c5b7ed3da4b56467ae30627a2551785f56cbb75bb26f80c5cd8874ad20646680d7da5182faded776591f2e53dd0bdb79f62ebae786a8e287bf71108fbdc4020784b3a350cc7de15f44044d39a39df09a27b8baca0e21c9e4a72d459dd6fb293aaac3be5b31fdbb53b373c4" + +Core modular exponentiation (Mongtomery form only) #728 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c057eb2197e23f6d8dcaad7d58fdd841f75d94188d66d5272714aa8e97aa639be8ce209c518dcf3477fd6861f1a81b6f484a715df325b7400c460ccfc762e552200540ef572117b6bb29533ac9efbd942455cb3264ee4b2b71293c83814249861df672c8182247bda99ebe4c13c8bba85fafdddf48c6f6dba8d4135f9218f71e" + +Core modular exponentiation (Mongtomery form only) #729 4 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #730 4 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" + +Core modular exponentiation (Mongtomery form only) #731 4 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4756e186df034ee9d77f512da8e030129d5ca8e7b19a63a083ba5348e1e61290ca798823d8e63afa090eea0c740a52a268cc5b4d84fe34e85b310616a6b731f92691a1547cf402c446e23a90a790a6f0d38bea04da92a110c494078baa97683c544aa3e28d11ec95a837a14b4df654ba9ba5dd1240b485cd65f8037cba759544" + +Core modular exponentiation (Mongtomery form only) #732 4 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"541fde2f0733cc66425d3bf8ebf25c4b63b745aa5c17ad16e24c37b3f94a31973405cdc461a46edb0b1600b26f903511c20871c6c1058979d7b9bf0eefff8a64429a9a2fc6dc3e67b8add396a6a370e8f25d0d6075383f83e8f11e8f3fb1ffc1222e4aef21bbcaf7b6148070fbbf3d8d5cc625bd1fa7eab3102c7485f32902ed" + +Core modular exponentiation (Mongtomery form only) #733 4 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"8743d0cfa7f5c257edd4e725f83b0d2e7d21b8b5060cd2f05c93c96056daadb0da36e446849d3e5f13325b4a5da7becf26f8cbabb122dbbfc9dca2f01520ec10b2be7d9cee7d2cf57fdc37aea2ee98c96da19acedfceb9507a657a9d941c5dd459bce7217463447fed87fd07b2e2e0d8614748689b757e49b8fe38aad5f6b991" + +Core modular exponentiation (Mongtomery form only) #734 4 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"741db29a70a8ab9782d0b13664caf866013adb2c59ad4e6eeb65e698c24f71099c3b23e3a6b540c84f7d56f10d9e9e8a2773f5195cc2aea18abbb85e308afc2b7509a555000fb412f627b3a0960a5e96f421c8256d164236dc9b87b64effd6bef6fb5d1345877599b6bea50b13cb41011c4c79eace43ae1a7a68dd0dbd09fd17" + +Core modular exponentiation (Mongtomery form only) #735 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"31266c1e7d2fb6c7788fbfd853472b801f507db5f381893de511b89797912bb962fb1c006b133babe0ea186a03c950a5937865c258072b64fbdac2b603418c50f0f4adabbd69ef5c076b8d2fc05c4d091b543bd09041f660faf10adc4138d1c09525a0df2c75bf9a00887cec9e55419c10f45c36e68f71c3736e88ffca21145b" + +Core modular exponentiation (Mongtomery form only) #736 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"879e4fa4b7a032cddde3036241786667390ec44e1d61578ada1b1aef5cab537b70749109b8ef86832b14742db6d7ac93d8887f0cdd6471c7c45f6201da290e807801bdfec29e8e03b74c06641f62e3416d5f680deafc298e08a7e066af90e0d9536aff4b7acb6fd9593096060e4ae13c676c0d80b61b1006d45ae4f357e03830" + +Core modular exponentiation (Mongtomery form only) #737 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b2b0228401289fcbdbfdbd06f5bd4af3ed1f7af9d996124f84070e047b739da69a2bf1699a89850bc33ae43a304700a78314190fdd00fd250aa8a7a1727a51564b7a7467126681a4fe26acf72eb1b2b5ea855b3fbb9d2ba8ceba943a0e1e92d0f63e8ac05041ace452d8452a8fae1d92b47aef07dbbcd49c5269b873ef0d74aa" + +Core modular exponentiation (Mongtomery form only) #738 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" + +Core modular exponentiation (Mongtomery form only) #739 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c446bad7273bc6750c2d0f46a125fb005eb870e3ba91d99b44c7a0b7e5da5a8c6fd05f7fcd536fcfdabc0eca29f1562ac145f5843f03f35b71dae2ba972aba865d59f90e6ab62248f6941942fa23c53ce294778b16c9af73585cb20ec0a1a52cbb1ea0359431601f6cf0597df8f10e820d468eb21d25531df451e7ad2a4072a5" + +Core modular exponentiation (Mongtomery form only) #740 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1fc72af641427e007a8fa2c96e5e19195e705aba2327e03068b97756a4dfc3b904d1ccec1c0d74ee43a51070f25e5d0f8b89b6ccffb3543233ea07c3bea4994f87f81778e77a5dbf30efc8c80adb51f8d89524800753dfd0ca4f3f852da759298e1877a6142dc2f3f9ca7aeac3521d25567c64f162f594500f6d9af8e06d3c94" + +Core modular exponentiation (Mongtomery form only) #741 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2701962ca402564a3ed47445b4adf9480527de836607c9f2f75c3bd5a0c62801b2944ebc234996d5a5475e0320934445b4a5ce974fe240a7cabe762b49fd8bda0b42ce27846ac1738a6a8c6a3952a2e181f31b2b3e36d870dc0ffedc15a78268588c4fbebee0836ff2c7b02687d28ddb5f534b59c49a68a809c2711c94f0c0e1" + +Core modular exponentiation (Mongtomery form only) #742 38 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #743 38 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" + +Core modular exponentiation (Mongtomery form only) #744 38 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"617068873fed6e7c8b57cbd2d243da80b370fe8352228501d450fcbb99199081bf95eaba895f72e728450c33cea47b088c6a2258770d853aa5be97f296a0af29e62924798d1bf49ea027ba668cd94387375b797b4a56c9505abae0f6dba95c33df26fba80203c5ff822436eb7d911cc95d9316454fd872137e7a5120454f24a1" + +Core modular exponentiation (Mongtomery form only) #745 38 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"174c27a5a9016f609153aa1ba2d3404061f4c3f2c0ea5218bd2606457b5b023efa229d64d817f22f282200e603d5a639f7e4fe9c4b4c52a78999d215edd0d4a119de2dfc2066ecd59b95624bb1bd408c6ccc42186a0ec96a7bdc402fccf22b43dbebd0657c11e8e1b49d83a920fe0b3b9719966881e6427f5ad0909125085987" + +Core modular exponentiation (Mongtomery form only) #746 38 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"6142bcb23b37c199248d019950dfb61b0326a95fb556ace654a2de95a613e9bef4507d4d39820c02308e45549325dbdef321cd9486fe57b89b67dd06047f123b9a928c5a08cd02c1b78af88713ab1d99a5bed52574ce72d01ff40cb854f3afb701abfa90b4a3852601b8b095cef5f4daa2b10f95176180ccaf6a073251c3a8b6" + +Core modular exponentiation (Mongtomery form only) #747 38 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"513a59191b4846de70c245b1a78d3cfdf93e5e13bccf12206624efa86ba02c39f5f6e681f001ff793cf0be30f6f764f80b8980a65c4e6a51ee663fa6b0b66a765226973502cd772d8dbdb45bee88bf4ed2e17e6a39668562ab674ba8cfad3373db197f5e1eb959789cad5509135b656fd1d8cb7dce79f5c33c97fc6c929c5be4" + +Core modular exponentiation (Mongtomery form only) #748 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"20ed4c6c9a0795e62904ae769122a3b1661d96deb7f2b3c77a9c3c99eb7ca560d5e0102dd7c0b7a3a667df19e6a3618e0de71e2d17a374acab7aa3fc6c8bcbc621aa53798f519d0791811bc5c9a0be1110ebe3dccaa60499bcdd519972054d2d8087ea65a8c552b79ca0f0501a761235cc4a99161590e196d8c08b4308754581" + +Core modular exponentiation (Mongtomery form only) #749 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"580a99e80021827a2b9e1b9bb0c36ec8ef4f822612716e286c16ea7f692cbe77f76a0903ef0964633576276d0a6a4ede743104dfe57e89bc7778a161715649741acce5595be5d8fe3d63fd8e821376b0a50ac0a170ac8d1e883f496cd4f1cc32d86678837b8567b58d7fe284aa5d524ddb897879210c78ddab24fa1a7bcd01b7" + +Core modular exponentiation (Mongtomery form only) #750 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b0e9e5c2ea7a63a0fbee262e82a1057b2c14cac57acdd98aea18a05c131cf7dad5776ee445100d9d5a8bcd355747634c789c35b096bd0f7b06bd73ab425f1b260788de9b1727d4d1fb216d6292bd3b941f41ec0fa250bac2cfaa7b0902f1b16aa5e406c33ce9823645a7d82425236de812964ba66735fb8e841d8527048728a9" + +Core modular exponentiation (Mongtomery form only) #751 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" + +Core modular exponentiation (Mongtomery form only) #752 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30d6b3733ad5bdb53585089266e40b8102d73754ffe5ec896d7b55da6bfa9718c4d06c16fd45433261ee2b319c5a937c2992dcad9ea5d341ea50a0d1ab58bd55b4c6476d6349d47130bccf51008eb1b5ed293dddb731ea8b9fc15a0d91b3d14a40915d5ca409a516e8b208c01a5a488fde5e8bfe5beb09d4b94c44396377e5b3" + +Core modular exponentiation (Mongtomery form only) #753 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"522d8aa7f85cea778d88aba80a82be7c0a5114a1c5294d9d8da9956cce80a4c4ebd8dff9c8e9900b0f722538a3c4c5e321a58af8672b32cbd60a1595a0d9149a5f0bb60603fdc7059bb4b80d5c9b68e2ccb58caa838dc6a54807f674d319b7639297c26742beee65220af51c52d3c2be0ab72bb0288b13158eb5d15c62f0c996" + +Core modular exponentiation (Mongtomery form only) #754 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"25b8bf1d70ab07c2b23225ae1e14dfead93e29a87a67b0175a552e68855da211e2434f6695f0c3fd34337b8aa04d3257a92204aa3e88251da184d259617f4da06b2e8286a811c56e71e6bdb319f13ead496d51ccaf4b37069945fc426aba22d5e953afe84cb3f6d840c56947ea7c00cf4687f92fcb115169721d5f7c4b86c4d7" + +Core modular exponentiation (Mongtomery form only) #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" + +Core modular exponentiation (Mongtomery form only) #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b214e40f9a12ea08c297162e39d5f53cc30ba12faf0a24d5c76f1209d9f0988f705fffb836afe9744526e4e4ee580559c5fea1cdfb0b9420081c8f58372b6447323a7fc6083673dc9daacf146013c8e7f318a511233a815580ad618b2fcce2d4b0b5831d76ab57bc20d322dc7111f66f651887fde7376c5533b1665cc4c42b4f" + +Core modular exponentiation (Mongtomery form only) #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"312d7ad92c28cf4af470b28e8f966f3edf7fac85d85d509b17eb8c57404429e2c29e8fb4ad41308aff75feb59b3ae9a7c06e6b4dced2f69566bd591d1df0ff7d280b706ed7a3ff238cc9760a744fa154a9091ca23d0aaa7906d4d0a29607f0b42583b114daf6d1d718615acf130d331917ae8f825e2baca72faf48596fb5d1d6" + +Core modular exponentiation (Mongtomery form only) #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"69530dbcf2d34f935f0d78ea5742ffc894875828ada9cc0f4f0f4ea2cfab0c538a9d12f0407ebeacbaa3ce183aca1a11fb8f70a1934642cf9847c96b6bbe1bc7457ecae9be9d581a42850153ac19334f67b33a577e40438a06b096e24624fd9d561df14a892f8656ddd8c9c0cbc819cdff862a0560124d0fd8a78b52ab934070" + +Core modular exponentiation (Mongtomery form only) #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"63424747ff76efd4b659899117d3348753c1ce6212cf170946b76916d53ae8cebcdbc3eda6f262f230ea4438b6843731f73cf3be4bb821119199c4d96800b51548dcc698b13ad65cb0c30baf8b926c81796a7b5b826ede5b56dccf6efc515ba933f7e6ab9506aa37bed81803f13644a1ceb8ecf8609dad947e1bab99f0c31cee" + +Core modular exponentiation (Mongtomery form only) #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c244430923396e32ceb566e1926cc56ee7324158a56edce560f852b5ffc1d778d519918f37eb59de04ca98214c6a28d77a295107809f1987baf9eebca232398b3c5d5a7bc50ecd166f58455d287932cb244115d17e851e2ca4145989faa5963d1be553037f601f9a26662c6806dd79b0f18fe8ccac1aacbf9ba2082c93efd6c2" + +Core modular exponentiation (Mongtomery form only) #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"462796e4e7a4c00418dd9bc84c9ee3a6ed868a69ca069e8d0d5b3880cf3565dd4d6b33a168dae04d0fa53a2e64f06e9afee4b8a1e6103b4e6cf2838ca05627832cfdff974a4d82e7e5a2d2e0afec9924b84dc75dd52714755867f51c2ae9daf450bff7218ba9596f99f28afb317a4045cdfaa275768ddf7281ca56b7a90af565" + +Core modular exponentiation (Mongtomery form only) #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"17e2bf7e40581448784801bd63817a72514d6f0d031b6304c1b5b912389fc361431d5fd80028166db19baf7917dc0c2e67682c5b1167cf42509c23e024a70b0355a11fdd0fc3721cd1096a85ef43b9230d30eb2c0e11c73696c9226855eb1216c2c9b4a0f33451e3a1bdac2006dd6d0dc687938afadae319c6eba45851f855e8" + +Core modular exponentiation (Mongtomery form only) #764 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" + +Core modular exponentiation (Mongtomery form only) #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"5ef142cf4d792c99cf35a79c859e23c88da85f82c3c0502b23921e8338c5f58d4c8593506d6224204bbb0540c60ef5ff57fd19d12de7c8bafb649fa7cc25292414d7b0fb359aa9853c5a94cfa5281524859d5f43b0281207c9ded85328f6a822bba20e29b5f3c00c881b649b9e04eccb1f835c9a465dc721700718771ecfa7ea" + +Core modular exponentiation (Mongtomery form only) #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"7eccbd086c4931dc5d5550d1da610c9c5c020949ac7818318dd3f513bda925a483acec2f93da28262d79dea05fd8f06e65b4eac27859d59cdd9960c8a76e4c24359c791cf5c2c5aba4d4c0eb9b477ff6e58ab8cce8e93e96162832a5db5a6d3a0802a6ddf1bc7ee060bd3588b971dfb88ce482b65ffe39379c3972c18ebf8b33" + +Core modular exponentiation (Mongtomery form only) #767 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2e10c5c86dd6a11ad888df4c7c5c96fb73472263f66d2d01e28b7f9608c2f4f42c83ddfc94e8fe369e298837636926e5ecc26cb3e8443774c2daeff9d171d08e59268a3f4dfd3f01d6cd8c9e5fa4fa533eda9f5f7f654ad7627f40768b95fae6eebfa45d7026c3ac67349cfbb05486c118ad9128b106775aa1fb10011ce8abcf" + +Core modular exponentiation (Mongtomery form only) #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" + +Core modular exponentiation (Mongtomery form only) #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b6ac736a50b22d480b6ab4b3a8d4d0cad04a583327cd78e88d870d15aebb35891844ac3c4942ec9b8cd8a8cd55c09e370e40131cc5c5e2a01b50b835e7e96d3c7383018e7cb9995f9a3400d89d11c595ff2e3351841af3b1fffc6310703ca0552981d6e7e21156647fc5d46f1e935263af72ac469e631ed152cdd4c3d496e9bc" + +Core modular exponentiation (Mongtomery form only) #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"15d9a8a79a59ecb2583fcc227eff730d9f374aa815e3a9166213def7e54232f8b6ddbc1ffc9a0e7d74b0b2d2b160368c997263b7c976f42d4f69cb5b2a2adbf1c7778fc99a2d9ddca8a4aa725498174f6398eaf921539ff0a1b728887bb86f2aab4393a4c0b137e519979183b341c65c54b5ff7898f355228c66a170eb9e8191" + +Core modular exponentiation (Mongtomery form only) #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"ad4b82ca454b3161f2a26c8bf3962c6b49060cddaae7fc0940fd4416d7cb0deccf8d91a9361ccf7158176e985d9bb4e8349bddd83a9afa57937f00bb72e9a76c4c59f291f754f4a707f04f10485879c736956c02a8dafbc25c2d5151101ffab725b383d65292fbf55ebc873e0ac37f989c45c7583db97f5240f0b9ab16c57857" + +Core modular exponentiation (Mongtomery form only) #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"3741073026b11d7c0d34a625b78204f58b11c1d4af72cb9ee1ddb4545b8e02430c2428a74041f67827fe4a73f1bdbafce3b06ac00755adc18a5c0a2f8ed9834e51e76b6ee87568c8ee1a0f51cd5184c852fb6748a10ede85905c93918618c37db57b1f167110ca8f90bbf8f609a70a9476303991ae5dfc714522c8297d1ba5ee" + +Core modular exponentiation (Mongtomery form only) #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"7887531f107c383042b5a8749317f4042ab6d2f81975a8a92a21d6cfe3bd4c78050d400a45d11ffb3c6bea3e00c7751d8429b900f5c04fed70e9a5227328cc54db253c537763673a81d18fa30c12c95f268b5c53aa51f71201b9022885c9f47e9cdd009214b56db3e00372615362aa257e05de1588a207383c1451d263fedfa1" + +Core modular exponentiation (Mongtomery form only) #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c03ae3ba7b23a924857dc33251d6cf4b908ebcd7c3c3e14f9e729d86b4eea413c5eceabe30b08b4f5f38c53f3b5b8fdc65b72cc6ee5e0f85396b2abd6d221baa3701fdf6ff8bcefff7e0d0904379cc77e1d516a15b8078b0a5d6cdf9e3298af925425469bd0c77147ac45fec43678c97902f67ffc77dbc8e075d26c23dcf9e21" + +Core modular exponentiation (Mongtomery form only) #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1bb2f228a3abcff507c0b3b1afcb2a11629529abcc4c3da5dc2ef39f4c24dcd04226eaea240454774532031b1a7dd8a01fea6f1d4c459dc914fef02169a0d67e2b773099cd527cf5df2c428bb5c96ee51a7b2e57b109c8f86dd91e3bbcf6cd063ced63bfddcc2668a084c0ac31f79ac73907d46fa6e9bd4273287b254fb38fa3" + +Core modular exponentiation (Mongtomery form only) #777 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" + +Core modular exponentiation (Mongtomery form only) #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"58c582683e3fecdfa274f7b4e09bb36853583ebf38113d596b34c2ddf1dad3350d2b241a02fc674e66b8514344b8cd571fa541f741d75c97c5c20e17ac4832136a5ce78714f5ff350df6a4820fc6d508bb3bef6a0349af85c4c94470d11a5a7b8e8a7af7d8922dc139fbfea426729cb22e8c86b05ebb48f85832ad10f0164aac" + +Core modular exponentiation (Mongtomery form only) #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"9b7e69e0c0febabfac6867972240a7992a258ad5033d750f4f87d36507deeb1f924379e6f348dfacc8ea892568c348c856281cf0510aaea6ccb1debaffd418f5d71bddfeffc78dd919fdef1c6a6add40f2cdf01d57a3e1e70ae5e22d8a750b8de5196966068cbf5f83a30e10c5cfacae8ff129d58c95bf7f5296bcee1dcf16c7" + +Core modular exponentiation (Mongtomery form only) #780 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4edf10985785d5faea4a86eaedfc527c8df7ce19e9f8f723b3757fb4d8426831b8ec68c9fe8f4f095280a78b678c0a276f640e0a72a62593e222941f9460c020944fef065f0a0a8289b2d1fa01b2326782f6b0ea7528bf4714ed99153546b2154180965ce14a21d9452ed4a5d6278e9235f361a0b228e5b75e9ed5623e070074" + +Core modular exponentiation (Mongtomery form only) #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" + +Core modular exponentiation (Mongtomery form only) #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"1cb03e73b94f132fd5a153c2b49ce29fb1731b8bb59fd61085092c7640721c51efeb739d23feccebe4e884c0de8f4ff80da01079a9837b5c06787d8f86cc7620f7136f5cdd129858cafaec6c23643014fc78130eed9e3cc78f3c9c026e66a9f3b1dad91dd257c9f72b0015ca88f670ba689f60532e0bd3c873bd03d9b45dba32" + +Core modular exponentiation (Mongtomery form only) #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3bd7cf2df89bdb04b96e4f1cf709be63beec84260da297d70da931dcb06caf78a94d2ead2908986510d3217779e9243497f66e6f772a0b462fd894eff3055eaca91992cdb1c1e5bf42fad82de9b33afadfa35405e8dfc9d6a0e0081f01f61a5e7e355d0f3d3fb6bbe0ed36a701602b969ea5bce20e14fb911ab6c93585ecb585" + +Core modular exponentiation (Mongtomery form only) #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"48d37b1c11af0fd5abe1769421f787a37fd1181783259304fbe40601e1bea7c09e1cfb97c7a2b05b714244274819caa7c3b3807eca3826b7ec5cfcc8f8e282255ef7b11c18e22bf196bbabbaef7f4d21c5534bf71f4699d6f81eadbd715cfcb2f063a72ca5dd5f131b32cec3acdb3d75d69aacb7932dd45c3a5cfddab4bf76dd" + +Core modular exponentiation (Mongtomery form only) #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"10467b6b357c34a4bdc83c8e07adbd32061d3f0214e563424d3fc4971eb3c91343ca1e9d67ddcc34d1bb59bb6aa9903e56af890e7c1d7240d9b05120512b7333920ce705bd328823c41358f0f15d63f5e00b5a433813a3ada536f0ba8c4ec0d28bb7f0a9559887e89a882430c34fc65e24222577812e9eb5f37b61b2fdd6bac5" + +Core modular exponentiation (Mongtomery form only) #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c8e10c193fd05e1790e4392a365d0779ffd604f0d3dac7627ddd5bb6f54a6966479f7b26790f039188ce58aaac72d1788b06455681a38ef710ad1014f608a02af5c7f7e8d73d9825efad53550baf0dc39edb0af72f2a9ab4968cc7addcc83d110bd16db939223bdd0084eff1255789b60cac291acd573e9ba20d8b35e23930" + +Core modular exponentiation (Mongtomery form only) #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"89e098aa0ef8e1870d111e40be6c47f117120088eaf1fd3857d5dcd53e9ba4d13af2649312d19ab4f3bcdde0a4bea3edb8209a2198f660ac082d2d8e4bac140682963207c29b888470eecfc7d810849469d1d3e405a0762421df00a6b8bf1a1b407208ca45a9b1da3be9b215bb4dd9d4abefd98f1cd8b0f35bc5c6f8bc82ab23" + +Core modular exponentiation (Mongtomery form only) #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"47c7aad0e6f637c7abe1c6f2b665973fb678031370394c2f2aae539f54c3752f423d47a0dfa88735547a6de06cc72508219f9429afd01b8c7d8e9c40bd5cd21c52fd5b3286ad0addc530bdee8015fbb203802883ce398c99250390977e1e035c8fd03d65c49755a401b0351bb7020810873343621ebde1d367e280be10f68874" + +Core modular exponentiation (Mongtomery form only) #790 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" + +Core modular exponentiation (Mongtomery form only) #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"7bf96c6477bc94ec3f06994fa420f35fe8f04704aa16981b74ee66bd75c182c48268375f2d3254a082c8aa58ff4ed43a718553dc66a94d8201379e23179730c41c685e0f77eb270c652ed0234eba3571097f44a8dde80372589c7ba4472f06a26bfb907d129b5cce787339d25db259b7a82448cdd8fdcdbb5afe3ebbe06977c4" + +Core modular exponentiation (Mongtomery form only) #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"7504ea24f8f2dfb6827705496843e1fd18a6f7efd3fcbdade4eb94cc5083b2c8c5c125fd142db0674f34249ff6c243d58494c10ef4b762cbcacbc6300bfa9bbeaebd68262208f10a865aab4dfbbfa6e57bd07bbbbe46f13dff28a402051ca25853ca0e732aa85c5ebda1a95d1889193efaafb262b4fed8bde88e492880a80e03" + +Core modular exponentiation (Mongtomery form only) #793 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1f2d697ca9012b0eda047236c8f2eb690c36711bbd05739437fbe752d2c274c49f0b72182d942dab4d143fbbbee73296d97698e662efcfe072efba5ee6074fb36b3d71c3f8c3ec6ca140920b9668dd4103cce34e753592568bda2ef00d1e7cdcf6fa2fcd602aaf8b21c4fa8aaa6db37187d2bc846fd4f7d87a189584bbdba0f8" + +Core modular exponentiation (Mongtomery form only) #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" + +Core modular exponentiation (Mongtomery form only) #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"9f781cca75162c2c08ca687585b01ce2dd9f4ed64d82ef48f2924dc4e424b61ee371c6b4bd95acb5530c8f1ea3031e3eed657bf186e12680749f7c8a1c93689090d84e11390570a8984ff0277f2cd463e64396e90661482e0df7d92ebd23442071ab88573e84ece57449e0f953c6e55e5d526cf08c715b317ea42361e93e3d56" + +Core modular exponentiation (Mongtomery form only) #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0df2ad19ae65cfb4b1df1fea8bd24994da5f46a1b749cf87cee4bdcbb2cd98ebb86b31891ca1631fc13a224f4cb93352cb1586042ee9d267c4046bd337ed541e4c284576ea1fdbbba61c567f551f2da77c791a3d05cdaff6b6727458f0ba699a43ac5314422a5899bad4379e4b739115135f25f44d75fd316877f2bc78a799a5" + +Core modular exponentiation (Mongtomery form only) #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c1b84b9d5e77d57d55a74c298bbdab6e544dde53ce6ddc5c4508bcfb6ee2130b26f02aa0e9280a596cb06647f5687c5e64569cc5113710de23b1c99b18060607739a9ac020b26a43d2d117a6f32dd049a38854c408d8e174c7613ff6cac7eb798eb1a37510aa0227a832074caeb0d300b3a79752831f322f8a27c76d65fa3fba" + +Core modular exponentiation (Mongtomery form only) #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"8e9cd4ee34586c9573e851929d24f405dd632c60512f8b6f3d99c34cb3cedaaeeadffeb2caa7e41f10bb9fdeca99c1daaafcc86b9aaf84b67c60e377342719ea2f03d15c82a1a5b4e9a098cbbb9b457158969e4340f0a477d0c8f9176554da169312ad46f94ed63061536c5fed82db27d5700673a7c9abc949f4b07e90ae1aaa" + +Core modular exponentiation (Mongtomery form only) #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1e6572cd5ab38f8cc401a0044ceae0cc61bf804b9ce39f31eeee117cfb4b319149ce579d0b9edf0b6e19a58fc144e2ea00ba4c4bd209e603e1d621732968e4b925496f64cd55962972dccba91759c3a2a118c6be0f5ad7708fa60397cb346f130d8b1ef1f41c9c40cd82885eaf8ce73fd4890883104e9f92fb5f04d495b2c7c9" + +Core modular exponentiation (Mongtomery form only) #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"34d470ea30243874e3d9e73528d9b4c61202b3f2edd5d9645eb1ee67b48ed48486312cca6d6d13580035f884fb2a8a5a9072cbb43471da9ed24e0cad2c1c84c8deb2f0ceef99bb389f681677fa39bc8e34376f784a4a4c1a699632f8c68b24c4f264e59bf0f496f4f28d8871506fc6a666fbf4314be5dbd4b5b14f21933f68e0" + +Core modular exponentiation (Mongtomery form only) #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b96d1991664cc70bddd620c8bf8f32a8fe13c77841e0db519f6f8531828add88e0e14030f772b60d90df2432455a999e84f16424bfccf3d62774940bda672016df90cde178fbe78066582f55bb7e82d005114e30b1be705839ba98b175ddec8e8920f487d5f4c99068af98998835a01343e2318caf4bcc2b08d9f6a9728258cd" + +Core modular exponentiation (Mongtomery form only) #816 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" + +Core modular exponentiation (Mongtomery form only) #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a94cacca8d462e4d353ddc5b2ef00abaaab1c4489c24f5d10cf8aacb9db5dd74e22d5e0f27a539dc3c917597792b93d5aa6534d5a8e8bd0d18fde126388fcd2b5cb925d346cda1b926ac55e32b0c67d06e4201ae9b6fbcaebde5df8b98f421d002909ba7de366b9214f63b1104afd8f26f676d535a8fa57199276d9a7a7a2370" + +Core modular exponentiation (Mongtomery form only) #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1682a80fbad1e9bf672066f0edc323d5bc68d9e3e475360f030a535c4bf848d8cbf2b437f6d488e644265cf33508f025d9c1041585dad65efd2e9bbad9110a2cc538b88a0dbfe850d41913f0829eb1068b83e38ff50c5237b43aa9d20bbb59c4c995d98ca23d0fd2801a496b3ec86769fb75052d51696b838fc9bb9666b2814b" + +Core modular exponentiation (Mongtomery form only) #819 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3d4990aac47924eac62b02dca879b083ce621dc794ca6292601fb8a27a1f1ff818a846a16b013b1461f980ee523282e15f4b29fa8b0a2814905b0df757187fe34fffa8e748112b8d917119dbefbc006fa6f253d1ab15257e55d8745ca8013f5aa75fb7f622950453985021aac09085df3615263fa0d396e8fd503e0b1557c004" + +Core modular exponentiation (Mongtomery form only) #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Core modular exponentiation (Mongtomery form only) #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" + +Core modular exponentiation (Mongtomery form only) #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b31f6767b21bc40d07084d7eecdf63e4888199b4efed68e2dfb5c57a29c5b1d9091f6a2f9c82010787b247cc3a6cc306991ccdb41b51935720121d1c50efaeb1bddb99df0934ced3ac902e3aaaba96f1ec2591d9c87b8ebba671ab00756c36ffa14768f83394e940342138d85183efcc023cf99f58d04a0a60441b753a2f15fc" + +Core modular exponentiation (Mongtomery form only) #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"591a402256637575b0a602fdac9f65045ae319e57295ae5be422990f5027f6a9fad875fc6af7f42312289b26642fe4e9602cfb8da80c4aebb2ba6140f3a67b854915e18fd99fa76bd01942c26079bca97e847369ad8ec6fc39f49cd4f5a04255331aa38be33b328db434e6f261f68e867a764a58b4357d90081306683a1db56b" + +Core modular exponentiation (Mongtomery form only) #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4484ac5ce3be5ff6193708a04d796c9e49e19aedbbb3aa83a7693a746ba42cdd83bd430da51eaed133d5aa315d865cf10d69cbbaa3862127c223808b3c24766446e1595118cbd9bfa9d94246ecb897e5d4b4232e848472ca95122fabe58f108545a00be746734928a8bf98635ea7fe7748e3ee04d9a347fbb0e625e7e2e8f5c7" + +Core modular exponentiation (Mongtomery form only) #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0e6eaf76791864ac8eaea55a17e73e7f8519f52cd00c2b70aeb4bffd71bcf1366169adca4b78a40e6455a98f258e9ffcacaa5e6acf3ff3a442be465be1d0ecf2eac4d99d326a02e3bd179438bbdfa3886c685b5b928420f7ff1b539127cbf37f2dc5ca2bb2c5d99da9e877bfa8578069a7ccaa9286ba84ec3deb8b78303d1832" + +Core modular exponentiation (Mongtomery form only) #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"556a1d408f2ae4f88b759ac3502355e1e4eabae3190783d2b90488aae9855f7ef27f79dc86e5fb5cc54df361c7ad5664fe772aa8e3ac7a0f08a884cffbea532fdcbbaf87b42f9499f54d4c83cb347d431e5d92c005493aa02e741af0c0ed86f1c02fff30eaac069a4c3356c4c135c9ee82c4ea7057b0a75cee80ac229c082d5d" + +Core modular exponentiation (Mongtomery form only) #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"be1168eabf7ba5f5b5d247b1af4027da3f4b6cb2a3edddf9f8927b9b41e81bfcaa98a3cf437e8046bed1b54892cd2909ba741a6f66116a026e8584b212b38aec966f754b55ab8ab08f61d41c37e03dff2606c5de796f0edbbf274a817d0e3650bdbe111127f5fa3bd733e1282fe5f329acd5c627a864c4ff38c58bfa471c4656" + +Core modular exponentiation (Mongtomery form only) #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"181c049d630047f43ec7acdd918ca3888dc87bd7c98c031a7929f17062aafdc747e4ff957dcd41e79df6e5c3dcd9bc5714de94e7d4689af1b3f0a0ebf36a2a5c6bc69e060aa75420be558b1de1e3bec628ab653961d46d35b30c86a6b9b44154743547d20222bfb353b906996beeeb56ab0e470f5dbe509c2cecad76ea3378e5" + +Core modular exponentiation (Mongtomery form only) #829 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" + +Core modular exponentiation (Mongtomery form only) #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"62b0f7b96e049b69bc55feaef88abe5954a8d62074575a9ab850e303bea31fb27ae7ea35c743a5e54fbaf0e09b9c4e6e9a119316271af1fba6416cc6ba0df9781fa10fc615cbb652e6041840cdbe0d854947f7f1d563087c2f4d4a4c313f80bbae3ca4faab4f6bc8f1be4c08c416793451c86cd8e89797de6bbcccad49409b08" + +Core modular exponentiation (Mongtomery form only) #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"22eb3f4f020a07dad1c96626684b7d7143dccb084448145545464a154eafb8d3c9f5bafd0902573a5a16f5588d3324d16ced67f005920e150dae55917f7f5da877cb252f8fc8cead32a4821849a8808eadd1e0c5c3e21273e12e0308b3b35830b5cd9889f4deb5bdb9e1fa2b8068c8a29e1db10c73e983a656e78220dfde1d55" + +Core modular exponentiation (Mongtomery form only) #832 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"65acf4279e5bc194fbd6f729d3ac71b1837c5c31e923ba01755144bde63f002d0b56d3d9d752da5db46e014b703a16df844d22b2b914ad3289fc153215386020dcb03bee4e42822d91f4d32ef5fd11080310d91068e1fe198a1cc5f3f048d2c749a003a553f60f8a46a15c9627f4864940de5747599277b33d990b03cdec3cd3" + +Core modular exponentiation (Mongtomery form only) #846 0 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #847 0 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #848 0 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #849 0 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #850 0 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #851 0 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #852 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #853 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #854 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #855 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #856 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #857 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #858 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Core modular exponentiation (Mongtomery form only) #859 1 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #860 1 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #861 1 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #862 1 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #863 1 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #864 1 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #865 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #866 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #867 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #868 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #869 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #870 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #871 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #872 2 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #873 2 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" + +Core modular exponentiation (Mongtomery form only) #874 2 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" + +Core modular exponentiation (Mongtomery form only) #875 2 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"262954d0f692d0f7cb7d6df65ce8ec6924be94c9161798a8da4474aa7f6b734604712ea743d6b3376e135cb6f8f7d357623f0314fbc9eb11048fb783bd3234b191ef93a80deca63d1189e4624d4f121b4f4370b13ac90c1206f5d805a2d7da71572b9b2281d37fef010cb7ce857779a3da908605939514d83c34acc24be355e8" + +Core modular exponentiation (Mongtomery form only) #876 2 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd0" + +Core modular exponentiation (Mongtomery form only) #877 2 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"1a0c32fb0b0849f3af1c75d6085bc9f5abb1b680023a3ce8783eb7d6352a3685d83f19c524675373836b11891ec45fb25b41f1a44181ead2a5015c49959d9779423eed68d85aea31e37ce8c1c7a704f140a86eff06b42cd51ca8d4cc066d9af89dde0e45a4bb1c9aafac6c0cd6175bde1302da86860c686156ddfe812fe6cc1c" + +Core modular exponentiation (Mongtomery form only) #878 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"006342c5cb8b9e6349ea22991bc39b5bf81125b1f44e650541ab330ece2748808152be0be88c6968c9069c2122d1fc9387c8c2e1cb1ba2411dae9af8f7c793ddf52eba5629b9e527989ff8feb6619f8b8aa2fa9cb0087ffb384cd90add09ba29abae5ba81890450c4367e2b33c9549bbe80e01fa23b11ed8b08382afab433bae" + +Core modular exponentiation (Mongtomery form only) #879 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"50f28b6daa705ade934d8b9ba7ad73577eb07b494d32eccc909fa2f7a893837b08dec6765106e9d9671f985b3a4a72bdb166bf085ebd79226b209dcd87a56d8b2e679adf57de85a99c6e6b7580aca5c6309bb8bc5146a9b12a1ea1dcf7604c0e87b08b7f1bee0ca2a198ac694c7cd93e787af509ea056bda6bc6c43bbe6c8e3c" + +Core modular exponentiation (Mongtomery form only) #880 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"19f1cedfb44a20609b48a254dedf8041944906c198ed8b086c7330633f39b759eb26e80f73dd1eaed488f3a25e5f08075ebd9e9d41494c9be44ddb4fdc50f647702f3b5717d897127e310efedbdef37f694bfca4207cd98fcf364fa4759df8d849ca29cc669358fd73987673436f96e8e115adf45d8cc10fc0e738aeafcb4e8a" + +Core modular exponentiation (Mongtomery form only) #881 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1e3b04f1cd93471209d5db8f10e8c29aad891bbc2b58f616e91fdf5e0bbbbde42930a800d0245c0c9931801274ef1a722fa66457f7c92ac82a98f3d0665b7946dc284ff747c955a79b803a37af66e4f637d5c8d1f93a3815e3f6c2b81fa059659557c69f11c03bbb4775cf7352b9380b3c8c2198e419405ef318d22ca3a43129" + +Core modular exponentiation (Mongtomery form only) #882 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"342bb550c0e415e803227a7f8b151d78b40da2cc1893e269df507fd098cd832dc97aab6863643dfc0ca41c175f1f436bb98bda2f13f312d7f0b77c21c59fbfe9404aa3e66ffb5968143b9693bc5c12ae45fd71a62f656c881f548b8c10801603da4c40271ad5d19dcd764128c99a7570f955d0f01b8bdf25882f769b213c02a8" + +Core modular exponentiation (Mongtomery form only) #883 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1f699d53044d0af1e1f7ae95aa88309ba0284f2d588541d7b94c31c69aec2d298098af610f969c7952c87ee5d62ddb9a3740765a6bbf041ebdee8932188a6ca781bde4d5f7649373ac0feca06154590f7f9a3d53d55a1152a7628b7d191e313426c1d0d327064eea6990a0e95f8bbbecbb9a47dd03564810ec67308c99f65726" + +Core modular exponentiation (Mongtomery form only) #884 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"52e7ecdbe1cd5b9f770e4b7b6f5251d7e7b301e5329a1f0d976e565ccb4e4042ad667de3d185ac1b50eb5927758686eb96f33c47ddb27642b48796aad3372d255ea1b25236c18f38c7b430757b7c840f6e48b85641e0fc53755422cea55c39227bd72adf1ac525bad334d7ca768071c25d0402913c46639c84ade740ea861669" + +Core modular exponentiation (Mongtomery form only) #885 3 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #886 3 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" + +Core modular exponentiation (Mongtomery form only) #887 3 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"2aee7f6b15652b16c4ed1bb5288609f64956676238da8bbdf58d033fcf58e1aec4ff547c2c51899e5bd5c84dd816cdc24e86e3779b4328732521ae7434d87b47c42d861d0faa3b04b3bb20ee96f8f45eb92bdec762222d9447d493065732d5bf82110e86d20defece12e4ec8562668d855e296c64607b77343bb425a955fc0a5" + +Core modular exponentiation (Mongtomery form only) #888 3 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"2d0d371f4a759f4ea1ec8d09bd7127bc92e07c59b625f440e9bf394688af1f2f39d80a10d272e452b8177cc67d4ebcbfe501f5325c47387a24eb0857711634095d47e328da3de2a5fbec76fa88237ddd4ed1165d88d993e84272a21341b6d5033f2a520b3b929fc5ee40c956f2ad8a452ac31f3db83d5c8d785ea397d89e102e" + +Core modular exponentiation (Mongtomery form only) #889 3 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"33695e3be9a6fbf638eae1077c32810f6f7ebb402e082dc9c655db5ab4b1d7b098622acec4d6f46fccdc9a306cf689b8a8732a629f53688f2447160125cf5e4e2896fa4c39f8d989d480791e5ba31a590fc0bd1ffcffc6e4324ccf3a0142d2ce76761c987820af5115783902c842ee8ba964b8a40ede4bdc1648c74fa258fec9" + +Core modular exponentiation (Mongtomery form only) #890 3 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"36d43d5b63bfc48119315b5d8d7ba8b39ebac665c1ee13bc0c5d802caa27e67bc66fa31c8e363b19ff4fe8ead6f1483c27d1ee98a0c83975d1c3b852e04aa70083fb4e4cb5c491b67caa94b5bbeac862d4c59b36077e896099fd45b48c81fb07edf8dacf5c948f14bb2e8c807f08ed5b57159ff932475aceefbba2f307141c9c" + +Core modular exponentiation (Mongtomery form only) #891 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3dfafb606825a6201d60f326491e1d54ffaa6007da16ad46cef2def4609a56eeacc66a4a430b91165eb5ca28003aa2f852d7fb0db0bcf8bc1d32b1305df1eaac4a8a86dd90c8699d3fa02e191fdf0f8aa3d8f3bc221adc727a0c58fcd68d5bf0b5b20c0b800ca656789b4b4174b8fcb75179e9c1983a227a7ba2869164f4c931" + +Core modular exponentiation (Mongtomery form only) #892 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2bb6924cc0ae607e7c4d3781b22aea1eb517fd825baf7f12b42261ae03ecc3cba6d898a17c9c198bcca9b7b56df5b6025500f0ec90cc3f175a1c2f178c98aabbb4b86b43c4c1b4f58265d791d35f9f86f5ddb8c6e537ad557f0374426c97b5d526f6d7bf231c4d7325b9c3f7c4dfc2080b19a85e33f0c533c943414a9d57b3b7" + +Core modular exponentiation (Mongtomery form only) #893 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0ed03b624ed6cb133ee6ef7088922f2b4ce944467b329ce90249ab615c5d5c3724f315907579bb5b727b7e5d9af1914924067e7ccecc246b38081ee493008d8f2b5f98cc44d40d8eb6045bd3df34f54004508ff82c808871d0dd68fb42e1c532ccb5ac51c6d3eaf6ebad4f838e5c08625175cb118cf031562f6f5685cf9f0b53" + +Core modular exponentiation (Mongtomery form only) #894 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4af8b52a974b58b4d27ab5fd013615d2c1111b2fcd896a3c2f0f5b99cc0c803e6ee75addac7905caaf563aa8ff831cb4bc4f4e784df64faec67f8a356a02abd4e2b0dce8f403918575f6bb7afd8bad229a0a9b3f7d65219b17aa2841ac7e5c1a36fd7810316dafd28bea42eb769d5e1fc77361da9557fde6653a22f439385387" + +Core modular exponentiation (Mongtomery form only) #895 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"432484cc60578c91c2422dee4cf92c2a2f26b7c59c5caf3e9d6e119c9c47b087a3e6e04360a43e0658019b90806185c1eee345d2eb332b7b211d98db3f4f2909a68c6f7e71762b70bf29a3ccf6ff24a72ebbcb663e3641d8703ff62398ba5b6a62f8b568c62f2a548ba206c3732b6c1279949df5742e0eda8a62baf90b2a4660" + +Core modular exponentiation (Mongtomery form only) #896 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"158d266f0992a03eb3b9814b4fb45a825a95b891c9cc1656658acb5d0c4f0a6fd4f5185b4272ef1f82205eee49690d91e3f8e810fa147fccc7a6892165c4a5d60811e0d19e5efce0411363831bae162a85180ebe2610106ef4ac40df31e08624494b7aa63eff382f74e640ddc84f26d02f6bd8d03ca3cc97a02991b508f2e5c6" + +Core modular exponentiation (Mongtomery form only) #897 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"08818f73d59c5bc7235169402772d64318f358349a2f751c555ffd71f9fa2ba42a478f37289ebd4b57d1f5504023a4ecce852f52aedbc6d4389f803f217df5521b12d293e4b5a3d4f3bf5c89959ac3ffa28ea8e8d83f1e0e3ce40bb15ad2822800d5cc2be57136c46a5369b01d9eca6223c9483b0a6b8b31f0283a010b2b9c46" + +Core modular exponentiation (Mongtomery form only) #898 4 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #899 4 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" + +Core modular exponentiation (Mongtomery form only) #900 4 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd0" + +Core modular exponentiation (Mongtomery form only) #901 4 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"360fd121d368e1dd555b1d71b2e480d64a8c78e1d37fb85bed6c33e94b490898e4179b0f073070225e5d514ea6dd9525fe3ff90a7dc895ea450fb30e6137ec22c1ba8fb57122c6b02e805f9eb422731de403f39ffda18212788d7b2dcb19ced8e4424c785ed66f75e887556dfc6abc534fd640ed4f1b495ce92bfbaaa89719fd" + +Core modular exponentiation (Mongtomery form only) #902 4 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"30c2b643622fc389fbb6e99b5350170c97ec6fed652b837dc7e12eb3626d16a966128574b7be4f78c2a18cf4858afb89ebda79c10c1dd5ea7f4ac62f29f934ef2868e0791b097df07b77a6d856fb0df9d6aac28ebb6c1ea0b81fbeb7a4a3e2ed02f77ecf062b5dd637890fb3d21f90c5918fb98b08b991daff09a7bad35a0472" + +Core modular exponentiation (Mongtomery form only) #903 4 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"10cc72e0ae5400799aa7177a24423198410de0c3989bb7aec3a22bab1cbd2967017d6e4d94fea76aba3d5a91e56da26fcff750eea401780d8aab4fd6f2323e47dbe6a71be27a052ee8b310f7d44f7d956887410f73210ba081af17ffb6d76516cc691fb6d787cfc40de9bc63b0751a929833699b8b8da47a13893f8aac1c2822" + +Core modular exponentiation (Mongtomery form only) #904 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3bcafc5dda22d977dbbe8e47e99c4b67f5b0444901d132e5467e09c0977f55e811b68050338b34e13ae65088462a47720d890acbd306f3408bf1e534ffb28372c6def7f7021aa7a1e50c909c4ebf6a003c889984552e25cff9f87ca0bdac97af56dffc79d20df98f709bd4ee41e6fd6d5faa4cc589fc216b65d4c6c78ff1b4c8" + +Core modular exponentiation (Mongtomery form only) #905 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"19298748041d54251308eab0d5fad573d2de41b1fb2c1875fea327dacca243b7a8bc3a13716251c1c5b10117e958a426cbe8027f86c06f364b28437599d5e57a3db9ee5cef1ac7ea3fced8621e0e2901795063cbd281aed24b4fee3c53536b8eaa0eb6fdfc67cd58ede98896e557e68a5c512e21c35bd7dca36719d9eb7e91b8" + +Core modular exponentiation (Mongtomery form only) #906 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4deb62bc209eefe74f1fdf895a77b47c2c5919849ad3a46661009211b2fa4948652b86e2b5defaa8c179a2eae910f27a6c77964536d50caf4cceb562b8e94a41bd032b8d9d57aa8b51d9d3c082d0b77f493793fec3db60f18da191033cb1619ae64fda14ecf10a851b95ad318c831239b061beda072a954da0e919080e039a22" + +Core modular exponentiation (Mongtomery form only) #907 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3d2604a47067efa680f15dd36be182cd3a0fb48204a3e0123ee023ba2c00f865a83150c0ebee1e198fa89c7f3f5db669a2da7c6bd7307be1cd5d181e6c80f3410b2c72353e2278a0f3c8446393509162128abb992da8cc8d0d8ae8149800f917b64ee413180ab3757a9424524568a9b884bae0c0b175cdebf9fc345ba14b0140" + +Core modular exponentiation (Mongtomery form only) #908 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06801a269f4ff551ad9b145110080626d3d3cb6193daec4509a4c5d29a4d167c5a4a35ff985cb1e5a48c86bb9a88f961dde3ed1da0af8ee505117e0d19417767d07b53d583bb493796bf7767d7d42b87dc8cda1527c1ac125ebb2276ff03d488d4866ff4076e2dd9dd917e9e224c36712042c964b26106a5a3261b9e90d2bd49" + +Core modular exponentiation (Mongtomery form only) #909 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"12110e1ccf59d82dc5c74914bf55155fc8efdc8fbe5273f088c537076bddfd450b03293be7f6ce098b5100c5391f463d82b9f44ca3fd394051ee57a9e9d10c10efdd2e5483685c61f96d21b0583cdc71ea44790c5ade93f561e3e312506ca285fc648b4dd035fe55441f86c7fbd9e9c738ac6c702dd7ecdadf7fd4ab7c6dc203" + +Core modular exponentiation (Mongtomery form only) #910 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"524925b3b4b40404974b3f184fc48ba0edd5799e35533b1304bd4fa1b29d0c2e4619dda54dbad22d994dfe2161a7a58c50e34e8c8abe7e8116e472e7d327ee92439b04f284ab11098885325ea6b62d27e0b3adf9199369ad28a401f3f2db46b50d1eb647ced8d1bcc9a40d9e840b0f9bc5cb35ea74e98a71f1aaf0916d9d3630" + +Core modular exponentiation (Mongtomery form only) #911 38 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #912 38 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" + +Core modular exponentiation (Mongtomery form only) #913 38 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"34fc6a5cb590de9d67f2a62175beda6169aea367e2a619728ba3b103a2e56f7e18ec34cdc2901e10fe0ae7cf9ca9a7ebde7ab9a7d89ed6cd333ae8201abfb6b71be04b1e644f091d1d39bf0a1e73801beb23688477d83fcb06bccacb279cbc56169e4b6c0ebc857b8ded1ccd677db3bb42526fde02d99b0a99d9e0253c46f30e" + +Core modular exponentiation (Mongtomery form only) #914 38 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"24338aa31f46cdd81b2b4259093e1e131e7457b429e2a504ca1d384446ad165b8f7b466127ca591312e99c9fc5862522c4c9d68b51f01e5c06345d50a32e84e663387b505aedc6221e358c9b5a02008343568bfcad087b5918c83778e26ea6ba3c6ac1e03691a2ee42bb83a67b7837b020c5e6ae16d3536254cb2ec088db5dad" + +Core modular exponentiation (Mongtomery form only) #915 38 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"116fa87fce0fd83dbcf3f170627f8097ce31c4323fabb1b510a8c399f548574d676893e7f81a2f63912d9faa2e4ff2f26e65f18ee8508f32600421276f5f4717464a8d3bf1effdb3ad40a65dfdbf2ed20a320ff714a4078f72c1fa772b0c532e8e86042e71af240d9a11843987c3a82b05dafc1a91cf525ac8a6e6e03bdfd3c0" + +Core modular exponentiation (Mongtomery form only) #916 38 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"063ea3666f8efe4b25f829ad26eef88684d83866fc31b4ea2f1128dce946c684cfc368218ef7651c402a8a33403956889898cca8810054e8cd0474b9f97f1b2ebaa56a987ef5926b1ad400fc8404ea02731ff65adfac746d2128935203efd725f7c46d6bd0c577da44655b266436ebb4cb9d77c03a1e64aa0873b2ab11927fb8" + +Core modular exponentiation (Mongtomery form only) #917 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2417daee307667a8b691a66115017789a7fe845007063bea730d5e9e9bb499580a05f95e78cfaea639e4044d3d651a5bc4d922d835a39a1c969be4aa09d27bb172ca6d3e23adc052bcdbb279f09e66daae095d6d7e5f8495fd01d49763d9ccc142f12339f6d2350bf210ee2545a70f9689793496bc1548d808ae38ce49acc7fa" + +Core modular exponentiation (Mongtomery form only) #918 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3330c34d85ff2f15cd8d9bd772f8a974e730a5b3c44173f62f9ffcd3156fbf4f2269729c201d5ee8a589a8c4c35adb2bfdf643be42705fdd0d6f223e21d4d78e2173f97673902b459b6ab0beca4d6a46ed3810ab87dd3450218115a2693a1d694f96c3c3aae17c687834674409e259b93e8c65a27ae1ffdd011c683ff987eaa5" + +Core modular exponentiation (Mongtomery form only) #919 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2a3626f71a549b89d6b527f51d8c1de8e4482c26dd4578b5e4bd8bc5bb35a7a2bab985d8f48894bb37908713f562c3d9ec7aee7d851267dc2482b38b78f4f004b550a841824a728b09c532e9fdfaa9cd20cb3ed7071699631d3feb74ea75b1455c140b335dea65e1dbacd69dc7464d5f249ca2463eb0f7e665504f69b6211572" + +Core modular exponentiation (Mongtomery form only) #920 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"03b9ed70cd4d770397e1d3240d683c54e1eab2fe65cb7ee80fa4c558344016ff0a3775c245c7d9b1975a01a644ff4a157188f559b51799c5639be412656b398ed1d35a3ef41c0a6437751b685417beb6ea69c8605a9fa2e91698e0379ffab3702720cfae7d85cba5caa899c762ff3f9091d2db92e30af228d804a58e87234d52" + +Core modular exponentiation (Mongtomery form only) #921 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1fe7d3885bb41a40f22d73ee975f6c675e61f4419edd1b395ed03ff946ebb66e5c863b49d262843ad990ca92355c8d80ec0f866281e1676c5a4fa9cd0e36e9cb1aa61fae1568f6eb6f6e403c8880ea95abc82fb6fc3e7f44cb90b27be08ee92d4f34ca9fa79a8d773ecd1e311804e89cc6adf11ca8708863185d05d3173d0c24" + +Core modular exponentiation (Mongtomery form only) #922 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0e1ce404419b743676fb6ec4382aab03de03aaf1819c56814ce651c2c5948eaa389922bc59946413c666e962ea3067ab2ce11f9344b9cc8487c1335b1d106dbd6abe536c3295dcf4ff9b78e14b4695130830b157219f612864a4e361eb7d0262af1fd17b2712ab05355ef1c63bd6c55e611a50d32b254638f4e997d0e5c06cb6" + +Core modular exponentiation (Mongtomery form only) #923 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0fad3239c53a5e1ed1ba1c4621d5dd0f794cc15af5733a2238bb2c049ba289b9f13d9621a9b20492da8d8b3d4ec715a6d9841433fe0fcb22db17dc5eb5b2ef38152984619ab41114892b64d6f107dd8d11b36a5243e56b2a8148939e820ec6ca9b136f24bc57b6de72e97cdf0260fcf26d8d8291bfe2a23c93d6d55bf163a725" + +Core modular exponentiation (Mongtomery form only) #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" + +Core modular exponentiation (Mongtomery form only) #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"2a084546770c85bc300b8742b337294c955a8cf12ffe2377a2da2670564a6f7944d6005a5573a32f1bc08f29f40be8890e8af6e7528c68b540fd0b5c865a4db2c7abe1015517e3973ecf72dd62510de30fe7bef5b10942c8bf37c4a2abb241d6192f7a5a9570930e5f3e28b916b524c24b43880c7e75781361670154a9f229df" + +Core modular exponentiation (Mongtomery form only) #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"018b59342c2dc063faea68e1d8d9f6fb30ee693b20e5d688378f6a7cbc2ab27b691089b7d0121df2dba02bc04e0906ad29d9bbd9135e50cf7815b1bf68195e3d165d3efefca0d0a7c3bdf377497d6f0c3d65f009b16298fbec7296c275caef6183c2ef9eedf25ba30bd2110e0853046938698a49a6e45168fdc6ddc1e7feda3f" + +Core modular exponentiation (Mongtomery form only) #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0926a7943990ec6ff92999a938edcc17192b0cee1b5261d46f3ff6f3aad3accf43484b9ea595cd99c572858dead6cd2a650da4cc3b64be8e6db025a882d9e5c1603fc39023625b8114bf38413b3ef20a97b64734557f64237a00a9c5a73e96a2f6a49cb655db20d66b9ddf84c76ae347c079a96ef3b11ec2e57662e5574b221e" + +Core modular exponentiation (Mongtomery form only) #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"3aabb73ef72f2789cb172a1f784feea3862b18219f5d0e9d58f3cd5f13b0ca5694a3676ced7bb9332000a3cbc633629f0d8d8c0e242f91b68a3d43ca3eff9037fc7a77979ac5fa9a0d67e7984f0423f21b8f46e38636501713710ee4baa7f4a529fa9062211384e3aab6a96be70db4828e12a8bf25016f9c513382b714e190c0" + +Core modular exponentiation (Mongtomery form only) #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"32ffafeec37abb7bce637f92e2d89a58a2c5d7da5d157ae0d035f65f8f9a32a1b8bd588240102888d08bf03b2ce365bf071c575cf3817ff8c2e7dcfaa983a22b69915fe9c72368163e6624f587a37525aa894ffd8d7d09793599356da7590ba157b2c5c84ddf75c17f2e37732488cf443b8dfa1fb878afddb3d90c0afa75a117" + +Core modular exponentiation (Mongtomery form only) #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"20289e3c8e8d1edc0a31e649a687c4c4bf38ae46c64468f0d3d798f1b3e08f29f9c18a46e7f221809202c919f459f04541a889c93a8cdfae713751a556c78a77fa22f71ced0bc11c18a2515aaa12d7226fc9659d91ef8be7bb77176fbc125a64786ffb0e1404c874d1f4fc4b354f0b3d3c9d18e2143ca82760761ff48129f507" + +Core modular exponentiation (Mongtomery form only) #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"31d4e7b145ae88ad5721aedf676a1224b6d721a2ed9c549fb1fb6fe9870807e1392f8eee7afc145d5bc173061c71e93c4906b1d97e3822d728130d075917039d1b56109b60a33503918cb96f7c89d4541d5cecdb1ce402302c2d7ec2c4d5f7ec0684804ba67316527417c5395b9e712b2f1821c0ec9d245fec16c0d9e282b2b7" + +Core modular exponentiation (Mongtomery form only) #933 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0242a4b827fb808c8e35c62ab6cb4bd3dd02f546e6843f3d35cc62ac7973affb7ae84fbc55a33c0c793f1ece8787b5d5b702bae7079552edcfccbb49b2cd6ced2ef210dc36c90219aff391b8883ec016a24eaa16631df4cf805d03918e1a30dfac0232cfb5731c744d5f499e66f76882e0b1db3e59af82717b9ca4f82dfa4a37" + +Core modular exponentiation (Mongtomery form only) #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"49fc1503b76a3ebe47d7cb7058040b67a5da43e0a4da883b2d079a0623d085d84efbcca04846d25afdbe22eab3027ee728bb7fa5bb90963112c9da6ace040f20fda03b680f23b07036d259b849357794d98b577d08c37d733ca47d619ed8b984ed774d5808881494e575f640e873de05763548d235314d4cc9192964c9ffab07" + +Core modular exponentiation (Mongtomery form only) #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"50c809d65382431334865446691abdb4e71f1331f4980ce5883d51655438e6e9467b4c80ff6c8a02ad32cd73ddc01eb5972062a50b700ddff1fdd614c48d52787310a445c396d5b61616a57441675ee08f97f962667a51dd200da372ebe1bcbe2c8b26a47c13b946d1f2dd51b76e30d7d50a997a13ebcb56177f97d6e4e50a36" + +Core modular exponentiation (Mongtomery form only) #936 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2c982953654fb7805efd0f1180347f33a25e90e68776917a62fc7474925c99ede93e8e02ebbcb7b952e74ca11e0b2c4c5a0f2047fde987dc3042f277c644a773b3705e55a8f3a6b03f5b9231c268eadd3e8ae482af7af200b3408ad523c622365a6877ac6c8f5fcffc3e12a8af828dca3992c2189aef278f1d6d0adaf9ebaa9f" + +Core modular exponentiation (Mongtomery form only) #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" + +Core modular exponentiation (Mongtomery form only) #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4e51c9ae328241b1ca8166979b06104883d3d1430a8685f6aa71d0dd1a20aeb887da53dee2cec3090192f44c9cb217fa55cf5a8393baacfbd6d98e27010551e4a56d0862aaab7fdf62a5bf24fd9eb6207c35e734d25156b3473ddda1377aaabd2e23e8c14a818f17c5887f8d17198c82cd2e14dad3c51cf990da8c5e10c77708" + +Core modular exponentiation (Mongtomery form only) #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"1e1775c9afc03735c1a758cb766c04c3a197b33879ab04e164ece425a749c9d133f07898841ac0683bfdcd18bbe4fece8ce5eec89c2985ec7f030ee7a010de934764562e67712d3266259eb3dd0e4e8abe8b6465122df88b188b8c680055b864102f2ecb1c15bc901a0a0b4432690814aeff7770fe9bd415f78d541755178b9c" + +Core modular exponentiation (Mongtomery form only) #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"35fdb3809bb631058a35cb0baae078301500df5a40709b29ef03a3139f680f4b2d823609dcda5d53a94c411297737dbffec5565b5e88376da9cc94894204ebf980b8fbaefea2b52b5da760327068f74158b148a87d1d075216d804ffeff007211749645429d8de443d64f7874bc2cc2a1277aa4dc06102868ec3f3277ecc67db" + +Core modular exponentiation (Mongtomery form only) #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"37b216a14d7c5ca85a34bb60e988d26f2251a19b92580e30c9bad649cf61d073ef091ce19cf9cdcdc7ba6693cddcaed5ba311fb340dddbca18e76b924df2fe4710462ca0db17f3e2f8174ec3ada9e2827cd146e166e6d5dfee8e9f4a01d8be6dec2aa517558da6cbb9d9114cbcf5c4de948c41a4b3940c520b168419e6252e45" + +Core modular exponentiation (Mongtomery form only) #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1a8292a99e46e556893a21f99b9759e3c198817da394cc385880bb4997cdd0b1e97bfe0f354a1ebc960a9ab713669ca7206674272879a5ba671dc696aba9ed6573868f1b8675b77430c64f56c5f3b90083476c9a62d415fc1074e066c8c496c878d82c8ac91ee3b2ce19510d5bf637ebf5af62138cc844fd3340080b48f0f82e" + +Core modular exponentiation (Mongtomery form only) #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d4bda626c093d4d074bf1f7d75a72851823b0f9d1bbdf891c32e747dbc5dad156dd9504f353b67103291094806bfa7d9bc99df91b6f90c46ce3ebae3b5f0359f1676ad48146cc14f7fdb80c38a8d4e6c369f4a46913a8131db9822511e405b6b75b0ca73ee0b74f6e6f17cea7c5b0b45b0e816abb5c7f112e2e7e0ad47a9a04" + +Core modular exponentiation (Mongtomery form only) #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"33cbf257f3abef7c2a1593a62741a92cb40ae78feb90846ff7ea0f7124600b95646c799b542f6a31f51ee6bd03b144a536460366d2a9a5c3b83f96f9865b1b01e2bdeaaac9796ed83edf2336c2b77ce43eb84a98497a03ba9e7ef818aa1844f183406d73eb6718b19a53ad5bc27d3d88dd708e54c15b379e78a8884de49b545c" + +Core modular exponentiation (Mongtomery form only) #946 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"49831121c77dc65541da23a8685aede803b719b98ac493c50741ce702cbf9c4c1340457c2973640825bc3fffe4dcfbf4bba610c872bd846caf0270332fae8efc6a1079e01b7937bfc705574357a5497008674734d5360e93d2ee5d24fddf851e86336994433b2db71589e4037a9fb5e5c2567993113f12f960b3b1e6b93c5080" + +Core modular exponentiation (Mongtomery form only) #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4973e9ec1ee79c3ef1f28a84bbf62fe4216250a55c1a55b6b1f05b320e70d1485d32a3eb2d73927650f551ffdc174f734fbad7267e7facf97a7b06c2b9891b91fe8d397d320993848168a76483c14682032309d5147afae061194e596405f0f7dc5a6ad98cf7c1f3dee1f68128b52529b64a574d27080233999778455ce42d70" + +Core modular exponentiation (Mongtomery form only) #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4423296df0d8c1d0670bf460d3ee39dec14e71cbcfd4717411066f8da3551a17612088b54987af98369fe88f1f0c6079465b0c6f733ea9707e5089e1bad6ea89e203bf3b49083f016d599b842427ead1f3816916ae1eae67624076e859b333226d1caed88ebebe5cae6a305a893d944976ba6cca8944c7638a53f5b37a451845" + +Core modular exponentiation (Mongtomery form only) #949 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2bdce19fba556650952737b83a13880ecac0be61d13a2f9e42988f2a47aa897324fd753bd02285ae5c10af9b7a3a61813f011e8c69d5e763165cf4b3f4307c58fc9041fa7036550b1e367b800452cb1f73354740a772b9add8fcfcdfaa7bc12857ed8ff8449a4fd1e25d91f1103300a41d57bfc1380f34c236bbdc2cb6c958d0" + +Core modular exponentiation (Mongtomery form only) #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" + +Core modular exponentiation (Mongtomery form only) #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"31933723e20a520193f7faa97685fd5c10c0243d962d3e49977e2c2e055cb2c6b11cff72b3e491de6a95ae80e2f02bdb937bf5734ccce023b54f42e326e82d20dbdc58464dedbc65e2558d287489a4b4723c9be496a31634969ce451f3baf2bbec715e7db4c7dccd21b64a04b93935d07230365e8c32621e913cbfdac322ba9d" + +Core modular exponentiation (Mongtomery form only) #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"205b779500642d955c0e3eb1604b1f6da9613cc50153876f46f17b74ae306122f09e391e58ca6e07aa2bf3b8718cce8580a15a1e29fa2e4f437c389c4b859d7e4bdd14c673e76c3ea61c928ebaf79eaa39400dae174fc7cc9564017a78e6becfb2246e3e87bae283e3e853be1fd1c52f91caf78e475b2c69111e723f6e17910d" + +Core modular exponentiation (Mongtomery form only) #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"361e8a1754510584493cb51513bc3755aec898ebdabe906132fdb3187813dc15ca4d6c09f0f188be3c82f78a83aa5e4c749b6a791c0b6cfa64adb3d2db61e6a6cb615c0b0aa8c441daf0b6176b7c15f0affecb78aee37d90e754447f5d3346a3816a3c62715c2c5ec345d1ab42b5bef184827deda5ab4984362f964e60cdc377" + +Core modular exponentiation (Mongtomery form only) #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14f866f810bf5fbdef0fbd65855dab9ba1497f59da4df4e9cfa6e13c38f1b3ef85854bbdcdfc8956e290449903be0bced12b3eea7573bbe5a27361dbb4f56dcbe5126bde6eecdabf956b7fa702ee1d218695bc58d5068719c453da0200a15abf49ef4b6ff6213c05469f8664c854b085bc6ad6e2a6330759e6a33424ffc97a26" + +Core modular exponentiation (Mongtomery form only) #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1428f06201c8d21f0ca47eaa994f3b4f2250851e9067be5e7669fd05297208f87c2c41f8fd74f353a4331f7f293d4dd00dfa907b48a52b47210989dde13200eff4bd9e3b272edc0c03debea6c2f03e1daf0053371688044feddb13a9f51c62f67afe8727abc47d61ed1a43984c0003a69fbf136d4827f3eff4bf93f52a0b0a09" + +Core modular exponentiation (Mongtomery form only) #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1dbe839970f889b81d50d18a3ca8ee61963b1880d01c062ddb25f977c8a80f2656ba3e07058d45a16d660b8c7e24be9d639d690af5017d255e2027ee375f073c8e14258988c93fb587428d930da6f399b04b784be52540a92e2d54e3aed8044a12b6420295d56328b567ecd5f47238a5f9f74b48ebcaf0caa5d550213c52418e" + +Core modular exponentiation (Mongtomery form only) #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"49da28644f4252ae752c3261caff7c0482242d1df28663bdedea42641d0e9c96e75c682a536a4c71babda65660b0a6c2bf33d30af58a8a2f9416c12b6550aaaca270074c383a8ad9ca801aefa974f5b851636355570ee18fdc03a5d91d8dbe1be7f811ec74e2f0b4d00ad35c9b5a2b2d3f592874273645b2598b0d681a331da0" + +Core modular exponentiation (Mongtomery form only) #959 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3960be04ef8d4bb1d17eeb637a9bbb6c0873c49186044442f58addad7122d7d199655db2b18937a424e9c2cb797c7e28eb1134cde763dd417a8b6e724303e59e48b00a8b95f2350bf40c2f5b3a0c6fa514d5d0fe99fbcce1d5aabf3253de84cb2aeda3da4cb0b656c9b54e124afbf0ec66d65a76f7a407b13751d9eea7303b27" + +Core modular exponentiation (Mongtomery form only) #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"32c3d8b424ddba25088e48c8353a2dd9877a9b3886027d91871ae5caa166ec2eee4e936c40855789db1f21c817255218b1eab7d02a357a426aaff550515b7929d2dee9cb807063de71d9c801ff9e87fd3a90242e6dd495ccc5636af2d098584dd2677bb2c083c9dab9201b3379459047415ef98be47e2d95b18152c1d05b9ffb" + +Core modular exponentiation (Mongtomery form only) #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0ef389f27a3bda5d3d1adf1932937ee514fb626e0065ebad7528cbdb6e49ec8537df35edeb8fd4f5e18260f0e251caa7cb1c809ef80b0111888f82a5227d11b886489882e6feded097d49c7e04cf60d2bf09407a67c98f751d143c339eba4bbd3ea2310d6a8091f8b271b218b1990147e6a5dbb81fd143036bdd5962e47f6242" + +Core modular exponentiation (Mongtomery form only) #962 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2f66ccc738faa07f7459581144fa31ddb8ddff7617dd295db7d82b04cf0bd8f6d0eb83eb568ef76e1470aa1217dc149169353caf3b34b39199b872b0f9cbd5d55714521d10281f6abc551aee9f0f0890c03182f3c2b86a8012e21b9ae9b782ac9183e5e542755da62be8689a684c20a5706ab693e6ea384f57d3fa2c77dd81d4" + +Core modular exponentiation (Mongtomery form only) #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" + +Core modular exponentiation (Mongtomery form only) #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"5143159fb5c3f4d8c67e5f5e67afc2801f903a49454f0f45308a7ec7c7ed0caccb9573f1412d8c18e16f32982998bf7e1f6c8cbce56b0289dde83f9386ba71332075978e67205da842420928c55b70d9c77f582a7c20fe945d1b54f95b81a287d963516deee140c5effe24be2fb00abe77c3e4b86292157a1100a391a0fa23ab" + +Core modular exponentiation (Mongtomery form only) #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0d1e98b0a49d41f3574f9dad7b513c79ff1a60398b8eb413bfce4963b0e86a84875aa7785676f7eb8f3659266d86022883b2e78fcf1380135ad2289e13d0d884bb7d707007596cfa28a2ed42ab5bd6f41bd190d4e7e5f229face19a10949e7538bd09a327cce32658b59d4eecd0e179fbd3b9cd5d489e09c8d256784bb79dbf8" + +Core modular exponentiation (Mongtomery form only) #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"15f9026235c63bca99d19a9670d5a4536be5dc9152e35c67ae519d0d2a5d064b0e2e1820c7c4490066adb3eddb0fc73c08626b79327ec1f5f3833e3df7efa6415ca35cef032ed1a64cf6f4428e2d58deddd3ba4878dbfb97d1f3935af5a7721fec74f9dc578cae2c6a533b5d470893d78a23535e8007cf851c7d3045b31b9ac4" + +Core modular exponentiation (Mongtomery form only) #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"4425783dba83a90c80376e2eb3a1c7f0b647e845f9b0480e0fe2d2057876f756eda7f0135327c3ec57b101ffea4a318787951686ef3cedd8c2054da236927d1025a34f4a8f1311a22ee79eff1be7827923df99899b8f5081df9c3f6067da12fb91195511a3c92a4ea6eaa655f0aa71a29102544762f48f7c0073d8c13534e763" + +Core modular exponentiation (Mongtomery form only) #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"039482a8d13d327c9174fbd494e5d8b2d5b41f2d4316a36fcd5e2a6cb12ce056cdfe823a343f5c3cdfe35774f7b286b10f93214816cdac557b05ef80ec7e3ac54fcb3f0e78f58186b9188cc8bd4c64764521e56ef4732077843d80a08c17e581b0a8c2d82eb76848cd1160cd860f662a2df1214e223ae99c58ffbe6ca84c11ba" + +Core modular exponentiation (Mongtomery form only) #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"530e9f04cf42910877f5a34490dd89c3d963e64360bf97ce8660602f33fbf3a01ed146b1605fca3f3d7f61290b88c7ec66bbb837713456a6f5b99f4aad54c0f5305e9ed7d84ef081a51a83d5e0bc94371c2cef6c27bce92273162d39c9b4cadfc74f52342908a0f9a72bd72c4f059d4963a62844cab4ea8ae0cff690a5eced09" + +Core modular exponentiation (Mongtomery form only) #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3e741836d061a08b7e8df3c69f6d8286ec6ca172cea9b3fc759dc164a864446390928846753c0c8d4a1efd769c8e0a85e44d3ef28beafa0d41b3a7c52fbb1e27af1c544314aa31fb87ef05aac278c013fa7df9512d1d5c88bed039d1bc174417632f1849340920bed9e280011371ca6fa7c2016caae631d71d5c612aef8fbd23" + +Core modular exponentiation (Mongtomery form only) #985 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14489a69bc5932d8feb8d2c8e664f919329cfdfc137095906629520373ac7c6e290bb81f58cdceda104e3b9d2d5275cdc818a10e352c327805fae44bd8646307d3737bb66e9a25f0e3bea32ed6c921439ffc86b3d3acb1b3cbec83f542d1620e82015b93ea934e4f0be2f0f1061d4d28fac784c02a0344d52e46879e68d1cdef" + +Core modular exponentiation (Mongtomery form only) #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"509aaecb5bbc90f5b097ce3384ecc962f69da287260b93e57b915d067931cd605298188afbe7433ed858c046b1eb790cd1384e6c978b6767777d5079ddca4d7eac5ef795667b0b2ac23e6bd786a19c845078db98699bbfd9bc139354e6f01c24149039d7ab81dace23b389ad5fe6cad28aa8ca5b9abe4c41c6154aa0c09c046c" + +Core modular exponentiation (Mongtomery form only) #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4665803d393e543f2bfb4b5fb92d04755f0f0e9c58d9ba7801ac23c12647492ceed6a47606c128303df2fa903baea691faa369f3cde0f4924a1f4ed4b2f0d822cec00240f4bf0c3098f37aa9645a0911f568846058e3d0f276d95ea82288addbd7f92cf646047dd4719f2765ec2dbfc8f94c498b1d66bf64bf12b215a0b48cd1" + +Core modular exponentiation (Mongtomery form only) #988 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0791d714204af235a62ece6657fc12ecf587a522bd467644687aca4f68a8a5e632df9afc86c0099792e9e8031c644ee8ac7bc2f7e33f6bfa0bc50a17eb54495889e107f6370019cc3563ff034bcc3803267dbee56ef5a186d3f7b3437541ac6efe1b545e50c0605939fed7a850042cbefb6a518e0ba58c2a039b787bf7513e05" + +Core modular exponentiation (Mongtomery form only) #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Core modular exponentiation (Mongtomery form only) #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" + +Core modular exponentiation (Mongtomery form only) #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"31ce2657647455593bc686aaed9aa88d2e7ae1bcc2f4a9ee150d439fa2fd63b4324fb4960288ff10568c6b616dae56f6535f884dd06b3fdf55262862d4ebe546ae8c8776b1f38e2228ff374a52ddc37cf018c120d3e15cc29b9ebc01aee8e94f7f39c81ee7d2d8f7e05da0b6ea090747735e82db5b733212d2b2326f7a784eb1" + +Core modular exponentiation (Mongtomery form only) #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"405c4e20039ede5649bc76f5053eae526d57546e8120adb7eb74ddced24e90bb0341d6e852c12364a5acb1d6990380a27fe560d6c0b4b2dbe15ef5f808c72138839d6bf9ebf53aee6e2c5727494972248f72cf4cc30fa3b821d825966f7fc2c31c8bddc874cf1318681e7d16a2dbc1033888245aa68852cadf375a6c4afb372b" + +Core modular exponentiation (Mongtomery form only) #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"057679da1f62254bcce3231e3ac4abe761cee5a3e20201260c6972199ef58dd218fde4f0ece95e6f27316c14f009f259626dce062f8f354660321793175563e7d61ac8df9899b3ee7c02d3dc3d9a95e8faf67c43cbe1b683c8a4d9820df53a2bacb9ba374bcea0ad365ed1e0cf30a8061c7af910a249d3a6f5b6d00c3eda5f10" + +Core modular exponentiation (Mongtomery form only) #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"4a08ef914250ef6c3c5383415a5d201d33d7b3636be1e7481e2223c54bc4a3f59a4ee1e6fb796c92ca3c102169fbb03f8cf6d35ce8ddf12ee017f5c136ee1c25e09e79c4117c3d09d7adcd2d0eb42635bc4bad1d97d40f4013b117bb8826b68e87ca1c2e4a694b8bf8b2f66e93f97f68afba1e9b48a6486e4dc5d55f938e9165" + +Core modular exponentiation (Mongtomery form only) #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2260ee027478faf04bd2fb0a2fb897822d311aa3982f03730dc04aa145912488c047a30bf14728de589dee4a0bb0b54024aa1524ee06836bf4b71fcba512a48e3c4690ef04a9155326b87d8015aafd92c12f06e28a49d8dbae89cdc26a69a2dd3d2eccf54cee2d6dc8a48a323c14afb52e682bcaaa51fcbd40e5795438937275" + +Core modular exponentiation (Mongtomery form only) #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38aa70e5b135f42fbf0714b224529f06076b21834b0bb56f022eddc5e0324f4626fc8dccdc6097d83bb0a974863e4fe125e81efcb549baf3506185b0411e2f3d574b7538cb6e2b9874215790fff2dfb62c955820593b9c0bc0482e5b6482ed371e7edd286687dc490e0df7dc9a677010e986ae4e7f7ed534079b18140b995362" + +Core modular exponentiation (Mongtomery form only) #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"397dcbbe51360d92e6de24b85139f616f15ce27473b358fb4a70e7fd6e3e82944b16e81c2491bf3378f28f714c7a20f230fc02c2af833226cc85fb00b4476a77007721eb87b2182335be7745d930b3537d419a05d5d17c2e0e3dee37b5b8b48cb115130bbcbfea6a8ce82437ca90495e3eebedf6019683e6d7e976e1967a25c5" + +Core modular exponentiation (Mongtomery form only) #998 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"45b8009680bfa32684c8d77dc8d83365f2d15a785390e3bdf1f023198b9f62423b95a6a91b8d75d33d01f42156284d89de87473c014cc328e6657c76b6fd1932a6a990dd474b9e4aa245b9e2c4e279322b2d51eecb492ebc7bd87ae8508a9f9e8414ddf3c66ff1472871899fd3866f31ee543148a197b7095b13259702185a4d" + +Core modular exponentiation (Mongtomery form only) #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"442c8f4b2e861d8351fbc8af8614ff7ce4184ea896d4ee070f5929497f139467f9bfb1a649e7ce362f1808a2038a0ffe52d5ac29e017f767140e4162cb962f94d1a6e73f2e45afc23b1377c00b4eb500d5f64dc3af7b441954c8ef3da7c180d4f7dab31e45fbf5bb1f95e3e442d12c4cbfe3600af54ae41b1692a19064c1dbc1" + +Core modular exponentiation (Mongtomery form only) #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"5052c341cf7a30dd5e88abc37819eabd1346f5b192dff930087f049746b1c9b9216d078eb50509ae12c3394146c8529ce55b22eb905b912031934ca32eba2667ab74447bbb33beb7889281595073839db6bd3a71bb47c06d37b1ef30b8c229815979a67b3d9aee815fc19bdf22f46cbcace15d240f2b739c90649a7b8bcce7de" + +Core modular exponentiation (Mongtomery form only) #1001 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"357199f9b213ce7ebf7d90f3aa8f1bd4bb4deefdb15214167d4f6793a73293741e5120c4b984f54047dd34d95c6842afb869064705008b5ae460b3e8a1f5ab643f0dac8f3f0611d1938875944f80f83e09a2ab207040ca825385044843c858c6b1e83f78ca59ccaf405dcd33d1958879c79eafe672d8b167428d9f71a669e71d" + +mbedtls_mpi_core_mla #1 0x0 + 0x0 * 0x0 +mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #2 0x0 + 0x0 * 0x3 +mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #3 0x0 + 0x0 * 0xfe +mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #4 0x0 + 0x0 * 0xff +mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #5 0x0 + 0x0 * 0xffff +mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #6 0x0 + 0x0 * 0x10000 +mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #7 0x0 + 0x0 * 0xffffffff +mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #8 0x0 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #9 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #10 0x0 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #11 0x0 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #12 0x0 + 0x1 * 0x0 +mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #13 0x0 + 0x1 * 0x3 +mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" + +mbedtls_mpi_core_mla #14 0x0 + 0x1 * 0xfe +mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" + +mbedtls_mpi_core_mla #15 0x0 + 0x1 * 0xff +mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" + +mbedtls_mpi_core_mla #16 0x0 + 0x1 * 0xffff +mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" + +mbedtls_mpi_core_mla #17 0x0 + 0x1 * 0x10000 +mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" + +mbedtls_mpi_core_mla #18 0x0 + 0x1 * 0xffffffff +mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #19 0x0 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" + +mbedtls_mpi_core_mla #20 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #21 0x0 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" + +mbedtls_mpi_core_mla #22 0x0 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #23 0x0 + 0xfffe * 0x0 +mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #24 0x0 + 0xfffe * 0x3 +mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" + +mbedtls_mpi_core_mla #25 0x0 + 0xfffe * 0xfe +mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" + +mbedtls_mpi_core_mla #26 0x0 + 0xfffe * 0xff +mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" + +mbedtls_mpi_core_mla #27 0x0 + 0xfffe * 0xffff +mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" + +mbedtls_mpi_core_mla #28 0x0 + 0xfffe * 0x10000 +mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" + +mbedtls_mpi_core_mla #29 0x0 + 0xfffe * 0xffffffff +mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" + +mbedtls_mpi_core_mla #30 0x0 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" + +mbedtls_mpi_core_mla #31 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" + +mbedtls_mpi_core_mla #32 0x0 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" + +mbedtls_mpi_core_mla #33 0x0 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" + +mbedtls_mpi_core_mla #34 0x0 + 0xffffffff * 0x0 +mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #35 0x0 + 0xffffffff * 0x3 +mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" + +mbedtls_mpi_core_mla #36 0x0 + 0xffffffff * 0xfe +mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" + +mbedtls_mpi_core_mla #37 0x0 + 0xffffffff * 0xff +mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" + +mbedtls_mpi_core_mla #38 0x0 + 0xffffffff * 0xffff +mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" + +mbedtls_mpi_core_mla #39 0x0 + 0xffffffff * 0x10000 +mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" + +mbedtls_mpi_core_mla #40 0x0 + 0xffffffff * 0xffffffff +mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" + +mbedtls_mpi_core_mla #41 0x0 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #42 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" + +mbedtls_mpi_core_mla #43 0x0 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" + +mbedtls_mpi_core_mla #44 0x0 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" + +mbedtls_mpi_core_mla #45 0x0 + 0x100000000 * 0x0 +mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #46 0x0 + 0x100000000 * 0x3 +mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" + +mbedtls_mpi_core_mla #47 0x0 + 0x100000000 * 0xfe +mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" + +mbedtls_mpi_core_mla #48 0x0 + 0x100000000 * 0xff +mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" + +mbedtls_mpi_core_mla #49 0x0 + 0x100000000 * 0xffff +mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" + +mbedtls_mpi_core_mla #50 0x0 + 0x100000000 * 0x10000 +mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" + +mbedtls_mpi_core_mla #51 0x0 + 0x100000000 * 0xffffffff +mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #52 0x0 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #53 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #54 0x0 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" + +mbedtls_mpi_core_mla #55 0x0 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" + +mbedtls_mpi_core_mla #56 0x0 + 0x20000000000000 * 0x0 +mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #57 0x0 + 0x20000000000000 * 0x3 +mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" + +mbedtls_mpi_core_mla #58 0x0 + 0x20000000000000 * 0xfe +mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" + +mbedtls_mpi_core_mla #59 0x0 + 0x20000000000000 * 0xff +mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" + +mbedtls_mpi_core_mla #60 0x0 + 0x20000000000000 * 0xffff +mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" + +mbedtls_mpi_core_mla #61 0x0 + 0x20000000000000 * 0x10000 +mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" + +mbedtls_mpi_core_mla #62 0x0 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" + +mbedtls_mpi_core_mla #63 0x0 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" + +mbedtls_mpi_core_mla #64 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" + +mbedtls_mpi_core_mla #65 0x0 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" + +mbedtls_mpi_core_mla #66 0x0 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #67 0x0 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #68 0x0 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" + +mbedtls_mpi_core_mla #69 0x0 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" + +mbedtls_mpi_core_mla #70 0x0 + 0xffffffffffffffff * 0xff +mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #71 0x0 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" + +mbedtls_mpi_core_mla #72 0x0 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #73 0x0 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #74 0x0 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #75 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #76 0x0 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #77 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" + +mbedtls_mpi_core_mla #78 0x0 + 0x10000000000000000 * 0x0 +mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #79 0x0 + 0x10000000000000000 * 0x3 +mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" + +mbedtls_mpi_core_mla #80 0x0 + 0x10000000000000000 * 0xfe +mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" + +mbedtls_mpi_core_mla #81 0x0 + 0x10000000000000000 * 0xff +mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" + +mbedtls_mpi_core_mla #82 0x0 + 0x10000000000000000 * 0xffff +mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" + +mbedtls_mpi_core_mla #83 0x0 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" + +mbedtls_mpi_core_mla #84 0x0 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #85 0x0 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" + +mbedtls_mpi_core_mla #86 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #87 0x0 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #88 0x0 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" + +mbedtls_mpi_core_mla #89 0x0 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #90 0x0 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #91 0x0 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #92 0x0 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" + +mbedtls_mpi_core_mla #93 0x0 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" + +mbedtls_mpi_core_mla #94 0x0 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #95 0x0 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" + +mbedtls_mpi_core_mla #96 0x0 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #97 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #98 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" + +mbedtls_mpi_core_mla #99 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" + +mbedtls_mpi_core_mla #100 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #101 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" + +mbedtls_mpi_core_mla #102 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" + +mbedtls_mpi_core_mla #103 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #104 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" + +mbedtls_mpi_core_mla #105 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #106 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #107 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #108 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #109 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #110 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #111 0x0 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #112 0x0 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #113 0x0 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #114 0x0 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #115 0x0 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #116 0x0 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #117 0x0 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #118 0x0 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #119 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #120 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #121 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #122 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #123 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #124 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #125 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #126 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #127 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #128 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #129 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #130 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #131 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" + +mbedtls_mpi_core_mla #132 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" + +mbedtls_mpi_core_mla #133 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #134 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" + +mbedtls_mpi_core_mla #135 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" + +mbedtls_mpi_core_mla #136 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #137 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" + +mbedtls_mpi_core_mla #138 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #139 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #140 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #141 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #142 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #143 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #144 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #145 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #146 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #147 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #148 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #149 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #150 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #151 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #152 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #153 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" + +mbedtls_mpi_core_mla #154 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" + +mbedtls_mpi_core_mla #155 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" + +mbedtls_mpi_core_mla #156 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #157 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #158 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #159 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #160 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #161 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" + +mbedtls_mpi_core_mla #162 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #163 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #164 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #165 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #166 0x1 + 0x0 * 0x0 +mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #167 0x1 + 0x0 * 0x3 +mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #168 0x1 + 0x0 * 0xfe +mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #169 0x1 + 0x0 * 0xff +mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #170 0x1 + 0x0 * 0xffff +mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #171 0x1 + 0x0 * 0x10000 +mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #172 0x1 + 0x0 * 0xffffffff +mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #173 0x1 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #174 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #175 0x1 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #176 0x1 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #177 0x1 + 0x1 * 0x0 +mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #178 0x1 + 0x1 * 0x3 +mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" + +mbedtls_mpi_core_mla #179 0x1 + 0x1 * 0xfe +mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" + +mbedtls_mpi_core_mla #180 0x1 + 0x1 * 0xff +mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" + +mbedtls_mpi_core_mla #181 0x1 + 0x1 * 0xffff +mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" + +mbedtls_mpi_core_mla #182 0x1 + 0x1 * 0x10000 +mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" + +mbedtls_mpi_core_mla #183 0x1 + 0x1 * 0xffffffff +mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" + +mbedtls_mpi_core_mla #184 0x1 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" + +mbedtls_mpi_core_mla #185 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" + +mbedtls_mpi_core_mla #186 0x1 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" + +mbedtls_mpi_core_mla #187 0x1 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #188 0x1 + 0xfffe * 0x0 +mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #189 0x1 + 0xfffe * 0x3 +mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" + +mbedtls_mpi_core_mla #190 0x1 + 0xfffe * 0xfe +mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" + +mbedtls_mpi_core_mla #191 0x1 + 0xfffe * 0xff +mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" + +mbedtls_mpi_core_mla #192 0x1 + 0xfffe * 0xffff +mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" + +mbedtls_mpi_core_mla #193 0x1 + 0xfffe * 0x10000 +mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" + +mbedtls_mpi_core_mla #194 0x1 + 0xfffe * 0xffffffff +mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" + +mbedtls_mpi_core_mla #195 0x1 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" + +mbedtls_mpi_core_mla #196 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" + +mbedtls_mpi_core_mla #197 0x1 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" + +mbedtls_mpi_core_mla #198 0x1 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" + +mbedtls_mpi_core_mla #199 0x1 + 0xffffffff * 0x0 +mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #200 0x1 + 0xffffffff * 0x3 +mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" + +mbedtls_mpi_core_mla #201 0x1 + 0xffffffff * 0xfe +mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" + +mbedtls_mpi_core_mla #202 0x1 + 0xffffffff * 0xff +mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" + +mbedtls_mpi_core_mla #203 0x1 + 0xffffffff * 0xffff +mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" + +mbedtls_mpi_core_mla #204 0x1 + 0xffffffff * 0x10000 +mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" + +mbedtls_mpi_core_mla #205 0x1 + 0xffffffff * 0xffffffff +mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" + +mbedtls_mpi_core_mla #206 0x1 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #207 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" + +mbedtls_mpi_core_mla #208 0x1 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" + +mbedtls_mpi_core_mla #209 0x1 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" + +mbedtls_mpi_core_mla #210 0x1 + 0x100000000 * 0x0 +mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #211 0x1 + 0x100000000 * 0x3 +mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" + +mbedtls_mpi_core_mla #212 0x1 + 0x100000000 * 0xfe +mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" + +mbedtls_mpi_core_mla #213 0x1 + 0x100000000 * 0xff +mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" + +mbedtls_mpi_core_mla #214 0x1 + 0x100000000 * 0xffff +mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" + +mbedtls_mpi_core_mla #215 0x1 + 0x100000000 * 0x10000 +mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" + +mbedtls_mpi_core_mla #216 0x1 + 0x100000000 * 0xffffffff +mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #217 0x1 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" + +mbedtls_mpi_core_mla #218 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" + +mbedtls_mpi_core_mla #219 0x1 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" + +mbedtls_mpi_core_mla #220 0x1 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" + +mbedtls_mpi_core_mla #221 0x1 + 0x20000000000000 * 0x0 +mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #222 0x1 + 0x20000000000000 * 0x3 +mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" + +mbedtls_mpi_core_mla #223 0x1 + 0x20000000000000 * 0xfe +mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" + +mbedtls_mpi_core_mla #224 0x1 + 0x20000000000000 * 0xff +mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" + +mbedtls_mpi_core_mla #225 0x1 + 0x20000000000000 * 0xffff +mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" + +mbedtls_mpi_core_mla #226 0x1 + 0x20000000000000 * 0x10000 +mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" + +mbedtls_mpi_core_mla #227 0x1 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" + +mbedtls_mpi_core_mla #228 0x1 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" + +mbedtls_mpi_core_mla #229 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" + +mbedtls_mpi_core_mla #230 0x1 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" + +mbedtls_mpi_core_mla #231 0x1 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" + +mbedtls_mpi_core_mla #232 0x1 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #233 0x1 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" + +mbedtls_mpi_core_mla #234 0x1 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" + +mbedtls_mpi_core_mla #235 0x1 + 0xffffffffffffffff * 0xff +mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #236 0x1 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" + +mbedtls_mpi_core_mla #237 0x1 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #238 0x1 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #239 0x1 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #240 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #241 0x1 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #242 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" + +mbedtls_mpi_core_mla #243 0x1 + 0x10000000000000000 * 0x0 +mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #244 0x1 + 0x10000000000000000 * 0x3 +mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" + +mbedtls_mpi_core_mla #245 0x1 + 0x10000000000000000 * 0xfe +mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" + +mbedtls_mpi_core_mla #246 0x1 + 0x10000000000000000 * 0xff +mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" + +mbedtls_mpi_core_mla #247 0x1 + 0x10000000000000000 * 0xffff +mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" + +mbedtls_mpi_core_mla #248 0x1 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" + +mbedtls_mpi_core_mla #249 0x1 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" + +mbedtls_mpi_core_mla #250 0x1 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" + +mbedtls_mpi_core_mla #251 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" + +mbedtls_mpi_core_mla #252 0x1 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #253 0x1 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" + +mbedtls_mpi_core_mla #254 0x1 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #255 0x1 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #256 0x1 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #257 0x1 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" + +mbedtls_mpi_core_mla #258 0x1 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" + +mbedtls_mpi_core_mla #259 0x1 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #260 0x1 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" + +mbedtls_mpi_core_mla #261 0x1 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #262 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" + +mbedtls_mpi_core_mla #263 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" + +mbedtls_mpi_core_mla #264 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" + +mbedtls_mpi_core_mla #265 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #266 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" + +mbedtls_mpi_core_mla #267 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" + +mbedtls_mpi_core_mla #268 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" + +mbedtls_mpi_core_mla #269 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" + +mbedtls_mpi_core_mla #270 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" + +mbedtls_mpi_core_mla #271 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" + +mbedtls_mpi_core_mla #272 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" + +mbedtls_mpi_core_mla #273 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #274 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #275 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" + +mbedtls_mpi_core_mla #276 0x1 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #277 0x1 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #278 0x1 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #279 0x1 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #280 0x1 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #281 0x1 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #282 0x1 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #283 0x1 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #284 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #285 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #286 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" + +mbedtls_mpi_core_mla #287 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #288 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #289 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #290 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" + +mbedtls_mpi_core_mla #291 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" + +mbedtls_mpi_core_mla #292 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #293 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" + +mbedtls_mpi_core_mla #294 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #295 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" + +mbedtls_mpi_core_mla #296 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" + +mbedtls_mpi_core_mla #297 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" + +mbedtls_mpi_core_mla #298 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #299 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" + +mbedtls_mpi_core_mla #300 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" + +mbedtls_mpi_core_mla #301 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #302 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" + +mbedtls_mpi_core_mla #303 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #304 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #305 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #306 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #307 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" + +mbedtls_mpi_core_mla #308 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" + +mbedtls_mpi_core_mla #309 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #310 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" + +mbedtls_mpi_core_mla #311 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" + +mbedtls_mpi_core_mla #312 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" + +mbedtls_mpi_core_mla #313 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" + +mbedtls_mpi_core_mla #314 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" + +mbedtls_mpi_core_mla #315 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" + +mbedtls_mpi_core_mla #316 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" + +mbedtls_mpi_core_mla #317 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" + +mbedtls_mpi_core_mla #318 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" + +mbedtls_mpi_core_mla #319 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" + +mbedtls_mpi_core_mla #320 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" + +mbedtls_mpi_core_mla #321 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" + +mbedtls_mpi_core_mla #322 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" + +mbedtls_mpi_core_mla #323 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" + +mbedtls_mpi_core_mla #324 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" + +mbedtls_mpi_core_mla #325 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" + +mbedtls_mpi_core_mla #326 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" + +mbedtls_mpi_core_mla #327 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" + +mbedtls_mpi_core_mla #328 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" + +mbedtls_mpi_core_mla #329 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" + +mbedtls_mpi_core_mla #330 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" + +mbedtls_mpi_core_mla #331 0xfffe + 0x0 * 0x0 +mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #332 0xfffe + 0x0 * 0x3 +mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #333 0xfffe + 0x0 * 0xfe +mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #334 0xfffe + 0x0 * 0xff +mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #335 0xfffe + 0x0 * 0xffff +mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #336 0xfffe + 0x0 * 0x10000 +mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #337 0xfffe + 0x0 * 0xffffffff +mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #338 0xfffe + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #339 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #340 0xfffe + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #341 0xfffe + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #342 0xfffe + 0x1 * 0x0 +mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #343 0xfffe + 0x1 * 0x3 +mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" + +mbedtls_mpi_core_mla #344 0xfffe + 0x1 * 0xfe +mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" + +mbedtls_mpi_core_mla #345 0xfffe + 0x1 * 0xff +mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" + +mbedtls_mpi_core_mla #346 0xfffe + 0x1 * 0xffff +mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" + +mbedtls_mpi_core_mla #347 0xfffe + 0x1 * 0x10000 +mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" + +mbedtls_mpi_core_mla #348 0xfffe + 0x1 * 0xffffffff +mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" + +mbedtls_mpi_core_mla #349 0xfffe + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" + +mbedtls_mpi_core_mla #350 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" + +mbedtls_mpi_core_mla #351 0xfffe + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" + +mbedtls_mpi_core_mla #352 0xfffe + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" + +mbedtls_mpi_core_mla #353 0xfffe + 0xfffe * 0x0 +mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #354 0xfffe + 0xfffe * 0x3 +mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" + +mbedtls_mpi_core_mla #355 0xfffe + 0xfffe * 0xfe +mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" + +mbedtls_mpi_core_mla #356 0xfffe + 0xfffe * 0xff +mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" + +mbedtls_mpi_core_mla #357 0xfffe + 0xfffe * 0xffff +mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" + +mbedtls_mpi_core_mla #358 0xfffe + 0xfffe * 0x10000 +mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" + +mbedtls_mpi_core_mla #359 0xfffe + 0xfffe * 0xffffffff +mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" + +mbedtls_mpi_core_mla #360 0xfffe + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" + +mbedtls_mpi_core_mla #361 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" + +mbedtls_mpi_core_mla #362 0xfffe + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" + +mbedtls_mpi_core_mla #363 0xfffe + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" + +mbedtls_mpi_core_mla #364 0xfffe + 0xffffffff * 0x0 +mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #365 0xfffe + 0xffffffff * 0x3 +mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" + +mbedtls_mpi_core_mla #366 0xfffe + 0xffffffff * 0xfe +mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" + +mbedtls_mpi_core_mla #367 0xfffe + 0xffffffff * 0xff +mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" + +mbedtls_mpi_core_mla #368 0xfffe + 0xffffffff * 0xffff +mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" + +mbedtls_mpi_core_mla #369 0xfffe + 0xffffffff * 0x10000 +mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" + +mbedtls_mpi_core_mla #370 0xfffe + 0xffffffff * 0xffffffff +mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" + +mbedtls_mpi_core_mla #371 0xfffe + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" + +mbedtls_mpi_core_mla #372 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" + +mbedtls_mpi_core_mla #373 0xfffe + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" + +mbedtls_mpi_core_mla #374 0xfffe + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" + +mbedtls_mpi_core_mla #375 0xfffe + 0x100000000 * 0x0 +mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #376 0xfffe + 0x100000000 * 0x3 +mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" + +mbedtls_mpi_core_mla #377 0xfffe + 0x100000000 * 0xfe +mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" + +mbedtls_mpi_core_mla #378 0xfffe + 0x100000000 * 0xff +mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" + +mbedtls_mpi_core_mla #379 0xfffe + 0x100000000 * 0xffff +mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" + +mbedtls_mpi_core_mla #380 0xfffe + 0x100000000 * 0x10000 +mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" + +mbedtls_mpi_core_mla #381 0xfffe + 0x100000000 * 0xffffffff +mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" + +mbedtls_mpi_core_mla #382 0xfffe + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #383 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" + +mbedtls_mpi_core_mla #384 0xfffe + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" + +mbedtls_mpi_core_mla #385 0xfffe + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #386 0xfffe + 0x20000000000000 * 0x0 +mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #387 0xfffe + 0x20000000000000 * 0x3 +mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" + +mbedtls_mpi_core_mla #388 0xfffe + 0x20000000000000 * 0xfe +mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" + +mbedtls_mpi_core_mla #389 0xfffe + 0x20000000000000 * 0xff +mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" + +mbedtls_mpi_core_mla #390 0xfffe + 0x20000000000000 * 0xffff +mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" + +mbedtls_mpi_core_mla #391 0xfffe + 0x20000000000000 * 0x10000 +mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" + +mbedtls_mpi_core_mla #392 0xfffe + 0x20000000000000 * 0xffffffff +mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" + +mbedtls_mpi_core_mla #393 0xfffe + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" + +mbedtls_mpi_core_mla #394 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" + +mbedtls_mpi_core_mla #395 0xfffe + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" + +mbedtls_mpi_core_mla #396 0xfffe + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" + +mbedtls_mpi_core_mla #397 0xfffe + 0xffffffffffffffff * 0x0 +mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #398 0xfffe + 0xffffffffffffffff * 0x3 +mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" + +mbedtls_mpi_core_mla #399 0xfffe + 0xffffffffffffffff * 0xfe +mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" + +mbedtls_mpi_core_mla #400 0xfffe + 0xffffffffffffffff * 0xff +mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" + +mbedtls_mpi_core_mla #401 0xfffe + 0xffffffffffffffff * 0xffff +mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" + +mbedtls_mpi_core_mla #402 0xfffe + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" + +mbedtls_mpi_core_mla #403 0xfffe + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" + +mbedtls_mpi_core_mla #404 0xfffe + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #405 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #406 0xfffe + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #407 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" + +mbedtls_mpi_core_mla #408 0xfffe + 0x10000000000000000 * 0x0 +mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #409 0xfffe + 0x10000000000000000 * 0x3 +mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" + +mbedtls_mpi_core_mla #410 0xfffe + 0x10000000000000000 * 0xfe +mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" + +mbedtls_mpi_core_mla #411 0xfffe + 0x10000000000000000 * 0xff +mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" + +mbedtls_mpi_core_mla #412 0xfffe + 0x10000000000000000 * 0xffff +mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" + +mbedtls_mpi_core_mla #413 0xfffe + 0x10000000000000000 * 0x10000 +mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" + +mbedtls_mpi_core_mla #414 0xfffe + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" + +mbedtls_mpi_core_mla #415 0xfffe + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #416 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" + +mbedtls_mpi_core_mla #417 0xfffe + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #418 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" + +mbedtls_mpi_core_mla #419 0xfffe + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #420 0xfffe + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #421 0xfffe + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #422 0xfffe + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" + +mbedtls_mpi_core_mla #423 0xfffe + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" + +mbedtls_mpi_core_mla #424 0xfffe + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #425 0xfffe + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" + +mbedtls_mpi_core_mla #426 0xfffe + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #427 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" + +mbedtls_mpi_core_mla #428 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" + +mbedtls_mpi_core_mla #429 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" + +mbedtls_mpi_core_mla #430 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #431 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" + +mbedtls_mpi_core_mla #432 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" + +mbedtls_mpi_core_mla #433 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" + +mbedtls_mpi_core_mla #434 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" + +mbedtls_mpi_core_mla #435 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" + +mbedtls_mpi_core_mla #436 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" + +mbedtls_mpi_core_mla #437 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #438 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #439 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #440 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" + +mbedtls_mpi_core_mla #441 0xfffe + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #442 0xfffe + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #443 0xfffe + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #444 0xfffe + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #445 0xfffe + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #446 0xfffe + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #447 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #448 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #449 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #450 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #451 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" + +mbedtls_mpi_core_mla #452 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #453 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #454 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #455 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" + +mbedtls_mpi_core_mla #456 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" + +mbedtls_mpi_core_mla #457 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #458 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" + +mbedtls_mpi_core_mla #459 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #460 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" + +mbedtls_mpi_core_mla #461 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" + +mbedtls_mpi_core_mla #462 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" + +mbedtls_mpi_core_mla #463 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #464 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" + +mbedtls_mpi_core_mla #465 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" + +mbedtls_mpi_core_mla #466 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" + +mbedtls_mpi_core_mla #467 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" + +mbedtls_mpi_core_mla #468 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" + +mbedtls_mpi_core_mla #469 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" + +mbedtls_mpi_core_mla #470 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" + +mbedtls_mpi_core_mla #471 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #472 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" + +mbedtls_mpi_core_mla #473 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" + +mbedtls_mpi_core_mla #474 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #475 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" + +mbedtls_mpi_core_mla #476 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" + +mbedtls_mpi_core_mla #477 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" + +mbedtls_mpi_core_mla #478 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" + +mbedtls_mpi_core_mla #479 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" + +mbedtls_mpi_core_mla #480 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" + +mbedtls_mpi_core_mla #481 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" + +mbedtls_mpi_core_mla #482 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" + +mbedtls_mpi_core_mla #483 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" + +mbedtls_mpi_core_mla #484 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" + +mbedtls_mpi_core_mla #485 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" + +mbedtls_mpi_core_mla #486 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" + +mbedtls_mpi_core_mla #487 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" + +mbedtls_mpi_core_mla #488 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" + +mbedtls_mpi_core_mla #489 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" + +mbedtls_mpi_core_mla #490 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" + +mbedtls_mpi_core_mla #491 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" + +mbedtls_mpi_core_mla #492 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" + +mbedtls_mpi_core_mla #493 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" + +mbedtls_mpi_core_mla #494 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" + +mbedtls_mpi_core_mla #495 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" + +mbedtls_mpi_core_mla #496 0xffffffff + 0x0 * 0x0 +mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #497 0xffffffff + 0x0 * 0x3 +mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #498 0xffffffff + 0x0 * 0xfe +mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #499 0xffffffff + 0x0 * 0xff +mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #500 0xffffffff + 0x0 * 0xffff +mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #501 0xffffffff + 0x0 * 0x10000 +mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #502 0xffffffff + 0x0 * 0xffffffff +mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #503 0xffffffff + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #504 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #505 0xffffffff + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #506 0xffffffff + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #507 0xffffffff + 0x1 * 0x0 +mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #508 0xffffffff + 0x1 * 0x3 +mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" + +mbedtls_mpi_core_mla #509 0xffffffff + 0x1 * 0xfe +mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" + +mbedtls_mpi_core_mla #510 0xffffffff + 0x1 * 0xff +mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" + +mbedtls_mpi_core_mla #511 0xffffffff + 0x1 * 0xffff +mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" + +mbedtls_mpi_core_mla #512 0xffffffff + 0x1 * 0x10000 +mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" + +mbedtls_mpi_core_mla #513 0xffffffff + 0x1 * 0xffffffff +mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" + +mbedtls_mpi_core_mla #514 0xffffffff + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" + +mbedtls_mpi_core_mla #515 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" + +mbedtls_mpi_core_mla #516 0xffffffff + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" + +mbedtls_mpi_core_mla #517 0xffffffff + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" + +mbedtls_mpi_core_mla #518 0xffffffff + 0xfffe * 0x0 +mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #519 0xffffffff + 0xfffe * 0x3 +mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" + +mbedtls_mpi_core_mla #520 0xffffffff + 0xfffe * 0xfe +mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" + +mbedtls_mpi_core_mla #521 0xffffffff + 0xfffe * 0xff +mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" + +mbedtls_mpi_core_mla #522 0xffffffff + 0xfffe * 0xffff +mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" + +mbedtls_mpi_core_mla #523 0xffffffff + 0xfffe * 0x10000 +mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" + +mbedtls_mpi_core_mla #524 0xffffffff + 0xfffe * 0xffffffff +mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" + +mbedtls_mpi_core_mla #525 0xffffffff + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" + +mbedtls_mpi_core_mla #526 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" + +mbedtls_mpi_core_mla #527 0xffffffff + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" + +mbedtls_mpi_core_mla #528 0xffffffff + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" + +mbedtls_mpi_core_mla #529 0xffffffff + 0xffffffff * 0x0 +mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #530 0xffffffff + 0xffffffff * 0x3 +mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" + +mbedtls_mpi_core_mla #531 0xffffffff + 0xffffffff * 0xfe +mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" + +mbedtls_mpi_core_mla #532 0xffffffff + 0xffffffff * 0xff +mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" + +mbedtls_mpi_core_mla #533 0xffffffff + 0xffffffff * 0xffff +mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" + +mbedtls_mpi_core_mla #534 0xffffffff + 0xffffffff * 0x10000 +mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" + +mbedtls_mpi_core_mla #535 0xffffffff + 0xffffffff * 0xffffffff +mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" + +mbedtls_mpi_core_mla #536 0xffffffff + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #537 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" + +mbedtls_mpi_core_mla #538 0xffffffff + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" + +mbedtls_mpi_core_mla #539 0xffffffff + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" + +mbedtls_mpi_core_mla #540 0xffffffff + 0x100000000 * 0x0 +mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #541 0xffffffff + 0x100000000 * 0x3 +mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" + +mbedtls_mpi_core_mla #542 0xffffffff + 0x100000000 * 0xfe +mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" + +mbedtls_mpi_core_mla #543 0xffffffff + 0x100000000 * 0xff +mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" + +mbedtls_mpi_core_mla #544 0xffffffff + 0x100000000 * 0xffff +mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" + +mbedtls_mpi_core_mla #545 0xffffffff + 0x100000000 * 0x10000 +mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" + +mbedtls_mpi_core_mla #546 0xffffffff + 0x100000000 * 0xffffffff +mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #547 0xffffffff + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #548 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" + +mbedtls_mpi_core_mla #549 0xffffffff + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" + +mbedtls_mpi_core_mla #550 0xffffffff + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" + +mbedtls_mpi_core_mla #551 0xffffffff + 0x20000000000000 * 0x0 +mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #552 0xffffffff + 0x20000000000000 * 0x3 +mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" + +mbedtls_mpi_core_mla #553 0xffffffff + 0x20000000000000 * 0xfe +mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" + +mbedtls_mpi_core_mla #554 0xffffffff + 0x20000000000000 * 0xff +mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" + +mbedtls_mpi_core_mla #555 0xffffffff + 0x20000000000000 * 0xffff +mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" + +mbedtls_mpi_core_mla #556 0xffffffff + 0x20000000000000 * 0x10000 +mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" + +mbedtls_mpi_core_mla #557 0xffffffff + 0x20000000000000 * 0xffffffff +mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" + +mbedtls_mpi_core_mla #558 0xffffffff + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" + +mbedtls_mpi_core_mla #559 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" + +mbedtls_mpi_core_mla #560 0xffffffff + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" + +mbedtls_mpi_core_mla #561 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" + +mbedtls_mpi_core_mla #562 0xffffffff + 0xffffffffffffffff * 0x0 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #563 0xffffffff + 0xffffffffffffffff * 0x3 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" + +mbedtls_mpi_core_mla #564 0xffffffff + 0xffffffffffffffff * 0xfe +mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" + +mbedtls_mpi_core_mla #565 0xffffffff + 0xffffffffffffffff * 0xff +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" + +mbedtls_mpi_core_mla #566 0xffffffff + 0xffffffffffffffff * 0xffff +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" + +mbedtls_mpi_core_mla #567 0xffffffff + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" + +mbedtls_mpi_core_mla #568 0xffffffff + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" + +mbedtls_mpi_core_mla #569 0xffffffff + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" + +mbedtls_mpi_core_mla #570 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #571 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #572 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" + +mbedtls_mpi_core_mla #573 0xffffffff + 0x10000000000000000 * 0x0 +mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #574 0xffffffff + 0x10000000000000000 * 0x3 +mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" + +mbedtls_mpi_core_mla #575 0xffffffff + 0x10000000000000000 * 0xfe +mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" + +mbedtls_mpi_core_mla #576 0xffffffff + 0x10000000000000000 * 0xff +mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #577 0xffffffff + 0x10000000000000000 * 0xffff +mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #578 0xffffffff + 0x10000000000000000 * 0x10000 +mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #579 0xffffffff + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" + +mbedtls_mpi_core_mla #580 0xffffffff + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #581 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" + +mbedtls_mpi_core_mla #582 0xffffffff + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #583 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" + +mbedtls_mpi_core_mla #584 0xffffffff + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #585 0xffffffff + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #586 0xffffffff + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #587 0xffffffff + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" + +mbedtls_mpi_core_mla #588 0xffffffff + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" + +mbedtls_mpi_core_mla #589 0xffffffff + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #590 0xffffffff + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" + +mbedtls_mpi_core_mla #591 0xffffffff + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #592 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" + +mbedtls_mpi_core_mla #593 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" + +mbedtls_mpi_core_mla #594 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" + +mbedtls_mpi_core_mla #595 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #596 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" + +mbedtls_mpi_core_mla #597 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" + +mbedtls_mpi_core_mla #598 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" + +mbedtls_mpi_core_mla #599 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" + +mbedtls_mpi_core_mla #600 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" + +mbedtls_mpi_core_mla #601 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" + +mbedtls_mpi_core_mla #602 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" + +mbedtls_mpi_core_mla #603 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #604 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #605 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" + +mbedtls_mpi_core_mla #606 0xffffffff + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #607 0xffffffff + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #608 0xffffffff + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #609 0xffffffff + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #610 0xffffffff + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #611 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #612 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #613 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #614 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #615 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #616 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #617 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #618 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #619 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #620 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" + +mbedtls_mpi_core_mla #621 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" + +mbedtls_mpi_core_mla #622 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #623 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" + +mbedtls_mpi_core_mla #624 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #625 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" + +mbedtls_mpi_core_mla #626 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" + +mbedtls_mpi_core_mla #627 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" + +mbedtls_mpi_core_mla #628 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #629 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" + +mbedtls_mpi_core_mla #630 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" + +mbedtls_mpi_core_mla #631 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" + +mbedtls_mpi_core_mla #632 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" + +mbedtls_mpi_core_mla #633 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" + +mbedtls_mpi_core_mla #634 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" + +mbedtls_mpi_core_mla #635 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" + +mbedtls_mpi_core_mla #636 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #637 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #638 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" + +mbedtls_mpi_core_mla #639 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #640 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" + +mbedtls_mpi_core_mla #641 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" + +mbedtls_mpi_core_mla #642 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" + +mbedtls_mpi_core_mla #643 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" + +mbedtls_mpi_core_mla #644 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" + +mbedtls_mpi_core_mla #645 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" + +mbedtls_mpi_core_mla #646 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" + +mbedtls_mpi_core_mla #647 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" + +mbedtls_mpi_core_mla #648 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" + +mbedtls_mpi_core_mla #649 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" + +mbedtls_mpi_core_mla #650 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" + +mbedtls_mpi_core_mla #651 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" + +mbedtls_mpi_core_mla #652 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" + +mbedtls_mpi_core_mla #653 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" + +mbedtls_mpi_core_mla #654 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" + +mbedtls_mpi_core_mla #655 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" + +mbedtls_mpi_core_mla #656 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" + +mbedtls_mpi_core_mla #657 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" + +mbedtls_mpi_core_mla #658 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #659 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #660 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #661 0x100000000 + 0x0 * 0x0 +mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #662 0x100000000 + 0x0 * 0x3 +mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #663 0x100000000 + 0x0 * 0xfe +mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #664 0x100000000 + 0x0 * 0xff +mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #665 0x100000000 + 0x0 * 0xffff +mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #666 0x100000000 + 0x0 * 0x10000 +mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #667 0x100000000 + 0x0 * 0xffffffff +mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #668 0x100000000 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #669 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #670 0x100000000 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #671 0x100000000 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #672 0x100000000 + 0x1 * 0x0 +mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #673 0x100000000 + 0x1 * 0x3 +mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" + +mbedtls_mpi_core_mla #674 0x100000000 + 0x1 * 0xfe +mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" + +mbedtls_mpi_core_mla #675 0x100000000 + 0x1 * 0xff +mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" + +mbedtls_mpi_core_mla #676 0x100000000 + 0x1 * 0xffff +mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" + +mbedtls_mpi_core_mla #677 0x100000000 + 0x1 * 0x10000 +mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" + +mbedtls_mpi_core_mla #678 0x100000000 + 0x1 * 0xffffffff +mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" + +mbedtls_mpi_core_mla #679 0x100000000 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" + +mbedtls_mpi_core_mla #680 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" + +mbedtls_mpi_core_mla #681 0x100000000 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" + +mbedtls_mpi_core_mla #682 0x100000000 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #683 0x100000000 + 0xfffe * 0x0 +mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #684 0x100000000 + 0xfffe * 0x3 +mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" + +mbedtls_mpi_core_mla #685 0x100000000 + 0xfffe * 0xfe +mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" + +mbedtls_mpi_core_mla #686 0x100000000 + 0xfffe * 0xff +mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" + +mbedtls_mpi_core_mla #687 0x100000000 + 0xfffe * 0xffff +mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" + +mbedtls_mpi_core_mla #688 0x100000000 + 0xfffe * 0x10000 +mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" + +mbedtls_mpi_core_mla #689 0x100000000 + 0xfffe * 0xffffffff +mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" + +mbedtls_mpi_core_mla #690 0x100000000 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" + +mbedtls_mpi_core_mla #691 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" + +mbedtls_mpi_core_mla #692 0x100000000 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" + +mbedtls_mpi_core_mla #693 0x100000000 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" + +mbedtls_mpi_core_mla #694 0x100000000 + 0xffffffff * 0x0 +mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #695 0x100000000 + 0xffffffff * 0x3 +mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" + +mbedtls_mpi_core_mla #696 0x100000000 + 0xffffffff * 0xfe +mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" + +mbedtls_mpi_core_mla #697 0x100000000 + 0xffffffff * 0xff +mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" + +mbedtls_mpi_core_mla #698 0x100000000 + 0xffffffff * 0xffff +mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" + +mbedtls_mpi_core_mla #699 0x100000000 + 0xffffffff * 0x10000 +mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" + +mbedtls_mpi_core_mla #700 0x100000000 + 0xffffffff * 0xffffffff +mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" + +mbedtls_mpi_core_mla #701 0x100000000 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #702 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" + +mbedtls_mpi_core_mla #703 0x100000000 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" + +mbedtls_mpi_core_mla #704 0x100000000 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" + +mbedtls_mpi_core_mla #705 0x100000000 + 0x100000000 * 0x0 +mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #706 0x100000000 + 0x100000000 * 0x3 +mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" + +mbedtls_mpi_core_mla #707 0x100000000 + 0x100000000 * 0xfe +mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" + +mbedtls_mpi_core_mla #708 0x100000000 + 0x100000000 * 0xff +mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" + +mbedtls_mpi_core_mla #709 0x100000000 + 0x100000000 * 0xffff +mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" + +mbedtls_mpi_core_mla #710 0x100000000 + 0x100000000 * 0x10000 +mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" + +mbedtls_mpi_core_mla #711 0x100000000 + 0x100000000 * 0xffffffff +mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" + +mbedtls_mpi_core_mla #712 0x100000000 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" + +mbedtls_mpi_core_mla #713 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #714 0x100000000 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" + +mbedtls_mpi_core_mla #715 0x100000000 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #716 0x100000000 + 0x20000000000000 * 0x0 +mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #717 0x100000000 + 0x20000000000000 * 0x3 +mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" + +mbedtls_mpi_core_mla #718 0x100000000 + 0x20000000000000 * 0xfe +mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" + +mbedtls_mpi_core_mla #719 0x100000000 + 0x20000000000000 * 0xff +mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" + +mbedtls_mpi_core_mla #720 0x100000000 + 0x20000000000000 * 0xffff +mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" + +mbedtls_mpi_core_mla #721 0x100000000 + 0x20000000000000 * 0x10000 +mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" + +mbedtls_mpi_core_mla #722 0x100000000 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" + +mbedtls_mpi_core_mla #723 0x100000000 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" + +mbedtls_mpi_core_mla #724 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" + +mbedtls_mpi_core_mla #725 0x100000000 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" + +mbedtls_mpi_core_mla #726 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #727 0x100000000 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #728 0x100000000 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" + +mbedtls_mpi_core_mla #729 0x100000000 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" + +mbedtls_mpi_core_mla #730 0x100000000 + 0xffffffffffffffff * 0xff +mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" + +mbedtls_mpi_core_mla #731 0x100000000 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" + +mbedtls_mpi_core_mla #732 0x100000000 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" + +mbedtls_mpi_core_mla #733 0x100000000 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" + +mbedtls_mpi_core_mla #734 0x100000000 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" + +mbedtls_mpi_core_mla #735 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #736 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #737 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #738 0x100000000 + 0x10000000000000000 * 0x0 +mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #739 0x100000000 + 0x10000000000000000 * 0x3 +mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" + +mbedtls_mpi_core_mla #740 0x100000000 + 0x10000000000000000 * 0xfe +mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" + +mbedtls_mpi_core_mla #741 0x100000000 + 0x10000000000000000 * 0xff +mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" + +mbedtls_mpi_core_mla #742 0x100000000 + 0x10000000000000000 * 0xffff +mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" + +mbedtls_mpi_core_mla #743 0x100000000 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" + +mbedtls_mpi_core_mla #744 0x100000000 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" + +mbedtls_mpi_core_mla #745 0x100000000 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" + +mbedtls_mpi_core_mla #746 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" + +mbedtls_mpi_core_mla #747 0x100000000 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #748 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" + +mbedtls_mpi_core_mla #749 0x100000000 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #750 0x100000000 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #751 0x100000000 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #752 0x100000000 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" + +mbedtls_mpi_core_mla #753 0x100000000 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" + +mbedtls_mpi_core_mla #754 0x100000000 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" + +mbedtls_mpi_core_mla #755 0x100000000 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" + +mbedtls_mpi_core_mla #756 0x100000000 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #757 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" + +mbedtls_mpi_core_mla #758 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" + +mbedtls_mpi_core_mla #759 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" + +mbedtls_mpi_core_mla #760 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #761 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" + +mbedtls_mpi_core_mla #762 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" + +mbedtls_mpi_core_mla #763 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" + +mbedtls_mpi_core_mla #764 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" + +mbedtls_mpi_core_mla #765 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" + +mbedtls_mpi_core_mla #766 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" + +mbedtls_mpi_core_mla #767 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" + +mbedtls_mpi_core_mla #768 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #769 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #770 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #771 0x100000000 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #772 0x100000000 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #773 0x100000000 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #774 0x100000000 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #775 0x100000000 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #776 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #777 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #778 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #779 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #780 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #781 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #782 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #783 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #784 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #785 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" + +mbedtls_mpi_core_mla #786 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" + +mbedtls_mpi_core_mla #787 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" + +mbedtls_mpi_core_mla #788 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" + +mbedtls_mpi_core_mla #789 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #790 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" + +mbedtls_mpi_core_mla #791 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" + +mbedtls_mpi_core_mla #792 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" + +mbedtls_mpi_core_mla #793 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #794 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" + +mbedtls_mpi_core_mla #795 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" + +mbedtls_mpi_core_mla #796 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" + +mbedtls_mpi_core_mla #797 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" + +mbedtls_mpi_core_mla #798 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" + +mbedtls_mpi_core_mla #799 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" + +mbedtls_mpi_core_mla #800 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" + +mbedtls_mpi_core_mla #801 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #802 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #803 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #804 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #805 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" + +mbedtls_mpi_core_mla #806 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" + +mbedtls_mpi_core_mla #807 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" + +mbedtls_mpi_core_mla #808 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" + +mbedtls_mpi_core_mla #809 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" + +mbedtls_mpi_core_mla #810 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" + +mbedtls_mpi_core_mla #811 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" + +mbedtls_mpi_core_mla #812 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" + +mbedtls_mpi_core_mla #813 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" + +mbedtls_mpi_core_mla #814 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" + +mbedtls_mpi_core_mla #815 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" + +mbedtls_mpi_core_mla #816 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" + +mbedtls_mpi_core_mla #817 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" + +mbedtls_mpi_core_mla #818 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" + +mbedtls_mpi_core_mla #819 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" + +mbedtls_mpi_core_mla #820 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" + +mbedtls_mpi_core_mla #821 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" + +mbedtls_mpi_core_mla #822 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" + +mbedtls_mpi_core_mla #823 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #824 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" + +mbedtls_mpi_core_mla #825 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #826 0x20000000000000 + 0x0 * 0x0 +mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #827 0x20000000000000 + 0x0 * 0x3 +mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #828 0x20000000000000 + 0x0 * 0xfe +mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #829 0x20000000000000 + 0x0 * 0xff +mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #830 0x20000000000000 + 0x0 * 0xffff +mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #831 0x20000000000000 + 0x0 * 0x10000 +mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #832 0x20000000000000 + 0x0 * 0xffffffff +mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #833 0x20000000000000 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #834 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #835 0x20000000000000 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #836 0x20000000000000 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #837 0x20000000000000 + 0x1 * 0x0 +mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #838 0x20000000000000 + 0x1 * 0x3 +mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" + +mbedtls_mpi_core_mla #839 0x20000000000000 + 0x1 * 0xfe +mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" + +mbedtls_mpi_core_mla #840 0x20000000000000 + 0x1 * 0xff +mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" + +mbedtls_mpi_core_mla #841 0x20000000000000 + 0x1 * 0xffff +mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" + +mbedtls_mpi_core_mla #842 0x20000000000000 + 0x1 * 0x10000 +mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" + +mbedtls_mpi_core_mla #843 0x20000000000000 + 0x1 * 0xffffffff +mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" + +mbedtls_mpi_core_mla #844 0x20000000000000 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" + +mbedtls_mpi_core_mla #845 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #846 0x20000000000000 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" + +mbedtls_mpi_core_mla #847 0x20000000000000 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" + +mbedtls_mpi_core_mla #848 0x20000000000000 + 0xfffe * 0x0 +mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #849 0x20000000000000 + 0xfffe * 0x3 +mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" + +mbedtls_mpi_core_mla #850 0x20000000000000 + 0xfffe * 0xfe +mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" + +mbedtls_mpi_core_mla #851 0x20000000000000 + 0xfffe * 0xff +mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" + +mbedtls_mpi_core_mla #852 0x20000000000000 + 0xfffe * 0xffff +mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" + +mbedtls_mpi_core_mla #853 0x20000000000000 + 0xfffe * 0x10000 +mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" + +mbedtls_mpi_core_mla #854 0x20000000000000 + 0xfffe * 0xffffffff +mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" + +mbedtls_mpi_core_mla #855 0x20000000000000 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" + +mbedtls_mpi_core_mla #856 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" + +mbedtls_mpi_core_mla #857 0x20000000000000 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" + +mbedtls_mpi_core_mla #858 0x20000000000000 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" + +mbedtls_mpi_core_mla #859 0x20000000000000 + 0xffffffff * 0x0 +mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #860 0x20000000000000 + 0xffffffff * 0x3 +mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" + +mbedtls_mpi_core_mla #861 0x20000000000000 + 0xffffffff * 0xfe +mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" + +mbedtls_mpi_core_mla #862 0x20000000000000 + 0xffffffff * 0xff +mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" + +mbedtls_mpi_core_mla #863 0x20000000000000 + 0xffffffff * 0xffff +mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" + +mbedtls_mpi_core_mla #864 0x20000000000000 + 0xffffffff * 0x10000 +mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" + +mbedtls_mpi_core_mla #865 0x20000000000000 + 0xffffffff * 0xffffffff +mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" + +mbedtls_mpi_core_mla #866 0x20000000000000 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" + +mbedtls_mpi_core_mla #867 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" + +mbedtls_mpi_core_mla #868 0x20000000000000 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" + +mbedtls_mpi_core_mla #869 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" + +mbedtls_mpi_core_mla #870 0x20000000000000 + 0x100000000 * 0x0 +mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #871 0x20000000000000 + 0x100000000 * 0x3 +mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" + +mbedtls_mpi_core_mla #872 0x20000000000000 + 0x100000000 * 0xfe +mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" + +mbedtls_mpi_core_mla #873 0x20000000000000 + 0x100000000 * 0xff +mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" + +mbedtls_mpi_core_mla #874 0x20000000000000 + 0x100000000 * 0xffff +mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" + +mbedtls_mpi_core_mla #875 0x20000000000000 + 0x100000000 * 0x10000 +mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" + +mbedtls_mpi_core_mla #876 0x20000000000000 + 0x100000000 * 0xffffffff +mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" + +mbedtls_mpi_core_mla #877 0x20000000000000 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" + +mbedtls_mpi_core_mla #878 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" + +mbedtls_mpi_core_mla #879 0x20000000000000 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" + +mbedtls_mpi_core_mla #880 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" + +mbedtls_mpi_core_mla #881 0x20000000000000 + 0x20000000000000 * 0x0 +mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #882 0x20000000000000 + 0x20000000000000 * 0x3 +mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" + +mbedtls_mpi_core_mla #883 0x20000000000000 + 0x20000000000000 * 0xfe +mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" + +mbedtls_mpi_core_mla #884 0x20000000000000 + 0x20000000000000 * 0xff +mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" + +mbedtls_mpi_core_mla #885 0x20000000000000 + 0x20000000000000 * 0xffff +mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" + +mbedtls_mpi_core_mla #886 0x20000000000000 + 0x20000000000000 * 0x10000 +mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" + +mbedtls_mpi_core_mla #887 0x20000000000000 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" + +mbedtls_mpi_core_mla #888 0x20000000000000 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" + +mbedtls_mpi_core_mla #889 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" + +mbedtls_mpi_core_mla #890 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" + +mbedtls_mpi_core_mla #891 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" + +mbedtls_mpi_core_mla #892 0x20000000000000 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #893 0x20000000000000 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" + +mbedtls_mpi_core_mla #894 0x20000000000000 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" + +mbedtls_mpi_core_mla #895 0x20000000000000 + 0xffffffffffffffff * 0xff +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" + +mbedtls_mpi_core_mla #896 0x20000000000000 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" + +mbedtls_mpi_core_mla #897 0x20000000000000 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" + +mbedtls_mpi_core_mla #898 0x20000000000000 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #899 0x20000000000000 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" + +mbedtls_mpi_core_mla #900 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #901 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #902 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #903 0x20000000000000 + 0x10000000000000000 * 0x0 +mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #904 0x20000000000000 + 0x10000000000000000 * 0x3 +mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" + +mbedtls_mpi_core_mla #905 0x20000000000000 + 0x10000000000000000 * 0xfe +mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" + +mbedtls_mpi_core_mla #906 0x20000000000000 + 0x10000000000000000 * 0xff +mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" + +mbedtls_mpi_core_mla #907 0x20000000000000 + 0x10000000000000000 * 0xffff +mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" + +mbedtls_mpi_core_mla #908 0x20000000000000 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" + +mbedtls_mpi_core_mla #909 0x20000000000000 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" + +mbedtls_mpi_core_mla #910 0x20000000000000 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" + +mbedtls_mpi_core_mla #911 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" + +mbedtls_mpi_core_mla #912 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #913 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" + +mbedtls_mpi_core_mla #914 0x20000000000000 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #915 0x20000000000000 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #916 0x20000000000000 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #917 0x20000000000000 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" + +mbedtls_mpi_core_mla #918 0x20000000000000 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" + +mbedtls_mpi_core_mla #919 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #920 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" + +mbedtls_mpi_core_mla #921 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #922 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" + +mbedtls_mpi_core_mla #923 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" + +mbedtls_mpi_core_mla #924 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" + +mbedtls_mpi_core_mla #925 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #926 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" + +mbedtls_mpi_core_mla #927 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" + +mbedtls_mpi_core_mla #928 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" + +mbedtls_mpi_core_mla #929 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" + +mbedtls_mpi_core_mla #930 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" + +mbedtls_mpi_core_mla #931 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #932 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #933 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #934 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #935 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #936 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #937 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #938 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #939 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #940 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #941 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #942 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #943 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #944 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #945 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #946 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" + +mbedtls_mpi_core_mla #947 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #948 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #949 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #950 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" + +mbedtls_mpi_core_mla #951 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" + +mbedtls_mpi_core_mla #952 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #953 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" + +mbedtls_mpi_core_mla #954 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #955 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" + +mbedtls_mpi_core_mla #956 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" + +mbedtls_mpi_core_mla #957 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" + +mbedtls_mpi_core_mla #958 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #959 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" + +mbedtls_mpi_core_mla #960 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" + +mbedtls_mpi_core_mla #961 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" + +mbedtls_mpi_core_mla #962 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" + +mbedtls_mpi_core_mla #963 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" + +mbedtls_mpi_core_mla #964 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #965 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" + +mbedtls_mpi_core_mla #966 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #967 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #968 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" + +mbedtls_mpi_core_mla #969 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #970 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" + +mbedtls_mpi_core_mla #971 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #972 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" + +mbedtls_mpi_core_mla #973 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" + +mbedtls_mpi_core_mla #974 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" + +mbedtls_mpi_core_mla #975 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" + +mbedtls_mpi_core_mla #976 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" + +mbedtls_mpi_core_mla #977 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" + +mbedtls_mpi_core_mla #978 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" + +mbedtls_mpi_core_mla #979 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" + +mbedtls_mpi_core_mla #980 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" + +mbedtls_mpi_core_mla #981 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" + +mbedtls_mpi_core_mla #982 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #983 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" + +mbedtls_mpi_core_mla #984 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" + +mbedtls_mpi_core_mla #985 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" + +mbedtls_mpi_core_mla #986 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" + +mbedtls_mpi_core_mla #987 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" + +mbedtls_mpi_core_mla #988 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #989 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #990 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #991 0xffffffffffffffff + 0x0 * 0x0 +mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #992 0xffffffffffffffff + 0x0 * 0x3 +mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #993 0xffffffffffffffff + 0x0 * 0xfe +mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #994 0xffffffffffffffff + 0x0 * 0xff +mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #995 0xffffffffffffffff + 0x0 * 0xffff +mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #996 0xffffffffffffffff + 0x0 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #997 0xffffffffffffffff + 0x0 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #998 0xffffffffffffffff + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #999 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1000 0xffffffffffffffff + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1001 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1002 0xffffffffffffffff + 0x1 * 0x0 +mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1003 0xffffffffffffffff + 0x1 * 0x3 +mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" + +mbedtls_mpi_core_mla #1004 0xffffffffffffffff + 0x1 * 0xfe +mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" + +mbedtls_mpi_core_mla #1005 0xffffffffffffffff + 0x1 * 0xff +mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" + +mbedtls_mpi_core_mla #1006 0xffffffffffffffff + 0x1 * 0xffff +mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #1007 0xffffffffffffffff + 0x1 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" + +mbedtls_mpi_core_mla #1008 0xffffffffffffffff + 0x1 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #1009 0xffffffffffffffff + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #1010 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" + +mbedtls_mpi_core_mla #1011 0xffffffffffffffff + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #1012 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" + +mbedtls_mpi_core_mla #1013 0xffffffffffffffff + 0xfffe * 0x0 +mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1014 0xffffffffffffffff + 0xfffe * 0x3 +mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" + +mbedtls_mpi_core_mla #1015 0xffffffffffffffff + 0xfffe * 0xfe +mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" + +mbedtls_mpi_core_mla #1016 0xffffffffffffffff + 0xfffe * 0xff +mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" + +mbedtls_mpi_core_mla #1017 0xffffffffffffffff + 0xfffe * 0xffff +mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" + +mbedtls_mpi_core_mla #1018 0xffffffffffffffff + 0xfffe * 0x10000 +mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" + +mbedtls_mpi_core_mla #1019 0xffffffffffffffff + 0xfffe * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" + +mbedtls_mpi_core_mla #1020 0xffffffffffffffff + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" + +mbedtls_mpi_core_mla #1021 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" + +mbedtls_mpi_core_mla #1022 0xffffffffffffffff + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" + +mbedtls_mpi_core_mla #1023 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" + +mbedtls_mpi_core_mla #1024 0xffffffffffffffff + 0xffffffff * 0x0 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1025 0xffffffffffffffff + 0xffffffff * 0x3 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" + +mbedtls_mpi_core_mla #1026 0xffffffffffffffff + 0xffffffff * 0xfe +mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" + +mbedtls_mpi_core_mla #1027 0xffffffffffffffff + 0xffffffff * 0xff +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" + +mbedtls_mpi_core_mla #1028 0xffffffffffffffff + 0xffffffff * 0xffff +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" + +mbedtls_mpi_core_mla #1029 0xffffffffffffffff + 0xffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" + +mbedtls_mpi_core_mla #1030 0xffffffffffffffff + 0xffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" + +mbedtls_mpi_core_mla #1031 0xffffffffffffffff + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #1032 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" + +mbedtls_mpi_core_mla #1033 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" + +mbedtls_mpi_core_mla #1034 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" + +mbedtls_mpi_core_mla #1035 0xffffffffffffffff + 0x100000000 * 0x0 +mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1036 0xffffffffffffffff + 0x100000000 * 0x3 +mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" + +mbedtls_mpi_core_mla #1037 0xffffffffffffffff + 0x100000000 * 0xfe +mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" + +mbedtls_mpi_core_mla #1038 0xffffffffffffffff + 0x100000000 * 0xff +mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" + +mbedtls_mpi_core_mla #1039 0xffffffffffffffff + 0x100000000 * 0xffff +mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" + +mbedtls_mpi_core_mla #1040 0xffffffffffffffff + 0x100000000 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" + +mbedtls_mpi_core_mla #1041 0xffffffffffffffff + 0x100000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #1042 0xffffffffffffffff + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #1043 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" + +mbedtls_mpi_core_mla #1044 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" + +mbedtls_mpi_core_mla #1045 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" + +mbedtls_mpi_core_mla #1046 0xffffffffffffffff + 0x20000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1047 0xffffffffffffffff + 0x20000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" + +mbedtls_mpi_core_mla #1048 0xffffffffffffffff + 0x20000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" + +mbedtls_mpi_core_mla #1049 0xffffffffffffffff + 0x20000000000000 * 0xff +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" + +mbedtls_mpi_core_mla #1050 0xffffffffffffffff + 0x20000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" + +mbedtls_mpi_core_mla #1051 0xffffffffffffffff + 0x20000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" + +mbedtls_mpi_core_mla #1052 0xffffffffffffffff + 0x20000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" + +mbedtls_mpi_core_mla #1053 0xffffffffffffffff + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" + +mbedtls_mpi_core_mla #1054 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" + +mbedtls_mpi_core_mla #1055 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" + +mbedtls_mpi_core_mla #1056 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" + +mbedtls_mpi_core_mla #1057 0xffffffffffffffff + 0xffffffffffffffff * 0x0 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1058 0xffffffffffffffff + 0xffffffffffffffff * 0x3 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" + +mbedtls_mpi_core_mla #1059 0xffffffffffffffff + 0xffffffffffffffff * 0xfe +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1060 0xffffffffffffffff + 0xffffffffffffffff * 0xff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #1061 0xffffffffffffffff + 0xffffffffffffffff * 0xffff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #1062 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #1063 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #1064 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #1065 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1066 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #1067 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1068 0xffffffffffffffff + 0x10000000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1069 0xffffffffffffffff + 0x10000000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1070 0xffffffffffffffff + 0x10000000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1071 0xffffffffffffffff + 0x10000000000000000 * 0xff +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1072 0xffffffffffffffff + 0x10000000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1073 0xffffffffffffffff + 0x10000000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1074 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1075 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1076 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1077 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1078 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1079 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1080 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1081 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1082 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" + +mbedtls_mpi_core_mla #1083 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1084 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1085 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1086 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1087 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" + +mbedtls_mpi_core_mla #1088 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1089 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" + +mbedtls_mpi_core_mla #1090 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1091 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" + +mbedtls_mpi_core_mla #1092 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" + +mbedtls_mpi_core_mla #1093 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1094 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" + +mbedtls_mpi_core_mla #1095 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" + +mbedtls_mpi_core_mla #1096 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" + +mbedtls_mpi_core_mla #1097 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" + +mbedtls_mpi_core_mla #1098 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1099 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1100 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1101 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1102 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1103 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1104 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1105 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1106 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1107 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1108 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1109 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1110 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1111 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1112 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1113 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1114 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1115 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" + +mbedtls_mpi_core_mla #1116 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1117 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1118 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1119 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1120 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" + +mbedtls_mpi_core_mla #1121 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" + +mbedtls_mpi_core_mla #1122 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" + +mbedtls_mpi_core_mla #1123 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1124 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" + +mbedtls_mpi_core_mla #1125 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #1126 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #1127 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #1128 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #1129 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #1130 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #1131 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1132 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #1133 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1134 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1135 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #1136 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #1137 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" + +mbedtls_mpi_core_mla #1138 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" + +mbedtls_mpi_core_mla #1139 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" + +mbedtls_mpi_core_mla #1140 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" + +mbedtls_mpi_core_mla #1141 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #1142 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" + +mbedtls_mpi_core_mla #1143 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" + +mbedtls_mpi_core_mla #1144 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" + +mbedtls_mpi_core_mla #1145 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1146 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" + +mbedtls_mpi_core_mla #1147 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" + +mbedtls_mpi_core_mla #1148 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" + +mbedtls_mpi_core_mla #1149 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" + +mbedtls_mpi_core_mla #1150 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" + +mbedtls_mpi_core_mla #1151 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" + +mbedtls_mpi_core_mla #1152 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" + +mbedtls_mpi_core_mla #1153 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #1154 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #1155 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #1156 0x10000000000000000 + 0x0 * 0x0 +mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1157 0x10000000000000000 + 0x0 * 0x3 +mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1158 0x10000000000000000 + 0x0 * 0xfe +mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1159 0x10000000000000000 + 0x0 * 0xff +mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1160 0x10000000000000000 + 0x0 * 0xffff +mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1161 0x10000000000000000 + 0x0 * 0x10000 +mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1162 0x10000000000000000 + 0x0 * 0xffffffff +mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1163 0x10000000000000000 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1164 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1165 0x10000000000000000 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1166 0x10000000000000000 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1167 0x10000000000000000 + 0x1 * 0x0 +mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1168 0x10000000000000000 + 0x1 * 0x3 +mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" + +mbedtls_mpi_core_mla #1169 0x10000000000000000 + 0x1 * 0xfe +mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" + +mbedtls_mpi_core_mla #1170 0x10000000000000000 + 0x1 * 0xff +mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" + +mbedtls_mpi_core_mla #1171 0x10000000000000000 + 0x1 * 0xffff +mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" + +mbedtls_mpi_core_mla #1172 0x10000000000000000 + 0x1 * 0x10000 +mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" + +mbedtls_mpi_core_mla #1173 0x10000000000000000 + 0x1 * 0xffffffff +mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" + +mbedtls_mpi_core_mla #1174 0x10000000000000000 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" + +mbedtls_mpi_core_mla #1175 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #1176 0x10000000000000000 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" + +mbedtls_mpi_core_mla #1177 0x10000000000000000 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #1178 0x10000000000000000 + 0xfffe * 0x0 +mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1179 0x10000000000000000 + 0xfffe * 0x3 +mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" + +mbedtls_mpi_core_mla #1180 0x10000000000000000 + 0xfffe * 0xfe +mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" + +mbedtls_mpi_core_mla #1181 0x10000000000000000 + 0xfffe * 0xff +mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" + +mbedtls_mpi_core_mla #1182 0x10000000000000000 + 0xfffe * 0xffff +mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" + +mbedtls_mpi_core_mla #1183 0x10000000000000000 + 0xfffe * 0x10000 +mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" + +mbedtls_mpi_core_mla #1184 0x10000000000000000 + 0xfffe * 0xffffffff +mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" + +mbedtls_mpi_core_mla #1185 0x10000000000000000 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" + +mbedtls_mpi_core_mla #1186 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" + +mbedtls_mpi_core_mla #1187 0x10000000000000000 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" + +mbedtls_mpi_core_mla #1188 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" + +mbedtls_mpi_core_mla #1189 0x10000000000000000 + 0xffffffff * 0x0 +mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1190 0x10000000000000000 + 0xffffffff * 0x3 +mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" + +mbedtls_mpi_core_mla #1191 0x10000000000000000 + 0xffffffff * 0xfe +mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" + +mbedtls_mpi_core_mla #1192 0x10000000000000000 + 0xffffffff * 0xff +mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" + +mbedtls_mpi_core_mla #1193 0x10000000000000000 + 0xffffffff * 0xffff +mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" + +mbedtls_mpi_core_mla #1194 0x10000000000000000 + 0xffffffff * 0x10000 +mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" + +mbedtls_mpi_core_mla #1195 0x10000000000000000 + 0xffffffff * 0xffffffff +mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" + +mbedtls_mpi_core_mla #1196 0x10000000000000000 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1197 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" + +mbedtls_mpi_core_mla #1198 0x10000000000000000 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" + +mbedtls_mpi_core_mla #1199 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" + +mbedtls_mpi_core_mla #1200 0x10000000000000000 + 0x100000000 * 0x0 +mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1201 0x10000000000000000 + 0x100000000 * 0x3 +mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" + +mbedtls_mpi_core_mla #1202 0x10000000000000000 + 0x100000000 * 0xfe +mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" + +mbedtls_mpi_core_mla #1203 0x10000000000000000 + 0x100000000 * 0xff +mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" + +mbedtls_mpi_core_mla #1204 0x10000000000000000 + 0x100000000 * 0xffff +mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" + +mbedtls_mpi_core_mla #1205 0x10000000000000000 + 0x100000000 * 0x10000 +mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" + +mbedtls_mpi_core_mla #1206 0x10000000000000000 + 0x100000000 * 0xffffffff +mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1207 0x10000000000000000 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" + +mbedtls_mpi_core_mla #1208 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" + +mbedtls_mpi_core_mla #1209 0x10000000000000000 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" + +mbedtls_mpi_core_mla #1210 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" + +mbedtls_mpi_core_mla #1211 0x10000000000000000 + 0x20000000000000 * 0x0 +mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1212 0x10000000000000000 + 0x20000000000000 * 0x3 +mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" + +mbedtls_mpi_core_mla #1213 0x10000000000000000 + 0x20000000000000 * 0xfe +mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" + +mbedtls_mpi_core_mla #1214 0x10000000000000000 + 0x20000000000000 * 0xff +mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" + +mbedtls_mpi_core_mla #1215 0x10000000000000000 + 0x20000000000000 * 0xffff +mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" + +mbedtls_mpi_core_mla #1216 0x10000000000000000 + 0x20000000000000 * 0x10000 +mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" + +mbedtls_mpi_core_mla #1217 0x10000000000000000 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" + +mbedtls_mpi_core_mla #1218 0x10000000000000000 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" + +mbedtls_mpi_core_mla #1219 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" + +mbedtls_mpi_core_mla #1220 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1221 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" + +mbedtls_mpi_core_mla #1222 0x10000000000000000 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1223 0x10000000000000000 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" + +mbedtls_mpi_core_mla #1224 0x10000000000000000 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1225 0x10000000000000000 + 0xffffffffffffffff * 0xff +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" + +mbedtls_mpi_core_mla #1226 0x10000000000000000 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" + +mbedtls_mpi_core_mla #1227 0x10000000000000000 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" + +mbedtls_mpi_core_mla #1228 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" + +mbedtls_mpi_core_mla #1229 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1230 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" + +mbedtls_mpi_core_mla #1231 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" + +mbedtls_mpi_core_mla #1232 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" + +mbedtls_mpi_core_mla #1233 0x10000000000000000 + 0x10000000000000000 * 0x0 +mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1234 0x10000000000000000 + 0x10000000000000000 * 0x3 +mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" + +mbedtls_mpi_core_mla #1235 0x10000000000000000 + 0x10000000000000000 * 0xfe +mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" + +mbedtls_mpi_core_mla #1236 0x10000000000000000 + 0x10000000000000000 * 0xff +mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" + +mbedtls_mpi_core_mla #1237 0x10000000000000000 + 0x10000000000000000 * 0xffff +mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" + +mbedtls_mpi_core_mla #1238 0x10000000000000000 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" + +mbedtls_mpi_core_mla #1239 0x10000000000000000 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1240 0x10000000000000000 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1241 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" + +mbedtls_mpi_core_mla #1242 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1243 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1244 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1245 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1246 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1247 0x10000000000000000 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" + +mbedtls_mpi_core_mla #1248 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1249 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1250 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1251 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1252 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #1253 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" + +mbedtls_mpi_core_mla #1254 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" + +mbedtls_mpi_core_mla #1255 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1256 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" + +mbedtls_mpi_core_mla #1257 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" + +mbedtls_mpi_core_mla #1258 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1259 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" + +mbedtls_mpi_core_mla #1260 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #1261 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" + +mbedtls_mpi_core_mla #1262 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #1263 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1264 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1265 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1266 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1267 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1268 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1269 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1270 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1271 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1272 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1273 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1274 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1275 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1276 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1277 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1278 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1279 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1280 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" + +mbedtls_mpi_core_mla #1281 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1282 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1283 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1284 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1285 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #1286 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" + +mbedtls_mpi_core_mla #1287 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" + +mbedtls_mpi_core_mla #1288 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1289 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" + +mbedtls_mpi_core_mla #1290 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1291 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" + +mbedtls_mpi_core_mla #1292 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #1293 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" + +mbedtls_mpi_core_mla #1294 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #1295 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" + +mbedtls_mpi_core_mla #1296 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1297 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" + +mbedtls_mpi_core_mla #1298 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1299 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1300 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1301 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1302 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" + +mbedtls_mpi_core_mla #1303 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" + +mbedtls_mpi_core_mla #1304 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" + +mbedtls_mpi_core_mla #1305 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1306 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" + +mbedtls_mpi_core_mla #1307 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #1308 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" + +mbedtls_mpi_core_mla #1309 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" + +mbedtls_mpi_core_mla #1310 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" + +mbedtls_mpi_core_mla #1311 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #1312 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #1313 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #1314 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #1315 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #1316 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" + +mbedtls_mpi_core_mla #1317 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" + +mbedtls_mpi_core_mla #1318 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #1319 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #1320 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #1321 0x1234567890abcdef0 + 0x0 * 0x0 +mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1322 0x1234567890abcdef0 + 0x0 * 0x3 +mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1323 0x1234567890abcdef0 + 0x0 * 0xfe +mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1324 0x1234567890abcdef0 + 0x0 * 0xff +mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1325 0x1234567890abcdef0 + 0x0 * 0xffff +mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1326 0x1234567890abcdef0 + 0x0 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1327 0x1234567890abcdef0 + 0x0 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1328 0x1234567890abcdef0 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1329 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1330 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1331 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1332 0x1234567890abcdef0 + 0x1 * 0x0 +mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1333 0x1234567890abcdef0 + 0x1 * 0x3 +mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" + +mbedtls_mpi_core_mla #1334 0x1234567890abcdef0 + 0x1 * 0xfe +mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" + +mbedtls_mpi_core_mla #1335 0x1234567890abcdef0 + 0x1 * 0xff +mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" + +mbedtls_mpi_core_mla #1336 0x1234567890abcdef0 + 0x1 * 0xffff +mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" + +mbedtls_mpi_core_mla #1337 0x1234567890abcdef0 + 0x1 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" + +mbedtls_mpi_core_mla #1338 0x1234567890abcdef0 + 0x1 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #1339 0x1234567890abcdef0 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #1340 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #1341 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1342 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" + +mbedtls_mpi_core_mla #1343 0x1234567890abcdef0 + 0xfffe * 0x0 +mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1344 0x1234567890abcdef0 + 0xfffe * 0x3 +mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" + +mbedtls_mpi_core_mla #1345 0x1234567890abcdef0 + 0xfffe * 0xfe +mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #1346 0x1234567890abcdef0 + 0xfffe * 0xff +mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #1347 0x1234567890abcdef0 + 0xfffe * 0xffff +mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #1348 0x1234567890abcdef0 + 0xfffe * 0x10000 +mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" + +mbedtls_mpi_core_mla #1349 0x1234567890abcdef0 + 0xfffe * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" + +mbedtls_mpi_core_mla #1350 0x1234567890abcdef0 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" + +mbedtls_mpi_core_mla #1351 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #1352 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1353 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" + +mbedtls_mpi_core_mla #1354 0x1234567890abcdef0 + 0xffffffff * 0x0 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1355 0x1234567890abcdef0 + 0xffffffff * 0x3 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #1356 0x1234567890abcdef0 + 0xffffffff * 0xfe +mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" + +mbedtls_mpi_core_mla #1357 0x1234567890abcdef0 + 0xffffffff * 0xff +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" + +mbedtls_mpi_core_mla #1358 0x1234567890abcdef0 + 0xffffffff * 0xffff +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" + +mbedtls_mpi_core_mla #1359 0x1234567890abcdef0 + 0xffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" + +mbedtls_mpi_core_mla #1360 0x1234567890abcdef0 + 0xffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" + +mbedtls_mpi_core_mla #1361 0x1234567890abcdef0 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1362 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #1363 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1364 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" + +mbedtls_mpi_core_mla #1365 0x1234567890abcdef0 + 0x100000000 * 0x0 +mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1366 0x1234567890abcdef0 + 0x100000000 * 0x3 +mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #1367 0x1234567890abcdef0 + 0x100000000 * 0xfe +mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" + +mbedtls_mpi_core_mla #1368 0x1234567890abcdef0 + 0x100000000 * 0xff +mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" + +mbedtls_mpi_core_mla #1369 0x1234567890abcdef0 + 0x100000000 * 0xffff +mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" + +mbedtls_mpi_core_mla #1370 0x1234567890abcdef0 + 0x100000000 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" + +mbedtls_mpi_core_mla #1371 0x1234567890abcdef0 + 0x100000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1372 0x1234567890abcdef0 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1373 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #1374 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1375 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" + +mbedtls_mpi_core_mla #1376 0x1234567890abcdef0 + 0x20000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1377 0x1234567890abcdef0 + 0x20000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #1378 0x1234567890abcdef0 + 0x20000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" + +mbedtls_mpi_core_mla #1379 0x1234567890abcdef0 + 0x20000000000000 * 0xff +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" + +mbedtls_mpi_core_mla #1380 0x1234567890abcdef0 + 0x20000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1381 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1382 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1383 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1384 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #1385 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1386 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" + +mbedtls_mpi_core_mla #1387 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1388 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" + +mbedtls_mpi_core_mla #1389 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1390 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" + +mbedtls_mpi_core_mla #1391 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" + +mbedtls_mpi_core_mla #1392 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" + +mbedtls_mpi_core_mla #1393 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" + +mbedtls_mpi_core_mla #1394 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1395 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #1396 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1397 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #1398 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1399 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1400 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1401 0x1234567890abcdef0 + 0x10000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1402 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1403 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1404 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1405 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1406 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1407 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1408 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1409 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1410 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1411 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" + +mbedtls_mpi_core_mla #1412 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1413 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1414 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1415 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1416 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1417 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #1418 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1419 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" + +mbedtls_mpi_core_mla #1420 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1421 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" + +mbedtls_mpi_core_mla #1422 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" + +mbedtls_mpi_core_mla #1423 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" + +mbedtls_mpi_core_mla #1424 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" + +mbedtls_mpi_core_mla #1425 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" + +mbedtls_mpi_core_mla #1426 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" + +mbedtls_mpi_core_mla #1427 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" + +mbedtls_mpi_core_mla #1428 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" + +mbedtls_mpi_core_mla #1429 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" + +mbedtls_mpi_core_mla #1430 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" + +mbedtls_mpi_core_mla #1431 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1432 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1433 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1434 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1435 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1436 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1437 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1438 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1439 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1440 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1441 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1442 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1443 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1444 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" + +mbedtls_mpi_core_mla #1445 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1446 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1447 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1448 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1449 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1450 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" + +mbedtls_mpi_core_mla #1451 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" + +mbedtls_mpi_core_mla #1452 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" + +mbedtls_mpi_core_mla #1453 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1454 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" + +mbedtls_mpi_core_mla #1455 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" + +mbedtls_mpi_core_mla #1456 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" + +mbedtls_mpi_core_mla #1457 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" + +mbedtls_mpi_core_mla #1458 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" + +mbedtls_mpi_core_mla #1459 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" + +mbedtls_mpi_core_mla #1460 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" + +mbedtls_mpi_core_mla #1461 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1462 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" + +mbedtls_mpi_core_mla #1463 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1464 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1465 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1466 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" + +mbedtls_mpi_core_mla #1467 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1468 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1469 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1470 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1471 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1472 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #1473 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #1474 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #1475 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1476 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #1477 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #1478 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #1479 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #1480 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #1481 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #1482 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #1483 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #1484 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #1485 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #1486 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1487 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1488 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1489 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1490 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1491 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1492 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1493 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1494 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1495 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1496 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1497 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1498 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" + +mbedtls_mpi_core_mla #1499 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" + +mbedtls_mpi_core_mla #1500 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" + +mbedtls_mpi_core_mla #1501 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" + +mbedtls_mpi_core_mla #1502 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" + +mbedtls_mpi_core_mla #1503 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" + +mbedtls_mpi_core_mla #1504 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" + +mbedtls_mpi_core_mla #1505 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" + +mbedtls_mpi_core_mla #1506 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1507 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" + +mbedtls_mpi_core_mla #1508 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1509 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" + +mbedtls_mpi_core_mla #1510 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" + +mbedtls_mpi_core_mla #1511 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" + +mbedtls_mpi_core_mla #1512 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" + +mbedtls_mpi_core_mla #1513 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" + +mbedtls_mpi_core_mla #1514 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" + +mbedtls_mpi_core_mla #1515 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" + +mbedtls_mpi_core_mla #1516 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" + +mbedtls_mpi_core_mla #1517 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1518 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" + +mbedtls_mpi_core_mla #1519 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1520 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" + +mbedtls_mpi_core_mla #1521 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" + +mbedtls_mpi_core_mla #1522 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" + +mbedtls_mpi_core_mla #1523 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" + +mbedtls_mpi_core_mla #1524 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" + +mbedtls_mpi_core_mla #1525 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" + +mbedtls_mpi_core_mla #1526 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1527 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" + +mbedtls_mpi_core_mla #1528 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1529 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" + +mbedtls_mpi_core_mla #1530 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1531 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" + +mbedtls_mpi_core_mla #1532 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" + +mbedtls_mpi_core_mla #1533 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" + +mbedtls_mpi_core_mla #1534 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" + +mbedtls_mpi_core_mla #1535 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" + +mbedtls_mpi_core_mla #1536 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1537 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1538 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" + +mbedtls_mpi_core_mla #1539 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1540 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" + +mbedtls_mpi_core_mla #1541 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1542 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" + +mbedtls_mpi_core_mla #1543 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" + +mbedtls_mpi_core_mla #1544 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" + +mbedtls_mpi_core_mla #1545 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1546 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1547 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1548 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1549 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" + +mbedtls_mpi_core_mla #1550 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1551 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" + +mbedtls_mpi_core_mla #1552 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1553 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" + +mbedtls_mpi_core_mla #1554 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" + +mbedtls_mpi_core_mla #1555 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" + +mbedtls_mpi_core_mla #1556 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" + +mbedtls_mpi_core_mla #1557 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" + +mbedtls_mpi_core_mla #1558 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" + +mbedtls_mpi_core_mla #1559 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" + +mbedtls_mpi_core_mla #1560 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" + +mbedtls_mpi_core_mla #1561 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" + +mbedtls_mpi_core_mla #1562 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" + +mbedtls_mpi_core_mla #1563 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1564 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1565 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1566 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1567 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1568 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1569 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1570 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1571 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1572 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1573 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1574 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1575 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" + +mbedtls_mpi_core_mla #1576 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" + +mbedtls_mpi_core_mla #1577 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" + +mbedtls_mpi_core_mla #1578 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" + +mbedtls_mpi_core_mla #1579 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" + +mbedtls_mpi_core_mla #1580 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" + +mbedtls_mpi_core_mla #1581 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" + +mbedtls_mpi_core_mla #1582 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" + +mbedtls_mpi_core_mla #1583 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" + +mbedtls_mpi_core_mla #1584 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" + +mbedtls_mpi_core_mla #1585 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1586 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" + +mbedtls_mpi_core_mla #1587 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1588 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" + +mbedtls_mpi_core_mla #1589 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" + +mbedtls_mpi_core_mla #1590 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" + +mbedtls_mpi_core_mla #1591 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" + +mbedtls_mpi_core_mla #1592 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" + +mbedtls_mpi_core_mla #1593 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1594 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" + +mbedtls_mpi_core_mla #1595 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1596 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1597 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1598 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1599 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1600 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1601 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1602 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1603 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1604 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1605 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1606 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1607 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1608 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" + +mbedtls_mpi_core_mla #1609 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" + +mbedtls_mpi_core_mla #1610 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" + +mbedtls_mpi_core_mla #1611 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" + +mbedtls_mpi_core_mla #1612 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" + +mbedtls_mpi_core_mla #1613 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" + +mbedtls_mpi_core_mla #1614 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" + +mbedtls_mpi_core_mla #1615 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" + +mbedtls_mpi_core_mla #1616 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" + +mbedtls_mpi_core_mla #1617 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" + +mbedtls_mpi_core_mla #1618 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1619 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" + +mbedtls_mpi_core_mla #1620 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" + +mbedtls_mpi_core_mla #1621 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" + +mbedtls_mpi_core_mla #1622 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" + +mbedtls_mpi_core_mla #1623 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" + +mbedtls_mpi_core_mla #1624 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" + +mbedtls_mpi_core_mla #1625 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" + +mbedtls_mpi_core_mla #1626 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1627 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" + +mbedtls_mpi_core_mla #1628 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1629 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1630 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" + +mbedtls_mpi_core_mla #1631 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" + +mbedtls_mpi_core_mla #1632 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" + +mbedtls_mpi_core_mla #1633 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" + +mbedtls_mpi_core_mla #1634 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" + +mbedtls_mpi_core_mla #1635 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" + +mbedtls_mpi_core_mla #1636 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" + +mbedtls_mpi_core_mla #1637 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" + +mbedtls_mpi_core_mla #1638 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" + +mbedtls_mpi_core_mla #1639 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" + +mbedtls_mpi_core_mla #1640 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" + +mbedtls_mpi_core_mla #1641 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" + +mbedtls_mpi_core_mla #1642 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" + +mbedtls_mpi_core_mla #1643 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" + +mbedtls_mpi_core_mla #1644 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" + +mbedtls_mpi_core_mla #1645 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" + +mbedtls_mpi_core_mla #1646 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" + +mbedtls_mpi_core_mla #1647 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" + +mbedtls_mpi_core_mla #1648 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" + +mbedtls_mpi_core_mla #1649 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" + +mbedtls_mpi_core_mla #1650 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" + +mbedtls_mpi_core_mla #1651 0x100000000000000000000000000000000 + 0x0 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1652 0x100000000000000000000000000000000 + 0x0 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1653 0x100000000000000000000000000000000 + 0x0 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1654 0x100000000000000000000000000000000 + 0x0 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1655 0x100000000000000000000000000000000 + 0x0 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1656 0x100000000000000000000000000000000 + 0x0 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1657 0x100000000000000000000000000000000 + 0x0 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1658 0x100000000000000000000000000000000 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1659 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1660 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1661 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1662 0x100000000000000000000000000000000 + 0x1 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1663 0x100000000000000000000000000000000 + 0x1 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" + +mbedtls_mpi_core_mla #1664 0x100000000000000000000000000000000 + 0x1 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" + +mbedtls_mpi_core_mla #1665 0x100000000000000000000000000000000 + 0x1 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" + +mbedtls_mpi_core_mla #1666 0x100000000000000000000000000000000 + 0x1 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" + +mbedtls_mpi_core_mla #1667 0x100000000000000000000000000000000 + 0x1 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" + +mbedtls_mpi_core_mla #1668 0x100000000000000000000000000000000 + 0x1 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" + +mbedtls_mpi_core_mla #1669 0x100000000000000000000000000000000 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" + +mbedtls_mpi_core_mla #1670 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" + +mbedtls_mpi_core_mla #1671 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" + +mbedtls_mpi_core_mla #1672 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" + +mbedtls_mpi_core_mla #1673 0x100000000000000000000000000000000 + 0xfffe * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1674 0x100000000000000000000000000000000 + 0xfffe * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" + +mbedtls_mpi_core_mla #1675 0x100000000000000000000000000000000 + 0xfffe * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" + +mbedtls_mpi_core_mla #1676 0x100000000000000000000000000000000 + 0xfffe * 0xff +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" + +mbedtls_mpi_core_mla #1677 0x100000000000000000000000000000000 + 0xfffe * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" + +mbedtls_mpi_core_mla #1678 0x100000000000000000000000000000000 + 0xfffe * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" + +mbedtls_mpi_core_mla #1679 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" + +mbedtls_mpi_core_mla #1680 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" + +mbedtls_mpi_core_mla #1681 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" + +mbedtls_mpi_core_mla #1682 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" + +mbedtls_mpi_core_mla #1683 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" + +mbedtls_mpi_core_mla #1684 0x100000000000000000000000000000000 + 0xffffffff * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1685 0x100000000000000000000000000000000 + 0xffffffff * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" + +mbedtls_mpi_core_mla #1686 0x100000000000000000000000000000000 + 0xffffffff * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" + +mbedtls_mpi_core_mla #1687 0x100000000000000000000000000000000 + 0xffffffff * 0xff +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" + +mbedtls_mpi_core_mla #1688 0x100000000000000000000000000000000 + 0xffffffff * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" + +mbedtls_mpi_core_mla #1689 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" + +mbedtls_mpi_core_mla #1690 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" + +mbedtls_mpi_core_mla #1691 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1692 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" + +mbedtls_mpi_core_mla #1693 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" + +mbedtls_mpi_core_mla #1694 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" + +mbedtls_mpi_core_mla #1695 0x100000000000000000000000000000000 + 0x100000000 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1696 0x100000000000000000000000000000000 + 0x100000000 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" + +mbedtls_mpi_core_mla #1697 0x100000000000000000000000000000000 + 0x100000000 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" + +mbedtls_mpi_core_mla #1698 0x100000000000000000000000000000000 + 0x100000000 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" + +mbedtls_mpi_core_mla #1699 0x100000000000000000000000000000000 + 0x100000000 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" + +mbedtls_mpi_core_mla #1700 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" + +mbedtls_mpi_core_mla #1701 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" + +mbedtls_mpi_core_mla #1702 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" + +mbedtls_mpi_core_mla #1703 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" + +mbedtls_mpi_core_mla #1704 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" + +mbedtls_mpi_core_mla #1705 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" + +mbedtls_mpi_core_mla #1706 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1707 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" + +mbedtls_mpi_core_mla #1708 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" + +mbedtls_mpi_core_mla #1709 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" + +mbedtls_mpi_core_mla #1710 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" + +mbedtls_mpi_core_mla #1711 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" + +mbedtls_mpi_core_mla #1712 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" + +mbedtls_mpi_core_mla #1713 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" + +mbedtls_mpi_core_mla #1714 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" + +mbedtls_mpi_core_mla #1715 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1716 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" + +mbedtls_mpi_core_mla #1717 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1718 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" + +mbedtls_mpi_core_mla #1719 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1720 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" + +mbedtls_mpi_core_mla #1721 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" + +mbedtls_mpi_core_mla #1722 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" + +mbedtls_mpi_core_mla #1723 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" + +mbedtls_mpi_core_mla #1724 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" + +mbedtls_mpi_core_mla #1725 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" + +mbedtls_mpi_core_mla #1726 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" + +mbedtls_mpi_core_mla #1727 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" + +mbedtls_mpi_core_mla #1728 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1729 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" + +mbedtls_mpi_core_mla #1730 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" + +mbedtls_mpi_core_mla #1731 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" + +mbedtls_mpi_core_mla #1732 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1733 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" + +mbedtls_mpi_core_mla #1734 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" + +mbedtls_mpi_core_mla #1735 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1736 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #1737 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1738 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" + +mbedtls_mpi_core_mla #1739 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1740 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1741 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1742 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" + +mbedtls_mpi_core_mla #1743 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1744 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1745 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1746 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1747 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" + +mbedtls_mpi_core_mla #1748 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" + +mbedtls_mpi_core_mla #1749 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" + +mbedtls_mpi_core_mla #1750 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1751 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" + +mbedtls_mpi_core_mla #1752 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" + +mbedtls_mpi_core_mla #1753 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" + +mbedtls_mpi_core_mla #1754 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" + +mbedtls_mpi_core_mla #1755 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" + +mbedtls_mpi_core_mla #1756 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" + +mbedtls_mpi_core_mla #1757 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" + +mbedtls_mpi_core_mla #1758 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" + +mbedtls_mpi_core_mla #1759 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" + +mbedtls_mpi_core_mla #1760 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" + +mbedtls_mpi_core_mla #1761 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1762 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1763 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1764 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1765 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1766 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1767 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1768 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1769 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1770 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1771 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1772 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1773 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1774 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1775 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1776 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1777 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1778 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1779 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1780 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" + +mbedtls_mpi_core_mla #1781 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" + +mbedtls_mpi_core_mla #1782 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" + +mbedtls_mpi_core_mla #1783 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1784 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" + +mbedtls_mpi_core_mla #1785 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" + +mbedtls_mpi_core_mla #1786 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" + +mbedtls_mpi_core_mla #1787 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" + +mbedtls_mpi_core_mla #1788 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" + +mbedtls_mpi_core_mla #1789 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" + +mbedtls_mpi_core_mla #1790 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" + +mbedtls_mpi_core_mla #1791 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1792 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" + +mbedtls_mpi_core_mla #1793 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1794 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1795 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" + +mbedtls_mpi_core_mla #1796 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" + +mbedtls_mpi_core_mla #1797 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1798 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" + +mbedtls_mpi_core_mla #1799 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1800 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" + +mbedtls_mpi_core_mla #1801 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1802 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" + +mbedtls_mpi_core_mla #1803 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" + +mbedtls_mpi_core_mla #1804 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" + +mbedtls_mpi_core_mla #1805 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" + +mbedtls_mpi_core_mla #1806 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" + +mbedtls_mpi_core_mla #1807 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" + +mbedtls_mpi_core_mla #1808 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #1809 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" + +mbedtls_mpi_core_mla #1810 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #1811 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" + +mbedtls_mpi_core_mla #1812 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #1813 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" + +mbedtls_mpi_core_mla #1814 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" + +mbedtls_mpi_core_mla #1815 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" + +mbedtls_mpi_core_mla #1816 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1817 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1818 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1819 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1820 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1821 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1822 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1823 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1824 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1825 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1826 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1827 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1828 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" + +mbedtls_mpi_core_mla #1829 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" + +mbedtls_mpi_core_mla #1830 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" + +mbedtls_mpi_core_mla #1831 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" + +mbedtls_mpi_core_mla #1832 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" + +mbedtls_mpi_core_mla #1833 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #1834 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #1835 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #1836 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1837 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" + +mbedtls_mpi_core_mla #1838 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1839 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" + +mbedtls_mpi_core_mla #1840 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #1841 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #1842 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #1843 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" + +mbedtls_mpi_core_mla #1844 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" + +mbedtls_mpi_core_mla #1845 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" + +mbedtls_mpi_core_mla #1846 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #1847 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1848 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" + +mbedtls_mpi_core_mla #1849 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1850 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #1851 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" + +mbedtls_mpi_core_mla #1852 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" + +mbedtls_mpi_core_mla #1853 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" + +mbedtls_mpi_core_mla #1854 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" + +mbedtls_mpi_core_mla #1855 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" + +mbedtls_mpi_core_mla #1856 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1857 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #1858 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1859 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" + +mbedtls_mpi_core_mla #1860 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1861 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #1862 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" + +mbedtls_mpi_core_mla #1863 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" + +mbedtls_mpi_core_mla #1864 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" + +mbedtls_mpi_core_mla #1865 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" + +mbedtls_mpi_core_mla #1866 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1867 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1868 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #1869 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1870 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" + +mbedtls_mpi_core_mla #1871 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1872 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #1873 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" + +mbedtls_mpi_core_mla #1874 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" + +mbedtls_mpi_core_mla #1875 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1876 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1877 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" + +mbedtls_mpi_core_mla #1878 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1879 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #1880 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1881 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" + +mbedtls_mpi_core_mla #1882 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1883 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" + +mbedtls_mpi_core_mla #1884 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1885 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" + +mbedtls_mpi_core_mla #1886 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" + +mbedtls_mpi_core_mla #1887 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #1888 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" + +mbedtls_mpi_core_mla #1889 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #1890 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #1891 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #1892 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #1893 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1894 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1895 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1896 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1897 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1898 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1899 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1900 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1901 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1902 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1903 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1904 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1905 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1906 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" + +mbedtls_mpi_core_mla #1907 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1908 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1909 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1910 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1911 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1912 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #1913 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1914 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #1915 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1916 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" + +mbedtls_mpi_core_mla #1917 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" + +mbedtls_mpi_core_mla #1918 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" + +mbedtls_mpi_core_mla #1919 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" + +mbedtls_mpi_core_mla #1920 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" + +mbedtls_mpi_core_mla #1921 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" + +mbedtls_mpi_core_mla #1922 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" + +mbedtls_mpi_core_mla #1923 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" + +mbedtls_mpi_core_mla #1924 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1925 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" + +mbedtls_mpi_core_mla #1926 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1927 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1928 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1929 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1930 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1931 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1932 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1933 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1934 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1935 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1936 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" + +mbedtls_mpi_core_mla #1937 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1938 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1939 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1940 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1941 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1942 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1943 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1944 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1945 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" + +mbedtls_mpi_core_mla #1946 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" + +mbedtls_mpi_core_mla #1947 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" + +mbedtls_mpi_core_mla #1948 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1949 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" + +mbedtls_mpi_core_mla #1950 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" + +mbedtls_mpi_core_mla #1951 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" + +mbedtls_mpi_core_mla #1952 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" + +mbedtls_mpi_core_mla #1953 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" + +mbedtls_mpi_core_mla #1954 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" + +mbedtls_mpi_core_mla #1955 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" + +mbedtls_mpi_core_mla #1956 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #1957 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" + +mbedtls_mpi_core_mla #1958 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" + +mbedtls_mpi_core_mla #1959 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1960 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #1961 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #1962 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #1963 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #1964 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #1965 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #1966 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #1967 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #1968 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #1969 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #1970 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #1971 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #1972 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #1973 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #1974 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #1975 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #1976 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #1977 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #1978 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #1979 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #1980 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #1981 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1982 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1983 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1984 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1985 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1986 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1987 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1988 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1989 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1990 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1991 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1992 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #1993 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" + +mbedtls_mpi_core_mla #1994 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" + +mbedtls_mpi_core_mla #1995 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" + +mbedtls_mpi_core_mla #1996 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" + +mbedtls_mpi_core_mla #1997 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" + +mbedtls_mpi_core_mla #1998 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" + +mbedtls_mpi_core_mla #1999 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" + +mbedtls_mpi_core_mla #2000 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" + +mbedtls_mpi_core_mla #2001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2002 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" + +mbedtls_mpi_core_mla #2003 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2004 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" + +mbedtls_mpi_core_mla #2005 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" + +mbedtls_mpi_core_mla #2006 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" + +mbedtls_mpi_core_mla #2007 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" + +mbedtls_mpi_core_mla #2008 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" + +mbedtls_mpi_core_mla #2009 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" + +mbedtls_mpi_core_mla #2010 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" + +mbedtls_mpi_core_mla #2011 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" + +mbedtls_mpi_core_mla #2012 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2013 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" + +mbedtls_mpi_core_mla #2014 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2015 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" + +mbedtls_mpi_core_mla #2016 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" + +mbedtls_mpi_core_mla #2017 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" + +mbedtls_mpi_core_mla #2018 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" + +mbedtls_mpi_core_mla #2019 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" + +mbedtls_mpi_core_mla #2020 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" + +mbedtls_mpi_core_mla #2021 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2022 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" + +mbedtls_mpi_core_mla #2023 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2024 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" + +mbedtls_mpi_core_mla #2025 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2026 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" + +mbedtls_mpi_core_mla #2027 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" + +mbedtls_mpi_core_mla #2028 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" + +mbedtls_mpi_core_mla #2029 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" + +mbedtls_mpi_core_mla #2030 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" + +mbedtls_mpi_core_mla #2031 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2032 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2033 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" + +mbedtls_mpi_core_mla #2034 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2035 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" + +mbedtls_mpi_core_mla #2036 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2037 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" + +mbedtls_mpi_core_mla #2038 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" + +mbedtls_mpi_core_mla #2039 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2040 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2041 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2042 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2043 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2044 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" + +mbedtls_mpi_core_mla #2045 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2046 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" + +mbedtls_mpi_core_mla #2047 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2048 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" + +mbedtls_mpi_core_mla #2049 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" + +mbedtls_mpi_core_mla #2050 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" + +mbedtls_mpi_core_mla #2051 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" + +mbedtls_mpi_core_mla #2052 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" + +mbedtls_mpi_core_mla #2053 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" + +mbedtls_mpi_core_mla #2054 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" + +mbedtls_mpi_core_mla #2055 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" + +mbedtls_mpi_core_mla #2056 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" + +mbedtls_mpi_core_mla #2057 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" + +mbedtls_mpi_core_mla #2058 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2059 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2060 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2061 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2062 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2063 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2064 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2065 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2066 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" + +mbedtls_mpi_core_mla #2067 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2068 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2069 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2070 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" + +mbedtls_mpi_core_mla #2071 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" + +mbedtls_mpi_core_mla #2072 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" + +mbedtls_mpi_core_mla #2073 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" + +mbedtls_mpi_core_mla #2074 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" + +mbedtls_mpi_core_mla #2075 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" + +mbedtls_mpi_core_mla #2076 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" + +mbedtls_mpi_core_mla #2077 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" + +mbedtls_mpi_core_mla #2078 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2079 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" + +mbedtls_mpi_core_mla #2080 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2081 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" + +mbedtls_mpi_core_mla #2082 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" + +mbedtls_mpi_core_mla #2083 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" + +mbedtls_mpi_core_mla #2084 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" + +mbedtls_mpi_core_mla #2085 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" + +mbedtls_mpi_core_mla #2086 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" + +mbedtls_mpi_core_mla #2087 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" + +mbedtls_mpi_core_mla #2088 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" + +mbedtls_mpi_core_mla #2089 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" + +mbedtls_mpi_core_mla #2090 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" + +mbedtls_mpi_core_mla #2091 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2092 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2093 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2094 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2095 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2096 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2097 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2098 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2099 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2100 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2101 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2102 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2103 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" + +mbedtls_mpi_core_mla #2104 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" + +mbedtls_mpi_core_mla #2105 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" + +mbedtls_mpi_core_mla #2106 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" + +mbedtls_mpi_core_mla #2107 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" + +mbedtls_mpi_core_mla #2108 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" + +mbedtls_mpi_core_mla #2109 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" + +mbedtls_mpi_core_mla #2110 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" + +mbedtls_mpi_core_mla #2111 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" + +mbedtls_mpi_core_mla #2112 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" + +mbedtls_mpi_core_mla #2113 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2114 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" + +mbedtls_mpi_core_mla #2115 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" + +mbedtls_mpi_core_mla #2116 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" + +mbedtls_mpi_core_mla #2117 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" + +mbedtls_mpi_core_mla #2118 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" + +mbedtls_mpi_core_mla #2119 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" + +mbedtls_mpi_core_mla #2120 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" + +mbedtls_mpi_core_mla #2121 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" + +mbedtls_mpi_core_mla #2122 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" + +mbedtls_mpi_core_mla #2123 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" + +mbedtls_mpi_core_mla #2124 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2125 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" + +mbedtls_mpi_core_mla #2126 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" + +mbedtls_mpi_core_mla #2127 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" + +mbedtls_mpi_core_mla #2128 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" + +mbedtls_mpi_core_mla #2129 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" + +mbedtls_mpi_core_mla #2130 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" + +mbedtls_mpi_core_mla #2131 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" + +mbedtls_mpi_core_mla #2132 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" + +mbedtls_mpi_core_mla #2133 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" + +mbedtls_mpi_core_mla #2134 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" + +mbedtls_mpi_core_mla #2135 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" + +mbedtls_mpi_core_mla #2136 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" + +mbedtls_mpi_core_mla #2137 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" + +mbedtls_mpi_core_mla #2138 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" + +mbedtls_mpi_core_mla #2139 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" + +mbedtls_mpi_core_mla #2140 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" + +mbedtls_mpi_core_mla #2141 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" + +mbedtls_mpi_core_mla #2142 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" + +mbedtls_mpi_core_mla #2143 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" + +mbedtls_mpi_core_mla #2144 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" + +mbedtls_mpi_core_mla #2145 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" + +mbedtls_mpi_core_mla #2146 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2147 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2148 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2149 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2150 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2151 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2152 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2153 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2154 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2155 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2156 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2157 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2158 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" + +mbedtls_mpi_core_mla #2159 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" + +mbedtls_mpi_core_mla #2160 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" + +mbedtls_mpi_core_mla #2161 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" + +mbedtls_mpi_core_mla #2162 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" + +mbedtls_mpi_core_mla #2163 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" + +mbedtls_mpi_core_mla #2164 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" + +mbedtls_mpi_core_mla #2165 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" + +mbedtls_mpi_core_mla #2166 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2167 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" + +mbedtls_mpi_core_mla #2168 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2169 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" + +mbedtls_mpi_core_mla #2170 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" + +mbedtls_mpi_core_mla #2171 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" + +mbedtls_mpi_core_mla #2172 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" + +mbedtls_mpi_core_mla #2173 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" + +mbedtls_mpi_core_mla #2174 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" + +mbedtls_mpi_core_mla #2175 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" + +mbedtls_mpi_core_mla #2176 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" + +mbedtls_mpi_core_mla #2177 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2178 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" + +mbedtls_mpi_core_mla #2179 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2180 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" + +mbedtls_mpi_core_mla #2181 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" + +mbedtls_mpi_core_mla #2182 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" + +mbedtls_mpi_core_mla #2183 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" + +mbedtls_mpi_core_mla #2184 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" + +mbedtls_mpi_core_mla #2185 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" + +mbedtls_mpi_core_mla #2186 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2187 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" + +mbedtls_mpi_core_mla #2188 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2189 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" + +mbedtls_mpi_core_mla #2190 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2191 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" + +mbedtls_mpi_core_mla #2192 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" + +mbedtls_mpi_core_mla #2193 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" + +mbedtls_mpi_core_mla #2194 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" + +mbedtls_mpi_core_mla #2195 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" + +mbedtls_mpi_core_mla #2196 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2197 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2198 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" + +mbedtls_mpi_core_mla #2199 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2200 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" + +mbedtls_mpi_core_mla #2201 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2202 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" + +mbedtls_mpi_core_mla #2203 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" + +mbedtls_mpi_core_mla #2204 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" + +mbedtls_mpi_core_mla #2205 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" + +mbedtls_mpi_core_mla #2206 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2207 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" + +mbedtls_mpi_core_mla #2208 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2209 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" + +mbedtls_mpi_core_mla #2210 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2211 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" + +mbedtls_mpi_core_mla #2212 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2213 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" + +mbedtls_mpi_core_mla #2214 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2215 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" + +mbedtls_mpi_core_mla #2216 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" + +mbedtls_mpi_core_mla #2217 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #2218 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" + +mbedtls_mpi_core_mla #2219 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2220 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #2221 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2222 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" + +mbedtls_mpi_core_mla #2223 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2224 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2225 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2226 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2227 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2228 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2229 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2230 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2231 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2232 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2233 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2234 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2235 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2236 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" + +mbedtls_mpi_core_mla #2237 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2238 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2239 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2240 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2241 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2242 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #2243 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2244 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #2245 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2246 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" + +mbedtls_mpi_core_mla #2247 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" + +mbedtls_mpi_core_mla #2248 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2249 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" + +mbedtls_mpi_core_mla #2250 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" + +mbedtls_mpi_core_mla #2251 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" + +mbedtls_mpi_core_mla #2252 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" + +mbedtls_mpi_core_mla #2253 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" + +mbedtls_mpi_core_mla #2254 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2255 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" + +mbedtls_mpi_core_mla #2256 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2257 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2258 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2259 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2260 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2261 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2262 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2263 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2264 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2265 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2266 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2267 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2268 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2269 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #2270 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2271 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2272 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2273 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2274 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2275 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" + +mbedtls_mpi_core_mla #2276 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2277 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" + +mbedtls_mpi_core_mla #2278 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2279 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" + +mbedtls_mpi_core_mla #2280 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" + +mbedtls_mpi_core_mla #2281 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" + +mbedtls_mpi_core_mla #2282 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" + +mbedtls_mpi_core_mla #2283 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" + +mbedtls_mpi_core_mla #2284 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" + +mbedtls_mpi_core_mla #2285 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" + +mbedtls_mpi_core_mla #2286 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" + +mbedtls_mpi_core_mla #2287 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" + +mbedtls_mpi_core_mla #2288 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" + +mbedtls_mpi_core_mla #2289 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2290 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" + +mbedtls_mpi_core_mla #2291 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" + +mbedtls_mpi_core_mla #2292 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" + +mbedtls_mpi_core_mla #2293 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" + +mbedtls_mpi_core_mla #2294 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" + +mbedtls_mpi_core_mla #2295 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" + +mbedtls_mpi_core_mla #2296 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" + +mbedtls_mpi_core_mla #2297 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" + +mbedtls_mpi_core_mla #2298 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" + +mbedtls_mpi_core_mla #2299 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" + +mbedtls_mpi_core_mla #2300 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" + +mbedtls_mpi_core_mla #2301 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" + +mbedtls_mpi_core_mla #2302 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" + +mbedtls_mpi_core_mla #2303 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" + +mbedtls_mpi_core_mla #2304 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" + +mbedtls_mpi_core_mla #2305 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" + +mbedtls_mpi_core_mla #2306 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" + +mbedtls_mpi_core_mla #2307 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" + +mbedtls_mpi_core_mla #2308 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" + +mbedtls_mpi_core_mla #2309 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" + +mbedtls_mpi_core_mla #2310 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" + +mbedtls_mpi_core_mla #2311 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2312 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2313 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2314 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2315 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2316 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2317 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2318 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2319 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2320 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2321 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2322 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2323 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" + +mbedtls_mpi_core_mla #2324 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" + +mbedtls_mpi_core_mla #2325 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" + +mbedtls_mpi_core_mla #2326 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" + +mbedtls_mpi_core_mla #2327 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" + +mbedtls_mpi_core_mla #2328 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" + +mbedtls_mpi_core_mla #2329 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" + +mbedtls_mpi_core_mla #2330 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" + +mbedtls_mpi_core_mla #2331 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2332 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" + +mbedtls_mpi_core_mla #2333 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2334 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" + +mbedtls_mpi_core_mla #2335 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" + +mbedtls_mpi_core_mla #2336 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" + +mbedtls_mpi_core_mla #2337 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" + +mbedtls_mpi_core_mla #2338 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" + +mbedtls_mpi_core_mla #2339 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" + +mbedtls_mpi_core_mla #2340 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" + +mbedtls_mpi_core_mla #2341 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" + +mbedtls_mpi_core_mla #2342 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2343 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" + +mbedtls_mpi_core_mla #2344 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2345 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" + +mbedtls_mpi_core_mla #2346 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" + +mbedtls_mpi_core_mla #2347 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" + +mbedtls_mpi_core_mla #2348 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" + +mbedtls_mpi_core_mla #2349 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" + +mbedtls_mpi_core_mla #2350 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" + +mbedtls_mpi_core_mla #2351 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2352 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" + +mbedtls_mpi_core_mla #2353 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2354 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" + +mbedtls_mpi_core_mla #2355 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2356 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" + +mbedtls_mpi_core_mla #2357 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" + +mbedtls_mpi_core_mla #2358 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" + +mbedtls_mpi_core_mla #2359 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" + +mbedtls_mpi_core_mla #2360 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" + +mbedtls_mpi_core_mla #2361 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2362 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2363 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" + +mbedtls_mpi_core_mla #2364 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2365 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" + +mbedtls_mpi_core_mla #2366 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2367 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" + +mbedtls_mpi_core_mla #2368 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2369 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2370 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2371 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2372 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2373 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2374 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2375 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2376 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" + +mbedtls_mpi_core_mla #2377 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2378 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" + +mbedtls_mpi_core_mla #2379 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2380 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" + +mbedtls_mpi_core_mla #2381 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" + +mbedtls_mpi_core_mla #2382 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" + +mbedtls_mpi_core_mla #2383 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" + +mbedtls_mpi_core_mla #2384 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2385 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" + +mbedtls_mpi_core_mla #2386 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2387 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" + +mbedtls_mpi_core_mla #2388 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2389 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2390 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2391 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2392 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2393 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2394 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2395 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2396 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2397 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2398 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2399 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2400 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2401 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2402 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2403 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2404 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2405 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2406 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2407 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2408 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2409 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2410 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2411 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" + +mbedtls_mpi_core_mla #2412 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" + +mbedtls_mpi_core_mla #2413 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2414 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" + +mbedtls_mpi_core_mla #2415 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" + +mbedtls_mpi_core_mla #2416 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" + +mbedtls_mpi_core_mla #2417 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" + +mbedtls_mpi_core_mla #2418 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" + +mbedtls_mpi_core_mla #2419 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2420 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" + +mbedtls_mpi_core_mla #2421 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2422 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2423 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2424 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2425 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2426 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2427 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2428 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2429 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2430 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2431 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2432 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2433 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2434 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2435 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2436 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2437 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2438 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2439 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2440 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2441 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2442 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2443 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2444 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" + +mbedtls_mpi_core_mla #2445 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" + +mbedtls_mpi_core_mla #2446 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" + +mbedtls_mpi_core_mla #2447 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" + +mbedtls_mpi_core_mla #2448 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" + +mbedtls_mpi_core_mla #2449 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" + +mbedtls_mpi_core_mla #2450 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" + +mbedtls_mpi_core_mla #2451 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" + +mbedtls_mpi_core_mla #2452 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2453 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" + +mbedtls_mpi_core_mla #2454 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2455 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" + +mbedtls_mpi_core_mla #2456 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" + +mbedtls_mpi_core_mla #2457 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" + +mbedtls_mpi_core_mla #2458 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" + +mbedtls_mpi_core_mla #2459 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" + +mbedtls_mpi_core_mla #2460 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" + +mbedtls_mpi_core_mla #2461 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" + +mbedtls_mpi_core_mla #2462 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" + +mbedtls_mpi_core_mla #2463 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2464 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" + +mbedtls_mpi_core_mla #2465 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" + +mbedtls_mpi_core_mla #2466 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" + +mbedtls_mpi_core_mla #2467 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" + +mbedtls_mpi_core_mla #2468 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" + +mbedtls_mpi_core_mla #2469 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" + +mbedtls_mpi_core_mla #2470 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" + +mbedtls_mpi_core_mla #2471 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" + +mbedtls_mpi_core_mla #2472 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" + +mbedtls_mpi_core_mla #2473 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" + +mbedtls_mpi_core_mla #2474 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" + +mbedtls_mpi_core_mla #2475 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" + +mbedtls_mpi_core_montmul #1 replay +mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" + +mbedtls_mpi_core_montmul #2 replay +mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" + +mbedtls_mpi_core_montmul #3 replay +mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" + +mbedtls_mpi_core_montmul #4 replay +mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36e139aea55215609d2816998ed020bbbd96c37890f65171d948e9bc7cbaa4d9325d24d6a3c12710f10a09fa08ab87":"36e139aea55215609d2816998ed020bbbd96c37890f65171d948e9bc7cbaa4d9325d24d6a3c12710f10a09fa08ab87" + +mbedtls_mpi_core_montmul #5 replay +mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38eb7749f4a5da80f23bc08fd0801c55b103b17a2eef84e60e65383b59f8ca5b":"38eb7749f4a5da80f23bc08fd0801c55b103b17a2eef84e60e65383b59f8ca5b" + +mbedtls_mpi_core_montmul #6 replay +mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1e4426a3d6c425f0630b14113bead742c92b02886267ab41f70c4cb2426aee1faacec6982e0e5be964eca2527a031ed49c371db2a4fb16482f3590c866bf9f81c3d52c7cb9e0ba6ff843ed3b17c44d7f6b14471839d8d31":"1e4426a3d6c425f0630b14113bead742c92b02886267ab41f70c4cb2426aee1faacec6982e0e5be964eca2527a031ed49c371db2a4fb16482f3590c866bf9f81c3d52c7cb9e0ba6ff843ed3b17c44d7f6b14471839d8d31" + +mbedtls_mpi_core_montmul #7 (gen) +mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" + +mbedtls_mpi_core_montmul #8 (gen) +mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" + +mbedtls_mpi_core_montmul #9 (gen) +mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" + +mbedtls_mpi_core_montmul #10 (gen) +mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" + +mbedtls_mpi_core_montmul #11 (gen) +mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" + +mbedtls_mpi_core_montmul #12 (gen) +mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" + +mbedtls_mpi_core_montmul #13 (gen) +mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" + +mbedtls_mpi_core_montmul #14 (gen) +mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" + +mbedtls_mpi_core_montmul #15 (gen) +mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" + +mbedtls_mpi_core_montmul #16 (gen) +mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" + +mbedtls_mpi_core_montmul #17 (gen) +mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" + +mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) +mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" + +mbedtls_mpi_core_montmul #19 (gen) +mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" + +mbedtls_mpi_core_montmul #20 (gen) +mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" + +mbedtls_mpi_core_montmul #21 (gen) +mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" + +mbedtls_mpi_core_montmul #22 (gen) +mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" + +mbedtls_mpi_core_montmul #23 (gen) +mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" + +mbedtls_mpi_core_montmul #24 (gen) +mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" + +mbedtls_mpi_core_montmul #25 (gen) +mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" + +mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) +mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" + +mbedtls_mpi_core_montmul #27 (gen) +mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" + +mbedtls_mpi_core_montmul #28 (gen) +mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" + +mbedtls_mpi_core_montmul #29 (gen) +mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" + +mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) +mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" + +mbedtls_mpi_core_montmul #31 (gen) +mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" + +mbedtls_mpi_core_montmul #32 (gen) +mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" + +mbedtls_mpi_core_montmul #33 (gen) +mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" + +mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) +mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" + +mbedtls_mpi_core_montmul #35 (gen) +mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" + +mbedtls_mpi_core_montmul #36 (gen) +mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" + +mbedtls_mpi_core_montmul #37 (gen) +mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" + +mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) +mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" + +mbedtls_mpi_core_montmul #39 (gen) +mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" + +mbedtls_mpi_core_montmul #40 (gen) +mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" + +mbedtls_mpi_core_montmul #41 (gen) +mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" + +mbedtls_mpi_core_montmul #42 (gen) +mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" + +mbedtls_mpi_core_montmul #43 (gen) +mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" + +mbedtls_mpi_core_montmul #44 (gen) +mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" + +mbedtls_mpi_core_montmul #45 (gen) +mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" + +mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) +mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" + +mbedtls_mpi_core_montmul #47 (gen) +mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" + +mbedtls_mpi_core_montmul #48 (gen) +mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" + +mbedtls_mpi_core_montmul #49 (gen) +mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" + +mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) +mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" + +mbedtls_mpi_core_montmul #51 (gen) +mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" + +mbedtls_mpi_core_montmul #52 (gen) +mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" + +mbedtls_mpi_core_montmul #53 (gen) +mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" + +mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) +mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" + +mbedtls_mpi_core_montmul #55 (gen) +mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" + +mbedtls_mpi_core_montmul #56 (gen) +mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" + +mbedtls_mpi_core_montmul #57 (gen) +mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" + +mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) +mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" + +mbedtls_mpi_core_montmul #59 (gen) +mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" + +mbedtls_mpi_core_montmul #60 (gen) +mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" + +mbedtls_mpi_core_montmul #61 (gen) +mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" + +mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) +mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" + +mbedtls_mpi_core_montmul #63 (gen) +mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" + +mbedtls_mpi_core_montmul #64 (gen) +mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" + +mbedtls_mpi_core_montmul #65 (gen) +mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" + +mbedtls_mpi_core_montmul #66 (start of 2-MPI 4-byte bignums) (0x10000000F is prime) +mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" + +mbedtls_mpi_core_montmul #67 (gen) +mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" + +mbedtls_mpi_core_montmul #68 (gen) +mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" + +mbedtls_mpi_core_montmul #69 (gen) +mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" + +mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 +mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" + +mbedtls_mpi_core_montmul #71 (gen) +mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" + +mbedtls_mpi_core_montmul #72 (gen) +mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" + +mbedtls_mpi_core_montmul #73 (gen) +mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" + +mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) +mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" + +mbedtls_mpi_core_montmul #75 (gen) +mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" + +mbedtls_mpi_core_montmul #76 (gen) +mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" + +mbedtls_mpi_core_montmul #77 (gen) +mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" + +mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) +mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" + +mbedtls_mpi_core_montmul #79 (gen) +mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" + +mbedtls_mpi_core_montmul #80 (gen) +mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" + +mbedtls_mpi_core_montmul #81 (gen) +mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" + +mbedtls_mpi_core_montmul #82 (gen) +mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" + +mbedtls_mpi_core_montmul #83 (gen) +mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" + +mbedtls_mpi_core_montmul #84 (gen) +mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" + +mbedtls_mpi_core_montmul #85 (gen) +mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" + +mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) +mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" + +mbedtls_mpi_core_montmul #87 (gen) +mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" + +mbedtls_mpi_core_montmul #88 (gen) +mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" + +mbedtls_mpi_core_montmul #89 (gen) +mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" + +mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) +mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" + +mbedtls_mpi_core_montmul #91 (gen) +mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" + +mbedtls_mpi_core_montmul #92 (gen) +mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" + +mbedtls_mpi_core_montmul #93 (gen) +mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" + +mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) +mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" + +mbedtls_mpi_core_montmul #95 (gen) +mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" + +mbedtls_mpi_core_montmul #96 (gen) +mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" + +mbedtls_mpi_core_montmul #97 (gen) +mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" + +mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) +mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" + +mbedtls_mpi_core_montmul #99 (gen) +mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" + +mbedtls_mpi_core_montmul #100 (gen) +mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" + +mbedtls_mpi_core_montmul #101 (gen) +mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" + +mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) +mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" + +mbedtls_mpi_core_montmul #103 (gen) +mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" + +mbedtls_mpi_core_montmul #104 (gen) +mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" + +mbedtls_mpi_core_montmul #105 (gen) +mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" + +mbedtls_mpi_core_montmul #106 (gen) +mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" + +mbedtls_mpi_core_montmul #107 (gen) +mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" + +mbedtls_mpi_core_montmul #108 (gen) +mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" + +mbedtls_mpi_core_montmul #109 (gen) +mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" + +mbedtls_mpi_core_montmul #110 (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime(dec) 11111111111111111111111 +mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" + +mbedtls_mpi_core_montmul #111 (gen) +mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" + +mbedtls_mpi_core_montmul #112 (gen) +mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" + +mbedtls_mpi_core_montmul #113 (gen) +mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" + +mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 +mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" + +mbedtls_mpi_core_montmul #115 (gen) +mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" + +mbedtls_mpi_core_montmul #116 (gen) +mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" + +mbedtls_mpi_core_montmul #117 (gen) +mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" + +mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 +mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" + +mbedtls_mpi_core_montmul #119 (gen) +mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" + +mbedtls_mpi_core_montmul #120 (gen) +mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" + +mbedtls_mpi_core_montmul #121 (gen) +mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" + +mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 +mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" + +mbedtls_mpi_core_montmul #123 (gen) +mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" + +mbedtls_mpi_core_montmul #124 (gen) +mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" + +mbedtls_mpi_core_montmul #125 (gen) +mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" + +mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 +mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" + +mbedtls_mpi_core_montmul #127 (gen) +mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" + +mbedtls_mpi_core_montmul #128 (gen) +mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" + +mbedtls_mpi_core_montmul #129 (gen) +mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" + +mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 +mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" + +mbedtls_mpi_core_montmul #131 (gen) +mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" + +mbedtls_mpi_core_montmul #132 (gen) +mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" + +mbedtls_mpi_core_montmul #133 (gen) +mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" + +mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 +mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" + +mbedtls_mpi_core_montmul #135 (gen) +mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" + +mbedtls_mpi_core_montmul #136 (gen) +mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" + +mbedtls_mpi_core_montmul #137 (gen) +mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" + +mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 +mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" + +mbedtls_mpi_core_montmul #139 (gen) +mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" + +mbedtls_mpi_core_montmul #140 (gen) +mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" + +mbedtls_mpi_core_montmul #141 (gen) +mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" + +Core shift 0 >> 0 +mpi_core_shift_r:"00":0:"00" + +Core shift 0 >> 1 +mpi_core_shift_r:"00":1:"00" + +Core shift 0 >> 8 +mpi_core_shift_r:"00":8:"00" + +Core shift 1 >> 0 +mpi_core_shift_r:"01":0:"01" + +Core shift 1 >> 1 +mpi_core_shift_r:"01":1:"00" + +Core shift 1 >> 2 +mpi_core_shift_r:"01":2:"00" + +Core shift 1 >> 8 +mpi_core_shift_r:"01":8:"00" + +Core shift 1 >> 64 +mpi_core_shift_r:"01":64:"00" + +Core shift 64-bit >> 0 +mpi_core_shift_r:"dee5ca1a7ef10a75":0:"dee5ca1a7ef10a75" + +Core shift 64-bit >> 1 +mpi_core_shift_r:"dee5ca1a7ef10a75":1:"6f72e50d3f78853a" + +Core shift 64-bit >> 2 +mpi_core_shift_r:"dee5ca1a7ef10a75":2:"37b972869fbc429d" + +Core shift 64-bit >> 3 +mpi_core_shift_r:"dee5ca1a7ef10a75":3:"1bdcb9434fde214e" + +Core shift 64-bit >> 4 +mpi_core_shift_r:"dee5ca1a7ef10a75":4:"0dee5ca1a7ef10a7" + +Core shift 64-bit >> 5 +mpi_core_shift_r:"dee5ca1a7ef10a75":5:"06f72e50d3f78853" + +Core shift 64-bit >> 6 +mpi_core_shift_r:"dee5ca1a7ef10a75":6:"037b972869fbc429" + +Core shift 64-bit >> 7 +mpi_core_shift_r:"dee5ca1a7ef10a75":7:"01bdcb9434fde214" + +Core shift 64-bit >> 8 +mpi_core_shift_r:"dee5ca1a7ef10a75":8:"00dee5ca1a7ef10a" + +Core shift 64-bit >> 9 +mpi_core_shift_r:"dee5ca1a7ef10a75":9:"006f72e50d3f7885" + +Core shift 64-bit >> 10 +mpi_core_shift_r:"dee5ca1a7ef10a75":10:"0037b972869fbc42" + +Core shift 64-bit >> 31 +mpi_core_shift_r:"dee5ca1a7ef10a75":31:"00000001bdcb9434" + +Core shift 64-bit >> 32 +mpi_core_shift_r:"dee5ca1a7ef10a75":32:"00000000dee5ca1a" + +Core shift 64-bit >> 33 +mpi_core_shift_r:"dee5ca1a7ef10a75":33:"000000006f72e50d" + +Core shift 64-bit >> 63 +mpi_core_shift_r:"dee5ca1a7ef10a75":63:"0000000000000001" + +Core shift 64-bit >> 64 +mpi_core_shift_r:"dee5ca1a7ef10a75":64:"0000000000000000" + +Core shift 64-bit >> 65 +mpi_core_shift_r:"dee5ca1a7ef10a75":65:"0000000000000000" + +Core shift 64-bit >> 71 +mpi_core_shift_r:"dee5ca1a7ef10a75":71:"0000000000000000" + +Core shift 64-bit >> 72 +mpi_core_shift_r:"dee5ca1a7ef10a75":72:"0000000000000000" + +Core shift [leading 0 limb] >> 0 +mpi_core_shift_r:"002e7ab0070ad57001":0:"002e7ab0070ad57001" + +Core shift [leading 0 limb] >> 1 +mpi_core_shift_r:"002e7ab0070ad57001":1:"00173d5803856ab800" + +Core shift [leading 0 limb] >> 8 +mpi_core_shift_r:"002e7ab0070ad57001":8:"00002e7ab0070ad570" + +Core shift [leading 0 limb] >> 63 +mpi_core_shift_r:"002e7ab0070ad57001":63:"000000000000000000" + +Core shift [leading 0 limb] >> 64 +mpi_core_shift_r:"002e7ab0070ad57001":64:"000000000000000000" + +Core shift 80-bit >> 0 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":0:"a1055eb0bb1efa1150ff" + +Core shift 80-bit >> 1 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":1:"5082af585d8f7d08a87f" + +Core shift 80-bit >> 8 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":8:"00a1055eb0bb1efa1150" + +Core shift 80-bit >> 63 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":63:"0000000000000001420a" + +Core shift 80-bit >> 64 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":64:"0000000000000000a105" + +Core shift 80-bit >> 65 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":65:"00000000000000005082" + +Core shift 80-bit >> 72 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":72:"000000000000000000a1" + +Core shift 80-bit >> 79 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":79:"00000000000000000001" + +Core shift 80-bit >> 80 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":80:"00000000000000000000" + +Core shift 80-bit >> 81 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":81:"00000000000000000000" + +Core shift 80-bit >> 88 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":88:"00000000000000000000" + +Core shift 80-bit >> 128 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":128:"00000000000000000000" + +Core shift 80-bit >> 129 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":129:"00000000000000000000" + +Core shift 80-bit >> 136 +mpi_core_shift_r:"a1055eb0bb1efa1150ff":136:"00000000000000000000" + +Core shift 138-bit >> 0 +mpi_core_shift_r:"020100000000000000001011121314151617":0:"020100000000000000001011121314151617" + +Core shift 138-bit >> 1 +mpi_core_shift_r:"020100000000000000001011121314151617":1:"01008000000000000000080889098a0a8b0b" + +Core shift 138-bit >> 8 +mpi_core_shift_r:"020100000000000000001011121314151617":8:"000201000000000000000010111213141516" + +Core shift 138-bit >> 9 +mpi_core_shift_r:"020100000000000000001011121314151617":9:"0001008000000000000000080889098a0a8b" + +Core shift 138-bit >> 16 +mpi_core_shift_r:"020100000000000000001011121314151617":16:"000002010000000000000000101112131415" + +Core shift 138-bit >> 72 +mpi_core_shift_r:"020100000000000000001011121314151617":72:"000000000000000000020100000000000000" + +Core shift 138-bit >> 73 +mpi_core_shift_r:"020100000000000000001011121314151617":73:"000000000000000000010080000000000000" + +Core shift 138-bit >> 136 +mpi_core_shift_r:"020100000000000000001011121314151617":136:"000000000000000000000000000000000002" + +Core shift 138-bit >> 137 +mpi_core_shift_r:"020100000000000000001011121314151617":137:"000000000000000000000000000000000001" + +Core shift 138-bit >> 138 +mpi_core_shift_r:"020100000000000000001011121314151617":138:"000000000000000000000000000000000000" + +Core shift 138-bit >> 144 +mpi_core_shift_r:"020100000000000000001011121314151617":144:"000000000000000000000000000000000000" + +mbedtls_mpi_core_sub #1 0 - 0 +mpi_core_sub:"0":"0":"0":"0":0 + +mbedtls_mpi_core_sub #2 0 - 1 +mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #3 0 - 2 +mpi_core_sub:"0":"2":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #4 0 - 3 +mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 + +mbedtls_mpi_core_sub #5 0 - 4 +mpi_core_sub:"0":"4":"fffffffc":"fffffffffffffffc":1 + +mbedtls_mpi_core_sub #6 0 - 38 +mpi_core_sub:"0":"38":"ffffffc8":"ffffffffffffffc8":1 + +mbedtls_mpi_core_sub #7 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":1 + +mbedtls_mpi_core_sub #8 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568d":"e88de62cf185d96026a450370d5b2d84230b44660b41568d":1 + +mbedtls_mpi_core_sub #9 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d423":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d423":1 + +mbedtls_mpi_core_sub #10 0 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":1 + +mbedtls_mpi_core_sub #11 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"0":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a29":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a29":1 + +mbedtls_mpi_core_sub #12 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12a":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12a":1 + +mbedtls_mpi_core_sub #13 0 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe553":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe553":1 + +mbedtls_mpi_core_sub #14 1 - 0 +mpi_core_sub:"1":"0":"1":"1":0 + +mbedtls_mpi_core_sub #15 1 - 1 +mpi_core_sub:"1":"1":"0":"0":0 + +mbedtls_mpi_core_sub #16 1 - 2 +mpi_core_sub:"1":"2":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #17 1 - 3 +mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #18 1 - 4 +mpi_core_sub:"1":"4":"fffffffd":"fffffffffffffffd":1 + +mbedtls_mpi_core_sub #19 1 - 38 +mpi_core_sub:"1":"38":"ffffffc9":"ffffffffffffffc9":1 + +mbedtls_mpi_core_sub #20 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a6":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a6":1 + +mbedtls_mpi_core_sub #21 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568e":"e88de62cf185d96026a450370d5b2d84230b44660b41568e":1 + +mbedtls_mpi_core_sub #22 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d424":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d424":1 + +mbedtls_mpi_core_sub #23 1 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952adde":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952adde":1 + +mbedtls_mpi_core_sub #24 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"1":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2a":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2a":1 + +mbedtls_mpi_core_sub #25 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12b":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12b":1 + +mbedtls_mpi_core_sub #26 1 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe554":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe554":1 + +mbedtls_mpi_core_sub #27 2 - 0 +mpi_core_sub:"2":"0":"2":"2":0 + +mbedtls_mpi_core_sub #28 2 - 1 +mpi_core_sub:"2":"1":"1":"1":0 + +mbedtls_mpi_core_sub #29 2 - 2 +mpi_core_sub:"2":"2":"0":"0":0 + +mbedtls_mpi_core_sub #30 2 - 3 +mpi_core_sub:"2":"3":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #31 2 - 4 +mpi_core_sub:"2":"4":"fffffffe":"fffffffffffffffe":1 + +mbedtls_mpi_core_sub #32 2 - 38 +mpi_core_sub:"2":"38":"ffffffca":"ffffffffffffffca":1 + +mbedtls_mpi_core_sub #33 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a7":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a7":1 + +mbedtls_mpi_core_sub #34 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568f":"e88de62cf185d96026a450370d5b2d84230b44660b41568f":1 + +mbedtls_mpi_core_sub #35 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d425":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d425":1 + +mbedtls_mpi_core_sub #36 2 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addf":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addf":1 + +mbedtls_mpi_core_sub #37 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"2":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2b":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2b":1 + +mbedtls_mpi_core_sub #38 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12c":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12c":1 + +mbedtls_mpi_core_sub #39 2 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe555":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe555":1 + +mbedtls_mpi_core_sub #40 3 - 0 +mpi_core_sub:"3":"0":"3":"3":0 + +mbedtls_mpi_core_sub #41 3 - 1 +mpi_core_sub:"3":"1":"2":"2":0 + +mbedtls_mpi_core_sub #42 3 - 2 +mpi_core_sub:"3":"2":"1":"1":0 + +mbedtls_mpi_core_sub #43 3 - 3 +mpi_core_sub:"3":"3":"0":"0":0 + +mbedtls_mpi_core_sub #44 3 - 4 +mpi_core_sub:"3":"4":"ffffffff":"ffffffffffffffff":1 + +mbedtls_mpi_core_sub #45 3 - 38 +mpi_core_sub:"3":"38":"ffffffcb":"ffffffffffffffcb":1 + +mbedtls_mpi_core_sub #46 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a8":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a8":1 + +mbedtls_mpi_core_sub #47 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b415690":"e88de62cf185d96026a450370d5b2d84230b44660b415690":1 + +mbedtls_mpi_core_sub #48 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d426":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d426":1 + +mbedtls_mpi_core_sub #49 3 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade0":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade0":1 + +mbedtls_mpi_core_sub #50 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2c":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2c":1 + +mbedtls_mpi_core_sub #51 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12d":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12d":1 + +mbedtls_mpi_core_sub #52 3 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe556":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe556":1 + +mbedtls_mpi_core_sub #53 4 - 0 +mpi_core_sub:"4":"0":"4":"4":0 + +mbedtls_mpi_core_sub #54 4 - 1 +mpi_core_sub:"4":"1":"3":"3":0 + +mbedtls_mpi_core_sub #55 4 - 2 +mpi_core_sub:"4":"2":"2":"2":0 + +mbedtls_mpi_core_sub #56 4 - 3 +mpi_core_sub:"4":"3":"1":"1":0 + +mbedtls_mpi_core_sub #57 4 - 4 +mpi_core_sub:"4":"4":"0":"0":0 + +mbedtls_mpi_core_sub #58 4 - 38 +mpi_core_sub:"4":"38":"ffffffcc":"ffffffffffffffcc":1 + +mbedtls_mpi_core_sub #59 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a9":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a9":1 + +mbedtls_mpi_core_sub #60 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b415691":"e88de62cf185d96026a450370d5b2d84230b44660b415691":1 + +mbedtls_mpi_core_sub #61 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d427":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d427":1 + +mbedtls_mpi_core_sub #62 4 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade1":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade1":1 + +mbedtls_mpi_core_sub #63 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2d":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2d":1 + +mbedtls_mpi_core_sub #64 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12e":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12e":1 + +mbedtls_mpi_core_sub #65 4 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe557":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe557":1 + +mbedtls_mpi_core_sub #66 38 - 0 +mpi_core_sub:"38":"0":"38":"38":0 + +mbedtls_mpi_core_sub #67 38 - 1 +mpi_core_sub:"38":"1":"37":"37":0 + +mbedtls_mpi_core_sub #68 38 - 2 +mpi_core_sub:"38":"2":"36":"36":0 + +mbedtls_mpi_core_sub #69 38 - 3 +mpi_core_sub:"38":"3":"35":"35":0 + +mbedtls_mpi_core_sub #70 38 - 4 +mpi_core_sub:"38":"4":"34":"34":0 + +mbedtls_mpi_core_sub #71 38 - 38 +mpi_core_sub:"38":"38":"0":"0":0 + +mbedtls_mpi_core_sub #72 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048dd":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048dd":1 + +mbedtls_mpi_core_sub #73 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b4156c5":"e88de62cf185d96026a450370d5b2d84230b44660b4156c5":1 + +mbedtls_mpi_core_sub #74 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d45b":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d45b":1 + +mbedtls_mpi_core_sub #75 38 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ae15":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ae15":1 + +mbedtls_mpi_core_sub #76 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"38":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a61":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a61":1 + +mbedtls_mpi_core_sub #77 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed162":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed162":1 + +mbedtls_mpi_core_sub #78 38 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe58b":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe58b":1 + +mbedtls_mpi_core_sub #79 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mbedtls_mpi_core_sub #80 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_core_sub #81 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_core_sub #82 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_core_sub #83 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mbedtls_mpi_core_sub #84 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mbedtls_mpi_core_sub #85 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"0":0 + +mbedtls_mpi_core_sub #86 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 + +mbedtls_mpi_core_sub #87 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":"2a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 + +mbedtls_mpi_core_sub #88 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e6f722ea2b5e51a67133b177ab90c29e5df0496f40e26538":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e6f722ea2b5e51a67133b177ab90c29e5df0496f40e26538":1 + +mbedtls_mpi_core_sub #89 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca65729616302145459ca6354367451d85997fee8dffb221184":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca65729616302145459ca6354367451d85997fee8dffb221184":1 + +mbedtls_mpi_core_sub #90 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859fa9897afdb46577991d081f6b12a905114431d0b484e8885":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859fa9897afdb46577991d081f6b12a905114431d0b484e8885":1 + +mbedtls_mpi_core_sub #91 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98c2fe4c79a8e40be4064fbffc03a2a70419fb728635b9cae":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98c2fe4c79a8e40be4064fbffc03a2a70419fb728635b9cae":1 + +mbedtls_mpi_core_sub #92 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mbedtls_mpi_core_sub #93 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mbedtls_mpi_core_sub #94 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mbedtls_mpi_core_sub #95 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mbedtls_mpi_core_sub #96 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mbedtls_mpi_core_sub #97 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mbedtls_mpi_core_sub #98 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"45b0f22ca701bf9c5656afc563e9e35af750d8bdbd2ef218":"45b0f22ca701bf9c5656afc563e9e35af750d8bdbd2ef218":1 + +mbedtls_mpi_core_sub #99 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"0":0 + +mbedtls_mpi_core_sub #100 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4859f6d352119f27ae129f841cc1915780867862df047d96":"4859f6d352119f27ae129f841cc1915780867862df047d96":1 + +mbedtls_mpi_core_sub #101 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a12ca81516d2601142c78a613d0f7aa5f95541222cfe115750":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a12ca81516d2601142c78a613d0f7aa5f95541222cfe115750":1 + +mbedtls_mpi_core_sub #102 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca59cda538fa91613f620ba03fbd83bbbb48f4fc19db851039c":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca59cda538fa91613f620ba03fbd83bbbb48f4fc19db851039c":1 + +mbedtls_mpi_core_sub #103 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859404989dc82481715e82731bc151473ac0b93f5c9057d7a9d":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859404989dc82481715e82731bc151473ac0b93f5c9057d7a9d":1 + +mbedtls_mpi_core_sub #104 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8d1e0d6f44190005a96bbabc524240dcb38f08fe6208a8ec6":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8d1e0d6f44190005a96bbabc524240dcb38f08fe6208a8ec6":1 + +mbedtls_mpi_core_sub #105 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mbedtls_mpi_core_sub #106 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mbedtls_mpi_core_sub #107 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mbedtls_mpi_core_sub #108 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mbedtls_mpi_core_sub #109 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mbedtls_mpi_core_sub #110 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mbedtls_mpi_core_sub #111 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"fd56fb5954f02074a84410414728520376ca605ade2a7482":"fd56fb5954f02074a84410414728520376ca605ade2a7482":1 + +mbedtls_mpi_core_sub #112 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 + +mbedtls_mpi_core_sub #113 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"0":0 + +mbedtls_mpi_core_sub #114 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e44e1e43804e721b1977c1b8f2b914a1d4baa9ca1f0cd9ba":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e44e1e43804e721b1977c1b8f2b914a1d4baa9ca1f0cd9ba":1 + +mbedtls_mpi_core_sub #115 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca654805cbc570474ce72a76477bb7a2a5d0ec9493ad94c8606":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca654805cbc570474ce72a76477bb7a2a5d0ec9493ad94c8606":1 + +mbedtls_mpi_core_sub #116 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859f7ef9309303677ee3a149237f852e2548b0d7d662678fd07":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859f7ef9309303677ee3a149237f852e2548b0d7d662678fd07":1 + +mbedtls_mpi_core_sub #117 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98986e020ef7e6132e8a90c4107627c73b86a178341861130":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98986e020ef7e6132e8a90c4107627c73b86a178341861130":1 + +mbedtls_mpi_core_sub #118 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mbedtls_mpi_core_sub #119 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mbedtls_mpi_core_sub #120 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mbedtls_mpi_core_sub #121 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 + +mbedtls_mpi_core_sub #122 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 + +mbedtls_mpi_core_sub #123 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 + +mbedtls_mpi_core_sub #124 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":0 + +mbedtls_mpi_core_sub #125 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":0 + +mbedtls_mpi_core_sub #126 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":0 + +mbedtls_mpi_core_sub #127 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"0":0 + +mbedtls_mpi_core_sub #128 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":0 + +mbedtls_mpi_core_sub #129 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":0 + +mbedtls_mpi_core_sub #130 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"d76bce5a5dfa0abad3f21c973e5155b9d26adbab3cce3947ece6e8430cc7e8e29290d25b55ffdc90c2c5a55ac57ff98308e4e0193cc01f5d35b531d7c9923bef7e72b440522990a26cdc0aa83c41b7547dc9d0115490cbaedf391b391b594d9004cabd15e106e837a538c1dd6f2fef17cf314a8814a967d1e3af6db922793776":"d76bce5a5dfa0abad3f21c973e5155b9d26adbab3cce3947ece6e8430cc7e8e29290d25b55ffdc90c2c5a55ac57ff98308e4e0193cc01f5d35b531d7c9923bef7e72b440522990a26cdc0aa83c41b7547dc9d0115490cbaedf391b391b594d9004cabd15e106e837a538c1dd6f2fef17cf314a8814a967d1e3af6db922793776":1 + +mbedtls_mpi_core_sub #131 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mbedtls_mpi_core_sub #132 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 + +mbedtls_mpi_core_sub #133 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 + +mbedtls_mpi_core_sub #134 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 + +mbedtls_mpi_core_sub #135 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 + +mbedtls_mpi_core_sub #136 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 + +mbedtls_mpi_core_sub #137 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 + +mbedtls_mpi_core_sub #138 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 + +mbedtls_mpi_core_sub #139 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 + +mbedtls_mpi_core_sub #140 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3d54aa7d78959bc8d5c5c0107f548e4c3144afebb0dcf2a3a710c75b9de5a55ed1bd14c844e02f6d43135b3428cac6f6a40bf8e7e5dcfec47a06407b190474d8a5c659309ff6a555e73970bef35fef2f30d2feb371bc6676dbb3bd73a65b8100e8148ab815205bfb8fcdc1872949fd4ca6d05d41373eea44c5f1608f45c053b4":"3d54aa7d78959bc8d5c5c0107f548e4c3144afebb0dcf2a3a710c75b9de5a55ed1bd14c844e02f6d43135b3428cac6f6a40bf8e7e5dcfec47a06407b190474d8a5c659309ff6a555e73970bef35fef2f30d2feb371bc6676dbb3bd73a65b8100e8148ab815205bfb8fcdc1872949fd4ca6d05d41373eea44c5f1608f45c053b4":1 + +mbedtls_mpi_core_sub #141 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"0":0 + +mbedtls_mpi_core_sub #142 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cef5d8e25d5de12543fa4566dce58600874b7ecd1308d697f9375b02e76f6754104358d87bd6b012714d17f011887118bb5078ced7eabadd1ce0a341bd0136398d9bbff3d10724fa44e1e7091f8f0fd830d17dd44809c0ba560ca8285b68f215383550dacf5bb3a36f364cd932031fc76d2dc03cd8b7f77c44342b4d2c7701":"f1cef5d8e25d5de12543fa4566dce58600874b7ecd1308d697f9375b02e76f6754104358d87bd6b012714d17f011887118bb5078ced7eabadd1ce0a341bd0136398d9bbff3d10724fa44e1e7091f8f0fd830d17dd44809c0ba560ca8285b68f215383550dacf5bb3a36f364cd932031fc76d2dc03cd8b7f77c44342b4d2c7701":1 + +mbedtls_mpi_core_sub #143 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c078d7d68fa683a9b7dca7bda5e40603af8b96edab2beb93f7af9eaaad8e41644de7239ae00bfe05d9008eee4ac079acf0d901229d1e21afbb7252e296b0c824390d70f22035f854157b672fa1a683ae9ccec4c64d3225baecd8acc1b4ce90ecdf47cdf6274433350683649879ec647601a7c94be85216a9a0ce4868398b2a":"14c078d7d68fa683a9b7dca7bda5e40603af8b96edab2beb93f7af9eaaad8e41644de7239ae00bfe05d9008eee4ac079acf0d901229d1e21afbb7252e296b0c824390d70f22035f854157b672fa1a683ae9ccec4c64d3225baecd8acc1b4ce90ecdf47cdf6274433350683649879ec647601a7c94be85216a9a0ce4868398b2a":1 + +mbedtls_mpi_core_sub #144 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mbedtls_mpi_core_sub #145 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 + +mbedtls_mpi_core_sub #146 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 + +mbedtls_mpi_core_sub #147 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 + +mbedtls_mpi_core_sub #148 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 + +mbedtls_mpi_core_sub #149 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 + +mbedtls_mpi_core_sub #150 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 + +mbedtls_mpi_core_sub #151 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 + +mbedtls_mpi_core_sub #152 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 + +mbedtls_mpi_core_sub #153 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4b85b4a496383de7b081c5cb1877a8c630bd646ce3c9e9cd0f1790009afe35f77dacd16f6c6458bd30a20e1c38b93e858b50a86f170514099ce95fd7d74773a26c38bd70ac259e30ecf48ed7ea40601f58a22d359d745cb6215db0cb7e00180ed2dc55673a510047ec5e8b3a5017fa2cdf632f80fa66324d49ad2c63f893dcb3":"4b85b4a496383de7b081c5cb1877a8c630bd646ce3c9e9cd0f1790009afe35f77dacd16f6c6458bd30a20e1c38b93e858b50a86f170514099ce95fd7d74773a26c38bd70ac259e30ecf48ed7ea40601f58a22d359d745cb6215db0cb7e00180ed2dc55673a510047ec5e8b3a5017fa2cdf632f80fa66324d49ad2c63f893dcb3":1 + +mbedtls_mpi_core_sub #154 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":"e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 + +mbedtls_mpi_core_sub #155 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"0":0 + +mbedtls_mpi_core_sub #156 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"22f182fef43248a28473e26256c8fe800328401820982314fbfe7843a7c61eda103da3cac264354df367b376fe3938089435888853c53366d29e91afa0d9af91eaab71b0fe4f2ed359d0998026821773d66bfd46f20528650096cc049959659ed7a7127d1b57e87f91974d17bf47e944ae947a090f0f9a1f2d5c9a1d1b0d1429":"22f182fef43248a28473e26256c8fe800328401820982314fbfe7843a7c61eda103da3cac264354df367b376fe3938089435888853c53366d29e91afa0d9af91eaab71b0fe4f2ed359d0998026821773d66bfd46f20528650096cc049959659ed7a7127d1b57e87f91974d17bf47e944ae947a090f0f9a1f2d5c9a1d1b0d1429":1 + +mbedtls_mpi_core_sub #157 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mbedtls_mpi_core_sub #158 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 + +mbedtls_mpi_core_sub #159 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 + +mbedtls_mpi_core_sub #160 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 + +mbedtls_mpi_core_sub #161 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 + +mbedtls_mpi_core_sub #162 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 + +mbedtls_mpi_core_sub #163 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2673d01b386571bf41bf9b04003fc5d58fbe6048d79ca46352":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2673d01b386571bf41bf9b04003fc5d58fbe6048d79ca46352":0 + +mbedtls_mpi_core_sub #164 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff272e1f290bbe6fffa56944543adbdbf234c70f7019df75713a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff272e1f290bbe6fffa56944543adbdbf234c70f7019df75713a":0 + +mbedtls_mpi_core_sub #165 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2676791fdf10819ecd1756f3bef89d838c4795e87cbe79eed0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2676791fdf10819ecd1756f3bef89d838c4795e87cbe79eed0":0 + +mbedtls_mpi_core_sub #166 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"289431a5a205f5452c0de368c1aeaa462d952454c331c6b8131917bcf338171d6d6f2da4aa00236f3d3a5aa53a80067cf71b1fe6c33fe0a2ca4ace28366dc410818d4bbfadd66f5d9323f557c3be48ab82362feeab6f345120c6e4c6e4a6b26ffb3542ea1ef917c85ac73e2290d010e830ceb577eb56982e1c509246dd86c88a":"289431a5a205f5452c0de368c1aeaa462d952454c331c6b8131917bcf338171d6d6f2da4aa00236f3d3a5aa53a80067cf71b1fe6c33fe0a2ca4ace28366dc410818d4bbfadd66f5d9323f557c3be48ab82362feeab6f345120c6e4c6e4a6b26ffb3542ea1ef917c85ac73e2290d010e830ceb577eb56982e1c509246dd86c88a":0 + +mbedtls_mpi_core_sub #167 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"eb3f87282970597c56482358425a1bf9fc5074691254d4146c085061555271be9bb218dc651ff401fa26ff7111b53f86530f26fedd62e1de50448dad1d694f37dbc6f28f0ddfca07abea8498d05e597c5163313b39b2cdda451327533e4b316f1320b83209d8bbcccaf97c9b6786139b89fe5836b417ade9565f31b797c674d6":"eb3f87282970597c56482358425a1bf9fc5074691254d4146c085061555271be9bb218dc651ff401fa26ff7111b53f86530f26fedd62e1de50448dad1d694f37dbc6f28f0ddfca07abea8498d05e597c5163313b39b2cdda451327533e4b316f1320b83209d8bbcccaf97c9b6786139b89fe5836b417ade9565f31b797c674d6":0 + +mbedtls_mpi_core_sub #168 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"dd0e7d010bcdb75d7b8c1d9da937017ffcd7bfe7df67dceb040187bc5839e125efc25c353d9bcab20c984c8901c6c7f76bca7777ac3acc992d616e505f26506e15548e4f01b0d12ca62f667fd97de88c299402b90dfad79aff6933fb66a69a612858ed82e4a817806e68b2e840b816bb516b85f6f0f065e0d2a365e2e4f2ebd7":"dd0e7d010bcdb75d7b8c1d9da937017ffcd7bfe7df67dceb040187bc5839e125efc25c353d9bcab20c984c8901c6c7f76bca7777ac3acc992d616e505f26506e15548e4f01b0d12ca62f667fd97de88c299402b90dfad79aff6933fb66a69a612858ed82e4a817806e68b2e840b816bb516b85f6f0f065e0d2a365e2e4f2ebd7":0 + +mbedtls_mpi_core_sub #169 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad +mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"0":0 + +mpi_core_sub_int #1 0 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"0":"0":"0":0 + +mpi_core_sub_int #2 0 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0":"0":"0":0 + +mpi_core_sub_int #3 0 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000000":"1":"ffffffff":1 + +mpi_core_sub_int #4 0 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000000":"1":"ffffffffffffffff":1 + +mpi_core_sub_int #5 0 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000000":"2":"fffffffe":1 + +mpi_core_sub_int #6 0 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000000":"2":"fffffffffffffffe":1 + +mpi_core_sub_int #7 0 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000000":"3":"fffffffd":1 + +mpi_core_sub_int #8 0 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000000":"3":"fffffffffffffffd":1 + +mpi_core_sub_int #9 0 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000000":"4":"fffffffc":1 + +mpi_core_sub_int #10 0 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000000":"4":"fffffffffffffffc":1 + +mpi_core_sub_int #11 0 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000000":"38":"ffffffc8":1 + +mpi_core_sub_int #12 0 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000000":"38":"ffffffffffffffc8":1 + +mpi_core_sub_int #27 1 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"0":"00000001":0 + +mpi_core_sub_int #28 1 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"0":"0000000000000001":0 + +mpi_core_sub_int #29 1 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"1":"00000000":0 + +mpi_core_sub_int #30 1 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"1":"0000000000000000":0 + +mpi_core_sub_int #31 1 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"2":"ffffffff":1 + +mpi_core_sub_int #32 1 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"2":"ffffffffffffffff":1 + +mpi_core_sub_int #33 1 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"3":"fffffffe":1 + +mpi_core_sub_int #34 1 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"3":"fffffffffffffffe":1 + +mpi_core_sub_int #35 1 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"4":"fffffffd":1 + +mpi_core_sub_int #36 1 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"4":"fffffffffffffffd":1 + +mpi_core_sub_int #37 1 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000001":"38":"ffffffc9":1 + +mpi_core_sub_int #38 1 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000001":"38":"ffffffffffffffc9":1 + +mpi_core_sub_int #53 2 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"0":"00000002":0 + +mpi_core_sub_int #54 2 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"0":"0000000000000002":0 + +mpi_core_sub_int #55 2 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"1":"00000001":0 + +mpi_core_sub_int #56 2 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"1":"0000000000000001":0 + +mpi_core_sub_int #57 2 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"2":"00000000":0 + +mpi_core_sub_int #58 2 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"2":"0000000000000000":0 + +mpi_core_sub_int #59 2 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"3":"ffffffff":1 + +mpi_core_sub_int #60 2 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"3":"ffffffffffffffff":1 + +mpi_core_sub_int #61 2 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"4":"fffffffe":1 + +mpi_core_sub_int #62 2 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"4":"fffffffffffffffe":1 + +mpi_core_sub_int #63 2 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000002":"38":"ffffffca":1 + +mpi_core_sub_int #64 2 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000002":"38":"ffffffffffffffca":1 + +mpi_core_sub_int #79 3 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"0":"00000003":0 + +mpi_core_sub_int #80 3 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"0":"0000000000000003":0 + +mpi_core_sub_int #81 3 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"1":"00000002":0 + +mpi_core_sub_int #82 3 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"1":"0000000000000002":0 + +mpi_core_sub_int #83 3 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"2":"00000001":0 + +mpi_core_sub_int #84 3 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"2":"0000000000000001":0 + +mpi_core_sub_int #85 3 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"3":"00000000":0 + +mpi_core_sub_int #86 3 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"3":"0000000000000000":0 + +mpi_core_sub_int #87 3 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"4":"ffffffff":1 + +mpi_core_sub_int #88 3 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"4":"ffffffffffffffff":1 + +mpi_core_sub_int #89 3 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000003":"38":"ffffffcb":1 + +mpi_core_sub_int #90 3 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000003":"38":"ffffffffffffffcb":1 + +mpi_core_sub_int #105 4 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"0":"00000004":0 + +mpi_core_sub_int #106 4 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"0":"0000000000000004":0 + +mpi_core_sub_int #107 4 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"1":"00000003":0 + +mpi_core_sub_int #108 4 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"1":"0000000000000003":0 + +mpi_core_sub_int #109 4 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"2":"00000002":0 + +mpi_core_sub_int #110 4 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"2":"0000000000000002":0 + +mpi_core_sub_int #111 4 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"3":"00000001":0 + +mpi_core_sub_int #112 4 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"3":"0000000000000001":0 + +mpi_core_sub_int #113 4 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"4":"00000000":0 + +mpi_core_sub_int #114 4 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"4":"0000000000000000":0 + +mpi_core_sub_int #115 4 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000004":"38":"ffffffcc":1 + +mpi_core_sub_int #116 4 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000004":"38":"ffffffffffffffcc":1 + +mpi_core_sub_int #131 38 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"0":"00000038":0 + +mpi_core_sub_int #132 38 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"0":"0000000000000038":0 + +mpi_core_sub_int #133 38 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"1":"00000037":0 + +mpi_core_sub_int #134 38 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"1":"0000000000000037":0 + +mpi_core_sub_int #135 38 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"2":"00000036":0 + +mpi_core_sub_int #136 38 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"2":"0000000000000036":0 + +mpi_core_sub_int #137 38 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"3":"00000035":0 + +mpi_core_sub_int #138 38 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"3":"0000000000000035":0 + +mpi_core_sub_int #139 38 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"4":"00000034":0 + +mpi_core_sub_int #140 38 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"4":"0000000000000034":0 + +mpi_core_sub_int #141 38 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"00000038":"38":"00000000":0 + +mpi_core_sub_int #142 38 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"0000000000000038":"38":"0000000000000000":0 + +mpi_core_sub_int #157 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_sub_int #158 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mpi_core_sub_int #159 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mpi_core_sub_int #160 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mpi_core_sub_int #161 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mpi_core_sub_int #162 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mpi_core_sub_int #163 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mpi_core_sub_int #164 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mpi_core_sub_int #165 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mpi_core_sub_int #166 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mpi_core_sub_int #167 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mpi_core_sub_int #168 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mpi_core_sub_int #183 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_sub_int #184 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mpi_core_sub_int #185 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mpi_core_sub_int #186 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mpi_core_sub_int #187 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mpi_core_sub_int #188 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mpi_core_sub_int #189 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mpi_core_sub_int #190 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mpi_core_sub_int #191 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mpi_core_sub_int #192 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mpi_core_sub_int #193 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mpi_core_sub_int #194 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mpi_core_sub_int #209 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_sub_int #210 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mpi_core_sub_int #211 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mpi_core_sub_int #212 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mpi_core_sub_int #213 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mpi_core_sub_int #214 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mpi_core_sub_int #215 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mpi_core_sub_int #216 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mpi_core_sub_int #217 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mpi_core_sub_int #218 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mpi_core_sub_int #219 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mpi_core_sub_int #220 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mpi_core_sub_int #235 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_sub_int #236 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 + +mpi_core_sub_int #237 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mpi_core_sub_int #238 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mpi_core_sub_int #239 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mpi_core_sub_int #240 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mpi_core_sub_int #241 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 + +mpi_core_sub_int #242 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 + +mpi_core_sub_int #243 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 + +mpi_core_sub_int #244 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 + +mpi_core_sub_int #245 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 + +mpi_core_sub_int #246 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 + +mpi_core_sub_int #261 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_sub_int #262 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mpi_core_sub_int #263 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 + +mpi_core_sub_int #264 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 + +mpi_core_sub_int #265 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 + +mpi_core_sub_int #266 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 + +mpi_core_sub_int #267 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 + +mpi_core_sub_int #268 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 + +mpi_core_sub_int #269 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 + +mpi_core_sub_int #270 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 + +mpi_core_sub_int #271 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 + +mpi_core_sub_int #272 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 + +mpi_core_sub_int #287 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_sub_int #288 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mpi_core_sub_int #289 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 + +mpi_core_sub_int #290 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 + +mpi_core_sub_int #291 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 + +mpi_core_sub_int #292 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 + +mpi_core_sub_int #293 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 + +mpi_core_sub_int #294 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 + +mpi_core_sub_int #295 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 + +mpi_core_sub_int #296 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 + +mpi_core_sub_int #297 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 + +mpi_core_sub_int #298 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 + +mpi_core_sub_int #313 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_sub_int #314 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 + +mpi_core_sub_int #315 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 + +mpi_core_sub_int #316 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 + +mpi_core_sub_int #317 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 + +mpi_core_sub_int #318 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 + +mpi_core_sub_int #319 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 + +mpi_core_sub_int #320 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 + +mpi_core_sub_int #321 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 + +mpi_core_sub_int #322 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 + +mpi_core_sub_int #323 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 +depends_on:MBEDTLS_HAVE_INT32 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 + +mpi_core_sub_int #324 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 +depends_on:MBEDTLS_HAVE_INT64 +mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 + +# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_mod.generated.data b/tests/suites/test_suite_bignum_mod.generated.data new file mode 100644 index 000000000..713798e0c --- /dev/null +++ b/tests/suites/test_suite_bignum_mod.generated.data @@ -0,0 +1,1380 @@ +# Automatically generated by generate_bignum_tests.py. Do not edit! + +mbedtls_mpi_mod_sub #1 0 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000000":0 + +mbedtls_mpi_mod_sub #2 0 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000052":0 + +mbedtls_mpi_mod_sub #3 0 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000051":0 + +mbedtls_mpi_mod_sub #4 0 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000050":0 + +mbedtls_mpi_mod_sub #5 0 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000004":"000000000000004f":0 + +mbedtls_mpi_mod_sub #6 0 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000038":"000000000000001b":0 + +mbedtls_mpi_mod_sub #14 1 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000000":"0000000000000001":0 + +mbedtls_mpi_mod_sub #15 1 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000001":"0000000000000000":0 + +mbedtls_mpi_mod_sub #16 1 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000002":"0000000000000052":0 + +mbedtls_mpi_mod_sub #17 1 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000003":"0000000000000051":0 + +mbedtls_mpi_mod_sub #18 1 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000004":"0000000000000050":0 + +mbedtls_mpi_mod_sub #19 1 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000038":"000000000000001c":0 + +mbedtls_mpi_mod_sub #27 2 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000000":"0000000000000002":0 + +mbedtls_mpi_mod_sub #28 2 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000001":"0000000000000001":0 + +mbedtls_mpi_mod_sub #29 2 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000002":"0000000000000000":0 + +mbedtls_mpi_mod_sub #30 2 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000003":"0000000000000052":0 + +mbedtls_mpi_mod_sub #31 2 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000004":"0000000000000051":0 + +mbedtls_mpi_mod_sub #32 2 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000038":"000000000000001d":0 + +mbedtls_mpi_mod_sub #40 3 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000000":"0000000000000003":0 + +mbedtls_mpi_mod_sub #41 3 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000001":"0000000000000002":0 + +mbedtls_mpi_mod_sub #42 3 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000002":"0000000000000001":0 + +mbedtls_mpi_mod_sub #43 3 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000003":"0000000000000000":0 + +mbedtls_mpi_mod_sub #44 3 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000004":"0000000000000052":0 + +mbedtls_mpi_mod_sub #45 3 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000038":"000000000000001e":0 + +mbedtls_mpi_mod_sub #53 4 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000000":"0000000000000004":0 + +mbedtls_mpi_mod_sub #54 4 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000001":"0000000000000003":0 + +mbedtls_mpi_mod_sub #55 4 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000002":"0000000000000002":0 + +mbedtls_mpi_mod_sub #56 4 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000003":"0000000000000001":0 + +mbedtls_mpi_mod_sub #57 4 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000004":"0000000000000000":0 + +mbedtls_mpi_mod_sub #58 4 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000038":"000000000000001f":0 + +mbedtls_mpi_mod_sub #66 38 - 0 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000000":"0000000000000038":0 + +mbedtls_mpi_mod_sub #67 38 - 1 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000001":"0000000000000037":0 + +mbedtls_mpi_mod_sub #68 38 - 2 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000002":"0000000000000036":0 + +mbedtls_mpi_mod_sub #69 38 - 3 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000003":"0000000000000035":0 + +mbedtls_mpi_mod_sub #70 38 - 4 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000004":"0000000000000034":0 + +mbedtls_mpi_mod_sub #71 38 - 38 mod 53 +mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000038":"0000000000000000":0 + +mbedtls_mpi_mod_sub #170 0 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000000":0 + +mbedtls_mpi_mod_sub #171 0 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000044":0 + +mbedtls_mpi_mod_sub #172 0 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000043":0 + +mbedtls_mpi_mod_sub #173 0 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000042":0 + +mbedtls_mpi_mod_sub #174 0 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000041":0 + +mbedtls_mpi_mod_sub #175 0 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000038":"000000000000000d":0 + +mbedtls_mpi_mod_sub #183 1 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000001":0 + +mbedtls_mpi_mod_sub #184 1 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000000":0 + +mbedtls_mpi_mod_sub #185 1 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000044":0 + +mbedtls_mpi_mod_sub #186 1 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000043":0 + +mbedtls_mpi_mod_sub #187 1 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000042":0 + +mbedtls_mpi_mod_sub #188 1 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000038":"000000000000000e":0 + +mbedtls_mpi_mod_sub #196 2 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000000":"0000000000000002":0 + +mbedtls_mpi_mod_sub #197 2 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000001":"0000000000000001":0 + +mbedtls_mpi_mod_sub #198 2 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000002":"0000000000000000":0 + +mbedtls_mpi_mod_sub #199 2 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000003":"0000000000000044":0 + +mbedtls_mpi_mod_sub #200 2 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000004":"0000000000000043":0 + +mbedtls_mpi_mod_sub #201 2 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000038":"000000000000000f":0 + +mbedtls_mpi_mod_sub #209 3 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000000":"0000000000000003":0 + +mbedtls_mpi_mod_sub #210 3 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000001":"0000000000000002":0 + +mbedtls_mpi_mod_sub #211 3 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000002":"0000000000000001":0 + +mbedtls_mpi_mod_sub #212 3 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000003":"0000000000000000":0 + +mbedtls_mpi_mod_sub #213 3 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000004":"0000000000000044":0 + +mbedtls_mpi_mod_sub #214 3 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000038":"0000000000000010":0 + +mbedtls_mpi_mod_sub #222 4 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000000":"0000000000000004":0 + +mbedtls_mpi_mod_sub #223 4 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000001":"0000000000000003":0 + +mbedtls_mpi_mod_sub #224 4 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000002":"0000000000000002":0 + +mbedtls_mpi_mod_sub #225 4 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000003":"0000000000000001":0 + +mbedtls_mpi_mod_sub #226 4 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000004":"0000000000000000":0 + +mbedtls_mpi_mod_sub #227 4 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000038":"0000000000000011":0 + +mbedtls_mpi_mod_sub #235 38 - 0 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000000":"0000000000000038":0 + +mbedtls_mpi_mod_sub #236 38 - 1 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000001":"0000000000000037":0 + +mbedtls_mpi_mod_sub #237 38 - 2 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000002":"0000000000000036":0 + +mbedtls_mpi_mod_sub #238 38 - 3 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000003":"0000000000000035":0 + +mbedtls_mpi_mod_sub #239 38 - 4 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000004":"0000000000000034":0 + +mbedtls_mpi_mod_sub #240 38 - 38 mod 45 +mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000038":"0000000000000000":0 + +mbedtls_mpi_mod_sub #339 0 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #340 0 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #341 0 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #342 0 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_mod_sub #343 0 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mbedtls_mpi_mod_sub #344 0 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mbedtls_mpi_mod_sub #346 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 + +mbedtls_mpi_mod_sub #347 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 + +mbedtls_mpi_mod_sub #352 1 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #353 1 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #354 1 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #355 1 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #356 1 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_mod_sub #357 1 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb724":0 + +mbedtls_mpi_mod_sub #359 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de9":0 + +mbedtls_mpi_mod_sub #360 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7f":0 + +mbedtls_mpi_mod_sub #365 2 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #366 2 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #367 2 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #368 2 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #369 2 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #370 2 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb725":0 + +mbedtls_mpi_mod_sub #372 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dea":0 + +mbedtls_mpi_mod_sub #373 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b80":0 + +mbedtls_mpi_mod_sub #378 3 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #379 3 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #380 3 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #381 3 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #382 3 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #383 3 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb726":0 + +mbedtls_mpi_mod_sub #385 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10deb":0 + +mbedtls_mpi_mod_sub #386 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b81":0 + +mbedtls_mpi_mod_sub #391 4 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":0 + +mbedtls_mpi_mod_sub #392 4 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #393 4 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #394 4 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #395 4 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #396 4 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb727":0 + +mbedtls_mpi_mod_sub #398 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dec":0 + +mbedtls_mpi_mod_sub #399 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b82":0 + +mbedtls_mpi_mod_sub #404 38 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":0 + +mbedtls_mpi_mod_sub #405 38 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000037":0 + +mbedtls_mpi_mod_sub #406 38 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000036":0 + +mbedtls_mpi_mod_sub #407 38 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000035":0 + +mbedtls_mpi_mod_sub #408 38 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000034":0 + +mbedtls_mpi_mod_sub #409 38 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #411 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10e20":0 + +mbedtls_mpi_mod_sub #412 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58bb6":0 + +mbedtls_mpi_mod_sub #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mbedtls_mpi_mod_sub #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mbedtls_mpi_mod_sub #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mbedtls_mpi_mod_sub #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mbedtls_mpi_mod_sub #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mbedtls_mpi_mod_sub #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mbedtls_mpi_mod_sub #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1a1b1e79b98a062b31179f87ab7c8078662a5b3f169434f1":0 + +mbedtls_mpi_mod_sub #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mbedtls_mpi_mod_sub #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mbedtls_mpi_mod_sub #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mbedtls_mpi_mod_sub #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mbedtls_mpi_mod_sub #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mbedtls_mpi_mod_sub #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mbedtls_mpi_mod_sub #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 + +mbedtls_mpi_mod_sub #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #508 0 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #509 0 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 + +mbedtls_mpi_mod_sub #510 0 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 + +mbedtls_mpi_mod_sub #511 0 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bce":0 + +mbedtls_mpi_mod_sub #512 0 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bcd":0 + +mbedtls_mpi_mod_sub #513 0 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b99":0 + +mbedtls_mpi_mod_sub #514 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a476":0 + +mbedtls_mpi_mod_sub #515 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25e":0 + +mbedtls_mpi_mod_sub #516 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff4":0 + +mbedtls_mpi_mod_sub #521 1 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #522 1 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #523 1 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 + +mbedtls_mpi_mod_sub #524 1 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 + +mbedtls_mpi_mod_sub #525 1 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bce":0 + +mbedtls_mpi_mod_sub #526 1 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9a":0 + +mbedtls_mpi_mod_sub #527 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a477":0 + +mbedtls_mpi_mod_sub #528 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25f":0 + +mbedtls_mpi_mod_sub #529 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff5":0 + +mbedtls_mpi_mod_sub #534 2 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #535 2 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #536 2 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #537 2 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 + +mbedtls_mpi_mod_sub #538 2 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 + +mbedtls_mpi_mod_sub #539 2 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9b":0 + +mbedtls_mpi_mod_sub #540 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a478":0 + +mbedtls_mpi_mod_sub #541 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b260":0 + +mbedtls_mpi_mod_sub #542 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff6":0 + +mbedtls_mpi_mod_sub #547 3 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #548 3 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #549 3 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #550 3 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #551 3 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 + +mbedtls_mpi_mod_sub #552 3 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9c":0 + +mbedtls_mpi_mod_sub #553 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a479":0 + +mbedtls_mpi_mod_sub #554 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b261":0 + +mbedtls_mpi_mod_sub #555 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff7":0 + +mbedtls_mpi_mod_sub #560 4 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":0 + +mbedtls_mpi_mod_sub #561 4 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #562 4 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #563 4 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #564 4 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #565 4 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9d":0 + +mbedtls_mpi_mod_sub #566 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a47a":0 + +mbedtls_mpi_mod_sub #567 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b262":0 + +mbedtls_mpi_mod_sub #568 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff8":0 + +mbedtls_mpi_mod_sub #573 38 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":0 + +mbedtls_mpi_mod_sub #574 38 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000037":0 + +mbedtls_mpi_mod_sub #575 38 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000036":0 + +mbedtls_mpi_mod_sub #576 38 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000035":0 + +mbedtls_mpi_mod_sub #577 38 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000034":0 + +mbedtls_mpi_mod_sub #578 38 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #579 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a4ae":0 + +mbedtls_mpi_mod_sub #580 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b296":0 + +mbedtls_mpi_mod_sub #581 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d302c":0 + +mbedtls_mpi_mod_sub #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mbedtls_mpi_mod_sub #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_mod_sub #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mbedtls_mpi_mod_sub #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mbedtls_mpi_mod_sub #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 + +mbedtls_mpi_mod_sub #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 + +mbedtls_mpi_mod_sub #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mbedtls_mpi_mod_sub #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mbedtls_mpi_mod_sub #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mbedtls_mpi_mod_sub #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mbedtls_mpi_mod_sub #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mbedtls_mpi_mod_sub #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mbedtls_mpi_mod_sub #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"459e8461cf8d871e04bcd63af8b3acab0076bd3258864de9":0 + +mbedtls_mpi_mod_sub #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"484789087a9d66a95c78c5f9b18b5aa789ac5cd77a5bd967":0 + +mbedtls_mpi_mod_sub #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mbedtls_mpi_mod_sub #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mbedtls_mpi_mod_sub #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mbedtls_mpi_mod_sub #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mbedtls_mpi_mod_sub #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mbedtls_mpi_mod_sub #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mbedtls_mpi_mod_sub #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"fd448d8e7d7be7f656aa36b6dbf21b537ff044cf7981d053":0 + +mbedtls_mpi_mod_sub #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 + +mbedtls_mpi_mod_sub #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #677 0 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #678 0 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mbedtls_mpi_mod_sub #679 0 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mbedtls_mpi_mod_sub #680 0 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 + +mbedtls_mpi_mod_sub #681 0 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 + +mbedtls_mpi_mod_sub #682 0 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 + +mbedtls_mpi_mod_sub #683 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":0 + +mbedtls_mpi_mod_sub #684 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":0 + +mbedtls_mpi_mod_sub #685 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":0 + +mbedtls_mpi_mod_sub #687 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":0 + +mbedtls_mpi_mod_sub #688 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":0 + +mbedtls_mpi_mod_sub #690 1 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #691 1 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #692 1 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mbedtls_mpi_mod_sub #693 1 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mbedtls_mpi_mod_sub #694 1 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 + +mbedtls_mpi_mod_sub #695 1 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ec":0 + +mbedtls_mpi_mod_sub #696 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac9":0 + +mbedtls_mpi_mod_sub #697 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b1":0 + +mbedtls_mpi_mod_sub #698 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32647":0 + +mbedtls_mpi_mod_sub #700 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4d":0 + +mbedtls_mpi_mod_sub #701 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234e":0 + +mbedtls_mpi_mod_sub #703 2 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #704 2 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #705 2 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #706 2 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mbedtls_mpi_mod_sub #707 2 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 + +mbedtls_mpi_mod_sub #708 2 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ed":0 + +mbedtls_mpi_mod_sub #709 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9aca":0 + +mbedtls_mpi_mod_sub #710 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b2":0 + +mbedtls_mpi_mod_sub #711 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32648":0 + +mbedtls_mpi_mod_sub #713 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4e":0 + +mbedtls_mpi_mod_sub #714 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234f":0 + +mbedtls_mpi_mod_sub #716 3 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #717 3 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #718 3 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #719 3 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #720 3 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 + +mbedtls_mpi_mod_sub #721 3 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ee":0 + +mbedtls_mpi_mod_sub #722 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acb":0 + +mbedtls_mpi_mod_sub #723 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b3":0 + +mbedtls_mpi_mod_sub #724 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32649":0 + +mbedtls_mpi_mod_sub #726 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4f":0 + +mbedtls_mpi_mod_sub #727 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2350":0 + +mbedtls_mpi_mod_sub #729 4 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":0 + +mbedtls_mpi_mod_sub #730 4 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #731 4 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #732 4 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #733 4 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #734 4 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ef":0 + +mbedtls_mpi_mod_sub #735 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acc":0 + +mbedtls_mpi_mod_sub #736 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b4":0 + +mbedtls_mpi_mod_sub #737 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3264a":0 + +mbedtls_mpi_mod_sub #739 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac50":0 + +mbedtls_mpi_mod_sub #740 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2351":0 + +mbedtls_mpi_mod_sub #742 38 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":0 + +mbedtls_mpi_mod_sub #743 38 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037":0 + +mbedtls_mpi_mod_sub #744 38 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036":0 + +mbedtls_mpi_mod_sub #745 38 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035":0 + +mbedtls_mpi_mod_sub #746 38 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034":0 + +mbedtls_mpi_mod_sub #747 38 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #748 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9b00":0 + +mbedtls_mpi_mod_sub #749 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8e8":0 + +mbedtls_mpi_mod_sub #750 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3267e":0 + +mbedtls_mpi_mod_sub #752 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac84":0 + +mbedtls_mpi_mod_sub #753 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2385":0 + +mbedtls_mpi_mod_sub #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mbedtls_mpi_mod_sub #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_mod_sub #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mbedtls_mpi_mod_sub #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mbedtls_mpi_mod_sub #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 + +mbedtls_mpi_mod_sub #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 + +mbedtls_mpi_mod_sub #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40541f3661f3e2e69b6dc34a2c2577c04dc1fb2824cf1cf63a7":0 + +mbedtls_mpi_mod_sub #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e5629c6c17606cd6a3a1d0829454bcd39bf6b6783efbdaa8":0 + +mbedtls_mpi_mod_sub #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mbedtls_mpi_mod_sub #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mbedtls_mpi_mod_sub #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mbedtls_mpi_mod_sub #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mbedtls_mpi_mod_sub #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mbedtls_mpi_mod_sub #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mbedtls_mpi_mod_sub #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e307af6e8e31bd4f96827fe5147140fdd7f04722ab3dc443b":0 + +mbedtls_mpi_mod_sub #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e3323fb8f8e2bb484bfe3ee0fffebbdda083a11cfd5b1cfb9":0 + +mbedtls_mpi_mod_sub #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40487a4584be5302953328b5287bb65e83717035b0aaefe55bf":0 + +mbedtls_mpi_mod_sub #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb82b138e98be622c72f9f88047f83ea02e93478f35fc2accc0":0 + +mbedtls_mpi_mod_sub #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mbedtls_mpi_mod_sub #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mbedtls_mpi_mod_sub #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mbedtls_mpi_mod_sub #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mbedtls_mpi_mod_sub #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mbedtls_mpi_mod_sub #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mbedtls_mpi_mod_sub #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ee8210015910a35d1ba155ecd2a527e85fe7df9c7d4d7c6a5":0 + +mbedtls_mpi_mod_sub #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 + +mbedtls_mpi_mod_sub #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa4053f4a6178931e8a2b8478b3039ea456df967ce2a7cff9d829":0 + +mbedtls_mpi_mod_sub #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e2b997c56c508d4b4be5e0c3db7d0ed712c116d31d264f2a":0 + +mbedtls_mpi_mod_sub #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mbedtls_mpi_mod_sub #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 + +mbedtls_mpi_mod_sub #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 + +mbedtls_mpi_mod_sub #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 + +mbedtls_mpi_mod_sub #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 + +mbedtls_mpi_mod_sub #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 + +mbedtls_mpi_mod_sub #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 + +mbedtls_mpi_mod_sub #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 + +mbedtls_mpi_mod_sub #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 + +mbedtls_mpi_mod_sub #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"bb0a9dc55736cd2240e403031e6b49851242a9733764ea41c4964cca9135881349f09623da7053bd2b96f49750aa9de8f9e44be821cb34e2722739eeec9a3eb6913986e220c4d3ce5d1ff89300beb9ea34036c30c95a4e7fe3b50c4793070a22443479ebed5b43128e393b09154c187cd93e7c4c2002e47a03f7cd9843d9c924":0 + +mbedtls_mpi_mod_sub #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mbedtls_mpi_mod_sub #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 + +mbedtls_mpi_mod_sub #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 + +mbedtls_mpi_mod_sub #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 + +mbedtls_mpi_mod_sub #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 + +mbedtls_mpi_mod_sub #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 + +mbedtls_mpi_mod_sub #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 + +mbedtls_mpi_mod_sub #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 + +mbedtls_mpi_mod_sub #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 + +mbedtls_mpi_mod_sub #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 + +mbedtls_mpi_mod_sub #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #846 0 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #847 0 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 + +mbedtls_mpi_mod_sub #848 0 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 + +mbedtls_mpi_mod_sub #849 0 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be":0 + +mbedtls_mpi_mod_sub #850 0 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bd":0 + +mbedtls_mpi_mod_sub #851 0 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e7813189":0 + +mbedtls_mpi_mod_sub #852 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a66":0 + +mbedtls_mpi_mod_sub #853 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884e":0 + +mbedtls_mpi_mod_sub #854 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e4":0 + +mbedtls_mpi_mod_sub #856 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bea":0 + +mbedtls_mpi_mod_sub #857 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002eb":0 + +mbedtls_mpi_mod_sub #859 1 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #860 1 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #861 1 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 + +mbedtls_mpi_mod_sub #862 1 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 + +mbedtls_mpi_mod_sub #863 1 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be":0 + +mbedtls_mpi_mod_sub #864 1 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318a":0 + +mbedtls_mpi_mod_sub #865 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a67":0 + +mbedtls_mpi_mod_sub #866 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884f":0 + +mbedtls_mpi_mod_sub #867 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e5":0 + +mbedtls_mpi_mod_sub #869 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138beb":0 + +mbedtls_mpi_mod_sub #870 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ec":0 + +mbedtls_mpi_mod_sub #872 2 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #873 2 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #874 2 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #875 2 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 + +mbedtls_mpi_mod_sub #876 2 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 + +mbedtls_mpi_mod_sub #877 2 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318b":0 + +mbedtls_mpi_mod_sub #878 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a68":0 + +mbedtls_mpi_mod_sub #879 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28850":0 + +mbedtls_mpi_mod_sub #880 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e6":0 + +mbedtls_mpi_mod_sub #882 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bec":0 + +mbedtls_mpi_mod_sub #883 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ed":0 + +mbedtls_mpi_mod_sub #885 3 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #886 3 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #887 3 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #888 3 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #889 3 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 + +mbedtls_mpi_mod_sub #890 3 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318c":0 + +mbedtls_mpi_mod_sub #891 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a69":0 + +mbedtls_mpi_mod_sub #892 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28851":0 + +mbedtls_mpi_mod_sub #893 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e7":0 + +mbedtls_mpi_mod_sub #895 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bed":0 + +mbedtls_mpi_mod_sub #896 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ee":0 + +mbedtls_mpi_mod_sub #898 4 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":0 + +mbedtls_mpi_mod_sub #899 4 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 + +mbedtls_mpi_mod_sub #900 4 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 + +mbedtls_mpi_mod_sub #901 4 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 + +mbedtls_mpi_mod_sub #902 4 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #903 4 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318d":0 + +mbedtls_mpi_mod_sub #904 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a6a":0 + +mbedtls_mpi_mod_sub #905 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28852":0 + +mbedtls_mpi_mod_sub #906 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e8":0 + +mbedtls_mpi_mod_sub #908 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bee":0 + +mbedtls_mpi_mod_sub #909 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ef":0 + +mbedtls_mpi_mod_sub #911 38 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":0 + +mbedtls_mpi_mod_sub #912 38 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037":0 + +mbedtls_mpi_mod_sub #913 38 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036":0 + +mbedtls_mpi_mod_sub #914 38 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035":0 + +mbedtls_mpi_mod_sub #915 38 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034":0 + +mbedtls_mpi_mod_sub #916 38 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #917 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a9e":0 + +mbedtls_mpi_mod_sub #918 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28886":0 + +mbedtls_mpi_mod_sub #919 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c7061c":0 + +mbedtls_mpi_mod_sub #921 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138c22":0 + +mbedtls_mpi_mod_sub #922 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f8400323":0 + +mbedtls_mpi_mod_sub #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 + +mbedtls_mpi_mod_sub #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 + +mbedtls_mpi_mod_sub #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 + +mbedtls_mpi_mod_sub #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 + +mbedtls_mpi_mod_sub #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 + +mbedtls_mpi_mod_sub #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 + +mbedtls_mpi_mod_sub #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 + +mbedtls_mpi_mod_sub #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 + +mbedtls_mpi_mod_sub #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca70c73846511da049da147f94b8e2ba225ead20c57e2a34345":0 + +mbedtls_mpi_mod_sub #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aafe2bab1eb0c07bd68b5270bcb045a1d671640832fcfba46":0 + +mbedtls_mpi_mod_sub #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 + +mbedtls_mpi_mod_sub #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 + +mbedtls_mpi_mod_sub #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 + +mbedtls_mpi_mod_sub #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 + +mbedtls_mpi_mod_sub #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 + +mbedtls_mpi_mod_sub #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 + +mbedtls_mpi_mod_sub #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffafb152eb6c76fe02d3b54da7dc3ad274a23fc35a4b023d9":0 + +mbedtls_mpi_mod_sub #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffda419d561d74f6b84f74499369b5b23d3599bdac685af57":0 + +mbedtls_mpi_mod_sub #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca652247691b8dbc439f79ea910f2158580e222e5159fd2355d":0 + +mbedtls_mpi_mod_sub #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859f593acde920dc759bf0bd6d12eee3d785e671940ecfeac5e":0 + +mbedtls_mpi_mod_sub #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 + +mbedtls_mpi_mod_sub #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 + +mbedtls_mpi_mod_sub #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 + +mbedtls_mpi_mod_sub #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 + +mbedtls_mpi_mod_sub #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 + +mbedtls_mpi_mod_sub #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 + +mbedtls_mpi_mod_sub #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b2a11e5b64b5d0b87f28b55661021bcfc99d83d2c5aba643":0 + +mbedtls_mpi_mod_sub #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 + +mbedtls_mpi_mod_sub #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca709ca7fbe66ca2512498c098cd553f429619c6cb2c0cdb7c7":0 + +mbedtls_mpi_mod_sub #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aad39b60b3ffc283210f9374d122cac20dde0a0de0dfa2ec8":0 + +mbedtls_mpi_mod_sub #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 + +mbedtls_mpi_mod_sub #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 + +mbedtls_mpi_mod_sub #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 + +mbedtls_mpi_mod_sub #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 + +mbedtls_mpi_mod_sub #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 + +mbedtls_mpi_mod_sub #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 + +mbedtls_mpi_mod_sub #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 + +mbedtls_mpi_mod_sub #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 + +mbedtls_mpi_mod_sub #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 + +mbedtls_mpi_mod_sub #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +mbedtls_mpi_mod_sub #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"458d3cfad8173fd6d21ec05b22fddbac49aa054bc17cb7cf8ee107d3e842f544693636bc8afd8f386ddb293afb0734f81f4e05ad445a2b9a2796e3a86f303f0428ce4aee4891d58d1989cdb845e6ee4eb4e3577671d4fe954f6123a7ec3d152d5c410eda15668bb458b9594ee8f7b3639e51d2d556b281c3cf1757a334ada8c2":0 + +mbedtls_mpi_mod_sub #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 + +mbedtls_mpi_mod_sub #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 + +mbedtls_mpi_mod_sub #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 + +mbedtls_mpi_mod_sub #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 + +mbedtls_mpi_mod_sub #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 + +mbedtls_mpi_mod_sub #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 + +mbedtls_mpi_mod_sub #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 + +mbedtls_mpi_mod_sub #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 + +mbedtls_mpi_mod_sub #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 + +mbedtls_mpi_mod_sub #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 + +mbedtls_mpi_mod_sub #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 + +# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_mod_raw.generated.data b/tests/suites/test_suite_bignum_mod_raw.generated.data new file mode 100644 index 000000000..f93093d37 --- /dev/null +++ b/tests/suites/test_suite_bignum_mod_raw.generated.data @@ -0,0 +1,3573 @@ +# Automatically generated by generate_bignum_tests.py. Do not edit! + +mbedtls_mpi_mod_raw_add #1 0 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000000" + +mbedtls_mpi_mod_raw_add #2 0 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000001" + +mbedtls_mpi_mod_raw_add #3 0 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000002" + +mbedtls_mpi_mod_raw_add #4 0 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000003" + +mbedtls_mpi_mod_raw_add #5 0 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000004":"0000000000000004" + +mbedtls_mpi_mod_raw_add #6 0 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000038":"0000000000000038" + +mbedtls_mpi_mod_raw_add #14 1 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000000":"0000000000000001" + +mbedtls_mpi_mod_raw_add #15 1 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000001":"0000000000000002" + +mbedtls_mpi_mod_raw_add #16 1 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000002":"0000000000000003" + +mbedtls_mpi_mod_raw_add #17 1 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000003":"0000000000000004" + +mbedtls_mpi_mod_raw_add #18 1 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000004":"0000000000000005" + +mbedtls_mpi_mod_raw_add #19 1 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000038":"0000000000000039" + +mbedtls_mpi_mod_raw_add #27 2 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000000":"0000000000000002" + +mbedtls_mpi_mod_raw_add #28 2 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000001":"0000000000000003" + +mbedtls_mpi_mod_raw_add #29 2 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000002":"0000000000000004" + +mbedtls_mpi_mod_raw_add #30 2 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000003":"0000000000000005" + +mbedtls_mpi_mod_raw_add #31 2 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000004":"0000000000000006" + +mbedtls_mpi_mod_raw_add #32 2 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000038":"000000000000003a" + +mbedtls_mpi_mod_raw_add #40 3 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000000":"0000000000000003" + +mbedtls_mpi_mod_raw_add #41 3 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000001":"0000000000000004" + +mbedtls_mpi_mod_raw_add #42 3 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000002":"0000000000000005" + +mbedtls_mpi_mod_raw_add #43 3 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000003":"0000000000000006" + +mbedtls_mpi_mod_raw_add #44 3 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000004":"0000000000000007" + +mbedtls_mpi_mod_raw_add #45 3 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000038":"000000000000003b" + +mbedtls_mpi_mod_raw_add #53 4 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000000":"0000000000000004" + +mbedtls_mpi_mod_raw_add #54 4 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000001":"0000000000000005" + +mbedtls_mpi_mod_raw_add #55 4 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000002":"0000000000000006" + +mbedtls_mpi_mod_raw_add #56 4 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000003":"0000000000000007" + +mbedtls_mpi_mod_raw_add #57 4 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000004":"0000000000000008" + +mbedtls_mpi_mod_raw_add #58 4 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000038":"000000000000003c" + +mbedtls_mpi_mod_raw_add #66 38 + 0 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000000":"0000000000000038" + +mbedtls_mpi_mod_raw_add #67 38 + 1 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000001":"0000000000000039" + +mbedtls_mpi_mod_raw_add #68 38 + 2 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000002":"000000000000003a" + +mbedtls_mpi_mod_raw_add #69 38 + 3 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000003":"000000000000003b" + +mbedtls_mpi_mod_raw_add #70 38 + 4 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000004":"000000000000003c" + +mbedtls_mpi_mod_raw_add #71 38 + 38 mod 53 +mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000038":"000000000000001d" + +mbedtls_mpi_mod_raw_add #170 0 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000000" + +mbedtls_mpi_mod_raw_add #171 0 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000001" + +mbedtls_mpi_mod_raw_add #172 0 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000002" + +mbedtls_mpi_mod_raw_add #173 0 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000003" + +mbedtls_mpi_mod_raw_add #174 0 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000004" + +mbedtls_mpi_mod_raw_add #175 0 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000038":"0000000000000038" + +mbedtls_mpi_mod_raw_add #183 1 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000001" + +mbedtls_mpi_mod_raw_add #184 1 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000002" + +mbedtls_mpi_mod_raw_add #185 1 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000003" + +mbedtls_mpi_mod_raw_add #186 1 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000004" + +mbedtls_mpi_mod_raw_add #187 1 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000005" + +mbedtls_mpi_mod_raw_add #188 1 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000038":"0000000000000039" + +mbedtls_mpi_mod_raw_add #196 2 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000000":"0000000000000002" + +mbedtls_mpi_mod_raw_add #197 2 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000001":"0000000000000003" + +mbedtls_mpi_mod_raw_add #198 2 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000002":"0000000000000004" + +mbedtls_mpi_mod_raw_add #199 2 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000003":"0000000000000005" + +mbedtls_mpi_mod_raw_add #200 2 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000004":"0000000000000006" + +mbedtls_mpi_mod_raw_add #201 2 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000038":"000000000000003a" + +mbedtls_mpi_mod_raw_add #209 3 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000000":"0000000000000003" + +mbedtls_mpi_mod_raw_add #210 3 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000001":"0000000000000004" + +mbedtls_mpi_mod_raw_add #211 3 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000002":"0000000000000005" + +mbedtls_mpi_mod_raw_add #212 3 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000003":"0000000000000006" + +mbedtls_mpi_mod_raw_add #213 3 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000004":"0000000000000007" + +mbedtls_mpi_mod_raw_add #214 3 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000038":"000000000000003b" + +mbedtls_mpi_mod_raw_add #222 4 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000000":"0000000000000004" + +mbedtls_mpi_mod_raw_add #223 4 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000001":"0000000000000005" + +mbedtls_mpi_mod_raw_add #224 4 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000002":"0000000000000006" + +mbedtls_mpi_mod_raw_add #225 4 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000003":"0000000000000007" + +mbedtls_mpi_mod_raw_add #226 4 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000004":"0000000000000008" + +mbedtls_mpi_mod_raw_add #227 4 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000038":"000000000000003c" + +mbedtls_mpi_mod_raw_add #235 38 + 0 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000000":"0000000000000038" + +mbedtls_mpi_mod_raw_add #236 38 + 1 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000001":"0000000000000039" + +mbedtls_mpi_mod_raw_add #237 38 + 2 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000002":"000000000000003a" + +mbedtls_mpi_mod_raw_add #238 38 + 3 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000003":"000000000000003b" + +mbedtls_mpi_mod_raw_add #239 38 + 4 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000004":"000000000000003c" + +mbedtls_mpi_mod_raw_add #240 38 + 38 mod 45 +mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000038":"000000000000002b" + +mbedtls_mpi_mod_raw_add #339 0 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_add #340 0 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #341 0 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #342 0 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #343 0 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #344 0 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #346 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #347 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #352 1 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #353 1 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #354 1 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #355 1 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #356 1 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #357 1 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #359 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #360 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #365 2 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #366 2 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #367 2 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #368 2 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #369 2 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #370 2 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #372 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #373 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #378 3 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #379 3 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #380 3 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #381 3 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #382 3 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #383 3 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #385 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #386 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #391 4 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #392 4 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #393 4 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #394 4 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #395 4 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000008" + +mbedtls_mpi_mod_raw_add #396 4 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #398 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #399 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #404 38 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #405 38 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #406 38 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"00000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #407 38 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"00000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #408 38 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"00000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #409 38 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000070" + +mbedtls_mpi_mod_raw_add #411 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #412 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" + +mbedtls_mpi_mod_raw_add #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c9152c636a4714819fc00a39cd247f53bf1bf4d2e91df5" + +mbedtls_mpi_mod_raw_add #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c9152c636a4714819fc00a39cd247f53bf1bf4d2e91df5" + +mbedtls_mpi_mod_raw_add #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cc6f1e591158a7ecd38d20861d0b9327d338a391f3e4a05f" + +mbedtls_mpi_mod_raw_add #508 0 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_add #509 0 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #510 0 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #511 0 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #512 0 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #513 0 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #514 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #515 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #516 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #521 1 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #522 1 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #523 1 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #524 1 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #525 1 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #526 1 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #527 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #528 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #529 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #534 2 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #535 2 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #536 2 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #537 2 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #538 2 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #539 2 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #540 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #541 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #542 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #547 3 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #548 3 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #549 3 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #550 3 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #551 3 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #552 3 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #553 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #554 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #555 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #560 4 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #561 4 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #562 4 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #563 4 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #564 4 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000008" + +mbedtls_mpi_mod_raw_add #565 4 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #566 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #567 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #568 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #573 38 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #574 38 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #575 38 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"00000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #576 38 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"00000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #577 38 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"00000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #578 38 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000070" + +mbedtls_mpi_mod_raw_add #579 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #580 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #581 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a394bd17a665068557a3d99188ac14f1c221e143d3c812e5" + +mbedtls_mpi_mod_raw_add #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0ebb870fb5526f9ffe7e9d2cfd466f538ec419eb1f28767" + +mbedtls_mpi_mod_raw_add #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" + +mbedtls_mpi_mod_raw_add #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0ebb870fb5526f9ffe7e9d2cfd466f538ec419eb1f28767" + +mbedtls_mpi_mod_raw_add #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e42b3ca5045476ea82bfa1416fcb8f8afb6a1f9901cfbe9" + +mbedtls_mpi_mod_raw_add #677 0 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_add #678 0 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #679 0 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #680 0 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #681 0 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #682 0 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #683 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #684 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #685 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #687 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_add #688 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_add #690 1 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #691 1 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #692 1 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #693 1 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #694 1 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #695 1 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #696 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #697 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #698 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #700 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" + +mbedtls_mpi_mod_raw_add #701 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" + +mbedtls_mpi_mod_raw_add #703 2 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #704 2 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #705 2 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #706 2 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #707 2 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #708 2 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #709 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #710 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #711 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #713 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" + +mbedtls_mpi_mod_raw_add #714 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" + +mbedtls_mpi_mod_raw_add #716 3 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #717 3 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #718 3 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #719 3 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #720 3 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #721 3 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #722 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #723 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #724 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #726 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" + +mbedtls_mpi_mod_raw_add #727 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" + +mbedtls_mpi_mod_raw_add #729 4 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #730 4 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #731 4 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #732 4 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #733 4 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008" + +mbedtls_mpi_mod_raw_add #734 4 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #735 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #736 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #737 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #739 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" + +mbedtls_mpi_mod_raw_add #740 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" + +mbedtls_mpi_mod_raw_add #742 38 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #743 38 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #744 38 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #745 38 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #746 38 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #747 38 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070" + +mbedtls_mpi_mod_raw_add #748 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #749 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #750 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #752 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" + +mbedtls_mpi_mod_raw_add #753 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" + +mbedtls_mpi_mod_raw_add #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6" + +mbedtls_mpi_mod_raw_add #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" + +mbedtls_mpi_mod_raw_add #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" + +mbedtls_mpi_mod_raw_add #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" + +mbedtls_mpi_mod_raw_add #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" + +mbedtls_mpi_mod_raw_add #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" + +mbedtls_mpi_mod_raw_add #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" + +mbedtls_mpi_mod_raw_add #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" + +mbedtls_mpi_mod_raw_add #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e3045ff78d10ef056922089abc68248b8dc866e2b7457ba" + +mbedtls_mpi_mod_raw_add #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" + +mbedtls_mpi_mod_raw_add #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" + +mbedtls_mpi_mod_raw_add #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_add #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" + +mbedtls_mpi_mod_raw_add #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" + +mbedtls_mpi_mod_raw_add #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" + +mbedtls_mpi_mod_raw_add #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" + +mbedtls_mpi_mod_raw_add #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" + +mbedtls_mpi_mod_raw_add #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" + +mbedtls_mpi_mod_raw_add #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" + +mbedtls_mpi_mod_raw_add #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" + +mbedtls_mpi_mod_raw_add #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae" + +mbedtls_mpi_mod_raw_add #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" + +mbedtls_mpi_mod_raw_add #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_add #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" + +mbedtls_mpi_mod_raw_add #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" + +mbedtls_mpi_mod_raw_add #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" + +mbedtls_mpi_mod_raw_add #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" + +mbedtls_mpi_mod_raw_add #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" + +mbedtls_mpi_mod_raw_add #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" + +mbedtls_mpi_mod_raw_add #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" + +mbedtls_mpi_mod_raw_add #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" + +mbedtls_mpi_mod_raw_add #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" + +mbedtls_mpi_mod_raw_add #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac" + +mbedtls_mpi_mod_raw_add #846 0 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_add #847 0 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #848 0 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #849 0 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #850 0 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #851 0 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #852 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #853 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #854 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #856 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_add #857 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_add #859 1 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_add #860 1 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #861 1 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #862 1 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #863 1 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #864 1 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #865 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #866 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #867 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #869 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" + +mbedtls_mpi_mod_raw_add #870 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" + +mbedtls_mpi_mod_raw_add #872 2 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_add #873 2 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #874 2 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #875 2 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #876 2 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #877 2 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #878 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #879 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #880 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #882 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" + +mbedtls_mpi_mod_raw_add #883 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" + +mbedtls_mpi_mod_raw_add #885 3 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_add #886 3 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #887 3 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #888 3 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #889 3 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #890 3 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #891 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #892 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #893 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #895 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" + +mbedtls_mpi_mod_raw_add #896 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" + +mbedtls_mpi_mod_raw_add #898 4 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_add #899 4 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" + +mbedtls_mpi_mod_raw_add #900 4 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" + +mbedtls_mpi_mod_raw_add #901 4 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" + +mbedtls_mpi_mod_raw_add #902 4 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008" + +mbedtls_mpi_mod_raw_add #903 4 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #904 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #905 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #906 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #908 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" + +mbedtls_mpi_mod_raw_add #909 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" + +mbedtls_mpi_mod_raw_add #911 38 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_add #912 38 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" + +mbedtls_mpi_mod_raw_add #913 38 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" + +mbedtls_mpi_mod_raw_add #914 38 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" + +mbedtls_mpi_mod_raw_add #915 38 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" + +mbedtls_mpi_mod_raw_add #916 38 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070" + +mbedtls_mpi_mod_raw_add #917 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #918 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #919 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #921 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" + +mbedtls_mpi_mod_raw_add #922 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" + +mbedtls_mpi_mod_raw_add #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_add #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" + +mbedtls_mpi_mod_raw_add #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" + +mbedtls_mpi_mod_raw_add #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" + +mbedtls_mpi_mod_raw_add #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" + +mbedtls_mpi_mod_raw_add #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" + +mbedtls_mpi_mod_raw_add #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6" + +mbedtls_mpi_mod_raw_add #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" + +mbedtls_mpi_mod_raw_add #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" + +mbedtls_mpi_mod_raw_add #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" + +mbedtls_mpi_mod_raw_add #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_add #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" + +mbedtls_mpi_mod_raw_add #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" + +mbedtls_mpi_mod_raw_add #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" + +mbedtls_mpi_mod_raw_add #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" + +mbedtls_mpi_mod_raw_add #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" + +mbedtls_mpi_mod_raw_add #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" + +mbedtls_mpi_mod_raw_add #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" + +mbedtls_mpi_mod_raw_add #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" + +mbedtls_mpi_mod_raw_add #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" + +mbedtls_mpi_mod_raw_add #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_add #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" + +mbedtls_mpi_mod_raw_add #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" + +mbedtls_mpi_mod_raw_add #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" + +mbedtls_mpi_mod_raw_add #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" + +mbedtls_mpi_mod_raw_add #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" + +mbedtls_mpi_mod_raw_add #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" + +mbedtls_mpi_mod_raw_add #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" + +mbedtls_mpi_mod_raw_add #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e3045ff78d10ef056922089abc68248b8dc866e2b7457ba" + +mbedtls_mpi_mod_raw_add #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" + +mbedtls_mpi_mod_raw_add #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" + +mbedtls_mpi_mod_raw_add #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_add #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" + +mbedtls_mpi_mod_raw_add #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" + +mbedtls_mpi_mod_raw_add #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" + +mbedtls_mpi_mod_raw_add #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" + +mbedtls_mpi_mod_raw_add #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" + +mbedtls_mpi_mod_raw_add #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" + +mbedtls_mpi_mod_raw_add #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" + +mbedtls_mpi_mod_raw_add #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" + +mbedtls_mpi_mod_raw_add #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae" + +mbedtls_mpi_mod_raw_add #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" + +mbedtls_mpi_mod_raw_add #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_add #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" + +mbedtls_mpi_mod_raw_add #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" + +mbedtls_mpi_mod_raw_add #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" + +mbedtls_mpi_mod_raw_add #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" + +mbedtls_mpi_mod_raw_add #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" + +mbedtls_mpi_mod_raw_add #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" + +mbedtls_mpi_mod_raw_add #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" + +mbedtls_mpi_mod_raw_add #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" + +mbedtls_mpi_mod_raw_add #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" + +mbedtls_mpi_mod_raw_add #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac" + +Convert from Mont: #1 1/R * 0 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000000":"00000000" + +Convert from Mont: #2 1/R * 0 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000000":"0000000000000000" + +Convert from Mont: #3 1/R * 1 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000001":"00000045" + +Convert from Mont: #4 1/R * 1 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000001":"000000000000001e" + +Convert from Mont: #5 1/R * 2 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000002":"00000037" + +Convert from Mont: #6 1/R * 2 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000002":"000000000000003c" + +Convert from Mont: #7 1/R * 3 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000003":"00000029" + +Convert from Mont: #8 1/R * 3 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000003":"0000000000000007" + +Convert from Mont: #9 1/R * 4 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000004":"0000001b" + +Convert from Mont: #10 1/R * 4 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000004":"0000000000000025" + +Convert from Mont: #11 1/R * 38 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000053":"00000038":"0000002e" + +Convert from Mont: #12 1/R * 38 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000038":"0000000000000014" + +Convert from Mont: #27 1/R * 0 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000000":"00000000" + +Convert from Mont: #28 1/R * 0 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000000":"0000000000000000" + +Convert from Mont: #29 1/R * 1 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000001":"00000019" + +Convert from Mont: #30 1/R * 1 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000001":"0000000000000004" + +Convert from Mont: #31 1/R * 2 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000002":"00000032" + +Convert from Mont: #32 1/R * 2 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000002":"0000000000000008" + +Convert from Mont: #33 1/R * 3 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000003":"00000006" + +Convert from Mont: #34 1/R * 3 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000003":"000000000000000c" + +Convert from Mont: #35 1/R * 4 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000004":"0000001f" + +Convert from Mont: #36 1/R * 4 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000004":"0000000000000010" + +Convert from Mont: #37 1/R * 38 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"00000045":"00000038":"00000014" + +Convert from Mont: #38 1/R * 38 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000038":"0000000000000011" + +Convert from Mont: #53 1/R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert from Mont: #54 1/R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert from Mont: #55 1/R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"74b9f8778bfd86cdb816735b3a84c8af74b73b46e10bf405" + +Convert from Mont: #56 1/R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"74b9f8778bfd86cdb816735b3a84c8af74b73b46e10bf405" + +Convert from Mont: #57 1/R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"17b2c948b082a697ed27e6b2e64ea23e03ca93b18a8830af" + +Convert from Mont: #58 1/R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"17b2c948b082a697ed27e6b2e64ea23e03ca93b18a8830af" + +Convert from Mont: #59 1/R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8c6cc1c03c802d65a53e5a0e20d36aed7881cef86b9424b4" + +Convert from Mont: #60 1/R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8c6cc1c03c802d65a53e5a0e20d36aed7881cef86b9424b4" + +Convert from Mont: #61 1/R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"2f65929161054d2fda4fcd65cc9d447c079527631510615e" + +Convert from Mont: #62 1/R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"2f65929161054d2fda4fcd65cc9d447c079527631510615e" + +Convert from Mont: #63 1/R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"224a8d0017e10393674e3b868468f165b93c7ed680362d13" + +Convert from Mont: #64 1/R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"224a8d0017e10393674e3b868468f165b93c7ed680362d13" + +Convert from Mont: #67 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"490b20310ad73f8db9cc45047034439bffb7e576fd83f88e" + +Convert from Mont: #68 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"490b20310ad73f8db9cc45047034439bffb7e576fd83f88e" + +Convert from Mont: #69 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bfca7b942a311c6b9858f5b6370861aa783df7bca65b201" + +Convert from Mont: #70 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bfca7b942a311c6b9858f5b6370861aa783df7bca65b201" + +Convert from Mont: #79 1/R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert from Mont: #80 1/R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert from Mont: #81 1/R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"f324f15486ec1faa24c20a130639f7b010a1784f71b2ec81" + +Convert from Mont: #82 1/R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"f324f15486ec1faa24c20a130639f7b010a1784f71b2ec81" + +Convert from Mont: #83 1/R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"e65c5073e54c77d29b1dedb077aa2610181d0c2a480e7d31" + +Convert from Mont: #84 1/R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"e65c5073e54c77d29b1dedb077aa2610181d0c2a480e7d31" + +Convert from Mont: #85 1/R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d993af9343accffb1179d14de91a54701f98a0051e6a0de1" + +Convert from Mont: #86 1/R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d993af9343accffb1179d14de91a54701f98a0051e6a0de1" + +Convert from Mont: #87 1/R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cccb0eb2a20d282387d5b4eb5a8a82d0271433dff4c59e91" + +Convert from Mont: #88 1/R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cccb0eb2a20d282387d5b4eb5a8a82d0271433dff4c59e91" + +Convert from Mont: #89 1/R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"33e5857c1eb69f5eef4c3dd18ee780f1be7a053cb60db9f3" + +Convert from Mont: #90 1/R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"33e5857c1eb69f5eef4c3dd18ee780f1be7a053cb60db9f3" + +Convert from Mont: #91 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"508fbacd73aaf535ac8ae1a9daf130c4603db82fe3409ca0" + +Convert from Mont: #92 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"508fbacd73aaf535ac8ae1a9daf130c4603db82fe3409ca0" + +Convert from Mont: #93 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d865c9c12edbbcaf84036900ad55158e4638ae314075919" + +Convert from Mont: #94 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d865c9c12edbbcaf84036900ad55158e4638ae314075919" + +Convert from Mont: #95 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"55969118b345e4f8650c5a0d8a3f2769e51d4045bd79ebce" + +Convert from Mont: #96 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"55969118b345e4f8650c5a0d8a3f2769e51d4045bd79ebce" + +Convert from Mont: #105 1/R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert from Mont: #106 1/R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert from Mont: #107 1/R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a125ade065ea1d11748f4adbaf2ed28145218bdc0dc6f08211d6d154f847ee3d7ec56f2768acd3365ad375a0b19f9798f84ae6b133de1274e574ca6a0ec5ad18af852d84cb2b132748dddcd68c62e49d1df06c98a289576b012b5f939614fb0c747786ebfba55b96c2008d140abf034585100f59777f5a3595918325d1fe830e" + +Convert from Mont: #108 1/R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a125ade065ea1d11748f4adbaf2ed28145218bdc0dc6f08211d6d154f847ee3d7ec56f2768acd3365ad375a0b19f9798f84ae6b133de1274e574ca6a0ec5ad18af852d84cb2b132748dddcd68c62e49d1df06c98a289576b012b5f939614fb0c747786ebfba55b96c2008d140abf034585100f59777f5a3595918325d1fe830e" + +Convert from Mont: #109 1/R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"790fb3d456facae1cd7e8cf9a6cf41037887b9c3b13bff98f7108d3a6241c3cf07aa8b83cf65295f9c8143c202a619ba0f6cd1f314c8dac235df3b8872ae1cb1075e6fe7696259a52ee0a30121269e5fe00e3e7e50006a16d8f7bf87c17e54e8b9f2c93ce4becfce9937156bd963f12df84ed0270bd487e8a36f6cdead4fb3f9" + +Convert from Mont: #110 1/R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"790fb3d456facae1cd7e8cf9a6cf41037887b9c3b13bff98f7108d3a6241c3cf07aa8b83cf65295f9c8143c202a619ba0f6cd1f314c8dac235df3b8872ae1cb1075e6fe7696259a52ee0a30121269e5fe00e3e7e50006a16d8f7bf87c17e54e8b9f2c93ce4becfce9937156bd963f12df84ed0270bd487e8a36f6cdead4fb3f9" + +Convert from Mont: #111 1/R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"50f9b9c8480b78b2266dcf179e6faf85abede7ab54b10eafdc4a491fcc3b9960908fa7e0361d7f88de2f11e353ac9bdb268ebd34f5b3a30f8649aca6d6968c495f37b24a0799a02314e3692bb5ea5822a22c1063fd777cc2b0c41f7bece7aec4ff6e0b8dcdd84406706d9dc3a808df166b8d90f4a029b59bb14d569788a0e4e4" + +Convert from Mont: #112 1/R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"50f9b9c8480b78b2266dcf179e6faf85abede7ab54b10eafdc4a491fcc3b9960908fa7e0361d7f88de2f11e353ac9bdb268ebd34f5b3a30f8649aca6d6968c495f37b24a0799a02314e3692bb5ea5822a22c1063fd777cc2b0c41f7bece7aec4ff6e0b8dcdd84406706d9dc3a808df166b8d90f4a029b59bb14d569788a0e4e4" + +Convert from Mont: #113 1/R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"28e3bfbc391c26827f5d113596101e07df541592f8261dc6c184050536356ef21974c43c9cd5d5b21fdce004a4b31dfc3db0a876d69e6b5cd6b41dc53a7efbe1b710f4aca5d0e6a0fae62f564aae11e56449e249aaee8f6e88907f70185108a144e94ddeb6f1b83e47a4261b76adccfedecc51c2347ee34ebf2b405063f215cf" + +Convert from Mont: #114 1/R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"28e3bfbc391c26827f5d113596101e07df541592f8261dc6c184050536356ef21974c43c9cd5d5b21fdce004a4b31dfc3db0a876d69e6b5cd6b41dc53a7efbe1b710f4aca5d0e6a0fae62f564aae11e56449e249aaee8f6e88907f70185108a144e94ddeb6f1b83e47a4261b76adccfedecc51c2347ee34ebf2b405063f215cf" + +Convert from Mont: #115 1/R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"a9fd2c7235d73ca0bfd6df72c5c4dc7013227220bd71de083bfe1b69da4fdfe578a215ba8fc8b5a38bc8f142409978db9d573fa116c34ac493c4ee31dd374b5753958b2cb785037af2e069602646a4d6c4652aa16ee74e8d2528f8e27f17367166c9b8f7dc2044aa15660c08054d0b360b89db87189c154964f6518b89e28d0c" + +Convert from Mont: #116 1/R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"a9fd2c7235d73ca0bfd6df72c5c4dc7013227220bd71de083bfe1b69da4fdfe578a215ba8fc8b5a38bc8f142409978db9d573fa116c34ac493c4ee31dd374b5753958b2cb785037af2e069602646a4d6c4652aa16ee74e8d2528f8e27f17367166c9b8f7dc2044aa15660c08054d0b360b89db87189c154964f6518b89e28d0c" + +Convert from Mont: #117 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"19fb3cd36a3e14902ae08648ecea45e81a5812009ec340eeaac6c204d6b18090cb21f24b8bd0c48437fe8febee920565444107ebebe844c5927c6c136be278072d5dd3c2d3099e57ae19b1e4e63dc9a0d22fbfc039634569397291464dd0194d0e8c3c153ca72e48466bd60c525aeee67e8b601b8bcab51ad8a31c6d279cd6db" + +Convert from Mont: #118 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"19fb3cd36a3e14902ae08648ecea45e81a5812009ec340eeaac6c204d6b18090cb21f24b8bd0c48437fe8febee920565444107ebebe844c5927c6c136be278072d5dd3c2d3099e57ae19b1e4e63dc9a0d22fbfc039634569397291464dd0194d0e8c3c153ca72e48466bd60c525aeee67e8b601b8bcab51ad8a31c6d279cd6db" + +Convert from Mont: #119 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"8b43c39ddfc4cbb4e7786dc3ca067f0df6ec11a8ed353c4834c100669a646ff1e86be025ce5395237321bc5f0b2f6e6094da34605abd0f6be4ffd23f5487b168bccb0afc51237bee701f731edf26aed6686635d3aa45b7fb22b1bdbc8889db3a7bee86961e5431c93a7897e57297c3de5212c453d8c3fcd7aed10b38fb1f82ee" + +Convert from Mont: #120 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"8b43c39ddfc4cbb4e7786dc3ca067f0df6ec11a8ed353c4834c100669a646ff1e86be025ce5395237321bc5f0b2f6e6094da34605abd0f6be4ffd23f5487b168bccb0afc51237bee701f731edf26aed6686635d3aa45b7fb22b1bdbc8889db3a7bee86961e5431c93a7897e57297c3de5212c453d8c3fcd7aed10b38fb1f82ee" + +Convert from Mont: #121 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"88b69991382e83cffb6f75ee66d8879f1033e185da7e8a434666228d5912f4de086fd99cec9776740b9f4d38b6d72ce5e6a76ea7360ef06d9348657cbf1b33b19aa7612a1936be1b09bbc88f0fc22a6d0cfda55c5d46d54aea1217586d423a52bbe37729c0edf977fea30c1312e53c3a03e0d68dcf5188ce0266d02d1f9c99d5" + +Convert from Mont: #122 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"88b69991382e83cffb6f75ee66d8879f1033e185da7e8a434666228d5912f4de086fd99cec9776740b9f4d38b6d72ce5e6a76ea7360ef06d9348657cbf1b33b19aa7612a1936be1b09bbc88f0fc22a6d0cfda55c5d46d54aea1217586d423a52bbe37729c0edf977fea30c1312e53c3a03e0d68dcf5188ce0266d02d1f9c99d5" + +Convert from Mont: #125 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a22a06d2f36b6fad3706949217f48a810682f5420f162b1753b3d1f5c68028b24919b5b4a1ec0aa44793d4500e17378249c6d693c1779a1dbbe530325a6a5efd87e46cf6f3cc619b150ba97e9d651fc8ff07f0855da495cefd2ac346c7af4528409700949affeb4035dcdbdb54db88facdb7494a40392374b07b02943996364b" + +Convert from Mont: #126 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a22a06d2f36b6fad3706949217f48a810682f5420f162b1753b3d1f5c68028b24919b5b4a1ec0aa44793d4500e17378249c6d693c1779a1dbbe530325a6a5efd87e46cf6f3cc619b150ba97e9d651fc8ff07f0855da495cefd2ac346c7af4528409700949affeb4035dcdbdb54db88facdb7494a40392374b07b02943996364b" + +Convert from Mont: #127 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"8823b7ed9dee843595b1533326542beeeabf3cb8421885c48a72dace520c01eee7cb00f5173412e59bd22648d28a10bffcd686d8ad53d2eb49453bee2f265976d15d52c239c010dab5712d1a58865730769f9c42ab7c446ce3cc1716c20803164892c9f578e8858611224612cbf8bd14b014644ed76b5727ef7af5e20ef64d90" + +Convert from Mont: #128 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"8823b7ed9dee843595b1533326542beeeabf3cb8421885c48a72dace520c01eee7cb00f5173412e59bd22648d28a10bffcd686d8ad53d2eb49453bee2f265976d15d52c239c010dab5712d1a58865730769f9c42ab7c446ce3cc1716c20803164892c9f578e8858611224612cbf8bd14b014644ed76b5727ef7af5e20ef64d90" + +Convert from Mont: #131 1/R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert from Mont: #132 1/R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert from Mont: #133 1/R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4ba22b21e3b26d2c917185cf67909676e4386e4c5223df4d599df0bab67270a4ded4e3234f06c584027346324c1c222b33be22a4c6d2bffadeb05adb5d7bff73e11e536ccd4e03911faf079326994d7cc69adfc5446a3a3a4f63a6ad959fef3c660aac5f74e74aa51ac5959f9af4fc55fe5f68f797a0d7b44c70087ac3cd130d" + +Convert from Mont: #134 1/R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4ba22b21e3b26d2c917185cf67909676e4386e4c5223df4d599df0bab67270a4ded4e3234f06c584027346324c1c222b33be22a4c6d2bffadeb05adb5d7bff73e11e536ccd4e03911faf079326994d7cc69adfc5446a3a3a4f63a6ad959fef3c660aac5f74e74aa51ac5959f9af4fc55fe5f68f797a0d7b44c70087ac3cd130d" + +Convert from Mont: #135 1/R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"43860f21d1aaf86376084589130036c77f4e22cbafde0fa1bc5410fc87895b6ca883d2e2eb8bd27fa97cb0418d4297cf60e9901518233f1672e6b2b18d84c119d2fbf7ab45db38ba20192355106b3bbab0833991eb477fa009bc365b675e323d850c7f35af3765498041083d2624486825da2cda1567e59c460ced7da018f459" + +Convert from Mont: #136 1/R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"43860f21d1aaf86376084589130036c77f4e22cbafde0fa1bc5410fc87895b6ca883d2e2eb8bd27fa97cb0418d4297cf60e9901518233f1672e6b2b18d84c119d2fbf7ab45db38ba20192355106b3bbab0833991eb477fa009bc365b675e323d850c7f35af3765498041083d2624486825da2cda1567e59c460ced7da018f459" + +Convert from Mont: #137 1/R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3b69f321bfa3839a5a9f0542be6fd7181a63d74b0d983ff61f0a313e58a046347232c2a28810df7b50861a50ce690d738e14fd856973be32071d0a87bd8d82bfc4d99be9be686de320833f16fa3d29f89a6b935e9224c505c414c609391c753ea40e520be9877fede5bc7adab153947a4d54f0bc932ef3843fa9d2807c64d5a5" + +Convert from Mont: #138 1/R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3b69f321bfa3839a5a9f0542be6fd7181a63d74b0d983ff61f0a313e58a046347232c2a28810df7b50861a50ce690d738e14fd856973be32071d0a87bd8d82bfc4d99be9be686de320833f16fa3d29f89a6b935e9224c505c414c609391c753ea40e520be9877fede5bc7adab153947a4d54f0bc932ef3843fa9d2807c64d5a5" + +Convert from Mont: #139 1/R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"334dd721ad9c0ed13f35c4fc69df7768b5798bca6b52704a81c0518029b730fc3be1b2622495ec76f78f84600f8f8317bb406af5bac43d4d9b53625ded964465b6b7402836f5a30c20ed5ad8e40f18368453ed2b39020a6b7e6d55b70adab83fc31024e223d79a924b37ed783c82e08c74cfb49f10f6016c3946b78358b0b6f1" + +Convert from Mont: #140 1/R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"334dd721ad9c0ed13f35c4fc69df7768b5798bca6b52704a81c0518029b730fc3be1b2622495ec76f78f84600f8f8317bb406af5bac43d4d9b53625ded964465b6b7402836f5a30c20ed5ad8e40f18368453ed2b39020a6b7e6d55b70adab83fc31024e223d79a924b37ed783c82e08c74cfb49f10f6016c3946b78358b0b6f1" + +Convert from Mont: #141 1/R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"304f8ac7d0b9bfc40e1a951fe930d687a38fd6aa3b34ac4b6145f13b1d287ee29d2826406c252a3eae8a5c28822bc71408f02fcc8aa953442abf48f9929dcf20840008c05b687768d2d39952929859045702c89831b4eb3c41a1f80478e8b1a2729b38142110f3fa72bde482d0fac58fac36b80a1ea5c5888b44ed6f9da07326" + +Convert from Mont: #142 1/R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"304f8ac7d0b9bfc40e1a951fe930d687a38fd6aa3b34ac4b6145f13b1d287ee29d2826406c252a3eae8a5c28822bc71408f02fcc8aa953442abf48f9929dcf20840008c05b687768d2d39952929859045702c89831b4eb3c41a1f80478e8b1a2729b38142110f3fa72bde482d0fac58fac36b80a1ea5c5888b44ed6f9da07326" + +Convert from Mont: #143 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4a1f4275af3e5dd3cae19c924e5ce65eff864b4aaf86c4d2245bc1c686f38538330a8a5f11ce066678cfb5c1fb3ae82d90b8a8d21bd710f80fe59c58b71ed303e75efe8764e3d0c55199ca575547134cf948f8bed87ad59f2a1cfc114adf7c12e78cfbc568350c1acb0d946d769fe71e2aeaff15437d0955fa547d899cda2612" + +Convert from Mont: #144 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4a1f4275af3e5dd3cae19c924e5ce65eff864b4aaf86c4d2245bc1c686f38538330a8a5f11ce066678cfb5c1fb3ae82d90b8a8d21bd710f80fe59c58b71ed303e75efe8764e3d0c55199ca575547134cf948f8bed87ad59f2a1cfc114adf7c12e78cfbc568350c1acb0d946d769fe71e2aeaff15437d0955fa547d899cda2612" + +Convert from Mont: #145 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"360865ad76d277a1b71ab6df5f64741fab3f49c5498d06bee5be8e691de6f8025e961012cedd236f9850dd1b60aabc6752593656da5bf615a6c54730e6986540a64b5a93f9766f708d45f657d0c5551c072ec45c981c18bc2d33b86a8c53140cb6653b84d6faf830e92a37c403efec39b640188397666d50ad4b8f74bad3bfd3" + +Convert from Mont: #146 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"360865ad76d277a1b71ab6df5f64741fab3f49c5498d06bee5be8e691de6f8025e961012cedd236f9850dd1b60aabc6752593656da5bf615a6c54730e6986540a64b5a93f9766f708d45f657d0c5551c072ec45c981c18bc2d33b86a8c53140cb6653b84d6faf830e92a37c403efec39b640188397666d50ad4b8f74bad3bfd3" + +Convert from Mont: #147 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0c8f196fb5d74dd223f72a368b7ce2e359b24503af8d877a9f62ddb18fb3559fe52b40d8c63afff8f80b32a2b151a126d36054f04d53ac62d736224d0d9ef8b281ea8e0ff047c97dd7588db6ac11f64edde5357249ffbee77ce651eb0ae11cc6a47f2279f2d8ffd3125b8134b87d4ebfcc91d802a3462ad5a3abc6f61e915f9c" + +Convert from Mont: #148 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0c8f196fb5d74dd223f72a368b7ce2e359b24503af8d877a9f62ddb18fb3559fe52b40d8c63afff8f80b32a2b151a126d36054f04d53ac62d736224d0d9ef8b281ea8e0ff047c97dd7588db6ac11f64edde5357249ffbee77ce651eb0ae11cc6a47f2279f2d8ffd3125b8134b87d4ebfcc91d802a3462ad5a3abc6f61e915f9c" + +Convert from Mont: #151 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30e0290b73ca33536b1925eb21440e772431b3f98dcded08233a324aaa07b83c9b68e4bc291d545e82feb30aedcdcdbea8c84921e9c1ddaa35d9590f09c0cff3589d1588979e8207fe2c6b68e366449b3c7965fad7b4edcb2a5616b67b466aa26df1b706f2317a1a9daef0e8185136c20e12123e6e9768c0e7ed0132199bc886" + +Convert from Mont: #152 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30e0290b73ca33536b1925eb21440e772431b3f98dcded08233a324aaa07b83c9b68e4bc291d545e82feb30aedcdcdbea8c84921e9c1ddaa35d9590f09c0cff3589d1588979e8207fe2c6b68e366449b3c7965fad7b4edcb2a5616b67b466aa26df1b706f2317a1a9daef0e8185136c20e12123e6e9768c0e7ed0132199bc886" + +Convert from Mont: #153 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"429b7b0931e176211ff8c327c1bf976d9d8aa9188b9779dabfa767998a4b273de546eef41ef61b351bbdceda605de1a33856ca1015f2b44a3e55376d0174f443cda94a9541b7796fe07dbc6715d800fc8478c654fdf31a0cb65c8de2f072d669c6faac36a3697d20b6863f85b1c208c111cf4355fb1781e1a99e30782e46593a" + +Convert from Mont: #154 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"429b7b0931e176211ff8c327c1bf976d9d8aa9188b9779dabfa767998a4b273de546eef41ef61b351bbdceda605de1a33856ca1015f2b44a3e55376d0174f443cda94a9541b7796fe07dbc6715d800fc8478c654fdf31a0cb65c8de2f072d669c6faac36a3697d20b6863f85b1c208c111cf4355fb1781e1a99e30782e46593a" + +Convert into Mont: #1 R * 0 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000000":"00000000" + +Convert into Mont: #2 R * 0 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000000":"0000000000000000" + +Convert into Mont: #3 R * 1 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000001":"0000004d" + +Convert into Mont: #4 R * 1 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000001":"0000000000000024" + +Convert into Mont: #5 R * 2 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000002":"00000047" + +Convert into Mont: #6 R * 2 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000002":"0000000000000048" + +Convert into Mont: #7 R * 3 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000003":"00000041" + +Convert into Mont: #8 R * 3 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000003":"0000000000000019" + +Convert into Mont: #9 R * 4 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000004":"0000003b" + +Convert into Mont: #10 R * 4 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000004":"000000000000003d" + +Convert into Mont: #11 R * 38 mod 53 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000053":"00000038":"0000004f" + +Convert into Mont: #12 R * 38 mod 53 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000038":"0000000000000018" + +Convert into Mont: #27 R * 0 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000000":"00000000" + +Convert into Mont: #28 R * 0 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000000":"0000000000000000" + +Convert into Mont: #29 R * 1 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000001":"0000003a" + +Convert into Mont: #30 R * 1 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000001":"0000000000000034" + +Convert into Mont: #31 R * 2 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000002":"0000002f" + +Convert into Mont: #32 R * 2 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000002":"0000000000000023" + +Convert into Mont: #33 R * 3 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000003":"00000024" + +Convert into Mont: #34 R * 3 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000003":"0000000000000012" + +Convert into Mont: #35 R * 4 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000004":"00000019" + +Convert into Mont: #36 R * 4 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000004":"0000000000000001" + +Convert into Mont: #37 R * 38 mod 45 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"00000045":"00000038":"00000005" + +Convert into Mont: #38 R * 38 mod 45 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000038":"000000000000000e" + +Convert into Mont: #53 R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert into Mont: #54 R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert into Mont: #55 R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Convert into Mont: #56 R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" + +Convert into Mont: #57 R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" + +Convert into Mont: #58 R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" + +Convert into Mont: #59 R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" + +Convert into Mont: #60 R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" + +Convert into Mont: #61 R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" + +Convert into Mont: #62 R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" + +Convert into Mont: #63 R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" + +Convert into Mont: #64 R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" + +Convert into Mont: #67 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" + +Convert into Mont: #68 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" + +Convert into Mont: #69 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" + +Convert into Mont: #70 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" + +Convert into Mont: #79 R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert into Mont: #80 R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" + +Convert into Mont: #81 R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Convert into Mont: #82 R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" + +Convert into Mont: #83 R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" + +Convert into Mont: #84 R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" + +Convert into Mont: #85 R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" + +Convert into Mont: #86 R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" + +Convert into Mont: #87 R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" + +Convert into Mont: #88 R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" + +Convert into Mont: #89 R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" + +Convert into Mont: #90 R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" + +Convert into Mont: #91 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" + +Convert into Mont: #92 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" + +Convert into Mont: #93 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" + +Convert into Mont: #94 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" + +Convert into Mont: #95 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" + +Convert into Mont: #96 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" + +Convert into Mont: #105 R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert into Mont: #106 R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert into Mont: #107 R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Convert into Mont: #108 R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" + +Convert into Mont: #109 R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" + +Convert into Mont: #110 R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" + +Convert into Mont: #111 R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" + +Convert into Mont: #112 R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" + +Convert into Mont: #113 R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" + +Convert into Mont: #114 R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" + +Convert into Mont: #115 R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" + +Convert into Mont: #116 R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" + +Convert into Mont: #117 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" + +Convert into Mont: #118 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" + +Convert into Mont: #119 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" + +Convert into Mont: #120 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" + +Convert into Mont: #121 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" + +Convert into Mont: #122 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" + +Convert into Mont: #125 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" + +Convert into Mont: #126 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" + +Convert into Mont: #127 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" + +Convert into Mont: #128 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" + +Convert into Mont: #131 R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert into Mont: #132 R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +Convert into Mont: #133 R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Convert into Mont: #134 R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" + +Convert into Mont: #135 R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" + +Convert into Mont: #136 R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" + +Convert into Mont: #137 R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" + +Convert into Mont: #138 R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" + +Convert into Mont: #139 R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" + +Convert into Mont: #140 R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" + +Convert into Mont: #141 R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" + +Convert into Mont: #142 R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" + +Convert into Mont: #143 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" + +Convert into Mont: #144 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" + +Convert into Mont: #145 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" + +Convert into Mont: #146 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" + +Convert into Mont: #147 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" + +Convert into Mont: #148 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" + +Convert into Mont: #151 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" + +Convert into Mont: #152 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" + +Convert into Mont: #153 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" + +Convert into Mont: #154 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" + +mbedtls_mpi_mod_raw_sub #1 0 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000000":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #2 0 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000001":"0000000000000053":"0000000000000052" + +mbedtls_mpi_mod_raw_sub #3 0 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000002":"0000000000000053":"0000000000000051" + +mbedtls_mpi_mod_raw_sub #4 0 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000003":"0000000000000053":"0000000000000050" + +mbedtls_mpi_mod_raw_sub #5 0 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000004":"0000000000000053":"000000000000004f" + +mbedtls_mpi_mod_raw_sub #6 0 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000000":"0000000000000038":"0000000000000053":"000000000000001b" + +mbedtls_mpi_mod_raw_sub #14 1 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000000":"0000000000000053":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #15 1 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000001":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #16 1 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000002":"0000000000000053":"0000000000000052" + +mbedtls_mpi_mod_raw_sub #17 1 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000003":"0000000000000053":"0000000000000051" + +mbedtls_mpi_mod_raw_sub #18 1 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000004":"0000000000000053":"0000000000000050" + +mbedtls_mpi_mod_raw_sub #19 1 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000001":"0000000000000038":"0000000000000053":"000000000000001c" + +mbedtls_mpi_mod_raw_sub #27 2 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000000":"0000000000000053":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #28 2 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000001":"0000000000000053":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #29 2 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000002":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #30 2 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000003":"0000000000000053":"0000000000000052" + +mbedtls_mpi_mod_raw_sub #31 2 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000004":"0000000000000053":"0000000000000051" + +mbedtls_mpi_mod_raw_sub #32 2 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000002":"0000000000000038":"0000000000000053":"000000000000001d" + +mbedtls_mpi_mod_raw_sub #40 3 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000000":"0000000000000053":"0000000000000003" + +mbedtls_mpi_mod_raw_sub #41 3 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000001":"0000000000000053":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #42 3 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000002":"0000000000000053":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #43 3 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000003":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #44 3 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000004":"0000000000000053":"0000000000000052" + +mbedtls_mpi_mod_raw_sub #45 3 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000003":"0000000000000038":"0000000000000053":"000000000000001e" + +mbedtls_mpi_mod_raw_sub #53 4 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000000":"0000000000000053":"0000000000000004" + +mbedtls_mpi_mod_raw_sub #54 4 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000001":"0000000000000053":"0000000000000003" + +mbedtls_mpi_mod_raw_sub #55 4 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000002":"0000000000000053":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #56 4 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000003":"0000000000000053":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #57 4 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000004":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #58 4 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000004":"0000000000000038":"0000000000000053":"000000000000001f" + +mbedtls_mpi_mod_raw_sub #66 38 - 0 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000000":"0000000000000053":"0000000000000038" + +mbedtls_mpi_mod_raw_sub #67 38 - 1 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000001":"0000000000000053":"0000000000000037" + +mbedtls_mpi_mod_raw_sub #68 38 - 2 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000002":"0000000000000053":"0000000000000036" + +mbedtls_mpi_mod_raw_sub #69 38 - 3 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000003":"0000000000000053":"0000000000000035" + +mbedtls_mpi_mod_raw_sub #70 38 - 4 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000004":"0000000000000053":"0000000000000034" + +mbedtls_mpi_mod_raw_sub #71 38 - 38 mod 53 +mpi_mod_raw_sub:"0000000000000038":"0000000000000038":"0000000000000053":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #170 0 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000000":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #171 0 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000001":"0000000000000045":"0000000000000044" + +mbedtls_mpi_mod_raw_sub #172 0 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000002":"0000000000000045":"0000000000000043" + +mbedtls_mpi_mod_raw_sub #173 0 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000003":"0000000000000045":"0000000000000042" + +mbedtls_mpi_mod_raw_sub #174 0 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000004":"0000000000000045":"0000000000000041" + +mbedtls_mpi_mod_raw_sub #175 0 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000000":"0000000000000038":"0000000000000045":"000000000000000d" + +mbedtls_mpi_mod_raw_sub #183 1 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000000":"0000000000000045":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #184 1 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000001":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #185 1 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000002":"0000000000000045":"0000000000000044" + +mbedtls_mpi_mod_raw_sub #186 1 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000003":"0000000000000045":"0000000000000043" + +mbedtls_mpi_mod_raw_sub #187 1 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000004":"0000000000000045":"0000000000000042" + +mbedtls_mpi_mod_raw_sub #188 1 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000001":"0000000000000038":"0000000000000045":"000000000000000e" + +mbedtls_mpi_mod_raw_sub #196 2 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000000":"0000000000000045":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #197 2 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000001":"0000000000000045":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #198 2 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000002":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #199 2 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000003":"0000000000000045":"0000000000000044" + +mbedtls_mpi_mod_raw_sub #200 2 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000004":"0000000000000045":"0000000000000043" + +mbedtls_mpi_mod_raw_sub #201 2 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000002":"0000000000000038":"0000000000000045":"000000000000000f" + +mbedtls_mpi_mod_raw_sub #209 3 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000000":"0000000000000045":"0000000000000003" + +mbedtls_mpi_mod_raw_sub #210 3 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000001":"0000000000000045":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #211 3 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000002":"0000000000000045":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #212 3 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000003":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #213 3 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000004":"0000000000000045":"0000000000000044" + +mbedtls_mpi_mod_raw_sub #214 3 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000003":"0000000000000038":"0000000000000045":"0000000000000010" + +mbedtls_mpi_mod_raw_sub #222 4 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000000":"0000000000000045":"0000000000000004" + +mbedtls_mpi_mod_raw_sub #223 4 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000001":"0000000000000045":"0000000000000003" + +mbedtls_mpi_mod_raw_sub #224 4 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000002":"0000000000000045":"0000000000000002" + +mbedtls_mpi_mod_raw_sub #225 4 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000003":"0000000000000045":"0000000000000001" + +mbedtls_mpi_mod_raw_sub #226 4 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000004":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #227 4 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000004":"0000000000000038":"0000000000000045":"0000000000000011" + +mbedtls_mpi_mod_raw_sub #235 38 - 0 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000000":"0000000000000045":"0000000000000038" + +mbedtls_mpi_mod_raw_sub #236 38 - 1 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000001":"0000000000000045":"0000000000000037" + +mbedtls_mpi_mod_raw_sub #237 38 - 2 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000002":"0000000000000045":"0000000000000036" + +mbedtls_mpi_mod_raw_sub #238 38 - 3 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000003":"0000000000000045":"0000000000000035" + +mbedtls_mpi_mod_raw_sub #239 38 - 4 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000004":"0000000000000045":"0000000000000034" + +mbedtls_mpi_mod_raw_sub #240 38 - 38 mod 45 +mpi_mod_raw_sub:"0000000000000038":"0000000000000038":"0000000000000045":"0000000000000000" + +mbedtls_mpi_mod_raw_sub #339 0 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #340 0 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #341 0 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #342 0 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" + +mbedtls_mpi_mod_raw_sub #343 0 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757" + +mbedtls_mpi_mod_raw_sub #344 0 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723" + +mbedtls_mpi_mod_raw_sub #346 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" + +mbedtls_mpi_mod_raw_sub #347 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" + +mbedtls_mpi_mod_raw_sub #352 1 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #353 1 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #354 1 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #355 1 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #356 1 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" + +mbedtls_mpi_mod_raw_sub #357 1 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb724" + +mbedtls_mpi_mod_raw_sub #359 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de9" + +mbedtls_mpi_mod_raw_sub #360 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7f" + +mbedtls_mpi_mod_raw_sub #365 2 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #366 2 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #367 2 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #368 2 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #369 2 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #370 2 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb725" + +mbedtls_mpi_mod_raw_sub #372 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dea" + +mbedtls_mpi_mod_raw_sub #373 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b80" + +mbedtls_mpi_mod_raw_sub #378 3 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #379 3 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #380 3 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #381 3 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #382 3 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #383 3 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb726" + +mbedtls_mpi_mod_raw_sub #385 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10deb" + +mbedtls_mpi_mod_raw_sub #386 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b81" + +mbedtls_mpi_mod_raw_sub #391 4 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_sub #392 4 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #393 4 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #394 4 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #395 4 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #396 4 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb727" + +mbedtls_mpi_mod_raw_sub #398 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dec" + +mbedtls_mpi_mod_raw_sub #399 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b82" + +mbedtls_mpi_mod_raw_sub #404 38 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_sub #405 38 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000037" + +mbedtls_mpi_mod_raw_sub #406 38 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000036" + +mbedtls_mpi_mod_raw_sub #407 38 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000035" + +mbedtls_mpi_mod_raw_sub #408 38 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000034" + +mbedtls_mpi_mod_raw_sub #409 38 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #411 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10e20" + +mbedtls_mpi_mod_raw_sub #412 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58bb6" + +mbedtls_mpi_mod_raw_sub #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_sub #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" + +mbedtls_mpi_mod_raw_sub #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" + +mbedtls_mpi_mod_raw_sub #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" + +mbedtls_mpi_mod_raw_sub #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" + +mbedtls_mpi_mod_raw_sub #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" + +mbedtls_mpi_mod_raw_sub #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1a1b1e79b98a062b31179f87ab7c8078662a5b3f169434f1" + +mbedtls_mpi_mod_raw_sub #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_sub #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" + +mbedtls_mpi_mod_raw_sub #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" + +mbedtls_mpi_mod_raw_sub #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" + +mbedtls_mpi_mod_raw_sub #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" + +mbedtls_mpi_mod_raw_sub #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" + +mbedtls_mpi_mod_raw_sub #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" + +mbedtls_mpi_mod_raw_sub #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #508 0 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #509 0 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" + +mbedtls_mpi_mod_raw_sub #510 0 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" + +mbedtls_mpi_mod_raw_sub #511 0 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bce" + +mbedtls_mpi_mod_raw_sub #512 0 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcd" + +mbedtls_mpi_mod_raw_sub #513 0 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b99" + +mbedtls_mpi_mod_raw_sub #514 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a476" + +mbedtls_mpi_mod_raw_sub #515 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25e" + +mbedtls_mpi_mod_raw_sub #516 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff4" + +mbedtls_mpi_mod_raw_sub #521 1 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #522 1 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #523 1 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" + +mbedtls_mpi_mod_raw_sub #524 1 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" + +mbedtls_mpi_mod_raw_sub #525 1 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bce" + +mbedtls_mpi_mod_raw_sub #526 1 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9a" + +mbedtls_mpi_mod_raw_sub #527 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a477" + +mbedtls_mpi_mod_raw_sub #528 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25f" + +mbedtls_mpi_mod_raw_sub #529 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff5" + +mbedtls_mpi_mod_raw_sub #534 2 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #535 2 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #536 2 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #537 2 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" + +mbedtls_mpi_mod_raw_sub #538 2 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" + +mbedtls_mpi_mod_raw_sub #539 2 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9b" + +mbedtls_mpi_mod_raw_sub #540 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a478" + +mbedtls_mpi_mod_raw_sub #541 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b260" + +mbedtls_mpi_mod_raw_sub #542 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff6" + +mbedtls_mpi_mod_raw_sub #547 3 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #548 3 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #549 3 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #550 3 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #551 3 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" + +mbedtls_mpi_mod_raw_sub #552 3 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9c" + +mbedtls_mpi_mod_raw_sub #553 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a479" + +mbedtls_mpi_mod_raw_sub #554 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b261" + +mbedtls_mpi_mod_raw_sub #555 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff7" + +mbedtls_mpi_mod_raw_sub #560 4 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_sub #561 4 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #562 4 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #563 4 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #564 4 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #565 4 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9d" + +mbedtls_mpi_mod_raw_sub #566 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a47a" + +mbedtls_mpi_mod_raw_sub #567 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b262" + +mbedtls_mpi_mod_raw_sub #568 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff8" + +mbedtls_mpi_mod_raw_sub #573 38 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_sub #574 38 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000037" + +mbedtls_mpi_mod_raw_sub #575 38 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000036" + +mbedtls_mpi_mod_raw_sub #576 38 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000035" + +mbedtls_mpi_mod_raw_sub #577 38 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000034" + +mbedtls_mpi_mod_raw_sub #578 38 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #579 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a4ae" + +mbedtls_mpi_mod_raw_sub #580 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b296" + +mbedtls_mpi_mod_raw_sub #581 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d302c" + +mbedtls_mpi_mod_raw_sub #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_sub #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" + +mbedtls_mpi_mod_raw_sub #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757" + +mbedtls_mpi_mod_raw_sub #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723" + +mbedtls_mpi_mod_raw_sub #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" + +mbedtls_mpi_mod_raw_sub #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" + +mbedtls_mpi_mod_raw_sub #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_sub #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" + +mbedtls_mpi_mod_raw_sub #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" + +mbedtls_mpi_mod_raw_sub #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" + +mbedtls_mpi_mod_raw_sub #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" + +mbedtls_mpi_mod_raw_sub #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" + +mbedtls_mpi_mod_raw_sub #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"459e8461cf8d871e04bcd63af8b3acab0076bd3258864de9" + +mbedtls_mpi_mod_raw_sub #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"484789087a9d66a95c78c5f9b18b5aa789ac5cd77a5bd967" + +mbedtls_mpi_mod_raw_sub #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_sub #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" + +mbedtls_mpi_mod_raw_sub #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" + +mbedtls_mpi_mod_raw_sub #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" + +mbedtls_mpi_mod_raw_sub #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" + +mbedtls_mpi_mod_raw_sub #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" + +mbedtls_mpi_mod_raw_sub #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"fd448d8e7d7be7f656aa36b6dbf21b537ff044cf7981d053" + +mbedtls_mpi_mod_raw_sub #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" + +mbedtls_mpi_mod_raw_sub #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 +mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #677 0 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #678 0 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" + +mbedtls_mpi_mod_raw_sub #679 0 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" + +mbedtls_mpi_mod_raw_sub #680 0 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220" + +mbedtls_mpi_mod_raw_sub #681 0 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f" + +mbedtls_mpi_mod_raw_sub #682 0 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb" + +mbedtls_mpi_mod_raw_sub #683 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8" + +mbedtls_mpi_mod_raw_sub #684 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0" + +mbedtls_mpi_mod_raw_sub #685 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646" + +mbedtls_mpi_mod_raw_sub #687 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c" + +mbedtls_mpi_mod_raw_sub #688 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d" + +mbedtls_mpi_mod_raw_sub #690 1 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #691 1 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #692 1 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" + +mbedtls_mpi_mod_raw_sub #693 1 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" + +mbedtls_mpi_mod_raw_sub #694 1 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220" + +mbedtls_mpi_mod_raw_sub #695 1 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ec" + +mbedtls_mpi_mod_raw_sub #696 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac9" + +mbedtls_mpi_mod_raw_sub #697 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b1" + +mbedtls_mpi_mod_raw_sub #698 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32647" + +mbedtls_mpi_mod_raw_sub #700 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4d" + +mbedtls_mpi_mod_raw_sub #701 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234e" + +mbedtls_mpi_mod_raw_sub #703 2 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #704 2 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #705 2 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #706 2 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" + +mbedtls_mpi_mod_raw_sub #707 2 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" + +mbedtls_mpi_mod_raw_sub #708 2 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ed" + +mbedtls_mpi_mod_raw_sub #709 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9aca" + +mbedtls_mpi_mod_raw_sub #710 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b2" + +mbedtls_mpi_mod_raw_sub #711 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32648" + +mbedtls_mpi_mod_raw_sub #713 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4e" + +mbedtls_mpi_mod_raw_sub #714 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234f" + +mbedtls_mpi_mod_raw_sub #716 3 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #717 3 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #718 3 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #719 3 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #720 3 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" + +mbedtls_mpi_mod_raw_sub #721 3 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ee" + +mbedtls_mpi_mod_raw_sub #722 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acb" + +mbedtls_mpi_mod_raw_sub #723 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b3" + +mbedtls_mpi_mod_raw_sub #724 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32649" + +mbedtls_mpi_mod_raw_sub #726 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4f" + +mbedtls_mpi_mod_raw_sub #727 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2350" + +mbedtls_mpi_mod_raw_sub #729 4 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_sub #730 4 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #731 4 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #732 4 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #733 4 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #734 4 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ef" + +mbedtls_mpi_mod_raw_sub #735 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acc" + +mbedtls_mpi_mod_raw_sub #736 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b4" + +mbedtls_mpi_mod_raw_sub #737 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3264a" + +mbedtls_mpi_mod_raw_sub #739 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac50" + +mbedtls_mpi_mod_raw_sub #740 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2351" + +mbedtls_mpi_mod_raw_sub #742 38 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_sub #743 38 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037" + +mbedtls_mpi_mod_raw_sub #744 38 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036" + +mbedtls_mpi_mod_raw_sub #745 38 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035" + +mbedtls_mpi_mod_raw_sub #746 38 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034" + +mbedtls_mpi_mod_raw_sub #747 38 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #748 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9b00" + +mbedtls_mpi_mod_raw_sub #749 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8e8" + +mbedtls_mpi_mod_raw_sub #750 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3267e" + +mbedtls_mpi_mod_raw_sub #752 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac84" + +mbedtls_mpi_mod_raw_sub #753 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2385" + +mbedtls_mpi_mod_raw_sub #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_sub #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758" + +mbedtls_mpi_mod_raw_sub #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757" + +mbedtls_mpi_mod_raw_sub #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723" + +mbedtls_mpi_mod_raw_sub #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" + +mbedtls_mpi_mod_raw_sub #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" + +mbedtls_mpi_mod_raw_sub #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40541f3661f3e2e69b6dc34a2c2577c04dc1fb2824cf1cf63a7" + +mbedtls_mpi_mod_raw_sub #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e5629c6c17606cd6a3a1d0829454bcd39bf6b6783efbdaa8" + +mbedtls_mpi_mod_raw_sub #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_sub #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" + +mbedtls_mpi_mod_raw_sub #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" + +mbedtls_mpi_mod_raw_sub #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" + +mbedtls_mpi_mod_raw_sub #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" + +mbedtls_mpi_mod_raw_sub #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" + +mbedtls_mpi_mod_raw_sub #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e307af6e8e31bd4f96827fe5147140fdd7f04722ab3dc443b" + +mbedtls_mpi_mod_raw_sub #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e3323fb8f8e2bb484bfe3ee0fffebbdda083a11cfd5b1cfb9" + +mbedtls_mpi_mod_raw_sub #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40487a4584be5302953328b5287bb65e83717035b0aaefe55bf" + +mbedtls_mpi_mod_raw_sub #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb82b138e98be622c72f9f88047f83ea02e93478f35fc2accc0" + +mbedtls_mpi_mod_raw_sub #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_sub #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" + +mbedtls_mpi_mod_raw_sub #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" + +mbedtls_mpi_mod_raw_sub #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" + +mbedtls_mpi_mod_raw_sub #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" + +mbedtls_mpi_mod_raw_sub #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" + +mbedtls_mpi_mod_raw_sub #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ee8210015910a35d1ba155ecd2a527e85fe7df9c7d4d7c6a5" + +mbedtls_mpi_mod_raw_sub #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" + +mbedtls_mpi_mod_raw_sub #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa4053f4a6178931e8a2b8478b3039ea456df967ce2a7cff9d829" + +mbedtls_mpi_mod_raw_sub #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e2b997c56c508d4b4be5e0c3db7d0ed712c116d31d264f2a" + +mbedtls_mpi_mod_raw_sub #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_sub #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6" + +mbedtls_mpi_mod_raw_sub #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5" + +mbedtls_mpi_mod_raw_sub #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4" + +mbedtls_mpi_mod_raw_sub #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3" + +mbedtls_mpi_mod_raw_sub #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f" + +mbedtls_mpi_mod_raw_sub #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c" + +mbedtls_mpi_mod_raw_sub #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64" + +mbedtls_mpi_mod_raw_sub #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa" + +mbedtls_mpi_mod_raw_sub #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0a9dc55736cd2240e403031e6b49851242a9733764ea41c4964cca9135881349f09623da7053bd2b96f49750aa9de8f9e44be821cb34e2722739eeec9a3eb6913986e220c4d3ce5d1ff89300beb9ea34036c30c95a4e7fe3b50c4793070a22443479ebed5b43128e393b09154c187cd93e7c4c2002e47a03f7cd9843d9c924" + +mbedtls_mpi_mod_raw_sub #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_sub #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5" + +mbedtls_mpi_mod_raw_sub #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4" + +mbedtls_mpi_mod_raw_sub #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3" + +mbedtls_mpi_mod_raw_sub #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2" + +mbedtls_mpi_mod_raw_sub #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e" + +mbedtls_mpi_mod_raw_sub #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b" + +mbedtls_mpi_mod_raw_sub #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563" + +mbedtls_mpi_mod_raw_sub #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9" + +mbedtls_mpi_mod_raw_sub #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff" + +mbedtls_mpi_mod_raw_sub #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #846 0 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #847 0 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" + +mbedtls_mpi_mod_raw_sub #848 0 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" + +mbedtls_mpi_mod_raw_sub #849 0 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be" + +mbedtls_mpi_mod_raw_sub #850 0 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bd" + +mbedtls_mpi_mod_raw_sub #851 0 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e7813189" + +mbedtls_mpi_mod_raw_sub #852 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a66" + +mbedtls_mpi_mod_raw_sub #853 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884e" + +mbedtls_mpi_mod_raw_sub #854 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e4" + +mbedtls_mpi_mod_raw_sub #856 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bea" + +mbedtls_mpi_mod_raw_sub #857 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002eb" + +mbedtls_mpi_mod_raw_sub #859 1 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #860 1 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #861 1 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" + +mbedtls_mpi_mod_raw_sub #862 1 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" + +mbedtls_mpi_mod_raw_sub #863 1 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be" + +mbedtls_mpi_mod_raw_sub #864 1 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318a" + +mbedtls_mpi_mod_raw_sub #865 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a67" + +mbedtls_mpi_mod_raw_sub #866 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884f" + +mbedtls_mpi_mod_raw_sub #867 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e5" + +mbedtls_mpi_mod_raw_sub #869 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138beb" + +mbedtls_mpi_mod_raw_sub #870 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ec" + +mbedtls_mpi_mod_raw_sub #872 2 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #873 2 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #874 2 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #875 2 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" + +mbedtls_mpi_mod_raw_sub #876 2 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" + +mbedtls_mpi_mod_raw_sub #877 2 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318b" + +mbedtls_mpi_mod_raw_sub #878 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a68" + +mbedtls_mpi_mod_raw_sub #879 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28850" + +mbedtls_mpi_mod_raw_sub #880 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e6" + +mbedtls_mpi_mod_raw_sub #882 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bec" + +mbedtls_mpi_mod_raw_sub #883 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ed" + +mbedtls_mpi_mod_raw_sub #885 3 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #886 3 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #887 3 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #888 3 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #889 3 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" + +mbedtls_mpi_mod_raw_sub #890 3 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318c" + +mbedtls_mpi_mod_raw_sub #891 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a69" + +mbedtls_mpi_mod_raw_sub #892 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28851" + +mbedtls_mpi_mod_raw_sub #893 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e7" + +mbedtls_mpi_mod_raw_sub #895 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bed" + +mbedtls_mpi_mod_raw_sub #896 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ee" + +mbedtls_mpi_mod_raw_sub #898 4 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" + +mbedtls_mpi_mod_raw_sub #899 4 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" + +mbedtls_mpi_mod_raw_sub #900 4 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" + +mbedtls_mpi_mod_raw_sub #901 4 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" + +mbedtls_mpi_mod_raw_sub #902 4 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #903 4 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318d" + +mbedtls_mpi_mod_raw_sub #904 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a6a" + +mbedtls_mpi_mod_raw_sub #905 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28852" + +mbedtls_mpi_mod_raw_sub #906 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e8" + +mbedtls_mpi_mod_raw_sub #908 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bee" + +mbedtls_mpi_mod_raw_sub #909 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ef" + +mbedtls_mpi_mod_raw_sub #911 38 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" + +mbedtls_mpi_mod_raw_sub #912 38 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037" + +mbedtls_mpi_mod_raw_sub #913 38 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036" + +mbedtls_mpi_mod_raw_sub #914 38 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035" + +mbedtls_mpi_mod_raw_sub #915 38 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034" + +mbedtls_mpi_mod_raw_sub #916 38 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #917 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a9e" + +mbedtls_mpi_mod_raw_sub #918 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28886" + +mbedtls_mpi_mod_raw_sub #919 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c7061c" + +mbedtls_mpi_mod_raw_sub #921 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138c22" + +mbedtls_mpi_mod_raw_sub #922 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f8400323" + +mbedtls_mpi_mod_raw_sub #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" + +mbedtls_mpi_mod_raw_sub #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" + +mbedtls_mpi_mod_raw_sub #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759" + +mbedtls_mpi_mod_raw_sub #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758" + +mbedtls_mpi_mod_raw_sub #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757" + +mbedtls_mpi_mod_raw_sub #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723" + +mbedtls_mpi_mod_raw_sub #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" + +mbedtls_mpi_mod_raw_sub #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" + +mbedtls_mpi_mod_raw_sub #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca70c73846511da049da147f94b8e2ba225ead20c57e2a34345" + +mbedtls_mpi_mod_raw_sub #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aafe2bab1eb0c07bd68b5270bcb045a1d671640832fcfba46" + +mbedtls_mpi_mod_raw_sub #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" + +mbedtls_mpi_mod_raw_sub #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" + +mbedtls_mpi_mod_raw_sub #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" + +mbedtls_mpi_mod_raw_sub #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" + +mbedtls_mpi_mod_raw_sub #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" + +mbedtls_mpi_mod_raw_sub #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" + +mbedtls_mpi_mod_raw_sub #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffafb152eb6c76fe02d3b54da7dc3ad274a23fc35a4b023d9" + +mbedtls_mpi_mod_raw_sub #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffda419d561d74f6b84f74499369b5b23d3599bdac685af57" + +mbedtls_mpi_mod_raw_sub #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca652247691b8dbc439f79ea910f2158580e222e5159fd2355d" + +mbedtls_mpi_mod_raw_sub #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859f593acde920dc759bf0bd6d12eee3d785e671940ecfeac5e" + +mbedtls_mpi_mod_raw_sub #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" + +mbedtls_mpi_mod_raw_sub #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" + +mbedtls_mpi_mod_raw_sub #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" + +mbedtls_mpi_mod_raw_sub #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" + +mbedtls_mpi_mod_raw_sub #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" + +mbedtls_mpi_mod_raw_sub #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" + +mbedtls_mpi_mod_raw_sub #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b2a11e5b64b5d0b87f28b55661021bcfc99d83d2c5aba643" + +mbedtls_mpi_mod_raw_sub #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" + +mbedtls_mpi_mod_raw_sub #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca709ca7fbe66ca2512498c098cd553f429619c6cb2c0cdb7c7" + +mbedtls_mpi_mod_raw_sub #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aad39b60b3ffc283210f9374d122cac20dde0a0de0dfa2ec8" + +mbedtls_mpi_mod_raw_sub #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" + +mbedtls_mpi_mod_raw_sub #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6" + +mbedtls_mpi_mod_raw_sub #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5" + +mbedtls_mpi_mod_raw_sub #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4" + +mbedtls_mpi_mod_raw_sub #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3" + +mbedtls_mpi_mod_raw_sub #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f" + +mbedtls_mpi_mod_raw_sub #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c" + +mbedtls_mpi_mod_raw_sub #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64" + +mbedtls_mpi_mod_raw_sub #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa" + +mbedtls_mpi_mod_raw_sub #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +mbedtls_mpi_mod_raw_sub #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"458d3cfad8173fd6d21ec05b22fddbac49aa054bc17cb7cf8ee107d3e842f544693636bc8afd8f386ddb293afb0734f81f4e05ad445a2b9a2796e3a86f303f0428ce4aee4891d58d1989cdb845e6ee4eb4e3577671d4fe954f6123a7ec3d152d5c410eda15668bb458b9594ee8f7b3639e51d2d556b281c3cf1757a334ada8c2" + +mbedtls_mpi_mod_raw_sub #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" + +mbedtls_mpi_mod_raw_sub #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5" + +mbedtls_mpi_mod_raw_sub #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4" + +mbedtls_mpi_mod_raw_sub #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3" + +mbedtls_mpi_mod_raw_sub #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2" + +mbedtls_mpi_mod_raw_sub #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e" + +mbedtls_mpi_mod_raw_sub #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b" + +mbedtls_mpi_mod_raw_sub #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563" + +mbedtls_mpi_mod_raw_sub #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9" + +mbedtls_mpi_mod_raw_sub #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff" + +mbedtls_mpi_mod_raw_sub #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 +mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + +# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_generate_key.generated.data b/tests/suites/test_suite_psa_crypto_generate_key.generated.data new file mode 100644 index 000000000..dca65e1e8 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_generate_key.generated.data @@ -0,0 +1,358 @@ +# Automatically generated by generate_psa_tests.py. Do not edit! + +PSA AES 128-bit +depends_on:PSA_WANT_KEY_TYPE_AES +generate_key:PSA_KEY_TYPE_AES:128:PSA_SUCCESS: + +PSA AES 192-bit +depends_on:PSA_WANT_KEY_TYPE_AES +generate_key:PSA_KEY_TYPE_AES:192:PSA_SUCCESS: + +PSA AES 256-bit +depends_on:PSA_WANT_KEY_TYPE_AES +generate_key:PSA_KEY_TYPE_AES:256:PSA_SUCCESS: + +PSA ARIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +generate_key:PSA_KEY_TYPE_ARIA:128:PSA_SUCCESS: + +PSA ARIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +generate_key:PSA_KEY_TYPE_ARIA:192:PSA_SUCCESS: + +PSA ARIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +generate_key:PSA_KEY_TYPE_ARIA:256:PSA_SUCCESS: + +PSA CAMELLIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +generate_key:PSA_KEY_TYPE_CAMELLIA:128:PSA_SUCCESS: + +PSA CAMELLIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +generate_key:PSA_KEY_TYPE_CAMELLIA:192:PSA_SUCCESS: + +PSA CAMELLIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +generate_key:PSA_KEY_TYPE_CAMELLIA:256:PSA_SUCCESS: + +PSA CHACHA20 256-bit +depends_on:PSA_WANT_KEY_TYPE_CHACHA20 +generate_key:PSA_KEY_TYPE_CHACHA20:256:PSA_SUCCESS: + +PSA DERIVE 120-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +generate_key:PSA_KEY_TYPE_DERIVE:120:PSA_SUCCESS: + +PSA DERIVE 128-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +generate_key:PSA_KEY_TYPE_DERIVE:128:PSA_SUCCESS: + +PSA DES 64-bit +depends_on:PSA_WANT_KEY_TYPE_DES +generate_key:PSA_KEY_TYPE_DES:64:PSA_SUCCESS: + +PSA DES 128-bit +depends_on:PSA_WANT_KEY_TYPE_DES +generate_key:PSA_KEY_TYPE_DES:128:PSA_SUCCESS: + +PSA DES 192-bit +depends_on:PSA_WANT_KEY_TYPE_DES +generate_key:PSA_KEY_TYPE_DES:192:PSA_SUCCESS: + +PSA HMAC 128-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:128:PSA_SUCCESS: + +PSA HMAC 160-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:160:PSA_SUCCESS: + +PSA HMAC 224-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:224:PSA_SUCCESS: + +PSA HMAC 256-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:256:PSA_SUCCESS: + +PSA HMAC 384-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:384:PSA_SUCCESS: + +PSA HMAC 512-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +generate_key:PSA_KEY_TYPE_HMAC:512:PSA_SUCCESS: + +PSA PASSWORD 48-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PASSWORD:48:PSA_SUCCESS: + +PSA PASSWORD 168-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PASSWORD:168:PSA_SUCCESS: + +PSA PASSWORD 336-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PASSWORD:336:PSA_SUCCESS: + +PSA PASSWORD_HASH 128-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_SUCCESS: + +PSA PASSWORD_HASH 256-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_SUCCESS: + +PSA PEPPER 128-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PEPPER:128:PSA_SUCCESS: + +PSA PEPPER 256-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_PEPPER:256:PSA_SUCCESS: + +PSA RAW_DATA 8-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +generate_key:PSA_KEY_TYPE_RAW_DATA:8:PSA_SUCCESS: + +PSA RAW_DATA 40-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +generate_key:PSA_KEY_TYPE_RAW_DATA:40:PSA_SUCCESS: + +PSA RAW_DATA 128-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +generate_key:PSA_KEY_TYPE_RAW_DATA:128:PSA_SUCCESS: + +PSA RSA_KEY_PAIR 1024-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME +generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_SUCCESS: + +PSA RSA_KEY_PAIR 1536-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME +generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_SUCCESS: + +PSA RSA_PUBLIC_KEY 1024-bit +generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ERROR_INVALID_ARGUMENT: + +PSA RSA_PUBLIC_KEY 1536-bit +generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(MONTGOMERY) 255-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(MONTGOMERY) 448-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(MONTGOMERY) 255-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(MONTGOMERY) 448-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECP_K1) 224-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECP_K1) 256-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECP_K1) 192-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECP_K1) 224-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECP_K1) 256-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECP_R1) 256-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECP_R1) 384-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECP_R1) 521-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECP_R1) 225-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECP_R1) 256-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECP_R1) 384-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECP_R1) 521-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECP_R2) 160-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_K1) 233-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_K1) 239-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_K1) 283-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_K1) 409-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_K1) 571-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECT_K1) 163-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_K1) 233-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_K1) 239-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_K1) 283-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_K1) 409-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_K1) 571-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_R1) 233-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_R1) 283-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_R1) 409-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(SECT_R1) 571-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECT_R1) 163-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_R1) 233-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_R1) 283-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_R1) 409-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(SECT_R1) 571-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(SECT_R2) 163-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_SUCCESS: + +PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_SUCCESS: + +PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_ERROR_INVALID_ARGUMENT: + +PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit +generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_ERROR_INVALID_ARGUMENT: + +# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_not_supported.generated.data b/tests/suites/test_suite_psa_crypto_not_supported.generated.data new file mode 100644 index 000000000..d025092ee --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_not_supported.generated.data @@ -0,0 +1,931 @@ +# Automatically generated by generate_psa_tests.py. Do not edit! + +PSA import AES 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461" + +PSA generate AES 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +generate_not_supported:PSA_KEY_TYPE_AES:128 + +PSA import AES 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a0646174614865726500697320" + +PSA generate AES 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +generate_not_supported:PSA_KEY_TYPE_AES:192 + +PSA import AES 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate AES 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_AES +generate_not_supported:PSA_KEY_TYPE_AES:256 + +PSA import ARIA 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461" + +PSA generate ARIA 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +generate_not_supported:PSA_KEY_TYPE_ARIA:128 + +PSA import ARIA 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a0646174614865726500697320" + +PSA generate ARIA 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +generate_not_supported:PSA_KEY_TYPE_ARIA:192 + +PSA import ARIA 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate ARIA 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_ARIA +generate_not_supported:PSA_KEY_TYPE_ARIA:256 + +PSA import CAMELLIA 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461" + +PSA generate CAMELLIA 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +generate_not_supported:PSA_KEY_TYPE_CAMELLIA:128 + +PSA import CAMELLIA 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a0646174614865726500697320" + +PSA generate CAMELLIA 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +generate_not_supported:PSA_KEY_TYPE_CAMELLIA:192 + +PSA import CAMELLIA 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate CAMELLIA 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA +generate_not_supported:PSA_KEY_TYPE_CAMELLIA:256 + +PSA import CHACHA20 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CHACHA20 +import_not_supported:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate CHACHA20 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_CHACHA20 +generate_not_supported:PSA_KEY_TYPE_CHACHA20:256 + +PSA import DES 64-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901" + +PSA generate DES 64-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +generate_not_supported:PSA_KEY_TYPE_DES:64 + +PSA import DES 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901644573206b457902" + +PSA generate DES 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +generate_not_supported:PSA_KEY_TYPE_DES:128 + +PSA import DES 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901644573206b457902644573206b457904" + +PSA generate DES 192-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_DES +generate_not_supported:PSA_KEY_TYPE_DES:192 + +PSA import PASSWORD 48-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PASSWORD:"486572650069" + +PSA generate PASSWORD 48-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PASSWORD:48 + +PSA import PASSWORD 168-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PASSWORD:"48657265006973206b6579a0646174614865726500" + +PSA generate PASSWORD 168-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PASSWORD:168 + +PSA import PASSWORD 336-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PASSWORD:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65" + +PSA generate PASSWORD 336-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PASSWORD:336 + +PSA import PASSWORD_HASH 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461" + +PSA generate PASSWORD_HASH 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:128 + +PSA import PASSWORD_HASH 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate PASSWORD_HASH 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:256 + +PSA import PEPPER 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461" + +PSA generate PEPPER 128-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PEPPER:128 + +PSA import PEPPER 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a06461746148657265006973206b6579a064617461" + +PSA generate PEPPER 256-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_PEPPER:256 + +PSA import RSA_KEY_PAIR 1024-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +import_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +PSA generate RSA_KEY_PAIR 1024-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +generate_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:1024 + +PSA import RSA_KEY_PAIR 1536-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +import_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +PSA generate RSA_KEY_PAIR 1536-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +generate_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:1536 + +PSA import RSA_PUBLIC_KEY 1024-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +import_not_supported:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +PSA import RSA_PUBLIC_KEY 1536-bit not supported +depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +import_not_supported:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384 + +PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512 + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_512 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +PSA import ECC_KEY_PAIR(MONTGOMERY) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +PSA generate ECC_KEY_PAIR(MONTGOMERY) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255 + +PSA import ECC_KEY_PAIR(MONTGOMERY) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +PSA generate ECC_KEY_PAIR(MONTGOMERY) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448 + +PSA import ECC_KEY_PAIR(MONTGOMERY) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_255 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +PSA generate ECC_KEY_PAIR(MONTGOMERY) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_255 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255 + +PSA import ECC_KEY_PAIR(MONTGOMERY) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_448 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +PSA generate ECC_KEY_PAIR(MONTGOMERY) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_448 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448 + +PSA import ECC_PUBLIC_KEY(MONTGOMERY) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_MONTGOMERY_255 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" + +PSA import ECC_PUBLIC_KEY(MONTGOMERY) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_MONTGOMERY_448 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" + +PSA import ECC_PUBLIC_KEY(MONTGOMERY) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_MONTGOMERY_255 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" + +PSA import ECC_PUBLIC_KEY(MONTGOMERY) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_MONTGOMERY_448 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" + +PSA import ECC_KEY_PAIR(SECP_K1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +PSA generate ECC_KEY_PAIR(SECP_K1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192 + +PSA import ECC_KEY_PAIR(SECP_K1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +PSA generate ECC_KEY_PAIR(SECP_K1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224 + +PSA import ECC_KEY_PAIR(SECP_K1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +PSA generate ECC_KEY_PAIR(SECP_K1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256 + +PSA import ECC_KEY_PAIR(SECP_K1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_192 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +PSA generate ECC_KEY_PAIR(SECP_K1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_192 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192 + +PSA import ECC_KEY_PAIR(SECP_K1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_224 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +PSA generate ECC_KEY_PAIR(SECP_K1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_224 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224 + +PSA import ECC_KEY_PAIR(SECP_K1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +PSA generate ECC_KEY_PAIR(SECP_K1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256 + +PSA import ECC_PUBLIC_KEY(SECP_K1) 192-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_192 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +PSA import ECC_PUBLIC_KEY(SECP_K1) 224-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_224 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +PSA import ECC_PUBLIC_KEY(SECP_K1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +PSA import ECC_PUBLIC_KEY(SECP_K1) 192-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_192 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +PSA import ECC_PUBLIC_KEY(SECP_K1) 224-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_224 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +PSA import ECC_PUBLIC_KEY(SECP_K1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +PSA import ECC_KEY_PAIR(SECP_R1) 225-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +PSA generate ECC_KEY_PAIR(SECP_R1) 225-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225 + +PSA import ECC_KEY_PAIR(SECP_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +PSA generate ECC_KEY_PAIR(SECP_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256 + +PSA import ECC_KEY_PAIR(SECP_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +PSA generate ECC_KEY_PAIR(SECP_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384 + +PSA import ECC_KEY_PAIR(SECP_R1) 521-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +PSA generate ECC_KEY_PAIR(SECP_R1) 521-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521 + +PSA import ECC_KEY_PAIR(SECP_R1) 225-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +PSA generate ECC_KEY_PAIR(SECP_R1) 225-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225 + +PSA import ECC_KEY_PAIR(SECP_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +PSA generate ECC_KEY_PAIR(SECP_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_256 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256 + +PSA import ECC_KEY_PAIR(SECP_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +PSA generate ECC_KEY_PAIR(SECP_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_384 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384 + +PSA import ECC_KEY_PAIR(SECP_R1) 521-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_521 +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +PSA generate ECC_KEY_PAIR(SECP_R1) 521-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_521 +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521 + +PSA import ECC_PUBLIC_KEY(SECP_R1) 225-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 256-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 384-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 521-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_521 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 225-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 256-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_256 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 384-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_384 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +PSA import ECC_PUBLIC_KEY(SECP_R1) 521-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_521 +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +PSA import ECC_KEY_PAIR(SECP_R2) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +PSA generate ECC_KEY_PAIR(SECP_R2) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160 + +PSA import ECC_KEY_PAIR(SECP_R2) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +PSA generate ECC_KEY_PAIR(SECP_R2) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160 + +PSA import ECC_PUBLIC_KEY(SECP_R2) 160-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +PSA import ECC_PUBLIC_KEY(SECP_R2) 160-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +PSA import ECC_KEY_PAIR(SECT_K1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +PSA generate ECC_KEY_PAIR(SECT_K1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163 + +PSA import ECC_KEY_PAIR(SECT_K1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +PSA generate ECC_KEY_PAIR(SECT_K1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233 + +PSA import ECC_KEY_PAIR(SECT_K1) 239-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +PSA generate ECC_KEY_PAIR(SECT_K1) 239-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239 + +PSA import ECC_KEY_PAIR(SECT_K1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +PSA generate ECC_KEY_PAIR(SECT_K1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283 + +PSA import ECC_KEY_PAIR(SECT_K1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +PSA generate ECC_KEY_PAIR(SECT_K1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409 + +PSA import ECC_KEY_PAIR(SECT_K1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +PSA generate ECC_KEY_PAIR(SECT_K1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571 + +PSA import ECC_KEY_PAIR(SECT_K1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +PSA generate ECC_KEY_PAIR(SECT_K1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163 + +PSA import ECC_KEY_PAIR(SECT_K1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +PSA generate ECC_KEY_PAIR(SECT_K1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233 + +PSA import ECC_KEY_PAIR(SECT_K1) 239-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +PSA generate ECC_KEY_PAIR(SECT_K1) 239-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239 + +PSA import ECC_KEY_PAIR(SECT_K1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +PSA generate ECC_KEY_PAIR(SECT_K1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283 + +PSA import ECC_KEY_PAIR(SECT_K1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +PSA generate ECC_KEY_PAIR(SECT_K1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409 + +PSA import ECC_KEY_PAIR(SECT_K1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +PSA generate ECC_KEY_PAIR(SECT_K1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571 + +PSA import ECC_PUBLIC_KEY(SECT_K1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 239-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 239-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +PSA import ECC_PUBLIC_KEY(SECT_K1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +PSA import ECC_KEY_PAIR(SECT_R1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +PSA generate ECC_KEY_PAIR(SECT_R1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163 + +PSA import ECC_KEY_PAIR(SECT_R1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +PSA generate ECC_KEY_PAIR(SECT_R1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233 + +PSA import ECC_KEY_PAIR(SECT_R1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +PSA generate ECC_KEY_PAIR(SECT_R1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283 + +PSA import ECC_KEY_PAIR(SECT_R1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +PSA generate ECC_KEY_PAIR(SECT_R1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409 + +PSA import ECC_KEY_PAIR(SECT_R1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +PSA generate ECC_KEY_PAIR(SECT_R1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571 + +PSA import ECC_KEY_PAIR(SECT_R1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +PSA generate ECC_KEY_PAIR(SECT_R1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163 + +PSA import ECC_KEY_PAIR(SECT_R1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +PSA generate ECC_KEY_PAIR(SECT_R1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233 + +PSA import ECC_KEY_PAIR(SECT_R1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +PSA generate ECC_KEY_PAIR(SECT_R1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283 + +PSA import ECC_KEY_PAIR(SECT_R1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +PSA generate ECC_KEY_PAIR(SECT_R1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409 + +PSA import ECC_KEY_PAIR(SECT_R1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +PSA generate ECC_KEY_PAIR(SECT_R1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571 + +PSA import ECC_PUBLIC_KEY(SECT_R1) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 233-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 283-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 409-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 571-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 233-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 283-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 409-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +PSA import ECC_PUBLIC_KEY(SECT_R1) 571-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +PSA import ECC_KEY_PAIR(SECT_R2) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34" + +PSA generate ECC_KEY_PAIR(SECT_R2) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163 + +PSA import ECC_KEY_PAIR(SECT_R2) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34" + +PSA generate ECC_KEY_PAIR(SECT_R2) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163 + +PSA import ECC_PUBLIC_KEY(SECT_R2) 163-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +PSA import ECC_PUBLIC_KEY(SECT_R2) 163-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255 + +PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448 + +PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255 + +PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448 + +PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit type not supported +depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit curve not supported +depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET +import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_op_fail.generated.data b/tests/suites/test_suite_psa_crypto_op_fail.generated.data new file mode 100644 index 000000000..fb0aad299 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_op_fail.generated.data @@ -0,0 +1,30822 @@ +# Automatically generated by generate_psa_tests.py. Do not edit! + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with AES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with DES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): invalid +depends_on:PSA_WANT_ALG_GCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with DES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): invalid +depends_on:PSA_WANT_ALG_GCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,1): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,1): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with AES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with DES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(GCM,1): invalid +depends_on:PSA_WANT_ALG_GCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with DES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(GCM,1): invalid +depends_on:PSA_WANT_ALG_GCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,4): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with AES +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with ARIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with CAMELLIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,4): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,13): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,13): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,14): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with AES +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with ARIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with CAMELLIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,14): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,16): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with AES +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with ARIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with CAMELLIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,16): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash AEAD_WITH_SHORTENED_TAG(CCM,63): invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,63): invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ANY_HASH: invalid +key_derivation_fail:PSA_ALG_ANY_HASH:PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CMAC,1): invalid +depends_on:PSA_WANT_ALG_CMAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with DES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CMAC,1): invalid +depends_on:PSA_WANT_ALG_CMAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA hash CBC_MAC: invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: !CBC_MAC with AES +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED + +PSA mac CBC_MAC: !CBC_MAC with ARIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED + +PSA mac CBC_MAC: !CBC_MAC with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED + +PSA mac CBC_MAC: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_MAC: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_MAC: invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_MAC: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_MAC: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_MAC: invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_MAC: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_MAC: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_MAC: invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_MAC: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_MAC: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_MAC: invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_MAC: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_MAC: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CBC_MAC: invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_MAC: invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_MAC: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_MAC: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CBC_NO_PADDING: invalid +depends_on:PSA_WANT_ALG_CBC_NO_PADDING +hash_fail:PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with AES +depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with ARIA +depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_NO_PADDING: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with DES +depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_NO_PADDING: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CBC_NO_PADDING: invalid +depends_on:PSA_WANT_ALG_CBC_NO_PADDING +key_derivation_fail:PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CBC_PKCS7: invalid +depends_on:PSA_WANT_ALG_CBC_PKCS7 +hash_fail:PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_PKCS7: invalid with AES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_PKCS7: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_PKCS7: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CBC_PKCS7: invalid with DES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: !CBC_PKCS7 with AES +depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_PKCS7: !CBC_PKCS7 with ARIA +depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_PKCS7: !CBC_PKCS7 with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_PKCS7: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: !CBC_PKCS7 with DES +depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CBC_PKCS7: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_PKCS7: invalid with AES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_PKCS7: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_PKCS7: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CBC_PKCS7: invalid with DES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_PKCS7: invalid with AES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_PKCS7: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_PKCS7: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CBC_PKCS7: invalid with DES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_PKCS7: invalid with AES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_PKCS7: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_PKCS7: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CBC_PKCS7: invalid with DES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CBC_PKCS7: invalid +depends_on:PSA_WANT_ALG_CBC_PKCS7 +key_derivation_fail:PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_PKCS7: invalid with AES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_PKCS7: invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_PKCS7: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CBC_PKCS7: invalid with DES +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CCM: invalid +depends_on:PSA_WANT_ALG_CCM +hash_fail:PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM: invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM: invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: !CCM with AES +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead CCM: !CCM with ARIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead CCM: !CCM with CAMELLIA +depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead CCM: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with DES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM: invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM: invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CCM: invalid +depends_on:PSA_WANT_ALG_CCM +key_derivation_fail:PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM: invalid with AES +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CCM_STAR_NO_TAG: invalid +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG +hash_fail:PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM_STAR_NO_TAG: invalid with AES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM_STAR_NO_TAG: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CCM_STAR_NO_TAG: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with AES +depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with ARIA +depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with CAMELLIA +depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CCM_STAR_NO_TAG: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with DES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with HMAC +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CCM_STAR_NO_TAG: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM_STAR_NO_TAG: invalid with AES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM_STAR_NO_TAG: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CCM_STAR_NO_TAG: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM_STAR_NO_TAG: invalid with AES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM_STAR_NO_TAG: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CCM_STAR_NO_TAG: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with AES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CCM_STAR_NO_TAG: invalid +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG +key_derivation_fail:PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM_STAR_NO_TAG: invalid with AES +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM_STAR_NO_TAG: invalid with ARIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CCM_STAR_NO_TAG: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CFB: invalid +depends_on:PSA_WANT_ALG_CFB +hash_fail:PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CFB: invalid with AES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CFB: invalid with ARIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CFB: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: !CFB with AES +depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CFB: !CFB with ARIA +depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CFB: !CFB with CAMELLIA +depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CFB: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with DES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with HMAC +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CFB: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CFB: invalid with AES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CFB: invalid with ARIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CFB: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CFB: invalid with AES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CFB: invalid with ARIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CFB: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CFB: invalid with AES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CFB: invalid with ARIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CFB: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CFB: invalid +depends_on:PSA_WANT_ALG_CFB +key_derivation_fail:PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CFB: invalid with AES +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CFB: invalid with ARIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CFB: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CHACHA20_POLY1305: invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +hash_fail:PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CHACHA20_POLY1305: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CHACHA20_POLY1305: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with AES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ARIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: !CHACHA20_POLY1305 with CHACHA20 +depends_on:!PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_NOT_SUPPORTED + +PSA aead CHACHA20_POLY1305: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with DES +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with HMAC +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CHACHA20_POLY1305: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CHACHA20_POLY1305: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CHACHA20_POLY1305: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CHACHA20_POLY1305: invalid +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 +key_derivation_fail:PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CHACHA20_POLY1305: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CMAC: invalid +depends_on:PSA_WANT_ALG_CMAC +hash_fail:PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: !CMAC with AES +depends_on:!PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_NOT_SUPPORTED + +PSA mac CMAC: incompatible with ARIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with DES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with HMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CMAC: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CMAC: invalid with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CMAC: invalid with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CMAC: invalid with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CMAC: invalid with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CMAC: invalid +depends_on:PSA_WANT_ALG_CMAC +key_derivation_fail:PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CMAC: invalid with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash CTR: invalid +depends_on:PSA_WANT_ALG_CTR +hash_fail:PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CTR: invalid with AES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CTR: invalid with ARIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA mac CTR: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: !CTR with AES +depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CTR: !CTR with ARIA +depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CTR: !CTR with CAMELLIA +depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED + +PSA cipher CTR: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with DERIVE +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with DES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with HMAC +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with PEPPER +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher CTR: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CTR: invalid with AES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CTR: invalid with ARIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA aead CTR: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CTR: invalid with AES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CTR: invalid with ARIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign CTR: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CTR: invalid with AES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CTR: invalid with ARIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption CTR: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation CTR: invalid +depends_on:PSA_WANT_ALG_CTR +key_derivation_fail:PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CTR: invalid with AES +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CTR: invalid with ARIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement CTR: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(MD5): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(MD5): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(MD5): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_DSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_DSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(MD5): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(MD5): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash DETERMINISTIC_ECDSA(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA +hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with AES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ARIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with DES +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with HMAC +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DETERMINISTIC_ECDSA(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA +key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(MD5): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(MD5): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(MD5): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_224): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_256): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_384): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA hash DSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign DSA(SHA_512): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation DSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECB_NO_PADDING: invalid +depends_on:PSA_WANT_ALG_ECB_NO_PADDING +hash_fail:PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECB_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECB_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECB_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECB_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with AES +depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with ARIA +depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with CAMELLIA +depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher ECB_NO_PADDING: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with DES +depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with HMAC +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECB_NO_PADDING: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECB_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECB_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECB_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECB_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECB_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECB_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECB_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECB_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECB_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECB_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECB_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECB_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECB_NO_PADDING: invalid +depends_on:PSA_WANT_ALG_ECB_NO_PADDING +key_derivation_fail:PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECB_NO_PADDING: invalid with AES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECB_NO_PADDING: invalid with ARIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECB_NO_PADDING: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECB_NO_PADDING: invalid with DES +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDH: invalid +depends_on:PSA_WANT_ALG_ECDH +hash_fail:PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDH: invalid +depends_on:PSA_WANT_ALG_ECDH +key_derivation_fail:PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement ECDH: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDH: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(MD5): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(MD5): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(MD5): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(SHA_1): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_224): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(SHA_224): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_256): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(SHA_256): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_384): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(SHA_384): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(SHA_512): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(SHA_512): invalid +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_ECDSA +hash_fail:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA(ANY_HASH): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_ECDSA +key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA hash ECDSA_ANY: invalid +depends_on:PSA_WANT_ALG_ECDSA_ANY +hash_fail:PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with AES +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with DES +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ECDSA_ANY: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ECDSA_ANY: invalid +depends_on:PSA_WANT_ALG_ECDSA_ANY +key_derivation_fail:PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ED25519PH: invalid +depends_on:PSA_WANT_ALG_ED25519PH +hash_fail:PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with AES +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ARIA +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with DERIVE +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with DES +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: !ED25519PH with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: !ED25519PH with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ED25519PH: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with HMAC +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with PEPPER +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED25519PH: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ED25519PH: invalid +depends_on:PSA_WANT_ALG_ED25519PH +key_derivation_fail:PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash ED448PH: invalid +depends_on:PSA_WANT_ALG_ED448PH +hash_fail:PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA mac ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA aead ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with AES +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ARIA +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with DERIVE +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with DES +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: !ED448PH with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: !ED448PH with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign ED448PH: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with HMAC +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with PEPPER +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign ED448PH: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation ED448PH: invalid +depends_on:PSA_WANT_ALG_ED448PH +key_derivation_fail:PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash FFDH: invalid +depends_on:PSA_WANT_ALG_FFDH +hash_fail:PSA_ALG_FFDH:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation FFDH: invalid +depends_on:PSA_WANT_ALG_FFDH +key_derivation_fail:PSA_ALG_FFDH:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with AES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ARIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with DERIVE +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with DES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with HMAC +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with PEPPER +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement FFDH: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash GCM: invalid +depends_on:PSA_WANT_ALG_GCM +hash_fail:PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac GCM: invalid with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac GCM: invalid with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA mac GCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher GCM: invalid with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher GCM: invalid with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher GCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: !GCM with AES +depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead GCM: !GCM with ARIA +depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead GCM: !GCM with CAMELLIA +depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED + +PSA aead GCM: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with DERIVE +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE +aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with DES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES +aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with HMAC +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD +aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH +aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with PEPPER +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER +aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA aead GCM: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA sign GCM: invalid with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign GCM: invalid with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign GCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption GCM: invalid with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption GCM: invalid with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption GCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation GCM: invalid +depends_on:PSA_WANT_ALG_GCM +key_derivation_fail:PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement GCM: invalid with AES +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement GCM: invalid with ARIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement GCM: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HKDF(MD5): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(MD5): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(MD5): !MD5 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(RIPEMD160): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(RIPEMD160): !RIPEMD160 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(SHA_1): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(SHA_1): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(SHA_1): !SHA_1 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(SHA_224): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(SHA_224): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(SHA_224): !SHA_224 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(SHA_256): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(SHA_256): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(SHA_256): !SHA_256 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(SHA_384): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(SHA_384): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(SHA_384): !SHA_384 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF(SHA_512): invalid +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF(SHA_512): !HKDF +depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF(SHA_512): !SHA_512 +depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(MD5): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(MD5): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(MD5): !MD5 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(RIPEMD160): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(RIPEMD160): !RIPEMD160 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(SHA_1): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(SHA_1): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(SHA_1): !SHA_1 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(SHA_224): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(SHA_224): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(SHA_224): !SHA_224 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(SHA_256): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(SHA_256): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(SHA_256): !SHA_256 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(SHA_384): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(SHA_384): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(SHA_384): !SHA_384 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXPAND(SHA_512): invalid +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXPAND(SHA_512): !HKDF_EXPAND +depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXPAND(SHA_512): !SHA_512 +depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(MD5): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(MD5): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(MD5): !MD5 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(RIPEMD160): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(RIPEMD160): !RIPEMD160 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(SHA_1): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(SHA_1): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(SHA_1): !SHA_1 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(SHA_224): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(SHA_224): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(SHA_224): !SHA_224 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(SHA_256): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(SHA_256): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(SHA_256): !SHA_256 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(SHA_384): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(SHA_384): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(SHA_384): !SHA_384 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash HKDF_EXTRACT(SHA_512): invalid +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HKDF_EXTRACT(SHA_512): !HKDF_EXTRACT +depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation HKDF_EXTRACT(SHA_512): !SHA_512 +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash HMAC(MD5): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(MD5): !MD5 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(MD5): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(MD5): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(MD5): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(MD5): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(MD5): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(MD5): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(MD5): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(RIPEMD160): !RIPEMD160 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(RIPEMD160): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(RIPEMD160): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(RIPEMD160): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(RIPEMD160): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(RIPEMD160): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(RIPEMD160): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(SHA_1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_1): !SHA_1 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(SHA_1): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(SHA_1): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(SHA_1): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(SHA_1): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(SHA_1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(SHA_1): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(SHA_224): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_224): !SHA_224 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_224): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(SHA_224): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(SHA_224): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(SHA_224): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(SHA_224): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(SHA_224): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(SHA_224): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(SHA_256): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_256): !SHA_256 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_256): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(SHA_256): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(SHA_256): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(SHA_256): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(SHA_256): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(SHA_256): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(SHA_256): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(SHA_384): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_384): !SHA_384 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_384): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(SHA_384): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(SHA_384): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(SHA_384): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(SHA_384): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(SHA_384): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(SHA_384): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash HMAC(SHA_512): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): !HMAC with HMAC +depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_512): !SHA_512 with HMAC +depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA mac HMAC(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac HMAC(SHA_512): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher HMAC(SHA_512): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead HMAC(SHA_512): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign HMAC(SHA_512): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption HMAC(SHA_512): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation HMAC(SHA_512): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement HMAC(SHA_512): invalid with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash JPAKE: invalid +depends_on:PSA_WANT_ALG_JPAKE +hash_fail:PSA_ALG_JPAKE:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation JPAKE: invalid +depends_on:PSA_WANT_ALG_JPAKE +key_derivation_fail:PSA_ALG_JPAKE:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(FFDH,HKDF(SHA_256)): invalid +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !FFDH +depends_on:!PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !HKDF +depends_on:PSA_WANT_ALG_FFDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) +depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash KEY_AGREEMENT(FFDH,HKDF(SHA_384)): invalid +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !FFDH +depends_on:!PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !HKDF +depends_on:PSA_WANT_ALG_FFDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !SHA_384 +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with AES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ARIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with DERIVE +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with DES +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with HMAC +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PEPPER +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash MD5: !MD5 +depends_on:!PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_MD5:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation MD5: invalid +depends_on:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_MD5:PSA_ERROR_INVALID_ARGUMENT + +PSA hash OFB: invalid +depends_on:PSA_WANT_ALG_OFB +hash_fail:PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA mac OFB: invalid with AES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: !OFB with AES +depends_on:!PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_NOT_SUPPORTED + +PSA cipher OFB: incompatible with ARIA +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with DERIVE +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with DES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with HMAC +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with PEPPER +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher OFB: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA aead OFB: invalid with AES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA sign OFB: invalid with AES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption OFB: invalid with AES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation OFB: invalid +depends_on:PSA_WANT_ALG_OFB +key_derivation_fail:PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement OFB: invalid with AES +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash PBKDF2_AES_CMAC_PRF_128: invalid +depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 +hash_fail:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_AES_CMAC_PRF_128: !PBKDF2_AES_CMAC_PRF_128 +depends_on:!PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 +key_derivation_fail:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(MD5): !MD5 +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(MD5): !PBKDF2_HMAC +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_PBKDF2_HMAC +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(RIPEMD160): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(RIPEMD160): !RIPEMD160 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(SHA_1): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(SHA_1): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(SHA_1): !SHA_1 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(SHA_224): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(SHA_224): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(SHA_224): !SHA_224 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(SHA_256): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(SHA_256): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(SHA_256): !SHA_256 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(SHA_384): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(SHA_384): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(SHA_384): !SHA_384 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash PBKDF2_HMAC(SHA_512): invalid +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PBKDF2_HMAC(SHA_512): !PBKDF2_HMAC +depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation PBKDF2_HMAC(SHA_512): !SHA_512 +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash PURE_EDDSA: invalid +depends_on:PSA_WANT_ALG_PURE_EDDSA +hash_fail:PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA mac PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA mac PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA aead PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA aead PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with AES +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ARIA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with DERIVE +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with DES +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: !PURE_EDDSA with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: !PURE_EDDSA with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:!PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign PURE_EDDSA: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:1:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with HMAC +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with PEPPER +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign PURE_EDDSA: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation PURE_EDDSA: invalid +depends_on:PSA_WANT_ALG_PURE_EDDSA +key_derivation_fail:PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RIPEMD160: !RIPEMD160 +depends_on:!PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_RIPEMD160:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation RIPEMD160: invalid +depends_on:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_RIPEMD160:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(MD5): !MD5 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(MD5): !RSA_OAEP with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(MD5): !MD5 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(MD5): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(MD5): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RSA_OAEP with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(RIPEMD160): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_1): !RSA_OAEP with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_1): !SHA_1 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_1): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_1): !SHA_1 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_1): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_224): !RSA_OAEP with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_224): !SHA_224 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_224): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_224): !SHA_224 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_224): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_256): !RSA_OAEP with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_256): !SHA_256 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_256): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_256): !SHA_256 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_256): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_384): !RSA_OAEP with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_384): !SHA_384 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_384): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_384): !SHA_384 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_384): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_OAEP(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_OAEP(SHA_512): !RSA_OAEP with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_512): !SHA_512 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_512): !RSA_OAEP with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_512): !SHA_512 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_OAEP(SHA_512): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_OAEP(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_CRYPT: invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT +hash_fail:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_DERIVE +asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_DES +asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_HMAC +asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PASSWORD +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PASSWORD_HASH +asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PEPPER +asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA +asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: !RSA_PKCS1V15_CRYPT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: !RSA_PKCS1V15_CRYPT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_NOT_SUPPORTED + +PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:1:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_CRYPT: invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(MD5): !MD5 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(MD5): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(MD5): !MD5 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(MD5): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(MD5): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): !SHA_1 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): !SHA_1 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_1): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): !SHA_224 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): !SHA_224 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_224): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): !SHA_256 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): !SHA_256 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_256): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): !SHA_384 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): !SHA_384 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_384): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): !SHA_512 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): !SHA_512 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN(SHA_512): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PKCS1V15_SIGN_RAW: invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW +hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PKCS1V15_SIGN_RAW: !RSA_PKCS1V15_SIGN_RAW with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN_RAW: !RSA_PKCS1V15_SIGN_RAW with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PKCS1V15_SIGN_RAW: public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PKCS1V15_SIGN_RAW: invalid +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW +key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(MD5): !MD5 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(MD5): !RSA_PSS with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(MD5): !MD5 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(MD5): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(MD5): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(RIPEMD160): !RSA_PSS with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(RIPEMD160): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(RIPEMD160): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_1): !RSA_PSS with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_1): !SHA_1 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_1): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_1): !SHA_1 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_1): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_224): !RSA_PSS with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_224): !SHA_224 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_224): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_224): !SHA_224 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_224): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_256): !RSA_PSS with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_256): !SHA_256 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_256): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_256): !SHA_256 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_256): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_384): !RSA_PSS with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_384): !SHA_384 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_384): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_384): !SHA_384 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_384): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(SHA_512): !RSA_PSS with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_512): !SHA_512 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_512): !RSA_PSS with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_512): !SHA_512 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS(SHA_512): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PSS +hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS(ANY_HASH): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PSS +key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with AES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ARIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with DERIVE +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with DES +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with HMAC +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PEPPER +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(MD5): !MD5 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(MD5): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(MD5): !MD5 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(MD5): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(MD5): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with AES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ARIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with DES +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with HMAC +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(RIPEMD160): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_1): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_1): !SHA_1 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_1): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_1): !SHA_1 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_1): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(SHA_1): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_224): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_224): !SHA_224 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_224): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_224): !SHA_224 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_224): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(SHA_224): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_256): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_256): !SHA_256 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_256): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_256): !SHA_256 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_256): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(SHA_256): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_384): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_384): !SHA_384 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_384): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_384): !SHA_384 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_384): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(SHA_384): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA mac RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA aead RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(SHA_512): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_512): !SHA_512 with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_512): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY +depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_512): !SHA_512 with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED + +PSA sign RSA_PSS_ANY_SALT(SHA_512): public with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(SHA_512): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash RSA_PSS_ANY_SALT(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT +hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with AES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ARIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with DERIVE +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE +sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with DES +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES +sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with HMAC +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC +sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD +sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH +sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PEPPER +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER +sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation RSA_PSS_ANY_SALT(ANY_HASH): invalid +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT +key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA3_224: !SHA3_224 +depends_on:!PSA_WANT_ALG_SHA3_224 +hash_fail:PSA_ALG_SHA3_224:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA3_224: invalid +depends_on:PSA_WANT_ALG_SHA3_224 +key_derivation_fail:PSA_ALG_SHA3_224:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA3_256: !SHA3_256 +depends_on:!PSA_WANT_ALG_SHA3_256 +hash_fail:PSA_ALG_SHA3_256:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA3_256: invalid +depends_on:PSA_WANT_ALG_SHA3_256 +key_derivation_fail:PSA_ALG_SHA3_256:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA3_384: !SHA3_384 +depends_on:!PSA_WANT_ALG_SHA3_384 +hash_fail:PSA_ALG_SHA3_384:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA3_384: invalid +depends_on:PSA_WANT_ALG_SHA3_384 +key_derivation_fail:PSA_ALG_SHA3_384:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA3_512: !SHA3_512 +depends_on:!PSA_WANT_ALG_SHA3_512 +hash_fail:PSA_ALG_SHA3_512:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA3_512: invalid +depends_on:PSA_WANT_ALG_SHA3_512 +key_derivation_fail:PSA_ALG_SHA3_512:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHAKE256_512: !SHAKE256_512 +depends_on:!PSA_WANT_ALG_SHAKE256_512 +hash_fail:PSA_ALG_SHAKE256_512:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHAKE256_512: invalid +depends_on:PSA_WANT_ALG_SHAKE256_512 +key_derivation_fail:PSA_ALG_SHAKE256_512:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_1: !SHA_1 +depends_on:!PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_SHA_1:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_1: invalid +depends_on:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_SHA_1:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_224: !SHA_224 +depends_on:!PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_SHA_224:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_224: invalid +depends_on:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_SHA_224:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_256: !SHA_256 +depends_on:!PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_SHA_256:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_256: invalid +depends_on:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_SHA_256:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_384: !SHA_384 +depends_on:!PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_SHA_384:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_384: invalid +depends_on:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_SHA_384:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_512: !SHA_512 +depends_on:!PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_SHA_512:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_512: invalid +depends_on:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_SHA_512:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_512_224: !SHA_512_224 +depends_on:!PSA_WANT_ALG_SHA_512_224 +hash_fail:PSA_ALG_SHA_512_224:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_512_224: invalid +depends_on:PSA_WANT_ALG_SHA_512_224 +key_derivation_fail:PSA_ALG_SHA_512_224:PSA_ERROR_INVALID_ARGUMENT + +PSA hash SHA_512_256: !SHA_512_256 +depends_on:!PSA_WANT_ALG_SHA_512_256 +hash_fail:PSA_ALG_SHA_512_256:PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation SHA_512_256: invalid +depends_on:PSA_WANT_ALG_SHA_512_256 +key_derivation_fail:PSA_ALG_SHA_512_256:PSA_ERROR_INVALID_ARGUMENT + +PSA hash STREAM_CIPHER: invalid +depends_on:PSA_WANT_ALG_STREAM_CIPHER +hash_fail:PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA mac STREAM_CIPHER: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with AES +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ARIA +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: !STREAM_CIPHER with CHACHA20 +depends_on:!PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_NOT_SUPPORTED + +PSA cipher STREAM_CIPHER: incompatible with DERIVE +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with DES +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with HMAC +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with PEPPER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher STREAM_CIPHER: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA aead STREAM_CIPHER: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA sign STREAM_CIPHER: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption STREAM_CIPHER: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation STREAM_CIPHER: invalid +depends_on:PSA_WANT_ALG_STREAM_CIPHER +key_derivation_fail:PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement STREAM_CIPHER: invalid with CHACHA20 +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash TLS12_ECJPAKE_TO_PMS: invalid +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +hash_fail:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_ECJPAKE_TO_PMS: !TLS12_ECJPAKE_TO_PMS +depends_on:!PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +key_derivation_fail:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(MD5): !MD5 +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(MD5): !TLS12_PRF +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(RIPEMD160): !RIPEMD160 +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(RIPEMD160): !TLS12_PRF +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(SHA_1): invalid +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(SHA_1): !SHA_1 +depends_on:!PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(SHA_1): !TLS12_PRF +depends_on:PSA_WANT_ALG_SHA_1:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(SHA_224): invalid +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(SHA_224): !SHA_224 +depends_on:!PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(SHA_224): !TLS12_PRF +depends_on:PSA_WANT_ALG_SHA_224:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(SHA_256): invalid +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(SHA_256): !SHA_256 +depends_on:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(SHA_256): !TLS12_PRF +depends_on:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(SHA_384): invalid +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(SHA_384): !SHA_384 +depends_on:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(SHA_384): !TLS12_PRF +depends_on:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PRF(SHA_512): invalid +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF +hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PRF(SHA_512): !SHA_512 +depends_on:!PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PRF(SHA_512): !TLS12_PRF +depends_on:PSA_WANT_ALG_SHA_512:!PSA_WANT_ALG_TLS12_PRF +key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(MD5): invalid +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(MD5): !MD5 +depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(MD5): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(RIPEMD160): invalid +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(RIPEMD160): !RIPEMD160 +depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(RIPEMD160): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(SHA_1): invalid +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(SHA_1): !SHA_1 +depends_on:!PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(SHA_1): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_SHA_1:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(SHA_224): invalid +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(SHA_224): !SHA_224 +depends_on:!PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(SHA_224): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_SHA_224:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(SHA_256): invalid +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(SHA_256): !SHA_256 +depends_on:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(SHA_256): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(SHA_384): invalid +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(SHA_384): !SHA_384 +depends_on:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(SHA_384): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED + +PSA hash TLS12_PSK_TO_MS(SHA_512): invalid +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS +hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TLS12_PSK_TO_MS(SHA_512): !SHA_512 +depends_on:!PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA key_derivation TLS12_PSK_TO_MS(SHA_512): !TLS12_PSK_TO_MS +depends_on:PSA_WANT_ALG_SHA_512:!PSA_WANT_ALG_TLS12_PSK_TO_MS +key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED + +PSA hash TRUNCATED_MAC(CBC_MAC,1): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,1): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CMAC,1): invalid +depends_on:PSA_WANT_ALG_CMAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with AES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ARIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with DES +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with HMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CMAC,1): invalid +depends_on:PSA_WANT_ALG_CMAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(MD5),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(MD5),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(RIPEMD160),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(RIPEMD160),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(SHA_1),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(SHA_1),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(SHA_224),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(SHA_224),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(SHA_256),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(SHA_256),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(SHA_384),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(SHA_384),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(HMAC(SHA_512),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with AES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ARIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with DERIVE +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with DES +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with HMAC +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PEPPER +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(HMAC(SHA_512),1): invalid +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CBC_MAC,4): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with AES +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with ARIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,4): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CBC_MAC,13): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with AES +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with ARIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,13): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CBC_MAC,14): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with AES +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with ARIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,14): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CBC_MAC,16): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with AES +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with ARIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with CAMELLIA +depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,16): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT + +PSA hash TRUNCATED_MAC(CBC_MAC,63): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with AES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ARIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with CAMELLIA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 +mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with DERIVE +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE +mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with DES +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES +mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with HMAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC +mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PASSWORD +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD +mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH +mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PEPPER +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER +mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation TRUNCATED_MAC(CBC_MAC,63): invalid +depends_on:PSA_WANT_ALG_CBC_MAC +key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT + +PSA hash XTS: invalid +depends_on:PSA_WANT_ALG_XTS +hash_fail:PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA mac XTS: invalid with AES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA mac XTS: invalid with ARIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA mac XTS: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: !XTS with AES +depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED + +PSA cipher XTS: !XTS with ARIA +depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED + +PSA cipher XTS: !XTS with CAMELLIA +depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED + +PSA cipher XTS: incompatible with CHACHA20 +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CHACHA20 +cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with DERIVE +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_DERIVE +cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with DES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_DES +cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(MONTGOMERY) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_K1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_R2) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_K1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_R2) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_K1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_R2) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_K1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_R1) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_R2) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with HMAC +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_HMAC +cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with PASSWORD +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PASSWORD +cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with PASSWORD_HASH +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PASSWORD_HASH +cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with PEPPER +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PEPPER +cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with RAW_DATA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA +cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with RSA_KEY_PAIR +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA cipher XTS: incompatible with RSA_PUBLIC_KEY +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA aead XTS: invalid with AES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA aead XTS: invalid with ARIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA aead XTS: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA sign XTS: invalid with AES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign XTS: invalid with ARIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA sign XTS: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption XTS: invalid with AES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption XTS: invalid with ARIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA asymmetric_encryption XTS: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_derivation XTS: invalid +depends_on:PSA_WANT_ALG_XTS +key_derivation_fail:PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement XTS: invalid with AES +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement XTS: invalid with ARIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +PSA key_agreement XTS: invalid with CAMELLIA +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT + +# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_storage_format.current.data b/tests/suites/test_suite_psa_crypto_storage_format.current.data new file mode 100644 index 000000000..d0d54c5a7 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_storage_format.current.data @@ -0,0 +1,8035 @@ +# Automatically generated by generate_psa_tests.py. Do not edit! + +save lifetime: (DEFAULT,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_DEFAULT, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c" + +save lifetime: (2,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(2, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000200000001100800010000000000000000000000010000004c" + +save lifetime: (254,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(254, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000fe00000001100800010000000000000000000000010000004c" + +save lifetime: PERSISTENT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:PSA_KEY_LIFETIME_PERSISTENT:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c" + +save usage without implication: 0 +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b" + +save usage without implication: COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b" + +save usage without implication: DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b" + +save usage without implication: DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b" + +save usage without implication: ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b" + +save usage without implication: EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b" + +save usage without implication: SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b" + +save usage without implication: SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b" + +save usage without implication: VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b" + +save usage without implication: VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b" + +save usage without implication: VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b" + +save usage without implication: COPY|DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b" + +save usage without implication: DECRYPT|DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b" + +save usage without implication: DERIVE|ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b" + +save usage without implication: ENCRYPT|EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b" + +save usage without implication: EXPORT|SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011400000000000000000000010000004b" + +save usage without implication: SIGN_HASH|SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b" + +save usage without implication: SIGN_MESSAGE|VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b" + +save usage without implication: VERIFY_DERIVATION|VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a800000000000000000000010000004b" + +save usage without implication: VERIFY_HASH|VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b" + +save usage without implication: VERIFY_MESSAGE|COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b" + +save usage without implication: all known +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080003ff00000000000000000000010000004b" + +save type: AES 128-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014405000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014e05000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c003000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000404004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000414004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000013c004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000011c004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000002c003000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000010c004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000444004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000025005000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000012c004000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c403000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001cd03000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001ce03000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001d003000000001000000048657265006973206b6579a064617461" + +save type: AES 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000ff4004000000001000000048657265006973206b6579a064617461" + +save type: AES 192-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000002c003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000012c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: AES 256-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000002c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000012c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: AES 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014405000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014e05000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c003000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000404004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000414004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000013c004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000011c004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000010c004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000444004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000025005000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c403000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001cd03000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001ce03000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001d003000000001000000048657265006973206b6579a064617461" + +save type: ARIA 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000ff4004000000001000000048657265006973206b6579a064617461" + +save type: ARIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: ARIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: ARIA 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014405000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014e05000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c003000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000404004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000414004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000013c004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000011c004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000010c004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000444004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000025005000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c403000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001cd03000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001ce03000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001d003000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000ff4004000000001000000048657265006973206b6579a064617461" + +save type: CAMELLIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" + +save type: CAMELLIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CAMELLIA 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CHACHA20 256-bit +depends_on:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CHACHA20 256-bit, CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000051005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: CHACHA20 256-bit, STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000018004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: DERIVE 120-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +key_storage_save:0x0001:PSA_KEY_TYPE_DERIVE:120:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174":"505341004b4559000000000001000000001278000100000000000000000000000f00000048657265006973206b6579a0646174" + +save type: DERIVE 128-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +key_storage_save:0x0001:PSA_KEY_TYPE_DERIVE:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001280000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: DES 64-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001000000000000000000000008000000644573206b457901" + +save type: DES 64-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004040040000000008000000644573206b457901" + +save type: DES 64-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004140040000000008000000644573206b457901" + +save type: DES 64-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004440040000000008000000644573206b457901" + +save type: DES 128-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001000000000000000000000010000000644573206b457901644573206b457902" + +save type: DES 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004040040000000010000000644573206b457901644573206b457902" + +save type: DES 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004140040000000010000000644573206b457901644573206b457902" + +save type: DES 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004440040000000010000000644573206b457901644573206b457902" + +save type: DES 192-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001000000000000000000000018000000644573206b457901644573206b457902644573206b457904" + +save type: DES 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004040040000000018000000644573206b457901644573206b457902644573206b457904" + +save type: DES 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004140040000000018000000644573206b457901644573206b457902644573206b457904" + +save type: DES 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004440040000000018000000644573206b457901644573206b457902644573206b457904" + +save type: ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000100000000000000000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000000000209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000000060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" + +save type: ECC_PAIR(BP_R1) 192-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000010000000000000000000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000307000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000407000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000507000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000807000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000907000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000000020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000306000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000406000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000506000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000806000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000906000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000006000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000901020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a01020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000905020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a05020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000904020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a04020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000902020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a02020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000903020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a03020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" + +save type: ECC_PAIR(BP_R1) 224-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000100000000000000000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000000000209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000000060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" + +save type: ECC_PAIR(BP_R1) 256-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001010000000000000000000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000307000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000407000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000507000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000807000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000907000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000000020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000306000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000406000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000506000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000806000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000906000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000006000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000901020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a01020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000905020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a05020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000904020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a04020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000902020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a02020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000903020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a03020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" + +save type: ECC_PAIR(BP_R1) 320-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010100000000000000000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000000000209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000000060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" + +save type: ECC_PAIR(BP_R1) 384-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001010000000000000000000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000307000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000407000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000507000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000807000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000907000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000000020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000306000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000406000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000506000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000806000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000906000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000006000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000901020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a01020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000905020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a05020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000904020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a04020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000902020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a02020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000903020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a03020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" + +save type: ECC_PAIR(BP_R1) 512-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201000000000000000000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000000002090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000000600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" + +save type: ECC_PAIR(MGM) 255-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000100000000000000000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000000000209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" + +save type: ECC_PAIR(MGM) 448-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101000000000000000000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000000002090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" + +save type: ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001000000000000000000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000000002090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000000600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" + +save type: ECC_PAIR(SECP_K1) 224-bit +depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000100000000000000000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000000000209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000000060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" + +save type: ECC_PAIR(SECP_K1) 256-bit +depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001010000000000000000000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000307000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000407000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000507000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000807000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000907000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000000020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000306000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000406000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000506000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000806000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000906000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000006000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000901020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a01020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000905020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a05020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000904020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a04020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000902020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a02020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000903020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a03020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" + +save type: ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000100000000000000000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000000000209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000000060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" + +save type: ECC_PAIR(SECP_R1) 256-bit +depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010100000000000000000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000000000209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000000060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" + +save type: ECC_PAIR(SECP_R1) 384-bit +depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001010000000000000000000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000307000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000407000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000507000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000807000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000907000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000000020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000306000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000406000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000506000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000806000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000906000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000006000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000901020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a01020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000905020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a05020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000904020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a04020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000902020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a02020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000903020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a03020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" + +save type: ECC_PAIR(SECP_R1) 521-bit +depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020100000000000000000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000000000209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000000060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" + +save type: ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000100000000000000000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000000000209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000000060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" + +save type: ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000100000000000000000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000000000209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000000060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" + +save type: ECC_PAIR(SECT_K1) 233-bit +depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000100000000000000000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000000000209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000000060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" + +save type: ECC_PAIR(SECT_K1) 239-bit +depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000100000000000000000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000000000209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000000060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" + +save type: ECC_PAIR(SECT_K1) 283-bit +depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101000000000000000000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000000002090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000000600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" + +save type: ECC_PAIR(SECT_K1) 409-bit +depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901010000000000000000000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000307000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000407000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000507000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000807000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000907000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000000020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000306000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000406000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000506000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000806000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000906000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000006000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000901020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a01020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000905020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a05020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000904020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a04020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000902020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a02020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000903020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a03020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" + +save type: ECC_PAIR(SECT_K1) 571-bit +depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201000000000000000000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000000002090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000000600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" + +save type: ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001000000000000000000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000000002090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000000600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" + +save type: ECC_PAIR(SECT_R1) 233-bit +depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000100000000000000000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000000000209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000000060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" + +save type: ECC_PAIR(SECT_R1) 283-bit +depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101000000000000000000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000000002090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000000600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" + +save type: ECC_PAIR(SECT_R1) 409-bit +depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010100000000000000000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000000000209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000000060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" + +save type: ECC_PAIR(SECT_R1) 571-bit +depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201000000000000000000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000000002090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000000600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" + +save type: ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300010000000000000000000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000307000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000407000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000507000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000807000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000000020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000306000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000406000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000506000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000806000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000006000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000901020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a01020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000905020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a05020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000904020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a04020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000902020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a02020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000903020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a03020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" + +save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00010000000000000000000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000008000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" + +save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001010000000000000000000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000b09000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00001509000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000008000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" + +save type: ECC_PUB(BP_R1) 160-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000100000000000000000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000000060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" + +save type: ECC_PUB(BP_R1) 192-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001000000000000000000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000000600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" + +save type: ECC_PUB(BP_R1) 224-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001000000000000000000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000000600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" + +save type: ECC_PUB(BP_R1) 256-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010100000000000000000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000000060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" + +save type: ECC_PUB(BP_R1) 320-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101000000000000000000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 320-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000000600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" + +save type: ECC_PUB(BP_R1) 384-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010100000000000000000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000000060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" + +save type: ECC_PUB(BP_R1) 512-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002010000000000000000000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000307000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000407000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000507000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000807000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000907000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000306000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000406000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000506000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000806000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000906000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(BP_R1) 512-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000006000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" + +save type: ECC_PUB(MGM) 255-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":"505341004b45590000000000010000004141ff00010000000000000000000000200000008520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" + +save type: ECC_PUB(MGM) 448-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":"505341004b45590000000000010000004141c00101000000000000000000000038000000c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" + +save type: ECC_PUB(SECP_K1) 192-bit +depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000010000000000000000000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000307000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000407000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000507000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000807000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000306000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000406000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000506000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000806000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000006000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" + +save type: ECC_PUB(SECP_K1) 224-bit +depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001000000000000000000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000000600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" + +save type: ECC_PUB(SECP_K1) 256-bit +depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101000000000000000000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_K1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000000600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" + +save type: ECC_PUB(SECP_R1) 225-bit +depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001000000000000000000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 225-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000000600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" + +save type: ECC_PUB(SECP_R1) 256-bit +depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101000000000000000000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000000600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" + +save type: ECC_PUB(SECP_R1) 384-bit +depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010100000000000000000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000000060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" + +save type: ECC_PUB(SECP_R1) 521-bit +depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020100000000000000000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R1) 521-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000000060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" + +save type: ECC_PUB(SECP_R2) 160-bit +depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001000000000000000000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECP_R2) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000000600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" + +save type: ECC_PUB(SECT_K1) 163-bit +depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000100000000000000000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000000060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" + +save type: ECC_PUB(SECT_K1) 233-bit +depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000100000000000000000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000000060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" + +save type: ECC_PUB(SECT_K1) 239-bit +depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000100000000000000000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 239-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000000060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" + +save type: ECC_PUB(SECT_K1) 283-bit +depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01010000000000000000000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000307000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000407000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000507000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000807000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000907000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000306000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000406000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000506000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000806000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000906000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000006000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" + +save type: ECC_PUB(SECT_K1) 409-bit +depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010100000000000000000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000000060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" + +save type: ECC_PUB(SECT_K1) 571-bit +depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020100000000000000000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_K1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000000060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" + +save type: ECC_PUB(SECT_R1) 163-bit +depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000100000000000000000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000000060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" + +save type: ECC_PUB(SECT_R1) 233-bit +depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000100000000000000000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000000060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" + +save type: ECC_PUB(SECT_R1) 283-bit +depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010100000000000000000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000000060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" + +save type: ECC_PUB(SECT_R1) 409-bit +depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901010000000000000000000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000307000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000407000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000507000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000807000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000907000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000306000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000406000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000506000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000806000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000906000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000006000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" + +save type: ECC_PUB(SECT_R1) 571-bit +depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201000000000000000000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000000600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" + +save type: ECC_PUB(SECT_R2) 163-bit +depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000100000000000000000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(SECT_R2) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000000060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" + +save type: ECC_PUB(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001000000000000000000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012800000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000000800060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + +save type: ECC_PUB(TWISTED_EDWARDS) 448-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001010000000000000000000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000b09000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800001509000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000008000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" + +save type: HMAC 128-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000003008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000004008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000005008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000008008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000009008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000a008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 128-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000b008003000000001000000048657265006973206b6579a064617461" + +save type: HMAC 160-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a0000100000000000000000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000003008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000004008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000005008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000008008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000009008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000a008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 160-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000b008003000000001400000048657265006973206b6579a06461746148657265" + +save type: HMAC 224-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e0000100000000000000000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000003008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000004008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000005008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000008008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000009008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000a008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 224-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000b008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" + +save type: HMAC 256-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000003008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000004008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000005008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000008008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000009008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000a008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 256-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000b008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001180010100000000000000000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000003008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000004008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000005008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000008008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000009008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000a008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 384-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000b008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100020100000000000000000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000003008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000004008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000005008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000008008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000009008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000a008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: HMAC 512-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000b008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: PASSWORD 48-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:48:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"486572650069":"505341004b45590000000000010000000312300001000000000000000000000006000000486572650069" + +save type: PASSWORD 168-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:168:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500":"505341004b45590000000000010000000312a8000100000000000000000000001500000048657265006973206b6579a0646174614865726500" + +save type: PASSWORD 336-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:336:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":"505341004b4559000000000001000000031250010100000000000000000000002a00000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65" + +save type: PASSWORD_HASH 128-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000051280000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: PASSWORD_HASH 256-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000051200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: PEPPER 128-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER +key_storage_save:0x0001:PSA_KEY_TYPE_PEPPER:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000061280000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: PEPPER 256-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER +key_storage_save:0x0001:PSA_KEY_TYPE_PEPPER:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000061200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" + +save type: RAW_DATA 8-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48":"505341004b4559000000000001000000011008000100000000000000000000000100000048" + +save type: RAW_DATA 40-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:40:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4865726500":"505341004b455900000000000100000001102800010000000000000000000000050000004865726500" + +save type: RAW_DATA 128-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000011080000100000000000000000000001000000048657265006973206b6579a064617461" + +save type: RSA_PAIR 1024-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010000000000000000000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000303000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000403000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000503000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000803000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000903000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000a03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000b03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000002000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000302000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000402000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000502000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000802000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000002000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000303000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000403000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000503000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000803000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000313000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000413000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000513000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000813000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000913000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" + +save type: RSA_PAIR 1536-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060100000000000000000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000003030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000004030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000005030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000008030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000009030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000a030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000b030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000000020007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000000020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" + +save type: RSA_PUB 1024-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040100000000000000000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000003030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000004030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000005030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000008030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000009030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000a030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000b030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000000020007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000000020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" + +save type: RSA_PUB 1536-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010000000000000000000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000303000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000403000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000503000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000803000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000903000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000a03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000b03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000002000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000302000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000402000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000502000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000802000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000902000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000002000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000303000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000403000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000503000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000803000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000903000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000313000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000413000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000513000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000813000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000913000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081410500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000814105010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000085010500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000850105010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082410500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000824105010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081440500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000814405010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814d0500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000814d05010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814e0500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000814e05010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081500500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000815005010000004c" + +save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000817f0500000000010000004b" + +save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000817f05010000004c" + +save alg: AEAD_SHORT(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001410500000000010000004b" + +save alg2: AEAD_SHORT(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000014105010000004c" + +save alg: AEAD_SHORT(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000005010500000000010000004b" + +save alg2: AEAD_SHORT(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000050105010000004c" + +save alg: AEAD_SHORT(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002410500000000010000004b" + +save alg2: AEAD_SHORT(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000024105010000004c" + +save alg: AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001440500000000010000004b" + +save alg2: AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000014405010000004c" + +save alg: AEAD_SHORT(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014d0500000000010000004b" + +save alg2: AEAD_SHORT(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000014d05010000004c" + +save alg: AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014e0500000000010000004b" + +save alg2: AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000014e05010000004c" + +save alg: AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b" + +save alg2: AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c" + +save alg: AEAD_SHORT(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000017f0500000000010000004b" + +save alg2: AEAD_SHORT(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000017f05010000004c" + +save alg: ANY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ANY_HASH:0x0000:"4b":"505341004b45590000000000010000000110080001000000ff00000200000000010000004b" + +save alg2: ANY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ANY_HASH:"4c":"505341004b4559000000000001000000011008000100000000000000ff000002010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c10300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000081c103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082c10300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000082c103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000380810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000480810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000580810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000880810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000980810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a80810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b80810300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b808103010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c40300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000081c403010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000081cd0300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000081cd03010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ce0300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000081ce03010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081d00300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000081d003010000004c" + +save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ff0300000000010000004b" + +save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000081ff03010000004c" + +save alg: CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_MAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000001c00300000000010000004b" + +save alg2: CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_MAC:"4c":"505341004b45590000000000010000000110080001000000000000000001c003010000004c" + +save alg: CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000040400400000000010000004b" + +save alg2: CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000404004010000004c" + +save alg: CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"4b":"505341004b455900000000000100000001100800010000000041400400000000010000004b" + +save alg2: CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_PKCS7:"4c":"505341004b455900000000000100000001100800010000000000000000414004010000004c" + +save alg: CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b" + +save alg2: CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM:"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c" + +save alg: CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"4b":"505341004b455900000000000100000001100800010000000013c00400000000010000004b" + +save alg2: CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM_STAR_NO_TAG:"4c":"505341004b45590000000000010000000110080001000000000000000013c004010000004c" + +save alg: CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000011c00400000000010000004b" + +save alg2: CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CFB:"4c":"505341004b45590000000000010000000110080001000000000000000011c004010000004c" + +save alg: CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"4b":"505341004b455900000000000100000001100800010000000005100500000000010000004b" + +save alg2: CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CHACHA20_POLY1305:"4c":"505341004b455900000000000100000001100800010000000000000000051005010000004c" + +save alg: CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CMAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000002c00300000000010000004b" + +save alg2: CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CMAC:"4c":"505341004b45590000000000010000000110080001000000000000000002c003010000004c" + +save alg: CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"4b":"505341004b455900000000000100000001100800010000000010c00400000000010000004b" + +save alg2: CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CTR:"4c":"505341004b45590000000000010000000110080001000000000000000010c004010000004c" + +save alg: DET_DSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000600000000010000004b" + +save alg2: DET_DSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050006010000004c" + +save alg: DET_DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000600000000010000004b" + +save alg2: DET_DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050006010000004c" + +save alg: DET_DSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000600000000010000004b" + +save alg2: DET_DSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050006010000004c" + +save alg: DET_DSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000600000000010000004b" + +save alg2: DET_DSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050006010000004c" + +save alg: DET_DSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000600000000010000004b" + +save alg2: DET_DSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050006010000004c" + +save alg: DET_DSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000600000000010000004b" + +save alg2: DET_DSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050006010000004c" + +save alg: DET_DSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000600000000010000004b" + +save alg2: DET_DSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050006010000004c" + +save alg: DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000307000600000000010000004b" + +save alg2: DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003070006010000004c" + +save alg: DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000407000600000000010000004b" + +save alg2: DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004070006010000004c" + +save alg: DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000507000600000000010000004b" + +save alg2: DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005070006010000004c" + +save alg: DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000807000600000000010000004b" + +save alg2: DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008070006010000004c" + +save alg: DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000907000600000000010000004b" + +save alg2: DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009070006010000004c" + +save alg: DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a07000600000000010000004b" + +save alg2: DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a070006010000004c" + +save alg: DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b07000600000000010000004b" + +save alg2: DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b070006010000004c" + +save alg: DET_ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff07000600000000010000004b" + +save alg2: DET_ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff070006010000004c" + +save alg: DSA(MD5) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000600000000010000004b" + +save alg2: DSA(MD5) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040006010000004c" + +save alg: DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000600000000010000004b" + +save alg2: DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040006010000004c" + +save alg: DSA(SHA_1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000600000000010000004b" + +save alg2: DSA(SHA_1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040006010000004c" + +save alg: DSA(SHA_224) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000600000000010000004b" + +save alg2: DSA(SHA_224) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040006010000004c" + +save alg: DSA(SHA_256) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000600000000010000004b" + +save alg2: DSA(SHA_256) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040006010000004c" + +save alg: DSA(SHA_384) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000600000000010000004b" + +save alg2: DSA(SHA_384) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040006010000004c" + +save alg: DSA(SHA_512) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000600000000010000004b" + +save alg2: DSA(SHA_512) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040006010000004c" + +save alg: ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000044400400000000010000004b" + +save alg2: ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECB_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000444004010000004c" + +save alg: ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000020900000000010000004b" + +save alg2: ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDH:"4c":"505341004b455900000000000100000001100800010000000000000000000209010000004c" + +save alg: ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000306000600000000010000004b" + +save alg2: ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003060006010000004c" + +save alg: ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000406000600000000010000004b" + +save alg2: ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004060006010000004c" + +save alg: ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000506000600000000010000004b" + +save alg2: ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005060006010000004c" + +save alg: ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000806000600000000010000004b" + +save alg2: ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008060006010000004c" + +save alg: ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000906000600000000010000004b" + +save alg2: ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009060006010000004c" + +save alg: ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a06000600000000010000004b" + +save alg2: ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a060006010000004c" + +save alg: ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b06000600000000010000004b" + +save alg2: ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b060006010000004c" + +save alg: ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff06000600000000010000004b" + +save alg2: ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff060006010000004c" + +save alg: ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA_ANY:0x0000:"4b":"505341004b455900000000000100000001100800010000000006000600000000010000004b" + +save alg2: ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA_ANY:"4c":"505341004b455900000000000100000001100800010000000000000000060006010000004c" + +save alg: ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED25519PH:0x0000:"4b":"505341004b455900000000000100000001100800010000000b09000600000000010000004b" + +save alg2: ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED25519PH:"4c":"505341004b45590000000000010000000110080001000000000000000b090006010000004c" + +save alg: ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED448PH:0x0000:"4b":"505341004b455900000000000100000001100800010000001509000600000000010000004b" + +save alg2: ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED448PH:"4c":"505341004b455900000000000100000001100800010000000000000015090006010000004c" + +save alg: FFDH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_FFDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000010900000000010000004b" + +save alg2: FFDH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_FFDH:"4c":"505341004b455900000000000100000001100800010000000000000000000109010000004c" + +save alg: GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000002500500000000010000004b" + +save alg2: GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_GCM:"4c":"505341004b455900000000000100000001100800010000000000000000025005010000004c" + +save alg: HKDF(MD5) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301000800000000010000004b" + +save alg2: HKDF(MD5) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003010008010000004c" + +save alg: HKDF(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401000800000000010000004b" + +save alg2: HKDF(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004010008010000004c" + +save alg: HKDF(SHA_1) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501000800000000010000004b" + +save alg2: HKDF(SHA_1) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005010008010000004c" + +save alg: HKDF(SHA_224) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801000800000000010000004b" + +save alg2: HKDF(SHA_224) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008010008010000004c" + +save alg: HKDF(SHA_256) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901000800000000010000004b" + +save alg2: HKDF(SHA_256) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009010008010000004c" + +save alg: HKDF(SHA_384) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01000800000000010000004b" + +save alg2: HKDF(SHA_384) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a010008010000004c" + +save alg: HKDF(SHA_512) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01000800000000010000004b" + +save alg2: HKDF(SHA_512) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b010008010000004c" + +save alg: HKDF_EXPAND(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000800000000010000004b" + +save alg2: HKDF_EXPAND(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050008010000004c" + +save alg: HKDF_EXPAND(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000800000000010000004b" + +save alg2: HKDF_EXPAND(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050008010000004c" + +save alg: HKDF_EXPAND(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000800000000010000004b" + +save alg2: HKDF_EXPAND(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050008010000004c" + +save alg: HKDF_EXPAND(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000800000000010000004b" + +save alg2: HKDF_EXPAND(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050008010000004c" + +save alg: HKDF_EXPAND(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000800000000010000004b" + +save alg2: HKDF_EXPAND(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050008010000004c" + +save alg: HKDF_EXPAND(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000800000000010000004b" + +save alg2: HKDF_EXPAND(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050008010000004c" + +save alg: HKDF_EXPAND(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000800000000010000004b" + +save alg2: HKDF_EXPAND(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050008010000004c" + +save alg: HKDF_EXTRACT(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000800000000010000004b" + +save alg2: HKDF_EXTRACT(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040008010000004c" + +save alg: HKDF_EXTRACT(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000800000000010000004b" + +save alg2: HKDF_EXTRACT(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040008010000004c" + +save alg: HKDF_EXTRACT(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000800000000010000004b" + +save alg2: HKDF_EXTRACT(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040008010000004c" + +save alg: HKDF_EXTRACT(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000800000000010000004b" + +save alg2: HKDF_EXTRACT(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040008010000004c" + +save alg: HKDF_EXTRACT(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000800000000010000004b" + +save alg2: HKDF_EXTRACT(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040008010000004c" + +save alg: HKDF_EXTRACT(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000800000000010000004b" + +save alg2: HKDF_EXTRACT(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040008010000004c" + +save alg: HKDF_EXTRACT(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000800000000010000004b" + +save alg2: HKDF_EXTRACT(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040008010000004c" + +save alg: HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000300800300000000010000004b" + +save alg2: HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003008003010000004c" + +save alg: HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000400800300000000010000004b" + +save alg2: HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004008003010000004c" + +save alg: HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500800300000000010000004b" + +save alg2: HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005008003010000004c" + +save alg: HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000800800300000000010000004b" + +save alg2: HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008008003010000004c" + +save alg: HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000900800300000000010000004b" + +save alg2: HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009008003010000004c" + +save alg: HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00800300000000010000004b" + +save alg2: HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a008003010000004c" + +save alg: HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00800300000000010000004b" + +save alg2: HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b008003010000004c" + +save alg: JPAKE +depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_JPAKE:0x0000:"4b":"505341004b455900000000000100000001100800010000000001000a00000000010000004b" + +save alg2: JPAKE +depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_JPAKE:"4c":"505341004b45590000000000010000000110080001000000000000000001000a010000004c" + +save alg: KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901020900000000010000004b" + +save alg2: KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010209010000004c" + +save alg: KA(FFDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901010900000000010000004b" + +save alg2: KA(FFDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010109010000004c" + +save alg: KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01020900000000010000004b" + +save alg2: KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010209010000004c" + +save alg: KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000905020900000000010000004b" + +save alg2: KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009050209010000004c" + +save alg: KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05020900000000010000004b" + +save alg2: KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a050209010000004c" + +save alg: KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000904020900000000010000004b" + +save alg2: KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009040209010000004c" + +save alg: KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04020900000000010000004b" + +save alg2: KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a040209010000004c" + +save alg: KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000902020900000000010000004b" + +save alg2: KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009020209010000004c" + +save alg: KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02020900000000010000004b" + +save alg2: KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a020209010000004c" + +save alg: KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000903020900000000010000004b" + +save alg2: KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009030209010000004c" + +save alg: KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03020900000000010000004b" + +save alg2: KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a030209010000004c" + +save alg: KA(FFDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01010900000000010000004b" + +save alg2: KA(FFDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010109010000004c" + +save alg: MD5 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_MD5:0x0000:"4b":"505341004b455900000000000100000001100800010000000300000200000000010000004b" + +save alg2: MD5 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_MD5:"4c":"505341004b455900000000000100000001100800010000000000000003000002010000004c" + +save alg: OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000012c00400000000010000004b" + +save alg2: OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_OFB:"4c":"505341004b45590000000000010000000110080001000000000000000012c004010000004c" + +save alg: PBKDF2_AES_CMAC_PRF_128 +depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:0x0000:"4b":"505341004b455900000000000100000001100800010000000002800800000000010000004b" + +save alg2: PBKDF2_AES_CMAC_PRF_128 +depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:"4c":"505341004b455900000000000100000001100800010000000000000000028008010000004c" + +save alg: PBKDF2_HMAC(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301800800000000010000004b" + +save alg2: PBKDF2_HMAC(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003018008010000004c" + +save alg: PBKDF2_HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401800800000000010000004b" + +save alg2: PBKDF2_HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004018008010000004c" + +save alg: PBKDF2_HMAC(SHA_1) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501800800000000010000004b" + +save alg2: PBKDF2_HMAC(SHA_1) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005018008010000004c" + +save alg: PBKDF2_HMAC(SHA_224) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801800800000000010000004b" + +save alg2: PBKDF2_HMAC(SHA_224) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008018008010000004c" + +save alg: PBKDF2_HMAC(SHA_256) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901800800000000010000004b" + +save alg2: PBKDF2_HMAC(SHA_256) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009018008010000004c" + +save alg: PBKDF2_HMAC(SHA_384) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01800800000000010000004b" + +save alg2: PBKDF2_HMAC(SHA_384) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a018008010000004c" + +save alg: PBKDF2_HMAC(SHA_512) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01800800000000010000004b" + +save alg2: PBKDF2_HMAC(SHA_512) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b018008010000004c" + +save alg: PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PURE_EDDSA:0x0000:"4b":"505341004b455900000000000100000001100800010000000008000600000000010000004b" + +save alg2: PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PURE_EDDSA:"4c":"505341004b455900000000000100000001100800010000000000000000080006010000004c" + +save alg: RIPEMD160 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RIPEMD160:0x0000:"4b":"505341004b455900000000000100000001100800010000000400000200000000010000004b" + +save alg2: RIPEMD160 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RIPEMD160:"4c":"505341004b455900000000000100000001100800010000000000000004000002010000004c" + +save alg: RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000700000000010000004b" + +save alg2: RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030007010000004c" + +save alg: RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000700000000010000004b" + +save alg2: RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030007010000004c" + +save alg: RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000700000000010000004b" + +save alg2: RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030007010000004c" + +save alg: RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000700000000010000004b" + +save alg2: RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030007010000004c" + +save alg: RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000700000000010000004b" + +save alg2: RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030007010000004c" + +save alg: RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000700000000010000004b" + +save alg2: RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030007010000004c" + +save alg: RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000700000000010000004b" + +save alg2: RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030007010000004c" + +save alg: RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000700000000010000004b" + +save alg2: RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_CRYPT:"4c":"505341004b455900000000000100000001100800010000000000000000020007010000004c" + +save alg: RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020006010000004c" + +save alg: RSA_PKCS1V15_SIGN(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff02000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff020006010000004c" + +save alg: RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000600000000010000004b" + +save alg2: RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"4c":"505341004b455900000000000100000001100800010000000000000000020006010000004c" + +save alg: RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000600000000010000004b" + +save alg2: RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030006010000004c" + +save alg: RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000600000000010000004b" + +save alg2: RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030006010000004c" + +save alg: RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000600000000010000004b" + +save alg2: RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030006010000004c" + +save alg: RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000600000000010000004b" + +save alg2: RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030006010000004c" + +save alg: RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000600000000010000004b" + +save alg2: RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030006010000004c" + +save alg: RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000600000000010000004b" + +save alg2: RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030006010000004c" + +save alg: RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000600000000010000004b" + +save alg2: RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030006010000004c" + +save alg: RSA_PSS(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff03000600000000010000004b" + +save alg2: RSA_PSS(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff030006010000004c" + +save alg: RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000313000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003130006010000004c" + +save alg: RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000413000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004130006010000004c" + +save alg: RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000513000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005130006010000004c" + +save alg: RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000813000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008130006010000004c" + +save alg: RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000913000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009130006010000004c" + +save alg: RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a13000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a130006010000004c" + +save alg: RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b13000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b130006010000004c" + +save alg: RSA_PSS_ANY_SALT(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff13000600000000010000004b" + +save alg2: RSA_PSS_ANY_SALT(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff130006010000004c" + +save alg: SHA3_224 +depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_224:0x0000:"4b":"505341004b455900000000000100000001100800010000001000000200000000010000004b" + +save alg2: SHA3_224 +depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_224:"4c":"505341004b455900000000000100000001100800010000000000000010000002010000004c" + +save alg: SHA3_256 +depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_256:0x0000:"4b":"505341004b455900000000000100000001100800010000001100000200000000010000004b" + +save alg2: SHA3_256 +depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_256:"4c":"505341004b455900000000000100000001100800010000000000000011000002010000004c" + +save alg: SHA3_384 +depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_384:0x0000:"4b":"505341004b455900000000000100000001100800010000001200000200000000010000004b" + +save alg2: SHA3_384 +depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_384:"4c":"505341004b455900000000000100000001100800010000000000000012000002010000004c" + +save alg: SHA3_512 +depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001300000200000000010000004b" + +save alg2: SHA3_512 +depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_512:"4c":"505341004b455900000000000100000001100800010000000000000013000002010000004c" + +save alg: SHAKE256_512 +depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHAKE256_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001500000200000000010000004b" + +save alg2: SHAKE256_512 +depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHAKE256_512:"4c":"505341004b455900000000000100000001100800010000000000000015000002010000004c" + +save alg: SHA_1 +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_1:0x0000:"4b":"505341004b455900000000000100000001100800010000000500000200000000010000004b" + +save alg2: SHA_1 +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_1:"4c":"505341004b455900000000000100000001100800010000000000000005000002010000004c" + +save alg: SHA_224 +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000800000200000000010000004b" + +save alg2: SHA_224 +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_224:"4c":"505341004b455900000000000100000001100800010000000000000008000002010000004c" + +save alg: SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000900000200000000010000004b" + +save alg2: SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_256:"4c":"505341004b455900000000000100000001100800010000000000000009000002010000004c" + +save alg: SHA_384 +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_384:0x0000:"4b":"505341004b455900000000000100000001100800010000000a00000200000000010000004b" + +save alg2: SHA_384 +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_384:"4c":"505341004b45590000000000010000000110080001000000000000000a000002010000004c" + +save alg: SHA_512 +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512:0x0000:"4b":"505341004b455900000000000100000001100800010000000b00000200000000010000004b" + +save alg2: SHA_512 +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512:"4c":"505341004b45590000000000010000000110080001000000000000000b000002010000004c" + +save alg: SHA_512_224 +depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000c00000200000000010000004b" + +save alg2: SHA_512_224 +depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_224:"4c":"505341004b45590000000000010000000110080001000000000000000c000002010000004c" + +save alg: SHA_512_256 +depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000d00000200000000010000004b" + +save alg2: SHA_512_256 +depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_256:"4c":"505341004b45590000000000010000000110080001000000000000000d000002010000004c" + +save alg: STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"4b":"505341004b455900000000000100000001100800010000000001800400000000010000004b" + +save alg2: STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_STREAM_CIPHER:"4c":"505341004b455900000000000100000001100800010000000000000000018004010000004c" + +save alg: TLS12_ECJPAKE_TO_PMS +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_ECJPAKE_TO_PMS:0x0000:"4b":"505341004b455900000000000100000001100800010000000906000800000000010000004b" + +save alg2: TLS12_ECJPAKE_TO_PMS +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_ECJPAKE_TO_PMS:"4c":"505341004b455900000000000100000001100800010000000000000009060008010000004c" + +save alg: TLS12_PRF(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000800000000010000004b" + +save alg2: TLS12_PRF(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020008010000004c" + +save alg: TLS12_PRF(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000800000000010000004b" + +save alg2: TLS12_PRF(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020008010000004c" + +save alg: TLS12_PRF(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000800000000010000004b" + +save alg2: TLS12_PRF(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020008010000004c" + +save alg: TLS12_PRF(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000800000000010000004b" + +save alg2: TLS12_PRF(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020008010000004c" + +save alg: TLS12_PRF(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000800000000010000004b" + +save alg2: TLS12_PRF(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020008010000004c" + +save alg: TLS12_PRF(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000800000000010000004b" + +save alg2: TLS12_PRF(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020008010000004c" + +save alg: TLS12_PRF(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000800000000010000004b" + +save alg2: TLS12_PRF(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020008010000004c" + +save alg: TLS12_PSK2MS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000800000000010000004b" + +save alg2: TLS12_PSK2MS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030008010000004c" + +save alg: TLS12_PSK2MS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000800000000010000004b" + +save alg2: TLS12_PSK2MS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030008010000004c" + +save alg: TLS12_PSK2MS(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000800000000010000004b" + +save alg2: TLS12_PSK2MS(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030008010000004c" + +save alg: TLS12_PSK2MS(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000800000000010000004b" + +save alg2: TLS12_PSK2MS(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030008010000004c" + +save alg: TLS12_PSK2MS(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000800000000010000004b" + +save alg2: TLS12_PSK2MS(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030008010000004c" + +save alg: TLS12_PSK2MS(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000800000000010000004b" + +save alg2: TLS12_PSK2MS(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030008010000004c" + +save alg: TLS12_PSK2MS(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000800000000010000004b" + +save alg2: TLS12_PSK2MS(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030008010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c10300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000001c103010000004c" + +save alg: TRUNCATED_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002c10300000000010000004b" + +save alg2: TRUNCATED_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000002c103010000004c" + +save alg: TRUNCATED_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000300810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000400810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000800810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000900810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a008103010000004c" + +save alg: TRUNCATED_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00810300000000010000004b" + +save alg2: TRUNCATED_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b008103010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c40300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000001c403010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000001cd0300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000001cd03010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ce0300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000001ce03010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001d00300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000001d003010000004c" + +save alg: TRUNCATED_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ff0300000000010000004b" + +save alg2: TRUNCATED_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000001ff03010000004c" + +save alg: XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"4b":"505341004b4559000000000001000000011008000100000000ff400400000000010000004b" + +save alg2: XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_XTS:"4c":"505341004b455900000000000100000001100800010000000000000000ff4004010000004c" + +# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_storage_format.v0.data b/tests/suites/test_suite_psa_crypto_storage_format.v0.data new file mode 100644 index 000000000..e097f40e6 --- /dev/null +++ b/tests/suites/test_suite_psa_crypto_storage_format.v0.data @@ -0,0 +1,8395 @@ +# Automatically generated by generate_psa_tests.py. Do not edit! + +read lifetime: (DEFAULT,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_DEFAULT, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c":0 + +read lifetime: (READ_ONLY,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_READ_ONLY, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000ff00000001100800010000000000000000000000010000004c":TEST_FLAG_READ_ONLY + +read lifetime: (2,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(2, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000200000001100800010000000000000000000000010000004c":0 + +read lifetime: (254,LOCAL_STORAGE) +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(254, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000fe00000001100800010000000000000000000000010000004c":0 + +read lifetime: PERSISTENT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:PSA_KEY_LIFETIME_PERSISTENT:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c":0 + +read usage without implication: 0 +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b":0 + +read usage without implication: COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b":0 + +read usage without implication: DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b":0 + +read usage without implication: DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b":0 + +read usage without implication: ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b":0 + +read usage without implication: EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b":0 + +read usage without implication: SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 + +read usage without implication: SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b":0 + +read usage without implication: VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b":0 + +read usage without implication: VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 + +read usage without implication: VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b":0 + +read usage without implication: COPY|DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b":0 + +read usage without implication: DECRYPT|DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b":0 + +read usage without implication: DERIVE|ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b":0 + +read usage without implication: ENCRYPT|EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b":0 + +read usage without implication: EXPORT|SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011400000000000000000000010000004b":0 + +read usage without implication: SIGN_HASH|SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 + +read usage without implication: SIGN_MESSAGE|VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b":0 + +read usage without implication: VERIFY_DERIVATION|VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a800000000000000000000010000004b":0 + +read usage without implication: VERIFY_HASH|VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 + +read usage without implication: VERIFY_MESSAGE|COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b":0 + +read usage without implication: all known +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080003ff00000000000000000000010000004b":0 + +read usage: 0 +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b":0 + +read usage: COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b":0 + +read usage: DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b":0 + +read usage: DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b":0 + +read usage: ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b":0 + +read usage: EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b":0 + +read usage: SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001000000000000000000000010000004b":0 + +read usage: SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b":0 + +read usage: VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b":0 + +read usage: VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002000000000000000000000010000004b":0 + +read usage: VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b":0 + +read usage: COPY|DECRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b":0 + +read usage: DECRYPT|DERIVE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b":0 + +read usage: DERIVE|ENCRYPT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b":0 + +read usage: ENCRYPT|EXPORT +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b":0 + +read usage: EXPORT|SIGN_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011000000000000000000000010000004b":0 + +read usage: SIGN_HASH|SIGN_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 + +read usage: SIGN_MESSAGE|VERIFY_DERIVATION +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b":0 + +read usage: VERIFY_DERIVATION|VERIFY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a000000000000000000000010000004b":0 + +read usage: VERIFY_HASH|VERIFY_MESSAGE +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 + +read usage: VERIFY_MESSAGE|COPY +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b":0 + +read type: AES 128-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000002c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000012c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 192-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000002c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000012c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: AES 256-bit +depends_on:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000002c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000012c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: AES 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES +key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: ARIA 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA +key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 128-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 192-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit +depends_on:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CAMELLIA 256-bit, XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA +key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CHACHA20 256-bit +depends_on:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CHACHA20 256-bit, CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000051005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: CHACHA20 256-bit, STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 +key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000018004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: DERIVE 120-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +key_storage_read:0x0001:PSA_KEY_TYPE_DERIVE:120:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174":"505341004b4559000000000001000000001278000100000000000000000000000f00000048657265006973206b6579a0646174":TEST_FLAG_EXERCISE + +read type: DERIVE 128-bit +depends_on:PSA_WANT_KEY_TYPE_DERIVE +key_storage_read:0x0001:PSA_KEY_TYPE_DERIVE:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: DES 64-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001000000000000000000000008000000644573206b457901":TEST_FLAG_EXERCISE + +read type: DES 64-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004040040000000008000000644573206b457901":TEST_FLAG_EXERCISE + +read type: DES 64-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004140040000000008000000644573206b457901":TEST_FLAG_EXERCISE + +read type: DES 64-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004440040000000008000000644573206b457901":TEST_FLAG_EXERCISE + +read type: DES 128-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001000000000000000000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE + +read type: DES 128-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004040040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE + +read type: DES 128-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004140040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE + +read type: DES 128-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004440040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE + +read type: DES 192-bit +depends_on:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001000000000000000000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE + +read type: DES 192-bit, CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004040040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE + +read type: DES 192-bit, CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004140040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE + +read type: DES 192-bit, ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES +key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004440040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000100000000000000000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000000000209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000000060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read type: ECC_PAIR(BP_R1) 192-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000010000000000000000000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000307000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000407000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000507000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000807000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000907000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000000020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000306000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000406000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000506000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000806000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000906000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000006000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000901020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a01020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000905020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a05020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000904020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a04020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000902020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a02020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000903020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a03020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 + +read type: ECC_PAIR(BP_R1) 224-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000100000000000000000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000000000209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000000060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 + +read type: ECC_PAIR(BP_R1) 256-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001010000000000000000000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000307000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000407000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000507000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000807000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000907000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000000020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000306000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000406000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000506000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000806000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000906000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000006000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000901020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a01020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000905020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a05020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000904020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a04020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000902020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a02020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000903020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a03020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 + +read type: ECC_PAIR(BP_R1) 320-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010100000000000000000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000000000209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000000060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 + +read type: ECC_PAIR(BP_R1) 384-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001010000000000000000000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000307000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000407000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000507000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000807000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000907000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000000020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000306000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000406000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000506000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000806000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000906000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000006000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000901020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a01020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000905020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a05020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000904020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a04020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000902020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a02020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000903020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a03020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 + +read type: ECC_PAIR(BP_R1) 512-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201000000000000000000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000000002090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000000600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 + +read type: ECC_PAIR(MGM) 255-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000100000000000000000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000000000209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101000000000000000000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000000002090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001000000000000000000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000000002090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000000600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit +depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000100000000000000000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000000000209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000000060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit +depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001010000000000000000000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000307000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000407000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000507000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000807000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000907000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000000020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000306000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000406000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000506000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000806000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000906000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000006000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000901020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a01020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000905020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a05020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000904020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a04020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000902020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a02020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000903020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a03020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000100000000000000000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000000000209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000000060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit +depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010100000000000000000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000000000209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000000060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit +depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001010000000000000000000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000307000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000407000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000507000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000807000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000907000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000000020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000306000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000406000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000506000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000806000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000906000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000006000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000901020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a01020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000905020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a05020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000904020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a04020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000902020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a02020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000903020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a03020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit +depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020100000000000000000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000000000209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000000060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000100000000000000000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000000000209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000000060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000100000000000000000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000000000209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000000060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit +depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000100000000000000000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000000000209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000000060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit +depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000100000000000000000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000000000209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000000060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit +depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101000000000000000000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000000002090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000000600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit +depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901010000000000000000000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000307000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000407000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000507000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000807000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000907000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000000020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000306000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000406000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000506000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000806000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000906000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000006000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000901020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a01020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000905020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a05020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000904020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a04020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000902020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a02020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000903020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a03020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit +depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201000000000000000000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000000002090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000000600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001000000000000000000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000000002090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000000600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit +depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000100000000000000000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000000000209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000000060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit +depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101000000000000000000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000000002090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000000600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit +depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010100000000000000000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000000000209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000000060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit +depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201000000000000000000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000000002090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000000600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300010000000000000000000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000307000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000407000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000507000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000807000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000000020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000306000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000406000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000506000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000806000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000006000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000901020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a01020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000905020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a05020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000904020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a04020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000902020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a02020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000903020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a03020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00010000000000000000000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000008000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001010000000000000000000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000b09000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00001509000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE + +read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000008000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 160-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000100000000000000000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read type: ECC_PUB(BP_R1) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000000060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 192-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001000000000000000000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 + +read type: ECC_PUB(BP_R1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000000600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 224-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001000000000000000000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 + +read type: ECC_PUB(BP_R1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000000600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 256-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010100000000000000000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 + +read type: ECC_PUB(BP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000000060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 320-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101000000000000000000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 + +read type: ECC_PUB(BP_R1) 320-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000000600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 384-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010100000000000000000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 + +read type: ECC_PUB(BP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000000060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(BP_R1) 512-bit +depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002010000000000000000000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000307000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000407000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000507000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000807000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000907000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000306000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000406000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000506000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000806000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000906000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 + +read type: ECC_PUB(BP_R1) 512-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000006000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(MGM) 255-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":"505341004b45590000000000010000004141ff00010000000000000000000000200000008520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(MGM) 448-bit +depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":"505341004b45590000000000010000004141c00101000000000000000000000038000000c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit +depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000010000000000000000000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000307000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000407000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000507000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000807000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000306000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000406000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000506000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000806000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 192-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000006000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit +depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001000000000000000000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 224-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000000600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit +depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101000000000000000000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_K1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000000600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit +depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001000000000000000000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 225-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000000600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit +depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101000000000000000000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 256-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000000600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit +depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010100000000000000000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 384-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000000060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit +depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020100000000000000000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R1) 521-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000000060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit +depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001000000000000000000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECP_R2) 160-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000000600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit +depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000100000000000000000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000000060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit +depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000100000000000000000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000000060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit +depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000100000000000000000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 239-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000000060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit +depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01010000000000000000000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000307000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000407000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000507000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000807000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000907000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000306000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000406000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000506000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000806000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000906000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000006000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit +depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010100000000000000000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000000060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit +depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020100000000000000000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_K1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000000060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit +depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000100000000000000000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000000060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit +depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000100000000000000000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 233-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000000060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit +depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010100000000000000000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 283-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000000060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit +depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901010000000000000000000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000307000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000407000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000507000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000807000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000907000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000306000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000406000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000506000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000806000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000906000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 409-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000006000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit +depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201000000000000000000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R1) 571-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000000600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit +depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000100000000000000000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(SECT_R2) 163-bit, ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000000060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001000000000000000000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012800000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000000800060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 448-bit +depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001010000000000000000000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000b09000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800001509000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE + +read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000008000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 128-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a0000100000000000000000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000003008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000004008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000005008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000008008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000009008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000a008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 160-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000b008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e0000100000000000000000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000003008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000004008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000005008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000008008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000009008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000a008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 224-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000b008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000003008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000004008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000005008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000008008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000009008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000a008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 256-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000b008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001180010100000000000000000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000003008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000004008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000005008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000008008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000009008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000a008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 384-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000b008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit +depends_on:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100020100000000000000000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000003008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000004008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000005008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000008008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000009008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000a008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: HMAC 512-bit, HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000b008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: PASSWORD 48-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:48:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"486572650069":"505341004b45590000000000010000000312300001000000000000000000000006000000486572650069":TEST_FLAG_EXERCISE + +read type: PASSWORD 168-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:168:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500":"505341004b45590000000000010000000312a8000100000000000000000000001500000048657265006973206b6579a0646174614865726500":TEST_FLAG_EXERCISE + +read type: PASSWORD 336-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD +key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:336:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":"505341004b4559000000000001000000031250010100000000000000000000002a00000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":TEST_FLAG_EXERCISE + +read type: PASSWORD_HASH 128-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000051280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: PASSWORD_HASH 256-bit +depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH +key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000051200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: PEPPER 128-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER +key_storage_read:0x0001:PSA_KEY_TYPE_PEPPER:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000061280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: PEPPER 256-bit +depends_on:PSA_WANT_KEY_TYPE_PEPPER +key_storage_read:0x0001:PSA_KEY_TYPE_PEPPER:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000061200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read type: RAW_DATA 8-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48":"505341004b4559000000000001000000011008000100000000000000000000000100000048":0 + +read type: RAW_DATA 40-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:40:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4865726500":"505341004b455900000000000100000001102800010000000000000000000000050000004865726500":0 + +read type: RAW_DATA 128-bit +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000011080000100000000000000000000001000000048657265006973206b6579a064617461":0 + +read type: RSA_PAIR 1024-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010000000000000000000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000303000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000403000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000503000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000803000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000903000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000a03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000b03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0 + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000002000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000302000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000402000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000502000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000802000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000002000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000303000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000403000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000503000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000803000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000313000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000413000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000513000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000813000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000913000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060100000000000000000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000003030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000004030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000005030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000008030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000009030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000a030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000b030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000000020007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000000020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040100000000000000000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000003030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000004030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000005030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000008030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000009030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000a030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000b030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":0 + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000000020007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000000020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit +depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010000000000000000000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000303000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000403000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000503000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000803000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000903000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000a03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000b03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000002000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000302000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000402000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000502000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000802000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000902000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000002000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000303000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000403000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000503000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000803000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000903000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000313000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000413000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000513000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000813000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000913000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081410500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000814105010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000085010500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000850105010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082410500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000824105010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081440500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000814405010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814d0500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000814d05010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814e0500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000814e05010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081500500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000815005010000004c":0 + +read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000817f0500000000010000004b":0 + +read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000817f05010000004c":0 + +read alg: AEAD_SHORT(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001410500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,1) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000014105010000004c":0 + +read alg: AEAD_SHORT(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000005010500000000010000004b":0 + +read alg2: AEAD_SHORT(CHACHA20_POLY1305,1) +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000050105010000004c":0 + +read alg: AEAD_SHORT(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002410500000000010000004b":0 + +read alg2: AEAD_SHORT(GCM,1) +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000024105010000004c":0 + +read alg: AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001440500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,4) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000014405010000004c":0 + +read alg: AEAD_SHORT(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014d0500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,13) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000014d05010000004c":0 + +read alg: AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014e0500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,14) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000014e05010000004c":0 + +read alg: AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,16) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c":0 + +read alg: AEAD_SHORT(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000017f0500000000010000004b":0 + +read alg2: AEAD_SHORT(CCM,63) +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000017f05010000004c":0 + +read alg: ANY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ANY_HASH:0x0000:"4b":"505341004b45590000000000010000000110080001000000ff00000200000000010000004b":0 + +read alg2: ANY_HASH +depends_on:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ANY_HASH:"4c":"505341004b4559000000000001000000011008000100000000000000ff000002010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c10300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000081c103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082c10300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000082c103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000380810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000480810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000580810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000880810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000980810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a80810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b80810300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b808103010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c40300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000081c403010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000081cd0300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000081cd03010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ce0300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000081ce03010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081d00300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000081d003010000004c":0 + +read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ff0300000000010000004b":0 + +read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000081ff03010000004c":0 + +read alg: CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_MAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000001c00300000000010000004b":0 + +read alg2: CBC_MAC +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_MAC:"4c":"505341004b45590000000000010000000110080001000000000000000001c003010000004c":0 + +read alg: CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000040400400000000010000004b":0 + +read alg2: CBC_NO_PADDING +depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000404004010000004c":0 + +read alg: CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"4b":"505341004b455900000000000100000001100800010000000041400400000000010000004b":0 + +read alg2: CBC_PKCS7 +depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_PKCS7:"4c":"505341004b455900000000000100000001100800010000000000000000414004010000004c":0 + +read alg: CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b":0 + +read alg2: CCM +depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM:"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c":0 + +read alg: CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"4b":"505341004b455900000000000100000001100800010000000013c00400000000010000004b":0 + +read alg2: CCM_STAR_NO_TAG +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM_STAR_NO_TAG:"4c":"505341004b45590000000000010000000110080001000000000000000013c004010000004c":0 + +read alg: CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000011c00400000000010000004b":0 + +read alg2: CFB +depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CFB:"4c":"505341004b45590000000000010000000110080001000000000000000011c004010000004c":0 + +read alg: CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"4b":"505341004b455900000000000100000001100800010000000005100500000000010000004b":0 + +read alg2: CHACHA20_POLY1305 +depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CHACHA20_POLY1305:"4c":"505341004b455900000000000100000001100800010000000000000000051005010000004c":0 + +read alg: CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CMAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000002c00300000000010000004b":0 + +read alg2: CMAC +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CMAC:"4c":"505341004b45590000000000010000000110080001000000000000000002c003010000004c":0 + +read alg: CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"4b":"505341004b455900000000000100000001100800010000000010c00400000000010000004b":0 + +read alg2: CTR +depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CTR:"4c":"505341004b45590000000000010000000110080001000000000000000010c004010000004c":0 + +read alg: DET_DSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000600000000010000004b":0 + +read alg2: DET_DSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050006010000004c":0 + +read alg: DET_DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000600000000010000004b":0 + +read alg2: DET_DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050006010000004c":0 + +read alg: DET_DSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000600000000010000004b":0 + +read alg2: DET_DSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050006010000004c":0 + +read alg: DET_DSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000600000000010000004b":0 + +read alg2: DET_DSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050006010000004c":0 + +read alg: DET_DSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000600000000010000004b":0 + +read alg2: DET_DSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050006010000004c":0 + +read alg: DET_DSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000600000000010000004b":0 + +read alg2: DET_DSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050006010000004c":0 + +read alg: DET_DSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000600000000010000004b":0 + +read alg2: DET_DSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050006010000004c":0 + +read alg: DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000307000600000000010000004b":0 + +read alg2: DET_ECDSA(MD5) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003070006010000004c":0 + +read alg: DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000407000600000000010000004b":0 + +read alg2: DET_ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004070006010000004c":0 + +read alg: DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000507000600000000010000004b":0 + +read alg2: DET_ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005070006010000004c":0 + +read alg: DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000807000600000000010000004b":0 + +read alg2: DET_ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008070006010000004c":0 + +read alg: DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000907000600000000010000004b":0 + +read alg2: DET_ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009070006010000004c":0 + +read alg: DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a07000600000000010000004b":0 + +read alg2: DET_ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a070006010000004c":0 + +read alg: DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b07000600000000010000004b":0 + +read alg2: DET_ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b070006010000004c":0 + +read alg: DET_ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff07000600000000010000004b":0 + +read alg2: DET_ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff070006010000004c":0 + +read alg: DSA(MD5) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000600000000010000004b":0 + +read alg2: DSA(MD5) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040006010000004c":0 + +read alg: DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000600000000010000004b":0 + +read alg2: DSA(RIPEMD160) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040006010000004c":0 + +read alg: DSA(SHA_1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000600000000010000004b":0 + +read alg2: DSA(SHA_1) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040006010000004c":0 + +read alg: DSA(SHA_224) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000600000000010000004b":0 + +read alg2: DSA(SHA_224) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040006010000004c":0 + +read alg: DSA(SHA_256) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000600000000010000004b":0 + +read alg2: DSA(SHA_256) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040006010000004c":0 + +read alg: DSA(SHA_384) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000600000000010000004b":0 + +read alg2: DSA(SHA_384) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040006010000004c":0 + +read alg: DSA(SHA_512) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000600000000010000004b":0 + +read alg2: DSA(SHA_512) +depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040006010000004c":0 + +read alg: ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000044400400000000010000004b":0 + +read alg2: ECB_NO_PADDING +depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECB_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000444004010000004c":0 + +read alg: ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000020900000000010000004b":0 + +read alg2: ECDH +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDH:"4c":"505341004b455900000000000100000001100800010000000000000000000209010000004c":0 + +read alg: ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000306000600000000010000004b":0 + +read alg2: ECDSA(MD5) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003060006010000004c":0 + +read alg: ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000406000600000000010000004b":0 + +read alg2: ECDSA(RIPEMD160) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004060006010000004c":0 + +read alg: ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000506000600000000010000004b":0 + +read alg2: ECDSA(SHA_1) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005060006010000004c":0 + +read alg: ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000806000600000000010000004b":0 + +read alg2: ECDSA(SHA_224) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008060006010000004c":0 + +read alg: ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000906000600000000010000004b":0 + +read alg2: ECDSA(SHA_256) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009060006010000004c":0 + +read alg: ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a06000600000000010000004b":0 + +read alg2: ECDSA(SHA_384) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a060006010000004c":0 + +read alg: ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b06000600000000010000004b":0 + +read alg2: ECDSA(SHA_512) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b060006010000004c":0 + +read alg: ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff06000600000000010000004b":0 + +read alg2: ECDSA(ANY_HASH) +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff060006010000004c":0 + +read alg: ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA_ANY:0x0000:"4b":"505341004b455900000000000100000001100800010000000006000600000000010000004b":0 + +read alg2: ECDSA_ANY +depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA_ANY:"4c":"505341004b455900000000000100000001100800010000000000000000060006010000004c":0 + +read alg: ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED25519PH:0x0000:"4b":"505341004b455900000000000100000001100800010000000b09000600000000010000004b":0 + +read alg2: ED25519PH +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED25519PH:"4c":"505341004b45590000000000010000000110080001000000000000000b090006010000004c":0 + +read alg: ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED448PH:0x0000:"4b":"505341004b455900000000000100000001100800010000001509000600000000010000004b":0 + +read alg2: ED448PH +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED448PH:"4c":"505341004b455900000000000100000001100800010000000000000015090006010000004c":0 + +read alg: FFDH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_FFDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000010900000000010000004b":0 + +read alg2: FFDH +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_FFDH:"4c":"505341004b455900000000000100000001100800010000000000000000000109010000004c":0 + +read alg: GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000002500500000000010000004b":0 + +read alg2: GCM +depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_GCM:"4c":"505341004b455900000000000100000001100800010000000000000000025005010000004c":0 + +read alg: HKDF(MD5) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301000800000000010000004b":0 + +read alg2: HKDF(MD5) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003010008010000004c":0 + +read alg: HKDF(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401000800000000010000004b":0 + +read alg2: HKDF(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004010008010000004c":0 + +read alg: HKDF(SHA_1) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501000800000000010000004b":0 + +read alg2: HKDF(SHA_1) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005010008010000004c":0 + +read alg: HKDF(SHA_224) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801000800000000010000004b":0 + +read alg2: HKDF(SHA_224) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008010008010000004c":0 + +read alg: HKDF(SHA_256) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901000800000000010000004b":0 + +read alg2: HKDF(SHA_256) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009010008010000004c":0 + +read alg: HKDF(SHA_384) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01000800000000010000004b":0 + +read alg2: HKDF(SHA_384) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a010008010000004c":0 + +read alg: HKDF(SHA_512) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01000800000000010000004b":0 + +read alg2: HKDF(SHA_512) +depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b010008010000004c":0 + +read alg: HKDF_EXPAND(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000800000000010000004b":0 + +read alg2: HKDF_EXPAND(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050008010000004c":0 + +read alg: HKDF_EXPAND(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000800000000010000004b":0 + +read alg2: HKDF_EXPAND(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050008010000004c":0 + +read alg: HKDF_EXPAND(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000800000000010000004b":0 + +read alg2: HKDF_EXPAND(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050008010000004c":0 + +read alg: HKDF_EXPAND(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000800000000010000004b":0 + +read alg2: HKDF_EXPAND(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050008010000004c":0 + +read alg: HKDF_EXPAND(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000800000000010000004b":0 + +read alg2: HKDF_EXPAND(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050008010000004c":0 + +read alg: HKDF_EXPAND(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000800000000010000004b":0 + +read alg2: HKDF_EXPAND(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050008010000004c":0 + +read alg: HKDF_EXPAND(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000800000000010000004b":0 + +read alg2: HKDF_EXPAND(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050008010000004c":0 + +read alg: HKDF_EXTRACT(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(MD5) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040008010000004c":0 + +read alg: HKDF_EXTRACT(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(RIPEMD160) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040008010000004c":0 + +read alg: HKDF_EXTRACT(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(SHA_1) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040008010000004c":0 + +read alg: HKDF_EXTRACT(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(SHA_224) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040008010000004c":0 + +read alg: HKDF_EXTRACT(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(SHA_256) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040008010000004c":0 + +read alg: HKDF_EXTRACT(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(SHA_384) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040008010000004c":0 + +read alg: HKDF_EXTRACT(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000800000000010000004b":0 + +read alg2: HKDF_EXTRACT(SHA_512) +depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040008010000004c":0 + +read alg: HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000300800300000000010000004b":0 + +read alg2: HMAC(MD5) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003008003010000004c":0 + +read alg: HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000400800300000000010000004b":0 + +read alg2: HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004008003010000004c":0 + +read alg: HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500800300000000010000004b":0 + +read alg2: HMAC(SHA_1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005008003010000004c":0 + +read alg: HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000800800300000000010000004b":0 + +read alg2: HMAC(SHA_224) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008008003010000004c":0 + +read alg: HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000900800300000000010000004b":0 + +read alg2: HMAC(SHA_256) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009008003010000004c":0 + +read alg: HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00800300000000010000004b":0 + +read alg2: HMAC(SHA_384) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a008003010000004c":0 + +read alg: HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00800300000000010000004b":0 + +read alg2: HMAC(SHA_512) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b008003010000004c":0 + +read alg: JPAKE +depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_JPAKE:0x0000:"4b":"505341004b455900000000000100000001100800010000000001000a00000000010000004b":0 + +read alg2: JPAKE +depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_JPAKE:"4c":"505341004b45590000000000010000000110080001000000000000000001000a010000004c":0 + +read alg: KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010209010000004c":0 + +read alg: KA(FFDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901010900000000010000004b":0 + +read alg2: KA(FFDH,HKDF(SHA_256)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010109010000004c":0 + +read alg: KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010209010000004c":0 + +read alg: KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000905020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF_EXPAND(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009050209010000004c":0 + +read alg: KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF_EXPAND(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a050209010000004c":0 + +read alg: KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000904020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF_EXTRACT(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009040209010000004c":0 + +read alg: KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04020900000000010000004b":0 + +read alg2: KA(ECDH,HKDF_EXTRACT(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a040209010000004c":0 + +read alg: KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000902020900000000010000004b":0 + +read alg2: KA(ECDH,TLS12_PRF(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009020209010000004c":0 + +read alg: KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02020900000000010000004b":0 + +read alg2: KA(ECDH,TLS12_PRF(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a020209010000004c":0 + +read alg: KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000903020900000000010000004b":0 + +read alg2: KA(ECDH,TLS12_PSK2MS(SHA_256)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009030209010000004c":0 + +read alg: KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03020900000000010000004b":0 + +read alg2: KA(ECDH,TLS12_PSK2MS(SHA_384)) +depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a030209010000004c":0 + +read alg: KA(FFDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01010900000000010000004b":0 + +read alg2: KA(FFDH,HKDF(SHA_384)) +depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010109010000004c":0 + +read alg: MD5 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_MD5:0x0000:"4b":"505341004b455900000000000100000001100800010000000300000200000000010000004b":0 + +read alg2: MD5 +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_MD5:"4c":"505341004b455900000000000100000001100800010000000000000003000002010000004c":0 + +read alg: OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000012c00400000000010000004b":0 + +read alg2: OFB +depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_OFB:"4c":"505341004b45590000000000010000000110080001000000000000000012c004010000004c":0 + +read alg: PBKDF2_AES_CMAC_PRF_128 +depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:0x0000:"4b":"505341004b455900000000000100000001100800010000000002800800000000010000004b":0 + +read alg2: PBKDF2_AES_CMAC_PRF_128 +depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:"4c":"505341004b455900000000000100000001100800010000000000000000028008010000004c":0 + +read alg: PBKDF2_HMAC(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003018008010000004c":0 + +read alg: PBKDF2_HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(RIPEMD160) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004018008010000004c":0 + +read alg: PBKDF2_HMAC(SHA_1) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(SHA_1) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005018008010000004c":0 + +read alg: PBKDF2_HMAC(SHA_224) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(SHA_224) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008018008010000004c":0 + +read alg: PBKDF2_HMAC(SHA_256) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(SHA_256) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009018008010000004c":0 + +read alg: PBKDF2_HMAC(SHA_384) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(SHA_384) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a018008010000004c":0 + +read alg: PBKDF2_HMAC(SHA_512) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01800800000000010000004b":0 + +read alg2: PBKDF2_HMAC(SHA_512) +depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b018008010000004c":0 + +read alg: PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PURE_EDDSA:0x0000:"4b":"505341004b455900000000000100000001100800010000000008000600000000010000004b":0 + +read alg2: PURE_EDDSA +depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PURE_EDDSA:"4c":"505341004b455900000000000100000001100800010000000000000000080006010000004c":0 + +read alg: RIPEMD160 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RIPEMD160:0x0000:"4b":"505341004b455900000000000100000001100800010000000400000200000000010000004b":0 + +read alg2: RIPEMD160 +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RIPEMD160:"4c":"505341004b455900000000000100000001100800010000000000000004000002010000004c":0 + +read alg: RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000700000000010000004b":0 + +read alg2: RSA_OAEP(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030007010000004c":0 + +read alg: RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000700000000010000004b":0 + +read alg2: RSA_OAEP(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030007010000004c":0 + +read alg: RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000700000000010000004b":0 + +read alg2: RSA_OAEP(SHA_1) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030007010000004c":0 + +read alg: RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000700000000010000004b":0 + +read alg2: RSA_OAEP(SHA_224) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030007010000004c":0 + +read alg: RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000700000000010000004b":0 + +read alg2: RSA_OAEP(SHA_256) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030007010000004c":0 + +read alg: RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000700000000010000004b":0 + +read alg2: RSA_OAEP(SHA_384) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030007010000004c":0 + +read alg: RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000700000000010000004b":0 + +read alg2: RSA_OAEP(SHA_512) +depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030007010000004c":0 + +read alg: RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000700000000010000004b":0 + +read alg2: RSA_PKCS1V15_CRYPT +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_CRYPT:"4c":"505341004b455900000000000100000001100800010000000000000000020007010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff02000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff020006010000004c":0 + +read alg: RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000600000000010000004b":0 + +read alg2: RSA_PKCS1V15_SIGN_RAW +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"4c":"505341004b455900000000000100000001100800010000000000000000020006010000004c":0 + +read alg: RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000600000000010000004b":0 + +read alg2: RSA_PSS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030006010000004c":0 + +read alg: RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000600000000010000004b":0 + +read alg2: RSA_PSS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030006010000004c":0 + +read alg: RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000600000000010000004b":0 + +read alg2: RSA_PSS(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030006010000004c":0 + +read alg: RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000600000000010000004b":0 + +read alg2: RSA_PSS(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030006010000004c":0 + +read alg: RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000600000000010000004b":0 + +read alg2: RSA_PSS(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030006010000004c":0 + +read alg: RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000600000000010000004b":0 + +read alg2: RSA_PSS(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030006010000004c":0 + +read alg: RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000600000000010000004b":0 + +read alg2: RSA_PSS(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030006010000004c":0 + +read alg: RSA_PSS(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff03000600000000010000004b":0 + +read alg2: RSA_PSS(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff030006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000313000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000413000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000513000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(SHA_1) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000813000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(SHA_224) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000913000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(SHA_256) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a13000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(SHA_384) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b13000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(SHA_512) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b130006010000004c":0 + +read alg: RSA_PSS_ANY_SALT(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff13000600000000010000004b":0 + +read alg2: RSA_PSS_ANY_SALT(ANY_HASH) +depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff130006010000004c":0 + +read alg: SHA3_224 +depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_224:0x0000:"4b":"505341004b455900000000000100000001100800010000001000000200000000010000004b":0 + +read alg2: SHA3_224 +depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_224:"4c":"505341004b455900000000000100000001100800010000000000000010000002010000004c":0 + +read alg: SHA3_256 +depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_256:0x0000:"4b":"505341004b455900000000000100000001100800010000001100000200000000010000004b":0 + +read alg2: SHA3_256 +depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_256:"4c":"505341004b455900000000000100000001100800010000000000000011000002010000004c":0 + +read alg: SHA3_384 +depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_384:0x0000:"4b":"505341004b455900000000000100000001100800010000001200000200000000010000004b":0 + +read alg2: SHA3_384 +depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_384:"4c":"505341004b455900000000000100000001100800010000000000000012000002010000004c":0 + +read alg: SHA3_512 +depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001300000200000000010000004b":0 + +read alg2: SHA3_512 +depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_512:"4c":"505341004b455900000000000100000001100800010000000000000013000002010000004c":0 + +read alg: SHAKE256_512 +depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHAKE256_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001500000200000000010000004b":0 + +read alg2: SHAKE256_512 +depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHAKE256_512:"4c":"505341004b455900000000000100000001100800010000000000000015000002010000004c":0 + +read alg: SHA_1 +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_1:0x0000:"4b":"505341004b455900000000000100000001100800010000000500000200000000010000004b":0 + +read alg2: SHA_1 +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_1:"4c":"505341004b455900000000000100000001100800010000000000000005000002010000004c":0 + +read alg: SHA_224 +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000800000200000000010000004b":0 + +read alg2: SHA_224 +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_224:"4c":"505341004b455900000000000100000001100800010000000000000008000002010000004c":0 + +read alg: SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000900000200000000010000004b":0 + +read alg2: SHA_256 +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_256:"4c":"505341004b455900000000000100000001100800010000000000000009000002010000004c":0 + +read alg: SHA_384 +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_384:0x0000:"4b":"505341004b455900000000000100000001100800010000000a00000200000000010000004b":0 + +read alg2: SHA_384 +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_384:"4c":"505341004b45590000000000010000000110080001000000000000000a000002010000004c":0 + +read alg: SHA_512 +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512:0x0000:"4b":"505341004b455900000000000100000001100800010000000b00000200000000010000004b":0 + +read alg2: SHA_512 +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512:"4c":"505341004b45590000000000010000000110080001000000000000000b000002010000004c":0 + +read alg: SHA_512_224 +depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000c00000200000000010000004b":0 + +read alg2: SHA_512_224 +depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_224:"4c":"505341004b45590000000000010000000110080001000000000000000c000002010000004c":0 + +read alg: SHA_512_256 +depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000d00000200000000010000004b":0 + +read alg2: SHA_512_256 +depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_256:"4c":"505341004b45590000000000010000000110080001000000000000000d000002010000004c":0 + +read alg: STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"4b":"505341004b455900000000000100000001100800010000000001800400000000010000004b":0 + +read alg2: STREAM_CIPHER +depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_STREAM_CIPHER:"4c":"505341004b455900000000000100000001100800010000000000000000018004010000004c":0 + +read alg: TLS12_ECJPAKE_TO_PMS +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_ECJPAKE_TO_PMS:0x0000:"4b":"505341004b455900000000000100000001100800010000000906000800000000010000004b":0 + +read alg2: TLS12_ECJPAKE_TO_PMS +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_ECJPAKE_TO_PMS:"4c":"505341004b455900000000000100000001100800010000000000000009060008010000004c":0 + +read alg: TLS12_PRF(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000800000000010000004b":0 + +read alg2: TLS12_PRF(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020008010000004c":0 + +read alg: TLS12_PRF(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000800000000010000004b":0 + +read alg2: TLS12_PRF(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020008010000004c":0 + +read alg: TLS12_PRF(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000800000000010000004b":0 + +read alg2: TLS12_PRF(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020008010000004c":0 + +read alg: TLS12_PRF(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000800000000010000004b":0 + +read alg2: TLS12_PRF(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020008010000004c":0 + +read alg: TLS12_PRF(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000800000000010000004b":0 + +read alg2: TLS12_PRF(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020008010000004c":0 + +read alg: TLS12_PRF(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000800000000010000004b":0 + +read alg2: TLS12_PRF(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020008010000004c":0 + +read alg: TLS12_PRF(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000800000000010000004b":0 + +read alg2: TLS12_PRF(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020008010000004c":0 + +read alg: TLS12_PSK2MS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(MD5) +depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030008010000004c":0 + +read alg: TLS12_PSK2MS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(RIPEMD160) +depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030008010000004c":0 + +read alg: TLS12_PSK2MS(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(SHA_1) +depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030008010000004c":0 + +read alg: TLS12_PSK2MS(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(SHA_224) +depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030008010000004c":0 + +read alg: TLS12_PSK2MS(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(SHA_256) +depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030008010000004c":0 + +read alg: TLS12_PSK2MS(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(SHA_384) +depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030008010000004c":0 + +read alg: TLS12_PSK2MS(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000800000000010000004b":0 + +read alg2: TLS12_PSK2MS(SHA_512) +depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030008010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c10300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,1) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000001c103010000004c":0 + +read alg: TRUNCATED_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002c10300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CMAC,1) +depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000002c103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000300810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(MD5),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000400810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(RIPEMD160),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(SHA_1),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000800810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(SHA_224),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000900810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(SHA_256),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(SHA_384),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a008103010000004c":0 + +read alg: TRUNCATED_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00810300000000010000004b":0 + +read alg2: TRUNCATED_MAC(HMAC(SHA_512),1) +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b008103010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c40300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,4) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000001c403010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000001cd0300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,13) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000001cd03010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ce0300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,14) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000001ce03010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001d00300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,16) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000001d003010000004c":0 + +read alg: TRUNCATED_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ff0300000000010000004b":0 + +read alg2: TRUNCATED_MAC(CBC_MAC,63) +depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000001ff03010000004c":0 + +read alg: XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"4b":"505341004b4559000000000001000000011008000100000000ff400400000000010000004b":0 + +read alg2: XTS +depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA +key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_XTS:"4c":"505341004b455900000000000100000001100800010000000000000000ff4004010000004c":0 + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000110000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001100000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000110000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000110000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000110000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001100000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300011000000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000110000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001100000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000110000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000110000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000110000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001100000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300011000000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ED25519PH ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00011000000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: ED448PH ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00011000001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(MD5) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(RIPEMD160) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(SHA_1) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(SHA_224) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(SHA_256) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(SHA_384) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000011000000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: HMAC(SHA_512) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000011000000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PAIR 1024-bit +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004011000000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read implied by SIGN_HASH: RSA_PSS(SHA_256) RSA_PAIR 1024-bit +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004011000000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000120000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001200000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000120000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000120000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000120000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001200000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300012000000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000120000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012000000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001200000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001200000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000120000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000120000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000120000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000120000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001200000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000120000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000120000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000120000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001200000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300012000000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(BP_R1) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000120000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_K1) 192-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012000000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_R1) 225-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001200000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_R2) 160-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001200000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_K1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000120000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_R1) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000120000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_R2) 163-bit +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000120000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ED25519PH ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00012000000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ED25519PH ECC_PUB(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012000000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ED448PH ECC_PAIR(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00012000001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: ED448PH ECC_PUB(TWISTED_EDWARDS) 255-bit +depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001200000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(MD5) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(RIPEMD160) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(SHA_1) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(SHA_224) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(SHA_256) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(SHA_384) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000012000000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: HMAC(SHA_512) HMAC 128-bit +depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC +key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000012000000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PAIR 1024-bit +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004012000000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PUB 1024-bit +depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040120000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: RSA_PSS(SHA_256) RSA_PAIR 1024-bit +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004012000000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE + +read implied by VERIFY_HASH: RSA_PSS(SHA_256) RSA_PUB 1024-bit +depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY +key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040120000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE + +# End of automatically generated file. diff --git a/visualc/VS2010/aead_demo.vcxproj b/visualc/VS2010/aead_demo.vcxproj new file mode 100644 index 000000000..4466ba2ed --- /dev/null +++ b/visualc/VS2010/aead_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {B95203DF-96A0-9E2B-C761-DC13C13D7450} + Win32Proj + aead_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/benchmark.vcxproj b/visualc/VS2010/benchmark.vcxproj new file mode 100644 index 000000000..0be32fc5a --- /dev/null +++ b/visualc/VS2010/benchmark.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA} + Win32Proj + benchmark + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/cert_app.vcxproj b/visualc/VS2010/cert_app.vcxproj new file mode 100644 index 000000000..3fbcb52a5 --- /dev/null +++ b/visualc/VS2010/cert_app.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {D4D691D4-137C-CBFA-735B-D46636D7E4D8} + Win32Proj + cert_app + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/cert_req.vcxproj b/visualc/VS2010/cert_req.vcxproj new file mode 100644 index 000000000..41fdf31a3 --- /dev/null +++ b/visualc/VS2010/cert_req.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE} + Win32Proj + cert_req + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/cert_write.vcxproj b/visualc/VS2010/cert_write.vcxproj new file mode 100644 index 000000000..f1f93ea37 --- /dev/null +++ b/visualc/VS2010/cert_write.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {35E52E46-3BA9-4361-41D3-53663C2E9B8A} + Win32Proj + cert_write + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/cipher_aead_demo.vcxproj b/visualc/VS2010/cipher_aead_demo.vcxproj new file mode 100644 index 000000000..e1aa50df6 --- /dev/null +++ b/visualc/VS2010/cipher_aead_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {1E959679-AB4C-F434-E078-BAA4DC2159E9} + Win32Proj + cipher_aead_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/crl_app.vcxproj b/visualc/VS2010/crl_app.vcxproj new file mode 100644 index 000000000..4b8b2168f --- /dev/null +++ b/visualc/VS2010/crl_app.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {DB904B85-AD31-B7FB-114F-88760CC485F2} + Win32Proj + crl_app + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/crypt_and_hash.vcxproj b/visualc/VS2010/crypt_and_hash.vcxproj new file mode 100644 index 000000000..885935bdf --- /dev/null +++ b/visualc/VS2010/crypt_and_hash.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7} + Win32Proj + crypt_and_hash + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/crypto_examples.vcxproj b/visualc/VS2010/crypto_examples.vcxproj new file mode 100644 index 000000000..3899f0ec3 --- /dev/null +++ b/visualc/VS2010/crypto_examples.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {020C31BD-C4DF-BABA-E537-F517C4E98537} + Win32Proj + crypto_examples + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/dh_client.vcxproj b/visualc/VS2010/dh_client.vcxproj new file mode 100644 index 000000000..043ab1afc --- /dev/null +++ b/visualc/VS2010/dh_client.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE} + Win32Proj + dh_client + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/dh_genprime.vcxproj b/visualc/VS2010/dh_genprime.vcxproj new file mode 100644 index 000000000..f0366cb24 --- /dev/null +++ b/visualc/VS2010/dh_genprime.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {718960D9-5DA6-7B56-39AD-637E81076C71} + Win32Proj + dh_genprime + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/dh_server.vcxproj b/visualc/VS2010/dh_server.vcxproj new file mode 100644 index 000000000..5a986bc57 --- /dev/null +++ b/visualc/VS2010/dh_server.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {8D91B804-E2CE-142D-8E06-FBB037ED1F65} + Win32Proj + dh_server + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/dtls_client.vcxproj b/visualc/VS2010/dtls_client.vcxproj new file mode 100644 index 000000000..3fd65456d --- /dev/null +++ b/visualc/VS2010/dtls_client.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5} + Win32Proj + dtls_client + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/dtls_server.vcxproj b/visualc/VS2010/dtls_server.vcxproj new file mode 100644 index 000000000..b10ec4df5 --- /dev/null +++ b/visualc/VS2010/dtls_server.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317} + Win32Proj + dtls_server + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ecdh_curve25519.vcxproj b/visualc/VS2010/ecdh_curve25519.vcxproj new file mode 100644 index 000000000..578e43b62 --- /dev/null +++ b/visualc/VS2010/ecdh_curve25519.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {82EE497E-12CC-7C5B-A072-665678ACB43E} + Win32Proj + ecdh_curve25519 + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ecdsa.vcxproj b/visualc/VS2010/ecdsa.vcxproj new file mode 100644 index 000000000..f7ad2e922 --- /dev/null +++ b/visualc/VS2010/ecdsa.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E} + Win32Proj + ecdsa + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/gen_entropy.vcxproj b/visualc/VS2010/gen_entropy.vcxproj new file mode 100644 index 000000000..b7e45f978 --- /dev/null +++ b/visualc/VS2010/gen_entropy.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {DE695064-13C3-18B0-378D-8B22672BF3F4} + Win32Proj + gen_entropy + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/gen_key.vcxproj b/visualc/VS2010/gen_key.vcxproj new file mode 100644 index 000000000..fa026141c --- /dev/null +++ b/visualc/VS2010/gen_key.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52} + Win32Proj + gen_key + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/gen_random_ctr_drbg.vcxproj b/visualc/VS2010/gen_random_ctr_drbg.vcxproj new file mode 100644 index 000000000..a385841a0 --- /dev/null +++ b/visualc/VS2010/gen_random_ctr_drbg.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E} + Win32Proj + gen_random_ctr_drbg + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/generic_sum.vcxproj b/visualc/VS2010/generic_sum.vcxproj new file mode 100644 index 000000000..faad77596 --- /dev/null +++ b/visualc/VS2010/generic_sum.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {D071CCF7-ACA0-21F8-D382-52A759AEA261} + Win32Proj + generic_sum + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/hello.vcxproj b/visualc/VS2010/hello.vcxproj new file mode 100644 index 000000000..6a81d914e --- /dev/null +++ b/visualc/VS2010/hello.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D} + Win32Proj + hello + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/hmac_demo.vcxproj b/visualc/VS2010/hmac_demo.vcxproj new file mode 100644 index 000000000..238547a49 --- /dev/null +++ b/visualc/VS2010/hmac_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {90DF77BA-05FC-B8EA-83F4-36057314AFC2} + Win32Proj + hmac_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/key_app.vcxproj b/visualc/VS2010/key_app.vcxproj new file mode 100644 index 000000000..bba584170 --- /dev/null +++ b/visualc/VS2010/key_app.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {10AE376F-1A70-0297-0216-1FD01AD15D19} + Win32Proj + key_app + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/key_app_writer.vcxproj b/visualc/VS2010/key_app_writer.vcxproj new file mode 100644 index 000000000..0d7013796 --- /dev/null +++ b/visualc/VS2010/key_app_writer.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8} + Win32Proj + key_app_writer + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/key_ladder_demo.vcxproj b/visualc/VS2010/key_ladder_demo.vcxproj new file mode 100644 index 000000000..8584aee75 --- /dev/null +++ b/visualc/VS2010/key_ladder_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {778777A0-393D-45E8-83C1-EAF487236F1F} + Win32Proj + key_ladder_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/load_roots.vcxproj b/visualc/VS2010/load_roots.vcxproj new file mode 100644 index 000000000..1eed65778 --- /dev/null +++ b/visualc/VS2010/load_roots.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {65EB85E6-C928-689F-8335-126F78025220} + Win32Proj + load_roots + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/mbedTLS.sln b/visualc/VS2010/mbedTLS.sln new file mode 100644 index 000000000..336ea3c2c --- /dev/null +++ b/visualc/VS2010/mbedTLS.sln @@ -0,0 +1,741 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedTLS", "mbedTLS.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypt_and_hash", "crypt_and_hash.vcxproj", "{5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cipher_aead_demo", "cipher_aead_demo.vcxproj", "{1E959679-AB4C-F434-E078-BAA4DC2159E9}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic_sum", "generic_sum.vcxproj", "{D071CCF7-ACA0-21F8-D382-52A759AEA261}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hello", "hello.vcxproj", "{B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md_hmac_demo", "md_hmac_demo.vcxproj", "{ABCEDDC7-BF2D-2779-909A-9AE5923F1415}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_client", "dh_client.vcxproj", "{4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_genprime", "dh_genprime.vcxproj", "{718960D9-5DA6-7B56-39AD-637E81076C71}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_server", "dh_server.vcxproj", "{8D91B804-E2CE-142D-8E06-FBB037ED1F65}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ecdh_curve25519", "ecdh_curve25519.vcxproj", "{82EE497E-12CC-7C5B-A072-665678ACB43E}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ecdsa", "ecdsa.vcxproj", "{F58142CC-0CC7-0B18-5A0F-53642CFBA18E}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_key", "gen_key.vcxproj", "{BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app", "key_app.vcxproj", "{10AE376F-1A70-0297-0216-1FD01AD15D19}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app_writer", "key_app_writer.vcxproj", "{E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpi_demo", "mpi_demo.vcxproj", "{A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_decrypt", "pk_decrypt.vcxproj", "{1EC6CBA3-6187-D456-D9B7-A35399395D71}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_encrypt", "pk_encrypt.vcxproj", "{55007179-7746-9CFB-97EC-65102FB272C8}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_sign", "pk_sign.vcxproj", "{F2E8CA55-597F-7FDC-6456-D8650FB970A3}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_verify", "pk_verify.vcxproj", "{C429B336-1B30-119C-3B34-21A186D6744F}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_decrypt", "rsa_decrypt.vcxproj", "{E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_encrypt", "rsa_encrypt.vcxproj", "{D06CF12E-F222-9273-41BF-B8A052FA5527}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_genkey", "rsa_genkey.vcxproj", "{F472475C-F677-0E7F-F127-45BF5B64F622}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign", "rsa_sign.vcxproj", "{10790F49-6887-AAB6-2D86-BCBD516F8D26}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign_pss", "rsa_sign_pss.vcxproj", "{DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify", "rsa_verify.vcxproj", "{689E28CF-89ED-BA38-3A14-78A75D891D46}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify_pss", "rsa_verify_pss.vcxproj", "{95C50864-854C-2A11-4C91-BCE654E344FB}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aead_demo", "aead_demo.vcxproj", "{B95203DF-96A0-9E2B-C761-DC13C13D7450}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypto_examples", "crypto_examples.vcxproj", "{020C31BD-C4DF-BABA-E537-F517C4E98537}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hmac_demo", "hmac_demo.vcxproj", "{90DF77BA-05FC-B8EA-83F4-36057314AFC2}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_ladder_demo", "key_ladder_demo.vcxproj", "{778777A0-393D-45E8-83C1-EAF487236F1F}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "psa_constant_names", "psa_constant_names.vcxproj", "{A0BAD8F0-69B5-8382-86ED-C36ACBE54117}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_entropy", "gen_entropy.vcxproj", "{DE695064-13C3-18B0-378D-8B22672BF3F4}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_ctr_drbg", "gen_random_ctr_drbg.vcxproj", "{5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtls_client", "dtls_client.vcxproj", "{FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtls_server", "dtls_server.vcxproj", "{BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mini_client", "mini_client.vcxproj", "{C4FE29EA-266D-5295-4840-976B9B5B3843}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client1", "ssl_client1.vcxproj", "{487A2F80-3CA3-678D-88D5-82194872CF08}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client2", "ssl_client2.vcxproj", "{4E590E9D-E28F-87FF-385B-D58736388231}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_context_info", "ssl_context_info.vcxproj", "{017ECC7D-FB6D-46D8-076B-F64172E8E3BC}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_fork_server", "ssl_fork_server.vcxproj", "{918CD402-047D-8467-E11C-E1132053F916}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_mail_client", "ssl_mail_client.vcxproj", "{7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "ssl_server.vcxproj", "{E08E0065-896A-7487-DEA5-D3B80B71F975}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server2", "ssl_server2.vcxproj", "{A4DA7463-1047-BDF5-E1B3-5632CB573F41}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcxproj", "{90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "query_compile_time_config", "query_compile_time_config.vcxproj", "{D6F58AF2-9D80-562A-E2B0-F743281522B9}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selftest", "selftest.vcxproj", "{7DBC5F77-3DA1-5F73-8421-E693D95FC66A}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "udp_proxy", "udp_proxy.vcxproj", "{7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zeroize", "zeroize.vcxproj", "{10C01E94-4926-063E-9F56-C84ED190D349}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pem2der", "pem2der.vcxproj", "{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strerror", "strerror.vcxproj", "{23EF735C-CC4C-3EC4-A75E-903DB340F04A}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_app", "cert_app.vcxproj", "{D4D691D4-137C-CBFA-735B-D46636D7E4D8}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_req", "cert_req.vcxproj", "{C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_write", "cert_write.vcxproj", "{35E52E46-3BA9-4361-41D3-53663C2E9B8A}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crl_app", "crl_app.vcxproj", "{DB904B85-AD31-B7FB-114F-88760CC485F2}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_roots", "load_roots.vcxproj", "{65EB85E6-C928-689F-8335-126F78025220}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "req_app", "req_app.vcxproj", "{486B1375-5CFA-C2D2-DD89-C9F497BADCB3}" + ProjectSection(ProjectDependencies) = postProject + {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.ActiveCfg = Debug|Win32 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.Build.0 = Debug|Win32 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.ActiveCfg = Debug|x64 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.Build.0 = Debug|x64 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.ActiveCfg = Release|Win32 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.Build.0 = Release|Win32 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.ActiveCfg = Release|x64 + {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.Build.0 = Release|x64 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|Win32.ActiveCfg = Debug|Win32 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|Win32.Build.0 = Debug|Win32 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|x64.ActiveCfg = Debug|x64 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|x64.Build.0 = Debug|x64 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|Win32.ActiveCfg = Release|Win32 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|Win32.Build.0 = Release|Win32 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|x64.ActiveCfg = Release|x64 + {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|x64.Build.0 = Release|x64 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|Win32.ActiveCfg = Debug|Win32 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|Win32.Build.0 = Debug|Win32 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|x64.ActiveCfg = Debug|x64 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|x64.Build.0 = Debug|x64 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|Win32.ActiveCfg = Release|Win32 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|Win32.Build.0 = Release|Win32 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|x64.ActiveCfg = Release|x64 + {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|x64.Build.0 = Release|x64 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|Win32.ActiveCfg = Debug|Win32 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|Win32.Build.0 = Debug|Win32 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|x64.ActiveCfg = Debug|x64 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|x64.Build.0 = Debug|x64 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|Win32.ActiveCfg = Release|Win32 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|Win32.Build.0 = Release|Win32 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|x64.ActiveCfg = Release|x64 + {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|x64.Build.0 = Release|x64 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|Win32.ActiveCfg = Debug|Win32 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|Win32.Build.0 = Debug|Win32 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|x64.ActiveCfg = Debug|x64 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|x64.Build.0 = Debug|x64 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|Win32.ActiveCfg = Release|Win32 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|Win32.Build.0 = Release|Win32 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|x64.ActiveCfg = Release|x64 + {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|x64.Build.0 = Release|x64 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|Win32.ActiveCfg = Debug|Win32 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|Win32.Build.0 = Debug|Win32 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|x64.ActiveCfg = Debug|x64 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|x64.Build.0 = Debug|x64 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|Win32.ActiveCfg = Release|Win32 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|Win32.Build.0 = Release|Win32 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|x64.ActiveCfg = Release|x64 + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|x64.Build.0 = Release|x64 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|Win32.ActiveCfg = Debug|Win32 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|Win32.Build.0 = Debug|Win32 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|x64.ActiveCfg = Debug|x64 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|x64.Build.0 = Debug|x64 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|Win32.ActiveCfg = Release|Win32 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|Win32.Build.0 = Release|Win32 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|x64.ActiveCfg = Release|x64 + {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|x64.Build.0 = Release|x64 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|Win32.ActiveCfg = Debug|Win32 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|Win32.Build.0 = Debug|Win32 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|x64.ActiveCfg = Debug|x64 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|x64.Build.0 = Debug|x64 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|Win32.ActiveCfg = Release|Win32 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|Win32.Build.0 = Release|Win32 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|x64.ActiveCfg = Release|x64 + {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|x64.Build.0 = Release|x64 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|Win32.ActiveCfg = Debug|Win32 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|Win32.Build.0 = Debug|Win32 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|x64.ActiveCfg = Debug|x64 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|x64.Build.0 = Debug|x64 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|Win32.ActiveCfg = Release|Win32 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|Win32.Build.0 = Release|Win32 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|x64.ActiveCfg = Release|x64 + {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|x64.Build.0 = Release|x64 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|Win32.ActiveCfg = Debug|Win32 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|Win32.Build.0 = Debug|Win32 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|x64.ActiveCfg = Debug|x64 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|x64.Build.0 = Debug|x64 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|Win32.ActiveCfg = Release|Win32 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|Win32.Build.0 = Release|Win32 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|x64.ActiveCfg = Release|x64 + {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|x64.Build.0 = Release|x64 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|Win32.ActiveCfg = Debug|Win32 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|Win32.Build.0 = Debug|Win32 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|x64.ActiveCfg = Debug|x64 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|x64.Build.0 = Debug|x64 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|Win32.ActiveCfg = Release|Win32 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|Win32.Build.0 = Release|Win32 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|x64.ActiveCfg = Release|x64 + {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|x64.Build.0 = Release|x64 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|Win32.ActiveCfg = Debug|Win32 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|Win32.Build.0 = Debug|Win32 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|x64.ActiveCfg = Debug|x64 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|x64.Build.0 = Debug|x64 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|Win32.ActiveCfg = Release|Win32 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|Win32.Build.0 = Release|Win32 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|x64.ActiveCfg = Release|x64 + {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|x64.Build.0 = Release|x64 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|Win32.ActiveCfg = Debug|Win32 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|Win32.Build.0 = Debug|Win32 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|x64.ActiveCfg = Debug|x64 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|x64.Build.0 = Debug|x64 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|Win32.ActiveCfg = Release|Win32 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|Win32.Build.0 = Release|Win32 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|x64.ActiveCfg = Release|x64 + {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|x64.Build.0 = Release|x64 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|Win32.ActiveCfg = Debug|Win32 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|Win32.Build.0 = Debug|Win32 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|x64.ActiveCfg = Debug|x64 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|x64.Build.0 = Debug|x64 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|Win32.ActiveCfg = Release|Win32 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|Win32.Build.0 = Release|Win32 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|x64.ActiveCfg = Release|x64 + {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|x64.Build.0 = Release|x64 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|Win32.ActiveCfg = Debug|Win32 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|Win32.Build.0 = Debug|Win32 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|x64.ActiveCfg = Debug|x64 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|x64.Build.0 = Debug|x64 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|Win32.ActiveCfg = Release|Win32 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|Win32.Build.0 = Release|Win32 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|x64.ActiveCfg = Release|x64 + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|x64.Build.0 = Release|x64 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|Win32.ActiveCfg = Debug|Win32 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|Win32.Build.0 = Debug|Win32 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|x64.ActiveCfg = Debug|x64 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|x64.Build.0 = Debug|x64 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|Win32.ActiveCfg = Release|Win32 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|Win32.Build.0 = Release|Win32 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|x64.ActiveCfg = Release|x64 + {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|x64.Build.0 = Release|x64 + {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|Win32.ActiveCfg = Debug|Win32 + {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|Win32.Build.0 = Debug|Win32 + {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|x64.ActiveCfg = Debug|x64 + {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|x64.Build.0 = Debug|x64 + {55007179-7746-9CFB-97EC-65102FB272C8}.Release|Win32.ActiveCfg = Release|Win32 + {55007179-7746-9CFB-97EC-65102FB272C8}.Release|Win32.Build.0 = Release|Win32 + {55007179-7746-9CFB-97EC-65102FB272C8}.Release|x64.ActiveCfg = Release|x64 + {55007179-7746-9CFB-97EC-65102FB272C8}.Release|x64.Build.0 = Release|x64 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|Win32.Build.0 = Debug|Win32 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|x64.ActiveCfg = Debug|x64 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|x64.Build.0 = Debug|x64 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|Win32.ActiveCfg = Release|Win32 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|Win32.Build.0 = Release|Win32 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|x64.ActiveCfg = Release|x64 + {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|x64.Build.0 = Release|x64 + {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|Win32.ActiveCfg = Debug|Win32 + {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|Win32.Build.0 = Debug|Win32 + {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|x64.ActiveCfg = Debug|x64 + {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|x64.Build.0 = Debug|x64 + {C429B336-1B30-119C-3B34-21A186D6744F}.Release|Win32.ActiveCfg = Release|Win32 + {C429B336-1B30-119C-3B34-21A186D6744F}.Release|Win32.Build.0 = Release|Win32 + {C429B336-1B30-119C-3B34-21A186D6744F}.Release|x64.ActiveCfg = Release|x64 + {C429B336-1B30-119C-3B34-21A186D6744F}.Release|x64.Build.0 = Release|x64 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|Win32.ActiveCfg = Debug|Win32 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|Win32.Build.0 = Debug|Win32 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|x64.ActiveCfg = Debug|x64 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|x64.Build.0 = Debug|x64 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|Win32.ActiveCfg = Release|Win32 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|Win32.Build.0 = Release|Win32 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|x64.ActiveCfg = Release|x64 + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|x64.Build.0 = Release|x64 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|Win32.ActiveCfg = Debug|Win32 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|Win32.Build.0 = Debug|Win32 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|x64.ActiveCfg = Debug|x64 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|x64.Build.0 = Debug|x64 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|Win32.ActiveCfg = Release|Win32 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|Win32.Build.0 = Release|Win32 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|x64.ActiveCfg = Release|x64 + {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|x64.Build.0 = Release|x64 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|Win32.ActiveCfg = Debug|Win32 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|Win32.Build.0 = Debug|Win32 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|x64.ActiveCfg = Debug|x64 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|x64.Build.0 = Debug|x64 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|Win32.ActiveCfg = Release|Win32 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|Win32.Build.0 = Release|Win32 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|x64.ActiveCfg = Release|x64 + {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|x64.Build.0 = Release|x64 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|Win32.ActiveCfg = Debug|Win32 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|Win32.Build.0 = Debug|Win32 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|x64.ActiveCfg = Debug|x64 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|x64.Build.0 = Debug|x64 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|Win32.ActiveCfg = Release|Win32 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|Win32.Build.0 = Release|Win32 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|x64.ActiveCfg = Release|x64 + {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|x64.Build.0 = Release|x64 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|Win32.ActiveCfg = Debug|Win32 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|Win32.Build.0 = Debug|Win32 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|x64.ActiveCfg = Debug|x64 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|x64.Build.0 = Debug|x64 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|Win32.ActiveCfg = Release|Win32 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|Win32.Build.0 = Release|Win32 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|x64.ActiveCfg = Release|x64 + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|x64.Build.0 = Release|x64 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|Win32.ActiveCfg = Debug|Win32 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|Win32.Build.0 = Debug|Win32 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|x64.ActiveCfg = Debug|x64 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|x64.Build.0 = Debug|x64 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|Win32.ActiveCfg = Release|Win32 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|Win32.Build.0 = Release|Win32 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|x64.ActiveCfg = Release|x64 + {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|x64.Build.0 = Release|x64 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|Win32.ActiveCfg = Debug|Win32 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|Win32.Build.0 = Debug|Win32 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|x64.ActiveCfg = Debug|x64 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|x64.Build.0 = Debug|x64 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|Win32.ActiveCfg = Release|Win32 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|Win32.Build.0 = Release|Win32 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|x64.ActiveCfg = Release|x64 + {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|x64.Build.0 = Release|x64 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|Win32.ActiveCfg = Debug|Win32 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|Win32.Build.0 = Debug|Win32 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|x64.ActiveCfg = Debug|x64 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|x64.Build.0 = Debug|x64 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|Win32.ActiveCfg = Release|Win32 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|Win32.Build.0 = Release|Win32 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|x64.ActiveCfg = Release|x64 + {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|x64.Build.0 = Release|x64 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|Win32.ActiveCfg = Debug|Win32 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|Win32.Build.0 = Debug|Win32 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|x64.ActiveCfg = Debug|x64 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|x64.Build.0 = Debug|x64 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|Win32.ActiveCfg = Release|Win32 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|Win32.Build.0 = Release|Win32 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|x64.ActiveCfg = Release|x64 + {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|x64.Build.0 = Release|x64 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|Win32.ActiveCfg = Debug|Win32 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|Win32.Build.0 = Debug|Win32 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|x64.ActiveCfg = Debug|x64 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|x64.Build.0 = Debug|x64 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|Win32.ActiveCfg = Release|Win32 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|Win32.Build.0 = Release|Win32 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|x64.ActiveCfg = Release|x64 + {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|x64.Build.0 = Release|x64 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|Win32.ActiveCfg = Debug|Win32 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|Win32.Build.0 = Debug|Win32 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|x64.ActiveCfg = Debug|x64 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|x64.Build.0 = Debug|x64 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|Win32.ActiveCfg = Release|Win32 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|Win32.Build.0 = Release|Win32 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|x64.ActiveCfg = Release|x64 + {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|x64.Build.0 = Release|x64 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|Win32.ActiveCfg = Debug|Win32 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|Win32.Build.0 = Debug|Win32 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|x64.ActiveCfg = Debug|x64 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|x64.Build.0 = Debug|x64 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|Win32.ActiveCfg = Release|Win32 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|Win32.Build.0 = Release|Win32 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|x64.ActiveCfg = Release|x64 + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|x64.Build.0 = Release|x64 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|Win32.ActiveCfg = Debug|Win32 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|Win32.Build.0 = Debug|Win32 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|x64.ActiveCfg = Debug|x64 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|x64.Build.0 = Debug|x64 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|Win32.ActiveCfg = Release|Win32 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|Win32.Build.0 = Release|Win32 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|x64.ActiveCfg = Release|x64 + {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|x64.Build.0 = Release|x64 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|Win32.ActiveCfg = Debug|Win32 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|Win32.Build.0 = Debug|Win32 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|x64.ActiveCfg = Debug|x64 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|x64.Build.0 = Debug|x64 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|Win32.ActiveCfg = Release|Win32 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|Win32.Build.0 = Release|Win32 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|x64.ActiveCfg = Release|x64 + {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|x64.Build.0 = Release|x64 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|Win32.ActiveCfg = Debug|Win32 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|Win32.Build.0 = Debug|Win32 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|x64.ActiveCfg = Debug|x64 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|x64.Build.0 = Debug|x64 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|Win32.ActiveCfg = Release|Win32 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|Win32.Build.0 = Release|Win32 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|x64.ActiveCfg = Release|x64 + {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|x64.Build.0 = Release|x64 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|Win32.ActiveCfg = Debug|Win32 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|Win32.Build.0 = Debug|Win32 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|x64.ActiveCfg = Debug|x64 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|x64.Build.0 = Debug|x64 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|Win32.ActiveCfg = Release|Win32 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|Win32.Build.0 = Release|Win32 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|x64.ActiveCfg = Release|x64 + {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|x64.Build.0 = Release|x64 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|Win32.Build.0 = Debug|Win32 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|x64.ActiveCfg = Debug|x64 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|x64.Build.0 = Debug|x64 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|Win32.ActiveCfg = Release|Win32 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|Win32.Build.0 = Release|Win32 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|x64.ActiveCfg = Release|x64 + {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|x64.Build.0 = Release|x64 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|Win32.ActiveCfg = Debug|Win32 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|Win32.Build.0 = Debug|Win32 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|x64.ActiveCfg = Debug|x64 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|x64.Build.0 = Debug|x64 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|Win32.ActiveCfg = Release|Win32 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|Win32.Build.0 = Release|Win32 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|x64.ActiveCfg = Release|x64 + {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|x64.Build.0 = Release|x64 + {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|Win32.ActiveCfg = Debug|Win32 + {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|Win32.Build.0 = Debug|Win32 + {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|x64.ActiveCfg = Debug|x64 + {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|x64.Build.0 = Debug|x64 + {4E590E9D-E28F-87FF-385B-D58736388231}.Release|Win32.ActiveCfg = Release|Win32 + {4E590E9D-E28F-87FF-385B-D58736388231}.Release|Win32.Build.0 = Release|Win32 + {4E590E9D-E28F-87FF-385B-D58736388231}.Release|x64.ActiveCfg = Release|x64 + {4E590E9D-E28F-87FF-385B-D58736388231}.Release|x64.Build.0 = Release|x64 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|Win32.ActiveCfg = Debug|Win32 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|Win32.Build.0 = Debug|Win32 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|x64.ActiveCfg = Debug|x64 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|x64.Build.0 = Debug|x64 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|Win32.ActiveCfg = Release|Win32 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|Win32.Build.0 = Release|Win32 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|x64.ActiveCfg = Release|x64 + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|x64.Build.0 = Release|x64 + {918CD402-047D-8467-E11C-E1132053F916}.Debug|Win32.ActiveCfg = Debug|Win32 + {918CD402-047D-8467-E11C-E1132053F916}.Debug|Win32.Build.0 = Debug|Win32 + {918CD402-047D-8467-E11C-E1132053F916}.Debug|x64.ActiveCfg = Debug|x64 + {918CD402-047D-8467-E11C-E1132053F916}.Debug|x64.Build.0 = Debug|x64 + {918CD402-047D-8467-E11C-E1132053F916}.Release|Win32.ActiveCfg = Release|Win32 + {918CD402-047D-8467-E11C-E1132053F916}.Release|Win32.Build.0 = Release|Win32 + {918CD402-047D-8467-E11C-E1132053F916}.Release|x64.ActiveCfg = Release|x64 + {918CD402-047D-8467-E11C-E1132053F916}.Release|x64.Build.0 = Release|x64 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|Win32.ActiveCfg = Debug|Win32 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|Win32.Build.0 = Debug|Win32 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|x64.ActiveCfg = Debug|x64 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|x64.Build.0 = Debug|x64 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|Win32.ActiveCfg = Release|Win32 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|Win32.Build.0 = Release|Win32 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|x64.ActiveCfg = Release|x64 + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|x64.Build.0 = Release|x64 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|Win32.ActiveCfg = Debug|Win32 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|Win32.Build.0 = Debug|Win32 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|x64.ActiveCfg = Debug|x64 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|x64.Build.0 = Debug|x64 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|Win32.ActiveCfg = Release|Win32 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|Win32.Build.0 = Release|Win32 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|x64.ActiveCfg = Release|x64 + {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|x64.Build.0 = Release|x64 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|Win32.ActiveCfg = Debug|Win32 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|Win32.Build.0 = Debug|Win32 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|x64.ActiveCfg = Debug|x64 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|x64.Build.0 = Debug|x64 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|Win32.ActiveCfg = Release|Win32 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|Win32.Build.0 = Release|Win32 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|x64.ActiveCfg = Release|x64 + {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|x64.Build.0 = Release|x64 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|Win32.ActiveCfg = Debug|Win32 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|Win32.Build.0 = Debug|Win32 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|x64.ActiveCfg = Debug|x64 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|x64.Build.0 = Debug|x64 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|Win32.ActiveCfg = Release|Win32 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|Win32.Build.0 = Release|Win32 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|x64.ActiveCfg = Release|x64 + {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|x64.Build.0 = Release|x64 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.ActiveCfg = Debug|Win32 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.Build.0 = Debug|Win32 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.ActiveCfg = Debug|x64 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.Build.0 = Debug|x64 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.ActiveCfg = Release|Win32 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.Build.0 = Release|Win32 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.ActiveCfg = Release|x64 + {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.Build.0 = Release|x64 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|Win32.Build.0 = Debug|Win32 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|x64.ActiveCfg = Debug|x64 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|x64.Build.0 = Debug|x64 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|Win32.ActiveCfg = Release|Win32 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|Win32.Build.0 = Release|Win32 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|x64.ActiveCfg = Release|x64 + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|x64.Build.0 = Release|x64 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|Win32.ActiveCfg = Debug|Win32 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|Win32.Build.0 = Debug|Win32 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|x64.ActiveCfg = Debug|x64 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|x64.Build.0 = Debug|x64 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|Win32.ActiveCfg = Release|Win32 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|Win32.Build.0 = Release|Win32 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|x64.ActiveCfg = Release|x64 + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|x64.Build.0 = Release|x64 + {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|Win32.ActiveCfg = Debug|Win32 + {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|Win32.Build.0 = Debug|Win32 + {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|x64.ActiveCfg = Debug|x64 + {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|x64.Build.0 = Debug|x64 + {10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.ActiveCfg = Release|Win32 + {10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.Build.0 = Release|Win32 + {10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.ActiveCfg = Release|x64 + {10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.Build.0 = Release|x64 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.ActiveCfg = Debug|Win32 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.Build.0 = Debug|Win32 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.ActiveCfg = Debug|x64 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.Build.0 = Debug|x64 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|Win32.ActiveCfg = Release|Win32 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|Win32.Build.0 = Release|Win32 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|x64.ActiveCfg = Release|x64 + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|x64.Build.0 = Release|x64 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|Win32.ActiveCfg = Debug|Win32 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|Win32.Build.0 = Debug|Win32 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|x64.ActiveCfg = Debug|x64 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|x64.Build.0 = Debug|x64 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|Win32.ActiveCfg = Release|Win32 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|Win32.Build.0 = Release|Win32 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|x64.ActiveCfg = Release|x64 + {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|x64.Build.0 = Release|x64 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|Win32.ActiveCfg = Debug|Win32 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|Win32.Build.0 = Debug|Win32 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|x64.ActiveCfg = Debug|x64 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|x64.Build.0 = Debug|x64 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|Win32.ActiveCfg = Release|Win32 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|Win32.Build.0 = Release|Win32 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|x64.ActiveCfg = Release|x64 + {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|x64.Build.0 = Release|x64 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|Win32.ActiveCfg = Debug|Win32 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|Win32.Build.0 = Debug|Win32 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|x64.ActiveCfg = Debug|x64 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|x64.Build.0 = Debug|x64 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|Win32.ActiveCfg = Release|Win32 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|Win32.Build.0 = Release|Win32 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|x64.ActiveCfg = Release|x64 + {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|x64.Build.0 = Release|x64 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|Win32.ActiveCfg = Debug|Win32 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|Win32.Build.0 = Debug|Win32 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|x64.ActiveCfg = Debug|x64 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|x64.Build.0 = Debug|x64 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|Win32.ActiveCfg = Release|Win32 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|Win32.Build.0 = Release|Win32 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|x64.ActiveCfg = Release|x64 + {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|x64.Build.0 = Release|x64 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|Win32.ActiveCfg = Debug|Win32 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|Win32.Build.0 = Debug|Win32 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|x64.ActiveCfg = Debug|x64 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|x64.Build.0 = Debug|x64 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|Win32.ActiveCfg = Release|Win32 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|Win32.Build.0 = Release|Win32 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|x64.ActiveCfg = Release|x64 + {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|x64.Build.0 = Release|x64 + {65EB85E6-C928-689F-8335-126F78025220}.Debug|Win32.ActiveCfg = Debug|Win32 + {65EB85E6-C928-689F-8335-126F78025220}.Debug|Win32.Build.0 = Debug|Win32 + {65EB85E6-C928-689F-8335-126F78025220}.Debug|x64.ActiveCfg = Debug|x64 + {65EB85E6-C928-689F-8335-126F78025220}.Debug|x64.Build.0 = Debug|x64 + {65EB85E6-C928-689F-8335-126F78025220}.Release|Win32.ActiveCfg = Release|Win32 + {65EB85E6-C928-689F-8335-126F78025220}.Release|Win32.Build.0 = Release|Win32 + {65EB85E6-C928-689F-8335-126F78025220}.Release|x64.ActiveCfg = Release|x64 + {65EB85E6-C928-689F-8335-126F78025220}.Release|x64.Build.0 = Release|x64 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|Win32.ActiveCfg = Debug|Win32 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|Win32.Build.0 = Debug|Win32 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|x64.ActiveCfg = Debug|x64 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|x64.Build.0 = Debug|x64 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|Win32.ActiveCfg = Release|Win32 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|Win32.Build.0 = Release|Win32 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|x64.ActiveCfg = Release|x64 + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/visualc/VS2010/mbedTLS.vcxproj b/visualc/VS2010/mbedTLS.vcxproj new file mode 100644 index 000000000..0981bbf37 --- /dev/null +++ b/visualc/VS2010/mbedTLS.vcxproj @@ -0,0 +1,424 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {46CF2D25-6A36-4189-B59C-E4815388E554} + Win32Proj + mbedTLS + + + + StaticLibrary + true + Unicode + + + StaticLibrary + true + Unicode + + + StaticLibrary + false + true + Unicode + + + StaticLibrary + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + _USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) + +../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + CompileAsC + + + Windows + true + + + + + Level3 + Disabled + _USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) + +../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + CompileAsC + + + Windows + true + + + + + Level3 + MaxSpeed + true + true + NDEBUG;_USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) + +../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Windows + true + true + true + + + + + Level3 + MaxSpeed + true + true + WIN64;NDEBUG;_WINDOWS;_USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) + +../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Windows + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/visualc/VS2010/md_hmac_demo.vcxproj b/visualc/VS2010/md_hmac_demo.vcxproj new file mode 100644 index 000000000..fcbd3acf0 --- /dev/null +++ b/visualc/VS2010/md_hmac_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {ABCEDDC7-BF2D-2779-909A-9AE5923F1415} + Win32Proj + md_hmac_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/mini_client.vcxproj b/visualc/VS2010/mini_client.vcxproj new file mode 100644 index 000000000..e4ee166bf --- /dev/null +++ b/visualc/VS2010/mini_client.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {C4FE29EA-266D-5295-4840-976B9B5B3843} + Win32Proj + mini_client + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/mpi_demo.vcxproj b/visualc/VS2010/mpi_demo.vcxproj new file mode 100644 index 000000000..b0fee89c3 --- /dev/null +++ b/visualc/VS2010/mpi_demo.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE} + Win32Proj + mpi_demo + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/pem2der.vcxproj b/visualc/VS2010/pem2der.vcxproj new file mode 100644 index 000000000..84c2e8c0a --- /dev/null +++ b/visualc/VS2010/pem2der.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {D3C6FBD6-D78E-7180-8345-5E09B492DBEC} + Win32Proj + pem2der + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/pk_decrypt.vcxproj b/visualc/VS2010/pk_decrypt.vcxproj new file mode 100644 index 000000000..da3e8d8e0 --- /dev/null +++ b/visualc/VS2010/pk_decrypt.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {1EC6CBA3-6187-D456-D9B7-A35399395D71} + Win32Proj + pk_decrypt + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/pk_encrypt.vcxproj b/visualc/VS2010/pk_encrypt.vcxproj new file mode 100644 index 000000000..829e07234 --- /dev/null +++ b/visualc/VS2010/pk_encrypt.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {55007179-7746-9CFB-97EC-65102FB272C8} + Win32Proj + pk_encrypt + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/pk_sign.vcxproj b/visualc/VS2010/pk_sign.vcxproj new file mode 100644 index 000000000..d93d11469 --- /dev/null +++ b/visualc/VS2010/pk_sign.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {F2E8CA55-597F-7FDC-6456-D8650FB970A3} + Win32Proj + pk_sign + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/pk_verify.vcxproj b/visualc/VS2010/pk_verify.vcxproj new file mode 100644 index 000000000..5933b9258 --- /dev/null +++ b/visualc/VS2010/pk_verify.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {C429B336-1B30-119C-3B34-21A186D6744F} + Win32Proj + pk_verify + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/psa_constant_names.vcxproj b/visualc/VS2010/psa_constant_names.vcxproj new file mode 100644 index 000000000..d35dd19a1 --- /dev/null +++ b/visualc/VS2010/psa_constant_names.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {A0BAD8F0-69B5-8382-86ED-C36ACBE54117} + Win32Proj + psa_constant_names + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/query_compile_time_config.vcxproj b/visualc/VS2010/query_compile_time_config.vcxproj new file mode 100644 index 000000000..d0e0a6df6 --- /dev/null +++ b/visualc/VS2010/query_compile_time_config.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {D6F58AF2-9D80-562A-E2B0-F743281522B9} + Win32Proj + query_compile_time_config + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/req_app.vcxproj b/visualc/VS2010/req_app.vcxproj new file mode 100644 index 000000000..900e415fb --- /dev/null +++ b/visualc/VS2010/req_app.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {486B1375-5CFA-C2D2-DD89-C9F497BADCB3} + Win32Proj + req_app + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_decrypt.vcxproj b/visualc/VS2010/rsa_decrypt.vcxproj new file mode 100644 index 000000000..188b17efd --- /dev/null +++ b/visualc/VS2010/rsa_decrypt.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9} + Win32Proj + rsa_decrypt + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_encrypt.vcxproj b/visualc/VS2010/rsa_encrypt.vcxproj new file mode 100644 index 000000000..a44f676d7 --- /dev/null +++ b/visualc/VS2010/rsa_encrypt.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {D06CF12E-F222-9273-41BF-B8A052FA5527} + Win32Proj + rsa_encrypt + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_genkey.vcxproj b/visualc/VS2010/rsa_genkey.vcxproj new file mode 100644 index 000000000..35b27b7a3 --- /dev/null +++ b/visualc/VS2010/rsa_genkey.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {F472475C-F677-0E7F-F127-45BF5B64F622} + Win32Proj + rsa_genkey + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_sign.vcxproj b/visualc/VS2010/rsa_sign.vcxproj new file mode 100644 index 000000000..90a7ac8cb --- /dev/null +++ b/visualc/VS2010/rsa_sign.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {10790F49-6887-AAB6-2D86-BCBD516F8D26} + Win32Proj + rsa_sign + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_sign_pss.vcxproj b/visualc/VS2010/rsa_sign_pss.vcxproj new file mode 100644 index 000000000..5d2ac8208 --- /dev/null +++ b/visualc/VS2010/rsa_sign_pss.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D} + Win32Proj + rsa_sign_pss + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_verify.vcxproj b/visualc/VS2010/rsa_verify.vcxproj new file mode 100644 index 000000000..a413ba8ca --- /dev/null +++ b/visualc/VS2010/rsa_verify.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {689E28CF-89ED-BA38-3A14-78A75D891D46} + Win32Proj + rsa_verify + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/rsa_verify_pss.vcxproj b/visualc/VS2010/rsa_verify_pss.vcxproj new file mode 100644 index 000000000..369b14514 --- /dev/null +++ b/visualc/VS2010/rsa_verify_pss.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {95C50864-854C-2A11-4C91-BCE654E344FB} + Win32Proj + rsa_verify_pss + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/selftest.vcxproj b/visualc/VS2010/selftest.vcxproj new file mode 100644 index 000000000..6feb5936f --- /dev/null +++ b/visualc/VS2010/selftest.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {7DBC5F77-3DA1-5F73-8421-E693D95FC66A} + Win32Proj + selftest + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_client1.vcxproj b/visualc/VS2010/ssl_client1.vcxproj new file mode 100644 index 000000000..860334e4a --- /dev/null +++ b/visualc/VS2010/ssl_client1.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {487A2F80-3CA3-678D-88D5-82194872CF08} + Win32Proj + ssl_client1 + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_client2.vcxproj b/visualc/VS2010/ssl_client2.vcxproj new file mode 100644 index 000000000..9884f2370 --- /dev/null +++ b/visualc/VS2010/ssl_client2.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {4E590E9D-E28F-87FF-385B-D58736388231} + Win32Proj + ssl_client2 + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_context_info.vcxproj b/visualc/VS2010/ssl_context_info.vcxproj new file mode 100644 index 000000000..1c98d34bf --- /dev/null +++ b/visualc/VS2010/ssl_context_info.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {017ECC7D-FB6D-46D8-076B-F64172E8E3BC} + Win32Proj + ssl_context_info + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_fork_server.vcxproj b/visualc/VS2010/ssl_fork_server.vcxproj new file mode 100644 index 000000000..6d44ef079 --- /dev/null +++ b/visualc/VS2010/ssl_fork_server.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {918CD402-047D-8467-E11C-E1132053F916} + Win32Proj + ssl_fork_server + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_mail_client.vcxproj b/visualc/VS2010/ssl_mail_client.vcxproj new file mode 100644 index 000000000..e2253c665 --- /dev/null +++ b/visualc/VS2010/ssl_mail_client.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD} + Win32Proj + ssl_mail_client + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_server.vcxproj b/visualc/VS2010/ssl_server.vcxproj new file mode 100644 index 000000000..23ad7ecc8 --- /dev/null +++ b/visualc/VS2010/ssl_server.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {E08E0065-896A-7487-DEA5-D3B80B71F975} + Win32Proj + ssl_server + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/ssl_server2.vcxproj b/visualc/VS2010/ssl_server2.vcxproj new file mode 100644 index 000000000..d8f3e592d --- /dev/null +++ b/visualc/VS2010/ssl_server2.vcxproj @@ -0,0 +1,169 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {A4DA7463-1047-BDF5-E1B3-5632CB573F41} + Win32Proj + ssl_server2 + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/strerror.vcxproj b/visualc/VS2010/strerror.vcxproj new file mode 100644 index 000000000..9e70decd9 --- /dev/null +++ b/visualc/VS2010/strerror.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {23EF735C-CC4C-3EC4-A75E-903DB340F04A} + Win32Proj + strerror + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/udp_proxy.vcxproj b/visualc/VS2010/udp_proxy.vcxproj new file mode 100644 index 000000000..69678f635 --- /dev/null +++ b/visualc/VS2010/udp_proxy.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A} + Win32Proj + udp_proxy + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + diff --git a/visualc/VS2010/zeroize.vcxproj b/visualc/VS2010/zeroize.vcxproj new file mode 100644 index 000000000..9e0746de9 --- /dev/null +++ b/visualc/VS2010/zeroize.vcxproj @@ -0,0 +1,167 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + + + + + {46cf2d25-6a36-4189-b59c-e4815388e554} + true + + + + {10C01E94-4926-063E-9F56-C84ED190D349} + Win32Proj + zeroize + + + + Application + true + Unicode + + + Application + true + Unicode + + + Application + false + true + Unicode + + + Application + false + true + Unicode + + + + + + + + + + + + + + + + + + + true + $(Configuration)\$(TargetName)\ + + + true + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + false + $(Configuration)\$(TargetName)\ + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + Disabled + %(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Debug + + + false + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + NDEBUG;%(PreprocessorDefinitions) + +../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include + + + Console + true + true + true + Release + %(AdditionalDependencies); + + + + + + From cd060e290ba7d8d7293f9b406dd6218ed0cab457 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 9 Dec 2022 09:46:23 +0000 Subject: [PATCH 1186/1574] Update BRANCHES.md Signed-off-by: Dave Rodgman --- BRANCHES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BRANCHES.md b/BRANCHES.md index 6240023dc..c7a6082ec 100644 --- a/BRANCHES.md +++ b/BRANCHES.md @@ -101,6 +101,6 @@ The following branches are currently maintained: - [`development`](https://github.com/Mbed-TLS/mbedtls/) - [`mbedtls-2.28`](https://github.com/Mbed-TLS/mbedtls/tree/mbedtls-2.28) maintained until at least the end of 2024, see - . + . Users are urged to always use the latest version of a maintained branch. From 9d313dfeebab6e1958d458cf9df5bc2b3ea686a4 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 9 Dec 2022 11:38:59 +0100 Subject: [PATCH 1187/1574] test: pake: minor enhancement for opaque keys Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 01d4fe357..22620411f 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6247,6 +6247,9 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + /* check that the opaque key is still valid after failure */ + TEST_ASSERT( ! mbedtls_svc_key_id_is_null( pwd_slot ) ); + psa_destroy_key( pwd_slot ); /* Then set the correct usage */ From 5f099300176c462e034616b62a877052e99f8dd3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 9 Dec 2022 10:58:15 +0000 Subject: [PATCH 1188/1574] Clarify use of temporary in mbedtls_mpi_mod_raw_inv_prime() Signed-off-by: Tom Cosgrove --- library/bignum_mod_raw.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 03924d247..266d915f2 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -144,9 +144,12 @@ void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, * |G| = N - 1, so we want * g^(|G|-1) = g^(N - 2) */ + + /* Use the first AN_limbs of T to hold N - 2 */ mbedtls_mpi_uint *Nminus2 = T; (void) mbedtls_mpi_core_sub_int( Nminus2, N, 2, AN_limbs ); + /* Rest of T is given to exp_mod for its working space */ mbedtls_mpi_core_exp_mod( X, A, N, AN_limbs, Nminus2, AN_limbs, RR, T + AN_limbs ); From 9d8afd1ccfe378316dcd8629d7f29abf24f4e06c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 9 Dec 2022 10:58:46 +0000 Subject: [PATCH 1189/1574] Have BignumModRawInvPrime() do Montgomery conversion in arg_a() Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_mod_raw.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 1a23a60ea..048642667 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -69,13 +69,11 @@ class BignumModRawInvPrime(bignum_common.ModOperationCommon, def is_valid(self) -> bool: return self.int_a > 0 and self.int_a < self.int_n - def arguments(self) -> List[str]: + @property + def arg_a(self) -> str: # Input has to be given in Montgomery form mont_a = self.to_montgomery(self.int_a) - arg_mont_a = self.format_arg('{:x}'.format(mont_a)) - return [bignum_common.quote_str(n) for n in [self.arg_n, - arg_mont_a] - ] + self.result() + return self.format_arg('{:x}'.format(mont_a)) def result(self) -> List[str]: result = bignum_common.invmod(self.int_a, self.int_n) From 016f682796da67f86c6ba4e9b0d44ff214a42012 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 9 Dec 2022 14:17:50 +0100 Subject: [PATCH 1190/1574] tls: pake: small code refactoring for password setting functions Signed-off-by: Valerio Setti --- library/ssl_tls.c | 117 +++++++++++++++++++--------------------------- 1 file changed, 48 insertions(+), 69 deletions(-) diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 259d08884..dda140ef7 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1852,27 +1852,55 @@ void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -/* - * Set EC J-PAKE password for current handshake - */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, - const unsigned char *pw, - size_t pw_len ) -{ - psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_pake_role_t psa_role; - psa_status_t status; - if( ssl->handshake == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) +static psa_status_t mbedtls_ssl_set_hs_ecjpake_password_common( + mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd ) +{ + psa_status_t status; + psa_pake_role_t psa_role; + psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); + + psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); + psa_pake_cs_set_primitive( &cipher_suite, + PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, + PSA_ECC_FAMILY_SECP_R1, + 256) ); + psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); + + status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); + if( status != PSA_SUCCESS ) + return status; if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) psa_role = PSA_PAKE_ROLE_SERVER; else psa_role = PSA_PAKE_ROLE_CLIENT; + status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); + if( status != PSA_SUCCESS ) + return status; + + status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, pwd ); + if( status != PSA_SUCCESS ) + return status; + + ssl->handshake->psa_pake_ctx_is_ok = 1; + + return ( PSA_SUCCESS ); +} + +int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, + const unsigned char *pw, + size_t pw_len ) +{ + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_status_t status; + + if( ssl->handshake == NULL || ssl->conf == NULL ) + return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + /* Empty password is not valid */ if( ( pw == NULL) || ( pw_len == 0 ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -1886,21 +1914,8 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, if( status != PSA_SUCCESS ) return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); - psa_pake_cs_set_primitive( &cipher_suite, - PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, - PSA_ECC_FAMILY_SECP_R1, - 256) ); - psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); - - status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } - - status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); + status = mbedtls_ssl_set_hs_ecjpake_password_common( ssl, + ssl->handshake->psa_pake_password ); if( status != PSA_SUCCESS ) { psa_destroy_key( ssl->handshake->psa_pake_password ); @@ -1908,25 +1923,12 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } - status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, - ssl->handshake->psa_pake_password ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } - - ssl->handshake->psa_pake_ctx_is_ok = 1; - return( 0 ); } int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, mbedtls_svc_key_id_t pwd ) { - psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); - psa_pake_role_t psa_role; psa_status_t status; if( ssl->handshake == NULL || ssl->conf == NULL ) @@ -1935,37 +1937,14 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, if( mbedtls_svc_key_id_is_null( pwd ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); - psa_pake_cs_set_primitive( &cipher_suite, - PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, - PSA_ECC_FAMILY_SECP_R1, - 256) ); - psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); - - status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); + status = mbedtls_ssl_set_hs_ecjpake_password_common( ssl, pwd ); if( status != PSA_SUCCESS ) + { + psa_pake_abort( &ssl->handshake->psa_pake_ctx ); return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - psa_role = PSA_PAKE_ROLE_SERVER; - else - psa_role = PSA_PAKE_ROLE_CLIENT; - - status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); - if( status != PSA_SUCCESS ) - goto error; - - status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, pwd ); - if( status != PSA_SUCCESS ) - goto error; - - ssl->handshake->psa_pake_ctx_is_ok = 1; + } return( 0 ); - -error: - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); } #else /* MBEDTLS_USE_PSA_CRYPTO */ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, From 31e99bb0c751da69a2190b0babb02ce707be67d3 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 9 Dec 2022 14:35:10 +0100 Subject: [PATCH 1191/1574] test: pake: fix: destroy key only in opaque case Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 22620411f..7163d226c 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6264,7 +6264,10 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) ECJPAKE_TEST_SET_PASSWORD( 0 ); #if defined( MBEDTLS_USE_PSA_CRYPTO ) - psa_destroy_key( pwd_slot ); + if( use_opaque_arg ) + { + psa_destroy_key( pwd_slot ); + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ mbedtls_ssl_free( &ssl ); mbedtls_ssl_config_free( &conf ); From 852191e0b5231a359906e3414c9bb7f924e07917 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 9 Dec 2022 14:24:33 +0000 Subject: [PATCH 1192/1574] Improve Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/alignment-perf.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/alignment-perf.txt b/ChangeLog.d/alignment-perf.txt index 8ab649bbc..7a8e6fb4a 100644 --- a/ChangeLog.d/alignment-perf.txt +++ b/ChangeLog.d/alignment-perf.txt @@ -1,4 +1,8 @@ Features - * Improvements to the code used to access unaligned and byte-swapped memory - reduce code size and improve performance (depending on compiler and target + * General performance improvements by accessing multiple bytes at a time. + Fixes #1666. + * Improvements to use of unaligned and byte-swapped memory, reducing code + size and improving performance (depending on compiler and target architecture). +Changes + * Mixed-endian systems are explicitly not supported any more. From 785116a5bedac26290e6ac5370f8633762c9cd0b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 12 Dec 2022 11:59:25 +0100 Subject: [PATCH 1193/1574] test: pake: modify opaque key verification before destruction Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 12 +++++++++--- programs/ssl/ssl_server2.c | 12 +++++++++--- tests/suites/test_suite_ssl.function | 4 +++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 13ffa3d53..02fbbd341 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3333,10 +3333,16 @@ exit: * In case opaque keys it's the user responsibility to keep the key valid * for the duration of the handshake and destroy it at the end */ - if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) && - ( ! mbedtls_svc_key_id_is_null( ecjpake_pw_slot ) ) ) + if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) ) { - psa_destroy_key( ecjpake_pw_slot ); + psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; + + /* Verify that the key is still valid before destroying it */ + if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) == + PSA_SUCCESS ) + { + psa_destroy_key( ecjpake_pw_slot ); + } } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 4b195c4f1..d8c20c29f 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -4443,10 +4443,16 @@ exit: * In case opaque keys it's the user responsibility to keep the key valid * for the duration of the handshake and destroy it at the end */ - if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) && - ( ! mbedtls_svc_key_id_is_null( ecjpake_pw_slot ) ) ) + if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) ) { - psa_destroy_key( ecjpake_pw_slot ); + psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; + + /* Verify that the key is still valid before destroying it */ + if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) == + PSA_SUCCESS ) + { + psa_destroy_key( ecjpake_pw_slot ); + } } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 7163d226c..33231b91e 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6236,6 +6236,7 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) if( use_opaque_arg ) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* First try with an invalid usage */ psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); @@ -6248,7 +6249,8 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); /* check that the opaque key is still valid after failure */ - TEST_ASSERT( ! mbedtls_svc_key_id_is_null( pwd_slot ) ); + TEST_EQUAL( psa_get_key_attributes( pwd_slot, &check_attributes ), + PSA_SUCCESS ); psa_destroy_key( pwd_slot ); From 21fe8bdeacf6e1fa79baf8c4ecce849323cf7b28 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 7 Dec 2022 18:06:05 +0000 Subject: [PATCH 1194/1574] bignum_mod_raw: Added modular negation. This patch adds the `mpi_mod_raw_neg()` method. Co-authored-by: Hanno Becker Co-authored-by: Minos Galanakis Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.c | 12 ++++++++++++ library/bignum_mod_raw.h | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 22e56b7e6..138d5a08b 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -182,6 +182,18 @@ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, mbedtls_free( T ); return( 0 ); } + +void mbedtls_mpi_mod_raw_neg( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m ) +{ + mbedtls_mpi_core_sub( X, m->p, A, m->limbs ); + + /* If A=0 initially, then X=N now. Detect this by + * subtracting N and catching the carry. */ + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, X, m->p, m->limbs ); + (void) mbedtls_mpi_core_add_if( X, m->p, m->limbs, (unsigned) borrow ); +} /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index d7b6dd115..b512ae0d3 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -233,6 +233,24 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, */ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m ); + +/** \brief Perform fixed width modular negation. + * + * The size of the operation is determined by \p N. \p A must have + * the same number of limbs as \p N. + * + * \p X may be aliased to \p A. + * + * \param[out] X The result of the modular negation. + * This must be initialized. Must have enough limbs to + * store the full value of the result. + * \param[in] A Little-endian presentation of the input operand. This + * must be smaller or equal to \p N. + * \param[in] m The address of the modulus related to \p A. + */ +void mbedtls_mpi_mod_raw_neg( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From 6118a3e5aa66c062f096283925d815648c531881 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 7 Dec 2022 18:09:48 +0000 Subject: [PATCH 1195/1574] test_suite_bignumg_mod_raw: Added test for mpi_mod_raw_neg Signed-off-by: Minos Galanakis --- .../suites/test_suite_bignum_mod_raw.function | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index c7decf007..8759bc9de 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -526,6 +526,61 @@ exit: mbedtls_free( X ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_neg( char * input_N, char * input_A, char * input_X ) +{ + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *R = NULL; + mbedtls_mpi_uint *Z = NULL; + size_t n_limbs, a_limbs, x_limbs, bytes; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + /* Read inputs */ + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + + TEST_EQUAL( a_limbs, n_limbs ); + TEST_EQUAL( x_limbs, n_limbs ); + bytes = n_limbs * sizeof( mbedtls_mpi_uint ); + + ASSERT_ALLOC( R, n_limbs ); + ASSERT_ALLOC( Z, n_limbs ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + /* Neg( A == 0 ) => Zero result */ + mbedtls_mpi_mod_raw_neg( R, Z, &m ); + ASSERT_COMPARE( R, bytes, Z, bytes ); + + /* Neg( A == N ) => Zero result */ + mbedtls_mpi_mod_raw_neg( R, N, &m ); + ASSERT_COMPARE( R, bytes, Z, bytes ); + + /* Neg( A ) => Correct result */ + mbedtls_mpi_mod_raw_neg( R, A, &m ); + ASSERT_COMPARE( R, bytes, X, bytes ); + + /* Neg( A ): alias A to R => Correct result */ + memcpy( R, A, bytes ); + mbedtls_mpi_mod_raw_neg( R, R, &m ); + ASSERT_COMPARE( R, bytes, X, bytes ); +exit: + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( N ); + mbedtls_free( A ); + mbedtls_free( X ); + mbedtls_free( R ); + mbedtls_free( Z ); +} +/* END_CASE */ + /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From 78665eba8f59c6d36b47b9d73178a58a353867e8 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 7 Dec 2022 18:10:46 +0000 Subject: [PATCH 1196/1574] bignum_mod_raw.py: Added BignumModRawModNegate. This patch adds autogenerated inputs for the `mpi_mod_raw_neg()` test in the bignum_mod_raw suite. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 0bbad5dd9..34d26f9bb 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -109,7 +109,18 @@ class BignumModRawConvertFromMont(bignum_common.ModOperationCommon, result = (self.int_a * self.r_inv) % self.int_n return [self.format_result(result)] +class BignumModRawModNegate(bignum_common.ModOperationCommon, + BignumModRawTarget): + """ Test cases for mpi_mod_raw_neg(). """ + test_function = "mpi_mod_raw_neg" + test_name = "Modular negation: " + symbol = "(-A)" + input_style = "arch_split" + arity = 1 + def result(self) -> List[str]: + result = (self.int_n - self.int_a) % self.int_n + return [self.format_result(result)] # END MERGE SLOT 7 # BEGIN MERGE SLOT 8 From 5e8443e6efe2a80dc4d4b165f5fc3d2ec317e406 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 8 Dec 2022 11:40:51 +0000 Subject: [PATCH 1197/1574] mbedtls_mpi_mod_raw_neg: Updated documentation. Signed-off-by: Minos Galanakis --- library/bignum_mod_raw.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index b512ae0d3..b21092ff7 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -236,17 +236,16 @@ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, /** \brief Perform fixed width modular negation. * - * The size of the operation is determined by \p N. \p A must have - * the same number of limbs as \p N. + * The size of the operation is determined by \p m. \p A must have + * the same number of limbs as \p m. * * \p X may be aliased to \p A. * * \param[out] X The result of the modular negation. - * This must be initialized. Must have enough limbs to - * store the full value of the result. + * This must be initialized. * \param[in] A Little-endian presentation of the input operand. This - * must be smaller or equal to \p N. - * \param[in] m The address of the modulus related to \p A. + * must be less than or equal to \p m. + * \param[in] m The modulus to use. */ void mbedtls_mpi_mod_raw_neg( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, From 9a60b2373bdfb7d9930ef8a8d25f955bfd6cd03d Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 8 Dec 2022 11:45:00 +0000 Subject: [PATCH 1198/1574] bignum_mod_raw testsuite: Refactored `mpi_mod_raw_neg()`. Signed-off-by: Minos Galanakis --- tests/suites/test_suite_bignum_mod_raw.function | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 8759bc9de..ac8a02fc3 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -545,8 +545,8 @@ void mpi_mod_raw_neg( char * input_N, char * input_A, char * input_X ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); - TEST_EQUAL( a_limbs, n_limbs ); - TEST_EQUAL( x_limbs, n_limbs ); + TEST_EQUAL( a_limbs, n_limbs ); + TEST_EQUAL( x_limbs, n_limbs ); bytes = n_limbs * sizeof( mbedtls_mpi_uint ); ASSERT_ALLOC( R, n_limbs ); @@ -568,9 +568,8 @@ void mpi_mod_raw_neg( char * input_N, char * input_A, char * input_X ) ASSERT_COMPARE( R, bytes, X, bytes ); /* Neg( A ): alias A to R => Correct result */ - memcpy( R, A, bytes ); - mbedtls_mpi_mod_raw_neg( R, R, &m ); - ASSERT_COMPARE( R, bytes, X, bytes ); + mbedtls_mpi_mod_raw_neg( A, A, &m ); + ASSERT_COMPARE( A, bytes, X, bytes ); exit: mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( N ); From f3abea66413ae31b3fc612f50a6cd060784ae299 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 8 Dec 2022 11:48:26 +0000 Subject: [PATCH 1199/1574] bignum_mod_raw.py: Changed the symbol for modular negation to "-". Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 34d26f9bb..c3cb70bed 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -114,7 +114,7 @@ class BignumModRawModNegate(bignum_common.ModOperationCommon, """ Test cases for mpi_mod_raw_neg(). """ test_function = "mpi_mod_raw_neg" test_name = "Modular negation: " - symbol = "(-A)" + symbol = "-" input_style = "arch_split" arity = 1 From 5e9d2e901904c3cf2c9ee8f89429ef74d0daf148 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 12 Dec 2022 14:00:25 +0000 Subject: [PATCH 1200/1574] Add conventions for bignum mod and mod_raw Signed-off-by: Werner Lewis --- library/bignum_mod.h | 55 ++++++++++++++++++++++++++++++++++++++++ library/bignum_mod_raw.h | 43 +++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 0a8f4d3d0..ab00c9303 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -2,6 +2,61 @@ * Modular bignum functions * * This module implements operations on integers modulo some fixed modulus. + * + * The functions in this module obey the following conventions unless + * explicitly indicated otherwise: + * + * - **Modulus parameters**: the modulus is passed as a pointer to a structure + * of type #mbedtls_mpi_mod_modulus. The structure must be setup with an + * array of limbs storing the bignum value of the modulus. Unless otherwise + * specified, the modulus is called \p N and is input-only. + * - **Bignum parameters**: Bignums are passed as pointers to an array of + * limbs or to a #mbedtls_mpi_mod_residue structure. A limb has the type + * #mbedtls_mpi_uint. Residues must be initialized before use, and must be + * associated with the modulus \p N. Unless otherwise specified: + * - Bignum parameters called \p A, \p B, ... are inputs and are not + * modified by the function. These will have the type + * #mbedtls_mpi_mod_residue. + * - Bignum parameters called \p X, \p Y, ... are outputs or input-output. + * The initial content of output-only parameters is ignored. These will + * have the type #mbedtls_mpi_mod_residue. + * - Bignum parameters called \p P are inputs used to setup a modulus or + * residue. These must be pointers to an array of limbs. + * - \p T is a temporary storage area. The initial content of such + * parameter is ignored and the final content is unspecified. + * - Some functions use different names, such as \p R for the residue. + * - **Bignum sizes**: bignum sizes are always expressed in limbs. Both + * #mbedtls_mpi_mod_modulus and #mbedtls_mpi_mod_residue have a \p limbs + * member storing its size. Functions which take a limb array parameter + * must also take an associated \p limbs parameter specifying its size. + * All bignum sizes must be at least 1 and be significantly less than + * #SIZE_MAX. The behavior if a size is 0 may be undefined or an error + * may be returned. All bignum parameters must have the same size unless + * otherwise specified. + * - **Bignum representation**: the representation of inputs and outputs is + * specified by the \p int_rep field of the modulus. + * - **Parameter ordering**: for bignum parameters, outputs come before inputs. + * Temporaries come last. + * - **Aliasing**: in general, output bignums may be aliased to one or more + * inputs. Modulus values may not be aliased to any other parameter. Outputs + * may not be aliased to one another. Temporaries may not be aliased to any + * other parameter. + * - **Overlap**: apart from aliasing of residue pointers (where two residue + * arguments are equal pointers), overlap is not supported and may result + * in undefined behavior. + * - **Error handling**: functions generally check compatability of input + * sizes. Most functions will not check that input values are in canonical + * form (i.e. that \p A < \p N), this is only checked during setup of a + * residue structure. + * - **Modular representatives**: functions that operate modulo \p N expect + * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs + * in the range [0, \p N - 1]. Residues are setup with an associated modulus, + * and operations are only guaranteed to work if the modulus is associated + * with all residue parameters. If a residue is passed with a modulus other + * than the one it is associated with, then it may be out of range. If an + * input is out of range, outputs are fully unspecified, though bignum values + * out of range should not cause buffer overflows (beware that this is not + * extensively tested). */ /* diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 698119e19..56e5cbc2e 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -11,6 +11,49 @@ * the wrong size. The functions in bignum_mod.h provide a higher-level * interface that includes protections against accidental misuse, at the * expense of code size and sometimes more cumbersome memory management. + * + * The functions in this module obey the following conventions unless + * explicitly indicated otherwise: + * - **Modulus parameters**: the modulus is passed as a pointer to a structure + * of type #mbedtls_mpi_mod_modulus. The structure must be setup with an + * array of limbs storing the bignum value of the modulus. Unless otherwise + * specified, the modulus is called \p N and is input-only. + * - **Bignum parameters**: Bignums are passed as pointers to an array of + * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified: + * - Bignum parameters called \p A, \p B, ... are inputs, and are not + * modified by the function. + * - Bignum parameters called \p X, \p Y are outputs or input-output. + * The initial content of output-only parameters is ignored. + * - \p T is a temporary storage area. The initial content of such + * parameter is ignored and the final content is unspecified. + * - **Bignum sizes**: bignum sizes are always expressed by the \p limbs + * member of the modulus argument. Any bignum parameters must have the same + * number of limbs as the modulus. All bignum sizes must be at least 1 and + * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is + * undefined. + * - **Bignum representation**: the representation of inputs and outputs is + * specified by the \p int_rep field of the modulus for arithmetic + * functions. Utility functions may allow for different representation. + * - **Parameter ordering**: for bignum parameters, outputs come before inputs. + * Temporaries come last. + * - **Aliasing**: in general, output bignums may be aliased to one or more + * inputs. Modulus values may not be aliased to any other parameter. Outputs + * may not be aliased to one another. Temporaries may not be aliased to any + * other parameter. + * - **Overlap**: apart from aliasing of limb array pointers (where two + * arguments are equal pointers), overlap is not supported and may result + * in undefined behavior. + * - **Error handling**: This is a low-level module. Functions generally do not + * try to protect against invalid arguments such as nonsensical sizes or + * null pointers. Note that passing bignums with a different size than the + * modulus may lead to buffer overflows. Some functions which allocate + * memory or handle reading/writing of bignums will return an error if + * memory allocation fails or if buffer sizes are invalid. + * - **Modular representatives**: functions that operate modulo \p N expect + * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs + * in the range [0, \p N - 1]. If an input is out of range, outputs are + * fully unspecified, though bignum values out of range should not cause + * buffer overflows (beware that this is not extensively tested). */ /* From 2b52a2e412abee9b7933927e6581527ca4a770b5 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 12 Dec 2022 15:23:44 +0000 Subject: [PATCH 1201/1574] Improve Changelog wording Signed-off-by: Dave Rodgman --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d79a0506c..bdeb8f0a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -455,7 +455,7 @@ Bugfix make to break on a clean checkout. Fixes #5340. * Work around an MSVC ARM64 compiler bug causing incorrect behaviour in mbedtls_mpi_exp_mod(). Reported by Tautvydas Žilys in #5467. - * Removed the prompt to exit from all windows build programs that was causing + * Removed the prompt to exit from all windows build programs, which was causing issues in CI/CD environments. Changes From 91a2aabb860737c0385f7e3b6eeb7a4db27419c9 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Mon, 12 Dec 2022 17:04:16 +0000 Subject: [PATCH 1202/1574] Refactor mpi_core_sub tests to use arch_split Tests are refactored to generate separate cases for 32-bit and 64-bit limbs using arch_split. Duplicate arguments and branching in the test function is removed. Signed-off-by: Werner Lewis --- scripts/mbedtls_dev/bignum_core.py | 12 ++++------ tests/suites/test_suite_bignum_core.function | 24 +++++++------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 118a659cf..158ada99d 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -130,24 +130,20 @@ class BignumCoreAddAndAddIf(BignumCoreTarget, bignum_common.OperationCommon): class BignumCoreSub(BignumCoreTarget, bignum_common.OperationCommon): """Test cases for bignum core sub.""" count = 0 + input_style = "arch_split" symbol = "-" test_function = "mpi_core_sub" test_name = "mbedtls_mpi_core_sub" def result(self) -> List[str]: if self.int_a >= self.int_b: - result_4 = result_8 = self.int_a - self.int_b + result = self.int_a - self.int_b carry = 0 else: - bound_val = max(self.int_a, self.int_b) - bound_4 = bignum_common.bound_mpi(bound_val, 32) - result_4 = bound_4 + self.int_a - self.int_b - bound_8 = bignum_common.bound_mpi(bound_val, 64) - result_8 = bound_8 + self.int_a - self.int_b + result = self.limb_boundary + self.int_a - self.int_b carry = 1 return [ - "\"{:x}\"".format(result_4), - "\"{:x}\"".format(result_8), + self.format_result(result), str(carry) ] diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 7bf03fb49..78721158f 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -533,10 +533,9 @@ exit: /* BEGIN_CASE */ void mpi_core_sub( char * input_A, char * input_B, - char * input_X4, char * input_X8, - int carry ) + char * input_X, int carry ) { - mbedtls_mpi A, B, X4, X8; + mbedtls_mpi A, B, X; mbedtls_mpi_uint *a = NULL; mbedtls_mpi_uint *b = NULL; mbedtls_mpi_uint *x = NULL; /* expected */ @@ -544,29 +543,23 @@ void mpi_core_sub( char * input_A, char * input_B, mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); + mbedtls_mpi_init( &X ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); /* All of the inputs are +ve (or zero) */ TEST_EQUAL( 1, A.s ); TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X4.s ); - TEST_EQUAL( 1, X8.s ); + TEST_EQUAL( 1, X.s ); /* Get the number of limbs we will need */ size_t limbs = MAX( A.n, B.n ); size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - /* We only need to work with X4 or X8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); + TEST_LE_U( X.n, limbs ); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ @@ -582,7 +575,7 @@ void mpi_core_sub( char * input_A, char * input_B, */ memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy( x, X.p, X.n * sizeof(mbedtls_mpi_uint) ); /* 1a) r = a - b => we should get the correct carry */ TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); @@ -621,8 +614,7 @@ exit: mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); + mbedtls_mpi_free( &X ); } /* END_CASE */ From 1362c5ab16015c6510a10a90ee2b4839e1ed39c9 Mon Sep 17 00:00:00 2001 From: Demi Marie Obenour Date: Tue, 29 Nov 2022 17:16:55 -0500 Subject: [PATCH 1203/1574] Test for both PKCS 7 bugs found by OSS-Fuzz MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously the same test was repeated twice. Signed-off-by: Demi Marie Obenour Signed-off-by: Bence Szépkúti --- tests/suites/test_suite_pkcs7.data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_pkcs7.data b/tests/suites/test_suite_pkcs7.data index f3cbb628f..571d5adf4 100644 --- a/tests/suites/test_suite_pkcs7.data +++ b/tests/suites/test_suite_pkcs7.data @@ -68,7 +68,7 @@ pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-62139 pkcs7_get_signers_info_set error handling (4541044530479104) depends_on:MBEDTLS_RIPEMD160_C -pkcs7_parse:"data_files/pkcs7_get_signers_info_set-missing_free-fuzz_pkcs7-6213931373035520.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +pkcs7_parse:"data_files/pkcs7_get_signers_info_set-leak-fuzz_pkcs7-4541044530479104.der":MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO PKCS7 Only Signed Data Parse Pass #15 depends_on:MBEDTLS_SHA256_C:MBEDTLS_RSA_C From f7641544eafeaf0c71d109fbbec1d9f8aa2e74d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20Sz=C3=A9pk=C3=BAti?= Date: Mon, 12 Dec 2022 21:37:36 +0100 Subject: [PATCH 1204/1574] Correct the fix for the PKCS 7 memory leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This corrects an issue in the origina fix in 4f01121f6e598c51e42a69f3fd9a54846013117a. Signed-off-by: Bence Szépkúti --- library/pkcs7.c | 45 +++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/library/pkcs7.c b/library/pkcs7.c index 5b22afac9..9100980f6 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -253,6 +253,24 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, return( 0 ); } +static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) +{ + mbedtls_x509_name *name_cur; + mbedtls_x509_name *name_prv; + + if( signer == NULL ) + return; + + name_cur = signer->issuer.next; + while( name_cur != NULL ) + { + name_prv = name_cur; + name_cur = name_cur->next; + mbedtls_free( name_prv ); + } + signer->issuer.next = NULL; +} + /** * SignerInfo ::= SEQUENCE { * version Version; @@ -329,33 +347,16 @@ static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; out: - if( asn1_ret != 0 ) + if( asn1_ret != 0 || ret != 0 ) + { + pkcs7_free_signer_info( signer ); ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, asn1_ret ); - else if( ret != 0 ) - ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; + } return( ret ); } -static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) -{ - mbedtls_x509_name *name_cur; - mbedtls_x509_name *name_prv; - - if( signer == NULL ) - return; - - name_cur = signer->issuer.next; - while( name_cur != NULL ) - { - name_prv = name_cur; - name_cur = name_cur->next; - mbedtls_free( name_prv ); - } - signer->issuer.next = NULL; -} - /** * SignerInfos ::= SET of SignerInfo * Return number of signers added to the signed data, @@ -387,7 +388,7 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, ret = pkcs7_get_signer_info( p, end_set, signers_set ); if( ret != 0 ) - goto cleanup; + return( ret ); count++; mbedtls_pkcs7_signer_info *prev = signers_set; From d75c5c440560918cb311e9796b621e174737ccac Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 13 Dec 2022 11:51:32 +0100 Subject: [PATCH 1205/1574] test: pake: fail in case the opaque key is destroyed unexpectedly Signed-off-by: Valerio Setti --- programs/ssl/ssl_client2.c | 8 +++++++- programs/ssl/ssl_server2.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 02fbbd341..02ee7cf69 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -3338,8 +3338,14 @@ exit: psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* Verify that the key is still valid before destroying it */ - if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) == + if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) != PSA_SUCCESS ) + { + if( ret == 0 ) + ret = 1; + mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" ); + } + else { psa_destroy_key( ecjpake_pw_slot ); } diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index d8c20c29f..06c80908c 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -4448,8 +4448,14 @@ exit: psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* Verify that the key is still valid before destroying it */ - if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) == + if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) != PSA_SUCCESS ) + { + if( ret == 0 ) + ret = 1; + mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" ); + } + else { psa_destroy_key( ecjpake_pw_slot ); } From 43363f5962ce558c0544ad978c2080c5307a5424 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 14 Dec 2022 08:53:23 +0100 Subject: [PATCH 1206/1574] sha: make SHA-384 independent from SHA-512 Using proper configuration options (i.e. MBEDTLS_SHA384_C and MBEDTLS_SHA512_C) it is now possible to build SHA384 and SHA512 independently from each other. Signed-off-by: Valerio Setti --- include/mbedtls/check_config.h | 4 -- include/mbedtls/mbedtls_config.h | 2 - include/mbedtls/sha512.h | 24 +++++-- library/sha512.c | 106 +++++++++++++++++++------------ 4 files changed, 83 insertions(+), 53 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index b791344a6..f3dc11577 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -691,10 +691,6 @@ #error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites" #endif -#if defined(MBEDTLS_SHA384_C) && !defined(MBEDTLS_SHA512_C) -#error "MBEDTLS_SHA384_C defined without MBEDTLS_SHA512_C" -#endif - #if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) && \ defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) #error "Must only define one of MBEDTLS_SHA512_USE_A64_CRYPTO_*" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 78c363543..5b7911c3b 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -3102,8 +3102,6 @@ * * Enable the SHA-384 cryptographic hash algorithm. * - * Requires: MBEDTLS_SHA512_C - * * Module: library/sha512.c * Caller: library/md.c * library/psa_crypto_hash.c diff --git a/include/mbedtls/sha512.h b/include/mbedtls/sha512.h index 48901cc39..545c81c4d 100644 --- a/include/mbedtls/sha512.h +++ b/include/mbedtls/sha512.h @@ -99,8 +99,11 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, * \param is384 Determines which function to use. This must be * either \c 0 for SHA-512, or \c 1 for SHA-384. * - * \note When \c MBEDTLS_SHA384_C is not defined, - * \p is384 must be \c 0, or the function will return + * \note is384 must be defined accordingly with the supported + * symbols in the config file. If: + * - is384 is 0, but \c MBEDTLS_SHA384_C is not defined, or + * - is384 is 1, but \c MBEDTLS_SHA512_C is not defined + * then the function will return * #MBEDTLS_ERR_SHA512_BAD_INPUT_DATA. * * \return \c 0 on success. @@ -175,8 +178,11 @@ int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, * \param is384 Determines which function to use. This must be either * \c 0 for SHA-512, or \c 1 for SHA-384. * - * \note When \c MBEDTLS_SHA384_C is not defined, \p is384 must - * be \c 0, or the function will return + * \note is384 must be defined accordingly with the supported + * symbols in the config file. If: + * - is384 is 0, but \c MBEDTLS_SHA384_C is not defined, or + * - is384 is 1, but \c MBEDTLS_SHA512_C is not defined + * then the function will return * #MBEDTLS_ERR_SHA512_BAD_INPUT_DATA. * * \return \c 0 on success. @@ -190,7 +196,15 @@ int mbedtls_sha512( const unsigned char *input, #if defined(MBEDTLS_SELF_TEST) /** - * \brief The SHA-384 or SHA-512 checkup routine. + * \brief The SHA-384 checkup routine. + * + * \return \c 0 on success. + * \return \c 1 on failure. + */ +int mbedtls_sha384_self_test( int verbose ); + + /** + * \brief The SHA-512 checkup routine. * * \return \c 0 on success. * \return \c 1 on failure. diff --git a/library/sha512.c b/library/sha512.c index 92ada8c35..fa24fb9c8 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -24,7 +24,7 @@ #include "common.h" -#if defined(MBEDTLS_SHA512_C) +#if defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_SHA384_C) #include "mbedtls/sha512.h" #include "mbedtls/platform_util.h" @@ -191,12 +191,15 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, */ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) { -#if defined(MBEDTLS_SHA384_C) +#if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) if( is384 != 0 && is384 != 1 ) return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; -#else +#elif defined(MBEDTLS_SHA512_C) if( is384 != 0 ) return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; +#else /* defined MBEDTLS_SHA384_C only */ + if( is384 == 0 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #endif ctx->total[0] = 0; @@ -204,7 +207,7 @@ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) if( is384 == 0 ) { - /* SHA-512 */ +#if defined(MBEDTLS_SHA512_C) ctx->state[0] = UL64(0x6A09E667F3BCC908); ctx->state[1] = UL64(0xBB67AE8584CAA73B); ctx->state[2] = UL64(0x3C6EF372FE94F82B); @@ -213,13 +216,11 @@ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) ctx->state[5] = UL64(0x9B05688C2B3E6C1F); ctx->state[6] = UL64(0x1F83D9ABFB41BD6B); ctx->state[7] = UL64(0x5BE0CD19137E2179); +#endif /* MBEDTLS_SHA512_C */ } else { -#if !defined(MBEDTLS_SHA384_C) - return( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA ); -#else - /* SHA-384 */ +#if defined(MBEDTLS_SHA384_C) ctx->state[0] = UL64(0xCBBB9D5DC1059ED8); ctx->state[1] = UL64(0x629A292A367CD507); ctx->state[2] = UL64(0x9159015A3070DD17); @@ -836,12 +837,15 @@ int mbedtls_sha512( const unsigned char *input, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha512_context ctx; -#if defined(MBEDTLS_SHA384_C) +#if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) if( is384 != 0 && is384 != 1 ) return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; -#else +#elif defined(MBEDTLS_SHA512_C) if( is384 != 0 ) return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; +#else /* defined MBEDTLS_SHA384_C only */ + if( is384 == 0 ) + return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; #endif mbedtls_sha512_init( &ctx ); @@ -866,24 +870,26 @@ exit: /* * FIPS-180-2 test vectors */ -static const unsigned char sha512_test_buf[3][113] = +static const unsigned char sha_test_buf[3][113] = { { "abc" }, { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" }, { "" } }; -static const size_t sha512_test_buflen[3] = +static const size_t sha_test_buflen[3] = { 3, 112, 1000 }; -static const unsigned char sha512_test_sum[][64] = -{ +typedef const unsigned char (sha_test_sum_t)[64]; + +/* + * SHA-384 test vectors + */ #if defined(MBEDTLS_SHA384_C) - /* - * SHA-384 test vectors - */ +static sha_test_sum_t sha384_test_sum[] = +{ { 0xCB, 0x00, 0x75, 0x3F, 0x45, 0xA3, 0x5E, 0x8B, 0xB5, 0xA0, 0x3D, 0x69, 0x9A, 0xC6, 0x50, 0x07, 0x27, 0x2C, 0x32, 0xAB, 0x0E, 0xDE, 0xD1, 0x63, @@ -901,12 +907,16 @@ static const unsigned char sha512_test_sum[][64] = 0xED, 0x14, 0x9E, 0x9C, 0x00, 0xF2, 0x48, 0x52, 0x79, 0x72, 0xCE, 0xC5, 0x70, 0x4C, 0x2A, 0x5B, 0x07, 0xB8, 0xB3, 0xDC, 0x38, 0xEC, 0xC4, 0xEB, - 0xAE, 0x97, 0xDD, 0xD8, 0x7F, 0x3D, 0x89, 0x85 }, + 0xAE, 0x97, 0xDD, 0xD8, 0x7F, 0x3D, 0x89, 0x85 } +}; #endif /* MBEDTLS_SHA384_C */ - /* - * SHA-512 test vectors - */ +/* + * SHA-512 test vectors + */ +#if defined(MBEDTLS_SHA512_C) +static sha_test_sum_t sha512_test_sum[] = +{ { 0xDD, 0xAF, 0x35, 0xA1, 0x93, 0x61, 0x7A, 0xBA, 0xCC, 0x41, 0x73, 0x49, 0xAE, 0x20, 0x41, 0x31, 0x12, 0xE6, 0xFA, 0x4E, 0x89, 0xA9, 0x7E, 0xA2, @@ -932,19 +942,28 @@ static const unsigned char sha512_test_sum[][64] = 0xEB, 0x00, 0x9C, 0x5C, 0x2C, 0x49, 0xAA, 0x2E, 0x4E, 0xAD, 0xB2, 0x17, 0xAD, 0x8C, 0xC0, 0x9B } }; +#endif /* MBEDTLS_SHA512_C */ #define ARRAY_LENGTH( a ) ( sizeof( a ) / sizeof( ( a )[0] ) ) -/* - * Checkup routine - */ -int mbedtls_sha512_self_test( int verbose ) +static int mbedtls_sha512_common_self_test( int verbose, int is384 ) { - int i, j, k, buflen, ret = 0; + int i, buflen, ret = 0; unsigned char *buf; unsigned char sha512sum[64]; mbedtls_sha512_context ctx; + sha_test_sum_t* sha_test_sum; + + sha_test_sum = +#if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) + ( is384 ) ? sha384_test_sum : sha512_test_sum; +#elif defined(MBEDTLS_SHA512_C) + sha512_test_sum; +#else + sha384_test_sum; +#endif + buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); if( NULL == buf ) { @@ -956,26 +975,19 @@ int mbedtls_sha512_self_test( int verbose ) mbedtls_sha512_init( &ctx ); - for( i = 0; i < (int) ARRAY_LENGTH(sha512_test_sum); i++ ) + for( i = 0; i < 3; i++ ) { - j = i % 3; -#if defined(MBEDTLS_SHA384_C) - k = i < 3; -#else - k = 0; -#endif - if( verbose != 0 ) - mbedtls_printf( " SHA-%d test #%d: ", 512 - k * 128, j + 1 ); + mbedtls_printf( " SHA-%d test #%d: ", 512 - is384 * 128, i + 1 ); - if( ( ret = mbedtls_sha512_starts( &ctx, k ) ) != 0 ) + if( ( ret = mbedtls_sha512_starts( &ctx, is384 ) ) != 0 ) goto fail; - if( j == 2 ) + if( i == 2 ) { memset( buf, 'a', buflen = 1000 ); - for( j = 0; j < 1000; j++ ) + for( int j = 0; j < 1000; j++ ) { ret = mbedtls_sha512_update( &ctx, buf, buflen ); if( ret != 0 ) @@ -984,8 +996,8 @@ int mbedtls_sha512_self_test( int verbose ) } else { - ret = mbedtls_sha512_update( &ctx, sha512_test_buf[j], - sha512_test_buflen[j] ); + ret = mbedtls_sha512_update( &ctx, sha_test_buf[i], + sha_test_buflen[i] ); if( ret != 0 ) goto fail; } @@ -993,7 +1005,7 @@ int mbedtls_sha512_self_test( int verbose ) if( ( ret = mbedtls_sha512_finish( &ctx, sha512sum ) ) != 0 ) goto fail; - if( memcmp( sha512sum, sha512_test_sum[i], 64 - k * 16 ) != 0 ) + if( memcmp( sha512sum, sha_test_sum[i], 64 - is384 * 16 ) != 0 ) { ret = 1; goto fail; @@ -1019,8 +1031,18 @@ exit: return( ret ); } +int mbedtls_sha512_self_test( int verbose ) +{ + return mbedtls_sha512_common_self_test( verbose, 0 ); +} + +int mbedtls_sha384_self_test( int verbose ) +{ + return mbedtls_sha512_common_self_test( verbose, 1 ); +} + #undef ARRAY_LENGTH #endif /* MBEDTLS_SELF_TEST */ -#endif /* MBEDTLS_SHA512_C */ +#endif /* MBEDTLS_SHA512_C || MBEDTLS_SHA384_C */ From 25690a98f08ce3bc1ba8f4d0675ab2e7fb876598 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 13 Dec 2022 17:17:34 +0000 Subject: [PATCH 1207/1574] Rename oret to expected_ret Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.function | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 0676fbb50..d65bb6e2d 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -213,7 +213,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_add( char * input_N, char * input_A, char * input_B, - char * input_S, int oret ) + char * input_S, int expected_ret ) { mbedtls_mpi_mod_residue a = { NULL, 0 }; mbedtls_mpi_mod_residue b = { NULL, 0 }; @@ -230,9 +230,9 @@ void mpi_mod_add( char * input_N, /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, oret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, oret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &s, &m, input_S, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &s, &m, input_S, expected_ret != 0 ) ); size_t limbs = m.limbs; size_t bytes = limbs * sizeof( *X_raw ); @@ -240,7 +240,7 @@ void mpi_mod_add( char * input_N, /* One spare limb for negative testing */ ASSERT_ALLOC( X_raw, limbs + 1 ); - if( oret == 0 ) + if( expected_ret == 0 ) { /* Negative test with too many limbs in output */ x.p = X_raw; @@ -264,8 +264,8 @@ void mpi_mod_add( char * input_N, TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); /* A + B => Correct result or expected error */ - TEST_EQUAL( oret, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); - if( oret != 0 ) + TEST_EQUAL( expected_ret, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + if( expected_ret != 0 ) goto exit; TEST_COMPARE_MPI_RESIDUES( x, s ); From eed01aabd388aeec102ac3e4847152d47c695e07 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 13 Dec 2022 17:18:17 +0000 Subject: [PATCH 1208/1574] Clarify wording in documentation Signed-off-by: Werner Lewis --- library/bignum_mod.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 26d31d4c5..11b4e980f 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -204,7 +204,8 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, * * Calculate `A + B modulo N`. * - * \p A, \p B and \p X must all have the same number of limbs as \p N. + * \p A, \p B and \p X must all be associated with the modulus \p N and must + * all have the same number of limbs as \p N. * * \p X may be aliased to \p A or \p B, or even both, but may not overlap * either otherwise. @@ -213,10 +214,10 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, * form (that is, are < \p N) - that will have been done by * mbedtls_mpi_mod_residue_setup(). * - * \param[out] X The address of the result MPI. Must be initialized. + * \param[out] X The address of the result residue. Must be initialized. * Must have the same number of limbs as the modulus \p N. - * \param[in] A The address of the first MPI. - * \param[in] B The address of the second MPI. + * \param[in] A The address of the first input residue. + * \param[in] B The address of the second input residue. * \param[in] N The address of the modulus. Used to perform a modulo * operation on the result of the addition. * From 79341a4e7ec46858096cc601fd51dc617e9e24f3 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 13 Dec 2022 17:19:01 +0000 Subject: [PATCH 1209/1574] Reallocate X_raw to enforce no overflow Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.function | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index d65bb6e2d..abe4dee40 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -237,30 +237,40 @@ void mpi_mod_add( char * input_N, size_t limbs = m.limbs; size_t bytes = limbs * sizeof( *X_raw ); - /* One spare limb for negative testing */ - ASSERT_ALLOC( X_raw, limbs + 1 ); - if( expected_ret == 0 ) { /* Negative test with too many limbs in output */ + ASSERT_ALLOC( X_raw, limbs + 1 ); + x.p = X_raw; x.limbs = limbs + 1; TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + mbedtls_free( X_raw ); + X_raw = NULL; + /* Negative test with too few limbs in output */ if( limbs > 1 ) { + ASSERT_ALLOC( X_raw, limbs - 1 ); + x.p = X_raw; x.limbs = limbs - 1; TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + + mbedtls_free( X_raw ); + X_raw = NULL; } /* Negative testing with too many/too few limbs in a and b is covered by * manually-written test cases with oret != 0. */ } + /* Allocate correct number of limbs for X_raw */ + ASSERT_ALLOC( X_raw, limbs ); + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); /* A + B => Correct result or expected error */ From ca906e9dd73e0caafa2ae2b34127b3a92d44aa4b Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Tue, 13 Dec 2022 17:19:57 +0000 Subject: [PATCH 1210/1574] Remove B + A tests Signed-off-by: Werner Lewis --- tests/suites/test_suite_bignum_mod.function | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index abe4dee40..507920afd 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -303,24 +303,6 @@ void mpi_mod_add( char * input_N, TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &x, &m ) ); TEST_COMPARE_MPI_RESIDUES( x, s ); } - else - { - /* a != b: test b + a */ - - /* b + a => Correct result */ - mbedtls_mpi_mod_add( &x, &b, &a, &m ); - TEST_COMPARE_MPI_RESIDUES( x, s ); - - /* b + a: alias x to a => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &b, &x, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); - - /* b + a: alias x to b => Correct result */ - memcpy( x.p, b.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &a, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); - } exit: mbedtls_free( (void *)m.p ); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ From 898e7a3afe55d6b158fcfb09250a5dec89497800 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 14 Dec 2022 08:55:53 +0100 Subject: [PATCH 1211/1574] test: sha: test SHA384 and SHA512 separately This is meant to adapt to the new library design in which SHA384 and SHA512 can be built independently from each other. Signed-off-by: Valerio Setti --- library/sha512.c | 4 ++++ programs/test/selftest.c | 3 +++ tests/suites/test_suite_shax.data | 4 ++++ tests/suites/test_suite_shax.function | 17 ++++++++++++----- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/library/sha512.c b/library/sha512.c index fa24fb9c8..738f170f8 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -1031,15 +1031,19 @@ exit: return( ret ); } +#if defined(MBEDTLS_SHA512_C) int mbedtls_sha512_self_test( int verbose ) { return mbedtls_sha512_common_self_test( verbose, 0 ); } +#endif /* MBEDTLS_SHA512_C */ +#if defined(MBEDTLS_SHA384_C) int mbedtls_sha384_self_test( int verbose ) { return mbedtls_sha512_common_self_test( verbose, 1 ); } +#endif /* MBEDTLS_SHA384_C */ #undef ARRAY_LENGTH diff --git a/programs/test/selftest.c b/programs/test/selftest.c index 2d6103c31..163fda924 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -246,6 +246,9 @@ const selftest_t selftests[] = #if defined(MBEDTLS_SHA256_C) {"sha256", mbedtls_sha256_self_test}, #endif +#if defined(MBEDTLS_SHA384_C) + {"sha512", mbedtls_sha384_self_test}, +#endif #if defined(MBEDTLS_SHA512_C) {"sha512", mbedtls_sha512_self_test}, #endif diff --git a/tests/suites/test_suite_shax.data b/tests/suites/test_suite_shax.data index 3552346e4..dce9b7dc1 100644 --- a/tests/suites/test_suite_shax.data +++ b/tests/suites/test_suite_shax.data @@ -173,6 +173,10 @@ SHA-256 Selftest depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA256_C sha256_selftest: +SHA-384 Selftest +depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA384_C +sha384_selftest: + SHA-512 Selftest depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA512_C sha512_selftest: diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index aebfd84a8..c3c1708c9 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -94,9 +94,9 @@ void sha384( data_t * src_str, data_t * hash ) memset(output, 0x00, 97); - TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 1 ) == 0 ); + TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 1 ), 0 ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ) == 0 ); + TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ), 0 ); } /* END_CASE */ @@ -108,9 +108,9 @@ void mbedtls_sha512( data_t * src_str, data_t * hash ) memset(output, 0x00, 129); - TEST_ASSERT( mbedtls_sha512( src_str->x, src_str->len, output, 0 ) == 0 ); + TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 0 ), 0 ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ) == 0 ); + TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ), 0 ); } /* END_CASE */ @@ -128,9 +128,16 @@ void sha256_selftest( ) } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_SHA384_C:MBEDTLS_SELF_TEST */ +void sha384_selftest( ) +{ + TEST_EQUAL( mbedtls_sha384_self_test( 1 ), 0 ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */ void sha512_selftest( ) { - TEST_ASSERT( mbedtls_sha512_self_test( 1 ) == 0 ); + TEST_EQUAL( mbedtls_sha512_self_test( 1 ), 0 ); } /* END_CASE */ From a3f99591f6a05cdfd2c3376a88c9b9f78789738e Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 14 Dec 2022 10:56:54 +0100 Subject: [PATCH 1212/1574] sha: make SHA-224 independent from SHA-256 Using proper configuration options (i.e. MBEDTLS_SHA224_C and MBEDTLS_SHA256_C) it is now possible to build SHA224 and SHA256 independently from each other. Signed-off-by: Valerio Setti --- include/mbedtls/check_config.h | 8 --- include/mbedtls/mbedtls_config.h | 6 -- include/mbedtls/sha256.h | 10 ++- library/sha256.c | 101 +++++++++++++++++++++---------- 4 files changed, 79 insertions(+), 46 deletions(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index f3dc11577..5760c9f68 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -746,14 +746,6 @@ #error "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY defined on non-Aarch64 system" #endif -#if defined(MBEDTLS_SHA224_C) && !defined(MBEDTLS_SHA256_C) -#error "MBEDTLS_SHA224_C defined without MBEDTLS_SHA256_C" -#endif - -#if defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA224_C) -#error "MBEDTLS_SHA256_C defined without MBEDTLS_SHA224_C" -#endif - #if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) && \ defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) #error "Must only define one of MBEDTLS_SHA256_USE_A64_CRYPTO_*" diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 5b7911c3b..14dc150d9 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -3016,9 +3016,6 @@ * * Enable the SHA-224 cryptographic hash algorithm. * - * Requires: MBEDTLS_SHA256_C. The library does not currently support enabling - * SHA-224 without SHA-256. - * * Module: library/sha256.c * Caller: library/md.c * library/ssl_cookie.c @@ -3032,9 +3029,6 @@ * * Enable the SHA-256 cryptographic hash algorithm. * - * Requires: MBEDTLS_SHA224_C. The library does not currently support enabling - * SHA-256 without SHA-224. - * * Module: library/sha256.c * Caller: library/entropy.c * library/md.c diff --git a/include/mbedtls/sha256.h b/include/mbedtls/sha256.h index 0cbbac11f..979ad29a0 100644 --- a/include/mbedtls/sha256.h +++ b/include/mbedtls/sha256.h @@ -179,7 +179,15 @@ int mbedtls_sha256( const unsigned char *input, #if defined(MBEDTLS_SELF_TEST) /** - * \brief The SHA-224 and SHA-256 checkup routine. + * \brief The SHA-224 checkup routine. + * + * \return \c 0 on success. + * \return \c 1 on failure. + */ +int mbedtls_sha224_self_test( int verbose ); + +/** + * \brief The SHA-256 checkup routine. * * \return \c 0 on success. * \return \c 1 on failure. diff --git a/library/sha256.c b/library/sha256.c index 1a9a855fa..4f30e14f8 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -24,7 +24,7 @@ #include "common.h" -#if defined(MBEDTLS_SHA256_C) +#if defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA224_C) #include "mbedtls/sha256.h" #include "mbedtls/platform_util.h" @@ -167,12 +167,15 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, */ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) { -#if defined(MBEDTLS_SHA224_C) +#if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) if( is224 != 0 && is224 != 1 ) return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; -#else +#elif defined(MBEDTLS_SHA256_C) if( is224 != 0 ) return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; +#else /* defined MBEDTLS_SHA224_C only */ + if( is224 == 0 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #endif ctx->total[0] = 0; @@ -180,7 +183,7 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) if( is224 == 0 ) { - /* SHA-256 */ +#if defined(MBEDTLS_SHA256_C) ctx->state[0] = 0x6A09E667; ctx->state[1] = 0xBB67AE85; ctx->state[2] = 0x3C6EF372; @@ -189,11 +192,11 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) ctx->state[5] = 0x9B05688C; ctx->state[6] = 0x1F83D9AB; ctx->state[7] = 0x5BE0CD19; +#endif } else { #if defined(MBEDTLS_SHA224_C) - /* SHA-224 */ ctx->state[0] = 0xC1059ED8; ctx->state[1] = 0x367CD507; ctx->state[2] = 0x3070DD17; @@ -205,7 +208,9 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) #endif } +#if defined(MBEDTLS_SHA224_C) ctx->is224 = is224; +#endif return( 0 ); } @@ -678,12 +683,15 @@ int mbedtls_sha256( const unsigned char *input, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha256_context ctx; -#if defined(MBEDTLS_SHA224_C) +#if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) if( is224 != 0 && is224 != 1 ) return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; -#else +#elif defined(MBEDTLS_SHA256_C) if( is224 != 0 ) return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; +#else /* defined MBEDTLS_SHA224_C only */ + if( is224 == 0 ) + return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; #endif mbedtls_sha256_init( &ctx ); @@ -707,23 +715,26 @@ exit: /* * FIPS-180-2 test vectors */ -static const unsigned char sha256_test_buf[3][57] = +static const unsigned char sha_test_buf[3][57] = { { "abc" }, { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" }, { "" } }; -static const size_t sha256_test_buflen[3] = +static const size_t sha_test_buflen[3] = { 3, 56, 1000 }; -static const unsigned char sha256_test_sum[6][32] = +typedef const unsigned char (sha_test_sum_t)[32]; + +/* + * SHA-224 test vectors + */ +#if defined(MBEDTLS_SHA224_C) +static sha_test_sum_t sha224_test_sum[] = { - /* - * SHA-224 test vectors - */ { 0x23, 0x09, 0x7D, 0x22, 0x34, 0x05, 0xD8, 0x22, 0x86, 0x42, 0xA4, 0x77, 0xBD, 0xA2, 0x55, 0xB3, 0x2A, 0xAD, 0xBC, 0xE4, 0xBD, 0xA0, 0xB3, 0xF7, @@ -735,11 +746,16 @@ static const unsigned char sha256_test_sum[6][32] = { 0x20, 0x79, 0x46, 0x55, 0x98, 0x0C, 0x91, 0xD8, 0xBB, 0xB4, 0xC1, 0xEA, 0x97, 0x61, 0x8A, 0x4B, 0xF0, 0x3F, 0x42, 0x58, 0x19, 0x48, 0xB2, 0xEE, - 0x4E, 0xE7, 0xAD, 0x67 }, + 0x4E, 0xE7, 0xAD, 0x67 } +}; +#endif - /* - * SHA-256 test vectors - */ +/* + * SHA-256 test vectors + */ +#if defined(MBEDTLS_SHA256_C) +static sha_test_sum_t sha256_test_sum[] = +{ { 0xBA, 0x78, 0x16, 0xBF, 0x8F, 0x01, 0xCF, 0xEA, 0x41, 0x41, 0x40, 0xDE, 0x5D, 0xAE, 0x22, 0x23, 0xB0, 0x03, 0x61, 0xA3, 0x96, 0x17, 0x7A, 0x9C, @@ -753,17 +769,29 @@ static const unsigned char sha256_test_sum[6][32] = 0xF1, 0x80, 0x9A, 0x48, 0xA4, 0x97, 0x20, 0x0E, 0x04, 0x6D, 0x39, 0xCC, 0xC7, 0x11, 0x2C, 0xD0 } }; +#endif /* * Checkup routine */ -int mbedtls_sha256_self_test( int verbose ) +static int mbedtls_sha256_common_self_test( int verbose, int is224 ) { - int i, j, k, buflen, ret = 0; + int i, buflen, ret = 0; unsigned char *buf; unsigned char sha256sum[32]; mbedtls_sha256_context ctx; + sha_test_sum_t* sha_test_sum; + + sha_test_sum = +#if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) + ( is224 ) ? sha224_test_sum : sha256_test_sum; +#elif defined(MBEDTLS_SHA256_C) + sha256_test_sum; +#else + sha224_test_sum; +#endif + buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); if( NULL == buf ) { @@ -775,22 +803,19 @@ int mbedtls_sha256_self_test( int verbose ) mbedtls_sha256_init( &ctx ); - for( i = 0; i < 6; i++ ) + for( i = 0; i < 3; i++ ) { - j = i % 3; - k = i < 3; - if( verbose != 0 ) - mbedtls_printf( " SHA-%d test #%d: ", 256 - k * 32, j + 1 ); + mbedtls_printf( " SHA-%d test #%d: ", 256 - is224 * 32, i + 1 ); - if( ( ret = mbedtls_sha256_starts( &ctx, k ) ) != 0 ) + if( ( ret = mbedtls_sha256_starts( &ctx, is224 ) ) != 0 ) goto fail; - if( j == 2 ) + if( i == 2 ) { memset( buf, 'a', buflen = 1000 ); - for( j = 0; j < 1000; j++ ) + for( int j = 0; j < 1000; j++ ) { ret = mbedtls_sha256_update( &ctx, buf, buflen ); if( ret != 0 ) @@ -800,8 +825,8 @@ int mbedtls_sha256_self_test( int verbose ) } else { - ret = mbedtls_sha256_update( &ctx, sha256_test_buf[j], - sha256_test_buflen[j] ); + ret = mbedtls_sha256_update( &ctx, sha_test_buf[i], + sha_test_buflen[i] ); if( ret != 0 ) goto fail; } @@ -810,7 +835,7 @@ int mbedtls_sha256_self_test( int verbose ) goto fail; - if( memcmp( sha256sum, sha256_test_sum[i], 32 - k * 4 ) != 0 ) + if( memcmp( sha256sum, sha_test_sum[i], 32 - is224 * 4 ) != 0 ) { ret = 1; goto fail; @@ -836,6 +861,20 @@ exit: return( ret ); } +#if defined(MBEDTLS_SHA256_C) +int mbedtls_sha256_self_test( int verbose ) +{ + return mbedtls_sha256_common_self_test( verbose, 0 ); +} +#endif /* MBEDTLS_SHA256_C */ + +#if defined(MBEDTLS_SHA224_C) +int mbedtls_sha224_self_test( int verbose ) +{ + return mbedtls_sha256_common_self_test( verbose, 1 ); +} +#endif /* MBEDTLS_SHA224_C */ + #endif /* MBEDTLS_SELF_TEST */ -#endif /* MBEDTLS_SHA256_C */ +#endif /* MBEDTLS_SHA256_C || MBEDTLS_SHA224_C */ From 46e8fd8263a0806028f8cac919cb030c9d8d3a2b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 14 Dec 2022 10:58:02 +0100 Subject: [PATCH 1213/1574] test: sha: test SHA224 and SHA256 separately This is meant to adapt to the new library design in which SHA224 and SHA256 can be built independently from each other. Signed-off-by: Valerio Setti --- programs/test/selftest.c | 3 +++ tests/suites/test_suite_shax.data | 4 ++++ tests/suites/test_suite_shax.function | 17 ++++++++++++----- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/programs/test/selftest.c b/programs/test/selftest.c index 163fda924..de1ee0fdb 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -243,6 +243,9 @@ const selftest_t selftests[] = #if defined(MBEDTLS_SHA1_C) {"sha1", mbedtls_sha1_self_test}, #endif +#if defined(MBEDTLS_SHA224_C) + {"sha256", mbedtls_sha224_self_test}, +#endif #if defined(MBEDTLS_SHA256_C) {"sha256", mbedtls_sha256_self_test}, #endif diff --git a/tests/suites/test_suite_shax.data b/tests/suites/test_suite_shax.data index dce9b7dc1..2af85c3cd 100644 --- a/tests/suites/test_suite_shax.data +++ b/tests/suites/test_suite_shax.data @@ -169,6 +169,10 @@ SHA-1 Selftest depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA1_C sha1_selftest: +SHA-224 Selftest +depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA224_C +sha224_selftest: + SHA-256 Selftest depends_on:MBEDTLS_SELF_TEST:MBEDTLS_SHA256_C sha256_selftest: diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index c3c1708c9..79afe015d 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -46,9 +46,9 @@ void sha224( data_t * src_str, data_t * hash ) memset(output, 0x00, 57); - TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 1 ) == 0 ); + TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 1 ), 0 ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ) == 0 ); + TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ), 0 ); } /* END_CASE */ @@ -60,9 +60,9 @@ void mbedtls_sha256( data_t * src_str, data_t * hash ) memset(output, 0x00, 65); - TEST_ASSERT( mbedtls_sha256( src_str->x, src_str->len, output, 0 ) == 0 ); + TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 0 ), 0 ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ) == 0 ); + TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ), 0 ); } /* END_CASE */ @@ -121,10 +121,17 @@ void sha1_selftest( ) } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_SHA224_C:MBEDTLS_SELF_TEST */ +void sha224_selftest( ) +{ + TEST_EQUAL( mbedtls_sha224_self_test( 1 ), 0 ); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */ void sha256_selftest( ) { - TEST_ASSERT( mbedtls_sha256_self_test( 1 ) == 0 ); + TEST_EQUAL( mbedtls_sha256_self_test( 1 ), 0 ); } /* END_CASE */ From 552e10752b42c8b7af33d4a3403f49e83b53d7c9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 14 Dec 2022 17:01:51 +0000 Subject: [PATCH 1214/1574] ChangeLog fix Signed-off-by: Dave Rodgman --- ChangeLog | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index bdeb8f0a0..5de864154 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,12 +2,6 @@ Mbed TLS ChangeLog (Sorted per branch, date) = Mbed TLS 3.3.0 branch released 2022-12-14 -API changes - * Add an ad-hoc key derivation function handling EC J-PAKE to PMS - calculation that can be used to derive the session secret in TLS 1.2, - as described in draft-cragie-tls-ecjpake-01. This can be achieved by - using PSA_ALG_TLS12_ECJPAKE_TO_PMS as the key derivation algorithm. - Default behavior changes * Previously the macro MBEDTLS_SSL_DTLS_CONNECTION_ID implemented version 05 of the IETF draft, and was marked experimental and disabled by default. @@ -103,6 +97,10 @@ Features implementations of raw key agreement through the key_agreement driver entry point. This entry point is specified in the proposed PSA driver interface, but had not yet been implemented. + * Add an ad-hoc key derivation function handling EC J-PAKE to PMS + calculation that can be used to derive the session secret in TLS 1.2, + as described in draft-cragie-tls-ecjpake-01. This can be achieved by + using PSA_ALG_TLS12_ECJPAKE_TO_PMS as the key derivation algorithm. Security * Fix potential heap buffer overread and overwrite in DTLS if From e90ed7d249c521fca2345f8e0b26d425e07d2d5f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 14 Dec 2022 17:04:00 +0000 Subject: [PATCH 1215/1574] Bump versions for libmbedcrypto and libmbedtls Signed-off-by: Dave Rodgman --- library/CMakeLists.txt | 4 ++-- library/Makefile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index d846c496d..c9714bbfb 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -282,7 +282,7 @@ endif(USE_STATIC_MBEDTLS_LIBRARY) if(USE_SHARED_MBEDTLS_LIBRARY) set(CMAKE_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR}) add_library(${mbedcrypto_target} SHARED ${src_crypto}) - set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.3.0 SOVERSION 12) + set_target_properties(${mbedcrypto_target} PROPERTIES VERSION 3.3.0 SOVERSION 13) target_link_libraries(${mbedcrypto_target} PUBLIC ${libs}) if(TARGET everest) @@ -294,7 +294,7 @@ if(USE_SHARED_MBEDTLS_LIBRARY) target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${mbedcrypto_target}) add_library(${mbedtls_target} SHARED ${src_tls}) - set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.3.0 SOVERSION 18) + set_target_properties(${mbedtls_target} PROPERTIES VERSION 3.3.0 SOVERSION 19) target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target}) endif(USE_SHARED_MBEDTLS_LIBRARY) diff --git a/library/Makefile b/library/Makefile index 5073517ce..dd16d0615 100644 --- a/library/Makefile +++ b/library/Makefile @@ -47,9 +47,9 @@ LOCAL_CFLAGS += -fPIC -fpic endif endif -SOEXT_TLS?=so.18 +SOEXT_TLS?=so.19 SOEXT_X509?=so.4 -SOEXT_CRYPTO?=so.12 +SOEXT_CRYPTO?=so.13 # Set AR_DASH= (empty string) to use an ar implementation that does not accept # the - prefix for command line options (e.g. llvm-ar) From ebef3562c3323ea87ba25555cbea25dbfcdc1852 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 14 Dec 2022 19:12:05 +0000 Subject: [PATCH 1216/1574] Revert "Add generated files" This reverts commit c18d93270524af261e44ef96292a609b541da705. Signed-off-by: Dave Rodgman --- library/error.c | 873 - library/psa_crypto_driver_wrappers.c | 2582 -- library/ssl_debug_helpers_generated.c | 223 - library/version_features.c | 809 - programs/psa/psa_constant_names_generated.c | 474 - programs/test/query_config.c | 4692 --- tests/suites/test_suite_bignum.generated.data | 975 - .../test_suite_bignum_core.generated.data | 13499 ------- .../test_suite_bignum_mod.generated.data | 1380 - .../test_suite_bignum_mod_raw.generated.data | 3573 -- ...ite_psa_crypto_generate_key.generated.data | 358 - ...te_psa_crypto_not_supported.generated.data | 931 - ...st_suite_psa_crypto_op_fail.generated.data | 30822 ---------------- ...ite_psa_crypto_storage_format.current.data | 8035 ---- ...st_suite_psa_crypto_storage_format.v0.data | 8395 ----- visualc/VS2010/aead_demo.vcxproj | 167 - visualc/VS2010/benchmark.vcxproj | 167 - visualc/VS2010/cert_app.vcxproj | 167 - visualc/VS2010/cert_req.vcxproj | 167 - visualc/VS2010/cert_write.vcxproj | 167 - visualc/VS2010/cipher_aead_demo.vcxproj | 167 - visualc/VS2010/crl_app.vcxproj | 167 - visualc/VS2010/crypt_and_hash.vcxproj | 167 - visualc/VS2010/crypto_examples.vcxproj | 167 - visualc/VS2010/dh_client.vcxproj | 167 - visualc/VS2010/dh_genprime.vcxproj | 167 - visualc/VS2010/dh_server.vcxproj | 167 - visualc/VS2010/dtls_client.vcxproj | 167 - visualc/VS2010/dtls_server.vcxproj | 167 - visualc/VS2010/ecdh_curve25519.vcxproj | 167 - visualc/VS2010/ecdsa.vcxproj | 167 - visualc/VS2010/gen_entropy.vcxproj | 167 - visualc/VS2010/gen_key.vcxproj | 167 - visualc/VS2010/gen_random_ctr_drbg.vcxproj | 167 - visualc/VS2010/generic_sum.vcxproj | 167 - visualc/VS2010/hello.vcxproj | 167 - visualc/VS2010/hmac_demo.vcxproj | 167 - visualc/VS2010/key_app.vcxproj | 167 - visualc/VS2010/key_app_writer.vcxproj | 167 - visualc/VS2010/key_ladder_demo.vcxproj | 167 - visualc/VS2010/load_roots.vcxproj | 167 - visualc/VS2010/mbedTLS.sln | 741 - visualc/VS2010/mbedTLS.vcxproj | 424 - visualc/VS2010/md_hmac_demo.vcxproj | 167 - visualc/VS2010/mini_client.vcxproj | 167 - visualc/VS2010/mpi_demo.vcxproj | 167 - visualc/VS2010/pem2der.vcxproj | 167 - visualc/VS2010/pk_decrypt.vcxproj | 167 - visualc/VS2010/pk_encrypt.vcxproj | 167 - visualc/VS2010/pk_sign.vcxproj | 167 - visualc/VS2010/pk_verify.vcxproj | 167 - visualc/VS2010/psa_constant_names.vcxproj | 167 - .../VS2010/query_compile_time_config.vcxproj | 168 - visualc/VS2010/req_app.vcxproj | 167 - visualc/VS2010/rsa_decrypt.vcxproj | 167 - visualc/VS2010/rsa_encrypt.vcxproj | 167 - visualc/VS2010/rsa_genkey.vcxproj | 167 - visualc/VS2010/rsa_sign.vcxproj | 167 - visualc/VS2010/rsa_sign_pss.vcxproj | 167 - visualc/VS2010/rsa_verify.vcxproj | 167 - visualc/VS2010/rsa_verify_pss.vcxproj | 167 - visualc/VS2010/selftest.vcxproj | 167 - visualc/VS2010/ssl_client1.vcxproj | 167 - visualc/VS2010/ssl_client2.vcxproj | 169 - visualc/VS2010/ssl_context_info.vcxproj | 167 - visualc/VS2010/ssl_fork_server.vcxproj | 167 - visualc/VS2010/ssl_mail_client.vcxproj | 167 - visualc/VS2010/ssl_server.vcxproj | 167 - visualc/VS2010/ssl_server2.vcxproj | 169 - visualc/VS2010/strerror.vcxproj | 167 - visualc/VS2010/udp_proxy.vcxproj | 167 - visualc/VS2010/zeroize.vcxproj | 167 - 72 files changed, 87976 deletions(-) delete mode 100644 library/error.c delete mode 100644 library/psa_crypto_driver_wrappers.c delete mode 100644 library/ssl_debug_helpers_generated.c delete mode 100644 library/version_features.c delete mode 100644 programs/psa/psa_constant_names_generated.c delete mode 100644 programs/test/query_config.c delete mode 100644 tests/suites/test_suite_bignum.generated.data delete mode 100644 tests/suites/test_suite_bignum_core.generated.data delete mode 100644 tests/suites/test_suite_bignum_mod.generated.data delete mode 100644 tests/suites/test_suite_bignum_mod_raw.generated.data delete mode 100644 tests/suites/test_suite_psa_crypto_generate_key.generated.data delete mode 100644 tests/suites/test_suite_psa_crypto_not_supported.generated.data delete mode 100644 tests/suites/test_suite_psa_crypto_op_fail.generated.data delete mode 100644 tests/suites/test_suite_psa_crypto_storage_format.current.data delete mode 100644 tests/suites/test_suite_psa_crypto_storage_format.v0.data delete mode 100644 visualc/VS2010/aead_demo.vcxproj delete mode 100644 visualc/VS2010/benchmark.vcxproj delete mode 100644 visualc/VS2010/cert_app.vcxproj delete mode 100644 visualc/VS2010/cert_req.vcxproj delete mode 100644 visualc/VS2010/cert_write.vcxproj delete mode 100644 visualc/VS2010/cipher_aead_demo.vcxproj delete mode 100644 visualc/VS2010/crl_app.vcxproj delete mode 100644 visualc/VS2010/crypt_and_hash.vcxproj delete mode 100644 visualc/VS2010/crypto_examples.vcxproj delete mode 100644 visualc/VS2010/dh_client.vcxproj delete mode 100644 visualc/VS2010/dh_genprime.vcxproj delete mode 100644 visualc/VS2010/dh_server.vcxproj delete mode 100644 visualc/VS2010/dtls_client.vcxproj delete mode 100644 visualc/VS2010/dtls_server.vcxproj delete mode 100644 visualc/VS2010/ecdh_curve25519.vcxproj delete mode 100644 visualc/VS2010/ecdsa.vcxproj delete mode 100644 visualc/VS2010/gen_entropy.vcxproj delete mode 100644 visualc/VS2010/gen_key.vcxproj delete mode 100644 visualc/VS2010/gen_random_ctr_drbg.vcxproj delete mode 100644 visualc/VS2010/generic_sum.vcxproj delete mode 100644 visualc/VS2010/hello.vcxproj delete mode 100644 visualc/VS2010/hmac_demo.vcxproj delete mode 100644 visualc/VS2010/key_app.vcxproj delete mode 100644 visualc/VS2010/key_app_writer.vcxproj delete mode 100644 visualc/VS2010/key_ladder_demo.vcxproj delete mode 100644 visualc/VS2010/load_roots.vcxproj delete mode 100644 visualc/VS2010/mbedTLS.sln delete mode 100644 visualc/VS2010/mbedTLS.vcxproj delete mode 100644 visualc/VS2010/md_hmac_demo.vcxproj delete mode 100644 visualc/VS2010/mini_client.vcxproj delete mode 100644 visualc/VS2010/mpi_demo.vcxproj delete mode 100644 visualc/VS2010/pem2der.vcxproj delete mode 100644 visualc/VS2010/pk_decrypt.vcxproj delete mode 100644 visualc/VS2010/pk_encrypt.vcxproj delete mode 100644 visualc/VS2010/pk_sign.vcxproj delete mode 100644 visualc/VS2010/pk_verify.vcxproj delete mode 100644 visualc/VS2010/psa_constant_names.vcxproj delete mode 100644 visualc/VS2010/query_compile_time_config.vcxproj delete mode 100644 visualc/VS2010/req_app.vcxproj delete mode 100644 visualc/VS2010/rsa_decrypt.vcxproj delete mode 100644 visualc/VS2010/rsa_encrypt.vcxproj delete mode 100644 visualc/VS2010/rsa_genkey.vcxproj delete mode 100644 visualc/VS2010/rsa_sign.vcxproj delete mode 100644 visualc/VS2010/rsa_sign_pss.vcxproj delete mode 100644 visualc/VS2010/rsa_verify.vcxproj delete mode 100644 visualc/VS2010/rsa_verify_pss.vcxproj delete mode 100644 visualc/VS2010/selftest.vcxproj delete mode 100644 visualc/VS2010/ssl_client1.vcxproj delete mode 100644 visualc/VS2010/ssl_client2.vcxproj delete mode 100644 visualc/VS2010/ssl_context_info.vcxproj delete mode 100644 visualc/VS2010/ssl_fork_server.vcxproj delete mode 100644 visualc/VS2010/ssl_mail_client.vcxproj delete mode 100644 visualc/VS2010/ssl_server.vcxproj delete mode 100644 visualc/VS2010/ssl_server2.vcxproj delete mode 100644 visualc/VS2010/strerror.vcxproj delete mode 100644 visualc/VS2010/udp_proxy.vcxproj delete mode 100644 visualc/VS2010/zeroize.vcxproj diff --git a/library/error.c b/library/error.c deleted file mode 100644 index 3ab1cd6e8..000000000 --- a/library/error.c +++ /dev/null @@ -1,873 +0,0 @@ -/* - * Error message information - * - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "common.h" - -#include "mbedtls/error.h" - -#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) - -#if defined(MBEDTLS_ERROR_C) - -#include "mbedtls/platform.h" - -#include -#include - -#if defined(MBEDTLS_AES_C) -#include "mbedtls/aes.h" -#endif - -#if defined(MBEDTLS_ARIA_C) -#include "mbedtls/aria.h" -#endif - -#if defined(MBEDTLS_ASN1_PARSE_C) -#include "mbedtls/asn1.h" -#endif - -#if defined(MBEDTLS_BASE64_C) -#include "mbedtls/base64.h" -#endif - -#if defined(MBEDTLS_BIGNUM_C) -#include "mbedtls/bignum.h" -#endif - -#if defined(MBEDTLS_CAMELLIA_C) -#include "mbedtls/camellia.h" -#endif - -#if defined(MBEDTLS_CCM_C) -#include "mbedtls/ccm.h" -#endif - -#if defined(MBEDTLS_CHACHA20_C) -#include "mbedtls/chacha20.h" -#endif - -#if defined(MBEDTLS_CHACHAPOLY_C) -#include "mbedtls/chachapoly.h" -#endif - -#if defined(MBEDTLS_CIPHER_C) -#include "mbedtls/cipher.h" -#endif - -#if defined(MBEDTLS_CTR_DRBG_C) -#include "mbedtls/ctr_drbg.h" -#endif - -#if defined(MBEDTLS_DES_C) -#include "mbedtls/des.h" -#endif - -#if defined(MBEDTLS_DHM_C) -#include "mbedtls/dhm.h" -#endif - -#if defined(MBEDTLS_ECP_C) -#include "mbedtls/ecp.h" -#endif - -#if defined(MBEDTLS_ENTROPY_C) -#include "mbedtls/entropy.h" -#endif - -#if defined(MBEDTLS_ERROR_C) -#include "mbedtls/error.h" -#endif - -#if defined(MBEDTLS_PLATFORM_C) -#include "mbedtls/platform.h" -#endif - -#if defined(MBEDTLS_GCM_C) -#include "mbedtls/gcm.h" -#endif - -#if defined(MBEDTLS_HKDF_C) -#include "mbedtls/hkdf.h" -#endif - -#if defined(MBEDTLS_HMAC_DRBG_C) -#include "mbedtls/hmac_drbg.h" -#endif - -#if defined(MBEDTLS_LMS_C) -#include "mbedtls/lms.h" -#endif - -#if defined(MBEDTLS_MD_C) -#include "mbedtls/md.h" -#endif - -#if defined(MBEDTLS_NET_C) -#include "mbedtls/net_sockets.h" -#endif - -#if defined(MBEDTLS_OID_C) -#include "mbedtls/oid.h" -#endif - -#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) -#include "mbedtls/pem.h" -#endif - -#if defined(MBEDTLS_PK_C) -#include "mbedtls/pk.h" -#endif - -#if defined(MBEDTLS_PKCS12_C) -#include "mbedtls/pkcs12.h" -#endif - -#if defined(MBEDTLS_PKCS5_C) -#include "mbedtls/pkcs5.h" -#endif - -#if defined(MBEDTLS_PKCS7_C) -#include "mbedtls/pkcs7.h" -#endif - -#if defined(MBEDTLS_POLY1305_C) -#include "mbedtls/poly1305.h" -#endif - -#if defined(MBEDTLS_RSA_C) -#include "mbedtls/rsa.h" -#endif - -#if defined(MBEDTLS_SHA1_C) -#include "mbedtls/sha1.h" -#endif - -#if defined(MBEDTLS_SHA256_C) -#include "mbedtls/sha256.h" -#endif - -#if defined(MBEDTLS_SHA512_C) -#include "mbedtls/sha512.h" -#endif - -#if defined(MBEDTLS_SSL_TLS_C) -#include "mbedtls/ssl.h" -#endif - -#if defined(MBEDTLS_THREADING_C) -#include "mbedtls/threading.h" -#endif - -#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) -#include "mbedtls/x509.h" -#endif - - -const char * mbedtls_high_level_strerr( int error_code ) -{ - int high_level_error_code; - - if( error_code < 0 ) - error_code = -error_code; - - /* Extract the high-level part from the error code. */ - high_level_error_code = error_code & 0xFF80; - - switch( high_level_error_code ) - { - /* Begin Auto-Generated Code. */ -#if defined(MBEDTLS_CIPHER_C) - case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE): - return( "CIPHER - The selected feature is not available" ); - case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA): - return( "CIPHER - Bad input parameters" ); - case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED): - return( "CIPHER - Failed to allocate memory" ); - case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING): - return( "CIPHER - Input data contains invalid padding and is rejected" ); - case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED): - return( "CIPHER - Decryption of block requires a full block" ); - case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED): - return( "CIPHER - Authentication failed (for AEAD modes)" ); - case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT): - return( "CIPHER - The context is invalid. For example, because it was freed" ); -#endif /* MBEDTLS_CIPHER_C */ - -#if defined(MBEDTLS_DHM_C) - case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA): - return( "DHM - Bad input parameters" ); - case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED): - return( "DHM - Reading of the DHM parameters failed" ); - case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED): - return( "DHM - Making of the DHM parameters failed" ); - case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED): - return( "DHM - Reading of the public values failed" ); - case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED): - return( "DHM - Making of the public value failed" ); - case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED): - return( "DHM - Calculation of the DHM secret failed" ); - case -(MBEDTLS_ERR_DHM_INVALID_FORMAT): - return( "DHM - The ASN.1 data is not formatted correctly" ); - case -(MBEDTLS_ERR_DHM_ALLOC_FAILED): - return( "DHM - Allocation of memory failed" ); - case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR): - return( "DHM - Read or write of file failed" ); - case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED): - return( "DHM - Setting the modulus and generator failed" ); -#endif /* MBEDTLS_DHM_C */ - -#if defined(MBEDTLS_ECP_C) - case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA): - return( "ECP - Bad input parameters to function" ); - case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL): - return( "ECP - The buffer is too small to write to" ); - case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE): - return( "ECP - The requested feature is not available, for example, the requested curve is not supported" ); - case -(MBEDTLS_ERR_ECP_VERIFY_FAILED): - return( "ECP - The signature is not valid" ); - case -(MBEDTLS_ERR_ECP_ALLOC_FAILED): - return( "ECP - Memory allocation failed" ); - case -(MBEDTLS_ERR_ECP_RANDOM_FAILED): - return( "ECP - Generation of random value, such as ephemeral key, failed" ); - case -(MBEDTLS_ERR_ECP_INVALID_KEY): - return( "ECP - Invalid private or public key" ); - case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH): - return( "ECP - The buffer contains a valid signature followed by more data" ); - case -(MBEDTLS_ERR_ECP_IN_PROGRESS): - return( "ECP - Operation in progress, call again with the same parameters to continue" ); -#endif /* MBEDTLS_ECP_C */ - -#if defined(MBEDTLS_MD_C) - case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE): - return( "MD - The selected feature is not available" ); - case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA): - return( "MD - Bad input parameters to function" ); - case -(MBEDTLS_ERR_MD_ALLOC_FAILED): - return( "MD - Failed to allocate memory" ); - case -(MBEDTLS_ERR_MD_FILE_IO_ERROR): - return( "MD - Opening or reading of file failed" ); -#endif /* MBEDTLS_MD_C */ - -#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) - case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT): - return( "PEM - No PEM header or footer found" ); - case -(MBEDTLS_ERR_PEM_INVALID_DATA): - return( "PEM - PEM string is not as expected" ); - case -(MBEDTLS_ERR_PEM_ALLOC_FAILED): - return( "PEM - Failed to allocate memory" ); - case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV): - return( "PEM - RSA IV is not in hex-format" ); - case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG): - return( "PEM - Unsupported key encryption algorithm" ); - case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED): - return( "PEM - Private key password can't be empty" ); - case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH): - return( "PEM - Given private key password does not allow for correct decryption" ); - case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE): - return( "PEM - Unavailable feature, e.g. hashing/encryption combination" ); - case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA): - return( "PEM - Bad input parameters to function" ); -#endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */ - -#if defined(MBEDTLS_PK_C) - case -(MBEDTLS_ERR_PK_ALLOC_FAILED): - return( "PK - Memory allocation failed" ); - case -(MBEDTLS_ERR_PK_TYPE_MISMATCH): - return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" ); - case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA): - return( "PK - Bad input parameters to function" ); - case -(MBEDTLS_ERR_PK_FILE_IO_ERROR): - return( "PK - Read/write of file failed" ); - case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION): - return( "PK - Unsupported key version" ); - case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT): - return( "PK - Invalid key tag or value" ); - case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG): - return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" ); - case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED): - return( "PK - Private key password can't be empty" ); - case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH): - return( "PK - Given private key password does not allow for correct decryption" ); - case -(MBEDTLS_ERR_PK_INVALID_PUBKEY): - return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" ); - case -(MBEDTLS_ERR_PK_INVALID_ALG): - return( "PK - The algorithm tag or value is invalid" ); - case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE): - return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" ); - case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE): - return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" ); - case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH): - return( "PK - The buffer contains a valid signature followed by more data" ); - case -(MBEDTLS_ERR_PK_BUFFER_TOO_SMALL): - return( "PK - The output buffer is too small" ); -#endif /* MBEDTLS_PK_C */ - -#if defined(MBEDTLS_PKCS12_C) - case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA): - return( "PKCS12 - Bad input parameters to function" ); - case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE): - return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" ); - case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT): - return( "PKCS12 - PBE ASN.1 data not as expected" ); - case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH): - return( "PKCS12 - Given private key password does not allow for correct decryption" ); -#endif /* MBEDTLS_PKCS12_C */ - -#if defined(MBEDTLS_PKCS5_C) - case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA): - return( "PKCS5 - Bad input parameters to function" ); - case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT): - return( "PKCS5 - Unexpected ASN.1 data" ); - case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE): - return( "PKCS5 - Requested encryption or digest alg not available" ); - case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH): - return( "PKCS5 - Given private key password does not allow for correct decryption" ); -#endif /* MBEDTLS_PKCS5_C */ - -#if defined(MBEDTLS_PKCS7_C) - case -(MBEDTLS_ERR_PKCS7_INVALID_FORMAT): - return( "PKCS7 - The format is invalid, e.g. different type expected" ); - case -(MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE): - return( "PKCS7 - Unavailable feature, e.g. anything other than signed data" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_VERSION): - return( "PKCS7 - The PKCS7 version element is invalid or cannot be parsed" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO): - return( "PKCS7 - The PKCS7 content info invalid or cannot be parsed" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_ALG): - return( "PKCS7 - The algorithm tag or value is invalid or cannot be parsed" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_CERT): - return( "PKCS7 - The certificate tag or value is invalid or cannot be parsed" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE): - return( "PKCS7 - Error parsing the signature" ); - case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO): - return( "PKCS7 - Error parsing the signer's info" ); - case -(MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA): - return( "PKCS7 - Input invalid" ); - case -(MBEDTLS_ERR_PKCS7_ALLOC_FAILED): - return( "PKCS7 - Allocation of memory failed" ); - case -(MBEDTLS_ERR_PKCS7_VERIFY_FAIL): - return( "PKCS7 - Verification Failed" ); - case -(MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID): - return( "PKCS7 - The PKCS7 date issued/expired dates are invalid" ); -#endif /* MBEDTLS_PKCS7_C */ - -#if defined(MBEDTLS_RSA_C) - case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA): - return( "RSA - Bad input parameters to function" ); - case -(MBEDTLS_ERR_RSA_INVALID_PADDING): - return( "RSA - Input data contains invalid padding and is rejected" ); - case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED): - return( "RSA - Something failed during generation of a key" ); - case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED): - return( "RSA - Key failed to pass the validity check of the library" ); - case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED): - return( "RSA - The public key operation failed" ); - case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED): - return( "RSA - The private key operation failed" ); - case -(MBEDTLS_ERR_RSA_VERIFY_FAILED): - return( "RSA - The PKCS#1 verification failed" ); - case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE): - return( "RSA - The output buffer for decryption is not large enough" ); - case -(MBEDTLS_ERR_RSA_RNG_FAILED): - return( "RSA - The random generator failed to generate non-zeros" ); -#endif /* MBEDTLS_RSA_C */ - -#if defined(MBEDTLS_SSL_TLS_C) - case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS): - return( "SSL - A cryptographic operation is in progress. Try again later" ); - case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE): - return( "SSL - The requested feature is not available" ); - case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA): - return( "SSL - Bad input parameters to function" ); - case -(MBEDTLS_ERR_SSL_INVALID_MAC): - return( "SSL - Verification of the message MAC failed" ); - case -(MBEDTLS_ERR_SSL_INVALID_RECORD): - return( "SSL - An invalid SSL record was received" ); - case -(MBEDTLS_ERR_SSL_CONN_EOF): - return( "SSL - The connection indicated an EOF" ); - case -(MBEDTLS_ERR_SSL_DECODE_ERROR): - return( "SSL - A message could not be parsed due to a syntactic error" ); - case -(MBEDTLS_ERR_SSL_NO_RNG): - return( "SSL - No RNG was provided to the SSL module" ); - case -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE): - return( "SSL - No client certification received from the client, but required by the authentication mode" ); - case -(MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION): - return( "SSL - Client received an extended server hello containing an unsupported extension" ); - case -(MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL): - return( "SSL - No ALPN protocols supported that the client advertises" ); - case -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED): - return( "SSL - The own private key or pre-shared key is not set, but needed" ); - case -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED): - return( "SSL - No CA Chain is set, but required to operate" ); - case -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE): - return( "SSL - An unexpected message was received from our peer" ); - case -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE): - return( "SSL - A fatal alert message was received from our peer" ); - case -(MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME): - return( "SSL - No server could be identified matching the client's SNI" ); - case -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY): - return( "SSL - The peer notified us that the connection is going to be closed" ); - case -(MBEDTLS_ERR_SSL_BAD_CERTIFICATE): - return( "SSL - Processing of the Certificate handshake message failed" ); - case -(MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET): - return( "SSL - * Received NewSessionTicket Post Handshake Message. This error code is experimental and may be changed or removed without notice" ); - case -(MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA): - return( "SSL - Not possible to read early data" ); - case -(MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA): - return( "SSL - Not possible to write early data" ); - case -(MBEDTLS_ERR_SSL_ALLOC_FAILED): - return( "SSL - Memory allocation failed" ); - case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED): - return( "SSL - Hardware acceleration function returned with error" ); - case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH): - return( "SSL - Hardware acceleration function skipped / left alone data" ); - case -(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION): - return( "SSL - Handshake protocol not within min/max boundaries" ); - case -(MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE): - return( "SSL - The handshake negotiation failed" ); - case -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED): - return( "SSL - Session ticket has expired" ); - case -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH): - return( "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" ); - case -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY): - return( "SSL - Unknown identity received (eg, PSK identity)" ); - case -(MBEDTLS_ERR_SSL_INTERNAL_ERROR): - return( "SSL - Internal error (eg, unexpected failure in lower-level module)" ); - case -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING): - return( "SSL - A counter would wrap (eg, too many messages exchanged)" ); - case -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO): - return( "SSL - Unexpected message at ServerHello in renegotiation" ); - case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED): - return( "SSL - DTLS client must retry for hello verification" ); - case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL): - return( "SSL - A buffer is too small to receive or write a message" ); - case -(MBEDTLS_ERR_SSL_WANT_READ): - return( "SSL - No data of requested type currently available on underlying transport" ); - case -(MBEDTLS_ERR_SSL_WANT_WRITE): - return( "SSL - Connection requires a write call" ); - case -(MBEDTLS_ERR_SSL_TIMEOUT): - return( "SSL - The operation timed out" ); - case -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT): - return( "SSL - The client initiated a reconnect from the same port" ); - case -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD): - return( "SSL - Record header looks valid but is not expected" ); - case -(MBEDTLS_ERR_SSL_NON_FATAL): - return( "SSL - The alert message received indicates a non-fatal error" ); - case -(MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER): - return( "SSL - A field in a message was incorrect or inconsistent with other fields" ); - case -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING): - return( "SSL - Internal-only message signaling that further message-processing should be done" ); - case -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS): - return( "SSL - The asynchronous operation is not completed yet" ); - case -(MBEDTLS_ERR_SSL_EARLY_MESSAGE): - return( "SSL - Internal-only message signaling that a message arrived early" ); - case -(MBEDTLS_ERR_SSL_UNEXPECTED_CID): - return( "SSL - An encrypted DTLS-frame with an unexpected CID was received" ); - case -(MBEDTLS_ERR_SSL_VERSION_MISMATCH): - return( "SSL - An operation failed due to an unexpected version or configuration" ); - case -(MBEDTLS_ERR_SSL_BAD_CONFIG): - return( "SSL - Invalid value in SSL config" ); -#endif /* MBEDTLS_SSL_TLS_C */ - -#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) - case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE): - return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" ); - case -(MBEDTLS_ERR_X509_UNKNOWN_OID): - return( "X509 - Requested OID is unknown" ); - case -(MBEDTLS_ERR_X509_INVALID_FORMAT): - return( "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" ); - case -(MBEDTLS_ERR_X509_INVALID_VERSION): - return( "X509 - The CRT/CRL/CSR version element is invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_SERIAL): - return( "X509 - The serial tag or value is invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_ALG): - return( "X509 - The algorithm tag or value is invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_NAME): - return( "X509 - The name tag or value is invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_DATE): - return( "X509 - The date tag or value is invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_SIGNATURE): - return( "X509 - The signature tag or value invalid" ); - case -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS): - return( "X509 - The extension tag or value is invalid" ); - case -(MBEDTLS_ERR_X509_UNKNOWN_VERSION): - return( "X509 - CRT/CRL/CSR has an unsupported version number" ); - case -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG): - return( "X509 - Signature algorithm (oid) is unsupported" ); - case -(MBEDTLS_ERR_X509_SIG_MISMATCH): - return( "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" ); - case -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED): - return( "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" ); - case -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT): - return( "X509 - Format not recognized as DER or PEM" ); - case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA): - return( "X509 - Input invalid" ); - case -(MBEDTLS_ERR_X509_ALLOC_FAILED): - return( "X509 - Allocation of memory failed" ); - case -(MBEDTLS_ERR_X509_FILE_IO_ERROR): - return( "X509 - Read/write of file failed" ); - case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL): - return( "X509 - Destination buffer is too small" ); - case -(MBEDTLS_ERR_X509_FATAL_ERROR): - return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" ); -#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */ - /* End Auto-Generated Code. */ - - default: - break; - } - - return( NULL ); -} - -const char * mbedtls_low_level_strerr( int error_code ) -{ - int low_level_error_code; - - if( error_code < 0 ) - error_code = -error_code; - - /* Extract the low-level part from the error code. */ - low_level_error_code = error_code & ~0xFF80; - - switch( low_level_error_code ) - { - /* Begin Auto-Generated Code. */ -#if defined(MBEDTLS_AES_C) - case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH): - return( "AES - Invalid key length" ); - case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH): - return( "AES - Invalid data input length" ); - case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA): - return( "AES - Invalid input data" ); -#endif /* MBEDTLS_AES_C */ - -#if defined(MBEDTLS_ARIA_C) - case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA): - return( "ARIA - Bad input data" ); - case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH): - return( "ARIA - Invalid data input length" ); -#endif /* MBEDTLS_ARIA_C */ - -#if defined(MBEDTLS_ASN1_PARSE_C) - case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA): - return( "ASN1 - Out of data when parsing an ASN1 data structure" ); - case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG): - return( "ASN1 - ASN1 tag was of an unexpected value" ); - case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH): - return( "ASN1 - Error when trying to determine the length or invalid length" ); - case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH): - return( "ASN1 - Actual length differs from expected length" ); - case -(MBEDTLS_ERR_ASN1_INVALID_DATA): - return( "ASN1 - Data is invalid" ); - case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED): - return( "ASN1 - Memory allocation failed" ); - case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL): - return( "ASN1 - Buffer too small when writing ASN.1 data structure" ); -#endif /* MBEDTLS_ASN1_PARSE_C */ - -#if defined(MBEDTLS_BASE64_C) - case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL): - return( "BASE64 - Output buffer too small" ); - case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER): - return( "BASE64 - Invalid character in input" ); -#endif /* MBEDTLS_BASE64_C */ - -#if defined(MBEDTLS_BIGNUM_C) - case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR): - return( "BIGNUM - An error occurred while reading from or writing to a file" ); - case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA): - return( "BIGNUM - Bad input parameters to function" ); - case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER): - return( "BIGNUM - There is an invalid character in the digit string" ); - case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL): - return( "BIGNUM - The buffer is too small to write to" ); - case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE): - return( "BIGNUM - The input arguments are negative or result in illegal output" ); - case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO): - return( "BIGNUM - The input argument for division is zero, which is not allowed" ); - case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE): - return( "BIGNUM - The input arguments are not acceptable" ); - case -(MBEDTLS_ERR_MPI_ALLOC_FAILED): - return( "BIGNUM - Memory allocation failed" ); -#endif /* MBEDTLS_BIGNUM_C */ - -#if defined(MBEDTLS_CAMELLIA_C) - case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA): - return( "CAMELLIA - Bad input data" ); - case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH): - return( "CAMELLIA - Invalid data input length" ); -#endif /* MBEDTLS_CAMELLIA_C */ - -#if defined(MBEDTLS_CCM_C) - case -(MBEDTLS_ERR_CCM_BAD_INPUT): - return( "CCM - Bad input parameters to the function" ); - case -(MBEDTLS_ERR_CCM_AUTH_FAILED): - return( "CCM - Authenticated decryption failed" ); -#endif /* MBEDTLS_CCM_C */ - -#if defined(MBEDTLS_CHACHA20_C) - case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA): - return( "CHACHA20 - Invalid input parameter(s)" ); -#endif /* MBEDTLS_CHACHA20_C */ - -#if defined(MBEDTLS_CHACHAPOLY_C) - case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE): - return( "CHACHAPOLY - The requested operation is not permitted in the current state" ); - case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED): - return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" ); -#endif /* MBEDTLS_CHACHAPOLY_C */ - -#if defined(MBEDTLS_CTR_DRBG_C) - case -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED): - return( "CTR_DRBG - The entropy source failed" ); - case -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG): - return( "CTR_DRBG - The requested random buffer length is too big" ); - case -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG): - return( "CTR_DRBG - The input (entropy + additional data) is too large" ); - case -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR): - return( "CTR_DRBG - Read or write error in file" ); -#endif /* MBEDTLS_CTR_DRBG_C */ - -#if defined(MBEDTLS_DES_C) - case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH): - return( "DES - The data input has an invalid length" ); -#endif /* MBEDTLS_DES_C */ - -#if defined(MBEDTLS_ENTROPY_C) - case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED): - return( "ENTROPY - Critical entropy source failure" ); - case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES): - return( "ENTROPY - No more sources can be added" ); - case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED): - return( "ENTROPY - No sources have been added to poll" ); - case -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE): - return( "ENTROPY - No strong sources have been added to poll" ); - case -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR): - return( "ENTROPY - Read/write error in file" ); -#endif /* MBEDTLS_ENTROPY_C */ - -#if defined(MBEDTLS_ERROR_C) - case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR): - return( "ERROR - Generic error" ); - case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED): - return( "ERROR - This is a bug in the library" ); -#endif /* MBEDTLS_ERROR_C */ - -#if defined(MBEDTLS_PLATFORM_C) - case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED): - return( "PLATFORM - Hardware accelerator failed" ); - case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED): - return( "PLATFORM - The requested feature is not supported by the platform" ); -#endif /* MBEDTLS_PLATFORM_C */ - -#if defined(MBEDTLS_GCM_C) - case -(MBEDTLS_ERR_GCM_AUTH_FAILED): - return( "GCM - Authenticated decryption failed" ); - case -(MBEDTLS_ERR_GCM_BAD_INPUT): - return( "GCM - Bad input parameters to function" ); - case -(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL): - return( "GCM - An output buffer is too small" ); -#endif /* MBEDTLS_GCM_C */ - -#if defined(MBEDTLS_HKDF_C) - case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA): - return( "HKDF - Bad input parameters to function" ); -#endif /* MBEDTLS_HKDF_C */ - -#if defined(MBEDTLS_HMAC_DRBG_C) - case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG): - return( "HMAC_DRBG - Too many random requested in single call" ); - case -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG): - return( "HMAC_DRBG - Input too large (Entropy + additional)" ); - case -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR): - return( "HMAC_DRBG - Read/write error in file" ); - case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED): - return( "HMAC_DRBG - The entropy source failed" ); -#endif /* MBEDTLS_HMAC_DRBG_C */ - -#if defined(MBEDTLS_LMS_C) - case -(MBEDTLS_ERR_LMS_BAD_INPUT_DATA): - return( "LMS - Bad data has been input to an LMS function" ); - case -(MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS): - return( "LMS - Specified LMS key has utilised all of its private keys" ); - case -(MBEDTLS_ERR_LMS_VERIFY_FAILED): - return( "LMS - LMS signature verification failed" ); - case -(MBEDTLS_ERR_LMS_ALLOC_FAILED): - return( "LMS - LMS failed to allocate space for a private key" ); - case -(MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL): - return( "LMS - Input/output buffer is too small to contain requited data" ); -#endif /* MBEDTLS_LMS_C */ - -#if defined(MBEDTLS_NET_C) - case -(MBEDTLS_ERR_NET_SOCKET_FAILED): - return( "NET - Failed to open a socket" ); - case -(MBEDTLS_ERR_NET_CONNECT_FAILED): - return( "NET - The connection to the given server / port failed" ); - case -(MBEDTLS_ERR_NET_BIND_FAILED): - return( "NET - Binding of the socket failed" ); - case -(MBEDTLS_ERR_NET_LISTEN_FAILED): - return( "NET - Could not listen on the socket" ); - case -(MBEDTLS_ERR_NET_ACCEPT_FAILED): - return( "NET - Could not accept the incoming connection" ); - case -(MBEDTLS_ERR_NET_RECV_FAILED): - return( "NET - Reading information from the socket failed" ); - case -(MBEDTLS_ERR_NET_SEND_FAILED): - return( "NET - Sending information through the socket failed" ); - case -(MBEDTLS_ERR_NET_CONN_RESET): - return( "NET - Connection was reset by peer" ); - case -(MBEDTLS_ERR_NET_UNKNOWN_HOST): - return( "NET - Failed to get an IP address for the given hostname" ); - case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL): - return( "NET - Buffer is too small to hold the data" ); - case -(MBEDTLS_ERR_NET_INVALID_CONTEXT): - return( "NET - The context is invalid, eg because it was free()ed" ); - case -(MBEDTLS_ERR_NET_POLL_FAILED): - return( "NET - Polling the net context failed" ); - case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA): - return( "NET - Input invalid" ); -#endif /* MBEDTLS_NET_C */ - -#if defined(MBEDTLS_OID_C) - case -(MBEDTLS_ERR_OID_NOT_FOUND): - return( "OID - OID is not found" ); - case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL): - return( "OID - output buffer is too small" ); -#endif /* MBEDTLS_OID_C */ - -#if defined(MBEDTLS_POLY1305_C) - case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA): - return( "POLY1305 - Invalid input parameter(s)" ); -#endif /* MBEDTLS_POLY1305_C */ - -#if defined(MBEDTLS_SHA1_C) - case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA): - return( "SHA1 - SHA-1 input data was malformed" ); -#endif /* MBEDTLS_SHA1_C */ - -#if defined(MBEDTLS_SHA256_C) - case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA): - return( "SHA256 - SHA-256 input data was malformed" ); -#endif /* MBEDTLS_SHA256_C */ - -#if defined(MBEDTLS_SHA512_C) - case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA): - return( "SHA512 - SHA-512 input data was malformed" ); -#endif /* MBEDTLS_SHA512_C */ - -#if defined(MBEDTLS_THREADING_C) - case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA): - return( "THREADING - Bad input parameters to function" ); - case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR): - return( "THREADING - Locking / unlocking / free failed with error code" ); -#endif /* MBEDTLS_THREADING_C */ - /* End Auto-Generated Code. */ - - default: - break; - } - - return( NULL ); -} - -void mbedtls_strerror( int ret, char *buf, size_t buflen ) -{ - size_t len; - int use_ret; - const char * high_level_error_description = NULL; - const char * low_level_error_description = NULL; - - if( buflen == 0 ) - return; - - memset( buf, 0x00, buflen ); - - if( ret < 0 ) - ret = -ret; - - if( ret & 0xFF80 ) - { - use_ret = ret & 0xFF80; - - // Translate high level error code. - high_level_error_description = mbedtls_high_level_strerr( ret ); - - if( high_level_error_description == NULL ) - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); - else - mbedtls_snprintf( buf, buflen, "%s", high_level_error_description ); - -#if defined(MBEDTLS_SSL_TLS_C) - // Early return in case of a fatal error - do not try to translate low - // level code. - if(use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) - return; -#endif /* MBEDTLS_SSL_TLS_C */ - } - - use_ret = ret & ~0xFF80; - - if( use_ret == 0 ) - return; - - // If high level code is present, make a concatenation between both - // error strings. - // - len = strlen( buf ); - - if( len > 0 ) - { - if( buflen - len < 5 ) - return; - - mbedtls_snprintf( buf + len, buflen - len, " : " ); - - buf += len + 3; - buflen -= len + 3; - } - - // Translate low level error code. - low_level_error_description = mbedtls_low_level_strerr( ret ); - - if( low_level_error_description == NULL ) - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); - else - mbedtls_snprintf( buf, buflen, "%s", low_level_error_description ); -} - -#else /* MBEDTLS_ERROR_C */ - -/* - * Provide a dummy implementation when MBEDTLS_ERROR_C is not defined - */ -void mbedtls_strerror( int ret, char *buf, size_t buflen ) -{ - ((void) ret); - - if( buflen > 0 ) - buf[0] = '\0'; -} - -#endif /* MBEDTLS_ERROR_C */ - -#if defined(MBEDTLS_TEST_HOOKS) -void (*mbedtls_test_hook_error_add)( int, int, const char *, int ); -#endif - -#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */ diff --git a/library/psa_crypto_driver_wrappers.c b/library/psa_crypto_driver_wrappers.c deleted file mode 100644 index 198194139..000000000 --- a/library/psa_crypto_driver_wrappers.c +++ /dev/null @@ -1,2582 +0,0 @@ -/* - * Functions to delegate cryptographic operations to an available - * and appropriate accelerator. - * Warning: This file is now auto-generated. - */ -/* Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -/* BEGIN-common headers */ -#include "common.h" -#include "psa_crypto_aead.h" -#include "psa_crypto_cipher.h" -#include "psa_crypto_core.h" -#include "psa_crypto_driver_wrappers.h" -#include "psa_crypto_hash.h" -#include "psa_crypto_mac.h" -#include "psa_crypto_rsa.h" - -#include "mbedtls/platform.h" -/* END-common headers */ - -#if defined(MBEDTLS_PSA_CRYPTO_C) - -/* BEGIN-driver headers */ -#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) -/* Headers for mbedtls_test opaque driver */ -#if defined(PSA_CRYPTO_DRIVER_TEST) -#include "test/drivers/test_driver.h" - -#endif -/* Headers for mbedtls_test transparent driver */ -#if defined(PSA_CRYPTO_DRIVER_TEST) -#include "test/drivers/test_driver.h" - -#endif - -#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ -/* END-driver headers */ - -/* Auto-generated values depending on which drivers are registered. - * ID 0 is reserved for unallocated operations. - * ID 1 is reserved for the Mbed TLS software driver. */ -/* BEGIN-driver id definition */ -#define PSA_CRYPTO_MBED_TLS_DRIVER_ID (1) -#define MBEDTLS_TEST_OPAQUE_DRIVER_ID (2) -#define MBEDTLS_TEST_TRANSPARENT_DRIVER_ID (3) - -/* END-driver id */ - -/* BEGIN-Common Macro definitions */ - -/* END-Common Macro definitions */ - -/* Support the 'old' SE interface when asked to */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) -/* PSA_CRYPTO_DRIVER_PRESENT is defined when either a new-style or old-style - * SE driver is present, to avoid unused argument errors at compile time. */ -#ifndef PSA_CRYPTO_DRIVER_PRESENT -#define PSA_CRYPTO_DRIVER_PRESENT -#endif -#include "psa_crypto_se.h" -#endif - -psa_status_t psa_driver_wrapper_init( void ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - status = psa_init_all_se_drivers( ); - if( status != PSA_SUCCESS ) - return( status ); -#endif - -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_init( ); - if( status != PSA_SUCCESS ) - return( status ); - - status = mbedtls_test_opaque_init( ); - if( status != PSA_SUCCESS ) - return( status ); -#endif - - (void) status; - return( PSA_SUCCESS ); -} - -void psa_driver_wrapper_free( void ) -{ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - /* Unregister all secure element drivers, so that we restart from - * a pristine state. */ - psa_unregister_all_se_drivers( ); -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - -#if defined(PSA_CRYPTO_DRIVER_TEST) - mbedtls_test_transparent_free( ); - mbedtls_test_opaque_free( ); -#endif -} - -/* Start delegation functions */ -psa_status_t psa_driver_wrapper_sign_message( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_signature_sign_message( - attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_size, - signature_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - break; - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_signature_sign_message( - attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_size, - signature_length ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); - break; -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - break; - } - - return( psa_sign_message_builtin( attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_size, - signature_length ) ); -} - -psa_status_t psa_driver_wrapper_verify_message( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_signature_verify_message( - attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - break; - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_signature_verify_message( - attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_length ) ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); - break; -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - break; - } - - return( psa_verify_message_builtin( attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - signature, - signature_length ) ); -} - -psa_status_t psa_driver_wrapper_sign_hash( - 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 ) -{ - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - if( drv->asymmetric == NULL || - drv->asymmetric->p_sign == NULL ) - { - /* Key is defined in SE, but we have no way to exercise it */ - return( PSA_ERROR_NOT_SUPPORTED ); - } - return( drv->asymmetric->p_sign( - drv_context, *( (psa_key_slot_number_t *)key_buffer ), - alg, hash, hash_length, - signature, signature_size, signature_length ) ); - } -#endif /* PSA_CRYPTO_SE_C */ - - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_signature_sign_hash( attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_size, - signature_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - /* Fell through, meaning no accelerator supports this operation */ - return( psa_sign_hash_builtin( attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_size, - signature_length ) ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_signature_sign_hash( attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_size, - signature_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_verify_hash( - 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 ) -{ - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - if( drv->asymmetric == NULL || - drv->asymmetric->p_verify == NULL ) - { - /* Key is defined in SE, but we have no way to exercise it */ - return( PSA_ERROR_NOT_SUPPORTED ); - } - return( drv->asymmetric->p_verify( - drv_context, *( (psa_key_slot_number_t *)key_buffer ), - alg, hash, hash_length, - signature, signature_length ) ); - } -#endif /* PSA_CRYPTO_SE_C */ - - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_signature_verify_hash( - attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - return( psa_verify_hash_builtin( attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_length ) ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_signature_verify_hash( attributes, - key_buffer, - key_buffer_size, - alg, - hash, - hash_length, - signature, - signature_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -/** Calculate the key buffer size required to store the key material of a key - * associated with an opaque driver from input key data. - * - * \param[in] attributes The key attributes - * \param[in] data The input key data. - * \param[in] data_length The input data length. - * \param[out] key_buffer_size Minimum buffer size to contain the key material. - * - * \retval #PSA_SUCCESS - * \retval #PSA_ERROR_INVALID_ARGUMENT - * \retval #PSA_ERROR_NOT_SUPPORTED - */ -psa_status_t psa_driver_wrapper_get_key_buffer_size_from_key_data( - const psa_key_attributes_t *attributes, - const uint8_t *data, - size_t data_length, - size_t *key_buffer_size ) -{ - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - psa_key_type_t key_type = attributes->core.type; - - *key_buffer_size = 0; - switch( location ) - { -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - *key_buffer_size = mbedtls_test_opaque_size_function( key_type, - PSA_BYTES_TO_BITS( data_length ) ); - return( ( *key_buffer_size != 0 ) ? - PSA_SUCCESS : PSA_ERROR_NOT_SUPPORTED ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ - - default: - (void)key_type; - (void)data; - (void)data_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -/** Get the key buffer size required to store the key material of a key - * associated with an opaque driver. - * - * \param[in] attributes The key attributes. - * \param[out] key_buffer_size Minimum buffer size to contain the key material - * - * \retval #PSA_SUCCESS - * The minimum size for a buffer to contain the key material has been - * returned successfully. - * \retval #PSA_ERROR_NOT_SUPPORTED - * The type and/or the size in bits of the key or the combination of - * the two is not supported. - * \retval #PSA_ERROR_INVALID_ARGUMENT - * The key is declared with a lifetime not known to us. - */ -psa_status_t psa_driver_wrapper_get_key_buffer_size( - const psa_key_attributes_t *attributes, - size_t *key_buffer_size ) -{ - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - psa_key_type_t key_type = attributes->core.type; - size_t key_bits = attributes->core.bits; - - *key_buffer_size = 0; - switch( location ) - { -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: -#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) - /* Emulate property 'builtin_key_size' */ - if( psa_key_id_is_builtin( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( - psa_get_key_id( attributes ) ) ) ) - { - *key_buffer_size = sizeof( psa_drv_slot_number_t ); - return( PSA_SUCCESS ); - } -#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ - *key_buffer_size = mbedtls_test_opaque_size_function( key_type, - key_bits ); - return( ( *key_buffer_size != 0 ) ? - PSA_SUCCESS : PSA_ERROR_NOT_SUPPORTED ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ - - default: - (void)key_type; - (void)key_bits; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_generate_key( - const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION(attributes->core.lifetime); - - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - size_t pubkey_length = 0; /* We don't support this feature yet */ - if( drv->key_management == NULL || - drv->key_management->p_generate == NULL ) - { - /* Key is defined as being in SE, but we have no way to generate it */ - return( PSA_ERROR_NOT_SUPPORTED ); - } - return( drv->key_management->p_generate( - drv_context, - *( (psa_key_slot_number_t *)key_buffer ), - attributes, NULL, 0, &pubkey_length ) ); - } -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - /* Transparent drivers are limited to generating asymmetric keys */ - if( PSA_KEY_TYPE_IS_ASYMMETRIC( attributes->core.type ) ) - { - /* Cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_generate_key( - attributes, key_buffer, key_buffer_size, - key_buffer_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - break; -#endif /* PSA_CRYPTO_DRIVER_TEST */ - } -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Software fallback */ - status = psa_generate_key_internal( - attributes, key_buffer, key_buffer_size, key_buffer_length ); - break; - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_generate_key( - attributes, key_buffer, key_buffer_size, key_buffer_length ); - break; -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - /* Key is declared with a lifetime not known to us */ - status = PSA_ERROR_INVALID_ARGUMENT; - break; - } - - return( status ); -} - -psa_status_t psa_driver_wrapper_import_key( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( - psa_get_key_lifetime( attributes ) ); - - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - if( drv->key_management == NULL || - drv->key_management->p_import == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); - - /* The driver should set the number of key bits, however in - * case it doesn't, we initialize bits to an invalid value. */ - *bits = PSA_MAX_KEY_BITS + 1; - status = drv->key_management->p_import( - drv_context, - *( (psa_key_slot_number_t *)key_buffer ), - attributes, data, data_length, bits ); - - if( status != PSA_SUCCESS ) - return( status ); - - if( (*bits) > PSA_MAX_KEY_BITS ) - return( PSA_ERROR_NOT_SUPPORTED ); - - return( PSA_SUCCESS ); - } -#endif /* PSA_CRYPTO_SE_C */ - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - status = mbedtls_test_transparent_import_key - (attributes, - data, - data_length, - key_buffer, - key_buffer_size, - key_buffer_length, - bits - ); - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Fell through, meaning no accelerator supports this operation */ - return( psa_import_key_into_slot( attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - case 0x7fffff: - return( mbedtls_test_opaque_import_key - (attributes, - data, - data_length, - key_buffer, - key_buffer_size, - key_buffer_length, - bits - )); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } - -} - -psa_status_t psa_driver_wrapper_export_key( - 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 status = PSA_ERROR_INVALID_ARGUMENT; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( - psa_get_key_lifetime( attributes ) ); - - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - if( ( drv->key_management == NULL ) || - ( drv->key_management->p_export == NULL ) ) - { - return( PSA_ERROR_NOT_SUPPORTED ); - } - - return( drv->key_management->p_export( - drv_context, - *( (psa_key_slot_number_t *)key_buffer ), - data, data_size, data_length ) ); - } -#endif /* PSA_CRYPTO_SE_C */ - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - return( psa_export_key_internal( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - case 0x7fffff: - return( mbedtls_test_opaque_export_key - (attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length - )); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - return( status ); - } - -} - -psa_status_t psa_driver_wrapper_export_public_key( - 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 status = PSA_ERROR_INVALID_ARGUMENT; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( - psa_get_key_lifetime( attributes ) ); - - /* Try dynamically-registered SE interface first */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - if( ( drv->key_management == NULL ) || - ( drv->key_management->p_export_public == NULL ) ) - { - return( PSA_ERROR_NOT_SUPPORTED ); - } - - return( drv->key_management->p_export_public( - drv_context, - *( (psa_key_slot_number_t *)key_buffer ), - data, data_size, data_length ) ); - } -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - status = mbedtls_test_transparent_export_public_key - (attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length - ); - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - /* Fell through, meaning no accelerator supports this operation */ - return( psa_export_public_key_internal( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - case 0x7fffff: - return( mbedtls_test_opaque_export_public_key - (attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length - )); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - return( status ); - } - -} - -psa_status_t psa_driver_wrapper_get_builtin_key( - psa_drv_slot_number_t slot_number, - psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) -{ - - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - switch( location ) - { -#if defined(PSA_CRYPTO_DRIVER_TEST) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - case 0x7fffff: - return( mbedtls_test_opaque_get_builtin_key - (slot_number, - attributes, - key_buffer, - key_buffer_size, - key_buffer_length - )); -#endif - - -#endif /* PSA_CRYPTO_DRIVER_TEST */ - default: - (void) slot_number; - (void) key_buffer; - (void) key_buffer_size; - (void) key_buffer_length; - return( PSA_ERROR_DOES_NOT_EXIST ); - } - -} - -psa_status_t psa_driver_wrapper_copy_key( - psa_key_attributes_t *attributes, - const uint8_t *source_key, size_t source_key_length, - uint8_t *target_key_buffer, size_t target_key_buffer_size, - size_t *target_key_buffer_length ) -{ - - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - const psa_drv_se_t *drv; - psa_drv_se_context_t *drv_context; - - if( psa_get_se_driver( attributes->core.lifetime, &drv, &drv_context ) ) - { - /* Copying to a secure element is not implemented yet. */ - return( PSA_ERROR_NOT_SUPPORTED ); - } -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - - switch( location ) - { -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) - -#if (defined(PSA_CRYPTO_DRIVER_TEST) ) - case 0x7fffff: - return( mbedtls_test_opaque_copy_key - (attributes, - source_key, - source_key_length, - target_key_buffer, - target_key_buffer_size, - target_key_buffer_length - )); -#endif - - -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - (void)source_key; - (void)source_key_length; - (void)target_key_buffer; - (void)target_key_buffer_size; - (void)target_key_buffer_length; - status = PSA_ERROR_INVALID_ARGUMENT; - } - return( status ); - -} - -/* - * Cipher functions - */ -psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_cipher_encrypt( attributes, - key_buffer, - key_buffer_size, - alg, - iv, - iv_length, - input, - input_length, - output, - output_size, - output_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_encrypt( attributes, - key_buffer, - key_buffer_size, - alg, - iv, - iv_length, - input, - input_length, - output, - output_size, - output_length ) ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_cipher_encrypt( attributes, - key_buffer, - key_buffer_size, - alg, - iv, - iv_length, - input, - input_length, - output, - output_size, - output_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)iv; - (void)iv_length; - (void)input; - (void)input_length; - (void)output; - (void)output_size; - (void)output_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_cipher_decrypt( attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - output, - output_size, - output_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_decrypt( attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - output, - output_size, - output_length ) ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_cipher_decrypt( attributes, - key_buffer, - key_buffer_size, - alg, - input, - input_length, - output, - output_size, - output_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)input; - (void)input_length; - (void)output; - (void)output_size; - (void)output_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_cipher_encrypt_setup( - 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 ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_cipher_encrypt_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, - key_buffer, - key_buffer_size, - alg ); - /* Declared with fallback == true */ - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - /* Fell through, meaning no accelerator supports this operation */ - status = mbedtls_psa_cipher_encrypt_setup( &operation->ctx.mbedtls_ctx, - attributes, - key_buffer, - key_buffer_size, - alg ); - if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - return( PSA_ERROR_NOT_SUPPORTED ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_cipher_encrypt_setup( - &operation->ctx.opaque_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; - - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)operation; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_cipher_decrypt_setup( - 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 ) -{ - psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_cipher_decrypt_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, - key_buffer, - key_buffer_size, - alg ); - /* Declared with fallback == true */ - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - /* Fell through, meaning no accelerator supports this operation */ - status = mbedtls_psa_cipher_decrypt_setup( &operation->ctx.mbedtls_ctx, - attributes, - key_buffer, - key_buffer_size, - alg ); - if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - - return( status ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - return( PSA_ERROR_NOT_SUPPORTED ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_cipher_decrypt_setup( - &operation->ctx.opaque_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; - - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)operation; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_cipher_set_iv( - psa_cipher_operation_t *operation, - const uint8_t *iv, - size_t iv_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_cipher_set_iv( &operation->ctx.mbedtls_ctx, - iv, - iv_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_cipher_set_iv( - &operation->ctx.transparent_test_driver_ctx, - iv, iv_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_cipher_set_iv( - &operation->ctx.opaque_test_driver_ctx, - iv, iv_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)iv; - (void)iv_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_cipher_update( - psa_cipher_operation_t *operation, - const uint8_t *input, - size_t input_length, - uint8_t *output, - size_t output_size, - size_t *output_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_cipher_update( &operation->ctx.mbedtls_ctx, - input, - input_length, - output, - output_size, - output_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_cipher_update( - &operation->ctx.transparent_test_driver_ctx, - input, input_length, - output, output_size, output_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_cipher_update( - &operation->ctx.opaque_test_driver_ctx, - input, input_length, - output, output_size, output_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)input; - (void)input_length; - (void)output; - (void)output_size; - (void)output_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_cipher_finish( - psa_cipher_operation_t *operation, - uint8_t *output, - size_t output_size, - size_t *output_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_cipher_finish( &operation->ctx.mbedtls_ctx, - output, - output_size, - output_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_cipher_finish( - &operation->ctx.transparent_test_driver_ctx, - output, output_size, output_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_cipher_finish( - &operation->ctx.opaque_test_driver_ctx, - output, output_size, output_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)output; - (void)output_size; - (void)output_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_cipher_abort( - psa_cipher_operation_t *operation ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_CIPHER) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_cipher_abort( &operation->ctx.mbedtls_ctx ) ); -#endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - status = mbedtls_test_transparent_cipher_abort( - &operation->ctx.transparent_test_driver_ctx ); - mbedtls_platform_zeroize( - &operation->ctx.transparent_test_driver_ctx, - sizeof( operation->ctx.transparent_test_driver_ctx ) ); - return( status ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - status = mbedtls_test_opaque_cipher_abort( - &operation->ctx.opaque_test_driver_ctx ); - mbedtls_platform_zeroize( - &operation->ctx.opaque_test_driver_ctx, - sizeof( operation->ctx.opaque_test_driver_ctx ) ); - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -/* - * Hashing functions - */ -psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; - - /* Try accelerators first */ -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_hash_compute( - alg, input, input_length, hash, hash_size, hash_length ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - - /* If software fallback is compiled in, try fallback */ -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - status = mbedtls_psa_hash_compute( alg, input, input_length, - hash, hash_size, hash_length ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - (void) status; - (void) alg; - (void) input; - (void) input_length; - (void) hash; - (void) hash_size; - (void) hash_length; - - return( PSA_ERROR_NOT_SUPPORTED ); -} - -psa_status_t psa_driver_wrapper_hash_setup( - psa_hash_operation_t *operation, - psa_algorithm_t alg ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - - /* Try setup on accelerators first */ -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_hash_setup( - &operation->ctx.test_driver_ctx, alg ); - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - - /* If software fallback is compiled in, try fallback */ -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - status = mbedtls_psa_hash_setup( &operation->ctx.mbedtls_ctx, alg ); - if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif - /* Nothing left to try if we fall through here */ - (void) status; - (void) operation; - (void) alg; - return( PSA_ERROR_NOT_SUPPORTED ); -} - -psa_status_t psa_driver_wrapper_hash_clone( - const psa_hash_operation_t *source_operation, - psa_hash_operation_t *target_operation ) -{ - switch( source_operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - target_operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - return( mbedtls_psa_hash_clone( &source_operation->ctx.mbedtls_ctx, - &target_operation->ctx.mbedtls_ctx ) ); -#endif -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - target_operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - return( mbedtls_test_transparent_hash_clone( - &source_operation->ctx.test_driver_ctx, - &target_operation->ctx.test_driver_ctx ) ); -#endif - default: - (void) target_operation; - return( PSA_ERROR_BAD_STATE ); - } -} - -psa_status_t psa_driver_wrapper_hash_update( - psa_hash_operation_t *operation, - const uint8_t *input, - size_t input_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_hash_update( &operation->ctx.mbedtls_ctx, - input, input_length ) ); -#endif -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_hash_update( - &operation->ctx.test_driver_ctx, - input, input_length ) ); -#endif - default: - (void) input; - (void) input_length; - return( PSA_ERROR_BAD_STATE ); - } -} - -psa_status_t psa_driver_wrapper_hash_finish( - psa_hash_operation_t *operation, - uint8_t *hash, - size_t hash_size, - size_t *hash_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_hash_finish( &operation->ctx.mbedtls_ctx, - hash, hash_size, hash_length ) ); -#endif -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_hash_finish( - &operation->ctx.test_driver_ctx, - hash, hash_size, hash_length ) ); -#endif - default: - (void) hash; - (void) hash_size; - (void) hash_length; - return( PSA_ERROR_BAD_STATE ); - } -} - -psa_status_t psa_driver_wrapper_hash_abort( - psa_hash_operation_t *operation ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_HASH) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_hash_abort( &operation->ctx.mbedtls_ctx ) ); -#endif -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_hash_abort( - &operation->ctx.test_driver_ctx ) ); -#endif - default: - return( PSA_ERROR_BAD_STATE ); - } -} - -psa_status_t psa_driver_wrapper_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 ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_aead_encrypt( - attributes, key_buffer, key_buffer_size, - alg, - nonce, nonce_length, - additional_data, additional_data_length, - plaintext, plaintext_length, - ciphertext, ciphertext_size, ciphertext_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Fell through, meaning no accelerator supports this operation */ - return( mbedtls_psa_aead_encrypt( - attributes, key_buffer, key_buffer_size, - alg, - nonce, nonce_length, - additional_data, additional_data_length, - plaintext, plaintext_length, - ciphertext, ciphertext_size, ciphertext_length ) ); - - /* Add cases for opaque driver here */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_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 ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_aead_decrypt( - attributes, key_buffer, key_buffer_size, - alg, - nonce, nonce_length, - additional_data, additional_data_length, - ciphertext, ciphertext_length, - plaintext, plaintext_size, plaintext_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Fell through, meaning no accelerator supports this operation */ - return( mbedtls_psa_aead_decrypt( - attributes, key_buffer, key_buffer_size, - alg, - nonce, nonce_length, - additional_data, additional_data_length, - ciphertext, ciphertext_length, - plaintext, plaintext_size, plaintext_length ) ); - - /* Add cases for opaque driver here */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_aead_encrypt_setup( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - status = mbedtls_test_transparent_aead_encrypt_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, key_buffer, key_buffer_size, - alg ); - - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Fell through, meaning no accelerator supports this operation */ - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - status = mbedtls_psa_aead_encrypt_setup( - &operation->ctx.mbedtls_ctx, attributes, - key_buffer, key_buffer_size, - alg ); - - return( status ); - - /* Add cases for opaque driver here */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_aead_decrypt_setup( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - status = mbedtls_test_transparent_aead_decrypt_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Fell through, meaning no accelerator supports this operation */ - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - status = mbedtls_psa_aead_decrypt_setup( - &operation->ctx.mbedtls_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - return( status ); - - /* Add cases for opaque driver here */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_aead_set_nonce( - psa_aead_operation_t *operation, - const uint8_t *nonce, - size_t nonce_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_set_nonce( &operation->ctx.mbedtls_ctx, - nonce, - nonce_length ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_set_nonce( - &operation->ctx.transparent_test_driver_ctx, - nonce, nonce_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)nonce; - (void)nonce_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_set_lengths( - psa_aead_operation_t *operation, - size_t ad_length, - size_t plaintext_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_set_lengths( &operation->ctx.mbedtls_ctx, - ad_length, - plaintext_length ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_set_lengths( - &operation->ctx.transparent_test_driver_ctx, - ad_length, plaintext_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)ad_length; - (void)plaintext_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_update_ad( - psa_aead_operation_t *operation, - const uint8_t *input, - size_t input_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_update_ad( &operation->ctx.mbedtls_ctx, - input, - input_length ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_update_ad( - &operation->ctx.transparent_test_driver_ctx, - input, input_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)input; - (void)input_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_update( - psa_aead_operation_t *operation, - const uint8_t *input, - size_t input_length, - uint8_t *output, - size_t output_size, - size_t *output_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_update( &operation->ctx.mbedtls_ctx, - input, input_length, - output, output_size, - output_length ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_update( - &operation->ctx.transparent_test_driver_ctx, - input, input_length, output, output_size, - output_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)input; - (void)input_length; - (void)output; - (void)output_size; - (void)output_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_finish( - 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 ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_finish( &operation->ctx.mbedtls_ctx, - ciphertext, - ciphertext_size, - ciphertext_length, tag, - tag_size, tag_length ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_finish( - &operation->ctx.transparent_test_driver_ctx, - ciphertext, ciphertext_size, - ciphertext_length, tag, tag_size, tag_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)ciphertext; - (void)ciphertext_size; - (void)ciphertext_length; - (void)tag; - (void)tag_size; - (void)tag_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_verify( - psa_aead_operation_t *operation, - uint8_t *plaintext, - size_t plaintext_size, - size_t *plaintext_length, - const uint8_t *tag, - size_t tag_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - { - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; - size_t check_tag_length; - - status = mbedtls_psa_aead_finish( &operation->ctx.mbedtls_ctx, - plaintext, - plaintext_size, - plaintext_length, - check_tag, - sizeof( check_tag ), - &check_tag_length ); - - if( status == PSA_SUCCESS ) - { - if( tag_length != check_tag_length || - mbedtls_psa_safer_memcmp( tag, check_tag, tag_length ) - != 0 ) - status = PSA_ERROR_INVALID_SIGNATURE; - } - - mbedtls_platform_zeroize( check_tag, sizeof( check_tag ) ); - - return( status ); - } - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_verify( - &operation->ctx.transparent_test_driver_ctx, - plaintext, plaintext_size, - plaintext_length, tag, tag_length ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - (void)plaintext; - (void)plaintext_size; - (void)plaintext_length; - (void)tag; - (void)tag_length; - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -psa_status_t psa_driver_wrapper_aead_abort( - psa_aead_operation_t *operation ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_AEAD) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_aead_abort( &operation->ctx.mbedtls_ctx ) ); - -#endif /* MBEDTLS_PSA_BUILTIN_AEAD */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_aead_abort( - &operation->ctx.transparent_test_driver_ctx ) ); - - /* Add cases for opaque driver here */ - -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - } - - return( PSA_ERROR_INVALID_ARGUMENT ); -} - -/* - * MAC functions - */ -psa_status_t psa_driver_wrapper_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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_mac_compute( - attributes, key_buffer, key_buffer_size, alg, - input, input_length, - mac, mac_size, mac_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - /* Fell through, meaning no accelerator supports this operation */ - status = mbedtls_psa_mac_compute( - attributes, key_buffer, key_buffer_size, alg, - input, input_length, - mac, mac_size, mac_length ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - return( PSA_ERROR_NOT_SUPPORTED ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_mac_compute( - attributes, key_buffer, key_buffer_size, alg, - input, input_length, - mac, mac_size, mac_length ); - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void) key_buffer; - (void) key_buffer_size; - (void) alg; - (void) input; - (void) input_length; - (void) mac; - (void) mac_size; - (void) mac_length; - (void) status; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_sign_setup( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_mac_sign_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - /* Declared with fallback == true */ - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - /* Fell through, meaning no accelerator supports this operation */ - status = mbedtls_psa_mac_sign_setup( &operation->ctx.mbedtls_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - return( PSA_ERROR_NOT_SUPPORTED ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_mac_sign_setup( - &operation->ctx.opaque_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; - - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void) status; - (void) operation; - (void) key_buffer; - (void) key_buffer_size; - (void) alg; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_verify_setup( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_mac_verify_setup( - &operation->ctx.transparent_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - /* Declared with fallback == true */ - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_TRANSPARENT_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - /* Fell through, meaning no accelerator supports this operation */ - status = mbedtls_psa_mac_verify_setup( &operation->ctx.mbedtls_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - if( status == PSA_SUCCESS ) - operation->id = PSA_CRYPTO_MBED_TLS_DRIVER_ID; - - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - return( PSA_ERROR_NOT_SUPPORTED ); - - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - status = mbedtls_test_opaque_mac_verify_setup( - &operation->ctx.opaque_test_driver_ctx, - attributes, - key_buffer, key_buffer_size, - alg ); - - if( status == PSA_SUCCESS ) - operation->id = MBEDTLS_TEST_OPAQUE_DRIVER_ID; - - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - /* Key is declared with a lifetime not known to us */ - (void) status; - (void) operation; - (void) key_buffer; - (void) key_buffer_size; - (void) alg; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_update( - psa_mac_operation_t *operation, - const uint8_t *input, - size_t input_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_mac_update( &operation->ctx.mbedtls_ctx, - input, input_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_mac_update( - &operation->ctx.transparent_test_driver_ctx, - input, input_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_mac_update( - &operation->ctx.opaque_test_driver_ctx, - input, input_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - (void) input; - (void) input_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_sign_finish( - psa_mac_operation_t *operation, - uint8_t *mac, - size_t mac_size, - size_t *mac_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_mac_sign_finish( &operation->ctx.mbedtls_ctx, - mac, mac_size, mac_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_mac_sign_finish( - &operation->ctx.transparent_test_driver_ctx, - mac, mac_size, mac_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_mac_sign_finish( - &operation->ctx.opaque_test_driver_ctx, - mac, mac_size, mac_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - (void) mac; - (void) mac_size; - (void) mac_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_verify_finish( - psa_mac_operation_t *operation, - const uint8_t *mac, - size_t mac_length ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_mac_verify_finish( &operation->ctx.mbedtls_ctx, - mac, mac_length ) ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_mac_verify_finish( - &operation->ctx.transparent_test_driver_ctx, - mac, mac_length ) ); - - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_mac_verify_finish( - &operation->ctx.opaque_test_driver_ctx, - mac, mac_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - (void) mac; - (void) mac_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_mac_abort( - psa_mac_operation_t *operation ) -{ - switch( operation->id ) - { -#if defined(MBEDTLS_PSA_BUILTIN_MAC) - case PSA_CRYPTO_MBED_TLS_DRIVER_ID: - return( mbedtls_psa_mac_abort( &operation->ctx.mbedtls_ctx ) ); -#endif /* MBEDTLS_PSA_BUILTIN_MAC */ - -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case MBEDTLS_TEST_TRANSPARENT_DRIVER_ID: - return( mbedtls_test_transparent_mac_abort( - &operation->ctx.transparent_test_driver_ctx ) ); - case MBEDTLS_TEST_OPAQUE_DRIVER_ID: - return( mbedtls_test_opaque_mac_abort( - &operation->ctx.opaque_test_driver_ctx ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - default: - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -/* - * Asymmetric cryptography - */ -psa_status_t psa_driver_wrapper_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 ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_asymmetric_encrypt( attributes, - key_buffer, key_buffer_size, alg, input, input_length, - salt, salt_length, output, output_size, - output_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - return( mbedtls_psa_asymmetric_encrypt( attributes, - key_buffer, key_buffer_size, alg, input, input_length, - salt, salt_length, output, output_size, output_length ) - ); - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_asymmetric_encrypt( attributes, - key_buffer, key_buffer_size, alg, input, input_length, - salt, salt_length, output, output_size, output_length ) - ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)input; - (void)input_length; - (void)salt; - (void)salt_length; - (void)output; - (void)output_size; - (void)output_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_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 ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = mbedtls_test_transparent_asymmetric_decrypt( attributes, - key_buffer, key_buffer_size, alg, input, input_length, - salt, salt_length, output, output_size, - output_length ); - /* Declared with fallback == true */ - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - return( mbedtls_psa_asymmetric_decrypt( attributes, - key_buffer, key_buffer_size, alg,input, input_length, - salt, salt_length, output, output_size, - output_length ) ); - /* Add cases for opaque driver here */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_asymmetric_decrypt( attributes, - key_buffer, key_buffer_size, alg, input, input_length, - salt, salt_length, output, output_size, - output_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - /* Key is declared with a lifetime not known to us */ - (void)status; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)input; - (void)input_length; - (void)salt; - (void)salt_length; - (void)output; - (void)output_size; - (void)output_length; - return( PSA_ERROR_INVALID_ARGUMENT ); - } -} - -psa_status_t psa_driver_wrapper_key_agreement( - 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 status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_location_t location = - PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ); - - switch( location ) - { - case PSA_KEY_LOCATION_LOCAL_STORAGE: - /* Key is stored in the slot in export representation, so - * cycle through all known transparent accelerators */ -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - status = - mbedtls_test_transparent_key_agreement( attributes, - key_buffer, key_buffer_size, alg, peer_key, - peer_key_length, shared_secret, shared_secret_size, - shared_secret_length ); - if( status != PSA_ERROR_NOT_SUPPORTED ) - return( status ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - /* Software Fallback */ - status = psa_key_agreement_raw_builtin( attributes, - key_buffer, - key_buffer_size, - alg, - peer_key, - peer_key_length, - shared_secret, - shared_secret_size, - shared_secret_length ); - return( status ); -#if defined(PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT) -#if defined(PSA_CRYPTO_DRIVER_TEST) - case PSA_CRYPTO_TEST_DRIVER_LOCATION: - return( mbedtls_test_opaque_key_agreement( attributes, - key_buffer, key_buffer_size, alg, peer_key, - peer_key_length, shared_secret, shared_secret_size, - shared_secret_length ) ); -#endif /* PSA_CRYPTO_DRIVER_TEST */ -#endif /* PSA_CRYPTO_ACCELERATOR_DRIVER_PRESENT */ - - default: - (void) attributes; - (void) key_buffer; - (void) key_buffer_size; - (void) peer_key; - (void) peer_key_length; - (void) shared_secret; - (void) shared_secret_size; - (void) shared_secret_length; - return( PSA_ERROR_NOT_SUPPORTED ); - - } - } - -#endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/ssl_debug_helpers_generated.c b/library/ssl_debug_helpers_generated.c deleted file mode 100644 index e3e93f8c6..000000000 --- a/library/ssl_debug_helpers_generated.c +++ /dev/null @@ -1,223 +0,0 @@ -/* Automatically generated by generate_ssl_debug_helpers.py. DO NOT EDIT. */ - -/** - * \file ssl_debug_helpers_generated.c - * - * \brief Automatically generated helper functions for debugging - */ -/* - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "common.h" - -#if defined(MBEDTLS_DEBUG_C) - -#include "ssl_debug_helpers.h" - - -const char *mbedtls_ssl_named_group_to_str( uint16_t in ) -{ - switch( in ) - { - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1: - return "secp192k1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1: - return "secp192r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1: - return "secp224k1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1: - return "secp224r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1: - return "secp256k1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1: - return "secp256r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1: - return "secp384r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1: - return "secp521r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1: - return "bp256r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1: - return "bp384r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1: - return "bp512r1"; - case MBEDTLS_SSL_IANA_TLS_GROUP_X25519: - return "x25519"; - case MBEDTLS_SSL_IANA_TLS_GROUP_X448: - return "x448"; - case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048: - return "ffdhe2048"; - case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE3072: - return "ffdhe3072"; - case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE4096: - return "ffdhe4096"; - case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE6144: - return "ffdhe6144"; - case MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192: - return "ffdhe8192"; - }; - - return "UNKOWN"; -} -const char *mbedtls_ssl_sig_alg_to_str( uint16_t in ) -{ - switch( in ) - { - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: - return "rsa_pkcs1_sha256"; - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: - return "rsa_pkcs1_sha384"; - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - return "rsa_pkcs1_sha512"; - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: - return "ecdsa_secp256r1_sha256"; - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: - return "ecdsa_secp384r1_sha384"; - case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: - return "ecdsa_secp521r1_sha512"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - return "rsa_pss_rsae_sha256"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - return "rsa_pss_rsae_sha384"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - return "rsa_pss_rsae_sha512"; - case MBEDTLS_TLS1_3_SIG_ED25519: - return "ed25519"; - case MBEDTLS_TLS1_3_SIG_ED448: - return "ed448"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256: - return "rsa_pss_pss_sha256"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384: - return "rsa_pss_pss_sha384"; - case MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512: - return "rsa_pss_pss_sha512"; - case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1: - return "rsa_pkcs1_sha1"; - case MBEDTLS_TLS1_3_SIG_ECDSA_SHA1: - return "ecdsa_sha1"; - case MBEDTLS_TLS1_3_SIG_NONE: - return "none"; - }; - - return "UNKNOWN"; -} -const char *mbedtls_ssl_states_str( mbedtls_ssl_states in ) -{ - const char * in_to_str[]= - { - [MBEDTLS_SSL_HELLO_REQUEST] = "MBEDTLS_SSL_HELLO_REQUEST", - [MBEDTLS_SSL_CLIENT_HELLO] = "MBEDTLS_SSL_CLIENT_HELLO", - [MBEDTLS_SSL_SERVER_HELLO] = "MBEDTLS_SSL_SERVER_HELLO", - [MBEDTLS_SSL_SERVER_CERTIFICATE] = "MBEDTLS_SSL_SERVER_CERTIFICATE", - [MBEDTLS_SSL_SERVER_KEY_EXCHANGE] = "MBEDTLS_SSL_SERVER_KEY_EXCHANGE", - [MBEDTLS_SSL_CERTIFICATE_REQUEST] = "MBEDTLS_SSL_CERTIFICATE_REQUEST", - [MBEDTLS_SSL_SERVER_HELLO_DONE] = "MBEDTLS_SSL_SERVER_HELLO_DONE", - [MBEDTLS_SSL_CLIENT_CERTIFICATE] = "MBEDTLS_SSL_CLIENT_CERTIFICATE", - [MBEDTLS_SSL_CLIENT_KEY_EXCHANGE] = "MBEDTLS_SSL_CLIENT_KEY_EXCHANGE", - [MBEDTLS_SSL_CERTIFICATE_VERIFY] = "MBEDTLS_SSL_CERTIFICATE_VERIFY", - [MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC] = "MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC", - [MBEDTLS_SSL_CLIENT_FINISHED] = "MBEDTLS_SSL_CLIENT_FINISHED", - [MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC] = "MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC", - [MBEDTLS_SSL_SERVER_FINISHED] = "MBEDTLS_SSL_SERVER_FINISHED", - [MBEDTLS_SSL_FLUSH_BUFFERS] = "MBEDTLS_SSL_FLUSH_BUFFERS", - [MBEDTLS_SSL_HANDSHAKE_WRAPUP] = "MBEDTLS_SSL_HANDSHAKE_WRAPUP", - [MBEDTLS_SSL_NEW_SESSION_TICKET] = "MBEDTLS_SSL_NEW_SESSION_TICKET", - [MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT] = "MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT", - [MBEDTLS_SSL_HELLO_RETRY_REQUEST] = "MBEDTLS_SSL_HELLO_RETRY_REQUEST", - [MBEDTLS_SSL_ENCRYPTED_EXTENSIONS] = "MBEDTLS_SSL_ENCRYPTED_EXTENSIONS", - [MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY] = "MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY", - [MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED] = "MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED", - [MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO] = "MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO", - [MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO] = "MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO", - [MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST] = "MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST", - [MBEDTLS_SSL_HANDSHAKE_OVER] = "MBEDTLS_SSL_HANDSHAKE_OVER", - [MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET] = "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET", - [MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH] = "MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH", - }; - - if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || - in_to_str[ in ] == NULL ) - { - return "UNKNOWN_VALUE"; - } - return in_to_str[ in ]; -} - -const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in ) -{ - const char * in_to_str[]= - { - [MBEDTLS_SSL_VERSION_UNKNOWN] = "MBEDTLS_SSL_VERSION_UNKNOWN", - [MBEDTLS_SSL_VERSION_TLS1_2] = "MBEDTLS_SSL_VERSION_TLS1_2", - [MBEDTLS_SSL_VERSION_TLS1_3] = "MBEDTLS_SSL_VERSION_TLS1_3", - }; - - if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || - in_to_str[ in ] == NULL ) - { - return "UNKNOWN_VALUE"; - } - return in_to_str[ in ]; -} - -const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in ) -{ - const char * in_to_str[]= - { - [MBEDTLS_SSL_TLS_PRF_NONE] = "MBEDTLS_SSL_TLS_PRF_NONE", - [MBEDTLS_SSL_TLS_PRF_SHA384] = "MBEDTLS_SSL_TLS_PRF_SHA384", - [MBEDTLS_SSL_TLS_PRF_SHA256] = "MBEDTLS_SSL_TLS_PRF_SHA256", - [MBEDTLS_SSL_HKDF_EXPAND_SHA384] = "MBEDTLS_SSL_HKDF_EXPAND_SHA384", - [MBEDTLS_SSL_HKDF_EXPAND_SHA256] = "MBEDTLS_SSL_HKDF_EXPAND_SHA256", - }; - - if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || - in_to_str[ in ] == NULL ) - { - return "UNKNOWN_VALUE"; - } - return in_to_str[ in ]; -} - -const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in ) -{ - const char * in_to_str[]= - { - [MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET", -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET", - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_EARLY_EXPORTER_SECRET", - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET", - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET", - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET", - [MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET] = "MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET", -#endif - }; - - if( in > ( sizeof( in_to_str )/sizeof( in_to_str[0]) - 1 ) || - in_to_str[ in ] == NULL ) - { - return "UNKNOWN_VALUE"; - } - return in_to_str[ in ]; -} - - - -#endif /* MBEDTLS_DEBUG_C */ -/* End of automatically generated file. */ - diff --git a/library/version_features.c b/library/version_features.c deleted file mode 100644 index e328cca33..000000000 --- a/library/version_features.c +++ /dev/null @@ -1,809 +0,0 @@ -/* - * Version feature information - * - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "common.h" - -#if defined(MBEDTLS_VERSION_C) - -#include "mbedtls/version.h" - -#include - -static const char * const features[] = { -#if defined(MBEDTLS_VERSION_FEATURES) -#if defined(MBEDTLS_HAVE_ASM) - "MBEDTLS_HAVE_ASM", -#endif /* MBEDTLS_HAVE_ASM */ -#if defined(MBEDTLS_NO_UDBL_DIVISION) - "MBEDTLS_NO_UDBL_DIVISION", -#endif /* MBEDTLS_NO_UDBL_DIVISION */ -#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) - "MBEDTLS_NO_64BIT_MULTIPLICATION", -#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ -#if defined(MBEDTLS_HAVE_SSE2) - "MBEDTLS_HAVE_SSE2", -#endif /* MBEDTLS_HAVE_SSE2 */ -#if defined(MBEDTLS_HAVE_TIME) - "MBEDTLS_HAVE_TIME", -#endif /* MBEDTLS_HAVE_TIME */ -#if defined(MBEDTLS_HAVE_TIME_DATE) - "MBEDTLS_HAVE_TIME_DATE", -#endif /* MBEDTLS_HAVE_TIME_DATE */ -#if defined(MBEDTLS_PLATFORM_MEMORY) - "MBEDTLS_PLATFORM_MEMORY", -#endif /* MBEDTLS_PLATFORM_MEMORY */ -#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) - "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS", -#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ -#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) - "MBEDTLS_PLATFORM_SETBUF_ALT", -#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ -#if defined(MBEDTLS_PLATFORM_EXIT_ALT) - "MBEDTLS_PLATFORM_EXIT_ALT", -#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ -#if defined(MBEDTLS_PLATFORM_TIME_ALT) - "MBEDTLS_PLATFORM_TIME_ALT", -#endif /* MBEDTLS_PLATFORM_TIME_ALT */ -#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) - "MBEDTLS_PLATFORM_FPRINTF_ALT", -#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ -#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) - "MBEDTLS_PLATFORM_PRINTF_ALT", -#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ -#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) - "MBEDTLS_PLATFORM_SNPRINTF_ALT", -#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ -#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) - "MBEDTLS_PLATFORM_VSNPRINTF_ALT", -#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ -#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) - "MBEDTLS_PLATFORM_NV_SEED_ALT", -#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ -#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) - "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT", -#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ -#if defined(MBEDTLS_DEPRECATED_WARNING) - "MBEDTLS_DEPRECATED_WARNING", -#endif /* MBEDTLS_DEPRECATED_WARNING */ -#if defined(MBEDTLS_DEPRECATED_REMOVED) - "MBEDTLS_DEPRECATED_REMOVED", -#endif /* MBEDTLS_DEPRECATED_REMOVED */ -#if defined(MBEDTLS_TIMING_ALT) - "MBEDTLS_TIMING_ALT", -#endif /* MBEDTLS_TIMING_ALT */ -#if defined(MBEDTLS_AES_ALT) - "MBEDTLS_AES_ALT", -#endif /* MBEDTLS_AES_ALT */ -#if defined(MBEDTLS_ARIA_ALT) - "MBEDTLS_ARIA_ALT", -#endif /* MBEDTLS_ARIA_ALT */ -#if defined(MBEDTLS_CAMELLIA_ALT) - "MBEDTLS_CAMELLIA_ALT", -#endif /* MBEDTLS_CAMELLIA_ALT */ -#if defined(MBEDTLS_CCM_ALT) - "MBEDTLS_CCM_ALT", -#endif /* MBEDTLS_CCM_ALT */ -#if defined(MBEDTLS_CHACHA20_ALT) - "MBEDTLS_CHACHA20_ALT", -#endif /* MBEDTLS_CHACHA20_ALT */ -#if defined(MBEDTLS_CHACHAPOLY_ALT) - "MBEDTLS_CHACHAPOLY_ALT", -#endif /* MBEDTLS_CHACHAPOLY_ALT */ -#if defined(MBEDTLS_CMAC_ALT) - "MBEDTLS_CMAC_ALT", -#endif /* MBEDTLS_CMAC_ALT */ -#if defined(MBEDTLS_DES_ALT) - "MBEDTLS_DES_ALT", -#endif /* MBEDTLS_DES_ALT */ -#if defined(MBEDTLS_DHM_ALT) - "MBEDTLS_DHM_ALT", -#endif /* MBEDTLS_DHM_ALT */ -#if defined(MBEDTLS_ECJPAKE_ALT) - "MBEDTLS_ECJPAKE_ALT", -#endif /* MBEDTLS_ECJPAKE_ALT */ -#if defined(MBEDTLS_GCM_ALT) - "MBEDTLS_GCM_ALT", -#endif /* MBEDTLS_GCM_ALT */ -#if defined(MBEDTLS_NIST_KW_ALT) - "MBEDTLS_NIST_KW_ALT", -#endif /* MBEDTLS_NIST_KW_ALT */ -#if defined(MBEDTLS_MD5_ALT) - "MBEDTLS_MD5_ALT", -#endif /* MBEDTLS_MD5_ALT */ -#if defined(MBEDTLS_POLY1305_ALT) - "MBEDTLS_POLY1305_ALT", -#endif /* MBEDTLS_POLY1305_ALT */ -#if defined(MBEDTLS_RIPEMD160_ALT) - "MBEDTLS_RIPEMD160_ALT", -#endif /* MBEDTLS_RIPEMD160_ALT */ -#if defined(MBEDTLS_RSA_ALT) - "MBEDTLS_RSA_ALT", -#endif /* MBEDTLS_RSA_ALT */ -#if defined(MBEDTLS_SHA1_ALT) - "MBEDTLS_SHA1_ALT", -#endif /* MBEDTLS_SHA1_ALT */ -#if defined(MBEDTLS_SHA256_ALT) - "MBEDTLS_SHA256_ALT", -#endif /* MBEDTLS_SHA256_ALT */ -#if defined(MBEDTLS_SHA512_ALT) - "MBEDTLS_SHA512_ALT", -#endif /* MBEDTLS_SHA512_ALT */ -#if defined(MBEDTLS_ECP_ALT) - "MBEDTLS_ECP_ALT", -#endif /* MBEDTLS_ECP_ALT */ -#if defined(MBEDTLS_MD5_PROCESS_ALT) - "MBEDTLS_MD5_PROCESS_ALT", -#endif /* MBEDTLS_MD5_PROCESS_ALT */ -#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) - "MBEDTLS_RIPEMD160_PROCESS_ALT", -#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ -#if defined(MBEDTLS_SHA1_PROCESS_ALT) - "MBEDTLS_SHA1_PROCESS_ALT", -#endif /* MBEDTLS_SHA1_PROCESS_ALT */ -#if defined(MBEDTLS_SHA256_PROCESS_ALT) - "MBEDTLS_SHA256_PROCESS_ALT", -#endif /* MBEDTLS_SHA256_PROCESS_ALT */ -#if defined(MBEDTLS_SHA512_PROCESS_ALT) - "MBEDTLS_SHA512_PROCESS_ALT", -#endif /* MBEDTLS_SHA512_PROCESS_ALT */ -#if defined(MBEDTLS_DES_SETKEY_ALT) - "MBEDTLS_DES_SETKEY_ALT", -#endif /* MBEDTLS_DES_SETKEY_ALT */ -#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) - "MBEDTLS_DES_CRYPT_ECB_ALT", -#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ -#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) - "MBEDTLS_DES3_CRYPT_ECB_ALT", -#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ -#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) - "MBEDTLS_AES_SETKEY_ENC_ALT", -#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ -#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) - "MBEDTLS_AES_SETKEY_DEC_ALT", -#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ -#if defined(MBEDTLS_AES_ENCRYPT_ALT) - "MBEDTLS_AES_ENCRYPT_ALT", -#endif /* MBEDTLS_AES_ENCRYPT_ALT */ -#if defined(MBEDTLS_AES_DECRYPT_ALT) - "MBEDTLS_AES_DECRYPT_ALT", -#endif /* MBEDTLS_AES_DECRYPT_ALT */ -#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) - "MBEDTLS_ECDH_GEN_PUBLIC_ALT", -#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ -#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) - "MBEDTLS_ECDH_COMPUTE_SHARED_ALT", -#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ -#if defined(MBEDTLS_ECDSA_VERIFY_ALT) - "MBEDTLS_ECDSA_VERIFY_ALT", -#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ -#if defined(MBEDTLS_ECDSA_SIGN_ALT) - "MBEDTLS_ECDSA_SIGN_ALT", -#endif /* MBEDTLS_ECDSA_SIGN_ALT */ -#if defined(MBEDTLS_ECDSA_GENKEY_ALT) - "MBEDTLS_ECDSA_GENKEY_ALT", -#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ -#if defined(MBEDTLS_ECP_INTERNAL_ALT) - "MBEDTLS_ECP_INTERNAL_ALT", -#endif /* MBEDTLS_ECP_INTERNAL_ALT */ -#if defined(MBEDTLS_ECP_NO_FALLBACK) - "MBEDTLS_ECP_NO_FALLBACK", -#endif /* MBEDTLS_ECP_NO_FALLBACK */ -#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) - "MBEDTLS_ECP_RANDOMIZE_JAC_ALT", -#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ -#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) - "MBEDTLS_ECP_ADD_MIXED_ALT", -#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ -#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) - "MBEDTLS_ECP_DOUBLE_JAC_ALT", -#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) - "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT", -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) - "MBEDTLS_ECP_NORMALIZE_JAC_ALT", -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ -#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) - "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT", -#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ -#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) - "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT", -#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ -#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) - "MBEDTLS_ECP_NORMALIZE_MXZ_ALT", -#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ -#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - "MBEDTLS_ENTROPY_HARDWARE_ALT", -#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ -#if defined(MBEDTLS_AES_ROM_TABLES) - "MBEDTLS_AES_ROM_TABLES", -#endif /* MBEDTLS_AES_ROM_TABLES */ -#if defined(MBEDTLS_AES_FEWER_TABLES) - "MBEDTLS_AES_FEWER_TABLES", -#endif /* MBEDTLS_AES_FEWER_TABLES */ -#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) - "MBEDTLS_CAMELLIA_SMALL_MEMORY", -#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ -#if defined(MBEDTLS_CHECK_RETURN_WARNING) - "MBEDTLS_CHECK_RETURN_WARNING", -#endif /* MBEDTLS_CHECK_RETURN_WARNING */ -#if defined(MBEDTLS_CIPHER_MODE_CBC) - "MBEDTLS_CIPHER_MODE_CBC", -#endif /* MBEDTLS_CIPHER_MODE_CBC */ -#if defined(MBEDTLS_CIPHER_MODE_CFB) - "MBEDTLS_CIPHER_MODE_CFB", -#endif /* MBEDTLS_CIPHER_MODE_CFB */ -#if defined(MBEDTLS_CIPHER_MODE_CTR) - "MBEDTLS_CIPHER_MODE_CTR", -#endif /* MBEDTLS_CIPHER_MODE_CTR */ -#if defined(MBEDTLS_CIPHER_MODE_OFB) - "MBEDTLS_CIPHER_MODE_OFB", -#endif /* MBEDTLS_CIPHER_MODE_OFB */ -#if defined(MBEDTLS_CIPHER_MODE_XTS) - "MBEDTLS_CIPHER_MODE_XTS", -#endif /* MBEDTLS_CIPHER_MODE_XTS */ -#if defined(MBEDTLS_CIPHER_NULL_CIPHER) - "MBEDTLS_CIPHER_NULL_CIPHER", -#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ -#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) - "MBEDTLS_CIPHER_PADDING_PKCS7", -#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ -#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) - "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS", -#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) - "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN", -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) - "MBEDTLS_CIPHER_PADDING_ZEROS", -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ -#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) - "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY", -#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ -#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) - "MBEDTLS_ECP_DP_SECP192R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) - "MBEDTLS_ECP_DP_SECP224R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) - "MBEDTLS_ECP_DP_SECP256R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) - "MBEDTLS_ECP_DP_SECP384R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) - "MBEDTLS_ECP_DP_SECP521R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) - "MBEDTLS_ECP_DP_SECP192K1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) - "MBEDTLS_ECP_DP_SECP224K1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) - "MBEDTLS_ECP_DP_SECP256K1_ENABLED", -#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) - "MBEDTLS_ECP_DP_BP256R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) - "MBEDTLS_ECP_DP_BP384R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) - "MBEDTLS_ECP_DP_BP512R1_ENABLED", -#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) - "MBEDTLS_ECP_DP_CURVE25519_ENABLED", -#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ -#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) - "MBEDTLS_ECP_DP_CURVE448_ENABLED", -#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ -#if defined(MBEDTLS_ECP_NIST_OPTIM) - "MBEDTLS_ECP_NIST_OPTIM", -#endif /* MBEDTLS_ECP_NIST_OPTIM */ -#if defined(MBEDTLS_ECP_RESTARTABLE) - "MBEDTLS_ECP_RESTARTABLE", -#endif /* MBEDTLS_ECP_RESTARTABLE */ -#if defined(MBEDTLS_ECDSA_DETERMINISTIC) - "MBEDTLS_ECDSA_DETERMINISTIC", -#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ -#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED", -#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) - "MBEDTLS_PK_PARSE_EC_EXTENDED", -#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ -#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) - "MBEDTLS_ERROR_STRERROR_DUMMY", -#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ -#if defined(MBEDTLS_GENPRIME) - "MBEDTLS_GENPRIME", -#endif /* MBEDTLS_GENPRIME */ -#if defined(MBEDTLS_FS_IO) - "MBEDTLS_FS_IO", -#endif /* MBEDTLS_FS_IO */ -#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) - "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES", -#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ -#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) - "MBEDTLS_NO_PLATFORM_ENTROPY", -#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ -#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) - "MBEDTLS_ENTROPY_FORCE_SHA256", -#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ -#if defined(MBEDTLS_ENTROPY_NV_SEED) - "MBEDTLS_ENTROPY_NV_SEED", -#endif /* MBEDTLS_ENTROPY_NV_SEED */ -#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER", -#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ -#if defined(MBEDTLS_MEMORY_DEBUG) - "MBEDTLS_MEMORY_DEBUG", -#endif /* MBEDTLS_MEMORY_DEBUG */ -#if defined(MBEDTLS_MEMORY_BACKTRACE) - "MBEDTLS_MEMORY_BACKTRACE", -#endif /* MBEDTLS_MEMORY_BACKTRACE */ -#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) - "MBEDTLS_PK_RSA_ALT_SUPPORT", -#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ -#if defined(MBEDTLS_PKCS1_V15) - "MBEDTLS_PKCS1_V15", -#endif /* MBEDTLS_PKCS1_V15 */ -#if defined(MBEDTLS_PKCS1_V21) - "MBEDTLS_PKCS1_V21", -#endif /* MBEDTLS_PKCS1_V21 */ -#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) - "MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS", -#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ -#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) - "MBEDTLS_PSA_CRYPTO_CLIENT", -#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ -#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) - "MBEDTLS_PSA_CRYPTO_DRIVERS", -#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ -#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - "MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG", -#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -#if defined(MBEDTLS_PSA_CRYPTO_SPM) - "MBEDTLS_PSA_CRYPTO_SPM", -#endif /* MBEDTLS_PSA_CRYPTO_SPM */ -#if defined(MBEDTLS_PSA_INJECT_ENTROPY) - "MBEDTLS_PSA_INJECT_ENTROPY", -#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ -#if defined(MBEDTLS_RSA_NO_CRT) - "MBEDTLS_RSA_NO_CRT", -#endif /* MBEDTLS_RSA_NO_CRT */ -#if defined(MBEDTLS_SELF_TEST) - "MBEDTLS_SELF_TEST", -#endif /* MBEDTLS_SELF_TEST */ -#if defined(MBEDTLS_SHA256_SMALLER) - "MBEDTLS_SHA256_SMALLER", -#endif /* MBEDTLS_SHA256_SMALLER */ -#if defined(MBEDTLS_SHA512_SMALLER) - "MBEDTLS_SHA512_SMALLER", -#endif /* MBEDTLS_SHA512_SMALLER */ -#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) - "MBEDTLS_SSL_ALL_ALERT_MESSAGES", -#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - "MBEDTLS_SSL_DTLS_CONNECTION_ID", -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) - "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT", -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ -#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - "MBEDTLS_SSL_ASYNC_PRIVATE", -#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ -#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - "MBEDTLS_SSL_CONTEXT_SERIALIZATION", -#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ -#if defined(MBEDTLS_SSL_DEBUG_ALL) - "MBEDTLS_SSL_DEBUG_ALL", -#endif /* MBEDTLS_SSL_DEBUG_ALL */ -#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - "MBEDTLS_SSL_ENCRYPT_THEN_MAC", -#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ -#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - "MBEDTLS_SSL_EXTENDED_MASTER_SECRET", -#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ -#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE", -#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -#if defined(MBEDTLS_SSL_RENEGOTIATION) - "MBEDTLS_SSL_RENEGOTIATION", -#endif /* MBEDTLS_SSL_RENEGOTIATION */ -#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", -#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_2) - "MBEDTLS_SSL_PROTO_TLS1_2", -#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - "MBEDTLS_SSL_PROTO_TLS1_3", -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - "MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE", -#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) - "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) - "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) - "MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE", -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) - "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH", -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ -#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) - "MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS", -#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ -#if defined(MBEDTLS_SSL_EARLY_DATA) - "MBEDTLS_SSL_EARLY_DATA", -#endif /* MBEDTLS_SSL_EARLY_DATA */ -#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) - "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE", -#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ -#if defined(MBEDTLS_SSL_PROTO_DTLS) - "MBEDTLS_SSL_PROTO_DTLS", -#endif /* MBEDTLS_SSL_PROTO_DTLS */ -#if defined(MBEDTLS_SSL_ALPN) - "MBEDTLS_SSL_ALPN", -#endif /* MBEDTLS_SSL_ALPN */ -#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - "MBEDTLS_SSL_DTLS_ANTI_REPLAY", -#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ -#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - "MBEDTLS_SSL_DTLS_HELLO_VERIFY", -#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ -#if defined(MBEDTLS_SSL_DTLS_SRTP) - "MBEDTLS_SSL_DTLS_SRTP", -#endif /* MBEDTLS_SSL_DTLS_SRTP */ -#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE", -#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - "MBEDTLS_SSL_SESSION_TICKETS", -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - "MBEDTLS_SSL_SERVER_NAME_INDICATION", -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ -#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH", -#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) - "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN", -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) - "MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND", -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ -#if defined(MBEDTLS_TEST_HOOKS) - "MBEDTLS_TEST_HOOKS", -#endif /* MBEDTLS_TEST_HOOKS */ -#if defined(MBEDTLS_THREADING_ALT) - "MBEDTLS_THREADING_ALT", -#endif /* MBEDTLS_THREADING_ALT */ -#if defined(MBEDTLS_THREADING_PTHREAD) - "MBEDTLS_THREADING_PTHREAD", -#endif /* MBEDTLS_THREADING_PTHREAD */ -#if defined(MBEDTLS_USE_PSA_CRYPTO) - "MBEDTLS_USE_PSA_CRYPTO", -#endif /* MBEDTLS_USE_PSA_CRYPTO */ -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) - "MBEDTLS_PSA_CRYPTO_CONFIG", -#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ -#if defined(MBEDTLS_VERSION_FEATURES) - "MBEDTLS_VERSION_FEATURES", -#endif /* MBEDTLS_VERSION_FEATURES */ -#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK", -#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -#if defined(MBEDTLS_X509_REMOVE_INFO) - "MBEDTLS_X509_REMOVE_INFO", -#endif /* MBEDTLS_X509_REMOVE_INFO */ -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - "MBEDTLS_X509_RSASSA_PSS_SUPPORT", -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ -#if defined(MBEDTLS_AESNI_C) - "MBEDTLS_AESNI_C", -#endif /* MBEDTLS_AESNI_C */ -#if defined(MBEDTLS_AES_C) - "MBEDTLS_AES_C", -#endif /* MBEDTLS_AES_C */ -#if defined(MBEDTLS_ASN1_PARSE_C) - "MBEDTLS_ASN1_PARSE_C", -#endif /* MBEDTLS_ASN1_PARSE_C */ -#if defined(MBEDTLS_ASN1_WRITE_C) - "MBEDTLS_ASN1_WRITE_C", -#endif /* MBEDTLS_ASN1_WRITE_C */ -#if defined(MBEDTLS_BASE64_C) - "MBEDTLS_BASE64_C", -#endif /* MBEDTLS_BASE64_C */ -#if defined(MBEDTLS_BIGNUM_C) - "MBEDTLS_BIGNUM_C", -#endif /* MBEDTLS_BIGNUM_C */ -#if defined(MBEDTLS_CAMELLIA_C) - "MBEDTLS_CAMELLIA_C", -#endif /* MBEDTLS_CAMELLIA_C */ -#if defined(MBEDTLS_ARIA_C) - "MBEDTLS_ARIA_C", -#endif /* MBEDTLS_ARIA_C */ -#if defined(MBEDTLS_CCM_C) - "MBEDTLS_CCM_C", -#endif /* MBEDTLS_CCM_C */ -#if defined(MBEDTLS_CHACHA20_C) - "MBEDTLS_CHACHA20_C", -#endif /* MBEDTLS_CHACHA20_C */ -#if defined(MBEDTLS_CHACHAPOLY_C) - "MBEDTLS_CHACHAPOLY_C", -#endif /* MBEDTLS_CHACHAPOLY_C */ -#if defined(MBEDTLS_CIPHER_C) - "MBEDTLS_CIPHER_C", -#endif /* MBEDTLS_CIPHER_C */ -#if defined(MBEDTLS_CMAC_C) - "MBEDTLS_CMAC_C", -#endif /* MBEDTLS_CMAC_C */ -#if defined(MBEDTLS_CTR_DRBG_C) - "MBEDTLS_CTR_DRBG_C", -#endif /* MBEDTLS_CTR_DRBG_C */ -#if defined(MBEDTLS_DEBUG_C) - "MBEDTLS_DEBUG_C", -#endif /* MBEDTLS_DEBUG_C */ -#if defined(MBEDTLS_DES_C) - "MBEDTLS_DES_C", -#endif /* MBEDTLS_DES_C */ -#if defined(MBEDTLS_DHM_C) - "MBEDTLS_DHM_C", -#endif /* MBEDTLS_DHM_C */ -#if defined(MBEDTLS_ECDH_C) - "MBEDTLS_ECDH_C", -#endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_ECDSA_C) - "MBEDTLS_ECDSA_C", -#endif /* MBEDTLS_ECDSA_C */ -#if defined(MBEDTLS_ECJPAKE_C) - "MBEDTLS_ECJPAKE_C", -#endif /* MBEDTLS_ECJPAKE_C */ -#if defined(MBEDTLS_ECP_C) - "MBEDTLS_ECP_C", -#endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_ENTROPY_C) - "MBEDTLS_ENTROPY_C", -#endif /* MBEDTLS_ENTROPY_C */ -#if defined(MBEDTLS_ERROR_C) - "MBEDTLS_ERROR_C", -#endif /* MBEDTLS_ERROR_C */ -#if defined(MBEDTLS_GCM_C) - "MBEDTLS_GCM_C", -#endif /* MBEDTLS_GCM_C */ -#if defined(MBEDTLS_HKDF_C) - "MBEDTLS_HKDF_C", -#endif /* MBEDTLS_HKDF_C */ -#if defined(MBEDTLS_HMAC_DRBG_C) - "MBEDTLS_HMAC_DRBG_C", -#endif /* MBEDTLS_HMAC_DRBG_C */ -#if defined(MBEDTLS_LMS_C) - "MBEDTLS_LMS_C", -#endif /* MBEDTLS_LMS_C */ -#if defined(MBEDTLS_LMS_PRIVATE) - "MBEDTLS_LMS_PRIVATE", -#endif /* MBEDTLS_LMS_PRIVATE */ -#if defined(MBEDTLS_NIST_KW_C) - "MBEDTLS_NIST_KW_C", -#endif /* MBEDTLS_NIST_KW_C */ -#if defined(MBEDTLS_MD_C) - "MBEDTLS_MD_C", -#endif /* MBEDTLS_MD_C */ -#if defined(MBEDTLS_MD5_C) - "MBEDTLS_MD5_C", -#endif /* MBEDTLS_MD5_C */ -#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - "MBEDTLS_MEMORY_BUFFER_ALLOC_C", -#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ -#if defined(MBEDTLS_NET_C) - "MBEDTLS_NET_C", -#endif /* MBEDTLS_NET_C */ -#if defined(MBEDTLS_OID_C) - "MBEDTLS_OID_C", -#endif /* MBEDTLS_OID_C */ -#if defined(MBEDTLS_PADLOCK_C) - "MBEDTLS_PADLOCK_C", -#endif /* MBEDTLS_PADLOCK_C */ -#if defined(MBEDTLS_PEM_PARSE_C) - "MBEDTLS_PEM_PARSE_C", -#endif /* MBEDTLS_PEM_PARSE_C */ -#if defined(MBEDTLS_PEM_WRITE_C) - "MBEDTLS_PEM_WRITE_C", -#endif /* MBEDTLS_PEM_WRITE_C */ -#if defined(MBEDTLS_PK_C) - "MBEDTLS_PK_C", -#endif /* MBEDTLS_PK_C */ -#if defined(MBEDTLS_PK_PARSE_C) - "MBEDTLS_PK_PARSE_C", -#endif /* MBEDTLS_PK_PARSE_C */ -#if defined(MBEDTLS_PK_WRITE_C) - "MBEDTLS_PK_WRITE_C", -#endif /* MBEDTLS_PK_WRITE_C */ -#if defined(MBEDTLS_PKCS5_C) - "MBEDTLS_PKCS5_C", -#endif /* MBEDTLS_PKCS5_C */ -#if defined(MBEDTLS_PKCS7_C) - "MBEDTLS_PKCS7_C", -#endif /* MBEDTLS_PKCS7_C */ -#if defined(MBEDTLS_PKCS12_C) - "MBEDTLS_PKCS12_C", -#endif /* MBEDTLS_PKCS12_C */ -#if defined(MBEDTLS_PLATFORM_C) - "MBEDTLS_PLATFORM_C", -#endif /* MBEDTLS_PLATFORM_C */ -#if defined(MBEDTLS_POLY1305_C) - "MBEDTLS_POLY1305_C", -#endif /* MBEDTLS_POLY1305_C */ -#if defined(MBEDTLS_PSA_CRYPTO_C) - "MBEDTLS_PSA_CRYPTO_C", -#endif /* MBEDTLS_PSA_CRYPTO_C */ -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - "MBEDTLS_PSA_CRYPTO_SE_C", -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ -#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - "MBEDTLS_PSA_CRYPTO_STORAGE_C", -#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ -#if defined(MBEDTLS_PSA_ITS_FILE_C) - "MBEDTLS_PSA_ITS_FILE_C", -#endif /* MBEDTLS_PSA_ITS_FILE_C */ -#if defined(MBEDTLS_RIPEMD160_C) - "MBEDTLS_RIPEMD160_C", -#endif /* MBEDTLS_RIPEMD160_C */ -#if defined(MBEDTLS_RSA_C) - "MBEDTLS_RSA_C", -#endif /* MBEDTLS_RSA_C */ -#if defined(MBEDTLS_SHA1_C) - "MBEDTLS_SHA1_C", -#endif /* MBEDTLS_SHA1_C */ -#if defined(MBEDTLS_SHA224_C) - "MBEDTLS_SHA224_C", -#endif /* MBEDTLS_SHA224_C */ -#if defined(MBEDTLS_SHA256_C) - "MBEDTLS_SHA256_C", -#endif /* MBEDTLS_SHA256_C */ -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) - "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT", -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) - "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY", -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ -#if defined(MBEDTLS_SHA384_C) - "MBEDTLS_SHA384_C", -#endif /* MBEDTLS_SHA384_C */ -#if defined(MBEDTLS_SHA512_C) - "MBEDTLS_SHA512_C", -#endif /* MBEDTLS_SHA512_C */ -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) - "MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT", -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) - "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY", -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ -#if defined(MBEDTLS_SSL_CACHE_C) - "MBEDTLS_SSL_CACHE_C", -#endif /* MBEDTLS_SSL_CACHE_C */ -#if defined(MBEDTLS_SSL_COOKIE_C) - "MBEDTLS_SSL_COOKIE_C", -#endif /* MBEDTLS_SSL_COOKIE_C */ -#if defined(MBEDTLS_SSL_TICKET_C) - "MBEDTLS_SSL_TICKET_C", -#endif /* MBEDTLS_SSL_TICKET_C */ -#if defined(MBEDTLS_SSL_CLI_C) - "MBEDTLS_SSL_CLI_C", -#endif /* MBEDTLS_SSL_CLI_C */ -#if defined(MBEDTLS_SSL_SRV_C) - "MBEDTLS_SSL_SRV_C", -#endif /* MBEDTLS_SSL_SRV_C */ -#if defined(MBEDTLS_SSL_TLS_C) - "MBEDTLS_SSL_TLS_C", -#endif /* MBEDTLS_SSL_TLS_C */ -#if defined(MBEDTLS_THREADING_C) - "MBEDTLS_THREADING_C", -#endif /* MBEDTLS_THREADING_C */ -#if defined(MBEDTLS_TIMING_C) - "MBEDTLS_TIMING_C", -#endif /* MBEDTLS_TIMING_C */ -#if defined(MBEDTLS_VERSION_C) - "MBEDTLS_VERSION_C", -#endif /* MBEDTLS_VERSION_C */ -#if defined(MBEDTLS_X509_USE_C) - "MBEDTLS_X509_USE_C", -#endif /* MBEDTLS_X509_USE_C */ -#if defined(MBEDTLS_X509_CRT_PARSE_C) - "MBEDTLS_X509_CRT_PARSE_C", -#endif /* MBEDTLS_X509_CRT_PARSE_C */ -#if defined(MBEDTLS_X509_CRL_PARSE_C) - "MBEDTLS_X509_CRL_PARSE_C", -#endif /* MBEDTLS_X509_CRL_PARSE_C */ -#if defined(MBEDTLS_X509_CSR_PARSE_C) - "MBEDTLS_X509_CSR_PARSE_C", -#endif /* MBEDTLS_X509_CSR_PARSE_C */ -#if defined(MBEDTLS_X509_CREATE_C) - "MBEDTLS_X509_CREATE_C", -#endif /* MBEDTLS_X509_CREATE_C */ -#if defined(MBEDTLS_X509_CRT_WRITE_C) - "MBEDTLS_X509_CRT_WRITE_C", -#endif /* MBEDTLS_X509_CRT_WRITE_C */ -#if defined(MBEDTLS_X509_CSR_WRITE_C) - "MBEDTLS_X509_CSR_WRITE_C", -#endif /* MBEDTLS_X509_CSR_WRITE_C */ -#endif /* MBEDTLS_VERSION_FEATURES */ - NULL -}; - -int mbedtls_version_check_feature( const char *feature ) -{ - const char * const *idx = features; - - if( *idx == NULL ) - return( -2 ); - - if( feature == NULL ) - return( -1 ); - - while( *idx != NULL ) - { - if( !strcmp( *idx, feature ) ) - return( 0 ); - idx++; - } - return( -1 ); -} - -#endif /* MBEDTLS_VERSION_C */ diff --git a/programs/psa/psa_constant_names_generated.c b/programs/psa/psa_constant_names_generated.c deleted file mode 100644 index 2ee35fe3f..000000000 --- a/programs/psa/psa_constant_names_generated.c +++ /dev/null @@ -1,474 +0,0 @@ -/* Automatically generated by generate_psa_constant.py. DO NOT EDIT. */ - -static const char *psa_strerror(psa_status_t status) -{ - switch (status) { - case PSA_ERROR_ALREADY_EXISTS: return "PSA_ERROR_ALREADY_EXISTS"; - case PSA_ERROR_BAD_STATE: return "PSA_ERROR_BAD_STATE"; - case PSA_ERROR_BUFFER_TOO_SMALL: return "PSA_ERROR_BUFFER_TOO_SMALL"; - case PSA_ERROR_COMMUNICATION_FAILURE: return "PSA_ERROR_COMMUNICATION_FAILURE"; - case PSA_ERROR_CORRUPTION_DETECTED: return "PSA_ERROR_CORRUPTION_DETECTED"; - case PSA_ERROR_DATA_CORRUPT: return "PSA_ERROR_DATA_CORRUPT"; - case PSA_ERROR_DATA_INVALID: return "PSA_ERROR_DATA_INVALID"; - case PSA_ERROR_DOES_NOT_EXIST: return "PSA_ERROR_DOES_NOT_EXIST"; - case PSA_ERROR_GENERIC_ERROR: return "PSA_ERROR_GENERIC_ERROR"; - case PSA_ERROR_HARDWARE_FAILURE: return "PSA_ERROR_HARDWARE_FAILURE"; - case PSA_ERROR_INSUFFICIENT_DATA: return "PSA_ERROR_INSUFFICIENT_DATA"; - case PSA_ERROR_INSUFFICIENT_ENTROPY: return "PSA_ERROR_INSUFFICIENT_ENTROPY"; - case PSA_ERROR_INSUFFICIENT_MEMORY: return "PSA_ERROR_INSUFFICIENT_MEMORY"; - case PSA_ERROR_INSUFFICIENT_STORAGE: return "PSA_ERROR_INSUFFICIENT_STORAGE"; - case PSA_ERROR_INVALID_ARGUMENT: return "PSA_ERROR_INVALID_ARGUMENT"; - case PSA_ERROR_INVALID_HANDLE: return "PSA_ERROR_INVALID_HANDLE"; - case PSA_ERROR_INVALID_PADDING: return "PSA_ERROR_INVALID_PADDING"; - case PSA_ERROR_INVALID_SIGNATURE: return "PSA_ERROR_INVALID_SIGNATURE"; - case PSA_ERROR_NOT_PERMITTED: return "PSA_ERROR_NOT_PERMITTED"; - case PSA_ERROR_NOT_SUPPORTED: return "PSA_ERROR_NOT_SUPPORTED"; - case PSA_ERROR_STORAGE_FAILURE: return "PSA_ERROR_STORAGE_FAILURE"; - case PSA_SUCCESS: return "PSA_SUCCESS"; - default: return NULL; - } -} - -static const char *psa_ecc_family_name(psa_ecc_family_t curve) -{ - switch (curve) { - case PSA_ECC_FAMILY_BRAINPOOL_P_R1: return "PSA_ECC_FAMILY_BRAINPOOL_P_R1"; - case PSA_ECC_FAMILY_MONTGOMERY: return "PSA_ECC_FAMILY_MONTGOMERY"; - case PSA_ECC_FAMILY_SECP_K1: return "PSA_ECC_FAMILY_SECP_K1"; - case PSA_ECC_FAMILY_SECP_R1: return "PSA_ECC_FAMILY_SECP_R1"; - case PSA_ECC_FAMILY_SECP_R2: return "PSA_ECC_FAMILY_SECP_R2"; - case PSA_ECC_FAMILY_SECT_K1: return "PSA_ECC_FAMILY_SECT_K1"; - case PSA_ECC_FAMILY_SECT_R1: return "PSA_ECC_FAMILY_SECT_R1"; - case PSA_ECC_FAMILY_SECT_R2: return "PSA_ECC_FAMILY_SECT_R2"; - case PSA_ECC_FAMILY_TWISTED_EDWARDS: return "PSA_ECC_FAMILY_TWISTED_EDWARDS"; - default: return NULL; - } -} - -static const char *psa_dh_family_name(psa_dh_family_t group) -{ - switch (group) { - case PSA_DH_FAMILY_CUSTOM: return "PSA_DH_FAMILY_CUSTOM"; - case PSA_DH_FAMILY_RFC7919: return "PSA_DH_FAMILY_RFC7919"; - default: return NULL; - } -} - -static const char *psa_hash_algorithm_name(psa_algorithm_t hash_alg) -{ - switch (hash_alg) { - case PSA_ALG_ANY_HASH: return "PSA_ALG_ANY_HASH"; - case PSA_ALG_CATEGORY_HASH: return "PSA_ALG_CATEGORY_HASH"; - case PSA_ALG_MD5: return "PSA_ALG_MD5"; - case PSA_ALG_RIPEMD160: return "PSA_ALG_RIPEMD160"; - case PSA_ALG_SHA3_224: return "PSA_ALG_SHA3_224"; - case PSA_ALG_SHA3_256: return "PSA_ALG_SHA3_256"; - case PSA_ALG_SHA3_384: return "PSA_ALG_SHA3_384"; - case PSA_ALG_SHA3_512: return "PSA_ALG_SHA3_512"; - case PSA_ALG_SHAKE256_512: return "PSA_ALG_SHAKE256_512"; - case PSA_ALG_SHA_1: return "PSA_ALG_SHA_1"; - case PSA_ALG_SHA_224: return "PSA_ALG_SHA_224"; - case PSA_ALG_SHA_256: return "PSA_ALG_SHA_256"; - case PSA_ALG_SHA_384: return "PSA_ALG_SHA_384"; - case PSA_ALG_SHA_512: return "PSA_ALG_SHA_512"; - case PSA_ALG_SHA_512_224: return "PSA_ALG_SHA_512_224"; - case PSA_ALG_SHA_512_256: return "PSA_ALG_SHA_512_256"; - default: return NULL; - } -} - -static const char *psa_ka_algorithm_name(psa_algorithm_t ka_alg) -{ - switch (ka_alg) { - case PSA_ALG_CATEGORY_KEY_AGREEMENT: return "PSA_ALG_CATEGORY_KEY_AGREEMENT"; - case PSA_ALG_ECDH: return "PSA_ALG_ECDH"; - case PSA_ALG_FFDH: return "PSA_ALG_FFDH"; - default: return NULL; - } -} - -static int psa_snprint_key_type(char *buffer, size_t buffer_size, - psa_key_type_t type) -{ - size_t required_size = 0; - switch (type) { - case PSA_KEY_TYPE_AES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_AES", 16); break; - case PSA_KEY_TYPE_ARIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ARIA", 17); break; - case PSA_KEY_TYPE_CAMELLIA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CAMELLIA", 21); break; - case PSA_KEY_TYPE_CATEGORY_FLAG_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_FLAG_PAIR", 31); break; - case PSA_KEY_TYPE_CATEGORY_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_KEY_PAIR", 30); break; - case PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY", 32); break; - case PSA_KEY_TYPE_CATEGORY_RAW: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_RAW", 25); break; - case PSA_KEY_TYPE_CATEGORY_SYMMETRIC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CATEGORY_SYMMETRIC", 31); break; - case PSA_KEY_TYPE_CHACHA20: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_CHACHA20", 21); break; - case PSA_KEY_TYPE_DERIVE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DERIVE", 19); break; - case PSA_KEY_TYPE_DES: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DES", 16); break; - case PSA_KEY_TYPE_DH_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_KEY_PAIR_BASE", 29); break; - case PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE", 31); break; - case PSA_KEY_TYPE_DSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_KEY_PAIR", 25); break; - case PSA_KEY_TYPE_DSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_DSA_PUBLIC_KEY", 27); break; - case PSA_KEY_TYPE_ECC_KEY_PAIR_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_KEY_PAIR_BASE", 30); break; - case PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE", 32); break; - case PSA_KEY_TYPE_HMAC: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_HMAC", 17); break; - case PSA_KEY_TYPE_NONE: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_NONE", 17); break; - case PSA_KEY_TYPE_PASSWORD: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD", 21); break; - case PSA_KEY_TYPE_PASSWORD_HASH: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PASSWORD_HASH", 26); break; - case PSA_KEY_TYPE_PEPPER: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_PEPPER", 19); break; - case PSA_KEY_TYPE_RAW_DATA: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RAW_DATA", 21); break; - case PSA_KEY_TYPE_RSA_KEY_PAIR: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_KEY_PAIR", 25); break; - case PSA_KEY_TYPE_RSA_PUBLIC_KEY: append(&buffer, buffer_size, &required_size, "PSA_KEY_TYPE_RSA_PUBLIC_KEY", 27); break; - default: - if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { - append_with_curve(&buffer, buffer_size, &required_size, - "PSA_KEY_TYPE_ECC_KEY_PAIR", 25, - PSA_KEY_TYPE_ECC_GET_FAMILY(type)); - } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type)) { - append_with_curve(&buffer, buffer_size, &required_size, - "PSA_KEY_TYPE_ECC_PUBLIC_KEY", 27, - PSA_KEY_TYPE_ECC_GET_FAMILY(type)); - } else if (PSA_KEY_TYPE_IS_DH_KEY_PAIR(type)) { - append_with_group(&buffer, buffer_size, &required_size, - "PSA_KEY_TYPE_DH_KEY_PAIR", 24, - PSA_KEY_TYPE_DH_GET_FAMILY(type)); - } else if (PSA_KEY_TYPE_IS_DH_PUBLIC_KEY(type)) { - append_with_group(&buffer, buffer_size, &required_size, - "PSA_KEY_TYPE_DH_PUBLIC_KEY", 26, - PSA_KEY_TYPE_DH_GET_FAMILY(type)); - } else { - return snprintf(buffer, buffer_size, - "0x%04x", (unsigned) type); - } - break; - } - buffer[0] = 0; - return (int) required_size; -} - -#define NO_LENGTH_MODIFIER 0xfffffffflu -static int psa_snprint_algorithm(char *buffer, size_t buffer_size, - psa_algorithm_t alg) -{ - size_t required_size = 0; - psa_algorithm_t core_alg = alg; - unsigned long length_modifier = NO_LENGTH_MODIFIER; - if (PSA_ALG_IS_MAC(alg)) { - core_alg = PSA_ALG_TRUNCATED_MAC(alg, 0); - if (alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(", 33); - length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg); - } else if (core_alg != alg) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_TRUNCATED_MAC(", 22); - length_modifier = PSA_MAC_TRUNCATED_LENGTH(alg); - } - } else if (PSA_ALG_IS_AEAD(alg)) { - core_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg); - if (core_alg == 0) { - /* For unknown AEAD algorithms, there is no "default tag length". */ - core_alg = alg; - } else if (alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(", 43); - length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); - } else if (core_alg != alg) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_AEAD_WITH_SHORTENED_TAG(", 32); - length_modifier = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); - } - } else if (PSA_ALG_IS_KEY_AGREEMENT(alg) && - !PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) { - core_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg); - append(&buffer, buffer_size, &required_size, - "PSA_ALG_KEY_AGREEMENT(", 22); - append_with_alg(&buffer, buffer_size, &required_size, - psa_ka_algorithm_name, - PSA_ALG_KEY_AGREEMENT_GET_BASE(alg)); - append(&buffer, buffer_size, &required_size, ", ", 2); - } - switch (core_alg) { - case PSA_ALG_ANY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ANY_HASH", 16); break; - case PSA_ALG_CATEGORY_AEAD: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_AEAD", 21); break; - case PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION", 38); break; - case PSA_ALG_CATEGORY_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_CIPHER", 23); break; - case PSA_ALG_CATEGORY_HASH: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_HASH", 21); break; - case PSA_ALG_CATEGORY_KEY_AGREEMENT: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_AGREEMENT", 30); break; - case PSA_ALG_CATEGORY_KEY_DERIVATION: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_KEY_DERIVATION", 31); break; - case PSA_ALG_CATEGORY_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_MAC", 20); break; - case PSA_ALG_CATEGORY_PAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_PAKE", 21); break; - case PSA_ALG_CATEGORY_SIGN: append(&buffer, buffer_size, &required_size, "PSA_ALG_CATEGORY_SIGN", 21); break; - case PSA_ALG_CBC_MAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_MAC", 15); break; - case PSA_ALG_CBC_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_NO_PADDING", 22); break; - case PSA_ALG_CBC_PKCS7: append(&buffer, buffer_size, &required_size, "PSA_ALG_CBC_PKCS7", 17); break; - case PSA_ALG_CCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM", 11); break; - case PSA_ALG_CCM_STAR_NO_TAG: append(&buffer, buffer_size, &required_size, "PSA_ALG_CCM_STAR_NO_TAG", 23); break; - case PSA_ALG_CFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_CFB", 11); break; - case PSA_ALG_CHACHA20_POLY1305: append(&buffer, buffer_size, &required_size, "PSA_ALG_CHACHA20_POLY1305", 25); break; - case PSA_ALG_CIPHER_MAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_CIPHER_MAC_BASE", 23); break; - case PSA_ALG_CMAC: append(&buffer, buffer_size, &required_size, "PSA_ALG_CMAC", 12); break; - case PSA_ALG_CTR: append(&buffer, buffer_size, &required_size, "PSA_ALG_CTR", 11); break; - case PSA_ALG_DETERMINISTIC_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_DSA_BASE", 30); break; - case PSA_ALG_DETERMINISTIC_ECDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DETERMINISTIC_ECDSA_BASE", 32); break; - case PSA_ALG_DSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_DSA_BASE", 16); break; - case PSA_ALG_ECB_NO_PADDING: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECB_NO_PADDING", 22); break; - case PSA_ALG_ECDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDH", 12); break; - case PSA_ALG_ECDSA_ANY: append(&buffer, buffer_size, &required_size, "PSA_ALG_ECDSA_ANY", 17); break; - case PSA_ALG_ED25519PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED25519PH", 17); break; - case PSA_ALG_ED448PH: append(&buffer, buffer_size, &required_size, "PSA_ALG_ED448PH", 15); break; - case PSA_ALG_FFDH: append(&buffer, buffer_size, &required_size, "PSA_ALG_FFDH", 12); break; - case PSA_ALG_GCM: append(&buffer, buffer_size, &required_size, "PSA_ALG_GCM", 11); break; - case PSA_ALG_HASH_EDDSA_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HASH_EDDSA_BASE", 23); break; - case PSA_ALG_HKDF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_BASE", 17); break; - case PSA_ALG_HKDF_EXPAND_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXPAND_BASE", 24); break; - case PSA_ALG_HKDF_EXTRACT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HKDF_EXTRACT_BASE", 25); break; - case PSA_ALG_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_HMAC_BASE", 17); break; - case PSA_ALG_JPAKE: append(&buffer, buffer_size, &required_size, "PSA_ALG_JPAKE", 13); break; - case PSA_ALG_MD5: append(&buffer, buffer_size, &required_size, "PSA_ALG_MD5", 11); break; - case PSA_ALG_NONE: append(&buffer, buffer_size, &required_size, "PSA_ALG_NONE", 12); break; - case PSA_ALG_OFB: append(&buffer, buffer_size, &required_size, "PSA_ALG_OFB", 11); break; - case PSA_ALG_PBKDF2_AES_CMAC_PRF_128: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_AES_CMAC_PRF_128", 31); break; - case PSA_ALG_PBKDF2_HMAC_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_PBKDF2_HMAC_BASE", 24); break; - case PSA_ALG_PURE_EDDSA: append(&buffer, buffer_size, &required_size, "PSA_ALG_PURE_EDDSA", 18); break; - case PSA_ALG_RIPEMD160: append(&buffer, buffer_size, &required_size, "PSA_ALG_RIPEMD160", 17); break; - case PSA_ALG_RSA_OAEP_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_OAEP_BASE", 21); break; - case PSA_ALG_RSA_PKCS1V15_CRYPT: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_CRYPT", 26); break; - case PSA_ALG_RSA_PKCS1V15_SIGN_RAW: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PKCS1V15_SIGN_RAW", 29); break; - case PSA_ALG_RSA_PSS_ANY_SALT_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_ANY_SALT_BASE", 29); break; - case PSA_ALG_RSA_PSS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_RSA_PSS_BASE", 20); break; - case PSA_ALG_SHA3_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_224", 16); break; - case PSA_ALG_SHA3_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_256", 16); break; - case PSA_ALG_SHA3_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_384", 16); break; - case PSA_ALG_SHA3_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA3_512", 16); break; - case PSA_ALG_SHAKE256_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHAKE256_512", 20); break; - case PSA_ALG_SHA_1: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_1", 13); break; - case PSA_ALG_SHA_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_224", 15); break; - case PSA_ALG_SHA_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_256", 15); break; - case PSA_ALG_SHA_384: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_384", 15); break; - case PSA_ALG_SHA_512: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512", 15); break; - case PSA_ALG_SHA_512_224: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_224", 19); break; - case PSA_ALG_SHA_512_256: append(&buffer, buffer_size, &required_size, "PSA_ALG_SHA_512_256", 19); break; - case PSA_ALG_STREAM_CIPHER: append(&buffer, buffer_size, &required_size, "PSA_ALG_STREAM_CIPHER", 21); break; - case PSA_ALG_TLS12_ECJPAKE_TO_PMS: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_ECJPAKE_TO_PMS", 28); break; - case PSA_ALG_TLS12_PRF_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PRF_BASE", 22); break; - case PSA_ALG_TLS12_PSK_TO_MS_BASE: append(&buffer, buffer_size, &required_size, "PSA_ALG_TLS12_PSK_TO_MS_BASE", 28); break; - case PSA_ALG_XTS: append(&buffer, buffer_size, &required_size, "PSA_ALG_XTS", 11); break; - default: - if (PSA_ALG_IS_DETERMINISTIC_DSA(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_DETERMINISTIC_DSA(", 25 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_DETERMINISTIC_ECDSA(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_DETERMINISTIC_ECDSA(", 27 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RANDOMIZED_DSA(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_DSA(", 11 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RANDOMIZED_ECDSA(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_ECDSA(", 13 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_HKDF(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_HKDF(", 12 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_HKDF_EXPAND(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_HKDF_EXPAND(", 19 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_HKDF_EXTRACT(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_HKDF_EXTRACT(", 20 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_HMAC(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_HMAC(", 12 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_PBKDF2_HMAC(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_PBKDF2_HMAC(", 19 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RSA_OAEP(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_RSA_OAEP(", 16 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_RSA_PKCS1V15_SIGN(", 25 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RSA_PSS_STANDARD_SALT(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_RSA_PSS(", 15 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_RSA_PSS_ANY_SALT(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_RSA_PSS_ANY_SALT(", 24 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_TLS12_PRF(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_TLS12_PRF(", 17 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else if (PSA_ALG_IS_TLS12_PSK_TO_MS(core_alg)) { - append(&buffer, buffer_size, &required_size, - "PSA_ALG_TLS12_PSK_TO_MS(", 23 + 1); - append_with_alg(&buffer, buffer_size, &required_size, - psa_hash_algorithm_name, - PSA_ALG_GET_HASH(core_alg)); - append(&buffer, buffer_size, &required_size, ")", 1); - } else { - append_integer(&buffer, buffer_size, &required_size, - "0x%08lx", (unsigned long) core_alg); - } - break; - } - if (core_alg != alg) { - if (length_modifier != NO_LENGTH_MODIFIER) { - append(&buffer, buffer_size, &required_size, ", ", 2); - append_integer(&buffer, buffer_size, &required_size, - "%lu", length_modifier); - } - append(&buffer, buffer_size, &required_size, ")", 1); - } - buffer[0] = 0; - return (int) required_size; -} - -static int psa_snprint_key_usage(char *buffer, size_t buffer_size, - psa_key_usage_t usage) -{ - size_t required_size = 0; - if (usage == 0) { - if (buffer_size > 1) { - buffer[0] = '0'; - buffer[1] = 0; - } else if (buffer_size == 1) { - buffer[0] = 0; - } - return 1; - } - if (usage & PSA_KEY_USAGE_COPY) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_COPY", 18); - usage ^= PSA_KEY_USAGE_COPY; - } - if (usage & PSA_KEY_USAGE_DECRYPT) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DECRYPT", 21); - usage ^= PSA_KEY_USAGE_DECRYPT; - } - if (usage & PSA_KEY_USAGE_DERIVE) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_DERIVE", 20); - usage ^= PSA_KEY_USAGE_DERIVE; - } - if (usage & PSA_KEY_USAGE_ENCRYPT) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_ENCRYPT", 21); - usage ^= PSA_KEY_USAGE_ENCRYPT; - } - if (usage & PSA_KEY_USAGE_EXPORT) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_EXPORT", 20); - usage ^= PSA_KEY_USAGE_EXPORT; - } - if (usage & PSA_KEY_USAGE_SIGN_HASH) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_HASH", 23); - usage ^= PSA_KEY_USAGE_SIGN_HASH; - } - if (usage & PSA_KEY_USAGE_SIGN_MESSAGE) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_SIGN_MESSAGE", 26); - usage ^= PSA_KEY_USAGE_SIGN_MESSAGE; - } - if (usage & PSA_KEY_USAGE_VERIFY_DERIVATION) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_DERIVATION", 31); - usage ^= PSA_KEY_USAGE_VERIFY_DERIVATION; - } - if (usage & PSA_KEY_USAGE_VERIFY_HASH) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_HASH", 25); - usage ^= PSA_KEY_USAGE_VERIFY_HASH; - } - if (usage & PSA_KEY_USAGE_VERIFY_MESSAGE) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append(&buffer, buffer_size, &required_size, "PSA_KEY_USAGE_VERIFY_MESSAGE", 28); - usage ^= PSA_KEY_USAGE_VERIFY_MESSAGE; - } - if (usage != 0) { - if (required_size != 0) { - append(&buffer, buffer_size, &required_size, " | ", 3); - } - append_integer(&buffer, buffer_size, &required_size, - "0x%08lx", (unsigned long) usage); - } else { - buffer[0] = 0; - } - return (int) required_size; -} - -/* End of automatically generated file. */ diff --git a/programs/test/query_config.c b/programs/test/query_config.c deleted file mode 100644 index 97e44b103..000000000 --- a/programs/test/query_config.c +++ /dev/null @@ -1,4692 +0,0 @@ -/* - * Query Mbed TLS compile time configurations from mbedtls_config.h - * - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "mbedtls/build_info.h" - -#include "query_config.h" - -#include "mbedtls/platform.h" - -/* - * Include all the headers with public APIs in case they define a macro to its - * default value when that configuration is not set in mbedtls_config.h, or - * for PSA_WANT macros, in case they're auto-defined based on mbedtls_config.h - * rather than defined directly in crypto_config.h. - */ -#include "psa/crypto.h" - -#include "mbedtls/aes.h" -#include "mbedtls/aria.h" -#include "mbedtls/asn1.h" -#include "mbedtls/asn1write.h" -#include "mbedtls/base64.h" -#include "mbedtls/bignum.h" -#include "mbedtls/camellia.h" -#include "mbedtls/ccm.h" -#include "mbedtls/chacha20.h" -#include "mbedtls/chachapoly.h" -#include "mbedtls/cipher.h" -#include "mbedtls/cmac.h" -#include "mbedtls/ctr_drbg.h" -#include "mbedtls/debug.h" -#include "mbedtls/des.h" -#include "mbedtls/dhm.h" -#include "mbedtls/ecdh.h" -#include "mbedtls/ecdsa.h" -#include "mbedtls/ecjpake.h" -#include "mbedtls/ecp.h" -#include "mbedtls/entropy.h" -#include "mbedtls/error.h" -#include "mbedtls/gcm.h" -#include "mbedtls/hkdf.h" -#include "mbedtls/hmac_drbg.h" -#include "mbedtls/md.h" -#include "mbedtls/md5.h" -#include "mbedtls/memory_buffer_alloc.h" -#include "mbedtls/net_sockets.h" -#include "mbedtls/nist_kw.h" -#include "mbedtls/oid.h" -#include "mbedtls/pem.h" -#include "mbedtls/pk.h" -#include "mbedtls/pkcs12.h" -#include "mbedtls/pkcs5.h" -#if defined(MBEDTLS_HAVE_TIME) -#include "mbedtls/platform_time.h" -#endif -#include "mbedtls/platform_util.h" -#include "mbedtls/poly1305.h" -#include "mbedtls/ripemd160.h" -#include "mbedtls/rsa.h" -#include "mbedtls/sha1.h" -#include "mbedtls/sha256.h" -#include "mbedtls/sha512.h" -#include "mbedtls/ssl.h" -#include "mbedtls/ssl_cache.h" -#include "mbedtls/ssl_ciphersuites.h" -#include "mbedtls/ssl_cookie.h" -#include "mbedtls/ssl_ticket.h" -#include "mbedtls/threading.h" -#include "mbedtls/timing.h" -#include "mbedtls/version.h" -#include "mbedtls/x509.h" -#include "mbedtls/x509_crl.h" -#include "mbedtls/x509_crt.h" -#include "mbedtls/x509_csr.h" - -#include - -/* - * Helper macros to convert a macro or its expansion into a string - * WARNING: This does not work for expanding function-like macros. However, - * Mbed TLS does not currently have configuration options used in this fashion. - */ -#define MACRO_EXPANSION_TO_STR(macro) MACRO_NAME_TO_STR(macro) -#define MACRO_NAME_TO_STR(macro) \ - mbedtls_printf( "%s", strlen( #macro "" ) > 0 ? #macro "\n" : "" ) - -#define STRINGIFY(macro) #macro -#define OUTPUT_MACRO_NAME_VALUE(macro) mbedtls_printf( #macro "%s\n", \ - ( STRINGIFY(macro) "" )[0] != 0 ? "=" STRINGIFY(macro) : "" ) - -#if defined(_MSC_VER) -/* - * Visual Studio throws the warning 4003 because many Mbed TLS feature macros - * are defined empty. This means that from the preprocessor's point of view - * the macro MBEDTLS_EXPANSION_TO_STR is being invoked without arguments as - * some macros expand to nothing. We suppress that specific warning to get a - * clean build and to ensure that tests treating warnings as errors do not - * fail. - */ -#pragma warning(push) -#pragma warning(disable:4003) -#endif /* _MSC_VER */ - -int query_config( const char *config ) -{ -#if defined(MBEDTLS_CONFIG_VERSION) - if( strcmp( "MBEDTLS_CONFIG_VERSION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CONFIG_VERSION ); - return( 0 ); - } -#endif /* MBEDTLS_CONFIG_VERSION */ - -#if defined(MBEDTLS_HAVE_ASM) - if( strcmp( "MBEDTLS_HAVE_ASM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_ASM ); - return( 0 ); - } -#endif /* MBEDTLS_HAVE_ASM */ - -#if defined(MBEDTLS_NO_UDBL_DIVISION) - if( strcmp( "MBEDTLS_NO_UDBL_DIVISION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NO_UDBL_DIVISION ); - return( 0 ); - } -#endif /* MBEDTLS_NO_UDBL_DIVISION */ - -#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) - if( strcmp( "MBEDTLS_NO_64BIT_MULTIPLICATION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NO_64BIT_MULTIPLICATION ); - return( 0 ); - } -#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ - -#if defined(MBEDTLS_HAVE_SSE2) - if( strcmp( "MBEDTLS_HAVE_SSE2", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_SSE2 ); - return( 0 ); - } -#endif /* MBEDTLS_HAVE_SSE2 */ - -#if defined(MBEDTLS_HAVE_TIME) - if( strcmp( "MBEDTLS_HAVE_TIME", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_TIME ); - return( 0 ); - } -#endif /* MBEDTLS_HAVE_TIME */ - -#if defined(MBEDTLS_HAVE_TIME_DATE) - if( strcmp( "MBEDTLS_HAVE_TIME_DATE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HAVE_TIME_DATE ); - return( 0 ); - } -#endif /* MBEDTLS_HAVE_TIME_DATE */ - -#if defined(MBEDTLS_PLATFORM_MEMORY) - if( strcmp( "MBEDTLS_PLATFORM_MEMORY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_MEMORY ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_MEMORY */ - -#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) - if( strcmp( "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NO_STD_FUNCTIONS ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ - -#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) - if( strcmp( "MBEDTLS_PLATFORM_SETBUF_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETBUF_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ - -#if defined(MBEDTLS_PLATFORM_EXIT_ALT) - if( strcmp( "MBEDTLS_PLATFORM_EXIT_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_EXIT_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ - -#if defined(MBEDTLS_PLATFORM_TIME_ALT) - if( strcmp( "MBEDTLS_PLATFORM_TIME_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_TIME_ALT */ - -#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) - if( strcmp( "MBEDTLS_PLATFORM_FPRINTF_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FPRINTF_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) - if( strcmp( "MBEDTLS_PLATFORM_PRINTF_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_PRINTF_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) - if( strcmp( "MBEDTLS_PLATFORM_SNPRINTF_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SNPRINTF_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) - if( strcmp( "MBEDTLS_PLATFORM_VSNPRINTF_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_VSNPRINTF_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) - if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ - -#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) - if( strcmp( "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ - -#if defined(MBEDTLS_DEPRECATED_WARNING) - if( strcmp( "MBEDTLS_DEPRECATED_WARNING", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DEPRECATED_WARNING ); - return( 0 ); - } -#endif /* MBEDTLS_DEPRECATED_WARNING */ - -#if defined(MBEDTLS_DEPRECATED_REMOVED) - if( strcmp( "MBEDTLS_DEPRECATED_REMOVED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DEPRECATED_REMOVED ); - return( 0 ); - } -#endif /* MBEDTLS_DEPRECATED_REMOVED */ - -#if defined(MBEDTLS_TIMING_ALT) - if( strcmp( "MBEDTLS_TIMING_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_TIMING_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_TIMING_ALT */ - -#if defined(MBEDTLS_AES_ALT) - if( strcmp( "MBEDTLS_AES_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_AES_ALT */ - -#if defined(MBEDTLS_ARIA_ALT) - if( strcmp( "MBEDTLS_ARIA_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ARIA_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ARIA_ALT */ - -#if defined(MBEDTLS_CAMELLIA_ALT) - if( strcmp( "MBEDTLS_CAMELLIA_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_CAMELLIA_ALT */ - -#if defined(MBEDTLS_CCM_ALT) - if( strcmp( "MBEDTLS_CCM_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CCM_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_CCM_ALT */ - -#if defined(MBEDTLS_CHACHA20_ALT) - if( strcmp( "MBEDTLS_CHACHA20_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHA20_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_CHACHA20_ALT */ - -#if defined(MBEDTLS_CHACHAPOLY_ALT) - if( strcmp( "MBEDTLS_CHACHAPOLY_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHAPOLY_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_CHACHAPOLY_ALT */ - -#if defined(MBEDTLS_CMAC_ALT) - if( strcmp( "MBEDTLS_CMAC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CMAC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_CMAC_ALT */ - -#if defined(MBEDTLS_DES_ALT) - if( strcmp( "MBEDTLS_DES_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DES_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_DES_ALT */ - -#if defined(MBEDTLS_DHM_ALT) - if( strcmp( "MBEDTLS_DHM_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DHM_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_DHM_ALT */ - -#if defined(MBEDTLS_ECJPAKE_ALT) - if( strcmp( "MBEDTLS_ECJPAKE_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECJPAKE_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECJPAKE_ALT */ - -#if defined(MBEDTLS_GCM_ALT) - if( strcmp( "MBEDTLS_GCM_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_GCM_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_GCM_ALT */ - -#if defined(MBEDTLS_NIST_KW_ALT) - if( strcmp( "MBEDTLS_NIST_KW_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NIST_KW_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_NIST_KW_ALT */ - -#if defined(MBEDTLS_MD5_ALT) - if( strcmp( "MBEDTLS_MD5_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_MD5_ALT */ - -#if defined(MBEDTLS_POLY1305_ALT) - if( strcmp( "MBEDTLS_POLY1305_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_POLY1305_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_POLY1305_ALT */ - -#if defined(MBEDTLS_RIPEMD160_ALT) - if( strcmp( "MBEDTLS_RIPEMD160_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_RIPEMD160_ALT */ - -#if defined(MBEDTLS_RSA_ALT) - if( strcmp( "MBEDTLS_RSA_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_RSA_ALT */ - -#if defined(MBEDTLS_SHA1_ALT) - if( strcmp( "MBEDTLS_SHA1_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA1_ALT */ - -#if defined(MBEDTLS_SHA256_ALT) - if( strcmp( "MBEDTLS_SHA256_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_ALT */ - -#if defined(MBEDTLS_SHA512_ALT) - if( strcmp( "MBEDTLS_SHA512_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_ALT */ - -#if defined(MBEDTLS_ECP_ALT) - if( strcmp( "MBEDTLS_ECP_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_ALT */ - -#if defined(MBEDTLS_MD5_PROCESS_ALT) - if( strcmp( "MBEDTLS_MD5_PROCESS_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_PROCESS_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_MD5_PROCESS_ALT */ - -#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) - if( strcmp( "MBEDTLS_RIPEMD160_PROCESS_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_PROCESS_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA1_PROCESS_ALT) - if( strcmp( "MBEDTLS_SHA1_PROCESS_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_PROCESS_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA1_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA256_PROCESS_ALT) - if( strcmp( "MBEDTLS_SHA256_PROCESS_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_PROCESS_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA512_PROCESS_ALT) - if( strcmp( "MBEDTLS_SHA512_PROCESS_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_PROCESS_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_PROCESS_ALT */ - -#if defined(MBEDTLS_DES_SETKEY_ALT) - if( strcmp( "MBEDTLS_DES_SETKEY_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DES_SETKEY_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_DES_SETKEY_ALT */ - -#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) - if( strcmp( "MBEDTLS_DES_CRYPT_ECB_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DES_CRYPT_ECB_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ - -#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) - if( strcmp( "MBEDTLS_DES3_CRYPT_ECB_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DES3_CRYPT_ECB_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ - -#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) - if( strcmp( "MBEDTLS_AES_SETKEY_ENC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_SETKEY_ENC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ - -#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) - if( strcmp( "MBEDTLS_AES_SETKEY_DEC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_SETKEY_DEC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ - -#if defined(MBEDTLS_AES_ENCRYPT_ALT) - if( strcmp( "MBEDTLS_AES_ENCRYPT_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ENCRYPT_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_AES_ENCRYPT_ALT */ - -#if defined(MBEDTLS_AES_DECRYPT_ALT) - if( strcmp( "MBEDTLS_AES_DECRYPT_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_DECRYPT_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_AES_DECRYPT_ALT */ - -#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) - if( strcmp( "MBEDTLS_ECDH_GEN_PUBLIC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_GEN_PUBLIC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ - -#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) - if( strcmp( "MBEDTLS_ECDH_COMPUTE_SHARED_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_COMPUTE_SHARED_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ - -#if defined(MBEDTLS_ECDSA_VERIFY_ALT) - if( strcmp( "MBEDTLS_ECDSA_VERIFY_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_VERIFY_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ - -#if defined(MBEDTLS_ECDSA_SIGN_ALT) - if( strcmp( "MBEDTLS_ECDSA_SIGN_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_SIGN_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECDSA_SIGN_ALT */ - -#if defined(MBEDTLS_ECDSA_GENKEY_ALT) - if( strcmp( "MBEDTLS_ECDSA_GENKEY_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_GENKEY_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ - -#if defined(MBEDTLS_ECP_INTERNAL_ALT) - if( strcmp( "MBEDTLS_ECP_INTERNAL_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_INTERNAL_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_INTERNAL_ALT */ - -#if defined(MBEDTLS_ECP_NO_FALLBACK) - if( strcmp( "MBEDTLS_ECP_NO_FALLBACK", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NO_FALLBACK ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_NO_FALLBACK */ - -#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) - if( strcmp( "MBEDTLS_ECP_RANDOMIZE_JAC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RANDOMIZE_JAC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) - if( strcmp( "MBEDTLS_ECP_ADD_MIXED_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_ADD_MIXED_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ - -#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) - if( strcmp( "MBEDTLS_ECP_DOUBLE_JAC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DOUBLE_JAC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) - if( strcmp( "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) - if( strcmp( "MBEDTLS_ECP_NORMALIZE_JAC_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_JAC_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) - if( strcmp( "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ - -#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) - if( strcmp( "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RANDOMIZE_MXZ_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) - if( strcmp( "MBEDTLS_ECP_NORMALIZE_MXZ_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NORMALIZE_MXZ_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ - -#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - if( strcmp( "MBEDTLS_ENTROPY_HARDWARE_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_HARDWARE_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ - -#if defined(MBEDTLS_AES_ROM_TABLES) - if( strcmp( "MBEDTLS_AES_ROM_TABLES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_ROM_TABLES ); - return( 0 ); - } -#endif /* MBEDTLS_AES_ROM_TABLES */ - -#if defined(MBEDTLS_AES_FEWER_TABLES) - if( strcmp( "MBEDTLS_AES_FEWER_TABLES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_FEWER_TABLES ); - return( 0 ); - } -#endif /* MBEDTLS_AES_FEWER_TABLES */ - -#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) - if( strcmp( "MBEDTLS_CAMELLIA_SMALL_MEMORY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_SMALL_MEMORY ); - return( 0 ); - } -#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ - -#if defined(MBEDTLS_CHECK_RETURN_WARNING) - if( strcmp( "MBEDTLS_CHECK_RETURN_WARNING", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHECK_RETURN_WARNING ); - return( 0 ); - } -#endif /* MBEDTLS_CHECK_RETURN_WARNING */ - -#if defined(MBEDTLS_CIPHER_MODE_CBC) - if( strcmp( "MBEDTLS_CIPHER_MODE_CBC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CBC ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_MODE_CBC */ - -#if defined(MBEDTLS_CIPHER_MODE_CFB) - if( strcmp( "MBEDTLS_CIPHER_MODE_CFB", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CFB ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_MODE_CFB */ - -#if defined(MBEDTLS_CIPHER_MODE_CTR) - if( strcmp( "MBEDTLS_CIPHER_MODE_CTR", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_CTR ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_MODE_CTR */ - -#if defined(MBEDTLS_CIPHER_MODE_OFB) - if( strcmp( "MBEDTLS_CIPHER_MODE_OFB", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_OFB ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_MODE_OFB */ - -#if defined(MBEDTLS_CIPHER_MODE_XTS) - if( strcmp( "MBEDTLS_CIPHER_MODE_XTS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_MODE_XTS ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_MODE_XTS */ - -#if defined(MBEDTLS_CIPHER_NULL_CIPHER) - if( strcmp( "MBEDTLS_CIPHER_NULL_CIPHER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_NULL_CIPHER ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ - -#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) - if( strcmp( "MBEDTLS_CIPHER_PADDING_PKCS7", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_PKCS7 ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ - -#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) - if( strcmp( "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ - -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) - if( strcmp( "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ - -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) - if( strcmp( "MBEDTLS_CIPHER_PADDING_ZEROS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_PADDING_ZEROS ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ - -#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) - if( strcmp( "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_USE_128_BIT_KEY ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ - -#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP192R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP192R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP224R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP224R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP256R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP256R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP384R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP384R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP521R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP521R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP192K1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP192K1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP224K1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP224K1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_SECP256K1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_SECP256K1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_BP256R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP256R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_BP384R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP384R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_BP512R1_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_BP512R1_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_CURVE25519_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_CURVE25519_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) - if( strcmp( "MBEDTLS_ECP_DP_CURVE448_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_DP_CURVE448_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ - -#if defined(MBEDTLS_ECP_NIST_OPTIM) - if( strcmp( "MBEDTLS_ECP_NIST_OPTIM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_NIST_OPTIM ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_NIST_OPTIM */ - -#if defined(MBEDTLS_ECP_RESTARTABLE) - if( strcmp( "MBEDTLS_ECP_RESTARTABLE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_RESTARTABLE ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_RESTARTABLE */ - -#if defined(MBEDTLS_ECDSA_DETERMINISTIC) - if( strcmp( "MBEDTLS_ECDSA_DETERMINISTIC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_DETERMINISTIC ); - return( 0 ); - } -#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ - -#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_PSK_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_RSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( strcmp( "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ - -#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) - if( strcmp( "MBEDTLS_PK_PARSE_EC_EXTENDED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PK_PARSE_EC_EXTENDED ); - return( 0 ); - } -#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ - -#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) - if( strcmp( "MBEDTLS_ERROR_STRERROR_DUMMY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ERROR_STRERROR_DUMMY ); - return( 0 ); - } -#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ - -#if defined(MBEDTLS_GENPRIME) - if( strcmp( "MBEDTLS_GENPRIME", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_GENPRIME ); - return( 0 ); - } -#endif /* MBEDTLS_GENPRIME */ - -#if defined(MBEDTLS_FS_IO) - if( strcmp( "MBEDTLS_FS_IO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_FS_IO ); - return( 0 ); - } -#endif /* MBEDTLS_FS_IO */ - -#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) - if( strcmp( "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES ); - return( 0 ); - } -#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ - -#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) - if( strcmp( "MBEDTLS_NO_PLATFORM_ENTROPY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NO_PLATFORM_ENTROPY ); - return( 0 ); - } -#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ - -#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) - if( strcmp( "MBEDTLS_ENTROPY_FORCE_SHA256", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_FORCE_SHA256 ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ - -#if defined(MBEDTLS_ENTROPY_NV_SEED) - if( strcmp( "MBEDTLS_ENTROPY_NV_SEED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_NV_SEED ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_NV_SEED */ - -#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - if( strcmp( "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ - -#if defined(MBEDTLS_MEMORY_DEBUG) - if( strcmp( "MBEDTLS_MEMORY_DEBUG", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_DEBUG ); - return( 0 ); - } -#endif /* MBEDTLS_MEMORY_DEBUG */ - -#if defined(MBEDTLS_MEMORY_BACKTRACE) - if( strcmp( "MBEDTLS_MEMORY_BACKTRACE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_BACKTRACE ); - return( 0 ); - } -#endif /* MBEDTLS_MEMORY_BACKTRACE */ - -#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) - if( strcmp( "MBEDTLS_PK_RSA_ALT_SUPPORT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PK_RSA_ALT_SUPPORT ); - return( 0 ); - } -#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ - -#if defined(MBEDTLS_PKCS1_V15) - if( strcmp( "MBEDTLS_PKCS1_V15", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS1_V15 ); - return( 0 ); - } -#endif /* MBEDTLS_PKCS1_V15 */ - -#if defined(MBEDTLS_PKCS1_V21) - if( strcmp( "MBEDTLS_PKCS1_V21", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS1_V21 ); - return( 0 ); - } -#endif /* MBEDTLS_PKCS1_V21 */ - -#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) - if( strcmp( "MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ - -#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) - if( strcmp( "MBEDTLS_PSA_CRYPTO_CLIENT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CLIENT ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ - -#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) - if( strcmp( "MBEDTLS_PSA_CRYPTO_DRIVERS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_DRIVERS ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ - -#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - if( strcmp( "MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - -#if defined(MBEDTLS_PSA_CRYPTO_SPM) - if( strcmp( "MBEDTLS_PSA_CRYPTO_SPM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_SPM ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_SPM */ - -#if defined(MBEDTLS_PSA_INJECT_ENTROPY) - if( strcmp( "MBEDTLS_PSA_INJECT_ENTROPY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_INJECT_ENTROPY ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ - -#if defined(MBEDTLS_RSA_NO_CRT) - if( strcmp( "MBEDTLS_RSA_NO_CRT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_NO_CRT ); - return( 0 ); - } -#endif /* MBEDTLS_RSA_NO_CRT */ - -#if defined(MBEDTLS_SELF_TEST) - if( strcmp( "MBEDTLS_SELF_TEST", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SELF_TEST ); - return( 0 ); - } -#endif /* MBEDTLS_SELF_TEST */ - -#if defined(MBEDTLS_SHA256_SMALLER) - if( strcmp( "MBEDTLS_SHA256_SMALLER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_SMALLER ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_SMALLER */ - -#if defined(MBEDTLS_SHA512_SMALLER) - if( strcmp( "MBEDTLS_SHA512_SMALLER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_SMALLER ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_SMALLER */ - -#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) - if( strcmp( "MBEDTLS_SSL_ALL_ALERT_MESSAGES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ALL_ALERT_MESSAGES ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ - -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( strcmp( "MBEDTLS_SSL_DTLS_CONNECTION_ID", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CONNECTION_ID ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) - if( strcmp( "MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ - -#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( strcmp( "MBEDTLS_SSL_ASYNC_PRIVATE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ASYNC_PRIVATE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - -#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( strcmp( "MBEDTLS_SSL_CONTEXT_SERIALIZATION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CONTEXT_SERIALIZATION ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ - -#if defined(MBEDTLS_SSL_DEBUG_ALL) - if( strcmp( "MBEDTLS_SSL_DEBUG_ALL", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DEBUG_ALL ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DEBUG_ALL */ - -#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( strcmp( "MBEDTLS_SSL_ENCRYPT_THEN_MAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ENCRYPT_THEN_MAC ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ - -#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - if( strcmp( "MBEDTLS_SSL_EXTENDED_MASTER_SECRET", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_EXTENDED_MASTER_SECRET ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ - -#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - if( strcmp( "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_KEEP_PEER_CERTIFICATE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - -#if defined(MBEDTLS_SSL_RENEGOTIATION) - if( strcmp( "MBEDTLS_SSL_RENEGOTIATION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_RENEGOTIATION ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_RENEGOTIATION */ - -#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - if( strcmp( "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_MAX_FRAGMENT_LENGTH ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ - -#if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( strcmp( "MBEDTLS_SSL_PROTO_TLS1_2", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_TLS1_2 ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( strcmp( "MBEDTLS_SSL_PROTO_TLS1_3", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_TLS1_3 ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - -#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - if( strcmp( "MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) - if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) - if( strcmp( "MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) - if( strcmp( "MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ - -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) - if( strcmp( "MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ - -#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) - if( strcmp( "MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ - -#if defined(MBEDTLS_SSL_EARLY_DATA) - if( strcmp( "MBEDTLS_SSL_EARLY_DATA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_EARLY_DATA ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_EARLY_DATA */ - -#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) - if( strcmp( "MBEDTLS_SSL_MAX_EARLY_DATA_SIZE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ - -#if defined(MBEDTLS_SSL_PROTO_DTLS) - if( strcmp( "MBEDTLS_SSL_PROTO_DTLS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_PROTO_DTLS ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_PROTO_DTLS */ - -#if defined(MBEDTLS_SSL_ALPN) - if( strcmp( "MBEDTLS_SSL_ALPN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_ALPN ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_ALPN */ - -#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - if( strcmp( "MBEDTLS_SSL_DTLS_ANTI_REPLAY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_ANTI_REPLAY ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ - -#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - if( strcmp( "MBEDTLS_SSL_DTLS_HELLO_VERIFY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_HELLO_VERIFY ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ - -#if defined(MBEDTLS_SSL_DTLS_SRTP) - if( strcmp( "MBEDTLS_SSL_DTLS_SRTP", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_SRTP ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_SRTP */ - -#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - if( strcmp( "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ - -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( strcmp( "MBEDTLS_SSL_SESSION_TICKETS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SESSION_TICKETS ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ - -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( strcmp( "MBEDTLS_SSL_SERVER_NAME_INDICATION", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SERVER_NAME_INDICATION ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ - -#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - if( strcmp( "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ - -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) - if( strcmp( "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN ); - return( 0 ); - } -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ - -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) - if( strcmp( "MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND ); - return( 0 ); - } -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ - -#if defined(MBEDTLS_TEST_HOOKS) - if( strcmp( "MBEDTLS_TEST_HOOKS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_TEST_HOOKS ); - return( 0 ); - } -#endif /* MBEDTLS_TEST_HOOKS */ - -#if defined(MBEDTLS_THREADING_ALT) - if( strcmp( "MBEDTLS_THREADING_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_THREADING_ALT */ - -#if defined(MBEDTLS_THREADING_PTHREAD) - if( strcmp( "MBEDTLS_THREADING_PTHREAD", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_PTHREAD ); - return( 0 ); - } -#endif /* MBEDTLS_THREADING_PTHREAD */ - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - if( strcmp( "MBEDTLS_USE_PSA_CRYPTO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_USE_PSA_CRYPTO ); - return( 0 ); - } -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) - if( strcmp( "MBEDTLS_PSA_CRYPTO_CONFIG", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CONFIG ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ - -#if defined(MBEDTLS_VERSION_FEATURES) - if( strcmp( "MBEDTLS_VERSION_FEATURES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_VERSION_FEATURES ); - return( 0 ); - } -#endif /* MBEDTLS_VERSION_FEATURES */ - -#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - if( strcmp( "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK ); - return( 0 ); - } -#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ - -#if defined(MBEDTLS_X509_REMOVE_INFO) - if( strcmp( "MBEDTLS_X509_REMOVE_INFO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_REMOVE_INFO ); - return( 0 ); - } -#endif /* MBEDTLS_X509_REMOVE_INFO */ - -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - if( strcmp( "MBEDTLS_X509_RSASSA_PSS_SUPPORT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_RSASSA_PSS_SUPPORT ); - return( 0 ); - } -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ - -#if defined(MBEDTLS_AESNI_C) - if( strcmp( "MBEDTLS_AESNI_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AESNI_C ); - return( 0 ); - } -#endif /* MBEDTLS_AESNI_C */ - -#if defined(MBEDTLS_AES_C) - if( strcmp( "MBEDTLS_AES_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_AES_C ); - return( 0 ); - } -#endif /* MBEDTLS_AES_C */ - -#if defined(MBEDTLS_ASN1_PARSE_C) - if( strcmp( "MBEDTLS_ASN1_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ASN1_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_ASN1_PARSE_C */ - -#if defined(MBEDTLS_ASN1_WRITE_C) - if( strcmp( "MBEDTLS_ASN1_WRITE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ASN1_WRITE_C ); - return( 0 ); - } -#endif /* MBEDTLS_ASN1_WRITE_C */ - -#if defined(MBEDTLS_BASE64_C) - if( strcmp( "MBEDTLS_BASE64_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_BASE64_C ); - return( 0 ); - } -#endif /* MBEDTLS_BASE64_C */ - -#if defined(MBEDTLS_BIGNUM_C) - if( strcmp( "MBEDTLS_BIGNUM_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_BIGNUM_C ); - return( 0 ); - } -#endif /* MBEDTLS_BIGNUM_C */ - -#if defined(MBEDTLS_CAMELLIA_C) - if( strcmp( "MBEDTLS_CAMELLIA_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CAMELLIA_C ); - return( 0 ); - } -#endif /* MBEDTLS_CAMELLIA_C */ - -#if defined(MBEDTLS_ARIA_C) - if( strcmp( "MBEDTLS_ARIA_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ARIA_C ); - return( 0 ); - } -#endif /* MBEDTLS_ARIA_C */ - -#if defined(MBEDTLS_CCM_C) - if( strcmp( "MBEDTLS_CCM_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CCM_C ); - return( 0 ); - } -#endif /* MBEDTLS_CCM_C */ - -#if defined(MBEDTLS_CHACHA20_C) - if( strcmp( "MBEDTLS_CHACHA20_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHA20_C ); - return( 0 ); - } -#endif /* MBEDTLS_CHACHA20_C */ - -#if defined(MBEDTLS_CHACHAPOLY_C) - if( strcmp( "MBEDTLS_CHACHAPOLY_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHACHAPOLY_C ); - return( 0 ); - } -#endif /* MBEDTLS_CHACHAPOLY_C */ - -#if defined(MBEDTLS_CIPHER_C) - if( strcmp( "MBEDTLS_CIPHER_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CIPHER_C ); - return( 0 ); - } -#endif /* MBEDTLS_CIPHER_C */ - -#if defined(MBEDTLS_CMAC_C) - if( strcmp( "MBEDTLS_CMAC_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CMAC_C ); - return( 0 ); - } -#endif /* MBEDTLS_CMAC_C */ - -#if defined(MBEDTLS_CTR_DRBG_C) - if( strcmp( "MBEDTLS_CTR_DRBG_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_C ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_C */ - -#if defined(MBEDTLS_DEBUG_C) - if( strcmp( "MBEDTLS_DEBUG_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DEBUG_C ); - return( 0 ); - } -#endif /* MBEDTLS_DEBUG_C */ - -#if defined(MBEDTLS_DES_C) - if( strcmp( "MBEDTLS_DES_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DES_C ); - return( 0 ); - } -#endif /* MBEDTLS_DES_C */ - -#if defined(MBEDTLS_DHM_C) - if( strcmp( "MBEDTLS_DHM_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_DHM_C ); - return( 0 ); - } -#endif /* MBEDTLS_DHM_C */ - -#if defined(MBEDTLS_ECDH_C) - if( strcmp( "MBEDTLS_ECDH_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_C ); - return( 0 ); - } -#endif /* MBEDTLS_ECDH_C */ - -#if defined(MBEDTLS_ECDSA_C) - if( strcmp( "MBEDTLS_ECDSA_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDSA_C ); - return( 0 ); - } -#endif /* MBEDTLS_ECDSA_C */ - -#if defined(MBEDTLS_ECJPAKE_C) - if( strcmp( "MBEDTLS_ECJPAKE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECJPAKE_C ); - return( 0 ); - } -#endif /* MBEDTLS_ECJPAKE_C */ - -#if defined(MBEDTLS_ECP_C) - if( strcmp( "MBEDTLS_ECP_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_C ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_C */ - -#if defined(MBEDTLS_ENTROPY_C) - if( strcmp( "MBEDTLS_ENTROPY_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_C ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_C */ - -#if defined(MBEDTLS_ERROR_C) - if( strcmp( "MBEDTLS_ERROR_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ERROR_C ); - return( 0 ); - } -#endif /* MBEDTLS_ERROR_C */ - -#if defined(MBEDTLS_GCM_C) - if( strcmp( "MBEDTLS_GCM_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_GCM_C ); - return( 0 ); - } -#endif /* MBEDTLS_GCM_C */ - -#if defined(MBEDTLS_HKDF_C) - if( strcmp( "MBEDTLS_HKDF_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HKDF_C ); - return( 0 ); - } -#endif /* MBEDTLS_HKDF_C */ - -#if defined(MBEDTLS_HMAC_DRBG_C) - if( strcmp( "MBEDTLS_HMAC_DRBG_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_C ); - return( 0 ); - } -#endif /* MBEDTLS_HMAC_DRBG_C */ - -#if defined(MBEDTLS_LMS_C) - if( strcmp( "MBEDTLS_LMS_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_LMS_C ); - return( 0 ); - } -#endif /* MBEDTLS_LMS_C */ - -#if defined(MBEDTLS_LMS_PRIVATE) - if( strcmp( "MBEDTLS_LMS_PRIVATE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_LMS_PRIVATE ); - return( 0 ); - } -#endif /* MBEDTLS_LMS_PRIVATE */ - -#if defined(MBEDTLS_NIST_KW_C) - if( strcmp( "MBEDTLS_NIST_KW_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NIST_KW_C ); - return( 0 ); - } -#endif /* MBEDTLS_NIST_KW_C */ - -#if defined(MBEDTLS_MD_C) - if( strcmp( "MBEDTLS_MD_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MD_C ); - return( 0 ); - } -#endif /* MBEDTLS_MD_C */ - -#if defined(MBEDTLS_MD5_C) - if( strcmp( "MBEDTLS_MD5_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MD5_C ); - return( 0 ); - } -#endif /* MBEDTLS_MD5_C */ - -#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - if( strcmp( "MBEDTLS_MEMORY_BUFFER_ALLOC_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_BUFFER_ALLOC_C ); - return( 0 ); - } -#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ - -#if defined(MBEDTLS_NET_C) - if( strcmp( "MBEDTLS_NET_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_NET_C ); - return( 0 ); - } -#endif /* MBEDTLS_NET_C */ - -#if defined(MBEDTLS_OID_C) - if( strcmp( "MBEDTLS_OID_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_OID_C ); - return( 0 ); - } -#endif /* MBEDTLS_OID_C */ - -#if defined(MBEDTLS_PADLOCK_C) - if( strcmp( "MBEDTLS_PADLOCK_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PADLOCK_C ); - return( 0 ); - } -#endif /* MBEDTLS_PADLOCK_C */ - -#if defined(MBEDTLS_PEM_PARSE_C) - if( strcmp( "MBEDTLS_PEM_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PEM_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PEM_PARSE_C */ - -#if defined(MBEDTLS_PEM_WRITE_C) - if( strcmp( "MBEDTLS_PEM_WRITE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PEM_WRITE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PEM_WRITE_C */ - -#if defined(MBEDTLS_PK_C) - if( strcmp( "MBEDTLS_PK_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PK_C ); - return( 0 ); - } -#endif /* MBEDTLS_PK_C */ - -#if defined(MBEDTLS_PK_PARSE_C) - if( strcmp( "MBEDTLS_PK_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PK_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PK_PARSE_C */ - -#if defined(MBEDTLS_PK_WRITE_C) - if( strcmp( "MBEDTLS_PK_WRITE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PK_WRITE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PK_WRITE_C */ - -#if defined(MBEDTLS_PKCS5_C) - if( strcmp( "MBEDTLS_PKCS5_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS5_C ); - return( 0 ); - } -#endif /* MBEDTLS_PKCS5_C */ - -#if defined(MBEDTLS_PKCS7_C) - if( strcmp( "MBEDTLS_PKCS7_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS7_C ); - return( 0 ); - } -#endif /* MBEDTLS_PKCS7_C */ - -#if defined(MBEDTLS_PKCS12_C) - if( strcmp( "MBEDTLS_PKCS12_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PKCS12_C ); - return( 0 ); - } -#endif /* MBEDTLS_PKCS12_C */ - -#if defined(MBEDTLS_PLATFORM_C) - if( strcmp( "MBEDTLS_PLATFORM_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_C ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_C */ - -#if defined(MBEDTLS_POLY1305_C) - if( strcmp( "MBEDTLS_POLY1305_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_POLY1305_C ); - return( 0 ); - } -#endif /* MBEDTLS_POLY1305_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_C) - if( strcmp( "MBEDTLS_PSA_CRYPTO_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_C ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( strcmp( "MBEDTLS_PSA_CRYPTO_SE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_SE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( strcmp( "MBEDTLS_PSA_CRYPTO_STORAGE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_STORAGE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ - -#if defined(MBEDTLS_PSA_ITS_FILE_C) - if( strcmp( "MBEDTLS_PSA_ITS_FILE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_ITS_FILE_C ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_ITS_FILE_C */ - -#if defined(MBEDTLS_RIPEMD160_C) - if( strcmp( "MBEDTLS_RIPEMD160_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RIPEMD160_C ); - return( 0 ); - } -#endif /* MBEDTLS_RIPEMD160_C */ - -#if defined(MBEDTLS_RSA_C) - if( strcmp( "MBEDTLS_RSA_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_RSA_C ); - return( 0 ); - } -#endif /* MBEDTLS_RSA_C */ - -#if defined(MBEDTLS_SHA1_C) - if( strcmp( "MBEDTLS_SHA1_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA1_C ); - return( 0 ); - } -#endif /* MBEDTLS_SHA1_C */ - -#if defined(MBEDTLS_SHA224_C) - if( strcmp( "MBEDTLS_SHA224_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA224_C ); - return( 0 ); - } -#endif /* MBEDTLS_SHA224_C */ - -#if defined(MBEDTLS_SHA256_C) - if( strcmp( "MBEDTLS_SHA256_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_C ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_C */ - -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) - if( strcmp( "MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ - -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) - if( strcmp( "MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY ); - return( 0 ); - } -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ - -#if defined(MBEDTLS_SHA384_C) - if( strcmp( "MBEDTLS_SHA384_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA384_C ); - return( 0 ); - } -#endif /* MBEDTLS_SHA384_C */ - -#if defined(MBEDTLS_SHA512_C) - if( strcmp( "MBEDTLS_SHA512_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_C ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_C */ - -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) - if( strcmp( "MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ - -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) - if( strcmp( "MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY ); - return( 0 ); - } -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ - -#if defined(MBEDTLS_SSL_CACHE_C) - if( strcmp( "MBEDTLS_SSL_CACHE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CACHE_C */ - -#if defined(MBEDTLS_SSL_COOKIE_C) - if( strcmp( "MBEDTLS_SSL_COOKIE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_COOKIE_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_COOKIE_C */ - -#if defined(MBEDTLS_SSL_TICKET_C) - if( strcmp( "MBEDTLS_SSL_TICKET_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TICKET_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TICKET_C */ - -#if defined(MBEDTLS_SSL_CLI_C) - if( strcmp( "MBEDTLS_SSL_CLI_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CLI_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CLI_C */ - -#if defined(MBEDTLS_SSL_SRV_C) - if( strcmp( "MBEDTLS_SSL_SRV_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_SRV_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_SRV_C */ - -#if defined(MBEDTLS_SSL_TLS_C) - if( strcmp( "MBEDTLS_SSL_TLS_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_TLS_C ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_TLS_C */ - -#if defined(MBEDTLS_THREADING_C) - if( strcmp( "MBEDTLS_THREADING_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_THREADING_C ); - return( 0 ); - } -#endif /* MBEDTLS_THREADING_C */ - -#if defined(MBEDTLS_TIMING_C) - if( strcmp( "MBEDTLS_TIMING_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_TIMING_C ); - return( 0 ); - } -#endif /* MBEDTLS_TIMING_C */ - -#if defined(MBEDTLS_VERSION_C) - if( strcmp( "MBEDTLS_VERSION_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_VERSION_C ); - return( 0 ); - } -#endif /* MBEDTLS_VERSION_C */ - -#if defined(MBEDTLS_X509_USE_C) - if( strcmp( "MBEDTLS_X509_USE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_USE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_CRT_PARSE_C) - if( strcmp( "MBEDTLS_X509_CRT_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRT_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CRT_PARSE_C */ - -#if defined(MBEDTLS_X509_CRL_PARSE_C) - if( strcmp( "MBEDTLS_X509_CRL_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRL_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CRL_PARSE_C */ - -#if defined(MBEDTLS_X509_CSR_PARSE_C) - if( strcmp( "MBEDTLS_X509_CSR_PARSE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CSR_PARSE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CSR_PARSE_C */ - -#if defined(MBEDTLS_X509_CREATE_C) - if( strcmp( "MBEDTLS_X509_CREATE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CREATE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CREATE_C */ - -#if defined(MBEDTLS_X509_CRT_WRITE_C) - if( strcmp( "MBEDTLS_X509_CRT_WRITE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CRT_WRITE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CRT_WRITE_C */ - -#if defined(MBEDTLS_X509_CSR_WRITE_C) - if( strcmp( "MBEDTLS_X509_CSR_WRITE_C", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_CSR_WRITE_C ); - return( 0 ); - } -#endif /* MBEDTLS_X509_CSR_WRITE_C */ - -#if defined(MBEDTLS_CONFIG_FILE) - if( strcmp( "MBEDTLS_CONFIG_FILE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CONFIG_FILE ); - return( 0 ); - } -#endif /* MBEDTLS_CONFIG_FILE */ - -#if defined(MBEDTLS_USER_CONFIG_FILE) - if( strcmp( "MBEDTLS_USER_CONFIG_FILE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_USER_CONFIG_FILE ); - return( 0 ); - } -#endif /* MBEDTLS_USER_CONFIG_FILE */ - -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE) - if( strcmp( "MBEDTLS_PSA_CRYPTO_CONFIG_FILE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_CONFIG_FILE ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_CONFIG_FILE */ - -#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE) - if( strcmp( "MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE */ - -#if defined(MBEDTLS_MPI_WINDOW_SIZE) - if( strcmp( "MBEDTLS_MPI_WINDOW_SIZE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MPI_WINDOW_SIZE ); - return( 0 ); - } -#endif /* MBEDTLS_MPI_WINDOW_SIZE */ - -#if defined(MBEDTLS_MPI_MAX_SIZE) - if( strcmp( "MBEDTLS_MPI_MAX_SIZE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MPI_MAX_SIZE ); - return( 0 ); - } -#endif /* MBEDTLS_MPI_MAX_SIZE */ - -#if defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) - if( strcmp( "MBEDTLS_CTR_DRBG_ENTROPY_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_ENTROPY_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_ENTROPY_LEN */ - -#if defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL) - if( strcmp( "MBEDTLS_CTR_DRBG_RESEED_INTERVAL", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_RESEED_INTERVAL ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_RESEED_INTERVAL */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_INPUT) - if( strcmp( "MBEDTLS_CTR_DRBG_MAX_INPUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_INPUT ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_MAX_INPUT */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_REQUEST) - if( strcmp( "MBEDTLS_CTR_DRBG_MAX_REQUEST", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_REQUEST ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_MAX_REQUEST */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) - if( strcmp( "MBEDTLS_CTR_DRBG_MAX_SEED_INPUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ); - return( 0 ); - } -#endif /* MBEDTLS_CTR_DRBG_MAX_SEED_INPUT */ - -#if defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) - if( strcmp( "MBEDTLS_HMAC_DRBG_RESEED_INTERVAL", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_RESEED_INTERVAL ); - return( 0 ); - } -#endif /* MBEDTLS_HMAC_DRBG_RESEED_INTERVAL */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_INPUT) - if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_INPUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_INPUT ); - return( 0 ); - } -#endif /* MBEDTLS_HMAC_DRBG_MAX_INPUT */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST) - if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_REQUEST", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_REQUEST ); - return( 0 ); - } -#endif /* MBEDTLS_HMAC_DRBG_MAX_REQUEST */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) - if( strcmp( "MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT ); - return( 0 ); - } -#endif /* MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT */ - -#if defined(MBEDTLS_ECP_WINDOW_SIZE) - if( strcmp( "MBEDTLS_ECP_WINDOW_SIZE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_WINDOW_SIZE ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_WINDOW_SIZE */ - -#if defined(MBEDTLS_ECP_FIXED_POINT_OPTIM) - if( strcmp( "MBEDTLS_ECP_FIXED_POINT_OPTIM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECP_FIXED_POINT_OPTIM ); - return( 0 ); - } -#endif /* MBEDTLS_ECP_FIXED_POINT_OPTIM */ - -#if defined(MBEDTLS_ENTROPY_MAX_SOURCES) - if( strcmp( "MBEDTLS_ENTROPY_MAX_SOURCES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MAX_SOURCES ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_MAX_SOURCES */ - -#if defined(MBEDTLS_ENTROPY_MAX_GATHER) - if( strcmp( "MBEDTLS_ENTROPY_MAX_GATHER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MAX_GATHER ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_MAX_GATHER */ - -#if defined(MBEDTLS_ENTROPY_MIN_HARDWARE) - if( strcmp( "MBEDTLS_ENTROPY_MIN_HARDWARE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ENTROPY_MIN_HARDWARE ); - return( 0 ); - } -#endif /* MBEDTLS_ENTROPY_MIN_HARDWARE */ - -#if defined(MBEDTLS_MEMORY_ALIGN_MULTIPLE) - if( strcmp( "MBEDTLS_MEMORY_ALIGN_MULTIPLE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_MEMORY_ALIGN_MULTIPLE ); - return( 0 ); - } -#endif /* MBEDTLS_MEMORY_ALIGN_MULTIPLE */ - -#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) - if( strcmp( "MBEDTLS_PLATFORM_STD_MEM_HDR", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_MEM_HDR ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_MEM_HDR */ - -#if defined(MBEDTLS_PLATFORM_STD_CALLOC) - if( strcmp( "MBEDTLS_PLATFORM_STD_CALLOC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_CALLOC ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_CALLOC */ - -#if defined(MBEDTLS_PLATFORM_STD_FREE) - if( strcmp( "MBEDTLS_PLATFORM_STD_FREE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_FREE ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_FREE */ - -#if defined(MBEDTLS_PLATFORM_STD_SETBUF) - if( strcmp( "MBEDTLS_PLATFORM_STD_SETBUF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_SETBUF ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_SETBUF */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT) - if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_EXIT */ - -#if defined(MBEDTLS_PLATFORM_STD_TIME) - if( strcmp( "MBEDTLS_PLATFORM_STD_TIME", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_TIME ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_TIME */ - -#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) - if( strcmp( "MBEDTLS_PLATFORM_STD_FPRINTF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_FPRINTF ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_FPRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_PRINTF) - if( strcmp( "MBEDTLS_PLATFORM_STD_PRINTF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_PRINTF ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_PRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) - if( strcmp( "MBEDTLS_PLATFORM_STD_SNPRINTF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_SNPRINTF ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_SNPRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) - if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT_SUCCESS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT_SUCCESS ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_EXIT_SUCCESS */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) - if( strcmp( "MBEDTLS_PLATFORM_STD_EXIT_FAILURE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_EXIT_FAILURE ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_EXIT_FAILURE */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) - if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_READ", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_READ ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_READ */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) - if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_WRITE ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_WRITE */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) - if( strcmp( "MBEDTLS_PLATFORM_STD_NV_SEED_FILE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_STD_NV_SEED_FILE ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_FILE */ - -#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_CALLOC_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_CALLOC_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_CALLOC_MACRO */ - -#if defined(MBEDTLS_PLATFORM_FREE_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_FREE_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FREE_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_FREE_MACRO */ - -#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_EXIT_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_EXIT_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_EXIT_MACRO */ - -#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_SETBUF_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SETBUF_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_SETBUF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_TIME_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_TIME_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_TIME_MACRO */ - -#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_TIME_TYPE_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_TIME_TYPE_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_TIME_TYPE_MACRO */ - -#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_FPRINTF_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_FPRINTF_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_FPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_PRINTF_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_PRINTF_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_PRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_SNPRINTF_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_SNPRINTF_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_SNPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_VSNPRINTF_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_VSNPRINTF_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_VSNPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_READ_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_NV_SEED_READ_MACRO */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) - if( strcmp( "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO */ - -#if defined(MBEDTLS_CHECK_RETURN) - if( strcmp( "MBEDTLS_CHECK_RETURN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_CHECK_RETURN ); - return( 0 ); - } -#endif /* MBEDTLS_CHECK_RETURN */ - -#if defined(MBEDTLS_IGNORE_RETURN) - if( strcmp( "MBEDTLS_IGNORE_RETURN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_IGNORE_RETURN ); - return( 0 ); - } -#endif /* MBEDTLS_IGNORE_RETURN */ - -#if defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) - if( strcmp( "MBEDTLS_PSA_HMAC_DRBG_MD_TYPE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_HMAC_DRBG_MD_TYPE ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_HMAC_DRBG_MD_TYPE */ - -#if defined(MBEDTLS_PSA_KEY_SLOT_COUNT) - if( strcmp( "MBEDTLS_PSA_KEY_SLOT_COUNT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSA_KEY_SLOT_COUNT ); - return( 0 ); - } -#endif /* MBEDTLS_PSA_KEY_SLOT_COUNT */ - -#if defined(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT) - if( strcmp( "MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT */ - -#if defined(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES) - if( strcmp( "MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES */ - -#if defined(MBEDTLS_SSL_IN_CONTENT_LEN) - if( strcmp( "MBEDTLS_SSL_IN_CONTENT_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_IN_CONTENT_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_IN_CONTENT_LEN */ - -#if defined(MBEDTLS_SSL_CID_IN_LEN_MAX) - if( strcmp( "MBEDTLS_SSL_CID_IN_LEN_MAX", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_IN_LEN_MAX ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CID_IN_LEN_MAX */ - -#if defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) - if( strcmp( "MBEDTLS_SSL_CID_OUT_LEN_MAX", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_OUT_LEN_MAX ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CID_OUT_LEN_MAX */ - -#if defined(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY) - if( strcmp( "MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY */ - -#if defined(MBEDTLS_SSL_OUT_CONTENT_LEN) - if( strcmp( "MBEDTLS_SSL_OUT_CONTENT_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_OUT_CONTENT_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_OUT_CONTENT_LEN */ - -#if defined(MBEDTLS_SSL_DTLS_MAX_BUFFERING) - if( strcmp( "MBEDTLS_SSL_DTLS_MAX_BUFFERING", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_DTLS_MAX_BUFFERING ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_DTLS_MAX_BUFFERING */ - -#if defined(MBEDTLS_PSK_MAX_LEN) - if( strcmp( "MBEDTLS_PSK_MAX_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PSK_MAX_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_PSK_MAX_LEN */ - -#if defined(MBEDTLS_SSL_COOKIE_TIMEOUT) - if( strcmp( "MBEDTLS_SSL_COOKIE_TIMEOUT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_SSL_COOKIE_TIMEOUT ); - return( 0 ); - } -#endif /* MBEDTLS_SSL_COOKIE_TIMEOUT */ - -#if defined(MBEDTLS_X509_MAX_INTERMEDIATE_CA) - if( strcmp( "MBEDTLS_X509_MAX_INTERMEDIATE_CA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_MAX_INTERMEDIATE_CA ); - return( 0 ); - } -#endif /* MBEDTLS_X509_MAX_INTERMEDIATE_CA */ - -#if defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) - if( strcmp( "MBEDTLS_X509_MAX_FILE_PATH_LEN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_X509_MAX_FILE_PATH_LEN ); - return( 0 ); - } -#endif /* MBEDTLS_X509_MAX_FILE_PATH_LEN */ - -#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT) - if( strcmp( "MBEDTLS_PLATFORM_ZEROIZE_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_ZEROIZE_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ - -#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT) - if( strcmp( "MBEDTLS_PLATFORM_GMTIME_R_ALT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_PLATFORM_GMTIME_R_ALT ); - return( 0 ); - } -#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */ - -#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) - if( strcmp( "MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED ); - return( 0 ); - } -#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */ - -#if defined(PSA_WANT_ALG_CBC_MAC) - if( strcmp( "PSA_WANT_ALG_CBC_MAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_MAC ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CBC_MAC */ - -#if defined(PSA_WANT_ALG_CBC_NO_PADDING) - if( strcmp( "PSA_WANT_ALG_CBC_NO_PADDING", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_NO_PADDING ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CBC_NO_PADDING */ - -#if defined(PSA_WANT_ALG_CBC_PKCS7) - if( strcmp( "PSA_WANT_ALG_CBC_PKCS7", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CBC_PKCS7 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CBC_PKCS7 */ - -#if defined(PSA_WANT_ALG_CCM) - if( strcmp( "PSA_WANT_ALG_CCM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CCM ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CCM */ - -#if defined(PSA_WANT_ALG_CMAC) - if( strcmp( "PSA_WANT_ALG_CMAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CMAC ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CMAC */ - -#if defined(PSA_WANT_ALG_CFB) - if( strcmp( "PSA_WANT_ALG_CFB", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CFB ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CFB */ - -#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) - if( strcmp( "PSA_WANT_ALG_CHACHA20_POLY1305", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CHACHA20_POLY1305 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ - -#if defined(PSA_WANT_ALG_CTR) - if( strcmp( "PSA_WANT_ALG_CTR", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_CTR ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_CTR */ - -#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) - if( strcmp( "PSA_WANT_ALG_DETERMINISTIC_ECDSA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_DETERMINISTIC_ECDSA ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_DETERMINISTIC_ECDSA */ - -#if defined(PSA_WANT_ALG_ECB_NO_PADDING) - if( strcmp( "PSA_WANT_ALG_ECB_NO_PADDING", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECB_NO_PADDING ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_ECB_NO_PADDING */ - -#if defined(PSA_WANT_ALG_ECDH) - if( strcmp( "PSA_WANT_ALG_ECDH", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECDH ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_ECDH */ - -#if defined(PSA_WANT_ALG_ECDSA) - if( strcmp( "PSA_WANT_ALG_ECDSA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_ECDSA ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_ECDSA */ - -#if defined(PSA_WANT_ALG_JPAKE) - if( strcmp( "PSA_WANT_ALG_JPAKE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_JPAKE ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_JPAKE */ - -#if defined(PSA_WANT_ALG_GCM) - if( strcmp( "PSA_WANT_ALG_GCM", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_GCM ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_GCM */ - -#if defined(PSA_WANT_ALG_HKDF) - if( strcmp( "PSA_WANT_ALG_HKDF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_HKDF */ - -#if defined(PSA_WANT_ALG_HKDF_EXTRACT) - if( strcmp( "PSA_WANT_ALG_HKDF_EXTRACT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF_EXTRACT ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_HKDF_EXTRACT */ - -#if defined(PSA_WANT_ALG_HKDF_EXPAND) - if( strcmp( "PSA_WANT_ALG_HKDF_EXPAND", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HKDF_EXPAND ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_HKDF_EXPAND */ - -#if defined(PSA_WANT_ALG_HMAC) - if( strcmp( "PSA_WANT_ALG_HMAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_HMAC ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_HMAC */ - -#if defined(PSA_WANT_ALG_MD5) - if( strcmp( "PSA_WANT_ALG_MD5", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_MD5 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_MD5 */ - -#if defined(PSA_WANT_ALG_OFB) - if( strcmp( "PSA_WANT_ALG_OFB", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_OFB ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_OFB */ - -#if defined(PSA_WANT_ALG_PBKDF2_HMAC) - if( strcmp( "PSA_WANT_ALG_PBKDF2_HMAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_PBKDF2_HMAC ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_PBKDF2_HMAC */ - -#if defined(PSA_WANT_ALG_RIPEMD160) - if( strcmp( "PSA_WANT_ALG_RIPEMD160", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RIPEMD160 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_RIPEMD160 */ - -#if defined(PSA_WANT_ALG_RSA_OAEP) - if( strcmp( "PSA_WANT_ALG_RSA_OAEP", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_OAEP ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_RSA_OAEP */ - -#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) - if( strcmp( "PSA_WANT_ALG_RSA_PKCS1V15_CRYPT", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PKCS1V15_CRYPT ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_RSA_PKCS1V15_CRYPT */ - -#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) - if( strcmp( "PSA_WANT_ALG_RSA_PKCS1V15_SIGN", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PKCS1V15_SIGN ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */ - -#if defined(PSA_WANT_ALG_RSA_PSS) - if( strcmp( "PSA_WANT_ALG_RSA_PSS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_RSA_PSS ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_RSA_PSS */ - -#if defined(PSA_WANT_ALG_SHA_1) - if( strcmp( "PSA_WANT_ALG_SHA_1", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_1 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_SHA_1 */ - -#if defined(PSA_WANT_ALG_SHA_224) - if( strcmp( "PSA_WANT_ALG_SHA_224", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_224 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_SHA_224 */ - -#if defined(PSA_WANT_ALG_SHA_256) - if( strcmp( "PSA_WANT_ALG_SHA_256", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_256 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_SHA_256 */ - -#if defined(PSA_WANT_ALG_SHA_384) - if( strcmp( "PSA_WANT_ALG_SHA_384", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_384 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_SHA_384 */ - -#if defined(PSA_WANT_ALG_SHA_512) - if( strcmp( "PSA_WANT_ALG_SHA_512", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_SHA_512 ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_SHA_512 */ - -#if defined(PSA_WANT_ALG_STREAM_CIPHER) - if( strcmp( "PSA_WANT_ALG_STREAM_CIPHER", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_STREAM_CIPHER ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_STREAM_CIPHER */ - -#if defined(PSA_WANT_ALG_TLS12_PRF) - if( strcmp( "PSA_WANT_ALG_TLS12_PRF", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_PRF ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_TLS12_PRF */ - -#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) - if( strcmp( "PSA_WANT_ALG_TLS12_PSK_TO_MS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_PSK_TO_MS ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_TLS12_PSK_TO_MS */ - -#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) - if( strcmp( "PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS */ - -#if defined(PSA_WANT_ALG_XTS) - if( strcmp( "PSA_WANT_ALG_XTS", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ALG_XTS ); - return( 0 ); - } -#endif /* PSA_WANT_ALG_XTS */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) - if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_256", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_256 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) - if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_384", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_384 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) - if( strcmp( "PSA_WANT_ECC_BRAINPOOL_P_R1_512", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_BRAINPOOL_P_R1_512 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */ - -#if defined(PSA_WANT_ECC_MONTGOMERY_255) - if( strcmp( "PSA_WANT_ECC_MONTGOMERY_255", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_MONTGOMERY_255 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_MONTGOMERY_255 */ - -#if defined(PSA_WANT_ECC_MONTGOMERY_448) - if( strcmp( "PSA_WANT_ECC_MONTGOMERY_448", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_MONTGOMERY_448 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_MONTGOMERY_448 */ - -#if defined(PSA_WANT_ECC_SECP_K1_192) - if( strcmp( "PSA_WANT_ECC_SECP_K1_192", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_192 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_K1_192 */ - -#if defined(PSA_WANT_ECC_SECP_K1_224) - if( strcmp( "PSA_WANT_ECC_SECP_K1_224", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_224 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_K1_224 */ - -#if defined(PSA_WANT_ECC_SECP_K1_256) - if( strcmp( "PSA_WANT_ECC_SECP_K1_256", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_K1_256 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_K1_256 */ - -#if defined(PSA_WANT_ECC_SECP_R1_192) - if( strcmp( "PSA_WANT_ECC_SECP_R1_192", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_192 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_R1_192 */ - -#if defined(PSA_WANT_ECC_SECP_R1_224) - if( strcmp( "PSA_WANT_ECC_SECP_R1_224", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_224 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_R1_224 */ - -#if defined(PSA_WANT_ECC_SECP_R1_256) - if( strcmp( "PSA_WANT_ECC_SECP_R1_256", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_256 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_R1_256 */ - -#if defined(PSA_WANT_ECC_SECP_R1_384) - if( strcmp( "PSA_WANT_ECC_SECP_R1_384", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_384 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_R1_384 */ - -#if defined(PSA_WANT_ECC_SECP_R1_521) - if( strcmp( "PSA_WANT_ECC_SECP_R1_521", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_ECC_SECP_R1_521 ); - return( 0 ); - } -#endif /* PSA_WANT_ECC_SECP_R1_521 */ - -#if defined(PSA_WANT_KEY_TYPE_DERIVE) - if( strcmp( "PSA_WANT_KEY_TYPE_DERIVE", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_DERIVE ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_DERIVE */ - -#if defined(PSA_WANT_KEY_TYPE_HMAC) - if( strcmp( "PSA_WANT_KEY_TYPE_HMAC", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_HMAC ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_HMAC */ - -#if defined(PSA_WANT_KEY_TYPE_AES) - if( strcmp( "PSA_WANT_KEY_TYPE_AES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_AES ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_AES */ - -#if defined(PSA_WANT_KEY_TYPE_ARIA) - if( strcmp( "PSA_WANT_KEY_TYPE_ARIA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ARIA ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_ARIA */ - -#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) - if( strcmp( "PSA_WANT_KEY_TYPE_CAMELLIA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_CAMELLIA ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */ - -#if defined(PSA_WANT_KEY_TYPE_CHACHA20) - if( strcmp( "PSA_WANT_KEY_TYPE_CHACHA20", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_CHACHA20 ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */ - -#if defined(PSA_WANT_KEY_TYPE_DES) - if( strcmp( "PSA_WANT_KEY_TYPE_DES", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_DES ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_DES */ - -#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) - if( strcmp( "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ECC_KEY_PAIR ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR */ - -#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) - if( strcmp( "PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */ - -#if defined(PSA_WANT_KEY_TYPE_RAW_DATA) - if( strcmp( "PSA_WANT_KEY_TYPE_RAW_DATA", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RAW_DATA ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_RAW_DATA */ - -#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) - if( strcmp( "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RSA_KEY_PAIR ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ - -#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) - if( strcmp( "PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY", config ) == 0 ) - { - MACRO_EXPANSION_TO_STR( PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY ); - return( 0 ); - } -#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */ - - /* If the symbol is not found, return an error */ - return( 1 ); -} - -void list_config( void ) -{ - #if defined(MBEDTLS_CONFIG_VERSION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CONFIG_VERSION); -#endif /* MBEDTLS_CONFIG_VERSION */ - -#if defined(MBEDTLS_HAVE_ASM) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_ASM); -#endif /* MBEDTLS_HAVE_ASM */ - -#if defined(MBEDTLS_NO_UDBL_DIVISION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_UDBL_DIVISION); -#endif /* MBEDTLS_NO_UDBL_DIVISION */ - -#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_64BIT_MULTIPLICATION); -#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */ - -#if defined(MBEDTLS_HAVE_SSE2) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_SSE2); -#endif /* MBEDTLS_HAVE_SSE2 */ - -#if defined(MBEDTLS_HAVE_TIME) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_TIME); -#endif /* MBEDTLS_HAVE_TIME */ - -#if defined(MBEDTLS_HAVE_TIME_DATE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HAVE_TIME_DATE); -#endif /* MBEDTLS_HAVE_TIME_DATE */ - -#if defined(MBEDTLS_PLATFORM_MEMORY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_MEMORY); -#endif /* MBEDTLS_PLATFORM_MEMORY */ - -#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS); -#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ - -#if defined(MBEDTLS_PLATFORM_SETBUF_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETBUF_ALT); -#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ - -#if defined(MBEDTLS_PLATFORM_EXIT_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_EXIT_ALT); -#endif /* MBEDTLS_PLATFORM_EXIT_ALT */ - -#if defined(MBEDTLS_PLATFORM_TIME_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_ALT); -#endif /* MBEDTLS_PLATFORM_TIME_ALT */ - -#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FPRINTF_ALT); -#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_PRINTF_ALT); -#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SNPRINTF_ALT); -#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_VSNPRINTF_ALT); -#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_ALT); -#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ - -#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT); -#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ - -#if defined(MBEDTLS_DEPRECATED_WARNING) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEPRECATED_WARNING); -#endif /* MBEDTLS_DEPRECATED_WARNING */ - -#if defined(MBEDTLS_DEPRECATED_REMOVED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEPRECATED_REMOVED); -#endif /* MBEDTLS_DEPRECATED_REMOVED */ - -#if defined(MBEDTLS_TIMING_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TIMING_ALT); -#endif /* MBEDTLS_TIMING_ALT */ - -#if defined(MBEDTLS_AES_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ALT); -#endif /* MBEDTLS_AES_ALT */ - -#if defined(MBEDTLS_ARIA_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ARIA_ALT); -#endif /* MBEDTLS_ARIA_ALT */ - -#if defined(MBEDTLS_CAMELLIA_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_ALT); -#endif /* MBEDTLS_CAMELLIA_ALT */ - -#if defined(MBEDTLS_CCM_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CCM_ALT); -#endif /* MBEDTLS_CCM_ALT */ - -#if defined(MBEDTLS_CHACHA20_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHA20_ALT); -#endif /* MBEDTLS_CHACHA20_ALT */ - -#if defined(MBEDTLS_CHACHAPOLY_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHAPOLY_ALT); -#endif /* MBEDTLS_CHACHAPOLY_ALT */ - -#if defined(MBEDTLS_CMAC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CMAC_ALT); -#endif /* MBEDTLS_CMAC_ALT */ - -#if defined(MBEDTLS_DES_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_ALT); -#endif /* MBEDTLS_DES_ALT */ - -#if defined(MBEDTLS_DHM_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DHM_ALT); -#endif /* MBEDTLS_DHM_ALT */ - -#if defined(MBEDTLS_ECJPAKE_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECJPAKE_ALT); -#endif /* MBEDTLS_ECJPAKE_ALT */ - -#if defined(MBEDTLS_GCM_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GCM_ALT); -#endif /* MBEDTLS_GCM_ALT */ - -#if defined(MBEDTLS_NIST_KW_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NIST_KW_ALT); -#endif /* MBEDTLS_NIST_KW_ALT */ - -#if defined(MBEDTLS_MD5_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_ALT); -#endif /* MBEDTLS_MD5_ALT */ - -#if defined(MBEDTLS_POLY1305_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_POLY1305_ALT); -#endif /* MBEDTLS_POLY1305_ALT */ - -#if defined(MBEDTLS_RIPEMD160_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_ALT); -#endif /* MBEDTLS_RIPEMD160_ALT */ - -#if defined(MBEDTLS_RSA_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_ALT); -#endif /* MBEDTLS_RSA_ALT */ - -#if defined(MBEDTLS_SHA1_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_ALT); -#endif /* MBEDTLS_SHA1_ALT */ - -#if defined(MBEDTLS_SHA256_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_ALT); -#endif /* MBEDTLS_SHA256_ALT */ - -#if defined(MBEDTLS_SHA512_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_ALT); -#endif /* MBEDTLS_SHA512_ALT */ - -#if defined(MBEDTLS_ECP_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_ALT); -#endif /* MBEDTLS_ECP_ALT */ - -#if defined(MBEDTLS_MD5_PROCESS_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_PROCESS_ALT); -#endif /* MBEDTLS_MD5_PROCESS_ALT */ - -#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_PROCESS_ALT); -#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA1_PROCESS_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_PROCESS_ALT); -#endif /* MBEDTLS_SHA1_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA256_PROCESS_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_PROCESS_ALT); -#endif /* MBEDTLS_SHA256_PROCESS_ALT */ - -#if defined(MBEDTLS_SHA512_PROCESS_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_PROCESS_ALT); -#endif /* MBEDTLS_SHA512_PROCESS_ALT */ - -#if defined(MBEDTLS_DES_SETKEY_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_SETKEY_ALT); -#endif /* MBEDTLS_DES_SETKEY_ALT */ - -#if defined(MBEDTLS_DES_CRYPT_ECB_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_CRYPT_ECB_ALT); -#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ - -#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES3_CRYPT_ECB_ALT); -#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ - -#if defined(MBEDTLS_AES_SETKEY_ENC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_SETKEY_ENC_ALT); -#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ - -#if defined(MBEDTLS_AES_SETKEY_DEC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_SETKEY_DEC_ALT); -#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ - -#if defined(MBEDTLS_AES_ENCRYPT_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ENCRYPT_ALT); -#endif /* MBEDTLS_AES_ENCRYPT_ALT */ - -#if defined(MBEDTLS_AES_DECRYPT_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_DECRYPT_ALT); -#endif /* MBEDTLS_AES_DECRYPT_ALT */ - -#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_GEN_PUBLIC_ALT); -#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ - -#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_COMPUTE_SHARED_ALT); -#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ - -#if defined(MBEDTLS_ECDSA_VERIFY_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_VERIFY_ALT); -#endif /* MBEDTLS_ECDSA_VERIFY_ALT */ - -#if defined(MBEDTLS_ECDSA_SIGN_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_SIGN_ALT); -#endif /* MBEDTLS_ECDSA_SIGN_ALT */ - -#if defined(MBEDTLS_ECDSA_GENKEY_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_GENKEY_ALT); -#endif /* MBEDTLS_ECDSA_GENKEY_ALT */ - -#if defined(MBEDTLS_ECP_INTERNAL_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_INTERNAL_ALT); -#endif /* MBEDTLS_ECP_INTERNAL_ALT */ - -#if defined(MBEDTLS_ECP_NO_FALLBACK) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NO_FALLBACK); -#endif /* MBEDTLS_ECP_NO_FALLBACK */ - -#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RANDOMIZE_JAC_ALT); -#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_ADD_MIXED_ALT); -#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ - -#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DOUBLE_JAC_ALT); -#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT); -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_JAC_ALT); -#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ - -#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT); -#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ - -#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT); -#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ - -#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NORMALIZE_MXZ_ALT); -#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ - -#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_HARDWARE_ALT); -#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ - -#if defined(MBEDTLS_AES_ROM_TABLES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_ROM_TABLES); -#endif /* MBEDTLS_AES_ROM_TABLES */ - -#if defined(MBEDTLS_AES_FEWER_TABLES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_FEWER_TABLES); -#endif /* MBEDTLS_AES_FEWER_TABLES */ - -#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_SMALL_MEMORY); -#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ - -#if defined(MBEDTLS_CHECK_RETURN_WARNING) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHECK_RETURN_WARNING); -#endif /* MBEDTLS_CHECK_RETURN_WARNING */ - -#if defined(MBEDTLS_CIPHER_MODE_CBC) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CBC); -#endif /* MBEDTLS_CIPHER_MODE_CBC */ - -#if defined(MBEDTLS_CIPHER_MODE_CFB) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CFB); -#endif /* MBEDTLS_CIPHER_MODE_CFB */ - -#if defined(MBEDTLS_CIPHER_MODE_CTR) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_CTR); -#endif /* MBEDTLS_CIPHER_MODE_CTR */ - -#if defined(MBEDTLS_CIPHER_MODE_OFB) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_OFB); -#endif /* MBEDTLS_CIPHER_MODE_OFB */ - -#if defined(MBEDTLS_CIPHER_MODE_XTS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_MODE_XTS); -#endif /* MBEDTLS_CIPHER_MODE_XTS */ - -#if defined(MBEDTLS_CIPHER_NULL_CIPHER) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_NULL_CIPHER); -#endif /* MBEDTLS_CIPHER_NULL_CIPHER */ - -#if defined(MBEDTLS_CIPHER_PADDING_PKCS7) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_PKCS7); -#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ - -#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS); -#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ - -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN); -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ - -#if defined(MBEDTLS_CIPHER_PADDING_ZEROS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_PADDING_ZEROS); -#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ - -#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY); -#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ - -#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP192R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP224R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP256R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP384R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP521R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP192K1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP224K1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_SECP256K1_ENABLED); -#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP256R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP384R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_BP512R1_ENABLED); -#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_CURVE25519_ENABLED); -#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ - -#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_DP_CURVE448_ENABLED); -#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ - -#if defined(MBEDTLS_ECP_NIST_OPTIM) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_NIST_OPTIM); -#endif /* MBEDTLS_ECP_NIST_OPTIM */ - -#if defined(MBEDTLS_ECP_RESTARTABLE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_RESTARTABLE); -#endif /* MBEDTLS_ECP_RESTARTABLE */ - -#if defined(MBEDTLS_ECDSA_DETERMINISTIC) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_DETERMINISTIC); -#endif /* MBEDTLS_ECDSA_DETERMINISTIC */ - -#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ - -#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED); -#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ - -#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_PARSE_EC_EXTENDED); -#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ - -#if defined(MBEDTLS_ERROR_STRERROR_DUMMY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ERROR_STRERROR_DUMMY); -#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ - -#if defined(MBEDTLS_GENPRIME) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GENPRIME); -#endif /* MBEDTLS_GENPRIME */ - -#if defined(MBEDTLS_FS_IO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_FS_IO); -#endif /* MBEDTLS_FS_IO */ - -#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES); -#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ - -#if defined(MBEDTLS_NO_PLATFORM_ENTROPY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NO_PLATFORM_ENTROPY); -#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ - -#if defined(MBEDTLS_ENTROPY_FORCE_SHA256) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_FORCE_SHA256); -#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ - -#if defined(MBEDTLS_ENTROPY_NV_SEED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_NV_SEED); -#endif /* MBEDTLS_ENTROPY_NV_SEED */ - -#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER); -#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ - -#if defined(MBEDTLS_MEMORY_DEBUG) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_DEBUG); -#endif /* MBEDTLS_MEMORY_DEBUG */ - -#if defined(MBEDTLS_MEMORY_BACKTRACE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_BACKTRACE); -#endif /* MBEDTLS_MEMORY_BACKTRACE */ - -#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_RSA_ALT_SUPPORT); -#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ - -#if defined(MBEDTLS_PKCS1_V15) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS1_V15); -#endif /* MBEDTLS_PKCS1_V15 */ - -#if defined(MBEDTLS_PKCS1_V21) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS1_V21); -#endif /* MBEDTLS_PKCS1_V21 */ - -#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS); -#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ - -#if defined(MBEDTLS_PSA_CRYPTO_CLIENT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CLIENT); -#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ - -#if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_DRIVERS); -#endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ - -#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG); -#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - -#if defined(MBEDTLS_PSA_CRYPTO_SPM) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_SPM); -#endif /* MBEDTLS_PSA_CRYPTO_SPM */ - -#if defined(MBEDTLS_PSA_INJECT_ENTROPY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_INJECT_ENTROPY); -#endif /* MBEDTLS_PSA_INJECT_ENTROPY */ - -#if defined(MBEDTLS_RSA_NO_CRT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_NO_CRT); -#endif /* MBEDTLS_RSA_NO_CRT */ - -#if defined(MBEDTLS_SELF_TEST) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SELF_TEST); -#endif /* MBEDTLS_SELF_TEST */ - -#if defined(MBEDTLS_SHA256_SMALLER) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_SMALLER); -#endif /* MBEDTLS_SHA256_SMALLER */ - -#if defined(MBEDTLS_SHA512_SMALLER) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_SMALLER); -#endif /* MBEDTLS_SHA512_SMALLER */ - -#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ALL_ALERT_MESSAGES); -#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ - -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CONNECTION_ID); -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT); -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */ - -#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ASYNC_PRIVATE); -#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - -#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CONTEXT_SERIALIZATION); -#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ - -#if defined(MBEDTLS_SSL_DEBUG_ALL) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DEBUG_ALL); -#endif /* MBEDTLS_SSL_DEBUG_ALL */ - -#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ENCRYPT_THEN_MAC); -#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ - -#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_EXTENDED_MASTER_SECRET); -#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ - -#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE); -#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - -#if defined(MBEDTLS_SSL_RENEGOTIATION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_RENEGOTIATION); -#endif /* MBEDTLS_SSL_RENEGOTIATION */ - -#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH); -#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ - -#if defined(MBEDTLS_SSL_PROTO_TLS1_2) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_TLS1_2); -#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_TLS1_3); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - -#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE); -#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED); -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED); -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED); -#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ - -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE); -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE */ - -#if defined(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH); -#endif /* MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH */ - -#if defined(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS); -#endif /* MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS */ - -#if defined(MBEDTLS_SSL_EARLY_DATA) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_EARLY_DATA); -#endif /* MBEDTLS_SSL_EARLY_DATA */ - -#if defined(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_MAX_EARLY_DATA_SIZE); -#endif /* MBEDTLS_SSL_MAX_EARLY_DATA_SIZE */ - -#if defined(MBEDTLS_SSL_PROTO_DTLS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_PROTO_DTLS); -#endif /* MBEDTLS_SSL_PROTO_DTLS */ - -#if defined(MBEDTLS_SSL_ALPN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_ALPN); -#endif /* MBEDTLS_SSL_ALPN */ - -#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_ANTI_REPLAY); -#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ - -#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_HELLO_VERIFY); -#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ - -#if defined(MBEDTLS_SSL_DTLS_SRTP) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_SRTP); -#endif /* MBEDTLS_SSL_DTLS_SRTP */ - -#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE); -#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ - -#if defined(MBEDTLS_SSL_SESSION_TICKETS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SESSION_TICKETS); -#endif /* MBEDTLS_SSL_SESSION_TICKETS */ - -#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SERVER_NAME_INDICATION); -#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ - -#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH); -#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ - -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN); -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ - -#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND); -#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ - -#if defined(MBEDTLS_TEST_HOOKS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TEST_HOOKS); -#endif /* MBEDTLS_TEST_HOOKS */ - -#if defined(MBEDTLS_THREADING_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_ALT); -#endif /* MBEDTLS_THREADING_ALT */ - -#if defined(MBEDTLS_THREADING_PTHREAD) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_PTHREAD); -#endif /* MBEDTLS_THREADING_PTHREAD */ - -#if defined(MBEDTLS_USE_PSA_CRYPTO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_USE_PSA_CRYPTO); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CONFIG); -#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */ - -#if defined(MBEDTLS_VERSION_FEATURES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_VERSION_FEATURES); -#endif /* MBEDTLS_VERSION_FEATURES */ - -#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK); -#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ - -#if defined(MBEDTLS_X509_REMOVE_INFO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_REMOVE_INFO); -#endif /* MBEDTLS_X509_REMOVE_INFO */ - -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_RSASSA_PSS_SUPPORT); -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ - -#if defined(MBEDTLS_AESNI_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AESNI_C); -#endif /* MBEDTLS_AESNI_C */ - -#if defined(MBEDTLS_AES_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_AES_C); -#endif /* MBEDTLS_AES_C */ - -#if defined(MBEDTLS_ASN1_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ASN1_PARSE_C); -#endif /* MBEDTLS_ASN1_PARSE_C */ - -#if defined(MBEDTLS_ASN1_WRITE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ASN1_WRITE_C); -#endif /* MBEDTLS_ASN1_WRITE_C */ - -#if defined(MBEDTLS_BASE64_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_BASE64_C); -#endif /* MBEDTLS_BASE64_C */ - -#if defined(MBEDTLS_BIGNUM_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_BIGNUM_C); -#endif /* MBEDTLS_BIGNUM_C */ - -#if defined(MBEDTLS_CAMELLIA_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CAMELLIA_C); -#endif /* MBEDTLS_CAMELLIA_C */ - -#if defined(MBEDTLS_ARIA_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ARIA_C); -#endif /* MBEDTLS_ARIA_C */ - -#if defined(MBEDTLS_CCM_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CCM_C); -#endif /* MBEDTLS_CCM_C */ - -#if defined(MBEDTLS_CHACHA20_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHA20_C); -#endif /* MBEDTLS_CHACHA20_C */ - -#if defined(MBEDTLS_CHACHAPOLY_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHACHAPOLY_C); -#endif /* MBEDTLS_CHACHAPOLY_C */ - -#if defined(MBEDTLS_CIPHER_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CIPHER_C); -#endif /* MBEDTLS_CIPHER_C */ - -#if defined(MBEDTLS_CMAC_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CMAC_C); -#endif /* MBEDTLS_CMAC_C */ - -#if defined(MBEDTLS_CTR_DRBG_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_C); -#endif /* MBEDTLS_CTR_DRBG_C */ - -#if defined(MBEDTLS_DEBUG_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DEBUG_C); -#endif /* MBEDTLS_DEBUG_C */ - -#if defined(MBEDTLS_DES_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DES_C); -#endif /* MBEDTLS_DES_C */ - -#if defined(MBEDTLS_DHM_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_DHM_C); -#endif /* MBEDTLS_DHM_C */ - -#if defined(MBEDTLS_ECDH_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_C); -#endif /* MBEDTLS_ECDH_C */ - -#if defined(MBEDTLS_ECDSA_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDSA_C); -#endif /* MBEDTLS_ECDSA_C */ - -#if defined(MBEDTLS_ECJPAKE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECJPAKE_C); -#endif /* MBEDTLS_ECJPAKE_C */ - -#if defined(MBEDTLS_ECP_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_C); -#endif /* MBEDTLS_ECP_C */ - -#if defined(MBEDTLS_ENTROPY_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_C); -#endif /* MBEDTLS_ENTROPY_C */ - -#if defined(MBEDTLS_ERROR_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ERROR_C); -#endif /* MBEDTLS_ERROR_C */ - -#if defined(MBEDTLS_GCM_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_GCM_C); -#endif /* MBEDTLS_GCM_C */ - -#if defined(MBEDTLS_HKDF_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HKDF_C); -#endif /* MBEDTLS_HKDF_C */ - -#if defined(MBEDTLS_HMAC_DRBG_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_C); -#endif /* MBEDTLS_HMAC_DRBG_C */ - -#if defined(MBEDTLS_LMS_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_LMS_C); -#endif /* MBEDTLS_LMS_C */ - -#if defined(MBEDTLS_LMS_PRIVATE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_LMS_PRIVATE); -#endif /* MBEDTLS_LMS_PRIVATE */ - -#if defined(MBEDTLS_NIST_KW_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NIST_KW_C); -#endif /* MBEDTLS_NIST_KW_C */ - -#if defined(MBEDTLS_MD_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD_C); -#endif /* MBEDTLS_MD_C */ - -#if defined(MBEDTLS_MD5_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MD5_C); -#endif /* MBEDTLS_MD5_C */ - -#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_BUFFER_ALLOC_C); -#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ - -#if defined(MBEDTLS_NET_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_NET_C); -#endif /* MBEDTLS_NET_C */ - -#if defined(MBEDTLS_OID_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_OID_C); -#endif /* MBEDTLS_OID_C */ - -#if defined(MBEDTLS_PADLOCK_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PADLOCK_C); -#endif /* MBEDTLS_PADLOCK_C */ - -#if defined(MBEDTLS_PEM_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PEM_PARSE_C); -#endif /* MBEDTLS_PEM_PARSE_C */ - -#if defined(MBEDTLS_PEM_WRITE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PEM_WRITE_C); -#endif /* MBEDTLS_PEM_WRITE_C */ - -#if defined(MBEDTLS_PK_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_C); -#endif /* MBEDTLS_PK_C */ - -#if defined(MBEDTLS_PK_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_PARSE_C); -#endif /* MBEDTLS_PK_PARSE_C */ - -#if defined(MBEDTLS_PK_WRITE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PK_WRITE_C); -#endif /* MBEDTLS_PK_WRITE_C */ - -#if defined(MBEDTLS_PKCS5_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS5_C); -#endif /* MBEDTLS_PKCS5_C */ - -#if defined(MBEDTLS_PKCS7_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS7_C); -#endif /* MBEDTLS_PKCS7_C */ - -#if defined(MBEDTLS_PKCS12_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PKCS12_C); -#endif /* MBEDTLS_PKCS12_C */ - -#if defined(MBEDTLS_PLATFORM_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_C); -#endif /* MBEDTLS_PLATFORM_C */ - -#if defined(MBEDTLS_POLY1305_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_POLY1305_C); -#endif /* MBEDTLS_POLY1305_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_C); -#endif /* MBEDTLS_PSA_CRYPTO_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_SE_C); -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - -#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_STORAGE_C); -#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ - -#if defined(MBEDTLS_PSA_ITS_FILE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_ITS_FILE_C); -#endif /* MBEDTLS_PSA_ITS_FILE_C */ - -#if defined(MBEDTLS_RIPEMD160_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RIPEMD160_C); -#endif /* MBEDTLS_RIPEMD160_C */ - -#if defined(MBEDTLS_RSA_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_RSA_C); -#endif /* MBEDTLS_RSA_C */ - -#if defined(MBEDTLS_SHA1_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA1_C); -#endif /* MBEDTLS_SHA1_C */ - -#if defined(MBEDTLS_SHA224_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA224_C); -#endif /* MBEDTLS_SHA224_C */ - -#if defined(MBEDTLS_SHA256_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_C); -#endif /* MBEDTLS_SHA256_C */ - -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT); -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ - -#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY); -#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ - -#if defined(MBEDTLS_SHA384_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA384_C); -#endif /* MBEDTLS_SHA384_C */ - -#if defined(MBEDTLS_SHA512_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_C); -#endif /* MBEDTLS_SHA512_C */ - -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT); -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ - -#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY); -#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ - -#if defined(MBEDTLS_SSL_CACHE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_C); -#endif /* MBEDTLS_SSL_CACHE_C */ - -#if defined(MBEDTLS_SSL_COOKIE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_COOKIE_C); -#endif /* MBEDTLS_SSL_COOKIE_C */ - -#if defined(MBEDTLS_SSL_TICKET_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TICKET_C); -#endif /* MBEDTLS_SSL_TICKET_C */ - -#if defined(MBEDTLS_SSL_CLI_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CLI_C); -#endif /* MBEDTLS_SSL_CLI_C */ - -#if defined(MBEDTLS_SSL_SRV_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_SRV_C); -#endif /* MBEDTLS_SSL_SRV_C */ - -#if defined(MBEDTLS_SSL_TLS_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_TLS_C); -#endif /* MBEDTLS_SSL_TLS_C */ - -#if defined(MBEDTLS_THREADING_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_THREADING_C); -#endif /* MBEDTLS_THREADING_C */ - -#if defined(MBEDTLS_TIMING_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_TIMING_C); -#endif /* MBEDTLS_TIMING_C */ - -#if defined(MBEDTLS_VERSION_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_VERSION_C); -#endif /* MBEDTLS_VERSION_C */ - -#if defined(MBEDTLS_X509_USE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_USE_C); -#endif /* MBEDTLS_X509_USE_C */ - -#if defined(MBEDTLS_X509_CRT_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRT_PARSE_C); -#endif /* MBEDTLS_X509_CRT_PARSE_C */ - -#if defined(MBEDTLS_X509_CRL_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRL_PARSE_C); -#endif /* MBEDTLS_X509_CRL_PARSE_C */ - -#if defined(MBEDTLS_X509_CSR_PARSE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CSR_PARSE_C); -#endif /* MBEDTLS_X509_CSR_PARSE_C */ - -#if defined(MBEDTLS_X509_CREATE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CREATE_C); -#endif /* MBEDTLS_X509_CREATE_C */ - -#if defined(MBEDTLS_X509_CRT_WRITE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CRT_WRITE_C); -#endif /* MBEDTLS_X509_CRT_WRITE_C */ - -#if defined(MBEDTLS_X509_CSR_WRITE_C) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_CSR_WRITE_C); -#endif /* MBEDTLS_X509_CSR_WRITE_C */ - -#if defined(MBEDTLS_CONFIG_FILE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CONFIG_FILE); -#endif /* MBEDTLS_CONFIG_FILE */ - -#if defined(MBEDTLS_USER_CONFIG_FILE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_USER_CONFIG_FILE); -#endif /* MBEDTLS_USER_CONFIG_FILE */ - -#if defined(MBEDTLS_PSA_CRYPTO_CONFIG_FILE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_CONFIG_FILE); -#endif /* MBEDTLS_PSA_CRYPTO_CONFIG_FILE */ - -#if defined(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE); -#endif /* MBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE */ - -#if defined(MBEDTLS_MPI_WINDOW_SIZE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MPI_WINDOW_SIZE); -#endif /* MBEDTLS_MPI_WINDOW_SIZE */ - -#if defined(MBEDTLS_MPI_MAX_SIZE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MPI_MAX_SIZE); -#endif /* MBEDTLS_MPI_MAX_SIZE */ - -#if defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_ENTROPY_LEN); -#endif /* MBEDTLS_CTR_DRBG_ENTROPY_LEN */ - -#if defined(MBEDTLS_CTR_DRBG_RESEED_INTERVAL) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_RESEED_INTERVAL); -#endif /* MBEDTLS_CTR_DRBG_RESEED_INTERVAL */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_INPUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_INPUT); -#endif /* MBEDTLS_CTR_DRBG_MAX_INPUT */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_REQUEST) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_REQUEST); -#endif /* MBEDTLS_CTR_DRBG_MAX_REQUEST */ - -#if defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT); -#endif /* MBEDTLS_CTR_DRBG_MAX_SEED_INPUT */ - -#if defined(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_RESEED_INTERVAL); -#endif /* MBEDTLS_HMAC_DRBG_RESEED_INTERVAL */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_INPUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_INPUT); -#endif /* MBEDTLS_HMAC_DRBG_MAX_INPUT */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_REQUEST) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_REQUEST); -#endif /* MBEDTLS_HMAC_DRBG_MAX_REQUEST */ - -#if defined(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT); -#endif /* MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT */ - -#if defined(MBEDTLS_ECP_WINDOW_SIZE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_WINDOW_SIZE); -#endif /* MBEDTLS_ECP_WINDOW_SIZE */ - -#if defined(MBEDTLS_ECP_FIXED_POINT_OPTIM) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECP_FIXED_POINT_OPTIM); -#endif /* MBEDTLS_ECP_FIXED_POINT_OPTIM */ - -#if defined(MBEDTLS_ENTROPY_MAX_SOURCES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MAX_SOURCES); -#endif /* MBEDTLS_ENTROPY_MAX_SOURCES */ - -#if defined(MBEDTLS_ENTROPY_MAX_GATHER) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MAX_GATHER); -#endif /* MBEDTLS_ENTROPY_MAX_GATHER */ - -#if defined(MBEDTLS_ENTROPY_MIN_HARDWARE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ENTROPY_MIN_HARDWARE); -#endif /* MBEDTLS_ENTROPY_MIN_HARDWARE */ - -#if defined(MBEDTLS_MEMORY_ALIGN_MULTIPLE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_MEMORY_ALIGN_MULTIPLE); -#endif /* MBEDTLS_MEMORY_ALIGN_MULTIPLE */ - -#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_MEM_HDR); -#endif /* MBEDTLS_PLATFORM_STD_MEM_HDR */ - -#if defined(MBEDTLS_PLATFORM_STD_CALLOC) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_CALLOC); -#endif /* MBEDTLS_PLATFORM_STD_CALLOC */ - -#if defined(MBEDTLS_PLATFORM_STD_FREE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_FREE); -#endif /* MBEDTLS_PLATFORM_STD_FREE */ - -#if defined(MBEDTLS_PLATFORM_STD_SETBUF) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_SETBUF); -#endif /* MBEDTLS_PLATFORM_STD_SETBUF */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT); -#endif /* MBEDTLS_PLATFORM_STD_EXIT */ - -#if defined(MBEDTLS_PLATFORM_STD_TIME) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_TIME); -#endif /* MBEDTLS_PLATFORM_STD_TIME */ - -#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_FPRINTF); -#endif /* MBEDTLS_PLATFORM_STD_FPRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_PRINTF) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_PRINTF); -#endif /* MBEDTLS_PLATFORM_STD_PRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_SNPRINTF); -#endif /* MBEDTLS_PLATFORM_STD_SNPRINTF */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT_SUCCESS); -#endif /* MBEDTLS_PLATFORM_STD_EXIT_SUCCESS */ - -#if defined(MBEDTLS_PLATFORM_STD_EXIT_FAILURE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_EXIT_FAILURE); -#endif /* MBEDTLS_PLATFORM_STD_EXIT_FAILURE */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_READ); -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_READ */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE); -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_WRITE */ - -#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_FILE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_STD_NV_SEED_FILE); -#endif /* MBEDTLS_PLATFORM_STD_NV_SEED_FILE */ - -#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_CALLOC_MACRO); -#endif /* MBEDTLS_PLATFORM_CALLOC_MACRO */ - -#if defined(MBEDTLS_PLATFORM_FREE_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FREE_MACRO); -#endif /* MBEDTLS_PLATFORM_FREE_MACRO */ - -#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_EXIT_MACRO); -#endif /* MBEDTLS_PLATFORM_EXIT_MACRO */ - -#if defined(MBEDTLS_PLATFORM_SETBUF_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SETBUF_MACRO); -#endif /* MBEDTLS_PLATFORM_SETBUF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_TIME_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_MACRO); -#endif /* MBEDTLS_PLATFORM_TIME_MACRO */ - -#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_TIME_TYPE_MACRO); -#endif /* MBEDTLS_PLATFORM_TIME_TYPE_MACRO */ - -#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_FPRINTF_MACRO); -#endif /* MBEDTLS_PLATFORM_FPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_PRINTF_MACRO); -#endif /* MBEDTLS_PLATFORM_PRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_SNPRINTF_MACRO); -#endif /* MBEDTLS_PLATFORM_SNPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_VSNPRINTF_MACRO); -#endif /* MBEDTLS_PLATFORM_VSNPRINTF_MACRO */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO); -#endif /* MBEDTLS_PLATFORM_NV_SEED_READ_MACRO */ - -#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO); -#endif /* MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO */ - -#if defined(MBEDTLS_CHECK_RETURN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_CHECK_RETURN); -#endif /* MBEDTLS_CHECK_RETURN */ - -#if defined(MBEDTLS_IGNORE_RETURN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_IGNORE_RETURN); -#endif /* MBEDTLS_IGNORE_RETURN */ - -#if defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE); -#endif /* MBEDTLS_PSA_HMAC_DRBG_MD_TYPE */ - -#if defined(MBEDTLS_PSA_KEY_SLOT_COUNT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSA_KEY_SLOT_COUNT); -#endif /* MBEDTLS_PSA_KEY_SLOT_COUNT */ - -#if defined(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT); -#endif /* MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT */ - -#if defined(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES); -#endif /* MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES */ - -#if defined(MBEDTLS_SSL_IN_CONTENT_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_IN_CONTENT_LEN); -#endif /* MBEDTLS_SSL_IN_CONTENT_LEN */ - -#if defined(MBEDTLS_SSL_CID_IN_LEN_MAX) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_IN_LEN_MAX); -#endif /* MBEDTLS_SSL_CID_IN_LEN_MAX */ - -#if defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_OUT_LEN_MAX); -#endif /* MBEDTLS_SSL_CID_OUT_LEN_MAX */ - -#if defined(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY); -#endif /* MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY */ - -#if defined(MBEDTLS_SSL_OUT_CONTENT_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_OUT_CONTENT_LEN); -#endif /* MBEDTLS_SSL_OUT_CONTENT_LEN */ - -#if defined(MBEDTLS_SSL_DTLS_MAX_BUFFERING) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_DTLS_MAX_BUFFERING); -#endif /* MBEDTLS_SSL_DTLS_MAX_BUFFERING */ - -#if defined(MBEDTLS_PSK_MAX_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PSK_MAX_LEN); -#endif /* MBEDTLS_PSK_MAX_LEN */ - -#if defined(MBEDTLS_SSL_COOKIE_TIMEOUT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_SSL_COOKIE_TIMEOUT); -#endif /* MBEDTLS_SSL_COOKIE_TIMEOUT */ - -#if defined(MBEDTLS_X509_MAX_INTERMEDIATE_CA) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_MAX_INTERMEDIATE_CA); -#endif /* MBEDTLS_X509_MAX_INTERMEDIATE_CA */ - -#if defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_X509_MAX_FILE_PATH_LEN); -#endif /* MBEDTLS_X509_MAX_FILE_PATH_LEN */ - -#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_ZEROIZE_ALT); -#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ - -#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_PLATFORM_GMTIME_R_ALT); -#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */ - -#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) - OUTPUT_MACRO_NAME_VALUE(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED); -#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */ - -#if defined(PSA_WANT_ALG_CBC_MAC) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_MAC); -#endif /* PSA_WANT_ALG_CBC_MAC */ - -#if defined(PSA_WANT_ALG_CBC_NO_PADDING) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_NO_PADDING); -#endif /* PSA_WANT_ALG_CBC_NO_PADDING */ - -#if defined(PSA_WANT_ALG_CBC_PKCS7) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CBC_PKCS7); -#endif /* PSA_WANT_ALG_CBC_PKCS7 */ - -#if defined(PSA_WANT_ALG_CCM) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CCM); -#endif /* PSA_WANT_ALG_CCM */ - -#if defined(PSA_WANT_ALG_CMAC) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CMAC); -#endif /* PSA_WANT_ALG_CMAC */ - -#if defined(PSA_WANT_ALG_CFB) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CFB); -#endif /* PSA_WANT_ALG_CFB */ - -#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CHACHA20_POLY1305); -#endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ - -#if defined(PSA_WANT_ALG_CTR) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_CTR); -#endif /* PSA_WANT_ALG_CTR */ - -#if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_DETERMINISTIC_ECDSA); -#endif /* PSA_WANT_ALG_DETERMINISTIC_ECDSA */ - -#if defined(PSA_WANT_ALG_ECB_NO_PADDING) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECB_NO_PADDING); -#endif /* PSA_WANT_ALG_ECB_NO_PADDING */ - -#if defined(PSA_WANT_ALG_ECDH) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECDH); -#endif /* PSA_WANT_ALG_ECDH */ - -#if defined(PSA_WANT_ALG_ECDSA) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_ECDSA); -#endif /* PSA_WANT_ALG_ECDSA */ - -#if defined(PSA_WANT_ALG_JPAKE) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_JPAKE); -#endif /* PSA_WANT_ALG_JPAKE */ - -#if defined(PSA_WANT_ALG_GCM) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_GCM); -#endif /* PSA_WANT_ALG_GCM */ - -#if defined(PSA_WANT_ALG_HKDF) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF); -#endif /* PSA_WANT_ALG_HKDF */ - -#if defined(PSA_WANT_ALG_HKDF_EXTRACT) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF_EXTRACT); -#endif /* PSA_WANT_ALG_HKDF_EXTRACT */ - -#if defined(PSA_WANT_ALG_HKDF_EXPAND) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HKDF_EXPAND); -#endif /* PSA_WANT_ALG_HKDF_EXPAND */ - -#if defined(PSA_WANT_ALG_HMAC) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_HMAC); -#endif /* PSA_WANT_ALG_HMAC */ - -#if defined(PSA_WANT_ALG_MD5) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_MD5); -#endif /* PSA_WANT_ALG_MD5 */ - -#if defined(PSA_WANT_ALG_OFB) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_OFB); -#endif /* PSA_WANT_ALG_OFB */ - -#if defined(PSA_WANT_ALG_PBKDF2_HMAC) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_PBKDF2_HMAC); -#endif /* PSA_WANT_ALG_PBKDF2_HMAC */ - -#if defined(PSA_WANT_ALG_RIPEMD160) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RIPEMD160); -#endif /* PSA_WANT_ALG_RIPEMD160 */ - -#if defined(PSA_WANT_ALG_RSA_OAEP) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_OAEP); -#endif /* PSA_WANT_ALG_RSA_OAEP */ - -#if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT); -#endif /* PSA_WANT_ALG_RSA_PKCS1V15_CRYPT */ - -#if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PKCS1V15_SIGN); -#endif /* PSA_WANT_ALG_RSA_PKCS1V15_SIGN */ - -#if defined(PSA_WANT_ALG_RSA_PSS) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_RSA_PSS); -#endif /* PSA_WANT_ALG_RSA_PSS */ - -#if defined(PSA_WANT_ALG_SHA_1) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_1); -#endif /* PSA_WANT_ALG_SHA_1 */ - -#if defined(PSA_WANT_ALG_SHA_224) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_224); -#endif /* PSA_WANT_ALG_SHA_224 */ - -#if defined(PSA_WANT_ALG_SHA_256) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_256); -#endif /* PSA_WANT_ALG_SHA_256 */ - -#if defined(PSA_WANT_ALG_SHA_384) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_384); -#endif /* PSA_WANT_ALG_SHA_384 */ - -#if defined(PSA_WANT_ALG_SHA_512) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_SHA_512); -#endif /* PSA_WANT_ALG_SHA_512 */ - -#if defined(PSA_WANT_ALG_STREAM_CIPHER) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_STREAM_CIPHER); -#endif /* PSA_WANT_ALG_STREAM_CIPHER */ - -#if defined(PSA_WANT_ALG_TLS12_PRF) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_PRF); -#endif /* PSA_WANT_ALG_TLS12_PRF */ - -#if defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_PSK_TO_MS); -#endif /* PSA_WANT_ALG_TLS12_PSK_TO_MS */ - -#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS); -#endif /* PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS */ - -#if defined(PSA_WANT_ALG_XTS) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ALG_XTS); -#endif /* PSA_WANT_ALG_XTS */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_256); -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_256 */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_384); -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_384 */ - -#if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_BRAINPOOL_P_R1_512); -#endif /* PSA_WANT_ECC_BRAINPOOL_P_R1_512 */ - -#if defined(PSA_WANT_ECC_MONTGOMERY_255) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_MONTGOMERY_255); -#endif /* PSA_WANT_ECC_MONTGOMERY_255 */ - -#if defined(PSA_WANT_ECC_MONTGOMERY_448) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_MONTGOMERY_448); -#endif /* PSA_WANT_ECC_MONTGOMERY_448 */ - -#if defined(PSA_WANT_ECC_SECP_K1_192) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_192); -#endif /* PSA_WANT_ECC_SECP_K1_192 */ - -#if defined(PSA_WANT_ECC_SECP_K1_224) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_224); -#endif /* PSA_WANT_ECC_SECP_K1_224 */ - -#if defined(PSA_WANT_ECC_SECP_K1_256) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_K1_256); -#endif /* PSA_WANT_ECC_SECP_K1_256 */ - -#if defined(PSA_WANT_ECC_SECP_R1_192) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_192); -#endif /* PSA_WANT_ECC_SECP_R1_192 */ - -#if defined(PSA_WANT_ECC_SECP_R1_224) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_224); -#endif /* PSA_WANT_ECC_SECP_R1_224 */ - -#if defined(PSA_WANT_ECC_SECP_R1_256) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_256); -#endif /* PSA_WANT_ECC_SECP_R1_256 */ - -#if defined(PSA_WANT_ECC_SECP_R1_384) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_384); -#endif /* PSA_WANT_ECC_SECP_R1_384 */ - -#if defined(PSA_WANT_ECC_SECP_R1_521) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_ECC_SECP_R1_521); -#endif /* PSA_WANT_ECC_SECP_R1_521 */ - -#if defined(PSA_WANT_KEY_TYPE_DERIVE) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_DERIVE); -#endif /* PSA_WANT_KEY_TYPE_DERIVE */ - -#if defined(PSA_WANT_KEY_TYPE_HMAC) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_HMAC); -#endif /* PSA_WANT_KEY_TYPE_HMAC */ - -#if defined(PSA_WANT_KEY_TYPE_AES) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_AES); -#endif /* PSA_WANT_KEY_TYPE_AES */ - -#if defined(PSA_WANT_KEY_TYPE_ARIA) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ARIA); -#endif /* PSA_WANT_KEY_TYPE_ARIA */ - -#if defined(PSA_WANT_KEY_TYPE_CAMELLIA) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_CAMELLIA); -#endif /* PSA_WANT_KEY_TYPE_CAMELLIA */ - -#if defined(PSA_WANT_KEY_TYPE_CHACHA20) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_CHACHA20); -#endif /* PSA_WANT_KEY_TYPE_CHACHA20 */ - -#if defined(PSA_WANT_KEY_TYPE_DES) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_DES); -#endif /* PSA_WANT_KEY_TYPE_DES */ - -#if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR); -#endif /* PSA_WANT_KEY_TYPE_ECC_KEY_PAIR */ - -#if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY); -#endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */ - -#if defined(PSA_WANT_KEY_TYPE_RAW_DATA) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RAW_DATA); -#endif /* PSA_WANT_KEY_TYPE_RAW_DATA */ - -#if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR); -#endif /* PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ - -#if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) - OUTPUT_MACRO_NAME_VALUE(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY); -#endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY */ - - -} -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ diff --git a/tests/suites/test_suite_bignum.generated.data b/tests/suites/test_suite_bignum.generated.data deleted file mode 100644 index 6badd0b01..000000000 --- a/tests/suites/test_suite_bignum.generated.data +++ /dev/null @@ -1,975 +0,0 @@ -# Automatically generated by generate_bignum_tests.py. Do not edit! - -MPI add #1 0 (null) + 0 (null) -mpi_add_mpi:"":"":"0" - -MPI add #2 0 (null) + 0 (1 limb) -mpi_add_mpi:"":"0":"0" - -MPI add #3 0 (null) + negative 0 (null) -mpi_add_mpi:"":"-":"0" - -MPI add #4 0 (null) + negative with leading zero limb -mpi_add_mpi:"":"-0":"0" - -MPI add #5 0 (null) + positive -mpi_add_mpi:"":"7b":"7b" - -MPI add #6 0 (null) + negative -mpi_add_mpi:"":"-7b":"-7b" - -MPI add #7 0 (null) + positive with leading zero limb -mpi_add_mpi:"":"0000000000000000123":"123" - -MPI add #8 0 (null) + negative with leading zero limb -mpi_add_mpi:"":"-0000000000000000123":"-123" - -MPI add #9 0 (null) + large positive -mpi_add_mpi:"":"1230000000000000000":"1230000000000000000" - -MPI add #10 0 (null) + large negative -mpi_add_mpi:"":"-1230000000000000000":"-1230000000000000000" - -MPI add #11 0 (1 limb) + 0 (null) -mpi_add_mpi:"0":"":"0" - -MPI add #12 0 (1 limb) + 0 (1 limb) -mpi_add_mpi:"0":"0":"0" - -MPI add #13 0 (1 limb) + negative 0 (null) -mpi_add_mpi:"0":"-":"0" - -MPI add #14 0 (1 limb) + negative with leading zero limb -mpi_add_mpi:"0":"-0":"0" - -MPI add #15 0 (1 limb) + positive -mpi_add_mpi:"0":"7b":"7b" - -MPI add #16 0 (1 limb) + negative -mpi_add_mpi:"0":"-7b":"-7b" - -MPI add #17 0 (1 limb) + positive with leading zero limb -mpi_add_mpi:"0":"0000000000000000123":"123" - -MPI add #18 0 (1 limb) + negative with leading zero limb -mpi_add_mpi:"0":"-0000000000000000123":"-123" - -MPI add #19 0 (1 limb) + large positive -mpi_add_mpi:"0":"1230000000000000000":"1230000000000000000" - -MPI add #20 0 (1 limb) + large negative -mpi_add_mpi:"0":"-1230000000000000000":"-1230000000000000000" - -MPI add #21 negative 0 (null) + 0 (null) -mpi_add_mpi:"-":"":"0" - -MPI add #22 negative 0 (null) + 0 (1 limb) -mpi_add_mpi:"-":"0":"0" - -MPI add #23 negative 0 (null) + negative 0 (null) -mpi_add_mpi:"-":"-":"0" - -MPI add #24 negative 0 (null) + negative with leading zero limb -mpi_add_mpi:"-":"-0":"0" - -MPI add #25 negative 0 (null) + positive -mpi_add_mpi:"-":"7b":"7b" - -MPI add #26 negative 0 (null) + negative -mpi_add_mpi:"-":"-7b":"-7b" - -MPI add #27 negative 0 (null) + positive with leading zero limb -mpi_add_mpi:"-":"0000000000000000123":"123" - -MPI add #28 negative 0 (null) + negative with leading zero limb -mpi_add_mpi:"-":"-0000000000000000123":"-123" - -MPI add #29 negative 0 (null) + large positive -mpi_add_mpi:"-":"1230000000000000000":"1230000000000000000" - -MPI add #30 negative 0 (null) + large negative -mpi_add_mpi:"-":"-1230000000000000000":"-1230000000000000000" - -MPI add #31 negative with leading zero limb + 0 (null) -mpi_add_mpi:"-0":"":"0" - -MPI add #32 negative with leading zero limb + 0 (1 limb) -mpi_add_mpi:"-0":"0":"0" - -MPI add #33 negative with leading zero limb + negative 0 (null) -mpi_add_mpi:"-0":"-":"0" - -MPI add #34 negative with leading zero limb + negative with leading zero limb -mpi_add_mpi:"-0":"-0":"0" - -MPI add #35 negative with leading zero limb + positive -mpi_add_mpi:"-0":"7b":"7b" - -MPI add #36 negative with leading zero limb + negative -mpi_add_mpi:"-0":"-7b":"-7b" - -MPI add #37 negative with leading zero limb + positive with leading zero limb -mpi_add_mpi:"-0":"0000000000000000123":"123" - -MPI add #38 negative with leading zero limb + negative with leading zero limb -mpi_add_mpi:"-0":"-0000000000000000123":"-123" - -MPI add #39 negative with leading zero limb + large positive -mpi_add_mpi:"-0":"1230000000000000000":"1230000000000000000" - -MPI add #40 negative with leading zero limb + large negative -mpi_add_mpi:"-0":"-1230000000000000000":"-1230000000000000000" - -MPI add #41 positive + 0 (null) -mpi_add_mpi:"7b":"":"7b" - -MPI add #42 positive + 0 (1 limb) -mpi_add_mpi:"7b":"0":"7b" - -MPI add #43 positive + negative 0 (null) -mpi_add_mpi:"7b":"-":"7b" - -MPI add #44 positive + negative with leading zero limb -mpi_add_mpi:"7b":"-0":"7b" - -MPI add #45 positive + positive -mpi_add_mpi:"7b":"7b":"f6" - -MPI add #46 positive + negative , result=0 -mpi_add_mpi:"7b":"-7b":"0" - -MPI add #47 positive + positive with leading zero limb -mpi_add_mpi:"7b":"0000000000000000123":"19e" - -MPI add #48 positive + negative with leading zero limb , result<0 -mpi_add_mpi:"7b":"-0000000000000000123":"-a8" - -MPI add #49 positive + large positive -mpi_add_mpi:"7b":"1230000000000000000":"123000000000000007b" - -MPI add #50 positive + large negative , result<0 -mpi_add_mpi:"7b":"-1230000000000000000":"-122ffffffffffffff85" - -MPI add #51 negative + 0 (null) -mpi_add_mpi:"-7b":"":"-7b" - -MPI add #52 negative + 0 (1 limb) -mpi_add_mpi:"-7b":"0":"-7b" - -MPI add #53 negative + negative 0 (null) -mpi_add_mpi:"-7b":"-":"-7b" - -MPI add #54 negative + negative with leading zero limb -mpi_add_mpi:"-7b":"-0":"-7b" - -MPI add #55 negative + positive , result=0 -mpi_add_mpi:"-7b":"7b":"0" - -MPI add #56 negative + negative -mpi_add_mpi:"-7b":"-7b":"-f6" - -MPI add #57 negative + positive with leading zero limb , result>0 -mpi_add_mpi:"-7b":"0000000000000000123":"a8" - -MPI add #58 negative + negative with leading zero limb -mpi_add_mpi:"-7b":"-0000000000000000123":"-19e" - -MPI add #59 negative + large positive , result>0 -mpi_add_mpi:"-7b":"1230000000000000000":"122ffffffffffffff85" - -MPI add #60 negative + large negative -mpi_add_mpi:"-7b":"-1230000000000000000":"-123000000000000007b" - -MPI add #61 positive with leading zero limb + 0 (null) -mpi_add_mpi:"0000000000000000123":"":"123" - -MPI add #62 positive with leading zero limb + 0 (1 limb) -mpi_add_mpi:"0000000000000000123":"0":"123" - -MPI add #63 positive with leading zero limb + negative 0 (null) -mpi_add_mpi:"0000000000000000123":"-":"123" - -MPI add #64 positive with leading zero limb + negative with leading zero limb -mpi_add_mpi:"0000000000000000123":"-0":"123" - -MPI add #65 positive with leading zero limb + positive -mpi_add_mpi:"0000000000000000123":"7b":"19e" - -MPI add #66 positive with leading zero limb + negative , result>0 -mpi_add_mpi:"0000000000000000123":"-7b":"a8" - -MPI add #67 positive with leading zero limb + positive with leading zero limb -mpi_add_mpi:"0000000000000000123":"0000000000000000123":"246" - -MPI add #68 positive with leading zero limb + negative with leading zero limb , result=0 -mpi_add_mpi:"0000000000000000123":"-0000000000000000123":"0" - -MPI add #69 positive with leading zero limb + large positive -mpi_add_mpi:"0000000000000000123":"1230000000000000000":"1230000000000000123" - -MPI add #70 positive with leading zero limb + large negative , result<0 -mpi_add_mpi:"0000000000000000123":"-1230000000000000000":"-122fffffffffffffedd" - -MPI add #71 negative with leading zero limb + 0 (null) -mpi_add_mpi:"-0000000000000000123":"":"-123" - -MPI add #72 negative with leading zero limb + 0 (1 limb) -mpi_add_mpi:"-0000000000000000123":"0":"-123" - -MPI add #73 negative with leading zero limb + negative 0 (null) -mpi_add_mpi:"-0000000000000000123":"-":"-123" - -MPI add #74 negative with leading zero limb + negative with leading zero limb -mpi_add_mpi:"-0000000000000000123":"-0":"-123" - -MPI add #75 negative with leading zero limb + positive , result<0 -mpi_add_mpi:"-0000000000000000123":"7b":"-a8" - -MPI add #76 negative with leading zero limb + negative -mpi_add_mpi:"-0000000000000000123":"-7b":"-19e" - -MPI add #77 negative with leading zero limb + positive with leading zero limb , result=0 -mpi_add_mpi:"-0000000000000000123":"0000000000000000123":"0" - -MPI add #78 negative with leading zero limb + negative with leading zero limb -mpi_add_mpi:"-0000000000000000123":"-0000000000000000123":"-246" - -MPI add #79 negative with leading zero limb + large positive , result>0 -mpi_add_mpi:"-0000000000000000123":"1230000000000000000":"122fffffffffffffedd" - -MPI add #80 negative with leading zero limb + large negative -mpi_add_mpi:"-0000000000000000123":"-1230000000000000000":"-1230000000000000123" - -MPI add #81 large positive + 0 (null) -mpi_add_mpi:"1230000000000000000":"":"1230000000000000000" - -MPI add #82 large positive + 0 (1 limb) -mpi_add_mpi:"1230000000000000000":"0":"1230000000000000000" - -MPI add #83 large positive + negative 0 (null) -mpi_add_mpi:"1230000000000000000":"-":"1230000000000000000" - -MPI add #84 large positive + negative with leading zero limb -mpi_add_mpi:"1230000000000000000":"-0":"1230000000000000000" - -MPI add #85 large positive + positive -mpi_add_mpi:"1230000000000000000":"7b":"123000000000000007b" - -MPI add #86 large positive + negative , result>0 -mpi_add_mpi:"1230000000000000000":"-7b":"122ffffffffffffff85" - -MPI add #87 large positive + positive with leading zero limb -mpi_add_mpi:"1230000000000000000":"0000000000000000123":"1230000000000000123" - -MPI add #88 large positive + negative with leading zero limb , result>0 -mpi_add_mpi:"1230000000000000000":"-0000000000000000123":"122fffffffffffffedd" - -MPI add #89 large positive + large positive -mpi_add_mpi:"1230000000000000000":"1230000000000000000":"2460000000000000000" - -MPI add #90 large positive + large negative , result=0 -mpi_add_mpi:"1230000000000000000":"-1230000000000000000":"0" - -MPI add #91 large negative + 0 (null) -mpi_add_mpi:"-1230000000000000000":"":"-1230000000000000000" - -MPI add #92 large negative + 0 (1 limb) -mpi_add_mpi:"-1230000000000000000":"0":"-1230000000000000000" - -MPI add #93 large negative + negative 0 (null) -mpi_add_mpi:"-1230000000000000000":"-":"-1230000000000000000" - -MPI add #94 large negative + negative with leading zero limb -mpi_add_mpi:"-1230000000000000000":"-0":"-1230000000000000000" - -MPI add #95 large negative + positive , result<0 -mpi_add_mpi:"-1230000000000000000":"7b":"-122ffffffffffffff85" - -MPI add #96 large negative + negative -mpi_add_mpi:"-1230000000000000000":"-7b":"-123000000000000007b" - -MPI add #97 large negative + positive with leading zero limb , result<0 -mpi_add_mpi:"-1230000000000000000":"0000000000000000123":"-122fffffffffffffedd" - -MPI add #98 large negative + negative with leading zero limb -mpi_add_mpi:"-1230000000000000000":"-0000000000000000123":"-1230000000000000123" - -MPI add #99 large negative + large positive , result=0 -mpi_add_mpi:"-1230000000000000000":"1230000000000000000":"0" - -MPI add #100 large negative + large negative -mpi_add_mpi:"-1230000000000000000":"-1230000000000000000":"-2460000000000000000" - -MPI add #101 large positive + large positive -mpi_add_mpi:"1c67967269c6":"1c67967269c6":"38cf2ce4d38c" - -MPI add #102 large positive + positive -mpi_add_mpi:"1c67967269c6":"9cde3":"1c67967c37a9" - -MPI add #103 large positive + large negative , result=0 -mpi_add_mpi:"1c67967269c6":"-1c67967269c6":"0" - -MPI add #104 large positive + negative , result>0 -mpi_add_mpi:"1c67967269c6":"-9cde3":"1c6796689be3" - -MPI add #105 positive + large positive -mpi_add_mpi:"9cde3":"1c67967269c6":"1c67967c37a9" - -MPI add #106 positive + positive -mpi_add_mpi:"9cde3":"9cde3":"139bc6" - -MPI add #107 positive + large negative , result<0 -mpi_add_mpi:"9cde3":"-1c67967269c6":"-1c6796689be3" - -MPI add #108 positive + negative , result=0 -mpi_add_mpi:"9cde3":"-9cde3":"0" - -MPI add #109 large negative + large positive , result=0 -mpi_add_mpi:"-1c67967269c6":"1c67967269c6":"0" - -MPI add #110 large negative + positive , result<0 -mpi_add_mpi:"-1c67967269c6":"9cde3":"-1c6796689be3" - -MPI add #111 large negative + large negative -mpi_add_mpi:"-1c67967269c6":"-1c67967269c6":"-38cf2ce4d38c" - -MPI add #112 large negative + negative -mpi_add_mpi:"-1c67967269c6":"-9cde3":"-1c67967c37a9" - -MPI add #113 negative + large positive , result>0 -mpi_add_mpi:"-9cde3":"1c67967269c6":"1c6796689be3" - -MPI add #114 negative + positive , result=0 -mpi_add_mpi:"-9cde3":"9cde3":"0" - -MPI add #115 negative + large negative -mpi_add_mpi:"-9cde3":"-1c67967269c6":"-1c67967c37a9" - -MPI add #116 negative + negative -mpi_add_mpi:"-9cde3":"-9cde3":"-139bc6" - -MPI compare #1 0 (null) == 0 (null) -mpi_cmp_mpi:"":"":0 - -MPI compare #2 0 (null) == 0 (1 limb) -mpi_cmp_mpi:"":"0":0 - -MPI compare #3 0 (null) == negative 0 (null) -mpi_cmp_mpi:"":"-":0 - -MPI compare #4 0 (null) == negative with leading zero limb -mpi_cmp_mpi:"":"-0":0 - -MPI compare #5 0 (null) < positive -mpi_cmp_mpi:"":"7b":-1 - -MPI compare #6 0 (null) > negative -mpi_cmp_mpi:"":"-7b":1 - -MPI compare #7 0 (null) < positive with leading zero limb -mpi_cmp_mpi:"":"0000000000000000123":-1 - -MPI compare #8 0 (null) > negative with leading zero limb -mpi_cmp_mpi:"":"-0000000000000000123":1 - -MPI compare #9 0 (null) < large positive -mpi_cmp_mpi:"":"1230000000000000000":-1 - -MPI compare #10 0 (null) > large negative -mpi_cmp_mpi:"":"-1230000000000000000":1 - -MPI compare #11 0 (1 limb) == 0 (null) -mpi_cmp_mpi:"0":"":0 - -MPI compare #12 0 (1 limb) == 0 (1 limb) -mpi_cmp_mpi:"0":"0":0 - -MPI compare #13 0 (1 limb) == negative 0 (null) -mpi_cmp_mpi:"0":"-":0 - -MPI compare #14 0 (1 limb) == negative with leading zero limb -mpi_cmp_mpi:"0":"-0":0 - -MPI compare #15 0 (1 limb) < positive -mpi_cmp_mpi:"0":"7b":-1 - -MPI compare #16 0 (1 limb) > negative -mpi_cmp_mpi:"0":"-7b":1 - -MPI compare #17 0 (1 limb) < positive with leading zero limb -mpi_cmp_mpi:"0":"0000000000000000123":-1 - -MPI compare #18 0 (1 limb) > negative with leading zero limb -mpi_cmp_mpi:"0":"-0000000000000000123":1 - -MPI compare #19 0 (1 limb) < large positive -mpi_cmp_mpi:"0":"1230000000000000000":-1 - -MPI compare #20 0 (1 limb) > large negative -mpi_cmp_mpi:"0":"-1230000000000000000":1 - -MPI compare #21 negative 0 (null) == 0 (null) -mpi_cmp_mpi:"-":"":0 - -MPI compare #22 negative 0 (null) == 0 (1 limb) -mpi_cmp_mpi:"-":"0":0 - -MPI compare #23 negative 0 (null) == negative 0 (null) -mpi_cmp_mpi:"-":"-":0 - -MPI compare #24 negative 0 (null) == negative with leading zero limb -mpi_cmp_mpi:"-":"-0":0 - -MPI compare #25 negative 0 (null) < positive -mpi_cmp_mpi:"-":"7b":-1 - -MPI compare #26 negative 0 (null) > negative -mpi_cmp_mpi:"-":"-7b":1 - -MPI compare #27 negative 0 (null) < positive with leading zero limb -mpi_cmp_mpi:"-":"0000000000000000123":-1 - -MPI compare #28 negative 0 (null) > negative with leading zero limb -mpi_cmp_mpi:"-":"-0000000000000000123":1 - -MPI compare #29 negative 0 (null) < large positive -mpi_cmp_mpi:"-":"1230000000000000000":-1 - -MPI compare #30 negative 0 (null) > large negative -mpi_cmp_mpi:"-":"-1230000000000000000":1 - -MPI compare #31 negative with leading zero limb == 0 (null) -mpi_cmp_mpi:"-0":"":0 - -MPI compare #32 negative with leading zero limb == 0 (1 limb) -mpi_cmp_mpi:"-0":"0":0 - -MPI compare #33 negative with leading zero limb == negative 0 (null) -mpi_cmp_mpi:"-0":"-":0 - -MPI compare #34 negative with leading zero limb == negative with leading zero limb -mpi_cmp_mpi:"-0":"-0":0 - -MPI compare #35 negative with leading zero limb < positive -mpi_cmp_mpi:"-0":"7b":-1 - -MPI compare #36 negative with leading zero limb > negative -mpi_cmp_mpi:"-0":"-7b":1 - -MPI compare #37 negative with leading zero limb < positive with leading zero limb -mpi_cmp_mpi:"-0":"0000000000000000123":-1 - -MPI compare #38 negative with leading zero limb > negative with leading zero limb -mpi_cmp_mpi:"-0":"-0000000000000000123":1 - -MPI compare #39 negative with leading zero limb < large positive -mpi_cmp_mpi:"-0":"1230000000000000000":-1 - -MPI compare #40 negative with leading zero limb > large negative -mpi_cmp_mpi:"-0":"-1230000000000000000":1 - -MPI compare #41 positive > 0 (null) -mpi_cmp_mpi:"7b":"":1 - -MPI compare #42 positive > 0 (1 limb) -mpi_cmp_mpi:"7b":"0":1 - -MPI compare #43 positive > negative 0 (null) -mpi_cmp_mpi:"7b":"-":1 - -MPI compare #44 positive > negative with leading zero limb -mpi_cmp_mpi:"7b":"-0":1 - -MPI compare #45 positive == positive -mpi_cmp_mpi:"7b":"7b":0 - -MPI compare #46 positive > negative -mpi_cmp_mpi:"7b":"-7b":1 - -MPI compare #47 positive < positive with leading zero limb -mpi_cmp_mpi:"7b":"0000000000000000123":-1 - -MPI compare #48 positive > negative with leading zero limb -mpi_cmp_mpi:"7b":"-0000000000000000123":1 - -MPI compare #49 positive < large positive -mpi_cmp_mpi:"7b":"1230000000000000000":-1 - -MPI compare #50 positive > large negative -mpi_cmp_mpi:"7b":"-1230000000000000000":1 - -MPI compare #51 negative < 0 (null) -mpi_cmp_mpi:"-7b":"":-1 - -MPI compare #52 negative < 0 (1 limb) -mpi_cmp_mpi:"-7b":"0":-1 - -MPI compare #53 negative < negative 0 (null) -mpi_cmp_mpi:"-7b":"-":-1 - -MPI compare #54 negative < negative with leading zero limb -mpi_cmp_mpi:"-7b":"-0":-1 - -MPI compare #55 negative < positive -mpi_cmp_mpi:"-7b":"7b":-1 - -MPI compare #56 negative == negative -mpi_cmp_mpi:"-7b":"-7b":0 - -MPI compare #57 negative < positive with leading zero limb -mpi_cmp_mpi:"-7b":"0000000000000000123":-1 - -MPI compare #58 negative > negative with leading zero limb -mpi_cmp_mpi:"-7b":"-0000000000000000123":1 - -MPI compare #59 negative < large positive -mpi_cmp_mpi:"-7b":"1230000000000000000":-1 - -MPI compare #60 negative > large negative -mpi_cmp_mpi:"-7b":"-1230000000000000000":1 - -MPI compare #61 positive with leading zero limb > 0 (null) -mpi_cmp_mpi:"0000000000000000123":"":1 - -MPI compare #62 positive with leading zero limb > 0 (1 limb) -mpi_cmp_mpi:"0000000000000000123":"0":1 - -MPI compare #63 positive with leading zero limb > negative 0 (null) -mpi_cmp_mpi:"0000000000000000123":"-":1 - -MPI compare #64 positive with leading zero limb > negative with leading zero limb -mpi_cmp_mpi:"0000000000000000123":"-0":1 - -MPI compare #65 positive with leading zero limb > positive -mpi_cmp_mpi:"0000000000000000123":"7b":1 - -MPI compare #66 positive with leading zero limb > negative -mpi_cmp_mpi:"0000000000000000123":"-7b":1 - -MPI compare #67 positive with leading zero limb == positive with leading zero limb -mpi_cmp_mpi:"0000000000000000123":"0000000000000000123":0 - -MPI compare #68 positive with leading zero limb > negative with leading zero limb -mpi_cmp_mpi:"0000000000000000123":"-0000000000000000123":1 - -MPI compare #69 positive with leading zero limb < large positive -mpi_cmp_mpi:"0000000000000000123":"1230000000000000000":-1 - -MPI compare #70 positive with leading zero limb > large negative -mpi_cmp_mpi:"0000000000000000123":"-1230000000000000000":1 - -MPI compare #71 negative with leading zero limb < 0 (null) -mpi_cmp_mpi:"-0000000000000000123":"":-1 - -MPI compare #72 negative with leading zero limb < 0 (1 limb) -mpi_cmp_mpi:"-0000000000000000123":"0":-1 - -MPI compare #73 negative with leading zero limb < negative 0 (null) -mpi_cmp_mpi:"-0000000000000000123":"-":-1 - -MPI compare #74 negative with leading zero limb < negative with leading zero limb -mpi_cmp_mpi:"-0000000000000000123":"-0":-1 - -MPI compare #75 negative with leading zero limb < positive -mpi_cmp_mpi:"-0000000000000000123":"7b":-1 - -MPI compare #76 negative with leading zero limb < negative -mpi_cmp_mpi:"-0000000000000000123":"-7b":-1 - -MPI compare #77 negative with leading zero limb < positive with leading zero limb -mpi_cmp_mpi:"-0000000000000000123":"0000000000000000123":-1 - -MPI compare #78 negative with leading zero limb == negative with leading zero limb -mpi_cmp_mpi:"-0000000000000000123":"-0000000000000000123":0 - -MPI compare #79 negative with leading zero limb < large positive -mpi_cmp_mpi:"-0000000000000000123":"1230000000000000000":-1 - -MPI compare #80 negative with leading zero limb > large negative -mpi_cmp_mpi:"-0000000000000000123":"-1230000000000000000":1 - -MPI compare #81 large positive > 0 (null) -mpi_cmp_mpi:"1230000000000000000":"":1 - -MPI compare #82 large positive > 0 (1 limb) -mpi_cmp_mpi:"1230000000000000000":"0":1 - -MPI compare #83 large positive > negative 0 (null) -mpi_cmp_mpi:"1230000000000000000":"-":1 - -MPI compare #84 large positive > negative with leading zero limb -mpi_cmp_mpi:"1230000000000000000":"-0":1 - -MPI compare #85 large positive > positive -mpi_cmp_mpi:"1230000000000000000":"7b":1 - -MPI compare #86 large positive > negative -mpi_cmp_mpi:"1230000000000000000":"-7b":1 - -MPI compare #87 large positive > positive with leading zero limb -mpi_cmp_mpi:"1230000000000000000":"0000000000000000123":1 - -MPI compare #88 large positive > negative with leading zero limb -mpi_cmp_mpi:"1230000000000000000":"-0000000000000000123":1 - -MPI compare #89 large positive == large positive -mpi_cmp_mpi:"1230000000000000000":"1230000000000000000":0 - -MPI compare #90 large positive > large negative -mpi_cmp_mpi:"1230000000000000000":"-1230000000000000000":1 - -MPI compare #91 large negative < 0 (null) -mpi_cmp_mpi:"-1230000000000000000":"":-1 - -MPI compare #92 large negative < 0 (1 limb) -mpi_cmp_mpi:"-1230000000000000000":"0":-1 - -MPI compare #93 large negative < negative 0 (null) -mpi_cmp_mpi:"-1230000000000000000":"-":-1 - -MPI compare #94 large negative < negative with leading zero limb -mpi_cmp_mpi:"-1230000000000000000":"-0":-1 - -MPI compare #95 large negative < positive -mpi_cmp_mpi:"-1230000000000000000":"7b":-1 - -MPI compare #96 large negative < negative -mpi_cmp_mpi:"-1230000000000000000":"-7b":-1 - -MPI compare #97 large negative < positive with leading zero limb -mpi_cmp_mpi:"-1230000000000000000":"0000000000000000123":-1 - -MPI compare #98 large negative < negative with leading zero limb -mpi_cmp_mpi:"-1230000000000000000":"-0000000000000000123":-1 - -MPI compare #99 large negative < large positive -mpi_cmp_mpi:"-1230000000000000000":"1230000000000000000":-1 - -MPI compare #100 large negative == large negative -mpi_cmp_mpi:"-1230000000000000000":"-1230000000000000000":0 - -MPI compare #101 negative > negative -mpi_cmp_mpi:"-2":"-3":1 - -MPI compare #102 negative == negative -mpi_cmp_mpi:"-2":"-2":0 - -MPI compare #103 positive < positive -mpi_cmp_mpi:"2b4":"2b5":-1 - -MPI compare #104 positive < positive -mpi_cmp_mpi:"2b5":"2b6":-1 - -MPI compare (abs) #1 0 (null) == 0 (null) -mpi_cmp_abs:"":"":0 - -MPI compare (abs) #2 0 (null) == 0 (1 limb) -mpi_cmp_abs:"":"0":0 - -MPI compare (abs) #3 0 (null) == 0 (null) -mpi_cmp_abs:"":"":0 - -MPI compare (abs) #4 0 (null) == 0 (1 limb) -mpi_cmp_abs:"":"0":0 - -MPI compare (abs) #5 0 (null) < positive -mpi_cmp_abs:"":"7b":-1 - -MPI compare (abs) #6 0 (null) < positive -mpi_cmp_abs:"":"7b":-1 - -MPI compare (abs) #7 0 (null) < positive with leading zero limb -mpi_cmp_abs:"":"0000000000000000123":-1 - -MPI compare (abs) #8 0 (null) < positive with leading zero limb -mpi_cmp_abs:"":"0000000000000000123":-1 - -MPI compare (abs) #9 0 (null) < large positive -mpi_cmp_abs:"":"1230000000000000000":-1 - -MPI compare (abs) #10 0 (null) < large positive -mpi_cmp_abs:"":"1230000000000000000":-1 - -MPI compare (abs) #11 0 (1 limb) == 0 (null) -mpi_cmp_abs:"0":"":0 - -MPI compare (abs) #12 0 (1 limb) == 0 (1 limb) -mpi_cmp_abs:"0":"0":0 - -MPI compare (abs) #13 0 (1 limb) == 0 (null) -mpi_cmp_abs:"0":"":0 - -MPI compare (abs) #14 0 (1 limb) == 0 (1 limb) -mpi_cmp_abs:"0":"0":0 - -MPI compare (abs) #15 0 (1 limb) < positive -mpi_cmp_abs:"0":"7b":-1 - -MPI compare (abs) #16 0 (1 limb) < positive -mpi_cmp_abs:"0":"7b":-1 - -MPI compare (abs) #17 0 (1 limb) < positive with leading zero limb -mpi_cmp_abs:"0":"0000000000000000123":-1 - -MPI compare (abs) #18 0 (1 limb) < positive with leading zero limb -mpi_cmp_abs:"0":"0000000000000000123":-1 - -MPI compare (abs) #19 0 (1 limb) < large positive -mpi_cmp_abs:"0":"1230000000000000000":-1 - -MPI compare (abs) #20 0 (1 limb) < large positive -mpi_cmp_abs:"0":"1230000000000000000":-1 - -MPI compare (abs) #21 0 (null) == 0 (null) -mpi_cmp_abs:"":"":0 - -MPI compare (abs) #22 0 (null) == 0 (1 limb) -mpi_cmp_abs:"":"0":0 - -MPI compare (abs) #23 0 (null) == 0 (null) -mpi_cmp_abs:"":"":0 - -MPI compare (abs) #24 0 (null) == 0 (1 limb) -mpi_cmp_abs:"":"0":0 - -MPI compare (abs) #25 0 (null) < positive -mpi_cmp_abs:"":"7b":-1 - -MPI compare (abs) #26 0 (null) < positive -mpi_cmp_abs:"":"7b":-1 - -MPI compare (abs) #27 0 (null) < positive with leading zero limb -mpi_cmp_abs:"":"0000000000000000123":-1 - -MPI compare (abs) #28 0 (null) < positive with leading zero limb -mpi_cmp_abs:"":"0000000000000000123":-1 - -MPI compare (abs) #29 0 (null) < large positive -mpi_cmp_abs:"":"1230000000000000000":-1 - -MPI compare (abs) #30 0 (null) < large positive -mpi_cmp_abs:"":"1230000000000000000":-1 - -MPI compare (abs) #31 0 (1 limb) == 0 (null) -mpi_cmp_abs:"0":"":0 - -MPI compare (abs) #32 0 (1 limb) == 0 (1 limb) -mpi_cmp_abs:"0":"0":0 - -MPI compare (abs) #33 0 (1 limb) == 0 (null) -mpi_cmp_abs:"0":"":0 - -MPI compare (abs) #34 0 (1 limb) == 0 (1 limb) -mpi_cmp_abs:"0":"0":0 - -MPI compare (abs) #35 0 (1 limb) < positive -mpi_cmp_abs:"0":"7b":-1 - -MPI compare (abs) #36 0 (1 limb) < positive -mpi_cmp_abs:"0":"7b":-1 - -MPI compare (abs) #37 0 (1 limb) < positive with leading zero limb -mpi_cmp_abs:"0":"0000000000000000123":-1 - -MPI compare (abs) #38 0 (1 limb) < positive with leading zero limb -mpi_cmp_abs:"0":"0000000000000000123":-1 - -MPI compare (abs) #39 0 (1 limb) < large positive -mpi_cmp_abs:"0":"1230000000000000000":-1 - -MPI compare (abs) #40 0 (1 limb) < large positive -mpi_cmp_abs:"0":"1230000000000000000":-1 - -MPI compare (abs) #41 positive > 0 (null) -mpi_cmp_abs:"7b":"":1 - -MPI compare (abs) #42 positive > 0 (1 limb) -mpi_cmp_abs:"7b":"0":1 - -MPI compare (abs) #43 positive > 0 (null) -mpi_cmp_abs:"7b":"":1 - -MPI compare (abs) #44 positive > 0 (1 limb) -mpi_cmp_abs:"7b":"0":1 - -MPI compare (abs) #45 positive == positive -mpi_cmp_abs:"7b":"7b":0 - -MPI compare (abs) #46 positive == positive -mpi_cmp_abs:"7b":"7b":0 - -MPI compare (abs) #47 positive < positive with leading zero limb -mpi_cmp_abs:"7b":"0000000000000000123":-1 - -MPI compare (abs) #48 positive < positive with leading zero limb -mpi_cmp_abs:"7b":"0000000000000000123":-1 - -MPI compare (abs) #49 positive < large positive -mpi_cmp_abs:"7b":"1230000000000000000":-1 - -MPI compare (abs) #50 positive < large positive -mpi_cmp_abs:"7b":"1230000000000000000":-1 - -MPI compare (abs) #51 positive > 0 (null) -mpi_cmp_abs:"7b":"":1 - -MPI compare (abs) #52 positive > 0 (1 limb) -mpi_cmp_abs:"7b":"0":1 - -MPI compare (abs) #53 positive > 0 (null) -mpi_cmp_abs:"7b":"":1 - -MPI compare (abs) #54 positive > 0 (1 limb) -mpi_cmp_abs:"7b":"0":1 - -MPI compare (abs) #55 positive == positive -mpi_cmp_abs:"7b":"7b":0 - -MPI compare (abs) #56 positive == positive -mpi_cmp_abs:"7b":"7b":0 - -MPI compare (abs) #57 positive < positive with leading zero limb -mpi_cmp_abs:"7b":"0000000000000000123":-1 - -MPI compare (abs) #58 positive < positive with leading zero limb -mpi_cmp_abs:"7b":"0000000000000000123":-1 - -MPI compare (abs) #59 positive < large positive -mpi_cmp_abs:"7b":"1230000000000000000":-1 - -MPI compare (abs) #60 positive < large positive -mpi_cmp_abs:"7b":"1230000000000000000":-1 - -MPI compare (abs) #61 positive with leading zero limb > 0 (null) -mpi_cmp_abs:"0000000000000000123":"":1 - -MPI compare (abs) #62 positive with leading zero limb > 0 (1 limb) -mpi_cmp_abs:"0000000000000000123":"0":1 - -MPI compare (abs) #63 positive with leading zero limb > 0 (null) -mpi_cmp_abs:"0000000000000000123":"":1 - -MPI compare (abs) #64 positive with leading zero limb > 0 (1 limb) -mpi_cmp_abs:"0000000000000000123":"0":1 - -MPI compare (abs) #65 positive with leading zero limb > positive -mpi_cmp_abs:"0000000000000000123":"7b":1 - -MPI compare (abs) #66 positive with leading zero limb > positive -mpi_cmp_abs:"0000000000000000123":"7b":1 - -MPI compare (abs) #67 positive with leading zero limb == positive with leading zero limb -mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 - -MPI compare (abs) #68 positive with leading zero limb == positive with leading zero limb -mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 - -MPI compare (abs) #69 positive with leading zero limb < large positive -mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 - -MPI compare (abs) #70 positive with leading zero limb < large positive -mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 - -MPI compare (abs) #71 positive with leading zero limb > 0 (null) -mpi_cmp_abs:"0000000000000000123":"":1 - -MPI compare (abs) #72 positive with leading zero limb > 0 (1 limb) -mpi_cmp_abs:"0000000000000000123":"0":1 - -MPI compare (abs) #73 positive with leading zero limb > 0 (null) -mpi_cmp_abs:"0000000000000000123":"":1 - -MPI compare (abs) #74 positive with leading zero limb > 0 (1 limb) -mpi_cmp_abs:"0000000000000000123":"0":1 - -MPI compare (abs) #75 positive with leading zero limb > positive -mpi_cmp_abs:"0000000000000000123":"7b":1 - -MPI compare (abs) #76 positive with leading zero limb > positive -mpi_cmp_abs:"0000000000000000123":"7b":1 - -MPI compare (abs) #77 positive with leading zero limb == positive with leading zero limb -mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 - -MPI compare (abs) #78 positive with leading zero limb == positive with leading zero limb -mpi_cmp_abs:"0000000000000000123":"0000000000000000123":0 - -MPI compare (abs) #79 positive with leading zero limb < large positive -mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 - -MPI compare (abs) #80 positive with leading zero limb < large positive -mpi_cmp_abs:"0000000000000000123":"1230000000000000000":-1 - -MPI compare (abs) #81 large positive > 0 (null) -mpi_cmp_abs:"1230000000000000000":"":1 - -MPI compare (abs) #82 large positive > 0 (1 limb) -mpi_cmp_abs:"1230000000000000000":"0":1 - -MPI compare (abs) #83 large positive > 0 (null) -mpi_cmp_abs:"1230000000000000000":"":1 - -MPI compare (abs) #84 large positive > 0 (1 limb) -mpi_cmp_abs:"1230000000000000000":"0":1 - -MPI compare (abs) #85 large positive > positive -mpi_cmp_abs:"1230000000000000000":"7b":1 - -MPI compare (abs) #86 large positive > positive -mpi_cmp_abs:"1230000000000000000":"7b":1 - -MPI compare (abs) #87 large positive > positive with leading zero limb -mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 - -MPI compare (abs) #88 large positive > positive with leading zero limb -mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 - -MPI compare (abs) #89 large positive == large positive -mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 - -MPI compare (abs) #90 large positive == large positive -mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 - -MPI compare (abs) #91 large positive > 0 (null) -mpi_cmp_abs:"1230000000000000000":"":1 - -MPI compare (abs) #92 large positive > 0 (1 limb) -mpi_cmp_abs:"1230000000000000000":"0":1 - -MPI compare (abs) #93 large positive > 0 (null) -mpi_cmp_abs:"1230000000000000000":"":1 - -MPI compare (abs) #94 large positive > 0 (1 limb) -mpi_cmp_abs:"1230000000000000000":"0":1 - -MPI compare (abs) #95 large positive > positive -mpi_cmp_abs:"1230000000000000000":"7b":1 - -MPI compare (abs) #96 large positive > positive -mpi_cmp_abs:"1230000000000000000":"7b":1 - -MPI compare (abs) #97 large positive > positive with leading zero limb -mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 - -MPI compare (abs) #98 large positive > positive with leading zero limb -mpi_cmp_abs:"1230000000000000000":"0000000000000000123":1 - -MPI compare (abs) #99 large positive == large positive -mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 - -MPI compare (abs) #100 large positive == large positive -mpi_cmp_abs:"1230000000000000000":"1230000000000000000":0 - -MPI compare (abs) #101 positive < positive -mpi_cmp_abs:"2":"3":-1 - -MPI compare (abs) #102 positive == positive -mpi_cmp_abs:"2":"2":0 - -MPI compare (abs) #103 positive < positive -mpi_cmp_abs:"2b4":"2b5":-1 - -MPI compare (abs) #104 positive < positive -mpi_cmp_abs:"2b5":"2b6":-1 - -# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_core.generated.data b/tests/suites/test_suite_bignum_core.generated.data deleted file mode 100644 index 6cd83342d..000000000 --- a/tests/suites/test_suite_bignum_core.generated.data +++ /dev/null @@ -1,13499 +0,0 @@ -# Automatically generated by generate_bignum_tests.py. Do not edit! - -mpi_core_add_and_add_if #1 0 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0":"0":"0":0 - -mpi_core_add_and_add_if #2 0 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0":"0":"0":0 - -mpi_core_add_and_add_if #3 0 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000000":"00000001":"00000001":0 - -mpi_core_add_and_add_if #4 0 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000":"0000000000000001":"0000000000000001":0 - -mpi_core_add_and_add_if #5 0 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000000":"00000002":"00000002":0 - -mpi_core_add_and_add_if #6 0 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000":"0000000000000002":"0000000000000002":0 - -mpi_core_add_and_add_if #7 0 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000000":"00000003":"00000003":0 - -mpi_core_add_and_add_if #8 0 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000":"0000000000000003":"0000000000000003":0 - -mpi_core_add_and_add_if #9 0 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000000":"00000004":"00000004":0 - -mpi_core_add_and_add_if #10 0 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000":"0000000000000004":"0000000000000004":0 - -mpi_core_add_and_add_if #11 0 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000000":"00000038":"00000038":0 - -mpi_core_add_and_add_if #12 0 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000":"0000000000000038":"0000000000000038":0 - -mpi_core_add_and_add_if #13 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_add_and_add_if #14 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_add_and_add_if #15 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_add_and_add_if #16 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_add_and_add_if #17 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_add_and_add_if #18 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_add_and_add_if #19 0 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_add_and_add_if #20 0 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_add_and_add_if #21 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_add_and_add_if #22 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_add_and_add_if #23 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_add_and_add_if #24 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_add_and_add_if #25 0 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_add_and_add_if #26 0 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_add_and_add_if #27 1 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000000":"00000001":0 - -mpi_core_add_and_add_if #28 1 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000000":"0000000000000001":0 - -mpi_core_add_and_add_if #29 1 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000001":"00000002":0 - -mpi_core_add_and_add_if #30 1 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000001":"0000000000000002":0 - -mpi_core_add_and_add_if #31 1 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000002":"00000003":0 - -mpi_core_add_and_add_if #32 1 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000002":"0000000000000003":0 - -mpi_core_add_and_add_if #33 1 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000003":"00000004":0 - -mpi_core_add_and_add_if #34 1 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000003":"0000000000000004":0 - -mpi_core_add_and_add_if #35 1 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000004":"00000005":0 - -mpi_core_add_and_add_if #36 1 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000004":"0000000000000005":0 - -mpi_core_add_and_add_if #37 1 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000001":"00000038":"00000039":0 - -mpi_core_add_and_add_if #38 1 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000001":"0000000000000038":"0000000000000039":0 - -mpi_core_add_and_add_if #39 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 - -mpi_core_add_and_add_if #40 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 - -mpi_core_add_and_add_if #41 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 - -mpi_core_add_and_add_if #42 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 - -mpi_core_add_and_add_if #43 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 - -mpi_core_add_and_add_if #44 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 - -mpi_core_add_and_add_if #45 1 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 - -mpi_core_add_and_add_if #46 1 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 - -mpi_core_add_and_add_if #47 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 - -mpi_core_add_and_add_if #48 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 - -mpi_core_add_and_add_if #49 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 - -mpi_core_add_and_add_if #50 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 - -mpi_core_add_and_add_if #51 1 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 - -mpi_core_add_and_add_if #52 1 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 - -mpi_core_add_and_add_if #53 2 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000000":"00000002":0 - -mpi_core_add_and_add_if #54 2 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000000":"0000000000000002":0 - -mpi_core_add_and_add_if #55 2 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000001":"00000003":0 - -mpi_core_add_and_add_if #56 2 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000001":"0000000000000003":0 - -mpi_core_add_and_add_if #57 2 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000002":"00000004":0 - -mpi_core_add_and_add_if #58 2 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000002":"0000000000000004":0 - -mpi_core_add_and_add_if #59 2 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000003":"00000005":0 - -mpi_core_add_and_add_if #60 2 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000003":"0000000000000005":0 - -mpi_core_add_and_add_if #61 2 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000004":"00000006":0 - -mpi_core_add_and_add_if #62 2 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000004":"0000000000000006":0 - -mpi_core_add_and_add_if #63 2 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000002":"00000038":"0000003a":0 - -mpi_core_add_and_add_if #64 2 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000002":"0000000000000038":"000000000000003a":0 - -mpi_core_add_and_add_if #65 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 - -mpi_core_add_and_add_if #66 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 - -mpi_core_add_and_add_if #67 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 - -mpi_core_add_and_add_if #68 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 - -mpi_core_add_and_add_if #69 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 - -mpi_core_add_and_add_if #70 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 - -mpi_core_add_and_add_if #71 2 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 - -mpi_core_add_and_add_if #72 2 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 - -mpi_core_add_and_add_if #73 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 - -mpi_core_add_and_add_if #74 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 - -mpi_core_add_and_add_if #75 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 - -mpi_core_add_and_add_if #76 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 - -mpi_core_add_and_add_if #77 2 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 - -mpi_core_add_and_add_if #78 2 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 - -mpi_core_add_and_add_if #79 3 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000000":"00000003":0 - -mpi_core_add_and_add_if #80 3 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000000":"0000000000000003":0 - -mpi_core_add_and_add_if #81 3 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000001":"00000004":0 - -mpi_core_add_and_add_if #82 3 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000001":"0000000000000004":0 - -mpi_core_add_and_add_if #83 3 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000002":"00000005":0 - -mpi_core_add_and_add_if #84 3 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000002":"0000000000000005":0 - -mpi_core_add_and_add_if #85 3 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000003":"00000006":0 - -mpi_core_add_and_add_if #86 3 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000003":"0000000000000006":0 - -mpi_core_add_and_add_if #87 3 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000004":"00000007":0 - -mpi_core_add_and_add_if #88 3 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000004":"0000000000000007":0 - -mpi_core_add_and_add_if #89 3 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000003":"00000038":"0000003b":0 - -mpi_core_add_and_add_if #90 3 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000003":"0000000000000038":"000000000000003b":0 - -mpi_core_add_and_add_if #91 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 - -mpi_core_add_and_add_if #92 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 - -mpi_core_add_and_add_if #93 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 - -mpi_core_add_and_add_if #94 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 - -mpi_core_add_and_add_if #95 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 - -mpi_core_add_and_add_if #96 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 - -mpi_core_add_and_add_if #97 3 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 - -mpi_core_add_and_add_if #98 3 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 - -mpi_core_add_and_add_if #99 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 - -mpi_core_add_and_add_if #100 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 - -mpi_core_add_and_add_if #101 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 - -mpi_core_add_and_add_if #102 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 - -mpi_core_add_and_add_if #103 3 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 - -mpi_core_add_and_add_if #104 3 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 - -mpi_core_add_and_add_if #105 4 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000000":"00000004":0 - -mpi_core_add_and_add_if #106 4 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000000":"0000000000000004":0 - -mpi_core_add_and_add_if #107 4 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000001":"00000005":0 - -mpi_core_add_and_add_if #108 4 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000001":"0000000000000005":0 - -mpi_core_add_and_add_if #109 4 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000002":"00000006":0 - -mpi_core_add_and_add_if #110 4 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000002":"0000000000000006":0 - -mpi_core_add_and_add_if #111 4 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000003":"00000007":0 - -mpi_core_add_and_add_if #112 4 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000003":"0000000000000007":0 - -mpi_core_add_and_add_if #113 4 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000004":"00000008":0 - -mpi_core_add_and_add_if #114 4 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000004":"0000000000000008":0 - -mpi_core_add_and_add_if #115 4 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000004":"00000038":"0000003c":0 - -mpi_core_add_and_add_if #116 4 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000004":"0000000000000038":"000000000000003c":0 - -mpi_core_add_and_add_if #117 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 - -mpi_core_add_and_add_if #118 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 - -mpi_core_add_and_add_if #119 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 - -mpi_core_add_and_add_if #120 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 - -mpi_core_add_and_add_if #121 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 - -mpi_core_add_and_add_if #122 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 - -mpi_core_add_and_add_if #123 4 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 - -mpi_core_add_and_add_if #124 4 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 - -mpi_core_add_and_add_if #125 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 - -mpi_core_add_and_add_if #126 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 - -mpi_core_add_and_add_if #127 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 - -mpi_core_add_and_add_if #128 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 - -mpi_core_add_and_add_if #129 4 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 - -mpi_core_add_and_add_if #130 4 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 - -mpi_core_add_and_add_if #131 38 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000000":"00000038":0 - -mpi_core_add_and_add_if #132 38 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000000":"0000000000000038":0 - -mpi_core_add_and_add_if #133 38 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000001":"00000039":0 - -mpi_core_add_and_add_if #134 38 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000001":"0000000000000039":0 - -mpi_core_add_and_add_if #135 38 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000002":"0000003a":0 - -mpi_core_add_and_add_if #136 38 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000002":"000000000000003a":0 - -mpi_core_add_and_add_if #137 38 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000003":"0000003b":0 - -mpi_core_add_and_add_if #138 38 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000003":"000000000000003b":0 - -mpi_core_add_and_add_if #139 38 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000004":"0000003c":0 - -mpi_core_add_and_add_if #140 38 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000004":"000000000000003c":0 - -mpi_core_add_and_add_if #141 38 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"00000038":"00000038":"00000070":0 - -mpi_core_add_and_add_if #142 38 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000038":"0000000000000038":"0000000000000070":0 - -mpi_core_add_and_add_if #143 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 - -mpi_core_add_and_add_if #144 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 - -mpi_core_add_and_add_if #145 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 - -mpi_core_add_and_add_if #146 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 - -mpi_core_add_and_add_if #147 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 - -mpi_core_add_and_add_if #148 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 - -mpi_core_add_and_add_if #149 38 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 - -mpi_core_add_and_add_if #150 38 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 - -mpi_core_add_and_add_if #151 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 - -mpi_core_add_and_add_if #152 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 - -mpi_core_add_and_add_if #153 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 - -mpi_core_add_and_add_if #154 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 - -mpi_core_add_and_add_if #155 38 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 - -mpi_core_add_and_add_if #156 38 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 - -mpi_core_add_and_add_if #157 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_add_and_add_if #158 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_add_and_add_if #159 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 - -mpi_core_add_and_add_if #160 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c":0 - -mpi_core_add_and_add_if #161 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 - -mpi_core_add_and_add_if #162 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d":0 - -mpi_core_add_and_add_if #163 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 - -mpi_core_add_and_add_if #164 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e":0 - -mpi_core_add_and_add_if #165 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 - -mpi_core_add_and_add_if #166 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f":0 - -mpi_core_add_and_add_if #167 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 - -mpi_core_add_and_add_if #168 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793":0 - -mpi_core_add_and_add_if #169 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6":1 - -mpi_core_add_and_add_if #170 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6":1 - -mpi_core_add_and_add_if #171 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 - -mpi_core_add_and_add_if #172 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 - -mpi_core_add_and_add_if #173 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 - -mpi_core_add_and_add_if #174 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 - -mpi_core_add_and_add_if #175 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 - -mpi_core_add_and_add_if #176 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 - -mpi_core_add_and_add_if #177 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 - -mpi_core_add_and_add_if #178 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 - -mpi_core_add_and_add_if #179 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 - -mpi_core_add_and_add_if #180 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 - -mpi_core_add_and_add_if #181 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 - -mpi_core_add_and_add_if #182 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 - -mpi_core_add_and_add_if #183 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_add_and_add_if #184 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_add_and_add_if #185 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 - -mpi_core_add_and_add_if #186 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974":0 - -mpi_core_add_and_add_if #187 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 - -mpi_core_add_and_add_if #188 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975":0 - -mpi_core_add_and_add_if #189 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 - -mpi_core_add_and_add_if #190 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976":0 - -mpi_core_add_and_add_if #191 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 - -mpi_core_add_and_add_if #192 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977":0 - -mpi_core_add_and_add_if #193 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 - -mpi_core_add_and_add_if #194 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab":0 - -mpi_core_add_and_add_if #195 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 - -mpi_core_add_and_add_if #196 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce":0 - -mpi_core_add_and_add_if #197 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6":0 - -mpi_core_add_and_add_if #198 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6":0 - -mpi_core_add_and_add_if #199 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 - -mpi_core_add_and_add_if #200 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 - -mpi_core_add_and_add_if #201 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 - -mpi_core_add_and_add_if #202 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 - -mpi_core_add_and_add_if #203 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 - -mpi_core_add_and_add_if #204 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 - -mpi_core_add_and_add_if #205 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 - -mpi_core_add_and_add_if #206 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 - -mpi_core_add_and_add_if #207 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 - -mpi_core_add_and_add_if #208 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 - -mpi_core_add_and_add_if #209 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_add_and_add_if #210 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_add_and_add_if #211 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 - -mpi_core_add_and_add_if #212 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde":0 - -mpi_core_add_and_add_if #213 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 - -mpi_core_add_and_add_if #214 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf":0 - -mpi_core_add_and_add_if #215 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 - -mpi_core_add_and_add_if #216 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0":0 - -mpi_core_add_and_add_if #217 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 - -mpi_core_add_and_add_if #218 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1":0 - -mpi_core_add_and_add_if #219 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 - -mpi_core_add_and_add_if #220 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15":0 - -mpi_core_add_and_add_if #221 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 - -mpi_core_add_and_add_if #222 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0d94aa623e0ee7bae4e1048649e3045421226134d49e338":1 - -mpi_core_add_and_add_if #223 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 - -mpi_core_add_and_add_if #224 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550":0 - -mpi_core_add_and_add_if #225 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e3045ff78d10ef056922089abc68248b8dc866e2b7457ba":1 - -mpi_core_add_and_add_if #226 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e3045ff78d10ef056922089abc68248b8dc866e2b7457ba":1 - -mpi_core_add_and_add_if #227 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 - -mpi_core_add_and_add_if #228 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 - -mpi_core_add_and_add_if #229 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 - -mpi_core_add_and_add_if #230 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 - -mpi_core_add_and_add_if #231 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 - -mpi_core_add_and_add_if #232 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 - -mpi_core_add_and_add_if #233 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 - -mpi_core_add_and_add_if #234 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 - -mpi_core_add_and_add_if #235 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_add_and_add_if #236 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_add_and_add_if #237 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 - -mpi_core_add_and_add_if #238 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5224":0 - -mpi_core_add_and_add_if #239 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 - -mpi_core_add_and_add_if #240 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5225":0 - -mpi_core_add_and_add_if #241 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 - -mpi_core_add_and_add_if #242 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5226":0 - -mpi_core_add_and_add_if #243 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 - -mpi_core_add_and_add_if #244 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5227":0 - -mpi_core_add_and_add_if #245 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 - -mpi_core_add_and_add_if #246 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad525b":0 - -mpi_core_add_and_add_if #247 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 - -mpi_core_add_and_add_if #248 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fbc8b2c62a3927c6094d64e8f71e51ba36d577c492e3d097e":0 - -mpi_core_add_and_add_if #249 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 - -mpi_core_add_and_add_if #250 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75f023c1e8f4a943bfceb2cfe54d5cefefe64a85506eb6bfb96":0 - -mpi_core_add_and_add_if #251 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 - -mpi_core_add_and_add_if #252 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75fb9e227bbf8829cd53d1a5ed0b90d6da6e421dca40c677e00":0 - -mpi_core_add_and_add_if #253 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"92774fd8e9b2de823740117b6f1cc7fe2376bbe8d4a3c2d6593a2adf1c9c3157ebc0a59603e8fa1a324b4efec1322aefc251f6dea5e6944f2a14b29755ba7b00af57d64459e79952c5b62d57ef3e55b4b7a53565ea24897e52bdff3ed55742605df889362517cebdd594097878342aba23a29d17c65459050f6732d9ed5aa446":1 - -mpi_core_add_and_add_if #254 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"92774fd8e9b2de823740117b6f1cc7fe2376bbe8d4a3c2d6593a2adf1c9c3157ebc0a59603e8fa1a324b4efec1322aefc251f6dea5e6944f2a14b29755ba7b00af57d64459e79952c5b62d57ef3e55b4b7a53565ea24897e52bdff3ed55742605df889362517cebdd594097878342aba23a29d17c65459050f6732d9ed5aa446":1 - -mpi_core_add_and_add_if #255 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 - -mpi_core_add_and_add_if #256 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 - -mpi_core_add_and_add_if #257 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 - -mpi_core_add_and_add_if #258 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 - -mpi_core_add_and_add_if #259 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 - -mpi_core_add_and_add_if #260 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 - -mpi_core_add_and_add_if #261 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_add_and_add_if #262 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_add_and_add_if #263 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 - -mpi_core_add_and_add_if #264 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8":0 - -mpi_core_add_and_add_if #265 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 - -mpi_core_add_and_add_if #266 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9":0 - -mpi_core_add_and_add_if #267 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 - -mpi_core_add_and_add_if #268 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da":0 - -mpi_core_add_and_add_if #269 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 - -mpi_core_add_and_add_if #270 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db":0 - -mpi_core_add_and_add_if #271 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 - -mpi_core_add_and_add_if #272 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f":0 - -mpi_core_add_and_add_if #273 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 - -mpi_core_add_and_add_if #274 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32":0 - -mpi_core_add_and_add_if #275 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 - -mpi_core_add_and_add_if #276 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a":0 - -mpi_core_add_and_add_if #277 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 - -mpi_core_add_and_add_if #278 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4":0 - -mpi_core_add_and_add_if #279 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 - -mpi_core_add_and_add_if #280 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cfcbfa5662487a4b0d05d18bee71564a54bb6bd48580b57a004af23aba81d6b6bd7dba5e48c92987755eaa32e9fcf1e6665defc68bc39313a41af3126ebeefd9551e2f74f9de3ea8acef9e16e29e44e3e87834195be0eff52e71bcb27bb2c361460d13ee3a382ab96561caffa17e2806ca72fa58fd934349d5589369331af7fa":0 - -mpi_core_add_and_add_if #281 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae":0 - -mpi_core_add_and_add_if #282 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae":0 - -mpi_core_add_and_add_if #283 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 - -mpi_core_add_and_add_if #284 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 - -mpi_core_add_and_add_if #285 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 - -mpi_core_add_and_add_if #286 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 - -mpi_core_add_and_add_if #287 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_add_and_add_if #288 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_add_and_add_if #289 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 - -mpi_core_add_and_add_if #290 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7":0 - -mpi_core_add_and_add_if #291 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 - -mpi_core_add_and_add_if #292 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8":0 - -mpi_core_add_and_add_if #293 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 - -mpi_core_add_and_add_if #294 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9":0 - -mpi_core_add_and_add_if #295 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 - -mpi_core_add_and_add_if #296 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda":0 - -mpi_core_add_and_add_if #297 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 - -mpi_core_add_and_add_if #298 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e":0 - -mpi_core_add_and_add_if #299 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 - -mpi_core_add_and_add_if #300 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631":0 - -mpi_core_add_and_add_if #301 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 - -mpi_core_add_and_add_if #302 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849":0 - -mpi_core_add_and_add_if #303 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 - -mpi_core_add_and_add_if #304 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3":0 - -mpi_core_add_and_add_if #305 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 - -mpi_core_add_and_add_if #306 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ddfd047d7feb1c69e7c1d746879470c454342055b86daca36851badfb79a674f696d7705704d52d762ed5d1af9eb69754da29f4dbceba858c6fe126f2d01eea31b9093b5060d3783b2aabc2fd97eb5d41047629b8798e634741bb00a53575a6f30d4de9d5f68cf05c1f294b2c84c24e70305cc98c0ba8b5259145f3de5ee80f9":0 - -mpi_core_add_and_add_if #307 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 - -mpi_core_add_and_add_if #308 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad":0 - -mpi_core_add_and_add_if #309 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac":0 - -mpi_core_add_and_add_if #310 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac":0 - -mpi_core_add_and_add_if #311 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 - -mpi_core_add_and_add_if #312 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 - -mpi_core_add_and_add_if #313 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_add_and_add_if #314 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_add_and_add_if #315 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 - -mpi_core_add_and_add_if #316 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aae":0 - -mpi_core_add_and_add_if #317 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 - -mpi_core_add_and_add_if #318 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaf":0 - -mpi_core_add_and_add_if #319 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 - -mpi_core_add_and_add_if #320 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab0":0 - -mpi_core_add_and_add_if #321 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 - -mpi_core_add_and_add_if #322 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ab1":0 - -mpi_core_add_and_add_if #323 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 - -mpi_core_add_and_add_if #324 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341ae5":0 - -mpi_core_add_and_add_if #325 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 - -mpi_core_add_and_add_if #326 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2817526a8534628d48c5a504075d3bb3d189a80e900bc3d208":0 - -mpi_core_add_and_add_if #327 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 - -mpi_core_add_and_add_if #328 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff275d035cb1db644ce51bfbb3ccc125972c80f8e74dc8f2c420":0 - -mpi_core_add_and_add_if #329 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 - -mpi_core_add_and_add_if #330 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2814a965de8952adbd6de91448a46405d500726eeae9ee468a":0 - -mpi_core_add_and_add_if #331 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 - -mpi_core_add_and_add_if #332 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0b817e8bb8d3c7634df4e430cb7244510be03d97d5898e6c53429c0fd44875592fd33aade91d896f85a9a3fbb2316cb96d16c5692674f1f45f80bf8c283f1130e5220407be08b058da22afb2fc9e6039db65549593bdcf7384e405b9fdf4d0592dcc204410e686305b479b09043ba25471528fb1aaf1332bb7c520cae16cd0":1 - -mpi_core_add_and_add_if #333 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 - -mpi_core_add_and_add_if #334 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f8602bfc044e6f903913b4f4b02000908250902948b27c32136409f7adb9edd42aece802f2c94cf6b29904d8247cf8635d790fad4f0373b66e65c13aa52cb3e9d6ab7b34a7b4ae064013936ea65c8d8f6aae6408075024464f38a179605975d1414256d859314281c0290922324e38eefb41afd0e8e9db77f1a925b010a1c084":0 - -mpi_core_add_and_add_if #335 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 - -mpi_core_add_and_add_if #336 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0691362321f111af13cfbaaf49431b0a81c944aa7b9f735b7b6ad29caad27e6cd6dca4aa1a4d7646a027b7c0346b6ff244bdbf34802b88fb9148e097636fb2b39d1ddf74b3e3a6e145ceb1879d3cfe7f927d928a33081a8594e294d137fe0cdf2c0a21877e61e6ce1cb9d2d5591c35cf33d48210ac1123807564f184c3754983":1 - -mpi_core_add_and_add_if #337 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e39fb3242dbec90c8f5bd84cf27a1c8a7ea104925b0750467f6c5a59030c5f92c69f00df57e940f8acc00449363237e9b08836ac2c665594beaa4ee7c2960321b2726dc3b594780debfe180776bae70bbc1195434102f220944bc8cc9ea4a74054630f0a6309fe4e8b2285bd99d44c8a854008079d01896148085767a868355a":1 - -mpi_core_add_and_add_if #338 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad + f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_add_and_add_if:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e39fb3242dbec90c8f5bd84cf27a1c8a7ea104925b0750467f6c5a59030c5f92c69f00df57e940f8acc00449363237e9b08836ac2c665594beaa4ee7c2960321b2726dc3b594780debfe180776bae70bbc1195434102f220944bc8cc9ea4a74054630f0a6309fe4e8b2285bd99d44c8a854008079d01896148085767a868355a":1 - -Constant time MPI table lookup - One limb MPI with 0 bit window -mpi_core_ct_uint_table_lookup:32:0 - -Constant time MPI table lookup - One limb MPI with 1 bit window -mpi_core_ct_uint_table_lookup:32:1 - -Constant time MPI table lookup - One limb MPI with 2 bit window -mpi_core_ct_uint_table_lookup:32:2 - -Constant time MPI table lookup - One limb MPI with 3 bit window -mpi_core_ct_uint_table_lookup:32:3 - -Constant time MPI table lookup - One limb MPI with 4 bit window -mpi_core_ct_uint_table_lookup:32:4 - -Constant time MPI table lookup - One limb MPI with 5 bit window -mpi_core_ct_uint_table_lookup:32:5 - -Constant time MPI table lookup - One limb MPI with 6 bit window -mpi_core_ct_uint_table_lookup:32:6 - -Constant time MPI table lookup - Smallest curve sized MPI with 0 bit window -mpi_core_ct_uint_table_lookup:192:0 - -Constant time MPI table lookup - Smallest curve sized MPI with 1 bit window -mpi_core_ct_uint_table_lookup:192:1 - -Constant time MPI table lookup - Smallest curve sized MPI with 2 bit window -mpi_core_ct_uint_table_lookup:192:2 - -Constant time MPI table lookup - Smallest curve sized MPI with 3 bit window -mpi_core_ct_uint_table_lookup:192:3 - -Constant time MPI table lookup - Smallest curve sized MPI with 4 bit window -mpi_core_ct_uint_table_lookup:192:4 - -Constant time MPI table lookup - Smallest curve sized MPI with 5 bit window -mpi_core_ct_uint_table_lookup:192:5 - -Constant time MPI table lookup - Smallest curve sized MPI with 6 bit window -mpi_core_ct_uint_table_lookup:192:6 - -Constant time MPI table lookup - Largest curve sized MPI with 0 bit window -mpi_core_ct_uint_table_lookup:512:0 - -Constant time MPI table lookup - Largest curve sized MPI with 1 bit window -mpi_core_ct_uint_table_lookup:512:1 - -Constant time MPI table lookup - Largest curve sized MPI with 2 bit window -mpi_core_ct_uint_table_lookup:512:2 - -Constant time MPI table lookup - Largest curve sized MPI with 3 bit window -mpi_core_ct_uint_table_lookup:512:3 - -Constant time MPI table lookup - Largest curve sized MPI with 4 bit window -mpi_core_ct_uint_table_lookup:512:4 - -Constant time MPI table lookup - Largest curve sized MPI with 5 bit window -mpi_core_ct_uint_table_lookup:512:5 - -Constant time MPI table lookup - Largest curve sized MPI with 6 bit window -mpi_core_ct_uint_table_lookup:512:6 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 0 bit window -mpi_core_ct_uint_table_lookup:2048:0 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 1 bit window -mpi_core_ct_uint_table_lookup:2048:1 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 2 bit window -mpi_core_ct_uint_table_lookup:2048:2 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 3 bit window -mpi_core_ct_uint_table_lookup:2048:3 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 4 bit window -mpi_core_ct_uint_table_lookup:2048:4 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 5 bit window -mpi_core_ct_uint_table_lookup:2048:5 - -Constant time MPI table lookup - Small FF/RSA sized MPI with 6 bit window -mpi_core_ct_uint_table_lookup:2048:6 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 0 bit window -mpi_core_ct_uint_table_lookup:4096:0 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 1 bit window -mpi_core_ct_uint_table_lookup:4096:1 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 2 bit window -mpi_core_ct_uint_table_lookup:4096:2 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 3 bit window -mpi_core_ct_uint_table_lookup:4096:3 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 4 bit window -mpi_core_ct_uint_table_lookup:4096:4 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 5 bit window -mpi_core_ct_uint_table_lookup:4096:5 - -Constant time MPI table lookup - Large FF/RSA sized MPI with 6 bit window -mpi_core_ct_uint_table_lookup:4096:6 - -Core modular exponentiation (Mongtomery form only) #1 0 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #2 0 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #3 0 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #4 0 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #5 0 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000004":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #6 0 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"0000000000000038":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #7 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #8 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #9 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #10 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #11 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #12 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #13 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #14 1 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #15 1 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000001":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #16 1 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000002":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #17 1 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000003":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #18 1 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000004":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #19 1 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"0000000000000038":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #20 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #21 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #22 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #23 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #24 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #25 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #26 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000024":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #27 2 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #28 2 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000001":"0000000000000048" - -Core modular exponentiation (Mongtomery form only) #29 2 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000002":"000000000000003d" - -Core modular exponentiation (Mongtomery form only) #30 2 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000003":"0000000000000027" - -Core modular exponentiation (Mongtomery form only) #31 2 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000004":"000000000000004e" - -Core modular exponentiation (Mongtomery form only) #32 2 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"0000000000000038":"000000000000001f" - -Core modular exponentiation (Mongtomery form only) #33 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003e" - -Core modular exponentiation (Mongtomery form only) #34 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000002a" - -Core modular exponentiation (Mongtomery form only) #35 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000016" - -Core modular exponentiation (Mongtomery form only) #36 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000d" - -Core modular exponentiation (Mongtomery form only) #37 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000027" - -Core modular exponentiation (Mongtomery form only) #38 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000046" - -Core modular exponentiation (Mongtomery form only) #39 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000048":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000008" - -Core modular exponentiation (Mongtomery form only) #40 3 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #41 3 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000001":"0000000000000019" - -Core modular exponentiation (Mongtomery form only) #42 3 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000002":"000000000000004b" - -Core modular exponentiation (Mongtomery form only) #43 3 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000003":"000000000000003b" - -Core modular exponentiation (Mongtomery form only) #44 3 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000004":"000000000000000b" - -Core modular exponentiation (Mongtomery form only) #45 3 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"0000000000000038":"000000000000001a" - -Core modular exponentiation (Mongtomery form only) #46 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000004e" - -Core modular exponentiation (Mongtomery form only) #47 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000044" - -Core modular exponentiation (Mongtomery form only) #48 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000004b" - -Core modular exponentiation (Mongtomery form only) #49 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000031" - -Core modular exponentiation (Mongtomery form only) #50 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000003b" - -Core modular exponentiation (Mongtomery form only) #51 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000031" - -Core modular exponentiation (Mongtomery form only) #52 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000019":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000001e" - -Core modular exponentiation (Mongtomery form only) #53 4 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #54 4 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000001":"000000000000003d" - -Core modular exponentiation (Mongtomery form only) #55 4 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000002":"000000000000004e" - -Core modular exponentiation (Mongtomery form only) #56 4 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000003":"000000000000003f" - -Core modular exponentiation (Mongtomery form only) #57 4 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000004":"0000000000000003" - -Core modular exponentiation (Mongtomery form only) #58 4 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"0000000000000038":"000000000000001d" - -Core modular exponentiation (Mongtomery form only) #59 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000021" - -Core modular exponentiation (Mongtomery form only) #60 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000031" - -Core modular exponentiation (Mongtomery form only) #61 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000004e" - -Core modular exponentiation (Mongtomery form only) #62 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000007" - -Core modular exponentiation (Mongtomery form only) #63 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000003f" - -Core modular exponentiation (Mongtomery form only) #64 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000007" - -Core modular exponentiation (Mongtomery form only) #65 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"000000000000003d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000b" - -Core modular exponentiation (Mongtomery form only) #66 38 ^ 0 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000000":"0000000000000024" - -Core modular exponentiation (Mongtomery form only) #67 38 ^ 1 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000001":"0000000000000018" - -Core modular exponentiation (Mongtomery form only) #68 38 ^ 2 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000002":"0000000000000010" - -Core modular exponentiation (Mongtomery form only) #69 38 ^ 3 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000003":"0000000000000042" - -Core modular exponentiation (Mongtomery form only) #70 38 ^ 4 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000004":"000000000000002c" - -Core modular exponentiation (Mongtomery form only) #71 38 ^ 38 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"0000000000000038":"000000000000000b" - -Core modular exponentiation (Mongtomery form only) #72 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000023" - -Core modular exponentiation (Mongtomery form only) #73 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000020" - -Core modular exponentiation (Mongtomery form only) #74 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000043" - -Core modular exponentiation (Mongtomery form only) #75 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000004f" - -Core modular exponentiation (Mongtomery form only) #76 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000042" - -Core modular exponentiation (Mongtomery form only) #77 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000004" - -Core modular exponentiation (Mongtomery form only) #78 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53 -mpi_core_exp_mod:"0000000000000053":"0000000000000018":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000004c" - -Core modular exponentiation (Mongtomery form only) #170 0 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #171 0 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #172 0 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #173 0 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #174 0 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #175 0 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"0000000000000038":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #176 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #177 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #178 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #179 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #180 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #181 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #182 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000" - -Core modular exponentiation (Mongtomery form only) #183 1 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #184 1 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000001":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #185 1 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000002":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #186 1 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000003":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #187 1 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000004":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #188 1 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"0000000000000038":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #189 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #190 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #191 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #192 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #193 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #194 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #195 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000034":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #196 2 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #197 2 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000001":"0000000000000023" - -Core modular exponentiation (Mongtomery form only) #198 2 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000002":"0000000000000001" - -Core modular exponentiation (Mongtomery form only) #199 2 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000003":"0000000000000002" - -Core modular exponentiation (Mongtomery form only) #200 2 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000004":"0000000000000004" - -Core modular exponentiation (Mongtomery form only) #201 2 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"0000000000000038":"000000000000003a" - -Core modular exponentiation (Mongtomery form only) #202 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003e" - -Core modular exponentiation (Mongtomery form only) #203 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000001d" - -Core modular exponentiation (Mongtomery form only) #204 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000001d" - -Core modular exponentiation (Mongtomery form only) #205 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000003b" - -Core modular exponentiation (Mongtomery form only) #206 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000008" - -Core modular exponentiation (Mongtomery form only) #207 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000d" - -Core modular exponentiation (Mongtomery form only) #208 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000023":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000002f" - -Core modular exponentiation (Mongtomery form only) #209 3 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #210 3 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000001":"0000000000000012" - -Core modular exponentiation (Mongtomery form only) #211 3 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000002":"0000000000000036" - -Core modular exponentiation (Mongtomery form only) #212 3 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000003":"0000000000000018" - -Core modular exponentiation (Mongtomery form only) #213 3 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000004":"0000000000000003" - -Core modular exponentiation (Mongtomery form only) #214 3 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"0000000000000038":"0000000000000012" - -Core modular exponentiation (Mongtomery form only) #215 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000001b" - -Core modular exponentiation (Mongtomery form only) #216 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000006" - -Core modular exponentiation (Mongtomery form only) #217 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000006" - -Core modular exponentiation (Mongtomery form only) #218 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000027" - -Core modular exponentiation (Mongtomery form only) #219 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000009" - -Core modular exponentiation (Mongtomery form only) #220 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000027" - -Core modular exponentiation (Mongtomery form only) #221 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000012":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000036" - -Core modular exponentiation (Mongtomery form only) #222 4 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #223 4 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000001" - -Core modular exponentiation (Mongtomery form only) #224 4 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000004" - -Core modular exponentiation (Mongtomery form only) #225 4 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000010" - -Core modular exponentiation (Mongtomery form only) #226 4 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000040" - -Core modular exponentiation (Mongtomery form only) #227 4 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"0000000000000038":"0000000000000001" - -Core modular exponentiation (Mongtomery form only) #228 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000003a" - -Core modular exponentiation (Mongtomery form only) #229 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #230 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #231 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000037" - -Core modular exponentiation (Mongtomery form only) #232 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000031" - -Core modular exponentiation (Mongtomery form only) #233 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000037" - -Core modular exponentiation (Mongtomery form only) #234 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"0000000000000001":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000004" - -Core modular exponentiation (Mongtomery form only) #235 38 ^ 0 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000000":"0000000000000034" - -Core modular exponentiation (Mongtomery form only) #236 38 ^ 1 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000001":"000000000000000e" - -Core modular exponentiation (Mongtomery form only) #237 38 ^ 2 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000002":"0000000000000019" - -Core modular exponentiation (Mongtomery form only) #238 38 ^ 3 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000003":"0000000000000014" - -Core modular exponentiation (Mongtomery form only) #239 38 ^ 4 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000004":"0000000000000010" - -Core modular exponentiation (Mongtomery form only) #240 38 ^ 38 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"0000000000000038":"0000000000000037" - -Core modular exponentiation (Mongtomery form only) #241 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000038" - -Core modular exponentiation (Mongtomery form only) #242 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000011" - -Core modular exponentiation (Mongtomery form only) #243 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000011" - -Core modular exponentiation (Mongtomery form only) #244 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000005" - -Core modular exponentiation (Mongtomery form only) #245 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000044" - -Core modular exponentiation (Mongtomery form only) #246 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000040" - -Core modular exponentiation (Mongtomery form only) #247 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 45 -mpi_core_exp_mod:"0000000000000045":"000000000000000e":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000002c" - -Core modular exponentiation (Mongtomery form only) #339 0 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #340 0 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #341 0 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #342 0 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #343 0 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #344 0 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #345 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #346 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #347 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #348 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #349 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #350 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #351 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #352 1 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #353 1 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #354 1 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000002":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #355 1 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000003":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #356 1 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000004":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #357 1 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"000000000000000000000000000000000000000000000038":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #358 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #359 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #360 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #361 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #362 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #363 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #364 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #365 2 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #366 2 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000001":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" - -Core modular exponentiation (Mongtomery form only) #367 2 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000002":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" - -Core modular exponentiation (Mongtomery form only) #368 2 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000003":"a0359b265cc460e064d2ffdffb6d97d7ed3d06420bf28dcd" - -Core modular exponentiation (Mongtomery form only) #369 2 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000004":"6eaa0ea652105abd46a0ffbc6820408ef4d629a7e055643f" - -Core modular exponentiation (Mongtomery form only) #370 2 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"000000000000000000000000000000000000000000000038":"62015328f2ca428af48be3c3fcd2f5d8ec5e4455d7eafb29" - -Core modular exponentiation (Mongtomery form only) #371 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" - -Core modular exponentiation (Mongtomery form only) #372 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"736abac95d6913b563ab6ff9a569e4abc9aa12e85a544fc1" - -Core modular exponentiation (Mongtomery form only) #373 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"282c8509e8b0a486b3c4e12271eadfdfe1809ded8d2795d7" - -Core modular exponentiation (Mongtomery form only) #374 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0175241247dcdbbf89f446579973575b638b58b7f2e3e367" - -Core modular exponentiation (Mongtomery form only) #375 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2e65c6de86c5c97cd8d871ba5f6525316fe2c4573f80300" - -Core modular exponentiation (Mongtomery form only) #376 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"142557251841691ee543b7f389e21395a4e58aecdb2ec4bb" - -Core modular exponentiation (Mongtomery form only) #377 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"89ebe4c06108cfff8af5bfa1ae74a016eb2a47fea953dc1d" - -Core modular exponentiation (Mongtomery form only) #378 3 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #379 3 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000001":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" - -Core modular exponentiation (Mongtomery form only) #380 3 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000002":"ce74737ff54bf9dce1cdffdc6cb2a8b707992365d462d672" - -Core modular exponentiation (Mongtomery form only) #381 3 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000003":"c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a0" - -Core modular exponentiation (Mongtomery form only) #382 3 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000004":"b40ed24c63e890a7d815fea35c707568174327b2bafbcf2a" - -Core modular exponentiation (Mongtomery form only) #383 3 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"000000000000000000000000000000000000000000000038":"8813b3fbe64484b1bce761cc58c440081dd65c0e2fce3a62" - -Core modular exponentiation (Mongtomery form only) #384 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" - -Core modular exponentiation (Mongtomery form only) #385 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cd7adadf6ded8b4750d7547e3bfee9dd6ab336d05bcc1bea" - -Core modular exponentiation (Mongtomery form only) #386 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"455d2f52a5208242666bd83d75127ce619e2f3153a75c4f3" - -Core modular exponentiation (Mongtomery form only) #387 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aec48a75180e3bcf1586bfb806a41599c701bb0a13734137" - -Core modular exponentiation (Mongtomery form only) #388 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"48aec5edce9dbb93307c9f1b43cc1c7ea4f5f7034a91be1e" - -Core modular exponentiation (Mongtomery form only) #389 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"6731cabcb7db4086080d1c1d76d93dbc4b1604d343c7f6d7" - -Core modular exponentiation (Mongtomery form only) #390 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"26db13a77ba51e3a29249c1d83f74f798547b71391c182cd" - -Core modular exponentiation (Mongtomery form only) #391 4 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #392 4 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000001":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" - -Core modular exponentiation (Mongtomery form only) #393 4 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000002":"6eaa0ea652105abd46a0ffbc6820408ef4d629a7e055643f" - -Core modular exponentiation (Mongtomery form only) #394 4 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000003":"1725eb4c79509cee1479feea830b23fa0810e0e712362246" - -Core modular exponentiation (Mongtomery form only) #395 4 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000004":"5c97ad31e54273b851e7fbaa0c2c8fe82043839c48d88918" - -Core modular exponentiation (Mongtomery form only) #396 4 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"000000000000000000000000000000000000000000000038":"7e3bde47fedc2e1cc1be77ae2fc87640579e1f338f8767c6" - -Core modular exponentiation (Mongtomery form only) #397 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" - -Core modular exponentiation (Mongtomery form only) #398 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"13f157672ac702d88612609658e50fe336390a368de63811" - -Core modular exponentiation (Mongtomery form only) #399 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"7bd536293aa0a337596886cf1e1503512973a6b3cafbf599" - -Core modular exponentiation (Mongtomery form only) #400 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"80b42a0fbce2bcaf13c9710a13de25543fd311ed02a8247a" - -Core modular exponentiation (Mongtomery form only) #401 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2fb1779eef2fb9c5b85013851d8ec5d404a60a12e7a21030" - -Core modular exponentiation (Mongtomery form only) #402 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0702555838a9f70a56265d5f722d13e3923f04146f2d1864" - -Core modular exponentiation (Mongtomery form only) #403 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3dbb796d3196a61f8f9c448731192ab3bc8429f28f1efc26" - -Core modular exponentiation (Mongtomery form only) #404 38 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #405 38 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000001":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" - -Core modular exponentiation (Mongtomery form only) #406 38 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000002":"557c4363331406805c40cad14b7b37370f079ded668dfa9f" - -Core modular exponentiation (Mongtomery form only) #407 38 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000003":"ac955566480891c6ebbe5d7a3ee387378d950d01a8b510f6" - -Core modular exponentiation (Mongtomery form only) #408 38 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000004":"0ff58e792a3d60e206be721a1c2e9c3db52814caebc8c376" - -Core modular exponentiation (Mongtomery form only) #409 38 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"000000000000000000000000000000000000000000000038":"9192a9df5fbe61561274de19a967d2f48262afb2319875d3" - -Core modular exponentiation (Mongtomery form only) #410 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" - -Core modular exponentiation (Mongtomery form only) #411 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"7dc4a890f04c11924824e053725f4835103178a9e6b91f0e" - -Core modular exponentiation (Mongtomery form only) #412 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"caf610a7e50cc1b225c830220ce430e3d71d5b9b2c63c32d" - -Core modular exponentiation (Mongtomery form only) #413 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cc084102738f63219204e5311f4b473d66461ff47940d961" - -Core modular exponentiation (Mongtomery form only) #414 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"483cf8addb7ed889ed57f74597aaf131d112a42ebb95c46f" - -Core modular exponentiation (Mongtomery form only) #415 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"be2e8eacadc61914b863a8fc21273c0defdbe7fc9993f991" - -Core modular exponentiation (Mongtomery form only) #416 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"82cfbe250b33cc8c9f42c6851b81e1ce853eb4f5d9c477c6" - -Core modular exponentiation (Mongtomery form only) #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000001":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" - -Core modular exponentiation (Mongtomery form only) #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000002":"8cf29cb53dff685f629a4464bccc8e83b32e76165b5821ba" - -Core modular exponentiation (Mongtomery form only) #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000003":"638536b608028f1bd69faa2028bca8354b921396cba9a68a" - -Core modular exponentiation (Mongtomery form only) #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000004":"6a50d1c3bc09aa9c69f97fe308a6ffd5559f0ea2d5d8d8b7" - -Core modular exponentiation (Mongtomery form only) #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"000000000000000000000000000000000000000000000038":"89bf50d3553ba1accb080cb0c21b2a8808307b1bfac88bb6" - -Core modular exponentiation (Mongtomery form only) #436 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" - -Core modular exponentiation (Mongtomery form only) #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2adca997fb1adbc30f958fcbb83f2348b4ca0b719119bb95" - -Core modular exponentiation (Mongtomery form only) #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"95af967be5e7d836bd093c3a844685f95e952387404857db" - -Core modular exponentiation (Mongtomery form only) #439 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6c4b190c526b19cb1f5392f60b9a7fae40ecd620c2da0b42" - -Core modular exponentiation (Mongtomery form only) #440 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"9292184182b3939ff72185aa4f3aac9054d7a365620bf258" - -Core modular exponentiation (Mongtomery form only) #441 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"44e78065023a54a431eb8d548defe45d607014d147f79737" - -Core modular exponentiation (Mongtomery form only) #442 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"ad8a821ec364be5096e5d9051e75f0a5c9617d91aa1bb9a7" - -Core modular exponentiation (Mongtomery form only) #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000000":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Core modular exponentiation (Mongtomery form only) #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000001":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" - -Core modular exponentiation (Mongtomery form only) #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000002":"84f5715e6166e92d827da90f387d9974d31df7a41eb9bbee" - -Core modular exponentiation (Mongtomery form only) #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000003":"55213e86191cc7819cc98db4aa0cc8f26a72a47b6504b16d" - -Core modular exponentiation (Mongtomery form only) #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000004":"11fb76bc742e761930f5ec720dc42b23c0ea939913359549" - -Core modular exponentiation (Mongtomery form only) #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"000000000000000000000000000000000000000000000038":"67de8bdd949244a08d4c0c47e39af43424dbfbc1cf6ee41f" - -Core modular exponentiation (Mongtomery form only) #449 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" - -Core modular exponentiation (Mongtomery form only) #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"342bc4a4c507359ac34e1be50bb9fef6109f096c28049458" - -Core modular exponentiation (Mongtomery form only) #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1f39ea71fad1e059db23871f472cbe4b916f6c50f1aa8445" - -Core modular exponentiation (Mongtomery form only) #452 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"7bd9203bf975bbf70004804ae02041c53f0826b6921d4bdd" - -Core modular exponentiation (Mongtomery form only) #453 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"05cd13191af06a48e3d51f24fd0e325fae4e80f19c38d950" - -Core modular exponentiation (Mongtomery form only) #454 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"93a98908baf47d0fe6d644208746b5cf52e2a0c20da64d8c" - -Core modular exponentiation (Mongtomery form only) #455 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_exp_mod:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0ca01d0a16599026b808970ae5864bdc70be430b5cd821c1" - -Core modular exponentiation (Mongtomery form only) #508 0 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #509 0 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #510 0 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #511 0 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #512 0 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #513 0 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #514 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #515 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #516 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #517 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #518 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #519 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #520 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #521 1 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #522 1 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #523 1 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000002":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #524 1 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000003":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #525 1 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000004":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #526 1 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"000000000000000000000000000000000000000000000038":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #527 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #528 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #529 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #530 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #531 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #532 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #533 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #534 2 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #535 2 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000001":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" - -Core modular exponentiation (Mongtomery form only) #536 2 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000002":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" - -Core modular exponentiation (Mongtomery form only) #537 2 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000003":"00936e56bba1c3f28ccecc5359b1b57fb6d0dc5b25452178" - -Core modular exponentiation (Mongtomery form only) #538 2 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000004":"0126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f0" - -Core modular exponentiation (Mongtomery form only) #539 2 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"000000000000000000000000000000000000000000000038":"cbc7f16c92d2a2baba8c4286877c783301191afdbc82133c" - -Core modular exponentiation (Mongtomery form only) #540 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2b118a033f97d99a7eaf2e635107a7d5d185aa2682a84133" - -Core modular exponentiation (Mongtomery form only) #541 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"56dc49a743dd116f415f3a2ad6671fb419eecea7284bebe7" - -Core modular exponentiation (Mongtomery form only) #542 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"21309971b728ef8cf371dfc5b2aeefb22471115d3765e99f" - -Core modular exponentiation (Mongtomery form only) #543 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"726dc37bdeb90f4f7572f74fde8b66fb91adfb03d90d5bc6" - -Core modular exponentiation (Mongtomery form only) #544 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"05218fe7ccf32bb0ce0af8fa2c3772cb1e72b693da49b39f" - -Core modular exponentiation (Mongtomery form only) #545 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"617c21498dbd7725fba62b007f396121b9151a975fff2dbf" - -Core modular exponentiation (Mongtomery form only) #546 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0024db95aee870fca333b314d66c6d5fedb43716c951485e":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"322d47389940543ad6d62761a3c768a1defee368213a44bb" - -Core modular exponentiation (Mongtomery form only) #547 3 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #548 3 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000001":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" - -Core modular exponentiation (Mongtomery form only) #549 3 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000002":"00a5dc219315fc70de68a5ddc4e7ec2fadaaf7e689edc5a7" - -Core modular exponentiation (Mongtomery form only) #550 3 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000003":"01f19464b941f5529b39f1994eb7c48f0900e7b39dc950f5" - -Core modular exponentiation (Mongtomery form only) #551 3 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000004":"05d4bd2e2bc5dff7d1add4cbec274dad1b02b71ad95bf2df" - -Core modular exponentiation (Mongtomery form only) #552 3 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"000000000000000000000000000000000000000000000038":"e1d12672c2c17dc8c31840d61868d88c3fdede1e5cbe86f4" - -Core modular exponentiation (Mongtomery form only) #553 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"8826f459981b454f59f868f6b5baff708a7a6f8a89eb7fd1" - -Core modular exponentiation (Mongtomery form only) #554 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b34dfb4ea6bcac1c2876110f44b7a3f233ddbcfb83eb7d79" - -Core modular exponentiation (Mongtomery form only) #555 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"62dcfde863135359f415fc585f1d2f0f4bb7740b2280f673" - -Core modular exponentiation (Mongtomery form only) #556 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"233200d88fc6201432f29f8566cd2f76f1540be079de67df" - -Core modular exponentiation (Mongtomery form only) #557 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"08c778349c44ca8f816835e12a380b05eb8328bb1cccf42f" - -Core modular exponentiation (Mongtomery form only) #558 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c28724438933eda12a1b1cdc98f120ffd0beb199019adf75" - -Core modular exponentiation (Mongtomery form only) #559 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"9e5488e21e1b68309a85c3c3ba243573f72ca7580e54cbba" - -Core modular exponentiation (Mongtomery form only) #560 4 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #561 4 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000001":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" - -Core modular exponentiation (Mongtomery form only) #562 4 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000002":"0126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f0" - -Core modular exponentiation (Mongtomery form only) #563 4 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000003":"049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc0" - -Core modular exponentiation (Mongtomery form only) #564 4 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000004":"126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f00" - -Core modular exponentiation (Mongtomery form only) #565 4 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"000000000000000000000000000000000000000000000038":"5e1c6fc900a0e2024e6bdd4aadb6647e5dffdecac715edf4" - -Core modular exponentiation (Mongtomery form only) #566 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"766bbaa1933aab0715c65e36ae8059fb3e60b68fcd3ae54d" - -Core modular exponentiation (Mongtomery form only) #567 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"bf129c5d7b1b4d651a3deecced7ea3c67ab8d7f8f08e5c7b" - -Core modular exponentiation (Mongtomery form only) #568 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ef38652911f419b30f296f1b4e8f0ab986cec2b54bc33235" - -Core modular exponentiation (Mongtomery form only) #569 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3594f35e8a4141ab3dd4ba10f4de940c213173aef686a16c" - -Core modular exponentiation (Mongtomery form only) #570 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"df0f1b5e5a8aa09b9f79c926a18683bb6c1dd13554d39c67" - -Core modular exponentiation (Mongtomery form only) #571 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"08555128e4e0b2930a55a6302efab147ac7576f8eb080a51" - -Core modular exponentiation (Mongtomery form only) #572 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"281b3fbb20852f3089852bfd9b0abe81d191f6d2f837e14e" - -Core modular exponentiation (Mongtomery form only) #573 38 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #574 38 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000001":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" - -Core modular exponentiation (Mongtomery form only) #575 38 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000002":"e1c0f4cf4fb40b679ca8dfa1581deb8fefd16b9111db3fc0" - -Core modular exponentiation (Mongtomery form only) #576 38 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000003":"65bc912caca14ed7e3638ec9cbebff2ab58ecd6a2c3d5eff" - -Core modular exponentiation (Mongtomery form only) #577 38 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000004":"42d5313447461a14c0ffee09d2488476edfb4d3453eae3d2" - -Core modular exponentiation (Mongtomery form only) #578 38 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"000000000000000000000000000000000000000000000038":"2299552f34156570f24335bc0a568b3261ce14457ebbf8a7" - -Core modular exponentiation (Mongtomery form only) #579 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"307558b7dc37e8ef3acef9c8082d95037512056c80564c29" - -Core modular exponentiation (Mongtomery form only) #580 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b4b8fd89e333a7d2a82b1de2b775a634fa7cac12ae52a5f9" - -Core modular exponentiation (Mongtomery form only) #581 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"762f48a5698f2ad605dcb7429892b8fa6d0f9605e9a4a0e0" - -Core modular exponentiation (Mongtomery form only) #582 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"97e926f3e1c1846373e9e061e6714a2c36b17fc6f10765c6" - -Core modular exponentiation (Mongtomery form only) #583 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f3424dd6731094b5f39fa423358ef0f96b35fd59b1ffd132" - -Core modular exponentiation (Mongtomery form only) #584 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"49c7fe0a6742343da8dde3c7467d656bc88f8296fa5fc6ad" - -Core modular exponentiation (Mongtomery form only) #585 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"30680fd9cc06ae8f28b5ed29a769a80086250dfb8f043f77" - -Core modular exponentiation (Mongtomery form only) #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000001":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" - -Core modular exponentiation (Mongtomery form only) #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000002":"8e252eee33d3c6f20e8fdc43b373e365ad11421986ea558f" - -Core modular exponentiation (Mongtomery form only) #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000003":"32df6cb40c45993b472077311d695be543130ba21e63e898" - -Core modular exponentiation (Mongtomery form only) #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000004":"59b53f94b3344393c8d5b848caff67eab6416011bfe31433" - -Core modular exponentiation (Mongtomery form only) #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"000000000000000000000000000000000000000000000038":"199e4f207e8a2403a86031f1036c69c5a4c9e6b93477bf3e" - -Core modular exponentiation (Mongtomery form only) #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e03fc545ec699307c098b78b00fd551399d33fcb00173163" - -Core modular exponentiation (Mongtomery form only) #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c4885e82e45f2f63cf303ea8b606f606270d71aa30674338" - -Core modular exponentiation (Mongtomery form only) #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"67e70d4b42f34c908082fb52bdec47aecf1f92dd4e067857" - -Core modular exponentiation (Mongtomery form only) #595 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"44a032cd98fca45f0ecaff08a5773e702b544d499fff2932" - -Core modular exponentiation (Mongtomery form only) #596 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3809ceb74b5a154b9fdde8cb28acc2785488a0b8b9a9fa94" - -Core modular exponentiation (Mongtomery form only) #597 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"30936e50177af6e0b66e2b344ef5a3b423732bbdc87003ea" - -Core modular exponentiation (Mongtomery form only) #598 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"599c66c4c58a0f811e451732f8a5477188c61b11f2106a9f" - -Core modular exponentiation (Mongtomery form only) #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000001":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" - -Core modular exponentiation (Mongtomery form only) #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000002":"2a91d83c37801d9f91d54cbb054e17aa97cdd37f9d529be5" - -Core modular exponentiation (Mongtomery form only) #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000003":"eec76b0f9fb50b5ab61e4f23af30a4edaa05eaf95ad7c20f" - -Core modular exponentiation (Mongtomery form only) #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000004":"23e3f02f76dbc6874d2682c1be0ac17158fc5c06d2f3e642" - -Core modular exponentiation (Mongtomery form only) #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"000000000000000000000000000000000000000000000038":"7f0032ad4012649e4aac26fd4c6fdbf4c664e8851cab4ad2" - -Core modular exponentiation (Mongtomery form only) #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"557745996a3416a26b0b7847e40a4f43fa89a2e04f424aa6" - -Core modular exponentiation (Mongtomery form only) #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e7cfdc1529afdfd8c15c44d718bea8740eb64724d00dbb54" - -Core modular exponentiation (Mongtomery form only) #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e4fc581667af423aa43baffaaed7f68975adf89e5a13895d" - -Core modular exponentiation (Mongtomery form only) #608 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bd20affafd19cc9d921925eabaa79a9539cc466dd91e6c39" - -Core modular exponentiation (Mongtomery form only) #609 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a5d5aa35a6ecc1bbcb5d9bd3ae28a6266a50896dff6992e3" - -Core modular exponentiation (Mongtomery form only) #610 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c1d04aada3c17ed78aff0b2c4851d095b95a8f4387d8b1b2" - -Core modular exponentiation (Mongtomery form only) #611 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"49072571a90ac5bf4af577b508fe6ce7cfa8c3ea881a9b5e" - -Core modular exponentiation (Mongtomery form only) #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000000":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Core modular exponentiation (Mongtomery form only) #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000001":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" - -Core modular exponentiation (Mongtomery form only) #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000002":"531c46d0a91c719bc7284a841541118abed4c736f781c15a" - -Core modular exponentiation (Mongtomery form only) #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000003":"6f5f4fb84f5773a70c1f400d44b569677977e4d441b9c386" - -Core modular exponentiation (Mongtomery form only) #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000004":"94f54ca664c35010042187f244c530dc28aaae49bb3802d3" - -Core modular exponentiation (Mongtomery form only) #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"000000000000000000000000000000000000000000000038":"59a47284611c4cb93f75d01c6268be2c82185ddddc137e4d" - -Core modular exponentiation (Mongtomery form only) #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b5df45fe64ae405265d657d91c9f0f90b4d84dda823061b9" - -Core modular exponentiation (Mongtomery form only) #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"569599bb9d443f3fcfb6ebef84dc3e892cbd64d2854bf899" - -Core modular exponentiation (Mongtomery form only) #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"098b667be2a182fbe1c7964ba526b2ff0239e02b16c9e993" - -Core modular exponentiation (Mongtomery form only) #621 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"8e583b3e60f042d28179567c5b41e282b5eefc21a3c19bc6" - -Core modular exponentiation (Mongtomery form only) #622 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"865d2e2d793457e7ffca7bb3bfde4267761c773d1b1c8627" - -Core modular exponentiation (Mongtomery form only) #623 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b430042099b81fa9a12433287d727936ad7fe4622eb7f128" - -Core modular exponentiation (Mongtomery form only) #624 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_core_exp_mod:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e37ca0f1d54b16ca066b99cdf702cefc276109cc2cc6b673" - -Core modular exponentiation (Mongtomery form only) #677 0 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #678 0 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #679 0 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #680 0 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #681 0 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #682 0 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #683 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #684 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #685 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #686 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #687 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #688 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #689 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #690 1 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #691 1 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #692 1 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #693 1 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #694 1 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #695 1 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #696 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #697 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #698 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #699 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #700 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #701 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #702 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #703 2 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #704 2 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" - -Core modular exponentiation (Mongtomery form only) #705 2 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" - -Core modular exponentiation (Mongtomery form only) #706 2 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"23ab70c36f81a774ebbfa896d47018094eae5473d8cd31d041dd29a470f30948653cc411ec731d7d048775063a05295134662da6c27f1a742d98830b535b98fc9348d0aa3e7a016223711d4853c8537869c5f5026d495088624a03c5d54bb41e2a2551f14688f64ad41bd0a5a6fb2a5d4dd2ee89205a42e6b2fc01be5d3acaa2" - -Core modular exponentiation (Mongtomery form only) #707 2 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4756e186df034ee9d77f512da8e030129d5ca8e7b19a63a083ba5348e1e61290ca798823d8e63afa090eea0c740a52a268cc5b4d84fe34e85b310616a6b731f92691a1547cf402c446e23a90a790a6f0d38bea04da92a110c494078baa97683c544aa3e28d11ec95a837a14b4df654ba9ba5dd1240b485cd65f8037cba759544" - -Core modular exponentiation (Mongtomery form only) #708 2 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"6c4527d8818fe9b3c3ad2135aa5e5c55a440eddc2257c76b5a4d5a040cad5c0257def0733ce5751a3b82ebc5c9bce9272a1a7b3db2e222ebb759c0f243fca3e951473729f38ad6d63889c24b010f38c048d2069028d1120d210c15aefb9a0a8621ffa31dc9cfc2fb6fe017b8e6ea808ebeb21c68f99c9794f03d06f2f9f62f45" - -Core modular exponentiation (Mongtomery form only) #709 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"96ba10023d64b95130dd9b1fc451e10e0580b324fb6cbbfc8be78f3248301023810c752386189cddcd3e98b87c6958ef0681df7f1b65cf233ee05f36b67846e28c8425a3640df66594f4aaff10f331aefd205c855470a1991363ad141b5f384e943b0e1a81b031d2404f11cba9567bfcb1b3218e632e4aca920569d83179ddd9" - -Core modular exponentiation (Mongtomery form only) #710 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"872c522133b076c2edf608b2c8a8a9a409d8ea6fd6ed1e051beec4225039702a2b7bda1db1601d2345b317813d868f2a9af4ab924119f751448bba43566a0f981a53dd3b4b1bbd72ebd1e8e90a6de03a83ddb253a431cef1740f097bd3f8db6dc5574ad5ad232f3fa68c4163776a0ac46ada7c97c1d6ea5fc87d3f2a30b89385" - -Core modular exponentiation (Mongtomery form only) #711 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3cb732efdefb447968b500f51050a3f3bf67e3ff779181192e0832c1a207d120228b3a207fcf25a896d9d77a7ca9b5adba5bb5b303fbe104c3a96a6683af809d140905888f0563ae2e42165f35adbecf7772cf2dfb08cc4364602f6d7fa7bb0ce278309d5c8faa859dac7faee51d6a362a434475faea72d56ccc79da2e148fb3" - -Core modular exponentiation (Mongtomery form only) #712 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" - -Core modular exponentiation (Mongtomery form only) #713 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"9918bafd8d24b13e3fc8204e7d6fc60817a8823f228ee97078a6ad3824ede67575e444082d431b736b7a350c860b34890213665d54a035d4b7eb409f3ac0278e2acfa593d30ff1f2866c375409926d726318bced0b3967e5ccb216fb3f5d4e97a2c3b656dac66c6850635bd40e4f605371a6cfa53edc935056f9d5f02dbf3e1d" - -Core modular exponentiation (Mongtomery form only) #714 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"73fa2bb5acd45764062b02179ea27d5461e84eb4bca3535bfcde71f323da9347f757b43df62b7ea30c608c5c24c2c55038ae2e40eb361f1bc347d963ed1884ae97b24f475f07b2380f611989c5559ebcf1ab6944d8dc4d8691fee3e8c97f854eb2942924a99887018b5fca5da5a28c6783059b5fadbc953d59a620bb9bc0a849" - -Core modular exponentiation (Mongtomery form only) #715 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"885754d024af72007a9337da7d5f26ca624135954754f28a58abe19fda051df81d28d37a05fab101020034d841d8ac89a8dff92d1da433c99937ba9ff4414b54c16e4a4a2e23de88ebc9a613a24314a5ebafda56008419dd1b5a1a5bdb09bf454ec97d53f6d5d42b242f4d5d1251b4dbd370912b90ce55abf16b8358b1ad342f" - -Core modular exponentiation (Mongtomery form only) #716 3 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #717 3 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" - -Core modular exponentiation (Mongtomery form only) #718 3 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"5a6fc8d6faa83833d01f9fd91ce1b40a3cf2f67f6e7b506515401434e2a4f09c6f5c7146ea7ea06feb61cd86d96c13d9533d32376f8bd04c988e29bfa87e5b7c3b9ce588118634b8c096069c5c29289e0df35a4f78370bc938eb04266aa012edfb290d5633fd0eebe951cbe96ae115003c019ffd3d3016642b486851668d787f" - -Core modular exponentiation (Mongtomery form only) #719 3 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"4613b2987b1f395a54bed6cd9f16b81fa51d8589e1200fc41323272f19a0b92958350109bd876442a8ffc1152bab2614188e9b36fbb026be34a023f34e9dd4f45b2ac576079ed180dee6fd291cdc4effce07743b7392de9c81620cd3d5349799c27ee367896b4564d12b5f00048929a3a233916bd46616a9fa259f873cfb175a" - -Core modular exponentiation (Mongtomery form only) #720 3 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"08ff6fdcfc843ccde29c7bab25b5c45fdd9d32a9390e4de10ccc601dbe9412d012beb05236a1afbae1d99bc022685cc46882d635a01d2a1308d6128e40fc415cb9d4653fe9e8a7d939d9e0cf5ef5c2250e43c1ff65a657165ac726dc14f2259d1880659b89b5e8cf88b81843d181678dd4c965b79a08177b66bd4528c043f3eb" - -Core modular exponentiation (Mongtomery form only) #721 3 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0605fdd294bef13e94307289ab35206540bf0a36a79fb843682511016551fa99b897d044fe6feccdc4c005835bd06c48e99b4cea06cef8529322ceb21ebabc7dad3ffebb13fa32a7dca0a1d9c93cf521009ecea8914ff506197e5f5200aa9a0668f7fbc2821f9043a56e0d8b8b958843cb440529288c07333d075aa816237af9" - -Core modular exponentiation (Mongtomery form only) #722 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"7890921a7448bdab32aa424843ce8010ee83c1fb32d6a07e2f4dbe585bf25c6634fcf691d93b41733d48cece809e7fdcb4d8dad762b2d005d585ae44ac5ec502edc08262a809b9b61e5da3d1f93f6f630de4cdb56a7ba55d22432a33369edf2bf61c3bca726373ac804cbfab60db62d9fb3cbe91957575c6e24bddec9e154cc7" - -Core modular exponentiation (Mongtomery form only) #723 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"29e680d3931a2dd7d1f6b26aa8d2916031b55aaadce6809afa262917f593e5049ed45bc57e6e8db82de2bb86e281a30f8cddf905c06ca5cfe1c95f970b849b399e8ec52422e70c15d32f5efd1d1bd5d41ba6aca7bdf84f94d4d9e9090a35f38f154659224dbc2255439b0f2f9f3a334d61772ed678f410ab4ae5508576556120" - -Core modular exponentiation (Mongtomery form only) #724 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"395acb8fc952259a02b4c2624be7a893f4e96af0317e802cc3ff3dc6d5ea76de63008403ebee34440b5d8da7c64587db6f8e8a187778945f4b14939300b5178a0acb0ede421554790a7f572f3378af4b335a7f5a29d62b7e80c461489e83de1f948ff916abee8bae5a3186d2ab33ca7594dd9795b2168275e55ffbe9a50d0863" - -Core modular exponentiation (Mongtomery form only) #725 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" - -Core modular exponentiation (Mongtomery form only) #726 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1826ee39ff1d6010e8de749eab208337df68b64707709e26f91f278b3785ac024b610889630dcdd3568719d6e7419eb9e9867c0cb2e306cd49467dc1763eeb75d1d04297dbd9a0d276e33a25671e79e135536612f5faed71b3a1c977229a949cc40b2fa9df9caaf6a23ca73d38af553b8b7a6e97ab0eec09bd4d83fee364e90a" - -Core modular exponentiation (Mongtomery form only) #727 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4d12dbb2a99afcbe90085a98909061e31cef8e6998c5b7ed3da4b56467ae30627a2551785f56cbb75bb26f80c5cd8874ad20646680d7da5182faded776591f2e53dd0bdb79f62ebae786a8e287bf71108fbdc4020784b3a350cc7de15f44044d39a39df09a27b8baca0e21c9e4a72d459dd6fb293aaac3be5b31fdbb53b373c4" - -Core modular exponentiation (Mongtomery form only) #728 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c057eb2197e23f6d8dcaad7d58fdd841f75d94188d66d5272714aa8e97aa639be8ce209c518dcf3477fd6861f1a81b6f484a715df325b7400c460ccfc762e552200540ef572117b6bb29533ac9efbd942455cb3264ee4b2b71293c83814249861df672c8182247bda99ebe4c13c8bba85fafdddf48c6f6dba8d4135f9218f71e" - -Core modular exponentiation (Mongtomery form only) #729 4 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #730 4 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" - -Core modular exponentiation (Mongtomery form only) #731 4 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4756e186df034ee9d77f512da8e030129d5ca8e7b19a63a083ba5348e1e61290ca798823d8e63afa090eea0c740a52a268cc5b4d84fe34e85b310616a6b731f92691a1547cf402c446e23a90a790a6f0d38bea04da92a110c494078baa97683c544aa3e28d11ec95a837a14b4df654ba9ba5dd1240b485cd65f8037cba759544" - -Core modular exponentiation (Mongtomery form only) #732 4 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"541fde2f0733cc66425d3bf8ebf25c4b63b745aa5c17ad16e24c37b3f94a31973405cdc461a46edb0b1600b26f903511c20871c6c1058979d7b9bf0eefff8a64429a9a2fc6dc3e67b8add396a6a370e8f25d0d6075383f83e8f11e8f3fb1ffc1222e4aef21bbcaf7b6148070fbbf3d8d5cc625bd1fa7eab3102c7485f32902ed" - -Core modular exponentiation (Mongtomery form only) #733 4 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"8743d0cfa7f5c257edd4e725f83b0d2e7d21b8b5060cd2f05c93c96056daadb0da36e446849d3e5f13325b4a5da7becf26f8cbabb122dbbfc9dca2f01520ec10b2be7d9cee7d2cf57fdc37aea2ee98c96da19acedfceb9507a657a9d941c5dd459bce7217463447fed87fd07b2e2e0d8614748689b757e49b8fe38aad5f6b991" - -Core modular exponentiation (Mongtomery form only) #734 4 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"741db29a70a8ab9782d0b13664caf866013adb2c59ad4e6eeb65e698c24f71099c3b23e3a6b540c84f7d56f10d9e9e8a2773f5195cc2aea18abbb85e308afc2b7509a555000fb412f627b3a0960a5e96f421c8256d164236dc9b87b64effd6bef6fb5d1345877599b6bea50b13cb41011c4c79eace43ae1a7a68dd0dbd09fd17" - -Core modular exponentiation (Mongtomery form only) #735 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"31266c1e7d2fb6c7788fbfd853472b801f507db5f381893de511b89797912bb962fb1c006b133babe0ea186a03c950a5937865c258072b64fbdac2b603418c50f0f4adabbd69ef5c076b8d2fc05c4d091b543bd09041f660faf10adc4138d1c09525a0df2c75bf9a00887cec9e55419c10f45c36e68f71c3736e88ffca21145b" - -Core modular exponentiation (Mongtomery form only) #736 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"879e4fa4b7a032cddde3036241786667390ec44e1d61578ada1b1aef5cab537b70749109b8ef86832b14742db6d7ac93d8887f0cdd6471c7c45f6201da290e807801bdfec29e8e03b74c06641f62e3416d5f680deafc298e08a7e066af90e0d9536aff4b7acb6fd9593096060e4ae13c676c0d80b61b1006d45ae4f357e03830" - -Core modular exponentiation (Mongtomery form only) #737 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b2b0228401289fcbdbfdbd06f5bd4af3ed1f7af9d996124f84070e047b739da69a2bf1699a89850bc33ae43a304700a78314190fdd00fd250aa8a7a1727a51564b7a7467126681a4fe26acf72eb1b2b5ea855b3fbb9d2ba8ceba943a0e1e92d0f63e8ac05041ace452d8452a8fae1d92b47aef07dbbcd49c5269b873ef0d74aa" - -Core modular exponentiation (Mongtomery form only) #738 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" - -Core modular exponentiation (Mongtomery form only) #739 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c446bad7273bc6750c2d0f46a125fb005eb870e3ba91d99b44c7a0b7e5da5a8c6fd05f7fcd536fcfdabc0eca29f1562ac145f5843f03f35b71dae2ba972aba865d59f90e6ab62248f6941942fa23c53ce294778b16c9af73585cb20ec0a1a52cbb1ea0359431601f6cf0597df8f10e820d468eb21d25531df451e7ad2a4072a5" - -Core modular exponentiation (Mongtomery form only) #740 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1fc72af641427e007a8fa2c96e5e19195e705aba2327e03068b97756a4dfc3b904d1ccec1c0d74ee43a51070f25e5d0f8b89b6ccffb3543233ea07c3bea4994f87f81778e77a5dbf30efc8c80adb51f8d89524800753dfd0ca4f3f852da759298e1877a6142dc2f3f9ca7aeac3521d25567c64f162f594500f6d9af8e06d3c94" - -Core modular exponentiation (Mongtomery form only) #741 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2701962ca402564a3ed47445b4adf9480527de836607c9f2f75c3bd5a0c62801b2944ebc234996d5a5475e0320934445b4a5ce974fe240a7cabe762b49fd8bda0b42ce27846ac1738a6a8c6a3952a2e181f31b2b3e36d870dc0ffedc15a78268588c4fbebee0836ff2c7b02687d28ddb5f534b59c49a68a809c2711c94f0c0e1" - -Core modular exponentiation (Mongtomery form only) #742 38 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #743 38 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" - -Core modular exponentiation (Mongtomery form only) #744 38 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"617068873fed6e7c8b57cbd2d243da80b370fe8352228501d450fcbb99199081bf95eaba895f72e728450c33cea47b088c6a2258770d853aa5be97f296a0af29e62924798d1bf49ea027ba668cd94387375b797b4a56c9505abae0f6dba95c33df26fba80203c5ff822436eb7d911cc95d9316454fd872137e7a5120454f24a1" - -Core modular exponentiation (Mongtomery form only) #745 38 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"174c27a5a9016f609153aa1ba2d3404061f4c3f2c0ea5218bd2606457b5b023efa229d64d817f22f282200e603d5a639f7e4fe9c4b4c52a78999d215edd0d4a119de2dfc2066ecd59b95624bb1bd408c6ccc42186a0ec96a7bdc402fccf22b43dbebd0657c11e8e1b49d83a920fe0b3b9719966881e6427f5ad0909125085987" - -Core modular exponentiation (Mongtomery form only) #746 38 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"6142bcb23b37c199248d019950dfb61b0326a95fb556ace654a2de95a613e9bef4507d4d39820c02308e45549325dbdef321cd9486fe57b89b67dd06047f123b9a928c5a08cd02c1b78af88713ab1d99a5bed52574ce72d01ff40cb854f3afb701abfa90b4a3852601b8b095cef5f4daa2b10f95176180ccaf6a073251c3a8b6" - -Core modular exponentiation (Mongtomery form only) #747 38 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"513a59191b4846de70c245b1a78d3cfdf93e5e13bccf12206624efa86ba02c39f5f6e681f001ff793cf0be30f6f764f80b8980a65c4e6a51ee663fa6b0b66a765226973502cd772d8dbdb45bee88bf4ed2e17e6a39668562ab674ba8cfad3373db197f5e1eb959789cad5509135b656fd1d8cb7dce79f5c33c97fc6c929c5be4" - -Core modular exponentiation (Mongtomery form only) #748 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"20ed4c6c9a0795e62904ae769122a3b1661d96deb7f2b3c77a9c3c99eb7ca560d5e0102dd7c0b7a3a667df19e6a3618e0de71e2d17a374acab7aa3fc6c8bcbc621aa53798f519d0791811bc5c9a0be1110ebe3dccaa60499bcdd519972054d2d8087ea65a8c552b79ca0f0501a761235cc4a99161590e196d8c08b4308754581" - -Core modular exponentiation (Mongtomery form only) #749 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"580a99e80021827a2b9e1b9bb0c36ec8ef4f822612716e286c16ea7f692cbe77f76a0903ef0964633576276d0a6a4ede743104dfe57e89bc7778a161715649741acce5595be5d8fe3d63fd8e821376b0a50ac0a170ac8d1e883f496cd4f1cc32d86678837b8567b58d7fe284aa5d524ddb897879210c78ddab24fa1a7bcd01b7" - -Core modular exponentiation (Mongtomery form only) #750 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b0e9e5c2ea7a63a0fbee262e82a1057b2c14cac57acdd98aea18a05c131cf7dad5776ee445100d9d5a8bcd355747634c789c35b096bd0f7b06bd73ab425f1b260788de9b1727d4d1fb216d6292bd3b941f41ec0fa250bac2cfaa7b0902f1b16aa5e406c33ce9823645a7d82425236de812964ba66735fb8e841d8527048728a9" - -Core modular exponentiation (Mongtomery form only) #751 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" - -Core modular exponentiation (Mongtomery form only) #752 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30d6b3733ad5bdb53585089266e40b8102d73754ffe5ec896d7b55da6bfa9718c4d06c16fd45433261ee2b319c5a937c2992dcad9ea5d341ea50a0d1ab58bd55b4c6476d6349d47130bccf51008eb1b5ed293dddb731ea8b9fc15a0d91b3d14a40915d5ca409a516e8b208c01a5a488fde5e8bfe5beb09d4b94c44396377e5b3" - -Core modular exponentiation (Mongtomery form only) #753 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"522d8aa7f85cea778d88aba80a82be7c0a5114a1c5294d9d8da9956cce80a4c4ebd8dff9c8e9900b0f722538a3c4c5e321a58af8672b32cbd60a1595a0d9149a5f0bb60603fdc7059bb4b80d5c9b68e2ccb58caa838dc6a54807f674d319b7639297c26742beee65220af51c52d3c2be0ab72bb0288b13158eb5d15c62f0c996" - -Core modular exponentiation (Mongtomery form only) #754 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"25b8bf1d70ab07c2b23225ae1e14dfead93e29a87a67b0175a552e68855da211e2434f6695f0c3fd34337b8aa04d3257a92204aa3e88251da184d259617f4da06b2e8286a811c56e71e6bdb319f13ead496d51ccaf4b37069945fc426aba22d5e953afe84cb3f6d840c56947ea7c00cf4687f92fcb115169721d5f7c4b86c4d7" - -Core modular exponentiation (Mongtomery form only) #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" - -Core modular exponentiation (Mongtomery form only) #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b214e40f9a12ea08c297162e39d5f53cc30ba12faf0a24d5c76f1209d9f0988f705fffb836afe9744526e4e4ee580559c5fea1cdfb0b9420081c8f58372b6447323a7fc6083673dc9daacf146013c8e7f318a511233a815580ad618b2fcce2d4b0b5831d76ab57bc20d322dc7111f66f651887fde7376c5533b1665cc4c42b4f" - -Core modular exponentiation (Mongtomery form only) #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"312d7ad92c28cf4af470b28e8f966f3edf7fac85d85d509b17eb8c57404429e2c29e8fb4ad41308aff75feb59b3ae9a7c06e6b4dced2f69566bd591d1df0ff7d280b706ed7a3ff238cc9760a744fa154a9091ca23d0aaa7906d4d0a29607f0b42583b114daf6d1d718615acf130d331917ae8f825e2baca72faf48596fb5d1d6" - -Core modular exponentiation (Mongtomery form only) #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"69530dbcf2d34f935f0d78ea5742ffc894875828ada9cc0f4f0f4ea2cfab0c538a9d12f0407ebeacbaa3ce183aca1a11fb8f70a1934642cf9847c96b6bbe1bc7457ecae9be9d581a42850153ac19334f67b33a577e40438a06b096e24624fd9d561df14a892f8656ddd8c9c0cbc819cdff862a0560124d0fd8a78b52ab934070" - -Core modular exponentiation (Mongtomery form only) #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"63424747ff76efd4b659899117d3348753c1ce6212cf170946b76916d53ae8cebcdbc3eda6f262f230ea4438b6843731f73cf3be4bb821119199c4d96800b51548dcc698b13ad65cb0c30baf8b926c81796a7b5b826ede5b56dccf6efc515ba933f7e6ab9506aa37bed81803f13644a1ceb8ecf8609dad947e1bab99f0c31cee" - -Core modular exponentiation (Mongtomery form only) #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c244430923396e32ceb566e1926cc56ee7324158a56edce560f852b5ffc1d778d519918f37eb59de04ca98214c6a28d77a295107809f1987baf9eebca232398b3c5d5a7bc50ecd166f58455d287932cb244115d17e851e2ca4145989faa5963d1be553037f601f9a26662c6806dd79b0f18fe8ccac1aacbf9ba2082c93efd6c2" - -Core modular exponentiation (Mongtomery form only) #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"462796e4e7a4c00418dd9bc84c9ee3a6ed868a69ca069e8d0d5b3880cf3565dd4d6b33a168dae04d0fa53a2e64f06e9afee4b8a1e6103b4e6cf2838ca05627832cfdff974a4d82e7e5a2d2e0afec9924b84dc75dd52714755867f51c2ae9daf450bff7218ba9596f99f28afb317a4045cdfaa275768ddf7281ca56b7a90af565" - -Core modular exponentiation (Mongtomery form only) #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"17e2bf7e40581448784801bd63817a72514d6f0d031b6304c1b5b912389fc361431d5fd80028166db19baf7917dc0c2e67682c5b1167cf42509c23e024a70b0355a11fdd0fc3721cd1096a85ef43b9230d30eb2c0e11c73696c9226855eb1216c2c9b4a0f33451e3a1bdac2006dd6d0dc687938afadae319c6eba45851f855e8" - -Core modular exponentiation (Mongtomery form only) #764 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" - -Core modular exponentiation (Mongtomery form only) #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"5ef142cf4d792c99cf35a79c859e23c88da85f82c3c0502b23921e8338c5f58d4c8593506d6224204bbb0540c60ef5ff57fd19d12de7c8bafb649fa7cc25292414d7b0fb359aa9853c5a94cfa5281524859d5f43b0281207c9ded85328f6a822bba20e29b5f3c00c881b649b9e04eccb1f835c9a465dc721700718771ecfa7ea" - -Core modular exponentiation (Mongtomery form only) #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"7eccbd086c4931dc5d5550d1da610c9c5c020949ac7818318dd3f513bda925a483acec2f93da28262d79dea05fd8f06e65b4eac27859d59cdd9960c8a76e4c24359c791cf5c2c5aba4d4c0eb9b477ff6e58ab8cce8e93e96162832a5db5a6d3a0802a6ddf1bc7ee060bd3588b971dfb88ce482b65ffe39379c3972c18ebf8b33" - -Core modular exponentiation (Mongtomery form only) #767 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2e10c5c86dd6a11ad888df4c7c5c96fb73472263f66d2d01e28b7f9608c2f4f42c83ddfc94e8fe369e298837636926e5ecc26cb3e8443774c2daeff9d171d08e59268a3f4dfd3f01d6cd8c9e5fa4fa533eda9f5f7f654ad7627f40768b95fae6eebfa45d7026c3ac67349cfbb05486c118ad9128b106775aa1fb10011ce8abcf" - -Core modular exponentiation (Mongtomery form only) #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" - -Core modular exponentiation (Mongtomery form only) #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b6ac736a50b22d480b6ab4b3a8d4d0cad04a583327cd78e88d870d15aebb35891844ac3c4942ec9b8cd8a8cd55c09e370e40131cc5c5e2a01b50b835e7e96d3c7383018e7cb9995f9a3400d89d11c595ff2e3351841af3b1fffc6310703ca0552981d6e7e21156647fc5d46f1e935263af72ac469e631ed152cdd4c3d496e9bc" - -Core modular exponentiation (Mongtomery form only) #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"15d9a8a79a59ecb2583fcc227eff730d9f374aa815e3a9166213def7e54232f8b6ddbc1ffc9a0e7d74b0b2d2b160368c997263b7c976f42d4f69cb5b2a2adbf1c7778fc99a2d9ddca8a4aa725498174f6398eaf921539ff0a1b728887bb86f2aab4393a4c0b137e519979183b341c65c54b5ff7898f355228c66a170eb9e8191" - -Core modular exponentiation (Mongtomery form only) #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"ad4b82ca454b3161f2a26c8bf3962c6b49060cddaae7fc0940fd4416d7cb0deccf8d91a9361ccf7158176e985d9bb4e8349bddd83a9afa57937f00bb72e9a76c4c59f291f754f4a707f04f10485879c736956c02a8dafbc25c2d5151101ffab725b383d65292fbf55ebc873e0ac37f989c45c7583db97f5240f0b9ab16c57857" - -Core modular exponentiation (Mongtomery form only) #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"3741073026b11d7c0d34a625b78204f58b11c1d4af72cb9ee1ddb4545b8e02430c2428a74041f67827fe4a73f1bdbafce3b06ac00755adc18a5c0a2f8ed9834e51e76b6ee87568c8ee1a0f51cd5184c852fb6748a10ede85905c93918618c37db57b1f167110ca8f90bbf8f609a70a9476303991ae5dfc714522c8297d1ba5ee" - -Core modular exponentiation (Mongtomery form only) #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"7887531f107c383042b5a8749317f4042ab6d2f81975a8a92a21d6cfe3bd4c78050d400a45d11ffb3c6bea3e00c7751d8429b900f5c04fed70e9a5227328cc54db253c537763673a81d18fa30c12c95f268b5c53aa51f71201b9022885c9f47e9cdd009214b56db3e00372615362aa257e05de1588a207383c1451d263fedfa1" - -Core modular exponentiation (Mongtomery form only) #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c03ae3ba7b23a924857dc33251d6cf4b908ebcd7c3c3e14f9e729d86b4eea413c5eceabe30b08b4f5f38c53f3b5b8fdc65b72cc6ee5e0f85396b2abd6d221baa3701fdf6ff8bcefff7e0d0904379cc77e1d516a15b8078b0a5d6cdf9e3298af925425469bd0c77147ac45fec43678c97902f67ffc77dbc8e075d26c23dcf9e21" - -Core modular exponentiation (Mongtomery form only) #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1bb2f228a3abcff507c0b3b1afcb2a11629529abcc4c3da5dc2ef39f4c24dcd04226eaea240454774532031b1a7dd8a01fea6f1d4c459dc914fef02169a0d67e2b773099cd527cf5df2c428bb5c96ee51a7b2e57b109c8f86dd91e3bbcf6cd063ced63bfddcc2668a084c0ac31f79ac73907d46fa6e9bd4273287b254fb38fa3" - -Core modular exponentiation (Mongtomery form only) #777 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" - -Core modular exponentiation (Mongtomery form only) #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"58c582683e3fecdfa274f7b4e09bb36853583ebf38113d596b34c2ddf1dad3350d2b241a02fc674e66b8514344b8cd571fa541f741d75c97c5c20e17ac4832136a5ce78714f5ff350df6a4820fc6d508bb3bef6a0349af85c4c94470d11a5a7b8e8a7af7d8922dc139fbfea426729cb22e8c86b05ebb48f85832ad10f0164aac" - -Core modular exponentiation (Mongtomery form only) #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"9b7e69e0c0febabfac6867972240a7992a258ad5033d750f4f87d36507deeb1f924379e6f348dfacc8ea892568c348c856281cf0510aaea6ccb1debaffd418f5d71bddfeffc78dd919fdef1c6a6add40f2cdf01d57a3e1e70ae5e22d8a750b8de5196966068cbf5f83a30e10c5cfacae8ff129d58c95bf7f5296bcee1dcf16c7" - -Core modular exponentiation (Mongtomery form only) #780 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4edf10985785d5faea4a86eaedfc527c8df7ce19e9f8f723b3757fb4d8426831b8ec68c9fe8f4f095280a78b678c0a276f640e0a72a62593e222941f9460c020944fef065f0a0a8289b2d1fa01b2326782f6b0ea7528bf4714ed99153546b2154180965ce14a21d9452ed4a5d6278e9235f361a0b228e5b75e9ed5623e070074" - -Core modular exponentiation (Mongtomery form only) #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" - -Core modular exponentiation (Mongtomery form only) #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"1cb03e73b94f132fd5a153c2b49ce29fb1731b8bb59fd61085092c7640721c51efeb739d23feccebe4e884c0de8f4ff80da01079a9837b5c06787d8f86cc7620f7136f5cdd129858cafaec6c23643014fc78130eed9e3cc78f3c9c026e66a9f3b1dad91dd257c9f72b0015ca88f670ba689f60532e0bd3c873bd03d9b45dba32" - -Core modular exponentiation (Mongtomery form only) #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3bd7cf2df89bdb04b96e4f1cf709be63beec84260da297d70da931dcb06caf78a94d2ead2908986510d3217779e9243497f66e6f772a0b462fd894eff3055eaca91992cdb1c1e5bf42fad82de9b33afadfa35405e8dfc9d6a0e0081f01f61a5e7e355d0f3d3fb6bbe0ed36a701602b969ea5bce20e14fb911ab6c93585ecb585" - -Core modular exponentiation (Mongtomery form only) #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"48d37b1c11af0fd5abe1769421f787a37fd1181783259304fbe40601e1bea7c09e1cfb97c7a2b05b714244274819caa7c3b3807eca3826b7ec5cfcc8f8e282255ef7b11c18e22bf196bbabbaef7f4d21c5534bf71f4699d6f81eadbd715cfcb2f063a72ca5dd5f131b32cec3acdb3d75d69aacb7932dd45c3a5cfddab4bf76dd" - -Core modular exponentiation (Mongtomery form only) #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"10467b6b357c34a4bdc83c8e07adbd32061d3f0214e563424d3fc4971eb3c91343ca1e9d67ddcc34d1bb59bb6aa9903e56af890e7c1d7240d9b05120512b7333920ce705bd328823c41358f0f15d63f5e00b5a433813a3ada536f0ba8c4ec0d28bb7f0a9559887e89a882430c34fc65e24222577812e9eb5f37b61b2fdd6bac5" - -Core modular exponentiation (Mongtomery form only) #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c8e10c193fd05e1790e4392a365d0779ffd604f0d3dac7627ddd5bb6f54a6966479f7b26790f039188ce58aaac72d1788b06455681a38ef710ad1014f608a02af5c7f7e8d73d9825efad53550baf0dc39edb0af72f2a9ab4968cc7addcc83d110bd16db939223bdd0084eff1255789b60cac291acd573e9ba20d8b35e23930" - -Core modular exponentiation (Mongtomery form only) #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"89e098aa0ef8e1870d111e40be6c47f117120088eaf1fd3857d5dcd53e9ba4d13af2649312d19ab4f3bcdde0a4bea3edb8209a2198f660ac082d2d8e4bac140682963207c29b888470eecfc7d810849469d1d3e405a0762421df00a6b8bf1a1b407208ca45a9b1da3be9b215bb4dd9d4abefd98f1cd8b0f35bc5c6f8bc82ab23" - -Core modular exponentiation (Mongtomery form only) #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"47c7aad0e6f637c7abe1c6f2b665973fb678031370394c2f2aae539f54c3752f423d47a0dfa88735547a6de06cc72508219f9429afd01b8c7d8e9c40bd5cd21c52fd5b3286ad0addc530bdee8015fbb203802883ce398c99250390977e1e035c8fd03d65c49755a401b0351bb7020810873343621ebde1d367e280be10f68874" - -Core modular exponentiation (Mongtomery form only) #790 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" - -Core modular exponentiation (Mongtomery form only) #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"7bf96c6477bc94ec3f06994fa420f35fe8f04704aa16981b74ee66bd75c182c48268375f2d3254a082c8aa58ff4ed43a718553dc66a94d8201379e23179730c41c685e0f77eb270c652ed0234eba3571097f44a8dde80372589c7ba4472f06a26bfb907d129b5cce787339d25db259b7a82448cdd8fdcdbb5afe3ebbe06977c4" - -Core modular exponentiation (Mongtomery form only) #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"7504ea24f8f2dfb6827705496843e1fd18a6f7efd3fcbdade4eb94cc5083b2c8c5c125fd142db0674f34249ff6c243d58494c10ef4b762cbcacbc6300bfa9bbeaebd68262208f10a865aab4dfbbfa6e57bd07bbbbe46f13dff28a402051ca25853ca0e732aa85c5ebda1a95d1889193efaafb262b4fed8bde88e492880a80e03" - -Core modular exponentiation (Mongtomery form only) #793 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1f2d697ca9012b0eda047236c8f2eb690c36711bbd05739437fbe752d2c274c49f0b72182d942dab4d143fbbbee73296d97698e662efcfe072efba5ee6074fb36b3d71c3f8c3ec6ca140920b9668dd4103cce34e753592568bda2ef00d1e7cdcf6fa2fcd602aaf8b21c4fa8aaa6db37187d2bc846fd4f7d87a189584bbdba0f8" - -Core modular exponentiation (Mongtomery form only) #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" - -Core modular exponentiation (Mongtomery form only) #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"9f781cca75162c2c08ca687585b01ce2dd9f4ed64d82ef48f2924dc4e424b61ee371c6b4bd95acb5530c8f1ea3031e3eed657bf186e12680749f7c8a1c93689090d84e11390570a8984ff0277f2cd463e64396e90661482e0df7d92ebd23442071ab88573e84ece57449e0f953c6e55e5d526cf08c715b317ea42361e93e3d56" - -Core modular exponentiation (Mongtomery form only) #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0df2ad19ae65cfb4b1df1fea8bd24994da5f46a1b749cf87cee4bdcbb2cd98ebb86b31891ca1631fc13a224f4cb93352cb1586042ee9d267c4046bd337ed541e4c284576ea1fdbbba61c567f551f2da77c791a3d05cdaff6b6727458f0ba699a43ac5314422a5899bad4379e4b739115135f25f44d75fd316877f2bc78a799a5" - -Core modular exponentiation (Mongtomery form only) #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c1b84b9d5e77d57d55a74c298bbdab6e544dde53ce6ddc5c4508bcfb6ee2130b26f02aa0e9280a596cb06647f5687c5e64569cc5113710de23b1c99b18060607739a9ac020b26a43d2d117a6f32dd049a38854c408d8e174c7613ff6cac7eb798eb1a37510aa0227a832074caeb0d300b3a79752831f322f8a27c76d65fa3fba" - -Core modular exponentiation (Mongtomery form only) #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"8e9cd4ee34586c9573e851929d24f405dd632c60512f8b6f3d99c34cb3cedaaeeadffeb2caa7e41f10bb9fdeca99c1daaafcc86b9aaf84b67c60e377342719ea2f03d15c82a1a5b4e9a098cbbb9b457158969e4340f0a477d0c8f9176554da169312ad46f94ed63061536c5fed82db27d5700673a7c9abc949f4b07e90ae1aaa" - -Core modular exponentiation (Mongtomery form only) #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1e6572cd5ab38f8cc401a0044ceae0cc61bf804b9ce39f31eeee117cfb4b319149ce579d0b9edf0b6e19a58fc144e2ea00ba4c4bd209e603e1d621732968e4b925496f64cd55962972dccba91759c3a2a118c6be0f5ad7708fa60397cb346f130d8b1ef1f41c9c40cd82885eaf8ce73fd4890883104e9f92fb5f04d495b2c7c9" - -Core modular exponentiation (Mongtomery form only) #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"34d470ea30243874e3d9e73528d9b4c61202b3f2edd5d9645eb1ee67b48ed48486312cca6d6d13580035f884fb2a8a5a9072cbb43471da9ed24e0cad2c1c84c8deb2f0ceef99bb389f681677fa39bc8e34376f784a4a4c1a699632f8c68b24c4f264e59bf0f496f4f28d8871506fc6a666fbf4314be5dbd4b5b14f21933f68e0" - -Core modular exponentiation (Mongtomery form only) #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"b96d1991664cc70bddd620c8bf8f32a8fe13c77841e0db519f6f8531828add88e0e14030f772b60d90df2432455a999e84f16424bfccf3d62774940bda672016df90cde178fbe78066582f55bb7e82d005114e30b1be705839ba98b175ddec8e8920f487d5f4c99068af98998835a01343e2318caf4bcc2b08d9f6a9728258cd" - -Core modular exponentiation (Mongtomery form only) #816 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" - -Core modular exponentiation (Mongtomery form only) #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a94cacca8d462e4d353ddc5b2ef00abaaab1c4489c24f5d10cf8aacb9db5dd74e22d5e0f27a539dc3c917597792b93d5aa6534d5a8e8bd0d18fde126388fcd2b5cb925d346cda1b926ac55e32b0c67d06e4201ae9b6fbcaebde5df8b98f421d002909ba7de366b9214f63b1104afd8f26f676d535a8fa57199276d9a7a7a2370" - -Core modular exponentiation (Mongtomery form only) #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1682a80fbad1e9bf672066f0edc323d5bc68d9e3e475360f030a535c4bf848d8cbf2b437f6d488e644265cf33508f025d9c1041585dad65efd2e9bbad9110a2cc538b88a0dbfe850d41913f0829eb1068b83e38ff50c5237b43aa9d20bbb59c4c995d98ca23d0fd2801a496b3ec86769fb75052d51696b838fc9bb9666b2814b" - -Core modular exponentiation (Mongtomery form only) #819 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3d4990aac47924eac62b02dca879b083ce621dc794ca6292601fb8a27a1f1ff818a846a16b013b1461f980ee523282e15f4b29fa8b0a2814905b0df757187fe34fffa8e748112b8d917119dbefbc006fa6f253d1ab15257e55d8745ca8013f5aa75fb7f622950453985021aac09085df3615263fa0d396e8fd503e0b1557c004" - -Core modular exponentiation (Mongtomery form only) #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Core modular exponentiation (Mongtomery form only) #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" - -Core modular exponentiation (Mongtomery form only) #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"b31f6767b21bc40d07084d7eecdf63e4888199b4efed68e2dfb5c57a29c5b1d9091f6a2f9c82010787b247cc3a6cc306991ccdb41b51935720121d1c50efaeb1bddb99df0934ced3ac902e3aaaba96f1ec2591d9c87b8ebba671ab00756c36ffa14768f83394e940342138d85183efcc023cf99f58d04a0a60441b753a2f15fc" - -Core modular exponentiation (Mongtomery form only) #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"591a402256637575b0a602fdac9f65045ae319e57295ae5be422990f5027f6a9fad875fc6af7f42312289b26642fe4e9602cfb8da80c4aebb2ba6140f3a67b854915e18fd99fa76bd01942c26079bca97e847369ad8ec6fc39f49cd4f5a04255331aa38be33b328db434e6f261f68e867a764a58b4357d90081306683a1db56b" - -Core modular exponentiation (Mongtomery form only) #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4484ac5ce3be5ff6193708a04d796c9e49e19aedbbb3aa83a7693a746ba42cdd83bd430da51eaed133d5aa315d865cf10d69cbbaa3862127c223808b3c24766446e1595118cbd9bfa9d94246ecb897e5d4b4232e848472ca95122fabe58f108545a00be746734928a8bf98635ea7fe7748e3ee04d9a347fbb0e625e7e2e8f5c7" - -Core modular exponentiation (Mongtomery form only) #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0e6eaf76791864ac8eaea55a17e73e7f8519f52cd00c2b70aeb4bffd71bcf1366169adca4b78a40e6455a98f258e9ffcacaa5e6acf3ff3a442be465be1d0ecf2eac4d99d326a02e3bd179438bbdfa3886c685b5b928420f7ff1b539127cbf37f2dc5ca2bb2c5d99da9e877bfa8578069a7ccaa9286ba84ec3deb8b78303d1832" - -Core modular exponentiation (Mongtomery form only) #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"556a1d408f2ae4f88b759ac3502355e1e4eabae3190783d2b90488aae9855f7ef27f79dc86e5fb5cc54df361c7ad5664fe772aa8e3ac7a0f08a884cffbea532fdcbbaf87b42f9499f54d4c83cb347d431e5d92c005493aa02e741af0c0ed86f1c02fff30eaac069a4c3356c4c135c9ee82c4ea7057b0a75cee80ac229c082d5d" - -Core modular exponentiation (Mongtomery form only) #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"be1168eabf7ba5f5b5d247b1af4027da3f4b6cb2a3edddf9f8927b9b41e81bfcaa98a3cf437e8046bed1b54892cd2909ba741a6f66116a026e8584b212b38aec966f754b55ab8ab08f61d41c37e03dff2606c5de796f0edbbf274a817d0e3650bdbe111127f5fa3bd733e1282fe5f329acd5c627a864c4ff38c58bfa471c4656" - -Core modular exponentiation (Mongtomery form only) #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"181c049d630047f43ec7acdd918ca3888dc87bd7c98c031a7929f17062aafdc747e4ff957dcd41e79df6e5c3dcd9bc5714de94e7d4689af1b3f0a0ebf36a2a5c6bc69e060aa75420be558b1de1e3bec628ab653961d46d35b30c86a6b9b44154743547d20222bfb353b906996beeeb56ab0e470f5dbe509c2cecad76ea3378e5" - -Core modular exponentiation (Mongtomery form only) #829 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" - -Core modular exponentiation (Mongtomery form only) #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"62b0f7b96e049b69bc55feaef88abe5954a8d62074575a9ab850e303bea31fb27ae7ea35c743a5e54fbaf0e09b9c4e6e9a119316271af1fba6416cc6ba0df9781fa10fc615cbb652e6041840cdbe0d854947f7f1d563087c2f4d4a4c313f80bbae3ca4faab4f6bc8f1be4c08c416793451c86cd8e89797de6bbcccad49409b08" - -Core modular exponentiation (Mongtomery form only) #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"22eb3f4f020a07dad1c96626684b7d7143dccb084448145545464a154eafb8d3c9f5bafd0902573a5a16f5588d3324d16ced67f005920e150dae55917f7f5da877cb252f8fc8cead32a4821849a8808eadd1e0c5c3e21273e12e0308b3b35830b5cd9889f4deb5bdb9e1fa2b8068c8a29e1db10c73e983a656e78220dfde1d55" - -Core modular exponentiation (Mongtomery form only) #832 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_exp_mod:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"65acf4279e5bc194fbd6f729d3ac71b1837c5c31e923ba01755144bde63f002d0b56d3d9d752da5db46e014b703a16df844d22b2b914ad3289fc153215386020dcb03bee4e42822d91f4d32ef5fd11080310d91068e1fe198a1cc5f3f048d2c749a003a553f60f8a46a15c9627f4864940de5747599277b33d990b03cdec3cd3" - -Core modular exponentiation (Mongtomery form only) #846 0 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #847 0 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #848 0 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #849 0 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #850 0 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #851 0 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #852 0 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #853 0 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #854 0 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #855 0 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #856 0 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #857 0 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #858 0 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Core modular exponentiation (Mongtomery form only) #859 1 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #860 1 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #861 1 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #862 1 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #863 1 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #864 1 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #865 1 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #866 1 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #867 1 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #868 1 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #869 1 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #870 1 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #871 1 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #872 2 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #873 2 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" - -Core modular exponentiation (Mongtomery form only) #874 2 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" - -Core modular exponentiation (Mongtomery form only) #875 2 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"262954d0f692d0f7cb7d6df65ce8ec6924be94c9161798a8da4474aa7f6b734604712ea743d6b3376e135cb6f8f7d357623f0314fbc9eb11048fb783bd3234b191ef93a80deca63d1189e4624d4f121b4f4370b13ac90c1206f5d805a2d7da71572b9b2281d37fef010cb7ce857779a3da908605939514d83c34acc24be355e8" - -Core modular exponentiation (Mongtomery form only) #876 2 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"4c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd0" - -Core modular exponentiation (Mongtomery form only) #877 2 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"1a0c32fb0b0849f3af1c75d6085bc9f5abb1b680023a3ce8783eb7d6352a3685d83f19c524675373836b11891ec45fb25b41f1a44181ead2a5015c49959d9779423eed68d85aea31e37ce8c1c7a704f140a86eff06b42cd51ca8d4cc066d9af89dde0e45a4bb1c9aafac6c0cd6175bde1302da86860c686156ddfe812fe6cc1c" - -Core modular exponentiation (Mongtomery form only) #878 2 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"006342c5cb8b9e6349ea22991bc39b5bf81125b1f44e650541ab330ece2748808152be0be88c6968c9069c2122d1fc9387c8c2e1cb1ba2411dae9af8f7c793ddf52eba5629b9e527989ff8feb6619f8b8aa2fa9cb0087ffb384cd90add09ba29abae5ba81890450c4367e2b33c9549bbe80e01fa23b11ed8b08382afab433bae" - -Core modular exponentiation (Mongtomery form only) #879 2 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"50f28b6daa705ade934d8b9ba7ad73577eb07b494d32eccc909fa2f7a893837b08dec6765106e9d9671f985b3a4a72bdb166bf085ebd79226b209dcd87a56d8b2e679adf57de85a99c6e6b7580aca5c6309bb8bc5146a9b12a1ea1dcf7604c0e87b08b7f1bee0ca2a198ac694c7cd93e787af509ea056bda6bc6c43bbe6c8e3c" - -Core modular exponentiation (Mongtomery form only) #880 2 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"19f1cedfb44a20609b48a254dedf8041944906c198ed8b086c7330633f39b759eb26e80f73dd1eaed488f3a25e5f08075ebd9e9d41494c9be44ddb4fdc50f647702f3b5717d897127e310efedbdef37f694bfca4207cd98fcf364fa4759df8d849ca29cc669358fd73987673436f96e8e115adf45d8cc10fc0e738aeafcb4e8a" - -Core modular exponentiation (Mongtomery form only) #881 2 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1e3b04f1cd93471209d5db8f10e8c29aad891bbc2b58f616e91fdf5e0bbbbde42930a800d0245c0c9931801274ef1a722fa66457f7c92ac82a98f3d0665b7946dc284ff747c955a79b803a37af66e4f637d5c8d1f93a3815e3f6c2b81fa059659557c69f11c03bbb4775cf7352b9380b3c8c2198e419405ef318d22ca3a43129" - -Core modular exponentiation (Mongtomery form only) #882 2 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"342bb550c0e415e803227a7f8b151d78b40da2cc1893e269df507fd098cd832dc97aab6863643dfc0ca41c175f1f436bb98bda2f13f312d7f0b77c21c59fbfe9404aa3e66ffb5968143b9693bc5c12ae45fd71a62f656c881f548b8c10801603da4c40271ad5d19dcd764128c99a7570f955d0f01b8bdf25882f769b213c02a8" - -Core modular exponentiation (Mongtomery form only) #883 2 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1f699d53044d0af1e1f7ae95aa88309ba0284f2d588541d7b94c31c69aec2d298098af610f969c7952c87ee5d62ddb9a3740765a6bbf041ebdee8932188a6ca781bde4d5f7649373ac0feca06154590f7f9a3d53d55a1152a7628b7d191e313426c1d0d327064eea6990a0e95f8bbbecbb9a47dd03564810ec67308c99f65726" - -Core modular exponentiation (Mongtomery form only) #884 2 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"52e7ecdbe1cd5b9f770e4b7b6f5251d7e7b301e5329a1f0d976e565ccb4e4042ad667de3d185ac1b50eb5927758686eb96f33c47ddb27642b48796aad3372d255ea1b25236c18f38c7b430757b7c840f6e48b85641e0fc53755422cea55c39227bd72adf1ac525bad334d7ca768071c25d0402913c46639c84ade740ea861669" - -Core modular exponentiation (Mongtomery form only) #885 3 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #886 3 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" - -Core modular exponentiation (Mongtomery form only) #887 3 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"2aee7f6b15652b16c4ed1bb5288609f64956676238da8bbdf58d033fcf58e1aec4ff547c2c51899e5bd5c84dd816cdc24e86e3779b4328732521ae7434d87b47c42d861d0faa3b04b3bb20ee96f8f45eb92bdec762222d9447d493065732d5bf82110e86d20defece12e4ec8562668d855e296c64607b77343bb425a955fc0a5" - -Core modular exponentiation (Mongtomery form only) #888 3 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"2d0d371f4a759f4ea1ec8d09bd7127bc92e07c59b625f440e9bf394688af1f2f39d80a10d272e452b8177cc67d4ebcbfe501f5325c47387a24eb0857711634095d47e328da3de2a5fbec76fa88237ddd4ed1165d88d993e84272a21341b6d5033f2a520b3b929fc5ee40c956f2ad8a452ac31f3db83d5c8d785ea397d89e102e" - -Core modular exponentiation (Mongtomery form only) #889 3 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"33695e3be9a6fbf638eae1077c32810f6f7ebb402e082dc9c655db5ab4b1d7b098622acec4d6f46fccdc9a306cf689b8a8732a629f53688f2447160125cf5e4e2896fa4c39f8d989d480791e5ba31a590fc0bd1ffcffc6e4324ccf3a0142d2ce76761c987820af5115783902c842ee8ba964b8a40ede4bdc1648c74fa258fec9" - -Core modular exponentiation (Mongtomery form only) #890 3 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"36d43d5b63bfc48119315b5d8d7ba8b39ebac665c1ee13bc0c5d802caa27e67bc66fa31c8e363b19ff4fe8ead6f1483c27d1ee98a0c83975d1c3b852e04aa70083fb4e4cb5c491b67caa94b5bbeac862d4c59b36077e896099fd45b48c81fb07edf8dacf5c948f14bb2e8c807f08ed5b57159ff932475aceefbba2f307141c9c" - -Core modular exponentiation (Mongtomery form only) #891 3 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3dfafb606825a6201d60f326491e1d54ffaa6007da16ad46cef2def4609a56eeacc66a4a430b91165eb5ca28003aa2f852d7fb0db0bcf8bc1d32b1305df1eaac4a8a86dd90c8699d3fa02e191fdf0f8aa3d8f3bc221adc727a0c58fcd68d5bf0b5b20c0b800ca656789b4b4174b8fcb75179e9c1983a227a7ba2869164f4c931" - -Core modular exponentiation (Mongtomery form only) #892 3 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2bb6924cc0ae607e7c4d3781b22aea1eb517fd825baf7f12b42261ae03ecc3cba6d898a17c9c198bcca9b7b56df5b6025500f0ec90cc3f175a1c2f178c98aabbb4b86b43c4c1b4f58265d791d35f9f86f5ddb8c6e537ad557f0374426c97b5d526f6d7bf231c4d7325b9c3f7c4dfc2080b19a85e33f0c533c943414a9d57b3b7" - -Core modular exponentiation (Mongtomery form only) #893 3 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0ed03b624ed6cb133ee6ef7088922f2b4ce944467b329ce90249ab615c5d5c3724f315907579bb5b727b7e5d9af1914924067e7ccecc246b38081ee493008d8f2b5f98cc44d40d8eb6045bd3df34f54004508ff82c808871d0dd68fb42e1c532ccb5ac51c6d3eaf6ebad4f838e5c08625175cb118cf031562f6f5685cf9f0b53" - -Core modular exponentiation (Mongtomery form only) #894 3 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4af8b52a974b58b4d27ab5fd013615d2c1111b2fcd896a3c2f0f5b99cc0c803e6ee75addac7905caaf563aa8ff831cb4bc4f4e784df64faec67f8a356a02abd4e2b0dce8f403918575f6bb7afd8bad229a0a9b3f7d65219b17aa2841ac7e5c1a36fd7810316dafd28bea42eb769d5e1fc77361da9557fde6653a22f439385387" - -Core modular exponentiation (Mongtomery form only) #895 3 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"432484cc60578c91c2422dee4cf92c2a2f26b7c59c5caf3e9d6e119c9c47b087a3e6e04360a43e0658019b90806185c1eee345d2eb332b7b211d98db3f4f2909a68c6f7e71762b70bf29a3ccf6ff24a72ebbcb663e3641d8703ff62398ba5b6a62f8b568c62f2a548ba206c3732b6c1279949df5742e0eda8a62baf90b2a4660" - -Core modular exponentiation (Mongtomery form only) #896 3 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"158d266f0992a03eb3b9814b4fb45a825a95b891c9cc1656658acb5d0c4f0a6fd4f5185b4272ef1f82205eee49690d91e3f8e810fa147fccc7a6892165c4a5d60811e0d19e5efce0411363831bae162a85180ebe2610106ef4ac40df31e08624494b7aa63eff382f74e640ddc84f26d02f6bd8d03ca3cc97a02991b508f2e5c6" - -Core modular exponentiation (Mongtomery form only) #897 3 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"08818f73d59c5bc7235169402772d64318f358349a2f751c555ffd71f9fa2ba42a478f37289ebd4b57d1f5504023a4ecce852f52aedbc6d4389f803f217df5521b12d293e4b5a3d4f3bf5c89959ac3ffa28ea8e8d83f1e0e3ce40bb15ad2822800d5cc2be57136c46a5369b01d9eca6223c9483b0a6b8b31f0283a010b2b9c46" - -Core modular exponentiation (Mongtomery form only) #898 4 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #899 4 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" - -Core modular exponentiation (Mongtomery form only) #900 4 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd0" - -Core modular exponentiation (Mongtomery form only) #901 4 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"360fd121d368e1dd555b1d71b2e480d64a8c78e1d37fb85bed6c33e94b490898e4179b0f073070225e5d514ea6dd9525fe3ff90a7dc895ea450fb30e6137ec22c1ba8fb57122c6b02e805f9eb422731de403f39ffda18212788d7b2dcb19ced8e4424c785ed66f75e887556dfc6abc534fd640ed4f1b495ce92bfbaaa89719fd" - -Core modular exponentiation (Mongtomery form only) #902 4 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"30c2b643622fc389fbb6e99b5350170c97ec6fed652b837dc7e12eb3626d16a966128574b7be4f78c2a18cf4858afb89ebda79c10c1dd5ea7f4ac62f29f934ef2868e0791b097df07b77a6d856fb0df9d6aac28ebb6c1ea0b81fbeb7a4a3e2ed02f77ecf062b5dd637890fb3d21f90c5918fb98b08b991daff09a7bad35a0472" - -Core modular exponentiation (Mongtomery form only) #903 4 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"10cc72e0ae5400799aa7177a24423198410de0c3989bb7aec3a22bab1cbd2967017d6e4d94fea76aba3d5a91e56da26fcff750eea401780d8aab4fd6f2323e47dbe6a71be27a052ee8b310f7d44f7d956887410f73210ba081af17ffb6d76516cc691fb6d787cfc40de9bc63b0751a929833699b8b8da47a13893f8aac1c2822" - -Core modular exponentiation (Mongtomery form only) #904 4 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3bcafc5dda22d977dbbe8e47e99c4b67f5b0444901d132e5467e09c0977f55e811b68050338b34e13ae65088462a47720d890acbd306f3408bf1e534ffb28372c6def7f7021aa7a1e50c909c4ebf6a003c889984552e25cff9f87ca0bdac97af56dffc79d20df98f709bd4ee41e6fd6d5faa4cc589fc216b65d4c6c78ff1b4c8" - -Core modular exponentiation (Mongtomery form only) #905 4 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"19298748041d54251308eab0d5fad573d2de41b1fb2c1875fea327dacca243b7a8bc3a13716251c1c5b10117e958a426cbe8027f86c06f364b28437599d5e57a3db9ee5cef1ac7ea3fced8621e0e2901795063cbd281aed24b4fee3c53536b8eaa0eb6fdfc67cd58ede98896e557e68a5c512e21c35bd7dca36719d9eb7e91b8" - -Core modular exponentiation (Mongtomery form only) #906 4 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4deb62bc209eefe74f1fdf895a77b47c2c5919849ad3a46661009211b2fa4948652b86e2b5defaa8c179a2eae910f27a6c77964536d50caf4cceb562b8e94a41bd032b8d9d57aa8b51d9d3c082d0b77f493793fec3db60f18da191033cb1619ae64fda14ecf10a851b95ad318c831239b061beda072a954da0e919080e039a22" - -Core modular exponentiation (Mongtomery form only) #907 4 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3d2604a47067efa680f15dd36be182cd3a0fb48204a3e0123ee023ba2c00f865a83150c0ebee1e198fa89c7f3f5db669a2da7c6bd7307be1cd5d181e6c80f3410b2c72353e2278a0f3c8446393509162128abb992da8cc8d0d8ae8149800f917b64ee413180ab3757a9424524568a9b884bae0c0b175cdebf9fc345ba14b0140" - -Core modular exponentiation (Mongtomery form only) #908 4 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06801a269f4ff551ad9b145110080626d3d3cb6193daec4509a4c5d29a4d167c5a4a35ff985cb1e5a48c86bb9a88f961dde3ed1da0af8ee505117e0d19417767d07b53d583bb493796bf7767d7d42b87dc8cda1527c1ac125ebb2276ff03d488d4866ff4076e2dd9dd917e9e224c36712042c964b26106a5a3261b9e90d2bd49" - -Core modular exponentiation (Mongtomery form only) #909 4 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"12110e1ccf59d82dc5c74914bf55155fc8efdc8fbe5273f088c537076bddfd450b03293be7f6ce098b5100c5391f463d82b9f44ca3fd394051ee57a9e9d10c10efdd2e5483685c61f96d21b0583cdc71ea44790c5ade93f561e3e312506ca285fc648b4dd035fe55441f86c7fbd9e9c738ac6c702dd7ecdadf7fd4ab7c6dc203" - -Core modular exponentiation (Mongtomery form only) #910 4 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"524925b3b4b40404974b3f184fc48ba0edd5799e35533b1304bd4fa1b29d0c2e4619dda54dbad22d994dfe2161a7a58c50e34e8c8abe7e8116e472e7d327ee92439b04f284ab11098885325ea6b62d27e0b3adf9199369ad28a401f3f2db46b50d1eb647ced8d1bcc9a40d9e840b0f9bc5cb35ea74e98a71f1aaf0916d9d3630" - -Core modular exponentiation (Mongtomery form only) #911 38 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #912 38 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" - -Core modular exponentiation (Mongtomery form only) #913 38 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"34fc6a5cb590de9d67f2a62175beda6169aea367e2a619728ba3b103a2e56f7e18ec34cdc2901e10fe0ae7cf9ca9a7ebde7ab9a7d89ed6cd333ae8201abfb6b71be04b1e644f091d1d39bf0a1e73801beb23688477d83fcb06bccacb279cbc56169e4b6c0ebc857b8ded1ccd677db3bb42526fde02d99b0a99d9e0253c46f30e" - -Core modular exponentiation (Mongtomery form only) #914 38 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"24338aa31f46cdd81b2b4259093e1e131e7457b429e2a504ca1d384446ad165b8f7b466127ca591312e99c9fc5862522c4c9d68b51f01e5c06345d50a32e84e663387b505aedc6221e358c9b5a02008343568bfcad087b5918c83778e26ea6ba3c6ac1e03691a2ee42bb83a67b7837b020c5e6ae16d3536254cb2ec088db5dad" - -Core modular exponentiation (Mongtomery form only) #915 38 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"116fa87fce0fd83dbcf3f170627f8097ce31c4323fabb1b510a8c399f548574d676893e7f81a2f63912d9faa2e4ff2f26e65f18ee8508f32600421276f5f4717464a8d3bf1effdb3ad40a65dfdbf2ed20a320ff714a4078f72c1fa772b0c532e8e86042e71af240d9a11843987c3a82b05dafc1a91cf525ac8a6e6e03bdfd3c0" - -Core modular exponentiation (Mongtomery form only) #916 38 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"063ea3666f8efe4b25f829ad26eef88684d83866fc31b4ea2f1128dce946c684cfc368218ef7651c402a8a33403956889898cca8810054e8cd0474b9f97f1b2ebaa56a987ef5926b1ad400fc8404ea02731ff65adfac746d2128935203efd725f7c46d6bd0c577da44655b266436ebb4cb9d77c03a1e64aa0873b2ab11927fb8" - -Core modular exponentiation (Mongtomery form only) #917 38 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2417daee307667a8b691a66115017789a7fe845007063bea730d5e9e9bb499580a05f95e78cfaea639e4044d3d651a5bc4d922d835a39a1c969be4aa09d27bb172ca6d3e23adc052bcdbb279f09e66daae095d6d7e5f8495fd01d49763d9ccc142f12339f6d2350bf210ee2545a70f9689793496bc1548d808ae38ce49acc7fa" - -Core modular exponentiation (Mongtomery form only) #918 38 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3330c34d85ff2f15cd8d9bd772f8a974e730a5b3c44173f62f9ffcd3156fbf4f2269729c201d5ee8a589a8c4c35adb2bfdf643be42705fdd0d6f223e21d4d78e2173f97673902b459b6ab0beca4d6a46ed3810ab87dd3450218115a2693a1d694f96c3c3aae17c687834674409e259b93e8c65a27ae1ffdd011c683ff987eaa5" - -Core modular exponentiation (Mongtomery form only) #919 38 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2a3626f71a549b89d6b527f51d8c1de8e4482c26dd4578b5e4bd8bc5bb35a7a2bab985d8f48894bb37908713f562c3d9ec7aee7d851267dc2482b38b78f4f004b550a841824a728b09c532e9fdfaa9cd20cb3ed7071699631d3feb74ea75b1455c140b335dea65e1dbacd69dc7464d5f249ca2463eb0f7e665504f69b6211572" - -Core modular exponentiation (Mongtomery form only) #920 38 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"03b9ed70cd4d770397e1d3240d683c54e1eab2fe65cb7ee80fa4c558344016ff0a3775c245c7d9b1975a01a644ff4a157188f559b51799c5639be412656b398ed1d35a3ef41c0a6437751b685417beb6ea69c8605a9fa2e91698e0379ffab3702720cfae7d85cba5caa899c762ff3f9091d2db92e30af228d804a58e87234d52" - -Core modular exponentiation (Mongtomery form only) #921 38 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1fe7d3885bb41a40f22d73ee975f6c675e61f4419edd1b395ed03ff946ebb66e5c863b49d262843ad990ca92355c8d80ec0f866281e1676c5a4fa9cd0e36e9cb1aa61fae1568f6eb6f6e403c8880ea95abc82fb6fc3e7f44cb90b27be08ee92d4f34ca9fa79a8d773ecd1e311804e89cc6adf11ca8708863185d05d3173d0c24" - -Core modular exponentiation (Mongtomery form only) #922 38 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0e1ce404419b743676fb6ec4382aab03de03aaf1819c56814ce651c2c5948eaa389922bc59946413c666e962ea3067ab2ce11f9344b9cc8487c1335b1d106dbd6abe536c3295dcf4ff9b78e14b4695130830b157219f612864a4e361eb7d0262af1fd17b2712ab05355ef1c63bd6c55e611a50d32b254638f4e997d0e5c06cb6" - -Core modular exponentiation (Mongtomery form only) #923 38 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0fad3239c53a5e1ed1ba1c4621d5dd0f794cc15af5733a2238bb2c049ba289b9f13d9621a9b20492da8d8b3d4ec715a6d9841433fe0fcb22db17dc5eb5b2ef38152984619ab41114892b64d6f107dd8d11b36a5243e56b2a8148939e820ec6ca9b136f24bc57b6de72e97cdf0260fcf26d8d8291bfe2a23c93d6d55bf163a725" - -Core modular exponentiation (Mongtomery form only) #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" - -Core modular exponentiation (Mongtomery form only) #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"2a084546770c85bc300b8742b337294c955a8cf12ffe2377a2da2670564a6f7944d6005a5573a32f1bc08f29f40be8890e8af6e7528c68b540fd0b5c865a4db2c7abe1015517e3973ecf72dd62510de30fe7bef5b10942c8bf37c4a2abb241d6192f7a5a9570930e5f3e28b916b524c24b43880c7e75781361670154a9f229df" - -Core modular exponentiation (Mongtomery form only) #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"018b59342c2dc063faea68e1d8d9f6fb30ee693b20e5d688378f6a7cbc2ab27b691089b7d0121df2dba02bc04e0906ad29d9bbd9135e50cf7815b1bf68195e3d165d3efefca0d0a7c3bdf377497d6f0c3d65f009b16298fbec7296c275caef6183c2ef9eedf25ba30bd2110e0853046938698a49a6e45168fdc6ddc1e7feda3f" - -Core modular exponentiation (Mongtomery form only) #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0926a7943990ec6ff92999a938edcc17192b0cee1b5261d46f3ff6f3aad3accf43484b9ea595cd99c572858dead6cd2a650da4cc3b64be8e6db025a882d9e5c1603fc39023625b8114bf38413b3ef20a97b64734557f64237a00a9c5a73e96a2f6a49cb655db20d66b9ddf84c76ae347c079a96ef3b11ec2e57662e5574b221e" - -Core modular exponentiation (Mongtomery form only) #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"3aabb73ef72f2789cb172a1f784feea3862b18219f5d0e9d58f3cd5f13b0ca5694a3676ced7bb9332000a3cbc633629f0d8d8c0e242f91b68a3d43ca3eff9037fc7a77979ac5fa9a0d67e7984f0423f21b8f46e38636501713710ee4baa7f4a529fa9062211384e3aab6a96be70db4828e12a8bf25016f9c513382b714e190c0" - -Core modular exponentiation (Mongtomery form only) #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"32ffafeec37abb7bce637f92e2d89a58a2c5d7da5d157ae0d035f65f8f9a32a1b8bd588240102888d08bf03b2ce365bf071c575cf3817ff8c2e7dcfaa983a22b69915fe9c72368163e6624f587a37525aa894ffd8d7d09793599356da7590ba157b2c5c84ddf75c17f2e37732488cf443b8dfa1fb878afddb3d90c0afa75a117" - -Core modular exponentiation (Mongtomery form only) #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"20289e3c8e8d1edc0a31e649a687c4c4bf38ae46c64468f0d3d798f1b3e08f29f9c18a46e7f221809202c919f459f04541a889c93a8cdfae713751a556c78a77fa22f71ced0bc11c18a2515aaa12d7226fc9659d91ef8be7bb77176fbc125a64786ffb0e1404c874d1f4fc4b354f0b3d3c9d18e2143ca82760761ff48129f507" - -Core modular exponentiation (Mongtomery form only) #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"31d4e7b145ae88ad5721aedf676a1224b6d721a2ed9c549fb1fb6fe9870807e1392f8eee7afc145d5bc173061c71e93c4906b1d97e3822d728130d075917039d1b56109b60a33503918cb96f7c89d4541d5cecdb1ce402302c2d7ec2c4d5f7ec0684804ba67316527417c5395b9e712b2f1821c0ec9d245fec16c0d9e282b2b7" - -Core modular exponentiation (Mongtomery form only) #933 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0242a4b827fb808c8e35c62ab6cb4bd3dd02f546e6843f3d35cc62ac7973affb7ae84fbc55a33c0c793f1ece8787b5d5b702bae7079552edcfccbb49b2cd6ced2ef210dc36c90219aff391b8883ec016a24eaa16631df4cf805d03918e1a30dfac0232cfb5731c744d5f499e66f76882e0b1db3e59af82717b9ca4f82dfa4a37" - -Core modular exponentiation (Mongtomery form only) #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"49fc1503b76a3ebe47d7cb7058040b67a5da43e0a4da883b2d079a0623d085d84efbcca04846d25afdbe22eab3027ee728bb7fa5bb90963112c9da6ace040f20fda03b680f23b07036d259b849357794d98b577d08c37d733ca47d619ed8b984ed774d5808881494e575f640e873de05763548d235314d4cc9192964c9ffab07" - -Core modular exponentiation (Mongtomery form only) #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"50c809d65382431334865446691abdb4e71f1331f4980ce5883d51655438e6e9467b4c80ff6c8a02ad32cd73ddc01eb5972062a50b700ddff1fdd614c48d52787310a445c396d5b61616a57441675ee08f97f962667a51dd200da372ebe1bcbe2c8b26a47c13b946d1f2dd51b76e30d7d50a997a13ebcb56177f97d6e4e50a36" - -Core modular exponentiation (Mongtomery form only) #936 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2c982953654fb7805efd0f1180347f33a25e90e68776917a62fc7474925c99ede93e8e02ebbcb7b952e74ca11e0b2c4c5a0f2047fde987dc3042f277c644a773b3705e55a8f3a6b03f5b9231c268eadd3e8ae482af7af200b3408ad523c622365a6877ac6c8f5fcffc3e12a8af828dca3992c2189aef278f1d6d0adaf9ebaa9f" - -Core modular exponentiation (Mongtomery form only) #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" - -Core modular exponentiation (Mongtomery form only) #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"4e51c9ae328241b1ca8166979b06104883d3d1430a8685f6aa71d0dd1a20aeb887da53dee2cec3090192f44c9cb217fa55cf5a8393baacfbd6d98e27010551e4a56d0862aaab7fdf62a5bf24fd9eb6207c35e734d25156b3473ddda1377aaabd2e23e8c14a818f17c5887f8d17198c82cd2e14dad3c51cf990da8c5e10c77708" - -Core modular exponentiation (Mongtomery form only) #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"1e1775c9afc03735c1a758cb766c04c3a197b33879ab04e164ece425a749c9d133f07898841ac0683bfdcd18bbe4fece8ce5eec89c2985ec7f030ee7a010de934764562e67712d3266259eb3dd0e4e8abe8b6465122df88b188b8c680055b864102f2ecb1c15bc901a0a0b4432690814aeff7770fe9bd415f78d541755178b9c" - -Core modular exponentiation (Mongtomery form only) #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"35fdb3809bb631058a35cb0baae078301500df5a40709b29ef03a3139f680f4b2d823609dcda5d53a94c411297737dbffec5565b5e88376da9cc94894204ebf980b8fbaefea2b52b5da760327068f74158b148a87d1d075216d804ffeff007211749645429d8de443d64f7874bc2cc2a1277aa4dc06102868ec3f3277ecc67db" - -Core modular exponentiation (Mongtomery form only) #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"37b216a14d7c5ca85a34bb60e988d26f2251a19b92580e30c9bad649cf61d073ef091ce19cf9cdcdc7ba6693cddcaed5ba311fb340dddbca18e76b924df2fe4710462ca0db17f3e2f8174ec3ada9e2827cd146e166e6d5dfee8e9f4a01d8be6dec2aa517558da6cbb9d9114cbcf5c4de948c41a4b3940c520b168419e6252e45" - -Core modular exponentiation (Mongtomery form only) #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1a8292a99e46e556893a21f99b9759e3c198817da394cc385880bb4997cdd0b1e97bfe0f354a1ebc960a9ab713669ca7206674272879a5ba671dc696aba9ed6573868f1b8675b77430c64f56c5f3b90083476c9a62d415fc1074e066c8c496c878d82c8ac91ee3b2ce19510d5bf637ebf5af62138cc844fd3340080b48f0f82e" - -Core modular exponentiation (Mongtomery form only) #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d4bda626c093d4d074bf1f7d75a72851823b0f9d1bbdf891c32e747dbc5dad156dd9504f353b67103291094806bfa7d9bc99df91b6f90c46ce3ebae3b5f0359f1676ad48146cc14f7fdb80c38a8d4e6c369f4a46913a8131db9822511e405b6b75b0ca73ee0b74f6e6f17cea7c5b0b45b0e816abb5c7f112e2e7e0ad47a9a04" - -Core modular exponentiation (Mongtomery form only) #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"33cbf257f3abef7c2a1593a62741a92cb40ae78feb90846ff7ea0f7124600b95646c799b542f6a31f51ee6bd03b144a536460366d2a9a5c3b83f96f9865b1b01e2bdeaaac9796ed83edf2336c2b77ce43eb84a98497a03ba9e7ef818aa1844f183406d73eb6718b19a53ad5bc27d3d88dd708e54c15b379e78a8884de49b545c" - -Core modular exponentiation (Mongtomery form only) #946 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"49831121c77dc65541da23a8685aede803b719b98ac493c50741ce702cbf9c4c1340457c2973640825bc3fffe4dcfbf4bba610c872bd846caf0270332fae8efc6a1079e01b7937bfc705574357a5497008674734d5360e93d2ee5d24fddf851e86336994433b2db71589e4037a9fb5e5c2567993113f12f960b3b1e6b93c5080" - -Core modular exponentiation (Mongtomery form only) #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4973e9ec1ee79c3ef1f28a84bbf62fe4216250a55c1a55b6b1f05b320e70d1485d32a3eb2d73927650f551ffdc174f734fbad7267e7facf97a7b06c2b9891b91fe8d397d320993848168a76483c14682032309d5147afae061194e596405f0f7dc5a6ad98cf7c1f3dee1f68128b52529b64a574d27080233999778455ce42d70" - -Core modular exponentiation (Mongtomery form only) #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4423296df0d8c1d0670bf460d3ee39dec14e71cbcfd4717411066f8da3551a17612088b54987af98369fe88f1f0c6079465b0c6f733ea9707e5089e1bad6ea89e203bf3b49083f016d599b842427ead1f3816916ae1eae67624076e859b333226d1caed88ebebe5cae6a305a893d944976ba6cca8944c7638a53f5b37a451845" - -Core modular exponentiation (Mongtomery form only) #949 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2bdce19fba556650952737b83a13880ecac0be61d13a2f9e42988f2a47aa897324fd753bd02285ae5c10af9b7a3a61813f011e8c69d5e763165cf4b3f4307c58fc9041fa7036550b1e367b800452cb1f73354740a772b9add8fcfcdfaa7bc12857ed8ff8449a4fd1e25d91f1103300a41d57bfc1380f34c236bbdc2cb6c958d0" - -Core modular exponentiation (Mongtomery form only) #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" - -Core modular exponentiation (Mongtomery form only) #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"31933723e20a520193f7faa97685fd5c10c0243d962d3e49977e2c2e055cb2c6b11cff72b3e491de6a95ae80e2f02bdb937bf5734ccce023b54f42e326e82d20dbdc58464dedbc65e2558d287489a4b4723c9be496a31634969ce451f3baf2bbec715e7db4c7dccd21b64a04b93935d07230365e8c32621e913cbfdac322ba9d" - -Core modular exponentiation (Mongtomery form only) #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"205b779500642d955c0e3eb1604b1f6da9613cc50153876f46f17b74ae306122f09e391e58ca6e07aa2bf3b8718cce8580a15a1e29fa2e4f437c389c4b859d7e4bdd14c673e76c3ea61c928ebaf79eaa39400dae174fc7cc9564017a78e6becfb2246e3e87bae283e3e853be1fd1c52f91caf78e475b2c69111e723f6e17910d" - -Core modular exponentiation (Mongtomery form only) #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"361e8a1754510584493cb51513bc3755aec898ebdabe906132fdb3187813dc15ca4d6c09f0f188be3c82f78a83aa5e4c749b6a791c0b6cfa64adb3d2db61e6a6cb615c0b0aa8c441daf0b6176b7c15f0affecb78aee37d90e754447f5d3346a3816a3c62715c2c5ec345d1ab42b5bef184827deda5ab4984362f964e60cdc377" - -Core modular exponentiation (Mongtomery form only) #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14f866f810bf5fbdef0fbd65855dab9ba1497f59da4df4e9cfa6e13c38f1b3ef85854bbdcdfc8956e290449903be0bced12b3eea7573bbe5a27361dbb4f56dcbe5126bde6eecdabf956b7fa702ee1d218695bc58d5068719c453da0200a15abf49ef4b6ff6213c05469f8664c854b085bc6ad6e2a6330759e6a33424ffc97a26" - -Core modular exponentiation (Mongtomery form only) #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1428f06201c8d21f0ca47eaa994f3b4f2250851e9067be5e7669fd05297208f87c2c41f8fd74f353a4331f7f293d4dd00dfa907b48a52b47210989dde13200eff4bd9e3b272edc0c03debea6c2f03e1daf0053371688044feddb13a9f51c62f67afe8727abc47d61ed1a43984c0003a69fbf136d4827f3eff4bf93f52a0b0a09" - -Core modular exponentiation (Mongtomery form only) #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1dbe839970f889b81d50d18a3ca8ee61963b1880d01c062ddb25f977c8a80f2656ba3e07058d45a16d660b8c7e24be9d639d690af5017d255e2027ee375f073c8e14258988c93fb587428d930da6f399b04b784be52540a92e2d54e3aed8044a12b6420295d56328b567ecd5f47238a5f9f74b48ebcaf0caa5d550213c52418e" - -Core modular exponentiation (Mongtomery form only) #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"49da28644f4252ae752c3261caff7c0482242d1df28663bdedea42641d0e9c96e75c682a536a4c71babda65660b0a6c2bf33d30af58a8a2f9416c12b6550aaaca270074c383a8ad9ca801aefa974f5b851636355570ee18fdc03a5d91d8dbe1be7f811ec74e2f0b4d00ad35c9b5a2b2d3f592874273645b2598b0d681a331da0" - -Core modular exponentiation (Mongtomery form only) #959 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3960be04ef8d4bb1d17eeb637a9bbb6c0873c49186044442f58addad7122d7d199655db2b18937a424e9c2cb797c7e28eb1134cde763dd417a8b6e724303e59e48b00a8b95f2350bf40c2f5b3a0c6fa514d5d0fe99fbcce1d5aabf3253de84cb2aeda3da4cb0b656c9b54e124afbf0ec66d65a76f7a407b13751d9eea7303b27" - -Core modular exponentiation (Mongtomery form only) #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"32c3d8b424ddba25088e48c8353a2dd9877a9b3886027d91871ae5caa166ec2eee4e936c40855789db1f21c817255218b1eab7d02a357a426aaff550515b7929d2dee9cb807063de71d9c801ff9e87fd3a90242e6dd495ccc5636af2d098584dd2677bb2c083c9dab9201b3379459047415ef98be47e2d95b18152c1d05b9ffb" - -Core modular exponentiation (Mongtomery form only) #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0ef389f27a3bda5d3d1adf1932937ee514fb626e0065ebad7528cbdb6e49ec8537df35edeb8fd4f5e18260f0e251caa7cb1c809ef80b0111888f82a5227d11b886489882e6feded097d49c7e04cf60d2bf09407a67c98f751d143c339eba4bbd3ea2310d6a8091f8b271b218b1990147e6a5dbb81fd143036bdd5962e47f6242" - -Core modular exponentiation (Mongtomery form only) #962 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2f66ccc738faa07f7459581144fa31ddb8ddff7617dd295db7d82b04cf0bd8f6d0eb83eb568ef76e1470aa1217dc149169353caf3b34b39199b872b0f9cbd5d55714521d10281f6abc551aee9f0f0890c03182f3c2b86a8012e21b9ae9b782ac9183e5e542755da62be8689a684c20a5706ab693e6ea384f57d3fa2c77dd81d4" - -Core modular exponentiation (Mongtomery form only) #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" - -Core modular exponentiation (Mongtomery form only) #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"5143159fb5c3f4d8c67e5f5e67afc2801f903a49454f0f45308a7ec7c7ed0caccb9573f1412d8c18e16f32982998bf7e1f6c8cbce56b0289dde83f9386ba71332075978e67205da842420928c55b70d9c77f582a7c20fe945d1b54f95b81a287d963516deee140c5effe24be2fb00abe77c3e4b86292157a1100a391a0fa23ab" - -Core modular exponentiation (Mongtomery form only) #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0d1e98b0a49d41f3574f9dad7b513c79ff1a60398b8eb413bfce4963b0e86a84875aa7785676f7eb8f3659266d86022883b2e78fcf1380135ad2289e13d0d884bb7d707007596cfa28a2ed42ab5bd6f41bd190d4e7e5f229face19a10949e7538bd09a327cce32658b59d4eecd0e179fbd3b9cd5d489e09c8d256784bb79dbf8" - -Core modular exponentiation (Mongtomery form only) #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"15f9026235c63bca99d19a9670d5a4536be5dc9152e35c67ae519d0d2a5d064b0e2e1820c7c4490066adb3eddb0fc73c08626b79327ec1f5f3833e3df7efa6415ca35cef032ed1a64cf6f4428e2d58deddd3ba4878dbfb97d1f3935af5a7721fec74f9dc578cae2c6a533b5d470893d78a23535e8007cf851c7d3045b31b9ac4" - -Core modular exponentiation (Mongtomery form only) #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"4425783dba83a90c80376e2eb3a1c7f0b647e845f9b0480e0fe2d2057876f756eda7f0135327c3ec57b101ffea4a318787951686ef3cedd8c2054da236927d1025a34f4a8f1311a22ee79eff1be7827923df99899b8f5081df9c3f6067da12fb91195511a3c92a4ea6eaa655f0aa71a29102544762f48f7c0073d8c13534e763" - -Core modular exponentiation (Mongtomery form only) #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"039482a8d13d327c9174fbd494e5d8b2d5b41f2d4316a36fcd5e2a6cb12ce056cdfe823a343f5c3cdfe35774f7b286b10f93214816cdac557b05ef80ec7e3ac54fcb3f0e78f58186b9188cc8bd4c64764521e56ef4732077843d80a08c17e581b0a8c2d82eb76848cd1160cd860f662a2df1214e223ae99c58ffbe6ca84c11ba" - -Core modular exponentiation (Mongtomery form only) #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"530e9f04cf42910877f5a34490dd89c3d963e64360bf97ce8660602f33fbf3a01ed146b1605fca3f3d7f61290b88c7ec66bbb837713456a6f5b99f4aad54c0f5305e9ed7d84ef081a51a83d5e0bc94371c2cef6c27bce92273162d39c9b4cadfc74f52342908a0f9a72bd72c4f059d4963a62844cab4ea8ae0cff690a5eced09" - -Core modular exponentiation (Mongtomery form only) #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3e741836d061a08b7e8df3c69f6d8286ec6ca172cea9b3fc759dc164a864446390928846753c0c8d4a1efd769c8e0a85e44d3ef28beafa0d41b3a7c52fbb1e27af1c544314aa31fb87ef05aac278c013fa7df9512d1d5c88bed039d1bc174417632f1849340920bed9e280011371ca6fa7c2016caae631d71d5c612aef8fbd23" - -Core modular exponentiation (Mongtomery form only) #985 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14489a69bc5932d8feb8d2c8e664f919329cfdfc137095906629520373ac7c6e290bb81f58cdceda104e3b9d2d5275cdc818a10e352c327805fae44bd8646307d3737bb66e9a25f0e3bea32ed6c921439ffc86b3d3acb1b3cbec83f542d1620e82015b93ea934e4f0be2f0f1061d4d28fac784c02a0344d52e46879e68d1cdef" - -Core modular exponentiation (Mongtomery form only) #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"509aaecb5bbc90f5b097ce3384ecc962f69da287260b93e57b915d067931cd605298188afbe7433ed858c046b1eb790cd1384e6c978b6767777d5079ddca4d7eac5ef795667b0b2ac23e6bd786a19c845078db98699bbfd9bc139354e6f01c24149039d7ab81dace23b389ad5fe6cad28aa8ca5b9abe4c41c6154aa0c09c046c" - -Core modular exponentiation (Mongtomery form only) #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4665803d393e543f2bfb4b5fb92d04755f0f0e9c58d9ba7801ac23c12647492ceed6a47606c128303df2fa903baea691faa369f3cde0f4924a1f4ed4b2f0d822cec00240f4bf0c3098f37aa9645a0911f568846058e3d0f276d95ea82288addbd7f92cf646047dd4719f2765ec2dbfc8f94c498b1d66bf64bf12b215a0b48cd1" - -Core modular exponentiation (Mongtomery form only) #988 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0791d714204af235a62ece6657fc12ecf587a522bd467644687aca4f68a8a5e632df9afc86c0099792e9e8031c644ee8ac7bc2f7e33f6bfa0bc50a17eb54495889e107f6370019cc3563ff034bcc3803267dbee56ef5a186d3f7b3437541ac6efe1b545e50c0605939fed7a850042cbefb6a518e0ba58c2a039b787bf7513e05" - -Core modular exponentiation (Mongtomery form only) #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Core modular exponentiation (Mongtomery form only) #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" - -Core modular exponentiation (Mongtomery form only) #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"31ce2657647455593bc686aaed9aa88d2e7ae1bcc2f4a9ee150d439fa2fd63b4324fb4960288ff10568c6b616dae56f6535f884dd06b3fdf55262862d4ebe546ae8c8776b1f38e2228ff374a52ddc37cf018c120d3e15cc29b9ebc01aee8e94f7f39c81ee7d2d8f7e05da0b6ea090747735e82db5b733212d2b2326f7a784eb1" - -Core modular exponentiation (Mongtomery form only) #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"405c4e20039ede5649bc76f5053eae526d57546e8120adb7eb74ddced24e90bb0341d6e852c12364a5acb1d6990380a27fe560d6c0b4b2dbe15ef5f808c72138839d6bf9ebf53aee6e2c5727494972248f72cf4cc30fa3b821d825966f7fc2c31c8bddc874cf1318681e7d16a2dbc1033888245aa68852cadf375a6c4afb372b" - -Core modular exponentiation (Mongtomery form only) #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"057679da1f62254bcce3231e3ac4abe761cee5a3e20201260c6972199ef58dd218fde4f0ece95e6f27316c14f009f259626dce062f8f354660321793175563e7d61ac8df9899b3ee7c02d3dc3d9a95e8faf67c43cbe1b683c8a4d9820df53a2bacb9ba374bcea0ad365ed1e0cf30a8061c7af910a249d3a6f5b6d00c3eda5f10" - -Core modular exponentiation (Mongtomery form only) #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"4a08ef914250ef6c3c5383415a5d201d33d7b3636be1e7481e2223c54bc4a3f59a4ee1e6fb796c92ca3c102169fbb03f8cf6d35ce8ddf12ee017f5c136ee1c25e09e79c4117c3d09d7adcd2d0eb42635bc4bad1d97d40f4013b117bb8826b68e87ca1c2e4a694b8bf8b2f66e93f97f68afba1e9b48a6486e4dc5d55f938e9165" - -Core modular exponentiation (Mongtomery form only) #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2260ee027478faf04bd2fb0a2fb897822d311aa3982f03730dc04aa145912488c047a30bf14728de589dee4a0bb0b54024aa1524ee06836bf4b71fcba512a48e3c4690ef04a9155326b87d8015aafd92c12f06e28a49d8dbae89cdc26a69a2dd3d2eccf54cee2d6dc8a48a323c14afb52e682bcaaa51fcbd40e5795438937275" - -Core modular exponentiation (Mongtomery form only) #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38aa70e5b135f42fbf0714b224529f06076b21834b0bb56f022eddc5e0324f4626fc8dccdc6097d83bb0a974863e4fe125e81efcb549baf3506185b0411e2f3d574b7538cb6e2b9874215790fff2dfb62c955820593b9c0bc0482e5b6482ed371e7edd286687dc490e0df7dc9a677010e986ae4e7f7ed534079b18140b995362" - -Core modular exponentiation (Mongtomery form only) #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"397dcbbe51360d92e6de24b85139f616f15ce27473b358fb4a70e7fd6e3e82944b16e81c2491bf3378f28f714c7a20f230fc02c2af833226cc85fb00b4476a77007721eb87b2182335be7745d930b3537d419a05d5d17c2e0e3dee37b5b8b48cb115130bbcbfea6a8ce82437ca90495e3eebedf6019683e6d7e976e1967a25c5" - -Core modular exponentiation (Mongtomery form only) #998 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"45b8009680bfa32684c8d77dc8d83365f2d15a785390e3bdf1f023198b9f62423b95a6a91b8d75d33d01f42156284d89de87473c014cc328e6657c76b6fd1932a6a990dd474b9e4aa245b9e2c4e279322b2d51eecb492ebc7bd87ae8508a9f9e8414ddf3c66ff1472871899fd3866f31ee543148a197b7095b13259702185a4d" - -Core modular exponentiation (Mongtomery form only) #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"442c8f4b2e861d8351fbc8af8614ff7ce4184ea896d4ee070f5929497f139467f9bfb1a649e7ce362f1808a2038a0ffe52d5ac29e017f767140e4162cb962f94d1a6e73f2e45afc23b1377c00b4eb500d5f64dc3af7b441954c8ef3da7c180d4f7dab31e45fbf5bb1f95e3e442d12c4cbfe3600af54ae41b1692a19064c1dbc1" - -Core modular exponentiation (Mongtomery form only) #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"5052c341cf7a30dd5e88abc37819eabd1346f5b192dff930087f049746b1c9b9216d078eb50509ae12c3394146c8529ce55b22eb905b912031934ca32eba2667ab74447bbb33beb7889281595073839db6bd3a71bb47c06d37b1ef30b8c229815979a67b3d9aee815fc19bdf22f46cbcace15d240f2b739c90649a7b8bcce7de" - -Core modular exponentiation (Mongtomery form only) #1001 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 ^ f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_core_exp_mod:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"357199f9b213ce7ebf7d90f3aa8f1bd4bb4deefdb15214167d4f6793a73293741e5120c4b984f54047dd34d95c6842afb869064705008b5ae460b3e8a1f5ab643f0dac8f3f0611d1938875944f80f83e09a2ab207040ca825385044843c858c6b1e83f78ca59ccaf405dcd33d1958879c79eafe672d8b167428d9f71a669e71d" - -mbedtls_mpi_core_mla #1 0x0 + 0x0 * 0x0 -mpi_core_mla:"0":"0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #2 0x0 + 0x0 * 0x3 -mpi_core_mla:"0":"0":"3":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #3 0x0 + 0x0 * 0xfe -mpi_core_mla:"0":"0":"fe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #4 0x0 + 0x0 * 0xff -mpi_core_mla:"0":"0":"ff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #5 0x0 + 0x0 * 0xffff -mpi_core_mla:"0":"0":"ffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #6 0x0 + 0x0 * 0x10000 -mpi_core_mla:"0":"0":"10000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #7 0x0 + 0x0 * 0xffffffff -mpi_core_mla:"0":"0":"ffffffff":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #8 0x0 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"100000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #9 0x0 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"7f7f7f7f7f7f7f7f":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #10 0x0 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"8000000000000000":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #11 0x0 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"0":"fffffffffffffffe":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #12 0x0 + 0x1 * 0x0 -mpi_core_mla:"0":"1":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #13 0x0 + 0x1 * 0x3 -mpi_core_mla:"0":"1":"3":"3":"0":"3":"0" - -mbedtls_mpi_core_mla #14 0x0 + 0x1 * 0xfe -mpi_core_mla:"0":"1":"fe":"fe":"0":"fe":"0" - -mbedtls_mpi_core_mla #15 0x0 + 0x1 * 0xff -mpi_core_mla:"0":"1":"ff":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #16 0x0 + 0x1 * 0xffff -mpi_core_mla:"0":"1":"ffff":"ffff":"0":"ffff":"0" - -mbedtls_mpi_core_mla #17 0x0 + 0x1 * 0x10000 -mpi_core_mla:"0":"1":"10000":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #18 0x0 + 0x1 * 0xffffffff -mpi_core_mla:"0":"1":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #19 0x0 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"100000000":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #20 0x0 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f":"7f7f7f7f":"7f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #21 0x0 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"8000000000000000":"0":"80000000":"8000000000000000":"0" - -mbedtls_mpi_core_mla #22 0x0 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1":"fffffffffffffffe":"fffffffe":"ffffffff":"fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #23 0x0 + 0xfffe * 0x0 -mpi_core_mla:"0":"fffe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #24 0x0 + 0xfffe * 0x3 -mpi_core_mla:"0":"fffe":"3":"2fffa":"0":"2fffa":"0" - -mbedtls_mpi_core_mla #25 0x0 + 0xfffe * 0xfe -mpi_core_mla:"0":"fffe":"fe":"fdfe04":"0":"fdfe04":"0" - -mbedtls_mpi_core_mla #26 0x0 + 0xfffe * 0xff -mpi_core_mla:"0":"fffe":"ff":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #27 0x0 + 0xfffe * 0xffff -mpi_core_mla:"0":"fffe":"ffff":"fffd0002":"0":"fffd0002":"0" - -mbedtls_mpi_core_mla #28 0x0 + 0xfffe * 0x10000 -mpi_core_mla:"0":"fffe":"10000":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #29 0x0 + 0xfffe * 0xffffffff -mpi_core_mla:"0":"fffe":"ffffffff":"ffff0002":"fffd":"fffdffff0002":"0" - -mbedtls_mpi_core_mla #30 0x0 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"100000000":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #31 0x0 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"7f7f7f7f7f7f7f7f":"80800102":"7f7e80808080":"8080808080800102":"7f7e" - -mbedtls_mpi_core_mla #32 0x0 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"8000000000000000":"0":"7fff00000000":"0":"7fff" - -mbedtls_mpi_core_mla #33 0x0 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffe":"fffffffffffffffe":"fffe0004":"fffdffffffff":"fffffffffffe0004":"fffd" - -mbedtls_mpi_core_mla #34 0x0 + 0xffffffff * 0x0 -mpi_core_mla:"0":"ffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #35 0x0 + 0xffffffff * 0x3 -mpi_core_mla:"0":"ffffffff":"3":"fffffffd":"2":"2fffffffd":"0" - -mbedtls_mpi_core_mla #36 0x0 + 0xffffffff * 0xfe -mpi_core_mla:"0":"ffffffff":"fe":"ffffff02":"fd":"fdffffff02":"0" - -mbedtls_mpi_core_mla #37 0x0 + 0xffffffff * 0xff -mpi_core_mla:"0":"ffffffff":"ff":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #38 0x0 + 0xffffffff * 0xffff -mpi_core_mla:"0":"ffffffff":"ffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #39 0x0 + 0xffffffff * 0x10000 -mpi_core_mla:"0":"ffffffff":"10000":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #40 0x0 + 0xffffffff * 0xffffffff -mpi_core_mla:"0":"ffffffff":"ffffffff":"1":"fffffffe":"fffffffe00000001":"0" - -mbedtls_mpi_core_mla #41 0x0 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"100000000":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #42 0x0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7effffffff":"ffffffff80808081":"7f7f7f7e" - -mbedtls_mpi_core_mla #43 0x0 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"8000000000000000":"0":"7fffffff80000000":"8000000000000000":"7fffffff" - -mbedtls_mpi_core_mla #44 0x0 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffff":"fffffffffffffffe":"2":"fffffffefffffffe":"fffffffe00000002":"fffffffe" - -mbedtls_mpi_core_mla #45 0x0 + 0x100000000 * 0x0 -mpi_core_mla:"0":"100000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #46 0x0 + 0x100000000 * 0x3 -mpi_core_mla:"0":"100000000":"3":"300000000":"0":"300000000":"0" - -mbedtls_mpi_core_mla #47 0x0 + 0x100000000 * 0xfe -mpi_core_mla:"0":"100000000":"fe":"fe00000000":"0":"fe00000000":"0" - -mbedtls_mpi_core_mla #48 0x0 + 0x100000000 * 0xff -mpi_core_mla:"0":"100000000":"ff":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #49 0x0 + 0x100000000 * 0xffff -mpi_core_mla:"0":"100000000":"ffff":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #50 0x0 + 0x100000000 * 0x10000 -mpi_core_mla:"0":"100000000":"10000":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #51 0x0 + 0x100000000 * 0xffffffff -mpi_core_mla:"0":"100000000":"ffffffff":"ffffffff00000000":"0":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #52 0x0 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #53 0x0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f":"7f7f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #54 0x0 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"8000000000000000":"0":"80000000":"0":"80000000" - -mbedtls_mpi_core_mla #55 0x0 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000":"fffffffffffffffe":"fffffffe00000000":"ffffffff":"fffffffe00000000":"ffffffff" - -mbedtls_mpi_core_mla #56 0x0 + 0x20000000000000 * 0x0 -mpi_core_mla:"0":"20000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #57 0x0 + 0x20000000000000 * 0x3 -mpi_core_mla:"0":"20000000000000":"3":"60000000000000":"0":"60000000000000":"0" - -mbedtls_mpi_core_mla #58 0x0 + 0x20000000000000 * 0xfe -mpi_core_mla:"0":"20000000000000":"fe":"1fc0000000000000":"0":"1fc0000000000000":"0" - -mbedtls_mpi_core_mla #59 0x0 + 0x20000000000000 * 0xff -mpi_core_mla:"0":"20000000000000":"ff":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #60 0x0 + 0x20000000000000 * 0xffff -mpi_core_mla:"0":"20000000000000":"ffff":"ffe0000000000000":"1f":"ffe0000000000000":"1f" - -mbedtls_mpi_core_mla #61 0x0 + 0x20000000000000 * 0x10000 -mpi_core_mla:"0":"20000000000000":"10000":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #62 0x0 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"0":"20000000000000":"ffffffff":"ffe0000000000000":"1fffff":"ffe0000000000000":"1fffff" - -mbedtls_mpi_core_mla #63 0x0 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"100000000":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #64 0x0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000000":"fefefefefefef":"efe0000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #65 0x0 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"8000000000000000":"0":"10000000000000":"0":"10000000000000" - -mbedtls_mpi_core_mla #66 0x0 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"1fffffffffffff":"ffc0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #67 0x0 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"0":"ffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #68 0x0 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"0":"ffffffffffffffff":"3":"fffffffffffffffd":"2":"fffffffffffffffd":"2" - -mbedtls_mpi_core_mla #69 0x0 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"0":"ffffffffffffffff":"fe":"ffffffffffffff02":"fd":"ffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #70 0x0 + 0xffffffffffffffff * 0xff -mpi_core_mla:"0":"ffffffffffffffff":"ff":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #71 0x0 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"0":"ffffffffffffffff":"ffff":"ffffffffffff0001":"fffe":"ffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #72 0x0 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"0":"ffffffffffffffff":"10000":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #73 0x0 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"0":"ffffffffffffffff":"ffffffff":"ffffffff00000001":"fffffffe":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #74 0x0 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"100000000":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #75 0x0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7e":"8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #76 0x0 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"8000000000000000":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #77 0x0 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffd":"2":"fffffffffffffffd" - -mbedtls_mpi_core_mla #78 0x0 + 0x10000000000000000 * 0x0 -mpi_core_mla:"0":"10000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #79 0x0 + 0x10000000000000000 * 0x3 -mpi_core_mla:"0":"10000000000000000":"3":"30000000000000000":"0":"30000000000000000":"0" - -mbedtls_mpi_core_mla #80 0x0 + 0x10000000000000000 * 0xfe -mpi_core_mla:"0":"10000000000000000":"fe":"fe0000000000000000":"0":"fe0000000000000000":"0" - -mbedtls_mpi_core_mla #81 0x0 + 0x10000000000000000 * 0xff -mpi_core_mla:"0":"10000000000000000":"ff":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #82 0x0 + 0x10000000000000000 * 0xffff -mpi_core_mla:"0":"10000000000000000":"ffff":"ffff0000000000000000":"0":"ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #83 0x0 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"0":"10000000000000000":"10000":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #84 0x0 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"0":"10000000000000000":"ffffffff":"ffffffff0000000000000000":"0":"ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #85 0x0 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"100000000":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #86 0x0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #87 0x0 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"8000000000000000":"0":"80000000":"80000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #88 0x0 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000000":"ffffffff":"fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #89 0x0 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"0":"1234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #90 0x0 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"0":"1234567890abcdef0":"3":"369d0369b20369cd0":"0":"369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #91 0x0 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"0":"1234567890abcdef0":"fe":"120fedcb9f8a7653220":"0":"120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #92 0x0 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"0":"1234567890abcdef0":"ff":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #93 0x0 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"0":"1234567890abcdef0":"ffff":"123444443a333d4332110":"0":"123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #94 0x0 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"0":"1234567890abcdef0":"10000":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #95 0x0 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"0":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432110":"1":"123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #96 0x0 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"100000000":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #97 0x0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba910":"91107edb":"91107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #98 0x0 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000000":"91a2b3c4":"91a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #99 0x0 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864220":"123456789":"234567890abcdeedb97530edea864220":"1" - -mbedtls_mpi_core_mla #100 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #101 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfa":"2":"fffffffffffffffffcfcfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #102 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010004":"fd":"ffffffffffffffff0101010101010004":"fd" - -mbedtls_mpi_core_mla #103 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #104 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0102":"fffe":"fffffffffffffefeffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #105 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #106 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010102":"fffffffe":"fffffffffefefefeffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #107 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #108 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #109 0x0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #110 0x0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020204":"fffffffffffffffd":"fefefefefefefefe0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #111 0x0 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"0":"100000000000000000000000000000000":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #112 0x0 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"0":"100000000000000000000000000000000":"3":"300000000000000000000000000000000":"0":"300000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #113 0x0 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"0":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000000":"0":"fe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #114 0x0 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"0":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #115 0x0 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"0":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000000":"0":"ffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #116 0x0 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"0":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #117 0x0 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"0":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000000":"0":"ffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #118 0x0 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"100000000":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #119 0x0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #120 0x0 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"8000000000000000":"0":"80000000":"800000000000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #121 0x0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000000":"ffffffff":"fffffffffffffffe00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #122 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #123 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #124 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #125 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #126 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #127 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #128 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432110":"12":"123456787e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #129 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #130 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #131 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #132 0x0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #133 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #134 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd":"2" - -mbedtls_mpi_core_mla #135 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fd" - -mbedtls_mpi_core_mla #136 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #137 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"fffe" - -mbedtls_mpi_core_mla #138 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #139 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #140 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #141 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #142 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #143 0x0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #144 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #145 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #146 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #147 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #148 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #149 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #150 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #151 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #152 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #153 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #154 0x0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #155 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"0":"0":"0" - -mbedtls_mpi_core_mla #156 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #157 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #158 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #159 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #160 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #161 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #162 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #163 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #164 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #165 0x0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #166 0x1 + 0x0 * 0x0 -mpi_core_mla:"1":"0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #167 0x1 + 0x0 * 0x3 -mpi_core_mla:"1":"0":"3":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #168 0x1 + 0x0 * 0xfe -mpi_core_mla:"1":"0":"fe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #169 0x1 + 0x0 * 0xff -mpi_core_mla:"1":"0":"ff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #170 0x1 + 0x0 * 0xffff -mpi_core_mla:"1":"0":"ffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #171 0x1 + 0x0 * 0x10000 -mpi_core_mla:"1":"0":"10000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #172 0x1 + 0x0 * 0xffffffff -mpi_core_mla:"1":"0":"ffffffff":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #173 0x1 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"100000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #174 0x1 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"7f7f7f7f7f7f7f7f":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #175 0x1 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"8000000000000000":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #176 0x1 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"0":"fffffffffffffffe":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #177 0x1 + 0x1 * 0x0 -mpi_core_mla:"1":"1":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #178 0x1 + 0x1 * 0x3 -mpi_core_mla:"1":"1":"3":"4":"0":"4":"0" - -mbedtls_mpi_core_mla #179 0x1 + 0x1 * 0xfe -mpi_core_mla:"1":"1":"fe":"ff":"0":"ff":"0" - -mbedtls_mpi_core_mla #180 0x1 + 0x1 * 0xff -mpi_core_mla:"1":"1":"ff":"100":"0":"100":"0" - -mbedtls_mpi_core_mla #181 0x1 + 0x1 * 0xffff -mpi_core_mla:"1":"1":"ffff":"10000":"0":"10000":"0" - -mbedtls_mpi_core_mla #182 0x1 + 0x1 * 0x10000 -mpi_core_mla:"1":"1":"10000":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #183 0x1 + 0x1 * 0xffffffff -mpi_core_mla:"1":"1":"ffffffff":"0":"1":"100000000":"0" - -mbedtls_mpi_core_mla #184 0x1 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"100000000":"1":"1":"100000001":"0" - -mbedtls_mpi_core_mla #185 0x1 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"7f7f7f7f7f7f7f7f":"7f7f7f80":"7f7f7f7f":"7f7f7f7f7f7f7f80":"0" - -mbedtls_mpi_core_mla #186 0x1 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"8000000000000000":"1":"80000000":"8000000000000001":"0" - -mbedtls_mpi_core_mla #187 0x1 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1":"fffffffffffffffe":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #188 0x1 + 0xfffe * 0x0 -mpi_core_mla:"1":"fffe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #189 0x1 + 0xfffe * 0x3 -mpi_core_mla:"1":"fffe":"3":"2fffb":"0":"2fffb":"0" - -mbedtls_mpi_core_mla #190 0x1 + 0xfffe * 0xfe -mpi_core_mla:"1":"fffe":"fe":"fdfe05":"0":"fdfe05":"0" - -mbedtls_mpi_core_mla #191 0x1 + 0xfffe * 0xff -mpi_core_mla:"1":"fffe":"ff":"fefe03":"0":"fefe03":"0" - -mbedtls_mpi_core_mla #192 0x1 + 0xfffe * 0xffff -mpi_core_mla:"1":"fffe":"ffff":"fffd0003":"0":"fffd0003":"0" - -mbedtls_mpi_core_mla #193 0x1 + 0xfffe * 0x10000 -mpi_core_mla:"1":"fffe":"10000":"fffe0001":"0":"fffe0001":"0" - -mbedtls_mpi_core_mla #194 0x1 + 0xfffe * 0xffffffff -mpi_core_mla:"1":"fffe":"ffffffff":"ffff0003":"fffd":"fffdffff0003":"0" - -mbedtls_mpi_core_mla #195 0x1 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"100000000":"1":"fffe":"fffe00000001":"0" - -mbedtls_mpi_core_mla #196 0x1 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"7f7f7f7f7f7f7f7f":"80800103":"7f7e80808080":"8080808080800103":"7f7e" - -mbedtls_mpi_core_mla #197 0x1 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"8000000000000000":"1":"7fff00000000":"1":"7fff" - -mbedtls_mpi_core_mla #198 0x1 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffe":"fffffffffffffffe":"fffe0005":"fffdffffffff":"fffffffffffe0005":"fffd" - -mbedtls_mpi_core_mla #199 0x1 + 0xffffffff * 0x0 -mpi_core_mla:"1":"ffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #200 0x1 + 0xffffffff * 0x3 -mpi_core_mla:"1":"ffffffff":"3":"fffffffe":"2":"2fffffffe":"0" - -mbedtls_mpi_core_mla #201 0x1 + 0xffffffff * 0xfe -mpi_core_mla:"1":"ffffffff":"fe":"ffffff03":"fd":"fdffffff03":"0" - -mbedtls_mpi_core_mla #202 0x1 + 0xffffffff * 0xff -mpi_core_mla:"1":"ffffffff":"ff":"ffffff02":"fe":"feffffff02":"0" - -mbedtls_mpi_core_mla #203 0x1 + 0xffffffff * 0xffff -mpi_core_mla:"1":"ffffffff":"ffff":"ffff0002":"fffe":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #204 0x1 + 0xffffffff * 0x10000 -mpi_core_mla:"1":"ffffffff":"10000":"ffff0001":"ffff":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #205 0x1 + 0xffffffff * 0xffffffff -mpi_core_mla:"1":"ffffffff":"ffffffff":"2":"fffffffe":"fffffffe00000002":"0" - -mbedtls_mpi_core_mla #206 0x1 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"100000000":"1":"ffffffff":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #207 0x1 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"7f7f7f7f7f7f7f7f":"80808082":"7f7f7f7effffffff":"ffffffff80808082":"7f7f7f7e" - -mbedtls_mpi_core_mla #208 0x1 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"8000000000000000":"1":"7fffffff80000000":"8000000000000001":"7fffffff" - -mbedtls_mpi_core_mla #209 0x1 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffff":"fffffffffffffffe":"3":"fffffffefffffffe":"fffffffe00000003":"fffffffe" - -mbedtls_mpi_core_mla #210 0x1 + 0x100000000 * 0x0 -mpi_core_mla:"1":"100000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #211 0x1 + 0x100000000 * 0x3 -mpi_core_mla:"1":"100000000":"3":"300000001":"0":"300000001":"0" - -mbedtls_mpi_core_mla #212 0x1 + 0x100000000 * 0xfe -mpi_core_mla:"1":"100000000":"fe":"fe00000001":"0":"fe00000001":"0" - -mbedtls_mpi_core_mla #213 0x1 + 0x100000000 * 0xff -mpi_core_mla:"1":"100000000":"ff":"ff00000001":"0":"ff00000001":"0" - -mbedtls_mpi_core_mla #214 0x1 + 0x100000000 * 0xffff -mpi_core_mla:"1":"100000000":"ffff":"ffff00000001":"0":"ffff00000001":"0" - -mbedtls_mpi_core_mla #215 0x1 + 0x100000000 * 0x10000 -mpi_core_mla:"1":"100000000":"10000":"1000000000001":"0":"1000000000001":"0" - -mbedtls_mpi_core_mla #216 0x1 + 0x100000000 * 0xffffffff -mpi_core_mla:"1":"100000000":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #217 0x1 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"100000000":"1":"1":"1":"1" - -mbedtls_mpi_core_mla #218 0x1 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f":"7f7f7f7f00000001":"7f7f7f7f" - -mbedtls_mpi_core_mla #219 0x1 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"8000000000000000":"1":"80000000":"1":"80000000" - -mbedtls_mpi_core_mla #220 0x1 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #221 0x1 + 0x20000000000000 * 0x0 -mpi_core_mla:"1":"20000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #222 0x1 + 0x20000000000000 * 0x3 -mpi_core_mla:"1":"20000000000000":"3":"60000000000001":"0":"60000000000001":"0" - -mbedtls_mpi_core_mla #223 0x1 + 0x20000000000000 * 0xfe -mpi_core_mla:"1":"20000000000000":"fe":"1fc0000000000001":"0":"1fc0000000000001":"0" - -mbedtls_mpi_core_mla #224 0x1 + 0x20000000000000 * 0xff -mpi_core_mla:"1":"20000000000000":"ff":"1fe0000000000001":"0":"1fe0000000000001":"0" - -mbedtls_mpi_core_mla #225 0x1 + 0x20000000000000 * 0xffff -mpi_core_mla:"1":"20000000000000":"ffff":"ffe0000000000001":"1f":"ffe0000000000001":"1f" - -mbedtls_mpi_core_mla #226 0x1 + 0x20000000000000 * 0x10000 -mpi_core_mla:"1":"20000000000000":"10000":"1":"20":"1":"20" - -mbedtls_mpi_core_mla #227 0x1 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"1":"20000000000000":"ffffffff":"ffe0000000000001":"1fffff":"ffe0000000000001":"1fffff" - -mbedtls_mpi_core_mla #228 0x1 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"100000000":"1":"200000":"1":"200000" - -mbedtls_mpi_core_mla #229 0x1 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000000000001":"fefefefefefef":"efe0000000000001":"fefefefefefef" - -mbedtls_mpi_core_mla #230 0x1 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"8000000000000000":"1":"10000000000000":"1":"10000000000000" - -mbedtls_mpi_core_mla #231 0x1 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"20000000000000":"fffffffffffffffe":"ffc0000000000001":"1fffffffffffff":"ffc0000000000001":"1fffffffffffff" - -mbedtls_mpi_core_mla #232 0x1 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"1":"ffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #233 0x1 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"1":"ffffffffffffffff":"3":"fffffffffffffffe":"2":"fffffffffffffffe":"2" - -mbedtls_mpi_core_mla #234 0x1 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"1":"ffffffffffffffff":"fe":"ffffffffffffff03":"fd":"ffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #235 0x1 + 0xffffffffffffffff * 0xff -mpi_core_mla:"1":"ffffffffffffffff":"ff":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #236 0x1 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"1":"ffffffffffffffff":"ffff":"ffffffffffff0002":"fffe":"ffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #237 0x1 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"1":"ffffffffffffffff":"10000":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #238 0x1 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"1":"ffffffffffffffff":"ffffffff":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #239 0x1 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"100000000":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #240 0x1 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808082":"7f7f7f7f7f7f7f7e":"8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #241 0x1 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"8000000000000000":"8000000000000001":"7fffffffffffffff":"8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #242 0x1 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffff":"fffffffffffffffe":"3":"fffffffffffffffd":"3":"fffffffffffffffd" - -mbedtls_mpi_core_mla #243 0x1 + 0x10000000000000000 * 0x0 -mpi_core_mla:"1":"10000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #244 0x1 + 0x10000000000000000 * 0x3 -mpi_core_mla:"1":"10000000000000000":"3":"30000000000000001":"0":"30000000000000001":"0" - -mbedtls_mpi_core_mla #245 0x1 + 0x10000000000000000 * 0xfe -mpi_core_mla:"1":"10000000000000000":"fe":"fe0000000000000001":"0":"fe0000000000000001":"0" - -mbedtls_mpi_core_mla #246 0x1 + 0x10000000000000000 * 0xff -mpi_core_mla:"1":"10000000000000000":"ff":"ff0000000000000001":"0":"ff0000000000000001":"0" - -mbedtls_mpi_core_mla #247 0x1 + 0x10000000000000000 * 0xffff -mpi_core_mla:"1":"10000000000000000":"ffff":"ffff0000000000000001":"0":"ffff0000000000000001":"0" - -mbedtls_mpi_core_mla #248 0x1 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"1":"10000000000000000":"10000":"100000000000000000001":"0":"100000000000000000001":"0" - -mbedtls_mpi_core_mla #249 0x1 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"1":"10000000000000000":"ffffffff":"ffffffff0000000000000001":"0":"ffffffff0000000000000001":"0" - -mbedtls_mpi_core_mla #250 0x1 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"100000000":"1":"1":"1000000000000000000000001":"0" - -mbedtls_mpi_core_mla #251 0x1 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001":"0" - -mbedtls_mpi_core_mla #252 0x1 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"8000000000000000":"1":"80000000":"80000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #253 0x1 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"10000000000000000":"fffffffffffffffe":"fffffffe0000000000000001":"ffffffff":"fffffffffffffffe0000000000000001":"0" - -mbedtls_mpi_core_mla #254 0x1 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"1":"1234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #255 0x1 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"1":"1234567890abcdef0":"3":"369d0369b20369cd1":"0":"369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #256 0x1 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"1":"1234567890abcdef0":"fe":"120fedcb9f8a7653221":"0":"120fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #257 0x1 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"1":"1234567890abcdef0":"ff":"12222222181b2221111":"0":"12222222181b2221111":"0" - -mbedtls_mpi_core_mla #258 0x1 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"1":"1234567890abcdef0":"ffff":"123444443a333d4332111":"0":"123444443a333d4332111":"0" - -mbedtls_mpi_core_mla #259 0x1 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"1":"1234567890abcdef0":"10000":"1234567890abcdef00001":"0":"1234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #260 0x1 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"1":"1234567890abcdef0":"ffffffff":"23456787e7777766f5432111":"1":"123456787e7777766f5432111":"0" - -mbedtls_mpi_core_mla #261 0x1 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"100000000":"234567890abcdef000000001":"1":"1234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #262 0x1 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ba911":"91107edb":"91107edbd82bde76f67708abaf5ba911":"0" - -mbedtls_mpi_core_mla #263 0x1 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"8000000000000000":"855e6f780000000000000001":"91a2b3c4":"91a2b3c4855e6f780000000000000001":"0" - -mbedtls_mpi_core_mla #264 0x1 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea864221":"123456789":"234567890abcdeedb97530edea864221":"1" - -mbedtls_mpi_core_mla #265 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #266 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfcfcfb":"2":"fffffffffffffffffcfcfcfcfcfcfcfb":"2" - -mbedtls_mpi_core_mla #267 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101010005":"fd":"ffffffffffffffff0101010101010005":"fd" - -mbedtls_mpi_core_mla #268 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffeffffffffffffff03":"fe":"fffffffffffffffeffffffffffffff03":"fe" - -mbedtls_mpi_core_mla #269 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefeffffffffffff0103":"fffe":"fffffffffffffefeffffffffffff0103":"fffe" - -mbedtls_mpi_core_mla #270 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefe0001":"ffff":"fffffffffffffefefefefefefefe0001":"ffff" - -mbedtls_mpi_core_mla #271 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01010103":"fffffffe":"fffffffffefefefeffffffff01010103":"fffffffe" - -mbedtls_mpi_core_mla #272 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000001":"ffffffff":"fffffffffefefefefefefefe00000001":"ffffffff" - -mbedtls_mpi_core_mla #273 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383028203":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #274 0x1 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #275 0x1 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202020205":"fffffffffffffffd":"fefefefefefefefe0202020202020205":"fffffffffffffffd" - -mbedtls_mpi_core_mla #276 0x1 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"1":"100000000000000000000000000000000":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #277 0x1 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"1":"100000000000000000000000000000000":"3":"300000000000000000000000000000001":"0":"300000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #278 0x1 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"1":"100000000000000000000000000000000":"fe":"fe00000000000000000000000000000001":"0":"fe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #279 0x1 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"1":"100000000000000000000000000000000":"ff":"ff00000000000000000000000000000001":"0":"ff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #280 0x1 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"1":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000000000001":"0":"ffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #281 0x1 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"1":"100000000000000000000000000000000":"10000":"1000000000000000000000000000000000001":"0":"1000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #282 0x1 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"1":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000000000001":"0":"ffffffff00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #283 0x1 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"100000000":"1":"1":"10000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #284 0x1 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000000000001":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #285 0x1 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"8000000000000000":"1":"80000000":"800000000000000000000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #286 0x1 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000000000001":"ffffffff":"fffffffffffffffe00000000000000000000000000000001":"0" - -mbedtls_mpi_core_mla #287 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #288 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #289 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #290 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #291 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #292 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #293 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f5432111":"12":"123456787e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #294 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef000000001":"12":"1234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #295 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ba911":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ba911":"9" - -mbedtls_mpi_core_mla #296 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000000000001":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"9" - -mbedtls_mpi_core_mla #297 0x1 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea864221":"1234567890":"34567890abcdeedcba987667b32100edb97530edea864221":"12" - -mbedtls_mpi_core_mla #298 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #299 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"2" - -mbedtls_mpi_core_mla #300 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03":"fd" - -mbedtls_mpi_core_mla #301 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #302 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0002":"fffe" - -mbedtls_mpi_core_mla #303 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #304 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #305 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #306 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808082":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #307 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000001":"7fffffffffffffff" - -mbedtls_mpi_core_mla #308 0x1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000003":"fffffffffffffffd" - -mbedtls_mpi_core_mla #309 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #310 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369cd1":"0" - -mbedtls_mpi_core_mla #311 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653221":"0" - -mbedtls_mpi_core_mla #312 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221111":"0" - -mbedtls_mpi_core_mla #313 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d4332111":"0" - -mbedtls_mpi_core_mla #314 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00001":"0" - -mbedtls_mpi_core_mla #315 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f5432111":"0" - -mbedtls_mpi_core_mla #316 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000001":"0" - -mbedtls_mpi_core_mla #317 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba911":"911" - -mbedtls_mpi_core_mla #318 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000000000001":"91a" - -mbedtls_mpi_core_mla #319 0x1 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea864221":"1234" - -mbedtls_mpi_core_mla #320 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1":"0":"1":"0" - -mbedtls_mpi_core_mla #321 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641382":"0" - -mbedtls_mpi_core_mla #322 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8ab":"0" - -mbedtls_mpi_core_mla #323 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d6":"0" - -mbedtls_mpi_core_mla #324 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed6":"0" - -mbedtls_mpi_core_mla #325 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0001":"0" - -mbedtls_mpi_core_mla #326 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed6":"4" - -mbedtls_mpi_core_mla #327 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000001":"4" - -mbedtls_mpi_core_mla #328 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3956":"26d473ca9" - -mbedtls_mpi_core_mla #329 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000000000001":"26fb9683d" - -mbedtls_mpi_core_mla #330 0x1 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129dab":"4df72d07b" - -mbedtls_mpi_core_mla #331 0xfffe + 0x0 * 0x0 -mpi_core_mla:"fffe":"0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #332 0xfffe + 0x0 * 0x3 -mpi_core_mla:"fffe":"0":"3":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #333 0xfffe + 0x0 * 0xfe -mpi_core_mla:"fffe":"0":"fe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #334 0xfffe + 0x0 * 0xff -mpi_core_mla:"fffe":"0":"ff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #335 0xfffe + 0x0 * 0xffff -mpi_core_mla:"fffe":"0":"ffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #336 0xfffe + 0x0 * 0x10000 -mpi_core_mla:"fffe":"0":"10000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #337 0xfffe + 0x0 * 0xffffffff -mpi_core_mla:"fffe":"0":"ffffffff":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #338 0xfffe + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"100000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #339 0xfffe + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"7f7f7f7f7f7f7f7f":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #340 0xfffe + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"8000000000000000":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #341 0xfffe + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"0":"fffffffffffffffe":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #342 0xfffe + 0x1 * 0x0 -mpi_core_mla:"fffe":"1":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #343 0xfffe + 0x1 * 0x3 -mpi_core_mla:"fffe":"1":"3":"10001":"0":"10001":"0" - -mbedtls_mpi_core_mla #344 0xfffe + 0x1 * 0xfe -mpi_core_mla:"fffe":"1":"fe":"100fc":"0":"100fc":"0" - -mbedtls_mpi_core_mla #345 0xfffe + 0x1 * 0xff -mpi_core_mla:"fffe":"1":"ff":"100fd":"0":"100fd":"0" - -mbedtls_mpi_core_mla #346 0xfffe + 0x1 * 0xffff -mpi_core_mla:"fffe":"1":"ffff":"1fffd":"0":"1fffd":"0" - -mbedtls_mpi_core_mla #347 0xfffe + 0x1 * 0x10000 -mpi_core_mla:"fffe":"1":"10000":"1fffe":"0":"1fffe":"0" - -mbedtls_mpi_core_mla #348 0xfffe + 0x1 * 0xffffffff -mpi_core_mla:"fffe":"1":"ffffffff":"fffd":"1":"10000fffd":"0" - -mbedtls_mpi_core_mla #349 0xfffe + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"100000000":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #350 0xfffe + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"7f7f7f7f7f7f7f7f":"7f807f7d":"7f7f7f7f":"7f7f7f7f7f807f7d":"0" - -mbedtls_mpi_core_mla #351 0xfffe + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"8000000000000000":"fffe":"80000000":"800000000000fffe":"0" - -mbedtls_mpi_core_mla #352 0xfffe + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1":"fffffffffffffffe":"fffc":"100000000":"fffc":"1" - -mbedtls_mpi_core_mla #353 0xfffe + 0xfffe * 0x0 -mpi_core_mla:"fffe":"fffe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #354 0xfffe + 0xfffe * 0x3 -mpi_core_mla:"fffe":"fffe":"3":"3fff8":"0":"3fff8":"0" - -mbedtls_mpi_core_mla #355 0xfffe + 0xfffe * 0xfe -mpi_core_mla:"fffe":"fffe":"fe":"fefe02":"0":"fefe02":"0" - -mbedtls_mpi_core_mla #356 0xfffe + 0xfffe * 0xff -mpi_core_mla:"fffe":"fffe":"ff":"fffe00":"0":"fffe00":"0" - -mbedtls_mpi_core_mla #357 0xfffe + 0xfffe * 0xffff -mpi_core_mla:"fffe":"fffe":"ffff":"fffe0000":"0":"fffe0000":"0" - -mbedtls_mpi_core_mla #358 0xfffe + 0xfffe * 0x10000 -mpi_core_mla:"fffe":"fffe":"10000":"fffefffe":"0":"fffefffe":"0" - -mbedtls_mpi_core_mla #359 0xfffe + 0xfffe * 0xffffffff -mpi_core_mla:"fffe":"fffe":"ffffffff":"0":"fffe":"fffe00000000":"0" - -mbedtls_mpi_core_mla #360 0xfffe + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"100000000":"fffe":"fffe":"fffe0000fffe":"0" - -mbedtls_mpi_core_mla #361 0xfffe + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"7f7f7f7f7f7f7f7f":"80810100":"7f7e80808080":"8080808080810100":"7f7e" - -mbedtls_mpi_core_mla #362 0xfffe + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"8000000000000000":"fffe":"7fff00000000":"fffe":"7fff" - -mbedtls_mpi_core_mla #363 0xfffe + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffe":"fffffffffffffffe":"ffff0002":"fffdffffffff":"ffffffffffff0002":"fffd" - -mbedtls_mpi_core_mla #364 0xfffe + 0xffffffff * 0x0 -mpi_core_mla:"fffe":"ffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #365 0xfffe + 0xffffffff * 0x3 -mpi_core_mla:"fffe":"ffffffff":"3":"fffb":"3":"30000fffb":"0" - -mbedtls_mpi_core_mla #366 0xfffe + 0xffffffff * 0xfe -mpi_core_mla:"fffe":"ffffffff":"fe":"ff00":"fe":"fe0000ff00":"0" - -mbedtls_mpi_core_mla #367 0xfffe + 0xffffffff * 0xff -mpi_core_mla:"fffe":"ffffffff":"ff":"feff":"ff":"ff0000feff":"0" - -mbedtls_mpi_core_mla #368 0xfffe + 0xffffffff * 0xffff -mpi_core_mla:"fffe":"ffffffff":"ffff":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #369 0xfffe + 0xffffffff * 0x10000 -mpi_core_mla:"fffe":"ffffffff":"10000":"fffffffe":"ffff":"fffffffffffe":"0" - -mbedtls_mpi_core_mla #370 0xfffe + 0xffffffff * 0xffffffff -mpi_core_mla:"fffe":"ffffffff":"ffffffff":"ffff":"fffffffe":"fffffffe0000ffff":"0" - -mbedtls_mpi_core_mla #371 0xfffe + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"100000000":"fffe":"ffffffff":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #372 0xfffe + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"7f7f7f7f7f7f7f7f":"8081807f":"7f7f7f7effffffff":"ffffffff8081807f":"7f7f7f7e" - -mbedtls_mpi_core_mla #373 0xfffe + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"8000000000000000":"fffe":"7fffffff80000000":"800000000000fffe":"7fffffff" - -mbedtls_mpi_core_mla #374 0xfffe + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffff":"fffffffffffffffe":"10000":"fffffffefffffffe":"fffffffe00010000":"fffffffe" - -mbedtls_mpi_core_mla #375 0xfffe + 0x100000000 * 0x0 -mpi_core_mla:"fffe":"100000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #376 0xfffe + 0x100000000 * 0x3 -mpi_core_mla:"fffe":"100000000":"3":"30000fffe":"0":"30000fffe":"0" - -mbedtls_mpi_core_mla #377 0xfffe + 0x100000000 * 0xfe -mpi_core_mla:"fffe":"100000000":"fe":"fe0000fffe":"0":"fe0000fffe":"0" - -mbedtls_mpi_core_mla #378 0xfffe + 0x100000000 * 0xff -mpi_core_mla:"fffe":"100000000":"ff":"ff0000fffe":"0":"ff0000fffe":"0" - -mbedtls_mpi_core_mla #379 0xfffe + 0x100000000 * 0xffff -mpi_core_mla:"fffe":"100000000":"ffff":"ffff0000fffe":"0":"ffff0000fffe":"0" - -mbedtls_mpi_core_mla #380 0xfffe + 0x100000000 * 0x10000 -mpi_core_mla:"fffe":"100000000":"10000":"100000000fffe":"0":"100000000fffe":"0" - -mbedtls_mpi_core_mla #381 0xfffe + 0x100000000 * 0xffffffff -mpi_core_mla:"fffe":"100000000":"ffffffff":"ffffffff0000fffe":"0":"ffffffff0000fffe":"0" - -mbedtls_mpi_core_mla #382 0xfffe + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"100000000":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #383 0xfffe + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f":"7f7f7f7f0000fffe":"7f7f7f7f" - -mbedtls_mpi_core_mla #384 0xfffe + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"8000000000000000":"fffe":"80000000":"fffe":"80000000" - -mbedtls_mpi_core_mla #385 0xfffe + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000":"fffffffffffffffe":"fffffffe0000fffe":"ffffffff":"fffffffe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #386 0xfffe + 0x20000000000000 * 0x0 -mpi_core_mla:"fffe":"20000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #387 0xfffe + 0x20000000000000 * 0x3 -mpi_core_mla:"fffe":"20000000000000":"3":"6000000000fffe":"0":"6000000000fffe":"0" - -mbedtls_mpi_core_mla #388 0xfffe + 0x20000000000000 * 0xfe -mpi_core_mla:"fffe":"20000000000000":"fe":"1fc000000000fffe":"0":"1fc000000000fffe":"0" - -mbedtls_mpi_core_mla #389 0xfffe + 0x20000000000000 * 0xff -mpi_core_mla:"fffe":"20000000000000":"ff":"1fe000000000fffe":"0":"1fe000000000fffe":"0" - -mbedtls_mpi_core_mla #390 0xfffe + 0x20000000000000 * 0xffff -mpi_core_mla:"fffe":"20000000000000":"ffff":"ffe000000000fffe":"1f":"ffe000000000fffe":"1f" - -mbedtls_mpi_core_mla #391 0xfffe + 0x20000000000000 * 0x10000 -mpi_core_mla:"fffe":"20000000000000":"10000":"fffe":"20":"fffe":"20" - -mbedtls_mpi_core_mla #392 0xfffe + 0x20000000000000 * 0xffffffff -mpi_core_mla:"fffe":"20000000000000":"ffffffff":"ffe000000000fffe":"1fffff":"ffe000000000fffe":"1fffff" - -mbedtls_mpi_core_mla #393 0xfffe + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"100000000":"fffe":"200000":"fffe":"200000" - -mbedtls_mpi_core_mla #394 0xfffe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"7f7f7f7f7f7f7f7f":"efe000000000fffe":"fefefefefefef":"efe000000000fffe":"fefefefefefef" - -mbedtls_mpi_core_mla #395 0xfffe + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"8000000000000000":"fffe":"10000000000000":"fffe":"10000000000000" - -mbedtls_mpi_core_mla #396 0xfffe + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"20000000000000":"fffffffffffffffe":"ffc000000000fffe":"1fffffffffffff":"ffc000000000fffe":"1fffffffffffff" - -mbedtls_mpi_core_mla #397 0xfffe + 0xffffffffffffffff * 0x0 -mpi_core_mla:"fffe":"ffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #398 0xfffe + 0xffffffffffffffff * 0x3 -mpi_core_mla:"fffe":"ffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #399 0xfffe + 0xffffffffffffffff * 0xfe -mpi_core_mla:"fffe":"ffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #400 0xfffe + 0xffffffffffffffff * 0xff -mpi_core_mla:"fffe":"ffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #401 0xfffe + 0xffffffffffffffff * 0xffff -mpi_core_mla:"fffe":"ffffffffffffffff":"ffff":"ffffffffffffffff":"fffe":"ffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #402 0xfffe + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"fffe":"ffffffffffffffff":"10000":"fffffffffffffffe":"ffff":"fffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #403 0xfffe + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"fffe":"ffffffffffffffff":"ffffffff":"ffffffff0000ffff":"fffffffe":"ffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #404 0xfffe + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"100000000":"ffffffff0000fffe":"ffffffff":"ffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #405 0xfffe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"808080808081807f":"7f7f7f7f7f7f7f7e":"808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #406 0xfffe + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"8000000000000000":"800000000000fffe":"7fffffffffffffff":"800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #407 0xfffe + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffff":"fffffffffffffffe":"10000":"fffffffffffffffd":"10000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #408 0xfffe + 0x10000000000000000 * 0x0 -mpi_core_mla:"fffe":"10000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #409 0xfffe + 0x10000000000000000 * 0x3 -mpi_core_mla:"fffe":"10000000000000000":"3":"3000000000000fffe":"0":"3000000000000fffe":"0" - -mbedtls_mpi_core_mla #410 0xfffe + 0x10000000000000000 * 0xfe -mpi_core_mla:"fffe":"10000000000000000":"fe":"fe000000000000fffe":"0":"fe000000000000fffe":"0" - -mbedtls_mpi_core_mla #411 0xfffe + 0x10000000000000000 * 0xff -mpi_core_mla:"fffe":"10000000000000000":"ff":"ff000000000000fffe":"0":"ff000000000000fffe":"0" - -mbedtls_mpi_core_mla #412 0xfffe + 0x10000000000000000 * 0xffff -mpi_core_mla:"fffe":"10000000000000000":"ffff":"ffff000000000000fffe":"0":"ffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #413 0xfffe + 0x10000000000000000 * 0x10000 -mpi_core_mla:"fffe":"10000000000000000":"10000":"10000000000000000fffe":"0":"10000000000000000fffe":"0" - -mbedtls_mpi_core_mla #414 0xfffe + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"fffe":"10000000000000000":"ffffffff":"ffffffff000000000000fffe":"0":"ffffffff000000000000fffe":"0" - -mbedtls_mpi_core_mla #415 0xfffe + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"100000000":"fffe":"1":"100000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #416 0xfffe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000fffe":"0" - -mbedtls_mpi_core_mla #417 0xfffe + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"8000000000000000":"fffe":"80000000":"8000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #418 0xfffe + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"10000000000000000":"fffffffffffffffe":"fffffffe000000000000fffe":"ffffffff":"fffffffffffffffe000000000000fffe":"0" - -mbedtls_mpi_core_mla #419 0xfffe + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"fffe":"1234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #420 0xfffe + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"fffe":"1234567890abcdef0":"3":"369d0369b20379cce":"0":"369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #421 0xfffe + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"fffe":"1234567890abcdef0":"fe":"120fedcb9f8a766321e":"0":"120fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #422 0xfffe + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"fffe":"1234567890abcdef0":"ff":"12222222181b223110e":"0":"12222222181b223110e":"0" - -mbedtls_mpi_core_mla #423 0xfffe + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"fffe":"1234567890abcdef0":"ffff":"123444443a333d434210e":"0":"123444443a333d434210e":"0" - -mbedtls_mpi_core_mla #424 0xfffe + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"fffe":"1234567890abcdef0":"10000":"1234567890abcdef0fffe":"0":"1234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #425 0xfffe + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffe":"1234567890abcdef0":"ffffffff":"23456787e7777766f544210e":"1":"123456787e7777766f544210e":"0" - -mbedtls_mpi_core_mla #426 0xfffe + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"100000000":"234567890abcdef00000fffe":"1":"1234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #427 0xfffe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708abaf5ca90e":"91107edb":"91107edbd82bde76f67708abaf5ca90e":"0" - -mbedtls_mpi_core_mla #428 0xfffe + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"8000000000000000":"855e6f78000000000000fffe":"91a2b3c4":"91a2b3c4855e6f78000000000000fffe":"0" - -mbedtls_mpi_core_mla #429 0xfffe + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530edea87421e":"123456789":"234567890abcdeedb97530edea87421e":"1" - -mbedtls_mpi_core_mla #430 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #431 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfcfcfdfcf8":"2":"fffffffffffffffffcfcfcfcfcfdfcf8":"2" - -mbedtls_mpi_core_mla #432 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010101020002":"fd":"ffffffffffffffff0101010101020002":"fd" - -mbedtls_mpi_core_mla #433 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff000000000000ff00":"fe":"ffffffffffffffff000000000000ff00":"fe" - -mbedtls_mpi_core_mla #434 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff0000000000000100":"fffe":"fffffffffffffeff0000000000000100":"fffe" - -mbedtls_mpi_core_mla #435 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefefefefffe":"ffff":"fffffffffffffefefefefefefefefffe":"ffff" - -mbedtls_mpi_core_mla #436 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefeffffffff01020100":"fffffffe":"fffffffffefefefeffffffff01020100":"fffffffe" - -mbedtls_mpi_core_mla #437 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe0000fffe":"ffffffff":"fffffffffefefefefefefefe0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #438 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e":"ff800081018202828504840383038200":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #439 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff":"ff7f7f7f7f7f7f7f000000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #440 0xfffe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020202030202":"fffffffffffffffd":"fefefefefefefefe0202020202030202":"fffffffffffffffd" - -mbedtls_mpi_core_mla #441 0xfffe + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #442 0xfffe + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"3":"30000000000000000000000000000fffe":"0":"30000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #443 0xfffe + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fe":"fe0000000000000000000000000000fffe":"0":"fe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #444 0xfffe + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ff":"ff0000000000000000000000000000fffe":"0":"ff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #445 0xfffe + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffff":"ffff0000000000000000000000000000fffe":"0":"ffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #446 0xfffe + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"10000":"100000000000000000000000000000000fffe":"0":"100000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #447 0xfffe + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"fffe":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000000000000000fffe":"0":"ffffffff0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #448 0xfffe + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"100000000":"fffe":"1":"1000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #449 0xfffe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000000000000000fffe":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #450 0xfffe + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"8000000000000000":"fffe":"80000000":"80000000000000000000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #451 0xfffe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000000000000000fffe":"ffffffff":"fffffffffffffffe0000000000000000000000000000fffe":"0" - -mbedtls_mpi_core_mla #452 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #453 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #454 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #455 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #456 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #457 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #458 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777766f544210e":"12":"123456787e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #459 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef00000fffe":"12":"1234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #460 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708abaf5ca90e":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708abaf5ca90e":"9" - -mbedtls_mpi_core_mla #461 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"9" - -mbedtls_mpi_core_mla #462 0xfffe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530edea87421e":"1234567890":"34567890abcdeedcba987667b32100edb97530edea87421e":"12" - -mbedtls_mpi_core_mla #463 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #464 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffb":"3":"fffb":"3" - -mbedtls_mpi_core_mla #465 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ff00":"fe":"ff00":"fe" - -mbedtls_mpi_core_mla #466 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"feff":"ff":"feff":"ff" - -mbedtls_mpi_core_mla #467 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe" - -mbedtls_mpi_core_mla #468 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe":"ffff" - -mbedtls_mpi_core_mla #469 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff":"fffffffe" - -mbedtls_mpi_core_mla #470 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000fffe":"ffffffff" - -mbedtls_mpi_core_mla #471 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff808080808081807f":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #472 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff800000000000fffe":"7fffffffffffffff" - -mbedtls_mpi_core_mla #473 0xfffe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000010000":"fffffffffffffffd" - -mbedtls_mpi_core_mla #474 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #475 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20379cce":"0" - -mbedtls_mpi_core_mla #476 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a766321e":"0" - -mbedtls_mpi_core_mla #477 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b223110e":"0" - -mbedtls_mpi_core_mla #478 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a333d434210e":"0" - -mbedtls_mpi_core_mla #479 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0fffe":"0" - -mbedtls_mpi_core_mla #480 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777766f544210e":"0" - -mbedtls_mpi_core_mla #481 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000fffe":"0" - -mbedtls_mpi_core_mla #482 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ca90e":"911" - -mbedtls_mpi_core_mla #483 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78000000000000fffe":"91a" - -mbedtls_mpi_core_mla #484 0xfffe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530edea87421e":"1234" - -mbedtls_mpi_core_mla #485 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffe":"0":"fffe":"0" - -mbedtls_mpi_core_mla #486 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f165137f":"0" - -mbedtls_mpi_core_mla #487 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c4c8a8":"0" - -mbedtls_mpi_core_mla #488 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263b79d3":"0" - -mbedtls_mpi_core_mla #489 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b54ed3":"0" - -mbedtls_mpi_core_mla #490 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bfffe":"0" - -mbedtls_mpi_core_mla #491 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af8a4ed3":"4" - -mbedtls_mpi_core_mla #492 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000fffe":"4" - -mbedtls_mpi_core_mla #493 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061c3953":"26d473ca9" - -mbedtls_mpi_core_mla #494 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5895800000000000fffe":"26fb9683d" - -mbedtls_mpi_core_mla #495 0xfffe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f139da8":"4df72d07b" - -mbedtls_mpi_core_mla #496 0xffffffff + 0x0 * 0x0 -mpi_core_mla:"ffffffff":"0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #497 0xffffffff + 0x0 * 0x3 -mpi_core_mla:"ffffffff":"0":"3":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #498 0xffffffff + 0x0 * 0xfe -mpi_core_mla:"ffffffff":"0":"fe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #499 0xffffffff + 0x0 * 0xff -mpi_core_mla:"ffffffff":"0":"ff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #500 0xffffffff + 0x0 * 0xffff -mpi_core_mla:"ffffffff":"0":"ffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #501 0xffffffff + 0x0 * 0x10000 -mpi_core_mla:"ffffffff":"0":"10000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #502 0xffffffff + 0x0 * 0xffffffff -mpi_core_mla:"ffffffff":"0":"ffffffff":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #503 0xffffffff + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"100000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #504 0xffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #505 0xffffffff + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"8000000000000000":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #506 0xffffffff + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"0":"fffffffffffffffe":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #507 0xffffffff + 0x1 * 0x0 -mpi_core_mla:"ffffffff":"1":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #508 0xffffffff + 0x1 * 0x3 -mpi_core_mla:"ffffffff":"1":"3":"2":"1":"100000002":"0" - -mbedtls_mpi_core_mla #509 0xffffffff + 0x1 * 0xfe -mpi_core_mla:"ffffffff":"1":"fe":"fd":"1":"1000000fd":"0" - -mbedtls_mpi_core_mla #510 0xffffffff + 0x1 * 0xff -mpi_core_mla:"ffffffff":"1":"ff":"fe":"1":"1000000fe":"0" - -mbedtls_mpi_core_mla #511 0xffffffff + 0x1 * 0xffff -mpi_core_mla:"ffffffff":"1":"ffff":"fffe":"1":"10000fffe":"0" - -mbedtls_mpi_core_mla #512 0xffffffff + 0x1 * 0x10000 -mpi_core_mla:"ffffffff":"1":"10000":"ffff":"1":"10000ffff":"0" - -mbedtls_mpi_core_mla #513 0xffffffff + 0x1 * 0xffffffff -mpi_core_mla:"ffffffff":"1":"ffffffff":"fffffffe":"1":"1fffffffe":"0" - -mbedtls_mpi_core_mla #514 0xffffffff + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"100000000":"ffffffff":"1":"1ffffffff":"0" - -mbedtls_mpi_core_mla #515 0xffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7e":"7f7f7f80":"7f7f7f807f7f7f7e":"0" - -mbedtls_mpi_core_mla #516 0xffffffff + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"8000000000000000":"ffffffff":"80000000":"80000000ffffffff":"0" - -mbedtls_mpi_core_mla #517 0xffffffff + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1":"fffffffffffffffe":"fffffffd":"100000000":"fffffffd":"1" - -mbedtls_mpi_core_mla #518 0xffffffff + 0xfffe * 0x0 -mpi_core_mla:"ffffffff":"fffe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #519 0xffffffff + 0xfffe * 0x3 -mpi_core_mla:"ffffffff":"fffe":"3":"2fff9":"1":"10002fff9":"0" - -mbedtls_mpi_core_mla #520 0xffffffff + 0xfffe * 0xfe -mpi_core_mla:"ffffffff":"fffe":"fe":"fdfe03":"1":"100fdfe03":"0" - -mbedtls_mpi_core_mla #521 0xffffffff + 0xfffe * 0xff -mpi_core_mla:"ffffffff":"fffe":"ff":"fefe01":"1":"100fefe01":"0" - -mbedtls_mpi_core_mla #522 0xffffffff + 0xfffe * 0xffff -mpi_core_mla:"ffffffff":"fffe":"ffff":"fffd0001":"1":"1fffd0001":"0" - -mbedtls_mpi_core_mla #523 0xffffffff + 0xfffe * 0x10000 -mpi_core_mla:"ffffffff":"fffe":"10000":"fffdffff":"1":"1fffdffff":"0" - -mbedtls_mpi_core_mla #524 0xffffffff + 0xfffe * 0xffffffff -mpi_core_mla:"ffffffff":"fffe":"ffffffff":"ffff0001":"fffe":"fffeffff0001":"0" - -mbedtls_mpi_core_mla #525 0xffffffff + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"100000000":"ffffffff":"fffe":"fffeffffffff":"0" - -mbedtls_mpi_core_mla #526 0xffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"7f7f7f7f7f7f7f7f":"80800101":"7f7e80808081":"8080808180800101":"7f7e" - -mbedtls_mpi_core_mla #527 0xffffffff + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"8000000000000000":"ffffffff":"7fff00000000":"ffffffff":"7fff" - -mbedtls_mpi_core_mla #528 0xffffffff + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffe":"fffffffffffffffe":"fffe0003":"fffe00000000":"fffe0003":"fffe" - -mbedtls_mpi_core_mla #529 0xffffffff + 0xffffffff * 0x0 -mpi_core_mla:"ffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #530 0xffffffff + 0xffffffff * 0x3 -mpi_core_mla:"ffffffff":"ffffffff":"3":"fffffffc":"3":"3fffffffc":"0" - -mbedtls_mpi_core_mla #531 0xffffffff + 0xffffffff * 0xfe -mpi_core_mla:"ffffffff":"ffffffff":"fe":"ffffff01":"fe":"feffffff01":"0" - -mbedtls_mpi_core_mla #532 0xffffffff + 0xffffffff * 0xff -mpi_core_mla:"ffffffff":"ffffffff":"ff":"ffffff00":"ff":"ffffffff00":"0" - -mbedtls_mpi_core_mla #533 0xffffffff + 0xffffffff * 0xffff -mpi_core_mla:"ffffffff":"ffffffff":"ffff":"ffff0000":"ffff":"ffffffff0000":"0" - -mbedtls_mpi_core_mla #534 0xffffffff + 0xffffffff * 0x10000 -mpi_core_mla:"ffffffff":"ffffffff":"10000":"fffeffff":"10000":"10000fffeffff":"0" - -mbedtls_mpi_core_mla #535 0xffffffff + 0xffffffff * 0xffffffff -mpi_core_mla:"ffffffff":"ffffffff":"ffffffff":"0":"ffffffff":"ffffffff00000000":"0" - -mbedtls_mpi_core_mla #536 0xffffffff + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"100000000":"ffffffff":"ffffffff":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #537 0xffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"80808080":"7f7f7f7f00000000":"80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #538 0xffffffff + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"8000000000000000":"ffffffff":"7fffffff80000000":"80000000ffffffff":"7fffffff" - -mbedtls_mpi_core_mla #539 0xffffffff + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffff":"fffffffffffffffe":"1":"fffffffeffffffff":"ffffffff00000001":"fffffffe" - -mbedtls_mpi_core_mla #540 0xffffffff + 0x100000000 * 0x0 -mpi_core_mla:"ffffffff":"100000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #541 0xffffffff + 0x100000000 * 0x3 -mpi_core_mla:"ffffffff":"100000000":"3":"3ffffffff":"0":"3ffffffff":"0" - -mbedtls_mpi_core_mla #542 0xffffffff + 0x100000000 * 0xfe -mpi_core_mla:"ffffffff":"100000000":"fe":"feffffffff":"0":"feffffffff":"0" - -mbedtls_mpi_core_mla #543 0xffffffff + 0x100000000 * 0xff -mpi_core_mla:"ffffffff":"100000000":"ff":"ffffffffff":"0":"ffffffffff":"0" - -mbedtls_mpi_core_mla #544 0xffffffff + 0x100000000 * 0xffff -mpi_core_mla:"ffffffff":"100000000":"ffff":"ffffffffffff":"0":"ffffffffffff":"0" - -mbedtls_mpi_core_mla #545 0xffffffff + 0x100000000 * 0x10000 -mpi_core_mla:"ffffffff":"100000000":"10000":"10000ffffffff":"0":"10000ffffffff":"0" - -mbedtls_mpi_core_mla #546 0xffffffff + 0x100000000 * 0xffffffff -mpi_core_mla:"ffffffff":"100000000":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #547 0xffffffff + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #548 0xffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f":"7f7f7f7fffffffff":"7f7f7f7f" - -mbedtls_mpi_core_mla #549 0xffffffff + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"8000000000000000":"ffffffff":"80000000":"ffffffff":"80000000" - -mbedtls_mpi_core_mla #550 0xffffffff + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000":"fffffffffffffffe":"fffffffeffffffff":"ffffffff":"fffffffeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #551 0xffffffff + 0x20000000000000 * 0x0 -mpi_core_mla:"ffffffff":"20000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #552 0xffffffff + 0x20000000000000 * 0x3 -mpi_core_mla:"ffffffff":"20000000000000":"3":"600000ffffffff":"0":"600000ffffffff":"0" - -mbedtls_mpi_core_mla #553 0xffffffff + 0x20000000000000 * 0xfe -mpi_core_mla:"ffffffff":"20000000000000":"fe":"1fc00000ffffffff":"0":"1fc00000ffffffff":"0" - -mbedtls_mpi_core_mla #554 0xffffffff + 0x20000000000000 * 0xff -mpi_core_mla:"ffffffff":"20000000000000":"ff":"1fe00000ffffffff":"0":"1fe00000ffffffff":"0" - -mbedtls_mpi_core_mla #555 0xffffffff + 0x20000000000000 * 0xffff -mpi_core_mla:"ffffffff":"20000000000000":"ffff":"ffe00000ffffffff":"1f":"ffe00000ffffffff":"1f" - -mbedtls_mpi_core_mla #556 0xffffffff + 0x20000000000000 * 0x10000 -mpi_core_mla:"ffffffff":"20000000000000":"10000":"ffffffff":"20":"ffffffff":"20" - -mbedtls_mpi_core_mla #557 0xffffffff + 0x20000000000000 * 0xffffffff -mpi_core_mla:"ffffffff":"20000000000000":"ffffffff":"ffe00000ffffffff":"1fffff":"ffe00000ffffffff":"1fffff" - -mbedtls_mpi_core_mla #558 0xffffffff + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"100000000":"ffffffff":"200000":"ffffffff":"200000" - -mbedtls_mpi_core_mla #559 0xffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efe00000ffffffff":"fefefefefefef":"efe00000ffffffff":"fefefefefefef" - -mbedtls_mpi_core_mla #560 0xffffffff + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"8000000000000000":"ffffffff":"10000000000000":"ffffffff":"10000000000000" - -mbedtls_mpi_core_mla #561 0xffffffff + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"20000000000000":"fffffffffffffffe":"ffc00000ffffffff":"1fffffffffffff":"ffc00000ffffffff":"1fffffffffffff" - -mbedtls_mpi_core_mla #562 0xffffffff + 0xffffffffffffffff * 0x0 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #563 0xffffffff + 0xffffffffffffffff * 0x3 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #564 0xffffffff + 0xffffffffffffffff * 0xfe -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #565 0xffffffff + 0xffffffffffffffff * 0xff -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #566 0xffffffff + 0xffffffffffffffff * 0xffff -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #567 0xffffffff + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #568 0xffffffff + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffff":"ffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #569 0xffffffff + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"100000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #570 0xffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808080":"7f7f7f7f7f7f7f7e":"8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #571 0xffffffff + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"8000000000000000":"80000000ffffffff":"7fffffffffffffff":"80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #572 0xffffffff + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffff":"fffffffffffffffe":"100000001":"fffffffffffffffd":"100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #573 0xffffffff + 0x10000000000000000 * 0x0 -mpi_core_mla:"ffffffff":"10000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #574 0xffffffff + 0x10000000000000000 * 0x3 -mpi_core_mla:"ffffffff":"10000000000000000":"3":"300000000ffffffff":"0":"300000000ffffffff":"0" - -mbedtls_mpi_core_mla #575 0xffffffff + 0x10000000000000000 * 0xfe -mpi_core_mla:"ffffffff":"10000000000000000":"fe":"fe00000000ffffffff":"0":"fe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #576 0xffffffff + 0x10000000000000000 * 0xff -mpi_core_mla:"ffffffff":"10000000000000000":"ff":"ff00000000ffffffff":"0":"ff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #577 0xffffffff + 0x10000000000000000 * 0xffff -mpi_core_mla:"ffffffff":"10000000000000000":"ffff":"ffff00000000ffffffff":"0":"ffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #578 0xffffffff + 0x10000000000000000 * 0x10000 -mpi_core_mla:"ffffffff":"10000000000000000":"10000":"1000000000000ffffffff":"0":"1000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #579 0xffffffff + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"ffffffff":"10000000000000000":"ffffffff":"ffffffff00000000ffffffff":"0":"ffffffff00000000ffffffff":"0" - -mbedtls_mpi_core_mla #580 0xffffffff + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"100000000":"ffffffff":"1":"10000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #581 0xffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000ffffffff":"0" - -mbedtls_mpi_core_mla #582 0xffffffff + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"8000000000000000":"ffffffff":"80000000":"800000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #583 0xffffffff + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"10000000000000000":"fffffffffffffffe":"fffffffe00000000ffffffff":"ffffffff":"fffffffffffffffe00000000ffffffff":"0" - -mbedtls_mpi_core_mla #584 0xffffffff + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #585 0xffffffff + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"3":"369d0369c20369ccf":"0":"369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #586 0xffffffff + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fe":"120fedcb9f9a765321f":"0":"120fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #587 0xffffffff + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ff":"12222222182b222110f":"0":"12222222182b222110f":"0" - -mbedtls_mpi_core_mla #588 0xffffffff + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffff":"123444443a334d433210f":"0":"123444443a334d433210f":"0" - -mbedtls_mpi_core_mla #589 0xffffffff + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"10000":"1234567890abddeefffff":"0":"1234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #590 0xffffffff + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffff":"1234567890abcdef0":"ffffffff":"23456787e7777767f543210f":"1":"123456787e7777767f543210f":"0" - -mbedtls_mpi_core_mla #591 0xffffffff + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"100000000":"234567890abcdef0ffffffff":"1":"1234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #592 0xffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba90f":"91107edb":"91107edbd82bde76f67708acaf5ba90f":"0" - -mbedtls_mpi_core_mla #593 0xffffffff + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"8000000000000000":"855e6f7800000000ffffffff":"91a2b3c4":"91a2b3c4855e6f7800000000ffffffff":"0" - -mbedtls_mpi_core_mla #594 0xffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea86421f":"123456789":"234567890abcdeedb97530eeea86421f":"1" - -mbedtls_mpi_core_mla #595 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #596 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcf9":"2":"fffffffffffffffffcfcfcfdfcfcfcf9":"2" - -mbedtls_mpi_core_mla #597 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010003":"fd":"ffffffffffffffff0101010201010003":"fd" - -mbedtls_mpi_core_mla #598 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff01":"fe":"ffffffffffffffff00000000ffffff01":"fe" - -mbedtls_mpi_core_mla #599 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0101":"fffe":"fffffffffffffeff00000000ffff0101":"fffe" - -mbedtls_mpi_core_mla #600 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefdffff":"ffff":"fffffffffffffefefefefefffefdffff":"ffff" - -mbedtls_mpi_core_mla #601 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010101":"fffffffe":"fffffffffefefeff0000000001010101":"fffffffe" - -mbedtls_mpi_core_mla #602 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefeffffffff":"ffffffff":"fffffffffefefefefefefefeffffffff":"ffffffff" - -mbedtls_mpi_core_mla #603 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #604 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7f00000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #605 0xffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020203":"fffffffffffffffd":"fefefefefefefefe0202020302020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #606 0xffffffff + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #607 0xffffffff + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"3":"3000000000000000000000000ffffffff":"0":"3000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #608 0xffffffff + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fe":"fe000000000000000000000000ffffffff":"0":"fe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #609 0xffffffff + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ff":"ff000000000000000000000000ffffffff":"0":"ff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #610 0xffffffff + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffff":"ffff000000000000000000000000ffffffff":"0":"ffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #611 0xffffffff + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"10000":"10000000000000000000000000000ffffffff":"0":"10000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #612 0xffffffff + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff000000000000000000000000ffffffff":"0":"ffffffff000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #613 0xffffffff + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"100000000":"ffffffff":"1":"100000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #614 0xffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f000000000000000000000000ffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #615 0xffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffff":"80000000":"8000000000000000000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #616 0xffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe000000000000000000000000ffffffff":"ffffffff":"fffffffffffffffe000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #617 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #618 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #619 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #620 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b222110f":"0":"12222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #621 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #622 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #623 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f543210f":"12":"123456787e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #624 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef0ffffffff":"12":"1234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #625 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba90f":"9" - -mbedtls_mpi_core_mla #626 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"9" - -mbedtls_mpi_core_mla #627 0xffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea86421f":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea86421f":"12" - -mbedtls_mpi_core_mla #628 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #629 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffc":"3":"fffffffc":"3" - -mbedtls_mpi_core_mla #630 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff01":"fe":"ffffff01":"fe" - -mbedtls_mpi_core_mla #631 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff00":"ff":"ffffff00":"ff" - -mbedtls_mpi_core_mla #632 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0000":"ffff":"ffff0000":"ffff" - -mbedtls_mpi_core_mla #633 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffeffff":"10000":"fffeffff":"10000" - -mbedtls_mpi_core_mla #634 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffff":"0":"ffffffff" - -mbedtls_mpi_core_mla #635 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff" - -mbedtls_mpi_core_mla #636 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808080":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #637 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff80000000ffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #638 0xffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000001":"fffffffffffffffd" - -mbedtls_mpi_core_mla #639 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #640 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369ccf":"0" - -mbedtls_mpi_core_mla #641 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a765321f":"0" - -mbedtls_mpi_core_mla #642 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b222110f":"0" - -mbedtls_mpi_core_mla #643 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d433210f":"0" - -mbedtls_mpi_core_mla #644 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeefffff":"0" - -mbedtls_mpi_core_mla #645 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f543210f":"0" - -mbedtls_mpi_core_mla #646 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0ffffffff":"0" - -mbedtls_mpi_core_mla #647 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba90f":"911" - -mbedtls_mpi_core_mla #648 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f7800000000ffffffff":"91a" - -mbedtls_mpi_core_mla #649 0xffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea86421f":"1234" - -mbedtls_mpi_core_mla #650 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"0":"ffffffff":"0" - -mbedtls_mpi_core_mla #651 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641380":"0" - -mbedtls_mpi_core_mla #652 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8a9":"0" - -mbedtls_mpi_core_mla #653 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d4":"0" - -mbedtls_mpi_core_mla #654 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed4":"0" - -mbedtls_mpi_core_mla #655 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12affff":"0" - -mbedtls_mpi_core_mla #656 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed4":"4" - -mbedtls_mpi_core_mla #657 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12bffffffff":"4" - -mbedtls_mpi_core_mla #658 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #659 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b589580000000ffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #660 0xffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #661 0x100000000 + 0x0 * 0x0 -mpi_core_mla:"100000000":"0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #662 0x100000000 + 0x0 * 0x3 -mpi_core_mla:"100000000":"0":"3":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #663 0x100000000 + 0x0 * 0xfe -mpi_core_mla:"100000000":"0":"fe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #664 0x100000000 + 0x0 * 0xff -mpi_core_mla:"100000000":"0":"ff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #665 0x100000000 + 0x0 * 0xffff -mpi_core_mla:"100000000":"0":"ffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #666 0x100000000 + 0x0 * 0x10000 -mpi_core_mla:"100000000":"0":"10000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #667 0x100000000 + 0x0 * 0xffffffff -mpi_core_mla:"100000000":"0":"ffffffff":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #668 0x100000000 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"100000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #669 0x100000000 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"7f7f7f7f7f7f7f7f":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #670 0x100000000 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"8000000000000000":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #671 0x100000000 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"0":"fffffffffffffffe":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #672 0x100000000 + 0x1 * 0x0 -mpi_core_mla:"100000000":"1":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #673 0x100000000 + 0x1 * 0x3 -mpi_core_mla:"100000000":"1":"3":"100000003":"0":"100000003":"0" - -mbedtls_mpi_core_mla #674 0x100000000 + 0x1 * 0xfe -mpi_core_mla:"100000000":"1":"fe":"1000000fe":"0":"1000000fe":"0" - -mbedtls_mpi_core_mla #675 0x100000000 + 0x1 * 0xff -mpi_core_mla:"100000000":"1":"ff":"1000000ff":"0":"1000000ff":"0" - -mbedtls_mpi_core_mla #676 0x100000000 + 0x1 * 0xffff -mpi_core_mla:"100000000":"1":"ffff":"10000ffff":"0":"10000ffff":"0" - -mbedtls_mpi_core_mla #677 0x100000000 + 0x1 * 0x10000 -mpi_core_mla:"100000000":"1":"10000":"100010000":"0":"100010000":"0" - -mbedtls_mpi_core_mla #678 0x100000000 + 0x1 * 0xffffffff -mpi_core_mla:"100000000":"1":"ffffffff":"1ffffffff":"0":"1ffffffff":"0" - -mbedtls_mpi_core_mla #679 0x100000000 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"100000000":"200000000":"0":"200000000":"0" - -mbedtls_mpi_core_mla #680 0x100000000 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f":"0":"7f7f7f807f7f7f7f":"0" - -mbedtls_mpi_core_mla #681 0x100000000 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"8000000000000000":"8000000100000000":"0":"8000000100000000":"0" - -mbedtls_mpi_core_mla #682 0x100000000 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1":"fffffffffffffffe":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #683 0x100000000 + 0xfffe * 0x0 -mpi_core_mla:"100000000":"fffe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #684 0x100000000 + 0xfffe * 0x3 -mpi_core_mla:"100000000":"fffe":"3":"10002fffa":"0":"10002fffa":"0" - -mbedtls_mpi_core_mla #685 0x100000000 + 0xfffe * 0xfe -mpi_core_mla:"100000000":"fffe":"fe":"100fdfe04":"0":"100fdfe04":"0" - -mbedtls_mpi_core_mla #686 0x100000000 + 0xfffe * 0xff -mpi_core_mla:"100000000":"fffe":"ff":"100fefe02":"0":"100fefe02":"0" - -mbedtls_mpi_core_mla #687 0x100000000 + 0xfffe * 0xffff -mpi_core_mla:"100000000":"fffe":"ffff":"1fffd0002":"0":"1fffd0002":"0" - -mbedtls_mpi_core_mla #688 0x100000000 + 0xfffe * 0x10000 -mpi_core_mla:"100000000":"fffe":"10000":"1fffe0000":"0":"1fffe0000":"0" - -mbedtls_mpi_core_mla #689 0x100000000 + 0xfffe * 0xffffffff -mpi_core_mla:"100000000":"fffe":"ffffffff":"fffeffff0002":"0":"fffeffff0002":"0" - -mbedtls_mpi_core_mla #690 0x100000000 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"100000000":"ffff00000000":"0":"ffff00000000":"0" - -mbedtls_mpi_core_mla #691 0x100000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"7f7f7f7f7f7f7f7f":"8080808180800102":"7f7e":"8080808180800102":"7f7e" - -mbedtls_mpi_core_mla #692 0x100000000 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"8000000000000000":"100000000":"7fff":"100000000":"7fff" - -mbedtls_mpi_core_mla #693 0x100000000 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffe":"fffffffffffffffe":"fffe0004":"fffe":"fffe0004":"fffe" - -mbedtls_mpi_core_mla #694 0x100000000 + 0xffffffff * 0x0 -mpi_core_mla:"100000000":"ffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #695 0x100000000 + 0xffffffff * 0x3 -mpi_core_mla:"100000000":"ffffffff":"3":"3fffffffd":"0":"3fffffffd":"0" - -mbedtls_mpi_core_mla #696 0x100000000 + 0xffffffff * 0xfe -mpi_core_mla:"100000000":"ffffffff":"fe":"feffffff02":"0":"feffffff02":"0" - -mbedtls_mpi_core_mla #697 0x100000000 + 0xffffffff * 0xff -mpi_core_mla:"100000000":"ffffffff":"ff":"ffffffff01":"0":"ffffffff01":"0" - -mbedtls_mpi_core_mla #698 0x100000000 + 0xffffffff * 0xffff -mpi_core_mla:"100000000":"ffffffff":"ffff":"ffffffff0001":"0":"ffffffff0001":"0" - -mbedtls_mpi_core_mla #699 0x100000000 + 0xffffffff * 0x10000 -mpi_core_mla:"100000000":"ffffffff":"10000":"10000ffff0000":"0":"10000ffff0000":"0" - -mbedtls_mpi_core_mla #700 0x100000000 + 0xffffffff * 0xffffffff -mpi_core_mla:"100000000":"ffffffff":"ffffffff":"ffffffff00000001":"0":"ffffffff00000001":"0" - -mbedtls_mpi_core_mla #701 0x100000000 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"100000000":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #702 0x100000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"7f7f7f7f7f7f7f7f":"80808081":"7f7f7f7f":"80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #703 0x100000000 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"8000000000000000":"8000000100000000":"7fffffff":"8000000100000000":"7fffffff" - -mbedtls_mpi_core_mla #704 0x100000000 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffff":"fffffffffffffffe":"ffffffff00000002":"fffffffe":"ffffffff00000002":"fffffffe" - -mbedtls_mpi_core_mla #705 0x100000000 + 0x100000000 * 0x0 -mpi_core_mla:"100000000":"100000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #706 0x100000000 + 0x100000000 * 0x3 -mpi_core_mla:"100000000":"100000000":"3":"400000000":"0":"400000000":"0" - -mbedtls_mpi_core_mla #707 0x100000000 + 0x100000000 * 0xfe -mpi_core_mla:"100000000":"100000000":"fe":"ff00000000":"0":"ff00000000":"0" - -mbedtls_mpi_core_mla #708 0x100000000 + 0x100000000 * 0xff -mpi_core_mla:"100000000":"100000000":"ff":"10000000000":"0":"10000000000":"0" - -mbedtls_mpi_core_mla #709 0x100000000 + 0x100000000 * 0xffff -mpi_core_mla:"100000000":"100000000":"ffff":"1000000000000":"0":"1000000000000":"0" - -mbedtls_mpi_core_mla #710 0x100000000 + 0x100000000 * 0x10000 -mpi_core_mla:"100000000":"100000000":"10000":"1000100000000":"0":"1000100000000":"0" - -mbedtls_mpi_core_mla #711 0x100000000 + 0x100000000 * 0xffffffff -mpi_core_mla:"100000000":"100000000":"ffffffff":"0":"1":"0":"1" - -mbedtls_mpi_core_mla #712 0x100000000 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"100000000":"100000000":"1":"100000000":"1" - -mbedtls_mpi_core_mla #713 0x100000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f":"7f7f7f8000000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #714 0x100000000 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"8000000000000000":"100000000":"80000000":"100000000":"80000000" - -mbedtls_mpi_core_mla #715 0x100000000 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000":"fffffffffffffffe":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #716 0x100000000 + 0x20000000000000 * 0x0 -mpi_core_mla:"100000000":"20000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #717 0x100000000 + 0x20000000000000 * 0x3 -mpi_core_mla:"100000000":"20000000000000":"3":"60000100000000":"0":"60000100000000":"0" - -mbedtls_mpi_core_mla #718 0x100000000 + 0x20000000000000 * 0xfe -mpi_core_mla:"100000000":"20000000000000":"fe":"1fc0000100000000":"0":"1fc0000100000000":"0" - -mbedtls_mpi_core_mla #719 0x100000000 + 0x20000000000000 * 0xff -mpi_core_mla:"100000000":"20000000000000":"ff":"1fe0000100000000":"0":"1fe0000100000000":"0" - -mbedtls_mpi_core_mla #720 0x100000000 + 0x20000000000000 * 0xffff -mpi_core_mla:"100000000":"20000000000000":"ffff":"ffe0000100000000":"1f":"ffe0000100000000":"1f" - -mbedtls_mpi_core_mla #721 0x100000000 + 0x20000000000000 * 0x10000 -mpi_core_mla:"100000000":"20000000000000":"10000":"100000000":"20":"100000000":"20" - -mbedtls_mpi_core_mla #722 0x100000000 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"100000000":"20000000000000":"ffffffff":"ffe0000100000000":"1fffff":"ffe0000100000000":"1fffff" - -mbedtls_mpi_core_mla #723 0x100000000 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"100000000":"100000000":"200000":"100000000":"200000" - -mbedtls_mpi_core_mla #724 0x100000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efe0000100000000":"fefefefefefef":"efe0000100000000":"fefefefefefef" - -mbedtls_mpi_core_mla #725 0x100000000 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"8000000000000000":"100000000":"10000000000000":"100000000":"10000000000000" - -mbedtls_mpi_core_mla #726 0x100000000 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"20000000000000":"fffffffffffffffe":"ffc0000100000000":"1fffffffffffff":"ffc0000100000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #727 0x100000000 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"100000000":"ffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #728 0x100000000 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"100000000":"ffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #729 0x100000000 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"100000000":"ffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #730 0x100000000 + 0xffffffffffffffff * 0xff -mpi_core_mla:"100000000":"ffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #731 0x100000000 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"100000000":"ffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #732 0x100000000 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"100000000":"ffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #733 0x100000000 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"100000000":"ffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #734 0x100000000 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #735 0x100000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808180808081":"7f7f7f7f7f7f7f7e":"8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #736 0x100000000 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"8000000000000000":"8000000100000000":"7fffffffffffffff":"8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #737 0x100000000 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffff":"fffffffffffffffe":"100000002":"fffffffffffffffd":"100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #738 0x100000000 + 0x10000000000000000 * 0x0 -mpi_core_mla:"100000000":"10000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #739 0x100000000 + 0x10000000000000000 * 0x3 -mpi_core_mla:"100000000":"10000000000000000":"3":"30000000100000000":"0":"30000000100000000":"0" - -mbedtls_mpi_core_mla #740 0x100000000 + 0x10000000000000000 * 0xfe -mpi_core_mla:"100000000":"10000000000000000":"fe":"fe0000000100000000":"0":"fe0000000100000000":"0" - -mbedtls_mpi_core_mla #741 0x100000000 + 0x10000000000000000 * 0xff -mpi_core_mla:"100000000":"10000000000000000":"ff":"ff0000000100000000":"0":"ff0000000100000000":"0" - -mbedtls_mpi_core_mla #742 0x100000000 + 0x10000000000000000 * 0xffff -mpi_core_mla:"100000000":"10000000000000000":"ffff":"ffff0000000100000000":"0":"ffff0000000100000000":"0" - -mbedtls_mpi_core_mla #743 0x100000000 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"100000000":"10000000000000000":"10000":"100000000000100000000":"0":"100000000000100000000":"0" - -mbedtls_mpi_core_mla #744 0x100000000 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"100000000":"10000000000000000":"ffffffff":"ffffffff0000000100000000":"0":"ffffffff0000000100000000":"0" - -mbedtls_mpi_core_mla #745 0x100000000 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"100000000":"100000000":"1":"1000000000000000100000000":"0" - -mbedtls_mpi_core_mla #746 0x100000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000100000000":"0" - -mbedtls_mpi_core_mla #747 0x100000000 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"8000000000000000":"100000000":"80000000":"80000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #748 0x100000000 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"10000000000000000":"fffffffffffffffe":"fffffffe0000000100000000":"ffffffff":"fffffffffffffffe0000000100000000":"0" - -mbedtls_mpi_core_mla #749 0x100000000 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"100000000":"1234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #750 0x100000000 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"100000000":"1234567890abcdef0":"3":"369d0369c20369cd0":"0":"369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #751 0x100000000 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"100000000":"1234567890abcdef0":"fe":"120fedcb9f9a7653220":"0":"120fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #752 0x100000000 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"100000000":"1234567890abcdef0":"ff":"12222222182b2221110":"0":"12222222182b2221110":"0" - -mbedtls_mpi_core_mla #753 0x100000000 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"100000000":"1234567890abcdef0":"ffff":"123444443a334d4332110":"0":"123444443a334d4332110":"0" - -mbedtls_mpi_core_mla #754 0x100000000 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000":"1234567890abcdef0":"10000":"1234567890abddef00000":"0":"1234567890abddef00000":"0" - -mbedtls_mpi_core_mla #755 0x100000000 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000":"1234567890abcdef0":"ffffffff":"23456787e7777767f5432110":"1":"123456787e7777767f5432110":"0" - -mbedtls_mpi_core_mla #756 0x100000000 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"100000000":"234567890abcdef100000000":"1":"1234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #757 0x100000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f67708acaf5ba910":"91107edb":"91107edbd82bde76f67708acaf5ba910":"0" - -mbedtls_mpi_core_mla #758 0x100000000 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"8000000000000000":"855e6f780000000100000000":"91a2b3c4":"91a2b3c4855e6f780000000100000000":"0" - -mbedtls_mpi_core_mla #759 0x100000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb97530eeea864220":"123456789":"234567890abcdeedb97530eeea864220":"1" - -mbedtls_mpi_core_mla #760 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #761 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffcfcfcfdfcfcfcfa":"2":"fffffffffffffffffcfcfcfdfcfcfcfa":"2" - -mbedtls_mpi_core_mla #762 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0101010201010004":"fd":"ffffffffffffffff0101010201010004":"fd" - -mbedtls_mpi_core_mla #763 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff00000000ffffff02":"fe":"ffffffffffffffff00000000ffffff02":"fe" - -mbedtls_mpi_core_mla #764 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff00000000ffff0102":"fffe":"fffffffffffffeff00000000ffff0102":"fffe" - -mbedtls_mpi_core_mla #765 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefefefefffefe0000":"ffff":"fffffffffffffefefefefefffefe0000":"ffff" - -mbedtls_mpi_core_mla #766 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff0000000001010102":"fffffffe":"fffffffffefefeff0000000001010102":"fffffffe" - -mbedtls_mpi_core_mla #767 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefeff00000000":"ffffffff":"fffffffffefefefefefefeff00000000":"ffffffff" - -mbedtls_mpi_core_mla #768 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e":"ff800081018202828504840483028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #769 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #770 0x100000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0202020302020204":"fffffffffffffffd":"fefefefefefefefe0202020302020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #771 0x100000000 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #772 0x100000000 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"3":"300000000000000000000000100000000":"0":"300000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #773 0x100000000 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fe":"fe00000000000000000000000100000000":"0":"fe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #774 0x100000000 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ff":"ff00000000000000000000000100000000":"0":"ff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #775 0x100000000 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000000000100000000":"0":"ffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #776 0x100000000 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"10000":"1000000000000000000000000000100000000":"0":"1000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #777 0x100000000 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"100000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000000000100000000":"0":"ffffffff00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #778 0x100000000 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"100000000":"100000000":"1":"10000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #779 0x100000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000000000100000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #780 0x100000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"8000000000000000":"100000000":"80000000":"800000000000000000000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #781 0x100000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000000000100000000":"ffffffff":"fffffffffffffffe00000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #782 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #783 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #784 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #785 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222182b2221110":"0":"12222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #786 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #787 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #788 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7777767f5432110":"12":"123456787e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #789 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890abcdef100000000":"12":"1234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #790 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f67708acaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f67708acaf5ba910":"9" - -mbedtls_mpi_core_mla #791 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780000000100000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"9" - -mbedtls_mpi_core_mla #792 0x100000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb97530eeea864220":"1234567890":"34567890abcdeedcba987667b32100edb97530eeea864220":"12" - -mbedtls_mpi_core_mla #793 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #794 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffd":"3":"fffffffd":"3" - -mbedtls_mpi_core_mla #795 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffff02":"fe":"ffffff02":"fe" - -mbedtls_mpi_core_mla #796 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffff01":"ff":"ffffff01":"ff" - -mbedtls_mpi_core_mla #797 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffff0001":"ffff":"ffff0001":"ffff" - -mbedtls_mpi_core_mla #798 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffff0000":"10000":"ffff0000":"10000" - -mbedtls_mpi_core_mla #799 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1":"ffffffff":"1":"ffffffff" - -mbedtls_mpi_core_mla #800 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"100000000":"0":"100000000" - -mbedtls_mpi_core_mla #801 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808180808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #802 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8000000100000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #803 0x100000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000100000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #804 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #805 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369c20369cd0":"0" - -mbedtls_mpi_core_mla #806 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f9a7653220":"0" - -mbedtls_mpi_core_mla #807 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222182b2221110":"0" - -mbedtls_mpi_core_mla #808 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444443a334d4332110":"0" - -mbedtls_mpi_core_mla #809 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef00000":"0" - -mbedtls_mpi_core_mla #810 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7777767f5432110":"0" - -mbedtls_mpi_core_mla #811 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef100000000":"0" - -mbedtls_mpi_core_mla #812 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708acaf5ba910":"911" - -mbedtls_mpi_core_mla #813 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780000000100000000":"91a" - -mbedtls_mpi_core_mla #814 0x100000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb97530eeea864220":"1234" - -mbedtls_mpi_core_mla #815 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"0":"100000000":"0" - -mbedtls_mpi_core_mla #816 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c407f1641381":"0" - -mbedtls_mpi_core_mla #817 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4cd5c3c8aa":"0" - -mbedtls_mpi_core_mla #818 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164f263a79d5":"0" - -mbedtls_mpi_core_mla #819 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647560b44ed5":"0" - -mbedtls_mpi_core_mla #820 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b0000":"0" - -mbedtls_mpi_core_mla #821 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c529af894ed5":"4" - -mbedtls_mpi_core_mla #822 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12c00000000":"4" - -mbedtls_mpi_core_mla #823 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412d061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #824 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958000000100000000":"26fb9683d" - -mbedtls_mpi_core_mla #825 0x100000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fc5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #826 0x20000000000000 + 0x0 * 0x0 -mpi_core_mla:"20000000000000":"0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #827 0x20000000000000 + 0x0 * 0x3 -mpi_core_mla:"20000000000000":"0":"3":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #828 0x20000000000000 + 0x0 * 0xfe -mpi_core_mla:"20000000000000":"0":"fe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #829 0x20000000000000 + 0x0 * 0xff -mpi_core_mla:"20000000000000":"0":"ff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #830 0x20000000000000 + 0x0 * 0xffff -mpi_core_mla:"20000000000000":"0":"ffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #831 0x20000000000000 + 0x0 * 0x10000 -mpi_core_mla:"20000000000000":"0":"10000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #832 0x20000000000000 + 0x0 * 0xffffffff -mpi_core_mla:"20000000000000":"0":"ffffffff":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #833 0x20000000000000 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"100000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #834 0x20000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"7f7f7f7f7f7f7f7f":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #835 0x20000000000000 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"8000000000000000":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #836 0x20000000000000 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"0":"fffffffffffffffe":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #837 0x20000000000000 + 0x1 * 0x0 -mpi_core_mla:"20000000000000":"1":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #838 0x20000000000000 + 0x1 * 0x3 -mpi_core_mla:"20000000000000":"1":"3":"20000000000003":"0":"20000000000003":"0" - -mbedtls_mpi_core_mla #839 0x20000000000000 + 0x1 * 0xfe -mpi_core_mla:"20000000000000":"1":"fe":"200000000000fe":"0":"200000000000fe":"0" - -mbedtls_mpi_core_mla #840 0x20000000000000 + 0x1 * 0xff -mpi_core_mla:"20000000000000":"1":"ff":"200000000000ff":"0":"200000000000ff":"0" - -mbedtls_mpi_core_mla #841 0x20000000000000 + 0x1 * 0xffff -mpi_core_mla:"20000000000000":"1":"ffff":"2000000000ffff":"0":"2000000000ffff":"0" - -mbedtls_mpi_core_mla #842 0x20000000000000 + 0x1 * 0x10000 -mpi_core_mla:"20000000000000":"1":"10000":"20000000010000":"0":"20000000010000":"0" - -mbedtls_mpi_core_mla #843 0x20000000000000 + 0x1 * 0xffffffff -mpi_core_mla:"20000000000000":"1":"ffffffff":"200000ffffffff":"0":"200000ffffffff":"0" - -mbedtls_mpi_core_mla #844 0x20000000000000 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"100000000":"20000100000000":"0":"20000100000000":"0" - -mbedtls_mpi_core_mla #845 0x20000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"7f7f7f7f7f7f7f7f":"7f9f7f7f7f7f7f7f":"0":"7f9f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #846 0x20000000000000 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"8000000000000000":"8020000000000000":"0":"8020000000000000":"0" - -mbedtls_mpi_core_mla #847 0x20000000000000 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1":"fffffffffffffffe":"1ffffffffffffe":"1":"1ffffffffffffe":"1" - -mbedtls_mpi_core_mla #848 0x20000000000000 + 0xfffe * 0x0 -mpi_core_mla:"20000000000000":"fffe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #849 0x20000000000000 + 0xfffe * 0x3 -mpi_core_mla:"20000000000000":"fffe":"3":"2000000002fffa":"0":"2000000002fffa":"0" - -mbedtls_mpi_core_mla #850 0x20000000000000 + 0xfffe * 0xfe -mpi_core_mla:"20000000000000":"fffe":"fe":"20000000fdfe04":"0":"20000000fdfe04":"0" - -mbedtls_mpi_core_mla #851 0x20000000000000 + 0xfffe * 0xff -mpi_core_mla:"20000000000000":"fffe":"ff":"20000000fefe02":"0":"20000000fefe02":"0" - -mbedtls_mpi_core_mla #852 0x20000000000000 + 0xfffe * 0xffff -mpi_core_mla:"20000000000000":"fffe":"ffff":"200000fffd0002":"0":"200000fffd0002":"0" - -mbedtls_mpi_core_mla #853 0x20000000000000 + 0xfffe * 0x10000 -mpi_core_mla:"20000000000000":"fffe":"10000":"200000fffe0000":"0":"200000fffe0000":"0" - -mbedtls_mpi_core_mla #854 0x20000000000000 + 0xfffe * 0xffffffff -mpi_core_mla:"20000000000000":"fffe":"ffffffff":"20fffdffff0002":"0":"20fffdffff0002":"0" - -mbedtls_mpi_core_mla #855 0x20000000000000 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"100000000":"20fffe00000000":"0":"20fffe00000000":"0" - -mbedtls_mpi_core_mla #856 0x20000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"7f7f7f7f7f7f7f7f":"80a0808080800102":"7f7e":"80a0808080800102":"7f7e" - -mbedtls_mpi_core_mla #857 0x20000000000000 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"8000000000000000":"20000000000000":"7fff":"20000000000000":"7fff" - -mbedtls_mpi_core_mla #858 0x20000000000000 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffe":"fffffffffffffffe":"1ffffffffe0004":"fffe":"1ffffffffe0004":"fffe" - -mbedtls_mpi_core_mla #859 0x20000000000000 + 0xffffffff * 0x0 -mpi_core_mla:"20000000000000":"ffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #860 0x20000000000000 + 0xffffffff * 0x3 -mpi_core_mla:"20000000000000":"ffffffff":"3":"200002fffffffd":"0":"200002fffffffd":"0" - -mbedtls_mpi_core_mla #861 0x20000000000000 + 0xffffffff * 0xfe -mpi_core_mla:"20000000000000":"ffffffff":"fe":"2000fdffffff02":"0":"2000fdffffff02":"0" - -mbedtls_mpi_core_mla #862 0x20000000000000 + 0xffffffff * 0xff -mpi_core_mla:"20000000000000":"ffffffff":"ff":"2000feffffff01":"0":"2000feffffff01":"0" - -mbedtls_mpi_core_mla #863 0x20000000000000 + 0xffffffff * 0xffff -mpi_core_mla:"20000000000000":"ffffffff":"ffff":"20fffeffff0001":"0":"20fffeffff0001":"0" - -mbedtls_mpi_core_mla #864 0x20000000000000 + 0xffffffff * 0x10000 -mpi_core_mla:"20000000000000":"ffffffff":"10000":"20ffffffff0000":"0":"20ffffffff0000":"0" - -mbedtls_mpi_core_mla #865 0x20000000000000 + 0xffffffff * 0xffffffff -mpi_core_mla:"20000000000000":"ffffffff":"ffffffff":"1ffffe00000001":"1":"1ffffe00000001":"1" - -mbedtls_mpi_core_mla #866 0x20000000000000 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"100000000":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #867 0x20000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1fffff80808081":"7f7f7f7f":"1fffff80808081":"7f7f7f7f" - -mbedtls_mpi_core_mla #868 0x20000000000000 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"8000000000000000":"8020000000000000":"7fffffff":"8020000000000000":"7fffffff" - -mbedtls_mpi_core_mla #869 0x20000000000000 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffff":"fffffffffffffffe":"1ffffe00000002":"ffffffff":"1ffffe00000002":"ffffffff" - -mbedtls_mpi_core_mla #870 0x20000000000000 + 0x100000000 * 0x0 -mpi_core_mla:"20000000000000":"100000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #871 0x20000000000000 + 0x100000000 * 0x3 -mpi_core_mla:"20000000000000":"100000000":"3":"20000300000000":"0":"20000300000000":"0" - -mbedtls_mpi_core_mla #872 0x20000000000000 + 0x100000000 * 0xfe -mpi_core_mla:"20000000000000":"100000000":"fe":"2000fe00000000":"0":"2000fe00000000":"0" - -mbedtls_mpi_core_mla #873 0x20000000000000 + 0x100000000 * 0xff -mpi_core_mla:"20000000000000":"100000000":"ff":"2000ff00000000":"0":"2000ff00000000":"0" - -mbedtls_mpi_core_mla #874 0x20000000000000 + 0x100000000 * 0xffff -mpi_core_mla:"20000000000000":"100000000":"ffff":"20ffff00000000":"0":"20ffff00000000":"0" - -mbedtls_mpi_core_mla #875 0x20000000000000 + 0x100000000 * 0x10000 -mpi_core_mla:"20000000000000":"100000000":"10000":"21000000000000":"0":"21000000000000":"0" - -mbedtls_mpi_core_mla #876 0x20000000000000 + 0x100000000 * 0xffffffff -mpi_core_mla:"20000000000000":"100000000":"ffffffff":"1fffff00000000":"1":"1fffff00000000":"1" - -mbedtls_mpi_core_mla #877 0x20000000000000 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"100000000":"20000000000000":"1":"20000000000000":"1" - -mbedtls_mpi_core_mla #878 0x20000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f":"7f9f7f7f00000000":"7f7f7f7f" - -mbedtls_mpi_core_mla #879 0x20000000000000 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"8000000000000000":"20000000000000":"80000000":"20000000000000":"80000000" - -mbedtls_mpi_core_mla #880 0x20000000000000 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000":"fffffffffffffffe":"1ffffe00000000":"100000000":"1ffffe00000000":"100000000" - -mbedtls_mpi_core_mla #881 0x20000000000000 + 0x20000000000000 * 0x0 -mpi_core_mla:"20000000000000":"20000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #882 0x20000000000000 + 0x20000000000000 * 0x3 -mpi_core_mla:"20000000000000":"20000000000000":"3":"80000000000000":"0":"80000000000000":"0" - -mbedtls_mpi_core_mla #883 0x20000000000000 + 0x20000000000000 * 0xfe -mpi_core_mla:"20000000000000":"20000000000000":"fe":"1fe0000000000000":"0":"1fe0000000000000":"0" - -mbedtls_mpi_core_mla #884 0x20000000000000 + 0x20000000000000 * 0xff -mpi_core_mla:"20000000000000":"20000000000000":"ff":"2000000000000000":"0":"2000000000000000":"0" - -mbedtls_mpi_core_mla #885 0x20000000000000 + 0x20000000000000 * 0xffff -mpi_core_mla:"20000000000000":"20000000000000":"ffff":"0":"20":"0":"20" - -mbedtls_mpi_core_mla #886 0x20000000000000 + 0x20000000000000 * 0x10000 -mpi_core_mla:"20000000000000":"20000000000000":"10000":"20000000000000":"20":"20000000000000":"20" - -mbedtls_mpi_core_mla #887 0x20000000000000 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"20000000000000":"20000000000000":"ffffffff":"0":"200000":"0":"200000" - -mbedtls_mpi_core_mla #888 0x20000000000000 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"100000000":"20000000000000":"200000":"20000000000000":"200000" - -mbedtls_mpi_core_mla #889 0x20000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"f000000000000000":"fefefefefefef":"f000000000000000":"fefefefefefef" - -mbedtls_mpi_core_mla #890 0x20000000000000 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"8000000000000000":"20000000000000":"10000000000000":"20000000000000":"10000000000000" - -mbedtls_mpi_core_mla #891 0x20000000000000 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"20000000000000":"fffffffffffffffe":"ffe0000000000000":"1fffffffffffff":"ffe0000000000000":"1fffffffffffff" - -mbedtls_mpi_core_mla #892 0x20000000000000 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #893 0x20000000000000 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #894 0x20000000000000 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #895 0x20000000000000 + 0xffffffffffffffff * 0xff -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #896 0x20000000000000 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #897 0x20000000000000 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #898 0x20000000000000 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"20000000000000":"ffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #899 0x20000000000000 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #900 0x20000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"80a0808080808081":"7f7f7f7f7f7f7f7e":"80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #901 0x20000000000000 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"8000000000000000":"8020000000000000":"7fffffffffffffff":"8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #902 0x20000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffff":"fffffffffffffffe":"20000000000002":"fffffffffffffffd":"20000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #903 0x20000000000000 + 0x10000000000000000 * 0x0 -mpi_core_mla:"20000000000000":"10000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #904 0x20000000000000 + 0x10000000000000000 * 0x3 -mpi_core_mla:"20000000000000":"10000000000000000":"3":"30020000000000000":"0":"30020000000000000":"0" - -mbedtls_mpi_core_mla #905 0x20000000000000 + 0x10000000000000000 * 0xfe -mpi_core_mla:"20000000000000":"10000000000000000":"fe":"fe0020000000000000":"0":"fe0020000000000000":"0" - -mbedtls_mpi_core_mla #906 0x20000000000000 + 0x10000000000000000 * 0xff -mpi_core_mla:"20000000000000":"10000000000000000":"ff":"ff0020000000000000":"0":"ff0020000000000000":"0" - -mbedtls_mpi_core_mla #907 0x20000000000000 + 0x10000000000000000 * 0xffff -mpi_core_mla:"20000000000000":"10000000000000000":"ffff":"ffff0020000000000000":"0":"ffff0020000000000000":"0" - -mbedtls_mpi_core_mla #908 0x20000000000000 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"20000000000000":"10000000000000000":"10000":"100000020000000000000":"0":"100000020000000000000":"0" - -mbedtls_mpi_core_mla #909 0x20000000000000 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"20000000000000":"10000000000000000":"ffffffff":"ffffffff0020000000000000":"0":"ffffffff0020000000000000":"0" - -mbedtls_mpi_core_mla #910 0x20000000000000 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"100000000":"20000000000000":"1":"1000000000020000000000000":"0" - -mbedtls_mpi_core_mla #911 0x20000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f0020000000000000":"0" - -mbedtls_mpi_core_mla #912 0x20000000000000 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"8000000000000000":"20000000000000":"80000000":"80000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #913 0x20000000000000 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"10000000000000000":"fffffffffffffffe":"fffffffe0020000000000000":"ffffffff":"fffffffffffffffe0020000000000000":"0" - -mbedtls_mpi_core_mla #914 0x20000000000000 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #915 0x20000000000000 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"3":"369f0369b20369cd0":"0":"369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #916 0x20000000000000 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fe":"120fefcb9f8a7653220":"0":"120fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #917 0x20000000000000 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ff":"12222422181b2221110":"0":"12222422181b2221110":"0" - -mbedtls_mpi_core_mla #918 0x20000000000000 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffff":"123444463a333d4332110":"0":"123444463a333d4332110":"0" - -mbedtls_mpi_core_mla #919 0x20000000000000 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"10000":"1234567a90abcdef00000":"0":"1234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #920 0x20000000000000 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"20000000000000":"1234567890abcdef0":"ffffffff":"23456787e7977766f5432110":"1":"123456787e7977766f5432110":"0" - -mbedtls_mpi_core_mla #921 0x20000000000000 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"100000000":"234567890adcdef000000000":"1":"1234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #922 0x20000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde76f69708abaf5ba910":"91107edb":"91107edbd82bde76f69708abaf5ba910":"0" - -mbedtls_mpi_core_mla #923 0x20000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"8000000000000000":"855e6f780020000000000000":"91a2b3c4":"91a2b3c4855e6f780020000000000000":"0" - -mbedtls_mpi_core_mla #924 0x20000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeedb99530edea864220":"123456789":"234567890abcdeedb99530edea864220":"1" - -mbedtls_mpi_core_mla #925 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #926 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffd1cfcfcfcfcfcfa":"2":"fffffffffffffffffd1cfcfcfcfcfcfa":"2" - -mbedtls_mpi_core_mla #927 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fe":"ffffffffffffffff0121010101010004":"fd":"ffffffffffffffff0121010101010004":"fd" - -mbedtls_mpi_core_mla #928 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffff001fffffffffff02":"fe":"ffffffffffffffff001fffffffffff02":"fe" - -mbedtls_mpi_core_mla #929 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeff001fffffffff0102":"fffe":"fffffffffffffeff001fffffffff0102":"fffe" - -mbedtls_mpi_core_mla #930 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefeff1efefefefe0000":"ffff":"fffffffffffffefeff1efefefefe0000":"ffff" - -mbedtls_mpi_core_mla #931 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeff001fffff01010102":"fffffffe":"fffffffffefefeff001fffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #932 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefeff1efefe00000000":"ffffffff":"fffffffffefefefeff1efefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #933 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202828524840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #934 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f7f0020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #935 0x20000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0222020202020204":"fffffffffffffffd":"fefefefefefefefe0222020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #936 0x20000000000000 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #937 0x20000000000000 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"3":"300000000000000000020000000000000":"0":"300000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #938 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000000020000000000000":"0":"fe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #939 0x20000000000000 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000000020000000000000":"0":"ff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #940 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000000020000000000000":"0":"ffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #941 0x20000000000000 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000000020000000000000":"0":"1000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #942 0x20000000000000 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000000020000000000000":"0":"ffffffff00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #943 0x20000000000000 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"100000000":"20000000000000":"1":"10000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #944 0x20000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000000020000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #945 0x20000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"8000000000000000":"20000000000000":"80000000":"800000000000000000000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #946 0x20000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000000020000000000000":"ffffffff":"fffffffffffffffe00000000000000000020000000000000":"0" - -mbedtls_mpi_core_mla #947 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #948 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #949 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #950 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222422181b2221110":"0":"12222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #951 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444463a333d4332110":"0":"123444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #952 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #953 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777887e7977766f5432110":"12":"123456787e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #954 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef01234567890adcdef000000000":"12":"1234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #955 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f76f69708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f76f69708abaf5ba910":"9" - -mbedtls_mpi_core_mla #956 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f780020000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"9" - -mbedtls_mpi_core_mla #957 0x20000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100edb99530edea864220":"1234567890":"34567890abcdeedcba987667b32100edb99530edea864220":"12" - -mbedtls_mpi_core_mla #958 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #959 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1ffffffffffffd":"3":"1ffffffffffffd":"3" - -mbedtls_mpi_core_mla #960 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1fffffffffff02":"fe":"1fffffffffff02":"fe" - -mbedtls_mpi_core_mla #961 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1fffffffffff01":"ff":"1fffffffffff01":"ff" - -mbedtls_mpi_core_mla #962 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1fffffffff0001":"ffff":"1fffffffff0001":"ffff" - -mbedtls_mpi_core_mla #963 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1fffffffff0000":"10000":"1fffffffff0000":"10000" - -mbedtls_mpi_core_mla #964 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1fffff00000001":"ffffffff":"1fffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #965 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1fffff00000000":"100000000":"1fffff00000000":"100000000" - -mbedtls_mpi_core_mla #966 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e":"ffffffffffffffffffffffffffffffffffffffffffffffff80a0808080808081":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #967 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffff8020000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #968 0x20000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd":"ffffffffffffffffffffffffffffffffffffffffffffffff0020000000000002":"fffffffffffffffd" - -mbedtls_mpi_core_mla #969 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #970 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0369f0369b20369cd0":"0" - -mbedtls_mpi_core_mla #971 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fefcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #972 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222422181b2221110":"0" - -mbedtls_mpi_core_mla #973 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334444463a333d4332110":"0" - -mbedtls_mpi_core_mla #974 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567a90abcdef00000":"0" - -mbedtls_mpi_core_mla #975 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777887e7977766f5432110":"0" - -mbedtls_mpi_core_mla #976 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890adcdef000000000":"0" - -mbedtls_mpi_core_mla #977 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f76f69708abaf5ba910":"911" - -mbedtls_mpi_core_mla #978 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f780020000000000000":"91a" - -mbedtls_mpi_core_mla #979 0x20000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100edb99530edea864220":"1234" - -mbedtls_mpi_core_mla #980 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"20000000000000":"0":"20000000000000":"0" - -mbedtls_mpi_core_mla #981 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b25c406f1641381":"0" - -mbedtls_mpi_core_mla #982 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d3050082a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #983 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a90a164e263a79d5":"0" - -mbedtls_mpi_core_mla #984 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9320647460b44ed5":"0" - -mbedtls_mpi_core_mla #985 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec225076b12b0000":"0" - -mbedtls_mpi_core_mla #986 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df794c528af894ed5":"4" - -mbedtls_mpi_core_mla #987 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025096b12b00000000":"4" - -mbedtls_mpi_core_mla #988 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d55412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #989 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58958020000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #990 0x20000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"20000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024e1c27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #991 0xffffffffffffffff + 0x0 * 0x0 -mpi_core_mla:"ffffffffffffffff":"0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #992 0xffffffffffffffff + 0x0 * 0x3 -mpi_core_mla:"ffffffffffffffff":"0":"3":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #993 0xffffffffffffffff + 0x0 * 0xfe -mpi_core_mla:"ffffffffffffffff":"0":"fe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #994 0xffffffffffffffff + 0x0 * 0xff -mpi_core_mla:"ffffffffffffffff":"0":"ff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #995 0xffffffffffffffff + 0x0 * 0xffff -mpi_core_mla:"ffffffffffffffff":"0":"ffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #996 0xffffffffffffffff + 0x0 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"0":"10000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #997 0xffffffffffffffff + 0x0 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"0":"ffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #998 0xffffffffffffffff + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"100000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #999 0xffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1000 0xffffffffffffffff + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"8000000000000000":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1001 0xffffffffffffffff + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1002 0xffffffffffffffff + 0x1 * 0x0 -mpi_core_mla:"ffffffffffffffff":"1":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1003 0xffffffffffffffff + 0x1 * 0x3 -mpi_core_mla:"ffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1004 0xffffffffffffffff + 0x1 * 0xfe -mpi_core_mla:"ffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1005 0xffffffffffffffff + 0x1 * 0xff -mpi_core_mla:"ffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1006 0xffffffffffffffff + 0x1 * 0xffff -mpi_core_mla:"ffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1007 0xffffffffffffffff + 0x1 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1008 0xffffffffffffffff + 0x1 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1009 0xffffffffffffffff + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #1010 0xffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #1011 0xffffffffffffffff + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #1012 0xffffffffffffffff + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #1013 0xffffffffffffffff + 0xfffe * 0x0 -mpi_core_mla:"ffffffffffffffff":"fffe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1014 0xffffffffffffffff + 0xfffe * 0x3 -mpi_core_mla:"ffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #1015 0xffffffffffffffff + 0xfffe * 0xfe -mpi_core_mla:"ffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #1016 0xffffffffffffffff + 0xfffe * 0xff -mpi_core_mla:"ffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #1017 0xffffffffffffffff + 0xfffe * 0xffff -mpi_core_mla:"ffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #1018 0xffffffffffffffff + 0xfffe * 0x10000 -mpi_core_mla:"ffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #1019 0xffffffffffffffff + 0xfffe * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #1020 0xffffffffffffffff + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #1021 0xffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"8080808080800101":"7f7f":"8080808080800101":"7f7f" - -mbedtls_mpi_core_mla #1022 0xffffffffffffffff + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"8000000000000000":"ffffffffffffffff":"7fff":"ffffffffffffffff":"7fff" - -mbedtls_mpi_core_mla #1023 0xffffffffffffffff + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffe":"fffffffffffffffe":"fffffffffffe0003":"fffe":"fffffffffffe0003":"fffe" - -mbedtls_mpi_core_mla #1024 0xffffffffffffffff + 0xffffffff * 0x0 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1025 0xffffffffffffffff + 0xffffffff * 0x3 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #1026 0xffffffffffffffff + 0xffffffff * 0xfe -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #1027 0xffffffffffffffff + 0xffffffff * 0xff -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #1028 0xffffffffffffffff + 0xffffffff * 0xffff -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #1029 0xffffffffffffffff + 0xffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #1030 0xffffffffffffffff + 0xffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #1031 0xffffffffffffffff + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1032 0xffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"ffffffff80808080":"7f7f7f7f":"ffffffff80808080":"7f7f7f7f" - -mbedtls_mpi_core_mla #1033 0xffffffffffffffff + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"8000000000000000":"7fffffffffffffff":"80000000":"7fffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1034 0xffffffffffffffff + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffe00000001":"ffffffff":"fffffffe00000001":"ffffffff" - -mbedtls_mpi_core_mla #1035 0xffffffffffffffff + 0x100000000 * 0x0 -mpi_core_mla:"ffffffffffffffff":"100000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1036 0xffffffffffffffff + 0x100000000 * 0x3 -mpi_core_mla:"ffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #1037 0xffffffffffffffff + 0x100000000 * 0xfe -mpi_core_mla:"ffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #1038 0xffffffffffffffff + 0x100000000 * 0xff -mpi_core_mla:"ffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #1039 0xffffffffffffffff + 0x100000000 * 0xffff -mpi_core_mla:"ffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #1040 0xffffffffffffffff + 0x100000000 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #1041 0xffffffffffffffff + 0x100000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #1042 0xffffffffffffffff + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #1043 0xffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff":"7f7f7f80":"7f7f7f7effffffff":"7f7f7f80" - -mbedtls_mpi_core_mla #1044 0xffffffffffffffff + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"8000000000000000":"ffffffffffffffff":"80000000":"ffffffffffffffff":"80000000" - -mbedtls_mpi_core_mla #1045 0xffffffffffffffff + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffdffffffff":"100000000":"fffffffdffffffff":"100000000" - -mbedtls_mpi_core_mla #1046 0xffffffffffffffff + 0x20000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1047 0xffffffffffffffff + 0x20000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #1048 0xffffffffffffffff + 0x20000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #1049 0xffffffffffffffff + 0x20000000000000 * 0xff -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #1050 0xffffffffffffffff + 0x20000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffff":"ffdfffffffffffff":"20":"ffdfffffffffffff":"20" - -mbedtls_mpi_core_mla #1051 0xffffffffffffffff + 0x20000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"10000":"ffffffffffffffff":"20":"ffffffffffffffff":"20" - -mbedtls_mpi_core_mla #1052 0xffffffffffffffff + 0x20000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"20000000000000":"ffffffff":"ffdfffffffffffff":"200000":"ffdfffffffffffff":"200000" - -mbedtls_mpi_core_mla #1053 0xffffffffffffffff + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"100000000":"ffffffffffffffff":"200000":"ffffffffffffffff":"200000" - -mbedtls_mpi_core_mla #1054 0xffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"efdfffffffffffff":"fefefefefeff0":"efdfffffffffffff":"fefefefefeff0" - -mbedtls_mpi_core_mla #1055 0xffffffffffffffff + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"8000000000000000":"ffffffffffffffff":"10000000000000":"ffffffffffffffff":"10000000000000" - -mbedtls_mpi_core_mla #1056 0xffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"20000000000000":"fffffffffffffffe":"ffbfffffffffffff":"20000000000000":"ffbfffffffffffff":"20000000000000" - -mbedtls_mpi_core_mla #1057 0xffffffffffffffff + 0xffffffffffffffff * 0x0 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1058 0xffffffffffffffff + 0xffffffffffffffff * 0x3 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1059 0xffffffffffffffff + 0xffffffffffffffff * 0xfe -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1060 0xffffffffffffffff + 0xffffffffffffffff * 0xff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1061 0xffffffffffffffff + 0xffffffffffffffff * 0xffff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1062 0xffffffffffffffff + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1063 0xffffffffffffffff + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1064 0xffffffffffffffff + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1065 0xffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1066 0xffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1067 0xffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1068 0xffffffffffffffff + 0x10000000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1069 0xffffffffffffffff + 0x10000000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"3":"3ffffffffffffffff":"0":"3ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1070 0xffffffffffffffff + 0x10000000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fe":"feffffffffffffffff":"0":"feffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1071 0xffffffffffffffff + 0x10000000000000000 * 0xff -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ff":"ffffffffffffffffff":"0":"ffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1072 0xffffffffffffffff + 0x10000000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffff":"ffffffffffffffffffff":"0":"ffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1073 0xffffffffffffffff + 0x10000000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"10000":"10000ffffffffffffffff":"0":"10000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1074 0xffffffffffffffff + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"ffffffff":"ffffffffffffffffffffffff":"0":"ffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1075 0xffffffffffffffff + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffff":"1":"100000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1076 0xffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7fffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1077 0xffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"8000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1078 0xffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffeffffffffffffffff":"ffffffff":"fffffffffffffffeffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1079 0xffffffffffffffff + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1080 0xffffffffffffffff + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"3":"469d0369b20369ccf":"0":"469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1081 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fe":"121fedcb9f8a765321f":"0":"121fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1082 0xffffffffffffffff + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ff":"12322222181b222110f":"0":"12322222181b222110f":"0" - -mbedtls_mpi_core_mla #1083 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffff":"123454443a333d433210f":"0":"123454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1084 0xffffffffffffffff + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"10000":"1234667890abcdeefffff":"0":"1234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1085 0xffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"ffffffff":"23456788e7777766f543210f":"1":"123456788e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1086 0xffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"100000000":"2345678a0abcdeefffffffff":"1":"12345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1087 0xffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba90f":"91107edb":"91107edbd82bde77f67708abaf5ba90f":"0" - -mbedtls_mpi_core_mla #1088 0xffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"8000000000000000":"855e6f78ffffffffffffffff":"91a2b3c4":"91a2b3c4855e6f78ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1089 0xffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea86421f":"123456789":"234567890abcdeeeb97530edea86421f":"1" - -mbedtls_mpi_core_mla #1090 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1091 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcf9":"3":"fcfcfcfcfcfcfcf9":"3" - -mbedtls_mpi_core_mla #1092 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"101010101010003":"fe":"101010101010003":"fe" - -mbedtls_mpi_core_mla #1093 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1094 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0101":"fffe":"fffffffffffffeffffffffffffff0101":"fffe" - -mbedtls_mpi_core_mla #1095 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefdffff":"ffff":"fffffffffffffefffefefefefefdffff":"ffff" - -mbedtls_mpi_core_mla #1096 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010101":"fffffffe":"fffffffffefefeffffffffff01010101":"fffffffe" - -mbedtls_mpi_core_mla #1097 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefdffffffff":"ffffffff":"fffffffffefefefffefefefdffffffff":"ffffffff" - -mbedtls_mpi_core_mla #1098 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028201":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1099 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff":"ff7f7f7f7f7f7f7fffffffffffffffff":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1100 0xffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020203":"fffffffffffffffd":"fefefefefefefeff0202020202020203":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1101 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1102 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"3":"30000000000000000ffffffffffffffff":"0":"30000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1103 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fe":"fe0000000000000000ffffffffffffffff":"0":"fe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1104 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ff":"ff0000000000000000ffffffffffffffff":"0":"ff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1105 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffff":"ffff0000000000000000ffffffffffffffff":"0":"ffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1106 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"10000":"100000000000000000000ffffffffffffffff":"0":"100000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1107 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000000ffffffffffffffff":"0":"ffffffff0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1108 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffff":"1":"1000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1109 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000000ffffffffffffffff":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1110 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"ffffffffffffffff":"80000000":"80000000000000000000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1111 0xffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000000ffffffffffffffff":"ffffffff":"fffffffffffffffe0000000000000000ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1112 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1113 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1114 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1115 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b222110f":"0":"12222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1116 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d433210f":"0":"123444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1117 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1118 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f543210f":"12":"123456787e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1119 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdeefffffffff":"12":"1234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1120 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba90f":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba90f":"9" - -mbedtls_mpi_core_mla #1121 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"9" - -mbedtls_mpi_core_mla #1122 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea86421f":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea86421f":"12" - -mbedtls_mpi_core_mla #1123 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1124 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffc":"3":"fffffffffffffffc":"3" - -mbedtls_mpi_core_mla #1125 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff01":"fe":"ffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #1126 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff00":"ff":"ffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #1127 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0000":"ffff":"ffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #1128 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffeffff":"10000":"fffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #1129 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000000":"ffffffff":"ffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #1130 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffeffffffff":"100000000":"fffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #1131 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f":"8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1132 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000":"7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #1133 0xffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1":"fffffffffffffffe":"1":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1134 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1135 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #1136 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #1137 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b222110f":"0" - -mbedtls_mpi_core_mla #1138 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d433210f":"0" - -mbedtls_mpi_core_mla #1139 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdeefffff":"0" - -mbedtls_mpi_core_mla #1140 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f543210f":"0" - -mbedtls_mpi_core_mla #1141 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #1142 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #1143 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #1144 0xffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #1145 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffff":"0":"ffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1146 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #1147 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #1148 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #1149 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #1150 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12affff":"0" - -mbedtls_mpi_core_mla #1151 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed4":"4" - -mbedtls_mpi_core_mla #1152 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12affffffff":"4" - -mbedtls_mpi_core_mla #1153 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #1154 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58967fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #1155 0xffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #1156 0x10000000000000000 + 0x0 * 0x0 -mpi_core_mla:"10000000000000000":"0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1157 0x10000000000000000 + 0x0 * 0x3 -mpi_core_mla:"10000000000000000":"0":"3":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1158 0x10000000000000000 + 0x0 * 0xfe -mpi_core_mla:"10000000000000000":"0":"fe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1159 0x10000000000000000 + 0x0 * 0xff -mpi_core_mla:"10000000000000000":"0":"ff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1160 0x10000000000000000 + 0x0 * 0xffff -mpi_core_mla:"10000000000000000":"0":"ffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1161 0x10000000000000000 + 0x0 * 0x10000 -mpi_core_mla:"10000000000000000":"0":"10000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1162 0x10000000000000000 + 0x0 * 0xffffffff -mpi_core_mla:"10000000000000000":"0":"ffffffff":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1163 0x10000000000000000 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"100000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1164 0x10000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"7f7f7f7f7f7f7f7f":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1165 0x10000000000000000 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"8000000000000000":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1166 0x10000000000000000 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"0":"fffffffffffffffe":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1167 0x10000000000000000 + 0x1 * 0x0 -mpi_core_mla:"10000000000000000":"1":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1168 0x10000000000000000 + 0x1 * 0x3 -mpi_core_mla:"10000000000000000":"1":"3":"10000000000000003":"0":"10000000000000003":"0" - -mbedtls_mpi_core_mla #1169 0x10000000000000000 + 0x1 * 0xfe -mpi_core_mla:"10000000000000000":"1":"fe":"100000000000000fe":"0":"100000000000000fe":"0" - -mbedtls_mpi_core_mla #1170 0x10000000000000000 + 0x1 * 0xff -mpi_core_mla:"10000000000000000":"1":"ff":"100000000000000ff":"0":"100000000000000ff":"0" - -mbedtls_mpi_core_mla #1171 0x10000000000000000 + 0x1 * 0xffff -mpi_core_mla:"10000000000000000":"1":"ffff":"1000000000000ffff":"0":"1000000000000ffff":"0" - -mbedtls_mpi_core_mla #1172 0x10000000000000000 + 0x1 * 0x10000 -mpi_core_mla:"10000000000000000":"1":"10000":"10000000000010000":"0":"10000000000010000":"0" - -mbedtls_mpi_core_mla #1173 0x10000000000000000 + 0x1 * 0xffffffff -mpi_core_mla:"10000000000000000":"1":"ffffffff":"100000000ffffffff":"0":"100000000ffffffff":"0" - -mbedtls_mpi_core_mla #1174 0x10000000000000000 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"100000000":"10000000100000000":"0":"10000000100000000":"0" - -mbedtls_mpi_core_mla #1175 0x10000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f":"0":"17f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1176 0x10000000000000000 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"8000000000000000":"18000000000000000":"0":"18000000000000000":"0" - -mbedtls_mpi_core_mla #1177 0x10000000000000000 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1":"fffffffffffffffe":"1fffffffffffffffe":"0":"1fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1178 0x10000000000000000 + 0xfffe * 0x0 -mpi_core_mla:"10000000000000000":"fffe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1179 0x10000000000000000 + 0xfffe * 0x3 -mpi_core_mla:"10000000000000000":"fffe":"3":"1000000000002fffa":"0":"1000000000002fffa":"0" - -mbedtls_mpi_core_mla #1180 0x10000000000000000 + 0xfffe * 0xfe -mpi_core_mla:"10000000000000000":"fffe":"fe":"10000000000fdfe04":"0":"10000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1181 0x10000000000000000 + 0xfffe * 0xff -mpi_core_mla:"10000000000000000":"fffe":"ff":"10000000000fefe02":"0":"10000000000fefe02":"0" - -mbedtls_mpi_core_mla #1182 0x10000000000000000 + 0xfffe * 0xffff -mpi_core_mla:"10000000000000000":"fffe":"ffff":"100000000fffd0002":"0":"100000000fffd0002":"0" - -mbedtls_mpi_core_mla #1183 0x10000000000000000 + 0xfffe * 0x10000 -mpi_core_mla:"10000000000000000":"fffe":"10000":"100000000fffe0000":"0":"100000000fffe0000":"0" - -mbedtls_mpi_core_mla #1184 0x10000000000000000 + 0xfffe * 0xffffffff -mpi_core_mla:"10000000000000000":"fffe":"ffffffff":"10000fffdffff0002":"0":"10000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1185 0x10000000000000000 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"100000000":"10000fffe00000000":"0":"10000fffe00000000":"0" - -mbedtls_mpi_core_mla #1186 0x10000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"7f7f8080808080800102":"0":"7f7f8080808080800102":"0" - -mbedtls_mpi_core_mla #1187 0x10000000000000000 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"8000000000000000":"80000000000000000000":"0":"80000000000000000000":"0" - -mbedtls_mpi_core_mla #1188 0x10000000000000000 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffe":"fffffffffffffffe":"fffefffffffffffe0004":"0":"fffefffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1189 0x10000000000000000 + 0xffffffff * 0x0 -mpi_core_mla:"10000000000000000":"ffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1190 0x10000000000000000 + 0xffffffff * 0x3 -mpi_core_mla:"10000000000000000":"ffffffff":"3":"100000002fffffffd":"0":"100000002fffffffd":"0" - -mbedtls_mpi_core_mla #1191 0x10000000000000000 + 0xffffffff * 0xfe -mpi_core_mla:"10000000000000000":"ffffffff":"fe":"1000000fdffffff02":"0":"1000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1192 0x10000000000000000 + 0xffffffff * 0xff -mpi_core_mla:"10000000000000000":"ffffffff":"ff":"1000000feffffff01":"0":"1000000feffffff01":"0" - -mbedtls_mpi_core_mla #1193 0x10000000000000000 + 0xffffffff * 0xffff -mpi_core_mla:"10000000000000000":"ffffffff":"ffff":"10000fffeffff0001":"0":"10000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1194 0x10000000000000000 + 0xffffffff * 0x10000 -mpi_core_mla:"10000000000000000":"ffffffff":"10000":"10000ffffffff0000":"0":"10000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1195 0x10000000000000000 + 0xffffffff * 0xffffffff -mpi_core_mla:"10000000000000000":"ffffffff":"ffffffff":"1fffffffe00000001":"0":"1fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1196 0x10000000000000000 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"100000000":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1197 0x10000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fffffffff80808081":"0":"7f7f7f7fffffffff80808081":"0" - -mbedtls_mpi_core_mla #1198 0x10000000000000000 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"8000000000000000":"800000008000000000000000":"0":"800000008000000000000000":"0" - -mbedtls_mpi_core_mla #1199 0x10000000000000000 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffff":"fffffffffffffffe":"fffffffffffffffe00000002":"0":"fffffffffffffffe00000002":"0" - -mbedtls_mpi_core_mla #1200 0x10000000000000000 + 0x100000000 * 0x0 -mpi_core_mla:"10000000000000000":"100000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1201 0x10000000000000000 + 0x100000000 * 0x3 -mpi_core_mla:"10000000000000000":"100000000":"3":"10000000300000000":"0":"10000000300000000":"0" - -mbedtls_mpi_core_mla #1202 0x10000000000000000 + 0x100000000 * 0xfe -mpi_core_mla:"10000000000000000":"100000000":"fe":"1000000fe00000000":"0":"1000000fe00000000":"0" - -mbedtls_mpi_core_mla #1203 0x10000000000000000 + 0x100000000 * 0xff -mpi_core_mla:"10000000000000000":"100000000":"ff":"1000000ff00000000":"0":"1000000ff00000000":"0" - -mbedtls_mpi_core_mla #1204 0x10000000000000000 + 0x100000000 * 0xffff -mpi_core_mla:"10000000000000000":"100000000":"ffff":"10000ffff00000000":"0":"10000ffff00000000":"0" - -mbedtls_mpi_core_mla #1205 0x10000000000000000 + 0x100000000 * 0x10000 -mpi_core_mla:"10000000000000000":"100000000":"10000":"10001000000000000":"0":"10001000000000000":"0" - -mbedtls_mpi_core_mla #1206 0x10000000000000000 + 0x100000000 * 0xffffffff -mpi_core_mla:"10000000000000000":"100000000":"ffffffff":"1ffffffff00000000":"0":"1ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1207 0x10000000000000000 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"100000000":"20000000000000000":"0":"20000000000000000":"0" - -mbedtls_mpi_core_mla #1208 0x10000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f807f7f7f7f00000000":"0":"7f7f7f807f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1209 0x10000000000000000 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"8000000000000000":"800000010000000000000000":"0":"800000010000000000000000":"0" - -mbedtls_mpi_core_mla #1210 0x10000000000000000 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000":"fffffffffffffffe":"fffffffe00000000":"1":"100000000fffffffe00000000":"0" - -mbedtls_mpi_core_mla #1211 0x10000000000000000 + 0x20000000000000 * 0x0 -mpi_core_mla:"10000000000000000":"20000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1212 0x10000000000000000 + 0x20000000000000 * 0x3 -mpi_core_mla:"10000000000000000":"20000000000000":"3":"10060000000000000":"0":"10060000000000000":"0" - -mbedtls_mpi_core_mla #1213 0x10000000000000000 + 0x20000000000000 * 0xfe -mpi_core_mla:"10000000000000000":"20000000000000":"fe":"11fc0000000000000":"0":"11fc0000000000000":"0" - -mbedtls_mpi_core_mla #1214 0x10000000000000000 + 0x20000000000000 * 0xff -mpi_core_mla:"10000000000000000":"20000000000000":"ff":"11fe0000000000000":"0":"11fe0000000000000":"0" - -mbedtls_mpi_core_mla #1215 0x10000000000000000 + 0x20000000000000 * 0xffff -mpi_core_mla:"10000000000000000":"20000000000000":"ffff":"20ffe0000000000000":"0":"20ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1216 0x10000000000000000 + 0x20000000000000 * 0x10000 -mpi_core_mla:"10000000000000000":"20000000000000":"10000":"210000000000000000":"0":"210000000000000000":"0" - -mbedtls_mpi_core_mla #1217 0x10000000000000000 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"10000000000000000":"20000000000000":"ffffffff":"200000ffe0000000000000":"0":"200000ffe0000000000000":"0" - -mbedtls_mpi_core_mla #1218 0x10000000000000000 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"100000000":"2000010000000000000000":"0":"2000010000000000000000":"0" - -mbedtls_mpi_core_mla #1219 0x10000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff0efe0000000000000":"fefef":"fefefefefeff0efe0000000000000":"0" - -mbedtls_mpi_core_mla #1220 0x10000000000000000 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"8000000000000000":"10000000000000000":"100000":"100000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1221 0x10000000000000000 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"20000000000000":"fffffffffffffffe":"ffc0000000000000":"200000":"20000000000000ffc0000000000000":"0" - -mbedtls_mpi_core_mla #1222 0x10000000000000000 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1223 0x10000000000000000 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"3":"3fffffffffffffffd":"0":"3fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1224 0x10000000000000000 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fe":"feffffffffffffff02":"0":"feffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1225 0x10000000000000000 + 0xffffffffffffffff * 0xff -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ff":"ffffffffffffffff01":"0":"ffffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1226 0x10000000000000000 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffff":"ffffffffffffffff0001":"0":"ffffffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1227 0x10000000000000000 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"10000":"10000ffffffffffff0000":"0":"10000ffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1228 0x10000000000000000 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"ffffffff":"ffffffffffffffff00000001":"0":"ffffffffffffffff00000001":"0" - -mbedtls_mpi_core_mla #1229 0x10000000000000000 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"100000000":"ffffffff00000000":"1":"100000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1230 0x10000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f8080808080808081":"7f7f7f7f":"7f7f7f7f7f7f7f7f8080808080808081":"0" - -mbedtls_mpi_core_mla #1231 0x10000000000000000 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"8000000000000000":"8000000000000000":"80000000":"80000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1232 0x10000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffff":"fffffffffffffffe":"fffffffe0000000000000002":"ffffffff":"fffffffffffffffe0000000000000002":"0" - -mbedtls_mpi_core_mla #1233 0x10000000000000000 + 0x10000000000000000 * 0x0 -mpi_core_mla:"10000000000000000":"10000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1234 0x10000000000000000 + 0x10000000000000000 * 0x3 -mpi_core_mla:"10000000000000000":"10000000000000000":"3":"40000000000000000":"0":"40000000000000000":"0" - -mbedtls_mpi_core_mla #1235 0x10000000000000000 + 0x10000000000000000 * 0xfe -mpi_core_mla:"10000000000000000":"10000000000000000":"fe":"ff0000000000000000":"0":"ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1236 0x10000000000000000 + 0x10000000000000000 * 0xff -mpi_core_mla:"10000000000000000":"10000000000000000":"ff":"1000000000000000000":"0":"1000000000000000000":"0" - -mbedtls_mpi_core_mla #1237 0x10000000000000000 + 0x10000000000000000 * 0xffff -mpi_core_mla:"10000000000000000":"10000000000000000":"ffff":"100000000000000000000":"0":"100000000000000000000":"0" - -mbedtls_mpi_core_mla #1238 0x10000000000000000 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"10000000000000000":"10000000000000000":"10000":"100010000000000000000":"0":"100010000000000000000":"0" - -mbedtls_mpi_core_mla #1239 0x10000000000000000 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"10000000000000000":"10000000000000000":"ffffffff":"0":"1":"1000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1240 0x10000000000000000 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"100000000":"10000000000000000":"1":"1000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1241 0x10000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f800000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f800000000000000000":"0" - -mbedtls_mpi_core_mla #1242 0x10000000000000000 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"8000000000000000":"10000000000000000":"80000000":"80000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1243 0x10000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"10000000000000000":"fffffffffffffffe":"ffffffff0000000000000000":"ffffffff":"ffffffffffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1244 0x10000000000000000 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1245 0x10000000000000000 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"3":"469d0369b20369cd0":"0":"469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1246 0x10000000000000000 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fe":"121fedcb9f8a7653220":"0":"121fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1247 0x10000000000000000 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ff":"12322222181b2221110":"0":"12322222181b2221110":"0" - -mbedtls_mpi_core_mla #1248 0x10000000000000000 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffff":"123454443a333d4332110":"0":"123454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1249 0x10000000000000000 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"10000":"1234667890abcdef00000":"0":"1234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1250 0x10000000000000000 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"ffffffff":"23456788e7777766f5432110":"1":"123456788e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1251 0x10000000000000000 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"100000000":"2345678a0abcdef000000000":"1":"12345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1252 0x10000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde77f67708abaf5ba910":"91107edb":"91107edbd82bde77f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1253 0x10000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"8000000000000000":"855e6f790000000000000000":"91a2b3c4":"91a2b3c4855e6f790000000000000000":"0" - -mbedtls_mpi_core_mla #1254 0x10000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef0":"fffffffffffffffe":"abcdeeeb97530edea864220":"123456789":"234567890abcdeeeb97530edea864220":"1" - -mbedtls_mpi_core_mla #1255 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1256 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"3":"fcfcfcfcfcfcfcfa":"3":"fcfcfcfcfcfcfcfa":"3" - -mbedtls_mpi_core_mla #1257 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"101010101010004":"fe":"101010101010004":"fe" - -mbedtls_mpi_core_mla #1258 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1259 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffeffffffffffffff0102":"fffe":"fffffffffffffeffffffffffffff0102":"fffe" - -mbedtls_mpi_core_mla #1260 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefffefefefefefe0000":"ffff":"fffffffffffffefffefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1261 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefeffffffffff01010102":"fffffffe":"fffffffffefefeffffffffff01010102":"fffffffe" - -mbedtls_mpi_core_mla #1262 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefffefefefe00000000":"ffffffff":"fffffffffefefefffefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1263 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e":"ff800081018202838504840383028202":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1264 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff":"ff7f7f7f7f7f7f800000000000000000":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1265 0x10000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff0202020202020204":"fffffffffffffffd":"fefefefefefefeff0202020202020204":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1266 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1267 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"3":"300000000000000010000000000000000":"0":"300000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1268 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fe":"fe00000000000000010000000000000000":"0":"fe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1269 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ff":"ff00000000000000010000000000000000":"0":"ff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1270 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffff":"ffff00000000000000010000000000000000":"0":"ffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1271 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"10000":"1000000000000000000010000000000000000":"0":"1000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1272 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"ffffffff":"ffffffff00000000000000010000000000000000":"0":"ffffffff00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1273 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"100000000":"10000000000000000":"1":"10000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1274 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f00000000000000010000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f7f00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1275 0x10000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"8000000000000000":"10000000000000000":"80000000":"800000000000000000000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1276 0x10000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe00000000000000010000000000000000":"ffffffff":"fffffffffffffffe00000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1277 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1278 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1279 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1280 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122322222181b2221110":"0":"12222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1281 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334454443a333d4332110":"0":"123444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1282 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1283 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e7777767077777888e7777766f5432110":"12":"123456787e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1284 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a0abcdef000000000":"12":"1234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1285 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f77f67708abaf5ba910":"91107edbd":"1107edbd82bde76ff8810996cde66f77f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1286 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f790000000000000000":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"9" - -mbedtls_mpi_core_mla #1287 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eeb97530edea864220":"1234567890":"34567890abcdeedcba987667b32100eeb97530edea864220":"12" - -mbedtls_mpi_core_mla #1288 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1289 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffd":"3":"fffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1290 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffff02":"fe":"ffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1291 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffff01":"ff":"ffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1292 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffff0001":"ffff":"ffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1293 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffff0000":"10000":"ffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1294 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff00000001":"ffffffff":"ffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1295 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff00000000":"100000000":"ffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1296 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f":"8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1297 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1298 0x10000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"2":"fffffffffffffffe":"2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1299 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1300 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd0469d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1301 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a76532321fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1302 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122322222181b2221110":"0" - -mbedtls_mpi_core_mla #1303 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0":"123444443a333d433334444443a333d433334444443a333d433334454443a333d4332110":"0" - -mbedtls_mpi_core_mla #1304 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef00000":"0" - -mbedtls_mpi_core_mla #1305 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887e7777767077777888e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1306 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef000000000":"0" - -mbedtls_mpi_core_mla #1307 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f77f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1308 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f790000000000000000":"91a" - -mbedtls_mpi_core_mla #1309 0x10000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eeb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1310 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000000000000000":"0":"10000000000000000":"0" - -mbedtls_mpi_core_mla #1311 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1312 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d314fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1313 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1314 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356e9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1315 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1316 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86ef774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1317 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b00000000":"4" - -mbedtls_mpi_core_mla #1318 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a15d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1319 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b58968000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1320 0x10000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"10000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a034dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1321 0x1234567890abcdef0 + 0x0 * 0x0 -mpi_core_mla:"1234567890abcdef0":"0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1322 0x1234567890abcdef0 + 0x0 * 0x3 -mpi_core_mla:"1234567890abcdef0":"0":"3":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1323 0x1234567890abcdef0 + 0x0 * 0xfe -mpi_core_mla:"1234567890abcdef0":"0":"fe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1324 0x1234567890abcdef0 + 0x0 * 0xff -mpi_core_mla:"1234567890abcdef0":"0":"ff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1325 0x1234567890abcdef0 + 0x0 * 0xffff -mpi_core_mla:"1234567890abcdef0":"0":"ffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1326 0x1234567890abcdef0 + 0x0 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"0":"10000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1327 0x1234567890abcdef0 + 0x0 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"0":"ffffffff":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1328 0x1234567890abcdef0 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"100000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1329 0x1234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1330 0x1234567890abcdef0 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"8000000000000000":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1331 0x1234567890abcdef0 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1332 0x1234567890abcdef0 + 0x1 * 0x0 -mpi_core_mla:"1234567890abcdef0":"1":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1333 0x1234567890abcdef0 + 0x1 * 0x3 -mpi_core_mla:"1234567890abcdef0":"1":"3":"1234567890abcdef3":"0":"1234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1334 0x1234567890abcdef0 + 0x1 * 0xfe -mpi_core_mla:"1234567890abcdef0":"1":"fe":"1234567890abcdfee":"0":"1234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1335 0x1234567890abcdef0 + 0x1 * 0xff -mpi_core_mla:"1234567890abcdef0":"1":"ff":"1234567890abcdfef":"0":"1234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1336 0x1234567890abcdef0 + 0x1 * 0xffff -mpi_core_mla:"1234567890abcdef0":"1":"ffff":"1234567890abddeef":"0":"1234567890abddeef":"0" - -mbedtls_mpi_core_mla #1337 0x1234567890abcdef0 + 0x1 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"1":"10000":"1234567890abddef0":"0":"1234567890abddef0":"0" - -mbedtls_mpi_core_mla #1338 0x1234567890abcdef0 + 0x1 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"1":"ffffffff":"12345678a0abcdeef":"0":"12345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1339 0x1234567890abcdef0 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"100000000":"12345678a0abcdef0":"0":"12345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1340 0x1234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1a2c4e7088a3c5e6f":"0":"1a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1341 0x1234567890abcdef0 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"8000000000000000":"1a34567890abcdef0":"0":"1a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1342 0x1234567890abcdef0 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1":"fffffffffffffffe":"2234567890abcdeee":"0":"2234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1343 0x1234567890abcdef0 + 0xfffe * 0x0 -mpi_core_mla:"1234567890abcdef0":"fffe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1344 0x1234567890abcdef0 + 0xfffe * 0x3 -mpi_core_mla:"1234567890abcdef0":"fffe":"3":"1234567890abfdeea":"0":"1234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1345 0x1234567890abcdef0 + 0xfffe * 0xfe -mpi_core_mla:"1234567890abcdef0":"fffe":"fe":"1234567890bbadcf4":"0":"1234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1346 0x1234567890abcdef0 + 0xfffe * 0xff -mpi_core_mla:"1234567890abcdef0":"fffe":"ff":"1234567890bbbdcf2":"0":"1234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1347 0x1234567890abcdef0 + 0xfffe * 0xffff -mpi_core_mla:"1234567890abcdef0":"fffe":"ffff":"12345678a0ab9def2":"0":"12345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1348 0x1234567890abcdef0 + 0xfffe * 0x10000 -mpi_core_mla:"1234567890abcdef0":"fffe":"10000":"12345678a0abadef0":"0":"12345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1349 0x1234567890abcdef0 + 0xfffe * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"fffe":"ffffffff":"1234667870abbdef2":"0":"1234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1350 0x1234567890abcdef0 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"100000000":"1234667870abcdef0":"0":"1234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1351 0x1234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"7f7fa3c5e8098b3cdff2":"0":"7f7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1352 0x1234567890abcdef0 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"8000000000000000":"8000234567890abcdef0":"0":"8000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1353 0x1234567890abcdef0 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffe":"fffffffffffffffe":"ffff234567890abadef4":"0":"ffff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1354 0x1234567890abcdef0 + 0xffffffff * 0x0 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1355 0x1234567890abcdef0 + 0xffffffff * 0x3 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"3":"12345678c0abcdeed":"0":"12345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1356 0x1234567890abcdef0 + 0xffffffff * 0xfe -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fe":"1234568870abcddf2":"0":"1234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1357 0x1234567890abcdef0 + 0xffffffff * 0xff -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ff":"1234568880abcddf1":"0":"1234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1358 0x1234567890abcdef0 + 0xffffffff * 0xffff -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffff":"1234667880abbdef1":"0":"1234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1359 0x1234567890abcdef0 + 0xffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"10000":"1234667890abbdef0":"0":"1234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1360 0x1234567890abcdef0 + 0xffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"ffffffff":"ffffffff":"2234567870abcdef1":"0":"2234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1361 0x1234567890abcdef0 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"100000000":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1362 0x1234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f80234567888b3d5f71":"0":"7f7f7f80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1363 0x1234567890abcdef0 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"8000000000000000":"80000000a34567890abcdef0":"0":"80000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1364 0x1234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffff":"fffffffffffffffe":"234567870abcdef2":"1":"100000000234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1365 0x1234567890abcdef0 + 0x100000000 * 0x0 -mpi_core_mla:"1234567890abcdef0":"100000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1366 0x1234567890abcdef0 + 0x100000000 * 0x3 -mpi_core_mla:"1234567890abcdef0":"100000000":"3":"12345678c0abcdef0":"0":"12345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1367 0x1234567890abcdef0 + 0x100000000 * 0xfe -mpi_core_mla:"1234567890abcdef0":"100000000":"fe":"1234568870abcdef0":"0":"1234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1368 0x1234567890abcdef0 + 0x100000000 * 0xff -mpi_core_mla:"1234567890abcdef0":"100000000":"ff":"1234568880abcdef0":"0":"1234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1369 0x1234567890abcdef0 + 0x100000000 * 0xffff -mpi_core_mla:"1234567890abcdef0":"100000000":"ffff":"1234667880abcdef0":"0":"1234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1370 0x1234567890abcdef0 + 0x100000000 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"100000000":"10000":"1234667890abcdef0":"0":"1234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1371 0x1234567890abcdef0 + 0x100000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"100000000":"ffffffff":"2234567880abcdef0":"0":"2234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1372 0x1234567890abcdef0 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"100000000":"2234567890abcdef0":"0":"2234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1373 0x1234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f80a2c4e7080abcdef0":"0":"7f7f7f80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1374 0x1234567890abcdef0 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"8000000000000000":"80000001234567890abcdef0":"0":"80000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1375 0x1234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000":"fffffffffffffffe":"1234567870abcdef0":"1":"100000001234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1376 0x1234567890abcdef0 + 0x20000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1377 0x1234567890abcdef0 + 0x20000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"3":"123a567890abcdef0":"0":"123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1378 0x1234567890abcdef0 + 0x20000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fe":"1430567890abcdef0":"0":"1430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1379 0x1234567890abcdef0 + 0x20000000000000 * 0xff -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ff":"1432567890abcdef0":"0":"1432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1380 0x1234567890abcdef0 + 0x20000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffff":"21232567890abcdef0":"0":"21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1381 0x1234567890abcdef0 + 0x20000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"10000":"21234567890abcdef0":"0":"21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1382 0x1234567890abcdef0 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"20000000000000":"ffffffff":"200001232567890abcdef0":"0":"200001232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1383 0x1234567890abcdef0 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"100000000":"200001234567890abcdef0":"0":"200001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1384 0x1234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"efefeff1132567890abcdef0":"fefef":"fefefefefeff1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1385 0x1234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef0":"100000":"10000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1386 0x1234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"20000000000000":"fffffffffffffffe":"1230567890abcdef0":"200000":"20000000000001230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1387 0x1234567890abcdef0 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1388 0x1234567890abcdef0 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"3":"4234567890abcdeed":"0":"4234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1389 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fe":"ff234567890abcddf2":"0":"ff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1390 0x1234567890abcdef0 + 0xffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ff":"100234567890abcddf1":"0":"100234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1391 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffff":"10000234567890abbdef1":"0":"10000234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1392 0x1234567890abcdef0 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"10000":"10001234567890abbdef0":"0":"10001234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1393 0x1234567890abcdef0 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"ffffffff":"234567880abcdef1":"1":"100000000234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1394 0x1234567890abcdef0 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"100000000":"1234567880abcdef0":"1":"100000001234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1395 0x1234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7fa3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f7f7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1396 0x1234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"8000000000000000":"a34567890abcdef0":"80000000":"8000000000000000a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1397 0x1234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"fffffffe234567890abcdef2":"ffffffff":"fffffffffffffffe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1398 0x1234567890abcdef0 + 0x10000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1399 0x1234567890abcdef0 + 0x10000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"3":"4234567890abcdef0":"0":"4234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1400 0x1234567890abcdef0 + 0x10000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fe":"ff234567890abcdef0":"0":"ff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1401 0x1234567890abcdef0 + 0x10000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ff":"100234567890abcdef0":"0":"100234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1402 0x1234567890abcdef0 + 0x10000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffff":"10000234567890abcdef0":"0":"10000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1403 0x1234567890abcdef0 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"10000":"10001234567890abcdef0":"0":"10001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1404 0x1234567890abcdef0 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"ffffffff":"234567890abcdef0":"1":"100000000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1405 0x1234567890abcdef0 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef0":"1":"100000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1406 0x1234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f80234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1407 0x1234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"8000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1408 0x1234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"10000000000000000":"fffffffffffffffe":"ffffffff234567890abcdef0":"ffffffff":"ffffffffffffffff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1409 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1410 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"3":"48d159e242af37bc0":"0":"48d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1411 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fe":"12222222181b2221110":"0":"12222222181b2221110":"0" - -mbedtls_mpi_core_mla #1412 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef000":"0":"1234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1413 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef00000":"0":"1234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1414 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"10000":"123468ace7245e9acdef0":"0":"123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1415 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"ffffffff":"234567890abcdef000000000":"1":"1234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1416 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"100000000":"2345678a2e0246790abcdef0":"1":"12345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1417 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"d82bde7819bc7034ba188800":"91107edb":"91107edbd82bde7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1418 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"8000000000000000":"855e6f79234567890abcdef0":"91a2b3c4":"91a2b3c4855e6f79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1419 0x1234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"abcdeeedcba9876f5432110":"123456789":"234567890abcdeeedcba9876f5432110":"1" - -mbedtls_mpi_core_mla #1420 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1421 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"12042648607b9dbea":"3":"12042648607b9dbea":"3" - -mbedtls_mpi_core_mla #1422 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"2446688a0bbddef4":"fe":"2446688a0bbddef4":"fe" - -mbedtls_mpi_core_mla #1423 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"234567890abcddf2":"ff":"234567890abcddf2":"ff" - -mbedtls_mpi_core_mla #1424 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"ffffffffffffff00234567890abbdff2":"fffe":"ffffffffffffff00234567890abbdff2":"fffe" - -mbedtls_mpi_core_mla #1425 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"ffffffffffffff002244668809badef0":"ffff":"ffffffffffffff002244668809badef0":"ffff" - -mbedtls_mpi_core_mla #1426 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefeff00234567880bbddff2":"fffffffe":"fffffffffefeff00234567880bbddff2":"fffffffe" - -mbedtls_mpi_core_mla #1427 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefeff00224466870abcdef0":"ffffffff":"fffffffffefeff00224466870abcdef0":"ffffffff" - -mbedtls_mpi_core_mla #1428 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e":"ff80008101820283a849eb8c8dbf60f2":"7f7f7f7f7f7f7f7e" - -mbedtls_mpi_core_mla #1429 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff":"ff7f7f7f7f7f7f80234567890abcdef0":"7fffffffffffffff" - -mbedtls_mpi_core_mla #1430 0x1234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd":"fefefefefefefeff2547698b0cbee0f4":"fffffffffffffffd" - -mbedtls_mpi_core_mla #1431 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1432 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"3":"30000000000000001234567890abcdef0":"0":"30000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1433 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fe":"fe0000000000000001234567890abcdef0":"0":"fe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1434 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ff":"ff0000000000000001234567890abcdef0":"0":"ff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1435 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffff":"ffff0000000000000001234567890abcdef0":"0":"ffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1436 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"10000":"100000000000000000001234567890abcdef0":"0":"100000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1437 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"ffffffff0000000000000001234567890abcdef0":"0":"ffffffff0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1438 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef0":"1":"1000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1439 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f0000000000000001234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f7f0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1440 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0":"80000000":"80000000000000000000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1441 0x1234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffe0000000000000001234567890abcdef0":"ffffffff":"fffffffffffffffe0000000000000001234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1442 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1443 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1444 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1445 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b222112234567890abcdef000":"0":"12222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1446 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d4333344567890abcdef00000":"0":"123444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1447 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1448 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787e77777670777778890abcdef000000000":"12":"123456787e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1449 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"34567890abcdef012345678a2e0246790abcdef0":"12":"1234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1450 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde76ff8810996cde66f7819bc7034ba188800":"91107edbd":"1107edbd82bde76ff8810996cde66f7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1451 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1452 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeedcba987667b32100eedcba9876f5432110":"1234567890":"34567890abcdeedcba987667b32100eedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1453 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1454 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdeed":"3":"1234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1455 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcddf2":"fe":"1234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1456 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcddf1":"ff":"1234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1457 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abbdef1":"ffff":"1234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1458 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abbdef0":"10000":"1234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1459 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567880abcdef1":"ffffffff":"1234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1460 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567880abcdef0":"100000000":"1234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1461 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1462 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"a34567890abcdef0":"8000000000000000":"a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1463 0x1234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe":"234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1464 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1465 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd0369d0369b20369cd048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1466 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a7653232222222181b2221110":"0" - -mbedtls_mpi_core_mla #1467 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0":"12222222181b2221122222222181b2221122222222181b222112234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1468 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0":"123444443a333d433334444443a333d433334444443a333d4333344567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1469 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1470 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"1234":"123456787e7777767077777887e7777767077777887e77777670777778890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1471 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1472 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f76ff8810996cde66f7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1473 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1474 0x1234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100edcba987667b32100eedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1475 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef0":"0":"1234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1476 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abe2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1477 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1478 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1479 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1480 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239459030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1481 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1482 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1483 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1484 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391ca2c80f601283b5896a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1485 0x1234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a0371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1486 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1487 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"3":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1488 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1489 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1490 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1491 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"10000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1492 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"ffffffff":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1493 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"100000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1494 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"7f7f7f7f7f7f7f7f":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1495 0xfffffffffffffffffefefefefefefefe + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"8000000000000000":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1496 0xfffffffffffffffffefefefefefefefe + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1497 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1498 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"3":"fffffffffffffffffefefefefefeff01":"0":"fffffffffffffffffefefefefefeff01":"0" - -mbedtls_mpi_core_mla #1499 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fe":"fffffffffffffffffefefefefefefffc":"0":"fffffffffffffffffefefefefefefffc":"0" - -mbedtls_mpi_core_mla #1500 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ff":"fffffffffffffffffefefefefefefffd":"0":"fffffffffffffffffefefefefefefffd":"0" - -mbedtls_mpi_core_mla #1501 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffff":"fffffffffffffffffefefefefefffefd":"0":"fffffffffffffffffefefefefefffefd":"0" - -mbedtls_mpi_core_mla #1502 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"10000":"fffffffffffffffffefefefefefffefe":"0":"fffffffffffffffffefefefefefffefe":"0" - -mbedtls_mpi_core_mla #1503 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"ffffffff":"fffffffffffffffffefefefffefefefd":"0":"fffffffffffffffffefefefffefefefd":"0" - -mbedtls_mpi_core_mla #1504 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"100000000":"fffffffffffffffffefefefffefefefe":"0":"fffffffffffffffffefefefffefefefe":"0" - -mbedtls_mpi_core_mla #1505 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"7f7f7f7f7f7f7f7f":"7e7e7e7e7e7e7e7d":"1":"7e7e7e7e7e7e7e7d":"1" - -mbedtls_mpi_core_mla #1506 0xfffffffffffffffffefefefefefefefe + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"8000000000000000":"7efefefefefefefe":"1":"7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1507 0xfffffffffffffffffefefefefefefefe + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1":"fffffffffffffffe":"fefefefefefefefc":"1":"fefefefefefefefc":"1" - -mbedtls_mpi_core_mla #1508 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1509 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"3":"fffffffffffffffffefefefeff01fef8":"0":"fffffffffffffffffefefefeff01fef8":"0" - -mbedtls_mpi_core_mla #1510 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fe":"fffffffffffffffffefefefefffcfd02":"0":"fffffffffffffffffefefefefffcfd02":"0" - -mbedtls_mpi_core_mla #1511 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ff":"fffffffffffffffffefefefefffdfd00":"0":"fffffffffffffffffefefefefffdfd00":"0" - -mbedtls_mpi_core_mla #1512 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffff":"fffffffffffffffffefefefffefbff00":"0":"fffffffffffffffffefefefffefbff00":"0" - -mbedtls_mpi_core_mla #1513 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"10000":"fffffffffffffffffefefefffefcfefe":"0":"fffffffffffffffffefefefffefcfefe":"0" - -mbedtls_mpi_core_mla #1514 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"ffffffff":"fffffffffffffffffefffefcfefdff00":"0":"fffffffffffffffffefffefcfefdff00":"0" - -mbedtls_mpi_core_mla #1515 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"100000000":"fffffffffffffffffefffefcfefefefe":"0":"fffffffffffffffffefffefcfefefefe":"0" - -mbedtls_mpi_core_mla #1516 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"7f7f7f7f7f7f7f7f":"7f7e7f7f7f7f7f7f0000":"1":"7f7e7f7f7f7f7f7f0000":"1" - -mbedtls_mpi_core_mla #1517 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"8000000000000000":"7ffefefefefefefefefe":"1":"7ffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1518 0xfffffffffffffffffefefefefefefefe + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffe":"fffffffffffffffe":"fffdfefefefefefcff02":"1":"fffdfefefefefefcff02":"1" - -mbedtls_mpi_core_mla #1519 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1520 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"3":"fffffffffffffffffefeff01fefefefb":"0":"fffffffffffffffffefeff01fefefefb":"0" - -mbedtls_mpi_core_mla #1521 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fe":"fffffffffffffffffefefffcfefefe00":"0":"fffffffffffffffffefefffcfefefe00":"0" - -mbedtls_mpi_core_mla #1522 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ff":"fffffffffffffffffefefffdfefefdff":"0":"fffffffffffffffffefefffdfefefdff":"0" - -mbedtls_mpi_core_mla #1523 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffff":"fffffffffffffffffefffefdfefdfeff":"0":"fffffffffffffffffefffefdfefdfeff":"0" - -mbedtls_mpi_core_mla #1524 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"10000":"fffffffffffffffffefffefefefdfefe":"0":"fffffffffffffffffefffefefefdfefe":"0" - -mbedtls_mpi_core_mla #1525 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"ffffffff":"fefefefcfefefeff":"1":"fefefefcfefefeff":"1" - -mbedtls_mpi_core_mla #1526 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"100000000":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1527 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7efefefefe7f7f7f7f":"1":"7f7f7f7efefefefe7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1528 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"8000000000000000":"7fffffff7efefefefefefefe":"1":"7fffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1529 0xfffffffffffffffffefefefefefefefe + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffe":"fffffffefefefefcfefeff00":"1":"fffffffefefefefcfefeff00":"1" - -mbedtls_mpi_core_mla #1530 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1531 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"3":"fffffffffffffffffefeff01fefefefe":"0":"fffffffffffffffffefeff01fefefefe":"0" - -mbedtls_mpi_core_mla #1532 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fe":"fffffffffffffffffefefffcfefefefe":"0":"fffffffffffffffffefefffcfefefefe":"0" - -mbedtls_mpi_core_mla #1533 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ff":"fffffffffffffffffefefffdfefefefe":"0":"fffffffffffffffffefefffdfefefefe":"0" - -mbedtls_mpi_core_mla #1534 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffff":"fffffffffffffffffefffefdfefefefe":"0":"fffffffffffffffffefffefdfefefefe":"0" - -mbedtls_mpi_core_mla #1535 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"10000":"fffffffffffffffffefffefefefefefe":"0":"fffffffffffffffffefffefefefefefe":"0" - -mbedtls_mpi_core_mla #1536 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"ffffffff":"fefefefdfefefefe":"1":"fefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1537 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"100000000":"fefefefefefefefe":"1":"fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1538 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7e7e7e7dfefefefe":"1":"7f7f7f7f7e7e7e7dfefefefe":"1" - -mbedtls_mpi_core_mla #1539 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"8000000000000000":"7ffffffffefefefefefefefe":"1":"7ffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1540 0xfffffffffffffffffefefefefefefefe + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffe":"fffffffffefefefcfefefefe":"1":"fffffffffefefefcfefefefe":"1" - -mbedtls_mpi_core_mla #1541 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1542 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"3":"ffffffffffffffffff5efefefefefefe":"0":"ffffffffffffffffff5efefefefefefe":"0" - -mbedtls_mpi_core_mla #1543 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fe":"1ebefefefefefefe":"1":"1ebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1544 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ff":"1edefefefefefefe":"1":"1edefefefefefefe":"1" - -mbedtls_mpi_core_mla #1545 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffff":"1ffedefefefefefefe":"1":"1ffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1546 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"10000":"1ffefefefefefefefe":"1":"1ffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1547 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"ffffffff":"1ffffffedefefefefefefe":"1":"1ffffffedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1548 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"100000000":"1ffffffefefefefefefefe":"1":"1ffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1549 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefeedefefefefefefe":"1":"fefefefefefefeedefefefefefefe":"1" - -mbedtls_mpi_core_mla #1550 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"8000000000000000":"ffffffffffffffefefefefefefefe":"1":"ffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1551 0xfffffffffffffffffefefefefefefefe + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"20000000000000":"fffffffffffffffe":"1ffffffffffffffebefefefefefefe":"1":"1ffffffffffffffebefefefefefefe":"1" - -mbedtls_mpi_core_mla #1552 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1553 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"3":"2fefefefefefefefb":"1":"2fefefefefefefefb":"1" - -mbedtls_mpi_core_mla #1554 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fe":"fdfefefefefefefe00":"1":"fdfefefefefefefe00":"1" - -mbedtls_mpi_core_mla #1555 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ff":"fefefefefefefefdff":"1":"fefefefefefefefdff":"1" - -mbedtls_mpi_core_mla #1556 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffff":"fffefefefefefefdfeff":"1":"fffefefefefefefdfeff":"1" - -mbedtls_mpi_core_mla #1557 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"10000":"fffffefefefefefdfefe":"1":"fffffefefefefefdfefe":"1" - -mbedtls_mpi_core_mla #1558 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"ffffffff":"fffffffefefefefdfefefeff":"1":"fffffffefefefefdfefefeff":"1" - -mbedtls_mpi_core_mla #1559 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"100000000":"fffffffffefefefdfefefefe":"1":"fffffffffefefefdfefefefe":"1" - -mbedtls_mpi_core_mla #1560 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1":"7f7f7f7f7f7f7f7e7f7f7f7f7f7f7f7f":"1" - -mbedtls_mpi_core_mla #1561 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7efefefefefefefe":"1":"7fffffffffffffff7efefefefefefefe":"1" - -mbedtls_mpi_core_mla #1562 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffcfefefefefefeff00":"1":"fffffffffffffffcfefefefefefeff00":"1" - -mbedtls_mpi_core_mla #1563 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1564 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"3":"2fefefefefefefefe":"1":"2fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1565 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fe":"fdfefefefefefefefe":"1":"fdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1566 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ff":"fefefefefefefefefe":"1":"fefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1567 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffff":"fffefefefefefefefefe":"1":"fffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1568 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"10000":"fffffefefefefefefefe":"1":"fffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1569 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"ffffffff":"fffffffefefefefefefefefe":"1":"fffffffefefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1570 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"100000000":"fffffffffefefefefefefefe":"1":"fffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1571 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7efefefefefefefefe":"1":"7f7f7f7f7f7f7f7efefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1572 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"8000000000000000":"7ffffffffffffffffefefefefefefefe":"1":"7ffffffffffffffffefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1573 0xfffffffffffffffffefefefefefefefe + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe":"1":"fffffffffffffffdfefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1574 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1575 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"3":"368cf359a1f359bce":"1":"368cf359a1f359bce":"1" - -mbedtls_mpi_core_mla #1576 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fe":"120fddbb8f7a664311e":"1":"120fddbb8f7a664311e":"1" - -mbedtls_mpi_core_mla #1577 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ff":"12221212080b121100e":"1":"12221212080b121100e":"1" - -mbedtls_mpi_core_mla #1578 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffff":"123444342a232d332200e":"1":"123444342a232d332200e":"1" - -mbedtls_mpi_core_mla #1579 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"10000":"12345668809bbddeefefe":"1":"12345668809bbddeefefe":"1" - -mbedtls_mpi_core_mla #1580 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"ffffffff":"123456787e6767665f442200e":"1":"123456787e6767665f442200e":"1" - -mbedtls_mpi_core_mla #1581 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"100000000":"12345678909bbddeefefefefe":"1":"12345678909bbddeefefefefe":"1" - -mbedtls_mpi_core_mla #1582 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f57607aaae5aa80e":"1":"91107edbd82bde76f57607aaae5aa80e":"1" - -mbedtls_mpi_core_mla #1583 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77fefefefefefefefe":"1":"91a2b3c4855e6f77fefefefefefefefe":"1" - -mbedtls_mpi_core_mla #1584 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef0":"fffffffffffffffe":"234567890abcdeedb8742fece985411e":"2":"234567890abcdeedb8742fece985411e":"2" - -mbedtls_mpi_core_mla #1585 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1586 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3":"fffffffffffffffffbfbfbfbfbfbfbf8":"3" - -mbedtls_mpi_core_mla #1587 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fe":"fffffffffffffffeffffffffffffff02":"fe":"fffffffffffffffeffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1588 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffefefefefefefefe00":"ff":"fffffffffffffffefefefefefefefe00":"ff" - -mbedtls_mpi_core_mla #1589 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffefefefefefefefe0000":"ffff":"fffffffffffffefefefefefefefe0000":"ffff" - -mbedtls_mpi_core_mla #1590 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000":"fffffffffffffefefdfdfdfdfdfcfefe":"10000" - -mbedtls_mpi_core_mla #1591 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff":"fffffffffefefefefefefefe00000000":"ffffffff" - -mbedtls_mpi_core_mla #1592 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000":"fffffffffefefefefdfdfdfcfefefefe":"100000000" - -mbedtls_mpi_core_mla #1593 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f":"ff800081018202828403830282018100":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1594 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7efefefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1595 0xfffffffffffffffffefefefefefefefe + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe":"fefefefefefefefe0101010101010102":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1596 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1597 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"3":"3fffffffffffffffffefefefefefefefe":"0":"3fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1598 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fe":"fefffffffffffffffffefefefefefefefe":"0":"fefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1599 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ff":"fffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1600 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffff":"fffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1601 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"10000":"10000fffffffffffffffffefefefefefefefe":"0":"10000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1602 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"ffffffff":"fffffffffffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1603 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"100000000":"fffffffffffffffffefefefefefefefe":"1":"100000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1604 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7ffffffffffffffffffefefefefefefefe":"7f7f7f7f":"7f7f7f7f7f7f7f7ffffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1605 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"8000000000000000":"fffffffffffffffffefefefefefefefe":"80000000":"8000000000000000fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1606 0xfffffffffffffffffefefefefefefefe + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffefffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffefffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1607 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1608 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0368cf359a1f359bce":"0":"379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1609 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fddbb8f7a664311e":"0":"1210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1610 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122221212080b121100e":"0":"12232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1611 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444342a232d332200e":"0":"123445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1612 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef012345668809bbddeefefe":"0":"1234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1613 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e6767665f442200e":"12":"123456787f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1614 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef012345678909bbddeefefefefe":"12":"1234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1615 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f57607aaae5aa80e":"91107edbd":"1107edbd82bde770f8810996cde66f76f57607aaae5aa80e":"9" - -mbedtls_mpi_core_mla #1616 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"9" - -mbedtls_mpi_core_mla #1617 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb8742fece985411e":"1234567890":"34567890abcdeeddba987667b32100edb8742fece985411e":"12" - -mbedtls_mpi_core_mla #1618 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1619 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffefefefefefefefb":"3":"fffffffffffffffffefefefefefefefb":"3" - -mbedtls_mpi_core_mla #1620 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"fffffffffffffffffefefefefefefe00":"fe":"fffffffffffffffffefefefefefefe00":"fe" - -mbedtls_mpi_core_mla #1621 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"fffffffffffffffffefefefefefefdff":"ff":"fffffffffffffffffefefefefefefdff":"ff" - -mbedtls_mpi_core_mla #1622 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff":"fffffffffffffffffefefefefefdfeff":"ffff" - -mbedtls_mpi_core_mla #1623 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffefefefefefdfefe":"10000":"fffffffffffffffffefefefefefdfefe":"10000" - -mbedtls_mpi_core_mla #1624 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff":"fffffffffffffffffefefefdfefefeff":"ffffffff" - -mbedtls_mpi_core_mla #1625 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000":"fffffffffffffffffefefefdfefefefe":"100000000" - -mbedtls_mpi_core_mla #1626 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f":"ffffffffffffffff7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1627 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000":"ffffffffffffffff7efefefefefefefe":"8000000000000000" - -mbedtls_mpi_core_mla #1628 0xfffffffffffffffffefefefefefefefe + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe":"fffffffffffffffefefefefefefeff00":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1629 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1630 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0368cf359a1f359bce":"0" - -mbedtls_mpi_core_mla #1631 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fddbb8f7a664311e":"0" - -mbedtls_mpi_core_mla #1632 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0":"12222222181b2221122222222181b2221122232222181b2221122221212080b121100e":"0" - -mbedtls_mpi_core_mla #1633 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0":"123444443a333d433334444443a333d433334445443a333d433334444342a232d332200e":"0" - -mbedtls_mpi_core_mla #1634 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0":"1234567890abcdef01234567890abcdef01234577890abcdef012345668809bbddeefefe":"0" - -mbedtls_mpi_core_mla #1635 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e6767665f442200e":"0" - -mbedtls_mpi_core_mla #1636 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef012345678909bbddeefefefefe":"0" - -mbedtls_mpi_core_mla #1637 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f57607aaae5aa80e":"911" - -mbedtls_mpi_core_mla #1638 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f77fefefefefefefefe":"91a" - -mbedtls_mpi_core_mla #1639 0xfffffffffffffffffefefefefefefefe + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb8742fece985411e":"1234" - -mbedtls_mpi_core_mla #1640 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffffefefefefefefefe":"0":"fffffffffffffffffefefefefefefefe":"0" - -mbedtls_mpi_core_mla #1641 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0a04c305f063127f":"0" - -mbedtls_mpi_core_mla #1642 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304ee7294ad4c2c7a8":"0" - -mbedtls_mpi_core_mla #1643 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a7e9154d253978d3":"0" - -mbedtls_mpi_core_mla #1644 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d91ff63735fb34dd3":"0" - -mbedtls_mpi_core_mla #1645 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901eb014f75b029fefe":"0" - -mbedtls_mpi_core_mla #1646 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df673c427ae884dd3":"4" - -mbedtls_mpi_core_mla #1647 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec024f75b029fefefefe":"4" - -mbedtls_mpi_core_mla #1648 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05c34402b051a3853":"26d473ca9" - -mbedtls_mpi_core_mla #1649 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58957efefefefefefefe":"26fb9683d" - -mbedtls_mpi_core_mla #1650 0xfffffffffffffffffefefefefefefefe + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"fffffffffffffffffefefefefefefefe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024cfb26fa5e119ca8":"4df72d07b" - -mbedtls_mpi_core_mla #1651 0x100000000000000000000000000000000 + 0x0 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1652 0x100000000000000000000000000000000 + 0x0 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"0":"3":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1653 0x100000000000000000000000000000000 + 0x0 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"0":"fe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1654 0x100000000000000000000000000000000 + 0x0 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"0":"ff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1655 0x100000000000000000000000000000000 + 0x0 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"0":"ffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1656 0x100000000000000000000000000000000 + 0x0 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"0":"10000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1657 0x100000000000000000000000000000000 + 0x0 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"0":"ffffffff":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1658 0x100000000000000000000000000000000 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"100000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1659 0x100000000000000000000000000000000 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"7f7f7f7f7f7f7f7f":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1660 0x100000000000000000000000000000000 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"8000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1661 0x100000000000000000000000000000000 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"0":"fffffffffffffffe":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1662 0x100000000000000000000000000000000 + 0x1 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"1":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1663 0x100000000000000000000000000000000 + 0x1 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"1":"3":"100000000000000000000000000000003":"0":"100000000000000000000000000000003":"0" - -mbedtls_mpi_core_mla #1664 0x100000000000000000000000000000000 + 0x1 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"1":"fe":"1000000000000000000000000000000fe":"0":"1000000000000000000000000000000fe":"0" - -mbedtls_mpi_core_mla #1665 0x100000000000000000000000000000000 + 0x1 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"1":"ff":"1000000000000000000000000000000ff":"0":"1000000000000000000000000000000ff":"0" - -mbedtls_mpi_core_mla #1666 0x100000000000000000000000000000000 + 0x1 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"1":"ffff":"10000000000000000000000000000ffff":"0":"10000000000000000000000000000ffff":"0" - -mbedtls_mpi_core_mla #1667 0x100000000000000000000000000000000 + 0x1 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"1":"10000":"100000000000000000000000000010000":"0":"100000000000000000000000000010000":"0" - -mbedtls_mpi_core_mla #1668 0x100000000000000000000000000000000 + 0x1 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"1":"ffffffff":"1000000000000000000000000ffffffff":"0":"1000000000000000000000000ffffffff":"0" - -mbedtls_mpi_core_mla #1669 0x100000000000000000000000000000000 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"100000000":"100000000000000000000000100000000":"0":"100000000000000000000000100000000":"0" - -mbedtls_mpi_core_mla #1670 0x100000000000000000000000000000000 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"7f7f7f7f7f7f7f7f":"100000000000000007f7f7f7f7f7f7f7f":"0":"100000000000000007f7f7f7f7f7f7f7f":"0" - -mbedtls_mpi_core_mla #1671 0x100000000000000000000000000000000 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"8000000000000000":"100000000000000008000000000000000":"0":"100000000000000008000000000000000":"0" - -mbedtls_mpi_core_mla #1672 0x100000000000000000000000000000000 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1":"fffffffffffffffe":"10000000000000000fffffffffffffffe":"0":"10000000000000000fffffffffffffffe":"0" - -mbedtls_mpi_core_mla #1673 0x100000000000000000000000000000000 + 0xfffe * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1674 0x100000000000000000000000000000000 + 0xfffe * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"3":"10000000000000000000000000002fffa":"0":"10000000000000000000000000002fffa":"0" - -mbedtls_mpi_core_mla #1675 0x100000000000000000000000000000000 + 0xfffe * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fe":"100000000000000000000000000fdfe04":"0":"100000000000000000000000000fdfe04":"0" - -mbedtls_mpi_core_mla #1676 0x100000000000000000000000000000000 + 0xfffe * 0xff -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ff":"100000000000000000000000000fefe02":"0":"100000000000000000000000000fefe02":"0" - -mbedtls_mpi_core_mla #1677 0x100000000000000000000000000000000 + 0xfffe * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffff":"1000000000000000000000000fffd0002":"0":"1000000000000000000000000fffd0002":"0" - -mbedtls_mpi_core_mla #1678 0x100000000000000000000000000000000 + 0xfffe * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"10000":"1000000000000000000000000fffe0000":"0":"1000000000000000000000000fffe0000":"0" - -mbedtls_mpi_core_mla #1679 0x100000000000000000000000000000000 + 0xfffe * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"fffe":"ffffffff":"100000000000000000000fffdffff0002":"0":"100000000000000000000fffdffff0002":"0" - -mbedtls_mpi_core_mla #1680 0x100000000000000000000000000000000 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"100000000":"100000000000000000000fffe00000000":"0":"100000000000000000000fffe00000000":"0" - -mbedtls_mpi_core_mla #1681 0x100000000000000000000000000000000 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"7f7f7f7f7f7f7f7f":"10000000000007f7e8080808080800102":"0":"10000000000007f7e8080808080800102":"0" - -mbedtls_mpi_core_mla #1682 0x100000000000000000000000000000000 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"8000000000000000":"10000000000007fff0000000000000000":"0":"10000000000007fff0000000000000000":"0" - -mbedtls_mpi_core_mla #1683 0x100000000000000000000000000000000 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffe":"fffffffffffffffe":"1000000000000fffdfffffffffffe0004":"0":"1000000000000fffdfffffffffffe0004":"0" - -mbedtls_mpi_core_mla #1684 0x100000000000000000000000000000000 + 0xffffffff * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1685 0x100000000000000000000000000000000 + 0xffffffff * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"3":"1000000000000000000000002fffffffd":"0":"1000000000000000000000002fffffffd":"0" - -mbedtls_mpi_core_mla #1686 0x100000000000000000000000000000000 + 0xffffffff * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fe":"10000000000000000000000fdffffff02":"0":"10000000000000000000000fdffffff02":"0" - -mbedtls_mpi_core_mla #1687 0x100000000000000000000000000000000 + 0xffffffff * 0xff -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ff":"10000000000000000000000feffffff01":"0":"10000000000000000000000feffffff01":"0" - -mbedtls_mpi_core_mla #1688 0x100000000000000000000000000000000 + 0xffffffff * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffff":"100000000000000000000fffeffff0001":"0":"100000000000000000000fffeffff0001":"0" - -mbedtls_mpi_core_mla #1689 0x100000000000000000000000000000000 + 0xffffffff * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"10000":"100000000000000000000ffffffff0000":"0":"100000000000000000000ffffffff0000":"0" - -mbedtls_mpi_core_mla #1690 0x100000000000000000000000000000000 + 0xffffffff * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"ffffffff":"10000000000000000fffffffe00000001":"0":"10000000000000000fffffffe00000001":"0" - -mbedtls_mpi_core_mla #1691 0x100000000000000000000000000000000 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"100000000":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1692 0x100000000000000000000000000000000 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7effffffff80808081":"0":"1000000007f7f7f7effffffff80808081":"0" - -mbedtls_mpi_core_mla #1693 0x100000000000000000000000000000000 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"8000000000000000":"1000000007fffffff8000000000000000":"0":"1000000007fffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1694 0x100000000000000000000000000000000 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffff":"fffffffffffffffe":"100000000fffffffefffffffe00000002":"0":"100000000fffffffefffffffe00000002":"0" - -mbedtls_mpi_core_mla #1695 0x100000000000000000000000000000000 + 0x100000000 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1696 0x100000000000000000000000000000000 + 0x100000000 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"3":"100000000000000000000000300000000":"0":"100000000000000000000000300000000":"0" - -mbedtls_mpi_core_mla #1697 0x100000000000000000000000000000000 + 0x100000000 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fe":"10000000000000000000000fe00000000":"0":"10000000000000000000000fe00000000":"0" - -mbedtls_mpi_core_mla #1698 0x100000000000000000000000000000000 + 0x100000000 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ff":"10000000000000000000000ff00000000":"0":"10000000000000000000000ff00000000":"0" - -mbedtls_mpi_core_mla #1699 0x100000000000000000000000000000000 + 0x100000000 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffff":"100000000000000000000ffff00000000":"0":"100000000000000000000ffff00000000":"0" - -mbedtls_mpi_core_mla #1700 0x100000000000000000000000000000000 + 0x100000000 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"10000":"100000000000000000001000000000000":"0":"100000000000000000001000000000000":"0" - -mbedtls_mpi_core_mla #1701 0x100000000000000000000000000000000 + 0x100000000 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"100000000":"ffffffff":"10000000000000000ffffffff00000000":"0":"10000000000000000ffffffff00000000":"0" - -mbedtls_mpi_core_mla #1702 0x100000000000000000000000000000000 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"100000000":"100000000000000010000000000000000":"0":"100000000000000010000000000000000":"0" - -mbedtls_mpi_core_mla #1703 0x100000000000000000000000000000000 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"7f7f7f7f7f7f7f7f":"1000000007f7f7f7f7f7f7f7f00000000":"0":"1000000007f7f7f7f7f7f7f7f00000000":"0" - -mbedtls_mpi_core_mla #1704 0x100000000000000000000000000000000 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"8000000000000000":"100000000800000000000000000000000":"0":"100000000800000000000000000000000":"0" - -mbedtls_mpi_core_mla #1705 0x100000000000000000000000000000000 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000":"fffffffffffffffe":"100000000fffffffffffffffe00000000":"0":"100000000fffffffffffffffe00000000":"0" - -mbedtls_mpi_core_mla #1706 0x100000000000000000000000000000000 + 0x20000000000000 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1707 0x100000000000000000000000000000000 + 0x20000000000000 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"3":"100000000000000000060000000000000":"0":"100000000000000000060000000000000":"0" - -mbedtls_mpi_core_mla #1708 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fe":"100000000000000001fc0000000000000":"0":"100000000000000001fc0000000000000":"0" - -mbedtls_mpi_core_mla #1709 0x100000000000000000000000000000000 + 0x20000000000000 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ff":"100000000000000001fe0000000000000":"0":"100000000000000001fe0000000000000":"0" - -mbedtls_mpi_core_mla #1710 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffff":"1000000000000001fffe0000000000000":"0":"1000000000000001fffe0000000000000":"0" - -mbedtls_mpi_core_mla #1711 0x100000000000000000000000000000000 + 0x20000000000000 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"10000":"100000000000000200000000000000000":"0":"100000000000000200000000000000000":"0" - -mbedtls_mpi_core_mla #1712 0x100000000000000000000000000000000 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"ffffffff":"100000000001fffffffe0000000000000":"0":"100000000001fffffffe0000000000000":"0" - -mbedtls_mpi_core_mla #1713 0x100000000000000000000000000000000 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"100000000":"100000000002000000000000000000000":"0":"100000000002000000000000000000000":"0" - -mbedtls_mpi_core_mla #1714 0x100000000000000000000000000000000 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"7f7f7f7f7f7f7f7f":"1000fefefefefefefefe0000000000000":"0":"1000fefefefefefefefe0000000000000":"0" - -mbedtls_mpi_core_mla #1715 0x100000000000000000000000000000000 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"8000000000000000":"100100000000000000000000000000000":"0":"100100000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1716 0x100000000000000000000000000000000 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"20000000000000":"fffffffffffffffe":"1001fffffffffffffffc0000000000000":"0":"1001fffffffffffffffc0000000000000":"0" - -mbedtls_mpi_core_mla #1717 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1718 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"3":"10000000000000002fffffffffffffffd":"0":"10000000000000002fffffffffffffffd":"0" - -mbedtls_mpi_core_mla #1719 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fe":"100000000000000fdffffffffffffff02":"0":"100000000000000fdffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1720 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ff":"100000000000000feffffffffffffff01":"0":"100000000000000feffffffffffffff01":"0" - -mbedtls_mpi_core_mla #1721 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffff":"1000000000000fffeffffffffffff0001":"0":"1000000000000fffeffffffffffff0001":"0" - -mbedtls_mpi_core_mla #1722 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"10000":"1000000000000ffffffffffffffff0000":"0":"1000000000000ffffffffffffffff0000":"0" - -mbedtls_mpi_core_mla #1723 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"ffffffff":"100000000fffffffeffffffff00000001":"0":"100000000fffffffeffffffff00000001":"0" - -mbedtls_mpi_core_mla #1724 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"100000000":"100000000ffffffffffffffff00000000":"0":"100000000ffffffffffffffff00000000":"0" - -mbedtls_mpi_core_mla #1725 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7e8080808080808081":"0":"17f7f7f7f7f7f7f7e8080808080808081":"0" - -mbedtls_mpi_core_mla #1726 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"8000000000000000":"17fffffffffffffff8000000000000000":"0":"17fffffffffffffff8000000000000000":"0" - -mbedtls_mpi_core_mla #1727 0x100000000000000000000000000000000 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffff":"fffffffffffffffe":"1fffffffffffffffd0000000000000002":"0":"1fffffffffffffffd0000000000000002":"0" - -mbedtls_mpi_core_mla #1728 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1729 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"3":"100000000000000030000000000000000":"0":"100000000000000030000000000000000":"0" - -mbedtls_mpi_core_mla #1730 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fe":"100000000000000fe0000000000000000":"0":"100000000000000fe0000000000000000":"0" - -mbedtls_mpi_core_mla #1731 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ff":"100000000000000ff0000000000000000":"0":"100000000000000ff0000000000000000":"0" - -mbedtls_mpi_core_mla #1732 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffff":"1000000000000ffff0000000000000000":"0":"1000000000000ffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1733 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"10000":"100000000000100000000000000000000":"0":"100000000000100000000000000000000":"0" - -mbedtls_mpi_core_mla #1734 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"ffffffff":"100000000ffffffff0000000000000000":"0":"100000000ffffffff0000000000000000":"0" - -mbedtls_mpi_core_mla #1735 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"100000000":"100000001000000000000000000000000":"0":"100000001000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1736 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"7f7f7f7f7f7f7f7f":"17f7f7f7f7f7f7f7f0000000000000000":"0":"17f7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1737 0x100000000000000000000000000000000 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"8000000000000000":"180000000000000000000000000000000":"0":"180000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1738 0x100000000000000000000000000000000 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"10000000000000000":"fffffffffffffffe":"1fffffffffffffffe0000000000000000":"0":"1fffffffffffffffe0000000000000000":"0" - -mbedtls_mpi_core_mla #1739 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1740 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"3":"1000000000000000369d0369b20369cd0":"0":"1000000000000000369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1741 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fe":"10000000000000120fedcb9f8a7653220":"0":"10000000000000120fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1742 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ff":"1000000000000012222222181b2221110":"0":"1000000000000012222222181b2221110":"0" - -mbedtls_mpi_core_mla #1743 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffff":"100000000000123444443a333d4332110":"0":"100000000000123444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1744 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"10000":"1000000000001234567890abcdef00000":"0":"1000000000001234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1745 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"ffffffff":"10000000123456787e7777766f5432110":"0":"10000000123456787e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1746 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"100000000":"100000001234567890abcdef000000000":"0":"100000001234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1747 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"191107edbd82bde76f67708abaf5ba910":"0":"191107edbd82bde76f67708abaf5ba910":"0" - -mbedtls_mpi_core_mla #1748 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"8000000000000000":"191a2b3c4855e6f780000000000000000":"0":"191a2b3c4855e6f780000000000000000":"0" - -mbedtls_mpi_core_mla #1749 0x100000000000000000000000000000000 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef0":"fffffffffffffffe":"2234567890abcdeedb97530edea864220":"0":"2234567890abcdeedb97530edea864220":"0" - -mbedtls_mpi_core_mla #1750 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1751 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"3":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0":"3fffffffffffffffffcfcfcfcfcfcfcfa":"0" - -mbedtls_mpi_core_mla #1752 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fe":"feffffffffffffffff0101010101010004":"0":"feffffffffffffffff0101010101010004":"0" - -mbedtls_mpi_core_mla #1753 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ff":"fffffffffffffffffeffffffffffffff02":"0":"fffffffffffffffffeffffffffffffff02":"0" - -mbedtls_mpi_core_mla #1754 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffff":"fffffffffffffffffefeffffffffffff0102":"0":"fffffffffffffffffefeffffffffffff0102":"0" - -mbedtls_mpi_core_mla #1755 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"10000":"10000fffffffffffffefefefefefefefe0000":"0":"10000fffffffffffffefefefefefefefe0000":"0" - -mbedtls_mpi_core_mla #1756 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffffffffffffefefefeffffffff01010102":"0":"fffffffffffffffffefefefeffffffff01010102":"0" - -mbedtls_mpi_core_mla #1757 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffefefefefefefefe00000000":"1":"100000000fffffffffefefefefefefefe00000000":"0" - -mbedtls_mpi_core_mla #1758 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7fff800081018202828504840383028202":"7f7f7f7f":"7f7f7f7f7f7f7f7fff800081018202828504840383028202":"0" - -mbedtls_mpi_core_mla #1759 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"8000000000000000":"ff7f7f7f7f7f7f7f0000000000000000":"80000000":"8000000000000000ff7f7f7f7f7f7f7f0000000000000000":"0" - -mbedtls_mpi_core_mla #1760 0x100000000000000000000000000000000 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffefefefefefefefefe0202020202020204":"ffffffff":"fffffffffffffffefefefefefefefefe0202020202020204":"0" - -mbedtls_mpi_core_mla #1761 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1762 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"3":"400000000000000000000000000000000":"0":"400000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1763 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fe":"ff00000000000000000000000000000000":"0":"ff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1764 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ff":"10000000000000000000000000000000000":"0":"10000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1765 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffff":"1000000000000000000000000000000000000":"0":"1000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1766 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"10000":"1000100000000000000000000000000000000":"0":"1000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1767 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"ffffffff":"0":"1":"10000000000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1768 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"100000000":"100000000000000000000000000000000":"1":"10000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1769 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f8000000000000000000000000000000000":"7f7f7f7f":"7f7f7f7f7f7f7f8000000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1770 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"8000000000000000":"100000000000000000000000000000000":"80000000":"800000000000000100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1771 0x100000000000000000000000000000000 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"100000000000000000000000000000000":"fffffffffffffffe":"ffffffff00000000000000000000000000000000":"ffffffff":"ffffffffffffffff00000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1772 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1773 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"3":"379d0369b20369cd0369d0369b20369cd0":"0":"379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1774 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fe":"1210edcb9f8a76532320fedcb9f8a7653220":"0":"1210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1775 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ff":"12232222181b2221122222222181b2221110":"0":"12232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1776 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffff":"123445443a333d433334444443a333d4332110":"0":"123445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1777 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"10000":"1234577890abcdef01234567890abcdef00000":"0":"1234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1778 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"ffffffff":"3456787f7777767077777887e7777766f5432110":"12":"123456787f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1779 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"100000000":"34567891abcdef01234567890abcdef000000000":"12":"1234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1780 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde770f8810996cde66f76f67708abaf5ba910":"91107edbd":"1107edbd82bde770f8810996cde66f76f67708abaf5ba910":"9" - -mbedtls_mpi_core_mla #1781 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f78191a2b3c4855e6f780000000000000000":"91a2b3c48":"1a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"9" - -mbedtls_mpi_core_mla #1782 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeddba987667b32100edb97530edea864220":"1234567890":"34567890abcdeeddba987667b32100edb97530edea864220":"12" - -mbedtls_mpi_core_mla #1783 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1784 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffd":"3":"fffffffffffffffffffffffffffffffd":"3" - -mbedtls_mpi_core_mla #1785 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffff02":"fe":"ffffffffffffffffffffffffffffff02":"fe" - -mbedtls_mpi_core_mla #1786 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffff01":"ff":"ffffffffffffffffffffffffffffff01":"ff" - -mbedtls_mpi_core_mla #1787 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffff0001":"ffff":"ffffffffffffffffffffffffffff0001":"ffff" - -mbedtls_mpi_core_mla #1788 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"ffffffffffffffffffffffffffff0000":"10000":"ffffffffffffffffffffffffffff0000":"10000" - -mbedtls_mpi_core_mla #1789 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff":"ffffffffffffffffffffffff00000001":"ffffffff" - -mbedtls_mpi_core_mla #1790 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffffffffffffffffffff00000000":"100000000":"ffffffffffffffffffffffff00000000":"100000000" - -mbedtls_mpi_core_mla #1791 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f":"ffffffffffffffff8080808080808081":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1792 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000":"ffffffffffffffff8000000000000000":"8000000000000000" - -mbedtls_mpi_core_mla #1793 0x100000000000000000000000000000000 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe":"ffffffffffffffff0000000000000002":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1794 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1795 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0":"369d0369b20369cd0369d0369b20369cd0379d0369b20369cd0369d0369b20369cd0":"0" - -mbedtls_mpi_core_mla #1796 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0":"120fedcb9f8a76532320fedcb9f8a765323210edcb9f8a76532320fedcb9f8a7653220":"0" - -mbedtls_mpi_core_mla #1797 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122232222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1798 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0":"123444443a333d433334444443a333d433334445443a333d433334444443a333d4332110":"0" - -mbedtls_mpi_core_mla #1799 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234577890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1800 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"1234":"123456787e7777767077777887e7777767077777887f7777767077777887e7777766f5432110":"0" - -mbedtls_mpi_core_mla #1801 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1802 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f770f8810996cde66f76f67708abaf5ba910":"911" - -mbedtls_mpi_core_mla #1803 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f78191a2b3c4855e6f780000000000000000":"91a" - -mbedtls_mpi_core_mla #1804 0x100000000000000000000000000000000 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eddba987667b32100edb97530edea864220":"1234" - -mbedtls_mpi_core_mla #1805 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000000000000000000000000000":"0":"100000000000000000000000000000000":"0" - -mbedtls_mpi_core_mla #1806 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53c5197a996c0ad56abd0b05c406f1641381":"0" - -mbedtls_mpi_core_mla #1807 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0986c28c1310ea954d304fe82a4bd5c3c8aa":"0" - -mbedtls_mpi_core_mla #1808 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01d75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #1809 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1ec932aa5d078754d356d9300647460b44ed5":"0" - -mbedtls_mpi_core_mla #1810 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b329ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #1811 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c4441738fb1e45c5aabac86df774c528af894ed5":"4" - -mbedtls_mpi_core_mla #1812 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #1813 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0e3b7feacb855cb62a05d35412c061b3955":"26d473ca9" - -mbedtls_mpi_core_mla #1814 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391cb2c80f601283b58958000000000000000":"26fb9683d" - -mbedtls_mpi_core_mla #1815 0x100000000000000000000000000000000 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"100000000000000000000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d9667f2b03064f3e86a024dfc27fb5f129daa":"4df72d07b" - -mbedtls_mpi_core_mla #1816 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1817 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1818 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1819 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1820 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1821 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1822 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1823 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1824 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1825 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1826 0x1234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1827 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1828 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #1829 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #1830 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #1831 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #1832 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #1833 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #1834 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #1835 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #1836 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1837 0x1234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef02234567890abcdeee":"0":"1234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #1838 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1839 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #1840 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #1841 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #1842 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #1843 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef012345678a0abadef0":"0":"1234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #1844 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #1845 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #1846 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #1847 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abce6f00234567890abcdef0":"0":"1234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1848 0x1234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abceeeff234567890abadef4":"0":"1234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #1849 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1850 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #1851 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #1852 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #1853 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #1854 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #1855 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef02234567870abcdef1":"0":"1234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #1856 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1857 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80234567888b3d5f71":"0":"12345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #1858 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"12345678912bcdef00a34567890abcdef0":"0":"12345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1859 0x1234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567891abcdef00234567870abcdef2":"0":"1234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #1860 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1861 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #1862 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #1863 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #1864 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #1865 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #1866 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef02234567880abcdef0":"0":"1234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1867 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef02234567890abcdef0":"0":"1234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1868 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"12345678912b4d6e80a2c4e7080abcdef0":"0":"12345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #1869 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"12345678912bcdef01234567890abcdef0":"0":"12345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1870 0x1234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567891abcdef01234567870abcdef0":"0":"1234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #1871 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1872 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #1873 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #1874 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #1875 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef21232567890abcdef0":"0":"1234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1876 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef21234567890abcdef0":"0":"1234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1877 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abedef01232567890abcdef0":"0":"1234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #1878 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abedef01234567890abcdef0":"0":"1234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1879 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"12346668809bbddef1132567890abcdef0":"0":"12346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #1880 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234667890abcdef01234567890abcdef0":"0":"1234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1881 0x1234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234767890abcdef01230567890abcdef0":"0":"1234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #1882 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1883 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef04234567890abcdeed":"0":"1234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #1884 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdefff234567890abcddf2":"0":"1234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1885 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdf000234567890abcddf1":"0":"1234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #1886 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abceef00234567890abbdef1":"0":"1234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #1887 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abceef01234567890abbdef0":"0":"1234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #1888 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567891abcdef00234567880abcdef1":"0":"1234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #1889 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567891abcdef01234567880abcdef0":"0":"1234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #1890 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"12b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #1891 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"12b4567890abcdef00a34567890abcdef0":"0":"12b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #1892 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1334567890abcdeefe234567890abcdef2":"0":"1334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #1893 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1894 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef04234567890abcdef0":"0":"1234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1895 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdefff234567890abcdef0":"0":"1234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1896 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdf000234567890abcdef0":"0":"1234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1897 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abceef00234567890abcdef0":"0":"1234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1898 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abceef01234567890abcdef0":"0":"1234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1899 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567891abcdef00234567890abcdef0":"0":"1234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1900 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567891abcdef01234567890abcdef0":"0":"1234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1901 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"12b3d5f8102b4d6e80234567890abcdef0":"0":"12b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1902 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"12b4567890abcdef01234567890abcdef0":"0":"12b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1903 0x1234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1334567890abcdeeff234567890abcdef0":"0":"1334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1904 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1905 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1906 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdf02222222181b2221110":"0":"1234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #1907 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdf0234567890abcdef000":"0":"1234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1908 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcf124567890abcdef00000":"0":"1234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1909 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcf12468ace7245e9acdef0":"0":"1234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1910 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567891cf1356890abcdef000000000":"0":"1234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1911 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567891cf13568a2e0246790abcdef0":"0":"1234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1912 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"12c566f76c83f9cd7819bc7034ba188800":"0":"12c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #1913 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"12c5f92c55312c5e79234567890abcdef0":"0":"12c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1914 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"13579be019b68acdeedcba9876f5432110":"0":"13579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #1915 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1916 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1534567890abcdef012042648607b9dbea":"0":"1534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #1917 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"11034567890abcdef002446688a0bbddef4":"0":"11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #1918 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"11134567890abcdef00234567890abcddf2":"0":"11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #1919 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1001134567890abcdee00234567890abbdff2":"0":"1001134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #1920 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1001234567890abcdee002244668809badef0":"0":"1001234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #1921 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1134567890aaccee00234567880bbddff2":"1":"10000001134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #1922 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890aaccee00224466870abcdef0":"1":"10000001234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #1923 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"7f7f7f7f":"7f7f7f7f7f7f7f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #1924 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1233d5f8102b4d6e80234567890abcdef0":"80000000":"800000000000001233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1925 0x1234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"103355778faaccedff2547698b0cbee0f4":"100000000":"103355778faaccedff2547698b0cbee0f4":"1" - -mbedtls_mpi_core_mla #1926 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1927 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1534567890abcdef01234567890abcdef0":"0":"1534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1928 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"11034567890abcdef01234567890abcdef0":"0":"11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1929 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"11134567890abcdef01234567890abcdef0":"0":"11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1930 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1001134567890abcdef01234567890abcdef0":"0":"1001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1931 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1001234567890abcdef01234567890abcdef0":"0":"1001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1932 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1134567890abcdef01234567890abcdef0":"1":"10000001134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1933 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890abcdef0":"1":"10000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1934 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f9134567890abcdef01234567890abcdef0":"7f7f7f7f":"7f7f7f7f7f7f7f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1935 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef0":"80000000":"800000000000001234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1936 0x1234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1034567890abcdef01234567890abcdef0":"100000000":"1034567890abcdef01234567890abcdef0":"1" - -mbedtls_mpi_core_mla #1937 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1938 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1939 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1940 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1941 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1942 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1943 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"34567890abcdef01234567890abcdef000000000":"12":"1234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1944 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"345678a2e0246791cf13568a2e0246790abcdef0":"12":"12345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1945 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"82bde7822cd7822779b45e7819bc7034ba188800":"91107edbd":"1107edbd82bde7822cd7822779b45e7819bc7034ba188800":"9" - -mbedtls_mpi_core_mla #1946 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"55e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c48":"1a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"9" - -mbedtls_mpi_core_mla #1947 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890":"34567890abcdeeeeeeeeeef85eeeefeedcba9876f5432110":"12" - -mbedtls_mpi_core_mla #1948 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1949 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1234567890abcdef01234567890abcdeed":"3":"1234567890abcdef01234567890abcdeed":"3" - -mbedtls_mpi_core_mla #1950 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1234567890abcdef01234567890abcddf2":"fe":"1234567890abcdef01234567890abcddf2":"fe" - -mbedtls_mpi_core_mla #1951 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1234567890abcdef01234567890abcddf1":"ff":"1234567890abcdef01234567890abcddf1":"ff" - -mbedtls_mpi_core_mla #1952 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"1234567890abcdef01234567890abbdef1":"ffff":"1234567890abcdef01234567890abbdef1":"ffff" - -mbedtls_mpi_core_mla #1953 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"1234567890abcdef01234567890abbdef0":"10000":"1234567890abcdef01234567890abbdef0":"10000" - -mbedtls_mpi_core_mla #1954 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff":"1234567890abcdef01234567880abcdef1":"ffffffff" - -mbedtls_mpi_core_mla #1955 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567880abcdef0":"100000000":"1234567890abcdef01234567880abcdef0":"100000000" - -mbedtls_mpi_core_mla #1956 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f":"1234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #1957 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000":"1234567890abcdef00a34567890abcdef0":"8000000000000000" - -mbedtls_mpi_core_mla #1958 0x1234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe":"1234567890abcdef00234567890abcdef2":"fffffffffffffffe" - -mbedtls_mpi_core_mla #1959 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1960 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0":"369d0369b20369cd0369d0369b20369cd048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #1961 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0":"120fedcb9f8a76532320fedcb9f8a7653232222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #1962 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0":"12222222181b2221122222222181b222112234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #1963 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0":"123444443a333d433334444443a333d4333344567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #1964 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef0123468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #1965 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"1234":"123456787e7777767077777887e77777670777778890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #1966 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"1234":"1234567890abcdef01234567890abcdef012345678a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #1967 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde76ff8810996cde66f76ff8810996cde66f7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #1968 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #1969 0x1234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeedcba987667b32100edcba987667b32100eeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #1970 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #1971 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aac9d25099dc5ede26efcd1d1f39ccae53d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #1972 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c14e3fd8d8cb578e0a480f6fe7306fd0997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #1973 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #1974 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d797d941ab42b08cb9c6098f26d7b1eca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #1975 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #1976 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb0d984845bcf6a52c3553066d8c444174a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #1977 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328dde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #1978 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d8fd7a622db4e77394dbe5f29b402f4c0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #1979 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067d4cda2fdef772634b59946ee7572391dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #1980 0x1234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1eb8294e805a50aca17fc01e52d07d96792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #1981 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1982 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"3":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1983 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1984 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1985 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1986 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"10000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1987 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1988 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"100000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1989 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1990 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1991 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1992 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #1993 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"3":"2":"1":"2":"1" - -mbedtls_mpi_core_mla #1994 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fe":"fd":"1":"fd":"1" - -mbedtls_mpi_core_mla #1995 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ff":"fe":"1":"fe":"1" - -mbedtls_mpi_core_mla #1996 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffff":"fffe":"1":"fffe":"1" - -mbedtls_mpi_core_mla #1997 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"10000":"ffff":"1":"ffff":"1" - -mbedtls_mpi_core_mla #1998 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"ffffffff":"fffffffe":"1":"fffffffe":"1" - -mbedtls_mpi_core_mla #1999 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"100000000":"ffffffff":"1":"ffffffff":"1" - -mbedtls_mpi_core_mla #2000 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e":"1":"7f7f7f7f7f7f7f7e":"1" - -mbedtls_mpi_core_mla #2001 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"8000000000000000":"7fffffffffffffff":"1":"7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2002 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1":"fffffffffffffffe":"fffffffffffffffd":"1":"fffffffffffffffd":"1" - -mbedtls_mpi_core_mla #2003 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2004 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"3":"2fff9":"1":"2fff9":"1" - -mbedtls_mpi_core_mla #2005 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fe":"fdfe03":"1":"fdfe03":"1" - -mbedtls_mpi_core_mla #2006 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ff":"fefe01":"1":"fefe01":"1" - -mbedtls_mpi_core_mla #2007 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffff":"fffd0001":"1":"fffd0001":"1" - -mbedtls_mpi_core_mla #2008 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"10000":"fffdffff":"1":"fffdffff":"1" - -mbedtls_mpi_core_mla #2009 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"ffffffff":"fffdffff0001":"1":"fffdffff0001":"1" - -mbedtls_mpi_core_mla #2010 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"100000000":"fffdffffffff":"1":"fffdffffffff":"1" - -mbedtls_mpi_core_mla #2011 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"7f7f7f7f7f7f7f7f":"7f7e8080808080800101":"1":"7f7e8080808080800101":"1" - -mbedtls_mpi_core_mla #2012 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"8000000000000000":"7ffeffffffffffffffff":"1":"7ffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2013 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffe":"fffffffffffffffe":"fffdfffffffffffe0003":"1":"fffdfffffffffffe0003":"1" - -mbedtls_mpi_core_mla #2014 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2015 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"3":"2fffffffc":"1":"2fffffffc":"1" - -mbedtls_mpi_core_mla #2016 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fe":"fdffffff01":"1":"fdffffff01":"1" - -mbedtls_mpi_core_mla #2017 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ff":"feffffff00":"1":"feffffff00":"1" - -mbedtls_mpi_core_mla #2018 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffff":"fffeffff0000":"1":"fffeffff0000":"1" - -mbedtls_mpi_core_mla #2019 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"10000":"fffffffeffff":"1":"fffffffeffff":"1" - -mbedtls_mpi_core_mla #2020 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffff":"fffffffe00000000":"1":"fffffffe00000000":"1" - -mbedtls_mpi_core_mla #2021 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"100000000":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2022 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7effffffff80808080":"1":"7f7f7f7effffffff80808080":"1" - -mbedtls_mpi_core_mla #2023 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"8000000000000000":"7fffffff7fffffffffffffff":"1":"7fffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2024 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"fffffffffffffffe":"fffffffefffffffe00000001":"1":"fffffffefffffffe00000001":"1" - -mbedtls_mpi_core_mla #2025 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2026 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"3":"2ffffffff":"1":"2ffffffff":"1" - -mbedtls_mpi_core_mla #2027 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fe":"fdffffffff":"1":"fdffffffff":"1" - -mbedtls_mpi_core_mla #2028 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ff":"feffffffff":"1":"feffffffff":"1" - -mbedtls_mpi_core_mla #2029 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffff":"fffeffffffff":"1":"fffeffffffff":"1" - -mbedtls_mpi_core_mla #2030 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"10000":"ffffffffffff":"1":"ffffffffffff":"1" - -mbedtls_mpi_core_mla #2031 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"ffffffff":"fffffffeffffffff":"1":"fffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2032 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"100000000":"ffffffffffffffff":"1":"ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2033 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffff":"1":"7f7f7f7f7f7f7f7effffffff":"1" - -mbedtls_mpi_core_mla #2034 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"8000000000000000":"7fffffffffffffffffffffff":"1":"7fffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2035 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffe":"fffffffffffffffdffffffff":"1":"fffffffffffffffdffffffff":"1" - -mbedtls_mpi_core_mla #2036 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2037 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"3":"5fffffffffffff":"1":"5fffffffffffff":"1" - -mbedtls_mpi_core_mla #2038 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fe":"1fbfffffffffffff":"1":"1fbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2039 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ff":"1fdfffffffffffff":"1":"1fdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2040 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffff":"1fffdfffffffffffff":"1":"1fffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2041 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"10000":"1fffffffffffffffff":"1":"1fffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2042 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"ffffffff":"1fffffffdfffffffffffff":"1":"1fffffffdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2043 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"100000000":"1fffffffffffffffffffff":"1":"1fffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2044 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"7f7f7f7f7f7f7f7f":"fefefefefefefefdfffffffffffff":"1":"fefefefefefefefdfffffffffffff":"1" - -mbedtls_mpi_core_mla #2045 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"8000000000000000":"fffffffffffffffffffffffffffff":"1":"fffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2046 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"20000000000000":"fffffffffffffffe":"1fffffffffffffffbfffffffffffff":"1":"1fffffffffffffffbfffffffffffff":"1" - -mbedtls_mpi_core_mla #2047 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2048 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"3":"2fffffffffffffffc":"1":"2fffffffffffffffc":"1" - -mbedtls_mpi_core_mla #2049 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fe":"fdffffffffffffff01":"1":"fdffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2050 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ff":"feffffffffffffff00":"1":"feffffffffffffff00":"1" - -mbedtls_mpi_core_mla #2051 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffff":"fffeffffffffffff0000":"1":"fffeffffffffffff0000":"1" - -mbedtls_mpi_core_mla #2052 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"10000":"fffffffffffffffeffff":"1":"fffffffffffffffeffff":"1" - -mbedtls_mpi_core_mla #2053 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"ffffffff":"fffffffeffffffff00000000":"1":"fffffffeffffffff00000000":"1" - -mbedtls_mpi_core_mla #2054 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"100000000":"fffffffffffffffeffffffff":"1":"fffffffffffffffeffffffff":"1" - -mbedtls_mpi_core_mla #2055 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7e8080808080808080":"1":"7f7f7f7f7f7f7f7e8080808080808080":"1" - -mbedtls_mpi_core_mla #2056 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"8000000000000000":"7fffffffffffffff7fffffffffffffff":"1":"7fffffffffffffff7fffffffffffffff":"1" - -mbedtls_mpi_core_mla #2057 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffff":"fffffffffffffffe":"fffffffffffffffd0000000000000001":"1":"fffffffffffffffd0000000000000001":"1" - -mbedtls_mpi_core_mla #2058 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2059 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"3":"2ffffffffffffffff":"1":"2ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2060 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fe":"fdffffffffffffffff":"1":"fdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2061 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ff":"feffffffffffffffff":"1":"feffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2062 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffff":"fffeffffffffffffffff":"1":"fffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2063 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"10000":"ffffffffffffffffffff":"1":"ffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2064 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"ffffffff":"fffffffeffffffffffffffff":"1":"fffffffeffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2065 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"100000000":"ffffffffffffffffffffffff":"1":"ffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2066 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2067 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2068 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffff":"1":"fffffffffffffffdffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2069 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2070 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"3":"369d0369b20369ccf":"1":"369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2071 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fe":"120fedcb9f8a765321f":"1":"120fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2072 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ff":"12222222181b222110f":"1":"12222222181b222110f":"1" - -mbedtls_mpi_core_mla #2073 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffff":"123444443a333d433210f":"1":"123444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2074 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"10000":"1234567890abcdeefffff":"1":"1234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2075 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"ffffffff":"123456787e7777766f543210f":"1":"123456787e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2076 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"100000000":"1234567890abcdeefffffffff":"1":"1234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2077 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76f67708abaf5ba90f":"1":"91107edbd82bde76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2078 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"8000000000000000":"91a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2079 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedb97530edea86421f":"1":"1234567890abcdeedb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2080 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2081 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"3":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1":"2fffffffffffffffffcfcfcfcfcfcfcf9":"1" - -mbedtls_mpi_core_mla #2082 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fe":"fdffffffffffffffff0101010101010003":"1":"fdffffffffffffffff0101010101010003":"1" - -mbedtls_mpi_core_mla #2083 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ff":"fefffffffffffffffeffffffffffffff01":"1":"fefffffffffffffffeffffffffffffff01":"1" - -mbedtls_mpi_core_mla #2084 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffff":"fffefffffffffffffefeffffffffffff0101":"1":"fffefffffffffffffefeffffffffffff0101":"1" - -mbedtls_mpi_core_mla #2085 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"10000":"fffffffffffffffffefefefefefefefdffff":"1":"fffffffffffffffffefefefefefefefdffff":"1" - -mbedtls_mpi_core_mla #2086 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"ffffffff":"fffffffefffffffffefefefeffffffff01010101":"1":"fffffffefffffffffefefefeffffffff01010101":"1" - -mbedtls_mpi_core_mla #2087 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"100000000":"fffffffffffffffffefefefefefefefdffffffff":"1":"fffffffffffffffffefefefefefefefdffffffff":"1" - -mbedtls_mpi_core_mla #2088 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1":"7f7f7f7f7f7f7f7eff800081018202828504840383028201":"1" - -mbedtls_mpi_core_mla #2089 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"8000000000000000":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1":"7fffffffffffffffff7f7f7f7f7f7f7effffffffffffffff":"1" - -mbedtls_mpi_core_mla #2090 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"fffffffffffffffdfefefefefefefefe0202020202020203":"1":"fffffffffffffffdfefefefefefefefe0202020202020203":"1" - -mbedtls_mpi_core_mla #2091 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2092 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"3":"2ffffffffffffffffffffffffffffffff":"1":"2ffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2093 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fe":"fdffffffffffffffffffffffffffffffff":"1":"fdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2094 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ff":"feffffffffffffffffffffffffffffffff":"1":"feffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2095 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffff":"fffeffffffffffffffffffffffffffffffff":"1":"fffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2096 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"10000":"ffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2097 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"ffffffff":"fffffffeffffffffffffffffffffffffffffffff":"1":"fffffffeffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2098 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"100000000":"ffffffffffffffffffffffffffffffffffffffff":"1":"ffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2099 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1":"7f7f7f7f7f7f7f7effffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2100 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"8000000000000000":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1":"7fffffffffffffffffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2101 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000000000000000000000000000":"fffffffffffffffe":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1":"fffffffffffffffdffffffffffffffffffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2102 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2103 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"3":"369d0369b20369cd0369d0369b20369ccf":"1":"369d0369b20369cd0369d0369b20369ccf":"1" - -mbedtls_mpi_core_mla #2104 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fe":"120fedcb9f8a76532320fedcb9f8a765321f":"1":"120fedcb9f8a76532320fedcb9f8a765321f":"1" - -mbedtls_mpi_core_mla #2105 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ff":"12222222181b2221122222222181b222110f":"1":"12222222181b2221122222222181b222110f":"1" - -mbedtls_mpi_core_mla #2106 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffff":"123444443a333d433334444443a333d433210f":"1":"123444443a333d433334444443a333d433210f":"1" - -mbedtls_mpi_core_mla #2107 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcdeefffff":"1":"1234567890abcdef01234567890abcdeefffff":"1" - -mbedtls_mpi_core_mla #2108 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"ffffffff":"123456787e7777767077777887e7777766f543210f":"1":"123456787e7777767077777887e7777766f543210f":"1" - -mbedtls_mpi_core_mla #2109 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdeefffffffff":"1":"1234567890abcdef01234567890abcdeefffffffff":"1" - -mbedtls_mpi_core_mla #2110 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1":"91107edbd82bde76ff8810996cde66f76f67708abaf5ba90f":"1" - -mbedtls_mpi_core_mla #2111 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"8000000000000000":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1":"91a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"1" - -mbedtls_mpi_core_mla #2112 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1":"1234567890abcdeedcba987667b32100edb97530edea86421f":"1" - -mbedtls_mpi_core_mla #2113 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2114 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc":"3" - -mbedtls_mpi_core_mla #2115 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01":"fe" - -mbedtls_mpi_core_mla #2116 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00":"ff" - -mbedtls_mpi_core_mla #2117 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000":"ffff" - -mbedtls_mpi_core_mla #2118 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffff":"10000" - -mbedtls_mpi_core_mla #2119 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000":"ffffffff" - -mbedtls_mpi_core_mla #2120 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000":"fffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff":"100000000" - -mbedtls_mpi_core_mla #2121 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f":"ffffffffffffffffffffffffffffffffffffffffffffffff8080808080808080":"7f7f7f7f7f7f7f7f" - -mbedtls_mpi_core_mla #2122 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000":"ffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffff":"8000000000000000" - -mbedtls_mpi_core_mla #2123 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe":"ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000001":"fffffffffffffffe" - -mbedtls_mpi_core_mla #2124 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2125 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0":"369e0369b20369cd0369d0369b20369cd0369d0369b20369cd0369d0369b20369ccf":"0" - -mbedtls_mpi_core_mla #2126 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0":"120feecb9f8a76532320fedcb9f8a76532320fedcb9f8a76532320fedcb9f8a765321f":"0" - -mbedtls_mpi_core_mla #2127 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0":"12222322181b2221122222222181b2221122222222181b2221122222222181b222110f":"0" - -mbedtls_mpi_core_mla #2128 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0":"123444453a333d433334444443a333d433334444443a333d433334444443a333d433210f":"0" - -mbedtls_mpi_core_mla #2129 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0":"1234567990abcdef01234567890abcdef01234567890abcdef01234567890abcdeefffff":"0" - -mbedtls_mpi_core_mla #2130 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"56787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"1234":"123456787e7877767077777887e7777767077777887e7777767077777887e7777766f543210f":"0" - -mbedtls_mpi_core_mla #2131 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"1234":"1234567890accdef01234567890abcdef01234567890abcdef01234567890abcdeefffffffff":"0" - -mbedtls_mpi_core_mla #2132 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"91107edbd82":"7edbd82bde76ff9810996cde66f76ff8810996cde66f76ff8810996cde66f76f67708abaf5ba90f":"911" - -mbedtls_mpi_core_mla #2133 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a2b3c4855":"2b3c4855e6f78092a2b3c4855e6f78091a2b3c4855e6f78091a2b3c4855e6f77ffffffffffffffff":"91a" - -mbedtls_mpi_core_mla #2134 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234567890ab":"567890abcdeedcbb987667b32100edcba987667b32100edcba987667b32100edb97530edea86421f":"1234" - -mbedtls_mpi_core_mla #2135 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0" - -mbedtls_mpi_core_mla #2136 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1aacad25099dc5ede26efcd1d1f39ccae53c4197a996c0ad56abd0b05c406f1641380":"0" - -mbedtls_mpi_core_mla #2137 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f427c15e3fd8d8cb578e0a480f6fe7306fd0985c28c1310ea954d304fe82a4bd5c3c8a9":"0" - -mbedtls_mpi_core_mla #2138 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db503d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d4":"0" - -mbedtls_mpi_core_mla #2139 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2b7d897d941ab42b08cb9c6098f26d7b1ec922aa5d078754d356d9300647460b44ed4":"0" - -mbedtls_mpi_core_mla #2140 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c6889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affff":"0" - -mbedtls_mpi_core_mla #2141 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca4fb1d984845bcf6a52c3553066d8c4441737fb1e45c5aabac86df774c528af894ed4":"4" - -mbedtls_mpi_core_mla #2142 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889fca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12affffffff":"4" - -mbedtls_mpi_core_mla #2143 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f425d90d7a622db4e77394dbe5f29b402f4c0e2b7feacb855cb62a05d35412c061b3954":"26d473ca9" - -mbedtls_mpi_core_mla #2144 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f6525067e4cda2fdef772634b59946ee7572391ca2c80f601283b58957fffffffffffffff":"26fb9683d" - -mbedtls_mpi_core_mla #2145 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e539b1fb8294e805a50aca17fc01e52d07d9666f2b03064f3e86a024dfc27fb5f129da9":"4df72d07b" - -mbedtls_mpi_core_mla #2146 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2147 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2148 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2149 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2150 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2151 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2152 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2153 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2154 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2155 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2156 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2157 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2158 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef3":"0" - -mbedtls_mpi_core_mla #2159 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfee":"0" - -mbedtls_mpi_core_mla #2160 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdfef":"0" - -mbedtls_mpi_core_mla #2161 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddeef":"0" - -mbedtls_mpi_core_mla #2162 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abddef0":"0" - -mbedtls_mpi_core_mla #2163 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdeef":"0" - -mbedtls_mpi_core_mla #2164 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abcdef0":"0" - -mbedtls_mpi_core_mla #2165 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a2c4e7088a3c5e6f":"0" - -mbedtls_mpi_core_mla #2166 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2167 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdeee":"0" - -mbedtls_mpi_core_mla #2168 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2169 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"3":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abfdeea":"0" - -mbedtls_mpi_core_mla #2170 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbadcf4":"0" - -mbedtls_mpi_core_mla #2171 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890bbbdcf2":"0" - -mbedtls_mpi_core_mla #2172 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0ab9def2":"0" - -mbedtls_mpi_core_mla #2173 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678a0abadef0":"0" - -mbedtls_mpi_core_mla #2174 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abbdef2":"0" - -mbedtls_mpi_core_mla #2175 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667870abcdef0":"0" - -mbedtls_mpi_core_mla #2176 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0":"1234567890abcdef01234567890abcdef01234567890abce6e7fa3c5e8098b3cdff2":"0" - -mbedtls_mpi_core_mla #2177 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abce6f00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2178 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffe":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0":"1234567890abcdef01234567890abcdef01234567890abceeeff234567890abadef4":"0" - -mbedtls_mpi_core_mla #2179 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2180 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdeed":"0" - -mbedtls_mpi_core_mla #2181 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcddf2":"0" - -mbedtls_mpi_core_mla #2182 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcddf1":"0" - -mbedtls_mpi_core_mla #2183 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abbdef1":"0" - -mbedtls_mpi_core_mla #2184 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abbdef0":"0" - -mbedtls_mpi_core_mla #2185 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567870abcdef1":"0" - -mbedtls_mpi_core_mla #2186 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2187 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80234567888b3d5f71":"0" - -mbedtls_mpi_core_mla #2188 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2189 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567870abcdef2":"0" - -mbedtls_mpi_core_mla #2190 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2191 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef012345678c0abcdef0":"0" - -mbedtls_mpi_core_mla #2192 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568870abcdef0":"0" - -mbedtls_mpi_core_mla #2193 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234568880abcdef0":"0" - -mbedtls_mpi_core_mla #2194 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667880abcdef0":"0" - -mbedtls_mpi_core_mla #2195 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234667890abcdef0":"0" - -mbedtls_mpi_core_mla #2196 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2197 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef02234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2198 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912b4d6e80a2c4e7080abcdef0":"0" - -mbedtls_mpi_core_mla #2199 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"8000000000000000":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012345678912bcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2200 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567870abcdef0":"0" - -mbedtls_mpi_core_mla #2201 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2202 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef0123a567890abcdef0":"0" - -mbedtls_mpi_core_mla #2203 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01430567890abcdef0":"0" - -mbedtls_mpi_core_mla #2204 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01432567890abcdef0":"0" - -mbedtls_mpi_core_mla #2205 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2206 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef21234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2207 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01232567890abcdef0":"0" - -mbedtls_mpi_core_mla #2208 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abedef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2209 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0":"1234567890abcdef01234567890abcdef012346668809bbddef1132567890abcdef0":"0" - -mbedtls_mpi_core_mla #2210 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234667890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2211 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"20000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234767890abcdef01230567890abcdef0":"0" - -mbedtls_mpi_core_mla #2212 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2213 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2214 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2215 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2216 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2217 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2218 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2219 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2220 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e7fa3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2221 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2222 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffff":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0":"1234567890abcdef01234567890abcdef01334567890abcdeefe234567890abcdef2":"0" - -mbedtls_mpi_core_mla #2223 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2224 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"3":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef04234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2225 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fe":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdefff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2226 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdf000234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2227 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffff":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2228 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"10000":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abceef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2229 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"ffffffff":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef00234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2230 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"100000000":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2231 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b3d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2232 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"8000000000000000":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012b4567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2233 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000000000000000":"fffffffffffffffe":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01334567890abcdeeff234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2234 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2235 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"3":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2236 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fe":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0":"1234567890abcdef01234567890abcdef01234567890abcdf02222222181b2221110":"0" - -mbedtls_mpi_core_mla #2237 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdf0234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2238 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcf124567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2239 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"10000":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2240 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"ffffffff":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0":"1234567890abcdef01234567890abcdef01234567891cf1356890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2241 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"100000000":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567890abcdef01234567891cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2242 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0":"1234567890abcdef01234567890abcdef012c566f76c83f9cd7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2243 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"8000000000000000":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef01234567890abcdef012c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2244 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef0":"fffffffffffffffe":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0":"1234567890abcdef01234567890abcdef013579be019b68acdeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2245 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2246 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"3":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0":"1234567890abcdef01234567890abcdef01534567890abcdef012042648607b9dbea":"0" - -mbedtls_mpi_core_mla #2247 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0":"1234567890abcdef01234567890abcdef11034567890abcdef002446688a0bbddef4":"0" - -mbedtls_mpi_core_mla #2248 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0":"1234567890abcdef01234567890abcdef11134567890abcdef00234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2249 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0":"1234567890abcdef01234567890abcdff01134567890abcdee00234567890abbdff2":"0" - -mbedtls_mpi_core_mla #2250 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"10000":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdee002244668809badef0":"0" - -mbedtls_mpi_core_mla #2251 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0":"1234567890abcdef01234567890bbcdef01134567890aaccee00234567880bbddff2":"0" - -mbedtls_mpi_core_mla #2252 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"100000000":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890aaccee00224466870abcdef0":"0" - -mbedtls_mpi_core_mla #2253 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0":"1234567890abcdef0123c4e7088a3c5e6f9133d67911ad4ff183a849eb8c8dbf60f2":"0" - -mbedtls_mpi_core_mla #2254 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"8000000000000000":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01233d5f8102b4d6e80234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2255 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0":"1234567890abcdef01244567890abcdef0103355778faaccedff2547698b0cbee0f4":"0" - -mbedtls_mpi_core_mla #2256 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2257 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"3":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01534567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2258 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fe":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2259 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ff":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef11134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2260 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffff":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2261 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"10000":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdff01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2262 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"ffffffff":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2263 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"100000000":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890bbcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2264 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c4e7088a3c5e6f9134567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2265 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"8000000000000000":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef0123c567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2266 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000000000000000000000000000":"fffffffffffffffe":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0":"1234567890abcdef01244567890abcdef01034567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2267 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2268 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"3":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0":"1234567890abcdef01234567890abcdef048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2269 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fe":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0":"1234567890abcdef01234567890abcdf02222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2270 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdf0234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2271 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcf124567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2272 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"10000":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0":"1234567890abcdef01234567890abcf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2273 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"ffffffff":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0":"1234567890abcdef01234567891cf1356890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2274 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"100000000":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0":"1234567890abcdef01234567891cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2275 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0":"1234567890abcdef012c566f76c83f9cd7822cd7822779b45e7819bc7034ba188800":"0" - -mbedtls_mpi_core_mla #2276 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"8000000000000000":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0":"1234567890abcdef012c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2277 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0":"1234567890abcdef013579be019b68acdeeeeeeeeef85eeeefeedcba9876f5432110":"0" - -mbedtls_mpi_core_mla #2278 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2279 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0":"1237567890abcdef01234567890abcdef01234567890abcdef01234567890abcdeed":"0" - -mbedtls_mpi_core_mla #2280 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0":"1332567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf2":"0" - -mbedtls_mpi_core_mla #2281 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0":"1333567890abcdef01234567890abcdef01234567890abcdef01234567890abcddf1":"0" - -mbedtls_mpi_core_mla #2282 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0":"11233567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef1":"0" - -mbedtls_mpi_core_mla #2283 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0":"11234567890abcdef01234567890abcdef01234567890abcdef01234567890abbdef0":"0" - -mbedtls_mpi_core_mla #2284 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"1233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"1":"100001233567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef1":"0" - -mbedtls_mpi_core_mla #2285 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"1234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"1":"100001234567890abcdef01234567890abcdef01234567890abcdef01234567880abcdef0":"0" - -mbedtls_mpi_core_mla #2286 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"7f7f7f7f":"7f7f7f7f7f7f91b3567890abcdef01234567890abcdef01234567890abcdef00a3c5e8098b3d5f71":"0" - -mbedtls_mpi_core_mla #2287 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"1234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"80000000":"8000000000001234567890abcdef01234567890abcdef01234567890abcdef00a34567890abcdef0":"0" - -mbedtls_mpi_core_mla #2288 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"100000000":"1232567890abcdef01234567890abcdef01234567890abcdef00234567890abcdef2":"1" - -mbedtls_mpi_core_mla #2289 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2290 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0":"48d159e242af37bc048d159e242af37bc048d159e242af37bc048d159e242af37bc0":"0" - -mbedtls_mpi_core_mla #2291 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0":"12222222181b2221122222222181b2221122222222181b2221122222222181b2221110":"0" - -mbedtls_mpi_core_mla #2292 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000":"0" - -mbedtls_mpi_core_mla #2293 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef00000":"0" - -mbedtls_mpi_core_mla #2294 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0":"123468ace7245e9acf12468ace7245e9acf12468ace7245e9acf12468ace7245e9acdef0":"0" - -mbedtls_mpi_core_mla #2295 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"1234":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef000000000":"0" - -mbedtls_mpi_core_mla #2296 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"5678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"1234":"12345678a2e0246791cf13568a2e0246791cf13568a2e0246791cf13568a2e0246790abcdef0":"0" - -mbedtls_mpi_core_mla #2297 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"91107edbd82":"7edbd82bde7822cd7822779b45e7822cd7822779b45e7822cd7822779b45e7819bc7034ba188800":"911" - -mbedtls_mpi_core_mla #2298 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a2b3c4855":"2b3c4855e6f792c5f92c55312c5e792c5f92c55312c5e792c5f92c55312c5e79234567890abcdef0":"91a" - -mbedtls_mpi_core_mla #2299 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"cdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234567890ab":"567890abcdeeeeeeeeeef85eeeefeeeeeeeeef85eeeefeeeeeeeeef85eeeefeedcba9876f5432110":"1234" - -mbedtls_mpi_core_mla #2300 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0" - -mbedtls_mpi_core_mla #2301 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0":"e9e587171e2555a906246fefbfeea8986fe227651cb91a30d00bf0259677d9c07c2cb20e72be34a27b4bee7c7ce54601cf7fb2af24628385433e736d46b7ca38cbd74e5a13c96c3c1e842e1f086c09f3b0f1fc96f21c4bdd101f1bcfe28c92a882ccd28131284a844898d43d64dd111fcb6a359be2e4b2b8ffc20f271":"0" - -mbedtls_mpi_core_mla #2302 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0":"4d5b3eada54dae54915d625aa024ee6d1500cbb21b7fe2a97a23f2c1c3c3a359a91172e371f2e813121c72352bf9292743f59118975dea2a12e7fcd77963738c1e15353f1fe09dcbe217b740ee1e65f54330083496bd5bc1c754f428e493a761e388367e1c7c65e877dc3dbf997f6e28ba196633c31732d91d4e080a79a":"0" - -mbedtls_mpi_core_mla #2303 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53dc7372b3ba6d74db1eec26012e73bb2c0c02eaa0b697044aa5fc5cc2f7dd730f758c5":"0" - -mbedtls_mpi_core_mla #2304 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0":"4df6df1087af67d690292343c554f83897c33d2ba71bff27e7490ab33770c118362411f5eae540a16ce3266584cd985ed87f4bba7b3bca60ea93100f9bc3812b008a2b80ec7a72d0e61805339e19ab2d37aa1936fc81c89596c0ae2f2ca0bee51d257109f8ddd0b7118319490dca45efc4909211b246eb645cbfd6b712dc5":"0" - -mbedtls_mpi_core_mla #2305 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38ee02f9df175af5dae99ad7a52577ef8375a33b122526d7cf6248030f47b7ffbbe7def0":"0" - -mbedtls_mpi_core_mla #2306 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4":"df72d0766bfef85f7ffb36ce898bd8d8ffbd4eee447a643e670f1fc4223f888f73c4819fcdb2b86ad849348ab331d2c70de2439c6f6459cb4f3faa2abd31cee81b52c0b17fb5f4b58e8eb4ba34d4946e2d750e115b8c5175f5644efd9aca61e52ffd15079d5953e69a97efe38123074a2f74be565688b76f1aba2cb1ba462dc5":"4" - -mbedtls_mpi_core_mla #2307 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c59ad320c29da667a360e1344c4fa17007cde0e29d9c2504cfdb0373bc18b40abcdef0":"4" - -mbedtls_mpi_core_mla #2308 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9":"d441b4567687a50ce39d9e627f9ae5a17c53f5d9021b53d1133136b82f9b9caa1b95bb86cf2721af7fb1ba5beab3aac621474f65dd70cec5d6024d5db720e421553e908eaec2d2e1534182cdd69920be02faa90d2e55b54ea32a4b038f426fc42e1eb3871c663a7103c6b2bebfd3b0f4ec552549019951a1807aa8b510d81845":"26d473ca9" - -mbedtls_mpi_core_mla #2309 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d":"a5b8e46d65b67fd4aa7c6c412a5b13b84c9845d7801fd5b9913f9a014b21dad131fb37069e1fd14bf7b8baaf7ea9dc7db65c09635dfbde78bc94c5ecca3e26458a1920a051607afd6bcac53482854c3d304b74f82afd9c76f862c44f652518b1a352c08ac561646e9efbf7f2140281dc60d76e91d4094796a34567890abcdef0":"26fb9683d" - -mbedtls_mpi_core_mla #2310 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b":"4b71c8d10c875eb2be1546ccbddc281def3edaaa56d35c91f01e1ca495c45ebc1ef806080fb837532784994484d473cb8dd52808c1504afa9fb9664c1c8cd2a821df298d79c85ce4af3107e7bf88ac84b16bd51e4be607f92f97b4be1e53ad530ea1df2c283fadc4c527a75d8d5c86792706a8f59fb6590371418f8469cf7c9a":"4df72d07b" - -mbedtls_mpi_core_mla #2311 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2312 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2313 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2314 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2315 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2316 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2317 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2318 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2319 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2320 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2321 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2322 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2323 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12e":"0" - -mbedtls_mpi_core_mla #2324 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b229":"0" - -mbedtls_mpi_core_mla #2325 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b22a":"0" - -mbedtls_mpi_core_mla #2326 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12a":"0" - -mbedtls_mpi_core_mla #2327 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025077b12b":"0" - -mbedtls_mpi_core_mla #2328 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12a":"0" - -mbedtls_mpi_core_mla #2329 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035076b12b":"0" - -mbedtls_mpi_core_mla #2330 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d8816b81cff630aa":"0" - -mbedtls_mpi_core_mla #2331 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472394d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2332 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b129":"0" - -mbedtls_mpi_core_mla #2333 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2334 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025079b125":"0" - -mbedtls_mpi_core_mla #2335 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025174af2f":"0" - -mbedtls_mpi_core_mla #2336 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025175af2d":"0" - -mbedtls_mpi_core_mla #2337 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035073b12d":"0" - -mbedtls_mpi_core_mla #2338 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec035074b12b":"0" - -mbedtls_mpi_core_mla #2339 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005075b12d":"0" - -mbedtls_mpi_core_mla #2340 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec005076b12b":"0" - -mbedtls_mpi_core_mla #2341 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a312d9826c82d0f6b22d":"0" - -mbedtls_mpi_core_mla #2342 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47a3935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2343 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823925901ec025074b12f":"0" - -mbedtls_mpi_core_mla #2344 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2345 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b128":"0" - -mbedtls_mpi_core_mla #2346 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b02d":"0" - -mbedtls_mpi_core_mla #2347 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b02c":"0" - -mbedtls_mpi_core_mla #2348 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015075b12c":"0" - -mbedtls_mpi_core_mla #2349 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025075b12b":"0" - -mbedtls_mpi_core_mla #2350 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec005076b12c":"0" - -mbedtls_mpi_core_mla #2351 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2352 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a3135901ec01d0f731ac":"0" - -mbedtls_mpi_core_mla #2353 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2354 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec005076b12d":"0" - -mbedtls_mpi_core_mla #2355 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2356 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec055076b12b":"0" - -mbedtls_mpi_core_mla #2357 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed005076b12b":"0" - -mbedtls_mpi_core_mla #2358 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ed015076b12b":"0" - -mbedtls_mpi_core_mla #2359 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec015076b12b":"0" - -mbedtls_mpi_core_mla #2360 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945902ec025076b12b":"0" - -mbedtls_mpi_core_mla #2361 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2362 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723955901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2363 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2dc6a313d8816b815076b12b":"0" - -mbedtls_mpi_core_mla #2364 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcf2e4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2365 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec005076b12b":"0" - -mbedtls_mpi_core_mla #2366 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2367 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945961ec025076b12b":"0" - -mbedtls_mpi_core_mla #2368 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2369 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae47239478e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2370 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2371 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723b45901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2372 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae67239458e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2373 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae6723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2374 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338cdbe9e37138448e1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2375 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b338ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2376 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x20000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"20000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b348ddceae47239458c1ec025076b12b":"0" - -mbedtls_mpi_core_mla #2377 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2378 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b128":"0" - -mbedtls_mpi_core_mla #2379 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2380 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2381 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2382 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2383 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2384 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2385 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a312d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2386 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2387 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723915901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2388 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2389 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723975901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2390 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2391 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2392 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2393 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4823945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2394 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723935901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2395 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2396 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69732a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2397 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6973328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2398 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x10000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697b328ddceae4723925901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2399 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2400 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472397c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2401 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2402 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4724b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2403 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2404 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2405 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2406 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddcfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2407 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744395caa8673020b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2408 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c69744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2409 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c697d66e4557b904028212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2410 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2411 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae47239455fee8ff4d73ae25":"0" - -mbedtls_mpi_core_mla #2412 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723935a02ed035177b12f":"0" - -mbedtls_mpi_core_mla #2413 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723935901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2414 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4722935901ec025075b22d":"0" - -mbedtls_mpi_core_mla #2415 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4722935800eb014f74b12b":"0" - -mbedtls_mpi_core_mla #2416 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddcead4622935901ec015177b22d":"0" - -mbedtls_mpi_core_mla #2417 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddcead4622935800eb005076b12b":"0" - -mbedtls_mpi_core_mla #2418 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b2a8de4fafc92616de067005d379332d":"0" - -mbedtls_mpi_core_mla #2419 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b2a85d4e2dc6a3135901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2420 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xfffffffffffffffffefefefefefefefe * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffffefefefefefefefe":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b227dccdad4622925b03ee045278b32f":"0" - -mbedtls_mpi_core_mla #2421 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2422 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c699b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2423 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c794b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2424 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c795b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2425 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2426 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee5c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2427 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c695b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2428 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbeeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2429 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb1933df3d6e644615b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2430 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb19b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2431 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x100000000000000000000000000000000 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000000000000000000000000000":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfb99b45fbdeee4c694b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2432 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2433 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c6cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2434 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2435 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4d8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2436 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6fadaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2437 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2438 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2439 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2440 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03aabc4d7b71a2ae06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2441 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d03b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2442 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0d0cce0ad84e9ab2b5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2443 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2444 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38f0f0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b128":"0" - -mbedtls_mpi_core_mla #2445 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02d":"0" - -mbedtls_mpi_core_mla #2446 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb39ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b02c":"0" - -mbedtls_mpi_core_mla #2447 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12c":"0" - -mbedtls_mpi_core_mla #2448 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fc38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025075b12b":"0" - -mbedtls_mpi_core_mla #2449 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38ecf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12c":"0" - -mbedtls_mpi_core_mla #2450 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f155fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec015076b12b":"0" - -mbedtls_mpi_core_mla #2451 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae016696fd57ab86cf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d9826c82d0f731ac":"0" - -mbedtls_mpi_core_mla #2452 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987ae096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae472393d901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2453 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987b6096e9f055fb38ebf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723935901ec025076b12d":"0" - -mbedtls_mpi_core_mla #2454 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2455 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"3":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb6f8af42f3aa23417106469eafade258196cd502c4780b1b0f097c2d2229d70ad4dfb":"0" - -mbedtls_mpi_core_mla #2456 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d48dbbc6513151d6d2df9766e58655416f8a6a0f47d59249a46b557dea5faf7dbe34b":"0" - -mbedtls_mpi_core_mla #2457 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0560d5b1012dda3c0eb5c2f1cbbd5e17010f5e8b8d54af5e9d06835b67b240d840298c23b":"0" - -mbedtls_mpi_core_mla #2458 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f7d322af8c5e1fd7e513edd57939222180adaf763110bf17a57d89d458f3624a9d23b":"0" - -mbedtls_mpi_core_mla #2459 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"10000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f0682f8f668171568dcb6d526222bf1c9cdef6faed2bb9899c9d4846d9c08af6bf2f66b12b":"0" - -mbedtls_mpi_core_mla #2460 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"ffffffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73b765683bf91641c294e2112bc6c5665c4f152aa0543f25be9c1c4079636945b9d23b":"0" - -mbedtls_mpi_core_mla #2461 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"100000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096fc24ac73c999beb489c20fb1960556934fd0233b3f275ef6cccfd18c8b1d63becaf25076b12b":"0" - -mbedtls_mpi_core_mla #2462 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"7f7f7f7f7f7f7f7f":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa18b6884a77313e2a8e671cf1f6cb0b983fa21c4f92acd4bbe06aba9e7657c2d930b4f78f4adffd25a3b":"0" - -mbedtls_mpi_core_mla #2463 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"8000000000000000":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aa1948bd332463cf2b97f93794d2428b98503b3df9c0644cbbe1744cb919333a5930c5901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2464 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0 * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"1234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef0":"fffffffffffffffe":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050aaaaeb70f7a9c23ea15a8893bf051eb4afac6433bc63920f4d5736dc154366168248212771cf03afcf34b":"0" - -mbedtls_mpi_core_mla #2465 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x0 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"0" - -mbedtls_mpi_core_mla #2466 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x3 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"3":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0":"137dcb41ed2dc7236b2db3fea553e3620952d89dc264c22ebc00feadcc89fcd00a590ed6898fd9b834f0fe8a5fbdc5d57bf54ee3edb2e04b1aefdef3c5e4a62f6651f1322c50c905028b03d7eb5e5629a4142a61e9825ba7c157ece3b7c316227b292833ea66d17ef7bb931a5acca3773ab91c8e516407b00941dac4ac":"0" - -mbedtls_mpi_core_mla #2467 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfe -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fe":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0":"4da935daad0265711f0a192a9aba3dfa9d261714928975b23513f6bc7af5cb4ce93ad71ecc192779f2f0362f5578203e99e566542714b5ab3f53bc53487b0624dbae7d03e891e0eff621e3504dcbdf4de9c058de1e636530665a53db502d4c3162b7fc2ed9f1aab5e30f5e1d01c75b4f0df98dc70c4a8ea164e263a79d5":"0" - -mbedtls_mpi_core_mla #2468 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00":"0" - -mbedtls_mpi_core_mla #2469 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffff":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b0000":"0" - -mbedtls_mpi_core_mla #2470 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x10000 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"10000":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0":"4df77afee1bed144c9447cb1654a22d7b2d387c26c0a124df8beeabb2cdf25681ca464be61998d203aa4cded7920964d072b2b64f25b37f7ecebe78e9361b05032055e10760bd5572e40198bbcd9061fe8f739d84f9114a873feb8ee929b3796452e8d744a6aef9724ea2b57b79bf90f78c15d1db7c9645043c7901a1b12b":"0" - -mbedtls_mpi_core_mla #2471 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xffffffff -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"ffffffff":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4":"df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b00000000":"4" - -mbedtls_mpi_core_mla #2472 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x100000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"100000000":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4":"df72d0802ae4995616dec8842065d82ba9aefff2ede6b31f9970372222bedf75b8c2e9a4fa3a23afa03610a52bb117f6ecc52e5a6a0bcbc228afcfb8352148cb0da5d864a8ae8dcbb6f3373b7a568063dca022e365a1826ab69222de46c0c18cbb0f959963fe6cb888992654a20da4656170016307490f96a9789d2d5076b12b":"4" - -mbedtls_mpi_core_mla #2473 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x7f7f7f7f7f7f7f7f -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"7f7f7f7f7f7f7f7f":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9":"d441b45b55fa75882f0f673d4b07e54ad14cce5b56d17b41ac61c2672fdb481d3e14ef89656ad751e3a8286926f34d5e10b8c4c4dac487c142ba60247318a112ce681c68433f1f6c6773c40e795a16b8da90337633604dc903c134f3e53d967dc86bab7a18c1464858138971f1d987796b278a8704128634b6372d2e5691ea80":"26d473ca9" - -mbedtls_mpi_core_mla #2474 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0x8000000000000000 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"8000000000000000":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d":"a5b8e4724529504ff5ee351bf5c81361a1911e59d4d5fd2a2a7025b04b618644547a6b09346386ee5baf28bcbae97f15a5cd7ec25b4f9774294cd8b38635e3370342ac79e5dcc7887ffd06752546423807e0ff61300834f158f9ae3fbb203f6b3d9fb87dc1bc7045f348cea546085860dfa9d3cfd6827c29d901ec025076b12b":"26fb9683d" - -mbedtls_mpi_core_mla #2475 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b + 0x4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b * 0xfffffffffffffffe -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_mla:"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"4df72d07b4b71c8dacb6cffa954f8d88254b6277099308baf003fab73227f34029643b5a263f66e0d3c3fa297ef71755efd53b8fb6cb812c6bbf7bcf179298bd9947c4c8b14324140a2c0f5fad7958a69050a987a6096e9f055fb38edf0c5889eca4a0cfa99b45fbdeee4c696b328ddceae4723945901ec025076b12b":"fffffffffffffffe":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b":"4b71c8d5ebfa2f2e09870fa7894927c74437b32cab898402894ea85396040a2f41773a0aa5fbecf58b7b0751c11416637d469d67bea403f60c717912d8848f999b08b5670e44a96fc36349286249a27f89015f8750f0a073902e9eae744ed40ca8eed71f249ab99c19747e10bf625cfda5d90e33a22f8d96a6fe13fdaf894ed5":"4df72d07b" - -mbedtls_mpi_core_montmul #1 replay -mpi_core_montmul:2:1:1:1:"19":"1":"1D":"18":"18" - -mbedtls_mpi_core_montmul #2 replay -mpi_core_montmul:2:1:1:1:"7":"1":"9":"1":"1" - -mbedtls_mpi_core_montmul #3 replay -mpi_core_montmul:2:1:1:1:"4":"1":"9":"7":"7" - -mbedtls_mpi_core_montmul #4 replay -mpi_core_montmul:12:1:6:1:"3C246D0E059A93A266288A7718419EC741661B474C58C032C5EDAF92709402B07CC8C7CE0B781C641A1EA8DB2F4343":"1":"66A198186C18C10B2F5ED9B522752A9830B69916E535C8F047518A889A43A594B6BED27A168D31D4A52F88925AA8F5":"36e139aea55215609d2816998ed020bbbd96c37890f65171d948e9bc7cbaa4d9325d24d6a3c12710f10a09fa08ab87":"36e139aea55215609d2816998ed020bbbd96c37890f65171d948e9bc7cbaa4d9325d24d6a3c12710f10a09fa08ab87" - -mbedtls_mpi_core_montmul #5 replay -mpi_core_montmul:8:1:4:1:"1E442976B0E63D64FCCE74B999E470CA9888165CB75BFA1F340E918CE03C6211":"1":"B3A119602EE213CDE28581ECD892E0F592A338655DCE4CA88054B3D124D0E561":"38eb7749f4a5da80f23bc08fd0801c55b103b17a2eef84e60e65383b59f8ca5b":"38eb7749f4a5da80f23bc08fd0801c55b103b17a2eef84e60e65383b59f8ca5b" - -mbedtls_mpi_core_montmul #6 replay -mpi_core_montmul:22:1:11:1:"7CF5AC97304E0B63C65413F57249F59994B0FED1D2A8D3D83ED5FA38560FFB82392870D6D08F87D711917FD7537E13B7E125BE407E74157776839B0AC9DB23CBDFC696104353E4D2780B2B4968F8D8542306BCA7A2366E":"1":"284139EA19C139EBE09A8111926AAA39A2C2BE12ED487A809D3CB5BC55854725B4CDCB5734C58F90B2F60D99CC1950CDBC8D651793E93C9C6F0EAD752500A32C56C62082912B66132B2A6AA42ADA923E1AD22CEB7BA0123":"1e4426a3d6c425f0630b14113bead742c92b02886267ab41f70c4cb2426aee1faacec6982e0e5be964eca2527a031ed49c371db2a4fb16482f3590c866bf9f81c3d52c7cb9e0ba6ff843ed3b17c44d7f6b14471839d8d31":"1e4426a3d6c425f0630b14113bead742c92b02886267ab41f70c4cb2426aee1faacec6982e0e5be964eca2527a031ed49c371db2a4fb16482f3590c866bf9f81c3d52c7cb9e0ba6ff843ed3b17c44d7f6b14471839d8d31" - -mbedtls_mpi_core_montmul #7 (gen) -mpi_core_montmul:1:1:1:1:"2":"2":"3":"1":"1" - -mbedtls_mpi_core_montmul #8 (gen) -mpi_core_montmul:1:1:1:1:"1":"2":"3":"2":"2" - -mbedtls_mpi_core_montmul #9 (gen) -mpi_core_montmul:1:1:1:1:"2":"1":"3":"2":"2" - -mbedtls_mpi_core_montmul #10 (gen) -mpi_core_montmul:1:1:1:1:"6":"5":"7":"4":"1" - -mbedtls_mpi_core_montmul #11 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"7":"3":"6" - -mbedtls_mpi_core_montmul #12 (gen) -mpi_core_montmul:1:1:1:1:"1":"6":"7":"5":"3" - -mbedtls_mpi_core_montmul #13 (gen) -mpi_core_montmul:1:1:1:1:"5":"6":"7":"4":"1" - -mbedtls_mpi_core_montmul #14 (gen) -mpi_core_montmul:1:1:1:1:"3":"4":"B":"3":"9" - -mbedtls_mpi_core_montmul #15 (gen) -mpi_core_montmul:1:1:1:1:"7":"4":"B":"7":"a" - -mbedtls_mpi_core_montmul #16 (gen) -mpi_core_montmul:1:1:1:1:"9":"7":"B":"2":"6" - -mbedtls_mpi_core_montmul #17 (gen) -mpi_core_montmul:1:1:1:1:"2":"a":"B":"5":"4" - -mbedtls_mpi_core_montmul #18 (gen) (0x29 is prime) -mpi_core_montmul:1:1:1:1:"25":"16":"29":"16":"f" - -mbedtls_mpi_core_montmul #19 (gen) -mpi_core_montmul:1:1:1:1:"8":"28":"29":"2":"14" - -mbedtls_mpi_core_montmul #20 (gen) -mpi_core_montmul:1:1:1:1:"18":"21":"29":"7":"1d" - -mbedtls_mpi_core_montmul #21 (gen) -mpi_core_montmul:1:1:1:1:"15":"f":"29":"22":"c" - -mbedtls_mpi_core_montmul #22 (gen) -mpi_core_montmul:1:1:1:1:"e2":"ea":"FF":"63":"63" - -mbedtls_mpi_core_montmul #23 (gen) -mpi_core_montmul:1:1:1:1:"43":"72":"FF":"f3":"f3" - -mbedtls_mpi_core_montmul #24 (gen) -mpi_core_montmul:1:1:1:1:"d8":"70":"FF":"de":"de" - -mbedtls_mpi_core_montmul #25 (gen) -mpi_core_montmul:1:1:1:1:"3c":"7c":"FF":"2d":"2d" - -mbedtls_mpi_core_montmul #26 (gen) (0x101 is prime) -mpi_core_montmul:1:1:1:1:"99":"b9":"101":"23":"23" - -mbedtls_mpi_core_montmul #27 (gen) -mpi_core_montmul:1:1:1:1:"65":"b2":"101":"f5":"f5" - -mbedtls_mpi_core_montmul #28 (gen) -mpi_core_montmul:1:1:1:1:"81":"32":"101":"19":"19" - -mbedtls_mpi_core_montmul #29 (gen) -mpi_core_montmul:1:1:1:1:"51":"dd":"101":"a8":"a8" - -mbedtls_mpi_core_montmul #30 (gen) (0x38B is prime) -mpi_core_montmul:1:1:1:1:"d5":"143":"38B":"313":"14f" - -mbedtls_mpi_core_montmul #31 (gen) -mpi_core_montmul:1:1:1:1:"3d":"387":"38B":"212":"19a" - -mbedtls_mpi_core_montmul #32 (gen) -mpi_core_montmul:1:1:1:1:"160":"2e5":"38B":"a5":"14d" - -mbedtls_mpi_core_montmul #33 (gen) -mpi_core_montmul:1:1:1:1:"10f":"137":"38B":"10f":"19f" - -mbedtls_mpi_core_montmul #34 (gen) (0x8003 is prime) -mpi_core_montmul:1:1:1:1:"7dac":"25a":"8003":"5fff":"29c8" - -mbedtls_mpi_core_montmul #35 (gen) -mpi_core_montmul:1:1:1:1:"6f1c":"3286":"8003":"245e":"79e9" - -mbedtls_mpi_core_montmul #36 (gen) -mpi_core_montmul:1:1:1:1:"59ed":"2f3f":"8003":"7008":"5874" - -mbedtls_mpi_core_montmul #37 (gen) -mpi_core_montmul:1:1:1:1:"6893":"736d":"8003":"3178":"f99" - -mbedtls_mpi_core_montmul #38 (gen) (0x10001 is prime) -mpi_core_montmul:1:1:1:1:"d199":"2832":"10001":"b6fa":"b6fa" - -mbedtls_mpi_core_montmul #39 (gen) -mpi_core_montmul:1:1:1:1:"c3b2":"3e5b":"10001":"7c9c":"7c9c" - -mbedtls_mpi_core_montmul #40 (gen) -mpi_core_montmul:1:1:1:1:"abe4":"214e":"10001":"ad1c":"ad1c" - -mbedtls_mpi_core_montmul #41 (gen) -mpi_core_montmul:1:1:1:1:"4360":"a05d":"10001":"4fac":"4fac" - -mbedtls_mpi_core_montmul #42 (gen) -mpi_core_montmul:1:1:1:1:"3f5a1":"165b2":"7F7F7":"63052":"71254" - -mbedtls_mpi_core_montmul #43 (gen) -mpi_core_montmul:1:1:1:1:"3bd29":"37863":"7F7F7":"34ff8":"40755" - -mbedtls_mpi_core_montmul #44 (gen) -mpi_core_montmul:1:1:1:1:"60c47":"64819":"7F7F7":"34967":"3a83e" - -mbedtls_mpi_core_montmul #45 (gen) -mpi_core_montmul:1:1:1:1:"16584":"12c49":"7F7F7":"283b9":"14991" - -mbedtls_mpi_core_montmul #46 (gen) (0x800009 is prime) -mpi_core_montmul:1:1:1:1:"1ff03f":"610347":"800009":"1cef09":"4e3e6a" - -mbedtls_mpi_core_montmul #47 (gen) -mpi_core_montmul:1:1:1:1:"340fd5":"19812e":"800009":"5c1fc2":"64ecb0" - -mbedtls_mpi_core_montmul #48 (gen) -mpi_core_montmul:1:1:1:1:"3fe2e8":"4d0dc7":"800009":"2c4c9f":"5112e5" - -mbedtls_mpi_core_montmul #49 (gen) -mpi_core_montmul:1:1:1:1:"40356":"e6392":"800009":"1dc356":"5661ed" - -mbedtls_mpi_core_montmul #50 (gen) (0x100002B is prime) -mpi_core_montmul:1:1:1:1:"dd8a1d":"266c0e":"100002B":"e6cfeb":"66b342" - -mbedtls_mpi_core_montmul #51 (gen) -mpi_core_montmul:1:1:1:1:"3fa1cb":"847fd6":"100002B":"5679d":"ea359c" - -mbedtls_mpi_core_montmul #52 (gen) -mpi_core_montmul:1:1:1:1:"5f439d":"5c3196":"100002B":"72985e":"89865b" - -mbedtls_mpi_core_montmul #53 (gen) -mpi_core_montmul:1:1:1:1:"18d645":"f72dc6":"100002B":"11807c":"442f44" - -mbedtls_mpi_core_montmul #54 (gen) (0x37EEE9D is prime) -mpi_core_montmul:1:1:1:1:"20051ad":"37def6e":"37EEE9D":"126b1f8":"639bef" - -mbedtls_mpi_core_montmul #55 (gen) -mpi_core_montmul:1:1:1:1:"2ec140b":"3580dbf":"37EEE9D":"182364a":"265b419" - -mbedtls_mpi_core_montmul #56 (gen) -mpi_core_montmul:1:1:1:1:"1d91b46":"190d4fc":"37EEE9D":"f501a4":"2c06311" - -mbedtls_mpi_core_montmul #57 (gen) -mpi_core_montmul:1:1:1:1:"34e488d":"1224d24":"37EEE9D":"3097def":"1c134c4" - -mbedtls_mpi_core_montmul #58 (gen) (0x8000000B is prime) -mpi_core_montmul:1:1:1:1:"2a4fe2cb":"263466a9":"8000000B":"2f7b2c6b":"551d4f77" - -mbedtls_mpi_core_montmul #59 (gen) -mpi_core_montmul:1:1:1:1:"5643fe94":"29a1aefa":"8000000B":"7f473a3d":"86615" - -mbedtls_mpi_core_montmul #60 (gen) -mpi_core_montmul:1:1:1:1:"29633513":"7b007ac4":"8000000B":"589a07cd":"d6d5cbe" - -mbedtls_mpi_core_montmul #61 (gen) -mpi_core_montmul:1:1:1:1:"2439cef5":"5c9d5a47":"8000000B":"77b1ca47":"691ad3ef" - -mbedtls_mpi_core_montmul #62 (gen) (0x8CD626B9 is prime) -mpi_core_montmul:1:1:1:1:"4de3cfaa":"50dea178":"8CD626B9":"5d6c70fe":"1017c1af" - -mbedtls_mpi_core_montmul #63 (gen) -mpi_core_montmul:1:1:1:1:"b8b8563":"10dbbbac":"8CD626B9":"1ebb1ae4":"3abf8696" - -mbedtls_mpi_core_montmul #64 (gen) -mpi_core_montmul:1:1:1:1:"4e8a6151":"5574ec19":"8CD626B9":"88c056da":"5ff76076" - -mbedtls_mpi_core_montmul #65 (gen) -mpi_core_montmul:1:1:1:1:"69224878":"309cfc23":"8CD626B9":"14f5037d":"2ab92db7" - -mbedtls_mpi_core_montmul #66 (start of 2-MPI 4-byte bignums) (0x10000000F is prime) -mpi_core_montmul:2:1:1:1:"fb6f7fb6":"afb05423":"10000000F":"1b61c4f8":"1b61c4f8" - -mbedtls_mpi_core_montmul #67 (gen) -mpi_core_montmul:2:1:1:1:"8391a243":"26034dcd":"10000000F":"c5d18a1f":"c5d18a1f" - -mbedtls_mpi_core_montmul #68 (gen) -mpi_core_montmul:2:1:1:1:"d26b98c":"14b2d6aa":"10000000F":"4e7fad06":"4e7fad06" - -mbedtls_mpi_core_montmul #69 (gen) -mpi_core_montmul:2:1:1:1:"6b9f1371":"a21daf1d":"10000000F":"c6b6f98b":"c6b6f98b" - -mbedtls_mpi_core_montmul #70 (gen) 0x174876E7E9 is prime (dec) 99999999977 -mpi_core_montmul:2:2:1:1:"9f49435ad":"c8264ade8":"174876E7E9":"6f386b4ce":"6f386b4ce" - -mbedtls_mpi_core_montmul #71 (gen) -mpi_core_montmul:2:2:1:1:"c402da434":"1fb427acf":"174876E7E9":"271c9b457":"271c9b457" - -mbedtls_mpi_core_montmul #72 (gen) -mpi_core_montmul:2:2:1:1:"f6ebc2bb1":"1096d39f2a":"174876E7E9":"78a3ebdad":"78a3ebdad" - -mbedtls_mpi_core_montmul #73 (gen) -mpi_core_montmul:2:2:1:1:"153b7f7b6b":"878fda8ff":"174876E7E9":"81843925c":"81843925c" - -mbedtls_mpi_core_montmul #74 (gen) (0x8000000017 is prime) -mpi_core_montmul:2:2:1:1:"2c1adbb8d6":"4384d2d3c6":"8000000017":"7ee47165db":"7ee47165db" - -mbedtls_mpi_core_montmul #75 (gen) -mpi_core_montmul:2:2:1:1:"2e4f9cf5fb":"794f3443d9":"8000000017":"79446995ec":"79446995ec" - -mbedtls_mpi_core_montmul #76 (gen) -mpi_core_montmul:2:2:1:1:"149e495582":"3802b8f7b7":"8000000017":"1e4ef00e22":"1e4ef00e22" - -mbedtls_mpi_core_montmul #77 (gen) -mpi_core_montmul:2:2:1:1:"7b9d49df82":"69c68a442a":"8000000017":"74dee0f58a":"74dee0f58a" - -mbedtls_mpi_core_montmul #78 (gen) (0x864CB9076D is prime) -mpi_core_montmul:2:2:1:1:"683a134600":"6dd80ea9f6":"864CB9076D":"5c3f421e55":"5c3f421e55" - -mbedtls_mpi_core_montmul #79 (gen) -mpi_core_montmul:2:2:1:1:"13a870ff0d":"59b099694a":"864CB9076D":"615b45edcf":"615b45edcf" - -mbedtls_mpi_core_montmul #80 (gen) -mpi_core_montmul:2:2:1:1:"37d06b0e63":"4d2147e46f":"864CB9076D":"6e47e78c45":"6e47e78c45" - -mbedtls_mpi_core_montmul #81 (gen) -mpi_core_montmul:2:2:1:1:"661714f8f4":"22e55df507":"864CB9076D":"63f7b7766d":"63f7b7766d" - -mbedtls_mpi_core_montmul #82 (gen) -mpi_core_montmul:2:2:1:1:"2f0a96363":"52693307b4":"F7F7F7F7F7":"99e7b7a2f6":"99e7b7a2f6" - -mbedtls_mpi_core_montmul #83 (gen) -mpi_core_montmul:2:2:1:1:"3c85078e64":"f2275ecb6d":"F7F7F7F7F7":"5b30b7ecd8":"5b30b7ecd8" - -mbedtls_mpi_core_montmul #84 (gen) -mpi_core_montmul:2:2:1:1:"352dae68d1":"707775b4c6":"F7F7F7F7F7":"922215581":"922215581" - -mbedtls_mpi_core_montmul #85 (gen) -mpi_core_montmul:2:2:1:1:"37ae0f3e0b":"912113040f":"F7F7F7F7F7":"9724ae9827":"9724ae9827" - -mbedtls_mpi_core_montmul #86 (gen) (0x1000000000F is prime) -mpi_core_montmul:2:2:1:1:"6dada15e31":"f58ed9eff7":"1000000000F":"a11a0b6bd4":"a11a0b6bd4" - -mbedtls_mpi_core_montmul #87 (gen) -mpi_core_montmul:2:2:1:1:"69627a7c89":"cfb5ebd13d":"1000000000F":"bdd403e1e8":"bdd403e1e8" - -mbedtls_mpi_core_montmul #88 (gen) -mpi_core_montmul:2:2:1:1:"a5e1ad239b":"afc030c731":"1000000000F":"d9159b287c":"d9159b287c" - -mbedtls_mpi_core_montmul #89 (gen) -mpi_core_montmul:2:2:1:1:"f1cc45f4c5":"c64ad607c8":"1000000000F":"fdaa868e":"fdaa868e" - -mbedtls_mpi_core_montmul #90 (gen) (0x800000000005 is prime) -mpi_core_montmul:2:2:1:1:"2ebad87d2e31":"4c72d90bca78":"800000000005":"102277c75b46":"102277c75b46" - -mbedtls_mpi_core_montmul #91 (gen) -mpi_core_montmul:2:2:1:1:"a30b3cc50d":"29ac4fe59490":"800000000005":"7a0bb5e477ca":"7a0bb5e477ca" - -mbedtls_mpi_core_montmul #92 (gen) -mpi_core_montmul:2:2:1:1:"33674e9647b4":"5ec7ee7e72d3":"800000000005":"431f6a298b9f":"431f6a298b9f" - -mbedtls_mpi_core_montmul #93 (gen) -mpi_core_montmul:2:2:1:1:"3d956f474f61":"74070040257d":"800000000005":"1bf1cc423f85":"1bf1cc423f85" - -mbedtls_mpi_core_montmul #94 (gen) (0x800795D9BA47 is prime) -mpi_core_montmul:2:2:1:1:"48348e3717d6":"43fcb4399571":"800795D9BA47":"be7aa205fdd":"be7aa205fdd" - -mbedtls_mpi_core_montmul #95 (gen) -mpi_core_montmul:2:2:1:1:"5234c03cc99b":"2f3cccb87803":"800795D9BA47":"38c915c43e15":"38c915c43e15" - -mbedtls_mpi_core_montmul #96 (gen) -mpi_core_montmul:2:2:1:1:"3ed13db194ab":"44b8f4ba7030":"800795D9BA47":"37052e8c2720":"37052e8c2720" - -mbedtls_mpi_core_montmul #97 (gen) -mpi_core_montmul:2:2:1:1:"1c11e843bfdb":"95bd1b47b08":"800795D9BA47":"57783cead5bc":"57783cead5bc" - -mbedtls_mpi_core_montmul #98 (gen) (0x1000000000015 is prime) -mpi_core_montmul:2:2:1:1:"a81d11cb81fd":"1e5753a3f33d":"1000000000015":"1524843bbe60":"1524843bbe60" - -mbedtls_mpi_core_montmul #99 (gen) -mpi_core_montmul:2:2:1:1:"688c4db99232":"36fc0cf7ed":"1000000000015":"d987f015f9c8":"d987f015f9c8" - -mbedtls_mpi_core_montmul #100 (gen) -mpi_core_montmul:2:2:1:1:"f0720cc07e07":"fc76140ed903":"1000000000015":"c0a15846d9ab":"c0a15846d9ab" - -mbedtls_mpi_core_montmul #101 (gen) -mpi_core_montmul:2:2:1:1:"2ec61f8d17d1":"d270c85e36d2":"1000000000015":"b25b655a6234":"b25b655a6234" - -mbedtls_mpi_core_montmul #102 (gen) (0x100000000000051 is prime) -mpi_core_montmul:2:2:1:1:"6a24cd3ab63820":"ed4aad55e5e348":"100000000000051":"f4fb80f56821d9":"f4fb80f56821d9" - -mbedtls_mpi_core_montmul #103 (gen) -mpi_core_montmul:2:2:1:1:"e680c160d3b248":"31e0d8840ed510":"100000000000051":"aa5e1c3bb30ab8":"aa5e1c3bb30ab8" - -mbedtls_mpi_core_montmul #104 (gen) -mpi_core_montmul:2:2:1:1:"a80637e9aebc38":"bb81decc4e1738":"100000000000051":"14a17c662fb3fd":"14a17c662fb3fd" - -mbedtls_mpi_core_montmul #105 (gen) -mpi_core_montmul:2:2:1:1:"9afa5a59e9d630":"be9e65a6d42938":"100000000000051":"1fa880b76c7bbf":"1fa880b76c7bbf" - -mbedtls_mpi_core_montmul #106 (gen) -mpi_core_montmul:2:2:1:1:"ab5e104eeb71c000":"2cffbd639e9fea00":"ABCDEF0123456789":"a7bd05d2ad72bbac":"a7bd05d2ad72bbac" - -mbedtls_mpi_core_montmul #107 (gen) -mpi_core_montmul:2:2:1:1:"197b867547f68a00":"44b796cf94654800":"ABCDEF0123456789":"94683e1ac1068cfc":"94683e1ac1068cfc" - -mbedtls_mpi_core_montmul #108 (gen) -mpi_core_montmul:2:2:1:1:"329f9483a04f2c00":"9892f76961d0f000":"ABCDEF0123456789":"12ca7ba6189f5080":"12ca7ba6189f5080" - -mbedtls_mpi_core_montmul #109 (gen) -mpi_core_montmul:2:2:1:1:"4a2e12dfb4545000":"1aa3e89a69794500":"ABCDEF0123456789":"591fced0c97f7916":"591fced0c97f7916" - -mbedtls_mpi_core_montmul #110 (start of 2-MPI 8-byte bignums) 0x25A55A46E5DA99C71C7 is the 3rd repunit prime(dec) 11111111111111111111111 -mpi_core_montmul:3:3:2:2:"8b9acdf013d140f000":"12e4ceaefabdf2b2f00":"25A55A46E5DA99C71C7":"145e13d825f558e1528":"5965c1bea1c065c1f9" - -mbedtls_mpi_core_montmul #111 (gen) -mpi_core_montmul:3:3:2:2:"1b8d960ea277e3f5500":"14418aa980e37dd000":"25A55A46E5DA99C71C7":"3296eca7d29742119d":"e62a0288b09791369c" - -mbedtls_mpi_core_montmul #112 (gen) -mpi_core_montmul:3:3:2:2:"7314524977e8075980":"8172fa45618ccd0d80":"25A55A46E5DA99C71C7":"16ce65e208c75d6959b":"20f256de8b8761f07a1" - -mbedtls_mpi_core_montmul #113 (gen) -mpi_core_montmul:3:3:2:2:"ca14f031769be63580":"147a2f3cf2964ca9400":"25A55A46E5DA99C71C7":"1b33a89ac4a750a245d":"209a484f1216347030" - -mbedtls_mpi_core_montmul #114 (gen) 0x314DC643FB763F2B8C0E2DE00879 is (dec)99999999977^3 -mpi_core_montmul:4:4:2:2:"18532ba119d5cd0cf39735c0000":"25f9838e31634844924733000000":"314DC643FB763F2B8C0E2DE00879":"e7b248b17e952a3b5bf96467c9e":"e7b248b17e952a3b5bf96467c9e" - -mbedtls_mpi_core_montmul #115 (gen) -mpi_core_montmul:4:4:2:2:"a56e2d2517519e3970e70c40000":"ec27428d4bb380458588fa80000":"314DC643FB763F2B8C0E2DE00879":"26c158897a56747970ce53723ab0":"26c158897a56747970ce53723ab0" - -mbedtls_mpi_core_montmul #116 (gen) -mpi_core_montmul:4:4:2:2:"1cb5e8257710e8653fff33a00000":"15fdd42fe440fd3a1d121380000":"314DC643FB763F2B8C0E2DE00879":"2bbf68c08200acd799df33fb6cf3":"2bbf68c08200acd799df33fb6cf3" - -mbedtls_mpi_core_montmul #117 (gen) -mpi_core_montmul:4:4:2:2:"e50d07a65fc6f93e538ce040000":"1f4b059ca609f3ce597f61240000":"314DC643FB763F2B8C0E2DE00879":"27ce5f2c1819fe02f4335558de21":"27ce5f2c1819fe02f4335558de21" - -mbedtls_mpi_core_montmul #118 (gen) 0x47BF19662275FA2F6845C74942ED1D852E521 is (dec) 99999999977^4 -mpi_core_montmul:5:5:3:3:"1ea3ade786a095d978d387f30df9f20000000":"127c448575f04af5a367a7be06c7da0000000":"47BF19662275FA2F6845C74942ED1D852E521":"42c40f627a678ddf5ba6f27baedae85022b83":"24ee52f9383c9213f6641ca1a1293f6c90c28" - -mbedtls_mpi_core_montmul #119 (gen) -mpi_core_montmul:5:5:3:3:"16e15b0ca82764e72e38357b1f10a20000000":"43e2355d8514bbe22b0838fdc3983a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"2cfd2125bb4d48f9d38a1d1dc9e546463eb62":"c96be8fa4c2a1981847403e0c45da464ea83" - -mbedtls_mpi_core_montmul #120 (gen) -mpi_core_montmul:5:5:3:3:"be39332529d93f25c3d116c004c620000000":"5cccec42370a0a2c89c6772da801a0000000":"47BF19662275FA2F6845C74942ED1D852E521":"29081a3513837bdb55dfdab9de4d31dfe4bc4":"1b543f0226cdc674fc60c0822d275954530cf" - -mbedtls_mpi_core_montmul #121 (gen) -mpi_core_montmul:5:5:3:3:"ecaa468d90de0eeda474d39b3e1fc0000000":"1e714554018de6dc0fe576bfd3b5660000000":"47BF19662275FA2F6845C74942ED1D852E521":"18eb78f9fe89aaf4f32968af4d64627be81fe":"439b0325171f87ba20ddf220d61bc0f1e5865" - -mbedtls_mpi_core_montmul #122 (gen) 0x97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931 is (dec) 99999999977^6 -mpi_core_montmul:7:7:4:4:"32298816711c5dce46f9ba06e775c4bedfc770e6700000000000000":"8ee751fd5fb24f0b4a653cb3a0c8b7d9e724574d168000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"d20edd4f6c266489796ac74b96dde9bdffcb5131de686f9cac736c":"496a11382c5396c40b8e146b31fd98b8bc53648f93d04ff21b31725" - -mbedtls_mpi_core_montmul #123 (gen) -mpi_core_montmul:7:7:4:4:"29213b9df3cfd15f4b428645b67b677c29d1378d810000000000000":"6cbb732c65e10a28872394dfdd1936d5171c3c3aac0000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"29b3e797ff5104e01323f855aaccdbe9740facd77c04abda1c52bd5":"602b40d7c1feff4cfa2d4061046e4178c38e51172a5ca4326ebbb80" - -mbedtls_mpi_core_montmul #124 (gen) -mpi_core_montmul:7:7:4:4:"6f18db06ad4abc52c0c50643dd13098abccd4a232f0000000000000":"7e6bf41f2a86098ad51f98dfc10490ba3e8081bc830000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"74c0a781f976ae0781fa4c408f3aca6290ed7c926ea4972d8cbd00e":"1134ccaea14ab4de865b0abce56638d4ca1e948d963389003cdcf5a" - -mbedtls_mpi_core_montmul #125 (gen) -mpi_core_montmul:7:7:4:4:"62d3286cd706ad9d73caff63f1722775d7e8c731208000000000000":"530f7ba02ae2b04c2fe3e3d27ec095925631a6c2528000000000000":"97EDD86E4B5C4592C6D32064AC55C888A7245F07CA3CC455E07C931":"40e7f208928702cdfd45a1e085668af52f634d7ca0db34dfb161fc5":"8510d78927c62b26f1965ce5f2d6b5978566b608bfdd02dfb450d43" - -mbedtls_mpi_core_montmul #126 (gen) 0xDD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499 is (dec) 99999999977^7 -mpi_core_montmul:8:8:4:4:"a6c6503e3c031fdbf6009a89ed60582b7233c5a85de28b16000000000000000":"75c8ed18270b583f16d442a467d32bf95c5e491e9b8523798000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115":"73cdf58f541b4a4b200d163b82d60488207147401ce5e9e87e4c8743734fc115" - -mbedtls_mpi_core_montmul #127 (gen) -mpi_core_montmul:8:8:4:4:"bf84d1f85cf6b51e04d2c8f4ffd03532d852053cf99b387d4000000000000000":"397ba5a743c349f4f28bc583ecd5f06e0a25f9c6d98f09134000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16":"7aee85838cad05594c16c0f8dc37dcedbfc5cabd535243d1f6e9a72597421b16" - -mbedtls_mpi_core_montmul #128 (gen) -mpi_core_montmul:8:8:4:4:"6db11c3a4152ed1a2aa6fa34b0903ec82ea1b88908dcb482000000000000000":"ac8ac576a74ad6ca48f201bf89f77350ce86e821358d85920000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562":"543bb63086c17abcfb027fac0e173b0661225ce534fc035f4c571168704f3562" - -mbedtls_mpi_core_montmul #129 (gen) -mpi_core_montmul:8:8:4:4:"3001d96d7fe8b733f33687646fc3017e3ac417eb32e0ec708000000000000000":"925ddbdac4174e8321a48a32f79640e8cf7ec6f46ea235a80000000000000000":"DD15FE80B731872AC104DB37832F7E75A244AA2631BC87885B861E8F20375499":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e":"9af46358ac6898dd3a4668f58748be748a93c45dae8309756a85c25f3370ea1e" - -mbedtls_mpi_core_montmul #130 (gen) 0x141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41 is 99999999977^8 -mpi_core_montmul:10:10:5:5:"1029048755f2e60dd98c8de6d9989226b6bb4f0db8e46bd1939de560000000000000000000":"51bb7270b2e25cec0301a03e8275213bb6c2f6e6ec93d4d46d36ca0000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678":"bc135600e66e2f35482f257a39153e5a2313bb34fdf678a7768ef68baf4eb4af7950db678" - -mbedtls_mpi_core_montmul #131 (gen) -mpi_core_montmul:10:10:5:5:"1c5337ff982b3ad6611257dbff5bbd7a9920ba2d4f5838a0cc681ce000000000000000000":"520c5d049ca4702031ba728591b665c4d4ccd3b2b86864d4c160fd2000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf":"a4041530bd752163a32ad6e21605d43621783491c739cc5b8426ed5c013c8f1874f4c33cf" - -mbedtls_mpi_core_montmul #132 (gen) -mpi_core_montmul:10:9:5:5:"57074dfa00e42f6555bae624b7f0209f218adf57f73ed34ab0ff90c000000000000000000":"41eb14b6c07bfd3d1fe4f4a610c17cc44fcfcda695db040e011065000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986":"50035f4ad135181424da54e119e7b6c2d8563e4237d5c636457489fdcad2c98974f4d6986" - -mbedtls_mpi_core_montmul #133 (gen) -mpi_core_montmul:10:10:5:5:"d8ed7feed2fe855e6997ad6397f776158573d425031bf085a615784000000000000000000":"6f121dcd18c578ab5e229881006007bb6d319b179f11015fe958b9c000000000000000000":"141B8EBD9009F84C241879A1F680FACCED355DA36C498F73E96E880CF78EA5F96146380E41":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810":"ec6c4ef84cdba8b8fb0e23834f954b74f695da3a7036afd2b8bda4cf1969a22a2703f4810" - -mbedtls_mpi_core_montmul #134 (gen) 0x2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451 is (dec) 99999999977^10 -mpi_core_montmul:12:12:6:6:"2a462b156180ea5fe550d3758c764e06fae54e626b5f503265a09df76edbdfbfa1e6000000000000000000000000":"1136f41d1879fd4fb9e49e0943a46b6704d77c068ee237c3121f9071cfd3e6a00315800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e":"204e2ee5416bf5cdc9d983d92ec60d5df79e331272efa041f3cdb2a172361806ba048bd578108d717dd29c38dc1e" - -mbedtls_mpi_core_montmul #135 (gen) -mpi_core_montmul:12:12:6:6:"c1ac3800dfb3c6954dea391d206200cf3c47f795bf4a5603b4cb88ae7e574de4740800000000000000000000000":"c0d16eda0549ede42fa0deb4635f7b7ce061fadea02ee4d85cba4c4f7096034193c800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3":"e61059c9d6aff1b0c8d1fae7c880b9491a7e8e7715283f9d27b17423c282ada6016362d610f7a2509c859b4e2c3" - -mbedtls_mpi_core_montmul #136 (gen) -mpi_core_montmul:12:12:6:6:"19e45bb7633094d272588ad2e43bcb3ee341991c6731b6fa9d47c4018d7ce7bba5ee800000000000000000000000":"1e4f83166ae59f6b9cc8fd3e7677ed8bfc01bb99c98bd3eb084246b64c1e18c3365b800000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8":"14dfcf79e82a33b504f887088c66d85abb43e4eb93ae643e6413a655c48fa6643fc9032c5e7dbfbb6291d707abc8" - -mbedtls_mpi_core_montmul #137 (gen) -mpi_core_montmul:12:12:6:6:"1aa93395fad5f9b7f20b8f9028a054c0bb7c11bb8520e6a95e5a34f06cb70bcdd01a800000000000000000000000":"54b45afa5d4310192f8d224634242dd7dcfb342318df3d9bd37b4c614788ba13b8b000000000000000000000000":"2A94608DE88B6D5E9F8920F5ABB06B24CC35AE1FBACC87D075C621C3E2833EC902713E40F51E3B3C214EDFABC451":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6":"1c56a73d8698564b51a42613a20c07f7fda723cbada776bebdb075b349a19b588345e9930dcf12178400d7fb32e6" - -mbedtls_mpi_core_montmul #138 (gen) 0x8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051 is prime, (dec) 10^143 + 3^4 -mpi_core_montmul:15:15:8:8:"544f2628a28cfb5ce0a1b7180ee66b49716f1d9476c466c57f0c4b2308991784306d48f78686115ee19e25400000000000000000000000000000000":"677eb31ef8d66c120fa872a60cd47f6e10cbfdf94f90501bd7883cba03d185be0a0148d1625745e9c4c827300000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"1c17879ba8ffaf6e01f145b954e6f2d1da9b5e91b0cd41324228e0da4e2d8c8b7de9be8533452f0420d1c21e2b91ce6a47be8a154b70ab8e3afa0e2":"45d5439e49004056f25a7af76fa1fa0b2f41c6ac4da7d960f3c8619eabafe0f9637e4d0551442a732d4bc3832e01c21e2b91ce6a47be8a154b70ae4" - -mbedtls_mpi_core_montmul #139 (gen) -mpi_core_montmul:15:15:8:8:"76bb3470985174915e9993522aec989666908f9e8cf5cb9f037bf4aee33d8865cb6464174795d07e30015b80000000000000000000000000000000":"6aaaf60d5784dcef612d133613b179a317532ecca0eed40b8ad0c01e6d4a6d8c79a52af190abd51739009a900000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"10676de6ef5976bb3d0e91e01ad3de619c1c4d60644c38d061da315f0d11f81a961a8fe63625bb4ccd9f963765a89f46e88c73fc02d8f16af74bef5":"2f7c4c22707c864397f9905b3f7f6a558cd793e56bda9a594600a895b62581d391c9f98b91e9ef02b94c9befa097963765a89f46e88c73fc02d8f34" - -mbedtls_mpi_core_montmul #140 (gen) -mpi_core_montmul:15:15:8:8:"6cfdd6e60912e441d2d1fc88f421b533f0103a5322ccd3f4db84861643ad63fd63d1d8cfbc1d498162786ba00000000000000000000000000000000":"1177246ec5e93814816465e7f8f248b350d954439d35b2b5d75d917218e7fd5fb4c2f6d0667f9467fdcf33400000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"485cca6586b0540eceb3ef8644bd400f3c32a9e38dfe4f4513945895808d648cfa45a3a2e9691b6111ddef29103fa8981dd8a3bbc52c9b768034ac5":"43603ad0efccbc0db5981c2cc75573d32dc0c0d94a8a2f6a67bb003e769f421626e68bdf1ff7d809a8b9ebddc055ef29103fa8981dd8a3bbc52c9e1" - -mbedtls_mpi_core_montmul #141 (gen) -mpi_core_montmul:15:15:8:8:"7a09a0b0f8bbf8057116fb0277a9bdf3a91b5eaa8830d448081510d8973888be5a9f0ad04facb69aa3715f00000000000000000000000000000000":"764dec6c05a1c0d87b649efa5fd94c91ea28bffb4725d4ab4b33f1a3e8e3b314d799020e244a835a145ec9800000000000000000000000000000000":"8335616AED761F1F7F44E6BD49E807B82E3BF2BF11BFA6AF813C808DBF33DBFA11DABD6E6144BEF37C6800000000000000000000000000000000051":"36a534b574adac80dfea3dabdf0a8c95f47511ff202eab325e5a6edfb7e3ab28ddc15b2f6023240939ba5b7339f7ada7225376a817263464cfba89d":"7a9f42a7ed20ab041b748b5594d63e5aa5c890cd88826a4120bec4c43a90bfb8c7f78ad9cd91756a5f0f5a9154725b7339f7ada7225376a81726392" - -Core shift 0 >> 0 -mpi_core_shift_r:"00":0:"00" - -Core shift 0 >> 1 -mpi_core_shift_r:"00":1:"00" - -Core shift 0 >> 8 -mpi_core_shift_r:"00":8:"00" - -Core shift 1 >> 0 -mpi_core_shift_r:"01":0:"01" - -Core shift 1 >> 1 -mpi_core_shift_r:"01":1:"00" - -Core shift 1 >> 2 -mpi_core_shift_r:"01":2:"00" - -Core shift 1 >> 8 -mpi_core_shift_r:"01":8:"00" - -Core shift 1 >> 64 -mpi_core_shift_r:"01":64:"00" - -Core shift 64-bit >> 0 -mpi_core_shift_r:"dee5ca1a7ef10a75":0:"dee5ca1a7ef10a75" - -Core shift 64-bit >> 1 -mpi_core_shift_r:"dee5ca1a7ef10a75":1:"6f72e50d3f78853a" - -Core shift 64-bit >> 2 -mpi_core_shift_r:"dee5ca1a7ef10a75":2:"37b972869fbc429d" - -Core shift 64-bit >> 3 -mpi_core_shift_r:"dee5ca1a7ef10a75":3:"1bdcb9434fde214e" - -Core shift 64-bit >> 4 -mpi_core_shift_r:"dee5ca1a7ef10a75":4:"0dee5ca1a7ef10a7" - -Core shift 64-bit >> 5 -mpi_core_shift_r:"dee5ca1a7ef10a75":5:"06f72e50d3f78853" - -Core shift 64-bit >> 6 -mpi_core_shift_r:"dee5ca1a7ef10a75":6:"037b972869fbc429" - -Core shift 64-bit >> 7 -mpi_core_shift_r:"dee5ca1a7ef10a75":7:"01bdcb9434fde214" - -Core shift 64-bit >> 8 -mpi_core_shift_r:"dee5ca1a7ef10a75":8:"00dee5ca1a7ef10a" - -Core shift 64-bit >> 9 -mpi_core_shift_r:"dee5ca1a7ef10a75":9:"006f72e50d3f7885" - -Core shift 64-bit >> 10 -mpi_core_shift_r:"dee5ca1a7ef10a75":10:"0037b972869fbc42" - -Core shift 64-bit >> 31 -mpi_core_shift_r:"dee5ca1a7ef10a75":31:"00000001bdcb9434" - -Core shift 64-bit >> 32 -mpi_core_shift_r:"dee5ca1a7ef10a75":32:"00000000dee5ca1a" - -Core shift 64-bit >> 33 -mpi_core_shift_r:"dee5ca1a7ef10a75":33:"000000006f72e50d" - -Core shift 64-bit >> 63 -mpi_core_shift_r:"dee5ca1a7ef10a75":63:"0000000000000001" - -Core shift 64-bit >> 64 -mpi_core_shift_r:"dee5ca1a7ef10a75":64:"0000000000000000" - -Core shift 64-bit >> 65 -mpi_core_shift_r:"dee5ca1a7ef10a75":65:"0000000000000000" - -Core shift 64-bit >> 71 -mpi_core_shift_r:"dee5ca1a7ef10a75":71:"0000000000000000" - -Core shift 64-bit >> 72 -mpi_core_shift_r:"dee5ca1a7ef10a75":72:"0000000000000000" - -Core shift [leading 0 limb] >> 0 -mpi_core_shift_r:"002e7ab0070ad57001":0:"002e7ab0070ad57001" - -Core shift [leading 0 limb] >> 1 -mpi_core_shift_r:"002e7ab0070ad57001":1:"00173d5803856ab800" - -Core shift [leading 0 limb] >> 8 -mpi_core_shift_r:"002e7ab0070ad57001":8:"00002e7ab0070ad570" - -Core shift [leading 0 limb] >> 63 -mpi_core_shift_r:"002e7ab0070ad57001":63:"000000000000000000" - -Core shift [leading 0 limb] >> 64 -mpi_core_shift_r:"002e7ab0070ad57001":64:"000000000000000000" - -Core shift 80-bit >> 0 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":0:"a1055eb0bb1efa1150ff" - -Core shift 80-bit >> 1 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":1:"5082af585d8f7d08a87f" - -Core shift 80-bit >> 8 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":8:"00a1055eb0bb1efa1150" - -Core shift 80-bit >> 63 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":63:"0000000000000001420a" - -Core shift 80-bit >> 64 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":64:"0000000000000000a105" - -Core shift 80-bit >> 65 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":65:"00000000000000005082" - -Core shift 80-bit >> 72 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":72:"000000000000000000a1" - -Core shift 80-bit >> 79 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":79:"00000000000000000001" - -Core shift 80-bit >> 80 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":80:"00000000000000000000" - -Core shift 80-bit >> 81 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":81:"00000000000000000000" - -Core shift 80-bit >> 88 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":88:"00000000000000000000" - -Core shift 80-bit >> 128 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":128:"00000000000000000000" - -Core shift 80-bit >> 129 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":129:"00000000000000000000" - -Core shift 80-bit >> 136 -mpi_core_shift_r:"a1055eb0bb1efa1150ff":136:"00000000000000000000" - -Core shift 138-bit >> 0 -mpi_core_shift_r:"020100000000000000001011121314151617":0:"020100000000000000001011121314151617" - -Core shift 138-bit >> 1 -mpi_core_shift_r:"020100000000000000001011121314151617":1:"01008000000000000000080889098a0a8b0b" - -Core shift 138-bit >> 8 -mpi_core_shift_r:"020100000000000000001011121314151617":8:"000201000000000000000010111213141516" - -Core shift 138-bit >> 9 -mpi_core_shift_r:"020100000000000000001011121314151617":9:"0001008000000000000000080889098a0a8b" - -Core shift 138-bit >> 16 -mpi_core_shift_r:"020100000000000000001011121314151617":16:"000002010000000000000000101112131415" - -Core shift 138-bit >> 72 -mpi_core_shift_r:"020100000000000000001011121314151617":72:"000000000000000000020100000000000000" - -Core shift 138-bit >> 73 -mpi_core_shift_r:"020100000000000000001011121314151617":73:"000000000000000000010080000000000000" - -Core shift 138-bit >> 136 -mpi_core_shift_r:"020100000000000000001011121314151617":136:"000000000000000000000000000000000002" - -Core shift 138-bit >> 137 -mpi_core_shift_r:"020100000000000000001011121314151617":137:"000000000000000000000000000000000001" - -Core shift 138-bit >> 138 -mpi_core_shift_r:"020100000000000000001011121314151617":138:"000000000000000000000000000000000000" - -Core shift 138-bit >> 144 -mpi_core_shift_r:"020100000000000000001011121314151617":144:"000000000000000000000000000000000000" - -mbedtls_mpi_core_sub #1 0 - 0 -mpi_core_sub:"0":"0":"0":"0":0 - -mbedtls_mpi_core_sub #2 0 - 1 -mpi_core_sub:"0":"1":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #3 0 - 2 -mpi_core_sub:"0":"2":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #4 0 - 3 -mpi_core_sub:"0":"3":"fffffffd":"fffffffffffffffd":1 - -mbedtls_mpi_core_sub #5 0 - 4 -mpi_core_sub:"0":"4":"fffffffc":"fffffffffffffffc":1 - -mbedtls_mpi_core_sub #6 0 - 38 -mpi_core_sub:"0":"38":"ffffffc8":"ffffffffffffffc8":1 - -mbedtls_mpi_core_sub #7 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5":1 - -mbedtls_mpi_core_sub #8 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568d":"e88de62cf185d96026a450370d5b2d84230b44660b41568d":1 - -mbedtls_mpi_core_sub #9 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d423":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d423":1 - -mbedtls_mpi_core_sub #10 0 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd":1 - -mbedtls_mpi_core_sub #11 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"0":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a29":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a29":1 - -mbedtls_mpi_core_sub #12 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12a":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12a":1 - -mbedtls_mpi_core_sub #13 0 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe553":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe553":1 - -mbedtls_mpi_core_sub #14 1 - 0 -mpi_core_sub:"1":"0":"1":"1":0 - -mbedtls_mpi_core_sub #15 1 - 1 -mpi_core_sub:"1":"1":"0":"0":0 - -mbedtls_mpi_core_sub #16 1 - 2 -mpi_core_sub:"1":"2":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #17 1 - 3 -mpi_core_sub:"1":"3":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #18 1 - 4 -mpi_core_sub:"1":"4":"fffffffd":"fffffffffffffffd":1 - -mbedtls_mpi_core_sub #19 1 - 38 -mpi_core_sub:"1":"38":"ffffffc9":"ffffffffffffffc9":1 - -mbedtls_mpi_core_sub #20 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a6":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a6":1 - -mbedtls_mpi_core_sub #21 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568e":"e88de62cf185d96026a450370d5b2d84230b44660b41568e":1 - -mbedtls_mpi_core_sub #22 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d424":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d424":1 - -mbedtls_mpi_core_sub #23 1 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952adde":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952adde":1 - -mbedtls_mpi_core_sub #24 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"1":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2a":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2a":1 - -mbedtls_mpi_core_sub #25 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12b":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12b":1 - -mbedtls_mpi_core_sub #26 1 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe554":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe554":1 - -mbedtls_mpi_core_sub #27 2 - 0 -mpi_core_sub:"2":"0":"2":"2":0 - -mbedtls_mpi_core_sub #28 2 - 1 -mpi_core_sub:"2":"1":"1":"1":0 - -mbedtls_mpi_core_sub #29 2 - 2 -mpi_core_sub:"2":"2":"0":"0":0 - -mbedtls_mpi_core_sub #30 2 - 3 -mpi_core_sub:"2":"3":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #31 2 - 4 -mpi_core_sub:"2":"4":"fffffffe":"fffffffffffffffe":1 - -mbedtls_mpi_core_sub #32 2 - 38 -mpi_core_sub:"2":"38":"ffffffca":"ffffffffffffffca":1 - -mbedtls_mpi_core_sub #33 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a7":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a7":1 - -mbedtls_mpi_core_sub #34 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b41568f":"e88de62cf185d96026a450370d5b2d84230b44660b41568f":1 - -mbedtls_mpi_core_sub #35 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d425":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d425":1 - -mbedtls_mpi_core_sub #36 2 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addf":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addf":1 - -mbedtls_mpi_core_sub #37 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"2":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2b":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2b":1 - -mbedtls_mpi_core_sub #38 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12c":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12c":1 - -mbedtls_mpi_core_sub #39 2 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe555":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe555":1 - -mbedtls_mpi_core_sub #40 3 - 0 -mpi_core_sub:"3":"0":"3":"3":0 - -mbedtls_mpi_core_sub #41 3 - 1 -mpi_core_sub:"3":"1":"2":"2":0 - -mbedtls_mpi_core_sub #42 3 - 2 -mpi_core_sub:"3":"2":"1":"1":0 - -mbedtls_mpi_core_sub #43 3 - 3 -mpi_core_sub:"3":"3":"0":"0":0 - -mbedtls_mpi_core_sub #44 3 - 4 -mpi_core_sub:"3":"4":"ffffffff":"ffffffffffffffff":1 - -mbedtls_mpi_core_sub #45 3 - 38 -mpi_core_sub:"3":"38":"ffffffcb":"ffffffffffffffcb":1 - -mbedtls_mpi_core_sub #46 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a8":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a8":1 - -mbedtls_mpi_core_sub #47 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b415690":"e88de62cf185d96026a450370d5b2d84230b44660b415690":1 - -mbedtls_mpi_core_sub #48 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d426":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d426":1 - -mbedtls_mpi_core_sub #49 3 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade0":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade0":1 - -mbedtls_mpi_core_sub #50 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2c":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2c":1 - -mbedtls_mpi_core_sub #51 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12d":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12d":1 - -mbedtls_mpi_core_sub #52 3 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe556":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe556":1 - -mbedtls_mpi_core_sub #53 4 - 0 -mpi_core_sub:"4":"0":"4":"4":0 - -mbedtls_mpi_core_sub #54 4 - 1 -mpi_core_sub:"4":"1":"3":"3":0 - -mbedtls_mpi_core_sub #55 4 - 2 -mpi_core_sub:"4":"2":"2":"2":0 - -mbedtls_mpi_core_sub #56 4 - 3 -mpi_core_sub:"4":"3":"1":"1":0 - -mbedtls_mpi_core_sub #57 4 - 4 -mpi_core_sub:"4":"4":"0":"0":0 - -mbedtls_mpi_core_sub #58 4 - 38 -mpi_core_sub:"4":"38":"ffffffcc":"ffffffffffffffcc":1 - -mbedtls_mpi_core_sub #59 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a9":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a9":1 - -mbedtls_mpi_core_sub #60 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b415691":"e88de62cf185d96026a450370d5b2d84230b44660b415691":1 - -mbedtls_mpi_core_sub #61 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d427":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d427":1 - -mbedtls_mpi_core_sub #62 4 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade1":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ade1":1 - -mbedtls_mpi_core_sub #63 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2d":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a2d":1 - -mbedtls_mpi_core_sub #64 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12e":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed12e":1 - -mbedtls_mpi_core_sub #65 4 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe557":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe557":1 - -mbedtls_mpi_core_sub #66 38 - 0 -mpi_core_sub:"38":"0":"38":"38":0 - -mbedtls_mpi_core_sub #67 38 - 1 -mpi_core_sub:"38":"1":"37":"37":0 - -mbedtls_mpi_core_sub #68 38 - 2 -mpi_core_sub:"38":"2":"36":"36":0 - -mbedtls_mpi_core_sub #69 38 - 3 -mpi_core_sub:"38":"3":"35":"35":0 - -mbedtls_mpi_core_sub #70 38 - 4 -mpi_core_sub:"38":"4":"34":"34":0 - -mbedtls_mpi_core_sub #71 38 - 38 -mpi_core_sub:"38":"38":"0":"0":0 - -mbedtls_mpi_core_sub #72 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048dd":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048dd":1 - -mbedtls_mpi_core_sub #73 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e88de62cf185d96026a450370d5b2d84230b44660b4156c5":"e88de62cf185d96026a450370d5b2d84230b44660b4156c5":1 - -mbedtls_mpi_core_sub #74 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d45b":"30e7dd0043977887d4b6efbb2a1cbedba391bcc8ea45d45b":1 - -mbedtls_mpi_core_sub #75 38 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ae15":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952ae15":1 - -mbedtls_mpi_core_sub #76 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"38":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a61":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca5856839bc9a9bed56475e5432e596e938b25b0603c3925a61":1 - -mbedtls_mpi_core_sub #77 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed162":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb323185928d7700973cdf0760ecb81f3226fa1302e9f3a2f10bed162":1 - -mbedtls_mpi_core_sub #78 38 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe58b":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8ba6ebd213315d9babd5ffbfc317f3b4f5bfbd44c2bcbe58b":1 - -mbedtls_mpi_core_sub #79 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mbedtls_mpi_core_sub #80 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_core_sub #81 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_core_sub #82 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_core_sub #83 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mbedtls_mpi_core_sub #84 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mbedtls_mpi_core_sub #85 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"0":0 - -mbedtls_mpi_core_sub #86 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 - -mbedtls_mpi_core_sub #87 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":"2a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 - -mbedtls_mpi_core_sub #88 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e6f722ea2b5e51a67133b177ab90c29e5df0496f40e26538":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e6f722ea2b5e51a67133b177ab90c29e5df0496f40e26538":1 - -mbedtls_mpi_core_sub #89 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca65729616302145459ca6354367451d85997fee8dffb221184":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca65729616302145459ca6354367451d85997fee8dffb221184":1 - -mbedtls_mpi_core_sub #90 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859fa9897afdb46577991d081f6b12a905114431d0b484e8885":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859fa9897afdb46577991d081f6b12a905114431d0b484e8885":1 - -mbedtls_mpi_core_sub #91 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98c2fe4c79a8e40be4064fbffc03a2a70419fb728635b9cae":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98c2fe4c79a8e40be4064fbffc03a2a70419fb728635b9cae":1 - -mbedtls_mpi_core_sub #92 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mbedtls_mpi_core_sub #93 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mbedtls_mpi_core_sub #94 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mbedtls_mpi_core_sub #95 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mbedtls_mpi_core_sub #96 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mbedtls_mpi_core_sub #97 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mbedtls_mpi_core_sub #98 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"45b0f22ca701bf9c5656afc563e9e35af750d8bdbd2ef218":"45b0f22ca701bf9c5656afc563e9e35af750d8bdbd2ef218":1 - -mbedtls_mpi_core_sub #99 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"0":0 - -mbedtls_mpi_core_sub #100 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4859f6d352119f27ae129f841cc1915780867862df047d96":"4859f6d352119f27ae129f841cc1915780867862df047d96":1 - -mbedtls_mpi_core_sub #101 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a12ca81516d2601142c78a613d0f7aa5f95541222cfe115750":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a12ca81516d2601142c78a613d0f7aa5f95541222cfe115750":1 - -mbedtls_mpi_core_sub #102 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca59cda538fa91613f620ba03fbd83bbbb48f4fc19db851039c":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca59cda538fa91613f620ba03fbd83bbbb48f4fc19db851039c":1 - -mbedtls_mpi_core_sub #103 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859404989dc82481715e82731bc151473ac0b93f5c9057d7a9d":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859404989dc82481715e82731bc151473ac0b93f5c9057d7a9d":1 - -mbedtls_mpi_core_sub #104 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8d1e0d6f44190005a96bbabc524240dcb38f08fe6208a8ec6":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d8d1e0d6f44190005a96bbabc524240dcb38f08fe6208a8ec6":1 - -mbedtls_mpi_core_sub #105 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mbedtls_mpi_core_sub #106 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mbedtls_mpi_core_sub #107 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mbedtls_mpi_core_sub #108 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mbedtls_mpi_core_sub #109 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mbedtls_mpi_core_sub #110 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mbedtls_mpi_core_sub #111 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"fd56fb5954f02074a84410414728520376ca605ade2a7482":"fd56fb5954f02074a84410414728520376ca605ade2a7482":1 - -mbedtls_mpi_core_sub #112 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 - -mbedtls_mpi_core_sub #113 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"0":0 - -mbedtls_mpi_core_sub #114 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e44e1e43804e721b1977c1b8f2b914a1d4baa9ca1f0cd9ba":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a1e44e1e43804e721b1977c1b8f2b914a1d4baa9ca1f0cd9ba":1 - -mbedtls_mpi_core_sub #115 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca654805cbc570474ce72a76477bb7a2a5d0ec9493ad94c8606":"f96fad961290f4f60e9a3731c91d0db4bcfff21fe4d12bf12c522334d3cc41f53862986cb92b5385a3c6fd4c769c23917acb0ba8c72fb713f0ef66393c1e4da7028dbbad33158e00b5eb78951500e5f6735a6699993154c9faed42eceef8ddcee8ef30acd853bca654805cbc570474ce72a76477bb7a2a5d0ec9493ad94c8606":1 - -mbedtls_mpi_core_sub #116 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859f7ef9309303677ee3a149237f852e2548b0d7d662678fd07":"eb3ea36ef4ee52d733de31772ff9f33abd873d9eb1e434c7c44b5a8fd6b3b15c8c72dbc591a72a35b6384a6466adac0293865c219607a1cece0c46dc7ddb4edd3c1b576d26e69525b0305a7c1e2075064b8b38176d795e8ab5434f95175446c0fe2765fdb3231859f7ef9309303677ee3a149237f852e2548b0d7d662678fd07":1 - -mbedtls_mpi_core_sub #117 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98986e020ef7e6132e8a90c4107627c73b86a178341861130":"e30266de9209b79b85213d986c2f1bac0af7db6d27c57dcc049d2d37e79d0369cb07f90540b5f83a99ffddb64e6e40b27bbe4a9e9ccd535a0aad88c1eb4fe6f26c6c91e2535c3f90a00f3fc44a28c7a21f7355e5f7e86efb5da1b99b0adac5fd5ce787ace7b00d98986e020ef7e6132e8a90c4107627c73b86a178341861130":1 - -mbedtls_mpi_core_sub #118 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mbedtls_mpi_core_sub #119 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mbedtls_mpi_core_sub #120 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mbedtls_mpi_core_sub #121 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 - -mbedtls_mpi_core_sub #122 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 - -mbedtls_mpi_core_sub #123 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 - -mbedtls_mpi_core_sub #124 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":0 - -mbedtls_mpi_core_sub #125 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":0 - -mbedtls_mpi_core_sub #126 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":0 - -mbedtls_mpi_core_sub #127 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"0":0 - -mbedtls_mpi_core_sub #128 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":0 - -mbedtls_mpi_core_sub #129 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":0 - -mbedtls_mpi_core_sub #130 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"d76bce5a5dfa0abad3f21c973e5155b9d26adbab3cce3947ece6e8430cc7e8e29290d25b55ffdc90c2c5a55ac57ff98308e4e0193cc01f5d35b531d7c9923bef7e72b440522990a26cdc0aa83c41b7547dc9d0115490cbaedf391b391b594d9004cabd15e106e837a538c1dd6f2fef17cf314a8814a967d1e3af6db922793776":"d76bce5a5dfa0abad3f21c973e5155b9d26adbab3cce3947ece6e8430cc7e8e29290d25b55ffdc90c2c5a55ac57ff98308e4e0193cc01f5d35b531d7c9923bef7e72b440522990a26cdc0aa83c41b7547dc9d0115490cbaedf391b391b594d9004cabd15e106e837a538c1dd6f2fef17cf314a8814a967d1e3af6db922793776":1 - -mbedtls_mpi_core_sub #131 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mbedtls_mpi_core_sub #132 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 - -mbedtls_mpi_core_sub #133 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 - -mbedtls_mpi_core_sub #134 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 - -mbedtls_mpi_core_sub #135 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 - -mbedtls_mpi_core_sub #136 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 - -mbedtls_mpi_core_sub #137 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 - -mbedtls_mpi_core_sub #138 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 - -mbedtls_mpi_core_sub #139 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 - -mbedtls_mpi_core_sub #140 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3d54aa7d78959bc8d5c5c0107f548e4c3144afebb0dcf2a3a710c75b9de5a55ed1bd14c844e02f6d43135b3428cac6f6a40bf8e7e5dcfec47a06407b190474d8a5c659309ff6a555e73970bef35fef2f30d2feb371bc6676dbb3bd73a65b8100e8148ab815205bfb8fcdc1872949fd4ca6d05d41373eea44c5f1608f45c053b4":"3d54aa7d78959bc8d5c5c0107f548e4c3144afebb0dcf2a3a710c75b9de5a55ed1bd14c844e02f6d43135b3428cac6f6a40bf8e7e5dcfec47a06407b190474d8a5c659309ff6a555e73970bef35fef2f30d2feb371bc6676dbb3bd73a65b8100e8148ab815205bfb8fcdc1872949fd4ca6d05d41373eea44c5f1608f45c053b4":1 - -mbedtls_mpi_core_sub #141 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"0":0 - -mbedtls_mpi_core_sub #142 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cef5d8e25d5de12543fa4566dce58600874b7ecd1308d697f9375b02e76f6754104358d87bd6b012714d17f011887118bb5078ced7eabadd1ce0a341bd0136398d9bbff3d10724fa44e1e7091f8f0fd830d17dd44809c0ba560ca8285b68f215383550dacf5bb3a36f364cd932031fc76d2dc03cd8b7f77c44342b4d2c7701":"f1cef5d8e25d5de12543fa4566dce58600874b7ecd1308d697f9375b02e76f6754104358d87bd6b012714d17f011887118bb5078ced7eabadd1ce0a341bd0136398d9bbff3d10724fa44e1e7091f8f0fd830d17dd44809c0ba560ca8285b68f215383550dacf5bb3a36f364cd932031fc76d2dc03cd8b7f77c44342b4d2c7701":1 - -mbedtls_mpi_core_sub #143 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c078d7d68fa683a9b7dca7bda5e40603af8b96edab2beb93f7af9eaaad8e41644de7239ae00bfe05d9008eee4ac079acf0d901229d1e21afbb7252e296b0c824390d70f22035f854157b672fa1a683ae9ccec4c64d3225baecd8acc1b4ce90ecdf47cdf6274433350683649879ec647601a7c94be85216a9a0ce4868398b2a":"14c078d7d68fa683a9b7dca7bda5e40603af8b96edab2beb93f7af9eaaad8e41644de7239ae00bfe05d9008eee4ac079acf0d901229d1e21afbb7252e296b0c824390d70f22035f854157b672fa1a683ae9ccec4c64d3225baecd8acc1b4ce90ecdf47cdf6274433350683649879ec647601a7c94be85216a9a0ce4868398b2a":1 - -mbedtls_mpi_core_sub #144 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mbedtls_mpi_core_sub #145 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 - -mbedtls_mpi_core_sub #146 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 - -mbedtls_mpi_core_sub #147 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 - -mbedtls_mpi_core_sub #148 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 - -mbedtls_mpi_core_sub #149 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 - -mbedtls_mpi_core_sub #150 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 - -mbedtls_mpi_core_sub #151 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 - -mbedtls_mpi_core_sub #152 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 - -mbedtls_mpi_core_sub #153 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4b85b4a496383de7b081c5cb1877a8c630bd646ce3c9e9cd0f1790009afe35f77dacd16f6c6458bd30a20e1c38b93e858b50a86f170514099ce95fd7d74773a26c38bd70ac259e30ecf48ed7ea40601f58a22d359d745cb6215db0cb7e00180ed2dc55673a510047ec5e8b3a5017fa2cdf632f80fa66324d49ad2c63f893dcb3":"4b85b4a496383de7b081c5cb1877a8c630bd646ce3c9e9cd0f1790009afe35f77dacd16f6c6458bd30a20e1c38b93e858b50a86f170514099ce95fd7d74773a26c38bd70ac259e30ecf48ed7ea40601f58a22d359d745cb6215db0cb7e00180ed2dc55673a510047ec5e8b3a5017fa2cdf632f80fa66324d49ad2c63f893dcb3":1 - -mbedtls_mpi_core_sub #154 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":"e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 - -mbedtls_mpi_core_sub #155 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"0":0 - -mbedtls_mpi_core_sub #156 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"22f182fef43248a28473e26256c8fe800328401820982314fbfe7843a7c61eda103da3cac264354df367b376fe3938089435888853c53366d29e91afa0d9af91eaab71b0fe4f2ed359d0998026821773d66bfd46f20528650096cc049959659ed7a7127d1b57e87f91974d17bf47e944ae947a090f0f9a1f2d5c9a1d1b0d1429":"22f182fef43248a28473e26256c8fe800328401820982314fbfe7843a7c61eda103da3cac264354df367b376fe3938089435888853c53366d29e91afa0d9af91eaab71b0fe4f2ed359d0998026821773d66bfd46f20528650096cc049959659ed7a7127d1b57e87f91974d17bf47e944ae947a090f0f9a1f2d5c9a1d1b0d1429":1 - -mbedtls_mpi_core_sub #157 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mbedtls_mpi_core_sub #158 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 - -mbedtls_mpi_core_sub #159 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 - -mbedtls_mpi_core_sub #160 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 - -mbedtls_mpi_core_sub #161 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 - -mbedtls_mpi_core_sub #162 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 - -mbedtls_mpi_core_sub #163 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2673d01b386571bf41bf9b04003fc5d58fbe6048d79ca46352":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2673d01b386571bf41bf9b04003fc5d58fbe6048d79ca46352":0 - -mbedtls_mpi_core_sub #164 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff272e1f290bbe6fffa56944543adbdbf234c70f7019df75713a":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff272e1f290bbe6fffa56944543adbdbf234c70f7019df75713a":0 - -mbedtls_mpi_core_sub #165 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2676791fdf10819ecd1756f3bef89d838c4795e87cbe79eed0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff2676791fdf10819ecd1756f3bef89d838c4795e87cbe79eed0":0 - -mbedtls_mpi_core_sub #166 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"289431a5a205f5452c0de368c1aeaa462d952454c331c6b8131917bcf338171d6d6f2da4aa00236f3d3a5aa53a80067cf71b1fe6c33fe0a2ca4ace28366dc410818d4bbfadd66f5d9323f557c3be48ab82362feeab6f345120c6e4c6e4a6b26ffb3542ea1ef917c85ac73e2290d010e830ceb577eb56982e1c509246dd86c88a":"289431a5a205f5452c0de368c1aeaa462d952454c331c6b8131917bcf338171d6d6f2da4aa00236f3d3a5aa53a80067cf71b1fe6c33fe0a2ca4ace28366dc410818d4bbfadd66f5d9323f557c3be48ab82362feeab6f345120c6e4c6e4a6b26ffb3542ea1ef917c85ac73e2290d010e830ceb577eb56982e1c509246dd86c88a":0 - -mbedtls_mpi_core_sub #167 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"eb3f87282970597c56482358425a1bf9fc5074691254d4146c085061555271be9bb218dc651ff401fa26ff7111b53f86530f26fedd62e1de50448dad1d694f37dbc6f28f0ddfca07abea8498d05e597c5163313b39b2cdda451327533e4b316f1320b83209d8bbcccaf97c9b6786139b89fe5836b417ade9565f31b797c674d6":"eb3f87282970597c56482358425a1bf9fc5074691254d4146c085061555271be9bb218dc651ff401fa26ff7111b53f86530f26fedd62e1de50448dad1d694f37dbc6f28f0ddfca07abea8498d05e597c5163313b39b2cdda451327533e4b316f1320b83209d8bbcccaf97c9b6786139b89fe5836b417ade9565f31b797c674d6":0 - -mbedtls_mpi_core_sub #168 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"dd0e7d010bcdb75d7b8c1d9da937017ffcd7bfe7df67dceb040187bc5839e125efc25c353d9bcab20c984c8901c6c7f76bca7777ac3acc992d616e505f26506e15548e4f01b0d12ca62f667fd97de88c299402b90dfad79aff6933fb66a69a612858ed82e4a817806e68b2e840b816bb516b85f6f0f065e0d2a365e2e4f2ebd7":"dd0e7d010bcdb75d7b8c1d9da937017ffcd7bfe7df67dceb040187bc5839e125efc25c353d9bcab20c984c8901c6c7f76bca7777ac3acc992d616e505f26506e15548e4f01b0d12ca62f667fd97de88c299402b90dfad79aff6933fb66a69a612858ed82e4a817806e68b2e840b816bb516b85f6f0f065e0d2a365e2e4f2ebd7":0 - -mbedtls_mpi_core_sub #169 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad -mpi_core_sub:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"0":0 - -mpi_core_sub_int #1 0 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"0":"0":"0":0 - -mpi_core_sub_int #2 0 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0":"0":"0":0 - -mpi_core_sub_int #3 0 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000000":"1":"ffffffff":1 - -mpi_core_sub_int #4 0 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000000":"1":"ffffffffffffffff":1 - -mpi_core_sub_int #5 0 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000000":"2":"fffffffe":1 - -mpi_core_sub_int #6 0 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000000":"2":"fffffffffffffffe":1 - -mpi_core_sub_int #7 0 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000000":"3":"fffffffd":1 - -mpi_core_sub_int #8 0 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000000":"3":"fffffffffffffffd":1 - -mpi_core_sub_int #9 0 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000000":"4":"fffffffc":1 - -mpi_core_sub_int #10 0 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000000":"4":"fffffffffffffffc":1 - -mpi_core_sub_int #11 0 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000000":"38":"ffffffc8":1 - -mpi_core_sub_int #12 0 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000000":"38":"ffffffffffffffc8":1 - -mpi_core_sub_int #27 1 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"0":"00000001":0 - -mpi_core_sub_int #28 1 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"0":"0000000000000001":0 - -mpi_core_sub_int #29 1 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"1":"00000000":0 - -mpi_core_sub_int #30 1 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"1":"0000000000000000":0 - -mpi_core_sub_int #31 1 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"2":"ffffffff":1 - -mpi_core_sub_int #32 1 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"2":"ffffffffffffffff":1 - -mpi_core_sub_int #33 1 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"3":"fffffffe":1 - -mpi_core_sub_int #34 1 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"3":"fffffffffffffffe":1 - -mpi_core_sub_int #35 1 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"4":"fffffffd":1 - -mpi_core_sub_int #36 1 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"4":"fffffffffffffffd":1 - -mpi_core_sub_int #37 1 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000001":"38":"ffffffc9":1 - -mpi_core_sub_int #38 1 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000001":"38":"ffffffffffffffc9":1 - -mpi_core_sub_int #53 2 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"0":"00000002":0 - -mpi_core_sub_int #54 2 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"0":"0000000000000002":0 - -mpi_core_sub_int #55 2 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"1":"00000001":0 - -mpi_core_sub_int #56 2 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"1":"0000000000000001":0 - -mpi_core_sub_int #57 2 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"2":"00000000":0 - -mpi_core_sub_int #58 2 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"2":"0000000000000000":0 - -mpi_core_sub_int #59 2 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"3":"ffffffff":1 - -mpi_core_sub_int #60 2 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"3":"ffffffffffffffff":1 - -mpi_core_sub_int #61 2 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"4":"fffffffe":1 - -mpi_core_sub_int #62 2 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"4":"fffffffffffffffe":1 - -mpi_core_sub_int #63 2 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000002":"38":"ffffffca":1 - -mpi_core_sub_int #64 2 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000002":"38":"ffffffffffffffca":1 - -mpi_core_sub_int #79 3 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"0":"00000003":0 - -mpi_core_sub_int #80 3 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"0":"0000000000000003":0 - -mpi_core_sub_int #81 3 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"1":"00000002":0 - -mpi_core_sub_int #82 3 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"1":"0000000000000002":0 - -mpi_core_sub_int #83 3 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"2":"00000001":0 - -mpi_core_sub_int #84 3 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"2":"0000000000000001":0 - -mpi_core_sub_int #85 3 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"3":"00000000":0 - -mpi_core_sub_int #86 3 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"3":"0000000000000000":0 - -mpi_core_sub_int #87 3 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"4":"ffffffff":1 - -mpi_core_sub_int #88 3 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"4":"ffffffffffffffff":1 - -mpi_core_sub_int #89 3 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000003":"38":"ffffffcb":1 - -mpi_core_sub_int #90 3 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000003":"38":"ffffffffffffffcb":1 - -mpi_core_sub_int #105 4 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"0":"00000004":0 - -mpi_core_sub_int #106 4 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"0":"0000000000000004":0 - -mpi_core_sub_int #107 4 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"1":"00000003":0 - -mpi_core_sub_int #108 4 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"1":"0000000000000003":0 - -mpi_core_sub_int #109 4 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"2":"00000002":0 - -mpi_core_sub_int #110 4 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"2":"0000000000000002":0 - -mpi_core_sub_int #111 4 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"3":"00000001":0 - -mpi_core_sub_int #112 4 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"3":"0000000000000001":0 - -mpi_core_sub_int #113 4 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"4":"00000000":0 - -mpi_core_sub_int #114 4 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"4":"0000000000000000":0 - -mpi_core_sub_int #115 4 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000004":"38":"ffffffcc":1 - -mpi_core_sub_int #116 4 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000004":"38":"ffffffffffffffcc":1 - -mpi_core_sub_int #131 38 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"0":"00000038":0 - -mpi_core_sub_int #132 38 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"0":"0000000000000038":0 - -mpi_core_sub_int #133 38 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"1":"00000037":0 - -mpi_core_sub_int #134 38 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"1":"0000000000000037":0 - -mpi_core_sub_int #135 38 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"2":"00000036":0 - -mpi_core_sub_int #136 38 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"2":"0000000000000036":0 - -mpi_core_sub_int #137 38 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"3":"00000035":0 - -mpi_core_sub_int #138 38 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"3":"0000000000000035":0 - -mpi_core_sub_int #139 38 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"4":"00000034":0 - -mpi_core_sub_int #140 38 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"4":"0000000000000034":0 - -mpi_core_sub_int #141 38 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"00000038":"38":"00000000":0 - -mpi_core_sub_int #142 38 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"0000000000000038":"38":"0000000000000000":0 - -mpi_core_sub_int #157 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_sub_int #158 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mpi_core_sub_int #159 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mpi_core_sub_int #160 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mpi_core_sub_int #161 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mpi_core_sub_int #162 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mpi_core_sub_int #163 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mpi_core_sub_int #164 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"3":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mpi_core_sub_int #165 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mpi_core_sub_int #166 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mpi_core_sub_int #167 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mpi_core_sub_int #168 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"38":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mpi_core_sub_int #183 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_sub_int #184 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mpi_core_sub_int #185 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mpi_core_sub_int #186 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mpi_core_sub_int #187 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mpi_core_sub_int #188 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mpi_core_sub_int #189 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mpi_core_sub_int #190 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"3":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mpi_core_sub_int #191 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mpi_core_sub_int #192 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mpi_core_sub_int #193 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mpi_core_sub_int #194 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"38":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mpi_core_sub_int #209 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_sub_int #210 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mpi_core_sub_int #211 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mpi_core_sub_int #212 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mpi_core_sub_int #213 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mpi_core_sub_int #214 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"2":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mpi_core_sub_int #215 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mpi_core_sub_int #216 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"3":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mpi_core_sub_int #217 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mpi_core_sub_int #218 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"4":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mpi_core_sub_int #219 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mpi_core_sub_int #220 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"38":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mpi_core_sub_int #235 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_sub_int #236 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":0 - -mpi_core_sub_int #237 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mpi_core_sub_int #238 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"1":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mpi_core_sub_int #239 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mpi_core_sub_int #240 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"2":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mpi_core_sub_int #241 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 - -mpi_core_sub_int #242 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"3":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 - -mpi_core_sub_int #243 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 - -mpi_core_sub_int #244 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"4":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 - -mpi_core_sub_int #245 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 - -mpi_core_sub_int #246 c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"38":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 - -mpi_core_sub_int #261 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_sub_int #262 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mpi_core_sub_int #263 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 - -mpi_core_sub_int #264 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 - -mpi_core_sub_int #265 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 - -mpi_core_sub_int #266 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"2":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 - -mpi_core_sub_int #267 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 - -mpi_core_sub_int #268 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"3":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 - -mpi_core_sub_int #269 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 - -mpi_core_sub_int #270 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 - -mpi_core_sub_int #271 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 - -mpi_core_sub_int #272 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"38":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 - -mpi_core_sub_int #287 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_sub_int #288 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mpi_core_sub_int #289 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 - -mpi_core_sub_int #290 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 - -mpi_core_sub_int #291 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 - -mpi_core_sub_int #292 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 - -mpi_core_sub_int #293 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 - -mpi_core_sub_int #294 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 - -mpi_core_sub_int #295 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 - -mpi_core_sub_int #296 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"4":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 - -mpi_core_sub_int #297 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 - -mpi_core_sub_int #298 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"38":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 - -mpi_core_sub_int #313 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_sub_int #314 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 0 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"0":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":0 - -mpi_core_sub_int #315 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 - -mpi_core_sub_int #316 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"1":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aac":0 - -mpi_core_sub_int #317 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 - -mpi_core_sub_int #318 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 2 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"2":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aab":0 - -mpi_core_sub_int #319 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 - -mpi_core_sub_int #320 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 3 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"3":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aaa":0 - -mpi_core_sub_int #321 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 - -mpi_core_sub_int #322 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 4 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"4":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aa9":0 - -mpi_core_sub_int #323 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 -depends_on:MBEDTLS_HAVE_INT32 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 - -mpi_core_sub_int #324 f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad - 38 -depends_on:MBEDTLS_HAVE_INT64 -mpi_core_sub_int:"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341aad":"38":"f1cfd99216df648647adec26793d0e453f5082492d83a8233fb62d2c81862fc9634f806fabf4a07c566002249b191bf4d8441b5616332aca5f552773e14b0190d93936e1daca3c06f5ff0c03bb5d7385de08caa1a08179104a25e4664f5253a02a3187853184ff27459142deccea264542a00403ce80c4b0a4042bb3d4341a75":0 - -# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_mod.generated.data b/tests/suites/test_suite_bignum_mod.generated.data deleted file mode 100644 index 713798e0c..000000000 --- a/tests/suites/test_suite_bignum_mod.generated.data +++ /dev/null @@ -1,1380 +0,0 @@ -# Automatically generated by generate_bignum_tests.py. Do not edit! - -mbedtls_mpi_mod_sub #1 0 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000000":0 - -mbedtls_mpi_mod_sub #2 0 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000052":0 - -mbedtls_mpi_mod_sub #3 0 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000051":0 - -mbedtls_mpi_mod_sub #4 0 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000050":0 - -mbedtls_mpi_mod_sub #5 0 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000004":"000000000000004f":0 - -mbedtls_mpi_mod_sub #6 0 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000000":"0000000000000038":"000000000000001b":0 - -mbedtls_mpi_mod_sub #14 1 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000000":"0000000000000001":0 - -mbedtls_mpi_mod_sub #15 1 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000001":"0000000000000000":0 - -mbedtls_mpi_mod_sub #16 1 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000002":"0000000000000052":0 - -mbedtls_mpi_mod_sub #17 1 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000003":"0000000000000051":0 - -mbedtls_mpi_mod_sub #18 1 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000004":"0000000000000050":0 - -mbedtls_mpi_mod_sub #19 1 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000001":"0000000000000038":"000000000000001c":0 - -mbedtls_mpi_mod_sub #27 2 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000000":"0000000000000002":0 - -mbedtls_mpi_mod_sub #28 2 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000001":"0000000000000001":0 - -mbedtls_mpi_mod_sub #29 2 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000002":"0000000000000000":0 - -mbedtls_mpi_mod_sub #30 2 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000003":"0000000000000052":0 - -mbedtls_mpi_mod_sub #31 2 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000004":"0000000000000051":0 - -mbedtls_mpi_mod_sub #32 2 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000002":"0000000000000038":"000000000000001d":0 - -mbedtls_mpi_mod_sub #40 3 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000000":"0000000000000003":0 - -mbedtls_mpi_mod_sub #41 3 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000001":"0000000000000002":0 - -mbedtls_mpi_mod_sub #42 3 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000002":"0000000000000001":0 - -mbedtls_mpi_mod_sub #43 3 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000003":"0000000000000000":0 - -mbedtls_mpi_mod_sub #44 3 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000004":"0000000000000052":0 - -mbedtls_mpi_mod_sub #45 3 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000003":"0000000000000038":"000000000000001e":0 - -mbedtls_mpi_mod_sub #53 4 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000000":"0000000000000004":0 - -mbedtls_mpi_mod_sub #54 4 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000001":"0000000000000003":0 - -mbedtls_mpi_mod_sub #55 4 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000002":"0000000000000002":0 - -mbedtls_mpi_mod_sub #56 4 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000003":"0000000000000001":0 - -mbedtls_mpi_mod_sub #57 4 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000004":"0000000000000000":0 - -mbedtls_mpi_mod_sub #58 4 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000004":"0000000000000038":"000000000000001f":0 - -mbedtls_mpi_mod_sub #66 38 - 0 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000000":"0000000000000038":0 - -mbedtls_mpi_mod_sub #67 38 - 1 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000001":"0000000000000037":0 - -mbedtls_mpi_mod_sub #68 38 - 2 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000002":"0000000000000036":0 - -mbedtls_mpi_mod_sub #69 38 - 3 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000003":"0000000000000035":0 - -mbedtls_mpi_mod_sub #70 38 - 4 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000004":"0000000000000034":0 - -mbedtls_mpi_mod_sub #71 38 - 38 mod 53 -mpi_mod_sub:"0000000000000053":"0000000000000038":"0000000000000038":"0000000000000000":0 - -mbedtls_mpi_mod_sub #170 0 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000000":0 - -mbedtls_mpi_mod_sub #171 0 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000044":0 - -mbedtls_mpi_mod_sub #172 0 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000043":0 - -mbedtls_mpi_mod_sub #173 0 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000042":0 - -mbedtls_mpi_mod_sub #174 0 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000041":0 - -mbedtls_mpi_mod_sub #175 0 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000000":"0000000000000038":"000000000000000d":0 - -mbedtls_mpi_mod_sub #183 1 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000001":0 - -mbedtls_mpi_mod_sub #184 1 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000000":0 - -mbedtls_mpi_mod_sub #185 1 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000044":0 - -mbedtls_mpi_mod_sub #186 1 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000043":0 - -mbedtls_mpi_mod_sub #187 1 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000042":0 - -mbedtls_mpi_mod_sub #188 1 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000001":"0000000000000038":"000000000000000e":0 - -mbedtls_mpi_mod_sub #196 2 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000000":"0000000000000002":0 - -mbedtls_mpi_mod_sub #197 2 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000001":"0000000000000001":0 - -mbedtls_mpi_mod_sub #198 2 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000002":"0000000000000000":0 - -mbedtls_mpi_mod_sub #199 2 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000003":"0000000000000044":0 - -mbedtls_mpi_mod_sub #200 2 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000004":"0000000000000043":0 - -mbedtls_mpi_mod_sub #201 2 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000002":"0000000000000038":"000000000000000f":0 - -mbedtls_mpi_mod_sub #209 3 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000000":"0000000000000003":0 - -mbedtls_mpi_mod_sub #210 3 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000001":"0000000000000002":0 - -mbedtls_mpi_mod_sub #211 3 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000002":"0000000000000001":0 - -mbedtls_mpi_mod_sub #212 3 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000003":"0000000000000000":0 - -mbedtls_mpi_mod_sub #213 3 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000004":"0000000000000044":0 - -mbedtls_mpi_mod_sub #214 3 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000003":"0000000000000038":"0000000000000010":0 - -mbedtls_mpi_mod_sub #222 4 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000000":"0000000000000004":0 - -mbedtls_mpi_mod_sub #223 4 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000001":"0000000000000003":0 - -mbedtls_mpi_mod_sub #224 4 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000002":"0000000000000002":0 - -mbedtls_mpi_mod_sub #225 4 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000003":"0000000000000001":0 - -mbedtls_mpi_mod_sub #226 4 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000004":"0000000000000000":0 - -mbedtls_mpi_mod_sub #227 4 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000004":"0000000000000038":"0000000000000011":0 - -mbedtls_mpi_mod_sub #235 38 - 0 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000000":"0000000000000038":0 - -mbedtls_mpi_mod_sub #236 38 - 1 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000001":"0000000000000037":0 - -mbedtls_mpi_mod_sub #237 38 - 2 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000002":"0000000000000036":0 - -mbedtls_mpi_mod_sub #238 38 - 3 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000003":"0000000000000035":0 - -mbedtls_mpi_mod_sub #239 38 - 4 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000004":"0000000000000034":0 - -mbedtls_mpi_mod_sub #240 38 - 38 mod 45 -mpi_mod_sub:"0000000000000045":"0000000000000038":"0000000000000038":"0000000000000000":0 - -mbedtls_mpi_mod_sub #339 0 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #340 0 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #341 0 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #342 0 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_mod_sub #343 0 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mbedtls_mpi_mod_sub #344 0 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mbedtls_mpi_mod_sub #346 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 - -mbedtls_mpi_mod_sub #347 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 - -mbedtls_mpi_mod_sub #352 1 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #353 1 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #354 1 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #355 1 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #356 1 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_mod_sub #357 1 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb724":0 - -mbedtls_mpi_mod_sub #359 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de9":0 - -mbedtls_mpi_mod_sub #360 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7f":0 - -mbedtls_mpi_mod_sub #365 2 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #366 2 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #367 2 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #368 2 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #369 2 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #370 2 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb725":0 - -mbedtls_mpi_mod_sub #372 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dea":0 - -mbedtls_mpi_mod_sub #373 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b80":0 - -mbedtls_mpi_mod_sub #378 3 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #379 3 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #380 3 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #381 3 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #382 3 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #383 3 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb726":0 - -mbedtls_mpi_mod_sub #385 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10deb":0 - -mbedtls_mpi_mod_sub #386 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b81":0 - -mbedtls_mpi_mod_sub #391 4 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":0 - -mbedtls_mpi_mod_sub #392 4 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #393 4 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #394 4 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #395 4 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #396 4 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb727":0 - -mbedtls_mpi_mod_sub #398 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dec":0 - -mbedtls_mpi_mod_sub #399 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b82":0 - -mbedtls_mpi_mod_sub #404 38 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":0 - -mbedtls_mpi_mod_sub #405 38 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000037":0 - -mbedtls_mpi_mod_sub #406 38 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000036":0 - -mbedtls_mpi_mod_sub #407 38 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000035":0 - -mbedtls_mpi_mod_sub #408 38 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000034":0 - -mbedtls_mpi_mod_sub #409 38 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #411 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10e20":0 - -mbedtls_mpi_mod_sub #412 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58bb6":0 - -mbedtls_mpi_mod_sub #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mbedtls_mpi_mod_sub #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mbedtls_mpi_mod_sub #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mbedtls_mpi_mod_sub #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mbedtls_mpi_mod_sub #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mbedtls_mpi_mod_sub #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mbedtls_mpi_mod_sub #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"1a1b1e79b98a062b31179f87ab7c8078662a5b3f169434f1":0 - -mbedtls_mpi_mod_sub #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mbedtls_mpi_mod_sub #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mbedtls_mpi_mod_sub #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mbedtls_mpi_mod_sub #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mbedtls_mpi_mod_sub #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mbedtls_mpi_mod_sub #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mbedtls_mpi_mod_sub #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 - -mbedtls_mpi_mod_sub #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #508 0 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #509 0 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 - -mbedtls_mpi_mod_sub #510 0 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 - -mbedtls_mpi_mod_sub #511 0 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bce":0 - -mbedtls_mpi_mod_sub #512 0 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bcd":0 - -mbedtls_mpi_mod_sub #513 0 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b99":0 - -mbedtls_mpi_mod_sub #514 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a476":0 - -mbedtls_mpi_mod_sub #515 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25e":0 - -mbedtls_mpi_mod_sub #516 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff4":0 - -mbedtls_mpi_mod_sub #521 1 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #522 1 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #523 1 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 - -mbedtls_mpi_mod_sub #524 1 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 - -mbedtls_mpi_mod_sub #525 1 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bce":0 - -mbedtls_mpi_mod_sub #526 1 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9a":0 - -mbedtls_mpi_mod_sub #527 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a477":0 - -mbedtls_mpi_mod_sub #528 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25f":0 - -mbedtls_mpi_mod_sub #529 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff5":0 - -mbedtls_mpi_mod_sub #534 2 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #535 2 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #536 2 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #537 2 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 - -mbedtls_mpi_mod_sub #538 2 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf":0 - -mbedtls_mpi_mod_sub #539 2 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9b":0 - -mbedtls_mpi_mod_sub #540 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a478":0 - -mbedtls_mpi_mod_sub #541 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b260":0 - -mbedtls_mpi_mod_sub #542 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff6":0 - -mbedtls_mpi_mod_sub #547 3 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #548 3 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #549 3 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #550 3 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #551 3 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0":0 - -mbedtls_mpi_mod_sub #552 3 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9c":0 - -mbedtls_mpi_mod_sub #553 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a479":0 - -mbedtls_mpi_mod_sub #554 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b261":0 - -mbedtls_mpi_mod_sub #555 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff7":0 - -mbedtls_mpi_mod_sub #560 4 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":0 - -mbedtls_mpi_mod_sub #561 4 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #562 4 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #563 4 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #564 4 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #565 4 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575b9d":0 - -mbedtls_mpi_mod_sub #566 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a47a":0 - -mbedtls_mpi_mod_sub #567 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b262":0 - -mbedtls_mpi_mod_sub #568 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff8":0 - -mbedtls_mpi_mod_sub #573 38 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":0 - -mbedtls_mpi_mod_sub #574 38 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000037":0 - -mbedtls_mpi_mod_sub #575 38 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000036":0 - -mbedtls_mpi_mod_sub #576 38 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000035":0 - -mbedtls_mpi_mod_sub #577 38 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000034":0 - -mbedtls_mpi_mod_sub #578 38 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #579 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a4ae":0 - -mbedtls_mpi_mod_sub #580 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b296":0 - -mbedtls_mpi_mod_sub #581 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"30d56f356c234009831d1630bee6882bacb7a13d859d302c":0 - -mbedtls_mpi_mod_sub #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mbedtls_mpi_mod_sub #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_mod_sub #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mbedtls_mpi_mod_sub #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mbedtls_mpi_mod_sub #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 - -mbedtls_mpi_mod_sub #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 - -mbedtls_mpi_mod_sub #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mbedtls_mpi_mod_sub #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mbedtls_mpi_mod_sub #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mbedtls_mpi_mod_sub #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mbedtls_mpi_mod_sub #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mbedtls_mpi_mod_sub #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mbedtls_mpi_mod_sub #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"459e8461cf8d871e04bcd63af8b3acab0076bd3258864de9":0 - -mbedtls_mpi_mod_sub #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"484789087a9d66a95c78c5f9b18b5aa789ac5cd77a5bd967":0 - -mbedtls_mpi_mod_sub #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mbedtls_mpi_mod_sub #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mbedtls_mpi_mod_sub #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mbedtls_mpi_mod_sub #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mbedtls_mpi_mod_sub #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mbedtls_mpi_mod_sub #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mbedtls_mpi_mod_sub #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"fd448d8e7d7be7f656aa36b6dbf21b537ff044cf7981d053":0 - -mbedtls_mpi_mod_sub #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 - -mbedtls_mpi_mod_sub #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_sub:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #677 0 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #678 0 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mbedtls_mpi_mod_sub #679 0 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mbedtls_mpi_mod_sub #680 0 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 - -mbedtls_mpi_mod_sub #681 0 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f":0 - -mbedtls_mpi_mod_sub #682 0 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb":0 - -mbedtls_mpi_mod_sub #683 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8":0 - -mbedtls_mpi_mod_sub #684 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0":0 - -mbedtls_mpi_mod_sub #685 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646":0 - -mbedtls_mpi_mod_sub #687 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c":0 - -mbedtls_mpi_mod_sub #688 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d":0 - -mbedtls_mpi_mod_sub #690 1 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #691 1 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #692 1 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mbedtls_mpi_mod_sub #693 1 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mbedtls_mpi_mod_sub #694 1 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220":0 - -mbedtls_mpi_mod_sub #695 1 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ec":0 - -mbedtls_mpi_mod_sub #696 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac9":0 - -mbedtls_mpi_mod_sub #697 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b1":0 - -mbedtls_mpi_mod_sub #698 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32647":0 - -mbedtls_mpi_mod_sub #700 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4d":0 - -mbedtls_mpi_mod_sub #701 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234e":0 - -mbedtls_mpi_mod_sub #703 2 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #704 2 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #705 2 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #706 2 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mbedtls_mpi_mod_sub #707 2 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221":0 - -mbedtls_mpi_mod_sub #708 2 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ed":0 - -mbedtls_mpi_mod_sub #709 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9aca":0 - -mbedtls_mpi_mod_sub #710 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b2":0 - -mbedtls_mpi_mod_sub #711 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32648":0 - -mbedtls_mpi_mod_sub #713 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4e":0 - -mbedtls_mpi_mod_sub #714 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234f":0 - -mbedtls_mpi_mod_sub #716 3 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #717 3 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #718 3 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #719 3 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #720 3 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222":0 - -mbedtls_mpi_mod_sub #721 3 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ee":0 - -mbedtls_mpi_mod_sub #722 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acb":0 - -mbedtls_mpi_mod_sub #723 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b3":0 - -mbedtls_mpi_mod_sub #724 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32649":0 - -mbedtls_mpi_mod_sub #726 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4f":0 - -mbedtls_mpi_mod_sub #727 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2350":0 - -mbedtls_mpi_mod_sub #729 4 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":0 - -mbedtls_mpi_mod_sub #730 4 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #731 4 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #732 4 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #733 4 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #734 4 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ef":0 - -mbedtls_mpi_mod_sub #735 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acc":0 - -mbedtls_mpi_mod_sub #736 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b4":0 - -mbedtls_mpi_mod_sub #737 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3264a":0 - -mbedtls_mpi_mod_sub #739 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac50":0 - -mbedtls_mpi_mod_sub #740 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2351":0 - -mbedtls_mpi_mod_sub #742 38 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":0 - -mbedtls_mpi_mod_sub #743 38 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037":0 - -mbedtls_mpi_mod_sub #744 38 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036":0 - -mbedtls_mpi_mod_sub #745 38 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035":0 - -mbedtls_mpi_mod_sub #746 38 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034":0 - -mbedtls_mpi_mod_sub #747 38 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #748 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9b00":0 - -mbedtls_mpi_mod_sub #749 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8e8":0 - -mbedtls_mpi_mod_sub #750 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3267e":0 - -mbedtls_mpi_mod_sub #752 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac84":0 - -mbedtls_mpi_mod_sub #753 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2385":0 - -mbedtls_mpi_mod_sub #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mbedtls_mpi_mod_sub #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_mod_sub #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mbedtls_mpi_mod_sub #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mbedtls_mpi_mod_sub #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 - -mbedtls_mpi_mod_sub #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 - -mbedtls_mpi_mod_sub #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40541f3661f3e2e69b6dc34a2c2577c04dc1fb2824cf1cf63a7":0 - -mbedtls_mpi_mod_sub #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e5629c6c17606cd6a3a1d0829454bcd39bf6b6783efbdaa8":0 - -mbedtls_mpi_mod_sub #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mbedtls_mpi_mod_sub #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mbedtls_mpi_mod_sub #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mbedtls_mpi_mod_sub #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mbedtls_mpi_mod_sub #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mbedtls_mpi_mod_sub #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mbedtls_mpi_mod_sub #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e307af6e8e31bd4f96827fe5147140fdd7f04722ab3dc443b":0 - -mbedtls_mpi_mod_sub #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e3323fb8f8e2bb484bfe3ee0fffebbdda083a11cfd5b1cfb9":0 - -mbedtls_mpi_mod_sub #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40487a4584be5302953328b5287bb65e83717035b0aaefe55bf":0 - -mbedtls_mpi_mod_sub #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb82b138e98be622c72f9f88047f83ea02e93478f35fc2accc0":0 - -mbedtls_mpi_mod_sub #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mbedtls_mpi_mod_sub #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mbedtls_mpi_mod_sub #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mbedtls_mpi_mod_sub #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mbedtls_mpi_mod_sub #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mbedtls_mpi_mod_sub #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mbedtls_mpi_mod_sub #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ee8210015910a35d1ba155ecd2a527e85fe7df9c7d4d7c6a5":0 - -mbedtls_mpi_mod_sub #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 - -mbedtls_mpi_mod_sub #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa4053f4a6178931e8a2b8478b3039ea456df967ce2a7cff9d829":0 - -mbedtls_mpi_mod_sub #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e2b997c56c508d4b4be5e0c3db7d0ed712c116d31d264f2a":0 - -mbedtls_mpi_mod_sub #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mbedtls_mpi_mod_sub #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 - -mbedtls_mpi_mod_sub #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 - -mbedtls_mpi_mod_sub #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 - -mbedtls_mpi_mod_sub #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 - -mbedtls_mpi_mod_sub #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 - -mbedtls_mpi_mod_sub #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 - -mbedtls_mpi_mod_sub #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 - -mbedtls_mpi_mod_sub #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 - -mbedtls_mpi_mod_sub #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"bb0a9dc55736cd2240e403031e6b49851242a9733764ea41c4964cca9135881349f09623da7053bd2b96f49750aa9de8f9e44be821cb34e2722739eeec9a3eb6913986e220c4d3ce5d1ff89300beb9ea34036c30c95a4e7fe3b50c4793070a22443479ebed5b43128e393b09154c187cd93e7c4c2002e47a03f7cd9843d9c924":0 - -mbedtls_mpi_mod_sub #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mbedtls_mpi_mod_sub #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 - -mbedtls_mpi_mod_sub #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 - -mbedtls_mpi_mod_sub #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 - -mbedtls_mpi_mod_sub #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 - -mbedtls_mpi_mod_sub #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 - -mbedtls_mpi_mod_sub #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 - -mbedtls_mpi_mod_sub #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 - -mbedtls_mpi_mod_sub #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 - -mbedtls_mpi_mod_sub #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 - -mbedtls_mpi_mod_sub #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_sub:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #846 0 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #847 0 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 - -mbedtls_mpi_mod_sub #848 0 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 - -mbedtls_mpi_mod_sub #849 0 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be":0 - -mbedtls_mpi_mod_sub #850 0 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bd":0 - -mbedtls_mpi_mod_sub #851 0 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e7813189":0 - -mbedtls_mpi_mod_sub #852 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a66":0 - -mbedtls_mpi_mod_sub #853 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884e":0 - -mbedtls_mpi_mod_sub #854 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e4":0 - -mbedtls_mpi_mod_sub #856 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bea":0 - -mbedtls_mpi_mod_sub #857 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002eb":0 - -mbedtls_mpi_mod_sub #859 1 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #860 1 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #861 1 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 - -mbedtls_mpi_mod_sub #862 1 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 - -mbedtls_mpi_mod_sub #863 1 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be":0 - -mbedtls_mpi_mod_sub #864 1 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318a":0 - -mbedtls_mpi_mod_sub #865 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a67":0 - -mbedtls_mpi_mod_sub #866 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884f":0 - -mbedtls_mpi_mod_sub #867 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e5":0 - -mbedtls_mpi_mod_sub #869 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138beb":0 - -mbedtls_mpi_mod_sub #870 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ec":0 - -mbedtls_mpi_mod_sub #872 2 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #873 2 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #874 2 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #875 2 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 - -mbedtls_mpi_mod_sub #876 2 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf":0 - -mbedtls_mpi_mod_sub #877 2 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318b":0 - -mbedtls_mpi_mod_sub #878 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a68":0 - -mbedtls_mpi_mod_sub #879 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28850":0 - -mbedtls_mpi_mod_sub #880 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e6":0 - -mbedtls_mpi_mod_sub #882 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bec":0 - -mbedtls_mpi_mod_sub #883 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ed":0 - -mbedtls_mpi_mod_sub #885 3 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #886 3 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #887 3 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #888 3 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #889 3 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0":0 - -mbedtls_mpi_mod_sub #890 3 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318c":0 - -mbedtls_mpi_mod_sub #891 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a69":0 - -mbedtls_mpi_mod_sub #892 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28851":0 - -mbedtls_mpi_mod_sub #893 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e7":0 - -mbedtls_mpi_mod_sub #895 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bed":0 - -mbedtls_mpi_mod_sub #896 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ee":0 - -mbedtls_mpi_mod_sub #898 4 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":0 - -mbedtls_mpi_mod_sub #899 4 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":0 - -mbedtls_mpi_mod_sub #900 4 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":0 - -mbedtls_mpi_mod_sub #901 4 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":0 - -mbedtls_mpi_mod_sub #902 4 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #903 4 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318d":0 - -mbedtls_mpi_mod_sub #904 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a6a":0 - -mbedtls_mpi_mod_sub #905 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28852":0 - -mbedtls_mpi_mod_sub #906 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e8":0 - -mbedtls_mpi_mod_sub #908 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bee":0 - -mbedtls_mpi_mod_sub #909 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ef":0 - -mbedtls_mpi_mod_sub #911 38 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":0 - -mbedtls_mpi_mod_sub #912 38 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037":0 - -mbedtls_mpi_mod_sub #913 38 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036":0 - -mbedtls_mpi_mod_sub #914 38 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035":0 - -mbedtls_mpi_mod_sub #915 38 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034":0 - -mbedtls_mpi_mod_sub #916 38 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #917 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a9e":0 - -mbedtls_mpi_mod_sub #918 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28886":0 - -mbedtls_mpi_mod_sub #919 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c7061c":0 - -mbedtls_mpi_mod_sub #921 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138c22":0 - -mbedtls_mpi_mod_sub #922 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f8400323":0 - -mbedtls_mpi_mod_sub #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":0 - -mbedtls_mpi_mod_sub #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a":0 - -mbedtls_mpi_mod_sub #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759":0 - -mbedtls_mpi_mod_sub #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758":0 - -mbedtls_mpi_mod_sub #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757":0 - -mbedtls_mpi_mod_sub #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723":0 - -mbedtls_mpi_mod_sub #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8":0 - -mbedtls_mpi_mod_sub #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e":0 - -mbedtls_mpi_mod_sub #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca70c73846511da049da147f94b8e2ba225ead20c57e2a34345":0 - -mbedtls_mpi_mod_sub #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aafe2bab1eb0c07bd68b5270bcb045a1d671640832fcfba46":0 - -mbedtls_mpi_mod_sub #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":0 - -mbedtls_mpi_mod_sub #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972":0 - -mbedtls_mpi_mod_sub #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971":0 - -mbedtls_mpi_mod_sub #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970":0 - -mbedtls_mpi_mod_sub #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f":0 - -mbedtls_mpi_mod_sub #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b":0 - -mbedtls_mpi_mod_sub #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffafb152eb6c76fe02d3b54da7dc3ad274a23fc35a4b023d9":0 - -mbedtls_mpi_mod_sub #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffda419d561d74f6b84f74499369b5b23d3599bdac685af57":0 - -mbedtls_mpi_mod_sub #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca652247691b8dbc439f79ea910f2158580e222e5159fd2355d":0 - -mbedtls_mpi_mod_sub #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859f593acde920dc759bf0bd6d12eee3d785e671940ecfeac5e":0 - -mbedtls_mpi_mod_sub #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":0 - -mbedtls_mpi_mod_sub #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc":0 - -mbedtls_mpi_mod_sub #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb":0 - -mbedtls_mpi_mod_sub #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda":0 - -mbedtls_mpi_mod_sub #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9":0 - -mbedtls_mpi_mod_sub #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5":0 - -mbedtls_mpi_mod_sub #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b2a11e5b64b5d0b87f28b55661021bcfc99d83d2c5aba643":0 - -mbedtls_mpi_mod_sub #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a":0 - -mbedtls_mpi_mod_sub #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca709ca7fbe66ca2512498c098cd553f429619c6cb2c0cdb7c7":0 - -mbedtls_mpi_mod_sub #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aad39b60b3ffc283210f9374d122cac20dde0a0de0dfa2ec8":0 - -mbedtls_mpi_mod_sub #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":0 - -mbedtls_mpi_mod_sub #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6":0 - -mbedtls_mpi_mod_sub #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5":0 - -mbedtls_mpi_mod_sub #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4":0 - -mbedtls_mpi_mod_sub #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3":0 - -mbedtls_mpi_mod_sub #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f":0 - -mbedtls_mpi_mod_sub #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c":0 - -mbedtls_mpi_mod_sub #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64":0 - -mbedtls_mpi_mod_sub #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa":0 - -mbedtls_mpi_mod_sub #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -mbedtls_mpi_mod_sub #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"458d3cfad8173fd6d21ec05b22fddbac49aa054bc17cb7cf8ee107d3e842f544693636bc8afd8f386ddb293afb0734f81f4e05ad445a2b9a2796e3a86f303f0428ce4aee4891d58d1989cdb845e6ee4eb4e3577671d4fe954f6123a7ec3d152d5c410eda15668bb458b9594ee8f7b3639e51d2d556b281c3cf1757a334ada8c2":0 - -mbedtls_mpi_mod_sub #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":0 - -mbedtls_mpi_mod_sub #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5":0 - -mbedtls_mpi_mod_sub #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4":0 - -mbedtls_mpi_mod_sub #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3":0 - -mbedtls_mpi_mod_sub #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2":0 - -mbedtls_mpi_mod_sub #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e":0 - -mbedtls_mpi_mod_sub #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b":0 - -mbedtls_mpi_mod_sub #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563":0 - -mbedtls_mpi_mod_sub #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9":0 - -mbedtls_mpi_mod_sub #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff":0 - -mbedtls_mpi_mod_sub #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_sub:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":0 - -# End of automatically generated file. diff --git a/tests/suites/test_suite_bignum_mod_raw.generated.data b/tests/suites/test_suite_bignum_mod_raw.generated.data deleted file mode 100644 index f93093d37..000000000 --- a/tests/suites/test_suite_bignum_mod_raw.generated.data +++ /dev/null @@ -1,3573 +0,0 @@ -# Automatically generated by generate_bignum_tests.py. Do not edit! - -mbedtls_mpi_mod_raw_add #1 0 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000000":"0000000000000000" - -mbedtls_mpi_mod_raw_add #2 0 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000001":"0000000000000001" - -mbedtls_mpi_mod_raw_add #3 0 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000002":"0000000000000002" - -mbedtls_mpi_mod_raw_add #4 0 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000003":"0000000000000003" - -mbedtls_mpi_mod_raw_add #5 0 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000004":"0000000000000004" - -mbedtls_mpi_mod_raw_add #6 0 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000000":"0000000000000038":"0000000000000038" - -mbedtls_mpi_mod_raw_add #14 1 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000000":"0000000000000001" - -mbedtls_mpi_mod_raw_add #15 1 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000001":"0000000000000002" - -mbedtls_mpi_mod_raw_add #16 1 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000002":"0000000000000003" - -mbedtls_mpi_mod_raw_add #17 1 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000003":"0000000000000004" - -mbedtls_mpi_mod_raw_add #18 1 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000004":"0000000000000005" - -mbedtls_mpi_mod_raw_add #19 1 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000001":"0000000000000038":"0000000000000039" - -mbedtls_mpi_mod_raw_add #27 2 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000000":"0000000000000002" - -mbedtls_mpi_mod_raw_add #28 2 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000001":"0000000000000003" - -mbedtls_mpi_mod_raw_add #29 2 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000002":"0000000000000004" - -mbedtls_mpi_mod_raw_add #30 2 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000003":"0000000000000005" - -mbedtls_mpi_mod_raw_add #31 2 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000004":"0000000000000006" - -mbedtls_mpi_mod_raw_add #32 2 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000002":"0000000000000038":"000000000000003a" - -mbedtls_mpi_mod_raw_add #40 3 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000000":"0000000000000003" - -mbedtls_mpi_mod_raw_add #41 3 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000001":"0000000000000004" - -mbedtls_mpi_mod_raw_add #42 3 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000002":"0000000000000005" - -mbedtls_mpi_mod_raw_add #43 3 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000003":"0000000000000006" - -mbedtls_mpi_mod_raw_add #44 3 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000004":"0000000000000007" - -mbedtls_mpi_mod_raw_add #45 3 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000003":"0000000000000038":"000000000000003b" - -mbedtls_mpi_mod_raw_add #53 4 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000000":"0000000000000004" - -mbedtls_mpi_mod_raw_add #54 4 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000001":"0000000000000005" - -mbedtls_mpi_mod_raw_add #55 4 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000002":"0000000000000006" - -mbedtls_mpi_mod_raw_add #56 4 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000003":"0000000000000007" - -mbedtls_mpi_mod_raw_add #57 4 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000004":"0000000000000008" - -mbedtls_mpi_mod_raw_add #58 4 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000004":"0000000000000038":"000000000000003c" - -mbedtls_mpi_mod_raw_add #66 38 + 0 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000000":"0000000000000038" - -mbedtls_mpi_mod_raw_add #67 38 + 1 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000001":"0000000000000039" - -mbedtls_mpi_mod_raw_add #68 38 + 2 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000002":"000000000000003a" - -mbedtls_mpi_mod_raw_add #69 38 + 3 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000003":"000000000000003b" - -mbedtls_mpi_mod_raw_add #70 38 + 4 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000004":"000000000000003c" - -mbedtls_mpi_mod_raw_add #71 38 + 38 mod 53 -mpi_mod_raw_add:"0000000000000053":"0000000000000038":"0000000000000038":"000000000000001d" - -mbedtls_mpi_mod_raw_add #170 0 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000000":"0000000000000000" - -mbedtls_mpi_mod_raw_add #171 0 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000001":"0000000000000001" - -mbedtls_mpi_mod_raw_add #172 0 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000002":"0000000000000002" - -mbedtls_mpi_mod_raw_add #173 0 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000003":"0000000000000003" - -mbedtls_mpi_mod_raw_add #174 0 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000004":"0000000000000004" - -mbedtls_mpi_mod_raw_add #175 0 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000000":"0000000000000038":"0000000000000038" - -mbedtls_mpi_mod_raw_add #183 1 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000000":"0000000000000001" - -mbedtls_mpi_mod_raw_add #184 1 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000001":"0000000000000002" - -mbedtls_mpi_mod_raw_add #185 1 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000002":"0000000000000003" - -mbedtls_mpi_mod_raw_add #186 1 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000003":"0000000000000004" - -mbedtls_mpi_mod_raw_add #187 1 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000004":"0000000000000005" - -mbedtls_mpi_mod_raw_add #188 1 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000001":"0000000000000038":"0000000000000039" - -mbedtls_mpi_mod_raw_add #196 2 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000000":"0000000000000002" - -mbedtls_mpi_mod_raw_add #197 2 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000001":"0000000000000003" - -mbedtls_mpi_mod_raw_add #198 2 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000002":"0000000000000004" - -mbedtls_mpi_mod_raw_add #199 2 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000003":"0000000000000005" - -mbedtls_mpi_mod_raw_add #200 2 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000004":"0000000000000006" - -mbedtls_mpi_mod_raw_add #201 2 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000002":"0000000000000038":"000000000000003a" - -mbedtls_mpi_mod_raw_add #209 3 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000000":"0000000000000003" - -mbedtls_mpi_mod_raw_add #210 3 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000001":"0000000000000004" - -mbedtls_mpi_mod_raw_add #211 3 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000002":"0000000000000005" - -mbedtls_mpi_mod_raw_add #212 3 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000003":"0000000000000006" - -mbedtls_mpi_mod_raw_add #213 3 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000004":"0000000000000007" - -mbedtls_mpi_mod_raw_add #214 3 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000003":"0000000000000038":"000000000000003b" - -mbedtls_mpi_mod_raw_add #222 4 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000000":"0000000000000004" - -mbedtls_mpi_mod_raw_add #223 4 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000001":"0000000000000005" - -mbedtls_mpi_mod_raw_add #224 4 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000002":"0000000000000006" - -mbedtls_mpi_mod_raw_add #225 4 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000003":"0000000000000007" - -mbedtls_mpi_mod_raw_add #226 4 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000004":"0000000000000008" - -mbedtls_mpi_mod_raw_add #227 4 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000004":"0000000000000038":"000000000000003c" - -mbedtls_mpi_mod_raw_add #235 38 + 0 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000000":"0000000000000038" - -mbedtls_mpi_mod_raw_add #236 38 + 1 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000001":"0000000000000039" - -mbedtls_mpi_mod_raw_add #237 38 + 2 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000002":"000000000000003a" - -mbedtls_mpi_mod_raw_add #238 38 + 3 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000003":"000000000000003b" - -mbedtls_mpi_mod_raw_add #239 38 + 4 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000004":"000000000000003c" - -mbedtls_mpi_mod_raw_add #240 38 + 38 mod 45 -mpi_mod_raw_add:"0000000000000045":"0000000000000038":"0000000000000038":"000000000000002b" - -mbedtls_mpi_mod_raw_add #339 0 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_add #340 0 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #341 0 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #342 0 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #343 0 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #344 0 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #346 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #347 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #352 1 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #353 1 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #354 1 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #355 1 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #356 1 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #357 1 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #359 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #360 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #365 2 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #366 2 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #367 2 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #368 2 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #369 2 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #370 2 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #372 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #373 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #378 3 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #379 3 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #380 3 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #381 3 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #382 3 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #383 3 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #385 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #386 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #391 4 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #392 4 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #393 4 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #394 4 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #395 4 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000008" - -mbedtls_mpi_mod_raw_add #396 4 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #398 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #399 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #404 38 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #405 38 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #406 38 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"00000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #407 38 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"00000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #408 38 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"00000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #409 38 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000070" - -mbedtls_mpi_mod_raw_add #411 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #412 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" - -mbedtls_mpi_mod_raw_add #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c9152c636a4714819fc00a39cd247f53bf1bf4d2e91df5" - -mbedtls_mpi_mod_raw_add #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c9152c636a4714819fc00a39cd247f53bf1bf4d2e91df5" - -mbedtls_mpi_mod_raw_add #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_add:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cc6f1e591158a7ecd38d20861d0b9327d338a391f3e4a05f" - -mbedtls_mpi_mod_raw_add #508 0 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_add #509 0 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #510 0 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #511 0 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #512 0 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #513 0 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #514 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #515 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #516 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #521 1 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #522 1 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #523 1 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #524 1 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #525 1 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #526 1 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #527 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #528 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #529 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #534 2 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #535 2 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #536 2 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #537 2 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #538 2 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #539 2 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #540 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #541 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #542 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #547 3 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #548 3 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #549 3 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #550 3 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #551 3 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #552 3 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #553 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #554 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #555 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #560 4 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #561 4 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #562 4 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #563 4 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #564 4 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000008" - -mbedtls_mpi_mod_raw_add #565 4 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"00000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #566 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #567 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #568 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #573 38 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #574 38 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #575 38 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"00000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #576 38 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"00000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #577 38 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"00000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #578 38 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000070" - -mbedtls_mpi_mod_raw_add #579 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #580 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #581 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a394bd17a665068557a3d99188ac14f1c221e143d3c812e5" - -mbedtls_mpi_mod_raw_add #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"a0ebb870fb5526f9ffe7e9d2cfd466f538ec419eb1f28767" - -mbedtls_mpi_mod_raw_add #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"2ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" - -mbedtls_mpi_mod_raw_add #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"a0ebb870fb5526f9ffe7e9d2cfd466f538ec419eb1f28767" - -mbedtls_mpi_mod_raw_add #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_add:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"9e42b3ca5045476ea82bfa1416fcb8f8afb6a1f9901cfbe9" - -mbedtls_mpi_mod_raw_add #677 0 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_add #678 0 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #679 0 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #680 0 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #681 0 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #682 0 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #683 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #684 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #685 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #687 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_add #688 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_add #690 1 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #691 1 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #692 1 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #693 1 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #694 1 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #695 1 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #696 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #697 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #698 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #700 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" - -mbedtls_mpi_mod_raw_add #701 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" - -mbedtls_mpi_mod_raw_add #703 2 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #704 2 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #705 2 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #706 2 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #707 2 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #708 2 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #709 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #710 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #711 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #713 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" - -mbedtls_mpi_mod_raw_add #714 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" - -mbedtls_mpi_mod_raw_add #716 3 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #717 3 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #718 3 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #719 3 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #720 3 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #721 3 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #722 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #723 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #724 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #726 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" - -mbedtls_mpi_mod_raw_add #727 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" - -mbedtls_mpi_mod_raw_add #729 4 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #730 4 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #731 4 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #732 4 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #733 4 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008" - -mbedtls_mpi_mod_raw_add #734 4 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #735 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #736 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #737 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #739 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" - -mbedtls_mpi_mod_raw_add #740 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" - -mbedtls_mpi_mod_raw_add #742 38 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #743 38 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #744 38 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #745 38 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #746 38 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #747 38 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070" - -mbedtls_mpi_mod_raw_add #748 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #749 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #750 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #752 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" - -mbedtls_mpi_mod_raw_add #753 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" - -mbedtls_mpi_mod_raw_add #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6" - -mbedtls_mpi_mod_raw_add #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" - -mbedtls_mpi_mod_raw_add #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" - -mbedtls_mpi_mod_raw_add #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" - -mbedtls_mpi_mod_raw_add #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" - -mbedtls_mpi_mod_raw_add #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" - -mbedtls_mpi_mod_raw_add #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" - -mbedtls_mpi_mod_raw_add #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" - -mbedtls_mpi_mod_raw_add #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e3045ff78d10ef056922089abc68248b8dc866e2b7457ba" - -mbedtls_mpi_mod_raw_add #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" - -mbedtls_mpi_mod_raw_add #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" - -mbedtls_mpi_mod_raw_add #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_add #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" - -mbedtls_mpi_mod_raw_add #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" - -mbedtls_mpi_mod_raw_add #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" - -mbedtls_mpi_mod_raw_add #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" - -mbedtls_mpi_mod_raw_add #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" - -mbedtls_mpi_mod_raw_add #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" - -mbedtls_mpi_mod_raw_add #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" - -mbedtls_mpi_mod_raw_add #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" - -mbedtls_mpi_mod_raw_add #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae" - -mbedtls_mpi_mod_raw_add #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" - -mbedtls_mpi_mod_raw_add #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_add #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" - -mbedtls_mpi_mod_raw_add #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" - -mbedtls_mpi_mod_raw_add #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" - -mbedtls_mpi_mod_raw_add #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" - -mbedtls_mpi_mod_raw_add #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" - -mbedtls_mpi_mod_raw_add #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" - -mbedtls_mpi_mod_raw_add #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" - -mbedtls_mpi_mod_raw_add #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" - -mbedtls_mpi_mod_raw_add #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" - -mbedtls_mpi_mod_raw_add #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_add:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac" - -mbedtls_mpi_mod_raw_add #846 0 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_add #847 0 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #848 0 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #849 0 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #850 0 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #851 0 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #852 0 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #853 0 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #854 0 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #856 0 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_add #857 0 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_add #859 1 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_add #860 1 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #861 1 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #862 1 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #863 1 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #864 1 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #865 1 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #866 1 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #867 1 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #869 1 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" - -mbedtls_mpi_mod_raw_add #870 1 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" - -mbedtls_mpi_mod_raw_add #872 2 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_add #873 2 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #874 2 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #875 2 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #876 2 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #877 2 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #878 2 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #879 2 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #880 2 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #882 2 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" - -mbedtls_mpi_mod_raw_add #883 2 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" - -mbedtls_mpi_mod_raw_add #885 3 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_add #886 3 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #887 3 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #888 3 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #889 3 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #890 3 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #891 3 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #892 3 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #893 3 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #895 3 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" - -mbedtls_mpi_mod_raw_add #896 3 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" - -mbedtls_mpi_mod_raw_add #898 4 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_add #899 4 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005" - -mbedtls_mpi_mod_raw_add #900 4 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006" - -mbedtls_mpi_mod_raw_add #901 4 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007" - -mbedtls_mpi_mod_raw_add #902 4 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008" - -mbedtls_mpi_mod_raw_add #903 4 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #904 4 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #905 4 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #906 4 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #908 4 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" - -mbedtls_mpi_mod_raw_add #909 4 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" - -mbedtls_mpi_mod_raw_add #911 38 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_add #912 38 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000039" - -mbedtls_mpi_mod_raw_add #913 38 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a" - -mbedtls_mpi_mod_raw_add #914 38 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b" - -mbedtls_mpi_mod_raw_add #915 38 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c" - -mbedtls_mpi_mod_raw_add #916 38 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070" - -mbedtls_mpi_mod_raw_add #917 38 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #918 38 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #919 38 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #921 38 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" - -mbedtls_mpi_mod_raw_add #922 38 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" - -mbedtls_mpi_mod_raw_add #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_add #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75c" - -mbedtls_mpi_mod_raw_add #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75d" - -mbedtls_mpi_mod_raw_add #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75e" - -mbedtls_mpi_mod_raw_add #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75f" - -mbedtls_mpi_mod_raw_add #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb793" - -mbedtls_mpi_mod_raw_add #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a3824f4ccef0ce07060a00071d75de41cb47c5b86f1f6eb6" - -mbedtls_mpi_mod_raw_add #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" - -mbedtls_mpi_mod_raw_add #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" - -mbedtls_mpi_mod_raw_add #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" - -mbedtls_mpi_mod_raw_add #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_add #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea974" - -mbedtls_mpi_mod_raw_add #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea975" - -mbedtls_mpi_mod_raw_add #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea976" - -mbedtls_mpi_mod_raw_add #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea977" - -mbedtls_mpi_mod_raw_add #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea9ab" - -mbedtls_mpi_mod_raw_add #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e933417975f28da35c60afcc815fc19cc2989e762c4e60ce" - -mbedtls_mpi_mod_raw_add #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ee433a61cf44d3fb2b75f91e549a4f7b9e97733e97d52e6" - -mbedtls_mpi_mod_raw_add #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" - -mbedtls_mpi_mod_raw_add #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" - -mbedtls_mpi_mod_raw_add #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_add #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bde" - -mbedtls_mpi_mod_raw_add #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdf" - -mbedtls_mpi_mod_raw_add #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be0" - -mbedtls_mpi_mod_raw_add #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2be1" - -mbedtls_mpi_mod_raw_add #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2c15" - -mbedtls_mpi_mod_raw_add #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001a0d94aa623e0ee7bae4e1048649e3045421226134d49e338" - -mbedtls_mpi_mod_raw_add #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e68a3cd2cae2ae1804a4c00dc88813a03962fed10a78d550" - -mbedtls_mpi_mod_raw_add #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019e3045ff78d10ef056922089abc68248b8dc866e2b7457ba" - -mbedtls_mpi_mod_raw_add #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" - -mbedtls_mpi_mod_raw_add #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" - -mbedtls_mpi_mod_raw_add #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_add #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d8" - -mbedtls_mpi_mod_raw_add #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d9" - -mbedtls_mpi_mod_raw_add #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5da" - -mbedtls_mpi_mod_raw_add #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5db" - -mbedtls_mpi_mod_raw_add #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da60f" - -mbedtls_mpi_mod_raw_add #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b4c58ede9ccdc79ad3ba6abd0a92405e83348dcd873fd5d32" - -mbedtls_mpi_mod_raw_add #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a9209e01673de394991fd5b960d0de9432a99b596312c4f4a" - -mbedtls_mpi_mod_raw_add #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435b49afe94321cc9a21e3eabc11f04c57ebaa133d335227d1b4" - -mbedtls_mpi_mod_raw_add #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0d20a4d3dade1613e2cb919c6dc5e49686001bc0365da81da75bb99658677c158f3acf268da958f4b872056712c7b8dd0a69e8ae71a091d81e21338d87c364b1fae488a599d4e3fe94290ed5d5fe3413194b32cccd9d566c0a257a26220e44622e219ea64f5886b4f52f8c86cac825537143579a34d22d8e9b49f3f878db4bae" - -mbedtls_mpi_mod_raw_add #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" - -mbedtls_mpi_mod_raw_add #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_add #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed7" - -mbedtls_mpi_mod_raw_add #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed8" - -mbedtls_mpi_mod_raw_add #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed9" - -mbedtls_mpi_mod_raw_add #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412eda" - -mbedtls_mpi_mod_raw_add #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412f0e" - -mbedtls_mpi_mod_raw_add #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a8e9b79cf3aa768d74397e106c4b4df0b704a8ad26d0e631" - -mbedtls_mpi_mod_raw_add #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6ee9aa9c99aac3629ca902dd5d035314bae55816ae3ffd849" - -mbedtls_mpi_mod_raw_add #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a7a640b2f6489a97021c7d8e51b3739ff42dcf090804fb5ab3" - -mbedtls_mpi_mod_raw_add #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1b51aefaf880b832bd87975706e8ff108578d041694a9f470f62823b55800cae3b2a8bcdb52d8244a600b84f22b6306bf1ae9835a2c8a71d410452ea4606637bc156ece5a603dcd999e42ceeccdea503411a614ef9554cab4fcf6d7df9b2db7018e9695574892b0151c05639f1962233a9d629d9f7f975971f05bfcd2baed4ad" - -mbedtls_mpi_mod_raw_add #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 + 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_add:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"2982b92216235a5198439d11a00c198a84f184c29c37967077694ae052989d46e71a4874dcb1ab94938f6b3732a4a7fad8f347bcd3f0bc6263e772470449624587c95125b232d5b49f9f4b07c3bf15f368e98fd1250d42ea957960d5d157727e03b1340499b9cf4dae511fed18641f13e268fc19bb20bd9fa2c18ba1de825dac" - -Convert from Mont: #1 1/R * 0 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000000":"00000000" - -Convert from Mont: #2 1/R * 0 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000000":"0000000000000000" - -Convert from Mont: #3 1/R * 1 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000001":"00000045" - -Convert from Mont: #4 1/R * 1 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000001":"000000000000001e" - -Convert from Mont: #5 1/R * 2 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000002":"00000037" - -Convert from Mont: #6 1/R * 2 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000002":"000000000000003c" - -Convert from Mont: #7 1/R * 3 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000003":"00000029" - -Convert from Mont: #8 1/R * 3 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000003":"0000000000000007" - -Convert from Mont: #9 1/R * 4 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000004":"0000001b" - -Convert from Mont: #10 1/R * 4 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000004":"0000000000000025" - -Convert from Mont: #11 1/R * 38 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000053":"00000038":"0000002e" - -Convert from Mont: #12 1/R * 38 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000053":"0000000000000038":"0000000000000014" - -Convert from Mont: #27 1/R * 0 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000000":"00000000" - -Convert from Mont: #28 1/R * 0 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000000":"0000000000000000" - -Convert from Mont: #29 1/R * 1 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000001":"00000019" - -Convert from Mont: #30 1/R * 1 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000001":"0000000000000004" - -Convert from Mont: #31 1/R * 2 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000002":"00000032" - -Convert from Mont: #32 1/R * 2 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000002":"0000000000000008" - -Convert from Mont: #33 1/R * 3 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000003":"00000006" - -Convert from Mont: #34 1/R * 3 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000003":"000000000000000c" - -Convert from Mont: #35 1/R * 4 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000004":"0000001f" - -Convert from Mont: #36 1/R * 4 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000004":"0000000000000010" - -Convert from Mont: #37 1/R * 38 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"00000045":"00000038":"00000014" - -Convert from Mont: #38 1/R * 38 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"0000000000000045":"0000000000000038":"0000000000000011" - -Convert from Mont: #53 1/R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert from Mont: #54 1/R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert from Mont: #55 1/R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"74b9f8778bfd86cdb816735b3a84c8af74b73b46e10bf405" - -Convert from Mont: #56 1/R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"74b9f8778bfd86cdb816735b3a84c8af74b73b46e10bf405" - -Convert from Mont: #57 1/R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"17b2c948b082a697ed27e6b2e64ea23e03ca93b18a8830af" - -Convert from Mont: #58 1/R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"17b2c948b082a697ed27e6b2e64ea23e03ca93b18a8830af" - -Convert from Mont: #59 1/R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8c6cc1c03c802d65a53e5a0e20d36aed7881cef86b9424b4" - -Convert from Mont: #60 1/R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8c6cc1c03c802d65a53e5a0e20d36aed7881cef86b9424b4" - -Convert from Mont: #61 1/R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"2f65929161054d2fda4fcd65cc9d447c079527631510615e" - -Convert from Mont: #62 1/R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"2f65929161054d2fda4fcd65cc9d447c079527631510615e" - -Convert from Mont: #63 1/R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"224a8d0017e10393674e3b868468f165b93c7ed680362d13" - -Convert from Mont: #64 1/R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"224a8d0017e10393674e3b868468f165b93c7ed680362d13" - -Convert from Mont: #67 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"490b20310ad73f8db9cc45047034439bffb7e576fd83f88e" - -Convert from Mont: #68 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"490b20310ad73f8db9cc45047034439bffb7e576fd83f88e" - -Convert from Mont: #69 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bfca7b942a311c6b9858f5b6370861aa783df7bca65b201" - -Convert from Mont: #70 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bfca7b942a311c6b9858f5b6370861aa783df7bca65b201" - -Convert from Mont: #79 1/R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert from Mont: #80 1/R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert from Mont: #81 1/R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"f324f15486ec1faa24c20a130639f7b010a1784f71b2ec81" - -Convert from Mont: #82 1/R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"f324f15486ec1faa24c20a130639f7b010a1784f71b2ec81" - -Convert from Mont: #83 1/R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"e65c5073e54c77d29b1dedb077aa2610181d0c2a480e7d31" - -Convert from Mont: #84 1/R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"e65c5073e54c77d29b1dedb077aa2610181d0c2a480e7d31" - -Convert from Mont: #85 1/R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d993af9343accffb1179d14de91a54701f98a0051e6a0de1" - -Convert from Mont: #86 1/R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"d993af9343accffb1179d14de91a54701f98a0051e6a0de1" - -Convert from Mont: #87 1/R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cccb0eb2a20d282387d5b4eb5a8a82d0271433dff4c59e91" - -Convert from Mont: #88 1/R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"cccb0eb2a20d282387d5b4eb5a8a82d0271433dff4c59e91" - -Convert from Mont: #89 1/R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"33e5857c1eb69f5eef4c3dd18ee780f1be7a053cb60db9f3" - -Convert from Mont: #90 1/R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"33e5857c1eb69f5eef4c3dd18ee780f1be7a053cb60db9f3" - -Convert from Mont: #91 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"508fbacd73aaf535ac8ae1a9daf130c4603db82fe3409ca0" - -Convert from Mont: #92 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"508fbacd73aaf535ac8ae1a9daf130c4603db82fe3409ca0" - -Convert from Mont: #93 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d865c9c12edbbcaf84036900ad55158e4638ae314075919" - -Convert from Mont: #94 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4d865c9c12edbbcaf84036900ad55158e4638ae314075919" - -Convert from Mont: #95 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"55969118b345e4f8650c5a0d8a3f2769e51d4045bd79ebce" - -Convert from Mont: #96 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"55969118b345e4f8650c5a0d8a3f2769e51d4045bd79ebce" - -Convert from Mont: #105 1/R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert from Mont: #106 1/R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert from Mont: #107 1/R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a125ade065ea1d11748f4adbaf2ed28145218bdc0dc6f08211d6d154f847ee3d7ec56f2768acd3365ad375a0b19f9798f84ae6b133de1274e574ca6a0ec5ad18af852d84cb2b132748dddcd68c62e49d1df06c98a289576b012b5f939614fb0c747786ebfba55b96c2008d140abf034585100f59777f5a3595918325d1fe830e" - -Convert from Mont: #108 1/R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"a125ade065ea1d11748f4adbaf2ed28145218bdc0dc6f08211d6d154f847ee3d7ec56f2768acd3365ad375a0b19f9798f84ae6b133de1274e574ca6a0ec5ad18af852d84cb2b132748dddcd68c62e49d1df06c98a289576b012b5f939614fb0c747786ebfba55b96c2008d140abf034585100f59777f5a3595918325d1fe830e" - -Convert from Mont: #109 1/R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"790fb3d456facae1cd7e8cf9a6cf41037887b9c3b13bff98f7108d3a6241c3cf07aa8b83cf65295f9c8143c202a619ba0f6cd1f314c8dac235df3b8872ae1cb1075e6fe7696259a52ee0a30121269e5fe00e3e7e50006a16d8f7bf87c17e54e8b9f2c93ce4becfce9937156bd963f12df84ed0270bd487e8a36f6cdead4fb3f9" - -Convert from Mont: #110 1/R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"790fb3d456facae1cd7e8cf9a6cf41037887b9c3b13bff98f7108d3a6241c3cf07aa8b83cf65295f9c8143c202a619ba0f6cd1f314c8dac235df3b8872ae1cb1075e6fe7696259a52ee0a30121269e5fe00e3e7e50006a16d8f7bf87c17e54e8b9f2c93ce4becfce9937156bd963f12df84ed0270bd487e8a36f6cdead4fb3f9" - -Convert from Mont: #111 1/R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"50f9b9c8480b78b2266dcf179e6faf85abede7ab54b10eafdc4a491fcc3b9960908fa7e0361d7f88de2f11e353ac9bdb268ebd34f5b3a30f8649aca6d6968c495f37b24a0799a02314e3692bb5ea5822a22c1063fd777cc2b0c41f7bece7aec4ff6e0b8dcdd84406706d9dc3a808df166b8d90f4a029b59bb14d569788a0e4e4" - -Convert from Mont: #112 1/R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"50f9b9c8480b78b2266dcf179e6faf85abede7ab54b10eafdc4a491fcc3b9960908fa7e0361d7f88de2f11e353ac9bdb268ebd34f5b3a30f8649aca6d6968c495f37b24a0799a02314e3692bb5ea5822a22c1063fd777cc2b0c41f7bece7aec4ff6e0b8dcdd84406706d9dc3a808df166b8d90f4a029b59bb14d569788a0e4e4" - -Convert from Mont: #113 1/R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"28e3bfbc391c26827f5d113596101e07df541592f8261dc6c184050536356ef21974c43c9cd5d5b21fdce004a4b31dfc3db0a876d69e6b5cd6b41dc53a7efbe1b710f4aca5d0e6a0fae62f564aae11e56449e249aaee8f6e88907f70185108a144e94ddeb6f1b83e47a4261b76adccfedecc51c2347ee34ebf2b405063f215cf" - -Convert from Mont: #114 1/R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"28e3bfbc391c26827f5d113596101e07df541592f8261dc6c184050536356ef21974c43c9cd5d5b21fdce004a4b31dfc3db0a876d69e6b5cd6b41dc53a7efbe1b710f4aca5d0e6a0fae62f564aae11e56449e249aaee8f6e88907f70185108a144e94ddeb6f1b83e47a4261b76adccfedecc51c2347ee34ebf2b405063f215cf" - -Convert from Mont: #115 1/R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"a9fd2c7235d73ca0bfd6df72c5c4dc7013227220bd71de083bfe1b69da4fdfe578a215ba8fc8b5a38bc8f142409978db9d573fa116c34ac493c4ee31dd374b5753958b2cb785037af2e069602646a4d6c4652aa16ee74e8d2528f8e27f17367166c9b8f7dc2044aa15660c08054d0b360b89db87189c154964f6518b89e28d0c" - -Convert from Mont: #116 1/R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"a9fd2c7235d73ca0bfd6df72c5c4dc7013227220bd71de083bfe1b69da4fdfe578a215ba8fc8b5a38bc8f142409978db9d573fa116c34ac493c4ee31dd374b5753958b2cb785037af2e069602646a4d6c4652aa16ee74e8d2528f8e27f17367166c9b8f7dc2044aa15660c08054d0b360b89db87189c154964f6518b89e28d0c" - -Convert from Mont: #117 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"19fb3cd36a3e14902ae08648ecea45e81a5812009ec340eeaac6c204d6b18090cb21f24b8bd0c48437fe8febee920565444107ebebe844c5927c6c136be278072d5dd3c2d3099e57ae19b1e4e63dc9a0d22fbfc039634569397291464dd0194d0e8c3c153ca72e48466bd60c525aeee67e8b601b8bcab51ad8a31c6d279cd6db" - -Convert from Mont: #118 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"19fb3cd36a3e14902ae08648ecea45e81a5812009ec340eeaac6c204d6b18090cb21f24b8bd0c48437fe8febee920565444107ebebe844c5927c6c136be278072d5dd3c2d3099e57ae19b1e4e63dc9a0d22fbfc039634569397291464dd0194d0e8c3c153ca72e48466bd60c525aeee67e8b601b8bcab51ad8a31c6d279cd6db" - -Convert from Mont: #119 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"8b43c39ddfc4cbb4e7786dc3ca067f0df6ec11a8ed353c4834c100669a646ff1e86be025ce5395237321bc5f0b2f6e6094da34605abd0f6be4ffd23f5487b168bccb0afc51237bee701f731edf26aed6686635d3aa45b7fb22b1bdbc8889db3a7bee86961e5431c93a7897e57297c3de5212c453d8c3fcd7aed10b38fb1f82ee" - -Convert from Mont: #120 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"8b43c39ddfc4cbb4e7786dc3ca067f0df6ec11a8ed353c4834c100669a646ff1e86be025ce5395237321bc5f0b2f6e6094da34605abd0f6be4ffd23f5487b168bccb0afc51237bee701f731edf26aed6686635d3aa45b7fb22b1bdbc8889db3a7bee86961e5431c93a7897e57297c3de5212c453d8c3fcd7aed10b38fb1f82ee" - -Convert from Mont: #121 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"88b69991382e83cffb6f75ee66d8879f1033e185da7e8a434666228d5912f4de086fd99cec9776740b9f4d38b6d72ce5e6a76ea7360ef06d9348657cbf1b33b19aa7612a1936be1b09bbc88f0fc22a6d0cfda55c5d46d54aea1217586d423a52bbe37729c0edf977fea30c1312e53c3a03e0d68dcf5188ce0266d02d1f9c99d5" - -Convert from Mont: #122 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"88b69991382e83cffb6f75ee66d8879f1033e185da7e8a434666228d5912f4de086fd99cec9776740b9f4d38b6d72ce5e6a76ea7360ef06d9348657cbf1b33b19aa7612a1936be1b09bbc88f0fc22a6d0cfda55c5d46d54aea1217586d423a52bbe37729c0edf977fea30c1312e53c3a03e0d68dcf5188ce0266d02d1f9c99d5" - -Convert from Mont: #125 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a22a06d2f36b6fad3706949217f48a810682f5420f162b1753b3d1f5c68028b24919b5b4a1ec0aa44793d4500e17378249c6d693c1779a1dbbe530325a6a5efd87e46cf6f3cc619b150ba97e9d651fc8ff07f0855da495cefd2ac346c7af4528409700949affeb4035dcdbdb54db88facdb7494a40392374b07b02943996364b" - -Convert from Mont: #126 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"a22a06d2f36b6fad3706949217f48a810682f5420f162b1753b3d1f5c68028b24919b5b4a1ec0aa44793d4500e17378249c6d693c1779a1dbbe530325a6a5efd87e46cf6f3cc619b150ba97e9d651fc8ff07f0855da495cefd2ac346c7af4528409700949affeb4035dcdbdb54db88facdb7494a40392374b07b02943996364b" - -Convert from Mont: #127 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"8823b7ed9dee843595b1533326542beeeabf3cb8421885c48a72dace520c01eee7cb00f5173412e59bd22648d28a10bffcd686d8ad53d2eb49453bee2f265976d15d52c239c010dab5712d1a58865730769f9c42ab7c446ce3cc1716c20803164892c9f578e8858611224612cbf8bd14b014644ed76b5727ef7af5e20ef64d90" - -Convert from Mont: #128 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"8823b7ed9dee843595b1533326542beeeabf3cb8421885c48a72dace520c01eee7cb00f5173412e59bd22648d28a10bffcd686d8ad53d2eb49453bee2f265976d15d52c239c010dab5712d1a58865730769f9c42ab7c446ce3cc1716c20803164892c9f578e8858611224612cbf8bd14b014644ed76b5727ef7af5e20ef64d90" - -Convert from Mont: #131 1/R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert from Mont: #132 1/R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert from Mont: #133 1/R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4ba22b21e3b26d2c917185cf67909676e4386e4c5223df4d599df0bab67270a4ded4e3234f06c584027346324c1c222b33be22a4c6d2bffadeb05adb5d7bff73e11e536ccd4e03911faf079326994d7cc69adfc5446a3a3a4f63a6ad959fef3c660aac5f74e74aa51ac5959f9af4fc55fe5f68f797a0d7b44c70087ac3cd130d" - -Convert from Mont: #134 1/R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"4ba22b21e3b26d2c917185cf67909676e4386e4c5223df4d599df0bab67270a4ded4e3234f06c584027346324c1c222b33be22a4c6d2bffadeb05adb5d7bff73e11e536ccd4e03911faf079326994d7cc69adfc5446a3a3a4f63a6ad959fef3c660aac5f74e74aa51ac5959f9af4fc55fe5f68f797a0d7b44c70087ac3cd130d" - -Convert from Mont: #135 1/R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"43860f21d1aaf86376084589130036c77f4e22cbafde0fa1bc5410fc87895b6ca883d2e2eb8bd27fa97cb0418d4297cf60e9901518233f1672e6b2b18d84c119d2fbf7ab45db38ba20192355106b3bbab0833991eb477fa009bc365b675e323d850c7f35af3765498041083d2624486825da2cda1567e59c460ced7da018f459" - -Convert from Mont: #136 1/R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"43860f21d1aaf86376084589130036c77f4e22cbafde0fa1bc5410fc87895b6ca883d2e2eb8bd27fa97cb0418d4297cf60e9901518233f1672e6b2b18d84c119d2fbf7ab45db38ba20192355106b3bbab0833991eb477fa009bc365b675e323d850c7f35af3765498041083d2624486825da2cda1567e59c460ced7da018f459" - -Convert from Mont: #137 1/R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3b69f321bfa3839a5a9f0542be6fd7181a63d74b0d983ff61f0a313e58a046347232c2a28810df7b50861a50ce690d738e14fd856973be32071d0a87bd8d82bfc4d99be9be686de320833f16fa3d29f89a6b935e9224c505c414c609391c753ea40e520be9877fede5bc7adab153947a4d54f0bc932ef3843fa9d2807c64d5a5" - -Convert from Mont: #138 1/R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"3b69f321bfa3839a5a9f0542be6fd7181a63d74b0d983ff61f0a313e58a046347232c2a28810df7b50861a50ce690d738e14fd856973be32071d0a87bd8d82bfc4d99be9be686de320833f16fa3d29f89a6b935e9224c505c414c609391c753ea40e520be9877fede5bc7adab153947a4d54f0bc932ef3843fa9d2807c64d5a5" - -Convert from Mont: #139 1/R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"334dd721ad9c0ed13f35c4fc69df7768b5798bca6b52704a81c0518029b730fc3be1b2622495ec76f78f84600f8f8317bb406af5bac43d4d9b53625ded964465b6b7402836f5a30c20ed5ad8e40f18368453ed2b39020a6b7e6d55b70adab83fc31024e223d79a924b37ed783c82e08c74cfb49f10f6016c3946b78358b0b6f1" - -Convert from Mont: #140 1/R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"334dd721ad9c0ed13f35c4fc69df7768b5798bca6b52704a81c0518029b730fc3be1b2622495ec76f78f84600f8f8317bb406af5bac43d4d9b53625ded964465b6b7402836f5a30c20ed5ad8e40f18368453ed2b39020a6b7e6d55b70adab83fc31024e223d79a924b37ed783c82e08c74cfb49f10f6016c3946b78358b0b6f1" - -Convert from Mont: #141 1/R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"304f8ac7d0b9bfc40e1a951fe930d687a38fd6aa3b34ac4b6145f13b1d287ee29d2826406c252a3eae8a5c28822bc71408f02fcc8aa953442abf48f9929dcf20840008c05b687768d2d39952929859045702c89831b4eb3c41a1f80478e8b1a2729b38142110f3fa72bde482d0fac58fac36b80a1ea5c5888b44ed6f9da07326" - -Convert from Mont: #142 1/R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"304f8ac7d0b9bfc40e1a951fe930d687a38fd6aa3b34ac4b6145f13b1d287ee29d2826406c252a3eae8a5c28822bc71408f02fcc8aa953442abf48f9929dcf20840008c05b687768d2d39952929859045702c89831b4eb3c41a1f80478e8b1a2729b38142110f3fa72bde482d0fac58fac36b80a1ea5c5888b44ed6f9da07326" - -Convert from Mont: #143 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4a1f4275af3e5dd3cae19c924e5ce65eff864b4aaf86c4d2245bc1c686f38538330a8a5f11ce066678cfb5c1fb3ae82d90b8a8d21bd710f80fe59c58b71ed303e75efe8764e3d0c55199ca575547134cf948f8bed87ad59f2a1cfc114adf7c12e78cfbc568350c1acb0d946d769fe71e2aeaff15437d0955fa547d899cda2612" - -Convert from Mont: #144 1/R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4a1f4275af3e5dd3cae19c924e5ce65eff864b4aaf86c4d2245bc1c686f38538330a8a5f11ce066678cfb5c1fb3ae82d90b8a8d21bd710f80fe59c58b71ed303e75efe8764e3d0c55199ca575547134cf948f8bed87ad59f2a1cfc114adf7c12e78cfbc568350c1acb0d946d769fe71e2aeaff15437d0955fa547d899cda2612" - -Convert from Mont: #145 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"360865ad76d277a1b71ab6df5f64741fab3f49c5498d06bee5be8e691de6f8025e961012cedd236f9850dd1b60aabc6752593656da5bf615a6c54730e6986540a64b5a93f9766f708d45f657d0c5551c072ec45c981c18bc2d33b86a8c53140cb6653b84d6faf830e92a37c403efec39b640188397666d50ad4b8f74bad3bfd3" - -Convert from Mont: #146 1/R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"360865ad76d277a1b71ab6df5f64741fab3f49c5498d06bee5be8e691de6f8025e961012cedd236f9850dd1b60aabc6752593656da5bf615a6c54730e6986540a64b5a93f9766f708d45f657d0c5551c072ec45c981c18bc2d33b86a8c53140cb6653b84d6faf830e92a37c403efec39b640188397666d50ad4b8f74bad3bfd3" - -Convert from Mont: #147 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0c8f196fb5d74dd223f72a368b7ce2e359b24503af8d877a9f62ddb18fb3559fe52b40d8c63afff8f80b32a2b151a126d36054f04d53ac62d736224d0d9ef8b281ea8e0ff047c97dd7588db6ac11f64edde5357249ffbee77ce651eb0ae11cc6a47f2279f2d8ffd3125b8134b87d4ebfcc91d802a3462ad5a3abc6f61e915f9c" - -Convert from Mont: #148 1/R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0c8f196fb5d74dd223f72a368b7ce2e359b24503af8d877a9f62ddb18fb3559fe52b40d8c63afff8f80b32a2b151a126d36054f04d53ac62d736224d0d9ef8b281ea8e0ff047c97dd7588db6ac11f64edde5357249ffbee77ce651eb0ae11cc6a47f2279f2d8ffd3125b8134b87d4ebfcc91d802a3462ad5a3abc6f61e915f9c" - -Convert from Mont: #151 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30e0290b73ca33536b1925eb21440e772431b3f98dcded08233a324aaa07b83c9b68e4bc291d545e82feb30aedcdcdbea8c84921e9c1ddaa35d9590f09c0cff3589d1588979e8207fe2c6b68e366449b3c7965fad7b4edcb2a5616b67b466aa26df1b706f2317a1a9daef0e8185136c20e12123e6e9768c0e7ed0132199bc886" - -Convert from Mont: #152 1/R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"30e0290b73ca33536b1925eb21440e772431b3f98dcded08233a324aaa07b83c9b68e4bc291d545e82feb30aedcdcdbea8c84921e9c1ddaa35d9590f09c0cff3589d1588979e8207fe2c6b68e366449b3c7965fad7b4edcb2a5616b67b466aa26df1b706f2317a1a9daef0e8185136c20e12123e6e9768c0e7ed0132199bc886" - -Convert from Mont: #153 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"429b7b0931e176211ff8c327c1bf976d9d8aa9188b9779dabfa767998a4b273de546eef41ef61b351bbdceda605de1a33856ca1015f2b44a3e55376d0174f443cda94a9541b7796fe07dbc6715d800fc8478c654fdf31a0cb65c8de2f072d669c6faac36a3697d20b6863f85b1c208c111cf4355fb1781e1a99e30782e46593a" - -Convert from Mont: #154 1/R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_from_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"429b7b0931e176211ff8c327c1bf976d9d8aa9188b9779dabfa767998a4b273de546eef41ef61b351bbdceda605de1a33856ca1015f2b44a3e55376d0174f443cda94a9541b7796fe07dbc6715d800fc8478c654fdf31a0cb65c8de2f072d669c6faac36a3697d20b6863f85b1c208c111cf4355fb1781e1a99e30782e46593a" - -Convert into Mont: #1 R * 0 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000000":"00000000" - -Convert into Mont: #2 R * 0 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000000":"0000000000000000" - -Convert into Mont: #3 R * 1 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000001":"0000004d" - -Convert into Mont: #4 R * 1 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000001":"0000000000000024" - -Convert into Mont: #5 R * 2 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000002":"00000047" - -Convert into Mont: #6 R * 2 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000002":"0000000000000048" - -Convert into Mont: #7 R * 3 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000003":"00000041" - -Convert into Mont: #8 R * 3 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000003":"0000000000000019" - -Convert into Mont: #9 R * 4 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000004":"0000003b" - -Convert into Mont: #10 R * 4 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000004":"000000000000003d" - -Convert into Mont: #11 R * 38 mod 53 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000053":"00000038":"0000004f" - -Convert into Mont: #12 R * 38 mod 53 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000053":"0000000000000038":"0000000000000018" - -Convert into Mont: #27 R * 0 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000000":"00000000" - -Convert into Mont: #28 R * 0 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000000":"0000000000000000" - -Convert into Mont: #29 R * 1 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000001":"0000003a" - -Convert into Mont: #30 R * 1 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000001":"0000000000000034" - -Convert into Mont: #31 R * 2 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000002":"0000002f" - -Convert into Mont: #32 R * 2 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000002":"0000000000000023" - -Convert into Mont: #33 R * 3 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000003":"00000024" - -Convert into Mont: #34 R * 3 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000003":"0000000000000012" - -Convert into Mont: #35 R * 4 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000004":"00000019" - -Convert into Mont: #36 R * 4 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000004":"0000000000000001" - -Convert into Mont: #37 R * 38 mod 45 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"00000045":"00000038":"00000005" - -Convert into Mont: #38 R * 38 mod 45 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"0000000000000045":"0000000000000038":"000000000000000e" - -Convert into Mont: #53 R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert into Mont: #54 R * 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert into Mont: #55 R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Convert into Mont: #56 R * 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"2e3ed859988798fc7cfafffc714510df1a5c1d23c87048a5" - -Convert into Mont: #57 R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" - -Convert into Mont: #58 R * 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"5c7db0b3310f31f8f9f5fff8e28a21be34b83a4790e0914a" - -Convert into Mont: #59 R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" - -Convert into Mont: #60 R * 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"8abc890cc996caf576f0fff553cf329d4f14576b5950d9ef" - -Convert into Mont: #61 R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" - -Convert into Mont: #62 R * 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"b8fb6166621e63f1f3ebfff1c514437c6970748f21c12294" - -Convert into Mont: #63 R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" - -Convert into Mont: #64 R * 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"48b177cc8404a31132abff0e16587b430077bd813dd34bd4" - -Convert into Mont: #67 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" - -Convert into Mont: #68 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"4620ee1a915348bc419a30c2fd6a2b0765976e168f851c78" - -Convert into Mont: #69 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" - -Convert into Mont: #70 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"6bd11fc83aab1a2bbae593004c80ccd533f67c208c5ca3b3" - -Convert into Mont: #79 R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert into Mont: #80 R * 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000" - -Convert into Mont: #81 R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Convert into Mont: #82 R * 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001":"00126dcad774387e5199d98a6b3636aff6da1b8b64a8a42f" - -Convert into Mont: #83 R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" - -Convert into Mont: #84 R * 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002":"0024db95aee870fca333b314d66c6d5fedb43716c951485e" - -Convert into Mont: #85 R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" - -Convert into Mont: #86 R * 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003":"00374960865ca97af4cd8c9f41a2a40fe48e52a22df9ec8d" - -Convert into Mont: #87 R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" - -Convert into Mont: #88 R * 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004":"0049b72b5dd0e1f946676629acd8dabfdb686e2d92a290bc" - -Convert into Mont: #89 R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" - -Convert into Mont: #90 R * 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038":"0408045f216c5ba1d9a7964773dbf67dffb6067e04e3ea48" - -Convert into Mont: #91 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" - -Convert into Mont: #92 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b6de740e9a19b158dbc8ede1778bfafdd842fa9f7aadeb78" - -Convert into Mont: #93 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" - -Convert into Mont: #94 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"972dfb114cb35ea927b6680cff7b27de8e9420998f4d388a" - -Convert into Mont: #95 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" - -Convert into Mont: #96 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"8ebaeb3bca1c9742d73e48a936cbfdbd85bd5d8086681b70" - -Convert into Mont: #105 R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert into Mont: #106 R * 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert into Mont: #107 R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Convert into Mont: #108 R * 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"36c458138b2690bee45ff74248719c00ee44a20b95ae1e94d362ea9071b1e7540a1fad34fe0b82f2e6da58809f66ea881ed70490ad0cb5d86af5a6b45522c27fa85414ddd30c33569d24e9540860d525a42d654d0aedbb40d6a1006095545ecfd103bb64ed7418a11535fb43c3e5eaa2ee2eb1741cd5d37d784c66930952addd" - -Convert into Mont: #109 R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" - -Convert into Mont: #110 R * 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"6d88b027164d217dc8bfee8490e33801dc8944172b5c3d29a6c5d520e363cea8143f5a69fc1705e5cdb4b1013ecdd5103dae09215a196bb0d5eb4d68aa4584ff50a829bba61866ad3a49d2a810c1aa4b485aca9a15db7681ad4200c12aa8bd9fa20776c9dae831422a6bf68787cbd545dc5d62e839aba6faf098cd2612a55bba" - -Convert into Mont: #111 R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" - -Convert into Mont: #112 R * 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"a44d083aa173b23cad1fe5c6d954d402cacde622c10a5bbe7a28bfb15515b5fc1e5f079efa2288d8b48f0981de34bf985c850db20726218940e0f41cff68477ef8fc3e9979249a03d76ebbfc19227f70ec882fe720c931c283e30121bffd1c6f730b322ec85c49e33fa1f1cb4bb1bfe8ca8c145c56817a7868e533b91bf80997" - -Convert into Mont: #113 R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" - -Convert into Mont: #114 R * 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"11d5b861b7c0d3ba75dfd44b6a380c04a7572a39ec6698e820ee94d2387984a4329e6208f6398ebe8243ba831d0294a89a3316d3613f8d3a16cc4185a9adcc7e49a468551f3d00b111b88ea429e429bc34e2fa8136a4a844312501e2eaa5da0f1512a8f8a3447b256a0de852d37d952ea6e97744902d2173597e00df2e9d6551" - -Convert into Mont: #115 R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" - -Convert into Mont: #116 R * 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"30746d6b97b224f1569d9362178244421508f136834a7b46a06f0e0f8857284ecec909b27531515e068e8bac358b0bc08da2441ffe866f05aa213c039ca3f167af51c98588623d05953cb64e52db1d708897185e07eeeefb86a71ac96a664ba2f808f8fddb32d4ace1f8afcb54c413300ef33733ff4da7cc5d3072c795ee384b" - -Convert into Mont: #117 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" - -Convert into Mont: #118 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba5b666f0dfbef863190b7be8b8632b6b644c910d7d95bbe061f26a51d70b6b02db37a2ddaf466e6ba12a4186a7200a910d20f14cec9a413e13b8269113b0f65f37d64746ba283244fb7a447b6b18c320aeec0fb9502be2cb6697c36cd9bf192e8600124d21f62fdcd5acfad0a46189ea60cd1e798238b2816f3992975f84359" - -Convert into Mont: #119 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" - -Convert into Mont: #120 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"aa5664adc1dec2da9cf1955db3cca0dbea312f7cc13a54d7836a7eb807029369df5cc9d81aa8acdec3cc7bcf30f7441fcb781390bcd855f8504b26bbd8219dc68f2e7bda0a7fa65ebeea4df176a63f6596f4663ac9b5fc31f0b58041f5d9d7f0149b359342ad9d3b77cbb7fb75d848ba462a22a3a57d0095f60c7cdeb9d7ce52" - -Convert into Mont: #121 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" - -Convert into Mont: #122 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c59bd14c22c69435fa85427dc351329c0d7f625b20413f95f82df394cf14eca360a367d7c3df81f31d048a1be01695a21ce1934a6fdbb8099c041ad5707edddfcea119a22fee992c32e5f85a62e1bc882698047a9aea9574d4d2b57bb86ff256a40e1830b70dd03f7cd892a3f910499169ab76b8ea8b3f38dd05263b061b20d8" - -Convert into Mont: #125 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" - -Convert into Mont: #126 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"72695381cba8d8a61d9b7be03f51d94f21967106244fd33d4ac5eeb28b1d2f6bf1f6d83cdba6f622080c9eb338b944916868cfc1799a09cc6f4af41b9d91c6a7bff0e00dc6d34c9aa7ff42dca6e6328fb4dc0d834c82a48e4bb80bc516adff9f7558966851b0281f732f737e74fca0c855d41bdcdfd90a44f05d4a6e056df8ef" - -Convert into Mont: #127 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" - -Convert into Mont: #128 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"351dda9b80f3178f14d5745e3a7f3d867b04d41c9032896d7d86c86cd0679add44f1b0695d9c889db750b64cc948d78f17f34508f0adcd7262014b6d84d0fc8e0490100175752e65f02b6578802b1361df1344241ef706d71fb50ae2010f7a19df39e9ce4bf134d9714b895eef33263c8e6f79dac0919b0d69e0dadd0893e14a" - -Convert into Mont: #131 R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert into Mont: #132 R * 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -Convert into Mont: #133 R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Convert into Mont: #134 R * 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"04c52a9a1ed25a1ef96fadbecb9d1d8d2497d29922c2f3151b488e954fed6e68c08e25d4e87ad666edc26b96df1efa6aec47e0629f793d622091f6f077a64696323df27501bd94c7a2313c8c49a9e24369e86e162759218240debb00b45afb4e2ae57364503a6ffde02196f9d0aeef347b5210c0b272a29b07869598497c6abd" - -Convert into Mont: #135 R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" - -Convert into Mont: #136 R * 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"098a55343da4b43df2df5b7d973a3b1a492fa5324585e62a36911d2a9fdadcd1811c4ba9d0f5accddb84d72dbe3df4d5d88fc0c53ef27ac44123ede0ef4c8d2c647be4ea037b298f446279189353c486d3d0dc2c4eb2430481bd760168b5f69c55cae6c8a074dffbc0432df3a15dde68f6a4218164e545360f0d2b3092f8d57a" - -Convert into Mont: #137 R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" - -Convert into Mont: #138 R * 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0e4f7fce5c770e5cec4f093c62d758a76dc777cb6848d93f51d9abbfefc84b3a41aa717eb9708334c94742c49d5cef40c4d7a127de6bb82661b5e4d166f2d3c296b9d75f0538be56e693b5a4dcfda6ca3db94a42760b6486c29c31021d10f1ea80b05a2cf0af4ff9a064c4ed720ccd9d71f632421757e7d11693c0c8dc754037" - -Convert into Mont: #139 R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" - -Convert into Mont: #140 R * 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"1314aa687b49687be5beb6fb2e747634925f4a648b0bcc546d223a553fb5b9a302389753a1eb599bb709ae5b7c7be9abb11f818a7de4f5888247dbc1de991a58c8f7c9d406f6531e88c4f23126a7890da7a1b8589d648609037aec02d16bed38ab95cd9140e9bff780865be742bbbcd1ed484302c9ca8a6c1e1a566125f1aaf4" - -Convert into Mont: #141 R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" - -Convert into Mont: #142 R * 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0fe67c50dcd610e589ddaf7b55fb946d25cde418bd681fb31327bf3ecbdd9552dfa66c67c359bceaf049f497ade5c1ce9c00f5f581feaad9407ffb8aa405b7712fcafc0d633620731cf67b3c66d3610294c082eec2d876007197a3282841f4678d16b155dd02ef86e77a9d9f76f342af7545bae7bb863484acf74ee85cb3c415" - -Convert into Mont: #143 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" - -Convert into Mont: #144 R * d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"4087ff0c8ac6158fb1c15e2891f1438bbac7cd127a7b3041a89fd7e0b6cd1552c83a7a98480c2fbd0edebb715f234aab9dba8e7fb6303205e1a5e588cb9f569044ab79076e2f30acdaee7e59d70052268fdb44a7cbd6e65ca4a720e1623c5b5603699481540f28b33d6074ed9dbca8b9d3e273281fa34bffe7f53c7c2634f04d" - -Convert into Mont: #145 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" - -Convert into Mont: #146 R * 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"491fa994e52370d28234be55e0c6b86b4bc64f331dcb73e1171774259eb8421e6aa1fd6d5b9e99877853b7c88b762b1e614a2708d45dfbe2e78edb1e5269139d82cadda85ddb4da3881038b7abfc91180526f7280ef2bf88df12f83e8c6dc7cdb7b22a2689aac3d9a1b10025201f847e14364d2e21bc27289d193644d3f53b36" - -Convert into Mont: #147 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" - -Convert into Mont: #148 R * cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"529476ca066c39d773affc5cefa586abc3eadbc4b7d8dc7e66dfc9c8ee78b13a3aa16d04515bee132d38512f5e3ef9c7fe4601826d0898d273a2b72d6c93e59658986ca5ffb13729f90089a6f03fc3aabe4522cf436096010abd0c175b92a95fc5e788224afa16a25ac0196e39542af02c62d2fbda192c47b2d42163c03e3b66" - -Convert into Mont: #151 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" - -Convert into Mont: #152 R * 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"1316b0d56aac8f6c72c97cf97034989754a35cdb501fff899b7a67fca6da16ee82dd6bff97ae6726b71d9fdc5bb296608c1393b311f9a34aa61a5d15c4b04f376fdf6a27cba9d9d1e417f738c186439c0a7f3a477cdf1d77f9f04bfb3516614e769ff9515a0c14856480bb87c6671d4ed33a75e0ad3c2da36d3b7ae0f1ee893c" - -Convert into Mont: #153 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT32 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" - -Convert into Mont: #154 R * 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -depends_on:MBEDTLS_HAVE_INT64 -mpi_mod_raw_to_mont_rep:"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"11e771804f5bbeaf6757295df0df2654be9fec35ce77f7fd6d950d43a114849955262289e72b322f5c95540557690d6586885a720ccefc8daa39eb543eb211b14f0abfcc10c0361f8f8b9218dc9324e0e1e6eccbd8d0e1abd807195b65cd7b419db603332980141f6e050f72ded2bc5dd01b466d4c49ba910e7d7b2d71fa666b" - -mbedtls_mpi_mod_raw_sub #1 0 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000000":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #2 0 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000001":"0000000000000053":"0000000000000052" - -mbedtls_mpi_mod_raw_sub #3 0 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000002":"0000000000000053":"0000000000000051" - -mbedtls_mpi_mod_raw_sub #4 0 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000003":"0000000000000053":"0000000000000050" - -mbedtls_mpi_mod_raw_sub #5 0 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000004":"0000000000000053":"000000000000004f" - -mbedtls_mpi_mod_raw_sub #6 0 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000000":"0000000000000038":"0000000000000053":"000000000000001b" - -mbedtls_mpi_mod_raw_sub #14 1 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000000":"0000000000000053":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #15 1 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000001":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #16 1 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000002":"0000000000000053":"0000000000000052" - -mbedtls_mpi_mod_raw_sub #17 1 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000003":"0000000000000053":"0000000000000051" - -mbedtls_mpi_mod_raw_sub #18 1 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000004":"0000000000000053":"0000000000000050" - -mbedtls_mpi_mod_raw_sub #19 1 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000001":"0000000000000038":"0000000000000053":"000000000000001c" - -mbedtls_mpi_mod_raw_sub #27 2 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000000":"0000000000000053":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #28 2 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000001":"0000000000000053":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #29 2 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000002":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #30 2 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000003":"0000000000000053":"0000000000000052" - -mbedtls_mpi_mod_raw_sub #31 2 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000004":"0000000000000053":"0000000000000051" - -mbedtls_mpi_mod_raw_sub #32 2 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000002":"0000000000000038":"0000000000000053":"000000000000001d" - -mbedtls_mpi_mod_raw_sub #40 3 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000000":"0000000000000053":"0000000000000003" - -mbedtls_mpi_mod_raw_sub #41 3 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000001":"0000000000000053":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #42 3 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000002":"0000000000000053":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #43 3 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000003":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #44 3 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000004":"0000000000000053":"0000000000000052" - -mbedtls_mpi_mod_raw_sub #45 3 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000003":"0000000000000038":"0000000000000053":"000000000000001e" - -mbedtls_mpi_mod_raw_sub #53 4 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000000":"0000000000000053":"0000000000000004" - -mbedtls_mpi_mod_raw_sub #54 4 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000001":"0000000000000053":"0000000000000003" - -mbedtls_mpi_mod_raw_sub #55 4 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000002":"0000000000000053":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #56 4 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000003":"0000000000000053":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #57 4 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000004":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #58 4 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000004":"0000000000000038":"0000000000000053":"000000000000001f" - -mbedtls_mpi_mod_raw_sub #66 38 - 0 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000000":"0000000000000053":"0000000000000038" - -mbedtls_mpi_mod_raw_sub #67 38 - 1 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000001":"0000000000000053":"0000000000000037" - -mbedtls_mpi_mod_raw_sub #68 38 - 2 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000002":"0000000000000053":"0000000000000036" - -mbedtls_mpi_mod_raw_sub #69 38 - 3 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000003":"0000000000000053":"0000000000000035" - -mbedtls_mpi_mod_raw_sub #70 38 - 4 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000004":"0000000000000053":"0000000000000034" - -mbedtls_mpi_mod_raw_sub #71 38 - 38 mod 53 -mpi_mod_raw_sub:"0000000000000038":"0000000000000038":"0000000000000053":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #170 0 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000000":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #171 0 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000001":"0000000000000045":"0000000000000044" - -mbedtls_mpi_mod_raw_sub #172 0 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000002":"0000000000000045":"0000000000000043" - -mbedtls_mpi_mod_raw_sub #173 0 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000003":"0000000000000045":"0000000000000042" - -mbedtls_mpi_mod_raw_sub #174 0 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000004":"0000000000000045":"0000000000000041" - -mbedtls_mpi_mod_raw_sub #175 0 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000000":"0000000000000038":"0000000000000045":"000000000000000d" - -mbedtls_mpi_mod_raw_sub #183 1 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000000":"0000000000000045":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #184 1 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000001":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #185 1 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000002":"0000000000000045":"0000000000000044" - -mbedtls_mpi_mod_raw_sub #186 1 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000003":"0000000000000045":"0000000000000043" - -mbedtls_mpi_mod_raw_sub #187 1 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000004":"0000000000000045":"0000000000000042" - -mbedtls_mpi_mod_raw_sub #188 1 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000001":"0000000000000038":"0000000000000045":"000000000000000e" - -mbedtls_mpi_mod_raw_sub #196 2 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000000":"0000000000000045":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #197 2 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000001":"0000000000000045":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #198 2 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000002":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #199 2 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000003":"0000000000000045":"0000000000000044" - -mbedtls_mpi_mod_raw_sub #200 2 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000004":"0000000000000045":"0000000000000043" - -mbedtls_mpi_mod_raw_sub #201 2 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000002":"0000000000000038":"0000000000000045":"000000000000000f" - -mbedtls_mpi_mod_raw_sub #209 3 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000000":"0000000000000045":"0000000000000003" - -mbedtls_mpi_mod_raw_sub #210 3 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000001":"0000000000000045":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #211 3 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000002":"0000000000000045":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #212 3 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000003":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #213 3 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000004":"0000000000000045":"0000000000000044" - -mbedtls_mpi_mod_raw_sub #214 3 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000003":"0000000000000038":"0000000000000045":"0000000000000010" - -mbedtls_mpi_mod_raw_sub #222 4 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000000":"0000000000000045":"0000000000000004" - -mbedtls_mpi_mod_raw_sub #223 4 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000001":"0000000000000045":"0000000000000003" - -mbedtls_mpi_mod_raw_sub #224 4 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000002":"0000000000000045":"0000000000000002" - -mbedtls_mpi_mod_raw_sub #225 4 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000003":"0000000000000045":"0000000000000001" - -mbedtls_mpi_mod_raw_sub #226 4 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000004":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #227 4 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000004":"0000000000000038":"0000000000000045":"0000000000000011" - -mbedtls_mpi_mod_raw_sub #235 38 - 0 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000000":"0000000000000045":"0000000000000038" - -mbedtls_mpi_mod_raw_sub #236 38 - 1 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000001":"0000000000000045":"0000000000000037" - -mbedtls_mpi_mod_raw_sub #237 38 - 2 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000002":"0000000000000045":"0000000000000036" - -mbedtls_mpi_mod_raw_sub #238 38 - 3 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000003":"0000000000000045":"0000000000000035" - -mbedtls_mpi_mod_raw_sub #239 38 - 4 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000004":"0000000000000045":"0000000000000034" - -mbedtls_mpi_mod_raw_sub #240 38 - 38 mod 45 -mpi_mod_raw_sub:"0000000000000038":"0000000000000038":"0000000000000045":"0000000000000000" - -mbedtls_mpi_mod_raw_sub #339 0 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #340 0 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #341 0 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #342 0 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" - -mbedtls_mpi_mod_raw_sub #343 0 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757" - -mbedtls_mpi_mod_raw_sub #344 0 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723" - -mbedtls_mpi_mod_raw_sub #346 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" - -mbedtls_mpi_mod_raw_sub #347 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" - -mbedtls_mpi_mod_raw_sub #352 1 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #353 1 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #354 1 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #355 1 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #356 1 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" - -mbedtls_mpi_mod_raw_sub #357 1 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb724" - -mbedtls_mpi_mod_raw_sub #359 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de9" - -mbedtls_mpi_mod_raw_sub #360 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7f" - -mbedtls_mpi_mod_raw_sub #365 2 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #366 2 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #367 2 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #368 2 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #369 2 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #370 2 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb725" - -mbedtls_mpi_mod_raw_sub #372 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dea" - -mbedtls_mpi_mod_raw_sub #373 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b80" - -mbedtls_mpi_mod_raw_sub #378 3 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #379 3 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #380 3 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #381 3 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #382 3 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #383 3 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb726" - -mbedtls_mpi_mod_raw_sub #385 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10deb" - -mbedtls_mpi_mod_raw_sub #386 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b81" - -mbedtls_mpi_mod_raw_sub #391 4 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_sub #392 4 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #393 4 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #394 4 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #395 4 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #396 4 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb727" - -mbedtls_mpi_mod_raw_sub #398 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10dec" - -mbedtls_mpi_mod_raw_sub #399 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b82" - -mbedtls_mpi_mod_raw_sub #404 38 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_sub #405 38 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000037" - -mbedtls_mpi_mod_raw_sub #406 38 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000036" - -mbedtls_mpi_mod_raw_sub #407 38 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000035" - -mbedtls_mpi_mod_raw_sub #408 38 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000034" - -mbedtls_mpi_mod_raw_sub #409 38 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #411 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10e20" - -mbedtls_mpi_mod_raw_sub #412 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58bb6" - -mbedtls_mpi_mod_raw_sub #430 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_sub #431 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" - -mbedtls_mpi_mod_raw_sub #432 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" - -mbedtls_mpi_mod_raw_sub #433 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" - -mbedtls_mpi_mod_raw_sub #434 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" - -mbedtls_mpi_mod_raw_sub #435 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" - -mbedtls_mpi_mod_raw_sub #437 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #438 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"1a1b1e79b98a062b31179f87ab7c8078662a5b3f169434f1" - -mbedtls_mpi_mod_raw_sub #443 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_sub #444 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" - -mbedtls_mpi_mod_raw_sub #445 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" - -mbedtls_mpi_mod_raw_sub #446 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" - -mbedtls_mpi_mod_raw_sub #447 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" - -mbedtls_mpi_mod_raw_sub #448 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" - -mbedtls_mpi_mod_raw_sub #450 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" - -mbedtls_mpi_mod_raw_sub #451 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod d1c127a667786703830500038ebaef20e5a3e2dc378fb75b -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #508 0 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #509 0 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" - -mbedtls_mpi_mod_raw_sub #510 0 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" - -mbedtls_mpi_mod_raw_sub #511 0 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bce" - -mbedtls_mpi_mod_raw_sub #512 0 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcd" - -mbedtls_mpi_mod_raw_sub #513 0 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b99" - -mbedtls_mpi_mod_raw_sub #514 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a476" - -mbedtls_mpi_mod_raw_sub #515 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25e" - -mbedtls_mpi_mod_raw_sub #516 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000000":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff4" - -mbedtls_mpi_mod_raw_sub #521 1 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #522 1 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #523 1 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" - -mbedtls_mpi_mod_raw_sub #524 1 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" - -mbedtls_mpi_mod_raw_sub #525 1 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bce" - -mbedtls_mpi_mod_raw_sub #526 1 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9a" - -mbedtls_mpi_mod_raw_sub #527 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a477" - -mbedtls_mpi_mod_raw_sub #528 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b25f" - -mbedtls_mpi_mod_raw_sub #529 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000001":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff5" - -mbedtls_mpi_mod_raw_sub #534 2 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #535 2 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #536 2 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #537 2 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" - -mbedtls_mpi_mod_raw_sub #538 2 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bcf" - -mbedtls_mpi_mod_raw_sub #539 2 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9b" - -mbedtls_mpi_mod_raw_sub #540 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a478" - -mbedtls_mpi_mod_raw_sub #541 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b260" - -mbedtls_mpi_mod_raw_sub #542 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000002":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff6" - -mbedtls_mpi_mod_raw_sub #547 3 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #548 3 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #549 3 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #550 3 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #551 3 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575bd0" - -mbedtls_mpi_mod_raw_sub #552 3 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9c" - -mbedtls_mpi_mod_raw_sub #553 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a479" - -mbedtls_mpi_mod_raw_sub #554 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b261" - -mbedtls_mpi_mod_raw_sub #555 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000003":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff7" - -mbedtls_mpi_mod_raw_sub #560 4 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_sub #561 4 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #562 4 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #563 4 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #564 4 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #565 4 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ffed9235288bc781ae66267594c9c9500925e4749b575b9d" - -mbedtls_mpi_mod_raw_sub #566 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a47a" - -mbedtls_mpi_mod_raw_sub #567 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b262" - -mbedtls_mpi_mod_raw_sub #568 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000004":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d2ff8" - -mbedtls_mpi_mod_raw_sub #573 38 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_sub #574 38 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000037" - -mbedtls_mpi_mod_raw_sub #575 38 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000036" - -mbedtls_mpi_mod_raw_sub #576 38 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000035" - -mbedtls_mpi_mod_raw_sub #577 38 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000034" - -mbedtls_mpi_mod_raw_sub #578 38 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #579 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"2e2c6a8ec113607e2b612672060eda2f2382019863c7a4ae" - -mbedtls_mpi_mod_raw_sub #580 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"e87b78621a11a0e1d50a76aca224f6d42c3128daa698b296" - -mbedtls_mpi_mod_raw_sub #581 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"000000000000000000000000000000000000000000000038":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"30d56f356c234009831d1630bee6882bacb7a13d859d302c" - -mbedtls_mpi_mod_raw_sub #586 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_sub #587 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #588 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #589 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb758" - -mbedtls_mpi_mod_raw_sub #590 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb757" - -mbedtls_mpi_mod_raw_sub #591 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"d1c127a667786703830500038ebaef20e5a3e2dc378fb723" - -mbedtls_mpi_mod_raw_sub #592 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #593 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" - -mbedtls_mpi_mod_raw_sub #594 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"02a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" - -mbedtls_mpi_mod_raw_sub #599 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_sub #600 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" - -mbedtls_mpi_mod_raw_sub #601 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" - -mbedtls_mpi_mod_raw_sub #602 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" - -mbedtls_mpi_mod_raw_sub #603 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" - -mbedtls_mpi_mod_raw_sub #604 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" - -mbedtls_mpi_mod_raw_sub #605 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"459e8461cf8d871e04bcd63af8b3acab0076bd3258864de9" - -mbedtls_mpi_mod_raw_sub #606 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #607 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"484789087a9d66a95c78c5f9b18b5aa789ac5cd77a5bd967" - -mbedtls_mpi_mod_raw_sub #612 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000000":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_sub #613 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000001":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" - -mbedtls_mpi_mod_raw_sub #614 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000002":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" - -mbedtls_mpi_mod_raw_sub #615 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000003":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" - -mbedtls_mpi_mod_raw_sub #616 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000004":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" - -mbedtls_mpi_mod_raw_sub #617 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"000000000000000000000000000000000000000000000038":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" - -mbedtls_mpi_mod_raw_sub #618 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"fd448d8e7d7be7f656aa36b6dbf21b537ff044cf7981d053" - -mbedtls_mpi_mod_raw_sub #619 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" - -mbedtls_mpi_mod_raw_sub #620 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod ffed9235288bc781ae66267594c9c9500925e4749b575bd1 -mpi_mod_raw_sub:"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"ffed9235288bc781ae66267594c9c9500925e4749b575bd1":"000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #677 0 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #678 0 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" - -mbedtls_mpi_mod_raw_sub #679 0 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" - -mbedtls_mpi_mod_raw_sub #680 0 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220" - -mbedtls_mpi_mod_raw_sub #681 0 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad521f" - -mbedtls_mpi_mod_raw_sub #682 0 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51eb" - -mbedtls_mpi_mod_raw_sub #683 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac8" - -mbedtls_mpi_mod_raw_sub #684 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b0" - -mbedtls_mpi_mod_raw_sub #685 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32646" - -mbedtls_mpi_mod_raw_sub #687 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4c" - -mbedtls_mpi_mod_raw_sub #688 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234d" - -mbedtls_mpi_mod_raw_sub #690 1 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #691 1 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #692 1 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" - -mbedtls_mpi_mod_raw_sub #693 1 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" - -mbedtls_mpi_mod_raw_sub #694 1 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5220" - -mbedtls_mpi_mod_raw_sub #695 1 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ec" - -mbedtls_mpi_mod_raw_sub #696 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9ac9" - -mbedtls_mpi_mod_raw_sub #697 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b1" - -mbedtls_mpi_mod_raw_sub #698 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32647" - -mbedtls_mpi_mod_raw_sub #700 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4d" - -mbedtls_mpi_mod_raw_sub #701 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234e" - -mbedtls_mpi_mod_raw_sub #703 2 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #704 2 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #705 2 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #706 2 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" - -mbedtls_mpi_mod_raw_sub #707 2 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5221" - -mbedtls_mpi_mod_raw_sub #708 2 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ed" - -mbedtls_mpi_mod_raw_sub #709 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9aca" - -mbedtls_mpi_mod_raw_sub #710 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b2" - -mbedtls_mpi_mod_raw_sub #711 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32648" - -mbedtls_mpi_mod_raw_sub #713 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4e" - -mbedtls_mpi_mod_raw_sub #714 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c234f" - -mbedtls_mpi_mod_raw_sub #716 3 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #717 3 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #718 3 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #719 3 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #720 3 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5222" - -mbedtls_mpi_mod_raw_sub #721 3 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ee" - -mbedtls_mpi_mod_raw_sub #722 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acb" - -mbedtls_mpi_mod_raw_sub #723 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b3" - -mbedtls_mpi_mod_raw_sub #724 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f32649" - -mbedtls_mpi_mod_raw_sub #726 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac4f" - -mbedtls_mpi_mod_raw_sub #727 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2350" - -mbedtls_mpi_mod_raw_sub #729 4 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_sub #730 4 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #731 4 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #732 4 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #733 4 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #734 4 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad51ef" - -mbedtls_mpi_mod_raw_sub #735 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9acc" - -mbedtls_mpi_mod_raw_sub #736 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8b4" - -mbedtls_mpi_mod_raw_sub #737 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3264a" - -mbedtls_mpi_mod_raw_sub #739 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac50" - -mbedtls_mpi_mod_raw_sub #740 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2351" - -mbedtls_mpi_mod_raw_sub #742 38 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_sub #743 38 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037" - -mbedtls_mpi_mod_raw_sub #744 38 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036" - -mbedtls_mpi_mod_raw_sub #745 38 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035" - -mbedtls_mpi_mod_raw_sub #746 38 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034" - -mbedtls_mpi_mod_raw_sub #747 38 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #748 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1908dd15d4a1ae598ecc4e88546f3d61a20fb690bf1d9b00" - -mbedtls_mpi_mod_raw_sub #749 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ed357eae92d9feebd38759ec2f0855a06aabeddd301eea8e8" - -mbedtls_mpi_mod_raw_sub #750 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e1bb1e1bc7fb18de4e6883e470d46eb5e2b455635e0f3267e" - -mbedtls_mpi_mod_raw_sub #752 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40470323e78d6b602b3592fa2bec8c115bb3a0e9f70ba3fac84" - -mbedtls_mpi_mod_raw_sub #753 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb813a174c5afe805d3209cd07f0599cdb2b652d39c076c2385" - -mbedtls_mpi_mod_raw_sub #755 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_sub #756 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #757 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #758 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758" - -mbedtls_mpi_mod_raw_sub #759 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757" - -mbedtls_mpi_mod_raw_sub #760 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723" - -mbedtls_mpi_mod_raw_sub #761 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #762 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" - -mbedtls_mpi_mod_raw_sub #763 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" - -mbedtls_mpi_mod_raw_sub #765 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40541f3661f3e2e69b6dc34a2c2577c04dc1fb2824cf1cf63a7" - -mbedtls_mpi_mod_raw_sub #766 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e5629c6c17606cd6a3a1d0829454bcd39bf6b6783efbdaa8" - -mbedtls_mpi_mod_raw_sub #768 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_sub #769 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" - -mbedtls_mpi_mod_raw_sub #770 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" - -mbedtls_mpi_mod_raw_sub #771 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" - -mbedtls_mpi_mod_raw_sub #772 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" - -mbedtls_mpi_mod_raw_sub #773 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" - -mbedtls_mpi_mod_raw_sub #774 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e307af6e8e31bd4f96827fe5147140fdd7f04722ab3dc443b" - -mbedtls_mpi_mod_raw_sub #775 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #776 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75e3323fb8f8e2bb484bfe3ee0fffebbdda083a11cfd5b1cfb9" - -mbedtls_mpi_mod_raw_sub #778 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa40487a4584be5302953328b5287bb65e83717035b0aaefe55bf" - -mbedtls_mpi_mod_raw_sub #779 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb82b138e98be622c72f9f88047f83ea02e93478f35fc2accc0" - -mbedtls_mpi_mod_raw_sub #781 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_sub #782 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" - -mbedtls_mpi_mod_raw_sub #783 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" - -mbedtls_mpi_mod_raw_sub #784 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" - -mbedtls_mpi_mod_raw_sub #785 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" - -mbedtls_mpi_mod_raw_sub #786 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" - -mbedtls_mpi_mod_raw_sub #787 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75ee8210015910a35d1ba155ecd2a527e85fe7df9c7d4d7c6a5" - -mbedtls_mpi_mod_raw_sub #788 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" - -mbedtls_mpi_mod_raw_sub #789 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #791 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"c2ab5582876a64372a3a3fef80ab71b3cebb50144f230d5c58ef38a4621a5aa12e42eb37bb1fd092bceca4cbd73539095bf407181a23013b85f9bf84e6fb8b275a39a6cf60095aaa18c68f410ca010d0cf2d014c8e439989244c428c59a47eff17eb7547eadfa4053f4a6178931e8a2b8478b3039ea456df967ce2a7cff9d829" - -mbedtls_mpi_mod_raw_sub #792 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"b47a4b5b69c7c2184f7e3a34e7885739cf429b931c361632f0e86fff6501ca0882532e90939ba742cf5df1e3c746c17a74af5790e8faebf66316a02828b88c5d93c7428f53da61cf130b712815bf9fe0a75dd2ca628ba349dea24f3481ffe7f12d23aa98c5aeffb8e2b997c56c508d4b4be5e0c3db7d0ed712c116d31d264f2a" - -mbedtls_mpi_mod_raw_sub #807 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_sub #808 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6" - -mbedtls_mpi_mod_raw_sub #809 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5" - -mbedtls_mpi_mod_raw_sub #810 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4" - -mbedtls_mpi_mod_raw_sub #811 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3" - -mbedtls_mpi_mod_raw_sub #812 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f" - -mbedtls_mpi_mod_raw_sub #813 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c" - -mbedtls_mpi_mod_raw_sub #814 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64" - -mbedtls_mpi_mod_raw_sub #815 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa" - -mbedtls_mpi_mod_raw_sub #817 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #818 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"bb0a9dc55736cd2240e403031e6b49851242a9733764ea41c4964cca9135881349f09623da7053bd2b96f49750aa9de8f9e44be821cb34e2722739eeec9a3eb6913986e220c4d3ce5d1ff89300beb9ea34036c30c95a4e7fe3b50c4793070a22443479ebed5b43128e393b09154c187cd93e7c4c2002e47a03f7cd9843d9c924" - -mbedtls_mpi_mod_raw_sub #820 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_sub #821 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5" - -mbedtls_mpi_mod_raw_sub #822 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4" - -mbedtls_mpi_mod_raw_sub #823 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3" - -mbedtls_mpi_mod_raw_sub #824 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2" - -mbedtls_mpi_mod_raw_sub #825 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e" - -mbedtls_mpi_mod_raw_sub #826 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b" - -mbedtls_mpi_mod_raw_sub #827 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563" - -mbedtls_mpi_mod_raw_sub #828 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9" - -mbedtls_mpi_mod_raw_sub #830 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff" - -mbedtls_mpi_mod_raw_sub #831 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"c93ba7ec74d96f411ba008bdb78e63ff11bb5df46a51e16b2c9d156f8e4e18abf5e052cb01f47d0d1925a77f60991577e128fb6f52f34a27950a594baadd3d8057abeb222cf3cca962db16abf79f2ada5bd29ab2f51244bf295eff9f6aaba1302efc449b128be75eeaca04bc3c1a155d11d14e8be32a2c8287b3996cf6ad5223":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #846 0 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #847 0 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" - -mbedtls_mpi_mod_raw_sub #848 0 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" - -mbedtls_mpi_mod_raw_sub #849 0 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be" - -mbedtls_mpi_mod_raw_sub #850 0 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bd" - -mbedtls_mpi_mod_raw_sub #851 0 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e7813189" - -mbedtls_mpi_mod_raw_sub #852 0 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a66" - -mbedtls_mpi_mod_raw_sub #853 0 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884e" - -mbedtls_mpi_mod_raw_sub #854 0 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e4" - -mbedtls_mpi_mod_raw_sub #856 0 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bea" - -mbedtls_mpi_mod_raw_sub #857 0 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002eb" - -mbedtls_mpi_mod_raw_sub #859 1 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #860 1 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #861 1 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" - -mbedtls_mpi_mod_raw_sub #862 1 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" - -mbedtls_mpi_mod_raw_sub #863 1 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131be" - -mbedtls_mpi_mod_raw_sub #864 1 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318a" - -mbedtls_mpi_mod_raw_sub #865 1 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a67" - -mbedtls_mpi_mod_raw_sub #866 1 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c2884f" - -mbedtls_mpi_mod_raw_sub #867 1 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e5" - -mbedtls_mpi_mod_raw_sub #869 1 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138beb" - -mbedtls_mpi_mod_raw_sub #870 1 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ec" - -mbedtls_mpi_mod_raw_sub #872 2 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #873 2 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #874 2 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #875 2 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" - -mbedtls_mpi_mod_raw_sub #876 2 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131bf" - -mbedtls_mpi_mod_raw_sub #877 2 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318b" - -mbedtls_mpi_mod_raw_sub #878 2 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a68" - -mbedtls_mpi_mod_raw_sub #879 2 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28850" - -mbedtls_mpi_mod_raw_sub #880 2 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e6" - -mbedtls_mpi_mod_raw_sub #882 2 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bec" - -mbedtls_mpi_mod_raw_sub #883 2 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ed" - -mbedtls_mpi_mod_raw_sub #885 3 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #886 3 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #887 3 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #888 3 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #889 3 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c0" - -mbedtls_mpi_mod_raw_sub #890 3 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318c" - -mbedtls_mpi_mod_raw_sub #891 3 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a69" - -mbedtls_mpi_mod_raw_sub #892 3 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28851" - -mbedtls_mpi_mod_raw_sub #893 3 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e7" - -mbedtls_mpi_mod_raw_sub #895 3 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bed" - -mbedtls_mpi_mod_raw_sub #896 3 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ee" - -mbedtls_mpi_mod_raw_sub #898 4 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004" - -mbedtls_mpi_mod_raw_sub #899 4 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003" - -mbedtls_mpi_mod_raw_sub #900 4 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" - -mbedtls_mpi_mod_raw_sub #901 4 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" - -mbedtls_mpi_mod_raw_sub #902 4 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #903 4 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e781318d" - -mbedtls_mpi_mod_raw_sub #904 4 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a6a" - -mbedtls_mpi_mod_raw_sub #905 4 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28852" - -mbedtls_mpi_mod_raw_sub #906 4 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c705e8" - -mbedtls_mpi_mod_raw_sub #908 4 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138bee" - -mbedtls_mpi_mod_raw_sub #909 4 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f84002ef" - -mbedtls_mpi_mod_raw_sub #911 38 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038" - -mbedtls_mpi_mod_raw_sub #912 38 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000037" - -mbedtls_mpi_mod_raw_sub #913 38 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036" - -mbedtls_mpi_mod_raw_sub #914 38 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035" - -mbedtls_mpi_mod_raw_sub #915 38 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034" - -mbedtls_mpi_mod_raw_sub #916 38 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #917 38 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe388fb5ba84d494053dfa5118b1edaab6d2f409baff17a9e" - -mbedtls_mpi_mod_raw_sub #918 38 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a9730009dd8092f014b89a3fd88f54c2734f75075de67ddf2c28886" - -mbedtls_mpi_mod_raw_sub #919 38 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972fffe6320002535d28cbab9b94d043f688a7f664e040d1c7061c" - -mbedtls_mpi_mod_raw_sub #921 38 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca63ab25cbeaa619d9a1e42f947ff70b305052e297bab138c22" - -mbedtls_mpi_mod_raw_sub #922 38 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859de21930b8393a0b9e5b027083c496afc81725da6f8400323" - -mbedtls_mpi_mod_raw_sub #924 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b" - -mbedtls_mpi_mod_raw_sub #925 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75a" - -mbedtls_mpi_mod_raw_sub #926 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb759" - -mbedtls_mpi_mod_raw_sub #927 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb758" - -mbedtls_mpi_mod_raw_sub #928 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb757" - -mbedtls_mpi_mod_raw_sub #929 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb723" - -mbedtls_mpi_mod_raw_sub #930 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #931 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ba4f0dd358fe4063a9a9503a9c161ca508af274242d10de8" - -mbedtls_mpi_mod_raw_sub #932 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a904a6ab0fdf8b57bbefbeb8d7adfc89359fa521d58b7e" - -mbedtls_mpi_mod_raw_sub #934 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca70c73846511da049da147f94b8e2ba225ead20c57e2a34345" - -mbedtls_mpi_mod_raw_sub #935 d1c127a667786703830500038ebaef20e5a3e2dc378fb75b - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aafe2bab1eb0c07bd68b5270bcb045a1d671640832fcfba46" - -mbedtls_mpi_mod_raw_sub #937 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973" - -mbedtls_mpi_mod_raw_sub #938 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea972" - -mbedtls_mpi_mod_raw_sub #939 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea971" - -mbedtls_mpi_mod_raw_sub #940 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea970" - -mbedtls_mpi_mod_raw_sub #941 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea96f" - -mbedtls_mpi_mod_raw_sub #942 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea93b" - -mbedtls_mpi_mod_raw_sub #943 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffafb152eb6c76fe02d3b54da7dc3ad274a23fc35a4b023d9" - -mbedtls_mpi_mod_raw_sub #944 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #945 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a972ffffda419d561d74f6b84f74499369b5b23d3599bdac685af57" - -mbedtls_mpi_mod_raw_sub #947 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca652247691b8dbc439f79ea910f2158580e222e5159fd2355d" - -mbedtls_mpi_mod_raw_sub #948 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba4859f593acde920dc759bf0bd6d12eee3d785e671940ecfeac5e" - -mbedtls_mpi_mod_raw_sub #950 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd" - -mbedtls_mpi_mod_raw_sub #951 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdc" - -mbedtls_mpi_mod_raw_sub #952 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdb" - -mbedtls_mpi_mod_raw_sub #953 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bda" - -mbedtls_mpi_mod_raw_sub #954 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bd9" - -mbedtls_mpi_mod_raw_sub #955 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2ba5" - -mbedtls_mpi_mod_raw_sub #956 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b2a11e5b64b5d0b87f28b55661021bcfc99d83d2c5aba643" - -mbedtls_mpi_mod_raw_sub #957 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7a6092cadee60d851ed607be33e6ea87f79879d20fb826a" - -mbedtls_mpi_mod_raw_sub #958 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #960 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"4d2df4b8084ad6ebbb74fd47853e03db0622abecd93adaea2339f3adb927c7d24d888bd06bad0c0dff30d96f8191d018815dc0dd3cb1f7f33b69693e69918b74f1ce6adb87d65c68d530646651c84535500cec9236be499e8ff859ecb2da8a0a2ff80a3612eaeca709ca7fbe66ca2512498c098cd553f429619c6cb2c0cdb7c7" - -mbedtls_mpi_mod_raw_sub #961 cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"3efcea90eaa834cce0b8f78cec1ae96106a9f76ba64de3c0bb332b08bc0f3739a198cf294428e2be11a2268771a358899a1911560b89e2ae188649e1ab4e8cab2b5c069b7ba7638dcf75464d5ae7d445283dbe100b06535f4a4e6694db35f2fc45303f86edba485aad39b60b3ffc283210f9374d122cac20dde0a0de0dfa2ec8" - -mbedtls_mpi_mod_raw_sub #976 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7" - -mbedtls_mpi_mod_raw_sub #977 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d6" - -mbedtls_mpi_mod_raw_sub #978 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d5" - -mbedtls_mpi_mod_raw_sub #979 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d4" - -mbedtls_mpi_mod_raw_sub #980 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d3" - -mbedtls_mpi_mod_raw_sub #981 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da59f" - -mbedtls_mpi_mod_raw_sub #982 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359a8d69e9cfdebaba6359cabc98bae27a66801172004ddee7c" - -mbedtls_mpi_mod_raw_sub #983 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a6325ac7056e9ec09df45fc0427c4444b70b03e6247aefc64" - -mbedtls_mpi_mod_raw_sub #984 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac4359ab7fa343a8fb8b318d589b884485d5a2f136b6c526b379fa" - -mbedtls_mpi_mod_raw_sub #986 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -mbedtls_mpi_mod_raw_sub #987 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"458d3cfad8173fd6d21ec05b22fddbac49aa054bc17cb7cf8ee107d3e842f544693636bc8afd8f386ddb293afb0734f81f4e05ad445a2b9a2796e3a86f303f0428ce4aee4891d58d1989cdb845e6ee4eb4e3577671d4fe954f6123a7ec3d152d5c410eda15668bb458b9594ee8f7b3639e51d2d556b281c3cf1757a334ada8c2" - -mbedtls_mpi_mod_raw_sub #989 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 0 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6" - -mbedtls_mpi_mod_raw_sub #990 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 1 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed5" - -mbedtls_mpi_mod_raw_sub #991 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 2 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed4" - -mbedtls_mpi_mod_raw_sub #992 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 3 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed3" - -mbedtls_mpi_mod_raw_sub #993 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 4 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed2" - -mbedtls_mpi_mod_raw_sub #994 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 38 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000038":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412e9e" - -mbedtls_mpi_mod_raw_sub #995 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - d1c127a667786703830500038ebaef20e5a3e2dc378fb75b mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1c127a667786703830500038ebaef20e5a3e2dc378fb75b":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a60567685024b9a8866e2f7e094ed56faeebbce2f4b7b1777b" - -mbedtls_mpi_mod_raw_sub #996 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000177219d30e7a269fd95bafc8f2a4d27bdcf4bb99f4bea973":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6bfb676237db7e8ea17d8ce43eaeb8c53f46c0a36fa828563" - -mbedtls_mpi_mod_raw_sub #997 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cf1822ffbc6887782b491044d5e341245c6e433715ba2bdd":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a608106cf6cfc98811c5eb6dc807ad1dab74f28299d98702f9" - -mbedtls_mpi_mod_raw_sub #999 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 6905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"06905269ed6f0b09f165c8ce36e2f24b43000de01b2ed40ed3addccb2c33be0ac79d679346d4ac7a5c3902b38963dc6e8534f45738d048ec0f1099c6c3e1b258fd724452ccea71ff4a14876aeaff1a098ca5996666ceab360512bd13110722311710cf5327ac435a7a97c643656412a9b8a1abcd1a6916c74da4f9fc3c6da5d7":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0e310a271da2a21edabc05ba99231a79ff78b48132ecf7296806c8a4fd189098abefbca72784294fed8eb2e80fee778ee744af873128154522e31f5cbe42fec9c67264400c2ef8db05bb1e18f6e070f027cf2e822bb7f63f45a9f357d7a4970deac7caaf2530a44c5c90c9b326cdfce03892d23fc327480883bbcbd4b2d388ff" - -mbedtls_mpi_mod_raw_sub #1000 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 - 14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6 mod 53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1 -mpi_mod_raw_sub:"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"14c15c910b11ad28cc21ce88d0060cc54278c2614e1bcb383bb4a570294c4ea3738d243a6e58d5ca49c7b59b995253fd6c79a3de69f85e3131f3b9238224b122c3e4a892d9196ada4fcfa583e1df8af9b474c7e89286a1754abcb06ae8abb93f01d89a024cdce7a6d7288ff68c320f89f1347e0cdd905ecfd160c5d0ef412ed6":"53be4721f5b9e1f5acdac615bc20f6264922b9ccf469aef8f6e7d078e55b85dd1525f363b281b8885b69dc230af5ac870692b534758240df4a7a03052d733dcdef40af2e54c0ce681f44ebd13cc75f3edcb285f89d8cf4d4950b16ffc3e1ac3b4708d9893a973000b54a23020fc5b043d6e4a51519d9c9cc52d32377e78131c1":"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - -# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_generate_key.generated.data b/tests/suites/test_suite_psa_crypto_generate_key.generated.data deleted file mode 100644 index dca65e1e8..000000000 --- a/tests/suites/test_suite_psa_crypto_generate_key.generated.data +++ /dev/null @@ -1,358 +0,0 @@ -# Automatically generated by generate_psa_tests.py. Do not edit! - -PSA AES 128-bit -depends_on:PSA_WANT_KEY_TYPE_AES -generate_key:PSA_KEY_TYPE_AES:128:PSA_SUCCESS: - -PSA AES 192-bit -depends_on:PSA_WANT_KEY_TYPE_AES -generate_key:PSA_KEY_TYPE_AES:192:PSA_SUCCESS: - -PSA AES 256-bit -depends_on:PSA_WANT_KEY_TYPE_AES -generate_key:PSA_KEY_TYPE_AES:256:PSA_SUCCESS: - -PSA ARIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -generate_key:PSA_KEY_TYPE_ARIA:128:PSA_SUCCESS: - -PSA ARIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -generate_key:PSA_KEY_TYPE_ARIA:192:PSA_SUCCESS: - -PSA ARIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -generate_key:PSA_KEY_TYPE_ARIA:256:PSA_SUCCESS: - -PSA CAMELLIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -generate_key:PSA_KEY_TYPE_CAMELLIA:128:PSA_SUCCESS: - -PSA CAMELLIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -generate_key:PSA_KEY_TYPE_CAMELLIA:192:PSA_SUCCESS: - -PSA CAMELLIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -generate_key:PSA_KEY_TYPE_CAMELLIA:256:PSA_SUCCESS: - -PSA CHACHA20 256-bit -depends_on:PSA_WANT_KEY_TYPE_CHACHA20 -generate_key:PSA_KEY_TYPE_CHACHA20:256:PSA_SUCCESS: - -PSA DERIVE 120-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -generate_key:PSA_KEY_TYPE_DERIVE:120:PSA_SUCCESS: - -PSA DERIVE 128-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -generate_key:PSA_KEY_TYPE_DERIVE:128:PSA_SUCCESS: - -PSA DES 64-bit -depends_on:PSA_WANT_KEY_TYPE_DES -generate_key:PSA_KEY_TYPE_DES:64:PSA_SUCCESS: - -PSA DES 128-bit -depends_on:PSA_WANT_KEY_TYPE_DES -generate_key:PSA_KEY_TYPE_DES:128:PSA_SUCCESS: - -PSA DES 192-bit -depends_on:PSA_WANT_KEY_TYPE_DES -generate_key:PSA_KEY_TYPE_DES:192:PSA_SUCCESS: - -PSA HMAC 128-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:128:PSA_SUCCESS: - -PSA HMAC 160-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:160:PSA_SUCCESS: - -PSA HMAC 224-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:224:PSA_SUCCESS: - -PSA HMAC 256-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:256:PSA_SUCCESS: - -PSA HMAC 384-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:384:PSA_SUCCESS: - -PSA HMAC 512-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -generate_key:PSA_KEY_TYPE_HMAC:512:PSA_SUCCESS: - -PSA PASSWORD 48-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PASSWORD:48:PSA_SUCCESS: - -PSA PASSWORD 168-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PASSWORD:168:PSA_SUCCESS: - -PSA PASSWORD 336-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PASSWORD:336:PSA_SUCCESS: - -PSA PASSWORD_HASH 128-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_SUCCESS: - -PSA PASSWORD_HASH 256-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_SUCCESS: - -PSA PEPPER 128-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PEPPER:128:PSA_SUCCESS: - -PSA PEPPER 256-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_PEPPER:256:PSA_SUCCESS: - -PSA RAW_DATA 8-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -generate_key:PSA_KEY_TYPE_RAW_DATA:8:PSA_SUCCESS: - -PSA RAW_DATA 40-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -generate_key:PSA_KEY_TYPE_RAW_DATA:40:PSA_SUCCESS: - -PSA RAW_DATA 128-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -generate_key:PSA_KEY_TYPE_RAW_DATA:128:PSA_SUCCESS: - -PSA RSA_KEY_PAIR 1024-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME -generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_SUCCESS: - -PSA RSA_KEY_PAIR 1536-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:MBEDTLS_GENPRIME -generate_key:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_SUCCESS: - -PSA RSA_PUBLIC_KEY 1024-bit -generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_ERROR_INVALID_ARGUMENT: - -PSA RSA_PUBLIC_KEY 1536-bit -generate_key:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(MONTGOMERY) 255-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(MONTGOMERY) 448-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(MONTGOMERY) 255-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(MONTGOMERY) 448-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECP_K1) 224-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECP_K1) 256-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECP_K1) 192-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECP_K1) 224-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECP_K1) 256-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECP_R1) 256-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECP_R1) 384-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECP_R1) 521-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECP_R1) 225-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECP_R1) 256-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECP_R1) 384-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECP_R1) 521-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECP_R2) 160-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_K1) 233-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_K1) 239-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_K1) 283-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_K1) 409-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_K1) 571-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECT_K1) 163-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_K1) 233-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_K1) 239-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_K1) 283-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_K1) 409-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_K1) 571-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_R1) 233-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_R1) 283-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_R1) 409-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(SECT_R1) 571-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECT_R1) 163-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_R1) 233-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_R1) 283-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_R1) 409-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(SECT_R1) 571-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(SECT_R2) 163-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_SUCCESS: - -PSA ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_key:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_SUCCESS: - -PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_ERROR_INVALID_ARGUMENT: - -PSA ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit -generate_key:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_ERROR_INVALID_ARGUMENT: - -# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_not_supported.generated.data b/tests/suites/test_suite_psa_crypto_not_supported.generated.data deleted file mode 100644 index d025092ee..000000000 --- a/tests/suites/test_suite_psa_crypto_not_supported.generated.data +++ /dev/null @@ -1,931 +0,0 @@ -# Automatically generated by generate_psa_tests.py. Do not edit! - -PSA import AES 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461" - -PSA generate AES 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -generate_not_supported:PSA_KEY_TYPE_AES:128 - -PSA import AES 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a0646174614865726500697320" - -PSA generate AES 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -generate_not_supported:PSA_KEY_TYPE_AES:192 - -PSA import AES 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -import_not_supported:PSA_KEY_TYPE_AES:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate AES 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_AES -generate_not_supported:PSA_KEY_TYPE_AES:256 - -PSA import ARIA 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461" - -PSA generate ARIA 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -generate_not_supported:PSA_KEY_TYPE_ARIA:128 - -PSA import ARIA 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a0646174614865726500697320" - -PSA generate ARIA 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -generate_not_supported:PSA_KEY_TYPE_ARIA:192 - -PSA import ARIA 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -import_not_supported:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate ARIA 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_ARIA -generate_not_supported:PSA_KEY_TYPE_ARIA:256 - -PSA import CAMELLIA 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461" - -PSA generate CAMELLIA 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -generate_not_supported:PSA_KEY_TYPE_CAMELLIA:128 - -PSA import CAMELLIA 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a0646174614865726500697320" - -PSA generate CAMELLIA 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -generate_not_supported:PSA_KEY_TYPE_CAMELLIA:192 - -PSA import CAMELLIA 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -import_not_supported:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate CAMELLIA 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CAMELLIA -generate_not_supported:PSA_KEY_TYPE_CAMELLIA:256 - -PSA import CHACHA20 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CHACHA20 -import_not_supported:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate CHACHA20 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_CHACHA20 -generate_not_supported:PSA_KEY_TYPE_CHACHA20:256 - -PSA import DES 64-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901" - -PSA generate DES 64-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -generate_not_supported:PSA_KEY_TYPE_DES:64 - -PSA import DES 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901644573206b457902" - -PSA generate DES 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -generate_not_supported:PSA_KEY_TYPE_DES:128 - -PSA import DES 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -import_not_supported:PSA_KEY_TYPE_DES:"644573206b457901644573206b457902644573206b457904" - -PSA generate DES 192-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_DES -generate_not_supported:PSA_KEY_TYPE_DES:192 - -PSA import PASSWORD 48-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PASSWORD:"486572650069" - -PSA generate PASSWORD 48-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PASSWORD:48 - -PSA import PASSWORD 168-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PASSWORD:"48657265006973206b6579a0646174614865726500" - -PSA generate PASSWORD 168-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PASSWORD:168 - -PSA import PASSWORD 336-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PASSWORD:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65" - -PSA generate PASSWORD 336-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PASSWORD:336 - -PSA import PASSWORD_HASH 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461" - -PSA generate PASSWORD_HASH 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:128 - -PSA import PASSWORD_HASH 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate PASSWORD_HASH 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PASSWORD_HASH:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PASSWORD_HASH:256 - -PSA import PEPPER 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461" - -PSA generate PEPPER 128-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PEPPER:128 - -PSA import PEPPER 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a06461746148657265006973206b6579a064617461" - -PSA generate PEPPER 256-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_PEPPER:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_PEPPER:256 - -PSA import RSA_KEY_PAIR 1024-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -import_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -PSA generate RSA_KEY_PAIR 1024-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -generate_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:1024 - -PSA import RSA_KEY_PAIR 1536-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -import_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -PSA generate RSA_KEY_PAIR 1536-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -generate_not_supported:PSA_KEY_TYPE_RSA_KEY_PAIR:1536 - -PSA import RSA_PUBLIC_KEY 1024-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -import_not_supported:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -PSA import RSA_PUBLIC_KEY 1536-bit not supported -depends_on:!PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -import_not_supported:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_384 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_BRAINPOOL_P_R1_512 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 320-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384 - -PSA import ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -PSA generate ECC_KEY_PAIR(BRAINPOOL_P_R1) 512-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512 - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_BRAINPOOL_P_R1_512 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_192:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_224:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 320-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_320:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -PSA import ECC_PUBLIC_KEY(BRAINPOOL_P_R1) 512-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_BRAINPOOL_P_R1_512 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -PSA import ECC_KEY_PAIR(MONTGOMERY) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -PSA generate ECC_KEY_PAIR(MONTGOMERY) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_255 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255 - -PSA import ECC_KEY_PAIR(MONTGOMERY) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -PSA generate ECC_KEY_PAIR(MONTGOMERY) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_MONTGOMERY_448 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448 - -PSA import ECC_KEY_PAIR(MONTGOMERY) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_255 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -PSA generate ECC_KEY_PAIR(MONTGOMERY) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_255 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255 - -PSA import ECC_KEY_PAIR(MONTGOMERY) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_448 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -PSA generate ECC_KEY_PAIR(MONTGOMERY) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_MONTGOMERY_448 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448 - -PSA import ECC_PUBLIC_KEY(MONTGOMERY) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_MONTGOMERY_255 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" - -PSA import ECC_PUBLIC_KEY(MONTGOMERY) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_MONTGOMERY_448 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" - -PSA import ECC_PUBLIC_KEY(MONTGOMERY) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_MONTGOMERY_255 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" - -PSA import ECC_PUBLIC_KEY(MONTGOMERY) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_MONTGOMERY_448 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" - -PSA import ECC_KEY_PAIR(SECP_K1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -PSA generate ECC_KEY_PAIR(SECP_K1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_192 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192 - -PSA import ECC_KEY_PAIR(SECP_K1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -PSA generate ECC_KEY_PAIR(SECP_K1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_224 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224 - -PSA import ECC_KEY_PAIR(SECP_K1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -PSA generate ECC_KEY_PAIR(SECP_K1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_K1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256 - -PSA import ECC_KEY_PAIR(SECP_K1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_192 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -PSA generate ECC_KEY_PAIR(SECP_K1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_192 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192 - -PSA import ECC_KEY_PAIR(SECP_K1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_224 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -PSA generate ECC_KEY_PAIR(SECP_K1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_224 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224 - -PSA import ECC_KEY_PAIR(SECP_K1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -PSA generate ECC_KEY_PAIR(SECP_K1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_K1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256 - -PSA import ECC_PUBLIC_KEY(SECP_K1) 192-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_192 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -PSA import ECC_PUBLIC_KEY(SECP_K1) 224-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_224 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -PSA import ECC_PUBLIC_KEY(SECP_K1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_K1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -PSA import ECC_PUBLIC_KEY(SECP_K1) 192-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_192 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -PSA import ECC_PUBLIC_KEY(SECP_K1) 224-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_224 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -PSA import ECC_PUBLIC_KEY(SECP_K1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_K1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -PSA import ECC_KEY_PAIR(SECP_R1) 225-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -PSA generate ECC_KEY_PAIR(SECP_R1) 225-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225 - -PSA import ECC_KEY_PAIR(SECP_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -PSA generate ECC_KEY_PAIR(SECP_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256 - -PSA import ECC_KEY_PAIR(SECP_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -PSA generate ECC_KEY_PAIR(SECP_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_384 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384 - -PSA import ECC_KEY_PAIR(SECP_R1) 521-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -PSA generate ECC_KEY_PAIR(SECP_R1) 521-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R1_521 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521 - -PSA import ECC_KEY_PAIR(SECP_R1) 225-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -PSA generate ECC_KEY_PAIR(SECP_R1) 225-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225 - -PSA import ECC_KEY_PAIR(SECP_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -PSA generate ECC_KEY_PAIR(SECP_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_256 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256 - -PSA import ECC_KEY_PAIR(SECP_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -PSA generate ECC_KEY_PAIR(SECP_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_384 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384 - -PSA import ECC_KEY_PAIR(SECP_R1) 521-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_521 -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -PSA generate ECC_KEY_PAIR(SECP_R1) 521-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R1_521 -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521 - -PSA import ECC_PUBLIC_KEY(SECP_R1) 225-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 256-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 384-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 521-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R1_521 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 225-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_225:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 256-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_256 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 384-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_384 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -PSA import ECC_PUBLIC_KEY(SECP_R1) 521-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R1_521 -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -PSA import ECC_KEY_PAIR(SECP_R2) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -PSA generate ECC_KEY_PAIR(SECP_R2) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160 - -PSA import ECC_KEY_PAIR(SECP_R2) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -PSA generate ECC_KEY_PAIR(SECP_R2) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160 - -PSA import ECC_PUBLIC_KEY(SECP_R2) 160-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -PSA import ECC_PUBLIC_KEY(SECP_R2) 160-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECP_R2_160:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -PSA import ECC_KEY_PAIR(SECT_K1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -PSA generate ECC_KEY_PAIR(SECT_K1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163 - -PSA import ECC_KEY_PAIR(SECT_K1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -PSA generate ECC_KEY_PAIR(SECT_K1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233 - -PSA import ECC_KEY_PAIR(SECT_K1) 239-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -PSA generate ECC_KEY_PAIR(SECT_K1) 239-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239 - -PSA import ECC_KEY_PAIR(SECT_K1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -PSA generate ECC_KEY_PAIR(SECT_K1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283 - -PSA import ECC_KEY_PAIR(SECT_K1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -PSA generate ECC_KEY_PAIR(SECT_K1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409 - -PSA import ECC_KEY_PAIR(SECT_K1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -PSA generate ECC_KEY_PAIR(SECT_K1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571 - -PSA import ECC_KEY_PAIR(SECT_K1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -PSA generate ECC_KEY_PAIR(SECT_K1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163 - -PSA import ECC_KEY_PAIR(SECT_K1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -PSA generate ECC_KEY_PAIR(SECT_K1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233 - -PSA import ECC_KEY_PAIR(SECT_K1) 239-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -PSA generate ECC_KEY_PAIR(SECT_K1) 239-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239 - -PSA import ECC_KEY_PAIR(SECT_K1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -PSA generate ECC_KEY_PAIR(SECT_K1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283 - -PSA import ECC_KEY_PAIR(SECT_K1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -PSA generate ECC_KEY_PAIR(SECT_K1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409 - -PSA import ECC_KEY_PAIR(SECT_K1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -PSA generate ECC_KEY_PAIR(SECT_K1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571 - -PSA import ECC_PUBLIC_KEY(SECT_K1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 239-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 239-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_239:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -PSA import ECC_PUBLIC_KEY(SECT_K1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_K1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -PSA import ECC_KEY_PAIR(SECT_R1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -PSA generate ECC_KEY_PAIR(SECT_R1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163 - -PSA import ECC_KEY_PAIR(SECT_R1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -PSA generate ECC_KEY_PAIR(SECT_R1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233 - -PSA import ECC_KEY_PAIR(SECT_R1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -PSA generate ECC_KEY_PAIR(SECT_R1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283 - -PSA import ECC_KEY_PAIR(SECT_R1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -PSA generate ECC_KEY_PAIR(SECT_R1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409 - -PSA import ECC_KEY_PAIR(SECT_R1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -PSA generate ECC_KEY_PAIR(SECT_R1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571 - -PSA import ECC_KEY_PAIR(SECT_R1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -PSA generate ECC_KEY_PAIR(SECT_R1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163 - -PSA import ECC_KEY_PAIR(SECT_R1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -PSA generate ECC_KEY_PAIR(SECT_R1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233 - -PSA import ECC_KEY_PAIR(SECT_R1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -PSA generate ECC_KEY_PAIR(SECT_R1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283 - -PSA import ECC_KEY_PAIR(SECT_R1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -PSA generate ECC_KEY_PAIR(SECT_R1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409 - -PSA import ECC_KEY_PAIR(SECT_R1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -PSA generate ECC_KEY_PAIR(SECT_R1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571 - -PSA import ECC_PUBLIC_KEY(SECT_R1) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 233-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 283-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 409-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 571-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 233-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_233:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 283-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_283:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 409-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_409:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -PSA import ECC_PUBLIC_KEY(SECT_R1) 571-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R1_571:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -PSA import ECC_KEY_PAIR(SECT_R2) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34" - -PSA generate ECC_KEY_PAIR(SECT_R2) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163 - -PSA import ECC_KEY_PAIR(SECT_R2) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34" - -PSA generate ECC_KEY_PAIR(SECT_R2) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163 - -PSA import ECC_PUBLIC_KEY(SECT_R2) 163-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -PSA import ECC_PUBLIC_KEY(SECT_R2) 163-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_SECT_R2_163:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255 - -PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448 - -PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255 - -PSA import ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -PSA generate ECC_KEY_PAIR(TWISTED_EDWARDS) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -generate_not_supported:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448 - -PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit type not supported -depends_on:!PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 255-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_TWISTED_EDWARDS_255:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -PSA import ECC_PUBLIC_KEY(TWISTED_EDWARDS) 448-bit curve not supported -depends_on:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY:!PSA_WANT_ECC_TWISTED_EDWARDS_448:DEPENDENCY_NOT_IMPLEMENTED_YET -import_not_supported:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_op_fail.generated.data b/tests/suites/test_suite_psa_crypto_op_fail.generated.data deleted file mode 100644 index fb0aad299..000000000 --- a/tests/suites/test_suite_psa_crypto_op_fail.generated.data +++ /dev/null @@ -1,30822 +0,0 @@ -# Automatically generated by generate_psa_tests.py. Do not edit! - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with AES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with DES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1): invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): invalid -depends_on:PSA_WANT_ALG_GCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with DES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1): invalid -depends_on:PSA_WANT_ALG_GCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,1): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,1): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with AES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with DES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CHACHA20_POLY1305,1): invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(GCM,1): invalid -depends_on:PSA_WANT_ALG_GCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with DES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(GCM,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(GCM,1): invalid -depends_on:PSA_WANT_ALG_GCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,4): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with AES -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with ARIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): !CCM with CAMELLIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,4): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,4): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,13): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,13): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,13): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,13):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,14): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with AES -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with ARIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): !CCM with CAMELLIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,14): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,14): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,16): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with AES -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with ARIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): !CCM with CAMELLIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_NOT_SUPPORTED - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,16): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,16): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement AEAD_WITH_SHORTENED_TAG(CCM,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash AEAD_WITH_SHORTENED_TAG(CCM,63): invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA aead AEAD_WITH_SHORTENED_TAG(CCM,63): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AEAD_WITH_SHORTENED_TAG(CCM,63): invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,63):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ANY_HASH: invalid -key_derivation_fail:PSA_ALG_ANY_HASH:PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CMAC,1): invalid -depends_on:PSA_WANT_ALG_CMAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with DES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CMAC,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CMAC,1): invalid -depends_on:PSA_WANT_ALG_CMAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA hash AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA hash CBC_MAC: invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: !CBC_MAC with AES -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED - -PSA mac CBC_MAC: !CBC_MAC with ARIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED - -PSA mac CBC_MAC: !CBC_MAC with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_NOT_SUPPORTED - -PSA mac CBC_MAC: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_MAC: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_MAC: invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_MAC: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_MAC: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_MAC: invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_MAC: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_MAC: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_MAC: invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_MAC: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_MAC: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_MAC: invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_MAC: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_MAC: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CBC_MAC: invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_CBC_MAC:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_MAC: invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_MAC: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_MAC: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_MAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CBC_NO_PADDING: invalid -depends_on:PSA_WANT_ALG_CBC_NO_PADDING -hash_fail:PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with AES -depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with ARIA -depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_NO_PADDING: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: !CBC_NO_PADDING with DES -depends_on:!PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_NO_PADDING: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CBC_NO_PADDING: invalid -depends_on:PSA_WANT_ALG_CBC_NO_PADDING -key_derivation_fail:PSA_ALG_CBC_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CBC_PKCS7: invalid -depends_on:PSA_WANT_ALG_CBC_PKCS7 -hash_fail:PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_PKCS7: invalid with AES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_PKCS7: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_PKCS7: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CBC_PKCS7: invalid with DES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: !CBC_PKCS7 with AES -depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_PKCS7: !CBC_PKCS7 with ARIA -depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_PKCS7: !CBC_PKCS7 with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_PKCS7: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: !CBC_PKCS7 with DES -depends_on:!PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CBC_PKCS7: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_PKCS7: invalid with AES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_PKCS7: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_PKCS7: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CBC_PKCS7: invalid with DES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_PKCS7: invalid with AES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_PKCS7: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_PKCS7: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CBC_PKCS7: invalid with DES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_PKCS7: invalid with AES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_PKCS7: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_PKCS7: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CBC_PKCS7: invalid with DES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CBC_PKCS7: invalid -depends_on:PSA_WANT_ALG_CBC_PKCS7 -key_derivation_fail:PSA_ALG_CBC_PKCS7:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_PKCS7: invalid with AES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_PKCS7: invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_PKCS7: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CBC_PKCS7: invalid with DES -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CBC_PKCS7:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CCM: invalid -depends_on:PSA_WANT_ALG_CCM -hash_fail:PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM: invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM: invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: !CCM with AES -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead CCM: !CCM with ARIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead CCM: !CCM with CAMELLIA -depends_on:!PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead CCM: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with DES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM: invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM: invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CCM: invalid -depends_on:PSA_WANT_ALG_CCM -key_derivation_fail:PSA_ALG_CCM:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM: invalid with AES -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CCM_STAR_NO_TAG: invalid -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG -hash_fail:PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM_STAR_NO_TAG: invalid with AES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM_STAR_NO_TAG: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CCM_STAR_NO_TAG: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with AES -depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with ARIA -depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CCM_STAR_NO_TAG: !CCM_STAR_NO_TAG with CAMELLIA -depends_on:!PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CCM_STAR_NO_TAG: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with DES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with HMAC -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CCM_STAR_NO_TAG: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM_STAR_NO_TAG: invalid with AES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM_STAR_NO_TAG: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CCM_STAR_NO_TAG: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM_STAR_NO_TAG: invalid with AES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM_STAR_NO_TAG: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CCM_STAR_NO_TAG: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with AES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CCM_STAR_NO_TAG: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CCM_STAR_NO_TAG: invalid -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG -key_derivation_fail:PSA_ALG_CCM_STAR_NO_TAG:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM_STAR_NO_TAG: invalid with AES -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM_STAR_NO_TAG: invalid with ARIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CCM_STAR_NO_TAG: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CCM_STAR_NO_TAG:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CFB: invalid -depends_on:PSA_WANT_ALG_CFB -hash_fail:PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CFB: invalid with AES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CFB: invalid with ARIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CFB: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: !CFB with AES -depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CFB: !CFB with ARIA -depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CFB: !CFB with CAMELLIA -depends_on:!PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CFB: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with DES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with HMAC -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CFB: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CFB: invalid with AES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CFB: invalid with ARIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CFB: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CFB: invalid with AES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CFB: invalid with ARIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CFB: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CFB: invalid with AES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CFB: invalid with ARIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CFB: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CFB: invalid -depends_on:PSA_WANT_ALG_CFB -key_derivation_fail:PSA_ALG_CFB:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CFB: invalid with AES -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CFB: invalid with ARIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CFB: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CHACHA20_POLY1305: invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -hash_fail:PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CHACHA20_POLY1305: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CHACHA20_POLY1305: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with AES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ARIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: !CHACHA20_POLY1305 with CHACHA20 -depends_on:!PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_NOT_SUPPORTED - -PSA aead CHACHA20_POLY1305: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with DES -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with HMAC -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CHACHA20_POLY1305: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CHACHA20_POLY1305: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CHACHA20_POLY1305: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CHACHA20_POLY1305: invalid -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305 -key_derivation_fail:PSA_ALG_CHACHA20_POLY1305:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CHACHA20_POLY1305: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CHACHA20_POLY1305:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CMAC: invalid -depends_on:PSA_WANT_ALG_CMAC -hash_fail:PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: !CMAC with AES -depends_on:!PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_NOT_SUPPORTED - -PSA mac CMAC: incompatible with ARIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with DES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with HMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CMAC: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CMAC: invalid with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CMAC: invalid with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CMAC: invalid with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CMAC: invalid with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CMAC: invalid -depends_on:PSA_WANT_ALG_CMAC -key_derivation_fail:PSA_ALG_CMAC:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CMAC: invalid with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CMAC:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash CTR: invalid -depends_on:PSA_WANT_ALG_CTR -hash_fail:PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CTR: invalid with AES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CTR: invalid with ARIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA mac CTR: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: !CTR with AES -depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CTR: !CTR with ARIA -depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CTR: !CTR with CAMELLIA -depends_on:!PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_NOT_SUPPORTED - -PSA cipher CTR: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with DERIVE -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with DES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with HMAC -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with PEPPER -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher CTR: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CTR: invalid with AES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CTR: invalid with ARIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA aead CTR: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CTR: invalid with AES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CTR: invalid with ARIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign CTR: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CTR: invalid with AES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CTR: invalid with ARIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption CTR: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation CTR: invalid -depends_on:PSA_WANT_ALG_CTR -key_derivation_fail:PSA_ALG_CTR:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CTR: invalid with AES -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CTR: invalid with ARIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement CTR: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_CTR:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(MD5): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(MD5): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(MD5): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_224): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_256): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_384): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_DSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_DSA(SHA_512): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_DSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(MD5): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(MD5): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(MD5): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_224): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_256): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_384): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !DETERMINISTIC_ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign DETERMINISTIC_ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(SHA_512): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement DETERMINISTIC_ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash DETERMINISTIC_ECDSA(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA -hash_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with AES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ARIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with DES -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with HMAC -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DETERMINISTIC_ECDSA(ANY_HASH): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DETERMINISTIC_ECDSA(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA -key_derivation_fail:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(MD5): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(MD5): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(MD5): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_224): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_256): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_384): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA hash DSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign DSA(SHA_512): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_DSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation DSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_DSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECB_NO_PADDING: invalid -depends_on:PSA_WANT_ALG_ECB_NO_PADDING -hash_fail:PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECB_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECB_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECB_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECB_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with AES -depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with ARIA -depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with CAMELLIA -depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher ECB_NO_PADDING: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: !ECB_NO_PADDING with DES -depends_on:!PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_NOT_SUPPORTED - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with HMAC -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECB_NO_PADDING: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECB_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECB_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECB_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECB_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECB_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECB_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECB_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECB_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECB_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECB_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECB_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECB_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECB_NO_PADDING: invalid -depends_on:PSA_WANT_ALG_ECB_NO_PADDING -key_derivation_fail:PSA_ALG_ECB_NO_PADDING:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECB_NO_PADDING: invalid with AES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECB_NO_PADDING: invalid with ARIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECB_NO_PADDING: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECB_NO_PADDING: invalid with DES -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECB_NO_PADDING:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDH: invalid -depends_on:PSA_WANT_ALG_ECDH -hash_fail:PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDH: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDH: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDH: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDH: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDH: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDH: invalid -depends_on:PSA_WANT_ALG_ECDH -key_derivation_fail:PSA_ALG_ECDH:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDH:0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement ECDH: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDH: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(MD5): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): !MD5 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(MD5): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(MD5): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(MD5): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(MD5): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): !RIPEMD160 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(RIPEMD160): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(RIPEMD160): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(RIPEMD160): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): !SHA_1 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_1): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(SHA_1): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_1): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): !SHA_224 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_224): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_224): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(SHA_224): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_224): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): !SHA_256 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_256): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_256): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(SHA_256): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_256): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): !SHA_384 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_384): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_384): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(SHA_384): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_384): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): !ECDSA with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): !SHA_512 with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:!PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA(SHA_512): public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(SHA_512): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(SHA_512): invalid -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA(SHA_512): invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_ECDSA -hash_fail:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA(ANY_HASH): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_ECDSA -key_derivation_fail:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA hash ECDSA_ANY: invalid -depends_on:PSA_WANT_ALG_ECDSA_ANY -hash_fail:PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with AES -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with DES -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: !ECDSA_ANY with ECC_PUBLIC_KEY(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ECDSA_ANY: public with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ECDSA_ANY: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ECDSA_ANY: invalid -depends_on:PSA_WANT_ALG_ECDSA_ANY -key_derivation_fail:PSA_ALG_ECDSA_ANY:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ECDSA_ANY: invalid with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ECDSA_ANY:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ED25519PH: invalid -depends_on:PSA_WANT_ALG_ED25519PH -hash_fail:PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with AES -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ARIA -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with DERIVE -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with DES -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: !ED25519PH with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: !ED25519PH with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ED25519PH: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with HMAC -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with PEPPER -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED25519PH: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ED25519PH: invalid -depends_on:PSA_WANT_ALG_ED25519PH -key_derivation_fail:PSA_ALG_ED25519PH:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ED25519PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ED25519PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED25519PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash ED448PH: invalid -depends_on:PSA_WANT_ALG_ED448PH -hash_fail:PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA mac ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA aead ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with AES -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ARIA -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with DERIVE -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with DES -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: !ED448PH with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: !ED448PH with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign ED448PH: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with HMAC -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with PEPPER -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign ED448PH: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation ED448PH: invalid -depends_on:PSA_WANT_ALG_ED448PH -key_derivation_fail:PSA_ALG_ED448PH:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ED448PH: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement ED448PH: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_ED448PH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash FFDH: invalid -depends_on:PSA_WANT_ALG_FFDH -hash_fail:PSA_ALG_FFDH:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation FFDH: invalid -depends_on:PSA_WANT_ALG_FFDH -key_derivation_fail:PSA_ALG_FFDH:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with AES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ARIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with DERIVE -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with DES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with HMAC -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with PEPPER -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement FFDH: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_FFDH:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash GCM: invalid -depends_on:PSA_WANT_ALG_GCM -hash_fail:PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac GCM: invalid with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac GCM: invalid with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA mac GCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher GCM: invalid with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher GCM: invalid with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher GCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: !GCM with AES -depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead GCM: !GCM with ARIA -depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead GCM: !GCM with CAMELLIA -depends_on:!PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_NOT_SUPPORTED - -PSA aead GCM: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with DERIVE -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DERIVE -aead_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with DES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_DES -aead_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with HMAC -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD -aead_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PASSWORD_HASH -aead_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with PEPPER -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_PEPPER -aead_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -aead_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA aead GCM: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA sign GCM: invalid with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign GCM: invalid with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign GCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption GCM: invalid with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption GCM: invalid with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption GCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation GCM: invalid -depends_on:PSA_WANT_ALG_GCM -key_derivation_fail:PSA_ALG_GCM:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement GCM: invalid with AES -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement GCM: invalid with ARIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement GCM: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_GCM:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HKDF(MD5): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(MD5): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(MD5): !MD5 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(RIPEMD160): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(RIPEMD160): !RIPEMD160 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(SHA_1): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(SHA_1): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(SHA_1): !SHA_1 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(SHA_224): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(SHA_224): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(SHA_224): !SHA_224 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(SHA_256): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(SHA_256): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(SHA_256): !SHA_256 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(SHA_384): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(SHA_384): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(SHA_384): !SHA_384 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF(SHA_512): invalid -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF(SHA_512): !HKDF -depends_on:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF(SHA_512): !SHA_512 -depends_on:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(MD5): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(MD5): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(MD5): !MD5 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(RIPEMD160): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(RIPEMD160): !RIPEMD160 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(SHA_1): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(SHA_1): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(SHA_1): !SHA_1 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(SHA_224): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(SHA_224): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(SHA_224): !SHA_224 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(SHA_256): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(SHA_256): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(SHA_256): !SHA_256 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(SHA_384): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(SHA_384): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(SHA_384): !SHA_384 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXPAND(SHA_512): invalid -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXPAND(SHA_512): !HKDF_EXPAND -depends_on:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXPAND(SHA_512): !SHA_512 -depends_on:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(MD5): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(MD5): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(MD5): !MD5 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(RIPEMD160): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(RIPEMD160): !RIPEMD160 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(SHA_1): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(SHA_1): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(SHA_1): !SHA_1 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(SHA_224): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(SHA_224): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(SHA_224): !SHA_224 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(SHA_256): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(SHA_256): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(SHA_256): !SHA_256 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(SHA_384): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(SHA_384): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(SHA_384): !SHA_384 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash HKDF_EXTRACT(SHA_512): invalid -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HKDF_EXTRACT(SHA_512): !HKDF_EXTRACT -depends_on:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation HKDF_EXTRACT(SHA_512): !SHA_512 -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash HMAC(MD5): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(MD5): !MD5 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(MD5): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(MD5): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(MD5): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(MD5): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(MD5): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(MD5): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(MD5): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(RIPEMD160): !RIPEMD160 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(RIPEMD160): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(RIPEMD160): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(RIPEMD160): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(RIPEMD160): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(RIPEMD160): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(RIPEMD160): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(SHA_1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_1): !SHA_1 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(SHA_1): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(SHA_1): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(SHA_1): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(SHA_1): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(SHA_1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(SHA_1): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(SHA_224): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_224): !SHA_224 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_224): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(SHA_224): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(SHA_224): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(SHA_224): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(SHA_224): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(SHA_224): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(SHA_224): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(SHA_256): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_256): !SHA_256 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_256): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(SHA_256): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(SHA_256): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(SHA_256): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(SHA_256): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(SHA_256): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(SHA_256): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(SHA_384): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_384): !SHA_384 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_384): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(SHA_384): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(SHA_384): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(SHA_384): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(SHA_384): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(SHA_384): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(SHA_384): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash HMAC(SHA_512): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): !HMAC with HMAC -depends_on:!PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_512): !SHA_512 with HMAC -depends_on:PSA_WANT_ALG_HMAC:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA mac HMAC(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac HMAC(SHA_512): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher HMAC(SHA_512): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead HMAC(SHA_512): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -aead_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign HMAC(SHA_512): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption HMAC(SHA_512): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation HMAC(SHA_512): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement HMAC(SHA_512): invalid with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_HMAC(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash JPAKE: invalid -depends_on:PSA_WANT_ALG_JPAKE -hash_fail:PSA_ALG_JPAKE:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation JPAKE: invalid -depends_on:PSA_WANT_ALG_JPAKE -key_derivation_fail:PSA_ALG_JPAKE:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !HKDF with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(FFDH,HKDF(SHA_256)): invalid -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !FFDH -depends_on:!PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !HKDF -depends_on:PSA_WANT_ALG_FFDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !HKDF with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !HKDF_EXPAND with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXPAND(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !HKDF_EXTRACT with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:!PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,HKDF_EXTRACT(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): !TLS12_PRF with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PRF(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !SHA_256 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_256)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA mac KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA aead KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): invalid with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(MONTGOMERY) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECP_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_K1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R1) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !ECDH with ECC_KEY_PAIR(SECT_R2) -depends_on:!PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !SHA_384 with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): !TLS12_PSK_TO_MS with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(ECDH,TLS12_PSK_TO_MS(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash KEY_AGREEMENT(FFDH,HKDF(SHA_384)): invalid -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !FFDH -depends_on:!PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !HKDF -depends_on:PSA_WANT_ALG_FFDH:!PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation KEY_AGREEMENT(FFDH,HKDF(SHA_384)): !SHA_384 -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):PSA_ERROR_NOT_SUPPORTED - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with AES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ARIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with DERIVE -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -key_agreement_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with DES -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -key_agreement_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with HMAC -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_agreement_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -key_agreement_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_agreement_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with PEPPER -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -key_agreement_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_agreement_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement KEY_AGREEMENT(FFDH,HKDF(SHA_384)): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash MD5: !MD5 -depends_on:!PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_MD5:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation MD5: invalid -depends_on:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_MD5:PSA_ERROR_INVALID_ARGUMENT - -PSA hash OFB: invalid -depends_on:PSA_WANT_ALG_OFB -hash_fail:PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA mac OFB: invalid with AES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: !OFB with AES -depends_on:!PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_NOT_SUPPORTED - -PSA cipher OFB: incompatible with ARIA -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with DERIVE -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with DES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with HMAC -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with PEPPER -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher OFB: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA aead OFB: invalid with AES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA sign OFB: invalid with AES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption OFB: invalid with AES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation OFB: invalid -depends_on:PSA_WANT_ALG_OFB -key_derivation_fail:PSA_ALG_OFB:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement OFB: invalid with AES -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_OFB:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash PBKDF2_AES_CMAC_PRF_128: invalid -depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 -hash_fail:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_AES_CMAC_PRF_128: !PBKDF2_AES_CMAC_PRF_128 -depends_on:!PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 -key_derivation_fail:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(MD5): !MD5 -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(MD5): !PBKDF2_HMAC -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_PBKDF2_HMAC -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(RIPEMD160): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(RIPEMD160): !RIPEMD160 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(SHA_1): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(SHA_1): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(SHA_1): !SHA_1 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(SHA_224): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(SHA_224): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(SHA_224): !SHA_224 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(SHA_256): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(SHA_256): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(SHA_256): !SHA_256 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(SHA_384): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(SHA_384): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(SHA_384): !SHA_384 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash PBKDF2_HMAC(SHA_512): invalid -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PBKDF2_HMAC(SHA_512): !PBKDF2_HMAC -depends_on:!PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation PBKDF2_HMAC(SHA_512): !SHA_512 -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:!PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash PURE_EDDSA: invalid -depends_on:PSA_WANT_ALG_PURE_EDDSA -hash_fail:PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA mac PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA mac PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA aead PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -aead_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA aead PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with AES -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ARIA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with DERIVE -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with DES -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: !PURE_EDDSA with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: !PURE_EDDSA with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:!PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign PURE_EDDSA: public with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:1:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with HMAC -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with PEPPER -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign PURE_EDDSA: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation PURE_EDDSA: invalid -depends_on:PSA_WANT_ALG_PURE_EDDSA -key_derivation_fail:PSA_ALG_PURE_EDDSA:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement PURE_EDDSA: invalid with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement PURE_EDDSA: invalid with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_PURE_EDDSA:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RIPEMD160: !RIPEMD160 -depends_on:!PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_RIPEMD160:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation RIPEMD160: invalid -depends_on:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_RIPEMD160:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(MD5): !MD5 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(MD5): !RSA_OAEP with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(MD5): !MD5 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(MD5): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(MD5): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RSA_OAEP with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(RIPEMD160): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_1): !RSA_OAEP with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_1): !SHA_1 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_1): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_1): !SHA_1 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_1): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_224): !RSA_OAEP with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_224): !SHA_224 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_224): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_224): !SHA_224 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_224): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_256): !RSA_OAEP with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_256): !SHA_256 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_256): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_256): !SHA_256 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_256): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_384): !RSA_OAEP with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_384): !SHA_384 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_384): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_384): !SHA_384 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_384): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_OAEP(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_OAEP(SHA_512): !RSA_OAEP with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_512): !SHA_512 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_512): !RSA_OAEP with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_512): !SHA_512 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_OAEP(SHA_512): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_OAEP(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_OAEP(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_CRYPT: invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT -hash_fail:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_DERIVE -asymmetric_encryption_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_DES -asymmetric_encryption_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_HMAC -asymmetric_encryption_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PASSWORD -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PASSWORD_HASH -asymmetric_encryption_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_PEPPER -asymmetric_encryption_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA -asymmetric_encryption_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: !RSA_PKCS1V15_CRYPT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: !RSA_PKCS1V15_CRYPT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_NOT_SUPPORTED - -PSA asymmetric_encryption RSA_PKCS1V15_CRYPT: public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:1:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_CRYPT: invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_CRYPT:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_CRYPT: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_CRYPT: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_CRYPT:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(MD5): !MD5 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(MD5): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(MD5): !MD5 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(MD5): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(MD5): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(RIPEMD160): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): !SHA_1 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): !SHA_1 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_1): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): !SHA_224 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): !SHA_224 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_224): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): !SHA_256 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): !SHA_256 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_256): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): !SHA_384 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): !SHA_384 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_384): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): !RSA_PKCS1V15_SIGN with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): !SHA_512 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): !RSA_PKCS1V15_SIGN with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): !SHA_512 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN(SHA_512): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN(ANY_HASH): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PKCS1V15_SIGN_RAW: invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW -hash_fail:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PKCS1V15_SIGN_RAW: !RSA_PKCS1V15_SIGN_RAW with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN_RAW: !RSA_PKCS1V15_SIGN_RAW with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PKCS1V15_SIGN_RAW: public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PKCS1V15_SIGN_RAW: invalid -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW -key_derivation_fail:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN_RAW: invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PKCS1V15_SIGN_RAW: invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(MD5): !MD5 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(MD5): !RSA_PSS with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(MD5): !MD5 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(MD5): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(MD5): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(RIPEMD160): !RSA_PSS with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(RIPEMD160): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(RIPEMD160): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_1): !RSA_PSS with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_1): !SHA_1 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_1): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_1): !SHA_1 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_1): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_224): !RSA_PSS with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_224): !SHA_224 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_224): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_224): !SHA_224 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_224): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_256): !RSA_PSS with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_256): !SHA_256 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_256): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_256): !SHA_256 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_256): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_384): !RSA_PSS with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_384): !SHA_384 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_384): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_384): !SHA_384 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_384): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(SHA_512): !RSA_PSS with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_512): !SHA_512 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_512): !RSA_PSS with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_512): !SHA_512 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS(SHA_512): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PSS -hash_fail:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS(ANY_HASH): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PSS -key_derivation_fail:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with AES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ARIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with DERIVE -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with DES -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with HMAC -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with PEPPER -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(MD5): !MD5 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(MD5): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(MD5): !MD5 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(MD5): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(MD5): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(MD5): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(MD5): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with AES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ARIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with DES -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with HMAC -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RIPEMD160 with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RIPEMD160 with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(RIPEMD160): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(RIPEMD160): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_1): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_1): !SHA_1 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_1): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_1): !SHA_1 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_1): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(SHA_1): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_1): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_224): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_224): !SHA_224 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_224): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_224): !SHA_224 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_224): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(SHA_224): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_224): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_256): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_256): !SHA_256 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_256): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_256): !SHA_256 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_256): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(SHA_256): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_256): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_384): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_384): !SHA_384 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_384): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_384): !SHA_384 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_384): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(SHA_384): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_384): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA mac RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -aead_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA aead RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -aead_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(SHA_512): !RSA_PSS_ANY_SALT with RSA_KEY_PAIR -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_512): !SHA_512 with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_512): !RSA_PSS_ANY_SALT with RSA_PUBLIC_KEY -depends_on:!PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_512): !SHA_512 with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:!PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_NOT_SUPPORTED - -PSA sign RSA_PSS_ANY_SALT(SHA_512): public with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):1:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -asymmetric_encryption_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(SHA_512): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_agreement_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement RSA_PSS_ANY_SALT(SHA_512): invalid with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_agreement_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash RSA_PSS_ANY_SALT(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT -hash_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with AES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ARIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with DERIVE -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DERIVE -sign_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with DES -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_DES -sign_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -sign_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with HMAC -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_HMAC -sign_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD -sign_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PASSWORD_HASH -sign_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with PEPPER -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_PEPPER -sign_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -sign_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -sign_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign RSA_PSS_ANY_SALT(ANY_HASH): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -sign_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation RSA_PSS_ANY_SALT(ANY_HASH): invalid -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT -key_derivation_fail:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA3_224: !SHA3_224 -depends_on:!PSA_WANT_ALG_SHA3_224 -hash_fail:PSA_ALG_SHA3_224:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA3_224: invalid -depends_on:PSA_WANT_ALG_SHA3_224 -key_derivation_fail:PSA_ALG_SHA3_224:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA3_256: !SHA3_256 -depends_on:!PSA_WANT_ALG_SHA3_256 -hash_fail:PSA_ALG_SHA3_256:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA3_256: invalid -depends_on:PSA_WANT_ALG_SHA3_256 -key_derivation_fail:PSA_ALG_SHA3_256:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA3_384: !SHA3_384 -depends_on:!PSA_WANT_ALG_SHA3_384 -hash_fail:PSA_ALG_SHA3_384:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA3_384: invalid -depends_on:PSA_WANT_ALG_SHA3_384 -key_derivation_fail:PSA_ALG_SHA3_384:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA3_512: !SHA3_512 -depends_on:!PSA_WANT_ALG_SHA3_512 -hash_fail:PSA_ALG_SHA3_512:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA3_512: invalid -depends_on:PSA_WANT_ALG_SHA3_512 -key_derivation_fail:PSA_ALG_SHA3_512:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHAKE256_512: !SHAKE256_512 -depends_on:!PSA_WANT_ALG_SHAKE256_512 -hash_fail:PSA_ALG_SHAKE256_512:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHAKE256_512: invalid -depends_on:PSA_WANT_ALG_SHAKE256_512 -key_derivation_fail:PSA_ALG_SHAKE256_512:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_1: !SHA_1 -depends_on:!PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_SHA_1:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_1: invalid -depends_on:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_SHA_1:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_224: !SHA_224 -depends_on:!PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_SHA_224:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_224: invalid -depends_on:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_SHA_224:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_256: !SHA_256 -depends_on:!PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_SHA_256:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_256: invalid -depends_on:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_SHA_256:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_384: !SHA_384 -depends_on:!PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_SHA_384:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_384: invalid -depends_on:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_SHA_384:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_512: !SHA_512 -depends_on:!PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_SHA_512:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_512: invalid -depends_on:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_SHA_512:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_512_224: !SHA_512_224 -depends_on:!PSA_WANT_ALG_SHA_512_224 -hash_fail:PSA_ALG_SHA_512_224:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_512_224: invalid -depends_on:PSA_WANT_ALG_SHA_512_224 -key_derivation_fail:PSA_ALG_SHA_512_224:PSA_ERROR_INVALID_ARGUMENT - -PSA hash SHA_512_256: !SHA_512_256 -depends_on:!PSA_WANT_ALG_SHA_512_256 -hash_fail:PSA_ALG_SHA_512_256:PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation SHA_512_256: invalid -depends_on:PSA_WANT_ALG_SHA_512_256 -key_derivation_fail:PSA_ALG_SHA_512_256:PSA_ERROR_INVALID_ARGUMENT - -PSA hash STREAM_CIPHER: invalid -depends_on:PSA_WANT_ALG_STREAM_CIPHER -hash_fail:PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA mac STREAM_CIPHER: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with AES -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ARIA -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: !STREAM_CIPHER with CHACHA20 -depends_on:!PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_NOT_SUPPORTED - -PSA cipher STREAM_CIPHER: incompatible with DERIVE -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with DES -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with HMAC -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with PEPPER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher STREAM_CIPHER: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA aead STREAM_CIPHER: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -aead_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA sign STREAM_CIPHER: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -sign_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption STREAM_CIPHER: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -asymmetric_encryption_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation STREAM_CIPHER: invalid -depends_on:PSA_WANT_ALG_STREAM_CIPHER -key_derivation_fail:PSA_ALG_STREAM_CIPHER:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement STREAM_CIPHER: invalid with CHACHA20 -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -key_agreement_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_STREAM_CIPHER:0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash TLS12_ECJPAKE_TO_PMS: invalid -depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS -hash_fail:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_ECJPAKE_TO_PMS: !TLS12_ECJPAKE_TO_PMS -depends_on:!PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS -key_derivation_fail:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(MD5): !MD5 -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(MD5): !TLS12_PRF -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(RIPEMD160): !RIPEMD160 -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(RIPEMD160): !TLS12_PRF -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(SHA_1): invalid -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(SHA_1): !SHA_1 -depends_on:!PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(SHA_1): !TLS12_PRF -depends_on:PSA_WANT_ALG_SHA_1:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(SHA_224): invalid -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(SHA_224): !SHA_224 -depends_on:!PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(SHA_224): !TLS12_PRF -depends_on:PSA_WANT_ALG_SHA_224:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(SHA_256): invalid -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(SHA_256): !SHA_256 -depends_on:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(SHA_256): !TLS12_PRF -depends_on:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(SHA_384): invalid -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(SHA_384): !SHA_384 -depends_on:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(SHA_384): !TLS12_PRF -depends_on:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PRF(SHA_512): invalid -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF -hash_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PRF(SHA_512): !SHA_512 -depends_on:!PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PRF(SHA_512): !TLS12_PRF -depends_on:PSA_WANT_ALG_SHA_512:!PSA_WANT_ALG_TLS12_PRF -key_derivation_fail:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(MD5): invalid -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(MD5): !MD5 -depends_on:!PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(MD5): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_MD5:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(RIPEMD160): invalid -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(RIPEMD160): !RIPEMD160 -depends_on:!PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(RIPEMD160): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_RIPEMD160:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(SHA_1): invalid -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(SHA_1): !SHA_1 -depends_on:!PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(SHA_1): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_SHA_1:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(SHA_224): invalid -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(SHA_224): !SHA_224 -depends_on:!PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(SHA_224): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_SHA_224:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(SHA_256): invalid -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(SHA_256): !SHA_256 -depends_on:!PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(SHA_256): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_SHA_256:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(SHA_384): invalid -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(SHA_384): !SHA_384 -depends_on:!PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(SHA_384): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_SHA_384:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):PSA_ERROR_NOT_SUPPORTED - -PSA hash TLS12_PSK_TO_MS(SHA_512): invalid -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS -hash_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TLS12_PSK_TO_MS(SHA_512): !SHA_512 -depends_on:!PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA key_derivation TLS12_PSK_TO_MS(SHA_512): !TLS12_PSK_TO_MS -depends_on:PSA_WANT_ALG_SHA_512:!PSA_WANT_ALG_TLS12_PSK_TO_MS -key_derivation_fail:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):PSA_ERROR_NOT_SUPPORTED - -PSA hash TRUNCATED_MAC(CBC_MAC,1): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,1): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CMAC,1): invalid -depends_on:PSA_WANT_ALG_CMAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with AES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ARIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with DES -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with HMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CMAC,1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CMAC,1): invalid -depends_on:PSA_WANT_ALG_CMAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC,1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(MD5),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(MD5),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(MD5),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(RIPEMD160),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(RIPEMD160),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(RIPEMD160),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(SHA_1),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_1),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(SHA_1),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(SHA_224),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_224),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(SHA_224),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(SHA_256),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_256),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(SHA_256),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(SHA_384),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_384),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(SHA_384),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(HMAC(SHA_512),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with AES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ARIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with DERIVE -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with DES -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with HMAC -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with PEPPER -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(HMAC(SHA_512),1): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(HMAC(SHA_512),1): invalid -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512 -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512),1):PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CBC_MAC,4): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with AES -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with ARIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,4): !CBC_MAC with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,4): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,4): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,4): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CBC_MAC,13): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with AES -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with ARIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,13): !CBC_MAC with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,13): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,13): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,13): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CBC_MAC,14): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with AES -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with ARIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,14): !CBC_MAC with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,14): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,14): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,14): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CBC_MAC,16): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with AES -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with ARIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,16): !CBC_MAC with CAMELLIA -depends_on:!PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_NOT_SUPPORTED - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,16): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA cipher TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA aead TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,16): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement TRUNCATED_MAC(CBC_MAC,16): invalid with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0:PSA_ERROR_INVALID_ARGUMENT - -PSA hash TRUNCATED_MAC(CBC_MAC,63): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -hash_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with AES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ARIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with CAMELLIA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CHACHA20 -mac_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with DERIVE -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DERIVE -mac_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with DES -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_DES -mac_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -mac_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with HMAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_HMAC -mac_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PASSWORD -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD -mac_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PASSWORD_HASH -mac_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with PEPPER -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_PEPPER -mac_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -mac_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -mac_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA mac TRUNCATED_MAC(CBC_MAC,63): incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -mac_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation TRUNCATED_MAC(CBC_MAC,63): invalid -depends_on:PSA_WANT_ALG_CBC_MAC -key_derivation_fail:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,63):PSA_ERROR_INVALID_ARGUMENT - -PSA hash XTS: invalid -depends_on:PSA_WANT_ALG_XTS -hash_fail:PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA mac XTS: invalid with AES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -mac_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA mac XTS: invalid with ARIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -mac_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA mac XTS: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -mac_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: !XTS with AES -depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -cipher_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED - -PSA cipher XTS: !XTS with ARIA -depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -cipher_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED - -PSA cipher XTS: !XTS with CAMELLIA -depends_on:!PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -cipher_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_NOT_SUPPORTED - -PSA cipher XTS: incompatible with CHACHA20 -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CHACHA20 -cipher_fail:PSA_KEY_TYPE_CHACHA20:"48657265006973206b6579a06461746148657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with DERIVE -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_DERIVE -cipher_fail:PSA_KEY_TYPE_DERIVE:"48657265006973206b6579a0646174":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with DES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_DES -cipher_fail:PSA_KEY_TYPE_DES:"644573206b457901":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(MONTGOMERY) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_K1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):"297ac1722ccac7589ecb240dc719842538ca974beb79f228":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECP_R2) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_K1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(SECT_R2) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):"0210b482a458b4822d0cb21daa96819a67c8062d34":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_KEY_PAIR(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(BRAINPOOL_P_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_BRAINPOOL_P_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(MONTGOMERY) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_MONTGOMERY:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_K1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECP_R2) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECP_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_K1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_K1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_R1) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R1:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(SECT_R2) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_SECT_R2:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with ECC_PUBLIC_KEY(TWISTED_EDWARDS) -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_ECC_FAMILY_TWISTED_EDWARDS:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with HMAC -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_HMAC -cipher_fail:PSA_KEY_TYPE_HMAC:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with PASSWORD -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PASSWORD -cipher_fail:PSA_KEY_TYPE_PASSWORD:"486572650069":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with PASSWORD_HASH -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PASSWORD_HASH -cipher_fail:PSA_KEY_TYPE_PASSWORD_HASH:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with PEPPER -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_PEPPER -cipher_fail:PSA_KEY_TYPE_PEPPER:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with RAW_DATA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA -cipher_fail:PSA_KEY_TYPE_RAW_DATA:"48":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with RSA_KEY_PAIR -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -cipher_fail:PSA_KEY_TYPE_RSA_KEY_PAIR:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA cipher XTS: incompatible with RSA_PUBLIC_KEY -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -cipher_fail:PSA_KEY_TYPE_RSA_PUBLIC_KEY:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA aead XTS: invalid with AES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -aead_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA aead XTS: invalid with ARIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -aead_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA aead XTS: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -aead_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA sign XTS: invalid with AES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -sign_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign XTS: invalid with ARIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -sign_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA sign XTS: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -sign_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption XTS: invalid with AES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -asymmetric_encryption_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption XTS: invalid with ARIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -asymmetric_encryption_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA asymmetric_encryption XTS: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -asymmetric_encryption_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_derivation XTS: invalid -depends_on:PSA_WANT_ALG_XTS -key_derivation_fail:PSA_ALG_XTS:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement XTS: invalid with AES -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_agreement_fail:PSA_KEY_TYPE_AES:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement XTS: invalid with ARIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_agreement_fail:PSA_KEY_TYPE_ARIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -PSA key_agreement XTS: invalid with CAMELLIA -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_agreement_fail:PSA_KEY_TYPE_CAMELLIA:"48657265006973206b6579a064617461":PSA_ALG_XTS:0:PSA_ERROR_INVALID_ARGUMENT - -# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_storage_format.current.data b/tests/suites/test_suite_psa_crypto_storage_format.current.data deleted file mode 100644 index d0d54c5a7..000000000 --- a/tests/suites/test_suite_psa_crypto_storage_format.current.data +++ /dev/null @@ -1,8035 +0,0 @@ -# Automatically generated by generate_psa_tests.py. Do not edit! - -save lifetime: (DEFAULT,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_DEFAULT, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c" - -save lifetime: (2,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(2, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000200000001100800010000000000000000000000010000004c" - -save lifetime: (254,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(254, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000fe00000001100800010000000000000000000000010000004c" - -save lifetime: PERSISTENT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:PSA_KEY_LIFETIME_PERSISTENT:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c" - -save usage without implication: 0 -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b" - -save usage without implication: COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b" - -save usage without implication: DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b" - -save usage without implication: DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b" - -save usage without implication: ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b" - -save usage without implication: EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b" - -save usage without implication: SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b" - -save usage without implication: SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b" - -save usage without implication: VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b" - -save usage without implication: VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b" - -save usage without implication: VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b" - -save usage without implication: COPY|DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b" - -save usage without implication: DECRYPT|DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b" - -save usage without implication: DERIVE|ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b" - -save usage without implication: ENCRYPT|EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b" - -save usage without implication: EXPORT|SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011400000000000000000000010000004b" - -save usage without implication: SIGN_HASH|SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b" - -save usage without implication: SIGN_MESSAGE|VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b" - -save usage without implication: VERIFY_DERIVATION|VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a800000000000000000000010000004b" - -save usage without implication: VERIFY_HASH|VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b" - -save usage without implication: VERIFY_MESSAGE|COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b" - -save usage without implication: all known -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080003ff00000000000000000000010000004b" - -save type: AES 128-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014405000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014e05000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c003000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000404004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000414004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000013c004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000011c004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000002c003000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000010c004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000444004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000025005000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000012c004000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c403000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001cd03000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001ce03000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001d003000000001000000048657265006973206b6579a064617461" - -save type: AES 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000ff4004000000001000000048657265006973206b6579a064617461" - -save type: AES 192-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000002c003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000012c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: AES 256-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000002c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000012c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: AES 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_save:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014405000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014e05000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c003000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000404004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000414004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000013c004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000011c004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000010c004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000444004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000025005000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c403000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001cd03000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001ce03000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001d003000000001000000048657265006973206b6579a064617461" - -save type: ARIA 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000ff4004000000001000000048657265006973206b6579a064617461" - -save type: ARIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: ARIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: ARIA 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_save:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014405000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014e05000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c003000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000404004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000414004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000013c004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000011c004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000010c004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000444004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000025005000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c403000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001cd03000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001ce03000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001d003000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000ff4004000000001000000048657265006973206b6579a064617461" - -save type: CAMELLIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320" - -save type: CAMELLIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CAMELLIA 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_save:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CHACHA20 256-bit -depends_on:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CHACHA20 256-bit, CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000051005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: CHACHA20 256-bit, STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_save:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000018004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: DERIVE 120-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -key_storage_save:0x0001:PSA_KEY_TYPE_DERIVE:120:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174":"505341004b4559000000000001000000001278000100000000000000000000000f00000048657265006973206b6579a0646174" - -save type: DERIVE 128-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -key_storage_save:0x0001:PSA_KEY_TYPE_DERIVE:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001280000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: DES 64-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001000000000000000000000008000000644573206b457901" - -save type: DES 64-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004040040000000008000000644573206b457901" - -save type: DES 64-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004140040000000008000000644573206b457901" - -save type: DES 64-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004440040000000008000000644573206b457901" - -save type: DES 128-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001000000000000000000000010000000644573206b457901644573206b457902" - -save type: DES 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004040040000000010000000644573206b457901644573206b457902" - -save type: DES 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004140040000000010000000644573206b457901644573206b457902" - -save type: DES 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004440040000000010000000644573206b457901644573206b457902" - -save type: DES 192-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001000000000000000000000018000000644573206b457901644573206b457902644573206b457904" - -save type: DES 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004040040000000018000000644573206b457901644573206b457902644573206b457904" - -save type: DES 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004140040000000018000000644573206b457901644573206b457902644573206b457904" - -save type: DES 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_save:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004440040000000018000000644573206b457901644573206b457902644573206b457904" - -save type: ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000100000000000000000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000000000209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000000060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac" - -save type: ECC_PAIR(BP_R1) 192-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000010000000000000000000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000307000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000407000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000507000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000807000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000907000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000000020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000306000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000406000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000506000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000806000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000906000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000006000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000901020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a01020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000905020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a05020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000904020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a04020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000902020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a02020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000903020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a03020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f" - -save type: ECC_PAIR(BP_R1) 224-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000100000000000000000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000000000209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000000060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c" - -save type: ECC_PAIR(BP_R1) 256-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001010000000000000000000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000307000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000407000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000507000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000807000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000907000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000000020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000306000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000406000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000506000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000806000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000906000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000006000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000901020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a01020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000905020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a05020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000904020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a04020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000902020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a02020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000903020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a03020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff" - -save type: ECC_PAIR(BP_R1) 320-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010100000000000000000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000000000209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000000060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead" - -save type: ECC_PAIR(BP_R1) 384-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001010000000000000000000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000307000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000407000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000507000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000807000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000907000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000000020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000306000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000406000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000506000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000806000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000906000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000006000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000901020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a01020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000905020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a05020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000904020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a04020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000902020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a02020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000903020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a03020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb" - -save type: ECC_PAIR(BP_R1) 512-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201000000000000000000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000000002090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000000600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2" - -save type: ECC_PAIR(MGM) 255-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000100000000000000000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000000000209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a" - -save type: ECC_PAIR(MGM) 448-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101000000000000000000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000000002090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1" - -save type: ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001000000000000000000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000000002090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000000600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228" - -save type: ECC_PAIR(SECP_K1) 224-bit -depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000100000000000000000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000000000209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000000060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8" - -save type: ECC_PAIR(SECP_K1) 256-bit -depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001010000000000000000000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000307000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000407000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000507000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000807000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000907000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000000020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000306000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000406000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000506000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000806000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000906000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000006000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000901020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a01020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000905020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a05020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000904020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a04020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000902020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a02020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000903020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a03020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9" - -save type: ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000100000000000000000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000000000209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000000060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995" - -save type: ECC_PAIR(SECP_R1) 256-bit -depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010100000000000000000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000000000209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000000060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee" - -save type: ECC_PAIR(SECP_R1) 384-bit -depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001010000000000000000000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000307000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000407000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000507000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000807000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000907000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000000020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000306000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000406000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000506000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000806000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000906000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000006000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000901020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a01020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000905020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a05020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000904020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a04020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000902020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a02020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000903020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a03020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a" - -save type: ECC_PAIR(SECP_R1) 521-bit -depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020100000000000000000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000000000209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000000060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae" - -save type: ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000100000000000000000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000000000209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000000060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e" - -save type: ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000100000000000000000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000000000209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000000060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71" - -save type: ECC_PAIR(SECT_K1) 233-bit -depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000100000000000000000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000000000209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000000060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8" - -save type: ECC_PAIR(SECT_K1) 239-bit -depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000100000000000000000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000000000209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000000060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61" - -save type: ECC_PAIR(SECT_K1) 283-bit -depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101000000000000000000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000000002090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000000600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0" - -save type: ECC_PAIR(SECT_K1) 409-bit -depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901010000000000000000000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000307000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000407000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000507000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000807000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000907000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000000020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000306000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000406000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000506000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000806000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000906000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000006000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000901020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a01020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000905020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a05020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000904020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a04020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000902020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a02020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000903020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a03020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8" - -save type: ECC_PAIR(SECT_K1) 571-bit -depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201000000000000000000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000000002090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000000600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51" - -save type: ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001000000000000000000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000000002090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000000600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50" - -save type: ECC_PAIR(SECT_R1) 233-bit -depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000100000000000000000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000000000209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000000060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f" - -save type: ECC_PAIR(SECT_R1) 283-bit -depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101000000000000000000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000000002090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000000600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad" - -save type: ECC_PAIR(SECT_R1) 409-bit -depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010100000000000000000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000000000209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000000060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64" - -save type: ECC_PAIR(SECT_R1) 571-bit -depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201000000000000000000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000000002090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000000600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1" - -save type: ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300010000000000000000000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000307000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000407000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000507000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000807000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000000020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000306000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000406000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000506000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000806000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000006000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000901020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a01020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000905020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a05020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000904020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a04020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000902020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a02020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000903020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a03020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34" - -save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00010000000000000000000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -save type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000008000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60" - -save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001010000000000000000000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000b09000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00001509000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -save type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000008000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b" - -save type: ECC_PUB(BP_R1) 160-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000100000000000000000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000000060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c" - -save type: ECC_PUB(BP_R1) 192-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001000000000000000000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000000600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88" - -save type: ECC_PUB(BP_R1) 224-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001000000000000000000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000000600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc" - -save type: ECC_PUB(BP_R1) 256-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010100000000000000000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000000060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d" - -save type: ECC_PUB(BP_R1) 320-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101000000000000000000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 320-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000000600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd" - -save type: ECC_PUB(BP_R1) 384-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010100000000000000000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000000060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a" - -save type: ECC_PUB(BP_R1) 512-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002010000000000000000000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000307000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000407000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000507000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000807000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000907000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000306000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000406000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000506000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000806000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000906000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(BP_R1) 512-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000006000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a" - -save type: ECC_PUB(MGM) 255-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":"505341004b45590000000000010000004141ff00010000000000000000000000200000008520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a" - -save type: ECC_PUB(MGM) 448-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":"505341004b45590000000000010000004141c00101000000000000000000000038000000c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e" - -save type: ECC_PUB(SECP_K1) 192-bit -depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000010000000000000000000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000307000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000407000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000507000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000807000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000306000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000406000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000506000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000806000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000006000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5" - -save type: ECC_PUB(SECP_K1) 224-bit -depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001000000000000000000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000000600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d" - -save type: ECC_PUB(SECP_K1) 256-bit -depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101000000000000000000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_K1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000000600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d" - -save type: ECC_PUB(SECP_R1) 225-bit -depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001000000000000000000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 225-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000000600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160" - -save type: ECC_PUB(SECP_R1) 256-bit -depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101000000000000000000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000000600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45" - -save type: ECC_PUB(SECP_R1) 384-bit -depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010100000000000000000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000000060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747" - -save type: ECC_PUB(SECP_R1) 521-bit -depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020100000000000000000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R1) 521-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000000060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1" - -save type: ECC_PUB(SECP_R2) 160-bit -depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001000000000000000000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECP_R2) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000000600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b" - -save type: ECC_PUB(SECT_K1) 163-bit -depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000100000000000000000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000000060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9" - -save type: ECC_PUB(SECT_K1) 233-bit -depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000100000000000000000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000000060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f" - -save type: ECC_PUB(SECT_K1) 239-bit -depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000100000000000000000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 239-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000000060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d" - -save type: ECC_PUB(SECT_K1) 283-bit -depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01010000000000000000000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000307000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000407000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000507000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000807000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000907000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000306000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000406000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000506000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000806000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000906000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000006000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3" - -save type: ECC_PUB(SECT_K1) 409-bit -depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010100000000000000000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000000060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b" - -save type: ECC_PUB(SECT_K1) 571-bit -depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020100000000000000000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_K1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000000060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a" - -save type: ECC_PUB(SECT_R1) 163-bit -depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000100000000000000000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000000060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb" - -save type: ECC_PUB(SECT_R1) 233-bit -depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000100000000000000000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000000060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d" - -save type: ECC_PUB(SECT_R1) 283-bit -depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010100000000000000000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000000060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765" - -save type: ECC_PUB(SECT_R1) 409-bit -depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901010000000000000000000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000307000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000407000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000507000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000807000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000907000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000306000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000406000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000506000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000806000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000906000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000006000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22" - -save type: ECC_PUB(SECT_R1) 571-bit -depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201000000000000000000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000000600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74" - -save type: ECC_PUB(SECT_R2) 163-bit -depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000100000000000000000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(SECT_R2) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000000060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f" - -save type: ECC_PUB(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001000000000000000000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012800000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -save type: ECC_PUB(TWISTED_EDWARDS) 255-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000000800060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" - -save type: ECC_PUB(TWISTED_EDWARDS) 448-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001010000000000000000000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000b09000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800001509000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -save type: ECC_PUB(TWISTED_EDWARDS) 448-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000008000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180" - -save type: HMAC 128-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000003008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000004008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000005008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000008008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000009008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000a008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 128-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000b008003000000001000000048657265006973206b6579a064617461" - -save type: HMAC 160-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a0000100000000000000000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000003008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000004008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000005008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000008008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000009008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000a008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 160-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000b008003000000001400000048657265006973206b6579a06461746148657265" - -save type: HMAC 224-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e0000100000000000000000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000003008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000004008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000005008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000008008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000009008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000a008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 224-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000b008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0" - -save type: HMAC 256-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000003008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000004008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000005008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000008008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000009008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000a008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 256-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000b008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001180010100000000000000000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000003008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000004008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000005008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000008008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000009008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000a008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 384-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000b008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100020100000000000000000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000003008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000004008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000005008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000008008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000009008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000a008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: HMAC 512-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_save:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000b008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: PASSWORD 48-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:48:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"486572650069":"505341004b45590000000000010000000312300001000000000000000000000006000000486572650069" - -save type: PASSWORD 168-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:168:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500":"505341004b45590000000000010000000312a8000100000000000000000000001500000048657265006973206b6579a0646174614865726500" - -save type: PASSWORD 336-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD:336:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":"505341004b4559000000000001000000031250010100000000000000000000002a00000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65" - -save type: PASSWORD_HASH 128-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000051280000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: PASSWORD_HASH 256-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_storage_save:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000051200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: PEPPER 128-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER -key_storage_save:0x0001:PSA_KEY_TYPE_PEPPER:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000061280000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: PEPPER 256-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER -key_storage_save:0x0001:PSA_KEY_TYPE_PEPPER:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000061200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461" - -save type: RAW_DATA 8-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48":"505341004b4559000000000001000000011008000100000000000000000000000100000048" - -save type: RAW_DATA 40-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:40:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4865726500":"505341004b455900000000000100000001102800010000000000000000000000050000004865726500" - -save type: RAW_DATA 128-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000011080000100000000000000000000001000000048657265006973206b6579a064617461" - -save type: RSA_PAIR 1024-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010000000000000000000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000303000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000403000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000503000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000803000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000903000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000a03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000b03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000002000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000302000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000402000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000502000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000802000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000002000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000303000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000403000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000503000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000803000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000313000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000413000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000513000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000813000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000913000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24" - -save type: RSA_PAIR 1536-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060100000000000000000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000003030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000004030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000005030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000008030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000009030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000a030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000b030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000000020007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000000020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf" - -save type: RSA_PUB 1024-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040100000000000000000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000003030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000004030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000005030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000008030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000009030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000a030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000b030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000000020007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000000020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001" - -save type: RSA_PUB 1536-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010000000000000000000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000303000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000403000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000503000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000803000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000903000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000a03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000b03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000002000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000302000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000402000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000502000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000802000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000902000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000002000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000303000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000403000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000503000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000803000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000903000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000313000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000413000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000513000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000813000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000913000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_save:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081410500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000814105010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000085010500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000850105010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082410500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000824105010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081440500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000814405010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814d0500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000814d05010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814e0500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000814e05010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081500500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000815005010000004c" - -save alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000817f0500000000010000004b" - -save alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000817f05010000004c" - -save alg: AEAD_SHORT(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001410500000000010000004b" - -save alg2: AEAD_SHORT(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000014105010000004c" - -save alg: AEAD_SHORT(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000005010500000000010000004b" - -save alg2: AEAD_SHORT(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000050105010000004c" - -save alg: AEAD_SHORT(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002410500000000010000004b" - -save alg2: AEAD_SHORT(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000024105010000004c" - -save alg: AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001440500000000010000004b" - -save alg2: AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000014405010000004c" - -save alg: AEAD_SHORT(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014d0500000000010000004b" - -save alg2: AEAD_SHORT(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000014d05010000004c" - -save alg: AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014e0500000000010000004b" - -save alg2: AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000014e05010000004c" - -save alg: AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b" - -save alg2: AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c" - -save alg: AEAD_SHORT(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000017f0500000000010000004b" - -save alg2: AEAD_SHORT(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000017f05010000004c" - -save alg: ANY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ANY_HASH:0x0000:"4b":"505341004b45590000000000010000000110080001000000ff00000200000000010000004b" - -save alg2: ANY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ANY_HASH:"4c":"505341004b4559000000000001000000011008000100000000000000ff000002010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c10300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000081c103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082c10300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000082c103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000380810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000480810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000580810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000880810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000980810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a80810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b80810300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b808103010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c40300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000081c403010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000081cd0300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000081cd03010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ce0300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000081ce03010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081d00300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000081d003010000004c" - -save alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ff0300000000010000004b" - -save alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000081ff03010000004c" - -save alg: CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_MAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000001c00300000000010000004b" - -save alg2: CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_MAC:"4c":"505341004b45590000000000010000000110080001000000000000000001c003010000004c" - -save alg: CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000040400400000000010000004b" - -save alg2: CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000404004010000004c" - -save alg: CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"4b":"505341004b455900000000000100000001100800010000000041400400000000010000004b" - -save alg2: CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_PKCS7:"4c":"505341004b455900000000000100000001100800010000000000000000414004010000004c" - -save alg: CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b" - -save alg2: CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM:"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c" - -save alg: CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"4b":"505341004b455900000000000100000001100800010000000013c00400000000010000004b" - -save alg2: CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM_STAR_NO_TAG:"4c":"505341004b45590000000000010000000110080001000000000000000013c004010000004c" - -save alg: CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000011c00400000000010000004b" - -save alg2: CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CFB:"4c":"505341004b45590000000000010000000110080001000000000000000011c004010000004c" - -save alg: CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"4b":"505341004b455900000000000100000001100800010000000005100500000000010000004b" - -save alg2: CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CHACHA20_POLY1305:"4c":"505341004b455900000000000100000001100800010000000000000000051005010000004c" - -save alg: CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CMAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000002c00300000000010000004b" - -save alg2: CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CMAC:"4c":"505341004b45590000000000010000000110080001000000000000000002c003010000004c" - -save alg: CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"4b":"505341004b455900000000000100000001100800010000000010c00400000000010000004b" - -save alg2: CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CTR:"4c":"505341004b45590000000000010000000110080001000000000000000010c004010000004c" - -save alg: DET_DSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000600000000010000004b" - -save alg2: DET_DSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050006010000004c" - -save alg: DET_DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000600000000010000004b" - -save alg2: DET_DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050006010000004c" - -save alg: DET_DSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000600000000010000004b" - -save alg2: DET_DSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050006010000004c" - -save alg: DET_DSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000600000000010000004b" - -save alg2: DET_DSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050006010000004c" - -save alg: DET_DSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000600000000010000004b" - -save alg2: DET_DSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050006010000004c" - -save alg: DET_DSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000600000000010000004b" - -save alg2: DET_DSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050006010000004c" - -save alg: DET_DSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000600000000010000004b" - -save alg2: DET_DSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050006010000004c" - -save alg: DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000307000600000000010000004b" - -save alg2: DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003070006010000004c" - -save alg: DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000407000600000000010000004b" - -save alg2: DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004070006010000004c" - -save alg: DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000507000600000000010000004b" - -save alg2: DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005070006010000004c" - -save alg: DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000807000600000000010000004b" - -save alg2: DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008070006010000004c" - -save alg: DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000907000600000000010000004b" - -save alg2: DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009070006010000004c" - -save alg: DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a07000600000000010000004b" - -save alg2: DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a070006010000004c" - -save alg: DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b07000600000000010000004b" - -save alg2: DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b070006010000004c" - -save alg: DET_ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff07000600000000010000004b" - -save alg2: DET_ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff070006010000004c" - -save alg: DSA(MD5) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000600000000010000004b" - -save alg2: DSA(MD5) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040006010000004c" - -save alg: DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000600000000010000004b" - -save alg2: DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040006010000004c" - -save alg: DSA(SHA_1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000600000000010000004b" - -save alg2: DSA(SHA_1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040006010000004c" - -save alg: DSA(SHA_224) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000600000000010000004b" - -save alg2: DSA(SHA_224) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040006010000004c" - -save alg: DSA(SHA_256) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000600000000010000004b" - -save alg2: DSA(SHA_256) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040006010000004c" - -save alg: DSA(SHA_384) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000600000000010000004b" - -save alg2: DSA(SHA_384) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040006010000004c" - -save alg: DSA(SHA_512) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000600000000010000004b" - -save alg2: DSA(SHA_512) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040006010000004c" - -save alg: ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000044400400000000010000004b" - -save alg2: ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECB_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000444004010000004c" - -save alg: ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000020900000000010000004b" - -save alg2: ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDH:"4c":"505341004b455900000000000100000001100800010000000000000000000209010000004c" - -save alg: ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000306000600000000010000004b" - -save alg2: ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003060006010000004c" - -save alg: ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000406000600000000010000004b" - -save alg2: ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004060006010000004c" - -save alg: ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000506000600000000010000004b" - -save alg2: ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005060006010000004c" - -save alg: ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000806000600000000010000004b" - -save alg2: ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008060006010000004c" - -save alg: ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000906000600000000010000004b" - -save alg2: ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009060006010000004c" - -save alg: ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a06000600000000010000004b" - -save alg2: ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a060006010000004c" - -save alg: ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b06000600000000010000004b" - -save alg2: ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b060006010000004c" - -save alg: ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff06000600000000010000004b" - -save alg2: ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff060006010000004c" - -save alg: ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA_ANY:0x0000:"4b":"505341004b455900000000000100000001100800010000000006000600000000010000004b" - -save alg2: ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA_ANY:"4c":"505341004b455900000000000100000001100800010000000000000000060006010000004c" - -save alg: ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED25519PH:0x0000:"4b":"505341004b455900000000000100000001100800010000000b09000600000000010000004b" - -save alg2: ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED25519PH:"4c":"505341004b45590000000000010000000110080001000000000000000b090006010000004c" - -save alg: ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED448PH:0x0000:"4b":"505341004b455900000000000100000001100800010000001509000600000000010000004b" - -save alg2: ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED448PH:"4c":"505341004b455900000000000100000001100800010000000000000015090006010000004c" - -save alg: FFDH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_FFDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000010900000000010000004b" - -save alg2: FFDH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_FFDH:"4c":"505341004b455900000000000100000001100800010000000000000000000109010000004c" - -save alg: GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000002500500000000010000004b" - -save alg2: GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_GCM:"4c":"505341004b455900000000000100000001100800010000000000000000025005010000004c" - -save alg: HKDF(MD5) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301000800000000010000004b" - -save alg2: HKDF(MD5) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003010008010000004c" - -save alg: HKDF(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401000800000000010000004b" - -save alg2: HKDF(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004010008010000004c" - -save alg: HKDF(SHA_1) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501000800000000010000004b" - -save alg2: HKDF(SHA_1) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005010008010000004c" - -save alg: HKDF(SHA_224) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801000800000000010000004b" - -save alg2: HKDF(SHA_224) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008010008010000004c" - -save alg: HKDF(SHA_256) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901000800000000010000004b" - -save alg2: HKDF(SHA_256) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009010008010000004c" - -save alg: HKDF(SHA_384) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01000800000000010000004b" - -save alg2: HKDF(SHA_384) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a010008010000004c" - -save alg: HKDF(SHA_512) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01000800000000010000004b" - -save alg2: HKDF(SHA_512) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b010008010000004c" - -save alg: HKDF_EXPAND(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000800000000010000004b" - -save alg2: HKDF_EXPAND(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050008010000004c" - -save alg: HKDF_EXPAND(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000800000000010000004b" - -save alg2: HKDF_EXPAND(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050008010000004c" - -save alg: HKDF_EXPAND(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000800000000010000004b" - -save alg2: HKDF_EXPAND(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050008010000004c" - -save alg: HKDF_EXPAND(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000800000000010000004b" - -save alg2: HKDF_EXPAND(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050008010000004c" - -save alg: HKDF_EXPAND(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000800000000010000004b" - -save alg2: HKDF_EXPAND(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050008010000004c" - -save alg: HKDF_EXPAND(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000800000000010000004b" - -save alg2: HKDF_EXPAND(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050008010000004c" - -save alg: HKDF_EXPAND(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000800000000010000004b" - -save alg2: HKDF_EXPAND(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050008010000004c" - -save alg: HKDF_EXTRACT(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000800000000010000004b" - -save alg2: HKDF_EXTRACT(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040008010000004c" - -save alg: HKDF_EXTRACT(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000800000000010000004b" - -save alg2: HKDF_EXTRACT(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040008010000004c" - -save alg: HKDF_EXTRACT(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000800000000010000004b" - -save alg2: HKDF_EXTRACT(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040008010000004c" - -save alg: HKDF_EXTRACT(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000800000000010000004b" - -save alg2: HKDF_EXTRACT(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040008010000004c" - -save alg: HKDF_EXTRACT(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000800000000010000004b" - -save alg2: HKDF_EXTRACT(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040008010000004c" - -save alg: HKDF_EXTRACT(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000800000000010000004b" - -save alg2: HKDF_EXTRACT(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040008010000004c" - -save alg: HKDF_EXTRACT(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000800000000010000004b" - -save alg2: HKDF_EXTRACT(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040008010000004c" - -save alg: HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000300800300000000010000004b" - -save alg2: HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003008003010000004c" - -save alg: HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000400800300000000010000004b" - -save alg2: HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004008003010000004c" - -save alg: HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500800300000000010000004b" - -save alg2: HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005008003010000004c" - -save alg: HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000800800300000000010000004b" - -save alg2: HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008008003010000004c" - -save alg: HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000900800300000000010000004b" - -save alg2: HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009008003010000004c" - -save alg: HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00800300000000010000004b" - -save alg2: HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a008003010000004c" - -save alg: HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00800300000000010000004b" - -save alg2: HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b008003010000004c" - -save alg: JPAKE -depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_JPAKE:0x0000:"4b":"505341004b455900000000000100000001100800010000000001000a00000000010000004b" - -save alg2: JPAKE -depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_JPAKE:"4c":"505341004b45590000000000010000000110080001000000000000000001000a010000004c" - -save alg: KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901020900000000010000004b" - -save alg2: KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010209010000004c" - -save alg: KA(FFDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901010900000000010000004b" - -save alg2: KA(FFDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010109010000004c" - -save alg: KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01020900000000010000004b" - -save alg2: KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010209010000004c" - -save alg: KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000905020900000000010000004b" - -save alg2: KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009050209010000004c" - -save alg: KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05020900000000010000004b" - -save alg2: KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a050209010000004c" - -save alg: KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000904020900000000010000004b" - -save alg2: KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009040209010000004c" - -save alg: KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04020900000000010000004b" - -save alg2: KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a040209010000004c" - -save alg: KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000902020900000000010000004b" - -save alg2: KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009020209010000004c" - -save alg: KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02020900000000010000004b" - -save alg2: KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a020209010000004c" - -save alg: KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000903020900000000010000004b" - -save alg2: KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009030209010000004c" - -save alg: KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03020900000000010000004b" - -save alg2: KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a030209010000004c" - -save alg: KA(FFDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01010900000000010000004b" - -save alg2: KA(FFDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010109010000004c" - -save alg: MD5 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_MD5:0x0000:"4b":"505341004b455900000000000100000001100800010000000300000200000000010000004b" - -save alg2: MD5 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_MD5:"4c":"505341004b455900000000000100000001100800010000000000000003000002010000004c" - -save alg: OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000012c00400000000010000004b" - -save alg2: OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_OFB:"4c":"505341004b45590000000000010000000110080001000000000000000012c004010000004c" - -save alg: PBKDF2_AES_CMAC_PRF_128 -depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:0x0000:"4b":"505341004b455900000000000100000001100800010000000002800800000000010000004b" - -save alg2: PBKDF2_AES_CMAC_PRF_128 -depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:"4c":"505341004b455900000000000100000001100800010000000000000000028008010000004c" - -save alg: PBKDF2_HMAC(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301800800000000010000004b" - -save alg2: PBKDF2_HMAC(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003018008010000004c" - -save alg: PBKDF2_HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401800800000000010000004b" - -save alg2: PBKDF2_HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004018008010000004c" - -save alg: PBKDF2_HMAC(SHA_1) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501800800000000010000004b" - -save alg2: PBKDF2_HMAC(SHA_1) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005018008010000004c" - -save alg: PBKDF2_HMAC(SHA_224) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801800800000000010000004b" - -save alg2: PBKDF2_HMAC(SHA_224) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008018008010000004c" - -save alg: PBKDF2_HMAC(SHA_256) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901800800000000010000004b" - -save alg2: PBKDF2_HMAC(SHA_256) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009018008010000004c" - -save alg: PBKDF2_HMAC(SHA_384) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01800800000000010000004b" - -save alg2: PBKDF2_HMAC(SHA_384) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a018008010000004c" - -save alg: PBKDF2_HMAC(SHA_512) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01800800000000010000004b" - -save alg2: PBKDF2_HMAC(SHA_512) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b018008010000004c" - -save alg: PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PURE_EDDSA:0x0000:"4b":"505341004b455900000000000100000001100800010000000008000600000000010000004b" - -save alg2: PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PURE_EDDSA:"4c":"505341004b455900000000000100000001100800010000000000000000080006010000004c" - -save alg: RIPEMD160 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RIPEMD160:0x0000:"4b":"505341004b455900000000000100000001100800010000000400000200000000010000004b" - -save alg2: RIPEMD160 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RIPEMD160:"4c":"505341004b455900000000000100000001100800010000000000000004000002010000004c" - -save alg: RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000700000000010000004b" - -save alg2: RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030007010000004c" - -save alg: RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000700000000010000004b" - -save alg2: RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030007010000004c" - -save alg: RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000700000000010000004b" - -save alg2: RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030007010000004c" - -save alg: RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000700000000010000004b" - -save alg2: RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030007010000004c" - -save alg: RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000700000000010000004b" - -save alg2: RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030007010000004c" - -save alg: RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000700000000010000004b" - -save alg2: RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030007010000004c" - -save alg: RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000700000000010000004b" - -save alg2: RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030007010000004c" - -save alg: RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000700000000010000004b" - -save alg2: RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_CRYPT:"4c":"505341004b455900000000000100000001100800010000000000000000020007010000004c" - -save alg: RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020006010000004c" - -save alg: RSA_PKCS1V15_SIGN(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff02000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff020006010000004c" - -save alg: RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000600000000010000004b" - -save alg2: RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"4c":"505341004b455900000000000100000001100800010000000000000000020006010000004c" - -save alg: RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000600000000010000004b" - -save alg2: RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030006010000004c" - -save alg: RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000600000000010000004b" - -save alg2: RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030006010000004c" - -save alg: RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000600000000010000004b" - -save alg2: RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030006010000004c" - -save alg: RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000600000000010000004b" - -save alg2: RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030006010000004c" - -save alg: RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000600000000010000004b" - -save alg2: RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030006010000004c" - -save alg: RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000600000000010000004b" - -save alg2: RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030006010000004c" - -save alg: RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000600000000010000004b" - -save alg2: RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030006010000004c" - -save alg: RSA_PSS(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff03000600000000010000004b" - -save alg2: RSA_PSS(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff030006010000004c" - -save alg: RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000313000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003130006010000004c" - -save alg: RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000413000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004130006010000004c" - -save alg: RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000513000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005130006010000004c" - -save alg: RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000813000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008130006010000004c" - -save alg: RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000913000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009130006010000004c" - -save alg: RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a13000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a130006010000004c" - -save alg: RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b13000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b130006010000004c" - -save alg: RSA_PSS_ANY_SALT(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff13000600000000010000004b" - -save alg2: RSA_PSS_ANY_SALT(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff130006010000004c" - -save alg: SHA3_224 -depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_224:0x0000:"4b":"505341004b455900000000000100000001100800010000001000000200000000010000004b" - -save alg2: SHA3_224 -depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_224:"4c":"505341004b455900000000000100000001100800010000000000000010000002010000004c" - -save alg: SHA3_256 -depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_256:0x0000:"4b":"505341004b455900000000000100000001100800010000001100000200000000010000004b" - -save alg2: SHA3_256 -depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_256:"4c":"505341004b455900000000000100000001100800010000000000000011000002010000004c" - -save alg: SHA3_384 -depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_384:0x0000:"4b":"505341004b455900000000000100000001100800010000001200000200000000010000004b" - -save alg2: SHA3_384 -depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_384:"4c":"505341004b455900000000000100000001100800010000000000000012000002010000004c" - -save alg: SHA3_512 -depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001300000200000000010000004b" - -save alg2: SHA3_512 -depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_512:"4c":"505341004b455900000000000100000001100800010000000000000013000002010000004c" - -save alg: SHAKE256_512 -depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHAKE256_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001500000200000000010000004b" - -save alg2: SHAKE256_512 -depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHAKE256_512:"4c":"505341004b455900000000000100000001100800010000000000000015000002010000004c" - -save alg: SHA_1 -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_1:0x0000:"4b":"505341004b455900000000000100000001100800010000000500000200000000010000004b" - -save alg2: SHA_1 -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_1:"4c":"505341004b455900000000000100000001100800010000000000000005000002010000004c" - -save alg: SHA_224 -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000800000200000000010000004b" - -save alg2: SHA_224 -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_224:"4c":"505341004b455900000000000100000001100800010000000000000008000002010000004c" - -save alg: SHA_256 -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000900000200000000010000004b" - -save alg2: SHA_256 -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_256:"4c":"505341004b455900000000000100000001100800010000000000000009000002010000004c" - -save alg: SHA_384 -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_384:0x0000:"4b":"505341004b455900000000000100000001100800010000000a00000200000000010000004b" - -save alg2: SHA_384 -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_384:"4c":"505341004b45590000000000010000000110080001000000000000000a000002010000004c" - -save alg: SHA_512 -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512:0x0000:"4b":"505341004b455900000000000100000001100800010000000b00000200000000010000004b" - -save alg2: SHA_512 -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512:"4c":"505341004b45590000000000010000000110080001000000000000000b000002010000004c" - -save alg: SHA_512_224 -depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000c00000200000000010000004b" - -save alg2: SHA_512_224 -depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_224:"4c":"505341004b45590000000000010000000110080001000000000000000c000002010000004c" - -save alg: SHA_512_256 -depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000d00000200000000010000004b" - -save alg2: SHA_512_256 -depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_256:"4c":"505341004b45590000000000010000000110080001000000000000000d000002010000004c" - -save alg: STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"4b":"505341004b455900000000000100000001100800010000000001800400000000010000004b" - -save alg2: STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_STREAM_CIPHER:"4c":"505341004b455900000000000100000001100800010000000000000000018004010000004c" - -save alg: TLS12_ECJPAKE_TO_PMS -depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_ECJPAKE_TO_PMS:0x0000:"4b":"505341004b455900000000000100000001100800010000000906000800000000010000004b" - -save alg2: TLS12_ECJPAKE_TO_PMS -depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_ECJPAKE_TO_PMS:"4c":"505341004b455900000000000100000001100800010000000000000009060008010000004c" - -save alg: TLS12_PRF(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000800000000010000004b" - -save alg2: TLS12_PRF(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020008010000004c" - -save alg: TLS12_PRF(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000800000000010000004b" - -save alg2: TLS12_PRF(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020008010000004c" - -save alg: TLS12_PRF(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000800000000010000004b" - -save alg2: TLS12_PRF(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020008010000004c" - -save alg: TLS12_PRF(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000800000000010000004b" - -save alg2: TLS12_PRF(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020008010000004c" - -save alg: TLS12_PRF(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000800000000010000004b" - -save alg2: TLS12_PRF(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020008010000004c" - -save alg: TLS12_PRF(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000800000000010000004b" - -save alg2: TLS12_PRF(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020008010000004c" - -save alg: TLS12_PRF(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000800000000010000004b" - -save alg2: TLS12_PRF(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020008010000004c" - -save alg: TLS12_PSK2MS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000800000000010000004b" - -save alg2: TLS12_PSK2MS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030008010000004c" - -save alg: TLS12_PSK2MS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000800000000010000004b" - -save alg2: TLS12_PSK2MS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030008010000004c" - -save alg: TLS12_PSK2MS(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000800000000010000004b" - -save alg2: TLS12_PSK2MS(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030008010000004c" - -save alg: TLS12_PSK2MS(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000800000000010000004b" - -save alg2: TLS12_PSK2MS(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030008010000004c" - -save alg: TLS12_PSK2MS(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000800000000010000004b" - -save alg2: TLS12_PSK2MS(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030008010000004c" - -save alg: TLS12_PSK2MS(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000800000000010000004b" - -save alg2: TLS12_PSK2MS(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030008010000004c" - -save alg: TLS12_PSK2MS(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000800000000010000004b" - -save alg2: TLS12_PSK2MS(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030008010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c10300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000001c103010000004c" - -save alg: TRUNCATED_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002c10300000000010000004b" - -save alg2: TRUNCATED_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000002c103010000004c" - -save alg: TRUNCATED_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000300810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000400810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000800810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000900810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a008103010000004c" - -save alg: TRUNCATED_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00810300000000010000004b" - -save alg2: TRUNCATED_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b008103010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c40300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000001c403010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000001cd0300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000001cd03010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ce0300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000001ce03010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001d00300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000001d003010000004c" - -save alg: TRUNCATED_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ff0300000000010000004b" - -save alg2: TRUNCATED_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000001ff03010000004c" - -save alg: XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"4b":"505341004b4559000000000001000000011008000100000000ff400400000000010000004b" - -save alg2: XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_save:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_XTS:"4c":"505341004b455900000000000100000001100800010000000000000000ff4004010000004c" - -# End of automatically generated file. diff --git a/tests/suites/test_suite_psa_crypto_storage_format.v0.data b/tests/suites/test_suite_psa_crypto_storage_format.v0.data deleted file mode 100644 index e097f40e6..000000000 --- a/tests/suites/test_suite_psa_crypto_storage_format.v0.data +++ /dev/null @@ -1,8395 +0,0 @@ -# Automatically generated by generate_psa_tests.py. Do not edit! - -read lifetime: (DEFAULT,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_DEFAULT, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c":0 - -read lifetime: (READ_ONLY,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(PSA_KEY_PERSISTENCE_READ_ONLY, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000ff00000001100800010000000000000000000000010000004c":TEST_FLAG_READ_ONLY - -read lifetime: (2,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(2, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000200000001100800010000000000000000000000010000004c":0 - -read lifetime: (254,LOCAL_STORAGE) -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(254, PSA_KEY_LOCATION_LOCAL_STORAGE):PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b45590000000000fe00000001100800010000000000000000000000010000004c":0 - -read lifetime: PERSISTENT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:PSA_KEY_LIFETIME_PERSISTENT:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4c":"505341004b455900000000000100000001100800010000000000000000000000010000004c":0 - -read usage without implication: 0 -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b":0 - -read usage without implication: COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b":0 - -read usage without implication: DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b":0 - -read usage without implication: DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b":0 - -read usage without implication: ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b":0 - -read usage without implication: EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b":0 - -read usage without implication: SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 - -read usage without implication: SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b":0 - -read usage without implication: VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b":0 - -read usage without implication: VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 - -read usage without implication: VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b":0 - -read usage without implication: COPY|DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b":0 - -read usage without implication: DECRYPT|DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b":0 - -read usage without implication: DERIVE|ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b":0 - -read usage without implication: ENCRYPT|EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b":0 - -read usage without implication: EXPORT|SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011400000000000000000000010000004b":0 - -read usage without implication: SIGN_HASH|SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 - -read usage without implication: SIGN_MESSAGE|VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b":0 - -read usage without implication: VERIFY_DERIVATION|VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a800000000000000000000010000004b":0 - -read usage without implication: VERIFY_HASH|VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 - -read usage without implication: VERIFY_MESSAGE|COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b":0 - -read usage without implication: all known -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080003ff00000000000000000000010000004b":0 - -read usage: 0 -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:0:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000000000000000000000000010000004b":0 - -read usage: COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020000000000000000000000010000004b":0 - -read usage: DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000200000000000000000000010000004b":0 - -read usage: DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004000000000000000000000010000004b":0 - -read usage: ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000100000000000000000000010000004b":0 - -read usage: EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010000000000000000000000010000004b":0 - -read usage: SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001000000000000000000000010000004b":0 - -read usage: SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000400000000000000000000010000004b":0 - -read usage: VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008000000000000000000000010000004b":0 - -read usage: VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002000000000000000000000010000004b":0 - -read usage: VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800000800000000000000000000010000004b":0 - -read usage: COPY|DECRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_COPY | PSA_KEY_USAGE_DECRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020200000000000000000000010000004b":0 - -read usage: DECRYPT|DERIVE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_DERIVE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004200000000000000000000010000004b":0 - -read usage: DERIVE|ENCRYPT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800004100000000000000000000010000004b":0 - -read usage: ENCRYPT|EXPORT -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800010100000000000000000000010000004b":0 - -read usage: EXPORT|SIGN_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800011000000000000000000000010000004b":0 - -read usage: SIGN_HASH|SIGN_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800001400000000000000000000010000004b":0 - -read usage: SIGN_MESSAGE|VERIFY_DERIVATION -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_DERIVATION:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800008400000000000000000000010000004b":0 - -read usage: VERIFY_DERIVATION|VERIFY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_DERIVATION | PSA_KEY_USAGE_VERIFY_HASH:0x0000:0x0000:"4b":"505341004b45590000000000010000000110080000a000000000000000000000010000004b":0 - -read usage: VERIFY_HASH|VERIFY_MESSAGE -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800002800000000000000000000010000004b":0 - -read usage: VERIFY_MESSAGE|COPY -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_VERIFY_MESSAGE | PSA_KEY_USAGE_COPY:0x0000:0x0000:"4b":"505341004b455900000000000100000001100800020800000000000000000000010000004b":0 - -read type: AES 128-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000002c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000010300000012c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000002480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 192-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000002c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000010300000012c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000024c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: AES 256-bit -depends_on:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CMAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000002c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001010300000012c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: AES 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_AES -key_storage_read:0x0001:PSA_KEY_TYPE_AES:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000002400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000006248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000062480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000624c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000006240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: ARIA 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_ARIA -key_storage_read:0x0001:PSA_KEY_TYPE_ARIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000062400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014405000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000014e05000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000404004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000414004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000015005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000013c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000011c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000010300000010c004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000444004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000025005000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001c403000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001cd03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001ce03000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000003248000013c00000001d003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 128-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000032480000103000000ff4004000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000100000000000000000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014405000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000014e05000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000404004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000414004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000015005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000013c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000011c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000010300000010c004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000444004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000025005000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001c403000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001cd03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001ce03000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c000013c00000001d003000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 192-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a0646174614865726500697320":"505341004b45590000000000010000000324c0000103000000ff4004000000001800000048657265006973206b6579a0646174614865726500697320":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit -depends_on:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014405000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000014e05000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_CBC_MAC:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000404004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000414004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000015005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000013c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000011c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001010300000010c004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000444004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000025005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,4):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001c403000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,13):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001cd03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,14):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001ce03000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC,16):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000003240001013c00000001d003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CAMELLIA 256-bit, XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_CAMELLIA -key_storage_read:0x0001:PSA_KEY_TYPE_CAMELLIA:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000032400010103000000ff4004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CHACHA20 256-bit -depends_on:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CHACHA20 256-bit, CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000051005000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: CHACHA20 256-bit, STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_CHACHA20 -key_storage_read:0x0001:PSA_KEY_TYPE_CHACHA20:256:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000042000010103000000018004000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: DERIVE 120-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -key_storage_read:0x0001:PSA_KEY_TYPE_DERIVE:120:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174":"505341004b4559000000000001000000001278000100000000000000000000000f00000048657265006973206b6579a0646174":TEST_FLAG_EXERCISE - -read type: DERIVE 128-bit -depends_on:PSA_WANT_KEY_TYPE_DERIVE -key_storage_read:0x0001:PSA_KEY_TYPE_DERIVE:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: DES 64-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001000000000000000000000008000000644573206b457901":TEST_FLAG_EXERCISE - -read type: DES 64-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004040040000000008000000644573206b457901":TEST_FLAG_EXERCISE - -read type: DES 64-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004140040000000008000000644573206b457901":TEST_FLAG_EXERCISE - -read type: DES 64-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:64:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901":"505341004b45590000000000010000000123400001030000004440040000000008000000644573206b457901":TEST_FLAG_EXERCISE - -read type: DES 128-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001000000000000000000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE - -read type: DES 128-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004040040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE - -read type: DES 128-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004140040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE - -read type: DES 128-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:128:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902":"505341004b45590000000000010000000123800001030000004440040000000010000000644573206b457901644573206b457902":TEST_FLAG_EXERCISE - -read type: DES 192-bit -depends_on:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001000000000000000000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE - -read type: DES 192-bit, CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004040040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE - -read type: DES 192-bit, CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004140040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE - -read type: DES 192-bit, ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_DES -key_storage_read:0x0001:PSA_KEY_TYPE_DES:192:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"644573206b457901644573206b457902644573206b457904":"505341004b45590000000000010000000123c00001030000004440040000000018000000644573206b457901644573206b457902644573206b457904":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000100000000000000000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000000000209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000003060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000004060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000005060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000008060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000a060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c00000b060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000013c000000060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a010209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a050209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a040209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a020209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000140000009030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a000014000000a030209000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read type: ECC_PAIR(BP_R1) 192-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000010000000000000000000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000307000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000407000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000507000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000807000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000907000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b07000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000000020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000306000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000406000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000506000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000806000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000906000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000a06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000b06000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000013c00000006000600000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000901020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a01020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000905020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a05020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000904020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a04020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000902020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a02020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000903020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":"505341004b45590000000000010000003071c000014000000a03020900000000180000001688a2c5fbf4a3c851d76a98c3ec88f445a97996283db59f":0 - -read type: ECC_PAIR(BP_R1) 224-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000100000000000000000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b070006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000000000209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000003060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000004060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000005060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000008060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000009060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000a060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c00000b060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000013c000000060006000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a010209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a050209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a040209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a020209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e0000140000009030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":"505341004b45590000000000010000003071e000014000000a030209000000001c000000a69835dafeb5da5ab89c59860dddebcfd80b529a99f59b880882923c":0 - -read type: ECC_PAIR(BP_R1) 256-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001010000000000000000000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000307000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000407000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000507000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000807000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000907000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b07000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000000020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000306000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000406000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000506000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000806000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000906000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000a06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000b06000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001013c00000006000600000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000901020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a01020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000905020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a05020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000904020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a04020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000902020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a02020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000903020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"2161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":"505341004b455900000000000100000030710001014000000a03020900000000200000002161d6f2db76526fa62c16f356a80f01f32f776784b36aa99799a8b7662080ff":0 - -read type: ECC_PAIR(BP_R1) 320-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010100000000000000000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b070006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000000000209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000003060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000004060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000005060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000008060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000009060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000a060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c00000b060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001013c000000060006000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a010209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a050209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a040209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a020209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b4559000000000001000000307140010140000009030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 320-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"61b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":"505341004b455900000000000100000030714001014000000a030209000000002800000061b8daa7a6e5aa9fccf1ef504220b2e5a5b8c6dc7475d16d3172d7db0b2778414e4f6e8fa2032ead":0 - -read type: ECC_PAIR(BP_R1) 384-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001010000000000000000000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000307000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000407000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000507000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000807000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000907000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b07000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000000020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000306000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000406000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000506000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000806000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000906000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000a06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000b06000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001013c00000006000600000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000901020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a01020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000905020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a05020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000904020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a04020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000902020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a02020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000903020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":"505341004b455900000000000100000030718001014000000a03020900000000300000003dd92e750d90d7d39fc1885cd8ad12ea9441f22b9334b4d965202adb1448ce24c5808a85dd9afc229af0a3124f755bcb":0 - -read type: ECC_PAIR(BP_R1) 512-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201000000000000000000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0700060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000000002090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000030600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000040600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000050600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000080600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000090600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000a0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c00000b0600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002013c0000000600060000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0102090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0502090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0402090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0202090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b45590000000000010000003071000201400000090302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(BP_R1) 512-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":"505341004b455900000000000100000030710002014000000a0302090000000040000000372c9778f69f726cbca3f4a268f16b4d617d10280d79a6a029cd51879fe1012934dfe5395455337df6906dc7d6d2eea4dbb2065c0228f73b3ed716480e7d71d2":0 - -read type: ECC_PAIR(MGM) 255-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000100000000000000000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000000000209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a010209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a050209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a040209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a020209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff000140000009030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 255-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"70076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":"505341004b45590000000000010000004171ff00014000000a030209000000002000000070076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c6a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101000000000000000000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000000002090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0102090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0502090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0402090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0202090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c00101400000090302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(MGM) 448-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":"505341004b45590000000000010000004171c001014000000a0302090000000038000000e4e49f52686f9ee3b638528f721f1596196ffd0a1cddb64c3f216f06541805cfeb1a286dc78018095cdfec050e8007b5f4908962ba20d6c1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001000000000000000000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000000002090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000030600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000040600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000050600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000080600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000a0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c00000b0600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000013c0000000600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0102090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0502090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0402090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0202090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001400000090302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 192-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c000014000000a0302090000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit -depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000100000000000000000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b070006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000000000209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000003060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000004060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000005060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000008060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000009060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000a060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c00000b060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000013c000000060006000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a010209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a050209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a040209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a020209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e0000140000009030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 224-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":"505341004b45590000000000010000001771e000014000000a030209000000001d0000000024122bf020fa113f6c0ac978dfbd41f749257a9468febdbe0dc9f7e8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit -depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001010000000000000000000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000307000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000407000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000507000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000807000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000907000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b07000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000000020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000306000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000406000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000506000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000806000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000906000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000a06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000b06000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001013c00000006000600000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000901020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a01020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000905020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a05020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000904020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a04020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000902020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a02020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000903020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_K1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"7fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":"505341004b455900000000000100000017710001014000000a03020900000000200000007fa06fa02d0e911b9a47fdc17d2d962ca01e2f31d60c6212d0ed7e3bba23a7b9":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000100000000000000000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000000000209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000003060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000004060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000005060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000008060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000a060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c00000b060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100013c000000060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a010209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a050209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a040209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a020209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000140000009030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 225-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e100014000000a030209000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit -depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010100000000000000000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b070006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000000000209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000003060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000004060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000005060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000008060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000009060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000a060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c00000b060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001013c000000060006000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a010209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a050209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a040209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a020209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b4559000000000001000000127100010140000009030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 256-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"505341004b455900000000000100000012710001014000000a030209000000002000000049c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit -depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001010000000000000000000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000307000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000407000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000507000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000807000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000907000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b07000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000000020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000306000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000406000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000506000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000806000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000906000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000a06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000b06000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001013c00000006000600000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000901020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a01020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000905020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a05020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000904020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a04020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000902020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a02020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000903020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 384-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":"505341004b455900000000000100000012718001014000000a03020900000000300000003f5d8d9be280b5696cc5cc9f94cf8af7e6b61dd6592b2ab2b3a4c607450417ec327dcdcaed7c10053d719a0574f0a76a":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit -depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020100000000000000000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b070006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000000000209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000003060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000004060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000005060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000008060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000009060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000a060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c00000b060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902013c000000060006000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a010209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a050209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a040209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a020209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b4559000000000001000000127109020140000009030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R1) 521-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"01b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":"505341004b455900000000000100000012710902014000000a030209000000004200000001b1b6ad07bb79e7320da59860ea28e055284f6058f279de666e06d435d2af7bda28d99fa47b7dd0963e16b0073078ee8b8a38d966a582f46d19ff95df3ad9685aae":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000100000000000000000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000000000209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000003060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000004060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000005060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000008060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000a060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c00000b060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000013c000000060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a010209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a050209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a040209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a020209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000140000009030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECP_R2) 160-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a000014000000a030209000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000100000000000000000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000000000209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000003060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000004060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000005060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000008060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000a060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c00000b060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300013c000000060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a010209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a050209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a040209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a020209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000140000009030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a300014000000a030209000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit -depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000100000000000000000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b070006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000000000209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000003060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000004060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000005060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000008060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000009060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000a060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c00000b060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900013c000000060006000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a010209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a050209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a040209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a020209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e9000140000009030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"41f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":"505341004b45590000000000010000002771e900014000000a030209000000001d00000041f08485ce587b06061c087e76e247c359de2ba9927ee013b2f1ed9ca8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit -depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000100000000000000000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b070006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000000000209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000003060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000004060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000005060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000008060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000009060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000a060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c00000b060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00013c000000060006000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a010209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a050209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a040209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a020209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef000140000009030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 239-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"1a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":"505341004b45590000000000010000002771ef00014000000a030209000000001e0000001a8069ce2c2c8bdd7087f2a6ab49588797e6294e979495602ab9650b9c61":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit -depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101000000000000000000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0700060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000000002090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000030600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000040600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000050600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000080600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000090600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000a0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c00000b0600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01013c0000000600060000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0102090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0502090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0402090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0202090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b0101400000090302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":"505341004b455900000000000100000027711b01014000000a0302090000000024000000006d627885dd48b9ec6facb5b3865377d755b75a5d51440e45211c1f600e15eff8a881a0":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit -depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901010000000000000000000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000307000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000407000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000507000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000807000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000907000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b07000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000000020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000306000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000406000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000506000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000806000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000906000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000a06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000b06000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901013c00000006000600000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000901020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a01020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000905020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a05020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000904020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a04020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000902020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a02020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000903020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"3ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":"505341004b455900000000000100000027719901014000000a03020900000000330000003ff5e74d932fa77db139b7c948c81e4069c72c24845574064beea8976b70267f1c6f9a503e3892ea1dcbb71fcea423faa370a8":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit -depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201000000000000000000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0700060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000000002090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000030600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000040600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000050600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000080600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000090600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000a0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c00000b0600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02013c0000000600060000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0102090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0502090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0402090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0202090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b0201400000090302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_K1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":"505341004b455900000000000100000027713b02014000000a0302090000000048000000005008c97b4a161c0db1bac6452c72846d57337aa92d8ecb4a66eb01d2f29555ffb61a5317225dcc8ca6917d91789e227efc0bfe9eeda7ee21998cd11c3c9885056b0e55b4f75d51":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001000000000000000000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000000002090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000030600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000040600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000050600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000080600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000a0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c00000b0600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300013c0000000600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0102090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0502090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0402090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0202090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001400000090302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a300014000000a0302090000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit -depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000100000000000000000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b070006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000000000209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000003060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000004060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000005060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000008060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000009060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000a060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c00000b060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900013c000000060006000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a010209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a050209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a040209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a020209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e9000140000009030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 233-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":"505341004b45590000000000010000002271e900014000000a030209000000001e00000000e5e42834e3c78758088b905deea975f28dc20ef6173e481f96e88afe7f":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit -depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101000000000000000000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0700060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000000002090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000030600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000040600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000050600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000080600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000090600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000a0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c00000b0600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01013c0000000600060000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0102090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0502090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0402090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0202090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b0101400000090302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 283-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":"505341004b455900000000000100000022711b01014000000a0302090000000024000000004cecad915f6f3c9bbbd92d1eb101eda23f16c7dad60a57c87c7e1fd2b29b22f6d666ad":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit -depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010100000000000000000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b070006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000000000209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000003060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000004060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000005060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000008060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000009060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000a060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c00000b060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901013c000000060006000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a010209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a050209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a040209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a020209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b4559000000000001000000227199010140000009030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 409-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"00c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":"505341004b455900000000000100000022719901014000000a030209000000003400000000c22422d265721a3ae2b3b2baeb77bee50416e19877af97b5fc1c700a0a88916ecb9050135883accb5e64edc77a3703f4f67a64":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit -depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201000000000000000000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0700060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000000002090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000030600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000040600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000050600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000080600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000090600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000a0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c00000b0600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02013c0000000600060000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0102090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0502090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0402090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0202090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b0201400000090302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R1) 571-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":"505341004b455900000000000100000022713b02014000000a0302090000000048000000026ac1cdf92a13a1b8d282da9725847908745138f5c6706b52d164e3675fcfbf86fc3e6ab2de732193267db029dd35a0599a94a118f480231cfc6ccca2ebfc1d8f54176e0f5656a1":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300010000000000000000000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000307000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000407000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000507000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000807000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b07000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000000020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000306000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000406000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000506000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000806000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000a06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000b06000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300013c00000006000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000901020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a01020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000905020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a05020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000904020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a04020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000902020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a02020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000903020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(SECT_R2) 163-bit, KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH,PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300014000000a03020900000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00010000000000000000000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 255-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00013c00000008000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001010000000000000000000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000b09000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00001509000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE - -read type: ECC_PAIR(TWISTED_EDWARDS) 448-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"6c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":"505341004b45590000000000010000004271c001013c00000008000600000000390000006c82a562cb808d10d632be89c8513ebf6c929f34ddfa8c9f63c9960ef6e348a3528c8a3fcc2f044e39a3fc5b94492f8f032e7549a20098f95b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 160-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000100000000000000000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000003060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000004060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000005060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000008060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000a060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a000012800000b060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read type: ECC_PUB(BP_R1) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000128000000060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 192-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001000000000000000000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0700060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000030600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000040600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000050600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000080600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000090600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000a0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c000012800000b0600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":0 - -read type: ECC_PUB(BP_R1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":"505341004b45590000000000010000003041c00001280000000600060000000031000000043fdd168c179ff5363dd71dcd58de9617caad791ae0c37328be9ca0bfc79cebabf6a95d1c52df5b5f3c8b1a2441cf6c88":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 224-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001000000000000000000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0700060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000030600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000040600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000050600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000080600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000090600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000a0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e000012800000b0600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":0 - -read type: ECC_PUB(BP_R1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":"505341004b45590000000000010000003041e00001280000000600060000000039000000045fbea378fc8583b3837e3f21a457c31eaf20a54e18eb11d104b3adc47f9d1c97eb9ea4ac21740d70d88514b98bf0bc31addac1d19c4ab3cc":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 256-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010100000000000000000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b070006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000003060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000004060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000005060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000008060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000009060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000a060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b455900000000000100000030410001012800000b060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":0 - -read type: ECC_PUB(BP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":"505341004b4559000000000001000000304100010128000000060006000000004100000004768c8cae4abca6306db0ed81b0c4a6215c378066ec6d616c146e13f1c7df809b96ab6911c27d8a02339f0926840e55236d3d1efbe2669d090e4c4c660fada91d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 320-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101000000000000000000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0700060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000030600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000040600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000050600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000080600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000090600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000a0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b455900000000000100000030414001012800000b0600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":0 - -read type: ECC_PUB(BP_R1) 320-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_320:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):320:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":"505341004b45590000000000010000003041400101280000000600060000000051000000049caed8fb4742956cc2ad12a9a1c995e21759ef26a07bc2054136d3d2f28bb331a70e26c4c687275ab1f434be7871e115d2350c0c5f61d4d06d2bcdb67f5cb63fdb794e5947c87dc6849a58694e37e6cd":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 384-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010100000000000000000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b070006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000003060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000004060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000005060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000008060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000009060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000a060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b455900000000000100000030418001012800000b060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":0 - -read type: ECC_PUB(BP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":"505341004b4559000000000001000000304180010128000000060006000000006100000004719f9d093a627e0d350385c661cebf00c61923566fe9006a3107af1d871bc6bb68985fd722ea32be316f8e783b7cd1957785f66cfc0cb195dd5c99a8e7abaa848553a584dfd2b48e76d445fe00dd8be59096d877d4696d23b4bc8db14724e66a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(BP_R1) 512-bit -depends_on:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002010000000000000000000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000307000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000407000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000507000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000807000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000907000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b07000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000306000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000406000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000506000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000806000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000906000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000a06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000b06000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":0 - -read type: ECC_PUB(BP_R1) 512-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_BRAINPOOL_P_R1_512:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":"505341004b455900000000000100000030410002012800000006000600000000810000000438b7ec92b61c5c6c7fbc28a4ec759d48fcd4e2e374defd5c4968a54dbef7510e517886fbfc38ea39aa529359d70a7156c35d3cbac7ce776bdb251dd64bce71234424ee7049eed072f0dbc4d79996e175d557e263763ae97095c081e73e7db2e38adc3d4c9a0487b1ede876dc1fca61c902e9a1d8722b8612928f18a24845591a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(MGM) 255-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":"505341004b45590000000000010000004141ff00010000000000000000000000200000008520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(MGM) 448-bit -depends_on:PSA_WANT_ECC_MONTGOMERY_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_MONTGOMERY):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":"505341004b45590000000000010000004141c00101000000000000000000000038000000c0d3a5a2b416a573dc9909f92f134ac01323ab8f8e36804e578588ba2d09fe7c3e737f771ca112825b548a0ffded6d6a2fd09a3e77dec30e":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit -depends_on:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000010000000000000000000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000307000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000407000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000507000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000807000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b07000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000306000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000406000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000506000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000806000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000a06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000b06000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 192-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012800000006000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit -depends_on:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001000000000000000000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0700060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000030600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000040600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000050600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000080600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000090600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000a0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e000012800000b0600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 224-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_224:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":"505341004b45590000000000010000001741e00001280000000600060000000039000000042cc7335f4b76042bed44ef45959a62aa215f7a5ff0c8111b8c44ed654ee71c1918326ad485b2d599fe2a6eab096ee26d977334d2bac6d61d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit -depends_on:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101000000000000000000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0700060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000030600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000040600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000050600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000080600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000090600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000a0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b455900000000000100000017410001012800000b0600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_K1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_K1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":"505341004b45590000000000010000001741000101280000000600060000000041000000045c39154579efd667adc73a81015a797d2c8682cdfbd3c3553c4a185d481cdc50e42a0e1cbc3ca29a32a645e927f54beaed14c9dbbf8279d725f5495ca924b24d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit -depends_on:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001000000000000000000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000030600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000040600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000050600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000080600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000a0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e100012800000b0600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 225-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001280000000600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit -depends_on:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101000000000000000000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0700060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000030600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000040600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000050600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000080600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000090600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000a0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b455900000000000100000012410001012800000b0600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 256-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_256:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":"505341004b45590000000000010000001241000101280000000600060000000041000000047772656f814b399279d5e1f1781fac6f099a3c5ca1b0e35351834b08b65e0b572590cdaf8f769361bcf34acfc11e5e074e8426bdde04be6e653945449617de45":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit -depends_on:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010100000000000000000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b070006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000003060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000004060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000005060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000008060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000009060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000a060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b455900000000000100000012418001012800000b060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 384-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_384:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":"505341004b4559000000000001000000124180010128000000060006000000006100000004d9c662b50ba29ca47990450e043aeaf4f0c69b15676d112f622a71c93059af999691c5680d2b44d111579db12f4a413a2ed5c45fcfb67b5b63e00b91ebe59d09a6b1ac2c0c4282aa12317ed5914f999bc488bb132e8342cc36f2ca5e3379c747":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit -depends_on:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020100000000000000000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b070006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000003060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000004060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000005060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000008060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000009060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000a060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b455900000000000100000012410902012800000b060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R1) 521-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R1_521:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):521:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":"505341004b4559000000000001000000124109020128000000060006000000008500000004001de142d54f69eb038ee4b7af9d3ca07736fd9cf719eb354d69879ee7f3c136fb0fbf9f08f86be5fa128ec1a051d3e6c643e85ada8ffacf3663c260bd2c844b6f5600cee8e48a9e65d09cadd89f235dee05f3b8a646be715f1f67d5b434e0ff23a1fc07ef7740193e40eeff6f3bcdfd765aa9155033524fe4f205f5444e292c4c2f6ac1":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit -depends_on:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001000000000000000000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000030600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000040600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000050600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000080600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000a0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a000012800000b0600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECP_R2) 160-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001280000000600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit -depends_on:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000100000000000000000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000003060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000004060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000005060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000008060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000a060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a300012800000b060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000128000000060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit -depends_on:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000100000000000000000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b070006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000003060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000004060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000005060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000008060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000009060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000a060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e900012800000b060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":"505341004b45590000000000010000002741e9000128000000060006000000003d0000000401e9d7189189f773bd8f71be2c10774ba18842434dfa9312595ea545104400f45a9d5675647513ba75b079fe66a29daac2ec86a6a5d4e75c5f290c1f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit -depends_on:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000100000000000000000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b070006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000003060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000004060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000005060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000008060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000009060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000a060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef00012800000b060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 239-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_239:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):239:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":"505341004b45590000000000010000002741ef000128000000060006000000003d00000004068d76b9f4508762c2379db9ee8b87ad8d86d9535132ffba3b5680440cfa28eb133d4232faf1c9aba96af11aefe634a551440800d5f8185105d3072d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit -depends_on:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01010000000000000000000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000307000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000407000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000507000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000807000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000907000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b07000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000306000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000406000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000506000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000806000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000906000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000a06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000b06000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":"505341004b455900000000000100000027411b01012800000006000600000000490000000405f48374debceaadb46ba385fd92048fcc5b9af1a1c90408bf94a68b9378df1cbfdfb6fb026a96bea06d8f181bf10c020adbcc88b6ecff96bdc564a9649c247cede601c4be63afc3":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit -depends_on:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010100000000000000000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b070006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000003060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000004060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000005060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000008060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000009060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000a060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b455900000000000100000027419901012800000b060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":"505341004b4559000000000001000000274199010128000000060006000000006900000004012c587f69f68b308ba6dcb238797f4e22290ca939ae806604e2b5ab4d9caef5a74a98fd87c4f88d292dd39d92e556e16c6ecc3c019a105826eef507cd9a04119f54d5d850b3720b3792d5d03410e9105610f7e4b420166ed45604a7a1f229d80975ba6be2060e8b":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit -depends_on:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020100000000000000000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b070006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000003060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000004060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000005060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000008060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000009060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000a060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b02012800000b060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_K1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_K1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":"505341004b455900000000000100000027413b020128000000060006000000009100000004050172a7fd7adf98e4e2ed2742faa5cd12731a15fb0dbbdf75b1c3cc771a4369af6f2fa00e802735650881735759ea9c79961ded18e0daa0ac59afb1d513b5bbda9962e435f454fc020b4afe1445c2302ada07d295ec2580f8849b2dfa7f956b09b4cbe4c88d3b1c217049f75d3900d36df0fa12689256b58dd2ef784ebbeb0564600cf47a841485f8cf897a68accd5a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit -depends_on:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000100000000000000000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000003060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000004060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000005060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000008060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000a060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a300012800000b060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000128000000060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit -depends_on:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000100000000000000000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b070006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000003060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000004060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000005060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000008060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000009060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000a060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e900012800000b060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 233-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_233:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):233:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":"505341004b45590000000000010000002241e9000128000000060006000000003d0000000400cd68c8af4430c92ec7a7048becfdf00a6bae8d1b4c37286f2d336f2a0e017eca3748f4ad6d435c85867aa014eea1bd6d9d005bbd8319cab629001d":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit -depends_on:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010100000000000000000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b070006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000003060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000004060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000005060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000008060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000009060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000a060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b01012800000b060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 283-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_283:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):283:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"04052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":"505341004b455900000000000100000022411b010128000000060006000000004900000004052f9ff887254c2d1440ba9e30f13e2185ba53c373b2c410dae21cf8c167f796c08134f601cbc4c570bffbc2433082cf4d9eb5ba173ecb8caec15d66a02673f60807b2daa729b765":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit -depends_on:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901010000000000000000000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000307000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000407000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000507000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000807000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000907000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b07000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000306000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000406000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000506000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000806000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000906000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000a06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000b06000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 409-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_409:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):409:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":"505341004b455900000000000100000022419901012800000006000600000000690000000401aa25466b1d291846db365957b25431591e50d9c109fe2106e93bb369775896925b15a7bfec397406ab4fe6f6b1a13bf8fdcb9300fa5500a813228676b0a6c572ed96b0f4aec7e87832e7e20f17ca98ecdfd36f59c82bddb8665f1f357a73900e827885ec9e1f22":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit -depends_on:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201000000000000000000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0700060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000030600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000040600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000050600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000080600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000090600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000a0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b02012800000b0600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R1) 571-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R1_571:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):571:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":"505341004b455900000000000100000022413b0201280000000600060000000091000000040708f3403ee9948114855c17572152a08f8054d486defef5f29cbffcfb7cfd9280746a1ac5f751a6ad902ec1e0525120e9be56f03437af196fbe60ee7856e3542ab2cf87880632d80290e39b1a2bd03c6bbf6225511c567bd2ff41d2325dc58346f2b60b1feee4dc8b2af2296c2dc52b153e0556b5d24152b07f690c3fa24e4d1d19efbdeb1037833a733654d2366c74":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit -depends_on:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000100000000000000000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000003060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000004060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000005060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000008060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000a060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a300012800000b060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(SECT_R2) 163-bit, ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA_ANY:0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000128000000060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001000000000000000000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012800000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 255-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001280000000800060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 448-bit -depends_on:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001010000000000000000000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000b09000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800001509000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE - -read type: ECC_PUB(TWISTED_EDWARDS) 448-bit, PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_ECC_TWISTED_EDWARDS_448:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):448:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_PURE_EDDSA:0x0000:"5fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":"505341004b45590000000000010000004241c001012800000008000600000000390000005fd7449b59b461fd2ce787ec616ad46a1da1342485a70e1f8a0ea75d80e96778edf124769b46c7061bd6783df1e50f6cd1fa1abeafe8256180":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 128-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000013c00000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a0000100000000000000000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000003008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000004008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000005008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000008008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c000009008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000a008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 160-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265":"505341004b45590000000000010000000011a000013c00000b008003000000001400000048657265006973206b6579a06461746148657265":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e0000100000000000000000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000003008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000004008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000005008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000008008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c000009008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000a008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 224-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:224:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a0":"505341004b45590000000000010000000011e000013c00000b008003000000001c00000048657265006973206b6579a06461746148657265006973206b6579a0":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000003008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000004008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000005008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000008008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c000009008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000a008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 256-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:256:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110001013c00000b008003000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001180010100000000000000000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000003008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000004008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000005008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000008008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c000009008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000a008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 384-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:384:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000118001013c00000b008003000000003000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit -depends_on:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000001100020100000000000000000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000003008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000004008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000005008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000008008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c000009008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000a008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: HMAC 512-bit, HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:512:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b455900000000000100000000110002013c00000b008003000000004000000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: PASSWORD 48-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:48:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"486572650069":"505341004b45590000000000010000000312300001000000000000000000000006000000486572650069":TEST_FLAG_EXERCISE - -read type: PASSWORD 168-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:168:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a0646174614865726500":"505341004b45590000000000010000000312a8000100000000000000000000001500000048657265006973206b6579a0646174614865726500":TEST_FLAG_EXERCISE - -read type: PASSWORD 336-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD -key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD:336:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":"505341004b4559000000000001000000031250010100000000000000000000002a00000048657265006973206b6579a06461746148657265006973206b6579a06461746148657265006973206b65":TEST_FLAG_EXERCISE - -read type: PASSWORD_HASH 128-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000051280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: PASSWORD_HASH 256-bit -depends_on:PSA_WANT_KEY_TYPE_PASSWORD_HASH -key_storage_read:0x0001:PSA_KEY_TYPE_PASSWORD_HASH:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000051200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: PEPPER 128-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER -key_storage_read:0x0001:PSA_KEY_TYPE_PEPPER:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000061280000100000000000000000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: PEPPER 256-bit -depends_on:PSA_WANT_KEY_TYPE_PEPPER -key_storage_read:0x0001:PSA_KEY_TYPE_PEPPER:256:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a06461746148657265006973206b6579a064617461":"505341004b4559000000000001000000061200010100000000000000000000002000000048657265006973206b6579a06461746148657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read type: RAW_DATA 8-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48":"505341004b4559000000000001000000011008000100000000000000000000000100000048":0 - -read type: RAW_DATA 40-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:40:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"4865726500":"505341004b455900000000000100000001102800010000000000000000000000050000004865726500":0 - -read type: RAW_DATA 128-bit -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:128:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000011080000100000000000000000000001000000048657265006973206b6579a064617461":0 - -read type: RSA_PAIR 1024-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010000000000000000000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000303000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000403000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000503000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000803000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000903000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000a03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000b03000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":0 - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004010300000002000700000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000302000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000402000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000502000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000802000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b02000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000002000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000303000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000403000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000503000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000803000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b03000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000313000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000413000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000513000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000813000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000913000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000a13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1024-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004013c00000b13000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060100000000000000000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000003030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000004030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000005030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000008030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000009030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000a030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006010300000b030007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_DECRYPT | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b4559000000000001000000017000060103000000020007000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000000020006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b030006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000003130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000004130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000005130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000008130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c000009130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000a130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PAIR 1536-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":"505341004b455900000000000100000001700006013c00000b130006000000007f0300003082037b0201000281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc3502030100010281c06d2d670047973a87752a9d5bc14f3dae00acb01f593aa0e24cf4a49f932931de4bbfb332e2d38083da80bc0b6d538edba479f7f77d0deffb4a28e6e67ff6273585bb4cd862535c946605ab0809d65f0e38f76e4ec2c3d9b8cd6e14bcf667943892cd4b34cc6420a439abbf3d7d35ef73976dd6f9cbde35a51fa5213f0107f83e3425835d16d3c9146fc9e36ce75a09bb66cdff21dd5a776899f1cb07e282cca27be46510e9c799f0d8db275a6be085d9f3f803218ee3384265bfb1a3640e8ca1026100e6848c31d466fffefc547e3a3b0d3785de6f78b0dd12610843512e495611a0675509b1650b27415009838dd8e68eec6e7530553b637d602424643b33e8bc5b762e1799bc79d56b13251d36d4f201da2182416ce13574e88278ff04467ad602d9026100de994fdf181f02be2bf9e5f5e4e517a94993b827d1eaf609033e3a6a6f2396ae7c44e9eb594cf1044cb3ad32ea258f0c82963b27bb650ed200cde82cb993374be34be5b1c7ead5446a2b82a4486e8c1810a0b01551609fb0841d474bada802bd026076ddae751b73a959d0bfb8ff49e7fcd378e9be30652ecefe35c82cb8003bc29cc60ae3809909baf20c95db9516fe680865417111d8b193dbcf30281f1249de57c858bf1ba32f5bb1599800e8398a9ef25c7a642c95261da6f9c17670e97265b10260732482b837d5f2a9443e23c1aa0106d83e82f6c3424673b5fdc3769c0f992d1c5c93991c7038e882fcda04414df4d7a5f4f698ead87851ce37344b60b72d7b70f9c60cae8566e7a257f8e1bef0e89df6e4c2f9d24d21d9f8889e4c7eccf91751026009050d94493da8f00a4ddbe9c800afe3d44b43f78a48941a79b2814a1f0b81a18a8b2347642a03b27998f5a18de9abc9ae0e54ab8294feac66dc87e854cce6f7278ac2710cb5878b592ffeb1f4f0a1853e4e8d1d0561b6efcc831a296cf7eeaf":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040100000000000000000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000003030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000004030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000005030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000008030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000009030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000a030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004010100000b030007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":0 - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040101000000020007000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000000020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000003130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000004130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000005130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000008130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040128000009130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000a130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1024-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b455900000000000100000001400004012800000b130006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit -depends_on:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT:0x0000:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010000000000000000000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000303000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000403000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000503000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000803000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000903000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000a03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000b03000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006010100000002000700000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000302000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000402000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000502000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000802000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000902000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b02000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000002000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000303000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000403000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000503000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000803000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000903000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b03000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000313000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000413000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000513000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000813000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000913000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000a13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read type: RSA_PUB 1536-bit, RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1536:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"3081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":"505341004b455900000000000100000001400006012800000b13000600000000cc0000003081c90281c100c870feb6ca6b1d2bd9f2dd99e20f1fe2d7e5192de662229dbe162bd1ba66336a7182903ca0b72796cd441c83d24bcdc3e9a2f5e4399c8a043f1c3ddf04754a66d4cfe7b3671a37dd31a9b4c13bfe06ee90f9d94ddaa06de67a52ac863e68f756736ceb014405a6160579640f831dddccc34ad0b05070e3f9954a58d1815813e1b83bcadba814789c87f1ef2ba5d738b793ec456a67360eea1b5faf1c7cc7bf24f3b2a9d0f8958b1096e0f0c335f8888d0c63a51c3c0337214fa3f5efdf6dcc350203010001":TEST_FLAG_EXERCISE - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081410500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000814105010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000085010500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000850105010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082410500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000824105010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081440500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000814405010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814d0500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000814d05010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000814e0500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000814e05010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081500500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000815005010000004c":0 - -read alg: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000817f0500000000010000004b":0 - -read alg2: AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000817f05010000004c":0 - -read alg: AEAD_SHORT(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001410500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,1) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000014105010000004c":0 - -read alg: AEAD_SHORT(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000005010500000000010000004b":0 - -read alg2: AEAD_SHORT(CHACHA20_POLY1305,1) -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 1):"4c":"505341004b455900000000000100000001100800010000000000000000050105010000004c":0 - -read alg: AEAD_SHORT(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002410500000000010000004b":0 - -read alg2: AEAD_SHORT(GCM,1) -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 1):"4c":"505341004b455900000000000100000001100800010000000000000000024105010000004c":0 - -read alg: AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001440500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,4) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 4):"4c":"505341004b455900000000000100000001100800010000000000000000014405010000004c":0 - -read alg: AEAD_SHORT(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014d0500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,13) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 13):"4c":"505341004b455900000000000100000001100800010000000000000000014d05010000004c":0 - -read alg: AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):0x0000:"4b":"505341004b4559000000000001000000011008000100000000014e0500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,14) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 14):"4c":"505341004b455900000000000100000001100800010000000000000000014e05010000004c":0 - -read alg: AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,16) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 16):"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c":0 - -read alg: AEAD_SHORT(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):0x0000:"4b":"505341004b4559000000000001000000011008000100000000017f0500000000010000004b":0 - -read alg2: AEAD_SHORT(CCM,63) -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 63):"4c":"505341004b455900000000000100000001100800010000000000000000017f05010000004c":0 - -read alg: ANY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ANY_HASH:0x0000:"4b":"505341004b45590000000000010000000110080001000000ff00000200000000010000004b":0 - -read alg2: ANY_HASH -depends_on:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ANY_HASH:"4c":"505341004b4559000000000001000000011008000100000000000000ff000002010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c10300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000081c103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000082c10300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000082c103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000380810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000480810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000580810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000880810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000980810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a80810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b80810300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b808103010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000081c40300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000081c403010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000081cd0300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000081cd03010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ce0300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000081ce03010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000081d00300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000081d003010000004c":0 - -read alg: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000081ff0300000000010000004b":0 - -read alg2: AT_LEAST_THIS_LENGTH_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000081ff03010000004c":0 - -read alg: CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_MAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000001c00300000000010000004b":0 - -read alg2: CBC_MAC -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_MAC:"4c":"505341004b45590000000000010000000110080001000000000000000001c003010000004c":0 - -read alg: CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000040400400000000010000004b":0 - -read alg2: CBC_NO_PADDING -depends_on:PSA_WANT_ALG_CBC_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000404004010000004c":0 - -read alg: CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CBC_PKCS7:0x0000:"4b":"505341004b455900000000000100000001100800010000000041400400000000010000004b":0 - -read alg2: CBC_PKCS7 -depends_on:PSA_WANT_ALG_CBC_PKCS7:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CBC_PKCS7:"4c":"505341004b455900000000000100000001100800010000000000000000414004010000004c":0 - -read alg: CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000001500500000000010000004b":0 - -read alg2: CCM -depends_on:PSA_WANT_ALG_CCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM:"4c":"505341004b455900000000000100000001100800010000000000000000015005010000004c":0 - -read alg: CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CCM_STAR_NO_TAG:0x0000:"4b":"505341004b455900000000000100000001100800010000000013c00400000000010000004b":0 - -read alg2: CCM_STAR_NO_TAG -depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CCM_STAR_NO_TAG:"4c":"505341004b45590000000000010000000110080001000000000000000013c004010000004c":0 - -read alg: CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000011c00400000000010000004b":0 - -read alg2: CFB -depends_on:PSA_WANT_ALG_CFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CFB:"4c":"505341004b45590000000000010000000110080001000000000000000011c004010000004c":0 - -read alg: CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CHACHA20_POLY1305:0x0000:"4b":"505341004b455900000000000100000001100800010000000005100500000000010000004b":0 - -read alg2: CHACHA20_POLY1305 -depends_on:PSA_WANT_ALG_CHACHA20_POLY1305:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CHACHA20_POLY1305:"4c":"505341004b455900000000000100000001100800010000000000000000051005010000004c":0 - -read alg: CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CMAC:0x0000:"4b":"505341004b455900000000000100000001100800010000000002c00300000000010000004b":0 - -read alg2: CMAC -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CMAC:"4c":"505341004b45590000000000010000000110080001000000000000000002c003010000004c":0 - -read alg: CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_CTR:0x0000:"4b":"505341004b455900000000000100000001100800010000000010c00400000000010000004b":0 - -read alg2: CTR -depends_on:PSA_WANT_ALG_CTR:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_CTR:"4c":"505341004b45590000000000010000000110080001000000000000000010c004010000004c":0 - -read alg: DET_DSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000600000000010000004b":0 - -read alg2: DET_DSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050006010000004c":0 - -read alg: DET_DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000600000000010000004b":0 - -read alg2: DET_DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050006010000004c":0 - -read alg: DET_DSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000600000000010000004b":0 - -read alg2: DET_DSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050006010000004c":0 - -read alg: DET_DSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000600000000010000004b":0 - -read alg2: DET_DSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050006010000004c":0 - -read alg: DET_DSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000600000000010000004b":0 - -read alg2: DET_DSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050006010000004c":0 - -read alg: DET_DSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000600000000010000004b":0 - -read alg2: DET_DSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050006010000004c":0 - -read alg: DET_DSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000600000000010000004b":0 - -read alg2: DET_DSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050006010000004c":0 - -read alg: DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000307000600000000010000004b":0 - -read alg2: DET_ECDSA(MD5) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003070006010000004c":0 - -read alg: DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000407000600000000010000004b":0 - -read alg2: DET_ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004070006010000004c":0 - -read alg: DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000507000600000000010000004b":0 - -read alg2: DET_ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005070006010000004c":0 - -read alg: DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000807000600000000010000004b":0 - -read alg2: DET_ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008070006010000004c":0 - -read alg: DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000907000600000000010000004b":0 - -read alg2: DET_ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009070006010000004c":0 - -read alg: DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a07000600000000010000004b":0 - -read alg2: DET_ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a070006010000004c":0 - -read alg: DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b07000600000000010000004b":0 - -read alg2: DET_ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b070006010000004c":0 - -read alg: DET_ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff07000600000000010000004b":0 - -read alg2: DET_ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff070006010000004c":0 - -read alg: DSA(MD5) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000600000000010000004b":0 - -read alg2: DSA(MD5) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040006010000004c":0 - -read alg: DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000600000000010000004b":0 - -read alg2: DSA(RIPEMD160) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040006010000004c":0 - -read alg: DSA(SHA_1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000600000000010000004b":0 - -read alg2: DSA(SHA_1) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040006010000004c":0 - -read alg: DSA(SHA_224) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000600000000010000004b":0 - -read alg2: DSA(SHA_224) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040006010000004c":0 - -read alg: DSA(SHA_256) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000600000000010000004b":0 - -read alg2: DSA(SHA_256) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040006010000004c":0 - -read alg: DSA(SHA_384) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000600000000010000004b":0 - -read alg2: DSA(SHA_384) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040006010000004c":0 - -read alg: DSA(SHA_512) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_DSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000600000000010000004b":0 - -read alg2: DSA(SHA_512) -depends_on:PSA_WANT_ALG_DSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_DSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040006010000004c":0 - -read alg: ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECB_NO_PADDING:0x0000:"4b":"505341004b455900000000000100000001100800010000000044400400000000010000004b":0 - -read alg2: ECB_NO_PADDING -depends_on:PSA_WANT_ALG_ECB_NO_PADDING:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECB_NO_PADDING:"4c":"505341004b455900000000000100000001100800010000000000000000444004010000004c":0 - -read alg: ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000020900000000010000004b":0 - -read alg2: ECDH -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDH:"4c":"505341004b455900000000000100000001100800010000000000000000000209010000004c":0 - -read alg: ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000306000600000000010000004b":0 - -read alg2: ECDSA(MD5) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003060006010000004c":0 - -read alg: ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000406000600000000010000004b":0 - -read alg2: ECDSA(RIPEMD160) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004060006010000004c":0 - -read alg: ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000506000600000000010000004b":0 - -read alg2: ECDSA(SHA_1) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005060006010000004c":0 - -read alg: ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000806000600000000010000004b":0 - -read alg2: ECDSA(SHA_224) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008060006010000004c":0 - -read alg: ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000906000600000000010000004b":0 - -read alg2: ECDSA(SHA_256) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009060006010000004c":0 - -read alg: ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a06000600000000010000004b":0 - -read alg2: ECDSA(SHA_384) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a060006010000004c":0 - -read alg: ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b06000600000000010000004b":0 - -read alg2: ECDSA(SHA_512) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b060006010000004c":0 - -read alg: ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff06000600000000010000004b":0 - -read alg2: ECDSA(ANY_HASH) -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff060006010000004c":0 - -read alg: ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ECDSA_ANY:0x0000:"4b":"505341004b455900000000000100000001100800010000000006000600000000010000004b":0 - -read alg2: ECDSA_ANY -depends_on:PSA_WANT_ALG_ECDSA_ANY:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ECDSA_ANY:"4c":"505341004b455900000000000100000001100800010000000000000000060006010000004c":0 - -read alg: ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED25519PH:0x0000:"4b":"505341004b455900000000000100000001100800010000000b09000600000000010000004b":0 - -read alg2: ED25519PH -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED25519PH:"4c":"505341004b45590000000000010000000110080001000000000000000b090006010000004c":0 - -read alg: ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_ED448PH:0x0000:"4b":"505341004b455900000000000100000001100800010000001509000600000000010000004b":0 - -read alg2: ED448PH -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_ED448PH:"4c":"505341004b455900000000000100000001100800010000000000000015090006010000004c":0 - -read alg: FFDH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_FFDH:0x0000:"4b":"505341004b455900000000000100000001100800010000000000010900000000010000004b":0 - -read alg2: FFDH -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_FFDH:"4c":"505341004b455900000000000100000001100800010000000000000000000109010000004c":0 - -read alg: GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_GCM:0x0000:"4b":"505341004b455900000000000100000001100800010000000002500500000000010000004b":0 - -read alg2: GCM -depends_on:PSA_WANT_ALG_GCM:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_GCM:"4c":"505341004b455900000000000100000001100800010000000000000000025005010000004c":0 - -read alg: HKDF(MD5) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301000800000000010000004b":0 - -read alg2: HKDF(MD5) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003010008010000004c":0 - -read alg: HKDF(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401000800000000010000004b":0 - -read alg2: HKDF(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004010008010000004c":0 - -read alg: HKDF(SHA_1) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501000800000000010000004b":0 - -read alg2: HKDF(SHA_1) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005010008010000004c":0 - -read alg: HKDF(SHA_224) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801000800000000010000004b":0 - -read alg2: HKDF(SHA_224) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008010008010000004c":0 - -read alg: HKDF(SHA_256) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901000800000000010000004b":0 - -read alg2: HKDF(SHA_256) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009010008010000004c":0 - -read alg: HKDF(SHA_384) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01000800000000010000004b":0 - -read alg2: HKDF(SHA_384) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a010008010000004c":0 - -read alg: HKDF(SHA_512) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01000800000000010000004b":0 - -read alg2: HKDF(SHA_512) -depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b010008010000004c":0 - -read alg: HKDF_EXPAND(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000305000800000000010000004b":0 - -read alg2: HKDF_EXPAND(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003050008010000004c":0 - -read alg: HKDF_EXPAND(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000405000800000000010000004b":0 - -read alg2: HKDF_EXPAND(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004050008010000004c":0 - -read alg: HKDF_EXPAND(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000505000800000000010000004b":0 - -read alg2: HKDF_EXPAND(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005050008010000004c":0 - -read alg: HKDF_EXPAND(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000805000800000000010000004b":0 - -read alg2: HKDF_EXPAND(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008050008010000004c":0 - -read alg: HKDF_EXPAND(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000905000800000000010000004b":0 - -read alg2: HKDF_EXPAND(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009050008010000004c":0 - -read alg: HKDF_EXPAND(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05000800000000010000004b":0 - -read alg2: HKDF_EXPAND(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a050008010000004c":0 - -read alg: HKDF_EXPAND(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b05000800000000010000004b":0 - -read alg2: HKDF_EXPAND(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b050008010000004c":0 - -read alg: HKDF_EXTRACT(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000304000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(MD5) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003040008010000004c":0 - -read alg: HKDF_EXTRACT(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000404000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(RIPEMD160) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004040008010000004c":0 - -read alg: HKDF_EXTRACT(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000504000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(SHA_1) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005040008010000004c":0 - -read alg: HKDF_EXTRACT(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000804000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(SHA_224) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008040008010000004c":0 - -read alg: HKDF_EXTRACT(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000904000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(SHA_256) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009040008010000004c":0 - -read alg: HKDF_EXTRACT(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(SHA_384) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a040008010000004c":0 - -read alg: HKDF_EXTRACT(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b04000800000000010000004b":0 - -read alg2: HKDF_EXTRACT(SHA_512) -depends_on:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b040008010000004c":0 - -read alg: HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000300800300000000010000004b":0 - -read alg2: HMAC(MD5) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003008003010000004c":0 - -read alg: HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000400800300000000010000004b":0 - -read alg2: HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004008003010000004c":0 - -read alg: HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500800300000000010000004b":0 - -read alg2: HMAC(SHA_1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005008003010000004c":0 - -read alg: HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000800800300000000010000004b":0 - -read alg2: HMAC(SHA_224) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008008003010000004c":0 - -read alg: HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000900800300000000010000004b":0 - -read alg2: HMAC(SHA_256) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009008003010000004c":0 - -read alg: HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00800300000000010000004b":0 - -read alg2: HMAC(SHA_384) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a008003010000004c":0 - -read alg: HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00800300000000010000004b":0 - -read alg2: HMAC(SHA_512) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b008003010000004c":0 - -read alg: JPAKE -depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_JPAKE:0x0000:"4b":"505341004b455900000000000100000001100800010000000001000a00000000010000004b":0 - -read alg2: JPAKE -depends_on:PSA_WANT_ALG_JPAKE:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_JPAKE:"4c":"505341004b45590000000000010000000110080001000000000000000001000a010000004c":0 - -read alg: KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010209010000004c":0 - -read alg: KA(FFDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000901010900000000010000004b":0 - -read alg2: KA(FFDH,HKDF(SHA_256)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009010109010000004c":0 - -read alg: KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010209010000004c":0 - -read alg: KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000905020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF_EXPAND(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009050209010000004c":0 - -read alg: KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a05020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF_EXPAND(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a050209010000004c":0 - -read alg: KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000904020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF_EXTRACT(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009040209010000004c":0 - -read alg: KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a04020900000000010000004b":0 - -read alg2: KA(ECDH,HKDF_EXTRACT(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF_EXTRACT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a040209010000004c":0 - -read alg: KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000902020900000000010000004b":0 - -read alg2: KA(ECDH,TLS12_PRF(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009020209010000004c":0 - -read alg: KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02020900000000010000004b":0 - -read alg2: KA(ECDH,TLS12_PRF(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a020209010000004c":0 - -read alg: KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):0x0000:"4b":"505341004b455900000000000100000001100800010000000903020900000000010000004b":0 - -read alg2: KA(ECDH,TLS12_PSK2MS(SHA_256)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256)):"4c":"505341004b455900000000000100000001100800010000000000000009030209010000004c":0 - -read alg: KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03020900000000010000004b":0 - -read alg2: KA(ECDH,TLS12_PSK2MS(SHA_384)) -depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a030209010000004c":0 - -read alg: KA(FFDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01010900000000010000004b":0 - -read alg2: KA(FFDH,HKDF(SHA_384)) -depends_on:PSA_WANT_ALG_FFDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, PSA_ALG_HKDF(PSA_ALG_SHA_384)):"4c":"505341004b45590000000000010000000110080001000000000000000a010109010000004c":0 - -read alg: MD5 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_MD5:0x0000:"4b":"505341004b455900000000000100000001100800010000000300000200000000010000004b":0 - -read alg2: MD5 -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_MD5:"4c":"505341004b455900000000000100000001100800010000000000000003000002010000004c":0 - -read alg: OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_OFB:0x0000:"4b":"505341004b455900000000000100000001100800010000000012c00400000000010000004b":0 - -read alg2: OFB -depends_on:PSA_WANT_ALG_OFB:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_OFB:"4c":"505341004b45590000000000010000000110080001000000000000000012c004010000004c":0 - -read alg: PBKDF2_AES_CMAC_PRF_128 -depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:0x0000:"4b":"505341004b455900000000000100000001100800010000000002800800000000010000004b":0 - -read alg2: PBKDF2_AES_CMAC_PRF_128 -depends_on:PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_AES_CMAC_PRF_128:"4c":"505341004b455900000000000100000001100800010000000000000000028008010000004c":0 - -read alg: PBKDF2_HMAC(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000301800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003018008010000004c":0 - -read alg: PBKDF2_HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000401800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(RIPEMD160) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004018008010000004c":0 - -read alg: PBKDF2_HMAC(SHA_1) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000501800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(SHA_1) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005018008010000004c":0 - -read alg: PBKDF2_HMAC(SHA_224) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000801800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(SHA_224) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008018008010000004c":0 - -read alg: PBKDF2_HMAC(SHA_256) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000901800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(SHA_256) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009018008010000004c":0 - -read alg: PBKDF2_HMAC(SHA_384) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a01800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(SHA_384) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a018008010000004c":0 - -read alg: PBKDF2_HMAC(SHA_512) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b01800800000000010000004b":0 - -read alg2: PBKDF2_HMAC(SHA_512) -depends_on:PSA_WANT_ALG_PBKDF2_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PBKDF2_HMAC(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b018008010000004c":0 - -read alg: PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_PURE_EDDSA:0x0000:"4b":"505341004b455900000000000100000001100800010000000008000600000000010000004b":0 - -read alg2: PURE_EDDSA -depends_on:PSA_WANT_ALG_PURE_EDDSA:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_PURE_EDDSA:"4c":"505341004b455900000000000100000001100800010000000000000000080006010000004c":0 - -read alg: RIPEMD160 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RIPEMD160:0x0000:"4b":"505341004b455900000000000100000001100800010000000400000200000000010000004b":0 - -read alg2: RIPEMD160 -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RIPEMD160:"4c":"505341004b455900000000000100000001100800010000000000000004000002010000004c":0 - -read alg: RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000700000000010000004b":0 - -read alg2: RSA_OAEP(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030007010000004c":0 - -read alg: RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000700000000010000004b":0 - -read alg2: RSA_OAEP(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030007010000004c":0 - -read alg: RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000700000000010000004b":0 - -read alg2: RSA_OAEP(SHA_1) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030007010000004c":0 - -read alg: RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000700000000010000004b":0 - -read alg2: RSA_OAEP(SHA_224) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030007010000004c":0 - -read alg: RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000700000000010000004b":0 - -read alg2: RSA_OAEP(SHA_256) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030007010000004c":0 - -read alg: RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000700000000010000004b":0 - -read alg2: RSA_OAEP(SHA_384) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030007010000004c":0 - -read alg: RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000700000000010000004b":0 - -read alg2: RSA_OAEP(SHA_512) -depends_on:PSA_WANT_ALG_RSA_OAEP:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_OAEP(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030007010000004c":0 - -read alg: RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_CRYPT:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000700000000010000004b":0 - -read alg2: RSA_PKCS1V15_CRYPT -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_CRYPT:"4c":"505341004b455900000000000100000001100800010000000000000000020007010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff02000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff020006010000004c":0 - -read alg: RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:0x0000:"4b":"505341004b455900000000000100000001100800010000000002000600000000010000004b":0 - -read alg2: RSA_PKCS1V15_SIGN_RAW -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN_RAW:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PKCS1V15_SIGN_RAW:"4c":"505341004b455900000000000100000001100800010000000000000000020006010000004c":0 - -read alg: RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000600000000010000004b":0 - -read alg2: RSA_PSS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030006010000004c":0 - -read alg: RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000600000000010000004b":0 - -read alg2: RSA_PSS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030006010000004c":0 - -read alg: RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000600000000010000004b":0 - -read alg2: RSA_PSS(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030006010000004c":0 - -read alg: RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000600000000010000004b":0 - -read alg2: RSA_PSS(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030006010000004c":0 - -read alg: RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000600000000010000004b":0 - -read alg2: RSA_PSS(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030006010000004c":0 - -read alg: RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000600000000010000004b":0 - -read alg2: RSA_PSS(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030006010000004c":0 - -read alg: RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000600000000010000004b":0 - -read alg2: RSA_PSS(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030006010000004c":0 - -read alg: RSA_PSS(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff03000600000000010000004b":0 - -read alg2: RSA_PSS(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff030006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000313000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000413000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000513000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(SHA_1) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000813000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(SHA_224) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000913000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(SHA_256) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a13000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(SHA_384) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b13000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(SHA_512) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b130006010000004c":0 - -read alg: RSA_PSS_ANY_SALT(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):0x0000:"4b":"505341004b45590000000000010000000110080001000000ff13000600000000010000004b":0 - -read alg2: RSA_PSS_ANY_SALT(ANY_HASH) -depends_on:PSA_WANT_ALG_RSA_PSS_ANY_SALT:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_RSA_PSS_ANY_SALT(PSA_ALG_ANY_HASH):"4c":"505341004b4559000000000001000000011008000100000000000000ff130006010000004c":0 - -read alg: SHA3_224 -depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_224:0x0000:"4b":"505341004b455900000000000100000001100800010000001000000200000000010000004b":0 - -read alg2: SHA3_224 -depends_on:PSA_WANT_ALG_SHA3_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_224:"4c":"505341004b455900000000000100000001100800010000000000000010000002010000004c":0 - -read alg: SHA3_256 -depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_256:0x0000:"4b":"505341004b455900000000000100000001100800010000001100000200000000010000004b":0 - -read alg2: SHA3_256 -depends_on:PSA_WANT_ALG_SHA3_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_256:"4c":"505341004b455900000000000100000001100800010000000000000011000002010000004c":0 - -read alg: SHA3_384 -depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_384:0x0000:"4b":"505341004b455900000000000100000001100800010000001200000200000000010000004b":0 - -read alg2: SHA3_384 -depends_on:PSA_WANT_ALG_SHA3_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_384:"4c":"505341004b455900000000000100000001100800010000000000000012000002010000004c":0 - -read alg: SHA3_512 -depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA3_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001300000200000000010000004b":0 - -read alg2: SHA3_512 -depends_on:PSA_WANT_ALG_SHA3_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA3_512:"4c":"505341004b455900000000000100000001100800010000000000000013000002010000004c":0 - -read alg: SHAKE256_512 -depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHAKE256_512:0x0000:"4b":"505341004b455900000000000100000001100800010000001500000200000000010000004b":0 - -read alg2: SHAKE256_512 -depends_on:PSA_WANT_ALG_SHAKE256_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHAKE256_512:"4c":"505341004b455900000000000100000001100800010000000000000015000002010000004c":0 - -read alg: SHA_1 -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_1:0x0000:"4b":"505341004b455900000000000100000001100800010000000500000200000000010000004b":0 - -read alg2: SHA_1 -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_1:"4c":"505341004b455900000000000100000001100800010000000000000005000002010000004c":0 - -read alg: SHA_224 -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000800000200000000010000004b":0 - -read alg2: SHA_224 -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_224:"4c":"505341004b455900000000000100000001100800010000000000000008000002010000004c":0 - -read alg: SHA_256 -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000900000200000000010000004b":0 - -read alg2: SHA_256 -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_256:"4c":"505341004b455900000000000100000001100800010000000000000009000002010000004c":0 - -read alg: SHA_384 -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_384:0x0000:"4b":"505341004b455900000000000100000001100800010000000a00000200000000010000004b":0 - -read alg2: SHA_384 -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_384:"4c":"505341004b45590000000000010000000110080001000000000000000a000002010000004c":0 - -read alg: SHA_512 -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512:0x0000:"4b":"505341004b455900000000000100000001100800010000000b00000200000000010000004b":0 - -read alg2: SHA_512 -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512:"4c":"505341004b45590000000000010000000110080001000000000000000b000002010000004c":0 - -read alg: SHA_512_224 -depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_224:0x0000:"4b":"505341004b455900000000000100000001100800010000000c00000200000000010000004b":0 - -read alg2: SHA_512_224 -depends_on:PSA_WANT_ALG_SHA_512_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_224:"4c":"505341004b45590000000000010000000110080001000000000000000c000002010000004c":0 - -read alg: SHA_512_256 -depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_SHA_512_256:0x0000:"4b":"505341004b455900000000000100000001100800010000000d00000200000000010000004b":0 - -read alg2: SHA_512_256 -depends_on:PSA_WANT_ALG_SHA_512_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_SHA_512_256:"4c":"505341004b45590000000000010000000110080001000000000000000d000002010000004c":0 - -read alg: STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_STREAM_CIPHER:0x0000:"4b":"505341004b455900000000000100000001100800010000000001800400000000010000004b":0 - -read alg2: STREAM_CIPHER -depends_on:PSA_WANT_ALG_STREAM_CIPHER:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_STREAM_CIPHER:"4c":"505341004b455900000000000100000001100800010000000000000000018004010000004c":0 - -read alg: TLS12_ECJPAKE_TO_PMS -depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_ECJPAKE_TO_PMS:0x0000:"4b":"505341004b455900000000000100000001100800010000000906000800000000010000004b":0 - -read alg2: TLS12_ECJPAKE_TO_PMS -depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_ECJPAKE_TO_PMS:"4c":"505341004b455900000000000100000001100800010000000000000009060008010000004c":0 - -read alg: TLS12_PRF(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000302000800000000010000004b":0 - -read alg2: TLS12_PRF(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003020008010000004c":0 - -read alg: TLS12_PRF(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000402000800000000010000004b":0 - -read alg2: TLS12_PRF(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004020008010000004c":0 - -read alg: TLS12_PRF(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000502000800000000010000004b":0 - -read alg2: TLS12_PRF(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005020008010000004c":0 - -read alg: TLS12_PRF(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000802000800000000010000004b":0 - -read alg2: TLS12_PRF(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008020008010000004c":0 - -read alg: TLS12_PRF(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000902000800000000010000004b":0 - -read alg2: TLS12_PRF(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009020008010000004c":0 - -read alg: TLS12_PRF(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a02000800000000010000004b":0 - -read alg2: TLS12_PRF(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a020008010000004c":0 - -read alg: TLS12_PRF(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b02000800000000010000004b":0 - -read alg2: TLS12_PRF(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PRF:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PRF(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b020008010000004c":0 - -read alg: TLS12_PSK2MS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):0x0000:"4b":"505341004b455900000000000100000001100800010000000303000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(MD5) -depends_on:PSA_WANT_ALG_MD5:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_MD5):"4c":"505341004b455900000000000100000001100800010000000000000003030008010000004c":0 - -read alg: TLS12_PSK2MS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):0x0000:"4b":"505341004b455900000000000100000001100800010000000403000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(RIPEMD160) -depends_on:PSA_WANT_ALG_RIPEMD160:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_RIPEMD160):"4c":"505341004b455900000000000100000001100800010000000000000004030008010000004c":0 - -read alg: TLS12_PSK2MS(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):0x0000:"4b":"505341004b455900000000000100000001100800010000000503000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(SHA_1) -depends_on:PSA_WANT_ALG_SHA_1:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_1):"4c":"505341004b455900000000000100000001100800010000000000000005030008010000004c":0 - -read alg: TLS12_PSK2MS(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):0x0000:"4b":"505341004b455900000000000100000001100800010000000803000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(SHA_224) -depends_on:PSA_WANT_ALG_SHA_224:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_224):"4c":"505341004b455900000000000100000001100800010000000000000008030008010000004c":0 - -read alg: TLS12_PSK2MS(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):0x0000:"4b":"505341004b455900000000000100000001100800010000000903000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(SHA_256) -depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256):"4c":"505341004b455900000000000100000001100800010000000000000009030008010000004c":0 - -read alg: TLS12_PSK2MS(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):0x0000:"4b":"505341004b455900000000000100000001100800010000000a03000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(SHA_384) -depends_on:PSA_WANT_ALG_SHA_384:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384):"4c":"505341004b45590000000000010000000110080001000000000000000a030008010000004c":0 - -read alg: TLS12_PSK2MS(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):0x0000:"4b":"505341004b455900000000000100000001100800010000000b03000800000000010000004b":0 - -read alg2: TLS12_PSK2MS(SHA_512) -depends_on:PSA_WANT_ALG_SHA_512:PSA_WANT_ALG_TLS12_PSK_TO_MS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_512):"4c":"505341004b45590000000000010000000110080001000000000000000b030008010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c10300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,1) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000001c103010000004c":0 - -read alg: TRUNCATED_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000002c10300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CMAC,1) -depends_on:PSA_WANT_ALG_CMAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CMAC, 1):"4c":"505341004b45590000000000010000000110080001000000000000000002c103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000300810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(MD5),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_MD5), 1):"4c":"505341004b455900000000000100000001100800010000000000000003008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000400810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(RIPEMD160),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_RIPEMD160), 1):"4c":"505341004b455900000000000100000001100800010000000000000004008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000500810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(SHA_1),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_1), 1):"4c":"505341004b455900000000000100000001100800010000000000000005008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000800810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(SHA_224),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_224), 1):"4c":"505341004b455900000000000100000001100800010000000000000008008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000900810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(SHA_256),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_256), 1):"4c":"505341004b455900000000000100000001100800010000000000000009008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000a00810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(SHA_384),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_384), 1):"4c":"505341004b45590000000000010000000110080001000000000000000a008103010000004c":0 - -read alg: TRUNCATED_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):0x0000:"4b":"505341004b455900000000000100000001100800010000000b00810300000000010000004b":0 - -read alg2: TRUNCATED_MAC(HMAC(SHA_512),1) -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(PSA_ALG_SHA_512), 1):"4c":"505341004b45590000000000010000000110080001000000000000000b008103010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):0x0000:"4b":"505341004b455900000000000100000001100800010000000001c40300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,4) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 4):"4c":"505341004b45590000000000010000000110080001000000000000000001c403010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):0x0000:"4b":"505341004b455900000000000100000001100800010000000001cd0300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,13) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 13):"4c":"505341004b45590000000000010000000110080001000000000000000001cd03010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ce0300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,14) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 14):"4c":"505341004b45590000000000010000000110080001000000000000000001ce03010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):0x0000:"4b":"505341004b455900000000000100000001100800010000000001d00300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,16) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 16):"4c":"505341004b45590000000000010000000110080001000000000000000001d003010000004c":0 - -read alg: TRUNCATED_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):0x0000:"4b":"505341004b455900000000000100000001100800010000000001ff0300000000010000004b":0 - -read alg2: TRUNCATED_MAC(CBC_MAC,63) -depends_on:PSA_WANT_ALG_CBC_MAC:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_TRUNCATED_MAC(PSA_ALG_CBC_MAC, 63):"4c":"505341004b45590000000000010000000110080001000000000000000001ff03010000004c":0 - -read alg: XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:PSA_ALG_XTS:0x0000:"4b":"505341004b4559000000000001000000011008000100000000ff400400000000010000004b":0 - -read alg2: XTS -depends_on:PSA_WANT_ALG_XTS:PSA_WANT_KEY_TYPE_RAW_DATA -key_storage_read:0x0001:PSA_KEY_TYPE_RAW_DATA:8:PSA_KEY_USAGE_EXPORT:0x0000:PSA_ALG_XTS:"4c":"505341004b455900000000000100000001100800010000000000000000ff4004010000004c":0 - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000110000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001100000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000110000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000110000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000110000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001100000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300011000000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000110000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001100000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000110000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000110000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000110000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001100000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300011000000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ED25519PH ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00011000000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: ED448PH ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00011000001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(MD5) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(RIPEMD160) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(SHA_1) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(SHA_224) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(SHA_256) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000110000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(SHA_384) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000011000000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: HMAC(SHA_512) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000011000000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PAIR 1024-bit -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004011000000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read implied by SIGN_HASH: RSA_PSS(SHA_256) RSA_PAIR 1024-bit -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004011000000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000120000009070006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001200000090700060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000120000009070006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000120000009070006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000120000009070006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001200000090700060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300012000000907000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000120000009070006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012000000907000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001200000090700060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001200000090700060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000120000009070006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000120000009070006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: DET_ECDSA(SHA_256) ECC_PUB(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_DETERMINISTIC_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000120000009070006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"69502c4fdaf48d4fa617bdd24498b0406d0eeaac":"505341004b45590000000000010000003071a0000120000009060006000000001400000069502c4fdaf48d4fa617bdd24498b0406d0eeaac":0 - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"297ac1722ccac7589ecb240dc719842538ca974beb79f228":"505341004b45590000000000010000001771c00001200000090600060000000018000000297ac1722ccac7589ecb240dc719842538ca974beb79f228":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":"505341004b45590000000000010000001271e1000120000009060006000000001c000000872f203b3ad35b7f2ecc803c3a0e1e0b1ed61cc1afe71b189cd4c995":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"00bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":"505341004b45590000000000010000001b71a0000120000009060006000000001500000000bf539a1cdda0d7f71a50a3f98aec0a2e8e4ced1e":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"03ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":"505341004b45590000000000010000002771a3000120000009060006000000001500000003ebc8fcded2d6ab72ec0f75bdb4fd080481273e71":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":"505341004b45590000000000010000002271a30001200000090600060000000015000000009b05dc82d46d64a04a22e6e5ca70ca1231e68c50":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PAIR(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0210b482a458b4822d0cb21daa96819a67c8062d34":"505341004b45590000000000010000002b71a300012000000906000600000000150000000210b482a458b4822d0cb21daa96819a67c8062d34":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(BP_R1) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_BRAINPOOL_P_R1_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_BRAINPOOL_P_R1):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"04d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":"505341004b45590000000000010000003041a0000120000009060006000000002900000004d4b9186816358e2f9c59cf70748cb70641b22fbab65473db4b4e22a361ed7e3de7e8a8ddc4130c5c":0 - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_K1) 192-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_K1_192:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_K1):192:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":"505341004b45590000000000010000001741c000012000000906000600000000310000000426b7bb38da649ac2138fc050c6548b32553dab68afebc36105d325b75538c12323cb0764789ecb992671beb2b6bef2f5":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_R1) 225-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R1_225:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1):225:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":"505341004b45590000000000010000001241e10001200000090600060000000039000000046f00eadaa949fee3e9e1c7fa1247eecec86a0dce46418b9bd3117b981d4bd0ae7a990de912f9d060d6cb531a42d22e394ac29e81804bf160":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECP_R2) 160-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECP_R2_160:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R2):160:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":"505341004b45590000000000010000001b41a00001200000090600060000000029000000049570d541398665adb5cfa16f5af73b3196926bbd4b876bdb80f8eab20d0f540c22f4de9c140f6d7b":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_K1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_K1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_K1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":"505341004b45590000000000010000002741a3000120000009060006000000002b0000000406f88f90b4b65950f06ce433afdb097e320f433dc2062b8a65db8fafd3c110f46bc45663fbf021ee7eb9":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_R1) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R1_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R1):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":"505341004b45590000000000010000002241a3000120000009060006000000002b0000000400465eeb9e7258b11e33c02266bfe834b20bcb118700772796ee4704ec67651bd447e3011959a79a04cb":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ECDSA(SHA_256) ECC_PUB(SECT_R2) 163-bit -depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ALG_SHA_256:PSA_WANT_ECC_SECT_R2_163:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECT_R2):163:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ECDSA(PSA_ALG_SHA_256):0x0000:"0403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":"505341004b45590000000000010000002b41a3000120000009060006000000002b0000000403692601144c32a6cfa369ae20ae5d43c1c764678c037bafe80c6fd2e42b7ced96171d9c5367fd3dca6f":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ED25519PH ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00012000000b09000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ED25519PH ECC_PUB(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED25519PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED25519PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff00012000000b0900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ED448PH ECC_PAIR(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":"505341004b45590000000000010000004271ff00012000001509000600000000200000009d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: ED448PH ECC_PUB(TWISTED_EDWARDS) 255-bit -depends_on:PSA_WANT_ALG_ED448PH:PSA_WANT_ECC_TWISTED_EDWARDS_255:PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_TWISTED_EDWARDS):255:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_ED448PH:0x0000:"d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":"505341004b45590000000000010000004241ff0001200000150900060000000020000000d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(MD5) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_MD5:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_MD5):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000003008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(RIPEMD160) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_RIPEMD160:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_RIPEMD160):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000004008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(SHA_1) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_1:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_1):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000005008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(SHA_224) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_224:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_224):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000008008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(SHA_256) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_256):0x0000:"48657265006973206b6579a064617461":"505341004b4559000000000001000000001180000120000009008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(SHA_384) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_384:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_384):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000012000000a008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: HMAC(SHA_512) HMAC 128-bit -depends_on:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_512:PSA_WANT_KEY_TYPE_HMAC -key_storage_read:0x0001:PSA_KEY_TYPE_HMAC:128:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_HMAC(PSA_ALG_SHA_512):0x0000:"48657265006973206b6579a064617461":"505341004b455900000000000100000000118000012000000b008003000000001000000048657265006973206b6579a064617461":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PAIR 1024-bit -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004012000000902000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: RSA_PKCS1V15_SIGN(SHA_256) RSA_PUB 1024-bit -depends_on:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040120000009020006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: RSA_PSS(SHA_256) RSA_PAIR 1024-bit -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_KEY_PAIR:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"3082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":"505341004b455900000000000100000001700004012000000903000600000000620200003082025e02010002818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc3020301000102818100874bf0ffc2f2a71d14671ddd0171c954d7fdbf50281e4f6d99ea0e1ebcf82faa58e7b595ffb293d1abe17f110b37c48cc0f36c37e84d876621d327f64bbe08457d3ec4098ba2fa0a319fba411c2841ed7be83196a8cdf9daa5d00694bc335fc4c32217fe0488bce9cb7202e59468b1ead119000477db2ca797fac19eda3f58c1024100e2ab760841bb9d30a81d222de1eb7381d82214407f1b975cbbfe4e1a9467fd98adbd78f607836ca5be1928b9d160d97fd45c12d6b52e2c9871a174c66b488113024100c5ab27602159ae7d6f20c3c2ee851e46dc112e689e28d5fcbbf990a99ef8a90b8bb44fd36467e7fc1789ceb663abda338652c3c73f111774902e840565927091024100b6cdbd354f7df579a63b48b3643e353b84898777b48b15f94e0bfc0567a6ae5911d57ad6409cf7647bf96264e9bd87eb95e263b7110b9a1f9f94acced0fafa4d024071195eec37e8d257decfc672b07ae639f10cbb9b0c739d0c809968d644a94e3fd6ed9287077a14583f379058f76a8aecd43c62dc8c0f41766650d725275ac4a1024100bb32d133edc2e048d463388b7be9cb4be29f4b6250be603e70e3647501c97ddde20a4e71be95fd5e71784e25aca4baf25be5738aae59bbfe1c997781447a2b24":TEST_FLAG_EXERCISE - -read implied by VERIFY_HASH: RSA_PSS(SHA_256) RSA_PUB 1024-bit -depends_on:PSA_WANT_ALG_RSA_PSS:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY -key_storage_read:0x0001:PSA_KEY_TYPE_RSA_PUBLIC_KEY:1024:PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE:PSA_ALG_RSA_PSS(PSA_ALG_SHA_256):0x0000:"30818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":"505341004b4559000000000001000000014000040120000009030006000000008c00000030818902818100af057d396ee84fb75fdbb5c2b13c7fe5a654aa8aa2470b541ee1feb0b12d25c79711531249e1129628042dbbb6c120d1443524ef4c0e6e1d8956eeb2077af12349ddeee54483bc06c2c61948cd02b202e796aebd94d3a7cbf859c2c1819c324cb82b9cd34ede263a2abffe4733f077869e8660f7d6834da53d690ef7985f6bc30203010001":TEST_FLAG_EXERCISE - -# End of automatically generated file. diff --git a/visualc/VS2010/aead_demo.vcxproj b/visualc/VS2010/aead_demo.vcxproj deleted file mode 100644 index 4466ba2ed..000000000 --- a/visualc/VS2010/aead_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {B95203DF-96A0-9E2B-C761-DC13C13D7450} - Win32Proj - aead_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/benchmark.vcxproj b/visualc/VS2010/benchmark.vcxproj deleted file mode 100644 index 0be32fc5a..000000000 --- a/visualc/VS2010/benchmark.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA} - Win32Proj - benchmark - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/cert_app.vcxproj b/visualc/VS2010/cert_app.vcxproj deleted file mode 100644 index 3fbcb52a5..000000000 --- a/visualc/VS2010/cert_app.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {D4D691D4-137C-CBFA-735B-D46636D7E4D8} - Win32Proj - cert_app - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/cert_req.vcxproj b/visualc/VS2010/cert_req.vcxproj deleted file mode 100644 index 41fdf31a3..000000000 --- a/visualc/VS2010/cert_req.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE} - Win32Proj - cert_req - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/cert_write.vcxproj b/visualc/VS2010/cert_write.vcxproj deleted file mode 100644 index f1f93ea37..000000000 --- a/visualc/VS2010/cert_write.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {35E52E46-3BA9-4361-41D3-53663C2E9B8A} - Win32Proj - cert_write - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/cipher_aead_demo.vcxproj b/visualc/VS2010/cipher_aead_demo.vcxproj deleted file mode 100644 index e1aa50df6..000000000 --- a/visualc/VS2010/cipher_aead_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {1E959679-AB4C-F434-E078-BAA4DC2159E9} - Win32Proj - cipher_aead_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/crl_app.vcxproj b/visualc/VS2010/crl_app.vcxproj deleted file mode 100644 index 4b8b2168f..000000000 --- a/visualc/VS2010/crl_app.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {DB904B85-AD31-B7FB-114F-88760CC485F2} - Win32Proj - crl_app - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/crypt_and_hash.vcxproj b/visualc/VS2010/crypt_and_hash.vcxproj deleted file mode 100644 index 885935bdf..000000000 --- a/visualc/VS2010/crypt_and_hash.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7} - Win32Proj - crypt_and_hash - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/crypto_examples.vcxproj b/visualc/VS2010/crypto_examples.vcxproj deleted file mode 100644 index 3899f0ec3..000000000 --- a/visualc/VS2010/crypto_examples.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {020C31BD-C4DF-BABA-E537-F517C4E98537} - Win32Proj - crypto_examples - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/dh_client.vcxproj b/visualc/VS2010/dh_client.vcxproj deleted file mode 100644 index 043ab1afc..000000000 --- a/visualc/VS2010/dh_client.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE} - Win32Proj - dh_client - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/dh_genprime.vcxproj b/visualc/VS2010/dh_genprime.vcxproj deleted file mode 100644 index f0366cb24..000000000 --- a/visualc/VS2010/dh_genprime.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {718960D9-5DA6-7B56-39AD-637E81076C71} - Win32Proj - dh_genprime - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/dh_server.vcxproj b/visualc/VS2010/dh_server.vcxproj deleted file mode 100644 index 5a986bc57..000000000 --- a/visualc/VS2010/dh_server.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {8D91B804-E2CE-142D-8E06-FBB037ED1F65} - Win32Proj - dh_server - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/dtls_client.vcxproj b/visualc/VS2010/dtls_client.vcxproj deleted file mode 100644 index 3fd65456d..000000000 --- a/visualc/VS2010/dtls_client.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5} - Win32Proj - dtls_client - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/dtls_server.vcxproj b/visualc/VS2010/dtls_server.vcxproj deleted file mode 100644 index b10ec4df5..000000000 --- a/visualc/VS2010/dtls_server.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317} - Win32Proj - dtls_server - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ecdh_curve25519.vcxproj b/visualc/VS2010/ecdh_curve25519.vcxproj deleted file mode 100644 index 578e43b62..000000000 --- a/visualc/VS2010/ecdh_curve25519.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {82EE497E-12CC-7C5B-A072-665678ACB43E} - Win32Proj - ecdh_curve25519 - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ecdsa.vcxproj b/visualc/VS2010/ecdsa.vcxproj deleted file mode 100644 index f7ad2e922..000000000 --- a/visualc/VS2010/ecdsa.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E} - Win32Proj - ecdsa - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/gen_entropy.vcxproj b/visualc/VS2010/gen_entropy.vcxproj deleted file mode 100644 index b7e45f978..000000000 --- a/visualc/VS2010/gen_entropy.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {DE695064-13C3-18B0-378D-8B22672BF3F4} - Win32Proj - gen_entropy - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/gen_key.vcxproj b/visualc/VS2010/gen_key.vcxproj deleted file mode 100644 index fa026141c..000000000 --- a/visualc/VS2010/gen_key.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52} - Win32Proj - gen_key - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/gen_random_ctr_drbg.vcxproj b/visualc/VS2010/gen_random_ctr_drbg.vcxproj deleted file mode 100644 index a385841a0..000000000 --- a/visualc/VS2010/gen_random_ctr_drbg.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E} - Win32Proj - gen_random_ctr_drbg - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/generic_sum.vcxproj b/visualc/VS2010/generic_sum.vcxproj deleted file mode 100644 index faad77596..000000000 --- a/visualc/VS2010/generic_sum.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {D071CCF7-ACA0-21F8-D382-52A759AEA261} - Win32Proj - generic_sum - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/hello.vcxproj b/visualc/VS2010/hello.vcxproj deleted file mode 100644 index 6a81d914e..000000000 --- a/visualc/VS2010/hello.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D} - Win32Proj - hello - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/hmac_demo.vcxproj b/visualc/VS2010/hmac_demo.vcxproj deleted file mode 100644 index 238547a49..000000000 --- a/visualc/VS2010/hmac_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {90DF77BA-05FC-B8EA-83F4-36057314AFC2} - Win32Proj - hmac_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/key_app.vcxproj b/visualc/VS2010/key_app.vcxproj deleted file mode 100644 index bba584170..000000000 --- a/visualc/VS2010/key_app.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {10AE376F-1A70-0297-0216-1FD01AD15D19} - Win32Proj - key_app - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/key_app_writer.vcxproj b/visualc/VS2010/key_app_writer.vcxproj deleted file mode 100644 index 0d7013796..000000000 --- a/visualc/VS2010/key_app_writer.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8} - Win32Proj - key_app_writer - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/key_ladder_demo.vcxproj b/visualc/VS2010/key_ladder_demo.vcxproj deleted file mode 100644 index 8584aee75..000000000 --- a/visualc/VS2010/key_ladder_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {778777A0-393D-45E8-83C1-EAF487236F1F} - Win32Proj - key_ladder_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/load_roots.vcxproj b/visualc/VS2010/load_roots.vcxproj deleted file mode 100644 index 1eed65778..000000000 --- a/visualc/VS2010/load_roots.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {65EB85E6-C928-689F-8335-126F78025220} - Win32Proj - load_roots - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/mbedTLS.sln b/visualc/VS2010/mbedTLS.sln deleted file mode 100644 index 336ea3c2c..000000000 --- a/visualc/VS2010/mbedTLS.sln +++ /dev/null @@ -1,741 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedTLS", "mbedTLS.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypt_and_hash", "crypt_and_hash.vcxproj", "{5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cipher_aead_demo", "cipher_aead_demo.vcxproj", "{1E959679-AB4C-F434-E078-BAA4DC2159E9}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generic_sum", "generic_sum.vcxproj", "{D071CCF7-ACA0-21F8-D382-52A759AEA261}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hello", "hello.vcxproj", "{B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md_hmac_demo", "md_hmac_demo.vcxproj", "{ABCEDDC7-BF2D-2779-909A-9AE5923F1415}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_client", "dh_client.vcxproj", "{4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_genprime", "dh_genprime.vcxproj", "{718960D9-5DA6-7B56-39AD-637E81076C71}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dh_server", "dh_server.vcxproj", "{8D91B804-E2CE-142D-8E06-FBB037ED1F65}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ecdh_curve25519", "ecdh_curve25519.vcxproj", "{82EE497E-12CC-7C5B-A072-665678ACB43E}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ecdsa", "ecdsa.vcxproj", "{F58142CC-0CC7-0B18-5A0F-53642CFBA18E}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_key", "gen_key.vcxproj", "{BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app", "key_app.vcxproj", "{10AE376F-1A70-0297-0216-1FD01AD15D19}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_app_writer", "key_app_writer.vcxproj", "{E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mpi_demo", "mpi_demo.vcxproj", "{A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_decrypt", "pk_decrypt.vcxproj", "{1EC6CBA3-6187-D456-D9B7-A35399395D71}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_encrypt", "pk_encrypt.vcxproj", "{55007179-7746-9CFB-97EC-65102FB272C8}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_sign", "pk_sign.vcxproj", "{F2E8CA55-597F-7FDC-6456-D8650FB970A3}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pk_verify", "pk_verify.vcxproj", "{C429B336-1B30-119C-3B34-21A186D6744F}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_decrypt", "rsa_decrypt.vcxproj", "{E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_encrypt", "rsa_encrypt.vcxproj", "{D06CF12E-F222-9273-41BF-B8A052FA5527}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_genkey", "rsa_genkey.vcxproj", "{F472475C-F677-0E7F-F127-45BF5B64F622}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign", "rsa_sign.vcxproj", "{10790F49-6887-AAB6-2D86-BCBD516F8D26}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_sign_pss", "rsa_sign_pss.vcxproj", "{DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify", "rsa_verify.vcxproj", "{689E28CF-89ED-BA38-3A14-78A75D891D46}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rsa_verify_pss", "rsa_verify_pss.vcxproj", "{95C50864-854C-2A11-4C91-BCE654E344FB}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aead_demo", "aead_demo.vcxproj", "{B95203DF-96A0-9E2B-C761-DC13C13D7450}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crypto_examples", "crypto_examples.vcxproj", "{020C31BD-C4DF-BABA-E537-F517C4E98537}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hmac_demo", "hmac_demo.vcxproj", "{90DF77BA-05FC-B8EA-83F4-36057314AFC2}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "key_ladder_demo", "key_ladder_demo.vcxproj", "{778777A0-393D-45E8-83C1-EAF487236F1F}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "psa_constant_names", "psa_constant_names.vcxproj", "{A0BAD8F0-69B5-8382-86ED-C36ACBE54117}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_entropy", "gen_entropy.vcxproj", "{DE695064-13C3-18B0-378D-8B22672BF3F4}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gen_random_ctr_drbg", "gen_random_ctr_drbg.vcxproj", "{5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtls_client", "dtls_client.vcxproj", "{FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dtls_server", "dtls_server.vcxproj", "{BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mini_client", "mini_client.vcxproj", "{C4FE29EA-266D-5295-4840-976B9B5B3843}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client1", "ssl_client1.vcxproj", "{487A2F80-3CA3-678D-88D5-82194872CF08}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_client2", "ssl_client2.vcxproj", "{4E590E9D-E28F-87FF-385B-D58736388231}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_context_info", "ssl_context_info.vcxproj", "{017ECC7D-FB6D-46D8-076B-F64172E8E3BC}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_fork_server", "ssl_fork_server.vcxproj", "{918CD402-047D-8467-E11C-E1132053F916}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_mail_client", "ssl_mail_client.vcxproj", "{7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server", "ssl_server.vcxproj", "{E08E0065-896A-7487-DEA5-D3B80B71F975}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssl_server2", "ssl_server2.vcxproj", "{A4DA7463-1047-BDF5-E1B3-5632CB573F41}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "benchmark", "benchmark.vcxproj", "{90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "query_compile_time_config", "query_compile_time_config.vcxproj", "{D6F58AF2-9D80-562A-E2B0-F743281522B9}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "selftest", "selftest.vcxproj", "{7DBC5F77-3DA1-5F73-8421-E693D95FC66A}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "udp_proxy", "udp_proxy.vcxproj", "{7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zeroize", "zeroize.vcxproj", "{10C01E94-4926-063E-9F56-C84ED190D349}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pem2der", "pem2der.vcxproj", "{D3C6FBD6-D78E-7180-8345-5E09B492DBEC}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strerror", "strerror.vcxproj", "{23EF735C-CC4C-3EC4-A75E-903DB340F04A}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_app", "cert_app.vcxproj", "{D4D691D4-137C-CBFA-735B-D46636D7E4D8}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_req", "cert_req.vcxproj", "{C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cert_write", "cert_write.vcxproj", "{35E52E46-3BA9-4361-41D3-53663C2E9B8A}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "crl_app", "crl_app.vcxproj", "{DB904B85-AD31-B7FB-114F-88760CC485F2}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_roots", "load_roots.vcxproj", "{65EB85E6-C928-689F-8335-126F78025220}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "req_app", "req_app.vcxproj", "{486B1375-5CFA-C2D2-DD89-C9F497BADCB3}" - ProjectSection(ProjectDependencies) = postProject - {46CF2D25-6A36-4189-B59C-E4815388E554} = {46CF2D25-6A36-4189-B59C-E4815388E554} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.ActiveCfg = Debug|Win32 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|Win32.Build.0 = Debug|Win32 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.ActiveCfg = Debug|x64 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Debug|x64.Build.0 = Debug|x64 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.ActiveCfg = Release|Win32 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|Win32.Build.0 = Release|Win32 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.ActiveCfg = Release|x64 - {46CF2D25-6A36-4189-B59C-E4815388E554}.Release|x64.Build.0 = Release|x64 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|Win32.ActiveCfg = Debug|Win32 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|Win32.Build.0 = Debug|Win32 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|x64.ActiveCfg = Debug|x64 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Debug|x64.Build.0 = Debug|x64 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|Win32.ActiveCfg = Release|Win32 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|Win32.Build.0 = Release|Win32 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|x64.ActiveCfg = Release|x64 - {5DBB9FC3-6FD6-CA8D-E0FA-35F1E75EFAE7}.Release|x64.Build.0 = Release|x64 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|Win32.ActiveCfg = Debug|Win32 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|Win32.Build.0 = Debug|Win32 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|x64.ActiveCfg = Debug|x64 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Debug|x64.Build.0 = Debug|x64 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|Win32.ActiveCfg = Release|Win32 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|Win32.Build.0 = Release|Win32 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|x64.ActiveCfg = Release|x64 - {1E959679-AB4C-F434-E078-BAA4DC2159E9}.Release|x64.Build.0 = Release|x64 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|Win32.ActiveCfg = Debug|Win32 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|Win32.Build.0 = Debug|Win32 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|x64.ActiveCfg = Debug|x64 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Debug|x64.Build.0 = Debug|x64 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|Win32.ActiveCfg = Release|Win32 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|Win32.Build.0 = Release|Win32 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|x64.ActiveCfg = Release|x64 - {D071CCF7-ACA0-21F8-D382-52A759AEA261}.Release|x64.Build.0 = Release|x64 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|Win32.ActiveCfg = Debug|Win32 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|Win32.Build.0 = Debug|Win32 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|x64.ActiveCfg = Debug|x64 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Debug|x64.Build.0 = Debug|x64 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|Win32.ActiveCfg = Release|Win32 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|Win32.Build.0 = Release|Win32 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|x64.ActiveCfg = Release|x64 - {B02D4AE1-0218-1CD4-F44E-EFAE19B01B8D}.Release|x64.Build.0 = Release|x64 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|Win32.ActiveCfg = Debug|Win32 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|Win32.Build.0 = Debug|Win32 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|x64.ActiveCfg = Debug|x64 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Debug|x64.Build.0 = Debug|x64 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|Win32.ActiveCfg = Release|Win32 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|Win32.Build.0 = Release|Win32 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|x64.ActiveCfg = Release|x64 - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415}.Release|x64.Build.0 = Release|x64 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|Win32.ActiveCfg = Debug|Win32 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|Win32.Build.0 = Debug|Win32 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|x64.ActiveCfg = Debug|x64 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Debug|x64.Build.0 = Debug|x64 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|Win32.ActiveCfg = Release|Win32 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|Win32.Build.0 = Release|Win32 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|x64.ActiveCfg = Release|x64 - {4D29BE4A-979C-C5AE-44B5-30FB37D8D4EE}.Release|x64.Build.0 = Release|x64 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|Win32.ActiveCfg = Debug|Win32 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|Win32.Build.0 = Debug|Win32 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|x64.ActiveCfg = Debug|x64 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Debug|x64.Build.0 = Debug|x64 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|Win32.ActiveCfg = Release|Win32 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|Win32.Build.0 = Release|Win32 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|x64.ActiveCfg = Release|x64 - {718960D9-5DA6-7B56-39AD-637E81076C71}.Release|x64.Build.0 = Release|x64 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|Win32.ActiveCfg = Debug|Win32 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|Win32.Build.0 = Debug|Win32 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|x64.ActiveCfg = Debug|x64 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Debug|x64.Build.0 = Debug|x64 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|Win32.ActiveCfg = Release|Win32 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|Win32.Build.0 = Release|Win32 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|x64.ActiveCfg = Release|x64 - {8D91B804-E2CE-142D-8E06-FBB037ED1F65}.Release|x64.Build.0 = Release|x64 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|Win32.ActiveCfg = Debug|Win32 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|Win32.Build.0 = Debug|Win32 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|x64.ActiveCfg = Debug|x64 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Debug|x64.Build.0 = Debug|x64 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|Win32.ActiveCfg = Release|Win32 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|Win32.Build.0 = Release|Win32 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|x64.ActiveCfg = Release|x64 - {82EE497E-12CC-7C5B-A072-665678ACB43E}.Release|x64.Build.0 = Release|x64 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|Win32.ActiveCfg = Debug|Win32 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|Win32.Build.0 = Debug|Win32 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|x64.ActiveCfg = Debug|x64 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Debug|x64.Build.0 = Debug|x64 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|Win32.ActiveCfg = Release|Win32 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|Win32.Build.0 = Release|Win32 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|x64.ActiveCfg = Release|x64 - {F58142CC-0CC7-0B18-5A0F-53642CFBA18E}.Release|x64.Build.0 = Release|x64 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|Win32.ActiveCfg = Debug|Win32 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|Win32.Build.0 = Debug|Win32 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|x64.ActiveCfg = Debug|x64 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Debug|x64.Build.0 = Debug|x64 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|Win32.ActiveCfg = Release|Win32 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|Win32.Build.0 = Release|Win32 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|x64.ActiveCfg = Release|x64 - {BF782A50-E9AE-00CC-C28A-C9DA8AAB4D52}.Release|x64.Build.0 = Release|x64 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|Win32.ActiveCfg = Debug|Win32 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|Win32.Build.0 = Debug|Win32 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|x64.ActiveCfg = Debug|x64 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Debug|x64.Build.0 = Debug|x64 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|Win32.ActiveCfg = Release|Win32 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|Win32.Build.0 = Release|Win32 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|x64.ActiveCfg = Release|x64 - {10AE376F-1A70-0297-0216-1FD01AD15D19}.Release|x64.Build.0 = Release|x64 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|Win32.ActiveCfg = Debug|Win32 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|Win32.Build.0 = Debug|Win32 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|x64.ActiveCfg = Debug|x64 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Debug|x64.Build.0 = Debug|x64 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|Win32.ActiveCfg = Release|Win32 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|Win32.Build.0 = Release|Win32 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|x64.ActiveCfg = Release|x64 - {E8ED79F9-8034-1B09-263E-D3F8C4C5C4A8}.Release|x64.Build.0 = Release|x64 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|Win32.ActiveCfg = Debug|Win32 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|Win32.Build.0 = Debug|Win32 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|x64.ActiveCfg = Debug|x64 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Debug|x64.Build.0 = Debug|x64 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|Win32.ActiveCfg = Release|Win32 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|Win32.Build.0 = Release|Win32 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|x64.ActiveCfg = Release|x64 - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE}.Release|x64.Build.0 = Release|x64 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|Win32.ActiveCfg = Debug|Win32 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|Win32.Build.0 = Debug|Win32 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|x64.ActiveCfg = Debug|x64 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Debug|x64.Build.0 = Debug|x64 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|Win32.ActiveCfg = Release|Win32 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|Win32.Build.0 = Release|Win32 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|x64.ActiveCfg = Release|x64 - {1EC6CBA3-6187-D456-D9B7-A35399395D71}.Release|x64.Build.0 = Release|x64 - {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|Win32.ActiveCfg = Debug|Win32 - {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|Win32.Build.0 = Debug|Win32 - {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|x64.ActiveCfg = Debug|x64 - {55007179-7746-9CFB-97EC-65102FB272C8}.Debug|x64.Build.0 = Debug|x64 - {55007179-7746-9CFB-97EC-65102FB272C8}.Release|Win32.ActiveCfg = Release|Win32 - {55007179-7746-9CFB-97EC-65102FB272C8}.Release|Win32.Build.0 = Release|Win32 - {55007179-7746-9CFB-97EC-65102FB272C8}.Release|x64.ActiveCfg = Release|x64 - {55007179-7746-9CFB-97EC-65102FB272C8}.Release|x64.Build.0 = Release|x64 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|Win32.ActiveCfg = Debug|Win32 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|Win32.Build.0 = Debug|Win32 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|x64.ActiveCfg = Debug|x64 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Debug|x64.Build.0 = Debug|x64 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|Win32.ActiveCfg = Release|Win32 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|Win32.Build.0 = Release|Win32 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|x64.ActiveCfg = Release|x64 - {F2E8CA55-597F-7FDC-6456-D8650FB970A3}.Release|x64.Build.0 = Release|x64 - {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|Win32.ActiveCfg = Debug|Win32 - {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|Win32.Build.0 = Debug|Win32 - {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|x64.ActiveCfg = Debug|x64 - {C429B336-1B30-119C-3B34-21A186D6744F}.Debug|x64.Build.0 = Debug|x64 - {C429B336-1B30-119C-3B34-21A186D6744F}.Release|Win32.ActiveCfg = Release|Win32 - {C429B336-1B30-119C-3B34-21A186D6744F}.Release|Win32.Build.0 = Release|Win32 - {C429B336-1B30-119C-3B34-21A186D6744F}.Release|x64.ActiveCfg = Release|x64 - {C429B336-1B30-119C-3B34-21A186D6744F}.Release|x64.Build.0 = Release|x64 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|Win32.ActiveCfg = Debug|Win32 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|Win32.Build.0 = Debug|Win32 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|x64.ActiveCfg = Debug|x64 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Debug|x64.Build.0 = Debug|x64 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|Win32.ActiveCfg = Release|Win32 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|Win32.Build.0 = Release|Win32 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|x64.ActiveCfg = Release|x64 - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9}.Release|x64.Build.0 = Release|x64 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|Win32.ActiveCfg = Debug|Win32 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|Win32.Build.0 = Debug|Win32 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|x64.ActiveCfg = Debug|x64 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Debug|x64.Build.0 = Debug|x64 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|Win32.ActiveCfg = Release|Win32 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|Win32.Build.0 = Release|Win32 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|x64.ActiveCfg = Release|x64 - {D06CF12E-F222-9273-41BF-B8A052FA5527}.Release|x64.Build.0 = Release|x64 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|Win32.ActiveCfg = Debug|Win32 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|Win32.Build.0 = Debug|Win32 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|x64.ActiveCfg = Debug|x64 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Debug|x64.Build.0 = Debug|x64 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|Win32.ActiveCfg = Release|Win32 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|Win32.Build.0 = Release|Win32 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|x64.ActiveCfg = Release|x64 - {F472475C-F677-0E7F-F127-45BF5B64F622}.Release|x64.Build.0 = Release|x64 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|Win32.ActiveCfg = Debug|Win32 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|Win32.Build.0 = Debug|Win32 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|x64.ActiveCfg = Debug|x64 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Debug|x64.Build.0 = Debug|x64 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|Win32.ActiveCfg = Release|Win32 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|Win32.Build.0 = Release|Win32 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|x64.ActiveCfg = Release|x64 - {10790F49-6887-AAB6-2D86-BCBD516F8D26}.Release|x64.Build.0 = Release|x64 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|Win32.ActiveCfg = Debug|Win32 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|Win32.Build.0 = Debug|Win32 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|x64.ActiveCfg = Debug|x64 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Debug|x64.Build.0 = Debug|x64 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|Win32.ActiveCfg = Release|Win32 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|Win32.Build.0 = Release|Win32 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|x64.ActiveCfg = Release|x64 - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D}.Release|x64.Build.0 = Release|x64 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|Win32.ActiveCfg = Debug|Win32 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|Win32.Build.0 = Debug|Win32 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|x64.ActiveCfg = Debug|x64 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Debug|x64.Build.0 = Debug|x64 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|Win32.ActiveCfg = Release|Win32 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|Win32.Build.0 = Release|Win32 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|x64.ActiveCfg = Release|x64 - {689E28CF-89ED-BA38-3A14-78A75D891D46}.Release|x64.Build.0 = Release|x64 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|Win32.ActiveCfg = Debug|Win32 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|Win32.Build.0 = Debug|Win32 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|x64.ActiveCfg = Debug|x64 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Debug|x64.Build.0 = Debug|x64 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|Win32.ActiveCfg = Release|Win32 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|Win32.Build.0 = Release|Win32 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|x64.ActiveCfg = Release|x64 - {95C50864-854C-2A11-4C91-BCE654E344FB}.Release|x64.Build.0 = Release|x64 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|Win32.ActiveCfg = Debug|Win32 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|Win32.Build.0 = Debug|Win32 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|x64.ActiveCfg = Debug|x64 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Debug|x64.Build.0 = Debug|x64 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|Win32.ActiveCfg = Release|Win32 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|Win32.Build.0 = Release|Win32 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|x64.ActiveCfg = Release|x64 - {B95203DF-96A0-9E2B-C761-DC13C13D7450}.Release|x64.Build.0 = Release|x64 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|Win32.ActiveCfg = Debug|Win32 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|Win32.Build.0 = Debug|Win32 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|x64.ActiveCfg = Debug|x64 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Debug|x64.Build.0 = Debug|x64 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|Win32.ActiveCfg = Release|Win32 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|Win32.Build.0 = Release|Win32 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|x64.ActiveCfg = Release|x64 - {020C31BD-C4DF-BABA-E537-F517C4E98537}.Release|x64.Build.0 = Release|x64 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|Win32.ActiveCfg = Debug|Win32 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|Win32.Build.0 = Debug|Win32 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|x64.ActiveCfg = Debug|x64 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Debug|x64.Build.0 = Debug|x64 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|Win32.ActiveCfg = Release|Win32 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|Win32.Build.0 = Release|Win32 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|x64.ActiveCfg = Release|x64 - {90DF77BA-05FC-B8EA-83F4-36057314AFC2}.Release|x64.Build.0 = Release|x64 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|Win32.ActiveCfg = Debug|Win32 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|Win32.Build.0 = Debug|Win32 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|x64.ActiveCfg = Debug|x64 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Debug|x64.Build.0 = Debug|x64 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|Win32.ActiveCfg = Release|Win32 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|Win32.Build.0 = Release|Win32 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|x64.ActiveCfg = Release|x64 - {778777A0-393D-45E8-83C1-EAF487236F1F}.Release|x64.Build.0 = Release|x64 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|Win32.ActiveCfg = Debug|Win32 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|Win32.Build.0 = Debug|Win32 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|x64.ActiveCfg = Debug|x64 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Debug|x64.Build.0 = Debug|x64 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|Win32.ActiveCfg = Release|Win32 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|Win32.Build.0 = Release|Win32 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|x64.ActiveCfg = Release|x64 - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117}.Release|x64.Build.0 = Release|x64 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|Win32.ActiveCfg = Debug|Win32 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|Win32.Build.0 = Debug|Win32 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|x64.ActiveCfg = Debug|x64 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Debug|x64.Build.0 = Debug|x64 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|Win32.ActiveCfg = Release|Win32 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|Win32.Build.0 = Release|Win32 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|x64.ActiveCfg = Release|x64 - {DE695064-13C3-18B0-378D-8B22672BF3F4}.Release|x64.Build.0 = Release|x64 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|Win32.ActiveCfg = Debug|Win32 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|Win32.Build.0 = Debug|Win32 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|x64.ActiveCfg = Debug|x64 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Debug|x64.Build.0 = Debug|x64 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|Win32.ActiveCfg = Release|Win32 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|Win32.Build.0 = Release|Win32 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|x64.ActiveCfg = Release|x64 - {5FCC71F6-FF33-EBCF-FBA2-8FC783D5318E}.Release|x64.Build.0 = Release|x64 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|Win32.ActiveCfg = Debug|Win32 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|Win32.Build.0 = Debug|Win32 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|x64.ActiveCfg = Debug|x64 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Debug|x64.Build.0 = Debug|x64 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|Win32.ActiveCfg = Release|Win32 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|Win32.Build.0 = Release|Win32 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|x64.ActiveCfg = Release|x64 - {FE7AB78F-DBF1-0721-3522-0D7C3011D2E5}.Release|x64.Build.0 = Release|x64 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|Win32.ActiveCfg = Debug|Win32 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|Win32.Build.0 = Debug|Win32 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|x64.ActiveCfg = Debug|x64 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Debug|x64.Build.0 = Debug|x64 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|Win32.ActiveCfg = Release|Win32 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|Win32.Build.0 = Release|Win32 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|x64.ActiveCfg = Release|x64 - {BFE89EAA-D98B-34E1-C5A4-4080F6FFE317}.Release|x64.Build.0 = Release|x64 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|Win32.ActiveCfg = Debug|Win32 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|Win32.Build.0 = Debug|Win32 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|x64.ActiveCfg = Debug|x64 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Debug|x64.Build.0 = Debug|x64 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|Win32.ActiveCfg = Release|Win32 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|Win32.Build.0 = Release|Win32 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|x64.ActiveCfg = Release|x64 - {C4FE29EA-266D-5295-4840-976B9B5B3843}.Release|x64.Build.0 = Release|x64 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|Win32.ActiveCfg = Debug|Win32 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|Win32.Build.0 = Debug|Win32 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|x64.ActiveCfg = Debug|x64 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Debug|x64.Build.0 = Debug|x64 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|Win32.ActiveCfg = Release|Win32 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|Win32.Build.0 = Release|Win32 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|x64.ActiveCfg = Release|x64 - {487A2F80-3CA3-678D-88D5-82194872CF08}.Release|x64.Build.0 = Release|x64 - {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|Win32.ActiveCfg = Debug|Win32 - {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|Win32.Build.0 = Debug|Win32 - {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|x64.ActiveCfg = Debug|x64 - {4E590E9D-E28F-87FF-385B-D58736388231}.Debug|x64.Build.0 = Debug|x64 - {4E590E9D-E28F-87FF-385B-D58736388231}.Release|Win32.ActiveCfg = Release|Win32 - {4E590E9D-E28F-87FF-385B-D58736388231}.Release|Win32.Build.0 = Release|Win32 - {4E590E9D-E28F-87FF-385B-D58736388231}.Release|x64.ActiveCfg = Release|x64 - {4E590E9D-E28F-87FF-385B-D58736388231}.Release|x64.Build.0 = Release|x64 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|Win32.ActiveCfg = Debug|Win32 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|Win32.Build.0 = Debug|Win32 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|x64.ActiveCfg = Debug|x64 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Debug|x64.Build.0 = Debug|x64 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|Win32.ActiveCfg = Release|Win32 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|Win32.Build.0 = Release|Win32 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|x64.ActiveCfg = Release|x64 - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC}.Release|x64.Build.0 = Release|x64 - {918CD402-047D-8467-E11C-E1132053F916}.Debug|Win32.ActiveCfg = Debug|Win32 - {918CD402-047D-8467-E11C-E1132053F916}.Debug|Win32.Build.0 = Debug|Win32 - {918CD402-047D-8467-E11C-E1132053F916}.Debug|x64.ActiveCfg = Debug|x64 - {918CD402-047D-8467-E11C-E1132053F916}.Debug|x64.Build.0 = Debug|x64 - {918CD402-047D-8467-E11C-E1132053F916}.Release|Win32.ActiveCfg = Release|Win32 - {918CD402-047D-8467-E11C-E1132053F916}.Release|Win32.Build.0 = Release|Win32 - {918CD402-047D-8467-E11C-E1132053F916}.Release|x64.ActiveCfg = Release|x64 - {918CD402-047D-8467-E11C-E1132053F916}.Release|x64.Build.0 = Release|x64 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|Win32.ActiveCfg = Debug|Win32 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|Win32.Build.0 = Debug|Win32 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|x64.ActiveCfg = Debug|x64 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Debug|x64.Build.0 = Debug|x64 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|Win32.ActiveCfg = Release|Win32 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|Win32.Build.0 = Release|Win32 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|x64.ActiveCfg = Release|x64 - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD}.Release|x64.Build.0 = Release|x64 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|Win32.ActiveCfg = Debug|Win32 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|Win32.Build.0 = Debug|Win32 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|x64.ActiveCfg = Debug|x64 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Debug|x64.Build.0 = Debug|x64 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|Win32.ActiveCfg = Release|Win32 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|Win32.Build.0 = Release|Win32 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|x64.ActiveCfg = Release|x64 - {E08E0065-896A-7487-DEA5-D3B80B71F975}.Release|x64.Build.0 = Release|x64 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|Win32.ActiveCfg = Debug|Win32 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|Win32.Build.0 = Debug|Win32 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|x64.ActiveCfg = Debug|x64 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Debug|x64.Build.0 = Debug|x64 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|Win32.ActiveCfg = Release|Win32 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|Win32.Build.0 = Release|Win32 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|x64.ActiveCfg = Release|x64 - {A4DA7463-1047-BDF5-E1B3-5632CB573F41}.Release|x64.Build.0 = Release|x64 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|Win32.ActiveCfg = Debug|Win32 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|Win32.Build.0 = Debug|Win32 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|x64.ActiveCfg = Debug|x64 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Debug|x64.Build.0 = Debug|x64 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|Win32.ActiveCfg = Release|Win32 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|Win32.Build.0 = Release|Win32 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|x64.ActiveCfg = Release|x64 - {90EFD9A4-C6B0-3EE8-1F06-0A0E0D55AEDA}.Release|x64.Build.0 = Release|x64 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.ActiveCfg = Debug|Win32 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|Win32.Build.0 = Debug|Win32 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.ActiveCfg = Debug|x64 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Debug|x64.Build.0 = Debug|x64 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.ActiveCfg = Release|Win32 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|Win32.Build.0 = Release|Win32 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.ActiveCfg = Release|x64 - {D6F58AF2-9D80-562A-E2B0-F743281522B9}.Release|x64.Build.0 = Release|x64 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|Win32.ActiveCfg = Debug|Win32 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|Win32.Build.0 = Debug|Win32 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|x64.ActiveCfg = Debug|x64 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Debug|x64.Build.0 = Debug|x64 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|Win32.ActiveCfg = Release|Win32 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|Win32.Build.0 = Release|Win32 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|x64.ActiveCfg = Release|x64 - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A}.Release|x64.Build.0 = Release|x64 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|Win32.ActiveCfg = Debug|Win32 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|Win32.Build.0 = Debug|Win32 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|x64.ActiveCfg = Debug|x64 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Debug|x64.Build.0 = Debug|x64 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|Win32.ActiveCfg = Release|Win32 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|Win32.Build.0 = Release|Win32 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|x64.ActiveCfg = Release|x64 - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A}.Release|x64.Build.0 = Release|x64 - {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|Win32.ActiveCfg = Debug|Win32 - {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|Win32.Build.0 = Debug|Win32 - {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|x64.ActiveCfg = Debug|x64 - {10C01E94-4926-063E-9F56-C84ED190D349}.Debug|x64.Build.0 = Debug|x64 - {10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.ActiveCfg = Release|Win32 - {10C01E94-4926-063E-9F56-C84ED190D349}.Release|Win32.Build.0 = Release|Win32 - {10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.ActiveCfg = Release|x64 - {10C01E94-4926-063E-9F56-C84ED190D349}.Release|x64.Build.0 = Release|x64 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.ActiveCfg = Debug|Win32 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|Win32.Build.0 = Debug|Win32 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.ActiveCfg = Debug|x64 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Debug|x64.Build.0 = Debug|x64 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|Win32.ActiveCfg = Release|Win32 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|Win32.Build.0 = Release|Win32 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|x64.ActiveCfg = Release|x64 - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC}.Release|x64.Build.0 = Release|x64 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|Win32.ActiveCfg = Debug|Win32 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|Win32.Build.0 = Debug|Win32 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|x64.ActiveCfg = Debug|x64 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Debug|x64.Build.0 = Debug|x64 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|Win32.ActiveCfg = Release|Win32 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|Win32.Build.0 = Release|Win32 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|x64.ActiveCfg = Release|x64 - {23EF735C-CC4C-3EC4-A75E-903DB340F04A}.Release|x64.Build.0 = Release|x64 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|Win32.ActiveCfg = Debug|Win32 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|Win32.Build.0 = Debug|Win32 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|x64.ActiveCfg = Debug|x64 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Debug|x64.Build.0 = Debug|x64 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|Win32.ActiveCfg = Release|Win32 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|Win32.Build.0 = Release|Win32 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|x64.ActiveCfg = Release|x64 - {D4D691D4-137C-CBFA-735B-D46636D7E4D8}.Release|x64.Build.0 = Release|x64 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|Win32.ActiveCfg = Debug|Win32 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|Win32.Build.0 = Debug|Win32 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|x64.ActiveCfg = Debug|x64 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Debug|x64.Build.0 = Debug|x64 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|Win32.ActiveCfg = Release|Win32 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|Win32.Build.0 = Release|Win32 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|x64.ActiveCfg = Release|x64 - {C9E2AB15-8AEF-DD48-60C3-557ECC5215BE}.Release|x64.Build.0 = Release|x64 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|Win32.ActiveCfg = Debug|Win32 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|Win32.Build.0 = Debug|Win32 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|x64.ActiveCfg = Debug|x64 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Debug|x64.Build.0 = Debug|x64 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|Win32.ActiveCfg = Release|Win32 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|Win32.Build.0 = Release|Win32 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|x64.ActiveCfg = Release|x64 - {35E52E46-3BA9-4361-41D3-53663C2E9B8A}.Release|x64.Build.0 = Release|x64 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|Win32.Build.0 = Debug|Win32 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|x64.ActiveCfg = Debug|x64 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Debug|x64.Build.0 = Debug|x64 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|Win32.ActiveCfg = Release|Win32 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|Win32.Build.0 = Release|Win32 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|x64.ActiveCfg = Release|x64 - {DB904B85-AD31-B7FB-114F-88760CC485F2}.Release|x64.Build.0 = Release|x64 - {65EB85E6-C928-689F-8335-126F78025220}.Debug|Win32.ActiveCfg = Debug|Win32 - {65EB85E6-C928-689F-8335-126F78025220}.Debug|Win32.Build.0 = Debug|Win32 - {65EB85E6-C928-689F-8335-126F78025220}.Debug|x64.ActiveCfg = Debug|x64 - {65EB85E6-C928-689F-8335-126F78025220}.Debug|x64.Build.0 = Debug|x64 - {65EB85E6-C928-689F-8335-126F78025220}.Release|Win32.ActiveCfg = Release|Win32 - {65EB85E6-C928-689F-8335-126F78025220}.Release|Win32.Build.0 = Release|Win32 - {65EB85E6-C928-689F-8335-126F78025220}.Release|x64.ActiveCfg = Release|x64 - {65EB85E6-C928-689F-8335-126F78025220}.Release|x64.Build.0 = Release|x64 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|Win32.ActiveCfg = Debug|Win32 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|Win32.Build.0 = Debug|Win32 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|x64.ActiveCfg = Debug|x64 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Debug|x64.Build.0 = Debug|x64 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|Win32.ActiveCfg = Release|Win32 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|Win32.Build.0 = Release|Win32 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|x64.ActiveCfg = Release|x64 - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/visualc/VS2010/mbedTLS.vcxproj b/visualc/VS2010/mbedTLS.vcxproj deleted file mode 100644 index 0981bbf37..000000000 --- a/visualc/VS2010/mbedTLS.vcxproj +++ /dev/null @@ -1,424 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - {46CF2D25-6A36-4189-B59C-E4815388E554} - Win32Proj - mbedTLS - - - - StaticLibrary - true - Unicode - - - StaticLibrary - true - Unicode - - - StaticLibrary - false - true - Unicode - - - StaticLibrary - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - _USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) - -../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - CompileAsC - - - Windows - true - - - - - Level3 - Disabled - _USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) - -../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - CompileAsC - - - Windows - true - - - - - Level3 - MaxSpeed - true - true - NDEBUG;_USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) - -../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Windows - true - true - true - - - - - Level3 - MaxSpeed - true - true - WIN64;NDEBUG;_WINDOWS;_USRDLL;MBEDTLS_EXPORTS;KRML_VERIFIED_UINT128;%(PreprocessorDefinitions) - -../../library;../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Windows - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/visualc/VS2010/md_hmac_demo.vcxproj b/visualc/VS2010/md_hmac_demo.vcxproj deleted file mode 100644 index fcbd3acf0..000000000 --- a/visualc/VS2010/md_hmac_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {ABCEDDC7-BF2D-2779-909A-9AE5923F1415} - Win32Proj - md_hmac_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/mini_client.vcxproj b/visualc/VS2010/mini_client.vcxproj deleted file mode 100644 index e4ee166bf..000000000 --- a/visualc/VS2010/mini_client.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {C4FE29EA-266D-5295-4840-976B9B5B3843} - Win32Proj - mini_client - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/mpi_demo.vcxproj b/visualc/VS2010/mpi_demo.vcxproj deleted file mode 100644 index b0fee89c3..000000000 --- a/visualc/VS2010/mpi_demo.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {A59FAA0B-9C34-1F99-794D-A365A3AA8CCE} - Win32Proj - mpi_demo - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/pem2der.vcxproj b/visualc/VS2010/pem2der.vcxproj deleted file mode 100644 index 84c2e8c0a..000000000 --- a/visualc/VS2010/pem2der.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {D3C6FBD6-D78E-7180-8345-5E09B492DBEC} - Win32Proj - pem2der - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/pk_decrypt.vcxproj b/visualc/VS2010/pk_decrypt.vcxproj deleted file mode 100644 index da3e8d8e0..000000000 --- a/visualc/VS2010/pk_decrypt.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {1EC6CBA3-6187-D456-D9B7-A35399395D71} - Win32Proj - pk_decrypt - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/pk_encrypt.vcxproj b/visualc/VS2010/pk_encrypt.vcxproj deleted file mode 100644 index 829e07234..000000000 --- a/visualc/VS2010/pk_encrypt.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {55007179-7746-9CFB-97EC-65102FB272C8} - Win32Proj - pk_encrypt - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/pk_sign.vcxproj b/visualc/VS2010/pk_sign.vcxproj deleted file mode 100644 index d93d11469..000000000 --- a/visualc/VS2010/pk_sign.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {F2E8CA55-597F-7FDC-6456-D8650FB970A3} - Win32Proj - pk_sign - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/pk_verify.vcxproj b/visualc/VS2010/pk_verify.vcxproj deleted file mode 100644 index 5933b9258..000000000 --- a/visualc/VS2010/pk_verify.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {C429B336-1B30-119C-3B34-21A186D6744F} - Win32Proj - pk_verify - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/psa_constant_names.vcxproj b/visualc/VS2010/psa_constant_names.vcxproj deleted file mode 100644 index d35dd19a1..000000000 --- a/visualc/VS2010/psa_constant_names.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {A0BAD8F0-69B5-8382-86ED-C36ACBE54117} - Win32Proj - psa_constant_names - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/query_compile_time_config.vcxproj b/visualc/VS2010/query_compile_time_config.vcxproj deleted file mode 100644 index d0e0a6df6..000000000 --- a/visualc/VS2010/query_compile_time_config.vcxproj +++ /dev/null @@ -1,168 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {D6F58AF2-9D80-562A-E2B0-F743281522B9} - Win32Proj - query_compile_time_config - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/req_app.vcxproj b/visualc/VS2010/req_app.vcxproj deleted file mode 100644 index 900e415fb..000000000 --- a/visualc/VS2010/req_app.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {486B1375-5CFA-C2D2-DD89-C9F497BADCB3} - Win32Proj - req_app - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_decrypt.vcxproj b/visualc/VS2010/rsa_decrypt.vcxproj deleted file mode 100644 index 188b17efd..000000000 --- a/visualc/VS2010/rsa_decrypt.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {E0D71D72-8DF4-CCFC-EF60-741EADAB8BF9} - Win32Proj - rsa_decrypt - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_encrypt.vcxproj b/visualc/VS2010/rsa_encrypt.vcxproj deleted file mode 100644 index a44f676d7..000000000 --- a/visualc/VS2010/rsa_encrypt.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {D06CF12E-F222-9273-41BF-B8A052FA5527} - Win32Proj - rsa_encrypt - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_genkey.vcxproj b/visualc/VS2010/rsa_genkey.vcxproj deleted file mode 100644 index 35b27b7a3..000000000 --- a/visualc/VS2010/rsa_genkey.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {F472475C-F677-0E7F-F127-45BF5B64F622} - Win32Proj - rsa_genkey - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_sign.vcxproj b/visualc/VS2010/rsa_sign.vcxproj deleted file mode 100644 index 90a7ac8cb..000000000 --- a/visualc/VS2010/rsa_sign.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {10790F49-6887-AAB6-2D86-BCBD516F8D26} - Win32Proj - rsa_sign - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_sign_pss.vcxproj b/visualc/VS2010/rsa_sign_pss.vcxproj deleted file mode 100644 index 5d2ac8208..000000000 --- a/visualc/VS2010/rsa_sign_pss.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {DCD3A1B6-5EC1-8266-93EF-BD2B9BEFE12D} - Win32Proj - rsa_sign_pss - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_verify.vcxproj b/visualc/VS2010/rsa_verify.vcxproj deleted file mode 100644 index a413ba8ca..000000000 --- a/visualc/VS2010/rsa_verify.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {689E28CF-89ED-BA38-3A14-78A75D891D46} - Win32Proj - rsa_verify - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/rsa_verify_pss.vcxproj b/visualc/VS2010/rsa_verify_pss.vcxproj deleted file mode 100644 index 369b14514..000000000 --- a/visualc/VS2010/rsa_verify_pss.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {95C50864-854C-2A11-4C91-BCE654E344FB} - Win32Proj - rsa_verify_pss - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/selftest.vcxproj b/visualc/VS2010/selftest.vcxproj deleted file mode 100644 index 6feb5936f..000000000 --- a/visualc/VS2010/selftest.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {7DBC5F77-3DA1-5F73-8421-E693D95FC66A} - Win32Proj - selftest - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_client1.vcxproj b/visualc/VS2010/ssl_client1.vcxproj deleted file mode 100644 index 860334e4a..000000000 --- a/visualc/VS2010/ssl_client1.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {487A2F80-3CA3-678D-88D5-82194872CF08} - Win32Proj - ssl_client1 - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_client2.vcxproj b/visualc/VS2010/ssl_client2.vcxproj deleted file mode 100644 index 9884f2370..000000000 --- a/visualc/VS2010/ssl_client2.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {4E590E9D-E28F-87FF-385B-D58736388231} - Win32Proj - ssl_client2 - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_context_info.vcxproj b/visualc/VS2010/ssl_context_info.vcxproj deleted file mode 100644 index 1c98d34bf..000000000 --- a/visualc/VS2010/ssl_context_info.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {017ECC7D-FB6D-46D8-076B-F64172E8E3BC} - Win32Proj - ssl_context_info - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_fork_server.vcxproj b/visualc/VS2010/ssl_fork_server.vcxproj deleted file mode 100644 index 6d44ef079..000000000 --- a/visualc/VS2010/ssl_fork_server.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {918CD402-047D-8467-E11C-E1132053F916} - Win32Proj - ssl_fork_server - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_mail_client.vcxproj b/visualc/VS2010/ssl_mail_client.vcxproj deleted file mode 100644 index e2253c665..000000000 --- a/visualc/VS2010/ssl_mail_client.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {7C4863A1-941A-C5AE-E1F9-30F062E4B2FD} - Win32Proj - ssl_mail_client - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_server.vcxproj b/visualc/VS2010/ssl_server.vcxproj deleted file mode 100644 index 23ad7ecc8..000000000 --- a/visualc/VS2010/ssl_server.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {E08E0065-896A-7487-DEA5-D3B80B71F975} - Win32Proj - ssl_server - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/ssl_server2.vcxproj b/visualc/VS2010/ssl_server2.vcxproj deleted file mode 100644 index d8f3e592d..000000000 --- a/visualc/VS2010/ssl_server2.vcxproj +++ /dev/null @@ -1,169 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {A4DA7463-1047-BDF5-E1B3-5632CB573F41} - Win32Proj - ssl_server2 - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/strerror.vcxproj b/visualc/VS2010/strerror.vcxproj deleted file mode 100644 index 9e70decd9..000000000 --- a/visualc/VS2010/strerror.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {23EF735C-CC4C-3EC4-A75E-903DB340F04A} - Win32Proj - strerror - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/udp_proxy.vcxproj b/visualc/VS2010/udp_proxy.vcxproj deleted file mode 100644 index 69678f635..000000000 --- a/visualc/VS2010/udp_proxy.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {7E2C80FE-3CC3-82B4-0CAD-65DC233DE13A} - Win32Proj - udp_proxy - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - diff --git a/visualc/VS2010/zeroize.vcxproj b/visualc/VS2010/zeroize.vcxproj deleted file mode 100644 index 9e0746de9..000000000 --- a/visualc/VS2010/zeroize.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release - Win32 - - - Release - x64 - - - - - - - - {46cf2d25-6a36-4189-b59c-e4815388e554} - true - - - - {10C01E94-4926-063E-9F56-C84ED190D349} - Win32Proj - zeroize - - - - Application - true - Unicode - - - Application - true - Unicode - - - Application - false - true - Unicode - - - Application - false - true - Unicode - - - - - - - - - - - - - - - - - - - true - $(Configuration)\$(TargetName)\ - - - true - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - false - $(Configuration)\$(TargetName)\ - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - Disabled - %(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - Debug - - - false - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - true - true - NDEBUG;%(PreprocessorDefinitions) - -../../include;../../3rdparty/everest/include/;../../3rdparty/everest/include/everest;../../3rdparty/everest/include/everest/vs2010;../../3rdparty/everest/include/everest/kremlib;../../tests/include - - - Console - true - true - true - Release - %(AdditionalDependencies); - - - - - - From 59626b61799e0e7df8957834feaf965e62dd3436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 15 Dec 2022 10:08:26 +0100 Subject: [PATCH 1217/1574] Point to docker images used in the CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- README.md | 2 ++ tests/compat-in-docker.sh | 4 ++++ tests/docker/bionic/Dockerfile | 4 ++++ tests/make-in-docker.sh | 4 ++++ tests/scripts/all-in-docker.sh | 4 ++++ tests/scripts/basic-in-docker.sh | 4 ++++ tests/scripts/docker_env.sh | 4 ++++ tests/ssl-opt-in-docker.sh | 4 ++++ 8 files changed, 30 insertions(+) diff --git a/README.md b/README.md index 8a23bd28c..cc70f5610 100644 --- a/README.md +++ b/README.md @@ -245,6 +245,8 @@ For machines with a Unix shell and OpenSSL (and optionally GnuTLS) installed, ad - `tests/scripts/depends.py` test builds in configurations with a single curve, key exchange, hash, cipher, or pkalg on. - `tests/scripts/all.sh` runs a combination of the above tests, plus some more, with various build options (such as ASan, full `mbedtls_config.h`, etc). +Instead of manually installing the required versions of all tools required for testing, it is possible to use the Docker images from our CI systems, as explained in [our testing infrastructure repository](https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start). + Porting Mbed TLS ---------------- diff --git a/tests/compat-in-docker.sh b/tests/compat-in-docker.sh index 3a1cd2144..ad7358210 100755 --- a/tests/compat-in-docker.sh +++ b/tests/compat-in-docker.sh @@ -6,6 +6,10 @@ # ------- # This runs compat.sh in a Docker container. # +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. +# # Notes for users # --------------- # If OPENSSL_CMD, GNUTLS_CLI, or GNUTLS_SERV are specified the path must diff --git a/tests/docker/bionic/Dockerfile b/tests/docker/bionic/Dockerfile index 28d33b755..d44cdff25 100644 --- a/tests/docker/bionic/Dockerfile +++ b/tests/docker/bionic/Dockerfile @@ -4,6 +4,10 @@ # ------- # Defines a Docker container suitable to build and run all tests (all.sh), # except for those that use a proprietary toolchain. +# +# WARNING: this Dockerfile is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 diff --git a/tests/make-in-docker.sh b/tests/make-in-docker.sh index 77dc8ab43..0ee08dc48 100755 --- a/tests/make-in-docker.sh +++ b/tests/make-in-docker.sh @@ -8,6 +8,10 @@ # # See also: # - scripts/docker_env.sh for general Docker prerequisites and other information. +# +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 diff --git a/tests/scripts/all-in-docker.sh b/tests/scripts/all-in-docker.sh index 8c9ff476d..7c03d9135 100755 --- a/tests/scripts/all-in-docker.sh +++ b/tests/scripts/all-in-docker.sh @@ -6,6 +6,10 @@ # ------- # This runs all.sh (except for armcc) in a Docker container. # +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. +# # Notes for users # --------------- # See docker_env.sh for prerequisites and other information. diff --git a/tests/scripts/basic-in-docker.sh b/tests/scripts/basic-in-docker.sh index 1f65710c8..02cafb0cc 100755 --- a/tests/scripts/basic-in-docker.sh +++ b/tests/scripts/basic-in-docker.sh @@ -9,6 +9,10 @@ # in the default configuration, partial test runs in the reference # configurations, and some dependency tests. # +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. +# # Notes for users # --------------- # See docker_env.sh for prerequisites and other information. diff --git a/tests/scripts/docker_env.sh b/tests/scripts/docker_env.sh index be96c7270..3dbc41d92 100755 --- a/tests/scripts/docker_env.sh +++ b/tests/scripts/docker_env.sh @@ -9,6 +9,10 @@ # thus making it easier to get set up as well as isolating test dependencies # (which include legacy/insecure configurations of openssl and gnutls). # +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. +# # Notes for users # --------------- # This script expects a Linux x86_64 system with a recent version of Docker diff --git a/tests/ssl-opt-in-docker.sh b/tests/ssl-opt-in-docker.sh index e7bb01d8c..c8c669725 100755 --- a/tests/ssl-opt-in-docker.sh +++ b/tests/ssl-opt-in-docker.sh @@ -6,6 +6,10 @@ # ------- # This runs ssl-opt.sh in a Docker container. # +# WARNING: the Dockerfile used by this script is no longer maintained! See +# https://github.com/Mbed-TLS/mbedtls-test/blob/master/README.md#quick-start +# for the set of Docker images we use on the CI. +# # Notes for users # --------------- # If OPENSSL_CMD, GNUTLS_CLI, or GNUTLS_SERV are specified, the path must From 7f4d15e84d97880ac3b84facf17f09c714857bae Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Dec 2022 10:55:15 +0000 Subject: [PATCH 1218/1574] Update mbedtls_mpi_mod_sub() tests to incorporate mod_add test feedback Signed-off-by: Tom Cosgrove --- tests/suites/test_suite_bignum_mod.function | 37 ++++++++++++--------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 507920afd..1e64255bd 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -108,7 +108,7 @@ exit: /* BEGIN_CASE */ void mpi_mod_sub( char * input_N, char * input_A, char * input_B, - char * input_D, int oret ) + char * input_D, int expected_ret ) { mbedtls_mpi_mod_residue a = { NULL, 0 }; mbedtls_mpi_mod_residue b = { NULL, 0 }; @@ -125,46 +125,51 @@ void mpi_mod_sub( char * input_N, /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, oret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, oret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &d, &m, input_D, oret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &d, &m, input_D, expected_ret != 0 ) ); size_t limbs = m.limbs; size_t bytes = limbs * sizeof( *X_raw ); - /* One spare limb for negative testing */ - ASSERT_ALLOC( X_raw, limbs + 1 ); - - if( oret == 0 ) + if( expected_ret == 0 ) { - /* Sneak in a couple of negative tests on known-good data */ + /* Negative test with too many limbs in output */ + ASSERT_ALLOC( X_raw, limbs + 1 ); - /* First, negative test with too many limbs in output */ x.p = X_raw; x.limbs = limbs + 1; TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); - /* Then negative test with too few limbs in output */ + mbedtls_free( X_raw ); + X_raw = NULL; + + /* Negative test with too few limbs in output */ if( limbs > 1 ) { + ASSERT_ALLOC( X_raw, limbs - 1 ); + x.p = X_raw; x.limbs = limbs - 1; TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + + mbedtls_free( X_raw ); + X_raw = NULL; } /* Negative testing with too many/too few limbs in a and b is covered by - * manually-written test cases with oret != 0. */ - - /* Back to the normally-scheduled programme */ + * manually-written test cases with expected_ret != 0. */ } + ASSERT_ALLOC( X_raw, limbs ); + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); /* a - b => Correct result, or expected error */ - TEST_EQUAL( oret, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); - if( oret != 0 ) + TEST_EQUAL( expected_ret, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + if( expected_ret != 0 ) goto exit; TEST_COMPARE_MPI_RESIDUES( x, d ); From e1eb75dc992445837d1ca44cffa4cce9d8c7dc9e Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 13:45:49 +0000 Subject: [PATCH 1219/1574] Specify modulus constraints Signed-off-by: Werner Lewis --- library/bignum_mod.h | 7 ++++--- library/bignum_mod_raw.h | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index ab00c9303..f2fd7e245 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -7,9 +7,10 @@ * explicitly indicated otherwise: * * - **Modulus parameters**: the modulus is passed as a pointer to a structure - * of type #mbedtls_mpi_mod_modulus. The structure must be setup with an - * array of limbs storing the bignum value of the modulus. Unless otherwise - * specified, the modulus is called \p N and is input-only. + * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an + * array of limbs storing the bignum value of the modulus. The modulus must + * be odd and is assumed to have no leading zeroes. The modulus is usually + * named \p N and is usually input-only. * - **Bignum parameters**: Bignums are passed as pointers to an array of * limbs or to a #mbedtls_mpi_mod_residue structure. A limb has the type * #mbedtls_mpi_uint. Residues must be initialized before use, and must be diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 56e5cbc2e..7559ae8c6 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -15,9 +15,10 @@ * The functions in this module obey the following conventions unless * explicitly indicated otherwise: * - **Modulus parameters**: the modulus is passed as a pointer to a structure - * of type #mbedtls_mpi_mod_modulus. The structure must be setup with an - * array of limbs storing the bignum value of the modulus. Unless otherwise - * specified, the modulus is called \p N and is input-only. + * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an + * array of limbs storing the bignum value of the modulus. The modulus must + * be odd and is assumed to have no leading zeroes. The modulus is usually + * named \p N and is usually input-only. * - **Bignum parameters**: Bignums are passed as pointers to an array of * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified: * - Bignum parameters called \p A, \p B, ... are inputs, and are not From f5b47069746c5c7dc932e67b222c1eab187ec868 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Thu, 15 Dec 2022 13:46:23 +0100 Subject: [PATCH 1220/1574] TLS 1.3: Fix some test dependencies Signed-off-by: Ronald Cron --- tests/opt-testcases/tls13-misc.sh | 62 +++++++++++-------------------- 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index ed428480c..710fb3433 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -56,11 +56,8 @@ run_test "TLS 1.3: PSK: No valid ciphersuite. O->m" \ -s "No matched ciphersuite" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8" \ "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ @@ -73,11 +70,8 @@ run_test "TLS 1.3 m->m: Multiple PSKs: valid ticket, reconnect with ticket" \ -S "ticket is not authentic" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ "$P_SRV force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 tickets=8 dummy_ticket=1" \ "$P_CLI force_version=tls13 tls13_kex_modes=psk_ephemeral debug_level=5 psk_identity=Client_identity psk=6162636465666768696a6b6c6d6e6f70 reco_mode=1 reconnect=1" \ @@ -90,11 +84,9 @@ run_test "TLS 1.3 m->m: Multiple PSKs: invalid ticket, reconnect with PSK" \ -s "ticket is not authentic" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=1" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -111,11 +103,9 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket authentication failed -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=2" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -132,11 +122,9 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket expired." \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=3" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -153,11 +141,9 @@ run_test "TLS 1.3 m->m: Session resumption failure, invalid start time." \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=4" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -174,11 +160,9 @@ run_test "TLS 1.3 m->m: Session resumption failure, ticket expired. too old" \ -S "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too young." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=5" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ @@ -195,11 +179,9 @@ run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window -s "Ticket age outside tolerance window" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS MBEDTLS_SSL_SRV_C \ - MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C MBEDTLS_HAVE_TIME \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Session resumption failure, age outside tolerance window, too old." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 tickets=8 dummy_ticket=6" \ "$P_CLI debug_level=4 reco_mode=1 reconnect=1" \ From eac8be76d6b9376124fbda82d8b74386a8137f67 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 13:49:12 +0000 Subject: [PATCH 1221/1574] Remove unnecessary type comment Signed-off-by: Werner Lewis --- library/bignum_mod.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index f2fd7e245..6599e11de 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -16,8 +16,7 @@ * #mbedtls_mpi_uint. Residues must be initialized before use, and must be * associated with the modulus \p N. Unless otherwise specified: * - Bignum parameters called \p A, \p B, ... are inputs and are not - * modified by the function. These will have the type - * #mbedtls_mpi_mod_residue. + * modified by the function. * - Bignum parameters called \p X, \p Y, ... are outputs or input-output. * The initial content of output-only parameters is ignored. These will * have the type #mbedtls_mpi_mod_residue. From 945a165a3cf459adb99594699afc63e6c06a5ee8 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 15:24:46 +0000 Subject: [PATCH 1222/1574] Clarify output requirements Signed-off-by: Werner Lewis --- library/bignum_mod.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 6599e11de..d7404aee8 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -18,8 +18,8 @@ * - Bignum parameters called \p A, \p B, ... are inputs and are not * modified by the function. * - Bignum parameters called \p X, \p Y, ... are outputs or input-output. - * The initial content of output-only parameters is ignored. These will - * have the type #mbedtls_mpi_mod_residue. + * The initial bignum value of output-only parameters is ignored, but + * they must be set up and associated with the modulus \p N. * - Bignum parameters called \p P are inputs used to setup a modulus or * residue. These must be pointers to an array of limbs. * - \p T is a temporary storage area. The initial content of such From 2bd263da1e5f6aab327443a4d157dfc0189f0998 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 15:32:31 +0000 Subject: [PATCH 1223/1574] Fix grammar and spelling Signed-off-by: Werner Lewis --- library/bignum_mod.h | 6 +++--- library/bignum_mod_raw.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index d7404aee8..f1067f018 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -20,9 +20,9 @@ * - Bignum parameters called \p X, \p Y, ... are outputs or input-output. * The initial bignum value of output-only parameters is ignored, but * they must be set up and associated with the modulus \p N. - * - Bignum parameters called \p P are inputs used to setup a modulus or + * - Bignum parameters called \p P are inputs used to set up a modulus or * residue. These must be pointers to an array of limbs. - * - \p T is a temporary storage area. The initial content of such + * - \p T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. * - Some functions use different names, such as \p R for the residue. * - **Bignum sizes**: bignum sizes are always expressed in limbs. Both @@ -44,7 +44,7 @@ * - **Overlap**: apart from aliasing of residue pointers (where two residue * arguments are equal pointers), overlap is not supported and may result * in undefined behavior. - * - **Error handling**: functions generally check compatability of input + * - **Error handling**: functions generally check compatibility of input * sizes. Most functions will not check that input values are in canonical * form (i.e. that \p A < \p N), this is only checked during setup of a * residue structure. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 7559ae8c6..bcdeaad6d 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -25,7 +25,7 @@ * modified by the function. * - Bignum parameters called \p X, \p Y are outputs or input-output. * The initial content of output-only parameters is ignored. - * - \p T is a temporary storage area. The initial content of such + * - \p T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. * - **Bignum sizes**: bignum sizes are always expressed by the \p limbs * member of the modulus argument. Any bignum parameters must have the same From 2e70b9afef16db10022e37d82b8a3c43152c1471 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 15:48:31 +0000 Subject: [PATCH 1224/1574] Reword bignum sizes section Signed-off-by: Werner Lewis --- library/bignum_mod.h | 12 +++++------- library/bignum_mod_raw.h | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index f1067f018..67684bd67 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -26,13 +26,11 @@ * parameter is ignored and the final content is unspecified. * - Some functions use different names, such as \p R for the residue. * - **Bignum sizes**: bignum sizes are always expressed in limbs. Both - * #mbedtls_mpi_mod_modulus and #mbedtls_mpi_mod_residue have a \p limbs - * member storing its size. Functions which take a limb array parameter - * must also take an associated \p limbs parameter specifying its size. - * All bignum sizes must be at least 1 and be significantly less than - * #SIZE_MAX. The behavior if a size is 0 may be undefined or an error - * may be returned. All bignum parameters must have the same size unless - * otherwise specified. + * #mbedtls_mpi_mod_modulus and #mbedtls_mpi_mod_residue have a \c limbs + * member storing its size. All bignum parameters must have the same + * number of limbs as the modulus. All bignum sizes must be at least 1 and + * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is + * undefined. * - **Bignum representation**: the representation of inputs and outputs is * specified by the \p int_rep field of the modulus. * - **Parameter ordering**: for bignum parameters, outputs come before inputs. diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index bcdeaad6d..ddb2d0956 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -27,8 +27,8 @@ * The initial content of output-only parameters is ignored. * - \p T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. - * - **Bignum sizes**: bignum sizes are always expressed by the \p limbs - * member of the modulus argument. Any bignum parameters must have the same + * - **Bignum sizes**: bignum sizes are usually expressed by the \c limbs + * member of the modulus argument. All bignum parameters must have the same * number of limbs as the modulus. All bignum sizes must be at least 1 and * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is * undefined. From a306886b3aa86db884d0d640ed278a6250c47245 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 15:57:12 +0000 Subject: [PATCH 1225/1574] Add modulus to parameter ordering Signed-off-by: Werner Lewis --- library/bignum_mod.h | 2 +- library/bignum_mod_raw.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 67684bd67..497f4b5b5 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -34,7 +34,7 @@ * - **Bignum representation**: the representation of inputs and outputs is * specified by the \p int_rep field of the modulus. * - **Parameter ordering**: for bignum parameters, outputs come before inputs. - * Temporaries come last. + * The modulus is passed after residues. Temporaries come last. * - **Aliasing**: in general, output bignums may be aliased to one or more * inputs. Modulus values may not be aliased to any other parameter. Outputs * may not be aliased to one another. Temporaries may not be aliased to any diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index ddb2d0956..93df46f62 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -36,7 +36,8 @@ * specified by the \p int_rep field of the modulus for arithmetic * functions. Utility functions may allow for different representation. * - **Parameter ordering**: for bignum parameters, outputs come before inputs. - * Temporaries come last. + * The modulus is passed after other bignum input parameters. Temporaries + * come last. * - **Aliasing**: in general, output bignums may be aliased to one or more * inputs. Modulus values may not be aliased to any other parameter. Outputs * may not be aliased to one another. Temporaries may not be aliased to any From 1d89ebf548e55241617592c68045231b06c76213 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Wed, 14 Dec 2022 17:08:43 +0000 Subject: [PATCH 1226/1574] Clarify all functions operate modulo N Signed-off-by: Werner Lewis --- library/bignum_mod.h | 18 +++++++++--------- library/bignum_mod_raw.h | 10 +++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 497f4b5b5..a8e705e80 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -46,15 +46,15 @@ * sizes. Most functions will not check that input values are in canonical * form (i.e. that \p A < \p N), this is only checked during setup of a * residue structure. - * - **Modular representatives**: functions that operate modulo \p N expect - * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs - * in the range [0, \p N - 1]. Residues are setup with an associated modulus, - * and operations are only guaranteed to work if the modulus is associated - * with all residue parameters. If a residue is passed with a modulus other - * than the one it is associated with, then it may be out of range. If an - * input is out of range, outputs are fully unspecified, though bignum values - * out of range should not cause buffer overflows (beware that this is not - * extensively tested). + * - **Modular representatives**: all functions expect inputs to be in the + * range [0, \p N - 1] and guarantee outputs in the range [0, \p N - 1]. + * Residues are set up with an associated modulus, and operations are only + * guaranteed to work if the modulus is associated with all residue + * parameters. If a residue is passed with a modulus other than the one it + * is associated with, then it may be out of range. If an input is out of + * range, outputs are fully unspecified, though bignum values out of range + * should not cause buffer overflows (beware that this is not extensively + * tested). */ /* diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 93df46f62..174cc6e56 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -51,11 +51,11 @@ * modulus may lead to buffer overflows. Some functions which allocate * memory or handle reading/writing of bignums will return an error if * memory allocation fails or if buffer sizes are invalid. - * - **Modular representatives**: functions that operate modulo \p N expect - * all modular inputs to be in the range [0, \p N - 1] and guarantee outputs - * in the range [0, \p N - 1]. If an input is out of range, outputs are - * fully unspecified, though bignum values out of range should not cause - * buffer overflows (beware that this is not extensively tested). + * - **Modular representatives**: all functions expect inputs to be in the + * range [0, \p N - 1] and guarantee outputs in the range [0, \p N - 1]. If + * an input is out of range, outputs are fully unspecified, though bignum + * values out of range should not cause buffer overflows (beware that this is + * not extensively tested). */ /* From 214ae643499fdaafedc169282de991bf1fe96f76 Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 15 Dec 2022 10:57:59 +0000 Subject: [PATCH 1227/1574] Replace \p with \c for non-parameter code typeset Signed-off-by: Werner Lewis --- library/bignum_mod.h | 22 +++++++++++----------- library/bignum_mod_raw.h | 12 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index a8e705e80..ee5e0bfb5 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -10,21 +10,21 @@ * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an * array of limbs storing the bignum value of the modulus. The modulus must * be odd and is assumed to have no leading zeroes. The modulus is usually - * named \p N and is usually input-only. + * named \c N and is usually input-only. * - **Bignum parameters**: Bignums are passed as pointers to an array of * limbs or to a #mbedtls_mpi_mod_residue structure. A limb has the type * #mbedtls_mpi_uint. Residues must be initialized before use, and must be - * associated with the modulus \p N. Unless otherwise specified: - * - Bignum parameters called \p A, \p B, ... are inputs and are not + * associated with the modulus \c N. Unless otherwise specified: + * - Bignum parameters called \c A, \c B, ... are inputs and are not * modified by the function. - * - Bignum parameters called \p X, \p Y, ... are outputs or input-output. + * - Bignum parameters called \c X, \c Y, ... are outputs or input-output. * The initial bignum value of output-only parameters is ignored, but - * they must be set up and associated with the modulus \p N. - * - Bignum parameters called \p P are inputs used to set up a modulus or + * they must be set up and associated with the modulus \c N. + * - Bignum parameters called \c P are inputs used to set up a modulus or * residue. These must be pointers to an array of limbs. - * - \p T is a temporary storage area. The initial content of such a + * - \c T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. - * - Some functions use different names, such as \p R for the residue. + * - Some functions use different names, such as \c R for the residue. * - **Bignum sizes**: bignum sizes are always expressed in limbs. Both * #mbedtls_mpi_mod_modulus and #mbedtls_mpi_mod_residue have a \c limbs * member storing its size. All bignum parameters must have the same @@ -32,7 +32,7 @@ * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is * undefined. * - **Bignum representation**: the representation of inputs and outputs is - * specified by the \p int_rep field of the modulus. + * specified by the \c int_rep field of the modulus. * - **Parameter ordering**: for bignum parameters, outputs come before inputs. * The modulus is passed after residues. Temporaries come last. * - **Aliasing**: in general, output bignums may be aliased to one or more @@ -44,10 +44,10 @@ * in undefined behavior. * - **Error handling**: functions generally check compatibility of input * sizes. Most functions will not check that input values are in canonical - * form (i.e. that \p A < \p N), this is only checked during setup of a + * form (i.e. that \c A < \c N), this is only checked during setup of a * residue structure. * - **Modular representatives**: all functions expect inputs to be in the - * range [0, \p N - 1] and guarantee outputs in the range [0, \p N - 1]. + * range [0, \c N - 1] and guarantee outputs in the range [0, \c N - 1]. * Residues are set up with an associated modulus, and operations are only * guaranteed to work if the modulus is associated with all residue * parameters. If a residue is passed with a modulus other than the one it diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 174cc6e56..6f424cabf 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -18,14 +18,14 @@ * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an * array of limbs storing the bignum value of the modulus. The modulus must * be odd and is assumed to have no leading zeroes. The modulus is usually - * named \p N and is usually input-only. + * named \c N and is usually input-only. * - **Bignum parameters**: Bignums are passed as pointers to an array of * limbs. A limb has the type #mbedtls_mpi_uint. Unless otherwise specified: - * - Bignum parameters called \p A, \p B, ... are inputs, and are not + * - Bignum parameters called \c A, \c B, ... are inputs, and are not * modified by the function. - * - Bignum parameters called \p X, \p Y are outputs or input-output. + * - Bignum parameters called \c X, \c Y are outputs or input-output. * The initial content of output-only parameters is ignored. - * - \p T is a temporary storage area. The initial content of such a + * - \c T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. * - **Bignum sizes**: bignum sizes are usually expressed by the \c limbs * member of the modulus argument. All bignum parameters must have the same @@ -33,7 +33,7 @@ * must be significantly less than #SIZE_MAX. The behavior if a size is 0 is * undefined. * - **Bignum representation**: the representation of inputs and outputs is - * specified by the \p int_rep field of the modulus for arithmetic + * specified by the \c int_rep field of the modulus for arithmetic * functions. Utility functions may allow for different representation. * - **Parameter ordering**: for bignum parameters, outputs come before inputs. * The modulus is passed after other bignum input parameters. Temporaries @@ -52,7 +52,7 @@ * memory or handle reading/writing of bignums will return an error if * memory allocation fails or if buffer sizes are invalid. * - **Modular representatives**: all functions expect inputs to be in the - * range [0, \p N - 1] and guarantee outputs in the range [0, \p N - 1]. If + * range [0, \c N - 1] and guarantee outputs in the range [0, \c N - 1]. If * an input is out of range, outputs are fully unspecified, though bignum * values out of range should not cause buffer overflows (beware that this is * not extensively tested). From 031114d6ec2550ad0a297e6a7c3b18ddba8dd9a9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 14:46:31 +0100 Subject: [PATCH 1228/1574] Hide check_test_cases warnings on the CI We aren't paying attention to the warnings. So hide them and save log size. Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index cc630cef0..de5fb755a 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -870,7 +870,7 @@ component_check_test_cases () { else opt='' fi - tests/scripts/check_test_cases.py $opt + tests/scripts/check_test_cases.py -q $opt unset opt # Check that no tests are explicitely disabled when USE_PSA_CRYPTO is set From 979d34ca7d92b1c4748fda23d5ea1f8fc2c8d909 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 7 Dec 2022 16:02:33 +0100 Subject: [PATCH 1229/1574] Add mod_raw_mul function Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 10 ++++++++++ library/bignum_mod_raw.h | 25 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index c98a1c1cb..c0877bdec 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -120,6 +120,16 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned) c ); } +void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *T ) +{ + mbedtls_mpi_core_montmul( X, A, B, N->limbs, N->p, N->limbs, + N->rep.mont.mm, T ); +} + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f9968ba74..f8638a63e 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -170,6 +170,31 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *B, const mbedtls_mpi_mod_modulus *N ); +/** \brief Multiply two MPIs, returning the residue modulo the specified + * modulus. + * + * The size of the operation is determined by \p N. \p A and \p B must have + * the same number of limbs as \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. + * + * \param[out] X The address of the result MPI. + * This must be initialized. Must have enough limbs to + * store the full value of the result. + * \param[in] A The address of the first MPI. This must be initialized. + * \param[in] B The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus. Used to perform a modulo + * operation on the result of the subtraction. + * \param[in] T The address of an MPI used by the multiplication + * as a temp variable. + */ +void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *T ); + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From 80a334ada37e950b204014c9846d8b228ede31f3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 7 Dec 2022 16:04:15 +0100 Subject: [PATCH 1230/1574] Add generated tests for mod_raw_mul Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 19 ++++ .../suites/test_suite_bignum_mod_raw.function | 107 ++++++++++++++++++ 2 files changed, 126 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 6fc4c919b..29e3339f5 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -50,6 +50,25 @@ class BignumModRawSub(bignum_common.ModOperationCommon, result = (self.int_a - self.int_b) % self.int_n return [self.format_result(result)] +class BignumModRawMul(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for bignum mpi_mod_raw_mul().""" + symbol = "*" + test_function = "mpi_mod_raw_mul" + test_name = "mbedtls_mpi_mod_raw_mul" + input_style = "arch_split" + arity = 2 + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.arg_a, + self.arg_b, + self.arg_n] + ] + self.result() + + def result(self) -> List[str]: + result = (self.int_a * self.int_b) % self.int_n + return [self.format_result(result)] + # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 83e1f543e..cf8643d39 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -345,6 +345,113 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_raw_mul( char * input_A, + char * input_B, + char * input_N, + char * result ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *R = NULL; + mbedtls_mpi_uint *T = NULL; + size_t limbs_A; + size_t limbs_B; + size_t limbs_N; + size_t limbs_R; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &R, &limbs_R, result ), 0 ); + + const size_t limbs = limbs_N; + const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_A, limbs ); + TEST_EQUAL( limbs_B, limbs ); + TEST_EQUAL( limbs_R, limbs ); + + ASSERT_ALLOC( X, limbs ); + + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + + const size_t limbs_T = limbs * 2 + 1; + ASSERT_ALLOC( T, limbs_T ); + + /* Convert to Montgomery representation */ + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( A, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( B, &m ), 0 ); + + mbedtls_mpi_mod_raw_mul( X, A, B, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* alias X to A */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_mul( X, X, B, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* alias X to B */ + memcpy( X, B, bytes ); + mbedtls_mpi_mod_raw_mul( X, A, X, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* A == B: alias A and B */ + if( memcmp( A, B, bytes ) == 0 ) + { + mbedtls_mpi_mod_raw_mul( X, A, A, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* X, A, B all aliased together */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_mul( X, X, X, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + } + + /* A != B: test B * A */ + else + { + mbedtls_mpi_mod_raw_mul( X, B, A, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* B * A: alias X to A */ + memcpy( X, A, bytes ); + mbedtls_mpi_mod_raw_mul( X, B, X, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + + /* B + A: alias X to B */ + memcpy( X, B, bytes ); + mbedtls_mpi_mod_raw_mul( X, X, A, &m, T ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); + ASSERT_COMPARE( X, bytes, R, bytes ); + } + +exit: + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( X ); + mbedtls_free( R ); + mbedtls_free( T ); + + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( N ); +} +/* END_CASE */ + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From 95b754dfacc6366b3517fb2de9b76a4563970d9d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Dec 2022 10:14:18 +0100 Subject: [PATCH 1231/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.h | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f8638a63e..05c46b96b 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -173,21 +173,31 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, /** \brief Multiply two MPIs, returning the residue modulo the specified * modulus. * - * The size of the operation is determined by \p N. \p A and \p B must have - * the same number of limbs as \p N. + * \note Currently handles the case when `m->int_rep` is + * MBEDTLS_MPI_MOD_REP_MONTGOMERY. + * + * The size of the operation is determined by \p N. \p A, \p B and \p X must + * all be associated with the modulus \p N and must all have the same number + * of limbs as \p N. * * \p X may be aliased to \p A or \p B, or even both, but may not overlap - * either otherwise. + * either otherwise. They may not alias \p N (since they must be in canonical + * form, they cannot == \p N). * - * \param[out] X The address of the result MPI. - * This must be initialized. Must have enough limbs to - * store the full value of the result. - * \param[in] A The address of the first MPI. This must be initialized. - * \param[in] B The address of the second MPI. This must be initialized. + * \param[out] X The address of the result MPI. Must have the same + * number of limbs as \p N. + * On successful completion, \p X contains the result of + * the multiplication `A * B * R^-1` mod N where + * `R = 2^(biL * N->limbs)`. + * \param[in] A The address of the first MPI. + * \param[in] B The address of the second MPI. * \param[in] N The address of the modulus. Used to perform a modulo - * operation on the result of the subtraction. - * \param[in] T The address of an MPI used by the multiplication - * as a temp variable. + * operation on the result of the multiplication. + * \param[in,out] T Temporary storage of size at least 2 * AN_limbs + 1 + * limbs. Its initial content is unused and + * its final content is indeterminate. + * It must not alias or otherwise overlap any of the + * other parameters. */ void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, From 6b7ce968d2b535ea99cdd9c86dc05c4bf103314c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 15:04:33 +0100 Subject: [PATCH 1232/1574] Clarify some comments Signed-off-by: Gilles Peskine --- library/bignum.c | 2 +- library/bignum_core.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index 142c4c660..043bd6a0b 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1973,7 +1973,7 @@ int mbedtls_mpi_random( mbedtls_mpi *X, /* Ensure that target MPI has exactly the same number of limbs * as the upper bound, even if the upper bound has leading zeros. - * This is necessary for the mbedtls_mpi_lt_mpi_ct() check. */ + * This is necessary for mbedtls_mpi_core_random. */ int ret = mbedtls_mpi_resize_clear( X, N->n ); if( ret != 0 ) return( ret ); diff --git a/library/bignum_core.c b/library/bignum_core.c index a432c2b21..770734c4a 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -163,7 +163,7 @@ unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, /* min <= least significant limb? */ unsigned min_le_lsl = 1 ^ mbedtls_ct_mpi_uint_lt( A[0], min ); - /* most significant limbs (excluding 1) are all zero? */ + /* limbs other than the least significant one are all zero? */ mbedtls_mpi_uint msll_mask = 0; for( size_t i = 1; i < A_limbs; i++ ) msll_mask |= A[i]; From 0f644f48e92ec10ca7f7c9941dbcdcfd6faf6d3f Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 15 Dec 2022 14:13:32 +0000 Subject: [PATCH 1233/1574] Add output initialization requirement Signed-off-by: Werner Lewis --- library/bignum_mod.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index ee5e0bfb5..e03c9aa2e 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -19,7 +19,9 @@ * modified by the function. * - Bignum parameters called \c X, \c Y, ... are outputs or input-output. * The initial bignum value of output-only parameters is ignored, but - * they must be set up and associated with the modulus \c N. + * they must be set up and associated with the modulus \c N. Some + * functions (typically constant-flow) require that the limbs in an + * output residue are initialized. * - Bignum parameters called \c P are inputs used to set up a modulus or * residue. These must be pointers to an array of limbs. * - \c T is a temporary storage area. The initial content of such a From acdefdd51ac8defc0637b7b996d8976229a1463b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 15:10:36 +0100 Subject: [PATCH 1234/1574] Unify RNG initialization that must be unified mpi_core_random_basic and mpi_random_values must generate the same random sequences in order to get the expected test coverage (where we know we'll hit certain numbers of retries). Facilitate this by defining the RNG seed only once. Fix the seed to explicitly list all 16 words of the key. This isn't strictly required (missing initializer fields get the value zero), but it's clearer. Signed-off-by: Gilles Peskine --- .../suites/test_suite_bignum_random.function | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index c8bca6e7c..184de5a40 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -16,6 +16,15 @@ static int sign_is_valid( const mbedtls_mpi *X ) return( X->s == 1 ); } +/* A common initializer for test functions that should generate the same + * sequences for reproducibility and good coverage. */ +const mbedtls_test_rnd_pseudo_info rnd_pseudo_seed = { + /* 16-word key */ + {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', + 'a', ' ', 's', 'e', 'e', 'd', '!', 0}, + /* 2-word initial state, should be zero */ + 0, 0}; + /* Test whether bytes represents (in big-endian base 256) a number b that * is significantly above a power of 2. That is, b must not have a long run * of unset bits after the most significant bit. @@ -71,10 +80,7 @@ static int is_significantly_above_a_power_of_2( data_t *bytes ) void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) { /* Same RNG as in mpi_random_values */ - mbedtls_test_rnd_pseudo_info rnd = { - {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', - 's', 'e', 'e', 'd', '!', 0}, - 0, 0}; + mbedtls_test_rnd_pseudo_info rnd = rnd_pseudo_seed; size_t limbs; mbedtls_mpi_uint *lower_bound = NULL; mbedtls_mpi_uint *upper_bound = NULL; @@ -107,10 +113,7 @@ exit: void mpi_random_values( int min, char *max_hex ) { /* Same RNG as in mpi_core_random_basic */ - mbedtls_test_rnd_pseudo_info rnd_core = { - {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', - 's', 'e', 'e', 'd', '!', 0}, - 0, 0}; + mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed; mbedtls_test_rnd_pseudo_info rnd_legacy; memcpy( &rnd_legacy, &rnd_core, sizeof( rnd_core ) ); mbedtls_mpi max_legacy; From 756a34aadcede47864e94329e65fc1538b21870e Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 15 Dec 2022 14:53:43 +0000 Subject: [PATCH 1235/1574] Use lower case for p and r Signed-off-by: Werner Lewis --- library/bignum_mod.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index e03c9aa2e..96bbaca0f 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -22,11 +22,11 @@ * they must be set up and associated with the modulus \c N. Some * functions (typically constant-flow) require that the limbs in an * output residue are initialized. - * - Bignum parameters called \c P are inputs used to set up a modulus or + * - Bignum parameters called \c p are inputs used to set up a modulus or * residue. These must be pointers to an array of limbs. * - \c T is a temporary storage area. The initial content of such a * parameter is ignored and the final content is unspecified. - * - Some functions use different names, such as \c R for the residue. + * - Some functions use different names, such as \c r for the residue. * - **Bignum sizes**: bignum sizes are always expressed in limbs. Both * #mbedtls_mpi_mod_modulus and #mbedtls_mpi_mod_residue have a \c limbs * member storing its size. All bignum parameters must have the same From e9ffb6c8e9c0476cbfb450249c05ba8b97f6f5c4 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 12 Dec 2022 11:26:02 +0000 Subject: [PATCH 1236/1574] Fix mbedtls_platform_zeroize() call in mbedtls_mpi_mod_modulus_free() Signed-off-by: Tom Cosgrove --- library/bignum_mod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 0057ebae2..ac0be995d 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -79,7 +79,7 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) if (m->rep.mont.rr != NULL) { mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, - m->limbs ); + m->limbs * sizeof(mbedtls_mpi_uint) ); mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); m->rep.mont.rr = NULL; } From 30f3b4d60112ffe68cc162cc01938b84d18c9960 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 12 Dec 2022 16:54:57 +0000 Subject: [PATCH 1237/1574] Add mbedtls_mpi_core_check_zero_ct() and tests Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 11 +++++++++++ library/bignum_core.h | 13 +++++++++++++ scripts/mbedtls_dev/bignum_core.py | 14 ++++++++++++++ tests/suites/test_suite_bignum_core.function | 19 +++++++++++++++++++ 4 files changed, 57 insertions(+) diff --git a/library/bignum_core.c b/library/bignum_core.c index 1ce84574e..75cce0577 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -742,6 +742,17 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, return( c ); } +mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, + size_t limbs ) +{ + mbedtls_mpi_uint bits = 0; + + for( size_t i = 0; i < limbs; i++ ) + bits |= A[i]; + + return( bits ); +} + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index b7af4d0aa..7f5375ee1 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -572,6 +572,19 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, mbedtls_mpi_uint b, size_t limbs ); +/** + * \brief Determine if a given MPI has the value \c 0 in constant time with + * respect to the value (but not with respect to the number of limbs). + * + * \param[in] A The MPI to test. + * \param limbs Number of limbs in \p A. + * + * \return 0 if `A == 0` + * non-0 (may be any value) if `A != 0`. + */ +mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, + size_t limbs ); + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 158ada99d..1a8c22bfa 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -818,6 +818,20 @@ class BignumCoreSubInt(BignumCoreTarget, bignum_common.OperationCommon): str(-borrow) ] +class BignumCoreZeroCheckCT(BignumCoreTarget, bignum_common.OperationCommon): + """Test cases for bignum core zero check (constant flow).""" + count = 0 + symbol = "== 0" + test_function = "mpi_core_check_zero_ct" + test_name = "mpi_core_check_zero_ct" + input_style = "variable" + arity = 1 + suffix = True + + def result(self) -> List[str]: + result = 1 if self.int_a == 0 else 0 + return [str(result)] + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 78721158f..9392f51d5 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -1162,6 +1162,25 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_core_check_zero_ct( char *input_X, int expected_is_zero ) +{ + mbedtls_mpi_uint *X = NULL; + size_t X_limbs; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + + TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + + mbedtls_mpi_uint check = mbedtls_mpi_core_check_zero_ct( X, X_limbs ); + int is_zero = (check == 0); + TEST_EQUAL( is_zero, expected_is_zero ); + +exit: + mbedtls_free( X ); +} +/* END_CASE */ + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From 28ff92cc3a72d98885e4fa6dc19e9725db5f9ac7 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 12 Dec 2022 17:06:27 +0000 Subject: [PATCH 1238/1574] Add an explicit mbedtls_mpi_core_montmul_working_limbs() function Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 21 +++++++++++++++++++ library/bignum_mod_raw.c | 4 ++-- library/bignum_mod_raw.h | 4 ++++ tests/suites/test_suite_bignum_core.function | 8 ++++++- .../suites/test_suite_bignum_mod_raw.function | 4 ++++ 5 files changed, 38 insertions(+), 3 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 7f5375ee1..7b5787c9c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -502,6 +502,10 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, * \brief Returns the number of limbs of working memory required for * a call to `mbedtls_mpi_core_exp_mod()`. * + * \note This will always be at least + * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)`, + * i.e. sufficient for a call to `mbedtls_mpi_core_montmul()`. + * * \param AN_limbs The number of limbs in the input `A` and the modulus `N` * (they must be the same size) that will be given to * `mbedtls_mpi_core_exp_mod()`. @@ -585,6 +589,23 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, size_t limbs ); +/** + * \brief Returns the number of limbs of working memory required for + * a call to `mbedtls_mpi_core_montmul()`. + * + * \param AN_limbs The number of limbs in the input `A` and the modulus `N` + * (they must be the same size) that will be given to + * `mbedtls_mpi_core_montmul()` or one of the other functions + * that specifies this as the amount of working memory needed. + * + * \return The number of limbs of working memory required by + * `mbedtls_mpi_core_montmul()` (or other similar function). + */ +static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) +{ + return( 2 * AN_limbs + 1 ); +} + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index c98a1c1cb..be8fc868d 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -183,7 +183,7 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m ) { mbedtls_mpi_uint *T; - const size_t t_limbs = m->limbs * 2 + 1; + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( m->limbs ); if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); @@ -200,7 +200,7 @@ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m ) { const mbedtls_mpi_uint one = 1; - const size_t t_limbs = m->limbs * 2 + 1; + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( m->limbs ); mbedtls_mpi_uint *T; if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index f9968ba74..73eaf1881 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -178,6 +178,10 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, * \brief Returns the number of limbs of working memory required for * a call to `mbedtls_mpi_mod_raw_inv_prime()`. * + * \note This will always be at least + * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)`, + * i.e. sufficient for a call to `mbedtls_mpi_core_montmul()`. + * * \param AN_limbs The number of limbs in the input `A` and the modulus `N` * (they must be the same size) that will be given to * `mbedtls_mpi_mod_raw_inv_prime()`. diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 9392f51d5..038ee6b5a 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -798,7 +798,9 @@ void mpi_core_montmul( int limbs_AN4, int limbs_B4, TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &T, limbs_AN * 2 + 1 ) ); + size_t working_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs_AN ); + TEST_EQUAL( working_limbs, limbs_AN * 2 + 1 ); + TEST_EQUAL( 0, mbedtls_mpi_grow( &T, working_limbs ) ); /* Calculate the Montgomery constant (this is unit tested separately) */ mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); @@ -1083,6 +1085,10 @@ void mpi_core_exp_mod( char * input_N, char * input_A, TEST_LE_U( min_expected_working_limbs, working_limbs ); TEST_LE_U( working_limbs, max_expected_working_limbs ); + /* Should also be at least mbedtls_mpi_core_montmul_working_limbs() */ + TEST_LE_U( mbedtls_mpi_core_montmul_working_limbs( N_limbs ), + working_limbs ); + ASSERT_ALLOC( T, working_limbs ); mbedtls_mpi_core_exp_mod( Y, A, N, N_limbs, E, E_limbs, R2, T ); diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 83e1f543e..ef0f71227 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -394,6 +394,10 @@ void mpi_mod_raw_inv_prime( char * input_N, char * input_A, char * input_X ) TEST_LE_U( min_expected_working_limbs, working_limbs ); TEST_LE_U( working_limbs, max_expected_working_limbs ); + /* Should also be at least mbedtls_mpi_core_montmul_working_limbs() */ + TEST_LE_U( mbedtls_mpi_core_montmul_working_limbs( N_limbs ), + working_limbs ); + ASSERT_ALLOC( T, working_limbs ); mbedtls_mpi_mod_raw_inv_prime( Y, A, N, N_limbs, R2, T ); From 786848b5c56cdebc046c72703e0110200849d918 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 13 Dec 2022 10:45:19 +0000 Subject: [PATCH 1239/1574] Add low-level Montgomery conversion functions to bignum_core Signed-off-by: Tom Cosgrove --- library/bignum_core.c | 23 +++++ library/bignum_core.h | 75 ++++++++++++++++ library/bignum_mod_raw.c | 8 +- .../suites/test_suite_bignum_mod_raw.function | 86 ++++++++++++++++--- 4 files changed, 173 insertions(+), 19 deletions(-) diff --git a/library/bignum_core.c b/library/bignum_core.c index 75cce0577..74efb38f2 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -753,6 +753,29 @@ mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, return( bits ); } +void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *rr, + mbedtls_mpi_uint *T ) +{ + mbedtls_mpi_core_montmul( X, A, rr, AN_limbs, N, AN_limbs, mm, T ); +} + +void mbedtls_mpi_core_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T ) +{ + const mbedtls_mpi_uint Rinv = 1; /* 1/R in Mont. rep => 1 */ + + mbedtls_mpi_core_montmul( X, A, &Rinv, 1, N, AN_limbs, mm, T ); +} + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 7b5787c9c..b8985274c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -606,6 +606,81 @@ static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) return( 2 * AN_limbs + 1 ); } +/** Convert an MPI into Montgomery form. + * + * \p X may be aliased to \p A, but may not otherwise overlap it. + * + * \p X may not alias \p N (it is in canonical form, so must be stricly less + * than \p N). Nor may it alias or overlap \p rr (this is unlikely to be + * required in practice.) + * + * This function is a thin wrapper around `mbedtls_mpi_core_montmul()` that is + * an alternative to calling `mbedtls_mpi_mod_raw_to_mont_rep()` when we + * don't want to allocate memory. + * + * \param[out] X The result of the conversion. + * Must have the same number of limbs as \p A. + * \param[in] A The MPI to convert into Montgomery form. + * Must have the same number of limbs as the modulus. + * \param[in] N The address of the modulus, which gives the size of + * the base `R` = 2^(biL*m->limbs). + * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N and \p rr. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. + * This can be determined by calling + * `mbedtls_mpi_core_montmul_init()`. + * \param[in] rr The residue for `2^{2*n*biL} mod N`. + * \param[in,out] T Temporary storage of size at least + * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)` + * limbs. + * Its initial content is unused and + * its final content is indeterminate. + * It must not alias or otherwise overlap any of the + * other parameters. + */ +void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *rr, + mbedtls_mpi_uint *T ); + +/** Convert an MPI from Montgomery form. + * + * \p X may be aliased to \p A, but may not otherwise overlap it. + * + * \p X may not alias \p N (it is in canonical form, so must be stricly less + * than \p N). + * + * This function is a thin wrapper around `mbedtls_mpi_core_montmul()` that is + * an alternative to calling `mbedtls_mpi_mod_raw_from_mont_rep()` when we + * don't want to allocate memory. + * + * \param[out] X The result of the conversion. + * Must have the same number of limbs as \p A. + * \param[in] A The MPI to convert from Montgomery form. + * Must have the same number of limbs as the modulus. + * \param[in] N The address of the modulus, which gives the size of + * the base `R` = 2^(biL*m->limbs). + * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. + * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. + * This can be determined by calling + * `mbedtls_mpi_core_montmul_init()`. + * \param[in,out] T Temporary storage of size at least + * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)` + * limbs. + * Its initial content is unused and + * its final content is indeterminate. + * It must not alias or otherwise overlap any of the + * other parameters. + */ +void mbedtls_mpi_core_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T ); + /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index be8fc868d..d2d93d3c9 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -188,8 +188,8 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - mbedtls_mpi_core_montmul( X, X, m->rep.mont.rr, m->limbs, m->p, m->limbs, - m->rep.mont.mm, T ); + mbedtls_mpi_core_to_mont_rep( X, X, m->p, m->limbs, + m->rep.mont.mm, m->rep.mont.rr, T ); mbedtls_platform_zeroize( T, t_limbs * ciL ); mbedtls_free( T ); @@ -199,15 +199,13 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *m ) { - const mbedtls_mpi_uint one = 1; const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( m->limbs ); mbedtls_mpi_uint *T; if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - mbedtls_mpi_core_montmul( X, X, &one, 1, m->p, m->limbs, - m->rep.mont.mm, T ); + mbedtls_mpi_core_from_mont_rep( X, X, m->p, m->limbs, m->rep.mont.mm, T ); mbedtls_platform_zeroize( T, t_limbs * ciL ); mbedtls_free( T ); diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index ef0f71227..50fdac317 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -533,8 +533,10 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *R = NULL; /* for result of low-level conversion */ mbedtls_mpi_uint *X = NULL; - size_t n_limbs, a_limbs, x_limbs, x_bytes; + mbedtls_mpi_uint *T = NULL; + size_t n_limbs, a_limbs, x_limbs; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); @@ -543,23 +545,50 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); - x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* Test that input does not require more limbs than modulo */ - TEST_LE_U(a_limbs, n_limbs); + /* Number to convert must have same number of limbs as modulus */ + TEST_EQUAL(a_limbs, n_limbs); + + /* Higher-level conversion is in-place, so expected result must have the + * same number of limbs too */ + TEST_EQUAL(x_limbs, n_limbs); + + size_t limbs = n_limbs; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + /* 1. Test low-level function first */ + + /* It has separate output, and requires temporary working storage */ + size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs ); + ASSERT_ALLOC( T, temp_limbs ); + ASSERT_ALLOC( R, limbs ); + mbedtls_mpi_core_to_mont_rep( R, A, N, n_limbs, + m.rep.mont.mm, m.rep.mont.rr, T ); + /* Test that the low-level function gives the required value */ + ASSERT_COMPARE( R, bytes, X, bytes ); + + /* Test when output is aliased to input */ + memcpy( R, A, bytes ); + mbedtls_mpi_core_to_mont_rep( R, R, N, n_limbs, + m.rep.mont.mm, m.rep.mont.rr, T ); + ASSERT_COMPARE( R, bytes, X, bytes ); + + /* 2. Test higher-level cannonical to Montgomery conversion */ - /* Convert from cannonical into Montgomery representation */ TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A, &m ) ); /* The result matches expected value */ - ASSERT_COMPARE( A, x_bytes, X, x_bytes ); + ASSERT_COMPARE( A, bytes, X, bytes ); + exit: mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( T ); mbedtls_free( N ); mbedtls_free( A ); + mbedtls_free( R ); mbedtls_free( X ); } /* END_CASE */ @@ -569,8 +598,10 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *R = NULL; /* for result of low-level conversion */ mbedtls_mpi_uint *X = NULL; - size_t n_limbs, a_limbs, x_limbs, x_bytes; + mbedtls_mpi_uint *T = NULL; + size_t n_limbs, a_limbs, x_limbs; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); @@ -579,23 +610,50 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); - x_bytes = x_limbs * sizeof(mbedtls_mpi_uint); - /* Test that input does not require more limbs than modulo */ - TEST_LE_U(a_limbs, n_limbs); + /* Number to convert must have same number of limbs as modulus */ + TEST_EQUAL(a_limbs, n_limbs); + + /* Higher-level conversion is in-place, so expected result must have the + * same number of limbs too */ + TEST_EQUAL(x_limbs, n_limbs); + + size_t limbs = n_limbs; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + /* 1. Test low-level function first */ + + /* It has separate output, and requires temporary working storage */ + size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs ); + ASSERT_ALLOC( T, temp_limbs ); + ASSERT_ALLOC( R, limbs ); + mbedtls_mpi_core_from_mont_rep( R, A, N, n_limbs, + m.rep.mont.mm, T ); + /* Test that the low-level function gives the required value */ + ASSERT_COMPARE( R, bytes, X, bytes ); + + /* Test when output is aliased to input */ + memcpy( R, A, bytes ); + mbedtls_mpi_core_from_mont_rep( R, R, N, n_limbs, + m.rep.mont.mm, T ); + ASSERT_COMPARE( R, bytes, X, bytes ); + + /* 2. Test higher-level Montgomery to cannonical conversion */ - /* Convert from Montgomery into cannonical representation */ TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A, &m ) ); /* The result matches expected value */ - ASSERT_COMPARE( A, x_bytes, X, x_bytes ); + ASSERT_COMPARE( A, bytes, X, bytes ); + exit: mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free( T ); mbedtls_free( N ); mbedtls_free( A ); + mbedtls_free( R ); mbedtls_free( X ); } /* END_CASE */ From 4302d02fa8cf8f4b9083f70935abb402ff7ab7f5 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 13 Dec 2022 10:46:39 +0000 Subject: [PATCH 1240/1574] Add mbedtls_mpi_mod_inv() Signed-off-by: Tom Cosgrove --- library/bignum_mod.c | 101 +++++++++++++++++++++++++++++++++++++++++++ library/bignum_mod.h | 26 +++++++++++ 2 files changed, 127 insertions(+) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index ac0be995d..216b20f8f 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -191,6 +191,107 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, return( 0 ); } + +int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N ) +{ + if( X->limbs != N->limbs || A->limbs != N->limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + /* Zero has the same value regardless of Montgomery form or not */ + if( mbedtls_mpi_core_check_zero_ct( A->p, A->limbs ) == 0 ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + /* Will we need to do Montgomery conversion? */ + int mont_conv_needed; + switch( N->int_rep ) + { + case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + mont_conv_needed = 0; + break; + case MBEDTLS_MPI_MOD_REP_OPT_RED: + mont_conv_needed = 1; + break; + default: + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + } + + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + /* If the input is already in Montgomery form, we have little to do but + * allocate working memory and call mbedtls_mpi_mod_raw_inv_prime(). + * + * If it's not, we need to + * 1. Create a Montgomery version of the modulus; + * 2. Convert the input into Mont. form, using X->p to hold it; + * 3. (allocate and convert, same as if already in Mont. form); + * 4. Convert the inverted output back from Mont. form. + * + * Since the Montgomery conversion functions are in-place, we'll need to + * copy A into X before we start working on it (which could be avoided if + * there was a not-in-place function to convert to Montgomery form. + */ + + /* Montgomery version of modulus (if not already in Mont. form). + * We will only call setup if the input is not already in Montgomery form. + * We will re-use N->p from input modulus, and make use of the fact that + * mbedtls_mpi_mod_raw_to_mont_rep() won't free it. */ + mbedtls_mpi_mod_modulus Nmont; + mbedtls_mpi_mod_modulus_init( &Nmont ); + + size_t working_limbs = + mbedtls_mpi_mod_raw_inv_prime_working_limbs( N->limbs ); + + mbedtls_mpi_uint *working_memory = mbedtls_calloc( working_limbs, + sizeof(mbedtls_mpi_uint) ); + if( working_memory == NULL ) + { + ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; + goto cleanup; + } + + const mbedtls_mpi_uint *to_invert; /* Will alias A->p or X->p */ + const mbedtls_mpi_mod_modulus *Nuse; /* Which of N and Nmont to use */ + + if( mont_conv_needed ) + { + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_modulus_setup( &Nmont, N->p, N->limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + mbedtls_mpi_core_to_mont_rep( X->p, A->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, Nmont.rep.mont.rr, + working_memory ); + to_invert = X->p; + Nuse = &Nmont; + } + else + { + to_invert = A->p; + Nuse = N; + } + + mbedtls_mpi_mod_raw_inv_prime( X->p, to_invert, + Nuse->p, Nuse->limbs, + Nuse->rep.mont.rr, + working_memory ); + + if( mont_conv_needed ) + mbedtls_mpi_core_from_mont_rep( X->p, X->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, working_memory ); + +cleanup: + mbedtls_mpi_mod_modulus_free( &Nmont ); + + if (working_memory != NULL ) + { + mbedtls_platform_zeroize( working_memory, + working_limbs * sizeof(mbedtls_mpi_uint) ); + mbedtls_free( working_memory ); + } + + return( ret ); +} /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 11b4e980f..b2c36a978 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -192,6 +192,32 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_residue *B, const mbedtls_mpi_mod_modulus *N ); + +/** + * \brief Perform modular inversion of an MPI with respect to a modulus \p N. + * + * \p X may be aliased to \p A. + * + * \warning Currently only supports prime moduli, but does not check for them. + * + * \param[out] X The modular inverse of \p A with respect to \p N. + * \param[in] A The number to calculate the modular inverse of. + * Must not be 0. + * \param[in] N The modulus to use. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p A and \p N do not + * have the same number of limbs. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p A is zero. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if couldn't allocate enough + * memory (needed for conversion to and from Mongtomery form + * when not in Montgomery form already, and for temporary use + * by the inversion calculation itself). + */ + +int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N ); /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ From a9e0f95903c3c2881011ab413454490762712dc6 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Tue, 13 Dec 2022 11:57:57 +0000 Subject: [PATCH 1241/1574] Split mbedtls_mpi_mod_inv() into separate functions for mont/non-mont form Signed-off-by: Tom Cosgrove --- library/bignum_mod.c | 144 ++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 78 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 216b20f8f..7c89b57d7 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -192,6 +192,54 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, return( 0 ); } +static int mbedtls_mpi_mod_inv_mont( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *working_memory ) +{ + /* Input already in Montgomery form, so there's little to do */ + mbedtls_mpi_mod_raw_inv_prime( X->p, A->p, + N->p, N->limbs, + N->rep.mont.rr, + working_memory ); + return( 0 ); +} + +static int mbedtls_mpi_mod_inv_non_mont( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *working_memory ) +{ + /* Need to convert input into Montgomery form */ + + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_mpi_mod_modulus Nmont; + mbedtls_mpi_mod_modulus_init( &Nmont ); + + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_modulus_setup( &Nmont, N->p, N->limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + + /* We'll use X->p to hold the Montgomery form of the input A->p */ + mbedtls_mpi_core_to_mont_rep( X->p, A->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, Nmont.rep.mont.rr, + working_memory ); + + mbedtls_mpi_mod_raw_inv_prime( X->p, X->p, + Nmont.p, Nmont.limbs, + Nmont.rep.mont.rr, + working_memory ); + + /* And convert back from Montgomery form */ + + mbedtls_mpi_core_from_mont_rep( X->p, X->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, working_memory ); + +cleanup: + mbedtls_mpi_mod_modulus_free( &Nmont ); + return( ret ); +} + int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_modulus *N ) @@ -203,94 +251,34 @@ int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, if( mbedtls_mpi_core_check_zero_ct( A->p, A->limbs ) == 0 ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - /* Will we need to do Montgomery conversion? */ - int mont_conv_needed; - switch( N->int_rep ) - { - case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - mont_conv_needed = 0; - break; - case MBEDTLS_MPI_MOD_REP_OPT_RED: - mont_conv_needed = 1; - break; - default: - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - } - - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - - /* If the input is already in Montgomery form, we have little to do but - * allocate working memory and call mbedtls_mpi_mod_raw_inv_prime(). - * - * If it's not, we need to - * 1. Create a Montgomery version of the modulus; - * 2. Convert the input into Mont. form, using X->p to hold it; - * 3. (allocate and convert, same as if already in Mont. form); - * 4. Convert the inverted output back from Mont. form. - * - * Since the Montgomery conversion functions are in-place, we'll need to - * copy A into X before we start working on it (which could be avoided if - * there was a not-in-place function to convert to Montgomery form. - */ - - /* Montgomery version of modulus (if not already in Mont. form). - * We will only call setup if the input is not already in Montgomery form. - * We will re-use N->p from input modulus, and make use of the fact that - * mbedtls_mpi_mod_raw_to_mont_rep() won't free it. */ - mbedtls_mpi_mod_modulus Nmont; - mbedtls_mpi_mod_modulus_init( &Nmont ); - size_t working_limbs = mbedtls_mpi_mod_raw_inv_prime_working_limbs( N->limbs ); mbedtls_mpi_uint *working_memory = mbedtls_calloc( working_limbs, sizeof(mbedtls_mpi_uint) ); if( working_memory == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + switch( N->int_rep ) { - ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; - goto cleanup; + case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + ret = mbedtls_mpi_mod_inv_mont( X, A, N, working_memory ); + break; + case MBEDTLS_MPI_MOD_REP_OPT_RED: + ret = mbedtls_mpi_mod_inv_non_mont( X, A, N, working_memory ); + break; + default: + ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + break; } - const mbedtls_mpi_uint *to_invert; /* Will alias A->p or X->p */ - const mbedtls_mpi_mod_modulus *Nuse; /* Which of N and Nmont to use */ + mbedtls_platform_zeroize( working_memory, + working_limbs * sizeof(mbedtls_mpi_uint) ); + free( working_memory ); - if( mont_conv_needed ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_modulus_setup( &Nmont, N->p, N->limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); - - mbedtls_mpi_core_to_mont_rep( X->p, A->p, Nmont.p, Nmont.limbs, - Nmont.rep.mont.mm, Nmont.rep.mont.rr, - working_memory ); - to_invert = X->p; - Nuse = &Nmont; - } - else - { - to_invert = A->p; - Nuse = N; - } - - mbedtls_mpi_mod_raw_inv_prime( X->p, to_invert, - Nuse->p, Nuse->limbs, - Nuse->rep.mont.rr, - working_memory ); - - if( mont_conv_needed ) - mbedtls_mpi_core_from_mont_rep( X->p, X->p, Nmont.p, Nmont.limbs, - Nmont.rep.mont.mm, working_memory ); - -cleanup: - mbedtls_mpi_mod_modulus_free( &Nmont ); - - if (working_memory != NULL ) - { - mbedtls_platform_zeroize( working_memory, - working_limbs * sizeof(mbedtls_mpi_uint) ); - mbedtls_free( working_memory ); - } - - return( ret ); + return ret; } /* END MERGE SLOT 3 */ From dbac60924b5c1cddc586c6f2b578f82b0c439f2f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 14 Dec 2022 08:27:18 +0000 Subject: [PATCH 1242/1574] mbedtls_mpi_mod_raw_inv_prime() tests should be arch_split Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_data.py | 3 +++ scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_data.py b/scripts/mbedtls_dev/bignum_data.py index 965893320..0a48e538d 100644 --- a/scripts/mbedtls_dev/bignum_data.py +++ b/scripts/mbedtls_dev/bignum_data.py @@ -121,6 +121,9 @@ MODULI_DEFAULT = [ ONLY_PRIME_MODULI = [ "53", # safe prime "8ac72304057392b5", # 9999999997777777333 (longer, not safe, prime) + # The next prime has a different R in Montgomery form depending on + # whether 32- or 64-bit MPIs are used. + "152d02c7e14af67fe0bf", # 99999999999999999991999 SAFE_PRIME_192_BIT_SEED_1, # safe prime SAFE_PRIME_1024_BIT_SEED_3, # safe prime ] diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 6fc4c919b..0084898be 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -61,7 +61,7 @@ class BignumModRawInvPrime(bignum_common.ModOperationCommon, symbol = "^ -1" test_function = "mpi_mod_raw_inv_prime" test_name = "mbedtls_mpi_mod_raw_inv_prime (Montgomery form only)" - input_style = "fixed" + input_style = "arch_split" arity = 1 suffix = True From d692ba4248c565c906cacdebb37840274e9444b4 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 14 Dec 2022 09:53:45 +0000 Subject: [PATCH 1243/1574] Note that (as usual) for mbedtls_mpi_mod_inv() residues must be associated with the modulus Signed-off-by: Tom Cosgrove --- library/bignum_mod.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index b2c36a978..a708be6e9 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -196,6 +196,9 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, /** * \brief Perform modular inversion of an MPI with respect to a modulus \p N. * + * \p A and \p X must be associated with the modulus \p N and will therefore + * have the same number of limbs as \p N. + * * \p X may be aliased to \p A. * * \warning Currently only supports prime moduli, but does not check for them. From b38c2ed3d94017fc7181d9f3e17c40383899ee5f Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 14 Dec 2022 13:11:46 +0000 Subject: [PATCH 1244/1574] Fix double space between words Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index b8985274c..b079850d9 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -626,7 +626,7 @@ static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) * the base `R` = 2^(biL*m->limbs). * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N and \p rr. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. - * This can be determined by calling + * This can be determined by calling * `mbedtls_mpi_core_montmul_init()`. * \param[in] rr The residue for `2^{2*n*biL} mod N`. * \param[in,out] T Temporary storage of size at least @@ -664,7 +664,7 @@ void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, * the base `R` = 2^(biL*m->limbs). * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. - * This can be determined by calling + * This can be determined by calling * `mbedtls_mpi_core_montmul_init()`. * \param[in,out] T Temporary storage of size at least * `mbedtls_mpi_core_montmul_working_limbs(AN_limbs)` From dc197593273864636bb8cb49b73ed38ea81a7886 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 15 Dec 2022 16:59:40 +0000 Subject: [PATCH 1245/1574] Add tests for mbedtls_mpi_mod_inv() Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_mod.py | 51 ++++++++++ tests/suites/test_suite_bignum_mod.function | 100 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.misc.data | 44 ++++++++ 3 files changed, 195 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index a16699a64..9f98131bd 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -18,6 +18,7 @@ from typing import Dict, List from . import test_data_generation from . import bignum_common +from .bignum_data import ONLY_PRIME_MODULI class BignumModTarget(test_data_generation.BaseTarget): #pylint: disable=abstract-method, too-few-public-methods @@ -48,6 +49,56 @@ class BignumModSub(bignum_common.ModOperationCommon, BignumModTarget): # generated cases return [self.format_result(result), "0"] +class BignumModInvNonMont(bignum_common.ModOperationCommon, BignumModTarget): + """Test cases for bignum mpi_mod_inv() - not in Montgomery form.""" + moduli = ONLY_PRIME_MODULI # for now only prime moduli supported + symbol = "^ -1" + test_function = "mpi_mod_inv_non_mont" + test_name = "mbedtls_mpi_mod_inv non-Mont. form" + input_style = "fixed" + arity = 1 + suffix = True + + @property + def is_valid(self) -> bool: + return self.int_a > 0 and self.int_a < self.int_n + + def result(self) -> List[str]: + result = bignum_common.invmod(self.int_a, self.int_n) + if result < 0: + result += self.int_n + # To make negative tests easier, append 0 for success to the + # generated cases + return [self.format_result(result), "0"] + +class BignumModInvMont(bignum_common.ModOperationCommon, BignumModTarget): + """Test cases for bignum mpi_mod_inv() - Montgomery form.""" + moduli = ONLY_PRIME_MODULI # for now only prime moduli supported + symbol = "^ -1" + test_function = "mpi_mod_inv_mont" + test_name = "mbedtls_mpi_mod_inv Mont. form" + input_style = "arch_split" # Mont. form requires arch_split + arity = 1 + suffix = True + + @property + def is_valid(self) -> bool: + return self.int_a > 0 and self.int_a < self.int_n + + @property + def arg_a(self) -> str: + mont_a = self.to_montgomery(self.int_a) + return self.format_arg('{:x}'.format(mont_a)) + + def result(self) -> List[str]: + result = bignum_common.invmod(self.int_a, self.int_n) + if result < 0: + result += self.int_n + mont_result = self.to_montgomery(result) + # To make negative tests easier, append 0 for success to the + # generated cases + return [self.format_result(mont_result), "0"] + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 507920afd..4b77a4a7e 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -203,6 +203,106 @@ exit: mbedtls_free( X_raw ); } /* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_inv_mont( char * input_N, + char * input_A, char * input_I, + int expected_ret ) +{ + mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */ + mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */ + mbedtls_mpi_mod_residue x = { NULL, 0 }; /* output */ + mbedtls_mpi_uint *X_raw = NULL; + + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + + TEST_EQUAL( 0, + test_read_modulus( &N, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + + /* test_read_residue() normally checks that inputs have the same number of + * limbs as the modulus. For negative testing we can ask it to skip this + * with a non-zero final parameter. */ + TEST_EQUAL( 0, test_read_residue( &a, &N, input_A, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &i, &N, input_I, expected_ret != 0 ) ); + + size_t limbs = N.limbs; + size_t bytes = limbs * sizeof( *X_raw ); + + ASSERT_ALLOC( X_raw, limbs ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &N, X_raw, limbs ) ); + + TEST_EQUAL( expected_ret, mbedtls_mpi_mod_inv( &x, &a, &N ) ); + if( expected_ret == 0 ) + { + TEST_COMPARE_MPI_RESIDUES( x, i ); + + /* a^-1: alias x to a => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_inv( &x, &x, &N ) ); + TEST_COMPARE_MPI_RESIDUES( x, i ); + } + +exit: + mbedtls_free( (void *)N.p ); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ + mbedtls_mpi_mod_modulus_free( &N ); + + mbedtls_free( a.p ); + mbedtls_free( i.p ); + mbedtls_free( X_raw ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_inv_non_mont( char * input_N, + char * input_A, char * input_I, + int expected_ret ) +{ + mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */ + mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */ + mbedtls_mpi_mod_residue x = { NULL, 0 }; /* output */ + mbedtls_mpi_uint *X_raw = NULL; + + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + + TEST_EQUAL( 0, + test_read_modulus( &N, MBEDTLS_MPI_MOD_REP_OPT_RED, input_N ) ); + + /* test_read_residue() normally checks that inputs have the same number of + * limbs as the modulus. For negative testing we can ask it to skip this + * with a non-zero final parameter. */ + TEST_EQUAL( 0, test_read_residue( &a, &N, input_A, expected_ret != 0 ) ); + TEST_EQUAL( 0, test_read_residue( &i, &N, input_I, expected_ret != 0 ) ); + + size_t limbs = N.limbs; + size_t bytes = limbs * sizeof( *X_raw ); + + ASSERT_ALLOC( X_raw, limbs ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &N, X_raw, limbs ) ); + + TEST_EQUAL( expected_ret, mbedtls_mpi_mod_inv( &x, &a, &N ) ); + if( expected_ret == 0 ) + { + TEST_COMPARE_MPI_RESIDUES( x, i ); + + /* a^-1: alias x to a => Correct result */ + memcpy( x.p, a.p, bytes ); + TEST_EQUAL( 0, mbedtls_mpi_mod_inv( &x, &x, &N ) ); + TEST_COMPARE_MPI_RESIDUES( x, i ); + } + +exit: + mbedtls_free( (void *)N.p ); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ + mbedtls_mpi_mod_modulus_free( &N ); + + mbedtls_free( a.p ); + mbedtls_free( i.p ); + mbedtls_free( X_raw ); +} +/* END_CASE */ /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ diff --git a/tests/suites/test_suite_bignum_mod.misc.data b/tests/suites/test_suite_bignum_mod.misc.data index 7b1c85fb0..6240e214b 100644 --- a/tests/suites/test_suite_bignum_mod.misc.data +++ b/tests/suites/test_suite_bignum_mod.misc.data @@ -38,6 +38,50 @@ mpi_mod_sub:"014320a022ccb75bdf470ddf25":"a99c71c7":"00033b2e3c9fd0803ce8000f93" mpi_mod_sub with second input too short mpi_mod_sub:"014320a022ccb75bdf470ddf25":"000000025a55a46e5da99c71c7":"e8000f93":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +mbedtls_mpi_mod_inv non-Mont. form - base case for negative testing (N, A, A^-1) +mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000038":"000000000000097418193b6f2e0b5fc3":0 + +mbedtls_mpi_mod_inv non-Mont. form - A == 0 +mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000000":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv non-Mont. form - A too long +mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000000000000000000000000000038":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv non-Mont. form - A too short +mpi_mod_inv_non_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000038":"000000000000097418193b6f2e0b5fc3":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 32-bit Mont. form - base case for negative testing, A = 1 (N, mont(A), mont(A^-1)) +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"0000000000000d71d51539b9c02b7b28":"0000000000000d71d51539b9c02b7b28":0 + +mbedtls_mpi_mod_inv 32-bit Mont. form - A == 0 +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"00000000000000000000000000000000":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 32-bit Mont. form - A too long +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"000000000000000000000d71d51539b9c02b7b28":"00":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 32-bit Mont. form - A too short +depends_on:MBEDTLS_HAVE_INT32 +mpi_mod_inv_mont:"000000000000152d02c7e14af67fe0bf":"00000d71d51539b9c02b7b28":"0000000000000d71d51539b9c02b7b28":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 64-bit Mont. form - base case for negative testing, A = 1 (N, mont(A), mont(A^-1)) +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"000000000000000000000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":0 + +mbedtls_mpi_mod_inv 64-bit Mont. form - A == 0 +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"000000000000000000000000000000000000000000000000":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 64-bit Mont. form - A too long +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"0000000000000000000000000000000000000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +mbedtls_mpi_mod_inv 64-bit Mont. form - A too short +depends_on:MBEDTLS_HAVE_INT64 +mpi_mod_inv_mont:"0000000000000000000000000000152d02c7e14af67fe0bf":"00000000000009545642424381c611fb":"000000000000000000000000000009545642424381c611fb":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + # END MERGE SLOT 3 # BEGIN MERGE SLOT 4 From 6bb49ba121353c1c079564ac86ebc9dc4047c50b Mon Sep 17 00:00:00 2001 From: Werner Lewis Date: Thu, 15 Dec 2022 16:58:44 +0000 Subject: [PATCH 1246/1574] Document const parameter conventions Signed-off-by: Werner Lewis --- library/bignum_mod.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 96bbaca0f..bae671ca6 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -10,13 +10,15 @@ * of type #mbedtls_mpi_mod_modulus. The structure must be set up with an * array of limbs storing the bignum value of the modulus. The modulus must * be odd and is assumed to have no leading zeroes. The modulus is usually - * named \c N and is usually input-only. + * named \c N and is usually input-only. Functions which take a parameter + * of type \c const #mbedtls_mpi_mod_modulus* must not modify its value. * - **Bignum parameters**: Bignums are passed as pointers to an array of * limbs or to a #mbedtls_mpi_mod_residue structure. A limb has the type * #mbedtls_mpi_uint. Residues must be initialized before use, and must be * associated with the modulus \c N. Unless otherwise specified: * - Bignum parameters called \c A, \c B, ... are inputs and are not - * modified by the function. + * modified by the function. Functions which take a parameter of + * type \c const #mbedtls_mpi_mod_residue* must not modify its value. * - Bignum parameters called \c X, \c Y, ... are outputs or input-output. * The initial bignum value of output-only parameters is ignored, but * they must be set up and associated with the modulus \c N. Some From 1133d2325b9bd3a00fcdbf647de27991562ae35c Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 16 Dec 2022 03:53:17 +0000 Subject: [PATCH 1247/1574] Attempt to pacify pylint in bignum tests Signed-off-by: Tom Cosgrove --- scripts/mbedtls_dev/bignum_common.py | 17 +++++++++++++++++ scripts/mbedtls_dev/bignum_core.py | 10 +--------- scripts/mbedtls_dev/bignum_mod.py | 24 +++++------------------- scripts/mbedtls_dev/bignum_mod_raw.py | 16 +++------------- 4 files changed, 26 insertions(+), 41 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 0339b1ad1..dd4fc3684 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -39,6 +39,11 @@ def invmod(a: int, n: int) -> int: return b raise ValueError("Not invertible") +def invmod_positive(a: int, n: int) -> int: + """Return a non-negative inverse of a to modulo n.""" + inv = invmod(a, n) + return inv if inv >= 0 else inv + n + def hex_to_int(val: str) -> int: """Implement the syntax accepted by mbedtls_test_read_mpi(). @@ -244,6 +249,8 @@ class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" moduli = MODULI_DEFAULT # type: List[str] + mongtomgery_form_a = False + disallow_zero_a = False def __init__(self, val_n: str, val_a: str, val_b: str = "0", bits_in_limb: int = 64) -> None: @@ -263,6 +270,14 @@ class ModOperationCommon(OperationCommon): def boundary(self) -> int: return self.int_n + @property + def arg_a(self) -> str: + if self.mongtomgery_form_a: + value_a = self.to_montgomery(self.int_a) + else: + value_a = self.int_a + return self.format_arg('{:x}'.format(value_a)) + @property def arg_n(self) -> str: return self.format_arg(self.val_n) @@ -287,6 +302,8 @@ class ModOperationCommon(OperationCommon): def is_valid(self) -> bool: if self.int_a >= self.int_n: return False + if self.disallow_zero_a and self.int_a == 0: + return False if self.arity == 2 and self.int_b >= self.int_n: return False return True diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 1a8c22bfa..3bd7f111c 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -757,15 +757,7 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): test_function = "mpi_core_exp_mod" test_name = "Core modular exponentiation (Mongtomery form only)" input_style = "fixed" - - def arguments(self) -> List[str]: - # Input 'a' has to be given in Montgomery form - mont_a = self.to_montgomery(self.int_a) - arg_mont_a = self.format_arg('{:x}'.format(mont_a)) - return [bignum_common.quote_str(n) for n in [self.arg_n, - arg_mont_a, - self.arg_b] - ] + self.result() + mongtomgery_form_a = True def result(self) -> List[str]: # Result has to be given in Montgomery form too diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 9f98131bd..642887354 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -58,15 +58,10 @@ class BignumModInvNonMont(bignum_common.ModOperationCommon, BignumModTarget): input_style = "fixed" arity = 1 suffix = True - - @property - def is_valid(self) -> bool: - return self.int_a > 0 and self.int_a < self.int_n + disallow_zero_a = True def result(self) -> List[str]: - result = bignum_common.invmod(self.int_a, self.int_n) - if result < 0: - result += self.int_n + result = bignum_common.invmod_positive(self.int_a, self.int_n) # To make negative tests easier, append 0 for success to the # generated cases return [self.format_result(result), "0"] @@ -80,20 +75,11 @@ class BignumModInvMont(bignum_common.ModOperationCommon, BignumModTarget): input_style = "arch_split" # Mont. form requires arch_split arity = 1 suffix = True - - @property - def is_valid(self) -> bool: - return self.int_a > 0 and self.int_a < self.int_n - - @property - def arg_a(self) -> str: - mont_a = self.to_montgomery(self.int_a) - return self.format_arg('{:x}'.format(mont_a)) + disallow_zero_a = True + mongtomgery_form_a = True def result(self) -> List[str]: - result = bignum_common.invmod(self.int_a, self.int_n) - if result < 0: - result += self.int_n + result = bignum_common.invmod_positive(self.int_a, self.int_n) mont_result = self.to_montgomery(result) # To make negative tests easier, append 0 for success to the # generated cases diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 0084898be..461b1f2b9 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -64,21 +64,11 @@ class BignumModRawInvPrime(bignum_common.ModOperationCommon, input_style = "arch_split" arity = 1 suffix = True - - @property - def is_valid(self) -> bool: - return self.int_a > 0 and self.int_a < self.int_n - - @property - def arg_a(self) -> str: - # Input has to be given in Montgomery form - mont_a = self.to_montgomery(self.int_a) - return self.format_arg('{:x}'.format(mont_a)) + mongtomgery_form_a = True + disallow_zero_a = True def result(self) -> List[str]: - result = bignum_common.invmod(self.int_a, self.int_n) - if result < 0: - result += self.int_n + result = bignum_common.invmod_positive(self.int_a, self.int_n) mont_result = self.to_montgomery(result) return [self.format_result(mont_result)] From 881447d4113d2903cee3446fa1df4c725bde1a5c Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 8 Dec 2022 15:24:52 +0100 Subject: [PATCH 1248/1574] Move bignum helpers to their own module Move bignum-related helper functions to their own files under tests/include and tests/src. The primary motivation is that a subsequent commit will make bignum_helpers.h include library/bignum*.h, but we want to be able to include without having the library directory on the include path (we do this in some programs under programs/ intended for testing). Signed-off-by: Gilles Peskine --- tests/include/test/bignum_helpers.h | 90 +++++++++++++++++++++ tests/include/test/helpers.h | 67 +++------------- tests/src/bignum_helpers.c | 119 ++++++++++++++++++++++++++++ tests/src/helpers.c | 87 +------------------- tests/suites/helpers.function | 1 + 5 files changed, 224 insertions(+), 140 deletions(-) create mode 100644 tests/include/test/bignum_helpers.h create mode 100644 tests/src/bignum_helpers.c diff --git a/tests/include/test/bignum_helpers.h b/tests/include/test/bignum_helpers.h new file mode 100644 index 000000000..22ce7f76f --- /dev/null +++ b/tests/include/test/bignum_helpers.h @@ -0,0 +1,90 @@ +/** + * \file bignum_helpers.h + * + * \brief This file contains the prototypes of helper functions for + * bignum-related testing. + */ + +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef TEST_BIGNUM_HELPERS_H +#define TEST_BIGNUM_HELPERS_H + +#include + +#if defined(MBEDTLS_BIGNUM_C) + +#include + +/** Allocate and populate a core MPI from a test case argument. + * + * This function allocates exactly as many limbs as necessary to fit + * the length of the input. In other words, it preserves leading zeros. + * + * The limb array is allocated with mbedtls_calloc() and must later be + * freed with mbedtls_free(). + * + * \param[in,out] pX The address where a pointer to the allocated limb + * array will be stored. + * \c *pX must be null on entry. + * On exit, \c *pX is null on error or if the number + * of limbs is 0. + * \param[out] plimbs The address where the number of limbs will be stored. + * \param[in] input The test argument to read. + * It is interpreted as a hexadecimal representation + * of a non-negative integer. + * + * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. + */ +int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, + const char *input ); + +/** Read an MPI from a hexadecimal string. + * + * Like mbedtls_mpi_read_string(), but with tighter guarantees around + * edge cases. + * + * - This function guarantees that if \p s begins with '-' then the sign + * bit of the result will be negative, even if the value is 0. + * When this function encounters such a "negative 0", it + * increments #mbedtls_test_case_uses_negative_0. + * - The size of the result is exactly the minimum number of limbs needed + * to fit the digits in the input. In particular, this function constructs + * a bignum with 0 limbs for an empty string, and a bignum with leading 0 + * limbs if the string has sufficiently many leading 0 digits. + * This is important so that the "0 (null)" and "0 (1 limb)" and + * "leading zeros" test cases do what they claim. + * + * \param[out] X The MPI object to populate. It must be initialized. + * \param[in] s The null-terminated hexadecimal string to read from. + * + * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. + */ +int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ); + +/** Nonzero if the current test case had an input parsed with + * mbedtls_test_read_mpi() that is a negative 0 (`"-"`, `"-0"`, `"-00"`, etc., + * constructing a result with the sign bit set to -1 and the value being + * all-limbs-0, which is not a valid representation in #mbedtls_mpi but is + * tested for robustness). + */ +extern unsigned mbedtls_test_case_uses_negative_0; + +#endif /* MBEDTLS_BIGNUM_C */ + +#endif /* TEST_BIGNUM_HELPERS_H */ diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index 5f9bde697..b64bfcbce 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -215,6 +215,17 @@ void mbedtls_test_hexify( unsigned char *obuf, const unsigned char *ibuf, int len ); +/** + * \brief Convert hexadecimal digit to an integer. + * + * \param c The digit to convert (`'0'` to `'9'`, `'A'` to `'F'` or + * `'a'` to `'f'`). + * \param[out] uc On success, the value of the digit (0 to 15). + * + * \return 0 on success, -1 if \p c is not a hexadecimal digit. + */ +int mbedtls_test_ascii2uc(const char c, unsigned char *uc); + /** * Allocate and zeroize a buffer. * @@ -269,60 +280,4 @@ void mbedtls_test_err_add_check( int high, int low, const char *file, int line); #endif -#if defined(MBEDTLS_BIGNUM_C) -/** Allocate and populate a core MPI from a test case argument. - * - * This function allocates exactly as many limbs as necessary to fit - * the length of the input. In other words, it preserves leading zeros. - * - * The limb array is allocated with mbedtls_calloc() and must later be - * freed with mbedtls_free(). - * - * \param[in,out] pX The address where a pointer to the allocated limb - * array will be stored. - * \c *pX must be null on entry. - * On exit, \c *pX is null on error or if the number - * of limbs is 0. - * \param[out] plimbs The address where the number of limbs will be stored. - * \param[in] input The test argument to read. - * It is interpreted as a hexadecimal representation - * of a non-negative integer. - * - * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. - */ -int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const char *input ); - -/** Read an MPI from a hexadecimal string. - * - * Like mbedtls_mpi_read_string(), but with tighter guarantees around - * edge cases. - * - * - This function guarantees that if \p s begins with '-' then the sign - * bit of the result will be negative, even if the value is 0. - * When this function encounters such a "negative 0", it - * increments #mbedtls_test_case_uses_negative_0. - * - The size of the result is exactly the minimum number of limbs needed - * to fit the digits in the input. In particular, this function constructs - * a bignum with 0 limbs for an empty string, and a bignum with leading 0 - * limbs if the string has sufficiently many leading 0 digits. - * This is important so that the "0 (null)" and "0 (1 limb)" and - * "leading zeros" test cases do what they claim. - * - * \param[out] X The MPI object to populate. It must be initialized. - * \param[in] s The null-terminated hexadecimal string to read from. - * - * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. - */ -int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ); - -/** Nonzero if the current test case had an input parsed with - * mbedtls_test_read_mpi() that is a negative 0 (`"-"`, `"-0"`, `"-00"`, etc., - * constructing a result with the sign bit set to -1 and the value being - * all-limbs-0, which is not a valid representation in #mbedtls_mpi but is - * tested for robustness). - */ -extern unsigned mbedtls_test_case_uses_negative_0; -#endif /* MBEDTLS_BIGNUM_C */ - #endif /* TEST_HELPERS_H */ diff --git a/tests/src/bignum_helpers.c b/tests/src/bignum_helpers.c new file mode 100644 index 000000000..575bd03de --- /dev/null +++ b/tests/src/bignum_helpers.c @@ -0,0 +1,119 @@ +/** + * \file bignum_helpers.c + * + * \brief This file contains the prototypes of helper functions for + * bignum-related testing. + */ + +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define MBEDTLS_ALLOW_PRIVATE_ACCESS +#include + +#if defined(MBEDTLS_BIGNUM_C) + +#include +#include + +#include +#include +#include +#include + +#include +#include + +int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, + const char *input ) +{ + /* Sanity check */ + if( *pX != NULL ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + size_t hex_len = strlen( input ); + size_t byte_len = ( hex_len + 1 ) / 2; + *plimbs = CHARS_TO_LIMBS( byte_len ); + + /* A core bignum is not allowed to be empty. Forbid it as test data, + * this way static analyzers have a chance of knowing we don't expect + * the bignum functions to support empty inputs. */ + if( *plimbs == 0 ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + + *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); + if( *pX == NULL ) + return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + + unsigned char *byte_start = ( unsigned char * ) *pX; + if( byte_len % sizeof( mbedtls_mpi_uint ) != 0 ) + { + byte_start += sizeof( mbedtls_mpi_uint ) - byte_len % sizeof( mbedtls_mpi_uint ); + } + if( ( hex_len & 1 ) != 0 ) + { + /* mbedtls_test_unhexify wants an even number of hex digits */ + TEST_ASSERT( mbedtls_test_ascii2uc( *input, byte_start ) == 0 ); + ++byte_start; + ++input; + --byte_len; + } + TEST_ASSERT( mbedtls_test_unhexify( byte_start, + byte_len, + input, + &byte_len ) == 0 ); + + mbedtls_mpi_core_bigendian_to_host( *pX, *plimbs ); + return( 0 ); + +exit: + mbedtls_free( *pX ); + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); +} + +int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) +{ + int negative = 0; + /* Always set the sign bit to -1 if the input has a minus sign, even for 0. + * This creates an invalid representation, which mbedtls_mpi_read_string() + * avoids but we want to be able to create that in test data. */ + if( s[0] == '-' ) + { + ++s; + negative = 1; + } + /* mbedtls_mpi_read_string() currently retains leading zeros. + * It always allocates at least one limb for the value 0. */ + if( s[0] == 0 ) + { + mbedtls_mpi_free( X ); + return( 0 ); + } + int ret = mbedtls_mpi_read_string( X, 16, s ); + if( ret != 0 ) + return( ret ); + if( negative ) + { + if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) + ++mbedtls_test_case_uses_negative_0; + X->s = -1; + } + return( 0 ); +} + +#endif /* MBEDTLS_BIGNUM_C */ + diff --git a/tests/src/helpers.c b/tests/src/helpers.c index 7c83714f1..be5c465fd 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -48,7 +48,7 @@ void mbedtls_test_platform_teardown( void ) #endif /* MBEDTLS_PLATFORM_C */ } -static int ascii2uc(const char c, unsigned char *uc) +int mbedtls_test_ascii2uc(const char c, unsigned char *uc) { if( ( c >= '0' ) && ( c <= '9' ) ) *uc = c - '0'; @@ -207,10 +207,10 @@ int mbedtls_test_unhexify( unsigned char *obuf, while( *ibuf != 0 ) { - if ( ascii2uc( *(ibuf++), &uc ) != 0 ) + if ( mbedtls_test_ascii2uc( *(ibuf++), &uc ) != 0 ) return( -1 ); - if ( ascii2uc( *(ibuf++), &uc2 ) != 0 ) + if ( mbedtls_test_ascii2uc( *(ibuf++), &uc2 ) != 0 ) return( -1 ); *(obuf++) = ( uc << 4 ) | uc2; @@ -350,84 +350,3 @@ void mbedtls_test_err_add_check( int high, int low, } } #endif /* MBEDTLS_TEST_HOOKS */ - -#if defined(MBEDTLS_BIGNUM_C) -#include "bignum_core.h" - -int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const char *input ) -{ - /* Sanity check */ - if( *pX != NULL ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - size_t hex_len = strlen( input ); - size_t byte_len = ( hex_len + 1 ) / 2; - *plimbs = CHARS_TO_LIMBS( byte_len ); - - /* A core bignum is not allowed to be empty. Forbid it as test data, - * this way static analyzers have a chance of knowing we don't expect - * the bignum functions to support empty inputs. */ - if( *plimbs == 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); - if( *pX == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - - unsigned char *byte_start = ( unsigned char * ) *pX; - if( byte_len % sizeof( mbedtls_mpi_uint ) != 0 ) - { - byte_start += sizeof( mbedtls_mpi_uint ) - byte_len % sizeof( mbedtls_mpi_uint ); - } - if( ( hex_len & 1 ) != 0 ) - { - /* mbedtls_test_unhexify wants an even number of hex digits */ - TEST_ASSERT( ascii2uc( *input, byte_start ) == 0 ); - ++byte_start; - ++input; - --byte_len; - } - TEST_ASSERT( mbedtls_test_unhexify( byte_start, - byte_len, - input, - &byte_len ) == 0 ); - - mbedtls_mpi_core_bigendian_to_host( *pX, *plimbs ); - return( 0 ); - -exit: - mbedtls_free( *pX ); - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); -} - -int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) -{ - int negative = 0; - /* Always set the sign bit to -1 if the input has a minus sign, even for 0. - * This creates an invalid representation, which mbedtls_mpi_read_string() - * avoids but we want to be able to create that in test data. */ - if( s[0] == '-' ) - { - ++s; - negative = 1; - } - /* mbedtls_mpi_read_string() currently retains leading zeros. - * It always allocates at least one limb for the value 0. */ - if( s[0] == 0 ) - { - mbedtls_mpi_free( X ); - return( 0 ); - } - int ret = mbedtls_mpi_read_string( X, 16, s ); - if( ret != 0 ) - return( ret ); - if( negative ) - { - if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) - ++mbedtls_test_case_uses_negative_0; - X->s = -1; - } - return( 0 ); -} -#endif diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function index fe33f9bf9..82495644e 100644 --- a/tests/suites/helpers.function +++ b/tests/suites/helpers.function @@ -5,6 +5,7 @@ #include #include #include +#include #include #include From 195f998107d59dffb11cd422680042302c9d5ea7 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 7 Dec 2022 22:59:54 +0100 Subject: [PATCH 1249/1574] New helper function to allocate and read a modulus When including , the library/ directory now needs to be on the include path. Signed-off-by: Gilles Peskine --- tests/include/test/bignum_helpers.h | 20 ++++++++++++++++++++ tests/src/bignum_helpers.c | 17 +++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/tests/include/test/bignum_helpers.h b/tests/include/test/bignum_helpers.h index 22ce7f76f..ab3c86a12 100644 --- a/tests/include/test/bignum_helpers.h +++ b/tests/include/test/bignum_helpers.h @@ -30,6 +30,7 @@ #if defined(MBEDTLS_BIGNUM_C) #include +#include /** Allocate and populate a core MPI from a test case argument. * @@ -54,6 +55,25 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, const char *input ); +/** Read a modulus from a hexadecimal string. + * + * This function allocates exactly as many limbs as necessary to fit + * the length of the input. In other words, it preserves leading zeros. + * + * The limb array is allocated with mbedtls_calloc() and must later be + * freed with mbedtls_free(). + * + * \param[in,out] N A modulus structure. It must be initialized, but + * not set up. + * \param[in] s The null-terminated hexadecimal string to read from. + * \param int_rep The desired representation of residues. + * + * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. + */ +int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, + const char *s, + mbedtls_mpi_mod_rep_selector int_rep ); + /** Read an MPI from a hexadecimal string. * * Like mbedtls_mpi_read_string(), but with tighter guarantees around diff --git a/tests/src/bignum_helpers.c b/tests/src/bignum_helpers.c index 575bd03de..eb819f5ce 100644 --- a/tests/src/bignum_helpers.c +++ b/tests/src/bignum_helpers.c @@ -85,6 +85,23 @@ exit: return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); } +int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, + const char *s, + mbedtls_mpi_mod_rep_selector int_rep ) +{ + mbedtls_mpi_uint *p = NULL; + size_t limbs = 0; + if( N->limbs != 0 ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + int ret = mbedtls_test_read_mpi_core( &p, &limbs, s ); + if( ret != 0 ) + return( ret ); + ret = mbedtls_mpi_mod_modulus_setup( N, p, limbs, int_rep ); + if( ret != 0 ) + mbedtls_free( p ); + return( ret ); +} + int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) { int negative = 0; From 8c32b24a3580a4e7ae390b8c69b12edce3f788c8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 7 Dec 2022 23:01:44 +0100 Subject: [PATCH 1250/1574] Rename MPI-legacy test function for clarity A mod version of the function will be added very soon. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_random.data | 26 +++++++++---------- .../suites/test_suite_bignum_random.function | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data index fe290531a..bf51b0f0a 100644 --- a/tests/suites/test_suite_bignum_random.data +++ b/tests/suites/test_suite_bignum_random.data @@ -17,31 +17,31 @@ MPI core random basic: 2^30..2^129 mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 # Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE -# and for mpi_random_values where we want to return NOT_ACCEPTABLE but -# this isn't checked at runtime. +# and for mpi_legacy_random_values where we want to return NOT_ACCEPTABLE +# but this isn't checked at runtime. MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE) mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE) -mpi_random_values:0x0fffffff:"10000000" +mpi_legacy_random_values:0x0fffffff:"10000000" MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE) mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE) -mpi_random_values:0x1fffffff:"20000000" +mpi_legacy_random_values:0x1fffffff:"20000000" MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE) mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE) -mpi_random_values:0x3fffffff:"40000000" +mpi_legacy_random_values:0x3fffffff:"40000000" MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE) mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE) -mpi_random_values:0x7fffffff:"80000000" +mpi_legacy_random_values:0x7fffffff:"80000000" MPI random in range: 1..2 mpi_random_many:1:"02":1000 @@ -214,22 +214,22 @@ MPI random bad arguments: min > N = 1, 0 limb in upper bound mpi_random_fail:2:"000000000000000001":MBEDTLS_ERR_MPI_BAD_INPUT_DATA MPI random legacy=core: 0..1 -mpi_random_values:0:"01" +mpi_legacy_random_values:0:"01" MPI random legacy=core: 0..2 -mpi_random_values:0:"02" +mpi_legacy_random_values:0:"02" MPI random legacy=core: 1..2 -mpi_random_values:1:"02" +mpi_legacy_random_values:1:"02" MPI random legacy=core: 2^30..2^31 -mpi_random_values:0x40000000:"80000000" +mpi_legacy_random_values:0x40000000:"80000000" MPI random legacy=core: 2^31-1..2^32-1 -mpi_random_values:0x7fffffff:"ffffffff" +mpi_legacy_random_values:0x7fffffff:"ffffffff" MPI random legacy=core: 0..2^256 -mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" +mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000000" MPI random legacy=core: 0..2^256+1 -mpi_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" +mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 184de5a40..2250e8c5d 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -110,7 +110,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_random_values( int min, char *max_hex ) +void mpi_legacy_random_values( int min, char *max_hex ) { /* Same RNG as in mpi_core_random_basic */ mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed; From a57cf9813a932c3a0a6a9c526b94560d36da39bd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 6 Dec 2022 22:54:09 +0100 Subject: [PATCH 1251/1574] Implement and test mbedtls_mpi_mod_raw_random In the basic/XXX=core test cases, use odd upper bounds, because the mod version of random() only supports odd upper bounds (the upper bound is a modulus and the mod modules only support odd moduli). Signed-off-by: Gilles Peskine --- library/bignum_mod_raw.c | 12 ++++ library/bignum_mod_raw.h | 34 ++++++++++ tests/suites/test_suite_bignum_random.data | 64 ++++++++++++++----- .../suites/test_suite_bignum_random.function | 56 ++++++++++++++++ 4 files changed, 149 insertions(+), 17 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index c98a1c1cb..fbd90bf22 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -176,6 +176,18 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 6 */ +int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + int ret = mbedtls_mpi_core_random( X, min, N->p, N->limbs, f_rng, p_rng ); + if( ret != 0 ) + return( ret ); + return( mbedtls_mpi_mod_raw_to_mont_rep( X, N ) ); +} + /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index e6237b359..87e241fa5 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -297,6 +297,40 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 6 */ +/** Generate a random number uniformly in a range. + * + * This function generates a random number between \p min inclusive and + * \p N exclusive. + * + * The procedure complies with RFC 6979 §3.3 (deterministic ECDSA) + * when the RNG is a suitably parametrized instance of HMAC_DRBG + * and \p min is \c 1. + * + * \note There are `N - min` possible outputs. The lower bound + * \p min can be reached, but the upper bound \p N cannot. + * + * \param X The destination MPI, in canonical representation modulo \p N. + * It must not be aliased with \p N or otherwise overlap it. + * \param min The minimum value to return. It must be strictly smaller + * than \b N. + * \param N The modulus. + * This is the upper bound of the output range, exclusive. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the implementation was + * unable to find a suitable value within a limited number + * of attempts. This has a negligible probability if \p N + * is significantly larger than \p min, which is the case + * for all usual cryptographic applications. + */ +int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data index bf51b0f0a..b51254b5a 100644 --- a/tests/suites/test_suite_bignum_random.data +++ b/tests/suites/test_suite_bignum_random.data @@ -17,31 +17,43 @@ MPI core random basic: 2^30..2^129 mpi_core_random_basic:0x40000000:"0200000000000000000000000000000000":0 # Use the same data values for mpi_core_random_basic->NOT_ACCEPTABLE -# and for mpi_legacy_random_values where we want to return NOT_ACCEPTABLE +# and for mpi_XXX_random_values where we want to return NOT_ACCEPTABLE # but this isn't checked at runtime. -MPI core random basic: 2^28-1..2^28 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x0fffffff:"10000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +MPI core random basic: 2^28-1..2^28+1 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x0fffffff:"10000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -MPI random legacy=core: 2^28-1..2^28 (NOT_ACCEPTABLE) -mpi_legacy_random_values:0x0fffffff:"10000000" +MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) +mpi_legacy_random_values:0x0fffffff:"10000001" -MPI core random basic: 2^29-1..2^29 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x1fffffff:"20000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) +mpi_mod_random_values:0x0fffffff:"10000001" -MPI random legacy=core: 2^29-1..2^29 (NOT_ACCEPTABLE) -mpi_legacy_random_values:0x1fffffff:"20000000" +MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -MPI core random basic: 2^30-1..2^30 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x3fffffff:"40000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) +mpi_legacy_random_values:0x1fffffff:"20000001" -MPI random legacy=core: 2^30-1..2^30 (NOT_ACCEPTABLE) -mpi_legacy_random_values:0x3fffffff:"40000000" +MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) +mpi_mod_random_values:0x1fffffff:"20000001" -MPI core random basic: 2^31-1..2^31 (NOT_ACCEPTABLE) -mpi_core_random_basic:0x7fffffff:"80000000":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE +MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE -MPI random legacy=core: 2^31-1..2^31 (NOT_ACCEPTABLE) -mpi_legacy_random_values:0x7fffffff:"80000000" +MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) +mpi_legacy_random_values:0x3fffffff:"40000001" + +MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) +mpi_mod_random_values:0x3fffffff:"40000001" + +MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE) +mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE + +MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) +mpi_legacy_random_values:0x7fffffff:"80000001" + +MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) +mpi_mod_random_values:0x7fffffff:"80000001" MPI random in range: 1..2 mpi_random_many:1:"02":1000 @@ -233,3 +245,21 @@ mpi_legacy_random_values:0:"0100000000000000000000000000000000000000000000000000 MPI random legacy=core: 0..2^256+1 mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" + +MPI random mod=core: 0..1 +mpi_mod_random_values:0:"01" + +MPI random mod=core: 0..3 +mpi_mod_random_values:0:"03" + +MPI random mod=core: 1..3 +mpi_mod_random_values:1:"03" + +MPI random mod=core: 2^30..2^31-1 +mpi_mod_random_values:0x40000000:"7fffffff" + +MPI random mod=core: 2^31-1..2^32-1 +mpi_mod_random_values:0x7fffffff:"ffffffff" + +MPI random mod=core: 0..2^256+1 +mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 2250e8c5d..a837e1b04 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -8,6 +8,7 @@ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" #include "bignum_core.h" +#include "bignum_mod_raw.h" #include "constant_time_internal.h" /* This test suite only manipulates non-negative bignums. */ @@ -158,6 +159,61 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_random_values( int min, char *max_hex ) +{ + /* Same RNG as in mpi_core_random_basic */ + mbedtls_test_rnd_pseudo_info rnd_core = { + {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', + 's', 'e', 'e', 'd', '!', 0}, + 0, 0}; + mbedtls_test_rnd_pseudo_info rnd_mod_raw; + memcpy( &rnd_mod_raw, &rnd_core, sizeof( rnd_core ) ); + mbedtls_mpi_uint *R_core = NULL; + mbedtls_mpi_uint *R_mod_raw = NULL; + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + + TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), + 0 ); + ASSERT_ALLOC( R_core, N.limbs ); + ASSERT_ALLOC( R_mod_raw, N.limbs ); + + /* Call the core and mod random() functions with the same random stream. */ + int core_ret = mbedtls_mpi_core_random( R_core, + min, N.p, N.limbs, + mbedtls_test_rnd_pseudo_rand, + &rnd_core ); + int mod_raw_ret = mbedtls_mpi_mod_raw_random( R_mod_raw, + min, &N, + mbedtls_test_rnd_pseudo_rand, + &rnd_mod_raw ); + + /* They must return the same status, and, on success, output the + * same number, with the same limb count. */ + TEST_EQUAL( core_ret, mod_raw_ret ); + if( core_ret == 0 ) + { + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_raw, &N ), 0 ); + ASSERT_COMPARE( R_core, N.limbs * ciL, + R_mod_raw, N.limbs * ciL ); + } + + /* Also check that they have consumed the RNG in the same way. */ + /* This may theoretically fail on rare platforms with padding in + * the structure! If this is a problem in practice, change to a + * field-by-field comparison. */ + ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), + &rnd_mod_raw, sizeof( rnd_mod_raw ) ); + +exit: + mbedtls_mpi_mod_modulus_free( &N ); + mbedtls_free( R_core ); + mbedtls_free( R_mod_raw ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_random_many( int min, char *bound_hex, int iterations ) { From d008abbc4f4df748a64aa436e499c7a9270f0522 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 8 Dec 2022 19:50:29 +0100 Subject: [PATCH 1252/1574] Fix leak of modulus structures in tests Signed-off-by: Gilles Peskine --- tests/include/test/bignum_helpers.h | 10 +++++++++- tests/src/bignum_helpers.c | 6 ++++++ tests/suites/test_suite_bignum_random.function | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/tests/include/test/bignum_helpers.h b/tests/include/test/bignum_helpers.h index ab3c86a12..164017e69 100644 --- a/tests/include/test/bignum_helpers.h +++ b/tests/include/test/bignum_helpers.h @@ -61,7 +61,8 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, * the length of the input. In other words, it preserves leading zeros. * * The limb array is allocated with mbedtls_calloc() and must later be - * freed with mbedtls_free(). + * freed with mbedtls_free(). You can do that by calling + * mbedtls_test_mpi_mod_modulus_free_with_limbs(). * * \param[in,out] N A modulus structure. It must be initialized, but * not set up. @@ -74,6 +75,13 @@ int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, const char *s, mbedtls_mpi_mod_rep_selector int_rep ); +/** Free a modulus and its limbs. + * + * \param[in] N A modulus structure such that there is no other + * reference to `N->p`. + */ +void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N ); + /** Read an MPI from a hexadecimal string. * * Like mbedtls_mpi_read_string(), but with tighter guarantees around diff --git a/tests/src/bignum_helpers.c b/tests/src/bignum_helpers.c index eb819f5ce..d6ec9bd3c 100644 --- a/tests/src/bignum_helpers.c +++ b/tests/src/bignum_helpers.c @@ -102,6 +102,12 @@ int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, return( ret ); } +void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N ) +{ + mbedtls_free( (mbedtls_mpi_uint*) N->p ); + mbedtls_mpi_mod_modulus_free( N ); +} + int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) { int negative = 0; diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index a837e1b04..5064a62d0 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -208,7 +208,7 @@ void mpi_mod_random_values( int min, char *max_hex ) &rnd_mod_raw, sizeof( rnd_mod_raw ) ); exit: - mbedtls_mpi_mod_modulus_free( &N ); + mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); mbedtls_free( R_core ); mbedtls_free( R_mod_raw ); } From b1eea02f745fc978ad37e9749ed6dee509351116 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 7 Dec 2022 22:59:27 +0100 Subject: [PATCH 1253/1574] Implement and test mbedtls_mpi_mod_random Signed-off-by: Gilles Peskine --- library/bignum_mod.c | 11 +++++++ library/bignum_mod.h | 33 +++++++++++++++++++ .../suites/test_suite_bignum_random.function | 19 +++++++++++ 3 files changed, 63 insertions(+) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 0057ebae2..3eef4e700 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -214,6 +214,17 @@ int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, /* BEGIN MERGE SLOT 6 */ +int mbedtls_mpi_mod_random( mbedtls_mpi_mod_residue *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + if( X->limbs != N->limbs ) + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + return( mbedtls_mpi_mod_raw_random( X->p, min, N, f_rng, p_rng ) ); +} + /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index f089f650e..bf00a36fc 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -290,6 +290,39 @@ int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, /* BEGIN MERGE SLOT 6 */ +/** Generate a random number uniformly in a range. + * + * This function generates a random number between \p min inclusive and + * \p N exclusive. + * + * The procedure complies with RFC 6979 §3.3 (deterministic ECDSA) + * when the RNG is a suitably parametrized instance of HMAC_DRBG + * and \p min is \c 1. + * + * \note There are `N - min` possible outputs. The lower bound + * \p min can be reached, but the upper bound \p N cannot. + * + * \param X The destination residue. + * \param min The minimum value to return. It must be strictly smaller + * than \b N. + * \param N The modulus. + * This is the upper bound of the output range, exclusive. + * \param f_rng The RNG function to use. This must not be \c NULL. + * \param p_rng The RNG parameter to be passed to \p f_rng. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if the implementation was + * unable to find a suitable value within a limited number + * of attempts. This has a negligible probability if \p N + * is significantly larger than \p min, which is the case + * for all usual cryptographic applications. + */ +int mbedtls_mpi_mod_random( mbedtls_mpi_mod_residue *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ); + /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 5064a62d0..4ee26adb7 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -169,8 +169,12 @@ void mpi_mod_random_values( int min, char *max_hex ) 0, 0}; mbedtls_test_rnd_pseudo_info rnd_mod_raw; memcpy( &rnd_mod_raw, &rnd_core, sizeof( rnd_core ) ); + mbedtls_test_rnd_pseudo_info rnd_mod; + memcpy( &rnd_mod, &rnd_core, sizeof( rnd_core ) ); mbedtls_mpi_uint *R_core = NULL; mbedtls_mpi_uint *R_mod_raw = NULL; + mbedtls_mpi_uint *R_mod_digits = NULL; + mbedtls_mpi_mod_residue R_mod; mbedtls_mpi_mod_modulus N; mbedtls_mpi_mod_modulus_init( &N ); @@ -179,6 +183,10 @@ void mpi_mod_random_values( int min, char *max_hex ) 0 ); ASSERT_ALLOC( R_core, N.limbs ); ASSERT_ALLOC( R_mod_raw, N.limbs ); + ASSERT_ALLOC( R_mod_digits, N.limbs ); + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &R_mod, &N, + R_mod_digits, N.limbs ), + 0 ); /* Call the core and mod random() functions with the same random stream. */ int core_ret = mbedtls_mpi_core_random( R_core, @@ -189,15 +197,23 @@ void mpi_mod_random_values( int min, char *max_hex ) min, &N, mbedtls_test_rnd_pseudo_rand, &rnd_mod_raw ); + int mod_ret = mbedtls_mpi_mod_random( &R_mod, + min, &N, + mbedtls_test_rnd_pseudo_rand, + &rnd_mod ); /* They must return the same status, and, on success, output the * same number, with the same limb count. */ TEST_EQUAL( core_ret, mod_raw_ret ); + TEST_EQUAL( core_ret, mod_ret ); if( core_ret == 0 ) { TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_raw, &N ), 0 ); ASSERT_COMPARE( R_core, N.limbs * ciL, R_mod_raw, N.limbs * ciL ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_digits, &N ), 0 ); + ASSERT_COMPARE( R_core, N.limbs * ciL, + R_mod_digits, N.limbs * ciL ); } /* Also check that they have consumed the RNG in the same way. */ @@ -206,11 +222,14 @@ void mpi_mod_random_values( int min, char *max_hex ) * field-by-field comparison. */ ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), &rnd_mod_raw, sizeof( rnd_mod_raw ) ); + ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), + &rnd_mod, sizeof( rnd_mod ) ); exit: mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); mbedtls_free( R_core ); mbedtls_free( R_mod_raw ); + mbedtls_free( R_mod_digits ); } /* END_CASE */ From d878d1c638c550a03dabd3e9c45a50533b79249b Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 8 Dec 2022 12:59:51 +0100 Subject: [PATCH 1254/1574] Add validation tests for mbedtls_mpi_{mod,mod_raw}_random Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_random.data | 45 ++++++++++++++ .../suites/test_suite_bignum_random.function | 60 +++++++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data index b51254b5a..b486f3866 100644 --- a/tests/suites/test_suite_bignum_random.data +++ b/tests/suites/test_suite_bignum_random.data @@ -263,3 +263,48 @@ mpi_mod_random_values:0x7fffffff:"ffffffff" MPI random mod=core: 0..2^256+1 mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" + +MPI random mod validation: 1 limb, good, 0..1 +mpi_mod_random_validation:0:"1":0:0 + +MPI random mod validation: 1 limb, good, 1..3 +mpi_mod_random_validation:1:"3":0:0 + +MPI random mod validation: 1 limb, good, 2..3 +mpi_mod_random_validation:2:"3":0:0 + +MPI random mod validation: 1 limb, good, 3..5 +mpi_mod_random_validation:3:"5":0:0 + +MPI random mod validation: 1 limb, good, 4..5 +mpi_mod_random_validation:4:"5":0:0 + +MPI random mod validation: 1 limb, good, 5..7 +mpi_mod_random_validation:5:"7":0:0 + +MPI random mod validation: 1 limb, good, 6..7 +mpi_mod_random_validation:6:"7":0:0 + +MPI random mod validation: 1 limb, good, 0..0x123 +mpi_mod_random_validation:0:"123":0:0 + +MPI random mod validation: 2+ limbs, good +mpi_mod_random_validation:0:"01234567890123456789":0:0 + +MPI random mod validation: 1 limb, output null +mpi_mod_random_validation:0:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random mod validation: 1 limb, output too large +mpi_mod_random_validation:0:"123":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random mod validation: 2+ limbs, output too small +mpi_mod_random_validation:0:"01234567890123456789":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random mod validation: 2+ limbs, output too large +mpi_mod_random_validation:0:"01234567890123456789":1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random mod validation: min == upper bound +mpi_mod_random_validation:0x123:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +MPI random mod validation: min > upper bound +mpi_mod_random_validation:0x124:"123":-1:MBEDTLS_ERR_MPI_BAD_INPUT_DATA diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 4ee26adb7..61db40d27 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -386,6 +386,66 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_random_validation( int min, char *bound_hex, + int result_limbs_delta, + int expected_ret ) +{ + mbedtls_mpi_uint *result_digits = NULL; + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + + TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, bound_hex, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), + 0 ); + size_t result_limbs = N.limbs + result_limbs_delta; + ASSERT_ALLOC( result_digits, result_limbs ); + /* Build a reside that might not match the modulus, to test that + * the library function rejects that as expected. */ + mbedtls_mpi_mod_residue result = {result_digits, result_limbs}; + + TEST_EQUAL( mbedtls_mpi_mod_random( &result, min, &N, + mbedtls_test_rnd_std_rand, NULL ), + expected_ret ); + if( expected_ret == 0 ) + { + /* Success should only be expected when the result has the same + * size as the modulus, otherwise it's a mistake in the test data. */ + TEST_EQUAL( result_limbs, N.limbs ); + /* Sanity check: check that the result is in range */ + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 ); + TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), + 1 ); + /* Check result >= min (changes result) */ + TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result_digits, min, + result_limbs ), + 0 ); + } + + /* When the result has the right number of limbs, also test mod_raw + * (for which this is an unchecked precondition). */ + if( result_limbs_delta == 0 ) + { + TEST_EQUAL( mbedtls_mpi_mod_raw_random( result_digits, min, &N, + mbedtls_test_rnd_std_rand, NULL ), + expected_ret ); + if( expected_ret == 0 ) + { + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 ); + TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), + 1 ); + TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result.p, min, + result_limbs ), + 0 ); + } + } + +exit: + mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); + mbedtls_free( result_digits ); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_random_fail( int min, data_t *bound_bytes, int expected_ret ) { From 071f47343b2d57d65dd64059db04849b4d30084e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 14 Dec 2022 19:00:56 +0100 Subject: [PATCH 1255/1574] Document the test strategy Signed-off-by: Gilles Peskine --- .../suites/test_suite_bignum_random.function | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 61db40d27..0f431cd6d 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -3,6 +3,38 @@ * functions. Due to the complexity of how these functions are tested, * we test all the layers in a single test suite, unlike the way other * functions are tested with each layer in its own test suite. + * + * Test strategy + * ============= + * + * There are three main goals for testing random() functions: + * - Parameter validation. + * - Correctness of outputs (well-formed, in range). + * - Distribution of outputs. + * + * We test parameter validation in a standard way, with unit tests with + * positive and negative cases: + * - mbedtls_mpi_core_random(): negative cases for mpi_core_random_basic. + * - mbedtls_mpi_mod_raw_random(), mbedtls_mpi_mod_random(): negative + * cases for mpi_mod_random_validation. + * - mbedtls_mpi_random(): mpi_random_fail. + * + * We test the correctness of outputs in positive tests: + * - mbedtls_mpi_core_random(): positive cases for mpi_core_random_basic, + * and mpi_random_many. + * - mbedtls_mpi_mod_raw_random(), mbedtls_mpi_mod_random(): tested indirectly + * via mpi_mod_random_values. + * - mbedtls_mpi_random(): mpi_random_sizes, plus indirectly via + * mpi_random_values. + * + * We test the distribution of outputs only for mbedtls_mpi_core_random(), + * in mpi_random_many, which runs the function multiple times. This also + * helps in validating the output range, through test cases with a small + * range where any output out of range would be very likely to lead to a + * test failure. For the other functions, we validate the distribution + * indirectly by testing that these functions consume the random generator + * in the same way as mbedtls_mpi_core_random(). This is done in + * mpi_mod_random_values and mpi_legacy_random_values. */ #include "mbedtls/bignum.h" From 342d00bc220a9aea38563f6ce58be76a844a7995 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 16 Dec 2022 11:02:06 +0000 Subject: [PATCH 1256/1574] Oops, use mbedtls_free() not plain free() Signed-off-by: Tom Cosgrove --- library/bignum_mod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 7c89b57d7..31e18e741 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -276,7 +276,7 @@ int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, mbedtls_platform_zeroize( working_memory, working_limbs * sizeof(mbedtls_mpi_uint) ); - free( working_memory ); + mbedtls_free( working_memory ); return ret; } From 98d3a67a5c71cceb9f9e5c89e02f372928b91d21 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Dec 2022 12:03:39 +0100 Subject: [PATCH 1257/1574] Simplify the coverage statistics summary The script was parsing the output from `make lcov` to extract numbers and calculate percentages. But everything including the percentages is already present in the output of `make lcov`, just with a slightly different presentation. So replace all this by a simple extraction of the relevant lines from the output of `make lcov`. This is more robust than the previous code, which relied on `tail -n4` to extract relevant lines, which broke when `make lcov` started to emit one extra line at the end. Signed-off-by: Gilles Peskine --- tests/scripts/basic-build-test.sh | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/tests/scripts/basic-build-test.sh b/tests/scripts/basic-build-test.sh index a96254fd5..3dc8a7321 100755 --- a/tests/scripts/basic-build-test.sh +++ b/tests/scripts/basic-build-test.sh @@ -243,35 +243,16 @@ rm -f "tests/basic-build-test-$$.ok" echo - # Step 4e - Coverage - echo "Coverage" - - LINES_TESTED=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ lines......: [0-9]*.[0-9]% (\([0-9]*\) of [0-9]* lines)/\1/p') - LINES_TOTAL=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ lines......: [0-9]*.[0-9]% ([0-9]* of \([0-9]*\) lines)/\1/p') - FUNCS_TESTED=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ functions..: [0-9]*.[0-9]% (\([0-9]*\) of [0-9]* functions)$/\1/p') - FUNCS_TOTAL=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ functions..: [0-9]*.[0-9]% ([0-9]* of \([0-9]*\) functions)$/\1/p') - BRANCHES_TESTED=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ branches...: [0-9]*.[0-9]% (\([0-9]*\) of [0-9]* branches)$/\1/p') - BRANCHES_TOTAL=$(tail -n4 cov-$TEST_OUTPUT|sed -n -e 's/ branches...: [0-9]*.[0-9]% ([0-9]* of \([0-9]*\) branches)$/\1/p') - - LINES_PERCENT=$((1000*$LINES_TESTED/$LINES_TOTAL)) - LINES_PERCENT="$(($LINES_PERCENT/10)).$(($LINES_PERCENT-($LINES_PERCENT/10)*10))" - - FUNCS_PERCENT=$((1000*$FUNCS_TESTED/$FUNCS_TOTAL)) - FUNCS_PERCENT="$(($FUNCS_PERCENT/10)).$(($FUNCS_PERCENT-($FUNCS_PERCENT/10)*10))" - - BRANCHES_PERCENT=$((1000*$BRANCHES_TESTED/$BRANCHES_TOTAL)) - BRANCHES_PERCENT="$(($BRANCHES_PERCENT/10)).$(($BRANCHES_PERCENT-($BRANCHES_PERCENT/10)*10))" + # Step 4e - Coverage report + echo "Coverage statistics:" + sed -n '1,/^Overall coverage/d; /%/p' cov-$TEST_OUTPUT + echo rm unit-test-$TEST_OUTPUT rm sys-test-$TEST_OUTPUT rm compat-test-$TEST_OUTPUT rm cov-$TEST_OUTPUT - echo "Lines Tested : $LINES_TESTED of $LINES_TOTAL $LINES_PERCENT%" - echo "Functions Tested : $FUNCS_TESTED of $FUNCS_TOTAL $FUNCS_PERCENT%" - echo "Branches Tested : $BRANCHES_TESTED of $BRANCHES_TOTAL $BRANCHES_PERCENT%" - echo - # Mark the report generation as having succeeded. This must be the # last thing in the report generation. touch "basic-build-test-$$.ok" From b31b2e62eca98f25e828d1c2a283ba857216c9dc Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 15 Dec 2022 15:00:44 +0100 Subject: [PATCH 1258/1574] Generate operands in Mongomery representation for the test function Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 8 ++++---- tests/suites/test_suite_bignum_mod_raw.function | 12 ------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 29e3339f5..296e2d2d1 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -60,14 +60,14 @@ class BignumModRawMul(bignum_common.ModOperationCommon, arity = 2 def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.arg_a, - self.arg_b, - self.arg_n] + return [self.format_result(self.to_montgomery(self.int_a)), + self.format_result(self.to_montgomery(self.int_b)), + bignum_common.quote_str(self.arg_n) ] + self.result() def result(self) -> List[str]: result = (self.int_a * self.int_b) % self.int_n - return [self.format_result(result)] + return [self.format_result(self.to_montgomery(result))] # END MERGE SLOT 2 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index cf8643d39..b1d1f77eb 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -386,37 +386,28 @@ void mpi_mod_raw_mul( char * input_A, const size_t limbs_T = limbs * 2 + 1; ASSERT_ALLOC( T, limbs_T ); - /* Convert to Montgomery representation */ - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( A, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( B, &m ), 0 ); - mbedtls_mpi_mod_raw_mul( X, A, B, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* alias X to A */ memcpy( X, A, bytes ); mbedtls_mpi_mod_raw_mul( X, X, B, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* alias X to B */ memcpy( X, B, bytes ); mbedtls_mpi_mod_raw_mul( X, A, X, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* A == B: alias A and B */ if( memcmp( A, B, bytes ) == 0 ) { mbedtls_mpi_mod_raw_mul( X, A, A, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* X, A, B all aliased together */ memcpy( X, A, bytes ); mbedtls_mpi_mod_raw_mul( X, X, X, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); } @@ -424,19 +415,16 @@ void mpi_mod_raw_mul( char * input_A, else { mbedtls_mpi_mod_raw_mul( X, B, A, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* B * A: alias X to A */ memcpy( X, A, bytes ); mbedtls_mpi_mod_raw_mul( X, B, X, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); /* B + A: alias X to B */ memcpy( X, B, bytes ); mbedtls_mpi_mod_raw_mul( X, X, A, &m, T ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( X, &m ), 0 ); ASSERT_COMPARE( X, bytes, R, bytes ); } From f91090e4a34e1ccc1d6caf996a62f01796c18a76 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 16 Dec 2022 13:39:04 +0000 Subject: [PATCH 1259/1574] Fix an incorrect regex in check_names.py Allow check_names.py to detect declarations of the form: enum some_enum_name { This pattern has only just appeared due to code style correction, which explains why the issue was not previously noticed. Signed-off-by: David Horstmann --- tests/scripts/check_names.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 13b6c2dcf..7398f3c2d 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -444,8 +444,11 @@ class CodeParser(): # Match typedefs and brackets only when they are at the # beginning of the line -- if they are indented, they might # be sub-structures within structs, etc. + optional_c_identifier = r"([_a-zA-Z][_a-zA-Z0-9]*)?" if (state == states.OUTSIDE_KEYWORD and - re.search(r"^(typedef +)?enum +{", line)): + re.search(r"^(typedef +)?enum " + \ + optional_c_identifier + \ + r" *{", line)): state = states.IN_BRACES elif (state == states.OUTSIDE_KEYWORD and re.search(r"^(typedef +)?enum", line)): From e7221a21ad49ebdc851d02d89e37acd52278503b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 16 Dec 2022 11:53:45 +0100 Subject: [PATCH 1260/1574] test: adjust depends.py to new SHA224/SHA384 changes Signed-off-by: Valerio Setti --- include/mbedtls/md.h | 2 +- library/ssl_cookie.c | 4 +-- programs/fuzz/fuzz_dtlsserver.c | 4 +-- tests/scripts/depends.py | 11 ++++----- tests/suites/test_suite_x509parse.data | 34 +++++++++++++------------- 5 files changed, 27 insertions(+), 28 deletions(-) diff --git a/include/mbedtls/md.h b/include/mbedtls/md.h index fbf938dd1..69f1689da 100644 --- a/include/mbedtls/md.h +++ b/include/mbedtls/md.h @@ -63,7 +63,7 @@ typedef enum { MBEDTLS_MD_RIPEMD160, /**< The RIPEMD-160 message digest. */ } mbedtls_md_type_t; -#if defined(MBEDTLS_SHA512_C) +#if defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_SHA384_C) #define MBEDTLS_MD_MAX_SIZE 64 /* longest known is SHA512 */ #else #define MBEDTLS_MD_MAX_SIZE 32 /* longest known is SHA256 or less */ diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 3f9bf87b4..0aa7be65d 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -38,8 +38,8 @@ #include /* - * If DTLS is in use, then at least one of SHA-1, SHA-256, SHA-384 is - * available. Try SHA-256 first, 384 wastes resources + * If DTLS is in use, then at least one of SHA-1, SHA-224, SHA-384 is + * available. Try SHA-224 first, 384 wastes resources */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) #define COOKIE_MD MBEDTLS_MD_SHA224 diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c index 17caab211..1ef4190fc 100644 --- a/programs/fuzz/fuzz_dtlsserver.c +++ b/programs/fuzz/fuzz_dtlsserver.c @@ -18,7 +18,7 @@ defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) const char *pers = "fuzz_dtlsserver"; const unsigned char client_ip[4] = {0x7F, 0, 0, 1}; static int initialized = 0; @@ -36,7 +36,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) int ret; size_t len; mbedtls_ssl_context ssl; diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 0d6ec94c8..6469c3d0a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -256,17 +256,14 @@ REVERSE_DEPENDENCIES = { 'MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED'], 'MBEDTLS_SHA256_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', - 'MBEDTLS_SHA224_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY', 'MBEDTLS_LMS_C', 'MBEDTLS_LMS_PRIVATE'], - 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA384_C', - 'MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', + 'MBEDTLS_SHA512_C': ['MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY'], 'MBEDTLS_SHA224_C': ['MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED', 'MBEDTLS_ENTROPY_FORCE_SHA256', - 'MBEDTLS_SHA256_C', 'MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT', 'MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY'], 'MBEDTLS_X509_RSASSA_PSS_SUPPORT': [] @@ -276,8 +273,10 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'], - 'MBEDTLS_SHA384_C': ['+MBEDTLS_SHA512_C'], + 'MBEDTLS_SHA224_C': ['+MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA256_C': ['-MBEDTLS_SSL_COOKIE_C'], + 'MBEDTLS_SHA384_C': ['+MBEDTLS_SHA512_C', + '+MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C', '-MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['-MBEDTLS_ECDSA_C', diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index bd03016cc..b709112aa 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -704,7 +704,7 @@ depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR x509_verify:"data_files/server5-sha1.crt":"data_files/test-ca2.crt":"data_files/crl-ec-sha256.pem":"NULL":0:0:"compat":"NULL" X509 CRT verification #37 (Valid, EC CA, SHA224 Digest) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECDSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_verify:"data_files/server5-sha224.crt":"data_files/test-ca2.crt":"data_files/crl-ec-sha256.pem":"NULL":0:0:"compat":"NULL" X509 CRT verification #38 (Valid, EC CA, SHA384 Digest) @@ -2113,35 +2113,35 @@ X509 CRL ASN1 (TBSCertList, sig_oid1 id unknown) x509parse_crl:"30143012020100300d06092a864886f70d01010f0500":"":MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG X509 CRL ASN1 (TBSCertList, sig_oid1 correct, issuer missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30143012020100300d06092a864886f70d01010e0500":"":MBEDTLS_ERR_X509_INVALID_FORMAT + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, issuer set missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30163014020100300d06092a864886f70d01010e05003000":"":MBEDTLS_ERR_X509_INVALID_NAME + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, correct issuer, thisUpdate missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30253023020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344":"":MBEDTLS_ERR_X509_INVALID_DATE + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, correct thisUpdate, nextUpdate missing, entries length missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30343032020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c30393031303130303030303030":"":MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, entries present, invalid sig_alg) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"304a3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c30383132333132333539353900":"":MBEDTLS_ERR_X509_INVALID_ALG + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CRL ASN1 (TBSCertList, entries present, date in entry invalid) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"304a3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd190c30383132333132333539353900":"":MBEDTLS_ERR_X509_INVALID_DATE + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CRL ASN1 (TBSCertList, sig_alg present, sig_alg does not match) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30583047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c303831323331323335393539300d06092a864886f70d01010d0500":"":MBEDTLS_ERR_X509_SIG_MISMATCH X509 CRL ASN1 (TBSCertList, sig present, len mismatch) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"305d3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c303831323331323335393539300d06092a864886f70d01010e05000302000100":"":MBEDTLS_ERR_X509_INVALID_FORMAT + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH # 305c @@ -2167,35 +2167,35 @@ depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA: x509parse_crl:"305c3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c303831323331323335393539300d06092a864886f70d01010e050003020001":"CRL version \: 1\nissuer name \: CN=ABCD\nthis update \: 2009-01-01 00\:00\:00\nnext update \: 0000-00-00 00\:00\:00\nRevoked certificates\:\nserial number\: AB\:CD revocation date\: 2008-12-31 23\:59\:59\nsigned using \: RSA with SHA-224\n":0 X509 CRL ASN1 (TBSCertList, signatureValue missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30583047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c303831323331323335393539300d06092a864886f70d01010e0500":"":MBEDTLS_ERR_X509_INVALID_SIGNATURE + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, signatureAlgorithm missing) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30493047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd170c303831323331323335393539":"":MBEDTLS_ERR_X509_INVALID_ALG + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, single empty entry at end) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"30373035020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c30393031303130303030303030023000":"":MBEDTLS_ERR_X509_INVALID_SERIAL + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, good entry then empty entry at end) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"304b3049020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301630128202abcd170c3038313233313233353935393000":"":MBEDTLS_ERR_X509_INVALID_SERIAL + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, missing time in entry) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"304e3039020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030300630048202abcd300d06092a864886f70d01010e050003020001":"":MBEDTLS_ERR_X509_INVALID_DATE + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, missing time in entry at end) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"303b3039020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030300630048202abcd":"":MBEDTLS_ERR_X509_INVALID_DATE + MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CRL ASN1 (TBSCertList, invalid tag for time in entry) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"305c3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128202abcd190c303831323331323335393539300d06092a864886f70d01010e050003020001":"":MBEDTLS_ERR_X509_INVALID_DATE + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CRL ASN1 (TBSCertList, invalid tag for serial) -depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_RSA_C:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509parse_crl:"305c3047020100300d06092a864886f70d01010e0500300f310d300b0603550403130441424344170c303930313031303030303030301430128402abcd170c303831323331323335393539300d06092a864886f70d01010e050003020001":"":MBEDTLS_ERR_X509_INVALID_SERIAL + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CRL ASN1 (TBSCertList, no entries) From 210ea63d8b03d1d7bef19a5e76cba882da21a2b9 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 16:35:24 +0100 Subject: [PATCH 1261/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 05c46b96b..9dee934a6 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -173,7 +173,7 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, /** \brief Multiply two MPIs, returning the residue modulo the specified * modulus. * - * \note Currently handles the case when `m->int_rep` is + * \note Currently handles the case when `N->int_rep` is * MBEDTLS_MPI_MOD_REP_MONTGOMERY. * * The size of the operation is determined by \p N. \p A, \p B and \p X must @@ -193,7 +193,7 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, * \param[in] B The address of the second MPI. * \param[in] N The address of the modulus. Used to perform a modulo * operation on the result of the multiplication. - * \param[in,out] T Temporary storage of size at least 2 * AN_limbs + 1 + * \param[in,out] T Temporary storage of size at least 2 * N->limbs + 1 * limbs. Its initial content is unused and * its final content is indeterminate. * It must not alias or otherwise overlap any of the From 369bfb94c5d9b039d153daf3b5ad7e7d5bbb8f67 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 16 Dec 2022 10:47:15 -0500 Subject: [PATCH 1262/1574] comments and whitespace Signed-off-by: Glenn Strauss --- library/ecp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 508645754..824384826 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -774,7 +774,7 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, int parity_bit ) { /* y^2 = x^3 + ax + b - * sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) + * y = sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) * * Note: this method for extracting square root does not validate that w * was indeed a square so this function will return garbage in Y if X @@ -788,7 +788,7 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, int ret; mbedtls_mpi exp; - mbedtls_mpi_init(&exp); + mbedtls_mpi_init( &exp ); /* use Y to store intermediate results */ /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ @@ -824,7 +824,7 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, cleanup: - mbedtls_mpi_free(&exp); + mbedtls_mpi_free( &exp ); return( ret ); } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ From cbfd5e9db77c720e7f18b95be8f6ac90f6b6dd7b Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 16 Dec 2022 11:03:20 -0500 Subject: [PATCH 1263/1574] comment Signed-off-by: Glenn Strauss --- library/ecp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ecp.c b/library/ecp.c index 824384826..498a0c48b 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -773,7 +773,7 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, mbedtls_mpi *Y, int parity_bit ) { - /* y^2 = x^3 + ax + b + /* w = y^2 = x^3 + ax + b * y = sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) * * Note: this method for extracting square root does not validate that w From f723754f6db2014c738ded5b80ab00dca4634178 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 16 Dec 2022 16:10:36 +0000 Subject: [PATCH 1264/1574] Fix typos Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 4 ++-- scripts/mbedtls_dev/bignum_common.py | 4 ++-- scripts/mbedtls_dev/bignum_core.py | 2 +- scripts/mbedtls_dev/bignum_mod.py | 2 +- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index b079850d9..d9e16ee3b 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -623,7 +623,7 @@ static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) * \param[in] A The MPI to convert into Montgomery form. * Must have the same number of limbs as the modulus. * \param[in] N The address of the modulus, which gives the size of - * the base `R` = 2^(biL*m->limbs). + * the base `R` = 2^(biL*N->limbs). * \param[in] AN_limbs The number of limbs in \p X, \p A, \p N and \p rr. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. * This can be determined by calling @@ -661,7 +661,7 @@ void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, * \param[in] A The MPI to convert from Montgomery form. * Must have the same number of limbs as the modulus. * \param[in] N The address of the modulus, which gives the size of - * the base `R` = 2^(biL*m->limbs). + * the base `R` = 2^(biL*N->limbs). * \param[in] AN_limbs The number of limbs in \p X, \p A and \p N. * \param mm The Montgomery constant for \p N: -N^-1 mod 2^biL. * This can be determined by calling diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index dd4fc3684..c4efabfcc 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -249,7 +249,7 @@ class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" moduli = MODULI_DEFAULT # type: List[str] - mongtomgery_form_a = False + montgomery_form_a = False disallow_zero_a = False def __init__(self, val_n: str, val_a: str, val_b: str = "0", @@ -272,7 +272,7 @@ class ModOperationCommon(OperationCommon): @property def arg_a(self) -> str: - if self.mongtomgery_form_a: + if self.montgomery_form_a: value_a = self.to_montgomery(self.int_a) else: value_a = self.int_a diff --git a/scripts/mbedtls_dev/bignum_core.py b/scripts/mbedtls_dev/bignum_core.py index 3bd7f111c..24d37cbc7 100644 --- a/scripts/mbedtls_dev/bignum_core.py +++ b/scripts/mbedtls_dev/bignum_core.py @@ -757,7 +757,7 @@ class BignumCoreExpMod(BignumCoreTarget, bignum_common.ModOperationCommon): test_function = "mpi_core_exp_mod" test_name = "Core modular exponentiation (Mongtomery form only)" input_style = "fixed" - mongtomgery_form_a = True + montgomery_form_a = True def result(self) -> List[str]: # Result has to be given in Montgomery form too diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 642887354..25afe3053 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -76,7 +76,7 @@ class BignumModInvMont(bignum_common.ModOperationCommon, BignumModTarget): arity = 1 suffix = True disallow_zero_a = True - mongtomgery_form_a = True + montgomery_form_a = True def result(self) -> List[str]: result = bignum_common.invmod_positive(self.int_a, self.int_n) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 461b1f2b9..ae855e829 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -64,7 +64,7 @@ class BignumModRawInvPrime(bignum_common.ModOperationCommon, input_style = "arch_split" arity = 1 suffix = True - mongtomgery_form_a = True + montgomery_form_a = True disallow_zero_a = True def result(self) -> List[str]: From 9a3771e1b3dea833e8dce96d83cf38e07263ac80 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 19 Dec 2022 00:48:58 +0100 Subject: [PATCH 1265/1574] Don't touch the style of generated files Ideally the result of the generator would conform to the code style, but this would be difficult, especially with respect to the placement of line breaks in long logical lines. So, to avoid surprises when checking the style of generated files (which happens in releases and in long-time support branches), systematically skip generated files. Signed-off-by: Gilles Peskine --- scripts/code_style.py | 37 ++++++++++++++++++++++---- tests/scripts/check-generated-files.sh | 5 ++++ 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 68cd55620..8e82b93fb 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -22,9 +22,10 @@ change of code style. import argparse import io import os +import re import subprocess import sys -from typing import List +from typing import FrozenSet, List UNCRUSTIFY_SUPPORTED_VERSION = "0.75.1" CONFIG_FILE = ".uncrustify.cfg" @@ -32,10 +33,33 @@ UNCRUSTIFY_EXE = "uncrustify" UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] STDOUT_UTF8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') STDERR_UTF8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') +CHECK_GENERATED_FILES = "tests/scripts/check-generated-files.sh" def print_err(*args): print("Error: ", *args, file=STDERR_UTF8) +# Match FILENAME(s) in "check SCRIPT (FILENAME...)" +CHECK_CALL_RE = re.compile(r"\n\s*check\s+[^\s#$&*?;|]+([^\n#$&*?;|]+)", + re.ASCII) +def list_generated_files() -> FrozenSet[str]: + """Return the names of generated files. + + We don't reformat generated files, since the result might be different + from the output of the generator. Ideally the result of the generator + would conform to the code style, but this would be difficult, especially + with respect to the placement of line breaks in long logical lines. + """ + # Parse check-generated-files.sh to get an up-to-date list of + # generated files. Read the file rather than calling it so that + # this script only depends on Git, Python and uncrustify, and not other + # tools such as sh or grep which might not be available on Windows. + # This introduces a limitation: check-generated-files.sh must have + # the expected format and must list the files explicitly, not through + # wildcards or command substitution. + content = open(CHECK_GENERATED_FILES, encoding="utf-8").read() + checks = re.findall(CHECK_CALL_RE, content) + return frozenset(word for s in checks for word in s.split()) + def get_src_files() -> List[str]: """ Use git ls-files to get a list of the source files @@ -52,11 +76,14 @@ def get_src_files() -> List[str]: print_err("git ls-files returned: " + str(result.returncode)) return [] else: + generated_files = list_generated_files() src_files = str(result.stdout, "utf-8").split() - # Don't correct style for files in 3rdparty/ - src_files = list(filter( \ - lambda filename: not filename.startswith("3rdparty/"), \ - src_files)) + # Don't correct style for third-party files (and, for simplicity, + # companion files in the same subtree), or for automatically + # generated files (we're correcting the templates instead). + src_files = [filename for filename in src_files + if not (filename.startswith("3rdparty/") or + filename in generated_files)] return src_files def get_uncrustify_version() -> str: diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 3006ec7bf..281f1ad32 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -116,6 +116,11 @@ check() fi } +# Note: if the format of calls to the "check" function changes, update +# scripts/code_style.py accordingly. For generated C source files (*.h or *.c), +# the format must be "check SCRIPT FILENAME...". For other source files, +# any shell syntax is permitted (including e.g. command substitution). + check scripts/generate_errors.pl library/error.c check scripts/generate_query_config.pl programs/test/query_config.c check scripts/generate_driver_wrappers.py library/psa_crypto_driver_wrappers.c From 3b56d291472202f2be153d0d30ba50dbcdb4fd9d Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Mon, 19 Dec 2022 00:56:44 +0100 Subject: [PATCH 1266/1574] List all the places with instructions to generate those files Signed-off-by: Gilles Peskine --- tests/scripts/check-generated-files.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 281f1ad32..946794c1d 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -121,6 +121,11 @@ check() # the format must be "check SCRIPT FILENAME...". For other source files, # any shell syntax is permitted (including e.g. command substitution). +# Note: Instructions to generate those files are replicated in: +# - **/Makefile (to (re)build them with make) +# - **/CMakeLists.txt (to (re)build them with cmake) +# - scripts/make_generated_files.bat (to generate them under Windows) + check scripts/generate_errors.pl library/error.c check scripts/generate_query_config.pl programs/test/query_config.c check scripts/generate_driver_wrappers.py library/psa_crypto_driver_wrappers.c From c572246fa5c4fd67b03f349082b29bed8562cea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 19 Dec 2022 11:42:12 +0100 Subject: [PATCH 1267/1574] Use OPENSSL everywhere, not OPENSSL_CMD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These variables were both uses to select the default version of OpenSSL to use for tests: - when running compat.sh or ssl-opt.sh directly, OPENSSL_CMD was used; - when running all.sh, OPENSSL was used. This caused surprising situations if you had one but not the other set in your environment. For example I used to have OPENSSL_CMD set but not OPENSSL, so ssl-opt.sh was failing in some all.sh components but passing when I ran it manually in the same configuration and build, a rather unpleasant experience. The natural name would be OPENSSL, and that's what set in the Docker images used by the CI. However back in the 1.3.x days, that name was already used in library/Makefile, so it was preferable to pick a different one, hence OPENSSL_CMD. However the build system has not been using this name since at least Mbed TLS 2.0.0, so it's now free for use again (as demonstrated by the fact that it's been set in the CI without causing any trouble). So, unify things and use OPENSSL everywhere. Just leave an error message for the benefit of developers which might have OPENSSL_CMD, not OPENSSL, set in their environment from the old days. Signed-off-by: Manuel Pégourié-Gonnard --- tests/compat-in-docker.sh | 10 +++++----- tests/compat.sh | 27 +++++++++++++++++++-------- tests/scripts/all.sh | 10 +++++----- tests/scripts/basic-build-test.sh | 6 +++--- tests/ssl-opt-in-docker.sh | 10 +++++----- tests/ssl-opt.sh | 25 ++++++++++++++++++------- 6 files changed, 55 insertions(+), 33 deletions(-) diff --git a/tests/compat-in-docker.sh b/tests/compat-in-docker.sh index ad7358210..29c87877d 100755 --- a/tests/compat-in-docker.sh +++ b/tests/compat-in-docker.sh @@ -12,7 +12,7 @@ # # Notes for users # --------------- -# If OPENSSL_CMD, GNUTLS_CLI, or GNUTLS_SERV are specified the path must +# If OPENSSL, GNUTLS_CLI, or GNUTLS_SERV are specified the path must # correspond to an executable inside the Docker container. The special # values "next" (OpenSSL only) and "legacy" are also allowed as shorthand # for the installations inside the container. @@ -38,9 +38,9 @@ source tests/scripts/docker_env.sh -case "${OPENSSL_CMD:-default}" in - "legacy") export OPENSSL_CMD="/usr/local/openssl-1.0.1j/bin/openssl";; - "next") export OPENSSL_CMD="/usr/local/openssl-1.1.1a/bin/openssl";; +case "${OPENSSL:-default}" in + "legacy") export OPENSSL="/usr/local/openssl-1.0.1j/bin/openssl";; + "next") export OPENSSL="/usr/local/openssl-1.1.1a/bin/openssl";; *) ;; esac @@ -61,7 +61,7 @@ run_in_docker \ -e M_SRV \ -e GNUTLS_CLI \ -e GNUTLS_SERV \ - -e OPENSSL_CMD \ + -e OPENSSL \ -e OSSL_NO_DTLS \ tests/compat.sh \ $@ diff --git a/tests/compat.sh b/tests/compat.sh index 529c2c542..6f6d8f10e 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -39,10 +39,21 @@ SRVMEM=0 # default commands, can be overridden by the environment : ${M_SRV:=../programs/ssl/ssl_server2} : ${M_CLI:=../programs/ssl/ssl_client2} -: ${OPENSSL_CMD:=openssl} # OPENSSL would conflict with the build system +: ${OPENSSL:=openssl} # OPENSSL would conflict with the build system : ${GNUTLS_CLI:=gnutls-cli} : ${GNUTLS_SERV:=gnutls-serv} +# The OPENSSL variable used to be OPENSSL_CMD for historical reasons. +# To help the migration, error out if the old variable is set, +# but only if it has a different value than the new one. +if [ "${OPENSSL_CMD+set}" = set ]; then + # the variable is set, we can now check its value + if [ "$OPENSSL_CMD" != "$OPENSSL" ]; then + echo "Please use OPENSSL instead of OPENSSL_CMD." >&2 + exit 125 + fi +fi + # do we have a recent enough GnuTLS? if ( which $GNUTLS_CLI && which $GNUTLS_SERV ) >/dev/null 2>&1; then G_VER="$( $GNUTLS_CLI --version | head -n1 )" @@ -577,7 +588,7 @@ setup_arguments() # Mbed TLS wants >=1024, so force that for older versions. Don't force # it for newer versions, which reject a 1024-bit prime. Indifferently # force it or not for intermediate versions. - case $($OPENSSL_CMD version) in + case $($OPENSSL version) in "OpenSSL 1.0"*) O_SERVER_ARGS="$O_SERVER_ARGS -dhparam data_files/dhparams.pem" ;; @@ -601,7 +612,7 @@ setup_arguments() # OpenSSL 1.1.1f from Ubuntu 20.04. The syntax was only introduced in # OpenSSL 1.1.0 (21e0c1d23afff48601eb93135defddae51f7e2e3) and I can't find # a way to discover it from -help, so check the openssl version. - case $($OPENSSL_CMD version) in + case $($OPENSSL version) in "OpenSSL 0"*|"OpenSSL 1.0"*) :;; *) O_CLIENT_ARGS="$O_CLIENT_ARGS -cipher ALL@SECLEVEL=0" @@ -720,7 +731,7 @@ fi start_server() { case $1 in [Oo]pen*) - SERVER_CMD="$OPENSSL_CMD s_server $O_SERVER_ARGS" + SERVER_CMD="$OPENSSL s_server $O_SERVER_ARGS" ;; [Gg]nu*) SERVER_CMD="$GNUTLS_SERV $G_SERVER_ARGS --priority $G_SERVER_PRIO" @@ -810,7 +821,7 @@ run_client() { # run the command and interpret result case $1 in [Oo]pen*) - CLIENT_CMD="$OPENSSL_CMD s_client $O_CLIENT_ARGS -cipher $2" + CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $2" log "$CLIENT_CMD" echo "$CLIENT_CMD" > $CLI_OUT printf 'GET HTTP/1.0\r\n\r\n' | $CLIENT_CMD >> $CLI_OUT 2>&1 & @@ -945,8 +956,8 @@ if [ ! -x "$M_CLI" ]; then fi if echo "$PEERS" | grep -i openssl > /dev/null; then - if which "$OPENSSL_CMD" >/dev/null 2>&1; then :; else - echo "Command '$OPENSSL_CMD' not found" >&2 + if which "$OPENSSL" >/dev/null 2>&1; then :; else + echo "Command '$OPENSSL' not found" >&2 exit 1 fi fi @@ -1009,7 +1020,7 @@ for VERIFY in $VERIFIES; do # help isn't accurate as of 1.0.2g: it supports DTLS 1.2 # but doesn't list it. But the s_server help seems to be # accurate.) - if ! $OPENSSL_CMD s_server -help 2>&1 | grep -q "^ *-$O_MODE "; then + if ! $OPENSSL s_server -help 2>&1 | grep -q "^ *-$O_MODE "; then continue; fi diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 584906a63..0695a8c14 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -724,7 +724,7 @@ pre_check_tools () { *" test_"*) # To avoid setting OpenSSL and GnuTLS for each call to compat.sh # and ssl-opt.sh, we just export the variables they require. - export OPENSSL_CMD="$OPENSSL" + export OPENSSL="$OPENSSL" export GNUTLS_CLI="$GNUTLS_CLI" export GNUTLS_SERV="$GNUTLS_SERV" # Avoid passing --seed flag in every call to ssl-opt.sh @@ -1584,10 +1584,10 @@ component_test_full_cmake_clang () { tests/ssl-opt.sh -f 'Default\|ECJPAKE\|SSL async private' msg "test: compat.sh NULL (full config)" # ~ 2 min - env OPENSSL_CMD="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '^$' -f 'NULL' + env OPENSSL="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -e '^$' -f 'NULL' msg "test: compat.sh ARIA + ChachaPoly" - env OPENSSL_CMD="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA' + env OPENSSL="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA' } skip_suites_without_constant_flow () { @@ -1955,10 +1955,10 @@ component_test_no_use_psa_crypto_full_cmake_asan() { tests/compat.sh msg "test: compat.sh NULL (full minus MBEDTLS_USE_PSA_CRYPTO)" - env OPENSSL_CMD="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -f 'NULL' + env OPENSSL="$OPENSSL_LEGACY" GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" tests/compat.sh -f 'NULL' msg "test: compat.sh ARIA + ChachaPoly (full minus MBEDTLS_USE_PSA_CRYPTO)" - env OPENSSL_CMD="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA' + env OPENSSL="$OPENSSL_NEXT" tests/compat.sh -e '^$' -f 'ARIA\|CHACHA' } component_test_psa_crypto_config_accel_ecdsa () { diff --git a/tests/scripts/basic-build-test.sh b/tests/scripts/basic-build-test.sh index a96254fd5..4aeeb238f 100755 --- a/tests/scripts/basic-build-test.sh +++ b/tests/scripts/basic-build-test.sh @@ -69,7 +69,7 @@ fi # To avoid setting OpenSSL and GnuTLS for each call to compat.sh and ssl-opt.sh # we just export the variables they require -export OPENSSL_CMD="$OPENSSL" +export OPENSSL="$OPENSSL" export GNUTLS_CLI="$GNUTLS_CLI" export GNUTLS_SERV="$GNUTLS_SERV" @@ -125,13 +125,13 @@ echo '################ compat.sh ################' echo echo '#### compat.sh: legacy (null)' - OPENSSL_CMD="$OPENSSL_LEGACY" \ + OPENSSL="$OPENSSL_LEGACY" \ GNUTLS_CLI="$GNUTLS_LEGACY_CLI" GNUTLS_SERV="$GNUTLS_LEGACY_SERV" \ sh compat.sh -e '^$' -f 'NULL' echo echo '#### compat.sh: next (ARIA, ChaCha)' - OPENSSL_CMD="$OPENSSL_NEXT" sh compat.sh -e '^$' -f 'ARIA\|CHACHA' + OPENSSL="$OPENSSL_NEXT" sh compat.sh -e '^$' -f 'ARIA\|CHACHA' echo } | tee compat-test-$TEST_OUTPUT echo '^^^^^^^^^^^^^^^^ compat.sh ^^^^^^^^^^^^^^^^' diff --git a/tests/ssl-opt-in-docker.sh b/tests/ssl-opt-in-docker.sh index c8c669725..159be4c50 100755 --- a/tests/ssl-opt-in-docker.sh +++ b/tests/ssl-opt-in-docker.sh @@ -12,7 +12,7 @@ # # Notes for users # --------------- -# If OPENSSL_CMD, GNUTLS_CLI, or GNUTLS_SERV are specified, the path must +# If OPENSSL, GNUTLS_CLI, or GNUTLS_SERV are specified, the path must # correspond to an executable inside the Docker container. The special # values "next" and "legacy" are also allowed as shorthand for the # installations inside the container. @@ -38,9 +38,9 @@ source tests/scripts/docker_env.sh -case "${OPENSSL_CMD:-default}" in - "legacy") export OPENSSL_CMD="/usr/local/openssl-1.0.1j/bin/openssl";; - "next") export OPENSSL_CMD="/usr/local/openssl-1.1.1a/bin/openssl";; +case "${OPENSSL:-default}" in + "legacy") export OPENSSL="/usr/local/openssl-1.0.1j/bin/openssl";; + "next") export OPENSSL="/usr/local/openssl-1.1.1a/bin/openssl";; *) ;; esac @@ -62,6 +62,6 @@ run_in_docker \ -e P_PXY \ -e GNUTLS_CLI \ -e GNUTLS_SERV \ - -e OPENSSL_CMD \ + -e OPENSSL \ tests/ssl-opt.sh \ $@ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index 0d4ce6e18..0c1c03599 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -46,11 +46,22 @@ fi : ${P_CLI:=../programs/ssl/ssl_client2} : ${P_PXY:=../programs/test/udp_proxy} : ${P_QUERY:=../programs/test/query_compile_time_config} -: ${OPENSSL_CMD:=openssl} # OPENSSL would conflict with the build system +: ${OPENSSL:=openssl} : ${GNUTLS_CLI:=gnutls-cli} : ${GNUTLS_SERV:=gnutls-serv} : ${PERL:=perl} +# The OPENSSL variable used to be OPENSSL_CMD for historical reasons. +# To help the migration, error out if the old variable is set, +# but only if it has a different value than the new one. +if [ "${OPENSSL_CMD+set}" = set ]; then + # the variable is set, we can now check its value + if [ "$OPENSSL_CMD" != "$OPENSSL" ]; then + echo "Please use OPENSSL instead of OPENSSL_CMD." >&2 + exit 125 + fi +fi + guess_config_name() { if git diff --quiet ../include/mbedtls/mbedtls_config.h 2>/dev/null; then echo "default" @@ -62,8 +73,8 @@ guess_config_name() { : ${MBEDTLS_TEST_CONFIGURATION:="$(guess_config_name)"} : ${MBEDTLS_TEST_PLATFORM:="$(uname -s | tr -c \\n0-9A-Za-z _)-$(uname -m | tr -c \\n0-9A-Za-z _)"} -O_SRV="$OPENSSL_CMD s_server -www -cert data_files/server5.crt -key data_files/server5.key" -O_CLI="echo 'GET / HTTP/1.0' | $OPENSSL_CMD s_client" +O_SRV="$OPENSSL s_server -www -cert data_files/server5.crt -key data_files/server5.key" +O_CLI="echo 'GET / HTTP/1.0' | $OPENSSL s_client" G_SRV="$GNUTLS_SERV --x509certfile data_files/server5.crt --x509keyfile data_files/server5.key" G_CLI="echo 'GET / HTTP/1.0' | $GNUTLS_CLI --x509cafile data_files/test-ca_cat12.crt" TCP_CLIENT="$PERL scripts/tcp_client.pl" @@ -509,7 +520,7 @@ requires_hash_alg() { # skip next test if OpenSSL doesn't support FALLBACK_SCSV requires_openssl_with_fallback_scsv() { if [ -z "${OPENSSL_HAS_FBSCSV:-}" ]; then - if $OPENSSL_CMD s_client -help 2>&1 | grep fallback_scsv >/dev/null + if $OPENSSL s_client -help 2>&1 | grep fallback_scsv >/dev/null then OPENSSL_HAS_FBSCSV="YES" else @@ -1639,8 +1650,8 @@ if [ "$MEMCHECK" -gt 0 ]; then exit 1 fi fi -if which $OPENSSL_CMD >/dev/null 2>&1; then :; else - echo "Command '$OPENSSL_CMD' not found" +if which $OPENSSL >/dev/null 2>&1; then :; else + echo "Command '$OPENSSL' not found" exit 1 fi @@ -1695,7 +1706,7 @@ fi # OpenSSL 1.1.1f from Ubuntu 20.04. The syntax was only introduced in # OpenSSL 1.1.0 (21e0c1d23afff48601eb93135defddae51f7e2e3) and I can't find # a way to discover it from -help, so check the openssl version. -case $($OPENSSL_CMD version) in +case $($OPENSSL version) in "OpenSSL 0"*|"OpenSSL 1.0"*) :;; *) O_CLI="$O_CLI -cipher ALL@SECLEVEL=0" From fcabc28cfc70057a9556040a987ca2d370d9fc35 Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 19 Dec 2022 19:30:54 -0500 Subject: [PATCH 1268/1574] use MPI_ECP_* macros in mbedtls_ecp_sw_derive_y() Signed-off-by: Glenn Strauss --- library/ecp.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 498a0c48b..e7fa6a8f4 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -793,19 +793,15 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, /* use Y to store intermediate results */ /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ /* x^2 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( Y, X, X ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + MPI_ECP_MUL( Y, X, X ); /* x^2 + a */ if( !grp->A.p ) /* special case for A = -3; temporarily set exp = -3 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &exp, -3 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( Y, Y, grp->A.p ? &grp->A : &exp ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + MPI_ECP_LSET( &exp, -3 ); + MPI_ECP_ADD( Y, Y, grp->A.p ? &grp->A : &exp ); /* (x^2 + a)x */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( Y, Y, X ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + MPI_ECP_MUL( Y, Y, X ); /* (x^2 + a)x + b */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( Y, Y, &grp->B ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( Y, Y, &grp->P ) ); + MPI_ECP_ADD( Y, Y, &grp->B ); /* w = y^2 */ /* Y contains y^2 intermediate result */ /* exp = ((p+1)/4) */ From 452416121dee07aa0cf3082fe1aba1fcee016acb Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Mon, 19 Dec 2022 19:37:07 -0500 Subject: [PATCH 1269/1574] move mbedtls_ecp_sw_derive_y after MPI_ECP_ macros Signed-off-by: Glenn Strauss --- library/ecp.c | 111 +++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 52 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index e7fa6a8f4..5f814f3cf 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -771,58 +771,7 @@ cleanup: static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, const mbedtls_mpi *X, mbedtls_mpi *Y, - int parity_bit ) -{ - /* w = y^2 = x^3 + ax + b - * y = sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) - * - * Note: this method for extracting square root does not validate that w - * was indeed a square so this function will return garbage in Y if X - * does not correspond to a point on the curve. - */ - - /* Check prerequisite p = 3 mod 4 */ - if( mbedtls_mpi_get_bit( &grp->P, 0 ) != 1 || - mbedtls_mpi_get_bit( &grp->P, 1 ) != 1 ) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); - - int ret; - mbedtls_mpi exp; - mbedtls_mpi_init( &exp ); - - /* use Y to store intermediate results */ - /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ - /* x^2 */ - MPI_ECP_MUL( Y, X, X ); - /* x^2 + a */ - if( !grp->A.p ) /* special case for A = -3; temporarily set exp = -3 */ - MPI_ECP_LSET( &exp, -3 ); - MPI_ECP_ADD( Y, Y, grp->A.p ? &grp->A : &exp ); - /* (x^2 + a)x */ - MPI_ECP_MUL( Y, Y, X ); - /* (x^2 + a)x + b */ - MPI_ECP_ADD( Y, Y, &grp->B ); - - /* w = y^2 */ /* Y contains y^2 intermediate result */ - /* exp = ((p+1)/4) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &exp, &grp->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &exp, 2 ) ); - /* sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( Y, Y /*y^2*/, &exp, &grp->P, NULL ) ); - - /* check parity bit match or else invert Y */ - /* This quick inversion implementation is valid because Y != 0 for all - * Short Weierstrass curves supported by mbedtls, as each supported curve - * has an order that is a large prime, so each supported curve does not - * have any point of order 2, and a point with Y == 0 would be of order 2 */ - if( mbedtls_mpi_get_bit( Y, 0 ) != parity_bit ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( Y, &grp->P, Y ) ); - -cleanup: - - mbedtls_mpi_free( &exp ); - return( ret ); -} + int parity_bit ); #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ /* @@ -1274,6 +1223,64 @@ cleanup: #define MPI_ECP_COND_SWAP( X, Y, cond ) \ MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_swap( (X), (Y), (cond) ) ) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) +static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, + const mbedtls_mpi *X, + mbedtls_mpi *Y, + int parity_bit ) +{ + /* w = y^2 = x^3 + ax + b + * y = sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) + * + * Note: this method for extracting square root does not validate that w + * was indeed a square so this function will return garbage in Y if X + * does not correspond to a point on the curve. + */ + + /* Check prerequisite p = 3 mod 4 */ + if( mbedtls_mpi_get_bit( &grp->P, 0 ) != 1 || + mbedtls_mpi_get_bit( &grp->P, 1 ) != 1 ) + return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + + int ret; + mbedtls_mpi exp; + mbedtls_mpi_init( &exp ); + + /* use Y to store intermediate results */ + /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ + /* x^2 */ + MPI_ECP_MUL( Y, X, X ); + /* x^2 + a */ + if( !grp->A.p ) /* special case for A = -3; temporarily set exp = -3 */ + MPI_ECP_LSET( &exp, -3 ); + MPI_ECP_ADD( Y, Y, grp->A.p ? &grp->A : &exp ); + /* (x^2 + a)x */ + MPI_ECP_MUL( Y, Y, X ); + /* (x^2 + a)x + b */ + MPI_ECP_ADD( Y, Y, &grp->B ); + + /* w = y^2 */ /* Y contains y^2 intermediate result */ + /* exp = ((p+1)/4) */ + MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &exp, &grp->P, 1 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &exp, 2 ) ); + /* sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) */ + MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( Y, Y /*y^2*/, &exp, &grp->P, NULL ) ); + + /* check parity bit match or else invert Y */ + /* This quick inversion implementation is valid because Y != 0 for all + * Short Weierstrass curves supported by mbedtls, as each supported curve + * has an order that is a large prime, so each supported curve does not + * have any point of order 2, and a point with Y == 0 would be of order 2 */ + if( mbedtls_mpi_get_bit( Y, 0 ) != parity_bit ) + MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( Y, &grp->P, Y ) ); + +cleanup: + + mbedtls_mpi_free( &exp ); + return( ret ); +} +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ + #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* * For curves in short Weierstrass form, we do all the internal operations in From 8b6d14be8bd75bc613e265f22342e40ffe65d46f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 20 Dec 2022 10:02:52 +0100 Subject: [PATCH 1270/1574] Extract common code for computing X^3 + AX + B MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- library/ecp.c | 64 +++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 27 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 5f814f3cf..70b2283bc 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -1224,6 +1224,39 @@ cleanup: MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_swap( (X), (Y), (cond) ) ) #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) +/* + * Computes the right-hand side of the Short Weierstrass equation + * RHS = X^3 + A X + B + */ +static int ecp_sw_rhs( const mbedtls_ecp_group *grp, + mbedtls_mpi *rhs, + const mbedtls_mpi *X ) +{ + int ret; + + /* Compute X^3 + A X + B as X (X^2 + A) + B */ + MPI_ECP_SQR( rhs, X ); + + /* Special case for A = -3 */ + if( grp->A.p == NULL ) + { + MPI_ECP_SUB_INT( rhs, rhs, 3 ); + } + else + { + MPI_ECP_ADD( rhs, rhs, &grp->A ); + } + + MPI_ECP_MUL( rhs, rhs, X ); + MPI_ECP_ADD( rhs, rhs, &grp->B ); + +cleanup: + return( ret ); +} + +/* + * Derive Y from X and a parity bit + */ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, const mbedtls_mpi *X, mbedtls_mpi *Y, @@ -1246,18 +1279,8 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, mbedtls_mpi exp; mbedtls_mpi_init( &exp ); - /* use Y to store intermediate results */ - /* y^2 = x^3 + ax + b = (x^2 + a)x + b */ - /* x^2 */ - MPI_ECP_MUL( Y, X, X ); - /* x^2 + a */ - if( !grp->A.p ) /* special case for A = -3; temporarily set exp = -3 */ - MPI_ECP_LSET( &exp, -3 ); - MPI_ECP_ADD( Y, Y, grp->A.p ? &grp->A : &exp ); - /* (x^2 + a)x */ - MPI_ECP_MUL( Y, Y, X ); - /* (x^2 + a)x + b */ - MPI_ECP_ADD( Y, Y, &grp->B ); + /* use Y to store intermediate result, actually w above */ + MBEDTLS_MPI_CHK( ecp_sw_rhs( grp, Y, X ) ); /* w = y^2 */ /* Y contains y^2 intermediate result */ /* exp = ((p+1)/4) */ @@ -2698,23 +2721,10 @@ static int ecp_check_pubkey_sw( const mbedtls_ecp_group *grp, const mbedtls_ecp_ /* * YY = Y^2 - * RHS = X (X^2 + A) + B = X^3 + A X + B + * RHS = X^3 + A X + B */ MPI_ECP_SQR( &YY, &pt->Y ); - MPI_ECP_SQR( &RHS, &pt->X ); - - /* Special case for A = -3 */ - if( grp->A.p == NULL ) - { - MPI_ECP_SUB_INT( &RHS, &RHS, 3 ); - } - else - { - MPI_ECP_ADD( &RHS, &RHS, &grp->A ); - } - - MPI_ECP_MUL( &RHS, &RHS, &pt->X ); - MPI_ECP_ADD( &RHS, &RHS, &grp->B ); + MBEDTLS_MPI_CHK( ecp_sw_rhs( grp, &RHS, &pt->X ) ); if( MPI_ECP_CMP( &YY, &RHS ) != 0 ) ret = MBEDTLS_ERR_ECP_INVALID_KEY; From efde9d58de3ccc89db74755433ad11e9b91b40bd Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Tue, 20 Dec 2022 04:20:12 -0500 Subject: [PATCH 1271/1574] remove duplicated consecutive preproc directives Signed-off-by: Glenn Strauss --- library/ecp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index 70b2283bc..57ccf591a 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -1224,6 +1224,7 @@ cleanup: MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_swap( (X), (Y), (cond) ) ) #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) + /* * Computes the right-hand side of the Short Weierstrass equation * RHS = X^3 + A X + B @@ -1302,9 +1303,7 @@ cleanup: mbedtls_mpi_free( &exp ); return( ret ); } -#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* * For curves in short Weierstrass form, we do all the internal operations in * Jacobian coordinates. From e080cc31f2fed0004a25f6ebec9d6888882986a1 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 20 Dec 2022 11:59:08 +0000 Subject: [PATCH 1272/1574] pylint: Set a minimum duplicate match to 10 lines. This patch adjusts pylint to disregard duplicate matches for up to 10 lines. The number is chosen to permit overriding with up to 3 identical lines for `def arguments(self)` and `def result(self)` while two more lines for `arity` and `input_style` in the bignum test suite. Signed-off-by: Minos Galanakis --- .pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/.pylintrc b/.pylintrc index 10c93f879..f395fb91e 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,5 +1,6 @@ [MASTER] init-hook='import sys; sys.path.append("scripts")' +min-similarity-lines=10 [BASIC] # We're ok with short funtion argument names. From 7796cc4f24245a98a2508f298294c0fc4e6b4577 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 20 Dec 2022 13:12:23 +0000 Subject: [PATCH 1273/1574] Fix overflow in mbedtls_timing_hardclock Signed-off-by: Dave Rodgman --- programs/test/benchmark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 6313c522a..1ad2034d4 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -398,7 +398,7 @@ static unsigned long mbedtls_timing_hardclock( void ) } gettimeofday( &tv_cur, NULL ); - return( ( tv_cur.tv_sec - tv_init.tv_sec ) * 1000000 + return( ( tv_cur.tv_sec - tv_init.tv_sec ) * 1000000U + ( tv_cur.tv_usec - tv_init.tv_usec ) ); } #endif /* !HAVE_HARDCLOCK */ From 327b69c8a25350c292f89804ffb47a560f585d9b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 20 Dec 2022 13:16:34 +0000 Subject: [PATCH 1274/1574] Add Changelog entry Signed-off-by: Dave Rodgman --- ChangeLog.d/fix-gettimeofday-overflow.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix-gettimeofday-overflow.txt diff --git a/ChangeLog.d/fix-gettimeofday-overflow.txt b/ChangeLog.d/fix-gettimeofday-overflow.txt new file mode 100644 index 000000000..b7e10d2b0 --- /dev/null +++ b/ChangeLog.d/fix-gettimeofday-overflow.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix possible integer overflow in mbedtls_timing_hardclock(), which + could cause a crash in programs/test/benchmark. From 9db81e9cca84d01414027a80e78a8de1b33aca28 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 13 Dec 2022 10:51:37 +0100 Subject: [PATCH 1275/1574] Add mod_mul function Signed-off-by: Gabor Mezei --- library/bignum_mod.c | 22 ++++++++++++++++++++++ library/bignum_mod.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 31e18e741..0f511335d 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -176,6 +176,28 @@ exit: /* BEGIN MERGE SLOT 2 */ +int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ) +{ + if( N->limbs == 0 ) + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + + if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + + mbedtls_mpi_uint *T = mbedtls_calloc( N->limbs * 2 + 1, ciL ); + if( !T ) + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + + mbedtls_mpi_mod_raw_mul( X->p, A->p, B->p, N, T ); + + mbedtls_free( T ); + + return( 0 ); +} + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 95aaacc4d..f8c71d01b 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -217,6 +217,40 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /* BEGIN MERGE SLOT 2 */ +/** \brief Multiply two residues, returning the residue modulo the specified + * modulus. + * + * \note Currenty handles the case when `m->int_rep` is + * MBEDTLS_MPI_MOD_REP_MONTGOMERY. + * + * The size of the operation is determined by \p N. \p A and \p B must have + * the same number of limbs as \p N. + * + * \p X may be aliased to \p A or \p B, or even both, but may not overlap + * either otherwise. They may not alias \p N (since they must be in canonical + * form, they cannot == \p N). + * + * \param[out] X The address of the result MPI. + * This must be initialized. Must have enough limbs to + * store the full value of the result. + * On successful completion, \p X contains the result of + * the multiplication `A * B * R^-1` mod N where + * `R = 2^(biL *N->limbs)`. + * \param[in] A The address of the first MPI. This must be initialized. + * \param[in] B The address of the second MPI. This must be initialized. + * \param[in] N The address of the modulus. Used to perform a modulo + * operation on the result of the multiplication. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if all the parameters does not + * have the same number of limbs or \p N is invalid. + * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. + */ +int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N ); + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From eca74668c78e449dac6f05fc544f30a80a0a6313 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 13 Dec 2022 10:53:50 +0100 Subject: [PATCH 1276/1574] Add tests for mod_mul Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod.py | 19 ++ tests/suites/test_suite_bignum_mod.function | 186 +++++++++++++++++++ tests/suites/test_suite_bignum_mod.misc.data | 7 + 3 files changed, 212 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 25afe3053..e0fc15939 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -31,6 +31,25 @@ class BignumModTarget(test_data_generation.BaseTarget): # BEGIN MERGE SLOT 2 +class BignumModMul(bignum_common.ModOperationCommon, + BignumModTarget): + """Test cases for bignum mpi_mod_mul().""" + symbol = "*" + test_function = "mpi_mod_mul" + test_name = "mbedtls_mpi_mod_mul" + input_style = "arch_split" + arity = 2 + + def arguments(self) -> List[str]: + return [bignum_common.quote_str(n) for n in [self.arg_a, + self.arg_b, + self.arg_n] + ] + self.result() + + def result(self) -> List[str]: + result = (self.int_a * self.int_b) % self.int_n + return [self.format_result(result)] + # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 79f5134a9..7c407a8a6 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -2,6 +2,7 @@ #include "mbedtls/bignum.h" #include "mbedtls/entropy.h" #include "bignum_mod.h" +#include "bignum_mod_raw.h" #include "constant_time_internal.h" #include "test/constant_flow.h" @@ -102,6 +103,191 @@ exit: /* BEGIN MERGE SLOT 2 */ +/* BEGIN_CASE */ +void mpi_mod_mul( char * input_A, + char * input_B, + char * input_N, + char * result ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *R = NULL; + size_t limbs_A; + size_t limbs_B; + size_t limbs_N; + size_t limbs_R; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &R, &limbs_R, result ), 0 ); + + const size_t limbs = limbs_N; + const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( limbs_A, limbs ); + TEST_EQUAL( limbs_B, limbs ); + TEST_EQUAL( limbs_R, limbs ); + + ASSERT_ALLOC( X, limbs ); + + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + + mbedtls_mpi_mod_residue rA; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rA, &m, A, limbs ), 0 ); + + mbedtls_mpi_mod_residue rB; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rB, &m, B, limbs ), 0 ); + + mbedtls_mpi_mod_residue rX; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); + + /* Convert to Montgomery representation */ + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rA.p, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rB.p, &m ), 0 ); + + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* alias X to A */ + memcpy( rX.p, rA.p, bytes ); + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rB, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* alias X to B */ + memcpy( rX.p, rB.p, bytes ); + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rX, &m ), 0); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* A == B: alias A and B */ + if( memcmp( rA.p, rB.p, bytes ) == 0 ) + { + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rA, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* X, A, B all aliased together */ + memcpy( rX.p, rA.p, bytes ); + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rX, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + } + + /* A != B: test B * A */ + else + { + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rA, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* B * A: alias X to A */ + memcpy( rX.p, rA.p, bytes ); + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rX, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + + /* B + A: alias X to B */ + memcpy( rX.p, rB.p, bytes ); + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rA, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); + ASSERT_COMPARE( rX.p, bytes, R, bytes ); + } + +exit: + mbedtls_mpi_mod_residue_release( &rA ); + mbedtls_mpi_mod_residue_release( &rB ); + mbedtls_mpi_mod_residue_release( &rX ); + mbedtls_mpi_mod_modulus_free( &m ); + + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( N ); + mbedtls_free( X ); + mbedtls_free( R ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_mul_neg( char * input_A, + char * input_B, + char * input_N, + char * result, + int exp_ret ) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *B = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_uint *R = NULL; + size_t limbs_A = 0; + size_t limbs_B = 0; + size_t limbs_N = 0; + size_t limbs_X = 0; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init( &m ); + + mbedtls_mpi_mod_modulus fake_m; + mbedtls_mpi_mod_modulus_init( &fake_m ); + + TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_core( &R, &limbs_X, result ), 0 ); + + ASSERT_ALLOC( X, limbs_X ); + + TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( + &m, N, limbs_N, + MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + + mbedtls_mpi_mod_residue rA; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rA, &m, A, limbs_N ), 0 ); + rA.limbs = limbs_A; + + mbedtls_mpi_mod_residue rB; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rB, &m, B, limbs_N ), 0 ); + rB.limbs = limbs_B; + + mbedtls_mpi_mod_residue rX; + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs_N ), 0 ); + rX.limbs = limbs_X; + + /* Convert to Montgomery representation */ + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rA.p, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rB.p, &m ), 0 ); + + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), exp_ret ); + + /* Check when m is not initialized */ + TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &fake_m ), + MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + +exit: + mbedtls_mpi_mod_residue_release( &rA ); + mbedtls_mpi_mod_residue_release( &rB ); + mbedtls_mpi_mod_residue_release( &rX ); + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free( &fake_m ); + + mbedtls_free( A ); + mbedtls_free( B ); + mbedtls_free( N ); + mbedtls_free( X ); + mbedtls_free( R ); +} +/* END_CASE */ + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ diff --git a/tests/suites/test_suite_bignum_mod.misc.data b/tests/suites/test_suite_bignum_mod.misc.data index 6240e214b..e36921141 100644 --- a/tests/suites/test_suite_bignum_mod.misc.data +++ b/tests/suites/test_suite_bignum_mod.misc.data @@ -12,7 +12,14 @@ mpi_mod_setup:MBEDTLS_MPI_MOD_REP_MONTGOMERY:0 # END MERGE SLOT 1 # BEGIN MERGE SLOT 2 +Test mpi_mod_mul #1 N->limbs != A->limbs +mpi_mod_mul_neg:"1":"00000000000000000000000000000000":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA +Test mpi_mod_mul #2 N->limbs != B->limbs +mpi_mod_mul_neg:"1234567890abcdef1234567890abcdef":"0":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA + +Test mpi_mod_mul #3 N->limbs != X->limbs +mpi_mod_mul_neg:"1234567890abcdef1234567890abcdef":"00000000000000000000000000000000":"f0000000000000000000000000000000":"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA # END MERGE SLOT 2 # BEGIN MERGE SLOT 3 From 6a31b7252d610884d770bab9ffcd1b80936fb415 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 15:24:03 +0100 Subject: [PATCH 1277/1574] Fix documentation Signed-off-by: Gabor Mezei --- library/bignum_mod.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index f8c71d01b..d2f6cee5e 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -220,29 +220,29 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); /** \brief Multiply two residues, returning the residue modulo the specified * modulus. * - * \note Currenty handles the case when `m->int_rep` is + * \note Currently handles the case when `N->int_rep` is * MBEDTLS_MPI_MOD_REP_MONTGOMERY. * - * The size of the operation is determined by \p N. \p A and \p B must have - * the same number of limbs as \p N. + * The size of the operation is determined by \p N. \p A, \p B and \p X must + * all be associated with the modulus \p N and must all have the same number + * of limbs as \p N. * * \p X may be aliased to \p A or \p B, or even both, but may not overlap * either otherwise. They may not alias \p N (since they must be in canonical * form, they cannot == \p N). * - * \param[out] X The address of the result MPI. - * This must be initialized. Must have enough limbs to - * store the full value of the result. + * \param[out] X The address of the result MPI. Must have the same + * number of limbs as \p N. * On successful completion, \p X contains the result of * the multiplication `A * B * R^-1` mod N where - * `R = 2^(biL *N->limbs)`. - * \param[in] A The address of the first MPI. This must be initialized. - * \param[in] B The address of the second MPI. This must be initialized. + * `R = 2^(biL * N->limbs)`. + * \param[in] A The address of the first MPI. + * \param[in] B The address of the second MPI. * \param[in] N The address of the modulus. Used to perform a modulo * operation on the result of the multiplication. * * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if all the parameters does not + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if all the parameters do not * have the same number of limbs or \p N is invalid. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. */ From 2840884c35e966fe7ebc97576feccaecf6509cee Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 15:24:35 +0100 Subject: [PATCH 1278/1574] Typo Signed-off-by: Gabor Mezei --- library/bignum_mod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 0f511335d..30289aaf0 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -187,7 +187,7 @@ int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - mbedtls_mpi_uint *T = mbedtls_calloc( N->limbs * 2 + 1, ciL ); + mbedtls_mpi_uint *T = mbedtls_calloc( N->limbs * 2 + 1, ciL ); if( !T ) return MBEDTLS_ERR_MPI_ALLOC_FAILED; From 77b877d5a79277e445a15aed73b5c735fa074c63 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 15:25:02 +0100 Subject: [PATCH 1279/1574] Generate operands in Mongomery representation for the test function Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod.py | 8 ++++---- tests/suites/test_suite_bignum_mod.function | 12 ------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index e0fc15939..1960723f1 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -41,14 +41,14 @@ class BignumModMul(bignum_common.ModOperationCommon, arity = 2 def arguments(self) -> List[str]: - return [bignum_common.quote_str(n) for n in [self.arg_a, - self.arg_b, - self.arg_n] + return [self.format_result(self.to_montgomery(self.int_a)), + self.format_result(self.to_montgomery(self.int_b)), + bignum_common.quote_str(self.arg_n) ] + self.result() def result(self) -> List[str]: result = (self.int_a * self.int_b) % self.int_n - return [self.format_result(result)] + return [self.format_result(self.to_montgomery(result))] # END MERGE SLOT 2 diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 7c407a8a6..51a910fd1 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -149,37 +149,28 @@ void mpi_mod_mul( char * input_A, mbedtls_mpi_mod_residue rX; TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); - /* Convert to Montgomery representation */ - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rA.p, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rB.p, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* alias X to A */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rB, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* alias X to B */ memcpy( rX.p, rB.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rX, &m ), 0); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* A == B: alias A and B */ if( memcmp( rA.p, rB.p, bytes ) == 0 ) { TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rA, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* X, A, B all aliased together */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rX, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); } @@ -187,19 +178,16 @@ void mpi_mod_mul( char * input_A, else { TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rA, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* B * A: alias X to A */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rX, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); /* B + A: alias X to B */ memcpy( rX.p, rB.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rA, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( rX.p, &m ), 0 ); ASSERT_COMPARE( rX.p, bytes, R, bytes ); } From 809baef2dd91dc344a89170485ffea9aeaad33f3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 16:31:59 +0100 Subject: [PATCH 1280/1574] Use helper functions to simplify test code Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod.function | 124 ++++++++------------ 1 file changed, 50 insertions(+), 74 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 51a910fd1..6e25ff720 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -109,99 +109,89 @@ void mpi_mod_mul( char * input_A, char * input_N, char * result ) { - mbedtls_mpi_uint *A = NULL; - mbedtls_mpi_uint *B = NULL; - mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *R = NULL; - size_t limbs_A; - size_t limbs_B; - size_t limbs_N; - size_t limbs_R; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &R, &limbs_R, result ), 0 ); - - const size_t limbs = limbs_N; - const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - - TEST_EQUAL( limbs_A, limbs ); - TEST_EQUAL( limbs_B, limbs ); - TEST_EQUAL( limbs_R, limbs ); - - ASSERT_ALLOC( X, limbs ); - - TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( - &m, N, limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), + 0 ); mbedtls_mpi_mod_residue rA; - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rA, &m, A, limbs ), 0 ); + TEST_EQUAL( test_read_residue( &rA, &m, input_A, 0 ), 0 ); mbedtls_mpi_mod_residue rB; - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rB, &m, B, limbs ), 0 ); + TEST_EQUAL( test_read_residue( &rB, &m, input_B, 0 ), 0 ); + + mbedtls_mpi_mod_residue rR; + TEST_EQUAL( test_read_residue( &rR, &m, result, 0 ), 0 ); + + const size_t limbs = m.limbs; + const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + + TEST_EQUAL( rA.limbs, limbs ); + TEST_EQUAL( rB.limbs, limbs ); + TEST_EQUAL( rR.limbs, limbs ); + + ASSERT_ALLOC( X, limbs ); mbedtls_mpi_mod_residue rX; TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* alias X to A */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rB, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* alias X to B */ memcpy( rX.p, rB.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rX, &m ), 0); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* A == B: alias A and B */ if( memcmp( rA.p, rB.p, bytes ) == 0 ) { TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* X, A, B all aliased together */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rX, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); } /* A != B: test B * A */ else { TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* B * A: alias X to A */ memcpy( rX.p, rA.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rX, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); /* B + A: alias X to B */ memcpy( rX.p, rB.p, bytes ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, R, bytes ); + ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); } exit: mbedtls_mpi_mod_residue_release( &rA ); mbedtls_mpi_mod_residue_release( &rB ); + mbedtls_mpi_mod_residue_release( &rR ); mbedtls_mpi_mod_residue_release( &rX ); mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( A ); - mbedtls_free( B ); - mbedtls_free( N ); + mbedtls_free( rA.p ); + mbedtls_free( rB.p ); + mbedtls_free( rR.p ); mbedtls_free( X ); - mbedtls_free( R ); + mbedtls_free( (mbedtls_mpi_uint *) m.p ); } /* END_CASE */ @@ -212,51 +202,36 @@ void mpi_mod_mul_neg( char * input_A, char * result, int exp_ret ) { - mbedtls_mpi_uint *A = NULL; - mbedtls_mpi_uint *B = NULL; - mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *X = NULL; - mbedtls_mpi_uint *R = NULL; - size_t limbs_A = 0; - size_t limbs_B = 0; - size_t limbs_N = 0; - size_t limbs_X = 0; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); - mbedtls_mpi_mod_modulus fake_m; - mbedtls_mpi_mod_modulus_init( &fake_m ); - - TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &limbs_A, input_A ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &B, &limbs_B, input_B ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &N, &limbs_N, input_N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &R, &limbs_X, result ), 0 ); - - ASSERT_ALLOC( X, limbs_X ); - - TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( - &m, N, limbs_N, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), + 0 ); mbedtls_mpi_mod_residue rA; - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rA, &m, A, limbs_N ), 0 ); - rA.limbs = limbs_A; + TEST_EQUAL( test_read_residue( &rA, &m, input_A, 1 ), 0 ); mbedtls_mpi_mod_residue rB; - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rB, &m, B, limbs_N ), 0 ); - rB.limbs = limbs_B; + TEST_EQUAL( test_read_residue( &rB, &m, input_B, 1 ), 0 ); + + mbedtls_mpi_mod_residue rR; + TEST_EQUAL( test_read_residue( &rR, &m, result, 1 ), 0 ); + + const size_t limbs = m.limbs; + + ASSERT_ALLOC( X, limbs ); mbedtls_mpi_mod_residue rX; - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs_N ), 0 ); - rX.limbs = limbs_X; - - /* Convert to Montgomery representation */ - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rA.p, &m ), 0 ); - TEST_EQUAL( mbedtls_mpi_mod_raw_to_mont_rep( rB.p, &m ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); + rX.limbs = rR.limbs; TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), exp_ret ); + mbedtls_mpi_mod_modulus fake_m; + mbedtls_mpi_mod_modulus_init( &fake_m ); + /* Check when m is not initialized */ TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &fake_m ), MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); @@ -264,15 +239,16 @@ void mpi_mod_mul_neg( char * input_A, exit: mbedtls_mpi_mod_residue_release( &rA ); mbedtls_mpi_mod_residue_release( &rB ); + mbedtls_mpi_mod_residue_release( &rR ); mbedtls_mpi_mod_residue_release( &rX ); mbedtls_mpi_mod_modulus_free( &m ); mbedtls_mpi_mod_modulus_free( &fake_m ); - mbedtls_free( A ); - mbedtls_free( B ); - mbedtls_free( N ); + mbedtls_free( rA.p ); + mbedtls_free( rB.p ); + mbedtls_free( rR.p ); mbedtls_free( X ); - mbedtls_free( R ); + mbedtls_free( (mbedtls_mpi_uint *) m.p ); } /* END_CASE */ From 8a261646847b46bc27a59b64f48c5df02086104a Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 16 Dec 2022 17:18:28 +0100 Subject: [PATCH 1281/1574] Supress pylint's duplicated code warning Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py index 1960723f1..a83e1360a 100644 --- a/scripts/mbedtls_dev/bignum_mod.py +++ b/scripts/mbedtls_dev/bignum_mod.py @@ -33,6 +33,7 @@ class BignumModTarget(test_data_generation.BaseTarget): class BignumModMul(bignum_common.ModOperationCommon, BignumModTarget): + # pylint:disable=duplicate-code """Test cases for bignum mpi_mod_mul().""" symbol = "*" test_function = "mpi_mod_mul" From 61fd1fb4b1e8aa5adf634804e250fa272ee23edc Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 20 Dec 2022 13:54:26 +0100 Subject: [PATCH 1282/1574] Calling the residue_release() is not needed Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod.function | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 6e25ff720..c19c2f40f 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -181,10 +181,6 @@ void mpi_mod_mul( char * input_A, } exit: - mbedtls_mpi_mod_residue_release( &rA ); - mbedtls_mpi_mod_residue_release( &rB ); - mbedtls_mpi_mod_residue_release( &rR ); - mbedtls_mpi_mod_residue_release( &rX ); mbedtls_mpi_mod_modulus_free( &m ); mbedtls_free( rA.p ); @@ -237,10 +233,6 @@ void mpi_mod_mul_neg( char * input_A, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); exit: - mbedtls_mpi_mod_residue_release( &rA ); - mbedtls_mpi_mod_residue_release( &rB ); - mbedtls_mpi_mod_residue_release( &rR ); - mbedtls_mpi_mod_residue_release( &rX ); mbedtls_mpi_mod_modulus_free( &m ); mbedtls_mpi_mod_modulus_free( &fake_m ); From f9728137d853e35a7c3830220bc7eaade03fcbd1 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 20 Dec 2022 13:55:37 +0100 Subject: [PATCH 1283/1574] Fix the order of freeing memory Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod.function | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index c19c2f40f..4914e1d89 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -181,13 +181,13 @@ void mpi_mod_mul( char * input_A, } exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( rA.p ); mbedtls_free( rB.p ); mbedtls_free( rR.p ); mbedtls_free( X ); mbedtls_free( (mbedtls_mpi_uint *) m.p ); + + mbedtls_mpi_mod_modulus_free( &m ); } /* END_CASE */ @@ -233,14 +233,14 @@ void mpi_mod_mul_neg( char * input_A, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_mod_modulus_free( &fake_m ); - mbedtls_free( rA.p ); mbedtls_free( rB.p ); mbedtls_free( rR.p ); mbedtls_free( X ); mbedtls_free( (mbedtls_mpi_uint *) m.p ); + + mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free( &fake_m ); } /* END_CASE */ From 496cd37bacbfa3fbd6239ae2d9a5f8cc83d04811 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 20 Dec 2022 13:56:16 +0100 Subject: [PATCH 1284/1574] Use equality checking for NULL value Signed-off-by: Gabor Mezei --- library/bignum_mod.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 30289aaf0..6ff1c4ecc 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -188,7 +188,7 @@ int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; mbedtls_mpi_uint *T = mbedtls_calloc( N->limbs * 2 + 1, ciL ); - if( !T ) + if( T == NULL ) return MBEDTLS_ERR_MPI_ALLOC_FAILED; mbedtls_mpi_mod_raw_mul( X->p, A->p, B->p, N, T ); From 78c4fb45513847b8e08f5a5f84d26a799c6b3d29 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 20 Dec 2022 18:09:49 +0100 Subject: [PATCH 1285/1574] Fix possible uninitialization error Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod.function | 26 ++++++++++----------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 4914e1d89..527146e30 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -111,20 +111,20 @@ void mpi_mod_mul( char * input_A, { mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_mod_residue rA = { NULL, 0 }; + mbedtls_mpi_mod_residue rB = { NULL, 0 }; + mbedtls_mpi_mod_residue rR = { NULL, 0 }; + mbedtls_mpi_mod_residue rX = { NULL, 0 }; + mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), 0 ); - mbedtls_mpi_mod_residue rA; TEST_EQUAL( test_read_residue( &rA, &m, input_A, 0 ), 0 ); - - mbedtls_mpi_mod_residue rB; TEST_EQUAL( test_read_residue( &rB, &m, input_B, 0 ), 0 ); - - mbedtls_mpi_mod_residue rR; - TEST_EQUAL( test_read_residue( &rR, &m, result, 0 ), 0 ); + TEST_EQUAL( test_read_residue( &rR, &m, result, 0 ), 0 ); const size_t limbs = m.limbs; const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); @@ -135,7 +135,6 @@ void mpi_mod_mul( char * input_A, ASSERT_ALLOC( X, limbs ); - mbedtls_mpi_mod_residue rX; TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), 0 ); @@ -200,26 +199,25 @@ void mpi_mod_mul_neg( char * input_A, { mbedtls_mpi_uint *X = NULL; + mbedtls_mpi_mod_residue rA = { NULL, 0 }; + mbedtls_mpi_mod_residue rB = { NULL, 0 }; + mbedtls_mpi_mod_residue rR = { NULL, 0 }; + mbedtls_mpi_mod_residue rX = { NULL, 0 }; + mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), 0 ); - mbedtls_mpi_mod_residue rA; TEST_EQUAL( test_read_residue( &rA, &m, input_A, 1 ), 0 ); - - mbedtls_mpi_mod_residue rB; TEST_EQUAL( test_read_residue( &rB, &m, input_B, 1 ), 0 ); - - mbedtls_mpi_mod_residue rR; - TEST_EQUAL( test_read_residue( &rR, &m, result, 1 ), 0 ); + TEST_EQUAL( test_read_residue( &rR, &m, result, 1 ), 0 ); const size_t limbs = m.limbs; ASSERT_ALLOC( X, limbs ); - mbedtls_mpi_mod_residue rX; TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); rX.limbs = rR.limbs; From c377f31ad95fc83be433a640750806a2b8dba0d0 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:13:42 +0100 Subject: [PATCH 1286/1574] Remove unused import This wasn't reported by pylint due to a pylint bug (apparently): `pylint A B` doesn't complain about an unused import in B if A happens to import and use the same module, which happens to be the case when we run pylint on the CI. Signed-off-by: Gilles Peskine --- tests/scripts/generate_bignum_tests.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/scripts/generate_bignum_tests.py b/tests/scripts/generate_bignum_tests.py index 0b8471186..6ee6ab39a 100755 --- a/tests/scripts/generate_bignum_tests.py +++ b/tests/scripts/generate_bignum_tests.py @@ -60,7 +60,6 @@ from abc import ABCMeta from typing import List import scripts_path # pylint: disable=unused-import -from mbedtls_dev import test_case from mbedtls_dev import test_data_generation from mbedtls_dev import bignum_common # Import modules containing additional test classes From f8a4463bd6320c769acf81f4c8853f3f1dcf4d2a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:12:22 +0100 Subject: [PATCH 1287/1574] Add some missing type annotations Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 0339b1ad1..9db567b7c 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -48,7 +48,7 @@ def hex_to_int(val: str) -> int: return 0 return int(val, 16) -def quote_str(val) -> str: +def quote_str(val: str) -> str: return "\"{}\"".format(val) def bound_mpi(val: int, bits_in_limb: int) -> int: @@ -134,7 +134,7 @@ class OperationCommon(test_data_generation.BaseTest): def hex_digits(self) -> int: return 2 * (self.limbs * self.bits_in_limb // 8) - def format_arg(self, val) -> str: + def format_arg(self, val: str) -> str: if self.input_style not in self.input_styles: raise ValueError("Unknown input style!") if self.input_style == "variable": @@ -142,7 +142,7 @@ class OperationCommon(test_data_generation.BaseTest): else: return val.zfill(self.hex_digits) - def format_result(self, res) -> str: + def format_result(self, res: int) -> str: res_str = '{:x}'.format(res) return quote_str(self.format_arg(res_str)) From 5623ecc2d62bcdd2c4bd2dd501591502713a7725 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:16:54 +0100 Subject: [PATCH 1288/1574] Mod operations: fill arguments to the width of the modulus With the default input style (which is "variable"), fill all bignum test case arguments to the same width as the modulus. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 9db567b7c..03055f02b 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -267,6 +267,12 @@ class ModOperationCommon(OperationCommon): def arg_n(self) -> str: return self.format_arg(self.val_n) + def format_arg(self, val: str) -> str: + if self.input_style == "variable": + return val.zfill(len(hex(self.int_n)) - 2) + else: + return super().format_arg(val) + def arguments(self) -> List[str]: return [quote_str(self.arg_n)] + super().arguments() From 7a708fd49f6d002415cb8e94052a540bf705120d Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:19:18 +0100 Subject: [PATCH 1289/1574] Helpers for generating representation-aware test cases Add a class for modulus representations (mbedtls_mpi_mod_rep_selector). Add a method to convert a number to any representation. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_common.py | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 03055f02b..7b2669af7 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -15,6 +15,7 @@ # limitations under the License. from abc import abstractmethod +import enum from typing import Iterator, List, Tuple, TypeVar, Any from itertools import chain @@ -240,6 +241,23 @@ class OperationCommon(test_data_generation.BaseTest): ) +class ModulusRepresentation(enum.Enum): + """Representation selector of a modulus.""" + # Numerical values aligned with the type mbedtls_mpi_mod_rep_selector + INVALID = 0 + MONTGOMERY = 2 + OPT_RED = 3 + + def symbol(self) -> str: + """The C symbol for this representation selector.""" + return 'MBEDTLS_MPI_MOD_REP_' + self.name + + @classmethod + def supported_representations(cls) -> List['ModulusRepresentation']: + """Return all representations that are supported in positive test cases.""" + return [cls.MONTGOMERY, cls.OPT_RED] + + class ModOperationCommon(OperationCommon): #pylint: disable=abstract-method """Target for bignum mod_raw test case generation.""" @@ -259,6 +277,17 @@ class ModOperationCommon(OperationCommon): def from_montgomery(self, val: int) -> int: return (val * self.r_inv) % self.int_n + def convert_from_canonical(self, canonical: int, + rep: ModulusRepresentation) -> int: + """Convert values from canonical representation to the given representation.""" + if rep is ModulusRepresentation.MONTGOMERY: + return self.to_montgomery(canonical) + elif rep is ModulusRepresentation.OPT_RED: + return canonical + else: + raise ValueError('Modulus representation not supported: {}' + .format(rep.name)) + @property def boundary(self) -> int: return self.int_n From 1e2a4d4089f6e2e87d13868e62e2b0b2e02391b6 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:21:17 +0100 Subject: [PATCH 1290/1574] Functions to convert raw residues to/from the modulus representation Test cases will be generated automatically by a subsequent commit. Signed-off-by: Gilles Peskine --- library/bignum_mod_raw.c | 30 +++++++++++ library/bignum_mod_raw.h | 34 ++++++++++++ .../suites/test_suite_bignum_mod_raw.function | 52 +++++++++++++++++++ 3 files changed, 116 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index fbd90bf22..721efc853 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -176,6 +176,36 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 6 */ +int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( + mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ) +{ + switch( N->int_rep ) + { + case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + return( mbedtls_mpi_mod_raw_to_mont_rep( X, N ) ); + case MBEDTLS_MPI_MOD_REP_OPT_RED: + return( 0 ); + default: + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + } +} + +int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( + mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ) +{ + switch( N->int_rep ) + { + case MBEDTLS_MPI_MOD_REP_MONTGOMERY: + return( mbedtls_mpi_mod_raw_from_mont_rep( X, N ) ); + case MBEDTLS_MPI_MOD_REP_OPT_RED: + return( 0 ); + default: + return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + } +} + int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, mbedtls_mpi_uint min, const mbedtls_mpi_mod_modulus *N, diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 87e241fa5..dad060b3c 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -297,6 +297,40 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 6 */ +/** Convert an MPI from canonical representation (little-endian limb array) + * to the representation associated with the modulus. + * + * \param[in,out] X The limb array to convert. + * It must have as many limbs as \p N. + * It is converted in place. + * If this function returns an error, the content of \p X + * is unspecified. + * \param[in] N The modulus structure. + * + *\ return \c 0 if successful. + * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code. + */ +int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( + mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ); + +/** Convert an MPI from the representation associated with the modulus + * to canonical representation (little-endian limb array). + * + * \param[in,out] X The limb array to convert. + * It must have as many limbs as \p N. + * It is converted in place. + * If this function returns an error, the content of \p X + * is unspecified. + * \param[in] N The modulus structure. + * + *\ return \c 0 if successful. + * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code. + */ +int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( + mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ); + /** Generate a random number uniformly in a range. * * This function generates a random number between \p min inclusive and diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 83e1f543e..51d096e90 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -520,7 +520,59 @@ exit: /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ +/* BEGIN_CASE */ +void mpi_mod_raw_canonical_to_modulus_rep( const char *input_N, int rep, + const char *input_A, + const char *input_X ) +{ + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_uint *A = NULL; + size_t A_limbs = 0;; + mbedtls_mpi_uint *X = NULL; + size_t X_limbs = 0; + TEST_EQUAL( 0, mbedtls_test_read_mpi_modulus( &N, input_N, rep ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_raw_canonical_to_modulus_rep( A, &N ) ); + ASSERT_COMPARE( A, A_limbs * sizeof( mbedtls_mpi_uint ), + X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + +exit: + mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); + mbedtls_free( A ); + mbedtls_free( X ); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_modulus_to_canonical_rep( const char *input_N, int rep, + const char *input_A, + const char *input_X ) +{ + mbedtls_mpi_mod_modulus N; + mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_uint *A = NULL; + size_t A_limbs = 0;; + mbedtls_mpi_uint *X = NULL; + size_t X_limbs = 0; + + TEST_EQUAL( 0, mbedtls_test_read_mpi_modulus( &N, input_N, rep ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); + TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + + TEST_EQUAL( 0, mbedtls_mpi_mod_raw_modulus_to_canonical_rep( A, &N ) ); + ASSERT_COMPARE( A, A_limbs * sizeof( mbedtls_mpi_uint ), + X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + +exit: + mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); + mbedtls_free( A ); + mbedtls_free( X ); +} +/* END_CASE */ /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ From eb2e77f6170de7ae8738f0dfdbd261dbf6347006 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:22:44 +0100 Subject: [PATCH 1291/1574] Document modulus representation selectors Signed-off-by: Gilles Peskine --- library/bignum_mod.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index bf00a36fc..9c2043d9a 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -87,12 +87,23 @@ #include "mbedtls/bignum.h" #endif -/* Skip 1 as it is slightly easier to accidentally pass to functions. */ +/** How residues associated with a modulus are represented. + * + * This also determines which fields of the modulus structure are valid and + * what their contents are (see #mbedtls_mpi_mod_modulus). + */ typedef enum { + /** Representation not chosen (makes the modulus structure invalid). */ MBEDTLS_MPI_MOD_REP_INVALID = 0, + /* Skip 1 as it is slightly easier to accidentally pass to functions. */ + /** Montgomery representation. */ MBEDTLS_MPI_MOD_REP_MONTGOMERY = 2, - MBEDTLS_MPI_MOD_REP_OPT_RED + /** TODO: document this. + * + * Residues are in canonical representation. + */ + MBEDTLS_MPI_MOD_REP_OPT_RED, } mbedtls_mpi_mod_rep_selector; /* Make mbedtls_mpi_mod_rep_selector and mbedtls_mpi_mod_ext_rep disjoint to @@ -124,7 +135,9 @@ typedef struct { mbedtls_mpi_mod_rep_selector int_rep; // selector to signal the active member of the union union rep { + /* if int_rep == #MBEDTLS_MPI_MOD_REP_MONTGOMERY */ mbedtls_mpi_mont_struct mont; + /* if int_rep == #MBEDTLS_MPI_MOD_REP_OPT_RED */ mbedtls_mpi_opt_red_struct ored; } rep; } mbedtls_mpi_mod_modulus; From e655479528b8dff247d3c67e310c8f9067ad12e4 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:24:27 +0100 Subject: [PATCH 1292/1574] Generalize representation handling in mbedtls_mpi_mod_read Call mbedtls_mpi_mod_raw_canonical_to_modulus_rep instead of assuming that anything that isn't MBEDTLS_MPI_MOD_REP_MONTGOMERY is canonical. mbedtls_mpi_mod_write should get the same treatment, but I'm holding off until https://github.com/Mbed-TLS/mbedtls/issues/6679 is done. Signed-off-by: Gilles Peskine --- library/bignum_mod.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 3eef4e700..4ac6277b3 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -248,8 +248,7 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, r->limbs = m->limbs; - if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); + ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep( r->p, m ); cleanup: return ( ret ); From 23636aca984746a6af71ded27f986002f74224da Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:30:47 +0100 Subject: [PATCH 1293/1574] Generate test cases for mpi_mod_raw_canonical_to_modulus_rep Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 36 ++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 6fc4c919b..c50458149 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,8 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, List +from typing import Dict, Iterator, List +from . import test_case from . import test_data_generation from . import bignum_common from .bignum_data import ONLY_PRIME_MODULI @@ -107,6 +108,39 @@ class BignumModRawAdd(bignum_common.ModOperationCommon, # BEGIN MERGE SLOT 6 +class BignumModRawCanonicalToModulusRep(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for mpi_mod_raw_canonical_to_modulus_rep.""" + test_function = "mpi_mod_raw_canonical_to_modulus_rep" + test_name = "Rep canon->mod" + arity = 1 + + def __init__(self, + val_n: str, val_a: str, + rep: bignum_common.ModulusRepresentation) -> None: + super().__init__(val_n=val_n, val_a=val_a) + self.rep = rep + + def result(self) -> List[str]: + result = self.convert_from_canonical(self.int_a, self.rep) + return [self.format_result(result)] + + def arguments(self) -> List[str]: + return ([bignum_common.quote_str(self.arg_n), self.rep.symbol(), + bignum_common.quote_str(self.arg_a)] + + self.result()) + + @classmethod + def generate_function_tests(cls) -> Iterator[test_case.TestCase]: + representations = \ + bignum_common.ModulusRepresentation.supported_representations() + for rep in representations: + for n in cls.moduli: + for a in cls.input_values: + test_object = cls(n, a, rep) + if test_object.is_valid: + yield test_object.create_test_case() + # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 From be69c7d5594255ea9e9c34721987666561a7bf86 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:51:22 +0100 Subject: [PATCH 1294/1574] Generate test cases for mpi_mod_raw_modulus_to_canonical_rep as well Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 39 +++++++++++++++++++-------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index c50458149..800bcb13e 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -108,23 +108,18 @@ class BignumModRawAdd(bignum_common.ModOperationCommon, # BEGIN MERGE SLOT 6 -class BignumModRawCanonicalToModulusRep(bignum_common.ModOperationCommon, - BignumModRawTarget): - """Test cases for mpi_mod_raw_canonical_to_modulus_rep.""" - test_function = "mpi_mod_raw_canonical_to_modulus_rep" - test_name = "Rep canon->mod" +class BignumModRawConvertRep(bignum_common.ModOperationCommon, + BignumModRawTarget): + # This is an abstract class, it's ok to have unimplemented methods. + #pylint: disable=abstract-method + """Test cases for representation conversion.""" arity = 1 - def __init__(self, - val_n: str, val_a: str, + def __init__(self, val_n: str, val_a: str, rep: bignum_common.ModulusRepresentation) -> None: super().__init__(val_n=val_n, val_a=val_a) self.rep = rep - def result(self) -> List[str]: - result = self.convert_from_canonical(self.int_a, self.rep) - return [self.format_result(result)] - def arguments(self) -> List[str]: return ([bignum_common.quote_str(self.arg_n), self.rep.symbol(), bignum_common.quote_str(self.arg_a)] + @@ -141,6 +136,28 @@ class BignumModRawCanonicalToModulusRep(bignum_common.ModOperationCommon, if test_object.is_valid: yield test_object.create_test_case() +class BignumModRawCanonicalToModulusRep(BignumModRawConvertRep): + """Test cases for mpi_mod_raw_canonical_to_modulus_rep.""" + test_function = "mpi_mod_raw_canonical_to_modulus_rep" + test_name = "Rep canon->mod" + + def result(self) -> List[str]: + result = self.convert_from_canonical(self.int_a, self.rep) + return [self.format_result(result)] + +class BignumModRawModulusToCanonicalRep(BignumModRawConvertRep): + """Test cases for mpi_mod_raw_modulus_to_canonical_rep.""" + test_function = "mpi_mod_raw_modulus_to_canonical_rep" + test_name = "Rep mod->canon" + + @property + def arg_a(self) -> str: + converted_a = self.convert_from_canonical(self.int_a, self.rep) + return self.format_arg(hex(converted_a)[2:]) + + def result(self) -> List[str]: + return [self.format_result(self.int_a)] + # END MERGE SLOT 6 # BEGIN MERGE SLOT 7 From e1d8326e9068ca0b937a1aa8fbd1345d79471985 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 19:31:09 +0100 Subject: [PATCH 1295/1574] Fix representation of mod-random output mbedtls_mpi_mod_raw_random() and mbedtls_mpi_mod_random() were producing output in the Montgomery representation, instead of obeying the representation chosen in the modulus structure. Fix this. Duplicate the test cases for mod-random output to have separate test cases for each representation. Signed-off-by: Gilles Peskine --- library/bignum_mod_raw.c | 2 +- tests/suites/test_suite_bignum_random.data | 70 +++++++++++++------ .../suites/test_suite_bignum_random.function | 16 ++--- 3 files changed, 58 insertions(+), 30 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 721efc853..d81174005 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -215,7 +215,7 @@ int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, int ret = mbedtls_mpi_core_random( X, min, N->p, N->limbs, f_rng, p_rng ); if( ret != 0 ) return( ret ); - return( mbedtls_mpi_mod_raw_to_mont_rep( X, N ) ); + return( mbedtls_mpi_mod_raw_canonical_to_modulus_rep( X, N ) ); } /* END MERGE SLOT 6 */ diff --git a/tests/suites/test_suite_bignum_random.data b/tests/suites/test_suite_bignum_random.data index b486f3866..ee5e39778 100644 --- a/tests/suites/test_suite_bignum_random.data +++ b/tests/suites/test_suite_bignum_random.data @@ -25,8 +25,11 @@ mpi_core_random_basic:0x0fffffff:"10000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x0fffffff:"10000001" -MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) -mpi_mod_random_values:0x0fffffff:"10000001" +MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (Mont) +mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^28-1..2^28+1 (NOT_ACCEPTABLE) (canon) +mpi_mod_random_values:0x0fffffff:"10000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^29-1..2^29+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE @@ -34,8 +37,11 @@ mpi_core_random_basic:0x1fffffff:"20000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x1fffffff:"20000001" -MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) -mpi_mod_random_values:0x1fffffff:"20000001" +MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (Mont) +mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^29-1..2^29+1 (NOT_ACCEPTABLE) (canon) +mpi_mod_random_values:0x1fffffff:"20000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^30-1..2^30+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE @@ -43,8 +49,11 @@ mpi_core_random_basic:0x3fffffff:"40000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x3fffffff:"40000001" -MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) -mpi_mod_random_values:0x3fffffff:"40000001" +MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (Mont) +mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^30-1..2^30+1 (NOT_ACCEPTABLE) (canon) +mpi_mod_random_values:0x3fffffff:"40000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI core random basic: 2^31-1..2^31+1 (NOT_ACCEPTABLE) mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE @@ -52,8 +61,11 @@ mpi_core_random_basic:0x7fffffff:"80000001":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE MPI random legacy=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) mpi_legacy_random_values:0x7fffffff:"80000001" -MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) -mpi_mod_random_values:0x7fffffff:"80000001" +MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (Mont) +mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^31-1..2^31+1 (NOT_ACCEPTABLE) (canon) +mpi_mod_random_values:0x7fffffff:"80000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random in range: 1..2 mpi_random_many:1:"02":1000 @@ -246,23 +258,41 @@ mpi_legacy_random_values:0:"0100000000000000000000000000000000000000000000000000 MPI random legacy=core: 0..2^256+1 mpi_legacy_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" -MPI random mod=core: 0..1 -mpi_mod_random_values:0:"01" +MPI random mod=core: 0..1 (Mont) +mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_MONTGOMERY -MPI random mod=core: 0..3 -mpi_mod_random_values:0:"03" +MPI random mod=core: 0..1 (canon) +mpi_mod_random_values:0:"01":MBEDTLS_MPI_MOD_REP_OPT_RED -MPI random mod=core: 1..3 -mpi_mod_random_values:1:"03" +MPI random mod=core: 0..3 (Mont) +mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY -MPI random mod=core: 2^30..2^31-1 -mpi_mod_random_values:0x40000000:"7fffffff" +MPI random mod=core: 0..3 (canon) +mpi_mod_random_values:0:"03":MBEDTLS_MPI_MOD_REP_OPT_RED -MPI random mod=core: 2^31-1..2^32-1 -mpi_mod_random_values:0x7fffffff:"ffffffff" +MPI random mod=core: 1..3 (Mont) +mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_MONTGOMERY -MPI random mod=core: 0..2^256+1 -mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001" +MPI random mod=core: 1..3 (canon) +mpi_mod_random_values:1:"03":MBEDTLS_MPI_MOD_REP_OPT_RED + +MPI random mod=core: 2^30..2^31-1 (Mont) +mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^30..2^31-1 (canon) +mpi_mod_random_values:0x40000000:"7fffffff":MBEDTLS_MPI_MOD_REP_OPT_RED + +MPI random mod=core: 2^31-1..2^32-1 (Mont) +mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 2^31-1..2^32-1 (canon) +mpi_mod_random_values:0x7fffffff:"ffffffff":MBEDTLS_MPI_MOD_REP_OPT_RED + +MPI random mod=core: 0..2^256+1 (Mont) +mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_MONTGOMERY + +MPI random mod=core: 0..2^256+1 (canon) +mpi_mod_random_values:0:"010000000000000000000000000000000000000000000000000000000000000001":MBEDTLS_MPI_MOD_REP_OPT_RED MPI random mod validation: 1 limb, good, 0..1 mpi_mod_random_validation:0:"1":0:0 diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 0f431cd6d..f2cb206fc 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -192,7 +192,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_random_values( int min, char *max_hex ) +void mpi_mod_random_values( int min, char *max_hex, int rep ) { /* Same RNG as in mpi_core_random_basic */ mbedtls_test_rnd_pseudo_info rnd_core = { @@ -210,9 +210,7 @@ void mpi_mod_random_values( int min, char *max_hex ) mbedtls_mpi_mod_modulus N; mbedtls_mpi_mod_modulus_init( &N ); - TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ), - 0 ); + TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex, rep ), 0 ); ASSERT_ALLOC( R_core, N.limbs ); ASSERT_ALLOC( R_mod_raw, N.limbs ); ASSERT_ALLOC( R_mod_digits, N.limbs ); @@ -240,10 +238,12 @@ void mpi_mod_random_values( int min, char *max_hex ) TEST_EQUAL( core_ret, mod_ret ); if( core_ret == 0 ) { - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_raw, &N ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_raw, &N ), + 0 ); ASSERT_COMPARE( R_core, N.limbs * ciL, R_mod_raw, N.limbs * ciL ); - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( R_mod_digits, &N ), 0 ); + TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_digits, &N ), + 0 ); ASSERT_COMPARE( R_core, N.limbs * ciL, R_mod_digits, N.limbs * ciL ); } @@ -428,7 +428,7 @@ void mpi_mod_random_validation( int min, char *bound_hex, mbedtls_mpi_mod_modulus_init( &N ); TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, bound_hex, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ), + MBEDTLS_MPI_MOD_REP_OPT_RED ), 0 ); size_t result_limbs = N.limbs + result_limbs_delta; ASSERT_ALLOC( result_digits, result_limbs ); @@ -445,7 +445,6 @@ void mpi_mod_random_validation( int min, char *bound_hex, * size as the modulus, otherwise it's a mistake in the test data. */ TEST_EQUAL( result_limbs, N.limbs ); /* Sanity check: check that the result is in range */ - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 ); TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), 1 ); /* Check result >= min (changes result) */ @@ -463,7 +462,6 @@ void mpi_mod_random_validation( int min, char *bound_hex, expected_ret ); if( expected_ret == 0 ) { - TEST_EQUAL( mbedtls_mpi_mod_raw_from_mont_rep( result_digits, &N ), 0 ); TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), 1 ); TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result.p, min, From d1aa75d7b2168a4d48a2b6f433ce343715e6508a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 22:01:27 +0100 Subject: [PATCH 1296/1574] Update of the RNG seed in mpi_mod_random_values The code had an earlier version. Update to the new seed that mpi_core_random_basic has moved to. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_random.function | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index f2cb206fc..470914890 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -195,10 +195,7 @@ exit: void mpi_mod_random_values( int min, char *max_hex, int rep ) { /* Same RNG as in mpi_core_random_basic */ - mbedtls_test_rnd_pseudo_info rnd_core = { - {'T', 'h', 'i', 's', ' ', 'i', ',', 'a', - 's', 'e', 'e', 'd', '!', 0}, - 0, 0}; + mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed; mbedtls_test_rnd_pseudo_info rnd_mod_raw; memcpy( &rnd_mod_raw, &rnd_core, sizeof( rnd_core ) ); mbedtls_test_rnd_pseudo_info rnd_mod; From 4c950d5ff10dea62c095b76a74d0f363b49e3f95 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 22:02:55 +0100 Subject: [PATCH 1297/1574] Cosmetic fix Signed-off-by: Gilles Peskine --- tests/suites/test_suite_bignum_mod_raw.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 51d096e90..244c85465 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -555,7 +555,7 @@ void mpi_mod_raw_modulus_to_canonical_rep( const char *input_N, int rep, mbedtls_mpi_mod_modulus N; mbedtls_mpi_mod_modulus_init( &N ); mbedtls_mpi_uint *A = NULL; - size_t A_limbs = 0;; + size_t A_limbs = 0; mbedtls_mpi_uint *X = NULL; size_t X_limbs = 0; From ad335b55ff7e3c33ba02d49af1c144e23177c173 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Tue, 20 Dec 2022 22:39:15 +0100 Subject: [PATCH 1298/1574] Fix representation conversion with 32-bit limbs The Montgomery representation depends on the limb size. So the representation conversion test cases need separate 64-bit and 32-bit cases when the representation is Montgomery. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 800bcb13e..e108fe3a0 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Dict, Iterator, List +from typing import Iterator, List, Optional, Union from . import test_case from . import test_data_generation @@ -115,9 +115,13 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, """Test cases for representation conversion.""" arity = 1 - def __init__(self, val_n: str, val_a: str, + def __init__(self, val_n: str, val_a: str, bits_in_limb: Optional[int], rep: bignum_common.ModulusRepresentation) -> None: - super().__init__(val_n=val_n, val_a=val_a) + if bits_in_limb is None: + super().__init__(val_n=val_n, val_a=val_a) + else: + self.input_style = "arch_split" + super().__init__(val_n=val_n, val_a=val_a, bits_in_limb=bits_in_limb) self.rep = rep def arguments(self) -> List[str]: @@ -125,16 +129,26 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, bignum_common.quote_str(self.arg_a)] + self.result()) + def description(self) -> str: + base = super().description() + mod_with_rep = 'mod({})'.format(self.rep.name) + return base.replace('mod', mod_with_rep, 1) + @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: representations = \ bignum_common.ModulusRepresentation.supported_representations() for rep in representations: + if rep is bignum_common.ModulusRepresentation.MONTGOMERY: + limb_sizes = cls.limb_sizes #type: Union[List[int], List[None]] + else: + limb_sizes = [None] # no dependency on limb size for n in cls.moduli: for a in cls.input_values: - test_object = cls(n, a, rep) - if test_object.is_valid: - yield test_object.create_test_case() + for bil in limb_sizes: + test_object = cls(n, a, bil, rep) + if test_object.is_valid: + yield test_object.create_test_case() class BignumModRawCanonicalToModulusRep(BignumModRawConvertRep): """Test cases for mpi_mod_raw_canonical_to_modulus_rep.""" From 6958355a51582875c851586924662c1c7801261c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 10 Jun 2022 12:46:46 +0200 Subject: [PATCH 1299/1574] Use PSA Crypto more often in pk_verify_ext() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/Mbed-TLS/mbedtls/issues/5277 - strategy 1. Signed-off-by: Manuel Pégourié-Gonnard --- library/pk.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/library/pk.c b/library/pk.c index 8dc19ef99..1ae041db8 100644 --- a/library/pk.c +++ b/library/pk.c @@ -482,9 +482,7 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, pss_opts = (const mbedtls_pk_rsassa_pss_options *) options; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( pss_opts->mgf1_hash_id == md_alg && - ( (size_t) pss_opts->expected_salt_len == hash_len || - pss_opts->expected_salt_len == MBEDTLS_RSA_SALT_LEN_ANY ) ) + if( pss_opts->mgf1_hash_id == md_alg ) { /* see RSA_PUB_DER_MAX_BYTES in pkwrite.c */ unsigned char buf[ 38 + 2 * MBEDTLS_MPI_MAX_SIZE ]; @@ -497,10 +495,7 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, psa_algorithm_t psa_md_alg = mbedtls_hash_info_psa_from_md( md_alg ); mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_algorithm_t psa_sig_alg = - ( pss_opts->expected_salt_len == MBEDTLS_RSA_SALT_LEN_ANY ? - PSA_ALG_RSA_PSS_ANY_SALT(psa_md_alg) : - PSA_ALG_RSA_PSS(psa_md_alg) ); + psa_algorithm_t psa_sig_alg = PSA_ALG_RSA_PSS_ANY_SALT( psa_md_alg ); p = buf + sizeof( buf ); key_len = mbedtls_pk_write_pubkey( &p, buf, ctx ); From 4dacf58d6d12e0a1a0c5f2849bb905d9fae32893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 10 Jun 2022 12:50:00 +0200 Subject: [PATCH 1300/1574] Take advantage of now-public macro in pk.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Used to be private, hence the duplication, but that's been fixed in the meantime, I guess we just missed this occurrence. Signed-off-by: Manuel Pégourié-Gonnard --- library/pk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/pk.c b/library/pk.c index 1ae041db8..a73fa56f5 100644 --- a/library/pk.c +++ b/library/pk.c @@ -484,8 +484,7 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, #if defined(MBEDTLS_USE_PSA_CRYPTO) if( pss_opts->mgf1_hash_id == md_alg ) { - /* see RSA_PUB_DER_MAX_BYTES in pkwrite.c */ - unsigned char buf[ 38 + 2 * MBEDTLS_MPI_MAX_SIZE ]; + unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES]; unsigned char *p; int key_len; size_t signature_length; From 3b1a7069354e177478d3bbbb82ee1d9922ea34f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 28 Jun 2022 12:47:44 +0200 Subject: [PATCH 1301/1574] Disable 'wrong salt len' test with USE_PSA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We've decided not to check it, see https://github.com/Mbed-TLS/mbedtls/issues/5277 Also add a test that we accept the certificate with USE_PSA. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_x509parse.data | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index bd03016cc..ee204f822 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -831,10 +831,14 @@ X509 CRT verification #67 (Valid, RSASSA-PSS, all defaults) depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_verify:"data_files/server9-defaults.crt":"data_files/test-ca.crt":"data_files/crl-rsa-pss-sha1.pem":"NULL":0:0:"compat":"NULL" -X509 CRT verification #68 (RSASSA-PSS, wrong salt_len) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +X509 CRT verification #68 (RSASSA-PSS, wrong salt_len, !USE_PSA) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_USE_PSA_CRYPTO x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" +X509 CRT verification #68 (RSASSA-PSS, wrong salt_len, USE_PSA) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO +x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":0:0:"compat":"NULL" + X509 CRT verification #69 (RSASSA-PSS, wrong mgf_hash) depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_verify:"data_files/server9-bad-mgfhash.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" From a6e0291c5118231926959db9a14c2830e45c8e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 21 Dec 2022 09:59:33 +0100 Subject: [PATCH 1302/1574] Update documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/use-psa-crypto.md | 8 +++----- include/mbedtls/pk.h | 4 +++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/use-psa-crypto.md b/docs/use-psa-crypto.md index 194d96fb4..fc5317af8 100644 --- a/docs/use-psa-crypto.md +++ b/docs/use-psa-crypto.md @@ -95,8 +95,6 @@ Other than the above exceptions, all crypto operations are based on PSA when Current exceptions: -- Verification of RSA-PSS signatures with a salt length that is different from - the hash length. - Restartable operations when `MBEDTLS_ECP_RESTARTABLE` is also enabled (see the documentation of that option). @@ -107,11 +105,11 @@ Other than the above exception, all crypto operations are based on PSA when Current exceptions: -- Verification of RSA-PSS signatures with a salt length that is different from - the hash length, or with an MGF hash that's different from the message hash. +- Verification of RSA-PSS signatures with an MGF hash that's different from + the message hash. - Restartable operations when `MBEDTLS_ECP_RESTARTABLE` is also enabled (see the documentation of that option). -Other than the above exception, all crypto operations are based on PSA when +Other than the above exceptions, all crypto operations are based on PSA when `MBEDTLS_USE_PSA_CRYPTO` is enabled. diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h index db0bfacab..386ec4202 100644 --- a/include/mbedtls/pk.h +++ b/include/mbedtls/pk.h @@ -496,7 +496,9 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, * * \note If type is MBEDTLS_PK_RSASSA_PSS, then options must point * to a mbedtls_pk_rsassa_pss_options structure, - * otherwise it must be NULL. + * otherwise it must be NULL. Note that if + * #MBEDTLS_USE_PSA_CRYPTO is defined, the salt length is not + * verified as PSA_ALG_RSA_PSS_ANY_SALT is used. */ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, From f65c71fbe6f8b472f3398f4e490c97ca16899f24 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 21 Dec 2022 11:54:22 +0100 Subject: [PATCH 1303/1574] Fix possible uninitialization error Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod.function | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 527146e30..8ab8ccf32 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -207,6 +207,9 @@ void mpi_mod_mul_neg( char * input_A, mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus fake_m; + mbedtls_mpi_mod_modulus_init( &fake_m ); + TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), 0 ); @@ -223,9 +226,6 @@ void mpi_mod_mul_neg( char * input_A, TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), exp_ret ); - mbedtls_mpi_mod_modulus fake_m; - mbedtls_mpi_mod_modulus_init( &fake_m ); - /* Check when m is not initialized */ TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &fake_m ), MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); From 3d2aab891b6f185b08485d362cb1217ad0b5b036 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 21 Dec 2022 17:30:10 +0000 Subject: [PATCH 1304/1574] bignum_common: Adjusted `format_arg` to always size input according to modulo. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_common.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_common.py b/scripts/mbedtls_dev/bignum_common.py index 7b2669af7..bb64ce079 100644 --- a/scripts/mbedtls_dev/bignum_common.py +++ b/scripts/mbedtls_dev/bignum_common.py @@ -297,10 +297,7 @@ class ModOperationCommon(OperationCommon): return self.format_arg(self.val_n) def format_arg(self, val: str) -> str: - if self.input_style == "variable": - return val.zfill(len(hex(self.int_n)) - 2) - else: - return super().format_arg(val) + return super().format_arg(val).zfill(self.hex_digits) def arguments(self) -> List[str]: return [quote_str(self.arg_n)] + super().arguments() From 5689410083137d0052c19f321ad460d3b690b15f Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 21 Dec 2022 17:31:56 +0000 Subject: [PATCH 1305/1574] bignum_mod_raw: Simplified `BignumModRawCanonicalToFromModulusRep` output expressions. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index e108fe3a0..a2336f95a 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -156,8 +156,7 @@ class BignumModRawCanonicalToModulusRep(BignumModRawConvertRep): test_name = "Rep canon->mod" def result(self) -> List[str]: - result = self.convert_from_canonical(self.int_a, self.rep) - return [self.format_result(result)] + return [self.format_result(self.convert_from_canonical(self.int_a, self.rep))] class BignumModRawModulusToCanonicalRep(BignumModRawConvertRep): """Test cases for mpi_mod_raw_modulus_to_canonical_rep.""" @@ -166,8 +165,7 @@ class BignumModRawModulusToCanonicalRep(BignumModRawConvertRep): @property def arg_a(self) -> str: - converted_a = self.convert_from_canonical(self.int_a, self.rep) - return self.format_arg(hex(converted_a)[2:]) + return self.format_arg("{:x}".format(self.convert_from_canonical(self.int_a, self.rep))) def result(self) -> List[str]: return [self.format_result(self.int_a)] From ae4d2cf3e3879be0fee1d3027826129776d99373 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 21 Dec 2022 17:34:15 +0000 Subject: [PATCH 1306/1574] bignum_common.py: Introduce the set_representation setter. This patch adds the default representation attribute through a setter() method in `BignumModRawConvertRep()` It also adds standard common template properties: symbol = "" input_style = "arch_split" arity = 1 Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index a2336f95a..b244e0973 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -113,16 +113,13 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, # This is an abstract class, it's ok to have unimplemented methods. #pylint: disable=abstract-method """Test cases for representation conversion.""" + symbol = "" + input_style = "arch_split" arity = 1 + rep = bignum_common.ModulusRepresentation.INVALID - def __init__(self, val_n: str, val_a: str, bits_in_limb: Optional[int], - rep: bignum_common.ModulusRepresentation) -> None: - if bits_in_limb is None: - super().__init__(val_n=val_n, val_a=val_a) - else: - self.input_style = "arch_split" - super().__init__(val_n=val_n, val_a=val_a, bits_in_limb=bits_in_limb) - self.rep = rep + def set_representation(self, r: bignum_common.ModulusRepresentation) -> bool: + self.rep = r def arguments(self) -> List[str]: return ([bignum_common.quote_str(self.arg_n), self.rep.symbol(), From afa7c04105813ded8972893144355a1999942acc Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 21 Dec 2022 17:38:16 +0000 Subject: [PATCH 1307/1574] bignum_common.py: Refactored `BignumModRawConvertRep.generate_function_tests()` This patch adjusts the test generating method to calculate all possible combinations for (modulo, input, limb_sizes, representation). Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index b244e0973..ebbc970e5 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -133,17 +133,13 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: - representations = \ - bignum_common.ModulusRepresentation.supported_representations() - for rep in representations: - if rep is bignum_common.ModulusRepresentation.MONTGOMERY: - limb_sizes = cls.limb_sizes #type: Union[List[int], List[None]] - else: - limb_sizes = [None] # no dependency on limb size + + for rep in bignum_common.ModulusRepresentation.supported_representations(): for n in cls.moduli: for a in cls.input_values: - for bil in limb_sizes: - test_object = cls(n, a, bil, rep) + for bil in cls.limb_sizes: + test_object = cls(n, a, bits_in_limb=bil) + test_object.set_representation(rep) if test_object.is_valid: yield test_object.create_test_case() From 342b9a903d459f22226633c405c03b186978660d Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 21 Dec 2022 17:41:30 +0000 Subject: [PATCH 1308/1574] bignum_mod_raw.py: Added a filtering logic to `BignumModRawConvertRep.generate_function_tests()` This patch introduces a hybrid approach to input_styles, and will remove the dependency requirements from test cases with `ModulusRepresentation.OPT_RED` As a result it is reducing testing input duplication. Signed-off-by: Minos Galanakis --- scripts/mbedtls_dev/bignum_mod_raw.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index ebbc970e5..98605d655 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -140,6 +140,11 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, for bil in cls.limb_sizes: test_object = cls(n, a, bits_in_limb=bil) test_object.set_representation(rep) + #Filters out the duplicate + if rep == bignum_common.ModulusRepresentation.OPT_RED: + test_object.dependencies= [] + if bil == 64: + continue if test_object.is_valid: yield test_object.create_test_case() From 636809f2b98872bd278d8ad9175329231a38f02f Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Dec 2022 20:12:31 +0100 Subject: [PATCH 1309/1574] Fix type declaration Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 98605d655..89ae825fc 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -118,7 +118,7 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, arity = 1 rep = bignum_common.ModulusRepresentation.INVALID - def set_representation(self, r: bignum_common.ModulusRepresentation) -> bool: + def set_representation(self, r: bignum_common.ModulusRepresentation) -> None: self.rep = r def arguments(self) -> List[str]: From 6d40e54db0cf3e7e16ea9fe3ca4a03d85e04c4fc Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Dec 2022 20:18:23 +0100 Subject: [PATCH 1310/1574] Split the high nesting of BignumModRawConvertRep.generate_function_tests Pylint complains about the nesting. It's not wrong. No behavior change. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 89ae825fc..352e438ab 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -131,22 +131,27 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, mod_with_rep = 'mod({})'.format(self.rep.name) return base.replace('mod', mod_with_rep, 1) + @classmethod + def test_cases_for_values(cls, rep: bignum_common.ModulusRepresentation, + n: str, a: str) -> Iterator[test_case.TestCase]: + for bil in cls.limb_sizes: + test_object = cls(n, a, bits_in_limb=bil) + test_object.set_representation(rep) + #Filters out the duplicate + if rep == bignum_common.ModulusRepresentation.OPT_RED: + test_object.dependencies= [] + if bil == 64: + continue + if test_object.is_valid: + yield test_object.create_test_case() + @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: for rep in bignum_common.ModulusRepresentation.supported_representations(): for n in cls.moduli: for a in cls.input_values: - for bil in cls.limb_sizes: - test_object = cls(n, a, bits_in_limb=bil) - test_object.set_representation(rep) - #Filters out the duplicate - if rep == bignum_common.ModulusRepresentation.OPT_RED: - test_object.dependencies= [] - if bil == 64: - continue - if test_object.is_valid: - yield test_object.create_test_case() + yield from cls.test_cases_for_values(rep, n, a) class BignumModRawCanonicalToModulusRep(BignumModRawConvertRep): """Test cases for mpi_mod_raw_canonical_to_modulus_rep.""" From 394da2d8576d3b450b310f3b2420953eec27c765 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Dec 2022 20:20:44 +0100 Subject: [PATCH 1311/1574] Pacify pylint Except for missing documentation, which will come in a subsequent commit. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 352e438ab..4628bffe4 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Iterator, List, Optional, Union +from typing import Iterator, List from . import test_case from . import test_data_generation @@ -139,7 +139,7 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, test_object.set_representation(rep) #Filters out the duplicate if rep == bignum_common.ModulusRepresentation.OPT_RED: - test_object.dependencies= [] + test_object.dependencies = [] if bil == 64: continue if test_object.is_valid: From f287366376b337b7294f6c8f27efbc38a62035c9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Dec 2022 20:28:29 +0100 Subject: [PATCH 1312/1574] Simplify logic and document test_cases_for_values Explain what's going on in BignumModRawConvertRep.test_case_for_values. Simplify the logic and the interdependencies related to limb sizes: * Montgomery is the special case, so base the decisions on it. * As soon as we've encountered one limb size, no matter what it is, give up. No behavior change, other than changing the numbering of test cases (which previously included more skipped test cases). Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 4628bffe4..21add3baa 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -134,17 +134,32 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, @classmethod def test_cases_for_values(cls, rep: bignum_common.ModulusRepresentation, n: str, a: str) -> Iterator[test_case.TestCase]: + """Emit test cases for the given values (if any). + + This may emit no test cases if a isn't valid for the modulus n, + or multiple test cases if rep requires different data depending + on the limb size. + """ for bil in cls.limb_sizes: test_object = cls(n, a, bits_in_limb=bil) test_object.set_representation(rep) - #Filters out the duplicate - if rep == bignum_common.ModulusRepresentation.OPT_RED: + # The class is set to having separate test cases for each limb + # size, because the Montgomery representation requires it. + # But other representations don't require it. So for other + # representations, emit a single test case with no dependency + # on the limb size. + if rep is not bignum_common.ModulusRepresentation.MONTGOMERY: test_object.dependencies = [] - if bil == 64: - continue if test_object.is_valid: yield test_object.create_test_case() + if rep is not bignum_common.ModulusRepresentation.MONTGOMERY: + # A single test case (emitted, or skipped due to invalidity) + # is enough, since this test case doesn't depend on the + # limb size. + break + # The parent class doesn't support non-bignum parameters. So we override + # test generation, in order to have the representation as a parameter. @classmethod def generate_function_tests(cls) -> Iterator[test_case.TestCase]: From 5efe449a6af1bb1f77c19bfd913e7506d2234aa9 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 21 Dec 2022 20:33:30 +0100 Subject: [PATCH 1313/1574] More robust dependency filtering Only remove the MBEDTLS_HAVE_INTnn dependency, not any other dependency that might be present. No behavior change, this is just robustness. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/bignum_mod_raw.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 21add3baa..fa95e24fd 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -149,7 +149,9 @@ class BignumModRawConvertRep(bignum_common.ModOperationCommon, # representations, emit a single test case with no dependency # on the limb size. if rep is not bignum_common.ModulusRepresentation.MONTGOMERY: - test_object.dependencies = [] + test_object.dependencies = \ + [dep for dep in test_object.dependencies + if not dep.startswith('MBEDTLS_HAVE_INT')] if test_object.is_valid: yield test_object.create_test_case() if rep is not bignum_common.ModulusRepresentation.MONTGOMERY: From d10e0a63419597441ce612710fb46f32da175eb8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 14:25:26 +0100 Subject: [PATCH 1314/1574] sha: fix minor issues/typos Signed-off-by: Valerio Setti --- include/mbedtls/sha256.h | 4 ++++ include/mbedtls/sha512.h | 5 +++++ programs/fuzz/fuzz_dtlsserver.c | 4 ++-- programs/test/selftest.c | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/sha256.h b/include/mbedtls/sha256.h index 979ad29a0..3d3e3fc6b 100644 --- a/include/mbedtls/sha256.h +++ b/include/mbedtls/sha256.h @@ -178,6 +178,7 @@ int mbedtls_sha256( const unsigned char *input, #if defined(MBEDTLS_SELF_TEST) +#if defined(MBEDTLS_SHA224_C) /** * \brief The SHA-224 checkup routine. * @@ -185,7 +186,9 @@ int mbedtls_sha256( const unsigned char *input, * \return \c 1 on failure. */ int mbedtls_sha224_self_test( int verbose ); +#endif /* MBEDTLS_SHA224_C */ +#if defined(MBEDTLS_SHA256_C) /** * \brief The SHA-256 checkup routine. * @@ -193,6 +196,7 @@ int mbedtls_sha224_self_test( int verbose ); * \return \c 1 on failure. */ int mbedtls_sha256_self_test( int verbose ); +#endif /* MBEDTLS_SHA256_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/sha512.h b/include/mbedtls/sha512.h index 545c81c4d..eb5cef529 100644 --- a/include/mbedtls/sha512.h +++ b/include/mbedtls/sha512.h @@ -195,6 +195,7 @@ int mbedtls_sha512( const unsigned char *input, #if defined(MBEDTLS_SELF_TEST) +#if defined(MBEDTLS_SHA384_C) /** * \brief The SHA-384 checkup routine. * @@ -202,7 +203,9 @@ int mbedtls_sha512( const unsigned char *input, * \return \c 1 on failure. */ int mbedtls_sha384_self_test( int verbose ); +#endif /* MBEDTLS_SHA384_C */ +#if defined(MBEDTLS_SHA512_C) /** * \brief The SHA-512 checkup routine. * @@ -210,6 +213,8 @@ int mbedtls_sha384_self_test( int verbose ); * \return \c 1 on failure. */ int mbedtls_sha512_self_test( int verbose ); +#endif /* MBEDTLS_SHA512_C */ + #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c index 1ef4190fc..17caab211 100644 --- a/programs/fuzz/fuzz_dtlsserver.c +++ b/programs/fuzz/fuzz_dtlsserver.c @@ -18,7 +18,7 @@ defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) const char *pers = "fuzz_dtlsserver"; const unsigned char client_ip[4] = {0x7F, 0, 0, 1}; static int initialized = 0; @@ -36,7 +36,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) int ret; size_t len; mbedtls_ssl_context ssl; diff --git a/programs/test/selftest.c b/programs/test/selftest.c index de1ee0fdb..b4701cbe6 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -244,13 +244,13 @@ const selftest_t selftests[] = {"sha1", mbedtls_sha1_self_test}, #endif #if defined(MBEDTLS_SHA224_C) - {"sha256", mbedtls_sha224_self_test}, + {"sha224", mbedtls_sha224_self_test}, #endif #if defined(MBEDTLS_SHA256_C) {"sha256", mbedtls_sha256_self_test}, #endif #if defined(MBEDTLS_SHA384_C) - {"sha512", mbedtls_sha384_self_test}, + {"sha384", mbedtls_sha384_self_test}, #endif #if defined(MBEDTLS_SHA512_C) {"sha512", mbedtls_sha512_self_test}, From d55cb5b3f0c6443f9d19d76e8ad4f16e6ca367d8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 14:26:55 +0100 Subject: [PATCH 1315/1574] sha: decline MD defines for various SHA Signed-off-by: Valerio Setti --- include/mbedtls/md.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/md.h b/include/mbedtls/md.h index 69f1689da..85ecc43a1 100644 --- a/include/mbedtls/md.h +++ b/include/mbedtls/md.h @@ -63,10 +63,16 @@ typedef enum { MBEDTLS_MD_RIPEMD160, /**< The RIPEMD-160 message digest. */ } mbedtls_md_type_t; -#if defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_SHA384_C) +#if defined(MBEDTLS_SHA512_C) #define MBEDTLS_MD_MAX_SIZE 64 /* longest known is SHA512 */ +#elif defined(MBEDTLS_SHA384_C) +#define MBEDTLS_MD_MAX_SIZE 48 /* longest known is SHA384 */ +#elif defined(MBEDTLS_SHA256_C) +#define MBEDTLS_MD_MAX_SIZE 32 /* longest known is SHA256 */ +#elif defined(MBEDTLS_SHA224_C) +#define MBEDTLS_MD_MAX_SIZE 28 /* longest known is SHA224 */ #else -#define MBEDTLS_MD_MAX_SIZE 32 /* longest known is SHA256 or less */ +#define MBEDTLS_MD_MAX_SIZE 20 /* longest known is SHA1 or RIPE MD-160 */ #endif #if defined(MBEDTLS_SHA512_C) From 543d00ef6fbe24165db0a4a0271b7fd127825509 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 14:27:34 +0100 Subject: [PATCH 1316/1574] sha: remove SHA1 from ssl_cookie Signed-off-by: Valerio Setti --- library/ssl_cookie.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index 0aa7be65d..a996174eb 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -38,23 +38,19 @@ #include /* - * If DTLS is in use, then at least one of SHA-1, SHA-224, SHA-384 is - * available. Try SHA-224 first, 384 wastes resources + * If DTLS is in use, then at least one of SHA-256 or SHA-384 is + * available. Try SHA-256 first as 384 wastes resources */ -#if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) -#define COOKIE_MD MBEDTLS_MD_SHA224 +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) +#define COOKIE_MD MBEDTLS_MD_SHA256 #define COOKIE_MD_OUTLEN 32 #define COOKIE_HMAC_LEN 28 #elif defined(MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA) #define COOKIE_MD MBEDTLS_MD_SHA384 #define COOKIE_MD_OUTLEN 48 #define COOKIE_HMAC_LEN 28 -#elif defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) -#define COOKIE_MD MBEDTLS_MD_SHA1 -#define COOKIE_MD_OUTLEN 20 -#define COOKIE_HMAC_LEN 20 #else -#error "DTLS hello verify needs SHA-1 or SHA-2" +#error "DTLS hello verify needs SHA-256 or SHA-384" #endif /* From b6bf7dcc28dbd0a5778f7c624af161677b0a1562 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 14:28:03 +0100 Subject: [PATCH 1317/1574] test: fix depends.py for hash tests Signed-off-by: Valerio Setti --- tests/scripts/depends.py | 25 ++++++++----------------- tests/suites/test_suite_x509parse.data | 2 +- 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 6469c3d0a..67bf6ddff 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -44,12 +44,6 @@ The configuration building method can be one of the three following: direct dependencies, but rather non-trivial results of other configs missing. Then look for any unset symbols and handle their reverse dependencies. Examples of EXCLUSIVE_GROUPS usage: - - MBEDTLS_SHA256 job turns off all hashes except SHA256, however, when investigating - reverse dependencies, SHA224 is found to depend on SHA256, so it is disabled, - and then SHA256 is found to depend on SHA224, so it is also disabled. To handle - this, there's a field in EXCLUSIVE_GROUPS that states that in a SHA256 test SHA224 - should also be enabled before processing reverse dependencies: - 'MBEDTLS_SHA256_C': ['+MBEDTLS_SHA224_C'] - MBEDTLS_SHA512_C job turns off all hashes except SHA512. MBEDTLS_SSL_COOKIE_C requires either SHA256 or SHA384 to work, so it also has to be disabled. This is not a dependency on SHA512_C, but a result of an exclusive domain @@ -273,10 +267,6 @@ REVERSE_DEPENDENCIES = { # These are not necessarily dependencies, but just minimal required changes # if a given define is the only one enabled from an exclusive group. EXCLUSIVE_GROUPS = { - 'MBEDTLS_SHA224_C': ['+MBEDTLS_SSL_COOKIE_C'], - 'MBEDTLS_SHA256_C': ['-MBEDTLS_SSL_COOKIE_C'], - 'MBEDTLS_SHA384_C': ['+MBEDTLS_SHA512_C', - '+MBEDTLS_SSL_COOKIE_C'], 'MBEDTLS_SHA512_C': ['-MBEDTLS_SSL_COOKIE_C', '-MBEDTLS_SSL_PROTO_TLS1_3'], 'MBEDTLS_ECP_DP_CURVE448_ENABLED': ['-MBEDTLS_ECDSA_C', @@ -419,15 +409,16 @@ class DomainData: build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), - # Hash algorithms. Exclude three groups: - # - Exclusive domain of MD, RIPEMD, SHA1 (obsolete); - # - Exclusive domain of SHA224 (tested with and depends on SHA256); - # - Complementary domain of SHA224 and SHA384 - tested with and depend - # on SHA256 and SHA512, respectively. + # Hash algorithms. Exclude two groups: + # - Exclusive domain of MD, RIPEMD, SHA1; + # - Exclusive domain of SHA224 and SHA384, because MBEDTLS_ENTROPY_C + # is extensively used across various modules, but it depends on + # either SHA256 or SHA512. As a consequence an "exclusive" test + # of SHA224/SHA384 with MBEDTLS_ENTROPY_C enabled is not possible. 'hashes': DualDomain(hash_symbols, build_and_test, exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)' \ - '|MBEDTLS_SHA224_'\ - '|!MBEDTLS_(SHA224_|SHA384_)'), + '|MBEDTLS_SHA224_' \ + '|MBEDTLS_SHA384_'), # Key exchange types. Only build the library and the sample # programs. 'kex': ExclusiveDomain(key_exchange_symbols, diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index b709112aa..5fcbf99df 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -836,7 +836,7 @@ depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_S x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" X509 CRT verification #69 (RSASSA-PSS, wrong mgf_hash) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_verify:"data_files/server9-bad-mgfhash.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" X509 CRT verification #70 (v1 trusted CA) From 65287636f815c3092fde16b8d08cbe2ba31d6e0f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 14:29:40 +0100 Subject: [PATCH 1318/1574] config: remove SHA224_C from some config files Signed-off-by: Valerio Setti --- configs/config-ccm-psk-dtls1_2.h | 4 ---- configs/config-ccm-psk-tls1_2.h | 4 ---- configs/config-suite-b.h | 4 ---- configs/config-thread.h | 4 ---- 4 files changed, 16 deletions(-) diff --git a/configs/config-ccm-psk-dtls1_2.h b/configs/config-ccm-psk-dtls1_2.h index 183815dec..02bc829f9 100644 --- a/configs/config-ccm-psk-dtls1_2.h +++ b/configs/config-ccm-psk-dtls1_2.h @@ -47,10 +47,6 @@ #define MBEDTLS_ENTROPY_C #define MBEDTLS_MD_C #define MBEDTLS_NET_C -/* The library does not currently support enabling SHA-224 without SHA-256. - * A future version of the library will have this option disabled - * by default. */ -#define MBEDTLS_SHA224_C #define MBEDTLS_SHA256_C #define MBEDTLS_SSL_CLI_C #define MBEDTLS_SSL_COOKIE_C diff --git a/configs/config-ccm-psk-tls1_2.h b/configs/config-ccm-psk-tls1_2.h index f935a33f2..84e5db3ad 100644 --- a/configs/config-ccm-psk-tls1_2.h +++ b/configs/config-ccm-psk-tls1_2.h @@ -46,10 +46,6 @@ #define MBEDTLS_ENTROPY_C #define MBEDTLS_MD_C #define MBEDTLS_NET_C -/* The library does not currently support enabling SHA-224 without SHA-256. - * A future version of the library will have this option disabled - * by default. */ -#define MBEDTLS_SHA224_C #define MBEDTLS_SHA256_C #define MBEDTLS_SSL_CLI_C #define MBEDTLS_SSL_SRV_C diff --git a/configs/config-suite-b.h b/configs/config-suite-b.h index 35622fcc6..89898b33a 100644 --- a/configs/config-suite-b.h +++ b/configs/config-suite-b.h @@ -60,10 +60,6 @@ #define MBEDTLS_OID_C #define MBEDTLS_PK_C #define MBEDTLS_PK_PARSE_C -/* The library does not currently support enabling SHA-224 without SHA-256. - * A future version of the library will have this option disabled - * by default. */ -#define MBEDTLS_SHA224_C #define MBEDTLS_SHA256_C #define MBEDTLS_SHA384_C #define MBEDTLS_SHA512_C diff --git a/configs/config-thread.h b/configs/config-thread.h index c032fdc4b..0652136a5 100644 --- a/configs/config-thread.h +++ b/configs/config-thread.h @@ -63,10 +63,6 @@ #define MBEDTLS_OID_C #define MBEDTLS_PK_C #define MBEDTLS_PK_PARSE_C -/* The library does not currently support enabling SHA-224 without SHA-256. - * A future version of the library will have this option disabled - * by default. */ -#define MBEDTLS_SHA224_C #define MBEDTLS_SHA256_C #define MBEDTLS_SSL_COOKIE_C #define MBEDTLS_SSL_CLI_C From fe6c19b69cd1b4ed4ba7193367a35fb8dccb7b7c Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 22 Dec 2022 15:05:27 +0100 Subject: [PATCH 1319/1574] added changelog file for PR #6784 Signed-off-by: Valerio Setti --- .../make_sha224_sha384_independent_from_sha256_sha512.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt diff --git a/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt b/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt new file mode 100644 index 000000000..c56b8829d --- /dev/null +++ b/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt @@ -0,0 +1,4 @@ +Features + * SHA224_C/SHA384_C are now independent from SHA384_C/SHA512_C respectively. + This helps in saving code size when some of the above hashes it not + required. From 59803dba2bce1eada4470d5c64f5e089c6210059 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 22 Dec 2022 16:34:01 +0100 Subject: [PATCH 1320/1574] Support restyling only the specified files Signed-off-by: Gilles Peskine --- scripts/code_style.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 8e82b93fb..77f6a1b6a 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -163,14 +163,26 @@ def main() -> int: + uncrustify_version + "' (Note: The only supported version" \ "is " + UNCRUSTIFY_SUPPORTED_VERSION + ")", file=STDOUT_UTF8) - src_files = get_src_files() - parser = argparse.ArgumentParser() - parser.add_argument('-f', '--fix', action='store_true', \ - help='modify source files to fix the code style') + parser.add_argument('-f', '--fix', action='store_true', + help='modify source files to fix the code style') + # --files is almost useless: it only matters if there are no files + # ('code_style.py' without arguments checks all files known to Git, + # 'code_style.py --files' does nothing). 'code_style.py --files ...' is + # intended as a stable ("porcelain") way to restyle a possibly empty + # set of files. + parser.add_argument('--files', action='store_true', + help='only check the specified files (default with non-option arguments)') + parser.add_argument('operands', nargs='*', metavar='FILE', + help='files to check (if none: check files that are known to git)') args = parser.parse_args() + if args.files or args.operands: + src_files = args.operands + else: + src_files = get_src_files() + if args.fix: # Fix mode return fix_style(src_files) From e19d7e5141286b7a70291bf3264117d9813acc94 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 22 Dec 2022 23:18:30 +0100 Subject: [PATCH 1321/1574] Require a space after a cast Align with K&R2. Signed-off-by: Gilles Peskine --- .uncrustify.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.uncrustify.cfg b/.uncrustify.cfg index ac9173e18..7ce090533 100644 --- a/.uncrustify.cfg +++ b/.uncrustify.cfg @@ -187,8 +187,8 @@ sp_before_comma = remove # No space before the ':' in a case statement sp_before_case_colon = remove -# No space after a cast - '(char) x' -> '(char)x' -sp_after_cast = remove +# Must have space after a cast - '(char)x' -> '(char) x' +sp_after_cast = add # No space between 'sizeof' and '(' sp_sizeof_paren = remove From 77b1452784b7ad5fac04ed3b78c7400e623e7603 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 23 Dec 2022 10:53:06 +0100 Subject: [PATCH 1322/1574] test: fix error in test_suite_ssl Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.function | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 674e6496e..624f8e063 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -4517,7 +4517,7 @@ void ssl_tls13_create_psk_binder( int hash_alg, data_t *transcript, data_t *binder_expected ) { - unsigned char binder[ MBEDTLS_MD_MAX_SIZE ]; + unsigned char binder[ MBEDTLS_HASH_MAX_SIZE ]; /* Double-check that we've passed sane parameters. */ psa_algorithm_t alg = (psa_algorithm_t) hash_alg; @@ -4649,7 +4649,7 @@ void ssl_tls13_key_evolution( int hash_alg, data_t *input, data_t *expected ) { - unsigned char secret_new[ MBEDTLS_MD_MAX_SIZE ]; + unsigned char secret_new[ MBEDTLS_HASH_MAX_SIZE ]; PSA_INIT(); From e269750f0d5bf2fe765dff50764cb4c440c68a0b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 23 Dec 2022 14:29:54 +0100 Subject: [PATCH 1323/1574] sha: fix description for starts functions Signed-off-by: Valerio Setti --- include/mbedtls/sha256.h | 4 ++++ include/mbedtls/sha512.h | 9 +++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/sha256.h b/include/mbedtls/sha256.h index 3d3e3fc6b..d256352c8 100644 --- a/include/mbedtls/sha256.h +++ b/include/mbedtls/sha256.h @@ -96,6 +96,10 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, * \param is224 This determines which function to use. This must be * either \c 0 for SHA-256, or \c 1 for SHA-224. * + * \note is224 must be defined accordingly to the enabled + * MBEDTLS_SHA224_C/MBEDTLS_SHA256_C symbols otherwise the + * function will return #MBEDTLS_ERR_SHA512_BAD_INPUT_DATA. + * * \return \c 0 on success. * \return A negative error code on failure. */ diff --git a/include/mbedtls/sha512.h b/include/mbedtls/sha512.h index eb5cef529..2b1fafd45 100644 --- a/include/mbedtls/sha512.h +++ b/include/mbedtls/sha512.h @@ -99,12 +99,9 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, * \param is384 Determines which function to use. This must be * either \c 0 for SHA-512, or \c 1 for SHA-384. * - * \note is384 must be defined accordingly with the supported - * symbols in the config file. If: - * - is384 is 0, but \c MBEDTLS_SHA384_C is not defined, or - * - is384 is 1, but \c MBEDTLS_SHA512_C is not defined - * then the function will return - * #MBEDTLS_ERR_SHA512_BAD_INPUT_DATA. + * \note is384 must be defined accordingly to the enabled + * MBEDTLS_SHA384_C/MBEDTLS_SHA512_C symbols otherwise the + * function will return #MBEDTLS_ERR_SHA512_BAD_INPUT_DATA. * * \return \c 0 on success. * \return A negative error code on failure. From 326cf46764e246e1870681cca2e19c6c9905c4dd Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 23 Dec 2022 14:57:18 +0100 Subject: [PATCH 1324/1574] test: improved readability in sha self tests Signed-off-by: Valerio Setti --- library/sha256.c | 9 +++------ library/sha512.c | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/library/sha256.c b/library/sha256.c index 4f30e14f8..6965820a2 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -781,15 +781,12 @@ static int mbedtls_sha256_common_self_test( int verbose, int is224 ) unsigned char sha256sum[32]; mbedtls_sha256_context ctx; - sha_test_sum_t* sha_test_sum; - - sha_test_sum = #if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) - ( is224 ) ? sha224_test_sum : sha256_test_sum; + sha_test_sum_t* sha_test_sum = ( is224 ) ? sha224_test_sum : sha256_test_sum; #elif defined(MBEDTLS_SHA256_C) - sha256_test_sum; + sha_test_sum_t* sha_test_sum = sha256_test_sum; #else - sha224_test_sum; + sha_test_sum_t* sha_test_sum = sha224_test_sum; #endif buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); diff --git a/library/sha512.c b/library/sha512.c index 738f170f8..5de151d60 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -953,15 +953,12 @@ static int mbedtls_sha512_common_self_test( int verbose, int is384 ) unsigned char sha512sum[64]; mbedtls_sha512_context ctx; - sha_test_sum_t* sha_test_sum; - - sha_test_sum = #if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) - ( is384 ) ? sha384_test_sum : sha512_test_sum; + sha_test_sum_t* sha_test_sum = ( is384 ) ? sha384_test_sum : sha512_test_sum; #elif defined(MBEDTLS_SHA512_C) - sha512_test_sum; + sha_test_sum_t* sha_test_sum = sha512_test_sum; #else - sha384_test_sum; + sha_test_sum_t* sha_test_sum = sha384_test_sum; #endif buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); From 9d34cf3f0b2d60fa25308649522a24fa53c5bf37 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 23 Dec 2022 18:15:19 +0100 Subject: [PATCH 1325/1574] Documentation improvements Signed-off-by: Gilles Peskine --- scripts/code_style.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 77f6a1b6a..23bb21b3a 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -159,18 +159,20 @@ def main() -> int: """ uncrustify_version = get_uncrustify_version().strip() if UNCRUSTIFY_SUPPORTED_VERSION not in uncrustify_version: - print("Warning: Using unsupported Uncrustify version '" \ - + uncrustify_version + "' (Note: The only supported version" \ - "is " + UNCRUSTIFY_SUPPORTED_VERSION + ")", file=STDOUT_UTF8) + print("Warning: Using unsupported Uncrustify version '" + + uncrustify_version + "'", file=STDOUT_UTF8) + print("Note: The only supported version is " + + UNCRUSTIFY_SUPPORTED_VERSION, file=STDOUT_UTF8) parser = argparse.ArgumentParser() parser.add_argument('-f', '--fix', action='store_true', - help='modify source files to fix the code style') + help=('modify source files to fix the code style ' + '(default: print diff, do not modify files)')) # --files is almost useless: it only matters if there are no files # ('code_style.py' without arguments checks all files known to Git, - # 'code_style.py --files' does nothing). 'code_style.py --files ...' is - # intended as a stable ("porcelain") way to restyle a possibly empty - # set of files. + # 'code_style.py --files' does nothing). In particular, + # 'code_style.py --files ...' is intended as a stable ("porcelain") way + # to restyle a possibly empty set of files. parser.add_argument('--files', action='store_true', help='only check the specified files (default with non-option arguments)') parser.add_argument('operands', nargs='*', metavar='FILE', From c963bb11c7a1cdb470c13728cc05d8df1d1aabaa Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 28 Dec 2022 12:58:14 +0100 Subject: [PATCH 1326/1574] test: remove SHA224 from default test driver config Signed-off-by: Valerio Setti --- tests/include/test/drivers/config_test_driver.h | 2 +- tests/scripts/all.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/include/test/drivers/config_test_driver.h b/tests/include/test/drivers/config_test_driver.h index 6a7fb1f3e..22518bfc4 100644 --- a/tests/include/test/drivers/config_test_driver.h +++ b/tests/include/test/drivers/config_test_driver.h @@ -35,7 +35,6 @@ /* PSA core mandatory configuration options */ #define MBEDTLS_CIPHER_C #define MBEDTLS_AES_C -#define MBEDTLS_SHA224_C #define MBEDTLS_SHA256_C #define MBEDTLS_PSA_BUILTIN_ALG_SHA_256 1 #define MBEDTLS_CTR_DRBG_C @@ -46,6 +45,7 @@ * purpose of a specific set of tests. */ //#define MBEDTLS_SHA1_C +//#define MBEDTLS_SHA224_C //#define MBEDTLS_SHA384_C //#define MBEDTLS_SHA512_C //#define MBEDTLS_MD_C diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index db46b0387..5631b9fe4 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1965,6 +1965,7 @@ component_test_psa_crypto_config_accel_ecdsa () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING # SHA384 needed for some ECDSA signature tests. + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C @@ -1973,6 +1974,7 @@ component_test_psa_crypto_config_accel_ecdsa () { make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" # Restore test driver base configuration + scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C @@ -2057,6 +2059,7 @@ component_test_psa_crypto_config_accel_rsa_signature () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_RIPEMD160_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA1_C + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C # We need to define either MD_C or all of the PSA_WANT_ALG_SHAxxx. scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_MD_C @@ -2071,6 +2074,7 @@ component_test_psa_crypto_config_accel_rsa_signature () { # Restore test driver base configuration scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA1_C + scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_MD_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_PEM_PARSE_C From 62e1ebbbc720ff67837080d596e9c2f5800a9224 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 28 Dec 2022 13:28:42 +0100 Subject: [PATCH 1327/1574] changelog: fix text error Signed-off-by: Valerio Setti --- .../make_sha224_sha384_independent_from_sha256_sha512.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt b/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt index c56b8829d..d2c9b35dd 100644 --- a/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt +++ b/ChangeLog.d/make_sha224_sha384_independent_from_sha256_sha512.txt @@ -1,4 +1,4 @@ Features * SHA224_C/SHA384_C are now independent from SHA384_C/SHA512_C respectively. - This helps in saving code size when some of the above hashes it not + This helps in saving code size when some of the above hashes are not required. From 6ea0a8d88349f1d132ebb0477c0010b70f5949b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 10:07:08 +0100 Subject: [PATCH 1328/1574] Disable 'wrong salt len' PK test with USE_PSA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_pk.data | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_pk.data b/tests/suites/test_suite_pk.data index bd5d31ec4..d796f6ffa 100644 --- a/tests/suites/test_suite_pk.data +++ b/tests/suites/test_suite_pk.data @@ -456,10 +456,14 @@ Verify ext RSA #4 (PKCS1 v2.1, salt_len = max, OK) depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA pk_rsa_verify_ext_test_vec:"c0719e9a8d5d838d861dc6f675c899d2b309a3a65bb9fe6b11e5afcbf9a2c0b1":MBEDTLS_MD_SHA256:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:94:128:0 -Verify ext RSA #5 (PKCS1 v2.1, wrong salt_len) -depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA +Verify ext RSA #5a (PKCS1 v2.1, wrong salt_len) !USE_PSA +depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA:!MBEDTLS_USE_PSA_CRYPTO pk_rsa_verify_ext_test_vec:"c0719e9a8d5d838d861dc6f675c899d2b309a3a65bb9fe6b11e5afcbf9a2c0b1":MBEDTLS_MD_SHA256:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:32:128:MBEDTLS_ERR_RSA_INVALID_PADDING +Verify ext RSA #5b (PKCS1 v2.1, wrong salt_len) USE_PSA +depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA:MBEDTLS_USE_PSA_CRYPTO +pk_rsa_verify_ext_test_vec:"c0719e9a8d5d838d861dc6f675c899d2b309a3a65bb9fe6b11e5afcbf9a2c0b1":MBEDTLS_MD_SHA256:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:32:128:0 + Verify ext RSA #6 (PKCS1 v2.1, MGF1 alg != MSG hash alg) depends_on:MBEDTLS_PKCS1_V21:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA pk_rsa_verify_ext_test_vec:"c0719e9a8d5d838d861dc6f675c899d2b309a3a65bb9fe6b11e5afcbf9a2c0b1":MBEDTLS_MD_NONE:1024:"00dd118a9f99bab068ca2aea3b6a6d5997ed4ec954e40deecea07da01eaae80ec2bb1340db8a128e891324a5c5f5fad8f590d7c8cacbc5fe931dafda1223735279461abaa0572b761631b3a8afe7389b088b63993a0a25ee45d21858bab9931aedd4589a631b37fcf714089f856549f359326dd1e0e86dde52ed66b4a90bda4095":"010001":"0d2bdb0456a3d651d5bd48a4204493898f72cf1aaddd71387cc058bc3f4c235ea6be4010fd61b28e1fbb275462b53775c04be9022d38b6a2e0387dddba86a3f8554d2858044a59fddbd594753fc056fe33c8daddb85dc70d164690b1182209ff84824e0be10e35c379f2f378bf176a9f7cb94d95e44d90276a298c8810f741c9":MBEDTLS_PK_RSASSA_PSS:MBEDTLS_MD_SHA256:MBEDTLS_RSA_SALT_LEN_ANY:128:0 From ea8c88fcbb85917b7e323c016f9ba47bbd55f930 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 29 Dec 2022 11:08:35 +0100 Subject: [PATCH 1329/1574] test: fix some descriptions Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 2 +- tests/scripts/depends.py | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 5631b9fe4..1460ecd48 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1964,7 +1964,7 @@ component_test_psa_crypto_config_accel_ecdsa () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - # SHA384 needed for some ECDSA signature tests. + # These hashes are needed for some ECDSA signature tests. scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 67bf6ddff..51a8ef201 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -409,12 +409,11 @@ class DomainData: build_and_test), # Elliptic curves. Run the test suites. 'curves': ExclusiveDomain(curve_symbols, build_and_test), - # Hash algorithms. Exclude two groups: - # - Exclusive domain of MD, RIPEMD, SHA1; - # - Exclusive domain of SHA224 and SHA384, because MBEDTLS_ENTROPY_C - # is extensively used across various modules, but it depends on - # either SHA256 or SHA512. As a consequence an "exclusive" test - # of SHA224/SHA384 with MBEDTLS_ENTROPY_C enabled is not possible. + # Hash algorithms. Excluding exclusive domains of MD, RIPEMD, SHA1, + # SHA224 and SHA384 because MBEDTLS_ENTROPY_C is extensively used + # across various modules, but it depends on either SHA256 or SHA512. + # As a consequence an "exclusive" test of anything other than SHA256 + # or SHA512 with MBEDTLS_ENTROPY_C enabled is not possible. 'hashes': DualDomain(hash_symbols, build_and_test, exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)' \ '|MBEDTLS_SHA224_' \ From 4511ca063afa82ee0023c0594e72da2d6f3c3725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 30 Dec 2022 10:13:41 +0100 Subject: [PATCH 1330/1574] Use PSS-signed CRL for PSS tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Otherwise, in builds without PKSC1_V15, tests that are supposed to accept the certificate will fail, because once the cert is OK they will move on to checking the CRL and will choke on its non-PSS signature. Tests that are supposed to reject the cert due to an invalid signature from the CA will not check the CRL because they don't recognize the CA as valid, so they have no reason to check the CA's CRL. This was hiding the problem until the recent commit that added a test where the cert is supposed to be accepted. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_x509parse.data | 4 ++-- tests/suites/test_suite_x509parse.function | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index ee204f822..914dffa86 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -833,11 +833,11 @@ x509_verify:"data_files/server9-defaults.crt":"data_files/test-ca.crt":"data_fil X509 CRT verification #68 (RSASSA-PSS, wrong salt_len, !USE_PSA) depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_USE_PSA_CRYPTO -x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" +x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl-rsa-pss-sha1.pem":"NULL":MBEDTLS_ERR_X509_CERT_VERIFY_FAILED:MBEDTLS_X509_BADCERT_NOT_TRUSTED:"compat":"NULL" X509 CRT verification #68 (RSASSA-PSS, wrong salt_len, USE_PSA) depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl.pem":"NULL":0:0:"compat":"NULL" +x509_verify:"data_files/server9-bad-saltlen.crt":"data_files/test-ca.crt":"data_files/crl-rsa-pss-sha1.pem":"NULL":0:0:"compat":"NULL" X509 CRT verification #69 (RSASSA-PSS, wrong mgf_hash) depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index dc36b8166..388d45e45 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -665,8 +665,8 @@ void x509_verify( char *crt_file, char *ca_file, char *crl_file, res = mbedtls_x509_crt_verify_with_profile( &crt, &ca, &crl, profile, cn_name, &flags, f_vrfy, NULL ); - TEST_ASSERT( res == ( result ) ); - TEST_ASSERT( flags == (uint32_t)( flags_result ) ); + TEST_EQUAL( res, result ); + TEST_EQUAL( flags, (uint32_t) flags_result ); #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) /* CRLs aren't supported with CA callbacks, so skip the CA callback From 66edfe45f574e4db123d3a4dafb1d0cf6ac774d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sun, 1 Jan 2023 18:19:49 +0200 Subject: [PATCH 1331/1574] Use `grep -E` instead of `egrep` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `egrep` has been deprecated in GNU grep since 2007, and since 3.8 it emits obsolescence warnings: https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 Signed-off-by: Ville Skyttä --- tests/scripts/doxygen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/doxygen.sh b/tests/scripts/doxygen.sh index 2c523ba78..e3550738c 100755 --- a/tests/scripts/doxygen.sh +++ b/tests/scripts/doxygen.sh @@ -35,7 +35,7 @@ cat doc.out doc.err | \ grep -v "warning: ignoring unsupported tag" \ > doc.filtered -if egrep "(warning|error):" doc.filtered; then +if grep -E "(warning|error):" doc.filtered; then echo "FAIL" >&2 exit 1; fi From e3d8f31ba1787752eaf8786ec24f776bc1104c80 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 3 Jan 2023 11:07:09 +0000 Subject: [PATCH 1332/1574] Workaround Uncrustify parsing of "asm" The following code: #ifndef asm #define asm __asm #endif causes Uncrustify to stop correcting the rest of the file. This may be due to parsing the "asm" keyword in the definition. Work around this by wrapping the idiom in an *INDENT-OFF* comment wherever it appears. Signed-off-by: David Horstmann --- library/aesni.c | 2 ++ library/bn_mul.h | 2 ++ library/padlock.c | 2 ++ library/sha256.c | 2 ++ library/sha512.c | 4 ++++ programs/test/benchmark.c | 2 ++ 6 files changed, 14 insertions(+) diff --git a/library/aesni.c b/library/aesni.c index 87d818af7..12125c98c 100644 --- a/library/aesni.c +++ b/library/aesni.c @@ -36,9 +36,11 @@ #include +/* *INDENT-OFF* */ #ifndef asm #define asm __asm #endif +/* *INDENT-ON* */ #if defined(MBEDTLS_HAVE_X86_64) diff --git a/library/bn_mul.h b/library/bn_mul.h index 6b8106f9f..a34a7c7d5 100644 --- a/library/bn_mul.h +++ b/library/bn_mul.h @@ -82,9 +82,11 @@ #if defined(MBEDTLS_HAVE_ASM) +/* *INDENT-OFF* */ #ifndef asm #define asm __asm #endif +/* *INDENT-ON* */ /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */ #if defined(__GNUC__) && \ diff --git a/library/padlock.c b/library/padlock.c index a1287759e..81bea1f8c 100644 --- a/library/padlock.c +++ b/library/padlock.c @@ -31,9 +31,11 @@ #include +/* *INDENT-OFF* */ #ifndef asm #define asm __asm #endif +/* *INDENT-ON* */ #if defined(MBEDTLS_HAVE_X86) diff --git a/library/sha256.c b/library/sha256.c index 6965820a2..6e6a58f88 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -89,9 +89,11 @@ static int mbedtls_a64_crypto_sha256_determine_support( void ) #include #include +/* *INDENT-OFF* */ #ifndef asm #define asm __asm__ #endif +/* *INDENT-ON* */ static jmp_buf return_from_sigill; diff --git a/library/sha512.c b/library/sha512.c index 5de151d60..46e3dabb1 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -104,9 +104,11 @@ static int mbedtls_a64_crypto_sha512_determine_support( void ) #include #include +/* *INDENT-OFF* */ #ifndef asm #define asm __asm__ #endif +/* *INDENT-ON* */ static jmp_buf return_from_sigill; @@ -297,9 +299,11 @@ static const uint64_t K[80] = # define mbedtls_internal_sha512_process_a64_crypto mbedtls_internal_sha512_process #endif +/* *INDENT-OFF* */ #ifndef asm #define asm __asm__ #endif +/* *INDENT-ON* */ /* Accelerated SHA-512 implementation originally written by Simon Tatham for PuTTY, * under the MIT licence; dual-licensed as Apache 2 with his kind permission. diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 1ad2034d4..8fb0fef56 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -61,9 +61,11 @@ int main( void ) #include "mbedtls/error.h" +/* *INDENT-OFF* */ #ifndef asm #define asm __asm #endif +/* *INDENT-ON* */ #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) From 18c9fed857f57ec100702b54e185e786e4695590 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 30 Dec 2022 17:44:24 +0100 Subject: [PATCH 1333/1574] tls: remove dependency from mbedtls_ecp_curve functions Signed-off-by: Valerio Setti --- include/mbedtls/psa_util.h | 16 ----- library/ssl_client.c | 10 ++-- library/ssl_misc.h | 70 ++++++++++++++++++++-- library/ssl_tls.c | 120 +++++++++++++++++++++++++++++++++---- library/ssl_tls12_client.c | 17 +++--- library/ssl_tls12_server.c | 66 +++++++++++--------- library/ssl_tls13_client.c | 19 +++--- 7 files changed, 238 insertions(+), 80 deletions(-) diff --git a/include/mbedtls/psa_util.h b/include/mbedtls/psa_util.h index f030bea94..f2f540085 100644 --- a/include/mbedtls/psa_util.h +++ b/include/mbedtls/psa_util.h @@ -264,22 +264,6 @@ static inline int mbedtls_psa_get_ecc_oid_from_id( #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH \ PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE( PSA_VENDOR_ECC_MAX_CURVE_BITS ) -/* This function transforms an ECC group identifier from - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * into a PSA ECC group identifier. */ -#if defined(MBEDTLS_ECP_C) -static inline psa_key_type_t mbedtls_psa_parse_tls_ecc_group( - uint16_t tls_ecc_grp_reg_id, size_t *bits ) -{ - const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_tls_id( tls_ecc_grp_reg_id ); - if( curve_info == NULL ) - return( 0 ); - return( PSA_KEY_TYPE_ECC_KEY_PAIR( - mbedtls_ecc_group_to_psa( curve_info->grp_id, bits ) ) ); -} -#endif /* MBEDTLS_ECP_C */ - /* Expose whatever RNG the PSA subsystem uses to applications using the * mbedtls_xxx API. The declarations and definitions here need to be * consistent with the implementation in library/psa_crypto_random_impl.h. diff --git a/library/ssl_client.c b/library/ssl_client.c index e83884594..d1a66401f 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -266,15 +266,17 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, ( mbedtls_ssl_conf_is_tls12_enabled( ssl->conf ) && mbedtls_ssl_tls12_named_group_is_ecdhe( *group_list ) ) ) { - const mbedtls_ecp_curve_info *curve_info; - curve_info = mbedtls_ecp_curve_info_from_tls_id( *group_list ); - if( curve_info == NULL ) + if( mbedtls_ssl_get_ecp_group_id_from_tls_id( *group_list ) == + MBEDTLS_ECP_DP_NONE ) + { continue; + } MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); MBEDTLS_PUT_UINT16_BE( *group_list, p, 0 ); p += 2; MBEDTLS_SSL_DEBUG_MSG( 3, ( "NamedGroup: %s ( %x )", - curve_info->name, *group_list ) ); + mbedtls_ssl_get_curve_name_from_tls_id( *group_list ), + *group_list ) ); } #endif /* MBEDTLS_ECP_C */ /* Add DHE groups here */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 82549642f..acb38cf81 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -787,7 +787,7 @@ struct mbedtls_ssl_handshake_params #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - const mbedtls_ecp_curve_info **curves; /*!< Supported elliptic curves */ + uint16_t *curves_tls_id; /*!< List of TLS IDs of supported elliptic curves */ #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) @@ -1576,6 +1576,69 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id ); #endif +/** + * \brief Return PSA EC info for the specified TLS ID. + * + * \param tls_id The TLS ID to look for + * \param family If the TLD ID is supported, then proper \c psa_ecc_family_t + * value is returned here. Can be NULL. + * \param bits If the TLD ID is supported, then proper bit size is returned + * here. Can be NULL. + * \return PSA_SUCCESS if the TLS ID is supported, + * PSA_ERROR_NOT_SUPPORTED otherwise + * + * \note If either \c family or \c bits parameters are NULL, then + * the corresponding value is not returned. + * The function can be called with both parameters as NULL + * simply to check if a specific TLS ID is supported. + */ +int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, + psa_ecc_family_t *family, + size_t* bits ); + +/** + * \brief Return \c mbedtls_ecp_group_id for the specified TLS ID. + * + * \param tls_id The TLS ID to look for + * \return Proper \c mbedtls_ecp_group_id if the TLS ID is supported, + * or MBEDTLS_ECP_DP_NONE otherwise + */ +mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ); + +/** + * \brief Return TLS ID for the specified \c mbedtls_ecp_group_id. + * + * \param grp_id The \c mbedtls_ecp_group_id ID to look for + * \return Proper TLS ID if the \c mbedtls_ecp_group_id is supported, + * or 0 otherwise + */ +uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ); + +/** + * \brief Return EC's name for the specified TLS ID. + * + * \param tls_id The TLS ID to look for + * \return A pointer to a const string with the proper name. If TLS + * ID is not suppoted, a NULL pointer is returned insted. + */ +const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ); + +/* This function transforms an ECC group identifier from + * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 + * into a PSA ECC group identifier. */ +#if defined(MBEDTLS_ECP_C) +static inline psa_key_type_t mbedtls_psa_parse_tls_ecc_group( + uint16_t tls_ecc_grp_reg_id, size_t *bits ) +{ + mbedtls_ecp_group_id grp_id = + mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_ecc_grp_reg_id ); + if( grp_id == MBEDTLS_ECP_DP_NONE ) + return( 0 ); + return( PSA_KEY_TYPE_ECC_KEY_PAIR( + mbedtls_ecc_group_to_psa( grp_id, bits ) ) ); +} +#endif /* MBEDTLS_ECP_C */ + #if defined(MBEDTLS_SSL_DTLS_SRTP) static inline mbedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value ( const uint16_t srtp_profile_value ) @@ -2173,9 +2236,8 @@ static inline int mbedtls_ssl_named_group_is_supported( uint16_t named_group ) #if defined(MBEDTLS_ECDH_C) if( mbedtls_ssl_tls13_named_group_is_ecdhe( named_group ) ) { - const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_tls_id( named_group ); - if( curve_info != NULL ) + if( mbedtls_ssl_get_ecp_group_id_from_tls_id( named_group ) != + MBEDTLS_ECP_DP_NONE ) return( 1 ); } #else diff --git a/library/ssl_tls.c b/library/ssl_tls.c index b75761317..dbee38961 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -1064,14 +1064,14 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) for( size_t i = 0; i < length; i++ ) { - const mbedtls_ecp_curve_info *info = - mbedtls_ecp_curve_info_from_grp_id( curve_list[i] ); - if ( info == NULL ) + uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( + curve_list[i] ); + if ( tls_id == 0 ) { mbedtls_free( group_list ); return( MBEDTLS_ERR_SSL_BAD_CONFIG ); } - group_list[i] = info->tls_id; + group_list[i] = tls_id; } group_list[length] = 0; @@ -4048,7 +4048,7 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) /* explicit void pointer cast for buggy MS compiler */ - mbedtls_free( (void *) handshake->curves ); + mbedtls_free( (void *) handshake->curves_tls_id ); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) @@ -5468,18 +5468,118 @@ int mbedtls_ssl_check_curve_tls_id( const mbedtls_ssl_context *ssl, uint16_t tls */ int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id ) { - const mbedtls_ecp_curve_info *grp_info = - mbedtls_ecp_curve_info_from_grp_id( grp_id ); + uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( grp_id ); - if ( grp_info == NULL ) + if ( tls_id == 0 ) return -1; - uint16_t tls_id = grp_info->tls_id; - return mbedtls_ssl_check_curve_tls_id( ssl, tls_id ); } #endif /* MBEDTLS_ECP_C */ +static const struct { + uint16_t tls_id; + mbedtls_ecp_group_id ecp_group_id; + psa_ecc_family_t psa_family; + uint16_t bits; + const char* name; +} tls_id_match_table[] = +{ +#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_521) + { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521, "secp521r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) + { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512, "brainpoolP512r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384, "secp384r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384) + { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384, "brainpoolP384r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256, "secp256r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_256) + { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256, "secp256k1" }, +#endif +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256) + { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256, "brainpoolP256r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_224) + { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224, "secp224r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_224) + { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224, "secp224k1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_192) + { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192, "secp192r1" }, +#endif +#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_192) + { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192, "secp192k1" }, +#endif +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_255) + { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256, "x25519" }, +#endif +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_448) + { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448, "x448" }, +#endif + { 0, MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, +}; + +int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, + psa_ecc_family_t *family, + size_t* bits ) +{ + for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) + { + if( tls_id_match_table[i].tls_id == tls_id ) + { + if( family != NULL ) + *family = tls_id_match_table[i].psa_family; + if( bits != NULL ) + *bits = tls_id_match_table[i].bits; + return PSA_SUCCESS; + } + } + + return PSA_ERROR_NOT_SUPPORTED; +} + +mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ) +{ + for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) + { + if( tls_id_match_table[i].tls_id == tls_id ) + return tls_id_match_table[i].ecp_group_id; + } + + return MBEDTLS_ECP_DP_NONE; +} + +uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) +{ + for( int i = 0; tls_id_match_table[i].ecp_group_id != MBEDTLS_ECP_DP_NONE; + i++ ) + { + if( tls_id_match_table[i].ecp_group_id == grp_id ) + return tls_id_match_table[i].tls_id; + } + + return 0; +} + +const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ) +{ + for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) + { + if( tls_id_match_table[i].tls_id == tls_id ) + return tls_id_match_table[i].name; + } + + return NULL; +} + #if defined(MBEDTLS_X509_CRT_PARSE_C) int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert, const mbedtls_ssl_ciphersuite_t *ciphersuite, diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 76588d30b..7c54820f3 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1870,7 +1870,7 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) { - const mbedtls_ecp_curve_info *curve_info; + uint16_t tls_id; mbedtls_ecp_group_id grp_id; #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) grp_id = ssl->handshake->ecdh_ctx.grp.id; @@ -1878,14 +1878,15 @@ static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) grp_id = ssl->handshake->ecdh_ctx.grp_id; #endif - curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); - if( curve_info == NULL ) + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( grp_id ); + if( tls_id == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", curve_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id( tls_id ) ) ); if( mbedtls_ssl_check_curve( ssl, grp_id ) != 0 ) return( -1 ); @@ -2346,16 +2347,16 @@ start_processing: * that TLS ID here */ uint16_t read_tls_id = MBEDTLS_GET_UINT16_BE( p, 1 ); - const mbedtls_ecp_curve_info *curve_info; + uint16_t exp_tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( + MBEDTLS_ECP_DP_SECP256R1 ); - if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( - MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) + if( exp_tls_id == 0 ) { return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } if( ( *p != MBEDTLS_ECP_TLS_NAMED_CURVE ) || - ( read_tls_id != curve_info->tls_id ) ) + ( read_tls_id != exp_tls_id ) ) { return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 5cdbcc016..a90617f9a 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -180,7 +180,7 @@ static int ssl_parse_supported_groups_ext( mbedtls_ssl_context *ssl, { size_t list_size, our_size; const unsigned char *p; - const mbedtls_ecp_curve_info *curve_info, **curves; + uint16_t *curves_tls_id; if ( len < 2 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); @@ -199,7 +199,7 @@ static int ssl_parse_supported_groups_ext( mbedtls_ssl_context *ssl, } /* Should never happen unless client duplicates the extension */ - if( ssl->handshake->curves != NULL ) + if( ssl->handshake->curves_tls_id != NULL ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, @@ -213,23 +213,25 @@ static int ssl_parse_supported_groups_ext( mbedtls_ssl_context *ssl, if( our_size > MBEDTLS_ECP_DP_MAX ) our_size = MBEDTLS_ECP_DP_MAX; - if( ( curves = mbedtls_calloc( our_size, sizeof( *curves ) ) ) == NULL ) + if( ( curves_tls_id = mbedtls_calloc( our_size, + sizeof( *curves_tls_id ) ) ) == NULL ) { mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); } - ssl->handshake->curves = curves; + ssl->handshake->curves_tls_id = curves_tls_id; p = buf + 2; while( list_size > 0 && our_size > 1 ) { - curve_info = mbedtls_ecp_curve_info_from_tls_id( ( p[0] << 8 ) | p[1] ); + uint16_t curr_tls_id = MBEDTLS_GET_UINT16_BE( p, 0 ); - if( curve_info != NULL ) + if( mbedtls_ssl_get_ecp_group_id_from_tls_id( curr_tls_id ) != + MBEDTLS_ECP_DP_NONE ) { - *curves++ = curve_info; + *curves_tls_id++ = curr_tls_id; our_size--; } @@ -685,16 +687,18 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_ECDSA_C) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_check_key_curve( mbedtls_pk_context *pk, - const mbedtls_ecp_curve_info **curves ) + uint16_t *curves_tls_id ) { - const mbedtls_ecp_curve_info **crv = curves; + uint16_t *curr_tls_id = curves_tls_id; mbedtls_ecp_group_id grp_id = mbedtls_pk_ec( *pk )->grp.id; + mbedtls_ecp_group_id curr_grp_id; - while( *crv != NULL ) + while( *curr_tls_id != 0 ) { - if( (*crv)->grp_id == grp_id ) + curr_grp_id = mbedtls_ssl_get_ecp_group_id_from_tls_id( *curr_tls_id ); + if( curr_grp_id == grp_id ) return( 0 ); - crv++; + curr_tls_id++; } return( -1 ); @@ -789,7 +793,8 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_ECDSA_C) if( pk_alg == MBEDTLS_PK_ECDSA && - ssl_check_key_curve( &cur->cert->pk, ssl->handshake->curves ) != 0 ) + ssl_check_key_curve( &cur->cert->pk, + ssl->handshake->curves_tls_id ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: elliptic curve" ) ); continue; @@ -857,8 +862,8 @@ static int ssl_ciphersuite_match( mbedtls_ssl_context *ssl, int suite_id, #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) if( mbedtls_ssl_ciphersuite_uses_ec( suite_info ) && - ( ssl->handshake->curves == NULL || - ssl->handshake->curves[0] == NULL ) ) + ( ssl->handshake->curves_tls_id == NULL || + ssl->handshake->curves_tls_id[0] == 0 ) ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: " "no common elliptic curve" ) ); @@ -2849,7 +2854,6 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, ssl->out_msglen; size_t output_offset = 0; size_t output_len = 0; - const mbedtls_ecp_curve_info *curve_info; /* * The first 3 bytes are: @@ -2859,13 +2863,14 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * However since we only support secp256r1 for now, we hardcode its * TLS ID here */ - if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( - MBEDTLS_ECP_DP_SECP256R1 ) ) == NULL ) + uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( + MBEDTLS_ECP_DP_SECP256R1 ); + if( tls_id ==0 ) { return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } *out_p = MBEDTLS_ECP_TLS_NAMED_CURVE; - MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, out_p, 1 ); + MBEDTLS_PUT_UINT16_BE( tls_id, out_p, 1 ); output_offset += 3; ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, @@ -2986,27 +2991,29 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * ECPoint public; * } ServerECDHParams; */ - const mbedtls_ecp_curve_info **curve = NULL; + uint16_t *curr_tls_id = ssl->handshake->curves_tls_id; const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; /* Match our preference list against the offered curves */ - if( group_list == NULL ) + if( ( group_list == NULL ) || ( curr_tls_id == NULL ) ) return( MBEDTLS_ERR_SSL_BAD_CONFIG ); for( ; *group_list != 0; group_list++ ) - for( curve = ssl->handshake->curves; *curve != NULL; curve++ ) - if( (*curve)->tls_id == *group_list ) + for( curr_tls_id = ssl->handshake->curves_tls_id; + *curr_tls_id != 0; curr_tls_id++ ) + if( *curr_tls_id == *group_list ) goto curve_matching_done; curve_matching_done: - if( curve == NULL || *curve == NULL ) + if( *curr_tls_id == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "no matching curve for ECDHE" ) ); return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDHE curve: %s", (*curve)->name ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDHE curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id(*curr_tls_id) ) ); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_GENERIC_ERROR; @@ -3022,7 +3029,7 @@ curve_matching_done: /* Convert EC group to PSA key type. */ handshake->ecdh_psa_type = mbedtls_psa_parse_tls_ecc_group( - (*curve)->tls_id, &ecdh_bits ); + *curr_tls_id, &ecdh_bits ); if( handshake->ecdh_psa_type == 0 ) { @@ -3047,7 +3054,7 @@ curve_matching_done: /* * Next two bytes are the namedcurve value */ - MBEDTLS_PUT_UINT16_BE( (*curve)->tls_id, p, 0 ); + MBEDTLS_PUT_UINT16_BE( *curr_tls_id, p, 0 ); p += 2; /* Generate ECDH private key. */ @@ -3093,8 +3100,11 @@ curve_matching_done: /* Determine full message length. */ len += header_size; #else + mbedtls_ecp_group_id curr_grp_id = + mbedtls_ssl_get_ecp_group_id_from_tls_id( *curr_tls_id ); + if( ( ret = mbedtls_ecdh_setup( &ssl->handshake->ecdh_ctx, - (*curve)->grp_id ) ) != 0 ) + curr_grp_id ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecp_group_load", ret ); return( ret ); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 839b95445..b43bb5f71 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -230,9 +230,8 @@ static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, for ( ; *group_list != 0; group_list++ ) { - const mbedtls_ecp_curve_info *curve_info; - curve_info = mbedtls_ecp_curve_info_from_tls_id( *group_list ); - if( curve_info != NULL && + if( ( mbedtls_ssl_get_psa_curve_info_from_tls_id( *group_list, + NULL, NULL ) == PSA_SUCCESS ) && mbedtls_ssl_tls13_named_group_is_ecdhe( *group_list ) ) { *group_id = *group_list; @@ -385,7 +384,6 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, const unsigned char *end ) { #if defined(MBEDTLS_ECDH_C) - const mbedtls_ecp_curve_info *curve_info = NULL; const unsigned char *p = buf; int selected_group; int found = 0; @@ -412,8 +410,9 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, */ for( ; *group_list != 0; group_list++ ) { - curve_info = mbedtls_ecp_curve_info_from_tls_id( *group_list ); - if( curve_info == NULL || curve_info->tls_id != selected_group ) + if( ( mbedtls_ssl_get_psa_curve_info_from_tls_id( *group_list, + NULL, NULL ) == PSA_ERROR_NOT_SUPPORTED ) || + *group_list != selected_group ) continue; /* We found a match */ @@ -493,15 +492,15 @@ static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_ECDH_C) if( mbedtls_ssl_tls13_named_group_is_ecdhe( group ) ) { - const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_tls_id( group ); - if( curve_info == NULL ) + if( mbedtls_ssl_get_psa_curve_info_from_tls_id( group, NULL, NULL ) + == PSA_ERROR_NOT_SUPPORTED ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid TLS curve group id" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", curve_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id( group ) ) ); ret = mbedtls_ssl_tls13_read_public_ecdhe_share( ssl, p, end - p ); if( ret != 0 ) From 3322f611e6f7a2c06c1e4bdcbaf00c6b63595f9f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 30 Dec 2022 17:45:05 +0100 Subject: [PATCH 1334/1574] test: verify that TLS and X509 are independent from mbedtls_ecp_curve functions Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 18dc8a668..046a07352 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -939,6 +939,19 @@ component_test_full_cmake_gcc_asan () { msg "test: context-info.sh (full config, ASan build)" # ~ 15 sec tests/context-info.sh + + # Verify that TLS and X509 libraries have no dipendency from + # "mbedtls_ecp_curve" symbols. + msg "test: verify that TLS and X509 have no dependency from mbedtls_ecp_curve symbols" + docs/architecture/psa-migration/syms.sh full + + not grep mbedtls_ecp_curve full-tls-external + not grep mbedtls_ecp_curve full-x509-external + + rm full-tls-external \ + full-tls-modules \ + full-x509-external \ + full-x509-modules } component_test_psa_crypto_key_id_encodes_owner () { From 73260b6e650679a35700c3b360af07e0ddff9657 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 3 Jan 2023 12:53:28 +0100 Subject: [PATCH 1335/1574] test: extend test_suite_ssl for testing new functions Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.data | 4 ++ tests/suites/test_suite_ssl.function | 97 ++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 1b5e44baa..03acc292d 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3547,3 +3547,7 @@ ssl_ecjpake_set_password:0 EC-JPAKE set opaque password depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO ssl_ecjpake_set_password:1 + +Test Elliptic curves' info parsing +depends_on:MBEDTLS_SSL_TLS_C +elliptic_curve_get_properties diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 95fa8ef85..087448dc3 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2597,6 +2597,25 @@ int tweak_tls13_certificate_msg_vector_len( pwd_string, pwd_len ); \ TEST_EQUAL( ret, exp_ret_val ) #endif + +#define TEST_AVAILABLE_ECC( _tls_id, _group_id, _psa_family, _psa_bits ) \ + TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( _tls_id ), \ + _group_id ); \ + TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( _group_id ), \ + _tls_id ); \ + TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( _tls_id, \ + &psa_family, &psa_bits), PSA_SUCCESS ); \ + TEST_EQUAL( _psa_family, psa_family ); \ + TEST_EQUAL( _psa_bits, psa_bits ); + +#define TEST_UNAVAILABLE_ECC( _tls_id, _group_id, _psa_family, _psa_bits ) \ + TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( _tls_id ), \ + MBEDTLS_ECP_DP_NONE ); \ + TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( _group_id ), \ + 0 ); \ + TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( _tls_id, \ + &psa_family, &psa_bits), PSA_ERROR_NOT_SUPPORTED ); + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -6094,3 +6113,81 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) USE_PSA_DONE( ); } /* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SSL_TLS_C*/ +void elliptic_curve_get_properties( ) +{ + psa_ecc_family_t psa_family; + size_t psa_bits; + + USE_PSA_INIT( ); + +#if defined( MBEDTLS_ECP_DP_SECP521R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_521) + TEST_AVAILABLE_ECC( 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521 ); +#else + TEST_UNAVAILABLE_ECC( 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521 ); +#endif +#if defined( MBEDTLS_ECP_DP_BP512R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) + TEST_AVAILABLE_ECC( 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 ); +#else + TEST_UNAVAILABLE_ECC( 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP384R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + TEST_AVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); +#else + TEST_UNAVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); +#endif +#if defined( MBEDTLS_ECP_DP_BP384R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_384) + TEST_AVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); +#else + TEST_UNAVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP256R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + TEST_AVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); +#else + TEST_UNAVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP256K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_256) + TEST_AVAILABLE_ECC( 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 ); +#else + TEST_UNAVAILABLE_ECC( 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 ); +#endif +#if defined( MBEDTLS_ECP_DP_BP256R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_256) + TEST_AVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); +#else + TEST_UNAVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP224R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_224) + TEST_AVAILABLE_ECC( 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224 ); +#else + TEST_UNAVAILABLE_ECC( 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP224K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_224) + TEST_AVAILABLE_ECC( 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224 ); +#else + TEST_UNAVAILABLE_ECC( 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP192R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_192) + TEST_AVAILABLE_ECC( 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192 ); +#else + TEST_UNAVAILABLE_ECC( 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192 ); +#endif +#if defined( MBEDTLS_ECP_DP_SECP192K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_192) + TEST_AVAILABLE_ECC( 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 ); +#else + TEST_UNAVAILABLE_ECC( 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 ); +#endif +#if defined( MBEDTLS_ECP_DP_CURVE25519_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_255) + TEST_AVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256 ); +#else + TEST_UNAVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256 ); +#endif +#if defined( MBEDTLS_ECP_DP_CURVE448_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_448) + TEST_AVAILABLE_ECC( 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 ); +#else + TEST_UNAVAILABLE_ECC( 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 ); +#endif + + USE_PSA_DONE( ); +} +/* END_CASE */ From e1655b8132cda29e6c0d15d5f45a5604fbd206c2 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 3 Jan 2023 15:35:25 +0100 Subject: [PATCH 1336/1574] test: add test for building without BIGNUM_C Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 18dc8a668..a6b4bcb2e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1277,6 +1277,57 @@ component_test_crypto_full_no_cipher () { make test } +component_test_full_no_bignum () { + msg "build: full minus bignum" + scripts/config.py full + scripts/config.py unset MBEDTLS_BIGNUM_C + # Direct dependencies of bignum + scripts/config.py unset MBEDTLS_ECP_C + scripts/config.py unset MBEDTLS_RSA_C + scripts/config.py unset MBEDTLS_DHM_C + # Direct dependencies of ECP + scripts/config.py unset MBEDTLS_ECDH_C + scripts/config.py unset MBEDTLS_ECDSA_C + scripts/config.py unset MBEDTLS_ECJPAKE_C + scripts/config.py unset MBEDTLS_ECP_RESTARTABLE + # Indirect dependencies of ECP + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED + scripts/config.py unset MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + # Direct dependencies of DHM + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED + # Direct dependencies of RSA + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_RSA_ENABLED + scripts/config.py unset MBEDTLS_X509_RSASSA_PSS_SUPPORT + # PK and its dependencies + scripts/config.py unset MBEDTLS_PK_C + scripts/config.py unset MBEDTLS_PK_PARSE_C + scripts/config.py unset MBEDTLS_PK_WRITE_C + scripts/config.py unset MBEDTLS_X509_USE_C + scripts/config.py unset MBEDTLS_X509_CRT_PARSE_C + scripts/config.py unset MBEDTLS_X509_CRL_PARSE_C + scripts/config.py unset MBEDTLS_X509_CSR_PARSE_C + scripts/config.py unset MBEDTLS_X509_CREATE_C + scripts/config.py unset MBEDTLS_X509_CRT_WRITE_C + scripts/config.py unset MBEDTLS_X509_CSR_WRITE_C + scripts/config.py unset MBEDTLS_PKCS7_C + scripts/config.py unset MBEDTLS_SSL_SERVER_NAME_INDICATION + scripts/config.py unset MBEDTLS_SSL_ASYNC_PRIVATE + scripts/config.py unset MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK + + make + + msg "test: full minus bignum" + make test +} + component_test_tls1_2_default_stream_cipher_only () { msg "build: default with only stream cipher" From a4bb0fabeaeceb6da18b10886a1d97b640f30275 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 3 Jan 2023 15:36:25 +0100 Subject: [PATCH 1337/1574] check_config: add missing dependencies for the build without BIGNUM Signed-off-by: Valerio Setti --- include/mbedtls/check_config.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 99584c42f..216107dce 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -872,6 +872,10 @@ #error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_ASYNC_PRIVATE) && !defined(MBEDTLS_X509_CRT_PARSE_C) +#error "MBEDTLS_SSL_ASYNC_PRIVATE defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \ ( !defined(MBEDTLS_MD_C) && !defined(MBEDTLS_USE_PSA_CRYPTO) ) ) #error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites" @@ -1021,6 +1025,11 @@ #error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) && \ + ( !defined(MBEDTLS_X509_CSR_WRITE_C) ) +#error "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64) #error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously" #endif /* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */ From 9502b56192aee26d1a9ff467fdb8bfa7b5387029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 4 Jan 2023 13:16:53 +0100 Subject: [PATCH 1338/1574] Fix test function derive_key_exercise() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mbedtls_test_psa_setup_key_derivation_wrap() returns 1 for success, 0 for error, so the test here was wrong. This is just a hotfix in order to avoid a testing gap. Larger issues not addressed here: - I don't think we should just exit and mark the test as passed; if we're not doing the actual testing this should be marked as SKIP. - Returning 1 for success and 0 for failure is a violation of our documented coding guidelines. We're also supposed to test with == 0 or != 0. Having consistent conventions is supposed to help avoid errors like this. Signed-off-by: Manuel Pégourié-Gonnard --- tests/suites/test_suite_psa_crypto.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index a4c19b8b0..b236ea8f8 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -7946,7 +7946,7 @@ void derive_key_exercise( int alg_arg, &base_key ) ); /* Derive a key. */ - if ( mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, + if ( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, input1->x, input1->len, input2->x, input2->len, capacity ) ) From 40d9ca907bfd8a6e0337a7b9f19c5691d35213ab Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 4 Jan 2023 16:08:04 +0100 Subject: [PATCH 1339/1574] tls: remove useless legacy function Signed-off-by: Valerio Setti --- library/ssl_misc.h | 18 +----------------- library/ssl_tls12_client.c | 12 +++++++----- library/ssl_tls12_server.c | 14 +++++++------- library/ssl_tls13_generic.c | 17 ++++++++++------- 4 files changed, 25 insertions(+), 36 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index acb38cf81..b9fd53e76 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1619,26 +1619,10 @@ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) * * \param tls_id The TLS ID to look for * \return A pointer to a const string with the proper name. If TLS - * ID is not suppoted, a NULL pointer is returned insted. + * ID is not suppoted, a NULL pointer is returned instead. */ const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ); -/* This function transforms an ECC group identifier from - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * into a PSA ECC group identifier. */ -#if defined(MBEDTLS_ECP_C) -static inline psa_key_type_t mbedtls_psa_parse_tls_ecc_group( - uint16_t tls_ecc_grp_reg_id, size_t *bits ) -{ - mbedtls_ecp_group_id grp_id = - mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_ecc_grp_reg_id ); - if( grp_id == MBEDTLS_ECP_DP_NONE ) - return( 0 ); - return( PSA_KEY_TYPE_ECC_KEY_PAIR( - mbedtls_ecc_group_to_psa( grp_id, bits ) ) ); -} -#endif /* MBEDTLS_ECP_C */ - #if defined(MBEDTLS_SSL_DTLS_SRTP) static inline mbedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value ( const uint16_t srtp_profile_value ) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 7c54820f3..58f0a375c 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -1800,9 +1800,10 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, unsigned char *end ) { uint16_t tls_id; - size_t ecdh_bits = 0; uint8_t ecpoint_len; mbedtls_ssl_handshake_params *handshake = ssl->handshake; + psa_ecc_family_t ec_psa_family = 0; + size_t ec_bits = 0; /* * struct { @@ -1836,13 +1837,14 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - /* Convert EC group to PSA key type. */ - if( ( handshake->ecdh_psa_type = - mbedtls_psa_parse_tls_ecc_group( tls_id, &ecdh_bits ) ) == 0 ) + /* Convert EC's TLS ID to PSA key type. */ + if( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ec_psa_family, + &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) { return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - handshake->ecdh_bits = ecdh_bits; + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + handshake->ecdh_bits = ec_bits; /* Keep a copy of the peer's public key */ ecpoint_len = *(*p)++; diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index a90617f9a..fb053c689 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -3019,24 +3019,24 @@ curve_matching_done: psa_status_t status = PSA_ERROR_GENERIC_ERROR; psa_key_attributes_t key_attributes; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - size_t ecdh_bits = 0; uint8_t *p = ssl->out_msg + ssl->out_msglen; const size_t header_size = 4; // curve_type(1), namedcurve(2), // data length(1) const size_t data_length_size = 1; + psa_ecc_family_t ec_psa_family = 0; + size_t ec_bits = 0; MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); - /* Convert EC group to PSA key type. */ - handshake->ecdh_psa_type = mbedtls_psa_parse_tls_ecc_group( - *curr_tls_id, &ecdh_bits ); - - if( handshake->ecdh_psa_type == 0 ) + /* Convert EC's TLS ID to PSA key type. */ + if( mbedtls_ssl_get_psa_curve_info_from_tls_id( *curr_tls_id, + &ec_psa_family, &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid ecc group parse." ) ); return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } - handshake->ecdh_bits = ecdh_bits; + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + handshake->ecdh_bits = ec_bits; key_attributes = psa_key_attributes_init(); psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 761c00ec5..7a85063df 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -1518,16 +1518,19 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( psa_key_attributes_t key_attributes; size_t own_pubkey_len; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - size_t ecdh_bits = 0; + psa_ecc_family_t ec_psa_family = 0; + size_t ec_bits = 0; MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); - /* Convert EC group to PSA key type. */ - if( ( handshake->ecdh_psa_type = - mbedtls_psa_parse_tls_ecc_group( named_group, &ecdh_bits ) ) == 0 ) - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - - ssl->handshake->ecdh_bits = ecdh_bits; + /* Convert EC's TLS ID to PSA key type. */ + if( mbedtls_ssl_get_psa_curve_info_from_tls_id( named_group, + &ec_psa_family, &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) + { + return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + ssl->handshake->ecdh_bits = ec_bits; key_attributes = psa_key_attributes_init(); psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); From 67419f0e112d6edd72fdad559c2ff5f40dc1d8cf Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 4 Jan 2023 16:12:42 +0100 Subject: [PATCH 1340/1574] tls: fix + save code size when DEBUG_C is not enabled Some PSA curves' symbols (PSA_WANT_) were not matching the corresponding MBEDTLS_ECP_DP_. This was fixed together with the removal of extra code when DEBUG_C is not enabled. Signed-off-by: Valerio Setti --- library/ssl_misc.h | 2 ++ library/ssl_tls.c | 42 +++++++++++++++++----------- tests/scripts/all.sh | 8 +++--- tests/suites/test_suite_ssl.function | 12 ++++---- 4 files changed, 37 insertions(+), 27 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index b9fd53e76..37ff223bc 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1614,6 +1614,7 @@ mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ) */ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ); +#if defined(MBEDTLS_DEBUG_C) /** * \brief Return EC's name for the specified TLS ID. * @@ -1622,6 +1623,7 @@ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) * ID is not suppoted, a NULL pointer is returned instead. */ const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ); +#endif #if defined(MBEDTLS_SSL_DTLS_SRTP) static inline mbedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value diff --git a/library/ssl_tls.c b/library/ssl_tls.c index dbee38961..86b5de8e8 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -5477,6 +5477,12 @@ int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_i } #endif /* MBEDTLS_ECP_C */ +#if defined( MBEDTLS_DEBUG_C ) +#define EC_NAME(_name_) _name_ +#else +#define EC_NAME(_name_) NULL +#endif + static const struct { uint16_t tls_id; mbedtls_ecp_group_id ecp_group_id; @@ -5486,43 +5492,43 @@ static const struct { } tls_id_match_table[] = { #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_521) - { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521, "secp521r1" }, + { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521, EC_NAME( "secp521r1" ) }, #endif #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) - { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512, "brainpoolP512r1" }, + { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512, EC_NAME( "brainpoolP512r1" ) }, #endif -#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) - { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384, "secp384r1" }, +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384) + { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384, EC_NAME( "secp384r1" ) }, #endif -#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384) - { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384, "brainpoolP384r1" }, +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384, EC_NAME( "brainpoolP384r1" ) }, #endif -#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) - { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256, "secp256r1" }, +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256) + { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256, EC_NAME( "secp256r1" ) }, #endif #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_256) - { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256, "secp256k1" }, + { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256, EC_NAME( "secp256k1" ) }, #endif -#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256) - { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256, "brainpoolP256r1" }, +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256, EC_NAME( "brainpoolP256r1" ) }, #endif #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_224) - { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224, "secp224r1" }, + { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224, EC_NAME( "secp224r1" ) }, #endif #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_224) - { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224, "secp224k1" }, + { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224, EC_NAME( "secp224k1" ) }, #endif #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_192) - { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192, "secp192r1" }, + { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192, EC_NAME( "secp192r1" ) }, #endif #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_192) - { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192, "secp192k1" }, + { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192, EC_NAME( "secp192k1" ) }, #endif #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_255) - { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256, "x25519" }, + { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255, EC_NAME( "x25519" ) }, #endif #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_448) - { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448, "x448" }, + { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448, EC_NAME( "x448" ) }, #endif { 0, MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, }; @@ -5569,6 +5575,7 @@ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) return 0; } +#if defined(MBEDTLS_DEBUG_C) const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ) { for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) @@ -5579,6 +5586,7 @@ const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ) return NULL; } +#endif #if defined(MBEDTLS_X509_CRT_PARSE_C) int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert, diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 046a07352..90acaaa92 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -940,13 +940,13 @@ component_test_full_cmake_gcc_asan () { msg "test: context-info.sh (full config, ASan build)" # ~ 15 sec tests/context-info.sh - # Verify that TLS and X509 libraries have no dipendency from - # "mbedtls_ecp_curve" symbols. - msg "test: verify that TLS and X509 have no dependency from mbedtls_ecp_curve symbols" + msg "test: check direct ECP dependencies in TLS and X.509" docs/architecture/psa-migration/syms.sh full + # TODO: replace "mbedtls_ecp_curve" with "mbedtls_ecp" also for + # "full-tls-external" once Issue6839 is completed not grep mbedtls_ecp_curve full-tls-external - not grep mbedtls_ecp_curve full-x509-external + not grep mbedtls_ecp full-x509-external rm full-tls-external \ full-tls-modules \ diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 087448dc3..9dcee84d5 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6132,17 +6132,17 @@ void elliptic_curve_get_properties( ) #else TEST_UNAVAILABLE_ECC( 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 ); #endif -#if defined( MBEDTLS_ECP_DP_SECP384R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) +#if defined( MBEDTLS_ECP_DP_SECP384R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_384) TEST_AVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); #else TEST_UNAVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); #endif -#if defined( MBEDTLS_ECP_DP_BP384R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_384) +#if defined( MBEDTLS_ECP_DP_BP384R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) TEST_AVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); #else TEST_UNAVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); #endif -#if defined( MBEDTLS_ECP_DP_SECP256R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) +#if defined( MBEDTLS_ECP_DP_SECP256R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_256) TEST_AVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); #else TEST_UNAVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); @@ -6152,7 +6152,7 @@ void elliptic_curve_get_properties( ) #else TEST_UNAVAILABLE_ECC( 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 ); #endif -#if defined( MBEDTLS_ECP_DP_BP256R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_256) +#if defined( MBEDTLS_ECP_DP_BP256R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) TEST_AVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); #else TEST_UNAVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); @@ -6178,9 +6178,9 @@ void elliptic_curve_get_properties( ) TEST_UNAVAILABLE_ECC( 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 ); #endif #if defined( MBEDTLS_ECP_DP_CURVE25519_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_255) - TEST_AVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256 ); + TEST_AVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255 ); #else - TEST_UNAVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 256 ); + TEST_UNAVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255 ); #endif #if defined( MBEDTLS_ECP_DP_CURVE448_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_448) TEST_AVAILABLE_ECC( 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 ); From cb3b6ae580bf7e03922b285c22b82bcd20b54993 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 4 Jan 2023 17:50:08 +0000 Subject: [PATCH 1341/1574] Disable code style correction for bignum assembly The inline assembly defined in bn_mul.h confuses code style parsing, causing code style correction to fail. Disable code style correction for the whole section gated by "#if defined(MBEDTLS_HAVE_ASM)" to prevent this. Signed-off-by: David Horstmann --- library/bn_mul.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bn_mul.h b/library/bn_mul.h index a34a7c7d5..22574e655 100644 --- a/library/bn_mul.h +++ b/library/bn_mul.h @@ -80,13 +80,12 @@ #endif /* bits in mbedtls_mpi_uint */ +/* *INDENT-OFF* */ #if defined(MBEDTLS_HAVE_ASM) -/* *INDENT-OFF* */ #ifndef asm #define asm __asm #endif -/* *INDENT-ON* */ /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */ #if defined(__GNUC__) && \ @@ -1006,6 +1005,7 @@ #endif /* MSVC */ #endif /* MBEDTLS_HAVE_ASM */ +/* *INDENT-ON* */ #if !defined(MULADDC_X1_CORE) #if defined(MBEDTLS_HAVE_UDBL) From c571c5b1f09e099bd9190318984d4c9ed648d89a Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 4 Jan 2023 18:33:25 +0000 Subject: [PATCH 1342/1574] Check Uncrustify returncode in code_style.py Signed-off-by: David Horstmann --- scripts/code_style.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 8e82b93fb..a23d3a5ce 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -106,8 +106,12 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: style_correct = True for src_file in src_file_list: uncrustify_cmd = [UNCRUSTIFY_EXE] + UNCRUSTIFY_ARGS + [src_file] - subprocess.run(uncrustify_cmd, stdout=subprocess.PIPE, \ + result = subprocess.run(uncrustify_cmd, stdout=subprocess.PIPE, \ stderr=subprocess.PIPE, check=False) + if result.returncode != 0: + print_err("Uncrustify returned " + str(result.returncode) + \ + " correcting file " + src_file) + return False # Uncrustify makes changes to the code and places the result in a new # file with the extension ".uncrustify". To get the changes (if any) @@ -135,15 +139,22 @@ def fix_style_single_pass(src_file_list: List[str]) -> None: code_change_args = UNCRUSTIFY_ARGS + ["--no-backup"] for src_file in src_file_list: uncrustify_cmd = [UNCRUSTIFY_EXE] + code_change_args + [src_file] - subprocess.run(uncrustify_cmd, check=False, stdout=STDOUT_UTF8, \ - stderr=STDERR_UTF8) + result = subprocess.run(uncrustify_cmd, check=False, \ + stdout=STDOUT_UTF8, stderr=STDERR_UTF8) + if result.returncode != 0: + print_err("Uncrustify with file returned: " + \ + str(result.returncode) + " correcting file " + \ + src_file) + return False def fix_style(src_file_list: List[str]) -> int: """ Fix the code style. This takes 2 passes of Uncrustify. """ - fix_style_single_pass(src_file_list) - fix_style_single_pass(src_file_list) + if fix_style_single_pass(src_file_list) != True: + return 1 + if fix_style_single_pass(src_file_list) != True: + return 1 # Guard against future changes that cause the codebase to require # more passes. From 45873ceba39930239253b65357f1761fdc8e25de Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 4 Jan 2023 19:50:27 +0100 Subject: [PATCH 1343/1574] Skip restyling of PSA error code definitions Some preprocessor macro definitions must have a specific expansion so that the same macro name can be defined in different products. The definition of having the same expansion (per the C language specification) means the same sequence of tokens, and also the same absence/presence of spacing between tokens. For PSA error code definitions, the specific expansion is mandated by the PSA Status code specification and the PSA Crypto API specification. In particular, there must not be a space between (psa_status_t) and the numerical value (whereas K&R would put a space). Signed-off-by: Gilles Peskine --- include/psa/crypto_values.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index cf8a7b2cc..9a0ff4614 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -58,6 +58,13 @@ * value, check with the Arm PSA framework group to pick one that other * domains aren't already using. */ +/* Tell uncrustify not to touch the constant definitions, otherwise + * it might change the spacing to something that is not PSA-compliant + * (e.g. adding a space after casts). + * + * *INDENT-OFF* + */ + /** The action was completed successfully. */ #define PSA_SUCCESS ((psa_status_t)0) @@ -328,6 +335,8 @@ */ #define PSA_ERROR_DATA_INVALID ((psa_status_t)-153) +/* *INDENT-ON* */ + /**@}*/ /** \defgroup crypto_types Key and algorithm types From a651607b378b867de35cf384faa4ab7c4597e3df Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 4 Jan 2023 19:52:38 +0100 Subject: [PATCH 1344/1574] Skip restyling of PSA macros also defined in psa-arch-tests Some preprocessor macro definitions must have a specific expansion so that the same macro name can be defined in different products. The definition of having the same expansion (per the C language specification) means the same sequence of tokens, and also the same absence/presence of spacing between tokens. Two macros are also defined in headers in the PSA Compliance test suite, so the test suite would fail to build if we changed the definitions. Preserve those definitions. Technically this is a bug in the test suite, since having extra spaces (or even a completely different constant expression with the same value) would still be compliant. Bug reported as https://github.com/ARM-software/psa-arch-tests/issues/337 Signed-off-by: Gilles Peskine --- include/psa/crypto_values.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index 9a0ff4614..ff50f7e4b 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -892,7 +892,9 @@ (alg) & PSA_ALG_KEY_DERIVATION_STRETCHING_FLAG) /** An invalid algorithm identifier value. */ +/* *INDENT-OFF* (https://github.com/ARM-software/psa-arch-tests/issues/337) */ #define PSA_ALG_NONE ((psa_algorithm_t)0) +/* *INDENT-ON* */ #define PSA_ALG_HASH_MASK ((psa_algorithm_t)0x000000ff) /** MD5 */ @@ -2387,7 +2389,9 @@ /** The null key identifier. */ +/* *INDENT-OFF* (https://github.com/ARM-software/psa-arch-tests/issues/337) */ #define PSA_KEY_ID_NULL ((psa_key_id_t)0) +/* *INDENT-ON* */ /** The minimum value for a key identifier chosen by the application. */ #define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000001) From 8841d6b2f6886fd5284108cba8d997309383de8b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 5 Jan 2023 08:40:24 +0100 Subject: [PATCH 1345/1574] add missing dependency documentation for SSL_ASYNC_PRIVATE Signed-off-by: Valerio Setti --- include/mbedtls/mbedtls_config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index b9c896f3b..328d2ab1a 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1408,6 +1408,7 @@ * module to perform private key operations instead of performing the * operation inside the library. * + * Requires: MBEDTLS_X509_CRT_PARSE_C */ //#define MBEDTLS_SSL_ASYNC_PRIVATE From 8e45cdd440b9d890f12a3a77e079649952f35ce8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 5 Jan 2023 09:32:29 +0100 Subject: [PATCH 1346/1574] fix wrong dependency for X509_TRUSTED_CERTIFICATE_CALLBACK Signed-off-by: Valerio Setti --- include/mbedtls/check_config.h | 2 +- include/mbedtls/mbedtls_config.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 216107dce..6380e54a0 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -1026,7 +1026,7 @@ #endif #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) && \ - ( !defined(MBEDTLS_X509_CSR_WRITE_C) ) + ( !defined(MBEDTLS_X509_CRT_PARSE_C) ) #error "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK defined, but not all prerequisites" #endif diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 328d2ab1a..13f96d2bb 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2013,6 +2013,8 @@ * See the documentation of `mbedtls_x509_crt_verify_with_ca_cb()` and * `mbedtls_ssl_conf_ca_cb()` for more information. * + * Requires: MBEDTLS_X509_CRT_PARSE_C + * * Uncomment to enable trusted certificate callbacks. */ //#define MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK From bec95320ba0bf805a12689f80d1625776eb2b948 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 5 Jan 2023 09:50:47 +0000 Subject: [PATCH 1347/1574] Don't restyle end of file Move the *INDENT-ON* annotation to the end of the file so that uncrustify does not restyle the later sections (since it introduces a risk of future problems). Signed-off-by: David Horstmann --- library/bn_mul.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/bn_mul.h b/library/bn_mul.h index 22574e655..b7e9690e9 100644 --- a/library/bn_mul.h +++ b/library/bn_mul.h @@ -1005,7 +1005,6 @@ #endif /* MSVC */ #endif /* MBEDTLS_HAVE_ASM */ -/* *INDENT-ON* */ #if !defined(MULADDC_X1_CORE) #if defined(MBEDTLS_HAVE_UDBL) @@ -1073,4 +1072,5 @@ #define MULADDC_X8_CORE MULADDC_X4_CORE MULADDC_X4_CORE #endif /* MULADDC_X8_CORE */ +/* *INDENT-ON* */ #endif /* bn_mul.h */ From 8d1d6edb0b16259c039ec765d7665f417e62eff4 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 5 Jan 2023 09:59:35 +0000 Subject: [PATCH 1348/1574] Fix incorrect typing of function in code_style.py Signed-off-by: David Horstmann --- scripts/code_style.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index a23d3a5ce..2c7a77966 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -132,7 +132,7 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: return style_correct -def fix_style_single_pass(src_file_list: List[str]) -> None: +def fix_style_single_pass(src_file_list: List[str]) -> bool: """ Run Uncrustify once over the source files. """ @@ -146,6 +146,7 @@ def fix_style_single_pass(src_file_list: List[str]) -> None: str(result.returncode) + " correcting file " + \ src_file) return False + return True def fix_style(src_file_list: List[str]) -> int: """ From 78d566b216c593932bf42758727e4488b3870171 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 5 Jan 2023 10:02:09 +0000 Subject: [PATCH 1349/1574] Fix pylint warnings about comparison to True Signed-off-by: David Horstmann --- scripts/code_style.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 2c7a77966..aae3e2492 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -152,9 +152,9 @@ def fix_style(src_file_list: List[str]) -> int: """ Fix the code style. This takes 2 passes of Uncrustify. """ - if fix_style_single_pass(src_file_list) != True: + if not fix_style_single_pass(src_file_list): return 1 - if fix_style_single_pass(src_file_list) != True: + if not fix_style_single_pass(src_file_list): return 1 # Guard against future changes that cause the codebase to require From 462e3a9931da96c044660f60ef69fced0b8093ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 27 Dec 2022 12:35:11 +0100 Subject: [PATCH 1350/1574] all.sh: restore config_test_driver.h automatically MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index d166f779a..c949a6a9d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -133,13 +133,14 @@ pre_check_environment () { pre_initialize_variables () { CONFIG_H='include/mbedtls/mbedtls_config.h' CRYPTO_CONFIG_H='include/psa/crypto_config.h' + CONFIG_TEST_DRIVER_H='tests/include/test/drivers/config_test_driver.h' # Files that are clobbered by some jobs will be backed up. Use a different # suffix from auxiliary scripts so that all.sh and auxiliary scripts can # independently decide when to remove the backup file. backup_suffix='.all.bak' # Files clobbered by config.py - files_to_back_up="$CONFIG_H $CRYPTO_CONFIG_H" + files_to_back_up="$CONFIG_H $CRYPTO_CONFIG_H $CONFIG_TEST_DRIVER_H" # Files clobbered by in-tree cmake files_to_back_up="$files_to_back_up Makefile library/Makefile programs/Makefile tests/Makefile programs/fuzz/Makefile" @@ -1978,11 +1979,6 @@ component_test_psa_crypto_config_accel_ecdsa () { loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" - # Restore test driver base configuration - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA224_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA384_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO @@ -2077,15 +2073,6 @@ component_test_psa_crypto_config_accel_rsa_signature () { loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" - # Restore test driver base configuration - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA1_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA224_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_SHA512_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_MD_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_PEM_PARSE_C - scripts/config.py -f tests/include/test/drivers/config_test_driver.h unset MBEDTLS_BASE64_C - - # Mbed TLS library build scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG From 200fd0f099b5782c50b663e6224ead5bd935e9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 27 Dec 2022 13:03:10 +0100 Subject: [PATCH 1351/1574] Add comments to accel_ecdsa component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Slightly re-organize (accel list at the top). No need to disable USE_PSA or TLS 1.3 because they're already that way in the default config. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index c949a6a9d..82ad6823e 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1965,6 +1965,12 @@ component_test_no_use_psa_crypto_full_cmake_asan() { component_test_psa_crypto_config_accel_ecdsa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA" + # Algorithms and key types to accelerate + loc_accel_list="ALG_ECDSA ALG_DETERMINISTIC_ECDSA KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" + + # Configure and build the test driver library + # ------------------------------------------- + # Disable ALG_STREAM_CIPHER and ALG_ECB_NO_PADDING to avoid having # partial support for cipher operations in the driver test library. scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER @@ -1975,23 +1981,33 @@ component_test_psa_crypto_config_accel_ecdsa () { scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C - loc_accel_list="ALG_ECDSA ALG_DETERMINISTIC_ECDSA KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + # Configure and build the test driver library + # ------------------------------------------- + + # Start from default config (no USE_PSA or TLS 1.3) + driver support scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - scripts/config.py unset MBEDTLS_USE_PSA_CRYPTO - scripts/config.py unset MBEDTLS_SSL_PROTO_TLS1_3 + + # Disable the module that's accelerated scripts/config.py unset MBEDTLS_ECDSA_C + + # Disable things that depend on it scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED + # Build the library loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + # Make sure ECDSA was not re-enabled by accident (additive config) not grep mbedtls_ecdsa_ library/ecdsa.o + # Run the tests + # ------------- + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA" make test } From 6d7db93bbb753e73a8f4ca62caeea4c0c66a3414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 28 Dec 2022 09:48:01 +0100 Subject: [PATCH 1352/1574] Enable TLS 1.3 in accelerated ECDSA test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 82ad6823e..1d76d3000 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1987,9 +1987,10 @@ component_test_psa_crypto_config_accel_ecdsa () { # Configure and build the test driver library # ------------------------------------------- - # Start from default config (no USE_PSA or TLS 1.3) + driver support + # Start from default config (no USE_PSA) + driver support + TLS 1.3 scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py set MBEDTLS_SSL_PROTO_TLS1_3 # Disable the module that's accelerated scripts/config.py unset MBEDTLS_ECDSA_C From 171c45feda859db4bb880d3cb4185ff09319cff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 11:31:35 +0100 Subject: [PATCH 1353/1574] Add component accel_ecdsa_use_psa MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is the basis for future work, we'll want to make sure everything passes in this component. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1d76d3000..c0c35a251 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2013,6 +2013,56 @@ component_test_psa_crypto_config_accel_ecdsa () { make test } +component_test_psa_crypto_config_accel_ecdsa_use_psa () { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" + + # Algorithms and key types to accelerate + loc_accel_list="ALG_ECDSA ALG_DETERMINISTIC_ECDSA KEY_TYPE_ECC_KEY_PAIR KEY_TYPE_ECC_PUBLIC_KEY" + + # Configure and build the test driver library + # ------------------------------------------- + + # Disable ALG_STREAM_CIPHER and ALG_ECB_NO_PADDING to avoid having + # partial support for cipher operations in the driver test library. + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + + # SHA384 needed for some ECDSA signature tests. + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C + + loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) + make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" + + # Configure and build the test driver library + # ------------------------------------------- + + # Start from full config (inc. USE_PSA + TLS 1.3) + driver support + scripts/config.py full + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + + # Disable the module that's accelerated + scripts/config.py unset MBEDTLS_ECDSA_C + + # Disable things that depend on it + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED + + # Build the library + loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" + make CFLAGS="$ASAN_CFLAGS -O -Werror -I../tests/include -I../tests -I../../tests -DPSA_CRYPTO_DRIVER_TEST -DMBEDTLS_TEST_LIBTESTDRIVER1 $loc_accel_flags" LDFLAGS="-ltestdriver1 $ASAN_CFLAGS" + + # Make sure ECDSA was not re-enabled by accident (additive config) + not grep mbedtls_ecdsa_ library/ecdsa.o + + # Run the tests + # ------------- + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" + make test +} + component_test_psa_crypto_config_accel_ecdh () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDH" From 10e3963aa40bc0cf5af26a7c17f09c7e4d08b903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 12:29:09 +0100 Subject: [PATCH 1354/1574] Add comparison of accel_ecdsa against reference MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For now, ignore test suites that don't have parity even is they should. The purpose is just to prepare the infrastructure and map the work. Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 54 ++++++++++++++++++++++++------- tests/scripts/analyze_outcomes.py | 31 +++++++++++++++--- 2 files changed, 70 insertions(+), 15 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index c0c35a251..ff1efe795 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2013,6 +2013,25 @@ component_test_psa_crypto_config_accel_ecdsa () { make test } +# Auxiliary function to build config for hashes with and without drivers +config_psa_crypto_config_ecdsa_use_psa () { + DRIVER_ONLY="$1" + # start with config full for maximum coverage (also enables USE_PSA) + scripts/config.py full + # enable support for drivers and configuring PSA-only algorithms + scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG + scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS + if [ "$DRIVER_ONLY" -eq 1 ]; then + # Disable the module that's accelerated + scripts/config.py unset MBEDTLS_ECDSA_C + fi + # Disable things that depend on it + # TODO: make these work + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED + scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED +} + +# Keep in sync with component_test_psa_crypto_config_reference_ecdsa_use_psa component_test_psa_crypto_config_accel_ecdsa_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" @@ -2037,17 +2056,8 @@ component_test_psa_crypto_config_accel_ecdsa_use_psa () { # Configure and build the test driver library # ------------------------------------------- - # Start from full config (inc. USE_PSA + TLS 1.3) + driver support - scripts/config.py full - scripts/config.py set MBEDTLS_PSA_CRYPTO_DRIVERS - scripts/config.py set MBEDTLS_PSA_CRYPTO_CONFIG - - # Disable the module that's accelerated - scripts/config.py unset MBEDTLS_ECDSA_C - - # Disable things that depend on it - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED - scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED + # Use the same config as reference, only without built-in ECDSA + config_psa_crypto_config_ecdsa_use_psa 1 # Build the library loc_accel_flags="$loc_accel_flags $( echo "$loc_accel_list" | sed 's/[^ ]* */-DMBEDTLS_PSA_ACCEL_&/g' )" @@ -2061,6 +2071,28 @@ component_test_psa_crypto_config_accel_ecdsa_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" make test + + # TODO: ssl-opt.sh (currently doesn't pass) + # TODO: is some subset of compat.sh needed? +} + +# Keep in sync with component_test_psa_crypto_config_accel_ecdsa_use_psa. +# Used by tests/scripts/analyze_outcomes.py for comparison purposes. +component_test_psa_crypto_config_reference_ecdsa_use_psa () { + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" + + # To be aligned with the accel component that needs this + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER + scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING + + config_psa_crypto_config_ecdsa_use_psa 0 + + make + + msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" + make test + + # TODO: ssl-opt.sh (when the accel component is ready) } component_test_psa_crypto_config_accel_ecdh () { diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index bb4439653..b360431ef 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -138,15 +138,38 @@ def do_analyze_driver_vs_reference(outcome_file, args): TASKS = { 'analyze_coverage': { 'test_function': do_analyze_coverage, - 'args': {}}, + 'args': {} + }, + # How to use analyze_driver_vs_reference_xxx locally: + # 1. tests/scripts/all.sh --outcome-file "$PWD/out.csv" + # 2. tests/scripts/analyze_outcomes.py out.csv analyze_driver_vs_reference_xxx 'analyze_driver_vs_reference_hash': { 'test_function': do_analyze_driver_vs_reference, 'args': { 'component_ref': 'test_psa_crypto_config_reference_hash_use_psa', 'component_driver': 'test_psa_crypto_config_accel_hash_use_psa', - 'ignored_suites': ['shax', 'mdx', # the software implementations that are being excluded - 'md', # the legacy abstraction layer that's being excluded - ]}} + 'ignored_suites': [ + 'shax', 'mdx', # the software implementations that are being excluded + 'md', # the legacy abstraction layer that's being excluded + ]}}, + 'analyze_driver_vs_reference_ecdsa': { + 'test_function': do_analyze_driver_vs_reference, + 'args': { + 'component_ref': 'test_psa_crypto_config_reference_ecdsa_use_psa', + 'component_driver': 'test_psa_crypto_config_accel_ecdsa_use_psa', + 'ignored_suites': [ + 'ecdsa', # the software implementation that's excluded + # the following lines should not be needed, + # they will be removed by upcoming work + 'psa_crypto_se_driver_hal', + 'random', + 'ecp', + 'pk', + 'x509parse', + 'x509write', + 'debug', + 'ssl', + ]}}, } def main(): From 222bc85c6c09b9da9eeac2e42b49be9004d73b72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 13:47:25 +0100 Subject: [PATCH 1355/1574] Update outcome analysis script & documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that the script only makes before-after comparison, it no longer makes sense to ignore some test suites. Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 38 ++++--------------- docs/architecture/psa-migration/strategy.md | 19 +++++----- 2 files changed, 17 insertions(+), 40 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 908468548..f7ca01b45 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -1,40 +1,21 @@ #!/bin/sh -# This script runs tests in various revisions and configurations and analyses -# the results in order to highlight any difference in the set of tests skipped -# in the test suites of interest. +# This script runs tests before and after a PR and analyzes the results in +# order to highlight any difference in the set of tests skipped. # -# It can be used to ensure the testing criteria mentioned in strategy.md, +# It can be used to check the first testing criterion mentioned in strategy.md, # end of section "Supporting builds with drivers without the software -# implementation" are met, namely: -# -# - the sets of tests skipped in the default config and the full config must be -# the same before and after the PR that implements step 3; -# - the set of tests skipped in the driver-only build is the same as in an -# equivalent software-based configuration, or the difference is small enough, -# justified, and a github issue is created to track it. -# This part is verified by tests/scripts/analyze_outcomes.py +# implementation", namely: the sets of tests skipped in the default config and +# the full config must be the same before and after the PR. # # WARNING: this script checks out a commit other than the head of the current # branch; it checks out the current branch again when running successfully, # but while the script is running, or if it terminates early in error, you # should be aware that you might be at a different commit than expected. # -# NOTE: This is only an example/template script, you should make a copy and -# edit it to suit your needs. The part that needs editing is at the top. -# -# Also, you can comment out parts that don't need to be re-done when +# NOTE: you can comment out parts that don't need to be re-done when # re-running this script (for example "get numbers before this PR"). -# ----- BEGIN edit this ----- -# Space-separated list of test suites to ignore: -# if SSS is in that list, test_suite_SSS and test_suite_SSS.* are ignored. -IGNORE="md mdx shax" # accelerated -IGNORE="$IGNORE entropy hmac_drbg random" # disabled (ext. RNG) -IGNORE="$IGNORE psa_crypto_init" # needs internal RNG -IGNORE="$IGNORE hkdf" # disabled in the all.sh component tested -# ----- END edit this ----- - set -eu cleanup() { @@ -69,7 +50,6 @@ cleanup scripts/config.py full record "after-full" - # analysis populate_suites () { @@ -79,11 +59,7 @@ populate_suites () { for data in $data_files; do suite=${data#test_suite_} suite=${suite%.data} - suite_base=${suite%%.*} - case " $IGNORE " in - *" $suite_base "*) :;; - *) SUITES="$SUITES $suite";; - esac + SUITES="$SUITES $suite" done make neat } diff --git a/docs/architecture/psa-migration/strategy.md b/docs/architecture/psa-migration/strategy.md index 0ad5fa0a5..07fc48859 100644 --- a/docs/architecture/psa-migration/strategy.md +++ b/docs/architecture/psa-migration/strategy.md @@ -386,15 +386,16 @@ are expressed (sometimes in bulk), to get things wrong in a way that would result in more tests being skipped, which is easy to miss. Care must be taken to ensure this does not happen. The following criteria can be used: -- the sets of tests skipped in the default config and the full config must be - the same before and after the PR that implements step 3; -- the set of tests skipped in the driver-only build is the same as in an - equivalent software-based configuration, or the difference is small enough, - justified, and a github issue is created to track it. - -Note that the favourable case is when the number of tests skipped is 0 in the -driver-only build. In other cases, analysis of the outcome files is needed, -see the example script `outcome-analysis.sh` in the same directory. +1. The sets of tests skipped in the default config and the full config must be + the same before and after the PR that implements step 3. This is tested +manually for each PR that changes dependency declarations by using the script +`outcome-analysis.sh` in the present directory. +2. The set of tests skipped in the driver-only build is the same as in an + equivalent software-based configuration. This is tested automatically by the +CI in the "Results analysis" stage, by running +`tests/scripts/analyze_outcomes.csv`. See the +`analyze_driver_vs_reference_xxx` actions in the script and the comments above +their declaration for how to do that locally. Migrating away from the legacy API From 6bbeba6a445a6f664b1a0e2c372572e4feb40a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 14:02:05 +0100 Subject: [PATCH 1356/1574] Add ssl-opt.sh support to outcome-analysis.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit But make it optional as it makes things much slower. Signed-off-by: Manuel Pégourié-Gonnard --- .../psa-migration/outcome-analysis.sh | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index f7ca01b45..6603c3ae5 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -8,6 +8,11 @@ # implementation", namely: the sets of tests skipped in the default config and # the full config must be the same before and after the PR. # +# USAGE: +# - First, commit any uncommited changes. (Also, see warning below.) +# - including ssl-opt.sh: docs/architecture/psa-migration/outcome-analysis.sh +# - or: SKIP_SSL_OPT=1 docs/architecture/psa-migration/outcome-analysis.sh +# # WARNING: this script checks out a commit other than the head of the current # branch; it checks out the current branch again when running successfully, # but while the script is running, or if it terminates early in error, you @@ -18,6 +23,8 @@ set -eu +: ${SKIP_SSL_OPT:=0} + cleanup() { make clean git checkout -- include/mbedtls/mbedtls_config.h include/psa/crypto_config.h @@ -26,7 +33,14 @@ cleanup() { record() { export MBEDTLS_TEST_OUTCOME_FILE="$PWD/outcome-$1.csv" rm -f $MBEDTLS_TEST_OUTCOME_FILE + make check + + if [ $SKIP_SSL_OPT -eq 0 ]; then + make -C programs ssl/ssl_server2 ssl/ssl_client2 \ + test/udp_proxy test/query_compile_time_config + tests/ssl-opt.sh + fi } # save current HEAD @@ -35,21 +49,27 @@ HEAD=$(git branch --show-current) # get the numbers before this PR for default and full cleanup git checkout $(git merge-base HEAD development) + record "before-default" cleanup + scripts/config.py full record "before-full" # get the numbers now for default and full cleanup git checkout $HEAD + record "after-default" cleanup + scripts/config.py full record "after-full" +cleanup + # analysis populate_suites () { @@ -57,11 +77,19 @@ populate_suites () { make generated_files >/dev/null data_files=$(cd tests/suites && echo *.data) for data in $data_files; do - suite=${data#test_suite_} - suite=${suite%.data} + suite=${data%.data} SUITES="$SUITES $suite" done make neat + + if [ $SKIP_SSL_OPT -eq 0 ]; then + SUITES="$SUITES ssl-opt" + extra_files=$(cd tests/opt-testcases && echo *.sh) + for extra in $extra_files; do + suite=${extra%.sh} + SUITES="$SUITES $suite" + done + fi } compare_suite () { @@ -69,7 +97,7 @@ compare_suite () { new="outcome-$2.csv" suite="$3" - pattern_suite=";test_suite_$suite;" + pattern_suite=";$suite;" total=$(grep -c "$pattern_suite" "$ref") sed_cmd="s/^.*$pattern_suite\(.*\);SKIP.*/\1/p" sed -n "$sed_cmd" "$ref" > skipped-ref @@ -77,8 +105,9 @@ compare_suite () { nb_ref=$(wc -l %4d\n" \ - $suite $total $nb_ref $nb_new + name=${suite#test_suite_} + printf "%40s: total %4d; skipped %4d -> %4d\n" \ + $name $total $nb_ref $nb_new if diff skipped-ref skipped-new | grep '^> '; then ret=1 else From 8510105b5dba02d758ad94b8479fb7c8cec6aa9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Thu, 29 Dec 2022 16:04:35 +0100 Subject: [PATCH 1357/1574] Remove libtestdriver1 with 'make clean' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's a bit strange for tests/Makefile to clean up in library, but OTOH it's also tests/Makefile that copies this file there. Regardless, there was no place that cleaned up this file, and it needs to be removed somewhere. Signed-off-by: Manuel Pégourié-Gonnard --- tests/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Makefile b/tests/Makefile index f0373381e..312607ee3 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -203,6 +203,7 @@ ifndef WINDOWS rm -f src/*.o src/drivers/*.o src/libmbed* rm -f include/test/instrument_record_status.h rm -rf libtestdriver1 + rm -f ../library/libtestdriver1.a else if exist *.c del /Q /F *.c if exist *.exe del /Q /F *.exe From c6967d21b9b9f7f911a8d9190003fe2ab20ef97a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Fri, 30 Dec 2022 13:40:34 +0100 Subject: [PATCH 1358/1574] Tune output format of analyze_outcomes.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The part "driver: skipped/failed, reference: passed" didn't add any information, but used up space on the screen and made the output slightly harder to parse. OTOH, now that we have multiple analyze_vs_reference tasks, we should print out which one we're doing, so that that output makes sense in case of a failure on the CI (which runs all tasks). Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/analyze_outcomes.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index b360431ef..482d64e7c 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -87,8 +87,8 @@ def analyze_driver_vs_reference(outcomes, component_ref, component_driver, ignor driver_test_passed = True if component_ref in entry: reference_test_passed = True - if(driver_test_passed is False and reference_test_passed is True): - print('{}: driver: skipped/failed; reference: passed'.format(key)) + if(reference_test_passed and not driver_test_passed): + print(key) result = False return result @@ -123,6 +123,7 @@ def do_analyze_coverage(outcome_file, args): """Perform coverage analysis.""" del args # unused outcomes = read_outcome_file(outcome_file) + print("\n*** Analyze coverage ***\n") results = analyze_outcomes(outcomes) return results.error_count == 0 @@ -131,6 +132,8 @@ def do_analyze_driver_vs_reference(outcome_file, args): ignored_tests = ['test_suite_' + x for x in args['ignored_suites']] outcomes = read_outcome_file(outcome_file) + print("\n*** Analyze driver {} vs reference {} ***\n".format( + args['component_driver'], args['component_ref'])) return analyze_driver_vs_reference(outcomes, args['component_ref'], args['component_driver'], ignored_tests) From 0ed9e78bf7541959aa0cd90715cb49543bb174e8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 5 Jan 2023 20:27:18 +0100 Subject: [PATCH 1359/1574] Treat more *.bin files as binary Signed-off-by: Gilles Peskine --- tests/scripts/check_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index 42f2e82c9..e1c6478fd 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -122,7 +122,7 @@ BINARY_FILE_PATH_RE_LIST = [ r'tests/data_files/.*\.req\.[^/]+\Z', r'tests/data_files/.*malformed[^/]+\Z', r'tests/data_files/format_pkcs12\.fmt\Z', - r'tests/data_files/pkcs7_data.*\.bin\Z', + r'tests/data_files/.*\.bin\Z', ] BINARY_FILE_PATH_RE = re.compile('|'.join(BINARY_FILE_PATH_RE_LIST)) From b389743ace411d580a68795767ddaa7a3d5d1fcd Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 5 Jan 2023 20:28:30 +0100 Subject: [PATCH 1360/1574] Pass line number to issue_with_line Signed-off-by: Gilles Peskine --- tests/scripts/check_files.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index e1c6478fd..03400ab92 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -136,7 +136,7 @@ class LineIssueTracker(FileIssueTracker): # Exclude binary files. path_exemptions = BINARY_FILE_PATH_RE - def issue_with_line(self, line, filepath): + def issue_with_line(self, line, filepath, line_number): """Check the specified line for the issue that this class is for. Subclasses must implement this method. @@ -144,7 +144,7 @@ class LineIssueTracker(FileIssueTracker): raise NotImplementedError def check_file_line(self, filepath, line, line_number): - if self.issue_with_line(line, filepath): + if self.issue_with_line(line, filepath, line_number): self.record_issue(filepath, line_number) def check_file_for_issue(self, filepath): @@ -273,7 +273,7 @@ class UnixLineEndingIssueTracker(LineIssueTracker): return False return not is_windows_file(filepath) - def issue_with_line(self, line, _filepath): + def issue_with_line(self, line, _filepath, _line_number): return b"\r" in line @@ -287,7 +287,7 @@ class WindowsLineEndingIssueTracker(LineIssueTracker): return False return is_windows_file(filepath) - def issue_with_line(self, line, _filepath): + def issue_with_line(self, line, _filepath, _line_number): return not line.endswith(b"\r\n") or b"\r" in line[:-2] @@ -297,7 +297,7 @@ class TrailingWhitespaceIssueTracker(LineIssueTracker): heading = "Trailing whitespace:" suffix_exemptions = frozenset([".dsp", ".md"]) - def issue_with_line(self, line, _filepath): + def issue_with_line(self, line, _filepath, _line_number): return line.rstrip(b"\r\n") != line.rstrip() @@ -313,7 +313,7 @@ class TabIssueTracker(LineIssueTracker): "/generate_visualc_files.pl", ]) - def issue_with_line(self, line, _filepath): + def issue_with_line(self, line, _filepath, _line_number): return b"\t" in line @@ -323,7 +323,7 @@ class MergeArtifactIssueTracker(LineIssueTracker): heading = "Merge artifact:" - def issue_with_line(self, line, _filepath): + def issue_with_line(self, line, _filepath, _line_number): # Detect leftover git conflict markers. if line.startswith(b'<<<<<<< ') or line.startswith(b'>>>>>>> '): return True From d11bb47fe08fe633826ff35c64319cd2ce65fcc8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 5 Jan 2023 20:28:57 +0100 Subject: [PATCH 1361/1574] Reject invalid UTF-8 and weird characters in text files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reject "weird" characters in text files, especially control characters that might be escape sequences or that might cause other text to appear garbled (as in https://trojansource.codes/). Also reject byte sequences that aren't valid UTF-8. Accept only ASCII (except most control characters), letters, some non-ASCII punctuation and some mathematical and technical symbols. This covers everything that's currently present in Mbed TLS ( §áèéëñóöüłŽ–—’“”…≥). Signed-off-by: Gilles Peskine --- tests/scripts/check_files.py | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index 03400ab92..d20ec2e9e 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -263,6 +263,45 @@ class Utf8BomIssueTracker(FileIssueTracker): self.files_with_issues[filepath] = None +class UnicodeIssueTracker(LineIssueTracker): + """Track lines with invalid characters or invalid text encoding.""" + + heading = "Invalid UTF-8 or forbidden character:" + + # Only allow valid UTF-8, and only white-listed characters. + # We deliberately exclude all characters that aren't a simple non-blank, + # non-zero-width glyph, apart from a very small set (tab, ordinary space, + # line breaks, "basic" no-break space and soft hyphen). In particular, + # non-ASCII control characters, combinig characters, and Unicode state + # changes (e.g. right-to-left text) are forbidden. + # Note that we do allow some characters with a risk of visual confusion, + # for example '-' (U+002D HYPHEN-MINUS) vs '­' (U+00AD SOFT HYPHEN) vs + # '‐' (U+2010 HYPHEN), or 'A' (U+0041 LATIN CAPITAL LETTER A) vs + # 'Α' (U+0391 GREEK CAPITAL LETTER ALPHA). + GOOD_CHARACTERS = ''.join([ + '\t\n\r -~', # ASCII (tabs and line endings are checked separately) + '\u00A0-\u00FF', # Latin-1 Supplement (for NO-BREAK SPACE and punctuation) + '\u2010-\u2027\u2030-\u205E', # General Punctuation (printable) + '\u2070\u2071\u2074-\u208E\u2090-\u209C', # Superscripts and Subscripts + '\u2190-\u21FF', # Arrows + '\u2200-\u22FF', # Mathematical Symbols + ]) + # Allow any of the characters and ranges above, and anything classified + # as a word constituent. + GOOD_CHARACTERS_RE = re.compile(r'[\w{}]+\Z'.format(GOOD_CHARACTERS)) + + def issue_with_line(self, line, _filepath, line_number): + try: + text = line.decode('utf-8') + except UnicodeDecodeError: + return True + if line_number == 1 and text.startswith('\uFEFF'): + # Strip BOM (U+FEFF ZERO WIDTH NO-BREAK SPACE) at the beginning. + # Which files are allowed to have a BOM is handled in + # Utf8BomIssueTracker. + text = text[1:] + return not self.GOOD_CHARACTERS_RE.match(text) + class UnixLineEndingIssueTracker(LineIssueTracker): """Track files with non-Unix line endings (i.e. files with CR).""" @@ -350,6 +389,7 @@ class IntegrityChecker: ShebangIssueTracker(), EndOfFileNewlineIssueTracker(), Utf8BomIssueTracker(), + UnicodeIssueTracker(), UnixLineEndingIssueTracker(), WindowsLineEndingIssueTracker(), TrailingWhitespaceIssueTracker(), From 14db51224e615d6b7925840800e76c864088e07d Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Fri, 6 Jan 2023 11:29:04 +0000 Subject: [PATCH 1362/1574] Fix IAR warning Signed-off-by: Dave Rodgman --- library/bignum.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/bignum.c b/library/bignum.c index fc4ddf6fe..62eb00715 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1197,9 +1197,9 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, */ if( 0 == d || u1 >= d ) { - if (r != NULL) *r = ~0; + if (r != NULL) *r = ~(mbedtls_mpi_uint)0u; - return ( ~0 ); + return ( ~(mbedtls_mpi_uint)0u ); } #if defined(MBEDTLS_HAVE_UDBL) @@ -1338,7 +1338,7 @@ int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, for( i = n; i > t ; i-- ) { if( X.p[i] >= Y.p[t] ) - Z.p[i - t - 1] = ~0; + Z.p[i - t - 1] = ~(mbedtls_mpi_uint)0u; else { Z.p[i - t - 1] = mbedtls_int_div_int( X.p[i], X.p[i - 1], From f05b6eed0cffaef2b543e4e580bba7ee0d370698 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Thu, 15 Dec 2022 10:17:41 +0800 Subject: [PATCH 1363/1574] Revert "Skip early data basic check temp" This reverts commit 4e83173bb7b6770d99022d79ac2d3624c80b8c37. Signed-off-by: Jerry Yu --- tests/opt-testcases/tls13-misc.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 710fb3433..4b0a833ea 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -264,9 +264,6 @@ run_test "TLS 1.3: G->m: PSK: configured ephemeral only, good." \ 0 \ -s "key exchange mode: ephemeral$" -# skip the basic check now cause it will randomly trigger the anti-replay protection in gnutls_server -# Add it back once we fix the issue -skip_next_test requires_gnutls_tls1_3 requires_config_enabled MBEDTLS_DEBUG_C requires_config_enabled MBEDTLS_SSL_CLI_C From a15af378671718fa4292495aa27495d686b02064 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Mon, 5 Dec 2022 15:55:24 +0800 Subject: [PATCH 1364/1574] Change time resolution of reco_delay from second to millionseconds Per gnutls anti replay issue, it needs millionsecond time delay for improve the fail rate. From test result of #6712, this can improve the fail rate from 4% to 92%. Signed-off-by: Jerry Yu --- programs/ssl/ssl_client2.c | 4 ++-- tests/opt-testcases/tls13-misc.sh | 4 ++-- tests/ssl-opt.sh | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 02ee7cf69..304d10c0c 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -424,7 +424,7 @@ int main( void ) " reconnect=%%d number of reconnections using session resumption\n" \ " default: 0 (disabled)\n" \ " reco_server_name=%%s default: NULL\n" \ - " reco_delay=%%d default: 0 seconds\n" \ + " reco_delay=%%d default: 0 millionseconds\n" \ " reco_mode=%%d 0: copy session, 1: serialize session\n" \ " default: 1\n" \ " reconnect_hard=%%d default: 0 (disabled)\n" \ @@ -3184,7 +3184,7 @@ reconnect: #if defined(MBEDTLS_TIMING_C) if( opt.reco_delay > 0 ) - mbedtls_net_usleep( 1000000 * opt.reco_delay ); + mbedtls_net_usleep( 1000 * opt.reco_delay ); #endif mbedtls_printf( " . Reconnecting with saved session..." ); diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 4b0a833ea..3aaf3f330 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -274,7 +274,7 @@ requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->G: EarlyData: basic check, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --earlydata --disable-client-cert" \ - "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=900" \ 1 \ -c "Reconnecting with saved session" \ -c "NewSessionTicket: early_data(42) extension received." \ @@ -295,7 +295,7 @@ requires_any_configs_enabled MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->G: EarlyData: no early_data in NewSessionTicket, good" \ "$G_NEXT_SRV -d 10 --priority=NORMAL:-VERS-ALL:+VERS-TLS1.3:+CIPHER-ALL:+ECDHE-PSK:+PSK --disable-client-cert" \ - "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1 reco_delay=2" \ + "$P_CLI debug_level=4 early_data=1 reco_mode=1 reconnect=1" \ 0 \ -c "Reconnecting with saved session" \ -C "NewSessionTicket: early_data(42) extension received." \ diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index df78c8fe1..1a5c9a307 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -3632,7 +3632,7 @@ run_test "Session resume using tickets: cache disabled" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Session resume using tickets: timeout" \ "$P_SRV debug_level=3 tickets=1 cache_max=0 ticket_timeout=1" \ - "$P_CLI debug_level=3 tickets=1 reconnect=1 reco_delay=2" \ + "$P_CLI debug_level=3 tickets=1 reconnect=1 reco_delay=2000" \ 0 \ -c "client hello, adding session ticket extension" \ -s "found session ticket extension" \ @@ -3942,7 +3942,7 @@ run_test "Session resume using tickets, DTLS: cache disabled" \ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 run_test "Session resume using tickets, DTLS: timeout" \ "$P_SRV debug_level=3 dtls=1 tickets=1 cache_max=0 ticket_timeout=1" \ - "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1 reco_delay=2" \ + "$P_CLI debug_level=3 dtls=1 tickets=1 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 0 \ -c "client hello, adding session ticket extension" \ -s "found session ticket extension" \ @@ -4066,7 +4066,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CACHE_C run_test "Session resume using cache: timeout < delay" \ "$P_SRV debug_level=3 tickets=0 cache_timeout=1" \ - "$P_CLI debug_level=3 tickets=0 reconnect=1 reco_delay=2" \ + "$P_CLI debug_level=3 tickets=0 reconnect=1 reco_delay=2000" \ 0 \ -S "session successfully restored from cache" \ -S "session successfully restored from ticket" \ @@ -4077,7 +4077,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CACHE_C run_test "Session resume using cache: no timeout" \ "$P_SRV debug_level=3 tickets=0 cache_timeout=0" \ - "$P_CLI debug_level=3 tickets=0 reconnect=1 reco_delay=2" \ + "$P_CLI debug_level=3 tickets=0 reconnect=1 reco_delay=2000" \ 0 \ -s "session successfully restored from cache" \ -S "session successfully restored from ticket" \ @@ -4213,7 +4213,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CACHE_C run_test "Session resume using cache, DTLS: timeout < delay" \ "$P_SRV dtls=1 debug_level=3 tickets=0 cache_timeout=1" \ - "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2" \ + "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 0 \ -S "session successfully restored from cache" \ -S "session successfully restored from ticket" \ @@ -4224,7 +4224,7 @@ requires_config_enabled MBEDTLS_SSL_PROTO_TLS1_2 requires_config_enabled MBEDTLS_SSL_CACHE_C run_test "Session resume using cache, DTLS: no timeout" \ "$P_SRV dtls=1 debug_level=3 tickets=0 cache_timeout=0" \ - "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2" \ + "$P_CLI dtls=1 debug_level=3 tickets=0 reconnect=1 skip_close_notify=1 reco_delay=2000" \ 0 \ -s "session successfully restored from cache" \ -S "session successfully restored from ticket" \ @@ -9880,7 +9880,7 @@ run_test "DTLS fragmenting: proxy MTU, resumed handshake" \ key_file=data_files/server8.key \ hs_timeout=10000-60000 \ force_ciphersuite=TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ - mtu=1450 reconnect=1 skip_close_notify=1 reco_delay=1" \ + mtu=1450 reconnect=1 skip_close_notify=1 reco_delay=1000" \ 0 \ -S "autoreduction" \ -s "found fragmented DTLS handshake message" \ From bdb936b7a5da71a6bcaab605852cfb433536a366 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 7 Jan 2023 16:07:46 +0800 Subject: [PATCH 1365/1574] Workaround anti replay fail of GnuTLS Signed-off-by: Jerry Yu --- library/ssl_tls13_client.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 08d492487..b8ca482b8 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -947,6 +947,16 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( uint32_t obfuscated_ticket_age = (uint32_t)( now - session->ticket_received ); + /* Workaround for anti replay fail of GnuTLS server. + * + * The time unit of ticket age is milliseconds, but current unit is + * seconds. If the ticket was received at the end of first second and + * sent in next second, GnuTLS think it is replay attack. + * + */ + if( obfuscated_ticket_age > 0 ) + obfuscated_ticket_age -= 1; + obfuscated_ticket_age *= 1000; obfuscated_ticket_age += session->ticket_age_add; From 99e902f479f1a8fe104f3485b7a51fe2ed1a2318 Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Sat, 7 Jan 2023 16:11:09 +0800 Subject: [PATCH 1366/1574] Add changlog entry. Signed-off-by: Jerry Yu --- ChangeLog.d/workaround_gnutls_anti_replay_fail.txt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ChangeLog.d/workaround_gnutls_anti_replay_fail.txt diff --git a/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt b/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt new file mode 100644 index 000000000..fba6f7840 --- /dev/null +++ b/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt @@ -0,0 +1,6 @@ +Bugfix + * Workaround #6623. That is time unit issue. The unit of ticket age is + seconds in MBedTLS and milliseconds in GnuTLS. If the real age is 10ms, + it might be 1s(1000ms), as a result, the age of MBedTLS is greater than + GnuTLS server. Reduce 1 if the age is greater than 1 second to workaround + it. From 2b5d3ded1f6ba1018bf5deebcfec6cb1bd6563a4 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 11:04:52 +0100 Subject: [PATCH 1367/1574] remove remaining occurencies of mbedtls_ecc_group_to_psa() from TLS Signed-off-by: Valerio Setti --- library/ssl_tls12_client.c | 20 ++++++++++++-------- library/ssl_tls12_server.c | 17 +++++++++++------ 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 58f0a375c..4ddb1874f 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2107,8 +2107,9 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) peer_key = mbedtls_pk_ec( *peer_pk ); #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t ecdh_bits = 0; size_t olen = 0; + uint16_t tls_id = 0; + psa_ecc_family_t ecc_family; if( mbedtls_ssl_check_curve( ssl, peer_key->grp.id ) != 0 ) { @@ -2116,17 +2117,20 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_BAD_CERTIFICATE ); } - ssl->handshake->ecdh_psa_type = - PSA_KEY_TYPE_ECC_KEY_PAIR( mbedtls_ecc_group_to_psa( peer_key->grp.id, - &ecdh_bits ) ); - - if( ssl->handshake->ecdh_psa_type == 0 || ecdh_bits > 0xffff ) + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( peer_key->grp.id ); + if( tls_id == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid ecc group conversion to psa." ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "ECC group %d not suported", + peer_key->grp.id ) ); return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } - ssl->handshake->ecdh_bits = (uint16_t) ecdh_bits; + /* If the above conversion to TLS ID was fine, then also this one will be, + so there is no need to check the retun value here */ + mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, + &ssl->handshake->ecdh_bits ); + + ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ecc_family ); /* Store peer's public key in psa format. */ ret = mbedtls_ecp_point_write_binary( &peer_key->grp, &peer_key->Q, diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index fb053c689..2d7e5722d 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -2659,7 +2659,8 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) unsigned char buf[ PSA_KEY_EXPORT_ECC_KEY_PAIR_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS)]; psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT; - size_t ecdh_bits = 0; + uint16_t tls_id = 0; + psa_ecc_family_t ecc_family; size_t key_len; mbedtls_pk_context *pk; mbedtls_ecp_keypair *key; @@ -2703,15 +2704,19 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) if( key == NULL ) return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - /* Convert EC group to PSA key type. */ - if( ( ssl->handshake->ecdh_psa_type = - mbedtls_ecc_group_to_psa( key->grp.id, - &ecdh_bits ) ) == 0 ) + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( key->grp.id ); + if( tls_id == 0 ) { + /* This elliptic curve is not supported */ return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); } - ssl->handshake->ecdh_bits = ecdh_bits; + /* If the above conversion to TLS ID was fine, then also this one will + be, so there is no need to check the retun value here */ + mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, + &ssl->handshake->ecdh_bits ); + + ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ecc_family ); key_attributes = psa_key_attributes_init(); psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); From 1e868ccbace3d8ec592de2c1e7bca3b6e17fb0bf Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 17:30:01 +0100 Subject: [PATCH 1368/1574] fix several typos and extra blank spaces Signed-off-by: Valerio Setti --- library/ssl_misc.h | 2 +- library/ssl_tls12_client.c | 4 ++-- library/ssl_tls12_server.c | 2 +- tests/suites/test_suite_ssl.function | 30 ++++++++++++++-------------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 37ff223bc..2c95afeff 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -1620,7 +1620,7 @@ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) * * \param tls_id The TLS ID to look for * \return A pointer to a const string with the proper name. If TLS - * ID is not suppoted, a NULL pointer is returned instead. + * ID is not supported, a NULL pointer is returned instead. */ const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ); #endif diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 4ddb1874f..a7a1fc1c5 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2125,8 +2125,8 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } - /* If the above conversion to TLS ID was fine, then also this one will be, - so there is no need to check the retun value here */ + /* If the above conversion to TLS ID was fine, then also this one will be, + so there is no need to check the return value here */ mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, &ssl->handshake->ecdh_bits ); diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index 2d7e5722d..a28cd6740 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -2712,7 +2712,7 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) } /* If the above conversion to TLS ID was fine, then also this one will - be, so there is no need to check the retun value here */ + be, so there is no need to check the return value here */ mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, &ssl->handshake->ecdh_bits ); diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 9dcee84d5..73e22985c 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -2598,22 +2598,22 @@ int tweak_tls13_certificate_msg_vector_len( TEST_EQUAL( ret, exp_ret_val ) #endif -#define TEST_AVAILABLE_ECC( _tls_id, _group_id, _psa_family, _psa_bits ) \ - TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( _tls_id ), \ - _group_id ); \ - TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( _group_id ), \ - _tls_id ); \ - TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( _tls_id, \ - &psa_family, &psa_bits), PSA_SUCCESS ); \ - TEST_EQUAL( _psa_family, psa_family ); \ - TEST_EQUAL( _psa_bits, psa_bits ); +#define TEST_AVAILABLE_ECC( tls_id_, group_id_, psa_family_, psa_bits_ ) \ + TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_id_ ), \ + group_id_ ); \ + TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( group_id_ ), \ + tls_id_ ); \ + TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id_, \ + &psa_family, &psa_bits), PSA_SUCCESS ); \ + TEST_EQUAL( psa_family_, psa_family ); \ + TEST_EQUAL( psa_bits_, psa_bits ); -#define TEST_UNAVAILABLE_ECC( _tls_id, _group_id, _psa_family, _psa_bits ) \ - TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( _tls_id ), \ - MBEDTLS_ECP_DP_NONE ); \ - TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( _group_id ), \ - 0 ); \ - TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( _tls_id, \ +#define TEST_UNAVAILABLE_ECC( tls_id_, group_id_, psa_family_, psa_bits_ ) \ + TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_id_ ), \ + MBEDTLS_ECP_DP_NONE ); \ + TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( group_id_ ), \ + 0 ); \ + TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id_, \ &psa_family, &psa_bits), PSA_ERROR_NOT_SUPPORTED ); /* END_HEADER */ From 2c12185b8824e8c0a04517e390aeffb91223f676 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 18:00:39 +0100 Subject: [PATCH 1369/1574] test: fix dependencies on function and data files Signed-off-by: Valerio Setti --- tests/suites/test_suite_ssl.data | 1 - tests/suites/test_suite_ssl.function | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 03acc292d..3059e7fca 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -3549,5 +3549,4 @@ depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED:MBEDTLS_USE_PSA_CRYPTO ssl_ecjpake_set_password:1 Test Elliptic curves' info parsing -depends_on:MBEDTLS_SSL_TLS_C elliptic_curve_get_properties diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 73e22985c..ee0cbd24c 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -6114,7 +6114,7 @@ void ssl_ecjpake_set_password( int use_opaque_arg ) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_TLS_C*/ +/* BEGIN_CASE */ void elliptic_curve_get_properties( ) { psa_ecc_family_t psa_family; From a0b97bc803067655c3e7bd1010fb6568cacb0035 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 19:10:32 +0100 Subject: [PATCH 1370/1574] fix wrong type in debug message Signed-off-by: Valerio Setti --- library/ssl_tls12_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index a7a1fc1c5..30b648166 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -2120,7 +2120,7 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( peer_key->grp.id ); if( tls_id == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ECC group %d not suported", + MBEDTLS_SSL_DEBUG_MSG( 1, ( "ECC group %u not suported", peer_key->grp.id ) ); return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); } From 33878ed30b75a46a68f95126cfb9511bffe3e468 Mon Sep 17 00:00:00 2001 From: Thomas Daubney Date: Mon, 9 Jan 2023 18:17:02 +0000 Subject: [PATCH 1371/1574] Modify generate errors script Modify generate_errors.pl such that it can now handle opening files where the file path includes a directory name containing spaces. Raised in issue #6879. Fix provided by @tom-cosgrove-arm in aforementioned issue. Signed-off-by: Thomas Daubney --- scripts/generate_errors.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/generate_errors.pl b/scripts/generate_errors.pl index 5395abf41..878cfba33 100755 --- a/scripts/generate_errors.pl +++ b/scripts/generate_errors.pl @@ -60,11 +60,11 @@ open(FORMAT_FILE, '<:crlf', "$error_format_file") or die "Opening error format f my $error_format = ; close(FORMAT_FILE); -my @files = <$include_dir/*.h>; +my @files = glob qq("$include_dir/*.h"); my @necessary_include_files; my @matches; foreach my $file (@files) { - open(FILE, '<:crlf', "$file"); + open(FILE, '<:crlf', $file) or die("$0: $file: $!"); my $content = ; close FILE; my $found = 0; From 3e60cada5d4bf2980096cd4c222c6d884eae096b Mon Sep 17 00:00:00 2001 From: Jerry Yu Date: Tue, 10 Jan 2023 14:58:08 +0800 Subject: [PATCH 1372/1574] Improve comment and changlog Signed-off-by: Jerry Yu --- .../workaround_gnutls_anti_replay_fail.txt | 11 ++++++----- library/ssl_tls13_client.c | 17 +++++++++++------ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt b/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt index fba6f7840..cebc2b7ef 100644 --- a/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt +++ b/ChangeLog.d/workaround_gnutls_anti_replay_fail.txt @@ -1,6 +1,7 @@ Bugfix - * Workaround #6623. That is time unit issue. The unit of ticket age is - seconds in MBedTLS and milliseconds in GnuTLS. If the real age is 10ms, - it might be 1s(1000ms), as a result, the age of MBedTLS is greater than - GnuTLS server. Reduce 1 if the age is greater than 1 second to workaround - it. + * In TLS 1.3, when using a ticket for session resumption, tweak its age + calculation on the client side. It prevents a server with more accurate + ticket timestamps (typically timestamps in milliseconds) compared to the + Mbed TLS ticket timestamps (in seconds) to compute a ticket age smaller + than the age computed and transmitted by the client and thus potentially + reject the ticket. Fix #6623. diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index b8ca482b8..1cd2ac575 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -947,12 +947,17 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( uint32_t obfuscated_ticket_age = (uint32_t)( now - session->ticket_received ); - /* Workaround for anti replay fail of GnuTLS server. - * - * The time unit of ticket age is milliseconds, but current unit is - * seconds. If the ticket was received at the end of first second and - * sent in next second, GnuTLS think it is replay attack. - * + /* + * The ticket timestamp is in seconds but the ticket age is in + * milliseconds. If the ticket was received at the end of a second and + * re-used here just at the beginning of the next second, the computed + * age `now - session->ticket_received` is equal to 1s thus 1000 ms + * while the actual age could be just a few milliseconds or tens of + * milliseconds. If the server has more accurate ticket timestamps + * (typically timestamps in milliseconds), as part of the processing of + * the ClientHello, it may compute a ticket lifetime smaller than the + * one computed here and potentially reject the ticket. To avoid that, + * remove one second to the ticket age if possible. */ if( obfuscated_ticket_age > 0 ) obfuscated_ticket_age -= 1; From 6e666c2e79fe0ce76725790ccb0f5649249807d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Tue, 10 Jan 2023 09:38:58 +0100 Subject: [PATCH 1373/1574] Remove obsolete comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Was explaining why we didn't use the OPENSSL name, but we are using it now... Signed-off-by: Manuel Pégourié-Gonnard --- tests/compat.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/compat.sh b/tests/compat.sh index 6f6d8f10e..fc2bfab7a 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -39,7 +39,7 @@ SRVMEM=0 # default commands, can be overridden by the environment : ${M_SRV:=../programs/ssl/ssl_server2} : ${M_CLI:=../programs/ssl/ssl_client2} -: ${OPENSSL:=openssl} # OPENSSL would conflict with the build system +: ${OPENSSL:=openssl} : ${GNUTLS_CLI:=gnutls-cli} : ${GNUTLS_SERV:=gnutls-serv} From 1efe4a874dacbdef02df9a0b2980ea197451dddc Mon Sep 17 00:00:00 2001 From: Thomas Daubney Date: Mon, 9 Jan 2023 18:35:40 +0000 Subject: [PATCH 1374/1574] Add ChangeLog entry Add ChangeLog entry documenting bugfix. Signed-off-by: Thomas Daubney --- .../fix_build_for_directory_names_containing_spaces.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/fix_build_for_directory_names_containing_spaces.txt diff --git a/ChangeLog.d/fix_build_for_directory_names_containing_spaces.txt b/ChangeLog.d/fix_build_for_directory_names_containing_spaces.txt new file mode 100644 index 000000000..e7643b703 --- /dev/null +++ b/ChangeLog.d/fix_build_for_directory_names_containing_spaces.txt @@ -0,0 +1,4 @@ +Bugfix + * Fix a bug in the build where directory names containing spaces were + causing generate_errors.pl to error out resulting in a build failure. + Fixes issue #6879. From bbbd803c2e34d34c4cbf20bfad962496ff544eb0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 10:08:12 +0000 Subject: [PATCH 1375/1574] Add Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/fix-iar-warnings.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 ChangeLog.d/fix-iar-warnings.txt diff --git a/ChangeLog.d/fix-iar-warnings.txt b/ChangeLog.d/fix-iar-warnings.txt new file mode 100644 index 000000000..244e8630d --- /dev/null +++ b/ChangeLog.d/fix-iar-warnings.txt @@ -0,0 +1,2 @@ +Bugfix + * Fix IAR compiler warnings. Contributed by Glenn Strauss in #3835. From 03e99cf14db21de8c965a856d1b34f7260c6aa44 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 11 Jan 2023 11:15:18 +0100 Subject: [PATCH 1376/1574] Remove redundant error code definitions We're including psa/crypto_values.h, which defines the necessary error codes. Remove redundant definitions, which hurt because they need to be styled in exactly the same way (same presence/absence of spaces between tokens). This completes the fix of https://github.com/Mbed-TLS/mbedtls/issues/6875. Signed-off-by: Gilles Peskine --- library/psa_crypto_its.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/library/psa_crypto_its.h b/library/psa_crypto_its.h index 1b8dc2032..90e761237 100644 --- a/library/psa_crypto_its.h +++ b/library/psa_crypto_its.h @@ -54,11 +54,6 @@ struct psa_storage_info_t /** Flag indicating that \ref psa_storage_create and \ref psa_storage_set_extended are supported */ #define PSA_STORAGE_SUPPORT_SET_EXTENDED (1 << 0) -/** \brief PSA storage specific error codes - */ -#define PSA_ERROR_INVALID_SIGNATURE ((psa_status_t)-149) -#define PSA_ERROR_DATA_CORRUPT ((psa_status_t)-152) - #define PSA_ITS_API_VERSION_MAJOR 1 /**< The major version number of the PSA ITS API. It will be incremented on significant updates that may include breaking changes */ #define PSA_ITS_API_VERSION_MINOR 1 /**< The minor version number of the PSA ITS API. It will be incremented in small updates that are unlikely to include breaking changes */ From 449bd8303eed8164b83682d2ce028dca0e49b1fa Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Wed, 11 Jan 2023 14:50:10 +0100 Subject: [PATCH 1377/1574] Switch to the new code style Signed-off-by: Gilles Peskine --- configs/config-ccm-psk-dtls1_2.h | 4 +- configs/config-ccm-psk-tls1_2.h | 4 +- include/mbedtls/aes.h | 152 +- include/mbedtls/aria.h | 67 +- include/mbedtls/asn1.h | 122 +- include/mbedtls/asn1write.h | 90 +- include/mbedtls/base64.h | 10 +- include/mbedtls/bignum.h | 235 +- include/mbedtls/build_info.h | 36 +- include/mbedtls/camellia.h | 69 +- include/mbedtls/ccm.h | 99 +- include/mbedtls/chacha20.h | 39 +- include/mbedtls/chachapoly.h | 72 +- include/mbedtls/cipher.h | 245 +- include/mbedtls/cmac.h | 35 +- include/mbedtls/config_psa.h | 4 +- include/mbedtls/constant_time.h | 6 +- include/mbedtls/ctr_drbg.h | 99 +- include/mbedtls/debug.h | 105 +- include/mbedtls/des.h | 82 +- include/mbedtls/dhm.h | 1092 +- include/mbedtls/ecdh.h | 95 +- include/mbedtls/ecdsa.h | 99 +- include/mbedtls/ecjpake.h | 71 +- include/mbedtls/ecp.h | 225 +- include/mbedtls/entropy.h | 46 +- include/mbedtls/error.h | 27 +- include/mbedtls/gcm.h | 93 +- include/mbedtls/hkdf.h | 22 +- include/mbedtls/hmac_drbg.h | 65 +- include/mbedtls/legacy_or_psa.h | 98 +- include/mbedtls/lms.h | 83 +- include/mbedtls/mbedtls_config.h | 30 +- include/mbedtls/md.h | 63 +- include/mbedtls/md5.h | 35 +- include/mbedtls/memory_buffer_alloc.h | 23 +- include/mbedtls/net_sockets.h | 35 +- include/mbedtls/nist_kw.h | 31 +- include/mbedtls/oid.h | 69 +- include/mbedtls/pem.h | 25 +- include/mbedtls/pk.h | 234 +- include/mbedtls/pkcs12.h | 18 +- include/mbedtls/pkcs5.h | 33 +- include/mbedtls/pkcs7.h | 34 +- include/mbedtls/platform.h | 65 +- include/mbedtls/platform_time.h | 4 +- include/mbedtls/platform_util.h | 26 +- include/mbedtls/poly1305.h | 31 +- include/mbedtls/private_access.h | 2 +- include/mbedtls/psa_util.h | 153 +- include/mbedtls/ripemd160.h | 35 +- include/mbedtls/rsa.h | 293 +- include/mbedtls/sha1.h | 35 +- include/mbedtls/sha256.h | 41 +- include/mbedtls/sha512.h | 43 +- include/mbedtls/ssl.h | 903 +- include/mbedtls/ssl_cache.h | 30 +- include/mbedtls/ssl_ciphersuites.h | 100 +- include/mbedtls/ssl_cookie.h | 17 +- include/mbedtls/ssl_ticket.h | 30 +- include/mbedtls/threading.h | 21 +- include/mbedtls/timing.h | 14 +- include/mbedtls/version.h | 8 +- include/mbedtls/x509.h | 96 +- include/mbedtls/x509_crl.h | 22 +- include/mbedtls/x509_crt.h | 361 +- include/mbedtls/x509_csr.h | 60 +- include/psa/crypto.h | 36 +- include/psa/crypto_builtin_composites.h | 21 +- include/psa/crypto_builtin_primitives.h | 14 +- include/psa/crypto_compat.h | 8 +- .../psa/crypto_driver_contexts_composites.h | 24 +- .../psa/crypto_driver_contexts_primitives.h | 18 +- include/psa/crypto_extra.h | 290 +- include/psa/crypto_platform.h | 6 +- include/psa/crypto_se_driver.h | 7 +- include/psa/crypto_sizes.h | 74 +- include/psa/crypto_struct.h | 167 +- include/psa/crypto_types.h | 5 +- include/psa/crypto_values.h | 336 +- library/aes.c | 1549 ++- library/aesni.c | 254 +- library/aesni.h | 32 +- library/alignment.h | 277 +- library/aria.c | 652 +- library/asn1parse.c | 450 +- library/asn1write.c | 412 +- library/base64.c | 199 +- library/bignum.c | 2200 ++-- library/bignum_core.c | 662 +- library/bignum_core.h | 212 +- library/bignum_mod.c | 326 +- library/bignum_mod.h | 94 +- library/bignum_mod_raw.c | 233 +- library/bignum_mod_raw.h | 104 +- library/bn_mul.h | 46 +- library/camellia.c | 761 +- library/ccm.c | 580 +- library/chacha20.c | 246 +- library/chachapoly.c | 376 +- library/check_crypto_config.h | 40 +- library/cipher.c | 1336 +- library/cipher_wrap.c | 590 +- library/cipher_wrap.h | 64 +- library/cmac.c | 737 +- library/common.h | 40 +- library/constant_time.c | 543 +- library/constant_time_internal.h | 106 +- library/constant_time_invasive.h | 6 +- library/ctr_drbg.c | 720 +- library/debug.c | 313 +- library/des.c | 701 +- library/dhm.c | 584 +- library/ecdh.c | 545 +- library/ecdsa.c | 645 +- library/ecjpake.c | 958 +- library/ecp.c | 2600 ++-- library/ecp_curves.c | 6602 +++++----- library/ecp_internal_alt.h | 54 +- library/ecp_invasive.h | 10 +- library/entropy.c | 486 +- library/entropy_poll.c | 117 +- library/entropy_poll.h | 12 +- library/gcm.c | 863 +- library/hash_info.c | 46 +- library/hash_info.h | 14 +- library/hkdf.c | 114 +- library/hmac_drbg.c | 454 +- library/lmots.c | 726 +- library/lmots.h | 78 +- library/lms.c | 675 +- library/md.c | 540 +- library/md5.c | 354 +- library/md_wrap.h | 5 +- library/memory_buffer_alloc.c | 553 +- library/mps_common.h | 32 +- library/mps_error.h | 26 +- library/mps_reader.c | 327 +- library/mps_reader.h | 150 +- library/mps_trace.c | 45 +- library/mps_trace.h | 93 +- library/net_sockets.c | 513 +- library/nist_kw.c | 521 +- library/oid.c | 415 +- library/padlock.c | 81 +- library/padlock.h | 22 +- library/pem.c | 546 +- library/pk.c | 821 +- library/pk_wrap.c | 1324 +- library/pk_wrap.h | 92 +- library/pkcs12.c | 426 +- library/pkcs5.c | 427 +- library/pkcs7.c | 529 +- library/pkparse.c | 1295 +- library/pkwrite.c | 421 +- library/pkwrite.h | 14 +- library/platform.c | 232 +- library/platform_util.c | 73 +- library/poly1305.c | 311 +- library/psa_crypto.c | 5516 ++++----- library/psa_crypto_aead.c | 582 +- library/psa_crypto_aead.h | 20 +- library/psa_crypto_cipher.c | 381 +- library/psa_crypto_cipher.h | 54 +- library/psa_crypto_client.c | 49 +- library/psa_crypto_core.h | 103 +- library/psa_crypto_driver_wrappers.h | 96 +- library/psa_crypto_ecp.c | 492 +- library/psa_crypto_ecp.h | 32 +- library/psa_crypto_hash.c | 216 +- library/psa_crypto_hash.h | 10 +- library/psa_crypto_invasive.h | 6 +- library/psa_crypto_its.h | 5 +- library/psa_crypto_mac.c | 395 +- library/psa_crypto_mac.h | 8 +- library/psa_crypto_pake.c | 675 +- library/psa_crypto_random_impl.h | 47 +- library/psa_crypto_rsa.c | 658 +- library/psa_crypto_rsa.h | 72 +- library/psa_crypto_se.c | 280 +- library/psa_crypto_se.h | 35 +- library/psa_crypto_slot_management.c | 450 +- library/psa_crypto_slot_management.h | 47 +- library/psa_crypto_storage.c | 404 +- library/psa_crypto_storage.h | 67 +- library/psa_its_file.c | 224 +- library/ripemd160.c | 399 +- library/rsa.c | 2036 +-- library/rsa_alt_helpers.c | 333 +- library/rsa_alt_helpers.h | 36 +- library/sha1.c | 427 +- library/sha256.c | 594 +- library/sha512.c | 745 +- library/ssl_cache.c | 214 +- library/ssl_ciphersuites.c | 393 +- library/ssl_client.c | 622 +- library/ssl_client.h | 2 +- library/ssl_cookie.c | 289 +- library/ssl_debug_helpers.h | 48 +- library/ssl_misc.h | 1259 +- library/ssl_msg.c | 4690 ++++--- library/ssl_ticket.c | 407 +- library/ssl_tls.c | 6998 +++++------ library/ssl_tls12_client.c | 3164 +++-- library/ssl_tls12_server.c | 3643 +++--- library/ssl_tls13_client.c | 2139 ++-- library/ssl_tls13_generic.c | 1246 +- library/ssl_tls13_invasive.h | 6 +- library/ssl_tls13_keys.c | 1701 ++- library/ssl_tls13_keys.h | 188 +- library/ssl_tls13_server.c | 2349 ++-- library/threading.c | 98 +- library/timing.c | 82 +- library/version.c | 16 +- library/x509.c | 805 +- library/x509_create.c | 276 +- library/x509_crl.c | 581 +- library/x509_crt.c | 2594 ++-- library/x509_csr.c | 277 +- library/x509write_crt.c | 603 +- library/x509write_csr.c | 291 +- programs/aes/crypt_and_hash.c | 470 +- programs/cipher/cipher_aead_demo.c | 158 +- programs/fuzz/common.c | 46 +- programs/fuzz/common.h | 17 +- programs/fuzz/fuzz_client.c | 94 +- programs/fuzz/fuzz_dtlsclient.c | 74 +- programs/fuzz/fuzz_dtlsserver.c | 118 +- programs/fuzz/fuzz_pkcs7.c | 9 +- programs/fuzz/fuzz_privkey.c | 63 +- programs/fuzz/fuzz_pubkey.c | 59 +- programs/fuzz/fuzz_server.c | 120 +- programs/fuzz/fuzz_x509crl.c | 11 +- programs/fuzz/fuzz_x509crt.c | 11 +- programs/fuzz/fuzz_x509csr.c | 11 +- programs/fuzz/onefile.c | 5 +- programs/hash/generic_sum.c | 168 +- programs/hash/hello.c | 22 +- programs/hash/md_hmac_demo.c | 69 +- programs/pkey/dh_client.c | 209 +- programs/pkey/dh_genprime.c | 121 +- programs/pkey/dh_server.c | 247 +- programs/pkey/ecdh_curve25519.c | 169 +- programs/pkey/ecdsa.c | 153 +- programs/pkey/gen_key.c | 334 +- programs/pkey/key_app.c | 266 +- programs/pkey/key_app_writer.c | 342 +- programs/pkey/mpi_demo.c | 73 +- programs/pkey/pk_decrypt.c | 96 +- programs/pkey/pk_encrypt.c | 103 +- programs/pkey/pk_sign.c | 105 +- programs/pkey/pk_verify.c | 73 +- programs/pkey/rsa_decrypt.c | 152 +- programs/pkey/rsa_encrypt.c | 123 +- programs/pkey/rsa_genkey.c | 123 +- programs/pkey/rsa_sign.c | 132 +- programs/pkey/rsa_sign_pss.c | 113 +- programs/pkey/rsa_verify.c | 89 +- programs/pkey/rsa_verify_pss.c | 83 +- programs/psa/aead_demo.c | 170 +- programs/psa/crypto_examples.c | 332 +- programs/psa/hmac_demo.c | 88 +- programs/psa/key_ladder_demo.c | 625 +- programs/psa/psa_constant_names.c | 27 +- programs/random/gen_entropy.c | 53 +- programs/random/gen_random_ctr_drbg.c | 88 +- programs/ssl/dtls_client.c | 248 +- programs/ssl/dtls_server.c | 315 +- programs/ssl/mini_client.c | 96 +- programs/ssl/ssl_client1.c | 226 +- programs/ssl/ssl_client2.c | 2693 ++-- programs/ssl/ssl_context_info.c | 921 +- programs/ssl/ssl_fork_server.c | 310 +- programs/ssl/ssl_mail_client.c | 741 +- programs/ssl/ssl_pthread_server.c | 360 +- programs/ssl/ssl_server.c | 282 +- programs/ssl/ssl_server2.c | 3550 +++--- programs/ssl/ssl_test_common_source.c | 299 +- programs/ssl/ssl_test_lib.c | 367 +- programs/ssl/ssl_test_lib.h | 68 +- programs/test/benchmark.c | 1129 +- programs/test/cmake_package/cmake_package.c | 6 +- .../cmake_package_install.c | 6 +- .../test/cmake_subproject/cmake_subproject.c | 6 +- programs/test/dlopen.c | 85 +- programs/test/query_compile_time_config.c | 50 +- programs/test/query_config.h | 4 +- programs/test/selftest.c | 433 +- programs/test/udp_proxy.c | 833 +- programs/test/zeroize.c | 50 +- programs/util/pem2der.c | 200 +- programs/util/strerror.c | 43 +- programs/wince_main.c | 16 +- programs/x509/cert_app.c | 351 +- programs/x509/cert_req.c | 271 +- programs/x509/cert_write.c | 740 +- programs/x509/crl_app.c | 65 +- programs/x509/load_roots.c | 109 +- programs/x509/req_app.c | 65 +- scripts/data_files/error.fmt | 90 +- scripts/data_files/query_config.fmt | 13 +- scripts/data_files/version_features.fmt | 24 +- tests/configs/config-wrapper-malloc-0-null.h | 9 +- tests/include/alt-dummy/aes_alt.h | 6 +- tests/include/alt-dummy/aria_alt.h | 3 +- tests/include/alt-dummy/camellia_alt.h | 3 +- tests/include/alt-dummy/ccm_alt.h | 3 +- tests/include/alt-dummy/chacha20_alt.h | 3 +- tests/include/alt-dummy/chachapoly_alt.h | 3 +- tests/include/alt-dummy/cmac_alt.h | 3 +- tests/include/alt-dummy/des_alt.h | 6 +- tests/include/alt-dummy/dhm_alt.h | 3 +- tests/include/alt-dummy/ecjpake_alt.h | 3 +- tests/include/alt-dummy/ecp_alt.h | 3 +- tests/include/alt-dummy/gcm_alt.h | 3 +- tests/include/alt-dummy/md5_alt.h | 3 +- tests/include/alt-dummy/platform_alt.h | 3 +- tests/include/alt-dummy/poly1305_alt.h | 3 +- tests/include/alt-dummy/ripemd160_alt.h | 3 +- tests/include/alt-dummy/rsa_alt.h | 3 +- tests/include/alt-dummy/sha1_alt.h | 3 +- tests/include/alt-dummy/sha256_alt.h | 3 +- tests/include/alt-dummy/sha512_alt.h | 3 +- tests/include/alt-dummy/threading_alt.h | 3 +- tests/include/alt-dummy/timing_alt.h | 6 +- tests/include/spe/crypto_spe.h | 106 +- tests/include/test/asn1_helpers.h | 6 +- tests/include/test/bignum_helpers.h | 14 +- tests/include/test/certs.h | 22 +- tests/include/test/drivers/aead.h | 58 +- .../test/drivers/asymmetric_encryption.h | 12 +- tests/include/test/drivers/cipher.h | 6 +- tests/include/test/drivers/hash.h | 16 +- tests/include/test/drivers/key_agreement.h | 8 +- tests/include/test/drivers/key_management.h | 28 +- tests/include/test/drivers/mac.h | 32 +- tests/include/test/drivers/signature.h | 20 +- .../include/test/fake_external_rng_for_test.h | 4 +- tests/include/test/helpers.h | 61 +- tests/include/test/macros.h | 160 +- tests/include/test/psa_crypto_helpers.h | 106 +- tests/include/test/psa_exercise_key.h | 26 +- tests/include/test/psa_helpers.h | 2 +- tests/include/test/random.h | 32 +- tests/src/asn1_helpers.c | 48 +- tests/src/bignum_helpers.c | 120 +- tests/src/certs.c | 1818 +-- tests/src/drivers/hash.c | 134 +- tests/src/drivers/platform_builtin_keys.c | 41 +- tests/src/drivers/test_driver_aead.c | 371 +- .../test_driver_asymmetric_encryption.c | 94 +- tests/src/drivers/test_driver_cipher.c | 229 +- tests/src/drivers/test_driver_key_agreement.c | 70 +- .../src/drivers/test_driver_key_management.c | 717 +- tests/src/drivers/test_driver_mac.c | 260 +- tests/src/drivers/test_driver_signature.c | 322 +- tests/src/fake_external_rng_for_test.c | 15 +- tests/src/helpers.c | 327 +- tests/src/psa_crypto_helpers.c | 96 +- tests/src/psa_exercise_key.c | 1083 +- tests/src/random.c | 104 +- tests/src/threading_helpers.c | 101 +- tests/suites/helpers.function | 75 +- tests/suites/host_test.function | 705 +- tests/suites/main_test.function | 87 +- tests/suites/test_suite_aes.function | 395 +- tests/suites/test_suite_alignment.function | 296 +- tests/suites/test_suite_aria.function | 250 +- tests/suites/test_suite_asn1parse.function | 645 +- tests/suites/test_suite_asn1write.function | 540 +- tests/suites/test_suite_base64.function | 156 +- tests/suites/test_suite_bignum.function | 1382 ++- tests/suites/test_suite_bignum_core.function | 1136 +- tests/suites/test_suite_bignum_mod.function | 668 +- .../suites/test_suite_bignum_mod_raw.function | 835 +- .../suites/test_suite_bignum_random.function | 413 +- tests/suites/test_suite_camellia.function | 146 +- tests/suites/test_suite_ccm.function | 975 +- tests/suites/test_suite_chacha20.function | 57 +- tests/suites/test_suite_chachapoly.function | 164 +- tests/suites/test_suite_cipher.function | 1070 +- tests/suites/test_suite_cmac.function | 333 +- tests/suites/test_suite_common.function | 80 +- .../suites/test_suite_constant_time.function | 29 +- .../test_suite_constant_time_hmac.function | 139 +- tests/suites/test_suite_ctr_drbg.function | 311 +- tests/suites/test_suite_debug.function | 192 +- tests/suites/test_suite_des.function | 220 +- tests/suites/test_suite_dhm.function | 293 +- tests/suites/test_suite_ecdh.function | 489 +- tests/suites/test_suite_ecdsa.function | 535 +- tests/suites/test_suite_ecjpake.function | 142 +- tests/suites/test_suite_ecp.function | 1376 +-- tests/suites/test_suite_entropy.function | 422 +- tests/suites/test_suite_error.function | 8 +- tests/suites/test_suite_gcm.function | 456 +- tests/suites/test_suite_hkdf.function | 104 +- tests/suites/test_suite_hmac_drbg.function | 254 +- tests/suites/test_suite_lmots.function | 193 +- tests/suites/test_suite_lms.function | 159 +- tests/suites/test_suite_md.function | 382 +- tests/suites/test_suite_mdx.function | 36 +- .../test_suite_memory_buffer_alloc.function | 217 +- tests/suites/test_suite_mps.function | 915 +- tests/suites/test_suite_net.function | 58 +- tests/suites/test_suite_nist_kw.function | 323 +- tests/suites/test_suite_oid.function | 70 +- tests/suites/test_suite_pem.function | 49 +- tests/suites/test_suite_pk.function | 1459 ++- tests/suites/test_suite_pkcs12.function | 62 +- tests/suites/test_suite_pkcs1_v15.function | 313 +- tests/suites/test_suite_pkcs1_v21.function | 274 +- tests/suites/test_suite_pkcs5.function | 37 +- tests/suites/test_suite_pkcs7.function | 174 +- tests/suites/test_suite_pkparse.function | 93 +- tests/suites/test_suite_pkwrite.function | 72 +- tests/suites/test_suite_poly1305.function | 60 +- tests/suites/test_suite_psa_crypto.function | 10273 ++++++++-------- .../test_suite_psa_crypto_attributes.function | 141 +- ..._suite_psa_crypto_driver_wrappers.function | 2903 +++-- .../test_suite_psa_crypto_entropy.function | 189 +- ...est_suite_psa_crypto_generate_key.function | 33 +- .../test_suite_psa_crypto_hash.function | 99 +- .../test_suite_psa_crypto_init.function | 216 +- .../test_suite_psa_crypto_metadata.function | 842 +- ...st_suite_psa_crypto_not_supported.function | 40 +- .../test_suite_psa_crypto_op_fail.function | 447 +- .../test_suite_psa_crypto_pake.function | 1028 +- ...t_suite_psa_crypto_persistent_key.function | 311 +- ...st_suite_psa_crypto_se_driver_hal.function | 1448 +-- ...te_psa_crypto_se_driver_hal_mocks.function | 579 +- ..._suite_psa_crypto_slot_management.function | 1009 +- ...t_suite_psa_crypto_storage_format.function | 346 +- tests/suites/test_suite_psa_its.function | 266 +- tests/suites/test_suite_random.function | 184 +- tests/suites/test_suite_rsa.function | 1599 ++- tests/suites/test_suite_shax.function | 78 +- tests/suites/test_suite_ssl.function | 5423 ++++---- tests/suites/test_suite_timing.function | 27 +- tests/suites/test_suite_version.function | 62 +- tests/suites/test_suite_x509parse.function | 1168 +- tests/suites/test_suite_x509write.function | 582 +- 442 files changed, 86735 insertions(+), 89438 deletions(-) diff --git a/configs/config-ccm-psk-dtls1_2.h b/configs/config-ccm-psk-dtls1_2.h index 02bc829f9..af2415fe1 100644 --- a/configs/config-ccm-psk-dtls1_2.h +++ b/configs/config-ccm-psk-dtls1_2.h @@ -69,8 +69,8 @@ * save ROM and a few bytes of RAM by specifying our own ciphersuite list */ #define MBEDTLS_SSL_CIPHERSUITES \ - MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, \ - MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 + MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, \ + MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 /* * Save RAM at the expense of interoperability: do this only if you control diff --git a/configs/config-ccm-psk-tls1_2.h b/configs/config-ccm-psk-tls1_2.h index 84e5db3ad..62c1d8013 100644 --- a/configs/config-ccm-psk-tls1_2.h +++ b/configs/config-ccm-psk-tls1_2.h @@ -60,8 +60,8 @@ * save ROM and a few bytes of RAM by specifying our own ciphersuite list */ #define MBEDTLS_SSL_CIPHERSUITES \ - MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, \ - MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 + MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, \ + MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 /* * Save RAM at the expense of interoperability: do this only if you control diff --git a/include/mbedtls/aes.h b/include/mbedtls/aes.h index 1cd20fe06..42e1fe855 100644 --- a/include/mbedtls/aes.h +++ b/include/mbedtls/aes.h @@ -72,19 +72,18 @@ extern "C" { /** * \brief The AES context-type definition. */ -typedef struct mbedtls_aes_context -{ +typedef struct mbedtls_aes_context { int MBEDTLS_PRIVATE(nr); /*!< The number of rounds. */ size_t MBEDTLS_PRIVATE(rk_offset); /*!< The offset in array elements to AES - round keys in the buffer. */ + round keys in the buffer. */ uint32_t MBEDTLS_PRIVATE(buf)[68]; /*!< Unaligned data buffer. This buffer can - hold 32 extra Bytes, which can be used for - one of the following purposes: -
  • Alignment if VIA padlock is - used.
  • -
  • Simplifying key expansion in the 256-bit - case by generating an extra round key. -
*/ + hold 32 extra Bytes, which can be used for + one of the following purposes: +
  • Alignment if VIA padlock is + used.
  • +
  • Simplifying key expansion in the 256-bit + case by generating an extra round key. +
*/ } mbedtls_aes_context; @@ -92,12 +91,11 @@ mbedtls_aes_context; /** * \brief The AES XTS context-type definition. */ -typedef struct mbedtls_aes_xts_context -{ +typedef struct mbedtls_aes_xts_context { mbedtls_aes_context MBEDTLS_PRIVATE(crypt); /*!< The AES context to use for AES block - encryption or decryption. */ + encryption or decryption. */ mbedtls_aes_context MBEDTLS_PRIVATE(tweak); /*!< The AES context used for tweak - computation. */ + computation. */ } mbedtls_aes_xts_context; #endif /* MBEDTLS_CIPHER_MODE_XTS */ @@ -113,7 +111,7 @@ typedef struct mbedtls_aes_xts_context * * \param ctx The AES context to initialize. This must not be \c NULL. */ -void mbedtls_aes_init( mbedtls_aes_context *ctx ); +void mbedtls_aes_init(mbedtls_aes_context *ctx); /** * \brief This function releases and clears the specified AES context. @@ -122,7 +120,7 @@ void mbedtls_aes_init( mbedtls_aes_context *ctx ); * If this is \c NULL, this function does nothing. * Otherwise, the context must have been at least initialized. */ -void mbedtls_aes_free( mbedtls_aes_context *ctx ); +void mbedtls_aes_free(mbedtls_aes_context *ctx); #if defined(MBEDTLS_CIPHER_MODE_XTS) /** @@ -133,7 +131,7 @@ void mbedtls_aes_free( mbedtls_aes_context *ctx ); * * \param ctx The AES XTS context to initialize. This must not be \c NULL. */ -void mbedtls_aes_xts_init( mbedtls_aes_xts_context *ctx ); +void mbedtls_aes_xts_init(mbedtls_aes_xts_context *ctx); /** * \brief This function releases and clears the specified AES XTS context. @@ -142,7 +140,7 @@ void mbedtls_aes_xts_init( mbedtls_aes_xts_context *ctx ); * If this is \c NULL, this function does nothing. * Otherwise, the context must have been at least initialized. */ -void mbedtls_aes_xts_free( mbedtls_aes_xts_context *ctx ); +void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx); #endif /* MBEDTLS_CIPHER_MODE_XTS */ /** @@ -161,8 +159,8 @@ void mbedtls_aes_xts_free( mbedtls_aes_xts_context *ctx ); * \return #MBEDTLS_ERR_AES_INVALID_KEY_LENGTH on failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, - unsigned int keybits ); +int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key, + unsigned int keybits); /** * \brief This function sets the decryption key. @@ -180,8 +178,8 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, * \return #MBEDTLS_ERR_AES_INVALID_KEY_LENGTH on failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, - unsigned int keybits ); +int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key, + unsigned int keybits); #if defined(MBEDTLS_CIPHER_MODE_XTS) /** @@ -201,9 +199,9 @@ int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, * \return #MBEDTLS_ERR_AES_INVALID_KEY_LENGTH on failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_aes_xts_setkey_enc(mbedtls_aes_xts_context *ctx, + const unsigned char *key, + unsigned int keybits); /** * \brief This function prepares an XTS context for decryption and @@ -222,9 +220,9 @@ int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx, * \return #MBEDTLS_ERR_AES_INVALID_KEY_LENGTH on failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx, + const unsigned char *key, + unsigned int keybits); #endif /* MBEDTLS_CIPHER_MODE_XTS */ /** @@ -251,10 +249,10 @@ int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** @@ -299,12 +297,12 @@ int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, * on failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_XTS) @@ -344,12 +342,12 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, * length is larger than 2^20 blocks (16 MiB). */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, - int mode, - size_t length, - const unsigned char data_unit[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_xts(mbedtls_aes_xts_context *ctx, + int mode, + size_t length, + const unsigned char data_unit[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_XTS */ #if defined(MBEDTLS_CIPHER_MODE_CFB) @@ -393,13 +391,13 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); /** * \brief This function performs an AES-CFB8 encryption or decryption @@ -438,12 +436,12 @@ int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_cfb8(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #endif /*MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_OFB) @@ -493,12 +491,12 @@ int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_ofb( mbedtls_aes_context *ctx, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_ofb(mbedtls_aes_context *ctx, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_OFB */ @@ -576,13 +574,13 @@ int mbedtls_aes_crypt_ofb( mbedtls_aes_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[16], - unsigned char stream_block[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aes_crypt_ctr(mbedtls_aes_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[16], + unsigned char stream_block[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CTR */ /** @@ -597,9 +595,9 @@ int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx, + const unsigned char input[16], + unsigned char output[16]); /** * \brief Internal AES block decryption function. This is only @@ -613,9 +611,9 @@ int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx, * \return \c 0 on success. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_internal_aes_decrypt( mbedtls_aes_context *ctx, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx, + const unsigned char input[16], + unsigned char output[16]); #if defined(MBEDTLS_SELF_TEST) /** @@ -625,7 +623,7 @@ int mbedtls_internal_aes_decrypt( mbedtls_aes_context *ctx, * \return \c 1 on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_aes_self_test( int verbose ); +int mbedtls_aes_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/aria.h b/include/mbedtls/aria.h index 71540c86e..587cbf8bd 100644 --- a/include/mbedtls/aria.h +++ b/include/mbedtls/aria.h @@ -61,8 +61,7 @@ extern "C" { /** * \brief The ARIA context-type definition. */ -typedef struct mbedtls_aria_context -{ +typedef struct mbedtls_aria_context { unsigned char MBEDTLS_PRIVATE(nr); /*!< The number of rounds (12, 14 or 16) */ /*! The ARIA round keys. */ uint32_t MBEDTLS_PRIVATE(rk)[MBEDTLS_ARIA_MAX_ROUNDS + 1][MBEDTLS_ARIA_BLOCKSIZE / 4]; @@ -81,7 +80,7 @@ mbedtls_aria_context; * * \param ctx The ARIA context to initialize. This must not be \c NULL. */ -void mbedtls_aria_init( mbedtls_aria_context *ctx ); +void mbedtls_aria_init(mbedtls_aria_context *ctx); /** * \brief This function releases and clears the specified ARIA context. @@ -90,7 +89,7 @@ void mbedtls_aria_init( mbedtls_aria_context *ctx ); * case this function returns immediately. If it is not \c NULL, * it must point to an initialized ARIA context. */ -void mbedtls_aria_free( mbedtls_aria_context *ctx ); +void mbedtls_aria_free(mbedtls_aria_context *ctx); /** * \brief This function sets the encryption key. @@ -107,9 +106,9 @@ void mbedtls_aria_free( mbedtls_aria_context *ctx ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_setkey_enc( mbedtls_aria_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_aria_setkey_enc(mbedtls_aria_context *ctx, + const unsigned char *key, + unsigned int keybits); /** * \brief This function sets the decryption key. @@ -126,9 +125,9 @@ int mbedtls_aria_setkey_enc( mbedtls_aria_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_setkey_dec( mbedtls_aria_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_aria_setkey_dec(mbedtls_aria_context *ctx, + const unsigned char *key, + unsigned int keybits); /** * \brief This function performs an ARIA single-block encryption or @@ -150,9 +149,9 @@ int mbedtls_aria_setkey_dec( mbedtls_aria_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx, - const unsigned char input[MBEDTLS_ARIA_BLOCKSIZE], - unsigned char output[MBEDTLS_ARIA_BLOCKSIZE] ); +int mbedtls_aria_crypt_ecb(mbedtls_aria_context *ctx, + const unsigned char input[MBEDTLS_ARIA_BLOCKSIZE], + unsigned char output[MBEDTLS_ARIA_BLOCKSIZE]); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** @@ -196,12 +195,12 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, - int mode, - size_t length, - unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aria_crypt_cbc(mbedtls_aria_context *ctx, + int mode, + size_t length, + unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) @@ -246,13 +245,13 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_crypt_cfb128( mbedtls_aria_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aria_crypt_cfb128(mbedtls_aria_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) @@ -333,13 +332,13 @@ int mbedtls_aria_crypt_cfb128( mbedtls_aria_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_aria_crypt_ctr( mbedtls_aria_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[MBEDTLS_ARIA_BLOCKSIZE], - unsigned char stream_block[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ); +int mbedtls_aria_crypt_ctr(mbedtls_aria_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[MBEDTLS_ARIA_BLOCKSIZE], + unsigned char stream_block[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_SELF_TEST) @@ -348,7 +347,7 @@ int mbedtls_aria_crypt_ctr( mbedtls_aria_context *ctx, * * \return \c 0 on success, or \c 1 on failure. */ -int mbedtls_aria_self_test( int verbose ); +int mbedtls_aria_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus diff --git a/include/mbedtls/asn1.h b/include/mbedtls/asn1.h index 5e3f3878c..e15aeb3f8 100644 --- a/include/mbedtls/asn1.h +++ b/include/mbedtls/asn1.h @@ -96,15 +96,15 @@ /* Slightly smaller way to check if tag is a string tag * compared to canonical implementation. */ -#define MBEDTLS_ASN1_IS_STRING_TAG( tag ) \ - ( ( tag ) < 32u && ( \ - ( ( 1u << ( tag ) ) & ( ( 1u << MBEDTLS_ASN1_BMP_STRING ) | \ - ( 1u << MBEDTLS_ASN1_UTF8_STRING ) | \ - ( 1u << MBEDTLS_ASN1_T61_STRING ) | \ - ( 1u << MBEDTLS_ASN1_IA5_STRING ) | \ - ( 1u << MBEDTLS_ASN1_UNIVERSAL_STRING ) | \ - ( 1u << MBEDTLS_ASN1_PRINTABLE_STRING ) | \ - ( 1u << MBEDTLS_ASN1_BIT_STRING ) ) ) != 0 ) ) +#define MBEDTLS_ASN1_IS_STRING_TAG(tag) \ + ((tag) < 32u && ( \ + ((1u << (tag)) & ((1u << MBEDTLS_ASN1_BMP_STRING) | \ + (1u << MBEDTLS_ASN1_UTF8_STRING) | \ + (1u << MBEDTLS_ASN1_T61_STRING) | \ + (1u << MBEDTLS_ASN1_IA5_STRING) | \ + (1u << MBEDTLS_ASN1_UNIVERSAL_STRING) | \ + (1u << MBEDTLS_ASN1_PRINTABLE_STRING) | \ + (1u << MBEDTLS_ASN1_BIT_STRING))) != 0)) /* * Bit masks for each of the components of an ASN.1 tag as specified in @@ -132,12 +132,12 @@ * 'unsigned char *oid' here! */ #define MBEDTLS_OID_CMP(oid_str, oid_buf) \ - ( ( MBEDTLS_OID_SIZE(oid_str) != (oid_buf)->len ) || \ - memcmp( (oid_str), (oid_buf)->p, (oid_buf)->len) != 0 ) + ((MBEDTLS_OID_SIZE(oid_str) != (oid_buf)->len) || \ + memcmp((oid_str), (oid_buf)->p, (oid_buf)->len) != 0) #define MBEDTLS_OID_CMP_RAW(oid_str, oid_buf, oid_buf_len) \ - ( ( MBEDTLS_OID_SIZE(oid_str) != (oid_buf_len) ) || \ - memcmp( (oid_str), (oid_buf), (oid_buf_len) ) != 0 ) + ((MBEDTLS_OID_SIZE(oid_str) != (oid_buf_len)) || \ + memcmp((oid_str), (oid_buf), (oid_buf_len)) != 0) #ifdef __cplusplus extern "C" { @@ -151,8 +151,7 @@ extern "C" { /** * Type-length-value structure that allows for ASN1 using DER. */ -typedef struct mbedtls_asn1_buf -{ +typedef struct mbedtls_asn1_buf { int tag; /**< ASN1 type, e.g. MBEDTLS_ASN1_UTF8_STRING. */ size_t len; /**< ASN1 length, in octets. */ unsigned char *p; /**< ASN1 data, e.g. in ASCII. */ @@ -162,8 +161,7 @@ mbedtls_asn1_buf; /** * Container for ASN1 bit strings. */ -typedef struct mbedtls_asn1_bitstring -{ +typedef struct mbedtls_asn1_bitstring { size_t len; /**< ASN1 length, in octets. */ unsigned char unused_bits; /**< Number of unused bits at the end of the string */ unsigned char *p; /**< Raw ASN1 data for the bit string */ @@ -173,8 +171,7 @@ mbedtls_asn1_bitstring; /** * Container for a sequence of ASN.1 items */ -typedef struct mbedtls_asn1_sequence -{ +typedef struct mbedtls_asn1_sequence { mbedtls_asn1_buf buf; /**< Buffer containing the given ASN.1 item. */ /** The next entry in the sequence. @@ -191,8 +188,7 @@ mbedtls_asn1_sequence; /** * Container for a sequence or list of 'named' ASN.1 data items */ -typedef struct mbedtls_asn1_named_data -{ +typedef struct mbedtls_asn1_named_data { mbedtls_asn1_buf oid; /**< The object identifier. */ mbedtls_asn1_buf val; /**< The named value. */ @@ -232,9 +228,9 @@ mbedtls_asn1_named_data; * would end beyond \p end. * \return #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the length is unparsable. */ -int mbedtls_asn1_get_len( unsigned char **p, - const unsigned char *end, - size_t *len ); +int mbedtls_asn1_get_len(unsigned char **p, + const unsigned char *end, + size_t *len); /** * \brief Get the tag and length of the element. @@ -257,9 +253,9 @@ int mbedtls_asn1_get_len( unsigned char **p, * would end beyond \p end. * \return #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the length is unparsable. */ -int mbedtls_asn1_get_tag( unsigned char **p, - const unsigned char *end, - size_t *len, int tag ); +int mbedtls_asn1_get_tag(unsigned char **p, + const unsigned char *end, + size_t *len, int tag); /** * \brief Retrieve a boolean ASN.1 tag and its value. @@ -276,9 +272,9 @@ int mbedtls_asn1_get_tag( unsigned char **p, * \return An ASN.1 error code if the input does not start with * a valid ASN.1 BOOLEAN. */ -int mbedtls_asn1_get_bool( unsigned char **p, - const unsigned char *end, - int *val ); +int mbedtls_asn1_get_bool(unsigned char **p, + const unsigned char *end, + int *val); /** * \brief Retrieve an integer ASN.1 tag and its value. @@ -297,9 +293,9 @@ int mbedtls_asn1_get_bool( unsigned char **p, * \return #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does * not fit in an \c int. */ -int mbedtls_asn1_get_int( unsigned char **p, - const unsigned char *end, - int *val ); +int mbedtls_asn1_get_int(unsigned char **p, + const unsigned char *end, + int *val); /** * \brief Retrieve an enumerated ASN.1 tag and its value. @@ -318,9 +314,9 @@ int mbedtls_asn1_get_int( unsigned char **p, * \return #MBEDTLS_ERR_ASN1_INVALID_LENGTH if the parsed value does * not fit in an \c int. */ -int mbedtls_asn1_get_enum( unsigned char **p, - const unsigned char *end, - int *val ); +int mbedtls_asn1_get_enum(unsigned char **p, + const unsigned char *end, + int *val); /** * \brief Retrieve a bitstring ASN.1 tag and its value. @@ -339,8 +335,8 @@ int mbedtls_asn1_get_enum( unsigned char **p, * \return An ASN.1 error code if the input does not start with * a valid ASN.1 BIT STRING. */ -int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end, - mbedtls_asn1_bitstring *bs ); +int mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end, + mbedtls_asn1_bitstring *bs); /** * \brief Retrieve a bitstring ASN.1 tag without unused bits and its @@ -360,9 +356,9 @@ int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end, * \return An ASN.1 error code if the input does not start with * a valid ASN.1 BIT STRING. */ -int mbedtls_asn1_get_bitstring_null( unsigned char **p, - const unsigned char *end, - size_t *len ); +int mbedtls_asn1_get_bitstring_null(unsigned char **p, + const unsigned char *end, + size_t *len); /** * \brief Parses and splits an ASN.1 "SEQUENCE OF ". @@ -411,10 +407,10 @@ int mbedtls_asn1_get_bitstring_null( unsigned char **p, * \return An ASN.1 error code if the input does not start with * a valid ASN.1 SEQUENCE. */ -int mbedtls_asn1_get_sequence_of( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_sequence *cur, - int tag ); +int mbedtls_asn1_get_sequence_of(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_sequence *cur, + int tag); /** * \brief Free a heap-allocated linked list presentation of * an ASN.1 sequence, including the first element. @@ -436,7 +432,7 @@ int mbedtls_asn1_get_sequence_of( unsigned char **p, * be \c NULL, in which case this functions returns * immediately. */ -void mbedtls_asn1_sequence_free( mbedtls_asn1_sequence *seq ); +void mbedtls_asn1_sequence_free(mbedtls_asn1_sequence *seq); /** * \brief Traverse an ASN.1 SEQUENCE container and @@ -528,9 +524,9 @@ int mbedtls_asn1_traverse_sequence_of( const unsigned char *end, unsigned char tag_must_mask, unsigned char tag_must_val, unsigned char tag_may_mask, unsigned char tag_may_val, - int (*cb)( void *ctx, int tag, - unsigned char* start, size_t len ), - void *ctx ); + int (*cb)(void *ctx, int tag, + unsigned char *start, size_t len), + void *ctx); #if defined(MBEDTLS_BIGNUM_C) /** @@ -551,9 +547,9 @@ int mbedtls_asn1_traverse_sequence_of( * not fit in an \c int. * \return An MPI error code if the parsed value is too large. */ -int mbedtls_asn1_get_mpi( unsigned char **p, - const unsigned char *end, - mbedtls_mpi *X ); +int mbedtls_asn1_get_mpi(unsigned char **p, + const unsigned char *end, + mbedtls_mpi *X); #endif /* MBEDTLS_BIGNUM_C */ /** @@ -572,9 +568,9 @@ int mbedtls_asn1_get_mpi( unsigned char **p, * * \return 0 if successful or a specific ASN.1 or MPI error code. */ -int mbedtls_asn1_get_alg( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params ); +int mbedtls_asn1_get_alg(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params); /** * \brief Retrieve an AlgorithmIdentifier ASN.1 sequence with NULL or no @@ -591,9 +587,9 @@ int mbedtls_asn1_get_alg( unsigned char **p, * * \return 0 if successful or a specific ASN.1 or MPI error code. */ -int mbedtls_asn1_get_alg_null( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_buf *alg ); +int mbedtls_asn1_get_alg_null(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_buf *alg); /** * \brief Find a specific named_data entry in a sequence or list based on @@ -605,8 +601,8 @@ int mbedtls_asn1_get_alg_null( unsigned char **p, * * \return NULL if not found, or a pointer to the existing entry. */ -const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, - const char *oid, size_t len ); +const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data(const mbedtls_asn1_named_data *list, + const char *oid, size_t len); #if !defined(MBEDTLS_DEPRECATED_REMOVED) /** @@ -621,7 +617,7 @@ const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_ * This function calls mbedtls_free() on * `entry->oid.p` and `entry->val.p`. */ -void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *entry ); +void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data(mbedtls_asn1_named_data *entry); #endif /* MBEDTLS_DEPRECATED_REMOVED */ /** @@ -632,7 +628,7 @@ void MBEDTLS_DEPRECATED mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *e * `entry->oid.p` and `entry->val.p` and then on `entry` * for each list entry, and sets \c *head to \c NULL. */ -void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); +void mbedtls_asn1_free_named_data_list(mbedtls_asn1_named_data **head); /** * \brief Free all shallow entries in a mbedtls_asn1_named_data list, @@ -641,7 +637,7 @@ void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ); * \param name Head of the list of named data entries to free. * This function calls mbedtls_free() on each list element. */ -void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ); +void mbedtls_asn1_free_named_data_list_shallow(mbedtls_asn1_named_data *name); /** \} name Functions to parse ASN.1 data structures */ /** \} addtogroup asn1_module */ diff --git a/include/mbedtls/asn1write.h b/include/mbedtls/asn1write.h index e6f0479ca..acfc07391 100644 --- a/include/mbedtls/asn1write.h +++ b/include/mbedtls/asn1write.h @@ -29,11 +29,11 @@ #define MBEDTLS_ASN1_CHK_ADD(g, f) \ do \ { \ - if( ( ret = (f) ) < 0 ) \ - return( ret ); \ + if ((ret = (f)) < 0) \ + return ret; \ else \ - (g) += ret; \ - } while( 0 ) + (g) += ret; \ + } while (0) #ifdef __cplusplus extern "C" { @@ -51,8 +51,8 @@ extern "C" { * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, - size_t len ); +int mbedtls_asn1_write_len(unsigned char **p, const unsigned char *start, + size_t len); /** * \brief Write an ASN.1 tag in ASN.1 format. * @@ -65,8 +65,8 @@ int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, - unsigned char tag ); +int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start, + unsigned char tag); /** * \brief Write raw buffer data. @@ -81,8 +81,8 @@ int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_raw_buffer( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t size ); +int mbedtls_asn1_write_raw_buffer(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t size); #if defined(MBEDTLS_BIGNUM_C) /** @@ -99,8 +99,8 @@ int mbedtls_asn1_write_raw_buffer( unsigned char **p, const unsigned char *start * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_mpi( unsigned char **p, const unsigned char *start, - const mbedtls_mpi *X ); +int mbedtls_asn1_write_mpi(unsigned char **p, const unsigned char *start, + const mbedtls_mpi *X); #endif /* MBEDTLS_BIGNUM_C */ /** @@ -115,7 +115,7 @@ int mbedtls_asn1_write_mpi( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_null( unsigned char **p, const unsigned char *start ); +int mbedtls_asn1_write_null(unsigned char **p, const unsigned char *start); /** * \brief Write an OID tag (#MBEDTLS_ASN1_OID) and data @@ -131,8 +131,8 @@ int mbedtls_asn1_write_null( unsigned char **p, const unsigned char *start ); * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_oid( unsigned char **p, const unsigned char *start, - const char *oid, size_t oid_len ); +int mbedtls_asn1_write_oid(unsigned char **p, const unsigned char *start, + const char *oid, size_t oid_len); /** * \brief Write an AlgorithmIdentifier sequence in ASN.1 format. @@ -149,10 +149,10 @@ int mbedtls_asn1_write_oid( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, - const unsigned char *start, - const char *oid, size_t oid_len, - size_t par_len ); +int mbedtls_asn1_write_algorithm_identifier(unsigned char **p, + const unsigned char *start, + const char *oid, size_t oid_len, + size_t par_len); /** * \brief Write a boolean tag (#MBEDTLS_ASN1_BOOLEAN) and value @@ -167,8 +167,8 @@ int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_bool( unsigned char **p, const unsigned char *start, - int boolean ); +int mbedtls_asn1_write_bool(unsigned char **p, const unsigned char *start, + int boolean); /** * \brief Write an int tag (#MBEDTLS_ASN1_INTEGER) and value @@ -184,7 +184,7 @@ int mbedtls_asn1_write_bool( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_int( unsigned char **p, const unsigned char *start, int val ); +int mbedtls_asn1_write_int(unsigned char **p, const unsigned char *start, int val); /** * \brief Write an enum tag (#MBEDTLS_ASN1_ENUMERATED) and value @@ -199,7 +199,7 @@ int mbedtls_asn1_write_int( unsigned char **p, const unsigned char *start, int v * \return The number of bytes written to \p p on success. * \return A negative \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_asn1_write_enum( unsigned char **p, const unsigned char *start, int val ); +int mbedtls_asn1_write_enum(unsigned char **p, const unsigned char *start, int val); /** * \brief Write a string in ASN.1 format using a specific @@ -218,9 +218,9 @@ int mbedtls_asn1_write_enum( unsigned char **p, const unsigned char *start, int * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_tagged_string( unsigned char **p, const unsigned char *start, - int tag, const char *text, - size_t text_len ); +int mbedtls_asn1_write_tagged_string(unsigned char **p, const unsigned char *start, + int tag, const char *text, + size_t text_len); /** * \brief Write a string in ASN.1 format using the PrintableString @@ -237,9 +237,9 @@ int mbedtls_asn1_write_tagged_string( unsigned char **p, const unsigned char *st * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_printable_string( unsigned char **p, - const unsigned char *start, - const char *text, size_t text_len ); +int mbedtls_asn1_write_printable_string(unsigned char **p, + const unsigned char *start, + const char *text, size_t text_len); /** * \brief Write a UTF8 string in ASN.1 format using the UTF8String @@ -256,8 +256,8 @@ int mbedtls_asn1_write_printable_string( unsigned char **p, * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_utf8_string( unsigned char **p, const unsigned char *start, - const char *text, size_t text_len ); +int mbedtls_asn1_write_utf8_string(unsigned char **p, const unsigned char *start, + const char *text, size_t text_len); /** * \brief Write a string in ASN.1 format using the IA5String @@ -274,8 +274,8 @@ int mbedtls_asn1_write_utf8_string( unsigned char **p, const unsigned char *star * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_ia5_string( unsigned char **p, const unsigned char *start, - const char *text, size_t text_len ); +int mbedtls_asn1_write_ia5_string(unsigned char **p, const unsigned char *start, + const char *text, size_t text_len); /** * \brief Write a bitstring tag (#MBEDTLS_ASN1_BIT_STRING) and @@ -291,8 +291,8 @@ int mbedtls_asn1_write_ia5_string( unsigned char **p, const unsigned char *start * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_bitstring( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t bits ); +int mbedtls_asn1_write_bitstring(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t bits); /** * \brief This function writes a named bitstring tag @@ -311,10 +311,10 @@ int mbedtls_asn1_write_bitstring( unsigned char **p, const unsigned char *start, * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_named_bitstring( unsigned char **p, - const unsigned char *start, - const unsigned char *buf, - size_t bits ); +int mbedtls_asn1_write_named_bitstring(unsigned char **p, + const unsigned char *start, + const unsigned char *buf, + size_t bits); /** * \brief Write an octet string tag (#MBEDTLS_ASN1_OCTET_STRING) @@ -330,8 +330,8 @@ int mbedtls_asn1_write_named_bitstring( unsigned char **p, * \return The number of bytes written to \p p on success. * \return A negative error code on failure. */ -int mbedtls_asn1_write_octet_string( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t size ); +int mbedtls_asn1_write_octet_string(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t size); /** * \brief Create or find a specific named_data entry for writing in a @@ -354,10 +354,10 @@ int mbedtls_asn1_write_octet_string( unsigned char **p, const unsigned char *sta * \return A pointer to the new / existing entry on success. * \return \c NULL if there was a memory allocation error. */ -mbedtls_asn1_named_data *mbedtls_asn1_store_named_data( mbedtls_asn1_named_data **list, - const char *oid, size_t oid_len, - const unsigned char *val, - size_t val_len ); +mbedtls_asn1_named_data *mbedtls_asn1_store_named_data(mbedtls_asn1_named_data **list, + const char *oid, size_t oid_len, + const unsigned char *val, + size_t val_len); #ifdef __cplusplus } diff --git a/include/mbedtls/base64.h b/include/mbedtls/base64.h index 8378589f3..635be713d 100644 --- a/include/mbedtls/base64.h +++ b/include/mbedtls/base64.h @@ -54,8 +54,8 @@ extern "C" { * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int mbedtls_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); /** * \brief Decode a base64-formatted buffer @@ -74,8 +74,8 @@ int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, * \note Call this function with *dst = NULL or dlen = 0 to obtain * the required buffer size in *olen */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ); +int mbedtls_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen); #if defined(MBEDTLS_SELF_TEST) /** @@ -83,7 +83,7 @@ int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, * * \return 0 if successful, or 1 if the test failed */ -int mbedtls_base64_self_test( int verbose ); +int mbedtls_base64_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/bignum.h b/include/mbedtls/bignum.h index 877fbc7ce..e8fb2de4b 100644 --- a/include/mbedtls/bignum.h +++ b/include/mbedtls/bignum.h @@ -52,9 +52,9 @@ #define MBEDTLS_MPI_CHK(f) \ do \ { \ - if( ( ret = (f) ) != 0 ) \ - goto cleanup; \ - } while( 0 ) + if ((ret = (f)) != 0) \ + goto cleanup; \ + } while (0) /* * Maximum size MPIs are allowed to grow to in number of limbs. @@ -85,7 +85,7 @@ #define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */ #endif /* !MBEDTLS_MPI_MAX_SIZE */ -#define MBEDTLS_MPI_MAX_BITS ( 8 * MBEDTLS_MPI_MAX_SIZE ) /**< Maximum number of bits for usable MPIs. */ +#define MBEDTLS_MPI_MAX_BITS (8 * MBEDTLS_MPI_MAX_SIZE) /**< Maximum number of bits for usable MPIs. */ /* * When reading from files with mbedtls_mpi_read_file() and writing to files with @@ -105,9 +105,11 @@ * MBEDTLS_MPI_RW_BUFFER_SIZE = ceil(MBEDTLS_MPI_MAX_BITS / ln(10) * ln(2)) + * LabelSize + 6 */ -#define MBEDTLS_MPI_MAX_BITS_SCALE100 ( 100 * MBEDTLS_MPI_MAX_BITS ) +#define MBEDTLS_MPI_MAX_BITS_SCALE100 (100 * MBEDTLS_MPI_MAX_BITS) #define MBEDTLS_LN_2_DIV_LN_10_SCALE100 332 -#define MBEDTLS_MPI_RW_BUFFER_SIZE ( ((MBEDTLS_MPI_MAX_BITS_SCALE100 + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6 ) +#define MBEDTLS_MPI_RW_BUFFER_SIZE (((MBEDTLS_MPI_MAX_BITS_SCALE100 + \ + MBEDTLS_LN_2_DIV_LN_10_SCALE100 - 1) / \ + MBEDTLS_LN_2_DIV_LN_10_SCALE100) + 10 + 6) /* * Define the base integer type, architecture-wise. @@ -121,60 +123,60 @@ */ #if !defined(MBEDTLS_HAVE_INT32) #if defined(_MSC_VER) && defined(_M_AMD64) - /* Always choose 64-bit when using MSC */ +/* Always choose 64-bit when using MSC */ #if !defined(MBEDTLS_HAVE_INT64) #define MBEDTLS_HAVE_INT64 #endif /* !MBEDTLS_HAVE_INT64 */ - typedef int64_t mbedtls_mpi_sint; - typedef uint64_t mbedtls_mpi_uint; +typedef int64_t mbedtls_mpi_sint; +typedef uint64_t mbedtls_mpi_uint; #elif defined(__GNUC__) && ( \ - defined(__amd64__) || defined(__x86_64__) || \ - defined(__ppc64__) || defined(__powerpc64__) || \ - defined(__ia64__) || defined(__alpha__) || \ - ( defined(__sparc__) && defined(__arch64__) ) || \ - defined(__s390x__) || defined(__mips64) || \ - defined(__aarch64__) ) + defined(__amd64__) || defined(__x86_64__) || \ + defined(__ppc64__) || defined(__powerpc64__) || \ + defined(__ia64__) || defined(__alpha__) || \ + (defined(__sparc__) && defined(__arch64__)) || \ + defined(__s390x__) || defined(__mips64) || \ + defined(__aarch64__)) #if !defined(MBEDTLS_HAVE_INT64) #define MBEDTLS_HAVE_INT64 #endif /* MBEDTLS_HAVE_INT64 */ - typedef int64_t mbedtls_mpi_sint; - typedef uint64_t mbedtls_mpi_uint; +typedef int64_t mbedtls_mpi_sint; +typedef uint64_t mbedtls_mpi_uint; #if !defined(MBEDTLS_NO_UDBL_DIVISION) - /* mbedtls_t_udbl defined as 128-bit unsigned int */ - typedef unsigned int mbedtls_t_udbl __attribute__((mode(TI))); +/* mbedtls_t_udbl defined as 128-bit unsigned int */ +typedef unsigned int mbedtls_t_udbl __attribute__((mode(TI))); #define MBEDTLS_HAVE_UDBL #endif /* !MBEDTLS_NO_UDBL_DIVISION */ #elif defined(__ARMCC_VERSION) && defined(__aarch64__) - /* - * __ARMCC_VERSION is defined for both armcc and armclang and - * __aarch64__ is only defined by armclang when compiling 64-bit code - */ +/* + * __ARMCC_VERSION is defined for both armcc and armclang and + * __aarch64__ is only defined by armclang when compiling 64-bit code + */ #if !defined(MBEDTLS_HAVE_INT64) #define MBEDTLS_HAVE_INT64 #endif /* !MBEDTLS_HAVE_INT64 */ - typedef int64_t mbedtls_mpi_sint; - typedef uint64_t mbedtls_mpi_uint; +typedef int64_t mbedtls_mpi_sint; +typedef uint64_t mbedtls_mpi_uint; #if !defined(MBEDTLS_NO_UDBL_DIVISION) - /* mbedtls_t_udbl defined as 128-bit unsigned int */ - typedef __uint128_t mbedtls_t_udbl; +/* mbedtls_t_udbl defined as 128-bit unsigned int */ +typedef __uint128_t mbedtls_t_udbl; #define MBEDTLS_HAVE_UDBL #endif /* !MBEDTLS_NO_UDBL_DIVISION */ #elif defined(MBEDTLS_HAVE_INT64) - /* Force 64-bit integers with unknown compiler */ - typedef int64_t mbedtls_mpi_sint; - typedef uint64_t mbedtls_mpi_uint; +/* Force 64-bit integers with unknown compiler */ +typedef int64_t mbedtls_mpi_sint; +typedef uint64_t mbedtls_mpi_uint; #endif #endif /* !MBEDTLS_HAVE_INT32 */ #if !defined(MBEDTLS_HAVE_INT64) - /* Default to 32-bit compilation */ +/* Default to 32-bit compilation */ #if !defined(MBEDTLS_HAVE_INT32) #define MBEDTLS_HAVE_INT32 #endif /* !MBEDTLS_HAVE_INT32 */ - typedef int32_t mbedtls_mpi_sint; - typedef uint32_t mbedtls_mpi_uint; +typedef int32_t mbedtls_mpi_sint; +typedef uint32_t mbedtls_mpi_uint; #if !defined(MBEDTLS_NO_UDBL_DIVISION) - typedef uint64_t mbedtls_t_udbl; +typedef uint64_t mbedtls_t_udbl; #define MBEDTLS_HAVE_UDBL #endif /* !MBEDTLS_NO_UDBL_DIVISION */ #endif /* !MBEDTLS_HAVE_INT64 */ @@ -200,8 +202,7 @@ extern "C" { /** * \brief MPI structure */ -typedef struct mbedtls_mpi -{ +typedef struct mbedtls_mpi { /** Sign: -1 if the mpi is negative, 1 otherwise. * * The number 0 must be represented with `s = +1`. Although many library @@ -234,7 +235,7 @@ mbedtls_mpi; * * \param X The MPI context to initialize. This must not be \c NULL. */ -void mbedtls_mpi_init( mbedtls_mpi *X ); +void mbedtls_mpi_init(mbedtls_mpi *X); /** * \brief This function frees the components of an MPI context. @@ -243,7 +244,7 @@ void mbedtls_mpi_init( mbedtls_mpi *X ); * in which case this function is a no-op. If it is * not \c NULL, it must point to an initialized MPI. */ -void mbedtls_mpi_free( mbedtls_mpi *X ); +void mbedtls_mpi_free(mbedtls_mpi *X); /** * \brief Enlarge an MPI to the specified number of limbs. @@ -258,7 +259,7 @@ void mbedtls_mpi_free( mbedtls_mpi *X ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_grow( mbedtls_mpi *X, size_t nblimbs ); +int mbedtls_mpi_grow(mbedtls_mpi *X, size_t nblimbs); /** * \brief This function resizes an MPI downwards, keeping at least the @@ -275,7 +276,7 @@ int mbedtls_mpi_grow( mbedtls_mpi *X, size_t nblimbs ); * (this can only happen when resizing up). * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ); +int mbedtls_mpi_shrink(mbedtls_mpi *X, size_t nblimbs); /** * \brief Make a copy of an MPI. @@ -290,7 +291,7 @@ int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ); +int mbedtls_mpi_copy(mbedtls_mpi *X, const mbedtls_mpi *Y); /** * \brief Swap the contents of two MPIs. @@ -298,7 +299,7 @@ int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ); * \param X The first MPI. It must be initialized. * \param Y The second MPI. It must be initialized. */ -void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ); +void mbedtls_mpi_swap(mbedtls_mpi *X, mbedtls_mpi *Y); /** * \brief Perform a safe conditional copy of MPI which doesn't @@ -328,7 +329,7 @@ void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, const mbedtls_mpi *Y, unsigned char assign ); +int mbedtls_mpi_safe_cond_assign(mbedtls_mpi *X, const mbedtls_mpi *Y, unsigned char assign); /** * \brief Perform a safe conditional swap which doesn't @@ -357,7 +358,7 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, const mbedtls_mpi *Y, unsigned * \return Another negative error code on other kinds of failure. * */ -int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char swap ); +int mbedtls_mpi_safe_cond_swap(mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char swap); /** * \brief Store integer value in MPI. @@ -369,7 +370,7 @@ int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, mbedtls_mpi *Y, unsigned char sw * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ); +int mbedtls_mpi_lset(mbedtls_mpi *X, mbedtls_mpi_sint z); /** * \brief Get a specific bit from an MPI. @@ -381,7 +382,7 @@ int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ); * of \c X is unset or set. * \return A negative error code on failure. */ -int mbedtls_mpi_get_bit( const mbedtls_mpi *X, size_t pos ); +int mbedtls_mpi_get_bit(const mbedtls_mpi *X, size_t pos); /** * \brief Modify a specific bit in an MPI. @@ -398,7 +399,7 @@ int mbedtls_mpi_get_bit( const mbedtls_mpi *X, size_t pos ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_set_bit( mbedtls_mpi *X, size_t pos, unsigned char val ); +int mbedtls_mpi_set_bit(mbedtls_mpi *X, size_t pos, unsigned char val); /** * \brief Return the number of bits of value \c 0 before the @@ -412,7 +413,7 @@ int mbedtls_mpi_set_bit( mbedtls_mpi *X, size_t pos, unsigned char val ); * \return The number of bits of value \c 0 before the least significant * bit of value \c 1 in \p X. */ -size_t mbedtls_mpi_lsb( const mbedtls_mpi *X ); +size_t mbedtls_mpi_lsb(const mbedtls_mpi *X); /** * \brief Return the number of bits up to and including the most @@ -426,7 +427,7 @@ size_t mbedtls_mpi_lsb( const mbedtls_mpi *X ); * \return The number of bits up to and including the most * significant bit of value \c 1. */ -size_t mbedtls_mpi_bitlen( const mbedtls_mpi *X ); +size_t mbedtls_mpi_bitlen(const mbedtls_mpi *X); /** * \brief Return the total size of an MPI value in bytes. @@ -441,7 +442,7 @@ size_t mbedtls_mpi_bitlen( const mbedtls_mpi *X ); * \return The least number of bytes capable of storing * the absolute value of \p X. */ -size_t mbedtls_mpi_size( const mbedtls_mpi *X ); +size_t mbedtls_mpi_size(const mbedtls_mpi *X); /** * \brief Import an MPI from an ASCII string. @@ -453,7 +454,7 @@ size_t mbedtls_mpi_size( const mbedtls_mpi *X ); * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s ); +int mbedtls_mpi_read_string(mbedtls_mpi *X, int radix, const char *s); /** * \brief Export an MPI to an ASCII string. @@ -477,8 +478,8 @@ int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s ); * size of \p buf required for a successful call. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_write_string( const mbedtls_mpi *X, int radix, - char *buf, size_t buflen, size_t *olen ); +int mbedtls_mpi_write_string(const mbedtls_mpi *X, int radix, + char *buf, size_t buflen, size_t *olen); #if defined(MBEDTLS_FS_IO) /** @@ -502,7 +503,7 @@ int mbedtls_mpi_write_string( const mbedtls_mpi *X, int radix, * is too small. * \return Another negative error code on failure. */ -int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin ); +int mbedtls_mpi_read_file(mbedtls_mpi *X, int radix, FILE *fin); /** * \brief Export an MPI into an opened file. @@ -519,8 +520,8 @@ int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin ); * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, - int radix, FILE *fout ); +int mbedtls_mpi_write_file(const char *p, const mbedtls_mpi *X, + int radix, FILE *fout); #endif /* MBEDTLS_FS_IO */ /** @@ -535,8 +536,8 @@ int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, - size_t buflen ); +int mbedtls_mpi_read_binary(mbedtls_mpi *X, const unsigned char *buf, + size_t buflen); /** * \brief Import X from unsigned binary data, little endian @@ -550,8 +551,8 @@ int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_read_binary_le( mbedtls_mpi *X, - const unsigned char *buf, size_t buflen ); +int mbedtls_mpi_read_binary_le(mbedtls_mpi *X, + const unsigned char *buf, size_t buflen); /** * \brief Export X into unsigned binary data, big endian. @@ -568,8 +569,8 @@ int mbedtls_mpi_read_binary_le( mbedtls_mpi *X, * large enough to hold the value of \p X. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_write_binary( const mbedtls_mpi *X, unsigned char *buf, - size_t buflen ); +int mbedtls_mpi_write_binary(const mbedtls_mpi *X, unsigned char *buf, + size_t buflen); /** * \brief Export X into unsigned binary data, little endian. @@ -586,8 +587,8 @@ int mbedtls_mpi_write_binary( const mbedtls_mpi *X, unsigned char *buf, * large enough to hold the value of \p X. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_write_binary_le( const mbedtls_mpi *X, - unsigned char *buf, size_t buflen ); +int mbedtls_mpi_write_binary_le(const mbedtls_mpi *X, + unsigned char *buf, size_t buflen); /** * \brief Perform a left-shift on an MPI: X <<= count @@ -599,7 +600,7 @@ int mbedtls_mpi_write_binary_le( const mbedtls_mpi *X, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count ); +int mbedtls_mpi_shift_l(mbedtls_mpi *X, size_t count); /** * \brief Perform a right-shift on an MPI: X >>= count @@ -611,7 +612,7 @@ int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ); +int mbedtls_mpi_shift_r(mbedtls_mpi *X, size_t count); /** * \brief Compare the absolute values of two MPIs. @@ -623,7 +624,7 @@ int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ); * \return \c -1 if `|X|` is lesser than `|Y|`. * \return \c 0 if `|X|` is equal to `|Y|`. */ -int mbedtls_mpi_cmp_abs( const mbedtls_mpi *X, const mbedtls_mpi *Y ); +int mbedtls_mpi_cmp_abs(const mbedtls_mpi *X, const mbedtls_mpi *Y); /** * \brief Compare two MPIs. @@ -635,7 +636,7 @@ int mbedtls_mpi_cmp_abs( const mbedtls_mpi *X, const mbedtls_mpi *Y ); * \return \c -1 if \p X is lesser than \p Y. * \return \c 0 if \p X is equal to \p Y. */ -int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y ); +int mbedtls_mpi_cmp_mpi(const mbedtls_mpi *X, const mbedtls_mpi *Y); /** * \brief Check if an MPI is less than the other in constant time. @@ -652,8 +653,8 @@ int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y ); * \return MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the allocated length of * the two input MPIs is not the same. */ -int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y, - unsigned *ret ); +int mbedtls_mpi_lt_mpi_ct(const mbedtls_mpi *X, const mbedtls_mpi *Y, + unsigned *ret); /** * \brief Compare an MPI with an integer. @@ -665,7 +666,7 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, const mbedtls_mpi *Y, * \return \c -1 if \p X is lesser than \p z. * \return \c 0 if \p X is equal to \p z. */ -int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ); +int mbedtls_mpi_cmp_int(const mbedtls_mpi *X, mbedtls_mpi_sint z); /** * \brief Perform an unsigned addition of MPIs: X = |A| + |B| @@ -678,8 +679,8 @@ int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_add_abs(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform an unsigned subtraction of MPIs: X = |A| - |B| @@ -693,8 +694,8 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, * \return Another negative error code on different kinds of failure. * */ -int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_sub_abs(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a signed addition of MPIs: X = A + B @@ -707,8 +708,8 @@ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_add_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a signed subtraction of MPIs: X = A - B @@ -721,8 +722,8 @@ int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_sub_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_sub_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a signed addition of an MPI and an integer: X = A + b @@ -735,8 +736,8 @@ int mbedtls_mpi_sub_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, - mbedtls_mpi_sint b ); +int mbedtls_mpi_add_int(mbedtls_mpi *X, const mbedtls_mpi *A, + mbedtls_mpi_sint b); /** * \brief Perform a signed subtraction of an MPI and an integer: @@ -750,8 +751,8 @@ int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, - mbedtls_mpi_sint b ); +int mbedtls_mpi_sub_int(mbedtls_mpi *X, const mbedtls_mpi *A, + mbedtls_mpi_sint b); /** * \brief Perform a multiplication of two MPIs: X = A * B @@ -765,8 +766,8 @@ int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, * \return Another negative error code on different kinds of failure. * */ -int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_mul_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a multiplication of an MPI with an unsigned integer: @@ -781,8 +782,8 @@ int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, * \return Another negative error code on different kinds of failure. * */ -int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, - mbedtls_mpi_uint b ); +int mbedtls_mpi_mul_int(mbedtls_mpi *X, const mbedtls_mpi *A, + mbedtls_mpi_uint b); /** * \brief Perform a division with remainder of two MPIs: @@ -802,8 +803,8 @@ int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p B equals zero. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_div_mpi(mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a division with remainder of an MPI by an integer: @@ -823,8 +824,8 @@ int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p b equals zero. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, - mbedtls_mpi_sint b ); +int mbedtls_mpi_div_int(mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, + mbedtls_mpi_sint b); /** * \brief Perform a modular reduction. R = A mod B @@ -843,8 +844,8 @@ int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, * \return Another negative error code on different kinds of failure. * */ -int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_mod_mpi(mbedtls_mpi *R, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Perform a modular reduction with respect to an integer. @@ -862,8 +863,8 @@ int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p b is negative. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, - mbedtls_mpi_sint b ); +int mbedtls_mpi_mod_int(mbedtls_mpi_uint *r, const mbedtls_mpi *A, + mbedtls_mpi_sint b); /** * \brief Perform a sliding-window exponentiation: X = A^E mod N @@ -892,9 +893,9 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, * \return Another negative error code on different kinds of failures. * */ -int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *E, const mbedtls_mpi *N, - mbedtls_mpi *prec_RR ); +int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *E, const mbedtls_mpi *N, + mbedtls_mpi *prec_RR); /** * \brief Fill an MPI with a number of random bytes. @@ -913,9 +914,9 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * as a big-endian representation of an MPI; this can * be relevant in applications like deterministic ECDSA. */ -int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_fill_random(mbedtls_mpi *X, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** Generate a random number uniformly in a range. * @@ -949,11 +950,11 @@ int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, * for all usual cryptographic applications. * \return Another negative error code on failure. */ -int mbedtls_mpi_random( mbedtls_mpi *X, - mbedtls_mpi_sint min, - const mbedtls_mpi *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_random(mbedtls_mpi *X, + mbedtls_mpi_sint min, + const mbedtls_mpi *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Compute the greatest common divisor: G = gcd(A, B) @@ -966,8 +967,8 @@ int mbedtls_mpi_random( mbedtls_mpi *X, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED if a memory allocation failed. * \return Another negative error code on different kinds of failure. */ -int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, - const mbedtls_mpi *B ); +int mbedtls_mpi_gcd(mbedtls_mpi *G, const mbedtls_mpi *A, + const mbedtls_mpi *B); /** * \brief Compute the modular inverse: X = A^-1 mod N @@ -985,8 +986,8 @@ int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if \p has no modular inverse * with respect to \p N. */ -int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *N ); +int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *N); /** * \brief Miller-Rabin primality test. @@ -1015,9 +1016,9 @@ int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * \return #MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if \p X is not prime. * \return Another negative error code on other kinds of failure. */ -int mbedtls_mpi_is_prime_ext( const mbedtls_mpi *X, int rounds, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_is_prime_ext(const mbedtls_mpi *X, int rounds, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Flags for mbedtls_mpi_gen_prime() * @@ -1048,9 +1049,9 @@ typedef enum { * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if `nbits` is not between * \c 3 and #MBEDTLS_MPI_MAX_BITS. */ -int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_gen_prime(mbedtls_mpi *X, size_t nbits, int flags, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #if defined(MBEDTLS_SELF_TEST) @@ -1059,7 +1060,7 @@ int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, * * \return 0 if successful, or 1 if the test failed */ -int mbedtls_mpi_self_test( int verbose ); +int mbedtls_mpi_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 049a120ef..bbfd5d48d 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -6,22 +6,22 @@ * Include this file if you need to depend on the * configuration options defined in mbedtls_config.h or MBEDTLS_CONFIG_FILE */ - /* - * Copyright The Mbed TLS Contributors - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ #ifndef MBEDTLS_BUILD_INFO_H #define MBEDTLS_BUILD_INFO_H @@ -54,7 +54,7 @@ #endif /* Define `inline` on some non-C99-compliant compilers. */ -#if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ +#if (defined(__ARMCC_VERSION) || defined(_MSC_VER)) && \ !defined(inline) && !defined(__cplusplus) #define inline __inline #endif @@ -67,7 +67,7 @@ #if defined(MBEDTLS_CONFIG_VERSION) && ( \ MBEDTLS_CONFIG_VERSION < 0x03000000 || \ - MBEDTLS_CONFIG_VERSION > MBEDTLS_VERSION_NUMBER ) + MBEDTLS_CONFIG_VERSION > MBEDTLS_VERSION_NUMBER) #error "Invalid config version, defined value of MBEDTLS_CONFIG_VERSION is unsupported" #endif diff --git a/include/mbedtls/camellia.h b/include/mbedtls/camellia.h index 6b0a87156..f4aa00299 100644 --- a/include/mbedtls/camellia.h +++ b/include/mbedtls/camellia.h @@ -50,8 +50,7 @@ extern "C" { /** * \brief CAMELLIA context structure */ -typedef struct mbedtls_camellia_context -{ +typedef struct mbedtls_camellia_context { int MBEDTLS_PRIVATE(nr); /*!< number of rounds */ uint32_t MBEDTLS_PRIVATE(rk)[68]; /*!< CAMELLIA round keys */ } @@ -67,7 +66,7 @@ mbedtls_camellia_context; * \param ctx The CAMELLIA context to be initialized. * This must not be \c NULL. */ -void mbedtls_camellia_init( mbedtls_camellia_context *ctx ); +void mbedtls_camellia_init(mbedtls_camellia_context *ctx); /** * \brief Clear a CAMELLIA context. @@ -76,7 +75,7 @@ void mbedtls_camellia_init( mbedtls_camellia_context *ctx ); * in which case this function returns immediately. If it is not * \c NULL, it must be initialized. */ -void mbedtls_camellia_free( mbedtls_camellia_context *ctx ); +void mbedtls_camellia_free(mbedtls_camellia_context *ctx); /** * \brief Perform a CAMELLIA key schedule operation for encryption. @@ -90,9 +89,9 @@ void mbedtls_camellia_free( mbedtls_camellia_context *ctx ); * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_camellia_setkey_enc(mbedtls_camellia_context *ctx, + const unsigned char *key, + unsigned int keybits); /** * \brief Perform a CAMELLIA key schedule operation for decryption. @@ -106,9 +105,9 @@ int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_camellia_setkey_dec(mbedtls_camellia_context *ctx, + const unsigned char *key, + unsigned int keybits); /** * \brief Perform a CAMELLIA-ECB block encryption/decryption operation. @@ -125,10 +124,10 @@ int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_camellia_crypt_ecb(mbedtls_camellia_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** @@ -159,12 +158,12 @@ int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_camellia_crypt_cbc(mbedtls_camellia_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) @@ -205,13 +204,13 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_camellia_crypt_cfb128(mbedtls_camellia_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) @@ -289,13 +288,13 @@ int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_camellia_crypt_ctr( mbedtls_camellia_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[16], - unsigned char stream_block[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_camellia_crypt_ctr(mbedtls_camellia_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[16], + unsigned char stream_block[16], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_SELF_TEST) @@ -305,7 +304,7 @@ int mbedtls_camellia_crypt_ctr( mbedtls_camellia_context *ctx, * * \return 0 if successful, or 1 if the test failed */ -int mbedtls_camellia_self_test( int verbose ); +int mbedtls_camellia_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/ccm.h b/include/mbedtls/ccm.h index 1be1689df..6c2255281 100644 --- a/include/mbedtls/ccm.h +++ b/include/mbedtls/ccm.h @@ -74,8 +74,7 @@ extern "C" { * \brief The CCM context-type definition. The CCM context is passed * to the APIs called. */ -typedef struct mbedtls_ccm_context -{ +typedef struct mbedtls_ccm_context { unsigned char MBEDTLS_PRIVATE(y)[16]; /*!< The Y working buffer */ unsigned char MBEDTLS_PRIVATE(ctr)[16]; /*!< The counter buffer */ mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher_ctx); /*!< The cipher context used. */ @@ -90,10 +89,10 @@ typedef struct mbedtls_ccm_context auth data input is finished. */ unsigned char MBEDTLS_PRIVATE(q); /*!< The Q working value */ unsigned char MBEDTLS_PRIVATE(mode); /*!< The operation to perform: - #MBEDTLS_CCM_ENCRYPT or - #MBEDTLS_CCM_DECRYPT or - #MBEDTLS_CCM_STAR_ENCRYPT or - #MBEDTLS_CCM_STAR_DECRYPT. */ + #MBEDTLS_CCM_ENCRYPT or + #MBEDTLS_CCM_DECRYPT or + #MBEDTLS_CCM_STAR_ENCRYPT or + #MBEDTLS_CCM_STAR_DECRYPT. */ int MBEDTLS_PRIVATE(state); /*!< Working value holding context's state. Used for chunked data input */ @@ -111,7 +110,7 @@ mbedtls_ccm_context; * * \param ctx The CCM context to initialize. This must not be \c NULL. */ -void mbedtls_ccm_init( mbedtls_ccm_context *ctx ); +void mbedtls_ccm_init(mbedtls_ccm_context *ctx); /** * \brief This function initializes the CCM context set in the @@ -126,10 +125,10 @@ void mbedtls_ccm_init( mbedtls_ccm_context *ctx ); * \return \c 0 on success. * \return A CCM or cipher-specific error code on failure. */ -int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_ccm_setkey(mbedtls_ccm_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits); /** * \brief This function releases and clears the specified CCM context @@ -138,7 +137,7 @@ int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx, * \param ctx The CCM context to clear. If this is \c NULL, the function * has no effect. Otherwise, this must be initialized. */ -void mbedtls_ccm_free( mbedtls_ccm_context *ctx ); +void mbedtls_ccm_free(mbedtls_ccm_context *ctx); /** * \brief This function encrypts a buffer using CCM. @@ -176,11 +175,11 @@ void mbedtls_ccm_free( mbedtls_ccm_context *ctx ); * \return \c 0 on success. * \return A CCM or cipher-specific error code on failure. */ -int mbedtls_ccm_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, unsigned char *output, - unsigned char *tag, size_t tag_len ); +int mbedtls_ccm_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, unsigned char *output, + unsigned char *tag, size_t tag_len); /** * \brief This function encrypts a buffer using CCM*. @@ -225,11 +224,11 @@ int mbedtls_ccm_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, * \return \c 0 on success. * \return A CCM or cipher-specific error code on failure. */ -int mbedtls_ccm_star_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, unsigned char *output, - unsigned char *tag, size_t tag_len ); +int mbedtls_ccm_star_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, unsigned char *output, + unsigned char *tag, size_t tag_len); /** * \brief This function performs a CCM authenticated decryption of a @@ -262,11 +261,11 @@ int mbedtls_ccm_star_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, * \return #MBEDTLS_ERR_CCM_AUTH_FAILED if the tag does not match. * \return A cipher-specific error code on calculation failure. */ -int mbedtls_ccm_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, unsigned char *output, - const unsigned char *tag, size_t tag_len ); +int mbedtls_ccm_auth_decrypt(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, unsigned char *output, + const unsigned char *tag, size_t tag_len); /** * \brief This function performs a CCM* authenticated decryption of a @@ -308,11 +307,11 @@ int mbedtls_ccm_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, * \return #MBEDTLS_ERR_CCM_AUTH_FAILED if the tag does not match. * \return A cipher-specific error code on calculation failure. */ -int mbedtls_ccm_star_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, unsigned char *output, - const unsigned char *tag, size_t tag_len ); +int mbedtls_ccm_star_auth_decrypt(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, unsigned char *output, + const unsigned char *tag, size_t tag_len); /** * \brief This function starts a CCM encryption or decryption @@ -342,10 +341,10 @@ int mbedtls_ccm_star_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, * \p iv_len is invalid (lower than \c 7 or greater than * \c 13). */ -int mbedtls_ccm_starts( mbedtls_ccm_context *ctx, - int mode, - const unsigned char *iv, - size_t iv_len ); +int mbedtls_ccm_starts(mbedtls_ccm_context *ctx, + int mode, + const unsigned char *iv, + size_t iv_len); /** * \brief This function declares the lengths of the message @@ -374,10 +373,10 @@ int mbedtls_ccm_starts( mbedtls_ccm_context *ctx, * \p ctx is in an invalid state, * \p total_ad_len is greater than \c 0xFF00. */ -int mbedtls_ccm_set_lengths( mbedtls_ccm_context *ctx, - size_t total_ad_len, - size_t plaintext_len, - size_t tag_len ); +int mbedtls_ccm_set_lengths(mbedtls_ccm_context *ctx, + size_t total_ad_len, + size_t plaintext_len, + size_t tag_len); /** * \brief This function feeds an input buffer as associated data @@ -409,9 +408,9 @@ int mbedtls_ccm_set_lengths( mbedtls_ccm_context *ctx, * \p ctx is in an invalid state, * total input length too long. */ -int mbedtls_ccm_update_ad( mbedtls_ccm_context *ctx, - const unsigned char *ad, - size_t ad_len ); +int mbedtls_ccm_update_ad(mbedtls_ccm_context *ctx, + const unsigned char *ad, + size_t ad_len); /** * \brief This function feeds an input buffer into an ongoing CCM @@ -476,10 +475,10 @@ int mbedtls_ccm_update_ad( mbedtls_ccm_context *ctx, * total input length too long, * or \p output_size too small. */ -int mbedtls_ccm_update( mbedtls_ccm_context *ctx, - const unsigned char *input, size_t input_len, - unsigned char *output, size_t output_size, - size_t *output_len ); +int mbedtls_ccm_update(mbedtls_ccm_context *ctx, + const unsigned char *input, size_t input_len, + unsigned char *output, size_t output_size, + size_t *output_len); /** * \brief This function finishes the CCM operation and generates @@ -512,8 +511,8 @@ int mbedtls_ccm_update( mbedtls_ccm_context *ctx, * mbedtls_ccm_update() was lower than the plaintext length * \c plaintext_len passed to mbedtls_ccm_set_lengths(). */ -int mbedtls_ccm_finish( mbedtls_ccm_context *ctx, - unsigned char *tag, size_t tag_len ); +int mbedtls_ccm_finish(mbedtls_ccm_context *ctx, + unsigned char *tag, size_t tag_len); #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) /** @@ -522,7 +521,7 @@ int mbedtls_ccm_finish( mbedtls_ccm_context *ctx, * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_ccm_self_test( int verbose ); +int mbedtls_ccm_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #ifdef __cplusplus diff --git a/include/mbedtls/chacha20.h b/include/mbedtls/chacha20.h index 8af16ede9..e24e56b98 100644 --- a/include/mbedtls/chacha20.h +++ b/include/mbedtls/chacha20.h @@ -47,8 +47,7 @@ extern "C" { #if !defined(MBEDTLS_CHACHA20_ALT) -typedef struct mbedtls_chacha20_context -{ +typedef struct mbedtls_chacha20_context { uint32_t MBEDTLS_PRIVATE(state)[16]; /*! The state (before round operations). */ uint8_t MBEDTLS_PRIVATE(keystream8)[64]; /*! Leftover keystream bytes. */ size_t MBEDTLS_PRIVATE(keystream_bytes_used); /*! Number of keystream bytes already used. */ @@ -74,7 +73,7 @@ mbedtls_chacha20_context; * \param ctx The ChaCha20 context to initialize. * This must not be \c NULL. */ -void mbedtls_chacha20_init( mbedtls_chacha20_context *ctx ); +void mbedtls_chacha20_init(mbedtls_chacha20_context *ctx); /** * \brief This function releases and clears the specified @@ -85,7 +84,7 @@ void mbedtls_chacha20_init( mbedtls_chacha20_context *ctx ); * \c NULL, it must point to an initialized context. * */ -void mbedtls_chacha20_free( mbedtls_chacha20_context *ctx ); +void mbedtls_chacha20_free(mbedtls_chacha20_context *ctx); /** * \brief This function sets the encryption/decryption key. @@ -103,8 +102,8 @@ void mbedtls_chacha20_free( mbedtls_chacha20_context *ctx ); * \return \c 0 on success. * \return #MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA if ctx or key is NULL. */ -int mbedtls_chacha20_setkey( mbedtls_chacha20_context *ctx, - const unsigned char key[32] ); +int mbedtls_chacha20_setkey(mbedtls_chacha20_context *ctx, + const unsigned char key[32]); /** * \brief This function sets the nonce and initial counter value. @@ -125,9 +124,9 @@ int mbedtls_chacha20_setkey( mbedtls_chacha20_context *ctx, * \return #MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA if ctx or nonce is * NULL. */ -int mbedtls_chacha20_starts( mbedtls_chacha20_context* ctx, - const unsigned char nonce[12], - uint32_t counter ); +int mbedtls_chacha20_starts(mbedtls_chacha20_context *ctx, + const unsigned char nonce[12], + uint32_t counter); /** * \brief This function encrypts or decrypts data. @@ -158,10 +157,10 @@ int mbedtls_chacha20_starts( mbedtls_chacha20_context* ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, - size_t size, - const unsigned char *input, - unsigned char *output ); +int mbedtls_chacha20_update(mbedtls_chacha20_context *ctx, + size_t size, + const unsigned char *input, + unsigned char *output); /** * \brief This function encrypts or decrypts data with ChaCha20 and @@ -191,12 +190,12 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_chacha20_crypt( const unsigned char key[32], - const unsigned char nonce[12], - uint32_t counter, - size_t size, - const unsigned char* input, - unsigned char* output ); +int mbedtls_chacha20_crypt(const unsigned char key[32], + const unsigned char nonce[12], + uint32_t counter, + size_t size, + const unsigned char *input, + unsigned char *output); #if defined(MBEDTLS_SELF_TEST) /** @@ -205,7 +204,7 @@ int mbedtls_chacha20_crypt( const unsigned char key[32], * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_chacha20_self_test( int verbose ); +int mbedtls_chacha20_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus diff --git a/include/mbedtls/chachapoly.h b/include/mbedtls/chachapoly.h index 2b4940220..19baadefd 100644 --- a/include/mbedtls/chachapoly.h +++ b/include/mbedtls/chachapoly.h @@ -47,8 +47,7 @@ extern "C" { #endif -typedef enum -{ +typedef enum { MBEDTLS_CHACHAPOLY_ENCRYPT, /**< The mode value for performing encryption. */ MBEDTLS_CHACHAPOLY_DECRYPT /**< The mode value for performing decryption. */ } @@ -58,8 +57,7 @@ mbedtls_chachapoly_mode_t; #include "mbedtls/chacha20.h" -typedef struct mbedtls_chachapoly_context -{ +typedef struct mbedtls_chachapoly_context { mbedtls_chacha20_context MBEDTLS_PRIVATE(chacha20_ctx); /**< The ChaCha20 context. */ mbedtls_poly1305_context MBEDTLS_PRIVATE(poly1305_ctx); /**< The Poly1305 context. */ uint64_t MBEDTLS_PRIVATE(aad_len); /**< The length (bytes) of the Additional Authenticated Data. */ @@ -115,7 +113,7 @@ mbedtls_chachapoly_context; * * \param ctx The ChachaPoly context to initialize. Must not be \c NULL. */ -void mbedtls_chachapoly_init( mbedtls_chachapoly_context *ctx ); +void mbedtls_chachapoly_init(mbedtls_chachapoly_context *ctx); /** * \brief This function releases and clears the specified @@ -124,7 +122,7 @@ void mbedtls_chachapoly_init( mbedtls_chachapoly_context *ctx ); * \param ctx The ChachaPoly context to clear. This may be \c NULL, in which * case this function is a no-op. */ -void mbedtls_chachapoly_free( mbedtls_chachapoly_context *ctx ); +void mbedtls_chachapoly_free(mbedtls_chachapoly_context *ctx); /** * \brief This function sets the ChaCha20-Poly1305 @@ -137,8 +135,8 @@ void mbedtls_chachapoly_free( mbedtls_chachapoly_context *ctx ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx, - const unsigned char key[32] ); +int mbedtls_chachapoly_setkey(mbedtls_chachapoly_context *ctx, + const unsigned char key[32]); /** * \brief This function starts a ChaCha20-Poly1305 encryption or @@ -165,9 +163,9 @@ int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx, - const unsigned char nonce[12], - mbedtls_chachapoly_mode_t mode ); +int mbedtls_chachapoly_starts(mbedtls_chachapoly_context *ctx, + const unsigned char nonce[12], + mbedtls_chachapoly_mode_t mode); /** * \brief This function feeds additional data to be authenticated @@ -208,9 +206,9 @@ int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx, * if the operations has not been started or has been * finished, or if the AAD has been finished. */ -int mbedtls_chachapoly_update_aad( mbedtls_chachapoly_context *ctx, - const unsigned char *aad, - size_t aad_len ); +int mbedtls_chachapoly_update_aad(mbedtls_chachapoly_context *ctx, + const unsigned char *aad, + size_t aad_len); /** * \brief Thus function feeds data to be encrypted or decrypted @@ -243,10 +241,10 @@ int mbedtls_chachapoly_update_aad( mbedtls_chachapoly_context *ctx, * finished. * \return Another negative error code on other kinds of failure. */ -int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx, - size_t len, - const unsigned char *input, - unsigned char *output ); +int mbedtls_chachapoly_update(mbedtls_chachapoly_context *ctx, + size_t len, + const unsigned char *input, + unsigned char *output); /** * \brief This function finished the ChaCha20-Poly1305 operation and @@ -264,8 +262,8 @@ int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx, * finished. * \return Another negative error code on other kinds of failure. */ -int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx, - unsigned char mac[16] ); +int mbedtls_chachapoly_finish(mbedtls_chachapoly_context *ctx, + unsigned char mac[16]); /** * \brief This function performs a complete ChaCha20-Poly1305 @@ -296,14 +294,14 @@ int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_chachapoly_encrypt_and_tag( mbedtls_chachapoly_context *ctx, - size_t length, - const unsigned char nonce[12], - const unsigned char *aad, - size_t aad_len, - const unsigned char *input, - unsigned char *output, - unsigned char tag[16] ); +int mbedtls_chachapoly_encrypt_and_tag(mbedtls_chachapoly_context *ctx, + size_t length, + const unsigned char nonce[12], + const unsigned char *aad, + size_t aad_len, + const unsigned char *input, + unsigned char *output, + unsigned char tag[16]); /** * \brief This function performs a complete ChaCha20-Poly1305 @@ -330,14 +328,14 @@ int mbedtls_chachapoly_encrypt_and_tag( mbedtls_chachapoly_context *ctx, * if the data was not authentic. * \return Another negative error code on other kinds of failure. */ -int mbedtls_chachapoly_auth_decrypt( mbedtls_chachapoly_context *ctx, - size_t length, - const unsigned char nonce[12], - const unsigned char *aad, - size_t aad_len, - const unsigned char tag[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_chachapoly_auth_decrypt(mbedtls_chachapoly_context *ctx, + size_t length, + const unsigned char nonce[12], + const unsigned char *aad, + size_t aad_len, + const unsigned char tag[16], + const unsigned char *input, + unsigned char *output); #if defined(MBEDTLS_SELF_TEST) /** @@ -346,7 +344,7 @@ int mbedtls_chachapoly_auth_decrypt( mbedtls_chachapoly_context *ctx, * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_chachapoly_self_test( int verbose ); +int mbedtls_chachapoly_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h index 151da1d83..e09bd92e7 100644 --- a/include/mbedtls/cipher.h +++ b/include/mbedtls/cipher.h @@ -271,8 +271,7 @@ typedef struct mbedtls_cmac_context_t mbedtls_cmac_context_t; * mbedtls_cipher_info_from_values(), * mbedtls_cipher_info_from_psa(). */ -typedef struct mbedtls_cipher_info_t -{ +typedef struct mbedtls_cipher_info_t { /** Full cipher identifier. For example, * MBEDTLS_CIPHER_AES_256_CBC. */ @@ -288,7 +287,7 @@ typedef struct mbedtls_cipher_info_t unsigned int MBEDTLS_PRIVATE(key_bitlen); /** Name of the cipher. */ - const char * MBEDTLS_PRIVATE(name); + const char *MBEDTLS_PRIVATE(name); /** IV or nonce size, in Bytes. * For ciphers that accept variable IV sizes, @@ -313,8 +312,7 @@ typedef struct mbedtls_cipher_info_t /** * Generic cipher context. */ -typedef struct mbedtls_cipher_context_t -{ +typedef struct mbedtls_cipher_context_t { /** Information about the associated cipher. */ const mbedtls_cipher_info_t *MBEDTLS_PRIVATE(cipher_info); @@ -330,8 +328,8 @@ typedef struct mbedtls_cipher_context_t /** Padding functions to use, if relevant for * the specific cipher mode. */ - void (*MBEDTLS_PRIVATE(add_padding))( unsigned char *output, size_t olen, size_t data_len ); - int (*MBEDTLS_PRIVATE(get_padding))( unsigned char *input, size_t ilen, size_t *data_len ); + void(*MBEDTLS_PRIVATE(add_padding))(unsigned char *output, size_t olen, size_t data_len); + int(*MBEDTLS_PRIVATE(get_padding))(unsigned char *input, size_t ilen, size_t *data_len); #endif /** Buffer for input that has not been processed yet. */ @@ -381,7 +379,7 @@ typedef struct mbedtls_cipher_context_t * \return A statically-allocated array of cipher identifiers * of type cipher_type_t. The last entry is zero. */ -const int *mbedtls_cipher_list( void ); +const int *mbedtls_cipher_list(void); /** * \brief This function retrieves the cipher-information @@ -394,7 +392,7 @@ const int *mbedtls_cipher_list( void ); * given \p cipher_name. * \return \c NULL if the associated cipher information is not found. */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_string( const char *cipher_name ); +const mbedtls_cipher_info_t *mbedtls_cipher_info_from_string(const char *cipher_name); /** * \brief This function retrieves the cipher-information @@ -406,7 +404,7 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_string( const char *cipher * given \p cipher_type. * \return \c NULL if the associated cipher information is not found. */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_type( const mbedtls_cipher_type_t cipher_type ); +const mbedtls_cipher_info_t *mbedtls_cipher_info_from_type(const mbedtls_cipher_type_t cipher_type); /** * \brief This function retrieves the cipher-information @@ -422,9 +420,9 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_type( const mbedtls_cipher * given \p cipher_id. * \return \c NULL if the associated cipher information is not found. */ -const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values( const mbedtls_cipher_id_t cipher_id, - int key_bitlen, - const mbedtls_cipher_mode_t mode ); +const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values(const mbedtls_cipher_id_t cipher_id, + int key_bitlen, + const mbedtls_cipher_mode_t mode); /** * \brief Retrieve the identifier for a cipher info structure. @@ -436,12 +434,13 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values( const mbedtls_ciph * \return #MBEDTLS_CIPHER_NONE if \p info is \c NULL. */ static inline mbedtls_cipher_type_t mbedtls_cipher_info_get_type( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( MBEDTLS_CIPHER_NONE ); - else - return( info->MBEDTLS_PRIVATE(type) ); + if (info == NULL) { + return MBEDTLS_CIPHER_NONE; + } else { + return info->MBEDTLS_PRIVATE(type); + } } /** @@ -454,12 +453,13 @@ static inline mbedtls_cipher_type_t mbedtls_cipher_info_get_type( * \return #MBEDTLS_MODE_NONE if \p info is \c NULL. */ static inline mbedtls_cipher_mode_t mbedtls_cipher_info_get_mode( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( MBEDTLS_MODE_NONE ); - else - return( info->MBEDTLS_PRIVATE(mode) ); + if (info == NULL) { + return MBEDTLS_MODE_NONE; + } else { + return info->MBEDTLS_PRIVATE(mode); + } } /** @@ -474,12 +474,13 @@ static inline mbedtls_cipher_mode_t mbedtls_cipher_info_get_mode( * \return \c 0 if \p info is \c NULL. */ static inline size_t mbedtls_cipher_info_get_key_bitlen( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( 0 ); - else - return( info->MBEDTLS_PRIVATE(key_bitlen) ); + if (info == NULL) { + return 0; + } else { + return info->MBEDTLS_PRIVATE(key_bitlen); + } } /** @@ -494,12 +495,13 @@ static inline size_t mbedtls_cipher_info_get_key_bitlen( * \return \c NULL if \c info is \p NULL. */ static inline const char *mbedtls_cipher_info_get_name( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( NULL ); - else - return( info->MBEDTLS_PRIVATE(name) ); + if (info == NULL) { + return NULL; + } else { + return info->MBEDTLS_PRIVATE(name); + } } /** @@ -513,12 +515,13 @@ static inline const char *mbedtls_cipher_info_get_name( * \return \c 0 if \p info is \c NULL. */ static inline size_t mbedtls_cipher_info_get_iv_size( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( 0 ); + if (info == NULL) { + return 0; + } - return( (size_t) info->MBEDTLS_PRIVATE(iv_size) ); + return (size_t) info->MBEDTLS_PRIVATE(iv_size); } /** @@ -532,12 +535,13 @@ static inline size_t mbedtls_cipher_info_get_iv_size( * \return \c 0 if \p info is \c NULL. */ static inline size_t mbedtls_cipher_info_get_block_size( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( 0 ); + if (info == NULL) { + return 0; + } - return( (size_t) info->MBEDTLS_PRIVATE(block_size) ); + return (size_t) info->MBEDTLS_PRIVATE(block_size); } /** @@ -550,12 +554,13 @@ static inline size_t mbedtls_cipher_info_get_block_size( * \return \c 0 if the given pointer is \c NULL. */ static inline int mbedtls_cipher_info_has_variable_key_bitlen( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( 0 ); + if (info == NULL) { + return 0; + } - return( info->MBEDTLS_PRIVATE(flags) & MBEDTLS_CIPHER_VARIABLE_KEY_LEN ); + return info->MBEDTLS_PRIVATE(flags) & MBEDTLS_CIPHER_VARIABLE_KEY_LEN; } /** @@ -568,12 +573,13 @@ static inline int mbedtls_cipher_info_has_variable_key_bitlen( * \return \c 0 if the given pointer is \c NULL. */ static inline int mbedtls_cipher_info_has_variable_iv_size( - const mbedtls_cipher_info_t *info ) + const mbedtls_cipher_info_t *info) { - if( info == NULL ) - return( 0 ); + if (info == NULL) { + return 0; + } - return( info->MBEDTLS_PRIVATE(flags) & MBEDTLS_CIPHER_VARIABLE_IV_LEN ); + return info->MBEDTLS_PRIVATE(flags) & MBEDTLS_CIPHER_VARIABLE_IV_LEN; } /** @@ -581,7 +587,7 @@ static inline int mbedtls_cipher_info_has_variable_iv_size( * * \param ctx The context to be initialized. This must not be \c NULL. */ -void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx ); +void mbedtls_cipher_init(mbedtls_cipher_context_t *ctx); /** * \brief This function frees and clears the cipher-specific @@ -592,7 +598,7 @@ void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx ); * function has no effect, otherwise this must point to an * initialized context. */ -void mbedtls_cipher_free( mbedtls_cipher_context_t *ctx ); +void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx); /** @@ -621,8 +627,8 @@ void mbedtls_cipher_free( mbedtls_cipher_context_t *ctx ); * \return #MBEDTLS_ERR_CIPHER_ALLOC_FAILED if allocation of the * cipher-specific context fails. */ -int mbedtls_cipher_setup( mbedtls_cipher_context_t *ctx, - const mbedtls_cipher_info_t *cipher_info ); +int mbedtls_cipher_setup(mbedtls_cipher_context_t *ctx, + const mbedtls_cipher_info_t *cipher_info); #if defined(MBEDTLS_USE_PSA_CRYPTO) #if !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -652,8 +658,9 @@ int mbedtls_cipher_setup( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_CIPHER_ALLOC_FAILED if allocation of the * cipher-specific context fails. */ -int MBEDTLS_DEPRECATED mbedtls_cipher_setup_psa( mbedtls_cipher_context_t *ctx, - const mbedtls_cipher_info_t *cipher_info, size_t taglen ); +int MBEDTLS_DEPRECATED mbedtls_cipher_setup_psa(mbedtls_cipher_context_t *ctx, + const mbedtls_cipher_info_t *cipher_info, + size_t taglen); #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -668,11 +675,12 @@ int MBEDTLS_DEPRECATED mbedtls_cipher_setup_psa( mbedtls_cipher_context_t *ctx, * \return \c 0 if \p ctx has not been initialized. */ static inline unsigned int mbedtls_cipher_get_block_size( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { - MBEDTLS_INTERNAL_VALIDATE_RET( ctx != NULL, 0 ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + MBEDTLS_INTERNAL_VALIDATE_RET(ctx != NULL, 0); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return 0; + } return ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(block_size); } @@ -687,11 +695,12 @@ static inline unsigned int mbedtls_cipher_get_block_size( * \return #MBEDTLS_MODE_NONE if \p ctx has not been initialized. */ static inline mbedtls_cipher_mode_t mbedtls_cipher_get_cipher_mode( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { - MBEDTLS_INTERNAL_VALIDATE_RET( ctx != NULL, MBEDTLS_MODE_NONE ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + MBEDTLS_INTERNAL_VALIDATE_RET(ctx != NULL, MBEDTLS_MODE_NONE); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return MBEDTLS_MODE_NONE; + } return ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(mode); } @@ -707,14 +716,16 @@ static inline mbedtls_cipher_mode_t mbedtls_cipher_get_cipher_mode( * \return The actual size if an IV has been set. */ static inline int mbedtls_cipher_get_iv_size( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { - MBEDTLS_INTERNAL_VALIDATE_RET( ctx != NULL, 0 ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + MBEDTLS_INTERNAL_VALIDATE_RET(ctx != NULL, 0); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return 0; + } - if( ctx->MBEDTLS_PRIVATE(iv_size) != 0 ) + if (ctx->MBEDTLS_PRIVATE(iv_size) != 0) { return (int) ctx->MBEDTLS_PRIVATE(iv_size); + } return (int) ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(iv_size); } @@ -728,12 +739,13 @@ static inline int mbedtls_cipher_get_iv_size( * \return #MBEDTLS_CIPHER_NONE if \p ctx has not been initialized. */ static inline mbedtls_cipher_type_t mbedtls_cipher_get_type( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { MBEDTLS_INTERNAL_VALIDATE_RET( - ctx != NULL, MBEDTLS_CIPHER_NONE ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + ctx != NULL, MBEDTLS_CIPHER_NONE); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return MBEDTLS_CIPHER_NONE; + } return ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(type); } @@ -748,11 +760,12 @@ static inline mbedtls_cipher_type_t mbedtls_cipher_get_type( * \return NULL if \p ctx has not been not initialized. */ static inline const char *mbedtls_cipher_get_name( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { - MBEDTLS_INTERNAL_VALIDATE_RET( ctx != NULL, 0 ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + MBEDTLS_INTERNAL_VALIDATE_RET(ctx != NULL, 0); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return 0; + } return ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(name); } @@ -767,12 +780,13 @@ static inline const char *mbedtls_cipher_get_name( * initialized. */ static inline int mbedtls_cipher_get_key_bitlen( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { MBEDTLS_INTERNAL_VALIDATE_RET( - ctx != NULL, MBEDTLS_KEY_LENGTH_NONE ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + ctx != NULL, MBEDTLS_KEY_LENGTH_NONE); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return MBEDTLS_KEY_LENGTH_NONE; + } return (int) ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(key_bitlen); } @@ -786,12 +800,13 @@ static inline int mbedtls_cipher_get_key_bitlen( * \return #MBEDTLS_OPERATION_NONE if \p ctx has not been initialized. */ static inline mbedtls_operation_t mbedtls_cipher_get_operation( - const mbedtls_cipher_context_t *ctx ) + const mbedtls_cipher_context_t *ctx) { MBEDTLS_INTERNAL_VALIDATE_RET( - ctx != NULL, MBEDTLS_OPERATION_NONE ); - if( ctx->MBEDTLS_PRIVATE(cipher_info) == NULL ) + ctx != NULL, MBEDTLS_OPERATION_NONE); + if (ctx->MBEDTLS_PRIVATE(cipher_info) == NULL) { return MBEDTLS_OPERATION_NONE; + } return ctx->MBEDTLS_PRIVATE(operation); } @@ -812,10 +827,10 @@ static inline mbedtls_operation_t mbedtls_cipher_get_operation( * parameter-verification failure. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, - const unsigned char *key, - int key_bitlen, - const mbedtls_operation_t operation ); +int mbedtls_cipher_setkey(mbedtls_cipher_context_t *ctx, + const unsigned char *key, + int key_bitlen, + const mbedtls_operation_t operation); #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) /** @@ -834,8 +849,8 @@ int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA if the cipher mode * does not support padding. */ -int mbedtls_cipher_set_padding_mode( mbedtls_cipher_context_t *ctx, - mbedtls_cipher_padding_t mode ); +int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx, + mbedtls_cipher_padding_t mode); #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ /** @@ -862,9 +877,9 @@ int mbedtls_cipher_set_padding_mode( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on * parameter-verification failure. */ -int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, - size_t iv_len ); +int mbedtls_cipher_set_iv(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, + size_t iv_len); /** * \brief This function resets the cipher state. @@ -898,7 +913,7 @@ int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA on * parameter-verification failure. */ -int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx ); +int mbedtls_cipher_reset(mbedtls_cipher_context_t *ctx); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) /** @@ -913,8 +928,8 @@ int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx ); * \return \c 0 on success. * \return A specific error code on failure. */ -int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx, - const unsigned char *ad, size_t ad_len ); +int mbedtls_cipher_update_ad(mbedtls_cipher_context_t *ctx, + const unsigned char *ad, size_t ad_len); #endif /* MBEDTLS_GCM_C || MBEDTLS_CHACHAPOLY_C */ /** @@ -946,10 +961,10 @@ int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx, * unsupported mode for a cipher. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, - const unsigned char *input, - size_t ilen, unsigned char *output, - size_t *olen ); +int mbedtls_cipher_update(mbedtls_cipher_context_t *ctx, + const unsigned char *input, + size_t ilen, unsigned char *output, + size_t *olen); /** * \brief The generic cipher finalization function. If data still @@ -973,8 +988,8 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, * while decrypting. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx, - unsigned char *output, size_t *olen ); +int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx, + unsigned char *output, size_t *olen); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) /** @@ -993,8 +1008,8 @@ int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx, * \return \c 0 on success. * \return A specific error code on failure. */ -int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx, - unsigned char *tag, size_t tag_len ); +int mbedtls_cipher_write_tag(mbedtls_cipher_context_t *ctx, + unsigned char *tag, size_t tag_len); /** * \brief This function checks the tag for AEAD ciphers. @@ -1009,8 +1024,8 @@ int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx, * \return \c 0 on success. * \return A specific error code on failure. */ -int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, - const unsigned char *tag, size_t tag_len ); +int mbedtls_cipher_check_tag(mbedtls_cipher_context_t *ctx, + const unsigned char *tag, size_t tag_len); #endif /* MBEDTLS_GCM_C || MBEDTLS_CHACHAPOLY_C */ /** @@ -1046,10 +1061,10 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, * while decrypting. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen ); +int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen); #if defined(MBEDTLS_CIPHER_MODE_AEAD) || defined(MBEDTLS_NIST_KW_C) /** @@ -1096,12 +1111,12 @@ int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, * parameter-verification failure. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_auth_encrypt_ext( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t output_len, - size_t *olen, size_t tag_len ); +int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t output_len, + size_t *olen, size_t tag_len); /** * \brief The authenticated encryption (AEAD/NIST_KW) function. @@ -1152,12 +1167,12 @@ int mbedtls_cipher_auth_encrypt_ext( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_CIPHER_AUTH_FAILED if data is not authentic. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_auth_decrypt_ext( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t output_len, - size_t *olen, size_t tag_len ); +int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t output_len, + size_t *olen, size_t tag_len); #endif /* MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C */ #ifdef __cplusplus } diff --git a/include/mbedtls/cmac.h b/include/mbedtls/cmac.h index 21ce88276..3125e702e 100644 --- a/include/mbedtls/cmac.h +++ b/include/mbedtls/cmac.h @@ -49,8 +49,7 @@ extern "C" { /** * The CMAC context structure. */ -struct mbedtls_cmac_context_t -{ +struct mbedtls_cmac_context_t { /** The internal state of the CMAC algorithm. */ unsigned char MBEDTLS_PRIVATE(state)[MBEDTLS_CIPHER_BLKSIZE_MAX]; @@ -96,8 +95,8 @@ struct mbedtls_cmac_context_t * \return \c 0 on success. * \return A cipher-specific error code on failure. */ -int mbedtls_cipher_cmac_starts( mbedtls_cipher_context_t *ctx, - const unsigned char *key, size_t keybits ); +int mbedtls_cipher_cmac_starts(mbedtls_cipher_context_t *ctx, + const unsigned char *key, size_t keybits); /** * \brief This function feeds an input buffer into an ongoing CMAC @@ -121,8 +120,8 @@ int mbedtls_cipher_cmac_starts( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA * if parameter verification fails. */ -int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, - const unsigned char *input, size_t ilen ); +int mbedtls_cipher_cmac_update(mbedtls_cipher_context_t *ctx, + const unsigned char *input, size_t ilen); /** * \brief This function finishes an ongoing CMAC operation, and @@ -140,8 +139,8 @@ int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA * if parameter verification fails. */ -int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx, - unsigned char *output ); +int mbedtls_cipher_cmac_finish(mbedtls_cipher_context_t *ctx, + unsigned char *output); /** * \brief This function starts a new CMAC operation with the same @@ -159,7 +158,7 @@ int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx, * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA * if parameter verification fails. */ -int mbedtls_cipher_cmac_reset( mbedtls_cipher_context_t *ctx ); +int mbedtls_cipher_cmac_reset(mbedtls_cipher_context_t *ctx); /** * \brief This function calculates the full generic CMAC @@ -188,10 +187,10 @@ int mbedtls_cipher_cmac_reset( mbedtls_cipher_context_t *ctx ); * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA * if parameter verification fails. */ -int mbedtls_cipher_cmac( const mbedtls_cipher_info_t *cipher_info, - const unsigned char *key, size_t keylen, - const unsigned char *input, size_t ilen, - unsigned char *output ); +int mbedtls_cipher_cmac(const mbedtls_cipher_info_t *cipher_info, + const unsigned char *key, size_t keylen, + const unsigned char *input, size_t ilen, + unsigned char *output); #if defined(MBEDTLS_AES_C) /** @@ -211,12 +210,12 @@ int mbedtls_cipher_cmac( const mbedtls_cipher_info_t *cipher_info, * * \return \c 0 on success. */ -int mbedtls_aes_cmac_prf_128( const unsigned char *key, size_t key_len, - const unsigned char *input, size_t in_len, - unsigned char output[16] ); +int mbedtls_aes_cmac_prf_128(const unsigned char *key, size_t key_len, + const unsigned char *input, size_t in_len, + unsigned char output[16]); #endif /* MBEDTLS_AES_C */ -#if defined(MBEDTLS_SELF_TEST) && ( defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C) ) +#if defined(MBEDTLS_SELF_TEST) && (defined(MBEDTLS_AES_C) || defined(MBEDTLS_DES_C)) /** * \brief The CMAC checkup routine. * @@ -230,7 +229,7 @@ int mbedtls_aes_cmac_prf_128( const unsigned char *key, size_t key_len, * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_cmac_self_test( int verbose ); +int mbedtls_cmac_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST && ( MBEDTLS_AES_C || MBEDTLS_DES_C ) */ #ifdef __cplusplus diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 5727c5eb7..09bc32c73 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -296,9 +296,9 @@ extern "C" { (defined(PSA_WANT_ALG_OFB) && !defined(MBEDTLS_PSA_ACCEL_ALG_OFB)) || \ defined(PSA_WANT_ALG_ECB_NO_PADDING) || \ (defined(PSA_WANT_ALG_CBC_NO_PADDING) && \ - !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \ + !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)) || \ (defined(PSA_WANT_ALG_CBC_PKCS7) && \ - !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \ + !defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)) || \ (defined(PSA_WANT_ALG_CMAC) && !defined(MBEDTLS_PSA_ACCEL_ALG_CMAC)) #define PSA_HAVE_SOFT_BLOCK_MODE 1 #endif diff --git a/include/mbedtls/constant_time.h b/include/mbedtls/constant_time.h index fb1f7e98e..91a9e7fc3 100644 --- a/include/mbedtls/constant_time.h +++ b/include/mbedtls/constant_time.h @@ -39,8 +39,8 @@ * \return Zero if the content of the two buffer is the same, * otherwise non-zero. */ -int mbedtls_ct_memcmp( const void *a, - const void *b, - size_t n ); +int mbedtls_ct_memcmp(const void *a, + const void *b, + size_t n); #endif /* MBEDTLS_CONSTANT_TIME_H */ diff --git a/include/mbedtls/ctr_drbg.h b/include/mbedtls/ctr_drbg.h index 2b66b534a..8d28150d7 100644 --- a/include/mbedtls/ctr_drbg.h +++ b/include/mbedtls/ctr_drbg.h @@ -77,8 +77,8 @@ */ #endif -#define MBEDTLS_CTR_DRBG_KEYBITS ( MBEDTLS_CTR_DRBG_KEYSIZE * 8 ) /**< The key size for the DRBG operation, in bits. */ -#define MBEDTLS_CTR_DRBG_SEEDLEN ( MBEDTLS_CTR_DRBG_KEYSIZE + MBEDTLS_CTR_DRBG_BLOCKSIZE ) /**< The seed length, calculated as (counter + AES key). */ +#define MBEDTLS_CTR_DRBG_KEYBITS (MBEDTLS_CTR_DRBG_KEYSIZE * 8) /**< The key size for the DRBG operation, in bits. */ +#define MBEDTLS_CTR_DRBG_SEEDLEN (MBEDTLS_CTR_DRBG_KEYSIZE + MBEDTLS_CTR_DRBG_BLOCKSIZE) /**< The seed length, calculated as (counter + AES key). */ /** * \name SECTION: Module settings @@ -161,42 +161,41 @@ extern "C" { * the entropy source does not provide enough material to form a nonce. * See the documentation of mbedtls_ctr_drbg_seed() for more information. */ -#define MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN ( MBEDTLS_CTR_DRBG_ENTROPY_LEN + 1 ) / 2 +#define MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN (MBEDTLS_CTR_DRBG_ENTROPY_LEN + 1) / 2 #endif /** * \brief The CTR_DRBG context structure. */ -typedef struct mbedtls_ctr_drbg_context -{ +typedef struct mbedtls_ctr_drbg_context { unsigned char MBEDTLS_PRIVATE(counter)[16]; /*!< The counter (V). */ int MBEDTLS_PRIVATE(reseed_counter); /*!< The reseed counter. - * This is the number of requests that have - * been made since the last (re)seeding, - * minus one. - * Before the initial seeding, this field - * contains the amount of entropy in bytes - * to use as a nonce for the initial seeding, - * or -1 if no nonce length has been explicitly - * set (see mbedtls_ctr_drbg_set_nonce_len()). - */ + * This is the number of requests that have + * been made since the last (re)seeding, + * minus one. + * Before the initial seeding, this field + * contains the amount of entropy in bytes + * to use as a nonce for the initial seeding, + * or -1 if no nonce length has been explicitly + * set (see mbedtls_ctr_drbg_set_nonce_len()). + */ int MBEDTLS_PRIVATE(prediction_resistance); /*!< This determines whether prediction - resistance is enabled, that is - whether to systematically reseed before - each random generation. */ + resistance is enabled, that is + whether to systematically reseed before + each random generation. */ size_t MBEDTLS_PRIVATE(entropy_len); /*!< The amount of entropy grabbed on each - seed or reseed operation, in bytes. */ + seed or reseed operation, in bytes. */ int MBEDTLS_PRIVATE(reseed_interval); /*!< The reseed interval. - * This is the maximum number of requests - * that can be made between reseedings. */ + * This is the maximum number of requests + * that can be made between reseedings. */ mbedtls_aes_context MBEDTLS_PRIVATE(aes_ctx); /*!< The AES context. */ /* * Callbacks (Entropy) */ - int (*MBEDTLS_PRIVATE(f_entropy))(void *, unsigned char *, size_t); - /*!< The entropy callback function. */ + int(*MBEDTLS_PRIVATE(f_entropy))(void *, unsigned char *, size_t); + /*!< The entropy callback function. */ void *MBEDTLS_PRIVATE(p_entropy); /*!< The context for the entropy function. */ @@ -225,7 +224,7 @@ mbedtls_ctr_drbg_context; * * \param ctx The CTR_DRBG context to initialize. */ -void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx ); +void mbedtls_ctr_drbg_init(mbedtls_ctr_drbg_context *ctx); /** * \brief This function seeds and sets up the CTR_DRBG @@ -326,11 +325,11 @@ void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx ); * \return \c 0 on success. * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure. */ -int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx, - int (*f_entropy)(void *, unsigned char *, size_t), - void *p_entropy, - const unsigned char *custom, - size_t len ); +int mbedtls_ctr_drbg_seed(mbedtls_ctr_drbg_context *ctx, + int (*f_entropy)(void *, unsigned char *, size_t), + void *p_entropy, + const unsigned char *custom, + size_t len); /** * \brief This function resets CTR_DRBG context to the state immediately @@ -338,7 +337,7 @@ int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx, * * \param ctx The CTR_DRBG context to clear. */ -void mbedtls_ctr_drbg_free( mbedtls_ctr_drbg_context *ctx ); +void mbedtls_ctr_drbg_free(mbedtls_ctr_drbg_context *ctx); /** * \brief This function turns prediction resistance on or off. @@ -353,8 +352,8 @@ void mbedtls_ctr_drbg_free( mbedtls_ctr_drbg_context *ctx ); * \param ctx The CTR_DRBG context. * \param resistance #MBEDTLS_CTR_DRBG_PR_ON or #MBEDTLS_CTR_DRBG_PR_OFF. */ -void mbedtls_ctr_drbg_set_prediction_resistance( mbedtls_ctr_drbg_context *ctx, - int resistance ); +void mbedtls_ctr_drbg_set_prediction_resistance(mbedtls_ctr_drbg_context *ctx, + int resistance); /** * \brief This function sets the amount of entropy grabbed on each @@ -380,8 +379,8 @@ void mbedtls_ctr_drbg_set_prediction_resistance( mbedtls_ctr_drbg_context *ctx, * and at most the maximum length accepted by the * entropy function that is set in the context. */ -void mbedtls_ctr_drbg_set_entropy_len( mbedtls_ctr_drbg_context *ctx, - size_t len ); +void mbedtls_ctr_drbg_set_entropy_len(mbedtls_ctr_drbg_context *ctx, + size_t len); /** * \brief This function sets the amount of entropy grabbed @@ -402,8 +401,8 @@ void mbedtls_ctr_drbg_set_entropy_len( mbedtls_ctr_drbg_context *ctx, * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED * if the initial seeding has already taken place. */ -int mbedtls_ctr_drbg_set_nonce_len( mbedtls_ctr_drbg_context *ctx, - size_t len ); +int mbedtls_ctr_drbg_set_nonce_len(mbedtls_ctr_drbg_context *ctx, + size_t len); /** * \brief This function sets the reseed interval. @@ -417,8 +416,8 @@ int mbedtls_ctr_drbg_set_nonce_len( mbedtls_ctr_drbg_context *ctx, * \param ctx The CTR_DRBG context. * \param interval The reseed interval. */ -void mbedtls_ctr_drbg_set_reseed_interval( mbedtls_ctr_drbg_context *ctx, - int interval ); +void mbedtls_ctr_drbg_set_reseed_interval(mbedtls_ctr_drbg_context *ctx, + int interval); /** * \brief This function reseeds the CTR_DRBG context, that is @@ -440,8 +439,8 @@ void mbedtls_ctr_drbg_set_reseed_interval( mbedtls_ctr_drbg_context *ctx, * \return \c 0 on success. * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on failure. */ -int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx, - const unsigned char *additional, size_t len ); +int mbedtls_ctr_drbg_reseed(mbedtls_ctr_drbg_context *ctx, + const unsigned char *additional, size_t len); /** * \brief This function updates the state of the CTR_DRBG context. @@ -463,9 +462,9 @@ int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx, * #MBEDTLS_CTR_DRBG_MAX_SEED_INPUT. * \return An error from the underlying AES cipher on failure. */ -int mbedtls_ctr_drbg_update( mbedtls_ctr_drbg_context *ctx, - const unsigned char *additional, - size_t add_len ); +int mbedtls_ctr_drbg_update(mbedtls_ctr_drbg_context *ctx, + const unsigned char *additional, + size_t add_len); /** * \brief This function updates a CTR_DRBG instance with additional @@ -498,9 +497,9 @@ int mbedtls_ctr_drbg_update( mbedtls_ctr_drbg_context *ctx, * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or * #MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure. */ -int mbedtls_ctr_drbg_random_with_add( void *p_rng, - unsigned char *output, size_t output_len, - const unsigned char *additional, size_t add_len ); +int mbedtls_ctr_drbg_random_with_add(void *p_rng, + unsigned char *output, size_t output_len, + const unsigned char *additional, size_t add_len); /** * \brief This function uses CTR_DRBG to generate random data. @@ -526,8 +525,8 @@ int mbedtls_ctr_drbg_random_with_add( void *p_rng, * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED or * #MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG on failure. */ -int mbedtls_ctr_drbg_random( void *p_rng, - unsigned char *output, size_t output_len ); +int mbedtls_ctr_drbg_random(void *p_rng, + unsigned char *output, size_t output_len); #if defined(MBEDTLS_FS_IO) /** @@ -541,7 +540,7 @@ int mbedtls_ctr_drbg_random( void *p_rng, * \return #MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED on reseed * failure. */ -int mbedtls_ctr_drbg_write_seed_file( mbedtls_ctr_drbg_context *ctx, const char *path ); +int mbedtls_ctr_drbg_write_seed_file(mbedtls_ctr_drbg_context *ctx, const char *path); /** * \brief This function reads and updates a seed file. The seed @@ -557,7 +556,7 @@ int mbedtls_ctr_drbg_write_seed_file( mbedtls_ctr_drbg_context *ctx, const char * \return #MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG if the existing * seed file is too large. */ -int mbedtls_ctr_drbg_update_seed_file( mbedtls_ctr_drbg_context *ctx, const char *path ); +int mbedtls_ctr_drbg_update_seed_file(mbedtls_ctr_drbg_context *ctx, const char *path); #endif /* MBEDTLS_FS_IO */ #if defined(MBEDTLS_SELF_TEST) @@ -568,7 +567,7 @@ int mbedtls_ctr_drbg_update_seed_file( mbedtls_ctr_drbg_context *ctx, const char * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_ctr_drbg_self_test( int verbose ); +int mbedtls_ctr_drbg_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/debug.h b/include/mbedtls/debug.h index 5c8aba8db..2b0d00e4c 100644 --- a/include/mbedtls/debug.h +++ b/include/mbedtls/debug.h @@ -32,51 +32,51 @@ #if defined(MBEDTLS_DEBUG_C) -#define MBEDTLS_DEBUG_STRIP_PARENS( ... ) __VA_ARGS__ +#define MBEDTLS_DEBUG_STRIP_PARENS(...) __VA_ARGS__ -#define MBEDTLS_SSL_DEBUG_MSG( level, args ) \ - mbedtls_debug_print_msg( ssl, level, __FILE__, __LINE__, \ - MBEDTLS_DEBUG_STRIP_PARENS args ) +#define MBEDTLS_SSL_DEBUG_MSG(level, args) \ + mbedtls_debug_print_msg(ssl, level, __FILE__, __LINE__, \ + MBEDTLS_DEBUG_STRIP_PARENS args) -#define MBEDTLS_SSL_DEBUG_RET( level, text, ret ) \ - mbedtls_debug_print_ret( ssl, level, __FILE__, __LINE__, text, ret ) +#define MBEDTLS_SSL_DEBUG_RET(level, text, ret) \ + mbedtls_debug_print_ret(ssl, level, __FILE__, __LINE__, text, ret) -#define MBEDTLS_SSL_DEBUG_BUF( level, text, buf, len ) \ - mbedtls_debug_print_buf( ssl, level, __FILE__, __LINE__, text, buf, len ) +#define MBEDTLS_SSL_DEBUG_BUF(level, text, buf, len) \ + mbedtls_debug_print_buf(ssl, level, __FILE__, __LINE__, text, buf, len) #if defined(MBEDTLS_BIGNUM_C) -#define MBEDTLS_SSL_DEBUG_MPI( level, text, X ) \ - mbedtls_debug_print_mpi( ssl, level, __FILE__, __LINE__, text, X ) +#define MBEDTLS_SSL_DEBUG_MPI(level, text, X) \ + mbedtls_debug_print_mpi(ssl, level, __FILE__, __LINE__, text, X) #endif #if defined(MBEDTLS_ECP_C) -#define MBEDTLS_SSL_DEBUG_ECP( level, text, X ) \ - mbedtls_debug_print_ecp( ssl, level, __FILE__, __LINE__, text, X ) +#define MBEDTLS_SSL_DEBUG_ECP(level, text, X) \ + mbedtls_debug_print_ecp(ssl, level, __FILE__, __LINE__, text, X) #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) #if !defined(MBEDTLS_X509_REMOVE_INFO) -#define MBEDTLS_SSL_DEBUG_CRT( level, text, crt ) \ - mbedtls_debug_print_crt( ssl, level, __FILE__, __LINE__, text, crt ) +#define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) \ + mbedtls_debug_print_crt(ssl, level, __FILE__, __LINE__, text, crt) #else -#define MBEDTLS_SSL_DEBUG_CRT( level, text, crt ) do { } while( 0 ) +#define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) do { } while (0) #endif /* MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_ECDH_C) -#define MBEDTLS_SSL_DEBUG_ECDH( level, ecdh, attr ) \ - mbedtls_debug_printf_ecdh( ssl, level, __FILE__, __LINE__, ecdh, attr ) +#define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr) \ + mbedtls_debug_printf_ecdh(ssl, level, __FILE__, __LINE__, ecdh, attr) #endif #else /* MBEDTLS_DEBUG_C */ -#define MBEDTLS_SSL_DEBUG_MSG( level, args ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_RET( level, text, ret ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_BUF( level, text, buf, len ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_MPI( level, text, X ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_ECP( level, text, X ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_CRT( level, text, crt ) do { } while( 0 ) -#define MBEDTLS_SSL_DEBUG_ECDH( level, ecdh, attr ) do { } while( 0 ) +#define MBEDTLS_SSL_DEBUG_MSG(level, args) do { } while (0) +#define MBEDTLS_SSL_DEBUG_RET(level, text, ret) do { } while (0) +#define MBEDTLS_SSL_DEBUG_BUF(level, text, buf, len) do { } while (0) +#define MBEDTLS_SSL_DEBUG_MPI(level, text, X) do { } while (0) +#define MBEDTLS_SSL_DEBUG_ECP(level, text, X) do { } while (0) +#define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) do { } while (0) +#define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr) do { } while (0) #endif /* MBEDTLS_DEBUG_C */ @@ -96,7 +96,7 @@ #if __has_attribute(format) #if defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 1 #define MBEDTLS_PRINTF_ATTRIBUTE(string_index, first_to_check) \ - __attribute__((__format__ (gnu_printf, string_index, first_to_check))) + __attribute__((__format__(gnu_printf, string_index, first_to_check))) #else /* defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 1 */ #define MBEDTLS_PRINTF_ATTRIBUTE(string_index, first_to_check) \ __attribute__((format(printf, string_index, first_to_check))) @@ -124,10 +124,12 @@ #include #define MBEDTLS_PRINTF_SIZET PRIuPTR #define MBEDTLS_PRINTF_LONGLONG "I64d" -#else /* (defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 0) || (defined(_MSC_VER) && _MSC_VER < 1800) */ +#else \ + /* (defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 0) || (defined(_MSC_VER) && _MSC_VER < 1800) */ #define MBEDTLS_PRINTF_SIZET "zu" #define MBEDTLS_PRINTF_LONGLONG "lld" -#endif /* (defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 0) || (defined(_MSC_VER) && _MSC_VER < 1800) */ +#endif \ + /* (defined(__MINGW32__) && __USE_MINGW_ANSI_STDIO == 0) || (defined(_MSC_VER) && _MSC_VER < 1800) */ #ifdef __cplusplus extern "C" { @@ -148,7 +150,7 @@ extern "C" { * - 3 Informational * - 4 Verbose */ -void mbedtls_debug_set_threshold( int threshold ); +void mbedtls_debug_set_threshold(int threshold); /** * \brief Print a message to the debug output. This function is always used @@ -165,9 +167,9 @@ void mbedtls_debug_set_threshold( int threshold ); * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *format, ... ) MBEDTLS_PRINTF_ATTRIBUTE(5, 6); +void mbedtls_debug_print_msg(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *format, ...) MBEDTLS_PRINTF_ATTRIBUTE(5, 6); /** * \brief Print the return value of a function to the debug output. This @@ -184,9 +186,9 @@ void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level, * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, int ret ); +void mbedtls_debug_print_ret(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, int ret); /** * \brief Output a buffer of size len bytes to the debug output. This function @@ -205,9 +207,9 @@ void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_buf( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, const char *text, - const unsigned char *buf, size_t len ); +void mbedtls_debug_print_buf(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, const char *text, + const unsigned char *buf, size_t len); #if defined(MBEDTLS_BIGNUM_C) /** @@ -226,9 +228,9 @@ void mbedtls_debug_print_buf( const mbedtls_ssl_context *ssl, int level, * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_mpi( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_mpi *X ); +void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_mpi *X); #endif #if defined(MBEDTLS_ECP_C) @@ -248,9 +250,9 @@ void mbedtls_debug_print_mpi( const mbedtls_ssl_context *ssl, int level, * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_ecp( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_ecp_point *X ); +void mbedtls_debug_print_ecp(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_ecp_point *X); #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) @@ -269,14 +271,13 @@ void mbedtls_debug_print_ecp( const mbedtls_ssl_context *ssl, int level, * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_print_crt( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_x509_crt *crt ); +void mbedtls_debug_print_crt(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_x509_crt *crt); #endif #if defined(MBEDTLS_ECDH_C) -typedef enum -{ +typedef enum { MBEDTLS_DEBUG_ECDH_Q, MBEDTLS_DEBUG_ECDH_QP, MBEDTLS_DEBUG_ECDH_Z, @@ -298,10 +299,10 @@ typedef enum * \attention This function is intended for INTERNAL usage within the * library only. */ -void mbedtls_debug_printf_ecdh( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const mbedtls_ecdh_context *ecdh, - mbedtls_debug_ecdh_attr attr ); +void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const mbedtls_ecdh_context *ecdh, + mbedtls_debug_ecdh_attr attr); #endif #ifdef __cplusplus diff --git a/include/mbedtls/des.h b/include/mbedtls/des.h index be74cb111..5a18634f8 100644 --- a/include/mbedtls/des.h +++ b/include/mbedtls/des.h @@ -57,8 +57,7 @@ extern "C" { * security risk. We recommend considering stronger ciphers * instead. */ -typedef struct mbedtls_des_context -{ +typedef struct mbedtls_des_context { uint32_t MBEDTLS_PRIVATE(sk)[32]; /*!< DES subkeys */ } mbedtls_des_context; @@ -66,8 +65,7 @@ mbedtls_des_context; /** * \brief Triple-DES context structure */ -typedef struct mbedtls_des3_context -{ +typedef struct mbedtls_des3_context { uint32_t MBEDTLS_PRIVATE(sk)[96]; /*!< 3DES subkeys */ } mbedtls_des3_context; @@ -85,7 +83,7 @@ mbedtls_des3_context; * security risk. We recommend considering stronger ciphers * instead. */ -void mbedtls_des_init( mbedtls_des_context *ctx ); +void mbedtls_des_init(mbedtls_des_context *ctx); /** * \brief Clear DES context @@ -96,21 +94,21 @@ void mbedtls_des_init( mbedtls_des_context *ctx ); * security risk. We recommend considering stronger ciphers * instead. */ -void mbedtls_des_free( mbedtls_des_context *ctx ); +void mbedtls_des_free(mbedtls_des_context *ctx); /** * \brief Initialize Triple-DES context * * \param ctx DES3 context to be initialized */ -void mbedtls_des3_init( mbedtls_des3_context *ctx ); +void mbedtls_des3_init(mbedtls_des3_context *ctx); /** * \brief Clear Triple-DES context * * \param ctx DES3 context to be cleared */ -void mbedtls_des3_free( mbedtls_des3_context *ctx ); +void mbedtls_des3_free(mbedtls_des3_context *ctx); /** * \brief Set key parity on the given key to odd. @@ -124,7 +122,7 @@ void mbedtls_des3_free( mbedtls_des3_context *ctx ); * security risk. We recommend considering stronger ciphers * instead. */ -void mbedtls_des_key_set_parity( unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE]); /** * \brief Check that key parity on the given key is odd. @@ -141,7 +139,7 @@ void mbedtls_des_key_set_parity( unsigned char key[MBEDTLS_DES_KEY_SIZE] ); * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_key_check_key_parity( const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZE]); /** * \brief Check that key is not a weak or semi-weak DES key @@ -155,7 +153,7 @@ int mbedtls_des_key_check_key_parity( const unsigned char key[MBEDTLS_DES_KEY_SI * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_key_check_weak( const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE]); /** * \brief DES key schedule (56-bit, encryption) @@ -170,7 +168,7 @@ int mbedtls_des_key_check_weak( const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_setkey_enc( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]); /** * \brief DES key schedule (56-bit, decryption) @@ -185,7 +183,7 @@ int mbedtls_des_setkey_enc( mbedtls_des_context *ctx, const unsigned char key[MB * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_setkey_dec( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]); /** * \brief Triple-DES key schedule (112-bit, encryption) @@ -196,8 +194,8 @@ int mbedtls_des_setkey_dec( mbedtls_des_context *ctx, const unsigned char key[MB * \return 0 */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_set2key_enc( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] ); +int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]); /** * \brief Triple-DES key schedule (112-bit, decryption) @@ -208,8 +206,8 @@ int mbedtls_des3_set2key_enc( mbedtls_des3_context *ctx, * \return 0 */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_set2key_dec( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] ); +int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]); /** * \brief Triple-DES key schedule (168-bit, encryption) @@ -220,8 +218,8 @@ int mbedtls_des3_set2key_dec( mbedtls_des3_context *ctx, * \return 0 */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_set3key_enc( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] ); +int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]); /** * \brief Triple-DES key schedule (168-bit, decryption) @@ -232,8 +230,8 @@ int mbedtls_des3_set3key_enc( mbedtls_des3_context *ctx, * \return 0 */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_set3key_dec( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] ); +int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]); /** * \brief DES-ECB block encryption/decryption @@ -249,9 +247,9 @@ int mbedtls_des3_set3key_dec( mbedtls_des3_context *ctx, * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_crypt_ecb( mbedtls_des_context *ctx, - const unsigned char input[8], - unsigned char output[8] ); +int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx, + const unsigned char input[8], + unsigned char output[8]); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** @@ -277,12 +275,12 @@ int mbedtls_des_crypt_ecb( mbedtls_des_context *ctx, * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, - int mode, - size_t length, - unsigned char iv[8], - const unsigned char *input, - unsigned char *output ); +int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx, + int mode, + size_t length, + unsigned char iv[8], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ /** @@ -295,9 +293,9 @@ int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, * \return 0 if successful */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_crypt_ecb( mbedtls_des3_context *ctx, - const unsigned char input[8], - unsigned char output[8] ); +int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx, + const unsigned char input[8], + unsigned char output[8]); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** @@ -321,12 +319,12 @@ int mbedtls_des3_crypt_ecb( mbedtls_des3_context *ctx, * \return 0 if successful, or MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, - int mode, - size_t length, - unsigned char iv[8], - const unsigned char *input, - unsigned char *output ); +int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx, + int mode, + size_t length, + unsigned char iv[8], + const unsigned char *input, + unsigned char *output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ /** @@ -341,8 +339,8 @@ int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, * security risk. We recommend considering stronger ciphers * instead. */ -void mbedtls_des_setkey( uint32_t SK[32], - const unsigned char key[MBEDTLS_DES_KEY_SIZE] ); +void mbedtls_des_setkey(uint32_t SK[32], + const unsigned char key[MBEDTLS_DES_KEY_SIZE]); #if defined(MBEDTLS_SELF_TEST) @@ -352,7 +350,7 @@ void mbedtls_des_setkey( uint32_t SK[32], * \return 0 if successful, or 1 if the test failed */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_des_self_test( int verbose ); +int mbedtls_des_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/dhm.h b/include/mbedtls/dhm.h index 32a957d5a..6ffe681ca 100644 --- a/include/mbedtls/dhm.h +++ b/include/mbedtls/dhm.h @@ -92,8 +92,7 @@ #define MBEDTLS_ERR_DHM_SET_GROUP_FAILED -0x3580 /** Which parameter to access in mbedtls_dhm_get_value(). */ -typedef enum -{ +typedef enum { MBEDTLS_DHM_PARAM_P, /*!< The prime modulus. */ MBEDTLS_DHM_PARAM_G, /*!< The generator. */ MBEDTLS_DHM_PARAM_X, /*!< Our secret value. */ @@ -111,8 +110,7 @@ extern "C" { /** * \brief The DHM context structure. */ -typedef struct mbedtls_dhm_context -{ +typedef struct mbedtls_dhm_context { mbedtls_mpi MBEDTLS_PRIVATE(P); /*!< The prime modulus. */ mbedtls_mpi MBEDTLS_PRIVATE(G); /*!< The generator. */ mbedtls_mpi MBEDTLS_PRIVATE(X); /*!< Our secret value. */ @@ -135,7 +133,7 @@ mbedtls_dhm_context; * * \param ctx The DHM context to initialize. */ -void mbedtls_dhm_init( mbedtls_dhm_context *ctx ); +void mbedtls_dhm_init(mbedtls_dhm_context *ctx); /** * \brief This function parses the DHM parameters in a @@ -159,9 +157,9 @@ void mbedtls_dhm_init( mbedtls_dhm_context *ctx ); * \return \c 0 on success. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_read_params( mbedtls_dhm_context *ctx, - unsigned char **p, - const unsigned char *end ); +int mbedtls_dhm_read_params(mbedtls_dhm_context *ctx, + unsigned char **p, + const unsigned char *end); /** * \brief This function generates a DHM key pair and exports its @@ -195,10 +193,10 @@ int mbedtls_dhm_read_params( mbedtls_dhm_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_make_params( mbedtls_dhm_context *ctx, int x_size, - unsigned char *output, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_dhm_make_params(mbedtls_dhm_context *ctx, int x_size, + unsigned char *output, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function sets the prime modulus and generator. @@ -215,9 +213,9 @@ int mbedtls_dhm_make_params( mbedtls_dhm_context *ctx, int x_size, * \return \c 0 if successful. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx, - const mbedtls_mpi *P, - const mbedtls_mpi *G ); +int mbedtls_dhm_set_group(mbedtls_dhm_context *ctx, + const mbedtls_mpi *P, + const mbedtls_mpi *G); /** * \brief This function imports the raw public value of the peer. @@ -235,8 +233,8 @@ int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx, - const unsigned char *input, size_t ilen ); +int mbedtls_dhm_read_public(mbedtls_dhm_context *ctx, + const unsigned char *input, size_t ilen); /** * \brief This function creates a DHM key pair and exports @@ -262,10 +260,10 @@ int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, - unsigned char *output, size_t olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_dhm_make_public(mbedtls_dhm_context *ctx, int x_size, + unsigned char *output, size_t olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function derives and exports the shared secret @@ -293,10 +291,10 @@ int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_DHM_XXX error code on failure. */ -int mbedtls_dhm_calc_secret( mbedtls_dhm_context *ctx, - unsigned char *output, size_t output_size, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_dhm_calc_secret(mbedtls_dhm_context *ctx, + unsigned char *output, size_t output_size, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function returns the size of the prime modulus in bits. @@ -306,7 +304,7 @@ int mbedtls_dhm_calc_secret( mbedtls_dhm_context *ctx, * \return The size of the prime modulus in bits, * i.e. the number n such that 2^(n-1) <= P < 2^n. */ -size_t mbedtls_dhm_get_bitlen( const mbedtls_dhm_context *ctx ); +size_t mbedtls_dhm_get_bitlen(const mbedtls_dhm_context *ctx); /** * \brief This function returns the size of the prime modulus in bytes. @@ -316,7 +314,7 @@ size_t mbedtls_dhm_get_bitlen( const mbedtls_dhm_context *ctx ); * \return The size of the prime modulus in bytes, * i.e. the number n such that 2^(8*(n-1)) <= P < 2^(8*n). */ -size_t mbedtls_dhm_get_len( const mbedtls_dhm_context *ctx ); +size_t mbedtls_dhm_get_len(const mbedtls_dhm_context *ctx); /** * \brief This function copies a parameter of a DHM key. @@ -330,9 +328,9 @@ size_t mbedtls_dhm_get_len( const mbedtls_dhm_context *ctx ); * \return #MBEDTLS_ERR_DHM_BAD_INPUT_DATA if \p field is invalid. * \return An \c MBEDTLS_ERR_MPI_XXX error code if the copy fails. */ -int mbedtls_dhm_get_value( const mbedtls_dhm_context *ctx, - mbedtls_dhm_parameter param, - mbedtls_mpi *dest ); +int mbedtls_dhm_get_value(const mbedtls_dhm_context *ctx, + mbedtls_dhm_parameter param, + mbedtls_mpi *dest); /** * \brief This function frees and clears the components @@ -342,7 +340,7 @@ int mbedtls_dhm_get_value( const mbedtls_dhm_context *ctx, * in which case this function is a no-op. If it is not \c NULL, * it must point to an initialized DHM context. */ -void mbedtls_dhm_free( mbedtls_dhm_context *ctx ); +void mbedtls_dhm_free(mbedtls_dhm_context *ctx); #if defined(MBEDTLS_ASN1_PARSE_C) /** @@ -359,8 +357,8 @@ void mbedtls_dhm_free( mbedtls_dhm_context *ctx ); * \return An \c MBEDTLS_ERR_DHM_XXX or \c MBEDTLS_ERR_PEM_XXX error * code on failure. */ -int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, - size_t dhminlen ); +int mbedtls_dhm_parse_dhm(mbedtls_dhm_context *dhm, const unsigned char *dhmin, + size_t dhminlen); #if defined(MBEDTLS_FS_IO) /** @@ -375,7 +373,7 @@ int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, * \return An \c MBEDTLS_ERR_DHM_XXX or \c MBEDTLS_ERR_PEM_XXX * error code on failure. */ -int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ); +int mbedtls_dhm_parse_dhmfile(mbedtls_dhm_context *dhm, const char *path); #endif /* MBEDTLS_FS_IO */ #endif /* MBEDTLS_ASN1_PARSE_C */ @@ -387,7 +385,7 @@ int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ); * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_dhm_self_test( int verbose ); +int mbedtls_dhm_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus @@ -440,546 +438,546 @@ int mbedtls_dhm_self_test( int verbose ); */ #define MBEDTLS_DHM_RFC3526_MODP_2048_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ - 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ - 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ - 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ - 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ - 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ - 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ - 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ - 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ - 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ - 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ - 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ - 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ - 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ - 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ - 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ - 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ - 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ - 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ - 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ - 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ - 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ - 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ - 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ - 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ - 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ - 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ - 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ - 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ - 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ + 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ + 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ + 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ + 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ + 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ + 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ + 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ + 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ + 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ + 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ + 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ + 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ + 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ + 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ + 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ + 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ + 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ + 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ + 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ + 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ + 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ + 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ + 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ + 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ + 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ + 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ + 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ + 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ + 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAC, 0xAA, 0x68, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC3526_MODP_2048_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC3526_MODP_3072_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ - 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ - 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ - 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ - 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ - 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ - 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ - 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ - 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ - 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ - 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ - 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ - 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ - 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ - 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ - 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ - 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ - 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ - 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ - 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ - 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ - 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ - 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ - 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ - 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ - 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ - 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ - 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ - 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ - 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, \ - 0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33, \ - 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, \ - 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, \ - 0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D, \ - 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, \ - 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, \ - 0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, \ - 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, \ - 0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, \ - 0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, \ - 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C, \ - 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, \ - 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2, \ - 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, \ - 0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, \ - 0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ + 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ + 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ + 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ + 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ + 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ + 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ + 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ + 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ + 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ + 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ + 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ + 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ + 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ + 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ + 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ + 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ + 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ + 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ + 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ + 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ + 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ + 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ + 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ + 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ + 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ + 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ + 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ + 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ + 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, \ + 0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33, \ + 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, \ + 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, \ + 0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D, \ + 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, \ + 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, \ + 0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, \ + 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, \ + 0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, \ + 0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, \ + 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C, \ + 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, \ + 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2, \ + 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, \ + 0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, \ + 0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x3A, 0xD2, 0xCA, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC3526_MODP_3072_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC3526_MODP_4096_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ - 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ - 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ - 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ - 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ - 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ - 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ - 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ - 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ - 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ - 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ - 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ - 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ - 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ - 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ - 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ - 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ - 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ - 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ - 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ - 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ - 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ - 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ - 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ - 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ - 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ - 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ - 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ - 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ - 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, \ - 0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33, \ - 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, \ - 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, \ - 0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D, \ - 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, \ - 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, \ - 0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, \ - 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, \ - 0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, \ - 0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, \ - 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C, \ - 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, \ - 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2, \ - 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, \ - 0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, \ - 0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01, \ - 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, \ - 0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, \ - 0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C, \ - 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA, \ - 0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, \ - 0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9, \ - 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6, \ - 0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, \ - 0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2, \ - 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED, \ - 0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, \ - 0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C, \ - 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9, \ - 0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, \ - 0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F, \ - 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xC9, 0x0F, 0xDA, 0xA2, 0x21, 0x68, 0xC2, 0x34, \ + 0xC4, 0xC6, 0x62, 0x8B, 0x80, 0xDC, 0x1C, 0xD1, \ + 0x29, 0x02, 0x4E, 0x08, 0x8A, 0x67, 0xCC, 0x74, \ + 0x02, 0x0B, 0xBE, 0xA6, 0x3B, 0x13, 0x9B, 0x22, \ + 0x51, 0x4A, 0x08, 0x79, 0x8E, 0x34, 0x04, 0xDD, \ + 0xEF, 0x95, 0x19, 0xB3, 0xCD, 0x3A, 0x43, 0x1B, \ + 0x30, 0x2B, 0x0A, 0x6D, 0xF2, 0x5F, 0x14, 0x37, \ + 0x4F, 0xE1, 0x35, 0x6D, 0x6D, 0x51, 0xC2, 0x45, \ + 0xE4, 0x85, 0xB5, 0x76, 0x62, 0x5E, 0x7E, 0xC6, \ + 0xF4, 0x4C, 0x42, 0xE9, 0xA6, 0x37, 0xED, 0x6B, \ + 0x0B, 0xFF, 0x5C, 0xB6, 0xF4, 0x06, 0xB7, 0xED, \ + 0xEE, 0x38, 0x6B, 0xFB, 0x5A, 0x89, 0x9F, 0xA5, \ + 0xAE, 0x9F, 0x24, 0x11, 0x7C, 0x4B, 0x1F, 0xE6, \ + 0x49, 0x28, 0x66, 0x51, 0xEC, 0xE4, 0x5B, 0x3D, \ + 0xC2, 0x00, 0x7C, 0xB8, 0xA1, 0x63, 0xBF, 0x05, \ + 0x98, 0xDA, 0x48, 0x36, 0x1C, 0x55, 0xD3, 0x9A, \ + 0x69, 0x16, 0x3F, 0xA8, 0xFD, 0x24, 0xCF, 0x5F, \ + 0x83, 0x65, 0x5D, 0x23, 0xDC, 0xA3, 0xAD, 0x96, \ + 0x1C, 0x62, 0xF3, 0x56, 0x20, 0x85, 0x52, 0xBB, \ + 0x9E, 0xD5, 0x29, 0x07, 0x70, 0x96, 0x96, 0x6D, \ + 0x67, 0x0C, 0x35, 0x4E, 0x4A, 0xBC, 0x98, 0x04, \ + 0xF1, 0x74, 0x6C, 0x08, 0xCA, 0x18, 0x21, 0x7C, \ + 0x32, 0x90, 0x5E, 0x46, 0x2E, 0x36, 0xCE, 0x3B, \ + 0xE3, 0x9E, 0x77, 0x2C, 0x18, 0x0E, 0x86, 0x03, \ + 0x9B, 0x27, 0x83, 0xA2, 0xEC, 0x07, 0xA2, 0x8F, \ + 0xB5, 0xC5, 0x5D, 0xF0, 0x6F, 0x4C, 0x52, 0xC9, \ + 0xDE, 0x2B, 0xCB, 0xF6, 0x95, 0x58, 0x17, 0x18, \ + 0x39, 0x95, 0x49, 0x7C, 0xEA, 0x95, 0x6A, 0xE5, \ + 0x15, 0xD2, 0x26, 0x18, 0x98, 0xFA, 0x05, 0x10, \ + 0x15, 0x72, 0x8E, 0x5A, 0x8A, 0xAA, 0xC4, 0x2D, \ + 0xAD, 0x33, 0x17, 0x0D, 0x04, 0x50, 0x7A, 0x33, \ + 0xA8, 0x55, 0x21, 0xAB, 0xDF, 0x1C, 0xBA, 0x64, \ + 0xEC, 0xFB, 0x85, 0x04, 0x58, 0xDB, 0xEF, 0x0A, \ + 0x8A, 0xEA, 0x71, 0x57, 0x5D, 0x06, 0x0C, 0x7D, \ + 0xB3, 0x97, 0x0F, 0x85, 0xA6, 0xE1, 0xE4, 0xC7, \ + 0xAB, 0xF5, 0xAE, 0x8C, 0xDB, 0x09, 0x33, 0xD7, \ + 0x1E, 0x8C, 0x94, 0xE0, 0x4A, 0x25, 0x61, 0x9D, \ + 0xCE, 0xE3, 0xD2, 0x26, 0x1A, 0xD2, 0xEE, 0x6B, \ + 0xF1, 0x2F, 0xFA, 0x06, 0xD9, 0x8A, 0x08, 0x64, \ + 0xD8, 0x76, 0x02, 0x73, 0x3E, 0xC8, 0x6A, 0x64, \ + 0x52, 0x1F, 0x2B, 0x18, 0x17, 0x7B, 0x20, 0x0C, \ + 0xBB, 0xE1, 0x17, 0x57, 0x7A, 0x61, 0x5D, 0x6C, \ + 0x77, 0x09, 0x88, 0xC0, 0xBA, 0xD9, 0x46, 0xE2, \ + 0x08, 0xE2, 0x4F, 0xA0, 0x74, 0xE5, 0xAB, 0x31, \ + 0x43, 0xDB, 0x5B, 0xFC, 0xE0, 0xFD, 0x10, 0x8E, \ + 0x4B, 0x82, 0xD1, 0x20, 0xA9, 0x21, 0x08, 0x01, \ + 0x1A, 0x72, 0x3C, 0x12, 0xA7, 0x87, 0xE6, 0xD7, \ + 0x88, 0x71, 0x9A, 0x10, 0xBD, 0xBA, 0x5B, 0x26, \ + 0x99, 0xC3, 0x27, 0x18, 0x6A, 0xF4, 0xE2, 0x3C, \ + 0x1A, 0x94, 0x68, 0x34, 0xB6, 0x15, 0x0B, 0xDA, \ + 0x25, 0x83, 0xE9, 0xCA, 0x2A, 0xD4, 0x4C, 0xE8, \ + 0xDB, 0xBB, 0xC2, 0xDB, 0x04, 0xDE, 0x8E, 0xF9, \ + 0x2E, 0x8E, 0xFC, 0x14, 0x1F, 0xBE, 0xCA, 0xA6, \ + 0x28, 0x7C, 0x59, 0x47, 0x4E, 0x6B, 0xC0, 0x5D, \ + 0x99, 0xB2, 0x96, 0x4F, 0xA0, 0x90, 0xC3, 0xA2, \ + 0x23, 0x3B, 0xA1, 0x86, 0x51, 0x5B, 0xE7, 0xED, \ + 0x1F, 0x61, 0x29, 0x70, 0xCE, 0xE2, 0xD7, 0xAF, \ + 0xB8, 0x1B, 0xDD, 0x76, 0x21, 0x70, 0x48, 0x1C, \ + 0xD0, 0x06, 0x91, 0x27, 0xD5, 0xB0, 0x5A, 0xA9, \ + 0x93, 0xB4, 0xEA, 0x98, 0x8D, 0x8F, 0xDD, 0xC1, \ + 0x86, 0xFF, 0xB7, 0xDC, 0x90, 0xA6, 0xC0, 0x8F, \ + 0x4D, 0xF4, 0x35, 0xC9, 0x34, 0x06, 0x31, 0x99, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC3526_MODP_4096_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC7919_FFDHE2048_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ - 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ - 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ - 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ - 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ - 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ - 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ - 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ - 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ - 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ - 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ - 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ - 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ - 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ - 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ - 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ - 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ - 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ - 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ - 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ - 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ - 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ - 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ - 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ - 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ - 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ - 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ - 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ - 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ - 0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ + 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ + 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ + 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ + 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ + 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ + 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ + 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ + 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ + 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ + 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ + 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ + 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ + 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ + 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ + 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ + 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ + 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ + 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ + 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ + 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ + 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ + 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ + 0x88, 0x6B, 0x42, 0x38, 0x61, 0x28, 0x5C, 0x97, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, } #define MBEDTLS_DHM_RFC7919_FFDHE2048_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC7919_FFDHE3072_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ - 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ - 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ - 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ - 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ - 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ - 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ - 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ - 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ - 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ - 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ - 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ - 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ - 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ - 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ - 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ - 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ - 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ - 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ - 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ - 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ - 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ - 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ - 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ - 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ - 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ - 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ - 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ - 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ - 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ - 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ - 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ - 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ - 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ - 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ - 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ - 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ - 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ - 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ - 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ - 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ - 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ - 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ - 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ - 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ - 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0xC6, 0x2E, 0x37, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ + 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ + 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ + 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ + 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ + 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ + 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ + 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ + 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ + 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ + 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ + 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ + 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ + 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ + 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ + 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ + 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ + 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ + 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ + 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ + 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ + 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ + 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ + 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ + 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ + 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ + 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ + 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ + 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ + 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ + 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ + 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ + 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ + 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ + 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ + 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ + 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ + 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ + 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ + 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0xC6, 0x2E, 0x37, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC7919_FFDHE3072_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC7919_FFDHE4096_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ - 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ - 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ - 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ - 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ - 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ - 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ - 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ - 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ - 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ - 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ - 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ - 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ - 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ - 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ - 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ - 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ - 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ - 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ - 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ - 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ - 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ - 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ - 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ - 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ - 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ - 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ - 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ - 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ - 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ - 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ - 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ - 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ - 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ - 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ - 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ - 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ - 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ - 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ - 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ - 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ - 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ - 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ - 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ - 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ - 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ - 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ - 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ - 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ - 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ - 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ - 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ - 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ - 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ - 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ - 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ - 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ - 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ - 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ - 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ - 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ - 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ + 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ + 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ + 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ + 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ + 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ + 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ + 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ + 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ + 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ + 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ + 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ + 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ + 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ + 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ + 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ + 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ + 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ + 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ + 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ + 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ + 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ + 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ + 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ + 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ + 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ + 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ + 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ + 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ + 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ + 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ + 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ + 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ + 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ + 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ + 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ + 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ + 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ + 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ + 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ + 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ + 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ + 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ + 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ + 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ + 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ + 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ + 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ + 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ + 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ + 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ + 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ + 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ + 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ + 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ + 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x65, 0x5F, 0x6A, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC7919_FFDHE4096_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC7919_FFDHE6144_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ - 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ - 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ - 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ - 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ - 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ - 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ - 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ - 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ - 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ - 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ - 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ - 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ - 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ - 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ - 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ - 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ - 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ - 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ - 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ - 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ - 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ - 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ - 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ - 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ - 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ - 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ - 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ - 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ - 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ - 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ - 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ - 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ - 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ - 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ - 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ - 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ - 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ - 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ - 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ - 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ - 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ - 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ - 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ - 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ - 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ - 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ - 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ - 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ - 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ - 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ - 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ - 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ - 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ - 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ - 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ - 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ - 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ - 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ - 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ - 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ - 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \ - 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \ - 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \ - 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \ - 0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \ - 0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \ - 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \ - 0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \ - 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \ - 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \ - 0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \ - 0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \ - 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \ - 0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \ - 0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \ - 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \ - 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \ - 0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \ - 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \ - 0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \ - 0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \ - 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \ - 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \ - 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \ - 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \ - 0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \ - 0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \ - 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \ - 0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \ - 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \ - 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \ - 0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \ - 0xA4, 0x0E, 0x32, 0x9C, 0xD0, 0xE4, 0x0E, 0x65, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ + 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ + 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ + 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ + 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ + 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ + 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ + 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ + 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ + 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ + 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ + 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ + 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ + 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ + 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ + 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ + 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ + 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ + 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ + 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ + 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ + 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ + 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ + 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ + 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ + 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ + 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ + 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ + 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ + 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ + 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ + 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ + 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ + 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ + 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ + 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ + 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ + 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ + 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ + 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ + 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ + 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ + 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ + 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ + 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ + 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ + 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ + 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ + 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ + 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ + 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ + 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ + 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ + 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ + 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ + 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \ + 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \ + 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \ + 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \ + 0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \ + 0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \ + 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \ + 0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \ + 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \ + 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \ + 0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \ + 0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \ + 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \ + 0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \ + 0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \ + 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \ + 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \ + 0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \ + 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \ + 0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \ + 0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \ + 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \ + 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \ + 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \ + 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \ + 0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \ + 0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \ + 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \ + 0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \ + 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \ + 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \ + 0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \ + 0xA4, 0x0E, 0x32, 0x9C, 0xD0, 0xE4, 0x0E, 0x65, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC7919_FFDHE6144_G_BIN { 0x02 } #define MBEDTLS_DHM_RFC7919_FFDHE8192_P_BIN { \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ - 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ - 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ - 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ - 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ - 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ - 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ - 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ - 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ - 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ - 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ - 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ - 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ - 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ - 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ - 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ - 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ - 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ - 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ - 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ - 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ - 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ - 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ - 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ - 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ - 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ - 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ - 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ - 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ - 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ - 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ - 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ - 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ - 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ - 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ - 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ - 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ - 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ - 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ - 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ - 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ - 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ - 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ - 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ - 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ - 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ - 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ - 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ - 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ - 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ - 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ - 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ - 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ - 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ - 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ - 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ - 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ - 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ - 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ - 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ - 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ - 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ - 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \ - 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \ - 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \ - 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \ - 0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \ - 0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \ - 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \ - 0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \ - 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \ - 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \ - 0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \ - 0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \ - 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \ - 0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \ - 0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \ - 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \ - 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \ - 0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \ - 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \ - 0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \ - 0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \ - 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \ - 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \ - 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \ - 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \ - 0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \ - 0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \ - 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \ - 0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \ - 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \ - 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \ - 0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \ - 0xA4, 0x0E, 0x32, 0x9C, 0xCF, 0xF4, 0x6A, 0xAA, \ - 0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38, \ - 0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, \ - 0xFD, 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43, \ - 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E, \ - 0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, \ - 0x86, 0xB6, 0x31, 0x42, 0xA3, 0xAB, 0x88, 0x29, \ - 0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65, \ - 0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, \ - 0x29, 0x38, 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, \ - 0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82, \ - 0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, \ - 0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD, 0x82, 0x51, \ - 0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22, \ - 0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, \ - 0x51, 0xA8, 0xA9, 0x31, 0x09, 0x70, 0x3F, 0xEE, \ - 0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, \ - 0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, \ - 0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21, 0x7B, \ - 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9, \ - 0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, \ - 0xA1, 0xFE, 0x30, 0x75, 0xA5, 0x77, 0xE2, 0x31, \ - 0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57, \ - 0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, \ - 0xB6, 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E, \ - 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30, \ - 0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, \ - 0x2F, 0x74, 0x1E, 0xF8, 0xC1, 0xFE, 0x86, 0xFE, \ - 0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D, \ - 0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, \ - 0x08, 0x22, 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, \ - 0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C, \ - 0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, \ - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, \ + 0xAD, 0xF8, 0x54, 0x58, 0xA2, 0xBB, 0x4A, 0x9A, \ + 0xAF, 0xDC, 0x56, 0x20, 0x27, 0x3D, 0x3C, 0xF1, \ + 0xD8, 0xB9, 0xC5, 0x83, 0xCE, 0x2D, 0x36, 0x95, \ + 0xA9, 0xE1, 0x36, 0x41, 0x14, 0x64, 0x33, 0xFB, \ + 0xCC, 0x93, 0x9D, 0xCE, 0x24, 0x9B, 0x3E, 0xF9, \ + 0x7D, 0x2F, 0xE3, 0x63, 0x63, 0x0C, 0x75, 0xD8, \ + 0xF6, 0x81, 0xB2, 0x02, 0xAE, 0xC4, 0x61, 0x7A, \ + 0xD3, 0xDF, 0x1E, 0xD5, 0xD5, 0xFD, 0x65, 0x61, \ + 0x24, 0x33, 0xF5, 0x1F, 0x5F, 0x06, 0x6E, 0xD0, \ + 0x85, 0x63, 0x65, 0x55, 0x3D, 0xED, 0x1A, 0xF3, \ + 0xB5, 0x57, 0x13, 0x5E, 0x7F, 0x57, 0xC9, 0x35, \ + 0x98, 0x4F, 0x0C, 0x70, 0xE0, 0xE6, 0x8B, 0x77, \ + 0xE2, 0xA6, 0x89, 0xDA, 0xF3, 0xEF, 0xE8, 0x72, \ + 0x1D, 0xF1, 0x58, 0xA1, 0x36, 0xAD, 0xE7, 0x35, \ + 0x30, 0xAC, 0xCA, 0x4F, 0x48, 0x3A, 0x79, 0x7A, \ + 0xBC, 0x0A, 0xB1, 0x82, 0xB3, 0x24, 0xFB, 0x61, \ + 0xD1, 0x08, 0xA9, 0x4B, 0xB2, 0xC8, 0xE3, 0xFB, \ + 0xB9, 0x6A, 0xDA, 0xB7, 0x60, 0xD7, 0xF4, 0x68, \ + 0x1D, 0x4F, 0x42, 0xA3, 0xDE, 0x39, 0x4D, 0xF4, \ + 0xAE, 0x56, 0xED, 0xE7, 0x63, 0x72, 0xBB, 0x19, \ + 0x0B, 0x07, 0xA7, 0xC8, 0xEE, 0x0A, 0x6D, 0x70, \ + 0x9E, 0x02, 0xFC, 0xE1, 0xCD, 0xF7, 0xE2, 0xEC, \ + 0xC0, 0x34, 0x04, 0xCD, 0x28, 0x34, 0x2F, 0x61, \ + 0x91, 0x72, 0xFE, 0x9C, 0xE9, 0x85, 0x83, 0xFF, \ + 0x8E, 0x4F, 0x12, 0x32, 0xEE, 0xF2, 0x81, 0x83, \ + 0xC3, 0xFE, 0x3B, 0x1B, 0x4C, 0x6F, 0xAD, 0x73, \ + 0x3B, 0xB5, 0xFC, 0xBC, 0x2E, 0xC2, 0x20, 0x05, \ + 0xC5, 0x8E, 0xF1, 0x83, 0x7D, 0x16, 0x83, 0xB2, \ + 0xC6, 0xF3, 0x4A, 0x26, 0xC1, 0xB2, 0xEF, 0xFA, \ + 0x88, 0x6B, 0x42, 0x38, 0x61, 0x1F, 0xCF, 0xDC, \ + 0xDE, 0x35, 0x5B, 0x3B, 0x65, 0x19, 0x03, 0x5B, \ + 0xBC, 0x34, 0xF4, 0xDE, 0xF9, 0x9C, 0x02, 0x38, \ + 0x61, 0xB4, 0x6F, 0xC9, 0xD6, 0xE6, 0xC9, 0x07, \ + 0x7A, 0xD9, 0x1D, 0x26, 0x91, 0xF7, 0xF7, 0xEE, \ + 0x59, 0x8C, 0xB0, 0xFA, 0xC1, 0x86, 0xD9, 0x1C, \ + 0xAE, 0xFE, 0x13, 0x09, 0x85, 0x13, 0x92, 0x70, \ + 0xB4, 0x13, 0x0C, 0x93, 0xBC, 0x43, 0x79, 0x44, \ + 0xF4, 0xFD, 0x44, 0x52, 0xE2, 0xD7, 0x4D, 0xD3, \ + 0x64, 0xF2, 0xE2, 0x1E, 0x71, 0xF5, 0x4B, 0xFF, \ + 0x5C, 0xAE, 0x82, 0xAB, 0x9C, 0x9D, 0xF6, 0x9E, \ + 0xE8, 0x6D, 0x2B, 0xC5, 0x22, 0x36, 0x3A, 0x0D, \ + 0xAB, 0xC5, 0x21, 0x97, 0x9B, 0x0D, 0xEA, 0xDA, \ + 0x1D, 0xBF, 0x9A, 0x42, 0xD5, 0xC4, 0x48, 0x4E, \ + 0x0A, 0xBC, 0xD0, 0x6B, 0xFA, 0x53, 0xDD, 0xEF, \ + 0x3C, 0x1B, 0x20, 0xEE, 0x3F, 0xD5, 0x9D, 0x7C, \ + 0x25, 0xE4, 0x1D, 0x2B, 0x66, 0x9E, 0x1E, 0xF1, \ + 0x6E, 0x6F, 0x52, 0xC3, 0x16, 0x4D, 0xF4, 0xFB, \ + 0x79, 0x30, 0xE9, 0xE4, 0xE5, 0x88, 0x57, 0xB6, \ + 0xAC, 0x7D, 0x5F, 0x42, 0xD6, 0x9F, 0x6D, 0x18, \ + 0x77, 0x63, 0xCF, 0x1D, 0x55, 0x03, 0x40, 0x04, \ + 0x87, 0xF5, 0x5B, 0xA5, 0x7E, 0x31, 0xCC, 0x7A, \ + 0x71, 0x35, 0xC8, 0x86, 0xEF, 0xB4, 0x31, 0x8A, \ + 0xED, 0x6A, 0x1E, 0x01, 0x2D, 0x9E, 0x68, 0x32, \ + 0xA9, 0x07, 0x60, 0x0A, 0x91, 0x81, 0x30, 0xC4, \ + 0x6D, 0xC7, 0x78, 0xF9, 0x71, 0xAD, 0x00, 0x38, \ + 0x09, 0x29, 0x99, 0xA3, 0x33, 0xCB, 0x8B, 0x7A, \ + 0x1A, 0x1D, 0xB9, 0x3D, 0x71, 0x40, 0x00, 0x3C, \ + 0x2A, 0x4E, 0xCE, 0xA9, 0xF9, 0x8D, 0x0A, 0xCC, \ + 0x0A, 0x82, 0x91, 0xCD, 0xCE, 0xC9, 0x7D, 0xCF, \ + 0x8E, 0xC9, 0xB5, 0x5A, 0x7F, 0x88, 0xA4, 0x6B, \ + 0x4D, 0xB5, 0xA8, 0x51, 0xF4, 0x41, 0x82, 0xE1, \ + 0xC6, 0x8A, 0x00, 0x7E, 0x5E, 0x0D, 0xD9, 0x02, \ + 0x0B, 0xFD, 0x64, 0xB6, 0x45, 0x03, 0x6C, 0x7A, \ + 0x4E, 0x67, 0x7D, 0x2C, 0x38, 0x53, 0x2A, 0x3A, \ + 0x23, 0xBA, 0x44, 0x42, 0xCA, 0xF5, 0x3E, 0xA6, \ + 0x3B, 0xB4, 0x54, 0x32, 0x9B, 0x76, 0x24, 0xC8, \ + 0x91, 0x7B, 0xDD, 0x64, 0xB1, 0xC0, 0xFD, 0x4C, \ + 0xB3, 0x8E, 0x8C, 0x33, 0x4C, 0x70, 0x1C, 0x3A, \ + 0xCD, 0xAD, 0x06, 0x57, 0xFC, 0xCF, 0xEC, 0x71, \ + 0x9B, 0x1F, 0x5C, 0x3E, 0x4E, 0x46, 0x04, 0x1F, \ + 0x38, 0x81, 0x47, 0xFB, 0x4C, 0xFD, 0xB4, 0x77, \ + 0xA5, 0x24, 0x71, 0xF7, 0xA9, 0xA9, 0x69, 0x10, \ + 0xB8, 0x55, 0x32, 0x2E, 0xDB, 0x63, 0x40, 0xD8, \ + 0xA0, 0x0E, 0xF0, 0x92, 0x35, 0x05, 0x11, 0xE3, \ + 0x0A, 0xBE, 0xC1, 0xFF, 0xF9, 0xE3, 0xA2, 0x6E, \ + 0x7F, 0xB2, 0x9F, 0x8C, 0x18, 0x30, 0x23, 0xC3, \ + 0x58, 0x7E, 0x38, 0xDA, 0x00, 0x77, 0xD9, 0xB4, \ + 0x76, 0x3E, 0x4E, 0x4B, 0x94, 0xB2, 0xBB, 0xC1, \ + 0x94, 0xC6, 0x65, 0x1E, 0x77, 0xCA, 0xF9, 0x92, \ + 0xEE, 0xAA, 0xC0, 0x23, 0x2A, 0x28, 0x1B, 0xF6, \ + 0xB3, 0xA7, 0x39, 0xC1, 0x22, 0x61, 0x16, 0x82, \ + 0x0A, 0xE8, 0xDB, 0x58, 0x47, 0xA6, 0x7C, 0xBE, \ + 0xF9, 0xC9, 0x09, 0x1B, 0x46, 0x2D, 0x53, 0x8C, \ + 0xD7, 0x2B, 0x03, 0x74, 0x6A, 0xE7, 0x7F, 0x5E, \ + 0x62, 0x29, 0x2C, 0x31, 0x15, 0x62, 0xA8, 0x46, \ + 0x50, 0x5D, 0xC8, 0x2D, 0xB8, 0x54, 0x33, 0x8A, \ + 0xE4, 0x9F, 0x52, 0x35, 0xC9, 0x5B, 0x91, 0x17, \ + 0x8C, 0xCF, 0x2D, 0xD5, 0xCA, 0xCE, 0xF4, 0x03, \ + 0xEC, 0x9D, 0x18, 0x10, 0xC6, 0x27, 0x2B, 0x04, \ + 0x5B, 0x3B, 0x71, 0xF9, 0xDC, 0x6B, 0x80, 0xD6, \ + 0x3F, 0xDD, 0x4A, 0x8E, 0x9A, 0xDB, 0x1E, 0x69, \ + 0x62, 0xA6, 0x95, 0x26, 0xD4, 0x31, 0x61, 0xC1, \ + 0xA4, 0x1D, 0x57, 0x0D, 0x79, 0x38, 0xDA, 0xD4, \ + 0xA4, 0x0E, 0x32, 0x9C, 0xCF, 0xF4, 0x6A, 0xAA, \ + 0x36, 0xAD, 0x00, 0x4C, 0xF6, 0x00, 0xC8, 0x38, \ + 0x1E, 0x42, 0x5A, 0x31, 0xD9, 0x51, 0xAE, 0x64, \ + 0xFD, 0xB2, 0x3F, 0xCE, 0xC9, 0x50, 0x9D, 0x43, \ + 0x68, 0x7F, 0xEB, 0x69, 0xED, 0xD1, 0xCC, 0x5E, \ + 0x0B, 0x8C, 0xC3, 0xBD, 0xF6, 0x4B, 0x10, 0xEF, \ + 0x86, 0xB6, 0x31, 0x42, 0xA3, 0xAB, 0x88, 0x29, \ + 0x55, 0x5B, 0x2F, 0x74, 0x7C, 0x93, 0x26, 0x65, \ + 0xCB, 0x2C, 0x0F, 0x1C, 0xC0, 0x1B, 0xD7, 0x02, \ + 0x29, 0x38, 0x88, 0x39, 0xD2, 0xAF, 0x05, 0xE4, \ + 0x54, 0x50, 0x4A, 0xC7, 0x8B, 0x75, 0x82, 0x82, \ + 0x28, 0x46, 0xC0, 0xBA, 0x35, 0xC3, 0x5F, 0x5C, \ + 0x59, 0x16, 0x0C, 0xC0, 0x46, 0xFD, 0x82, 0x51, \ + 0x54, 0x1F, 0xC6, 0x8C, 0x9C, 0x86, 0xB0, 0x22, \ + 0xBB, 0x70, 0x99, 0x87, 0x6A, 0x46, 0x0E, 0x74, \ + 0x51, 0xA8, 0xA9, 0x31, 0x09, 0x70, 0x3F, 0xEE, \ + 0x1C, 0x21, 0x7E, 0x6C, 0x38, 0x26, 0xE5, 0x2C, \ + 0x51, 0xAA, 0x69, 0x1E, 0x0E, 0x42, 0x3C, 0xFC, \ + 0x99, 0xE9, 0xE3, 0x16, 0x50, 0xC1, 0x21, 0x7B, \ + 0x62, 0x48, 0x16, 0xCD, 0xAD, 0x9A, 0x95, 0xF9, \ + 0xD5, 0xB8, 0x01, 0x94, 0x88, 0xD9, 0xC0, 0xA0, \ + 0xA1, 0xFE, 0x30, 0x75, 0xA5, 0x77, 0xE2, 0x31, \ + 0x83, 0xF8, 0x1D, 0x4A, 0x3F, 0x2F, 0xA4, 0x57, \ + 0x1E, 0xFC, 0x8C, 0xE0, 0xBA, 0x8A, 0x4F, 0xE8, \ + 0xB6, 0x85, 0x5D, 0xFE, 0x72, 0xB0, 0xA6, 0x6E, \ + 0xDE, 0xD2, 0xFB, 0xAB, 0xFB, 0xE5, 0x8A, 0x30, \ + 0xFA, 0xFA, 0xBE, 0x1C, 0x5D, 0x71, 0xA8, 0x7E, \ + 0x2F, 0x74, 0x1E, 0xF8, 0xC1, 0xFE, 0x86, 0xFE, \ + 0xA6, 0xBB, 0xFD, 0xE5, 0x30, 0x67, 0x7F, 0x0D, \ + 0x97, 0xD1, 0x1D, 0x49, 0xF7, 0xA8, 0x44, 0x3D, \ + 0x08, 0x22, 0xE5, 0x06, 0xA9, 0xF4, 0x61, 0x4E, \ + 0x01, 0x1E, 0x2A, 0x94, 0x83, 0x8F, 0xF8, 0x8C, \ + 0xD6, 0x8C, 0x8B, 0xB7, 0xC5, 0xC6, 0x42, 0x4C, \ + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } #define MBEDTLS_DHM_RFC7919_FFDHE8192_G_BIN { 0x02 } diff --git a/include/mbedtls/ecdh.h b/include/mbedtls/ecdh.h index 7fa7440a5..67c94f0fa 100644 --- a/include/mbedtls/ecdh.h +++ b/include/mbedtls/ecdh.h @@ -68,8 +68,7 @@ extern "C" { /** * Defines the source of the imported EC key. */ -typedef enum -{ +typedef enum { MBEDTLS_ECDH_OURS, /**< Our key. */ MBEDTLS_ECDH_THEIRS, /**< The key of the peer. */ } mbedtls_ecdh_side; @@ -81,8 +80,7 @@ typedef enum * Later versions of the library may add new variants, therefore users should * not make any assumptions about them. */ -typedef enum -{ +typedef enum { MBEDTLS_ECDH_VARIANT_NONE = 0, /*!< Implementation not defined. */ MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0,/*!< The default Mbed TLS implementation */ #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) @@ -97,8 +95,7 @@ typedef enum * should not make any assumptions about the structure of * mbedtls_ecdh_context_mbed. */ -typedef struct mbedtls_ecdh_context_mbed -{ +typedef struct mbedtls_ecdh_context_mbed { mbedtls_ecp_group MBEDTLS_PRIVATE(grp); /*!< The elliptic curve used. */ mbedtls_mpi MBEDTLS_PRIVATE(d); /*!< The private key. */ mbedtls_ecp_point MBEDTLS_PRIVATE(Q); /*!< The public key. */ @@ -117,8 +114,7 @@ typedef struct mbedtls_ecdh_context_mbed * should not be shared between multiple threads. * \brief The ECDH context structure. */ -typedef struct mbedtls_ecdh_context -{ +typedef struct mbedtls_ecdh_context { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) mbedtls_ecp_group MBEDTLS_PRIVATE(grp); /*!< The elliptic curve used. */ mbedtls_mpi MBEDTLS_PRIVATE(d); /*!< The private key. */ @@ -135,24 +131,23 @@ typedef struct mbedtls_ecdh_context #endif /* MBEDTLS_ECP_RESTARTABLE */ #else uint8_t MBEDTLS_PRIVATE(point_format); /*!< The format of point export in TLS messages - as defined in RFC 4492. */ + as defined in RFC 4492. */ mbedtls_ecp_group_id MBEDTLS_PRIVATE(grp_id);/*!< The elliptic curve used. */ mbedtls_ecdh_variant MBEDTLS_PRIVATE(var); /*!< The ECDH implementation/structure used. */ - union - { + union { mbedtls_ecdh_context_mbed MBEDTLS_PRIVATE(mbed_ecdh); #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) mbedtls_ecdh_context_everest MBEDTLS_PRIVATE(everest_ecdh); #endif } MBEDTLS_PRIVATE(ctx); /*!< Implementation-specific context. The - context in use is specified by the \c var - field. */ + context in use is specified by the \c var + field. */ #if defined(MBEDTLS_ECP_RESTARTABLE) uint8_t MBEDTLS_PRIVATE(restart_enabled); /*!< The flag for restartable mode. Functions of - an alternative implementation not supporting - restartable mode must return - MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED error - if this flag is set. */ + an alternative implementation not supporting + restartable mode must return + MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED error + if this flag is set. */ #endif /* MBEDTLS_ECP_RESTARTABLE */ #endif /* MBEDTLS_ECDH_LEGACY_CONTEXT */ } @@ -165,7 +160,7 @@ mbedtls_ecdh_context; * * \return \c 1 if the group can be used, \c 0 otherwise */ -int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid ); +int mbedtls_ecdh_can_do(mbedtls_ecp_group_id gid); /** * \brief This function generates an ECDH keypair on an elliptic @@ -192,9 +187,9 @@ int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid ); * \return Another \c MBEDTLS_ERR_ECP_XXX or * \c MBEDTLS_MPI_XXX error code on failure. */ -int mbedtls_ecdh_gen_public( mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function computes the shared secret. @@ -227,17 +222,17 @@ int mbedtls_ecdh_gen_public( mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp * \return Another \c MBEDTLS_ERR_ECP_XXX or * \c MBEDTLS_MPI_XXX error code on failure. */ -int mbedtls_ecdh_compute_shared( mbedtls_ecp_group *grp, mbedtls_mpi *z, - const mbedtls_ecp_point *Q, const mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z, + const mbedtls_ecp_point *Q, const mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function initializes an ECDH context. * * \param ctx The ECDH context to initialize. This must not be \c NULL. */ -void mbedtls_ecdh_init( mbedtls_ecdh_context *ctx ); +void mbedtls_ecdh_init(mbedtls_ecdh_context *ctx); /** * \brief This function sets up the ECDH context with the information @@ -255,8 +250,8 @@ void mbedtls_ecdh_init( mbedtls_ecdh_context *ctx ); * * \return \c 0 on success. */ -int mbedtls_ecdh_setup( mbedtls_ecdh_context *ctx, - mbedtls_ecp_group_id grp_id ); +int mbedtls_ecdh_setup(mbedtls_ecdh_context *ctx, + mbedtls_ecp_group_id grp_id); /** * \brief This function frees a context. @@ -265,7 +260,7 @@ int mbedtls_ecdh_setup( mbedtls_ecdh_context *ctx, * case this function does nothing. If it is not \c NULL, * it must point to an initialized ECDH context. */ -void mbedtls_ecdh_free( mbedtls_ecdh_context *ctx ); +void mbedtls_ecdh_free(mbedtls_ecdh_context *ctx); /** * \brief This function generates an EC key pair and exports its @@ -292,10 +287,10 @@ void mbedtls_ecdh_free( mbedtls_ecdh_context *ctx ); * operations was reached: see \c mbedtls_ecp_set_max_ops(). * \return Another \c MBEDTLS_ERR_ECP_XXX error code on failure. */ -int mbedtls_ecdh_make_params( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdh_make_params(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function parses the ECDHE parameters in a @@ -321,9 +316,9 @@ int mbedtls_ecdh_make_params( mbedtls_ecdh_context *ctx, size_t *olen, * \return An \c MBEDTLS_ERR_ECP_XXX error code on failure. * */ -int mbedtls_ecdh_read_params( mbedtls_ecdh_context *ctx, - const unsigned char **buf, - const unsigned char *end ); +int mbedtls_ecdh_read_params(mbedtls_ecdh_context *ctx, + const unsigned char **buf, + const unsigned char *end); /** * \brief This function sets up an ECDH context from an EC key. @@ -344,9 +339,9 @@ int mbedtls_ecdh_read_params( mbedtls_ecdh_context *ctx, * \return Another \c MBEDTLS_ERR_ECP_XXX error code on failure. * */ -int mbedtls_ecdh_get_params( mbedtls_ecdh_context *ctx, - const mbedtls_ecp_keypair *key, - mbedtls_ecdh_side side ); +int mbedtls_ecdh_get_params(mbedtls_ecdh_context *ctx, + const mbedtls_ecp_keypair *key, + mbedtls_ecdh_side side); /** * \brief This function generates a public key and exports it @@ -374,10 +369,10 @@ int mbedtls_ecdh_get_params( mbedtls_ecdh_context *ctx, * operations was reached: see \c mbedtls_ecp_set_max_ops(). * \return Another \c MBEDTLS_ERR_ECP_XXX error code on failure. */ -int mbedtls_ecdh_make_public( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdh_make_public(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function parses and processes the ECDHE payload of a @@ -398,8 +393,8 @@ int mbedtls_ecdh_make_public( mbedtls_ecdh_context *ctx, size_t *olen, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_ECP_XXX error code on failure. */ -int mbedtls_ecdh_read_public( mbedtls_ecdh_context *ctx, - const unsigned char *buf, size_t blen ); +int mbedtls_ecdh_read_public(mbedtls_ecdh_context *ctx, + const unsigned char *buf, size_t blen); /** * \brief This function derives and exports the shared secret. @@ -430,10 +425,10 @@ int mbedtls_ecdh_read_public( mbedtls_ecdh_context *ctx, * operations was reached: see \c mbedtls_ecp_set_max_ops(). * \return Another \c MBEDTLS_ERR_ECP_XXX error code on failure. */ -int mbedtls_ecdh_calc_secret( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdh_calc_secret(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #if defined(MBEDTLS_ECP_RESTARTABLE) /** @@ -448,7 +443,7 @@ int mbedtls_ecdh_calc_secret( mbedtls_ecdh_context *ctx, size_t *olen, * * \param ctx The ECDH context to use. This must be initialized. */ -void mbedtls_ecdh_enable_restart( mbedtls_ecdh_context *ctx ); +void mbedtls_ecdh_enable_restart(mbedtls_ecdh_context *ctx); #endif /* MBEDTLS_ECP_RESTARTABLE */ #ifdef __cplusplus diff --git a/include/mbedtls/ecdsa.h b/include/mbedtls/ecdsa.h index 967f07b9b..0a420400d 100644 --- a/include/mbedtls/ecdsa.h +++ b/include/mbedtls/ecdsa.h @@ -53,13 +53,13 @@ * * For each of r and s, the value (V) may include an extra initial "0" bit. */ -#define MBEDTLS_ECDSA_MAX_SIG_LEN( bits ) \ - ( /*T,L of SEQUENCE*/ ( ( bits ) >= 61 * 8 ? 3 : 2 ) + \ - /*T,L of r,s*/ 2 * ( ( ( bits ) >= 127 * 8 ? 3 : 2 ) + \ - /*V of r,s*/ ( ( bits ) + 8 ) / 8 ) ) +#define MBEDTLS_ECDSA_MAX_SIG_LEN(bits) \ + (/*T,L of SEQUENCE*/ ((bits) >= 61 * 8 ? 3 : 2) + \ + /*T,L of r,s*/ 2 * (((bits) >= 127 * 8 ? 3 : 2) + \ + /*V of r,s*/ ((bits) + 8) / 8)) /** The maximal size of an ECDSA signature in Bytes. */ -#define MBEDTLS_ECDSA_MAX_LEN MBEDTLS_ECDSA_MAX_SIG_LEN( MBEDTLS_ECP_MAX_BITS ) +#define MBEDTLS_ECDSA_MAX_LEN MBEDTLS_ECDSA_MAX_SIG_LEN(MBEDTLS_ECP_MAX_BITS) #ifdef __cplusplus extern "C" { @@ -102,10 +102,9 @@ typedef struct mbedtls_ecdsa_restart_det mbedtls_ecdsa_restart_det_ctx; /** * \brief General context for resuming ECDSA operations */ -typedef struct -{ +typedef struct { mbedtls_ecp_restart_ctx MBEDTLS_PRIVATE(ecp); /*!< base context for ECP restart and - shared administrative info */ + shared administrative info */ mbedtls_ecdsa_restart_ver_ctx *MBEDTLS_PRIVATE(ver); /*!< ecdsa_verify() sub-context */ mbedtls_ecdsa_restart_sig_ctx *MBEDTLS_PRIVATE(sig); /*!< ecdsa_sign() sub-context */ #if defined(MBEDTLS_ECDSA_DETERMINISTIC) @@ -128,7 +127,7 @@ typedef void mbedtls_ecdsa_restart_ctx; * * \return \c 1 if the group can be used, \c 0 otherwise */ -int mbedtls_ecdsa_can_do( mbedtls_ecp_group_id gid ); +int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid); /** * \brief This function computes the ECDSA signature of a @@ -166,9 +165,9 @@ int mbedtls_ecdsa_can_do( mbedtls_ecp_group_id gid ); * \return An \c MBEDTLS_ERR_ECP_XXX * or \c MBEDTLS_MPI_XXX error code on failure. */ -int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, - const mbedtls_mpi *d, const unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, + const mbedtls_mpi *d, const unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); #if defined(MBEDTLS_ECDSA_DETERMINISTIC) /** @@ -210,12 +209,12 @@ int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX * error code on failure. */ -int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, - mbedtls_mpi *s, const mbedtls_mpi *d, - const unsigned char *buf, size_t blen, - mbedtls_md_type_t md_alg, - int (*f_rng_blind)(void *, unsigned char *, size_t), - void *p_rng_blind ); +int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r, + mbedtls_mpi *s, const mbedtls_mpi *d, + const unsigned char *buf, size_t blen, + mbedtls_md_type_t md_alg, + int (*f_rng_blind)(void *, unsigned char *, size_t), + void *p_rng_blind); #endif /* MBEDTLS_ECDSA_DETERMINISTIC */ /** @@ -248,10 +247,10 @@ int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX * error code on failure. */ -int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp, - const unsigned char *buf, size_t blen, - const mbedtls_ecp_point *Q, const mbedtls_mpi *r, - const mbedtls_mpi *s); +int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp, + const unsigned char *buf, size_t blen, + const mbedtls_ecp_point *Q, const mbedtls_mpi *r, + const mbedtls_mpi *s); /** * \brief This function computes the ECDSA signature and writes it @@ -302,12 +301,12 @@ int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp, * \return An \c MBEDTLS_ERR_ECP_XXX, \c MBEDTLS_ERR_MPI_XXX or * \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_ecdsa_write_signature( mbedtls_ecdsa_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hlen, - unsigned char *sig, size_t sig_size, size_t *slen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecdsa_write_signature(mbedtls_ecdsa_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hlen, + unsigned char *sig, size_t sig_size, size_t *slen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function computes the ECDSA signature and writes it @@ -349,13 +348,13 @@ int mbedtls_ecdsa_write_signature( mbedtls_ecdsa_context *ctx, * \return Another \c MBEDTLS_ERR_ECP_XXX, \c MBEDTLS_ERR_MPI_XXX or * \c MBEDTLS_ERR_ASN1_XXX error code on failure. */ -int mbedtls_ecdsa_write_signature_restartable( mbedtls_ecdsa_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hlen, - unsigned char *sig, size_t sig_size, size_t *slen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecdsa_restart_ctx *rs_ctx ); +int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hlen, + unsigned char *sig, size_t sig_size, size_t *slen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecdsa_restart_ctx *rs_ctx); /** * \brief This function reads and verifies an ECDSA signature. @@ -384,9 +383,9 @@ int mbedtls_ecdsa_write_signature_restartable( mbedtls_ecdsa_context *ctx, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_ERR_MPI_XXX * error code on failure for any other reason. */ -int mbedtls_ecdsa_read_signature( mbedtls_ecdsa_context *ctx, - const unsigned char *hash, size_t hlen, - const unsigned char *sig, size_t slen ); +int mbedtls_ecdsa_read_signature(mbedtls_ecdsa_context *ctx, + const unsigned char *hash, size_t hlen, + const unsigned char *sig, size_t slen); /** * \brief This function reads and verifies an ECDSA signature, @@ -419,10 +418,10 @@ int mbedtls_ecdsa_read_signature( mbedtls_ecdsa_context *ctx, * \return Another \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_ERR_MPI_XXX * error code on failure for any other reason. */ -int mbedtls_ecdsa_read_signature_restartable( mbedtls_ecdsa_context *ctx, - const unsigned char *hash, size_t hlen, - const unsigned char *sig, size_t slen, - mbedtls_ecdsa_restart_ctx *rs_ctx ); +int mbedtls_ecdsa_read_signature_restartable(mbedtls_ecdsa_context *ctx, + const unsigned char *hash, size_t hlen, + const unsigned char *sig, size_t slen, + mbedtls_ecdsa_restart_ctx *rs_ctx); /** * \brief This function generates an ECDSA keypair on the given curve. @@ -440,8 +439,8 @@ int mbedtls_ecdsa_read_signature_restartable( mbedtls_ecdsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_ECP_XXX code on failure. */ -int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** * \brief This function sets up an ECDSA context from an EC key pair. @@ -458,8 +457,8 @@ int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_ECP_XXX code on failure. */ -int mbedtls_ecdsa_from_keypair( mbedtls_ecdsa_context *ctx, - const mbedtls_ecp_keypair *key ); +int mbedtls_ecdsa_from_keypair(mbedtls_ecdsa_context *ctx, + const mbedtls_ecp_keypair *key); /** * \brief This function initializes an ECDSA context. @@ -467,7 +466,7 @@ int mbedtls_ecdsa_from_keypair( mbedtls_ecdsa_context *ctx, * \param ctx The ECDSA context to initialize. * This must not be \c NULL. */ -void mbedtls_ecdsa_init( mbedtls_ecdsa_context *ctx ); +void mbedtls_ecdsa_init(mbedtls_ecdsa_context *ctx); /** * \brief This function frees an ECDSA context. @@ -476,7 +475,7 @@ void mbedtls_ecdsa_init( mbedtls_ecdsa_context *ctx ); * in which case this function does nothing. If it * is not \c NULL, it must be initialized. */ -void mbedtls_ecdsa_free( mbedtls_ecdsa_context *ctx ); +void mbedtls_ecdsa_free(mbedtls_ecdsa_context *ctx); #if defined(MBEDTLS_ECP_RESTARTABLE) /** @@ -485,7 +484,7 @@ void mbedtls_ecdsa_free( mbedtls_ecdsa_context *ctx ); * \param ctx The restart context to initialize. * This must not be \c NULL. */ -void mbedtls_ecdsa_restart_init( mbedtls_ecdsa_restart_ctx *ctx ); +void mbedtls_ecdsa_restart_init(mbedtls_ecdsa_restart_ctx *ctx); /** * \brief Free the components of a restart context. @@ -494,7 +493,7 @@ void mbedtls_ecdsa_restart_init( mbedtls_ecdsa_restart_ctx *ctx ); * in which case this function does nothing. If it * is not \c NULL, it must be initialized. */ -void mbedtls_ecdsa_restart_free( mbedtls_ecdsa_restart_ctx *ctx ); +void mbedtls_ecdsa_restart_free(mbedtls_ecdsa_restart_ctx *ctx); #endif /* MBEDTLS_ECP_RESTARTABLE */ #ifdef __cplusplus diff --git a/include/mbedtls/ecjpake.h b/include/mbedtls/ecjpake.h index 3dd3361a1..a63bb32f3 100644 --- a/include/mbedtls/ecjpake.h +++ b/include/mbedtls/ecjpake.h @@ -68,8 +68,7 @@ typedef enum { * convention from the Thread v1.0 spec. Correspondence is indicated in the * description as a pair C: client name, S: server name */ -typedef struct mbedtls_ecjpake_context -{ +typedef struct mbedtls_ecjpake_context { mbedtls_md_type_t MBEDTLS_PRIVATE(md_type); /**< Hash to use */ mbedtls_ecp_group MBEDTLS_PRIVATE(grp); /**< Elliptic curve */ mbedtls_ecjpake_role MBEDTLS_PRIVATE(role); /**< Are we client or server? */ @@ -97,7 +96,7 @@ typedef struct mbedtls_ecjpake_context * \param ctx The ECJPAKE context to initialize. * This must not be \c NULL. */ -void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx ); +void mbedtls_ecjpake_init(mbedtls_ecjpake_context *ctx); /** * \brief Set up an ECJPAKE context for use. @@ -120,12 +119,12 @@ void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx ); * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx, - mbedtls_ecjpake_role role, - mbedtls_md_type_t hash, - mbedtls_ecp_group_id curve, - const unsigned char *secret, - size_t len ); +int mbedtls_ecjpake_setup(mbedtls_ecjpake_context *ctx, + mbedtls_ecjpake_role role, + mbedtls_md_type_t hash, + mbedtls_ecp_group_id curve, + const unsigned char *secret, + size_t len); /** * \brief Set the point format for future reads and writes. @@ -139,8 +138,8 @@ int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx, * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if \p point_format * is invalid. */ -int mbedtls_ecjpake_set_point_format( mbedtls_ecjpake_context *ctx, - int point_format ); +int mbedtls_ecjpake_set_point_format(mbedtls_ecjpake_context *ctx, + int point_format); /** * \brief Check if an ECJPAKE context is ready for use. @@ -151,7 +150,7 @@ int mbedtls_ecjpake_set_point_format( mbedtls_ecjpake_context *ctx, * \return \c 0 if the context is ready for use. * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA otherwise. */ -int mbedtls_ecjpake_check( const mbedtls_ecjpake_context *ctx ); +int mbedtls_ecjpake_check(const mbedtls_ecjpake_context *ctx); /** * \brief Generate and write the first round message @@ -172,10 +171,10 @@ int mbedtls_ecjpake_check( const mbedtls_ecjpake_context *ctx ); * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_write_round_one( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecjpake_write_round_one(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Read and process the first round message @@ -191,9 +190,9 @@ int mbedtls_ecjpake_write_round_one( mbedtls_ecjpake_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_read_round_one( mbedtls_ecjpake_context *ctx, - const unsigned char *buf, - size_t len ); +int mbedtls_ecjpake_read_round_one(mbedtls_ecjpake_context *ctx, + const unsigned char *buf, + size_t len); /** * \brief Generate and write the second round message @@ -213,10 +212,10 @@ int mbedtls_ecjpake_read_round_one( mbedtls_ecjpake_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecjpake_write_round_two(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Read and process the second round message @@ -231,9 +230,9 @@ int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, - const unsigned char *buf, - size_t len ); +int mbedtls_ecjpake_read_round_two(mbedtls_ecjpake_context *ctx, + const unsigned char *buf, + size_t len); /** * \brief Derive the shared secret @@ -253,10 +252,10 @@ int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecjpake_derive_secret(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Write the shared key material to be passed to a Key @@ -276,10 +275,10 @@ int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_ecjpake_write_shared_key( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecjpake_write_shared_key(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This clears an ECJPAKE context and frees any @@ -289,7 +288,7 @@ int mbedtls_ecjpake_write_shared_key( mbedtls_ecjpake_context *ctx, * in which case this function does nothing. If it is not * \c NULL, it must point to an initialized ECJPAKE context. */ -void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx ); +void mbedtls_ecjpake_free(mbedtls_ecjpake_context *ctx); #if defined(MBEDTLS_SELF_TEST) @@ -298,7 +297,7 @@ void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx ); * * \return 0 if successful, or 1 if a test failed */ -int mbedtls_ecjpake_self_test( int verbose ); +int mbedtls_ecjpake_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/ecp.h b/include/mbedtls/ecp.h index 0c1790d52..18b37a947 100644 --- a/include/mbedtls/ecp.h +++ b/include/mbedtls/ecp.h @@ -110,8 +110,7 @@ extern "C" { * - Add the curve to applicable profiles in x509_crt.c. * - Add the curve to applicable presets in ssl_tls.c. */ -typedef enum -{ +typedef enum { MBEDTLS_ECP_DP_NONE = 0, /*!< Curve not defined. */ MBEDTLS_ECP_DP_SECP192R1, /*!< Domain parameters for the 192-bit curve defined by FIPS 186-4 and SEC1. */ MBEDTLS_ECP_DP_SECP224R1, /*!< Domain parameters for the 224-bit curve defined by FIPS 186-4 and SEC1. */ @@ -136,8 +135,7 @@ typedef enum /* * Curve types */ -typedef enum -{ +typedef enum { MBEDTLS_ECP_TYPE_NONE = 0, MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS, /* y^2 = x^3 + a x + b */ MBEDTLS_ECP_TYPE_MONTGOMERY, /* y^2 = x^3 + a x^2 + x */ @@ -150,8 +148,7 @@ typedef enum * accessed directly by applications. Future versions of the library may * add extra fields or reorder existing fields. */ -typedef struct mbedtls_ecp_curve_info -{ +typedef struct mbedtls_ecp_curve_info { mbedtls_ecp_group_id grp_id; /*!< An internal identifier. */ uint16_t tls_id; /*!< The TLS NamedCurve identifier. */ uint16_t bit_size; /*!< The curve size in bits. */ @@ -169,8 +166,7 @@ typedef struct mbedtls_ecp_curve_info * Otherwise, \p X and \p Y are its standard (affine) * coordinates. */ -typedef struct mbedtls_ecp_point -{ +typedef struct mbedtls_ecp_point { mbedtls_mpi MBEDTLS_PRIVATE(X); /*!< The X coordinate of the ECP point. */ mbedtls_mpi MBEDTLS_PRIVATE(Y); /*!< The Y coordinate of the ECP point. */ mbedtls_mpi MBEDTLS_PRIVATE(Z); /*!< The Z coordinate of the ECP point. */ @@ -224,8 +220,7 @@ mbedtls_ecp_point; * of these fields does not need to be supported. * They do not need to be at the same offset in the structure. */ -typedef struct mbedtls_ecp_group -{ +typedef struct mbedtls_ecp_group { mbedtls_ecp_group_id id; /*!< An internal group identifier. */ mbedtls_mpi P; /*!< The prime modulus of the base field. */ mbedtls_mpi A; /*!< For Short Weierstrass: \p A in the equation. For @@ -241,10 +236,10 @@ typedef struct mbedtls_ecp_group /* End of public fields */ unsigned int MBEDTLS_PRIVATE(h); /*!< \internal 1 if the constants are static. */ - int (*MBEDTLS_PRIVATE(modp))(mbedtls_mpi *); /*!< The function for fast pseudo-reduction - mod \p P (see above).*/ - int (*MBEDTLS_PRIVATE(t_pre))(mbedtls_ecp_point *, void *); /*!< Unused. */ - int (*MBEDTLS_PRIVATE(t_post))(mbedtls_ecp_point *, void *); /*!< Unused. */ + int(*MBEDTLS_PRIVATE(modp))(mbedtls_mpi *); /*!< The function for fast pseudo-reduction + mod \p P (see above).*/ + int(*MBEDTLS_PRIVATE(t_pre))(mbedtls_ecp_point *, void *); /*!< Unused. */ + int(*MBEDTLS_PRIVATE(t_post))(mbedtls_ecp_point *, void *); /*!< Unused. */ void *MBEDTLS_PRIVATE(t_data); /*!< Unused. */ mbedtls_ecp_point *MBEDTLS_PRIVATE(T); /*!< Pre-computed points for ecp_mul_comb(). */ size_t MBEDTLS_PRIVATE(T_size); /*!< The number of dynamic allocated pre-computed points. */ @@ -343,8 +338,8 @@ mbedtls_ecp_group; #error "Missing definition of MBEDTLS_ECP_MAX_BITS" #endif -#define MBEDTLS_ECP_MAX_BYTES ( ( MBEDTLS_ECP_MAX_BITS + 7 ) / 8 ) -#define MBEDTLS_ECP_MAX_PT_LEN ( 2 * MBEDTLS_ECP_MAX_BYTES + 1 ) +#define MBEDTLS_ECP_MAX_BYTES ((MBEDTLS_ECP_MAX_BITS + 7) / 8) +#define MBEDTLS_ECP_MAX_PT_LEN (2 * MBEDTLS_ECP_MAX_BYTES + 1) #if defined(MBEDTLS_ECP_RESTARTABLE) @@ -365,8 +360,7 @@ typedef struct mbedtls_ecp_restart_muladd mbedtls_ecp_restart_muladd_ctx; /** * \brief General context for resuming ECC operations */ -typedef struct -{ +typedef struct { unsigned MBEDTLS_PRIVATE(ops_done); /*!< current ops count */ unsigned MBEDTLS_PRIVATE(depth); /*!< call depth (0 = top-level) */ mbedtls_ecp_restart_mul_ctx *MBEDTLS_PRIVATE(rsm); /*!< ecp_mul_comb() sub-context */ @@ -392,18 +386,18 @@ typedef struct * \return \c 0 if doing \p ops basic ops is still allowed, * \return #MBEDTLS_ERR_ECP_IN_PROGRESS otherwise. */ -int mbedtls_ecp_check_budget( const mbedtls_ecp_group *grp, - mbedtls_ecp_restart_ctx *rs_ctx, - unsigned ops ); +int mbedtls_ecp_check_budget(const mbedtls_ecp_group *grp, + mbedtls_ecp_restart_ctx *rs_ctx, + unsigned ops); /* Utility macro for checking and updating ops budget */ -#define MBEDTLS_ECP_BUDGET( ops ) \ - MBEDTLS_MPI_CHK( mbedtls_ecp_check_budget( grp, rs_ctx, \ - (unsigned) (ops) ) ); +#define MBEDTLS_ECP_BUDGET(ops) \ + MBEDTLS_MPI_CHK(mbedtls_ecp_check_budget(grp, rs_ctx, \ + (unsigned) (ops))); #else /* MBEDTLS_ECP_RESTARTABLE */ -#define MBEDTLS_ECP_BUDGET( ops ) /* no-op; for compatibility */ +#define MBEDTLS_ECP_BUDGET(ops) /* no-op; for compatibility */ /* We want to declare restartable versions of existing functions anyway */ typedef void mbedtls_ecp_restart_ctx; @@ -418,8 +412,7 @@ typedef void mbedtls_ecp_restart_ctx; * \note Members are deliberately in the same order as in the * ::mbedtls_ecdsa_context structure. */ -typedef struct mbedtls_ecp_keypair -{ +typedef struct mbedtls_ecp_keypair { mbedtls_ecp_group MBEDTLS_PRIVATE(grp); /*!< Elliptic curve and base point */ mbedtls_mpi MBEDTLS_PRIVATE(d); /*!< our secret value */ mbedtls_ecp_point MBEDTLS_PRIVATE(Q); /*!< our public value */ @@ -495,7 +488,7 @@ mbedtls_ecp_keypair; * * \note This setting is currently ignored by Curve25519. */ -void mbedtls_ecp_set_max_ops( unsigned max_ops ); +void mbedtls_ecp_set_max_ops(unsigned max_ops); /** * \brief Check if restart is enabled (max_ops != 0) @@ -503,13 +496,13 @@ void mbedtls_ecp_set_max_ops( unsigned max_ops ); * \return \c 0 if \c max_ops == 0 (restart disabled) * \return \c 1 otherwise (restart enabled) */ -int mbedtls_ecp_restart_is_enabled( void ); +int mbedtls_ecp_restart_is_enabled(void); #endif /* MBEDTLS_ECP_RESTARTABLE */ /* * Get the type of a curve */ -mbedtls_ecp_curve_type mbedtls_ecp_get_type( const mbedtls_ecp_group *grp ); +mbedtls_ecp_curve_type mbedtls_ecp_get_type(const mbedtls_ecp_group *grp); /** * \brief This function retrieves the information defined in @@ -523,7 +516,7 @@ mbedtls_ecp_curve_type mbedtls_ecp_get_type( const mbedtls_ecp_group *grp ); * * \return A statically allocated array. The last entry is 0. */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_list( void ); +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_list(void); /** * \brief This function retrieves the list of internal group @@ -539,7 +532,7 @@ const mbedtls_ecp_curve_info *mbedtls_ecp_curve_list( void ); * \return A statically allocated array, * terminated with MBEDTLS_ECP_DP_NONE. */ -const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list( void ); +const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list(void); /** * \brief This function retrieves curve information from an internal @@ -550,7 +543,7 @@ const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list( void ); * \return The associated curve information on success. * \return NULL on failure. */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_grp_id( mbedtls_ecp_group_id grp_id ); +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_grp_id(mbedtls_ecp_group_id grp_id); /** * \brief This function retrieves curve information from a TLS @@ -561,7 +554,7 @@ const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_grp_id( mbedtls_ecp_gr * \return The associated curve information on success. * \return NULL on failure. */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_tls_id( uint16_t tls_id ); +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_tls_id(uint16_t tls_id); /** * \brief This function retrieves curve information from a @@ -572,14 +565,14 @@ const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_tls_id( uint16_t tls_i * \return The associated curve information on success. * \return NULL on failure. */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_name( const char *name ); +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_name(const char *name); /** * \brief This function initializes a point as zero. * * \param pt The point to initialize. */ -void mbedtls_ecp_point_init( mbedtls_ecp_point *pt ); +void mbedtls_ecp_point_init(mbedtls_ecp_point *pt); /** * \brief This function initializes an ECP group context @@ -590,21 +583,21 @@ void mbedtls_ecp_point_init( mbedtls_ecp_point *pt ); * mbedtls_ecp_group_load() or mbedtls_ecp_tls_read_group() * functions. */ -void mbedtls_ecp_group_init( mbedtls_ecp_group *grp ); +void mbedtls_ecp_group_init(mbedtls_ecp_group *grp); /** * \brief This function initializes a key pair as an invalid one. * * \param key The key pair to initialize. */ -void mbedtls_ecp_keypair_init( mbedtls_ecp_keypair *key ); +void mbedtls_ecp_keypair_init(mbedtls_ecp_keypair *key); /** * \brief This function frees the components of a point. * * \param pt The point to free. */ -void mbedtls_ecp_point_free( mbedtls_ecp_point *pt ); +void mbedtls_ecp_point_free(mbedtls_ecp_point *pt); /** * \brief This function frees the components of an ECP group. @@ -613,7 +606,7 @@ void mbedtls_ecp_point_free( mbedtls_ecp_point *pt ); * case this function returns immediately. If it is not * \c NULL, it must point to an initialized ECP group. */ -void mbedtls_ecp_group_free( mbedtls_ecp_group *grp ); +void mbedtls_ecp_group_free(mbedtls_ecp_group *grp); /** * \brief This function frees the components of a key pair. @@ -622,7 +615,7 @@ void mbedtls_ecp_group_free( mbedtls_ecp_group *grp ); * case this function returns immediately. If it is not * \c NULL, it must point to an initialized ECP key pair. */ -void mbedtls_ecp_keypair_free( mbedtls_ecp_keypair *key ); +void mbedtls_ecp_keypair_free(mbedtls_ecp_keypair *key); #if defined(MBEDTLS_ECP_RESTARTABLE) /** @@ -631,7 +624,7 @@ void mbedtls_ecp_keypair_free( mbedtls_ecp_keypair *key ); * \param ctx The restart context to initialize. This must * not be \c NULL. */ -void mbedtls_ecp_restart_init( mbedtls_ecp_restart_ctx *ctx ); +void mbedtls_ecp_restart_init(mbedtls_ecp_restart_ctx *ctx); /** * \brief Free the components of a restart context. @@ -640,7 +633,7 @@ void mbedtls_ecp_restart_init( mbedtls_ecp_restart_ctx *ctx ); * case this function returns immediately. If it is not * \c NULL, it must point to an initialized restart context. */ -void mbedtls_ecp_restart_free( mbedtls_ecp_restart_ctx *ctx ); +void mbedtls_ecp_restart_free(mbedtls_ecp_restart_ctx *ctx); #endif /* MBEDTLS_ECP_RESTARTABLE */ /** @@ -654,7 +647,7 @@ void mbedtls_ecp_restart_free( mbedtls_ecp_restart_ctx *ctx ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. * \return Another negative error code for other kinds of failure. */ -int mbedtls_ecp_copy( mbedtls_ecp_point *P, const mbedtls_ecp_point *Q ); +int mbedtls_ecp_copy(mbedtls_ecp_point *P, const mbedtls_ecp_point *Q); /** * \brief This function copies the contents of group \p src into @@ -667,8 +660,8 @@ int mbedtls_ecp_copy( mbedtls_ecp_point *P, const mbedtls_ecp_point *Q ); * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_group_copy( mbedtls_ecp_group *dst, - const mbedtls_ecp_group *src ); +int mbedtls_ecp_group_copy(mbedtls_ecp_group *dst, + const mbedtls_ecp_group *src); /** * \brief This function sets a point to the point at infinity. @@ -679,7 +672,7 @@ int mbedtls_ecp_group_copy( mbedtls_ecp_group *dst, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_set_zero( mbedtls_ecp_point *pt ); +int mbedtls_ecp_set_zero(mbedtls_ecp_point *pt); /** * \brief This function checks if a point is the point at infinity. @@ -690,7 +683,7 @@ int mbedtls_ecp_set_zero( mbedtls_ecp_point *pt ); * \return \c 0 if the point is non-zero. * \return A negative error code on failure. */ -int mbedtls_ecp_is_zero( mbedtls_ecp_point *pt ); +int mbedtls_ecp_is_zero(mbedtls_ecp_point *pt); /** * \brief This function compares two points. @@ -704,8 +697,8 @@ int mbedtls_ecp_is_zero( mbedtls_ecp_point *pt ); * \return \c 0 if the points are equal. * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if the points are not equal. */ -int mbedtls_ecp_point_cmp( const mbedtls_ecp_point *P, - const mbedtls_ecp_point *Q ); +int mbedtls_ecp_point_cmp(const mbedtls_ecp_point *P, + const mbedtls_ecp_point *Q); /** * \brief This function imports a non-zero point from two ASCII @@ -719,8 +712,8 @@ int mbedtls_ecp_point_cmp( const mbedtls_ecp_point *P, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_MPI_XXX error code on failure. */ -int mbedtls_ecp_point_read_string( mbedtls_ecp_point *P, int radix, - const char *x, const char *y ); +int mbedtls_ecp_point_read_string(mbedtls_ecp_point *P, int radix, + const char *x, const char *y); /** * \brief This function exports a point into unsigned binary data. @@ -747,10 +740,10 @@ int mbedtls_ecp_point_read_string( mbedtls_ecp_point *P, int radix, * or the export for the given group is not implemented. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_point_write_binary( const mbedtls_ecp_group *grp, - const mbedtls_ecp_point *P, - int format, size_t *olen, - unsigned char *buf, size_t buflen ); +int mbedtls_ecp_point_write_binary(const mbedtls_ecp_group *grp, + const mbedtls_ecp_point *P, + int format, size_t *olen, + unsigned char *buf, size_t buflen); /** * \brief This function imports a point from unsigned binary data. @@ -774,9 +767,9 @@ int mbedtls_ecp_point_write_binary( const mbedtls_ecp_group *grp, * \return #MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE if the import for the * given group is not implemented. */ -int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *P, - const unsigned char *buf, size_t ilen ); +int mbedtls_ecp_point_read_binary(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *P, + const unsigned char *buf, size_t ilen); /** * \brief This function imports a point from a TLS ECPoint record. @@ -796,9 +789,9 @@ int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, * failure. * \return #MBEDTLS_ERR_ECP_BAD_INPUT_DATA if input is invalid. */ -int mbedtls_ecp_tls_read_point( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *pt, - const unsigned char **buf, size_t len ); +int mbedtls_ecp_tls_read_point(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *pt, + const unsigned char **buf, size_t len); /** * \brief This function exports a point as a TLS ECPoint record @@ -822,10 +815,10 @@ int mbedtls_ecp_tls_read_point( const mbedtls_ecp_group *grp, * is too small to hold the exported point. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, - const mbedtls_ecp_point *pt, - int format, size_t *olen, - unsigned char *buf, size_t blen ); +int mbedtls_ecp_tls_write_point(const mbedtls_ecp_group *grp, + const mbedtls_ecp_point *pt, + int format, size_t *olen, + unsigned char *buf, size_t blen); /** * \brief This function sets up an ECP group context @@ -844,7 +837,7 @@ int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, * correspond to a known group. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_group_load( mbedtls_ecp_group *grp, mbedtls_ecp_group_id id ); +int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id); /** * \brief This function sets up an ECP group context from a TLS @@ -863,8 +856,8 @@ int mbedtls_ecp_group_load( mbedtls_ecp_group *grp, mbedtls_ecp_group_id id ); * recognized. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_tls_read_group( mbedtls_ecp_group *grp, - const unsigned char **buf, size_t len ); +int mbedtls_ecp_tls_read_group(mbedtls_ecp_group *grp, + const unsigned char **buf, size_t len); /** * \brief This function extracts an elliptic curve group ID from a @@ -884,9 +877,9 @@ int mbedtls_ecp_tls_read_group( mbedtls_ecp_group *grp, * recognized. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_tls_read_group_id( mbedtls_ecp_group_id *grp, - const unsigned char **buf, - size_t len ); +int mbedtls_ecp_tls_read_group_id(mbedtls_ecp_group_id *grp, + const unsigned char **buf, + size_t len); /** * \brief This function exports an elliptic curve as a TLS * ECParameters record as defined in RFC 4492, Section 5.4. @@ -905,9 +898,9 @@ int mbedtls_ecp_tls_read_group_id( mbedtls_ecp_group_id *grp, * buffer is too small to hold the exported group. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, - size_t *olen, - unsigned char *buf, size_t blen ); +int mbedtls_ecp_tls_write_group(const mbedtls_ecp_group *grp, + size_t *olen, + unsigned char *buf, size_t blen); /** * \brief This function performs a scalar multiplication of a point @@ -938,9 +931,9 @@ int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_ecp_mul(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** * \brief This function performs multiplication of a point by @@ -972,10 +965,10 @@ int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * operations was reached: see \c mbedtls_ecp_set_max_ops(). * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ); +int mbedtls_ecp_mul_restartable(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx); #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /** @@ -1013,9 +1006,9 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * designate a short Weierstrass curve. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - const mbedtls_mpi *n, const mbedtls_ecp_point *Q ); +int mbedtls_ecp_muladd(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + const mbedtls_mpi *n, const mbedtls_ecp_point *Q); /** * \brief This function performs multiplication and addition of two @@ -1058,10 +1051,10 @@ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * \return Another negative error code on other kinds of failure. */ int mbedtls_ecp_muladd_restartable( - mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - const mbedtls_mpi *n, const mbedtls_ecp_point *Q, - mbedtls_ecp_restart_ctx *rs_ctx ); + mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + const mbedtls_mpi *n, const mbedtls_ecp_point *Q, + mbedtls_ecp_restart_ctx *rs_ctx); #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ /** @@ -1091,8 +1084,8 @@ int mbedtls_ecp_muladd_restartable( * a valid public key for the given curve. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_check_pubkey( const mbedtls_ecp_group *grp, - const mbedtls_ecp_point *pt ); +int mbedtls_ecp_check_pubkey(const mbedtls_ecp_group *grp, + const mbedtls_ecp_point *pt); /** * \brief This function checks that an \p mbedtls_mpi is a @@ -1113,8 +1106,8 @@ int mbedtls_ecp_check_pubkey( const mbedtls_ecp_group *grp, * private key for the given curve. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, - const mbedtls_mpi *d ); +int mbedtls_ecp_check_privkey(const mbedtls_ecp_group *grp, + const mbedtls_mpi *d); /** * \brief This function generates a private key. @@ -1131,10 +1124,10 @@ int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX error code * on failure. */ -int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, - mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecp_gen_privkey(const mbedtls_ecp_group *grp, + mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function generates a keypair with a configurable base @@ -1163,11 +1156,11 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX error code * on failure. */ -int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp, - const mbedtls_ecp_point *G, - mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecp_gen_keypair_base(mbedtls_ecp_group *grp, + const mbedtls_ecp_point *G, + mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function generates an ECP keypair. @@ -1192,10 +1185,10 @@ int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX error code * on failure. */ -int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp, mbedtls_mpi *d, - mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecp_gen_keypair(mbedtls_ecp_group *grp, mbedtls_mpi *d, + mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function generates an ECP key. @@ -1210,9 +1203,9 @@ int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp, mbedtls_mpi *d, * \return An \c MBEDTLS_ERR_ECP_XXX or \c MBEDTLS_MPI_XXX error code * on failure. */ -int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecp_gen_key(mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief This function reads an elliptic curve private key. @@ -1232,8 +1225,8 @@ int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, * the group is not implemented. * \return Another negative error code on different kinds of failure. */ -int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, - const unsigned char *buf, size_t buflen ); +int mbedtls_ecp_read_key(mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, + const unsigned char *buf, size_t buflen); /** * \brief This function exports an elliptic curve private key. @@ -1251,8 +1244,8 @@ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, * the group is not implemented. * \return Another negative error code on different kinds of failure. */ -int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, - unsigned char *buf, size_t buflen ); +int mbedtls_ecp_write_key(mbedtls_ecp_keypair *key, + unsigned char *buf, size_t buflen); /** * \brief This function checks that the keypair objects @@ -1275,8 +1268,8 @@ int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, * error code on calculation failure. */ int mbedtls_ecp_check_pub_priv( - const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); + const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** * \brief This function exports generic key-pair parameters. @@ -1306,7 +1299,7 @@ int mbedtls_ecp_export(const mbedtls_ecp_keypair *key, mbedtls_ecp_group *grp, * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_ecp_self_test( int verbose ); +int mbedtls_ecp_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/entropy.h b/include/mbedtls/entropy.h index 14e8b31c7..2c8b75031 100644 --- a/include/mbedtls/entropy.h +++ b/include/mbedtls/entropy.h @@ -99,15 +99,14 @@ extern "C" { * MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise */ typedef int (*mbedtls_entropy_f_source_ptr)(void *data, unsigned char *output, size_t len, - size_t *olen); + size_t *olen); /** * \brief Entropy source state */ -typedef struct mbedtls_entropy_source_state -{ +typedef struct mbedtls_entropy_source_state { mbedtls_entropy_f_source_ptr MBEDTLS_PRIVATE(f_source); /**< The entropy source callback */ - void * MBEDTLS_PRIVATE(p_source); /**< The callback data pointer */ + void *MBEDTLS_PRIVATE(p_source); /**< The callback data pointer */ size_t MBEDTLS_PRIVATE(size); /**< Amount received in bytes */ size_t MBEDTLS_PRIVATE(threshold); /**< Minimum bytes required before release */ int MBEDTLS_PRIVATE(strong); /**< Is the source strong? */ @@ -117,11 +116,10 @@ mbedtls_entropy_source_state; /** * \brief Entropy context structure */ -typedef struct mbedtls_entropy_context -{ +typedef struct mbedtls_entropy_context { int MBEDTLS_PRIVATE(accumulator_started); /* 0 after init. - * 1 after the first update. - * -1 after free. */ + * 1 after the first update. + * -1 after free. */ #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) mbedtls_sha512_context MBEDTLS_PRIVATE(accumulator); #elif defined(MBEDTLS_ENTROPY_SHA256_ACCUMULATOR) @@ -142,8 +140,8 @@ mbedtls_entropy_context; /** * \brief Platform-specific entropy poll callback */ -int mbedtls_platform_entropy_poll( void *data, - unsigned char *output, size_t len, size_t *olen ); +int mbedtls_platform_entropy_poll(void *data, + unsigned char *output, size_t len, size_t *olen); #endif /** @@ -151,14 +149,14 @@ int mbedtls_platform_entropy_poll( void *data, * * \param ctx Entropy context to initialize */ -void mbedtls_entropy_init( mbedtls_entropy_context *ctx ); +void mbedtls_entropy_init(mbedtls_entropy_context *ctx); /** * \brief Free the data in the context * * \param ctx Entropy context to free */ -void mbedtls_entropy_free( mbedtls_entropy_context *ctx ); +void mbedtls_entropy_free(mbedtls_entropy_context *ctx); /** * \brief Adds an entropy source to poll @@ -177,9 +175,9 @@ void mbedtls_entropy_free( mbedtls_entropy_context *ctx ); * * \return 0 if successful or MBEDTLS_ERR_ENTROPY_MAX_SOURCES */ -int mbedtls_entropy_add_source( mbedtls_entropy_context *ctx, - mbedtls_entropy_f_source_ptr f_source, void *p_source, - size_t threshold, int strong ); +int mbedtls_entropy_add_source(mbedtls_entropy_context *ctx, + mbedtls_entropy_f_source_ptr f_source, void *p_source, + size_t threshold, int strong); /** * \brief Trigger an extra gather poll for the accumulator @@ -189,7 +187,7 @@ int mbedtls_entropy_add_source( mbedtls_entropy_context *ctx, * * \return 0 if successful, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED */ -int mbedtls_entropy_gather( mbedtls_entropy_context *ctx ); +int mbedtls_entropy_gather(mbedtls_entropy_context *ctx); /** * \brief Retrieve entropy from the accumulator @@ -202,7 +200,7 @@ int mbedtls_entropy_gather( mbedtls_entropy_context *ctx ); * * \return 0 if successful, or MBEDTLS_ERR_ENTROPY_SOURCE_FAILED */ -int mbedtls_entropy_func( void *data, unsigned char *output, size_t len ); +int mbedtls_entropy_func(void *data, unsigned char *output, size_t len); /** * \brief Add data to the accumulator manually @@ -214,8 +212,8 @@ int mbedtls_entropy_func( void *data, unsigned char *output, size_t len ); * * \return 0 if successful */ -int mbedtls_entropy_update_manual( mbedtls_entropy_context *ctx, - const unsigned char *data, size_t len ); +int mbedtls_entropy_update_manual(mbedtls_entropy_context *ctx, + const unsigned char *data, size_t len); #if defined(MBEDTLS_ENTROPY_NV_SEED) /** @@ -226,7 +224,7 @@ int mbedtls_entropy_update_manual( mbedtls_entropy_context *ctx, * * \return 0 if successful */ -int mbedtls_entropy_update_nv_seed( mbedtls_entropy_context *ctx ); +int mbedtls_entropy_update_nv_seed(mbedtls_entropy_context *ctx); #endif /* MBEDTLS_ENTROPY_NV_SEED */ #if defined(MBEDTLS_FS_IO) @@ -240,7 +238,7 @@ int mbedtls_entropy_update_nv_seed( mbedtls_entropy_context *ctx ); * MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR on file error, or * MBEDTLS_ERR_ENTROPY_SOURCE_FAILED */ -int mbedtls_entropy_write_seed_file( mbedtls_entropy_context *ctx, const char *path ); +int mbedtls_entropy_write_seed_file(mbedtls_entropy_context *ctx, const char *path); /** * \brief Read and update a seed file. Seed is added to this @@ -254,7 +252,7 @@ int mbedtls_entropy_write_seed_file( mbedtls_entropy_context *ctx, const char *p * MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR on file error, * MBEDTLS_ERR_ENTROPY_SOURCE_FAILED */ -int mbedtls_entropy_update_seed_file( mbedtls_entropy_context *ctx, const char *path ); +int mbedtls_entropy_update_seed_file(mbedtls_entropy_context *ctx, const char *path); #endif /* MBEDTLS_FS_IO */ #if defined(MBEDTLS_SELF_TEST) @@ -266,7 +264,7 @@ int mbedtls_entropy_update_seed_file( mbedtls_entropy_context *ctx, const char * * * \return 0 if successful, or 1 if a test failed */ -int mbedtls_entropy_self_test( int verbose ); +int mbedtls_entropy_self_test(int verbose); #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) /** @@ -282,7 +280,7 @@ int mbedtls_entropy_self_test( int verbose ); * * \return 0 if successful, or 1 if a test failed */ -int mbedtls_entropy_source_self_test( int verbose ); +int mbedtls_entropy_source_self_test(int verbose); #endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/error.h b/include/mbedtls/error.h index 4a97d652b..23a83f2c8 100644 --- a/include/mbedtls/error.h +++ b/include/mbedtls/error.h @@ -121,15 +121,15 @@ extern "C" { * Wrapper macro for mbedtls_error_add(). See that function for * more details. */ -#define MBEDTLS_ERROR_ADD( high, low ) \ - mbedtls_error_add( high, low, __FILE__, __LINE__ ) +#define MBEDTLS_ERROR_ADD(high, low) \ + mbedtls_error_add(high, low, __FILE__, __LINE__) #if defined(MBEDTLS_TEST_HOOKS) /** * \brief Testing hook called before adding/combining two error codes together. * Only used when invasive testing is enabled via MBEDTLS_TEST_HOOKS. */ -extern void (*mbedtls_test_hook_error_add)( int, int, const char *, int ); +extern void (*mbedtls_test_hook_error_add)(int, int, const char *, int); #endif /** @@ -150,17 +150,18 @@ extern void (*mbedtls_test_hook_error_add)( int, int, const char *, int ); * \param file file where this error code addition occurred. * \param line line where this error code addition occurred. */ -static inline int mbedtls_error_add( int high, int low, - const char *file, int line ) +static inline int mbedtls_error_add(int high, int low, + const char *file, int line) { #if defined(MBEDTLS_TEST_HOOKS) - if( *mbedtls_test_hook_error_add != NULL ) - ( *mbedtls_test_hook_error_add )( high, low, file, line ); + if (*mbedtls_test_hook_error_add != NULL) { + (*mbedtls_test_hook_error_add)(high, low, file, line); + } #endif - (void)file; - (void)line; + (void) file; + (void) line; - return( high + low ); + return high + low; } /** @@ -172,7 +173,7 @@ static inline int mbedtls_error_add( int high, int low, * \param buffer buffer to place representation in * \param buflen length of the buffer */ -void mbedtls_strerror( int errnum, char *buffer, size_t buflen ); +void mbedtls_strerror(int errnum, char *buffer, size_t buflen); /** * \brief Translate the high-level part of an Mbed TLS error code into a string @@ -187,7 +188,7 @@ void mbedtls_strerror( int errnum, char *buffer, size_t buflen ); * \return The string representation of the error code, or \c NULL if the error * code is unknown. */ -const char * mbedtls_high_level_strerr( int error_code ); +const char *mbedtls_high_level_strerr(int error_code); /** * \brief Translate the low-level part of an Mbed TLS error code into a string @@ -202,7 +203,7 @@ const char * mbedtls_high_level_strerr( int error_code ); * \return The string representation of the error code, or \c NULL if the error * code is unknown. */ -const char * mbedtls_low_level_strerr( int error_code ); +const char *mbedtls_low_level_strerr(int error_code); #ifdef __cplusplus } diff --git a/include/mbedtls/gcm.h b/include/mbedtls/gcm.h index 7dc9dfb8e..c3343e6aa 100644 --- a/include/mbedtls/gcm.h +++ b/include/mbedtls/gcm.h @@ -57,8 +57,7 @@ extern "C" { /** * \brief The GCM context structure. */ -typedef struct mbedtls_gcm_context -{ +typedef struct mbedtls_gcm_context { mbedtls_cipher_context_t MBEDTLS_PRIVATE(cipher_ctx); /*!< The cipher context used. */ uint64_t MBEDTLS_PRIVATE(HL)[16]; /*!< Precalculated HTable low. */ uint64_t MBEDTLS_PRIVATE(HH)[16]; /*!< Precalculated HTable high. */ @@ -68,8 +67,8 @@ typedef struct mbedtls_gcm_context unsigned char MBEDTLS_PRIVATE(y)[16]; /*!< The Y working value. */ unsigned char MBEDTLS_PRIVATE(buf)[16]; /*!< The buf working value. */ int MBEDTLS_PRIVATE(mode); /*!< The operation to perform: - #MBEDTLS_GCM_ENCRYPT or - #MBEDTLS_GCM_DECRYPT. */ + #MBEDTLS_GCM_ENCRYPT or + #MBEDTLS_GCM_DECRYPT. */ } mbedtls_gcm_context; @@ -88,7 +87,7 @@ mbedtls_gcm_context; * * \param ctx The GCM context to initialize. This must not be \c NULL. */ -void mbedtls_gcm_init( mbedtls_gcm_context *ctx ); +void mbedtls_gcm_init(mbedtls_gcm_context *ctx); /** * \brief This function associates a GCM context with a @@ -106,10 +105,10 @@ void mbedtls_gcm_init( mbedtls_gcm_context *ctx ); * \return \c 0 on success. * \return A cipher-specific error code on failure. */ -int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits ); +int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits); /** * \brief This function performs GCM encryption or decryption of a buffer. @@ -162,17 +161,17 @@ int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, * not valid or a cipher-specific error code if the encryption * or decryption failed. */ -int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx, - int mode, - size_t length, - const unsigned char *iv, - size_t iv_len, - const unsigned char *add, - size_t add_len, - const unsigned char *input, - unsigned char *output, - size_t tag_len, - unsigned char *tag ); +int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx, + int mode, + size_t length, + const unsigned char *iv, + size_t iv_len, + const unsigned char *add, + size_t add_len, + const unsigned char *input, + unsigned char *output, + size_t tag_len, + unsigned char *tag); /** * \brief This function performs a GCM authenticated decryption of a @@ -207,16 +206,16 @@ int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx, * not valid or a cipher-specific error code if the decryption * failed. */ -int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx, - size_t length, - const unsigned char *iv, - size_t iv_len, - const unsigned char *add, - size_t add_len, - const unsigned char *tag, - size_t tag_len, - const unsigned char *input, - unsigned char *output ); +int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx, + size_t length, + const unsigned char *iv, + size_t iv_len, + const unsigned char *add, + size_t add_len, + const unsigned char *tag, + size_t tag_len, + const unsigned char *input, + unsigned char *output); /** * \brief This function starts a GCM encryption or decryption @@ -231,10 +230,10 @@ int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx, * * \return \c 0 on success. */ -int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, - int mode, - const unsigned char *iv, - size_t iv_len ); +int mbedtls_gcm_starts(mbedtls_gcm_context *ctx, + int mode, + const unsigned char *iv, + size_t iv_len); /** * \brief This function feeds an input buffer as associated data @@ -256,9 +255,9 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, * * \return \c 0 on success. */ -int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, - const unsigned char *add, - size_t add_len ); +int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx, + const unsigned char *add, + size_t add_len); /** * \brief This function feeds an input buffer into an ongoing GCM @@ -311,10 +310,10 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, * unsupported input/output buffer overlap detected, * or \p output_size too small. */ -int mbedtls_gcm_update( mbedtls_gcm_context *ctx, - const unsigned char *input, size_t input_length, - unsigned char *output, size_t output_size, - size_t *output_length ); +int mbedtls_gcm_update(mbedtls_gcm_context *ctx, + const unsigned char *input, size_t input_length, + unsigned char *output, size_t output_size, + size_t *output_length); /** * \brief This function finishes the GCM operation and generates @@ -349,10 +348,10 @@ int mbedtls_gcm_update( mbedtls_gcm_context *ctx, * invalid value of \p tag_len, * or \p output_size too small. */ -int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, - unsigned char *output, size_t output_size, - size_t *output_length, - unsigned char *tag, size_t tag_len ); +int mbedtls_gcm_finish(mbedtls_gcm_context *ctx, + unsigned char *output, size_t output_size, + size_t *output_length, + unsigned char *tag, size_t tag_len); /** * \brief This function clears a GCM context and the underlying @@ -361,7 +360,7 @@ int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, * \param ctx The GCM context to clear. If this is \c NULL, the call has * no effect. Otherwise, this must be initialized. */ -void mbedtls_gcm_free( mbedtls_gcm_context *ctx ); +void mbedtls_gcm_free(mbedtls_gcm_context *ctx); #if defined(MBEDTLS_SELF_TEST) @@ -371,7 +370,7 @@ void mbedtls_gcm_free( mbedtls_gcm_context *ctx ); * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_gcm_self_test( int verbose ); +int mbedtls_gcm_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/hkdf.h b/include/mbedtls/hkdf.h index 2e225cb3b..699c6d9e9 100644 --- a/include/mbedtls/hkdf.h +++ b/include/mbedtls/hkdf.h @@ -65,10 +65,10 @@ extern "C" { * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying * MD layer. */ -int mbedtls_hkdf( const mbedtls_md_info_t *md, const unsigned char *salt, - size_t salt_len, const unsigned char *ikm, size_t ikm_len, - const unsigned char *info, size_t info_len, - unsigned char *okm, size_t okm_len ); +int mbedtls_hkdf(const mbedtls_md_info_t *md, const unsigned char *salt, + size_t salt_len, const unsigned char *ikm, size_t ikm_len, + const unsigned char *info, size_t info_len, + unsigned char *okm, size_t okm_len); /** * \brief Take the input keying material \p ikm and extract from it a @@ -94,10 +94,10 @@ int mbedtls_hkdf( const mbedtls_md_info_t *md, const unsigned char *salt, * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying * MD layer. */ -int mbedtls_hkdf_extract( const mbedtls_md_info_t *md, - const unsigned char *salt, size_t salt_len, - const unsigned char *ikm, size_t ikm_len, - unsigned char *prk ); +int mbedtls_hkdf_extract(const mbedtls_md_info_t *md, + const unsigned char *salt, size_t salt_len, + const unsigned char *ikm, size_t ikm_len, + unsigned char *prk); /** * \brief Expand the supplied \p prk into several additional pseudorandom @@ -125,9 +125,9 @@ int mbedtls_hkdf_extract( const mbedtls_md_info_t *md, * \return An MBEDTLS_ERR_MD_* error for errors returned from the underlying * MD layer. */ -int mbedtls_hkdf_expand( const mbedtls_md_info_t *md, const unsigned char *prk, - size_t prk_len, const unsigned char *info, - size_t info_len, unsigned char *okm, size_t okm_len ); +int mbedtls_hkdf_expand(const mbedtls_md_info_t *md, const unsigned char *prk, + size_t prk_len, const unsigned char *info, + size_t info_len, unsigned char *okm, size_t okm_len); #ifdef __cplusplus } diff --git a/include/mbedtls/hmac_drbg.h b/include/mbedtls/hmac_drbg.h index f2cf2c0bf..4ca6b0823 100644 --- a/include/mbedtls/hmac_drbg.h +++ b/include/mbedtls/hmac_drbg.h @@ -83,8 +83,7 @@ extern "C" { /** * HMAC_DRBG context. */ -typedef struct mbedtls_hmac_drbg_context -{ +typedef struct mbedtls_hmac_drbg_context { /* Working state: the key K is not stored explicitly, * but is implied by the HMAC context */ mbedtls_md_context_t MBEDTLS_PRIVATE(md_ctx); /*!< HMAC context (inc. K) */ @@ -94,11 +93,11 @@ typedef struct mbedtls_hmac_drbg_context /* Administrative state */ size_t MBEDTLS_PRIVATE(entropy_len); /*!< entropy bytes grabbed on each (re)seed */ int MBEDTLS_PRIVATE(prediction_resistance); /*!< enable prediction resistance (Automatic - reseed before every random generation) */ + reseed before every random generation) */ int MBEDTLS_PRIVATE(reseed_interval); /*!< reseed interval */ /* Callbacks */ - int (*MBEDTLS_PRIVATE(f_entropy))(void *, unsigned char *, size_t); /*!< entropy function */ + int(*MBEDTLS_PRIVATE(f_entropy))(void *, unsigned char *, size_t); /*!< entropy function */ void *MBEDTLS_PRIVATE(p_entropy); /*!< context for the entropy function */ #if defined(MBEDTLS_THREADING_C) @@ -126,7 +125,7 @@ typedef struct mbedtls_hmac_drbg_context * * \param ctx HMAC_DRBG context to be initialized. */ -void mbedtls_hmac_drbg_init( mbedtls_hmac_drbg_context *ctx ); +void mbedtls_hmac_drbg_init(mbedtls_hmac_drbg_context *ctx); /** * \brief HMAC_DRBG initial seeding. @@ -196,12 +195,12 @@ void mbedtls_hmac_drbg_init( mbedtls_hmac_drbg_context *ctx ); * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED * if the call to \p f_entropy failed. */ -int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx, - const mbedtls_md_info_t * md_info, - int (*f_entropy)(void *, unsigned char *, size_t), - void *p_entropy, - const unsigned char *custom, - size_t len ); +int mbedtls_hmac_drbg_seed(mbedtls_hmac_drbg_context *ctx, + const mbedtls_md_info_t *md_info, + int (*f_entropy)(void *, unsigned char *, size_t), + void *p_entropy, + const unsigned char *custom, + size_t len); /** * \brief Initialisation of simplified HMAC_DRBG (never reseeds). @@ -231,9 +230,9 @@ int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx, * \return #MBEDTLS_ERR_MD_ALLOC_FAILED if there was not enough * memory to allocate context data. */ -int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx, - const mbedtls_md_info_t * md_info, - const unsigned char *data, size_t data_len ); +int mbedtls_hmac_drbg_seed_buf(mbedtls_hmac_drbg_context *ctx, + const mbedtls_md_info_t *md_info, + const unsigned char *data, size_t data_len); /** * \brief This function turns prediction resistance on or off. @@ -248,8 +247,8 @@ int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx, * \param ctx The HMAC_DRBG context. * \param resistance #MBEDTLS_HMAC_DRBG_PR_ON or #MBEDTLS_HMAC_DRBG_PR_OFF. */ -void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx, - int resistance ); +void mbedtls_hmac_drbg_set_prediction_resistance(mbedtls_hmac_drbg_context *ctx, + int resistance); /** * \brief This function sets the amount of entropy grabbed on each @@ -260,8 +259,8 @@ void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx * \param ctx The HMAC_DRBG context. * \param len The amount of entropy to grab, in bytes. */ -void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx, - size_t len ); +void mbedtls_hmac_drbg_set_entropy_len(mbedtls_hmac_drbg_context *ctx, + size_t len); /** * \brief Set the reseed interval. @@ -275,8 +274,8 @@ void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx, * \param ctx The HMAC_DRBG context. * \param interval The reseed interval. */ -void mbedtls_hmac_drbg_set_reseed_interval( mbedtls_hmac_drbg_context *ctx, - int interval ); +void mbedtls_hmac_drbg_set_reseed_interval(mbedtls_hmac_drbg_context *ctx, + int interval); /** * \brief This function updates the state of the HMAC_DRBG context. @@ -295,8 +294,8 @@ void mbedtls_hmac_drbg_set_reseed_interval( mbedtls_hmac_drbg_context *ctx, * \return \c 0 on success, or an error from the underlying * hash calculation. */ -int mbedtls_hmac_drbg_update( mbedtls_hmac_drbg_context *ctx, - const unsigned char *additional, size_t add_len ); +int mbedtls_hmac_drbg_update(mbedtls_hmac_drbg_context *ctx, + const unsigned char *additional, size_t add_len); /** * \brief This function reseeds the HMAC_DRBG context, that is @@ -322,8 +321,8 @@ int mbedtls_hmac_drbg_update( mbedtls_hmac_drbg_context *ctx, * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED * if a call to the entropy function failed. */ -int mbedtls_hmac_drbg_reseed( mbedtls_hmac_drbg_context *ctx, - const unsigned char *additional, size_t len ); +int mbedtls_hmac_drbg_reseed(mbedtls_hmac_drbg_context *ctx, + const unsigned char *additional, size_t len); /** * \brief This function updates an HMAC_DRBG instance with additional @@ -356,10 +355,10 @@ int mbedtls_hmac_drbg_reseed( mbedtls_hmac_drbg_context *ctx, * \return #MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG if * \p add_len > #MBEDTLS_HMAC_DRBG_MAX_INPUT. */ -int mbedtls_hmac_drbg_random_with_add( void *p_rng, - unsigned char *output, size_t output_len, - const unsigned char *additional, - size_t add_len ); +int mbedtls_hmac_drbg_random_with_add(void *p_rng, + unsigned char *output, size_t output_len, + const unsigned char *additional, + size_t add_len); /** * \brief This function uses HMAC_DRBG to generate random data. @@ -388,7 +387,7 @@ int mbedtls_hmac_drbg_random_with_add( void *p_rng, * \return #MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG if * \p out_len > #MBEDTLS_HMAC_DRBG_MAX_REQUEST. */ -int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len ); +int mbedtls_hmac_drbg_random(void *p_rng, unsigned char *output, size_t out_len); /** * \brief This function resets HMAC_DRBG context to the state immediately @@ -396,7 +395,7 @@ int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len * * \param ctx The HMAC_DRBG context to free. */ -void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx ); +void mbedtls_hmac_drbg_free(mbedtls_hmac_drbg_context *ctx); #if defined(MBEDTLS_FS_IO) /** @@ -410,7 +409,7 @@ void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx ); * \return #MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED on reseed * failure. */ -int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path ); +int mbedtls_hmac_drbg_write_seed_file(mbedtls_hmac_drbg_context *ctx, const char *path); /** * \brief This function reads and updates a seed file. The seed @@ -426,7 +425,7 @@ int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const cha * \return #MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG if the existing * seed file is too large. */ -int mbedtls_hmac_drbg_update_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path ); +int mbedtls_hmac_drbg_update_seed_file(mbedtls_hmac_drbg_context *ctx, const char *path); #endif /* MBEDTLS_FS_IO */ @@ -437,7 +436,7 @@ int mbedtls_hmac_drbg_update_seed_file( mbedtls_hmac_drbg_context *ctx, const ch * \return \c 0 if successful. * \return \c 1 if the test failed. */ -int mbedtls_hmac_drbg_self_test( int verbose ); +int mbedtls_hmac_drbg_self_test(int verbose); #endif #ifdef __cplusplus diff --git a/include/mbedtls/legacy_or_psa.h b/include/mbedtls/legacy_or_psa.h index 35798a590..e9bdb7783 100644 --- a/include/mbedtls/legacy_or_psa.h +++ b/include/mbedtls/legacy_or_psa.h @@ -110,105 +110,105 @@ /* Hashes using low-level or PSA based on availability */ #if defined(MBEDTLS_MD5_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_MD5) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_MD5)) #define MBEDTLS_HAS_ALG_MD5_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_RIPEMD160_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_RIPEMD160) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_RIPEMD160)) #define MBEDTLS_HAS_ALG_RIPEMD160_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_SHA1_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1)) #define MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_SHA224_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_224) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_224)) #define MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_SHA256_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256)) #define MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_SHA384_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_384) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_384)) #define MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA #endif #if defined(MBEDTLS_SHA512_C) || \ - ( defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_512) ) + (defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_512)) #define MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA #endif /* Hashes using MD or PSA based on availability */ -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_MD5_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_MD5) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_MD5_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_MD5)) #define MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_RIPEMD160_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_RIPEMD160) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_RIPEMD160_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_RIPEMD160)) #define MBEDTLS_HAS_ALG_RIPEMD160_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_1)) #define MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_224) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_224)) #define MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_256)) #define MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_384) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_384)) #define MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA #endif -#if ( defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C) ) || \ - ( !defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_512) ) +#if (defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C)) || \ + (!defined(MBEDTLS_MD_C) && \ + defined(MBEDTLS_PSA_CRYPTO_C) && defined(PSA_WANT_ALG_SHA_512)) #define MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA #endif /* Hashes using MD or PSA based on MBEDTLS_USE_PSA_CRYPTO */ -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_MD5_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_MD5) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_MD5_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_MD5)) #define MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_RIPEMD160_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_RIPEMD160) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_RIPEMD160_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_RIPEMD160)) #define MBEDTLS_HAS_ALG_RIPEMD160_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_1) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA1_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_1)) #define MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_224) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA224_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_224)) #define MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA256_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_256)) #define MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA384_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_384)) #define MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif -#if ( !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C) ) || \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_512) ) +#if (!defined(MBEDTLS_USE_PSA_CRYPTO) && \ + defined(MBEDTLS_MD_C) && defined(MBEDTLS_SHA512_C)) || \ + (defined(MBEDTLS_USE_PSA_CRYPTO) && defined(PSA_WANT_ALG_SHA_512)) #define MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA #endif diff --git a/include/mbedtls/lms.h b/include/mbedtls/lms.h index 1179cd1b3..5c8df42f8 100644 --- a/include/mbedtls/lms.h +++ b/include/mbedtls/lms.h @@ -104,10 +104,10 @@ typedef enum { */ typedef struct { unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ + identifier. */ unsigned char MBEDTLS_PRIVATE(q_leaf_identifier[MBEDTLS_LMOTS_Q_LEAF_ID_LEN]); /*!< Which - leaf of the LMS key this is. - 0 if the key is not part of an LMS key. */ + leaf of the LMS key this is. + 0 if the key is not part of an LMS key. */ mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LM-OTS key type identifier as per IANA. Only SHA256_N32_W8 is currently supported. */ @@ -134,7 +134,7 @@ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(public_key)[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. - Boolean values only. */ + Boolean values only. */ } mbedtls_lmots_public_t; #if defined(MBEDTLS_LMS_PRIVATE) @@ -157,9 +157,10 @@ typedef struct { */ typedef struct { mbedtls_lmots_parameters_t MBEDTLS_PRIVATE(params); - unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; + unsigned char MBEDTLS_PRIVATE(private_key)[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][ + MBEDTLS_LMOTS_N_HASH_LEN_MAX]; unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. - Boolean values only. */ + Boolean values only. */ } mbedtls_lmots_private_t; #endif /* defined(MBEDTLS_LMS_PRIVATE) */ @@ -171,10 +172,10 @@ typedef struct { */ typedef struct { unsigned char MBEDTLS_PRIVATE(I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN]); /*!< The key - identifier. */ + identifier. */ mbedtls_lmots_algorithm_type_t MBEDTLS_PRIVATE(otstype); /*!< The LM-OTS key type identifier as - per IANA. Only SHA256_N32_W8 is - currently supported. */ + per IANA. Only SHA256_N32_W8 is + currently supported. */ mbedtls_lms_algorithm_type_t MBEDTLS_PRIVATE(type); /*!< The LMS key type identifier as per IANA. Only SHA256_M32_H10 is currently supported. */ @@ -182,7 +183,7 @@ typedef struct { /** LMS public context structure. * - *A LMS public key is the hash output that is the root of the Merkle tree, and + * A LMS public key is the hash output that is the root of the Merkle tree, and * the applicable parameter set * * The context must be initialized before it is used. A public key must either @@ -201,9 +202,9 @@ typedef struct { typedef struct { mbedtls_lms_parameters_t MBEDTLS_PRIVATE(params); unsigned char MBEDTLS_PRIVATE(T_1_pub_key)[MBEDTLS_LMS_M_NODE_BYTES_MAX]; /*!< The public key, in - the form of the Merkle tree root node. */ + the form of the Merkle tree root node. */ unsigned char MBEDTLS_PRIVATE(have_public_key); /*!< Whether the context contains a public key. - Boolean values only. */ + Boolean values only. */ } mbedtls_lms_public_t; @@ -229,9 +230,9 @@ typedef struct { uint32_t MBEDTLS_PRIVATE(q_next_usable_key); /*!< The index of the next OTS key that has not been used. */ mbedtls_lmots_private_t *MBEDTLS_PRIVATE(ots_private_keys); /*!< The private key material. One OTS key - for each leaf node in the Merkle tree. NULL - when have_private_key is 0 and non-NULL otherwise. - is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) in length. */ + for each leaf node in the Merkle tree. NULL + when have_private_key is 0 and non-NULL otherwise. + is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) in length. */ mbedtls_lmots_public_t *MBEDTLS_PRIVATE(ots_public_keys); /*!< The OTS key public keys, used to build the Merkle tree. NULL when have_private_key is 0 and @@ -239,7 +240,7 @@ typedef struct { Is 2^MBEDTLS_LMS_H_TREE_HEIGHT(type) in length. */ unsigned char MBEDTLS_PRIVATE(have_private_key); /*!< Whether the context contains a private key. - Boolean values only. */ + Boolean values only. */ } mbedtls_lms_private_t; #endif /* defined(MBEDTLS_LMS_PRIVATE) */ @@ -249,7 +250,7 @@ typedef struct { * \param ctx The uninitialized LMS context that will then be * initialized. */ -void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_init(mbedtls_lms_public_t *ctx); /** * \brief This function uninitializes an LMS public context @@ -257,7 +258,7 @@ void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ); * \param ctx The initialized LMS context that will then be * uninitialized. */ -void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); +void mbedtls_lms_public_free(mbedtls_lms_public_t *ctx); /** * \brief This function imports an LMS public key into a @@ -278,8 +279,8 @@ void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ); * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, - const unsigned char *key, size_t key_size ); +int mbedtls_lms_import_public_key(mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size); /** * \brief This function exports an LMS public key from a @@ -304,9 +305,9 @@ int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); +int mbedtls_lms_export_public_key(const mbedtls_lms_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len); /** * \brief This function verifies a LMS signature, using a @@ -328,9 +329,9 @@ int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, * \return \c 0 on successful verification. * \return A non-zero error code on failure. */ -int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, - const unsigned char *msg, size_t msg_size, - const unsigned char *sig, size_t sig_size ); +int mbedtls_lms_verify(const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size); #if defined(MBEDTLS_LMS_PRIVATE) /** @@ -338,7 +339,7 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * * \param ctx The uninitialized LMS private context that will * then be initialized. */ -void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_init(mbedtls_lms_private_t *ctx); /** * \brief This function uninitializes an LMS private context @@ -346,7 +347,7 @@ void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ); * \param ctx The initialized LMS private context that will then * be uninitialized. */ -void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); +void mbedtls_lms_private_free(mbedtls_lms_private_t *ctx); /** * \brief This function generates an LMS private key, and @@ -372,12 +373,12 @@ void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ); * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, const unsigned char *seed, - size_t seed_size ); +int mbedtls_lms_generate_private_key(mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *seed, + size_t seed_size); /** * \brief This function calculates an LMS public key from a @@ -397,8 +398,8 @@ int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - const mbedtls_lms_private_t *priv_ctx ); +int mbedtls_lms_calculate_public_key(mbedtls_lms_public_t *ctx, + const mbedtls_lms_private_t *priv_ctx); /** * \brief This function creates a LMS signature, using a @@ -437,11 +438,11 @@ int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, const unsigned char *msg, - unsigned int msg_size, unsigned char *sig, size_t sig_size, - size_t *sig_len ); +int mbedtls_lms_sign(mbedtls_lms_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len); #endif /* defined(MBEDTLS_LMS_PRIVATE) */ #ifdef __cplusplus diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 8a4a0d25a..11c3139bd 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -1688,21 +1688,21 @@ #define MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS 1 /** -* \def MBEDTLS_SSL_EARLY_DATA -* -* Enable support for RFC 8446 TLS 1.3 early data. -* -* Requires: MBEDTLS_SSL_SESSION_TICKETS and either -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or -* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED -* -* Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 -* is not enabled, this option does not have any effect on the build. -* -* This feature is experimental, not completed and thus not ready for -* production. -* -*/ + * \def MBEDTLS_SSL_EARLY_DATA + * + * Enable support for RFC 8446 TLS 1.3 early data. + * + * Requires: MBEDTLS_SSL_SESSION_TICKETS and either + * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED or + * MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED + * + * Comment this to disable support for early data. If MBEDTLS_SSL_PROTO_TLS1_3 + * is not enabled, this option does not have any effect on the build. + * + * This feature is experimental, not completed and thus not ready for + * production. + * + */ //#define MBEDTLS_SSL_EARLY_DATA /** diff --git a/include/mbedtls/md.h b/include/mbedtls/md.h index 85ecc43a1..1a92c5761 100644 --- a/include/mbedtls/md.h +++ b/include/mbedtls/md.h @@ -1,4 +1,4 @@ - /** +/** * \file md.h * * \brief This file contains the generic message-digest wrapper. @@ -96,8 +96,7 @@ typedef struct mbedtls_md_info_t mbedtls_md_info_t; /** * The generic message-digest context. */ -typedef struct mbedtls_md_context_t -{ +typedef struct mbedtls_md_context_t { /** Information about the associated message digest. */ const mbedtls_md_info_t *MBEDTLS_PRIVATE(md_info); @@ -119,7 +118,7 @@ typedef struct mbedtls_md_context_t * message-digest enumeration #mbedtls_md_type_t. * The last entry is 0. */ -const int *mbedtls_md_list( void ); +const int *mbedtls_md_list(void); /** * \brief This function returns the message-digest information @@ -130,7 +129,7 @@ const int *mbedtls_md_list( void ); * \return The message-digest information associated with \p md_name. * \return NULL if the associated message-digest information is not found. */ -const mbedtls_md_info_t *mbedtls_md_info_from_string( const char *md_name ); +const mbedtls_md_info_t *mbedtls_md_info_from_string(const char *md_name); /** * \brief This function returns the message-digest information @@ -141,7 +140,7 @@ const mbedtls_md_info_t *mbedtls_md_info_from_string( const char *md_name ); * \return The message-digest information associated with \p md_type. * \return NULL if the associated message-digest information is not found. */ -const mbedtls_md_info_t *mbedtls_md_info_from_type( mbedtls_md_type_t md_type ); +const mbedtls_md_info_t *mbedtls_md_info_from_type(mbedtls_md_type_t md_type); /** * \brief This function returns the message-digest information @@ -154,7 +153,7 @@ const mbedtls_md_info_t *mbedtls_md_info_from_type( mbedtls_md_type_t md_type ); * \return \c NULL if \p ctx is \c NULL. */ const mbedtls_md_info_t *mbedtls_md_info_from_ctx( - const mbedtls_md_context_t *ctx ); + const mbedtls_md_context_t *ctx); /** * \brief This function initializes a message-digest context without @@ -164,7 +163,7 @@ const mbedtls_md_info_t *mbedtls_md_info_from_ctx( * context for mbedtls_md_setup() for binding it to a * message-digest algorithm. */ -void mbedtls_md_init( mbedtls_md_context_t *ctx ); +void mbedtls_md_init(mbedtls_md_context_t *ctx); /** * \brief This function clears the internal structure of \p ctx and @@ -179,7 +178,7 @@ void mbedtls_md_init( mbedtls_md_context_t *ctx ); * You must not call this function if you have not called * mbedtls_md_init(). */ -void mbedtls_md_free( mbedtls_md_context_t *ctx ); +void mbedtls_md_free(mbedtls_md_context_t *ctx); /** @@ -202,7 +201,7 @@ void mbedtls_md_free( mbedtls_md_context_t *ctx ); * \return #MBEDTLS_ERR_MD_ALLOC_FAILED on memory-allocation failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac ); +int mbedtls_md_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac); /** * \brief This function clones the state of a message-digest @@ -224,8 +223,8 @@ int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_inf * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA on parameter-verification failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_clone( mbedtls_md_context_t *dst, - const mbedtls_md_context_t *src ); +int mbedtls_md_clone(mbedtls_md_context_t *dst, + const mbedtls_md_context_t *src); /** * \brief This function extracts the message-digest size from the @@ -236,7 +235,7 @@ int mbedtls_md_clone( mbedtls_md_context_t *dst, * * \return The size of the message-digest output in Bytes. */ -unsigned char mbedtls_md_get_size( const mbedtls_md_info_t *md_info ); +unsigned char mbedtls_md_get_size(const mbedtls_md_info_t *md_info); /** * \brief This function extracts the message-digest type from the @@ -247,7 +246,7 @@ unsigned char mbedtls_md_get_size( const mbedtls_md_info_t *md_info ); * * \return The type of the message digest. */ -mbedtls_md_type_t mbedtls_md_get_type( const mbedtls_md_info_t *md_info ); +mbedtls_md_type_t mbedtls_md_get_type(const mbedtls_md_info_t *md_info); /** * \brief This function extracts the message-digest name from the @@ -258,7 +257,7 @@ mbedtls_md_type_t mbedtls_md_get_type( const mbedtls_md_info_t *md_info ); * * \return The name of the message digest. */ -const char *mbedtls_md_get_name( const mbedtls_md_info_t *md_info ); +const char *mbedtls_md_get_name(const mbedtls_md_info_t *md_info); /** * \brief This function starts a message-digest computation. @@ -274,7 +273,7 @@ const char *mbedtls_md_get_name( const mbedtls_md_info_t *md_info ); * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_starts( mbedtls_md_context_t *ctx ); +int mbedtls_md_starts(mbedtls_md_context_t *ctx); /** * \brief This function feeds an input buffer into an ongoing @@ -293,7 +292,7 @@ int mbedtls_md_starts( mbedtls_md_context_t *ctx ); * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_update( mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen ); +int mbedtls_md_update(mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen); /** * \brief This function finishes the digest operation, @@ -314,7 +313,7 @@ int mbedtls_md_update( mbedtls_md_context_t *ctx, const unsigned char *input, si * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_finish( mbedtls_md_context_t *ctx, unsigned char *output ); +int mbedtls_md_finish(mbedtls_md_context_t *ctx, unsigned char *output); /** * \brief This function calculates the message-digest of a buffer, @@ -335,8 +334,8 @@ int mbedtls_md_finish( mbedtls_md_context_t *ctx, unsigned char *output ); * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md( const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, - unsigned char *output ); +int mbedtls_md(const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, + unsigned char *output); #if defined(MBEDTLS_FS_IO) /** @@ -357,8 +356,8 @@ int mbedtls_md( const mbedtls_md_info_t *md_info, const unsigned char *input, si * \return #MBEDTLS_ERR_MD_BAD_INPUT_DATA if \p md_info was NULL. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, - unsigned char *output ); +int mbedtls_md_file(const mbedtls_md_info_t *md_info, const char *path, + unsigned char *output); #endif /* MBEDTLS_FS_IO */ /** @@ -380,8 +379,8 @@ int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, - size_t keylen ); +int mbedtls_md_hmac_starts(mbedtls_md_context_t *ctx, const unsigned char *key, + size_t keylen); /** * \brief This function feeds an input buffer into an ongoing HMAC @@ -403,8 +402,8 @@ int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_hmac_update( mbedtls_md_context_t *ctx, const unsigned char *input, - size_t ilen ); +int mbedtls_md_hmac_update(mbedtls_md_context_t *ctx, const unsigned char *input, + size_t ilen); /** * \brief This function finishes the HMAC operation, and writes @@ -425,7 +424,7 @@ int mbedtls_md_hmac_update( mbedtls_md_context_t *ctx, const unsigned char *inpu * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output); +int mbedtls_md_hmac_finish(mbedtls_md_context_t *ctx, unsigned char *output); /** * \brief This function prepares to authenticate a new message with @@ -443,7 +442,7 @@ int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output); * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_hmac_reset( mbedtls_md_context_t *ctx ); +int mbedtls_md_hmac_reset(mbedtls_md_context_t *ctx); /** * \brief This function calculates the full generic HMAC @@ -468,13 +467,13 @@ int mbedtls_md_hmac_reset( mbedtls_md_context_t *ctx ); * failure. */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_hmac( const mbedtls_md_info_t *md_info, const unsigned char *key, size_t keylen, - const unsigned char *input, size_t ilen, - unsigned char *output ); +int mbedtls_md_hmac(const mbedtls_md_info_t *md_info, const unsigned char *key, size_t keylen, + const unsigned char *input, size_t ilen, + unsigned char *output); /* Internal use */ MBEDTLS_CHECK_RETURN_TYPICAL -int mbedtls_md_process( mbedtls_md_context_t *ctx, const unsigned char *data ); +int mbedtls_md_process(mbedtls_md_context_t *ctx, const unsigned char *data); #ifdef __cplusplus } diff --git a/include/mbedtls/md5.h b/include/mbedtls/md5.h index e7befc34f..808188694 100644 --- a/include/mbedtls/md5.h +++ b/include/mbedtls/md5.h @@ -48,8 +48,7 @@ extern "C" { * stronger message digests instead. * */ -typedef struct mbedtls_md5_context -{ +typedef struct mbedtls_md5_context { uint32_t MBEDTLS_PRIVATE(total)[2]; /*!< number of bytes processed */ uint32_t MBEDTLS_PRIVATE(state)[4]; /*!< intermediate digest state */ unsigned char MBEDTLS_PRIVATE(buffer)[64]; /*!< data block being processed */ @@ -70,7 +69,7 @@ mbedtls_md5_context; * stronger message digests instead. * */ -void mbedtls_md5_init( mbedtls_md5_context *ctx ); +void mbedtls_md5_init(mbedtls_md5_context *ctx); /** * \brief Clear MD5 context @@ -82,7 +81,7 @@ void mbedtls_md5_init( mbedtls_md5_context *ctx ); * stronger message digests instead. * */ -void mbedtls_md5_free( mbedtls_md5_context *ctx ); +void mbedtls_md5_free(mbedtls_md5_context *ctx); /** * \brief Clone (the state of) an MD5 context @@ -95,8 +94,8 @@ void mbedtls_md5_free( mbedtls_md5_context *ctx ); * stronger message digests instead. * */ -void mbedtls_md5_clone( mbedtls_md5_context *dst, - const mbedtls_md5_context *src ); +void mbedtls_md5_clone(mbedtls_md5_context *dst, + const mbedtls_md5_context *src); /** * \brief MD5 context setup @@ -110,7 +109,7 @@ void mbedtls_md5_clone( mbedtls_md5_context *dst, * stronger message digests instead. * */ -int mbedtls_md5_starts( mbedtls_md5_context *ctx ); +int mbedtls_md5_starts(mbedtls_md5_context *ctx); /** * \brief MD5 process buffer @@ -126,9 +125,9 @@ int mbedtls_md5_starts( mbedtls_md5_context *ctx ); * stronger message digests instead. * */ -int mbedtls_md5_update( mbedtls_md5_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_md5_update(mbedtls_md5_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief MD5 final digest @@ -143,8 +142,8 @@ int mbedtls_md5_update( mbedtls_md5_context *ctx, * stronger message digests instead. * */ -int mbedtls_md5_finish( mbedtls_md5_context *ctx, - unsigned char output[16] ); +int mbedtls_md5_finish(mbedtls_md5_context *ctx, + unsigned char output[16]); /** * \brief MD5 process data block (internal use only) @@ -159,8 +158,8 @@ int mbedtls_md5_finish( mbedtls_md5_context *ctx, * stronger message digests instead. * */ -int mbedtls_internal_md5_process( mbedtls_md5_context *ctx, - const unsigned char data[64] ); +int mbedtls_internal_md5_process(mbedtls_md5_context *ctx, + const unsigned char data[64]); /** * \brief Output = MD5( input buffer ) @@ -176,9 +175,9 @@ int mbedtls_internal_md5_process( mbedtls_md5_context *ctx, * stronger message digests instead. * */ -int mbedtls_md5( const unsigned char *input, - size_t ilen, - unsigned char output[16] ); +int mbedtls_md5(const unsigned char *input, + size_t ilen, + unsigned char output[16]); #if defined(MBEDTLS_SELF_TEST) @@ -192,7 +191,7 @@ int mbedtls_md5( const unsigned char *input, * stronger message digests instead. * */ -int mbedtls_md5_self_test( int verbose ); +int mbedtls_md5_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/memory_buffer_alloc.h b/include/mbedtls/memory_buffer_alloc.h index 0b07974f8..9694d2458 100644 --- a/include/mbedtls/memory_buffer_alloc.h +++ b/include/mbedtls/memory_buffer_alloc.h @@ -43,7 +43,8 @@ #define MBEDTLS_MEMORY_VERIFY_NONE 0 #define MBEDTLS_MEMORY_VERIFY_ALLOC (1 << 0) #define MBEDTLS_MEMORY_VERIFY_FREE (1 << 1) -#define MBEDTLS_MEMORY_VERIFY_ALWAYS (MBEDTLS_MEMORY_VERIFY_ALLOC | MBEDTLS_MEMORY_VERIFY_FREE) +#define MBEDTLS_MEMORY_VERIFY_ALWAYS (MBEDTLS_MEMORY_VERIFY_ALLOC | \ + MBEDTLS_MEMORY_VERIFY_FREE) #ifdef __cplusplus extern "C" { @@ -64,12 +65,12 @@ extern "C" { * \param buf buffer to use as heap * \param len size of the buffer */ -void mbedtls_memory_buffer_alloc_init( unsigned char *buf, size_t len ); +void mbedtls_memory_buffer_alloc_init(unsigned char *buf, size_t len); /** * \brief Free the mutex for thread-safety and clear remaining memory */ -void mbedtls_memory_buffer_alloc_free( void ); +void mbedtls_memory_buffer_alloc_free(void); /** * \brief Determine when the allocator should automatically verify the state @@ -79,7 +80,7 @@ void mbedtls_memory_buffer_alloc_free( void ); * \param verify One of MBEDTLS_MEMORY_VERIFY_NONE, MBEDTLS_MEMORY_VERIFY_ALLOC, * MBEDTLS_MEMORY_VERIFY_FREE or MBEDTLS_MEMORY_VERIFY_ALWAYS */ -void mbedtls_memory_buffer_set_verify( int verify ); +void mbedtls_memory_buffer_set_verify(int verify); #if defined(MBEDTLS_MEMORY_DEBUG) /** @@ -88,7 +89,7 @@ void mbedtls_memory_buffer_set_verify( int verify ); * Prints out a list of 'still allocated' blocks and their stack * trace if MBEDTLS_MEMORY_BACKTRACE is defined. */ -void mbedtls_memory_buffer_alloc_status( void ); +void mbedtls_memory_buffer_alloc_status(void); /** * \brief Get the number of alloc/free so far. @@ -96,7 +97,7 @@ void mbedtls_memory_buffer_alloc_status( void ); * \param alloc_count Number of allocations. * \param free_count Number of frees. */ -void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_count ); +void mbedtls_memory_buffer_alloc_count_get(size_t *alloc_count, size_t *free_count); /** * \brief Get the peak heap usage so far @@ -106,12 +107,12 @@ void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_co * into smaller blocks but larger than the requested size. * \param max_blocks Peak number of blocks in use, including free and used */ -void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks ); +void mbedtls_memory_buffer_alloc_max_get(size_t *max_used, size_t *max_blocks); /** * \brief Reset peak statistics */ -void mbedtls_memory_buffer_alloc_max_reset( void ); +void mbedtls_memory_buffer_alloc_max_reset(void); /** * \brief Get the current heap usage @@ -121,7 +122,7 @@ void mbedtls_memory_buffer_alloc_max_reset( void ); * into smaller blocks but larger than the requested size. * \param cur_blocks Current number of blocks in use, including free and used */ -void mbedtls_memory_buffer_alloc_cur_get( size_t *cur_used, size_t *cur_blocks ); +void mbedtls_memory_buffer_alloc_cur_get(size_t *cur_used, size_t *cur_blocks); #endif /* MBEDTLS_MEMORY_DEBUG */ /** @@ -135,7 +136,7 @@ void mbedtls_memory_buffer_alloc_cur_get( size_t *cur_used, size_t *cur_blocks ) * * \return 0 if verified, 1 otherwise */ -int mbedtls_memory_buffer_alloc_verify( void ); +int mbedtls_memory_buffer_alloc_verify(void); #if defined(MBEDTLS_SELF_TEST) /** @@ -143,7 +144,7 @@ int mbedtls_memory_buffer_alloc_verify( void ); * * \return 0 if successful, or 1 if a test failed */ -int mbedtls_memory_buffer_alloc_self_test( int verbose ); +int mbedtls_memory_buffer_alloc_self_test(int verbose); #endif #ifdef __cplusplus diff --git a/include/mbedtls/net_sockets.h b/include/mbedtls/net_sockets.h index 0c754b122..14316fbed 100644 --- a/include/mbedtls/net_sockets.h +++ b/include/mbedtls/net_sockets.h @@ -92,8 +92,7 @@ extern "C" { * (eg two file descriptors for combined IPv4 + IPv6 support, or additional * structures for hand-made UDP demultiplexing). */ -typedef struct mbedtls_net_context -{ +typedef struct mbedtls_net_context { /** The underlying file descriptor. * * This field is only guaranteed to be present on POSIX/Unix-like platforms. @@ -110,7 +109,7 @@ mbedtls_net_context; * * \param ctx Context to initialize */ -void mbedtls_net_init( mbedtls_net_context *ctx ); +void mbedtls_net_init(mbedtls_net_context *ctx); /** * \brief Initiate a connection with host:port in the given protocol @@ -127,7 +126,7 @@ void mbedtls_net_init( mbedtls_net_context *ctx ); * * \note Sets the socket in connected mode even with UDP. */ -int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char *port, int proto ); +int mbedtls_net_connect(mbedtls_net_context *ctx, const char *host, const char *port, int proto); /** * \brief Create a receiving socket on bind_ip:port in the chosen @@ -147,7 +146,7 @@ int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, const char * \note Regardless of the protocol, opens the sockets and binds it. * In addition, make the socket listening if protocol is TCP. */ -int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto ); +int mbedtls_net_bind(mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto); /** * \brief Accept a connection from a remote client @@ -167,9 +166,9 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char * MBEDTLS_ERR_SSL_WANT_READ if bind_fd was set to * non-blocking and accept() would block. */ -int mbedtls_net_accept( mbedtls_net_context *bind_ctx, - mbedtls_net_context *client_ctx, - void *client_ip, size_t buf_size, size_t *ip_len ); +int mbedtls_net_accept(mbedtls_net_context *bind_ctx, + mbedtls_net_context *client_ctx, + void *client_ip, size_t buf_size, size_t *ip_len); /** * \brief Check and wait for the context to be ready for read/write @@ -196,7 +195,7 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx, * \return Bitmask composed of MBEDTLS_NET_POLL_READ/WRITE * on success or timeout, or a negative return code otherwise. */ -int mbedtls_net_poll( mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout ); +int mbedtls_net_poll(mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout); /** * \brief Set the socket blocking @@ -205,7 +204,7 @@ int mbedtls_net_poll( mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout ); * * \return 0 if successful, or a non-zero error code */ -int mbedtls_net_set_block( mbedtls_net_context *ctx ); +int mbedtls_net_set_block(mbedtls_net_context *ctx); /** * \brief Set the socket non-blocking @@ -214,7 +213,7 @@ int mbedtls_net_set_block( mbedtls_net_context *ctx ); * * \return 0 if successful, or a non-zero error code */ -int mbedtls_net_set_nonblock( mbedtls_net_context *ctx ); +int mbedtls_net_set_nonblock(mbedtls_net_context *ctx); /** * \brief Portable usleep helper @@ -224,7 +223,7 @@ int mbedtls_net_set_nonblock( mbedtls_net_context *ctx ); * \note Real amount of time slept will not be less than * select()'s timeout granularity (typically, 10ms). */ -void mbedtls_net_usleep( unsigned long usec ); +void mbedtls_net_usleep(unsigned long usec); /** * \brief Read at most 'len' characters. If no error occurs, @@ -238,7 +237,7 @@ void mbedtls_net_usleep( unsigned long usec ); * or a non-zero error code; with a non-blocking socket, * MBEDTLS_ERR_SSL_WANT_READ indicates read() would block. */ -int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len ); +int mbedtls_net_recv(void *ctx, unsigned char *buf, size_t len); /** * \brief Write at most 'len' characters. If no error occurs, @@ -252,7 +251,7 @@ int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len ); * or a non-zero error code; with a non-blocking socket, * MBEDTLS_ERR_SSL_WANT_WRITE indicates write() would block. */ -int mbedtls_net_send( void *ctx, const unsigned char *buf, size_t len ); +int mbedtls_net_send(void *ctx, const unsigned char *buf, size_t len); /** * \brief Read at most 'len' characters, blocking for at most @@ -280,22 +279,22 @@ int mbedtls_net_send( void *ctx, const unsigned char *buf, size_t len ); * non-blocking. Handling timeouts with non-blocking reads * requires a different strategy. */ -int mbedtls_net_recv_timeout( void *ctx, unsigned char *buf, size_t len, - uint32_t timeout ); +int mbedtls_net_recv_timeout(void *ctx, unsigned char *buf, size_t len, + uint32_t timeout); /** * \brief Closes down the connection and free associated data * * \param ctx The context to close */ -void mbedtls_net_close( mbedtls_net_context *ctx ); +void mbedtls_net_close(mbedtls_net_context *ctx); /** * \brief Gracefully shutdown the connection and free associated data * * \param ctx The context to free */ -void mbedtls_net_free( mbedtls_net_context *ctx ); +void mbedtls_net_free(mbedtls_net_context *ctx); #ifdef __cplusplus } diff --git a/include/mbedtls/nist_kw.h b/include/mbedtls/nist_kw.h index bd6c65841..0c95c902e 100644 --- a/include/mbedtls/nist_kw.h +++ b/include/mbedtls/nist_kw.h @@ -44,8 +44,7 @@ extern "C" { #endif -typedef enum -{ +typedef enum { MBEDTLS_KW_MODE_KW = 0, MBEDTLS_KW_MODE_KWP = 1 } mbedtls_nist_kw_mode_t; @@ -77,7 +76,7 @@ typedef struct { * \param ctx The key wrapping context to initialize. * */ -void mbedtls_nist_kw_init( mbedtls_nist_kw_context *ctx ); +void mbedtls_nist_kw_init(mbedtls_nist_kw_context *ctx); /** * \brief This function initializes the key wrapping context set in the @@ -95,11 +94,11 @@ void mbedtls_nist_kw_init( mbedtls_nist_kw_context *ctx ); * which are not supported. * \return cipher-specific error code on failure of the underlying cipher. */ -int mbedtls_nist_kw_setkey( mbedtls_nist_kw_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits, - const int is_wrap ); +int mbedtls_nist_kw_setkey(mbedtls_nist_kw_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits, + const int is_wrap); /** * \brief This function releases and clears the specified key wrapping context @@ -107,7 +106,7 @@ int mbedtls_nist_kw_setkey( mbedtls_nist_kw_context *ctx, * * \param ctx The key wrapping context to clear. */ -void mbedtls_nist_kw_free( mbedtls_nist_kw_context *ctx ); +void mbedtls_nist_kw_free(mbedtls_nist_kw_context *ctx); /** * \brief This function encrypts a buffer using key wrapping. @@ -130,9 +129,9 @@ void mbedtls_nist_kw_free( mbedtls_nist_kw_context *ctx ); * \return \c MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA for invalid input length. * \return cipher-specific error code on failure of the underlying cipher. */ -int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode, - const unsigned char *input, size_t in_len, - unsigned char *output, size_t* out_len, size_t out_size ); +int mbedtls_nist_kw_wrap(mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode, + const unsigned char *input, size_t in_len, + unsigned char *output, size_t *out_len, size_t out_size); /** * \brief This function decrypts a buffer using key wrapping. @@ -157,9 +156,9 @@ int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t m * \return \c MBEDTLS_ERR_CIPHER_AUTH_FAILED for verification failure of the ciphertext. * \return cipher-specific error code on failure of the underlying cipher. */ -int mbedtls_nist_kw_unwrap( mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode, - const unsigned char *input, size_t in_len, - unsigned char *output, size_t* out_len, size_t out_size); +int mbedtls_nist_kw_unwrap(mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t mode, + const unsigned char *input, size_t in_len, + unsigned char *output, size_t *out_len, size_t out_size); #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_AES_C) @@ -169,7 +168,7 @@ int mbedtls_nist_kw_unwrap( mbedtls_nist_kw_context *ctx, mbedtls_nist_kw_mode_t * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_nist_kw_self_test( int verbose ); +int mbedtls_nist_kw_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ #ifdef __cplusplus diff --git a/include/mbedtls/oid.h b/include/mbedtls/oid.h index e5c4b9249..a592e63c4 100644 --- a/include/mbedtls/oid.h +++ b/include/mbedtls/oid.h @@ -77,10 +77,10 @@ #define MBEDTLS_OID_COUNTRY_US "\x86\x48" /* {us(840)} */ #define MBEDTLS_OID_ORG_RSA_DATA_SECURITY "\x86\xf7\x0d" /* {rsadsi(113549)} */ #define MBEDTLS_OID_RSA_COMPANY MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \ - MBEDTLS_OID_ORG_RSA_DATA_SECURITY /* {iso(1) member-body(2) us(840) rsadsi(113549)} */ + MBEDTLS_OID_ORG_RSA_DATA_SECURITY /* {iso(1) member-body(2) us(840) rsadsi(113549)} */ #define MBEDTLS_OID_ORG_ANSI_X9_62 "\xce\x3d" /* ansi-X9-62(10045) */ #define MBEDTLS_OID_ANSI_X9_62 MBEDTLS_OID_ISO_MEMBER_BODIES MBEDTLS_OID_COUNTRY_US \ - MBEDTLS_OID_ORG_ANSI_X9_62 + MBEDTLS_OID_ORG_ANSI_X9_62 /* * ISO Identified organization OID parts @@ -91,15 +91,18 @@ #define MBEDTLS_OID_OIW_SECSIG_ALG MBEDTLS_OID_OIW_SECSIG "\x02" #define MBEDTLS_OID_OIW_SECSIG_SHA1 MBEDTLS_OID_OIW_SECSIG_ALG "\x1a" #define MBEDTLS_OID_ORG_CERTICOM "\x81\x04" /* certicom(132) */ -#define MBEDTLS_OID_CERTICOM MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_CERTICOM +#define MBEDTLS_OID_CERTICOM MBEDTLS_OID_ISO_IDENTIFIED_ORG \ + MBEDTLS_OID_ORG_CERTICOM #define MBEDTLS_OID_ORG_TELETRUST "\x24" /* teletrust(36) */ -#define MBEDTLS_OID_TELETRUST MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_TELETRUST +#define MBEDTLS_OID_TELETRUST MBEDTLS_OID_ISO_IDENTIFIED_ORG \ + MBEDTLS_OID_ORG_TELETRUST /* * ISO ITU OID parts */ #define MBEDTLS_OID_ORGANIZATION "\x01" /* {organization(1)} */ -#define MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ISO_ITU_COUNTRY MBEDTLS_OID_COUNTRY_US MBEDTLS_OID_ORGANIZATION /* {joint-iso-itu-t(2) country(16) us(840) organization(1)} */ +#define MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ISO_ITU_COUNTRY MBEDTLS_OID_COUNTRY_US \ + MBEDTLS_OID_ORGANIZATION /* {joint-iso-itu-t(2) country(16) us(840) organization(1)} */ #define MBEDTLS_OID_ORG_GOV "\x65" /* {gov(101)} */ #define MBEDTLS_OID_GOV MBEDTLS_OID_ISO_ITU_US_ORG MBEDTLS_OID_ORG_GOV /* {joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101)} */ @@ -117,7 +120,8 @@ * { iso(1) identified-organization(3) dod(6) internet(1) * security(5) mechanisms(5) pkix(7) } */ -#define MBEDTLS_OID_INTERNET MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD "\x01" +#define MBEDTLS_OID_INTERNET MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_ORG_DOD \ + "\x01" #define MBEDTLS_OID_PKIX MBEDTLS_OID_INTERNET "\x05\x05\x07" /* @@ -247,7 +251,8 @@ * Digest algorithms */ #define MBEDTLS_OID_DIGEST_ALG_MD5 MBEDTLS_OID_RSA_COMPANY "\x02\x05" /**< id-mbedtls_md5 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) digestAlgorithm(2) 5 } */ -#define MBEDTLS_OID_DIGEST_ALG_SHA1 MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_SHA1 /**< id-mbedtls_sha1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 26 } */ +#define MBEDTLS_OID_DIGEST_ALG_SHA1 MBEDTLS_OID_ISO_IDENTIFIED_ORG \ + MBEDTLS_OID_OIW_SECSIG_SHA1 /**< id-mbedtls_sha1 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 26 } */ #define MBEDTLS_OID_DIGEST_ALG_SHA224 MBEDTLS_OID_NIST_ALG "\x02\x04" /**< id-sha224 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 4 } */ #define MBEDTLS_OID_DIGEST_ALG_SHA256 MBEDTLS_OID_NIST_ALG "\x02\x01" /**< id-mbedtls_sha256 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistalgorithm(4) hashalgs(2) 1 } */ @@ -270,7 +275,8 @@ /* * Encryption algorithms */ -#define MBEDTLS_OID_DES_CBC MBEDTLS_OID_ISO_IDENTIFIED_ORG MBEDTLS_OID_OIW_SECSIG_ALG "\x07" /**< desCBC OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 7 } */ +#define MBEDTLS_OID_DES_CBC MBEDTLS_OID_ISO_IDENTIFIED_ORG \ + MBEDTLS_OID_OIW_SECSIG_ALG "\x07" /**< desCBC OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) oiw(14) secsig(3) algorithms(2) 7 } */ #define MBEDTLS_OID_DES_EDE3_CBC MBEDTLS_OID_RSA_COMPANY "\x03\x07" /**< des-ede3-cbc OBJECT IDENTIFIER ::= { iso(1) member-body(2) -- us(840) rsadsi(113549) encryptionAlgorithm(3) 7 } */ #define MBEDTLS_OID_AES MBEDTLS_OID_NIST_ALG "\x01" /** aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 1 } */ @@ -438,8 +444,7 @@ extern "C" { /** * \brief Base OID descriptor structure */ -typedef struct mbedtls_oid_descriptor_t -{ +typedef struct mbedtls_oid_descriptor_t { const char *MBEDTLS_PRIVATE(asn1); /*!< OID ASN.1 representation */ size_t MBEDTLS_PRIVATE(asn1_len); /*!< length of asn1 */ #if !defined(MBEDTLS_X509_REMOVE_INFO) @@ -459,7 +464,7 @@ typedef struct mbedtls_oid_descriptor_t * \return Length of the string written (excluding final NULL) or * MBEDTLS_ERR_OID_BUF_TOO_SMALL in case of error */ -int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_buf *oid ); +int mbedtls_oid_get_numeric_string(char *buf, size_t size, const mbedtls_asn1_buf *oid); /** * \brief Translate an X.509 extension OID into local values @@ -469,7 +474,7 @@ int mbedtls_oid_get_numeric_string( char *buf, size_t size, const mbedtls_asn1_b * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_x509_ext_type( const mbedtls_asn1_buf *oid, int *ext_type ); +int mbedtls_oid_get_x509_ext_type(const mbedtls_asn1_buf *oid, int *ext_type); /** * \brief Translate an X.509 attribute type OID into the short name @@ -480,7 +485,7 @@ int mbedtls_oid_get_x509_ext_type( const mbedtls_asn1_buf *oid, int *ext_type ); * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_attr_short_name( const mbedtls_asn1_buf *oid, const char **short_name ); +int mbedtls_oid_get_attr_short_name(const mbedtls_asn1_buf *oid, const char **short_name); /** * \brief Translate PublicKeyAlgorithm OID into pk_type @@ -490,7 +495,7 @@ int mbedtls_oid_get_attr_short_name( const mbedtls_asn1_buf *oid, const char **s * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_pk_alg( const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg ); +int mbedtls_oid_get_pk_alg(const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_alg); /** * \brief Translate pk_type into PublicKeyAlgorithm OID @@ -501,8 +506,8 @@ int mbedtls_oid_get_pk_alg( const mbedtls_asn1_buf *oid, mbedtls_pk_type_t *pk_a * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_oid_by_pk_alg( mbedtls_pk_type_t pk_alg, - const char **oid, size_t *olen ); +int mbedtls_oid_get_oid_by_pk_alg(mbedtls_pk_type_t pk_alg, + const char **oid, size_t *olen); #if defined(MBEDTLS_ECP_C) /** @@ -513,7 +518,7 @@ int mbedtls_oid_get_oid_by_pk_alg( mbedtls_pk_type_t pk_alg, * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_ec_grp( const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id ); +int mbedtls_oid_get_ec_grp(const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *grp_id); /** * \brief Translate EC group identifier into NamedCurve OID @@ -524,8 +529,8 @@ int mbedtls_oid_get_ec_grp( const mbedtls_asn1_buf *oid, mbedtls_ecp_group_id *g * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_oid_by_ec_grp( mbedtls_ecp_group_id grp_id, - const char **oid, size_t *olen ); +int mbedtls_oid_get_oid_by_ec_grp(mbedtls_ecp_group_id grp_id, + const char **oid, size_t *olen); #endif /* MBEDTLS_ECP_C */ /** @@ -537,8 +542,8 @@ int mbedtls_oid_get_oid_by_ec_grp( mbedtls_ecp_group_id grp_id, * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_sig_alg( const mbedtls_asn1_buf *oid, - mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg ); +int mbedtls_oid_get_sig_alg(const mbedtls_asn1_buf *oid, + mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg); /** * \brief Translate SignatureAlgorithm OID into description @@ -548,7 +553,7 @@ int mbedtls_oid_get_sig_alg( const mbedtls_asn1_buf *oid, * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_sig_alg_desc( const mbedtls_asn1_buf *oid, const char **desc ); +int mbedtls_oid_get_sig_alg_desc(const mbedtls_asn1_buf *oid, const char **desc); /** * \brief Translate md_type and pk_type into SignatureAlgorithm OID @@ -560,8 +565,8 @@ int mbedtls_oid_get_sig_alg_desc( const mbedtls_asn1_buf *oid, const char **desc * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_oid_by_sig_alg( mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, - const char **oid, size_t *olen ); +int mbedtls_oid_get_oid_by_sig_alg(mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, + const char **oid, size_t *olen); /** * \brief Translate hmac algorithm OID into md_type @@ -571,7 +576,7 @@ int mbedtls_oid_get_oid_by_sig_alg( mbedtls_pk_type_t pk_alg, mbedtls_md_type_t * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_md_hmac( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac ); +int mbedtls_oid_get_md_hmac(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_hmac); /** * \brief Translate hash algorithm OID into md_type @@ -581,7 +586,7 @@ int mbedtls_oid_get_md_hmac( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_ * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_md_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg ); +int mbedtls_oid_get_md_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg); #if !defined(MBEDTLS_X509_REMOVE_INFO) /** @@ -592,7 +597,7 @@ int mbedtls_oid_get_md_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_a * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_extended_key_usage( const mbedtls_asn1_buf *oid, const char **desc ); +int mbedtls_oid_get_extended_key_usage(const mbedtls_asn1_buf *oid, const char **desc); #endif /** @@ -603,7 +608,7 @@ int mbedtls_oid_get_extended_key_usage( const mbedtls_asn1_buf *oid, const char * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_certificate_policies( const mbedtls_asn1_buf *oid, const char **desc ); +int mbedtls_oid_get_certificate_policies(const mbedtls_asn1_buf *oid, const char **desc); /** * \brief Translate md_type into hash algorithm OID @@ -614,7 +619,7 @@ int mbedtls_oid_get_certificate_policies( const mbedtls_asn1_buf *oid, const cha * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_oid_by_md( mbedtls_md_type_t md_alg, const char **oid, size_t *olen ); +int mbedtls_oid_get_oid_by_md(mbedtls_md_type_t md_alg, const char **oid, size_t *olen); #if defined(MBEDTLS_CIPHER_C) /** @@ -625,7 +630,7 @@ int mbedtls_oid_get_oid_by_md( mbedtls_md_type_t md_alg, const char **oid, size_ * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_cipher_alg( const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg ); +int mbedtls_oid_get_cipher_alg(const mbedtls_asn1_buf *oid, mbedtls_cipher_type_t *cipher_alg); #endif /* MBEDTLS_CIPHER_C */ #if defined(MBEDTLS_PKCS12_C) @@ -639,8 +644,8 @@ int mbedtls_oid_get_cipher_alg( const mbedtls_asn1_buf *oid, mbedtls_cipher_type * * \return 0 if successful, or MBEDTLS_ERR_OID_NOT_FOUND */ -int mbedtls_oid_get_pkcs12_pbe_alg( const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, - mbedtls_cipher_type_t *cipher_alg ); +int mbedtls_oid_get_pkcs12_pbe_alg(const mbedtls_asn1_buf *oid, mbedtls_md_type_t *md_alg, + mbedtls_cipher_type_t *cipher_alg); #endif /* MBEDTLS_PKCS12_C */ #ifdef __cplusplus diff --git a/include/mbedtls/pem.h b/include/mbedtls/pem.h index a4c6fb89f..a33fc65e5 100644 --- a/include/mbedtls/pem.h +++ b/include/mbedtls/pem.h @@ -61,8 +61,7 @@ extern "C" { /** * \brief PEM context structure */ -typedef struct mbedtls_pem_context -{ +typedef struct mbedtls_pem_context { unsigned char *MBEDTLS_PRIVATE(buf); /*!< buffer for decoded data */ size_t MBEDTLS_PRIVATE(buflen); /*!< length of the buffer */ unsigned char *MBEDTLS_PRIVATE(info); /*!< buffer for extra header information */ @@ -74,7 +73,7 @@ mbedtls_pem_context; * * \param ctx context to be initialized */ -void mbedtls_pem_init( mbedtls_pem_context *ctx ); +void mbedtls_pem_init(mbedtls_pem_context *ctx); /** * \brief Read a buffer for PEM information and store the resulting @@ -102,10 +101,10 @@ void mbedtls_pem_init( mbedtls_pem_context *ctx ); * * \return 0 on success, or a specific PEM error code */ -int mbedtls_pem_read_buffer( mbedtls_pem_context *ctx, const char *header, const char *footer, - const unsigned char *data, - const unsigned char *pwd, - size_t pwdlen, size_t *use_len ); +int mbedtls_pem_read_buffer(mbedtls_pem_context *ctx, const char *header, const char *footer, + const unsigned char *data, + const unsigned char *pwd, + size_t pwdlen, size_t *use_len); /** * \brief Get the pointer to the decoded binary data in a PEM context. @@ -119,10 +118,10 @@ int mbedtls_pem_read_buffer( mbedtls_pem_context *ctx, const char *header, const * \note The returned pointer remains valid only until \p ctx is modified or freed. */ -static inline const unsigned char *mbedtls_pem_get_buffer( mbedtls_pem_context *ctx, size_t *buflen ) +static inline const unsigned char *mbedtls_pem_get_buffer(mbedtls_pem_context *ctx, size_t *buflen) { *buflen = ctx->MBEDTLS_PRIVATE(buflen); - return( ctx->MBEDTLS_PRIVATE(buf) ); + return ctx->MBEDTLS_PRIVATE(buf); } @@ -131,7 +130,7 @@ static inline const unsigned char *mbedtls_pem_get_buffer( mbedtls_pem_context * * * \param ctx context to be freed */ -void mbedtls_pem_free( mbedtls_pem_context *ctx ); +void mbedtls_pem_free(mbedtls_pem_context *ctx); #endif /* MBEDTLS_PEM_PARSE_C */ #if defined(MBEDTLS_PEM_WRITE_C) @@ -161,9 +160,9 @@ void mbedtls_pem_free( mbedtls_pem_context *ctx ); * the required minimum size of \p buf. * \return Another PEM or BASE64 error code on other kinds of failure. */ -int mbedtls_pem_write_buffer( const char *header, const char *footer, - const unsigned char *der_data, size_t der_len, - unsigned char *buf, size_t buf_len, size_t *olen ); +int mbedtls_pem_write_buffer(const char *header, const char *footer, + const unsigned char *der_data, size_t der_len, + unsigned char *buf, size_t buf_len, size_t *olen); #endif /* MBEDTLS_PEM_WRITE_C */ #ifdef __cplusplus diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h index 386ec4202..0392bd48e 100644 --- a/include/mbedtls/pk.h +++ b/include/mbedtls/pk.h @@ -97,8 +97,7 @@ typedef enum { * \brief Options for RSASSA-PSS signature verification. * See \c mbedtls_rsa_rsassa_pss_verify_ext() */ -typedef struct mbedtls_pk_rsassa_pss_options -{ +typedef struct mbedtls_pk_rsassa_pss_options { mbedtls_md_type_t MBEDTLS_PRIVATE(mgf1_hash_id); int MBEDTLS_PRIVATE(expected_salt_len); @@ -118,7 +117,7 @@ typedef struct mbedtls_pk_rsassa_pss_options */ #define MBEDTLS_PK_SIGNATURE_MAX_SIZE 0 -#if ( defined(MBEDTLS_RSA_C) || defined(MBEDTLS_PK_RSA_ALT_SUPPORT) ) && \ +#if (defined(MBEDTLS_RSA_C) || defined(MBEDTLS_PK_RSA_ALT_SUPPORT)) && \ MBEDTLS_MPI_MAX_SIZE > MBEDTLS_PK_SIGNATURE_MAX_SIZE /* For RSA, the signature can be as large as the bignum module allows. * For RSA_ALT, the signature size is not necessarily tied to what the @@ -152,15 +151,14 @@ typedef struct mbedtls_pk_rsassa_pss_options * types, lengths (represented by up to 2 bytes), and potential leading * zeros of the INTEGERs and the SEQUENCE. */ #undef MBEDTLS_PK_SIGNATURE_MAX_SIZE -#define MBEDTLS_PK_SIGNATURE_MAX_SIZE ( PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11 ) +#define MBEDTLS_PK_SIGNATURE_MAX_SIZE (PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE + 11) #endif #endif /* defined(MBEDTLS_USE_PSA_CRYPTO) */ /** * \brief Types for interfacing with the debug module */ -typedef enum -{ +typedef enum { MBEDTLS_PK_DEBUG_NONE = 0, MBEDTLS_PK_DEBUG_MPI, MBEDTLS_PK_DEBUG_ECP, @@ -169,8 +167,7 @@ typedef enum /** * \brief Item to send to the debug module */ -typedef struct mbedtls_pk_debug_item -{ +typedef struct mbedtls_pk_debug_item { mbedtls_pk_debug_type MBEDTLS_PRIVATE(type); const char *MBEDTLS_PRIVATE(name); void *MBEDTLS_PRIVATE(value); @@ -191,20 +188,18 @@ typedef struct mbedtls_pk_info_t mbedtls_pk_info_t; /** * \brief Public key container */ -typedef struct mbedtls_pk_context -{ - const mbedtls_pk_info_t * MBEDTLS_PRIVATE(pk_info); /**< Public key information */ - void * MBEDTLS_PRIVATE(pk_ctx); /**< Underlying public key context */ +typedef struct mbedtls_pk_context { + const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info); /**< Public key information */ + void *MBEDTLS_PRIVATE(pk_ctx); /**< Underlying public key context */ } mbedtls_pk_context; #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /** * \brief Context for resuming operations */ -typedef struct -{ - const mbedtls_pk_info_t * MBEDTLS_PRIVATE(pk_info); /**< Public key information */ - void * MBEDTLS_PRIVATE(rs_ctx); /**< Underlying restart context */ +typedef struct { + const mbedtls_pk_info_t *MBEDTLS_PRIVATE(pk_info); /**< Public key information */ + void *MBEDTLS_PRIVATE(rs_ctx); /**< Underlying restart context */ } mbedtls_pk_restart_ctx; #else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ /* Now we can declare functions that take a pointer to that */ @@ -215,14 +210,15 @@ typedef void mbedtls_pk_restart_ctx; /** * \brief Types for RSA-alt abstraction */ -typedef int (*mbedtls_pk_rsa_alt_decrypt_func)( void *ctx, size_t *olen, - const unsigned char *input, unsigned char *output, - size_t output_max_len ); -typedef int (*mbedtls_pk_rsa_alt_sign_func)( void *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_md_type_t md_alg, unsigned int hashlen, - const unsigned char *hash, unsigned char *sig ); -typedef size_t (*mbedtls_pk_rsa_alt_key_len_func)( void *ctx ); +typedef int (*mbedtls_pk_rsa_alt_decrypt_func)(void *ctx, size_t *olen, + const unsigned char *input, unsigned char *output, + size_t output_max_len); +typedef int (*mbedtls_pk_rsa_alt_sign_func)(void *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, unsigned int hashlen, + const unsigned char *hash, unsigned char *sig); +typedef size_t (*mbedtls_pk_rsa_alt_key_len_func)(void *ctx); #endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ /** @@ -232,7 +228,7 @@ typedef size_t (*mbedtls_pk_rsa_alt_key_len_func)( void *ctx ); * * \return The PK info associated with the type or NULL if not found. */ -const mbedtls_pk_info_t *mbedtls_pk_info_from_type( mbedtls_pk_type_t pk_type ); +const mbedtls_pk_info_t *mbedtls_pk_info_from_type(mbedtls_pk_type_t pk_type); /** * \brief Initialize a #mbedtls_pk_context (as NONE). @@ -240,7 +236,7 @@ const mbedtls_pk_info_t *mbedtls_pk_info_from_type( mbedtls_pk_type_t pk_type ); * \param ctx The context to initialize. * This must not be \c NULL. */ -void mbedtls_pk_init( mbedtls_pk_context *ctx ); +void mbedtls_pk_init(mbedtls_pk_context *ctx); /** * \brief Free the components of a #mbedtls_pk_context. @@ -253,7 +249,7 @@ void mbedtls_pk_init( mbedtls_pk_context *ctx ); * PSA key and you still need to call psa_destroy_key() * independently if you want to destroy that key. */ -void mbedtls_pk_free( mbedtls_pk_context *ctx ); +void mbedtls_pk_free(mbedtls_pk_context *ctx); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /** @@ -262,7 +258,7 @@ void mbedtls_pk_free( mbedtls_pk_context *ctx ); * \param ctx The context to initialize. * This must not be \c NULL. */ -void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx ); +void mbedtls_pk_restart_init(mbedtls_pk_restart_ctx *ctx); /** * \brief Free the components of a restart context @@ -270,7 +266,7 @@ void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx ); * \param ctx The context to clear. It must have been initialized. * If this is \c NULL, this function does nothing. */ -void mbedtls_pk_restart_free( mbedtls_pk_restart_ctx *ctx ); +void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx); #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ /** @@ -288,7 +284,7 @@ void mbedtls_pk_restart_free( mbedtls_pk_restart_ctx *ctx ); * \note For contexts holding an RSA-alt key, use * \c mbedtls_pk_setup_rsa_alt() instead. */ -int mbedtls_pk_setup( mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info ); +int mbedtls_pk_setup(mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info); #if defined(MBEDTLS_USE_PSA_CRYPTO) /** @@ -319,8 +315,8 @@ int mbedtls_pk_setup( mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info ); * ECC key pair. * \return #MBEDTLS_ERR_PK_ALLOC_FAILED on allocation failure. */ -int mbedtls_pk_setup_opaque( mbedtls_pk_context *ctx, - const mbedtls_svc_key_id_t key ); +int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx, + const mbedtls_svc_key_id_t key); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) @@ -339,10 +335,10 @@ int mbedtls_pk_setup_opaque( mbedtls_pk_context *ctx, * * \note This function replaces \c mbedtls_pk_setup() for RSA-alt. */ -int mbedtls_pk_setup_rsa_alt( mbedtls_pk_context *ctx, void * key, - mbedtls_pk_rsa_alt_decrypt_func decrypt_func, - mbedtls_pk_rsa_alt_sign_func sign_func, - mbedtls_pk_rsa_alt_key_len_func key_len_func ); +int mbedtls_pk_setup_rsa_alt(mbedtls_pk_context *ctx, void *key, + mbedtls_pk_rsa_alt_decrypt_func decrypt_func, + mbedtls_pk_rsa_alt_sign_func sign_func, + mbedtls_pk_rsa_alt_key_len_func key_len_func); #endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ /** @@ -352,7 +348,7 @@ int mbedtls_pk_setup_rsa_alt( mbedtls_pk_context *ctx, void * key, * * \return Key size in bits, or 0 on error */ -size_t mbedtls_pk_get_bitlen( const mbedtls_pk_context *ctx ); +size_t mbedtls_pk_get_bitlen(const mbedtls_pk_context *ctx); /** * \brief Get the length in bytes of the underlying key @@ -361,9 +357,9 @@ size_t mbedtls_pk_get_bitlen( const mbedtls_pk_context *ctx ); * * \return Key length in bytes, or 0 on error */ -static inline size_t mbedtls_pk_get_len( const mbedtls_pk_context *ctx ) +static inline size_t mbedtls_pk_get_len(const mbedtls_pk_context *ctx) { - return( ( mbedtls_pk_get_bitlen( ctx ) + 7 ) / 8 ); + return (mbedtls_pk_get_bitlen(ctx) + 7) / 8; } /** @@ -378,7 +374,7 @@ static inline size_t mbedtls_pk_get_len( const mbedtls_pk_context *ctx ) * been initialized but not set up, or that has been * cleared with mbedtls_pk_free(). */ -int mbedtls_pk_can_do( const mbedtls_pk_context *ctx, mbedtls_pk_type_t type ); +int mbedtls_pk_can_do(const mbedtls_pk_context *ctx, mbedtls_pk_type_t type); #if defined(MBEDTLS_USE_PSA_CRYPTO) /** @@ -408,8 +404,8 @@ int mbedtls_pk_can_do( const mbedtls_pk_context *ctx, mbedtls_pk_type_t type ); * for a context that has been initialized but not set up * or that has been cleared with mbedtls_pk_free(). */ -int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, - psa_key_usage_t usage ); +int mbedtls_pk_can_do_ext(const mbedtls_pk_context *ctx, psa_algorithm_t alg, + psa_key_usage_t usage); #endif /* MBEDTLS_USE_PSA_CRYPTO */ /** @@ -439,9 +435,9 @@ int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, * Use \c mbedtls_pk_verify_ext( MBEDTLS_PK_RSASSA_PSS, ... ) * to verify RSASSA_PSS signatures. */ -int mbedtls_pk_verify( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ); +int mbedtls_pk_verify(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len); /** * \brief Restartable version of \c mbedtls_pk_verify() @@ -463,11 +459,11 @@ int mbedtls_pk_verify( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of * operations was reached: see \c mbedtls_ecp_set_max_ops(). */ -int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - mbedtls_pk_restart_ctx *rs_ctx ); +int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + mbedtls_pk_restart_ctx *rs_ctx); /** * \brief Verify signature, with options. @@ -500,10 +496,10 @@ int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, * #MBEDTLS_USE_PSA_CRYPTO is defined, the salt length is not * verified as PSA_ALG_RSA_PSS_ANY_SALT is used. */ -int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, - mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ); +int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options, + mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len); /** * \brief Make signature, including padding if relevant. @@ -533,10 +529,10 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, * \note For RSA, md_alg may be MBEDTLS_MD_NONE if hash_len != 0. * For ECDSA, md_alg may never be MBEDTLS_MD_NONE. */ -int mbedtls_pk_sign( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_pk_sign(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); #if defined(MBEDTLS_PSA_CRYPTO_C) /** @@ -568,13 +564,13 @@ int mbedtls_pk_sign( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, * For ECDSA, md_alg may never be MBEDTLS_MD_NONE. * */ -int mbedtls_pk_sign_ext( mbedtls_pk_type_t pk_type, - mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_pk_sign_ext(mbedtls_pk_type_t pk_type, + mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #endif /* MBEDTLS_PSA_CRYPTO_C */ /** @@ -606,12 +602,12 @@ int mbedtls_pk_sign_ext( mbedtls_pk_type_t pk_type, * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of * operations was reached: see \c mbedtls_ecp_set_max_ops(). */ -int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_pk_restart_ctx *rs_ctx ); +int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_pk_restart_ctx *rs_ctx); /** * \brief Decrypt message (including padding if relevant). @@ -630,10 +626,10 @@ int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, * * \return 0 on success, or a specific error code. */ -int mbedtls_pk_decrypt( mbedtls_pk_context *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_pk_decrypt(mbedtls_pk_context *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** * \brief Encrypt message (including padding if relevant). @@ -653,10 +649,10 @@ int mbedtls_pk_decrypt( mbedtls_pk_context *ctx, * * \return 0 on success, or a specific error code. */ -int mbedtls_pk_encrypt( mbedtls_pk_context *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_pk_encrypt(mbedtls_pk_context *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** * \brief Check if a public-private pair of keys matches. @@ -672,10 +668,10 @@ int mbedtls_pk_encrypt( mbedtls_pk_context *ctx, * \return #MBEDTLS_ERR_PK_BAD_INPUT_DATA if a context is invalid. * \return Another non-zero value if the keys do not match. */ -int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, - const mbedtls_pk_context *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_pk_check_pair(const mbedtls_pk_context *pub, + const mbedtls_pk_context *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Export debug information @@ -685,7 +681,7 @@ int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, * * \return 0 on success or MBEDTLS_ERR_PK_BAD_INPUT_DATA */ -int mbedtls_pk_debug( const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items ); +int mbedtls_pk_debug(const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items); /** * \brief Access the type name @@ -694,7 +690,7 @@ int mbedtls_pk_debug( const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *item * * \return Type name on success, or "invalid PK" */ -const char * mbedtls_pk_get_name( const mbedtls_pk_context *ctx ); +const char *mbedtls_pk_get_name(const mbedtls_pk_context *ctx); /** * \brief Get the key type @@ -704,7 +700,7 @@ const char * mbedtls_pk_get_name( const mbedtls_pk_context *ctx ); * \return Type on success. * \return #MBEDTLS_PK_NONE for a context that has not been set up. */ -mbedtls_pk_type_t mbedtls_pk_get_type( const mbedtls_pk_context *ctx ); +mbedtls_pk_type_t mbedtls_pk_get_type(const mbedtls_pk_context *ctx); #if defined(MBEDTLS_RSA_C) /** @@ -717,14 +713,13 @@ mbedtls_pk_type_t mbedtls_pk_get_type( const mbedtls_pk_context *ctx ); * * \return The internal RSA context held by the PK context, or NULL. */ -static inline mbedtls_rsa_context *mbedtls_pk_rsa( const mbedtls_pk_context pk ) +static inline mbedtls_rsa_context *mbedtls_pk_rsa(const mbedtls_pk_context pk) { - switch( mbedtls_pk_get_type( &pk ) ) - { + switch (mbedtls_pk_get_type(&pk)) { case MBEDTLS_PK_RSA: - return( (mbedtls_rsa_context *) (pk).MBEDTLS_PRIVATE(pk_ctx) ); + return (mbedtls_rsa_context *) (pk).MBEDTLS_PRIVATE(pk_ctx); default: - return( NULL ); + return NULL; } } #endif /* MBEDTLS_RSA_C */ @@ -741,16 +736,15 @@ static inline mbedtls_rsa_context *mbedtls_pk_rsa( const mbedtls_pk_context pk ) * * \return The internal EC context held by the PK context, or NULL. */ -static inline mbedtls_ecp_keypair *mbedtls_pk_ec( const mbedtls_pk_context pk ) +static inline mbedtls_ecp_keypair *mbedtls_pk_ec(const mbedtls_pk_context pk) { - switch( mbedtls_pk_get_type( &pk ) ) - { + switch (mbedtls_pk_get_type(&pk)) { case MBEDTLS_PK_ECKEY: case MBEDTLS_PK_ECKEY_DH: case MBEDTLS_PK_ECDSA: - return( (mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx) ); + return (mbedtls_ecp_keypair *) (pk).MBEDTLS_PRIVATE(pk_ctx); default: - return( NULL ); + return NULL; } } #endif /* MBEDTLS_ECP_C */ @@ -787,10 +781,10 @@ static inline mbedtls_ecp_keypair *mbedtls_pk_ec( const mbedtls_pk_context pk ) * * \return 0 if successful, or a specific PK or PEM error code */ -int mbedtls_pk_parse_key( mbedtls_pk_context *ctx, - const unsigned char *key, size_t keylen, - const unsigned char *pwd, size_t pwdlen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_pk_parse_key(mbedtls_pk_context *ctx, + const unsigned char *key, size_t keylen, + const unsigned char *pwd, size_t pwdlen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** \ingroup pk_module */ /** @@ -814,8 +808,8 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *ctx, * * \return 0 if successful, or a specific PK or PEM error code */ -int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx, - const unsigned char *key, size_t keylen ); +int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx, + const unsigned char *key, size_t keylen); #if defined(MBEDTLS_FS_IO) /** \ingroup pk_module */ @@ -841,9 +835,9 @@ int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx, * * \return 0 if successful, or a specific PK or PEM error code */ -int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx, - const char *path, const char *password, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx, + const char *path, const char *password, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); /** \ingroup pk_module */ /** @@ -862,7 +856,7 @@ int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx, * * \return 0 if successful, or a specific PK or PEM error code */ -int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ); +int mbedtls_pk_parse_public_keyfile(mbedtls_pk_context *ctx, const char *path); #endif /* MBEDTLS_FS_IO */ #endif /* MBEDTLS_PK_PARSE_C */ @@ -880,7 +874,7 @@ int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ) * \return length of data written if successful, or a specific * error code */ -int mbedtls_pk_write_key_der( const mbedtls_pk_context *ctx, unsigned char *buf, size_t size ); +int mbedtls_pk_write_key_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size); /** * \brief Write a public key to a SubjectPublicKeyInfo DER structure @@ -895,7 +889,7 @@ int mbedtls_pk_write_key_der( const mbedtls_pk_context *ctx, unsigned char *buf, * \return length of data written if successful, or a specific * error code */ -int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *ctx, unsigned char *buf, size_t size ); +int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size); #if defined(MBEDTLS_PEM_WRITE_C) /** @@ -908,7 +902,7 @@ int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *ctx, unsigned char *b * * \return 0 if successful, or a specific error code */ -int mbedtls_pk_write_pubkey_pem( const mbedtls_pk_context *ctx, unsigned char *buf, size_t size ); +int mbedtls_pk_write_pubkey_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size); /** * \brief Write a private key to a PKCS#1 or SEC1 PEM string @@ -920,7 +914,7 @@ int mbedtls_pk_write_pubkey_pem( const mbedtls_pk_context *ctx, unsigned char *b * * \return 0 if successful, or a specific error code */ -int mbedtls_pk_write_key_pem( const mbedtls_pk_context *ctx, unsigned char *buf, size_t size ); +int mbedtls_pk_write_key_pem(const mbedtls_pk_context *ctx, unsigned char *buf, size_t size); #endif /* MBEDTLS_PEM_WRITE_C */ #endif /* MBEDTLS_PK_WRITE_C */ @@ -940,8 +934,8 @@ int mbedtls_pk_write_key_pem( const mbedtls_pk_context *ctx, unsigned char *buf, * * \return 0 if successful, or a specific PK error code */ -int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, - mbedtls_pk_context *pk ); +int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end, + mbedtls_pk_context *pk); #endif /* MBEDTLS_PK_PARSE_C */ #if defined(MBEDTLS_PK_WRITE_C) @@ -955,8 +949,8 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, * * \return the length written or a negative error code */ -int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, - const mbedtls_pk_context *key ); +int mbedtls_pk_write_pubkey(unsigned char **p, unsigned char *start, + const mbedtls_pk_context *key); #endif /* MBEDTLS_PK_WRITE_C */ /* @@ -964,7 +958,7 @@ int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, * know you do. */ #if defined(MBEDTLS_FS_IO) -int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n ); +int mbedtls_pk_load_file(const char *path, unsigned char **buf, size_t *n); #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -987,11 +981,11 @@ int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n ); * \return \c 0 if successful. * \return An Mbed TLS error code otherwise. */ -int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, - mbedtls_svc_key_id_t *key, - psa_algorithm_t alg, - psa_key_usage_t usage, - psa_algorithm_t alg2 ); +int mbedtls_pk_wrap_as_opaque(mbedtls_pk_context *pk, + mbedtls_svc_key_id_t *key, + psa_algorithm_t alg, + psa_key_usage_t usage, + psa_algorithm_t alg2); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #ifdef __cplusplus diff --git a/include/mbedtls/pkcs12.h b/include/mbedtls/pkcs12.h index 327996a9e..eb9e2d9df 100644 --- a/include/mbedtls/pkcs12.h +++ b/include/mbedtls/pkcs12.h @@ -70,11 +70,11 @@ extern "C" { * * \return 0 if successful, or a MBEDTLS_ERR_XXX code */ -int mbedtls_pkcs12_pbe( mbedtls_asn1_buf *pbe_params, int mode, - mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *input, size_t len, - unsigned char *output ); +int mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode, + mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *input, size_t len, + unsigned char *output); #endif /* MBEDTLS_ASN1_PARSE_C */ @@ -105,10 +105,10 @@ int mbedtls_pkcs12_pbe( mbedtls_asn1_buf *pbe_params, int mode, * * \return 0 if successful, or a MD, BIGNUM type error. */ -int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *salt, size_t saltlen, - mbedtls_md_type_t mbedtls_md, int id, int iterations ); +int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *salt, size_t saltlen, + mbedtls_md_type_t mbedtls_md, int id, int iterations); #ifdef __cplusplus } diff --git a/include/mbedtls/pkcs5.h b/include/mbedtls/pkcs5.h index cf156644d..152b45fb1 100644 --- a/include/mbedtls/pkcs5.h +++ b/include/mbedtls/pkcs5.h @@ -63,10 +63,10 @@ extern "C" { * * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails. */ -int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *data, size_t datalen, - unsigned char *output ); +int mbedtls_pkcs5_pbes2(const mbedtls_asn1_buf *pbe_params, int mode, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *data, size_t datalen, + unsigned char *output); #endif /* MBEDTLS_ASN1_PARSE_C */ @@ -84,11 +84,11 @@ int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, * * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails. */ -int mbedtls_pkcs5_pbkdf2_hmac_ext( mbedtls_md_type_t md_type, - const unsigned char *password, - size_t plen, const unsigned char *salt, size_t slen, - unsigned int iteration_count, - uint32_t key_length, unsigned char *output ); +int mbedtls_pkcs5_pbkdf2_hmac_ext(mbedtls_md_type_t md_type, + const unsigned char *password, + size_t plen, const unsigned char *salt, size_t slen, + unsigned int iteration_count, + uint32_t key_length, unsigned char *output); #if defined(MBEDTLS_MD_C) #if !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -108,11 +108,14 @@ int mbedtls_pkcs5_pbkdf2_hmac_ext( mbedtls_md_type_t md_type, * * \returns 0 on success, or a MBEDTLS_ERR_XXX code if verification fails. */ -int MBEDTLS_DEPRECATED mbedtls_pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, - const unsigned char *password, - size_t plen, const unsigned char *salt, size_t slen, - unsigned int iteration_count, - uint32_t key_length, unsigned char *output ); +int MBEDTLS_DEPRECATED mbedtls_pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx, + const unsigned char *password, + size_t plen, + const unsigned char *salt, + size_t slen, + unsigned int iteration_count, + uint32_t key_length, + unsigned char *output); #endif /* !MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_MD_C */ #if defined(MBEDTLS_SELF_TEST) @@ -122,7 +125,7 @@ int MBEDTLS_DEPRECATED mbedtls_pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, * * \return 0 if successful, or 1 if the test failed */ -int mbedtls_pkcs5_self_test( int verbose ); +int mbedtls_pkcs5_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/pkcs7.h b/include/mbedtls/pkcs7.h index bf61a63a0..835d2c1a5 100644 --- a/include/mbedtls/pkcs7.h +++ b/include/mbedtls/pkcs7.h @@ -121,8 +121,7 @@ mbedtls_pkcs7_type; /** * Structure holding PKCS7 signer info */ -typedef struct mbedtls_pkcs7_signer_info -{ +typedef struct mbedtls_pkcs7_signer_info { int MBEDTLS_PRIVATE(version); mbedtls_x509_buf MBEDTLS_PRIVATE(serial); mbedtls_x509_name MBEDTLS_PRIVATE(issuer); @@ -137,8 +136,7 @@ mbedtls_pkcs7_signer_info; /** * Structure holding attached data as part of PKCS7 signed data format */ -typedef struct mbedtls_pkcs7_data -{ +typedef struct mbedtls_pkcs7_data { mbedtls_pkcs7_buf MBEDTLS_PRIVATE(oid); mbedtls_pkcs7_buf MBEDTLS_PRIVATE(data); } @@ -147,8 +145,7 @@ mbedtls_pkcs7_data; /** * Structure holding the signed data section */ -typedef struct mbedtls_pkcs7_signed_data -{ +typedef struct mbedtls_pkcs7_signed_data { int MBEDTLS_PRIVATE(version); mbedtls_pkcs7_buf MBEDTLS_PRIVATE(digest_alg_identifiers); struct mbedtls_pkcs7_data MBEDTLS_PRIVATE(content); @@ -164,8 +161,7 @@ mbedtls_pkcs7_signed_data; /** * Structure holding PKCS7 structure, only signed data for now */ -typedef struct mbedtls_pkcs7 -{ +typedef struct mbedtls_pkcs7 { mbedtls_pkcs7_buf MBEDTLS_PRIVATE(raw); mbedtls_pkcs7_buf MBEDTLS_PRIVATE(content_type_oid); mbedtls_pkcs7_signed_data MBEDTLS_PRIVATE(signed_data); @@ -177,7 +173,7 @@ mbedtls_pkcs7; * * \param pkcs7 pkcs7 structure. */ -void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ); +void mbedtls_pkcs7_init(mbedtls_pkcs7 *pkcs7); /** * \brief Parse a single DER formatted pkcs7 content. @@ -193,8 +189,8 @@ void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ); * \return The \c mbedtls_pkcs7_type of \p buf, if successful. * \return A negative error code on failure. */ -int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, - const size_t buflen ); +int mbedtls_pkcs7_parse_der(mbedtls_pkcs7 *pkcs7, const unsigned char *buf, + const size_t buflen); /** * \brief Verification of PKCS7 signature against a caller-supplied @@ -220,10 +216,10 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, * * \return 0 if the signature verifies, or a negative error code on failure. */ -int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, - const mbedtls_x509_crt *cert, - const unsigned char *data, - size_t datalen ); +int mbedtls_pkcs7_signed_data_verify(mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen); /** * \brief Verification of PKCS7 signature against a caller-supplied @@ -249,9 +245,9 @@ int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, * * \return 0 if the signature verifies, or a negative error code on failure. */ -int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, - const mbedtls_x509_crt *cert, - const unsigned char *hash, size_t hashlen); +int mbedtls_pkcs7_signed_hash_verify(mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *hash, size_t hashlen); /** * \brief Unallocate all PKCS7 data and zeroize the memory. @@ -259,7 +255,7 @@ int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, * * \param pkcs7 PKCS7 structure to free. */ -void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ); +void mbedtls_pkcs7_free(mbedtls_pkcs7 *pkcs7); #ifdef __cplusplus } diff --git a/include/mbedtls/platform.h b/include/mbedtls/platform.h index 62e12d267..f65158719 100644 --- a/include/mbedtls/platform.h +++ b/include/mbedtls/platform.h @@ -144,8 +144,8 @@ extern "C" { #else /* For size_t */ #include -extern void *mbedtls_calloc( size_t n, size_t size ); -extern void mbedtls_free( void *ptr ); +extern void *mbedtls_calloc(size_t n, size_t size); +extern void mbedtls_free(void *ptr); /** * \brief This function dynamically sets the memory-management @@ -156,8 +156,8 @@ extern void mbedtls_free( void *ptr ); * * \return \c 0. */ -int mbedtls_platform_set_calloc_free( void * (*calloc_func)( size_t, size_t ), - void (*free_func)( void * ) ); +int mbedtls_platform_set_calloc_free(void *(*calloc_func)(size_t, size_t), + void (*free_func)(void *)); #endif /* MBEDTLS_PLATFORM_FREE_MACRO && MBEDTLS_PLATFORM_CALLOC_MACRO */ #else /* !MBEDTLS_PLATFORM_MEMORY */ #define mbedtls_free free @@ -170,7 +170,7 @@ int mbedtls_platform_set_calloc_free( void * (*calloc_func)( size_t, size_t ), #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) /* We need FILE * */ #include -extern int (*mbedtls_fprintf)( FILE *stream, const char *format, ... ); +extern int (*mbedtls_fprintf)(FILE *stream, const char *format, ...); /** * \brief This function dynamically configures the fprintf @@ -181,8 +181,8 @@ extern int (*mbedtls_fprintf)( FILE *stream, const char *format, ... ); * * \return \c 0. */ -int mbedtls_platform_set_fprintf( int (*fprintf_func)( FILE *stream, const char *, - ... ) ); +int mbedtls_platform_set_fprintf(int (*fprintf_func)(FILE *stream, const char *, + ...)); #else #if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) #define mbedtls_fprintf MBEDTLS_PLATFORM_FPRINTF_MACRO @@ -195,7 +195,7 @@ int mbedtls_platform_set_fprintf( int (*fprintf_func)( FILE *stream, const char * The function pointers for printf */ #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) -extern int (*mbedtls_printf)( const char *format, ... ); +extern int (*mbedtls_printf)(const char *format, ...); /** * \brief This function dynamically configures the snprintf @@ -206,7 +206,7 @@ extern int (*mbedtls_printf)( const char *format, ... ); * * \return \c 0 on success. */ -int mbedtls_platform_set_printf( int (*printf_func)( const char *, ... ) ); +int mbedtls_platform_set_printf(int (*printf_func)(const char *, ...)); #else /* !MBEDTLS_PLATFORM_PRINTF_ALT */ #if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) #define mbedtls_printf MBEDTLS_PLATFORM_PRINTF_MACRO @@ -226,11 +226,11 @@ int mbedtls_platform_set_printf( int (*printf_func)( const char *, ... ) ); */ #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) /* For Windows (inc. MSYS2), we provide our own fixed implementation */ -int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... ); +int mbedtls_platform_win32_snprintf(char *s, size_t n, const char *fmt, ...); #endif #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) -extern int (*mbedtls_snprintf)( char * s, size_t n, const char * format, ... ); +extern int (*mbedtls_snprintf)(char *s, size_t n, const char *format, ...); /** * \brief This function allows configuring a custom @@ -240,8 +240,8 @@ extern int (*mbedtls_snprintf)( char * s, size_t n, const char * format, ... ); * * \return \c 0 on success. */ -int mbedtls_platform_set_snprintf( int (*snprintf_func)( char * s, size_t n, - const char * format, ... ) ); +int mbedtls_platform_set_snprintf(int (*snprintf_func)(char *s, size_t n, + const char *format, ...)); #else /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ #if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) #define mbedtls_snprintf MBEDTLS_PLATFORM_SNPRINTF_MACRO @@ -262,12 +262,12 @@ int mbedtls_platform_set_snprintf( int (*snprintf_func)( char * s, size_t n, #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) #include /* For Older Windows (inc. MSYS2), we provide our own fixed implementation */ -int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_list arg ); +int mbedtls_platform_win32_vsnprintf(char *s, size_t n, const char *fmt, va_list arg); #endif #if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) #include -extern int (*mbedtls_vsnprintf)( char * s, size_t n, const char * format, va_list arg ); +extern int (*mbedtls_vsnprintf)(char *s, size_t n, const char *format, va_list arg); /** * \brief Set your own snprintf function pointer @@ -276,8 +276,8 @@ extern int (*mbedtls_vsnprintf)( char * s, size_t n, const char * format, va_lis * * \return \c 0 */ -int mbedtls_platform_set_vsnprintf( int (*vsnprintf_func)( char * s, size_t n, - const char * format, va_list arg ) ); +int mbedtls_platform_set_vsnprintf(int (*vsnprintf_func)(char *s, size_t n, + const char *format, va_list arg)); #else /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ #if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) #define mbedtls_vsnprintf MBEDTLS_PLATFORM_VSNPRINTF_MACRO @@ -307,7 +307,7 @@ int mbedtls_platform_set_vsnprintf( int (*vsnprintf_func)( char * s, size_t n, * The library always calls this function with * `buf` equal to `NULL`. */ -extern void (*mbedtls_setbuf)( FILE *stream, char *buf ); +extern void (*mbedtls_setbuf)(FILE *stream, char *buf); /** * \brief Dynamically configure the function that is called @@ -318,8 +318,8 @@ extern void (*mbedtls_setbuf)( FILE *stream, char *buf ); * * \return \c 0 */ -int mbedtls_platform_set_setbuf( void (*setbuf_func)( - FILE *stream, char *buf ) ); +int mbedtls_platform_set_setbuf(void (*setbuf_func)( + FILE *stream, char *buf)); #elif defined(MBEDTLS_PLATFORM_SETBUF_MACRO) /** * \brief Macro defining the function for the library to @@ -340,7 +340,7 @@ int mbedtls_platform_set_setbuf( void (*setbuf_func)( * The function pointers for exit */ #if defined(MBEDTLS_PLATFORM_EXIT_ALT) -extern void (*mbedtls_exit)( int status ); +extern void (*mbedtls_exit)(int status); /** * \brief This function dynamically configures the exit @@ -351,7 +351,7 @@ extern void (*mbedtls_exit)( int status ); * * \return \c 0 on success. */ -int mbedtls_platform_set_exit( void (*exit_func)( int status ) ); +int mbedtls_platform_set_exit(void (*exit_func)(int status)); #else #if defined(MBEDTLS_PLATFORM_EXIT_MACRO) #define mbedtls_exit MBEDTLS_PLATFORM_EXIT_MACRO @@ -383,13 +383,13 @@ int mbedtls_platform_set_exit( void (*exit_func)( int status ) ); #if defined(MBEDTLS_ENTROPY_NV_SEED) #if !defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) && defined(MBEDTLS_FS_IO) /* Internal standard platform definitions */ -int mbedtls_platform_std_nv_seed_read( unsigned char *buf, size_t buf_len ); -int mbedtls_platform_std_nv_seed_write( unsigned char *buf, size_t buf_len ); +int mbedtls_platform_std_nv_seed_read(unsigned char *buf, size_t buf_len); +int mbedtls_platform_std_nv_seed_write(unsigned char *buf, size_t buf_len); #endif #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) -extern int (*mbedtls_nv_seed_read)( unsigned char *buf, size_t buf_len ); -extern int (*mbedtls_nv_seed_write)( unsigned char *buf, size_t buf_len ); +extern int (*mbedtls_nv_seed_read)(unsigned char *buf, size_t buf_len); +extern int (*mbedtls_nv_seed_write)(unsigned char *buf, size_t buf_len); /** * \brief This function allows configuring custom seed file writing and @@ -401,9 +401,9 @@ extern int (*mbedtls_nv_seed_write)( unsigned char *buf, size_t buf_len ); * \return \c 0 on success. */ int mbedtls_platform_set_nv_seed( - int (*nv_seed_read_func)( unsigned char *buf, size_t buf_len ), - int (*nv_seed_write_func)( unsigned char *buf, size_t buf_len ) - ); + int (*nv_seed_read_func)(unsigned char *buf, size_t buf_len), + int (*nv_seed_write_func)(unsigned char *buf, size_t buf_len) + ); #else #if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) && \ defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) @@ -424,8 +424,7 @@ int mbedtls_platform_set_nv_seed( * \note This structure may be used to assist platform-specific * setup or teardown operations. */ -typedef struct mbedtls_platform_context -{ +typedef struct mbedtls_platform_context { char MBEDTLS_PRIVATE(dummy); /**< A placeholder member, as empty structs are not portable. */ } mbedtls_platform_context; @@ -449,7 +448,7 @@ mbedtls_platform_context; * * \return \c 0 on success. */ -int mbedtls_platform_setup( mbedtls_platform_context *ctx ); +int mbedtls_platform_setup(mbedtls_platform_context *ctx); /** * \brief This function performs any platform teardown operations. * @@ -464,7 +463,7 @@ int mbedtls_platform_setup( mbedtls_platform_context *ctx ); * \param ctx The platform context. * */ -void mbedtls_platform_teardown( mbedtls_platform_context *ctx ); +void mbedtls_platform_teardown(mbedtls_platform_context *ctx); #ifdef __cplusplus } diff --git a/include/mbedtls/platform_time.h b/include/mbedtls/platform_time.h index 8bef55378..eae6f5f87 100644 --- a/include/mbedtls/platform_time.h +++ b/include/mbedtls/platform_time.h @@ -43,7 +43,7 @@ typedef time_t mbedtls_time_t; * The function pointers for time */ #if defined(MBEDTLS_PLATFORM_TIME_ALT) -extern mbedtls_time_t (*mbedtls_time)( mbedtls_time_t* time ); +extern mbedtls_time_t (*mbedtls_time)(mbedtls_time_t *time); /** * \brief Set your own time function pointer @@ -52,7 +52,7 @@ extern mbedtls_time_t (*mbedtls_time)( mbedtls_time_t* time ); * * \return 0 */ -int mbedtls_platform_set_time( mbedtls_time_t (*time_func)( mbedtls_time_t* time ) ); +int mbedtls_platform_set_time(mbedtls_time_t (*time_func)(mbedtls_time_t *time)); #else #if defined(MBEDTLS_PLATFORM_TIME_MACRO) #define mbedtls_time MBEDTLS_PLATFORM_TIME_MACRO diff --git a/include/mbedtls/platform_util.h b/include/mbedtls/platform_util.h index ecd36dab5..edbde9440 100644 --- a/include/mbedtls/platform_util.h +++ b/include/mbedtls/platform_util.h @@ -36,23 +36,23 @@ extern "C" { #endif /* Internal macros meant to be called only from within the library. */ -#define MBEDTLS_INTERNAL_VALIDATE_RET( cond, ret ) do { } while( 0 ) -#define MBEDTLS_INTERNAL_VALIDATE( cond ) do { } while( 0 ) +#define MBEDTLS_INTERNAL_VALIDATE_RET(cond, ret) do { } while (0) +#define MBEDTLS_INTERNAL_VALIDATE(cond) do { } while (0) /* Internal helper macros for deprecating API constants. */ #if !defined(MBEDTLS_DEPRECATED_REMOVED) #if defined(MBEDTLS_DEPRECATED_WARNING) #define MBEDTLS_DEPRECATED __attribute__((deprecated)) -MBEDTLS_DEPRECATED typedef char const * mbedtls_deprecated_string_constant_t; -#define MBEDTLS_DEPRECATED_STRING_CONSTANT( VAL ) \ - ( (mbedtls_deprecated_string_constant_t) ( VAL ) ) +MBEDTLS_DEPRECATED typedef char const *mbedtls_deprecated_string_constant_t; +#define MBEDTLS_DEPRECATED_STRING_CONSTANT(VAL) \ + ((mbedtls_deprecated_string_constant_t) (VAL)) MBEDTLS_DEPRECATED typedef int mbedtls_deprecated_numeric_constant_t; -#define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT( VAL ) \ - ( (mbedtls_deprecated_numeric_constant_t) ( VAL ) ) +#define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(VAL) \ + ((mbedtls_deprecated_numeric_constant_t) (VAL)) #else /* MBEDTLS_DEPRECATED_WARNING */ #define MBEDTLS_DEPRECATED -#define MBEDTLS_DEPRECATED_STRING_CONSTANT( VAL ) VAL -#define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT( VAL ) VAL +#define MBEDTLS_DEPRECATED_STRING_CONSTANT(VAL) VAL +#define MBEDTLS_DEPRECATED_NUMERIC_CONSTANT(VAL) VAL #endif /* MBEDTLS_DEPRECATED_WARNING */ #endif /* MBEDTLS_DEPRECATED_REMOVED */ @@ -142,7 +142,7 @@ MBEDTLS_DEPRECATED typedef int mbedtls_deprecated_numeric_constant_t; * https://stackoverflow.com/questions/40576003/ignoring-warning-wunused-result * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425#c34 */ -#define MBEDTLS_IGNORE_RETURN(result) ( (void) !( result ) ) +#define MBEDTLS_IGNORE_RETURN(result) ((void) !(result)) #endif /** @@ -167,7 +167,7 @@ MBEDTLS_DEPRECATED typedef int mbedtls_deprecated_numeric_constant_t; * \param len Length of the buffer in bytes * */ -void mbedtls_platform_zeroize( void *buf, size_t len ); +void mbedtls_platform_zeroize(void *buf, size_t len); #if defined(MBEDTLS_HAVE_TIME_DATE) /** @@ -196,8 +196,8 @@ void mbedtls_platform_zeroize( void *buf, size_t len ); * \return Pointer to an object of type struct tm on success, otherwise * NULL */ -struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt, - struct tm *tm_buf ); +struct tm *mbedtls_platform_gmtime_r(const mbedtls_time_t *tt, + struct tm *tm_buf); #endif /* MBEDTLS_HAVE_TIME_DATE */ #ifdef __cplusplus diff --git a/include/mbedtls/poly1305.h b/include/mbedtls/poly1305.h index 6657aa2e1..3025ef1f2 100644 --- a/include/mbedtls/poly1305.h +++ b/include/mbedtls/poly1305.h @@ -47,8 +47,7 @@ extern "C" { #if !defined(MBEDTLS_POLY1305_ALT) -typedef struct mbedtls_poly1305_context -{ +typedef struct mbedtls_poly1305_context { uint32_t MBEDTLS_PRIVATE(r)[4]; /** The value for 'r' (low 128 bits of the key). */ uint32_t MBEDTLS_PRIVATE(s)[4]; /** The value for 's' (high 128 bits of the key). */ uint32_t MBEDTLS_PRIVATE(acc)[5]; /** The accumulator number. */ @@ -76,7 +75,7 @@ mbedtls_poly1305_context; * \param ctx The Poly1305 context to initialize. This must * not be \c NULL. */ -void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx ); +void mbedtls_poly1305_init(mbedtls_poly1305_context *ctx); /** * \brief This function releases and clears the specified @@ -86,7 +85,7 @@ void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx ); * case this function is a no-op. If it is not \c NULL, it must * point to an initialized Poly1305 context. */ -void mbedtls_poly1305_free( mbedtls_poly1305_context *ctx ); +void mbedtls_poly1305_free(mbedtls_poly1305_context *ctx); /** * \brief This function sets the one-time authentication key. @@ -101,8 +100,8 @@ void mbedtls_poly1305_free( mbedtls_poly1305_context *ctx ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_poly1305_starts( mbedtls_poly1305_context *ctx, - const unsigned char key[32] ); +int mbedtls_poly1305_starts(mbedtls_poly1305_context *ctx, + const unsigned char key[32]); /** * \brief This functions feeds an input buffer into an ongoing @@ -122,9 +121,9 @@ int mbedtls_poly1305_starts( mbedtls_poly1305_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_poly1305_update(mbedtls_poly1305_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function generates the Poly1305 Message @@ -138,8 +137,8 @@ int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, - unsigned char mac[16] ); +int mbedtls_poly1305_finish(mbedtls_poly1305_context *ctx, + unsigned char mac[16]); /** * \brief This function calculates the Poly1305 MAC of the input @@ -159,10 +158,10 @@ int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_poly1305_mac( const unsigned char key[32], - const unsigned char *input, - size_t ilen, - unsigned char mac[16] ); +int mbedtls_poly1305_mac(const unsigned char key[32], + const unsigned char *input, + size_t ilen, + unsigned char mac[16]); #if defined(MBEDTLS_SELF_TEST) /** @@ -171,7 +170,7 @@ int mbedtls_poly1305_mac( const unsigned char key[32], * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_poly1305_self_test( int verbose ); +int mbedtls_poly1305_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ #ifdef __cplusplus diff --git a/include/mbedtls/private_access.h b/include/mbedtls/private_access.h index 85461f6d2..61fa8777b 100644 --- a/include/mbedtls/private_access.h +++ b/include/mbedtls/private_access.h @@ -1,4 +1,4 @@ - /** +/** * \file private_access.h * * \brief Macro wrapper for struct's members. diff --git a/include/mbedtls/psa_util.h b/include/mbedtls/psa_util.h index f2f540085..dc74ac60c 100644 --- a/include/mbedtls/psa_util.h +++ b/include/mbedtls/psa_util.h @@ -44,10 +44,9 @@ /* Translations for symmetric crypto. */ static inline psa_key_type_t mbedtls_psa_translate_cipher_type( - mbedtls_cipher_type_t cipher ) + mbedtls_cipher_type_t cipher) { - switch( cipher ) - { + switch (cipher) { case MBEDTLS_CIPHER_AES_128_CCM: case MBEDTLS_CIPHER_AES_192_CCM: case MBEDTLS_CIPHER_AES_256_CCM: @@ -63,7 +62,7 @@ static inline psa_key_type_t mbedtls_psa_translate_cipher_type( case MBEDTLS_CIPHER_AES_128_ECB: case MBEDTLS_CIPHER_AES_192_ECB: case MBEDTLS_CIPHER_AES_256_ECB: - return( PSA_KEY_TYPE_AES ); + return PSA_KEY_TYPE_AES; /* ARIA not yet supported in PSA. */ /* case MBEDTLS_CIPHER_ARIA_128_CCM: @@ -81,44 +80,43 @@ static inline psa_key_type_t mbedtls_psa_translate_cipher_type( return( PSA_KEY_TYPE_ARIA ); */ default: - return( 0 ); + return 0; } } static inline psa_algorithm_t mbedtls_psa_translate_cipher_mode( - mbedtls_cipher_mode_t mode, size_t taglen ) + mbedtls_cipher_mode_t mode, size_t taglen) { - switch( mode ) - { + switch (mode) { case MBEDTLS_MODE_ECB: - return( PSA_ALG_ECB_NO_PADDING ); + return PSA_ALG_ECB_NO_PADDING; case MBEDTLS_MODE_GCM: - return( PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, taglen ) ); + return PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, taglen); case MBEDTLS_MODE_CCM: - return( PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) ); + return PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen); case MBEDTLS_MODE_CCM_STAR_NO_TAG: return PSA_ALG_CCM_STAR_NO_TAG; case MBEDTLS_MODE_CBC: - if( taglen == 0 ) - return( PSA_ALG_CBC_NO_PADDING ); - else - return( 0 ); + if (taglen == 0) { + return PSA_ALG_CBC_NO_PADDING; + } else { + return 0; + } default: - return( 0 ); + return 0; } } static inline psa_key_usage_t mbedtls_psa_translate_cipher_operation( - mbedtls_operation_t op ) + mbedtls_operation_t op) { - switch( op ) - { + switch (op) { case MBEDTLS_ENCRYPT: - return( PSA_KEY_USAGE_ENCRYPT ); + return PSA_KEY_USAGE_ENCRYPT; case MBEDTLS_DECRYPT: - return( PSA_KEY_USAGE_DECRYPT ); + return PSA_KEY_USAGE_DECRYPT; default: - return( 0 ); + return 0; } } @@ -127,42 +125,41 @@ static inline psa_key_usage_t mbedtls_psa_translate_cipher_operation( /* Note: this function should not be used from inside the library, use * mbedtls_hash_info_psa_from_md() from the internal hash_info.h instead. * It is kept only for compatibility in case applications were using it. */ -static inline psa_algorithm_t mbedtls_psa_translate_md( mbedtls_md_type_t md_alg ) +static inline psa_algorithm_t mbedtls_psa_translate_md(mbedtls_md_type_t md_alg) { - switch( md_alg ) - { + switch (md_alg) { #if defined(MBEDTLS_MD5_C) || defined(PSA_WANT_ALG_MD5) - case MBEDTLS_MD_MD5: - return( PSA_ALG_MD5 ); + case MBEDTLS_MD_MD5: + return PSA_ALG_MD5; #endif #if defined(MBEDTLS_SHA1_C) || defined(PSA_WANT_ALG_SHA_1) - case MBEDTLS_MD_SHA1: - return( PSA_ALG_SHA_1 ); + case MBEDTLS_MD_SHA1: + return PSA_ALG_SHA_1; #endif #if defined(MBEDTLS_SHA224_C) || defined(PSA_WANT_ALG_SHA_224) - case MBEDTLS_MD_SHA224: - return( PSA_ALG_SHA_224 ); + case MBEDTLS_MD_SHA224: + return PSA_ALG_SHA_224; #endif #if defined(MBEDTLS_SHA256_C) || defined(PSA_WANT_ALG_SHA_256) - case MBEDTLS_MD_SHA256: - return( PSA_ALG_SHA_256 ); + case MBEDTLS_MD_SHA256: + return PSA_ALG_SHA_256; #endif #if defined(MBEDTLS_SHA384_C) || defined(PSA_WANT_ALG_SHA_384) - case MBEDTLS_MD_SHA384: - return( PSA_ALG_SHA_384 ); + case MBEDTLS_MD_SHA384: + return PSA_ALG_SHA_384; #endif #if defined(MBEDTLS_SHA512_C) || defined(PSA_WANT_ALG_SHA_512) - case MBEDTLS_MD_SHA512: - return( PSA_ALG_SHA_512 ); + case MBEDTLS_MD_SHA512: + return PSA_ALG_SHA_512; #endif #if defined(MBEDTLS_RIPEMD160_C) || defined(PSA_WANT_ALG_RIPEMD160) - case MBEDTLS_MD_RIPEMD160: - return( PSA_ALG_RIPEMD160 ); + case MBEDTLS_MD_RIPEMD160: + return PSA_ALG_RIPEMD160; #endif - case MBEDTLS_MD_NONE: - return( 0 ); - default: - return( 0 ); + case MBEDTLS_MD_NONE: + return 0; + default: + return 0; } } @@ -170,99 +167,95 @@ static inline psa_algorithm_t mbedtls_psa_translate_md( mbedtls_md_type_t md_alg static inline int mbedtls_psa_get_ecc_oid_from_id( psa_ecc_family_t curve, size_t bits, - char const **oid, size_t *oid_len ) + char const **oid, size_t *oid_len) { - switch( curve ) - { + switch (curve) { case PSA_ECC_FAMILY_SECP_R1: - switch( bits ) - { + switch (bits) { #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) case 192: *oid = MBEDTLS_OID_EC_GRP_SECP192R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP192R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP192R1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) case 224: *oid = MBEDTLS_OID_EC_GRP_SECP224R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP224R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP224R1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) case 256: *oid = MBEDTLS_OID_EC_GRP_SECP256R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP256R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP256R1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) case 384: *oid = MBEDTLS_OID_EC_GRP_SECP384R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP384R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP384R1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) case 521: *oid = MBEDTLS_OID_EC_GRP_SECP521R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP521R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP521R1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ } break; case PSA_ECC_FAMILY_SECP_K1: - switch( bits ) - { + switch (bits) { #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) case 192: *oid = MBEDTLS_OID_EC_GRP_SECP192K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP192K1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP192K1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) case 224: *oid = MBEDTLS_OID_EC_GRP_SECP224K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP224K1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP224K1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) case 256: *oid = MBEDTLS_OID_EC_GRP_SECP256K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP256K1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_SECP256K1); + return 0; #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ } break; case PSA_ECC_FAMILY_BRAINPOOL_P_R1: - switch( bits ) - { + switch (bits) { #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) case 256: *oid = MBEDTLS_OID_EC_GRP_BP256R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP256R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_BP256R1); + return 0; #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) case 384: *oid = MBEDTLS_OID_EC_GRP_BP384R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP384R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_BP384R1); + return 0; #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) case 512: *oid = MBEDTLS_OID_EC_GRP_BP512R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP512R1 ); - return( 0 ); + *oid_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_EC_GRP_BP512R1); + return 0; #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ } break; } (void) oid; (void) oid_len; - return( -1 ); + return -1; } #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH \ - PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE( PSA_VENDOR_ECC_MAX_CURVE_BITS ) + PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS) /* Expose whatever RNG the PSA subsystem uses to applications using the * mbedtls_xxx API. The declarations and definitions here need to be @@ -276,7 +269,7 @@ static inline int mbedtls_psa_get_ecc_oid_from_id( * This type name is not part of the Mbed TLS stable API. It may be renamed * or moved without warning. */ -typedef int mbedtls_f_rng_t( void *p_rng, unsigned char *output, size_t output_size ); +typedef int mbedtls_f_rng_t(void *p_rng, unsigned char *output, size_t output_size); #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) @@ -315,9 +308,9 @@ typedef int mbedtls_f_rng_t( void *p_rng, unsigned char *output, size_t output_s * `MBEDTLS_ERR_CTR_DRBG_xxx` or * `MBEDTLS_ERR_HMAC_DRBG_xxx` on error. */ -int mbedtls_psa_get_random( void *p_rng, - unsigned char *output, - size_t output_size ); +int mbedtls_psa_get_random(void *p_rng, + unsigned char *output, + size_t output_size); /** The random generator state for the PSA subsystem. * diff --git a/include/mbedtls/ripemd160.h b/include/mbedtls/ripemd160.h index 397ec841c..acec3c52d 100644 --- a/include/mbedtls/ripemd160.h +++ b/include/mbedtls/ripemd160.h @@ -39,8 +39,7 @@ extern "C" { /** * \brief RIPEMD-160 context structure */ -typedef struct mbedtls_ripemd160_context -{ +typedef struct mbedtls_ripemd160_context { uint32_t MBEDTLS_PRIVATE(total)[2]; /*!< number of bytes processed */ uint32_t MBEDTLS_PRIVATE(state)[5]; /*!< intermediate digest state */ unsigned char MBEDTLS_PRIVATE(buffer)[64]; /*!< data block being processed */ @@ -56,14 +55,14 @@ mbedtls_ripemd160_context; * * \param ctx RIPEMD-160 context to be initialized */ -void mbedtls_ripemd160_init( mbedtls_ripemd160_context *ctx ); +void mbedtls_ripemd160_init(mbedtls_ripemd160_context *ctx); /** * \brief Clear RIPEMD-160 context * * \param ctx RIPEMD-160 context to be cleared */ -void mbedtls_ripemd160_free( mbedtls_ripemd160_context *ctx ); +void mbedtls_ripemd160_free(mbedtls_ripemd160_context *ctx); /** * \brief Clone (the state of) a RIPEMD-160 context @@ -71,8 +70,8 @@ void mbedtls_ripemd160_free( mbedtls_ripemd160_context *ctx ); * \param dst The destination context * \param src The context to be cloned */ -void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst, - const mbedtls_ripemd160_context *src ); +void mbedtls_ripemd160_clone(mbedtls_ripemd160_context *dst, + const mbedtls_ripemd160_context *src); /** * \brief RIPEMD-160 context setup @@ -81,7 +80,7 @@ void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst, * * \return 0 if successful */ -int mbedtls_ripemd160_starts( mbedtls_ripemd160_context *ctx ); +int mbedtls_ripemd160_starts(mbedtls_ripemd160_context *ctx); /** * \brief RIPEMD-160 process buffer @@ -92,9 +91,9 @@ int mbedtls_ripemd160_starts( mbedtls_ripemd160_context *ctx ); * * \return 0 if successful */ -int mbedtls_ripemd160_update( mbedtls_ripemd160_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_ripemd160_update(mbedtls_ripemd160_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief RIPEMD-160 final digest @@ -104,8 +103,8 @@ int mbedtls_ripemd160_update( mbedtls_ripemd160_context *ctx, * * \return 0 if successful */ -int mbedtls_ripemd160_finish( mbedtls_ripemd160_context *ctx, - unsigned char output[20] ); +int mbedtls_ripemd160_finish(mbedtls_ripemd160_context *ctx, + unsigned char output[20]); /** * \brief RIPEMD-160 process data block (internal use only) @@ -115,8 +114,8 @@ int mbedtls_ripemd160_finish( mbedtls_ripemd160_context *ctx, * * \return 0 if successful */ -int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, - const unsigned char data[64] ); +int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx, + const unsigned char data[64]); /** * \brief Output = RIPEMD-160( input buffer ) @@ -127,9 +126,9 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, * * \return 0 if successful */ -int mbedtls_ripemd160( const unsigned char *input, - size_t ilen, - unsigned char output[20] ); +int mbedtls_ripemd160(const unsigned char *input, + size_t ilen, + unsigned char output[20]); #if defined(MBEDTLS_SELF_TEST) @@ -138,7 +137,7 @@ int mbedtls_ripemd160( const unsigned char *input, * * \return 0 if successful, or 1 if the test failed */ -int mbedtls_ripemd160_self_test( int verbose ); +int mbedtls_ripemd160_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/rsa.h b/include/mbedtls/rsa.h index 2bfaf8f71..d77a53832 100644 --- a/include/mbedtls/rsa.h +++ b/include/mbedtls/rsa.h @@ -88,12 +88,11 @@ extern "C" { /** * \brief The RSA context structure. */ -typedef struct mbedtls_rsa_context -{ +typedef struct mbedtls_rsa_context { int MBEDTLS_PRIVATE(ver); /*!< Reserved for internal purposes. - * Do not set this field in application - * code. Its meaning might change without - * notice. */ + * Do not set this field in application + * code. Its meaning might change without + * notice. */ size_t MBEDTLS_PRIVATE(len); /*!< The size of \p N in Bytes. */ mbedtls_mpi MBEDTLS_PRIVATE(N); /*!< The public modulus. */ @@ -116,12 +115,12 @@ typedef struct mbedtls_rsa_context mbedtls_mpi MBEDTLS_PRIVATE(Vf); /*!< The cached un-blinding value. */ int MBEDTLS_PRIVATE(padding); /*!< Selects padding mode: - #MBEDTLS_RSA_PKCS_V15 for 1.5 padding and - #MBEDTLS_RSA_PKCS_V21 for OAEP or PSS. */ + #MBEDTLS_RSA_PKCS_V15 for 1.5 padding and + #MBEDTLS_RSA_PKCS_V21 for OAEP or PSS. */ int MBEDTLS_PRIVATE(hash_id); /*!< Hash identifier of mbedtls_md_type_t type, - as specified in md.h for use in the MGF - mask generating function used in the - EME-OAEP and EMSA-PSS encodings. */ + as specified in md.h for use in the MGF + mask generating function used in the + EME-OAEP and EMSA-PSS encodings. */ #if defined(MBEDTLS_THREADING_C) /* Invariant: the mutex is initialized iff ver != 0. */ mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex); /*!< Thread-safety mutex. */ @@ -143,7 +142,7 @@ mbedtls_rsa_context; * * \param ctx The RSA context to initialize. This must not be \c NULL. */ -void mbedtls_rsa_init( mbedtls_rsa_context *ctx ); +void mbedtls_rsa_init(mbedtls_rsa_context *ctx); /** * \brief This function sets padding for an already initialized RSA @@ -179,8 +178,8 @@ void mbedtls_rsa_init( mbedtls_rsa_context *ctx ); * \return #MBEDTLS_ERR_RSA_INVALID_PADDING failure: * \p padding or \p hash_id is invalid. */ -int mbedtls_rsa_set_padding( mbedtls_rsa_context *ctx, int padding, - mbedtls_md_type_t hash_id ); +int mbedtls_rsa_set_padding(mbedtls_rsa_context *ctx, int padding, + mbedtls_md_type_t hash_id); /** * \brief This function imports a set of core parameters into an @@ -211,10 +210,10 @@ int mbedtls_rsa_set_padding( mbedtls_rsa_context *ctx, int padding, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_rsa_import( mbedtls_rsa_context *ctx, - const mbedtls_mpi *N, - const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, const mbedtls_mpi *E ); +int mbedtls_rsa_import(mbedtls_rsa_context *ctx, + const mbedtls_mpi *N, + const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, const mbedtls_mpi *E); /** * \brief This function imports core RSA parameters, in raw big-endian @@ -250,12 +249,12 @@ int mbedtls_rsa_import( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_rsa_import_raw( mbedtls_rsa_context *ctx, - unsigned char const *N, size_t N_len, - unsigned char const *P, size_t P_len, - unsigned char const *Q, size_t Q_len, - unsigned char const *D, size_t D_len, - unsigned char const *E, size_t E_len ); +int mbedtls_rsa_import_raw(mbedtls_rsa_context *ctx, + unsigned char const *N, size_t N_len, + unsigned char const *P, size_t P_len, + unsigned char const *Q, size_t Q_len, + unsigned char const *D, size_t D_len, + unsigned char const *E, size_t E_len); /** * \brief This function completes an RSA context from @@ -289,7 +288,7 @@ int mbedtls_rsa_import_raw( mbedtls_rsa_context *ctx, * failed. * */ -int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ); +int mbedtls_rsa_complete(mbedtls_rsa_context *ctx); /** * \brief This function exports the core parameters of an RSA key. @@ -331,9 +330,9 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ); * \return A non-zero return code on any other failure. * */ -int mbedtls_rsa_export( const mbedtls_rsa_context *ctx, - mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q, - mbedtls_mpi *D, mbedtls_mpi *E ); +int mbedtls_rsa_export(const mbedtls_rsa_context *ctx, + mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q, + mbedtls_mpi *D, mbedtls_mpi *E); /** * \brief This function exports core parameters of an RSA key @@ -382,12 +381,12 @@ int mbedtls_rsa_export( const mbedtls_rsa_context *ctx, * functionality or because of security policies. * \return A non-zero return code on any other failure. */ -int mbedtls_rsa_export_raw( const mbedtls_rsa_context *ctx, - unsigned char *N, size_t N_len, - unsigned char *P, size_t P_len, - unsigned char *Q, size_t Q_len, - unsigned char *D, size_t D_len, - unsigned char *E, size_t E_len ); +int mbedtls_rsa_export_raw(const mbedtls_rsa_context *ctx, + unsigned char *N, size_t N_len, + unsigned char *P, size_t P_len, + unsigned char *Q, size_t Q_len, + unsigned char *D, size_t D_len, + unsigned char *E, size_t E_len); /** * \brief This function exports CRT parameters of a private RSA key. @@ -408,8 +407,8 @@ int mbedtls_rsa_export_raw( const mbedtls_rsa_context *ctx, * \return A non-zero error code on failure. * */ -int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx, - mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP ); +int mbedtls_rsa_export_crt(const mbedtls_rsa_context *ctx, + mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP); /** * \brief This function retrieves the length of RSA modulus in Bytes. @@ -419,7 +418,7 @@ int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx, * \return The length of the RSA modulus in Bytes. * */ -size_t mbedtls_rsa_get_len( const mbedtls_rsa_context *ctx ); +size_t mbedtls_rsa_get_len(const mbedtls_rsa_context *ctx); /** * \brief This function generates an RSA keypair. @@ -439,10 +438,10 @@ size_t mbedtls_rsa_get_len( const mbedtls_rsa_context *ctx ); * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - unsigned int nbits, int exponent ); +int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + unsigned int nbits, int exponent); /** * \brief This function checks if a context contains at least an RSA @@ -458,7 +457,7 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. * */ -int mbedtls_rsa_check_pubkey( const mbedtls_rsa_context *ctx ); +int mbedtls_rsa_check_pubkey(const mbedtls_rsa_context *ctx); /** * \brief This function checks if a context contains an RSA private key @@ -496,7 +495,7 @@ int mbedtls_rsa_check_pubkey( const mbedtls_rsa_context *ctx ); * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_check_privkey( const mbedtls_rsa_context *ctx ); +int mbedtls_rsa_check_privkey(const mbedtls_rsa_context *ctx); /** * \brief This function checks a public-private RSA key pair. @@ -509,8 +508,8 @@ int mbedtls_rsa_check_privkey( const mbedtls_rsa_context *ctx ); * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_check_pub_priv( const mbedtls_rsa_context *pub, - const mbedtls_rsa_context *prv ); +int mbedtls_rsa_check_pub_priv(const mbedtls_rsa_context *pub, + const mbedtls_rsa_context *prv); /** * \brief This function performs an RSA public key operation. @@ -531,9 +530,9 @@ int mbedtls_rsa_check_pub_priv( const mbedtls_rsa_context *pub, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_public( mbedtls_rsa_context *ctx, - const unsigned char *input, - unsigned char *output ); +int mbedtls_rsa_public(mbedtls_rsa_context *ctx, + const unsigned char *input, + unsigned char *output); /** * \brief This function performs an RSA private key operation. @@ -564,11 +563,11 @@ int mbedtls_rsa_public( mbedtls_rsa_context *ctx, * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. * */ -int mbedtls_rsa_private( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *input, - unsigned char *output ); +int mbedtls_rsa_private(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *input, + unsigned char *output); /** * \brief This function adds the message padding, then performs an RSA @@ -593,12 +592,12 @@ int mbedtls_rsa_private( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_pkcs1_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t ilen, - const unsigned char *input, - unsigned char *output ); +int mbedtls_rsa_pkcs1_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t ilen, + const unsigned char *input, + unsigned char *output); /** * \brief This function performs a PKCS#1 v1.5 encryption operation @@ -620,12 +619,12 @@ int mbedtls_rsa_pkcs1_encrypt( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t ilen, - const unsigned char *input, - unsigned char *output ); +int mbedtls_rsa_rsaes_pkcs1_v15_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t ilen, + const unsigned char *input, + unsigned char *output); /** * \brief This function performs a PKCS#1 v2.1 OAEP encryption @@ -654,13 +653,13 @@ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *label, size_t label_len, - size_t ilen, - const unsigned char *input, - unsigned char *output ); +int mbedtls_rsa_rsaes_oaep_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *label, size_t label_len, + size_t ilen, + const unsigned char *input, + unsigned char *output); /** * \brief This function performs an RSA operation, then removes the @@ -693,13 +692,13 @@ int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_pkcs1_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len ); +int mbedtls_rsa_pkcs1_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len); /** * \brief This function performs a PKCS#1 v1.5 decryption @@ -730,13 +729,13 @@ int mbedtls_rsa_pkcs1_decrypt( mbedtls_rsa_context *ctx, * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. * */ -int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len ); +int mbedtls_rsa_rsaes_pkcs1_v15_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len); /** * \brief This function performs a PKCS#1 v2.1 OAEP decryption @@ -771,14 +770,14 @@ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *label, size_t label_len, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len ); +int mbedtls_rsa_rsaes_oaep_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *label, size_t label_len, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len); /** * \brief This function performs a private RSA operation to sign @@ -814,13 +813,13 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, * \return \c 0 if the signing operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_pkcs1_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ); +int mbedtls_rsa_pkcs1_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig); /** * \brief This function performs a PKCS#1 v1.5 signature @@ -846,13 +845,13 @@ int mbedtls_rsa_pkcs1_sign( mbedtls_rsa_context *ctx, * \return \c 0 if the signing operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ); +int mbedtls_rsa_rsassa_pkcs1_v15_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig); /** * \brief This function performs a PKCS#1 v2.1 PSS signature @@ -897,14 +896,14 @@ int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx, * \return \c 0 if the signing operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pss_sign_ext( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - int saltlen, - unsigned char *sig ); +int mbedtls_rsa_rsassa_pss_sign_ext(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + int saltlen, + unsigned char *sig); /** * \brief This function performs a PKCS#1 v2.1 PSS signature @@ -947,13 +946,13 @@ int mbedtls_rsa_rsassa_pss_sign_ext( mbedtls_rsa_context *ctx, * \return \c 0 if the signing operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ); +int mbedtls_rsa_rsassa_pss_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig); /** * \brief This function performs a public RSA operation and checks @@ -981,11 +980,11 @@ int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, * \return \c 0 if the verify operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ); +int mbedtls_rsa_pkcs1_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig); /** * \brief This function performs a PKCS#1 v1.5 verification @@ -1006,11 +1005,11 @@ int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx, * \return \c 0 if the verify operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pkcs1_v15_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ); +int mbedtls_rsa_rsassa_pkcs1_v15_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig); /** * \brief This function performs a PKCS#1 v2.1 PSS verification @@ -1041,11 +1040,11 @@ int mbedtls_rsa_rsassa_pkcs1_v15_verify( mbedtls_rsa_context *ctx, * \return \c 0 if the verify operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pss_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ); +int mbedtls_rsa_rsassa_pss_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig); /** * \brief This function performs a PKCS#1 v2.1 PSS verification @@ -1081,13 +1080,13 @@ int mbedtls_rsa_rsassa_pss_verify( mbedtls_rsa_context *ctx, * \return \c 0 if the verify operation was successful. * \return An \c MBEDTLS_ERR_RSA_XXX error code on failure. */ -int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - mbedtls_md_type_t mgf1_hash_id, - int expected_salt_len, - const unsigned char *sig ); +int mbedtls_rsa_rsassa_pss_verify_ext(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + mbedtls_md_type_t mgf1_hash_id, + int expected_salt_len, + const unsigned char *sig); /** * \brief This function copies the components of an RSA context. @@ -1098,7 +1097,7 @@ int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, * \return \c 0 on success. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory allocation failure. */ -int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src ); +int mbedtls_rsa_copy(mbedtls_rsa_context *dst, const mbedtls_rsa_context *src); /** * \brief This function frees the components of an RSA key. @@ -1107,7 +1106,7 @@ int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src ) * this function is a no-op. If it is not \c NULL, it must * point to an initialized RSA context. */ -void mbedtls_rsa_free( mbedtls_rsa_context *ctx ); +void mbedtls_rsa_free(mbedtls_rsa_context *ctx); #if defined(MBEDTLS_SELF_TEST) @@ -1117,7 +1116,7 @@ void mbedtls_rsa_free( mbedtls_rsa_context *ctx ); * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_rsa_self_test( int verbose ); +int mbedtls_rsa_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/sha1.h b/include/mbedtls/sha1.h index 6b55174a5..18bde93d3 100644 --- a/include/mbedtls/sha1.h +++ b/include/mbedtls/sha1.h @@ -54,8 +54,7 @@ extern "C" { * stronger message digests instead. * */ -typedef struct mbedtls_sha1_context -{ +typedef struct mbedtls_sha1_context { uint32_t MBEDTLS_PRIVATE(total)[2]; /*!< The number of Bytes processed. */ uint32_t MBEDTLS_PRIVATE(state)[5]; /*!< The intermediate digest state. */ unsigned char MBEDTLS_PRIVATE(buffer)[64]; /*!< The data block being processed. */ @@ -77,7 +76,7 @@ mbedtls_sha1_context; * This must not be \c NULL. * */ -void mbedtls_sha1_init( mbedtls_sha1_context *ctx ); +void mbedtls_sha1_init(mbedtls_sha1_context *ctx); /** * \brief This function clears a SHA-1 context. @@ -92,7 +91,7 @@ void mbedtls_sha1_init( mbedtls_sha1_context *ctx ); * SHA-1 context. * */ -void mbedtls_sha1_free( mbedtls_sha1_context *ctx ); +void mbedtls_sha1_free(mbedtls_sha1_context *ctx); /** * \brief This function clones the state of a SHA-1 context. @@ -105,8 +104,8 @@ void mbedtls_sha1_free( mbedtls_sha1_context *ctx ); * \param src The SHA-1 context to clone from. This must be initialized. * */ -void mbedtls_sha1_clone( mbedtls_sha1_context *dst, - const mbedtls_sha1_context *src ); +void mbedtls_sha1_clone(mbedtls_sha1_context *dst, + const mbedtls_sha1_context *src); /** * \brief This function starts a SHA-1 checksum calculation. @@ -121,7 +120,7 @@ void mbedtls_sha1_clone( mbedtls_sha1_context *dst, * \return A negative error code on failure. * */ -int mbedtls_sha1_starts( mbedtls_sha1_context *ctx ); +int mbedtls_sha1_starts(mbedtls_sha1_context *ctx); /** * \brief This function feeds an input buffer into an ongoing SHA-1 @@ -140,9 +139,9 @@ int mbedtls_sha1_starts( mbedtls_sha1_context *ctx ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha1_update( mbedtls_sha1_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_sha1_update(mbedtls_sha1_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function finishes the SHA-1 operation, and writes @@ -160,8 +159,8 @@ int mbedtls_sha1_update( mbedtls_sha1_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, - unsigned char output[20] ); +int mbedtls_sha1_finish(mbedtls_sha1_context *ctx, + unsigned char output[20]); /** * \brief SHA-1 process data block (internal use only). @@ -178,8 +177,8 @@ int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, * \return A negative error code on failure. * */ -int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, - const unsigned char data[64] ); +int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx, + const unsigned char data[64]); /** * \brief This function calculates the SHA-1 checksum of a buffer. @@ -204,9 +203,9 @@ int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, * \return A negative error code on failure. * */ -int mbedtls_sha1( const unsigned char *input, - size_t ilen, - unsigned char output[20] ); +int mbedtls_sha1(const unsigned char *input, + size_t ilen, + unsigned char output[20]); #if defined(MBEDTLS_SELF_TEST) @@ -221,7 +220,7 @@ int mbedtls_sha1( const unsigned char *input, * \return \c 1 on failure. * */ -int mbedtls_sha1_self_test( int verbose ); +int mbedtls_sha1_self_test(int verbose); #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/sha256.h b/include/mbedtls/sha256.h index d256352c8..87e5cc61a 100644 --- a/include/mbedtls/sha256.h +++ b/include/mbedtls/sha256.h @@ -49,13 +49,12 @@ extern "C" { * checksum calculations. The choice between these two is * made in the call to mbedtls_sha256_starts(). */ -typedef struct mbedtls_sha256_context -{ +typedef struct mbedtls_sha256_context { uint32_t MBEDTLS_PRIVATE(total)[2]; /*!< The number of Bytes processed. */ uint32_t MBEDTLS_PRIVATE(state)[8]; /*!< The intermediate digest state. */ unsigned char MBEDTLS_PRIVATE(buffer)[64]; /*!< The data block being processed. */ int MBEDTLS_PRIVATE(is224); /*!< Determines which function to use: - 0: Use SHA-256, or 1: Use SHA-224. */ + 0: Use SHA-256, or 1: Use SHA-224. */ } mbedtls_sha256_context; @@ -68,7 +67,7 @@ mbedtls_sha256_context; * * \param ctx The SHA-256 context to initialize. This must not be \c NULL. */ -void mbedtls_sha256_init( mbedtls_sha256_context *ctx ); +void mbedtls_sha256_init(mbedtls_sha256_context *ctx); /** * \brief This function clears a SHA-256 context. @@ -77,7 +76,7 @@ void mbedtls_sha256_init( mbedtls_sha256_context *ctx ); * case this function returns immediately. If it is not \c NULL, * it must point to an initialized SHA-256 context. */ -void mbedtls_sha256_free( mbedtls_sha256_context *ctx ); +void mbedtls_sha256_free(mbedtls_sha256_context *ctx); /** * \brief This function clones the state of a SHA-256 context. @@ -85,8 +84,8 @@ void mbedtls_sha256_free( mbedtls_sha256_context *ctx ); * \param dst The destination context. This must be initialized. * \param src The context to clone. This must be initialized. */ -void mbedtls_sha256_clone( mbedtls_sha256_context *dst, - const mbedtls_sha256_context *src ); +void mbedtls_sha256_clone(mbedtls_sha256_context *dst, + const mbedtls_sha256_context *src); /** * \brief This function starts a SHA-224 or SHA-256 checksum @@ -103,7 +102,7 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ); +int mbedtls_sha256_starts(mbedtls_sha256_context *ctx, int is224); /** * \brief This function feeds an input buffer into an ongoing @@ -118,9 +117,9 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha256_update( mbedtls_sha256_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_sha256_update(mbedtls_sha256_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function finishes the SHA-256 operation, and writes @@ -135,8 +134,8 @@ int mbedtls_sha256_update( mbedtls_sha256_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, - unsigned char *output ); +int mbedtls_sha256_finish(mbedtls_sha256_context *ctx, + unsigned char *output); /** * \brief This function processes a single data block within @@ -150,8 +149,8 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, - const unsigned char data[64] ); +int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx, + const unsigned char data[64]); /** * \brief This function calculates the SHA-224 or SHA-256 @@ -175,10 +174,10 @@ int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha256( const unsigned char *input, - size_t ilen, - unsigned char *output, - int is224 ); +int mbedtls_sha256(const unsigned char *input, + size_t ilen, + unsigned char *output, + int is224); #if defined(MBEDTLS_SELF_TEST) @@ -189,7 +188,7 @@ int mbedtls_sha256( const unsigned char *input, * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_sha224_self_test( int verbose ); +int mbedtls_sha224_self_test(int verbose); #endif /* MBEDTLS_SHA224_C */ #if defined(MBEDTLS_SHA256_C) @@ -199,7 +198,7 @@ int mbedtls_sha224_self_test( int verbose ); * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_sha256_self_test( int verbose ); +int mbedtls_sha256_self_test(int verbose); #endif /* MBEDTLS_SHA256_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/sha512.h b/include/mbedtls/sha512.h index 2b1fafd45..ea5467829 100644 --- a/include/mbedtls/sha512.h +++ b/include/mbedtls/sha512.h @@ -48,8 +48,7 @@ extern "C" { * checksum calculations. The choice between these two is * made in the call to mbedtls_sha512_starts(). */ -typedef struct mbedtls_sha512_context -{ +typedef struct mbedtls_sha512_context { uint64_t MBEDTLS_PRIVATE(total)[2]; /*!< The number of Bytes processed. */ uint64_t MBEDTLS_PRIVATE(state)[8]; /*!< The intermediate digest state. */ unsigned char MBEDTLS_PRIVATE(buffer)[128]; /*!< The data block being processed. */ @@ -70,7 +69,7 @@ mbedtls_sha512_context; * \param ctx The SHA-512 context to initialize. This must * not be \c NULL. */ -void mbedtls_sha512_init( mbedtls_sha512_context *ctx ); +void mbedtls_sha512_init(mbedtls_sha512_context *ctx); /** * \brief This function clears a SHA-512 context. @@ -80,7 +79,7 @@ void mbedtls_sha512_init( mbedtls_sha512_context *ctx ); * is not \c NULL, it must point to an initialized * SHA-512 context. */ -void mbedtls_sha512_free( mbedtls_sha512_context *ctx ); +void mbedtls_sha512_free(mbedtls_sha512_context *ctx); /** * \brief This function clones the state of a SHA-512 context. @@ -88,8 +87,8 @@ void mbedtls_sha512_free( mbedtls_sha512_context *ctx ); * \param dst The destination context. This must be initialized. * \param src The context to clone. This must be initialized. */ -void mbedtls_sha512_clone( mbedtls_sha512_context *dst, - const mbedtls_sha512_context *src ); +void mbedtls_sha512_clone(mbedtls_sha512_context *dst, + const mbedtls_sha512_context *src); /** * \brief This function starts a SHA-384 or SHA-512 checksum @@ -106,7 +105,7 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ); +int mbedtls_sha512_starts(mbedtls_sha512_context *ctx, int is384); /** * \brief This function feeds an input buffer into an ongoing @@ -121,9 +120,9 @@ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ); * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha512_update( mbedtls_sha512_context *ctx, - const unsigned char *input, - size_t ilen ); +int mbedtls_sha512_update(mbedtls_sha512_context *ctx, + const unsigned char *input, + size_t ilen); /** * \brief This function finishes the SHA-512 operation, and writes @@ -138,8 +137,8 @@ int mbedtls_sha512_update( mbedtls_sha512_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, - unsigned char *output ); +int mbedtls_sha512_finish(mbedtls_sha512_context *ctx, + unsigned char *output); /** * \brief This function processes a single data block within @@ -153,8 +152,8 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, - const unsigned char data[128] ); +int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx, + const unsigned char data[128]); /** * \brief This function calculates the SHA-512 or SHA-384 @@ -185,31 +184,31 @@ int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_sha512( const unsigned char *input, - size_t ilen, - unsigned char *output, - int is384 ); +int mbedtls_sha512(const unsigned char *input, + size_t ilen, + unsigned char *output, + int is384); #if defined(MBEDTLS_SELF_TEST) #if defined(MBEDTLS_SHA384_C) - /** +/** * \brief The SHA-384 checkup routine. * * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_sha384_self_test( int verbose ); +int mbedtls_sha384_self_test(int verbose); #endif /* MBEDTLS_SHA384_C */ #if defined(MBEDTLS_SHA512_C) - /** +/** * \brief The SHA-512 checkup routine. * * \return \c 0 on success. * \return \c 1 on failure. */ -int mbedtls_sha512_self_test( int verbose ); +int mbedtls_sha512_self_test(int verbose); #endif /* MBEDTLS_SHA512_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index ac132758e..661b23ce7 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -230,29 +230,29 @@ * mbedtls_ssl_conf_tls13_key_exchange_modes(). */ -#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ( 1u << 0 ) /*!< Pure-PSK TLS 1.3 key exchange, +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK (1u << 0) /*!< Pure-PSK TLS 1.3 key exchange, * encompassing both externally agreed PSKs * as well as resumption PSKs. */ -#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ( 1u << 1 ) /*!< Pure-Ephemeral TLS 1.3 key exchanges, +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL (1u << 1) /*!< Pure-Ephemeral TLS 1.3 key exchanges, * including for example ECDHE and DHE * key exchanges. */ -#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL ( 1u << 2 ) /*!< PSK-Ephemeral TLS 1.3 key exchanges, +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL (1u << 2) /*!< PSK-Ephemeral TLS 1.3 key exchanges, * using both a PSK and an ephemeral * key exchange. */ /* Convenience macros for sets of key exchanges. */ #define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL \ - ( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL | \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ) /*!< All TLS 1.3 key exchanges */ + (MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL | \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL) /*!< All TLS 1.3 key exchanges */ #define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL \ - ( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL ) /*!< All PSK-based TLS 1.3 key exchanges */ + (MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL) /*!< All PSK-based TLS 1.3 key exchanges */ #define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL \ - ( MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL | \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL ) /*!< All ephemeral TLS 1.3 key exchanges */ + (MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL | \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL) /*!< All ephemeral TLS 1.3 key exchanges */ -#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE ( 0 ) +#define MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE (0) /* * Various constants @@ -602,8 +602,7 @@ #endif /* Dummy type used only for its size */ -union mbedtls_ssl_premaster_secret -{ +union mbedtls_ssl_premaster_secret { #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) unsigned char _pms_rsa[48]; /* RFC 5246 8.1.1 */ #endif @@ -621,21 +620,21 @@ union mbedtls_ssl_premaster_secret #endif #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) unsigned char _pms_dhe_psk[4 + MBEDTLS_MPI_MAX_SIZE - + MBEDTLS_PSK_MAX_LEN]; /* RFC 4279 3 */ + + MBEDTLS_PSK_MAX_LEN]; /* RFC 4279 3 */ #endif #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) unsigned char _pms_rsa_psk[52 + MBEDTLS_PSK_MAX_LEN]; /* RFC 4279 4 */ #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) unsigned char _pms_ecdhe_psk[4 + MBEDTLS_ECP_MAX_BYTES - + MBEDTLS_PSK_MAX_LEN]; /* RFC 5489 2 */ + + MBEDTLS_PSK_MAX_LEN]; /* RFC 5489 2 */ #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) unsigned char _pms_ecjpake[32]; /* Thread spec: SHA-256 output */ #endif }; -#define MBEDTLS_PREMASTER_SIZE sizeof( union mbedtls_ssl_premaster_secret ) +#define MBEDTLS_PREMASTER_SIZE sizeof(union mbedtls_ssl_premaster_secret) #define MBEDTLS_TLS1_3_MD_MAX_SIZE PSA_HASH_MAX_SIZE @@ -650,8 +649,7 @@ extern "C" { /* * SSL state machine */ -typedef enum -{ +typedef enum { MBEDTLS_SSL_HELLO_REQUEST, MBEDTLS_SSL_CLIENT_HELLO, MBEDTLS_SSL_SERVER_HELLO, @@ -701,9 +699,9 @@ mbedtls_ssl_states; * \note The callback is allowed to send fewer bytes than requested. * It must always return the number of bytes actually sent. */ -typedef int mbedtls_ssl_send_t( void *ctx, - const unsigned char *buf, - size_t len ); +typedef int mbedtls_ssl_send_t(void *ctx, + const unsigned char *buf, + size_t len); /** * \brief Callback type: receive data from the network. @@ -725,9 +723,9 @@ typedef int mbedtls_ssl_send_t( void *ctx, * buffer. It must always return the number of bytes actually * received and written to the buffer. */ -typedef int mbedtls_ssl_recv_t( void *ctx, - unsigned char *buf, - size_t len ); +typedef int mbedtls_ssl_recv_t(void *ctx, + unsigned char *buf, + size_t len); /** * \brief Callback type: receive data from the network, with timeout @@ -751,10 +749,10 @@ typedef int mbedtls_ssl_recv_t( void *ctx, * buffer. It must always return the number of bytes actually * received and written to the buffer. */ -typedef int mbedtls_ssl_recv_timeout_t( void *ctx, - unsigned char *buf, - size_t len, - uint32_t timeout ); +typedef int mbedtls_ssl_recv_timeout_t(void *ctx, + unsigned char *buf, + size_t len, + uint32_t timeout); /** * \brief Callback type: set a pair of timers/delays to watch * @@ -777,9 +775,9 @@ typedef int mbedtls_ssl_recv_timeout_t( void *ctx, * function while a timer is running must cancel it. Cancelled * timers must not generate any event. */ -typedef void mbedtls_ssl_set_timer_t( void * ctx, - uint32_t int_ms, - uint32_t fin_ms ); +typedef void mbedtls_ssl_set_timer_t(void *ctx, + uint32_t int_ms, + uint32_t fin_ms); /** * \brief Callback type: get status of timers/delays @@ -792,7 +790,7 @@ typedef void mbedtls_ssl_set_timer_t( void * ctx, * 1 if only the intermediate delay has passed, * 2 if the final delay has passed. */ -typedef int mbedtls_ssl_get_timer_t( void * ctx ); +typedef int mbedtls_ssl_get_timer_t(void *ctx); /* Defined below */ typedef struct mbedtls_ssl_session mbedtls_ssl_session; @@ -814,15 +812,15 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; typedef uint8_t mbedtls_ssl_tls13_ticket_flags; #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ -#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ( 1U << 3 ) + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL /* 1U << 2 */ +#define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA (1U << 3) #define MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK \ - ( MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION | \ - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION | \ - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ) + (MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION | \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION | \ + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA) #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ /** @@ -848,10 +846,10 @@ typedef uint8_t mbedtls_ssl_tls13_ticket_flags; * \return A non-zero return value on failure. * */ -typedef int mbedtls_ssl_cache_get_t( void *data, - unsigned char const *session_id, - size_t session_id_len, - mbedtls_ssl_session *session ); +typedef int mbedtls_ssl_cache_get_t(void *data, + unsigned char const *session_id, + size_t session_id_len, + mbedtls_ssl_session *session); /** * \brief Callback type: server-side session cache setter * @@ -870,10 +868,10 @@ typedef int mbedtls_ssl_cache_get_t( void *data, * \return \c 0 on success * \return A non-zero return value on failure. */ -typedef int mbedtls_ssl_cache_set_t( void *data, - unsigned char const *session_id, - size_t session_id_len, - const mbedtls_ssl_session *session ); +typedef int mbedtls_ssl_cache_set_t(void *data, + unsigned char const *session_id, + size_t session_id_len, + const mbedtls_ssl_session *session); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -948,11 +946,11 @@ typedef int mbedtls_ssl_cache_set_t( void *data, * use \c MBEDTLS_ERR_SSL_xxx error codes except as * directed in the documentation of this callback. */ -typedef int mbedtls_ssl_async_sign_t( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *cert, - mbedtls_md_type_t md_alg, - const unsigned char *hash, - size_t hash_len ); +typedef int mbedtls_ssl_async_sign_t(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *cert, + mbedtls_md_type_t md_alg, + const unsigned char *hash, + size_t hash_len); /** * \brief Callback type: start external decryption operation. @@ -1014,10 +1012,10 @@ typedef int mbedtls_ssl_async_sign_t( mbedtls_ssl_context *ssl, * use \c MBEDTLS_ERR_SSL_xxx error codes except as * directed in the documentation of this callback. */ -typedef int mbedtls_ssl_async_decrypt_t( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *cert, - const unsigned char *input, - size_t input_len ); +typedef int mbedtls_ssl_async_decrypt_t(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *cert, + const unsigned char *input, + size_t input_len); #endif /* MBEDTLS_X509_CRT_PARSE_C */ /** @@ -1062,10 +1060,10 @@ typedef int mbedtls_ssl_async_decrypt_t( mbedtls_ssl_context *ssl, * use \c MBEDTLS_ERR_SSL_xxx error codes except as * directed in the documentation of this callback. */ -typedef int mbedtls_ssl_async_resume_t( mbedtls_ssl_context *ssl, - unsigned char *output, - size_t *output_len, - size_t output_size ); +typedef int mbedtls_ssl_async_resume_t(mbedtls_ssl_context *ssl, + unsigned char *output, + size_t *output_len, + size_t output_size); /** * \brief Callback type: cancel external operation. @@ -1084,7 +1082,7 @@ typedef int mbedtls_ssl_async_resume_t( mbedtls_ssl_context *ssl, * \param ssl The SSL connection instance. It should not be * modified. */ -typedef void mbedtls_ssl_async_cancel_t( mbedtls_ssl_context *ssl ); +typedef void mbedtls_ssl_async_cancel_t(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && \ @@ -1106,12 +1104,11 @@ typedef void mbedtls_ssl_async_cancel_t( mbedtls_ssl_context *ssl ); #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED && !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -typedef struct -{ - unsigned char client_application_traffic_secret_N[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char server_application_traffic_secret_N[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char exporter_master_secret [ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char resumption_master_secret [ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; +typedef struct { + unsigned char client_application_traffic_secret_N[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char server_application_traffic_secret_N[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char exporter_master_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char resumption_master_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; } mbedtls_ssl_tls13_application_secrets; #if defined(MBEDTLS_SSL_DTLS_SRTP) @@ -1127,17 +1124,16 @@ typedef struct * Reminder: if this list is expanded mbedtls_ssl_check_srtp_profile_value * must be updated too. */ -#define MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80 ( (uint16_t) 0x0001) -#define MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32 ( (uint16_t) 0x0002) -#define MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80 ( (uint16_t) 0x0005) -#define MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32 ( (uint16_t) 0x0006) +#define MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80 ((uint16_t) 0x0001) +#define MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32 ((uint16_t) 0x0002) +#define MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80 ((uint16_t) 0x0005) +#define MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32 ((uint16_t) 0x0006) /* This one is not iana defined, but for code readability. */ -#define MBEDTLS_TLS_SRTP_UNSET ( (uint16_t) 0x0000) +#define MBEDTLS_TLS_SRTP_UNSET ((uint16_t) 0x0000) typedef uint16_t mbedtls_ssl_srtp_profile; -typedef struct mbedtls_dtls_srtp_info_t -{ +typedef struct mbedtls_dtls_srtp_info_t { /*! The SRTP profile that was negotiated. */ mbedtls_ssl_srtp_profile MBEDTLS_PRIVATE(chosen_dtls_srtp_profile); /*! The length of mki_value. */ @@ -1150,8 +1146,7 @@ mbedtls_dtls_srtp_info; #endif /* MBEDTLS_SSL_DTLS_SRTP */ /** Human-friendly representation of the (D)TLS protocol version. */ -typedef enum -{ +typedef enum { MBEDTLS_SSL_VERSION_UNKNOWN, /*!< Context not in use or version not yet negotiated. */ MBEDTLS_SSL_VERSION_TLS1_2 = 0x0303, /*!< (D)TLS 1.2 */ MBEDTLS_SSL_VERSION_TLS1_3 = 0x0304, /*!< (D)TLS 1.3 */ @@ -1168,8 +1163,7 @@ typedef enum * mbedtls_ssl_session_save() and ssl_session_load() * ssl_session_copy() */ -struct mbedtls_ssl_session -{ +struct mbedtls_ssl_session { #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) unsigned char MBEDTLS_PRIVATE(mfl_code); /*!< MaxFragmentLength negotiated by peer */ #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ @@ -1237,18 +1231,16 @@ struct mbedtls_ssl_session /* * Identifiers for PRFs used in various versions of TLS. */ -typedef enum -{ - MBEDTLS_SSL_TLS_PRF_NONE, - MBEDTLS_SSL_TLS_PRF_SHA384, - MBEDTLS_SSL_TLS_PRF_SHA256, - MBEDTLS_SSL_HKDF_EXPAND_SHA384, - MBEDTLS_SSL_HKDF_EXPAND_SHA256 +typedef enum { + MBEDTLS_SSL_TLS_PRF_NONE, + MBEDTLS_SSL_TLS_PRF_SHA384, + MBEDTLS_SSL_TLS_PRF_SHA256, + MBEDTLS_SSL_HKDF_EXPAND_SHA384, + MBEDTLS_SSL_HKDF_EXPAND_SHA256 } mbedtls_tls_prf_types; -typedef enum -{ +typedef enum { MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET = 0, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET, @@ -1275,13 +1267,13 @@ typedef enum * \param tls_prf_type The identifier for the PRF used in the handshake * to which the key belongs. */ -typedef void mbedtls_ssl_export_keys_t( void *p_expkey, - mbedtls_ssl_key_export_type type, - const unsigned char *secret, - size_t secret_len, - const unsigned char client_random[32], - const unsigned char server_random[32], - mbedtls_tls_prf_types tls_prf_type ); +typedef void mbedtls_ssl_export_keys_t(void *p_expkey, + mbedtls_ssl_key_export_type type, + const unsigned char *secret, + size_t secret_len, + const unsigned char client_random[32], + const unsigned char server_random[32], + mbedtls_tls_prf_types tls_prf_type); #if defined(MBEDTLS_SSL_SRV_C) /** @@ -1299,7 +1291,7 @@ typedef void mbedtls_ssl_export_keys_t( void *p_expkey, * or a specific MBEDTLS_ERR_XXX code, which will cause * the handshake to be aborted. */ -typedef int (*mbedtls_ssl_hs_cb_t)( mbedtls_ssl_context *ssl ); +typedef int (*mbedtls_ssl_hs_cb_t)(mbedtls_ssl_context *ssl); #endif /* A type for storing user data in a library structure. @@ -1308,8 +1300,7 @@ typedef int (*mbedtls_ssl_hs_cb_t)( mbedtls_ssl_context *ssl ); * Only the behaviors guaranteed by documented accessor functions are * guaranteed to remain stable. */ -typedef union -{ +typedef union { uintptr_t n; /* typically a handle to an associated object */ void *p; /* typically a pointer to extra data */ } mbedtls_ssl_user_data_t; @@ -1317,8 +1308,7 @@ typedef union /** * SSL/TLS configuration to be shared between mbedtls_ssl_context structures. */ -struct mbedtls_ssl_config -{ +struct mbedtls_ssl_config { /* Group items mostly by size. This helps to reduce memory wasted to * padding. It also helps to keep smaller fields early in the structure, * so that elements tend to be in the 128-element direct access window @@ -1395,11 +1385,11 @@ struct mbedtls_ssl_config #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /** Callback for printing debug output */ - void (*MBEDTLS_PRIVATE(f_dbg))(void *, int, const char *, int, const char *); + void(*MBEDTLS_PRIVATE(f_dbg))(void *, int, const char *, int, const char *); void *MBEDTLS_PRIVATE(p_dbg); /*!< context for the debug function */ /** Callback for getting (pseudo-)random numbers */ - int (*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t); + int(*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_rng); /*!< context for the RNG function */ /** Callback to retrieve a session from the cache */ @@ -1410,40 +1400,41 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) /** Callback for setting cert according to SNI extension */ - int (*MBEDTLS_PRIVATE(f_sni))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); + int(*MBEDTLS_PRIVATE(f_sni))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_sni); /*!< context for SNI callback */ #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) /** Callback to customize X.509 certificate chain verification */ - int (*MBEDTLS_PRIVATE(f_vrfy))(void *, mbedtls_x509_crt *, int, uint32_t *); + int(*MBEDTLS_PRIVATE(f_vrfy))(void *, mbedtls_x509_crt *, int, uint32_t *); void *MBEDTLS_PRIVATE(p_vrfy); /*!< context for X.509 verify calllback */ #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_SRV_C) /** Callback to retrieve PSK key from identity */ - int (*MBEDTLS_PRIVATE(f_psk))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); + int(*MBEDTLS_PRIVATE(f_psk))(void *, mbedtls_ssl_context *, const unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_psk); /*!< context for PSK callback */ #endif #endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) /** Callback to create & write a cookie for ClientHello verification */ - int (*MBEDTLS_PRIVATE(f_cookie_write))( void *, unsigned char **, unsigned char *, - const unsigned char *, size_t ); + int(*MBEDTLS_PRIVATE(f_cookie_write))(void *, unsigned char **, unsigned char *, + const unsigned char *, size_t); /** Callback to verify validity of a ClientHello cookie */ - int (*MBEDTLS_PRIVATE(f_cookie_check))( void *, const unsigned char *, size_t, - const unsigned char *, size_t ); + int(*MBEDTLS_PRIVATE(f_cookie_check))(void *, const unsigned char *, size_t, + const unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_cookie); /*!< context for the cookie callbacks */ #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_SRV_C) /** Callback to create & write a session ticket */ - int (*MBEDTLS_PRIVATE(f_ticket_write))( void *, const mbedtls_ssl_session *, - unsigned char *, const unsigned char *, size_t *, uint32_t * ); + int(*MBEDTLS_PRIVATE(f_ticket_write))(void *, const mbedtls_ssl_session *, + unsigned char *, const unsigned char *, size_t *, + uint32_t *); /** Callback to parse a session ticket into a session structure */ - int (*MBEDTLS_PRIVATE(f_ticket_parse))( void *, mbedtls_ssl_session *, unsigned char *, size_t); + int(*MBEDTLS_PRIVATE(f_ticket_parse))(void *, mbedtls_ssl_session *, unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_ticket); /*!< context for the ticket callbacks */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) @@ -1494,33 +1485,33 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psk_opaque); /*!< PSA key slot holding opaque PSK. This field - * should only be set via - * mbedtls_ssl_conf_psk_opaque(). - * If either no PSK or a raw PSK have been - * configured, this has value \c 0. - */ + * should only be set via + * mbedtls_ssl_conf_psk_opaque(). + * If either no PSK or a raw PSK have been + * configured, this has value \c 0. + */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ unsigned char *MBEDTLS_PRIVATE(psk); /*!< The raw pre-shared key. This field should - * only be set via mbedtls_ssl_conf_psk(). - * If either no PSK or an opaque PSK - * have been configured, this has value NULL. */ + * only be set via mbedtls_ssl_conf_psk(). + * If either no PSK or an opaque PSK + * have been configured, this has value NULL. */ size_t MBEDTLS_PRIVATE(psk_len); /*!< The length of the raw pre-shared key. - * This field should only be set via - * mbedtls_ssl_conf_psk(). - * Its value is non-zero if and only if - * \c psk is not \c NULL. */ + * This field should only be set via + * mbedtls_ssl_conf_psk(). + * Its value is non-zero if and only if + * \c psk is not \c NULL. */ unsigned char *MBEDTLS_PRIVATE(psk_identity); /*!< The PSK identity for PSK negotiation. - * This field should only be set via - * mbedtls_ssl_conf_psk(). - * This is set if and only if either - * \c psk or \c psk_opaque are set. */ + * This field should only be set via + * mbedtls_ssl_conf_psk(). + * This is set if and only if either + * \c psk or \c psk_opaque are set. */ size_t MBEDTLS_PRIVATE(psk_identity_len);/*!< The length of PSK identity. - * This field should only be set via - * mbedtls_ssl_conf_psk(). - * Its value is non-zero if and only if - * \c psk is not \c NULL or \c psk_opaque - * is not \c 0. */ + * This field should only be set via + * mbedtls_ssl_conf_psk(). + * Its value is non-zero if and only if + * \c psk is not \c NULL or \c psk_opaque + * is not \c 0. */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_SSL_EARLY_DATA) @@ -1554,15 +1545,15 @@ struct mbedtls_ssl_config #if defined(MBEDTLS_SSL_PROTO_DTLS) uint32_t MBEDTLS_PRIVATE(hs_timeout_min); /*!< initial value of the handshake - retransmission timeout (ms) */ + retransmission timeout (ms) */ uint32_t MBEDTLS_PRIVATE(hs_timeout_max); /*!< maximum value of the handshake - retransmission timeout (ms) */ + retransmission timeout (ms) */ #endif #if defined(MBEDTLS_SSL_RENEGOTIATION) int MBEDTLS_PRIVATE(renego_max_records); /*!< grace period for renegotiation */ unsigned char MBEDTLS_PRIVATE(renego_period)[8]; /*!< value of the record counters - that triggers renegotiation */ + that triggers renegotiation */ #endif unsigned int MBEDTLS_PRIVATE(badmac_limit); /*!< limit of records with a bad MAC */ @@ -1587,8 +1578,7 @@ struct mbedtls_ssl_config #endif }; -struct mbedtls_ssl_context -{ +struct mbedtls_ssl_context { const mbedtls_ssl_config *MBEDTLS_PRIVATE(conf); /*!< configuration information */ /* @@ -1598,8 +1588,8 @@ struct mbedtls_ssl_context #if defined(MBEDTLS_SSL_RENEGOTIATION) int MBEDTLS_PRIVATE(renego_status); /*!< Initial, in progress, pending? */ int MBEDTLS_PRIVATE(renego_records_seen); /*!< Records since renego request, or with DTLS, - number of retransmissions of request if - renego_max_records is < 0 */ + number of retransmissions of request if + renego_max_records is < 0 */ #endif /* MBEDTLS_SSL_RENEGOTIATION */ /** Server: Negotiated TLS protocol version. @@ -1622,14 +1612,14 @@ struct mbedtls_ssl_context #if defined(MBEDTLS_X509_CRT_PARSE_C) /** Callback to customize X.509 certificate chain verification */ - int (*MBEDTLS_PRIVATE(f_vrfy))(void *, mbedtls_x509_crt *, int, uint32_t *); + int(*MBEDTLS_PRIVATE(f_vrfy))(void *, mbedtls_x509_crt *, int, uint32_t *); void *MBEDTLS_PRIVATE(p_vrfy); /*!< context for X.509 verify callback */ #endif mbedtls_ssl_send_t *MBEDTLS_PRIVATE(f_send); /*!< Callback for network send */ mbedtls_ssl_recv_t *MBEDTLS_PRIVATE(f_recv); /*!< Callback for network receive */ mbedtls_ssl_recv_timeout_t *MBEDTLS_PRIVATE(f_recv_timeout); - /*!< Callback for network receive with timeout */ + /*!< Callback for network receive with timeout */ void *MBEDTLS_PRIVATE(p_bio); /*!< context for I/O operations */ @@ -1642,7 +1632,7 @@ struct mbedtls_ssl_context mbedtls_ssl_session *MBEDTLS_PRIVATE(session_negotiate); /*!< session data in negotiation */ mbedtls_ssl_handshake_params *MBEDTLS_PRIVATE(handshake); /*!< params required only during - the handshake process */ + the handshake process */ /* * Record layer transformations @@ -1681,12 +1671,12 @@ struct mbedtls_ssl_context */ unsigned char *MBEDTLS_PRIVATE(in_buf); /*!< input buffer */ unsigned char *MBEDTLS_PRIVATE(in_ctr); /*!< 64-bit incoming message counter - TLS: maintained by us - DTLS: read from peer */ + TLS: maintained by us + DTLS: read from peer */ unsigned char *MBEDTLS_PRIVATE(in_hdr); /*!< start of record header */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char *MBEDTLS_PRIVATE(in_cid); /*!< The start of the CID; - * (the end is marked by in_len). */ + * (the end is marked by in_len). */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ unsigned char *MBEDTLS_PRIVATE(in_len); /*!< two-bytes message length field */ unsigned char *MBEDTLS_PRIVATE(in_iv); /*!< ivlen-byte IV */ @@ -1702,7 +1692,7 @@ struct mbedtls_ssl_context #if defined(MBEDTLS_SSL_PROTO_DTLS) uint16_t MBEDTLS_PRIVATE(in_epoch); /*!< DTLS epoch for incoming records */ size_t MBEDTLS_PRIVATE(next_record_offset); /*!< offset of the next record in datagram - (equal to in_left if none) */ + (equal to in_left if none) */ #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) uint64_t MBEDTLS_PRIVATE(in_window_top); /*!< last validated record seq_num */ @@ -1710,28 +1700,28 @@ struct mbedtls_ssl_context #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ size_t MBEDTLS_PRIVATE(in_hslen); /*!< current handshake message length, - including the handshake header */ + including the handshake header */ int MBEDTLS_PRIVATE(nb_zero); /*!< # of 0-length encrypted messages */ int MBEDTLS_PRIVATE(keep_current_message); /*!< drop or reuse current message - on next call to record layer? */ + on next call to record layer? */ /* The following three variables indicate if and, if yes, * what kind of alert is pending to be sent. */ unsigned char MBEDTLS_PRIVATE(send_alert); /*!< Determines if a fatal alert - should be sent. Values: - - \c 0 , no alert is to be sent. - - \c 1 , alert is to be sent. */ + should be sent. Values: + - \c 0 , no alert is to be sent. + - \c 1 , alert is to be sent. */ unsigned char MBEDTLS_PRIVATE(alert_type); /*!< Type of alert if send_alert - != 0 */ + != 0 */ int MBEDTLS_PRIVATE(alert_reason); /*!< The error code to be returned - to the user once the fatal alert - has been sent. */ + to the user once the fatal alert + has been sent. */ #if defined(MBEDTLS_SSL_PROTO_DTLS) uint8_t MBEDTLS_PRIVATE(disable_datagram_packing); /*!< Disable packing multiple records - * within a single datagram. */ + * within a single datagram. */ #endif /* MBEDTLS_SSL_PROTO_DTLS */ /* @@ -1742,7 +1732,7 @@ struct mbedtls_ssl_context unsigned char *MBEDTLS_PRIVATE(out_hdr); /*!< start of record header */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char *MBEDTLS_PRIVATE(out_cid); /*!< The start of the CID; - * (the end is marked by in_len). */ + * (the end is marked by in_len). */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ unsigned char *MBEDTLS_PRIVATE(out_len); /*!< two-bytes message length field */ unsigned char *MBEDTLS_PRIVATE(out_iv); /*!< ivlen-byte IV */ @@ -1766,7 +1756,7 @@ struct mbedtls_ssl_context */ #if defined(MBEDTLS_X509_CRT_PARSE_C) char *MBEDTLS_PRIVATE(hostname); /*!< expected peer CN for verification - (and SNI if available) */ + (and SNI if available) */ #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_ALPN) @@ -1793,7 +1783,7 @@ struct mbedtls_ssl_context */ /* needed to know when to send extension on server */ int MBEDTLS_PRIVATE(secure_renegotiation); /*!< does peer support legacy or - secure renegotiation */ + secure renegotiation */ #if defined(MBEDTLS_SSL_RENEGOTIATION) size_t MBEDTLS_PRIVATE(verify_data_len); /*!< length of verify data stored */ char MBEDTLS_PRIVATE(own_verify_data)[MBEDTLS_SSL_VERIFY_DATA_MAX_LEN]; /*!< previous handshake verify data */ @@ -1807,12 +1797,12 @@ struct mbedtls_ssl_context * all subsequent handshakes. This may be different from the * CID currently used in case the user has re-configured the CID * after an initial handshake. */ - unsigned char MBEDTLS_PRIVATE(own_cid)[ MBEDTLS_SSL_CID_IN_LEN_MAX ]; + unsigned char MBEDTLS_PRIVATE(own_cid)[MBEDTLS_SSL_CID_IN_LEN_MAX]; uint8_t MBEDTLS_PRIVATE(own_cid_len); /*!< The length of \c own_cid. */ uint8_t MBEDTLS_PRIVATE(negotiate_cid); /*!< This indicates whether the CID extension should - * be negotiated in the next handshake or not. - * Possible values are #MBEDTLS_SSL_CID_ENABLED - * and #MBEDTLS_SSL_CID_DISABLED. */ + * be negotiated in the next handshake or not. + * Possible values are #MBEDTLS_SSL_CID_ENABLED + * and #MBEDTLS_SSL_CID_DISABLED. */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_EARLY_DATA) && defined(MBEDTLS_SSL_CLI_C) @@ -1843,7 +1833,7 @@ struct mbedtls_ssl_context * * \return a string containing the ciphersuite name */ -const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id ); +const char *mbedtls_ssl_get_ciphersuite_name(const int ciphersuite_id); /** * \brief Return the ID of the ciphersuite associated with the @@ -1853,7 +1843,7 @@ const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id ); * * \return the ID with the ciphersuite or 0 if not found */ -int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name ); +int mbedtls_ssl_get_ciphersuite_id(const char *ciphersuite_name); /** * \brief Initialize an SSL context @@ -1862,7 +1852,7 @@ int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name ); * * \param ssl SSL context */ -void mbedtls_ssl_init( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_init(mbedtls_ssl_context *ssl); /** * \brief Set up an SSL context for use @@ -1884,8 +1874,8 @@ void mbedtls_ssl_init( mbedtls_ssl_context *ssl ); * \return 0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED if * memory allocation failed */ -int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, - const mbedtls_ssl_config *conf ); +int mbedtls_ssl_setup(mbedtls_ssl_context *ssl, + const mbedtls_ssl_config *conf); /** * \brief Reset an already initialized SSL context for re-use @@ -1896,7 +1886,7 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, * \return 0 if successful, or MBEDTLS_ERR_SSL_ALLOC_FAILED or MBEDTLS_ERR_SSL_HW_ACCEL_FAILED */ -int mbedtls_ssl_session_reset( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_session_reset(mbedtls_ssl_context *ssl); /** * \brief Set the current endpoint type @@ -1904,7 +1894,7 @@ int mbedtls_ssl_session_reset( mbedtls_ssl_context *ssl ); * \param conf SSL configuration * \param endpoint must be MBEDTLS_SSL_IS_CLIENT or MBEDTLS_SSL_IS_SERVER */ -void mbedtls_ssl_conf_endpoint( mbedtls_ssl_config *conf, int endpoint ); +void mbedtls_ssl_conf_endpoint(mbedtls_ssl_config *conf, int endpoint); /** * \brief Set the transport type (TLS or DTLS). @@ -1920,7 +1910,7 @@ void mbedtls_ssl_conf_endpoint( mbedtls_ssl_config *conf, int endpoint ); * MBEDTLS_SSL_TRANSPORT_STREAM for TLS, * MBEDTLS_SSL_TRANSPORT_DATAGRAM for DTLS. */ -void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); +void mbedtls_ssl_conf_transport(mbedtls_ssl_config *conf, int transport); /** * \brief Set the certificate verification mode @@ -1948,30 +1938,30 @@ void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ); * the verification as soon as possible. For example, REQUIRED was protecting * against the "triple handshake" attack even before it was found. */ -void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ); +void mbedtls_ssl_conf_authmode(mbedtls_ssl_config *conf, int authmode); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_EARLY_DATA) /** -* \brief Set the early data mode -* Default: disabled on server and client -* -* \param conf The SSL configuration to use. -* \param early_data_enabled can be: -* -* MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality is disabled -* This is the default on client and server. -* -* MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and -* may be negotiated in the handshake. Application using -* early data functionality needs to be aware of the -* lack of replay protection of the early data application -* payloads. -* -* \warning This interface is experimental and may change without notice. -* -*/ -void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ); + * \brief Set the early data mode + * Default: disabled on server and client + * + * \param conf The SSL configuration to use. + * \param early_data_enabled can be: + * + * MBEDTLS_SSL_EARLY_DATA_DISABLED: early data functionality is disabled + * This is the default on client and server. + * + * MBEDTLS_SSL_EARLY_DATA_ENABLED: early data functionality is enabled and + * may be negotiated in the handshake. Application using + * early data functionality needs to be aware of the + * lack of replay protection of the early data application + * payloads. + * + * \warning This interface is experimental and may change without notice. + * + */ +void mbedtls_ssl_tls13_conf_early_data(mbedtls_ssl_config *conf, + int early_data_enabled); #if defined(MBEDTLS_SSL_SRV_C) /** @@ -1998,7 +1988,7 @@ void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, * */ void mbedtls_ssl_tls13_conf_max_early_data_size( - mbedtls_ssl_config *conf, uint32_t max_early_data_size ); + mbedtls_ssl_config *conf, uint32_t max_early_data_size); #endif /* MBEDTLS_SSL_SRV_C */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_EARLY_DATA */ @@ -2019,9 +2009,9 @@ void mbedtls_ssl_tls13_conf_max_early_data_size( * \param f_vrfy The verification callback to use during CRT verification. * \param p_vrfy The opaque context to be passed to the callback. */ -void mbedtls_ssl_conf_verify( mbedtls_ssl_config *conf, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ); +void mbedtls_ssl_conf_verify(mbedtls_ssl_config *conf, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy); #endif /* MBEDTLS_X509_CRT_PARSE_C */ /** @@ -2031,9 +2021,9 @@ void mbedtls_ssl_conf_verify( mbedtls_ssl_config *conf, * \param f_rng RNG function (mandatory) * \param p_rng RNG parameter */ -void mbedtls_ssl_conf_rng( mbedtls_ssl_config *conf, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +void mbedtls_ssl_conf_rng(mbedtls_ssl_config *conf, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Set the debug callback @@ -2049,9 +2039,9 @@ void mbedtls_ssl_conf_rng( mbedtls_ssl_config *conf, * \param f_dbg debug function * \param p_dbg debug parameter */ -void mbedtls_ssl_conf_dbg( mbedtls_ssl_config *conf, - void (*f_dbg)(void *, int, const char *, int, const char *), - void *p_dbg ); +void mbedtls_ssl_conf_dbg(mbedtls_ssl_config *conf, + void (*f_dbg)(void *, int, const char *, int, const char *), + void *p_dbg); /** * \brief Return the SSL configuration structure associated @@ -2064,9 +2054,9 @@ void mbedtls_ssl_conf_dbg( mbedtls_ssl_config *conf, * \return Pointer to the SSL configuration associated with \p ssl. */ static inline const mbedtls_ssl_config *mbedtls_ssl_context_get_config( - const mbedtls_ssl_context *ssl ) + const mbedtls_ssl_context *ssl) { - return( ssl->MBEDTLS_PRIVATE( conf ) ); + return ssl->MBEDTLS_PRIVATE(conf); } /** @@ -2099,11 +2089,11 @@ static inline const mbedtls_ssl_config *mbedtls_ssl_context_get_config( * \c mbedtls_net_recv_timeout() that are suitable to be used * here. */ -void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, - void *p_bio, - mbedtls_ssl_send_t *f_send, - mbedtls_ssl_recv_t *f_recv, - mbedtls_ssl_recv_timeout_t *f_recv_timeout ); +void mbedtls_ssl_set_bio(mbedtls_ssl_context *ssl, + void *p_bio, + mbedtls_ssl_send_t *f_send, + mbedtls_ssl_recv_t *f_recv, + mbedtls_ssl_recv_timeout_t *f_recv_timeout); #if defined(MBEDTLS_SSL_PROTO_DTLS) @@ -2194,10 +2184,10 @@ void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, * applies to the next handshake. * \return A negative error code on failure. */ -int mbedtls_ssl_set_cid( mbedtls_ssl_context *ssl, - int enable, - unsigned char const *own_cid, - size_t own_cid_len ); +int mbedtls_ssl_set_cid(mbedtls_ssl_context *ssl, + int enable, + unsigned char const *own_cid, + size_t own_cid_len); /** * \brief Get information about our request for usage of the CID @@ -2228,10 +2218,10 @@ int mbedtls_ssl_set_cid( mbedtls_ssl_context *ssl, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_ssl_get_own_cid( mbedtls_ssl_context *ssl, +int mbedtls_ssl_get_own_cid(mbedtls_ssl_context *ssl, int *enabled, unsigned char own_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX], - size_t *own_cid_len ); + size_t *own_cid_len); /** * \brief Get information about the use of the CID extension @@ -2270,10 +2260,10 @@ int mbedtls_ssl_get_own_cid( mbedtls_ssl_context *ssl, * \return \c 0 on success. * \return A negative error code on failure. */ -int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, - int *enabled, - unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ], - size_t *peer_cid_len ); +int mbedtls_ssl_get_peer_cid(mbedtls_ssl_context *ssl, + int *enabled, + unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX], + size_t *peer_cid_len); #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -2316,7 +2306,7 @@ int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, * \param ssl SSL context * \param mtu Value of the path MTU in bytes */ -void mbedtls_ssl_set_mtu( mbedtls_ssl_context *ssl, uint16_t mtu ); +void mbedtls_ssl_set_mtu(mbedtls_ssl_context *ssl, uint16_t mtu); #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -2338,9 +2328,9 @@ void mbedtls_ssl_set_mtu( mbedtls_ssl_context *ssl, uint16_t mtu ); * \param f_vrfy The verification callback to use during CRT verification. * \param p_vrfy The opaque context to be passed to the callback. */ -void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ); +void mbedtls_ssl_set_verify(mbedtls_ssl_context *ssl, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy); #endif /* MBEDTLS_X509_CRT_PARSE_C */ /** @@ -2359,7 +2349,7 @@ void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, * \note With non-blocking I/O, you may also skip this function * altogether and handle timeouts at the application layer. */ -void mbedtls_ssl_conf_read_timeout( mbedtls_ssl_config *conf, uint32_t timeout ); +void mbedtls_ssl_conf_read_timeout(mbedtls_ssl_config *conf, uint32_t timeout); /** * \brief Check whether a buffer contains a valid and authentic record @@ -2405,9 +2395,9 @@ void mbedtls_ssl_conf_read_timeout( mbedtls_ssl_config *conf, uint32_t timeout ) * In this case, the SSL context becomes unusable and needs * to be freed or reset before reuse. */ -int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, - unsigned char *buf, - size_t buflen ); +int mbedtls_ssl_check_record(mbedtls_ssl_context const *ssl, + unsigned char *buf, + size_t buflen); /** * \brief Set the timer callbacks (Mandatory for DTLS.) @@ -2429,10 +2419,10 @@ int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, * \note See also the "DTLS tutorial" article in our knowledge base. * https://mbed-tls.readthedocs.io/en/latest/kb/how-to/dtls-tutorial */ -void mbedtls_ssl_set_timer_cb( mbedtls_ssl_context *ssl, - void *p_timer, - mbedtls_ssl_set_timer_t *f_set_timer, - mbedtls_ssl_get_timer_t *f_get_timer ); +void mbedtls_ssl_set_timer_cb(mbedtls_ssl_context *ssl, + void *p_timer, + mbedtls_ssl_set_timer_t *f_set_timer, + mbedtls_ssl_get_timer_t *f_get_timer); #if defined(MBEDTLS_SSL_SRV_C) /** @@ -2445,8 +2435,8 @@ void mbedtls_ssl_set_timer_cb( mbedtls_ssl_context *ssl, * \param f_cert_cb The callback for selecting server certificate after * `ClientHello` processing has finished. */ -static inline void mbedtls_ssl_conf_cert_cb( mbedtls_ssl_config *conf, - mbedtls_ssl_hs_cb_t f_cert_cb ) +static inline void mbedtls_ssl_conf_cert_cb(mbedtls_ssl_config *conf, + mbedtls_ssl_hs_cb_t f_cert_cb) { conf->MBEDTLS_PRIVATE(f_cert_cb) = f_cert_cb; } @@ -2471,12 +2461,12 @@ static inline void mbedtls_ssl_conf_cert_cb( mbedtls_ssl_config *conf, * \return 0 if successful, or * a specific MBEDTLS_ERR_XXX code. */ -typedef int mbedtls_ssl_ticket_write_t( void *p_ticket, - const mbedtls_ssl_session *session, - unsigned char *start, - const unsigned char *end, - size_t *tlen, - uint32_t *lifetime ); +typedef int mbedtls_ssl_ticket_write_t(void *p_ticket, + const mbedtls_ssl_session *session, + unsigned char *start, + const unsigned char *end, + size_t *tlen, + uint32_t *lifetime); /** * \brief Callback type: parse and load session ticket @@ -2501,10 +2491,10 @@ typedef int mbedtls_ssl_ticket_write_t( void *p_ticket, * MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED if expired, or * any other non-zero code for other failures. */ -typedef int mbedtls_ssl_ticket_parse_t( void *p_ticket, - mbedtls_ssl_session *session, - unsigned char *buf, - size_t len ); +typedef int mbedtls_ssl_ticket_parse_t(void *p_ticket, + mbedtls_ssl_session *session, + unsigned char *buf, + size_t len); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_SRV_C) /** @@ -2521,10 +2511,10 @@ typedef int mbedtls_ssl_ticket_parse_t( void *p_ticket, * \param f_ticket_parse Callback for parsing a ticket * \param p_ticket Context shared by the two callbacks */ -void mbedtls_ssl_conf_session_tickets_cb( mbedtls_ssl_config *conf, - mbedtls_ssl_ticket_write_t *f_ticket_write, - mbedtls_ssl_ticket_parse_t *f_ticket_parse, - void *p_ticket ); +void mbedtls_ssl_conf_session_tickets_cb(mbedtls_ssl_config *conf, + mbedtls_ssl_ticket_write_t *f_ticket_write, + mbedtls_ssl_ticket_parse_t *f_ticket_parse, + void *p_ticket); #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SRV_C */ /** @@ -2545,9 +2535,9 @@ void mbedtls_ssl_conf_session_tickets_cb( mbedtls_ssl_config *conf, * \param p_export_keys The opaque context pointer to be passed to the * callback \p f_export_keys. */ -void mbedtls_ssl_set_export_keys_cb( mbedtls_ssl_context *ssl, - mbedtls_ssl_export_keys_t *f_export_keys, - void *p_export_keys ); +void mbedtls_ssl_set_export_keys_cb(mbedtls_ssl_context *ssl, + mbedtls_ssl_export_keys_t *f_export_keys, + void *p_export_keys); /** \brief Set the user data in an SSL configuration to a pointer. * @@ -2561,7 +2551,7 @@ void mbedtls_ssl_set_export_keys_cb( mbedtls_ssl_context *ssl, */ static inline void mbedtls_ssl_conf_set_user_data_p( mbedtls_ssl_config *conf, - void *p ) + void *p) { conf->MBEDTLS_PRIVATE(user_data).p = p; } @@ -2575,7 +2565,7 @@ static inline void mbedtls_ssl_conf_set_user_data_p( */ static inline void mbedtls_ssl_conf_set_user_data_n( mbedtls_ssl_config *conf, - uintptr_t n ) + uintptr_t n) { conf->MBEDTLS_PRIVATE(user_data).n = n; } @@ -2591,9 +2581,9 @@ static inline void mbedtls_ssl_conf_set_user_data_n( * \return The current value of the user data. */ static inline void *mbedtls_ssl_conf_get_user_data_p( - mbedtls_ssl_config *conf ) + mbedtls_ssl_config *conf) { - return( conf->MBEDTLS_PRIVATE(user_data).p ); + return conf->MBEDTLS_PRIVATE(user_data).p; } /** \brief Retrieve the user data in an SSL configuration as an integer. @@ -2607,9 +2597,9 @@ static inline void *mbedtls_ssl_conf_get_user_data_p( * \return The current value of the user data. */ static inline uintptr_t mbedtls_ssl_conf_get_user_data_n( - mbedtls_ssl_config *conf ) + mbedtls_ssl_config *conf) { - return( conf->MBEDTLS_PRIVATE(user_data).n ); + return conf->MBEDTLS_PRIVATE(user_data).n; } /** \brief Set the user data in an SSL context to a pointer. @@ -2624,7 +2614,7 @@ static inline uintptr_t mbedtls_ssl_conf_get_user_data_n( */ static inline void mbedtls_ssl_set_user_data_p( mbedtls_ssl_context *ssl, - void *p ) + void *p) { ssl->MBEDTLS_PRIVATE(user_data).p = p; } @@ -2638,7 +2628,7 @@ static inline void mbedtls_ssl_set_user_data_p( */ static inline void mbedtls_ssl_set_user_data_n( mbedtls_ssl_context *ssl, - uintptr_t n ) + uintptr_t n) { ssl->MBEDTLS_PRIVATE(user_data).n = n; } @@ -2654,9 +2644,9 @@ static inline void mbedtls_ssl_set_user_data_n( * \return The current value of the user data. */ static inline void *mbedtls_ssl_get_user_data_p( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ssl->MBEDTLS_PRIVATE(user_data).p ); + return ssl->MBEDTLS_PRIVATE(user_data).p; } /** \brief Retrieve the user data in an SSL context as an integer. @@ -2670,9 +2660,9 @@ static inline void *mbedtls_ssl_get_user_data_p( * \return The current value of the user data. */ static inline uintptr_t mbedtls_ssl_get_user_data_n( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ssl->MBEDTLS_PRIVATE(user_data).n ); + return ssl->MBEDTLS_PRIVATE(user_data).n; } #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) @@ -2706,12 +2696,12 @@ static inline uintptr_t mbedtls_ssl_get_user_data_n( * mbedtls_ssl_conf_get_async_config_data(). The * library stores this value without dereferencing it. */ -void mbedtls_ssl_conf_async_private_cb( mbedtls_ssl_config *conf, - mbedtls_ssl_async_sign_t *f_async_sign, - mbedtls_ssl_async_decrypt_t *f_async_decrypt, - mbedtls_ssl_async_resume_t *f_async_resume, - mbedtls_ssl_async_cancel_t *f_async_cancel, - void *config_data ); +void mbedtls_ssl_conf_async_private_cb(mbedtls_ssl_config *conf, + mbedtls_ssl_async_sign_t *f_async_sign, + mbedtls_ssl_async_decrypt_t *f_async_decrypt, + mbedtls_ssl_async_resume_t *f_async_resume, + mbedtls_ssl_async_cancel_t *f_async_cancel, + void *config_data); /** * \brief Retrieve the configuration data set by @@ -2721,7 +2711,7 @@ void mbedtls_ssl_conf_async_private_cb( mbedtls_ssl_config *conf, * \return The configuration data set by * mbedtls_ssl_conf_async_private_cb(). */ -void *mbedtls_ssl_conf_get_async_config_data( const mbedtls_ssl_config *conf ); +void *mbedtls_ssl_conf_get_async_config_data(const mbedtls_ssl_config *conf); /** * \brief Retrieve the asynchronous operation user context. @@ -2737,7 +2727,7 @@ void *mbedtls_ssl_conf_get_async_config_data( const mbedtls_ssl_config *conf ); * called during the current handshake, this function returns * \c NULL. */ -void *mbedtls_ssl_get_async_operation_data( const mbedtls_ssl_context *ssl ); +void *mbedtls_ssl_get_async_operation_data(const mbedtls_ssl_context *ssl); /** * \brief Retrieve the asynchronous operation user context. @@ -2750,8 +2740,8 @@ void *mbedtls_ssl_get_async_operation_data( const mbedtls_ssl_context *ssl ); * Call mbedtls_ssl_get_async_operation_data() later during the * same handshake to retrieve this value. */ -void mbedtls_ssl_set_async_operation_data( mbedtls_ssl_context *ssl, - void *ctx ); +void mbedtls_ssl_set_async_operation_data(mbedtls_ssl_context *ssl, + void *ctx); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ /** @@ -2768,9 +2758,9 @@ void mbedtls_ssl_set_async_operation_data( mbedtls_ssl_context *ssl, * \return The callback must return 0 on success, * or a negative error code. */ -typedef int mbedtls_ssl_cookie_write_t( void *ctx, - unsigned char **p, unsigned char *end, - const unsigned char *info, size_t ilen ); +typedef int mbedtls_ssl_cookie_write_t(void *ctx, + unsigned char **p, unsigned char *end, + const unsigned char *info, size_t ilen); /** * \brief Callback type: verify a cookie @@ -2785,9 +2775,9 @@ typedef int mbedtls_ssl_cookie_write_t( void *ctx, * \return The callback must return 0 if cookie is valid, * or a negative error code. */ -typedef int mbedtls_ssl_cookie_check_t( void *ctx, - const unsigned char *cookie, size_t clen, - const unsigned char *info, size_t ilen ); +typedef int mbedtls_ssl_cookie_check_t(void *ctx, + const unsigned char *cookie, size_t clen, + const unsigned char *info, size_t ilen); #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) /** @@ -2818,10 +2808,10 @@ typedef int mbedtls_ssl_cookie_check_t( void *ctx, * \param f_cookie_check Cookie check callback * \param p_cookie Context for both callbacks */ -void mbedtls_ssl_conf_dtls_cookies( mbedtls_ssl_config *conf, - mbedtls_ssl_cookie_write_t *f_cookie_write, - mbedtls_ssl_cookie_check_t *f_cookie_check, - void *p_cookie ); +void mbedtls_ssl_conf_dtls_cookies(mbedtls_ssl_config *conf, + mbedtls_ssl_cookie_write_t *f_cookie_write, + mbedtls_ssl_cookie_check_t *f_cookie_check, + void *p_cookie); /** * \brief Set client's transport-level identification info. @@ -2842,9 +2832,9 @@ void mbedtls_ssl_conf_dtls_cookies( mbedtls_ssl_config *conf, * MBEDTLS_ERR_SSL_BAD_INPUT_DATA if used on client, * MBEDTLS_ERR_SSL_ALLOC_FAILED if out of memory. */ -int mbedtls_ssl_set_client_transport_id( mbedtls_ssl_context *ssl, - const unsigned char *info, - size_t ilen ); +int mbedtls_ssl_set_client_transport_id(mbedtls_ssl_context *ssl, + const unsigned char *info, + size_t ilen); #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY && MBEDTLS_SSL_SRV_C */ @@ -2864,7 +2854,7 @@ int mbedtls_ssl_set_client_transport_id( mbedtls_ssl_context *ssl, * packets and needs information about them to adjust its * transmission strategy, then you'll want to disable this. */ -void mbedtls_ssl_conf_dtls_anti_replay( mbedtls_ssl_config *conf, char mode ); +void mbedtls_ssl_conf_dtls_anti_replay(mbedtls_ssl_config *conf, char mode); #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ /** @@ -2890,7 +2880,7 @@ void mbedtls_ssl_conf_dtls_anti_replay( mbedtls_ssl_config *conf, char mode ); * might make us waste resources checking authentication on * many bogus packets. */ -void mbedtls_ssl_conf_dtls_badmac_limit( mbedtls_ssl_config *conf, unsigned limit ); +void mbedtls_ssl_conf_dtls_badmac_limit(mbedtls_ssl_config *conf, unsigned limit); #if defined(MBEDTLS_SSL_PROTO_DTLS) @@ -2922,8 +2912,8 @@ void mbedtls_ssl_conf_dtls_badmac_limit( mbedtls_ssl_config *conf, unsigned limi * are currently always sent in separate datagrams. * */ -void mbedtls_ssl_set_datagram_packing( mbedtls_ssl_context *ssl, - unsigned allow_packing ); +void mbedtls_ssl_set_datagram_packing(mbedtls_ssl_context *ssl, + unsigned allow_packing); /** * \brief Set retransmit timeout values for the DTLS handshake. @@ -2956,7 +2946,7 @@ void mbedtls_ssl_set_datagram_packing( mbedtls_ssl_context *ssl, * goes: send ... 1s -> resend ... 2s -> resend ... 4s -> * resend ... 5s -> give up and return a timeout error. */ -void mbedtls_ssl_conf_handshake_timeout( mbedtls_ssl_config *conf, uint32_t min, uint32_t max ); +void mbedtls_ssl_conf_handshake_timeout(mbedtls_ssl_config *conf, uint32_t min, uint32_t max); #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_SSL_SRV_C) @@ -2997,10 +2987,10 @@ void mbedtls_ssl_conf_handshake_timeout( mbedtls_ssl_config *conf, uint32_t min, * \param f_get_cache session get callback * \param f_set_cache session set callback */ -void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, - void *p_cache, - mbedtls_ssl_cache_get_t *f_get_cache, - mbedtls_ssl_cache_set_t *f_set_cache ); +void mbedtls_ssl_conf_session_cache(mbedtls_ssl_config *conf, + void *p_cache, + mbedtls_ssl_cache_get_t *f_get_cache, + mbedtls_ssl_cache_set_t *f_set_cache); #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_CLI_C) @@ -3049,7 +3039,7 @@ void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, * \sa mbedtls_ssl_get_session() * \sa mbedtls_ssl_session_load() */ -int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session ); +int mbedtls_ssl_set_session(mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session); #endif /* MBEDTLS_SSL_CLI_C */ /** @@ -3084,9 +3074,9 @@ int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session * \return Another negative value for other kinds of errors (for * example, unsupported features in the embedded certificate). */ -int mbedtls_ssl_session_load( mbedtls_ssl_session *session, - const unsigned char *buf, - size_t len ); +int mbedtls_ssl_session_load(mbedtls_ssl_session *session, + const unsigned char *buf, + size_t len); /** * \brief Save session structure as serialized data in a buffer. @@ -3113,10 +3103,10 @@ int mbedtls_ssl_session_load( mbedtls_ssl_session *session, * \return \c 0 if successful. * \return #MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL if \p buf is too small. */ -int mbedtls_ssl_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len, - size_t *olen ); +int mbedtls_ssl_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len, + size_t *olen); /** * \brief Set the list of allowed ciphersuites and the preference @@ -3159,8 +3149,8 @@ int mbedtls_ssl_session_save( const mbedtls_ssl_session *session, * and \c MBEDTLS_TLS1_3_XXX macros defined in * ssl_ciphersuites.h. */ -void mbedtls_ssl_conf_ciphersuites( mbedtls_ssl_config *conf, - const int *ciphersuites ); +void mbedtls_ssl_conf_ciphersuites(mbedtls_ssl_config *conf, + const int *ciphersuites); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /** @@ -3205,8 +3195,8 @@ void mbedtls_ssl_conf_ciphersuites( mbedtls_ssl_config *conf, * */ -void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config* conf, - const int kex_modes ); +void mbedtls_ssl_conf_tls13_key_exchange_modes(mbedtls_ssl_config *conf, + const int kex_modes); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) @@ -3244,8 +3234,8 @@ void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config* conf, * \return #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if \p own_cid_len * is too large. */ -int mbedtls_ssl_conf_cid( mbedtls_ssl_config *conf, size_t len, - int ignore_other_cids ); +int mbedtls_ssl_conf_cid(mbedtls_ssl_config *conf, size_t len, + int ignore_other_cids); #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -3259,8 +3249,8 @@ int mbedtls_ssl_conf_cid( mbedtls_ssl_config *conf, size_t len, * \param conf SSL configuration * \param profile Profile to use */ -void mbedtls_ssl_conf_cert_profile( mbedtls_ssl_config *conf, - const mbedtls_x509_crt_profile *profile ); +void mbedtls_ssl_conf_cert_profile(mbedtls_ssl_config *conf, + const mbedtls_x509_crt_profile *profile); /** * \brief Set the data required to verify peer certificate @@ -3273,9 +3263,9 @@ void mbedtls_ssl_conf_cert_profile( mbedtls_ssl_config *conf, * \param ca_chain trusted CA chain (meaning all fully trusted top-level CAs) * \param ca_crl trusted CA CRLs */ -void mbedtls_ssl_conf_ca_chain( mbedtls_ssl_config *conf, +void mbedtls_ssl_conf_ca_chain(mbedtls_ssl_config *conf, mbedtls_x509_crt *ca_chain, - mbedtls_x509_crl *ca_crl ); + mbedtls_x509_crl *ca_crl); #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /** @@ -3290,8 +3280,8 @@ void mbedtls_ssl_conf_ca_chain( mbedtls_ssl_config *conf, * from which the client should select client peer certificate. */ static inline -void mbedtls_ssl_conf_dn_hints( mbedtls_ssl_config *conf, - const mbedtls_x509_crt *crt ) +void mbedtls_ssl_conf_dn_hints(mbedtls_ssl_config *conf, + const mbedtls_x509_crt *crt) { conf->MBEDTLS_PRIVATE(dn_hints) = crt; } @@ -3349,9 +3339,9 @@ void mbedtls_ssl_conf_dn_hints( mbedtls_ssl_config *conf, * to guarantee this (for example through a mutex * contained in the callback context pointed to by \p p_ca_cb). */ -void mbedtls_ssl_conf_ca_cb( mbedtls_ssl_config *conf, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb ); +void mbedtls_ssl_conf_ca_cb(mbedtls_ssl_config *conf, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb); #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ /** @@ -3390,9 +3380,9 @@ void mbedtls_ssl_conf_ca_cb( mbedtls_ssl_config *conf, * * \return 0 on success or MBEDTLS_ERR_SSL_ALLOC_FAILED */ -int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, +int mbedtls_ssl_conf_own_cert(mbedtls_ssl_config *conf, mbedtls_x509_crt *own_cert, - mbedtls_pk_context *pk_key ); + mbedtls_pk_context *pk_key); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) @@ -3428,9 +3418,9 @@ int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, * can be configured. In this case, the old PSK(s) remain intact. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, - const unsigned char *psk, size_t psk_len, - const unsigned char *psk_identity, size_t psk_identity_len ); +int mbedtls_ssl_conf_psk(mbedtls_ssl_config *conf, + const unsigned char *psk, size_t psk_len, + const unsigned char *psk_identity, size_t psk_identity_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) /** @@ -3470,10 +3460,10 @@ int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, * can be configured. In this case, the old PSK(s) remain intact. * \return Another negative error code on other kinds of failure. */ -int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, - mbedtls_svc_key_id_t psk, - const unsigned char *psk_identity, - size_t psk_identity_len ); +int mbedtls_ssl_conf_psk_opaque(mbedtls_ssl_config *conf, + mbedtls_svc_key_id_t psk, + const unsigned char *psk_identity, + size_t psk_identity_len); #endif /* MBEDTLS_USE_PSA_CRYPTO */ /** @@ -3492,8 +3482,8 @@ int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, * \return \c 0 if successful. * \return An \c MBEDTLS_ERR_SSL_XXX error code on failure. */ -int mbedtls_ssl_set_hs_psk( mbedtls_ssl_context *ssl, - const unsigned char *psk, size_t psk_len ); +int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl, + const unsigned char *psk, size_t psk_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) /** @@ -3512,12 +3502,12 @@ int mbedtls_ssl_set_hs_psk( mbedtls_ssl_context *ssl, * PSA_ALG_CATEGORY_KEY_DERIVATION whose policy allows its * use for the key derivation algorithm * applied in the handshake. - * + * * \return \c 0 if successful. * \return An \c MBEDTLS_ERR_SSL_XXX error code on failure. */ -int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, - mbedtls_svc_key_id_t psk ); +int mbedtls_ssl_set_hs_psk_opaque(mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t psk); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_SRV_C) @@ -3559,10 +3549,10 @@ int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, * \param p_psk A pointer to an opaque structure to be passed to * the callback, for example a PSK store. */ -void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, - int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, - size_t), - void *p_psk ); +void mbedtls_ssl_conf_psk_cb(mbedtls_ssl_config *conf, + int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, + size_t), + void *p_psk); #endif /* MBEDTLS_SSL_SRV_C */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ @@ -3580,9 +3570,9 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, * * \return 0 if successful */ -int mbedtls_ssl_conf_dh_param_bin( mbedtls_ssl_config *conf, - const unsigned char *dhm_P, size_t P_len, - const unsigned char *dhm_G, size_t G_len ); +int mbedtls_ssl_conf_dh_param_bin(mbedtls_ssl_config *conf, + const unsigned char *dhm_P, size_t P_len, + const unsigned char *dhm_G, size_t G_len); /** * \brief Set the Diffie-Hellman public P and G values, @@ -3593,7 +3583,7 @@ int mbedtls_ssl_conf_dh_param_bin( mbedtls_ssl_config *conf, * * \return 0 if successful */ -int mbedtls_ssl_conf_dh_param_ctx( mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx ); +int mbedtls_ssl_conf_dh_param_ctx(mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx); #endif /* MBEDTLS_DHM_C && defined(MBEDTLS_SSL_SRV_C) */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_CLI_C) @@ -3605,8 +3595,8 @@ int mbedtls_ssl_conf_dh_param_ctx( mbedtls_ssl_config *conf, mbedtls_dhm_context * \param conf SSL configuration * \param bitlen Minimum bit length of the DHM prime */ -void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, - unsigned int bitlen ); +void mbedtls_ssl_conf_dhm_min_bitlen(mbedtls_ssl_config *conf, + unsigned int bitlen); #endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_ECP_C) @@ -3652,8 +3642,8 @@ void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, * \param curves Ordered list of allowed curves, * terminated by MBEDTLS_ECP_DP_NONE. */ -void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, - const mbedtls_ecp_group_id *curves ); +void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves(mbedtls_ssl_config *conf, + const mbedtls_ecp_group_id *curves); #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ @@ -3694,8 +3684,8 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, * Must contain valid IANA NamedGroup IDs (provided via either an integer * or using MBEDTLS_TLS1_3_NAMED_GROUP_XXX macros). */ -void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, - const uint16_t *groups ); +void mbedtls_ssl_conf_groups(mbedtls_ssl_config *conf, + const uint16_t *groups); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) && defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -3728,8 +3718,8 @@ void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, * \param hashes Ordered list of allowed signature hashes, * terminated by \c MBEDTLS_MD_NONE. */ -void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes( mbedtls_ssl_config *conf, - const int *hashes ); +void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes(mbedtls_ssl_config *conf, + const int *hashes); #endif /* !MBEDTLS_DEPRECATED_REMOVED && MBEDTLS_SSL_PROTO_TLS1_2 */ /** @@ -3741,8 +3731,8 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_sig_hashes( mbedtls_ssl_config *conf, * available throughout the lifetime of the conf object. Supported * values are available as \c MBEDTLS_TLS1_3_SIG_XXXX */ -void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, - const uint16_t* sig_algs ); +void mbedtls_ssl_conf_sig_algs(mbedtls_ssl_config *conf, + const uint16_t *sig_algs); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -3764,7 +3754,7 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * when NULL). On allocation failure hostname is cleared. * On too long input failure, old hostname is unchanged. */ -int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); +int mbedtls_ssl_set_hostname(mbedtls_ssl_context *ssl, const char *hostname); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -3786,8 +3776,8 @@ int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ); * - value is not '\0'-terminated. Use \c name_len for len. * - value must not be freed. */ -const unsigned char *mbedtls_ssl_get_hs_sni( mbedtls_ssl_context *ssl, - size_t *name_len ); +const unsigned char *mbedtls_ssl_get_hs_sni(mbedtls_ssl_context *ssl, + size_t *name_len); /** * \brief Set own certificate and key for the current handshake @@ -3804,9 +3794,9 @@ const unsigned char *mbedtls_ssl_get_hs_sni( mbedtls_ssl_context *ssl, * * \return 0 on success or MBEDTLS_ERR_SSL_ALLOC_FAILED */ -int mbedtls_ssl_set_hs_own_cert( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *own_cert, - mbedtls_pk_context *pk_key ); +int mbedtls_ssl_set_hs_own_cert(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *own_cert, + mbedtls_pk_context *pk_key); /** * \brief Set the data required to verify peer certificate for the @@ -3819,9 +3809,9 @@ int mbedtls_ssl_set_hs_own_cert( mbedtls_ssl_context *ssl, * \param ca_chain trusted CA chain (meaning all fully trusted top-level CAs) * \param ca_crl trusted CA CRLs */ -void mbedtls_ssl_set_hs_ca_chain( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *ca_chain, - mbedtls_x509_crl *ca_crl ); +void mbedtls_ssl_set_hs_ca_chain(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *ca_chain, + mbedtls_x509_crl *ca_crl); #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) /** @@ -3834,8 +3824,8 @@ void mbedtls_ssl_set_hs_ca_chain( mbedtls_ssl_context *ssl, * \param crt crt chain whose subject DNs are issuer DNs of client certs * from which the client should select client peer certificate. */ -void mbedtls_ssl_set_hs_dn_hints( mbedtls_ssl_context *ssl, - const mbedtls_x509_crt *crt ); +void mbedtls_ssl_set_hs_dn_hints(mbedtls_ssl_context *ssl, + const mbedtls_x509_crt *crt); #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ /** @@ -3848,8 +3838,8 @@ void mbedtls_ssl_set_hs_dn_hints( mbedtls_ssl_context *ssl, * \param authmode MBEDTLS_SSL_VERIFY_NONE, MBEDTLS_SSL_VERIFY_OPTIONAL or * MBEDTLS_SSL_VERIFY_REQUIRED */ -void mbedtls_ssl_set_hs_authmode( mbedtls_ssl_context *ssl, - int authmode ); +void mbedtls_ssl_set_hs_authmode(mbedtls_ssl_context *ssl, + int authmode); /** * \brief Set server side ServerName TLS extension callback @@ -3873,10 +3863,10 @@ void mbedtls_ssl_set_hs_authmode( mbedtls_ssl_context *ssl, * \param f_sni verification function * \param p_sni verification parameter */ -void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, - int (*f_sni)(void *, mbedtls_ssl_context *, const unsigned char *, - size_t), - void *p_sni ); +void mbedtls_ssl_conf_sni(mbedtls_ssl_config *conf, + int (*f_sni)(void *, mbedtls_ssl_context *, const unsigned char *, + size_t), + void *p_sni); #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) @@ -3898,9 +3888,9 @@ void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, * * \return 0 on success, or a negative error code. */ -int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, - const unsigned char *pw, - size_t pw_len ); +int mbedtls_ssl_set_hs_ecjpake_password(mbedtls_ssl_context *ssl, + const unsigned char *pw, + size_t pw_len); /** * \brief Set the EC J-PAKE opaque password for current handshake. @@ -3916,8 +3906,8 @@ int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, * * \return 0 on success, or a negative error code. */ -int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, - mbedtls_svc_key_id_t pwd ); +int mbedtls_ssl_set_hs_ecjpake_password_opaque(mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd); #endif /*MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) @@ -3933,7 +3923,7 @@ int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, * * \return 0 on success, or MBEDTLS_ERR_SSL_BAD_INPUT_DATA. */ -int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **protos ); +int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf, const char **protos); /** * \brief Get the name of the negotiated Application Layer Protocol. @@ -3944,26 +3934,25 @@ int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **prot * * \return Protocol name, or NULL if no protocol was negotiated. */ -const char *mbedtls_ssl_get_alpn_protocol( const mbedtls_ssl_context *ssl ); +const char *mbedtls_ssl_get_alpn_protocol(const mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_DTLS_SRTP) #if defined(MBEDTLS_DEBUG_C) -static inline const char *mbedtls_ssl_get_srtp_profile_as_string( mbedtls_ssl_srtp_profile profile ) +static inline const char *mbedtls_ssl_get_srtp_profile_as_string(mbedtls_ssl_srtp_profile profile) { - switch( profile ) - { + switch (profile) { case MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80: - return( "MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80" ); + return "MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80"; case MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32: - return( "MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32" ); + return "MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32"; case MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80: - return( "MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80" ); + return "MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80"; case MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32: - return( "MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32" ); + return "MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32"; default: break; } - return( "" ); + return ""; } #endif /* MBEDTLS_DEBUG_C */ /** @@ -3979,8 +3968,8 @@ static inline const char *mbedtls_ssl_get_srtp_profile_as_string( mbedtls_ssl_sr * #MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED * or #MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED. */ -void mbedtls_ssl_conf_srtp_mki_value_supported( mbedtls_ssl_config *conf, - int support_mki_value ); +void mbedtls_ssl_conf_srtp_mki_value_supported(mbedtls_ssl_config *conf, + int support_mki_value); /** * \brief Set the supported DTLS-SRTP protection profiles. @@ -4002,8 +3991,8 @@ void mbedtls_ssl_conf_srtp_mki_value_supported( mbedtls_ssl_config *conf, * protection profiles is incorrect. */ int mbedtls_ssl_conf_dtls_srtp_protection_profiles - ( mbedtls_ssl_config *conf, - const mbedtls_ssl_srtp_profile *profiles ); + (mbedtls_ssl_config *conf, + const mbedtls_ssl_srtp_profile *profiles); /** * \brief Set the mki_value for the current DTLS-SRTP session. @@ -4021,9 +4010,9 @@ int mbedtls_ssl_conf_dtls_srtp_protection_profiles * \return #MBEDTLS_ERR_SSL_BAD_INPUT_DATA * \return #MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE */ -int mbedtls_ssl_dtls_srtp_set_mki_value( mbedtls_ssl_context *ssl, - unsigned char *mki_value, - uint16_t mki_len ); +int mbedtls_ssl_dtls_srtp_set_mki_value(mbedtls_ssl_context *ssl, + unsigned char *mki_value, + uint16_t mki_len); /** * \brief Get the negotiated DTLS-SRTP information: * Protection profile and MKI value. @@ -4042,8 +4031,8 @@ int mbedtls_ssl_dtls_srtp_set_mki_value( mbedtls_ssl_context *ssl, * or peer's Hello packet was not parsed yet. * - mki size and value( if size is > 0 ). */ -void mbedtls_ssl_get_dtls_srtp_negotiation_result( const mbedtls_ssl_context *ssl, - mbedtls_dtls_srtp_info *dtls_srtp_info ); +void mbedtls_ssl_get_dtls_srtp_negotiation_result(const mbedtls_ssl_context *ssl, + mbedtls_dtls_srtp_info *dtls_srtp_info); #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -4064,7 +4053,8 @@ void mbedtls_ssl_get_dtls_srtp_negotiation_result( const mbedtls_ssl_context *ss * (#MBEDTLS_SSL_MINOR_VERSION_3 for (D)TLS 1.2, * #MBEDTLS_SSL_MINOR_VERSION_4 for TLS 1.3) */ -void MBEDTLS_DEPRECATED mbedtls_ssl_conf_max_version( mbedtls_ssl_config *conf, int major, int minor ); +void MBEDTLS_DEPRECATED mbedtls_ssl_conf_max_version(mbedtls_ssl_config *conf, int major, + int minor); #endif /* MBEDTLS_DEPRECATED_REMOVED */ /** @@ -4079,8 +4069,8 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_max_version( mbedtls_ssl_config *conf, * \param tls_version TLS protocol version number (\p mbedtls_ssl_protocol_version) * (#MBEDTLS_SSL_VERSION_UNKNOWN is not valid) */ -static inline void mbedtls_ssl_conf_max_tls_version( mbedtls_ssl_config *conf, - mbedtls_ssl_protocol_version tls_version ) +static inline void mbedtls_ssl_conf_max_tls_version(mbedtls_ssl_config *conf, + mbedtls_ssl_protocol_version tls_version) { conf->MBEDTLS_PRIVATE(max_tls_version) = tls_version; } @@ -4120,7 +4110,8 @@ static inline void mbedtls_ssl_conf_max_tls_version( mbedtls_ssl_config *conf, * (#MBEDTLS_SSL_MINOR_VERSION_3 for (D)TLS 1.2, * #MBEDTLS_SSL_MINOR_VERSION_4 for TLS 1.3) */ -void MBEDTLS_DEPRECATED mbedtls_ssl_conf_min_version( mbedtls_ssl_config *conf, int major, int minor ); +void MBEDTLS_DEPRECATED mbedtls_ssl_conf_min_version(mbedtls_ssl_config *conf, int major, + int minor); #endif /* MBEDTLS_DEPRECATED_REMOVED */ /** @@ -4135,8 +4126,8 @@ void MBEDTLS_DEPRECATED mbedtls_ssl_conf_min_version( mbedtls_ssl_config *conf, * \param tls_version TLS protocol version number (\p mbedtls_ssl_protocol_version) * (#MBEDTLS_SSL_VERSION_UNKNOWN is not valid) */ -static inline void mbedtls_ssl_conf_min_tls_version( mbedtls_ssl_config *conf, - mbedtls_ssl_protocol_version tls_version ) +static inline void mbedtls_ssl_conf_min_tls_version(mbedtls_ssl_config *conf, + mbedtls_ssl_protocol_version tls_version) { conf->MBEDTLS_PRIVATE(min_tls_version) = tls_version; } @@ -4153,7 +4144,7 @@ static inline void mbedtls_ssl_conf_min_tls_version( mbedtls_ssl_config *conf, * \param conf SSL configuration * \param etm MBEDTLS_SSL_ETM_ENABLED or MBEDTLS_SSL_ETM_DISABLED */ -void mbedtls_ssl_conf_encrypt_then_mac( mbedtls_ssl_config *conf, char etm ); +void mbedtls_ssl_conf_encrypt_then_mac(mbedtls_ssl_config *conf, char etm); #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) @@ -4168,7 +4159,7 @@ void mbedtls_ssl_conf_encrypt_then_mac( mbedtls_ssl_config *conf, char etm ); * \param conf SSL configuration * \param ems MBEDTLS_SSL_EXTENDED_MS_ENABLED or MBEDTLS_SSL_EXTENDED_MS_DISABLED */ -void mbedtls_ssl_conf_extended_master_secret( mbedtls_ssl_config *conf, char ems ); +void mbedtls_ssl_conf_extended_master_secret(mbedtls_ssl_config *conf, char ems); #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SRV_C) @@ -4181,8 +4172,8 @@ void mbedtls_ssl_conf_extended_master_secret( mbedtls_ssl_config *conf, char ems * \param cert_req_ca_list MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED or * MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED */ -void mbedtls_ssl_conf_cert_req_ca_list( mbedtls_ssl_config *conf, - char cert_req_ca_list ); +void mbedtls_ssl_conf_cert_req_ca_list(mbedtls_ssl_config *conf, + char cert_req_ca_list); #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) @@ -4220,7 +4211,7 @@ void mbedtls_ssl_conf_cert_req_ca_list( mbedtls_ssl_config *conf, * * \return 0 if successful or MBEDTLS_ERR_SSL_BAD_INPUT_DATA */ -int mbedtls_ssl_conf_max_frag_len( mbedtls_ssl_config *conf, unsigned char mfl_code ); +int mbedtls_ssl_conf_max_frag_len(mbedtls_ssl_config *conf, unsigned char mfl_code); #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_SRV_C) @@ -4233,7 +4224,7 @@ int mbedtls_ssl_conf_max_frag_len( mbedtls_ssl_config *conf, unsigned char mfl_c * \param order Server or client (MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_SERVER * or MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_CLIENT) */ -void mbedtls_ssl_conf_preference_order( mbedtls_ssl_config *conf, int order ); +void mbedtls_ssl_conf_preference_order(mbedtls_ssl_config *conf, int order); #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ @@ -4248,7 +4239,7 @@ void mbedtls_ssl_conf_preference_order( mbedtls_ssl_config *conf, int order ); * \param use_tickets Enable or disable (MBEDTLS_SSL_SESSION_TICKETS_ENABLED or * MBEDTLS_SSL_SESSION_TICKETS_DISABLED) */ -void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets ); +void mbedtls_ssl_conf_session_tickets(mbedtls_ssl_config *conf, int use_tickets); #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ @@ -4272,8 +4263,8 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets * \param num_tickets Number of NewSessionTicket. * */ -void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, - uint16_t num_tickets ); +void mbedtls_ssl_conf_new_session_tickets(mbedtls_ssl_config *conf, + uint16_t num_tickets); #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_TLS1_3*/ @@ -4296,7 +4287,7 @@ void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, * \param renegotiation Enable or disable (MBEDTLS_SSL_RENEGOTIATION_ENABLED or * MBEDTLS_SSL_RENEGOTIATION_DISABLED) */ -void mbedtls_ssl_conf_renegotiation( mbedtls_ssl_config *conf, int renegotiation ); +void mbedtls_ssl_conf_renegotiation(mbedtls_ssl_config *conf, int renegotiation); #endif /* MBEDTLS_SSL_RENEGOTIATION */ /** @@ -4326,7 +4317,7 @@ void mbedtls_ssl_conf_renegotiation( mbedtls_ssl_config *conf, int renegotiation * SSL_ALLOW_LEGACY_RENEGOTIATION or * MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE) */ -void mbedtls_ssl_conf_legacy_renegotiation( mbedtls_ssl_config *conf, int allow_legacy ); +void mbedtls_ssl_conf_legacy_renegotiation(mbedtls_ssl_config *conf, int allow_legacy); #if defined(MBEDTLS_SSL_RENEGOTIATION) /** @@ -4366,7 +4357,7 @@ void mbedtls_ssl_conf_legacy_renegotiation( mbedtls_ssl_config *conf, int allow_ * enforce renegotiation, or a non-negative value to enforce * it but allow for a grace period of max_records records. */ -void mbedtls_ssl_conf_renegotiation_enforced( mbedtls_ssl_config *conf, int max_records ); +void mbedtls_ssl_conf_renegotiation_enforced(mbedtls_ssl_config *conf, int max_records); /** * \brief Set record counter threshold for periodic renegotiation. @@ -4393,8 +4384,8 @@ void mbedtls_ssl_conf_renegotiation_enforced( mbedtls_ssl_config *conf, int max_ * \param conf SSL configuration * \param period The threshold value: a big-endian 64-bit number. */ -void mbedtls_ssl_conf_renegotiation_period( mbedtls_ssl_config *conf, - const unsigned char period[8] ); +void mbedtls_ssl_conf_renegotiation_period(mbedtls_ssl_config *conf, + const unsigned char period[8]); #endif /* MBEDTLS_SSL_RENEGOTIATION */ /** @@ -4435,7 +4426,7 @@ void mbedtls_ssl_conf_renegotiation_period( mbedtls_ssl_config *conf, * that all internal data has been processed. * */ -int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ); +int mbedtls_ssl_check_pending(const mbedtls_ssl_context *ssl); /** * \brief Return the number of application data bytes @@ -4452,7 +4443,7 @@ int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ); * amount of data fitting into the input buffer. * */ -size_t mbedtls_ssl_get_bytes_avail( const mbedtls_ssl_context *ssl ); +size_t mbedtls_ssl_get_bytes_avail(const mbedtls_ssl_context *ssl); /** * \brief Return the result of the certificate verification @@ -4466,7 +4457,7 @@ size_t mbedtls_ssl_get_bytes_avail( const mbedtls_ssl_context *ssl ); * \return A bitwise combination of \c MBEDTLS_X509_BADCERT_XXX * and \c MBEDTLS_X509_BADCRL_XXX failure flags; see x509.h. */ -uint32_t mbedtls_ssl_get_verify_result( const mbedtls_ssl_context *ssl ); +uint32_t mbedtls_ssl_get_verify_result(const mbedtls_ssl_context *ssl); /** * \brief Return the id of the current ciphersuite @@ -4475,7 +4466,7 @@ uint32_t mbedtls_ssl_get_verify_result( const mbedtls_ssl_context *ssl ); * * \return a ciphersuite id */ -int mbedtls_ssl_get_ciphersuite_id_from_ssl( const mbedtls_ssl_context *ssl ); +int mbedtls_ssl_get_ciphersuite_id_from_ssl(const mbedtls_ssl_context *ssl); /** * \brief Return the name of the current ciphersuite @@ -4484,7 +4475,7 @@ int mbedtls_ssl_get_ciphersuite_id_from_ssl( const mbedtls_ssl_context *ssl ); * * \return a string containing the ciphersuite name */ -const char *mbedtls_ssl_get_ciphersuite( const mbedtls_ssl_context *ssl ); +const char *mbedtls_ssl_get_ciphersuite(const mbedtls_ssl_context *ssl); /** @@ -4499,7 +4490,7 @@ const char *mbedtls_ssl_get_ciphersuite( const mbedtls_ssl_context *ssl ); * \return The negotiated protocol version. */ static inline mbedtls_ssl_protocol_version mbedtls_ssl_get_version_number( - const mbedtls_ssl_context *ssl ) + const mbedtls_ssl_context *ssl) { return ssl->MBEDTLS_PRIVATE(tls_version); } @@ -4511,7 +4502,7 @@ static inline mbedtls_ssl_protocol_version mbedtls_ssl_get_version_number( * * \return a string containing the TLS version */ -const char *mbedtls_ssl_get_version( const mbedtls_ssl_context *ssl ); +const char *mbedtls_ssl_get_version(const mbedtls_ssl_context *ssl); /** * \brief Return the (maximum) number of bytes added by the record @@ -4521,7 +4512,7 @@ const char *mbedtls_ssl_get_version( const mbedtls_ssl_context *ssl ); * * \return Current maximum record expansion in bytes */ -int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ); +int mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *ssl); /** * \brief Return the current maximum outgoing record payload in bytes. @@ -4548,7 +4539,7 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ); * \return Current maximum payload for an outgoing record, * or a negative error code. */ -int mbedtls_ssl_get_max_out_record_payload( const mbedtls_ssl_context *ssl ); +int mbedtls_ssl_get_max_out_record_payload(const mbedtls_ssl_context *ssl); /** * \brief Return the current maximum incoming record payload in bytes. @@ -4568,7 +4559,7 @@ int mbedtls_ssl_get_max_out_record_payload( const mbedtls_ssl_context *ssl ); * \return Current maximum payload for an outgoing record, * or a negative error code. */ -int mbedtls_ssl_get_max_in_record_payload( const mbedtls_ssl_context *ssl ); +int mbedtls_ssl_get_max_in_record_payload(const mbedtls_ssl_context *ssl); #if defined(MBEDTLS_X509_CRT_PARSE_C) /** @@ -4601,7 +4592,7 @@ int mbedtls_ssl_get_max_in_record_payload( const mbedtls_ssl_context *ssl ); * If you want to use the certificate across API calls, * you must make a copy. */ -const mbedtls_x509_crt *mbedtls_ssl_get_peer_cert( const mbedtls_ssl_context *ssl ); +const mbedtls_x509_crt *mbedtls_ssl_get_peer_cert(const mbedtls_ssl_context *ssl); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_CLI_C) @@ -4639,8 +4630,8 @@ const mbedtls_x509_crt *mbedtls_ssl_get_peer_cert( const mbedtls_ssl_context *ss * \sa mbedtls_ssl_set_session() * \sa mbedtls_ssl_session_save() */ -int mbedtls_ssl_get_session( const mbedtls_ssl_context *ssl, - mbedtls_ssl_session *session ); +int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl, + mbedtls_ssl_session *session); #endif /* MBEDTLS_SSL_CLI_C */ /** @@ -4693,7 +4684,7 @@ int mbedtls_ssl_get_session( const mbedtls_ssl_context *ssl, * currently being processed might or might not contain further * DTLS records. */ -int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_handshake(mbedtls_ssl_context *ssl); /** * \brief After calling mbedtls_ssl_handshake() to start the SSL @@ -4706,9 +4697,9 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ); * * \return \c 1 if handshake is over, \c 0 if it is still ongoing. */ -static inline int mbedtls_ssl_is_handshake_over( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_is_handshake_over(mbedtls_ssl_context *ssl) { - return( ssl->MBEDTLS_PRIVATE( state ) >= MBEDTLS_SSL_HANDSHAKE_OVER ); + return ssl->MBEDTLS_PRIVATE(state) >= MBEDTLS_SSL_HANDSHAKE_OVER; } /** @@ -4744,7 +4735,7 @@ static inline int mbedtls_ssl_is_handshake_over( mbedtls_ssl_context *ssl ) * re-using it for a new connection; the current connection * must be closed. */ -int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_handshake_step(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_RENEGOTIATION) /** @@ -4770,7 +4761,7 @@ int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ); * must be closed. * */ -int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_renegotiate(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_RENEGOTIATION */ /** @@ -4850,7 +4841,7 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ); * \c mbedtls_ssl_check_pending to check for remaining records. * */ -int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ); +int mbedtls_ssl_read(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len); /** * \brief Try to write exactly 'len' application data bytes @@ -4912,7 +4903,7 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) * \note Attempting to write 0 bytes will result in an empty TLS * application record being sent. */ -int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_t len ); +int mbedtls_ssl_write(mbedtls_ssl_context *ssl, const unsigned char *buf, size_t len); /** * \brief Send an alert message @@ -4930,9 +4921,9 @@ int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_ * call \c mbedtls_ssl_session_reset() on it before re-using it * for a new connection; the current connection must be closed. */ -int mbedtls_ssl_send_alert_message( mbedtls_ssl_context *ssl, - unsigned char level, - unsigned char message ); +int mbedtls_ssl_send_alert_message(mbedtls_ssl_context *ssl, + unsigned char level, + unsigned char message); /** * \brief Notify the peer that the connection is being closed * @@ -4946,7 +4937,7 @@ int mbedtls_ssl_send_alert_message( mbedtls_ssl_context *ssl, * call \c mbedtls_ssl_session_reset() on it before re-using it * for a new connection; the current connection must be closed. */ -int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_close_notify(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_EARLY_DATA) @@ -4995,8 +4986,8 @@ int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ); * \p ssl. But this is not mandatory. * */ -int mbedtls_ssl_read_early_data( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t len ); +int mbedtls_ssl_read_early_data(mbedtls_ssl_context *ssl, + unsigned char *buf, size_t len); #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_CLI_C) @@ -5056,8 +5047,8 @@ int mbedtls_ssl_read_early_data( mbedtls_ssl_context *ssl, * mbedtls_ssl_get_early_data_status() with the handshake * completed. */ -int mbedtls_ssl_write_early_data( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ); +int mbedtls_ssl_write_early_data(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len); #define MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT 0 #define MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED 1 @@ -5088,7 +5079,7 @@ int mbedtls_ssl_write_early_data( mbedtls_ssl_context *ssl, * application data by calling mbedtls_ssl_write(). * */ -int mbedtls_ssl_get_early_data_status( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_get_early_data_status(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_CLI_C */ #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -5098,7 +5089,7 @@ int mbedtls_ssl_get_early_data_status( mbedtls_ssl_context *ssl ); * * \param ssl SSL context */ -void mbedtls_ssl_free( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_free(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) /** @@ -5157,10 +5148,10 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ); * or the connection does not use DTLS 1.2 with an AEAD * ciphersuite, or renegotiation is enabled. */ -int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t buf_len, - size_t *olen ); +int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t buf_len, + size_t *olen); /** * \brief Load serialized connection data to an SSL context. @@ -5230,9 +5221,9 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * comes from a different Mbed TLS version or build. * \return #MBEDTLS_ERR_SSL_BAD_INPUT_DATA if input data is invalid. */ -int mbedtls_ssl_context_load( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ); +int mbedtls_ssl_context_load(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len); #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ /** @@ -5245,7 +5236,7 @@ int mbedtls_ssl_context_load( mbedtls_ssl_context *ssl, * * \param conf SSL configuration context */ -void mbedtls_ssl_config_init( mbedtls_ssl_config *conf ); +void mbedtls_ssl_config_init(mbedtls_ssl_config *conf); /** * \brief Load reasonable default SSL configuration values. @@ -5262,22 +5253,22 @@ void mbedtls_ssl_config_init( mbedtls_ssl_config *conf ); * \return 0 if successful, or * MBEDTLS_ERR_XXX_ALLOC_FAILED on memory allocation error. */ -int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, - int endpoint, int transport, int preset ); +int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf, + int endpoint, int transport, int preset); /** * \brief Free an SSL configuration context * * \param conf SSL configuration context */ -void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ); +void mbedtls_ssl_config_free(mbedtls_ssl_config *conf); /** * \brief Initialize SSL session structure * * \param session SSL session */ -void mbedtls_ssl_session_init( mbedtls_ssl_session *session ); +void mbedtls_ssl_session_init(mbedtls_ssl_session *session); /** * \brief Free referenced items in an SSL session including the @@ -5288,7 +5279,7 @@ void mbedtls_ssl_session_init( mbedtls_ssl_session *session ); * * \param session SSL session */ -void mbedtls_ssl_session_free( mbedtls_ssl_session *session ); +void mbedtls_ssl_session_free(mbedtls_ssl_session *session); /** * \brief TLS-PRF function for key derivation. @@ -5305,11 +5296,11 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ); * * \return 0 on success. An SSL specific error on failure. */ -int mbedtls_ssl_tls_prf( const mbedtls_tls_prf_types prf, - const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ); +int mbedtls_ssl_tls_prf(const mbedtls_tls_prf_types prf, + const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen); #ifdef __cplusplus } diff --git a/include/mbedtls/ssl_cache.h b/include/mbedtls/ssl_cache.h index cb016fe70..5cd1cd3f3 100644 --- a/include/mbedtls/ssl_cache.h +++ b/include/mbedtls/ssl_cache.h @@ -59,8 +59,7 @@ typedef struct mbedtls_ssl_cache_entry mbedtls_ssl_cache_entry; /** * \brief This structure is used for storing cache entries */ -struct mbedtls_ssl_cache_entry -{ +struct mbedtls_ssl_cache_entry { #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t MBEDTLS_PRIVATE(timestamp); /*!< entry timestamp */ #endif @@ -77,8 +76,7 @@ struct mbedtls_ssl_cache_entry /** * \brief Cache context */ -struct mbedtls_ssl_cache_context -{ +struct mbedtls_ssl_cache_context { mbedtls_ssl_cache_entry *MBEDTLS_PRIVATE(chain); /*!< start of the chain */ int MBEDTLS_PRIVATE(timeout); /*!< cache entry timeout */ int MBEDTLS_PRIVATE(max_entries); /*!< maximum entries */ @@ -92,7 +90,7 @@ struct mbedtls_ssl_cache_context * * \param cache SSL cache context */ -void mbedtls_ssl_cache_init( mbedtls_ssl_cache_context *cache ); +void mbedtls_ssl_cache_init(mbedtls_ssl_cache_context *cache); /** * \brief Cache get callback implementation @@ -105,10 +103,10 @@ void mbedtls_ssl_cache_init( mbedtls_ssl_cache_context *cache ); * \param session The address at which to store the session * associated with \p session_id, if present. */ -int mbedtls_ssl_cache_get( void *data, - unsigned char const *session_id, - size_t session_id_len, - mbedtls_ssl_session *session ); +int mbedtls_ssl_cache_get(void *data, + unsigned char const *session_id, + size_t session_id_len, + mbedtls_ssl_session *session); /** * \brief Cache set callback implementation @@ -120,10 +118,10 @@ int mbedtls_ssl_cache_get( void *data, * \param session_id_len The length of \p session_id in bytes. * \param session The session to store. */ -int mbedtls_ssl_cache_set( void *data, - unsigned char const *session_id, - size_t session_id_len, - const mbedtls_ssl_session *session ); +int mbedtls_ssl_cache_set(void *data, + unsigned char const *session_id, + size_t session_id_len, + const mbedtls_ssl_session *session); #if defined(MBEDTLS_HAVE_TIME) /** @@ -135,7 +133,7 @@ int mbedtls_ssl_cache_set( void *data, * \param cache SSL cache context * \param timeout cache entry timeout in seconds */ -void mbedtls_ssl_cache_set_timeout( mbedtls_ssl_cache_context *cache, int timeout ); +void mbedtls_ssl_cache_set_timeout(mbedtls_ssl_cache_context *cache, int timeout); #endif /* MBEDTLS_HAVE_TIME */ /** @@ -145,14 +143,14 @@ void mbedtls_ssl_cache_set_timeout( mbedtls_ssl_cache_context *cache, int timeou * \param cache SSL cache context * \param max cache entry maximum */ -void mbedtls_ssl_cache_set_max_entries( mbedtls_ssl_cache_context *cache, int max ); +void mbedtls_ssl_cache_set_max_entries(mbedtls_ssl_cache_context *cache, int max); /** * \brief Free referenced items in a cache context and clear memory * * \param cache SSL cache context */ -void mbedtls_ssl_cache_free( mbedtls_ssl_cache_context *cache ); +void mbedtls_ssl_cache_free(mbedtls_ssl_cache_context *cache); #ifdef __cplusplus } diff --git a/include/mbedtls/ssl_ciphersuites.h b/include/mbedtls/ssl_ciphersuites.h index b46116e0d..17b8ff789 100644 --- a/include/mbedtls/ssl_ciphersuites.h +++ b/include/mbedtls/ssl_ciphersuites.h @@ -378,10 +378,9 @@ typedef struct mbedtls_ssl_ciphersuite_t mbedtls_ssl_ciphersuite_t; * in order to pack structure and reduce memory usage by internal * \c ciphersuite_definitions[] */ -struct mbedtls_ssl_ciphersuite_t -{ +struct mbedtls_ssl_ciphersuite_t { int MBEDTLS_PRIVATE(id); - const char * MBEDTLS_PRIVATE(name); + const char *MBEDTLS_PRIVATE(name); uint8_t MBEDTLS_PRIVATE(cipher); /* mbedtls_cipher_type_t */ uint8_t MBEDTLS_PRIVATE(mac); /* mbedtls_md_type_t */ @@ -392,103 +391,98 @@ struct mbedtls_ssl_ciphersuite_t uint16_t MBEDTLS_PRIVATE(max_tls_version); /* mbedtls_ssl_protocol_version */ }; -const int *mbedtls_ssl_list_ciphersuites( void ); +const int *mbedtls_ssl_list_ciphersuites(void); -const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string( const char *ciphersuite_name ); -const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite_id ); +const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(const char *ciphersuite_name); +const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id(int ciphersuite_id); #if defined(MBEDTLS_PK_C) -mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info ); +mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info); #if defined(MBEDTLS_USE_PSA_CRYPTO) -psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg( const mbedtls_ssl_ciphersuite_t *info ); -psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage( const mbedtls_ssl_ciphersuite_t *info ); +psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info); +psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info); #endif -mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphersuite_t *info ); +mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info); #endif -int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info ); -int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info ); +int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info); +int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info); -static inline const char *mbedtls_ssl_ciphersuite_get_name( const mbedtls_ssl_ciphersuite_t *info ) +static inline const char *mbedtls_ssl_ciphersuite_get_name(const mbedtls_ssl_ciphersuite_t *info) { return info->MBEDTLS_PRIVATE(name); } -size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( const mbedtls_ssl_ciphersuite_t *info ); +size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersuite_t *info); #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED) -static inline int mbedtls_ssl_ciphersuite_has_pfs( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_has_pfs(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_DHE_PSK: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECJPAKE: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED) -static inline int mbedtls_ssl_ciphersuite_no_pfs( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_no_pfs(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_PSK: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED) -static inline int mbedtls_ssl_ciphersuite_uses_ecdh( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_uses_ecdh(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED */ -static inline int mbedtls_ssl_ciphersuite_cert_req_allowed( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_cert_req_allowed(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } -static inline int mbedtls_ssl_ciphersuite_uses_srv_cert( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_uses_srv_cert(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: case MBEDTLS_KEY_EXCHANGE_DHE_RSA: @@ -496,56 +490,54 @@ static inline int mbedtls_ssl_ciphersuite_uses_srv_cert( const mbedtls_ssl_ciphe case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED) -static inline int mbedtls_ssl_ciphersuite_uses_dhe( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_uses_dhe(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_DHE_PSK: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED) */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) -static inline int mbedtls_ssl_ciphersuite_uses_ecdhe( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_uses_ecdhe(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) */ #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) -static inline int mbedtls_ssl_ciphersuite_uses_server_signature( const mbedtls_ssl_ciphersuite_t *info ) +static inline int mbedtls_ssl_ciphersuite_uses_server_signature( + const mbedtls_ssl_ciphersuite_t *info) { - switch( info->MBEDTLS_PRIVATE(key_exchange) ) - { + switch (info->MBEDTLS_PRIVATE(key_exchange)) { case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED */ diff --git a/include/mbedtls/ssl_cookie.h b/include/mbedtls/ssl_cookie.h index a1ca74b48..5cd1847d0 100644 --- a/include/mbedtls/ssl_cookie.h +++ b/include/mbedtls/ssl_cookie.h @@ -53,8 +53,7 @@ extern "C" { /** * \brief Context for the default cookie functions. */ -typedef struct mbedtls_ssl_cookie_ctx -{ +typedef struct mbedtls_ssl_cookie_ctx { #if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psa_hmac_key); /*!< key id for the HMAC portion */ psa_algorithm_t MBEDTLS_PRIVATE(psa_hmac_alg); /*!< key algorithm for the HMAC portion */ @@ -65,7 +64,7 @@ typedef struct mbedtls_ssl_cookie_ctx unsigned long MBEDTLS_PRIVATE(serial); /*!< serial number for expiration */ #endif unsigned long MBEDTLS_PRIVATE(timeout); /*!< timeout delay, in seconds if HAVE_TIME, - or in number of tickets issued */ + or in number of tickets issued */ #if !defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_THREADING_C) @@ -77,14 +76,14 @@ typedef struct mbedtls_ssl_cookie_ctx /** * \brief Initialize cookie context */ -void mbedtls_ssl_cookie_init( mbedtls_ssl_cookie_ctx *ctx ); +void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx); /** * \brief Setup cookie context (generate keys) */ -int mbedtls_ssl_cookie_setup( mbedtls_ssl_cookie_ctx *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Set expiration delay for cookies @@ -95,12 +94,12 @@ int mbedtls_ssl_cookie_setup( mbedtls_ssl_cookie_ctx *ctx, * issued in the meantime. * 0 to disable expiration (NOT recommended) */ -void mbedtls_ssl_cookie_set_timeout( mbedtls_ssl_cookie_ctx *ctx, unsigned long delay ); +void mbedtls_ssl_cookie_set_timeout(mbedtls_ssl_cookie_ctx *ctx, unsigned long delay); /** * \brief Free cookie context */ -void mbedtls_ssl_cookie_free( mbedtls_ssl_cookie_ctx *ctx ); +void mbedtls_ssl_cookie_free(mbedtls_ssl_cookie_ctx *ctx); /** * \brief Generate cookie, see \c mbedtls_ssl_cookie_write_t diff --git a/include/mbedtls/ssl_ticket.h b/include/mbedtls/ssl_ticket.h index b8a8a246f..0cefe43a1 100644 --- a/include/mbedtls/ssl_ticket.h +++ b/include/mbedtls/ssl_ticket.h @@ -56,10 +56,9 @@ extern "C" { /** * \brief Information for session ticket protection */ -typedef struct mbedtls_ssl_ticket_key -{ +typedef struct mbedtls_ssl_ticket_key { unsigned char MBEDTLS_PRIVATE(name)[MBEDTLS_SSL_TICKET_KEY_NAME_BYTES]; - /*!< random key identifier */ + /*!< random key identifier */ #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t MBEDTLS_PRIVATE(generation_time); /*!< key generation timestamp (seconds) */ #endif @@ -77,15 +76,14 @@ mbedtls_ssl_ticket_key; /** * \brief Context for session ticket handling functions */ -typedef struct mbedtls_ssl_ticket_context -{ +typedef struct mbedtls_ssl_ticket_context { mbedtls_ssl_ticket_key MBEDTLS_PRIVATE(keys)[2]; /*!< ticket protection keys */ unsigned char MBEDTLS_PRIVATE(active); /*!< index of the currently active key */ uint32_t MBEDTLS_PRIVATE(ticket_lifetime); /*!< lifetime of tickets in seconds */ /** Callback for getting (pseudo-)random numbers */ - int (*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t); + int(*MBEDTLS_PRIVATE(f_rng))(void *, unsigned char *, size_t); void *MBEDTLS_PRIVATE(p_rng); /*!< context for the RNG function */ #if defined(MBEDTLS_THREADING_C) @@ -101,7 +99,7 @@ mbedtls_ssl_ticket_context; * * \param ctx Context to be initialized */ -void mbedtls_ssl_ticket_init( mbedtls_ssl_ticket_context *ctx ); +void mbedtls_ssl_ticket_init(mbedtls_ssl_ticket_context *ctx); /** * \brief Prepare context to be actually used @@ -125,10 +123,10 @@ void mbedtls_ssl_ticket_init( mbedtls_ssl_ticket_context *ctx ); * \return 0 if successful, * or a specific MBEDTLS_ERR_XXX error code */ -int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_cipher_type_t cipher, - uint32_t lifetime ); +int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_cipher_type_t cipher, + uint32_t lifetime); /** * \brief Rotate session ticket encryption key to new specified key. @@ -162,10 +160,10 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, * \return 0 if successful, * or a specific MBEDTLS_ERR_XXX error code */ -int mbedtls_ssl_ticket_rotate( mbedtls_ssl_ticket_context *ctx, - const unsigned char *name, size_t nlength, - const unsigned char *k, size_t klength, - uint32_t lifetime ); +int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx, + const unsigned char *name, size_t nlength, + const unsigned char *k, size_t klength, + uint32_t lifetime); /** * \brief Implementation of the ticket write callback @@ -186,7 +184,7 @@ mbedtls_ssl_ticket_parse_t mbedtls_ssl_ticket_parse; * * \param ctx Context to be cleaned up */ -void mbedtls_ssl_ticket_free( mbedtls_ssl_ticket_context *ctx ); +void mbedtls_ssl_ticket_free(mbedtls_ssl_ticket_context *ctx); #ifdef __cplusplus } diff --git a/include/mbedtls/threading.h b/include/mbedtls/threading.h index fbc737478..1b9c7ced2 100644 --- a/include/mbedtls/threading.h +++ b/include/mbedtls/threading.h @@ -38,8 +38,7 @@ extern "C" { #if defined(MBEDTLS_THREADING_PTHREAD) #include -typedef struct mbedtls_threading_mutex_t -{ +typedef struct mbedtls_threading_mutex_t { pthread_mutex_t MBEDTLS_PRIVATE(mutex); /* is_valid is 0 after a failed init or a free, and nonzero after a * successful init. This field is not considered part of the public @@ -70,15 +69,15 @@ typedef struct mbedtls_threading_mutex_t * \param mutex_lock the lock function implementation * \param mutex_unlock the unlock function implementation */ -void mbedtls_threading_set_alt( void (*mutex_init)( mbedtls_threading_mutex_t * ), - void (*mutex_free)( mbedtls_threading_mutex_t * ), - int (*mutex_lock)( mbedtls_threading_mutex_t * ), - int (*mutex_unlock)( mbedtls_threading_mutex_t * ) ); +void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *), + void (*mutex_free)(mbedtls_threading_mutex_t *), + int (*mutex_lock)(mbedtls_threading_mutex_t *), + int (*mutex_unlock)(mbedtls_threading_mutex_t *)); /** * \brief Free global mutexes. */ -void mbedtls_threading_free_alt( void ); +void mbedtls_threading_free_alt(void); #endif /* MBEDTLS_THREADING_ALT */ #if defined(MBEDTLS_THREADING_C) @@ -87,10 +86,10 @@ void mbedtls_threading_free_alt( void ); * * All these functions are expected to work or the result will be undefined. */ -extern void (*mbedtls_mutex_init)( mbedtls_threading_mutex_t *mutex ); -extern void (*mbedtls_mutex_free)( mbedtls_threading_mutex_t *mutex ); -extern int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t *mutex ); -extern int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t *mutex ); +extern void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *mutex); +extern void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *mutex); +extern int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *mutex); +extern int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *mutex); /* * Global mutexes diff --git a/include/mbedtls/timing.h b/include/mbedtls/timing.h index 652548d97..2d4a19c01 100644 --- a/include/mbedtls/timing.h +++ b/include/mbedtls/timing.h @@ -38,16 +38,14 @@ extern "C" { /** * \brief timer structure */ -struct mbedtls_timing_hr_time -{ +struct mbedtls_timing_hr_time { unsigned char MBEDTLS_PRIVATE(opaque)[32]; }; /** * \brief Context for mbedtls_timing_set/get_delay() */ -typedef struct mbedtls_timing_delay_context -{ +typedef struct mbedtls_timing_delay_context { struct mbedtls_timing_hr_time MBEDTLS_PRIVATE(timer); uint32_t MBEDTLS_PRIVATE(int_ms); uint32_t MBEDTLS_PRIVATE(fin_ms); @@ -58,7 +56,7 @@ typedef struct mbedtls_timing_delay_context #endif /* MBEDTLS_TIMING_ALT */ /* Internal use */ -unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int reset ); +unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset); /** * \brief Set a pair of delays to watch @@ -74,7 +72,7 @@ unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int * \note To set a single delay, either use \c mbedtls_timing_set_timer * directly or use this function with int_ms == fin_ms. */ -void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms ); +void mbedtls_timing_set_delay(void *data, uint32_t int_ms, uint32_t fin_ms); /** * \brief Get the status of delays @@ -88,7 +86,7 @@ void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms ); * 1 if only the intermediate delay is passed, * 2 if the final delay is passed. */ -int mbedtls_timing_get_delay( void *data ); +int mbedtls_timing_get_delay(void *data); /** * \brief Get the final timing delay @@ -99,7 +97,7 @@ int mbedtls_timing_get_delay( void *data ); * \return Final timing delay in milliseconds. */ uint32_t mbedtls_timing_get_final_delay( - const mbedtls_timing_delay_context *data ); + const mbedtls_timing_delay_context *data); #ifdef __cplusplus } diff --git a/include/mbedtls/version.h b/include/mbedtls/version.h index 773da4a67..bb1a4c3cb 100644 --- a/include/mbedtls/version.h +++ b/include/mbedtls/version.h @@ -41,7 +41,7 @@ extern "C" { * \return The constructed version number in the format * MMNNPP00 (Major, Minor, Patch). */ -unsigned int mbedtls_version_get_number( void ); +unsigned int mbedtls_version_get_number(void); /** * Get the version string ("x.y.z"). @@ -49,7 +49,7 @@ unsigned int mbedtls_version_get_number( void ); * \param string The string that will receive the value. * (Should be at least 9 bytes in size) */ -void mbedtls_version_get_string( char *string ); +void mbedtls_version_get_string(char *string); /** * Get the full version string ("mbed TLS x.y.z"). @@ -60,7 +60,7 @@ void mbedtls_version_get_string( char *string ); * (So the buffer should be at least 18 bytes to receive this * version string). */ -void mbedtls_version_get_string_full( char *string ); +void mbedtls_version_get_string_full(char *string); /** * \brief Check if support for a feature was compiled into this @@ -79,7 +79,7 @@ void mbedtls_version_get_string_full( char *string ); * -2 if support for feature checking as a whole was not * compiled in. */ -int mbedtls_version_check_feature( const char *feature ); +int mbedtls_version_check_feature(const char *feature); #ifdef __cplusplus } diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h index 213efa04a..52fadad17 100644 --- a/include/mbedtls/x509.h +++ b/include/mbedtls/x509.h @@ -244,8 +244,7 @@ typedef mbedtls_asn1_named_data mbedtls_x509_name; typedef mbedtls_asn1_sequence mbedtls_x509_sequence; /** Container for date and time (precision in seconds). */ -typedef struct mbedtls_x509_time -{ +typedef struct mbedtls_x509_time { int year, mon, day; /**< Date. */ int hour, min, sec; /**< Time. */ } @@ -264,7 +263,7 @@ mbedtls_x509_time; * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn ); +int mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn); /** * \brief Return the next relative DN in an X509 name. @@ -277,12 +276,13 @@ int mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn ); * \return Pointer to the first attribute-value pair of the * next RDN in sequence, or NULL if end is reached. */ -static inline mbedtls_x509_name * mbedtls_x509_dn_get_next( - mbedtls_x509_name * dn ) +static inline mbedtls_x509_name *mbedtls_x509_dn_get_next( + mbedtls_x509_name *dn) { - while( dn->MBEDTLS_PRIVATE(next_merged) && dn->next != NULL ) + while (dn->MBEDTLS_PRIVATE(next_merged) && dn->next != NULL) { dn = dn->next; - return( dn->next ); + } + return dn->next; } /** @@ -296,7 +296,7 @@ static inline mbedtls_x509_name * mbedtls_x509_dn_get_next( * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_serial_gets( char *buf, size_t size, const mbedtls_x509_buf *serial ); +int mbedtls_x509_serial_gets(char *buf, size_t size, const mbedtls_x509_buf *serial); /** * \brief Check a given mbedtls_x509_time against the system time @@ -310,7 +310,7 @@ int mbedtls_x509_serial_gets( char *buf, size_t size, const mbedtls_x509_buf *se * \return 1 if the given time is in the past or an error occurred, * 0 otherwise. */ -int mbedtls_x509_time_is_past( const mbedtls_x509_time *to ); +int mbedtls_x509_time_is_past(const mbedtls_x509_time *to); /** * \brief Check a given mbedtls_x509_time against the system time @@ -324,7 +324,7 @@ int mbedtls_x509_time_is_past( const mbedtls_x509_time *to ); * \return 1 if the given time is in the future or an error occurred, * 0 otherwise. */ -int mbedtls_x509_time_is_future( const mbedtls_x509_time *from ); +int mbedtls_x509_time_is_future(const mbedtls_x509_time *from); /** \} addtogroup x509_module */ @@ -332,53 +332,53 @@ int mbedtls_x509_time_is_future( const mbedtls_x509_time *from ); * Internal module functions. You probably do not want to use these unless you * know you do. */ -int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, - mbedtls_x509_name *cur ); -int mbedtls_x509_get_alg_null( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *alg ); -int mbedtls_x509_get_alg( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *alg, mbedtls_x509_buf *params ); +int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end, + mbedtls_x509_name *cur); +int mbedtls_x509_get_alg_null(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *alg); +int mbedtls_x509_get_alg(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *alg, mbedtls_x509_buf *params); #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) -int mbedtls_x509_get_rsassa_pss_params( const mbedtls_x509_buf *params, - mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, - int *salt_len ); +int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params, + mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, + int *salt_len); #endif -int mbedtls_x509_get_sig( unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig ); -int mbedtls_x509_get_sig_alg( const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, - mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg, - void **sig_opts ); -int mbedtls_x509_get_time( unsigned char **p, const unsigned char *end, - mbedtls_x509_time *t ); -int mbedtls_x509_get_serial( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *serial ); -int mbedtls_x509_get_ext( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *ext, int tag ); +int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig); +int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, + mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg, + void **sig_opts); +int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end, + mbedtls_x509_time *t); +int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *serial); +int mbedtls_x509_get_ext(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *ext, int tag); #if !defined(MBEDTLS_X509_REMOVE_INFO) -int mbedtls_x509_sig_alg_gets( char *buf, size_t size, const mbedtls_x509_buf *sig_oid, - mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, - const void *sig_opts ); +int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid, + mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, + const void *sig_opts); #endif -int mbedtls_x509_key_size_helper( char *buf, size_t buf_size, const char *name ); -int mbedtls_x509_string_to_names( mbedtls_asn1_named_data **head, const char *name ); -int mbedtls_x509_set_extension( mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, - int critical, const unsigned char *val, - size_t val_len ); -int mbedtls_x509_write_extensions( unsigned char **p, unsigned char *start, - mbedtls_asn1_named_data *first ); -int mbedtls_x509_write_names( unsigned char **p, unsigned char *start, - mbedtls_asn1_named_data *first ); -int mbedtls_x509_write_sig( unsigned char **p, unsigned char *start, - const char *oid, size_t oid_len, - unsigned char *sig, size_t size ); +int mbedtls_x509_key_size_helper(char *buf, size_t buf_size, const char *name); +int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *name); +int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, + int critical, const unsigned char *val, + size_t val_len); +int mbedtls_x509_write_extensions(unsigned char **p, unsigned char *start, + mbedtls_asn1_named_data *first); +int mbedtls_x509_write_names(unsigned char **p, unsigned char *start, + mbedtls_asn1_named_data *first); +int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start, + const char *oid, size_t oid_len, + unsigned char *sig, size_t size); #define MBEDTLS_X509_SAFE_SNPRINTF \ do { \ - if( ret < 0 || (size_t) ret >= n ) \ - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); \ - \ + if (ret < 0 || (size_t) ret >= n) \ + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; \ + \ n -= (size_t) ret; \ p += (size_t) ret; \ - } while( 0 ) + } while (0) #ifdef __cplusplus } diff --git a/include/mbedtls/x509_crl.h b/include/mbedtls/x509_crl.h index 0339db861..49bbf6164 100644 --- a/include/mbedtls/x509_crl.h +++ b/include/mbedtls/x509_crl.h @@ -48,8 +48,7 @@ extern "C" { * them except via Mbed TLS library functions: the effect of modifying * those fields or the data that those fields points to is unspecified. */ -typedef struct mbedtls_x509_crl_entry -{ +typedef struct mbedtls_x509_crl_entry { /** Direct access to the whole entry inside the containing buffer. */ mbedtls_x509_buf raw; /** The serial number of the revoked certificate. */ @@ -74,8 +73,7 @@ mbedtls_x509_crl_entry; * Certificate revocation list structure. * Every CRL may have multiple entries. */ -typedef struct mbedtls_x509_crl -{ +typedef struct mbedtls_x509_crl { mbedtls_x509_buf raw; /**< The raw certificate data (DER). */ mbedtls_x509_buf tbs; /**< The raw certificate body (DER). The part that is To Be Signed. */ @@ -116,8 +114,8 @@ mbedtls_x509_crl; * * \return 0 if successful, or a specific X509 or PEM error code */ -int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, - const unsigned char *buf, size_t buflen ); +int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain, + const unsigned char *buf, size_t buflen); /** * \brief Parse one or more CRLs and append them to the chained list * @@ -130,7 +128,7 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * * \return 0 if successful, or a specific X509 or PEM error code */ -int mbedtls_x509_crl_parse( mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen ); +int mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen); #if defined(MBEDTLS_FS_IO) /** @@ -143,7 +141,7 @@ int mbedtls_x509_crl_parse( mbedtls_x509_crl *chain, const unsigned char *buf, s * * \return 0 if successful, or a specific X509 or PEM error code */ -int mbedtls_x509_crl_parse_file( mbedtls_x509_crl *chain, const char *path ); +int mbedtls_x509_crl_parse_file(mbedtls_x509_crl *chain, const char *path); #endif /* MBEDTLS_FS_IO */ #if !defined(MBEDTLS_X509_REMOVE_INFO) @@ -158,8 +156,8 @@ int mbedtls_x509_crl_parse_file( mbedtls_x509_crl *chain, const char *path ); * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_crl_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_crl *crl ); +int mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_crl *crl); #endif /* !MBEDTLS_X509_REMOVE_INFO */ /** @@ -167,14 +165,14 @@ int mbedtls_x509_crl_info( char *buf, size_t size, const char *prefix, * * \param crl CRL chain to initialize */ -void mbedtls_x509_crl_init( mbedtls_x509_crl *crl ); +void mbedtls_x509_crl_init(mbedtls_x509_crl *crl); /** * \brief Unallocate all CRL data * * \param crl CRL chain to free */ -void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ); +void mbedtls_x509_crl_free(mbedtls_x509_crl *crl); /** \} name Structures and functions for parsing CRLs */ /** \} addtogroup x509_module */ diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index d2b7648c4..661f8aa7b 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -51,10 +51,9 @@ extern "C" { * them except via Mbed TLS library functions: the effect of modifying * those fields or the data that those fields points to is unspecified. */ -typedef struct mbedtls_x509_crt -{ +typedef struct mbedtls_x509_crt { int MBEDTLS_PRIVATE(own_buffer); /**< Indicates if \c raw is owned - * by the structure or not. */ + * by the structure or not. */ mbedtls_x509_buf raw; /**< The raw certificate data (DER). */ mbedtls_x509_buf tbs; /**< The raw certificate body (DER). The part that is To Be Signed. */ @@ -112,24 +111,21 @@ mbedtls_x509_crt; * Future versions of the library may add new fields to this structure or * to its embedded union and structure. */ -typedef struct mbedtls_x509_san_other_name -{ +typedef struct mbedtls_x509_san_other_name { /** * The type_id is an OID as defined in RFC 5280. * To check the value of the type id, you should use * \p MBEDTLS_OID_CMP with a known OID mbedtls_x509_buf. */ mbedtls_x509_buf type_id; /**< The type id. */ - union - { + union { /** * From RFC 4108 section 5: * HardwareModuleName ::= SEQUENCE { * hwType OBJECT IDENTIFIER, * hwSerialNum OCTET STRING } */ - struct - { + struct { mbedtls_x509_buf oid; /**< The object identifier. */ mbedtls_x509_buf val; /**< The named value. */ } @@ -146,8 +142,7 @@ mbedtls_x509_san_other_name; * Future versions of the library may add new fields to this structure or * to its embedded union and structure. */ -typedef struct mbedtls_x509_subject_alternative_name -{ +typedef struct mbedtls_x509_subject_alternative_name { int type; /**< The SAN type, value of MBEDTLS_X509_SAN_XXX. */ union { mbedtls_x509_san_other_name other_name; /**< The otherName supported type. */ @@ -161,7 +156,7 @@ mbedtls_x509_subject_alternative_name; * Build flag from an algorithm/curve identifier (pk, md, ecp) * Since 0 is always XXX_NONE, ignore it. */ -#define MBEDTLS_X509_ID_FLAG( id ) ( 1 << ( (id) - 1 ) ) +#define MBEDTLS_X509_ID_FLAG(id) (1 << ((id) - 1)) /** * Security profile for certificate verification. @@ -188,8 +183,7 @@ mbedtls_x509_subject_alternative_name; * my_profile.allowed_pks = MBEDTLS_X509_ID_FLAG( MBEDTLS_PK_RSA ); * my_profile.rsa_min_bitlen = 3072; */ -typedef struct mbedtls_x509_crt_profile -{ +typedef struct mbedtls_x509_crt_profile { uint32_t allowed_mds; /**< MDs for signatures */ uint32_t allowed_pks; /**< PK algs for public keys; * this applies to all certificates @@ -206,7 +200,7 @@ mbedtls_x509_crt_profile; #define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN 32 #define MBEDTLS_X509_RFC5280_UTC_TIME_LEN 15 -#if !defined( MBEDTLS_X509_MAX_FILE_PATH_LEN ) +#if !defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) #define MBEDTLS_X509_MAX_FILE_PATH_LEN 512 #endif @@ -217,72 +211,71 @@ mbedtls_x509_crt_profile; * where X509_CRT_ERROR_INFO is defined by the user. * See x509_crt.c for an example of how to use this. */ #define MBEDTLS_X509_CRT_ERROR_INFO_LIST \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_EXPIRED, \ - "MBEDTLS_X509_BADCERT_EXPIRED", \ - "The certificate validity has expired" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_REVOKED, \ - "MBEDTLS_X509_BADCERT_REVOKED", \ - "The certificate has been revoked (is on a CRL)" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_CN_MISMATCH, \ - "MBEDTLS_X509_BADCERT_CN_MISMATCH", \ - "The certificate Common Name (CN) does not match with the expected CN" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_NOT_TRUSTED, \ - "MBEDTLS_X509_BADCERT_NOT_TRUSTED", \ - "The certificate is not correctly signed by the trusted CA" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_NOT_TRUSTED, \ - "MBEDTLS_X509_BADCRL_NOT_TRUSTED", \ - "The CRL is not correctly signed by the trusted CA" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_EXPIRED, \ - "MBEDTLS_X509_BADCRL_EXPIRED", \ - "The CRL is expired" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_MISSING, \ - "MBEDTLS_X509_BADCERT_MISSING", \ - "Certificate was missing" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_SKIP_VERIFY, \ - "MBEDTLS_X509_BADCERT_SKIP_VERIFY", \ - "Certificate verification was skipped" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_OTHER, \ - "MBEDTLS_X509_BADCERT_OTHER", \ - "Other reason (can be used by verify callback)" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_FUTURE, \ - "MBEDTLS_X509_BADCERT_FUTURE", \ - "The certificate validity starts in the future" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_FUTURE, \ - "MBEDTLS_X509_BADCRL_FUTURE", \ - "The CRL is from the future" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_KEY_USAGE, \ - "MBEDTLS_X509_BADCERT_KEY_USAGE", \ - "Usage does not match the keyUsage extension" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_EXT_KEY_USAGE, \ - "MBEDTLS_X509_BADCERT_EXT_KEY_USAGE", \ - "Usage does not match the extendedKeyUsage extension" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_NS_CERT_TYPE, \ - "MBEDTLS_X509_BADCERT_NS_CERT_TYPE", \ - "Usage does not match the nsCertType extension" ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_BAD_MD, \ - "MBEDTLS_X509_BADCERT_BAD_MD", \ - "The certificate is signed with an unacceptable hash." ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_BAD_PK, \ - "MBEDTLS_X509_BADCERT_BAD_PK", \ - "The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA)." ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCERT_BAD_KEY, \ - "MBEDTLS_X509_BADCERT_BAD_KEY", \ - "The certificate is signed with an unacceptable key (eg bad curve, RSA too short)." ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_BAD_MD, \ - "MBEDTLS_X509_BADCRL_BAD_MD", \ - "The CRL is signed with an unacceptable hash." ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_BAD_PK, \ - "MBEDTLS_X509_BADCRL_BAD_PK", \ - "The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA)." ) \ - X509_CRT_ERROR_INFO( MBEDTLS_X509_BADCRL_BAD_KEY, \ - "MBEDTLS_X509_BADCRL_BAD_KEY", \ - "The CRL is signed with an unacceptable key (eg bad curve, RSA too short)." ) + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_EXPIRED, \ + "MBEDTLS_X509_BADCERT_EXPIRED", \ + "The certificate validity has expired") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_REVOKED, \ + "MBEDTLS_X509_BADCERT_REVOKED", \ + "The certificate has been revoked (is on a CRL)") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_CN_MISMATCH, \ + "MBEDTLS_X509_BADCERT_CN_MISMATCH", \ + "The certificate Common Name (CN) does not match with the expected CN") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_NOT_TRUSTED, \ + "MBEDTLS_X509_BADCERT_NOT_TRUSTED", \ + "The certificate is not correctly signed by the trusted CA") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_NOT_TRUSTED, \ + "MBEDTLS_X509_BADCRL_NOT_TRUSTED", \ + "The CRL is not correctly signed by the trusted CA") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_EXPIRED, \ + "MBEDTLS_X509_BADCRL_EXPIRED", \ + "The CRL is expired") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_MISSING, \ + "MBEDTLS_X509_BADCERT_MISSING", \ + "Certificate was missing") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_SKIP_VERIFY, \ + "MBEDTLS_X509_BADCERT_SKIP_VERIFY", \ + "Certificate verification was skipped") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_OTHER, \ + "MBEDTLS_X509_BADCERT_OTHER", \ + "Other reason (can be used by verify callback)") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_FUTURE, \ + "MBEDTLS_X509_BADCERT_FUTURE", \ + "The certificate validity starts in the future") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_FUTURE, \ + "MBEDTLS_X509_BADCRL_FUTURE", \ + "The CRL is from the future") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_KEY_USAGE, \ + "MBEDTLS_X509_BADCERT_KEY_USAGE", \ + "Usage does not match the keyUsage extension") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_EXT_KEY_USAGE, \ + "MBEDTLS_X509_BADCERT_EXT_KEY_USAGE", \ + "Usage does not match the extendedKeyUsage extension") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_NS_CERT_TYPE, \ + "MBEDTLS_X509_BADCERT_NS_CERT_TYPE", \ + "Usage does not match the nsCertType extension") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_BAD_MD, \ + "MBEDTLS_X509_BADCERT_BAD_MD", \ + "The certificate is signed with an unacceptable hash.") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_BAD_PK, \ + "MBEDTLS_X509_BADCERT_BAD_PK", \ + "The certificate is signed with an unacceptable PK alg (eg RSA vs ECDSA).") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCERT_BAD_KEY, \ + "MBEDTLS_X509_BADCERT_BAD_KEY", \ + "The certificate is signed with an unacceptable key (eg bad curve, RSA too short).") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_BAD_MD, \ + "MBEDTLS_X509_BADCRL_BAD_MD", \ + "The CRL is signed with an unacceptable hash.") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_BAD_PK, \ + "MBEDTLS_X509_BADCRL_BAD_PK", \ + "The CRL is signed with an unacceptable PK alg (eg RSA vs ECDSA).") \ + X509_CRT_ERROR_INFO(MBEDTLS_X509_BADCRL_BAD_KEY, \ + "MBEDTLS_X509_BADCRL_BAD_KEY", \ + "The CRL is signed with an unacceptable key (eg bad curve, RSA too short).") /** * Container for writing a certificate (CRT) */ -typedef struct mbedtls_x509write_cert -{ +typedef struct mbedtls_x509write_cert { int MBEDTLS_PRIVATE(version); mbedtls_mpi MBEDTLS_PRIVATE(serial); mbedtls_pk_context *MBEDTLS_PRIVATE(subject_key); @@ -307,13 +300,12 @@ typedef struct { /** * Max size of verification chain: end-entity + intermediates + trusted root */ -#define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE ( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 ) +#define MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE (MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2) /** * Verification chain as built by \c mbedtls_crt_verify_chain() */ -typedef struct -{ +typedef struct { mbedtls_x509_crt_verify_chain_item MBEDTLS_PRIVATE(items)[MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE]; unsigned MBEDTLS_PRIVATE(len); @@ -331,8 +323,7 @@ typedef struct /** * \brief Context for resuming X.509 verify operations */ -typedef struct -{ +typedef struct { /* for check_signature() */ mbedtls_pk_restart_ctx MBEDTLS_PRIVATE(pk); @@ -415,9 +406,9 @@ extern const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_none; * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_x509_crt_parse_der( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen ); +int mbedtls_x509_crt_parse_der(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen); /** * \brief The type of certificate extension callbacks. @@ -449,12 +440,12 @@ int mbedtls_x509_crt_parse_der( mbedtls_x509_crt *chain, * \return \c 0 on success. * \return A negative error code on failure. */ -typedef int (*mbedtls_x509_crt_ext_cb_t)( void *p_ctx, - mbedtls_x509_crt const *crt, - mbedtls_x509_buf const *oid, - int critical, - const unsigned char *p, - const unsigned char *end ); +typedef int (*mbedtls_x509_crt_ext_cb_t)(void *p_ctx, + mbedtls_x509_crt const *crt, + mbedtls_x509_buf const *oid, + int critical, + const unsigned char *p, + const unsigned char *end); /** * \brief Parse a single DER formatted certificate and add it @@ -496,12 +487,12 @@ typedef int (*mbedtls_x509_crt_ext_cb_t)( void *p_ctx, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen, - int make_copy, - mbedtls_x509_crt_ext_cb_t cb, - void *p_ctx ); +int mbedtls_x509_crt_parse_der_with_ext_cb(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx); /** * \brief Parse a single DER formatted certificate and add it @@ -530,9 +521,9 @@ int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, * \return \c 0 if successful. * \return A negative error code on failure. */ -int mbedtls_x509_crt_parse_der_nocopy( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen ); +int mbedtls_x509_crt_parse_der_nocopy(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen); /** * \brief Parse one DER-encoded or one or more concatenated PEM-encoded @@ -564,7 +555,7 @@ int mbedtls_x509_crt_parse_der_nocopy( mbedtls_x509_crt *chain, * \return A negative X509 or PEM error code otherwise. * */ -int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen ); +int mbedtls_x509_crt_parse(mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen); #if defined(MBEDTLS_FS_IO) /** @@ -580,7 +571,7 @@ int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, const unsigned char *buf, s * \return 0 if all certificates parsed successfully, a positive number * if partly successful or a specific X509 or PEM error code */ -int mbedtls_x509_crt_parse_file( mbedtls_x509_crt *chain, const char *path ); +int mbedtls_x509_crt_parse_file(mbedtls_x509_crt *chain, const char *path); /** * \brief Load one or more certificate files from a path and add them @@ -595,7 +586,7 @@ int mbedtls_x509_crt_parse_file( mbedtls_x509_crt *chain, const char *path ); * \return 0 if all certificates parsed successfully, a positive number * if partly successful or a specific X509 or PEM error code */ -int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path ); +int mbedtls_x509_crt_parse_path(mbedtls_x509_crt *chain, const char *path); #endif /* MBEDTLS_FS_IO */ /** @@ -625,8 +616,8 @@ int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path ); * SAN type. * \return Another negative value for any other failure. */ -int mbedtls_x509_parse_subject_alt_name( const mbedtls_x509_buf *san_buf, - mbedtls_x509_subject_alternative_name *san ); +int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, + mbedtls_x509_subject_alternative_name *san); #if !defined(MBEDTLS_X509_REMOVE_INFO) /** @@ -641,8 +632,8 @@ int mbedtls_x509_parse_subject_alt_name( const mbedtls_x509_buf *san_buf, * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_crt_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_crt *crt ); +int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_crt *crt); /** * \brief Returns an informational string about the @@ -656,8 +647,8 @@ int mbedtls_x509_crt_info( char *buf, size_t size, const char *prefix, * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_crt_verify_info( char *buf, size_t size, const char *prefix, - uint32_t flags ); +int mbedtls_x509_crt_verify_info(char *buf, size_t size, const char *prefix, + uint32_t flags); #endif /* !MBEDTLS_X509_REMOVE_INFO */ /** @@ -726,12 +717,12 @@ int mbedtls_x509_crt_verify_info( char *buf, size_t size, const char *prefix, * \return Another negative error code in case of a fatal error * encountered during the verification process. */ -int mbedtls_x509_crt_verify( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ); +int mbedtls_x509_crt_verify(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy); /** * \brief Verify a chain of certificates with respect to @@ -767,13 +758,13 @@ int mbedtls_x509_crt_verify( mbedtls_x509_crt *crt, * \return Another negative error code in case of a fatal error * encountered during the verification process. */ -int mbedtls_x509_crt_verify_with_profile( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ); +int mbedtls_x509_crt_verify_with_profile(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy); /** * \brief Restartable version of \c mbedtls_crt_verify_with_profile() @@ -801,14 +792,14 @@ int mbedtls_x509_crt_verify_with_profile( mbedtls_x509_crt *crt, * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of * operations was reached: see \c mbedtls_ecp_set_max_ops(). */ -int mbedtls_x509_crt_verify_restartable( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy, - mbedtls_x509_crt_restart_ctx *rs_ctx ); +int mbedtls_x509_crt_verify_restartable(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy, + mbedtls_x509_crt_restart_ctx *rs_ctx); /** * \brief The type of trusted certificate callbacks. @@ -840,9 +831,9 @@ int mbedtls_x509_crt_verify_restartable( mbedtls_x509_crt *crt, * to the caller. * \return A negative error code on failure. */ -typedef int (*mbedtls_x509_crt_ca_cb_t)( void *p_ctx, - mbedtls_x509_crt const *child, - mbedtls_x509_crt **candidate_cas ); +typedef int (*mbedtls_x509_crt_ca_cb_t)(void *p_ctx, + mbedtls_x509_crt const *child, + mbedtls_x509_crt **candidate_cas); #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) /** @@ -867,13 +858,13 @@ typedef int (*mbedtls_x509_crt_ca_cb_t)( void *p_ctx, * * \return See \c mbedtls_crt_verify_with_profile(). */ -int mbedtls_x509_crt_verify_with_ca_cb( mbedtls_x509_crt *crt, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ); +int mbedtls_x509_crt_verify_with_ca_cb(mbedtls_x509_crt *crt, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy); #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ @@ -898,8 +889,8 @@ int mbedtls_x509_crt_verify_with_ca_cb( mbedtls_x509_crt *crt, * (intermediate) CAs the keyUsage extension is automatically * checked by \c mbedtls_x509_crt_verify(). */ -int mbedtls_x509_crt_check_key_usage( const mbedtls_x509_crt *crt, - unsigned int usage ); +int mbedtls_x509_crt_check_key_usage(const mbedtls_x509_crt *crt, + unsigned int usage); /** * \brief Check usage of certificate against extendedKeyUsage. @@ -914,9 +905,9 @@ int mbedtls_x509_crt_check_key_usage( const mbedtls_x509_crt *crt, * * \note Usually only makes sense on leaf certificates. */ -int mbedtls_x509_crt_check_extended_key_usage( const mbedtls_x509_crt *crt, - const char *usage_oid, - size_t usage_len ); +int mbedtls_x509_crt_check_extended_key_usage(const mbedtls_x509_crt *crt, + const char *usage_oid, + size_t usage_len); #if defined(MBEDTLS_X509_CRL_PARSE_C) /** @@ -928,7 +919,7 @@ int mbedtls_x509_crt_check_extended_key_usage( const mbedtls_x509_crt *crt, * \return 1 if the certificate is revoked, 0 otherwise * */ -int mbedtls_x509_crt_is_revoked( const mbedtls_x509_crt *crt, const mbedtls_x509_crl *crl ); +int mbedtls_x509_crt_is_revoked(const mbedtls_x509_crt *crt, const mbedtls_x509_crl *crl); #endif /* MBEDTLS_X509_CRL_PARSE_C */ /** @@ -936,25 +927,25 @@ int mbedtls_x509_crt_is_revoked( const mbedtls_x509_crt *crt, const mbedtls_x509 * * \param crt Certificate chain to initialize */ -void mbedtls_x509_crt_init( mbedtls_x509_crt *crt ); +void mbedtls_x509_crt_init(mbedtls_x509_crt *crt); /** * \brief Unallocate all certificate data * * \param crt Certificate chain to free */ -void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ); +void mbedtls_x509_crt_free(mbedtls_x509_crt *crt); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /** * \brief Initialize a restart context */ -void mbedtls_x509_crt_restart_init( mbedtls_x509_crt_restart_ctx *ctx ); +void mbedtls_x509_crt_restart_init(mbedtls_x509_crt_restart_ctx *ctx); /** * \brief Free the components of a restart context */ -void mbedtls_x509_crt_restart_free( mbedtls_x509_crt_restart_ctx *ctx ); +void mbedtls_x509_crt_restart_free(mbedtls_x509_crt_restart_ctx *ctx); #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ #endif /* MBEDTLS_X509_CRT_PARSE_C */ @@ -969,8 +960,8 @@ void mbedtls_x509_crt_restart_free( mbedtls_x509_crt_restart_ctx *ctx ); * \return 0 if the given extension type is not present, * non-zero otherwise */ -static inline int mbedtls_x509_crt_has_ext_type( const mbedtls_x509_crt *ctx, - int ext_type ) +static inline int mbedtls_x509_crt_has_ext_type(const mbedtls_x509_crt *ctx, + int ext_type) { return ctx->MBEDTLS_PRIVATE(ext_types) & ext_type; } @@ -983,7 +974,7 @@ static inline int mbedtls_x509_crt_has_ext_type( const mbedtls_x509_crt *ctx, * * \param ctx CRT context to initialize */ -void mbedtls_x509write_crt_init( mbedtls_x509write_cert *ctx ); +void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx); /** * \brief Set the version for a Certificate @@ -993,7 +984,7 @@ void mbedtls_x509write_crt_init( mbedtls_x509write_cert *ctx ); * \param version version to set (MBEDTLS_X509_CRT_VERSION_1, MBEDTLS_X509_CRT_VERSION_2 or * MBEDTLS_X509_CRT_VERSION_3) */ -void mbedtls_x509write_crt_set_version( mbedtls_x509write_cert *ctx, int version ); +void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version); /** * \brief Set the serial number for a Certificate. @@ -1003,7 +994,7 @@ void mbedtls_x509write_crt_set_version( mbedtls_x509write_cert *ctx, int version * * \return 0 if successful */ -int mbedtls_x509write_crt_set_serial( mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial ); +int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial); /** * \brief Set the validity period for a Certificate @@ -1019,8 +1010,8 @@ int mbedtls_x509write_crt_set_serial( mbedtls_x509write_cert *ctx, const mbedtls * \return 0 if timestamp was parsed successfully, or * a specific error code */ -int mbedtls_x509write_crt_set_validity( mbedtls_x509write_cert *ctx, const char *not_before, - const char *not_after ); +int mbedtls_x509write_crt_set_validity(mbedtls_x509write_cert *ctx, const char *not_before, + const char *not_after); /** * \brief Set the issuer name for a Certificate @@ -1034,8 +1025,8 @@ int mbedtls_x509write_crt_set_validity( mbedtls_x509write_cert *ctx, const char * \return 0 if issuer name was parsed successfully, or * a specific error code */ -int mbedtls_x509write_crt_set_issuer_name( mbedtls_x509write_cert *ctx, - const char *issuer_name ); +int mbedtls_x509write_crt_set_issuer_name(mbedtls_x509write_cert *ctx, + const char *issuer_name); /** * \brief Set the subject name for a Certificate @@ -1049,8 +1040,8 @@ int mbedtls_x509write_crt_set_issuer_name( mbedtls_x509write_cert *ctx, * \return 0 if subject name was parsed successfully, or * a specific error code */ -int mbedtls_x509write_crt_set_subject_name( mbedtls_x509write_cert *ctx, - const char *subject_name ); +int mbedtls_x509write_crt_set_subject_name(mbedtls_x509write_cert *ctx, + const char *subject_name); /** * \brief Set the subject public key for the certificate @@ -1058,7 +1049,7 @@ int mbedtls_x509write_crt_set_subject_name( mbedtls_x509write_cert *ctx, * \param ctx CRT context to use * \param key public key to include */ -void mbedtls_x509write_crt_set_subject_key( mbedtls_x509write_cert *ctx, mbedtls_pk_context *key ); +void mbedtls_x509write_crt_set_subject_key(mbedtls_x509write_cert *ctx, mbedtls_pk_context *key); /** * \brief Set the issuer key used for signing the certificate @@ -1066,7 +1057,7 @@ void mbedtls_x509write_crt_set_subject_key( mbedtls_x509write_cert *ctx, mbedtls * \param ctx CRT context to use * \param key private key to sign with */ -void mbedtls_x509write_crt_set_issuer_key( mbedtls_x509write_cert *ctx, mbedtls_pk_context *key ); +void mbedtls_x509write_crt_set_issuer_key(mbedtls_x509write_cert *ctx, mbedtls_pk_context *key); /** * \brief Set the MD algorithm to use for the signature @@ -1075,7 +1066,7 @@ void mbedtls_x509write_crt_set_issuer_key( mbedtls_x509write_cert *ctx, mbedtls_ * \param ctx CRT context to use * \param md_alg MD algorithm to use */ -void mbedtls_x509write_crt_set_md_alg( mbedtls_x509write_cert *ctx, mbedtls_md_type_t md_alg ); +void mbedtls_x509write_crt_set_md_alg(mbedtls_x509write_cert *ctx, mbedtls_md_type_t md_alg); /** * \brief Generic function to add to or replace an extension in the @@ -1090,10 +1081,10 @@ void mbedtls_x509write_crt_set_md_alg( mbedtls_x509write_cert *ctx, mbedtls_md_t * * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_extension( mbedtls_x509write_cert *ctx, - const char *oid, size_t oid_len, - int critical, - const unsigned char *val, size_t val_len ); +int mbedtls_x509write_crt_set_extension(mbedtls_x509write_cert *ctx, + const char *oid, size_t oid_len, + int critical, + const unsigned char *val, size_t val_len); /** * \brief Set the basicConstraints extension for a CRT @@ -1106,8 +1097,8 @@ int mbedtls_x509write_crt_set_extension( mbedtls_x509write_cert *ctx, * * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_basic_constraints( mbedtls_x509write_cert *ctx, - int is_ca, int max_pathlen ); +int mbedtls_x509write_crt_set_basic_constraints(mbedtls_x509write_cert *ctx, + int is_ca, int max_pathlen); #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) /** @@ -1119,7 +1110,7 @@ int mbedtls_x509write_crt_set_basic_constraints( mbedtls_x509write_cert *ctx, * * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_subject_key_identifier( mbedtls_x509write_cert *ctx ); +int mbedtls_x509write_crt_set_subject_key_identifier(mbedtls_x509write_cert *ctx); /** * \brief Set the authorityKeyIdentifier extension for a CRT @@ -1130,7 +1121,7 @@ int mbedtls_x509write_crt_set_subject_key_identifier( mbedtls_x509write_cert *ct * * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert *ctx ); +int mbedtls_x509write_crt_set_authority_key_identifier(mbedtls_x509write_cert *ctx); #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ /** @@ -1142,8 +1133,8 @@ int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert * * * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, - unsigned int key_usage ); +int mbedtls_x509write_crt_set_key_usage(mbedtls_x509write_cert *ctx, + unsigned int key_usage); /** * \brief Set the Extended Key Usage Extension @@ -1155,8 +1146,8 @@ int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, * * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, - const mbedtls_asn1_sequence *exts ); +int mbedtls_x509write_crt_set_ext_key_usage(mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts); /** * \brief Set the Netscape Cert Type flags @@ -1167,15 +1158,15 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, * * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, - unsigned char ns_cert_type ); +int mbedtls_x509write_crt_set_ns_cert_type(mbedtls_x509write_cert *ctx, + unsigned char ns_cert_type); /** * \brief Free the contents of a CRT write context * * \param ctx CRT context to free */ -void mbedtls_x509write_crt_free( mbedtls_x509write_cert *ctx ); +void mbedtls_x509write_crt_free(mbedtls_x509write_cert *ctx); /** * \brief Write a built up certificate to a X509 DER structure @@ -1194,9 +1185,9 @@ void mbedtls_x509write_crt_free( mbedtls_x509write_cert *ctx ); * * \note \p f_rng is used for the signature operation. */ -int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #if defined(MBEDTLS_PEM_WRITE_C) /** @@ -1212,9 +1203,9 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, unsigned char *buf, * * \note \p f_rng is used for the signature operation. */ -int mbedtls_x509write_crt_pem( mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_x509write_crt_pem(mbedtls_x509write_cert *ctx, unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #endif /* MBEDTLS_PEM_WRITE_C */ #endif /* MBEDTLS_X509_CRT_WRITE_C */ diff --git a/include/mbedtls/x509_csr.h b/include/mbedtls/x509_csr.h index 44b7aabba..50998c42b 100644 --- a/include/mbedtls/x509_csr.h +++ b/include/mbedtls/x509_csr.h @@ -47,8 +47,7 @@ extern "C" { * them except via Mbed TLS library functions: the effect of modifying * those fields or the data that those fields point to is unspecified. */ -typedef struct mbedtls_x509_csr -{ +typedef struct mbedtls_x509_csr { mbedtls_x509_buf raw; /**< The raw CSR data (DER). */ mbedtls_x509_buf cri; /**< The raw CertificateRequestInfo body (DER). */ @@ -70,8 +69,7 @@ mbedtls_x509_csr; /** * Container for writing a CSR */ -typedef struct mbedtls_x509write_csr -{ +typedef struct mbedtls_x509write_csr { mbedtls_pk_context *MBEDTLS_PRIVATE(key); mbedtls_asn1_named_data *MBEDTLS_PRIVATE(subject); mbedtls_md_type_t MBEDTLS_PRIVATE(md_alg); @@ -91,8 +89,8 @@ mbedtls_x509write_csr; * * \return 0 if successful, or a specific X509 error code */ -int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, - const unsigned char *buf, size_t buflen ); +int mbedtls_x509_csr_parse_der(mbedtls_x509_csr *csr, + const unsigned char *buf, size_t buflen); /** * \brief Load a Certificate Signing Request (CSR), DER or PEM format @@ -106,7 +104,7 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, * * \return 0 if successful, or a specific X509 or PEM error code */ -int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen ); +int mbedtls_x509_csr_parse(mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen); #if defined(MBEDTLS_FS_IO) /** @@ -119,7 +117,7 @@ int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, siz * * \return 0 if successful, or a specific X509 or PEM error code */ -int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path ); +int mbedtls_x509_csr_parse_file(mbedtls_x509_csr *csr, const char *path); #endif /* MBEDTLS_FS_IO */ #if !defined(MBEDTLS_X509_REMOVE_INFO) @@ -135,8 +133,8 @@ int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path ); * \return The length of the string written (not including the * terminated nul byte), or a negative error code. */ -int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_csr *csr ); +int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_csr *csr); #endif /* !MBEDTLS_X509_REMOVE_INFO */ /** @@ -144,14 +142,14 @@ int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix, * * \param csr CSR to initialize */ -void mbedtls_x509_csr_init( mbedtls_x509_csr *csr ); +void mbedtls_x509_csr_init(mbedtls_x509_csr *csr); /** * \brief Unallocate all CSR data * * \param csr CSR to free */ -void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ); +void mbedtls_x509_csr_free(mbedtls_x509_csr *csr); #endif /* MBEDTLS_X509_CSR_PARSE_C */ /** \} name Structures and functions for X.509 Certificate Signing Requests (CSR) */ @@ -162,7 +160,7 @@ void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ); * * \param ctx CSR context to initialize */ -void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ); +void mbedtls_x509write_csr_init(mbedtls_x509write_csr *ctx); /** * \brief Set the subject name for a CSR @@ -176,8 +174,8 @@ void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ); * \return 0 if subject name was parsed successfully, or * a specific error code */ -int mbedtls_x509write_csr_set_subject_name( mbedtls_x509write_csr *ctx, - const char *subject_name ); +int mbedtls_x509write_csr_set_subject_name(mbedtls_x509write_csr *ctx, + const char *subject_name); /** * \brief Set the key for a CSR (public key will be included, @@ -186,7 +184,7 @@ int mbedtls_x509write_csr_set_subject_name( mbedtls_x509write_csr *ctx, * \param ctx CSR context to use * \param key Asymmetric key to include */ -void mbedtls_x509write_csr_set_key( mbedtls_x509write_csr *ctx, mbedtls_pk_context *key ); +void mbedtls_x509write_csr_set_key(mbedtls_x509write_csr *ctx, mbedtls_pk_context *key); /** * \brief Set the MD algorithm to use for the signature @@ -195,7 +193,7 @@ void mbedtls_x509write_csr_set_key( mbedtls_x509write_csr *ctx, mbedtls_pk_conte * \param ctx CSR context to use * \param md_alg MD algorithm to use */ -void mbedtls_x509write_csr_set_md_alg( mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg ); +void mbedtls_x509write_csr_set_md_alg(mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg); /** * \brief Set the Key Usage Extension flags @@ -214,7 +212,7 @@ void mbedtls_x509write_csr_set_md_alg( mbedtls_x509write_csr *ctx, mbedtls_md_ty * #MBEDTLS_X509_KU_DECIPHER_ONLY) cannot be set using this * function. */ -int mbedtls_x509write_csr_set_key_usage( mbedtls_x509write_csr *ctx, unsigned char key_usage ); +int mbedtls_x509write_csr_set_key_usage(mbedtls_x509write_csr *ctx, unsigned char key_usage); /** * \brief Set the Netscape Cert Type flags @@ -225,8 +223,8 @@ int mbedtls_x509write_csr_set_key_usage( mbedtls_x509write_csr *ctx, unsigned ch * * \return 0 if successful, or MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx, - unsigned char ns_cert_type ); +int mbedtls_x509write_csr_set_ns_cert_type(mbedtls_x509write_csr *ctx, + unsigned char ns_cert_type); /** * \brief Generic function to add to or replace an extension in the @@ -241,17 +239,17 @@ int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx, * * \return 0 if successful, or a MBEDTLS_ERR_X509_ALLOC_FAILED */ -int mbedtls_x509write_csr_set_extension( mbedtls_x509write_csr *ctx, - const char *oid, size_t oid_len, - int critical, - const unsigned char *val, size_t val_len ); +int mbedtls_x509write_csr_set_extension(mbedtls_x509write_csr *ctx, + const char *oid, size_t oid_len, + int critical, + const unsigned char *val, size_t val_len); /** * \brief Free the contents of a CSR context * * \param ctx CSR context to free */ -void mbedtls_x509write_csr_free( mbedtls_x509write_csr *ctx ); +void mbedtls_x509write_csr_free(mbedtls_x509write_csr *ctx); /** * \brief Write a CSR (Certificate Signing Request) to a @@ -271,9 +269,9 @@ void mbedtls_x509write_csr_free( mbedtls_x509write_csr *ctx ); * * \note \p f_rng is used for the signature operation. */ -int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #if defined(MBEDTLS_PEM_WRITE_C) /** @@ -290,9 +288,9 @@ int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, s * * \note \p f_rng is used for the signature operation. */ -int mbedtls_x509write_csr_pem( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #endif /* MBEDTLS_PEM_WRITE_C */ #endif /* MBEDTLS_X509_CSR_WRITE_C */ diff --git a/include/psa/crypto.h b/include/psa/crypto.h index 03181ed33..2b9b2a27e 100644 --- a/include/psa/crypto.h +++ b/include/psa/crypto.h @@ -137,8 +137,8 @@ static psa_key_attributes_t psa_key_attributes_init(void); * \param[out] attributes The attribute structure to write to. * \param key The persistent identifier for the key. */ -static void psa_set_key_id( psa_key_attributes_t *attributes, - mbedtls_svc_key_id_t key ); +static void psa_set_key_id(psa_key_attributes_t *attributes, + mbedtls_svc_key_id_t key); #ifdef MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER /** Set the owner identifier of a key. @@ -155,8 +155,8 @@ static void psa_set_key_id( psa_key_attributes_t *attributes, * \param[out] attributes The attribute structure to write to. * \param owner The key owner identifier. */ -static void mbedtls_set_key_owner_id( psa_key_attributes_t *attributes, - mbedtls_key_owner_id_t owner ); +static void mbedtls_set_key_owner_id(psa_key_attributes_t *attributes, + mbedtls_key_owner_id_t owner); #endif /** Set the location of a persistent key. @@ -2884,13 +2884,13 @@ psa_status_t psa_aead_abort(psa_aead_operation_t *operation); * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_sign_message( mbedtls_svc_key_id_t key, - 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_sign_message(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + uint8_t *signature, + size_t signature_size, + size_t *signature_length); /** \brief Verify the signature of a message with a public key, using * a hash-and-sign verification algorithm. @@ -2936,12 +2936,12 @@ psa_status_t psa_sign_message( mbedtls_svc_key_id_t key, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_verify_message( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const uint8_t * input, - size_t input_length, - const uint8_t * signature, - size_t signature_length ); +psa_status_t psa_verify_message(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + const uint8_t *signature, + size_t signature_length); /** * \brief Sign a hash or short message with a private key. @@ -3336,7 +3336,7 @@ psa_status_t psa_key_derivation_set_capacity( * The value of the maximum possible capacity depends on the key derivation * algorithm. */ -#define PSA_KEY_DERIVATION_UNLIMITED_CAPACITY ((size_t)(-1)) +#define PSA_KEY_DERIVATION_UNLIMITED_CAPACITY ((size_t) (-1)) /** Provide an input for key derivation or key agreement. * diff --git a/include/psa/crypto_builtin_composites.h b/include/psa/crypto_builtin_composites.h index e11e239cf..b7f0b1162 100644 --- a/include/psa/crypto_builtin_composites.h +++ b/include/psa/crypto_builtin_composites.h @@ -45,8 +45,7 @@ #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) || defined(PSA_CRYPTO_DRIVER_TEST) -typedef struct -{ +typedef struct { /** The HMAC algorithm in use */ psa_algorithm_t MBEDTLS_PRIVATE(alg); /** The hash context. */ @@ -55,16 +54,14 @@ typedef struct uint8_t MBEDTLS_PRIVATE(opad)[PSA_HMAC_MAX_HASH_BLOCK_SIZE]; } mbedtls_psa_hmac_operation_t; -#define MBEDTLS_PSA_HMAC_OPERATION_INIT {0, PSA_HASH_OPERATION_INIT, {0}} +#define MBEDTLS_PSA_HMAC_OPERATION_INIT { 0, PSA_HASH_OPERATION_INIT, { 0 } } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ #include "mbedtls/cmac.h" -typedef struct -{ +typedef struct { psa_algorithm_t MBEDTLS_PRIVATE(alg); - union - { + union { unsigned MBEDTLS_PRIVATE(dummy); /* Make the union non-empty even with no supported algorithms. */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) || defined(PSA_CRYPTO_DRIVER_TEST) mbedtls_psa_hmac_operation_t MBEDTLS_PRIVATE(hmac); @@ -75,7 +72,7 @@ typedef struct } MBEDTLS_PRIVATE(ctx); } mbedtls_psa_mac_operation_t; -#define MBEDTLS_PSA_MAC_OPERATION_INIT {0, {0}} +#define MBEDTLS_PSA_MAC_OPERATION_INIT { 0, { 0 } } #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) || \ @@ -84,8 +81,7 @@ typedef struct #endif /* Context structure for the Mbed TLS AEAD implementation. */ -typedef struct -{ +typedef struct { psa_algorithm_t MBEDTLS_PRIVATE(alg); psa_key_type_t MBEDTLS_PRIVATE(key_type); @@ -93,8 +89,7 @@ typedef struct uint8_t MBEDTLS_PRIVATE(tag_length); - union - { + union { unsigned dummy; /* Enable easier initializing of the union. */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) mbedtls_ccm_context MBEDTLS_PRIVATE(ccm); @@ -110,6 +105,6 @@ typedef struct } mbedtls_psa_aead_operation_t; -#define MBEDTLS_PSA_AEAD_OPERATION_INIT {0, 0, 0, 0, {0}} +#define MBEDTLS_PSA_AEAD_OPERATION_INIT { 0, 0, 0, 0, { 0 } } #endif /* PSA_CRYPTO_BUILTIN_COMPOSITES_H */ diff --git a/include/psa/crypto_builtin_primitives.h b/include/psa/crypto_builtin_primitives.h index 35f3a8b30..c76bc7814 100644 --- a/include/psa/crypto_builtin_primitives.h +++ b/include/psa/crypto_builtin_primitives.h @@ -56,11 +56,9 @@ #define MBEDTLS_PSA_BUILTIN_HASH #endif -typedef struct -{ +typedef struct { psa_algorithm_t MBEDTLS_PRIVATE(alg); - union - { + union { unsigned dummy; /* Make the union non-empty even with no supported algorithms. */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) mbedtls_md5_context md5; @@ -72,17 +70,17 @@ typedef struct mbedtls_sha1_context sha1; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) + defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) mbedtls_sha256_context sha256; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) + defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) mbedtls_sha512_context sha512; #endif } MBEDTLS_PRIVATE(ctx); } mbedtls_psa_hash_operation_t; -#define MBEDTLS_PSA_HASH_OPERATION_INIT {0, {0}} +#define MBEDTLS_PSA_HASH_OPERATION_INIT { 0, { 0 } } /* * Cipher multi-part operation definitions. @@ -111,6 +109,6 @@ typedef struct { } MBEDTLS_PRIVATE(ctx); } mbedtls_psa_cipher_operation_t; -#define MBEDTLS_PSA_CIPHER_OPERATION_INIT {0, 0, 0, {0}} +#define MBEDTLS_PSA_CIPHER_OPERATION_INIT { 0, 0, 0, { 0 } } #endif /* PSA_CRYPTO_BUILTIN_PRIMITIVES_H */ diff --git a/include/psa/crypto_compat.h b/include/psa/crypto_compat.h index 89c13f1c1..97e65848c 100644 --- a/include/psa/crypto_compat.h +++ b/include/psa/crypto_compat.h @@ -50,9 +50,9 @@ typedef mbedtls_svc_key_id_t psa_key_handle_t; * * \return Non-zero if the handle is null, zero otherwise. */ -static inline int psa_key_handle_is_null( psa_key_handle_t handle ) +static inline int psa_key_handle_is_null(psa_key_handle_t handle) { - return( mbedtls_svc_key_id_is_null( handle ) ); + return mbedtls_svc_key_id_is_null(handle); } /** Open a handle to an existing persistent key. @@ -115,8 +115,8 @@ static inline int psa_key_handle_is_null( psa_key_handle_t handle ) * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_open_key( mbedtls_svc_key_id_t key, - psa_key_handle_t *handle ); +psa_status_t psa_open_key(mbedtls_svc_key_id_t key, + psa_key_handle_t *handle); /** Close a key handle. * diff --git a/include/psa/crypto_driver_contexts_composites.h b/include/psa/crypto_driver_contexts_composites.h index 3f1c8af4b..bcd000e70 100644 --- a/include/psa/crypto_driver_contexts_composites.h +++ b/include/psa/crypto_driver_contexts_composites.h @@ -50,41 +50,41 @@ #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) typedef libtestdriver1_mbedtls_psa_mac_operation_t - mbedtls_transparent_test_driver_mac_operation_t; + mbedtls_transparent_test_driver_mac_operation_t; typedef libtestdriver1_mbedtls_psa_mac_operation_t - mbedtls_opaque_test_driver_mac_operation_t; + mbedtls_opaque_test_driver_mac_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_MAC_OPERATION_INIT \ - LIBTESTDRIVER1_MBEDTLS_PSA_MAC_OPERATION_INIT + LIBTESTDRIVER1_MBEDTLS_PSA_MAC_OPERATION_INIT #define MBEDTLS_OPAQUE_TEST_DRIVER_MAC_OPERATION_INIT \ - LIBTESTDRIVER1_MBEDTLS_PSA_MAC_OPERATION_INIT + LIBTESTDRIVER1_MBEDTLS_PSA_MAC_OPERATION_INIT #else typedef mbedtls_psa_mac_operation_t - mbedtls_transparent_test_driver_mac_operation_t; + mbedtls_transparent_test_driver_mac_operation_t; typedef mbedtls_psa_mac_operation_t - mbedtls_opaque_test_driver_mac_operation_t; + mbedtls_opaque_test_driver_mac_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_MAC_OPERATION_INIT \ - MBEDTLS_PSA_MAC_OPERATION_INIT + MBEDTLS_PSA_MAC_OPERATION_INIT #define MBEDTLS_OPAQUE_TEST_DRIVER_MAC_OPERATION_INIT \ - MBEDTLS_PSA_MAC_OPERATION_INIT + MBEDTLS_PSA_MAC_OPERATION_INIT #endif /* MBEDTLS_TEST_LIBTESTDRIVER1 && LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC */ #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) typedef libtestdriver1_mbedtls_psa_aead_operation_t - mbedtls_transparent_test_driver_aead_operation_t; + mbedtls_transparent_test_driver_aead_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_AEAD_OPERATION_INIT \ - LIBTESTDRIVER1_MBEDTLS_PSA_AEAD_OPERATION_INIT + LIBTESTDRIVER1_MBEDTLS_PSA_AEAD_OPERATION_INIT #else typedef mbedtls_psa_aead_operation_t - mbedtls_transparent_test_driver_aead_operation_t; + mbedtls_transparent_test_driver_aead_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_AEAD_OPERATION_INIT \ - MBEDTLS_PSA_AEAD_OPERATION_INIT + MBEDTLS_PSA_AEAD_OPERATION_INIT #endif /* MBEDTLS_TEST_LIBTESTDRIVER1 && LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD */ diff --git a/include/psa/crypto_driver_contexts_primitives.h b/include/psa/crypto_driver_contexts_primitives.h index 2bb01ed43..620a4b3a7 100644 --- a/include/psa/crypto_driver_contexts_primitives.h +++ b/include/psa/crypto_driver_contexts_primitives.h @@ -50,32 +50,32 @@ #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) typedef libtestdriver1_mbedtls_psa_cipher_operation_t - mbedtls_transparent_test_driver_cipher_operation_t; + mbedtls_transparent_test_driver_cipher_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT \ - LIBTESTDRIVER1_MBEDTLS_PSA_CIPHER_OPERATION_INIT + LIBTESTDRIVER1_MBEDTLS_PSA_CIPHER_OPERATION_INIT #else typedef mbedtls_psa_cipher_operation_t - mbedtls_transparent_test_driver_cipher_operation_t; + mbedtls_transparent_test_driver_cipher_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT \ - MBEDTLS_PSA_CIPHER_OPERATION_INIT + MBEDTLS_PSA_CIPHER_OPERATION_INIT #endif /* MBEDTLS_TEST_LIBTESTDRIVER1 && LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER */ #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) typedef libtestdriver1_mbedtls_psa_hash_operation_t - mbedtls_transparent_test_driver_hash_operation_t; + mbedtls_transparent_test_driver_hash_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_HASH_OPERATION_INIT \ - LIBTESTDRIVER1_MBEDTLS_PSA_HASH_OPERATION_INIT + LIBTESTDRIVER1_MBEDTLS_PSA_HASH_OPERATION_INIT #else typedef mbedtls_psa_hash_operation_t - mbedtls_transparent_test_driver_hash_operation_t; + mbedtls_transparent_test_driver_hash_operation_t; #define MBEDTLS_TRANSPARENT_TEST_DRIVER_HASH_OPERATION_INIT \ - MBEDTLS_PSA_HASH_OPERATION_INIT + MBEDTLS_PSA_HASH_OPERATION_INIT #endif /* MBEDTLS_TEST_LIBTESTDRIVER1 && LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH */ @@ -85,7 +85,7 @@ typedef struct { } mbedtls_opaque_test_driver_cipher_operation_t; #define MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT \ - { 0, MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT } + { 0, MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT } #endif /* PSA_CRYPTO_DRIVER_TEST */ diff --git a/include/psa/crypto_extra.h b/include/psa/crypto_extra.h index 33e2e77b9..bd1b5af56 100644 --- a/include/psa/crypto_extra.h +++ b/include/psa/crypto_extra.h @@ -85,7 +85,7 @@ static inline void psa_set_key_enrollment_algorithm( static inline psa_algorithm_t psa_get_key_enrollment_algorithm( const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg2) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg2); } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) @@ -114,7 +114,7 @@ static inline psa_algorithm_t psa_get_key_enrollment_algorithm( */ psa_status_t psa_get_key_slot_number( const psa_key_attributes_t *attributes, - psa_key_slot_number_t *slot_number ); + psa_key_slot_number_t *slot_number); /** Choose the slot number where a key is stored. * @@ -141,7 +141,7 @@ psa_status_t psa_get_key_slot_number( */ static inline void psa_set_key_slot_number( psa_key_attributes_t *attributes, - psa_key_slot_number_t slot_number ) + psa_key_slot_number_t slot_number) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(flags) |= MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER; attributes->MBEDTLS_PRIVATE(slot_number) = slot_number; @@ -154,9 +154,10 @@ static inline void psa_set_key_slot_number( * \param[out] attributes The attribute structure to write to. */ static inline void psa_clear_key_slot_number( - psa_key_attributes_t *attributes ) + psa_key_attributes_t *attributes) { - attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(flags) &= ~MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER; + attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(flags) &= + ~MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER; } /** Register a key that is already present in a secure element. @@ -214,7 +215,7 @@ psa_status_t mbedtls_psa_register_se_key( * * This is an Mbed TLS extension. */ -void mbedtls_psa_crypto_free( void ); +void mbedtls_psa_crypto_free(void); /** \brief Statistics about * resource consumption related to the PSA keystore. @@ -222,8 +223,7 @@ void mbedtls_psa_crypto_free( void ); * \note The content of this structure is not part of the stable API and ABI * of Mbed Crypto and may change arbitrarily from version to version. */ -typedef struct mbedtls_psa_stats_s -{ +typedef struct mbedtls_psa_stats_s { /** Number of slots containing key material for a volatile key. */ size_t MBEDTLS_PRIVATE(volatile_slots); /** Number of slots containing key material for a key which is in @@ -254,7 +254,7 @@ typedef struct mbedtls_psa_stats_s * between the application and the keystore, the service may or * may not expose this function. */ -void mbedtls_psa_get_stats( mbedtls_psa_stats_t *stats ); +void mbedtls_psa_get_stats(mbedtls_psa_stats_t *stats); /** * \brief Inject an initial entropy seed for the random generator into @@ -339,7 +339,7 @@ psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, * string. The length of the byte string is the length of the base prime `p` * in bytes. */ -#define PSA_KEY_TYPE_DSA_PUBLIC_KEY ((psa_key_type_t)0x4002) +#define PSA_KEY_TYPE_DSA_PUBLIC_KEY ((psa_key_type_t) 0x4002) /** DSA key pair (private and public key). * @@ -357,13 +357,13 @@ psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, * Add 1 to the resulting integer and use this as the private key *x*. * */ -#define PSA_KEY_TYPE_DSA_KEY_PAIR ((psa_key_type_t)0x7002) +#define PSA_KEY_TYPE_DSA_KEY_PAIR ((psa_key_type_t) 0x7002) /** Whether a key type is a DSA key (pair or public-only). */ #define PSA_KEY_TYPE_IS_DSA(type) \ (PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type) == PSA_KEY_TYPE_DSA_PUBLIC_KEY) -#define PSA_ALG_DSA_BASE ((psa_algorithm_t)0x06000400) +#define PSA_ALG_DSA_BASE ((psa_algorithm_t) 0x06000400) /** DSA signature with hashing. * * This is the signature scheme defined by FIPS 186-4, @@ -380,7 +380,7 @@ psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, */ #define PSA_ALG_DSA(hash_alg) \ (PSA_ALG_DSA_BASE | ((hash_alg) & PSA_ALG_HASH_MASK)) -#define PSA_ALG_DETERMINISTIC_DSA_BASE ((psa_algorithm_t)0x06000500) +#define PSA_ALG_DETERMINISTIC_DSA_BASE ((psa_algorithm_t) 0x06000500) #define PSA_ALG_DSA_DETERMINISTIC_FLAG PSA_ALG_ECDSA_DETERMINISTIC_FLAG /** Deterministic DSA signature with hashing. * @@ -587,53 +587,52 @@ psa_status_t psa_get_key_domain_parameters( * (`PSA_ECC_FAMILY_xxx`). * \return \c 0 on failure (\p grpid is not recognized). */ -static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grpid, - size_t *bits ) +static inline psa_ecc_family_t mbedtls_ecc_group_to_psa(mbedtls_ecp_group_id grpid, + size_t *bits) { - switch( grpid ) - { + switch (grpid) { case MBEDTLS_ECP_DP_SECP192R1: *bits = 192; - return( PSA_ECC_FAMILY_SECP_R1 ); + return PSA_ECC_FAMILY_SECP_R1; case MBEDTLS_ECP_DP_SECP224R1: *bits = 224; - return( PSA_ECC_FAMILY_SECP_R1 ); + return PSA_ECC_FAMILY_SECP_R1; case MBEDTLS_ECP_DP_SECP256R1: *bits = 256; - return( PSA_ECC_FAMILY_SECP_R1 ); + return PSA_ECC_FAMILY_SECP_R1; case MBEDTLS_ECP_DP_SECP384R1: *bits = 384; - return( PSA_ECC_FAMILY_SECP_R1 ); + return PSA_ECC_FAMILY_SECP_R1; case MBEDTLS_ECP_DP_SECP521R1: *bits = 521; - return( PSA_ECC_FAMILY_SECP_R1 ); + return PSA_ECC_FAMILY_SECP_R1; case MBEDTLS_ECP_DP_BP256R1: *bits = 256; - return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + return PSA_ECC_FAMILY_BRAINPOOL_P_R1; case MBEDTLS_ECP_DP_BP384R1: *bits = 384; - return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + return PSA_ECC_FAMILY_BRAINPOOL_P_R1; case MBEDTLS_ECP_DP_BP512R1: *bits = 512; - return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + return PSA_ECC_FAMILY_BRAINPOOL_P_R1; case MBEDTLS_ECP_DP_CURVE25519: *bits = 255; - return( PSA_ECC_FAMILY_MONTGOMERY ); + return PSA_ECC_FAMILY_MONTGOMERY; case MBEDTLS_ECP_DP_SECP192K1: *bits = 192; - return( PSA_ECC_FAMILY_SECP_K1 ); + return PSA_ECC_FAMILY_SECP_K1; case MBEDTLS_ECP_DP_SECP224K1: *bits = 224; - return( PSA_ECC_FAMILY_SECP_K1 ); + return PSA_ECC_FAMILY_SECP_K1; case MBEDTLS_ECP_DP_SECP256K1: *bits = 256; - return( PSA_ECC_FAMILY_SECP_K1 ); + return PSA_ECC_FAMILY_SECP_K1; case MBEDTLS_ECP_DP_CURVE448: *bits = 448; - return( PSA_ECC_FAMILY_MONTGOMERY ); + return PSA_ECC_FAMILY_MONTGOMERY; default: *bits = 0; - return( 0 ); + return 0; } } @@ -656,9 +655,9 @@ static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id gr * \return #MBEDTLS_ECP_DP_NONE if \p bits is not * correct for \p curve. */ -mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, - size_t bits, - int bits_is_sloppy ); +mbedtls_ecp_group_id mbedtls_ecc_group_of_psa(psa_ecc_family_t curve, + size_t bits, + int bits_is_sloppy); #endif /* MBEDTLS_ECP_C */ /**@}*/ @@ -709,7 +708,7 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, */ psa_status_t mbedtls_psa_external_get_random( mbedtls_psa_external_random_context_t *context, - uint8_t *output, size_t output_size, size_t *output_length ); + uint8_t *output, size_t output_size, size_t *output_length); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ /**@}*/ @@ -729,14 +728,14 @@ psa_status_t mbedtls_psa_external_get_random( * This value is part of the library's ABI since changing it would invalidate * the values of built-in key identifiers in applications. */ -#define MBEDTLS_PSA_KEY_ID_BUILTIN_MIN ((psa_key_id_t)0x7fff0000) +#define MBEDTLS_PSA_KEY_ID_BUILTIN_MIN ((psa_key_id_t) 0x7fff0000) /** The maximum value for a key identifier that is built into the * implementation. * * See #MBEDTLS_PSA_KEY_ID_BUILTIN_MIN for more information. */ -#define MBEDTLS_PSA_KEY_ID_BUILTIN_MAX ((psa_key_id_t)0x7fffefff) +#define MBEDTLS_PSA_KEY_ID_BUILTIN_MAX ((psa_key_id_t) 0x7fffefff) /** A slot number identifying a key in a driver. * @@ -754,10 +753,10 @@ typedef uint64_t psa_drv_slot_number_t; * \retval 0 * The key identifier is not a builtin key identifier. */ -static inline int psa_key_id_is_builtin( psa_key_id_t key_id ) +static inline int psa_key_id_is_builtin(psa_key_id_t key_id) { - return( ( key_id >= MBEDTLS_PSA_KEY_ID_BUILTIN_MIN ) && - ( key_id <= MBEDTLS_PSA_KEY_ID_BUILTIN_MAX ) ); + return (key_id >= MBEDTLS_PSA_KEY_ID_BUILTIN_MIN) && + (key_id <= MBEDTLS_PSA_KEY_ID_BUILTIN_MAX); } /** Platform function to obtain the location and slot number of a built-in key. @@ -807,7 +806,7 @@ static inline int psa_key_id_is_builtin( psa_key_id_t key_id ) psa_status_t mbedtls_psa_platform_get_builtin_key( mbedtls_svc_key_id_t key_id, psa_key_lifetime_t *lifetime, - psa_drv_slot_number_t *slot_number ); + psa_drv_slot_number_t *slot_number); #endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ /** @} */ @@ -816,7 +815,7 @@ psa_status_t mbedtls_psa_platform_get_builtin_key( * @{ */ -#define PSA_ALG_CATEGORY_PAKE ((psa_algorithm_t)0x0a000000) +#define PSA_ALG_CATEGORY_PAKE ((psa_algorithm_t) 0x0a000000) /** Whether the specified algorithm is a password-authenticated key exchange. * @@ -945,7 +944,7 @@ psa_status_t mbedtls_psa_platform_get_builtin_key( * of RFC 8236 for two examples. * */ -#define PSA_ALG_JPAKE ((psa_algorithm_t)0x0a000100) +#define PSA_ALG_JPAKE ((psa_algorithm_t) 0x0a000100) /** @} */ @@ -1004,7 +1003,7 @@ typedef uint32_t psa_pake_primitive_t; * This value can be used in a call to psa_pake_set_role() for symmetric PAKE * algorithms which do not assign roles. */ -#define PSA_PAKE_ROLE_NONE ((psa_pake_role_t)0x00) +#define PSA_PAKE_ROLE_NONE ((psa_pake_role_t) 0x00) /** The first peer in a balanced PAKE. * @@ -1013,7 +1012,7 @@ typedef uint32_t psa_pake_primitive_t; * need this, both #PSA_PAKE_ROLE_FIRST and #PSA_PAKE_ROLE_SECOND are * accepted. */ -#define PSA_PAKE_ROLE_FIRST ((psa_pake_role_t)0x01) +#define PSA_PAKE_ROLE_FIRST ((psa_pake_role_t) 0x01) /** The second peer in a balanced PAKE. * @@ -1022,19 +1021,19 @@ typedef uint32_t psa_pake_primitive_t; * need this, either #PSA_PAKE_ROLE_FIRST or #PSA_PAKE_ROLE_SECOND are * accepted. */ -#define PSA_PAKE_ROLE_SECOND ((psa_pake_role_t)0x02) +#define PSA_PAKE_ROLE_SECOND ((psa_pake_role_t) 0x02) /** The client in an augmented PAKE. * * Augmented PAKE algorithms need to differentiate between client and server. */ -#define PSA_PAKE_ROLE_CLIENT ((psa_pake_role_t)0x11) +#define PSA_PAKE_ROLE_CLIENT ((psa_pake_role_t) 0x11) /** The server in an augmented PAKE. * * Augmented PAKE algorithms need to differentiate between client and server. */ -#define PSA_PAKE_ROLE_SERVER ((psa_pake_role_t)0x12) +#define PSA_PAKE_ROLE_SERVER ((psa_pake_role_t) 0x12) /** The PAKE primitive type indicating the use of elliptic curves. * @@ -1054,7 +1053,7 @@ typedef uint32_t psa_pake_primitive_t; * curve would be. For more information, consult the documentation of * psa_export_key(). */ -#define PSA_PAKE_PRIMITIVE_TYPE_ECC ((psa_pake_primitive_type_t)0x01) +#define PSA_PAKE_PRIMITIVE_TYPE_ECC ((psa_pake_primitive_type_t) 0x01) /** The PAKE primitive type indicating the use of Diffie-Hellman groups. * @@ -1074,7 +1073,7 @@ typedef uint32_t psa_pake_primitive_t; * group would be. For more information, consult the documentation of * psa_export_key(). */ -#define PSA_PAKE_PRIMITIVE_TYPE_DH ((psa_pake_primitive_type_t)0x02) +#define PSA_PAKE_PRIMITIVE_TYPE_DH ((psa_pake_primitive_type_t) 0x02) /** Construct a PAKE primitive from type, family and bit-size. * @@ -1098,7 +1097,7 @@ typedef uint32_t psa_pake_primitive_t; #define PSA_PAKE_PRIMITIVE(pake_type, pake_family, pake_bits) \ ((pake_bits & 0xFFFF) != pake_bits) ? 0 : \ ((psa_pake_primitive_t) (((pake_type) << 24 | \ - (pake_family) << 16) | (pake_bits))) + (pake_family) << 16) | (pake_bits))) /** The key share being sent to or received from the peer. * @@ -1112,7 +1111,7 @@ typedef uint32_t psa_pake_primitive_t; * For information regarding how the group is determined, consult the * documentation #PSA_PAKE_PRIMITIVE. */ -#define PSA_PAKE_STEP_KEY_SHARE ((psa_pake_step_t)0x01) +#define PSA_PAKE_STEP_KEY_SHARE ((psa_pake_step_t) 0x01) /** A Schnorr NIZKP public key. * @@ -1129,7 +1128,7 @@ typedef uint32_t psa_pake_primitive_t; * For information regarding how the group is determined, consult the * documentation #PSA_PAKE_PRIMITIVE. */ -#define PSA_PAKE_STEP_ZK_PUBLIC ((psa_pake_step_t)0x02) +#define PSA_PAKE_STEP_ZK_PUBLIC ((psa_pake_step_t) 0x02) /** A Schnorr NIZKP proof. * @@ -1150,7 +1149,7 @@ typedef uint32_t psa_pake_primitive_t; * For information regarding how the group is determined, consult the * documentation #PSA_PAKE_PRIMITIVE. */ -#define PSA_PAKE_STEP_ZK_PROOF ((psa_pake_step_t)0x03) +#define PSA_PAKE_STEP_ZK_PROOF ((psa_pake_step_t) 0x03) /** The type of the data structure for PAKE cipher suites. * @@ -1162,7 +1161,7 @@ typedef struct psa_pake_cipher_suite_s psa_pake_cipher_suite_t; /** Return an initial value for a PAKE cipher suite object. */ -static psa_pake_cipher_suite_t psa_pake_cipher_suite_init( void ); +static psa_pake_cipher_suite_t psa_pake_cipher_suite_init(void); /** Retrieve the PAKE algorithm from a PAKE cipher suite. * @@ -1171,7 +1170,7 @@ static psa_pake_cipher_suite_t psa_pake_cipher_suite_init( void ); * \return The PAKE algorithm stored in the cipher suite structure. */ static psa_algorithm_t psa_pake_cs_get_algorithm( - const psa_pake_cipher_suite_t *cipher_suite ); + const psa_pake_cipher_suite_t *cipher_suite); /** Declare the PAKE algorithm for the cipher suite. * @@ -1185,8 +1184,8 @@ static psa_algorithm_t psa_pake_cs_get_algorithm( * If this is 0, the PAKE algorithm in * \p cipher_suite becomes unspecified. */ -static void psa_pake_cs_set_algorithm( psa_pake_cipher_suite_t *cipher_suite, - psa_algorithm_t algorithm ); +static void psa_pake_cs_set_algorithm(psa_pake_cipher_suite_t *cipher_suite, + psa_algorithm_t algorithm); /** Retrieve the primitive from a PAKE cipher suite. * @@ -1195,7 +1194,7 @@ static void psa_pake_cs_set_algorithm( psa_pake_cipher_suite_t *cipher_suite, * \return The primitive stored in the cipher suite structure. */ static psa_pake_primitive_t psa_pake_cs_get_primitive( - const psa_pake_cipher_suite_t *cipher_suite ); + const psa_pake_cipher_suite_t *cipher_suite); /** Declare the primitive for a PAKE cipher suite. * @@ -1206,8 +1205,8 @@ static psa_pake_primitive_t psa_pake_cs_get_primitive( * primitive type in \p cipher_suite becomes * unspecified. */ -static void psa_pake_cs_set_primitive( psa_pake_cipher_suite_t *cipher_suite, - psa_pake_primitive_t primitive ); +static void psa_pake_cs_set_primitive(psa_pake_cipher_suite_t *cipher_suite, + psa_pake_primitive_t primitive); /** Retrieve the PAKE family from a PAKE cipher suite. * @@ -1216,7 +1215,7 @@ static void psa_pake_cs_set_primitive( psa_pake_cipher_suite_t *cipher_suite, * \return The PAKE family stored in the cipher suite structure. */ static psa_pake_family_t psa_pake_cs_get_family( - const psa_pake_cipher_suite_t *cipher_suite ); + const psa_pake_cipher_suite_t *cipher_suite); /** Retrieve the PAKE primitive bit-size from a PAKE cipher suite. * @@ -1225,7 +1224,7 @@ static psa_pake_family_t psa_pake_cs_get_family( * \return The PAKE primitive bit-size stored in the cipher suite structure. */ static uint16_t psa_pake_cs_get_bits( - const psa_pake_cipher_suite_t *cipher_suite ); + const psa_pake_cipher_suite_t *cipher_suite); /** Retrieve the hash algorithm from a PAKE cipher suite. * @@ -1236,7 +1235,7 @@ static uint16_t psa_pake_cs_get_bits( * the hash algorithm is not set. */ static psa_algorithm_t psa_pake_cs_get_hash( - const psa_pake_cipher_suite_t *cipher_suite ); + const psa_pake_cipher_suite_t *cipher_suite); /** Declare the hash algorithm for a PAKE cipher suite. * @@ -1254,8 +1253,8 @@ static psa_algorithm_t psa_pake_cs_get_hash( * If this is 0, the hash algorithm in * \p cipher_suite becomes unspecified. */ -static void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, - psa_algorithm_t hash ); +static void psa_pake_cs_set_hash(psa_pake_cipher_suite_t *cipher_suite, + psa_algorithm_t hash); /** The type of the state data structure for PAKE operations. * @@ -1289,7 +1288,7 @@ typedef struct psa_pake_operation_s psa_pake_operation_t; /** Return an initial value for a PAKE operation object. */ -static psa_pake_operation_t psa_pake_operation_init( void ); +static psa_pake_operation_t psa_pake_operation_init(void); /** Set the session information for a password-authenticated key exchange. * @@ -1361,8 +1360,8 @@ static psa_pake_operation_t psa_pake_operation_init( void ); * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_setup( psa_pake_operation_t *operation, - const psa_pake_cipher_suite_t *cipher_suite ); +psa_status_t psa_pake_setup(psa_pake_operation_t *operation, + const psa_pake_cipher_suite_t *cipher_suite); /** Set the password for a password-authenticated key exchange from key ID. * @@ -1409,8 +1408,8 @@ psa_status_t psa_pake_setup( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, - mbedtls_svc_key_id_t password ); +psa_status_t psa_pake_set_password_key(psa_pake_operation_t *operation, + mbedtls_svc_key_id_t password); /** Set the user ID for a password-authenticated key exchange. * @@ -1449,9 +1448,9 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, - const uint8_t *user_id, - size_t user_id_len ); +psa_status_t psa_pake_set_user(psa_pake_operation_t *operation, + const uint8_t *user_id, + size_t user_id_len); /** Set the peer ID for a password-authenticated key exchange. * @@ -1491,9 +1490,9 @@ psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, - const uint8_t *peer_id, - size_t peer_id_len ); +psa_status_t psa_pake_set_peer(psa_pake_operation_t *operation, + const uint8_t *peer_id, + size_t peer_id_len); /** Set the application role for a password-authenticated key exchange. * @@ -1533,8 +1532,8 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, - psa_pake_role_t role ); +psa_status_t psa_pake_set_role(psa_pake_operation_t *operation, + psa_pake_role_t role); /** Get output for a step of a password-authenticated key exchange. * @@ -1591,11 +1590,11 @@ psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_output( psa_pake_operation_t *operation, - psa_pake_step_t step, - uint8_t *output, - size_t output_size, - size_t *output_length ); +psa_status_t psa_pake_output(psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length); /** Provide input for a step of a password-authenticated key exchange. * @@ -1646,10 +1645,10 @@ psa_status_t psa_pake_output( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_input( psa_pake_operation_t *operation, - psa_pake_step_t step, - const uint8_t *input, - size_t input_length ); +psa_status_t psa_pake_input(psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length); /** Get implicitly confirmed shared secret from a PAKE. * @@ -1709,8 +1708,8 @@ psa_status_t psa_pake_input( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_get_implicit_key( psa_pake_operation_t *operation, - psa_key_derivation_operation_t *output ); +psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, + psa_key_derivation_operation_t *output); /** Abort a PAKE operation. * @@ -1736,7 +1735,7 @@ psa_status_t psa_pake_get_implicit_key( psa_pake_operation_t *operation, * It is implementation-dependent whether a failure to initialize * results in this error code. */ -psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); +psa_status_t psa_pake_abort(psa_pake_operation_t *operation); /**@}*/ @@ -1761,15 +1760,15 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * return 0. */ #define PSA_PAKE_OUTPUT_SIZE(alg, primitive, output_step) \ - ( alg == PSA_ALG_JPAKE && \ - primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ - PSA_ECC_FAMILY_SECP_R1, 256) ? \ - ( \ - output_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ - output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ - 32 \ - ) : \ - 0 ) + (alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( \ + output_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + output_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ + ) : \ + 0) /** A sufficient input buffer size for psa_pake_input(). * @@ -1791,15 +1790,15 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); * the parameters are incompatible, return 0. */ #define PSA_PAKE_INPUT_SIZE(alg, primitive, input_step) \ - ( alg == PSA_ALG_JPAKE && \ - primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ - PSA_ECC_FAMILY_SECP_R1, 256) ? \ - ( \ - input_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ - input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ - 32 \ - ) : \ - 0 ) + (alg == PSA_ALG_JPAKE && \ + primitive == PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, \ + PSA_ECC_FAMILY_SECP_R1, 256) ? \ + ( \ + input_step == PSA_PAKE_STEP_KEY_SHARE ? 65 : \ + input_step == PSA_PAKE_STEP_ZK_PUBLIC ? 65 : \ + 32 \ + ) : \ + 0) /** Output buffer size for psa_pake_output() for any of the supported PAKE * algorithm and primitive suites and output step. @@ -1822,22 +1821,21 @@ psa_status_t psa_pake_abort( psa_pake_operation_t * operation ); /** Returns a suitable initializer for a PAKE cipher suite object of type * psa_pake_cipher_suite_t. */ -#define PSA_PAKE_CIPHER_SUITE_INIT {PSA_ALG_NONE, 0, 0, 0, PSA_ALG_NONE} +#define PSA_PAKE_CIPHER_SUITE_INIT { PSA_ALG_NONE, 0, 0, 0, PSA_ALG_NONE } /** Returns a suitable initializer for a PAKE operation object of type * psa_pake_operation_t. */ #if defined(MBEDTLS_PSA_BUILTIN_PAKE) -#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, 0, 0, \ - NULL, 0 , \ - PSA_PAKE_ROLE_NONE, {0}, 0, 0, \ - {.dummy = 0}} +#define PSA_PAKE_OPERATION_INIT { PSA_ALG_NONE, 0, 0, 0, 0, \ + NULL, 0, \ + PSA_PAKE_ROLE_NONE, { 0 }, 0, 0, \ + { .dummy = 0 } } #else -#define PSA_PAKE_OPERATION_INIT {PSA_ALG_NONE, 0, 0, {0}} +#define PSA_PAKE_OPERATION_INIT { PSA_ALG_NONE, 0, 0, { 0 } } #endif -struct psa_pake_cipher_suite_s -{ +struct psa_pake_cipher_suite_s { psa_algorithm_t algorithm; psa_pake_primitive_type_t type; psa_pake_family_t family; @@ -1846,31 +1844,32 @@ struct psa_pake_cipher_suite_s }; static inline psa_algorithm_t psa_pake_cs_get_algorithm( - const psa_pake_cipher_suite_t *cipher_suite ) + const psa_pake_cipher_suite_t *cipher_suite) { - return( cipher_suite->algorithm ); + return cipher_suite->algorithm; } static inline void psa_pake_cs_set_algorithm( psa_pake_cipher_suite_t *cipher_suite, psa_algorithm_t algorithm) { - if( !PSA_ALG_IS_PAKE( algorithm ) ) + if (!PSA_ALG_IS_PAKE(algorithm)) { cipher_suite->algorithm = 0; - else + } else { cipher_suite->algorithm = algorithm; + } } static inline psa_pake_primitive_t psa_pake_cs_get_primitive( - const psa_pake_cipher_suite_t *cipher_suite ) + const psa_pake_cipher_suite_t *cipher_suite) { - return( PSA_PAKE_PRIMITIVE( cipher_suite->type, cipher_suite->family, - cipher_suite->bits ) ); + return PSA_PAKE_PRIMITIVE(cipher_suite->type, cipher_suite->family, + cipher_suite->bits); } static inline void psa_pake_cs_set_primitive( - psa_pake_cipher_suite_t *cipher_suite, - psa_pake_primitive_t primitive ) + psa_pake_cipher_suite_t *cipher_suite, + psa_pake_primitive_t primitive) { cipher_suite->type = (psa_pake_primitive_type_t) (primitive >> 24); cipher_suite->family = (psa_pake_family_t) (0xFF & (primitive >> 16)); @@ -1878,30 +1877,31 @@ static inline void psa_pake_cs_set_primitive( } static inline psa_pake_family_t psa_pake_cs_get_family( - const psa_pake_cipher_suite_t *cipher_suite ) + const psa_pake_cipher_suite_t *cipher_suite) { - return( cipher_suite->family ); + return cipher_suite->family; } static inline uint16_t psa_pake_cs_get_bits( - const psa_pake_cipher_suite_t *cipher_suite ) + const psa_pake_cipher_suite_t *cipher_suite) { - return( cipher_suite->bits ); + return cipher_suite->bits; } static inline psa_algorithm_t psa_pake_cs_get_hash( - const psa_pake_cipher_suite_t *cipher_suite ) + const psa_pake_cipher_suite_t *cipher_suite) { - return( cipher_suite->hash ); + return cipher_suite->hash; } -static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, - psa_algorithm_t hash ) +static inline void psa_pake_cs_set_hash(psa_pake_cipher_suite_t *cipher_suite, + psa_algorithm_t hash) { - if( !PSA_ALG_IS_HASH( hash ) ) + if (!PSA_ALG_IS_HASH(hash)) { cipher_suite->hash = 0; - else + } else { cipher_suite->hash = hash; + } } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) @@ -1909,26 +1909,24 @@ static inline void psa_pake_cs_set_hash( psa_pake_cipher_suite_t *cipher_suite, /* Note: the format for mbedtls_ecjpake_read/write function has an extra * length byte for each step, plus an extra 3 bytes for ECParameters in the * server's 2nd round. */ -#define MBEDTLS_PSA_PAKE_BUFFER_SIZE ( ( 3 + 1 + 65 + 1 + 65 + 1 + 32 ) * 2 ) +#define MBEDTLS_PSA_PAKE_BUFFER_SIZE ((3 + 1 + 65 + 1 + 65 + 1 + 32) * 2) #endif -struct psa_pake_operation_s -{ +struct psa_pake_operation_s { psa_algorithm_t MBEDTLS_PRIVATE(alg); unsigned int MBEDTLS_PRIVATE(state); unsigned int MBEDTLS_PRIVATE(sequence); #if defined(MBEDTLS_PSA_BUILTIN_PAKE) unsigned int MBEDTLS_PRIVATE(input_step); unsigned int MBEDTLS_PRIVATE(output_step); - uint8_t* MBEDTLS_PRIVATE(password); + uint8_t *MBEDTLS_PRIVATE(password); size_t MBEDTLS_PRIVATE(password_len); psa_pake_role_t MBEDTLS_PRIVATE(role); uint8_t MBEDTLS_PRIVATE(buffer[MBEDTLS_PSA_PAKE_BUFFER_SIZE]); size_t MBEDTLS_PRIVATE(buffer_length); size_t MBEDTLS_PRIVATE(buffer_offset); #endif - union - { + union { #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) mbedtls_ecjpake_context ecjpake; #endif @@ -1937,16 +1935,16 @@ struct psa_pake_operation_s } MBEDTLS_PRIVATE(ctx); }; -static inline struct psa_pake_cipher_suite_s psa_pake_cipher_suite_init( void ) +static inline struct psa_pake_cipher_suite_s psa_pake_cipher_suite_init(void) { const struct psa_pake_cipher_suite_s v = PSA_PAKE_CIPHER_SUITE_INIT; - return( v ); + return v; } -static inline struct psa_pake_operation_s psa_pake_operation_init( void ) +static inline struct psa_pake_operation_s psa_pake_operation_init(void) { const struct psa_pake_operation_s v = PSA_PAKE_OPERATION_INIT; - return( v ); + return v; } #ifdef __cplusplus diff --git a/include/psa/crypto_platform.h b/include/psa/crypto_platform.h index 573b33c85..e8d241bc7 100644 --- a/include/psa/crypto_platform.h +++ b/include/psa/crypto_platform.h @@ -65,10 +65,10 @@ typedef int32_t mbedtls_key_owner_id_t; * * \return Non-zero if the two key owner identifiers are equal, zero otherwise. */ -static inline int mbedtls_key_owner_id_equal( mbedtls_key_owner_id_t id1, - mbedtls_key_owner_id_t id2 ) +static inline int mbedtls_key_owner_id_equal(mbedtls_key_owner_id_t id1, + mbedtls_key_owner_id_t id2) { - return( id1 == id2 ); + return id1 == id2; } #endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ diff --git a/include/psa/crypto_se_driver.h b/include/psa/crypto_se_driver.h index 225fb1763..a0527897c 100644 --- a/include/psa/crypto_se_driver.h +++ b/include/psa/crypto_se_driver.h @@ -323,7 +323,7 @@ typedef psa_status_t (*psa_drv_se_mac_verify_t)(psa_drv_se_context_t *drv_contex typedef struct { /**The size in bytes of the hardware-specific secure element MAC context * structure - */ + */ size_t MBEDTLS_PRIVATE(context_size); /** Function that performs a MAC setup operation */ @@ -815,8 +815,7 @@ typedef struct { /** An enumeration indicating how a key is created. */ -typedef enum -{ +typedef enum { PSA_KEY_CREATION_IMPORT, /**< During psa_import_key() */ PSA_KEY_CREATION_GENERATE, /**< During psa_generate_key() */ PSA_KEY_CREATION_DERIVE, /**< During psa_key_derivation_output_key() */ @@ -1235,7 +1234,7 @@ typedef psa_status_t (*psa_drv_se_key_derivation_collateral_t)(void *op_context, * \retval #PSA_SUCCESS */ typedef psa_status_t (*psa_drv_se_key_derivation_derive_t)(void *op_context, - psa_key_slot_number_t dest_key); + psa_key_slot_number_t dest_key); /** \brief A function that performs the final step of a secure element key * agreement and place the generated key material in a buffer diff --git a/include/psa/crypto_sizes.h b/include/psa/crypto_sizes.h index b42b2df0d..3d6bb2c1e 100644 --- a/include/psa/crypto_sizes.h +++ b/include/psa/crypto_sizes.h @@ -276,7 +276,7 @@ ((alg) & PSA_ALG_MAC_TRUNCATION_MASK ? PSA_MAC_TRUNCATED_LENGTH(alg) : \ PSA_ALG_IS_HMAC(alg) ? PSA_HASH_LENGTH(PSA_ALG_HMAC_GET_HASH(alg)) : \ PSA_ALG_IS_BLOCK_CIPHER_MAC(alg) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ - ((void)(key_type), (void)(key_bits), 0)) + ((void) (key_type), (void) (key_bits), 0)) /** The maximum size of the output of psa_aead_encrypt(), in bytes. * @@ -359,8 +359,8 @@ */ #define PSA_AEAD_DECRYPT_OUTPUT_SIZE(key_type, alg, ciphertext_length) \ (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \ - (ciphertext_length) > PSA_ALG_AEAD_GET_TAG_LENGTH(alg) ? \ - (ciphertext_length) - PSA_ALG_AEAD_GET_TAG_LENGTH(alg) : \ + (ciphertext_length) > PSA_ALG_AEAD_GET_TAG_LENGTH(alg) ? \ + (ciphertext_length) - PSA_ALG_AEAD_GET_TAG_LENGTH(alg) : \ 0) /** A sufficient output buffer size for psa_aead_decrypt(), for any of the @@ -382,7 +382,7 @@ * */ #define PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE(ciphertext_length) \ - (ciphertext_length) + (ciphertext_length) /** The default nonce size for an AEAD algorithm, in bytes. * @@ -411,11 +411,11 @@ */ #define PSA_AEAD_NONCE_LENGTH(key_type, alg) \ (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) == 16 ? \ - MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CCM) ? 13 : \ - MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_GCM) ? 12 : \ - 0 : \ + MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CCM) ? 13 : \ + MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_GCM) ? 12 : \ + 0 : \ (key_type) == PSA_KEY_TYPE_CHACHA20 && \ - MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CHACHA20_POLY1305) ? 12 : \ + MBEDTLS_PSA_ALG_AEAD_EQUAL(alg, PSA_ALG_CHACHA20_POLY1305) ? 12 : \ 0) /** The maximum default nonce size among all supported pairs of key types and @@ -463,9 +463,9 @@ * implementation to delay the output until it has a full block. */ #define PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_length) \ (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 ? \ - PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ - PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), (input_length)) : \ - (input_length) : \ + PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ + PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), (input_length)) : \ + (input_length) : \ 0) /** A sufficient output buffer size for psa_aead_update(), for any of the @@ -504,8 +504,8 @@ */ #define PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg) \ (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \ - PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ - PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ + PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ + PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ 0) /** A sufficient ciphertext buffer size for psa_aead_finish(), for any of the @@ -538,8 +538,8 @@ */ #define PSA_AEAD_VERIFY_OUTPUT_SIZE(key_type, alg) \ (PSA_AEAD_NONCE_LENGTH(key_type, alg) != 0 && \ - PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ - PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ + PSA_ALG_IS_AEAD_ON_BLOCK_CIPHER(alg) ? \ + PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ 0) /** A sufficient plaintext buffer size for psa_aead_verify(), for any of the @@ -591,9 +591,9 @@ * return value is unspecified. */ #define PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg) \ - (PSA_KEY_TYPE_IS_RSA(key_type) ? ((void)alg, PSA_BITS_TO_BYTES(key_bits)) : \ + (PSA_KEY_TYPE_IS_RSA(key_type) ? ((void) alg, PSA_BITS_TO_BYTES(key_bits)) : \ PSA_KEY_TYPE_IS_ECC(key_type) ? PSA_ECDSA_SIGNATURE_SIZE(key_bits) : \ - ((void)alg, 0)) + ((void) alg, 0)) #define PSA_VENDOR_ECDSA_SIGNATURE_MAX_SIZE \ PSA_ECDSA_SIGNATURE_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS) @@ -637,7 +637,7 @@ */ #define PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg) \ (PSA_KEY_TYPE_IS_RSA(key_type) ? \ - ((void)alg, PSA_BITS_TO_BYTES(key_bits)) : \ + ((void) alg, PSA_BITS_TO_BYTES(key_bits)) : \ 0) /** A sufficient output buffer size for psa_asymmetric_encrypt(), for any @@ -992,16 +992,16 @@ */ #define PSA_CIPHER_IV_LENGTH(key_type, alg) \ (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) > 1 && \ - ((alg) == PSA_ALG_CTR || \ - (alg) == PSA_ALG_CFB || \ - (alg) == PSA_ALG_OFB || \ - (alg) == PSA_ALG_XTS || \ - (alg) == PSA_ALG_CBC_NO_PADDING || \ - (alg) == PSA_ALG_CBC_PKCS7) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ + ((alg) == PSA_ALG_CTR || \ + (alg) == PSA_ALG_CFB || \ + (alg) == PSA_ALG_OFB || \ + (alg) == PSA_ALG_XTS || \ + (alg) == PSA_ALG_CBC_NO_PADDING || \ + (alg) == PSA_ALG_CBC_PKCS7) ? PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) : \ (key_type) == PSA_KEY_TYPE_CHACHA20 && \ - (alg) == PSA_ALG_STREAM_CIPHER ? 12 : \ - (alg) == PSA_ALG_CCM_STAR_NO_TAG ? 13 : \ - 0) + (alg) == PSA_ALG_STREAM_CIPHER ? 12 : \ + (alg) == PSA_ALG_CCM_STAR_NO_TAG ? 13 : \ + 0) /** The maximum IV size for all supported cipher algorithms, in bytes. * @@ -1035,12 +1035,12 @@ #define PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_length) \ (alg == PSA_ALG_CBC_PKCS7 ? \ (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) != 0 ? \ - PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), \ - (input_length) + 1) + \ - PSA_CIPHER_IV_LENGTH((key_type), (alg)) : 0) : \ + PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), \ + (input_length) + 1) + \ + PSA_CIPHER_IV_LENGTH((key_type), (alg)) : 0) : \ (PSA_ALG_IS_CIPHER(alg) ? \ (input_length) + PSA_CIPHER_IV_LENGTH((key_type), (alg)) : \ - 0)) + 0)) /** A sufficient output buffer size for psa_cipher_encrypt(), for any of the * supported key types and cipher algorithms. @@ -1116,13 +1116,13 @@ */ #define PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input_length) \ (PSA_ALG_IS_CIPHER(alg) ? \ - (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) != 0 ? \ - (((alg) == PSA_ALG_CBC_PKCS7 || \ - (alg) == PSA_ALG_CBC_NO_PADDING || \ - (alg) == PSA_ALG_ECB_NO_PADDING) ? \ - PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), \ + (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) != 0 ? \ + (((alg) == PSA_ALG_CBC_PKCS7 || \ + (alg) == PSA_ALG_CBC_NO_PADDING || \ + (alg) == PSA_ALG_ECB_NO_PADDING) ? \ + PSA_ROUND_UP_TO_MULTIPLE(PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type), \ input_length) : \ - (input_length)) : 0) : \ + (input_length)) : 0) : \ 0) /** A sufficient output buffer size for psa_cipher_update(), for any of the diff --git a/include/psa/crypto_struct.h b/include/psa/crypto_struct.h index afba32502..7a6caa2ed 100644 --- a/include/psa/crypto_struct.h +++ b/include/psa/crypto_struct.h @@ -79,8 +79,7 @@ extern "C" { * algorithms. */ #include "psa/crypto_driver_contexts_primitives.h" -struct psa_hash_operation_s -{ +struct psa_hash_operation_s { /** Unique ID indicating which driver got assigned to do the * operation. Since driver contexts are driver-specific, swapping * drivers halfway through the operation is not supported. @@ -92,14 +91,13 @@ struct psa_hash_operation_s }; #define PSA_HASH_OPERATION_INIT { 0, { 0 } } -static inline struct psa_hash_operation_s psa_hash_operation_init( void ) +static inline struct psa_hash_operation_s psa_hash_operation_init(void) { const struct psa_hash_operation_s v = PSA_HASH_OPERATION_INIT; - return( v ); + return v; } -struct psa_cipher_operation_s -{ +struct psa_cipher_operation_s { /** Unique ID indicating which driver got assigned to do the * operation. Since driver contexts are driver-specific, swapping * drivers halfway through the operation is not supported. @@ -117,18 +115,17 @@ struct psa_cipher_operation_s }; #define PSA_CIPHER_OPERATION_INIT { 0, 0, 0, 0, { 0 } } -static inline struct psa_cipher_operation_s psa_cipher_operation_init( void ) +static inline struct psa_cipher_operation_s psa_cipher_operation_init(void) { const struct psa_cipher_operation_s v = PSA_CIPHER_OPERATION_INIT; - return( v ); + return v; } /* Include the context definition for the compiled-in drivers for the composite * algorithms. */ #include "psa/crypto_driver_contexts_composites.h" -struct psa_mac_operation_s -{ +struct psa_mac_operation_s { /** Unique ID indicating which driver got assigned to do the * operation. Since driver contexts are driver-specific, swapping * drivers halfway through the operation is not supported. @@ -142,14 +139,13 @@ struct psa_mac_operation_s }; #define PSA_MAC_OPERATION_INIT { 0, 0, 0, { 0 } } -static inline struct psa_mac_operation_s psa_mac_operation_init( void ) +static inline struct psa_mac_operation_s psa_mac_operation_init(void) { const struct psa_mac_operation_s v = PSA_MAC_OPERATION_INIT; - return( v ); + return v; } -struct psa_aead_operation_s -{ +struct psa_aead_operation_s { /** Unique ID indicating which driver got assigned to do the * operation. Since driver contexts are driver-specific, swapping @@ -174,18 +170,17 @@ struct psa_aead_operation_s psa_driver_aead_context_t MBEDTLS_PRIVATE(ctx); }; -#define PSA_AEAD_OPERATION_INIT {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0}} -static inline struct psa_aead_operation_s psa_aead_operation_init( void ) +#define PSA_AEAD_OPERATION_INIT { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, { 0 } } +static inline struct psa_aead_operation_s psa_aead_operation_init(void) { const struct psa_aead_operation_s v = PSA_AEAD_OPERATION_INIT; - return( v ); + return v; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) -typedef struct -{ +typedef struct { uint8_t *MBEDTLS_PRIVATE(info); size_t MBEDTLS_PRIVATE(info_length); #if PSA_HASH_MAX_SIZE > 0xff @@ -203,16 +198,14 @@ typedef struct MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT || MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) -typedef struct -{ +typedef struct { uint8_t MBEDTLS_PRIVATE(data)[PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE]; } psa_tls12_ecjpake_to_pms_t; #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) -typedef enum -{ +typedef enum { PSA_TLS12_PRF_STATE_INIT, /* no input provided */ PSA_TLS12_PRF_STATE_SEED_SET, /* seed has been set */ PSA_TLS12_PRF_STATE_OTHER_KEY_SET, /* other key has been set - optional */ @@ -221,8 +214,7 @@ typedef enum PSA_TLS12_PRF_STATE_OUTPUT /* output has been started */ } psa_tls12_prf_key_derivation_state_t; -typedef struct psa_tls12_prf_key_derivation_s -{ +typedef struct psa_tls12_prf_key_derivation_s { #if PSA_HASH_MAX_SIZE > 0xff #error "PSA_HASH_MAX_SIZE does not fit in uint8_t" #endif @@ -255,22 +247,20 @@ typedef struct psa_tls12_prf_key_derivation_s #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ -struct psa_key_derivation_s -{ +struct psa_key_derivation_s { psa_algorithm_t MBEDTLS_PRIVATE(alg); unsigned int MBEDTLS_PRIVATE(can_output_key) : 1; size_t MBEDTLS_PRIVATE(capacity); - union - { + union { /* Make the union non-empty even with no supported algorithms. */ uint8_t MBEDTLS_PRIVATE(dummy); #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) + defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ + defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) psa_hkdf_key_derivation_t MBEDTLS_PRIVATE(hkdf); #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) + defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) psa_tls12_prf_key_derivation_t MBEDTLS_PRIVATE(tls12_prf); #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) @@ -282,14 +272,13 @@ struct psa_key_derivation_s /* This only zeroes out the first byte in the union, the rest is unspecified. */ #define PSA_KEY_DERIVATION_OPERATION_INIT { 0, 0, 0, { 0 } } static inline struct psa_key_derivation_s psa_key_derivation_operation_init( - void ) + void) { const struct psa_key_derivation_s v = PSA_KEY_DERIVATION_OPERATION_INIT; - return( v ); + return v; } -struct psa_key_policy_s -{ +struct psa_key_policy_s { psa_key_usage_t MBEDTLS_PRIVATE(usage); psa_algorithm_t MBEDTLS_PRIVATE(alg); psa_algorithm_t MBEDTLS_PRIVATE(alg2); @@ -297,10 +286,10 @@ struct psa_key_policy_s typedef struct psa_key_policy_s psa_key_policy_t; #define PSA_KEY_POLICY_INIT { 0, 0, 0 } -static inline struct psa_key_policy_s psa_key_policy_init( void ) +static inline struct psa_key_policy_s psa_key_policy_init(void) { const struct psa_key_policy_s v = PSA_KEY_POLICY_INIT; - return( v ); + return v; } /* The type used internally for key sizes. @@ -308,7 +297,7 @@ static inline struct psa_key_policy_s psa_key_policy_init( void ) typedef uint16_t psa_key_bits_t; /* The maximum value of the type used to represent bit-sizes. * This is used to mark an invalid key size. */ -#define PSA_KEY_BITS_TOO_LARGE ( ( psa_key_bits_t ) -1 ) +#define PSA_KEY_BITS_TOO_LARGE ((psa_key_bits_t) -1) /* The maximum size of a key in bits. * Currently defined as the maximum that can be represented, rounded down * to a whole number of bytes. @@ -326,21 +315,20 @@ typedef uint16_t psa_key_bits_t; typedef uint16_t psa_key_attributes_flag_t; #define MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER \ - ( (psa_key_attributes_flag_t) 0x0001 ) + ((psa_key_attributes_flag_t) 0x0001) /* A mask of key attribute flags used externally only. * Only meant for internal checks inside the library. */ #define MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY ( \ MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER | \ - 0 ) + 0) /* A mask of key attribute flags used both internally and externally. * Currently there aren't any. */ #define MBEDTLS_PSA_KA_MASK_DUAL_USE ( \ - 0 ) + 0) -typedef struct -{ +typedef struct { psa_key_type_t MBEDTLS_PRIVATE(type); psa_key_bits_t MBEDTLS_PRIVATE(bits); psa_key_lifetime_t MBEDTLS_PRIVATE(lifetime); @@ -354,8 +342,7 @@ typedef struct MBEDTLS_SVC_KEY_ID_INIT, \ PSA_KEY_POLICY_INIT, 0 } -struct psa_key_attributes_s -{ +struct psa_key_attributes_s { psa_core_key_attributes_t MBEDTLS_PRIVATE(core); #if defined(MBEDTLS_PSA_CRYPTO_SE_C) psa_key_slot_number_t MBEDTLS_PRIVATE(slot_number); @@ -370,48 +357,46 @@ struct psa_key_attributes_s #define PSA_KEY_ATTRIBUTES_INIT { PSA_CORE_KEY_ATTRIBUTES_INIT, NULL, 0 } #endif -static inline struct psa_key_attributes_s psa_key_attributes_init( void ) +static inline struct psa_key_attributes_s psa_key_attributes_init(void) { const struct psa_key_attributes_s v = PSA_KEY_ATTRIBUTES_INIT; - return( v ); + return v; } -static inline void psa_set_key_id( psa_key_attributes_t *attributes, - mbedtls_svc_key_id_t key ) +static inline void psa_set_key_id(psa_key_attributes_t *attributes, + mbedtls_svc_key_id_t key) { psa_key_lifetime_t lifetime = attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(lifetime); attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(id) = key; - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(lifetime) = PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( PSA_KEY_LIFETIME_PERSISTENT, - PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) ); + PSA_KEY_LIFETIME_GET_LOCATION(lifetime)); } } static inline mbedtls_svc_key_id_t psa_get_key_id( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(id) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(id); } #ifdef MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER -static inline void mbedtls_set_key_owner_id( psa_key_attributes_t *attributes, - mbedtls_key_owner_id_t owner ) +static inline void mbedtls_set_key_owner_id(psa_key_attributes_t *attributes, + mbedtls_key_owner_id_t owner) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(id).MBEDTLS_PRIVATE(owner) = owner; } #endif -static inline void psa_set_key_lifetime( psa_key_attributes_t *attributes, - psa_key_lifetime_t lifetime ) +static inline void psa_set_key_lifetime(psa_key_attributes_t *attributes, + psa_key_lifetime_t lifetime) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(lifetime) = lifetime; - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { #ifdef MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(id).MBEDTLS_PRIVATE(key_id) = 0; #else @@ -421,89 +406,89 @@ static inline void psa_set_key_lifetime( psa_key_attributes_t *attributes, } static inline psa_key_lifetime_t psa_get_key_lifetime( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(lifetime) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(lifetime); } -static inline void psa_extend_key_usage_flags( psa_key_usage_t *usage_flags ) +static inline void psa_extend_key_usage_flags(psa_key_usage_t *usage_flags) { - if( *usage_flags & PSA_KEY_USAGE_SIGN_HASH ) + if (*usage_flags & PSA_KEY_USAGE_SIGN_HASH) { *usage_flags |= PSA_KEY_USAGE_SIGN_MESSAGE; + } - if( *usage_flags & PSA_KEY_USAGE_VERIFY_HASH ) + if (*usage_flags & PSA_KEY_USAGE_VERIFY_HASH) { *usage_flags |= PSA_KEY_USAGE_VERIFY_MESSAGE; + } } static inline void psa_set_key_usage_flags(psa_key_attributes_t *attributes, psa_key_usage_t usage_flags) { - psa_extend_key_usage_flags( &usage_flags ); + psa_extend_key_usage_flags(&usage_flags); attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(usage) = usage_flags; } static inline psa_key_usage_t psa_get_key_usage_flags( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(usage) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(usage); } -static inline void psa_set_key_algorithm( psa_key_attributes_t *attributes, - psa_algorithm_t alg ) +static inline void psa_set_key_algorithm(psa_key_attributes_t *attributes, + psa_algorithm_t alg) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg) = alg; } static inline psa_algorithm_t psa_get_key_algorithm( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(policy).MBEDTLS_PRIVATE(alg); } /* This function is declared in crypto_extra.h, which comes after this * header file, but we need the function here, so repeat the declaration. */ -psa_status_t psa_set_key_domain_parameters( psa_key_attributes_t *attributes, +psa_status_t psa_set_key_domain_parameters(psa_key_attributes_t *attributes, psa_key_type_t type, const uint8_t *data, - size_t data_length ); + size_t data_length); -static inline void psa_set_key_type( psa_key_attributes_t *attributes, - psa_key_type_t type ) +static inline void psa_set_key_type(psa_key_attributes_t *attributes, + psa_key_type_t type) { - if( attributes->MBEDTLS_PRIVATE(domain_parameters) == NULL ) - { + if (attributes->MBEDTLS_PRIVATE(domain_parameters) == NULL) { /* Common case: quick path */ attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(type) = type; - } - else - { + } else { /* Call the bigger function to free the old domain parameters. * Ignore any errors which may arise due to type requiring * non-default domain parameters, since this function can't * report errors. */ - (void) psa_set_key_domain_parameters( attributes, type, NULL, 0 ); + (void) psa_set_key_domain_parameters(attributes, type, NULL, 0); } } static inline psa_key_type_t psa_get_key_type( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(type) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(type); } -static inline void psa_set_key_bits( psa_key_attributes_t *attributes, - size_t bits ) +static inline void psa_set_key_bits(psa_key_attributes_t *attributes, + size_t bits) { - if( bits > PSA_MAX_KEY_BITS ) + if (bits > PSA_MAX_KEY_BITS) { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(bits) = PSA_KEY_BITS_TOO_LARGE; - else + } else { attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(bits) = (psa_key_bits_t) bits; + } } static inline size_t psa_get_key_bits( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - return( attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(bits) ); + return attributes->MBEDTLS_PRIVATE(core).MBEDTLS_PRIVATE(bits); } #ifdef __cplusplus diff --git a/include/psa/crypto_types.h b/include/psa/crypto_types.h index af61aea9d..95bf32fd9 100644 --- a/include/psa/crypto_types.h +++ b/include/psa/crypto_types.h @@ -291,7 +291,7 @@ typedef uint32_t psa_key_id_t; * Any changes to existing values will require bumping the storage * format version and providing a translation when reading the old * format. -*/ + */ #if !defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) typedef psa_key_id_t mbedtls_svc_key_id_t; @@ -301,8 +301,7 @@ typedef psa_key_id_t mbedtls_svc_key_id_t; * client and encodes the client identity in the key identifier argument of * functions such as psa_open_key(). */ -typedef struct -{ +typedef struct { psa_key_id_t MBEDTLS_PRIVATE(key_id); mbedtls_key_owner_id_t MBEDTLS_PRIVATE(owner); } mbedtls_svc_key_id_t; diff --git a/include/psa/crypto_values.h b/include/psa/crypto_values.h index ff50f7e4b..ee95745ad 100644 --- a/include/psa/crypto_values.h +++ b/include/psa/crypto_values.h @@ -353,7 +353,7 @@ * * Zero is not the encoding of any key type. */ -#define PSA_KEY_TYPE_NONE ((psa_key_type_t)0x0000) +#define PSA_KEY_TYPE_NONE ((psa_key_type_t) 0x0000) /** Vendor-defined key type flag. * @@ -362,15 +362,15 @@ * must use an encoding with the #PSA_KEY_TYPE_VENDOR_FLAG bit set and should * respect the bitwise structure used by standard encodings whenever practical. */ -#define PSA_KEY_TYPE_VENDOR_FLAG ((psa_key_type_t)0x8000) +#define PSA_KEY_TYPE_VENDOR_FLAG ((psa_key_type_t) 0x8000) -#define PSA_KEY_TYPE_CATEGORY_MASK ((psa_key_type_t)0x7000) -#define PSA_KEY_TYPE_CATEGORY_RAW ((psa_key_type_t)0x1000) -#define PSA_KEY_TYPE_CATEGORY_SYMMETRIC ((psa_key_type_t)0x2000) -#define PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY ((psa_key_type_t)0x4000) -#define PSA_KEY_TYPE_CATEGORY_KEY_PAIR ((psa_key_type_t)0x7000) +#define PSA_KEY_TYPE_CATEGORY_MASK ((psa_key_type_t) 0x7000) +#define PSA_KEY_TYPE_CATEGORY_RAW ((psa_key_type_t) 0x1000) +#define PSA_KEY_TYPE_CATEGORY_SYMMETRIC ((psa_key_type_t) 0x2000) +#define PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY ((psa_key_type_t) 0x4000) +#define PSA_KEY_TYPE_CATEGORY_KEY_PAIR ((psa_key_type_t) 0x7000) -#define PSA_KEY_TYPE_CATEGORY_FLAG_PAIR ((psa_key_type_t)0x3000) +#define PSA_KEY_TYPE_CATEGORY_FLAG_PAIR ((psa_key_type_t) 0x3000) /** Whether a key type is vendor-defined. * @@ -428,7 +428,7 @@ * * A "key" of this type cannot be used for any cryptographic operation. * Applications may use this type to store arbitrary data in the keystore. */ -#define PSA_KEY_TYPE_RAW_DATA ((psa_key_type_t)0x1001) +#define PSA_KEY_TYPE_RAW_DATA ((psa_key_type_t) 0x1001) /** HMAC key. * @@ -438,7 +438,7 @@ * HMAC keys should generally have the same size as the underlying hash. * This size can be calculated with #PSA_HASH_LENGTH(\c alg) where * \c alg is the HMAC algorithm or the underlying hash algorithm. */ -#define PSA_KEY_TYPE_HMAC ((psa_key_type_t)0x1100) +#define PSA_KEY_TYPE_HMAC ((psa_key_type_t) 0x1100) /** A secret for key derivation. * @@ -451,7 +451,7 @@ * The key policy determines which key derivation algorithm the key * can be used for. */ -#define PSA_KEY_TYPE_DERIVE ((psa_key_type_t)0x1200) +#define PSA_KEY_TYPE_DERIVE ((psa_key_type_t) 0x1200) /** A low-entropy secret for password hashing or key derivation. * @@ -474,7 +474,7 @@ * The key policy determines which key derivation algorithm the key can be * used for, among the permissible subset defined above. */ -#define PSA_KEY_TYPE_PASSWORD ((psa_key_type_t)0x1203) +#define PSA_KEY_TYPE_PASSWORD ((psa_key_type_t) 0x1203) /** A secret value that can be used to verify a password hash. * @@ -482,25 +482,25 @@ * can be used for, among the same permissible subset as for * #PSA_KEY_TYPE_PASSWORD. */ -#define PSA_KEY_TYPE_PASSWORD_HASH ((psa_key_type_t)0x1205) +#define PSA_KEY_TYPE_PASSWORD_HASH ((psa_key_type_t) 0x1205) /** A secret value that can be used in when computing a password hash. * * The key policy determines which key derivation algorithm the key * can be used for, among the subset of algorithms that can use pepper. */ -#define PSA_KEY_TYPE_PEPPER ((psa_key_type_t)0x1206) +#define PSA_KEY_TYPE_PEPPER ((psa_key_type_t) 0x1206) /** Key for a cipher, AEAD or MAC algorithm based on the AES block cipher. * * The size of the key can be 16 bytes (AES-128), 24 bytes (AES-192) or * 32 bytes (AES-256). */ -#define PSA_KEY_TYPE_AES ((psa_key_type_t)0x2400) +#define PSA_KEY_TYPE_AES ((psa_key_type_t) 0x2400) /** Key for a cipher, AEAD or MAC algorithm based on the * ARIA block cipher. */ -#define PSA_KEY_TYPE_ARIA ((psa_key_type_t)0x2406) +#define PSA_KEY_TYPE_ARIA ((psa_key_type_t) 0x2406) /** Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES). * @@ -511,11 +511,11 @@ * deprecated and should only be used to decrypt legacy data. 3-key 3DES * is weak and deprecated and should only be used in legacy protocols. */ -#define PSA_KEY_TYPE_DES ((psa_key_type_t)0x2301) +#define PSA_KEY_TYPE_DES ((psa_key_type_t) 0x2301) /** Key for a cipher, AEAD or MAC algorithm based on the * Camellia block cipher. */ -#define PSA_KEY_TYPE_CAMELLIA ((psa_key_type_t)0x2403) +#define PSA_KEY_TYPE_CAMELLIA ((psa_key_type_t) 0x2403) /** Key for the ChaCha20 stream cipher or the Chacha20-Poly1305 AEAD algorithm. * @@ -528,25 +528,25 @@ * with the initial counter value 1, you can process and discard a * 64-byte block before the real data. */ -#define PSA_KEY_TYPE_CHACHA20 ((psa_key_type_t)0x2004) +#define PSA_KEY_TYPE_CHACHA20 ((psa_key_type_t) 0x2004) /** RSA public key. * * The size of an RSA key is the bit size of the modulus. */ -#define PSA_KEY_TYPE_RSA_PUBLIC_KEY ((psa_key_type_t)0x4001) +#define PSA_KEY_TYPE_RSA_PUBLIC_KEY ((psa_key_type_t) 0x4001) /** RSA key pair (private and public key). * * The size of an RSA key is the bit size of the modulus. */ -#define PSA_KEY_TYPE_RSA_KEY_PAIR ((psa_key_type_t)0x7001) +#define PSA_KEY_TYPE_RSA_KEY_PAIR ((psa_key_type_t) 0x7001) /** Whether a key type is an RSA key (pair or public-only). */ #define PSA_KEY_TYPE_IS_RSA(type) \ (PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type) == PSA_KEY_TYPE_RSA_PUBLIC_KEY) -#define PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE ((psa_key_type_t)0x4100) -#define PSA_KEY_TYPE_ECC_KEY_PAIR_BASE ((psa_key_type_t)0x7100) -#define PSA_KEY_TYPE_ECC_CURVE_MASK ((psa_key_type_t)0x00ff) +#define PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE ((psa_key_type_t) 0x4100) +#define PSA_KEY_TYPE_ECC_KEY_PAIR_BASE ((psa_key_type_t) 0x7100) +#define PSA_KEY_TYPE_ECC_CURVE_MASK ((psa_key_type_t) 0x00ff) /** Elliptic curve key pair. * * The size of an elliptic curve key is the bit size associated with the curve, @@ -586,8 +586,8 @@ /** Extract the curve from an elliptic curve key type. */ #define PSA_KEY_TYPE_ECC_GET_FAMILY(type) \ ((psa_ecc_family_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ - ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \ - 0)) + ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \ + 0)) /** Check if the curve of given family is Weierstrass elliptic curve. */ #define PSA_ECC_FAMILY_IS_WEIERSTRASS(family) ((family & 0xc0) == 0) @@ -681,9 +681,9 @@ */ #define PSA_ECC_FAMILY_TWISTED_EDWARDS ((psa_ecc_family_t) 0x42) -#define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t)0x4200) -#define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t)0x7200) -#define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t)0x00ff) +#define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t) 0x4200) +#define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t) 0x7200) +#define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t) 0x00ff) /** Diffie-Hellman key pair. * * \param group A value of type ::psa_dh_family_t that identifies the @@ -715,8 +715,8 @@ /** Extract the group from a Diffie-Hellman key type. */ #define PSA_KEY_TYPE_DH_GET_FAMILY(type) \ ((psa_dh_family_t) (PSA_KEY_TYPE_IS_DH(type) ? \ - ((type) & PSA_KEY_TYPE_DH_GROUP_MASK) : \ - 0)) + ((type) & PSA_KEY_TYPE_DH_GROUP_MASK) : \ + 0)) /** Diffie-Hellman groups defined in RFC 7919 Appendix A. * @@ -749,7 +749,7 @@ #define PSA_BLOCK_CIPHER_BLOCK_LENGTH(type) \ (((type) & PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_SYMMETRIC ? \ 1u << PSA_GET_KEY_TYPE_BLOCK_SIZE_EXPONENT(type) : \ - 0u) + 0u) /* Note that algorithm values are embedded in the persistent key store, * as part of key metadata. As a consequence, they must not be changed @@ -763,17 +763,17 @@ * the #PSA_ALG_VENDOR_FLAG bit set and should respect the bitwise structure * used by standard encodings whenever practical. */ -#define PSA_ALG_VENDOR_FLAG ((psa_algorithm_t)0x80000000) +#define PSA_ALG_VENDOR_FLAG ((psa_algorithm_t) 0x80000000) -#define PSA_ALG_CATEGORY_MASK ((psa_algorithm_t)0x7f000000) -#define PSA_ALG_CATEGORY_HASH ((psa_algorithm_t)0x02000000) -#define PSA_ALG_CATEGORY_MAC ((psa_algorithm_t)0x03000000) -#define PSA_ALG_CATEGORY_CIPHER ((psa_algorithm_t)0x04000000) -#define PSA_ALG_CATEGORY_AEAD ((psa_algorithm_t)0x05000000) -#define PSA_ALG_CATEGORY_SIGN ((psa_algorithm_t)0x06000000) -#define PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION ((psa_algorithm_t)0x07000000) -#define PSA_ALG_CATEGORY_KEY_DERIVATION ((psa_algorithm_t)0x08000000) -#define PSA_ALG_CATEGORY_KEY_AGREEMENT ((psa_algorithm_t)0x09000000) +#define PSA_ALG_CATEGORY_MASK ((psa_algorithm_t) 0x7f000000) +#define PSA_ALG_CATEGORY_HASH ((psa_algorithm_t) 0x02000000) +#define PSA_ALG_CATEGORY_MAC ((psa_algorithm_t) 0x03000000) +#define PSA_ALG_CATEGORY_CIPHER ((psa_algorithm_t) 0x04000000) +#define PSA_ALG_CATEGORY_AEAD ((psa_algorithm_t) 0x05000000) +#define PSA_ALG_CATEGORY_SIGN ((psa_algorithm_t) 0x06000000) +#define PSA_ALG_CATEGORY_ASYMMETRIC_ENCRYPTION ((psa_algorithm_t) 0x07000000) +#define PSA_ALG_CATEGORY_KEY_DERIVATION ((psa_algorithm_t) 0x08000000) +#define PSA_ALG_CATEGORY_KEY_AGREEMENT ((psa_algorithm_t) 0x09000000) /** Whether an algorithm is vendor-defined. * @@ -896,40 +896,40 @@ #define PSA_ALG_NONE ((psa_algorithm_t)0) /* *INDENT-ON* */ -#define PSA_ALG_HASH_MASK ((psa_algorithm_t)0x000000ff) +#define PSA_ALG_HASH_MASK ((psa_algorithm_t) 0x000000ff) /** MD5 */ -#define PSA_ALG_MD5 ((psa_algorithm_t)0x02000003) +#define PSA_ALG_MD5 ((psa_algorithm_t) 0x02000003) /** PSA_ALG_RIPEMD160 */ -#define PSA_ALG_RIPEMD160 ((psa_algorithm_t)0x02000004) +#define PSA_ALG_RIPEMD160 ((psa_algorithm_t) 0x02000004) /** SHA1 */ -#define PSA_ALG_SHA_1 ((psa_algorithm_t)0x02000005) +#define PSA_ALG_SHA_1 ((psa_algorithm_t) 0x02000005) /** SHA2-224 */ -#define PSA_ALG_SHA_224 ((psa_algorithm_t)0x02000008) +#define PSA_ALG_SHA_224 ((psa_algorithm_t) 0x02000008) /** SHA2-256 */ -#define PSA_ALG_SHA_256 ((psa_algorithm_t)0x02000009) +#define PSA_ALG_SHA_256 ((psa_algorithm_t) 0x02000009) /** SHA2-384 */ -#define PSA_ALG_SHA_384 ((psa_algorithm_t)0x0200000a) +#define PSA_ALG_SHA_384 ((psa_algorithm_t) 0x0200000a) /** SHA2-512 */ -#define PSA_ALG_SHA_512 ((psa_algorithm_t)0x0200000b) +#define PSA_ALG_SHA_512 ((psa_algorithm_t) 0x0200000b) /** SHA2-512/224 */ -#define PSA_ALG_SHA_512_224 ((psa_algorithm_t)0x0200000c) +#define PSA_ALG_SHA_512_224 ((psa_algorithm_t) 0x0200000c) /** SHA2-512/256 */ -#define PSA_ALG_SHA_512_256 ((psa_algorithm_t)0x0200000d) +#define PSA_ALG_SHA_512_256 ((psa_algorithm_t) 0x0200000d) /** SHA3-224 */ -#define PSA_ALG_SHA3_224 ((psa_algorithm_t)0x02000010) +#define PSA_ALG_SHA3_224 ((psa_algorithm_t) 0x02000010) /** SHA3-256 */ -#define PSA_ALG_SHA3_256 ((psa_algorithm_t)0x02000011) +#define PSA_ALG_SHA3_256 ((psa_algorithm_t) 0x02000011) /** SHA3-384 */ -#define PSA_ALG_SHA3_384 ((psa_algorithm_t)0x02000012) +#define PSA_ALG_SHA3_384 ((psa_algorithm_t) 0x02000012) /** SHA3-512 */ -#define PSA_ALG_SHA3_512 ((psa_algorithm_t)0x02000013) +#define PSA_ALG_SHA3_512 ((psa_algorithm_t) 0x02000013) /** The first 512 bits (64 bytes) of the SHAKE256 output. * * This is the prehashing for Ed448ph (see #PSA_ALG_ED448PH). For other * scenarios where a hash function based on SHA3/SHAKE is desired, SHA3-512 * has the same output size and a (theoretically) higher security strength. */ -#define PSA_ALG_SHAKE256_512 ((psa_algorithm_t)0x02000015) +#define PSA_ALG_SHAKE256_512 ((psa_algorithm_t) 0x02000015) /** In a hash-and-sign algorithm policy, allow any hash algorithm. * @@ -964,10 +964,10 @@ * This value may not be used to build an algorithm specification to * perform an operation. It is only valid to build policies. */ -#define PSA_ALG_ANY_HASH ((psa_algorithm_t)0x020000ff) +#define PSA_ALG_ANY_HASH ((psa_algorithm_t) 0x020000ff) -#define PSA_ALG_MAC_SUBCATEGORY_MASK ((psa_algorithm_t)0x00c00000) -#define PSA_ALG_HMAC_BASE ((psa_algorithm_t)0x03800000) +#define PSA_ALG_MAC_SUBCATEGORY_MASK ((psa_algorithm_t) 0x00c00000) +#define PSA_ALG_HMAC_BASE ((psa_algorithm_t) 0x03800000) /** Macro to build an HMAC algorithm. * * For example, #PSA_ALG_HMAC(#PSA_ALG_SHA_256) is HMAC-SHA-256. @@ -1006,7 +1006,7 @@ * reach up to 63; the largest MAC is 64 bytes so its trivial truncation * to full length is correctly encoded as 0 and any non-trivial truncation * is correctly encoded as a value between 1 and 63. */ -#define PSA_ALG_MAC_TRUNCATION_MASK ((psa_algorithm_t)0x003f0000) +#define PSA_ALG_MAC_TRUNCATION_MASK ((psa_algorithm_t) 0x003f0000) #define PSA_MAC_TRUNCATION_OFFSET 16 /* In the encoding of a MAC algorithm, the bit corresponding to @@ -1015,7 +1015,7 @@ * algorithm policy can be used with any algorithm corresponding to the * same base class and having a (potentially truncated) MAC length greater or * equal than the one encoded in #PSA_ALG_MAC_TRUNCATION_MASK. */ -#define PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ((psa_algorithm_t)0x00008000) +#define PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ((psa_algorithm_t) 0x00008000) /** Macro to build a truncated MAC algorithm. * @@ -1110,18 +1110,18 @@ * too large for the specified MAC algorithm. */ #define PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(mac_alg, min_mac_length) \ - ( PSA_ALG_TRUNCATED_MAC(mac_alg, min_mac_length) | \ - PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) + (PSA_ALG_TRUNCATED_MAC(mac_alg, min_mac_length) | \ + PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) -#define PSA_ALG_CIPHER_MAC_BASE ((psa_algorithm_t)0x03c00000) +#define PSA_ALG_CIPHER_MAC_BASE ((psa_algorithm_t) 0x03c00000) /** The CBC-MAC construction over a block cipher * * \warning CBC-MAC is insecure in many cases. * A more secure mode, such as #PSA_ALG_CMAC, is recommended. */ -#define PSA_ALG_CBC_MAC ((psa_algorithm_t)0x03c00100) +#define PSA_ALG_CBC_MAC ((psa_algorithm_t) 0x03c00100) /** The CMAC construction over a block cipher */ -#define PSA_ALG_CMAC ((psa_algorithm_t)0x03c00200) +#define PSA_ALG_CMAC ((psa_algorithm_t) 0x03c00200) /** Whether the specified algorithm is a MAC algorithm based on a block cipher. * @@ -1135,8 +1135,8 @@ (((alg) & (PSA_ALG_CATEGORY_MASK | PSA_ALG_MAC_SUBCATEGORY_MASK)) == \ PSA_ALG_CIPHER_MAC_BASE) -#define PSA_ALG_CIPHER_STREAM_FLAG ((psa_algorithm_t)0x00800000) -#define PSA_ALG_CIPHER_FROM_BLOCK_FLAG ((psa_algorithm_t)0x00400000) +#define PSA_ALG_CIPHER_STREAM_FLAG ((psa_algorithm_t) 0x00800000) +#define PSA_ALG_CIPHER_FROM_BLOCK_FLAG ((psa_algorithm_t) 0x00400000) /** Whether the specified algorithm is a stream cipher. * @@ -1152,14 +1152,14 @@ */ #define PSA_ALG_IS_STREAM_CIPHER(alg) \ (((alg) & (PSA_ALG_CATEGORY_MASK | PSA_ALG_CIPHER_STREAM_FLAG)) == \ - (PSA_ALG_CATEGORY_CIPHER | PSA_ALG_CIPHER_STREAM_FLAG)) + (PSA_ALG_CATEGORY_CIPHER | PSA_ALG_CIPHER_STREAM_FLAG)) /** The stream cipher mode of a stream cipher algorithm. * * The underlying stream cipher is determined by the key type. * - To use ChaCha20, use a key type of #PSA_KEY_TYPE_CHACHA20. */ -#define PSA_ALG_STREAM_CIPHER ((psa_algorithm_t)0x04800100) +#define PSA_ALG_STREAM_CIPHER ((psa_algorithm_t) 0x04800100) /** The CTR stream cipher mode. * @@ -1168,19 +1168,19 @@ * For example, to use AES-128-CTR, use this algorithm with * a key of type #PSA_KEY_TYPE_AES and a length of 128 bits (16 bytes). */ -#define PSA_ALG_CTR ((psa_algorithm_t)0x04c01000) +#define PSA_ALG_CTR ((psa_algorithm_t) 0x04c01000) /** The CFB stream cipher mode. * * The underlying block cipher is determined by the key type. */ -#define PSA_ALG_CFB ((psa_algorithm_t)0x04c01100) +#define PSA_ALG_CFB ((psa_algorithm_t) 0x04c01100) /** The OFB stream cipher mode. * * The underlying block cipher is determined by the key type. */ -#define PSA_ALG_OFB ((psa_algorithm_t)0x04c01200) +#define PSA_ALG_OFB ((psa_algorithm_t) 0x04c01200) /** The XTS cipher mode. * @@ -1188,7 +1188,7 @@ * least one full block of input, but beyond this minimum the input * does not need to be a whole number of blocks. */ -#define PSA_ALG_XTS ((psa_algorithm_t)0x0440ff00) +#define PSA_ALG_XTS ((psa_algorithm_t) 0x0440ff00) /** The Electronic Code Book (ECB) mode of a block cipher, with no padding. * @@ -1208,7 +1208,7 @@ * multi-part cipher operation with this algorithm, psa_cipher_generate_iv() * and psa_cipher_set_iv() must not be called. */ -#define PSA_ALG_ECB_NO_PADDING ((psa_algorithm_t)0x04404400) +#define PSA_ALG_ECB_NO_PADDING ((psa_algorithm_t) 0x04404400) /** The CBC block cipher chaining mode, with no padding. * @@ -1217,7 +1217,7 @@ * This symmetric cipher mode can only be used with messages whose lengths * are whole number of blocks for the chosen block cipher. */ -#define PSA_ALG_CBC_NO_PADDING ((psa_algorithm_t)0x04404000) +#define PSA_ALG_CBC_NO_PADDING ((psa_algorithm_t) 0x04404000) /** The CBC block cipher chaining mode with PKCS#7 padding. * @@ -1225,9 +1225,9 @@ * * This is the padding method defined by PKCS#7 (RFC 2315) §10.3. */ -#define PSA_ALG_CBC_PKCS7 ((psa_algorithm_t)0x04404100) +#define PSA_ALG_CBC_PKCS7 ((psa_algorithm_t) 0x04404100) -#define PSA_ALG_AEAD_FROM_BLOCK_FLAG ((psa_algorithm_t)0x00400000) +#define PSA_ALG_AEAD_FROM_BLOCK_FLAG ((psa_algorithm_t) 0x00400000) /** Whether the specified algorithm is an AEAD mode on a block cipher. * @@ -1246,7 +1246,7 @@ * * The underlying block cipher is determined by the key type. */ -#define PSA_ALG_CCM ((psa_algorithm_t)0x05500100) +#define PSA_ALG_CCM ((psa_algorithm_t) 0x05500100) /** The CCM* cipher mode without authentication. * @@ -1257,13 +1257,13 @@ * * Currently only 13-byte long IV's are supported. */ -#define PSA_ALG_CCM_STAR_NO_TAG ((psa_algorithm_t)0x04c01300) +#define PSA_ALG_CCM_STAR_NO_TAG ((psa_algorithm_t) 0x04c01300) /** The GCM authenticated encryption algorithm. * * The underlying block cipher is determined by the key type. */ -#define PSA_ALG_GCM ((psa_algorithm_t)0x05500200) +#define PSA_ALG_GCM ((psa_algorithm_t) 0x05500200) /** The Chacha20-Poly1305 AEAD algorithm. * @@ -1274,13 +1274,13 @@ * * Implementations must support 16-byte tags and should reject other sizes. */ -#define PSA_ALG_CHACHA20_POLY1305 ((psa_algorithm_t)0x05100500) +#define PSA_ALG_CHACHA20_POLY1305 ((psa_algorithm_t) 0x05100500) /* In the encoding of an AEAD algorithm, the bits corresponding to * PSA_ALG_AEAD_TAG_LENGTH_MASK encode the length of the AEAD tag. * The constants for default lengths follow this encoding. */ -#define PSA_ALG_AEAD_TAG_LENGTH_MASK ((psa_algorithm_t)0x003f0000) +#define PSA_ALG_AEAD_TAG_LENGTH_MASK ((psa_algorithm_t) 0x003f0000) #define PSA_AEAD_TAG_LENGTH_OFFSET 16 /* In the encoding of an AEAD algorithm, the bit corresponding to @@ -1289,7 +1289,7 @@ * algorithm policy can be used with any algorithm corresponding to the * same base class and having a tag length greater than or equal to the one * encoded in #PSA_ALG_AEAD_TAG_LENGTH_MASK. */ -#define PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ((psa_algorithm_t)0x00008000) +#define PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ((psa_algorithm_t) 0x00008000) /** Macro to build a shortened AEAD algorithm. * @@ -1313,7 +1313,7 @@ (((aead_alg) & ~(PSA_ALG_AEAD_TAG_LENGTH_MASK | \ PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG)) | \ ((tag_length) << PSA_AEAD_TAG_LENGTH_OFFSET & \ - PSA_ALG_AEAD_TAG_LENGTH_MASK)) + PSA_ALG_AEAD_TAG_LENGTH_MASK)) /** Retrieve the tag length of a specified AEAD algorithm * @@ -1327,7 +1327,7 @@ */ #define PSA_ALG_AEAD_GET_TAG_LENGTH(aead_alg) \ (((aead_alg) & PSA_ALG_AEAD_TAG_LENGTH_MASK) >> \ - PSA_AEAD_TAG_LENGTH_OFFSET ) + PSA_AEAD_TAG_LENGTH_OFFSET) /** Calculate the corresponding AEAD algorithm with the default tag length. * @@ -1373,10 +1373,10 @@ * or too large for the specified AEAD algorithm. */ #define PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(aead_alg, min_tag_length) \ - ( PSA_ALG_AEAD_WITH_SHORTENED_TAG(aead_alg, min_tag_length) | \ - PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) + (PSA_ALG_AEAD_WITH_SHORTENED_TAG(aead_alg, min_tag_length) | \ + PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) -#define PSA_ALG_RSA_PKCS1V15_SIGN_BASE ((psa_algorithm_t)0x06000200) +#define PSA_ALG_RSA_PKCS1V15_SIGN_BASE ((psa_algorithm_t) 0x06000200) /** RSA PKCS#1 v1.5 signature with hashing. * * This is the signature scheme defined by RFC 8017 @@ -1404,8 +1404,8 @@ #define PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) \ (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_RSA_PKCS1V15_SIGN_BASE) -#define PSA_ALG_RSA_PSS_BASE ((psa_algorithm_t)0x06000300) -#define PSA_ALG_RSA_PSS_ANY_SALT_BASE ((psa_algorithm_t)0x06001300) +#define PSA_ALG_RSA_PSS_BASE ((psa_algorithm_t) 0x06000300) +#define PSA_ALG_RSA_PSS_ANY_SALT_BASE ((psa_algorithm_t) 0x06001300) /** RSA PSS signature with hashing. * * This is the signature scheme defined by RFC 8017 @@ -1494,7 +1494,7 @@ (PSA_ALG_IS_RSA_PSS_STANDARD_SALT(alg) || \ PSA_ALG_IS_RSA_PSS_ANY_SALT(alg)) -#define PSA_ALG_ECDSA_BASE ((psa_algorithm_t)0x06000600) +#define PSA_ALG_ECDSA_BASE ((psa_algorithm_t) 0x06000600) /** ECDSA signature with hashing. * * This is the ECDSA signature scheme defined by ANSI X9.62, @@ -1527,7 +1527,7 @@ * the curve size. */ #define PSA_ALG_ECDSA_ANY PSA_ALG_ECDSA_BASE -#define PSA_ALG_DETERMINISTIC_ECDSA_BASE ((psa_algorithm_t)0x06000700) +#define PSA_ALG_DETERMINISTIC_ECDSA_BASE ((psa_algorithm_t) 0x06000700) /** Deterministic ECDSA signature with hashing. * * This is the deterministic ECDSA signature scheme defined by RFC 6979. @@ -1552,7 +1552,7 @@ */ #define PSA_ALG_DETERMINISTIC_ECDSA(hash_alg) \ (PSA_ALG_DETERMINISTIC_ECDSA_BASE | ((hash_alg) & PSA_ALG_HASH_MASK)) -#define PSA_ALG_ECDSA_DETERMINISTIC_FLAG ((psa_algorithm_t)0x00000100) +#define PSA_ALG_ECDSA_DETERMINISTIC_FLAG ((psa_algorithm_t) 0x00000100) #define PSA_ALG_IS_ECDSA(alg) \ (((alg) & ~PSA_ALG_HASH_MASK & ~PSA_ALG_ECDSA_DETERMINISTIC_FLAG) == \ PSA_ALG_ECDSA_BASE) @@ -1591,9 +1591,9 @@ * RFC 8032 §5.1.6 and §5.2.6 (a 64-byte string for Ed25519, a 114-byte * string for Ed448). */ -#define PSA_ALG_PURE_EDDSA ((psa_algorithm_t)0x06000800) +#define PSA_ALG_PURE_EDDSA ((psa_algorithm_t) 0x06000800) -#define PSA_ALG_HASH_EDDSA_BASE ((psa_algorithm_t)0x06000900) +#define PSA_ALG_HASH_EDDSA_BASE ((psa_algorithm_t) 0x06000900) #define PSA_ALG_IS_HASH_EDDSA(alg) \ (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_HASH_EDDSA_BASE) @@ -1685,7 +1685,7 @@ * supported algorithm identifier. */ #define PSA_ALG_IS_SIGN_MESSAGE(alg) \ - (PSA_ALG_IS_SIGN_HASH(alg) || (alg) == PSA_ALG_PURE_EDDSA ) + (PSA_ALG_IS_SIGN_HASH(alg) || (alg) == PSA_ALG_PURE_EDDSA) /** Whether the specified algorithm is a hash-and-sign algorithm. * @@ -1742,9 +1742,9 @@ /** RSA PKCS#1 v1.5 encryption. */ -#define PSA_ALG_RSA_PKCS1V15_CRYPT ((psa_algorithm_t)0x07000200) +#define PSA_ALG_RSA_PKCS1V15_CRYPT ((psa_algorithm_t) 0x07000200) -#define PSA_ALG_RSA_OAEP_BASE ((psa_algorithm_t)0x07000300) +#define PSA_ALG_RSA_OAEP_BASE ((psa_algorithm_t) 0x07000300) /** RSA OAEP encryption. * * This is the encryption scheme defined by RFC 8017 @@ -1768,7 +1768,7 @@ ((alg) & PSA_ALG_HASH_MASK) | PSA_ALG_CATEGORY_HASH : \ 0) -#define PSA_ALG_HKDF_BASE ((psa_algorithm_t)0x08000100) +#define PSA_ALG_HKDF_BASE ((psa_algorithm_t) 0x08000100) /** Macro to build an HKDF algorithm. * * For example, `PSA_ALG_HKDF(PSA_ALG_SHA_256)` is HKDF using HMAC-SHA-256. @@ -1813,7 +1813,7 @@ #define PSA_ALG_HKDF_GET_HASH(hkdf_alg) \ (PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK)) -#define PSA_ALG_HKDF_EXTRACT_BASE ((psa_algorithm_t)0x08000400) +#define PSA_ALG_HKDF_EXTRACT_BASE ((psa_algorithm_t) 0x08000400) /** Macro to build an HKDF-Extract algorithm. * * For example, `PSA_ALG_HKDF_EXTRACT(PSA_ALG_SHA_256)` is @@ -1862,7 +1862,7 @@ #define PSA_ALG_IS_HKDF_EXTRACT(alg) \ (((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_HKDF_EXTRACT_BASE) -#define PSA_ALG_HKDF_EXPAND_BASE ((psa_algorithm_t)0x08000500) +#define PSA_ALG_HKDF_EXPAND_BASE ((psa_algorithm_t) 0x08000500) /** Macro to build an HKDF-Expand algorithm. * * For example, `PSA_ALG_HKDF_EXPAND(PSA_ALG_SHA_256)` is @@ -1919,7 +1919,7 @@ ((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_HKDF_EXTRACT_BASE || \ ((alg) & ~PSA_ALG_HASH_MASK) == PSA_ALG_HKDF_EXPAND_BASE) -#define PSA_ALG_TLS12_PRF_BASE ((psa_algorithm_t)0x08000200) +#define PSA_ALG_TLS12_PRF_BASE ((psa_algorithm_t) 0x08000200) /** Macro to build a TLS-1.2 PRF algorithm. * * TLS 1.2 uses a custom pseudorandom function (PRF) for key schedule, @@ -1962,7 +1962,7 @@ #define PSA_ALG_TLS12_PRF_GET_HASH(hkdf_alg) \ (PSA_ALG_CATEGORY_HASH | ((hkdf_alg) & PSA_ALG_HASH_MASK)) -#define PSA_ALG_TLS12_PSK_TO_MS_BASE ((psa_algorithm_t)0x08000300) +#define PSA_ALG_TLS12_PSK_TO_MS_BASE ((psa_algorithm_t) 0x08000300) /** Macro to build a TLS-1.2 PSK-to-MasterSecret algorithm. * * In a pure-PSK handshake in TLS 1.2, the master secret is derived @@ -2044,7 +2044,7 @@ * The output has to be read as a single chunk of 32 bytes, defined as * PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE. */ -#define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t)0x08000609) +#define PSA_ALG_TLS12_ECJPAKE_TO_PMS ((psa_algorithm_t) 0x08000609) /* This flag indicates whether the key derivation algorithm is suitable for * use on low-entropy secrets such as password - these algorithms are also @@ -2053,9 +2053,9 @@ * * Those algorithms cannot be combined with a key agreement algorithm. */ -#define PSA_ALG_KEY_DERIVATION_STRETCHING_FLAG ((psa_algorithm_t)0x00800000) +#define PSA_ALG_KEY_DERIVATION_STRETCHING_FLAG ((psa_algorithm_t) 0x00800000) -#define PSA_ALG_PBKDF2_HMAC_BASE ((psa_algorithm_t)0x08800100) +#define PSA_ALG_PBKDF2_HMAC_BASE ((psa_algorithm_t) 0x08800100) /** Macro to build a PBKDF2-HMAC password hashing / key stretching algorithm. * * PBKDF2 is defined by PKCS#5, republished as RFC 8018 (section 5.2). @@ -2105,10 +2105,10 @@ * This key derivation algorithm uses the same inputs as * #PSA_ALG_PBKDF2_HMAC() with the same constraints. */ -#define PSA_ALG_PBKDF2_AES_CMAC_PRF_128 ((psa_algorithm_t)0x08800200) +#define PSA_ALG_PBKDF2_AES_CMAC_PRF_128 ((psa_algorithm_t) 0x08800200) -#define PSA_ALG_KEY_DERIVATION_MASK ((psa_algorithm_t)0xfe00ffff) -#define PSA_ALG_KEY_AGREEMENT_MASK ((psa_algorithm_t)0xffff0000) +#define PSA_ALG_KEY_DERIVATION_MASK ((psa_algorithm_t) 0xfe00ffff) +#define PSA_ALG_KEY_AGREEMENT_MASK ((psa_algorithm_t) 0xffff0000) /** Macro to build a combined algorithm that chains a key agreement with * a key derivation. @@ -2161,7 +2161,7 @@ * It is `ceiling(m / 8)` bytes long where `m` is the size of the prime `p` * in bits. */ -#define PSA_ALG_FFDH ((psa_algorithm_t)0x09010000) +#define PSA_ALG_FFDH ((psa_algorithm_t) 0x09010000) /** Whether the specified algorithm is a finite field Diffie-Hellman algorithm. * @@ -2203,7 +2203,7 @@ * in big-endian byte order. * The bit size is `m` for the field `F_{2^m}`. */ -#define PSA_ALG_ECDH ((psa_algorithm_t)0x09020000) +#define PSA_ALG_ECDH ((psa_algorithm_t) 0x09020000) /** Whether the specified algorithm is an elliptic curve Diffie-Hellman * algorithm. @@ -2254,7 +2254,7 @@ * \return \c 0 if alg is not a composite algorithm that uses a hash. */ #define PSA_ALG_GET_HASH(alg) \ - (((alg) & 0x000000ff) == 0 ? ((psa_algorithm_t)0) : 0x02000000 | ((alg) & 0x000000ff)) + (((alg) & 0x000000ff) == 0 ? ((psa_algorithm_t) 0) : 0x02000000 | ((alg) & 0x000000ff)) /**@}*/ @@ -2278,7 +2278,7 @@ * it must release all the resources associated with the key and erase the * key material if the calling application terminates. */ -#define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t)0x00000000) +#define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t) 0x00000000) /** The default lifetime for persistent keys. * @@ -2292,31 +2292,31 @@ * application. Integrations of Mbed TLS may support other persistent lifetimes. * See ::psa_key_lifetime_t for more information. */ -#define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t)0x00000001) +#define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t) 0x00000001) /** The persistence level of volatile keys. * * See ::psa_key_persistence_t for more information. */ -#define PSA_KEY_PERSISTENCE_VOLATILE ((psa_key_persistence_t)0x00) +#define PSA_KEY_PERSISTENCE_VOLATILE ((psa_key_persistence_t) 0x00) /** The default persistence level for persistent keys. * * See ::psa_key_persistence_t for more information. */ -#define PSA_KEY_PERSISTENCE_DEFAULT ((psa_key_persistence_t)0x01) +#define PSA_KEY_PERSISTENCE_DEFAULT ((psa_key_persistence_t) 0x01) /** A persistence level indicating that a key is never destroyed. * * See ::psa_key_persistence_t for more information. */ -#define PSA_KEY_PERSISTENCE_READ_ONLY ((psa_key_persistence_t)0xff) +#define PSA_KEY_PERSISTENCE_READ_ONLY ((psa_key_persistence_t) 0xff) #define PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) \ - ((psa_key_persistence_t)((lifetime) & 0x000000ff)) + ((psa_key_persistence_t) ((lifetime) & 0x000000ff)) #define PSA_KEY_LIFETIME_GET_LOCATION(lifetime) \ - ((psa_key_location_t)((lifetime) >> 8)) + ((psa_key_location_t) ((lifetime) >> 8)) /** Whether a key lifetime indicates that the key is volatile. * @@ -2378,9 +2378,9 @@ * * See ::psa_key_location_t for more information. */ -#define PSA_KEY_LOCATION_LOCAL_STORAGE ((psa_key_location_t)0x000000) +#define PSA_KEY_LOCATION_LOCAL_STORAGE ((psa_key_location_t) 0x000000) -#define PSA_KEY_LOCATION_VENDOR_FLAG ((psa_key_location_t)0x800000) +#define PSA_KEY_LOCATION_VENDOR_FLAG ((psa_key_location_t) 0x800000) /* Note that key identifier values are embedded in the * persistent key store, as part of key metadata. As a consequence, they @@ -2394,23 +2394,23 @@ /* *INDENT-ON* */ /** The minimum value for a key identifier chosen by the application. */ -#define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000001) +#define PSA_KEY_ID_USER_MIN ((psa_key_id_t) 0x00000001) /** The maximum value for a key identifier chosen by the application. */ -#define PSA_KEY_ID_USER_MAX ((psa_key_id_t)0x3fffffff) +#define PSA_KEY_ID_USER_MAX ((psa_key_id_t) 0x3fffffff) /** The minimum value for a key identifier chosen by the implementation. */ -#define PSA_KEY_ID_VENDOR_MIN ((psa_key_id_t)0x40000000) +#define PSA_KEY_ID_VENDOR_MIN ((psa_key_id_t) 0x40000000) /** The maximum value for a key identifier chosen by the implementation. */ -#define PSA_KEY_ID_VENDOR_MAX ((psa_key_id_t)0x7fffffff) +#define PSA_KEY_ID_VENDOR_MAX ((psa_key_id_t) 0x7fffffff) #if !defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) -#define MBEDTLS_SVC_KEY_ID_INIT ( (psa_key_id_t)0 ) -#define MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) ( id ) -#define MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( id ) ( 0 ) +#define MBEDTLS_SVC_KEY_ID_INIT ((psa_key_id_t) 0) +#define MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id) (id) +#define MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(id) (0) /** Utility to initialize a key identifier at runtime. * @@ -2418,11 +2418,11 @@ * \param key_id Identifier of the key. */ static inline mbedtls_svc_key_id_t mbedtls_svc_key_id_make( - unsigned int unused, psa_key_id_t key_id ) + unsigned int unused, psa_key_id_t key_id) { - (void)unused; + (void) unused; - return( key_id ); + return key_id; } /** Compare two key identifiers. @@ -2432,10 +2432,10 @@ static inline mbedtls_svc_key_id_t mbedtls_svc_key_id_make( * * \return Non-zero if the two key identifier are equal, zero otherwise. */ -static inline int mbedtls_svc_key_id_equal( mbedtls_svc_key_id_t id1, - mbedtls_svc_key_id_t id2 ) +static inline int mbedtls_svc_key_id_equal(mbedtls_svc_key_id_t id1, + mbedtls_svc_key_id_t id2) { - return( id1 == id2 ); + return id1 == id2; } /** Check whether a key identifier is null. @@ -2444,16 +2444,16 @@ static inline int mbedtls_svc_key_id_equal( mbedtls_svc_key_id_t id1, * * \return Non-zero if the key identifier is null, zero otherwise. */ -static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) +static inline int mbedtls_svc_key_id_is_null(mbedtls_svc_key_id_t key) { - return( key == 0 ); + return key == 0; } #else /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ -#define MBEDTLS_SVC_KEY_ID_INIT ( (mbedtls_svc_key_id_t){ 0, 0 } ) -#define MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) ( ( id ).MBEDTLS_PRIVATE(key_id) ) -#define MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( id ) ( ( id ).MBEDTLS_PRIVATE(owner) ) +#define MBEDTLS_SVC_KEY_ID_INIT ((mbedtls_svc_key_id_t){ 0, 0 }) +#define MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id) ((id).MBEDTLS_PRIVATE(key_id)) +#define MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(id) ((id).MBEDTLS_PRIVATE(owner)) /** Utility to initialize a key identifier at runtime. * @@ -2461,10 +2461,10 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * \param key_id Identifier of the key. */ static inline mbedtls_svc_key_id_t mbedtls_svc_key_id_make( - mbedtls_key_owner_id_t owner_id, psa_key_id_t key_id ) + mbedtls_key_owner_id_t owner_id, psa_key_id_t key_id) { - return( (mbedtls_svc_key_id_t){ .MBEDTLS_PRIVATE(key_id) = key_id, - .MBEDTLS_PRIVATE(owner) = owner_id } ); + return (mbedtls_svc_key_id_t){ .MBEDTLS_PRIVATE(key_id) = key_id, + .MBEDTLS_PRIVATE(owner) = owner_id }; } /** Compare two key identifiers. @@ -2474,11 +2474,11 @@ static inline mbedtls_svc_key_id_t mbedtls_svc_key_id_make( * * \return Non-zero if the two key identifier are equal, zero otherwise. */ -static inline int mbedtls_svc_key_id_equal( mbedtls_svc_key_id_t id1, - mbedtls_svc_key_id_t id2 ) +static inline int mbedtls_svc_key_id_equal(mbedtls_svc_key_id_t id1, + mbedtls_svc_key_id_t id2) { - return( ( id1.MBEDTLS_PRIVATE(key_id) == id2.MBEDTLS_PRIVATE(key_id) ) && - mbedtls_key_owner_id_equal( id1.MBEDTLS_PRIVATE(owner), id2.MBEDTLS_PRIVATE(owner) ) ); + return (id1.MBEDTLS_PRIVATE(key_id) == id2.MBEDTLS_PRIVATE(key_id)) && + mbedtls_key_owner_id_equal(id1.MBEDTLS_PRIVATE(owner), id2.MBEDTLS_PRIVATE(owner)); } /** Check whether a key identifier is null. @@ -2487,9 +2487,9 @@ static inline int mbedtls_svc_key_id_equal( mbedtls_svc_key_id_t id1, * * \return Non-zero if the key identifier is null, zero otherwise. */ -static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) +static inline int mbedtls_svc_key_id_is_null(mbedtls_svc_key_id_t key) { - return( key.MBEDTLS_PRIVATE(key_id) == 0 ); + return key.MBEDTLS_PRIVATE(key_id) == 0; } #endif /* !MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */ @@ -2516,7 +2516,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * The key may however be exportable in a wrapped form, i.e. in a form * where it is encrypted by another key. */ -#define PSA_KEY_USAGE_EXPORT ((psa_key_usage_t)0x00000001) +#define PSA_KEY_USAGE_EXPORT ((psa_key_usage_t) 0x00000001) /** Whether the key may be copied. * @@ -2532,7 +2532,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * #PSA_KEY_LIFETIME_PERSISTENT, the usage flag #PSA_KEY_USAGE_COPY * is sufficient to permit the copy. */ -#define PSA_KEY_USAGE_COPY ((psa_key_usage_t)0x00000002) +#define PSA_KEY_USAGE_COPY ((psa_key_usage_t) 0x00000002) /** Whether the key may be used to encrypt a message. * @@ -2543,7 +2543,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the public key. */ -#define PSA_KEY_USAGE_ENCRYPT ((psa_key_usage_t)0x00000100) +#define PSA_KEY_USAGE_ENCRYPT ((psa_key_usage_t) 0x00000100) /** Whether the key may be used to decrypt a message. * @@ -2554,7 +2554,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the private key. */ -#define PSA_KEY_USAGE_DECRYPT ((psa_key_usage_t)0x00000200) +#define PSA_KEY_USAGE_DECRYPT ((psa_key_usage_t) 0x00000200) /** Whether the key may be used to sign a message. * @@ -2564,7 +2564,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the private key. */ -#define PSA_KEY_USAGE_SIGN_MESSAGE ((psa_key_usage_t)0x00000400) +#define PSA_KEY_USAGE_SIGN_MESSAGE ((psa_key_usage_t) 0x00000400) /** Whether the key may be used to verify a message. * @@ -2574,7 +2574,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the public key. */ -#define PSA_KEY_USAGE_VERIFY_MESSAGE ((psa_key_usage_t)0x00000800) +#define PSA_KEY_USAGE_VERIFY_MESSAGE ((psa_key_usage_t) 0x00000800) /** Whether the key may be used to sign a message. * @@ -2584,7 +2584,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the private key. */ -#define PSA_KEY_USAGE_SIGN_HASH ((psa_key_usage_t)0x00001000) +#define PSA_KEY_USAGE_SIGN_HASH ((psa_key_usage_t) 0x00001000) /** Whether the key may be used to verify a message signature. * @@ -2594,7 +2594,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * * For a key pair, this concerns the public key. */ -#define PSA_KEY_USAGE_VERIFY_HASH ((psa_key_usage_t)0x00002000) +#define PSA_KEY_USAGE_VERIFY_HASH ((psa_key_usage_t) 0x00002000) /** Whether the key may be used to derive other keys or produce a password * hash. @@ -2608,7 +2608,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * permits calling psa_key_derivation_output_bytes() or * psa_key_derivation_output_key() at the end of the operation. */ -#define PSA_KEY_USAGE_DERIVE ((psa_key_usage_t)0x00004000) +#define PSA_KEY_USAGE_DERIVE ((psa_key_usage_t) 0x00004000) /** Whether the key may be used to verify the result of a key derivation, * including password hashing. @@ -2623,7 +2623,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * permits calling psa_key_derivation_verify_bytes() or * psa_key_derivation_verify_key() at the end of the operation. */ -#define PSA_KEY_USAGE_VERIFY_DERIVATION ((psa_key_usage_t)0x00008000) +#define PSA_KEY_USAGE_VERIFY_DERIVATION ((psa_key_usage_t) 0x00008000) /**@}*/ @@ -2649,7 +2649,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * psa_key_derivation_verify_key(), but not * psa_key_derivation_output_key(). */ -#define PSA_KEY_DERIVATION_INPUT_SECRET ((psa_key_derivation_step_t)0x0101) +#define PSA_KEY_DERIVATION_INPUT_SECRET ((psa_key_derivation_step_t) 0x0101) /** A low-entropy secret input for password hashing / key stretching. * @@ -2667,7 +2667,7 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * psa_key_derivation_verify_key(), but not * psa_key_derivation_output_key(). */ -#define PSA_KEY_DERIVATION_INPUT_PASSWORD ((psa_key_derivation_step_t)0x0102) +#define PSA_KEY_DERIVATION_INPUT_PASSWORD ((psa_key_derivation_step_t) 0x0102) /** A high-entropy additional secret input for key derivation. * @@ -2677,14 +2677,14 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * a direct input passed to `psa_key_derivation_input_bytes()`. */ #define PSA_KEY_DERIVATION_INPUT_OTHER_SECRET \ - ((psa_key_derivation_step_t)0x0103) + ((psa_key_derivation_step_t) 0x0103) /** A label for key derivation. * * This should be a direct input. * It can also be a key of type #PSA_KEY_TYPE_RAW_DATA. */ -#define PSA_KEY_DERIVATION_INPUT_LABEL ((psa_key_derivation_step_t)0x0201) +#define PSA_KEY_DERIVATION_INPUT_LABEL ((psa_key_derivation_step_t) 0x0201) /** A salt for key derivation. * @@ -2692,27 +2692,27 @@ static inline int mbedtls_svc_key_id_is_null( mbedtls_svc_key_id_t key ) * It can also be a key of type #PSA_KEY_TYPE_RAW_DATA or * #PSA_KEY_TYPE_PEPPER. */ -#define PSA_KEY_DERIVATION_INPUT_SALT ((psa_key_derivation_step_t)0x0202) +#define PSA_KEY_DERIVATION_INPUT_SALT ((psa_key_derivation_step_t) 0x0202) /** An information string for key derivation. * * This should be a direct input. * It can also be a key of type #PSA_KEY_TYPE_RAW_DATA. */ -#define PSA_KEY_DERIVATION_INPUT_INFO ((psa_key_derivation_step_t)0x0203) +#define PSA_KEY_DERIVATION_INPUT_INFO ((psa_key_derivation_step_t) 0x0203) /** A seed for key derivation. * * This should be a direct input. * It can also be a key of type #PSA_KEY_TYPE_RAW_DATA. */ -#define PSA_KEY_DERIVATION_INPUT_SEED ((psa_key_derivation_step_t)0x0204) +#define PSA_KEY_DERIVATION_INPUT_SEED ((psa_key_derivation_step_t) 0x0204) /** A cost parameter for password hashing / key stretching. * * This must be a direct input, passed to psa_key_derivation_input_integer(). */ -#define PSA_KEY_DERIVATION_INPUT_COST ((psa_key_derivation_step_t)0x0205) +#define PSA_KEY_DERIVATION_INPUT_COST ((psa_key_derivation_step_t) 0x0205) /**@}*/ diff --git a/library/aes.c b/library/aes.c index 56dc5cf25..566e74715 100644 --- a/library/aes.c +++ b/library/aes.c @@ -45,7 +45,7 @@ #if !defined(MBEDTLS_AES_ALT) #if defined(MBEDTLS_PADLOCK_C) && \ - ( defined(MBEDTLS_HAVE_X86) || defined(MBEDTLS_PADLOCK_ALIGN16) ) + (defined(MBEDTLS_HAVE_X86) || defined(MBEDTLS_PADLOCK_ALIGN16)) static int aes_padlock_ace = -1; #endif @@ -94,86 +94,86 @@ static const unsigned char FSb[256] = */ #define FT \ \ - V(A5,63,63,C6), V(84,7C,7C,F8), V(99,77,77,EE), V(8D,7B,7B,F6), \ - V(0D,F2,F2,FF), V(BD,6B,6B,D6), V(B1,6F,6F,DE), V(54,C5,C5,91), \ - V(50,30,30,60), V(03,01,01,02), V(A9,67,67,CE), V(7D,2B,2B,56), \ - V(19,FE,FE,E7), V(62,D7,D7,B5), V(E6,AB,AB,4D), V(9A,76,76,EC), \ - V(45,CA,CA,8F), V(9D,82,82,1F), V(40,C9,C9,89), V(87,7D,7D,FA), \ - V(15,FA,FA,EF), V(EB,59,59,B2), V(C9,47,47,8E), V(0B,F0,F0,FB), \ - V(EC,AD,AD,41), V(67,D4,D4,B3), V(FD,A2,A2,5F), V(EA,AF,AF,45), \ - V(BF,9C,9C,23), V(F7,A4,A4,53), V(96,72,72,E4), V(5B,C0,C0,9B), \ - V(C2,B7,B7,75), V(1C,FD,FD,E1), V(AE,93,93,3D), V(6A,26,26,4C), \ - V(5A,36,36,6C), V(41,3F,3F,7E), V(02,F7,F7,F5), V(4F,CC,CC,83), \ - V(5C,34,34,68), V(F4,A5,A5,51), V(34,E5,E5,D1), V(08,F1,F1,F9), \ - V(93,71,71,E2), V(73,D8,D8,AB), V(53,31,31,62), V(3F,15,15,2A), \ - V(0C,04,04,08), V(52,C7,C7,95), V(65,23,23,46), V(5E,C3,C3,9D), \ - V(28,18,18,30), V(A1,96,96,37), V(0F,05,05,0A), V(B5,9A,9A,2F), \ - V(09,07,07,0E), V(36,12,12,24), V(9B,80,80,1B), V(3D,E2,E2,DF), \ - V(26,EB,EB,CD), V(69,27,27,4E), V(CD,B2,B2,7F), V(9F,75,75,EA), \ - V(1B,09,09,12), V(9E,83,83,1D), V(74,2C,2C,58), V(2E,1A,1A,34), \ - V(2D,1B,1B,36), V(B2,6E,6E,DC), V(EE,5A,5A,B4), V(FB,A0,A0,5B), \ - V(F6,52,52,A4), V(4D,3B,3B,76), V(61,D6,D6,B7), V(CE,B3,B3,7D), \ - V(7B,29,29,52), V(3E,E3,E3,DD), V(71,2F,2F,5E), V(97,84,84,13), \ - V(F5,53,53,A6), V(68,D1,D1,B9), V(00,00,00,00), V(2C,ED,ED,C1), \ - V(60,20,20,40), V(1F,FC,FC,E3), V(C8,B1,B1,79), V(ED,5B,5B,B6), \ - V(BE,6A,6A,D4), V(46,CB,CB,8D), V(D9,BE,BE,67), V(4B,39,39,72), \ - V(DE,4A,4A,94), V(D4,4C,4C,98), V(E8,58,58,B0), V(4A,CF,CF,85), \ - V(6B,D0,D0,BB), V(2A,EF,EF,C5), V(E5,AA,AA,4F), V(16,FB,FB,ED), \ - V(C5,43,43,86), V(D7,4D,4D,9A), V(55,33,33,66), V(94,85,85,11), \ - V(CF,45,45,8A), V(10,F9,F9,E9), V(06,02,02,04), V(81,7F,7F,FE), \ - V(F0,50,50,A0), V(44,3C,3C,78), V(BA,9F,9F,25), V(E3,A8,A8,4B), \ - V(F3,51,51,A2), V(FE,A3,A3,5D), V(C0,40,40,80), V(8A,8F,8F,05), \ - V(AD,92,92,3F), V(BC,9D,9D,21), V(48,38,38,70), V(04,F5,F5,F1), \ - V(DF,BC,BC,63), V(C1,B6,B6,77), V(75,DA,DA,AF), V(63,21,21,42), \ - V(30,10,10,20), V(1A,FF,FF,E5), V(0E,F3,F3,FD), V(6D,D2,D2,BF), \ - V(4C,CD,CD,81), V(14,0C,0C,18), V(35,13,13,26), V(2F,EC,EC,C3), \ - V(E1,5F,5F,BE), V(A2,97,97,35), V(CC,44,44,88), V(39,17,17,2E), \ - V(57,C4,C4,93), V(F2,A7,A7,55), V(82,7E,7E,FC), V(47,3D,3D,7A), \ - V(AC,64,64,C8), V(E7,5D,5D,BA), V(2B,19,19,32), V(95,73,73,E6), \ - V(A0,60,60,C0), V(98,81,81,19), V(D1,4F,4F,9E), V(7F,DC,DC,A3), \ - V(66,22,22,44), V(7E,2A,2A,54), V(AB,90,90,3B), V(83,88,88,0B), \ - V(CA,46,46,8C), V(29,EE,EE,C7), V(D3,B8,B8,6B), V(3C,14,14,28), \ - V(79,DE,DE,A7), V(E2,5E,5E,BC), V(1D,0B,0B,16), V(76,DB,DB,AD), \ - V(3B,E0,E0,DB), V(56,32,32,64), V(4E,3A,3A,74), V(1E,0A,0A,14), \ - V(DB,49,49,92), V(0A,06,06,0C), V(6C,24,24,48), V(E4,5C,5C,B8), \ - V(5D,C2,C2,9F), V(6E,D3,D3,BD), V(EF,AC,AC,43), V(A6,62,62,C4), \ - V(A8,91,91,39), V(A4,95,95,31), V(37,E4,E4,D3), V(8B,79,79,F2), \ - V(32,E7,E7,D5), V(43,C8,C8,8B), V(59,37,37,6E), V(B7,6D,6D,DA), \ - V(8C,8D,8D,01), V(64,D5,D5,B1), V(D2,4E,4E,9C), V(E0,A9,A9,49), \ - V(B4,6C,6C,D8), V(FA,56,56,AC), V(07,F4,F4,F3), V(25,EA,EA,CF), \ - V(AF,65,65,CA), V(8E,7A,7A,F4), V(E9,AE,AE,47), V(18,08,08,10), \ - V(D5,BA,BA,6F), V(88,78,78,F0), V(6F,25,25,4A), V(72,2E,2E,5C), \ - V(24,1C,1C,38), V(F1,A6,A6,57), V(C7,B4,B4,73), V(51,C6,C6,97), \ - V(23,E8,E8,CB), V(7C,DD,DD,A1), V(9C,74,74,E8), V(21,1F,1F,3E), \ - V(DD,4B,4B,96), V(DC,BD,BD,61), V(86,8B,8B,0D), V(85,8A,8A,0F), \ - V(90,70,70,E0), V(42,3E,3E,7C), V(C4,B5,B5,71), V(AA,66,66,CC), \ - V(D8,48,48,90), V(05,03,03,06), V(01,F6,F6,F7), V(12,0E,0E,1C), \ - V(A3,61,61,C2), V(5F,35,35,6A), V(F9,57,57,AE), V(D0,B9,B9,69), \ - V(91,86,86,17), V(58,C1,C1,99), V(27,1D,1D,3A), V(B9,9E,9E,27), \ - V(38,E1,E1,D9), V(13,F8,F8,EB), V(B3,98,98,2B), V(33,11,11,22), \ - V(BB,69,69,D2), V(70,D9,D9,A9), V(89,8E,8E,07), V(A7,94,94,33), \ - V(B6,9B,9B,2D), V(22,1E,1E,3C), V(92,87,87,15), V(20,E9,E9,C9), \ - V(49,CE,CE,87), V(FF,55,55,AA), V(78,28,28,50), V(7A,DF,DF,A5), \ - V(8F,8C,8C,03), V(F8,A1,A1,59), V(80,89,89,09), V(17,0D,0D,1A), \ - V(DA,BF,BF,65), V(31,E6,E6,D7), V(C6,42,42,84), V(B8,68,68,D0), \ - V(C3,41,41,82), V(B0,99,99,29), V(77,2D,2D,5A), V(11,0F,0F,1E), \ - V(CB,B0,B0,7B), V(FC,54,54,A8), V(D6,BB,BB,6D), V(3A,16,16,2C) + V(A5, 63, 63, C6), V(84, 7C, 7C, F8), V(99, 77, 77, EE), V(8D, 7B, 7B, F6), \ + V(0D, F2, F2, FF), V(BD, 6B, 6B, D6), V(B1, 6F, 6F, DE), V(54, C5, C5, 91), \ + V(50, 30, 30, 60), V(03, 01, 01, 02), V(A9, 67, 67, CE), V(7D, 2B, 2B, 56), \ + V(19, FE, FE, E7), V(62, D7, D7, B5), V(E6, AB, AB, 4D), V(9A, 76, 76, EC), \ + V(45, CA, CA, 8F), V(9D, 82, 82, 1F), V(40, C9, C9, 89), V(87, 7D, 7D, FA), \ + V(15, FA, FA, EF), V(EB, 59, 59, B2), V(C9, 47, 47, 8E), V(0B, F0, F0, FB), \ + V(EC, AD, AD, 41), V(67, D4, D4, B3), V(FD, A2, A2, 5F), V(EA, AF, AF, 45), \ + V(BF, 9C, 9C, 23), V(F7, A4, A4, 53), V(96, 72, 72, E4), V(5B, C0, C0, 9B), \ + V(C2, B7, B7, 75), V(1C, FD, FD, E1), V(AE, 93, 93, 3D), V(6A, 26, 26, 4C), \ + V(5A, 36, 36, 6C), V(41, 3F, 3F, 7E), V(02, F7, F7, F5), V(4F, CC, CC, 83), \ + V(5C, 34, 34, 68), V(F4, A5, A5, 51), V(34, E5, E5, D1), V(08, F1, F1, F9), \ + V(93, 71, 71, E2), V(73, D8, D8, AB), V(53, 31, 31, 62), V(3F, 15, 15, 2A), \ + V(0C, 04, 04, 08), V(52, C7, C7, 95), V(65, 23, 23, 46), V(5E, C3, C3, 9D), \ + V(28, 18, 18, 30), V(A1, 96, 96, 37), V(0F, 05, 05, 0A), V(B5, 9A, 9A, 2F), \ + V(09, 07, 07, 0E), V(36, 12, 12, 24), V(9B, 80, 80, 1B), V(3D, E2, E2, DF), \ + V(26, EB, EB, CD), V(69, 27, 27, 4E), V(CD, B2, B2, 7F), V(9F, 75, 75, EA), \ + V(1B, 09, 09, 12), V(9E, 83, 83, 1D), V(74, 2C, 2C, 58), V(2E, 1A, 1A, 34), \ + V(2D, 1B, 1B, 36), V(B2, 6E, 6E, DC), V(EE, 5A, 5A, B4), V(FB, A0, A0, 5B), \ + V(F6, 52, 52, A4), V(4D, 3B, 3B, 76), V(61, D6, D6, B7), V(CE, B3, B3, 7D), \ + V(7B, 29, 29, 52), V(3E, E3, E3, DD), V(71, 2F, 2F, 5E), V(97, 84, 84, 13), \ + V(F5, 53, 53, A6), V(68, D1, D1, B9), V(00, 00, 00, 00), V(2C, ED, ED, C1), \ + V(60, 20, 20, 40), V(1F, FC, FC, E3), V(C8, B1, B1, 79), V(ED, 5B, 5B, B6), \ + V(BE, 6A, 6A, D4), V(46, CB, CB, 8D), V(D9, BE, BE, 67), V(4B, 39, 39, 72), \ + V(DE, 4A, 4A, 94), V(D4, 4C, 4C, 98), V(E8, 58, 58, B0), V(4A, CF, CF, 85), \ + V(6B, D0, D0, BB), V(2A, EF, EF, C5), V(E5, AA, AA, 4F), V(16, FB, FB, ED), \ + V(C5, 43, 43, 86), V(D7, 4D, 4D, 9A), V(55, 33, 33, 66), V(94, 85, 85, 11), \ + V(CF, 45, 45, 8A), V(10, F9, F9, E9), V(06, 02, 02, 04), V(81, 7F, 7F, FE), \ + V(F0, 50, 50, A0), V(44, 3C, 3C, 78), V(BA, 9F, 9F, 25), V(E3, A8, A8, 4B), \ + V(F3, 51, 51, A2), V(FE, A3, A3, 5D), V(C0, 40, 40, 80), V(8A, 8F, 8F, 05), \ + V(AD, 92, 92, 3F), V(BC, 9D, 9D, 21), V(48, 38, 38, 70), V(04, F5, F5, F1), \ + V(DF, BC, BC, 63), V(C1, B6, B6, 77), V(75, DA, DA, AF), V(63, 21, 21, 42), \ + V(30, 10, 10, 20), V(1A, FF, FF, E5), V(0E, F3, F3, FD), V(6D, D2, D2, BF), \ + V(4C, CD, CD, 81), V(14, 0C, 0C, 18), V(35, 13, 13, 26), V(2F, EC, EC, C3), \ + V(E1, 5F, 5F, BE), V(A2, 97, 97, 35), V(CC, 44, 44, 88), V(39, 17, 17, 2E), \ + V(57, C4, C4, 93), V(F2, A7, A7, 55), V(82, 7E, 7E, FC), V(47, 3D, 3D, 7A), \ + V(AC, 64, 64, C8), V(E7, 5D, 5D, BA), V(2B, 19, 19, 32), V(95, 73, 73, E6), \ + V(A0, 60, 60, C0), V(98, 81, 81, 19), V(D1, 4F, 4F, 9E), V(7F, DC, DC, A3), \ + V(66, 22, 22, 44), V(7E, 2A, 2A, 54), V(AB, 90, 90, 3B), V(83, 88, 88, 0B), \ + V(CA, 46, 46, 8C), V(29, EE, EE, C7), V(D3, B8, B8, 6B), V(3C, 14, 14, 28), \ + V(79, DE, DE, A7), V(E2, 5E, 5E, BC), V(1D, 0B, 0B, 16), V(76, DB, DB, AD), \ + V(3B, E0, E0, DB), V(56, 32, 32, 64), V(4E, 3A, 3A, 74), V(1E, 0A, 0A, 14), \ + V(DB, 49, 49, 92), V(0A, 06, 06, 0C), V(6C, 24, 24, 48), V(E4, 5C, 5C, B8), \ + V(5D, C2, C2, 9F), V(6E, D3, D3, BD), V(EF, AC, AC, 43), V(A6, 62, 62, C4), \ + V(A8, 91, 91, 39), V(A4, 95, 95, 31), V(37, E4, E4, D3), V(8B, 79, 79, F2), \ + V(32, E7, E7, D5), V(43, C8, C8, 8B), V(59, 37, 37, 6E), V(B7, 6D, 6D, DA), \ + V(8C, 8D, 8D, 01), V(64, D5, D5, B1), V(D2, 4E, 4E, 9C), V(E0, A9, A9, 49), \ + V(B4, 6C, 6C, D8), V(FA, 56, 56, AC), V(07, F4, F4, F3), V(25, EA, EA, CF), \ + V(AF, 65, 65, CA), V(8E, 7A, 7A, F4), V(E9, AE, AE, 47), V(18, 08, 08, 10), \ + V(D5, BA, BA, 6F), V(88, 78, 78, F0), V(6F, 25, 25, 4A), V(72, 2E, 2E, 5C), \ + V(24, 1C, 1C, 38), V(F1, A6, A6, 57), V(C7, B4, B4, 73), V(51, C6, C6, 97), \ + V(23, E8, E8, CB), V(7C, DD, DD, A1), V(9C, 74, 74, E8), V(21, 1F, 1F, 3E), \ + V(DD, 4B, 4B, 96), V(DC, BD, BD, 61), V(86, 8B, 8B, 0D), V(85, 8A, 8A, 0F), \ + V(90, 70, 70, E0), V(42, 3E, 3E, 7C), V(C4, B5, B5, 71), V(AA, 66, 66, CC), \ + V(D8, 48, 48, 90), V(05, 03, 03, 06), V(01, F6, F6, F7), V(12, 0E, 0E, 1C), \ + V(A3, 61, 61, C2), V(5F, 35, 35, 6A), V(F9, 57, 57, AE), V(D0, B9, B9, 69), \ + V(91, 86, 86, 17), V(58, C1, C1, 99), V(27, 1D, 1D, 3A), V(B9, 9E, 9E, 27), \ + V(38, E1, E1, D9), V(13, F8, F8, EB), V(B3, 98, 98, 2B), V(33, 11, 11, 22), \ + V(BB, 69, 69, D2), V(70, D9, D9, A9), V(89, 8E, 8E, 07), V(A7, 94, 94, 33), \ + V(B6, 9B, 9B, 2D), V(22, 1E, 1E, 3C), V(92, 87, 87, 15), V(20, E9, E9, C9), \ + V(49, CE, CE, 87), V(FF, 55, 55, AA), V(78, 28, 28, 50), V(7A, DF, DF, A5), \ + V(8F, 8C, 8C, 03), V(F8, A1, A1, 59), V(80, 89, 89, 09), V(17, 0D, 0D, 1A), \ + V(DA, BF, BF, 65), V(31, E6, E6, D7), V(C6, 42, 42, 84), V(B8, 68, 68, D0), \ + V(C3, 41, 41, 82), V(B0, 99, 99, 29), V(77, 2D, 2D, 5A), V(11, 0F, 0F, 1E), \ + V(CB, B0, B0, 7B), V(FC, 54, 54, A8), V(D6, BB, BB, 6D), V(3A, 16, 16, 2C) -#define V(a,b,c,d) 0x##a##b##c##d +#define V(a, b, c, d) 0x##a##b##c##d static const uint32_t FT0[256] = { FT }; #undef V #if !defined(MBEDTLS_AES_FEWER_TABLES) -#define V(a,b,c,d) 0x##b##c##d##a +#define V(a, b, c, d) 0x##b##c##d##a static const uint32_t FT1[256] = { FT }; #undef V -#define V(a,b,c,d) 0x##c##d##a##b +#define V(a, b, c, d) 0x##c##d##a##b static const uint32_t FT2[256] = { FT }; #undef V -#define V(a,b,c,d) 0x##d##a##b##c +#define V(a, b, c, d) 0x##d##a##b##c static const uint32_t FT3[256] = { FT }; #undef V @@ -225,86 +225,86 @@ static const unsigned char RSb[256] = */ #define RT \ \ - V(50,A7,F4,51), V(53,65,41,7E), V(C3,A4,17,1A), V(96,5E,27,3A), \ - V(CB,6B,AB,3B), V(F1,45,9D,1F), V(AB,58,FA,AC), V(93,03,E3,4B), \ - V(55,FA,30,20), V(F6,6D,76,AD), V(91,76,CC,88), V(25,4C,02,F5), \ - V(FC,D7,E5,4F), V(D7,CB,2A,C5), V(80,44,35,26), V(8F,A3,62,B5), \ - V(49,5A,B1,DE), V(67,1B,BA,25), V(98,0E,EA,45), V(E1,C0,FE,5D), \ - V(02,75,2F,C3), V(12,F0,4C,81), V(A3,97,46,8D), V(C6,F9,D3,6B), \ - V(E7,5F,8F,03), V(95,9C,92,15), V(EB,7A,6D,BF), V(DA,59,52,95), \ - V(2D,83,BE,D4), V(D3,21,74,58), V(29,69,E0,49), V(44,C8,C9,8E), \ - V(6A,89,C2,75), V(78,79,8E,F4), V(6B,3E,58,99), V(DD,71,B9,27), \ - V(B6,4F,E1,BE), V(17,AD,88,F0), V(66,AC,20,C9), V(B4,3A,CE,7D), \ - V(18,4A,DF,63), V(82,31,1A,E5), V(60,33,51,97), V(45,7F,53,62), \ - V(E0,77,64,B1), V(84,AE,6B,BB), V(1C,A0,81,FE), V(94,2B,08,F9), \ - V(58,68,48,70), V(19,FD,45,8F), V(87,6C,DE,94), V(B7,F8,7B,52), \ - V(23,D3,73,AB), V(E2,02,4B,72), V(57,8F,1F,E3), V(2A,AB,55,66), \ - V(07,28,EB,B2), V(03,C2,B5,2F), V(9A,7B,C5,86), V(A5,08,37,D3), \ - V(F2,87,28,30), V(B2,A5,BF,23), V(BA,6A,03,02), V(5C,82,16,ED), \ - V(2B,1C,CF,8A), V(92,B4,79,A7), V(F0,F2,07,F3), V(A1,E2,69,4E), \ - V(CD,F4,DA,65), V(D5,BE,05,06), V(1F,62,34,D1), V(8A,FE,A6,C4), \ - V(9D,53,2E,34), V(A0,55,F3,A2), V(32,E1,8A,05), V(75,EB,F6,A4), \ - V(39,EC,83,0B), V(AA,EF,60,40), V(06,9F,71,5E), V(51,10,6E,BD), \ - V(F9,8A,21,3E), V(3D,06,DD,96), V(AE,05,3E,DD), V(46,BD,E6,4D), \ - V(B5,8D,54,91), V(05,5D,C4,71), V(6F,D4,06,04), V(FF,15,50,60), \ - V(24,FB,98,19), V(97,E9,BD,D6), V(CC,43,40,89), V(77,9E,D9,67), \ - V(BD,42,E8,B0), V(88,8B,89,07), V(38,5B,19,E7), V(DB,EE,C8,79), \ - V(47,0A,7C,A1), V(E9,0F,42,7C), V(C9,1E,84,F8), V(00,00,00,00), \ - V(83,86,80,09), V(48,ED,2B,32), V(AC,70,11,1E), V(4E,72,5A,6C), \ - V(FB,FF,0E,FD), V(56,38,85,0F), V(1E,D5,AE,3D), V(27,39,2D,36), \ - V(64,D9,0F,0A), V(21,A6,5C,68), V(D1,54,5B,9B), V(3A,2E,36,24), \ - V(B1,67,0A,0C), V(0F,E7,57,93), V(D2,96,EE,B4), V(9E,91,9B,1B), \ - V(4F,C5,C0,80), V(A2,20,DC,61), V(69,4B,77,5A), V(16,1A,12,1C), \ - V(0A,BA,93,E2), V(E5,2A,A0,C0), V(43,E0,22,3C), V(1D,17,1B,12), \ - V(0B,0D,09,0E), V(AD,C7,8B,F2), V(B9,A8,B6,2D), V(C8,A9,1E,14), \ - V(85,19,F1,57), V(4C,07,75,AF), V(BB,DD,99,EE), V(FD,60,7F,A3), \ - V(9F,26,01,F7), V(BC,F5,72,5C), V(C5,3B,66,44), V(34,7E,FB,5B), \ - V(76,29,43,8B), V(DC,C6,23,CB), V(68,FC,ED,B6), V(63,F1,E4,B8), \ - V(CA,DC,31,D7), V(10,85,63,42), V(40,22,97,13), V(20,11,C6,84), \ - V(7D,24,4A,85), V(F8,3D,BB,D2), V(11,32,F9,AE), V(6D,A1,29,C7), \ - V(4B,2F,9E,1D), V(F3,30,B2,DC), V(EC,52,86,0D), V(D0,E3,C1,77), \ - V(6C,16,B3,2B), V(99,B9,70,A9), V(FA,48,94,11), V(22,64,E9,47), \ - V(C4,8C,FC,A8), V(1A,3F,F0,A0), V(D8,2C,7D,56), V(EF,90,33,22), \ - V(C7,4E,49,87), V(C1,D1,38,D9), V(FE,A2,CA,8C), V(36,0B,D4,98), \ - V(CF,81,F5,A6), V(28,DE,7A,A5), V(26,8E,B7,DA), V(A4,BF,AD,3F), \ - V(E4,9D,3A,2C), V(0D,92,78,50), V(9B,CC,5F,6A), V(62,46,7E,54), \ - V(C2,13,8D,F6), V(E8,B8,D8,90), V(5E,F7,39,2E), V(F5,AF,C3,82), \ - V(BE,80,5D,9F), V(7C,93,D0,69), V(A9,2D,D5,6F), V(B3,12,25,CF), \ - V(3B,99,AC,C8), V(A7,7D,18,10), V(6E,63,9C,E8), V(7B,BB,3B,DB), \ - V(09,78,26,CD), V(F4,18,59,6E), V(01,B7,9A,EC), V(A8,9A,4F,83), \ - V(65,6E,95,E6), V(7E,E6,FF,AA), V(08,CF,BC,21), V(E6,E8,15,EF), \ - V(D9,9B,E7,BA), V(CE,36,6F,4A), V(D4,09,9F,EA), V(D6,7C,B0,29), \ - V(AF,B2,A4,31), V(31,23,3F,2A), V(30,94,A5,C6), V(C0,66,A2,35), \ - V(37,BC,4E,74), V(A6,CA,82,FC), V(B0,D0,90,E0), V(15,D8,A7,33), \ - V(4A,98,04,F1), V(F7,DA,EC,41), V(0E,50,CD,7F), V(2F,F6,91,17), \ - V(8D,D6,4D,76), V(4D,B0,EF,43), V(54,4D,AA,CC), V(DF,04,96,E4), \ - V(E3,B5,D1,9E), V(1B,88,6A,4C), V(B8,1F,2C,C1), V(7F,51,65,46), \ - V(04,EA,5E,9D), V(5D,35,8C,01), V(73,74,87,FA), V(2E,41,0B,FB), \ - V(5A,1D,67,B3), V(52,D2,DB,92), V(33,56,10,E9), V(13,47,D6,6D), \ - V(8C,61,D7,9A), V(7A,0C,A1,37), V(8E,14,F8,59), V(89,3C,13,EB), \ - V(EE,27,A9,CE), V(35,C9,61,B7), V(ED,E5,1C,E1), V(3C,B1,47,7A), \ - V(59,DF,D2,9C), V(3F,73,F2,55), V(79,CE,14,18), V(BF,37,C7,73), \ - V(EA,CD,F7,53), V(5B,AA,FD,5F), V(14,6F,3D,DF), V(86,DB,44,78), \ - V(81,F3,AF,CA), V(3E,C4,68,B9), V(2C,34,24,38), V(5F,40,A3,C2), \ - V(72,C3,1D,16), V(0C,25,E2,BC), V(8B,49,3C,28), V(41,95,0D,FF), \ - V(71,01,A8,39), V(DE,B3,0C,08), V(9C,E4,B4,D8), V(90,C1,56,64), \ - V(61,84,CB,7B), V(70,B6,32,D5), V(74,5C,6C,48), V(42,57,B8,D0) + V(50, A7, F4, 51), V(53, 65, 41, 7E), V(C3, A4, 17, 1A), V(96, 5E, 27, 3A), \ + V(CB, 6B, AB, 3B), V(F1, 45, 9D, 1F), V(AB, 58, FA, AC), V(93, 03, E3, 4B), \ + V(55, FA, 30, 20), V(F6, 6D, 76, AD), V(91, 76, CC, 88), V(25, 4C, 02, F5), \ + V(FC, D7, E5, 4F), V(D7, CB, 2A, C5), V(80, 44, 35, 26), V(8F, A3, 62, B5), \ + V(49, 5A, B1, DE), V(67, 1B, BA, 25), V(98, 0E, EA, 45), V(E1, C0, FE, 5D), \ + V(02, 75, 2F, C3), V(12, F0, 4C, 81), V(A3, 97, 46, 8D), V(C6, F9, D3, 6B), \ + V(E7, 5F, 8F, 03), V(95, 9C, 92, 15), V(EB, 7A, 6D, BF), V(DA, 59, 52, 95), \ + V(2D, 83, BE, D4), V(D3, 21, 74, 58), V(29, 69, E0, 49), V(44, C8, C9, 8E), \ + V(6A, 89, C2, 75), V(78, 79, 8E, F4), V(6B, 3E, 58, 99), V(DD, 71, B9, 27), \ + V(B6, 4F, E1, BE), V(17, AD, 88, F0), V(66, AC, 20, C9), V(B4, 3A, CE, 7D), \ + V(18, 4A, DF, 63), V(82, 31, 1A, E5), V(60, 33, 51, 97), V(45, 7F, 53, 62), \ + V(E0, 77, 64, B1), V(84, AE, 6B, BB), V(1C, A0, 81, FE), V(94, 2B, 08, F9), \ + V(58, 68, 48, 70), V(19, FD, 45, 8F), V(87, 6C, DE, 94), V(B7, F8, 7B, 52), \ + V(23, D3, 73, AB), V(E2, 02, 4B, 72), V(57, 8F, 1F, E3), V(2A, AB, 55, 66), \ + V(07, 28, EB, B2), V(03, C2, B5, 2F), V(9A, 7B, C5, 86), V(A5, 08, 37, D3), \ + V(F2, 87, 28, 30), V(B2, A5, BF, 23), V(BA, 6A, 03, 02), V(5C, 82, 16, ED), \ + V(2B, 1C, CF, 8A), V(92, B4, 79, A7), V(F0, F2, 07, F3), V(A1, E2, 69, 4E), \ + V(CD, F4, DA, 65), V(D5, BE, 05, 06), V(1F, 62, 34, D1), V(8A, FE, A6, C4), \ + V(9D, 53, 2E, 34), V(A0, 55, F3, A2), V(32, E1, 8A, 05), V(75, EB, F6, A4), \ + V(39, EC, 83, 0B), V(AA, EF, 60, 40), V(06, 9F, 71, 5E), V(51, 10, 6E, BD), \ + V(F9, 8A, 21, 3E), V(3D, 06, DD, 96), V(AE, 05, 3E, DD), V(46, BD, E6, 4D), \ + V(B5, 8D, 54, 91), V(05, 5D, C4, 71), V(6F, D4, 06, 04), V(FF, 15, 50, 60), \ + V(24, FB, 98, 19), V(97, E9, BD, D6), V(CC, 43, 40, 89), V(77, 9E, D9, 67), \ + V(BD, 42, E8, B0), V(88, 8B, 89, 07), V(38, 5B, 19, E7), V(DB, EE, C8, 79), \ + V(47, 0A, 7C, A1), V(E9, 0F, 42, 7C), V(C9, 1E, 84, F8), V(00, 00, 00, 00), \ + V(83, 86, 80, 09), V(48, ED, 2B, 32), V(AC, 70, 11, 1E), V(4E, 72, 5A, 6C), \ + V(FB, FF, 0E, FD), V(56, 38, 85, 0F), V(1E, D5, AE, 3D), V(27, 39, 2D, 36), \ + V(64, D9, 0F, 0A), V(21, A6, 5C, 68), V(D1, 54, 5B, 9B), V(3A, 2E, 36, 24), \ + V(B1, 67, 0A, 0C), V(0F, E7, 57, 93), V(D2, 96, EE, B4), V(9E, 91, 9B, 1B), \ + V(4F, C5, C0, 80), V(A2, 20, DC, 61), V(69, 4B, 77, 5A), V(16, 1A, 12, 1C), \ + V(0A, BA, 93, E2), V(E5, 2A, A0, C0), V(43, E0, 22, 3C), V(1D, 17, 1B, 12), \ + V(0B, 0D, 09, 0E), V(AD, C7, 8B, F2), V(B9, A8, B6, 2D), V(C8, A9, 1E, 14), \ + V(85, 19, F1, 57), V(4C, 07, 75, AF), V(BB, DD, 99, EE), V(FD, 60, 7F, A3), \ + V(9F, 26, 01, F7), V(BC, F5, 72, 5C), V(C5, 3B, 66, 44), V(34, 7E, FB, 5B), \ + V(76, 29, 43, 8B), V(DC, C6, 23, CB), V(68, FC, ED, B6), V(63, F1, E4, B8), \ + V(CA, DC, 31, D7), V(10, 85, 63, 42), V(40, 22, 97, 13), V(20, 11, C6, 84), \ + V(7D, 24, 4A, 85), V(F8, 3D, BB, D2), V(11, 32, F9, AE), V(6D, A1, 29, C7), \ + V(4B, 2F, 9E, 1D), V(F3, 30, B2, DC), V(EC, 52, 86, 0D), V(D0, E3, C1, 77), \ + V(6C, 16, B3, 2B), V(99, B9, 70, A9), V(FA, 48, 94, 11), V(22, 64, E9, 47), \ + V(C4, 8C, FC, A8), V(1A, 3F, F0, A0), V(D8, 2C, 7D, 56), V(EF, 90, 33, 22), \ + V(C7, 4E, 49, 87), V(C1, D1, 38, D9), V(FE, A2, CA, 8C), V(36, 0B, D4, 98), \ + V(CF, 81, F5, A6), V(28, DE, 7A, A5), V(26, 8E, B7, DA), V(A4, BF, AD, 3F), \ + V(E4, 9D, 3A, 2C), V(0D, 92, 78, 50), V(9B, CC, 5F, 6A), V(62, 46, 7E, 54), \ + V(C2, 13, 8D, F6), V(E8, B8, D8, 90), V(5E, F7, 39, 2E), V(F5, AF, C3, 82), \ + V(BE, 80, 5D, 9F), V(7C, 93, D0, 69), V(A9, 2D, D5, 6F), V(B3, 12, 25, CF), \ + V(3B, 99, AC, C8), V(A7, 7D, 18, 10), V(6E, 63, 9C, E8), V(7B, BB, 3B, DB), \ + V(09, 78, 26, CD), V(F4, 18, 59, 6E), V(01, B7, 9A, EC), V(A8, 9A, 4F, 83), \ + V(65, 6E, 95, E6), V(7E, E6, FF, AA), V(08, CF, BC, 21), V(E6, E8, 15, EF), \ + V(D9, 9B, E7, BA), V(CE, 36, 6F, 4A), V(D4, 09, 9F, EA), V(D6, 7C, B0, 29), \ + V(AF, B2, A4, 31), V(31, 23, 3F, 2A), V(30, 94, A5, C6), V(C0, 66, A2, 35), \ + V(37, BC, 4E, 74), V(A6, CA, 82, FC), V(B0, D0, 90, E0), V(15, D8, A7, 33), \ + V(4A, 98, 04, F1), V(F7, DA, EC, 41), V(0E, 50, CD, 7F), V(2F, F6, 91, 17), \ + V(8D, D6, 4D, 76), V(4D, B0, EF, 43), V(54, 4D, AA, CC), V(DF, 04, 96, E4), \ + V(E3, B5, D1, 9E), V(1B, 88, 6A, 4C), V(B8, 1F, 2C, C1), V(7F, 51, 65, 46), \ + V(04, EA, 5E, 9D), V(5D, 35, 8C, 01), V(73, 74, 87, FA), V(2E, 41, 0B, FB), \ + V(5A, 1D, 67, B3), V(52, D2, DB, 92), V(33, 56, 10, E9), V(13, 47, D6, 6D), \ + V(8C, 61, D7, 9A), V(7A, 0C, A1, 37), V(8E, 14, F8, 59), V(89, 3C, 13, EB), \ + V(EE, 27, A9, CE), V(35, C9, 61, B7), V(ED, E5, 1C, E1), V(3C, B1, 47, 7A), \ + V(59, DF, D2, 9C), V(3F, 73, F2, 55), V(79, CE, 14, 18), V(BF, 37, C7, 73), \ + V(EA, CD, F7, 53), V(5B, AA, FD, 5F), V(14, 6F, 3D, DF), V(86, DB, 44, 78), \ + V(81, F3, AF, CA), V(3E, C4, 68, B9), V(2C, 34, 24, 38), V(5F, 40, A3, C2), \ + V(72, C3, 1D, 16), V(0C, 25, E2, BC), V(8B, 49, 3C, 28), V(41, 95, 0D, FF), \ + V(71, 01, A8, 39), V(DE, B3, 0C, 08), V(9C, E4, B4, D8), V(90, C1, 56, 64), \ + V(61, 84, CB, 7B), V(70, B6, 32, D5), V(74, 5C, 6C, 48), V(42, 57, B8, D0) -#define V(a,b,c,d) 0x##a##b##c##d +#define V(a, b, c, d) 0x##a##b##c##d static const uint32_t RT0[256] = { RT }; #undef V #if !defined(MBEDTLS_AES_FEWER_TABLES) -#define V(a,b,c,d) 0x##b##c##d##a +#define V(a, b, c, d) 0x##b##c##d##a static const uint32_t RT1[256] = { RT }; #undef V -#define V(a,b,c,d) 0x##c##d##a##b +#define V(a, b, c, d) 0x##c##d##a##b static const uint32_t RT2[256] = { RT }; #undef V -#define V(a,b,c,d) 0x##d##a##b##c +#define V(a, b, c, d) 0x##d##a##b##c static const uint32_t RT3[256] = { RT }; #undef V @@ -354,13 +354,13 @@ static uint32_t RCON[10]; /* * Tables generation code */ -#define ROTL8(x) ( ( (x) << 8 ) & 0xFFFFFFFF ) | ( (x) >> 24 ) -#define XTIME(x) ( ( (x) << 1 ) ^ ( ( (x) & 0x80 ) ? 0x1B : 0x00 ) ) -#define MUL(x,y) ( ( (x) && (y) ) ? pow[(log[(x)]+log[(y)]) % 255] : 0 ) +#define ROTL8(x) (((x) << 8) & 0xFFFFFFFF) | ((x) >> 24) +#define XTIME(x) (((x) << 1) ^ (((x) & 0x80) ? 0x1B : 0x00)) +#define MUL(x, y) (((x) && (y)) ? pow[(log[(x)]+log[(y)]) % 255] : 0) static int aes_init_done = 0; -static void aes_gen_tables( void ) +static void aes_gen_tables(void) { int i, x, y, z; int pow[256]; @@ -369,20 +369,18 @@ static void aes_gen_tables( void ) /* * compute pow and log tables over GF(2^8) */ - for( i = 0, x = 1; i < 256; i++ ) - { + for (i = 0, x = 1; i < 256; i++) { pow[i] = x; log[x] = i; - x = MBEDTLS_BYTE_0( x ^ XTIME( x ) ); + x = MBEDTLS_BYTE_0(x ^ XTIME(x)); } /* * calculate the round constants */ - for( i = 0, x = 1; i < 10; i++ ) - { + for (i = 0, x = 1; i < 10; i++) { RCON[i] = (uint32_t) x; - x = MBEDTLS_BYTE_0( XTIME( x ) ); + x = MBEDTLS_BYTE_0(XTIME(x)); } /* @@ -391,14 +389,13 @@ static void aes_gen_tables( void ) FSb[0x00] = 0x63; RSb[0x63] = 0x00; - for( i = 1; i < 256; i++ ) - { + for (i = 1; i < 256; i++) { x = pow[255 - log[i]]; - y = x; y = MBEDTLS_BYTE_0( ( y << 1 ) | ( y >> 7 ) ); - x ^= y; y = MBEDTLS_BYTE_0( ( y << 1 ) | ( y >> 7 ) ); - x ^= y; y = MBEDTLS_BYTE_0( ( y << 1 ) | ( y >> 7 ) ); - x ^= y; y = MBEDTLS_BYTE_0( ( y << 1 ) | ( y >> 7 ) ); + y = x; y = MBEDTLS_BYTE_0((y << 1) | (y >> 7)); + x ^= y; y = MBEDTLS_BYTE_0((y << 1) | (y >> 7)); + x ^= y; y = MBEDTLS_BYTE_0((y << 1) | (y >> 7)); + x ^= y; y = MBEDTLS_BYTE_0((y << 1) | (y >> 7)); x ^= y ^ 0x63; FSb[i] = (unsigned char) x; @@ -408,34 +405,33 @@ static void aes_gen_tables( void ) /* * generate the forward and reverse tables */ - for( i = 0; i < 256; i++ ) - { + for (i = 0; i < 256; i++) { x = FSb[i]; - y = MBEDTLS_BYTE_0( XTIME( x ) ); - z = MBEDTLS_BYTE_0( y ^ x ); + y = MBEDTLS_BYTE_0(XTIME(x)); + z = MBEDTLS_BYTE_0(y ^ x); - FT0[i] = ( (uint32_t) y ) ^ - ( (uint32_t) x << 8 ) ^ - ( (uint32_t) x << 16 ) ^ - ( (uint32_t) z << 24 ); + FT0[i] = ((uint32_t) y) ^ + ((uint32_t) x << 8) ^ + ((uint32_t) x << 16) ^ + ((uint32_t) z << 24); #if !defined(MBEDTLS_AES_FEWER_TABLES) - FT1[i] = ROTL8( FT0[i] ); - FT2[i] = ROTL8( FT1[i] ); - FT3[i] = ROTL8( FT2[i] ); + FT1[i] = ROTL8(FT0[i]); + FT2[i] = ROTL8(FT1[i]); + FT3[i] = ROTL8(FT2[i]); #endif /* !MBEDTLS_AES_FEWER_TABLES */ x = RSb[i]; - RT0[i] = ( (uint32_t) MUL( 0x0E, x ) ) ^ - ( (uint32_t) MUL( 0x09, x ) << 8 ) ^ - ( (uint32_t) MUL( 0x0D, x ) << 16 ) ^ - ( (uint32_t) MUL( 0x0B, x ) << 24 ); + RT0[i] = ((uint32_t) MUL(0x0E, x)) ^ + ((uint32_t) MUL(0x09, x) << 8) ^ + ((uint32_t) MUL(0x0D, x) << 16) ^ + ((uint32_t) MUL(0x0B, x) << 24); #if !defined(MBEDTLS_AES_FEWER_TABLES) - RT1[i] = ROTL8( RT0[i] ); - RT2[i] = ROTL8( RT1[i] ); - RT3[i] = ROTL8( RT2[i] ); + RT1[i] = ROTL8(RT0[i]); + RT2[i] = ROTL8(RT1[i]); + RT3[i] = ROTL8(RT2[i]); #endif /* !MBEDTLS_AES_FEWER_TABLES */ } } @@ -446,19 +442,19 @@ static void aes_gen_tables( void ) #if defined(MBEDTLS_AES_FEWER_TABLES) -#define ROTL8(x) ( (uint32_t)( ( x ) << 8 ) + (uint32_t)( ( x ) >> 24 ) ) -#define ROTL16(x) ( (uint32_t)( ( x ) << 16 ) + (uint32_t)( ( x ) >> 16 ) ) -#define ROTL24(x) ( (uint32_t)( ( x ) << 24 ) + (uint32_t)( ( x ) >> 8 ) ) +#define ROTL8(x) ((uint32_t) ((x) << 8) + (uint32_t) ((x) >> 24)) +#define ROTL16(x) ((uint32_t) ((x) << 16) + (uint32_t) ((x) >> 16)) +#define ROTL24(x) ((uint32_t) ((x) << 24) + (uint32_t) ((x) >> 8)) #define AES_RT0(idx) RT0[idx] -#define AES_RT1(idx) ROTL8( RT0[idx] ) -#define AES_RT2(idx) ROTL16( RT0[idx] ) -#define AES_RT3(idx) ROTL24( RT0[idx] ) +#define AES_RT1(idx) ROTL8(RT0[idx]) +#define AES_RT2(idx) ROTL16(RT0[idx]) +#define AES_RT3(idx) ROTL24(RT0[idx]) #define AES_FT0(idx) FT0[idx] -#define AES_FT1(idx) ROTL8( FT0[idx] ) -#define AES_FT2(idx) ROTL16( FT0[idx] ) -#define AES_FT3(idx) ROTL24( FT0[idx] ) +#define AES_FT1(idx) ROTL8(FT0[idx]) +#define AES_FT2(idx) ROTL16(FT0[idx]) +#define AES_FT3(idx) ROTL24(FT0[idx]) #else /* MBEDTLS_AES_FEWER_TABLES */ @@ -474,33 +470,35 @@ static void aes_gen_tables( void ) #endif /* MBEDTLS_AES_FEWER_TABLES */ -void mbedtls_aes_init( mbedtls_aes_context *ctx ) +void mbedtls_aes_init(mbedtls_aes_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_aes_context ) ); + memset(ctx, 0, sizeof(mbedtls_aes_context)); } -void mbedtls_aes_free( mbedtls_aes_context *ctx ) +void mbedtls_aes_free(mbedtls_aes_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_aes_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_aes_context)); } #if defined(MBEDTLS_CIPHER_MODE_XTS) -void mbedtls_aes_xts_init( mbedtls_aes_xts_context *ctx ) +void mbedtls_aes_xts_init(mbedtls_aes_xts_context *ctx) { - mbedtls_aes_init( &ctx->crypt ); - mbedtls_aes_init( &ctx->tweak ); + mbedtls_aes_init(&ctx->crypt); + mbedtls_aes_init(&ctx->tweak); } -void mbedtls_aes_xts_free( mbedtls_aes_xts_context *ctx ) +void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_aes_free( &ctx->crypt ); - mbedtls_aes_free( &ctx->tweak ); + mbedtls_aes_free(&ctx->crypt); + mbedtls_aes_free(&ctx->tweak); } #endif /* MBEDTLS_CIPHER_MODE_XTS */ @@ -508,23 +506,21 @@ void mbedtls_aes_xts_free( mbedtls_aes_xts_context *ctx ) * AES key schedule (encryption) */ #if !defined(MBEDTLS_AES_SETKEY_ENC_ALT) -int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, - unsigned int keybits ) +int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx, const unsigned char *key, + unsigned int keybits) { unsigned int i; uint32_t *RK; - switch( keybits ) - { + switch (keybits) { case 128: ctx->nr = 10; break; case 192: ctx->nr = 12; break; case 256: ctx->nr = 14; break; - default : return( MBEDTLS_ERR_AES_INVALID_KEY_LENGTH ); + default: return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH; } #if !defined(MBEDTLS_AES_ROM_TABLES) - if( aes_init_done == 0 ) - { + if (aes_init_done == 0) { aes_gen_tables(); aes_init_done = 1; } @@ -532,35 +528,35 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, ctx->rk_offset = 0; #if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_PADLOCK_ALIGN16) - if( aes_padlock_ace == -1 ) - aes_padlock_ace = mbedtls_padlock_has_support( MBEDTLS_PADLOCK_ACE ); + if (aes_padlock_ace == -1) { + aes_padlock_ace = mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE); + } - if( aes_padlock_ace ) - ctx->rk_offset = MBEDTLS_PADLOCK_ALIGN16( ctx->buf ) - ctx->buf; + if (aes_padlock_ace) { + ctx->rk_offset = MBEDTLS_PADLOCK_ALIGN16(ctx->buf) - ctx->buf; + } #endif RK = ctx->buf + ctx->rk_offset; #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) - if( mbedtls_aesni_has_support( MBEDTLS_AESNI_AES ) ) - return( mbedtls_aesni_setkey_enc( (unsigned char *) RK, key, keybits ) ); + if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) { + return mbedtls_aesni_setkey_enc((unsigned char *) RK, key, keybits); + } #endif - for( i = 0; i < ( keybits >> 5 ); i++ ) - { - RK[i] = MBEDTLS_GET_UINT32_LE( key, i << 2 ); + for (i = 0; i < (keybits >> 5); i++) { + RK[i] = MBEDTLS_GET_UINT32_LE(key, i << 2); } - switch( ctx->nr ) - { + switch (ctx->nr) { case 10: - for( i = 0; i < 10; i++, RK += 4 ) - { + for (i = 0; i < 10; i++, RK += 4) { RK[4] = RK[0] ^ RCON[i] ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( RK[3] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( RK[3] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( RK[3] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( RK[3] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_1(RK[3])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(RK[3])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(RK[3])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_0(RK[3])] << 24); RK[5] = RK[1] ^ RK[4]; RK[6] = RK[2] ^ RK[5]; @@ -570,13 +566,12 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, case 12: - for( i = 0; i < 8; i++, RK += 6 ) - { + for (i = 0; i < 8; i++, RK += 6) { RK[6] = RK[0] ^ RCON[i] ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( RK[5] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( RK[5] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( RK[5] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( RK[5] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_1(RK[5])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(RK[5])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(RK[5])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_0(RK[5])] << 24); RK[7] = RK[1] ^ RK[6]; RK[8] = RK[2] ^ RK[7]; @@ -588,23 +583,22 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, case 14: - for( i = 0; i < 7; i++, RK += 8 ) - { + for (i = 0; i < 7; i++, RK += 8) { RK[8] = RK[0] ^ RCON[i] ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( RK[7] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( RK[7] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( RK[7] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( RK[7] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_1(RK[7])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(RK[7])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(RK[7])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_0(RK[7])] << 24); RK[9] = RK[1] ^ RK[8]; RK[10] = RK[2] ^ RK[9]; RK[11] = RK[3] ^ RK[10]; RK[12] = RK[4] ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( RK[11] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( RK[11] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( RK[11] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( RK[11] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_0(RK[11])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_1(RK[11])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(RK[11])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(RK[11])] << 24); RK[13] = RK[5] ^ RK[12]; RK[14] = RK[6] ^ RK[13]; @@ -613,7 +607,7 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, break; } - return( 0 ); + return 0; } #endif /* !MBEDTLS_AES_SETKEY_ENC_ALT */ @@ -621,37 +615,39 @@ int mbedtls_aes_setkey_enc( mbedtls_aes_context *ctx, const unsigned char *key, * AES key schedule (decryption) */ #if !defined(MBEDTLS_AES_SETKEY_DEC_ALT) -int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, - unsigned int keybits ) +int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx, const unsigned char *key, + unsigned int keybits) { int i, j, ret; mbedtls_aes_context cty; uint32_t *RK; uint32_t *SK; - mbedtls_aes_init( &cty ); + mbedtls_aes_init(&cty); ctx->rk_offset = 0; #if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_PADLOCK_ALIGN16) - if( aes_padlock_ace == -1 ) - aes_padlock_ace = mbedtls_padlock_has_support( MBEDTLS_PADLOCK_ACE ); + if (aes_padlock_ace == -1) { + aes_padlock_ace = mbedtls_padlock_has_support(MBEDTLS_PADLOCK_ACE); + } - if( aes_padlock_ace ) - ctx->rk_offset = MBEDTLS_PADLOCK_ALIGN16( ctx->buf ) - ctx->buf; + if (aes_padlock_ace) { + ctx->rk_offset = MBEDTLS_PADLOCK_ALIGN16(ctx->buf) - ctx->buf; + } #endif RK = ctx->buf + ctx->rk_offset; /* Also checks keybits */ - if( ( ret = mbedtls_aes_setkey_enc( &cty, key, keybits ) ) != 0 ) + if ((ret = mbedtls_aes_setkey_enc(&cty, key, keybits)) != 0) { goto exit; + } ctx->nr = cty.nr; #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) - if( mbedtls_aesni_has_support( MBEDTLS_AESNI_AES ) ) - { - mbedtls_aesni_inverse_key( (unsigned char *) RK, - (const unsigned char *) ( cty.buf + cty.rk_offset ), ctx->nr ); + if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) { + mbedtls_aesni_inverse_key((unsigned char *) RK, + (const unsigned char *) (cty.buf + cty.rk_offset), ctx->nr); goto exit; } #endif @@ -663,14 +659,12 @@ int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, *RK++ = *SK++; *RK++ = *SK++; - for( i = ctx->nr - 1, SK -= 8; i > 0; i--, SK -= 8 ) - { - for( j = 0; j < 4; j++, SK++ ) - { - *RK++ = AES_RT0( FSb[ MBEDTLS_BYTE_0( *SK ) ] ) ^ - AES_RT1( FSb[ MBEDTLS_BYTE_1( *SK ) ] ) ^ - AES_RT2( FSb[ MBEDTLS_BYTE_2( *SK ) ] ) ^ - AES_RT3( FSb[ MBEDTLS_BYTE_3( *SK ) ] ); + for (i = ctx->nr - 1, SK -= 8; i > 0; i--, SK -= 8) { + for (j = 0; j < 4; j++, SK++) { + *RK++ = AES_RT0(FSb[MBEDTLS_BYTE_0(*SK)]) ^ + AES_RT1(FSb[MBEDTLS_BYTE_1(*SK)]) ^ + AES_RT2(FSb[MBEDTLS_BYTE_2(*SK)]) ^ + AES_RT3(FSb[MBEDTLS_BYTE_3(*SK)]); } } @@ -680,28 +674,27 @@ int mbedtls_aes_setkey_dec( mbedtls_aes_context *ctx, const unsigned char *key, *RK++ = *SK++; exit: - mbedtls_aes_free( &cty ); + mbedtls_aes_free(&cty); - return( ret ); + return ret; } #endif /* !MBEDTLS_AES_SETKEY_DEC_ALT */ #if defined(MBEDTLS_CIPHER_MODE_XTS) -static int mbedtls_aes_xts_decode_keys( const unsigned char *key, - unsigned int keybits, - const unsigned char **key1, - unsigned int *key1bits, - const unsigned char **key2, - unsigned int *key2bits ) +static int mbedtls_aes_xts_decode_keys(const unsigned char *key, + unsigned int keybits, + const unsigned char **key1, + unsigned int *key1bits, + const unsigned char **key2, + unsigned int *key2bits) { const unsigned int half_keybits = keybits / 2; const unsigned int half_keybytes = half_keybits / 8; - switch( keybits ) - { + switch (keybits) { case 256: break; case 512: break; - default : return( MBEDTLS_ERR_AES_INVALID_KEY_LENGTH ); + default: return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH; } *key1bits = half_keybits; @@ -712,160 +705,162 @@ static int mbedtls_aes_xts_decode_keys( const unsigned char *key, return 0; } -int mbedtls_aes_xts_setkey_enc( mbedtls_aes_xts_context *ctx, - const unsigned char *key, - unsigned int keybits) +int mbedtls_aes_xts_setkey_enc(mbedtls_aes_xts_context *ctx, + const unsigned char *key, + unsigned int keybits) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *key1, *key2; unsigned int key1bits, key2bits; - ret = mbedtls_aes_xts_decode_keys( key, keybits, &key1, &key1bits, - &key2, &key2bits ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits, + &key2, &key2bits); + if (ret != 0) { + return ret; + } /* Set the tweak key. Always set tweak key for the encryption mode. */ - ret = mbedtls_aes_setkey_enc( &ctx->tweak, key2, key2bits ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits); + if (ret != 0) { + return ret; + } /* Set crypt key for encryption. */ - return mbedtls_aes_setkey_enc( &ctx->crypt, key1, key1bits ); + return mbedtls_aes_setkey_enc(&ctx->crypt, key1, key1bits); } -int mbedtls_aes_xts_setkey_dec( mbedtls_aes_xts_context *ctx, - const unsigned char *key, - unsigned int keybits) +int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx, + const unsigned char *key, + unsigned int keybits) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *key1, *key2; unsigned int key1bits, key2bits; - ret = mbedtls_aes_xts_decode_keys( key, keybits, &key1, &key1bits, - &key2, &key2bits ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits, + &key2, &key2bits); + if (ret != 0) { + return ret; + } /* Set the tweak key. Always set tweak key for encryption. */ - ret = mbedtls_aes_setkey_enc( &ctx->tweak, key2, key2bits ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits); + if (ret != 0) { + return ret; + } /* Set crypt key for decryption. */ - return mbedtls_aes_setkey_dec( &ctx->crypt, key1, key1bits ); + return mbedtls_aes_setkey_dec(&ctx->crypt, key1, key1bits); } #endif /* MBEDTLS_CIPHER_MODE_XTS */ -#define AES_FROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3) \ +#define AES_FROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3) \ do \ { \ - (X0) = *RK++ ^ AES_FT0( MBEDTLS_BYTE_0( Y0 ) ) ^ \ - AES_FT1( MBEDTLS_BYTE_1( Y1 ) ) ^ \ - AES_FT2( MBEDTLS_BYTE_2( Y2 ) ) ^ \ - AES_FT3( MBEDTLS_BYTE_3( Y3 ) ); \ + (X0) = *RK++ ^ AES_FT0(MBEDTLS_BYTE_0(Y0)) ^ \ + AES_FT1(MBEDTLS_BYTE_1(Y1)) ^ \ + AES_FT2(MBEDTLS_BYTE_2(Y2)) ^ \ + AES_FT3(MBEDTLS_BYTE_3(Y3)); \ \ - (X1) = *RK++ ^ AES_FT0( MBEDTLS_BYTE_0( Y1 ) ) ^ \ - AES_FT1( MBEDTLS_BYTE_1( Y2 ) ) ^ \ - AES_FT2( MBEDTLS_BYTE_2( Y3 ) ) ^ \ - AES_FT3( MBEDTLS_BYTE_3( Y0 ) ); \ + (X1) = *RK++ ^ AES_FT0(MBEDTLS_BYTE_0(Y1)) ^ \ + AES_FT1(MBEDTLS_BYTE_1(Y2)) ^ \ + AES_FT2(MBEDTLS_BYTE_2(Y3)) ^ \ + AES_FT3(MBEDTLS_BYTE_3(Y0)); \ \ - (X2) = *RK++ ^ AES_FT0( MBEDTLS_BYTE_0( Y2 ) ) ^ \ - AES_FT1( MBEDTLS_BYTE_1( Y3 ) ) ^ \ - AES_FT2( MBEDTLS_BYTE_2( Y0 ) ) ^ \ - AES_FT3( MBEDTLS_BYTE_3( Y1 ) ); \ + (X2) = *RK++ ^ AES_FT0(MBEDTLS_BYTE_0(Y2)) ^ \ + AES_FT1(MBEDTLS_BYTE_1(Y3)) ^ \ + AES_FT2(MBEDTLS_BYTE_2(Y0)) ^ \ + AES_FT3(MBEDTLS_BYTE_3(Y1)); \ \ - (X3) = *RK++ ^ AES_FT0( MBEDTLS_BYTE_0( Y3 ) ) ^ \ - AES_FT1( MBEDTLS_BYTE_1( Y0 ) ) ^ \ - AES_FT2( MBEDTLS_BYTE_2( Y1 ) ) ^ \ - AES_FT3( MBEDTLS_BYTE_3( Y2 ) ); \ - } while( 0 ) + (X3) = *RK++ ^ AES_FT0(MBEDTLS_BYTE_0(Y3)) ^ \ + AES_FT1(MBEDTLS_BYTE_1(Y0)) ^ \ + AES_FT2(MBEDTLS_BYTE_2(Y1)) ^ \ + AES_FT3(MBEDTLS_BYTE_3(Y2)); \ + } while (0) -#define AES_RROUND(X0,X1,X2,X3,Y0,Y1,Y2,Y3) \ +#define AES_RROUND(X0, X1, X2, X3, Y0, Y1, Y2, Y3) \ do \ { \ - (X0) = *RK++ ^ AES_RT0( MBEDTLS_BYTE_0( Y0 ) ) ^ \ - AES_RT1( MBEDTLS_BYTE_1( Y3 ) ) ^ \ - AES_RT2( MBEDTLS_BYTE_2( Y2 ) ) ^ \ - AES_RT3( MBEDTLS_BYTE_3( Y1 ) ); \ + (X0) = *RK++ ^ AES_RT0(MBEDTLS_BYTE_0(Y0)) ^ \ + AES_RT1(MBEDTLS_BYTE_1(Y3)) ^ \ + AES_RT2(MBEDTLS_BYTE_2(Y2)) ^ \ + AES_RT3(MBEDTLS_BYTE_3(Y1)); \ \ - (X1) = *RK++ ^ AES_RT0( MBEDTLS_BYTE_0( Y1 ) ) ^ \ - AES_RT1( MBEDTLS_BYTE_1( Y0 ) ) ^ \ - AES_RT2( MBEDTLS_BYTE_2( Y3 ) ) ^ \ - AES_RT3( MBEDTLS_BYTE_3( Y2 ) ); \ + (X1) = *RK++ ^ AES_RT0(MBEDTLS_BYTE_0(Y1)) ^ \ + AES_RT1(MBEDTLS_BYTE_1(Y0)) ^ \ + AES_RT2(MBEDTLS_BYTE_2(Y3)) ^ \ + AES_RT3(MBEDTLS_BYTE_3(Y2)); \ \ - (X2) = *RK++ ^ AES_RT0( MBEDTLS_BYTE_0( Y2 ) ) ^ \ - AES_RT1( MBEDTLS_BYTE_1( Y1 ) ) ^ \ - AES_RT2( MBEDTLS_BYTE_2( Y0 ) ) ^ \ - AES_RT3( MBEDTLS_BYTE_3( Y3 ) ); \ + (X2) = *RK++ ^ AES_RT0(MBEDTLS_BYTE_0(Y2)) ^ \ + AES_RT1(MBEDTLS_BYTE_1(Y1)) ^ \ + AES_RT2(MBEDTLS_BYTE_2(Y0)) ^ \ + AES_RT3(MBEDTLS_BYTE_3(Y3)); \ \ - (X3) = *RK++ ^ AES_RT0( MBEDTLS_BYTE_0( Y3 ) ) ^ \ - AES_RT1( MBEDTLS_BYTE_1( Y2 ) ) ^ \ - AES_RT2( MBEDTLS_BYTE_2( Y1 ) ) ^ \ - AES_RT3( MBEDTLS_BYTE_3( Y0 ) ); \ - } while( 0 ) + (X3) = *RK++ ^ AES_RT0(MBEDTLS_BYTE_0(Y3)) ^ \ + AES_RT1(MBEDTLS_BYTE_1(Y2)) ^ \ + AES_RT2(MBEDTLS_BYTE_2(Y1)) ^ \ + AES_RT3(MBEDTLS_BYTE_3(Y0)); \ + } while (0) /* * AES-ECB block encryption */ #if !defined(MBEDTLS_AES_ENCRYPT_ALT) -int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_internal_aes_encrypt(mbedtls_aes_context *ctx, + const unsigned char input[16], + unsigned char output[16]) { int i; uint32_t *RK = ctx->buf + ctx->rk_offset; - struct - { + struct { uint32_t X[4]; uint32_t Y[4]; } t; - t.X[0] = MBEDTLS_GET_UINT32_LE( input, 0 ); t.X[0] ^= *RK++; - t.X[1] = MBEDTLS_GET_UINT32_LE( input, 4 ); t.X[1] ^= *RK++; - t.X[2] = MBEDTLS_GET_UINT32_LE( input, 8 ); t.X[2] ^= *RK++; - t.X[3] = MBEDTLS_GET_UINT32_LE( input, 12 ); t.X[3] ^= *RK++; + t.X[0] = MBEDTLS_GET_UINT32_LE(input, 0); t.X[0] ^= *RK++; + t.X[1] = MBEDTLS_GET_UINT32_LE(input, 4); t.X[1] ^= *RK++; + t.X[2] = MBEDTLS_GET_UINT32_LE(input, 8); t.X[2] ^= *RK++; + t.X[3] = MBEDTLS_GET_UINT32_LE(input, 12); t.X[3] ^= *RK++; - for( i = ( ctx->nr >> 1 ) - 1; i > 0; i-- ) - { - AES_FROUND( t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3] ); - AES_FROUND( t.X[0], t.X[1], t.X[2], t.X[3], t.Y[0], t.Y[1], t.Y[2], t.Y[3] ); + for (i = (ctx->nr >> 1) - 1; i > 0; i--) { + AES_FROUND(t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3]); + AES_FROUND(t.X[0], t.X[1], t.X[2], t.X[3], t.Y[0], t.Y[1], t.Y[2], t.Y[3]); } - AES_FROUND( t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3] ); + AES_FROUND(t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3]); t.X[0] = *RK++ ^ \ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( t.Y[0] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( t.Y[1] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( t.Y[2] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( t.Y[3] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_0(t.Y[0])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_1(t.Y[1])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(t.Y[2])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(t.Y[3])] << 24); t.X[1] = *RK++ ^ \ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( t.Y[1] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( t.Y[2] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( t.Y[3] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( t.Y[0] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_0(t.Y[1])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_1(t.Y[2])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(t.Y[3])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(t.Y[0])] << 24); t.X[2] = *RK++ ^ \ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( t.Y[2] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( t.Y[3] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( t.Y[0] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( t.Y[1] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_0(t.Y[2])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_1(t.Y[3])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(t.Y[0])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(t.Y[1])] << 24); t.X[3] = *RK++ ^ \ - ( (uint32_t) FSb[ MBEDTLS_BYTE_0( t.Y[3] ) ] ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_1( t.Y[0] ) ] << 8 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_2( t.Y[1] ) ] << 16 ) ^ - ( (uint32_t) FSb[ MBEDTLS_BYTE_3( t.Y[2] ) ] << 24 ); + ((uint32_t) FSb[MBEDTLS_BYTE_0(t.Y[3])]) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_1(t.Y[0])] << 8) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_2(t.Y[1])] << 16) ^ + ((uint32_t) FSb[MBEDTLS_BYTE_3(t.Y[2])] << 24); - MBEDTLS_PUT_UINT32_LE( t.X[0], output, 0 ); - MBEDTLS_PUT_UINT32_LE( t.X[1], output, 4 ); - MBEDTLS_PUT_UINT32_LE( t.X[2], output, 8 ); - MBEDTLS_PUT_UINT32_LE( t.X[3], output, 12 ); + MBEDTLS_PUT_UINT32_LE(t.X[0], output, 0); + MBEDTLS_PUT_UINT32_LE(t.X[1], output, 4); + MBEDTLS_PUT_UINT32_LE(t.X[2], output, 8); + MBEDTLS_PUT_UINT32_LE(t.X[3], output, 12); - mbedtls_platform_zeroize( &t, sizeof( t ) ); + mbedtls_platform_zeroize(&t, sizeof(t)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_AES_ENCRYPT_ALT */ @@ -873,87 +868,87 @@ int mbedtls_internal_aes_encrypt( mbedtls_aes_context *ctx, * AES-ECB block decryption */ #if !defined(MBEDTLS_AES_DECRYPT_ALT) -int mbedtls_internal_aes_decrypt( mbedtls_aes_context *ctx, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_internal_aes_decrypt(mbedtls_aes_context *ctx, + const unsigned char input[16], + unsigned char output[16]) { int i; uint32_t *RK = ctx->buf + ctx->rk_offset; - struct - { + struct { uint32_t X[4]; uint32_t Y[4]; } t; - t.X[0] = MBEDTLS_GET_UINT32_LE( input, 0 ); t.X[0] ^= *RK++; - t.X[1] = MBEDTLS_GET_UINT32_LE( input, 4 ); t.X[1] ^= *RK++; - t.X[2] = MBEDTLS_GET_UINT32_LE( input, 8 ); t.X[2] ^= *RK++; - t.X[3] = MBEDTLS_GET_UINT32_LE( input, 12 ); t.X[3] ^= *RK++; + t.X[0] = MBEDTLS_GET_UINT32_LE(input, 0); t.X[0] ^= *RK++; + t.X[1] = MBEDTLS_GET_UINT32_LE(input, 4); t.X[1] ^= *RK++; + t.X[2] = MBEDTLS_GET_UINT32_LE(input, 8); t.X[2] ^= *RK++; + t.X[3] = MBEDTLS_GET_UINT32_LE(input, 12); t.X[3] ^= *RK++; - for( i = ( ctx->nr >> 1 ) - 1; i > 0; i-- ) - { - AES_RROUND( t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3] ); - AES_RROUND( t.X[0], t.X[1], t.X[2], t.X[3], t.Y[0], t.Y[1], t.Y[2], t.Y[3] ); + for (i = (ctx->nr >> 1) - 1; i > 0; i--) { + AES_RROUND(t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3]); + AES_RROUND(t.X[0], t.X[1], t.X[2], t.X[3], t.Y[0], t.Y[1], t.Y[2], t.Y[3]); } - AES_RROUND( t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3] ); + AES_RROUND(t.Y[0], t.Y[1], t.Y[2], t.Y[3], t.X[0], t.X[1], t.X[2], t.X[3]); t.X[0] = *RK++ ^ \ - ( (uint32_t) RSb[ MBEDTLS_BYTE_0( t.Y[0] ) ] ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_1( t.Y[3] ) ] << 8 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_2( t.Y[2] ) ] << 16 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_3( t.Y[1] ) ] << 24 ); + ((uint32_t) RSb[MBEDTLS_BYTE_0(t.Y[0])]) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_1(t.Y[3])] << 8) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_2(t.Y[2])] << 16) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_3(t.Y[1])] << 24); t.X[1] = *RK++ ^ \ - ( (uint32_t) RSb[ MBEDTLS_BYTE_0( t.Y[1] ) ] ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_1( t.Y[0] ) ] << 8 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_2( t.Y[3] ) ] << 16 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_3( t.Y[2] ) ] << 24 ); + ((uint32_t) RSb[MBEDTLS_BYTE_0(t.Y[1])]) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_1(t.Y[0])] << 8) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_2(t.Y[3])] << 16) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_3(t.Y[2])] << 24); t.X[2] = *RK++ ^ \ - ( (uint32_t) RSb[ MBEDTLS_BYTE_0( t.Y[2] ) ] ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_1( t.Y[1] ) ] << 8 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_2( t.Y[0] ) ] << 16 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_3( t.Y[3] ) ] << 24 ); + ((uint32_t) RSb[MBEDTLS_BYTE_0(t.Y[2])]) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_1(t.Y[1])] << 8) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_2(t.Y[0])] << 16) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_3(t.Y[3])] << 24); t.X[3] = *RK++ ^ \ - ( (uint32_t) RSb[ MBEDTLS_BYTE_0( t.Y[3] ) ] ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_1( t.Y[2] ) ] << 8 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_2( t.Y[1] ) ] << 16 ) ^ - ( (uint32_t) RSb[ MBEDTLS_BYTE_3( t.Y[0] ) ] << 24 ); + ((uint32_t) RSb[MBEDTLS_BYTE_0(t.Y[3])]) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_1(t.Y[2])] << 8) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_2(t.Y[1])] << 16) ^ + ((uint32_t) RSb[MBEDTLS_BYTE_3(t.Y[0])] << 24); - MBEDTLS_PUT_UINT32_LE( t.X[0], output, 0 ); - MBEDTLS_PUT_UINT32_LE( t.X[1], output, 4 ); - MBEDTLS_PUT_UINT32_LE( t.X[2], output, 8 ); - MBEDTLS_PUT_UINT32_LE( t.X[3], output, 12 ); + MBEDTLS_PUT_UINT32_LE(t.X[0], output, 0); + MBEDTLS_PUT_UINT32_LE(t.X[1], output, 4); + MBEDTLS_PUT_UINT32_LE(t.X[2], output, 8); + MBEDTLS_PUT_UINT32_LE(t.X[3], output, 12); - mbedtls_platform_zeroize( &t, sizeof( t ) ); + mbedtls_platform_zeroize(&t, sizeof(t)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_AES_DECRYPT_ALT */ /* * AES-ECB block encryption/decryption */ -int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]) { - if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + if (mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT) { return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) - if( mbedtls_aesni_has_support( MBEDTLS_AESNI_AES ) ) - return( mbedtls_aesni_crypt_ecb( ctx, mode, input, output ) ); + if (mbedtls_aesni_has_support(MBEDTLS_AESNI_AES)) { + return mbedtls_aesni_crypt_ecb(ctx, mode, input, output); + } #endif #if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86) - if( aes_padlock_ace > 0) - { - if( mbedtls_padlock_xcryptecb( ctx, mode, input, output ) == 0 ) - return( 0 ); + if (aes_padlock_ace > 0) { + if (mbedtls_padlock_xcryptecb(ctx, mode, input, output) == 0) { + return 0; + } // If padlock data misaligned, we just fall back to // unaccelerated mode @@ -961,37 +956,40 @@ int mbedtls_aes_crypt_ecb( mbedtls_aes_context *ctx, } #endif - if( mode == MBEDTLS_AES_ENCRYPT ) - return( mbedtls_internal_aes_encrypt( ctx, input, output ) ); - else - return( mbedtls_internal_aes_decrypt( ctx, input, output ) ); + if (mode == MBEDTLS_AES_ENCRYPT) { + return mbedtls_internal_aes_encrypt(ctx, input, output); + } else { + return mbedtls_internal_aes_decrypt(ctx, input, output); + } } #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * AES-CBC buffer encryption/decryption */ -int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[16]; - if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + if (mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT) { return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } - if( length % 16 ) - return( MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); + if (length % 16) { + return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH; + } #if defined(MBEDTLS_PADLOCK_C) && defined(MBEDTLS_HAVE_X86) - if( aes_padlock_ace > 0 ) - { - if( mbedtls_padlock_xcryptcbc( ctx, mode, length, iv, input, output ) == 0 ) - return( 0 ); + if (aes_padlock_ace > 0) { + if (mbedtls_padlock_xcryptcbc(ctx, mode, length, iv, input, output) == 0) { + return 0; + } // If padlock data misaligned, we just fall back to // unaccelerated mode @@ -999,34 +997,31 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, } #endif - if( mode == MBEDTLS_AES_DECRYPT ) - { - while( length > 0 ) - { - memcpy( temp, input, 16 ); - ret = mbedtls_aes_crypt_ecb( ctx, mode, input, output ); - if( ret != 0 ) + if (mode == MBEDTLS_AES_DECRYPT) { + while (length > 0) { + memcpy(temp, input, 16); + ret = mbedtls_aes_crypt_ecb(ctx, mode, input, output); + if (ret != 0) { goto exit; + } - mbedtls_xor( output, output, iv, 16 ); + mbedtls_xor(output, output, iv, 16); - memcpy( iv, temp, 16 ); + memcpy(iv, temp, 16); input += 16; output += 16; length -= 16; } - } - else - { - while( length > 0 ) - { - mbedtls_xor( output, input, iv, 16 ); + } else { + while (length > 0) { + mbedtls_xor(output, input, iv, 16); - ret = mbedtls_aes_crypt_ecb( ctx, mode, output, output ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_ecb(ctx, mode, output, output); + if (ret != 0) { goto exit; - memcpy( iv, output, 16 ); + } + memcpy(iv, output, 16); input += 16; output += 16; @@ -1036,7 +1031,7 @@ int mbedtls_aes_crypt_cbc( mbedtls_aes_context *ctx, ret = 0; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ @@ -1052,30 +1047,30 @@ typedef unsigned char mbedtls_be128[16]; * for machine endianness and hence works correctly on both big and little * endian machines. */ -static void mbedtls_gf128mul_x_ble( unsigned char r[16], - const unsigned char x[16] ) +static void mbedtls_gf128mul_x_ble(unsigned char r[16], + const unsigned char x[16]) { uint64_t a, b, ra, rb; - a = MBEDTLS_GET_UINT64_LE( x, 0 ); - b = MBEDTLS_GET_UINT64_LE( x, 8 ); + a = MBEDTLS_GET_UINT64_LE(x, 0); + b = MBEDTLS_GET_UINT64_LE(x, 8); - ra = ( a << 1 ) ^ 0x0087 >> ( 8 - ( ( b >> 63 ) << 3 ) ); - rb = ( a >> 63 ) | ( b << 1 ); + ra = (a << 1) ^ 0x0087 >> (8 - ((b >> 63) << 3)); + rb = (a >> 63) | (b << 1); - MBEDTLS_PUT_UINT64_LE( ra, r, 0 ); - MBEDTLS_PUT_UINT64_LE( rb, r, 8 ); + MBEDTLS_PUT_UINT64_LE(ra, r, 0); + MBEDTLS_PUT_UINT64_LE(rb, r, 8); } /* * AES-XTS buffer encryption/decryption */ -int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, - int mode, - size_t length, - const unsigned char data_unit[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_xts(mbedtls_aes_xts_context *ctx, + int mode, + size_t length, + const unsigned char data_unit[16], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t blocks = length / 16; @@ -1084,53 +1079,55 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, unsigned char prev_tweak[16]; unsigned char tmp[16]; - if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + if (mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT) { return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } /* Data units must be at least 16 bytes long. */ - if( length < 16 ) + if (length < 16) { return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH; + } /* NIST SP 800-38E disallows data units larger than 2**20 blocks. */ - if( length > ( 1 << 20 ) * 16 ) + if (length > (1 << 20) * 16) { return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH; + } /* Compute the tweak. */ - ret = mbedtls_aes_crypt_ecb( &ctx->tweak, MBEDTLS_AES_ENCRYPT, - data_unit, tweak ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_crypt_ecb(&ctx->tweak, MBEDTLS_AES_ENCRYPT, + data_unit, tweak); + if (ret != 0) { + return ret; + } - while( blocks-- ) - { - if( leftover && ( mode == MBEDTLS_AES_DECRYPT ) && blocks == 0 ) - { + while (blocks--) { + if (leftover && (mode == MBEDTLS_AES_DECRYPT) && blocks == 0) { /* We are on the last block in a decrypt operation that has * leftover bytes, so we need to use the next tweak for this block, * and this tweak for the leftover bytes. Save the current tweak for * the leftovers and then update the current tweak for use on this, * the last full block. */ - memcpy( prev_tweak, tweak, sizeof( tweak ) ); - mbedtls_gf128mul_x_ble( tweak, tweak ); + memcpy(prev_tweak, tweak, sizeof(tweak)); + mbedtls_gf128mul_x_ble(tweak, tweak); } - mbedtls_xor( tmp, input, tweak, 16 ); + mbedtls_xor(tmp, input, tweak, 16); - ret = mbedtls_aes_crypt_ecb( &ctx->crypt, mode, tmp, tmp ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp); + if (ret != 0) { + return ret; + } - mbedtls_xor( output, tmp, tweak, 16 ); + mbedtls_xor(output, tmp, tweak, 16); /* Update the tweak for the next block. */ - mbedtls_gf128mul_x_ble( tweak, tweak ); + mbedtls_gf128mul_x_ble(tweak, tweak); output += 16; input += 16; } - if( leftover ) - { + if (leftover) { /* If we are on the leftover bytes in a decrypt operation, we need to * use the previous tweak for these bytes (as saved in prev_tweak). */ unsigned char *t = mode == MBEDTLS_AES_DECRYPT ? prev_tweak : tweak; @@ -1142,28 +1139,28 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, /* Copy ciphertext bytes from the previous block to our output for each * byte of ciphertext we won't steal. */ - for( i = 0; i < leftover; i++ ) - { + for (i = 0; i < leftover; i++) { output[i] = prev_output[i]; } /* Copy the remainder of the input for this final round. */ - mbedtls_xor( tmp, input, t, leftover ); + mbedtls_xor(tmp, input, t, leftover); /* Copy ciphertext bytes from the previous block for input in this * round. */ - mbedtls_xor( tmp + i, prev_output + i, t + i, 16 - i ); + mbedtls_xor(tmp + i, prev_output + i, t + i, 16 - i); - ret = mbedtls_aes_crypt_ecb( &ctx->crypt, mode, tmp, tmp ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp); + if (ret != 0) { return ret; + } /* Write the result back to the previous block, overriding the previous * output we copied. */ - mbedtls_xor( prev_output, tmp, t, 16 ); + mbedtls_xor(prev_output, tmp, t, 16); } - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_XTS */ @@ -1171,58 +1168,55 @@ int mbedtls_aes_crypt_xts( mbedtls_aes_xts_context *ctx, /* * AES-CFB128 buffer encryption/decryption */ -int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int c; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; - if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + if (mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT) { return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } n = *iv_off; - if( n > 15 ) - return( MBEDTLS_ERR_AES_BAD_INPUT_DATA ); + if (n > 15) { + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } - if( mode == MBEDTLS_AES_DECRYPT ) - { - while( length-- ) - { - if( n == 0 ) - { - ret = mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, iv, iv ); - if( ret != 0 ) + if (mode == MBEDTLS_AES_DECRYPT) { + while (length--) { + if (n == 0) { + ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv); + if (ret != 0) { goto exit; + } } c = *input++; - *output++ = (unsigned char)( c ^ iv[n] ); + *output++ = (unsigned char) (c ^ iv[n]); iv[n] = (unsigned char) c; - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } - } - else - { - while( length-- ) - { - if( n == 0 ) - { - ret = mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, iv, iv ); - if( ret != 0 ) + } else { + while (length--) { + if (n == 0) { + ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv); + if (ret != 0) { goto exit; + } } - iv[n] = *output++ = (unsigned char)( iv[n] ^ *input++ ); + iv[n] = *output++ = (unsigned char) (iv[n] ^ *input++); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } } @@ -1230,46 +1224,49 @@ int mbedtls_aes_crypt_cfb128( mbedtls_aes_context *ctx, ret = 0; exit: - return( ret ); + return ret; } /* * AES-CFB8 buffer encryption/decryption */ -int mbedtls_aes_crypt_cfb8( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_cfb8(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char c; unsigned char ov[17]; - if( mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT ) + if (mode != MBEDTLS_AES_ENCRYPT && mode != MBEDTLS_AES_DECRYPT) { return MBEDTLS_ERR_AES_BAD_INPUT_DATA; - while( length-- ) - { - memcpy( ov, iv, 16 ); - ret = mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, iv, iv ); - if( ret != 0 ) + } + while (length--) { + memcpy(ov, iv, 16); + ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv); + if (ret != 0) { goto exit; + } - if( mode == MBEDTLS_AES_DECRYPT ) + if (mode == MBEDTLS_AES_DECRYPT) { ov[16] = *input; + } - c = *output++ = (unsigned char)( iv[0] ^ *input++ ); + c = *output++ = (unsigned char) (iv[0] ^ *input++); - if( mode == MBEDTLS_AES_ENCRYPT ) + if (mode == MBEDTLS_AES_ENCRYPT) { ov[16] = c; + } - memcpy( iv, ov + 1, 16 ); + memcpy(iv, ov + 1, 16); } ret = 0; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_CFB */ @@ -1277,38 +1274,38 @@ exit: /* * AES-OFB (Output Feedback Mode) buffer encryption/decryption */ -int mbedtls_aes_crypt_ofb( mbedtls_aes_context *ctx, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_ofb(mbedtls_aes_context *ctx, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int ret = 0; size_t n; n = *iv_off; - if( n > 15 ) - return( MBEDTLS_ERR_AES_BAD_INPUT_DATA ); + if (n > 15) { + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } - while( length-- ) - { - if( n == 0 ) - { - ret = mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, iv, iv ); - if( ret != 0 ) + while (length--) { + if (n == 0) { + ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv); + if (ret != 0) { goto exit; + } } *output++ = *input++ ^ iv[n]; - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } *iv_off = n; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_OFB */ @@ -1316,13 +1313,13 @@ exit: /* * AES-CTR buffer encryption/decryption */ -int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[16], - unsigned char stream_block[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aes_crypt_ctr(mbedtls_aes_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[16], + unsigned char stream_block[16], + const unsigned char *input, + unsigned char *output) { int c, i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1330,31 +1327,34 @@ int mbedtls_aes_crypt_ctr( mbedtls_aes_context *ctx, n = *nc_off; - if ( n > 0x0F ) - return( MBEDTLS_ERR_AES_BAD_INPUT_DATA ); + if (n > 0x0F) { + return MBEDTLS_ERR_AES_BAD_INPUT_DATA; + } - while( length-- ) - { - if( n == 0 ) { - ret = mbedtls_aes_crypt_ecb( ctx, MBEDTLS_AES_ENCRYPT, nonce_counter, stream_block ); - if( ret != 0 ) + while (length--) { + if (n == 0) { + ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, nonce_counter, stream_block); + if (ret != 0) { goto exit; + } - for( i = 16; i > 0; i-- ) - if( ++nonce_counter[i - 1] != 0 ) + for (i = 16; i > 0; i--) { + if (++nonce_counter[i - 1] != 0) { break; + } + } } c = *input++; - *output++ = (unsigned char)( c ^ stream_block[n] ); + *output++ = (unsigned char) (c ^ stream_block[n]); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } *nc_off = n; ret = 0; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_CTR */ @@ -1600,7 +1600,7 @@ static const unsigned char aes_test_ctr_ct[3][48] = }; static const int aes_test_ctr_len[3] = - { 16, 32, 36 }; +{ 16, 32, 36 }; #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_CIPHER_MODE_XTS) @@ -1661,12 +1661,12 @@ static const unsigned char aes_test_xts_ct32[][32] = static const unsigned char aes_test_xts_data_unit[][16] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, + { 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, }; #endif /* MBEDTLS_CIPHER_MODE_XTS */ @@ -1674,7 +1674,7 @@ static const unsigned char aes_test_xts_data_unit[][16] = /* * Checkup routine */ -int mbedtls_aes_self_test( int verbose ) +int mbedtls_aes_self_test(int verbose) { int ret = 0, i, j, u, mode; unsigned int keybits; @@ -1701,32 +1701,29 @@ int mbedtls_aes_self_test( int verbose ) #endif mbedtls_aes_context ctx; - memset( key, 0, 32 ); - mbedtls_aes_init( &ctx ); + memset(key, 0, 32); + mbedtls_aes_init(&ctx); /* * ECB mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; keybits = 128 + u * 64; mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-ECB-%3u (%s): ", keybits, - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); - - memset( buf, 0, 16 ); - - if( mode == MBEDTLS_AES_DECRYPT ) - { - ret = mbedtls_aes_setkey_dec( &ctx, key, keybits ); - aes_tests = aes_test_ecb_dec[u]; + if (verbose != 0) { + mbedtls_printf(" AES-ECB-%3u (%s): ", keybits, + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); } - else - { - ret = mbedtls_aes_setkey_enc( &ctx, key, keybits ); + + memset(buf, 0, 16); + + if (mode == MBEDTLS_AES_DECRYPT) { + ret = mbedtls_aes_setkey_dec(&ctx, key, keybits); + aes_tests = aes_test_ecb_dec[u]; + } else { + ret = mbedtls_aes_setkey_enc(&ctx, key, keybits); aes_tests = aes_test_ecb_enc[u]; } @@ -1735,62 +1732,57 @@ int mbedtls_aes_self_test( int verbose ) * there is an alternative underlying implementation i.e. when * MBEDTLS_AES_ALT is defined. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) { + mbedtls_printf("skipped\n"); continue; - } - else if( ret != 0 ) - { + } else if (ret != 0) { goto exit; } - for( j = 0; j < 10000; j++ ) - { - ret = mbedtls_aes_crypt_ecb( &ctx, mode, buf, buf ); - if( ret != 0 ) + for (j = 0; j < 10000; j++) { + ret = mbedtls_aes_crypt_ecb(&ctx, mode, buf, buf); + if (ret != 0) { goto exit; + } } - if( memcmp( buf, aes_tests, 16 ) != 0 ) - { + if (memcmp(buf, aes_tests, 16) != 0) { ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * CBC mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; keybits = 128 + u * 64; mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-CBC-%3u (%s): ", keybits, - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); - - memset( iv , 0, 16 ); - memset( prv, 0, 16 ); - memset( buf, 0, 16 ); - - if( mode == MBEDTLS_AES_DECRYPT ) - { - ret = mbedtls_aes_setkey_dec( &ctx, key, keybits ); - aes_tests = aes_test_cbc_dec[u]; + if (verbose != 0) { + mbedtls_printf(" AES-CBC-%3u (%s): ", keybits, + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); } - else - { - ret = mbedtls_aes_setkey_enc( &ctx, key, keybits ); + + memset(iv, 0, 16); + memset(prv, 0, 16); + memset(buf, 0, 16); + + if (mode == MBEDTLS_AES_DECRYPT) { + ret = mbedtls_aes_setkey_dec(&ctx, key, keybits); + aes_tests = aes_test_cbc_dec[u]; + } else { + ret = mbedtls_aes_setkey_enc(&ctx, key, keybits); aes_tests = aes_test_cbc_enc[u]; } @@ -1799,301 +1791,292 @@ int mbedtls_aes_self_test( int verbose ) * there is an alternative underlying implementation i.e. when * MBEDTLS_AES_ALT is defined. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) { + mbedtls_printf("skipped\n"); continue; - } - else if( ret != 0 ) - { + } else if (ret != 0) { goto exit; } - for( j = 0; j < 10000; j++ ) - { - if( mode == MBEDTLS_AES_ENCRYPT ) - { + for (j = 0; j < 10000; j++) { + if (mode == MBEDTLS_AES_ENCRYPT) { unsigned char tmp[16]; - memcpy( tmp, prv, 16 ); - memcpy( prv, buf, 16 ); - memcpy( buf, tmp, 16 ); + memcpy(tmp, prv, 16); + memcpy(prv, buf, 16); + memcpy(buf, tmp, 16); } - ret = mbedtls_aes_crypt_cbc( &ctx, mode, 16, iv, buf, buf ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_cbc(&ctx, mode, 16, iv, buf, buf); + if (ret != 0) { goto exit; + } } - if( memcmp( buf, aes_tests, 16 ) != 0 ) - { + if (memcmp(buf, aes_tests, 16) != 0) { ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) /* * CFB128 mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; keybits = 128 + u * 64; mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-CFB128-%3u (%s): ", keybits, - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-CFB128-%3u (%s): ", keybits, + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); + } - memcpy( iv, aes_test_cfb128_iv, 16 ); - memcpy( key, aes_test_cfb128_key[u], keybits / 8 ); + memcpy(iv, aes_test_cfb128_iv, 16); + memcpy(key, aes_test_cfb128_key[u], keybits / 8); offset = 0; - ret = mbedtls_aes_setkey_enc( &ctx, key, keybits ); + ret = mbedtls_aes_setkey_enc(&ctx, key, keybits); /* * AES-192 is an optional feature that may be unavailable when * there is an alternative underlying implementation i.e. when * MBEDTLS_AES_ALT is defined. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) { + mbedtls_printf("skipped\n"); continue; - } - else if( ret != 0 ) - { + } else if (ret != 0) { goto exit; } - if( mode == MBEDTLS_AES_DECRYPT ) - { - memcpy( buf, aes_test_cfb128_ct[u], 64 ); + if (mode == MBEDTLS_AES_DECRYPT) { + memcpy(buf, aes_test_cfb128_ct[u], 64); aes_tests = aes_test_cfb128_pt; - } - else - { - memcpy( buf, aes_test_cfb128_pt, 64 ); + } else { + memcpy(buf, aes_test_cfb128_pt, 64); aes_tests = aes_test_cfb128_ct[u]; } - ret = mbedtls_aes_crypt_cfb128( &ctx, mode, 64, &offset, iv, buf, buf ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_cfb128(&ctx, mode, 64, &offset, iv, buf, buf); + if (ret != 0) { goto exit; + } - if( memcmp( buf, aes_tests, 64 ) != 0 ) - { + if (memcmp(buf, aes_tests, 64) != 0) { ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_OFB) /* * OFB mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; keybits = 128 + u * 64; mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-OFB-%3u (%s): ", keybits, - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-OFB-%3u (%s): ", keybits, + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); + } - memcpy( iv, aes_test_ofb_iv, 16 ); - memcpy( key, aes_test_ofb_key[u], keybits / 8 ); + memcpy(iv, aes_test_ofb_iv, 16); + memcpy(key, aes_test_ofb_key[u], keybits / 8); offset = 0; - ret = mbedtls_aes_setkey_enc( &ctx, key, keybits ); + ret = mbedtls_aes_setkey_enc(&ctx, key, keybits); /* * AES-192 is an optional feature that may be unavailable when * there is an alternative underlying implementation i.e. when * MBEDTLS_AES_ALT is defined. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && keybits == 192) { + mbedtls_printf("skipped\n"); continue; - } - else if( ret != 0 ) - { + } else if (ret != 0) { goto exit; } - if( mode == MBEDTLS_AES_DECRYPT ) - { - memcpy( buf, aes_test_ofb_ct[u], 64 ); + if (mode == MBEDTLS_AES_DECRYPT) { + memcpy(buf, aes_test_ofb_ct[u], 64); aes_tests = aes_test_ofb_pt; - } - else - { - memcpy( buf, aes_test_ofb_pt, 64 ); + } else { + memcpy(buf, aes_test_ofb_pt, 64); aes_tests = aes_test_ofb_ct[u]; } - ret = mbedtls_aes_crypt_ofb( &ctx, 64, &offset, iv, buf, buf ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_ofb(&ctx, 64, &offset, iv, buf, buf); + if (ret != 0) { goto exit; + } - if( memcmp( buf, aes_tests, 64 ) != 0 ) - { + if (memcmp(buf, aes_tests, 64) != 0) { ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #endif /* MBEDTLS_CIPHER_MODE_OFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) /* * CTR mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-CTR-128 (%s): ", - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-CTR-128 (%s): ", + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); + } - memcpy( nonce_counter, aes_test_ctr_nonce_counter[u], 16 ); - memcpy( key, aes_test_ctr_key[u], 16 ); + memcpy(nonce_counter, aes_test_ctr_nonce_counter[u], 16); + memcpy(key, aes_test_ctr_key[u], 16); offset = 0; - if( ( ret = mbedtls_aes_setkey_enc( &ctx, key, 128 ) ) != 0 ) + if ((ret = mbedtls_aes_setkey_enc(&ctx, key, 128)) != 0) { goto exit; + } len = aes_test_ctr_len[u]; - if( mode == MBEDTLS_AES_DECRYPT ) - { - memcpy( buf, aes_test_ctr_ct[u], len ); + if (mode == MBEDTLS_AES_DECRYPT) { + memcpy(buf, aes_test_ctr_ct[u], len); aes_tests = aes_test_ctr_pt[u]; - } - else - { - memcpy( buf, aes_test_ctr_pt[u], len ); + } else { + memcpy(buf, aes_test_ctr_pt[u], len); aes_tests = aes_test_ctr_ct[u]; } - ret = mbedtls_aes_crypt_ctr( &ctx, len, &offset, nonce_counter, - stream_block, buf, buf ); - if( ret != 0 ) + ret = mbedtls_aes_crypt_ctr(&ctx, len, &offset, nonce_counter, + stream_block, buf, buf); + if (ret != 0) { goto exit; + } - if( memcmp( buf, aes_tests, len ) != 0 ) - { + if (memcmp(buf, aes_tests, len) != 0) { ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_CIPHER_MODE_XTS) { - static const int num_tests = - sizeof(aes_test_xts_key) / sizeof(*aes_test_xts_key); - mbedtls_aes_xts_context ctx_xts; + static const int num_tests = + sizeof(aes_test_xts_key) / sizeof(*aes_test_xts_key); + mbedtls_aes_xts_context ctx_xts; - /* - * XTS mode - */ - mbedtls_aes_xts_init( &ctx_xts ); + /* + * XTS mode + */ + mbedtls_aes_xts_init(&ctx_xts); - for( i = 0; i < num_tests << 1; i++ ) - { - const unsigned char *data_unit; - u = i >> 1; - mode = i & 1; + for (i = 0; i < num_tests << 1; i++) { + const unsigned char *data_unit; + u = i >> 1; + mode = i & 1; - if( verbose != 0 ) - mbedtls_printf( " AES-XTS-128 (%s): ", - ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-XTS-128 (%s): ", + (mode == MBEDTLS_AES_DECRYPT) ? "dec" : "enc"); + } - memset( key, 0, sizeof( key ) ); - memcpy( key, aes_test_xts_key[u], 32 ); - data_unit = aes_test_xts_data_unit[u]; + memset(key, 0, sizeof(key)); + memcpy(key, aes_test_xts_key[u], 32); + data_unit = aes_test_xts_data_unit[u]; - len = sizeof( *aes_test_xts_ct32 ); + len = sizeof(*aes_test_xts_ct32); - if( mode == MBEDTLS_AES_DECRYPT ) - { - ret = mbedtls_aes_xts_setkey_dec( &ctx_xts, key, 256 ); - if( ret != 0) + if (mode == MBEDTLS_AES_DECRYPT) { + ret = mbedtls_aes_xts_setkey_dec(&ctx_xts, key, 256); + if (ret != 0) { + goto exit; + } + memcpy(buf, aes_test_xts_ct32[u], len); + aes_tests = aes_test_xts_pt32[u]; + } else { + ret = mbedtls_aes_xts_setkey_enc(&ctx_xts, key, 256); + if (ret != 0) { + goto exit; + } + memcpy(buf, aes_test_xts_pt32[u], len); + aes_tests = aes_test_xts_ct32[u]; + } + + + ret = mbedtls_aes_crypt_xts(&ctx_xts, mode, len, data_unit, + buf, buf); + if (ret != 0) { goto exit; - memcpy( buf, aes_test_xts_ct32[u], len ); - aes_tests = aes_test_xts_pt32[u]; - } - else - { - ret = mbedtls_aes_xts_setkey_enc( &ctx_xts, key, 256 ); - if( ret != 0) + } + + if (memcmp(buf, aes_tests, len) != 0) { + ret = 1; goto exit; - memcpy( buf, aes_test_xts_pt32[u], len ); - aes_tests = aes_test_xts_ct32[u]; + } + + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - - ret = mbedtls_aes_crypt_xts( &ctx_xts, mode, len, data_unit, - buf, buf ); - if( ret != 0 ) - goto exit; - - if( memcmp( buf, aes_tests, len ) != 0 ) - { - ret = 1; - goto exit; + if (verbose != 0) { + mbedtls_printf("\n"); } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); - } - - if( verbose != 0 ) - mbedtls_printf( "\n" ); - - mbedtls_aes_xts_free( &ctx_xts ); + mbedtls_aes_xts_free(&ctx_xts); } #endif /* MBEDTLS_CIPHER_MODE_XTS */ ret = 0; exit: - if( ret != 0 && verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (ret != 0 && verbose != 0) { + mbedtls_printf("failed\n"); + } - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/aesni.c b/library/aesni.c index 12125c98c..d4abb4d6c 100644 --- a/library/aesni.c +++ b/library/aesni.c @@ -28,7 +28,8 @@ #if defined(__has_feature) #if __has_feature(memory_sanitizer) -#warning "MBEDTLS_AESNI_C is known to cause spurious error reports with some memory sanitizers as they do not understand the assembly code." +#warning \ + "MBEDTLS_AESNI_C is known to cause spurious error reports with some memory sanitizers as they do not understand the assembly code." #endif #endif @@ -47,22 +48,21 @@ /* * AES-NI support detection routine */ -int mbedtls_aesni_has_support( unsigned int what ) +int mbedtls_aesni_has_support(unsigned int what) { static int done = 0; static unsigned int c = 0; - if( ! done ) - { - asm( "movl $1, %%eax \n\t" + if (!done) { + asm ("movl $1, %%eax \n\t" "cpuid \n\t" : "=c" (c) : - : "eax", "ebx", "edx" ); + : "eax", "ebx", "edx"); done = 1; } - return( ( c & what ) != 0 ); + return (c & what) != 0; } /* @@ -94,12 +94,12 @@ int mbedtls_aesni_has_support( unsigned int what ) /* * AES-NI AES-ECB block en(de)cryption */ -int mbedtls_aesni_crypt_ecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_aesni_crypt_ecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]) { - asm( "movdqu (%3), %%xmm0 \n\t" // load input + asm ("movdqu (%3), %%xmm0 \n\t" // load input "movdqu (%1), %%xmm1 \n\t" // load round key 0 "pxor %%xmm1, %%xmm0 \n\t" // round 0 "add $16, %1 \n\t" // point to next round key @@ -110,51 +110,50 @@ int mbedtls_aesni_crypt_ecb( mbedtls_aes_context *ctx, "1: \n\t" // encryption loop "movdqu (%1), %%xmm1 \n\t" // load round key AESENC xmm1_xmm0 "\n\t" // do round - "add $16, %1 \n\t" // point to next round key - "subl $1, %0 \n\t" // loop - "jnz 1b \n\t" - "movdqu (%1), %%xmm1 \n\t" // load round key + "add $16, %1 \n\t" // point to next round key + "subl $1, %0 \n\t" // loop + "jnz 1b \n\t" + "movdqu (%1), %%xmm1 \n\t" // load round key AESENCLAST xmm1_xmm0 "\n\t" // last round - "jmp 3f \n\t" + "jmp 3f \n\t" - "2: \n\t" // decryption loop - "movdqu (%1), %%xmm1 \n\t" + "2: \n\t" // decryption loop + "movdqu (%1), %%xmm1 \n\t" AESDEC xmm1_xmm0 "\n\t" // do round - "add $16, %1 \n\t" - "subl $1, %0 \n\t" - "jnz 2b \n\t" - "movdqu (%1), %%xmm1 \n\t" // load round key + "add $16, %1 \n\t" + "subl $1, %0 \n\t" + "jnz 2b \n\t" + "movdqu (%1), %%xmm1 \n\t" // load round key AESDECLAST xmm1_xmm0 "\n\t" // last round - "3: \n\t" - "movdqu %%xmm0, (%4) \n\t" // export output + "3: \n\t" + "movdqu %%xmm0, (%4) \n\t" // export output : : "r" (ctx->nr), "r" (ctx->buf + ctx->rk_offset), "r" (mode), "r" (input), "r" (output) - : "memory", "cc", "xmm0", "xmm1" ); + : "memory", "cc", "xmm0", "xmm1"); - return( 0 ); + return 0; } /* * GCM multiplication: c = a times b in GF(2^128) * Based on [CLMUL-WP] algorithms 1 (with equation 27) and 5. */ -void mbedtls_aesni_gcm_mult( unsigned char c[16], - const unsigned char a[16], - const unsigned char b[16] ) +void mbedtls_aesni_gcm_mult(unsigned char c[16], + const unsigned char a[16], + const unsigned char b[16]) { unsigned char aa[16], bb[16], cc[16]; size_t i; /* The inputs are in big-endian order, so byte-reverse them */ - for( i = 0; i < 16; i++ ) - { + for (i = 0; i < 16; i++) { aa[i] = a[15 - i]; bb[i] = b[15 - i]; } - asm( "movdqu (%0), %%xmm0 \n\t" // a1:a0 + asm ("movdqu (%0), %%xmm0 \n\t" // a1:a0 "movdqu (%1), %%xmm1 \n\t" // b1:b0 /* @@ -168,30 +167,30 @@ void mbedtls_aesni_gcm_mult( unsigned char c[16], PCLMULQDQ xmm0_xmm2 ",0x11 \n\t" // a1*b1 = d1:d0 PCLMULQDQ xmm0_xmm3 ",0x10 \n\t" // a0*b1 = e1:e0 PCLMULQDQ xmm0_xmm4 ",0x01 \n\t" // a1*b0 = f1:f0 - "pxor %%xmm3, %%xmm4 \n\t" // e1+f1:e0+f0 - "movdqa %%xmm4, %%xmm3 \n\t" // same - "psrldq $8, %%xmm4 \n\t" // 0:e1+f1 - "pslldq $8, %%xmm3 \n\t" // e0+f0:0 - "pxor %%xmm4, %%xmm2 \n\t" // d1:d0+e1+f1 - "pxor %%xmm3, %%xmm1 \n\t" // c1+e0+f1:c0 + "pxor %%xmm3, %%xmm4 \n\t" // e1+f1:e0+f0 + "movdqa %%xmm4, %%xmm3 \n\t" // same + "psrldq $8, %%xmm4 \n\t" // 0:e1+f1 + "pslldq $8, %%xmm3 \n\t" // e0+f0:0 + "pxor %%xmm4, %%xmm2 \n\t" // d1:d0+e1+f1 + "pxor %%xmm3, %%xmm1 \n\t" // c1+e0+f1:c0 /* * Now shift the result one bit to the left, * taking advantage of [CLMUL-WP] eq 27 (p. 20) */ - "movdqa %%xmm1, %%xmm3 \n\t" // r1:r0 - "movdqa %%xmm2, %%xmm4 \n\t" // r3:r2 - "psllq $1, %%xmm1 \n\t" // r1<<1:r0<<1 - "psllq $1, %%xmm2 \n\t" // r3<<1:r2<<1 - "psrlq $63, %%xmm3 \n\t" // r1>>63:r0>>63 - "psrlq $63, %%xmm4 \n\t" // r3>>63:r2>>63 - "movdqa %%xmm3, %%xmm5 \n\t" // r1>>63:r0>>63 - "pslldq $8, %%xmm3 \n\t" // r0>>63:0 - "pslldq $8, %%xmm4 \n\t" // r2>>63:0 - "psrldq $8, %%xmm5 \n\t" // 0:r1>>63 - "por %%xmm3, %%xmm1 \n\t" // r1<<1|r0>>63:r0<<1 - "por %%xmm4, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1 - "por %%xmm5, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1|r1>>63 + "movdqa %%xmm1, %%xmm3 \n\t" // r1:r0 + "movdqa %%xmm2, %%xmm4 \n\t" // r3:r2 + "psllq $1, %%xmm1 \n\t" // r1<<1:r0<<1 + "psllq $1, %%xmm2 \n\t" // r3<<1:r2<<1 + "psrlq $63, %%xmm3 \n\t" // r1>>63:r0>>63 + "psrlq $63, %%xmm4 \n\t" // r3>>63:r2>>63 + "movdqa %%xmm3, %%xmm5 \n\t" // r1>>63:r0>>63 + "pslldq $8, %%xmm3 \n\t" // r0>>63:0 + "pslldq $8, %%xmm4 \n\t" // r2>>63:0 + "psrldq $8, %%xmm5 \n\t" // 0:r1>>63 + "por %%xmm3, %%xmm1 \n\t" // r1<<1|r0>>63:r0<<1 + "por %%xmm4, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1 + "por %%xmm5, %%xmm2 \n\t" // r3<<1|r2>>62:r2<<1|r1>>63 /* * Now reduce modulo the GCM polynomial x^128 + x^7 + x^2 + x + 1 @@ -199,51 +198,52 @@ void mbedtls_aesni_gcm_mult( unsigned char c[16], * Currently xmm2:xmm1 holds x3:x2:x1:x0 (already shifted). */ /* Step 2 (1) */ - "movdqa %%xmm1, %%xmm3 \n\t" // x1:x0 - "movdqa %%xmm1, %%xmm4 \n\t" // same - "movdqa %%xmm1, %%xmm5 \n\t" // same - "psllq $63, %%xmm3 \n\t" // x1<<63:x0<<63 = stuff:a - "psllq $62, %%xmm4 \n\t" // x1<<62:x0<<62 = stuff:b - "psllq $57, %%xmm5 \n\t" // x1<<57:x0<<57 = stuff:c + "movdqa %%xmm1, %%xmm3 \n\t" // x1:x0 + "movdqa %%xmm1, %%xmm4 \n\t" // same + "movdqa %%xmm1, %%xmm5 \n\t" // same + "psllq $63, %%xmm3 \n\t" // x1<<63:x0<<63 = stuff:a + "psllq $62, %%xmm4 \n\t" // x1<<62:x0<<62 = stuff:b + "psllq $57, %%xmm5 \n\t" // x1<<57:x0<<57 = stuff:c /* Step 2 (2) */ - "pxor %%xmm4, %%xmm3 \n\t" // stuff:a+b - "pxor %%xmm5, %%xmm3 \n\t" // stuff:a+b+c - "pslldq $8, %%xmm3 \n\t" // a+b+c:0 - "pxor %%xmm3, %%xmm1 \n\t" // x1+a+b+c:x0 = d:x0 + "pxor %%xmm4, %%xmm3 \n\t" // stuff:a+b + "pxor %%xmm5, %%xmm3 \n\t" // stuff:a+b+c + "pslldq $8, %%xmm3 \n\t" // a+b+c:0 + "pxor %%xmm3, %%xmm1 \n\t" // x1+a+b+c:x0 = d:x0 /* Steps 3 and 4 */ - "movdqa %%xmm1,%%xmm0 \n\t" // d:x0 - "movdqa %%xmm1,%%xmm4 \n\t" // same - "movdqa %%xmm1,%%xmm5 \n\t" // same - "psrlq $1, %%xmm0 \n\t" // e1:x0>>1 = e1:e0' - "psrlq $2, %%xmm4 \n\t" // f1:x0>>2 = f1:f0' - "psrlq $7, %%xmm5 \n\t" // g1:x0>>7 = g1:g0' - "pxor %%xmm4, %%xmm0 \n\t" // e1+f1:e0'+f0' - "pxor %%xmm5, %%xmm0 \n\t" // e1+f1+g1:e0'+f0'+g0' + "movdqa %%xmm1,%%xmm0 \n\t" // d:x0 + "movdqa %%xmm1,%%xmm4 \n\t" // same + "movdqa %%xmm1,%%xmm5 \n\t" // same + "psrlq $1, %%xmm0 \n\t" // e1:x0>>1 = e1:e0' + "psrlq $2, %%xmm4 \n\t" // f1:x0>>2 = f1:f0' + "psrlq $7, %%xmm5 \n\t" // g1:x0>>7 = g1:g0' + "pxor %%xmm4, %%xmm0 \n\t" // e1+f1:e0'+f0' + "pxor %%xmm5, %%xmm0 \n\t" // e1+f1+g1:e0'+f0'+g0' // e0'+f0'+g0' is almost e0+f0+g0, ex\tcept for some missing // bits carried from d. Now get those\t bits back in. - "movdqa %%xmm1,%%xmm3 \n\t" // d:x0 - "movdqa %%xmm1,%%xmm4 \n\t" // same - "movdqa %%xmm1,%%xmm5 \n\t" // same - "psllq $63, %%xmm3 \n\t" // d<<63:stuff - "psllq $62, %%xmm4 \n\t" // d<<62:stuff - "psllq $57, %%xmm5 \n\t" // d<<57:stuff - "pxor %%xmm4, %%xmm3 \n\t" // d<<63+d<<62:stuff - "pxor %%xmm5, %%xmm3 \n\t" // missing bits of d:stuff - "psrldq $8, %%xmm3 \n\t" // 0:missing bits of d - "pxor %%xmm3, %%xmm0 \n\t" // e1+f1+g1:e0+f0+g0 - "pxor %%xmm1, %%xmm0 \n\t" // h1:h0 - "pxor %%xmm2, %%xmm0 \n\t" // x3+h1:x2+h0 + "movdqa %%xmm1,%%xmm3 \n\t" // d:x0 + "movdqa %%xmm1,%%xmm4 \n\t" // same + "movdqa %%xmm1,%%xmm5 \n\t" // same + "psllq $63, %%xmm3 \n\t" // d<<63:stuff + "psllq $62, %%xmm4 \n\t" // d<<62:stuff + "psllq $57, %%xmm5 \n\t" // d<<57:stuff + "pxor %%xmm4, %%xmm3 \n\t" // d<<63+d<<62:stuff + "pxor %%xmm5, %%xmm3 \n\t" // missing bits of d:stuff + "psrldq $8, %%xmm3 \n\t" // 0:missing bits of d + "pxor %%xmm3, %%xmm0 \n\t" // e1+f1+g1:e0+f0+g0 + "pxor %%xmm1, %%xmm0 \n\t" // h1:h0 + "pxor %%xmm2, %%xmm0 \n\t" // x3+h1:x2+h0 - "movdqu %%xmm0, (%2) \n\t" // done + "movdqu %%xmm0, (%2) \n\t" // done : : "r" (aa), "r" (bb), "r" (cc) - : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" ); + : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5"); /* Now byte-reverse the outputs */ - for( i = 0; i < 16; i++ ) + for (i = 0; i < 16; i++) { c[i] = cc[15 - i]; + } return; } @@ -251,32 +251,33 @@ void mbedtls_aesni_gcm_mult( unsigned char c[16], /* * Compute decryption round keys from encryption round keys */ -void mbedtls_aesni_inverse_key( unsigned char *invkey, - const unsigned char *fwdkey, int nr ) +void mbedtls_aesni_inverse_key(unsigned char *invkey, + const unsigned char *fwdkey, int nr) { unsigned char *ik = invkey; const unsigned char *fk = fwdkey + 16 * nr; - memcpy( ik, fk, 16 ); + memcpy(ik, fk, 16); - for( fk -= 16, ik += 16; fk > fwdkey; fk -= 16, ik += 16 ) - asm( "movdqu (%0), %%xmm0 \n\t" + for (fk -= 16, ik += 16; fk > fwdkey; fk -= 16, ik += 16) { + asm ("movdqu (%0), %%xmm0 \n\t" AESIMC xmm0_xmm0 "\n\t" - "movdqu %%xmm0, (%1) \n\t" + "movdqu %%xmm0, (%1) \n\t" : : "r" (fk), "r" (ik) - : "memory", "xmm0" ); + : "memory", "xmm0"); + } - memcpy( ik, fk, 16 ); + memcpy(ik, fk, 16); } /* * Key expansion, 128-bit case */ -static void aesni_setkey_enc_128( unsigned char *rk, - const unsigned char *key ) +static void aesni_setkey_enc_128(unsigned char *rk, + const unsigned char *key) { - asm( "movdqu (%1), %%xmm0 \n\t" // copy the original key + asm ("movdqu (%1), %%xmm0 \n\t" // copy the original key "movdqu %%xmm0, (%0) \n\t" // as round key 0 "jmp 2f \n\t" // skip auxiliary routine @@ -317,16 +318,16 @@ static void aesni_setkey_enc_128( unsigned char *rk, AESKEYGENA xmm0_xmm1 ",0x36 \n\tcall 1b \n\t" : : "r" (rk), "r" (key) - : "memory", "cc", "0" ); + : "memory", "cc", "0"); } /* * Key expansion, 192-bit case */ -static void aesni_setkey_enc_192( unsigned char *rk, - const unsigned char *key ) +static void aesni_setkey_enc_192(unsigned char *rk, + const unsigned char *key) { - asm( "movdqu (%1), %%xmm0 \n\t" // copy original round key + asm ("movdqu (%1), %%xmm0 \n\t" // copy original round key "movdqu %%xmm0, (%0) \n\t" "add $16, %0 \n\t" "movq 16(%1), %%xmm1 \n\t" @@ -374,16 +375,16 @@ static void aesni_setkey_enc_192( unsigned char *rk, : : "r" (rk), "r" (key) - : "memory", "cc", "0" ); + : "memory", "cc", "0"); } /* * Key expansion, 256-bit case */ -static void aesni_setkey_enc_256( unsigned char *rk, - const unsigned char *key ) +static void aesni_setkey_enc_256(unsigned char *rk, + const unsigned char *key) { - asm( "movdqu (%1), %%xmm0 \n\t" + asm ("movdqu (%1), %%xmm0 \n\t" "movdqu %%xmm0, (%0) \n\t" "add $16, %0 \n\t" "movdqu 16(%1), %%xmm1 \n\t" @@ -414,23 +415,23 @@ static void aesni_setkey_enc_256( unsigned char *rk, /* Set xmm2 to stuff:Y:stuff:stuff with Y = subword( r11 ) * and proceed to generate next round key from there */ AESKEYGENA xmm0_xmm2 ",0x00 \n\t" - "pshufd $0xaa, %%xmm2, %%xmm2 \n\t" - "pxor %%xmm1, %%xmm2 \n\t" - "pslldq $4, %%xmm1 \n\t" - "pxor %%xmm1, %%xmm2 \n\t" - "pslldq $4, %%xmm1 \n\t" - "pxor %%xmm1, %%xmm2 \n\t" - "pslldq $4, %%xmm1 \n\t" - "pxor %%xmm2, %%xmm1 \n\t" - "add $16, %0 \n\t" - "movdqu %%xmm1, (%0) \n\t" - "ret \n\t" + "pshufd $0xaa, %%xmm2, %%xmm2 \n\t" + "pxor %%xmm1, %%xmm2 \n\t" + "pslldq $4, %%xmm1 \n\t" + "pxor %%xmm1, %%xmm2 \n\t" + "pslldq $4, %%xmm1 \n\t" + "pxor %%xmm1, %%xmm2 \n\t" + "pslldq $4, %%xmm1 \n\t" + "pxor %%xmm2, %%xmm1 \n\t" + "add $16, %0 \n\t" + "movdqu %%xmm1, (%0) \n\t" + "ret \n\t" /* * Main "loop" - Generating one more key than necessary, * see definition of mbedtls_aes_context.buf */ - "2: \n\t" + "2: \n\t" AESKEYGENA xmm1_xmm2 ",0x01 \n\tcall 1b \n\t" AESKEYGENA xmm1_xmm2 ",0x02 \n\tcall 1b \n\t" AESKEYGENA xmm1_xmm2 ",0x04 \n\tcall 1b \n\t" @@ -440,25 +441,24 @@ static void aesni_setkey_enc_256( unsigned char *rk, AESKEYGENA xmm1_xmm2 ",0x40 \n\tcall 1b \n\t" : : "r" (rk), "r" (key) - : "memory", "cc", "0" ); + : "memory", "cc", "0"); } /* * Key expansion, wrapper */ -int mbedtls_aesni_setkey_enc( unsigned char *rk, - const unsigned char *key, - size_t bits ) +int mbedtls_aesni_setkey_enc(unsigned char *rk, + const unsigned char *key, + size_t bits) { - switch( bits ) - { - case 128: aesni_setkey_enc_128( rk, key ); break; - case 192: aesni_setkey_enc_192( rk, key ); break; - case 256: aesni_setkey_enc_256( rk, key ); break; - default : return( MBEDTLS_ERR_AES_INVALID_KEY_LENGTH ); + switch (bits) { + case 128: aesni_setkey_enc_128(rk, key); break; + case 192: aesni_setkey_enc_192(rk, key); break; + case 256: aesni_setkey_enc_256(rk, key); break; + default: return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH; } - return( 0 ); + return 0; } #endif /* MBEDTLS_HAVE_X86_64 */ diff --git a/library/aesni.h b/library/aesni.h index 3359cfe94..a842fb703 100644 --- a/library/aesni.h +++ b/library/aesni.h @@ -33,8 +33,8 @@ #define MBEDTLS_AESNI_CLMUL 0x00000002u #if defined(MBEDTLS_HAVE_ASM) && defined(__GNUC__) && \ - ( defined(__amd64__) || defined(__x86_64__) ) && \ - ! defined(MBEDTLS_HAVE_X86_64) + (defined(__amd64__) || defined(__x86_64__)) && \ + !defined(MBEDTLS_HAVE_X86_64) #define MBEDTLS_HAVE_X86_64 #endif @@ -55,7 +55,7 @@ extern "C" { * * \return 1 if CPU has support for the feature, 0 otherwise */ -int mbedtls_aesni_has_support( unsigned int what ); +int mbedtls_aesni_has_support(unsigned int what); /** * \brief Internal AES-NI AES-ECB block encryption and decryption @@ -70,10 +70,10 @@ int mbedtls_aesni_has_support( unsigned int what ); * * \return 0 on success (cannot fail) */ -int mbedtls_aesni_crypt_ecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_aesni_crypt_ecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]); /** * \brief Internal GCM multiplication: c = a * b in GF(2^128) @@ -88,9 +88,9 @@ int mbedtls_aesni_crypt_ecb( mbedtls_aes_context *ctx, * \note Both operands and result are bit strings interpreted as * elements of GF(2^128) as per the GCM spec. */ -void mbedtls_aesni_gcm_mult( unsigned char c[16], - const unsigned char a[16], - const unsigned char b[16] ); +void mbedtls_aesni_gcm_mult(unsigned char c[16], + const unsigned char a[16], + const unsigned char b[16]); /** * \brief Internal round key inversion. This function computes @@ -103,9 +103,9 @@ void mbedtls_aesni_gcm_mult( unsigned char c[16], * \param fwdkey Original round keys (for encryption) * \param nr Number of rounds (that is, number of round keys minus one) */ -void mbedtls_aesni_inverse_key( unsigned char *invkey, - const unsigned char *fwdkey, - int nr ); +void mbedtls_aesni_inverse_key(unsigned char *invkey, + const unsigned char *fwdkey, + int nr); /** * \brief Internal key expansion for encryption @@ -119,9 +119,9 @@ void mbedtls_aesni_inverse_key( unsigned char *invkey, * * \return 0 if successful, or MBEDTLS_ERR_AES_INVALID_KEY_LENGTH */ -int mbedtls_aesni_setkey_enc( unsigned char *rk, - const unsigned char *key, - size_t bits ); +int mbedtls_aesni_setkey_enc(unsigned char *rk, + const unsigned char *key, + size_t bits); #ifdef __cplusplus } diff --git a/library/alignment.h b/library/alignment.h index 3c5fa2360..bfc965eae 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -36,10 +36,10 @@ * \param p pointer to 2 bytes of data * \return Data at the given address */ -inline uint16_t mbedtls_get_unaligned_uint16( const void *p ) +inline uint16_t mbedtls_get_unaligned_uint16(const void *p) { uint16_t r; - memcpy( &r, p, sizeof( r ) ); + memcpy(&r, p, sizeof(r)); return r; } @@ -50,9 +50,9 @@ inline uint16_t mbedtls_get_unaligned_uint16( const void *p ) * \param p pointer to 2 bytes of data * \param x data to write */ -inline void mbedtls_put_unaligned_uint16( void *p, uint16_t x ) +inline void mbedtls_put_unaligned_uint16(void *p, uint16_t x) { - memcpy( p, &x, sizeof( x ) ); + memcpy(p, &x, sizeof(x)); } /** @@ -62,10 +62,10 @@ inline void mbedtls_put_unaligned_uint16( void *p, uint16_t x ) * \param p pointer to 4 bytes of data * \return Data at the given address */ -inline uint32_t mbedtls_get_unaligned_uint32( const void *p ) +inline uint32_t mbedtls_get_unaligned_uint32(const void *p) { uint32_t r; - memcpy( &r, p, sizeof( r ) ); + memcpy(&r, p, sizeof(r)); return r; } @@ -76,9 +76,9 @@ inline uint32_t mbedtls_get_unaligned_uint32( const void *p ) * \param p pointer to 4 bytes of data * \param x data to write */ -inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) +inline void mbedtls_put_unaligned_uint32(void *p, uint32_t x) { - memcpy( p, &x, sizeof( x ) ); + memcpy(p, &x, sizeof(x)); } /** @@ -88,10 +88,10 @@ inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ) * \param p pointer to 8 bytes of data * \return Data at the given address */ -inline uint64_t mbedtls_get_unaligned_uint64( const void *p ) +inline uint64_t mbedtls_get_unaligned_uint64(const void *p) { uint64_t r; - memcpy( &r, p, sizeof( r ) ); + memcpy(&r, p, sizeof(r)); return r; } @@ -102,9 +102,9 @@ inline uint64_t mbedtls_get_unaligned_uint64( const void *p ) * \param p pointer to 8 bytes of data * \param x data to write */ -inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) +inline void mbedtls_put_unaligned_uint64(void *p, uint64_t x) { - memcpy( p, &x, sizeof( x ) ); + memcpy(p, &x, sizeof(x)); } /** Byte Reading Macros @@ -112,23 +112,23 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) * Given a multi-byte integer \p x, MBEDTLS_BYTE_n retrieves the n-th * byte from x, where byte 0 is the least significant byte. */ -#define MBEDTLS_BYTE_0( x ) ( (uint8_t) ( ( x ) & 0xff ) ) -#define MBEDTLS_BYTE_1( x ) ( (uint8_t) ( ( ( x ) >> 8 ) & 0xff ) ) -#define MBEDTLS_BYTE_2( x ) ( (uint8_t) ( ( ( x ) >> 16 ) & 0xff ) ) -#define MBEDTLS_BYTE_3( x ) ( (uint8_t) ( ( ( x ) >> 24 ) & 0xff ) ) -#define MBEDTLS_BYTE_4( x ) ( (uint8_t) ( ( ( x ) >> 32 ) & 0xff ) ) -#define MBEDTLS_BYTE_5( x ) ( (uint8_t) ( ( ( x ) >> 40 ) & 0xff ) ) -#define MBEDTLS_BYTE_6( x ) ( (uint8_t) ( ( ( x ) >> 48 ) & 0xff ) ) -#define MBEDTLS_BYTE_7( x ) ( (uint8_t) ( ( ( x ) >> 56 ) & 0xff ) ) +#define MBEDTLS_BYTE_0(x) ((uint8_t) ((x) & 0xff)) +#define MBEDTLS_BYTE_1(x) ((uint8_t) (((x) >> 8) & 0xff)) +#define MBEDTLS_BYTE_2(x) ((uint8_t) (((x) >> 16) & 0xff)) +#define MBEDTLS_BYTE_3(x) ((uint8_t) (((x) >> 24) & 0xff)) +#define MBEDTLS_BYTE_4(x) ((uint8_t) (((x) >> 32) & 0xff)) +#define MBEDTLS_BYTE_5(x) ((uint8_t) (((x) >> 40) & 0xff)) +#define MBEDTLS_BYTE_6(x) ((uint8_t) (((x) >> 48) & 0xff)) +#define MBEDTLS_BYTE_7(x) ((uint8_t) (((x) >> 56) & 0xff)) /* * Detect GCC built-in byteswap routines */ #if defined(__GNUC__) && defined(__GNUC_PREREQ) -#if __GNUC_PREREQ(4,8) +#if __GNUC_PREREQ(4, 8) #define MBEDTLS_BSWAP16 __builtin_bswap16 #endif /* __GNUC_PREREQ(4,8) */ -#if __GNUC_PREREQ(4,3) +#if __GNUC_PREREQ(4, 3) #define MBEDTLS_BSWAP32 __builtin_bswap32 #define MBEDTLS_BSWAP64 __builtin_bswap64 #endif /* __GNUC_PREREQ(4,3) */ @@ -169,36 +169,39 @@ inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ) * similar instruction. */ #if !defined(MBEDTLS_BSWAP16) -static inline uint16_t mbedtls_bswap16( uint16_t x ) { +static inline uint16_t mbedtls_bswap16(uint16_t x) +{ return - ( x & 0x00ff ) << 8 | - ( x & 0xff00 ) >> 8; + (x & 0x00ff) << 8 | + (x & 0xff00) >> 8; } #define MBEDTLS_BSWAP16 mbedtls_bswap16 #endif /* !defined(MBEDTLS_BSWAP16) */ #if !defined(MBEDTLS_BSWAP32) -static inline uint32_t mbedtls_bswap32( uint32_t x ) { +static inline uint32_t mbedtls_bswap32(uint32_t x) +{ return - ( x & 0x000000ff ) << 24 | - ( x & 0x0000ff00 ) << 8 | - ( x & 0x00ff0000 ) >> 8 | - ( x & 0xff000000 ) >> 24; + (x & 0x000000ff) << 24 | + (x & 0x0000ff00) << 8 | + (x & 0x00ff0000) >> 8 | + (x & 0xff000000) >> 24; } #define MBEDTLS_BSWAP32 mbedtls_bswap32 #endif /* !defined(MBEDTLS_BSWAP32) */ #if !defined(MBEDTLS_BSWAP64) -static inline uint64_t mbedtls_bswap64( uint64_t x ) { +static inline uint64_t mbedtls_bswap64(uint64_t x) +{ return - ( x & 0x00000000000000ff ) << 56 | - ( x & 0x000000000000ff00 ) << 40 | - ( x & 0x0000000000ff0000 ) << 24 | - ( x & 0x00000000ff000000 ) << 8 | - ( x & 0x000000ff00000000 ) >> 8 | - ( x & 0x0000ff0000000000 ) >> 24 | - ( x & 0x00ff000000000000 ) >> 40 | - ( x & 0xff00000000000000 ) >> 56; + (x & 0x00000000000000ff) << 56 | + (x & 0x000000000000ff00) << 40 | + (x & 0x0000000000ff0000) << 24 | + (x & 0x00000000ff000000) << 8 | + (x & 0x000000ff00000000) >> 8 | + (x & 0x0000ff0000000000) >> 24 | + (x & 0x00ff000000000000) >> 40 | + (x & 0xff00000000000000) >> 56; } #define MBEDTLS_BSWAP64 mbedtls_bswap64 #endif /* !defined(MBEDTLS_BSWAP64) */ @@ -219,8 +222,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the four bytes to build the 32 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT32_BE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT32_BE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? mbedtls_get_unaligned_uint32((data) + (offset)) \ : MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \ ) @@ -234,17 +237,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 32 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT32_BE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint32((data) + (offset), (uint32_t)(n)); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t)(n))); \ - } \ -} +#define MBEDTLS_PUT_UINT32_BE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), (uint32_t) (n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t) (n))); \ + } \ + } /** * Get the unsigned 32 bits integer corresponding to four bytes in @@ -255,8 +258,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the four bytes to build the 32 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT32_LE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT32_LE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? MBEDTLS_BSWAP32(mbedtls_get_unaligned_uint32((data) + (offset))) \ : mbedtls_get_unaligned_uint32((data) + (offset)) \ ) @@ -271,17 +274,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 32 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT32_LE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t)(n))); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint32((data) + (offset), ((uint32_t)(n))); \ - } \ -} +#define MBEDTLS_PUT_UINT32_LE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), MBEDTLS_BSWAP32((uint32_t) (n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint32((data) + (offset), ((uint32_t) (n))); \ + } \ + } /** * Get the unsigned 16 bits integer corresponding to two bytes in @@ -292,8 +295,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the two bytes to build the 16 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT16_LE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT16_LE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \ : mbedtls_get_unaligned_uint16((data) + (offset)) \ ) @@ -307,17 +310,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 16 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT16_LE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t)(n))); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t)(n)); \ - } \ -} +#define MBEDTLS_PUT_UINT16_LE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t) (n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t) (n)); \ + } \ + } /** * Get the unsigned 16 bits integer corresponding to two bytes in @@ -328,8 +331,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the two bytes to build the 16 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT16_BE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT16_BE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? mbedtls_get_unaligned_uint16((data) + (offset)) \ : MBEDTLS_BSWAP16(mbedtls_get_unaligned_uint16((data) + (offset))) \ ) @@ -343,17 +346,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 16 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT16_BE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t)(n)); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t)(n))); \ - } \ -} +#define MBEDTLS_PUT_UINT16_BE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), (uint16_t) (n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint16((data) + (offset), MBEDTLS_BSWAP16((uint16_t) (n))); \ + } \ + } /** * Get the unsigned 24 bits integer corresponding to three bytes in @@ -364,11 +367,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the three bytes to build the 24 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT24_BE( data , offset ) \ +#define MBEDTLS_GET_UINT24_BE(data, offset) \ ( \ - ( (uint32_t) ( data )[( offset ) ] << 16 ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] ) \ + ((uint32_t) (data)[(offset)] << 16) \ + | ((uint32_t) (data)[(offset) + 1] << 8) \ + | ((uint32_t) (data)[(offset) + 2]) \ ) /** @@ -380,12 +383,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 24 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT24_BE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_2( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_0( n ); \ -} +#define MBEDTLS_PUT_UINT24_BE(n, data, offset) \ + { \ + (data)[(offset)] = MBEDTLS_BYTE_2(n); \ + (data)[(offset) + 1] = MBEDTLS_BYTE_1(n); \ + (data)[(offset) + 2] = MBEDTLS_BYTE_0(n); \ + } /** * Get the unsigned 24 bits integer corresponding to three bytes in @@ -396,11 +399,11 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the three bytes to build the 24 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT24_LE( data, offset ) \ +#define MBEDTLS_GET_UINT24_LE(data, offset) \ ( \ - ( (uint32_t) ( data )[( offset ) ] ) \ - | ( (uint32_t) ( data )[( offset ) + 1] << 8 ) \ - | ( (uint32_t) ( data )[( offset ) + 2] << 16 ) \ + ((uint32_t) (data)[(offset)]) \ + | ((uint32_t) (data)[(offset) + 1] << 8) \ + | ((uint32_t) (data)[(offset) + 2] << 16) \ ) /** @@ -412,12 +415,12 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 24 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT24_LE( n, data, offset ) \ -{ \ - ( data )[( offset ) ] = MBEDTLS_BYTE_0( n ); \ - ( data )[( offset ) + 1] = MBEDTLS_BYTE_1( n ); \ - ( data )[( offset ) + 2] = MBEDTLS_BYTE_2( n ); \ -} +#define MBEDTLS_PUT_UINT24_LE(n, data, offset) \ + { \ + (data)[(offset)] = MBEDTLS_BYTE_0(n); \ + (data)[(offset) + 1] = MBEDTLS_BYTE_1(n); \ + (data)[(offset) + 2] = MBEDTLS_BYTE_2(n); \ + } /** * Get the unsigned 64 bits integer corresponding to eight bytes in @@ -428,8 +431,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the eight bytes to build the 64 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT64_BE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT64_BE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? mbedtls_get_unaligned_uint64((data) + (offset)) \ : MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \ ) @@ -443,17 +446,17 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the most significant * byte of the 64 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT64_BE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t)(n)); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t)(n))); \ - } \ -} +#define MBEDTLS_PUT_UINT64_BE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t) (n)); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t) (n))); \ + } \ + } /** * Get the unsigned 64 bits integer corresponding to eight bytes in @@ -464,8 +467,8 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * byte of the eight bytes to build the 64 bits unsigned * integer from. */ -#define MBEDTLS_GET_UINT64_LE( data, offset ) \ - ( ( MBEDTLS_IS_BIG_ENDIAN ) \ +#define MBEDTLS_GET_UINT64_LE(data, offset) \ + ((MBEDTLS_IS_BIG_ENDIAN) \ ? MBEDTLS_BSWAP64(mbedtls_get_unaligned_uint64((data) + (offset))) \ : mbedtls_get_unaligned_uint64((data) + (offset)) \ ) @@ -479,16 +482,16 @@ static const uint16_t mbedtls_byte_order_detector = { 0x100 }; * \param offset Offset from \p data where to put the least significant * byte of the 64 bits unsigned integer \p n. */ -#define MBEDTLS_PUT_UINT64_LE( n, data, offset ) \ -{ \ - if ( MBEDTLS_IS_BIG_ENDIAN ) \ - { \ - mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t)(n))); \ - } \ - else \ - { \ - mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t)(n)); \ - } \ -} +#define MBEDTLS_PUT_UINT64_LE(n, data, offset) \ + { \ + if (MBEDTLS_IS_BIG_ENDIAN) \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), MBEDTLS_BSWAP64((uint64_t) (n))); \ + } \ + else \ + { \ + mbedtls_put_unaligned_uint64((data) + (offset), (uint64_t) (n)); \ + } \ + } #endif /* MBEDTLS_LIBRARY_ALIGNMENT_H */ diff --git a/library/aria.c b/library/aria.c index 517e10a77..098036225 100644 --- a/library/aria.c +++ b/library/aria.c @@ -38,10 +38,10 @@ #include "mbedtls/platform_util.h" /* Parameter validation macros */ -#define ARIA_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_ARIA_BAD_INPUT_DATA ) -#define ARIA_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) +#define ARIA_VALIDATE_RET(cond) \ + MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_ARIA_BAD_INPUT_DATA) +#define ARIA_VALIDATE(cond) \ + MBEDTLS_INTERNAL_VALIDATE(cond) /* * modify byte order: ( A B C D ) -> ( B A D C ), i.e. swap pairs of bytes @@ -55,30 +55,30 @@ #if defined(__arm__) /* rev16 available from v6 up */ /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */ #if defined(__GNUC__) && \ - ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) && \ + (!defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000) && \ __ARM_ARCH >= 6 -static inline uint32_t aria_p1( uint32_t x ) +static inline uint32_t aria_p1(uint32_t x) { uint32_t r; - __asm( "rev16 %0, %1" : "=l" (r) : "l" (x) ); - return( r ); + __asm("rev16 %0, %1" : "=l" (r) : "l" (x)); + return r; } #define ARIA_P1 aria_p1 #elif defined(__ARMCC_VERSION) && __ARMCC_VERSION < 6000000 && \ - ( __TARGET_ARCH_ARM >= 6 || __TARGET_ARCH_THUMB >= 3 ) -static inline uint32_t aria_p1( uint32_t x ) + (__TARGET_ARCH_ARM >= 6 || __TARGET_ARCH_THUMB >= 3) +static inline uint32_t aria_p1(uint32_t x) { uint32_t r; - __asm( "rev16 r, x" ); - return( r ); + __asm("rev16 r, x"); + return r; } #define ARIA_P1 aria_p1 #endif #endif /* arm */ #if defined(__GNUC__) && \ - defined(__i386__) || defined(__amd64__) || defined( __x86_64__) + defined(__i386__) || defined(__amd64__) || defined(__x86_64__) /* I couldn't find an Intel equivalent of rev16, so two instructions */ -#define ARIA_P1(x) ARIA_P2( ARIA_P3( x ) ) +#define ARIA_P1(x) ARIA_P2(ARIA_P3(x)) #endif /* x86 gnuc */ #endif /* MBEDTLS_HAVE_ASM && GNUC */ #if !defined(ARIA_P1) @@ -124,28 +124,28 @@ static inline uint32_t aria_p1( uint32_t x ) * half of App. B.1 in [1] in terms of 4-byte operators P1, P2, P3 and P4. * The implementation below uses only P1 and P2 as they are sufficient. */ -static inline void aria_a( uint32_t *a, uint32_t *b, - uint32_t *c, uint32_t *d ) +static inline void aria_a(uint32_t *a, uint32_t *b, + uint32_t *c, uint32_t *d) { uint32_t ta, tb, tc; ta = *b; // 4567 *b = *a; // 0123 - *a = ARIA_P2( ta ); // 6745 - tb = ARIA_P2( *d ); // efcd - *d = ARIA_P1( *c ); // 98ba - *c = ARIA_P1( tb ); // fedc + *a = ARIA_P2(ta); // 6745 + tb = ARIA_P2(*d); // efcd + *d = ARIA_P1(*c); // 98ba + *c = ARIA_P1(tb); // fedc ta ^= *d; // 4567+98ba - tc = ARIA_P2( *b ); // 2301 - ta = ARIA_P1( ta ) ^ tc ^ *c; // 2301+5476+89ab+fedc - tb ^= ARIA_P2( *d ); // ba98+efcd - tc ^= ARIA_P1( *a ); // 2301+7654 + tc = ARIA_P2(*b); // 2301 + ta = ARIA_P1(ta) ^ tc ^ *c; // 2301+5476+89ab+fedc + tb ^= ARIA_P2(*d); // ba98+efcd + tc ^= ARIA_P1(*a); // 2301+7654 *b ^= ta ^ tb; // 0123+2301+5476+89ab+ba98+efcd+fedc OUT - tb = ARIA_P2( tb ) ^ ta; // 2301+5476+89ab+98ba+cdef+fedc - *a ^= ARIA_P1( tb ); // 3210+4567+6745+89ab+98ba+dcfe+efcd OUT - ta = ARIA_P2( ta ); // 0123+7654+ab89+dcfe - *d ^= ARIA_P1( ta ) ^ tc; // 1032+2301+6745+7654+98ba+ba98+cdef OUT - tc = ARIA_P2( tc ); // 0123+5476 - *c ^= ARIA_P1( tc ) ^ ta; // 0123+1032+4567+7654+ab89+dcfe+fedc OUT + tb = ARIA_P2(tb) ^ ta; // 2301+5476+89ab+98ba+cdef+fedc + *a ^= ARIA_P1(tb); // 3210+4567+6745+89ab+98ba+dcfe+efcd OUT + ta = ARIA_P2(ta); // 0123+7654+ab89+dcfe + *d ^= ARIA_P1(ta) ^ tc; // 1032+2301+6745+7654+98ba+ba98+cdef OUT + tc = ARIA_P2(tc); // 0123+5476 + *c ^= ARIA_P1(tc) ^ ta; // 0123+1032+4567+7654+ab89+dcfe+fedc OUT } /* @@ -156,27 +156,27 @@ static inline void aria_a( uint32_t *a, uint32_t *b, * By passing sb1, sb2, is1, is2 as S-Boxes you get SL1 * By passing is1, is2, sb1, sb2 as S-Boxes you get SL2 */ -static inline void aria_sl( uint32_t *a, uint32_t *b, - uint32_t *c, uint32_t *d, - const uint8_t sa[256], const uint8_t sb[256], - const uint8_t sc[256], const uint8_t sd[256] ) +static inline void aria_sl(uint32_t *a, uint32_t *b, + uint32_t *c, uint32_t *d, + const uint8_t sa[256], const uint8_t sb[256], + const uint8_t sc[256], const uint8_t sd[256]) { - *a = ( (uint32_t) sa[ MBEDTLS_BYTE_0( *a ) ] ) ^ - (((uint32_t) sb[ MBEDTLS_BYTE_1( *a ) ]) << 8) ^ - (((uint32_t) sc[ MBEDTLS_BYTE_2( *a ) ]) << 16) ^ - (((uint32_t) sd[ MBEDTLS_BYTE_3( *a ) ]) << 24); - *b = ( (uint32_t) sa[ MBEDTLS_BYTE_0( *b ) ] ) ^ - (((uint32_t) sb[ MBEDTLS_BYTE_1( *b ) ]) << 8) ^ - (((uint32_t) sc[ MBEDTLS_BYTE_2( *b ) ]) << 16) ^ - (((uint32_t) sd[ MBEDTLS_BYTE_3( *b ) ]) << 24); - *c = ( (uint32_t) sa[ MBEDTLS_BYTE_0( *c ) ] ) ^ - (((uint32_t) sb[ MBEDTLS_BYTE_1( *c ) ]) << 8) ^ - (((uint32_t) sc[ MBEDTLS_BYTE_2( *c ) ]) << 16) ^ - (((uint32_t) sd[ MBEDTLS_BYTE_3( *c ) ]) << 24); - *d = ( (uint32_t) sa[ MBEDTLS_BYTE_0( *d ) ] ) ^ - (((uint32_t) sb[ MBEDTLS_BYTE_1( *d ) ]) << 8) ^ - (((uint32_t) sc[ MBEDTLS_BYTE_2( *d ) ]) << 16) ^ - (((uint32_t) sd[ MBEDTLS_BYTE_3( *d ) ]) << 24); + *a = ((uint32_t) sa[MBEDTLS_BYTE_0(*a)]) ^ + (((uint32_t) sb[MBEDTLS_BYTE_1(*a)]) << 8) ^ + (((uint32_t) sc[MBEDTLS_BYTE_2(*a)]) << 16) ^ + (((uint32_t) sd[MBEDTLS_BYTE_3(*a)]) << 24); + *b = ((uint32_t) sa[MBEDTLS_BYTE_0(*b)]) ^ + (((uint32_t) sb[MBEDTLS_BYTE_1(*b)]) << 8) ^ + (((uint32_t) sc[MBEDTLS_BYTE_2(*b)]) << 16) ^ + (((uint32_t) sd[MBEDTLS_BYTE_3(*b)]) << 24); + *c = ((uint32_t) sa[MBEDTLS_BYTE_0(*c)]) ^ + (((uint32_t) sb[MBEDTLS_BYTE_1(*c)]) << 8) ^ + (((uint32_t) sc[MBEDTLS_BYTE_2(*c)]) << 16) ^ + (((uint32_t) sd[MBEDTLS_BYTE_3(*c)]) << 24); + *d = ((uint32_t) sa[MBEDTLS_BYTE_0(*d)]) ^ + (((uint32_t) sb[MBEDTLS_BYTE_1(*d)]) << 8) ^ + (((uint32_t) sc[MBEDTLS_BYTE_2(*d)]) << 16) ^ + (((uint32_t) sd[MBEDTLS_BYTE_3(*d)]) << 24); } /* @@ -289,8 +289,8 @@ static const uint8_t aria_is2[256] = /* * Helper for key schedule: r = FO( p, k ) ^ x */ -static void aria_fo_xor( uint32_t r[4], const uint32_t p[4], - const uint32_t k[4], const uint32_t x[4] ) +static void aria_fo_xor(uint32_t r[4], const uint32_t p[4], + const uint32_t k[4], const uint32_t x[4]) { uint32_t a, b, c, d; @@ -299,8 +299,8 @@ static void aria_fo_xor( uint32_t r[4], const uint32_t p[4], c = p[2] ^ k[2]; d = p[3] ^ k[3]; - aria_sl( &a, &b, &c, &d, aria_sb1, aria_sb2, aria_is1, aria_is2 ); - aria_a( &a, &b, &c, &d ); + aria_sl(&a, &b, &c, &d, aria_sb1, aria_sb2, aria_is1, aria_is2); + aria_a(&a, &b, &c, &d); r[0] = a ^ x[0]; r[1] = b ^ x[1]; @@ -311,8 +311,8 @@ static void aria_fo_xor( uint32_t r[4], const uint32_t p[4], /* * Helper for key schedule: r = FE( p, k ) ^ x */ -static void aria_fe_xor( uint32_t r[4], const uint32_t p[4], - const uint32_t k[4], const uint32_t x[4] ) +static void aria_fe_xor(uint32_t r[4], const uint32_t p[4], + const uint32_t k[4], const uint32_t x[4]) { uint32_t a, b, c, d; @@ -321,8 +321,8 @@ static void aria_fe_xor( uint32_t r[4], const uint32_t p[4], c = p[2] ^ k[2]; d = p[3] ^ k[3]; - aria_sl( &a, &b, &c, &d, aria_is1, aria_is2, aria_sb1, aria_sb2 ); - aria_a( &a, &b, &c, &d ); + aria_sl(&a, &b, &c, &d, aria_is1, aria_is2, aria_sb1, aria_sb2); + aria_a(&a, &b, &c, &d); r[0] = a ^ x[0]; r[1] = b ^ x[1]; @@ -337,8 +337,8 @@ static void aria_fe_xor( uint32_t r[4], const uint32_t p[4], * MBEDTLS_GET_UINT32_LE / MBEDTLS_PUT_UINT32_LE ) so we need to reverse * bytes here. */ -static void aria_rot128( uint32_t r[4], const uint32_t a[4], - const uint32_t b[4], uint8_t n ) +static void aria_rot128(uint32_t r[4], const uint32_t a[4], + const uint32_t b[4], uint8_t n) { uint8_t i, j; uint32_t t, u; @@ -346,15 +346,14 @@ static void aria_rot128( uint32_t r[4], const uint32_t a[4], const uint8_t n1 = n % 32; // bit offset const uint8_t n2 = n1 ? 32 - n1 : 0; // reverse bit offset - j = ( n / 32 ) % 4; // initial word offset - t = ARIA_P3( b[j] ); // big endian - for( i = 0; i < 4; i++ ) - { - j = ( j + 1 ) % 4; // get next word, big endian - u = ARIA_P3( b[j] ); + j = (n / 32) % 4; // initial word offset + t = ARIA_P3(b[j]); // big endian + for (i = 0; i < 4; i++) { + j = (j + 1) % 4; // get next word, big endian + u = ARIA_P3(b[j]); t <<= n1; // rotate t |= u >> n2; - t = ARIA_P3( t ); // back to little endian + t = ARIA_P3(t); // back to little endian r[i] = a[i] ^ t; // store t = u; // move to next word } @@ -363,8 +362,8 @@ static void aria_rot128( uint32_t r[4], const uint32_t a[4], /* * Set encryption key */ -int mbedtls_aria_setkey_enc( mbedtls_aria_context *ctx, - const unsigned char *key, unsigned int keybits ) +int mbedtls_aria_setkey_enc(mbedtls_aria_context *ctx, + const unsigned char *key, unsigned int keybits) { /* round constant masks */ const uint32_t rc[3][4] = @@ -376,74 +375,71 @@ int mbedtls_aria_setkey_enc( mbedtls_aria_context *ctx, int i; uint32_t w[4][4], *w2; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( key != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(key != NULL); - if( keybits != 128 && keybits != 192 && keybits != 256 ) - return( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA ); + if (keybits != 128 && keybits != 192 && keybits != 256) { + return MBEDTLS_ERR_ARIA_BAD_INPUT_DATA; + } /* Copy key to W0 (and potential remainder to W1) */ - w[0][0] = MBEDTLS_GET_UINT32_LE( key, 0 ); - w[0][1] = MBEDTLS_GET_UINT32_LE( key, 4 ); - w[0][2] = MBEDTLS_GET_UINT32_LE( key, 8 ); - w[0][3] = MBEDTLS_GET_UINT32_LE( key, 12 ); + w[0][0] = MBEDTLS_GET_UINT32_LE(key, 0); + w[0][1] = MBEDTLS_GET_UINT32_LE(key, 4); + w[0][2] = MBEDTLS_GET_UINT32_LE(key, 8); + w[0][3] = MBEDTLS_GET_UINT32_LE(key, 12); - memset( w[1], 0, 16 ); - if( keybits >= 192 ) - { - w[1][0] = MBEDTLS_GET_UINT32_LE( key, 16 ); // 192 bit key - w[1][1] = MBEDTLS_GET_UINT32_LE( key, 20 ); + memset(w[1], 0, 16); + if (keybits >= 192) { + w[1][0] = MBEDTLS_GET_UINT32_LE(key, 16); // 192 bit key + w[1][1] = MBEDTLS_GET_UINT32_LE(key, 20); } - if( keybits == 256 ) - { - w[1][2] = MBEDTLS_GET_UINT32_LE( key, 24 ); // 256 bit key - w[1][3] = MBEDTLS_GET_UINT32_LE( key, 28 ); + if (keybits == 256) { + w[1][2] = MBEDTLS_GET_UINT32_LE(key, 24); // 256 bit key + w[1][3] = MBEDTLS_GET_UINT32_LE(key, 28); } - i = ( keybits - 128 ) >> 6; // index: 0, 1, 2 + i = (keybits - 128) >> 6; // index: 0, 1, 2 ctx->nr = 12 + 2 * i; // no. rounds: 12, 14, 16 - aria_fo_xor( w[1], w[0], rc[i], w[1] ); // W1 = FO(W0, CK1) ^ KR + aria_fo_xor(w[1], w[0], rc[i], w[1]); // W1 = FO(W0, CK1) ^ KR i = i < 2 ? i + 1 : 0; - aria_fe_xor( w[2], w[1], rc[i], w[0] ); // W2 = FE(W1, CK2) ^ W0 + aria_fe_xor(w[2], w[1], rc[i], w[0]); // W2 = FE(W1, CK2) ^ W0 i = i < 2 ? i + 1 : 0; - aria_fo_xor( w[3], w[2], rc[i], w[1] ); // W3 = FO(W2, CK3) ^ W1 + aria_fo_xor(w[3], w[2], rc[i], w[1]); // W3 = FO(W2, CK3) ^ W1 - for( i = 0; i < 4; i++ ) // create round keys - { + for (i = 0; i < 4; i++) { // create round keys w2 = w[(i + 1) & 3]; - aria_rot128( ctx->rk[i ], w[i], w2, 128 - 19 ); - aria_rot128( ctx->rk[i + 4], w[i], w2, 128 - 31 ); - aria_rot128( ctx->rk[i + 8], w[i], w2, 61 ); - aria_rot128( ctx->rk[i + 12], w[i], w2, 31 ); + aria_rot128(ctx->rk[i], w[i], w2, 128 - 19); + aria_rot128(ctx->rk[i + 4], w[i], w2, 128 - 31); + aria_rot128(ctx->rk[i + 8], w[i], w2, 61); + aria_rot128(ctx->rk[i + 12], w[i], w2, 31); } - aria_rot128( ctx->rk[16], w[0], w[1], 19 ); + aria_rot128(ctx->rk[16], w[0], w[1], 19); /* w holds enough info to reconstruct the round keys */ - mbedtls_platform_zeroize( w, sizeof( w ) ); + mbedtls_platform_zeroize(w, sizeof(w)); - return( 0 ); + return 0; } /* * Set decryption key */ -int mbedtls_aria_setkey_dec( mbedtls_aria_context *ctx, - const unsigned char *key, unsigned int keybits ) +int mbedtls_aria_setkey_dec(mbedtls_aria_context *ctx, + const unsigned char *key, unsigned int keybits) { int i, j, k, ret; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( key != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(key != NULL); - ret = mbedtls_aria_setkey_enc( ctx, key, keybits ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_aria_setkey_enc(ctx, key, keybits); + if (ret != 0) { + return ret; + } /* flip the order of round keys */ - for( i = 0, j = ctx->nr; i < j; i++, j-- ) - { - for( k = 0; k < 4; k++ ) - { + for (i = 0, j = ctx->nr; i < j; i++, j--) { + for (k = 0; k < 4; k++) { uint32_t t = ctx->rk[i][k]; ctx->rk[i][k] = ctx->rk[j][k]; ctx->rk[j][k] = t; @@ -451,45 +447,43 @@ int mbedtls_aria_setkey_dec( mbedtls_aria_context *ctx, } /* apply affine transform to middle keys */ - for( i = 1; i < ctx->nr; i++ ) - { - aria_a( &ctx->rk[i][0], &ctx->rk[i][1], - &ctx->rk[i][2], &ctx->rk[i][3] ); + for (i = 1; i < ctx->nr; i++) { + aria_a(&ctx->rk[i][0], &ctx->rk[i][1], + &ctx->rk[i][2], &ctx->rk[i][3]); } - return( 0 ); + return 0; } /* * Encrypt a block */ -int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx, - const unsigned char input[MBEDTLS_ARIA_BLOCKSIZE], - unsigned char output[MBEDTLS_ARIA_BLOCKSIZE] ) +int mbedtls_aria_crypt_ecb(mbedtls_aria_context *ctx, + const unsigned char input[MBEDTLS_ARIA_BLOCKSIZE], + unsigned char output[MBEDTLS_ARIA_BLOCKSIZE]) { int i; uint32_t a, b, c, d; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( input != NULL ); - ARIA_VALIDATE_RET( output != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(input != NULL); + ARIA_VALIDATE_RET(output != NULL); - a = MBEDTLS_GET_UINT32_LE( input, 0 ); - b = MBEDTLS_GET_UINT32_LE( input, 4 ); - c = MBEDTLS_GET_UINT32_LE( input, 8 ); - d = MBEDTLS_GET_UINT32_LE( input, 12 ); + a = MBEDTLS_GET_UINT32_LE(input, 0); + b = MBEDTLS_GET_UINT32_LE(input, 4); + c = MBEDTLS_GET_UINT32_LE(input, 8); + d = MBEDTLS_GET_UINT32_LE(input, 12); i = 0; - while( 1 ) - { + while (1) { a ^= ctx->rk[i][0]; b ^= ctx->rk[i][1]; c ^= ctx->rk[i][2]; d ^= ctx->rk[i][3]; i++; - aria_sl( &a, &b, &c, &d, aria_sb1, aria_sb2, aria_is1, aria_is2 ); - aria_a( &a, &b, &c, &d ); + aria_sl(&a, &b, &c, &d, aria_sb1, aria_sb2, aria_is1, aria_is2); + aria_a(&a, &b, &c, &d); a ^= ctx->rk[i][0]; b ^= ctx->rk[i][1]; @@ -497,10 +491,11 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx, d ^= ctx->rk[i][3]; i++; - aria_sl( &a, &b, &c, &d, aria_is1, aria_is2, aria_sb1, aria_sb2 ); - if( i >= ctx->nr ) + aria_sl(&a, &b, &c, &d, aria_is1, aria_is2, aria_sb1, aria_sb2); + if (i >= ctx->nr) { break; - aria_a( &a, &b, &c, &d ); + } + aria_a(&a, &b, &c, &d); } /* final key mixing */ @@ -509,77 +504,74 @@ int mbedtls_aria_crypt_ecb( mbedtls_aria_context *ctx, c ^= ctx->rk[i][2]; d ^= ctx->rk[i][3]; - MBEDTLS_PUT_UINT32_LE( a, output, 0 ); - MBEDTLS_PUT_UINT32_LE( b, output, 4 ); - MBEDTLS_PUT_UINT32_LE( c, output, 8 ); - MBEDTLS_PUT_UINT32_LE( d, output, 12 ); + MBEDTLS_PUT_UINT32_LE(a, output, 0); + MBEDTLS_PUT_UINT32_LE(b, output, 4); + MBEDTLS_PUT_UINT32_LE(c, output, 8); + MBEDTLS_PUT_UINT32_LE(d, output, 12); - return( 0 ); + return 0; } /* Initialize context */ -void mbedtls_aria_init( mbedtls_aria_context *ctx ) +void mbedtls_aria_init(mbedtls_aria_context *ctx) { - ARIA_VALIDATE( ctx != NULL ); - memset( ctx, 0, sizeof( mbedtls_aria_context ) ); + ARIA_VALIDATE(ctx != NULL); + memset(ctx, 0, sizeof(mbedtls_aria_context)); } /* Clear context */ -void mbedtls_aria_free( mbedtls_aria_context *ctx ) +void mbedtls_aria_free(mbedtls_aria_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_aria_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_aria_context)); } #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * ARIA-CBC buffer encryption/decryption */ -int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, - int mode, - size_t length, - unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aria_crypt_cbc(mbedtls_aria_context *ctx, + int mode, + size_t length, + unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output) { unsigned char temp[MBEDTLS_ARIA_BLOCKSIZE]; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( mode == MBEDTLS_ARIA_ENCRYPT || - mode == MBEDTLS_ARIA_DECRYPT ); - ARIA_VALIDATE_RET( length == 0 || input != NULL ); - ARIA_VALIDATE_RET( length == 0 || output != NULL ); - ARIA_VALIDATE_RET( iv != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(mode == MBEDTLS_ARIA_ENCRYPT || + mode == MBEDTLS_ARIA_DECRYPT); + ARIA_VALIDATE_RET(length == 0 || input != NULL); + ARIA_VALIDATE_RET(length == 0 || output != NULL); + ARIA_VALIDATE_RET(iv != NULL); - if( length % MBEDTLS_ARIA_BLOCKSIZE ) - return( MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH ); + if (length % MBEDTLS_ARIA_BLOCKSIZE) { + return MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH; + } - if( mode == MBEDTLS_ARIA_DECRYPT ) - { - while( length > 0 ) - { - memcpy( temp, input, MBEDTLS_ARIA_BLOCKSIZE ); - mbedtls_aria_crypt_ecb( ctx, input, output ); + if (mode == MBEDTLS_ARIA_DECRYPT) { + while (length > 0) { + memcpy(temp, input, MBEDTLS_ARIA_BLOCKSIZE); + mbedtls_aria_crypt_ecb(ctx, input, output); - mbedtls_xor( output, output, iv, MBEDTLS_ARIA_BLOCKSIZE ); + mbedtls_xor(output, output, iv, MBEDTLS_ARIA_BLOCKSIZE); - memcpy( iv, temp, MBEDTLS_ARIA_BLOCKSIZE ); + memcpy(iv, temp, MBEDTLS_ARIA_BLOCKSIZE); input += MBEDTLS_ARIA_BLOCKSIZE; output += MBEDTLS_ARIA_BLOCKSIZE; length -= MBEDTLS_ARIA_BLOCKSIZE; } - } - else - { - while( length > 0 ) - { - mbedtls_xor( output, input, iv, MBEDTLS_ARIA_BLOCKSIZE ); + } else { + while (length > 0) { + mbedtls_xor(output, input, iv, MBEDTLS_ARIA_BLOCKSIZE); - mbedtls_aria_crypt_ecb( ctx, output, output ); - memcpy( iv, output, MBEDTLS_ARIA_BLOCKSIZE ); + mbedtls_aria_crypt_ecb(ctx, output, output); + memcpy(iv, output, MBEDTLS_ARIA_BLOCKSIZE); input += MBEDTLS_ARIA_BLOCKSIZE; output += MBEDTLS_ARIA_BLOCKSIZE; @@ -587,7 +579,7 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, } } - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ @@ -595,63 +587,61 @@ int mbedtls_aria_crypt_cbc( mbedtls_aria_context *ctx, /* * ARIA-CFB128 buffer encryption/decryption */ -int mbedtls_aria_crypt_cfb128( mbedtls_aria_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aria_crypt_cfb128(mbedtls_aria_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output) { unsigned char c; size_t n; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( mode == MBEDTLS_ARIA_ENCRYPT || - mode == MBEDTLS_ARIA_DECRYPT ); - ARIA_VALIDATE_RET( length == 0 || input != NULL ); - ARIA_VALIDATE_RET( length == 0 || output != NULL ); - ARIA_VALIDATE_RET( iv != NULL ); - ARIA_VALIDATE_RET( iv_off != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(mode == MBEDTLS_ARIA_ENCRYPT || + mode == MBEDTLS_ARIA_DECRYPT); + ARIA_VALIDATE_RET(length == 0 || input != NULL); + ARIA_VALIDATE_RET(length == 0 || output != NULL); + ARIA_VALIDATE_RET(iv != NULL); + ARIA_VALIDATE_RET(iv_off != NULL); n = *iv_off; /* An overly large value of n can lead to an unlimited * buffer overflow. Therefore, guard against this * outside of parameter validation. */ - if( n >= MBEDTLS_ARIA_BLOCKSIZE ) - return( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA ); + if (n >= MBEDTLS_ARIA_BLOCKSIZE) { + return MBEDTLS_ERR_ARIA_BAD_INPUT_DATA; + } - if( mode == MBEDTLS_ARIA_DECRYPT ) - { - while( length-- ) - { - if( n == 0 ) - mbedtls_aria_crypt_ecb( ctx, iv, iv ); + if (mode == MBEDTLS_ARIA_DECRYPT) { + while (length--) { + if (n == 0) { + mbedtls_aria_crypt_ecb(ctx, iv, iv); + } c = *input++; *output++ = c ^ iv[n]; iv[n] = c; - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } - } - else - { - while( length-- ) - { - if( n == 0 ) - mbedtls_aria_crypt_ecb( ctx, iv, iv ); + } else { + while (length--) { + if (n == 0) { + mbedtls_aria_crypt_ecb(ctx, iv, iv); + } - iv[n] = *output++ = (unsigned char)( iv[n] ^ *input++ ); + iv[n] = *output++ = (unsigned char) (iv[n] ^ *input++); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } } *iv_off = n; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CFB */ @@ -659,50 +649,52 @@ int mbedtls_aria_crypt_cfb128( mbedtls_aria_context *ctx, /* * ARIA-CTR buffer encryption/decryption */ -int mbedtls_aria_crypt_ctr( mbedtls_aria_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[MBEDTLS_ARIA_BLOCKSIZE], - unsigned char stream_block[MBEDTLS_ARIA_BLOCKSIZE], - const unsigned char *input, - unsigned char *output ) +int mbedtls_aria_crypt_ctr(mbedtls_aria_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[MBEDTLS_ARIA_BLOCKSIZE], + unsigned char stream_block[MBEDTLS_ARIA_BLOCKSIZE], + const unsigned char *input, + unsigned char *output) { int c, i; size_t n; - ARIA_VALIDATE_RET( ctx != NULL ); - ARIA_VALIDATE_RET( length == 0 || input != NULL ); - ARIA_VALIDATE_RET( length == 0 || output != NULL ); - ARIA_VALIDATE_RET( nonce_counter != NULL ); - ARIA_VALIDATE_RET( stream_block != NULL ); - ARIA_VALIDATE_RET( nc_off != NULL ); + ARIA_VALIDATE_RET(ctx != NULL); + ARIA_VALIDATE_RET(length == 0 || input != NULL); + ARIA_VALIDATE_RET(length == 0 || output != NULL); + ARIA_VALIDATE_RET(nonce_counter != NULL); + ARIA_VALIDATE_RET(stream_block != NULL); + ARIA_VALIDATE_RET(nc_off != NULL); n = *nc_off; /* An overly large value of n can lead to an unlimited * buffer overflow. Therefore, guard against this * outside of parameter validation. */ - if( n >= MBEDTLS_ARIA_BLOCKSIZE ) - return( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA ); + if (n >= MBEDTLS_ARIA_BLOCKSIZE) { + return MBEDTLS_ERR_ARIA_BAD_INPUT_DATA; + } - while( length-- ) - { - if( n == 0 ) { - mbedtls_aria_crypt_ecb( ctx, nonce_counter, - stream_block ); + while (length--) { + if (n == 0) { + mbedtls_aria_crypt_ecb(ctx, nonce_counter, + stream_block); - for( i = MBEDTLS_ARIA_BLOCKSIZE; i > 0; i-- ) - if( ++nonce_counter[i - 1] != 0 ) + for (i = MBEDTLS_ARIA_BLOCKSIZE; i > 0; i--) { + if (++nonce_counter[i - 1] != 0) { break; + } + } } c = *input++; - *output++ = (unsigned char)( c ^ stream_block[n] ); + *output++ = (unsigned char) (c ^ stream_block[n]); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } *nc_off = n; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CTR */ #endif /* !MBEDTLS_ARIA_ALT */ @@ -841,22 +833,22 @@ static const uint8_t aria_test2_ctr_ct[3][48] = // CTR ciphertext }; #endif /* MBEDTLS_CIPHER_MODE_CFB */ -#define ARIA_SELF_TEST_ASSERT( cond ) \ - do { \ - if( cond ) { \ - if( verbose ) \ - mbedtls_printf( "failed\n" ); \ - goto exit; \ - } else { \ - if( verbose ) \ - mbedtls_printf( "passed\n" ); \ - } \ - } while( 0 ) +#define ARIA_SELF_TEST_ASSERT(cond) \ + do { \ + if (cond) { \ + if (verbose) \ + mbedtls_printf("failed\n"); \ + goto exit; \ + } else { \ + if (verbose) \ + mbedtls_printf("passed\n"); \ + } \ + } while (0) /* * Checkup routine */ -int mbedtls_aria_self_test( int verbose ) +int mbedtls_aria_self_test(int verbose) { int i; uint8_t blk[MBEDTLS_ARIA_BLOCKSIZE]; @@ -868,134 +860,142 @@ int mbedtls_aria_self_test( int verbose ) #endif #if (defined(MBEDTLS_CIPHER_MODE_CBC) || \ - defined(MBEDTLS_CIPHER_MODE_CFB) || \ - defined(MBEDTLS_CIPHER_MODE_CTR)) + defined(MBEDTLS_CIPHER_MODE_CFB) || \ + defined(MBEDTLS_CIPHER_MODE_CTR)) uint8_t buf[48], iv[MBEDTLS_ARIA_BLOCKSIZE]; #endif - mbedtls_aria_init( &ctx ); + mbedtls_aria_init(&ctx); /* * Test set 1 */ - for( i = 0; i < 3; i++ ) - { + for (i = 0; i < 3; i++) { /* test ECB encryption */ - if( verbose ) - mbedtls_printf( " ARIA-ECB-%d (enc): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test1_ecb_key, 128 + 64 * i ); - mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_pt, blk ); + if (verbose) { + mbedtls_printf(" ARIA-ECB-%d (enc): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test1_ecb_key, 128 + 64 * i); + mbedtls_aria_crypt_ecb(&ctx, aria_test1_ecb_pt, blk); ARIA_SELF_TEST_ASSERT( - memcmp( blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE ) - != 0 ); + memcmp(blk, aria_test1_ecb_ct[i], MBEDTLS_ARIA_BLOCKSIZE) + != 0); /* test ECB decryption */ - if( verbose ) - mbedtls_printf( " ARIA-ECB-%d (dec): ", 128 + 64 * i ); - mbedtls_aria_setkey_dec( &ctx, aria_test1_ecb_key, 128 + 64 * i ); - mbedtls_aria_crypt_ecb( &ctx, aria_test1_ecb_ct[i], blk ); + if (verbose) { + mbedtls_printf(" ARIA-ECB-%d (dec): ", 128 + 64 * i); + } + mbedtls_aria_setkey_dec(&ctx, aria_test1_ecb_key, 128 + 64 * i); + mbedtls_aria_crypt_ecb(&ctx, aria_test1_ecb_ct[i], blk); ARIA_SELF_TEST_ASSERT( - memcmp( blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE ) - != 0 ); + memcmp(blk, aria_test1_ecb_pt, MBEDTLS_ARIA_BLOCKSIZE) + != 0); + } + if (verbose) { + mbedtls_printf("\n"); } - if( verbose ) - mbedtls_printf( "\n" ); /* * Test set 2 */ #if defined(MBEDTLS_CIPHER_MODE_CBC) - for( i = 0; i < 3; i++ ) - { + for (i = 0; i < 3; i++) { /* Test CBC encryption */ - if( verbose ) - mbedtls_printf( " ARIA-CBC-%d (enc): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test2_key, 128 + 64 * i ); - memcpy( iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE ); - memset( buf, 0x55, sizeof( buf ) ); - mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, - aria_test2_pt, buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cbc_ct[i], 48 ) - != 0 ); + if (verbose) { + mbedtls_printf(" ARIA-CBC-%d (enc): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test2_key, 128 + 64 * i); + memcpy(iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE); + memset(buf, 0x55, sizeof(buf)); + mbedtls_aria_crypt_cbc(&ctx, MBEDTLS_ARIA_ENCRYPT, 48, iv, + aria_test2_pt, buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_cbc_ct[i], 48) + != 0); /* Test CBC decryption */ - if( verbose ) - mbedtls_printf( " ARIA-CBC-%d (dec): ", 128 + 64 * i ); - mbedtls_aria_setkey_dec( &ctx, aria_test2_key, 128 + 64 * i ); - memcpy( iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE ); - memset( buf, 0xAA, sizeof( buf ) ); - mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, - aria_test2_cbc_ct[i], buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + if (verbose) { + mbedtls_printf(" ARIA-CBC-%d (dec): ", 128 + 64 * i); + } + mbedtls_aria_setkey_dec(&ctx, aria_test2_key, 128 + 64 * i); + memcpy(iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE); + memset(buf, 0xAA, sizeof(buf)); + mbedtls_aria_crypt_cbc(&ctx, MBEDTLS_ARIA_DECRYPT, 48, iv, + aria_test2_cbc_ct[i], buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_pt, 48) != 0); + } + if (verbose) { + mbedtls_printf("\n"); } - if( verbose ) - mbedtls_printf( "\n" ); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) - for( i = 0; i < 3; i++ ) - { + for (i = 0; i < 3; i++) { /* Test CFB encryption */ - if( verbose ) - mbedtls_printf( " ARIA-CFB-%d (enc): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test2_key, 128 + 64 * i ); - memcpy( iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE ); - memset( buf, 0x55, sizeof( buf ) ); + if (verbose) { + mbedtls_printf(" ARIA-CFB-%d (enc): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test2_key, 128 + 64 * i); + memcpy(iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE); + memset(buf, 0x55, sizeof(buf)); j = 0; - mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, - aria_test2_pt, buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_cfb_ct[i], 48 ) != 0 ); + mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_ENCRYPT, 48, &j, iv, + aria_test2_pt, buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_cfb_ct[i], 48) != 0); /* Test CFB decryption */ - if( verbose ) - mbedtls_printf( " ARIA-CFB-%d (dec): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test2_key, 128 + 64 * i ); - memcpy( iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE ); - memset( buf, 0xAA, sizeof( buf ) ); + if (verbose) { + mbedtls_printf(" ARIA-CFB-%d (dec): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test2_key, 128 + 64 * i); + memcpy(iv, aria_test2_iv, MBEDTLS_ARIA_BLOCKSIZE); + memset(buf, 0xAA, sizeof(buf)); j = 0; - mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, - iv, aria_test2_cfb_ct[i], buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_DECRYPT, 48, &j, + iv, aria_test2_cfb_ct[i], buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_pt, 48) != 0); + } + if (verbose) { + mbedtls_printf("\n"); } - if( verbose ) - mbedtls_printf( "\n" ); #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) - for( i = 0; i < 3; i++ ) - { + for (i = 0; i < 3; i++) { /* Test CTR encryption */ - if( verbose ) - mbedtls_printf( " ARIA-CTR-%d (enc): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test2_key, 128 + 64 * i ); - memset( iv, 0, MBEDTLS_ARIA_BLOCKSIZE ); // IV = 0 - memset( buf, 0x55, sizeof( buf ) ); + if (verbose) { + mbedtls_printf(" ARIA-CTR-%d (enc): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test2_key, 128 + 64 * i); + memset(iv, 0, MBEDTLS_ARIA_BLOCKSIZE); // IV = 0 + memset(buf, 0x55, sizeof(buf)); j = 0; - mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, - aria_test2_pt, buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_ctr_ct[i], 48 ) != 0 ); + mbedtls_aria_crypt_ctr(&ctx, 48, &j, iv, blk, + aria_test2_pt, buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_ctr_ct[i], 48) != 0); /* Test CTR decryption */ - if( verbose ) - mbedtls_printf( " ARIA-CTR-%d (dec): ", 128 + 64 * i ); - mbedtls_aria_setkey_enc( &ctx, aria_test2_key, 128 + 64 * i ); - memset( iv, 0, MBEDTLS_ARIA_BLOCKSIZE ); // IV = 0 - memset( buf, 0xAA, sizeof( buf ) ); + if (verbose) { + mbedtls_printf(" ARIA-CTR-%d (dec): ", 128 + 64 * i); + } + mbedtls_aria_setkey_enc(&ctx, aria_test2_key, 128 + 64 * i); + memset(iv, 0, MBEDTLS_ARIA_BLOCKSIZE); // IV = 0 + memset(buf, 0xAA, sizeof(buf)); j = 0; - mbedtls_aria_crypt_ctr( &ctx, 48, &j, iv, blk, - aria_test2_ctr_ct[i], buf ); - ARIA_SELF_TEST_ASSERT( memcmp( buf, aria_test2_pt, 48 ) != 0 ); + mbedtls_aria_crypt_ctr(&ctx, 48, &j, iv, blk, + aria_test2_ctr_ct[i], buf); + ARIA_SELF_TEST_ASSERT(memcmp(buf, aria_test2_pt, 48) != 0); + } + if (verbose) { + mbedtls_printf("\n"); } - if( verbose ) - mbedtls_printf( "\n" ); #endif /* MBEDTLS_CIPHER_MODE_CTR */ ret = 0; exit: - mbedtls_aria_free( &ctx ); - return( ret ); + mbedtls_aria_free(&ctx); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/asn1parse.c b/library/asn1parse.c index 28a3b144b..d257ef438 100644 --- a/library/asn1parse.c +++ b/library/asn1parse.c @@ -36,203 +36,219 @@ /* * ASN.1 DER decoding routines */ -int mbedtls_asn1_get_len( unsigned char **p, - const unsigned char *end, - size_t *len ) +int mbedtls_asn1_get_len(unsigned char **p, + const unsigned char *end, + size_t *len) { - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + if ((end - *p) < 1) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - if( ( **p & 0x80 ) == 0 ) + if ((**p & 0x80) == 0) { *len = *(*p)++; - else - { - switch( **p & 0x7F ) - { - case 1: - if( ( end - *p ) < 2 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + } else { + switch (**p & 0x7F) { + case 1: + if ((end - *p) < 2) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - *len = (*p)[1]; - (*p) += 2; - break; + *len = (*p)[1]; + (*p) += 2; + break; - case 2: - if( ( end - *p ) < 3 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + case 2: + if ((end - *p) < 3) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - *len = ( (size_t)(*p)[1] << 8 ) | (*p)[2]; - (*p) += 3; - break; + *len = ((size_t) (*p)[1] << 8) | (*p)[2]; + (*p) += 3; + break; - case 3: - if( ( end - *p ) < 4 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + case 3: + if ((end - *p) < 4) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - *len = ( (size_t)(*p)[1] << 16 ) | - ( (size_t)(*p)[2] << 8 ) | (*p)[3]; - (*p) += 4; - break; + *len = ((size_t) (*p)[1] << 16) | + ((size_t) (*p)[2] << 8) | (*p)[3]; + (*p) += 4; + break; - case 4: - if( ( end - *p ) < 5 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + case 4: + if ((end - *p) < 5) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - *len = ( (size_t)(*p)[1] << 24 ) | ( (size_t)(*p)[2] << 16 ) | - ( (size_t)(*p)[3] << 8 ) | (*p)[4]; - (*p) += 5; - break; + *len = ((size_t) (*p)[1] << 24) | ((size_t) (*p)[2] << 16) | + ((size_t) (*p)[3] << 8) | (*p)[4]; + (*p) += 5; + break; - default: - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + default: + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; } } - if( *len > (size_t) ( end - *p ) ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + if (*len > (size_t) (end - *p)) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - return( 0 ); + return 0; } -int mbedtls_asn1_get_tag( unsigned char **p, - const unsigned char *end, - size_t *len, int tag ) +int mbedtls_asn1_get_tag(unsigned char **p, + const unsigned char *end, + size_t *len, int tag) { - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + if ((end - *p) < 1) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } - if( **p != tag ) - return( MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ); + if (**p != tag) { + return MBEDTLS_ERR_ASN1_UNEXPECTED_TAG; + } (*p)++; - return( mbedtls_asn1_get_len( p, end, len ) ); + return mbedtls_asn1_get_len(p, end, len); } -int mbedtls_asn1_get_bool( unsigned char **p, - const unsigned char *end, - int *val ) +int mbedtls_asn1_get_bool(unsigned char **p, + const unsigned char *end, + int *val) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_BOOLEAN ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_BOOLEAN)) != 0) { + return ret; + } - if( len != 1 ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + if (len != 1) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } - *val = ( **p != 0 ) ? 1 : 0; + *val = (**p != 0) ? 1 : 0; (*p)++; - return( 0 ); + return 0; } -static int asn1_get_tagged_int( unsigned char **p, - const unsigned char *end, - int tag, int *val ) +static int asn1_get_tagged_int(unsigned char **p, + const unsigned char *end, + int tag, int *val) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, tag ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, tag)) != 0) { + return ret; + } /* * len==0 is malformed (0 must be represented as 020100 for INTEGER, * or 0A0100 for ENUMERATED tags */ - if( len == 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + if (len == 0) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } /* This is a cryptography library. Reject negative integers. */ - if( ( **p & 0x80 ) != 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + if ((**p & 0x80) != 0) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } /* Skip leading zeros. */ - while( len > 0 && **p == 0 ) - { - ++( *p ); + while (len > 0 && **p == 0) { + ++(*p); --len; } /* Reject integers that don't fit in an int. This code assumes that * the int type has no padding bit. */ - if( len > sizeof( int ) ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); - if( len == sizeof( int ) && ( **p & 0x80 ) != 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + if (len > sizeof(int)) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } + if (len == sizeof(int) && (**p & 0x80) != 0) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } *val = 0; - while( len-- > 0 ) - { - *val = ( *val << 8 ) | **p; + while (len-- > 0) { + *val = (*val << 8) | **p; (*p)++; } - return( 0 ); + return 0; } -int mbedtls_asn1_get_int( unsigned char **p, +int mbedtls_asn1_get_int(unsigned char **p, + const unsigned char *end, + int *val) +{ + return asn1_get_tagged_int(p, end, MBEDTLS_ASN1_INTEGER, val); +} + +int mbedtls_asn1_get_enum(unsigned char **p, const unsigned char *end, - int *val ) + int *val) { - return( asn1_get_tagged_int( p, end, MBEDTLS_ASN1_INTEGER, val) ); -} - -int mbedtls_asn1_get_enum( unsigned char **p, - const unsigned char *end, - int *val ) -{ - return( asn1_get_tagged_int( p, end, MBEDTLS_ASN1_ENUMERATED, val) ); + return asn1_get_tagged_int(p, end, MBEDTLS_ASN1_ENUMERATED, val); } #if defined(MBEDTLS_BIGNUM_C) -int mbedtls_asn1_get_mpi( unsigned char **p, - const unsigned char *end, - mbedtls_mpi *X ) +int mbedtls_asn1_get_mpi(unsigned char **p, + const unsigned char *end, + mbedtls_mpi *X) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_INTEGER)) != 0) { + return ret; + } - ret = mbedtls_mpi_read_binary( X, *p, len ); + ret = mbedtls_mpi_read_binary(X, *p, len); *p += len; - return( ret ); + return ret; } #endif /* MBEDTLS_BIGNUM_C */ -int mbedtls_asn1_get_bitstring( unsigned char **p, const unsigned char *end, - mbedtls_asn1_bitstring *bs) +int mbedtls_asn1_get_bitstring(unsigned char **p, const unsigned char *end, + mbedtls_asn1_bitstring *bs) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Certificate type is a single byte bitstring */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &bs->len, MBEDTLS_ASN1_BIT_STRING)) != 0) { + return ret; + } /* Check length, subtract one for actual bit string length */ - if( bs->len < 1 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + if (bs->len < 1) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } bs->len -= 1; /* Get number of unused bits, ensure unused bits <= 7 */ bs->unused_bits = **p; - if( bs->unused_bits > 7 ) - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + if (bs->unused_bits > 7) { + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; + } (*p)++; /* Get actual bitstring */ bs->p = *p; *p += bs->len; - if( *p != end ) - return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (*p != end) { + return MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } - return( 0 ); + return 0; } /* @@ -244,104 +260,105 @@ int mbedtls_asn1_traverse_sequence_of( const unsigned char *end, unsigned char tag_must_mask, unsigned char tag_must_val, unsigned char tag_may_mask, unsigned char tag_may_val, - int (*cb)( void *ctx, int tag, - unsigned char *start, size_t len ), - void *ctx ) + int (*cb)(void *ctx, int tag, + unsigned char *start, size_t len), + void *ctx) { int ret; size_t len; /* Get main sequence tag */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; } - if( *p + len != end ) - return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (*p + len != end) { + return MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } - while( *p < end ) - { + while (*p < end) { unsigned char const tag = *(*p)++; - if( ( tag & tag_must_mask ) != tag_must_val ) - return( MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ); + if ((tag & tag_must_mask) != tag_must_val) { + return MBEDTLS_ERR_ASN1_UNEXPECTED_TAG; + } - if( ( ret = mbedtls_asn1_get_len( p, end, &len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_len(p, end, &len)) != 0) { + return ret; + } - if( ( tag & tag_may_mask ) == tag_may_val ) - { - if( cb != NULL ) - { - ret = cb( ctx, tag, *p, len ); - if( ret != 0 ) - return( ret ); + if ((tag & tag_may_mask) == tag_may_val) { + if (cb != NULL) { + ret = cb(ctx, tag, *p, len); + if (ret != 0) { + return ret; + } } } *p += len; } - return( 0 ); + return 0; } /* * Get a bit string without unused bits */ -int mbedtls_asn1_get_bitstring_null( unsigned char **p, const unsigned char *end, - size_t *len ) +int mbedtls_asn1_get_bitstring_null(unsigned char **p, const unsigned char *end, + size_t *len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_BIT_STRING ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, len, MBEDTLS_ASN1_BIT_STRING)) != 0) { + return ret; + } - if( *len == 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_DATA ); - --( *len ); + if (*len == 0) { + return MBEDTLS_ERR_ASN1_INVALID_DATA; + } + --(*len); - if( **p != 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_DATA ); - ++( *p ); + if (**p != 0) { + return MBEDTLS_ERR_ASN1_INVALID_DATA; + } + ++(*p); - return( 0 ); + return 0; } -void mbedtls_asn1_sequence_free( mbedtls_asn1_sequence *seq ) +void mbedtls_asn1_sequence_free(mbedtls_asn1_sequence *seq) { - while( seq != NULL ) - { + while (seq != NULL) { mbedtls_asn1_sequence *next = seq->next; - mbedtls_free( seq ); + mbedtls_free(seq); seq = next; } } -typedef struct -{ +typedef struct { int tag; mbedtls_asn1_sequence *cur; } asn1_get_sequence_of_cb_ctx_t; -static int asn1_get_sequence_of_cb( void *ctx, - int tag, - unsigned char *start, - size_t len ) +static int asn1_get_sequence_of_cb(void *ctx, + int tag, + unsigned char *start, + size_t len) { asn1_get_sequence_of_cb_ctx_t *cb_ctx = (asn1_get_sequence_of_cb_ctx_t *) ctx; mbedtls_asn1_sequence *cur = cb_ctx->cur; - if( cur->buf.p != NULL ) - { + if (cur->buf.p != NULL) { cur->next = - mbedtls_calloc( 1, sizeof( mbedtls_asn1_sequence ) ); + mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); - if( cur->next == NULL ) - return( MBEDTLS_ERR_ASN1_ALLOC_FAILED ); + if (cur->next == NULL) { + return MBEDTLS_ERR_ASN1_ALLOC_FAILED; + } cur = cur->next; } @@ -351,136 +368,139 @@ static int asn1_get_sequence_of_cb( void *ctx, cur->buf.tag = tag; cb_ctx->cur = cur; - return( 0 ); + return 0; } /* * Parses and splits an ASN.1 "SEQUENCE OF " */ -int mbedtls_asn1_get_sequence_of( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_sequence *cur, - int tag) +int mbedtls_asn1_get_sequence_of(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_sequence *cur, + int tag) { asn1_get_sequence_of_cb_ctx_t cb_ctx = { tag, cur }; - memset( cur, 0, sizeof( mbedtls_asn1_sequence ) ); - return( mbedtls_asn1_traverse_sequence_of( - p, end, 0xFF, tag, 0, 0, - asn1_get_sequence_of_cb, &cb_ctx ) ); + memset(cur, 0, sizeof(mbedtls_asn1_sequence)); + return mbedtls_asn1_traverse_sequence_of( + p, end, 0xFF, tag, 0, 0, + asn1_get_sequence_of_cb, &cb_ctx); } -int mbedtls_asn1_get_alg( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params ) +int mbedtls_asn1_get_alg(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_buf *alg, mbedtls_asn1_buf *params) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; + } - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + if ((end - *p) < 1) { + return MBEDTLS_ERR_ASN1_OUT_OF_DATA; + } alg->tag = **p; end = *p + len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &alg->len, MBEDTLS_ASN1_OID ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &alg->len, MBEDTLS_ASN1_OID)) != 0) { + return ret; + } alg->p = *p; *p += alg->len; - if( *p == end ) - { - mbedtls_platform_zeroize( params, sizeof(mbedtls_asn1_buf) ); - return( 0 ); + if (*p == end) { + mbedtls_platform_zeroize(params, sizeof(mbedtls_asn1_buf)); + return 0; } params->tag = **p; (*p)++; - if( ( ret = mbedtls_asn1_get_len( p, end, ¶ms->len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_len(p, end, ¶ms->len)) != 0) { + return ret; + } params->p = *p; *p += params->len; - if( *p != end ) - return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (*p != end) { + return MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } - return( 0 ); + return 0; } -int mbedtls_asn1_get_alg_null( unsigned char **p, - const unsigned char *end, - mbedtls_asn1_buf *alg ) +int mbedtls_asn1_get_alg_null(unsigned char **p, + const unsigned char *end, + mbedtls_asn1_buf *alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_asn1_buf params; - memset( ¶ms, 0, sizeof(mbedtls_asn1_buf) ); + memset(¶ms, 0, sizeof(mbedtls_asn1_buf)); - if( ( ret = mbedtls_asn1_get_alg( p, end, alg, ¶ms ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_alg(p, end, alg, ¶ms)) != 0) { + return ret; + } - if( ( params.tag != MBEDTLS_ASN1_NULL && params.tag != 0 ) || params.len != 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_DATA ); + if ((params.tag != MBEDTLS_ASN1_NULL && params.tag != 0) || params.len != 0) { + return MBEDTLS_ERR_ASN1_INVALID_DATA; + } - return( 0 ); + return 0; } #if !defined(MBEDTLS_DEPRECATED_REMOVED) -void mbedtls_asn1_free_named_data( mbedtls_asn1_named_data *cur ) +void mbedtls_asn1_free_named_data(mbedtls_asn1_named_data *cur) { - if( cur == NULL ) + if (cur == NULL) { return; + } - mbedtls_free( cur->oid.p ); - mbedtls_free( cur->val.p ); + mbedtls_free(cur->oid.p); + mbedtls_free(cur->val.p); - mbedtls_platform_zeroize( cur, sizeof( mbedtls_asn1_named_data ) ); + mbedtls_platform_zeroize(cur, sizeof(mbedtls_asn1_named_data)); } #endif /* MBEDTLS_DEPRECATED_REMOVED */ -void mbedtls_asn1_free_named_data_list( mbedtls_asn1_named_data **head ) +void mbedtls_asn1_free_named_data_list(mbedtls_asn1_named_data **head) { mbedtls_asn1_named_data *cur; - while( ( cur = *head ) != NULL ) - { + while ((cur = *head) != NULL) { *head = cur->next; - mbedtls_free( cur->oid.p ); - mbedtls_free( cur->val.p ); - mbedtls_free( cur ); + mbedtls_free(cur->oid.p); + mbedtls_free(cur->val.p); + mbedtls_free(cur); } } -void mbedtls_asn1_free_named_data_list_shallow( mbedtls_asn1_named_data *name ) +void mbedtls_asn1_free_named_data_list_shallow(mbedtls_asn1_named_data *name) { - for( mbedtls_asn1_named_data *next; name != NULL; name = next ) - { + for (mbedtls_asn1_named_data *next; name != NULL; name = next) { next = name->next; - mbedtls_free( name ); + mbedtls_free(name); } } -const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data( const mbedtls_asn1_named_data *list, - const char *oid, size_t len ) +const mbedtls_asn1_named_data *mbedtls_asn1_find_named_data(const mbedtls_asn1_named_data *list, + const char *oid, size_t len) { - while( list != NULL ) - { - if( list->oid.len == len && - memcmp( list->oid.p, oid, len ) == 0 ) - { + while (list != NULL) { + if (list->oid.len == len && + memcmp(list->oid.p, oid, len) == 0) { break; } list = list->next; } - return( list ); + return list; } #endif /* MBEDTLS_ASN1_PARSE_C */ diff --git a/library/asn1write.c b/library/asn1write.c index 98c591d0b..b9d586aef 100644 --- a/library/asn1write.c +++ b/library/asn1write.c @@ -28,452 +28,454 @@ #include "mbedtls/platform.h" -int mbedtls_asn1_write_len( unsigned char **p, const unsigned char *start, size_t len ) +int mbedtls_asn1_write_len(unsigned char **p, const unsigned char *start, size_t len) { - if( len < 0x80 ) - { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (len < 0x80) { + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = (unsigned char) len; - return( 1 ); + return 1; } - if( len <= 0xFF ) - { - if( *p - start < 2 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (len <= 0xFF) { + if (*p - start < 2) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = (unsigned char) len; *--(*p) = 0x81; - return( 2 ); + return 2; } - if( len <= 0xFFFF ) - { - if( *p - start < 3 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (len <= 0xFFFF) { + if (*p - start < 3) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } - *--(*p) = MBEDTLS_BYTE_0( len ); - *--(*p) = MBEDTLS_BYTE_1( len ); + *--(*p) = MBEDTLS_BYTE_0(len); + *--(*p) = MBEDTLS_BYTE_1(len); *--(*p) = 0x82; - return( 3 ); + return 3; } - if( len <= 0xFFFFFF ) - { - if( *p - start < 4 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (len <= 0xFFFFFF) { + if (*p - start < 4) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } - *--(*p) = MBEDTLS_BYTE_0( len ); - *--(*p) = MBEDTLS_BYTE_1( len ); - *--(*p) = MBEDTLS_BYTE_2( len ); + *--(*p) = MBEDTLS_BYTE_0(len); + *--(*p) = MBEDTLS_BYTE_1(len); + *--(*p) = MBEDTLS_BYTE_2(len); *--(*p) = 0x83; - return( 4 ); + return 4; } int len_is_valid = 1; #if SIZE_MAX > 0xFFFFFFFF - len_is_valid = ( len <= 0xFFFFFFFF ); + len_is_valid = (len <= 0xFFFFFFFF); #endif - if( len_is_valid ) - { - if( *p - start < 5 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (len_is_valid) { + if (*p - start < 5) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } - *--(*p) = MBEDTLS_BYTE_0( len ); - *--(*p) = MBEDTLS_BYTE_1( len ); - *--(*p) = MBEDTLS_BYTE_2( len ); - *--(*p) = MBEDTLS_BYTE_3( len ); + *--(*p) = MBEDTLS_BYTE_0(len); + *--(*p) = MBEDTLS_BYTE_1(len); + *--(*p) = MBEDTLS_BYTE_2(len); + *--(*p) = MBEDTLS_BYTE_3(len); *--(*p) = 0x84; - return( 5 ); + return 5; } - return( MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + return MBEDTLS_ERR_ASN1_INVALID_LENGTH; } -int mbedtls_asn1_write_tag( unsigned char **p, const unsigned char *start, unsigned char tag ) +int mbedtls_asn1_write_tag(unsigned char **p, const unsigned char *start, unsigned char tag) { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = tag; - return( 1 ); + return 1; } -int mbedtls_asn1_write_raw_buffer( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t size ) +int mbedtls_asn1_write_raw_buffer(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t size) { size_t len = 0; - if( *p < start || (size_t)( *p - start ) < size ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p < start || (size_t) (*p - start) < size) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } len = size; (*p) -= len; - memcpy( *p, buf, len ); + memcpy(*p, buf, len); - return( (int) len ); + return (int) len; } #if defined(MBEDTLS_BIGNUM_C) -int mbedtls_asn1_write_mpi( unsigned char **p, const unsigned char *start, const mbedtls_mpi *X ) +int mbedtls_asn1_write_mpi(unsigned char **p, const unsigned char *start, const mbedtls_mpi *X) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; // Write the MPI // - len = mbedtls_mpi_size( X ); + len = mbedtls_mpi_size(X); /* DER represents 0 with a sign bit (0=nonnegative) and 7 value bits, not * as 0 digits. We need to end up with 020100, not with 0200. */ - if( len == 0 ) + if (len == 0) { len = 1; + } - if( *p < start || (size_t)( *p - start ) < len ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p < start || (size_t) (*p - start) < len) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } (*p) -= len; - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( X, *p, len ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(X, *p, len)); // DER format assumes 2s complement for numbers, so the leftmost bit // should be 0 for positive numbers and 1 for negative numbers. // - if( X->s ==1 && **p & 0x80 ) - { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (X->s == 1 && **p & 0x80) { + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = 0x00; len += 1; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_INTEGER ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_INTEGER)); ret = (int) len; cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_BIGNUM_C */ -int mbedtls_asn1_write_null( unsigned char **p, const unsigned char *start ) +int mbedtls_asn1_write_null(unsigned char **p, const unsigned char *start) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; // Write NULL // - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, 0) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_NULL ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, 0)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_NULL)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_oid( unsigned char **p, const unsigned char *start, - const char *oid, size_t oid_len ) +int mbedtls_asn1_write_oid(unsigned char **p, const unsigned char *start, + const char *oid, size_t oid_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, - (const unsigned char *) oid, oid_len ) ); - MBEDTLS_ASN1_CHK_ADD( len , mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len , mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_OID ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, + (const unsigned char *) oid, oid_len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_OID)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_algorithm_identifier( unsigned char **p, const unsigned char *start, - const char *oid, size_t oid_len, - size_t par_len ) +int mbedtls_asn1_write_algorithm_identifier(unsigned char **p, const unsigned char *start, + const char *oid, size_t oid_len, + size_t par_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - if( par_len == 0 ) - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_null( p, start ) ); - else + if (par_len == 0) { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_null(p, start)); + } else { len += par_len; + } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( p, start, oid, oid_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_oid(p, start, oid, oid_len)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_bool( unsigned char **p, const unsigned char *start, int boolean ) +int mbedtls_asn1_write_bool(unsigned char **p, const unsigned char *start, int boolean) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = (boolean) ? 255 : 0; len++; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_BOOLEAN ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_BOOLEAN)); - return( (int) len ); + return (int) len; } -static int asn1_write_tagged_int( unsigned char **p, const unsigned char *start, int val, int tag ) +static int asn1_write_tagged_int(unsigned char **p, const unsigned char *start, int val, int tag) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - do - { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + do { + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } len += 1; *--(*p) = val & 0xff; val >>= 8; - } - while( val > 0 ); + } while (val > 0); - if( **p & 0x80 ) - { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (**p & 0x80) { + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = 0x00; len += 1; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, tag ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, tag)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_int( unsigned char **p, const unsigned char *start, int val ) +int mbedtls_asn1_write_int(unsigned char **p, const unsigned char *start, int val) { - return( asn1_write_tagged_int( p, start, val, MBEDTLS_ASN1_INTEGER ) ); + return asn1_write_tagged_int(p, start, val, MBEDTLS_ASN1_INTEGER); } -int mbedtls_asn1_write_enum( unsigned char **p, const unsigned char *start, int val ) +int mbedtls_asn1_write_enum(unsigned char **p, const unsigned char *start, int val) { - return( asn1_write_tagged_int( p, start, val, MBEDTLS_ASN1_ENUMERATED ) ); + return asn1_write_tagged_int(p, start, val, MBEDTLS_ASN1_ENUMERATED); } -int mbedtls_asn1_write_tagged_string( unsigned char **p, const unsigned char *start, int tag, - const char *text, size_t text_len ) +int mbedtls_asn1_write_tagged_string(unsigned char **p, const unsigned char *start, int tag, + const char *text, size_t text_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, - (const unsigned char *) text, text_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, + (const unsigned char *) text, + text_len)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, tag ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, tag)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_utf8_string( unsigned char **p, const unsigned char *start, - const char *text, size_t text_len ) +int mbedtls_asn1_write_utf8_string(unsigned char **p, const unsigned char *start, + const char *text, size_t text_len) { - return( mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_UTF8_STRING, text, text_len) ); + return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_UTF8_STRING, text, text_len); } -int mbedtls_asn1_write_printable_string( unsigned char **p, const unsigned char *start, - const char *text, size_t text_len ) +int mbedtls_asn1_write_printable_string(unsigned char **p, const unsigned char *start, + const char *text, size_t text_len) { - return( mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_PRINTABLE_STRING, text, text_len) ); + return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_PRINTABLE_STRING, text, + text_len); } -int mbedtls_asn1_write_ia5_string( unsigned char **p, const unsigned char *start, - const char *text, size_t text_len ) +int mbedtls_asn1_write_ia5_string(unsigned char **p, const unsigned char *start, + const char *text, size_t text_len) { - return( mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_IA5_STRING, text, text_len) ); + return mbedtls_asn1_write_tagged_string(p, start, MBEDTLS_ASN1_IA5_STRING, text, text_len); } -int mbedtls_asn1_write_named_bitstring( unsigned char **p, - const unsigned char *start, - const unsigned char *buf, - size_t bits ) +int mbedtls_asn1_write_named_bitstring(unsigned char **p, + const unsigned char *start, + const unsigned char *buf, + size_t bits) { size_t unused_bits, byte_len; const unsigned char *cur_byte; unsigned char cur_byte_shifted; unsigned char bit; - byte_len = ( bits + 7 ) / 8; - unused_bits = ( byte_len * 8 ) - bits; + byte_len = (bits + 7) / 8; + unused_bits = (byte_len * 8) - bits; /* * Named bitstrings require that trailing 0s are excluded in the encoding * of the bitstring. Trailing 0s are considered part of the 'unused' bits * when encoding this value in the first content octet */ - if( bits != 0 ) - { + if (bits != 0) { cur_byte = buf + byte_len - 1; cur_byte_shifted = *cur_byte >> unused_bits; - for( ; ; ) - { + for (;;) { bit = cur_byte_shifted & 0x1; cur_byte_shifted >>= 1; - if( bit != 0 ) + if (bit != 0) { break; + } bits--; - if( bits == 0 ) + if (bits == 0) { break; + } - if( bits % 8 == 0 ) + if (bits % 8 == 0) { cur_byte_shifted = *--cur_byte; + } } } - return( mbedtls_asn1_write_bitstring( p, start, buf, bits ) ); + return mbedtls_asn1_write_bitstring(p, start, buf, bits); } -int mbedtls_asn1_write_bitstring( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t bits ) +int mbedtls_asn1_write_bitstring(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t bits) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; size_t unused_bits, byte_len; - byte_len = ( bits + 7 ) / 8; - unused_bits = ( byte_len * 8 ) - bits; + byte_len = (bits + 7) / 8; + unused_bits = (byte_len * 8) - bits; - if( *p < start || (size_t)( *p - start ) < byte_len + 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p < start || (size_t) (*p - start) < byte_len + 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } len = byte_len + 1; /* Write the bitstring. Ensure the unused bits are zeroed */ - if( byte_len > 0 ) - { + if (byte_len > 0) { byte_len--; - *--( *p ) = buf[byte_len] & ~( ( 0x1 << unused_bits ) - 1 ); - ( *p ) -= byte_len; - memcpy( *p, buf, byte_len ); + *--(*p) = buf[byte_len] & ~((0x1 << unused_bits) - 1); + (*p) -= byte_len; + memcpy(*p, buf, byte_len); } /* Write unused bits */ - *--( *p ) = (unsigned char)unused_bits; + *--(*p) = (unsigned char) unused_bits; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_BIT_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_BIT_STRING)); - return( (int) len ); + return (int) len; } -int mbedtls_asn1_write_octet_string( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t size ) +int mbedtls_asn1_write_octet_string(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, buf, size ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, buf, size)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_OCTET_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_OCTET_STRING)); - return( (int) len ); + return (int) len; } /* This is a copy of the ASN.1 parsing function mbedtls_asn1_find_named_data(), * which is replicated to avoid a dependency ASN1_WRITE_C on ASN1_PARSE_C. */ static mbedtls_asn1_named_data *asn1_find_named_data( - mbedtls_asn1_named_data *list, - const char *oid, size_t len ) + mbedtls_asn1_named_data *list, + const char *oid, size_t len) { - while( list != NULL ) - { - if( list->oid.len == len && - memcmp( list->oid.p, oid, len ) == 0 ) - { + while (list != NULL) { + if (list->oid.len == len && + memcmp(list->oid.p, oid, len) == 0) { break; } list = list->next; } - return( list ); + return list; } mbedtls_asn1_named_data *mbedtls_asn1_store_named_data( - mbedtls_asn1_named_data **head, - const char *oid, size_t oid_len, - const unsigned char *val, - size_t val_len ) + mbedtls_asn1_named_data **head, + const char *oid, size_t oid_len, + const unsigned char *val, + size_t val_len) { mbedtls_asn1_named_data *cur; - if( ( cur = asn1_find_named_data( *head, oid, oid_len ) ) == NULL ) - { + if ((cur = asn1_find_named_data(*head, oid, oid_len)) == NULL) { // Add new entry if not present yet based on OID // - cur = (mbedtls_asn1_named_data*)mbedtls_calloc( 1, - sizeof(mbedtls_asn1_named_data) ); - if( cur == NULL ) - return( NULL ); - - cur->oid.len = oid_len; - cur->oid.p = mbedtls_calloc( 1, oid_len ); - if( cur->oid.p == NULL ) - { - mbedtls_free( cur ); - return( NULL ); + cur = (mbedtls_asn1_named_data *) mbedtls_calloc(1, + sizeof(mbedtls_asn1_named_data)); + if (cur == NULL) { + return NULL; } - memcpy( cur->oid.p, oid, oid_len ); + cur->oid.len = oid_len; + cur->oid.p = mbedtls_calloc(1, oid_len); + if (cur->oid.p == NULL) { + mbedtls_free(cur); + return NULL; + } + + memcpy(cur->oid.p, oid, oid_len); cur->val.len = val_len; - if( val_len != 0 ) - { - cur->val.p = mbedtls_calloc( 1, val_len ); - if( cur->val.p == NULL ) - { - mbedtls_free( cur->oid.p ); - mbedtls_free( cur ); - return( NULL ); + if (val_len != 0) { + cur->val.p = mbedtls_calloc(1, val_len); + if (cur->val.p == NULL) { + mbedtls_free(cur->oid.p); + mbedtls_free(cur); + return NULL; } } cur->next = *head; *head = cur; - } - else if( val_len == 0 ) - { - mbedtls_free( cur->val.p ); + } else if (val_len == 0) { + mbedtls_free(cur->val.p); cur->val.p = NULL; - } - else if( cur->val.len != val_len ) - { + } else if (cur->val.len != val_len) { /* * Enlarge existing value buffer if needed * Preserve old data until the allocation succeeded, to leave list in * a consistent state in case allocation fails. */ - void *p = mbedtls_calloc( 1, val_len ); - if( p == NULL ) - return( NULL ); + void *p = mbedtls_calloc(1, val_len); + if (p == NULL) { + return NULL; + } - mbedtls_free( cur->val.p ); + mbedtls_free(cur->val.p); cur->val.p = p; cur->val.len = val_len; } - if( val != NULL && val_len != 0 ) - memcpy( cur->val.p, val, val_len ); + if (val != NULL && val_len != 0) { + memcpy(cur->val.p, val, val_len); + } - return( cur ); + return cur; } #endif /* MBEDTLS_ASN1_WRITE_C */ diff --git a/library/base64.c b/library/base64.c index 9021a041b..417061064 100644 --- a/library/base64.c +++ b/library/base64.c @@ -31,68 +31,65 @@ #include "mbedtls/platform.h" #endif /* MBEDTLS_SELF_TEST */ -#define BASE64_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ +#define BASE64_SIZE_T_MAX ((size_t) -1) /* SIZE_T_MAX is not standard */ /* * Encode a buffer into base64 format */ -int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int mbedtls_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { size_t i, n; int C1, C2, C3; unsigned char *p; - if( slen == 0 ) - { + if (slen == 0) { *olen = 0; - return( 0 ); + return 0; } - n = slen / 3 + ( slen % 3 != 0 ); + n = slen / 3 + (slen % 3 != 0); - if( n > ( BASE64_SIZE_T_MAX - 1 ) / 4 ) - { + if (n > (BASE64_SIZE_T_MAX - 1) / 4) { *olen = BASE64_SIZE_T_MAX; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL; } n *= 4; - if( ( dlen < n + 1 ) || ( NULL == dst ) ) - { + if ((dlen < n + 1) || (NULL == dst)) { *olen = n + 1; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL; } - n = ( slen / 3 ) * 3; + n = (slen / 3) * 3; - for( i = 0, p = dst; i < n; i += 3 ) - { + for (i = 0, p = dst; i < n; i += 3) { C1 = *src++; C2 = *src++; C3 = *src++; - *p++ = mbedtls_ct_base64_enc_char( ( C1 >> 2 ) & 0x3F ); - *p++ = mbedtls_ct_base64_enc_char( ( ( ( C1 & 3 ) << 4 ) + ( C2 >> 4 ) ) - & 0x3F ); - *p++ = mbedtls_ct_base64_enc_char( ( ( ( C2 & 15 ) << 2 ) + ( C3 >> 6 ) ) - & 0x3F ); - *p++ = mbedtls_ct_base64_enc_char( C3 & 0x3F ); + *p++ = mbedtls_ct_base64_enc_char((C1 >> 2) & 0x3F); + *p++ = mbedtls_ct_base64_enc_char((((C1 & 3) << 4) + (C2 >> 4)) + & 0x3F); + *p++ = mbedtls_ct_base64_enc_char((((C2 & 15) << 2) + (C3 >> 6)) + & 0x3F); + *p++ = mbedtls_ct_base64_enc_char(C3 & 0x3F); } - if( i < slen ) - { + if (i < slen) { C1 = *src++; - C2 = ( ( i + 1 ) < slen ) ? *src++ : 0; + C2 = ((i + 1) < slen) ? *src++ : 0; - *p++ = mbedtls_ct_base64_enc_char( ( C1 >> 2 ) & 0x3F ); - *p++ = mbedtls_ct_base64_enc_char( ( ( ( C1 & 3 ) << 4 ) + ( C2 >> 4 ) ) - & 0x3F ); + *p++ = mbedtls_ct_base64_enc_char((C1 >> 2) & 0x3F); + *p++ = mbedtls_ct_base64_enc_char((((C1 & 3) << 4) + (C2 >> 4)) + & 0x3F); - if( ( i + 1 ) < slen ) - *p++ = mbedtls_ct_base64_enc_char( ( ( C2 & 15 ) << 2 ) & 0x3F ); - else *p++ = '='; + if ((i + 1) < slen) { + *p++ = mbedtls_ct_base64_enc_char(((C2 & 15) << 2) & 0x3F); + } else { + *p++ = '='; + } *p++ = '='; } @@ -100,14 +97,14 @@ int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, *olen = p - dst; *p = 0; - return( 0 ); + return 0; } /* * Decode a base64-formatted buffer */ -int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, - const unsigned char *src, size_t slen ) +int mbedtls_base64_decode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen) { size_t i; /* index in source */ size_t n; /* number of digits or trailing = in source */ @@ -118,92 +115,97 @@ int mbedtls_base64_decode( unsigned char *dst, size_t dlen, size_t *olen, unsigned char *p; /* First pass: check for validity and get output length */ - for( i = n = 0; i < slen; i++ ) - { + for (i = n = 0; i < slen; i++) { /* Skip spaces before checking for EOL */ spaces_present = 0; - while( i < slen && src[i] == ' ' ) - { + while (i < slen && src[i] == ' ') { ++i; spaces_present = 1; } /* Spaces at end of buffer are OK */ - if( i == slen ) + if (i == slen) { break; + } - if( ( slen - i ) >= 2 && - src[i] == '\r' && src[i + 1] == '\n' ) + if ((slen - i) >= 2 && + src[i] == '\r' && src[i + 1] == '\n') { continue; + } - if( src[i] == '\n' ) + if (src[i] == '\n') { continue; + } /* Space inside a line is an error */ - if( spaces_present ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); - - if( src[i] > 127 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); - - if( src[i] == '=' ) - { - if( ++equals > 2 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + if (spaces_present) { + return MBEDTLS_ERR_BASE64_INVALID_CHARACTER; } - else - { - if( equals != 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); - if( mbedtls_ct_base64_dec_value( src[i] ) < 0 ) - return( MBEDTLS_ERR_BASE64_INVALID_CHARACTER ); + + if (src[i] > 127) { + return MBEDTLS_ERR_BASE64_INVALID_CHARACTER; + } + + if (src[i] == '=') { + if (++equals > 2) { + return MBEDTLS_ERR_BASE64_INVALID_CHARACTER; + } + } else { + if (equals != 0) { + return MBEDTLS_ERR_BASE64_INVALID_CHARACTER; + } + if (mbedtls_ct_base64_dec_value(src[i]) < 0) { + return MBEDTLS_ERR_BASE64_INVALID_CHARACTER; + } } n++; } - if( n == 0 ) - { + if (n == 0) { *olen = 0; - return( 0 ); + return 0; } /* The following expression is to calculate the following formula without * risk of integer overflow in n: * n = ( ( n * 6 ) + 7 ) >> 3; */ - n = ( 6 * ( n >> 3 ) ) + ( ( 6 * ( n & 0x7 ) + 7 ) >> 3 ); + n = (6 * (n >> 3)) + ((6 * (n & 0x7) + 7) >> 3); n -= equals; - if( dst == NULL || dlen < n ) - { + if (dst == NULL || dlen < n) { *olen = n; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL; } equals = 0; - for( x = 0, p = dst; i > 0; i--, src++ ) - { - if( *src == '\r' || *src == '\n' || *src == ' ' ) + for (x = 0, p = dst; i > 0; i--, src++) { + if (*src == '\r' || *src == '\n' || *src == ' ') { continue; + } x = x << 6; - if( *src == '=' ) + if (*src == '=') { ++equals; - else - x |= mbedtls_ct_base64_dec_value( *src ); + } else { + x |= mbedtls_ct_base64_dec_value(*src); + } - if( ++accumulated_digits == 4 ) - { + if (++accumulated_digits == 4) { accumulated_digits = 0; - *p++ = MBEDTLS_BYTE_2( x ); - if( equals <= 1 ) *p++ = MBEDTLS_BYTE_1( x ); - if( equals <= 0 ) *p++ = MBEDTLS_BYTE_0( x ); + *p++ = MBEDTLS_BYTE_2(x); + if (equals <= 1) { + *p++ = MBEDTLS_BYTE_1(x); + } + if (equals <= 0) { + *p++ = MBEDTLS_BYTE_0(x); + } } } *olen = p - dst; - return( 0 ); + return 0; } #if defined(MBEDTLS_SELF_TEST) @@ -227,44 +229,47 @@ static const unsigned char base64_test_enc[] = /* * Checkup routine */ -int mbedtls_base64_self_test( int verbose ) +int mbedtls_base64_self_test(int verbose) { size_t len; const unsigned char *src; unsigned char buffer[128]; - if( verbose != 0 ) - mbedtls_printf( " Base64 encoding test: " ); + if (verbose != 0) { + mbedtls_printf(" Base64 encoding test: "); + } src = base64_test_dec; - if( mbedtls_base64_encode( buffer, sizeof( buffer ), &len, src, 64 ) != 0 || - memcmp( base64_test_enc, buffer, 88 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_base64_encode(buffer, sizeof(buffer), &len, src, 64) != 0 || + memcmp(base64_test_enc, buffer, 88) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } - return( 1 ); + return 1; } - if( verbose != 0 ) - mbedtls_printf( "passed\n Base64 decoding test: " ); + if (verbose != 0) { + mbedtls_printf("passed\n Base64 decoding test: "); + } src = base64_test_enc; - if( mbedtls_base64_decode( buffer, sizeof( buffer ), &len, src, 88 ) != 0 || - memcmp( base64_test_dec, buffer, 64 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_base64_decode(buffer, sizeof(buffer), &len, src, 88) != 0 || + memcmp(base64_test_dec, buffer, 64) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } - return( 1 ); + return 1; } - if( verbose != 0 ) - mbedtls_printf( "passed\n\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/bignum.c b/library/bignum.c index 62eb00715..9bc1c2d43 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -49,25 +49,25 @@ #include "mbedtls/platform.h" -#define MPI_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) -#define MPI_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) +#define MPI_VALIDATE_RET(cond) \ + MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA) +#define MPI_VALIDATE(cond) \ + MBEDTLS_INTERNAL_VALIDATE(cond) -#define MPI_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ +#define MPI_SIZE_T_MAX ((size_t) -1) /* SIZE_T_MAX is not standard */ /* Implementation that should never be optimized out by the compiler */ -static void mbedtls_mpi_zeroize( mbedtls_mpi_uint *v, size_t n ) +static void mbedtls_mpi_zeroize(mbedtls_mpi_uint *v, size_t n) { - mbedtls_platform_zeroize( v, ciL * n ); + mbedtls_platform_zeroize(v, ciL * n); } /* * Initialize one MPI */ -void mbedtls_mpi_init( mbedtls_mpi *X ) +void mbedtls_mpi_init(mbedtls_mpi *X) { - MPI_VALIDATE( X != NULL ); + MPI_VALIDATE(X != NULL); X->s = 1; X->n = 0; @@ -77,15 +77,15 @@ void mbedtls_mpi_init( mbedtls_mpi *X ) /* * Unallocate one MPI */ -void mbedtls_mpi_free( mbedtls_mpi *X ) +void mbedtls_mpi_free(mbedtls_mpi *X) { - if( X == NULL ) + if (X == NULL) { return; + } - if( X->p != NULL ) - { - mbedtls_mpi_zeroize( X->p, X->n ); - mbedtls_free( X->p ); + if (X->p != NULL) { + mbedtls_mpi_zeroize(X->p, X->n); + mbedtls_free(X->p); } X->s = 1; @@ -96,93 +96,93 @@ void mbedtls_mpi_free( mbedtls_mpi *X ) /* * Enlarge to the specified number of limbs */ -int mbedtls_mpi_grow( mbedtls_mpi *X, size_t nblimbs ) +int mbedtls_mpi_grow(mbedtls_mpi *X, size_t nblimbs) { mbedtls_mpi_uint *p; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - if( nblimbs > MBEDTLS_MPI_MAX_LIMBS ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if (nblimbs > MBEDTLS_MPI_MAX_LIMBS) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - if( X->n < nblimbs ) - { - if( ( p = (mbedtls_mpi_uint*)mbedtls_calloc( nblimbs, ciL ) ) == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if (X->n < nblimbs) { + if ((p = (mbedtls_mpi_uint *) mbedtls_calloc(nblimbs, ciL)) == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - if( X->p != NULL ) - { - memcpy( p, X->p, X->n * ciL ); - mbedtls_mpi_zeroize( X->p, X->n ); - mbedtls_free( X->p ); + if (X->p != NULL) { + memcpy(p, X->p, X->n * ciL); + mbedtls_mpi_zeroize(X->p, X->n); + mbedtls_free(X->p); } X->n = nblimbs; X->p = p; } - return( 0 ); + return 0; } /* * Resize down as much as possible, * while keeping at least the specified number of limbs */ -int mbedtls_mpi_shrink( mbedtls_mpi *X, size_t nblimbs ) +int mbedtls_mpi_shrink(mbedtls_mpi *X, size_t nblimbs) { mbedtls_mpi_uint *p; size_t i; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - if( nblimbs > MBEDTLS_MPI_MAX_LIMBS ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if (nblimbs > MBEDTLS_MPI_MAX_LIMBS) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } /* Actually resize up if there are currently fewer than nblimbs limbs. */ - if( X->n <= nblimbs ) - return( mbedtls_mpi_grow( X, nblimbs ) ); + if (X->n <= nblimbs) { + return mbedtls_mpi_grow(X, nblimbs); + } /* After this point, then X->n > nblimbs and in particular X->n > 0. */ - for( i = X->n - 1; i > 0; i-- ) - if( X->p[i] != 0 ) + for (i = X->n - 1; i > 0; i--) { + if (X->p[i] != 0) { break; + } + } i++; - if( i < nblimbs ) + if (i < nblimbs) { i = nblimbs; + } - if( ( p = (mbedtls_mpi_uint*)mbedtls_calloc( i, ciL ) ) == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if ((p = (mbedtls_mpi_uint *) mbedtls_calloc(i, ciL)) == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - if( X->p != NULL ) - { - memcpy( p, X->p, i * ciL ); - mbedtls_mpi_zeroize( X->p, X->n ); - mbedtls_free( X->p ); + if (X->p != NULL) { + memcpy(p, X->p, i * ciL); + mbedtls_mpi_zeroize(X->p, X->n); + mbedtls_free(X->p); } X->n = i; X->p = p; - return( 0 ); + return 0; } /* Resize X to have exactly n limbs and set it to 0. */ -static int mbedtls_mpi_resize_clear( mbedtls_mpi *X, size_t limbs ) +static int mbedtls_mpi_resize_clear(mbedtls_mpi *X, size_t limbs) { - if( limbs == 0 ) - { - mbedtls_mpi_free( X ); - return( 0 ); - } - else if( X->n == limbs ) - { - memset( X->p, 0, limbs * ciL ); + if (limbs == 0) { + mbedtls_mpi_free(X); + return 0; + } else if (X->n == limbs) { + memset(X->p, 0, limbs * ciL); X->s = 1; - return( 0 ); - } - else - { - mbedtls_mpi_free( X ); - return( mbedtls_mpi_grow( X, limbs ) ); + return 0; + } else { + mbedtls_mpi_free(X); + return mbedtls_mpi_grow(X, limbs); } } @@ -195,368 +195,374 @@ static int mbedtls_mpi_resize_clear( mbedtls_mpi *X, size_t limbs ) * but some code in the bignum module relies on this property, for example * in mbedtls_mpi_exp_mod(). */ -int mbedtls_mpi_copy( mbedtls_mpi *X, const mbedtls_mpi *Y ) +int mbedtls_mpi_copy(mbedtls_mpi *X, const mbedtls_mpi *Y) { int ret = 0; size_t i; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); - if( X == Y ) - return( 0 ); - - if( Y->n == 0 ) - { - if( X->n != 0 ) - { - X->s = 1; - memset( X->p, 0, X->n * ciL ); - } - return( 0 ); + if (X == Y) { + return 0; } - for( i = Y->n - 1; i > 0; i-- ) - if( Y->p[i] != 0 ) + if (Y->n == 0) { + if (X->n != 0) { + X->s = 1; + memset(X->p, 0, X->n * ciL); + } + return 0; + } + + for (i = Y->n - 1; i > 0; i--) { + if (Y->p[i] != 0) { break; + } + } i++; X->s = Y->s; - if( X->n < i ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i ) ); - } - else - { - memset( X->p + i, 0, ( X->n - i ) * ciL ); + if (X->n < i) { + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, i)); + } else { + memset(X->p + i, 0, (X->n - i) * ciL); } - memcpy( X->p, Y->p, i * ciL ); + memcpy(X->p, Y->p, i * ciL); cleanup: - return( ret ); + return ret; } /* * Swap the contents of X and Y */ -void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ) +void mbedtls_mpi_swap(mbedtls_mpi *X, mbedtls_mpi *Y) { mbedtls_mpi T; - MPI_VALIDATE( X != NULL ); - MPI_VALIDATE( Y != NULL ); + MPI_VALIDATE(X != NULL); + MPI_VALIDATE(Y != NULL); - memcpy( &T, X, sizeof( mbedtls_mpi ) ); - memcpy( X, Y, sizeof( mbedtls_mpi ) ); - memcpy( Y, &T, sizeof( mbedtls_mpi ) ); + memcpy(&T, X, sizeof(mbedtls_mpi)); + memcpy(X, Y, sizeof(mbedtls_mpi)); + memcpy(Y, &T, sizeof(mbedtls_mpi)); } -static inline mbedtls_mpi_uint mpi_sint_abs( mbedtls_mpi_sint z ) +static inline mbedtls_mpi_uint mpi_sint_abs(mbedtls_mpi_sint z) { - if( z >= 0 ) - return( z ); + if (z >= 0) { + return z; + } /* Take care to handle the most negative value (-2^(biL-1)) correctly. * A naive -z would have undefined behavior. * Write this in a way that makes popular compilers happy (GCC, Clang, * MSVC). */ - return( (mbedtls_mpi_uint) 0 - (mbedtls_mpi_uint) z ); + return (mbedtls_mpi_uint) 0 - (mbedtls_mpi_uint) z; } /* * Set value from integer */ -int mbedtls_mpi_lset( mbedtls_mpi *X, mbedtls_mpi_sint z ) +int mbedtls_mpi_lset(mbedtls_mpi *X, mbedtls_mpi_sint z) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, 1 ) ); - memset( X->p, 0, X->n * ciL ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, 1)); + memset(X->p, 0, X->n * ciL); - X->p[0] = mpi_sint_abs( z ); - X->s = ( z < 0 ) ? -1 : 1; + X->p[0] = mpi_sint_abs(z); + X->s = (z < 0) ? -1 : 1; cleanup: - return( ret ); + return ret; } /* * Get a specific bit */ -int mbedtls_mpi_get_bit( const mbedtls_mpi *X, size_t pos ) +int mbedtls_mpi_get_bit(const mbedtls_mpi *X, size_t pos) { - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - if( X->n * biL <= pos ) - return( 0 ); + if (X->n * biL <= pos) { + return 0; + } - return( ( X->p[pos / biL] >> ( pos % biL ) ) & 0x01 ); + return (X->p[pos / biL] >> (pos % biL)) & 0x01; } /* * Set a bit to a specific value of 0 or 1 */ -int mbedtls_mpi_set_bit( mbedtls_mpi *X, size_t pos, unsigned char val ) +int mbedtls_mpi_set_bit(mbedtls_mpi *X, size_t pos, unsigned char val) { int ret = 0; size_t off = pos / biL; size_t idx = pos % biL; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - if( val != 0 && val != 1 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - if( X->n * biL <= pos ) - { - if( val == 0 ) - return( 0 ); - - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, off + 1 ) ); + if (val != 0 && val != 1) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - X->p[off] &= ~( (mbedtls_mpi_uint) 0x01 << idx ); + if (X->n * biL <= pos) { + if (val == 0) { + return 0; + } + + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, off + 1)); + } + + X->p[off] &= ~((mbedtls_mpi_uint) 0x01 << idx); X->p[off] |= (mbedtls_mpi_uint) val << idx; cleanup: - return( ret ); + return ret; } /* * Return the number of less significant zero-bits */ -size_t mbedtls_mpi_lsb( const mbedtls_mpi *X ) +size_t mbedtls_mpi_lsb(const mbedtls_mpi *X) { size_t i, j, count = 0; - MBEDTLS_INTERNAL_VALIDATE_RET( X != NULL, 0 ); + MBEDTLS_INTERNAL_VALIDATE_RET(X != NULL, 0); - for( i = 0; i < X->n; i++ ) - for( j = 0; j < biL; j++, count++ ) - if( ( ( X->p[i] >> j ) & 1 ) != 0 ) - return( count ); + for (i = 0; i < X->n; i++) { + for (j = 0; j < biL; j++, count++) { + if (((X->p[i] >> j) & 1) != 0) { + return count; + } + } + } - return( 0 ); + return 0; } /* * Return the number of bits */ -size_t mbedtls_mpi_bitlen( const mbedtls_mpi *X ) +size_t mbedtls_mpi_bitlen(const mbedtls_mpi *X) { - return( mbedtls_mpi_core_bitlen( X->p, X->n ) ); + return mbedtls_mpi_core_bitlen(X->p, X->n); } /* * Return the total size in bytes */ -size_t mbedtls_mpi_size( const mbedtls_mpi *X ) +size_t mbedtls_mpi_size(const mbedtls_mpi *X) { - return( ( mbedtls_mpi_bitlen( X ) + 7 ) >> 3 ); + return (mbedtls_mpi_bitlen(X) + 7) >> 3; } /* * Convert an ASCII character to digit value */ -static int mpi_get_digit( mbedtls_mpi_uint *d, int radix, char c ) +static int mpi_get_digit(mbedtls_mpi_uint *d, int radix, char c) { *d = 255; - if( c >= 0x30 && c <= 0x39 ) *d = c - 0x30; - if( c >= 0x41 && c <= 0x46 ) *d = c - 0x37; - if( c >= 0x61 && c <= 0x66 ) *d = c - 0x57; + if (c >= 0x30 && c <= 0x39) { + *d = c - 0x30; + } + if (c >= 0x41 && c <= 0x46) { + *d = c - 0x37; + } + if (c >= 0x61 && c <= 0x66) { + *d = c - 0x57; + } - if( *d >= (mbedtls_mpi_uint) radix ) - return( MBEDTLS_ERR_MPI_INVALID_CHARACTER ); + if (*d >= (mbedtls_mpi_uint) radix) { + return MBEDTLS_ERR_MPI_INVALID_CHARACTER; + } - return( 0 ); + return 0; } /* * Import from an ASCII string */ -int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s ) +int mbedtls_mpi_read_string(mbedtls_mpi *X, int radix, const char *s) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, j, slen, n; int sign = 1; mbedtls_mpi_uint d; mbedtls_mpi T; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( s != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(s != NULL); - if( radix < 2 || radix > 16 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - mbedtls_mpi_init( &T ); - - if( s[0] == 0 ) - { - mbedtls_mpi_free( X ); - return( 0 ); + if (radix < 2 || radix > 16) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - if( s[0] == '-' ) - { + mbedtls_mpi_init(&T); + + if (s[0] == 0) { + mbedtls_mpi_free(X); + return 0; + } + + if (s[0] == '-') { ++s; sign = -1; } - slen = strlen( s ); + slen = strlen(s); - if( radix == 16 ) - { - if( slen > MPI_SIZE_T_MAX >> 2 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - n = BITS_TO_LIMBS( slen << 2 ); - - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, n ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 0 ) ); - - for( i = slen, j = 0; i > 0; i--, j++ ) - { - MBEDTLS_MPI_CHK( mpi_get_digit( &d, radix, s[i - 1] ) ); - X->p[j / ( 2 * ciL )] |= d << ( ( j % ( 2 * ciL ) ) << 2 ); + if (radix == 16) { + if (slen > MPI_SIZE_T_MAX >> 2) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 0 ) ); - for( i = 0; i < slen; i++ ) - { - MBEDTLS_MPI_CHK( mpi_get_digit( &d, radix, s[i] ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_int( &T, X, radix ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( X, &T, d ) ); + n = BITS_TO_LIMBS(slen << 2); + + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, n)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, 0)); + + for (i = slen, j = 0; i > 0; i--, j++) { + MBEDTLS_MPI_CHK(mpi_get_digit(&d, radix, s[i - 1])); + X->p[j / (2 * ciL)] |= d << ((j % (2 * ciL)) << 2); + } + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, 0)); + + for (i = 0; i < slen; i++) { + MBEDTLS_MPI_CHK(mpi_get_digit(&d, radix, s[i])); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int(&T, X, radix)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(X, &T, d)); } } - if( sign < 0 && mbedtls_mpi_bitlen( X ) != 0 ) + if (sign < 0 && mbedtls_mpi_bitlen(X) != 0) { X->s = -1; + } cleanup: - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); - return( ret ); + return ret; } /* * Helper to write the digits high-order first. */ -static int mpi_write_hlp( mbedtls_mpi *X, int radix, - char **p, const size_t buflen ) +static int mpi_write_hlp(mbedtls_mpi *X, int radix, + char **p, const size_t buflen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi_uint r; size_t length = 0; char *p_end = *p + buflen; - do - { - if( length >= buflen ) - { - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + do { + if (length >= buflen) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; } - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_int( &r, X, radix ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_div_int( X, NULL, X, radix ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_int(&r, X, radix)); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_int(X, NULL, X, radix)); /* * Write the residue in the current position, as an ASCII character. */ - if( r < 0xA ) - *(--p_end) = (char)( '0' + r ); - else - *(--p_end) = (char)( 'A' + ( r - 0xA ) ); + if (r < 0xA) { + *(--p_end) = (char) ('0' + r); + } else { + *(--p_end) = (char) ('A' + (r - 0xA)); + } length++; - } while( mbedtls_mpi_cmp_int( X, 0 ) != 0 ); + } while (mbedtls_mpi_cmp_int(X, 0) != 0); - memmove( *p, p_end, length ); + memmove(*p, p_end, length); *p += length; cleanup: - return( ret ); + return ret; } /* * Export into an ASCII string */ -int mbedtls_mpi_write_string( const mbedtls_mpi *X, int radix, - char *buf, size_t buflen, size_t *olen ) +int mbedtls_mpi_write_string(const mbedtls_mpi *X, int radix, + char *buf, size_t buflen, size_t *olen) { int ret = 0; size_t n; char *p; mbedtls_mpi T; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( olen != NULL ); - MPI_VALIDATE_RET( buflen == 0 || buf != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(olen != NULL); + MPI_VALIDATE_RET(buflen == 0 || buf != NULL); - if( radix < 2 || radix > 16 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (radix < 2 || radix > 16) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - n = mbedtls_mpi_bitlen( X ); /* Number of bits necessary to present `n`. */ - if( radix >= 4 ) n >>= 1; /* Number of 4-adic digits necessary to present + n = mbedtls_mpi_bitlen(X); /* Number of bits necessary to present `n`. */ + if (radix >= 4) { + n >>= 1; /* Number of 4-adic digits necessary to present * `n`. If radix > 4, this might be a strict * overapproximation of the number of * radix-adic digits needed to present `n`. */ - if( radix >= 16 ) n >>= 1; /* Number of hexadecimal digits necessary to + } + if (radix >= 16) { + n >>= 1; /* Number of hexadecimal digits necessary to * present `n`. */ + } n += 1; /* Terminating null byte */ n += 1; /* Compensate for the divisions above, which round down `n` * in case it's not even. */ n += 1; /* Potential '-'-sign. */ - n += ( n & 1 ); /* Make n even to have enough space for hexadecimal writing, + n += (n & 1); /* Make n even to have enough space for hexadecimal writing, * which always uses an even number of hex-digits. */ - if( buflen < n ) - { + if (buflen < n) { *olen = n; - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; } p = buf; - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); - if( X->s == -1 ) - { + if (X->s == -1) { *p++ = '-'; buflen--; } - if( radix == 16 ) - { + if (radix == 16) { int c; size_t i, j, k; - for( i = X->n, k = 0; i > 0; i-- ) - { - for( j = ciL; j > 0; j-- ) - { - c = ( X->p[i - 1] >> ( ( j - 1 ) << 3) ) & 0xFF; + for (i = X->n, k = 0; i > 0; i--) { + for (j = ciL; j > 0; j--) { + c = (X->p[i - 1] >> ((j - 1) << 3)) & 0xFF; - if( c == 0 && k == 0 && ( i + j ) != 2 ) + if (c == 0 && k == 0 && (i + j) != 2) { continue; + } *(p++) = "0123456789ABCDEF" [c / 16]; *(p++) = "0123456789ABCDEF" [c % 16]; k = 1; } } - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &T, X ) ); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&T, X)); - if( T.s == -1 ) + if (T.s == -1) { T.s = 1; + } - MBEDTLS_MPI_CHK( mpi_write_hlp( &T, radix, &p, buflen ) ); + MBEDTLS_MPI_CHK(mpi_write_hlp(&T, radix, &p, buflen)); } *p++ = '\0'; @@ -564,16 +570,16 @@ int mbedtls_mpi_write_string( const mbedtls_mpi *X, int radix, cleanup: - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); - return( ret ); + return ret; } #if defined(MBEDTLS_FS_IO) /* * Read X from an opened file */ -int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin ) +int mbedtls_mpi_read_file(mbedtls_mpi *X, int radix, FILE *fin) { mbedtls_mpi_uint d; size_t slen; @@ -582,37 +588,46 @@ int mbedtls_mpi_read_file( mbedtls_mpi *X, int radix, FILE *fin ) * Buffer should have space for (short) label and decimal formatted MPI, * newline characters and '\0' */ - char s[ MBEDTLS_MPI_RW_BUFFER_SIZE ]; + char s[MBEDTLS_MPI_RW_BUFFER_SIZE]; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( fin != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(fin != NULL); - if( radix < 2 || radix > 16 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (radix < 2 || radix > 16) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - memset( s, 0, sizeof( s ) ); - if( fgets( s, sizeof( s ) - 1, fin ) == NULL ) - return( MBEDTLS_ERR_MPI_FILE_IO_ERROR ); + memset(s, 0, sizeof(s)); + if (fgets(s, sizeof(s) - 1, fin) == NULL) { + return MBEDTLS_ERR_MPI_FILE_IO_ERROR; + } - slen = strlen( s ); - if( slen == sizeof( s ) - 2 ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + slen = strlen(s); + if (slen == sizeof(s) - 2) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; + } - if( slen > 0 && s[slen - 1] == '\n' ) { slen--; s[slen] = '\0'; } - if( slen > 0 && s[slen - 1] == '\r' ) { slen--; s[slen] = '\0'; } + if (slen > 0 && s[slen - 1] == '\n') { + slen--; s[slen] = '\0'; + } + if (slen > 0 && s[slen - 1] == '\r') { + slen--; s[slen] = '\0'; + } p = s + slen; - while( p-- > s ) - if( mpi_get_digit( &d, radix, *p ) != 0 ) + while (p-- > s) { + if (mpi_get_digit(&d, radix, *p) != 0) { break; + } + } - return( mbedtls_mpi_read_string( X, radix, p + 1 ) ); + return mbedtls_mpi_read_string(X, radix, p + 1); } /* * Write X into an opened file (or stdout if fout == NULL) */ -int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE *fout ) +int mbedtls_mpi_write_file(const char *p, const mbedtls_mpi *X, int radix, FILE *fout) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n, slen, plen; @@ -620,35 +635,38 @@ int mbedtls_mpi_write_file( const char *p, const mbedtls_mpi *X, int radix, FILE * Buffer should have space for (short) label and decimal formatted MPI, * newline characters and '\0' */ - char s[ MBEDTLS_MPI_RW_BUFFER_SIZE ]; - MPI_VALIDATE_RET( X != NULL ); + char s[MBEDTLS_MPI_RW_BUFFER_SIZE]; + MPI_VALIDATE_RET(X != NULL); - if( radix < 2 || radix > 16 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (radix < 2 || radix > 16) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - memset( s, 0, sizeof( s ) ); + memset(s, 0, sizeof(s)); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_string( X, radix, s, sizeof( s ) - 2, &n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_string(X, radix, s, sizeof(s) - 2, &n)); - if( p == NULL ) p = ""; + if (p == NULL) { + p = ""; + } - plen = strlen( p ); - slen = strlen( s ); + plen = strlen(p); + slen = strlen(s); s[slen++] = '\r'; s[slen++] = '\n'; - if( fout != NULL ) - { - if( fwrite( p, 1, plen, fout ) != plen || - fwrite( s, 1, slen, fout ) != slen ) - return( MBEDTLS_ERR_MPI_FILE_IO_ERROR ); + if (fout != NULL) { + if (fwrite(p, 1, plen, fout) != plen || + fwrite(s, 1, slen, fout) != slen) { + return MBEDTLS_ERR_MPI_FILE_IO_ERROR; + } + } else { + mbedtls_printf("%s%s", p, s); } - else - mbedtls_printf( "%s%s", p, s ); cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ @@ -658,16 +676,16 @@ cleanup: * This function is guaranteed to return an MPI with exactly the necessary * number of limbs (in particular, it does not skip 0s in the input). */ -int mbedtls_mpi_read_binary_le( mbedtls_mpi *X, - const unsigned char *buf, size_t buflen ) +int mbedtls_mpi_read_binary_le(mbedtls_mpi *X, + const unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( buflen ); + const size_t limbs = CHARS_TO_LIMBS(buflen); /* Ensure that target MPI has exactly the necessary number of limbs */ - MBEDTLS_MPI_CHK( mbedtls_mpi_resize_clear( X, limbs ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_resize_clear(X, limbs)); - MBEDTLS_MPI_CHK( mbedtls_mpi_core_read_le( X->p, X->n, buf, buflen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_core_read_le(X->p, X->n, buf, buflen)); cleanup: @@ -676,7 +694,7 @@ cleanup: * upon failure is not necessary because failure only can happen before any * input is copied. */ - return( ret ); + return ret; } /* @@ -685,18 +703,18 @@ cleanup: * This function is guaranteed to return an MPI with exactly the necessary * number of limbs (in particular, it does not skip 0s in the input). */ -int mbedtls_mpi_read_binary( mbedtls_mpi *X, const unsigned char *buf, size_t buflen ) +int mbedtls_mpi_read_binary(mbedtls_mpi *X, const unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( buflen ); + const size_t limbs = CHARS_TO_LIMBS(buflen); - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( buflen == 0 || buf != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(buflen == 0 || buf != NULL); /* Ensure that target MPI has exactly the necessary number of limbs */ - MBEDTLS_MPI_CHK( mbedtls_mpi_resize_clear( X, limbs ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_resize_clear(X, limbs)); - MBEDTLS_MPI_CHK( mbedtls_mpi_core_read_be( X->p, X->n, buf, buflen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_core_read_be(X->p, X->n, buf, buflen)); cleanup: @@ -705,66 +723,66 @@ cleanup: * upon failure is not necessary because failure only can happen before any * input is copied. */ - return( ret ); + return ret; } /* * Export X into unsigned binary data, little endian */ -int mbedtls_mpi_write_binary_le( const mbedtls_mpi *X, - unsigned char *buf, size_t buflen ) +int mbedtls_mpi_write_binary_le(const mbedtls_mpi *X, + unsigned char *buf, size_t buflen) { - return( mbedtls_mpi_core_write_le( X->p, X->n, buf, buflen ) ); + return mbedtls_mpi_core_write_le(X->p, X->n, buf, buflen); } /* * Export X into unsigned binary data, big endian */ -int mbedtls_mpi_write_binary( const mbedtls_mpi *X, - unsigned char *buf, size_t buflen ) +int mbedtls_mpi_write_binary(const mbedtls_mpi *X, + unsigned char *buf, size_t buflen) { - return( mbedtls_mpi_core_write_be( X->p, X->n, buf, buflen ) ); + return mbedtls_mpi_core_write_be(X->p, X->n, buf, buflen); } /* * Left-shift: X <<= count */ -int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count ) +int mbedtls_mpi_shift_l(mbedtls_mpi *X, size_t count) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, v0, t1; mbedtls_mpi_uint r0 = 0, r1; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - v0 = count / (biL ); + v0 = count / (biL); t1 = count & (biL - 1); - i = mbedtls_mpi_bitlen( X ) + count; + i = mbedtls_mpi_bitlen(X) + count; - if( X->n * biL < i ) - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, BITS_TO_LIMBS( i ) ) ); + if (X->n * biL < i) { + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, BITS_TO_LIMBS(i))); + } ret = 0; /* * shift by count / limb_size */ - if( v0 > 0 ) - { - for( i = X->n; i > v0; i-- ) + if (v0 > 0) { + for (i = X->n; i > v0; i--) { X->p[i - 1] = X->p[i - v0 - 1]; + } - for( ; i > 0; i-- ) + for (; i > 0; i--) { X->p[i - 1] = 0; + } } /* * shift by count % limb_size */ - if( t1 > 0 ) - { - for( i = v0; i < X->n; i++ ) - { + if (t1 > 0) { + for (i = v0; i < X->n; i++) { r1 = X->p[i] >> (biL - t1); X->p[i] <<= t1; X->p[i] |= r0; @@ -774,206 +792,237 @@ int mbedtls_mpi_shift_l( mbedtls_mpi *X, size_t count ) cleanup: - return( ret ); + return ret; } /* * Right-shift: X >>= count */ -int mbedtls_mpi_shift_r( mbedtls_mpi *X, size_t count ) +int mbedtls_mpi_shift_r(mbedtls_mpi *X, size_t count) { - MPI_VALIDATE_RET( X != NULL ); - if( X->n != 0 ) - mbedtls_mpi_core_shift_r( X->p, X->n, count ); - return( 0 ); + MPI_VALIDATE_RET(X != NULL); + if (X->n != 0) { + mbedtls_mpi_core_shift_r(X->p, X->n, count); + } + return 0; } /* * Compare unsigned values */ -int mbedtls_mpi_cmp_abs( const mbedtls_mpi *X, const mbedtls_mpi *Y ) +int mbedtls_mpi_cmp_abs(const mbedtls_mpi *X, const mbedtls_mpi *Y) { size_t i, j; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); - for( i = X->n; i > 0; i-- ) - if( X->p[i - 1] != 0 ) + for (i = X->n; i > 0; i--) { + if (X->p[i - 1] != 0) { break; - - for( j = Y->n; j > 0; j-- ) - if( Y->p[j - 1] != 0 ) - break; - - if( i == 0 && j == 0 ) - return( 0 ); - - if( i > j ) return( 1 ); - if( j > i ) return( -1 ); - - for( ; i > 0; i-- ) - { - if( X->p[i - 1] > Y->p[i - 1] ) return( 1 ); - if( X->p[i - 1] < Y->p[i - 1] ) return( -1 ); + } } - return( 0 ); + for (j = Y->n; j > 0; j--) { + if (Y->p[j - 1] != 0) { + break; + } + } + + if (i == 0 && j == 0) { + return 0; + } + + if (i > j) { + return 1; + } + if (j > i) { + return -1; + } + + for (; i > 0; i--) { + if (X->p[i - 1] > Y->p[i - 1]) { + return 1; + } + if (X->p[i - 1] < Y->p[i - 1]) { + return -1; + } + } + + return 0; } /* * Compare signed values */ -int mbedtls_mpi_cmp_mpi( const mbedtls_mpi *X, const mbedtls_mpi *Y ) +int mbedtls_mpi_cmp_mpi(const mbedtls_mpi *X, const mbedtls_mpi *Y) { size_t i, j; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); - for( i = X->n; i > 0; i-- ) - if( X->p[i - 1] != 0 ) + for (i = X->n; i > 0; i--) { + if (X->p[i - 1] != 0) { break; - - for( j = Y->n; j > 0; j-- ) - if( Y->p[j - 1] != 0 ) - break; - - if( i == 0 && j == 0 ) - return( 0 ); - - if( i > j ) return( X->s ); - if( j > i ) return( -Y->s ); - - if( X->s > 0 && Y->s < 0 ) return( 1 ); - if( Y->s > 0 && X->s < 0 ) return( -1 ); - - for( ; i > 0; i-- ) - { - if( X->p[i - 1] > Y->p[i - 1] ) return( X->s ); - if( X->p[i - 1] < Y->p[i - 1] ) return( -X->s ); + } } - return( 0 ); + for (j = Y->n; j > 0; j--) { + if (Y->p[j - 1] != 0) { + break; + } + } + + if (i == 0 && j == 0) { + return 0; + } + + if (i > j) { + return X->s; + } + if (j > i) { + return -Y->s; + } + + if (X->s > 0 && Y->s < 0) { + return 1; + } + if (Y->s > 0 && X->s < 0) { + return -1; + } + + for (; i > 0; i--) { + if (X->p[i - 1] > Y->p[i - 1]) { + return X->s; + } + if (X->p[i - 1] < Y->p[i - 1]) { + return -X->s; + } + } + + return 0; } /* * Compare signed values */ -int mbedtls_mpi_cmp_int( const mbedtls_mpi *X, mbedtls_mpi_sint z ) +int mbedtls_mpi_cmp_int(const mbedtls_mpi *X, mbedtls_mpi_sint z) { mbedtls_mpi Y; mbedtls_mpi_uint p[1]; - MPI_VALIDATE_RET( X != NULL ); + MPI_VALIDATE_RET(X != NULL); - *p = mpi_sint_abs( z ); - Y.s = ( z < 0 ) ? -1 : 1; + *p = mpi_sint_abs(z); + Y.s = (z < 0) ? -1 : 1; Y.n = 1; Y.p = p; - return( mbedtls_mpi_cmp_mpi( X, &Y ) ); + return mbedtls_mpi_cmp_mpi(X, &Y); } /* * Unsigned addition: X = |A| + |B| (HAC 14.7) */ -int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_add_abs(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t j; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - if( X == B ) - { + if (X == B) { const mbedtls_mpi *T = A; A = X; B = T; } - if( X != A ) - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, A ) ); + if (X != A) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)); + } /* * X must always be positive as a result of unsigned additions. */ X->s = 1; - for( j = B->n; j > 0; j-- ) - if( B->p[j - 1] != 0 ) + for (j = B->n; j > 0; j--) { + if (B->p[j - 1] != 0) { break; + } + } /* Exit early to avoid undefined behavior on NULL+0 when X->n == 0 * and B is 0 (of any size). */ - if( j == 0 ) - return( 0 ); + if (j == 0) { + return 0; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, j)); /* j is the number of non-zero limbs of B. Add those to X. */ mbedtls_mpi_uint *p = X->p; - mbedtls_mpi_uint c = mbedtls_mpi_core_add( p, p, B->p, j ); + mbedtls_mpi_uint c = mbedtls_mpi_core_add(p, p, B->p, j); p += j; /* Now propagate any carry */ - while( c != 0 ) - { - if( j >= X->n ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, j + 1 ) ); + while (c != 0) { + if (j >= X->n) { + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, j + 1)); p = X->p + j; } - *p += c; c = ( *p < c ); j++; p++; + *p += c; c = (*p < c); j++; p++; } cleanup: - return( ret ); + return ret; } /* * Unsigned subtraction: X = |A| - |B| (HAC 14.9, 14.10) */ -int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_sub_abs(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; mbedtls_mpi_uint carry; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - for( n = B->n; n > 0; n-- ) - if( B->p[n - 1] != 0 ) + for (n = B->n; n > 0; n--) { + if (B->p[n - 1] != 0) { break; - if( n > A->n ) - { + } + } + if (n > A->n) { /* B >= (2^ciL)^n > A */ ret = MBEDTLS_ERR_MPI_NEGATIVE_VALUE; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, A->n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, A->n)); /* Set the high limbs of X to match A. Don't touch the lower limbs * because X might be aliased to B, and we must not overwrite the * significant digits of B. */ - if( A->n > n ) - memcpy( X->p + n, A->p + n, ( A->n - n ) * ciL ); - if( X->n > A->n ) - memset( X->p + A->n, 0, ( X->n - A->n ) * ciL ); + if (A->n > n) { + memcpy(X->p + n, A->p + n, (A->n - n) * ciL); + } + if (X->n > A->n) { + memset(X->p + A->n, 0, (X->n - A->n) * ciL); + } - carry = mbedtls_mpi_core_sub( X->p, A->p, B->p, n ); - if( carry != 0 ) - { + carry = mbedtls_mpi_core_sub(X->p, A->p, B->p, n); + if (carry != 0) { /* Propagate the carry through the rest of X. */ - carry = mbedtls_mpi_core_sub_int( X->p + n, X->p + n, carry, X->n - n ); + carry = mbedtls_mpi_core_sub_int(X->p + n, X->p + n, carry, X->n - n); /* If we have further carry/borrow, the result is negative. */ - if( carry != 0 ) - { + if (carry != 0) { ret = MBEDTLS_ERR_MPI_NEGATIVE_VALUE; goto cleanup; } @@ -983,176 +1032,182 @@ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi X->s = 1; cleanup: - return( ret ); + return ret; } /* Common function for signed addition and subtraction. * Calculate A + B * flip_B where flip_B is 1 or -1. */ -static int add_sub_mpi( mbedtls_mpi *X, - const mbedtls_mpi *A, const mbedtls_mpi *B, - int flip_B ) +static int add_sub_mpi(mbedtls_mpi *X, + const mbedtls_mpi *A, const mbedtls_mpi *B, + int flip_B) { int ret, s; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); s = A->s; - if( A->s * B->s * flip_B < 0 ) - { - int cmp = mbedtls_mpi_cmp_abs( A, B ); - if( cmp >= 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, A, B ) ); + if (A->s * B->s * flip_B < 0) { + int cmp = mbedtls_mpi_cmp_abs(A, B); + if (cmp >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(X, A, B)); /* If |A| = |B|, the result is 0 and we must set the sign bit * to +1 regardless of which of A or B was negative. Otherwise, * since |A| > |B|, the sign is the sign of A. */ X->s = cmp == 0 ? 1 : s; - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( X, B, A ) ); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(X, B, A)); /* Since |A| < |B|, the sign is the opposite of A. */ X->s = -s; } - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_add_abs( X, A, B ) ); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(X, A, B)); X->s = s; } cleanup: - return( ret ); + return ret; } /* * Signed addition: X = A + B */ -int mbedtls_mpi_add_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_add_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) { - return( add_sub_mpi( X, A, B, 1 ) ); + return add_sub_mpi(X, A, B, 1); } /* * Signed subtraction: X = A - B */ -int mbedtls_mpi_sub_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_sub_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) { - return( add_sub_mpi( X, A, B, -1 ) ); + return add_sub_mpi(X, A, B, -1); } /* * Signed addition: X = A + b */ -int mbedtls_mpi_add_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b ) +int mbedtls_mpi_add_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b) { mbedtls_mpi B; mbedtls_mpi_uint p[1]; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); - p[0] = mpi_sint_abs( b ); - B.s = ( b < 0 ) ? -1 : 1; + p[0] = mpi_sint_abs(b); + B.s = (b < 0) ? -1 : 1; B.n = 1; B.p = p; - return( mbedtls_mpi_add_mpi( X, A, &B ) ); + return mbedtls_mpi_add_mpi(X, A, &B); } /* * Signed subtraction: X = A - b */ -int mbedtls_mpi_sub_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b ) +int mbedtls_mpi_sub_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b) { mbedtls_mpi B; mbedtls_mpi_uint p[1]; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); - p[0] = mpi_sint_abs( b ); - B.s = ( b < 0 ) ? -1 : 1; + p[0] = mpi_sint_abs(b); + B.s = (b < 0) ? -1 : 1; B.n = 1; B.p = p; - return( mbedtls_mpi_sub_mpi( X, A, &B ) ); + return mbedtls_mpi_sub_mpi(X, A, &B); } /* * Baseline multiplication: X = A * B (HAC 14.12) */ -int mbedtls_mpi_mul_mpi( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_mul_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, j; mbedtls_mpi TA, TB; int result_is_zero = 0; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - mbedtls_mpi_init( &TA ); mbedtls_mpi_init( &TB ); + mbedtls_mpi_init(&TA); mbedtls_mpi_init(&TB); - if( X == A ) { MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TA, A ) ); A = &TA; } - if( X == B ) { MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TB, B ) ); B = &TB; } + if (X == A) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TA, A)); A = &TA; + } + if (X == B) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TB, B)); B = &TB; + } - for( i = A->n; i > 0; i-- ) - if( A->p[i - 1] != 0 ) + for (i = A->n; i > 0; i--) { + if (A->p[i - 1] != 0) { break; - if( i == 0 ) + } + } + if (i == 0) { result_is_zero = 1; + } - for( j = B->n; j > 0; j-- ) - if( B->p[j - 1] != 0 ) + for (j = B->n; j > 0; j--) { + if (B->p[j - 1] != 0) { break; - if( j == 0 ) + } + } + if (j == 0) { result_is_zero = 1; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, i + j ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, i + j)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, 0)); - for( size_t k = 0; k < j; k++ ) - { + for (size_t k = 0; k < j; k++) { /* We know that there cannot be any carry-out since we're * iterating from bottom to top. */ - (void) mbedtls_mpi_core_mla( X->p + k, i + 1, - A->p, i, - B->p[k] ); + (void) mbedtls_mpi_core_mla(X->p + k, i + 1, + A->p, i, + B->p[k]); } /* If the result is 0, we don't shortcut the operation, which reduces * but does not eliminate side channels leaking the zero-ness. We do * need to take care to set the sign bit properly since the library does * not fully support an MPI object with a value of 0 and s == -1. */ - if( result_is_zero ) + if (result_is_zero) { X->s = 1; - else + } else { X->s = A->s * B->s; + } cleanup: - mbedtls_mpi_free( &TB ); mbedtls_mpi_free( &TA ); + mbedtls_mpi_free(&TB); mbedtls_mpi_free(&TA); - return( ret ); + return ret; } /* * Baseline multiplication: X = A * b */ -int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_uint b ) +int mbedtls_mpi_mul_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_uint b) { - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); size_t n = A->n; - while( n > 0 && A->p[n - 1] == 0 ) + while (n > 0 && A->p[n - 1] == 0) { --n; + } /* The general method below doesn't work if b==0. */ - if( b == 0 || n == 0 ) - return( mbedtls_mpi_lset( X, 0 ) ); + if (b == 0 || n == 0) { + return mbedtls_mpi_lset(X, 0); + } /* Calculate A*b as A + A*(b-1) to take advantage of mbedtls_mpi_core_mla */ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1167,26 +1222,28 @@ int mbedtls_mpi_mul_int( mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_uint * * Note that calculating A*b as 0 + A*b doesn't work as-is because * A,X can be the same. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, n + 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, A ) ); - mbedtls_mpi_core_mla( X->p, X->n, A->p, n, b - 1 ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, n + 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)); + mbedtls_mpi_core_mla(X->p, X->n, A->p, n, b - 1); cleanup: - return( ret ); + return ret; } /* * Unsigned integer divide - double mbedtls_mpi_uint dividend, u1/u0, and * mbedtls_mpi_uint divisor, d */ -static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, - mbedtls_mpi_uint u0, mbedtls_mpi_uint d, mbedtls_mpi_uint *r ) +static mbedtls_mpi_uint mbedtls_int_div_int(mbedtls_mpi_uint u1, + mbedtls_mpi_uint u0, + mbedtls_mpi_uint d, + mbedtls_mpi_uint *r) { #if defined(MBEDTLS_HAVE_UDBL) mbedtls_t_udbl dividend, quotient; #else const mbedtls_mpi_uint radix = (mbedtls_mpi_uint) 1 << biH; - const mbedtls_mpi_uint uint_halfword_mask = ( (mbedtls_mpi_uint) 1 << biH ) - 1; + const mbedtls_mpi_uint uint_halfword_mask = ((mbedtls_mpi_uint) 1 << biH) - 1; mbedtls_mpi_uint d0, d1, q0, q1, rAX, r0, quotient; mbedtls_mpi_uint u0_msw, u0_lsw; size_t s; @@ -1195,22 +1252,25 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, /* * Check for overflow */ - if( 0 == d || u1 >= d ) - { - if (r != NULL) *r = ~(mbedtls_mpi_uint)0u; + if (0 == d || u1 >= d) { + if (r != NULL) { + *r = ~(mbedtls_mpi_uint) 0u; + } - return ( ~(mbedtls_mpi_uint)0u ); + return ~(mbedtls_mpi_uint) 0u; } #if defined(MBEDTLS_HAVE_UDBL) dividend = (mbedtls_t_udbl) u1 << biL; dividend |= (mbedtls_t_udbl) u0; quotient = dividend / d; - if( quotient > ( (mbedtls_t_udbl) 1 << biL ) - 1 ) - quotient = ( (mbedtls_t_udbl) 1 << biL ) - 1; + if (quotient > ((mbedtls_t_udbl) 1 << biL) - 1) { + quotient = ((mbedtls_t_udbl) 1 << biL) - 1; + } - if( r != NULL ) - *r = (mbedtls_mpi_uint)( dividend - (quotient * d ) ); + if (r != NULL) { + *r = (mbedtls_mpi_uint) (dividend - (quotient * d)); + } return (mbedtls_mpi_uint) quotient; #else @@ -1223,11 +1283,11 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, /* * Normalize the divisor, d, and dividend, u0, u1 */ - s = mbedtls_mpi_core_clz( d ); + s = mbedtls_mpi_core_clz(d); d = d << s; u1 = u1 << s; - u1 |= ( u0 >> ( biL - s ) ) & ( -(mbedtls_mpi_sint)s >> ( biL - 1 ) ); + u1 |= (u0 >> (biL - s)) & (-(mbedtls_mpi_sint) s >> (biL - 1)); u0 = u0 << s; d1 = d >> biH; @@ -1242,28 +1302,31 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, q1 = u1 / d1; r0 = u1 - d1 * q1; - while( q1 >= radix || ( q1 * d0 > radix * r0 + u0_msw ) ) - { + while (q1 >= radix || (q1 * d0 > radix * r0 + u0_msw)) { q1 -= 1; r0 += d1; - if ( r0 >= radix ) break; + if (r0 >= radix) { + break; + } } - rAX = ( u1 * radix ) + ( u0_msw - q1 * d ); + rAX = (u1 * radix) + (u0_msw - q1 * d); q0 = rAX / d1; r0 = rAX - q0 * d1; - while( q0 >= radix || ( q0 * d0 > radix * r0 + u0_lsw ) ) - { + while (q0 >= radix || (q0 * d0 > radix * r0 + u0_lsw)) { q0 -= 1; r0 += d1; - if ( r0 >= radix ) break; + if (r0 >= radix) { + break; + } } - if (r != NULL) - *r = ( rAX * radix + u0_lsw - q0 * d ) >> s; + if (r != NULL) { + *r = (rAX * radix + u0_lsw - q0 * d) >> s; + } quotient = q1 * radix + q0; @@ -1274,21 +1337,22 @@ static mbedtls_mpi_uint mbedtls_int_div_int( mbedtls_mpi_uint u1, /* * Division by mbedtls_mpi: A = Q * B + R (HAC 14.20) */ -int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, - const mbedtls_mpi *B ) +int mbedtls_mpi_div_mpi(mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, + const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, n, t, k; mbedtls_mpi X, Y, Z, T1, T2; mbedtls_mpi_uint TP2[3]; - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - if( mbedtls_mpi_cmp_int( B, 0 ) == 0 ) - return( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO ); + if (mbedtls_mpi_cmp_int(B, 0) == 0) { + return MBEDTLS_ERR_MPI_DIVISION_BY_ZERO; + } - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); - mbedtls_mpi_init( &T1 ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); + mbedtls_mpi_init(&T1); /* * Avoid dynamic memory allocations for constant-size T2. * @@ -1297,196 +1361,194 @@ int mbedtls_mpi_div_mpi( mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, * buffer. */ T2.s = 1; - T2.n = sizeof( TP2 ) / sizeof( *TP2 ); + T2.n = sizeof(TP2) / sizeof(*TP2); T2.p = TP2; - if( mbedtls_mpi_cmp_abs( A, B ) < 0 ) - { - if( Q != NULL ) MBEDTLS_MPI_CHK( mbedtls_mpi_lset( Q, 0 ) ); - if( R != NULL ) MBEDTLS_MPI_CHK( mbedtls_mpi_copy( R, A ) ); - return( 0 ); + if (mbedtls_mpi_cmp_abs(A, B) < 0) { + if (Q != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(Q, 0)); + } + if (R != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(R, A)); + } + return 0; } - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &X, A ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &Y, B ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&X, A)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&Y, B)); X.s = Y.s = 1; - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &Z, A->n + 2 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &Z, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T1, A->n + 2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&Z, A->n + 2)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&Z, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&T1, A->n + 2)); - k = mbedtls_mpi_bitlen( &Y ) % biL; - if( k < biL - 1 ) - { + k = mbedtls_mpi_bitlen(&Y) % biL; + if (k < biL - 1) { k = biL - 1 - k; - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &X, k ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &Y, k ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&X, k)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&Y, k)); + } else { + k = 0; } - else k = 0; n = X.n - 1; t = Y.n - 1; - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &Y, biL * ( n - t ) ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&Y, biL * (n - t))); - while( mbedtls_mpi_cmp_mpi( &X, &Y ) >= 0 ) - { + while (mbedtls_mpi_cmp_mpi(&X, &Y) >= 0) { Z.p[n - t]++; - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &X, &X, &Y ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&X, &X, &Y)); } - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &Y, biL * ( n - t ) ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&Y, biL * (n - t))); - for( i = n; i > t ; i-- ) - { - if( X.p[i] >= Y.p[t] ) - Z.p[i - t - 1] = ~(mbedtls_mpi_uint)0u; - else - { - Z.p[i - t - 1] = mbedtls_int_div_int( X.p[i], X.p[i - 1], - Y.p[t], NULL); + for (i = n; i > t; i--) { + if (X.p[i] >= Y.p[t]) { + Z.p[i - t - 1] = ~(mbedtls_mpi_uint) 0u; + } else { + Z.p[i - t - 1] = mbedtls_int_div_int(X.p[i], X.p[i - 1], + Y.p[t], NULL); } - T2.p[0] = ( i < 2 ) ? 0 : X.p[i - 2]; - T2.p[1] = ( i < 1 ) ? 0 : X.p[i - 1]; + T2.p[0] = (i < 2) ? 0 : X.p[i - 2]; + T2.p[1] = (i < 1) ? 0 : X.p[i - 1]; T2.p[2] = X.p[i]; Z.p[i - t - 1]++; - do - { + do { Z.p[i - t - 1]--; - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &T1, 0 ) ); - T1.p[0] = ( t < 1 ) ? 0 : Y.p[t - 1]; + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&T1, 0)); + T1.p[0] = (t < 1) ? 0 : Y.p[t - 1]; T1.p[1] = Y.p[t]; - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_int( &T1, &T1, Z.p[i - t - 1] ) ); - } - while( mbedtls_mpi_cmp_mpi( &T1, &T2 ) > 0 ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int(&T1, &T1, Z.p[i - t - 1])); + } while (mbedtls_mpi_cmp_mpi(&T1, &T2) > 0); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_int( &T1, &Y, Z.p[i - t - 1] ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &T1, biL * ( i - t - 1 ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &X, &X, &T1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int(&T1, &Y, Z.p[i - t - 1])); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&T1, biL * (i - t - 1))); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&X, &X, &T1)); - if( mbedtls_mpi_cmp_int( &X, 0 ) < 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &T1, &Y ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &T1, biL * ( i - t - 1 ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &X, &X, &T1 ) ); + if (mbedtls_mpi_cmp_int(&X, 0) < 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&T1, &Y)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&T1, biL * (i - t - 1))); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&X, &X, &T1)); Z.p[i - t - 1]--; } } - if( Q != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( Q, &Z ) ); + if (Q != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(Q, &Z)); Q->s = A->s * B->s; } - if( R != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &X, k ) ); + if (R != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&X, k)); X.s = A->s; - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( R, &X ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(R, &X)); - if( mbedtls_mpi_cmp_int( R, 0 ) == 0 ) + if (mbedtls_mpi_cmp_int(R, 0) == 0) { R->s = 1; + } } cleanup: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); - mbedtls_mpi_free( &T1 ); - mbedtls_platform_zeroize( TP2, sizeof( TP2 ) ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); + mbedtls_mpi_free(&T1); + mbedtls_platform_zeroize(TP2, sizeof(TP2)); - return( ret ); + return ret; } /* * Division by int: A = Q * b + R */ -int mbedtls_mpi_div_int( mbedtls_mpi *Q, mbedtls_mpi *R, - const mbedtls_mpi *A, - mbedtls_mpi_sint b ) +int mbedtls_mpi_div_int(mbedtls_mpi *Q, mbedtls_mpi *R, + const mbedtls_mpi *A, + mbedtls_mpi_sint b) { mbedtls_mpi B; mbedtls_mpi_uint p[1]; - MPI_VALIDATE_RET( A != NULL ); + MPI_VALIDATE_RET(A != NULL); - p[0] = mpi_sint_abs( b ); - B.s = ( b < 0 ) ? -1 : 1; + p[0] = mpi_sint_abs(b); + B.s = (b < 0) ? -1 : 1; B.n = 1; B.p = p; - return( mbedtls_mpi_div_mpi( Q, R, A, &B ) ); + return mbedtls_mpi_div_mpi(Q, R, A, &B); } /* * Modulo: R = A mod B */ -int mbedtls_mpi_mod_mpi( mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_mod_mpi(mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MPI_VALIDATE_RET( R != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(R != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - if( mbedtls_mpi_cmp_int( B, 0 ) < 0 ) - return( MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); + if (mbedtls_mpi_cmp_int(B, 0) < 0) { + return MBEDTLS_ERR_MPI_NEGATIVE_VALUE; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_div_mpi( NULL, R, A, B ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(NULL, R, A, B)); - while( mbedtls_mpi_cmp_int( R, 0 ) < 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( R, R, B ) ); + while (mbedtls_mpi_cmp_int(R, 0) < 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(R, R, B)); + } - while( mbedtls_mpi_cmp_mpi( R, B ) >= 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( R, R, B ) ); + while (mbedtls_mpi_cmp_mpi(R, B) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(R, R, B)); + } cleanup: - return( ret ); + return ret; } /* * Modulo: r = A mod b */ -int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_sint b ) +int mbedtls_mpi_mod_int(mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_sint b) { size_t i; mbedtls_mpi_uint x, y, z; - MPI_VALIDATE_RET( r != NULL ); - MPI_VALIDATE_RET( A != NULL ); + MPI_VALIDATE_RET(r != NULL); + MPI_VALIDATE_RET(A != NULL); - if( b == 0 ) - return( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO ); + if (b == 0) { + return MBEDTLS_ERR_MPI_DIVISION_BY_ZERO; + } - if( b < 0 ) - return( MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); + if (b < 0) { + return MBEDTLS_ERR_MPI_NEGATIVE_VALUE; + } /* * handle trivial cases */ - if( b == 1 || A->n == 0 ) - { + if (b == 1 || A->n == 0) { *r = 0; - return( 0 ); + return 0; } - if( b == 2 ) - { + if (b == 2) { *r = A->p[0] & 1; - return( 0 ); + return 0; } /* * general case */ - for( i = A->n, y = 0; i > 0; i-- ) - { + for (i = A->n, y = 0; i > 0; i--) { x = A->p[i - 1]; - y = ( y << biH ) | ( x >> biH ); + y = (y << biH) | (x >> biH); z = y / b; y -= z * b; x <<= biH; - y = ( y << biH ) | ( x >> biH ); + y = (y << biH) | (x >> biH); z = y / b; y -= z * b; } @@ -1495,17 +1557,18 @@ int mbedtls_mpi_mod_int( mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_ * If A is negative, then the current y represents a negative value. * Flipping it to the positive side. */ - if( A->s < 0 && y != 0 ) + if (A->s < 0 && y != 0) { y = b - y; + } *r = y; - return( 0 ); + return 0; } -static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) +static void mpi_montg_init(mbedtls_mpi_uint *mm, const mbedtls_mpi *N) { - *mm = mbedtls_mpi_core_montmul_init( N->p ); + *mm = mbedtls_mpi_core_montmul_init(N->p); } /** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) @@ -1529,11 +1592,11 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) * its final content is indeterminate. * It does not get reallocated. */ -static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, - const mbedtls_mpi *N, mbedtls_mpi_uint mm, - mbedtls_mpi *T ) +static void mpi_montmul(mbedtls_mpi *A, const mbedtls_mpi *B, + const mbedtls_mpi *N, mbedtls_mpi_uint mm, + mbedtls_mpi *T) { - mbedtls_mpi_core_montmul( A->p, A->p, B->p, B->n, N->p, N->n, mm, T->p ); + mbedtls_mpi_core_montmul(A->p, A->p, B->p, B->n, N->p, N->n, mm, T->p); } /* @@ -1541,8 +1604,8 @@ static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, * * See mpi_montmul() regarding constraints and guarantees on the parameters. */ -static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, - mbedtls_mpi_uint mm, mbedtls_mpi *T ) +static void mpi_montred(mbedtls_mpi *A, const mbedtls_mpi *N, + mbedtls_mpi_uint mm, mbedtls_mpi *T) { mbedtls_mpi_uint z = 1; mbedtls_mpi U; @@ -1550,7 +1613,7 @@ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, U.n = U.s = (int) z; U.p = &z; - mpi_montmul( A, &U, N, mm, T ); + mpi_montmul(A, &U, N, mm, T); } /** @@ -1568,67 +1631,71 @@ static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, * * \return \c 0 on success, or a negative error code. */ -static int mpi_select( mbedtls_mpi *R, const mbedtls_mpi *T, size_t T_size, size_t idx ) +static int mpi_select(mbedtls_mpi *R, const mbedtls_mpi *T, size_t T_size, size_t idx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - for( size_t i = 0; i < T_size; i++ ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_assign( R, &T[i], - (unsigned char) mbedtls_ct_size_bool_eq( i, idx ) ) ); + for (size_t i = 0; i < T_size; i++) { + MBEDTLS_MPI_CHK(mbedtls_mpi_safe_cond_assign(R, &T[i], + (unsigned char) mbedtls_ct_size_bool_eq(i, + idx))); } cleanup: - return( ret ); + return ret; } /* * Sliding-window exponentiation: X = A^E mod N (HAC 14.85) */ -int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, - const mbedtls_mpi *E, const mbedtls_mpi *N, - mbedtls_mpi *prec_RR ) +int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A, + const mbedtls_mpi *E, const mbedtls_mpi *N, + mbedtls_mpi *prec_RR) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t window_bitsize; size_t i, j, nblimbs; size_t bufsize, nbits; mbedtls_mpi_uint ei, mm, state; - mbedtls_mpi RR, T, W[ (size_t) 1 << MBEDTLS_MPI_WINDOW_SIZE ], WW, Apos; + mbedtls_mpi RR, T, W[(size_t) 1 << MBEDTLS_MPI_WINDOW_SIZE], WW, Apos; int neg; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( E != NULL ); - MPI_VALIDATE_RET( N != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(E != NULL); + MPI_VALIDATE_RET(N != NULL); - if( mbedtls_mpi_cmp_int( N, 0 ) <= 0 || ( N->p[0] & 1 ) == 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(N, 0) <= 0 || (N->p[0] & 1) == 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - if( mbedtls_mpi_cmp_int( E, 0 ) < 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(E, 0) < 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - if( mbedtls_mpi_bitlen( E ) > MBEDTLS_MPI_MAX_BITS || - mbedtls_mpi_bitlen( N ) > MBEDTLS_MPI_MAX_BITS ) - return ( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_bitlen(E) > MBEDTLS_MPI_MAX_BITS || + mbedtls_mpi_bitlen(N) > MBEDTLS_MPI_MAX_BITS) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } /* * Init temps and window size */ - mpi_montg_init( &mm, N ); - mbedtls_mpi_init( &RR ); mbedtls_mpi_init( &T ); - mbedtls_mpi_init( &Apos ); - mbedtls_mpi_init( &WW ); - memset( W, 0, sizeof( W ) ); + mpi_montg_init(&mm, N); + mbedtls_mpi_init(&RR); mbedtls_mpi_init(&T); + mbedtls_mpi_init(&Apos); + mbedtls_mpi_init(&WW); + memset(W, 0, sizeof(W)); - i = mbedtls_mpi_bitlen( E ); + i = mbedtls_mpi_bitlen(E); - window_bitsize = ( i > 671 ) ? 6 : ( i > 239 ) ? 5 : - ( i > 79 ) ? 4 : ( i > 23 ) ? 3 : 1; + window_bitsize = (i > 671) ? 6 : (i > 239) ? 5 : + (i > 79) ? 4 : (i > 23) ? 3 : 1; -#if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) - if( window_bitsize > MBEDTLS_MPI_WINDOW_SIZE ) +#if (MBEDTLS_MPI_WINDOW_SIZE < 6) + if (window_bitsize > MBEDTLS_MPI_WINDOW_SIZE) { window_bitsize = MBEDTLS_MPI_WINDOW_SIZE; + } #endif const size_t w_table_used_size = (size_t) 1 << window_bitsize; @@ -1666,8 +1733,8 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * calculation from this point on. */ const size_t x_index = 0; - mbedtls_mpi_init( &W[x_index] ); - mbedtls_mpi_copy( &W[x_index], X ); + mbedtls_mpi_init(&W[x_index]); + mbedtls_mpi_copy(&W[x_index], X); j = N->n + 1; /* All W[i] and X must have at least N->n limbs for the mpi_montmul() @@ -1675,17 +1742,16 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * large enough, and later we'll grow other W[i] to the same length. * They must not be shrunk midway through this function! */ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[x_index], j ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], j ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &T, j * 2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[x_index], j)); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[1], j)); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&T, j * 2)); /* * Compensate for negative A (and correct at the end) */ - neg = ( A->s == -1 ); - if( neg ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &Apos, A ) ); + neg = (A->s == -1); + if (neg) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&Apos, A)); Apos.s = 1; A = &Apos; } @@ -1693,45 +1759,43 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * If 1st call, pre-compute R^2 mod N */ - if( prec_RR == NULL || prec_RR->p == NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &RR, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &RR, N->n * 2 * biL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &RR, &RR, N ) ); + if (prec_RR == NULL || prec_RR->p == NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&RR, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&RR, N->n * 2 * biL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&RR, &RR, N)); - if( prec_RR != NULL ) - memcpy( prec_RR, &RR, sizeof( mbedtls_mpi ) ); + if (prec_RR != NULL) { + memcpy(prec_RR, &RR, sizeof(mbedtls_mpi)); + } + } else { + memcpy(&RR, prec_RR, sizeof(mbedtls_mpi)); } - else - memcpy( &RR, prec_RR, sizeof( mbedtls_mpi ) ); /* * W[1] = A * R^2 * R^-1 mod N = A * R mod N */ - if( mbedtls_mpi_cmp_mpi( A, N ) >= 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &W[1], A, N ) ); + if (mbedtls_mpi_cmp_mpi(A, N) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&W[1], A, N)); /* This should be a no-op because W[1] is already that large before * mbedtls_mpi_mod_mpi(), but it's necessary to avoid an overflow * in mpi_montmul() below, so let's make sure. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[1], N->n + 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[1], N->n + 1)); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&W[1], A)); } - else - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[1], A ) ); /* Note that this is safe because W[1] always has at least N->n limbs * (it grew above and was preserved by mbedtls_mpi_copy()). */ - mpi_montmul( &W[1], &RR, N, mm, &T ); + mpi_montmul(&W[1], &RR, N, mm, &T); /* * W[x_index] = R^2 * R^-1 mod N = R mod N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[x_index], &RR ) ); - mpi_montred( &W[x_index], N, mm, &T ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&W[x_index], &RR)); + mpi_montred(&W[x_index], N, mm, &T); - if( window_bitsize > 1 ) - { + if (window_bitsize > 1) { /* * W[i] = W[1] ^ i * @@ -1744,21 +1808,21 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ j = w_table_used_size / 2; - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[j], N->n + 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[j], N->n + 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&W[j], &W[1])); - for( i = 0; i < window_bitsize - 1; i++ ) - mpi_montmul( &W[j], &W[j], N, mm, &T ); + for (i = 0; i < window_bitsize - 1; i++) { + mpi_montmul(&W[j], &W[j], N, mm, &T); + } /* * W[i] = W[i - 1] * W[1] */ - for( i = j + 1; i < w_table_used_size; i++ ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); + for (i = j + 1; i < w_table_used_size; i++) { + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&W[i], N->n + 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&W[i], &W[i - 1])); - mpi_montmul( &W[i], &W[1], N, mm, &T ); + mpi_montmul(&W[i], &W[1], N, mm, &T); } } @@ -1768,16 +1832,15 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, size_t exponent_bits_in_window = 0; state = 0; - while( 1 ) - { - if( bufsize == 0 ) - { - if( nblimbs == 0 ) + while (1) { + if (bufsize == 0) { + if (nblimbs == 0) { break; + } nblimbs--; - bufsize = sizeof( mbedtls_mpi_uint ) << 3; + bufsize = sizeof(mbedtls_mpi_uint) << 3; } bufsize--; @@ -1787,16 +1850,16 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * skip leading 0s */ - if( ei == 0 && state == 0 ) + if (ei == 0 && state == 0) { continue; + } - if( ei == 0 && state == 1 ) - { + if (ei == 0 && state == 1) { /* * out of window, square W[x_index] */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, x_index ) ); - mpi_montmul( &W[x_index], &WW, N, mm, &T ); + MBEDTLS_MPI_CHK(mpi_select(&WW, W, w_table_used_size, x_index)); + mpi_montmul(&W[x_index], &WW, N, mm, &T); continue; } @@ -1806,26 +1869,24 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, state = 2; nbits++; - exponent_bits_in_window |= ( ei << ( window_bitsize - nbits ) ); + exponent_bits_in_window |= (ei << (window_bitsize - nbits)); - if( nbits == window_bitsize ) - { + if (nbits == window_bitsize) { /* * W[x_index] = W[x_index]^window_bitsize R^-1 mod N */ - for( i = 0; i < window_bitsize; i++ ) - { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, - x_index ) ); - mpi_montmul( &W[x_index], &WW, N, mm, &T ); + for (i = 0; i < window_bitsize; i++) { + MBEDTLS_MPI_CHK(mpi_select(&WW, W, w_table_used_size, + x_index)); + mpi_montmul(&W[x_index], &WW, N, mm, &T); } /* * W[x_index] = W[x_index] * W[exponent_bits_in_window] R^-1 mod N */ - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, - exponent_bits_in_window ) ); - mpi_montmul( &W[x_index], &WW, N, mm, &T ); + MBEDTLS_MPI_CHK(mpi_select(&WW, W, w_table_used_size, + exponent_bits_in_window)); + mpi_montmul(&W[x_index], &WW, N, mm, &T); state--; nbits = 0; @@ -1836,88 +1897,87 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * process the remaining bits */ - for( i = 0; i < nbits; i++ ) - { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, x_index ) ); - mpi_montmul( &W[x_index], &WW, N, mm, &T ); + for (i = 0; i < nbits; i++) { + MBEDTLS_MPI_CHK(mpi_select(&WW, W, w_table_used_size, x_index)); + mpi_montmul(&W[x_index], &WW, N, mm, &T); exponent_bits_in_window <<= 1; - if( ( exponent_bits_in_window & ( (size_t) 1 << window_bitsize ) ) != 0 ) - { - MBEDTLS_MPI_CHK( mpi_select( &WW, W, w_table_used_size, 1 ) ); - mpi_montmul( &W[x_index], &WW, N, mm, &T ); + if ((exponent_bits_in_window & ((size_t) 1 << window_bitsize)) != 0) { + MBEDTLS_MPI_CHK(mpi_select(&WW, W, w_table_used_size, 1)); + mpi_montmul(&W[x_index], &WW, N, mm, &T); } } /* * W[x_index] = A^E * R * R^-1 mod N = A^E mod N */ - mpi_montred( &W[x_index], N, mm, &T ); + mpi_montred(&W[x_index], N, mm, &T); - if( neg && E->n != 0 && ( E->p[0] & 1 ) != 0 ) - { + if (neg && E->n != 0 && (E->p[0] & 1) != 0) { W[x_index].s = -1; - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &W[x_index], N, &W[x_index] ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&W[x_index], N, &W[x_index])); } /* * Load the result in the output variable. */ - mbedtls_mpi_copy( X, &W[x_index] ); + mbedtls_mpi_copy(X, &W[x_index]); cleanup: /* The first bit of the sliding window is always 1 and therefore the first * half of the table was unused. */ - for( i = w_table_used_size/2; i < w_table_used_size; i++ ) - mbedtls_mpi_free( &W[i] ); + for (i = w_table_used_size/2; i < w_table_used_size; i++) { + mbedtls_mpi_free(&W[i]); + } - mbedtls_mpi_free( &W[x_index] ); - mbedtls_mpi_free( &W[1] ); - mbedtls_mpi_free( &T ); - mbedtls_mpi_free( &Apos ); - mbedtls_mpi_free( &WW ); + mbedtls_mpi_free(&W[x_index]); + mbedtls_mpi_free(&W[1]); + mbedtls_mpi_free(&T); + mbedtls_mpi_free(&Apos); + mbedtls_mpi_free(&WW); - if( prec_RR == NULL || prec_RR->p == NULL ) - mbedtls_mpi_free( &RR ); + if (prec_RR == NULL || prec_RR->p == NULL) { + mbedtls_mpi_free(&RR); + } - return( ret ); + return ret; } /* * Greatest common divisor: G = gcd(A, B) (HAC 14.54) */ -int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B ) +int mbedtls_mpi_gcd(mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t lz, lzt; mbedtls_mpi TA, TB; - MPI_VALIDATE_RET( G != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( B != NULL ); + MPI_VALIDATE_RET(G != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(B != NULL); - mbedtls_mpi_init( &TA ); mbedtls_mpi_init( &TB ); + mbedtls_mpi_init(&TA); mbedtls_mpi_init(&TB); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TA, A ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TB, B ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TA, A)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TB, B)); - lz = mbedtls_mpi_lsb( &TA ); - lzt = mbedtls_mpi_lsb( &TB ); + lz = mbedtls_mpi_lsb(&TA); + lzt = mbedtls_mpi_lsb(&TB); /* The loop below gives the correct result when A==0 but not when B==0. * So have a special case for B==0. Leverage the fact that we just * calculated the lsb and lsb(B)==0 iff B is odd or 0 to make the test * slightly more efficient than cmp_int(). */ - if( lzt == 0 && mbedtls_mpi_get_bit( &TB, 0 ) == 0 ) - { - ret = mbedtls_mpi_copy( G, A ); + if (lzt == 0 && mbedtls_mpi_get_bit(&TB, 0) == 0) { + ret = mbedtls_mpi_copy(G, A); goto cleanup; } - if( lzt < lz ) + if (lzt < lz) { lz = lzt; + } TA.s = TB.s = 1; @@ -1954,11 +2014,10 @@ int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B * TA becomes 0 which ends the loop (TB cannot be 0 if it is right-shifted * since in that case TB is calculated from TB-TA with the condition TB>TA). */ - while( mbedtls_mpi_cmp_int( &TA, 0 ) != 0 ) - { + while (mbedtls_mpi_cmp_int(&TA, 0) != 0) { /* Divisions by 2 preserve the invariant (I). */ - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TA, mbedtls_mpi_lsb( &TA ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TB, mbedtls_mpi_lsb( &TB ) ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TA, mbedtls_mpi_lsb(&TA))); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TB, mbedtls_mpi_lsb(&TB))); /* Set either TA or TB to |TA-TB|/2. Since TA and TB are both odd, * TA-TB is even so the division by 2 has an integer result. @@ -1967,15 +2026,12 @@ int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B * also divides TB, and any odd divisor of both TB and |TA-TB|/2 also * divides TA. */ - if( mbedtls_mpi_cmp_mpi( &TA, &TB ) >= 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( &TA, &TA, &TB ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TA, 1 ) ); - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( &TB, &TB, &TA ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TB, 1 ) ); + if (mbedtls_mpi_cmp_mpi(&TA, &TB) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(&TA, &TA, &TB)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TA, 1)); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(&TB, &TB, &TA)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TB, 1)); } /* Note that one of TA or TB is still odd. */ } @@ -1989,14 +2045,14 @@ int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B * In this case, lz = 0 and B = TB so gcd(A,B) = B = 2^lz * TB as well. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &TB, lz ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( G, &TB ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&TB, lz)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(G, &TB)); cleanup: - mbedtls_mpi_free( &TA ); mbedtls_mpi_free( &TB ); + mbedtls_mpi_free(&TA); mbedtls_mpi_free(&TB); - return( ret ); + return ret; } /* @@ -2005,171 +2061,168 @@ cleanup: * is suitable for deterministic ECDSA (see the specification of * mbedtls_mpi_random() and the implementation in mbedtls_mpi_fill_random()). */ -int mbedtls_mpi_fill_random( mbedtls_mpi *X, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_fill_random(mbedtls_mpi *X, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( size ); + const size_t limbs = CHARS_TO_LIMBS(size); - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( f_rng != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(f_rng != NULL); /* Ensure that target MPI has exactly the necessary number of limbs */ - MBEDTLS_MPI_CHK( mbedtls_mpi_resize_clear( X, limbs ) ); - if( size == 0 ) - return( 0 ); + MBEDTLS_MPI_CHK(mbedtls_mpi_resize_clear(X, limbs)); + if (size == 0) { + return 0; + } - ret = mbedtls_mpi_core_fill_random( X->p, X->n, size, f_rng, p_rng ); + ret = mbedtls_mpi_core_fill_random(X->p, X->n, size, f_rng, p_rng); cleanup: - return( ret ); + return ret; } -int mbedtls_mpi_random( mbedtls_mpi *X, - mbedtls_mpi_sint min, - const mbedtls_mpi *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_random(mbedtls_mpi *X, + mbedtls_mpi_sint min, + const mbedtls_mpi *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - if( min < 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - if( mbedtls_mpi_cmp_int( N, min ) <= 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (min < 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } + if (mbedtls_mpi_cmp_int(N, min) <= 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } /* Ensure that target MPI has exactly the same number of limbs * as the upper bound, even if the upper bound has leading zeros. * This is necessary for mbedtls_mpi_core_random. */ - int ret = mbedtls_mpi_resize_clear( X, N->n ); - if( ret != 0 ) - return( ret ); + int ret = mbedtls_mpi_resize_clear(X, N->n); + if (ret != 0) { + return ret; + } - return( mbedtls_mpi_core_random( X->p, min, N->p, X->n, f_rng, p_rng ) ); + return mbedtls_mpi_core_random(X->p, min, N->p, X->n, f_rng, p_rng); } /* * Modular inverse: X = A^-1 mod N (HAC 14.61 / 14.64) */ -int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N ) +int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( A != NULL ); - MPI_VALIDATE_RET( N != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(A != NULL); + MPI_VALIDATE_RET(N != NULL); - if( mbedtls_mpi_cmp_int( N, 1 ) <= 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(N, 1) <= 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - mbedtls_mpi_init( &TA ); mbedtls_mpi_init( &TU ); mbedtls_mpi_init( &U1 ); mbedtls_mpi_init( &U2 ); - mbedtls_mpi_init( &G ); mbedtls_mpi_init( &TB ); mbedtls_mpi_init( &TV ); - mbedtls_mpi_init( &V1 ); mbedtls_mpi_init( &V2 ); + mbedtls_mpi_init(&TA); mbedtls_mpi_init(&TU); mbedtls_mpi_init(&U1); mbedtls_mpi_init(&U2); + mbedtls_mpi_init(&G); mbedtls_mpi_init(&TB); mbedtls_mpi_init(&TV); + mbedtls_mpi_init(&V1); mbedtls_mpi_init(&V2); - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &G, A, N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, A, N)); - if( mbedtls_mpi_cmp_int( &G, 1 ) != 0 ) - { + if (mbedtls_mpi_cmp_int(&G, 1) != 0) { ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &TA, A, N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TU, &TA ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TB, N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &TV, N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&TA, A, N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TU, &TA)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TB, N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TV, N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &U1, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &U2, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &V1, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &V2, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&U1, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&U2, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&V1, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&V2, 1)); - do - { - while( ( TU.p[0] & 1 ) == 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TU, 1 ) ); + do { + while ((TU.p[0] & 1) == 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TU, 1)); - if( ( U1.p[0] & 1 ) != 0 || ( U2.p[0] & 1 ) != 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &U1, &U1, &TB ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &U2, &U2, &TA ) ); + if ((U1.p[0] & 1) != 0 || (U2.p[0] & 1) != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&U1, &U1, &TB)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U2, &U2, &TA)); } - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &U1, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &U2, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&U1, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&U2, 1)); } - while( ( TV.p[0] & 1 ) == 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &TV, 1 ) ); + while ((TV.p[0] & 1) == 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&TV, 1)); - if( ( V1.p[0] & 1 ) != 0 || ( V2.p[0] & 1 ) != 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &V1, &V1, &TB ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &V2, &V2, &TA ) ); + if ((V1.p[0] & 1) != 0 || (V2.p[0] & 1) != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&V1, &V1, &TB)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V2, &V2, &TA)); } - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &V1, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &V2, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&V1, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&V2, 1)); } - if( mbedtls_mpi_cmp_mpi( &TU, &TV ) >= 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &TU, &TU, &TV ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &U1, &U1, &V1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &U2, &U2, &V2 ) ); - } - else - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &TV, &TV, &TU ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &V1, &V1, &U1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &V2, &V2, &U2 ) ); + if (mbedtls_mpi_cmp_mpi(&TU, &TV) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&TU, &TU, &TV)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U1, &U1, &V1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&U2, &U2, &V2)); + } else { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&TV, &TV, &TU)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V1, &V1, &U1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V2, &V2, &U2)); } + } while (mbedtls_mpi_cmp_int(&TU, 0) != 0); + + while (mbedtls_mpi_cmp_int(&V1, 0) < 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&V1, &V1, N)); } - while( mbedtls_mpi_cmp_int( &TU, 0 ) != 0 ); - while( mbedtls_mpi_cmp_int( &V1, 0 ) < 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &V1, &V1, N ) ); + while (mbedtls_mpi_cmp_mpi(&V1, N) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&V1, &V1, N)); + } - while( mbedtls_mpi_cmp_mpi( &V1, N ) >= 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &V1, &V1, N ) ); - - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, &V1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, &V1)); cleanup: - mbedtls_mpi_free( &TA ); mbedtls_mpi_free( &TU ); mbedtls_mpi_free( &U1 ); mbedtls_mpi_free( &U2 ); - mbedtls_mpi_free( &G ); mbedtls_mpi_free( &TB ); mbedtls_mpi_free( &TV ); - mbedtls_mpi_free( &V1 ); mbedtls_mpi_free( &V2 ); + mbedtls_mpi_free(&TA); mbedtls_mpi_free(&TU); mbedtls_mpi_free(&U1); mbedtls_mpi_free(&U2); + mbedtls_mpi_free(&G); mbedtls_mpi_free(&TB); mbedtls_mpi_free(&TV); + mbedtls_mpi_free(&V1); mbedtls_mpi_free(&V2); - return( ret ); + return ret; } #if defined(MBEDTLS_GENPRIME) static const int small_prime[] = { - 3, 5, 7, 11, 13, 17, 19, 23, - 29, 31, 37, 41, 43, 47, 53, 59, - 61, 67, 71, 73, 79, 83, 89, 97, - 101, 103, 107, 109, 113, 127, 131, 137, - 139, 149, 151, 157, 163, 167, 173, 179, - 181, 191, 193, 197, 199, 211, 223, 227, - 229, 233, 239, 241, 251, 257, 263, 269, - 271, 277, 281, 283, 293, 307, 311, 313, - 317, 331, 337, 347, 349, 353, 359, 367, - 373, 379, 383, 389, 397, 401, 409, 419, - 421, 431, 433, 439, 443, 449, 457, 461, - 463, 467, 479, 487, 491, 499, 503, 509, - 521, 523, 541, 547, 557, 563, 569, 571, - 577, 587, 593, 599, 601, 607, 613, 617, - 619, 631, 641, 643, 647, 653, 659, 661, - 673, 677, 683, 691, 701, 709, 719, 727, - 733, 739, 743, 751, 757, 761, 769, 773, - 787, 797, 809, 811, 821, 823, 827, 829, - 839, 853, 857, 859, 863, 877, 881, 883, - 887, 907, 911, 919, 929, 937, 941, 947, - 953, 967, 971, 977, 983, 991, 997, -103 + 3, 5, 7, 11, 13, 17, 19, 23, + 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, + 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, + 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251, 257, 263, 269, + 271, 277, 281, 283, 293, 307, 311, 313, + 317, 331, 337, 347, 349, 353, 359, 367, + 373, 379, 383, 389, 397, 401, 409, 419, + 421, 431, 433, 439, 443, 449, 457, 461, + 463, 467, 479, 487, 491, 499, 503, 509, + 521, 523, 541, 547, 557, 563, 569, 571, + 577, 587, 593, 599, 601, 607, 613, 617, + 619, 631, 641, 643, 647, 653, 659, 661, + 673, 677, 683, 691, 701, 709, 719, 727, + 733, 739, 743, 751, 757, 761, 769, 773, + 787, 797, 809, 811, 821, 823, 827, 829, + 839, 853, 857, 859, 863, 877, 881, 883, + 887, 907, 911, 919, 929, 937, 941, 947, + 953, 967, 971, 977, 983, 991, 997, -103 }; /* @@ -2181,70 +2234,71 @@ static const int small_prime[] = * MBEDTLS_ERR_MPI_NOT_ACCEPTABLE: certain non-prime * other negative: error */ -static int mpi_check_small_factors( const mbedtls_mpi *X ) +static int mpi_check_small_factors(const mbedtls_mpi *X) { int ret = 0; size_t i; mbedtls_mpi_uint r; - if( ( X->p[0] & 1 ) == 0 ) - return( MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); + if ((X->p[0] & 1) == 0) { + return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; + } - for( i = 0; small_prime[i] > 0; i++ ) - { - if( mbedtls_mpi_cmp_int( X, small_prime[i] ) <= 0 ) - return( 1 ); + for (i = 0; small_prime[i] > 0; i++) { + if (mbedtls_mpi_cmp_int(X, small_prime[i]) <= 0) { + return 1; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_int( &r, X, small_prime[i] ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_int(&r, X, small_prime[i])); - if( r == 0 ) - return( MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); + if (r == 0) { + return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; + } } cleanup: - return( ret ); + return ret; } /* * Miller-Rabin pseudo-primality test (HAC 4.24) */ -static int mpi_miller_rabin( const mbedtls_mpi *X, size_t rounds, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int mpi_miller_rabin(const mbedtls_mpi *X, size_t rounds, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret, count; size_t i, j, k, s; mbedtls_mpi W, R, T, A, RR; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( f_rng != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(f_rng != NULL); - mbedtls_mpi_init( &W ); mbedtls_mpi_init( &R ); - mbedtls_mpi_init( &T ); mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &RR ); + mbedtls_mpi_init(&W); mbedtls_mpi_init(&R); + mbedtls_mpi_init(&T); mbedtls_mpi_init(&A); + mbedtls_mpi_init(&RR); /* * W = |X| - 1 * R = W >> lsb( W ) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &W, X, 1 ) ); - s = mbedtls_mpi_lsb( &W ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &R, &W ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &R, s ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&W, X, 1)); + s = mbedtls_mpi_lsb(&W); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&R, &W)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&R, s)); - for( i = 0; i < rounds; i++ ) - { + for (i = 0; i < rounds; i++) { /* * pick a random A, 1 < A < |X| - 1 */ count = 0; do { - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &A, X->n * ciL, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&A, X->n * ciL, f_rng, p_rng)); - j = mbedtls_mpi_bitlen( &A ); - k = mbedtls_mpi_bitlen( &W ); + j = mbedtls_mpi_bitlen(&A); + k = mbedtls_mpi_bitlen(&W); if (j > k) { - A.p[A.n - 1] &= ( (mbedtls_mpi_uint) 1 << ( k - ( A.n - 1 ) * biL - 1 ) ) - 1; + A.p[A.n - 1] &= ((mbedtls_mpi_uint) 1 << (k - (A.n - 1) * biL - 1)) - 1; } if (count++ > 30) { @@ -2252,29 +2306,30 @@ static int mpi_miller_rabin( const mbedtls_mpi *X, size_t rounds, goto cleanup; } - } while ( mbedtls_mpi_cmp_mpi( &A, &W ) >= 0 || - mbedtls_mpi_cmp_int( &A, 1 ) <= 0 ); + } while (mbedtls_mpi_cmp_mpi(&A, &W) >= 0 || + mbedtls_mpi_cmp_int(&A, 1) <= 0); /* * A = A^R mod |X| */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &A, &A, &R, X, &RR ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&A, &A, &R, X, &RR)); - if( mbedtls_mpi_cmp_mpi( &A, &W ) == 0 || - mbedtls_mpi_cmp_int( &A, 1 ) == 0 ) + if (mbedtls_mpi_cmp_mpi(&A, &W) == 0 || + mbedtls_mpi_cmp_int(&A, 1) == 0) { continue; + } j = 1; - while( j < s && mbedtls_mpi_cmp_mpi( &A, &W ) != 0 ) - { + while (j < s && mbedtls_mpi_cmp_mpi(&A, &W) != 0) { /* * A = A * A mod |X| */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &T, &A, &A ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &A, &T, X ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&T, &A, &A)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&A, &T, X)); - if( mbedtls_mpi_cmp_int( &A, 1 ) == 0 ) + if (mbedtls_mpi_cmp_int(&A, 1) == 0) { break; + } j++; } @@ -2282,54 +2337,55 @@ static int mpi_miller_rabin( const mbedtls_mpi *X, size_t rounds, /* * not prime if A != |X| - 1 or A == 1 */ - if( mbedtls_mpi_cmp_mpi( &A, &W ) != 0 || - mbedtls_mpi_cmp_int( &A, 1 ) == 0 ) - { + if (mbedtls_mpi_cmp_mpi(&A, &W) != 0 || + mbedtls_mpi_cmp_int(&A, 1) == 0) { ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; break; } } cleanup: - mbedtls_mpi_free( &W ); mbedtls_mpi_free( &R ); - mbedtls_mpi_free( &T ); mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &RR ); + mbedtls_mpi_free(&W); mbedtls_mpi_free(&R); + mbedtls_mpi_free(&T); mbedtls_mpi_free(&A); + mbedtls_mpi_free(&RR); - return( ret ); + return ret; } /* * Pseudo-primality test: small factors, then Miller-Rabin */ -int mbedtls_mpi_is_prime_ext( const mbedtls_mpi *X, int rounds, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_is_prime_ext(const mbedtls_mpi *X, int rounds, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi XX; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( f_rng != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(f_rng != NULL); XX.s = 1; XX.n = X->n; XX.p = X->p; - if( mbedtls_mpi_cmp_int( &XX, 0 ) == 0 || - mbedtls_mpi_cmp_int( &XX, 1 ) == 0 ) - return( MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); - - if( mbedtls_mpi_cmp_int( &XX, 2 ) == 0 ) - return( 0 ); - - if( ( ret = mpi_check_small_factors( &XX ) ) != 0 ) - { - if( ret == 1 ) - return( 0 ); - - return( ret ); + if (mbedtls_mpi_cmp_int(&XX, 0) == 0 || + mbedtls_mpi_cmp_int(&XX, 1) == 0) { + return MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; } - return( mpi_miller_rabin( &XX, rounds, f_rng, p_rng ) ); + if (mbedtls_mpi_cmp_int(&XX, 2) == 0) { + return 0; + } + + if ((ret = mpi_check_small_factors(&XX)) != 0) { + if (ret == 1) { + return 0; + } + + return ret; + } + + return mpi_miller_rabin(&XX, rounds, f_rng, p_rng); } /* @@ -2339,9 +2395,9 @@ int mbedtls_mpi_is_prime_ext( const mbedtls_mpi *X, int rounds, * be either 1024 bits or 1536 bits long, and flags must contain * MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR. */ -int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_gen_prime(mbedtls_mpi *X, size_t nbits, int flags, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { #ifdef MBEDTLS_HAVE_INT64 // ceil(2^63.5) @@ -2356,56 +2412,55 @@ int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, mbedtls_mpi_uint r; mbedtls_mpi Y; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( f_rng != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(f_rng != NULL); - if( nbits < 3 || nbits > MBEDTLS_MPI_MAX_BITS ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (nbits < 3 || nbits > MBEDTLS_MPI_MAX_BITS) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&Y); - n = BITS_TO_LIMBS( nbits ); + n = BITS_TO_LIMBS(nbits); - if( ( flags & MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR ) == 0 ) - { + if ((flags & MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR) == 0) { /* * 2^-80 error probability, number of rounds chosen per HAC, table 4.4 */ - rounds = ( ( nbits >= 1300 ) ? 2 : ( nbits >= 850 ) ? 3 : - ( nbits >= 650 ) ? 4 : ( nbits >= 350 ) ? 8 : - ( nbits >= 250 ) ? 12 : ( nbits >= 150 ) ? 18 : 27 ); - } - else - { + rounds = ((nbits >= 1300) ? 2 : (nbits >= 850) ? 3 : + (nbits >= 650) ? 4 : (nbits >= 350) ? 8 : + (nbits >= 250) ? 12 : (nbits >= 150) ? 18 : 27); + } else { /* * 2^-100 error probability, number of rounds computed based on HAC, * fact 4.48 */ - rounds = ( ( nbits >= 1450 ) ? 4 : ( nbits >= 1150 ) ? 5 : - ( nbits >= 1000 ) ? 6 : ( nbits >= 850 ) ? 7 : - ( nbits >= 750 ) ? 8 : ( nbits >= 500 ) ? 13 : - ( nbits >= 250 ) ? 28 : ( nbits >= 150 ) ? 40 : 51 ); + rounds = ((nbits >= 1450) ? 4 : (nbits >= 1150) ? 5 : + (nbits >= 1000) ? 6 : (nbits >= 850) ? 7 : + (nbits >= 750) ? 8 : (nbits >= 500) ? 13 : + (nbits >= 250) ? 28 : (nbits >= 150) ? 40 : 51); } - while( 1 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( X, n * ciL, f_rng, p_rng ) ); + while (1) { + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(X, n * ciL, f_rng, p_rng)); /* make sure generated number is at least (nbits-1)+0.5 bits (FIPS 186-4 §B.3.3 steps 4.4, 5.5) */ - if( X->p[n-1] < CEIL_MAXUINT_DIV_SQRT2 ) continue; + if (X->p[n-1] < CEIL_MAXUINT_DIV_SQRT2) { + continue; + } k = n * biL; - if( k > nbits ) MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( X, k - nbits ) ); + if (k > nbits) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(X, k - nbits)); + } X->p[0] |= 1; - if( ( flags & MBEDTLS_MPI_GEN_PRIME_FLAG_DH ) == 0 ) - { - ret = mbedtls_mpi_is_prime_ext( X, rounds, f_rng, p_rng ); + if ((flags & MBEDTLS_MPI_GEN_PRIME_FLAG_DH) == 0) { + ret = mbedtls_mpi_is_prime_ext(X, rounds, f_rng, p_rng); - if( ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + if (ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { goto cleanup; - } - else - { + } + } else { /* * A necessary condition for Y and X = 2Y + 1 to be prime * is X = 2 mod 3 (which is equivalent to Y = 2 mod 3). @@ -2414,49 +2469,51 @@ int mbedtls_mpi_gen_prime( mbedtls_mpi *X, size_t nbits, int flags, X->p[0] |= 2; - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_int( &r, X, 3 ) ); - if( r == 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( X, X, 8 ) ); - else if( r == 1 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( X, X, 4 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_int(&r, X, 3)); + if (r == 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(X, X, 8)); + } else if (r == 1) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(X, X, 4)); + } /* Set Y = (X-1) / 2, which is X / 2 because X is odd */ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &Y, X ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &Y, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&Y, X)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&Y, 1)); - while( 1 ) - { + while (1) { /* * First, check small factors for X and Y * before doing Miller-Rabin on any of them */ - if( ( ret = mpi_check_small_factors( X ) ) == 0 && - ( ret = mpi_check_small_factors( &Y ) ) == 0 && - ( ret = mpi_miller_rabin( X, rounds, f_rng, p_rng ) ) - == 0 && - ( ret = mpi_miller_rabin( &Y, rounds, f_rng, p_rng ) ) - == 0 ) + if ((ret = mpi_check_small_factors(X)) == 0 && + (ret = mpi_check_small_factors(&Y)) == 0 && + (ret = mpi_miller_rabin(X, rounds, f_rng, p_rng)) + == 0 && + (ret = mpi_miller_rabin(&Y, rounds, f_rng, p_rng)) + == 0) { goto cleanup; + } - if( ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + if (ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { goto cleanup; + } /* * Next candidates. We want to preserve Y = (X-1) / 2 and * Y = 1 mod 2 and Y = 2 mod 3 (eq X = 3 mod 4 and X = 2 mod 3) * so up Y by 6 and X by 12. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( X, X, 12 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &Y, &Y, 6 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(X, X, 12)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&Y, &Y, 6)); } } } cleanup: - mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&Y); - return( ret ); + return ret; } #endif /* MBEDTLS_GENPRIME */ @@ -2475,162 +2532,173 @@ static const int gcd_pairs[GCD_PAIR_COUNT][3] = /* * Checkup routine */ -int mbedtls_mpi_self_test( int verbose ) +int mbedtls_mpi_self_test(int verbose) { int ret, i; mbedtls_mpi A, E, N, X, Y, U, V; - mbedtls_mpi_init( &A ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &N ); mbedtls_mpi_init( &X ); - mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &U ); mbedtls_mpi_init( &V ); + mbedtls_mpi_init(&A); mbedtls_mpi_init(&E); mbedtls_mpi_init(&N); mbedtls_mpi_init(&X); + mbedtls_mpi_init(&Y); mbedtls_mpi_init(&U); mbedtls_mpi_init(&V); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &A, 16, - "EFE021C2645FD1DC586E69184AF4A31E" \ - "D5F53E93B5F123FA41680867BA110131" \ - "944FE7952E2517337780CB0DB80E61AA" \ - "E7C8DDC6C5C6AADEB34EB38A2F40D5E6" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&A, 16, + "EFE021C2645FD1DC586E69184AF4A31E" \ + "D5F53E93B5F123FA41680867BA110131" \ + "944FE7952E2517337780CB0DB80E61AA" \ + "E7C8DDC6C5C6AADEB34EB38A2F40D5E6")); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &E, 16, - "B2E7EFD37075B9F03FF989C7C5051C20" \ - "34D2A323810251127E7BF8625A4F49A5" \ - "F3E27F4DA8BD59C47D6DAABA4C8127BD" \ - "5B5C25763222FEFCCFC38B832366C29E" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&E, 16, + "B2E7EFD37075B9F03FF989C7C5051C20" \ + "34D2A323810251127E7BF8625A4F49A5" \ + "F3E27F4DA8BD59C47D6DAABA4C8127BD" \ + "5B5C25763222FEFCCFC38B832366C29E")); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &N, 16, - "0066A198186C18C10B2F5ED9B522752A" \ - "9830B69916E535C8F047518A889A43A5" \ - "94B6BED27A168D31D4A52F88925AA8F5" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&N, 16, + "0066A198186C18C10B2F5ED9B522752A" \ + "9830B69916E535C8F047518A889A43A5" \ + "94B6BED27A168D31D4A52F88925AA8F5")); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &X, &A, &N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&X, &A, &N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &U, 16, - "602AB7ECA597A3D6B56FF9829A5E8B85" \ - "9E857EA95A03512E2BAE7391688D264A" \ - "A5663B0341DB9CCFD2C4C5F421FEC814" \ - "8001B72E848A38CAE1C65F78E56ABDEF" \ - "E12D3C039B8A02D6BE593F0BBBDA56F1" \ - "ECF677152EF804370C1A305CAF3B5BF1" \ - "30879B56C61DE584A0F53A2447A51E" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&U, 16, + "602AB7ECA597A3D6B56FF9829A5E8B85" \ + "9E857EA95A03512E2BAE7391688D264A" \ + "A5663B0341DB9CCFD2C4C5F421FEC814" \ + "8001B72E848A38CAE1C65F78E56ABDEF" \ + "E12D3C039B8A02D6BE593F0BBBDA56F1" \ + "ECF677152EF804370C1A305CAF3B5BF1" \ + "30879B56C61DE584A0F53A2447A51E")); - if( verbose != 0 ) - mbedtls_printf( " MPI test #1 (mul_mpi): " ); + if (verbose != 0) { + mbedtls_printf(" MPI test #1 (mul_mpi): "); + } - if( mbedtls_mpi_cmp_mpi( &X, &U ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_mpi_cmp_mpi(&X, &U) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - MBEDTLS_MPI_CHK( mbedtls_mpi_div_mpi( &X, &Y, &A, &N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&X, &Y, &A, &N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &U, 16, - "256567336059E52CAE22925474705F39A94" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&U, 16, + "256567336059E52CAE22925474705F39A94")); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &V, 16, - "6613F26162223DF488E9CD48CC132C7A" \ - "0AC93C701B001B092E4E5B9F73BCD27B" \ - "9EE50D0657C77F374E903CDFA4C642" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&V, 16, + "6613F26162223DF488E9CD48CC132C7A" \ + "0AC93C701B001B092E4E5B9F73BCD27B" \ + "9EE50D0657C77F374E903CDFA4C642")); - if( verbose != 0 ) - mbedtls_printf( " MPI test #2 (div_mpi): " ); + if (verbose != 0) { + mbedtls_printf(" MPI test #2 (div_mpi): "); + } - if( mbedtls_mpi_cmp_mpi( &X, &U ) != 0 || - mbedtls_mpi_cmp_mpi( &Y, &V ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_mpi_cmp_mpi(&X, &U) != 0 || + mbedtls_mpi_cmp_mpi(&Y, &V) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &X, &A, &E, &N, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&X, &A, &E, &N, NULL)); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &U, 16, - "36E139AEA55215609D2816998ED020BB" \ - "BD96C37890F65171D948E9BC7CBAA4D9" \ - "325D24D6A3C12710F10A09FA08AB87" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&U, 16, + "36E139AEA55215609D2816998ED020BB" \ + "BD96C37890F65171D948E9BC7CBAA4D9" \ + "325D24D6A3C12710F10A09FA08AB87")); - if( verbose != 0 ) - mbedtls_printf( " MPI test #3 (exp_mod): " ); + if (verbose != 0) { + mbedtls_printf(" MPI test #3 (exp_mod): "); + } - if( mbedtls_mpi_cmp_mpi( &X, &U ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_mpi_cmp_mpi(&X, &U) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &X, &A, &N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&X, &A, &N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &U, 16, - "003A0AAEDD7E784FC07D8F9EC6E3BFD5" \ - "C3DBA76456363A10869622EAC2DD84EC" \ - "C5B8A74DAC4D09E03B5E0BE779F2DF61" ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&U, 16, + "003A0AAEDD7E784FC07D8F9EC6E3BFD5" \ + "C3DBA76456363A10869622EAC2DD84EC" \ + "C5B8A74DAC4D09E03B5E0BE779F2DF61")); - if( verbose != 0 ) - mbedtls_printf( " MPI test #4 (inv_mod): " ); + if (verbose != 0) { + mbedtls_printf(" MPI test #4 (inv_mod): "); + } - if( mbedtls_mpi_cmp_mpi( &X, &U ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_mpi_cmp_mpi(&X, &U) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( " MPI test #5 (simple gcd): " ); + if (verbose != 0) { + mbedtls_printf(" MPI test #5 (simple gcd): "); + } - for( i = 0; i < GCD_PAIR_COUNT; i++ ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &X, gcd_pairs[i][0] ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &Y, gcd_pairs[i][1] ) ); + for (i = 0; i < GCD_PAIR_COUNT; i++) { + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&X, gcd_pairs[i][0])); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&Y, gcd_pairs[i][1])); - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &A, &X, &Y ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&A, &X, &Y)); - if( mbedtls_mpi_cmp_int( &A, gcd_pairs[i][2] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed at %d\n", i ); + if (mbedtls_mpi_cmp_int(&A, gcd_pairs[i][2]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed at %d\n", i); + } ret = 1; goto cleanup; } } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } cleanup: - if( ret != 0 && verbose != 0 ) - mbedtls_printf( "Unexpected error, return code = %08X\n", (unsigned int) ret ); + if (ret != 0 && verbose != 0) { + mbedtls_printf("Unexpected error, return code = %08X\n", (unsigned int) ret); + } - mbedtls_mpi_free( &A ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &N ); mbedtls_mpi_free( &X ); - mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &U ); mbedtls_mpi_free( &V ); + mbedtls_mpi_free(&A); mbedtls_mpi_free(&E); mbedtls_mpi_free(&N); mbedtls_mpi_free(&X); + mbedtls_mpi_free(&Y); mbedtls_mpi_free(&U); mbedtls_mpi_free(&V); - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/bignum_core.c b/library/bignum_core.c index bda62f22f..e50f043c5 100644 --- a/library/bignum_core.c +++ b/library/bignum_core.c @@ -33,84 +33,84 @@ #include "bn_mul.h" #include "constant_time_internal.h" -size_t mbedtls_mpi_core_clz( mbedtls_mpi_uint a ) +size_t mbedtls_mpi_core_clz(mbedtls_mpi_uint a) { size_t j; mbedtls_mpi_uint mask = (mbedtls_mpi_uint) 1 << (biL - 1); - for( j = 0; j < biL; j++ ) - { - if( a & mask ) break; + for (j = 0; j < biL; j++) { + if (a & mask) { + break; + } mask >>= 1; } - return( j ); + return j; } -size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ) +size_t mbedtls_mpi_core_bitlen(const mbedtls_mpi_uint *A, size_t A_limbs) { size_t i, j; - if( A_limbs == 0 ) - return( 0 ); + if (A_limbs == 0) { + return 0; + } - for( i = A_limbs - 1; i > 0; i-- ) - if( A[i] != 0 ) + for (i = A_limbs - 1; i > 0; i--) { + if (A[i] != 0) { break; + } + } - j = biL - mbedtls_mpi_core_clz( A[i] ); + j = biL - mbedtls_mpi_core_clz(A[i]); - return( ( i * biL ) + j ); + return (i * biL) + j; } /* Convert a big-endian byte array aligned to the size of mbedtls_mpi_uint * into the storage form used by mbedtls_mpi. */ -static mbedtls_mpi_uint mpi_bigendian_to_host_c( mbedtls_mpi_uint a ) +static mbedtls_mpi_uint mpi_bigendian_to_host_c(mbedtls_mpi_uint a) { uint8_t i; unsigned char *a_ptr; mbedtls_mpi_uint tmp = 0; - for( i = 0, a_ptr = (unsigned char *) &a; i < ciL; i++, a_ptr++ ) - { + for (i = 0, a_ptr = (unsigned char *) &a; i < ciL; i++, a_ptr++) { tmp <<= CHAR_BIT; tmp |= (mbedtls_mpi_uint) *a_ptr; } - return( tmp ); + return tmp; } -static mbedtls_mpi_uint mpi_bigendian_to_host( mbedtls_mpi_uint a ) +static mbedtls_mpi_uint mpi_bigendian_to_host(mbedtls_mpi_uint a) { - if ( MBEDTLS_IS_BIG_ENDIAN ) - { + if (MBEDTLS_IS_BIG_ENDIAN) { /* Nothing to do on bigendian systems. */ - return( a ); - } - else - { - switch( sizeof(mbedtls_mpi_uint) ) - { + return a; + } else { + switch (sizeof(mbedtls_mpi_uint)) { case 4: - return (mbedtls_mpi_uint) MBEDTLS_BSWAP32( (uint32_t)a ); + return (mbedtls_mpi_uint) MBEDTLS_BSWAP32((uint32_t) a); case 8: - return (mbedtls_mpi_uint) MBEDTLS_BSWAP64( (uint64_t)a ); + return (mbedtls_mpi_uint) MBEDTLS_BSWAP64((uint64_t) a); } /* Fall back to C-based reordering if we don't know the byte order - * or we couldn't use a compiler-specific builtin. */ - return( mpi_bigendian_to_host_c( a ) ); + * or we couldn't use a compiler-specific builtin. */ + return mpi_bigendian_to_host_c(a); } } -void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, - size_t A_limbs ) +void mbedtls_mpi_core_bigendian_to_host(mbedtls_mpi_uint *A, + size_t A_limbs) { mbedtls_mpi_uint *cur_limb_left; mbedtls_mpi_uint *cur_limb_right; - if( A_limbs == 0 ) + if (A_limbs == 0) { return; + } /* * Traverse limbs and @@ -121,165 +121,163 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * than the right index (it's not a problem if limbs is odd and the * indices coincide in the last iteration). */ - for( cur_limb_left = A, cur_limb_right = A + ( A_limbs - 1 ); + for (cur_limb_left = A, cur_limb_right = A + (A_limbs - 1); cur_limb_left <= cur_limb_right; - cur_limb_left++, cur_limb_right-- ) - { + cur_limb_left++, cur_limb_right--) { mbedtls_mpi_uint tmp; /* Note that if cur_limb_left == cur_limb_right, * this code effectively swaps the bytes only once. */ - tmp = mpi_bigendian_to_host( *cur_limb_left ); - *cur_limb_left = mpi_bigendian_to_host( *cur_limb_right ); + tmp = mpi_bigendian_to_host(*cur_limb_left); + *cur_limb_left = mpi_bigendian_to_host(*cur_limb_right); *cur_limb_right = tmp; } } /* Whether min <= A, in constant time. * A_limbs must be at least 1. */ -unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, - const mbedtls_mpi_uint *A, - size_t A_limbs ) +unsigned mbedtls_mpi_core_uint_le_mpi(mbedtls_mpi_uint min, + const mbedtls_mpi_uint *A, + size_t A_limbs) { /* min <= least significant limb? */ - unsigned min_le_lsl = 1 ^ mbedtls_ct_mpi_uint_lt( A[0], min ); + unsigned min_le_lsl = 1 ^ mbedtls_ct_mpi_uint_lt(A[0], min); /* limbs other than the least significant one are all zero? */ mbedtls_mpi_uint msll_mask = 0; - for( size_t i = 1; i < A_limbs; i++ ) + for (size_t i = 1; i < A_limbs; i++) { msll_mask |= A[i]; + } /* The most significant limbs of A are not all zero iff msll_mask != 0. */ - unsigned msll_nonzero = mbedtls_ct_mpi_uint_mask( msll_mask ) & 1; + unsigned msll_nonzero = mbedtls_ct_mpi_uint_mask(msll_mask) & 1; /* min <= A iff the lowest limb of A is >= min or the other limbs * are not all zero. */ - return( min_le_lsl | msll_nonzero ); + return min_le_lsl | msll_nonzero; } -void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - size_t limbs, - unsigned char assign ) +void mbedtls_mpi_core_cond_assign(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + size_t limbs, + unsigned char assign) { - if( X == A ) + if (X == A) { return; + } - mbedtls_ct_mpi_uint_cond_assign( limbs, X, A, assign ); + mbedtls_ct_mpi_uint_cond_assign(limbs, X, A, assign); } -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - size_t limbs, - unsigned char swap ) +void mbedtls_mpi_core_cond_swap(mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + size_t limbs, + unsigned char swap) { - if( X == Y ) + if (X == Y) { return; + } /* all-bits 1 if swap is 1, all-bits 0 if swap is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( swap ); + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask(swap); - for( size_t i = 0; i < limbs; i++ ) - { + for (size_t i = 0; i < limbs; i++) { mbedtls_mpi_uint tmp = X[i]; - X[i] = ( X[i] & ~limb_mask ) | ( Y[i] & limb_mask ); - Y[i] = ( Y[i] & ~limb_mask ) | ( tmp & limb_mask ); + X[i] = (X[i] & ~limb_mask) | (Y[i] & limb_mask); + Y[i] = (Y[i] & ~limb_mask) | (tmp & limb_mask); } } -int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, - size_t X_limbs, - const unsigned char *input, - size_t input_length ) +int mbedtls_mpi_core_read_le(mbedtls_mpi_uint *X, + size_t X_limbs, + const unsigned char *input, + size_t input_length) { - const size_t limbs = CHARS_TO_LIMBS( input_length ); + const size_t limbs = CHARS_TO_LIMBS(input_length); - if( X_limbs < limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + if (X_limbs < limbs) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; + } - if( X != NULL ) - { - memset( X, 0, X_limbs * ciL ); + if (X != NULL) { + memset(X, 0, X_limbs * ciL); - for( size_t i = 0; i < input_length; i++ ) - { - size_t offset = ( ( i % ciL ) << 3 ); - X[i / ciL] |= ( (mbedtls_mpi_uint) input[i] ) << offset; + for (size_t i = 0; i < input_length; i++) { + size_t offset = ((i % ciL) << 3); + X[i / ciL] |= ((mbedtls_mpi_uint) input[i]) << offset; } } - return( 0 ); + return 0; } -int mbedtls_mpi_core_read_be( mbedtls_mpi_uint *X, - size_t X_limbs, - const unsigned char *input, - size_t input_length ) +int mbedtls_mpi_core_read_be(mbedtls_mpi_uint *X, + size_t X_limbs, + const unsigned char *input, + size_t input_length) { - const size_t limbs = CHARS_TO_LIMBS( input_length ); + const size_t limbs = CHARS_TO_LIMBS(input_length); - if( X_limbs < limbs ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + if (X_limbs < limbs) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; + } /* If X_limbs is 0, input_length must also be 0 (from previous test). * Nothing to do. */ - if( X_limbs == 0 ) - return( 0 ); - - memset( X, 0, X_limbs * ciL ); - - /* memcpy() with (NULL, 0) is undefined behaviour */ - if( input_length != 0 ) - { - size_t overhead = ( X_limbs * ciL ) - input_length; - unsigned char *Xp = (unsigned char *) X; - memcpy( Xp + overhead, input, input_length ); + if (X_limbs == 0) { + return 0; } - mbedtls_mpi_core_bigendian_to_host( X, X_limbs ); + memset(X, 0, X_limbs * ciL); - return( 0 ); + /* memcpy() with (NULL, 0) is undefined behaviour */ + if (input_length != 0) { + size_t overhead = (X_limbs * ciL) - input_length; + unsigned char *Xp = (unsigned char *) X; + memcpy(Xp + overhead, input, input_length); + } + + mbedtls_mpi_core_bigendian_to_host(X, X_limbs); + + return 0; } -int mbedtls_mpi_core_write_le( const mbedtls_mpi_uint *A, - size_t A_limbs, - unsigned char *output, - size_t output_length ) +int mbedtls_mpi_core_write_le(const mbedtls_mpi_uint *A, + size_t A_limbs, + unsigned char *output, + size_t output_length) { size_t stored_bytes = A_limbs * ciL; size_t bytes_to_copy; - if( stored_bytes < output_length ) - { + if (stored_bytes < output_length) { bytes_to_copy = stored_bytes; - } - else - { + } else { bytes_to_copy = output_length; /* The output buffer is smaller than the allocated size of A. * However A may fit if its leading bytes are zero. */ - for( size_t i = bytes_to_copy; i < stored_bytes; i++ ) - { - if( GET_BYTE( A, i ) != 0 ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + for (size_t i = bytes_to_copy; i < stored_bytes; i++) { + if (GET_BYTE(A, i) != 0) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; + } } } - for( size_t i = 0; i < bytes_to_copy; i++ ) - output[i] = GET_BYTE( A, i ); - - if( stored_bytes < output_length ) - { - /* Write trailing 0 bytes */ - memset( output + stored_bytes, 0, output_length - stored_bytes ); + for (size_t i = 0; i < bytes_to_copy; i++) { + output[i] = GET_BYTE(A, i); } - return( 0 ); + if (stored_bytes < output_length) { + /* Write trailing 0 bytes */ + memset(output + stored_bytes, 0, output_length - stored_bytes); + } + + return 0; } -int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, - size_t X_limbs, - unsigned char *output, - size_t output_length ) +int mbedtls_mpi_core_write_be(const mbedtls_mpi_uint *X, + size_t X_limbs, + unsigned char *output, + size_t output_length) { size_t stored_bytes; size_t bytes_to_copy; @@ -287,8 +285,7 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, stored_bytes = X_limbs * ciL; - if( stored_bytes < output_length ) - { + if (stored_bytes < output_length) { /* There is enough space in the output buffer. Write initial * null bytes and record the position at which to start * writing the significant bytes. In this case, the execution @@ -296,29 +293,28 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *X, * number. */ bytes_to_copy = stored_bytes; p = output + output_length - stored_bytes; - memset( output, 0, output_length - stored_bytes ); - } - else - { + memset(output, 0, output_length - stored_bytes); + } else { /* The output buffer is smaller than the allocated size of X. * However X may fit if its leading bytes are zero. */ bytes_to_copy = output_length; p = output; - for( size_t i = bytes_to_copy; i < stored_bytes; i++ ) - { - if( GET_BYTE( X, i ) != 0 ) - return( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL ); + for (size_t i = bytes_to_copy; i < stored_bytes; i++) { + if (GET_BYTE(X, i) != 0) { + return MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL; + } } } - for( size_t i = 0; i < bytes_to_copy; i++ ) - p[bytes_to_copy - i - 1] = GET_BYTE( X, i ); + for (size_t i = 0; i < bytes_to_copy; i++) { + p[bytes_to_copy - i - 1] = GET_BYTE(X, i); + } - return( 0 ); + return 0; } -void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, - size_t count ) +void mbedtls_mpi_core_shift_r(mbedtls_mpi_uint *X, size_t limbs, + size_t count) { size_t i, v0, v1; mbedtls_mpi_uint r0 = 0, r1; @@ -326,31 +322,29 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, v0 = count / biL; v1 = count & (biL - 1); - if( v0 > limbs || ( v0 == limbs && v1 > 0 ) ) - { - memset( X, 0, limbs * ciL ); + if (v0 > limbs || (v0 == limbs && v1 > 0)) { + memset(X, 0, limbs * ciL); return; } /* * shift by count / limb_size */ - if( v0 > 0 ) - { - for( i = 0; i < limbs - v0; i++ ) + if (v0 > 0) { + for (i = 0; i < limbs - v0; i++) { X[i] = X[i + v0]; + } - for( ; i < limbs; i++ ) + for (; i < limbs; i++) { X[i] = 0; + } } /* * shift by count % limb_size */ - if( v1 > 0 ) - { - for( i = limbs; i > 0; i-- ) - { + if (v1 > 0) { + for (i = limbs; i > 0; i--) { r1 = X[i - 1] << (biL - v1); X[i - 1] >>= v1; X[i - 1] |= r0; @@ -359,69 +353,66 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, } } -mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ) +mbedtls_mpi_uint mbedtls_mpi_core_add(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs) { mbedtls_mpi_uint c = 0; - for( size_t i = 0; i < limbs; i++ ) - { + for (size_t i = 0; i < limbs; i++) { mbedtls_mpi_uint t = c + A[i]; - c = ( t < A[i] ); + c = (t < A[i]); t += B[i]; - c += ( t < B[i] ); + c += (t < B[i]); X[i] = t; } - return( c ); + return c; } -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - size_t limbs, - unsigned cond ) +mbedtls_mpi_uint mbedtls_mpi_core_add_if(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + size_t limbs, + unsigned cond) { mbedtls_mpi_uint c = 0; /* all-bits 0 if cond is 0, all-bits 1 if cond is non-0 */ - const mbedtls_mpi_uint mask = mbedtls_ct_mpi_uint_mask( cond ); + const mbedtls_mpi_uint mask = mbedtls_ct_mpi_uint_mask(cond); - for( size_t i = 0; i < limbs; i++ ) - { + for (size_t i = 0; i < limbs; i++) { mbedtls_mpi_uint add = mask & A[i]; mbedtls_mpi_uint t = c + X[i]; - c = ( t < X[i] ); + c = (t < X[i]); t += add; - c += ( t < add ); + c += (t < add); X[i] = t; } - return( c ); + return c; } -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ) +mbedtls_mpi_uint mbedtls_mpi_core_sub(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs) { mbedtls_mpi_uint c = 0; - for( size_t i = 0; i < limbs; i++ ) - { - mbedtls_mpi_uint z = ( A[i] < c ); + for (size_t i = 0; i < limbs; i++) { + mbedtls_mpi_uint z = (A[i] < c); mbedtls_mpi_uint t = A[i] - c; - c = ( t < B[i] ) + z; + c = (t < B[i]) + z; X[i] = t - B[i]; } - return( c ); + return c; } -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, - const mbedtls_mpi_uint *s, size_t s_len, - mbedtls_mpi_uint b ) +mbedtls_mpi_uint mbedtls_mpi_core_mla(mbedtls_mpi_uint *d, size_t d_len, + const mbedtls_mpi_uint *s, size_t s_len, + mbedtls_mpi_uint b) { mbedtls_mpi_uint c = 0; /* carry */ /* @@ -429,70 +420,68 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *d, size_t d_len, * If that's not the case, we swap these round: this turns what would be * a buffer overflow into an incorrect result. */ - if( d_len < s_len ) + if (d_len < s_len) { s_len = d_len; + } size_t excess_len = d_len - s_len; size_t steps_x8 = s_len / 8; size_t steps_x1 = s_len & 7; - while( steps_x8-- ) - { + while (steps_x8--) { MULADDC_X8_INIT MULADDC_X8_CORE - MULADDC_X8_STOP + MULADDC_X8_STOP } - while( steps_x1-- ) - { + while (steps_x1--) { MULADDC_X1_INIT MULADDC_X1_CORE - MULADDC_X1_STOP + MULADDC_X1_STOP } - while( excess_len-- ) - { + while (excess_len--) { *d += c; - c = ( *d < c ); + c = (*d < c); d++; } - return( c ); + return c; } /* * Fast Montgomery initialization (thanks to Tom St Denis). */ -mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ) +mbedtls_mpi_uint mbedtls_mpi_core_montmul_init(const mbedtls_mpi_uint *N) { mbedtls_mpi_uint x = N[0]; - x += ( ( N[0] + 2 ) & 4 ) << 1; + x += ((N[0] + 2) & 4) << 1; - for( unsigned int i = biL; i >= 8; i /= 2 ) - x *= ( 2 - ( N[0] * x ) ); + for (unsigned int i = biL; i >= 8; i /= 2) { + x *= (2 - (N[0] * x)); + } - return( ~x + 1 ); + return ~x + 1; } -void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t B_limbs, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_core_montmul(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t B_limbs, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T) { - memset( T, 0, ( 2 * AN_limbs + 1 ) * ciL ); + memset(T, 0, (2 * AN_limbs + 1) * ciL); - for( size_t i = 0; i < AN_limbs; i++ ) - { + for (size_t i = 0; i < AN_limbs; i++) { /* T = (T + u0*B + u1*N) / 2^biL */ mbedtls_mpi_uint u0 = A[i]; - mbedtls_mpi_uint u1 = ( T[0] + u0 * B[0] ) * mm; + mbedtls_mpi_uint u1 = (T[0] + u0 * B[0]) * mm; - (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, B, B_limbs, u0 ); - (void) mbedtls_mpi_core_mla( T, AN_limbs + 2, N, AN_limbs, u1 ); + (void) mbedtls_mpi_core_mla(T, AN_limbs + 2, B, B_limbs, u0); + (void) mbedtls_mpi_core_mla(T, AN_limbs + 2, N, AN_limbs, u1); T++; } @@ -508,7 +497,7 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, */ mbedtls_mpi_uint carry = T[AN_limbs]; - mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, T, N, AN_limbs ); + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub(X, T, N, AN_limbs); /* * Using R as the Montgomery radix (auxiliary modulus) i.e. 2^(biL*AN_limbs): @@ -524,34 +513,33 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * So the correct return value is already in X if (carry ^ borrow) = 0, * but is in (the lower AN_limbs limbs of) T if (carry ^ borrow) = 1. */ - mbedtls_ct_mpi_uint_cond_assign( AN_limbs, X, T, (unsigned char) ( carry ^ borrow ) ); + mbedtls_ct_mpi_uint_cond_assign(AN_limbs, X, T, (unsigned char) (carry ^ borrow)); } -int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, - const mbedtls_mpi *N ) +int mbedtls_mpi_core_get_mont_r2_unsafe(mbedtls_mpi *X, + const mbedtls_mpi *N) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, N->n * 2 * biL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( X, X, N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shrink( X, N->n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(X, N->n * 2 * biL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(X, X, N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shrink(X, N->n)); cleanup: - return( ret ); + return ret; } MBEDTLS_STATIC_TESTABLE -void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *table, - size_t limbs, - size_t count, - size_t index ) +void mbedtls_mpi_core_ct_uint_table_lookup(mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index) { - for( size_t i = 0; i < count; i++, table += limbs ) - { - unsigned char assign = mbedtls_ct_size_bool_eq( i, index ); - mbedtls_mpi_core_cond_assign( dest, table, limbs, assign ); + for (size_t i = 0; i < count; i++, table += limbs) { + unsigned char assign = mbedtls_ct_size_bool_eq(i, index); + mbedtls_mpi_core_cond_assign(dest, table, limbs, assign); } } @@ -564,34 +552,35 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, size_t n_bytes, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const size_t limbs = CHARS_TO_LIMBS( n_bytes ); - const size_t overhead = ( limbs * ciL ) - n_bytes; + const size_t limbs = CHARS_TO_LIMBS(n_bytes); + const size_t overhead = (limbs * ciL) - n_bytes; - if( X_limbs < limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (X_limbs < limbs) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - memset( X, 0, overhead ); - memset( (unsigned char *) X + limbs * ciL, 0, ( X_limbs - limbs ) * ciL ); - MBEDTLS_MPI_CHK( f_rng( p_rng, (unsigned char *) X + overhead, n_bytes ) ); - mbedtls_mpi_core_bigendian_to_host( X, limbs ); + memset(X, 0, overhead); + memset((unsigned char *) X + limbs * ciL, 0, (X_limbs - limbs) * ciL); + MBEDTLS_MPI_CHK(f_rng(p_rng, (unsigned char *) X + overhead, n_bytes)); + mbedtls_mpi_core_bigendian_to_host(X, limbs); cleanup: - return( ret ); + return ret; } -int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_uint *N, - size_t limbs, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_core_random(mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_uint *N, + size_t limbs, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { unsigned ge_lower = 1, lt_upper = 0; - size_t n_bits = mbedtls_mpi_core_bitlen( N, limbs ); - size_t n_bytes = ( n_bits + 7 ) / 8; + size_t n_bits = mbedtls_mpi_core_bitlen(N, limbs); + size_t n_bytes = (n_bits + 7) / 8; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* @@ -611,7 +600,7 @@ int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, * is small, use a higher repeat count, otherwise the probability of * failure is macroscopic. */ - int count = ( n_bytes > 4 ? 30 : 250 ); + int count = (n_bytes > 4 ? 30 : 250); /* * Match the procedure given in RFC 6979 §3.3 (deterministic ECDSA) @@ -621,80 +610,77 @@ int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, * - try until result is in the desired range. * This also avoids any bias, which is especially important for ECDSA. */ - do - { - MBEDTLS_MPI_CHK( mbedtls_mpi_core_fill_random( X, limbs, - n_bytes, - f_rng, p_rng ) ); - mbedtls_mpi_core_shift_r( X, limbs, 8 * n_bytes - n_bits ); + do { + MBEDTLS_MPI_CHK(mbedtls_mpi_core_fill_random(X, limbs, + n_bytes, + f_rng, p_rng)); + mbedtls_mpi_core_shift_r(X, limbs, 8 * n_bytes - n_bits); - if( --count == 0 ) - { + if (--count == 0) { ret = MBEDTLS_ERR_MPI_NOT_ACCEPTABLE; goto cleanup; } - ge_lower = mbedtls_mpi_core_uint_le_mpi( min, X, limbs ); - lt_upper = mbedtls_mpi_core_lt_ct( X, N, limbs ); - } - while( ge_lower == 0 || lt_upper == 0 ); + ge_lower = mbedtls_mpi_core_uint_le_mpi(min, X, limbs); + lt_upper = mbedtls_mpi_core_lt_ct(X, N, limbs); + } while (ge_lower == 0 || lt_upper == 0); cleanup: - return( ret ); + return ret; } /* BEGIN MERGE SLOT 1 */ -static size_t exp_mod_get_window_size( size_t Ebits ) +static size_t exp_mod_get_window_size(size_t Ebits) { - size_t wsize = ( Ebits > 671 ) ? 6 : ( Ebits > 239 ) ? 5 : - ( Ebits > 79 ) ? 4 : 1; + size_t wsize = (Ebits > 671) ? 6 : (Ebits > 239) ? 5 : + (Ebits > 79) ? 4 : 1; -#if( MBEDTLS_MPI_WINDOW_SIZE < 6 ) - if( wsize > MBEDTLS_MPI_WINDOW_SIZE ) +#if (MBEDTLS_MPI_WINDOW_SIZE < 6) + if (wsize > MBEDTLS_MPI_WINDOW_SIZE) { wsize = MBEDTLS_MPI_WINDOW_SIZE; + } #endif - return( wsize ); + return wsize; } -size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ) +size_t mbedtls_mpi_core_exp_mod_working_limbs(size_t AN_limbs, size_t E_limbs) { - const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); - const size_t welem = ( (size_t) 1 ) << wsize; + const size_t wsize = exp_mod_get_window_size(E_limbs * biL); + const size_t welem = ((size_t) 1) << wsize; /* How big does each part of the working memory pool need to be? */ const size_t table_limbs = welem * AN_limbs; const size_t select_limbs = AN_limbs; const size_t temp_limbs = 2 * AN_limbs + 1; - return( table_limbs + select_limbs + temp_limbs ); + return table_limbs + select_limbs + temp_limbs; } -static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - const mbedtls_mpi_uint *RR, - size_t welem, - mbedtls_mpi_uint *Wtable, - mbedtls_mpi_uint *temp ) +static void exp_mod_precompute_window(const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *RR, + size_t welem, + mbedtls_mpi_uint *Wtable, + mbedtls_mpi_uint *temp) { /* W[0] = 1 (in Montgomery presentation) */ - memset( Wtable, 0, AN_limbs * ciL ); + memset(Wtable, 0, AN_limbs * ciL); Wtable[0] = 1; - mbedtls_mpi_core_montmul( Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp ); + mbedtls_mpi_core_montmul(Wtable, Wtable, RR, AN_limbs, N, AN_limbs, mm, temp); /* W[1] = A (already in Montgomery presentation) */ mbedtls_mpi_uint *W1 = Wtable + AN_limbs; - memcpy( W1, A, AN_limbs * ciL ); + memcpy(W1, A, AN_limbs * ciL); /* W[i+1] = W[i] * W[1], i >= 2 */ mbedtls_mpi_uint *Wprev = W1; - for( size_t i = 2; i < welem; i++ ) - { + for (size_t i = 2; i < welem; i++) { mbedtls_mpi_uint *Wcur = Wprev + AN_limbs; - mbedtls_mpi_core_montmul( Wcur, Wprev, W1, AN_limbs, N, AN_limbs, mm, temp ); + mbedtls_mpi_core_montmul(Wcur, Wprev, W1, AN_limbs, N, AN_limbs, mm, temp); Wprev = Wcur; } } @@ -711,17 +697,17 @@ static void exp_mod_precompute_window( const mbedtls_mpi_uint *A, * (The difference is that the body in our loop processes a single bit instead * of a full window.) */ -void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - const mbedtls_mpi_uint *E, - size_t E_limbs, - const mbedtls_mpi_uint *RR, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_core_exp_mod(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *E, + size_t E_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T) { - const size_t wsize = exp_mod_get_window_size( E_limbs * biL ); - const size_t welem = ( (size_t) 1 ) << wsize; + const size_t wsize = exp_mod_get_window_size(E_limbs * biL); + const size_t welem = ((size_t) 1) << wsize; /* This is how we will use the temporary storage T, which must have space * for table_limbs, select_limbs and (2 * AN_limbs + 1) for montmul. */ @@ -737,19 +723,19 @@ void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, * Window precomputation */ - const mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N ); + const mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init(N); /* Set Wtable[i] = A^(2^i) (in Montgomery representation) */ - exp_mod_precompute_window( A, N, AN_limbs, - mm, RR, - welem, Wtable, temp ); + exp_mod_precompute_window(A, N, AN_limbs, + mm, RR, + welem, Wtable, temp); /* * Fixed window exponentiation */ /* X = 1 (in Montgomery presentation) initially */ - memcpy( X, Wtable, AN_limbs * ciL ); + memcpy(X, Wtable, AN_limbs * ciL); /* We'll process the bits of E from most significant * (limb_index=E_limbs-1, E_bit_index=biL-1) to least significant @@ -761,43 +747,37 @@ void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, size_t window_bits = 0; mbedtls_mpi_uint window = 0; - do - { + do { /* Square */ - mbedtls_mpi_core_montmul( X, X, X, AN_limbs, N, AN_limbs, mm, temp ); + mbedtls_mpi_core_montmul(X, X, X, AN_limbs, N, AN_limbs, mm, temp); /* Move to the next bit of the exponent */ - if( E_bit_index == 0 ) - { + if (E_bit_index == 0) { --E_limb_index; E_bit_index = biL - 1; - } - else - { + } else { --E_bit_index; } /* Insert next exponent bit into window */ ++window_bits; window <<= 1; - window |= ( E[E_limb_index] >> E_bit_index ) & 1; + window |= (E[E_limb_index] >> E_bit_index) & 1; /* Clear window if it's full. Also clear the window at the end, * when we've finished processing the exponent. */ - if( window_bits == wsize || - ( E_bit_index == 0 && E_limb_index == 0 ) ) - { + if (window_bits == wsize || + (E_bit_index == 0 && E_limb_index == 0)) { /* Select Wtable[window] without leaking window through * memory access patterns. */ - mbedtls_mpi_core_ct_uint_table_lookup( Wselect, Wtable, - AN_limbs, welem, window ); + mbedtls_mpi_core_ct_uint_table_lookup(Wselect, Wtable, + AN_limbs, welem, window); /* Multiply X by the selected element. */ - mbedtls_mpi_core_montmul( X, X, Wselect, AN_limbs, N, AN_limbs, mm, - temp ); + mbedtls_mpi_core_montmul(X, X, Wselect, AN_limbs, N, AN_limbs, mm, + temp); window = 0; window_bits = 0; } - } - while( ! ( E_bit_index == 0 && E_limb_index == 0 ) ); + } while (!(E_bit_index == 0 && E_limb_index == 0)); } /* END MERGE SLOT 1 */ @@ -808,54 +788,54 @@ void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, /* BEGIN MERGE SLOT 3 */ -mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - mbedtls_mpi_uint c, /* doubles as carry */ - size_t limbs ) +mbedtls_mpi_uint mbedtls_mpi_core_sub_int(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + mbedtls_mpi_uint c, /* doubles as carry */ + size_t limbs) { - for( size_t i = 0; i < limbs; i++ ) - { + for (size_t i = 0; i < limbs; i++) { mbedtls_mpi_uint s = A[i]; mbedtls_mpi_uint t = s - c; - c = ( t > s ); + c = (t > s); X[i] = t; } - return( c ); + return c; } -mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, - size_t limbs ) +mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct(const mbedtls_mpi_uint *A, + size_t limbs) { mbedtls_mpi_uint bits = 0; - for( size_t i = 0; i < limbs; i++ ) + for (size_t i = 0; i < limbs; i++) { bits |= A[i]; + } - return( bits ); + return bits; } -void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - const mbedtls_mpi_uint *rr, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_core_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *rr, + mbedtls_mpi_uint *T) { - mbedtls_mpi_core_montmul( X, A, rr, AN_limbs, N, AN_limbs, mm, T ); + mbedtls_mpi_core_montmul(X, A, rr, AN_limbs, N, AN_limbs, mm, T); } -void mbedtls_mpi_core_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_core_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T) { const mbedtls_mpi_uint Rinv = 1; /* 1/R in Mont. rep => 1 */ - mbedtls_mpi_core_montmul( X, A, &Rinv, 1, N, AN_limbs, mm, T ); + mbedtls_mpi_core_montmul(X, A, &Rinv, 1, N, AN_limbs, mm, T); } /* END MERGE SLOT 3 */ diff --git a/library/bignum_core.h b/library/bignum_core.h index 771f20802..44d5c5aad 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -86,19 +86,19 @@ #include "mbedtls/bignum.h" #endif -#define ciL ( sizeof(mbedtls_mpi_uint) ) /** chars in limb */ -#define biL ( ciL << 3 ) /** bits in limb */ -#define biH ( ciL << 2 ) /** half limb size */ +#define ciL (sizeof(mbedtls_mpi_uint)) /** chars in limb */ +#define biL (ciL << 3) /** bits in limb */ +#define biH (ciL << 2) /** half limb size */ /* * Convert between bits/chars and number of limbs * Divide first in order to avoid potential overflows */ -#define BITS_TO_LIMBS(i) ( (i) / biL + ( (i) % biL != 0 ) ) -#define CHARS_TO_LIMBS(i) ( (i) / ciL + ( (i) % ciL != 0 ) ) +#define BITS_TO_LIMBS(i) ((i) / biL + ((i) % biL != 0)) +#define CHARS_TO_LIMBS(i) ((i) / ciL + ((i) % ciL != 0)) /* Get a specific byte, without range checks. */ -#define GET_BYTE( X, i ) \ - ( ( (X)[(i) / ciL] >> ( ( (i) % ciL ) * 8 ) ) & 0xff ) +#define GET_BYTE(X, i) \ + (((X)[(i) / ciL] >> (((i) % ciL) * 8)) & 0xff) /** Count leading zero bits in a given integer. * @@ -106,7 +106,7 @@ * * \return The number of leading zero bits in \p a. */ -size_t mbedtls_mpi_core_clz( mbedtls_mpi_uint a ); +size_t mbedtls_mpi_core_clz(mbedtls_mpi_uint a); /** Return the minimum number of bits required to represent the value held * in the MPI. @@ -118,7 +118,7 @@ size_t mbedtls_mpi_core_clz( mbedtls_mpi_uint a ); * * \return The number of bits in \p A. */ -size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ); +size_t mbedtls_mpi_core_bitlen(const mbedtls_mpi_uint *A, size_t A_limbs); /** Convert a big-endian byte array aligned to the size of mbedtls_mpi_uint * into the storage form used by mbedtls_mpi. @@ -126,8 +126,8 @@ size_t mbedtls_mpi_core_bitlen( const mbedtls_mpi_uint *A, size_t A_limbs ); * \param[in,out] A The address of the MPI. * \param A_limbs The number of limbs of \p A. */ -void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, - size_t A_limbs ); +void mbedtls_mpi_core_bigendian_to_host(mbedtls_mpi_uint *A, + size_t A_limbs); /** \brief Compare a machine integer with an MPI. * @@ -141,9 +141,9 @@ void mbedtls_mpi_core_bigendian_to_host( mbedtls_mpi_uint *A, * * \return 1 if \p min is less than or equal to \p A, otherwise 0. */ -unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, - const mbedtls_mpi_uint *A, - size_t A_limbs ); +unsigned mbedtls_mpi_core_uint_le_mpi(mbedtls_mpi_uint min, + const mbedtls_mpi_uint *A, + size_t A_limbs); /** * \brief Perform a safe conditional copy of an MPI which doesn't reveal @@ -166,10 +166,10 @@ unsigned mbedtls_mpi_core_uint_le_mpi( mbedtls_mpi_uint min, * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p A. */ -void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - size_t limbs, - unsigned char assign ); +void mbedtls_mpi_core_cond_assign(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + size_t limbs, + unsigned char assign); /** * \brief Perform a safe conditional swap of two MPIs which doesn't reveal @@ -192,10 +192,10 @@ void mbedtls_mpi_core_cond_assign( mbedtls_mpi_uint *X, * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - size_t limbs, - unsigned char swap ); +void mbedtls_mpi_core_cond_swap(mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + size_t limbs, + unsigned char swap); /** Import X from unsigned binary data, little-endian. * @@ -211,10 +211,10 @@ void mbedtls_mpi_core_cond_swap( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't * large enough to hold the value in \p input. */ -int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, - size_t X_limbs, - const unsigned char *input, - size_t input_length ); +int mbedtls_mpi_core_read_le(mbedtls_mpi_uint *X, + size_t X_limbs, + const unsigned char *input, + size_t input_length); /** Import X from unsigned binary data, big-endian. * @@ -233,10 +233,10 @@ int mbedtls_mpi_core_read_le( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't * large enough to hold the value in \p input. */ -int mbedtls_mpi_core_read_be( mbedtls_mpi_uint *X, - size_t X_limbs, - const unsigned char *input, - size_t input_length ); +int mbedtls_mpi_core_read_be(mbedtls_mpi_uint *X, + size_t X_limbs, + const unsigned char *input, + size_t input_length); /** Export A into unsigned binary data, little-endian. * @@ -253,10 +253,10 @@ int mbedtls_mpi_core_read_be( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p output isn't * large enough to hold the value of \p A. */ -int mbedtls_mpi_core_write_le( const mbedtls_mpi_uint *A, - size_t A_limbs, - unsigned char *output, - size_t output_length ); +int mbedtls_mpi_core_write_le(const mbedtls_mpi_uint *A, + size_t A_limbs, + unsigned char *output, + size_t output_length); /** Export A into unsigned binary data, big-endian. * @@ -273,10 +273,10 @@ int mbedtls_mpi_core_write_le( const mbedtls_mpi_uint *A, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p output isn't * large enough to hold the value of \p A. */ -int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, - size_t A_limbs, - unsigned char *output, - size_t output_length ); +int mbedtls_mpi_core_write_be(const mbedtls_mpi_uint *A, + size_t A_limbs, + unsigned char *output, + size_t output_length); /** \brief Shift an MPI right in place by a number of bits. * @@ -290,8 +290,8 @@ int mbedtls_mpi_core_write_be( const mbedtls_mpi_uint *A, * \param limbs The number of limbs of \p X. This must be at least 1. * \param count The number of bits to shift by. */ -void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, - size_t count ); +void mbedtls_mpi_core_shift_r(mbedtls_mpi_uint *X, size_t limbs, + size_t count); /** * \brief Add two fixed-size large unsigned integers, returning the carry. @@ -310,10 +310,10 @@ void mbedtls_mpi_core_shift_r( mbedtls_mpi_uint *X, size_t limbs, * * \return 1 if `A + B >= 2^(biL*limbs)`, 0 otherwise. */ -mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ); +mbedtls_mpi_uint mbedtls_mpi_core_add(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs); /** * \brief Conditional addition of two fixed-size large unsigned integers, @@ -345,10 +345,10 @@ mbedtls_mpi_uint mbedtls_mpi_core_add( mbedtls_mpi_uint *X, * * \return 1 if `X + cond * A >= 2^(biL*limbs)`, 0 otherwise. */ -mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - size_t limbs, - unsigned cond ); +mbedtls_mpi_uint mbedtls_mpi_core_add_if(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + size_t limbs, + unsigned cond); /** * \brief Subtract two fixed-size large unsigned integers, returning the borrow. @@ -368,10 +368,10 @@ mbedtls_mpi_uint mbedtls_mpi_core_add_if( mbedtls_mpi_uint *X, * \return 1 if `A < B`. * 0 if `A >= B`. */ -mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ); +mbedtls_mpi_uint mbedtls_mpi_core_sub(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs); /** * \brief Perform a fixed-size multiply accumulate operation: X += b * A @@ -394,9 +394,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X, * * \return The carry at the end of the operation. */ -mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *X, size_t X_limbs, - const mbedtls_mpi_uint *A, size_t A_limbs, - mbedtls_mpi_uint b ); +mbedtls_mpi_uint mbedtls_mpi_core_mla(mbedtls_mpi_uint *X, size_t X_limbs, + const mbedtls_mpi_uint *A, size_t A_limbs, + mbedtls_mpi_uint b); /** * \brief Calculate initialisation value for fast Montgomery modular @@ -407,7 +407,7 @@ mbedtls_mpi_uint mbedtls_mpi_core_mla( mbedtls_mpi_uint *X, size_t X_limbs, * * \return The initialisation value for fast Montgomery modular multiplication */ -mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); +mbedtls_mpi_uint mbedtls_mpi_core_montmul_init(const mbedtls_mpi_uint *N); /** * \brief Montgomery multiplication: X = A * B * R^-1 mod N (HAC 14.36) @@ -444,11 +444,11 @@ mbedtls_mpi_uint mbedtls_mpi_core_montmul_init( const mbedtls_mpi_uint *N ); * It must not alias or otherwise overlap any of the * other parameters. */ -void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, size_t B_limbs, - const mbedtls_mpi_uint *N, size_t AN_limbs, - mbedtls_mpi_uint mm, mbedtls_mpi_uint *T ); +void mbedtls_mpi_core_montmul(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, size_t B_limbs, + const mbedtls_mpi_uint *N, size_t AN_limbs, + mbedtls_mpi_uint mm, mbedtls_mpi_uint *T); /** * \brief Calculate the square of the Montgomery constant. (Needed @@ -465,8 +465,8 @@ void mbedtls_mpi_core_montmul( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_DIVISION_BY_ZERO if \p N modulus is zero. * \return #MBEDTLS_ERR_MPI_NEGATIVE_VALUE if \p N modulus is negative. */ -int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, - const mbedtls_mpi *N ); +int mbedtls_mpi_core_get_mont_r2_unsafe(mbedtls_mpi *X, + const mbedtls_mpi *N); #if defined(MBEDTLS_TEST_HOOKS) /** @@ -481,11 +481,11 @@ int mbedtls_mpi_core_get_mont_r2_unsafe( mbedtls_mpi *X, * \param index The (secret) table index to look up. This must be in the * range `0 .. count-1`. */ -void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *table, - size_t limbs, - size_t count, - size_t index ); +void mbedtls_mpi_core_ct_uint_table_lookup(mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *table, + size_t limbs, + size_t count, + size_t index); #endif /* MBEDTLS_TEST_HOOKS */ /** @@ -507,10 +507,10 @@ void mbedtls_mpi_core_ct_uint_table_lookup( mbedtls_mpi_uint *dest, * as a big-endian representation of an MPI; this can * be relevant in applications like deterministic ECDSA. */ -int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, - size_t bytes, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_core_fill_random(mbedtls_mpi_uint *X, size_t X_limbs, + size_t bytes, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** Generate a random number uniformly in a range. * @@ -542,12 +542,12 @@ int mbedtls_mpi_core_fill_random( mbedtls_mpi_uint *X, size_t X_limbs, * is significantly larger than \p min, which is the case * for all usual cryptographic applications. */ -int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_uint *N, - size_t limbs, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_core_random(mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_uint *N, + size_t limbs, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /* BEGIN MERGE SLOT 1 */ @@ -568,7 +568,7 @@ int mbedtls_mpi_core_random( mbedtls_mpi_uint *X, * \return The number of limbs of working memory required by * `mbedtls_mpi_core_exp_mod()`. */ -size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ); +size_t mbedtls_mpi_core_exp_mod_working_limbs(size_t AN_limbs, size_t E_limbs); /** * \brief Perform a modular exponentiation with secret exponent: @@ -597,12 +597,12 @@ size_t mbedtls_mpi_core_exp_mod_working_limbs( size_t AN_limbs, size_t E_limbs ) * longer needed, and before freeing it if it was dynamically * allocated. */ -void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, size_t AN_limbs, - const mbedtls_mpi_uint *E, size_t E_limbs, - const mbedtls_mpi_uint *RR, - mbedtls_mpi_uint *T ); +void mbedtls_mpi_core_exp_mod(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, size_t AN_limbs, + const mbedtls_mpi_uint *E, size_t E_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T); /* END MERGE SLOT 1 */ @@ -624,10 +624,10 @@ void mbedtls_mpi_core_exp_mod( mbedtls_mpi_uint *X, * \return 1 if `A < b`. * 0 if `A >= b`. */ -mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - mbedtls_mpi_uint b, - size_t limbs ); +mbedtls_mpi_uint mbedtls_mpi_core_sub_int(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + mbedtls_mpi_uint b, + size_t limbs); /** * \brief Determine if a given MPI has the value \c 0 in constant time with @@ -639,8 +639,8 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub_int( mbedtls_mpi_uint *X, * \return 0 if `A == 0` * non-0 (may be any value) if `A != 0`. */ -mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, - size_t limbs ); +mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct(const mbedtls_mpi_uint *A, + size_t limbs); /** * \brief Returns the number of limbs of working memory required for @@ -654,9 +654,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_check_zero_ct( const mbedtls_mpi_uint *A, * \return The number of limbs of working memory required by * `mbedtls_mpi_core_montmul()` (or other similar function). */ -static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) +static inline size_t mbedtls_mpi_core_montmul_working_limbs(size_t AN_limbs) { - return( 2 * AN_limbs + 1 ); + return 2 * AN_limbs + 1; } /** Convert an MPI into Montgomery form. @@ -690,13 +690,13 @@ static inline size_t mbedtls_mpi_core_montmul_working_limbs( size_t AN_limbs ) * It must not alias or otherwise overlap any of the * other parameters. */ -void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - const mbedtls_mpi_uint *rr, - mbedtls_mpi_uint *T ); +void mbedtls_mpi_core_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + const mbedtls_mpi_uint *rr, + mbedtls_mpi_uint *T); /** Convert an MPI from Montgomery form. * @@ -727,12 +727,12 @@ void mbedtls_mpi_core_to_mont_rep( mbedtls_mpi_uint *X, * It must not alias or otherwise overlap any of the * other parameters. */ -void mbedtls_mpi_core_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - mbedtls_mpi_uint mm, - mbedtls_mpi_uint *T ); +void mbedtls_mpi_core_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + mbedtls_mpi_uint mm, + mbedtls_mpi_uint *T); /* END MERGE SLOT 3 */ diff --git a/library/bignum_mod.c b/library/bignum_mod.c index bd67241eb..e701a686d 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -34,33 +34,36 @@ #include "bignum_mod_raw.h" #include "constant_time_internal.h" -int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_uint *p, - size_t p_limbs ) +int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + mbedtls_mpi_uint *p, + size_t p_limbs) { - if( p_limbs != m->limbs || !mbedtls_mpi_core_lt_ct( p, m->p, m->limbs ) ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (p_limbs != m->limbs || !mbedtls_mpi_core_lt_ct(p, m->p, m->limbs)) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } r->limbs = m->limbs; r->p = p; - return( 0 ); + return 0; } -void mbedtls_mpi_mod_residue_release( mbedtls_mpi_mod_residue *r ) +void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r) { - if( r == NULL ) + if (r == NULL) { return; + } r->limbs = 0; r->p = NULL; } -void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ) +void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *m) { - if( m == NULL ) + if (m == NULL) { return; + } m->p = NULL; m->limbs = 0; @@ -68,25 +71,24 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ) m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } -void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) +void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *m) { - if( m == NULL ) + if (m == NULL) { return; + } - switch( m->int_rep ) - { + switch (m->int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - if (m->rep.mont.rr != NULL) - { - mbedtls_platform_zeroize( (mbedtls_mpi_uint *) m->rep.mont.rr, - m->limbs * sizeof(mbedtls_mpi_uint) ); - mbedtls_free( (mbedtls_mpi_uint *)m->rep.mont.rr ); + if (m->rep.mont.rr != NULL) { + mbedtls_platform_zeroize((mbedtls_mpi_uint *) m->rep.mont.rr, + m->limbs * sizeof(mbedtls_mpi_uint)); + mbedtls_free((mbedtls_mpi_uint *) m->rep.mont.rr); m->rep.mont.rr = NULL; } m->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: - mbedtls_free( m->rep.ored ); + mbedtls_free(m->rep.ored); break; case MBEDTLS_MPI_MOD_REP_INVALID: break; @@ -98,30 +100,31 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ) m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } -static int set_mont_const_square( const mbedtls_mpi_uint **X, - const mbedtls_mpi_uint *A, - size_t limbs ) +static int set_mont_const_square(const mbedtls_mpi_uint **X, + const mbedtls_mpi_uint *A, + size_t limbs) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi N; mbedtls_mpi RR; *X = NULL; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&RR); - if( A == NULL || limbs == 0 || limbs >= ( MBEDTLS_MPI_MAX_LIMBS / 2 ) - 2 ) + if (A == NULL || limbs == 0 || limbs >= (MBEDTLS_MPI_MAX_LIMBS / 2) - 2) { goto cleanup; + } - if( mbedtls_mpi_grow( &N, limbs ) ) + if (mbedtls_mpi_grow(&N, limbs)) { goto cleanup; + } - memcpy( N.p, A, sizeof(mbedtls_mpi_uint) * limbs ); + memcpy(N.p, A, sizeof(mbedtls_mpi_uint) * limbs); ret = mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N); - if( ret == 0 ) - { + if (ret == 0) { *X = RR.p; RR.p = NULL; } @@ -129,27 +132,26 @@ static int set_mont_const_square( const mbedtls_mpi_uint **X, cleanup: mbedtls_mpi_free(&N); mbedtls_mpi_free(&RR); - ret = ( ret != 0 ) ? MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED : 0; - return( ret ); + ret = (ret != 0) ? MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED : 0; + return ret; } -int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep ) +int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep) { int ret = 0; m->p = p; m->limbs = p_limbs; - m->bits = mbedtls_mpi_core_bitlen( p, p_limbs ); + m->bits = mbedtls_mpi_core_bitlen(p, p_limbs); - switch( int_rep ) - { + switch (int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: m->int_rep = int_rep; - m->rep.mont.mm = mbedtls_mpi_core_montmul_init( m->p ); - ret = set_mont_const_square( &m->rep.mont.rr, m->p, m->limbs ); + m->rep.mont.mm = mbedtls_mpi_core_montmul_init(m->p); + ret = set_mont_const_square(&m->rep.mont.rr, m->p, m->limbs); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: m->int_rep = int_rep; @@ -162,12 +164,11 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, exit: - if( ret != 0 ) - { - mbedtls_mpi_mod_modulus_free( m ); + if (ret != 0) { + mbedtls_mpi_mod_modulus_free(m); } - return( ret ); + return ret; } /* BEGIN MERGE SLOT 1 */ @@ -176,129 +177,135 @@ exit: /* BEGIN MERGE SLOT 2 */ -int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_mul(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N) { - if( N->limbs == 0 ) + if (N->limbs == 0) { return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) + if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - mbedtls_mpi_uint *T = mbedtls_calloc( N->limbs * 2 + 1, ciL ); - if( T == NULL ) + mbedtls_mpi_uint *T = mbedtls_calloc(N->limbs * 2 + 1, ciL); + if (T == NULL) { return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - mbedtls_mpi_mod_raw_mul( X->p, A->p, B->p, N, T ); + mbedtls_mpi_mod_raw_mul(X->p, A->p, B->p, N, T); - mbedtls_free( T ); + mbedtls_free(T); - return( 0 ); + return 0; } /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ -int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_sub(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N) { - if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - mbedtls_mpi_mod_raw_sub( X->p, A->p, B->p, N ); + mbedtls_mpi_mod_raw_sub(X->p, A->p, B->p, N); - return( 0 ); + return 0; } -static int mbedtls_mpi_mod_inv_mont( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *working_memory ) +static int mbedtls_mpi_mod_inv_mont(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *working_memory) { /* Input already in Montgomery form, so there's little to do */ - mbedtls_mpi_mod_raw_inv_prime( X->p, A->p, - N->p, N->limbs, - N->rep.mont.rr, - working_memory ); - return( 0 ); + mbedtls_mpi_mod_raw_inv_prime(X->p, A->p, + N->p, N->limbs, + N->rep.mont.rr, + working_memory); + return 0; } -static int mbedtls_mpi_mod_inv_non_mont( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *working_memory ) +static int mbedtls_mpi_mod_inv_non_mont(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *working_memory) { /* Need to convert input into Montgomery form */ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi_mod_modulus Nmont; - mbedtls_mpi_mod_modulus_init( &Nmont ); + mbedtls_mpi_mod_modulus_init(&Nmont); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_modulus_setup( &Nmont, N->p, N->limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_modulus_setup(&Nmont, N->p, N->limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); /* We'll use X->p to hold the Montgomery form of the input A->p */ - mbedtls_mpi_core_to_mont_rep( X->p, A->p, Nmont.p, Nmont.limbs, - Nmont.rep.mont.mm, Nmont.rep.mont.rr, - working_memory ); + mbedtls_mpi_core_to_mont_rep(X->p, A->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, Nmont.rep.mont.rr, + working_memory); - mbedtls_mpi_mod_raw_inv_prime( X->p, X->p, - Nmont.p, Nmont.limbs, - Nmont.rep.mont.rr, - working_memory ); + mbedtls_mpi_mod_raw_inv_prime(X->p, X->p, + Nmont.p, Nmont.limbs, + Nmont.rep.mont.rr, + working_memory); /* And convert back from Montgomery form */ - mbedtls_mpi_core_from_mont_rep( X->p, X->p, Nmont.p, Nmont.limbs, - Nmont.rep.mont.mm, working_memory ); + mbedtls_mpi_core_from_mont_rep(X->p, X->p, Nmont.p, Nmont.limbs, + Nmont.rep.mont.mm, working_memory); cleanup: - mbedtls_mpi_mod_modulus_free( &Nmont ); - return( ret ); + mbedtls_mpi_mod_modulus_free(&Nmont); + return ret; } -int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_inv(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N) { - if( X->limbs != N->limbs || A->limbs != N->limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (X->limbs != N->limbs || A->limbs != N->limbs) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } /* Zero has the same value regardless of Montgomery form or not */ - if( mbedtls_mpi_core_check_zero_ct( A->p, A->limbs ) == 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_core_check_zero_ct(A->p, A->limbs) == 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } size_t working_limbs = - mbedtls_mpi_mod_raw_inv_prime_working_limbs( N->limbs ); + mbedtls_mpi_mod_raw_inv_prime_working_limbs(N->limbs); - mbedtls_mpi_uint *working_memory = mbedtls_calloc( working_limbs, - sizeof(mbedtls_mpi_uint) ); - if( working_memory == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + mbedtls_mpi_uint *working_memory = mbedtls_calloc(working_limbs, + sizeof(mbedtls_mpi_uint)); + if (working_memory == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch( N->int_rep ) - { + switch (N->int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - ret = mbedtls_mpi_mod_inv_mont( X, A, N, working_memory ); + ret = mbedtls_mpi_mod_inv_mont(X, A, N, working_memory); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: - ret = mbedtls_mpi_mod_inv_non_mont( X, A, N, working_memory ); + ret = mbedtls_mpi_mod_inv_non_mont(X, A, N, working_memory); break; default: ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; break; } - mbedtls_platform_zeroize( working_memory, - working_limbs * sizeof(mbedtls_mpi_uint) ); - mbedtls_free( working_memory ); + mbedtls_platform_zeroize(working_memory, + working_limbs * sizeof(mbedtls_mpi_uint)); + mbedtls_free(working_memory); return ret; } @@ -309,99 +316,106 @@ int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ -int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_add(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N) { - if( X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } mbedtls_mpi_mod_raw_add(X->p, A->p, B->p, N); - return( 0 ); + return 0; } /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ -int mbedtls_mpi_mod_random( mbedtls_mpi_mod_residue *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_mod_modulus *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - if( X->limbs != N->limbs ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - return( mbedtls_mpi_mod_raw_random( X->p, min, N, f_rng, p_rng ) ); + if (X->limbs != N->limbs) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } + return mbedtls_mpi_mod_raw_random(X->p, min, N, f_rng, p_rng); } /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; /* Do our best to check if r and m have been set up */ - if( r->limbs == 0 || m->limbs == 0 ) + if (r->limbs == 0 || m->limbs == 0) { goto cleanup; - if( r->limbs != m->limbs ) + } + if (r->limbs != m->limbs) { goto cleanup; + } - ret = mbedtls_mpi_mod_raw_read( r->p, m, buf, buflen, ext_rep ); - if( ret != 0 ) + ret = mbedtls_mpi_mod_raw_read(r->p, m, buf, buflen, ext_rep); + if (ret != 0) { goto cleanup; + } r->limbs = m->limbs; - ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep( r->p, m ); + ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep(r->p, m); cleanup: - return ( ret ); + return ret; } -int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; /* Do our best to check if r and m have been set up */ - if( r->limbs == 0 || m->limbs == 0 ) + if (r->limbs == 0 || m->limbs == 0) { goto cleanup; - if( r->limbs != m->limbs ) + } + if (r->limbs != m->limbs) { goto cleanup; - - if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - { - ret = mbedtls_mpi_mod_raw_from_mont_rep( r->p, m ); - if( ret != 0 ) - goto cleanup; } - ret = mbedtls_mpi_mod_raw_write( r->p, m, buf, buflen, ext_rep ); + if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { + ret = mbedtls_mpi_mod_raw_from_mont_rep(r->p, m); + if (ret != 0) { + goto cleanup; + } + } - if( m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - { + ret = mbedtls_mpi_mod_raw_write(r->p, m, buf, buflen, ext_rep); + + if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { /* If this fails, the value of r is corrupted and we want to return * this error (as opposed to the error code from the write above) to * let the caller know. If it succeeds, we want to return the error * code from write above. */ - int conv_ret = mbedtls_mpi_mod_raw_to_mont_rep( r->p, m ); - if( ret == 0 ) + int conv_ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m); + if (ret == 0) { ret = conv_ret; + } } cleanup: - return ( ret ); + return ret; } /* END MERGE SLOT 7 */ diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 1b1e920a9..0a22e713a 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -92,8 +92,7 @@ * This also determines which fields of the modulus structure are valid and * what their contents are (see #mbedtls_mpi_mod_modulus). */ -typedef enum -{ +typedef enum { /** Representation not chosen (makes the modulus structure invalid). */ MBEDTLS_MPI_MOD_REP_INVALID = 0, /* Skip 1 as it is slightly easier to accidentally pass to functions. */ @@ -108,15 +107,13 @@ typedef enum /* Make mbedtls_mpi_mod_rep_selector and mbedtls_mpi_mod_ext_rep disjoint to * make it easier to catch when they are accidentally swapped. */ -typedef enum -{ +typedef enum { MBEDTLS_MPI_MOD_EXT_REP_INVALID = 0, MBEDTLS_MPI_MOD_EXT_REP_LE = 8, MBEDTLS_MPI_MOD_EXT_REP_BE } mbedtls_mpi_mod_ext_rep; -typedef struct -{ +typedef struct { mbedtls_mpi_uint *p; size_t limbs; } mbedtls_mpi_mod_residue; @@ -133,8 +130,7 @@ typedef struct { size_t limbs; // number of limbs size_t bits; // bitlen of p mbedtls_mpi_mod_rep_selector int_rep; // selector to signal the active member of the union - union rep - { + union rep { /* if int_rep == #MBEDTLS_MPI_MOD_REP_MONTGOMERY */ mbedtls_mpi_mont_struct mont; /* if int_rep == #MBEDTLS_MPI_MOD_REP_OPT_RED */ @@ -170,10 +166,10 @@ typedef struct { * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the * limbs in \p m or if \p p is not less than \p m. */ -int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_uint *p, - size_t p_limbs ); +int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + mbedtls_mpi_uint *p, + size_t p_limbs); /** Unbind elements of a residue structure. * @@ -185,13 +181,13 @@ int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, * * \param[out] r The address of residue to release. */ -void mbedtls_mpi_mod_residue_release( mbedtls_mpi_mod_residue *r ); +void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r); /** Initialize a modulus structure. * * \param[out] m The address of the modulus structure to initialize. */ -void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ); +void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *m); /** Setup a modulus structure. * @@ -207,10 +203,10 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *m ); * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p int_rep is invalid. */ -int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep ); +int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *m, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep); /** Free elements of a modulus structure. * @@ -222,7 +218,7 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *m, * * \param[in,out] m The address of the modulus structure to free. */ -void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); +void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *m); /* BEGIN MERGE SLOT 1 */ @@ -259,10 +255,10 @@ void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *m ); * have the same number of limbs or \p N is invalid. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. */ -int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_mul(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N); /* END MERGE SLOT 2 */ @@ -292,10 +288,10 @@ int mbedtls_mpi_mod_mul( mbedtls_mpi_mod_residue *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the given MPIs do not * have the correct number of limbs. */ -int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_sub(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N); /** * \brief Perform modular inversion of an MPI with respect to a modulus \p N. @@ -322,9 +318,9 @@ int mbedtls_mpi_mod_sub( mbedtls_mpi_mod_residue *X, * by the inversion calculation itself). */ -int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_inv(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_modulus *N); /* END MERGE SLOT 3 */ /* BEGIN MERGE SLOT 4 */ @@ -358,10 +354,10 @@ int mbedtls_mpi_mod_inv( mbedtls_mpi_mod_residue *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the given MPIs do not * have the correct number of limbs. */ -int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, - const mbedtls_mpi_mod_residue *A, - const mbedtls_mpi_mod_residue *B, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_add(mbedtls_mpi_mod_residue *X, + const mbedtls_mpi_mod_residue *A, + const mbedtls_mpi_mod_residue *B, + const mbedtls_mpi_mod_modulus *N); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ @@ -393,11 +389,11 @@ int mbedtls_mpi_mod_add( mbedtls_mpi_mod_residue *X, * is significantly larger than \p min, which is the case * for all usual cryptographic applications. */ -int mbedtls_mpi_mod_random( mbedtls_mpi_mod_residue *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_mod_modulus *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /* END MERGE SLOT 6 */ @@ -425,11 +421,11 @@ int mbedtls_mpi_mod_random( mbedtls_mpi_mod_residue *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep * is invalid or the value in the buffer is not less than \p m. */ -int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep); /** Write a residue into a byte buffer. * @@ -463,11 +459,11 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * memory for conversion. Can occur only for moduli with * MBEDTLS_MPI_MOD_REP_MONTGOMERY. */ -int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 18599c353..aa2bd46cc 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -33,74 +33,72 @@ #include "bignum_mod.h" #include "constant_time_internal.h" -void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *N, - unsigned char assign ) +void mbedtls_mpi_mod_raw_cond_assign(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char assign) { - mbedtls_mpi_core_cond_assign( X, A, N->limbs, assign ); + mbedtls_mpi_core_cond_assign(X, A, N->limbs, assign); } -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *N, - unsigned char swap ) +void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, + unsigned char swap) { - mbedtls_mpi_core_cond_swap( X, Y, N->limbs, swap ); + mbedtls_mpi_core_cond_swap(X, Y, N->limbs, swap); } -int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch( ext_rep ) - { + switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - ret = mbedtls_mpi_core_read_le( X, m->limbs, - input, input_length ); + ret = mbedtls_mpi_core_read_le(X, m->limbs, + input, input_length); break; case MBEDTLS_MPI_MOD_EXT_REP_BE: - ret = mbedtls_mpi_core_read_be( X, m->limbs, - input, input_length ); + ret = mbedtls_mpi_core_read_be(X, m->limbs, + input, input_length); break; default: - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - if( ret != 0 ) + if (ret != 0) { goto cleanup; + } - if( !mbedtls_mpi_core_lt_ct( X, m->p, m->limbs ) ) - { + if (!mbedtls_mpi_core_lt_ct(X, m->p, m->limbs)) { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } cleanup: - return( ret ); + return ret; } -int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep) { - switch( ext_rep ) - { + switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - return( mbedtls_mpi_core_write_le( A, m->limbs, - output, output_length ) ); + return mbedtls_mpi_core_write_le(A, m->limbs, + output, output_length); case MBEDTLS_MPI_MOD_EXT_REP_BE: - return( mbedtls_mpi_core_write_be( A, m->limbs, - output, output_length ) ); + return mbedtls_mpi_core_write_be(A, m->limbs, + output, output_length); default: - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } } @@ -110,45 +108,45 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, /* BEGIN MERGE SLOT 2 */ -void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N ) +void mbedtls_mpi_mod_raw_sub(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N) { - mbedtls_mpi_uint c = mbedtls_mpi_core_sub( X, A, B, N->limbs ); + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, A, B, N->limbs); - (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned) c ); + (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); } -void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *T) { - mbedtls_mpi_core_montmul( X, A, B, N->limbs, N->p, N->limbs, - N->rep.mont.mm, T ); + mbedtls_mpi_core_montmul(X, A, B, N->limbs, N->p, N->limbs, + N->rep.mont.mm, T); } /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ -size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs( size_t AN_limbs ) +size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs(size_t AN_limbs) { /* mbedtls_mpi_mod_raw_inv_prime() needs a temporary for the exponent, * which will be the same size as the modulus and input (AN_limbs), * and additional space to pass to mbedtls_mpi_core_exp_mod(). */ - return( AN_limbs + - mbedtls_mpi_core_exp_mod_working_limbs( AN_limbs, AN_limbs ) ); + return AN_limbs + + mbedtls_mpi_core_exp_mod_working_limbs(AN_limbs, AN_limbs); } -void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - const mbedtls_mpi_uint *RR, - mbedtls_mpi_uint *T ) +void mbedtls_mpi_mod_raw_inv_prime(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T) { /* Inversion by power: g^|G| = 1 => g^(-1) = g^(|G|-1), and * |G| = N - 1, so we want @@ -157,12 +155,12 @@ void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, /* Use the first AN_limbs of T to hold N - 2 */ mbedtls_mpi_uint *Nminus2 = T; - (void) mbedtls_mpi_core_sub_int( Nminus2, N, 2, AN_limbs ); + (void) mbedtls_mpi_core_sub_int(Nminus2, N, 2, AN_limbs); /* Rest of T is given to exp_mod for its working space */ - mbedtls_mpi_core_exp_mod( X, - A, N, AN_limbs, Nminus2, AN_limbs, - RR, T + AN_limbs ); + mbedtls_mpi_core_exp_mod(X, + A, N, AN_limbs, Nminus2, AN_limbs, + RR, T + AN_limbs); } /* END MERGE SLOT 3 */ @@ -172,15 +170,15 @@ void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, /* END MERGE SLOT 4 */ /* BEGIN MERGE SLOT 5 */ -void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N ) +void mbedtls_mpi_mod_raw_add(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N) { mbedtls_mpi_uint carry, borrow; - carry = mbedtls_mpi_core_add( X, A, B, N->limbs ); - borrow = mbedtls_mpi_core_sub( X, X, N->p, N->limbs ); - (void) mbedtls_mpi_core_add_if( X, N->p, N->limbs, (unsigned) ( carry ^ borrow ) ); + carry = mbedtls_mpi_core_add(X, A, B, N->limbs); + borrow = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); + (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) (carry ^ borrow)); } /* END MERGE SLOT 5 */ @@ -188,92 +186,93 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ) + const mbedtls_mpi_mod_modulus *N) { - switch( N->int_rep ) - { + switch (N->int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - return( mbedtls_mpi_mod_raw_to_mont_rep( X, N ) ); + return mbedtls_mpi_mod_raw_to_mont_rep(X, N); case MBEDTLS_MPI_MOD_REP_OPT_RED: - return( 0 ); + return 0; default: - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } } int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ) + const mbedtls_mpi_mod_modulus *N) { - switch( N->int_rep ) - { + switch (N->int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - return( mbedtls_mpi_mod_raw_from_mont_rep( X, N ) ); + return mbedtls_mpi_mod_raw_from_mont_rep(X, N); case MBEDTLS_MPI_MOD_REP_OPT_RED: - return( 0 ); + return 0; default: - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } } -int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_mod_modulus *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - int ret = mbedtls_mpi_core_random( X, min, N->p, N->limbs, f_rng, p_rng ); - if( ret != 0 ) - return( ret ); - return( mbedtls_mpi_mod_raw_canonical_to_modulus_rep( X, N ) ); + int ret = mbedtls_mpi_core_random(X, min, N->p, N->limbs, f_rng, p_rng); + if (ret != 0) { + return ret; + } + return mbedtls_mpi_mod_raw_canonical_to_modulus_rep(X, N); } /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m ) +int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m) { mbedtls_mpi_uint *T; - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( m->limbs ); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(m->limbs); - if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - mbedtls_mpi_core_to_mont_rep( X, X, m->p, m->limbs, - m->rep.mont.mm, m->rep.mont.rr, T ); + mbedtls_mpi_core_to_mont_rep(X, X, m->p, m->limbs, + m->rep.mont.mm, m->rep.mont.rr, T); - mbedtls_platform_zeroize( T, t_limbs * ciL ); - mbedtls_free( T ); - return( 0 ); + mbedtls_platform_zeroize(T, t_limbs * ciL); + mbedtls_free(T); + return 0; } -int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m ) +int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m) { - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( m->limbs ); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(m->limbs); mbedtls_mpi_uint *T; - if( ( T = (mbedtls_mpi_uint *) mbedtls_calloc( t_limbs, ciL ) ) == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - mbedtls_mpi_core_from_mont_rep( X, X, m->p, m->limbs, m->rep.mont.mm, T ); + mbedtls_mpi_core_from_mont_rep(X, X, m->p, m->limbs, m->rep.mont.mm, T); - mbedtls_platform_zeroize( T, t_limbs * ciL ); - mbedtls_free( T ); - return( 0 ); + mbedtls_platform_zeroize(T, t_limbs * ciL); + mbedtls_free(T); + return 0; } -void mbedtls_mpi_mod_raw_neg( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m ) +void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m) { - mbedtls_mpi_core_sub( X, m->p, A, m->limbs ); + mbedtls_mpi_core_sub(X, m->p, A, m->limbs); /* If A=0 initially, then X=N now. Detect this by * subtracting N and catching the carry. */ - mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub( X, X, m->p, m->limbs ); - (void) mbedtls_mpi_core_add_if( X, m->p, m->limbs, (unsigned) borrow ); + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub(X, X, m->p, m->limbs); + (void) mbedtls_mpi_core_add_if(X, m->p, m->limbs, (unsigned) borrow); } /* END MERGE SLOT 7 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index ea3207fa4..da8db6f33 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -109,10 +109,10 @@ * is indeterminate, and the resulting value in \p X might be * neither its original value nor the value in \p A. */ -void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *N, - unsigned char assign ); +void mbedtls_mpi_mod_raw_cond_assign(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char assign); /** * \brief Perform a safe conditional swap of two MPIs which doesn't reveal @@ -135,10 +135,10 @@ void mbedtls_mpi_mod_raw_cond_assign( mbedtls_mpi_uint *X, * is indeterminate, and both \p X and \p Y might end up with * values different to either of the original ones. */ -void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, - mbedtls_mpi_uint *Y, - const mbedtls_mpi_mod_modulus *N, - unsigned char swap ); +void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, + mbedtls_mpi_uint *Y, + const mbedtls_mpi_mod_modulus *N, + unsigned char swap); /** Import X from unsigned binary data. * @@ -159,11 +159,11 @@ void mbedtls_mpi_mod_raw_cond_swap( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation * of \p m is invalid or \p X is not less than \p m. */ -int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep); /** Export A into unsigned binary data. * @@ -181,11 +181,11 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation * of \p m is invalid. */ -int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep); /* BEGIN MERGE SLOT 1 */ @@ -210,10 +210,10 @@ int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, * \param[in] N The address of the modulus. Used to perform a modulo * operation on the result of the subtraction. */ -void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N ); +void mbedtls_mpi_mod_raw_sub(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N); /** \brief Multiply two MPIs, returning the residue modulo the specified * modulus. @@ -244,11 +244,11 @@ void mbedtls_mpi_mod_raw_sub( mbedtls_mpi_uint *X, * It must not alias or otherwise overlap any of the * other parameters. */ -void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *T ); +void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *T); /* END MERGE SLOT 2 */ @@ -269,7 +269,7 @@ void mbedtls_mpi_mod_raw_mul( mbedtls_mpi_uint *X, * \return The number of limbs of working memory required by * `mbedtls_mpi_mod_raw_inv_prime()`. */ -size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs( size_t AN_limbs ); +size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs(size_t AN_limbs); /** * \brief Perform fixed-width modular inversion of a Montgomery-form MPI with @@ -296,12 +296,12 @@ size_t mbedtls_mpi_mod_raw_inv_prime_working_limbs( size_t AN_limbs ); * longer needed, and before freeing it if it was dynamically * allocated. */ -void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *N, - size_t AN_limbs, - const mbedtls_mpi_uint *RR, - mbedtls_mpi_uint *T ); +void mbedtls_mpi_mod_raw_inv_prime(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *N, + size_t AN_limbs, + const mbedtls_mpi_uint *RR, + mbedtls_mpi_uint *T); /* END MERGE SLOT 3 */ @@ -328,10 +328,10 @@ void mbedtls_mpi_mod_raw_inv_prime( mbedtls_mpi_uint *X, * must be smaller than \p N. * \param[in] N The address of the modulus. */ -void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N ); +void mbedtls_mpi_mod_raw_add(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N); /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ @@ -351,7 +351,7 @@ void mbedtls_mpi_mod_raw_add( mbedtls_mpi_uint *X, */ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ); + const mbedtls_mpi_mod_modulus *N); /** Convert an MPI from the representation associated with the modulus * to canonical representation (little-endian limb array). @@ -368,7 +368,7 @@ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( */ int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ); + const mbedtls_mpi_mod_modulus *N); /** Generate a random number uniformly in a range. * @@ -398,11 +398,11 @@ int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( * is significantly larger than \p min, which is the case * for all usual cryptographic applications. */ -int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, - mbedtls_mpi_uint min, - const mbedtls_mpi_mod_modulus *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, + mbedtls_mpi_uint min, + const mbedtls_mpi_mod_modulus *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /* END MERGE SLOT 6 */ @@ -416,8 +416,8 @@ int mbedtls_mpi_mod_raw_random( mbedtls_mpi_uint *X, * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m ); +int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m); /** Convert an MPI back from Montgomery representation. * @@ -428,8 +428,8 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m ); +int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *m); /** \brief Perform fixed width modular negation. * @@ -444,9 +444,9 @@ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, * must be less than or equal to \p m. * \param[in] m The modulus to use. */ -void mbedtls_mpi_mod_raw_neg( mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m); +void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *m); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bn_mul.h b/library/bn_mul.h index b7e9690e9..307c2418f 100644 --- a/library/bn_mul.h +++ b/library/bn_mul.h @@ -47,36 +47,36 @@ */ #if defined(MBEDTLS_HAVE_INT32) -#define MBEDTLS_BYTES_TO_T_UINT_4( a, b, c, d ) \ - ( (mbedtls_mpi_uint) (a) << 0 ) | \ - ( (mbedtls_mpi_uint) (b) << 8 ) | \ - ( (mbedtls_mpi_uint) (c) << 16 ) | \ - ( (mbedtls_mpi_uint) (d) << 24 ) +#define MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d) \ + ((mbedtls_mpi_uint) (a) << 0) | \ + ((mbedtls_mpi_uint) (b) << 8) | \ + ((mbedtls_mpi_uint) (c) << 16) | \ + ((mbedtls_mpi_uint) (d) << 24) -#define MBEDTLS_BYTES_TO_T_UINT_2( a, b ) \ - MBEDTLS_BYTES_TO_T_UINT_4( a, b, 0, 0 ) +#define MBEDTLS_BYTES_TO_T_UINT_2(a, b) \ + MBEDTLS_BYTES_TO_T_UINT_4(a, b, 0, 0) -#define MBEDTLS_BYTES_TO_T_UINT_8( a, b, c, d, e, f, g, h ) \ - MBEDTLS_BYTES_TO_T_UINT_4( a, b, c, d ), \ - MBEDTLS_BYTES_TO_T_UINT_4( e, f, g, h ) +#define MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, e, f, g, h) \ + MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d), \ + MBEDTLS_BYTES_TO_T_UINT_4(e, f, g, h) #else /* 64-bits */ -#define MBEDTLS_BYTES_TO_T_UINT_8( a, b, c, d, e, f, g, h ) \ - ( (mbedtls_mpi_uint) (a) << 0 ) | \ - ( (mbedtls_mpi_uint) (b) << 8 ) | \ - ( (mbedtls_mpi_uint) (c) << 16 ) | \ - ( (mbedtls_mpi_uint) (d) << 24 ) | \ - ( (mbedtls_mpi_uint) (e) << 32 ) | \ - ( (mbedtls_mpi_uint) (f) << 40 ) | \ - ( (mbedtls_mpi_uint) (g) << 48 ) | \ - ( (mbedtls_mpi_uint) (h) << 56 ) +#define MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, e, f, g, h) \ + ((mbedtls_mpi_uint) (a) << 0) | \ + ((mbedtls_mpi_uint) (b) << 8) | \ + ((mbedtls_mpi_uint) (c) << 16) | \ + ((mbedtls_mpi_uint) (d) << 24) | \ + ((mbedtls_mpi_uint) (e) << 32) | \ + ((mbedtls_mpi_uint) (f) << 40) | \ + ((mbedtls_mpi_uint) (g) << 48) | \ + ((mbedtls_mpi_uint) (h) << 56) -#define MBEDTLS_BYTES_TO_T_UINT_4( a, b, c, d ) \ - MBEDTLS_BYTES_TO_T_UINT_8( a, b, c, d, 0, 0, 0, 0 ) +#define MBEDTLS_BYTES_TO_T_UINT_4(a, b, c, d) \ + MBEDTLS_BYTES_TO_T_UINT_8(a, b, c, d, 0, 0, 0, 0) -#define MBEDTLS_BYTES_TO_T_UINT_2( a, b ) \ - MBEDTLS_BYTES_TO_T_UINT_8( a, b, 0, 0, 0, 0, 0, 0 ) +#define MBEDTLS_BYTES_TO_T_UINT_2(a, b) \ + MBEDTLS_BYTES_TO_T_UINT_8(a, b, 0, 0, 0, 0, 0, 0) #endif /* bits in mbedtls_mpi_uint */ diff --git a/library/camellia.c b/library/camellia.c index 6e781c72b..409727d04 100644 --- a/library/camellia.c +++ b/library/camellia.c @@ -50,109 +50,109 @@ static const unsigned char SIGMA_CHARS[6][8] = static const unsigned char FSb[256] = { - 112,130, 44,236,179, 39,192,229,228,133, 87, 53,234, 12,174, 65, - 35,239,107,147, 69, 25,165, 33,237, 14, 79, 78, 29,101,146,189, - 134,184,175,143,124,235, 31,206, 62, 48,220, 95, 94,197, 11, 26, - 166,225, 57,202,213, 71, 93, 61,217, 1, 90,214, 81, 86,108, 77, - 139, 13,154,102,251,204,176, 45,116, 18, 43, 32,240,177,132,153, - 223, 76,203,194, 52,126,118, 5,109,183,169, 49,209, 23, 4,215, - 20, 88, 58, 97,222, 27, 17, 28, 50, 15,156, 22, 83, 24,242, 34, - 254, 68,207,178,195,181,122,145, 36, 8,232,168, 96,252,105, 80, - 170,208,160,125,161,137, 98,151, 84, 91, 30,149,224,255,100,210, - 16,196, 0, 72,163,247,117,219,138, 3,230,218, 9, 63,221,148, - 135, 92,131, 2,205, 74,144, 51,115,103,246,243,157,127,191,226, - 82,155,216, 38,200, 55,198, 59,129,150,111, 75, 19,190, 99, 46, - 233,121,167,140,159,110,188,142, 41,245,249,182, 47,253,180, 89, - 120,152, 6,106,231, 70,113,186,212, 37,171, 66,136,162,141,250, - 114, 7,185, 85,248,238,172, 10, 54, 73, 42,104, 60, 56,241,164, - 64, 40,211,123,187,201, 67,193, 21,227,173,244,119,199,128,158 + 112, 130, 44, 236, 179, 39, 192, 229, 228, 133, 87, 53, 234, 12, 174, 65, + 35, 239, 107, 147, 69, 25, 165, 33, 237, 14, 79, 78, 29, 101, 146, 189, + 134, 184, 175, 143, 124, 235, 31, 206, 62, 48, 220, 95, 94, 197, 11, 26, + 166, 225, 57, 202, 213, 71, 93, 61, 217, 1, 90, 214, 81, 86, 108, 77, + 139, 13, 154, 102, 251, 204, 176, 45, 116, 18, 43, 32, 240, 177, 132, 153, + 223, 76, 203, 194, 52, 126, 118, 5, 109, 183, 169, 49, 209, 23, 4, 215, + 20, 88, 58, 97, 222, 27, 17, 28, 50, 15, 156, 22, 83, 24, 242, 34, + 254, 68, 207, 178, 195, 181, 122, 145, 36, 8, 232, 168, 96, 252, 105, 80, + 170, 208, 160, 125, 161, 137, 98, 151, 84, 91, 30, 149, 224, 255, 100, 210, + 16, 196, 0, 72, 163, 247, 117, 219, 138, 3, 230, 218, 9, 63, 221, 148, + 135, 92, 131, 2, 205, 74, 144, 51, 115, 103, 246, 243, 157, 127, 191, 226, + 82, 155, 216, 38, 200, 55, 198, 59, 129, 150, 111, 75, 19, 190, 99, 46, + 233, 121, 167, 140, 159, 110, 188, 142, 41, 245, 249, 182, 47, 253, 180, 89, + 120, 152, 6, 106, 231, 70, 113, 186, 212, 37, 171, 66, 136, 162, 141, 250, + 114, 7, 185, 85, 248, 238, 172, 10, 54, 73, 42, 104, 60, 56, 241, 164, + 64, 40, 211, 123, 187, 201, 67, 193, 21, 227, 173, 244, 119, 199, 128, 158 }; #define SBOX1(n) FSb[(n)] -#define SBOX2(n) (unsigned char)((FSb[(n)] >> 7 ^ FSb[(n)] << 1) & 0xff) -#define SBOX3(n) (unsigned char)((FSb[(n)] >> 1 ^ FSb[(n)] << 7) & 0xff) +#define SBOX2(n) (unsigned char) ((FSb[(n)] >> 7 ^ FSb[(n)] << 1) & 0xff) +#define SBOX3(n) (unsigned char) ((FSb[(n)] >> 1 ^ FSb[(n)] << 7) & 0xff) #define SBOX4(n) FSb[((n) << 1 ^ (n) >> 7) &0xff] #else /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ static const unsigned char FSb[256] = { - 112, 130, 44, 236, 179, 39, 192, 229, 228, 133, 87, 53, 234, 12, 174, 65, - 35, 239, 107, 147, 69, 25, 165, 33, 237, 14, 79, 78, 29, 101, 146, 189, - 134, 184, 175, 143, 124, 235, 31, 206, 62, 48, 220, 95, 94, 197, 11, 26, - 166, 225, 57, 202, 213, 71, 93, 61, 217, 1, 90, 214, 81, 86, 108, 77, - 139, 13, 154, 102, 251, 204, 176, 45, 116, 18, 43, 32, 240, 177, 132, 153, - 223, 76, 203, 194, 52, 126, 118, 5, 109, 183, 169, 49, 209, 23, 4, 215, - 20, 88, 58, 97, 222, 27, 17, 28, 50, 15, 156, 22, 83, 24, 242, 34, - 254, 68, 207, 178, 195, 181, 122, 145, 36, 8, 232, 168, 96, 252, 105, 80, - 170, 208, 160, 125, 161, 137, 98, 151, 84, 91, 30, 149, 224, 255, 100, 210, - 16, 196, 0, 72, 163, 247, 117, 219, 138, 3, 230, 218, 9, 63, 221, 148, - 135, 92, 131, 2, 205, 74, 144, 51, 115, 103, 246, 243, 157, 127, 191, 226, - 82, 155, 216, 38, 200, 55, 198, 59, 129, 150, 111, 75, 19, 190, 99, 46, - 233, 121, 167, 140, 159, 110, 188, 142, 41, 245, 249, 182, 47, 253, 180, 89, - 120, 152, 6, 106, 231, 70, 113, 186, 212, 37, 171, 66, 136, 162, 141, 250, - 114, 7, 185, 85, 248, 238, 172, 10, 54, 73, 42, 104, 60, 56, 241, 164, - 64, 40, 211, 123, 187, 201, 67, 193, 21, 227, 173, 244, 119, 199, 128, 158 + 112, 130, 44, 236, 179, 39, 192, 229, 228, 133, 87, 53, 234, 12, 174, 65, + 35, 239, 107, 147, 69, 25, 165, 33, 237, 14, 79, 78, 29, 101, 146, 189, + 134, 184, 175, 143, 124, 235, 31, 206, 62, 48, 220, 95, 94, 197, 11, 26, + 166, 225, 57, 202, 213, 71, 93, 61, 217, 1, 90, 214, 81, 86, 108, 77, + 139, 13, 154, 102, 251, 204, 176, 45, 116, 18, 43, 32, 240, 177, 132, 153, + 223, 76, 203, 194, 52, 126, 118, 5, 109, 183, 169, 49, 209, 23, 4, 215, + 20, 88, 58, 97, 222, 27, 17, 28, 50, 15, 156, 22, 83, 24, 242, 34, + 254, 68, 207, 178, 195, 181, 122, 145, 36, 8, 232, 168, 96, 252, 105, 80, + 170, 208, 160, 125, 161, 137, 98, 151, 84, 91, 30, 149, 224, 255, 100, 210, + 16, 196, 0, 72, 163, 247, 117, 219, 138, 3, 230, 218, 9, 63, 221, 148, + 135, 92, 131, 2, 205, 74, 144, 51, 115, 103, 246, 243, 157, 127, 191, 226, + 82, 155, 216, 38, 200, 55, 198, 59, 129, 150, 111, 75, 19, 190, 99, 46, + 233, 121, 167, 140, 159, 110, 188, 142, 41, 245, 249, 182, 47, 253, 180, 89, + 120, 152, 6, 106, 231, 70, 113, 186, 212, 37, 171, 66, 136, 162, 141, 250, + 114, 7, 185, 85, 248, 238, 172, 10, 54, 73, 42, 104, 60, 56, 241, 164, + 64, 40, 211, 123, 187, 201, 67, 193, 21, 227, 173, 244, 119, 199, 128, 158 }; static const unsigned char FSb2[256] = { - 224, 5, 88, 217, 103, 78, 129, 203, 201, 11, 174, 106, 213, 24, 93, 130, - 70, 223, 214, 39, 138, 50, 75, 66, 219, 28, 158, 156, 58, 202, 37, 123, - 13, 113, 95, 31, 248, 215, 62, 157, 124, 96, 185, 190, 188, 139, 22, 52, - 77, 195, 114, 149, 171, 142, 186, 122, 179, 2, 180, 173, 162, 172, 216, 154, - 23, 26, 53, 204, 247, 153, 97, 90, 232, 36, 86, 64, 225, 99, 9, 51, - 191, 152, 151, 133, 104, 252, 236, 10, 218, 111, 83, 98, 163, 46, 8, 175, - 40, 176, 116, 194, 189, 54, 34, 56, 100, 30, 57, 44, 166, 48, 229, 68, - 253, 136, 159, 101, 135, 107, 244, 35, 72, 16, 209, 81, 192, 249, 210, 160, - 85, 161, 65, 250, 67, 19, 196, 47, 168, 182, 60, 43, 193, 255, 200, 165, - 32, 137, 0, 144, 71, 239, 234, 183, 21, 6, 205, 181, 18, 126, 187, 41, - 15, 184, 7, 4, 155, 148, 33, 102, 230, 206, 237, 231, 59, 254, 127, 197, - 164, 55, 177, 76, 145, 110, 141, 118, 3, 45, 222, 150, 38, 125, 198, 92, - 211, 242, 79, 25, 63, 220, 121, 29, 82, 235, 243, 109, 94, 251, 105, 178, - 240, 49, 12, 212, 207, 140, 226, 117, 169, 74, 87, 132, 17, 69, 27, 245, - 228, 14, 115, 170, 241, 221, 89, 20, 108, 146, 84, 208, 120, 112, 227, 73, - 128, 80, 167, 246, 119, 147, 134, 131, 42, 199, 91, 233, 238, 143, 1, 61 + 224, 5, 88, 217, 103, 78, 129, 203, 201, 11, 174, 106, 213, 24, 93, 130, + 70, 223, 214, 39, 138, 50, 75, 66, 219, 28, 158, 156, 58, 202, 37, 123, + 13, 113, 95, 31, 248, 215, 62, 157, 124, 96, 185, 190, 188, 139, 22, 52, + 77, 195, 114, 149, 171, 142, 186, 122, 179, 2, 180, 173, 162, 172, 216, 154, + 23, 26, 53, 204, 247, 153, 97, 90, 232, 36, 86, 64, 225, 99, 9, 51, + 191, 152, 151, 133, 104, 252, 236, 10, 218, 111, 83, 98, 163, 46, 8, 175, + 40, 176, 116, 194, 189, 54, 34, 56, 100, 30, 57, 44, 166, 48, 229, 68, + 253, 136, 159, 101, 135, 107, 244, 35, 72, 16, 209, 81, 192, 249, 210, 160, + 85, 161, 65, 250, 67, 19, 196, 47, 168, 182, 60, 43, 193, 255, 200, 165, + 32, 137, 0, 144, 71, 239, 234, 183, 21, 6, 205, 181, 18, 126, 187, 41, + 15, 184, 7, 4, 155, 148, 33, 102, 230, 206, 237, 231, 59, 254, 127, 197, + 164, 55, 177, 76, 145, 110, 141, 118, 3, 45, 222, 150, 38, 125, 198, 92, + 211, 242, 79, 25, 63, 220, 121, 29, 82, 235, 243, 109, 94, 251, 105, 178, + 240, 49, 12, 212, 207, 140, 226, 117, 169, 74, 87, 132, 17, 69, 27, 245, + 228, 14, 115, 170, 241, 221, 89, 20, 108, 146, 84, 208, 120, 112, 227, 73, + 128, 80, 167, 246, 119, 147, 134, 131, 42, 199, 91, 233, 238, 143, 1, 61 }; static const unsigned char FSb3[256] = { - 56, 65, 22, 118, 217, 147, 96, 242, 114, 194, 171, 154, 117, 6, 87, 160, - 145, 247, 181, 201, 162, 140, 210, 144, 246, 7, 167, 39, 142, 178, 73, 222, - 67, 92, 215, 199, 62, 245, 143, 103, 31, 24, 110, 175, 47, 226, 133, 13, - 83, 240, 156, 101, 234, 163, 174, 158, 236, 128, 45, 107, 168, 43, 54, 166, - 197, 134, 77, 51, 253, 102, 88, 150, 58, 9, 149, 16, 120, 216, 66, 204, - 239, 38, 229, 97, 26, 63, 59, 130, 182, 219, 212, 152, 232, 139, 2, 235, - 10, 44, 29, 176, 111, 141, 136, 14, 25, 135, 78, 11, 169, 12, 121, 17, - 127, 34, 231, 89, 225, 218, 61, 200, 18, 4, 116, 84, 48, 126, 180, 40, - 85, 104, 80, 190, 208, 196, 49, 203, 42, 173, 15, 202, 112, 255, 50, 105, - 8, 98, 0, 36, 209, 251, 186, 237, 69, 129, 115, 109, 132, 159, 238, 74, - 195, 46, 193, 1, 230, 37, 72, 153, 185, 179, 123, 249, 206, 191, 223, 113, - 41, 205, 108, 19, 100, 155, 99, 157, 192, 75, 183, 165, 137, 95, 177, 23, - 244, 188, 211, 70, 207, 55, 94, 71, 148, 250, 252, 91, 151, 254, 90, 172, - 60, 76, 3, 53, 243, 35, 184, 93, 106, 146, 213, 33, 68, 81, 198, 125, - 57, 131, 220, 170, 124, 119, 86, 5, 27, 164, 21, 52, 30, 28, 248, 82, - 32, 20, 233, 189, 221, 228, 161, 224, 138, 241, 214, 122, 187, 227, 64, 79 + 56, 65, 22, 118, 217, 147, 96, 242, 114, 194, 171, 154, 117, 6, 87, 160, + 145, 247, 181, 201, 162, 140, 210, 144, 246, 7, 167, 39, 142, 178, 73, 222, + 67, 92, 215, 199, 62, 245, 143, 103, 31, 24, 110, 175, 47, 226, 133, 13, + 83, 240, 156, 101, 234, 163, 174, 158, 236, 128, 45, 107, 168, 43, 54, 166, + 197, 134, 77, 51, 253, 102, 88, 150, 58, 9, 149, 16, 120, 216, 66, 204, + 239, 38, 229, 97, 26, 63, 59, 130, 182, 219, 212, 152, 232, 139, 2, 235, + 10, 44, 29, 176, 111, 141, 136, 14, 25, 135, 78, 11, 169, 12, 121, 17, + 127, 34, 231, 89, 225, 218, 61, 200, 18, 4, 116, 84, 48, 126, 180, 40, + 85, 104, 80, 190, 208, 196, 49, 203, 42, 173, 15, 202, 112, 255, 50, 105, + 8, 98, 0, 36, 209, 251, 186, 237, 69, 129, 115, 109, 132, 159, 238, 74, + 195, 46, 193, 1, 230, 37, 72, 153, 185, 179, 123, 249, 206, 191, 223, 113, + 41, 205, 108, 19, 100, 155, 99, 157, 192, 75, 183, 165, 137, 95, 177, 23, + 244, 188, 211, 70, 207, 55, 94, 71, 148, 250, 252, 91, 151, 254, 90, 172, + 60, 76, 3, 53, 243, 35, 184, 93, 106, 146, 213, 33, 68, 81, 198, 125, + 57, 131, 220, 170, 124, 119, 86, 5, 27, 164, 21, 52, 30, 28, 248, 82, + 32, 20, 233, 189, 221, 228, 161, 224, 138, 241, 214, 122, 187, 227, 64, 79 }; static const unsigned char FSb4[256] = { - 112, 44, 179, 192, 228, 87, 234, 174, 35, 107, 69, 165, 237, 79, 29, 146, - 134, 175, 124, 31, 62, 220, 94, 11, 166, 57, 213, 93, 217, 90, 81, 108, - 139, 154, 251, 176, 116, 43, 240, 132, 223, 203, 52, 118, 109, 169, 209, 4, - 20, 58, 222, 17, 50, 156, 83, 242, 254, 207, 195, 122, 36, 232, 96, 105, - 170, 160, 161, 98, 84, 30, 224, 100, 16, 0, 163, 117, 138, 230, 9, 221, - 135, 131, 205, 144, 115, 246, 157, 191, 82, 216, 200, 198, 129, 111, 19, 99, - 233, 167, 159, 188, 41, 249, 47, 180, 120, 6, 231, 113, 212, 171, 136, 141, - 114, 185, 248, 172, 54, 42, 60, 241, 64, 211, 187, 67, 21, 173, 119, 128, - 130, 236, 39, 229, 133, 53, 12, 65, 239, 147, 25, 33, 14, 78, 101, 189, - 184, 143, 235, 206, 48, 95, 197, 26, 225, 202, 71, 61, 1, 214, 86, 77, - 13, 102, 204, 45, 18, 32, 177, 153, 76, 194, 126, 5, 183, 49, 23, 215, - 88, 97, 27, 28, 15, 22, 24, 34, 68, 178, 181, 145, 8, 168, 252, 80, - 208, 125, 137, 151, 91, 149, 255, 210, 196, 72, 247, 219, 3, 218, 63, 148, - 92, 2, 74, 51, 103, 243, 127, 226, 155, 38, 55, 59, 150, 75, 190, 46, - 121, 140, 110, 142, 245, 182, 253, 89, 152, 106, 70, 186, 37, 66, 162, 250, - 7, 85, 238, 10, 73, 104, 56, 164, 40, 123, 201, 193, 227, 244, 199, 158 + 112, 44, 179, 192, 228, 87, 234, 174, 35, 107, 69, 165, 237, 79, 29, 146, + 134, 175, 124, 31, 62, 220, 94, 11, 166, 57, 213, 93, 217, 90, 81, 108, + 139, 154, 251, 176, 116, 43, 240, 132, 223, 203, 52, 118, 109, 169, 209, 4, + 20, 58, 222, 17, 50, 156, 83, 242, 254, 207, 195, 122, 36, 232, 96, 105, + 170, 160, 161, 98, 84, 30, 224, 100, 16, 0, 163, 117, 138, 230, 9, 221, + 135, 131, 205, 144, 115, 246, 157, 191, 82, 216, 200, 198, 129, 111, 19, 99, + 233, 167, 159, 188, 41, 249, 47, 180, 120, 6, 231, 113, 212, 171, 136, 141, + 114, 185, 248, 172, 54, 42, 60, 241, 64, 211, 187, 67, 21, 173, 119, 128, + 130, 236, 39, 229, 133, 53, 12, 65, 239, 147, 25, 33, 14, 78, 101, 189, + 184, 143, 235, 206, 48, 95, 197, 26, 225, 202, 71, 61, 1, 214, 86, 77, + 13, 102, 204, 45, 18, 32, 177, 153, 76, 194, 126, 5, 183, 49, 23, 215, + 88, 97, 27, 28, 15, 22, 24, 34, 68, 178, 181, 145, 8, 168, 252, 80, + 208, 125, 137, 151, 91, 149, 255, 210, 196, 72, 247, 219, 3, 218, 63, 148, + 92, 2, 74, 51, 103, 243, 127, 226, 155, 38, 55, 59, 150, 75, 190, 46, + 121, 140, 110, 142, 245, 182, 253, 89, 152, 106, 70, 186, 37, 66, 162, 250, + 7, 85, 238, 10, 73, 104, 56, 164, 40, 123, 201, 193, 227, 244, 199, 158 }; #define SBOX1(n) FSb[(n)] @@ -182,23 +182,23 @@ static const signed char indexes[2][4][20] = { { { 0, 1, 2, 3, 8, 9, 10, 11, 38, 39, - 36, 37, 23, 20, 21, 22, 27, -1, -1, 26 }, /* KL -> RK */ + 36, 37, 23, 20, 21, 22, 27, -1, -1, 26 }, /* KL -> RK */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, /* KR -> RK */ { 4, 5, 6, 7, 12, 13, 14, 15, 16, 17, - 18, 19, -1, 24, 25, -1, 31, 28, 29, 30 }, /* KA -> RK */ + 18, 19, -1, 24, 25, -1, 31, 28, 29, 30 }, /* KA -> RK */ { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } /* KB -> RK */ }, { { 0, 1, 2, 3, 61, 62, 63, 60, -1, -1, - -1, -1, 27, 24, 25, 26, 35, 32, 33, 34 }, /* KL -> RK */ + -1, -1, 27, 24, 25, 26, 35, 32, 33, 34 }, /* KL -> RK */ { -1, -1, -1, -1, 8, 9, 10, 11, 16, 17, 18, 19, -1, -1, -1, -1, 39, 36, 37, 38 }, /* KR -> RK */ { -1, -1, -1, -1, 12, 13, 14, 15, 58, 59, 56, 57, 31, 28, 29, 30, -1, -1, -1, -1 }, /* KA -> RK */ { 4, 5, 6, 7, 65, 66, 67, 64, 20, 21, - 22, 23, -1, -1, -1, -1, 43, 40, 41, 42 } /* KB -> RK */ + 22, 23, -1, -1, -1, -1, 43, 40, 41, 42 } /* KB -> RK */ } }; @@ -222,57 +222,57 @@ static const signed char transposes[2][20] = /* Shift macro for 128 bit strings with rotation smaller than 32 bits (!) */ #define ROTL(DEST, SRC, SHIFT) \ -{ \ - (DEST)[0] = (SRC)[0] << (SHIFT) ^ (SRC)[1] >> (32 - (SHIFT)); \ - (DEST)[1] = (SRC)[1] << (SHIFT) ^ (SRC)[2] >> (32 - (SHIFT)); \ - (DEST)[2] = (SRC)[2] << (SHIFT) ^ (SRC)[3] >> (32 - (SHIFT)); \ - (DEST)[3] = (SRC)[3] << (SHIFT) ^ (SRC)[0] >> (32 - (SHIFT)); \ -} + { \ + (DEST)[0] = (SRC)[0] << (SHIFT) ^ (SRC)[1] >> (32 - (SHIFT)); \ + (DEST)[1] = (SRC)[1] << (SHIFT) ^ (SRC)[2] >> (32 - (SHIFT)); \ + (DEST)[2] = (SRC)[2] << (SHIFT) ^ (SRC)[3] >> (32 - (SHIFT)); \ + (DEST)[3] = (SRC)[3] << (SHIFT) ^ (SRC)[0] >> (32 - (SHIFT)); \ + } #define FL(XL, XR, KL, KR) \ -{ \ - (XR) = ((((XL) & (KL)) << 1) | (((XL) & (KL)) >> 31)) ^ (XR); \ - (XL) = ((XR) | (KR)) ^ (XL); \ -} + { \ + (XR) = ((((XL) &(KL)) << 1) | (((XL) &(KL)) >> 31)) ^ (XR); \ + (XL) = ((XR) | (KR)) ^ (XL); \ + } #define FLInv(YL, YR, KL, KR) \ -{ \ - (YL) = ((YR) | (KR)) ^ (YL); \ - (YR) = ((((YL) & (KL)) << 1) | (((YL) & (KL)) >> 31)) ^ (YR); \ -} + { \ + (YL) = ((YR) | (KR)) ^ (YL); \ + (YR) = ((((YL) &(KL)) << 1) | (((YL) &(KL)) >> 31)) ^ (YR); \ + } #define SHIFT_AND_PLACE(INDEX, OFFSET) \ -{ \ - TK[0] = KC[(OFFSET) * 4 + 0]; \ - TK[1] = KC[(OFFSET) * 4 + 1]; \ - TK[2] = KC[(OFFSET) * 4 + 2]; \ - TK[3] = KC[(OFFSET) * 4 + 3]; \ + { \ + TK[0] = KC[(OFFSET) * 4 + 0]; \ + TK[1] = KC[(OFFSET) * 4 + 1]; \ + TK[2] = KC[(OFFSET) * 4 + 2]; \ + TK[3] = KC[(OFFSET) * 4 + 3]; \ \ - for( i = 1; i <= 4; i++ ) \ - if( shifts[(INDEX)][(OFFSET)][i -1] ) \ - ROTL(TK + i * 4, TK, ( 15 * i ) % 32); \ + for (i = 1; i <= 4; i++) \ + if (shifts[(INDEX)][(OFFSET)][i -1]) \ + ROTL(TK + i * 4, TK, (15 * i) % 32); \ \ - for( i = 0; i < 20; i++ ) \ - if( indexes[(INDEX)][(OFFSET)][i] != -1 ) { \ - RK[indexes[(INDEX)][(OFFSET)][i]] = TK[ i ]; \ + for (i = 0; i < 20; i++) \ + if (indexes[(INDEX)][(OFFSET)][i] != -1) { \ + RK[indexes[(INDEX)][(OFFSET)][i]] = TK[i]; \ } \ -} + } -static void camellia_feistel( const uint32_t x[2], const uint32_t k[2], - uint32_t z[2]) +static void camellia_feistel(const uint32_t x[2], const uint32_t k[2], + uint32_t z[2]) { uint32_t I0, I1; I0 = x[0] ^ k[0]; I1 = x[1] ^ k[1]; - I0 = ((uint32_t) SBOX1( MBEDTLS_BYTE_3( I0 )) << 24) | - ((uint32_t) SBOX2( MBEDTLS_BYTE_2( I0 )) << 16) | - ((uint32_t) SBOX3( MBEDTLS_BYTE_1( I0 )) << 8) | - ((uint32_t) SBOX4( MBEDTLS_BYTE_0( I0 )) ); - I1 = ((uint32_t) SBOX2( MBEDTLS_BYTE_3( I1 )) << 24) | - ((uint32_t) SBOX3( MBEDTLS_BYTE_2( I1 )) << 16) | - ((uint32_t) SBOX4( MBEDTLS_BYTE_1( I1 )) << 8) | - ((uint32_t) SBOX1( MBEDTLS_BYTE_0( I1 )) ); + I0 = ((uint32_t) SBOX1(MBEDTLS_BYTE_3(I0)) << 24) | + ((uint32_t) SBOX2(MBEDTLS_BYTE_2(I0)) << 16) | + ((uint32_t) SBOX3(MBEDTLS_BYTE_1(I0)) << 8) | + ((uint32_t) SBOX4(MBEDTLS_BYTE_0(I0))); + I1 = ((uint32_t) SBOX2(MBEDTLS_BYTE_3(I1)) << 24) | + ((uint32_t) SBOX3(MBEDTLS_BYTE_2(I1)) << 16) | + ((uint32_t) SBOX4(MBEDTLS_BYTE_1(I1)) << 8) | + ((uint32_t) SBOX1(MBEDTLS_BYTE_0(I1))); I0 ^= (I1 << 8) | (I1 >> 24); I1 ^= (I0 << 16) | (I0 >> 16); @@ -283,25 +283,26 @@ static void camellia_feistel( const uint32_t x[2], const uint32_t k[2], z[1] ^= I0; } -void mbedtls_camellia_init( mbedtls_camellia_context *ctx ) +void mbedtls_camellia_init(mbedtls_camellia_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_camellia_context ) ); + memset(ctx, 0, sizeof(mbedtls_camellia_context)); } -void mbedtls_camellia_free( mbedtls_camellia_context *ctx ) +void mbedtls_camellia_free(mbedtls_camellia_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_camellia_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_camellia_context)); } /* * Camellia key schedule (encryption) */ -int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, - const unsigned char *key, - unsigned int keybits ) +int mbedtls_camellia_setkey_enc(mbedtls_camellia_context *ctx, + const unsigned char *key, + unsigned int keybits) { int idx; size_t i; @@ -313,63 +314,68 @@ int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, RK = ctx->rk; - memset( t, 0, 64 ); - memset( RK, 0, sizeof(ctx->rk) ); + memset(t, 0, 64); + memset(RK, 0, sizeof(ctx->rk)); - switch( keybits ) - { + switch (keybits) { case 128: ctx->nr = 3; idx = 0; break; case 192: case 256: ctx->nr = 4; idx = 1; break; - default : return( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA ); + default: return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; } - for( i = 0; i < keybits / 8; ++i ) + for (i = 0; i < keybits / 8; ++i) { t[i] = key[i]; + } - if( keybits == 192 ) { - for( i = 0; i < 8; i++ ) + if (keybits == 192) { + for (i = 0; i < 8; i++) { t[24 + i] = ~t[16 + i]; + } } /* * Prepare SIGMA values */ - for( i = 0; i < 6; i++ ) { - SIGMA[i][0] = MBEDTLS_GET_UINT32_BE( SIGMA_CHARS[i], 0 ); - SIGMA[i][1] = MBEDTLS_GET_UINT32_BE( SIGMA_CHARS[i], 4 ); + for (i = 0; i < 6; i++) { + SIGMA[i][0] = MBEDTLS_GET_UINT32_BE(SIGMA_CHARS[i], 0); + SIGMA[i][1] = MBEDTLS_GET_UINT32_BE(SIGMA_CHARS[i], 4); } /* * Key storage in KC * Order: KL, KR, KA, KB */ - memset( KC, 0, sizeof(KC) ); + memset(KC, 0, sizeof(KC)); /* Store KL, KR */ - for( i = 0; i < 8; i++ ) - KC[i] = MBEDTLS_GET_UINT32_BE( t, i * 4 ); + for (i = 0; i < 8; i++) { + KC[i] = MBEDTLS_GET_UINT32_BE(t, i * 4); + } /* Generate KA */ - for( i = 0; i < 4; ++i ) + for (i = 0; i < 4; ++i) { KC[8 + i] = KC[i] ^ KC[4 + i]; + } - camellia_feistel( KC + 8, SIGMA[0], KC + 10 ); - camellia_feistel( KC + 10, SIGMA[1], KC + 8 ); + camellia_feistel(KC + 8, SIGMA[0], KC + 10); + camellia_feistel(KC + 10, SIGMA[1], KC + 8); - for( i = 0; i < 4; ++i ) + for (i = 0; i < 4; ++i) { KC[8 + i] ^= KC[i]; + } - camellia_feistel( KC + 8, SIGMA[2], KC + 10 ); - camellia_feistel( KC + 10, SIGMA[3], KC + 8 ); + camellia_feistel(KC + 8, SIGMA[2], KC + 10); + camellia_feistel(KC + 10, SIGMA[3], KC + 8); - if( keybits > 128 ) { + if (keybits > 128) { /* Generate KB */ - for( i = 0; i < 4; ++i ) + for (i = 0; i < 4; ++i) { KC[12 + i] = KC[4 + i] ^ KC[8 + i]; + } - camellia_feistel( KC + 12, SIGMA[4], KC + 14 ); - camellia_feistel( KC + 14, SIGMA[5], KC + 12 ); + camellia_feistel(KC + 12, SIGMA[4], KC + 14); + camellia_feistel(KC + 14, SIGMA[5], KC + 12); } /* @@ -377,37 +383,37 @@ int mbedtls_camellia_setkey_enc( mbedtls_camellia_context *ctx, */ /* Manipulating KL */ - SHIFT_AND_PLACE( idx, 0 ); + SHIFT_AND_PLACE(idx, 0); /* Manipulating KR */ - if( keybits > 128 ) { - SHIFT_AND_PLACE( idx, 1 ); + if (keybits > 128) { + SHIFT_AND_PLACE(idx, 1); } /* Manipulating KA */ - SHIFT_AND_PLACE( idx, 2 ); + SHIFT_AND_PLACE(idx, 2); /* Manipulating KB */ - if( keybits > 128 ) { - SHIFT_AND_PLACE( idx, 3 ); + if (keybits > 128) { + SHIFT_AND_PLACE(idx, 3); } /* Do transpositions */ - for( i = 0; i < 20; i++ ) { - if( transposes[idx][i] != -1 ) { + for (i = 0; i < 20; i++) { + if (transposes[idx][i] != -1) { RK[32 + 12 * idx + i] = RK[transposes[idx][i]]; } } - return( 0 ); + return 0; } /* * Camellia key schedule (decryption) */ -int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, - const unsigned char *key, - unsigned int keybits ) +int mbedtls_camellia_setkey_dec(mbedtls_camellia_context *ctx, + const unsigned char *key, + unsigned int keybits) { int idx, ret; size_t i; @@ -415,14 +421,15 @@ int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, uint32_t *RK; uint32_t *SK; - mbedtls_camellia_init( &cty ); + mbedtls_camellia_init(&cty); /* Also checks keybits */ - if( ( ret = mbedtls_camellia_setkey_enc( &cty, key, keybits ) ) != 0 ) + if ((ret = mbedtls_camellia_setkey_enc(&cty, key, keybits)) != 0) { goto exit; + } ctx->nr = cty.nr; - idx = ( ctx->nr == 4 ); + idx = (ctx->nr == 4); RK = ctx->rk; SK = cty.rk + 24 * 2 + 8 * idx * 2; @@ -432,8 +439,7 @@ int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, *RK++ = *SK++; *RK++ = *SK++; - for( i = 22 + 8 * idx, SK -= 6; i > 0; i--, SK -= 4 ) - { + for (i = 22 + 8 * idx, SK -= 6; i > 0; i--, SK -= 4) { *RK++ = *SK++; *RK++ = *SK++; } @@ -446,55 +452,56 @@ int mbedtls_camellia_setkey_dec( mbedtls_camellia_context *ctx, *RK++ = *SK++; exit: - mbedtls_camellia_free( &cty ); + mbedtls_camellia_free(&cty); - return( ret ); + return ret; } /* * Camellia-ECB block encryption/decryption */ -int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_camellia_crypt_ecb(mbedtls_camellia_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]) { int NR; uint32_t *RK, X[4]; - if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + if (mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT) { return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; + } - ( (void) mode ); + ((void) mode); NR = ctx->nr; RK = ctx->rk; - X[0] = MBEDTLS_GET_UINT32_BE( input, 0 ); - X[1] = MBEDTLS_GET_UINT32_BE( input, 4 ); - X[2] = MBEDTLS_GET_UINT32_BE( input, 8 ); - X[3] = MBEDTLS_GET_UINT32_BE( input, 12 ); + X[0] = MBEDTLS_GET_UINT32_BE(input, 0); + X[1] = MBEDTLS_GET_UINT32_BE(input, 4); + X[2] = MBEDTLS_GET_UINT32_BE(input, 8); + X[3] = MBEDTLS_GET_UINT32_BE(input, 12); X[0] ^= *RK++; X[1] ^= *RK++; X[2] ^= *RK++; X[3] ^= *RK++; - while( NR ) { + while (NR) { --NR; - camellia_feistel( X, RK, X + 2 ); + camellia_feistel(X, RK, X + 2); RK += 2; - camellia_feistel( X + 2, RK, X ); + camellia_feistel(X + 2, RK, X); RK += 2; - camellia_feistel( X, RK, X + 2 ); + camellia_feistel(X, RK, X + 2); RK += 2; - camellia_feistel( X + 2, RK, X ); + camellia_feistel(X + 2, RK, X); RK += 2; - camellia_feistel( X, RK, X + 2 ); + camellia_feistel(X, RK, X + 2); RK += 2; - camellia_feistel( X + 2, RK, X ); + camellia_feistel(X + 2, RK, X); RK += 2; - if( NR ) { + if (NR) { FL(X[0], X[1], RK[0], RK[1]); RK += 2; FLInv(X[2], X[3], RK[0], RK[1]); @@ -507,56 +514,53 @@ int mbedtls_camellia_crypt_ecb( mbedtls_camellia_context *ctx, X[0] ^= *RK++; X[1] ^= *RK++; - MBEDTLS_PUT_UINT32_BE( X[2], output, 0 ); - MBEDTLS_PUT_UINT32_BE( X[3], output, 4 ); - MBEDTLS_PUT_UINT32_BE( X[0], output, 8 ); - MBEDTLS_PUT_UINT32_BE( X[1], output, 12 ); + MBEDTLS_PUT_UINT32_BE(X[2], output, 0); + MBEDTLS_PUT_UINT32_BE(X[3], output, 4); + MBEDTLS_PUT_UINT32_BE(X[0], output, 8); + MBEDTLS_PUT_UINT32_BE(X[1], output, 12); - return( 0 ); + return 0; } #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * Camellia-CBC buffer encryption/decryption */ -int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_camellia_crypt_cbc(mbedtls_camellia_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { unsigned char temp[16]; - if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + if (mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT) { return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; + } - if( length % 16 ) - return( MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH ); + if (length % 16) { + return MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH; + } - if( mode == MBEDTLS_CAMELLIA_DECRYPT ) - { - while( length > 0 ) - { - memcpy( temp, input, 16 ); - mbedtls_camellia_crypt_ecb( ctx, mode, input, output ); + if (mode == MBEDTLS_CAMELLIA_DECRYPT) { + while (length > 0) { + memcpy(temp, input, 16); + mbedtls_camellia_crypt_ecb(ctx, mode, input, output); - mbedtls_xor( output, output, iv, 16 ); + mbedtls_xor(output, output, iv, 16); - memcpy( iv, temp, 16 ); + memcpy(iv, temp, 16); input += 16; output += 16; length -= 16; } - } - else - { - while( length > 0 ) - { - mbedtls_xor( output, input, iv, 16 ); + } else { + while (length > 0) { + mbedtls_xor(output, input, iv, 16); - mbedtls_camellia_crypt_ecb( ctx, mode, output, output ); - memcpy( iv, output, 16 ); + mbedtls_camellia_crypt_ecb(ctx, mode, output, output); + memcpy(iv, output, 16); input += 16; output += 16; @@ -564,7 +568,7 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, } } - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ @@ -572,53 +576,52 @@ int mbedtls_camellia_crypt_cbc( mbedtls_camellia_context *ctx, /* * Camellia-CFB128 buffer encryption/decryption */ -int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, - int mode, - size_t length, - size_t *iv_off, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_camellia_crypt_cfb128(mbedtls_camellia_context *ctx, + int mode, + size_t length, + size_t *iv_off, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int c; size_t n; - if( mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT ) + if (mode != MBEDTLS_CAMELLIA_ENCRYPT && mode != MBEDTLS_CAMELLIA_DECRYPT) { return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; + } n = *iv_off; - if( n >= 16 ) - return( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA ); + if (n >= 16) { + return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; + } - if( mode == MBEDTLS_CAMELLIA_DECRYPT ) - { - while( length-- ) - { - if( n == 0 ) - mbedtls_camellia_crypt_ecb( ctx, MBEDTLS_CAMELLIA_ENCRYPT, iv, iv ); + if (mode == MBEDTLS_CAMELLIA_DECRYPT) { + while (length--) { + if (n == 0) { + mbedtls_camellia_crypt_ecb(ctx, MBEDTLS_CAMELLIA_ENCRYPT, iv, iv); + } c = *input++; - *output++ = (unsigned char)( c ^ iv[n] ); + *output++ = (unsigned char) (c ^ iv[n]); iv[n] = (unsigned char) c; - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } - } - else - { - while( length-- ) - { - if( n == 0 ) - mbedtls_camellia_crypt_ecb( ctx, MBEDTLS_CAMELLIA_ENCRYPT, iv, iv ); + } else { + while (length--) { + if (n == 0) { + mbedtls_camellia_crypt_ecb(ctx, MBEDTLS_CAMELLIA_ENCRYPT, iv, iv); + } - iv[n] = *output++ = (unsigned char)( iv[n] ^ *input++ ); + iv[n] = *output++ = (unsigned char) (iv[n] ^ *input++); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } } *iv_off = n; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CFB */ @@ -626,40 +629,42 @@ int mbedtls_camellia_crypt_cfb128( mbedtls_camellia_context *ctx, /* * Camellia-CTR buffer encryption/decryption */ -int mbedtls_camellia_crypt_ctr( mbedtls_camellia_context *ctx, - size_t length, - size_t *nc_off, - unsigned char nonce_counter[16], - unsigned char stream_block[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_camellia_crypt_ctr(mbedtls_camellia_context *ctx, + size_t length, + size_t *nc_off, + unsigned char nonce_counter[16], + unsigned char stream_block[16], + const unsigned char *input, + unsigned char *output) { int c, i; size_t n; n = *nc_off; - if( n >= 16 ) - return( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA ); + if (n >= 16) { + return MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA; + } - while( length-- ) - { - if( n == 0 ) { - mbedtls_camellia_crypt_ecb( ctx, MBEDTLS_CAMELLIA_ENCRYPT, nonce_counter, - stream_block ); + while (length--) { + if (n == 0) { + mbedtls_camellia_crypt_ecb(ctx, MBEDTLS_CAMELLIA_ENCRYPT, nonce_counter, + stream_block); - for( i = 16; i > 0; i-- ) - if( ++nonce_counter[i - 1] != 0 ) + for (i = 16; i > 0; i--) { + if (++nonce_counter[i - 1] != 0) { break; + } + } } c = *input++; - *output++ = (unsigned char)( c ^ stream_block[n] ); + *output++ = (unsigned char) (c ^ stream_block[n]); - n = ( n + 1 ) & 0x0F; + n = (n + 1) & 0x0F; } *nc_off = n; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CTR */ #endif /* !MBEDTLS_CAMELLIA_ALT */ @@ -739,23 +744,23 @@ static const unsigned char camellia_test_ecb_cipher[3][CAMELLIA_TESTS_ECB][16] = static const unsigned char camellia_test_cbc_key[3][32] = { - { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, - 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } + { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, + 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C } , - { 0x8E, 0x73, 0xB0, 0xF7, 0xDA, 0x0E, 0x64, 0x52, - 0xC8, 0x10, 0xF3, 0x2B, 0x80, 0x90, 0x79, 0xE5, - 0x62, 0xF8, 0xEA, 0xD2, 0x52, 0x2C, 0x6B, 0x7B } + { 0x8E, 0x73, 0xB0, 0xF7, 0xDA, 0x0E, 0x64, 0x52, + 0xC8, 0x10, 0xF3, 0x2B, 0x80, 0x90, 0x79, 0xE5, + 0x62, 0xF8, 0xEA, 0xD2, 0x52, 0x2C, 0x6B, 0x7B } , - { 0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE, - 0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81, - 0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7, - 0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4 } + { 0x60, 0x3D, 0xEB, 0x10, 0x15, 0xCA, 0x71, 0xBE, + 0x2B, 0x73, 0xAE, 0xF0, 0x85, 0x7D, 0x77, 0x81, + 0x1F, 0x35, 0x2C, 0x07, 0x3B, 0x61, 0x08, 0xD7, + 0x2D, 0x98, 0x10, 0xA3, 0x09, 0x14, 0xDF, 0xF4 } }; static const unsigned char camellia_test_cbc_iv[16] = - { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } +{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F } ; static const unsigned char camellia_test_cbc_plain[CAMELLIA_TESTS_CBC][16] = @@ -858,13 +863,13 @@ static const unsigned char camellia_test_ctr_ct[3][48] = }; static const int camellia_test_ctr_len[3] = - { 16, 32, 36 }; +{ 16, 32, 36 }; #endif /* MBEDTLS_CIPHER_MODE_CTR */ /* * Checkup routine */ -int mbedtls_camellia_self_test( int verbose ) +int mbedtls_camellia_self_test(int verbose) { int i, j, u, v; unsigned char key[32]; @@ -883,163 +888,167 @@ int mbedtls_camellia_self_test( int verbose ) mbedtls_camellia_context ctx; - mbedtls_camellia_init( &ctx ); - memset( key, 0, 32 ); + mbedtls_camellia_init(&ctx); + memset(key, 0, 32); - for( j = 0; j < 6; j++ ) { + for (j = 0; j < 6; j++) { u = j >> 1; - v = j & 1; + v = j & 1; - if( verbose != 0 ) - mbedtls_printf( " CAMELLIA-ECB-%3d (%s): ", 128 + u * 64, - (v == MBEDTLS_CAMELLIA_DECRYPT) ? "dec" : "enc"); - - for( i = 0; i < CAMELLIA_TESTS_ECB; i++ ) { - memcpy( key, camellia_test_ecb_key[u][i], 16 + 8 * u ); - - if( v == MBEDTLS_CAMELLIA_DECRYPT ) { - mbedtls_camellia_setkey_dec( &ctx, key, 128 + u * 64 ); - memcpy( src, camellia_test_ecb_cipher[u][i], 16 ); - memcpy( dst, camellia_test_ecb_plain[i], 16 ); - } else { /* MBEDTLS_CAMELLIA_ENCRYPT */ - mbedtls_camellia_setkey_enc( &ctx, key, 128 + u * 64 ); - memcpy( src, camellia_test_ecb_plain[i], 16 ); - memcpy( dst, camellia_test_ecb_cipher[u][i], 16 ); + if (verbose != 0) { + mbedtls_printf(" CAMELLIA-ECB-%3d (%s): ", 128 + u * 64, + (v == MBEDTLS_CAMELLIA_DECRYPT) ? "dec" : "enc"); } - mbedtls_camellia_crypt_ecb( &ctx, v, src, buf ); + for (i = 0; i < CAMELLIA_TESTS_ECB; i++) { + memcpy(key, camellia_test_ecb_key[u][i], 16 + 8 * u); - if( memcmp( buf, dst, 16 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - goto exit; + if (v == MBEDTLS_CAMELLIA_DECRYPT) { + mbedtls_camellia_setkey_dec(&ctx, key, 128 + u * 64); + memcpy(src, camellia_test_ecb_cipher[u][i], 16); + memcpy(dst, camellia_test_ecb_plain[i], 16); + } else { /* MBEDTLS_CAMELLIA_ENCRYPT */ + mbedtls_camellia_setkey_enc(&ctx, key, 128 + u * 64); + memcpy(src, camellia_test_ecb_plain[i], 16); + memcpy(dst, camellia_test_ecb_cipher[u][i], 16); + } + + mbedtls_camellia_crypt_ecb(&ctx, v, src, buf); + + if (memcmp(buf, dst, 16) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } + goto exit; + } + } + + if (verbose != 0) { + mbedtls_printf("passed\n"); } } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); } - if( verbose != 0 ) - mbedtls_printf( "\n" ); - #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * CBC mode */ - for( j = 0; j < 6; j++ ) - { + for (j = 0; j < 6; j++) { u = j >> 1; v = j & 1; - if( verbose != 0 ) - mbedtls_printf( " CAMELLIA-CBC-%3d (%s): ", 128 + u * 64, - ( v == MBEDTLS_CAMELLIA_DECRYPT ) ? "dec" : "enc" ); - - memcpy( src, camellia_test_cbc_iv, 16 ); - memcpy( dst, camellia_test_cbc_iv, 16 ); - memcpy( key, camellia_test_cbc_key[u], 16 + 8 * u ); - - if( v == MBEDTLS_CAMELLIA_DECRYPT ) { - mbedtls_camellia_setkey_dec( &ctx, key, 128 + u * 64 ); - } else { - mbedtls_camellia_setkey_enc( &ctx, key, 128 + u * 64 ); + if (verbose != 0) { + mbedtls_printf(" CAMELLIA-CBC-%3d (%s): ", 128 + u * 64, + (v == MBEDTLS_CAMELLIA_DECRYPT) ? "dec" : "enc"); } - for( i = 0; i < CAMELLIA_TESTS_CBC; i++ ) { + memcpy(src, camellia_test_cbc_iv, 16); + memcpy(dst, camellia_test_cbc_iv, 16); + memcpy(key, camellia_test_cbc_key[u], 16 + 8 * u); - if( v == MBEDTLS_CAMELLIA_DECRYPT ) { - memcpy( iv , src, 16 ); - memcpy( src, camellia_test_cbc_cipher[u][i], 16 ); - memcpy( dst, camellia_test_cbc_plain[i], 16 ); + if (v == MBEDTLS_CAMELLIA_DECRYPT) { + mbedtls_camellia_setkey_dec(&ctx, key, 128 + u * 64); + } else { + mbedtls_camellia_setkey_enc(&ctx, key, 128 + u * 64); + } + + for (i = 0; i < CAMELLIA_TESTS_CBC; i++) { + + if (v == MBEDTLS_CAMELLIA_DECRYPT) { + memcpy(iv, src, 16); + memcpy(src, camellia_test_cbc_cipher[u][i], 16); + memcpy(dst, camellia_test_cbc_plain[i], 16); } else { /* MBEDTLS_CAMELLIA_ENCRYPT */ - memcpy( iv , dst, 16 ); - memcpy( src, camellia_test_cbc_plain[i], 16 ); - memcpy( dst, camellia_test_cbc_cipher[u][i], 16 ); + memcpy(iv, dst, 16); + memcpy(src, camellia_test_cbc_plain[i], 16); + memcpy(dst, camellia_test_cbc_cipher[u][i], 16); } - mbedtls_camellia_crypt_cbc( &ctx, v, 16, iv, src, buf ); + mbedtls_camellia_crypt_cbc(&ctx, v, 16, iv, src, buf); - if( memcmp( buf, dst, 16 ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (memcmp(buf, dst, 16) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto exit; } } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } #endif /* MBEDTLS_CIPHER_MODE_CBC */ - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #if defined(MBEDTLS_CIPHER_MODE_CTR) /* * CTR mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; v = i & 1; - if( verbose != 0 ) - mbedtls_printf( " CAMELLIA-CTR-128 (%s): ", - ( v == MBEDTLS_CAMELLIA_DECRYPT ) ? "dec" : "enc" ); + if (verbose != 0) { + mbedtls_printf(" CAMELLIA-CTR-128 (%s): ", + (v == MBEDTLS_CAMELLIA_DECRYPT) ? "dec" : "enc"); + } - memcpy( nonce_counter, camellia_test_ctr_nonce_counter[u], 16 ); - memcpy( key, camellia_test_ctr_key[u], 16 ); + memcpy(nonce_counter, camellia_test_ctr_nonce_counter[u], 16); + memcpy(key, camellia_test_ctr_key[u], 16); offset = 0; - mbedtls_camellia_setkey_enc( &ctx, key, 128 ); + mbedtls_camellia_setkey_enc(&ctx, key, 128); - if( v == MBEDTLS_CAMELLIA_DECRYPT ) - { + if (v == MBEDTLS_CAMELLIA_DECRYPT) { len = camellia_test_ctr_len[u]; - memcpy( buf, camellia_test_ctr_ct[u], len ); + memcpy(buf, camellia_test_ctr_ct[u], len); - mbedtls_camellia_crypt_ctr( &ctx, len, &offset, nonce_counter, stream_block, - buf, buf ); + mbedtls_camellia_crypt_ctr(&ctx, len, &offset, nonce_counter, stream_block, + buf, buf); - if( memcmp( buf, camellia_test_ctr_pt[u], len ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (memcmp(buf, camellia_test_ctr_pt[u], len) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto exit; } - } - else - { + } else { len = camellia_test_ctr_len[u]; - memcpy( buf, camellia_test_ctr_pt[u], len ); + memcpy(buf, camellia_test_ctr_pt[u], len); - mbedtls_camellia_crypt_ctr( &ctx, len, &offset, nonce_counter, stream_block, - buf, buf ); + mbedtls_camellia_crypt_ctr(&ctx, len, &offset, nonce_counter, stream_block, + buf, buf); - if( memcmp( buf, camellia_test_ctr_ct[u], len ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (memcmp(buf, camellia_test_ctr_ct[u], len) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto exit; } } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #endif /* MBEDTLS_CIPHER_MODE_CTR */ ret = 0; exit: - mbedtls_camellia_free( &ctx ); - return( ret ); + mbedtls_camellia_free(&ctx); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/ccm.c b/library/ccm.c index 065eb6024..0b02d77b1 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -51,50 +51,53 @@ /* * Initialize context */ -void mbedtls_ccm_init( mbedtls_ccm_context *ctx ) +void mbedtls_ccm_init(mbedtls_ccm_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_ccm_context ) ); + memset(ctx, 0, sizeof(mbedtls_ccm_context)); } -int mbedtls_ccm_setkey( mbedtls_ccm_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits ) +int mbedtls_ccm_setkey(mbedtls_ccm_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; - cipher_info = mbedtls_cipher_info_from_values( cipher, keybits, - MBEDTLS_MODE_ECB ); - if( cipher_info == NULL ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); - - if( cipher_info->block_size != 16 ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); - - mbedtls_cipher_free( &ctx->cipher_ctx ); - - if( ( ret = mbedtls_cipher_setup( &ctx->cipher_ctx, cipher_info ) ) != 0 ) - return( ret ); - - if( ( ret = mbedtls_cipher_setkey( &ctx->cipher_ctx, key, keybits, - MBEDTLS_ENCRYPT ) ) != 0 ) - { - return( ret ); + cipher_info = mbedtls_cipher_info_from_values(cipher, keybits, + MBEDTLS_MODE_ECB); + if (cipher_info == NULL) { + return MBEDTLS_ERR_CCM_BAD_INPUT; } - return( 0 ); + if (cipher_info->block_size != 16) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } + + mbedtls_cipher_free(&ctx->cipher_ctx); + + if ((ret = mbedtls_cipher_setup(&ctx->cipher_ctx, cipher_info)) != 0) { + return ret; + } + + if ((ret = mbedtls_cipher_setkey(&ctx->cipher_ctx, key, keybits, + MBEDTLS_ENCRYPT)) != 0) { + return ret; + } + + return 0; } /* * Free context */ -void mbedtls_ccm_free( mbedtls_ccm_context *ctx ) +void mbedtls_ccm_free(mbedtls_ccm_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; - mbedtls_cipher_free( &ctx->cipher_ctx ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ccm_context ) ); + } + mbedtls_cipher_free(&ctx->cipher_ctx); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ccm_context)); } #define CCM_STATE__CLEAR 0 @@ -107,33 +110,33 @@ void mbedtls_ccm_free( mbedtls_ccm_context *ctx ) /* * Encrypt or decrypt a partial block with CTR */ -static int mbedtls_ccm_crypt( mbedtls_ccm_context *ctx, - size_t offset, size_t use_len, - const unsigned char *input, - unsigned char *output ) +static int mbedtls_ccm_crypt(mbedtls_ccm_context *ctx, + size_t offset, size_t use_len, + const unsigned char *input, + unsigned char *output) { size_t olen = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char tmp_buf[16] = {0}; + unsigned char tmp_buf[16] = { 0 }; - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->ctr, 16, tmp_buf, - &olen ) ) != 0 ) - { + if ((ret = mbedtls_cipher_update(&ctx->cipher_ctx, ctx->ctr, 16, tmp_buf, + &olen)) != 0) { ctx->state |= CCM_STATE__ERROR; mbedtls_platform_zeroize(tmp_buf, sizeof(tmp_buf)); return ret; } - mbedtls_xor( output, input, tmp_buf + offset, use_len ); + mbedtls_xor(output, input, tmp_buf + offset, use_len); mbedtls_platform_zeroize(tmp_buf, sizeof(tmp_buf)); return ret; } -static void mbedtls_ccm_clear_state(mbedtls_ccm_context *ctx) { +static void mbedtls_ccm_clear_state(mbedtls_ccm_context *ctx) +{ ctx->state = CCM_STATE__CLEAR; - memset( ctx->y, 0, 16); - memset( ctx->ctr, 0, 16); + memset(ctx->y, 0, 16); + memset(ctx->ctr, 0, 16); } static int ccm_calculate_first_block_if_ready(mbedtls_ccm_context *ctx) @@ -145,21 +148,18 @@ static int ccm_calculate_first_block_if_ready(mbedtls_ccm_context *ctx) /* length calculation can be done only after both * mbedtls_ccm_starts() and mbedtls_ccm_set_lengths() have been executed */ - if( !(ctx->state & CCM_STATE__STARTED) || !(ctx->state & CCM_STATE__LENGTHS_SET) ) + if (!(ctx->state & CCM_STATE__STARTED) || !(ctx->state & CCM_STATE__LENGTHS_SET)) { return 0; + } /* CCM expects non-empty tag. * CCM* allows empty tag. For CCM* without tag, ignore plaintext length. */ - if( ctx->tag_len == 0 ) - { - if( ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT || ctx->mode == MBEDTLS_CCM_STAR_DECRYPT ) - { + if (ctx->tag_len == 0) { + if (ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT || ctx->mode == MBEDTLS_CCM_STAR_DECRYPT) { ctx->plaintext_len = 0; - } - else - { - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + } else { + return MBEDTLS_ERR_CCM_BAD_INPUT; } } @@ -175,37 +175,37 @@ static int ccm_calculate_first_block_if_ready(mbedtls_ccm_context *ctx) * 5 .. 3 (t - 2) / 2 * 2 .. 0 q - 1 */ - ctx->y[0] |= ( ctx->add_len > 0 ) << 6; - ctx->y[0] |= ( ( ctx->tag_len - 2 ) / 2 ) << 3; + ctx->y[0] |= (ctx->add_len > 0) << 6; + ctx->y[0] |= ((ctx->tag_len - 2) / 2) << 3; ctx->y[0] |= ctx->q - 1; - for( i = 0, len_left = ctx->plaintext_len; i < ctx->q; i++, len_left >>= 8 ) - ctx->y[15-i] = MBEDTLS_BYTE_0( len_left ); + for (i = 0, len_left = ctx->plaintext_len; i < ctx->q; i++, len_left >>= 8) { + ctx->y[15-i] = MBEDTLS_BYTE_0(len_left); + } - if( len_left > 0 ) - { + if (len_left > 0) { ctx->state |= CCM_STATE__ERROR; - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + return MBEDTLS_ERR_CCM_BAD_INPUT; } /* Start CBC-MAC with first block*/ - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen ) ) != 0 ) - { + if ((ret = mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen)) != 0) { ctx->state |= CCM_STATE__ERROR; - return( ret ); + return ret; } - return (0); + return 0; } -int mbedtls_ccm_starts( mbedtls_ccm_context *ctx, - int mode, - const unsigned char *iv, - size_t iv_len ) +int mbedtls_ccm_starts(mbedtls_ccm_context *ctx, + int mode, + const unsigned char *iv, + size_t iv_len) { /* Also implies q is within bounds */ - if( iv_len < 7 || iv_len > 13 ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + if (iv_len < 7 || iv_len > 13) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } ctx->mode = mode; ctx->q = 16 - 1 - (unsigned char) iv_len; @@ -220,25 +220,25 @@ int mbedtls_ccm_starts( mbedtls_ccm_context *ctx, * 7 .. 3 0 * 2 .. 0 q - 1 */ - memset( ctx->ctr, 0, 16); + memset(ctx->ctr, 0, 16); ctx->ctr[0] = ctx->q - 1; - memcpy( ctx->ctr + 1, iv, iv_len ); - memset( ctx->ctr + 1 + iv_len, 0, ctx->q ); + memcpy(ctx->ctr + 1, iv, iv_len); + memset(ctx->ctr + 1 + iv_len, 0, ctx->q); ctx->ctr[15] = 1; /* * See ccm_calculate_first_block_if_ready() for block layout description */ - memcpy( ctx->y + 1, iv, iv_len ); + memcpy(ctx->y + 1, iv, iv_len); ctx->state |= CCM_STATE__STARTED; return ccm_calculate_first_block_if_ready(ctx); } -int mbedtls_ccm_set_lengths( mbedtls_ccm_context *ctx, - size_t total_ad_len, - size_t plaintext_len, - size_t tag_len ) +int mbedtls_ccm_set_lengths(mbedtls_ccm_context *ctx, + size_t total_ad_len, + size_t plaintext_len, + size_t tag_len) { /* * Check length requirements: SP800-38C A.1 @@ -247,11 +247,13 @@ int mbedtls_ccm_set_lengths( mbedtls_ccm_context *ctx, * * Also, loosen the requirements to enable support for CCM* (IEEE 802.15.4). */ - if( tag_len == 2 || tag_len > 16 || tag_len % 2 != 0 ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + if (tag_len == 2 || tag_len > 16 || tag_len % 2 != 0) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } - if( total_ad_len >= 0xFF00 ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + if (total_ad_len >= 0xFF00) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } ctx->plaintext_len = plaintext_len; ctx->add_len = total_ad_len; @@ -262,81 +264,72 @@ int mbedtls_ccm_set_lengths( mbedtls_ccm_context *ctx, return ccm_calculate_first_block_if_ready(ctx); } -int mbedtls_ccm_update_ad( mbedtls_ccm_context *ctx, - const unsigned char *add, - size_t add_len ) +int mbedtls_ccm_update_ad(mbedtls_ccm_context *ctx, + const unsigned char *add, + size_t add_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen, use_len, offset; - if( ctx->state & CCM_STATE__ERROR ) - { + if (ctx->state & CCM_STATE__ERROR) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - if( add_len > 0 ) - { - if( ctx->state & CCM_STATE__AUTH_DATA_FINISHED ) - { + if (add_len > 0) { + if (ctx->state & CCM_STATE__AUTH_DATA_FINISHED) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - if( !(ctx->state & CCM_STATE__AUTH_DATA_STARTED) ) - { - if ( add_len > ctx->add_len ) - { + if (!(ctx->state & CCM_STATE__AUTH_DATA_STARTED)) { + if (add_len > ctx->add_len) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - ctx->y[0] ^= (unsigned char)( ( ctx->add_len >> 8 ) & 0xFF ); - ctx->y[1] ^= (unsigned char)( ( ctx->add_len ) & 0xFF ); + ctx->y[0] ^= (unsigned char) ((ctx->add_len >> 8) & 0xFF); + ctx->y[1] ^= (unsigned char) ((ctx->add_len) & 0xFF); ctx->state |= CCM_STATE__AUTH_DATA_STARTED; - } - else if ( ctx->processed + add_len > ctx->add_len ) - { + } else if (ctx->processed + add_len > ctx->add_len) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - while( add_len > 0 ) - { + while (add_len > 0) { offset = (ctx->processed + 2) % 16; /* account for y[0] and y[1] * holding total auth data length */ use_len = 16 - offset; - if( use_len > add_len ) + if (use_len > add_len) { use_len = add_len; + } - mbedtls_xor( ctx->y + offset, ctx->y + offset, add, use_len ); + mbedtls_xor(ctx->y + offset, ctx->y + offset, add, use_len); ctx->processed += use_len; add_len -= use_len; add += use_len; - if( use_len + offset == 16 || ctx->processed == ctx->add_len ) - { - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen ) ) != 0 ) - { + if (use_len + offset == 16 || ctx->processed == ctx->add_len) { + if ((ret = + mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen)) != 0) { ctx->state |= CCM_STATE__ERROR; - return( ret ); + return ret; } } } - if( ctx->processed == ctx->add_len ) - { + if (ctx->processed == ctx->add_len) { ctx->state |= CCM_STATE__AUTH_DATA_FINISHED; ctx->processed = 0; // prepare for mbedtls_ccm_update() } } - return (0); + return 0; } -int mbedtls_ccm_update( mbedtls_ccm_context *ctx, - const unsigned char *input, size_t input_len, - unsigned char *output, size_t output_size, - size_t *output_len ) +int mbedtls_ccm_update(mbedtls_ccm_context *ctx, + const unsigned char *input, size_t input_len, + unsigned char *output, size_t output_size, + size_t *output_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char i; @@ -344,88 +337,86 @@ int mbedtls_ccm_update( mbedtls_ccm_context *ctx, unsigned char local_output[16]; - if( ctx->state & CCM_STATE__ERROR ) - { + if (ctx->state & CCM_STATE__ERROR) { return MBEDTLS_ERR_CCM_BAD_INPUT; } /* Check against plaintext length only if performing operation with * authentication */ - if( ctx->tag_len != 0 && ctx->processed + input_len > ctx->plaintext_len ) - { + if (ctx->tag_len != 0 && ctx->processed + input_len > ctx->plaintext_len) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - if( output_size < input_len ) - return( MBEDTLS_ERR_CCM_BAD_INPUT ); + if (output_size < input_len) { + return MBEDTLS_ERR_CCM_BAD_INPUT; + } *output_len = input_len; ret = 0; - while ( input_len > 0 ) - { + while (input_len > 0) { offset = ctx->processed % 16; use_len = 16 - offset; - if( use_len > input_len ) + if (use_len > input_len) { use_len = input_len; + } ctx->processed += use_len; - if( ctx->mode == MBEDTLS_CCM_ENCRYPT || \ - ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT ) - { - mbedtls_xor( ctx->y + offset, ctx->y + offset, input, use_len ); + if (ctx->mode == MBEDTLS_CCM_ENCRYPT || \ + ctx->mode == MBEDTLS_CCM_STAR_ENCRYPT) { + mbedtls_xor(ctx->y + offset, ctx->y + offset, input, use_len); - if( use_len + offset == 16 || ctx->processed == ctx->plaintext_len ) - { - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen ) ) != 0 ) - { + if (use_len + offset == 16 || ctx->processed == ctx->plaintext_len) { + if ((ret = + mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen)) != 0) { ctx->state |= CCM_STATE__ERROR; goto exit; } } - ret = mbedtls_ccm_crypt( ctx, offset, use_len, input, output ); - if( ret != 0 ) + ret = mbedtls_ccm_crypt(ctx, offset, use_len, input, output); + if (ret != 0) { goto exit; + } } - if( ctx->mode == MBEDTLS_CCM_DECRYPT || \ - ctx->mode == MBEDTLS_CCM_STAR_DECRYPT ) - { + if (ctx->mode == MBEDTLS_CCM_DECRYPT || \ + ctx->mode == MBEDTLS_CCM_STAR_DECRYPT) { /* Since output may be in shared memory, we cannot be sure that * it will contain what we wrote to it. Therefore, we should avoid using * it as input to any operations. * Write decrypted data to local_output to avoid using output variable as * input in the XOR operation for Y. */ - ret = mbedtls_ccm_crypt( ctx, offset, use_len, input, local_output ); - if( ret != 0 ) + ret = mbedtls_ccm_crypt(ctx, offset, use_len, input, local_output); + if (ret != 0) { goto exit; + } - mbedtls_xor( ctx->y + offset, ctx->y + offset, local_output, use_len ); + mbedtls_xor(ctx->y + offset, ctx->y + offset, local_output, use_len); - memcpy( output, local_output, use_len ); - mbedtls_platform_zeroize( local_output, 16 ); + memcpy(output, local_output, use_len); + mbedtls_platform_zeroize(local_output, 16); - if( use_len + offset == 16 || ctx->processed == ctx->plaintext_len ) - { - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen ) ) != 0 ) - { + if (use_len + offset == 16 || ctx->processed == ctx->plaintext_len) { + if ((ret = + mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, ctx->y, &olen)) != 0) { ctx->state |= CCM_STATE__ERROR; goto exit; } } } - if( use_len + offset == 16 || ctx->processed == ctx->plaintext_len ) - { - for( i = 0; i < ctx->q; i++ ) - if( ++(ctx->ctr)[15-i] != 0 ) - break; + if (use_len + offset == 16 || ctx->processed == ctx->plaintext_len) { + for (i = 0; i < ctx->q; i++) { + if (++(ctx->ctr)[15-i] != 0) { + break; + } + } } input_len -= use_len; @@ -434,167 +425,172 @@ int mbedtls_ccm_update( mbedtls_ccm_context *ctx, } exit: - mbedtls_platform_zeroize( local_output, 16 ); + mbedtls_platform_zeroize(local_output, 16); return ret; } -int mbedtls_ccm_finish( mbedtls_ccm_context *ctx, - unsigned char *tag, size_t tag_len ) +int mbedtls_ccm_finish(mbedtls_ccm_context *ctx, + unsigned char *tag, size_t tag_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char i; - if( ctx->state & CCM_STATE__ERROR ) - { + if (ctx->state & CCM_STATE__ERROR) { return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } - if( ctx->add_len > 0 && !( ctx->state & CCM_STATE__AUTH_DATA_FINISHED ) ) - { + if (ctx->add_len > 0 && !(ctx->state & CCM_STATE__AUTH_DATA_FINISHED)) { return MBEDTLS_ERR_CCM_BAD_INPUT; } - if( ctx->plaintext_len > 0 && ctx->processed != ctx->plaintext_len ) - { + if (ctx->plaintext_len > 0 && ctx->processed != ctx->plaintext_len) { return MBEDTLS_ERR_CCM_BAD_INPUT; } /* * Authentication: reset counter and crypt/mask internal tag */ - for( i = 0; i < ctx->q; i++ ) + for (i = 0; i < ctx->q; i++) { ctx->ctr[15-i] = 0; + } - ret = mbedtls_ccm_crypt( ctx, 0, 16, ctx->y, ctx->y ); - if( ret != 0 ) + ret = mbedtls_ccm_crypt(ctx, 0, 16, ctx->y, ctx->y); + if (ret != 0) { return ret; - if( tag != NULL ) - memcpy( tag, ctx->y, tag_len ); + } + if (tag != NULL) { + memcpy(tag, ctx->y, tag_len); + } mbedtls_ccm_clear_state(ctx); - return( 0 ); + return 0; } /* * Authenticated encryption or decryption */ -static int ccm_auth_crypt( mbedtls_ccm_context *ctx, int mode, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - unsigned char *tag, size_t tag_len ) +static int ccm_auth_crypt(mbedtls_ccm_context *ctx, int mode, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + unsigned char *tag, size_t tag_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; - if( ( ret = mbedtls_ccm_starts( ctx, mode, iv, iv_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ccm_starts(ctx, mode, iv, iv_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_ccm_set_lengths( ctx, add_len, length, tag_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ccm_set_lengths(ctx, add_len, length, tag_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_ccm_update_ad( ctx, add, add_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ccm_update_ad(ctx, add, add_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_ccm_update( ctx, input, length, - output, length, &olen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ccm_update(ctx, input, length, + output, length, &olen)) != 0) { + return ret; + } - if( ( ret = mbedtls_ccm_finish( ctx, tag, tag_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ccm_finish(ctx, tag, tag_len)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* * Authenticated encryption */ -int mbedtls_ccm_star_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - unsigned char *tag, size_t tag_len ) +int mbedtls_ccm_star_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + unsigned char *tag, size_t tag_len) { - return( ccm_auth_crypt( ctx, MBEDTLS_CCM_STAR_ENCRYPT, length, iv, iv_len, - add, add_len, input, output, tag, tag_len ) ); + return ccm_auth_crypt(ctx, MBEDTLS_CCM_STAR_ENCRYPT, length, iv, iv_len, + add, add_len, input, output, tag, tag_len); } -int mbedtls_ccm_encrypt_and_tag( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - unsigned char *tag, size_t tag_len ) +int mbedtls_ccm_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + unsigned char *tag, size_t tag_len) { - return( ccm_auth_crypt( ctx, MBEDTLS_CCM_ENCRYPT, length, iv, iv_len, - add, add_len, input, output, tag, tag_len ) ); + return ccm_auth_crypt(ctx, MBEDTLS_CCM_ENCRYPT, length, iv, iv_len, + add, add_len, input, output, tag, tag_len); } /* * Authenticated decryption */ -static int mbedtls_ccm_compare_tags(const unsigned char *tag1, const unsigned char *tag2, size_t tag_len) +static int mbedtls_ccm_compare_tags(const unsigned char *tag1, + const unsigned char *tag2, + size_t tag_len) { unsigned char i; int diff; /* Check tag in "constant-time" */ - for( diff = 0, i = 0; i < tag_len; i++ ) + for (diff = 0, i = 0; i < tag_len; i++) { diff |= tag1[i] ^ tag2[i]; - - if( diff != 0 ) - { - return( MBEDTLS_ERR_CCM_AUTH_FAILED ); } - return( 0 ); + if (diff != 0) { + return MBEDTLS_ERR_CCM_AUTH_FAILED; + } + + return 0; } -static int ccm_auth_decrypt( mbedtls_ccm_context *ctx, int mode, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - const unsigned char *tag, size_t tag_len ) +static int ccm_auth_decrypt(mbedtls_ccm_context *ctx, int mode, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + const unsigned char *tag, size_t tag_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char check_tag[16]; - if( ( ret = ccm_auth_crypt( ctx, mode, length, - iv, iv_len, add, add_len, - input, output, check_tag, tag_len ) ) != 0 ) - { - return( ret ); + if ((ret = ccm_auth_crypt(ctx, mode, length, + iv, iv_len, add, add_len, + input, output, check_tag, tag_len)) != 0) { + return ret; } - if( ( ret = mbedtls_ccm_compare_tags( tag, check_tag, tag_len ) ) != 0 ) - { - mbedtls_platform_zeroize( output, length ); - return( ret ); + if ((ret = mbedtls_ccm_compare_tags(tag, check_tag, tag_len)) != 0) { + mbedtls_platform_zeroize(output, length); + return ret; } - return( 0 ); + return 0; } -int mbedtls_ccm_star_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - const unsigned char *tag, size_t tag_len ) +int mbedtls_ccm_star_auth_decrypt(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + const unsigned char *tag, size_t tag_len) { - return ccm_auth_decrypt( ctx, MBEDTLS_CCM_STAR_DECRYPT, length, - iv, iv_len, add, add_len, - input, output, tag, tag_len ); + return ccm_auth_decrypt(ctx, MBEDTLS_CCM_STAR_DECRYPT, length, + iv, iv_len, add, add_len, + input, output, tag, tag_len); } -int mbedtls_ccm_auth_decrypt( mbedtls_ccm_context *ctx, size_t length, - const unsigned char *iv, size_t iv_len, - const unsigned char *add, size_t add_len, - const unsigned char *input, unsigned char *output, - const unsigned char *tag, size_t tag_len ) +int mbedtls_ccm_auth_decrypt(mbedtls_ccm_context *ctx, size_t length, + const unsigned char *iv, size_t iv_len, + const unsigned char *add, size_t add_len, + const unsigned char *input, unsigned char *output, + const unsigned char *tag, size_t tag_len) { - return ccm_auth_decrypt( ctx, MBEDTLS_CCM_DECRYPT, length, - iv, iv_len, add, add_len, - input, output, tag, tag_len ); + return ccm_auth_decrypt(ctx, MBEDTLS_CCM_DECRYPT, length, + iv, iv_len, add, add_len, + input, output, tag, tag_len); } #endif /* !MBEDTLS_CCM_ALT */ @@ -631,7 +627,7 @@ static const unsigned char msg_test_data[CCM_SELFTEST_PT_MAX_LEN] = { 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, }; -static const size_t iv_len_test_data [NB_TESTS] = { 7, 8, 12 }; +static const size_t iv_len_test_data[NB_TESTS] = { 7, 8, 12 }; static const size_t add_len_test_data[NB_TESTS] = { 8, 16, 20 }; static const size_t msg_len_test_data[NB_TESTS] = { 4, 16, 24 }; static const size_t tag_len_test_data[NB_TESTS] = { 4, 6, 8 }; @@ -647,7 +643,7 @@ static const unsigned char res_test_data[NB_TESTS][CCM_SELFTEST_CT_MAX_LEN] = { 0x48, 0x43, 0x92, 0xfb, 0xc1, 0xb0, 0x99, 0x51 } }; -int mbedtls_ccm_self_test( int verbose ) +int mbedtls_ccm_self_test(int verbose) { mbedtls_ccm_context ctx; /* @@ -660,70 +656,72 @@ int mbedtls_ccm_self_test( int verbose ) size_t i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_ccm_init( &ctx ); + mbedtls_ccm_init(&ctx); - if( mbedtls_ccm_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, key_test_data, - 8 * sizeof key_test_data ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( " CCM: setup failed" ); - - return( 1 ); - } - - for( i = 0; i < NB_TESTS; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " CCM-AES #%u: ", (unsigned int) i + 1 ); - - memset( plaintext, 0, CCM_SELFTEST_PT_MAX_LEN ); - memset( ciphertext, 0, CCM_SELFTEST_CT_MAX_LEN ); - memcpy( plaintext, msg_test_data, msg_len_test_data[i] ); - - ret = mbedtls_ccm_encrypt_and_tag( &ctx, msg_len_test_data[i], - iv_test_data, iv_len_test_data[i], - ad_test_data, add_len_test_data[i], - plaintext, ciphertext, - ciphertext + msg_len_test_data[i], - tag_len_test_data[i] ); - - if( ret != 0 || - memcmp( ciphertext, res_test_data[i], - msg_len_test_data[i] + tag_len_test_data[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); - } - memset( plaintext, 0, CCM_SELFTEST_PT_MAX_LEN ); - - ret = mbedtls_ccm_auth_decrypt( &ctx, msg_len_test_data[i], - iv_test_data, iv_len_test_data[i], - ad_test_data, add_len_test_data[i], - ciphertext, plaintext, - ciphertext + msg_len_test_data[i], - tag_len_test_data[i] ); - - if( ret != 0 || - memcmp( plaintext, msg_test_data, msg_len_test_data[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); + if (mbedtls_ccm_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, key_test_data, + 8 * sizeof key_test_data) != 0) { + if (verbose != 0) { + mbedtls_printf(" CCM: setup failed"); } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + return 1; } - mbedtls_ccm_free( &ctx ); + for (i = 0; i < NB_TESTS; i++) { + if (verbose != 0) { + mbedtls_printf(" CCM-AES #%u: ", (unsigned int) i + 1); + } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + memset(plaintext, 0, CCM_SELFTEST_PT_MAX_LEN); + memset(ciphertext, 0, CCM_SELFTEST_CT_MAX_LEN); + memcpy(plaintext, msg_test_data, msg_len_test_data[i]); - return( 0 ); + ret = mbedtls_ccm_encrypt_and_tag(&ctx, msg_len_test_data[i], + iv_test_data, iv_len_test_data[i], + ad_test_data, add_len_test_data[i], + plaintext, ciphertext, + ciphertext + msg_len_test_data[i], + tag_len_test_data[i]); + + if (ret != 0 || + memcmp(ciphertext, res_test_data[i], + msg_len_test_data[i] + tag_len_test_data[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } + + return 1; + } + memset(plaintext, 0, CCM_SELFTEST_PT_MAX_LEN); + + ret = mbedtls_ccm_auth_decrypt(&ctx, msg_len_test_data[i], + iv_test_data, iv_len_test_data[i], + ad_test_data, add_len_test_data[i], + ciphertext, plaintext, + ciphertext + msg_len_test_data[i], + tag_len_test_data[i]); + + if (ret != 0 || + memcmp(plaintext, msg_test_data, msg_len_test_data[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } + + return 1; + } + + if (verbose != 0) { + mbedtls_printf("passed\n"); + } + } + + mbedtls_ccm_free(&ctx); + + if (verbose != 0) { + mbedtls_printf("\n"); + } + + return 0; } #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ diff --git a/library/chacha20.c b/library/chacha20.c index d17c58c26..cbb01f4ad 100644 --- a/library/chacha20.c +++ b/library/chacha20.c @@ -36,12 +36,12 @@ #if !defined(MBEDTLS_CHACHA20_ALT) -#define ROTL32( value, amount ) \ - ( (uint32_t) ( (value) << (amount) ) | ( (value) >> ( 32 - (amount) ) ) ) +#define ROTL32(value, amount) \ + ((uint32_t) ((value) << (amount)) | ((value) >> (32 - (amount)))) -#define CHACHA20_CTR_INDEX ( 12U ) +#define CHACHA20_CTR_INDEX (12U) -#define CHACHA20_BLOCK_SIZE_BYTES ( 4U * 16U ) +#define CHACHA20_BLOCK_SIZE_BYTES (4U * 16U) /** * \brief ChaCha20 quarter round operation. @@ -58,31 +58,31 @@ * \param c The index of 'c' in the state. * \param d The index of 'd' in the state. */ -static inline void chacha20_quarter_round( uint32_t state[16], - size_t a, - size_t b, - size_t c, - size_t d ) +static inline void chacha20_quarter_round(uint32_t state[16], + size_t a, + size_t b, + size_t c, + size_t d) { /* a += b; d ^= a; d <<<= 16; */ state[a] += state[b]; state[d] ^= state[a]; - state[d] = ROTL32( state[d], 16 ); + state[d] = ROTL32(state[d], 16); /* c += d; b ^= c; b <<<= 12 */ state[c] += state[d]; state[b] ^= state[c]; - state[b] = ROTL32( state[b], 12 ); + state[b] = ROTL32(state[b], 12); /* a += b; d ^= a; d <<<= 8; */ state[a] += state[b]; state[d] ^= state[a]; - state[d] = ROTL32( state[d], 8 ); + state[d] = ROTL32(state[d], 8); /* c += d; b ^= c; b <<<= 7; */ state[c] += state[d]; state[b] ^= state[c]; - state[b] = ROTL32( state[b], 7 ); + state[b] = ROTL32(state[b], 7); } /** @@ -93,17 +93,17 @@ static inline void chacha20_quarter_round( uint32_t state[16], * * \param state The ChaCha20 state to update. */ -static void chacha20_inner_block( uint32_t state[16] ) +static void chacha20_inner_block(uint32_t state[16]) { - chacha20_quarter_round( state, 0, 4, 8, 12 ); - chacha20_quarter_round( state, 1, 5, 9, 13 ); - chacha20_quarter_round( state, 2, 6, 10, 14 ); - chacha20_quarter_round( state, 3, 7, 11, 15 ); + chacha20_quarter_round(state, 0, 4, 8, 12); + chacha20_quarter_round(state, 1, 5, 9, 13); + chacha20_quarter_round(state, 2, 6, 10, 14); + chacha20_quarter_round(state, 3, 7, 11, 15); - chacha20_quarter_round( state, 0, 5, 10, 15 ); - chacha20_quarter_round( state, 1, 6, 11, 12 ); - chacha20_quarter_round( state, 2, 7, 8, 13 ); - chacha20_quarter_round( state, 3, 4, 9, 14 ); + chacha20_quarter_round(state, 0, 5, 10, 15); + chacha20_quarter_round(state, 1, 6, 11, 12); + chacha20_quarter_round(state, 2, 7, 8, 13); + chacha20_quarter_round(state, 3, 4, 9, 14); } /** @@ -112,29 +112,30 @@ static void chacha20_inner_block( uint32_t state[16] ) * \param initial_state The initial ChaCha20 state (key, nonce, counter). * \param keystream Generated keystream bytes are written to this buffer. */ -static void chacha20_block( const uint32_t initial_state[16], - unsigned char keystream[64] ) +static void chacha20_block(const uint32_t initial_state[16], + unsigned char keystream[64]) { uint32_t working_state[16]; size_t i; - memcpy( working_state, - initial_state, - CHACHA20_BLOCK_SIZE_BYTES ); + memcpy(working_state, + initial_state, + CHACHA20_BLOCK_SIZE_BYTES); - for( i = 0U; i < 10U; i++ ) - chacha20_inner_block( working_state ); + for (i = 0U; i < 10U; i++) { + chacha20_inner_block(working_state); + } - working_state[ 0] += initial_state[ 0]; - working_state[ 1] += initial_state[ 1]; - working_state[ 2] += initial_state[ 2]; - working_state[ 3] += initial_state[ 3]; - working_state[ 4] += initial_state[ 4]; - working_state[ 5] += initial_state[ 5]; - working_state[ 6] += initial_state[ 6]; - working_state[ 7] += initial_state[ 7]; - working_state[ 8] += initial_state[ 8]; - working_state[ 9] += initial_state[ 9]; + working_state[0] += initial_state[0]; + working_state[1] += initial_state[1]; + working_state[2] += initial_state[2]; + working_state[3] += initial_state[3]; + working_state[4] += initial_state[4]; + working_state[5] += initial_state[5]; + working_state[6] += initial_state[6]; + working_state[7] += initial_state[7]; + working_state[8] += initial_state[8]; + working_state[9] += initial_state[9]; working_state[10] += initial_state[10]; working_state[11] += initial_state[11]; working_state[12] += initial_state[12]; @@ -142,35 +143,33 @@ static void chacha20_block( const uint32_t initial_state[16], working_state[14] += initial_state[14]; working_state[15] += initial_state[15]; - for( i = 0U; i < 16; i++ ) - { + for (i = 0U; i < 16; i++) { size_t offset = i * 4U; MBEDTLS_PUT_UINT32_LE(working_state[i], keystream, offset); } - mbedtls_platform_zeroize( working_state, sizeof( working_state ) ); + mbedtls_platform_zeroize(working_state, sizeof(working_state)); } -void mbedtls_chacha20_init( mbedtls_chacha20_context *ctx ) +void mbedtls_chacha20_init(mbedtls_chacha20_context *ctx) { - mbedtls_platform_zeroize( ctx->state, sizeof( ctx->state ) ); - mbedtls_platform_zeroize( ctx->keystream8, sizeof( ctx->keystream8 ) ); + mbedtls_platform_zeroize(ctx->state, sizeof(ctx->state)); + mbedtls_platform_zeroize(ctx->keystream8, sizeof(ctx->keystream8)); /* Initially, there's no keystream bytes available */ ctx->keystream_bytes_used = CHACHA20_BLOCK_SIZE_BYTES; } -void mbedtls_chacha20_free( mbedtls_chacha20_context *ctx ) +void mbedtls_chacha20_free(mbedtls_chacha20_context *ctx) { - if( ctx != NULL ) - { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_chacha20_context ) ); + if (ctx != NULL) { + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_chacha20_context)); } } -int mbedtls_chacha20_setkey( mbedtls_chacha20_context *ctx, - const unsigned char key[32] ) +int mbedtls_chacha20_setkey(mbedtls_chacha20_context *ctx, + const unsigned char key[32]) { /* ChaCha20 constants - the string "expand 32-byte k" */ ctx->state[0] = 0x61707865; @@ -179,50 +178,49 @@ int mbedtls_chacha20_setkey( mbedtls_chacha20_context *ctx, ctx->state[3] = 0x6b206574; /* Set key */ - ctx->state[4] = MBEDTLS_GET_UINT32_LE( key, 0 ); - ctx->state[5] = MBEDTLS_GET_UINT32_LE( key, 4 ); - ctx->state[6] = MBEDTLS_GET_UINT32_LE( key, 8 ); - ctx->state[7] = MBEDTLS_GET_UINT32_LE( key, 12 ); - ctx->state[8] = MBEDTLS_GET_UINT32_LE( key, 16 ); - ctx->state[9] = MBEDTLS_GET_UINT32_LE( key, 20 ); - ctx->state[10] = MBEDTLS_GET_UINT32_LE( key, 24 ); - ctx->state[11] = MBEDTLS_GET_UINT32_LE( key, 28 ); + ctx->state[4] = MBEDTLS_GET_UINT32_LE(key, 0); + ctx->state[5] = MBEDTLS_GET_UINT32_LE(key, 4); + ctx->state[6] = MBEDTLS_GET_UINT32_LE(key, 8); + ctx->state[7] = MBEDTLS_GET_UINT32_LE(key, 12); + ctx->state[8] = MBEDTLS_GET_UINT32_LE(key, 16); + ctx->state[9] = MBEDTLS_GET_UINT32_LE(key, 20); + ctx->state[10] = MBEDTLS_GET_UINT32_LE(key, 24); + ctx->state[11] = MBEDTLS_GET_UINT32_LE(key, 28); - return( 0 ); + return 0; } -int mbedtls_chacha20_starts( mbedtls_chacha20_context* ctx, - const unsigned char nonce[12], - uint32_t counter ) +int mbedtls_chacha20_starts(mbedtls_chacha20_context *ctx, + const unsigned char nonce[12], + uint32_t counter) { /* Counter */ ctx->state[12] = counter; /* Nonce */ - ctx->state[13] = MBEDTLS_GET_UINT32_LE( nonce, 0 ); - ctx->state[14] = MBEDTLS_GET_UINT32_LE( nonce, 4 ); - ctx->state[15] = MBEDTLS_GET_UINT32_LE( nonce, 8 ); + ctx->state[13] = MBEDTLS_GET_UINT32_LE(nonce, 0); + ctx->state[14] = MBEDTLS_GET_UINT32_LE(nonce, 4); + ctx->state[15] = MBEDTLS_GET_UINT32_LE(nonce, 8); - mbedtls_platform_zeroize( ctx->keystream8, sizeof( ctx->keystream8 ) ); + mbedtls_platform_zeroize(ctx->keystream8, sizeof(ctx->keystream8)); /* Initially, there's no keystream bytes available */ ctx->keystream_bytes_used = CHACHA20_BLOCK_SIZE_BYTES; - return( 0 ); + return 0; } -int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, - size_t size, - const unsigned char *input, - unsigned char *output ) +int mbedtls_chacha20_update(mbedtls_chacha20_context *ctx, + size_t size, + const unsigned char *input, + unsigned char *output) { size_t offset = 0U; /* Use leftover keystream bytes, if available */ - while( size > 0U && ctx->keystream_bytes_used < CHACHA20_BLOCK_SIZE_BYTES ) - { + while (size > 0U && ctx->keystream_bytes_used < CHACHA20_BLOCK_SIZE_BYTES) { output[offset] = input[offset] - ^ ctx->keystream8[ctx->keystream_bytes_used]; + ^ ctx->keystream8[ctx->keystream_bytes_used]; ctx->keystream_bytes_used++; offset++; @@ -230,59 +228,59 @@ int mbedtls_chacha20_update( mbedtls_chacha20_context *ctx, } /* Process full blocks */ - while( size >= CHACHA20_BLOCK_SIZE_BYTES ) - { + while (size >= CHACHA20_BLOCK_SIZE_BYTES) { /* Generate new keystream block and increment counter */ - chacha20_block( ctx->state, ctx->keystream8 ); + chacha20_block(ctx->state, ctx->keystream8); ctx->state[CHACHA20_CTR_INDEX]++; - mbedtls_xor( output + offset, input + offset, ctx->keystream8, 64U ); + mbedtls_xor(output + offset, input + offset, ctx->keystream8, 64U); offset += CHACHA20_BLOCK_SIZE_BYTES; size -= CHACHA20_BLOCK_SIZE_BYTES; } /* Last (partial) block */ - if( size > 0U ) - { + if (size > 0U) { /* Generate new keystream block and increment counter */ - chacha20_block( ctx->state, ctx->keystream8 ); + chacha20_block(ctx->state, ctx->keystream8); ctx->state[CHACHA20_CTR_INDEX]++; - mbedtls_xor( output + offset, input + offset, ctx->keystream8, size ); + mbedtls_xor(output + offset, input + offset, ctx->keystream8, size); ctx->keystream_bytes_used = size; } - return( 0 ); + return 0; } -int mbedtls_chacha20_crypt( const unsigned char key[32], - const unsigned char nonce[12], - uint32_t counter, - size_t data_len, - const unsigned char* input, - unsigned char* output ) +int mbedtls_chacha20_crypt(const unsigned char key[32], + const unsigned char nonce[12], + uint32_t counter, + size_t data_len, + const unsigned char *input, + unsigned char *output) { mbedtls_chacha20_context ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_chacha20_init( &ctx ); + mbedtls_chacha20_init(&ctx); - ret = mbedtls_chacha20_setkey( &ctx, key ); - if( ret != 0 ) + ret = mbedtls_chacha20_setkey(&ctx, key); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_chacha20_starts( &ctx, nonce, counter ); - if( ret != 0 ) + ret = mbedtls_chacha20_starts(&ctx, nonce, counter); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_chacha20_update( &ctx, data_len, input, output ); + ret = mbedtls_chacha20_update(&ctx, data_len, input, output); cleanup: - mbedtls_chacha20_free( &ctx ); - return( ret ); + mbedtls_chacha20_free(&ctx); + return ret; } #endif /* !MBEDTLS_CHACHA20_ALT */ @@ -458,50 +456,52 @@ static const size_t test_lengths[2] = /* Make sure no other definition is already present. */ #undef ASSERT -#define ASSERT( cond, args ) \ +#define ASSERT(cond, args) \ do \ { \ - if( ! ( cond ) ) \ + if (!(cond)) \ { \ - if( verbose != 0 ) \ - mbedtls_printf args; \ + if (verbose != 0) \ + mbedtls_printf args; \ \ - return( -1 ); \ + return -1; \ } \ } \ - while( 0 ) + while (0) -int mbedtls_chacha20_self_test( int verbose ) +int mbedtls_chacha20_self_test(int verbose) { unsigned char output[381]; unsigned i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - for( i = 0U; i < 2U; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " ChaCha20 test %u ", i ); + for (i = 0U; i < 2U; i++) { + if (verbose != 0) { + mbedtls_printf(" ChaCha20 test %u ", i); + } - ret = mbedtls_chacha20_crypt( test_keys[i], - test_nonces[i], - test_counters[i], - test_lengths[i], - test_input[i], - output ); + ret = mbedtls_chacha20_crypt(test_keys[i], + test_nonces[i], + test_counters[i], + test_lengths[i], + test_input[i], + output); - ASSERT( 0 == ret, ( "error code: %i\n", ret ) ); + ASSERT(0 == ret, ("error code: %i\n", ret)); - ASSERT( 0 == memcmp( output, test_output[i], test_lengths[i] ), - ( "failed (output)\n" ) ); + ASSERT(0 == memcmp(output, test_output[i], test_lengths[i]), + ("failed (output)\n")); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/chachapoly.c b/library/chachapoly.c index e283853a4..0124d7570 100644 --- a/library/chachapoly.c +++ b/library/chachapoly.c @@ -32,29 +32,30 @@ #if !defined(MBEDTLS_CHACHAPOLY_ALT) -#define CHACHAPOLY_STATE_INIT ( 0 ) -#define CHACHAPOLY_STATE_AAD ( 1 ) -#define CHACHAPOLY_STATE_CIPHERTEXT ( 2 ) /* Encrypting or decrypting */ -#define CHACHAPOLY_STATE_FINISHED ( 3 ) +#define CHACHAPOLY_STATE_INIT (0) +#define CHACHAPOLY_STATE_AAD (1) +#define CHACHAPOLY_STATE_CIPHERTEXT (2) /* Encrypting or decrypting */ +#define CHACHAPOLY_STATE_FINISHED (3) /** * \brief Adds nul bytes to pad the AAD for Poly1305. * * \param ctx The ChaCha20-Poly1305 context. */ -static int chachapoly_pad_aad( mbedtls_chachapoly_context *ctx ) +static int chachapoly_pad_aad(mbedtls_chachapoly_context *ctx) { - uint32_t partial_block_len = (uint32_t) ( ctx->aad_len % 16U ); + uint32_t partial_block_len = (uint32_t) (ctx->aad_len % 16U); unsigned char zeroes[15]; - if( partial_block_len == 0U ) - return( 0 ); + if (partial_block_len == 0U) { + return 0; + } - memset( zeroes, 0, sizeof( zeroes ) ); + memset(zeroes, 0, sizeof(zeroes)); - return( mbedtls_poly1305_update( &ctx->poly1305_ctx, - zeroes, - 16U - partial_block_len ) ); + return mbedtls_poly1305_update(&ctx->poly1305_ctx, + zeroes, + 16U - partial_block_len); } /** @@ -62,80 +63,83 @@ static int chachapoly_pad_aad( mbedtls_chachapoly_context *ctx ) * * \param ctx The ChaCha20-Poly1305 context. */ -static int chachapoly_pad_ciphertext( mbedtls_chachapoly_context *ctx ) +static int chachapoly_pad_ciphertext(mbedtls_chachapoly_context *ctx) { - uint32_t partial_block_len = (uint32_t) ( ctx->ciphertext_len % 16U ); + uint32_t partial_block_len = (uint32_t) (ctx->ciphertext_len % 16U); unsigned char zeroes[15]; - if( partial_block_len == 0U ) - return( 0 ); + if (partial_block_len == 0U) { + return 0; + } - memset( zeroes, 0, sizeof( zeroes ) ); - return( mbedtls_poly1305_update( &ctx->poly1305_ctx, - zeroes, - 16U - partial_block_len ) ); + memset(zeroes, 0, sizeof(zeroes)); + return mbedtls_poly1305_update(&ctx->poly1305_ctx, + zeroes, + 16U - partial_block_len); } -void mbedtls_chachapoly_init( mbedtls_chachapoly_context *ctx ) +void mbedtls_chachapoly_init(mbedtls_chachapoly_context *ctx) { - mbedtls_chacha20_init( &ctx->chacha20_ctx ); - mbedtls_poly1305_init( &ctx->poly1305_ctx ); + mbedtls_chacha20_init(&ctx->chacha20_ctx); + mbedtls_poly1305_init(&ctx->poly1305_ctx); ctx->aad_len = 0U; ctx->ciphertext_len = 0U; ctx->state = CHACHAPOLY_STATE_INIT; ctx->mode = MBEDTLS_CHACHAPOLY_ENCRYPT; } -void mbedtls_chachapoly_free( mbedtls_chachapoly_context *ctx ) +void mbedtls_chachapoly_free(mbedtls_chachapoly_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_chacha20_free( &ctx->chacha20_ctx ); - mbedtls_poly1305_free( &ctx->poly1305_ctx ); + mbedtls_chacha20_free(&ctx->chacha20_ctx); + mbedtls_poly1305_free(&ctx->poly1305_ctx); ctx->aad_len = 0U; ctx->ciphertext_len = 0U; ctx->state = CHACHAPOLY_STATE_INIT; ctx->mode = MBEDTLS_CHACHAPOLY_ENCRYPT; } -int mbedtls_chachapoly_setkey( mbedtls_chachapoly_context *ctx, - const unsigned char key[32] ) +int mbedtls_chachapoly_setkey(mbedtls_chachapoly_context *ctx, + const unsigned char key[32]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_chacha20_setkey( &ctx->chacha20_ctx, key ); + ret = mbedtls_chacha20_setkey(&ctx->chacha20_ctx, key); - return( ret ); + return ret; } -int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx, - const unsigned char nonce[12], - mbedtls_chachapoly_mode_t mode ) +int mbedtls_chachapoly_starts(mbedtls_chachapoly_context *ctx, + const unsigned char nonce[12], + mbedtls_chachapoly_mode_t mode) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char poly1305_key[64]; /* Set counter = 0, will be update to 1 when generating Poly1305 key */ - ret = mbedtls_chacha20_starts( &ctx->chacha20_ctx, nonce, 0U ); - if( ret != 0 ) + ret = mbedtls_chacha20_starts(&ctx->chacha20_ctx, nonce, 0U); + if (ret != 0) { goto cleanup; + } /* Generate the Poly1305 key by getting the ChaCha20 keystream output with * counter = 0. This is the same as encrypting a buffer of zeroes. * Only the first 256-bits (32 bytes) of the key is used for Poly1305. * The other 256 bits are discarded. */ - memset( poly1305_key, 0, sizeof( poly1305_key ) ); - ret = mbedtls_chacha20_update( &ctx->chacha20_ctx, sizeof( poly1305_key ), - poly1305_key, poly1305_key ); - if( ret != 0 ) + memset(poly1305_key, 0, sizeof(poly1305_key)); + ret = mbedtls_chacha20_update(&ctx->chacha20_ctx, sizeof(poly1305_key), + poly1305_key, poly1305_key); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_poly1305_starts( &ctx->poly1305_ctx, poly1305_key ); + ret = mbedtls_poly1305_starts(&ctx->poly1305_ctx, poly1305_key); - if( ret == 0 ) - { + if (ret == 0) { ctx->aad_len = 0U; ctx->ciphertext_len = 0U; ctx->state = CHACHAPOLY_STATE_AAD; @@ -143,92 +147,91 @@ int mbedtls_chachapoly_starts( mbedtls_chachapoly_context *ctx, } cleanup: - mbedtls_platform_zeroize( poly1305_key, 64U ); - return( ret ); + mbedtls_platform_zeroize(poly1305_key, 64U); + return ret; } -int mbedtls_chachapoly_update_aad( mbedtls_chachapoly_context *ctx, - const unsigned char *aad, - size_t aad_len ) +int mbedtls_chachapoly_update_aad(mbedtls_chachapoly_context *ctx, + const unsigned char *aad, + size_t aad_len) { - if( ctx->state != CHACHAPOLY_STATE_AAD ) - return( MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + if (ctx->state != CHACHAPOLY_STATE_AAD) { + return MBEDTLS_ERR_CHACHAPOLY_BAD_STATE; + } ctx->aad_len += aad_len; - return( mbedtls_poly1305_update( &ctx->poly1305_ctx, aad, aad_len ) ); + return mbedtls_poly1305_update(&ctx->poly1305_ctx, aad, aad_len); } -int mbedtls_chachapoly_update( mbedtls_chachapoly_context *ctx, - size_t len, - const unsigned char *input, - unsigned char *output ) +int mbedtls_chachapoly_update(mbedtls_chachapoly_context *ctx, + size_t len, + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ctx->state != CHACHAPOLY_STATE_AAD ) && - ( ctx->state != CHACHAPOLY_STATE_CIPHERTEXT ) ) - { - return( MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + if ((ctx->state != CHACHAPOLY_STATE_AAD) && + (ctx->state != CHACHAPOLY_STATE_CIPHERTEXT)) { + return MBEDTLS_ERR_CHACHAPOLY_BAD_STATE; } - if( ctx->state == CHACHAPOLY_STATE_AAD ) - { + if (ctx->state == CHACHAPOLY_STATE_AAD) { ctx->state = CHACHAPOLY_STATE_CIPHERTEXT; - ret = chachapoly_pad_aad( ctx ); - if( ret != 0 ) - return( ret ); + ret = chachapoly_pad_aad(ctx); + if (ret != 0) { + return ret; + } } ctx->ciphertext_len += len; - if( ctx->mode == MBEDTLS_CHACHAPOLY_ENCRYPT ) - { - ret = mbedtls_chacha20_update( &ctx->chacha20_ctx, len, input, output ); - if( ret != 0 ) - return( ret ); + if (ctx->mode == MBEDTLS_CHACHAPOLY_ENCRYPT) { + ret = mbedtls_chacha20_update(&ctx->chacha20_ctx, len, input, output); + if (ret != 0) { + return ret; + } - ret = mbedtls_poly1305_update( &ctx->poly1305_ctx, output, len ); - if( ret != 0 ) - return( ret ); - } - else /* DECRYPT */ - { - ret = mbedtls_poly1305_update( &ctx->poly1305_ctx, input, len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_poly1305_update(&ctx->poly1305_ctx, output, len); + if (ret != 0) { + return ret; + } + } else { /* DECRYPT */ + ret = mbedtls_poly1305_update(&ctx->poly1305_ctx, input, len); + if (ret != 0) { + return ret; + } - ret = mbedtls_chacha20_update( &ctx->chacha20_ctx, len, input, output ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_chacha20_update(&ctx->chacha20_ctx, len, input, output); + if (ret != 0) { + return ret; + } } - return( 0 ); + return 0; } -int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx, - unsigned char mac[16] ) +int mbedtls_chachapoly_finish(mbedtls_chachapoly_context *ctx, + unsigned char mac[16]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char len_block[16]; - if( ctx->state == CHACHAPOLY_STATE_INIT ) - { - return( MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + if (ctx->state == CHACHAPOLY_STATE_INIT) { + return MBEDTLS_ERR_CHACHAPOLY_BAD_STATE; } - if( ctx->state == CHACHAPOLY_STATE_AAD ) - { - ret = chachapoly_pad_aad( ctx ); - if( ret != 0 ) - return( ret ); - } - else if( ctx->state == CHACHAPOLY_STATE_CIPHERTEXT ) - { - ret = chachapoly_pad_ciphertext( ctx ); - if( ret != 0 ) - return( ret ); + if (ctx->state == CHACHAPOLY_STATE_AAD) { + ret = chachapoly_pad_aad(ctx); + if (ret != 0) { + return ret; + } + } else if (ctx->state == CHACHAPOLY_STATE_CIPHERTEXT) { + ret = chachapoly_pad_ciphertext(ctx); + if (ret != 0) { + return ret; + } } ctx->state = CHACHAPOLY_STATE_FINISHED; @@ -239,91 +242,94 @@ int mbedtls_chachapoly_finish( mbedtls_chachapoly_context *ctx, MBEDTLS_PUT_UINT64_LE(ctx->aad_len, len_block, 0); MBEDTLS_PUT_UINT64_LE(ctx->ciphertext_len, len_block, 8); - ret = mbedtls_poly1305_update( &ctx->poly1305_ctx, len_block, 16U ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_poly1305_update(&ctx->poly1305_ctx, len_block, 16U); + if (ret != 0) { + return ret; + } - ret = mbedtls_poly1305_finish( &ctx->poly1305_ctx, mac ); + ret = mbedtls_poly1305_finish(&ctx->poly1305_ctx, mac); - return( ret ); + return ret; } -static int chachapoly_crypt_and_tag( mbedtls_chachapoly_context *ctx, - mbedtls_chachapoly_mode_t mode, - size_t length, - const unsigned char nonce[12], - const unsigned char *aad, - size_t aad_len, - const unsigned char *input, - unsigned char *output, - unsigned char tag[16] ) +static int chachapoly_crypt_and_tag(mbedtls_chachapoly_context *ctx, + mbedtls_chachapoly_mode_t mode, + size_t length, + const unsigned char nonce[12], + const unsigned char *aad, + size_t aad_len, + const unsigned char *input, + unsigned char *output, + unsigned char tag[16]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_chachapoly_starts( ctx, nonce, mode ); - if( ret != 0 ) + ret = mbedtls_chachapoly_starts(ctx, nonce, mode); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_chachapoly_update_aad( ctx, aad, aad_len ); - if( ret != 0 ) + ret = mbedtls_chachapoly_update_aad(ctx, aad, aad_len); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_chachapoly_update( ctx, length, input, output ); - if( ret != 0 ) + ret = mbedtls_chachapoly_update(ctx, length, input, output); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_chachapoly_finish( ctx, tag ); + ret = mbedtls_chachapoly_finish(ctx, tag); cleanup: - return( ret ); + return ret; } -int mbedtls_chachapoly_encrypt_and_tag( mbedtls_chachapoly_context *ctx, - size_t length, - const unsigned char nonce[12], - const unsigned char *aad, - size_t aad_len, - const unsigned char *input, - unsigned char *output, - unsigned char tag[16] ) +int mbedtls_chachapoly_encrypt_and_tag(mbedtls_chachapoly_context *ctx, + size_t length, + const unsigned char nonce[12], + const unsigned char *aad, + size_t aad_len, + const unsigned char *input, + unsigned char *output, + unsigned char tag[16]) { - return( chachapoly_crypt_and_tag( ctx, MBEDTLS_CHACHAPOLY_ENCRYPT, - length, nonce, aad, aad_len, - input, output, tag ) ); + return chachapoly_crypt_and_tag(ctx, MBEDTLS_CHACHAPOLY_ENCRYPT, + length, nonce, aad, aad_len, + input, output, tag); } -int mbedtls_chachapoly_auth_decrypt( mbedtls_chachapoly_context *ctx, - size_t length, - const unsigned char nonce[12], - const unsigned char *aad, - size_t aad_len, - const unsigned char tag[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_chachapoly_auth_decrypt(mbedtls_chachapoly_context *ctx, + size_t length, + const unsigned char nonce[12], + const unsigned char *aad, + size_t aad_len, + const unsigned char tag[16], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char check_tag[16]; size_t i; int diff; - if( ( ret = chachapoly_crypt_and_tag( ctx, - MBEDTLS_CHACHAPOLY_DECRYPT, length, nonce, - aad, aad_len, input, output, check_tag ) ) != 0 ) - { - return( ret ); + if ((ret = chachapoly_crypt_and_tag(ctx, + MBEDTLS_CHACHAPOLY_DECRYPT, length, nonce, + aad, aad_len, input, output, check_tag)) != 0) { + return ret; } /* Check tag in "constant-time" */ - for( diff = 0, i = 0; i < sizeof( check_tag ); i++ ) + for (diff = 0, i = 0; i < sizeof(check_tag); i++) { diff |= tag[i] ^ check_tag[i]; - - if( diff != 0 ) - { - mbedtls_platform_zeroize( output, length ); - return( MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED ); } - return( 0 ); + if (diff != 0) { + mbedtls_platform_zeroize(output, length); + return MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED; + } + + return 0; } #endif /* MBEDTLS_CHACHAPOLY_ALT */ @@ -419,20 +425,20 @@ static const unsigned char test_mac[1][16] = /* Make sure no other definition is already present. */ #undef ASSERT -#define ASSERT( cond, args ) \ +#define ASSERT(cond, args) \ do \ { \ - if( ! ( cond ) ) \ + if (!(cond)) \ { \ - if( verbose != 0 ) \ - mbedtls_printf args; \ + if (verbose != 0) \ + mbedtls_printf args; \ \ - return( -1 ); \ + return -1; \ } \ } \ - while( 0 ) + while (0) -int mbedtls_chachapoly_self_test( int verbose ) +int mbedtls_chachapoly_self_test(int verbose) { mbedtls_chachapoly_context ctx; unsigned i; @@ -440,43 +446,45 @@ int mbedtls_chachapoly_self_test( int verbose ) unsigned char output[200]; unsigned char mac[16]; - for( i = 0U; i < 1U; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " ChaCha20-Poly1305 test %u ", i ); + for (i = 0U; i < 1U; i++) { + if (verbose != 0) { + mbedtls_printf(" ChaCha20-Poly1305 test %u ", i); + } - mbedtls_chachapoly_init( &ctx ); + mbedtls_chachapoly_init(&ctx); - ret = mbedtls_chachapoly_setkey( &ctx, test_key[i] ); - ASSERT( 0 == ret, ( "setkey() error code: %i\n", ret ) ); + ret = mbedtls_chachapoly_setkey(&ctx, test_key[i]); + ASSERT(0 == ret, ("setkey() error code: %i\n", ret)); - ret = mbedtls_chachapoly_encrypt_and_tag( &ctx, - test_input_len[i], - test_nonce[i], - test_aad[i], - test_aad_len[i], - test_input[i], - output, - mac ); + ret = mbedtls_chachapoly_encrypt_and_tag(&ctx, + test_input_len[i], + test_nonce[i], + test_aad[i], + test_aad_len[i], + test_input[i], + output, + mac); - ASSERT( 0 == ret, ( "crypt_and_tag() error code: %i\n", ret ) ); + ASSERT(0 == ret, ("crypt_and_tag() error code: %i\n", ret)); - ASSERT( 0 == memcmp( output, test_output[i], test_input_len[i] ), - ( "failure (wrong output)\n" ) ); + ASSERT(0 == memcmp(output, test_output[i], test_input_len[i]), + ("failure (wrong output)\n")); - ASSERT( 0 == memcmp( mac, test_mac[i], 16U ), - ( "failure (wrong MAC)\n" ) ); + ASSERT(0 == memcmp(mac, test_mac[i], 16U), + ("failure (wrong MAC)\n")); - mbedtls_chachapoly_free( &ctx ); + mbedtls_chachapoly_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/check_crypto_config.h b/library/check_crypto_config.h index e60e66616..58175e374 100644 --- a/library/check_crypto_config.h +++ b/library/check_crypto_config.h @@ -29,57 +29,57 @@ #define MBEDTLS_CHECK_CRYPTO_CONFIG_H #if defined(PSA_WANT_ALG_CCM) && \ - !( defined(PSA_WANT_KEY_TYPE_AES) || \ - defined(PSA_WANT_KEY_TYPE_CAMELLIA) ) + !(defined(PSA_WANT_KEY_TYPE_AES) || \ + defined(PSA_WANT_KEY_TYPE_CAMELLIA)) #error "PSA_WANT_ALG_CCM defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_CMAC) && \ - !( defined(PSA_WANT_KEY_TYPE_AES) || \ - defined(PSA_WANT_KEY_TYPE_CAMELLIA) || \ - defined(PSA_WANT_KEY_TYPE_DES) ) + !(defined(PSA_WANT_KEY_TYPE_AES) || \ + defined(PSA_WANT_KEY_TYPE_CAMELLIA) || \ + defined(PSA_WANT_KEY_TYPE_DES)) #error "PSA_WANT_ALG_CMAC defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA) && \ - !( defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) #error "PSA_WANT_ALG_DETERMINISTIC_ECDSA defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_ECDSA) && \ - !( defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) #error "PSA_WANT_ALG_ECDSA defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_GCM) && \ - !( defined(PSA_WANT_KEY_TYPE_AES) || \ - defined(PSA_WANT_KEY_TYPE_CAMELLIA) ) + !(defined(PSA_WANT_KEY_TYPE_AES) || \ + defined(PSA_WANT_KEY_TYPE_CAMELLIA)) #error "PSA_WANT_ALG_GCM defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_RSA_PKCS1V15_CRYPT) && \ - !( defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)) #error "PSA_WANT_ALG_RSA_PKCS1V15_CRYPT defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_RSA_PKCS1V15_SIGN) && \ - !( defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)) #error "PSA_WANT_ALG_RSA_PKCS1V15_SIGN defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_RSA_OAEP) && \ - !( defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)) #error "PSA_WANT_ALG_RSA_OAEP defined, but not all prerequisites" #endif #if defined(PSA_WANT_ALG_RSA_PSS) && \ - !( defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) ) + !(defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY)) #error "PSA_WANT_ALG_RSA_PSS defined, but not all prerequisites" #endif @@ -89,7 +89,7 @@ #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_USE_PSA_CRYPTO) && \ - !( defined(PSA_WANT_ALG_SHA_1) || defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_512) ) + !(defined(PSA_WANT_ALG_SHA_1) || defined(PSA_WANT_ALG_SHA_256) || defined(PSA_WANT_ALG_SHA_512)) #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" #endif diff --git a/library/cipher.c b/library/cipher.c index dffe3adca..81e855d46 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -67,128 +67,135 @@ static int supported_init = 0; -const int *mbedtls_cipher_list( void ) +const int *mbedtls_cipher_list(void) { const mbedtls_cipher_definition_t *def; int *type; - if( ! supported_init ) - { + if (!supported_init) { def = mbedtls_cipher_definitions; type = mbedtls_cipher_supported; - while( def->type != 0 ) + while (def->type != 0) { *type++ = (*def++).type; + } *type = 0; supported_init = 1; } - return( mbedtls_cipher_supported ); + return mbedtls_cipher_supported; } const mbedtls_cipher_info_t *mbedtls_cipher_info_from_type( - const mbedtls_cipher_type_t cipher_type ) + const mbedtls_cipher_type_t cipher_type) { const mbedtls_cipher_definition_t *def; - for( def = mbedtls_cipher_definitions; def->info != NULL; def++ ) - if( def->type == cipher_type ) - return( def->info ); + for (def = mbedtls_cipher_definitions; def->info != NULL; def++) { + if (def->type == cipher_type) { + return def->info; + } + } - return( NULL ); + return NULL; } const mbedtls_cipher_info_t *mbedtls_cipher_info_from_string( - const char *cipher_name ) + const char *cipher_name) { const mbedtls_cipher_definition_t *def; - if( NULL == cipher_name ) - return( NULL ); + if (NULL == cipher_name) { + return NULL; + } - for( def = mbedtls_cipher_definitions; def->info != NULL; def++ ) - if( ! strcmp( def->info->name, cipher_name ) ) - return( def->info ); + for (def = mbedtls_cipher_definitions; def->info != NULL; def++) { + if (!strcmp(def->info->name, cipher_name)) { + return def->info; + } + } - return( NULL ); + return NULL; } const mbedtls_cipher_info_t *mbedtls_cipher_info_from_values( const mbedtls_cipher_id_t cipher_id, int key_bitlen, - const mbedtls_cipher_mode_t mode ) + const mbedtls_cipher_mode_t mode) { const mbedtls_cipher_definition_t *def; - for( def = mbedtls_cipher_definitions; def->info != NULL; def++ ) - if( def->info->base->cipher == cipher_id && + for (def = mbedtls_cipher_definitions; def->info != NULL; def++) { + if (def->info->base->cipher == cipher_id && def->info->key_bitlen == (unsigned) key_bitlen && - def->info->mode == mode ) - return( def->info ); + def->info->mode == mode) { + return def->info; + } + } - return( NULL ); + return NULL; } -void mbedtls_cipher_init( mbedtls_cipher_context_t *ctx ) +void mbedtls_cipher_init(mbedtls_cipher_context_t *ctx) { - memset( ctx, 0, sizeof( mbedtls_cipher_context_t ) ); + memset(ctx, 0, sizeof(mbedtls_cipher_context_t)); } -void mbedtls_cipher_free( mbedtls_cipher_context_t *ctx ) +void mbedtls_cipher_free(mbedtls_cipher_context_t *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { - if( ctx->cipher_ctx != NULL ) - { + if (ctx->psa_enabled == 1) { + if (ctx->cipher_ctx != NULL) { mbedtls_cipher_context_psa * const cipher_psa = (mbedtls_cipher_context_psa *) ctx->cipher_ctx; - if( cipher_psa->slot_state == MBEDTLS_CIPHER_PSA_KEY_OWNED ) - { + if (cipher_psa->slot_state == MBEDTLS_CIPHER_PSA_KEY_OWNED) { /* xxx_free() doesn't allow to return failures. */ - (void) psa_destroy_key( cipher_psa->slot ); + (void) psa_destroy_key(cipher_psa->slot); } - mbedtls_platform_zeroize( cipher_psa, sizeof( *cipher_psa ) ); - mbedtls_free( cipher_psa ); + mbedtls_platform_zeroize(cipher_psa, sizeof(*cipher_psa)); + mbedtls_free(cipher_psa); } - mbedtls_platform_zeroize( ctx, sizeof(mbedtls_cipher_context_t) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_cipher_context_t)); return; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_CMAC_C) - if( ctx->cmac_ctx ) - { - mbedtls_platform_zeroize( ctx->cmac_ctx, - sizeof( mbedtls_cmac_context_t ) ); - mbedtls_free( ctx->cmac_ctx ); + if (ctx->cmac_ctx) { + mbedtls_platform_zeroize(ctx->cmac_ctx, + sizeof(mbedtls_cmac_context_t)); + mbedtls_free(ctx->cmac_ctx); } #endif - if( ctx->cipher_ctx ) - ctx->cipher_info->base->ctx_free_func( ctx->cipher_ctx ); + if (ctx->cipher_ctx) { + ctx->cipher_info->base->ctx_free_func(ctx->cipher_ctx); + } - mbedtls_platform_zeroize( ctx, sizeof(mbedtls_cipher_context_t) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_cipher_context_t)); } -int mbedtls_cipher_setup( mbedtls_cipher_context_t *ctx, - const mbedtls_cipher_info_t *cipher_info ) +int mbedtls_cipher_setup(mbedtls_cipher_context_t *ctx, + const mbedtls_cipher_info_t *cipher_info) { - if( cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - memset( ctx, 0, sizeof( mbedtls_cipher_context_t ) ); + memset(ctx, 0, sizeof(mbedtls_cipher_context_t)); - if( NULL == ( ctx->cipher_ctx = cipher_info->base->ctx_alloc_func() ) ) - return( MBEDTLS_ERR_CIPHER_ALLOC_FAILED ); + if (NULL == (ctx->cipher_ctx = cipher_info->base->ctx_alloc_func())) { + return MBEDTLS_ERR_CIPHER_ALLOC_FAILED; + } ctx->cipher_info = cipher_info; @@ -197,106 +204,113 @@ int mbedtls_cipher_setup( mbedtls_cipher_context_t *ctx, * Ignore possible errors caused by a cipher mode that doesn't use padding */ #if defined(MBEDTLS_CIPHER_PADDING_PKCS7) - (void) mbedtls_cipher_set_padding_mode( ctx, MBEDTLS_PADDING_PKCS7 ); + (void) mbedtls_cipher_set_padding_mode(ctx, MBEDTLS_PADDING_PKCS7); #else - (void) mbedtls_cipher_set_padding_mode( ctx, MBEDTLS_PADDING_NONE ); + (void) mbedtls_cipher_set_padding_mode(ctx, MBEDTLS_PADDING_NONE); #endif #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ - return( 0 ); + return 0; } #if defined(MBEDTLS_USE_PSA_CRYPTO) #if !defined(MBEDTLS_DEPRECATED_REMOVED) -int mbedtls_cipher_setup_psa( mbedtls_cipher_context_t *ctx, - const mbedtls_cipher_info_t *cipher_info, - size_t taglen ) +int mbedtls_cipher_setup_psa(mbedtls_cipher_context_t *ctx, + const mbedtls_cipher_info_t *cipher_info, + size_t taglen) { psa_algorithm_t alg; mbedtls_cipher_context_psa *cipher_psa; - if( NULL == cipher_info || NULL == ctx ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == cipher_info || NULL == ctx) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } /* Check that the underlying cipher mode and cipher type are * supported by the underlying PSA Crypto implementation. */ - alg = mbedtls_psa_translate_cipher_mode( cipher_info->mode, taglen ); - if( alg == 0 ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); - if( mbedtls_psa_translate_cipher_type( cipher_info->type ) == 0 ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + alg = mbedtls_psa_translate_cipher_mode(cipher_info->mode, taglen); + if (alg == 0) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } + if (mbedtls_psa_translate_cipher_type(cipher_info->type) == 0) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } - memset( ctx, 0, sizeof( mbedtls_cipher_context_t ) ); + memset(ctx, 0, sizeof(mbedtls_cipher_context_t)); - cipher_psa = mbedtls_calloc( 1, sizeof(mbedtls_cipher_context_psa ) ); - if( cipher_psa == NULL ) - return( MBEDTLS_ERR_CIPHER_ALLOC_FAILED ); + cipher_psa = mbedtls_calloc(1, sizeof(mbedtls_cipher_context_psa)); + if (cipher_psa == NULL) { + return MBEDTLS_ERR_CIPHER_ALLOC_FAILED; + } cipher_psa->alg = alg; ctx->cipher_ctx = cipher_psa; ctx->cipher_info = cipher_info; ctx->psa_enabled = 1; - return( 0 ); + return 0; } #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ -int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, - const unsigned char *key, - int key_bitlen, - const mbedtls_operation_t operation ) +int mbedtls_cipher_setkey(mbedtls_cipher_context_t *ctx, + const unsigned char *key, + int key_bitlen, + const mbedtls_operation_t operation) { - if( operation != MBEDTLS_ENCRYPT && operation != MBEDTLS_DECRYPT ) + if (operation != MBEDTLS_ENCRYPT && operation != MBEDTLS_DECRYPT) { return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + } + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { mbedtls_cipher_context_psa * const cipher_psa = (mbedtls_cipher_context_psa *) ctx->cipher_ctx; - size_t const key_bytelen = ( (size_t) key_bitlen + 7 ) / 8; + size_t const key_bytelen = ((size_t) key_bitlen + 7) / 8; psa_status_t status; psa_key_type_t key_type; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; /* PSA Crypto API only accepts byte-aligned keys. */ - if( key_bitlen % 8 != 0 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (key_bitlen % 8 != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } /* Don't allow keys to be set multiple times. */ - if( cipher_psa->slot_state != MBEDTLS_CIPHER_PSA_KEY_UNSET ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (cipher_psa->slot_state != MBEDTLS_CIPHER_PSA_KEY_UNSET) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } key_type = mbedtls_psa_translate_cipher_type( - ctx->cipher_info->type ); - if( key_type == 0 ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); - psa_set_key_type( &attributes, key_type ); + ctx->cipher_info->type); + if (key_type == 0) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } + psa_set_key_type(&attributes, key_type); /* Mbed TLS' cipher layer doesn't enforce the mode of operation * (encrypt vs. decrypt): it is possible to setup a key for encryption * and use it for AEAD decryption. Until tests relying on this * are changed, allow any usage in PSA. */ - psa_set_key_usage_flags( &attributes, - /* mbedtls_psa_translate_cipher_operation( operation ); */ - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, cipher_psa->alg ); + psa_set_key_usage_flags(&attributes, + /* mbedtls_psa_translate_cipher_operation( operation ); */ + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, cipher_psa->alg); - status = psa_import_key( &attributes, key, key_bytelen, - &cipher_psa->slot ); - switch( status ) - { + status = psa_import_key(&attributes, key, key_bytelen, + &cipher_psa->slot); + switch (status) { case PSA_SUCCESS: break; case PSA_ERROR_INSUFFICIENT_MEMORY: - return( MBEDTLS_ERR_CIPHER_ALLOC_FAILED ); + return MBEDTLS_ERR_CIPHER_ALLOC_FAILED; case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; default: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } /* Indicate that we own the key slot and need to * destroy it in mbedtls_cipher_free(). */ @@ -304,14 +318,13 @@ int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, ctx->key_bitlen = key_bitlen; ctx->operation = operation; - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ( ctx->cipher_info->flags & MBEDTLS_CIPHER_VARIABLE_KEY_LEN ) == 0 && - (int) ctx->cipher_info->key_bitlen != key_bitlen ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if ((ctx->cipher_info->flags & MBEDTLS_CIPHER_VARIABLE_KEY_LEN) == 0 && + (int) ctx->cipher_info->key_bitlen != key_bitlen) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } ctx->key_bitlen = key_bitlen; @@ -320,302 +333,291 @@ int mbedtls_cipher_setkey( mbedtls_cipher_context_t *ctx, /* * For OFB, CFB and CTR mode always use the encryption key schedule */ - if( MBEDTLS_ENCRYPT == operation || + if (MBEDTLS_ENCRYPT == operation || MBEDTLS_MODE_CFB == ctx->cipher_info->mode || MBEDTLS_MODE_OFB == ctx->cipher_info->mode || - MBEDTLS_MODE_CTR == ctx->cipher_info->mode ) - { - return( ctx->cipher_info->base->setkey_enc_func( ctx->cipher_ctx, key, - ctx->key_bitlen ) ); + MBEDTLS_MODE_CTR == ctx->cipher_info->mode) { + return ctx->cipher_info->base->setkey_enc_func(ctx->cipher_ctx, key, + ctx->key_bitlen); } - if( MBEDTLS_DECRYPT == operation ) - return( ctx->cipher_info->base->setkey_dec_func( ctx->cipher_ctx, key, - ctx->key_bitlen ) ); + if (MBEDTLS_DECRYPT == operation) { + return ctx->cipher_info->base->setkey_dec_func(ctx->cipher_ctx, key, + ctx->key_bitlen); + } - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } -int mbedtls_cipher_set_iv( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, - size_t iv_len ) +int mbedtls_cipher_set_iv(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, + size_t iv_len) { size_t actual_iv_size; - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* avoid buffer overflow in ctx->iv */ - if( iv_len > MBEDTLS_MAX_IV_LENGTH ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + if (iv_len > MBEDTLS_MAX_IV_LENGTH) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } - if( ( ctx->cipher_info->flags & MBEDTLS_CIPHER_VARIABLE_IV_LEN ) != 0 ) + if ((ctx->cipher_info->flags & MBEDTLS_CIPHER_VARIABLE_IV_LEN) != 0) { actual_iv_size = iv_len; - else - { + } else { actual_iv_size = ctx->cipher_info->iv_size; /* avoid reading past the end of input buffer */ - if( actual_iv_size > iv_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (actual_iv_size > iv_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } } #if defined(MBEDTLS_CHACHA20_C) - if ( ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20 ) - { + if (ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20) { /* Even though the actual_iv_size is overwritten with a correct value * of 12 from the cipher info, return an error to indicate that * the input iv_len is wrong. */ - if( iv_len != 12 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (iv_len != 12) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if ( 0 != mbedtls_chacha20_starts( (mbedtls_chacha20_context*)ctx->cipher_ctx, - iv, - 0U ) ) /* Initial counter value */ - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (0 != mbedtls_chacha20_starts((mbedtls_chacha20_context *) ctx->cipher_ctx, + iv, + 0U)) { /* Initial counter value */ + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } } #if defined(MBEDTLS_CHACHAPOLY_C) - if ( ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 && - iv_len != 12 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 && + iv_len != 12) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #endif #endif #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { - return( mbedtls_gcm_starts( (mbedtls_gcm_context *) ctx->cipher_ctx, - ctx->operation, - iv, iv_len ) ); + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { + return mbedtls_gcm_starts((mbedtls_gcm_context *) ctx->cipher_ctx, + ctx->operation, + iv, iv_len); } #endif #if defined(MBEDTLS_CCM_C) - if( MBEDTLS_MODE_CCM_STAR_NO_TAG == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_CCM_STAR_NO_TAG == ctx->cipher_info->mode) { int set_lengths_result; int ccm_star_mode; set_lengths_result = mbedtls_ccm_set_lengths( - (mbedtls_ccm_context *) ctx->cipher_ctx, - 0, 0, 0 ); - if( set_lengths_result != 0 ) + (mbedtls_ccm_context *) ctx->cipher_ctx, + 0, 0, 0); + if (set_lengths_result != 0) { return set_lengths_result; + } - if( ctx->operation == MBEDTLS_DECRYPT ) + if (ctx->operation == MBEDTLS_DECRYPT) { ccm_star_mode = MBEDTLS_CCM_STAR_DECRYPT; - else if( ctx->operation == MBEDTLS_ENCRYPT ) + } else if (ctx->operation == MBEDTLS_ENCRYPT) { ccm_star_mode = MBEDTLS_CCM_STAR_ENCRYPT; - else + } else { return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( mbedtls_ccm_starts( (mbedtls_ccm_context *) ctx->cipher_ctx, - ccm_star_mode, - iv, iv_len ) ); + return mbedtls_ccm_starts((mbedtls_ccm_context *) ctx->cipher_ctx, + ccm_star_mode, + iv, iv_len); } #endif - if ( actual_iv_size != 0 ) - { - memcpy( ctx->iv, iv, actual_iv_size ); + if (actual_iv_size != 0) { + memcpy(ctx->iv, iv, actual_iv_size); ctx->iv_size = actual_iv_size; } - return( 0 ); + return 0; } -int mbedtls_cipher_reset( mbedtls_cipher_context_t *ctx ) +int mbedtls_cipher_reset(mbedtls_cipher_context_t *ctx) { - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* We don't support resetting PSA-based * cipher contexts, yet. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ ctx->unprocessed_len = 0; - return( 0 ); + return 0; } #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) -int mbedtls_cipher_update_ad( mbedtls_cipher_context_t *ctx, - const unsigned char *ad, size_t ad_len ) +int mbedtls_cipher_update_ad(mbedtls_cipher_context_t *ctx, + const unsigned char *ad, size_t ad_len) { - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { - return( mbedtls_gcm_update_ad( (mbedtls_gcm_context *) ctx->cipher_ctx, - ad, ad_len ) ); + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { + return mbedtls_gcm_update_ad((mbedtls_gcm_context *) ctx->cipher_ctx, + ad, ad_len); } #endif #if defined(MBEDTLS_CHACHAPOLY_C) - if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) - { + if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type) { int result; mbedtls_chachapoly_mode_t mode; - mode = ( ctx->operation == MBEDTLS_ENCRYPT ) + mode = (ctx->operation == MBEDTLS_ENCRYPT) ? MBEDTLS_CHACHAPOLY_ENCRYPT : MBEDTLS_CHACHAPOLY_DECRYPT; - result = mbedtls_chachapoly_starts( (mbedtls_chachapoly_context*) ctx->cipher_ctx, - ctx->iv, - mode ); - if ( result != 0 ) - return( result ); + result = mbedtls_chachapoly_starts((mbedtls_chachapoly_context *) ctx->cipher_ctx, + ctx->iv, + mode); + if (result != 0) { + return result; + } - return( mbedtls_chachapoly_update_aad( (mbedtls_chachapoly_context*) ctx->cipher_ctx, - ad, ad_len ) ); + return mbedtls_chachapoly_update_aad((mbedtls_chachapoly_context *) ctx->cipher_ctx, + ad, ad_len); } #endif - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_GCM_C || MBEDTLS_CHACHAPOLY_C */ -int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *input, - size_t ilen, unsigned char *output, size_t *olen ) +int mbedtls_cipher_update(mbedtls_cipher_context_t *ctx, const unsigned char *input, + size_t ilen, unsigned char *output, size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t block_size; - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ *olen = 0; - block_size = mbedtls_cipher_get_block_size( ctx ); - if ( 0 == block_size ) - { - return( MBEDTLS_ERR_CIPHER_INVALID_CONTEXT ); + block_size = mbedtls_cipher_get_block_size(ctx); + if (0 == block_size) { + return MBEDTLS_ERR_CIPHER_INVALID_CONTEXT; } - if( ctx->cipher_info->mode == MBEDTLS_MODE_ECB ) - { - if( ilen != block_size ) - return( MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_ECB) { + if (ilen != block_size) { + return MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED; + } *olen = ilen; - if( 0 != ( ret = ctx->cipher_info->base->ecb_func( ctx->cipher_ctx, - ctx->operation, input, output ) ) ) - { - return( ret ); + if (0 != (ret = ctx->cipher_info->base->ecb_func(ctx->cipher_ctx, + ctx->operation, input, output))) { + return ret; } - return( 0 ); + return 0; } #if defined(MBEDTLS_GCM_C) - if( ctx->cipher_info->mode == MBEDTLS_MODE_GCM ) - { - return( mbedtls_gcm_update( (mbedtls_gcm_context *) ctx->cipher_ctx, - input, ilen, - output, ilen, olen ) ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_GCM) { + return mbedtls_gcm_update((mbedtls_gcm_context *) ctx->cipher_ctx, + input, ilen, + output, ilen, olen); } #endif #if defined(MBEDTLS_CCM_C) - if( ctx->cipher_info->mode == MBEDTLS_MODE_CCM_STAR_NO_TAG ) - { - return( mbedtls_ccm_update( (mbedtls_ccm_context *) ctx->cipher_ctx, - input, ilen, - output, ilen, olen ) ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_CCM_STAR_NO_TAG) { + return mbedtls_ccm_update((mbedtls_ccm_context *) ctx->cipher_ctx, + input, ilen, + output, ilen, olen); } #endif #if defined(MBEDTLS_CHACHAPOLY_C) - if ( ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) - { + if (ctx->cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) { *olen = ilen; - return( mbedtls_chachapoly_update( (mbedtls_chachapoly_context*) ctx->cipher_ctx, - ilen, input, output ) ); + return mbedtls_chachapoly_update((mbedtls_chachapoly_context *) ctx->cipher_ctx, + ilen, input, output); } #endif - if( input == output && - ( ctx->unprocessed_len != 0 || ilen % block_size ) ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (input == output && + (ctx->unprocessed_len != 0 || ilen % block_size)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( ctx->cipher_info->mode == MBEDTLS_MODE_CBC ) - { + if (ctx->cipher_info->mode == MBEDTLS_MODE_CBC) { size_t copy_len = 0; /* * If there is not enough data for a full block, cache it. */ - if( ( ctx->operation == MBEDTLS_DECRYPT && NULL != ctx->add_padding && - ilen <= block_size - ctx->unprocessed_len ) || - ( ctx->operation == MBEDTLS_DECRYPT && NULL == ctx->add_padding && - ilen < block_size - ctx->unprocessed_len ) || - ( ctx->operation == MBEDTLS_ENCRYPT && - ilen < block_size - ctx->unprocessed_len ) ) - { - memcpy( &( ctx->unprocessed_data[ctx->unprocessed_len] ), input, - ilen ); + if ((ctx->operation == MBEDTLS_DECRYPT && NULL != ctx->add_padding && + ilen <= block_size - ctx->unprocessed_len) || + (ctx->operation == MBEDTLS_DECRYPT && NULL == ctx->add_padding && + ilen < block_size - ctx->unprocessed_len) || + (ctx->operation == MBEDTLS_ENCRYPT && + ilen < block_size - ctx->unprocessed_len)) { + memcpy(&(ctx->unprocessed_data[ctx->unprocessed_len]), input, + ilen); ctx->unprocessed_len += ilen; - return( 0 ); + return 0; } /* * Process cached data first */ - if( 0 != ctx->unprocessed_len ) - { + if (0 != ctx->unprocessed_len) { copy_len = block_size - ctx->unprocessed_len; - memcpy( &( ctx->unprocessed_data[ctx->unprocessed_len] ), input, - copy_len ); + memcpy(&(ctx->unprocessed_data[ctx->unprocessed_len]), input, + copy_len); - if( 0 != ( ret = ctx->cipher_info->base->cbc_func( ctx->cipher_ctx, - ctx->operation, block_size, ctx->iv, - ctx->unprocessed_data, output ) ) ) - { - return( ret ); + if (0 != (ret = ctx->cipher_info->base->cbc_func(ctx->cipher_ctx, + ctx->operation, block_size, ctx->iv, + ctx->unprocessed_data, output))) { + return ret; } *olen += block_size; @@ -629,22 +631,20 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i /* * Cache final, incomplete block */ - if( 0 != ilen ) - { + if (0 != ilen) { /* Encryption: only cache partial blocks * Decryption w/ padding: always keep at least one whole block * Decryption w/o padding: only cache partial blocks */ copy_len = ilen % block_size; - if( copy_len == 0 && + if (copy_len == 0 && ctx->operation == MBEDTLS_DECRYPT && - NULL != ctx->add_padding) - { + NULL != ctx->add_padding) { copy_len = block_size; } - memcpy( ctx->unprocessed_data, &( input[ilen - copy_len] ), - copy_len ); + memcpy(ctx->unprocessed_data, &(input[ilen - copy_len]), + copy_len); ctx->unprocessed_len += copy_len; ilen -= copy_len; @@ -653,105 +653,96 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i /* * Process remaining full blocks */ - if( ilen ) - { - if( 0 != ( ret = ctx->cipher_info->base->cbc_func( ctx->cipher_ctx, - ctx->operation, ilen, ctx->iv, input, output ) ) ) - { - return( ret ); + if (ilen) { + if (0 != (ret = ctx->cipher_info->base->cbc_func(ctx->cipher_ctx, + ctx->operation, ilen, ctx->iv, input, + output))) { + return ret; } *olen += ilen; } - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) - if( ctx->cipher_info->mode == MBEDTLS_MODE_CFB ) - { - if( 0 != ( ret = ctx->cipher_info->base->cfb_func( ctx->cipher_ctx, - ctx->operation, ilen, &ctx->unprocessed_len, ctx->iv, - input, output ) ) ) - { - return( ret ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_CFB) { + if (0 != (ret = ctx->cipher_info->base->cfb_func(ctx->cipher_ctx, + ctx->operation, ilen, + &ctx->unprocessed_len, ctx->iv, + input, output))) { + return ret; } *olen = ilen; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_OFB) - if( ctx->cipher_info->mode == MBEDTLS_MODE_OFB ) - { - if( 0 != ( ret = ctx->cipher_info->base->ofb_func( ctx->cipher_ctx, - ilen, &ctx->unprocessed_len, ctx->iv, input, output ) ) ) - { - return( ret ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_OFB) { + if (0 != (ret = ctx->cipher_info->base->ofb_func(ctx->cipher_ctx, + ilen, &ctx->unprocessed_len, ctx->iv, + input, output))) { + return ret; } *olen = ilen; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_OFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) - if( ctx->cipher_info->mode == MBEDTLS_MODE_CTR ) - { - if( 0 != ( ret = ctx->cipher_info->base->ctr_func( ctx->cipher_ctx, - ilen, &ctx->unprocessed_len, ctx->iv, - ctx->unprocessed_data, input, output ) ) ) - { - return( ret ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_CTR) { + if (0 != (ret = ctx->cipher_info->base->ctr_func(ctx->cipher_ctx, + ilen, &ctx->unprocessed_len, ctx->iv, + ctx->unprocessed_data, input, output))) { + return ret; } *olen = ilen; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_CIPHER_MODE_XTS) - if( ctx->cipher_info->mode == MBEDTLS_MODE_XTS ) - { - if( ctx->unprocessed_len > 0 ) { + if (ctx->cipher_info->mode == MBEDTLS_MODE_XTS) { + if (ctx->unprocessed_len > 0) { /* We can only process an entire data unit at a time. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } - ret = ctx->cipher_info->base->xts_func( ctx->cipher_ctx, - ctx->operation, ilen, ctx->iv, input, output ); - if( ret != 0 ) - { - return( ret ); + ret = ctx->cipher_info->base->xts_func(ctx->cipher_ctx, + ctx->operation, ilen, ctx->iv, input, output); + if (ret != 0) { + return ret; } *olen = ilen; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_XTS */ #if defined(MBEDTLS_CIPHER_MODE_STREAM) - if( ctx->cipher_info->mode == MBEDTLS_MODE_STREAM ) - { - if( 0 != ( ret = ctx->cipher_info->base->stream_func( ctx->cipher_ctx, - ilen, input, output ) ) ) - { - return( ret ); + if (ctx->cipher_info->mode == MBEDTLS_MODE_STREAM) { + if (0 != (ret = ctx->cipher_info->base->stream_func(ctx->cipher_ctx, + ilen, input, output))) { + return ret; } *olen = ilen; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_STREAM */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) @@ -759,24 +750,26 @@ int mbedtls_cipher_update( mbedtls_cipher_context_t *ctx, const unsigned char *i /* * PKCS7 (and PKCS5) padding: fill with ll bytes, with ll = padding_len */ -static void add_pkcs_padding( unsigned char *output, size_t output_len, - size_t data_len ) +static void add_pkcs_padding(unsigned char *output, size_t output_len, + size_t data_len) { size_t padding_len = output_len - data_len; unsigned char i; - for( i = 0; i < padding_len; i++ ) + for (i = 0; i < padding_len; i++) { output[data_len + i] = (unsigned char) padding_len; + } } -static int get_pkcs_padding( unsigned char *input, size_t input_len, - size_t *data_len ) +static int get_pkcs_padding(unsigned char *input, size_t input_len, + size_t *data_len) { size_t i, pad_idx; unsigned char padding_len, bad = 0; - if( NULL == input || NULL == data_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == input || NULL == data_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } padding_len = input[input_len - 1]; *data_len = input_len - padding_len; @@ -788,10 +781,11 @@ static int get_pkcs_padding( unsigned char *input, size_t input_len, /* The number of bytes checked must be independent of padding_len, * so pick input_len, which is usually 8 or 16 (one block) */ pad_idx = input_len - padding_len; - for( i = 0; i < input_len; i++ ) - bad |= ( input[i] ^ padding_len ) * ( i >= pad_idx ); + for (i = 0; i < input_len; i++) { + bad |= (input[i] ^ padding_len) * (i >= pad_idx); + } - return( MBEDTLS_ERR_CIPHER_INVALID_PADDING * ( bad != 0 ) ); + return MBEDTLS_ERR_CIPHER_INVALID_PADDING * (bad != 0); } #endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ @@ -799,37 +793,38 @@ static int get_pkcs_padding( unsigned char *input, size_t input_len, /* * One and zeros padding: fill with 80 00 ... 00 */ -static void add_one_and_zeros_padding( unsigned char *output, - size_t output_len, size_t data_len ) +static void add_one_and_zeros_padding(unsigned char *output, + size_t output_len, size_t data_len) { size_t padding_len = output_len - data_len; unsigned char i = 0; output[data_len] = 0x80; - for( i = 1; i < padding_len; i++ ) + for (i = 1; i < padding_len; i++) { output[data_len + i] = 0x00; + } } -static int get_one_and_zeros_padding( unsigned char *input, size_t input_len, - size_t *data_len ) +static int get_one_and_zeros_padding(unsigned char *input, size_t input_len, + size_t *data_len) { size_t i; unsigned char done = 0, prev_done, bad; - if( NULL == input || NULL == data_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == input || NULL == data_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } bad = 0x80; *data_len = 0; - for( i = input_len; i > 0; i-- ) - { + for (i = input_len; i > 0; i--) { prev_done = done; - done |= ( input[i - 1] != 0 ); - *data_len |= ( i - 1 ) * ( done != prev_done ); - bad ^= input[i - 1] * ( done != prev_done ); + done |= (input[i - 1] != 0); + *data_len |= (i - 1) * (done != prev_done); + bad ^= input[i - 1] * (done != prev_done); } - return( MBEDTLS_ERR_CIPHER_INVALID_PADDING * ( bad != 0 ) ); + return MBEDTLS_ERR_CIPHER_INVALID_PADDING * (bad != 0); } #endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ @@ -838,25 +833,27 @@ static int get_one_and_zeros_padding( unsigned char *input, size_t input_len, /* * Zeros and len padding: fill with 00 ... 00 ll, where ll is padding length */ -static void add_zeros_and_len_padding( unsigned char *output, - size_t output_len, size_t data_len ) +static void add_zeros_and_len_padding(unsigned char *output, + size_t output_len, size_t data_len) { size_t padding_len = output_len - data_len; unsigned char i = 0; - for( i = 1; i < padding_len; i++ ) + for (i = 1; i < padding_len; i++) { output[data_len + i - 1] = 0x00; + } output[output_len - 1] = (unsigned char) padding_len; } -static int get_zeros_and_len_padding( unsigned char *input, size_t input_len, - size_t *data_len ) +static int get_zeros_and_len_padding(unsigned char *input, size_t input_len, + size_t *data_len) { size_t i, pad_idx; unsigned char padding_len, bad = 0; - if( NULL == input || NULL == data_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == input || NULL == data_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } padding_len = input[input_len - 1]; *data_len = input_len - padding_len; @@ -867,10 +864,11 @@ static int get_zeros_and_len_padding( unsigned char *input, size_t input_len, /* The number of bytes checked must be independent of padding_len */ pad_idx = input_len - padding_len; - for( i = 0; i < input_len - 1; i++ ) - bad |= input[i] * ( i >= pad_idx ); + for (i = 0; i < input_len - 1; i++) { + bad |= input[i] * (i >= pad_idx); + } - return( MBEDTLS_ERR_CIPHER_INVALID_PADDING * ( bad != 0 ) ); + return MBEDTLS_ERR_CIPHER_INVALID_PADDING * (bad != 0); } #endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ @@ -878,33 +876,34 @@ static int get_zeros_and_len_padding( unsigned char *input, size_t input_len, /* * Zero padding: fill with 00 ... 00 */ -static void add_zeros_padding( unsigned char *output, - size_t output_len, size_t data_len ) +static void add_zeros_padding(unsigned char *output, + size_t output_len, size_t data_len) { size_t i; - for( i = data_len; i < output_len; i++ ) + for (i = data_len; i < output_len; i++) { output[i] = 0x00; + } } -static int get_zeros_padding( unsigned char *input, size_t input_len, - size_t *data_len ) +static int get_zeros_padding(unsigned char *input, size_t input_len, + size_t *data_len) { size_t i; unsigned char done = 0, prev_done; - if( NULL == input || NULL == data_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); - - *data_len = 0; - for( i = input_len; i > 0; i-- ) - { - prev_done = done; - done |= ( input[i-1] != 0 ); - *data_len |= i * ( done != prev_done ); + if (NULL == input || NULL == data_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - return( 0 ); + *data_len = 0; + for (i = input_len; i > 0; i--) { + prev_done = done; + done |= (input[i-1] != 0); + *data_len |= i * (done != prev_done); + } + + return 0; } #endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ @@ -914,245 +913,240 @@ static int get_zeros_padding( unsigned char *input, size_t input_len, * There is no add_padding function (check for NULL in mbedtls_cipher_finish) * but a trivial get_padding function */ -static int get_no_padding( unsigned char *input, size_t input_len, - size_t *data_len ) +static int get_no_padding(unsigned char *input, size_t input_len, + size_t *data_len) { - if( NULL == input || NULL == data_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == input || NULL == data_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } *data_len = input_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ -int mbedtls_cipher_finish( mbedtls_cipher_context_t *ctx, - unsigned char *output, size_t *olen ) +int mbedtls_cipher_finish(mbedtls_cipher_context_t *ctx, + unsigned char *output, size_t *olen) { - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ *olen = 0; - if( MBEDTLS_MODE_CFB == ctx->cipher_info->mode || + if (MBEDTLS_MODE_CFB == ctx->cipher_info->mode || MBEDTLS_MODE_OFB == ctx->cipher_info->mode || MBEDTLS_MODE_CTR == ctx->cipher_info->mode || MBEDTLS_MODE_GCM == ctx->cipher_info->mode || MBEDTLS_MODE_CCM_STAR_NO_TAG == ctx->cipher_info->mode || MBEDTLS_MODE_XTS == ctx->cipher_info->mode || - MBEDTLS_MODE_STREAM == ctx->cipher_info->mode ) - { - return( 0 ); + MBEDTLS_MODE_STREAM == ctx->cipher_info->mode) { + return 0; } - if ( ( MBEDTLS_CIPHER_CHACHA20 == ctx->cipher_info->type ) || - ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) ) - { - return( 0 ); + if ((MBEDTLS_CIPHER_CHACHA20 == ctx->cipher_info->type) || + (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type)) { + return 0; } - if( MBEDTLS_MODE_ECB == ctx->cipher_info->mode ) - { - if( ctx->unprocessed_len != 0 ) - return( MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED ); + if (MBEDTLS_MODE_ECB == ctx->cipher_info->mode) { + if (ctx->unprocessed_len != 0) { + return MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED; + } - return( 0 ); + return 0; } #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( MBEDTLS_MODE_CBC == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_CBC == ctx->cipher_info->mode) { int ret = 0; - if( MBEDTLS_ENCRYPT == ctx->operation ) - { + if (MBEDTLS_ENCRYPT == ctx->operation) { /* check for 'no padding' mode */ - if( NULL == ctx->add_padding ) - { - if( 0 != ctx->unprocessed_len ) - return( MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED ); + if (NULL == ctx->add_padding) { + if (0 != ctx->unprocessed_len) { + return MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED; + } - return( 0 ); + return 0; } - ctx->add_padding( ctx->unprocessed_data, mbedtls_cipher_get_iv_size( ctx ), - ctx->unprocessed_len ); - } - else if( mbedtls_cipher_get_block_size( ctx ) != ctx->unprocessed_len ) - { + ctx->add_padding(ctx->unprocessed_data, mbedtls_cipher_get_iv_size(ctx), + ctx->unprocessed_len); + } else if (mbedtls_cipher_get_block_size(ctx) != ctx->unprocessed_len) { /* * For decrypt operations, expect a full block, * or an empty block if no padding */ - if( NULL == ctx->add_padding && 0 == ctx->unprocessed_len ) - return( 0 ); + if (NULL == ctx->add_padding && 0 == ctx->unprocessed_len) { + return 0; + } - return( MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED ); + return MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED; } /* cipher block */ - if( 0 != ( ret = ctx->cipher_info->base->cbc_func( ctx->cipher_ctx, - ctx->operation, mbedtls_cipher_get_block_size( ctx ), ctx->iv, - ctx->unprocessed_data, output ) ) ) - { - return( ret ); + if (0 != (ret = ctx->cipher_info->base->cbc_func(ctx->cipher_ctx, + ctx->operation, + mbedtls_cipher_get_block_size(ctx), + ctx->iv, + ctx->unprocessed_data, output))) { + return ret; } /* Set output size for decryption */ - if( MBEDTLS_DECRYPT == ctx->operation ) - return( ctx->get_padding( output, mbedtls_cipher_get_block_size( ctx ), - olen ) ); + if (MBEDTLS_DECRYPT == ctx->operation) { + return ctx->get_padding(output, mbedtls_cipher_get_block_size(ctx), + olen); + } /* Set output size for encryption */ - *olen = mbedtls_cipher_get_block_size( ctx ); - return( 0 ); + *olen = mbedtls_cipher_get_block_size(ctx); + return 0; } #else ((void) output); #endif /* MBEDTLS_CIPHER_MODE_CBC */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) -int mbedtls_cipher_set_padding_mode( mbedtls_cipher_context_t *ctx, - mbedtls_cipher_padding_t mode ) +int mbedtls_cipher_set_padding_mode(mbedtls_cipher_context_t *ctx, + mbedtls_cipher_padding_t mode) { - if( NULL == ctx->cipher_info || MBEDTLS_MODE_CBC != ctx->cipher_info->mode ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (NULL == ctx->cipher_info || MBEDTLS_MODE_CBC != ctx->cipher_info->mode) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto knows about CBC padding * schemes, we currently don't make them * accessible through the cipher layer. */ - if( mode != MBEDTLS_PADDING_NONE ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + if (mode != MBEDTLS_PADDING_NONE) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - switch( mode ) - { + switch (mode) { #if defined(MBEDTLS_CIPHER_PADDING_PKCS7) - case MBEDTLS_PADDING_PKCS7: - ctx->add_padding = add_pkcs_padding; - ctx->get_padding = get_pkcs_padding; - break; + case MBEDTLS_PADDING_PKCS7: + ctx->add_padding = add_pkcs_padding; + ctx->get_padding = get_pkcs_padding; + break; #endif #if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) - case MBEDTLS_PADDING_ONE_AND_ZEROS: - ctx->add_padding = add_one_and_zeros_padding; - ctx->get_padding = get_one_and_zeros_padding; - break; + case MBEDTLS_PADDING_ONE_AND_ZEROS: + ctx->add_padding = add_one_and_zeros_padding; + ctx->get_padding = get_one_and_zeros_padding; + break; #endif #if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) - case MBEDTLS_PADDING_ZEROS_AND_LEN: - ctx->add_padding = add_zeros_and_len_padding; - ctx->get_padding = get_zeros_and_len_padding; - break; + case MBEDTLS_PADDING_ZEROS_AND_LEN: + ctx->add_padding = add_zeros_and_len_padding; + ctx->get_padding = get_zeros_and_len_padding; + break; #endif #if defined(MBEDTLS_CIPHER_PADDING_ZEROS) - case MBEDTLS_PADDING_ZEROS: - ctx->add_padding = add_zeros_padding; - ctx->get_padding = get_zeros_padding; - break; + case MBEDTLS_PADDING_ZEROS: + ctx->add_padding = add_zeros_padding; + ctx->get_padding = get_zeros_padding; + break; #endif - case MBEDTLS_PADDING_NONE: - ctx->add_padding = NULL; - ctx->get_padding = get_no_padding; - break; + case MBEDTLS_PADDING_NONE: + ctx->add_padding = NULL; + ctx->get_padding = get_no_padding; + break; - default: - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + default: + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } - return( 0 ); + return 0; } #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) -int mbedtls_cipher_write_tag( mbedtls_cipher_context_t *ctx, - unsigned char *tag, size_t tag_len ) +int mbedtls_cipher_write_tag(mbedtls_cipher_context_t *ctx, + unsigned char *tag, size_t tag_len) { - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if( MBEDTLS_ENCRYPT != ctx->operation ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (MBEDTLS_ENCRYPT != ctx->operation) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { size_t output_length; /* The code here doesn't yet support alternative implementations * that can delay up to a block of output. */ - return( mbedtls_gcm_finish( (mbedtls_gcm_context *) ctx->cipher_ctx, - NULL, 0, &output_length, - tag, tag_len ) ); + return mbedtls_gcm_finish((mbedtls_gcm_context *) ctx->cipher_ctx, + NULL, 0, &output_length, + tag, tag_len); } #endif #if defined(MBEDTLS_CHACHAPOLY_C) - if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) - { + if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type) { /* Don't allow truncated MAC for Poly1305 */ - if ( tag_len != 16U ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (tag_len != 16U) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( mbedtls_chachapoly_finish( - (mbedtls_chachapoly_context*) ctx->cipher_ctx, tag ) ); + return mbedtls_chachapoly_finish( + (mbedtls_chachapoly_context *) ctx->cipher_ctx, tag); } #endif - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } -int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, - const unsigned char *tag, size_t tag_len ) +int mbedtls_cipher_check_tag(mbedtls_cipher_context_t *ctx, + const unsigned char *tag, size_t tag_len) { unsigned char check_tag[16]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx->cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx->cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if( MBEDTLS_DECRYPT != ctx->operation ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (MBEDTLS_DECRYPT != ctx->operation) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* While PSA Crypto has an API for multipart * operations, we currently don't make it * accessible through the cipher layer. */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -1160,26 +1154,24 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { size_t output_length; /* The code here doesn't yet support alternative implementations * that can delay up to a block of output. */ - if( tag_len > sizeof( check_tag ) ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (tag_len > sizeof(check_tag)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if( 0 != ( ret = mbedtls_gcm_finish( - (mbedtls_gcm_context *) ctx->cipher_ctx, - NULL, 0, &output_length, - check_tag, tag_len ) ) ) - { - return( ret ); + if (0 != (ret = mbedtls_gcm_finish( + (mbedtls_gcm_context *) ctx->cipher_ctx, + NULL, 0, &output_length, + check_tag, tag_len))) { + return ret; } /* Check the tag in "constant-time" */ - if( mbedtls_ct_memcmp( tag, check_tag, tag_len ) != 0 ) - { + if (mbedtls_ct_memcmp(tag, check_tag, tag_len) != 0) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; goto exit; } @@ -1187,22 +1179,20 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CHACHAPOLY_C) - if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) - { + if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type) { /* Don't allow truncated MAC for Poly1305 */ - if ( tag_len != sizeof( check_tag ) ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (tag_len != sizeof(check_tag)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } ret = mbedtls_chachapoly_finish( - (mbedtls_chachapoly_context*) ctx->cipher_ctx, check_tag ); - if ( ret != 0 ) - { - return( ret ); + (mbedtls_chachapoly_context *) ctx->cipher_ctx, check_tag); + if (ret != 0) { + return ret; } /* Check the tag in "constant-time" */ - if( mbedtls_ct_memcmp( tag, check_tag, tag_len ) != 0 ) - { + if (mbedtls_ct_memcmp(tag, check_tag, tag_len) != 0) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; goto exit; } @@ -1210,25 +1200,24 @@ int mbedtls_cipher_check_tag( mbedtls_cipher_context_t *ctx, #endif /* MBEDTLS_CHACHAPOLY_C */ exit: - mbedtls_platform_zeroize( check_tag, tag_len ); - return( ret ); + mbedtls_platform_zeroize(check_tag, tag_len); + return ret; } #endif /* MBEDTLS_GCM_C || MBEDTLS_CHACHAPOLY_C */ /* * Packet-oriented wrapper for non-AEAD modes */ -int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen ) +int mbedtls_cipher_crypt(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t finish_olen; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* As in the non-PSA case, we don't check that * a key has been set. If not, the key slot will * still be in its default state of 0, which is @@ -1241,69 +1230,73 @@ int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, psa_cipher_operation_t cipher_op = PSA_CIPHER_OPERATION_INIT; size_t part_len; - if( ctx->operation == MBEDTLS_DECRYPT ) - { - status = psa_cipher_decrypt_setup( &cipher_op, - cipher_psa->slot, - cipher_psa->alg ); + if (ctx->operation == MBEDTLS_DECRYPT) { + status = psa_cipher_decrypt_setup(&cipher_op, + cipher_psa->slot, + cipher_psa->alg); + } else if (ctx->operation == MBEDTLS_ENCRYPT) { + status = psa_cipher_encrypt_setup(&cipher_op, + cipher_psa->slot, + cipher_psa->alg); + } else { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - else if( ctx->operation == MBEDTLS_ENCRYPT ) - { - status = psa_cipher_encrypt_setup( &cipher_op, - cipher_psa->slot, - cipher_psa->alg ); - } - else - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); /* In the following, we can immediately return on an error, * because the PSA Crypto API guarantees that cipher operations * are terminated by unsuccessful calls to psa_cipher_update(), * and by any call to psa_cipher_finish(). */ - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); - - if( ctx->cipher_info->mode != MBEDTLS_MODE_ECB ) - { - status = psa_cipher_set_iv( &cipher_op, iv, iv_len ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } - status = psa_cipher_update( &cipher_op, - input, ilen, - output, ilen, olen ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + if (ctx->cipher_info->mode != MBEDTLS_MODE_ECB) { + status = psa_cipher_set_iv(&cipher_op, iv, iv_len); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } + } - status = psa_cipher_finish( &cipher_op, - output + *olen, ilen - *olen, - &part_len ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_cipher_update(&cipher_op, + input, ilen, + output, ilen, olen); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } + + status = psa_cipher_finish(&cipher_op, + output + *olen, ilen - *olen, + &part_len); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } *olen += part_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ( ret = mbedtls_cipher_set_iv( ctx, iv, iv_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_cipher_set_iv(ctx, iv, iv_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_cipher_reset( ctx ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_cipher_reset(ctx)) != 0) { + return ret; + } - if( ( ret = mbedtls_cipher_update( ctx, input, ilen, - output, olen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_cipher_update(ctx, input, ilen, + output, olen)) != 0) { + return ret; + } - if( ( ret = mbedtls_cipher_finish( ctx, output + *olen, - &finish_olen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_cipher_finish(ctx, output + *olen, + &finish_olen)) != 0) { + return ret; + } *olen += finish_olen; - return( 0 ); + return 0; } #if defined(MBEDTLS_CIPHER_MODE_AEAD) @@ -1311,16 +1304,15 @@ int mbedtls_cipher_crypt( mbedtls_cipher_context_t *ctx, * Packet-oriented encryption for AEAD modes: internal function used by * mbedtls_cipher_auth_encrypt_ext(). */ -static int mbedtls_cipher_aead_encrypt( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, - unsigned char *tag, size_t tag_len ) +static int mbedtls_cipher_aead_encrypt(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, + unsigned char *tag, size_t tag_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* As in the non-PSA case, we don't check that * a key has been set. If not, the key slot will * still be in its default state of 0, which is @@ -1333,74 +1325,71 @@ static int mbedtls_cipher_aead_encrypt( mbedtls_cipher_context_t *ctx, /* PSA Crypto API always writes the authentication tag * at the end of the encrypted message. */ - if( output == NULL || tag != output + ilen ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + if (output == NULL || tag != output + ilen) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } - status = psa_aead_encrypt( cipher_psa->slot, - cipher_psa->alg, - iv, iv_len, - ad, ad_len, - input, ilen, - output, ilen + tag_len, olen ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_aead_encrypt(cipher_psa->slot, + cipher_psa->alg, + iv, iv_len, + ad, ad_len, + input, ilen, + output, ilen + tag_len, olen); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } *olen -= tag_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { *olen = ilen; - return( mbedtls_gcm_crypt_and_tag( ctx->cipher_ctx, MBEDTLS_GCM_ENCRYPT, - ilen, iv, iv_len, ad, ad_len, - input, output, tag_len, tag ) ); + return mbedtls_gcm_crypt_and_tag(ctx->cipher_ctx, MBEDTLS_GCM_ENCRYPT, + ilen, iv, iv_len, ad, ad_len, + input, output, tag_len, tag); } #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) - if( MBEDTLS_MODE_CCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_CCM == ctx->cipher_info->mode) { *olen = ilen; - return( mbedtls_ccm_encrypt_and_tag( ctx->cipher_ctx, ilen, - iv, iv_len, ad, ad_len, input, output, - tag, tag_len ) ); + return mbedtls_ccm_encrypt_and_tag(ctx->cipher_ctx, ilen, + iv, iv_len, ad, ad_len, input, output, + tag, tag_len); } #endif /* MBEDTLS_CCM_C */ #if defined(MBEDTLS_CHACHAPOLY_C) - if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) - { + if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type) { /* ChachaPoly has fixed length nonce and MAC (tag) */ - if ( ( iv_len != ctx->cipher_info->iv_size ) || - ( tag_len != 16U ) ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if ((iv_len != ctx->cipher_info->iv_size) || + (tag_len != 16U)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } *olen = ilen; - return( mbedtls_chachapoly_encrypt_and_tag( ctx->cipher_ctx, - ilen, iv, ad, ad_len, input, output, tag ) ); + return mbedtls_chachapoly_encrypt_and_tag(ctx->cipher_ctx, + ilen, iv, ad, ad_len, input, output, tag); } #endif /* MBEDTLS_CHACHAPOLY_C */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } /* * Packet-oriented encryption for AEAD modes: internal function used by * mbedtls_cipher_auth_encrypt_ext(). */ -static int mbedtls_cipher_aead_decrypt( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, - const unsigned char *tag, size_t tag_len ) +static int mbedtls_cipher_aead_decrypt(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, + const unsigned char *tag, size_t tag_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ctx->psa_enabled == 1 ) - { + if (ctx->psa_enabled == 1) { /* As in the non-PSA case, we don't check that * a key has been set. If not, the key slot will * still be in its default state of 0, which is @@ -1413,80 +1402,81 @@ static int mbedtls_cipher_aead_decrypt( mbedtls_cipher_context_t *ctx, /* PSA Crypto API always writes the authentication tag * at the end of the encrypted message. */ - if( input == NULL || tag != input + ilen ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + if (input == NULL || tag != input + ilen) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + } - status = psa_aead_decrypt( cipher_psa->slot, - cipher_psa->alg, - iv, iv_len, - ad, ad_len, - input, ilen + tag_len, - output, ilen, olen ); - if( status == PSA_ERROR_INVALID_SIGNATURE ) - return( MBEDTLS_ERR_CIPHER_AUTH_FAILED ); - else if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_aead_decrypt(cipher_psa->slot, + cipher_psa->alg, + iv, iv_len, + ad, ad_len, + input, ilen + tag_len, + output, ilen, olen); + if (status == PSA_ERROR_INVALID_SIGNATURE) { + return MBEDTLS_ERR_CIPHER_AUTH_FAILED; + } else if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_GCM_C) - if( MBEDTLS_MODE_GCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_GCM == ctx->cipher_info->mode) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; *olen = ilen; - ret = mbedtls_gcm_auth_decrypt( ctx->cipher_ctx, ilen, - iv, iv_len, ad, ad_len, - tag, tag_len, input, output ); + ret = mbedtls_gcm_auth_decrypt(ctx->cipher_ctx, ilen, + iv, iv_len, ad, ad_len, + tag, tag_len, input, output); - if( ret == MBEDTLS_ERR_GCM_AUTH_FAILED ) + if (ret == MBEDTLS_ERR_GCM_AUTH_FAILED) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; + } - return( ret ); + return ret; } #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) - if( MBEDTLS_MODE_CCM == ctx->cipher_info->mode ) - { + if (MBEDTLS_MODE_CCM == ctx->cipher_info->mode) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; *olen = ilen; - ret = mbedtls_ccm_auth_decrypt( ctx->cipher_ctx, ilen, - iv, iv_len, ad, ad_len, - input, output, tag, tag_len ); + ret = mbedtls_ccm_auth_decrypt(ctx->cipher_ctx, ilen, + iv, iv_len, ad, ad_len, + input, output, tag, tag_len); - if( ret == MBEDTLS_ERR_CCM_AUTH_FAILED ) + if (ret == MBEDTLS_ERR_CCM_AUTH_FAILED) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; + } - return( ret ); + return ret; } #endif /* MBEDTLS_CCM_C */ #if defined(MBEDTLS_CHACHAPOLY_C) - if ( MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type ) - { + if (MBEDTLS_CIPHER_CHACHA20_POLY1305 == ctx->cipher_info->type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* ChachaPoly has fixed length nonce and MAC (tag) */ - if ( ( iv_len != ctx->cipher_info->iv_size ) || - ( tag_len != 16U ) ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if ((iv_len != ctx->cipher_info->iv_size) || + (tag_len != 16U)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } *olen = ilen; - ret = mbedtls_chachapoly_auth_decrypt( ctx->cipher_ctx, ilen, - iv, ad, ad_len, tag, input, output ); + ret = mbedtls_chachapoly_auth_decrypt(ctx->cipher_ctx, ilen, + iv, ad, ad_len, tag, input, output); - if( ret == MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED ) + if (ret == MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; + } - return( ret ); + return ret; } #endif /* MBEDTLS_CHACHAPOLY_C */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_CIPHER_MODE_AEAD */ @@ -1494,96 +1484,98 @@ static int mbedtls_cipher_aead_decrypt( mbedtls_cipher_context_t *ctx, /* * Packet-oriented encryption for AEAD/NIST_KW: public function. */ -int mbedtls_cipher_auth_encrypt_ext( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t output_len, - size_t *olen, size_t tag_len ) +int mbedtls_cipher_auth_encrypt_ext(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t output_len, + size_t *olen, size_t tag_len) { #if defined(MBEDTLS_NIST_KW_C) - if( + if ( #if defined(MBEDTLS_USE_PSA_CRYPTO) ctx->psa_enabled == 0 && #endif - ( MBEDTLS_MODE_KW == ctx->cipher_info->mode || - MBEDTLS_MODE_KWP == ctx->cipher_info->mode ) ) - { - mbedtls_nist_kw_mode_t mode = ( MBEDTLS_MODE_KW == ctx->cipher_info->mode ) ? - MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP; + (MBEDTLS_MODE_KW == ctx->cipher_info->mode || + MBEDTLS_MODE_KWP == ctx->cipher_info->mode)) { + mbedtls_nist_kw_mode_t mode = (MBEDTLS_MODE_KW == ctx->cipher_info->mode) ? + MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP; /* There is no iv, tag or ad associated with KW and KWP, * so these length should be 0 as documented. */ - if( iv_len != 0 || tag_len != 0 || ad_len != 0 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (iv_len != 0 || tag_len != 0 || ad_len != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } (void) iv; (void) ad; - return( mbedtls_nist_kw_wrap( ctx->cipher_ctx, mode, input, ilen, - output, olen, output_len ) ); + return mbedtls_nist_kw_wrap(ctx->cipher_ctx, mode, input, ilen, + output, olen, output_len); } #endif /* MBEDTLS_NIST_KW_C */ #if defined(MBEDTLS_CIPHER_MODE_AEAD) /* AEAD case: check length before passing on to shared function */ - if( output_len < ilen + tag_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (output_len < ilen + tag_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - int ret = mbedtls_cipher_aead_encrypt( ctx, iv, iv_len, ad, ad_len, - input, ilen, output, olen, - output + ilen, tag_len ); + int ret = mbedtls_cipher_aead_encrypt(ctx, iv, iv_len, ad, ad_len, + input, ilen, output, olen, + output + ilen, tag_len); *olen += tag_len; - return( ret ); + return ret; #else - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; #endif /* MBEDTLS_CIPHER_MODE_AEAD */ } /* * Packet-oriented decryption for AEAD/NIST_KW: public function. */ -int mbedtls_cipher_auth_decrypt_ext( mbedtls_cipher_context_t *ctx, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t output_len, - size_t *olen, size_t tag_len ) +int mbedtls_cipher_auth_decrypt_ext(mbedtls_cipher_context_t *ctx, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t output_len, + size_t *olen, size_t tag_len) { #if defined(MBEDTLS_NIST_KW_C) - if( + if ( #if defined(MBEDTLS_USE_PSA_CRYPTO) ctx->psa_enabled == 0 && #endif - ( MBEDTLS_MODE_KW == ctx->cipher_info->mode || - MBEDTLS_MODE_KWP == ctx->cipher_info->mode ) ) - { - mbedtls_nist_kw_mode_t mode = ( MBEDTLS_MODE_KW == ctx->cipher_info->mode ) ? - MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP; + (MBEDTLS_MODE_KW == ctx->cipher_info->mode || + MBEDTLS_MODE_KWP == ctx->cipher_info->mode)) { + mbedtls_nist_kw_mode_t mode = (MBEDTLS_MODE_KW == ctx->cipher_info->mode) ? + MBEDTLS_KW_MODE_KW : MBEDTLS_KW_MODE_KWP; /* There is no iv, tag or ad associated with KW and KWP, * so these length should be 0 as documented. */ - if( iv_len != 0 || tag_len != 0 || ad_len != 0 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (iv_len != 0 || tag_len != 0 || ad_len != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } (void) iv; (void) ad; - return( mbedtls_nist_kw_unwrap( ctx->cipher_ctx, mode, input, ilen, - output, olen, output_len ) ); + return mbedtls_nist_kw_unwrap(ctx->cipher_ctx, mode, input, ilen, + output, olen, output_len); } #endif /* MBEDTLS_NIST_KW_C */ #if defined(MBEDTLS_CIPHER_MODE_AEAD) /* AEAD case: check length before passing on to shared function */ - if( ilen < tag_len || output_len < ilen - tag_len ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ilen < tag_len || output_len < ilen - tag_len) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( mbedtls_cipher_aead_decrypt( ctx, iv, iv_len, ad, ad_len, - input, ilen - tag_len, output, olen, - input + ilen - tag_len, tag_len ) ); + return mbedtls_cipher_aead_decrypt(ctx, iv, iv_len, ad, ad_len, + input, ilen - tag_len, output, olen, + input + ilen - tag_len, tag_len); #else - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; #endif /* MBEDTLS_CIPHER_MODE_AEAD */ } #endif /* MBEDTLS_CIPHER_MODE_AEAD || MBEDTLS_NIST_KW_C */ diff --git a/library/cipher_wrap.c b/library/cipher_wrap.c index 8e395b301..c99627c07 100644 --- a/library/cipher_wrap.c +++ b/library/cipher_wrap.c @@ -72,100 +72,101 @@ #if defined(MBEDTLS_GCM_C) /* shared by all GCM ciphers */ -static void *gcm_ctx_alloc( void ) +static void *gcm_ctx_alloc(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_gcm_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_gcm_context)); - if( ctx != NULL ) - mbedtls_gcm_init( (mbedtls_gcm_context *) ctx ); + if (ctx != NULL) { + mbedtls_gcm_init((mbedtls_gcm_context *) ctx); + } - return( ctx ); + return ctx; } -static void gcm_ctx_free( void *ctx ) +static void gcm_ctx_free(void *ctx) { - mbedtls_gcm_free( ctx ); - mbedtls_free( ctx ); + mbedtls_gcm_free(ctx); + mbedtls_free(ctx); } #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) /* shared by all CCM ciphers */ -static void *ccm_ctx_alloc( void ) +static void *ccm_ctx_alloc(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_ccm_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ccm_context)); - if( ctx != NULL ) - mbedtls_ccm_init( (mbedtls_ccm_context *) ctx ); + if (ctx != NULL) { + mbedtls_ccm_init((mbedtls_ccm_context *) ctx); + } - return( ctx ); + return ctx; } -static void ccm_ctx_free( void *ctx ) +static void ccm_ctx_free(void *ctx) { - mbedtls_ccm_free( ctx ); - mbedtls_free( ctx ); + mbedtls_ccm_free(ctx); + mbedtls_free(ctx); } #endif /* MBEDTLS_CCM_C */ #if defined(MBEDTLS_AES_C) -static int aes_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation, - const unsigned char *input, unsigned char *output ) +static int aes_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation, + const unsigned char *input, unsigned char *output) { - return mbedtls_aes_crypt_ecb( (mbedtls_aes_context *) ctx, operation, input, output ); + return mbedtls_aes_crypt_ecb((mbedtls_aes_context *) ctx, operation, input, output); } #if defined(MBEDTLS_CIPHER_MODE_CBC) -static int aes_crypt_cbc_wrap( void *ctx, mbedtls_operation_t operation, size_t length, - unsigned char *iv, const unsigned char *input, unsigned char *output ) +static int aes_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length, + unsigned char *iv, const unsigned char *input, unsigned char *output) { - return mbedtls_aes_crypt_cbc( (mbedtls_aes_context *) ctx, operation, length, iv, input, - output ); + return mbedtls_aes_crypt_cbc((mbedtls_aes_context *) ctx, operation, length, iv, input, + output); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) -static int aes_crypt_cfb128_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, size_t *iv_off, unsigned char *iv, - const unsigned char *input, unsigned char *output ) +static int aes_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, size_t *iv_off, unsigned char *iv, + const unsigned char *input, unsigned char *output) { - return mbedtls_aes_crypt_cfb128( (mbedtls_aes_context *) ctx, operation, length, iv_off, iv, - input, output ); + return mbedtls_aes_crypt_cfb128((mbedtls_aes_context *) ctx, operation, length, iv_off, iv, + input, output); } #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_OFB) -static int aes_crypt_ofb_wrap( void *ctx, size_t length, size_t *iv_off, - unsigned char *iv, const unsigned char *input, unsigned char *output ) +static int aes_crypt_ofb_wrap(void *ctx, size_t length, size_t *iv_off, + unsigned char *iv, const unsigned char *input, unsigned char *output) { - return mbedtls_aes_crypt_ofb( (mbedtls_aes_context *) ctx, length, iv_off, - iv, input, output ); + return mbedtls_aes_crypt_ofb((mbedtls_aes_context *) ctx, length, iv_off, + iv, input, output); } #endif /* MBEDTLS_CIPHER_MODE_OFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) -static int aes_crypt_ctr_wrap( void *ctx, size_t length, size_t *nc_off, - unsigned char *nonce_counter, unsigned char *stream_block, - const unsigned char *input, unsigned char *output ) +static int aes_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off, + unsigned char *nonce_counter, unsigned char *stream_block, + const unsigned char *input, unsigned char *output) { - return mbedtls_aes_crypt_ctr( (mbedtls_aes_context *) ctx, length, nc_off, nonce_counter, - stream_block, input, output ); + return mbedtls_aes_crypt_ctr((mbedtls_aes_context *) ctx, length, nc_off, nonce_counter, + stream_block, input, output); } #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_CIPHER_MODE_XTS) -static int aes_crypt_xts_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, - const unsigned char data_unit[16], - const unsigned char *input, - unsigned char *output ) +static int aes_crypt_xts_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, + const unsigned char data_unit[16], + const unsigned char *input, + unsigned char *output) { mbedtls_aes_xts_context *xts_ctx = ctx; int mode; - switch( operation ) - { + switch (operation) { case MBEDTLS_ENCRYPT: mode = MBEDTLS_AES_ENCRYPT; break; @@ -176,39 +177,40 @@ static int aes_crypt_xts_wrap( void *ctx, mbedtls_operation_t operation, return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - return mbedtls_aes_crypt_xts( xts_ctx, mode, length, - data_unit, input, output ); + return mbedtls_aes_crypt_xts(xts_ctx, mode, length, + data_unit, input, output); } #endif /* MBEDTLS_CIPHER_MODE_XTS */ -static int aes_setkey_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int aes_setkey_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_aes_setkey_dec( (mbedtls_aes_context *) ctx, key, key_bitlen ); + return mbedtls_aes_setkey_dec((mbedtls_aes_context *) ctx, key, key_bitlen); } -static int aes_setkey_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int aes_setkey_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_aes_setkey_enc( (mbedtls_aes_context *) ctx, key, key_bitlen ); + return mbedtls_aes_setkey_enc((mbedtls_aes_context *) ctx, key, key_bitlen); } -static void * aes_ctx_alloc( void ) +static void *aes_ctx_alloc(void) { - mbedtls_aes_context *aes = mbedtls_calloc( 1, sizeof( mbedtls_aes_context ) ); + mbedtls_aes_context *aes = mbedtls_calloc(1, sizeof(mbedtls_aes_context)); - if( aes == NULL ) - return( NULL ); + if (aes == NULL) { + return NULL; + } - mbedtls_aes_init( aes ); + mbedtls_aes_init(aes); - return( aes ); + return aes; } -static void aes_ctx_free( void *ctx ) +static void aes_ctx_free(void *ctx) { - mbedtls_aes_free( (mbedtls_aes_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_aes_free((mbedtls_aes_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t aes_info = { @@ -412,39 +414,41 @@ static const mbedtls_cipher_info_t aes_256_ctr_info = { #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_CIPHER_MODE_XTS) -static int xts_aes_setkey_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int xts_aes_setkey_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { mbedtls_aes_xts_context *xts_ctx = ctx; - return( mbedtls_aes_xts_setkey_enc( xts_ctx, key, key_bitlen ) ); + return mbedtls_aes_xts_setkey_enc(xts_ctx, key, key_bitlen); } -static int xts_aes_setkey_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int xts_aes_setkey_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { mbedtls_aes_xts_context *xts_ctx = ctx; - return( mbedtls_aes_xts_setkey_dec( xts_ctx, key, key_bitlen ) ); + return mbedtls_aes_xts_setkey_dec(xts_ctx, key, key_bitlen); } -static void *xts_aes_ctx_alloc( void ) +static void *xts_aes_ctx_alloc(void) { - mbedtls_aes_xts_context *xts_ctx = mbedtls_calloc( 1, sizeof( *xts_ctx ) ); + mbedtls_aes_xts_context *xts_ctx = mbedtls_calloc(1, sizeof(*xts_ctx)); - if( xts_ctx != NULL ) - mbedtls_aes_xts_init( xts_ctx ); + if (xts_ctx != NULL) { + mbedtls_aes_xts_init(xts_ctx); + } - return( xts_ctx ); + return xts_ctx; } -static void xts_aes_ctx_free( void *ctx ) +static void xts_aes_ctx_free(void *ctx) { mbedtls_aes_xts_context *xts_ctx = ctx; - if( xts_ctx == NULL ) + if (xts_ctx == NULL) { return; + } - mbedtls_aes_xts_free( xts_ctx ); - mbedtls_free( xts_ctx ); + mbedtls_aes_xts_free(xts_ctx); + mbedtls_free(xts_ctx); } static const mbedtls_cipher_base_t xts_aes_info = { @@ -498,11 +502,11 @@ static const mbedtls_cipher_info_t aes_256_xts_info = { #endif /* MBEDTLS_CIPHER_MODE_XTS */ #if defined(MBEDTLS_GCM_C) -static int gcm_aes_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int gcm_aes_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_gcm_setkey( (mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_AES, - key, key_bitlen ); + return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_AES, + key, key_bitlen); } static const mbedtls_cipher_base_t gcm_aes_info = { @@ -567,11 +571,11 @@ static const mbedtls_cipher_info_t aes_256_gcm_info = { #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) -static int ccm_aes_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int ccm_aes_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_ccm_setkey( (mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_AES, - key, key_bitlen ); + return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_AES, + key, key_bitlen); } static const mbedtls_cipher_base_t ccm_aes_info = { @@ -672,72 +676,73 @@ static const mbedtls_cipher_info_t aes_256_ccm_star_no_tag_info = { #if defined(MBEDTLS_CAMELLIA_C) -static int camellia_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation, - const unsigned char *input, unsigned char *output ) +static int camellia_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation, + const unsigned char *input, unsigned char *output) { - return mbedtls_camellia_crypt_ecb( (mbedtls_camellia_context *) ctx, operation, input, - output ); + return mbedtls_camellia_crypt_ecb((mbedtls_camellia_context *) ctx, operation, input, + output); } #if defined(MBEDTLS_CIPHER_MODE_CBC) -static int camellia_crypt_cbc_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, unsigned char *iv, - const unsigned char *input, unsigned char *output ) +static int camellia_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, unsigned char *iv, + const unsigned char *input, unsigned char *output) { - return mbedtls_camellia_crypt_cbc( (mbedtls_camellia_context *) ctx, operation, length, iv, - input, output ); + return mbedtls_camellia_crypt_cbc((mbedtls_camellia_context *) ctx, operation, length, iv, + input, output); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) -static int camellia_crypt_cfb128_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, size_t *iv_off, unsigned char *iv, - const unsigned char *input, unsigned char *output ) +static int camellia_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, size_t *iv_off, unsigned char *iv, + const unsigned char *input, unsigned char *output) { - return mbedtls_camellia_crypt_cfb128( (mbedtls_camellia_context *) ctx, operation, length, - iv_off, iv, input, output ); + return mbedtls_camellia_crypt_cfb128((mbedtls_camellia_context *) ctx, operation, length, + iv_off, iv, input, output); } #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) -static int camellia_crypt_ctr_wrap( void *ctx, size_t length, size_t *nc_off, - unsigned char *nonce_counter, unsigned char *stream_block, - const unsigned char *input, unsigned char *output ) +static int camellia_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off, + unsigned char *nonce_counter, unsigned char *stream_block, + const unsigned char *input, unsigned char *output) { - return mbedtls_camellia_crypt_ctr( (mbedtls_camellia_context *) ctx, length, nc_off, - nonce_counter, stream_block, input, output ); + return mbedtls_camellia_crypt_ctr((mbedtls_camellia_context *) ctx, length, nc_off, + nonce_counter, stream_block, input, output); } #endif /* MBEDTLS_CIPHER_MODE_CTR */ -static int camellia_setkey_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int camellia_setkey_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_camellia_setkey_dec( (mbedtls_camellia_context *) ctx, key, key_bitlen ); + return mbedtls_camellia_setkey_dec((mbedtls_camellia_context *) ctx, key, key_bitlen); } -static int camellia_setkey_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int camellia_setkey_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_camellia_setkey_enc( (mbedtls_camellia_context *) ctx, key, key_bitlen ); + return mbedtls_camellia_setkey_enc((mbedtls_camellia_context *) ctx, key, key_bitlen); } -static void * camellia_ctx_alloc( void ) +static void *camellia_ctx_alloc(void) { mbedtls_camellia_context *ctx; - ctx = mbedtls_calloc( 1, sizeof( mbedtls_camellia_context ) ); + ctx = mbedtls_calloc(1, sizeof(mbedtls_camellia_context)); - if( ctx == NULL ) - return( NULL ); + if (ctx == NULL) { + return NULL; + } - mbedtls_camellia_init( ctx ); + mbedtls_camellia_init(ctx); - return( ctx ); + return ctx; } -static void camellia_ctx_free( void *ctx ) +static void camellia_ctx_free(void *ctx) { - mbedtls_camellia_free( (mbedtls_camellia_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_camellia_free((mbedtls_camellia_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t camellia_info = { @@ -906,11 +911,11 @@ static const mbedtls_cipher_info_t camellia_256_ctr_info = { #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_GCM_C) -static int gcm_camellia_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int gcm_camellia_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_gcm_setkey( (mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA, - key, key_bitlen ); + return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA, + key, key_bitlen); } static const mbedtls_cipher_base_t gcm_camellia_info = { @@ -975,11 +980,11 @@ static const mbedtls_cipher_info_t camellia_256_gcm_info = { #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) -static int ccm_camellia_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int ccm_camellia_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_ccm_setkey( (mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA, - key, key_bitlen ); + return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_CAMELLIA, + key, key_bitlen); } static const mbedtls_cipher_base_t ccm_camellia_info = { @@ -1080,73 +1085,74 @@ static const mbedtls_cipher_info_t camellia_256_ccm_star_no_tag_info = { #if defined(MBEDTLS_ARIA_C) -static int aria_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation, - const unsigned char *input, unsigned char *output ) +static int aria_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation, + const unsigned char *input, unsigned char *output) { (void) operation; - return mbedtls_aria_crypt_ecb( (mbedtls_aria_context *) ctx, input, - output ); + return mbedtls_aria_crypt_ecb((mbedtls_aria_context *) ctx, input, + output); } #if defined(MBEDTLS_CIPHER_MODE_CBC) -static int aria_crypt_cbc_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, unsigned char *iv, - const unsigned char *input, unsigned char *output ) +static int aria_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, unsigned char *iv, + const unsigned char *input, unsigned char *output) { - return mbedtls_aria_crypt_cbc( (mbedtls_aria_context *) ctx, operation, length, iv, - input, output ); + return mbedtls_aria_crypt_cbc((mbedtls_aria_context *) ctx, operation, length, iv, + input, output); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) -static int aria_crypt_cfb128_wrap( void *ctx, mbedtls_operation_t operation, - size_t length, size_t *iv_off, unsigned char *iv, - const unsigned char *input, unsigned char *output ) +static int aria_crypt_cfb128_wrap(void *ctx, mbedtls_operation_t operation, + size_t length, size_t *iv_off, unsigned char *iv, + const unsigned char *input, unsigned char *output) { - return mbedtls_aria_crypt_cfb128( (mbedtls_aria_context *) ctx, operation, length, - iv_off, iv, input, output ); + return mbedtls_aria_crypt_cfb128((mbedtls_aria_context *) ctx, operation, length, + iv_off, iv, input, output); } #endif /* MBEDTLS_CIPHER_MODE_CFB */ #if defined(MBEDTLS_CIPHER_MODE_CTR) -static int aria_crypt_ctr_wrap( void *ctx, size_t length, size_t *nc_off, - unsigned char *nonce_counter, unsigned char *stream_block, - const unsigned char *input, unsigned char *output ) +static int aria_crypt_ctr_wrap(void *ctx, size_t length, size_t *nc_off, + unsigned char *nonce_counter, unsigned char *stream_block, + const unsigned char *input, unsigned char *output) { - return mbedtls_aria_crypt_ctr( (mbedtls_aria_context *) ctx, length, nc_off, - nonce_counter, stream_block, input, output ); + return mbedtls_aria_crypt_ctr((mbedtls_aria_context *) ctx, length, nc_off, + nonce_counter, stream_block, input, output); } #endif /* MBEDTLS_CIPHER_MODE_CTR */ -static int aria_setkey_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int aria_setkey_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_aria_setkey_dec( (mbedtls_aria_context *) ctx, key, key_bitlen ); + return mbedtls_aria_setkey_dec((mbedtls_aria_context *) ctx, key, key_bitlen); } -static int aria_setkey_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int aria_setkey_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_aria_setkey_enc( (mbedtls_aria_context *) ctx, key, key_bitlen ); + return mbedtls_aria_setkey_enc((mbedtls_aria_context *) ctx, key, key_bitlen); } -static void * aria_ctx_alloc( void ) +static void *aria_ctx_alloc(void) { mbedtls_aria_context *ctx; - ctx = mbedtls_calloc( 1, sizeof( mbedtls_aria_context ) ); + ctx = mbedtls_calloc(1, sizeof(mbedtls_aria_context)); - if( ctx == NULL ) - return( NULL ); + if (ctx == NULL) { + return NULL; + } - mbedtls_aria_init( ctx ); + mbedtls_aria_init(ctx); - return( ctx ); + return ctx; } -static void aria_ctx_free( void *ctx ) +static void aria_ctx_free(void *ctx) { - mbedtls_aria_free( (mbedtls_aria_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_aria_free((mbedtls_aria_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t aria_info = { @@ -1315,11 +1321,11 @@ static const mbedtls_cipher_info_t aria_256_ctr_info = { #endif /* MBEDTLS_CIPHER_MODE_CTR */ #if defined(MBEDTLS_GCM_C) -static int gcm_aria_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int gcm_aria_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_gcm_setkey( (mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA, - key, key_bitlen ); + return mbedtls_gcm_setkey((mbedtls_gcm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA, + key, key_bitlen); } static const mbedtls_cipher_base_t gcm_aria_info = { @@ -1384,11 +1390,11 @@ static const mbedtls_cipher_info_t aria_256_gcm_info = { #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) -static int ccm_aria_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int ccm_aria_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_ccm_setkey( (mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA, - key, key_bitlen ); + return mbedtls_ccm_setkey((mbedtls_ccm_context *) ctx, MBEDTLS_CIPHER_ID_ARIA, + key, key_bitlen); } static const mbedtls_cipher_base_t ccm_aria_info = { @@ -1489,121 +1495,123 @@ static const mbedtls_cipher_info_t aria_256_ccm_star_no_tag_info = { #if defined(MBEDTLS_DES_C) -static int des_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation, - const unsigned char *input, unsigned char *output ) +static int des_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation, + const unsigned char *input, unsigned char *output) { ((void) operation); - return mbedtls_des_crypt_ecb( (mbedtls_des_context *) ctx, input, output ); + return mbedtls_des_crypt_ecb((mbedtls_des_context *) ctx, input, output); } -static int des3_crypt_ecb_wrap( void *ctx, mbedtls_operation_t operation, - const unsigned char *input, unsigned char *output ) +static int des3_crypt_ecb_wrap(void *ctx, mbedtls_operation_t operation, + const unsigned char *input, unsigned char *output) { ((void) operation); - return mbedtls_des3_crypt_ecb( (mbedtls_des3_context *) ctx, input, output ); + return mbedtls_des3_crypt_ecb((mbedtls_des3_context *) ctx, input, output); } #if defined(MBEDTLS_CIPHER_MODE_CBC) -static int des_crypt_cbc_wrap( void *ctx, mbedtls_operation_t operation, size_t length, - unsigned char *iv, const unsigned char *input, unsigned char *output ) +static int des_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length, + unsigned char *iv, const unsigned char *input, unsigned char *output) { - return mbedtls_des_crypt_cbc( (mbedtls_des_context *) ctx, operation, length, iv, input, - output ); + return mbedtls_des_crypt_cbc((mbedtls_des_context *) ctx, operation, length, iv, input, + output); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CBC) -static int des3_crypt_cbc_wrap( void *ctx, mbedtls_operation_t operation, size_t length, - unsigned char *iv, const unsigned char *input, unsigned char *output ) +static int des3_crypt_cbc_wrap(void *ctx, mbedtls_operation_t operation, size_t length, + unsigned char *iv, const unsigned char *input, unsigned char *output) { - return mbedtls_des3_crypt_cbc( (mbedtls_des3_context *) ctx, operation, length, iv, input, - output ); + return mbedtls_des3_crypt_cbc((mbedtls_des3_context *) ctx, operation, length, iv, input, + output); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ -static int des_setkey_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des_setkey_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des_setkey_dec( (mbedtls_des_context *) ctx, key ); + return mbedtls_des_setkey_dec((mbedtls_des_context *) ctx, key); } -static int des_setkey_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des_setkey_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des_setkey_enc( (mbedtls_des_context *) ctx, key ); + return mbedtls_des_setkey_enc((mbedtls_des_context *) ctx, key); } -static int des3_set2key_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des3_set2key_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des3_set2key_dec( (mbedtls_des3_context *) ctx, key ); + return mbedtls_des3_set2key_dec((mbedtls_des3_context *) ctx, key); } -static int des3_set2key_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des3_set2key_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des3_set2key_enc( (mbedtls_des3_context *) ctx, key ); + return mbedtls_des3_set2key_enc((mbedtls_des3_context *) ctx, key); } -static int des3_set3key_dec_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des3_set3key_dec_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des3_set3key_dec( (mbedtls_des3_context *) ctx, key ); + return mbedtls_des3_set3key_dec((mbedtls_des3_context *) ctx, key); } -static int des3_set3key_enc_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int des3_set3key_enc_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) key_bitlen); - return mbedtls_des3_set3key_enc( (mbedtls_des3_context *) ctx, key ); + return mbedtls_des3_set3key_enc((mbedtls_des3_context *) ctx, key); } -static void * des_ctx_alloc( void ) +static void *des_ctx_alloc(void) { - mbedtls_des_context *des = mbedtls_calloc( 1, sizeof( mbedtls_des_context ) ); + mbedtls_des_context *des = mbedtls_calloc(1, sizeof(mbedtls_des_context)); - if( des == NULL ) - return( NULL ); + if (des == NULL) { + return NULL; + } - mbedtls_des_init( des ); + mbedtls_des_init(des); - return( des ); + return des; } -static void des_ctx_free( void *ctx ) +static void des_ctx_free(void *ctx) { - mbedtls_des_free( (mbedtls_des_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_des_free((mbedtls_des_context *) ctx); + mbedtls_free(ctx); } -static void * des3_ctx_alloc( void ) +static void *des3_ctx_alloc(void) { mbedtls_des3_context *des3; - des3 = mbedtls_calloc( 1, sizeof( mbedtls_des3_context ) ); + des3 = mbedtls_calloc(1, sizeof(mbedtls_des3_context)); - if( des3 == NULL ) - return( NULL ); + if (des3 == NULL) { + return NULL; + } - mbedtls_des3_init( des3 ); + mbedtls_des3_init(des3); - return( des3 ); + return des3; } -static void des3_ctx_free( void *ctx ) +static void des3_ctx_free(void *ctx) { - mbedtls_des3_free( (mbedtls_des3_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_des3_free((mbedtls_des3_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t des_info = { @@ -1761,48 +1769,52 @@ static const mbedtls_cipher_info_t des_ede3_cbc_info = { #if defined(MBEDTLS_CHACHA20_C) -static int chacha20_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int chacha20_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - if( key_bitlen != 256U ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (key_bitlen != 256U) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if ( 0 != mbedtls_chacha20_setkey( (mbedtls_chacha20_context*)ctx, key ) ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (0 != mbedtls_chacha20_setkey((mbedtls_chacha20_context *) ctx, key)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } -static int chacha20_stream_wrap( void *ctx, size_t length, - const unsigned char *input, - unsigned char *output ) +static int chacha20_stream_wrap(void *ctx, size_t length, + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_chacha20_update( ctx, length, input, output ); - if( ret == MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + ret = mbedtls_chacha20_update(ctx, length, input, output); + if (ret == MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( ret ); + return ret; } -static void * chacha20_ctx_alloc( void ) +static void *chacha20_ctx_alloc(void) { mbedtls_chacha20_context *ctx; - ctx = mbedtls_calloc( 1, sizeof( mbedtls_chacha20_context ) ); + ctx = mbedtls_calloc(1, sizeof(mbedtls_chacha20_context)); - if( ctx == NULL ) - return( NULL ); + if (ctx == NULL) { + return NULL; + } - mbedtls_chacha20_init( ctx ); + mbedtls_chacha20_init(ctx); - return( ctx ); + return ctx; } -static void chacha20_ctx_free( void *ctx ) +static void chacha20_ctx_free(void *ctx) { - mbedtls_chacha20_free( (mbedtls_chacha20_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_chacha20_free((mbedtls_chacha20_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t chacha20_base_info = { @@ -1845,36 +1857,39 @@ static const mbedtls_cipher_info_t chacha20_info = { #if defined(MBEDTLS_CHACHAPOLY_C) -static int chachapoly_setkey_wrap( void *ctx, - const unsigned char *key, - unsigned int key_bitlen ) +static int chachapoly_setkey_wrap(void *ctx, + const unsigned char *key, + unsigned int key_bitlen) { - if( key_bitlen != 256U ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (key_bitlen != 256U) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if ( 0 != mbedtls_chachapoly_setkey( (mbedtls_chachapoly_context*)ctx, key ) ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (0 != mbedtls_chachapoly_setkey((mbedtls_chachapoly_context *) ctx, key)) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } -static void * chachapoly_ctx_alloc( void ) +static void *chachapoly_ctx_alloc(void) { mbedtls_chachapoly_context *ctx; - ctx = mbedtls_calloc( 1, sizeof( mbedtls_chachapoly_context ) ); + ctx = mbedtls_calloc(1, sizeof(mbedtls_chachapoly_context)); - if( ctx == NULL ) - return( NULL ); + if (ctx == NULL) { + return NULL; + } - mbedtls_chachapoly_init( ctx ); + mbedtls_chachapoly_init(ctx); - return( ctx ); + return ctx; } -static void chachapoly_ctx_free( void *ctx ) +static void chachapoly_ctx_free(void *ctx) { - mbedtls_chachapoly_free( (mbedtls_chachapoly_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_chachapoly_free((mbedtls_chachapoly_context *) ctx); + mbedtls_free(ctx); } static const mbedtls_cipher_base_t chachapoly_base_info = { @@ -1916,31 +1931,31 @@ static const mbedtls_cipher_info_t chachapoly_info = { #endif /* MBEDTLS_CHACHAPOLY_C */ #if defined(MBEDTLS_CIPHER_NULL_CIPHER) -static int null_crypt_stream( void *ctx, size_t length, - const unsigned char *input, - unsigned char *output ) +static int null_crypt_stream(void *ctx, size_t length, + const unsigned char *input, + unsigned char *output) { ((void) ctx); - memmove( output, input, length ); - return( 0 ); + memmove(output, input, length); + return 0; } -static int null_setkey( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int null_setkey(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { ((void) ctx); ((void) key); ((void) key_bitlen); - return( 0 ); + return 0; } -static void * null_ctx_alloc( void ) +static void *null_ctx_alloc(void) { - return( (void *) 1 ); + return (void *) 1; } -static void null_ctx_free( void *ctx ) +static void null_ctx_free(void *ctx) { ((void) ctx); } @@ -1985,34 +2000,35 @@ static const mbedtls_cipher_info_t null_cipher_info = { #endif /* defined(MBEDTLS_CIPHER_NULL_CIPHER) */ #if defined(MBEDTLS_NIST_KW_C) -static void *kw_ctx_alloc( void ) +static void *kw_ctx_alloc(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_nist_kw_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_nist_kw_context)); - if( ctx != NULL ) - mbedtls_nist_kw_init( (mbedtls_nist_kw_context *) ctx ); + if (ctx != NULL) { + mbedtls_nist_kw_init((mbedtls_nist_kw_context *) ctx); + } - return( ctx ); + return ctx; } -static void kw_ctx_free( void *ctx ) +static void kw_ctx_free(void *ctx) { - mbedtls_nist_kw_free( ctx ); - mbedtls_free( ctx ); + mbedtls_nist_kw_free(ctx); + mbedtls_free(ctx); } -static int kw_aes_setkey_wrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int kw_aes_setkey_wrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_nist_kw_setkey( (mbedtls_nist_kw_context *) ctx, - MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 1 ); + return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx, + MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 1); } -static int kw_aes_setkey_unwrap( void *ctx, const unsigned char *key, - unsigned int key_bitlen ) +static int kw_aes_setkey_unwrap(void *ctx, const unsigned char *key, + unsigned int key_bitlen) { - return mbedtls_nist_kw_setkey( (mbedtls_nist_kw_context *) ctx, - MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 0 ); + return mbedtls_nist_kw_setkey((mbedtls_nist_kw_context *) ctx, + MBEDTLS_CIPHER_ID_AES, key, key_bitlen, 0); } static const mbedtls_cipher_base_t kw_aes_info = { @@ -2257,8 +2273,8 @@ const mbedtls_cipher_definition_t mbedtls_cipher_definitions[] = { MBEDTLS_CIPHER_NONE, NULL } }; -#define NUM_CIPHERS ( sizeof(mbedtls_cipher_definitions) / \ - sizeof(mbedtls_cipher_definitions[0]) ) +#define NUM_CIPHERS (sizeof(mbedtls_cipher_definitions) / \ + sizeof(mbedtls_cipher_definitions[0])) int mbedtls_cipher_supported[NUM_CIPHERS]; #endif /* MBEDTLS_CIPHER_C */ diff --git a/library/cipher_wrap.h b/library/cipher_wrap.h index e27d6afce..052cddbe1 100644 --- a/library/cipher_wrap.h +++ b/library/cipher_wrap.h @@ -39,82 +39,79 @@ extern "C" { /** * Base cipher information. The non-mode specific functions and values. */ -struct mbedtls_cipher_base_t -{ +struct mbedtls_cipher_base_t { /** Base Cipher type (e.g. MBEDTLS_CIPHER_ID_AES) */ mbedtls_cipher_id_t cipher; /** Encrypt using ECB */ - int (*ecb_func)( void *ctx, mbedtls_operation_t mode, - const unsigned char *input, unsigned char *output ); + int (*ecb_func)(void *ctx, mbedtls_operation_t mode, + const unsigned char *input, unsigned char *output); #if defined(MBEDTLS_CIPHER_MODE_CBC) /** Encrypt using CBC */ - int (*cbc_func)( void *ctx, mbedtls_operation_t mode, size_t length, - unsigned char *iv, const unsigned char *input, - unsigned char *output ); + int (*cbc_func)(void *ctx, mbedtls_operation_t mode, size_t length, + unsigned char *iv, const unsigned char *input, + unsigned char *output); #endif #if defined(MBEDTLS_CIPHER_MODE_CFB) /** Encrypt using CFB (Full length) */ - int (*cfb_func)( void *ctx, mbedtls_operation_t mode, size_t length, size_t *iv_off, - unsigned char *iv, const unsigned char *input, - unsigned char *output ); + int (*cfb_func)(void *ctx, mbedtls_operation_t mode, size_t length, size_t *iv_off, + unsigned char *iv, const unsigned char *input, + unsigned char *output); #endif #if defined(MBEDTLS_CIPHER_MODE_OFB) /** Encrypt using OFB (Full length) */ - int (*ofb_func)( void *ctx, size_t length, size_t *iv_off, - unsigned char *iv, - const unsigned char *input, - unsigned char *output ); + int (*ofb_func)(void *ctx, size_t length, size_t *iv_off, + unsigned char *iv, + const unsigned char *input, + unsigned char *output); #endif #if defined(MBEDTLS_CIPHER_MODE_CTR) /** Encrypt using CTR */ - int (*ctr_func)( void *ctx, size_t length, size_t *nc_off, - unsigned char *nonce_counter, unsigned char *stream_block, - const unsigned char *input, unsigned char *output ); + int (*ctr_func)(void *ctx, size_t length, size_t *nc_off, + unsigned char *nonce_counter, unsigned char *stream_block, + const unsigned char *input, unsigned char *output); #endif #if defined(MBEDTLS_CIPHER_MODE_XTS) /** Encrypt or decrypt using XTS. */ - int (*xts_func)( void *ctx, mbedtls_operation_t mode, size_t length, - const unsigned char data_unit[16], - const unsigned char *input, unsigned char *output ); + int (*xts_func)(void *ctx, mbedtls_operation_t mode, size_t length, + const unsigned char data_unit[16], + const unsigned char *input, unsigned char *output); #endif #if defined(MBEDTLS_CIPHER_MODE_STREAM) /** Encrypt using STREAM */ - int (*stream_func)( void *ctx, size_t length, - const unsigned char *input, unsigned char *output ); + int (*stream_func)(void *ctx, size_t length, + const unsigned char *input, unsigned char *output); #endif /** Set key for encryption purposes */ - int (*setkey_enc_func)( void *ctx, const unsigned char *key, - unsigned int key_bitlen ); + int (*setkey_enc_func)(void *ctx, const unsigned char *key, + unsigned int key_bitlen); /** Set key for decryption purposes */ - int (*setkey_dec_func)( void *ctx, const unsigned char *key, - unsigned int key_bitlen); + int (*setkey_dec_func)(void *ctx, const unsigned char *key, + unsigned int key_bitlen); /** Allocate a new context */ - void * (*ctx_alloc_func)( void ); + void * (*ctx_alloc_func)(void); /** Free the given context */ - void (*ctx_free_func)( void *ctx ); + void (*ctx_free_func)(void *ctx); }; -typedef struct -{ +typedef struct { mbedtls_cipher_type_t type; const mbedtls_cipher_info_t *info; } mbedtls_cipher_definition_t; #if defined(MBEDTLS_USE_PSA_CRYPTO) -typedef enum -{ +typedef enum { MBEDTLS_CIPHER_PSA_KEY_UNSET = 0, MBEDTLS_CIPHER_PSA_KEY_OWNED, /* Used for PSA-based cipher contexts which */ /* use raw key material internally imported */ @@ -127,8 +124,7 @@ typedef enum /* destroyed when the context is freed. */ } mbedtls_cipher_psa_key_ownership; -typedef struct -{ +typedef struct { psa_algorithm_t alg; mbedtls_svc_key_id_t slot; mbedtls_cipher_psa_key_ownership slot_state; diff --git a/library/cmac.c b/library/cmac.c index 987085686..7d90ad2f5 100644 --- a/library/cmac.c +++ b/library/cmac.c @@ -63,9 +63,9 @@ * Input and output MUST NOT point to the same buffer * Block size must be 8 bytes or 16 bytes - the block sizes for DES and AES. */ -static int cmac_multiply_by_u( unsigned char *output, - const unsigned char *input, - size_t blocksize ) +static int cmac_multiply_by_u(unsigned char *output, + const unsigned char *input, + size_t blocksize) { const unsigned char R_128 = 0x87; const unsigned char R_64 = 0x1B; @@ -73,21 +73,15 @@ static int cmac_multiply_by_u( unsigned char *output, unsigned char overflow = 0x00; int i; - if( blocksize == MBEDTLS_AES_BLOCK_SIZE ) - { + if (blocksize == MBEDTLS_AES_BLOCK_SIZE) { R_n = R_128; - } - else if( blocksize == MBEDTLS_DES3_BLOCK_SIZE ) - { + } else if (blocksize == MBEDTLS_DES3_BLOCK_SIZE) { R_n = R_64; - } - else - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + } else { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - for( i = (int)blocksize - 1; i >= 0; i-- ) - { + for (i = (int) blocksize - 1; i >= 0; i--) { output[i] = input[i] << 1 | overflow; overflow = input[i] >> 7; } @@ -101,14 +95,14 @@ static int cmac_multiply_by_u( unsigned char *output, #pragma warning( push ) #pragma warning( disable : 4146 ) #endif - mask = - ( input[0] >> 7 ); + mask = -(input[0] >> 7); #if defined(_MSC_VER) #pragma warning( pop ) #endif - output[ blocksize - 1 ] ^= R_n & mask; + output[blocksize - 1] ^= R_n & mask; - return( 0 ); + return 0; } /* @@ -116,34 +110,37 @@ static int cmac_multiply_by_u( unsigned char *output, * * - as specified by RFC 4493, section 2.3 Subkey Generation Algorithm */ -static int cmac_generate_subkeys( mbedtls_cipher_context_t *ctx, - unsigned char* K1, unsigned char* K2 ) +static int cmac_generate_subkeys(mbedtls_cipher_context_t *ctx, + unsigned char *K1, unsigned char *K2) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char L[MBEDTLS_CIPHER_BLKSIZE_MAX]; size_t olen, block_size; - mbedtls_platform_zeroize( L, sizeof( L ) ); + mbedtls_platform_zeroize(L, sizeof(L)); block_size = ctx->cipher_info->block_size; /* Calculate Ek(0) */ - if( ( ret = mbedtls_cipher_update( ctx, L, block_size, L, &olen ) ) != 0 ) + if ((ret = mbedtls_cipher_update(ctx, L, block_size, L, &olen)) != 0) { goto exit; + } /* * Generate K1 and K2 */ - if( ( ret = cmac_multiply_by_u( K1, L , block_size ) ) != 0 ) + if ((ret = cmac_multiply_by_u(K1, L, block_size)) != 0) { goto exit; + } - if( ( ret = cmac_multiply_by_u( K2, K1 , block_size ) ) != 0 ) + if ((ret = cmac_multiply_by_u(K2, K1, block_size)) != 0) { goto exit; + } exit: - mbedtls_platform_zeroize( L, sizeof( L ) ); + mbedtls_platform_zeroize(L, sizeof(L)); - return( ret ); + return ret; } #endif /* !defined(MBEDTLS_CMAC_ALT) || defined(MBEDTLS_SELF_TEST) */ @@ -155,75 +152,78 @@ exit: * We can't use the padding option from the cipher layer, as it only works for * CBC and we use ECB mode, and anyway we need to XOR K1 or K2 in addition. */ -static void cmac_pad( unsigned char padded_block[MBEDTLS_CIPHER_BLKSIZE_MAX], - size_t padded_block_len, - const unsigned char *last_block, - size_t last_block_len ) +static void cmac_pad(unsigned char padded_block[MBEDTLS_CIPHER_BLKSIZE_MAX], + size_t padded_block_len, + const unsigned char *last_block, + size_t last_block_len) { size_t j; - for( j = 0; j < padded_block_len; j++ ) - { - if( j < last_block_len ) + for (j = 0; j < padded_block_len; j++) { + if (j < last_block_len) { padded_block[j] = last_block[j]; - else if( j == last_block_len ) + } else if (j == last_block_len) { padded_block[j] = 0x80; - else + } else { padded_block[j] = 0x00; + } } } -int mbedtls_cipher_cmac_starts( mbedtls_cipher_context_t *ctx, - const unsigned char *key, size_t keybits ) +int mbedtls_cipher_cmac_starts(mbedtls_cipher_context_t *ctx, + const unsigned char *key, size_t keybits) { mbedtls_cipher_type_t type; mbedtls_cmac_context_t *cmac_ctx; int retval; - if( ctx == NULL || ctx->cipher_info == NULL || key == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->cipher_info == NULL || key == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if( ( retval = mbedtls_cipher_setkey( ctx, key, (int)keybits, - MBEDTLS_ENCRYPT ) ) != 0 ) - return( retval ); + if ((retval = mbedtls_cipher_setkey(ctx, key, (int) keybits, + MBEDTLS_ENCRYPT)) != 0) { + return retval; + } type = ctx->cipher_info->type; - switch( type ) - { + switch (type) { case MBEDTLS_CIPHER_AES_128_ECB: case MBEDTLS_CIPHER_AES_192_ECB: case MBEDTLS_CIPHER_AES_256_ECB: case MBEDTLS_CIPHER_DES_EDE3_ECB: break; default: - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } /* Allocated and initialise in the cipher context memory for the CMAC * context */ - cmac_ctx = mbedtls_calloc( 1, sizeof( mbedtls_cmac_context_t ) ); - if( cmac_ctx == NULL ) - return( MBEDTLS_ERR_CIPHER_ALLOC_FAILED ); + cmac_ctx = mbedtls_calloc(1, sizeof(mbedtls_cmac_context_t)); + if (cmac_ctx == NULL) { + return MBEDTLS_ERR_CIPHER_ALLOC_FAILED; + } ctx->cmac_ctx = cmac_ctx; - mbedtls_platform_zeroize( cmac_ctx->state, sizeof( cmac_ctx->state ) ); + mbedtls_platform_zeroize(cmac_ctx->state, sizeof(cmac_ctx->state)); return 0; } -int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, - const unsigned char *input, size_t ilen ) +int mbedtls_cipher_cmac_update(mbedtls_cipher_context_t *ctx, + const unsigned char *input, size_t ilen) { - mbedtls_cmac_context_t* cmac_ctx; + mbedtls_cmac_context_t *cmac_ctx; unsigned char *state; int ret = 0; size_t n, j, olen, block_size; - if( ctx == NULL || ctx->cipher_info == NULL || input == NULL || - ctx->cmac_ctx == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->cipher_info == NULL || input == NULL || + ctx->cmac_ctx == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } cmac_ctx = ctx->cmac_ctx; block_size = ctx->cipher_info->block_size; @@ -231,19 +231,17 @@ int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, /* Is there data still to process from the last call, that's greater in * size than a block? */ - if( cmac_ctx->unprocessed_len > 0 && - ilen > block_size - cmac_ctx->unprocessed_len ) - { - memcpy( &cmac_ctx->unprocessed_block[cmac_ctx->unprocessed_len], - input, - block_size - cmac_ctx->unprocessed_len ); + if (cmac_ctx->unprocessed_len > 0 && + ilen > block_size - cmac_ctx->unprocessed_len) { + memcpy(&cmac_ctx->unprocessed_block[cmac_ctx->unprocessed_len], + input, + block_size - cmac_ctx->unprocessed_len); - mbedtls_xor( state, cmac_ctx->unprocessed_block, state, block_size ); + mbedtls_xor(state, cmac_ctx->unprocessed_block, state, block_size); - if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, - &olen ) ) != 0 ) - { - goto exit; + if ((ret = mbedtls_cipher_update(ctx, state, block_size, state, + &olen)) != 0) { + goto exit; } input += block_size - cmac_ctx->unprocessed_len; @@ -252,39 +250,38 @@ int mbedtls_cipher_cmac_update( mbedtls_cipher_context_t *ctx, } /* n is the number of blocks including any final partial block */ - n = ( ilen + block_size - 1 ) / block_size; + n = (ilen + block_size - 1) / block_size; /* Iterate across the input data in block sized chunks, excluding any * final partial or complete block */ - for( j = 1; j < n; j++ ) - { - mbedtls_xor( state, input, state, block_size ); + for (j = 1; j < n; j++) { + mbedtls_xor(state, input, state, block_size); - if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, - &olen ) ) != 0 ) - goto exit; + if ((ret = mbedtls_cipher_update(ctx, state, block_size, state, + &olen)) != 0) { + goto exit; + } ilen -= block_size; input += block_size; } /* If there is data left over that wasn't aligned to a block */ - if( ilen > 0 ) - { - memcpy( &cmac_ctx->unprocessed_block[cmac_ctx->unprocessed_len], - input, - ilen ); + if (ilen > 0) { + memcpy(&cmac_ctx->unprocessed_block[cmac_ctx->unprocessed_len], + input, + ilen); cmac_ctx->unprocessed_len += ilen; } exit: - return( ret ); + return ret; } -int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx, - unsigned char *output ) +int mbedtls_cipher_cmac_finish(mbedtls_cipher_context_t *ctx, + unsigned char *output) { - mbedtls_cmac_context_t* cmac_ctx; + mbedtls_cmac_context_t *cmac_ctx; unsigned char *state, *last_block; unsigned char K1[MBEDTLS_CIPHER_BLKSIZE_MAX]; unsigned char K2[MBEDTLS_CIPHER_BLKSIZE_MAX]; @@ -292,153 +289,153 @@ int mbedtls_cipher_cmac_finish( mbedtls_cipher_context_t *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen, block_size; - if( ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL || - output == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL || + output == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } cmac_ctx = ctx->cmac_ctx; block_size = ctx->cipher_info->block_size; state = cmac_ctx->state; - mbedtls_platform_zeroize( K1, sizeof( K1 ) ); - mbedtls_platform_zeroize( K2, sizeof( K2 ) ); - cmac_generate_subkeys( ctx, K1, K2 ); + mbedtls_platform_zeroize(K1, sizeof(K1)); + mbedtls_platform_zeroize(K2, sizeof(K2)); + cmac_generate_subkeys(ctx, K1, K2); last_block = cmac_ctx->unprocessed_block; /* Calculate last block */ - if( cmac_ctx->unprocessed_len < block_size ) - { - cmac_pad( M_last, block_size, last_block, cmac_ctx->unprocessed_len ); - mbedtls_xor( M_last, M_last, K2, block_size ); - } - else - { + if (cmac_ctx->unprocessed_len < block_size) { + cmac_pad(M_last, block_size, last_block, cmac_ctx->unprocessed_len); + mbedtls_xor(M_last, M_last, K2, block_size); + } else { /* Last block is complete block */ - mbedtls_xor( M_last, last_block, K1, block_size ); + mbedtls_xor(M_last, last_block, K1, block_size); } - mbedtls_xor( state, M_last, state, block_size ); - if( ( ret = mbedtls_cipher_update( ctx, state, block_size, state, - &olen ) ) != 0 ) - { + mbedtls_xor(state, M_last, state, block_size); + if ((ret = mbedtls_cipher_update(ctx, state, block_size, state, + &olen)) != 0) { goto exit; } - memcpy( output, state, block_size ); + memcpy(output, state, block_size); exit: /* Wipe the generated keys on the stack, and any other transients to avoid * side channel leakage */ - mbedtls_platform_zeroize( K1, sizeof( K1 ) ); - mbedtls_platform_zeroize( K2, sizeof( K2 ) ); + mbedtls_platform_zeroize(K1, sizeof(K1)); + mbedtls_platform_zeroize(K2, sizeof(K2)); cmac_ctx->unprocessed_len = 0; - mbedtls_platform_zeroize( cmac_ctx->unprocessed_block, - sizeof( cmac_ctx->unprocessed_block ) ); + mbedtls_platform_zeroize(cmac_ctx->unprocessed_block, + sizeof(cmac_ctx->unprocessed_block)); - mbedtls_platform_zeroize( state, MBEDTLS_CIPHER_BLKSIZE_MAX ); - return( ret ); + mbedtls_platform_zeroize(state, MBEDTLS_CIPHER_BLKSIZE_MAX); + return ret; } -int mbedtls_cipher_cmac_reset( mbedtls_cipher_context_t *ctx ) +int mbedtls_cipher_cmac_reset(mbedtls_cipher_context_t *ctx) { - mbedtls_cmac_context_t* cmac_ctx; + mbedtls_cmac_context_t *cmac_ctx; - if( ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->cipher_info == NULL || ctx->cmac_ctx == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } cmac_ctx = ctx->cmac_ctx; /* Reset the internal state */ cmac_ctx->unprocessed_len = 0; - mbedtls_platform_zeroize( cmac_ctx->unprocessed_block, - sizeof( cmac_ctx->unprocessed_block ) ); - mbedtls_platform_zeroize( cmac_ctx->state, - sizeof( cmac_ctx->state ) ); + mbedtls_platform_zeroize(cmac_ctx->unprocessed_block, + sizeof(cmac_ctx->unprocessed_block)); + mbedtls_platform_zeroize(cmac_ctx->state, + sizeof(cmac_ctx->state)); - return( 0 ); + return 0; } -int mbedtls_cipher_cmac( const mbedtls_cipher_info_t *cipher_info, - const unsigned char *key, size_t keylen, - const unsigned char *input, size_t ilen, - unsigned char *output ) +int mbedtls_cipher_cmac(const mbedtls_cipher_info_t *cipher_info, + const unsigned char *key, size_t keylen, + const unsigned char *input, size_t ilen, + unsigned char *output) { mbedtls_cipher_context_t ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( cipher_info == NULL || key == NULL || input == NULL || output == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (cipher_info == NULL || key == NULL || input == NULL || output == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - if( ( ret = mbedtls_cipher_setup( &ctx, cipher_info ) ) != 0 ) + if ((ret = mbedtls_cipher_setup(&ctx, cipher_info)) != 0) { goto exit; + } - ret = mbedtls_cipher_cmac_starts( &ctx, key, keylen ); - if( ret != 0 ) + ret = mbedtls_cipher_cmac_starts(&ctx, key, keylen); + if (ret != 0) { goto exit; + } - ret = mbedtls_cipher_cmac_update( &ctx, input, ilen ); - if( ret != 0 ) + ret = mbedtls_cipher_cmac_update(&ctx, input, ilen); + if (ret != 0) { goto exit; + } - ret = mbedtls_cipher_cmac_finish( &ctx, output ); + ret = mbedtls_cipher_cmac_finish(&ctx, output); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_AES_C) /* * Implementation of AES-CMAC-PRF-128 defined in RFC 4615 */ -int mbedtls_aes_cmac_prf_128( const unsigned char *key, size_t key_length, - const unsigned char *input, size_t in_len, - unsigned char output[16] ) +int mbedtls_aes_cmac_prf_128(const unsigned char *key, size_t key_length, + const unsigned char *input, size_t in_len, + unsigned char output[16]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; unsigned char zero_key[MBEDTLS_AES_BLOCK_SIZE]; unsigned char int_key[MBEDTLS_AES_BLOCK_SIZE]; - if( key == NULL || input == NULL || output == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (key == NULL || input == NULL || output == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_ECB ); - if( cipher_info == NULL ) - { + cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB); + if (cipher_info == NULL) { /* Failing at this point must be due to a build issue */ ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; goto exit; } - if( key_length == MBEDTLS_AES_BLOCK_SIZE ) - { + if (key_length == MBEDTLS_AES_BLOCK_SIZE) { /* Use key as is */ - memcpy( int_key, key, MBEDTLS_AES_BLOCK_SIZE ); - } - else - { - memset( zero_key, 0, MBEDTLS_AES_BLOCK_SIZE ); + memcpy(int_key, key, MBEDTLS_AES_BLOCK_SIZE); + } else { + memset(zero_key, 0, MBEDTLS_AES_BLOCK_SIZE); - ret = mbedtls_cipher_cmac( cipher_info, zero_key, 128, key, - key_length, int_key ); - if( ret != 0 ) + ret = mbedtls_cipher_cmac(cipher_info, zero_key, 128, key, + key_length, int_key); + if (ret != 0) { goto exit; + } } - ret = mbedtls_cipher_cmac( cipher_info, int_key, 128, input, in_len, - output ); + ret = mbedtls_cipher_cmac(cipher_info, int_key, 128, input, in_len, + output); exit: - mbedtls_platform_zeroize( int_key, sizeof( int_key ) ); + mbedtls_platform_zeroize(int_key, sizeof(int_key)); - return( ret ); + return ret; } #endif /* MBEDTLS_AES_C */ @@ -499,7 +496,8 @@ static const unsigned char aes_128_subkeys[2][MBEDTLS_AES_BLOCK_SIZE] = { 0xf9, 0x0b, 0xc1, 0x1e, 0xe4, 0x6d, 0x51, 0x3b } }; -static const unsigned char aes_128_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = { +static const unsigned char aes_128_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = +{ { /* Example #1 */ 0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28, @@ -540,7 +538,8 @@ static const unsigned char aes_192_subkeys[2][MBEDTLS_AES_BLOCK_SIZE] = { 0x7d, 0xcc, 0x87, 0x3b, 0xa9, 0xb5, 0x45, 0x2c } }; -static const unsigned char aes_192_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = { +static const unsigned char aes_192_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = +{ { /* Example #1 */ 0xd1, 0x7d, 0xdf, 0x46, 0xad, 0xaa, 0xcd, 0xe5, @@ -582,7 +581,8 @@ static const unsigned char aes_256_subkeys[2][MBEDTLS_AES_BLOCK_SIZE] = { 0x5d, 0x35, 0x33, 0x01, 0x0c, 0x42, 0xa0, 0xd9 } }; -static const unsigned char aes_256_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = { +static const unsigned char aes_256_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_AES_BLOCK_SIZE] = +{ { /* Example #1 */ 0x02, 0x89, 0x62, 0xf6, 0x1b, 0x7b, 0xf8, 0x9e, @@ -634,7 +634,8 @@ static const unsigned char des3_2key_subkeys[2][8] = { 0x1b, 0xa5, 0x96, 0xf4, 0x7b, 0x11, 0x11, 0xb2 } }; -static const unsigned char des3_2key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE] = { +static const unsigned char des3_2key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE] + = { { /* Sample #1 */ 0x79, 0xce, 0x52, 0xa7, 0xf7, 0x86, 0xa9, 0x60 @@ -651,7 +652,7 @@ static const unsigned char des3_2key_expected_result[NB_CMAC_TESTS_PER_KEY][MBED /* Sample #4 */ 0x9c, 0xd3, 0x35, 0x80, 0xf9, 0xb6, 0x4d, 0xfb } -}; + }; /* CMAC-TDES (Generation) - 3 Key Test Data */ static const unsigned char des3_3key_key[24] = { @@ -672,7 +673,8 @@ static const unsigned char des3_3key_subkeys[2][8] = { 0x3a, 0xe9, 0xce, 0x72, 0x66, 0x2f, 0x2d, 0x9b } }; -static const unsigned char des3_3key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE] = { +static const unsigned char des3_3key_expected_result[NB_CMAC_TESTS_PER_KEY][MBEDTLS_DES3_BLOCK_SIZE] + = { { /* Sample #1 */ 0x7d, 0xb0, 0xd3, 0x7d, 0xf9, 0x36, 0xc5, 0x50 @@ -689,7 +691,7 @@ static const unsigned char des3_3key_expected_result[NB_CMAC_TESTS_PER_KEY][MBED /* Sample #4 */ 0x99, 0x42, 0x9b, 0xd0, 0xbF, 0x79, 0x04, 0xe5 } -}; + }; #endif /* MBEDTLS_DES_C */ @@ -732,14 +734,14 @@ static const unsigned char PRFT[NB_PRF_TESTS][16] = { }; #endif /* MBEDTLS_AES_C */ -static int cmac_test_subkeys( int verbose, - const char* testname, - const unsigned char* key, - int keybits, - const unsigned char* subkeys, - mbedtls_cipher_type_t cipher_type, - int block_size, - int num_tests ) +static int cmac_test_subkeys(int verbose, + const char *testname, + const unsigned char *key, + int keybits, + const unsigned char *subkeys, + mbedtls_cipher_type_t cipher_type, + int block_size, + int num_tests) { int i, ret = 0; mbedtls_cipher_context_t ctx; @@ -747,330 +749,321 @@ static int cmac_test_subkeys( int verbose, unsigned char K1[MBEDTLS_CIPHER_BLKSIZE_MAX]; unsigned char K2[MBEDTLS_CIPHER_BLKSIZE_MAX]; - cipher_info = mbedtls_cipher_info_from_type( cipher_type ); - if( cipher_info == NULL ) - { + cipher_info = mbedtls_cipher_info_from_type(cipher_type); + if (cipher_info == NULL) { /* Failing at this point must be due to a build issue */ - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } - for( i = 0; i < num_tests; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " %s CMAC subkey #%d: ", testname, i + 1 ); + for (i = 0; i < num_tests; i++) { + if (verbose != 0) { + mbedtls_printf(" %s CMAC subkey #%d: ", testname, i + 1); + } - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - if( ( ret = mbedtls_cipher_setup( &ctx, cipher_info ) ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "test execution failed\n" ); + if ((ret = mbedtls_cipher_setup(&ctx, cipher_info)) != 0) { + if (verbose != 0) { + mbedtls_printf("test execution failed\n"); + } goto cleanup; } - if( ( ret = mbedtls_cipher_setkey( &ctx, key, keybits, - MBEDTLS_ENCRYPT ) ) != 0 ) - { + if ((ret = mbedtls_cipher_setkey(&ctx, key, keybits, + MBEDTLS_ENCRYPT)) != 0) { /* When CMAC is implemented by an alternative implementation, or * the underlying primitive itself is implemented alternatively, * AES-192 may be unavailable. This should not cause the selftest * function to fail. */ - if( ( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED || - ret == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ) && - cipher_type == MBEDTLS_CIPHER_AES_192_ECB ) { - if( verbose != 0 ) - mbedtls_printf( "skipped\n" ); + if ((ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED || + ret == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE) && + cipher_type == MBEDTLS_CIPHER_AES_192_ECB) { + if (verbose != 0) { + mbedtls_printf("skipped\n"); + } goto next_test; } - if( verbose != 0 ) - mbedtls_printf( "test execution failed\n" ); + if (verbose != 0) { + mbedtls_printf("test execution failed\n"); + } goto cleanup; } - ret = cmac_generate_subkeys( &ctx, K1, K2 ); - if( ret != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + ret = cmac_generate_subkeys(&ctx, K1, K2); + if (ret != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto cleanup; } - if( ( ret = memcmp( K1, subkeys, block_size ) ) != 0 || - ( ret = memcmp( K2, &subkeys[block_size], block_size ) ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if ((ret = memcmp(K1, subkeys, block_size)) != 0 || + (ret = memcmp(K2, &subkeys[block_size], block_size)) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } next_test: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } ret = 0; goto exit; cleanup: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); exit: - return( ret ); + return ret; } -static int cmac_test_wth_cipher( int verbose, - const char* testname, - const unsigned char* key, - int keybits, - const unsigned char* messages, - const unsigned int message_lengths[4], - const unsigned char* expected_result, - mbedtls_cipher_type_t cipher_type, - int block_size, - int num_tests ) +static int cmac_test_wth_cipher(int verbose, + const char *testname, + const unsigned char *key, + int keybits, + const unsigned char *messages, + const unsigned int message_lengths[4], + const unsigned char *expected_result, + mbedtls_cipher_type_t cipher_type, + int block_size, + int num_tests) { const mbedtls_cipher_info_t *cipher_info; int i, ret = 0; unsigned char output[MBEDTLS_CIPHER_BLKSIZE_MAX]; - cipher_info = mbedtls_cipher_info_from_type( cipher_type ); - if( cipher_info == NULL ) - { + cipher_info = mbedtls_cipher_info_from_type(cipher_type); + if (cipher_info == NULL) { /* Failing at this point must be due to a build issue */ ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; goto exit; } - for( i = 0; i < num_tests; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " %s CMAC #%d: ", testname, i + 1 ); + for (i = 0; i < num_tests; i++) { + if (verbose != 0) { + mbedtls_printf(" %s CMAC #%d: ", testname, i + 1); + } - if( ( ret = mbedtls_cipher_cmac( cipher_info, key, keybits, messages, - message_lengths[i], output ) ) != 0 ) - { + if ((ret = mbedtls_cipher_cmac(cipher_info, key, keybits, messages, + message_lengths[i], output)) != 0) { /* When CMAC is implemented by an alternative implementation, or * the underlying primitive itself is implemented alternatively, * AES-192 and/or 3DES may be unavailable. This should not cause * the selftest function to fail. */ - if( ( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED || - ret == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ) && - ( cipher_type == MBEDTLS_CIPHER_AES_192_ECB || - cipher_type == MBEDTLS_CIPHER_DES_EDE3_ECB ) ) { - if( verbose != 0 ) - mbedtls_printf( "skipped\n" ); + if ((ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED || + ret == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE) && + (cipher_type == MBEDTLS_CIPHER_AES_192_ECB || + cipher_type == MBEDTLS_CIPHER_DES_EDE3_ECB)) { + if (verbose != 0) { + mbedtls_printf("skipped\n"); + } continue; } - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto exit; } - if( ( ret = memcmp( output, &expected_result[i * block_size], block_size ) ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if ((ret = memcmp(output, &expected_result[i * block_size], block_size)) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } ret = 0; exit: - return( ret ); + return ret; } #if defined(MBEDTLS_AES_C) -static int test_aes128_cmac_prf( int verbose ) +static int test_aes128_cmac_prf(int verbose) { int i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char output[MBEDTLS_AES_BLOCK_SIZE]; - for( i = 0; i < NB_PRF_TESTS; i++ ) - { - mbedtls_printf( " AES CMAC 128 PRF #%d: ", i ); - ret = mbedtls_aes_cmac_prf_128( PRFK, PRFKlen[i], PRFM, 20, output ); - if( ret != 0 || - memcmp( output, PRFT[i], MBEDTLS_AES_BLOCK_SIZE ) != 0 ) - { + for (i = 0; i < NB_PRF_TESTS; i++) { + mbedtls_printf(" AES CMAC 128 PRF #%d: ", i); + ret = mbedtls_aes_cmac_prf_128(PRFK, PRFKlen[i], PRFM, 20, output); + if (ret != 0 || + memcmp(output, PRFT[i], MBEDTLS_AES_BLOCK_SIZE) != 0) { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } - return( ret ); - } - else if( verbose != 0 ) - { - mbedtls_printf( "passed\n" ); + return ret; + } else if (verbose != 0) { + mbedtls_printf("passed\n"); } } - return( ret ); + return ret; } #endif /* MBEDTLS_AES_C */ -int mbedtls_cmac_self_test( int verbose ) +int mbedtls_cmac_self_test(int verbose) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_AES_C) /* AES-128 */ - if( ( ret = cmac_test_subkeys( verbose, - "AES 128", - aes_128_key, - 128, - (const unsigned char*)aes_128_subkeys, - MBEDTLS_CIPHER_AES_128_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_subkeys(verbose, + "AES 128", + aes_128_key, + 128, + (const unsigned char *) aes_128_subkeys, + MBEDTLS_CIPHER_AES_128_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } - if( ( ret = cmac_test_wth_cipher( verbose, - "AES 128", - aes_128_key, - 128, - test_message, - aes_message_lengths, - (const unsigned char*)aes_128_expected_result, - MBEDTLS_CIPHER_AES_128_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_wth_cipher(verbose, + "AES 128", + aes_128_key, + 128, + test_message, + aes_message_lengths, + (const unsigned char *) aes_128_expected_result, + MBEDTLS_CIPHER_AES_128_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } /* AES-192 */ - if( ( ret = cmac_test_subkeys( verbose, - "AES 192", - aes_192_key, - 192, - (const unsigned char*)aes_192_subkeys, - MBEDTLS_CIPHER_AES_192_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_subkeys(verbose, + "AES 192", + aes_192_key, + 192, + (const unsigned char *) aes_192_subkeys, + MBEDTLS_CIPHER_AES_192_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } - if( ( ret = cmac_test_wth_cipher( verbose, - "AES 192", - aes_192_key, - 192, - test_message, - aes_message_lengths, - (const unsigned char*)aes_192_expected_result, - MBEDTLS_CIPHER_AES_192_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_wth_cipher(verbose, + "AES 192", + aes_192_key, + 192, + test_message, + aes_message_lengths, + (const unsigned char *) aes_192_expected_result, + MBEDTLS_CIPHER_AES_192_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } /* AES-256 */ - if( ( ret = cmac_test_subkeys( verbose, - "AES 256", - aes_256_key, - 256, - (const unsigned char*)aes_256_subkeys, - MBEDTLS_CIPHER_AES_256_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_subkeys(verbose, + "AES 256", + aes_256_key, + 256, + (const unsigned char *) aes_256_subkeys, + MBEDTLS_CIPHER_AES_256_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } - if( ( ret = cmac_test_wth_cipher ( verbose, - "AES 256", - aes_256_key, - 256, - test_message, - aes_message_lengths, - (const unsigned char*)aes_256_expected_result, - MBEDTLS_CIPHER_AES_256_ECB, - MBEDTLS_AES_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_wth_cipher(verbose, + "AES 256", + aes_256_key, + 256, + test_message, + aes_message_lengths, + (const unsigned char *) aes_256_expected_result, + MBEDTLS_CIPHER_AES_256_ECB, + MBEDTLS_AES_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } #endif /* MBEDTLS_AES_C */ #if defined(MBEDTLS_DES_C) /* 3DES 2 key */ - if( ( ret = cmac_test_subkeys( verbose, - "3DES 2 key", - des3_2key_key, - 192, - (const unsigned char*)des3_2key_subkeys, - MBEDTLS_CIPHER_DES_EDE3_ECB, - MBEDTLS_DES3_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_subkeys(verbose, + "3DES 2 key", + des3_2key_key, + 192, + (const unsigned char *) des3_2key_subkeys, + MBEDTLS_CIPHER_DES_EDE3_ECB, + MBEDTLS_DES3_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } - if( ( ret = cmac_test_wth_cipher( verbose, - "3DES 2 key", - des3_2key_key, - 192, - test_message, - des3_message_lengths, - (const unsigned char*)des3_2key_expected_result, - MBEDTLS_CIPHER_DES_EDE3_ECB, - MBEDTLS_DES3_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_wth_cipher(verbose, + "3DES 2 key", + des3_2key_key, + 192, + test_message, + des3_message_lengths, + (const unsigned char *) des3_2key_expected_result, + MBEDTLS_CIPHER_DES_EDE3_ECB, + MBEDTLS_DES3_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } /* 3DES 3 key */ - if( ( ret = cmac_test_subkeys( verbose, - "3DES 3 key", - des3_3key_key, - 192, - (const unsigned char*)des3_3key_subkeys, - MBEDTLS_CIPHER_DES_EDE3_ECB, - MBEDTLS_DES3_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_subkeys(verbose, + "3DES 3 key", + des3_3key_key, + 192, + (const unsigned char *) des3_3key_subkeys, + MBEDTLS_CIPHER_DES_EDE3_ECB, + MBEDTLS_DES3_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } - if( ( ret = cmac_test_wth_cipher( verbose, - "3DES 3 key", - des3_3key_key, - 192, - test_message, - des3_message_lengths, - (const unsigned char*)des3_3key_expected_result, - MBEDTLS_CIPHER_DES_EDE3_ECB, - MBEDTLS_DES3_BLOCK_SIZE, - NB_CMAC_TESTS_PER_KEY ) ) != 0 ) - { - return( ret ); + if ((ret = cmac_test_wth_cipher(verbose, + "3DES 3 key", + des3_3key_key, + 192, + test_message, + des3_message_lengths, + (const unsigned char *) des3_3key_expected_result, + MBEDTLS_CIPHER_DES_EDE3_ECB, + MBEDTLS_DES3_BLOCK_SIZE, + NB_CMAC_TESTS_PER_KEY)) != 0) { + return ret; } #endif /* MBEDTLS_DES_C */ #if defined(MBEDTLS_AES_C) - if( ( ret = test_aes128_cmac_prf( verbose ) ) != 0 ) - return( ret ); + if ((ret = test_aes128_cmac_prf(verbose)) != 0) { + return ret; + } #endif /* MBEDTLS_AES_C */ - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/common.h b/library/common.h index 9d3b8fe93..fd3ddba48 100644 --- a/library/common.h +++ b/library/common.h @@ -52,16 +52,16 @@ #endif #if defined(MBEDTLS_TEST_HOOKS) -extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const char * file ); -#define MBEDTLS_TEST_HOOK_TEST_ASSERT( TEST ) \ - do { \ - if( ( ! ( TEST ) ) && ( ( *mbedtls_test_hook_test_fail ) != NULL ) ) \ - { \ - ( *mbedtls_test_hook_test_fail )( #TEST, __LINE__, __FILE__ ); \ - } \ - } while( 0 ) +extern void (*mbedtls_test_hook_test_fail)(const char *test, int line, const char *file); +#define MBEDTLS_TEST_HOOK_TEST_ASSERT(TEST) \ + do { \ + if ((!(TEST)) && ((*mbedtls_test_hook_test_fail) != NULL)) \ + { \ + (*mbedtls_test_hook_test_fail)( #TEST, __LINE__, __FILE__); \ + } \ + } while (0) #else -#define MBEDTLS_TEST_HOOK_TEST_ASSERT( TEST ) +#define MBEDTLS_TEST_HOOK_TEST_ASSERT(TEST) #endif /* defined(MBEDTLS_TEST_HOOKS) */ /** Allow library to access its structs' private members. @@ -87,9 +87,9 @@ extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const c * buffer is at least \p n + 1. */ static inline unsigned char *mbedtls_buffer_offset( - unsigned char *p, size_t n ) + unsigned char *p, size_t n) { - return( p == NULL ? NULL : p + n ); + return p == NULL ? NULL : p + n; } /** Return an offset into a read-only buffer. @@ -104,9 +104,9 @@ static inline unsigned char *mbedtls_buffer_offset( * buffer is at least \p n + 1. */ static inline const unsigned char *mbedtls_buffer_offset_const( - const unsigned char *p, size_t n ) + const unsigned char *p, size_t n) { - return( p == NULL ? NULL : p + n ); + return p == NULL ? NULL : p + n; } /** @@ -120,16 +120,14 @@ static inline const unsigned char *mbedtls_buffer_offset_const( * \param b Pointer to input (buffer of at least \p n bytes) * \param n Number of bytes to process. */ -inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n ) +inline void mbedtls_xor(unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n) { size_t i; - for ( i = 0; ( i + 4 ) <= n; i += 4 ) - { - uint32_t x = mbedtls_get_unaligned_uint32( a + i ) ^ mbedtls_get_unaligned_uint32( b + i ); - mbedtls_put_unaligned_uint32( r + i, x ); + for (i = 0; (i + 4) <= n; i += 4) { + uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i); + mbedtls_put_unaligned_uint32(r + i, x); } - for ( ; i < n; i++ ) - { + for (; i < n; i++) { r[i] = a[i] ^ b[i]; } } @@ -138,7 +136,7 @@ inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigne * MSVC support __func__ from visual studio 2015( 1900 ) * Use MSVC predefine macro to avoid name check fail. */ -#if (defined(_MSC_VER) && ( _MSC_VER <= 1900 )) +#if (defined(_MSC_VER) && (_MSC_VER <= 1900)) #define /*no-check-names*/ __func__ __FUNCTION__ #endif diff --git a/library/constant_time.c b/library/constant_time.c index 510304e32..442eb0e7a 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -17,7 +17,7 @@ * limitations under the License. */ - /* +/* * The following functions are implemented without using comparison operators, as those * might be translated to branches by some compilers on some platforms. */ @@ -47,17 +47,16 @@ #include -int mbedtls_ct_memcmp( const void *a, - const void *b, - size_t n ) +int mbedtls_ct_memcmp(const void *a, + const void *b, + size_t n) { size_t i; volatile const unsigned char *A = (volatile const unsigned char *) a; volatile const unsigned char *B = (volatile const unsigned char *) b; volatile unsigned char diff = 0; - for( i = 0; i < n; i++ ) - { + for (i = 0; i < n; i++) { /* Read volatile data in order before computing diff. * This avoids IAR compiler warning: * 'the order of volatile accesses is undefined ..' */ @@ -65,10 +64,10 @@ int mbedtls_ct_memcmp( const void *a, diff |= x ^ y; } - return( (int)diff ); + return (int) diff; } -unsigned mbedtls_ct_uint_mask( unsigned value ) +unsigned mbedtls_ct_uint_mask(unsigned value) { /* MSVC has a warning about unary minus on unsigned, but this is * well-defined and precisely what we want to do here */ @@ -76,7 +75,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ) #pragma warning( push ) #pragma warning( disable : 4146 ) #endif - return( - ( ( value | - value ) >> ( sizeof( value ) * 8 - 1 ) ) ); + return -((value | -value) >> (sizeof(value) * 8 - 1)); #if defined(_MSC_VER) #pragma warning( pop ) #endif @@ -84,7 +83,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ) #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) -size_t mbedtls_ct_size_mask( size_t value ) +size_t mbedtls_ct_size_mask(size_t value) { /* MSVC has a warning about unary minus on unsigned integer types, * but this is well-defined and precisely what we want to do here. */ @@ -92,7 +91,7 @@ size_t mbedtls_ct_size_mask( size_t value ) #pragma warning( push ) #pragma warning( disable : 4146 ) #endif - return( - ( ( value | - value ) >> ( sizeof( value ) * 8 - 1 ) ) ); + return -((value | -value) >> (sizeof(value) * 8 - 1)); #if defined(_MSC_VER) #pragma warning( pop ) #endif @@ -102,7 +101,7 @@ size_t mbedtls_ct_size_mask( size_t value ) #if defined(MBEDTLS_BIGNUM_C) -mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask( mbedtls_mpi_uint value ) +mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask(mbedtls_mpi_uint value) { /* MSVC has a warning about unary minus on unsigned, but this is * well-defined and precisely what we want to do here */ @@ -110,7 +109,7 @@ mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask( mbedtls_mpi_uint value ) #pragma warning( push ) #pragma warning( disable : 4146 ) #endif - return( - ( ( value | - value ) >> ( sizeof( value ) * 8 - 1 ) ) ); + return -((value | -value) >> (sizeof(value) * 8 - 1)); #if defined(_MSC_VER) #pragma warning( pop ) #endif @@ -132,25 +131,25 @@ mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask( mbedtls_mpi_uint value ) * * \return All-bits-one if \p x is less than \p y, otherwise zero. */ -static size_t mbedtls_ct_size_mask_lt( size_t x, - size_t y ) +static size_t mbedtls_ct_size_mask_lt(size_t x, + size_t y) { /* This has the most significant bit set if and only if x < y */ const size_t sub = x - y; /* sub1 = (x < y) ? 1 : 0 */ - const size_t sub1 = sub >> ( sizeof( sub ) * 8 - 1 ); + const size_t sub1 = sub >> (sizeof(sub) * 8 - 1); /* mask = (x < y) ? 0xff... : 0x00... */ - const size_t mask = mbedtls_ct_size_mask( sub1 ); + const size_t mask = mbedtls_ct_size_mask(sub1); - return( mask ); + return mask; } -size_t mbedtls_ct_size_mask_ge( size_t x, - size_t y ) +size_t mbedtls_ct_size_mask_ge(size_t x, + size_t y) { - return( ~mbedtls_ct_size_mask_lt( x, y ) ); + return ~mbedtls_ct_size_mask_lt(x, y); } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ @@ -162,21 +161,21 @@ size_t mbedtls_ct_size_mask_ge( size_t x, * Constant flow with respect to c. */ MBEDTLS_STATIC_TESTABLE -unsigned char mbedtls_ct_uchar_mask_of_range( unsigned char low, - unsigned char high, - unsigned char c ) +unsigned char mbedtls_ct_uchar_mask_of_range(unsigned char low, + unsigned char high, + unsigned char c) { /* low_mask is: 0 if low <= c, 0x...ff if low > c */ - unsigned low_mask = ( (unsigned) c - low ) >> 8; + unsigned low_mask = ((unsigned) c - low) >> 8; /* high_mask is: 0 if c <= high, 0x...ff if c > high */ - unsigned high_mask = ( (unsigned) high - c ) >> 8; - return( ~( low_mask | high_mask ) & 0xff ); + unsigned high_mask = ((unsigned) high - c) >> 8; + return ~(low_mask | high_mask) & 0xff; } #endif /* MBEDTLS_BASE64_C */ -unsigned mbedtls_ct_size_bool_eq( size_t x, - size_t y ) +unsigned mbedtls_ct_size_bool_eq(size_t x, + size_t y) { /* diff = 0 if x == y, non-zero otherwise */ const size_t diff = x ^ y; @@ -189,16 +188,16 @@ unsigned mbedtls_ct_size_bool_eq( size_t x, #endif /* diff_msb's most significant bit is equal to x != y */ - const size_t diff_msb = ( diff | (size_t) -diff ); + const size_t diff_msb = (diff | (size_t) -diff); #if defined(_MSC_VER) #pragma warning( pop ) #endif /* diff1 = (x != y) ? 1 : 0 */ - const unsigned diff1 = diff_msb >> ( sizeof( diff_msb ) * 8 - 1 ); + const unsigned diff1 = diff_msb >> (sizeof(diff_msb) * 8 - 1); - return( 1 ^ diff1 ); + return 1 ^ diff1; } #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) @@ -214,19 +213,19 @@ unsigned mbedtls_ct_size_bool_eq( size_t x, * * \return 1 if \p x greater than \p y, otherwise 0. */ -static unsigned mbedtls_ct_size_gt( size_t x, - size_t y ) +static unsigned mbedtls_ct_size_gt(size_t x, + size_t y) { /* Return the sign bit (1 for negative) of (y - x). */ - return( ( y - x ) >> ( sizeof( size_t ) * 8 - 1 ) ); + return (y - x) >> (sizeof(size_t) * 8 - 1); } #endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */ #if defined(MBEDTLS_BIGNUM_C) -unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, - const mbedtls_mpi_uint y ) +unsigned mbedtls_ct_mpi_uint_lt(const mbedtls_mpi_uint x, + const mbedtls_mpi_uint y) { mbedtls_mpi_uint ret; mbedtls_mpi_uint cond; @@ -234,12 +233,12 @@ unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, /* * Check if the most significant bits (MSB) of the operands are different. */ - cond = ( x ^ y ); + cond = (x ^ y); /* * If the MSB are the same then the difference x-y will be negative (and * have its MSB set to 1 during conversion to unsigned) if and only if x> ( sizeof( mbedtls_mpi_uint ) * 8 - 1 ); + ret = ret >> (sizeof(mbedtls_mpi_uint) * 8 - 1); return (unsigned) ret; } #endif /* MBEDTLS_BIGNUM_C */ -unsigned mbedtls_ct_uint_if( unsigned condition, - unsigned if1, - unsigned if0 ) +unsigned mbedtls_ct_uint_if(unsigned condition, + unsigned if1, + unsigned if0) { - unsigned mask = mbedtls_ct_uint_mask( condition ); - return( ( mask & if1 ) | (~mask & if0 ) ); + unsigned mask = mbedtls_ct_uint_mask(condition); + return (mask & if1) | (~mask & if0); } #if defined(MBEDTLS_BIGNUM_C) @@ -279,9 +278,9 @@ unsigned mbedtls_ct_uint_if( unsigned condition, * * \return \c if1 if \p condition is nonzero, otherwise \c if0. * */ -static int mbedtls_ct_cond_select_sign( unsigned char condition, - int if1, - int if0 ) +static int mbedtls_ct_cond_select_sign(unsigned char condition, + int if1, + int if0) { /* In order to avoid questions about what we can reasonably assume about * the representations of signed integers, move everything to unsigned @@ -293,16 +292,16 @@ static int mbedtls_ct_cond_select_sign( unsigned char condition, const unsigned mask = condition << 1; /* select uif1 or uif0 */ - unsigned ur = ( uif0 & ~mask ) | ( uif1 & mask ); + unsigned ur = (uif0 & ~mask) | (uif1 & mask); /* ur is now 0 or 2, convert back to -1 or +1 */ - return( (int) ur - 1 ); + return (int) ur - 1; } -void mbedtls_ct_mpi_uint_cond_assign( size_t n, - mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *src, - unsigned char condition ) +void mbedtls_ct_mpi_uint_cond_assign(size_t n, + mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *src, + unsigned char condition) { size_t i; @@ -320,43 +319,44 @@ void mbedtls_ct_mpi_uint_cond_assign( size_t n, #pragma warning( pop ) #endif - for( i = 0; i < n; i++ ) - dest[i] = ( src[i] & mask ) | ( dest[i] & ~mask ); + for (i = 0; i < n; i++) { + dest[i] = (src[i] & mask) | (dest[i] & ~mask); + } } #endif /* MBEDTLS_BIGNUM_C */ #if defined(MBEDTLS_BASE64_C) -unsigned char mbedtls_ct_base64_enc_char( unsigned char value ) +unsigned char mbedtls_ct_base64_enc_char(unsigned char value) { unsigned char digit = 0; /* For each range of values, if value is in that range, mask digit with * the corresponding value. Since value can only be in a single range, * only at most one masking will change digit. */ - digit |= mbedtls_ct_uchar_mask_of_range( 0, 25, value ) & ( 'A' + value ); - digit |= mbedtls_ct_uchar_mask_of_range( 26, 51, value ) & ( 'a' + value - 26 ); - digit |= mbedtls_ct_uchar_mask_of_range( 52, 61, value ) & ( '0' + value - 52 ); - digit |= mbedtls_ct_uchar_mask_of_range( 62, 62, value ) & '+'; - digit |= mbedtls_ct_uchar_mask_of_range( 63, 63, value ) & '/'; - return( digit ); + digit |= mbedtls_ct_uchar_mask_of_range(0, 25, value) & ('A' + value); + digit |= mbedtls_ct_uchar_mask_of_range(26, 51, value) & ('a' + value - 26); + digit |= mbedtls_ct_uchar_mask_of_range(52, 61, value) & ('0' + value - 52); + digit |= mbedtls_ct_uchar_mask_of_range(62, 62, value) & '+'; + digit |= mbedtls_ct_uchar_mask_of_range(63, 63, value) & '/'; + return digit; } -signed char mbedtls_ct_base64_dec_value( unsigned char c ) +signed char mbedtls_ct_base64_dec_value(unsigned char c) { unsigned char val = 0; /* For each range of digits, if c is in that range, mask val with * the corresponding value. Since c can only be in a single range, * only at most one masking will change val. Set val to one plus * the desired value so that it stays 0 if c is in none of the ranges. */ - val |= mbedtls_ct_uchar_mask_of_range( 'A', 'Z', c ) & ( c - 'A' + 0 + 1 ); - val |= mbedtls_ct_uchar_mask_of_range( 'a', 'z', c ) & ( c - 'a' + 26 + 1 ); - val |= mbedtls_ct_uchar_mask_of_range( '0', '9', c ) & ( c - '0' + 52 + 1 ); - val |= mbedtls_ct_uchar_mask_of_range( '+', '+', c ) & ( c - '+' + 62 + 1 ); - val |= mbedtls_ct_uchar_mask_of_range( '/', '/', c ) & ( c - '/' + 63 + 1 ); + val |= mbedtls_ct_uchar_mask_of_range('A', 'Z', c) & (c - 'A' + 0 + 1); + val |= mbedtls_ct_uchar_mask_of_range('a', 'z', c) & (c - 'a' + 26 + 1); + val |= mbedtls_ct_uchar_mask_of_range('0', '9', c) & (c - '0' + 52 + 1); + val |= mbedtls_ct_uchar_mask_of_range('+', '+', c) & (c - '+' + 62 + 1); + val |= mbedtls_ct_uchar_mask_of_range('/', '/', c) & (c - '/' + 63 + 1); /* At this point, val is 0 if c is an invalid digit and v+1 if c is * a digit with the value v. */ - return( val - 1 ); + return val - 1; } #endif /* MBEDTLS_BASE64_C */ @@ -379,27 +379,26 @@ signed char mbedtls_ct_base64_dec_value( unsigned char c ) * \param total Total size of the buffer. * \param offset Offset from which to copy \p total - \p offset bytes. */ -static void mbedtls_ct_mem_move_to_left( void *start, - size_t total, - size_t offset ) +static void mbedtls_ct_mem_move_to_left(void *start, + size_t total, + size_t offset) { volatile unsigned char *buf = start; size_t i, n; - if( total == 0 ) + if (total == 0) { return; - for( i = 0; i < total; i++ ) - { - unsigned no_op = mbedtls_ct_size_gt( total - offset, i ); + } + for (i = 0; i < total; i++) { + unsigned no_op = mbedtls_ct_size_gt(total - offset, i); /* The first `total - offset` passes are a no-op. The last * `offset` passes shift the data one byte to the left and * zero out the last byte. */ - for( n = 0; n < total - 1; n++ ) - { + for (n = 0; n < total - 1; n++) { unsigned char current = buf[n]; unsigned char next = buf[n+1]; - buf[n] = mbedtls_ct_uint_if( no_op, current, next ); + buf[n] = mbedtls_ct_uint_if(no_op, current, next); } - buf[total-1] = mbedtls_ct_uint_if( no_op, buf[total-1], 0 ); + buf[total-1] = mbedtls_ct_uint_if(no_op, buf[total-1], 0); } } @@ -407,56 +406,56 @@ static void mbedtls_ct_mem_move_to_left( void *start, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) -void mbedtls_ct_memcpy_if_eq( unsigned char *dest, - const unsigned char *src, - size_t len, - size_t c1, - size_t c2 ) +void mbedtls_ct_memcpy_if_eq(unsigned char *dest, + const unsigned char *src, + size_t len, + size_t c1, + size_t c2) { /* mask = c1 == c2 ? 0xff : 0x00 */ - const size_t equal = mbedtls_ct_size_bool_eq( c1, c2 ); - const unsigned char mask = (unsigned char) mbedtls_ct_size_mask( equal ); + const size_t equal = mbedtls_ct_size_bool_eq(c1, c2); + const unsigned char mask = (unsigned char) mbedtls_ct_size_mask(equal); /* dest[i] = c1 == c2 ? src[i] : dest[i] */ - for( size_t i = 0; i < len; i++ ) - dest[i] = ( src[i] & mask ) | ( dest[i] & ~mask ); + for (size_t i = 0; i < len; i++) { + dest[i] = (src[i] & mask) | (dest[i] & ~mask); + } } -void mbedtls_ct_memcpy_offset( unsigned char *dest, - const unsigned char *src, - size_t offset, - size_t offset_min, - size_t offset_max, - size_t len ) +void mbedtls_ct_memcpy_offset(unsigned char *dest, + const unsigned char *src, + size_t offset, + size_t offset_min, + size_t offset_max, + size_t len) { size_t offsetval; - for( offsetval = offset_min; offsetval <= offset_max; offsetval++ ) - { - mbedtls_ct_memcpy_if_eq( dest, src + offsetval, len, - offsetval, offset ); + for (offsetval = offset_min; offsetval <= offset_max; offsetval++) { + mbedtls_ct_memcpy_if_eq(dest, src + offsetval, len, + offsetval, offset); } } #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(PSA_WANT_ALG_SHA_384) -#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH( PSA_ALG_SHA_384 ) +#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH(PSA_ALG_SHA_384) #elif defined(PSA_WANT_ALG_SHA_256) -#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH( PSA_ALG_SHA_256 ) +#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH(PSA_ALG_SHA_256) #else /* See check_config.h */ -#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH( PSA_ALG_SHA_1 ) +#define MAX_HASH_BLOCK_LENGTH PSA_HASH_BLOCK_LENGTH(PSA_ALG_SHA_1) #endif -int mbedtls_ct_hmac( mbedtls_svc_key_id_t key, - psa_algorithm_t mac_alg, - const unsigned char *add_data, - size_t add_data_len, - const unsigned char *data, - size_t data_len_secret, - size_t min_data_len, - size_t max_data_len, - unsigned char *output ) +int mbedtls_ct_hmac(mbedtls_svc_key_id_t key, + psa_algorithm_t mac_alg, + const unsigned char *add_data, + size_t add_data_len, + const unsigned char *data, + size_t data_len_secret, + size_t min_data_len, + size_t max_data_len, + unsigned char *output) { /* * This function breaks the HMAC abstraction and uses psa_hash_clone() @@ -473,10 +472,10 @@ int mbedtls_ct_hmac( mbedtls_svc_key_id_t key, * * Then we only need to compute HASH(okey + inner_hash) and we're done. */ - psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH( mac_alg ); - const size_t block_size = PSA_HASH_BLOCK_LENGTH( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(mac_alg); + const size_t block_size = PSA_HASH_BLOCK_LENGTH(hash_alg); unsigned char key_buf[MAX_HASH_BLOCK_LENGTH]; - const size_t hash_size = PSA_HASH_LENGTH( hash_alg ); + const size_t hash_size = PSA_HASH_LENGTH(hash_alg); psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; size_t hash_length; @@ -488,90 +487,94 @@ int mbedtls_ct_hmac( mbedtls_svc_key_id_t key, size_t mac_key_length; size_t i; -#define PSA_CHK( func_call ) \ +#define PSA_CHK(func_call) \ do { \ status = (func_call); \ - if( status != PSA_SUCCESS ) \ - goto cleanup; \ - } while( 0 ) + if (status != PSA_SUCCESS) \ + goto cleanup; \ + } while (0) /* Export MAC key * We assume key length is always exactly the output size * which is never more than the block size, thus we use block_size * as the key buffer size. */ - PSA_CHK( psa_export_key( key, key_buf, block_size, &mac_key_length ) ); + PSA_CHK(psa_export_key(key, key_buf, block_size, &mac_key_length)); /* Calculate ikey */ - for( i = 0; i < mac_key_length; i++ ) - key_buf[i] = (unsigned char)( key_buf[i] ^ 0x36 ); - for(; i < block_size; ++i ) + for (i = 0; i < mac_key_length; i++) { + key_buf[i] = (unsigned char) (key_buf[i] ^ 0x36); + } + for (; i < block_size; ++i) { key_buf[i] = 0x36; + } - PSA_CHK( psa_hash_setup( &operation, hash_alg ) ); + PSA_CHK(psa_hash_setup(&operation, hash_alg)); /* Now compute inner_hash = HASH(ikey + msg) */ - PSA_CHK( psa_hash_update( &operation, key_buf, block_size ) ); - PSA_CHK( psa_hash_update( &operation, add_data, add_data_len ) ); - PSA_CHK( psa_hash_update( &operation, data, min_data_len ) ); + PSA_CHK(psa_hash_update(&operation, key_buf, block_size)); + PSA_CHK(psa_hash_update(&operation, add_data, add_data_len)); + PSA_CHK(psa_hash_update(&operation, data, min_data_len)); /* Fill the hash buffer in advance with something that is * not a valid hash (barring an attack on the hash and * deliberately-crafted input), in case the caller doesn't * check the return status properly. */ - memset( output, '!', hash_size ); + memset(output, '!', hash_size); /* For each possible length, compute the hash up to that point */ - for( offset = min_data_len; offset <= max_data_len; offset++ ) - { - PSA_CHK( psa_hash_clone( &operation, &aux_operation ) ); - PSA_CHK( psa_hash_finish( &aux_operation, aux_out, - PSA_HASH_MAX_SIZE, &hash_length ) ); + for (offset = min_data_len; offset <= max_data_len; offset++) { + PSA_CHK(psa_hash_clone(&operation, &aux_operation)); + PSA_CHK(psa_hash_finish(&aux_operation, aux_out, + PSA_HASH_MAX_SIZE, &hash_length)); /* Keep only the correct inner_hash in the output buffer */ - mbedtls_ct_memcpy_if_eq( output, aux_out, hash_size, - offset, data_len_secret ); + mbedtls_ct_memcpy_if_eq(output, aux_out, hash_size, + offset, data_len_secret); - if( offset < max_data_len ) - PSA_CHK( psa_hash_update( &operation, data + offset, 1 ) ); + if (offset < max_data_len) { + PSA_CHK(psa_hash_update(&operation, data + offset, 1)); + } } /* Abort current operation to prepare for final operation */ - PSA_CHK( psa_hash_abort( &operation ) ); + PSA_CHK(psa_hash_abort(&operation)); /* Calculate okey */ - for( i = 0; i < mac_key_length; i++ ) - key_buf[i] = (unsigned char)( ( key_buf[i] ^ 0x36 ) ^ 0x5C ); - for(; i < block_size; ++i ) + for (i = 0; i < mac_key_length; i++) { + key_buf[i] = (unsigned char) ((key_buf[i] ^ 0x36) ^ 0x5C); + } + for (; i < block_size; ++i) { key_buf[i] = 0x5C; + } /* Now compute HASH(okey + inner_hash) */ - PSA_CHK( psa_hash_setup( &operation, hash_alg ) ); - PSA_CHK( psa_hash_update( &operation, key_buf, block_size ) ); - PSA_CHK( psa_hash_update( &operation, output, hash_size ) ); - PSA_CHK( psa_hash_finish( &operation, output, hash_size, &hash_length ) ); + PSA_CHK(psa_hash_setup(&operation, hash_alg)); + PSA_CHK(psa_hash_update(&operation, key_buf, block_size)); + PSA_CHK(psa_hash_update(&operation, output, hash_size)); + PSA_CHK(psa_hash_finish(&operation, output, hash_size, &hash_length)); #undef PSA_CHK cleanup: - mbedtls_platform_zeroize( key_buf, MAX_HASH_BLOCK_LENGTH ); - mbedtls_platform_zeroize( aux_out, PSA_HASH_MAX_SIZE ); + mbedtls_platform_zeroize(key_buf, MAX_HASH_BLOCK_LENGTH); + mbedtls_platform_zeroize(aux_out, PSA_HASH_MAX_SIZE); - psa_hash_abort( &operation ); - psa_hash_abort( &aux_operation ); - return( psa_ssl_status_to_mbedtls( status ) ); + psa_hash_abort(&operation); + psa_hash_abort(&aux_operation); + return psa_ssl_status_to_mbedtls(status); } #undef MAX_HASH_BLOCK_LENGTH #else -int mbedtls_ct_hmac( mbedtls_md_context_t *ctx, - const unsigned char *add_data, - size_t add_data_len, - const unsigned char *data, - size_t data_len_secret, - size_t min_data_len, - size_t max_data_len, - unsigned char *output ) +int mbedtls_ct_hmac(mbedtls_md_context_t *ctx, + const unsigned char *add_data, + size_t add_data_len, + const unsigned char *data, + size_t data_len_secret, + size_t min_data_len, + size_t max_data_len, + unsigned char *output) { /* * This function breaks the HMAC abstraction and uses the md_clone() @@ -587,71 +590,71 @@ int mbedtls_ct_hmac( mbedtls_md_context_t *ctx, * * Then we only need to compute HASH(okey + inner_hash) and we're done. */ - const mbedtls_md_type_t md_alg = mbedtls_md_get_type( ctx->md_info ); + const mbedtls_md_type_t md_alg = mbedtls_md_get_type(ctx->md_info); /* TLS 1.2 only supports SHA-384, SHA-256, SHA-1, MD-5, * all of which have the same block size except SHA-384. */ const size_t block_size = md_alg == MBEDTLS_MD_SHA384 ? 128 : 64; const unsigned char * const ikey = ctx->hmac_ctx; const unsigned char * const okey = ikey + block_size; - const size_t hash_size = mbedtls_md_get_size( ctx->md_info ); + const size_t hash_size = mbedtls_md_get_size(ctx->md_info); unsigned char aux_out[MBEDTLS_MD_MAX_SIZE]; mbedtls_md_context_t aux; size_t offset; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &aux ); + mbedtls_md_init(&aux); -#define MD_CHK( func_call ) \ +#define MD_CHK(func_call) \ do { \ ret = (func_call); \ - if( ret != 0 ) \ - goto cleanup; \ - } while( 0 ) + if (ret != 0) \ + goto cleanup; \ + } while (0) - MD_CHK( mbedtls_md_setup( &aux, ctx->md_info, 0 ) ); + MD_CHK(mbedtls_md_setup(&aux, ctx->md_info, 0)); /* After hmac_start() of hmac_reset(), ikey has already been hashed, * so we can start directly with the message */ - MD_CHK( mbedtls_md_update( ctx, add_data, add_data_len ) ); - MD_CHK( mbedtls_md_update( ctx, data, min_data_len ) ); + MD_CHK(mbedtls_md_update(ctx, add_data, add_data_len)); + MD_CHK(mbedtls_md_update(ctx, data, min_data_len)); /* Fill the hash buffer in advance with something that is * not a valid hash (barring an attack on the hash and * deliberately-crafted input), in case the caller doesn't * check the return status properly. */ - memset( output, '!', hash_size ); + memset(output, '!', hash_size); /* For each possible length, compute the hash up to that point */ - for( offset = min_data_len; offset <= max_data_len; offset++ ) - { - MD_CHK( mbedtls_md_clone( &aux, ctx ) ); - MD_CHK( mbedtls_md_finish( &aux, aux_out ) ); + for (offset = min_data_len; offset <= max_data_len; offset++) { + MD_CHK(mbedtls_md_clone(&aux, ctx)); + MD_CHK(mbedtls_md_finish(&aux, aux_out)); /* Keep only the correct inner_hash in the output buffer */ - mbedtls_ct_memcpy_if_eq( output, aux_out, hash_size, - offset, data_len_secret ); + mbedtls_ct_memcpy_if_eq(output, aux_out, hash_size, + offset, data_len_secret); - if( offset < max_data_len ) - MD_CHK( mbedtls_md_update( ctx, data + offset, 1 ) ); + if (offset < max_data_len) { + MD_CHK(mbedtls_md_update(ctx, data + offset, 1)); + } } /* The context needs to finish() before it starts() again */ - MD_CHK( mbedtls_md_finish( ctx, aux_out ) ); + MD_CHK(mbedtls_md_finish(ctx, aux_out)); /* Now compute HASH(okey + inner_hash) */ - MD_CHK( mbedtls_md_starts( ctx ) ); - MD_CHK( mbedtls_md_update( ctx, okey, block_size ) ); - MD_CHK( mbedtls_md_update( ctx, output, hash_size ) ); - MD_CHK( mbedtls_md_finish( ctx, output ) ); + MD_CHK(mbedtls_md_starts(ctx)); + MD_CHK(mbedtls_md_update(ctx, okey, block_size)); + MD_CHK(mbedtls_md_update(ctx, output, hash_size)); + MD_CHK(mbedtls_md_finish(ctx, output)); /* Done, get ready for next time */ - MD_CHK( mbedtls_md_hmac_reset( ctx ) ); + MD_CHK(mbedtls_md_hmac_reset(ctx)); #undef MD_CHK cleanup: - mbedtls_md_free( &aux ); - return( ret ); + mbedtls_md_free(&aux); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -659,8 +662,8 @@ cleanup: #if defined(MBEDTLS_BIGNUM_C) -#define MPI_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) +#define MPI_VALIDATE_RET(cond) \ + MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_MPI_BAD_INPUT_DATA) /* * Conditionally assign X = Y, without leaking information @@ -674,28 +677,29 @@ cleanup: */ __declspec(noinline) #endif -int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, - const mbedtls_mpi *Y, - unsigned char assign ) +int mbedtls_mpi_safe_cond_assign(mbedtls_mpi *X, + const mbedtls_mpi *Y, + unsigned char assign) { int ret = 0; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); /* all-bits 1 if assign is 1, all-bits 0 if assign is 0 */ - mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask( assign ); + mbedtls_mpi_uint limb_mask = mbedtls_ct_mpi_uint_mask(assign); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, Y->n)); - X->s = mbedtls_ct_cond_select_sign( assign, Y->s, X->s ); + X->s = mbedtls_ct_cond_select_sign(assign, Y->s, X->s); - mbedtls_mpi_core_cond_assign( X->p, Y->p, Y->n, assign ); + mbedtls_mpi_core_cond_assign(X->p, Y->p, Y->n, assign); - for( size_t i = Y->n; i < X->n; i++ ) + for (size_t i = Y->n; i < X->n; i++) { X->p[i] &= ~limb_mask; + } cleanup: - return( ret ); + return ret; } /* @@ -704,37 +708,38 @@ cleanup: * Here it is not ok to simply swap the pointers, which would lead to * different memory access patterns when X and Y are used afterwards. */ -int mbedtls_mpi_safe_cond_swap( mbedtls_mpi *X, - mbedtls_mpi *Y, - unsigned char swap ) +int mbedtls_mpi_safe_cond_swap(mbedtls_mpi *X, + mbedtls_mpi *Y, + unsigned char swap) { int ret = 0; int s; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); - if( X == Y ) - return( 0 ); + if (X == Y) { + return 0; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( X, Y->n ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( Y, X->n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, Y->n)); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(Y, X->n)); s = X->s; - X->s = mbedtls_ct_cond_select_sign( swap, Y->s, X->s ); - Y->s = mbedtls_ct_cond_select_sign( swap, s, Y->s ); + X->s = mbedtls_ct_cond_select_sign(swap, Y->s, X->s); + Y->s = mbedtls_ct_cond_select_sign(swap, s, Y->s); - mbedtls_mpi_core_cond_swap( X->p, Y->p, X->n, swap ); + mbedtls_mpi_core_cond_swap(X->p, Y->p, X->n, swap); cleanup: - return( ret ); + return ret; } /* * Compare unsigned values in constant time */ -unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs ) +unsigned mbedtls_mpi_core_lt_ct(const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs) { unsigned ret, cond, done; @@ -742,8 +747,7 @@ unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, * their scope. */ ret = cond = done = 0; - for( size_t i = limbs; i > 0; i-- ) - { + for (size_t i = limbs; i > 0; i--) { /* * If B[i - 1] < A[i - 1] then A < B is false and the result must * remain 0. @@ -751,7 +755,7 @@ unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, * Again even if we can make a decision, we just mark the result and * the fact that we are done and continue looping. */ - cond = mbedtls_ct_mpi_uint_lt( B[i - 1], A[i - 1] ); + cond = mbedtls_ct_mpi_uint_lt(B[i - 1], A[i - 1]); done |= cond; /* @@ -760,8 +764,8 @@ unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, * Again even if we can make a decision, we just mark the result and * the fact that we are done and continue looping. */ - cond = mbedtls_ct_mpi_uint_lt( A[i - 1], B[i - 1] ); - ret |= cond & ( 1 - done ); + cond = mbedtls_ct_mpi_uint_lt(A[i - 1], B[i - 1]); + ret |= cond & (1 - done); done |= cond; } @@ -770,40 +774,41 @@ unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, * and leaving the result 0 is correct. */ - return( ret ); + return ret; } /* * Compare signed values in constant time */ -int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, - const mbedtls_mpi *Y, - unsigned *ret ) +int mbedtls_mpi_lt_mpi_ct(const mbedtls_mpi *X, + const mbedtls_mpi *Y, + unsigned *ret) { size_t i; /* The value of any of these variables is either 0 or 1 at all times. */ unsigned cond, done, X_is_negative, Y_is_negative; - MPI_VALIDATE_RET( X != NULL ); - MPI_VALIDATE_RET( Y != NULL ); - MPI_VALIDATE_RET( ret != NULL ); + MPI_VALIDATE_RET(X != NULL); + MPI_VALIDATE_RET(Y != NULL); + MPI_VALIDATE_RET(ret != NULL); - if( X->n != Y->n ) + if (X->n != Y->n) { return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } /* * Set sign_N to 1 if N >= 0, 0 if N < 0. * We know that N->s == 1 if N >= 0 and N->s == -1 if N < 0. */ - X_is_negative = ( X->s & 2 ) >> 1; - Y_is_negative = ( Y->s & 2 ) >> 1; + X_is_negative = (X->s & 2) >> 1; + Y_is_negative = (Y->s & 2) >> 1; /* * If the signs are different, then the positive operand is the bigger. * That is if X is negative (X_is_negative == 1), then X < Y is true and it * is false if X is positive (X_is_negative == 0). */ - cond = ( X_is_negative ^ Y_is_negative ); + cond = (X_is_negative ^ Y_is_negative); *ret = cond & X_is_negative; /* @@ -812,8 +817,7 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, */ done = cond; - for( i = X->n; i > 0; i-- ) - { + for (i = X->n; i > 0; i--) { /* * If Y->p[i - 1] < X->p[i - 1] then X < Y is true if and only if both * X and Y are negative. @@ -821,8 +825,8 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, * Again even if we can make a decision, we just mark the result and * the fact that we are done and continue looping. */ - cond = mbedtls_ct_mpi_uint_lt( Y->p[i - 1], X->p[i - 1] ); - *ret |= cond & ( 1 - done ) & X_is_negative; + cond = mbedtls_ct_mpi_uint_lt(Y->p[i - 1], X->p[i - 1]); + *ret |= cond & (1 - done) & X_is_negative; done |= cond; /* @@ -832,23 +836,23 @@ int mbedtls_mpi_lt_mpi_ct( const mbedtls_mpi *X, * Again even if we can make a decision, we just mark the result and * the fact that we are done and continue looping. */ - cond = mbedtls_ct_mpi_uint_lt( X->p[i - 1], Y->p[i - 1] ); - *ret |= cond & ( 1 - done ) & ( 1 - X_is_negative ); + cond = mbedtls_ct_mpi_uint_lt(X->p[i - 1], Y->p[i - 1]); + *ret |= cond & (1 - done) & (1 - X_is_negative); done |= cond; } - return( 0 ); + return 0; } #endif /* MBEDTLS_BIGNUM_C */ #if defined(MBEDTLS_PKCS1_V15) && defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_RSA_ALT) -int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, - size_t ilen, - unsigned char *output, - size_t output_max_len, - size_t *olen ) +int mbedtls_ct_rsaes_pkcs1_v15_unpadding(unsigned char *input, + size_t ilen, + unsigned char *output, + size_t output_max_len, + size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, plaintext_max_size; @@ -869,7 +873,7 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, size_t plaintext_size = 0; unsigned output_too_large; - plaintext_max_size = ( output_max_len > ilen - 11 ) ? ilen - 11 + plaintext_max_size = (output_max_len > ilen - 11) ? ilen - 11 : output_max_len; /* Check and get padding length in constant time and constant @@ -883,18 +887,17 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, /* Read the whole buffer. Set pad_done to nonzero if we find * the 0x00 byte and remember the padding length in pad_count. */ - for( i = 2; i < ilen; i++ ) - { - pad_done |= ((input[i] | (unsigned char)-input[i]) >> 7) ^ 1; - pad_count += ((pad_done | (unsigned char)-pad_done) >> 7) ^ 1; + for (i = 2; i < ilen; i++) { + pad_done |= ((input[i] | (unsigned char) -input[i]) >> 7) ^ 1; + pad_count += ((pad_done | (unsigned char) -pad_done) >> 7) ^ 1; } /* If pad_done is still zero, there's no data, only unfinished padding. */ - bad |= mbedtls_ct_uint_if( pad_done, 0, 1 ); + bad |= mbedtls_ct_uint_if(pad_done, 0, 1); /* There must be at least 8 bytes of padding. */ - bad |= mbedtls_ct_size_gt( 8, pad_count ); + bad |= mbedtls_ct_size_gt(8, pad_count); /* If the padding is valid, set plaintext_size to the number of * remaining bytes after stripping the padding. If the padding @@ -904,24 +907,24 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, * validity through timing. RSA keys are small enough that all the * size_t values involved fit in unsigned int. */ plaintext_size = mbedtls_ct_uint_if( - bad, (unsigned) plaintext_max_size, - (unsigned) ( ilen - pad_count - 3 ) ); + bad, (unsigned) plaintext_max_size, + (unsigned) (ilen - pad_count - 3)); /* Set output_too_large to 0 if the plaintext fits in the output * buffer and to 1 otherwise. */ - output_too_large = mbedtls_ct_size_gt( plaintext_size, - plaintext_max_size ); + output_too_large = mbedtls_ct_size_gt(plaintext_size, + plaintext_max_size); /* Set ret without branches to avoid timing attacks. Return: * - INVALID_PADDING if the padding is bad (bad != 0). * - OUTPUT_TOO_LARGE if the padding is good but the decrypted * plaintext does not fit in the output buffer. * - 0 if the padding is correct. */ - ret = - (int) mbedtls_ct_uint_if( - bad, - MBEDTLS_ERR_RSA_INVALID_PADDING, - mbedtls_ct_uint_if( output_too_large, - - MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE, - 0 ) ); + ret = -(int) mbedtls_ct_uint_if( + bad, -MBEDTLS_ERR_RSA_INVALID_PADDING, + mbedtls_ct_uint_if(output_too_large, + -MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE, + 0)); /* If the padding is bad or the plaintext is too large, zero the * data that we're about to copy to the output buffer. @@ -929,17 +932,18 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, * from the same buffer whether the padding is good or not to * avoid leaking the padding validity through overall timing or * through memory or cache access patterns. */ - bad = mbedtls_ct_uint_mask( bad | output_too_large ); - for( i = 11; i < ilen; i++ ) + bad = mbedtls_ct_uint_mask(bad | output_too_large); + for (i = 11; i < ilen; i++) { input[i] &= ~bad; + } /* If the plaintext is too large, truncate it to the buffer size. * Copy anyway to avoid revealing the length through timing, because * revealing the length is as bad as revealing the padding validity * for a Bleichenbacher attack. */ - plaintext_size = mbedtls_ct_uint_if( output_too_large, - (unsigned) plaintext_max_size, - (unsigned) plaintext_size ); + plaintext_size = mbedtls_ct_uint_if(output_too_large, + (unsigned) plaintext_max_size, + (unsigned) plaintext_size); /* Move the plaintext to the leftmost position where it can start in * the working buffer, i.e. make it start plaintext_max_size from @@ -947,9 +951,9 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, * does not depend on the plaintext size. After this move, the * starting location of the plaintext is no longer sensitive * information. */ - mbedtls_ct_mem_move_to_left( input + ilen - plaintext_max_size, - plaintext_max_size, - plaintext_max_size - plaintext_size ); + mbedtls_ct_mem_move_to_left(input + ilen - plaintext_max_size, + plaintext_max_size, + plaintext_max_size - plaintext_size); /* Finally copy the decrypted plaintext plus trailing zeros into the output * buffer. If output_max_len is 0, then output may be an invalid pointer @@ -958,8 +962,9 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, * user-provided output buffer), which is independent from plaintext * length, validity of padding, success of the decryption, and other * secrets. */ - if( output_max_len != 0 ) - memcpy( output, input + ilen - plaintext_max_size, plaintext_max_size ); + if (output_max_len != 0) { + memcpy(output, input + ilen - plaintext_max_size, plaintext_max_size); + } /* Report the amount of data we copied to the output buffer. In case * of errors (bad padding or output too large), the value of *olen @@ -967,7 +972,7 @@ int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, * to the good case limits the risks of leaking the padding validity. */ *olen = plaintext_size; - return( ret ); + return ret; } #endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */ diff --git a/library/constant_time_internal.h b/library/constant_time_internal.h index 1e4a3ab0b..c4a32c7f0 100644 --- a/library/constant_time_internal.h +++ b/library/constant_time_internal.h @@ -44,7 +44,7 @@ * * \return Zero if \p value is zero, otherwise all-bits-one. */ -unsigned mbedtls_ct_uint_mask( unsigned value ); +unsigned mbedtls_ct_uint_mask(unsigned value); #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) @@ -59,7 +59,7 @@ unsigned mbedtls_ct_uint_mask( unsigned value ); * * \return Zero if \p value is zero, otherwise all-bits-one. */ -size_t mbedtls_ct_size_mask( size_t value ); +size_t mbedtls_ct_size_mask(size_t value); #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ @@ -76,7 +76,7 @@ size_t mbedtls_ct_size_mask( size_t value ); * * \return Zero if \p value is zero, otherwise all-bits-one. */ -mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask( mbedtls_mpi_uint value ); +mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask(mbedtls_mpi_uint value); #endif /* MBEDTLS_BIGNUM_C */ @@ -95,8 +95,8 @@ mbedtls_mpi_uint mbedtls_ct_mpi_uint_mask( mbedtls_mpi_uint value ); * \return All-bits-one if \p x is greater or equal than \p y, * otherwise zero. */ -size_t mbedtls_ct_size_mask_ge( size_t x, - size_t y ); +size_t mbedtls_ct_size_mask_ge(size_t x, + size_t y); #endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ @@ -111,8 +111,8 @@ size_t mbedtls_ct_size_mask_ge( size_t x, * * \return 1 if \p x equals to \p y, otherwise 0. */ -unsigned mbedtls_ct_size_bool_eq( size_t x, - size_t y ); +unsigned mbedtls_ct_size_bool_eq(size_t x, + size_t y); #if defined(MBEDTLS_BIGNUM_C) @@ -126,8 +126,8 @@ unsigned mbedtls_ct_size_bool_eq( size_t x, * * \return 1 if \p x is less than \p y, otherwise 0. */ -unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, - const mbedtls_mpi_uint y ); +unsigned mbedtls_ct_mpi_uint_lt(const mbedtls_mpi_uint x, + const mbedtls_mpi_uint y); /** * \brief Check if one unsigned MPI is less than another in constant @@ -144,9 +144,9 @@ unsigned mbedtls_ct_mpi_uint_lt( const mbedtls_mpi_uint x, * \c 1 if \p A is less than \p B. * \c 0 if \p A is greater than or equal to \p B. */ -unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - size_t limbs); +unsigned mbedtls_mpi_core_lt_ct(const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + size_t limbs); #endif /* MBEDTLS_BIGNUM_C */ /** Choose between two integer values without branches. @@ -160,9 +160,9 @@ unsigned mbedtls_mpi_core_lt_ct( const mbedtls_mpi_uint *A, * * \return \c if1 if \p condition is nonzero, otherwise \c if0. */ -unsigned mbedtls_ct_uint_if( unsigned condition, - unsigned if1, - unsigned if0 ); +unsigned mbedtls_ct_uint_if(unsigned condition, + unsigned if1, + unsigned if0); #if defined(MBEDTLS_BIGNUM_C) @@ -178,10 +178,10 @@ unsigned mbedtls_ct_uint_if( unsigned condition, * initialized MPI. * \param condition Condition to test, must be 0 or 1. */ -void mbedtls_ct_mpi_uint_cond_assign( size_t n, - mbedtls_mpi_uint *dest, - const mbedtls_mpi_uint *src, - unsigned char condition ); +void mbedtls_ct_mpi_uint_cond_assign(size_t n, + mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *src, + unsigned char condition); #endif /* MBEDTLS_BIGNUM_C */ @@ -196,7 +196,7 @@ void mbedtls_ct_mpi_uint_cond_assign( size_t n, * * \return A base64 digit converted from \p value. */ -unsigned char mbedtls_ct_base64_enc_char( unsigned char value ); +unsigned char mbedtls_ct_base64_enc_char(unsigned char value); /** Given a Base64 digit, return its value. * @@ -210,7 +210,7 @@ unsigned char mbedtls_ct_base64_enc_char( unsigned char value ); * * \return The value of the base64 digit \p c. */ -signed char mbedtls_ct_base64_dec_value( unsigned char c ); +signed char mbedtls_ct_base64_dec_value(unsigned char c); #endif /* MBEDTLS_BASE64_C */ @@ -227,10 +227,10 @@ signed char mbedtls_ct_base64_dec_value( unsigned char c ); * \param c1 The first value to analyze in the condition. * \param c2 The second value to analyze in the condition. */ -void mbedtls_ct_memcpy_if_eq( unsigned char *dest, - const unsigned char *src, - size_t len, - size_t c1, size_t c2 ); +void mbedtls_ct_memcpy_if_eq(unsigned char *dest, + const unsigned char *src, + size_t len, + size_t c1, size_t c2); /** Copy data from a secret position with constant flow. * @@ -258,12 +258,12 @@ void mbedtls_ct_memcpy_if_eq( unsigned char *dest, * \param offset_max The maximal value of \p offset. * \param len The number of bytes to copy. */ -void mbedtls_ct_memcpy_offset( unsigned char *dest, - const unsigned char *src, - size_t offset, - size_t offset_min, - size_t offset_max, - size_t len ); +void mbedtls_ct_memcpy_offset(unsigned char *dest, + const unsigned char *src, + size_t offset, + size_t offset_min, + size_t offset_max, + size_t len); /** Compute the HMAC of variable-length data with constant flow. * @@ -302,24 +302,24 @@ void mbedtls_ct_memcpy_offset( unsigned char *dest, * The hardware accelerator failed. */ #if defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_ct_hmac( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const unsigned char *add_data, - size_t add_data_len, - const unsigned char *data, - size_t data_len_secret, - size_t min_data_len, - size_t max_data_len, - unsigned char *output ); +int mbedtls_ct_hmac(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const unsigned char *add_data, + size_t add_data_len, + const unsigned char *data, + size_t data_len_secret, + size_t min_data_len, + size_t max_data_len, + unsigned char *output); #else -int mbedtls_ct_hmac( mbedtls_md_context_t *ctx, - const unsigned char *add_data, - size_t add_data_len, - const unsigned char *data, - size_t data_len_secret, - size_t min_data_len, - size_t max_data_len, - unsigned char *output ); +int mbedtls_ct_hmac(mbedtls_md_context_t *ctx, + const unsigned char *add_data, + size_t add_data_len, + const unsigned char *data, + size_t data_len_secret, + size_t min_data_len, + size_t max_data_len, + unsigned char *output); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ @@ -352,11 +352,11 @@ int mbedtls_ct_hmac( mbedtls_md_context_t *ctx, * \return #MBEDTLS_ERR_RSA_INVALID_PADDING * The input doesn't contain properly formatted padding. */ -int mbedtls_ct_rsaes_pkcs1_v15_unpadding( unsigned char *input, - size_t ilen, - unsigned char *output, - size_t output_max_len, - size_t *olen ); +int mbedtls_ct_rsaes_pkcs1_v15_unpadding(unsigned char *input, + size_t ilen, + unsigned char *output, + size_t output_max_len, + size_t *olen); #endif /* MBEDTLS_PKCS1_V15 && MBEDTLS_RSA_C && ! MBEDTLS_RSA_ALT */ diff --git a/library/constant_time_invasive.h b/library/constant_time_invasive.h index 4620ca137..c176b28ff 100644 --- a/library/constant_time_invasive.h +++ b/library/constant_time_invasive.h @@ -42,9 +42,9 @@ * * \return All-bits-one if \p low <= \p c <= \p high, otherwise zero. */ -unsigned char mbedtls_ct_uchar_mask_of_range( unsigned char low, - unsigned char high, - unsigned char c ); +unsigned char mbedtls_ct_uchar_mask_of_range(unsigned char low, + unsigned char high, + unsigned char c); #endif /* MBEDTLS_TEST_HOOKS */ diff --git a/library/ctr_drbg.c b/library/ctr_drbg.c index f5c5e7b61..13fa6d4eb 100644 --- a/library/ctr_drbg.c +++ b/library/ctr_drbg.c @@ -41,10 +41,10 @@ /* * CTR_DRBG context initialization */ -void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx ) +void mbedtls_ctr_drbg_init(mbedtls_ctr_drbg_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_ctr_drbg_context ) ); - mbedtls_aes_init( &ctx->aes_ctx ); + memset(ctx, 0, sizeof(mbedtls_ctr_drbg_context)); + mbedtls_aes_init(&ctx->aes_ctx); /* Indicate that the entropy nonce length is not set explicitly. * See mbedtls_ctr_drbg_set_nonce_len(). */ ctx->reseed_counter = -1; @@ -56,50 +56,55 @@ void mbedtls_ctr_drbg_init( mbedtls_ctr_drbg_context *ctx ) * This function resets CTR_DRBG context to the state immediately * after initial call of mbedtls_ctr_drbg_init(). */ -void mbedtls_ctr_drbg_free( mbedtls_ctr_drbg_context *ctx ) +void mbedtls_ctr_drbg_free(mbedtls_ctr_drbg_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } #if defined(MBEDTLS_THREADING_C) /* The mutex is initialized iff f_entropy is set. */ - if( ctx->f_entropy != NULL ) - mbedtls_mutex_free( &ctx->mutex ); + if (ctx->f_entropy != NULL) { + mbedtls_mutex_free(&ctx->mutex); + } #endif - mbedtls_aes_free( &ctx->aes_ctx ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ctr_drbg_context ) ); + mbedtls_aes_free(&ctx->aes_ctx); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ctr_drbg_context)); ctx->reseed_interval = MBEDTLS_CTR_DRBG_RESEED_INTERVAL; ctx->reseed_counter = -1; } -void mbedtls_ctr_drbg_set_prediction_resistance( mbedtls_ctr_drbg_context *ctx, - int resistance ) +void mbedtls_ctr_drbg_set_prediction_resistance(mbedtls_ctr_drbg_context *ctx, + int resistance) { ctx->prediction_resistance = resistance; } -void mbedtls_ctr_drbg_set_entropy_len( mbedtls_ctr_drbg_context *ctx, - size_t len ) +void mbedtls_ctr_drbg_set_entropy_len(mbedtls_ctr_drbg_context *ctx, + size_t len) { ctx->entropy_len = len; } -int mbedtls_ctr_drbg_set_nonce_len( mbedtls_ctr_drbg_context *ctx, - size_t len ) +int mbedtls_ctr_drbg_set_nonce_len(mbedtls_ctr_drbg_context *ctx, + size_t len) { /* If mbedtls_ctr_drbg_seed() has already been called, it's * too late. Return the error code that's closest to making sense. */ - if( ctx->f_entropy != NULL ) - return( MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED ); + if (ctx->f_entropy != NULL) { + return MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED; + } - if( len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + if (len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } #if SIZE_MAX > INT_MAX /* This shouldn't be an issue because * MBEDTLS_CTR_DRBG_MAX_SEED_INPUT < INT_MAX in any sensible * configuration, but make sure anyway. */ - if( len > INT_MAX ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + if (len > INT_MAX) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } #endif /* For backward compatibility with Mbed TLS <= 2.19, store the @@ -107,17 +112,17 @@ int mbedtls_ctr_drbg_set_nonce_len( mbedtls_ctr_drbg_context *ctx, * used until after the initial seeding. */ /* Due to the capping of len above, the value fits in an int. */ ctx->reseed_counter = (int) len; - return( 0 ); + return 0; } -void mbedtls_ctr_drbg_set_reseed_interval( mbedtls_ctr_drbg_context *ctx, - int interval ) +void mbedtls_ctr_drbg_set_reseed_interval(mbedtls_ctr_drbg_context *ctx, + int interval) { ctx->reseed_interval = interval; } -static int block_cipher_df( unsigned char *output, - const unsigned char *data, size_t data_len ) +static int block_cipher_df(unsigned char *output, + const unsigned char *data, size_t data_len) { unsigned char buf[MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + MBEDTLS_CTR_DRBG_BLOCKSIZE + 16]; @@ -131,12 +136,13 @@ static int block_cipher_df( unsigned char *output, int i, j; size_t buf_len, use_len; - if( data_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + if (data_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } - memset( buf, 0, MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + - MBEDTLS_CTR_DRBG_BLOCKSIZE + 16 ); - mbedtls_aes_init( &aes_ctx ); + memset(buf, 0, MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + + MBEDTLS_CTR_DRBG_BLOCKSIZE + 16); + mbedtls_aes_init(&aes_ctx); /* * Construct IV (16 bytes) and S in buffer @@ -146,47 +152,44 @@ static int block_cipher_df( unsigned char *output, * (Total is padded to a multiple of 16-bytes with zeroes) */ p = buf + MBEDTLS_CTR_DRBG_BLOCKSIZE; - MBEDTLS_PUT_UINT32_BE( data_len, p, 0); + MBEDTLS_PUT_UINT32_BE(data_len, p, 0); p += 4 + 3; *p++ = MBEDTLS_CTR_DRBG_SEEDLEN; - memcpy( p, data, data_len ); + memcpy(p, data, data_len); p[data_len] = 0x80; buf_len = MBEDTLS_CTR_DRBG_BLOCKSIZE + 8 + data_len + 1; - for( i = 0; i < MBEDTLS_CTR_DRBG_KEYSIZE; i++ ) + for (i = 0; i < MBEDTLS_CTR_DRBG_KEYSIZE; i++) { key[i] = i; + } - if( ( ret = mbedtls_aes_setkey_enc( &aes_ctx, key, - MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 ) - { + if ((ret = mbedtls_aes_setkey_enc(&aes_ctx, key, + MBEDTLS_CTR_DRBG_KEYBITS)) != 0) { goto exit; } /* * Reduce data to MBEDTLS_CTR_DRBG_SEEDLEN bytes of data */ - for( j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE ) - { + for (j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE) { p = buf; - memset( chain, 0, MBEDTLS_CTR_DRBG_BLOCKSIZE ); + memset(chain, 0, MBEDTLS_CTR_DRBG_BLOCKSIZE); use_len = buf_len; - while( use_len > 0 ) - { - mbedtls_xor( chain, chain, p, MBEDTLS_CTR_DRBG_BLOCKSIZE ); + while (use_len > 0) { + mbedtls_xor(chain, chain, p, MBEDTLS_CTR_DRBG_BLOCKSIZE); p += MBEDTLS_CTR_DRBG_BLOCKSIZE; - use_len -= ( use_len >= MBEDTLS_CTR_DRBG_BLOCKSIZE ) ? + use_len -= (use_len >= MBEDTLS_CTR_DRBG_BLOCKSIZE) ? MBEDTLS_CTR_DRBG_BLOCKSIZE : use_len; - if( ( ret = mbedtls_aes_crypt_ecb( &aes_ctx, MBEDTLS_AES_ENCRYPT, - chain, chain ) ) != 0 ) - { + if ((ret = mbedtls_aes_crypt_ecb(&aes_ctx, MBEDTLS_AES_ENCRYPT, + chain, chain)) != 0) { goto exit; } } - memcpy( tmp + j, chain, MBEDTLS_CTR_DRBG_BLOCKSIZE ); + memcpy(tmp + j, chain, MBEDTLS_CTR_DRBG_BLOCKSIZE); /* * Update IV @@ -197,42 +200,38 @@ static int block_cipher_df( unsigned char *output, /* * Do final encryption with reduced data */ - if( ( ret = mbedtls_aes_setkey_enc( &aes_ctx, tmp, - MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 ) - { + if ((ret = mbedtls_aes_setkey_enc(&aes_ctx, tmp, + MBEDTLS_CTR_DRBG_KEYBITS)) != 0) { goto exit; } iv = tmp + MBEDTLS_CTR_DRBG_KEYSIZE; p = output; - for( j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE ) - { - if( ( ret = mbedtls_aes_crypt_ecb( &aes_ctx, MBEDTLS_AES_ENCRYPT, - iv, iv ) ) != 0 ) - { + for (j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE) { + if ((ret = mbedtls_aes_crypt_ecb(&aes_ctx, MBEDTLS_AES_ENCRYPT, + iv, iv)) != 0) { goto exit; } - memcpy( p, iv, MBEDTLS_CTR_DRBG_BLOCKSIZE ); + memcpy(p, iv, MBEDTLS_CTR_DRBG_BLOCKSIZE); p += MBEDTLS_CTR_DRBG_BLOCKSIZE; } exit: - mbedtls_aes_free( &aes_ctx ); + mbedtls_aes_free(&aes_ctx); /* - * tidy up the stack - */ - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); - mbedtls_platform_zeroize( key, sizeof( key ) ); - mbedtls_platform_zeroize( chain, sizeof( chain ) ); - if( 0 != ret ) - { + * tidy up the stack + */ + mbedtls_platform_zeroize(buf, sizeof(buf)); + mbedtls_platform_zeroize(tmp, sizeof(tmp)); + mbedtls_platform_zeroize(key, sizeof(key)); + mbedtls_platform_zeroize(chain, sizeof(chain)); + if (0 != ret) { /* - * wipe partial seed from memory - */ - mbedtls_platform_zeroize( output, MBEDTLS_CTR_DRBG_SEEDLEN ); + * wipe partial seed from memory + */ + mbedtls_platform_zeroize(output, MBEDTLS_CTR_DRBG_SEEDLEN); } - return( ret ); + return ret; } /* CTR_DRBG_Update (SP 800-90A §10.2.1.2) @@ -243,54 +242,54 @@ exit: * ctx->aes_ctx = Key * ctx->counter = V */ -static int ctr_drbg_update_internal( mbedtls_ctr_drbg_context *ctx, - const unsigned char data[MBEDTLS_CTR_DRBG_SEEDLEN] ) +static int ctr_drbg_update_internal(mbedtls_ctr_drbg_context *ctx, + const unsigned char data[MBEDTLS_CTR_DRBG_SEEDLEN]) { unsigned char tmp[MBEDTLS_CTR_DRBG_SEEDLEN]; unsigned char *p = tmp; int i, j; int ret = 0; - memset( tmp, 0, MBEDTLS_CTR_DRBG_SEEDLEN ); + memset(tmp, 0, MBEDTLS_CTR_DRBG_SEEDLEN); - for( j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE ) - { + for (j = 0; j < MBEDTLS_CTR_DRBG_SEEDLEN; j += MBEDTLS_CTR_DRBG_BLOCKSIZE) { /* * Increase counter */ - for( i = MBEDTLS_CTR_DRBG_BLOCKSIZE; i > 0; i-- ) - if( ++ctx->counter[i - 1] != 0 ) + for (i = MBEDTLS_CTR_DRBG_BLOCKSIZE; i > 0; i--) { + if (++ctx->counter[i - 1] != 0) { break; + } + } /* * Crypt counter block */ - if( ( ret = mbedtls_aes_crypt_ecb( &ctx->aes_ctx, MBEDTLS_AES_ENCRYPT, - ctx->counter, p ) ) != 0 ) - { + if ((ret = mbedtls_aes_crypt_ecb(&ctx->aes_ctx, MBEDTLS_AES_ENCRYPT, + ctx->counter, p)) != 0) { goto exit; } p += MBEDTLS_CTR_DRBG_BLOCKSIZE; } - for( i = 0; i < MBEDTLS_CTR_DRBG_SEEDLEN; i++ ) + for (i = 0; i < MBEDTLS_CTR_DRBG_SEEDLEN; i++) { tmp[i] ^= data[i]; + } /* * Update key and counter */ - if( ( ret = mbedtls_aes_setkey_enc( &ctx->aes_ctx, tmp, - MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 ) - { + if ((ret = mbedtls_aes_setkey_enc(&ctx->aes_ctx, tmp, + MBEDTLS_CTR_DRBG_KEYBITS)) != 0) { goto exit; } - memcpy( ctx->counter, tmp + MBEDTLS_CTR_DRBG_KEYSIZE, - MBEDTLS_CTR_DRBG_BLOCKSIZE ); + memcpy(ctx->counter, tmp + MBEDTLS_CTR_DRBG_KEYSIZE, + MBEDTLS_CTR_DRBG_BLOCKSIZE); exit: - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); - return( ret ); + mbedtls_platform_zeroize(tmp, sizeof(tmp)); + return ret; } /* CTR_DRBG_Instantiate with derivation function (SP 800-90A §10.2.1.3.2) @@ -305,24 +304,27 @@ exit: * and with outputs * ctx = initial_working_state */ -int mbedtls_ctr_drbg_update( mbedtls_ctr_drbg_context *ctx, - const unsigned char *additional, - size_t add_len ) +int mbedtls_ctr_drbg_update(mbedtls_ctr_drbg_context *ctx, + const unsigned char *additional, + size_t add_len) { unsigned char add_input[MBEDTLS_CTR_DRBG_SEEDLEN]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( add_len == 0 ) - return( 0 ); + if (add_len == 0) { + return 0; + } - if( ( ret = block_cipher_df( add_input, additional, add_len ) ) != 0 ) + if ((ret = block_cipher_df(add_input, additional, add_len)) != 0) { goto exit; - if( ( ret = ctr_drbg_update_internal( ctx, add_input ) ) != 0 ) + } + if ((ret = ctr_drbg_update_internal(ctx, add_input)) != 0) { goto exit; + } exit: - mbedtls_platform_zeroize( add_input, sizeof( add_input ) ); - return( ret ); + mbedtls_platform_zeroize(add_input, sizeof(add_input)); + return ret; } /* CTR_DRBG_Reseed with derivation function (SP 800-90A §10.2.1.4.2) @@ -338,66 +340,67 @@ exit: * and with output * ctx contains new_working_state */ -static int mbedtls_ctr_drbg_reseed_internal( mbedtls_ctr_drbg_context *ctx, - const unsigned char *additional, - size_t len, - size_t nonce_len ) +static int mbedtls_ctr_drbg_reseed_internal(mbedtls_ctr_drbg_context *ctx, + const unsigned char *additional, + size_t len, + size_t nonce_len) { unsigned char seed[MBEDTLS_CTR_DRBG_MAX_SEED_INPUT]; size_t seedlen = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ctx->entropy_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); - if( nonce_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - ctx->entropy_len ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); - if( len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - ctx->entropy_len - nonce_len ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + if (ctx->entropy_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } + if (nonce_len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - ctx->entropy_len) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } + if (len > MBEDTLS_CTR_DRBG_MAX_SEED_INPUT - ctx->entropy_len - nonce_len) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } - memset( seed, 0, MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ); + memset(seed, 0, MBEDTLS_CTR_DRBG_MAX_SEED_INPUT); /* Gather entropy_len bytes of entropy to seed state. */ - if( 0 != ctx->f_entropy( ctx->p_entropy, seed, ctx->entropy_len ) ) - { - return( MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED ); + if (0 != ctx->f_entropy(ctx->p_entropy, seed, ctx->entropy_len)) { + return MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED; } seedlen += ctx->entropy_len; /* Gather entropy for a nonce if requested. */ - if( nonce_len != 0 ) - { - if( 0 != ctx->f_entropy( ctx->p_entropy, seed + seedlen, nonce_len ) ) - { - return( MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED ); + if (nonce_len != 0) { + if (0 != ctx->f_entropy(ctx->p_entropy, seed + seedlen, nonce_len)) { + return MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED; } seedlen += nonce_len; } /* Add additional data if provided. */ - if( additional != NULL && len != 0 ) - { - memcpy( seed + seedlen, additional, len ); + if (additional != NULL && len != 0) { + memcpy(seed + seedlen, additional, len); seedlen += len; } /* Reduce to 384 bits. */ - if( ( ret = block_cipher_df( seed, seed, seedlen ) ) != 0 ) + if ((ret = block_cipher_df(seed, seed, seedlen)) != 0) { goto exit; + } /* Update state. */ - if( ( ret = ctr_drbg_update_internal( ctx, seed ) ) != 0 ) + if ((ret = ctr_drbg_update_internal(ctx, seed)) != 0) { goto exit; + } ctx->reseed_counter = 1; exit: - mbedtls_platform_zeroize( seed, sizeof( seed ) ); - return( ret ); + mbedtls_platform_zeroize(seed, sizeof(seed)); + return ret; } -int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx, - const unsigned char *additional, size_t len ) +int mbedtls_ctr_drbg_reseed(mbedtls_ctr_drbg_context *ctx, + const unsigned char *additional, size_t len) { - return( mbedtls_ctr_drbg_reseed_internal( ctx, additional, len, 0 ) ); + return mbedtls_ctr_drbg_reseed_internal(ctx, additional, len, 0); } /* Return a "good" nonce length for CTR_DRBG. The chosen nonce length @@ -405,12 +408,13 @@ int mbedtls_ctr_drbg_reseed( mbedtls_ctr_drbg_context *ctx, * size and entropy length. If there is enough entropy in the initial * call to the entropy function to serve as both the entropy input and * the nonce, don't make a second call to get a nonce. */ -static size_t good_nonce_len( size_t entropy_len ) +static size_t good_nonce_len(size_t entropy_len) { - if( entropy_len >= MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 ) - return( 0 ); - else - return( ( entropy_len + 1 ) / 2 ); + if (entropy_len >= MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2) { + return 0; + } else { + return (entropy_len + 1) / 2; + } } /* CTR_DRBG_Instantiate with derivation function (SP 800-90A §10.2.1.3.2) @@ -424,50 +428,49 @@ static size_t good_nonce_len( size_t entropy_len ) * and with outputs * ctx = initial_working_state */ -int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx, - int (*f_entropy)(void *, unsigned char *, size_t), - void *p_entropy, - const unsigned char *custom, - size_t len ) +int mbedtls_ctr_drbg_seed(mbedtls_ctr_drbg_context *ctx, + int (*f_entropy)(void *, unsigned char *, size_t), + void *p_entropy, + const unsigned char *custom, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char key[MBEDTLS_CTR_DRBG_KEYSIZE]; size_t nonce_len; - memset( key, 0, MBEDTLS_CTR_DRBG_KEYSIZE ); + memset(key, 0, MBEDTLS_CTR_DRBG_KEYSIZE); /* The mutex is initialized iff f_entropy is set. */ #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif ctx->f_entropy = f_entropy; ctx->p_entropy = p_entropy; - if( ctx->entropy_len == 0 ) + if (ctx->entropy_len == 0) { ctx->entropy_len = MBEDTLS_CTR_DRBG_ENTROPY_LEN; + } /* ctx->reseed_counter contains the desired amount of entropy to * grab for a nonce (see mbedtls_ctr_drbg_set_nonce_len()). * If it's -1, indicating that the entropy nonce length was not set * explicitly, use a sufficiently large nonce for security. */ - nonce_len = ( ctx->reseed_counter >= 0 ? - (size_t) ctx->reseed_counter : - good_nonce_len( ctx->entropy_len ) ); + nonce_len = (ctx->reseed_counter >= 0 ? + (size_t) ctx->reseed_counter : + good_nonce_len(ctx->entropy_len)); /* Initialize with an empty key. */ - if( ( ret = mbedtls_aes_setkey_enc( &ctx->aes_ctx, key, - MBEDTLS_CTR_DRBG_KEYBITS ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_aes_setkey_enc(&ctx->aes_ctx, key, + MBEDTLS_CTR_DRBG_KEYBITS)) != 0) { + return ret; } /* Do the initial seeding. */ - if( ( ret = mbedtls_ctr_drbg_reseed_internal( ctx, custom, len, - nonce_len ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ctr_drbg_reseed_internal(ctx, custom, len, + nonce_len)) != 0) { + return ret; } - return( 0 ); + return 0; } /* CTR_DRBG_Generate with derivation function (SP 800-90A §10.2.1.5.2) @@ -489,9 +492,9 @@ int mbedtls_ctr_drbg_seed( mbedtls_ctr_drbg_context *ctx, * returned_bits = output[:output_len] * ctx contains new_working_state */ -int mbedtls_ctr_drbg_random_with_add( void *p_rng, - unsigned char *output, size_t output_len, - const unsigned char *additional, size_t add_len ) +int mbedtls_ctr_drbg_random_with_add(void *p_rng, + unsigned char *output, size_t output_len, + const unsigned char *additional, size_t add_len) { int ret = 0; mbedtls_ctr_drbg_context *ctx = (mbedtls_ctr_drbg_context *) p_rng; @@ -501,165 +504,169 @@ int mbedtls_ctr_drbg_random_with_add( void *p_rng, int i; size_t use_len; - if( output_len > MBEDTLS_CTR_DRBG_MAX_REQUEST ) - return( MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG ); + if (output_len > MBEDTLS_CTR_DRBG_MAX_REQUEST) { + return MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG; + } - if( add_len > MBEDTLS_CTR_DRBG_MAX_INPUT ) - return( MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + if (add_len > MBEDTLS_CTR_DRBG_MAX_INPUT) { + return MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; + } - memset( add_input, 0, MBEDTLS_CTR_DRBG_SEEDLEN ); + memset(add_input, 0, MBEDTLS_CTR_DRBG_SEEDLEN); - if( ctx->reseed_counter > ctx->reseed_interval || - ctx->prediction_resistance ) - { - if( ( ret = mbedtls_ctr_drbg_reseed( ctx, additional, add_len ) ) != 0 ) - { - return( ret ); + if (ctx->reseed_counter > ctx->reseed_interval || + ctx->prediction_resistance) { + if ((ret = mbedtls_ctr_drbg_reseed(ctx, additional, add_len)) != 0) { + return ret; } add_len = 0; } - if( add_len > 0 ) - { - if( ( ret = block_cipher_df( add_input, additional, add_len ) ) != 0 ) + if (add_len > 0) { + if ((ret = block_cipher_df(add_input, additional, add_len)) != 0) { goto exit; - if( ( ret = ctr_drbg_update_internal( ctx, add_input ) ) != 0 ) + } + if ((ret = ctr_drbg_update_internal(ctx, add_input)) != 0) { goto exit; + } } - while( output_len > 0 ) - { + while (output_len > 0) { /* * Increase counter */ - for( i = MBEDTLS_CTR_DRBG_BLOCKSIZE; i > 0; i-- ) - if( ++ctx->counter[i - 1] != 0 ) + for (i = MBEDTLS_CTR_DRBG_BLOCKSIZE; i > 0; i--) { + if (++ctx->counter[i - 1] != 0) { break; + } + } /* * Crypt counter block */ - if( ( ret = mbedtls_aes_crypt_ecb( &ctx->aes_ctx, MBEDTLS_AES_ENCRYPT, - ctx->counter, tmp ) ) != 0 ) - { + if ((ret = mbedtls_aes_crypt_ecb(&ctx->aes_ctx, MBEDTLS_AES_ENCRYPT, + ctx->counter, tmp)) != 0) { goto exit; } - use_len = ( output_len > MBEDTLS_CTR_DRBG_BLOCKSIZE ) + use_len = (output_len > MBEDTLS_CTR_DRBG_BLOCKSIZE) ? MBEDTLS_CTR_DRBG_BLOCKSIZE : output_len; /* * Copy random block to destination */ - memcpy( p, tmp, use_len ); + memcpy(p, tmp, use_len); p += use_len; output_len -= use_len; } - if( ( ret = ctr_drbg_update_internal( ctx, add_input ) ) != 0 ) + if ((ret = ctr_drbg_update_internal(ctx, add_input)) != 0) { goto exit; + } ctx->reseed_counter++; exit: - mbedtls_platform_zeroize( add_input, sizeof( add_input ) ); - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); - return( ret ); + mbedtls_platform_zeroize(add_input, sizeof(add_input)); + mbedtls_platform_zeroize(tmp, sizeof(tmp)); + return ret; } -int mbedtls_ctr_drbg_random( void *p_rng, unsigned char *output, - size_t output_len ) +int mbedtls_ctr_drbg_random(void *p_rng, unsigned char *output, + size_t output_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ctr_drbg_context *ctx = (mbedtls_ctr_drbg_context *) p_rng; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - ret = mbedtls_ctr_drbg_random_with_add( ctx, output, output_len, NULL, 0 ); + ret = mbedtls_ctr_drbg_random_with_add(ctx, output, output_len, NULL, 0); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } #if defined(MBEDTLS_FS_IO) -int mbedtls_ctr_drbg_write_seed_file( mbedtls_ctr_drbg_context *ctx, - const char *path ) +int mbedtls_ctr_drbg_write_seed_file(mbedtls_ctr_drbg_context *ctx, + const char *path) { int ret = MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; FILE *f; - unsigned char buf[ MBEDTLS_CTR_DRBG_MAX_INPUT ]; + unsigned char buf[MBEDTLS_CTR_DRBG_MAX_INPUT]; - if( ( f = fopen( path, "wb" ) ) == NULL ) - return( MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR ); + if ((f = fopen(path, "wb")) == NULL) { + return MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - if( ( ret = mbedtls_ctr_drbg_random( ctx, buf, - MBEDTLS_CTR_DRBG_MAX_INPUT ) ) != 0 ) + if ((ret = mbedtls_ctr_drbg_random(ctx, buf, + MBEDTLS_CTR_DRBG_MAX_INPUT)) != 0) { goto exit; - - if( fwrite( buf, 1, MBEDTLS_CTR_DRBG_MAX_INPUT, f ) != - MBEDTLS_CTR_DRBG_MAX_INPUT ) - { - ret = MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; } - else - { + + if (fwrite(buf, 1, MBEDTLS_CTR_DRBG_MAX_INPUT, f) != + MBEDTLS_CTR_DRBG_MAX_INPUT) { + ret = MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; + } else { ret = 0; } exit: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - fclose( f ); - return( ret ); + fclose(f); + return ret; } -int mbedtls_ctr_drbg_update_seed_file( mbedtls_ctr_drbg_context *ctx, - const char *path ) +int mbedtls_ctr_drbg_update_seed_file(mbedtls_ctr_drbg_context *ctx, + const char *path) { int ret = 0; FILE *f = NULL; size_t n; - unsigned char buf[ MBEDTLS_CTR_DRBG_MAX_INPUT ]; + unsigned char buf[MBEDTLS_CTR_DRBG_MAX_INPUT]; unsigned char c; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - n = fread( buf, 1, sizeof( buf ), f ); - if( fread( &c, 1, 1, f ) != 0 ) - { + n = fread(buf, 1, sizeof(buf), f); + if (fread(&c, 1, 1, f) != 0) { ret = MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG; goto exit; } - if( n == 0 || ferror( f ) ) - { + if (n == 0 || ferror(f)) { ret = MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR; goto exit; } - fclose( f ); + fclose(f); f = NULL; - ret = mbedtls_ctr_drbg_update( ctx, buf, n ); + ret = mbedtls_ctr_drbg_update(ctx, buf, n); exit: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - if( f != NULL ) - fclose( f ); - if( ret != 0 ) - return( ret ); - return( mbedtls_ctr_drbg_write_seed_file( ctx, path ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + if (f != NULL) { + fclose(f); + } + if (ret != 0) { + return ret; + } + return mbedtls_ctr_drbg_write_seed_file(ctx, path); } #endif /* MBEDTLS_FS_IO */ @@ -690,192 +697,197 @@ exit: #if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY) static const unsigned char entropy_source_pr[] = - { 0x04, 0xd9, 0x49, 0xa6, 0xdc, 0xe8, 0x6e, 0xbb, - 0xf1, 0x08, 0x77, 0x2b, 0x9e, 0x08, 0xca, 0x92, - 0x65, 0x16, 0xda, 0x99, 0xa2, 0x59, 0xf3, 0xe8, - 0x38, 0x7e, 0x3f, 0x6b, 0x51, 0x70, 0x7b, 0x20, - 0xec, 0x53, 0xd0, 0x66, 0xc3, 0x0f, 0xe3, 0xb0, - 0xe0, 0x86, 0xa6, 0xaa, 0x5f, 0x72, 0x2f, 0xad, - 0xf7, 0xef, 0x06, 0xb8, 0xd6, 0x9c, 0x9d, 0xe8 }; +{ 0x04, 0xd9, 0x49, 0xa6, 0xdc, 0xe8, 0x6e, 0xbb, + 0xf1, 0x08, 0x77, 0x2b, 0x9e, 0x08, 0xca, 0x92, + 0x65, 0x16, 0xda, 0x99, 0xa2, 0x59, 0xf3, 0xe8, + 0x38, 0x7e, 0x3f, 0x6b, 0x51, 0x70, 0x7b, 0x20, + 0xec, 0x53, 0xd0, 0x66, 0xc3, 0x0f, 0xe3, 0xb0, + 0xe0, 0x86, 0xa6, 0xaa, 0x5f, 0x72, 0x2f, 0xad, + 0xf7, 0xef, 0x06, 0xb8, 0xd6, 0x9c, 0x9d, 0xe8 }; static const unsigned char entropy_source_nopr[] = - { 0x07, 0x0d, 0x59, 0x63, 0x98, 0x73, 0xa5, 0x45, - 0x27, 0x38, 0x22, 0x7b, 0x76, 0x85, 0xd1, 0xa9, - 0x74, 0x18, 0x1f, 0x3c, 0x22, 0xf6, 0x49, 0x20, - 0x4a, 0x47, 0xc2, 0xf3, 0x85, 0x16, 0xb4, 0x6f, - 0x00, 0x2e, 0x71, 0xda, 0xed, 0x16, 0x9b, 0x5c }; +{ 0x07, 0x0d, 0x59, 0x63, 0x98, 0x73, 0xa5, 0x45, + 0x27, 0x38, 0x22, 0x7b, 0x76, 0x85, 0xd1, 0xa9, + 0x74, 0x18, 0x1f, 0x3c, 0x22, 0xf6, 0x49, 0x20, + 0x4a, 0x47, 0xc2, 0xf3, 0x85, 0x16, 0xb4, 0x6f, + 0x00, 0x2e, 0x71, 0xda, 0xed, 0x16, 0x9b, 0x5c }; static const unsigned char pers_pr[] = - { 0xbf, 0xa4, 0x9a, 0x8f, 0x7b, 0xd8, 0xb1, 0x7a, - 0x9d, 0xfa, 0x45, 0xed, 0x21, 0x52, 0xb3, 0xad }; +{ 0xbf, 0xa4, 0x9a, 0x8f, 0x7b, 0xd8, 0xb1, 0x7a, + 0x9d, 0xfa, 0x45, 0xed, 0x21, 0x52, 0xb3, 0xad }; static const unsigned char pers_nopr[] = - { 0x4e, 0x61, 0x79, 0xd4, 0xc2, 0x72, 0xa1, 0x4c, - 0xf1, 0x3d, 0xf6, 0x5e, 0xa3, 0xa6, 0xe5, 0x0f }; +{ 0x4e, 0x61, 0x79, 0xd4, 0xc2, 0x72, 0xa1, 0x4c, + 0xf1, 0x3d, 0xf6, 0x5e, 0xa3, 0xa6, 0xe5, 0x0f }; static const unsigned char result_pr[] = - { 0xc9, 0x0a, 0xaf, 0x85, 0x89, 0x71, 0x44, 0x66, - 0x4f, 0x25, 0x0b, 0x2b, 0xde, 0xd8, 0xfa, 0xff, - 0x52, 0x5a, 0x1b, 0x32, 0x5e, 0x41, 0x7a, 0x10, - 0x1f, 0xef, 0x1e, 0x62, 0x23, 0xe9, 0x20, 0x30, - 0xc9, 0x0d, 0xad, 0x69, 0xb4, 0x9c, 0x5b, 0xf4, - 0x87, 0x42, 0xd5, 0xae, 0x5e, 0x5e, 0x43, 0xcc, - 0xd9, 0xfd, 0x0b, 0x93, 0x4a, 0xe3, 0xd4, 0x06, - 0x37, 0x36, 0x0f, 0x3f, 0x72, 0x82, 0x0c, 0xcf }; +{ 0xc9, 0x0a, 0xaf, 0x85, 0x89, 0x71, 0x44, 0x66, + 0x4f, 0x25, 0x0b, 0x2b, 0xde, 0xd8, 0xfa, 0xff, + 0x52, 0x5a, 0x1b, 0x32, 0x5e, 0x41, 0x7a, 0x10, + 0x1f, 0xef, 0x1e, 0x62, 0x23, 0xe9, 0x20, 0x30, + 0xc9, 0x0d, 0xad, 0x69, 0xb4, 0x9c, 0x5b, 0xf4, + 0x87, 0x42, 0xd5, 0xae, 0x5e, 0x5e, 0x43, 0xcc, + 0xd9, 0xfd, 0x0b, 0x93, 0x4a, 0xe3, 0xd4, 0x06, + 0x37, 0x36, 0x0f, 0x3f, 0x72, 0x82, 0x0c, 0xcf }; static const unsigned char result_nopr[] = - { 0x31, 0xc9, 0x91, 0x09, 0xf8, 0xc5, 0x10, 0x13, - 0x3c, 0xd3, 0x96, 0xf9, 0xbc, 0x2c, 0x12, 0xc0, - 0x7c, 0xc1, 0x61, 0x5f, 0xa3, 0x09, 0x99, 0xaf, - 0xd7, 0xf2, 0x36, 0xfd, 0x40, 0x1a, 0x8b, 0xf2, - 0x33, 0x38, 0xee, 0x1d, 0x03, 0x5f, 0x83, 0xb7, - 0xa2, 0x53, 0xdc, 0xee, 0x18, 0xfc, 0xa7, 0xf2, - 0xee, 0x96, 0xc6, 0xc2, 0xcd, 0x0c, 0xff, 0x02, - 0x76, 0x70, 0x69, 0xaa, 0x69, 0xd1, 0x3b, 0xe8 }; +{ 0x31, 0xc9, 0x91, 0x09, 0xf8, 0xc5, 0x10, 0x13, + 0x3c, 0xd3, 0x96, 0xf9, 0xbc, 0x2c, 0x12, 0xc0, + 0x7c, 0xc1, 0x61, 0x5f, 0xa3, 0x09, 0x99, 0xaf, + 0xd7, 0xf2, 0x36, 0xfd, 0x40, 0x1a, 0x8b, 0xf2, + 0x33, 0x38, 0xee, 0x1d, 0x03, 0x5f, 0x83, 0xb7, + 0xa2, 0x53, 0xdc, 0xee, 0x18, 0xfc, 0xa7, 0xf2, + 0xee, 0x96, 0xc6, 0xc2, 0xcd, 0x0c, 0xff, 0x02, + 0x76, 0x70, 0x69, 0xaa, 0x69, 0xd1, 0x3b, 0xe8 }; #else /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ static const unsigned char entropy_source_pr[] = - { 0xca, 0x58, 0xfd, 0xf2, 0xb9, 0x77, 0xcb, 0x49, - 0xd4, 0xe0, 0x5b, 0xe2, 0x39, 0x50, 0xd9, 0x8a, - 0x6a, 0xb3, 0xc5, 0x2f, 0xdf, 0x74, 0xd5, 0x85, - 0x8f, 0xd1, 0xba, 0x64, 0x54, 0x7b, 0xdb, 0x1e, - 0xc5, 0xea, 0x24, 0xc0, 0xfa, 0x0c, 0x90, 0x15, - 0x09, 0x20, 0x92, 0x42, 0x32, 0x36, 0x45, 0x45, - 0x7d, 0x20, 0x76, 0x6b, 0xcf, 0xa2, 0x15, 0xc8, - 0x2f, 0x9f, 0xbc, 0x88, 0x3f, 0x80, 0xd1, 0x2c, - 0xb7, 0x16, 0xd1, 0x80, 0x9e, 0xe1, 0xc9, 0xb3, - 0x88, 0x1b, 0x21, 0x45, 0xef, 0xa1, 0x7f, 0xce, - 0xc8, 0x92, 0x35, 0x55, 0x2a, 0xd9, 0x1d, 0x8e, - 0x12, 0x38, 0xac, 0x01, 0x4e, 0x38, 0x18, 0x76, - 0x9c, 0xf2, 0xb6, 0xd4, 0x13, 0xb6, 0x2c, 0x77, - 0xc0, 0xe7, 0xe6, 0x0c, 0x47, 0x44, 0x95, 0xbe }; +{ 0xca, 0x58, 0xfd, 0xf2, 0xb9, 0x77, 0xcb, 0x49, + 0xd4, 0xe0, 0x5b, 0xe2, 0x39, 0x50, 0xd9, 0x8a, + 0x6a, 0xb3, 0xc5, 0x2f, 0xdf, 0x74, 0xd5, 0x85, + 0x8f, 0xd1, 0xba, 0x64, 0x54, 0x7b, 0xdb, 0x1e, + 0xc5, 0xea, 0x24, 0xc0, 0xfa, 0x0c, 0x90, 0x15, + 0x09, 0x20, 0x92, 0x42, 0x32, 0x36, 0x45, 0x45, + 0x7d, 0x20, 0x76, 0x6b, 0xcf, 0xa2, 0x15, 0xc8, + 0x2f, 0x9f, 0xbc, 0x88, 0x3f, 0x80, 0xd1, 0x2c, + 0xb7, 0x16, 0xd1, 0x80, 0x9e, 0xe1, 0xc9, 0xb3, + 0x88, 0x1b, 0x21, 0x45, 0xef, 0xa1, 0x7f, 0xce, + 0xc8, 0x92, 0x35, 0x55, 0x2a, 0xd9, 0x1d, 0x8e, + 0x12, 0x38, 0xac, 0x01, 0x4e, 0x38, 0x18, 0x76, + 0x9c, 0xf2, 0xb6, 0xd4, 0x13, 0xb6, 0x2c, 0x77, + 0xc0, 0xe7, 0xe6, 0x0c, 0x47, 0x44, 0x95, 0xbe }; static const unsigned char entropy_source_nopr[] = - { 0x4c, 0xfb, 0x21, 0x86, 0x73, 0x34, 0x6d, 0x9d, - 0x50, 0xc9, 0x22, 0xe4, 0x9b, 0x0d, 0xfc, 0xd0, - 0x90, 0xad, 0xf0, 0x4f, 0x5c, 0x3b, 0xa4, 0x73, - 0x27, 0xdf, 0xcd, 0x6f, 0xa6, 0x3a, 0x78, 0x5c, - 0x01, 0x69, 0x62, 0xa7, 0xfd, 0x27, 0x87, 0xa2, - 0x4b, 0xf6, 0xbe, 0x47, 0xef, 0x37, 0x83, 0xf1, - 0xb7, 0xec, 0x46, 0x07, 0x23, 0x63, 0x83, 0x4a, - 0x1b, 0x01, 0x33, 0xf2, 0xc2, 0x38, 0x91, 0xdb, - 0x4f, 0x11, 0xa6, 0x86, 0x51, 0xf2, 0x3e, 0x3a, - 0x8b, 0x1f, 0xdc, 0x03, 0xb1, 0x92, 0xc7, 0xe7 }; +{ 0x4c, 0xfb, 0x21, 0x86, 0x73, 0x34, 0x6d, 0x9d, + 0x50, 0xc9, 0x22, 0xe4, 0x9b, 0x0d, 0xfc, 0xd0, + 0x90, 0xad, 0xf0, 0x4f, 0x5c, 0x3b, 0xa4, 0x73, + 0x27, 0xdf, 0xcd, 0x6f, 0xa6, 0x3a, 0x78, 0x5c, + 0x01, 0x69, 0x62, 0xa7, 0xfd, 0x27, 0x87, 0xa2, + 0x4b, 0xf6, 0xbe, 0x47, 0xef, 0x37, 0x83, 0xf1, + 0xb7, 0xec, 0x46, 0x07, 0x23, 0x63, 0x83, 0x4a, + 0x1b, 0x01, 0x33, 0xf2, 0xc2, 0x38, 0x91, 0xdb, + 0x4f, 0x11, 0xa6, 0x86, 0x51, 0xf2, 0x3e, 0x3a, + 0x8b, 0x1f, 0xdc, 0x03, 0xb1, 0x92, 0xc7, 0xe7 }; static const unsigned char pers_pr[] = - { 0x5a, 0x70, 0x95, 0xe9, 0x81, 0x40, 0x52, 0x33, - 0x91, 0x53, 0x7e, 0x75, 0xd6, 0x19, 0x9d, 0x1e, - 0xad, 0x0d, 0xc6, 0xa7, 0xde, 0x6c, 0x1f, 0xe0, - 0xea, 0x18, 0x33, 0xa8, 0x7e, 0x06, 0x20, 0xe9 }; +{ 0x5a, 0x70, 0x95, 0xe9, 0x81, 0x40, 0x52, 0x33, + 0x91, 0x53, 0x7e, 0x75, 0xd6, 0x19, 0x9d, 0x1e, + 0xad, 0x0d, 0xc6, 0xa7, 0xde, 0x6c, 0x1f, 0xe0, + 0xea, 0x18, 0x33, 0xa8, 0x7e, 0x06, 0x20, 0xe9 }; static const unsigned char pers_nopr[] = - { 0x88, 0xee, 0xb8, 0xe0, 0xe8, 0x3b, 0xf3, 0x29, - 0x4b, 0xda, 0xcd, 0x60, 0x99, 0xeb, 0xe4, 0xbf, - 0x55, 0xec, 0xd9, 0x11, 0x3f, 0x71, 0xe5, 0xeb, - 0xcb, 0x45, 0x75, 0xf3, 0xd6, 0xa6, 0x8a, 0x6b }; +{ 0x88, 0xee, 0xb8, 0xe0, 0xe8, 0x3b, 0xf3, 0x29, + 0x4b, 0xda, 0xcd, 0x60, 0x99, 0xeb, 0xe4, 0xbf, + 0x55, 0xec, 0xd9, 0x11, 0x3f, 0x71, 0xe5, 0xeb, + 0xcb, 0x45, 0x75, 0xf3, 0xd6, 0xa6, 0x8a, 0x6b }; static const unsigned char result_pr[] = - { 0xce, 0x2f, 0xdb, 0xb6, 0xd9, 0xb7, 0x39, 0x85, - 0x04, 0xc5, 0xc0, 0x42, 0xc2, 0x31, 0xc6, 0x1d, - 0x9b, 0x5a, 0x59, 0xf8, 0x7e, 0x0d, 0xcc, 0x62, - 0x7b, 0x65, 0x11, 0x55, 0x10, 0xeb, 0x9e, 0x3d, - 0xa4, 0xfb, 0x1c, 0x6a, 0x18, 0xc0, 0x74, 0xdb, - 0xdd, 0xe7, 0x02, 0x23, 0x63, 0x21, 0xd0, 0x39, - 0xf9, 0xa7, 0xc4, 0x52, 0x84, 0x3b, 0x49, 0x40, - 0x72, 0x2b, 0xb0, 0x6c, 0x9c, 0xdb, 0xc3, 0x43 }; +{ 0xce, 0x2f, 0xdb, 0xb6, 0xd9, 0xb7, 0x39, 0x85, + 0x04, 0xc5, 0xc0, 0x42, 0xc2, 0x31, 0xc6, 0x1d, + 0x9b, 0x5a, 0x59, 0xf8, 0x7e, 0x0d, 0xcc, 0x62, + 0x7b, 0x65, 0x11, 0x55, 0x10, 0xeb, 0x9e, 0x3d, + 0xa4, 0xfb, 0x1c, 0x6a, 0x18, 0xc0, 0x74, 0xdb, + 0xdd, 0xe7, 0x02, 0x23, 0x63, 0x21, 0xd0, 0x39, + 0xf9, 0xa7, 0xc4, 0x52, 0x84, 0x3b, 0x49, 0x40, + 0x72, 0x2b, 0xb0, 0x6c, 0x9c, 0xdb, 0xc3, 0x43 }; static const unsigned char result_nopr[] = - { 0xa5, 0x51, 0x80, 0xa1, 0x90, 0xbe, 0xf3, 0xad, - 0xaf, 0x28, 0xf6, 0xb7, 0x95, 0xe9, 0xf1, 0xf3, - 0xd6, 0xdf, 0xa1, 0xb2, 0x7d, 0xd0, 0x46, 0x7b, - 0x0c, 0x75, 0xf5, 0xfa, 0x93, 0x1e, 0x97, 0x14, - 0x75, 0xb2, 0x7c, 0xae, 0x03, 0xa2, 0x96, 0x54, - 0xe2, 0xf4, 0x09, 0x66, 0xea, 0x33, 0x64, 0x30, - 0x40, 0xd1, 0x40, 0x0f, 0xe6, 0x77, 0x87, 0x3a, - 0xf8, 0x09, 0x7c, 0x1f, 0xe9, 0xf0, 0x02, 0x98 }; +{ 0xa5, 0x51, 0x80, 0xa1, 0x90, 0xbe, 0xf3, 0xad, + 0xaf, 0x28, 0xf6, 0xb7, 0x95, 0xe9, 0xf1, 0xf3, + 0xd6, 0xdf, 0xa1, 0xb2, 0x7d, 0xd0, 0x46, 0x7b, + 0x0c, 0x75, 0xf5, 0xfa, 0x93, 0x1e, 0x97, 0x14, + 0x75, 0xb2, 0x7c, 0xae, 0x03, 0xa2, 0x96, 0x54, + 0xe2, 0xf4, 0x09, 0x66, 0xea, 0x33, 0x64, 0x30, + 0x40, 0xd1, 0x40, 0x0f, 0xe6, 0x77, 0x87, 0x3a, + 0xf8, 0x09, 0x7c, 0x1f, 0xe9, 0xf0, 0x02, 0x98 }; #endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */ static size_t test_offset; -static int ctr_drbg_self_test_entropy( void *data, unsigned char *buf, - size_t len ) +static int ctr_drbg_self_test_entropy(void *data, unsigned char *buf, + size_t len) { const unsigned char *p = data; - memcpy( buf, p + test_offset, len ); + memcpy(buf, p + test_offset, len); test_offset += len; - return( 0 ); + return 0; } -#define CHK( c ) if( (c) != 0 ) \ - { \ - if( verbose != 0 ) \ - mbedtls_printf( "failed\n" ); \ - return( 1 ); \ - } +#define CHK(c) if ((c) != 0) \ + { \ + if (verbose != 0) \ + mbedtls_printf("failed\n"); \ + return 1; \ + } #define SELF_TEST_OUTPUT_DISCARD_LENGTH 64 /* * Checkup routine */ -int mbedtls_ctr_drbg_self_test( int verbose ) +int mbedtls_ctr_drbg_self_test(int verbose) { mbedtls_ctr_drbg_context ctx; - unsigned char buf[ sizeof( result_pr ) ]; + unsigned char buf[sizeof(result_pr)]; - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); /* * Based on a NIST CTR_DRBG test vector (PR = True) */ - if( verbose != 0 ) - mbedtls_printf( " CTR_DRBG (PR = TRUE) : " ); + if (verbose != 0) { + mbedtls_printf(" CTR_DRBG (PR = TRUE) : "); + } test_offset = 0; - mbedtls_ctr_drbg_set_entropy_len( &ctx, MBEDTLS_CTR_DRBG_KEYSIZE ); - mbedtls_ctr_drbg_set_nonce_len( &ctx, MBEDTLS_CTR_DRBG_KEYSIZE / 2 ); - CHK( mbedtls_ctr_drbg_seed( &ctx, - ctr_drbg_self_test_entropy, - (void *) entropy_source_pr, - pers_pr, MBEDTLS_CTR_DRBG_KEYSIZE ) ); - mbedtls_ctr_drbg_set_prediction_resistance( &ctx, MBEDTLS_CTR_DRBG_PR_ON ); - CHK( mbedtls_ctr_drbg_random( &ctx, buf, SELF_TEST_OUTPUT_DISCARD_LENGTH ) ); - CHK( mbedtls_ctr_drbg_random( &ctx, buf, sizeof( result_pr ) ) ); - CHK( memcmp( buf, result_pr, sizeof( result_pr ) ) ); + mbedtls_ctr_drbg_set_entropy_len(&ctx, MBEDTLS_CTR_DRBG_KEYSIZE); + mbedtls_ctr_drbg_set_nonce_len(&ctx, MBEDTLS_CTR_DRBG_KEYSIZE / 2); + CHK(mbedtls_ctr_drbg_seed(&ctx, + ctr_drbg_self_test_entropy, + (void *) entropy_source_pr, + pers_pr, MBEDTLS_CTR_DRBG_KEYSIZE)); + mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_ON); + CHK(mbedtls_ctr_drbg_random(&ctx, buf, SELF_TEST_OUTPUT_DISCARD_LENGTH)); + CHK(mbedtls_ctr_drbg_random(&ctx, buf, sizeof(result_pr))); + CHK(memcmp(buf, result_pr, sizeof(result_pr))); - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } /* * Based on a NIST CTR_DRBG test vector (PR = FALSE) */ - if( verbose != 0 ) - mbedtls_printf( " CTR_DRBG (PR = FALSE): " ); + if (verbose != 0) { + mbedtls_printf(" CTR_DRBG (PR = FALSE): "); + } - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); test_offset = 0; - mbedtls_ctr_drbg_set_entropy_len( &ctx, MBEDTLS_CTR_DRBG_KEYSIZE); - mbedtls_ctr_drbg_set_nonce_len( &ctx, MBEDTLS_CTR_DRBG_KEYSIZE / 2 ); - CHK( mbedtls_ctr_drbg_seed( &ctx, - ctr_drbg_self_test_entropy, - (void *) entropy_source_nopr, - pers_nopr, MBEDTLS_CTR_DRBG_KEYSIZE ) ); - CHK( mbedtls_ctr_drbg_reseed( &ctx, NULL, 0 ) ); - CHK( mbedtls_ctr_drbg_random( &ctx, buf, SELF_TEST_OUTPUT_DISCARD_LENGTH ) ); - CHK( mbedtls_ctr_drbg_random( &ctx, buf, sizeof( result_nopr ) ) ); - CHK( memcmp( buf, result_nopr, sizeof( result_nopr ) ) ); + mbedtls_ctr_drbg_set_entropy_len(&ctx, MBEDTLS_CTR_DRBG_KEYSIZE); + mbedtls_ctr_drbg_set_nonce_len(&ctx, MBEDTLS_CTR_DRBG_KEYSIZE / 2); + CHK(mbedtls_ctr_drbg_seed(&ctx, + ctr_drbg_self_test_entropy, + (void *) entropy_source_nopr, + pers_nopr, MBEDTLS_CTR_DRBG_KEYSIZE)); + CHK(mbedtls_ctr_drbg_reseed(&ctx, NULL, 0)); + CHK(mbedtls_ctr_drbg_random(&ctx, buf, SELF_TEST_OUTPUT_DISCARD_LENGTH)); + CHK(mbedtls_ctr_drbg_random(&ctx, buf, sizeof(result_nopr))); + CHK(memcmp(buf, result_nopr, sizeof(result_nopr))); - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/debug.c b/library/debug.c index 78ce9cedc..12559afe3 100644 --- a/library/debug.c +++ b/library/debug.c @@ -34,7 +34,7 @@ static int debug_threshold = 0; -void mbedtls_debug_set_threshold( int threshold ) +void mbedtls_debug_set_threshold(int threshold) { debug_threshold = threshold; } @@ -42,9 +42,9 @@ void mbedtls_debug_set_threshold( int threshold ) /* * All calls to f_dbg must be made via this function */ -static inline void debug_send_line( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *str ) +static inline void debug_send_line(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *str) { /* * If in a threaded environment, we need a thread identifier. @@ -53,54 +53,51 @@ static inline void debug_send_line( const mbedtls_ssl_context *ssl, int level, */ #if defined(MBEDTLS_THREADING_C) char idstr[20 + DEBUG_BUF_SIZE]; /* 0x + 16 nibbles + ': ' */ - mbedtls_snprintf( idstr, sizeof( idstr ), "%p: %s", (void*)ssl, str ); - ssl->conf->f_dbg( ssl->conf->p_dbg, level, file, line, idstr ); + mbedtls_snprintf(idstr, sizeof(idstr), "%p: %s", (void *) ssl, str); + ssl->conf->f_dbg(ssl->conf->p_dbg, level, file, line, idstr); #else - ssl->conf->f_dbg( ssl->conf->p_dbg, level, file, line, str ); + ssl->conf->f_dbg(ssl->conf->p_dbg, level, file, line, str); #endif } MBEDTLS_PRINTF_ATTRIBUTE(5, 6) -void mbedtls_debug_print_msg( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *format, ... ) +void mbedtls_debug_print_msg(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *format, ...) { va_list argp; char str[DEBUG_BUF_SIZE]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || - level > debug_threshold ) - { + level > debug_threshold) { return; } - va_start( argp, format ); - ret = mbedtls_vsnprintf( str, DEBUG_BUF_SIZE, format, argp ); - va_end( argp ); + va_start(argp, format); + ret = mbedtls_vsnprintf(str, DEBUG_BUF_SIZE, format, argp); + va_end(argp); - if( ret >= 0 && ret < DEBUG_BUF_SIZE - 1 ) - { + if (ret >= 0 && ret < DEBUG_BUF_SIZE - 1) { str[ret] = '\n'; str[ret + 1] = '\0'; } - debug_send_line( ssl, level, file, line, str ); + debug_send_line(ssl, level, file, line, str); } -void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, int ret ) +void mbedtls_debug_print_ret(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, int ret) { char str[DEBUG_BUF_SIZE]; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || - level > debug_threshold ) - { + level > debug_threshold) { return; } @@ -109,246 +106,232 @@ void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, * the logs would be quickly flooded with WANT_READ, so ignore that. * Don't ignore WANT_WRITE however, since it is usually rare. */ - if( ret == MBEDTLS_ERR_SSL_WANT_READ ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { return; + } - mbedtls_snprintf( str, sizeof( str ), "%s() returned %d (-0x%04x)\n", - text, ret, (unsigned int) -ret ); + mbedtls_snprintf(str, sizeof(str), "%s() returned %d (-0x%04x)\n", + text, ret, (unsigned int) -ret); - debug_send_line( ssl, level, file, line, str ); + debug_send_line(ssl, level, file, line, str); } -void mbedtls_debug_print_buf( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, const char *text, - const unsigned char *buf, size_t len ) +void mbedtls_debug_print_buf(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, const char *text, + const unsigned char *buf, size_t len) { char str[DEBUG_BUF_SIZE]; char txt[17]; size_t i, idx = 0; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || - level > debug_threshold ) - { + level > debug_threshold) { return; } - mbedtls_snprintf( str + idx, sizeof( str ) - idx, "dumping '%s' (%u bytes)\n", - text, (unsigned int) len ); + mbedtls_snprintf(str + idx, sizeof(str) - idx, "dumping '%s' (%u bytes)\n", + text, (unsigned int) len); - debug_send_line( ssl, level, file, line, str ); + debug_send_line(ssl, level, file, line, str); idx = 0; - memset( txt, 0, sizeof( txt ) ); - for( i = 0; i < len; i++ ) - { - if( i >= 4096 ) + memset(txt, 0, sizeof(txt)); + for (i = 0; i < len; i++) { + if (i >= 4096) { break; + } - if( i % 16 == 0 ) - { - if( i > 0 ) - { - mbedtls_snprintf( str + idx, sizeof( str ) - idx, " %s\n", txt ); - debug_send_line( ssl, level, file, line, str ); + if (i % 16 == 0) { + if (i > 0) { + mbedtls_snprintf(str + idx, sizeof(str) - idx, " %s\n", txt); + debug_send_line(ssl, level, file, line, str); idx = 0; - memset( txt, 0, sizeof( txt ) ); + memset(txt, 0, sizeof(txt)); } - idx += mbedtls_snprintf( str + idx, sizeof( str ) - idx, "%04x: ", - (unsigned int) i ); + idx += mbedtls_snprintf(str + idx, sizeof(str) - idx, "%04x: ", + (unsigned int) i); } - idx += mbedtls_snprintf( str + idx, sizeof( str ) - idx, " %02x", - (unsigned int) buf[i] ); - txt[i % 16] = ( buf[i] > 31 && buf[i] < 127 ) ? buf[i] : '.' ; + idx += mbedtls_snprintf(str + idx, sizeof(str) - idx, " %02x", + (unsigned int) buf[i]); + txt[i % 16] = (buf[i] > 31 && buf[i] < 127) ? buf[i] : '.'; } - if( len > 0 ) - { - for( /* i = i */; i % 16 != 0; i++ ) - idx += mbedtls_snprintf( str + idx, sizeof( str ) - idx, " " ); + if (len > 0) { + for (/* i = i */; i % 16 != 0; i++) { + idx += mbedtls_snprintf(str + idx, sizeof(str) - idx, " "); + } - mbedtls_snprintf( str + idx, sizeof( str ) - idx, " %s\n", txt ); - debug_send_line( ssl, level, file, line, str ); + mbedtls_snprintf(str + idx, sizeof(str) - idx, " %s\n", txt); + debug_send_line(ssl, level, file, line, str); } } #if defined(MBEDTLS_ECP_C) -void mbedtls_debug_print_ecp( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_ecp_point *X ) +void mbedtls_debug_print_ecp(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_ecp_point *X) { char str[DEBUG_BUF_SIZE]; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || - level > debug_threshold ) - { + level > debug_threshold) { return; } - mbedtls_snprintf( str, sizeof( str ), "%s(X)", text ); - mbedtls_debug_print_mpi( ssl, level, file, line, str, &X->X ); + mbedtls_snprintf(str, sizeof(str), "%s(X)", text); + mbedtls_debug_print_mpi(ssl, level, file, line, str, &X->X); - mbedtls_snprintf( str, sizeof( str ), "%s(Y)", text ); - mbedtls_debug_print_mpi( ssl, level, file, line, str, &X->Y ); + mbedtls_snprintf(str, sizeof(str), "%s(Y)", text); + mbedtls_debug_print_mpi(ssl, level, file, line, str, &X->Y); } #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_BIGNUM_C) -void mbedtls_debug_print_mpi( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_mpi *X ) +void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_mpi *X) { char str[DEBUG_BUF_SIZE]; size_t bitlen; size_t idx = 0; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || NULL == X || - level > debug_threshold ) - { + level > debug_threshold) { return; } - bitlen = mbedtls_mpi_bitlen( X ); + bitlen = mbedtls_mpi_bitlen(X); - mbedtls_snprintf( str, sizeof( str ), "value of '%s' (%u bits) is:\n", - text, (unsigned) bitlen ); - debug_send_line( ssl, level, file, line, str ); + mbedtls_snprintf(str, sizeof(str), "value of '%s' (%u bits) is:\n", + text, (unsigned) bitlen); + debug_send_line(ssl, level, file, line, str); - if( bitlen == 0 ) - { + if (bitlen == 0) { str[0] = ' '; str[1] = '0'; str[2] = '0'; idx = 3; - } - else - { + } else { int n; - for( n = (int) ( ( bitlen - 1 ) / 8 ); n >= 0; n-- ) - { - size_t limb_offset = n / sizeof( mbedtls_mpi_uint ); - size_t offset_in_limb = n % sizeof( mbedtls_mpi_uint ); + for (n = (int) ((bitlen - 1) / 8); n >= 0; n--) { + size_t limb_offset = n / sizeof(mbedtls_mpi_uint); + size_t offset_in_limb = n % sizeof(mbedtls_mpi_uint); unsigned char octet = - ( X->p[limb_offset] >> ( offset_in_limb * 8 ) ) & 0xff; - mbedtls_snprintf( str + idx, sizeof( str ) - idx, " %02x", octet ); + (X->p[limb_offset] >> (offset_in_limb * 8)) & 0xff; + mbedtls_snprintf(str + idx, sizeof(str) - idx, " %02x", octet); idx += 3; /* Wrap lines after 16 octets that each take 3 columns */ - if( idx >= 3 * 16 ) - { - mbedtls_snprintf( str + idx, sizeof( str ) - idx, "\n" ); - debug_send_line( ssl, level, file, line, str ); + if (idx >= 3 * 16) { + mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n"); + debug_send_line(ssl, level, file, line, str); idx = 0; } } } - if( idx != 0 ) - { - mbedtls_snprintf( str + idx, sizeof( str ) - idx, "\n" ); - debug_send_line( ssl, level, file, line, str ); + if (idx != 0) { + mbedtls_snprintf(str + idx, sizeof(str) - idx, "\n"); + debug_send_line(ssl, level, file, line, str); } } #endif /* MBEDTLS_BIGNUM_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) && !defined(MBEDTLS_X509_REMOVE_INFO) -static void debug_print_pk( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_pk_context *pk ) +static void debug_print_pk(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_pk_context *pk) { size_t i; mbedtls_pk_debug_item items[MBEDTLS_PK_DEBUG_MAX_ITEMS]; char name[16]; - memset( items, 0, sizeof( items ) ); + memset(items, 0, sizeof(items)); - if( mbedtls_pk_debug( pk, items ) != 0 ) - { - debug_send_line( ssl, level, file, line, - "invalid PK context\n" ); + if (mbedtls_pk_debug(pk, items) != 0) { + debug_send_line(ssl, level, file, line, + "invalid PK context\n"); return; } - for( i = 0; i < MBEDTLS_PK_DEBUG_MAX_ITEMS; i++ ) - { - if( items[i].type == MBEDTLS_PK_DEBUG_NONE ) + for (i = 0; i < MBEDTLS_PK_DEBUG_MAX_ITEMS; i++) { + if (items[i].type == MBEDTLS_PK_DEBUG_NONE) { return; + } - mbedtls_snprintf( name, sizeof( name ), "%s%s", text, items[i].name ); - name[sizeof( name ) - 1] = '\0'; + mbedtls_snprintf(name, sizeof(name), "%s%s", text, items[i].name); + name[sizeof(name) - 1] = '\0'; - if( items[i].type == MBEDTLS_PK_DEBUG_MPI ) - mbedtls_debug_print_mpi( ssl, level, file, line, name, items[i].value ); - else + if (items[i].type == MBEDTLS_PK_DEBUG_MPI) { + mbedtls_debug_print_mpi(ssl, level, file, line, name, items[i].value); + } else #if defined(MBEDTLS_ECP_C) - if( items[i].type == MBEDTLS_PK_DEBUG_ECP ) - mbedtls_debug_print_ecp( ssl, level, file, line, name, items[i].value ); - else + if (items[i].type == MBEDTLS_PK_DEBUG_ECP) { + mbedtls_debug_print_ecp(ssl, level, file, line, name, items[i].value); + } else #endif - debug_send_line( ssl, level, file, line, - "should not happen\n" ); + { debug_send_line(ssl, level, file, line, + "should not happen\n"); } } } -static void debug_print_line_by_line( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, const char *text ) +static void debug_print_line_by_line(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, const char *text) { char str[DEBUG_BUF_SIZE]; const char *start, *cur; start = text; - for( cur = text; *cur != '\0'; cur++ ) - { - if( *cur == '\n' ) - { + for (cur = text; *cur != '\0'; cur++) { + if (*cur == '\n') { size_t len = cur - start + 1; - if( len > DEBUG_BUF_SIZE - 1 ) + if (len > DEBUG_BUF_SIZE - 1) { len = DEBUG_BUF_SIZE - 1; + } - memcpy( str, start, len ); + memcpy(str, start, len); str[len] = '\0'; - debug_send_line( ssl, level, file, line, str ); + debug_send_line(ssl, level, file, line, str); start = cur + 1; } } } -void mbedtls_debug_print_crt( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const char *text, const mbedtls_x509_crt *crt ) +void mbedtls_debug_print_crt(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const char *text, const mbedtls_x509_crt *crt) { char str[DEBUG_BUF_SIZE]; int i = 0; - if( NULL == ssl || + if (NULL == ssl || NULL == ssl->conf || NULL == ssl->conf->f_dbg || NULL == crt || - level > debug_threshold ) - { + level > debug_threshold) { return; } - while( crt != NULL ) - { + while (crt != NULL) { char buf[1024]; - mbedtls_snprintf( str, sizeof( str ), "%s #%d:\n", text, ++i ); - debug_send_line( ssl, level, file, line, str ); + mbedtls_snprintf(str, sizeof(str), "%s #%d:\n", text, ++i); + debug_send_line(ssl, level, file, line, str); - mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", crt ); - debug_print_line_by_line( ssl, level, file, line, buf ); + mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt); + debug_print_line_by_line(ssl, level, file, line, buf); - debug_print_pk( ssl, level, file, line, "crt->", &crt->pk ); + debug_print_pk(ssl, level, file, line, "crt->", &crt->pk); crt = crt->next; } @@ -356,50 +339,48 @@ void mbedtls_debug_print_crt( const mbedtls_ssl_context *ssl, int level, #endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_X509_REMOVE_INFO */ #if defined(MBEDTLS_ECDH_C) -static void mbedtls_debug_printf_ecdh_internal( const mbedtls_ssl_context *ssl, - int level, const char *file, - int line, - const mbedtls_ecdh_context *ecdh, - mbedtls_debug_ecdh_attr attr ) +static void mbedtls_debug_printf_ecdh_internal(const mbedtls_ssl_context *ssl, + int level, const char *file, + int line, + const mbedtls_ecdh_context *ecdh, + mbedtls_debug_ecdh_attr attr) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - const mbedtls_ecdh_context* ctx = ecdh; + const mbedtls_ecdh_context *ctx = ecdh; #else - const mbedtls_ecdh_context_mbed* ctx = &ecdh->ctx.mbed_ecdh; + const mbedtls_ecdh_context_mbed *ctx = &ecdh->ctx.mbed_ecdh; #endif - switch( attr ) - { + switch (attr) { case MBEDTLS_DEBUG_ECDH_Q: - mbedtls_debug_print_ecp( ssl, level, file, line, "ECDH: Q", - &ctx->Q ); + mbedtls_debug_print_ecp(ssl, level, file, line, "ECDH: Q", + &ctx->Q); break; case MBEDTLS_DEBUG_ECDH_QP: - mbedtls_debug_print_ecp( ssl, level, file, line, "ECDH: Qp", - &ctx->Qp ); + mbedtls_debug_print_ecp(ssl, level, file, line, "ECDH: Qp", + &ctx->Qp); break; case MBEDTLS_DEBUG_ECDH_Z: - mbedtls_debug_print_mpi( ssl, level, file, line, "ECDH: z", - &ctx->z ); + mbedtls_debug_print_mpi(ssl, level, file, line, "ECDH: z", + &ctx->z); break; default: break; } } -void mbedtls_debug_printf_ecdh( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - const mbedtls_ecdh_context *ecdh, - mbedtls_debug_ecdh_attr attr ) +void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + const mbedtls_ecdh_context *ecdh, + mbedtls_debug_ecdh_attr attr) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - mbedtls_debug_printf_ecdh_internal( ssl, level, file, line, ecdh, attr ); + mbedtls_debug_printf_ecdh_internal(ssl, level, file, line, ecdh, attr); #else - switch( ecdh->var ) - { + switch (ecdh->var) { default: - mbedtls_debug_printf_ecdh_internal( ssl, level, file, line, ecdh, - attr ); + mbedtls_debug_printf_ecdh_internal(ssl, level, file, line, ecdh, + attr); } #endif } diff --git a/library/des.c b/library/des.c index c56d4d4fe..eaddf282a 100644 --- a/library/des.c +++ b/library/des.c @@ -222,7 +222,7 @@ static const uint32_t RHs[16] = /* * Initial Permutation macro */ -#define DES_IP(X,Y) \ +#define DES_IP(X, Y) \ do \ { \ T = (((X) >> 4) ^ (Y)) & 0x0F0F0F0F; (Y) ^= T; (X) ^= (T << 4); \ @@ -232,12 +232,12 @@ static const uint32_t RHs[16] = (Y) = (((Y) << 1) | ((Y) >> 31)) & 0xFFFFFFFF; \ T = ((X) ^ (Y)) & 0xAAAAAAAA; (Y) ^= T; (X) ^= T; \ (X) = (((X) << 1) | ((X) >> 31)) & 0xFFFFFFFF; \ - } while( 0 ) + } while (0) /* * Final Permutation macro */ -#define DES_FP(X,Y) \ +#define DES_FP(X, Y) \ do \ { \ (X) = (((X) << 31) | ((X) >> 1)) & 0xFFFFFFFF; \ @@ -247,90 +247,103 @@ static const uint32_t RHs[16] = T = (((Y) >> 2) ^ (X)) & 0x33333333; (X) ^= T; (Y) ^= (T << 2); \ T = (((X) >> 16) ^ (Y)) & 0x0000FFFF; (Y) ^= T; (X) ^= (T << 16); \ T = (((X) >> 4) ^ (Y)) & 0x0F0F0F0F; (Y) ^= T; (X) ^= (T << 4); \ - } while( 0 ) + } while (0) /* * DES round macro */ -#define DES_ROUND(X,Y) \ +#define DES_ROUND(X, Y) \ do \ { \ T = *SK++ ^ (X); \ - (Y) ^= SB8[ (T ) & 0x3F ] ^ \ - SB6[ (T >> 8) & 0x3F ] ^ \ - SB4[ (T >> 16) & 0x3F ] ^ \ - SB2[ (T >> 24) & 0x3F ]; \ + (Y) ^= SB8[(T) & 0x3F] ^ \ + SB6[(T >> 8) & 0x3F] ^ \ + SB4[(T >> 16) & 0x3F] ^ \ + SB2[(T >> 24) & 0x3F]; \ \ T = *SK++ ^ (((X) << 28) | ((X) >> 4)); \ - (Y) ^= SB7[ (T ) & 0x3F ] ^ \ - SB5[ (T >> 8) & 0x3F ] ^ \ - SB3[ (T >> 16) & 0x3F ] ^ \ - SB1[ (T >> 24) & 0x3F ]; \ - } while( 0 ) + (Y) ^= SB7[(T) & 0x3F] ^ \ + SB5[(T >> 8) & 0x3F] ^ \ + SB3[(T >> 16) & 0x3F] ^ \ + SB1[(T >> 24) & 0x3F]; \ + } while (0) -#define SWAP(a,b) \ +#define SWAP(a, b) \ do \ { \ uint32_t t = (a); (a) = (b); (b) = t; t = 0; \ - } while( 0 ) + } while (0) -void mbedtls_des_init( mbedtls_des_context *ctx ) +void mbedtls_des_init(mbedtls_des_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_des_context ) ); + memset(ctx, 0, sizeof(mbedtls_des_context)); } -void mbedtls_des_free( mbedtls_des_context *ctx ) +void mbedtls_des_free(mbedtls_des_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_des_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_des_context)); } -void mbedtls_des3_init( mbedtls_des3_context *ctx ) +void mbedtls_des3_init(mbedtls_des3_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_des3_context ) ); + memset(ctx, 0, sizeof(mbedtls_des3_context)); } -void mbedtls_des3_free( mbedtls_des3_context *ctx ) +void mbedtls_des3_free(mbedtls_des3_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_des3_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_des3_context)); } static const unsigned char odd_parity_table[128] = { 1, 2, 4, 7, 8, - 11, 13, 14, 16, 19, 21, 22, 25, 26, 28, 31, 32, 35, 37, 38, 41, 42, 44, - 47, 49, 50, 52, 55, 56, 59, 61, 62, 64, 67, 69, 70, 73, 74, 76, 79, 81, - 82, 84, 87, 88, 91, 93, 94, 97, 98, 100, 103, 104, 107, 109, 110, 112, - 115, 117, 118, 121, 122, 124, 127, 128, 131, 133, 134, 137, 138, 140, - 143, 145, 146, 148, 151, 152, 155, 157, 158, 161, 162, 164, 167, 168, - 171, 173, 174, 176, 179, 181, 182, 185, 186, 188, 191, 193, 194, 196, - 199, 200, 203, 205, 206, 208, 211, 213, 214, 217, 218, 220, 223, 224, - 227, 229, 230, 233, 234, 236, 239, 241, 242, 244, 247, 248, 251, 253, - 254 }; + 11, 13, 14, 16, 19, 21, 22, 25, 26, 28, 31, 32, + 35, 37, 38, 41, 42, 44, + 47, 49, 50, 52, 55, 56, 59, 61, 62, 64, 67, 69, + 70, 73, 74, 76, 79, 81, + 82, 84, 87, 88, 91, 93, 94, 97, 98, 100, 103, + 104, 107, 109, 110, 112, + 115, 117, 118, 121, 122, 124, 127, 128, 131, + 133, 134, 137, 138, 140, + 143, 145, 146, 148, 151, 152, 155, 157, 158, + 161, 162, 164, 167, 168, + 171, 173, 174, 176, 179, 181, 182, 185, 186, + 188, 191, 193, 194, 196, + 199, 200, 203, 205, 206, 208, 211, 213, 214, + 217, 218, 220, 223, 224, + 227, 229, 230, 233, 234, 236, 239, 241, 242, + 244, 247, 248, 251, 253, + 254 }; -void mbedtls_des_key_set_parity( unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE]) { int i; - for( i = 0; i < MBEDTLS_DES_KEY_SIZE; i++ ) + for (i = 0; i < MBEDTLS_DES_KEY_SIZE; i++) { key[i] = odd_parity_table[key[i] / 2]; + } } /* * Check the given key's parity, returns 1 on failure, 0 on SUCCESS */ -int mbedtls_des_key_check_key_parity( const unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZE]) { int i; - for( i = 0; i < MBEDTLS_DES_KEY_SIZE; i++ ) - if( key[i] != odd_parity_table[key[i] / 2] ) - return( 1 ); + for (i = 0; i < MBEDTLS_DES_KEY_SIZE; i++) { + if (key[i] != odd_parity_table[key[i] / 2]) { + return 1; + } + } - return( 0 ); + return 0; } /* @@ -377,41 +390,43 @@ static const unsigned char weak_key_table[WEAK_KEY_COUNT][MBEDTLS_DES_KEY_SIZE] { 0xFE, 0xE0, 0xFE, 0xE0, 0xFE, 0xF1, 0xFE, 0xF1 } }; -int mbedtls_des_key_check_weak( const unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE]) { int i; - for( i = 0; i < WEAK_KEY_COUNT; i++ ) - if( memcmp( weak_key_table[i], key, MBEDTLS_DES_KEY_SIZE) == 0 ) - return( 1 ); + for (i = 0; i < WEAK_KEY_COUNT; i++) { + if (memcmp(weak_key_table[i], key, MBEDTLS_DES_KEY_SIZE) == 0) { + return 1; + } + } - return( 0 ); + return 0; } #if !defined(MBEDTLS_DES_SETKEY_ALT) -void mbedtls_des_setkey( uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +void mbedtls_des_setkey(uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KEY_SIZE]) { int i; uint32_t X, Y, T; - X = MBEDTLS_GET_UINT32_BE( key, 0 ); - Y = MBEDTLS_GET_UINT32_BE( key, 4 ); + X = MBEDTLS_GET_UINT32_BE(key, 0); + Y = MBEDTLS_GET_UINT32_BE(key, 4); /* * Permuted Choice 1 */ T = ((Y >> 4) ^ X) & 0x0F0F0F0F; X ^= T; Y ^= (T << 4); - T = ((Y ) ^ X) & 0x10101010; X ^= T; Y ^= (T ); + T = ((Y) ^ X) & 0x10101010; X ^= T; Y ^= (T); - X = (LHs[ (X ) & 0xF] << 3) | (LHs[ (X >> 8) & 0xF ] << 2) - | (LHs[ (X >> 16) & 0xF] << 1) | (LHs[ (X >> 24) & 0xF ] ) - | (LHs[ (X >> 5) & 0xF] << 7) | (LHs[ (X >> 13) & 0xF ] << 6) - | (LHs[ (X >> 21) & 0xF] << 5) | (LHs[ (X >> 29) & 0xF ] << 4); + X = (LHs[(X) & 0xF] << 3) | (LHs[(X >> 8) & 0xF] << 2) + | (LHs[(X >> 16) & 0xF] << 1) | (LHs[(X >> 24) & 0xF]) + | (LHs[(X >> 5) & 0xF] << 7) | (LHs[(X >> 13) & 0xF] << 6) + | (LHs[(X >> 21) & 0xF] << 5) | (LHs[(X >> 29) & 0xF] << 4); - Y = (RHs[ (Y >> 1) & 0xF] << 3) | (RHs[ (Y >> 9) & 0xF ] << 2) - | (RHs[ (Y >> 17) & 0xF] << 1) | (RHs[ (Y >> 25) & 0xF ] ) - | (RHs[ (Y >> 4) & 0xF] << 7) | (RHs[ (Y >> 12) & 0xF ] << 6) - | (RHs[ (Y >> 20) & 0xF] << 5) | (RHs[ (Y >> 28) & 0xF ] << 4); + Y = (RHs[(Y >> 1) & 0xF] << 3) | (RHs[(Y >> 9) & 0xF] << 2) + | (RHs[(Y >> 17) & 0xF] << 1) | (RHs[(Y >> 25) & 0xF]) + | (RHs[(Y >> 4) & 0xF] << 7) | (RHs[(Y >> 12) & 0xF] << 6) + | (RHs[(Y >> 20) & 0xF] << 5) | (RHs[(Y >> 28) & 0xF] << 4); X &= 0x0FFFFFFF; Y &= 0x0FFFFFFF; @@ -419,15 +434,11 @@ void mbedtls_des_setkey( uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KE /* * calculate subkeys */ - for( i = 0; i < 16; i++ ) - { - if( i < 2 || i == 8 || i == 15 ) - { + for (i = 0; i < 16; i++) { + if (i < 2 || i == 8 || i == 15) { X = ((X << 1) | (X >> 27)) & 0x0FFFFFFF; Y = ((Y << 1) | (Y >> 27)) & 0x0FFFFFFF; - } - else - { + } else { X = ((X << 2) | (X >> 26)) & 0x0FFFFFFF; Y = ((Y << 2) | (Y >> 26)) & 0x0FFFFFFF; } @@ -439,7 +450,7 @@ void mbedtls_des_setkey( uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KE | ((X << 2) & 0x00020000) | ((X >> 10) & 0x00010000) | ((Y >> 13) & 0x00002000) | ((Y >> 4) & 0x00001000) | ((Y << 6) & 0x00000800) | ((Y >> 1) & 0x00000400) - | ((Y >> 14) & 0x00000200) | ((Y ) & 0x00000100) + | ((Y >> 14) & 0x00000200) | ((Y) & 0x00000100) | ((Y >> 5) & 0x00000020) | ((Y >> 10) & 0x00000010) | ((Y >> 3) & 0x00000008) | ((Y >> 18) & 0x00000004) | ((Y >> 26) & 0x00000002) | ((Y >> 24) & 0x00000001); @@ -452,7 +463,7 @@ void mbedtls_des_setkey( uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KE | ((X << 15) & 0x00020000) | ((X >> 4) & 0x00010000) | ((Y >> 2) & 0x00002000) | ((Y << 8) & 0x00001000) | ((Y >> 14) & 0x00000808) | ((Y >> 9) & 0x00000400) - | ((Y ) & 0x00000200) | ((Y << 7) & 0x00000100) + | ((Y) & 0x00000200) | ((Y << 7) & 0x00000100) | ((Y >> 7) & 0x00000020) | ((Y >> 3) & 0x00000011) | ((Y << 2) & 0x00000004) | ((Y >> 21) & 0x00000002); } @@ -462,52 +473,50 @@ void mbedtls_des_setkey( uint32_t SK[32], const unsigned char key[MBEDTLS_DES_KE /* * DES key schedule (56-bit, encryption) */ -int mbedtls_des_setkey_enc( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]) { - mbedtls_des_setkey( ctx->sk, key ); + mbedtls_des_setkey(ctx->sk, key); - return( 0 ); + return 0; } /* * DES key schedule (56-bit, decryption) */ -int mbedtls_des_setkey_dec( mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE] ) +int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBEDTLS_DES_KEY_SIZE]) { int i; - mbedtls_des_setkey( ctx->sk, key ); + mbedtls_des_setkey(ctx->sk, key); - for( i = 0; i < 16; i += 2 ) - { - SWAP( ctx->sk[i ], ctx->sk[30 - i] ); - SWAP( ctx->sk[i + 1], ctx->sk[31 - i] ); + for (i = 0; i < 16; i += 2) { + SWAP(ctx->sk[i], ctx->sk[30 - i]); + SWAP(ctx->sk[i + 1], ctx->sk[31 - i]); } - return( 0 ); + return 0; } -static void des3_set2key( uint32_t esk[96], - uint32_t dsk[96], - const unsigned char key[MBEDTLS_DES_KEY_SIZE*2] ) +static void des3_set2key(uint32_t esk[96], + uint32_t dsk[96], + const unsigned char key[MBEDTLS_DES_KEY_SIZE*2]) { int i; - mbedtls_des_setkey( esk, key ); - mbedtls_des_setkey( dsk + 32, key + 8 ); + mbedtls_des_setkey(esk, key); + mbedtls_des_setkey(dsk + 32, key + 8); - for( i = 0; i < 32; i += 2 ) - { - dsk[i ] = esk[30 - i]; + for (i = 0; i < 32; i += 2) { + dsk[i] = esk[30 - i]; dsk[i + 1] = esk[31 - i]; esk[i + 32] = dsk[62 - i]; esk[i + 33] = dsk[63 - i]; - esk[i + 64] = esk[i ]; + esk[i + 64] = esk[i]; esk[i + 65] = esk[i + 1]; - dsk[i + 64] = dsk[i ]; + dsk[i + 64] = dsk[i]; dsk[i + 65] = dsk[i + 1]; } } @@ -515,44 +524,43 @@ static void des3_set2key( uint32_t esk[96], /* * Triple-DES key schedule (112-bit, encryption) */ -int mbedtls_des3_set2key_enc( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] ) +int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]) { uint32_t sk[96]; - des3_set2key( ctx->sk, sk, key ); - mbedtls_platform_zeroize( sk, sizeof( sk ) ); + des3_set2key(ctx->sk, sk, key); + mbedtls_platform_zeroize(sk, sizeof(sk)); - return( 0 ); + return 0; } /* * Triple-DES key schedule (112-bit, decryption) */ -int mbedtls_des3_set2key_dec( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2] ) +int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 2]) { uint32_t sk[96]; - des3_set2key( sk, ctx->sk, key ); - mbedtls_platform_zeroize( sk, sizeof( sk ) ); + des3_set2key(sk, ctx->sk, key); + mbedtls_platform_zeroize(sk, sizeof(sk)); - return( 0 ); + return 0; } -static void des3_set3key( uint32_t esk[96], - uint32_t dsk[96], - const unsigned char key[24] ) +static void des3_set3key(uint32_t esk[96], + uint32_t dsk[96], + const unsigned char key[24]) { int i; - mbedtls_des_setkey( esk, key ); - mbedtls_des_setkey( dsk + 32, key + 8 ); - mbedtls_des_setkey( esk + 64, key + 16 ); + mbedtls_des_setkey(esk, key); + mbedtls_des_setkey(dsk + 32, key + 8); + mbedtls_des_setkey(esk + 64, key + 16); - for( i = 0; i < 32; i += 2 ) - { - dsk[i ] = esk[94 - i]; + for (i = 0; i < 32; i += 2) { + dsk[i] = esk[94 - i]; dsk[i + 1] = esk[95 - i]; esk[i + 32] = dsk[62 - i]; @@ -566,61 +574,60 @@ static void des3_set3key( uint32_t esk[96], /* * Triple-DES key schedule (168-bit, encryption) */ -int mbedtls_des3_set3key_enc( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] ) +int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]) { uint32_t sk[96]; - des3_set3key( ctx->sk, sk, key ); - mbedtls_platform_zeroize( sk, sizeof( sk ) ); + des3_set3key(ctx->sk, sk, key); + mbedtls_platform_zeroize(sk, sizeof(sk)); - return( 0 ); + return 0; } /* * Triple-DES key schedule (168-bit, decryption) */ -int mbedtls_des3_set3key_dec( mbedtls_des3_context *ctx, - const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3] ) +int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx, + const unsigned char key[MBEDTLS_DES_KEY_SIZE * 3]) { uint32_t sk[96]; - des3_set3key( sk, ctx->sk, key ); - mbedtls_platform_zeroize( sk, sizeof( sk ) ); + des3_set3key(sk, ctx->sk, key); + mbedtls_platform_zeroize(sk, sizeof(sk)); - return( 0 ); + return 0; } /* * DES-ECB block encryption/decryption */ #if !defined(MBEDTLS_DES_CRYPT_ECB_ALT) -int mbedtls_des_crypt_ecb( mbedtls_des_context *ctx, - const unsigned char input[8], - unsigned char output[8] ) +int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx, + const unsigned char input[8], + unsigned char output[8]) { int i; uint32_t X, Y, T, *SK; SK = ctx->sk; - X = MBEDTLS_GET_UINT32_BE( input, 0 ); - Y = MBEDTLS_GET_UINT32_BE( input, 4 ); + X = MBEDTLS_GET_UINT32_BE(input, 0); + Y = MBEDTLS_GET_UINT32_BE(input, 4); - DES_IP( X, Y ); + DES_IP(X, Y); - for( i = 0; i < 8; i++ ) - { - DES_ROUND( Y, X ); - DES_ROUND( X, Y ); + for (i = 0; i < 8; i++) { + DES_ROUND(Y, X); + DES_ROUND(X, Y); } - DES_FP( Y, X ); + DES_FP(Y, X); - MBEDTLS_PUT_UINT32_BE( Y, output, 0 ); - MBEDTLS_PUT_UINT32_BE( X, output, 4 ); + MBEDTLS_PUT_UINT32_BE(Y, output, 0); + MBEDTLS_PUT_UINT32_BE(X, output, 4); - return( 0 ); + return 0; } #endif /* !MBEDTLS_DES_CRYPT_ECB_ALT */ @@ -628,47 +635,45 @@ int mbedtls_des_crypt_ecb( mbedtls_des_context *ctx, /* * DES-CBC buffer encryption/decryption */ -int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, - int mode, - size_t length, - unsigned char iv[8], - const unsigned char *input, - unsigned char *output ) +int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx, + int mode, + size_t length, + unsigned char iv[8], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[8]; - if( length % 8 ) - return( MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH ); + if (length % 8) { + return MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH; + } - if( mode == MBEDTLS_DES_ENCRYPT ) - { - while( length > 0 ) - { - mbedtls_xor( output, input, iv, 8 ); + if (mode == MBEDTLS_DES_ENCRYPT) { + while (length > 0) { + mbedtls_xor(output, input, iv, 8); - ret = mbedtls_des_crypt_ecb( ctx, output, output ); - if( ret != 0 ) + ret = mbedtls_des_crypt_ecb(ctx, output, output); + if (ret != 0) { goto exit; - memcpy( iv, output, 8 ); + } + memcpy(iv, output, 8); input += 8; output += 8; length -= 8; } - } - else /* MBEDTLS_DES_DECRYPT */ - { - while( length > 0 ) - { - memcpy( temp, input, 8 ); - ret = mbedtls_des_crypt_ecb( ctx, input, output ); - if( ret != 0 ) + } else { /* MBEDTLS_DES_DECRYPT */ + while (length > 0) { + memcpy(temp, input, 8); + ret = mbedtls_des_crypt_ecb(ctx, input, output); + if (ret != 0) { goto exit; + } - mbedtls_xor( output, output, iv, 8 ); + mbedtls_xor(output, output, iv, 8); - memcpy( iv, temp, 8 ); + memcpy(iv, temp, 8); input += 8; output += 8; @@ -678,7 +683,7 @@ int mbedtls_des_crypt_cbc( mbedtls_des_context *ctx, ret = 0; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ @@ -686,44 +691,41 @@ exit: * 3DES-ECB block encryption/decryption */ #if !defined(MBEDTLS_DES3_CRYPT_ECB_ALT) -int mbedtls_des3_crypt_ecb( mbedtls_des3_context *ctx, - const unsigned char input[8], - unsigned char output[8] ) +int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx, + const unsigned char input[8], + unsigned char output[8]) { int i; uint32_t X, Y, T, *SK; SK = ctx->sk; - X = MBEDTLS_GET_UINT32_BE( input, 0 ); - Y = MBEDTLS_GET_UINT32_BE( input, 4 ); + X = MBEDTLS_GET_UINT32_BE(input, 0); + Y = MBEDTLS_GET_UINT32_BE(input, 4); - DES_IP( X, Y ); + DES_IP(X, Y); - for( i = 0; i < 8; i++ ) - { - DES_ROUND( Y, X ); - DES_ROUND( X, Y ); + for (i = 0; i < 8; i++) { + DES_ROUND(Y, X); + DES_ROUND(X, Y); } - for( i = 0; i < 8; i++ ) - { - DES_ROUND( X, Y ); - DES_ROUND( Y, X ); + for (i = 0; i < 8; i++) { + DES_ROUND(X, Y); + DES_ROUND(Y, X); } - for( i = 0; i < 8; i++ ) - { - DES_ROUND( Y, X ); - DES_ROUND( X, Y ); + for (i = 0; i < 8; i++) { + DES_ROUND(Y, X); + DES_ROUND(X, Y); } - DES_FP( Y, X ); + DES_FP(Y, X); - MBEDTLS_PUT_UINT32_BE( Y, output, 0 ); - MBEDTLS_PUT_UINT32_BE( X, output, 4 ); + MBEDTLS_PUT_UINT32_BE(Y, output, 0); + MBEDTLS_PUT_UINT32_BE(X, output, 4); - return( 0 ); + return 0; } #endif /* !MBEDTLS_DES3_CRYPT_ECB_ALT */ @@ -731,47 +733,45 @@ int mbedtls_des3_crypt_ecb( mbedtls_des3_context *ctx, /* * 3DES-CBC buffer encryption/decryption */ -int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, - int mode, - size_t length, - unsigned char iv[8], - const unsigned char *input, - unsigned char *output ) +int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx, + int mode, + size_t length, + unsigned char iv[8], + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char temp[8]; - if( length % 8 ) - return( MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH ); + if (length % 8) { + return MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH; + } - if( mode == MBEDTLS_DES_ENCRYPT ) - { - while( length > 0 ) - { - mbedtls_xor( output, input, iv, 8 ); + if (mode == MBEDTLS_DES_ENCRYPT) { + while (length > 0) { + mbedtls_xor(output, input, iv, 8); - ret = mbedtls_des3_crypt_ecb( ctx, output, output ); - if( ret != 0 ) + ret = mbedtls_des3_crypt_ecb(ctx, output, output); + if (ret != 0) { goto exit; - memcpy( iv, output, 8 ); + } + memcpy(iv, output, 8); input += 8; output += 8; length -= 8; } - } - else /* MBEDTLS_DES_DECRYPT */ - { - while( length > 0 ) - { - memcpy( temp, input, 8 ); - ret = mbedtls_des3_crypt_ecb( ctx, input, output ); - if( ret != 0 ) + } else { /* MBEDTLS_DES_DECRYPT */ + while (length > 0) { + memcpy(temp, input, 8); + ret = mbedtls_des3_crypt_ecb(ctx, input, output); + if (ret != 0) { goto exit; + } - mbedtls_xor( output, output, iv, 8 ); + mbedtls_xor(output, output, iv, 8); - memcpy( iv, temp, 8 ); + memcpy(iv, temp, 8); input += 8; output += 8; @@ -781,7 +781,7 @@ int mbedtls_des3_crypt_cbc( mbedtls_des3_context *ctx, ret = 0; exit: - return( ret ); + return ret; } #endif /* MBEDTLS_CIPHER_MODE_CBC */ @@ -843,7 +843,7 @@ static const unsigned char des3_test_cbc_enc[3][8] = /* * Checkup routine */ -int mbedtls_des_self_test( int verbose ) +int mbedtls_des_self_test(int verbose) { int i, j, u, v, ret = 0; mbedtls_des_context ctx; @@ -854,194 +854,199 @@ int mbedtls_des_self_test( int verbose ) unsigned char iv[8]; #endif - mbedtls_des_init( &ctx ); - mbedtls_des3_init( &ctx3 ); + mbedtls_des_init(&ctx); + mbedtls_des3_init(&ctx3); /* * ECB mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; v = i & 1; - if( verbose != 0 ) - mbedtls_printf( " DES%c-ECB-%3d (%s): ", - ( u == 0 ) ? ' ' : '3', 56 + u * 56, - ( v == MBEDTLS_DES_DECRYPT ) ? "dec" : "enc" ); - - memcpy( buf, des3_test_buf, 8 ); - - switch( i ) - { - case 0: - ret = mbedtls_des_setkey_dec( &ctx, des3_test_keys ); - break; - - case 1: - ret = mbedtls_des_setkey_enc( &ctx, des3_test_keys ); - break; - - case 2: - ret = mbedtls_des3_set2key_dec( &ctx3, des3_test_keys ); - break; - - case 3: - ret = mbedtls_des3_set2key_enc( &ctx3, des3_test_keys ); - break; - - case 4: - ret = mbedtls_des3_set3key_dec( &ctx3, des3_test_keys ); - break; - - case 5: - ret = mbedtls_des3_set3key_enc( &ctx3, des3_test_keys ); - break; - - default: - return( 1 ); + if (verbose != 0) { + mbedtls_printf(" DES%c-ECB-%3d (%s): ", + (u == 0) ? ' ' : '3', 56 + u * 56, + (v == MBEDTLS_DES_DECRYPT) ? "dec" : "enc"); } - if( ret != 0 ) + + memcpy(buf, des3_test_buf, 8); + + switch (i) { + case 0: + ret = mbedtls_des_setkey_dec(&ctx, des3_test_keys); + break; + + case 1: + ret = mbedtls_des_setkey_enc(&ctx, des3_test_keys); + break; + + case 2: + ret = mbedtls_des3_set2key_dec(&ctx3, des3_test_keys); + break; + + case 3: + ret = mbedtls_des3_set2key_enc(&ctx3, des3_test_keys); + break; + + case 4: + ret = mbedtls_des3_set3key_dec(&ctx3, des3_test_keys); + break; + + case 5: + ret = mbedtls_des3_set3key_enc(&ctx3, des3_test_keys); + break; + + default: + return 1; + } + if (ret != 0) { goto exit; - - for( j = 0; j < 100; j++ ) - { - if( u == 0 ) - ret = mbedtls_des_crypt_ecb( &ctx, buf, buf ); - else - ret = mbedtls_des3_crypt_ecb( &ctx3, buf, buf ); - if( ret != 0 ) - goto exit; } - if( ( v == MBEDTLS_DES_DECRYPT && - memcmp( buf, des3_test_ecb_dec[u], 8 ) != 0 ) || - ( v != MBEDTLS_DES_DECRYPT && - memcmp( buf, des3_test_ecb_enc[u], 8 ) != 0 ) ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + for (j = 0; j < 100; j++) { + if (u == 0) { + ret = mbedtls_des_crypt_ecb(&ctx, buf, buf); + } else { + ret = mbedtls_des3_crypt_ecb(&ctx3, buf, buf); + } + if (ret != 0) { + goto exit; + } + } + + if ((v == MBEDTLS_DES_DECRYPT && + memcmp(buf, des3_test_ecb_dec[u], 8) != 0) || + (v != MBEDTLS_DES_DECRYPT && + memcmp(buf, des3_test_ecb_enc[u], 8) != 0)) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } #if defined(MBEDTLS_CIPHER_MODE_CBC) /* * CBC mode */ - for( i = 0; i < 6; i++ ) - { + for (i = 0; i < 6; i++) { u = i >> 1; v = i & 1; - if( verbose != 0 ) - mbedtls_printf( " DES%c-CBC-%3d (%s): ", - ( u == 0 ) ? ' ' : '3', 56 + u * 56, - ( v == MBEDTLS_DES_DECRYPT ) ? "dec" : "enc" ); - - memcpy( iv, des3_test_iv, 8 ); - memcpy( prv, des3_test_iv, 8 ); - memcpy( buf, des3_test_buf, 8 ); - - switch( i ) - { - case 0: - ret = mbedtls_des_setkey_dec( &ctx, des3_test_keys ); - break; - - case 1: - ret = mbedtls_des_setkey_enc( &ctx, des3_test_keys ); - break; - - case 2: - ret = mbedtls_des3_set2key_dec( &ctx3, des3_test_keys ); - break; - - case 3: - ret = mbedtls_des3_set2key_enc( &ctx3, des3_test_keys ); - break; - - case 4: - ret = mbedtls_des3_set3key_dec( &ctx3, des3_test_keys ); - break; - - case 5: - ret = mbedtls_des3_set3key_enc( &ctx3, des3_test_keys ); - break; - - default: - return( 1 ); + if (verbose != 0) { + mbedtls_printf(" DES%c-CBC-%3d (%s): ", + (u == 0) ? ' ' : '3', 56 + u * 56, + (v == MBEDTLS_DES_DECRYPT) ? "dec" : "enc"); } - if( ret != 0 ) + + memcpy(iv, des3_test_iv, 8); + memcpy(prv, des3_test_iv, 8); + memcpy(buf, des3_test_buf, 8); + + switch (i) { + case 0: + ret = mbedtls_des_setkey_dec(&ctx, des3_test_keys); + break; + + case 1: + ret = mbedtls_des_setkey_enc(&ctx, des3_test_keys); + break; + + case 2: + ret = mbedtls_des3_set2key_dec(&ctx3, des3_test_keys); + break; + + case 3: + ret = mbedtls_des3_set2key_enc(&ctx3, des3_test_keys); + break; + + case 4: + ret = mbedtls_des3_set3key_dec(&ctx3, des3_test_keys); + break; + + case 5: + ret = mbedtls_des3_set3key_enc(&ctx3, des3_test_keys); + break; + + default: + return 1; + } + if (ret != 0) { goto exit; - - if( v == MBEDTLS_DES_DECRYPT ) - { - for( j = 0; j < 100; j++ ) - { - if( u == 0 ) - ret = mbedtls_des_crypt_cbc( &ctx, v, 8, iv, buf, buf ); - else - ret = mbedtls_des3_crypt_cbc( &ctx3, v, 8, iv, buf, buf ); - if( ret != 0 ) - goto exit; - } } - else - { - for( j = 0; j < 100; j++ ) - { + + if (v == MBEDTLS_DES_DECRYPT) { + for (j = 0; j < 100; j++) { + if (u == 0) { + ret = mbedtls_des_crypt_cbc(&ctx, v, 8, iv, buf, buf); + } else { + ret = mbedtls_des3_crypt_cbc(&ctx3, v, 8, iv, buf, buf); + } + if (ret != 0) { + goto exit; + } + } + } else { + for (j = 0; j < 100; j++) { unsigned char tmp[8]; - if( u == 0 ) - ret = mbedtls_des_crypt_cbc( &ctx, v, 8, iv, buf, buf ); - else - ret = mbedtls_des3_crypt_cbc( &ctx3, v, 8, iv, buf, buf ); - if( ret != 0 ) + if (u == 0) { + ret = mbedtls_des_crypt_cbc(&ctx, v, 8, iv, buf, buf); + } else { + ret = mbedtls_des3_crypt_cbc(&ctx3, v, 8, iv, buf, buf); + } + if (ret != 0) { goto exit; + } - memcpy( tmp, prv, 8 ); - memcpy( prv, buf, 8 ); - memcpy( buf, tmp, 8 ); + memcpy(tmp, prv, 8); + memcpy(prv, buf, 8); + memcpy(buf, tmp, 8); } - memcpy( buf, prv, 8 ); + memcpy(buf, prv, 8); } - if( ( v == MBEDTLS_DES_DECRYPT && - memcmp( buf, des3_test_cbc_dec[u], 8 ) != 0 ) || - ( v != MBEDTLS_DES_DECRYPT && - memcmp( buf, des3_test_cbc_enc[u], 8 ) != 0 ) ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if ((v == MBEDTLS_DES_DECRYPT && + memcmp(buf, des3_test_cbc_dec[u], 8) != 0) || + (v != MBEDTLS_DES_DECRYPT && + memcmp(buf, des3_test_cbc_enc[u], 8) != 0)) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } #endif /* MBEDTLS_CIPHER_MODE_CBC */ - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } exit: - mbedtls_des_free( &ctx ); - mbedtls_des3_free( &ctx3 ); + mbedtls_des_free(&ctx); + mbedtls_des3_free(&ctx3); - if( ret != 0 ) + if (ret != 0) { ret = 1; - return( ret ); + } + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/dhm.c b/library/dhm.c index 6ee540242..94137a264 100644 --- a/library/dhm.c +++ b/library/dhm.c @@ -50,27 +50,30 @@ /* * helper to validate the mbedtls_mpi size and import it */ -static int dhm_read_bignum( mbedtls_mpi *X, - unsigned char **p, - const unsigned char *end ) +static int dhm_read_bignum(mbedtls_mpi *X, + unsigned char **p, + const unsigned char *end) { int ret, n; - if( end - *p < 2 ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if (end - *p < 2) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - n = ( (*p)[0] << 8 ) | (*p)[1]; + n = ((*p)[0] << 8) | (*p)[1]; (*p) += 2; - if( (int)( end - *p ) < n ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if ((int) (end - *p) < n) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - if( ( ret = mbedtls_mpi_read_binary( X, *p, n ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_READ_PARAMS_FAILED, ret ) ); + if ((ret = mbedtls_mpi_read_binary(X, *p, n)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED, ret); + } (*p) += n; - return( 0 ); + return 0; } /* @@ -85,48 +88,46 @@ static int dhm_read_bignum( mbedtls_mpi *X, * http://www.cl.cam.ac.uk/~rja14/Papers/psandqs.pdf * http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2005-2643 */ -static int dhm_check_range( const mbedtls_mpi *param, const mbedtls_mpi *P ) +static int dhm_check_range(const mbedtls_mpi *param, const mbedtls_mpi *P) { mbedtls_mpi U; int ret = 0; - mbedtls_mpi_init( &U ); + mbedtls_mpi_init(&U); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &U, P, 2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&U, P, 2)); - if( mbedtls_mpi_cmp_int( param, 2 ) < 0 || - mbedtls_mpi_cmp_mpi( param, &U ) > 0 ) - { + if (mbedtls_mpi_cmp_int(param, 2) < 0 || + mbedtls_mpi_cmp_mpi(param, &U) > 0) { ret = MBEDTLS_ERR_DHM_BAD_INPUT_DATA; } cleanup: - mbedtls_mpi_free( &U ); - return( ret ); + mbedtls_mpi_free(&U); + return ret; } -void mbedtls_dhm_init( mbedtls_dhm_context *ctx ) +void mbedtls_dhm_init(mbedtls_dhm_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_dhm_context ) ); + memset(ctx, 0, sizeof(mbedtls_dhm_context)); } -size_t mbedtls_dhm_get_bitlen( const mbedtls_dhm_context *ctx ) +size_t mbedtls_dhm_get_bitlen(const mbedtls_dhm_context *ctx) { - return( mbedtls_mpi_bitlen( &ctx->P ) ); + return mbedtls_mpi_bitlen(&ctx->P); } -size_t mbedtls_dhm_get_len( const mbedtls_dhm_context *ctx ) +size_t mbedtls_dhm_get_len(const mbedtls_dhm_context *ctx) { - return( mbedtls_mpi_size( &ctx->P ) ); + return mbedtls_mpi_size(&ctx->P); } -int mbedtls_dhm_get_value( const mbedtls_dhm_context *ctx, - mbedtls_dhm_parameter param, - mbedtls_mpi *dest ) +int mbedtls_dhm_get_value(const mbedtls_dhm_context *ctx, + mbedtls_dhm_parameter param, + mbedtls_mpi *dest) { const mbedtls_mpi *src = NULL; - switch( param ) - { + switch (param) { case MBEDTLS_DHM_PARAM_P: src = &ctx->P; break; @@ -146,191 +147,202 @@ int mbedtls_dhm_get_value( const mbedtls_dhm_context *ctx, src = &ctx->K; break; default: - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; } - return( mbedtls_mpi_copy( dest, src ) ); + return mbedtls_mpi_copy(dest, src); } /* * Parse the ServerKeyExchange parameters */ -int mbedtls_dhm_read_params( mbedtls_dhm_context *ctx, - unsigned char **p, - const unsigned char *end ) +int mbedtls_dhm_read_params(mbedtls_dhm_context *ctx, + unsigned char **p, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = dhm_read_bignum( &ctx->P, p, end ) ) != 0 || - ( ret = dhm_read_bignum( &ctx->G, p, end ) ) != 0 || - ( ret = dhm_read_bignum( &ctx->GY, p, end ) ) != 0 ) - return( ret ); + if ((ret = dhm_read_bignum(&ctx->P, p, end)) != 0 || + (ret = dhm_read_bignum(&ctx->G, p, end)) != 0 || + (ret = dhm_read_bignum(&ctx->GY, p, end)) != 0) { + return ret; + } - if( ( ret = dhm_check_range( &ctx->GY, &ctx->P ) ) != 0 ) - return( ret ); + if ((ret = dhm_check_range(&ctx->GY, &ctx->P)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* * Pick a random R in the range [2, M-2] for blinding or key generation. */ -static int dhm_random_below( mbedtls_mpi *R, const mbedtls_mpi *M, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int dhm_random_below(mbedtls_mpi *R, const mbedtls_mpi *M, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret; - MBEDTLS_MPI_CHK( mbedtls_mpi_random( R, 3, M, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( R, R, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_random(R, 3, M, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(R, R, 1)); cleanup: - return( ret ); + return ret; } -static int dhm_make_common( mbedtls_dhm_context *ctx, int x_size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int dhm_make_common(mbedtls_dhm_context *ctx, int x_size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = 0; - if( mbedtls_mpi_cmp_int( &ctx->P, 0 ) == 0 ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); - if( x_size < 0 ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); - - if( (unsigned) x_size < mbedtls_mpi_size( &ctx->P ) ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->X, x_size, f_rng, p_rng ) ); + if (mbedtls_mpi_cmp_int(&ctx->P, 0) == 0) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; } - else - { + if (x_size < 0) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } + + if ((unsigned) x_size < mbedtls_mpi_size(&ctx->P)) { + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&ctx->X, x_size, f_rng, p_rng)); + } else { /* Generate X as large as possible ( <= P - 2 ) */ - ret = dhm_random_below( &ctx->X, &ctx->P, f_rng, p_rng ); - if( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) - return( MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED ); - if( ret != 0 ) - return( ret ); + ret = dhm_random_below(&ctx->X, &ctx->P, f_rng, p_rng); + if (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { + return MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED; + } + if (ret != 0) { + return ret; + } } /* * Calculate GX = G^X mod P */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->GX, &ctx->G, &ctx->X, - &ctx->P , &ctx->RP ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->GX, &ctx->G, &ctx->X, + &ctx->P, &ctx->RP)); - if( ( ret = dhm_check_range( &ctx->GX, &ctx->P ) ) != 0 ) - return( ret ); + if ((ret = dhm_check_range(&ctx->GX, &ctx->P)) != 0) { + return ret; + } cleanup: - return( ret ); + return ret; } /* * Setup and write the ServerKeyExchange parameters */ -int mbedtls_dhm_make_params( mbedtls_dhm_context *ctx, int x_size, - unsigned char *output, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_dhm_make_params(mbedtls_dhm_context *ctx, int x_size, + unsigned char *output, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret; size_t n1, n2, n3; unsigned char *p; - ret = dhm_make_common( ctx, x_size, f_rng, p_rng ); - if( ret != 0 ) + ret = dhm_make_common(ctx, x_size, f_rng, p_rng); + if (ret != 0) { goto cleanup; + } /* * Export P, G, GX. RFC 5246 §4.4 states that "leading zero octets are * not required". We omit leading zeros for compactness. */ -#define DHM_MPI_EXPORT( X, n ) \ +#define DHM_MPI_EXPORT(X, n) \ do { \ - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( ( X ), \ - p + 2, \ - ( n ) ) ); \ - *p++ = MBEDTLS_BYTE_1( n ); \ - *p++ = MBEDTLS_BYTE_0( n ); \ - p += ( n ); \ - } while( 0 ) + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary((X), \ + p + 2, \ + (n))); \ + *p++ = MBEDTLS_BYTE_1(n); \ + *p++ = MBEDTLS_BYTE_0(n); \ + p += (n); \ + } while (0) - n1 = mbedtls_mpi_size( &ctx->P ); - n2 = mbedtls_mpi_size( &ctx->G ); - n3 = mbedtls_mpi_size( &ctx->GX ); + n1 = mbedtls_mpi_size(&ctx->P); + n2 = mbedtls_mpi_size(&ctx->G); + n3 = mbedtls_mpi_size(&ctx->GX); p = output; - DHM_MPI_EXPORT( &ctx->P , n1 ); - DHM_MPI_EXPORT( &ctx->G , n2 ); - DHM_MPI_EXPORT( &ctx->GX, n3 ); + DHM_MPI_EXPORT(&ctx->P, n1); + DHM_MPI_EXPORT(&ctx->G, n2); + DHM_MPI_EXPORT(&ctx->GX, n3); *olen = p - output; cleanup: - if( ret != 0 && ret > -128 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED, ret ); - return( ret ); + if (ret != 0 && ret > -128) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED, ret); + } + return ret; } /* * Set prime modulus and generator */ -int mbedtls_dhm_set_group( mbedtls_dhm_context *ctx, - const mbedtls_mpi *P, - const mbedtls_mpi *G ) +int mbedtls_dhm_set_group(mbedtls_dhm_context *ctx, + const mbedtls_mpi *P, + const mbedtls_mpi *G) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_mpi_copy( &ctx->P, P ) ) != 0 || - ( ret = mbedtls_mpi_copy( &ctx->G, G ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_SET_GROUP_FAILED, ret ) ); + if ((ret = mbedtls_mpi_copy(&ctx->P, P)) != 0 || + (ret = mbedtls_mpi_copy(&ctx->G, G)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_SET_GROUP_FAILED, ret); } - return( 0 ); + return 0; } /* * Import the peer's public value G^Y */ -int mbedtls_dhm_read_public( mbedtls_dhm_context *ctx, - const unsigned char *input, size_t ilen ) +int mbedtls_dhm_read_public(mbedtls_dhm_context *ctx, + const unsigned char *input, size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ilen < 1 || ilen > mbedtls_dhm_get_len( ctx ) ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if (ilen < 1 || ilen > mbedtls_dhm_get_len(ctx)) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - if( ( ret = mbedtls_mpi_read_binary( &ctx->GY, input, ilen ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED, ret ) ); + if ((ret = mbedtls_mpi_read_binary(&ctx->GY, input, ilen)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED, ret); + } - return( 0 ); + return 0; } /* * Create own private value X and export G^X */ -int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, - unsigned char *output, size_t olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_dhm_make_public(mbedtls_dhm_context *ctx, int x_size, + unsigned char *output, size_t olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret; - if( olen < 1 || olen > mbedtls_dhm_get_len( ctx ) ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if (olen < 1 || olen > mbedtls_dhm_get_len(ctx)) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - ret = dhm_make_common( ctx, x_size, f_rng, p_rng ); - if( ret == MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED ) - return( MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED ); - if( ret != 0 ) + ret = dhm_make_common(ctx, x_size, f_rng, p_rng); + if (ret == MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED) { + return MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED; + } + if (ret != 0) { goto cleanup; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->GX, output, olen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->GX, output, olen)); cleanup: - if( ret != 0 && ret > -128 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED, ret ); - return( ret ); + if (ret != 0 && ret > -128) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED, ret); + } + return ret; } @@ -340,40 +352,38 @@ cleanup: * DSS, and other systems. In : Advances in Cryptology-CRYPTO'96. Springer * Berlin Heidelberg, 1996. p. 104-113. */ -static int dhm_update_blinding( mbedtls_dhm_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int dhm_update_blinding(mbedtls_dhm_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret; mbedtls_mpi R; - mbedtls_mpi_init( &R ); + mbedtls_mpi_init(&R); /* * Don't use any blinding the first time a particular X is used, * but remember it to use blinding next time. */ - if( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->pX ) != 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &ctx->pX, &ctx->X ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &ctx->Vi, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &ctx->Vf, 1 ) ); + if (mbedtls_mpi_cmp_mpi(&ctx->X, &ctx->pX) != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&ctx->pX, &ctx->X)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&ctx->Vi, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&ctx->Vf, 1)); - return( 0 ); + return 0; } /* * Ok, we need blinding. Can we re-use existing values? * If yes, just update them by squaring them. */ - if( mbedtls_mpi_cmp_int( &ctx->Vi, 1 ) != 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vi, &ctx->Vi ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->P ) ); + if (mbedtls_mpi_cmp_int(&ctx->Vi, 1) != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vi, &ctx->Vi)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->P)); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vf, &ctx->Vf ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vf, &ctx->Vf)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P)); - return( 0 ); + return 0; } /* @@ -381,103 +391,108 @@ static int dhm_update_blinding( mbedtls_dhm_context *ctx, */ /* Vi = random( 2, P-2 ) */ - MBEDTLS_MPI_CHK( dhm_random_below( &ctx->Vi, &ctx->P, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(dhm_random_below(&ctx->Vi, &ctx->P, f_rng, p_rng)); /* Vf = Vi^-X mod P * First compute Vi^-1 = R * (R Vi)^-1, (avoiding leaks from inv_mod), * then elevate to the Xth power. */ - MBEDTLS_MPI_CHK( dhm_random_below( &R, &ctx->P, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vi, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->P ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->Vf, &ctx->Vf, &ctx->P ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vf, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->P ) ); + MBEDTLS_MPI_CHK(dhm_random_below(&R, &ctx->P, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vi, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P)); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&ctx->Vf, &ctx->Vf, &ctx->P)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vf, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->P)); - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vf, &ctx->Vf, &ctx->X, &ctx->P, &ctx->RP ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->Vf, &ctx->Vf, &ctx->X, &ctx->P, &ctx->RP)); cleanup: - mbedtls_mpi_free( &R ); + mbedtls_mpi_free(&R); - return( ret ); + return ret; } /* * Derive and export the shared secret (G^Y)^X mod P */ -int mbedtls_dhm_calc_secret( mbedtls_dhm_context *ctx, - unsigned char *output, size_t output_size, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_dhm_calc_secret(mbedtls_dhm_context *ctx, + unsigned char *output, size_t output_size, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi GYb; - if( f_rng == NULL ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - if( output_size < mbedtls_dhm_get_len( ctx ) ) - return( MBEDTLS_ERR_DHM_BAD_INPUT_DATA ); + if (output_size < mbedtls_dhm_get_len(ctx)) { + return MBEDTLS_ERR_DHM_BAD_INPUT_DATA; + } - if( ( ret = dhm_check_range( &ctx->GY, &ctx->P ) ) != 0 ) - return( ret ); + if ((ret = dhm_check_range(&ctx->GY, &ctx->P)) != 0) { + return ret; + } - mbedtls_mpi_init( &GYb ); + mbedtls_mpi_init(&GYb); /* Blind peer's value */ - MBEDTLS_MPI_CHK( dhm_update_blinding( ctx, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &GYb, &ctx->GY, &ctx->Vi ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &GYb, &GYb, &ctx->P ) ); + MBEDTLS_MPI_CHK(dhm_update_blinding(ctx, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&GYb, &ctx->GY, &ctx->Vi)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&GYb, &GYb, &ctx->P)); /* Do modular exponentiation */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->K, &GYb, &ctx->X, - &ctx->P, &ctx->RP ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->K, &GYb, &ctx->X, + &ctx->P, &ctx->RP)); /* Unblind secret value */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->K, &ctx->K, &ctx->Vf ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->K, &ctx->K, &ctx->P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->K, &ctx->K, &ctx->Vf)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->K, &ctx->K, &ctx->P)); /* Output the secret without any leading zero byte. This is mandatory * for TLS per RFC 5246 §8.1.2. */ - *olen = mbedtls_mpi_size( &ctx->K ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->K, output, *olen ) ); + *olen = mbedtls_mpi_size(&ctx->K); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->K, output, *olen)); cleanup: - mbedtls_mpi_free( &GYb ); + mbedtls_mpi_free(&GYb); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_CALC_SECRET_FAILED, ret ) ); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED, ret); + } - return( 0 ); + return 0; } /* * Free the components of a DHM key */ -void mbedtls_dhm_free( mbedtls_dhm_context *ctx ) +void mbedtls_dhm_free(mbedtls_dhm_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_mpi_free( &ctx->pX ); - mbedtls_mpi_free( &ctx->Vf ); - mbedtls_mpi_free( &ctx->Vi ); - mbedtls_mpi_free( &ctx->RP ); - mbedtls_mpi_free( &ctx->K ); - mbedtls_mpi_free( &ctx->GY ); - mbedtls_mpi_free( &ctx->GX ); - mbedtls_mpi_free( &ctx->X ); - mbedtls_mpi_free( &ctx->G ); - mbedtls_mpi_free( &ctx->P ); + mbedtls_mpi_free(&ctx->pX); + mbedtls_mpi_free(&ctx->Vf); + mbedtls_mpi_free(&ctx->Vi); + mbedtls_mpi_free(&ctx->RP); + mbedtls_mpi_free(&ctx->K); + mbedtls_mpi_free(&ctx->GY); + mbedtls_mpi_free(&ctx->GX); + mbedtls_mpi_free(&ctx->X); + mbedtls_mpi_free(&ctx->G); + mbedtls_mpi_free(&ctx->P); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_dhm_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_dhm_context)); } #if defined(MBEDTLS_ASN1_PARSE_C) /* * Parse DHM parameters */ -int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, - size_t dhminlen ) +int mbedtls_dhm_parse_dhm(mbedtls_dhm_context *dhm, const unsigned char *dhmin, + size_t dhminlen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -487,28 +502,28 @@ int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, #endif /* MBEDTLS_PEM_PARSE_C */ #if defined(MBEDTLS_PEM_PARSE_C) - mbedtls_pem_init( &pem ); + mbedtls_pem_init(&pem); /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( dhminlen == 0 || dhmin[dhminlen - 1] != '\0' ) + if (dhminlen == 0 || dhmin[dhminlen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN DH PARAMETERS-----", - "-----END DH PARAMETERS-----", - dhmin, NULL, 0, &dhminlen ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN DH PARAMETERS-----", + "-----END DH PARAMETERS-----", + dhmin, NULL, 0, &dhminlen); + } - if( ret == 0 ) - { + if (ret == 0) { /* * Was PEM encoded */ dhminlen = pem.buflen; - } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { goto exit; + } - p = ( ret == 0 ) ? pem.buf : (unsigned char *) dhmin; + p = (ret == 0) ? pem.buf : (unsigned char *) dhmin; #else p = (unsigned char *) dhmin; #endif /* MBEDTLS_PEM_PARSE_C */ @@ -521,39 +536,34 @@ int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, * privateValueLength INTEGER OPTIONAL * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_INVALID_FORMAT, ret ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret); goto exit; } end = p + len; - if( ( ret = mbedtls_asn1_get_mpi( &p, end, &dhm->P ) ) != 0 || - ( ret = mbedtls_asn1_get_mpi( &p, end, &dhm->G ) ) != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_INVALID_FORMAT, ret ); + if ((ret = mbedtls_asn1_get_mpi(&p, end, &dhm->P)) != 0 || + (ret = mbedtls_asn1_get_mpi(&p, end, &dhm->G)) != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret); goto exit; } - if( p != end ) - { + if (p != end) { /* This might be the optional privateValueLength. * If so, we can cleanly discard it */ mbedtls_mpi rec; - mbedtls_mpi_init( &rec ); - ret = mbedtls_asn1_get_mpi( &p, end, &rec ); - mbedtls_mpi_free( &rec ); - if ( ret != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_INVALID_FORMAT, ret ); + mbedtls_mpi_init(&rec); + ret = mbedtls_asn1_get_mpi(&p, end, &rec); + mbedtls_mpi_free(&rec); + if (ret != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, ret); goto exit; } - if ( p != end ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_DHM_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (p != end) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_DHM_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); goto exit; } } @@ -562,12 +572,13 @@ int mbedtls_dhm_parse_dhm( mbedtls_dhm_context *dhm, const unsigned char *dhmin, exit: #if defined(MBEDTLS_PEM_PARSE_C) - mbedtls_pem_free( &pem ); + mbedtls_pem_free(&pem); #endif - if( ret != 0 ) - mbedtls_dhm_free( dhm ); + if (ret != 0) { + mbedtls_dhm_free(dhm); + } - return( ret ); + return ret; } #if defined(MBEDTLS_FS_IO) @@ -578,70 +589,70 @@ exit: * A terminating null byte is always appended. It is included in the announced * length only if the data looks like it is PEM encoded. */ -static int load_file( const char *path, unsigned char **buf, size_t *n ) +static int load_file(const char *path, unsigned char **buf, size_t *n) { FILE *f; long size; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_DHM_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_DHM_FILE_IO_ERROR; + } /* The data loaded here is public, so don't bother disabling buffering. */ - fseek( f, 0, SEEK_END ); - if( ( size = ftell( f ) ) == -1 ) - { - fclose( f ); - return( MBEDTLS_ERR_DHM_FILE_IO_ERROR ); + fseek(f, 0, SEEK_END); + if ((size = ftell(f)) == -1) { + fclose(f); + return MBEDTLS_ERR_DHM_FILE_IO_ERROR; } - fseek( f, 0, SEEK_SET ); + fseek(f, 0, SEEK_SET); *n = (size_t) size; - if( *n + 1 == 0 || - ( *buf = mbedtls_calloc( 1, *n + 1 ) ) == NULL ) - { - fclose( f ); - return( MBEDTLS_ERR_DHM_ALLOC_FAILED ); + if (*n + 1 == 0 || + (*buf = mbedtls_calloc(1, *n + 1)) == NULL) { + fclose(f); + return MBEDTLS_ERR_DHM_ALLOC_FAILED; } - if( fread( *buf, 1, *n, f ) != *n ) - { - fclose( f ); + if (fread(*buf, 1, *n, f) != *n) { + fclose(f); - mbedtls_platform_zeroize( *buf, *n + 1 ); - mbedtls_free( *buf ); + mbedtls_platform_zeroize(*buf, *n + 1); + mbedtls_free(*buf); - return( MBEDTLS_ERR_DHM_FILE_IO_ERROR ); + return MBEDTLS_ERR_DHM_FILE_IO_ERROR; } - fclose( f ); + fclose(f); (*buf)[*n] = '\0'; - if( strstr( (const char *) *buf, "-----BEGIN " ) != NULL ) + if (strstr((const char *) *buf, "-----BEGIN ") != NULL) { ++*n; + } - return( 0 ); + return 0; } /* * Load and parse DHM parameters */ -int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ) +int mbedtls_dhm_parse_dhmfile(mbedtls_dhm_context *dhm, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = load_file(path, &buf, &n)) != 0) { + return ret; + } - ret = mbedtls_dhm_parse_dhm( dhm, buf, n ); + ret = mbedtls_dhm_parse_dhm(dhm, buf, n); - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ #endif /* MBEDTLS_ASN1_PARSE_C */ @@ -651,60 +662,63 @@ int mbedtls_dhm_parse_dhmfile( mbedtls_dhm_context *dhm, const char *path ) #if defined(MBEDTLS_PEM_PARSE_C) static const char mbedtls_test_dhm_params[] = -"-----BEGIN DH PARAMETERS-----\r\n" -"MIGHAoGBAJ419DBEOgmQTzo5qXl5fQcN9TN455wkOL7052HzxxRVMyhYmwQcgJvh\r\n" -"1sa18fyfR9OiVEMYglOpkqVoGLN7qd5aQNNi5W7/C+VBdHTBJcGZJyyP5B3qcz32\r\n" -"9mLJKudlVudV0Qxk5qUJaPZ/xupz0NyoVpviuiBOI1gNi8ovSXWzAgEC\r\n" -"-----END DH PARAMETERS-----\r\n"; + "-----BEGIN DH PARAMETERS-----\r\n" + "MIGHAoGBAJ419DBEOgmQTzo5qXl5fQcN9TN455wkOL7052HzxxRVMyhYmwQcgJvh\r\n" + "1sa18fyfR9OiVEMYglOpkqVoGLN7qd5aQNNi5W7/C+VBdHTBJcGZJyyP5B3qcz32\r\n" + "9mLJKudlVudV0Qxk5qUJaPZ/xupz0NyoVpviuiBOI1gNi8ovSXWzAgEC\r\n" + "-----END DH PARAMETERS-----\r\n"; #else /* MBEDTLS_PEM_PARSE_C */ static const char mbedtls_test_dhm_params[] = { - 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x35, 0xf4, 0x30, 0x44, - 0x3a, 0x09, 0x90, 0x4f, 0x3a, 0x39, 0xa9, 0x79, 0x79, 0x7d, 0x07, 0x0d, - 0xf5, 0x33, 0x78, 0xe7, 0x9c, 0x24, 0x38, 0xbe, 0xf4, 0xe7, 0x61, 0xf3, - 0xc7, 0x14, 0x55, 0x33, 0x28, 0x58, 0x9b, 0x04, 0x1c, 0x80, 0x9b, 0xe1, - 0xd6, 0xc6, 0xb5, 0xf1, 0xfc, 0x9f, 0x47, 0xd3, 0xa2, 0x54, 0x43, 0x18, - 0x82, 0x53, 0xa9, 0x92, 0xa5, 0x68, 0x18, 0xb3, 0x7b, 0xa9, 0xde, 0x5a, - 0x40, 0xd3, 0x62, 0xe5, 0x6e, 0xff, 0x0b, 0xe5, 0x41, 0x74, 0x74, 0xc1, - 0x25, 0xc1, 0x99, 0x27, 0x2c, 0x8f, 0xe4, 0x1d, 0xea, 0x73, 0x3d, 0xf6, - 0xf6, 0x62, 0xc9, 0x2a, 0xe7, 0x65, 0x56, 0xe7, 0x55, 0xd1, 0x0c, 0x64, - 0xe6, 0xa5, 0x09, 0x68, 0xf6, 0x7f, 0xc6, 0xea, 0x73, 0xd0, 0xdc, 0xa8, - 0x56, 0x9b, 0xe2, 0xba, 0x20, 0x4e, 0x23, 0x58, 0x0d, 0x8b, 0xca, 0x2f, - 0x49, 0x75, 0xb3, 0x02, 0x01, 0x02 }; + 0x30, 0x81, 0x87, 0x02, 0x81, 0x81, 0x00, 0x9e, 0x35, 0xf4, 0x30, 0x44, + 0x3a, 0x09, 0x90, 0x4f, 0x3a, 0x39, 0xa9, 0x79, 0x79, 0x7d, 0x07, 0x0d, + 0xf5, 0x33, 0x78, 0xe7, 0x9c, 0x24, 0x38, 0xbe, 0xf4, 0xe7, 0x61, 0xf3, + 0xc7, 0x14, 0x55, 0x33, 0x28, 0x58, 0x9b, 0x04, 0x1c, 0x80, 0x9b, 0xe1, + 0xd6, 0xc6, 0xb5, 0xf1, 0xfc, 0x9f, 0x47, 0xd3, 0xa2, 0x54, 0x43, 0x18, + 0x82, 0x53, 0xa9, 0x92, 0xa5, 0x68, 0x18, 0xb3, 0x7b, 0xa9, 0xde, 0x5a, + 0x40, 0xd3, 0x62, 0xe5, 0x6e, 0xff, 0x0b, 0xe5, 0x41, 0x74, 0x74, 0xc1, + 0x25, 0xc1, 0x99, 0x27, 0x2c, 0x8f, 0xe4, 0x1d, 0xea, 0x73, 0x3d, 0xf6, + 0xf6, 0x62, 0xc9, 0x2a, 0xe7, 0x65, 0x56, 0xe7, 0x55, 0xd1, 0x0c, 0x64, + 0xe6, 0xa5, 0x09, 0x68, 0xf6, 0x7f, 0xc6, 0xea, 0x73, 0xd0, 0xdc, 0xa8, + 0x56, 0x9b, 0xe2, 0xba, 0x20, 0x4e, 0x23, 0x58, 0x0d, 0x8b, 0xca, 0x2f, + 0x49, 0x75, 0xb3, 0x02, 0x01, 0x02 +}; #endif /* MBEDTLS_PEM_PARSE_C */ -static const size_t mbedtls_test_dhm_params_len = sizeof( mbedtls_test_dhm_params ); +static const size_t mbedtls_test_dhm_params_len = sizeof(mbedtls_test_dhm_params); /* * Checkup routine */ -int mbedtls_dhm_self_test( int verbose ) +int mbedtls_dhm_self_test(int verbose) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_dhm_context dhm; - mbedtls_dhm_init( &dhm ); + mbedtls_dhm_init(&dhm); - if( verbose != 0 ) - mbedtls_printf( " DHM parameter load: " ); + if (verbose != 0) { + mbedtls_printf(" DHM parameter load: "); + } - if( ( ret = mbedtls_dhm_parse_dhm( &dhm, - (const unsigned char *) mbedtls_test_dhm_params, - mbedtls_test_dhm_params_len ) ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if ((ret = mbedtls_dhm_parse_dhm(&dhm, + (const unsigned char *) mbedtls_test_dhm_params, + mbedtls_test_dhm_params_len)) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n\n"); + } exit: - mbedtls_dhm_free( &dhm ); + mbedtls_dhm_free(&dhm); - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/ecdh.c b/library/ecdh.c index c9c2e06bd..b529af59c 100644 --- a/library/ecdh.c +++ b/library/ecdh.c @@ -39,20 +39,20 @@ typedef mbedtls_ecdh_context mbedtls_ecdh_context_mbed; #endif static mbedtls_ecp_group_id mbedtls_ecdh_grp_id( - const mbedtls_ecdh_context *ctx ) + const mbedtls_ecdh_context *ctx) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ctx->grp.id ); + return ctx->grp.id; #else - return( ctx->grp_id ); + return ctx->grp_id; #endif } -int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid ) +int mbedtls_ecdh_can_do(mbedtls_ecp_group_id gid) { /* At this time, all groups support ECDH. */ (void) gid; - return( 1 ); + return 1; } #if !defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) @@ -63,37 +63,38 @@ int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid ) * the output parameter 'd' across continuation calls. This would not be * acceptable for a public function but is OK here as we control call sites. */ -static int ecdh_gen_public_restartable( mbedtls_ecp_group *grp, - mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecdh_gen_public_restartable(mbedtls_ecp_group *grp, + mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); + restarting = (rs_ctx != NULL && rs_ctx->rsm != NULL); #endif /* If multiplication is in progress, we already generated a privkey */ - if( !restarting ) - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, d, f_rng, p_rng ) ); + if (!restarting) { + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, d, f_rng, p_rng)); + } - MBEDTLS_MPI_CHK( mbedtls_ecp_mul_restartable( grp, Q, d, &grp->G, - f_rng, p_rng, rs_ctx ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul_restartable(grp, Q, d, &grp->G, + f_rng, p_rng, rs_ctx)); cleanup: - return( ret ); + return ret; } /* * Generate public key */ -int mbedtls_ecdh_gen_public( mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( ecdh_gen_public_restartable( grp, d, Q, f_rng, p_rng, NULL ) ); + return ecdh_gen_public_restartable(grp, d, Q, f_rng, p_rng, NULL); } #endif /* !MBEDTLS_ECDH_GEN_PUBLIC_ALT */ @@ -101,73 +102,72 @@ int mbedtls_ecdh_gen_public( mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp /* * Compute shared secret (SEC1 3.3.1) */ -static int ecdh_compute_shared_restartable( mbedtls_ecp_group *grp, - mbedtls_mpi *z, - const mbedtls_ecp_point *Q, const mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecdh_compute_shared_restartable(mbedtls_ecp_group *grp, + mbedtls_mpi *z, + const mbedtls_ecp_point *Q, const mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point P; - mbedtls_ecp_point_init( &P ); + mbedtls_ecp_point_init(&P); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul_restartable( grp, &P, d, Q, - f_rng, p_rng, rs_ctx ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul_restartable(grp, &P, d, Q, + f_rng, p_rng, rs_ctx)); - if( mbedtls_ecp_is_zero( &P ) ) - { + if (mbedtls_ecp_is_zero(&P)) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( z, &P.X ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(z, &P.X)); cleanup: - mbedtls_ecp_point_free( &P ); + mbedtls_ecp_point_free(&P); - return( ret ); + return ret; } /* * Compute shared secret (SEC1 3.3.1) */ -int mbedtls_ecdh_compute_shared( mbedtls_ecp_group *grp, mbedtls_mpi *z, - const mbedtls_ecp_point *Q, const mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z, + const mbedtls_ecp_point *Q, const mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( ecdh_compute_shared_restartable( grp, z, Q, d, - f_rng, p_rng, NULL ) ); + return ecdh_compute_shared_restartable(grp, z, Q, d, + f_rng, p_rng, NULL); } #endif /* !MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ -static void ecdh_init_internal( mbedtls_ecdh_context_mbed *ctx ) +static void ecdh_init_internal(mbedtls_ecdh_context_mbed *ctx) { - mbedtls_ecp_group_init( &ctx->grp ); - mbedtls_mpi_init( &ctx->d ); - mbedtls_ecp_point_init( &ctx->Q ); - mbedtls_ecp_point_init( &ctx->Qp ); - mbedtls_mpi_init( &ctx->z ); + mbedtls_ecp_group_init(&ctx->grp); + mbedtls_mpi_init(&ctx->d); + mbedtls_ecp_point_init(&ctx->Q); + mbedtls_ecp_point_init(&ctx->Qp); + mbedtls_mpi_init(&ctx->z); #if defined(MBEDTLS_ECP_RESTARTABLE) - mbedtls_ecp_restart_init( &ctx->rs ); + mbedtls_ecp_restart_init(&ctx->rs); #endif } /* * Initialize context */ -void mbedtls_ecdh_init( mbedtls_ecdh_context *ctx ) +void mbedtls_ecdh_init(mbedtls_ecdh_context *ctx) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - ecdh_init_internal( ctx ); - mbedtls_ecp_point_init( &ctx->Vi ); - mbedtls_ecp_point_init( &ctx->Vf ); - mbedtls_mpi_init( &ctx->_d ); + ecdh_init_internal(ctx); + mbedtls_ecp_point_init(&ctx->Vi); + mbedtls_ecp_point_init(&ctx->Vf); + mbedtls_mpi_init(&ctx->_d); #else - memset( ctx, 0, sizeof( mbedtls_ecdh_context ) ); + memset(ctx, 0, sizeof(mbedtls_ecdh_context)); ctx->var = MBEDTLS_ECDH_VARIANT_NONE; #endif @@ -177,57 +177,55 @@ void mbedtls_ecdh_init( mbedtls_ecdh_context *ctx ) #endif } -static int ecdh_setup_internal( mbedtls_ecdh_context_mbed *ctx, - mbedtls_ecp_group_id grp_id ) +static int ecdh_setup_internal(mbedtls_ecdh_context_mbed *ctx, + mbedtls_ecp_group_id grp_id) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ecp_group_load( &ctx->grp, grp_id ); - if( ret != 0 ) - { - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + ret = mbedtls_ecp_group_load(&ctx->grp, grp_id); + if (ret != 0) { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; } - return( 0 ); + return 0; } /* * Setup context */ -int mbedtls_ecdh_setup( mbedtls_ecdh_context *ctx, mbedtls_ecp_group_id grp_id ) +int mbedtls_ecdh_setup(mbedtls_ecdh_context *ctx, mbedtls_ecp_group_id grp_id) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_setup_internal( ctx, grp_id ) ); + return ecdh_setup_internal(ctx, grp_id); #else - switch( grp_id ) - { + switch (grp_id) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECP_DP_CURVE25519: ctx->point_format = MBEDTLS_ECP_PF_COMPRESSED; ctx->var = MBEDTLS_ECDH_VARIANT_EVEREST; ctx->grp_id = grp_id; - return( mbedtls_everest_setup( &ctx->ctx.everest_ecdh, grp_id ) ); + return mbedtls_everest_setup(&ctx->ctx.everest_ecdh, grp_id); #endif default: ctx->point_format = MBEDTLS_ECP_PF_UNCOMPRESSED; ctx->var = MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0; ctx->grp_id = grp_id; - ecdh_init_internal( &ctx->ctx.mbed_ecdh ); - return( ecdh_setup_internal( &ctx->ctx.mbed_ecdh, grp_id ) ); + ecdh_init_internal(&ctx->ctx.mbed_ecdh); + return ecdh_setup_internal(&ctx->ctx.mbed_ecdh, grp_id); } #endif } -static void ecdh_free_internal( mbedtls_ecdh_context_mbed *ctx ) +static void ecdh_free_internal(mbedtls_ecdh_context_mbed *ctx) { - mbedtls_ecp_group_free( &ctx->grp ); - mbedtls_mpi_free( &ctx->d ); - mbedtls_ecp_point_free( &ctx->Q ); - mbedtls_ecp_point_free( &ctx->Qp ); - mbedtls_mpi_free( &ctx->z ); + mbedtls_ecp_group_free(&ctx->grp); + mbedtls_mpi_free(&ctx->d); + mbedtls_ecp_point_free(&ctx->Q); + mbedtls_ecp_point_free(&ctx->Qp); + mbedtls_mpi_free(&ctx->z); #if defined(MBEDTLS_ECP_RESTARTABLE) - mbedtls_ecp_restart_free( &ctx->rs ); + mbedtls_ecp_restart_free(&ctx->rs); #endif } @@ -235,7 +233,7 @@ static void ecdh_free_internal( mbedtls_ecdh_context_mbed *ctx ) /* * Enable restartable operations for context */ -void mbedtls_ecdh_enable_restart( mbedtls_ecdh_context *ctx ) +void mbedtls_ecdh_enable_restart(mbedtls_ecdh_context *ctx) { ctx->restart_enabled = 1; } @@ -244,26 +242,26 @@ void mbedtls_ecdh_enable_restart( mbedtls_ecdh_context *ctx ) /* * Free context */ -void mbedtls_ecdh_free( mbedtls_ecdh_context *ctx ) +void mbedtls_ecdh_free(mbedtls_ecdh_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - mbedtls_ecp_point_free( &ctx->Vi ); - mbedtls_ecp_point_free( &ctx->Vf ); - mbedtls_mpi_free( &ctx->_d ); - ecdh_free_internal( ctx ); + mbedtls_ecp_point_free(&ctx->Vi); + mbedtls_ecp_point_free(&ctx->Vf); + mbedtls_mpi_free(&ctx->_d); + ecdh_free_internal(ctx); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - mbedtls_everest_free( &ctx->ctx.everest_ecdh ); + mbedtls_everest_free(&ctx->ctx.everest_ecdh); break; #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - ecdh_free_internal( &ctx->ctx.mbed_ecdh ); + ecdh_free_internal(&ctx->ctx.mbed_ecdh); break; default: break; @@ -275,14 +273,14 @@ void mbedtls_ecdh_free( mbedtls_ecdh_context *ctx ) #endif } -static int ecdh_make_params_internal( mbedtls_ecdh_context_mbed *ctx, - size_t *olen, int point_format, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, - unsigned char *, - size_t), - void *p_rng, - int restart_enabled ) +static int ecdh_make_params_internal(mbedtls_ecdh_context_mbed *ctx, + size_t *olen, int point_format, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, + unsigned char *, + size_t), + void *p_rng, + int restart_enabled) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t grp_len, pt_len; @@ -290,40 +288,46 @@ static int ecdh_make_params_internal( mbedtls_ecdh_context_mbed *ctx, mbedtls_ecp_restart_ctx *rs_ctx = NULL; #endif - if( ctx->grp.pbits == 0 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (ctx->grp.pbits == 0) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( restart_enabled ) + if (restart_enabled) { rs_ctx = &ctx->rs; + } #else (void) restart_enabled; #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ( ret = ecdh_gen_public_restartable( &ctx->grp, &ctx->d, &ctx->Q, - f_rng, p_rng, rs_ctx ) ) != 0 ) - return( ret ); + if ((ret = ecdh_gen_public_restartable(&ctx->grp, &ctx->d, &ctx->Q, + f_rng, p_rng, rs_ctx)) != 0) { + return ret; + } #else - if( ( ret = mbedtls_ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, - f_rng, p_rng ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecdh_gen_public(&ctx->grp, &ctx->d, &ctx->Q, + f_rng, p_rng)) != 0) { + return ret; + } #endif /* MBEDTLS_ECP_RESTARTABLE */ - if( ( ret = mbedtls_ecp_tls_write_group( &ctx->grp, &grp_len, buf, - blen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_tls_write_group(&ctx->grp, &grp_len, buf, + blen)) != 0) { + return ret; + } buf += grp_len; blen -= grp_len; - if( ( ret = mbedtls_ecp_tls_write_point( &ctx->grp, &ctx->Q, point_format, - &pt_len, buf, blen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_tls_write_point(&ctx->grp, &ctx->Q, point_format, + &pt_len, buf, blen)) != 0) { + return ret; + } *olen = grp_len + pt_len; - return( 0 ); + return 0; } /* @@ -333,10 +337,10 @@ static int ecdh_make_params_internal( mbedtls_ecdh_context_mbed *ctx, * ECPoint public; * } ServerECDHParams; */ -int mbedtls_ecdh_make_params( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdh_make_params(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int restart_enabled = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) @@ -346,33 +350,32 @@ int mbedtls_ecdh_make_params( mbedtls_ecdh_context *ctx, size_t *olen, #endif #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_make_params_internal( ctx, olen, ctx->point_format, buf, blen, - f_rng, p_rng, restart_enabled ) ); + return ecdh_make_params_internal(ctx, olen, ctx->point_format, buf, blen, + f_rng, p_rng, restart_enabled); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - return( mbedtls_everest_make_params( &ctx->ctx.everest_ecdh, olen, - buf, blen, f_rng, p_rng ) ); + return mbedtls_everest_make_params(&ctx->ctx.everest_ecdh, olen, + buf, blen, f_rng, p_rng); #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_make_params_internal( &ctx->ctx.mbed_ecdh, olen, - ctx->point_format, buf, blen, - f_rng, p_rng, - restart_enabled ) ); + return ecdh_make_params_internal(&ctx->ctx.mbed_ecdh, olen, + ctx->point_format, buf, blen, + f_rng, p_rng, + restart_enabled); default: return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } -static int ecdh_read_params_internal( mbedtls_ecdh_context_mbed *ctx, - const unsigned char **buf, - const unsigned char *end ) +static int ecdh_read_params_internal(mbedtls_ecdh_context_mbed *ctx, + const unsigned char **buf, + const unsigned char *end) { - return( mbedtls_ecp_tls_read_point( &ctx->grp, &ctx->Qp, buf, - end - *buf ) ); + return mbedtls_ecp_tls_read_point(&ctx->grp, &ctx->Qp, buf, + end - *buf); } /* @@ -382,155 +385,162 @@ static int ecdh_read_params_internal( mbedtls_ecdh_context_mbed *ctx, * ECPoint public; * } ServerECDHParams; */ -int mbedtls_ecdh_read_params( mbedtls_ecdh_context *ctx, - const unsigned char **buf, - const unsigned char *end ) +int mbedtls_ecdh_read_params(mbedtls_ecdh_context *ctx, + const unsigned char **buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_group_id grp_id; - if( ( ret = mbedtls_ecp_tls_read_group_id( &grp_id, buf, end - *buf ) ) - != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_tls_read_group_id(&grp_id, buf, end - *buf)) + != 0) { + return ret; + } - if( ( ret = mbedtls_ecdh_setup( ctx, grp_id ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecdh_setup(ctx, grp_id)) != 0) { + return ret; + } #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_read_params_internal( ctx, buf, end ) ); + return ecdh_read_params_internal(ctx, buf, end); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - return( mbedtls_everest_read_params( &ctx->ctx.everest_ecdh, - buf, end) ); + return mbedtls_everest_read_params(&ctx->ctx.everest_ecdh, + buf, end); #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_read_params_internal( &ctx->ctx.mbed_ecdh, - buf, end ) ); + return ecdh_read_params_internal(&ctx->ctx.mbed_ecdh, + buf, end); default: return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } -static int ecdh_get_params_internal( mbedtls_ecdh_context_mbed *ctx, - const mbedtls_ecp_keypair *key, - mbedtls_ecdh_side side ) +static int ecdh_get_params_internal(mbedtls_ecdh_context_mbed *ctx, + const mbedtls_ecp_keypair *key, + mbedtls_ecdh_side side) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* If it's not our key, just import the public part as Qp */ - if( side == MBEDTLS_ECDH_THEIRS ) - return( mbedtls_ecp_copy( &ctx->Qp, &key->Q ) ); + if (side == MBEDTLS_ECDH_THEIRS) { + return mbedtls_ecp_copy(&ctx->Qp, &key->Q); + } /* Our key: import public (as Q) and private parts */ - if( side != MBEDTLS_ECDH_OURS ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (side != MBEDTLS_ECDH_OURS) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - if( ( ret = mbedtls_ecp_copy( &ctx->Q, &key->Q ) ) != 0 || - ( ret = mbedtls_mpi_copy( &ctx->d, &key->d ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_copy(&ctx->Q, &key->Q)) != 0 || + (ret = mbedtls_mpi_copy(&ctx->d, &key->d)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* * Get parameters from a keypair */ -int mbedtls_ecdh_get_params( mbedtls_ecdh_context *ctx, - const mbedtls_ecp_keypair *key, - mbedtls_ecdh_side side ) +int mbedtls_ecdh_get_params(mbedtls_ecdh_context *ctx, + const mbedtls_ecp_keypair *key, + mbedtls_ecdh_side side) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( side != MBEDTLS_ECDH_OURS && side != MBEDTLS_ECDH_THEIRS ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (side != MBEDTLS_ECDH_OURS && side != MBEDTLS_ECDH_THEIRS) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - if( mbedtls_ecdh_grp_id( ctx ) == MBEDTLS_ECP_DP_NONE ) - { + if (mbedtls_ecdh_grp_id(ctx) == MBEDTLS_ECP_DP_NONE) { /* This is the first call to get_params(). Set up the context * for use with the group. */ - if( ( ret = mbedtls_ecdh_setup( ctx, key->grp.id ) ) != 0 ) - return( ret ); - } - else - { + if ((ret = mbedtls_ecdh_setup(ctx, key->grp.id)) != 0) { + return ret; + } + } else { /* This is not the first call to get_params(). Check that the * current key's group is the same as the context's, which was set * from the first key's group. */ - if( mbedtls_ecdh_grp_id( ctx ) != key->grp.id ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (mbedtls_ecdh_grp_id(ctx) != key->grp.id) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } } #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_get_params_internal( ctx, key, side ) ); + return ecdh_get_params_internal(ctx, key, side); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: { mbedtls_everest_ecdh_side s = side == MBEDTLS_ECDH_OURS ? - MBEDTLS_EVEREST_ECDH_OURS : - MBEDTLS_EVEREST_ECDH_THEIRS; - return( mbedtls_everest_get_params( &ctx->ctx.everest_ecdh, - key, s) ); + MBEDTLS_EVEREST_ECDH_OURS : + MBEDTLS_EVEREST_ECDH_THEIRS; + return mbedtls_everest_get_params(&ctx->ctx.everest_ecdh, + key, s); } #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_get_params_internal( &ctx->ctx.mbed_ecdh, - key, side ) ); + return ecdh_get_params_internal(&ctx->ctx.mbed_ecdh, + key, side); default: return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } -static int ecdh_make_public_internal( mbedtls_ecdh_context_mbed *ctx, - size_t *olen, int point_format, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, - unsigned char *, - size_t), - void *p_rng, - int restart_enabled ) +static int ecdh_make_public_internal(mbedtls_ecdh_context_mbed *ctx, + size_t *olen, int point_format, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, + unsigned char *, + size_t), + void *p_rng, + int restart_enabled) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_ECP_RESTARTABLE) mbedtls_ecp_restart_ctx *rs_ctx = NULL; #endif - if( ctx->grp.pbits == 0 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (ctx->grp.pbits == 0) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( restart_enabled ) + if (restart_enabled) { rs_ctx = &ctx->rs; + } #else (void) restart_enabled; #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ( ret = ecdh_gen_public_restartable( &ctx->grp, &ctx->d, &ctx->Q, - f_rng, p_rng, rs_ctx ) ) != 0 ) - return( ret ); + if ((ret = ecdh_gen_public_restartable(&ctx->grp, &ctx->d, &ctx->Q, + f_rng, p_rng, rs_ctx)) != 0) { + return ret; + } #else - if( ( ret = mbedtls_ecdh_gen_public( &ctx->grp, &ctx->d, &ctx->Q, - f_rng, p_rng ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecdh_gen_public(&ctx->grp, &ctx->d, &ctx->Q, + f_rng, p_rng)) != 0) { + return ret; + } #endif /* MBEDTLS_ECP_RESTARTABLE */ - return mbedtls_ecp_tls_write_point( &ctx->grp, &ctx->Q, point_format, olen, - buf, blen ); + return mbedtls_ecp_tls_write_point(&ctx->grp, &ctx->Q, point_format, olen, + buf, blen); } /* * Setup and export the client public value */ -int mbedtls_ecdh_make_public( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdh_make_public(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int restart_enabled = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) @@ -538,125 +548,127 @@ int mbedtls_ecdh_make_public( mbedtls_ecdh_context *ctx, size_t *olen, #endif #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_make_public_internal( ctx, olen, ctx->point_format, buf, blen, - f_rng, p_rng, restart_enabled ) ); + return ecdh_make_public_internal(ctx, olen, ctx->point_format, buf, blen, + f_rng, p_rng, restart_enabled); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - return( mbedtls_everest_make_public( &ctx->ctx.everest_ecdh, olen, - buf, blen, f_rng, p_rng ) ); + return mbedtls_everest_make_public(&ctx->ctx.everest_ecdh, olen, + buf, blen, f_rng, p_rng); #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_make_public_internal( &ctx->ctx.mbed_ecdh, olen, - ctx->point_format, buf, blen, - f_rng, p_rng, - restart_enabled ) ); + return ecdh_make_public_internal(&ctx->ctx.mbed_ecdh, olen, + ctx->point_format, buf, blen, + f_rng, p_rng, + restart_enabled); default: return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } -static int ecdh_read_public_internal( mbedtls_ecdh_context_mbed *ctx, - const unsigned char *buf, size_t blen ) +static int ecdh_read_public_internal(mbedtls_ecdh_context_mbed *ctx, + const unsigned char *buf, size_t blen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; - if( ( ret = mbedtls_ecp_tls_read_point( &ctx->grp, &ctx->Qp, &p, - blen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_tls_read_point(&ctx->grp, &ctx->Qp, &p, + blen)) != 0) { + return ret; + } - if( (size_t)( p - buf ) != blen ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if ((size_t) (p - buf) != blen) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } /* * Parse and import the client's public value */ -int mbedtls_ecdh_read_public( mbedtls_ecdh_context *ctx, - const unsigned char *buf, size_t blen ) +int mbedtls_ecdh_read_public(mbedtls_ecdh_context *ctx, + const unsigned char *buf, size_t blen) { #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_read_public_internal( ctx, buf, blen ) ); + return ecdh_read_public_internal(ctx, buf, blen); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - return( mbedtls_everest_read_public( &ctx->ctx.everest_ecdh, - buf, blen ) ); + return mbedtls_everest_read_public(&ctx->ctx.everest_ecdh, + buf, blen); #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_read_public_internal( &ctx->ctx.mbed_ecdh, - buf, blen ) ); + return ecdh_read_public_internal(&ctx->ctx.mbed_ecdh, + buf, blen); default: return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } -static int ecdh_calc_secret_internal( mbedtls_ecdh_context_mbed *ctx, - size_t *olen, unsigned char *buf, - size_t blen, - int (*f_rng)(void *, - unsigned char *, - size_t), - void *p_rng, - int restart_enabled ) +static int ecdh_calc_secret_internal(mbedtls_ecdh_context_mbed *ctx, + size_t *olen, unsigned char *buf, + size_t blen, + int (*f_rng)(void *, + unsigned char *, + size_t), + void *p_rng, + int restart_enabled) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_ECP_RESTARTABLE) mbedtls_ecp_restart_ctx *rs_ctx = NULL; #endif - if( ctx == NULL || ctx->grp.pbits == 0 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->grp.pbits == 0) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( restart_enabled ) + if (restart_enabled) { rs_ctx = &ctx->rs; + } #else (void) restart_enabled; #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ( ret = ecdh_compute_shared_restartable( &ctx->grp, &ctx->z, &ctx->Qp, - &ctx->d, f_rng, p_rng, - rs_ctx ) ) != 0 ) - { - return( ret ); + if ((ret = ecdh_compute_shared_restartable(&ctx->grp, &ctx->z, &ctx->Qp, + &ctx->d, f_rng, p_rng, + rs_ctx)) != 0) { + return ret; } #else - if( ( ret = mbedtls_ecdh_compute_shared( &ctx->grp, &ctx->z, &ctx->Qp, - &ctx->d, f_rng, p_rng ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ecdh_compute_shared(&ctx->grp, &ctx->z, &ctx->Qp, + &ctx->d, f_rng, p_rng)) != 0) { + return ret; } #endif /* MBEDTLS_ECP_RESTARTABLE */ - if( mbedtls_mpi_size( &ctx->z ) > blen ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (mbedtls_mpi_size(&ctx->z) > blen) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - *olen = ctx->grp.pbits / 8 + ( ( ctx->grp.pbits % 8 ) != 0 ); + *olen = ctx->grp.pbits / 8 + ((ctx->grp.pbits % 8) != 0); - if( mbedtls_ecp_get_type( &ctx->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - return mbedtls_mpi_write_binary_le( &ctx->z, buf, *olen ); + if (mbedtls_ecp_get_type(&ctx->grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + return mbedtls_mpi_write_binary_le(&ctx->z, buf, *olen); + } - return mbedtls_mpi_write_binary( &ctx->z, buf, *olen ); + return mbedtls_mpi_write_binary(&ctx->z, buf, *olen); } /* * Derive and export the shared secret */ -int mbedtls_ecdh_calc_secret( mbedtls_ecdh_context *ctx, size_t *olen, - unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdh_calc_secret(mbedtls_ecdh_context *ctx, size_t *olen, + unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int restart_enabled = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) @@ -664,22 +676,21 @@ int mbedtls_ecdh_calc_secret( mbedtls_ecdh_context *ctx, size_t *olen, #endif #if defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - return( ecdh_calc_secret_internal( ctx, olen, buf, blen, f_rng, p_rng, - restart_enabled ) ); + return ecdh_calc_secret_internal(ctx, olen, buf, blen, f_rng, p_rng, + restart_enabled); #else - switch( ctx->var ) - { + switch (ctx->var) { #if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) case MBEDTLS_ECDH_VARIANT_EVEREST: - return( mbedtls_everest_calc_secret( &ctx->ctx.everest_ecdh, olen, - buf, blen, f_rng, p_rng ) ); + return mbedtls_everest_calc_secret(&ctx->ctx.everest_ecdh, olen, + buf, blen, f_rng, p_rng); #endif case MBEDTLS_ECDH_VARIANT_MBEDTLS_2_0: - return( ecdh_calc_secret_internal( &ctx->ctx.mbed_ecdh, olen, buf, - blen, f_rng, p_rng, - restart_enabled ) ); + return ecdh_calc_secret_internal(&ctx->ctx.mbed_ecdh, olen, buf, + blen, f_rng, p_rng, + restart_enabled); default: - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #endif } diff --git a/library/ecdsa.c b/library/ecdsa.c index c58e33155..3ddb82b1e 100644 --- a/library/ecdsa.c +++ b/library/ecdsa.c @@ -46,8 +46,7 @@ /* * Sub-context for ecdsa_verify() */ -struct mbedtls_ecdsa_restart_ver -{ +struct mbedtls_ecdsa_restart_ver { mbedtls_mpi u1, u2; /* intermediate values */ enum { /* what to do next? */ ecdsa_ver_init = 0, /* getting started */ @@ -58,32 +57,32 @@ struct mbedtls_ecdsa_restart_ver /* * Init verify restart sub-context */ -static void ecdsa_restart_ver_init( mbedtls_ecdsa_restart_ver_ctx *ctx ) +static void ecdsa_restart_ver_init(mbedtls_ecdsa_restart_ver_ctx *ctx) { - mbedtls_mpi_init( &ctx->u1 ); - mbedtls_mpi_init( &ctx->u2 ); + mbedtls_mpi_init(&ctx->u1); + mbedtls_mpi_init(&ctx->u2); ctx->state = ecdsa_ver_init; } /* * Free the components of a verify restart sub-context */ -static void ecdsa_restart_ver_free( mbedtls_ecdsa_restart_ver_ctx *ctx ) +static void ecdsa_restart_ver_free(mbedtls_ecdsa_restart_ver_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_mpi_free( &ctx->u1 ); - mbedtls_mpi_free( &ctx->u2 ); + mbedtls_mpi_free(&ctx->u1); + mbedtls_mpi_free(&ctx->u2); - ecdsa_restart_ver_init( ctx ); + ecdsa_restart_ver_init(ctx); } /* * Sub-context for ecdsa_sign() */ -struct mbedtls_ecdsa_restart_sig -{ +struct mbedtls_ecdsa_restart_sig { int sign_tries; int key_tries; mbedtls_mpi k; /* per-signature random */ @@ -98,33 +97,33 @@ struct mbedtls_ecdsa_restart_sig /* * Init verify sign sub-context */ -static void ecdsa_restart_sig_init( mbedtls_ecdsa_restart_sig_ctx *ctx ) +static void ecdsa_restart_sig_init(mbedtls_ecdsa_restart_sig_ctx *ctx) { ctx->sign_tries = 0; ctx->key_tries = 0; - mbedtls_mpi_init( &ctx->k ); - mbedtls_mpi_init( &ctx->r ); + mbedtls_mpi_init(&ctx->k); + mbedtls_mpi_init(&ctx->r); ctx->state = ecdsa_sig_init; } /* * Free the components of a sign restart sub-context */ -static void ecdsa_restart_sig_free( mbedtls_ecdsa_restart_sig_ctx *ctx ) +static void ecdsa_restart_sig_free(mbedtls_ecdsa_restart_sig_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_mpi_free( &ctx->k ); - mbedtls_mpi_free( &ctx->r ); + mbedtls_mpi_free(&ctx->k); + mbedtls_mpi_free(&ctx->r); } #if defined(MBEDTLS_ECDSA_DETERMINISTIC) /* * Sub-context for ecdsa_sign_det() */ -struct mbedtls_ecdsa_restart_det -{ +struct mbedtls_ecdsa_restart_det { mbedtls_hmac_drbg_context rng_ctx; /* DRBG state */ enum { /* what to do next? */ ecdsa_det_init = 0, /* getting started */ @@ -135,73 +134,74 @@ struct mbedtls_ecdsa_restart_det /* * Init verify sign_det sub-context */ -static void ecdsa_restart_det_init( mbedtls_ecdsa_restart_det_ctx *ctx ) +static void ecdsa_restart_det_init(mbedtls_ecdsa_restart_det_ctx *ctx) { - mbedtls_hmac_drbg_init( &ctx->rng_ctx ); + mbedtls_hmac_drbg_init(&ctx->rng_ctx); ctx->state = ecdsa_det_init; } /* * Free the components of a sign_det restart sub-context */ -static void ecdsa_restart_det_free( mbedtls_ecdsa_restart_det_ctx *ctx ) +static void ecdsa_restart_det_free(mbedtls_ecdsa_restart_det_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_hmac_drbg_free( &ctx->rng_ctx ); + mbedtls_hmac_drbg_free(&ctx->rng_ctx); - ecdsa_restart_det_init( ctx ); + ecdsa_restart_det_init(ctx); } #endif /* MBEDTLS_ECDSA_DETERMINISTIC */ -#define ECDSA_RS_ECP ( rs_ctx == NULL ? NULL : &rs_ctx->ecp ) +#define ECDSA_RS_ECP (rs_ctx == NULL ? NULL : &rs_ctx->ecp) /* Utility macro for checking and updating ops budget */ -#define ECDSA_BUDGET( ops ) \ - MBEDTLS_MPI_CHK( mbedtls_ecp_check_budget( grp, ECDSA_RS_ECP, ops ) ); +#define ECDSA_BUDGET(ops) \ + MBEDTLS_MPI_CHK(mbedtls_ecp_check_budget(grp, ECDSA_RS_ECP, ops)); /* Call this when entering a function that needs its own sub-context */ -#define ECDSA_RS_ENTER( SUB ) do { \ - /* reset ops count for this call if top-level */ \ - if( rs_ctx != NULL && rs_ctx->ecp.depth++ == 0 ) \ +#define ECDSA_RS_ENTER(SUB) do { \ + /* reset ops count for this call if top-level */ \ + if (rs_ctx != NULL && rs_ctx->ecp.depth++ == 0) \ rs_ctx->ecp.ops_done = 0; \ \ - /* set up our own sub-context if needed */ \ - if( mbedtls_ecp_restart_is_enabled() && \ - rs_ctx != NULL && rs_ctx->SUB == NULL ) \ - { \ - rs_ctx->SUB = mbedtls_calloc( 1, sizeof( *rs_ctx->SUB ) ); \ - if( rs_ctx->SUB == NULL ) \ - return( MBEDTLS_ERR_ECP_ALLOC_FAILED ); \ - \ - ecdsa_restart_## SUB ##_init( rs_ctx->SUB ); \ - } \ -} while( 0 ) + /* set up our own sub-context if needed */ \ + if (mbedtls_ecp_restart_is_enabled() && \ + rs_ctx != NULL && rs_ctx->SUB == NULL) \ + { \ + rs_ctx->SUB = mbedtls_calloc(1, sizeof(*rs_ctx->SUB)); \ + if (rs_ctx->SUB == NULL) \ + return MBEDTLS_ERR_ECP_ALLOC_FAILED; \ + \ + ecdsa_restart_## SUB ##_init(rs_ctx->SUB); \ + } \ +} while (0) /* Call this when leaving a function that needs its own sub-context */ -#define ECDSA_RS_LEAVE( SUB ) do { \ - /* clear our sub-context when not in progress (done or error) */ \ - if( rs_ctx != NULL && rs_ctx->SUB != NULL && \ - ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) \ - { \ - ecdsa_restart_## SUB ##_free( rs_ctx->SUB ); \ - mbedtls_free( rs_ctx->SUB ); \ - rs_ctx->SUB = NULL; \ - } \ +#define ECDSA_RS_LEAVE(SUB) do { \ + /* clear our sub-context when not in progress (done or error) */ \ + if (rs_ctx != NULL && rs_ctx->SUB != NULL && \ + ret != MBEDTLS_ERR_ECP_IN_PROGRESS) \ + { \ + ecdsa_restart_## SUB ##_free(rs_ctx->SUB); \ + mbedtls_free(rs_ctx->SUB); \ + rs_ctx->SUB = NULL; \ + } \ \ - if( rs_ctx != NULL ) \ + if (rs_ctx != NULL) \ rs_ctx->ecp.depth--; \ -} while( 0 ) +} while (0) #else /* MBEDTLS_ECP_RESTARTABLE */ #define ECDSA_RS_ECP NULL -#define ECDSA_BUDGET( ops ) /* no-op; for compatibility */ +#define ECDSA_BUDGET(ops) /* no-op; for compatibility */ -#define ECDSA_RS_ENTER( SUB ) (void) rs_ctx -#define ECDSA_RS_LEAVE( SUB ) (void) rs_ctx +#define ECDSA_RS_ENTER(SUB) (void) rs_ctx +#define ECDSA_RS_LEAVE(SUB) (void) rs_ctx #endif /* MBEDTLS_ECP_RESTARTABLE */ @@ -212,23 +212,25 @@ static void ecdsa_restart_det_free( mbedtls_ecdsa_restart_det_ctx *ctx ) * Derive a suitable integer for group grp from a buffer of length len * SEC1 4.1.3 step 5 aka SEC1 4.1.4 step 3 */ -static int derive_mpi( const mbedtls_ecp_group *grp, mbedtls_mpi *x, - const unsigned char *buf, size_t blen ) +static int derive_mpi(const mbedtls_ecp_group *grp, mbedtls_mpi *x, + const unsigned char *buf, size_t blen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t n_size = ( grp->nbits + 7 ) / 8; + size_t n_size = (grp->nbits + 7) / 8; size_t use_size = blen > n_size ? n_size : blen; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( x, buf, use_size ) ); - if( use_size * 8 > grp->nbits ) - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( x, use_size * 8 - grp->nbits ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(x, buf, use_size)); + if (use_size * 8 > grp->nbits) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(x, use_size * 8 - grp->nbits)); + } /* While at it, reduce modulo N */ - if( mbedtls_mpi_cmp_mpi( x, &grp->N ) >= 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( x, x, &grp->N ) ); + if (mbedtls_mpi_cmp_mpi(x, &grp->N) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(x, x, &grp->N)); + } cleanup: - return( ret ); + return ret; } #endif /* ECDSA_DETERMINISTIC || !ECDSA_SIGN_ALT || !ECDSA_VERIFY_ALT */ @@ -237,13 +239,13 @@ cleanup: * Compute ECDSA signature of a hashed message (SEC1 4.1.3) * Obviously, compared to SEC1 4.1.3, we skip step 4 (hash message) */ -static int ecdsa_sign_restartable( mbedtls_ecp_group *grp, - mbedtls_mpi *r, mbedtls_mpi *s, - const mbedtls_mpi *d, const unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - int (*f_rng_blind)(void *, unsigned char *, size_t), - void *p_rng_blind, - mbedtls_ecdsa_restart_ctx *rs_ctx ) +static int ecdsa_sign_restartable(mbedtls_ecp_group *grp, + mbedtls_mpi *r, mbedtls_mpi *s, + const mbedtls_mpi *d, const unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + int (*f_rng_blind)(void *, unsigned char *, size_t), + void *p_rng_blind, + mbedtls_ecdsa_restart_ctx *rs_ctx) { int ret, key_tries, sign_tries; int *p_sign_tries = &sign_tries, *p_key_tries = &key_tries; @@ -252,21 +254,22 @@ static int ecdsa_sign_restartable( mbedtls_ecp_group *grp, mbedtls_mpi *pk = &k, *pr = r; /* Fail cleanly on curves such as Curve25519 that can't be used for ECDSA */ - if( ! mbedtls_ecdsa_can_do( grp->id ) || grp->N.p == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (!mbedtls_ecdsa_can_do(grp->id) || grp->N.p == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* Make sure d is in range 1..n-1 */ - if( mbedtls_mpi_cmp_int( d, 1 ) < 0 || mbedtls_mpi_cmp_mpi( d, &grp->N ) >= 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_cmp_int(d, 1) < 0 || mbedtls_mpi_cmp_mpi(d, &grp->N) >= 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - mbedtls_ecp_point_init( &R ); - mbedtls_mpi_init( &k ); mbedtls_mpi_init( &e ); mbedtls_mpi_init( &t ); + mbedtls_ecp_point_init(&R); + mbedtls_mpi_init(&k); mbedtls_mpi_init(&e); mbedtls_mpi_init(&t); - ECDSA_RS_ENTER( sig ); + ECDSA_RS_ENTER(sig); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->sig != NULL ) - { + if (rs_ctx != NULL && rs_ctx->sig != NULL) { /* redirect to our context */ p_sign_tries = &rs_ctx->sig->sign_tries; p_key_tries = &rs_ctx->sig->key_tries; @@ -274,18 +277,18 @@ static int ecdsa_sign_restartable( mbedtls_ecp_group *grp, pr = &rs_ctx->sig->r; /* jump to current step */ - if( rs_ctx->sig->state == ecdsa_sig_mul ) + if (rs_ctx->sig->state == ecdsa_sig_mul) { goto mul; - if( rs_ctx->sig->state == ecdsa_sig_modn ) + } + if (rs_ctx->sig->state == ecdsa_sig_modn) { goto modn; + } } #endif /* MBEDTLS_ECP_RESTARTABLE */ *p_sign_tries = 0; - do - { - if( (*p_sign_tries)++ > 10 ) - { + do { + if ((*p_sign_tries)++ > 10) { ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; goto cleanup; } @@ -295,33 +298,32 @@ static int ecdsa_sign_restartable( mbedtls_ecp_group *grp, * and set r = xR mod n */ *p_key_tries = 0; - do - { - if( (*p_key_tries)++ > 10 ) - { + do { + if ((*p_key_tries)++ > 10) { ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, pk, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, pk, f_rng, p_rng)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->sig != NULL ) + if (rs_ctx != NULL && rs_ctx->sig != NULL) { rs_ctx->sig->state = ecdsa_sig_mul; + } mul: #endif - MBEDTLS_MPI_CHK( mbedtls_ecp_mul_restartable( grp, &R, pk, &grp->G, - f_rng_blind, - p_rng_blind, - ECDSA_RS_ECP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( pr, &R.X, &grp->N ) ); - } - while( mbedtls_mpi_cmp_int( pr, 0 ) == 0 ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul_restartable(grp, &R, pk, &grp->G, + f_rng_blind, + p_rng_blind, + ECDSA_RS_ECP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pr, &R.X, &grp->N)); + } while (mbedtls_mpi_cmp_int(pr, 0) == 0); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->sig != NULL ) + if (rs_ctx != NULL && rs_ctx->sig != NULL) { rs_ctx->sig->state = ecdsa_sig_modn; + } modn: #endif @@ -329,72 +331,71 @@ modn: * Accounting for everything up to the end of the loop * (step 6, but checking now avoids saving e and t) */ - ECDSA_BUDGET( MBEDTLS_ECP_OPS_INV + 4 ); + ECDSA_BUDGET(MBEDTLS_ECP_OPS_INV + 4); /* * Step 5: derive MPI from hashed message */ - MBEDTLS_MPI_CHK( derive_mpi( grp, &e, buf, blen ) ); + MBEDTLS_MPI_CHK(derive_mpi(grp, &e, buf, blen)); /* * Generate a random value to blind inv_mod in next step, * avoiding a potential timing leak. */ - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, &t, f_rng_blind, - p_rng_blind ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, &t, f_rng_blind, + p_rng_blind)); /* * Step 6: compute s = (e + r * d) / k = t (e + rd) / (kt) mod n */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( s, pr, d ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &e, &e, s ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &e, &e, &t ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( pk, pk, &t ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( pk, pk, &grp->N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( s, pk, &grp->N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( s, s, &e ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( s, s, &grp->N ) ); - } - while( mbedtls_mpi_cmp_int( s, 0 ) == 0 ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(s, pr, d)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&e, &e, s)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&e, &e, &t)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(pk, pk, &t)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pk, pk, &grp->N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(s, pk, &grp->N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(s, s, &e)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(s, s, &grp->N)); + } while (mbedtls_mpi_cmp_int(s, 0) == 0); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->sig != NULL ) - mbedtls_mpi_copy( r, pr ); + if (rs_ctx != NULL && rs_ctx->sig != NULL) { + mbedtls_mpi_copy(r, pr); + } #endif cleanup: - mbedtls_ecp_point_free( &R ); - mbedtls_mpi_free( &k ); mbedtls_mpi_free( &e ); mbedtls_mpi_free( &t ); + mbedtls_ecp_point_free(&R); + mbedtls_mpi_free(&k); mbedtls_mpi_free(&e); mbedtls_mpi_free(&t); - ECDSA_RS_LEAVE( sig ); + ECDSA_RS_LEAVE(sig); - return( ret ); + return ret; } -int mbedtls_ecdsa_can_do( mbedtls_ecp_group_id gid ) +int mbedtls_ecdsa_can_do(mbedtls_ecp_group_id gid) { - switch( gid ) - { + switch (gid) { #ifdef MBEDTLS_ECP_DP_CURVE25519_ENABLED case MBEDTLS_ECP_DP_CURVE25519: return 0; #endif #ifdef MBEDTLS_ECP_DP_CURVE448_ENABLED case MBEDTLS_ECP_DP_CURVE448: return 0; #endif - default: return 1; + default: return 1; } } /* * Compute ECDSA signature of a hashed message */ -int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, - const mbedtls_mpi *d, const unsigned char *buf, size_t blen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, + const mbedtls_mpi *d, const unsigned char *buf, size_t blen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { /* Use the same RNG for both blinding and ephemeral key generation */ - return( ecdsa_sign_restartable( grp, r, s, d, buf, blen, - f_rng, p_rng, f_rng, p_rng, NULL ) ); + return ecdsa_sign_restartable(grp, r, s, d, buf, blen, + f_rng, p_rng, f_rng, p_rng, NULL); } #endif /* !MBEDTLS_ECDSA_SIGN_ALT */ @@ -405,87 +406,89 @@ int mbedtls_ecdsa_sign( mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s, * note: The f_rng_blind parameter must not be NULL. * */ -static int ecdsa_sign_det_restartable( mbedtls_ecp_group *grp, - mbedtls_mpi *r, mbedtls_mpi *s, - const mbedtls_mpi *d, const unsigned char *buf, size_t blen, - mbedtls_md_type_t md_alg, - int (*f_rng_blind)(void *, unsigned char *, size_t), - void *p_rng_blind, - mbedtls_ecdsa_restart_ctx *rs_ctx ) +static int ecdsa_sign_det_restartable(mbedtls_ecp_group *grp, + mbedtls_mpi *r, mbedtls_mpi *s, + const mbedtls_mpi *d, const unsigned char *buf, size_t blen, + mbedtls_md_type_t md_alg, + int (*f_rng_blind)(void *, unsigned char *, size_t), + void *p_rng_blind, + mbedtls_ecdsa_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_hmac_drbg_context rng_ctx; mbedtls_hmac_drbg_context *p_rng = &rng_ctx; unsigned char data[2 * MBEDTLS_ECP_MAX_BYTES]; - size_t grp_len = ( grp->nbits + 7 ) / 8; + size_t grp_len = (grp->nbits + 7) / 8; const mbedtls_md_info_t *md_info; mbedtls_mpi h; - if( ( md_info = mbedtls_md_info_from_type( md_alg ) ) == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if ((md_info = mbedtls_md_info_from_type(md_alg)) == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - mbedtls_mpi_init( &h ); - mbedtls_hmac_drbg_init( &rng_ctx ); + mbedtls_mpi_init(&h); + mbedtls_hmac_drbg_init(&rng_ctx); - ECDSA_RS_ENTER( det ); + ECDSA_RS_ENTER(det); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->det != NULL ) - { + if (rs_ctx != NULL && rs_ctx->det != NULL) { /* redirect to our context */ p_rng = &rs_ctx->det->rng_ctx; /* jump to current step */ - if( rs_ctx->det->state == ecdsa_det_sign ) + if (rs_ctx->det->state == ecdsa_det_sign) { goto sign; + } } #endif /* MBEDTLS_ECP_RESTARTABLE */ /* Use private key and message hash (reduced) to initialize HMAC_DRBG */ - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( d, data, grp_len ) ); - MBEDTLS_MPI_CHK( derive_mpi( grp, &h, buf, blen ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &h, data + grp_len, grp_len ) ); - mbedtls_hmac_drbg_seed_buf( p_rng, md_info, data, 2 * grp_len ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(d, data, grp_len)); + MBEDTLS_MPI_CHK(derive_mpi(grp, &h, buf, blen)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, data + grp_len, grp_len)); + mbedtls_hmac_drbg_seed_buf(p_rng, md_info, data, 2 * grp_len); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->det != NULL ) + if (rs_ctx != NULL && rs_ctx->det != NULL) { rs_ctx->det->state = ecdsa_det_sign; + } sign: #endif #if defined(MBEDTLS_ECDSA_SIGN_ALT) (void) f_rng_blind; (void) p_rng_blind; - ret = mbedtls_ecdsa_sign( grp, r, s, d, buf, blen, - mbedtls_hmac_drbg_random, p_rng ); + ret = mbedtls_ecdsa_sign(grp, r, s, d, buf, blen, + mbedtls_hmac_drbg_random, p_rng); #else - ret = ecdsa_sign_restartable( grp, r, s, d, buf, blen, - mbedtls_hmac_drbg_random, p_rng, - f_rng_blind, p_rng_blind, rs_ctx ); + ret = ecdsa_sign_restartable(grp, r, s, d, buf, blen, + mbedtls_hmac_drbg_random, p_rng, + f_rng_blind, p_rng_blind, rs_ctx); #endif /* MBEDTLS_ECDSA_SIGN_ALT */ cleanup: - mbedtls_hmac_drbg_free( &rng_ctx ); - mbedtls_mpi_free( &h ); + mbedtls_hmac_drbg_free(&rng_ctx); + mbedtls_mpi_free(&h); - ECDSA_RS_LEAVE( det ); + ECDSA_RS_LEAVE(det); - return( ret ); + return ret; } /* * Deterministic signature wrapper */ -int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, - mbedtls_mpi *s, const mbedtls_mpi *d, - const unsigned char *buf, size_t blen, - mbedtls_md_type_t md_alg, - int (*f_rng_blind)(void *, unsigned char *, - size_t), - void *p_rng_blind ) +int mbedtls_ecdsa_sign_det_ext(mbedtls_ecp_group *grp, mbedtls_mpi *r, + mbedtls_mpi *s, const mbedtls_mpi *d, + const unsigned char *buf, size_t blen, + mbedtls_md_type_t md_alg, + int (*f_rng_blind)(void *, unsigned char *, + size_t), + void *p_rng_blind) { - return( ecdsa_sign_det_restartable( grp, r, s, d, buf, blen, md_alg, - f_rng_blind, p_rng_blind, NULL ) ); + return ecdsa_sign_det_restartable(grp, r, s, d, buf, blen, md_alg, + f_rng_blind, p_rng_blind, NULL); } #endif /* MBEDTLS_ECDSA_DETERMINISTIC */ @@ -494,46 +497,46 @@ int mbedtls_ecdsa_sign_det_ext( mbedtls_ecp_group *grp, mbedtls_mpi *r, * Verify ECDSA signature of hashed message (SEC1 4.1.4) * Obviously, compared to SEC1 4.1.3, we skip step 2 (hash message) */ -static int ecdsa_verify_restartable( mbedtls_ecp_group *grp, - const unsigned char *buf, size_t blen, - const mbedtls_ecp_point *Q, - const mbedtls_mpi *r, const mbedtls_mpi *s, - mbedtls_ecdsa_restart_ctx *rs_ctx ) +static int ecdsa_verify_restartable(mbedtls_ecp_group *grp, + const unsigned char *buf, size_t blen, + const mbedtls_ecp_point *Q, + const mbedtls_mpi *r, const mbedtls_mpi *s, + mbedtls_ecdsa_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi e, s_inv, u1, u2; mbedtls_ecp_point R; mbedtls_mpi *pu1 = &u1, *pu2 = &u2; - mbedtls_ecp_point_init( &R ); - mbedtls_mpi_init( &e ); mbedtls_mpi_init( &s_inv ); - mbedtls_mpi_init( &u1 ); mbedtls_mpi_init( &u2 ); + mbedtls_ecp_point_init(&R); + mbedtls_mpi_init(&e); mbedtls_mpi_init(&s_inv); + mbedtls_mpi_init(&u1); mbedtls_mpi_init(&u2); /* Fail cleanly on curves such as Curve25519 that can't be used for ECDSA */ - if( ! mbedtls_ecdsa_can_do( grp->id ) || grp->N.p == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (!mbedtls_ecdsa_can_do(grp->id) || grp->N.p == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - ECDSA_RS_ENTER( ver ); + ECDSA_RS_ENTER(ver); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ver != NULL ) - { + if (rs_ctx != NULL && rs_ctx->ver != NULL) { /* redirect to our context */ pu1 = &rs_ctx->ver->u1; pu2 = &rs_ctx->ver->u2; /* jump to current step */ - if( rs_ctx->ver->state == ecdsa_ver_muladd ) + if (rs_ctx->ver->state == ecdsa_ver_muladd) { goto muladd; + } } #endif /* MBEDTLS_ECP_RESTARTABLE */ /* * Step 1: make sure r and s are in range 1..n-1 */ - if( mbedtls_mpi_cmp_int( r, 1 ) < 0 || mbedtls_mpi_cmp_mpi( r, &grp->N ) >= 0 || - mbedtls_mpi_cmp_int( s, 1 ) < 0 || mbedtls_mpi_cmp_mpi( s, &grp->N ) >= 0 ) - { + if (mbedtls_mpi_cmp_int(r, 1) < 0 || mbedtls_mpi_cmp_mpi(r, &grp->N) >= 0 || + mbedtls_mpi_cmp_int(s, 1) < 0 || mbedtls_mpi_cmp_mpi(s, &grp->N) >= 0) { ret = MBEDTLS_ERR_ECP_VERIFY_FAILED; goto cleanup; } @@ -541,35 +544,35 @@ static int ecdsa_verify_restartable( mbedtls_ecp_group *grp, /* * Step 3: derive MPI from hashed message */ - MBEDTLS_MPI_CHK( derive_mpi( grp, &e, buf, blen ) ); + MBEDTLS_MPI_CHK(derive_mpi(grp, &e, buf, blen)); /* * Step 4: u1 = e / s mod n, u2 = r / s mod n */ - ECDSA_BUDGET( MBEDTLS_ECP_OPS_CHK + MBEDTLS_ECP_OPS_INV + 2 ); + ECDSA_BUDGET(MBEDTLS_ECP_OPS_CHK + MBEDTLS_ECP_OPS_INV + 2); - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &s_inv, s, &grp->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&s_inv, s, &grp->N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( pu1, &e, &s_inv ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( pu1, pu1, &grp->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(pu1, &e, &s_inv)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pu1, pu1, &grp->N)); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( pu2, r, &s_inv ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( pu2, pu2, &grp->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(pu2, r, &s_inv)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(pu2, pu2, &grp->N)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ver != NULL ) + if (rs_ctx != NULL && rs_ctx->ver != NULL) { rs_ctx->ver->state = ecdsa_ver_muladd; + } muladd: #endif /* * Step 5: R = u1 G + u2 Q */ - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd_restartable( grp, - &R, pu1, &grp->G, pu2, Q, ECDSA_RS_ECP ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_muladd_restartable(grp, + &R, pu1, &grp->G, pu2, Q, ECDSA_RS_ECP)); - if( mbedtls_ecp_is_zero( &R ) ) - { + if (mbedtls_ecp_is_zero(&R)) { ret = MBEDTLS_ERR_ECP_VERIFY_FAILED; goto cleanup; } @@ -578,262 +581,265 @@ muladd: * Step 6: convert xR to an integer (no-op) * Step 7: reduce xR mod n (gives v) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &R.X, &R.X, &grp->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&R.X, &R.X, &grp->N)); /* * Step 8: check if v (that is, R.X) is equal to r */ - if( mbedtls_mpi_cmp_mpi( &R.X, r ) != 0 ) - { + if (mbedtls_mpi_cmp_mpi(&R.X, r) != 0) { ret = MBEDTLS_ERR_ECP_VERIFY_FAILED; goto cleanup; } cleanup: - mbedtls_ecp_point_free( &R ); - mbedtls_mpi_free( &e ); mbedtls_mpi_free( &s_inv ); - mbedtls_mpi_free( &u1 ); mbedtls_mpi_free( &u2 ); + mbedtls_ecp_point_free(&R); + mbedtls_mpi_free(&e); mbedtls_mpi_free(&s_inv); + mbedtls_mpi_free(&u1); mbedtls_mpi_free(&u2); - ECDSA_RS_LEAVE( ver ); + ECDSA_RS_LEAVE(ver); - return( ret ); + return ret; } /* * Verify ECDSA signature of hashed message */ -int mbedtls_ecdsa_verify( mbedtls_ecp_group *grp, - const unsigned char *buf, size_t blen, - const mbedtls_ecp_point *Q, - const mbedtls_mpi *r, - const mbedtls_mpi *s) +int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp, + const unsigned char *buf, size_t blen, + const mbedtls_ecp_point *Q, + const mbedtls_mpi *r, + const mbedtls_mpi *s) { - return( ecdsa_verify_restartable( grp, buf, blen, Q, r, s, NULL ) ); + return ecdsa_verify_restartable(grp, buf, blen, Q, r, s, NULL); } #endif /* !MBEDTLS_ECDSA_VERIFY_ALT */ /* * Convert a signature (given by context) to ASN.1 */ -static int ecdsa_signature_to_asn1( const mbedtls_mpi *r, const mbedtls_mpi *s, - unsigned char *sig, size_t sig_size, - size_t *slen ) +static int ecdsa_signature_to_asn1(const mbedtls_mpi *r, const mbedtls_mpi *s, + unsigned char *sig, size_t sig_size, + size_t *slen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char buf[MBEDTLS_ECDSA_MAX_LEN] = {0}; - unsigned char *p = buf + sizeof( buf ); + unsigned char buf[MBEDTLS_ECDSA_MAX_LEN] = { 0 }; + unsigned char *p = buf + sizeof(buf); size_t len = 0; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_mpi( &p, buf, s ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_mpi( &p, buf, r ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_mpi(&p, buf, s)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_mpi(&p, buf, r)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &p, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &p, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&p, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&p, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - if( len > sig_size ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (len > sig_size) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - memcpy( sig, p, len ); + memcpy(sig, p, len); *slen = len; - return( 0 ); + return 0; } /* * Compute and write signature */ -int mbedtls_ecdsa_write_signature_restartable( mbedtls_ecdsa_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hlen, - unsigned char *sig, size_t sig_size, size_t *slen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecdsa_restart_ctx *rs_ctx ) +int mbedtls_ecdsa_write_signature_restartable(mbedtls_ecdsa_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hlen, + unsigned char *sig, size_t sig_size, size_t *slen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecdsa_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi r, s; - if( f_rng == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &s ); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&s); #if defined(MBEDTLS_ECDSA_DETERMINISTIC) - MBEDTLS_MPI_CHK( ecdsa_sign_det_restartable( &ctx->grp, &r, &s, &ctx->d, - hash, hlen, md_alg, f_rng, - p_rng, rs_ctx ) ); + MBEDTLS_MPI_CHK(ecdsa_sign_det_restartable(&ctx->grp, &r, &s, &ctx->d, + hash, hlen, md_alg, f_rng, + p_rng, rs_ctx)); #else (void) md_alg; #if defined(MBEDTLS_ECDSA_SIGN_ALT) (void) rs_ctx; - MBEDTLS_MPI_CHK( mbedtls_ecdsa_sign( &ctx->grp, &r, &s, &ctx->d, - hash, hlen, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_ecdsa_sign(&ctx->grp, &r, &s, &ctx->d, + hash, hlen, f_rng, p_rng)); #else /* Use the same RNG for both blinding and ephemeral key generation */ - MBEDTLS_MPI_CHK( ecdsa_sign_restartable( &ctx->grp, &r, &s, &ctx->d, - hash, hlen, f_rng, p_rng, f_rng, - p_rng, rs_ctx ) ); + MBEDTLS_MPI_CHK(ecdsa_sign_restartable(&ctx->grp, &r, &s, &ctx->d, + hash, hlen, f_rng, p_rng, f_rng, + p_rng, rs_ctx)); #endif /* MBEDTLS_ECDSA_SIGN_ALT */ #endif /* MBEDTLS_ECDSA_DETERMINISTIC */ - MBEDTLS_MPI_CHK( ecdsa_signature_to_asn1( &r, &s, sig, sig_size, slen ) ); + MBEDTLS_MPI_CHK(ecdsa_signature_to_asn1(&r, &s, sig, sig_size, slen)); cleanup: - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &s ); + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&s); - return( ret ); + return ret; } /* * Compute and write signature */ -int mbedtls_ecdsa_write_signature( mbedtls_ecdsa_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hlen, - unsigned char *sig, size_t sig_size, size_t *slen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecdsa_write_signature(mbedtls_ecdsa_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hlen, + unsigned char *sig, size_t sig_size, size_t *slen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( mbedtls_ecdsa_write_signature_restartable( - ctx, md_alg, hash, hlen, sig, sig_size, slen, - f_rng, p_rng, NULL ) ); + return mbedtls_ecdsa_write_signature_restartable( + ctx, md_alg, hash, hlen, sig, sig_size, slen, + f_rng, p_rng, NULL); } /* * Read and check signature */ -int mbedtls_ecdsa_read_signature( mbedtls_ecdsa_context *ctx, - const unsigned char *hash, size_t hlen, - const unsigned char *sig, size_t slen ) +int mbedtls_ecdsa_read_signature(mbedtls_ecdsa_context *ctx, + const unsigned char *hash, size_t hlen, + const unsigned char *sig, size_t slen) { - return( mbedtls_ecdsa_read_signature_restartable( - ctx, hash, hlen, sig, slen, NULL ) ); + return mbedtls_ecdsa_read_signature_restartable( + ctx, hash, hlen, sig, slen, NULL); } /* * Restartable read and check signature */ -int mbedtls_ecdsa_read_signature_restartable( mbedtls_ecdsa_context *ctx, - const unsigned char *hash, size_t hlen, - const unsigned char *sig, size_t slen, - mbedtls_ecdsa_restart_ctx *rs_ctx ) +int mbedtls_ecdsa_read_signature_restartable(mbedtls_ecdsa_context *ctx, + const unsigned char *hash, size_t hlen, + const unsigned char *sig, size_t slen, + mbedtls_ecdsa_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = (unsigned char *) sig; const unsigned char *end = sig + slen; size_t len; mbedtls_mpi r, s; - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &s ); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&s); - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { ret += MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } - if( p + len != end ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (p + len != end) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_ECP_BAD_INPUT_DATA, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); goto cleanup; } - if( ( ret = mbedtls_asn1_get_mpi( &p, end, &r ) ) != 0 || - ( ret = mbedtls_asn1_get_mpi( &p, end, &s ) ) != 0 ) - { + if ((ret = mbedtls_asn1_get_mpi(&p, end, &r)) != 0 || + (ret = mbedtls_asn1_get_mpi(&p, end, &s)) != 0) { ret += MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } #if defined(MBEDTLS_ECDSA_VERIFY_ALT) (void) rs_ctx; - if( ( ret = mbedtls_ecdsa_verify( &ctx->grp, hash, hlen, - &ctx->Q, &r, &s ) ) != 0 ) + if ((ret = mbedtls_ecdsa_verify(&ctx->grp, hash, hlen, + &ctx->Q, &r, &s)) != 0) { goto cleanup; + } #else - if( ( ret = ecdsa_verify_restartable( &ctx->grp, hash, hlen, - &ctx->Q, &r, &s, rs_ctx ) ) != 0 ) + if ((ret = ecdsa_verify_restartable(&ctx->grp, hash, hlen, + &ctx->Q, &r, &s, rs_ctx)) != 0) { goto cleanup; + } #endif /* MBEDTLS_ECDSA_VERIFY_ALT */ /* At this point we know that the buffer starts with a valid signature. * Return 0 if the buffer just contains the signature, and a specific * error code if the valid signature is followed by more data. */ - if( p != end ) + if (p != end) { ret = MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH; + } cleanup: - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &s ); + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&s); - return( ret ); + return ret; } #if !defined(MBEDTLS_ECDSA_GENKEY_ALT) /* * Generate key pair */ -int mbedtls_ecdsa_genkey( mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = 0; - ret = mbedtls_ecp_group_load( &ctx->grp, gid ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ecp_group_load(&ctx->grp, gid); + if (ret != 0) { + return ret; + } - return( mbedtls_ecp_gen_keypair( &ctx->grp, &ctx->d, - &ctx->Q, f_rng, p_rng ) ); + return mbedtls_ecp_gen_keypair(&ctx->grp, &ctx->d, + &ctx->Q, f_rng, p_rng); } #endif /* !MBEDTLS_ECDSA_GENKEY_ALT */ /* * Set context from an mbedtls_ecp_keypair */ -int mbedtls_ecdsa_from_keypair( mbedtls_ecdsa_context *ctx, const mbedtls_ecp_keypair *key ) +int mbedtls_ecdsa_from_keypair(mbedtls_ecdsa_context *ctx, const mbedtls_ecp_keypair *key) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_ecp_group_copy( &ctx->grp, &key->grp ) ) != 0 || - ( ret = mbedtls_mpi_copy( &ctx->d, &key->d ) ) != 0 || - ( ret = mbedtls_ecp_copy( &ctx->Q, &key->Q ) ) != 0 ) - { - mbedtls_ecdsa_free( ctx ); + if ((ret = mbedtls_ecp_group_copy(&ctx->grp, &key->grp)) != 0 || + (ret = mbedtls_mpi_copy(&ctx->d, &key->d)) != 0 || + (ret = mbedtls_ecp_copy(&ctx->Q, &key->Q)) != 0) { + mbedtls_ecdsa_free(ctx); } - return( ret ); + return ret; } /* * Initialize context */ -void mbedtls_ecdsa_init( mbedtls_ecdsa_context *ctx ) +void mbedtls_ecdsa_init(mbedtls_ecdsa_context *ctx) { - mbedtls_ecp_keypair_init( ctx ); + mbedtls_ecp_keypair_init(ctx); } /* * Free context */ -void mbedtls_ecdsa_free( mbedtls_ecdsa_context *ctx ) +void mbedtls_ecdsa_free(mbedtls_ecdsa_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_ecp_keypair_free( ctx ); + mbedtls_ecp_keypair_free(ctx); } #if defined(MBEDTLS_ECP_RESTARTABLE) /* * Initialize a restart context */ -void mbedtls_ecdsa_restart_init( mbedtls_ecdsa_restart_ctx *ctx ) +void mbedtls_ecdsa_restart_init(mbedtls_ecdsa_restart_ctx *ctx) { - mbedtls_ecp_restart_init( &ctx->ecp ); + mbedtls_ecp_restart_init(&ctx->ecp); ctx->ver = NULL; ctx->sig = NULL; @@ -845,24 +851,25 @@ void mbedtls_ecdsa_restart_init( mbedtls_ecdsa_restart_ctx *ctx ) /* * Free the components of a restart context */ -void mbedtls_ecdsa_restart_free( mbedtls_ecdsa_restart_ctx *ctx ) +void mbedtls_ecdsa_restart_free(mbedtls_ecdsa_restart_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_ecp_restart_free( &ctx->ecp ); + mbedtls_ecp_restart_free(&ctx->ecp); - ecdsa_restart_ver_free( ctx->ver ); - mbedtls_free( ctx->ver ); + ecdsa_restart_ver_free(ctx->ver); + mbedtls_free(ctx->ver); ctx->ver = NULL; - ecdsa_restart_sig_free( ctx->sig ); - mbedtls_free( ctx->sig ); + ecdsa_restart_sig_free(ctx->sig); + mbedtls_free(ctx->sig); ctx->sig = NULL; #if defined(MBEDTLS_ECDSA_DETERMINISTIC) - ecdsa_restart_det_free( ctx->det ); - mbedtls_free( ctx->det ); + ecdsa_restart_det_free(ctx->det); + mbedtls_free(ctx->det); ctx->det = NULL; #endif } diff --git a/library/ecjpake.c b/library/ecjpake.c index 289255a13..1a683d569 100644 --- a/library/ecjpake.c +++ b/library/ecjpake.c @@ -51,244 +51,251 @@ static const char * const ecjpake_id[] = { "server" }; -#define ID_MINE ( ecjpake_id[ ctx->role ] ) -#define ID_PEER ( ecjpake_id[ 1 - ctx->role ] ) +#define ID_MINE (ecjpake_id[ctx->role]) +#define ID_PEER (ecjpake_id[1 - ctx->role]) /** - * Helper to Compute a hash from md_type - */ -static int mbedtls_ecjpake_compute_hash( mbedtls_md_type_t md_type, - const unsigned char *input, size_t ilen, - unsigned char *output ) + * Helper to Compute a hash from md_type + */ +static int mbedtls_ecjpake_compute_hash(mbedtls_md_type_t md_type, + const unsigned char *input, size_t ilen, + unsigned char *output) { #if defined(MBEDTLS_MD_C) - return( mbedtls_md( mbedtls_md_info_from_type( md_type ), - input, ilen, output ) ); + return mbedtls_md(mbedtls_md_info_from_type(md_type), + input, ilen, output); #else - psa_algorithm_t alg = mbedtls_psa_translate_md( md_type ); + psa_algorithm_t alg = mbedtls_psa_translate_md(md_type); psa_status_t status; - size_t out_size = PSA_HASH_LENGTH( alg ); + size_t out_size = PSA_HASH_LENGTH(alg); size_t out_len; - status = psa_hash_compute( alg, input, ilen, output, out_size, &out_len ); + status = psa_hash_compute(alg, input, ilen, output, out_size, &out_len); - return( mbedtls_md_error_from_psa( status ) ); + return mbedtls_md_error_from_psa(status); #endif /* !MBEDTLS_MD_C */ } /* * Initialize context */ -void mbedtls_ecjpake_init( mbedtls_ecjpake_context *ctx ) +void mbedtls_ecjpake_init(mbedtls_ecjpake_context *ctx) { ctx->md_type = MBEDTLS_MD_NONE; - mbedtls_ecp_group_init( &ctx->grp ); + mbedtls_ecp_group_init(&ctx->grp); ctx->point_format = MBEDTLS_ECP_PF_UNCOMPRESSED; - mbedtls_ecp_point_init( &ctx->Xm1 ); - mbedtls_ecp_point_init( &ctx->Xm2 ); - mbedtls_ecp_point_init( &ctx->Xp1 ); - mbedtls_ecp_point_init( &ctx->Xp2 ); - mbedtls_ecp_point_init( &ctx->Xp ); + mbedtls_ecp_point_init(&ctx->Xm1); + mbedtls_ecp_point_init(&ctx->Xm2); + mbedtls_ecp_point_init(&ctx->Xp1); + mbedtls_ecp_point_init(&ctx->Xp2); + mbedtls_ecp_point_init(&ctx->Xp); - mbedtls_mpi_init( &ctx->xm1 ); - mbedtls_mpi_init( &ctx->xm2 ); - mbedtls_mpi_init( &ctx->s ); + mbedtls_mpi_init(&ctx->xm1); + mbedtls_mpi_init(&ctx->xm2); + mbedtls_mpi_init(&ctx->s); } /* * Free context */ -void mbedtls_ecjpake_free( mbedtls_ecjpake_context *ctx ) +void mbedtls_ecjpake_free(mbedtls_ecjpake_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } ctx->md_type = MBEDTLS_MD_NONE; - mbedtls_ecp_group_free( &ctx->grp ); + mbedtls_ecp_group_free(&ctx->grp); - mbedtls_ecp_point_free( &ctx->Xm1 ); - mbedtls_ecp_point_free( &ctx->Xm2 ); - mbedtls_ecp_point_free( &ctx->Xp1 ); - mbedtls_ecp_point_free( &ctx->Xp2 ); - mbedtls_ecp_point_free( &ctx->Xp ); + mbedtls_ecp_point_free(&ctx->Xm1); + mbedtls_ecp_point_free(&ctx->Xm2); + mbedtls_ecp_point_free(&ctx->Xp1); + mbedtls_ecp_point_free(&ctx->Xp2); + mbedtls_ecp_point_free(&ctx->Xp); - mbedtls_mpi_free( &ctx->xm1 ); - mbedtls_mpi_free( &ctx->xm2 ); - mbedtls_mpi_free( &ctx->s ); + mbedtls_mpi_free(&ctx->xm1); + mbedtls_mpi_free(&ctx->xm2); + mbedtls_mpi_free(&ctx->s); } /* * Setup context */ -int mbedtls_ecjpake_setup( mbedtls_ecjpake_context *ctx, - mbedtls_ecjpake_role role, - mbedtls_md_type_t hash, - mbedtls_ecp_group_id curve, - const unsigned char *secret, - size_t len ) +int mbedtls_ecjpake_setup(mbedtls_ecjpake_context *ctx, + mbedtls_ecjpake_role role, + mbedtls_md_type_t hash, + mbedtls_ecp_group_id curve, + const unsigned char *secret, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( role != MBEDTLS_ECJPAKE_CLIENT && role != MBEDTLS_ECJPAKE_SERVER ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (role != MBEDTLS_ECJPAKE_CLIENT && role != MBEDTLS_ECJPAKE_SERVER) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } ctx->role = role; #if defined(MBEDTLS_MD_C) - if( ( mbedtls_md_info_from_type( hash ) ) == NULL ) - return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE ); + if ((mbedtls_md_info_from_type(hash)) == NULL) { + return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE; + } #else - if( mbedtls_psa_translate_md( hash ) == MBEDTLS_MD_NONE ) - return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE ); + if (mbedtls_psa_translate_md(hash) == MBEDTLS_MD_NONE) { + return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE; + } #endif ctx->md_type = hash; - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &ctx->grp, curve ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&ctx->grp, curve)); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->s, secret, len ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->s, secret, len)); cleanup: - if( ret != 0 ) - mbedtls_ecjpake_free( ctx ); + if (ret != 0) { + mbedtls_ecjpake_free(ctx); + } - return( ret ); + return ret; } -int mbedtls_ecjpake_set_point_format( mbedtls_ecjpake_context *ctx, - int point_format ) +int mbedtls_ecjpake_set_point_format(mbedtls_ecjpake_context *ctx, + int point_format) { - switch( point_format ) - { + switch (point_format) { case MBEDTLS_ECP_PF_UNCOMPRESSED: case MBEDTLS_ECP_PF_COMPRESSED: ctx->point_format = point_format; - return( 0 ); + return 0; default: - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } } /* * Check if context is ready for use */ -int mbedtls_ecjpake_check( const mbedtls_ecjpake_context *ctx ) +int mbedtls_ecjpake_check(const mbedtls_ecjpake_context *ctx) { - if( ctx->md_type == MBEDTLS_MD_NONE || + if (ctx->md_type == MBEDTLS_MD_NONE || ctx->grp.id == MBEDTLS_ECP_DP_NONE || - ctx->s.p == NULL ) - { - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + ctx->s.p == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } - return( 0 ); + return 0; } /* * Write a point plus its length to a buffer */ -static int ecjpake_write_len_point( unsigned char **p, - const unsigned char *end, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *P ) +static int ecjpake_write_len_point(unsigned char **p, + const unsigned char *end, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *P) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; /* Need at least 4 for length plus 1 for point */ - if( end < *p || end - *p < 5 ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (end < *p || end - *p < 5) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - ret = mbedtls_ecp_point_write_binary( grp, P, pf, - &len, *p + 4, end - ( *p + 4 ) ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ecp_point_write_binary(grp, P, pf, + &len, *p + 4, end - (*p + 4)); + if (ret != 0) { + return ret; + } - MBEDTLS_PUT_UINT32_BE( len, *p, 0 ); + MBEDTLS_PUT_UINT32_BE(len, *p, 0); *p += 4 + len; - return( 0 ); + return 0; } /* * Size of the temporary buffer for ecjpake_hash: * 3 EC points plus their length, plus ID and its length (4 + 6 bytes) */ -#define ECJPAKE_HASH_BUF_LEN ( 3 * ( 4 + MBEDTLS_ECP_MAX_PT_LEN ) + 4 + 6 ) +#define ECJPAKE_HASH_BUF_LEN (3 * (4 + MBEDTLS_ECP_MAX_PT_LEN) + 4 + 6) /* * Compute hash for ZKP (7.4.2.2.2.1) */ -static int ecjpake_hash( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - const mbedtls_ecp_point *V, - const mbedtls_ecp_point *X, - const char *id, - mbedtls_mpi *h ) +static int ecjpake_hash(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + const mbedtls_ecp_point *V, + const mbedtls_ecp_point *X, + const char *id, + mbedtls_mpi *h) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char buf[ECJPAKE_HASH_BUF_LEN]; unsigned char *p = buf; - const unsigned char *end = buf + sizeof( buf ); - const size_t id_len = strlen( id ); + const unsigned char *end = buf + sizeof(buf); + const size_t id_len = strlen(id); unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; /* Write things to temporary buffer */ - MBEDTLS_MPI_CHK( ecjpake_write_len_point( &p, end, grp, pf, G ) ); - MBEDTLS_MPI_CHK( ecjpake_write_len_point( &p, end, grp, pf, V ) ); - MBEDTLS_MPI_CHK( ecjpake_write_len_point( &p, end, grp, pf, X ) ); + MBEDTLS_MPI_CHK(ecjpake_write_len_point(&p, end, grp, pf, G)); + MBEDTLS_MPI_CHK(ecjpake_write_len_point(&p, end, grp, pf, V)); + MBEDTLS_MPI_CHK(ecjpake_write_len_point(&p, end, grp, pf, X)); - if( end - p < 4 ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (end - p < 4) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - MBEDTLS_PUT_UINT32_BE( id_len, p, 0 ); + MBEDTLS_PUT_UINT32_BE(id_len, p, 0); p += 4; - if( end < p || (size_t)( end - p ) < id_len ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (end < p || (size_t) (end - p) < id_len) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - memcpy( p, id, id_len ); + memcpy(p, id, id_len); p += id_len; /* Compute hash */ - MBEDTLS_MPI_CHK( mbedtls_ecjpake_compute_hash( md_type, - buf, p - buf, hash ) ); + MBEDTLS_MPI_CHK(mbedtls_ecjpake_compute_hash(md_type, + buf, p - buf, hash)); /* Turn it into an integer mod n */ - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( h, hash, - mbedtls_hash_info_get_size( md_type ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( h, h, &grp->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(h, hash, + mbedtls_hash_info_get_size(md_type))); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(h, h, &grp->N)); cleanup: - return( ret ); + return ret; } /* * Parse a ECShnorrZKP (7.4.2.2.2) and verify it (7.4.2.3.3) */ -static int ecjpake_zkp_read( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - const mbedtls_ecp_point *X, - const char *id, - const unsigned char **p, - const unsigned char *end ) +static int ecjpake_zkp_read(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + const mbedtls_ecp_point *X, + const char *id, + const unsigned char **p, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point V, VV; mbedtls_mpi r, h; size_t r_len; - mbedtls_ecp_point_init( &V ); - mbedtls_ecp_point_init( &VV ); - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &h ); + mbedtls_ecp_point_init(&V); + mbedtls_ecp_point_init(&VV); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&h); /* * struct { @@ -296,64 +303,62 @@ static int ecjpake_zkp_read( const mbedtls_md_type_t md_type, * opaque r<1..2^8-1>; * } ECSchnorrZKP; */ - if( end < *p ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (end < *p) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_read_point( grp, &V, p, end - *p ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_read_point(grp, &V, p, end - *p)); - if( end < *p || (size_t)( end - *p ) < 1 ) - { + if (end < *p || (size_t) (end - *p) < 1) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } r_len = *(*p)++; - if( end < *p || (size_t)( end - *p ) < r_len || r_len == 0 ) - { + if (end < *p || (size_t) (end - *p) < r_len || r_len == 0) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &r, *p, r_len ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&r, *p, r_len)); *p += r_len; /* * Verification */ - MBEDTLS_MPI_CHK( ecjpake_hash( md_type, grp, pf, G, &V, X, id, &h ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( (mbedtls_ecp_group *) grp, - &VV, &h, X, &r, G ) ); + MBEDTLS_MPI_CHK(ecjpake_hash(md_type, grp, pf, G, &V, X, id, &h)); + MBEDTLS_MPI_CHK(mbedtls_ecp_muladd((mbedtls_ecp_group *) grp, + &VV, &h, X, &r, G)); - if( mbedtls_ecp_point_cmp( &VV, &V ) != 0 ) - { + if (mbedtls_ecp_point_cmp(&VV, &V) != 0) { ret = MBEDTLS_ERR_ECP_VERIFY_FAILED; goto cleanup; } cleanup: - mbedtls_ecp_point_free( &V ); - mbedtls_ecp_point_free( &VV ); - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &h ); + mbedtls_ecp_point_free(&V); + mbedtls_ecp_point_free(&VV); + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&h); - return( ret ); + return ret; } /* * Generate ZKP (7.4.2.3.2) and write it as ECSchnorrZKP (7.4.2.2.2) */ -static int ecjpake_zkp_write( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - const mbedtls_mpi *x, - const mbedtls_ecp_point *X, - const char *id, - unsigned char **p, - const unsigned char *end, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int ecjpake_zkp_write(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + const mbedtls_mpi *x, + const mbedtls_ecp_point *X, + const char *id, + unsigned char **p, + const unsigned char *end, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point V; @@ -361,62 +366,63 @@ static int ecjpake_zkp_write( const mbedtls_md_type_t md_type, mbedtls_mpi h; /* later recycled to hold r */ size_t len; - if( end < *p ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (end < *p) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - mbedtls_ecp_point_init( &V ); - mbedtls_mpi_init( &v ); - mbedtls_mpi_init( &h ); + mbedtls_ecp_point_init(&V); + mbedtls_mpi_init(&v); + mbedtls_mpi_init(&h); /* Compute signature */ - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_keypair_base( (mbedtls_ecp_group *) grp, - G, &v, &V, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( ecjpake_hash( md_type, grp, pf, G, &V, X, id, &h ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &h, &h, x ) ); /* x*h */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &h, &v, &h ) ); /* v - x*h */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &h, &h, &grp->N ) ); /* r */ + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_keypair_base((mbedtls_ecp_group *) grp, + G, &v, &V, f_rng, p_rng)); + MBEDTLS_MPI_CHK(ecjpake_hash(md_type, grp, pf, G, &V, X, id, &h)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&h, &h, x)); /* x*h */ + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&h, &v, &h)); /* v - x*h */ + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&h, &h, &grp->N)); /* r */ /* Write it out */ - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_write_point( grp, &V, - pf, &len, *p, end - *p ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_write_point(grp, &V, + pf, &len, *p, end - *p)); *p += len; - len = mbedtls_mpi_size( &h ); /* actually r */ - if( end < *p || (size_t)( end - *p ) < 1 + len || len > 255 ) - { + len = mbedtls_mpi_size(&h); /* actually r */ + if (end < *p || (size_t) (end - *p) < 1 + len || len > 255) { ret = MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; goto cleanup; } - *(*p)++ = MBEDTLS_BYTE_0( len ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &h, *p, len ) ); /* r */ + *(*p)++ = MBEDTLS_BYTE_0(len); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, *p, len)); /* r */ *p += len; cleanup: - mbedtls_ecp_point_free( &V ); - mbedtls_mpi_free( &v ); - mbedtls_mpi_free( &h ); + mbedtls_ecp_point_free(&V); + mbedtls_mpi_free(&v); + mbedtls_mpi_free(&h); - return( ret ); + return ret; } /* * Parse a ECJPAKEKeyKP (7.4.2.2.1) and check proof * Output: verified public key X */ -static int ecjpake_kkp_read( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - mbedtls_ecp_point *X, - const char *id, - const unsigned char **p, - const unsigned char *end ) +static int ecjpake_kkp_read(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + mbedtls_ecp_point *X, + const char *id, + const unsigned char **p, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( end < *p ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (end < *p) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * struct { @@ -424,69 +430,69 @@ static int ecjpake_kkp_read( const mbedtls_md_type_t md_type, * ECSchnorrZKP zkp; * } ECJPAKEKeyKP; */ - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_read_point( grp, X, p, end - *p ) ); - if( mbedtls_ecp_is_zero( X ) ) - { + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_read_point(grp, X, p, end - *p)); + if (mbedtls_ecp_is_zero(X)) { ret = MBEDTLS_ERR_ECP_INVALID_KEY; goto cleanup; } - MBEDTLS_MPI_CHK( ecjpake_zkp_read( md_type, grp, pf, G, X, id, p, end ) ); + MBEDTLS_MPI_CHK(ecjpake_zkp_read(md_type, grp, pf, G, X, id, p, end)); cleanup: - return( ret ); + return ret; } /* * Generate an ECJPAKEKeyKP * Output: the serialized structure, plus private/public key pair */ -static int ecjpake_kkp_write( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - mbedtls_mpi *x, - mbedtls_ecp_point *X, - const char *id, - unsigned char **p, - const unsigned char *end, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int ecjpake_kkp_write(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + mbedtls_mpi *x, + mbedtls_ecp_point *X, + const char *id, + unsigned char **p, + const unsigned char *end, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( end < *p ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (end < *p) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } /* Generate key (7.4.2.3.1) and write it out */ - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_keypair_base( (mbedtls_ecp_group *) grp, G, x, X, - f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_write_point( grp, X, - pf, &len, *p, end - *p ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_keypair_base((mbedtls_ecp_group *) grp, G, x, X, + f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_write_point(grp, X, + pf, &len, *p, end - *p)); *p += len; /* Generate and write proof */ - MBEDTLS_MPI_CHK( ecjpake_zkp_write( md_type, grp, pf, G, x, X, id, - p, end, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecjpake_zkp_write(md_type, grp, pf, G, x, X, id, + p, end, f_rng, p_rng)); cleanup: - return( ret ); + return ret; } /* * Read a ECJPAKEKeyKPPairList (7.4.2.3) and check proofs * Outputs: verified peer public keys Xa, Xb */ -static int ecjpake_kkpp_read( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - mbedtls_ecp_point *Xa, - mbedtls_ecp_point *Xb, - const char *id, - const unsigned char *buf, - size_t len ) +static int ecjpake_kkpp_read(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + mbedtls_ecp_point *Xa, + mbedtls_ecp_point *Xb, + const char *id, + const unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -497,106 +503,107 @@ static int ecjpake_kkpp_read( const mbedtls_md_type_t md_type, * ECJPAKEKeyKP ecjpake_key_kp_pair_list[2]; * } ECJPAKEKeyKPPairList; */ - MBEDTLS_MPI_CHK( ecjpake_kkp_read( md_type, grp, pf, G, Xa, id, &p, end ) ); - MBEDTLS_MPI_CHK( ecjpake_kkp_read( md_type, grp, pf, G, Xb, id, &p, end ) ); + MBEDTLS_MPI_CHK(ecjpake_kkp_read(md_type, grp, pf, G, Xa, id, &p, end)); + MBEDTLS_MPI_CHK(ecjpake_kkp_read(md_type, grp, pf, G, Xb, id, &p, end)); - if( p != end ) + if (p != end) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } cleanup: - return( ret ); + return ret; } /* * Generate a ECJPAKEKeyKPPairList * Outputs: the serialized structure, plus two private/public key pairs */ -static int ecjpake_kkpp_write( const mbedtls_md_type_t md_type, - const mbedtls_ecp_group *grp, - const int pf, - const mbedtls_ecp_point *G, - mbedtls_mpi *xm1, - mbedtls_ecp_point *Xa, - mbedtls_mpi *xm2, - mbedtls_ecp_point *Xb, - const char *id, - unsigned char *buf, - size_t len, - size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int ecjpake_kkpp_write(const mbedtls_md_type_t md_type, + const mbedtls_ecp_group *grp, + const int pf, + const mbedtls_ecp_point *G, + mbedtls_mpi *xm1, + mbedtls_ecp_point *Xa, + mbedtls_mpi *xm2, + mbedtls_ecp_point *Xb, + const char *id, + unsigned char *buf, + size_t len, + size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; const unsigned char *end = buf + len; - MBEDTLS_MPI_CHK( ecjpake_kkp_write( md_type, grp, pf, G, xm1, Xa, id, - &p, end, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( ecjpake_kkp_write( md_type, grp, pf, G, xm2, Xb, id, - &p, end, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecjpake_kkp_write(md_type, grp, pf, G, xm1, Xa, id, + &p, end, f_rng, p_rng)); + MBEDTLS_MPI_CHK(ecjpake_kkp_write(md_type, grp, pf, G, xm2, Xb, id, + &p, end, f_rng, p_rng)); *olen = p - buf; cleanup: - return( ret ); + return ret; } /* * Read and process the first round message */ -int mbedtls_ecjpake_read_round_one( mbedtls_ecjpake_context *ctx, - const unsigned char *buf, - size_t len ) +int mbedtls_ecjpake_read_round_one(mbedtls_ecjpake_context *ctx, + const unsigned char *buf, + size_t len) { - return( ecjpake_kkpp_read( ctx->md_type, &ctx->grp, ctx->point_format, - &ctx->grp.G, - &ctx->Xp1, &ctx->Xp2, ID_PEER, - buf, len ) ); + return ecjpake_kkpp_read(ctx->md_type, &ctx->grp, ctx->point_format, + &ctx->grp.G, + &ctx->Xp1, &ctx->Xp2, ID_PEER, + buf, len); } /* * Generate and write the first round message */ -int mbedtls_ecjpake_write_round_one( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecjpake_write_round_one(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( ecjpake_kkpp_write( ctx->md_type, &ctx->grp, ctx->point_format, - &ctx->grp.G, - &ctx->xm1, &ctx->Xm1, &ctx->xm2, &ctx->Xm2, - ID_MINE, buf, len, olen, f_rng, p_rng ) ); + return ecjpake_kkpp_write(ctx->md_type, &ctx->grp, ctx->point_format, + &ctx->grp.G, + &ctx->xm1, &ctx->Xm1, &ctx->xm2, &ctx->Xm2, + ID_MINE, buf, len, olen, f_rng, p_rng); } /* * Compute the sum of three points R = A + B + C */ -static int ecjpake_ecp_add3( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_ecp_point *A, - const mbedtls_ecp_point *B, - const mbedtls_ecp_point *C ) +static int ecjpake_ecp_add3(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_ecp_point *A, + const mbedtls_ecp_point *B, + const mbedtls_ecp_point *C) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi one; - mbedtls_mpi_init( &one ); + mbedtls_mpi_init(&one); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &one, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( grp, R, &one, A, &one, B ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( grp, R, &one, R, &one, C ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&one, 1)); + MBEDTLS_MPI_CHK(mbedtls_ecp_muladd(grp, R, &one, A, &one, B)); + MBEDTLS_MPI_CHK(mbedtls_ecp_muladd(grp, R, &one, R, &one, C)); cleanup: - mbedtls_mpi_free( &one ); + mbedtls_mpi_free(&one); - return( ret ); + return ret; } /* * Read and process second round message (C: 7.4.2.5, S: 7.4.2.6) */ -int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, - const unsigned char *buf, - size_t len ) +int mbedtls_ecjpake_read_round_two(mbedtls_ecjpake_context *ctx, + const unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -604,8 +611,8 @@ int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, mbedtls_ecp_group grp; mbedtls_ecp_point G; /* C: GB, S: GA */ - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &G ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&G); /* * Server: GA = X3 + X4 + X1 (7.4.2.6.1) @@ -613,8 +620,8 @@ int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, * Unified: G = Xm1 + Xm2 + Xp1 * We need that before parsing in order to check Xp as we read it */ - MBEDTLS_MPI_CHK( ecjpake_ecp_add3( &ctx->grp, &G, - &ctx->Xm1, &ctx->Xm2, &ctx->Xp1 ) ); + MBEDTLS_MPI_CHK(ecjpake_ecp_add3(&ctx->grp, &G, + &ctx->Xm1, &ctx->Xm2, &ctx->Xp1)); /* * struct { @@ -622,71 +629,68 @@ int mbedtls_ecjpake_read_round_two( mbedtls_ecjpake_context *ctx, * ECJPAKEKeyKP ecjpake_key_kp; * } Client/ServerECJPAKEParams; */ - if( ctx->role == MBEDTLS_ECJPAKE_CLIENT ) - { - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_read_group( &grp, &p, len ) ); - if( grp.id != ctx->grp.id ) - { + if (ctx->role == MBEDTLS_ECJPAKE_CLIENT) { + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_read_group(&grp, &p, len)); + if (grp.id != ctx->grp.id) { ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; goto cleanup; } } - MBEDTLS_MPI_CHK( ecjpake_kkp_read( ctx->md_type, &ctx->grp, - ctx->point_format, - &G, &ctx->Xp, ID_PEER, &p, end ) ); + MBEDTLS_MPI_CHK(ecjpake_kkp_read(ctx->md_type, &ctx->grp, + ctx->point_format, + &G, &ctx->Xp, ID_PEER, &p, end)); - if( p != end ) - { + if (p != end) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } cleanup: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &G ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&G); - return( ret ); + return ret; } /* * Compute R = +/- X * S mod N, taking care not to leak S */ -static int ecjpake_mul_secret( mbedtls_mpi *R, int sign, - const mbedtls_mpi *X, - const mbedtls_mpi *S, - const mbedtls_mpi *N, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int ecjpake_mul_secret(mbedtls_mpi *R, int sign, + const mbedtls_mpi *X, + const mbedtls_mpi *S, + const mbedtls_mpi *N, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi b; /* Blinding value, then s + N * blinding */ - mbedtls_mpi_init( &b ); + mbedtls_mpi_init(&b); /* b = s + rnd-128-bit * N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &b, 16, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &b, &b, N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &b, &b, S ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&b, 16, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&b, &b, N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&b, &b, S)); /* R = sign * X * b mod N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( R, X, &b ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(R, X, &b)); R->s *= sign; - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( R, R, N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(R, R, N)); cleanup: - mbedtls_mpi_free( &b ); + mbedtls_mpi_free(&b); - return( ret ); + return ret; } /* * Generate and write the second round message (S: 7.4.2.5, C: 7.4.2.6) */ -int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecjpake_write_round_two(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point G; /* C: GA, S: GB */ @@ -696,9 +700,9 @@ int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, const unsigned char *end = buf + len; size_t ec_len; - mbedtls_ecp_point_init( &G ); - mbedtls_ecp_point_init( &Xm ); - mbedtls_mpi_init( &xm ); + mbedtls_ecp_point_init(&G); + mbedtls_ecp_point_init(&Xm); + mbedtls_mpi_init(&xm); /* * First generate private/public key pair (S: 7.4.2.5.1, C: 7.4.2.6.1) @@ -707,11 +711,11 @@ int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, * Server: GB = X3 + X1 + X2 | xs = x4 * s | Xs = xs * GB * Unified: G = Xm1 + Xp1 + Xp2 | xm = xm2 * s | Xm = xm * G */ - MBEDTLS_MPI_CHK( ecjpake_ecp_add3( &ctx->grp, &G, - &ctx->Xp1, &ctx->Xp2, &ctx->Xm1 ) ); - MBEDTLS_MPI_CHK( ecjpake_mul_secret( &xm, 1, &ctx->xm2, &ctx->s, - &ctx->grp.N, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, &Xm, &xm, &G, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecjpake_ecp_add3(&ctx->grp, &G, + &ctx->Xp1, &ctx->Xp2, &ctx->Xm1)); + MBEDTLS_MPI_CHK(ecjpake_mul_secret(&xm, 1, &ctx->xm2, &ctx->s, + &ctx->grp.N, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&ctx->grp, &Xm, &xm, &G, f_rng, p_rng)); /* * Now write things out @@ -721,133 +725,134 @@ int mbedtls_ecjpake_write_round_two( mbedtls_ecjpake_context *ctx, * ECJPAKEKeyKP ecjpake_key_kp; * } Client/ServerECJPAKEParams; */ - if( ctx->role == MBEDTLS_ECJPAKE_SERVER ) - { - if( end < p ) - { + if (ctx->role == MBEDTLS_ECJPAKE_SERVER) { + if (end < p) { ret = MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_write_group( &ctx->grp, &ec_len, - p, end - p ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_write_group(&ctx->grp, &ec_len, + p, end - p)); p += ec_len; } - if( end < p ) - { + if (end < p) { ret = MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_ecp_tls_write_point( &ctx->grp, &Xm, - ctx->point_format, &ec_len, p, end - p ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_tls_write_point(&ctx->grp, &Xm, + ctx->point_format, &ec_len, p, end - p)); p += ec_len; - MBEDTLS_MPI_CHK( ecjpake_zkp_write( ctx->md_type, &ctx->grp, - ctx->point_format, - &G, &xm, &Xm, ID_MINE, - &p, end, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecjpake_zkp_write(ctx->md_type, &ctx->grp, + ctx->point_format, + &G, &xm, &Xm, ID_MINE, + &p, end, f_rng, p_rng)); *olen = p - buf; cleanup: - mbedtls_ecp_point_free( &G ); - mbedtls_ecp_point_free( &Xm ); - mbedtls_mpi_free( &xm ); + mbedtls_ecp_point_free(&G); + mbedtls_ecp_point_free(&Xm); + mbedtls_mpi_free(&xm); - return( ret ); + return ret; } /* * Derive PMS (7.4.2.7 / 7.4.2.8) */ -static int mbedtls_ecjpake_derive_k( mbedtls_ecjpake_context *ctx, - mbedtls_ecp_point *K, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int mbedtls_ecjpake_derive_k(mbedtls_ecjpake_context *ctx, + mbedtls_ecp_point *K, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi m_xm2_s, one; - mbedtls_mpi_init( &m_xm2_s ); - mbedtls_mpi_init( &one ); + mbedtls_mpi_init(&m_xm2_s); + mbedtls_mpi_init(&one); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &one, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&one, 1)); /* * Client: K = ( Xs - X4 * x2 * s ) * x2 * Server: K = ( Xc - X2 * x4 * s ) * x4 * Unified: K = ( Xp - Xp2 * xm2 * s ) * xm2 */ - MBEDTLS_MPI_CHK( ecjpake_mul_secret( &m_xm2_s, -1, &ctx->xm2, &ctx->s, - &ctx->grp.N, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_muladd( &ctx->grp, K, - &one, &ctx->Xp, - &m_xm2_s, &ctx->Xp2 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, K, &ctx->xm2, K, - f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecjpake_mul_secret(&m_xm2_s, -1, &ctx->xm2, &ctx->s, + &ctx->grp.N, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_ecp_muladd(&ctx->grp, K, + &one, &ctx->Xp, + &m_xm2_s, &ctx->Xp2)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&ctx->grp, K, &ctx->xm2, K, + f_rng, p_rng)); cleanup: - mbedtls_mpi_free( &m_xm2_s ); - mbedtls_mpi_free( &one ); + mbedtls_mpi_free(&m_xm2_s); + mbedtls_mpi_free(&one); - return( ret ); + return ret; } -int mbedtls_ecjpake_derive_secret( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecjpake_derive_secret(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point K; unsigned char kx[MBEDTLS_ECP_MAX_BYTES]; size_t x_bytes; - *olen = mbedtls_hash_info_get_size( ctx->md_type ); - if( len < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + *olen = mbedtls_hash_info_get_size(ctx->md_type); + if (len < *olen) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - mbedtls_ecp_point_init( &K ); + mbedtls_ecp_point_init(&K); ret = mbedtls_ecjpake_derive_k(ctx, &K, f_rng, p_rng); - if( ret ) + if (ret) { goto cleanup; + } /* PMS = SHA-256( K.X ) */ - x_bytes = ( ctx->grp.pbits + 7 ) / 8; - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &K.X, kx, x_bytes ) ); - MBEDTLS_MPI_CHK( mbedtls_ecjpake_compute_hash( ctx->md_type, - kx, x_bytes, buf ) ); + x_bytes = (ctx->grp.pbits + 7) / 8; + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&K.X, kx, x_bytes)); + MBEDTLS_MPI_CHK(mbedtls_ecjpake_compute_hash(ctx->md_type, + kx, x_bytes, buf)); cleanup: - mbedtls_ecp_point_free( &K ); + mbedtls_ecp_point_free(&K); - return( ret ); + return ret; } -int mbedtls_ecjpake_write_shared_key( mbedtls_ecjpake_context *ctx, - unsigned char *buf, size_t len, size_t *olen, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecjpake_write_shared_key(mbedtls_ecjpake_context *ctx, + unsigned char *buf, size_t len, size_t *olen, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point K; - mbedtls_ecp_point_init( &K ); + mbedtls_ecp_point_init(&K); ret = mbedtls_ecjpake_derive_k(ctx, &K, f_rng, p_rng); - if( ret ) + if (ret) { goto cleanup; + } - ret = mbedtls_ecp_point_write_binary( &ctx->grp, &K, ctx->point_format, - olen, buf, len ); - if( ret != 0 ) + ret = mbedtls_ecp_point_write_binary(&ctx->grp, &K, ctx->point_format, + olen, buf, len); + if (ret != 0) { goto cleanup; + } cleanup: - mbedtls_ecp_point_free( &K ); + mbedtls_ecp_point_free(&K); - return( ret ); + return ret; } #undef ID_MINE @@ -861,10 +866,10 @@ cleanup: #if !defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ !defined(MBEDTLS_SHA256_C) -int mbedtls_ecjpake_self_test( int verbose ) +int mbedtls_ecjpake_self_test(int verbose) { (void) verbose; - return( 0 ); + return 0; } #else @@ -1017,75 +1022,73 @@ static const unsigned char ecjpake_test_pms[] = { * except we only use the low byte as the output. See * https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use */ -static int self_test_rng( void *ctx, unsigned char *out, size_t len ) +static int self_test_rng(void *ctx, unsigned char *out, size_t len) { static uint32_t state = 42; (void) ctx; - for( size_t i = 0; i < len; i++ ) - { + for (size_t i = 0; i < len; i++) { state = state * 1664525u + 1013904223u; out[i] = (unsigned char) state; } - return( 0 ); + return 0; } /* Load my private keys and generate the corresponding public keys */ -static int ecjpake_test_load( mbedtls_ecjpake_context *ctx, - const unsigned char *xm1, size_t len1, - const unsigned char *xm2, size_t len2 ) +static int ecjpake_test_load(mbedtls_ecjpake_context *ctx, + const unsigned char *xm1, size_t len1, + const unsigned char *xm2, size_t len2) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len2 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, &ctx->Xm1, &ctx->xm1, - &ctx->grp.G, self_test_rng, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &ctx->grp, &ctx->Xm2, &ctx->xm2, - &ctx->grp.G, self_test_rng, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm1, xm1, len1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm2, xm2, len2)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&ctx->grp, &ctx->Xm1, &ctx->xm1, + &ctx->grp.G, self_test_rng, NULL)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&ctx->grp, &ctx->Xm2, &ctx->xm2, + &ctx->grp.G, self_test_rng, NULL)); cleanup: - return( ret ); + return ret; } #endif /* ! MBEDTLS_ECJPAKE_ALT */ /* For tests we don't need a secure RNG; * use the LGC from Numerical Recipes for simplicity */ -static int ecjpake_lgc( void *p, unsigned char *out, size_t len ) +static int ecjpake_lgc(void *p, unsigned char *out, size_t len) { static uint32_t x = 42; (void) p; - while( len > 0 ) - { + while (len > 0) { size_t use_len = len > 4 ? 4 : len; x = 1664525 * x + 1013904223; - memcpy( out, &x, use_len ); + memcpy(out, &x, use_len); out += use_len; len -= use_len; } - return( 0 ); + return 0; } -#define TEST_ASSERT( x ) \ +#define TEST_ASSERT(x) \ do { \ - if( x ) \ - ret = 0; \ + if (x) \ + ret = 0; \ else \ { \ ret = 1; \ goto cleanup; \ } \ - } while( 0 ) + } while (0) /* * Checkup routine */ -int mbedtls_ecjpake_self_test( int verbose ) +int mbedtls_ecjpake_self_test(int verbose) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecjpake_context cli; @@ -1093,59 +1096,63 @@ int mbedtls_ecjpake_self_test( int verbose ) unsigned char buf[512], pms[32]; size_t len, pmslen; - mbedtls_ecjpake_init( &cli ); - mbedtls_ecjpake_init( &srv ); + mbedtls_ecjpake_init(&cli); + mbedtls_ecjpake_init(&srv); - if( verbose != 0 ) - mbedtls_printf( " ECJPAKE test #0 (setup): " ); + if (verbose != 0) { + mbedtls_printf(" ECJPAKE test #0 (setup): "); + } - TEST_ASSERT( mbedtls_ecjpake_setup( &cli, MBEDTLS_ECJPAKE_CLIENT, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, - ecjpake_test_password, - sizeof( ecjpake_test_password ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_setup(&cli, MBEDTLS_ECJPAKE_CLIENT, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, + ecjpake_test_password, + sizeof(ecjpake_test_password)) == 0); - TEST_ASSERT( mbedtls_ecjpake_setup( &srv, MBEDTLS_ECJPAKE_SERVER, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, - ecjpake_test_password, - sizeof( ecjpake_test_password ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_setup(&srv, MBEDTLS_ECJPAKE_SERVER, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, + ecjpake_test_password, + sizeof(ecjpake_test_password)) == 0); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( " ECJPAKE test #1 (random handshake): " ); + if (verbose != 0) { + mbedtls_printf(" ECJPAKE test #1 (random handshake): "); + } - TEST_ASSERT( mbedtls_ecjpake_write_round_one( &cli, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_round_one(&cli, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_one( &srv, buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_one(&srv, buf, len) == 0); - TEST_ASSERT( mbedtls_ecjpake_write_round_one( &srv, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_round_one(&srv, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_one( &cli, buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_one(&cli, buf, len) == 0); - TEST_ASSERT( mbedtls_ecjpake_write_round_two( &srv, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_round_two(&srv, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &cli, buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&cli, buf, len) == 0); - TEST_ASSERT( mbedtls_ecjpake_derive_secret( &cli, - pms, sizeof( pms ), &pmslen, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_derive_secret(&cli, + pms, sizeof(pms), &pmslen, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( mbedtls_ecjpake_write_round_two( &cli, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_round_two(&cli, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &srv, buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&srv, buf, len) == 0); - TEST_ASSERT( mbedtls_ecjpake_derive_secret( &srv, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_derive_secret(&srv, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( len == pmslen ); - TEST_ASSERT( memcmp( buf, pms, len ) == 0 ); + TEST_ASSERT(len == pmslen); + TEST_ASSERT(memcmp(buf, pms, len) == 0); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } #if !defined(MBEDTLS_ECJPAKE_ALT) /* 'reference handshake' tests can only be run against implementations @@ -1153,86 +1160,89 @@ int mbedtls_ecjpake_self_test( int verbose ) * are generated. This is only the case for the internal mbed TLS * implementation, so these tests are skipped in case the internal * implementation is swapped out for an alternative one. */ - if( verbose != 0 ) - mbedtls_printf( " ECJPAKE test #2 (reference handshake): " ); + if (verbose != 0) { + mbedtls_printf(" ECJPAKE test #2 (reference handshake): "); + } /* Simulate generation of round one */ - MBEDTLS_MPI_CHK( ecjpake_test_load( &cli, - ecjpake_test_x1, sizeof( ecjpake_test_x1 ), - ecjpake_test_x2, sizeof( ecjpake_test_x2 ) ) ); + MBEDTLS_MPI_CHK(ecjpake_test_load(&cli, + ecjpake_test_x1, sizeof(ecjpake_test_x1), + ecjpake_test_x2, sizeof(ecjpake_test_x2))); - MBEDTLS_MPI_CHK( ecjpake_test_load( &srv, - ecjpake_test_x3, sizeof( ecjpake_test_x3 ), - ecjpake_test_x4, sizeof( ecjpake_test_x4 ) ) ); + MBEDTLS_MPI_CHK(ecjpake_test_load(&srv, + ecjpake_test_x3, sizeof(ecjpake_test_x3), + ecjpake_test_x4, sizeof(ecjpake_test_x4))); /* Read round one */ - TEST_ASSERT( mbedtls_ecjpake_read_round_one( &srv, - ecjpake_test_cli_one, - sizeof( ecjpake_test_cli_one ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_one(&srv, + ecjpake_test_cli_one, + sizeof(ecjpake_test_cli_one)) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_one( &cli, - ecjpake_test_srv_one, - sizeof( ecjpake_test_srv_one ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_one(&cli, + ecjpake_test_srv_one, + sizeof(ecjpake_test_srv_one)) == 0); /* Skip generation of round two, read round two */ - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &cli, - ecjpake_test_srv_two, - sizeof( ecjpake_test_srv_two ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&cli, + ecjpake_test_srv_two, + sizeof(ecjpake_test_srv_two)) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &srv, - ecjpake_test_cli_two, - sizeof( ecjpake_test_cli_two ) ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&srv, + ecjpake_test_cli_two, + sizeof(ecjpake_test_cli_two)) == 0); /* Server derives PMS */ - TEST_ASSERT( mbedtls_ecjpake_derive_secret( &srv, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_derive_secret(&srv, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( len == sizeof( ecjpake_test_pms ) ); - TEST_ASSERT( memcmp( buf, ecjpake_test_pms, len ) == 0 ); + TEST_ASSERT(len == sizeof(ecjpake_test_pms)); + TEST_ASSERT(memcmp(buf, ecjpake_test_pms, len) == 0); /* Server derives K as unsigned binary data */ - TEST_ASSERT( mbedtls_ecjpake_write_shared_key( &srv, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_shared_key(&srv, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( len == sizeof( ecjpake_test_shared_key ) ); - TEST_ASSERT( memcmp( buf, ecjpake_test_shared_key, len ) == 0 ); + TEST_ASSERT(len == sizeof(ecjpake_test_shared_key)); + TEST_ASSERT(memcmp(buf, ecjpake_test_shared_key, len) == 0); - memset( buf, 0, len ); /* Avoid interferences with next step */ + memset(buf, 0, len); /* Avoid interferences with next step */ /* Client derives PMS */ - TEST_ASSERT( mbedtls_ecjpake_derive_secret( &cli, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_derive_secret(&cli, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( len == sizeof( ecjpake_test_pms ) ); - TEST_ASSERT( memcmp( buf, ecjpake_test_pms, len ) == 0 ); + TEST_ASSERT(len == sizeof(ecjpake_test_pms)); + TEST_ASSERT(memcmp(buf, ecjpake_test_pms, len) == 0); /* Client derives K as unsigned binary data */ - TEST_ASSERT( mbedtls_ecjpake_write_shared_key( &cli, - buf, sizeof( buf ), &len, ecjpake_lgc, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_write_shared_key(&cli, + buf, sizeof(buf), &len, ecjpake_lgc, NULL) == 0); - TEST_ASSERT( len == sizeof( ecjpake_test_shared_key ) ); - TEST_ASSERT( memcmp( buf, ecjpake_test_shared_key, len ) == 0 ); + TEST_ASSERT(len == sizeof(ecjpake_test_shared_key)); + TEST_ASSERT(memcmp(buf, ecjpake_test_shared_key, len) == 0); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } #endif /* ! MBEDTLS_ECJPAKE_ALT */ cleanup: - mbedtls_ecjpake_free( &cli ); - mbedtls_ecjpake_free( &srv ); + mbedtls_ecjpake_free(&cli); + mbedtls_ecjpake_free(&srv); - if( ret != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (ret != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( ret ); + return ret; } #undef TEST_ASSERT diff --git a/library/ecp.c b/library/ecp.c index b6ed60acb..d9d5425ed 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -112,7 +112,7 @@ static unsigned ecp_max_ops = 0; /* * Set ecp_max_ops */ -void mbedtls_ecp_set_max_ops( unsigned max_ops ) +void mbedtls_ecp_set_max_ops(unsigned max_ops) { ecp_max_ops = max_ops; } @@ -120,16 +120,15 @@ void mbedtls_ecp_set_max_ops( unsigned max_ops ) /* * Check if restart is enabled */ -int mbedtls_ecp_restart_is_enabled( void ) +int mbedtls_ecp_restart_is_enabled(void) { - return( ecp_max_ops != 0 ); + return ecp_max_ops != 0; } /* * Restart sub-context for ecp_mul_comb() */ -struct mbedtls_ecp_restart_mul -{ +struct mbedtls_ecp_restart_mul { mbedtls_ecp_point R; /* current intermediate result */ size_t i; /* current index in various loops, 0 outside */ mbedtls_ecp_point *T; /* table for precomputed points */ @@ -148,9 +147,9 @@ struct mbedtls_ecp_restart_mul /* * Init restart_mul sub-context */ -static void ecp_restart_rsm_init( mbedtls_ecp_restart_mul_ctx *ctx ) +static void ecp_restart_rsm_init(mbedtls_ecp_restart_mul_ctx *ctx) { - mbedtls_ecp_point_init( &ctx->R ); + mbedtls_ecp_point_init(&ctx->R); ctx->i = 0; ctx->T = NULL; ctx->T_size = 0; @@ -160,30 +159,30 @@ static void ecp_restart_rsm_init( mbedtls_ecp_restart_mul_ctx *ctx ) /* * Free the components of a restart_mul sub-context */ -static void ecp_restart_rsm_free( mbedtls_ecp_restart_mul_ctx *ctx ) +static void ecp_restart_rsm_free(mbedtls_ecp_restart_mul_ctx *ctx) { unsigned char i; - if( ctx == NULL ) + if (ctx == NULL) { return; - - mbedtls_ecp_point_free( &ctx->R ); - - if( ctx->T != NULL ) - { - for( i = 0; i < ctx->T_size; i++ ) - mbedtls_ecp_point_free( ctx->T + i ); - mbedtls_free( ctx->T ); } - ecp_restart_rsm_init( ctx ); + mbedtls_ecp_point_free(&ctx->R); + + if (ctx->T != NULL) { + for (i = 0; i < ctx->T_size; i++) { + mbedtls_ecp_point_free(ctx->T + i); + } + mbedtls_free(ctx->T); + } + + ecp_restart_rsm_init(ctx); } /* * Restart context for ecp_muladd() */ -struct mbedtls_ecp_restart_muladd -{ +struct mbedtls_ecp_restart_muladd { mbedtls_ecp_point mP; /* mP value */ mbedtls_ecp_point R; /* R intermediate result */ enum { /* what should we do next? */ @@ -197,31 +196,32 @@ struct mbedtls_ecp_restart_muladd /* * Init restart_muladd sub-context */ -static void ecp_restart_ma_init( mbedtls_ecp_restart_muladd_ctx *ctx ) +static void ecp_restart_ma_init(mbedtls_ecp_restart_muladd_ctx *ctx) { - mbedtls_ecp_point_init( &ctx->mP ); - mbedtls_ecp_point_init( &ctx->R ); + mbedtls_ecp_point_init(&ctx->mP); + mbedtls_ecp_point_init(&ctx->R); ctx->state = ecp_rsma_mul1; } /* * Free the components of a restart_muladd sub-context */ -static void ecp_restart_ma_free( mbedtls_ecp_restart_muladd_ctx *ctx ) +static void ecp_restart_ma_free(mbedtls_ecp_restart_muladd_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_ecp_point_free( &ctx->mP ); - mbedtls_ecp_point_free( &ctx->R ); + mbedtls_ecp_point_free(&ctx->mP); + mbedtls_ecp_point_free(&ctx->R); - ecp_restart_ma_init( ctx ); + ecp_restart_ma_init(ctx); } /* * Initialize a restart context */ -void mbedtls_ecp_restart_init( mbedtls_ecp_restart_ctx *ctx ) +void mbedtls_ecp_restart_init(mbedtls_ecp_restart_ctx *ctx) { ctx->ops_done = 0; ctx->depth = 0; @@ -232,104 +232,106 @@ void mbedtls_ecp_restart_init( mbedtls_ecp_restart_ctx *ctx ) /* * Free the components of a restart context */ -void mbedtls_ecp_restart_free( mbedtls_ecp_restart_ctx *ctx ) +void mbedtls_ecp_restart_free(mbedtls_ecp_restart_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - ecp_restart_rsm_free( ctx->rsm ); - mbedtls_free( ctx->rsm ); + ecp_restart_rsm_free(ctx->rsm); + mbedtls_free(ctx->rsm); - ecp_restart_ma_free( ctx->ma ); - mbedtls_free( ctx->ma ); + ecp_restart_ma_free(ctx->ma); + mbedtls_free(ctx->ma); - mbedtls_ecp_restart_init( ctx ); + mbedtls_ecp_restart_init(ctx); } /* * Check if we can do the next step */ -int mbedtls_ecp_check_budget( const mbedtls_ecp_group *grp, - mbedtls_ecp_restart_ctx *rs_ctx, - unsigned ops ) +int mbedtls_ecp_check_budget(const mbedtls_ecp_group *grp, + mbedtls_ecp_restart_ctx *rs_ctx, + unsigned ops) { - if( rs_ctx != NULL && ecp_max_ops != 0 ) - { + if (rs_ctx != NULL && ecp_max_ops != 0) { /* scale depending on curve size: the chosen reference is 256-bit, * and multiplication is quadratic. Round to the closest integer. */ - if( grp->pbits >= 512 ) + if (grp->pbits >= 512) { ops *= 4; - else if( grp->pbits >= 384 ) + } else if (grp->pbits >= 384) { ops *= 2; + } /* Avoid infinite loops: always allow first step. * Because of that, however, it's not generally true * that ops_done <= ecp_max_ops, so the check * ops_done > ecp_max_ops below is mandatory. */ - if( ( rs_ctx->ops_done != 0 ) && - ( rs_ctx->ops_done > ecp_max_ops || - ops > ecp_max_ops - rs_ctx->ops_done ) ) - { - return( MBEDTLS_ERR_ECP_IN_PROGRESS ); + if ((rs_ctx->ops_done != 0) && + (rs_ctx->ops_done > ecp_max_ops || + ops > ecp_max_ops - rs_ctx->ops_done)) { + return MBEDTLS_ERR_ECP_IN_PROGRESS; } /* update running count */ rs_ctx->ops_done += ops; } - return( 0 ); + return 0; } /* Call this when entering a function that needs its own sub-context */ -#define ECP_RS_ENTER( SUB ) do { \ - /* reset ops count for this call if top-level */ \ - if( rs_ctx != NULL && rs_ctx->depth++ == 0 ) \ +#define ECP_RS_ENTER(SUB) do { \ + /* reset ops count for this call if top-level */ \ + if (rs_ctx != NULL && rs_ctx->depth++ == 0) \ rs_ctx->ops_done = 0; \ \ - /* set up our own sub-context if needed */ \ - if( mbedtls_ecp_restart_is_enabled() && \ - rs_ctx != NULL && rs_ctx->SUB == NULL ) \ - { \ - rs_ctx->SUB = mbedtls_calloc( 1, sizeof( *rs_ctx->SUB ) ); \ - if( rs_ctx->SUB == NULL ) \ - return( MBEDTLS_ERR_ECP_ALLOC_FAILED ); \ - \ - ecp_restart_## SUB ##_init( rs_ctx->SUB ); \ - } \ -} while( 0 ) + /* set up our own sub-context if needed */ \ + if (mbedtls_ecp_restart_is_enabled() && \ + rs_ctx != NULL && rs_ctx->SUB == NULL) \ + { \ + rs_ctx->SUB = mbedtls_calloc(1, sizeof(*rs_ctx->SUB)); \ + if (rs_ctx->SUB == NULL) \ + return MBEDTLS_ERR_ECP_ALLOC_FAILED; \ + \ + ecp_restart_## SUB ##_init(rs_ctx->SUB); \ + } \ +} while (0) /* Call this when leaving a function that needs its own sub-context */ -#define ECP_RS_LEAVE( SUB ) do { \ - /* clear our sub-context when not in progress (done or error) */ \ - if( rs_ctx != NULL && rs_ctx->SUB != NULL && \ - ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) \ - { \ - ecp_restart_## SUB ##_free( rs_ctx->SUB ); \ - mbedtls_free( rs_ctx->SUB ); \ - rs_ctx->SUB = NULL; \ - } \ +#define ECP_RS_LEAVE(SUB) do { \ + /* clear our sub-context when not in progress (done or error) */ \ + if (rs_ctx != NULL && rs_ctx->SUB != NULL && \ + ret != MBEDTLS_ERR_ECP_IN_PROGRESS) \ + { \ + ecp_restart_## SUB ##_free(rs_ctx->SUB); \ + mbedtls_free(rs_ctx->SUB); \ + rs_ctx->SUB = NULL; \ + } \ \ - if( rs_ctx != NULL ) \ + if (rs_ctx != NULL) \ rs_ctx->depth--; \ -} while( 0 ) +} while (0) #else /* MBEDTLS_ECP_RESTARTABLE */ -#define ECP_RS_ENTER( sub ) (void) rs_ctx; -#define ECP_RS_LEAVE( sub ) (void) rs_ctx; +#define ECP_RS_ENTER(sub) (void) rs_ctx; +#define ECP_RS_LEAVE(sub) (void) rs_ctx; #endif /* MBEDTLS_ECP_RESTARTABLE */ -static void mpi_init_many( mbedtls_mpi *arr, size_t size ) +static void mpi_init_many(mbedtls_mpi *arr, size_t size) { - while( size-- ) - mbedtls_mpi_init( arr++ ); + while (size--) { + mbedtls_mpi_init(arr++); + } } -static void mpi_free_many( mbedtls_mpi *arr, size_t size ) +static void mpi_free_many(mbedtls_mpi *arr, size_t size) { - while( size-- ) - mbedtls_mpi_free( arr++ ); + while (size--) { + mbedtls_mpi_free(arr++); + } } /* @@ -388,35 +390,33 @@ static const mbedtls_ecp_curve_info ecp_supported_curves[] = { MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, }; -#define ECP_NB_CURVES sizeof( ecp_supported_curves ) / \ - sizeof( ecp_supported_curves[0] ) +#define ECP_NB_CURVES sizeof(ecp_supported_curves) / \ + sizeof(ecp_supported_curves[0]) static mbedtls_ecp_group_id ecp_supported_grp_id[ECP_NB_CURVES]; /* * List of supported curves and associated info */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_list( void ) +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_list(void) { - return( ecp_supported_curves ); + return ecp_supported_curves; } /* * List of supported curves, group ID only */ -const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list( void ) +const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list(void) { static int init_done = 0; - if( ! init_done ) - { + if (!init_done) { size_t i = 0; const mbedtls_ecp_curve_info *curve_info; - for( curve_info = mbedtls_ecp_curve_list(); + for (curve_info = mbedtls_ecp_curve_list(); curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { + curve_info++) { ecp_supported_grp_id[i++] = curve_info->grp_id; } ecp_supported_grp_id[i] = MBEDTLS_ECP_DP_NONE; @@ -424,101 +424,104 @@ const mbedtls_ecp_group_id *mbedtls_ecp_grp_id_list( void ) init_done = 1; } - return( ecp_supported_grp_id ); + return ecp_supported_grp_id; } /* * Get the curve info for the internal identifier */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_grp_id( mbedtls_ecp_group_id grp_id ) +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_grp_id(mbedtls_ecp_group_id grp_id) { const mbedtls_ecp_curve_info *curve_info; - for( curve_info = mbedtls_ecp_curve_list(); + for (curve_info = mbedtls_ecp_curve_list(); curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( curve_info->grp_id == grp_id ) - return( curve_info ); + curve_info++) { + if (curve_info->grp_id == grp_id) { + return curve_info; + } } - return( NULL ); + return NULL; } /* * Get the curve info from the TLS identifier */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_tls_id( uint16_t tls_id ) +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_tls_id(uint16_t tls_id) { const mbedtls_ecp_curve_info *curve_info; - for( curve_info = mbedtls_ecp_curve_list(); + for (curve_info = mbedtls_ecp_curve_list(); curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( curve_info->tls_id == tls_id ) - return( curve_info ); + curve_info++) { + if (curve_info->tls_id == tls_id) { + return curve_info; + } } - return( NULL ); + return NULL; } /* * Get the curve info from the name */ -const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_name( const char *name ) +const mbedtls_ecp_curve_info *mbedtls_ecp_curve_info_from_name(const char *name) { const mbedtls_ecp_curve_info *curve_info; - if( name == NULL ) - return( NULL ); - - for( curve_info = mbedtls_ecp_curve_list(); - curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( strcmp( curve_info->name, name ) == 0 ) - return( curve_info ); + if (name == NULL) { + return NULL; } - return( NULL ); + for (curve_info = mbedtls_ecp_curve_list(); + curve_info->grp_id != MBEDTLS_ECP_DP_NONE; + curve_info++) { + if (strcmp(curve_info->name, name) == 0) { + return curve_info; + } + } + + return NULL; } /* * Get the type of a curve */ -mbedtls_ecp_curve_type mbedtls_ecp_get_type( const mbedtls_ecp_group *grp ) +mbedtls_ecp_curve_type mbedtls_ecp_get_type(const mbedtls_ecp_group *grp) { - if( grp->G.X.p == NULL ) - return( MBEDTLS_ECP_TYPE_NONE ); + if (grp->G.X.p == NULL) { + return MBEDTLS_ECP_TYPE_NONE; + } - if( grp->G.Y.p == NULL ) - return( MBEDTLS_ECP_TYPE_MONTGOMERY ); - else - return( MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ); + if (grp->G.Y.p == NULL) { + return MBEDTLS_ECP_TYPE_MONTGOMERY; + } else { + return MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS; + } } /* * Initialize (the components of) a point */ -void mbedtls_ecp_point_init( mbedtls_ecp_point *pt ) +void mbedtls_ecp_point_init(mbedtls_ecp_point *pt) { - mbedtls_mpi_init( &pt->X ); - mbedtls_mpi_init( &pt->Y ); - mbedtls_mpi_init( &pt->Z ); + mbedtls_mpi_init(&pt->X); + mbedtls_mpi_init(&pt->Y); + mbedtls_mpi_init(&pt->Z); } /* * Initialize (the components of) a group */ -void mbedtls_ecp_group_init( mbedtls_ecp_group *grp ) +void mbedtls_ecp_group_init(mbedtls_ecp_group *grp) { grp->id = MBEDTLS_ECP_DP_NONE; - mbedtls_mpi_init( &grp->P ); - mbedtls_mpi_init( &grp->A ); - mbedtls_mpi_init( &grp->B ); - mbedtls_ecp_point_init( &grp->G ); - mbedtls_mpi_init( &grp->N ); + mbedtls_mpi_init(&grp->P); + mbedtls_mpi_init(&grp->A); + mbedtls_mpi_init(&grp->B); + mbedtls_ecp_point_init(&grp->G); + mbedtls_mpi_init(&grp->N); grp->pbits = 0; grp->nbits = 0; grp->h = 0; @@ -533,30 +536,32 @@ void mbedtls_ecp_group_init( mbedtls_ecp_group *grp ) /* * Initialize (the components of) a key pair */ -void mbedtls_ecp_keypair_init( mbedtls_ecp_keypair *key ) +void mbedtls_ecp_keypair_init(mbedtls_ecp_keypair *key) { - mbedtls_ecp_group_init( &key->grp ); - mbedtls_mpi_init( &key->d ); - mbedtls_ecp_point_init( &key->Q ); + mbedtls_ecp_group_init(&key->grp); + mbedtls_mpi_init(&key->d); + mbedtls_ecp_point_init(&key->Q); } /* * Unallocate (the components of) a point */ -void mbedtls_ecp_point_free( mbedtls_ecp_point *pt ) +void mbedtls_ecp_point_free(mbedtls_ecp_point *pt) { - if( pt == NULL ) + if (pt == NULL) { return; + } - mbedtls_mpi_free( &( pt->X ) ); - mbedtls_mpi_free( &( pt->Y ) ); - mbedtls_mpi_free( &( pt->Z ) ); + mbedtls_mpi_free(&(pt->X)); + mbedtls_mpi_free(&(pt->Y)); + mbedtls_mpi_free(&(pt->Z)); } /* * Check that the comb table (grp->T) is static initialized. */ -static int ecp_group_is_static_comb_table( const mbedtls_ecp_group *grp ) { +static int ecp_group_is_static_comb_table(const mbedtls_ecp_group *grp) +{ #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 return grp->T != NULL && grp->T_size == 0; #else @@ -568,268 +573,268 @@ static int ecp_group_is_static_comb_table( const mbedtls_ecp_group *grp ) { /* * Unallocate (the components of) a group */ -void mbedtls_ecp_group_free( mbedtls_ecp_group *grp ) +void mbedtls_ecp_group_free(mbedtls_ecp_group *grp) { size_t i; - if( grp == NULL ) + if (grp == NULL) { return; - - if( grp->h != 1 ) - { - mbedtls_mpi_free( &grp->P ); - mbedtls_mpi_free( &grp->A ); - mbedtls_mpi_free( &grp->B ); - mbedtls_ecp_point_free( &grp->G ); - mbedtls_mpi_free( &grp->N ); } - if( !ecp_group_is_static_comb_table(grp) && grp->T != NULL ) - { - for( i = 0; i < grp->T_size; i++ ) - mbedtls_ecp_point_free( &grp->T[i] ); - mbedtls_free( grp->T ); + if (grp->h != 1) { + mbedtls_mpi_free(&grp->P); + mbedtls_mpi_free(&grp->A); + mbedtls_mpi_free(&grp->B); + mbedtls_ecp_point_free(&grp->G); + mbedtls_mpi_free(&grp->N); } - mbedtls_platform_zeroize( grp, sizeof( mbedtls_ecp_group ) ); + if (!ecp_group_is_static_comb_table(grp) && grp->T != NULL) { + for (i = 0; i < grp->T_size; i++) { + mbedtls_ecp_point_free(&grp->T[i]); + } + mbedtls_free(grp->T); + } + + mbedtls_platform_zeroize(grp, sizeof(mbedtls_ecp_group)); } /* * Unallocate (the components of) a key pair */ -void mbedtls_ecp_keypair_free( mbedtls_ecp_keypair *key ) +void mbedtls_ecp_keypair_free(mbedtls_ecp_keypair *key) { - if( key == NULL ) + if (key == NULL) { return; + } - mbedtls_ecp_group_free( &key->grp ); - mbedtls_mpi_free( &key->d ); - mbedtls_ecp_point_free( &key->Q ); + mbedtls_ecp_group_free(&key->grp); + mbedtls_mpi_free(&key->d); + mbedtls_ecp_point_free(&key->Q); } /* * Copy the contents of a point */ -int mbedtls_ecp_copy( mbedtls_ecp_point *P, const mbedtls_ecp_point *Q ) +int mbedtls_ecp_copy(mbedtls_ecp_point *P, const mbedtls_ecp_point *Q) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &P->X, &Q->X ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &P->Y, &Q->Y ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &P->Z, &Q->Z ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&P->X, &Q->X)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&P->Y, &Q->Y)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&P->Z, &Q->Z)); cleanup: - return( ret ); + return ret; } /* * Copy the contents of a group object */ -int mbedtls_ecp_group_copy( mbedtls_ecp_group *dst, const mbedtls_ecp_group *src ) +int mbedtls_ecp_group_copy(mbedtls_ecp_group *dst, const mbedtls_ecp_group *src) { - return( mbedtls_ecp_group_load( dst, src->id ) ); + return mbedtls_ecp_group_load(dst, src->id); } /* * Set point to zero */ -int mbedtls_ecp_set_zero( mbedtls_ecp_point *pt ) +int mbedtls_ecp_set_zero(mbedtls_ecp_point *pt) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->X , 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Y , 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Z , 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&pt->X, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&pt->Y, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&pt->Z, 0)); cleanup: - return( ret ); + return ret; } /* * Tell if a point is zero */ -int mbedtls_ecp_is_zero( mbedtls_ecp_point *pt ) +int mbedtls_ecp_is_zero(mbedtls_ecp_point *pt) { - return( mbedtls_mpi_cmp_int( &pt->Z, 0 ) == 0 ); + return mbedtls_mpi_cmp_int(&pt->Z, 0) == 0; } /* * Compare two points lazily */ -int mbedtls_ecp_point_cmp( const mbedtls_ecp_point *P, - const mbedtls_ecp_point *Q ) +int mbedtls_ecp_point_cmp(const mbedtls_ecp_point *P, + const mbedtls_ecp_point *Q) { - if( mbedtls_mpi_cmp_mpi( &P->X, &Q->X ) == 0 && - mbedtls_mpi_cmp_mpi( &P->Y, &Q->Y ) == 0 && - mbedtls_mpi_cmp_mpi( &P->Z, &Q->Z ) == 0 ) - { - return( 0 ); + if (mbedtls_mpi_cmp_mpi(&P->X, &Q->X) == 0 && + mbedtls_mpi_cmp_mpi(&P->Y, &Q->Y) == 0 && + mbedtls_mpi_cmp_mpi(&P->Z, &Q->Z) == 0) { + return 0; } - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } /* * Import a non-zero point from ASCII strings */ -int mbedtls_ecp_point_read_string( mbedtls_ecp_point *P, int radix, - const char *x, const char *y ) +int mbedtls_ecp_point_read_string(mbedtls_ecp_point *P, int radix, + const char *x, const char *y) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &P->X, radix, x ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &P->Y, radix, y ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &P->Z, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&P->X, radix, x)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&P->Y, radix, y)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&P->Z, 1)); cleanup: - return( ret ); + return ret; } /* * Export a point into unsigned binary data (SEC1 2.3.3 and RFC7748) */ -int mbedtls_ecp_point_write_binary( const mbedtls_ecp_group *grp, - const mbedtls_ecp_point *P, - int format, size_t *olen, - unsigned char *buf, size_t buflen ) +int mbedtls_ecp_point_write_binary(const mbedtls_ecp_group *grp, + const mbedtls_ecp_point *P, + int format, size_t *olen, + unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; size_t plen; - if( format != MBEDTLS_ECP_PF_UNCOMPRESSED && - format != MBEDTLS_ECP_PF_COMPRESSED ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (format != MBEDTLS_ECP_PF_UNCOMPRESSED && + format != MBEDTLS_ECP_PF_COMPRESSED) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - plen = mbedtls_mpi_size( &grp->P ); + plen = mbedtls_mpi_size(&grp->P); #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) (void) format; /* Montgomery curves always use the same point format */ - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { *olen = plen; - if( buflen < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (buflen < *olen) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary_le( &P->X, buf, plen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary_le(&P->X, buf, plen)); } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - { + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { /* * Common case: P == 0 */ - if( mbedtls_mpi_cmp_int( &P->Z, 0 ) == 0 ) - { - if( buflen < 1 ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (mbedtls_mpi_cmp_int(&P->Z, 0) == 0) { + if (buflen < 1) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } buf[0] = 0x00; *olen = 1; - return( 0 ); + return 0; } - if( format == MBEDTLS_ECP_PF_UNCOMPRESSED ) - { + if (format == MBEDTLS_ECP_PF_UNCOMPRESSED) { *olen = 2 * plen + 1; - if( buflen < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (buflen < *olen) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } buf[0] = 0x04; - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &P->X, buf + 1, plen ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &P->Y, buf + 1 + plen, plen ) ); - } - else if( format == MBEDTLS_ECP_PF_COMPRESSED ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&P->X, buf + 1, plen)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&P->Y, buf + 1 + plen, plen)); + } else if (format == MBEDTLS_ECP_PF_COMPRESSED) { *olen = plen + 1; - if( buflen < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (buflen < *olen) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } - buf[0] = 0x02 + mbedtls_mpi_get_bit( &P->Y, 0 ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &P->X, buf + 1, plen ) ); + buf[0] = 0x02 + mbedtls_mpi_get_bit(&P->Y, 0); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&P->X, buf + 1, plen)); } } #endif cleanup: - return( ret ); + return ret; } #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) -static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, - const mbedtls_mpi *X, - mbedtls_mpi *Y, - int parity_bit ); +static int mbedtls_ecp_sw_derive_y(const mbedtls_ecp_group *grp, + const mbedtls_mpi *X, + mbedtls_mpi *Y, + int parity_bit); #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ /* * Import a point from unsigned binary data (SEC1 2.3.4 and RFC7748) */ -int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *pt, - const unsigned char *buf, size_t ilen ) +int mbedtls_ecp_point_read_binary(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *pt, + const unsigned char *buf, size_t ilen) { int ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; size_t plen; - if( ilen < 1 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (ilen < 1) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - plen = mbedtls_mpi_size( &grp->P ); + plen = mbedtls_mpi_size(&grp->P); #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { - if( plen != ilen ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + if (plen != ilen) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary_le( &pt->X, buf, plen ) ); - mbedtls_mpi_free( &pt->Y ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary_le(&pt->X, buf, plen)); + mbedtls_mpi_free(&pt->Y); - if( grp->id == MBEDTLS_ECP_DP_CURVE25519 ) + if (grp->id == MBEDTLS_ECP_DP_CURVE25519) { /* Set most significant bit to 0 as prescribed in RFC7748 §5 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &pt->X, plen * 8 - 1, 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&pt->X, plen * 8 - 1, 0)); + } - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Z, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&pt->Z, 1)); } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - { - if( buf[0] == 0x00 ) - { - if( ilen == 1 ) - return( mbedtls_ecp_set_zero( pt ) ); - else - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + if (buf[0] == 0x00) { + if (ilen == 1) { + return mbedtls_ecp_set_zero(pt); + } else { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } } - if( ilen < 1 + plen ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (ilen < 1 + plen) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &pt->X, buf + 1, plen ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Z, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&pt->X, buf + 1, plen)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&pt->Z, 1)); - if( buf[0] == 0x04 ) - { + if (buf[0] == 0x04) { /* format == MBEDTLS_ECP_PF_UNCOMPRESSED */ - if( ilen != 1 + plen * 2 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - return( mbedtls_mpi_read_binary( &pt->Y, buf + 1 + plen, plen ) ); - } - else if( buf[0] == 0x02 || buf[0] == 0x03 ) - { + if (ilen != 1 + plen * 2) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } + return mbedtls_mpi_read_binary(&pt->Y, buf + 1 + plen, plen); + } else if (buf[0] == 0x02 || buf[0] == 0x03) { /* format == MBEDTLS_ECP_PF_COMPRESSED */ - if( ilen != 1 + plen ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - return( mbedtls_ecp_sw_derive_y( grp, &pt->X, &pt->Y, - ( buf[0] & 1 ) ) ); + if (ilen != 1 + plen) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } + return mbedtls_ecp_sw_derive_y(grp, &pt->X, &pt->Y, + (buf[0] & 1)); + } else { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } - else - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); } #endif cleanup: - return( ret ); + return ret; } /* @@ -838,21 +843,23 @@ cleanup: * opaque point <1..2^8-1>; * } ECPoint; */ -int mbedtls_ecp_tls_read_point( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *pt, - const unsigned char **buf, size_t buf_len ) +int mbedtls_ecp_tls_read_point(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *pt, + const unsigned char **buf, size_t buf_len) { unsigned char data_len; const unsigned char *buf_start; /* * We must have at least two bytes (1 for length, at least one for data) */ - if( buf_len < 2 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (buf_len < 2) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } data_len = *(*buf)++; - if( data_len < 1 || data_len > buf_len - 1 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (data_len < 1 || data_len > buf_len - 1) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * Save buffer start for read_binary and update buf @@ -860,7 +867,7 @@ int mbedtls_ecp_tls_read_point( const mbedtls_ecp_group *grp, buf_start = *buf; *buf += data_len; - return( mbedtls_ecp_point_read_binary( grp, pt, buf_start, data_len ) ); + return mbedtls_ecp_point_read_binary(grp, pt, buf_start, data_len); } /* @@ -869,24 +876,27 @@ int mbedtls_ecp_tls_read_point( const mbedtls_ecp_group *grp, * opaque point <1..2^8-1>; * } ECPoint; */ -int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt, - int format, size_t *olen, - unsigned char *buf, size_t blen ) +int mbedtls_ecp_tls_write_point(const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt, + int format, size_t *olen, + unsigned char *buf, size_t blen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( format != MBEDTLS_ECP_PF_UNCOMPRESSED && - format != MBEDTLS_ECP_PF_COMPRESSED ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (format != MBEDTLS_ECP_PF_UNCOMPRESSED && + format != MBEDTLS_ECP_PF_COMPRESSED) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * buffer length must be at least one, for our length byte */ - if( blen < 1 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (blen < 1) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - if( ( ret = mbedtls_ecp_point_write_binary( grp, pt, format, - olen, buf + 1, blen - 1) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_point_write_binary(grp, pt, format, + olen, buf + 1, blen - 1)) != 0) { + return ret; + } /* * write length to the first byte and update total length @@ -894,43 +904,46 @@ int mbedtls_ecp_tls_write_point( const mbedtls_ecp_group *grp, const mbedtls_ecp buf[0] = (unsigned char) *olen; ++*olen; - return( 0 ); + return 0; } /* * Set a group from an ECParameters record (RFC 4492) */ -int mbedtls_ecp_tls_read_group( mbedtls_ecp_group *grp, - const unsigned char **buf, size_t len ) +int mbedtls_ecp_tls_read_group(mbedtls_ecp_group *grp, + const unsigned char **buf, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_group_id grp_id; - if( ( ret = mbedtls_ecp_tls_read_group_id( &grp_id, buf, len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_tls_read_group_id(&grp_id, buf, len)) != 0) { + return ret; + } - return( mbedtls_ecp_group_load( grp, grp_id ) ); + return mbedtls_ecp_group_load(grp, grp_id); } /* * Read a group id from an ECParameters record (RFC 4492) and convert it to * mbedtls_ecp_group_id. */ -int mbedtls_ecp_tls_read_group_id( mbedtls_ecp_group_id *grp, - const unsigned char **buf, size_t len ) +int mbedtls_ecp_tls_read_group_id(mbedtls_ecp_group_id *grp, + const unsigned char **buf, size_t len) { uint16_t tls_id; const mbedtls_ecp_curve_info *curve_info; /* * We expect at least three bytes (see below) */ - if( len < 3 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (len < 3) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * First byte is curve_type; only named_curve is handled */ - if( *(*buf)++ != MBEDTLS_ECP_TLS_NAMED_CURVE ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (*(*buf)++ != MBEDTLS_ECP_TLS_NAMED_CURVE) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * Next two bytes are the namedcurve value @@ -939,30 +952,33 @@ int mbedtls_ecp_tls_read_group_id( mbedtls_ecp_group_id *grp, tls_id <<= 8; tls_id |= *(*buf)++; - if( ( curve_info = mbedtls_ecp_curve_info_from_tls_id( tls_id ) ) == NULL ) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + if ((curve_info = mbedtls_ecp_curve_info_from_tls_id(tls_id)) == NULL) { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } *grp = curve_info->grp_id; - return( 0 ); + return 0; } /* * Write the ECParameters record corresponding to a group (RFC 4492) */ -int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, size_t *olen, - unsigned char *buf, size_t blen ) +int mbedtls_ecp_tls_write_group(const mbedtls_ecp_group *grp, size_t *olen, + unsigned char *buf, size_t blen) { const mbedtls_ecp_curve_info *curve_info; - if( ( curve_info = mbedtls_ecp_curve_info_from_grp_id( grp->id ) ) == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if ((curve_info = mbedtls_ecp_curve_info_from_grp_id(grp->id)) == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * We are going to write 3 bytes (see below) */ *olen = 3; - if( blen < *olen ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (blen < *olen) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } /* * First byte is curve_type, always named_curve @@ -972,9 +988,9 @@ int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, size_t *olen, /* * Next two bytes are the namedcurve value */ - MBEDTLS_PUT_UINT16_BE( curve_info->tls_id, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(curve_info->tls_id, buf, 0); - return( 0 ); + return 0; } /* @@ -983,32 +999,34 @@ int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, size_t *olen, * * This function is in the critial loop for mbedtls_ecp_mul, so pay attention to perf. */ -static int ecp_modp( mbedtls_mpi *N, const mbedtls_ecp_group *grp ) +static int ecp_modp(mbedtls_mpi *N, const mbedtls_ecp_group *grp) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( grp->modp == NULL ) - return( mbedtls_mpi_mod_mpi( N, N, &grp->P ) ); - - /* N->s < 0 is a much faster test, which fails only if N is 0 */ - if( ( N->s < 0 && mbedtls_mpi_cmp_int( N, 0 ) != 0 ) || - mbedtls_mpi_bitlen( N ) > 2 * grp->pbits ) - { - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (grp->modp == NULL) { + return mbedtls_mpi_mod_mpi(N, N, &grp->P); } - MBEDTLS_MPI_CHK( grp->modp( N ) ); + /* N->s < 0 is a much faster test, which fails only if N is 0 */ + if ((N->s < 0 && mbedtls_mpi_cmp_int(N, 0) != 0) || + mbedtls_mpi_bitlen(N) > 2 * grp->pbits) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } + + MBEDTLS_MPI_CHK(grp->modp(N)); /* N->s < 0 is a much faster test, which fails only if N is 0 */ - while( N->s < 0 && mbedtls_mpi_cmp_int( N, 0 ) != 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( N, N, &grp->P ) ); + while (N->s < 0 && mbedtls_mpi_cmp_int(N, 0) != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &grp->P)); + } - while( mbedtls_mpi_cmp_mpi( N, &grp->P ) >= 0 ) + while (mbedtls_mpi_cmp_mpi(N, &grp->P) >= 0) { /* we known P, N and the result are positive */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( N, N, &grp->P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(N, N, &grp->P)); + } cleanup: - return( ret ); + return ret; } /* @@ -1030,52 +1048,52 @@ cleanup: #define INC_MUL_COUNT #endif -#define MOD_MUL( N ) \ +#define MOD_MUL(N) \ do \ { \ - MBEDTLS_MPI_CHK( ecp_modp( &(N), grp ) ); \ + MBEDTLS_MPI_CHK(ecp_modp(&(N), grp)); \ INC_MUL_COUNT \ - } while( 0 ) + } while (0) -static inline int mbedtls_mpi_mul_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - const mbedtls_mpi *A, - const mbedtls_mpi *B ) +static inline int mbedtls_mpi_mul_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + const mbedtls_mpi *A, + const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( X, A, B ) ); - MOD_MUL( *X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(X, A, B)); + MOD_MUL(*X); cleanup: - return( ret ); + return ret; } /* * Reduce a mbedtls_mpi mod p in-place, to use after mbedtls_mpi_sub_mpi * N->s < 0 is a very fast test, which fails only if N is 0 */ -#define MOD_SUB( N ) \ +#define MOD_SUB(N) \ do { \ - while( (N)->s < 0 && mbedtls_mpi_cmp_int( (N), 0 ) != 0 ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( (N), (N), &grp->P ) ); \ - } while( 0 ) + while ((N)->s < 0 && mbedtls_mpi_cmp_int((N), 0) != 0) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi((N), (N), &grp->P)); \ + } while (0) -#if ( defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) && \ - !( defined(MBEDTLS_ECP_NO_FALLBACK) && \ - defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && \ - defined(MBEDTLS_ECP_ADD_MIXED_ALT) ) ) || \ - ( defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) && \ - !( defined(MBEDTLS_ECP_NO_FALLBACK) && \ - defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) ) ) -static inline int mbedtls_mpi_sub_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - const mbedtls_mpi *A, - const mbedtls_mpi *B ) +#if (defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) && \ + !(defined(MBEDTLS_ECP_NO_FALLBACK) && \ + defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && \ + defined(MBEDTLS_ECP_ADD_MIXED_ALT))) || \ + (defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) && \ + !(defined(MBEDTLS_ECP_NO_FALLBACK) && \ + defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT))) +static inline int mbedtls_mpi_sub_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + const mbedtls_mpi *A, + const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( X, A, B ) ); - MOD_SUB( X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(X, A, B)); + MOD_SUB(X); cleanup: - return( ret ); + return ret; } #endif /* All functions referencing mbedtls_mpi_sub_mod() are alt-implemented without fallback */ @@ -1084,66 +1102,67 @@ cleanup: * We known P, N and the result are positive, so sub_abs is correct, and * a bit faster. */ -#define MOD_ADD( N ) \ - while( mbedtls_mpi_cmp_mpi( (N), &grp->P ) >= 0 ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_abs( (N), (N), &grp->P ) ) +#define MOD_ADD(N) \ + while (mbedtls_mpi_cmp_mpi((N), &grp->P) >= 0) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs((N), (N), &grp->P)) -static inline int mbedtls_mpi_add_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - const mbedtls_mpi *A, - const mbedtls_mpi *B ) +static inline int mbedtls_mpi_add_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + const mbedtls_mpi *A, + const mbedtls_mpi *B) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( X, A, B ) ); - MOD_ADD( X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(X, A, B)); + MOD_ADD(X); cleanup: - return( ret ); + return ret; } -static inline int mbedtls_mpi_mul_int_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - const mbedtls_mpi *A, - mbedtls_mpi_uint c ) +static inline int mbedtls_mpi_mul_int_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + const mbedtls_mpi *A, + mbedtls_mpi_uint c) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_int( X, A, c ) ); - MOD_ADD( X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int(X, A, c)); + MOD_ADD(X); cleanup: - return( ret ); + return ret; } -static inline int mbedtls_mpi_sub_int_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - const mbedtls_mpi *A, - mbedtls_mpi_uint c ) +static inline int mbedtls_mpi_sub_int_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + const mbedtls_mpi *A, + mbedtls_mpi_uint c) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( X, A, c ) ); - MOD_SUB( X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(X, A, c)); + MOD_SUB(X); cleanup: - return( ret ); + return ret; } -#define MPI_ECP_SUB_INT( X, A, c ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int_mod( grp, X, A, c ) ) +#define MPI_ECP_SUB_INT(X, A, c) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int_mod(grp, X, A, c)) #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) && \ - !( defined(MBEDTLS_ECP_NO_FALLBACK) && \ - defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && \ - defined(MBEDTLS_ECP_ADD_MIXED_ALT) ) -static inline int mbedtls_mpi_shift_l_mod( const mbedtls_ecp_group *grp, - mbedtls_mpi *X, - size_t count ) + !(defined(MBEDTLS_ECP_NO_FALLBACK) && \ + defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && \ + defined(MBEDTLS_ECP_ADD_MIXED_ALT)) +static inline int mbedtls_mpi_shift_l_mod(const mbedtls_ecp_group *grp, + mbedtls_mpi *X, + size_t count) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( X, count ) ); - MOD_ADD( X ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(X, count)); + MOD_ADD(X); cleanup: - return( ret ); + return ret; } -#endif /* All functions referencing mbedtls_mpi_shift_l_mod() are alt-implemented without fallback */ +#endif \ + /* All functions referencing mbedtls_mpi_shift_l_mod() are alt-implemented without fallback */ /* * Macro wrappers around ECP modular arithmetic @@ -1151,64 +1170,64 @@ cleanup: * Currently, these wrappers are defined via the bignum module. */ -#define MPI_ECP_ADD( X, A, B ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mod( grp, X, A, B ) ) +#define MPI_ECP_ADD(X, A, B) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mod(grp, X, A, B)) -#define MPI_ECP_SUB( X, A, B ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mod( grp, X, A, B ) ) +#define MPI_ECP_SUB(X, A, B) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mod(grp, X, A, B)) -#define MPI_ECP_MUL( X, A, B ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, X, A, B ) ) +#define MPI_ECP_MUL(X, A, B) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mod(grp, X, A, B)) -#define MPI_ECP_SQR( X, A ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, X, A, A ) ) +#define MPI_ECP_SQR(X, A) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mod(grp, X, A, A)) -#define MPI_ECP_MUL_INT( X, A, c ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_int_mod( grp, X, A, c ) ) +#define MPI_ECP_MUL_INT(X, A, c) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_int_mod(grp, X, A, c)) -#define MPI_ECP_INV( dst, src ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( (dst), (src), &grp->P ) ) +#define MPI_ECP_INV(dst, src) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod((dst), (src), &grp->P)) -#define MPI_ECP_MOV( X, A ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, A ) ) +#define MPI_ECP_MOV(X, A) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)) -#define MPI_ECP_SHIFT_L( X, count ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l_mod( grp, X, count ) ) +#define MPI_ECP_SHIFT_L(X, count) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l_mod(grp, X, count)) -#define MPI_ECP_LSET( X, c ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( X, c ) ) +#define MPI_ECP_LSET(X, c) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(X, c)) -#define MPI_ECP_CMP_INT( X, c ) \ - mbedtls_mpi_cmp_int( X, c ) +#define MPI_ECP_CMP_INT(X, c) \ + mbedtls_mpi_cmp_int(X, c) -#define MPI_ECP_CMP( X, Y ) \ - mbedtls_mpi_cmp_mpi( X, Y ) +#define MPI_ECP_CMP(X, Y) \ + mbedtls_mpi_cmp_mpi(X, Y) /* Needs f_rng, p_rng to be defined. */ -#define MPI_ECP_RAND( X ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_random( (X), 2, &grp->P, f_rng, p_rng ) ) +#define MPI_ECP_RAND(X) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_random((X), 2, &grp->P, f_rng, p_rng)) /* Conditional negation * Needs grp and a temporary MPI tmp to be defined. */ -#define MPI_ECP_COND_NEG( X, cond ) \ +#define MPI_ECP_COND_NEG(X, cond) \ do \ { \ - unsigned char nonzero = mbedtls_mpi_cmp_int( (X), 0 ) != 0; \ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &tmp, &grp->P, (X) ) ); \ - MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_assign( (X), &tmp, \ - nonzero & cond ) ); \ - } while( 0 ) + unsigned char nonzero = mbedtls_mpi_cmp_int((X), 0) != 0; \ + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&tmp, &grp->P, (X))); \ + MBEDTLS_MPI_CHK(mbedtls_mpi_safe_cond_assign((X), &tmp, \ + nonzero & cond)); \ + } while (0) -#define MPI_ECP_NEG( X ) MPI_ECP_COND_NEG( (X), 1 ) +#define MPI_ECP_NEG(X) MPI_ECP_COND_NEG((X), 1) -#define MPI_ECP_VALID( X ) \ - ( (X)->p != NULL ) +#define MPI_ECP_VALID(X) \ + ((X)->p != NULL) -#define MPI_ECP_COND_ASSIGN( X, Y, cond ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_assign( (X), (Y), (cond) ) ) +#define MPI_ECP_COND_ASSIGN(X, Y, cond) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_safe_cond_assign((X), (Y), (cond))) -#define MPI_ECP_COND_SWAP( X, Y, cond ) \ - MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_swap( (X), (Y), (cond) ) ) +#define MPI_ECP_COND_SWAP(X, Y, cond) \ + MBEDTLS_MPI_CHK(mbedtls_mpi_safe_cond_swap((X), (Y), (cond))) #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) @@ -1216,39 +1235,36 @@ cleanup: * Computes the right-hand side of the Short Weierstrass equation * RHS = X^3 + A X + B */ -static int ecp_sw_rhs( const mbedtls_ecp_group *grp, - mbedtls_mpi *rhs, - const mbedtls_mpi *X ) +static int ecp_sw_rhs(const mbedtls_ecp_group *grp, + mbedtls_mpi *rhs, + const mbedtls_mpi *X) { int ret; /* Compute X^3 + A X + B as X (X^2 + A) + B */ - MPI_ECP_SQR( rhs, X ); + MPI_ECP_SQR(rhs, X); /* Special case for A = -3 */ - if( grp->A.p == NULL ) - { - MPI_ECP_SUB_INT( rhs, rhs, 3 ); - } - else - { - MPI_ECP_ADD( rhs, rhs, &grp->A ); + if (grp->A.p == NULL) { + MPI_ECP_SUB_INT(rhs, rhs, 3); + } else { + MPI_ECP_ADD(rhs, rhs, &grp->A); } - MPI_ECP_MUL( rhs, rhs, X ); - MPI_ECP_ADD( rhs, rhs, &grp->B ); + MPI_ECP_MUL(rhs, rhs, X); + MPI_ECP_ADD(rhs, rhs, &grp->B); cleanup: - return( ret ); + return ret; } /* * Derive Y from X and a parity bit */ -static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, - const mbedtls_mpi *X, - mbedtls_mpi *Y, - int parity_bit ) +static int mbedtls_ecp_sw_derive_y(const mbedtls_ecp_group *grp, + const mbedtls_mpi *X, + mbedtls_mpi *Y, + int parity_bit) { /* w = y^2 = x^3 + ax + b * y = sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) @@ -1259,36 +1275,38 @@ static int mbedtls_ecp_sw_derive_y( const mbedtls_ecp_group *grp, */ /* Check prerequisite p = 3 mod 4 */ - if( mbedtls_mpi_get_bit( &grp->P, 0 ) != 1 || - mbedtls_mpi_get_bit( &grp->P, 1 ) != 1 ) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + if (mbedtls_mpi_get_bit(&grp->P, 0) != 1 || + mbedtls_mpi_get_bit(&grp->P, 1) != 1) { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } int ret; mbedtls_mpi exp; - mbedtls_mpi_init( &exp ); + mbedtls_mpi_init(&exp); /* use Y to store intermediate result, actually w above */ - MBEDTLS_MPI_CHK( ecp_sw_rhs( grp, Y, X ) ); + MBEDTLS_MPI_CHK(ecp_sw_rhs(grp, Y, X)); /* w = y^2 */ /* Y contains y^2 intermediate result */ /* exp = ((p+1)/4) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &exp, &grp->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &exp, 2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&exp, &grp->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&exp, 2)); /* sqrt(w) = w^((p+1)/4) mod p (for prime p where p = 3 mod 4) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( Y, Y /*y^2*/, &exp, &grp->P, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(Y, Y /*y^2*/, &exp, &grp->P, NULL)); /* check parity bit match or else invert Y */ /* This quick inversion implementation is valid because Y != 0 for all * Short Weierstrass curves supported by mbedtls, as each supported curve * has an order that is a large prime, so each supported curve does not * have any point of order 2, and a point with Y == 0 would be of order 2 */ - if( mbedtls_mpi_get_bit( Y, 0 ) != parity_bit ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( Y, &grp->P, Y ) ); + if (mbedtls_mpi_get_bit(Y, 0) != parity_bit) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(Y, &grp->P, Y)); + } cleanup: - mbedtls_mpi_free( &exp ); - return( ret ); + mbedtls_mpi_free(&exp); + return ret; } /* @@ -1303,36 +1321,38 @@ cleanup: * Normalize jacobian coordinates so that Z == 0 || Z == 1 (GECC 3.2.1) * Cost: 1N := 1I + 3M + 1S */ -static int ecp_normalize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt ) +static int ecp_normalize_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt) { - if( MPI_ECP_CMP_INT( &pt->Z, 0 ) == 0 ) - return( 0 ); + if (MPI_ECP_CMP_INT(&pt->Z, 0) == 0) { + return 0; + } #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_normalize_jac( grp, pt ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_normalize_jac(grp, pt); + } #endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi T; - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); - MPI_ECP_INV( &T, &pt->Z ); /* T <- 1 / Z */ - MPI_ECP_MUL( &pt->Y, &pt->Y, &T ); /* Y' <- Y*T = Y / Z */ - MPI_ECP_SQR( &T, &T ); /* T <- T^2 = 1 / Z^2 */ - MPI_ECP_MUL( &pt->X, &pt->X, &T ); /* X <- X * T = X / Z^2 */ - MPI_ECP_MUL( &pt->Y, &pt->Y, &T ); /* Y'' <- Y' * T = Y / Z^3 */ + MPI_ECP_INV(&T, &pt->Z); /* T <- 1 / Z */ + MPI_ECP_MUL(&pt->Y, &pt->Y, &T); /* Y' <- Y*T = Y / Z */ + MPI_ECP_SQR(&T, &T); /* T <- T^2 = 1 / Z^2 */ + MPI_ECP_MUL(&pt->X, &pt->X, &T); /* X <- X * T = X / Z^2 */ + MPI_ECP_MUL(&pt->Y, &pt->Y, &T); /* Y'' <- Y' * T = Y / Z^3 */ - MPI_ECP_LSET( &pt->Z, 1 ); + MPI_ECP_LSET(&pt->Z, 1); cleanup: - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) */ } @@ -1347,46 +1367,47 @@ cleanup: * * Cost: 1N(t) := 1I + (6t - 3)M + 1S */ -static int ecp_normalize_jac_many( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *T[], size_t T_size ) +static int ecp_normalize_jac_many(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *T[], size_t T_size) { - if( T_size < 2 ) - return( ecp_normalize_jac( grp, *T ) ); + if (T_size < 2) { + return ecp_normalize_jac(grp, *T); + } #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_normalize_jac_many( grp, T, T_size ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_normalize_jac_many(grp, T, T_size); + } #endif #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; mbedtls_mpi *c, t; - if( ( c = mbedtls_calloc( T_size, sizeof( mbedtls_mpi ) ) ) == NULL ) - return( MBEDTLS_ERR_ECP_ALLOC_FAILED ); + if ((c = mbedtls_calloc(T_size, sizeof(mbedtls_mpi))) == NULL) { + return MBEDTLS_ERR_ECP_ALLOC_FAILED; + } - mbedtls_mpi_init( &t ); + mbedtls_mpi_init(&t); - mpi_init_many( c, T_size ); + mpi_init_many(c, T_size); /* * c[i] = Z_0 * ... * Z_i, i = 0,..,n := T_size-1 */ - MPI_ECP_MOV( &c[0], &T[0]->Z ); - for( i = 1; i < T_size; i++ ) - { - MPI_ECP_MUL( &c[i], &c[i-1], &T[i]->Z ); + MPI_ECP_MOV(&c[0], &T[0]->Z); + for (i = 1; i < T_size; i++) { + MPI_ECP_MUL(&c[i], &c[i-1], &T[i]->Z); } /* * c[n] = 1 / (Z_0 * ... * Z_n) mod P */ - MPI_ECP_INV( &c[T_size-1], &c[T_size-1] ); + MPI_ECP_INV(&c[T_size-1], &c[T_size-1]); - for( i = T_size - 1; ; i-- ) - { + for (i = T_size - 1;; i--) { /* At the start of iteration i (note that i decrements), we have * - c[j] = Z_0 * .... * Z_j for j < i, * - c[j] = 1 / (Z_0 * .... * Z_j) for j == i, @@ -1399,22 +1420,19 @@ static int ecp_normalize_jac_many( const mbedtls_ecp_group *grp, * c[0] = 1 / Z_0. */ - if( i > 0 ) - { + if (i > 0) { /* Compute 1/Z_i and establish invariant for the next iteration. */ - MPI_ECP_MUL( &t, &c[i], &c[i-1] ); - MPI_ECP_MUL( &c[i-1], &c[i], &T[i]->Z ); - } - else - { - MPI_ECP_MOV( &t, &c[0] ); + MPI_ECP_MUL(&t, &c[i], &c[i-1]); + MPI_ECP_MUL(&c[i-1], &c[i], &T[i]->Z); + } else { + MPI_ECP_MOV(&t, &c[0]); } /* Now t holds 1 / Z_i; normalize as in ecp_normalize_jac() */ - MPI_ECP_MUL( &T[i]->Y, &T[i]->Y, &t ); - MPI_ECP_SQR( &t, &t ); - MPI_ECP_MUL( &T[i]->X, &T[i]->X, &t ); - MPI_ECP_MUL( &T[i]->Y, &T[i]->Y, &t ); + MPI_ECP_MUL(&T[i]->Y, &T[i]->Y, &t); + MPI_ECP_SQR(&t, &t); + MPI_ECP_MUL(&T[i]->X, &T[i]->X, &t); + MPI_ECP_MUL(&T[i]->Y, &T[i]->Y, &t); /* * Post-precessing: reclaim some memory by shrinking coordinates @@ -1422,22 +1440,23 @@ static int ecp_normalize_jac_many( const mbedtls_ecp_group *grp, * - shrinking other coordinates, but still keeping the same number of * limbs as P, as otherwise it will too likely be regrown too fast. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_shrink( &T[i]->X, grp->P.n ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shrink( &T[i]->Y, grp->P.n ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shrink(&T[i]->X, grp->P.n)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shrink(&T[i]->Y, grp->P.n)); - MPI_ECP_LSET( &T[i]->Z, 1 ); + MPI_ECP_LSET(&T[i]->Z, 1); - if( i == 0 ) + if (i == 0) { break; + } } cleanup: - mbedtls_mpi_free( &t ); - mpi_free_many( c, T_size ); - mbedtls_free( c ); + mbedtls_mpi_free(&t); + mpi_free_many(c, T_size); + mbedtls_free(c); - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) */ } @@ -1445,19 +1464,19 @@ cleanup: * Conditional point inversion: Q -> -Q = (Q.X, -Q.Y, Q.Z) without leak. * "inv" must be 0 (don't invert) or 1 (invert) or the result will be invalid */ -static int ecp_safe_invert_jac( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *Q, - unsigned char inv ) +static int ecp_safe_invert_jac(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *Q, + unsigned char inv) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi tmp; - mbedtls_mpi_init( &tmp ); + mbedtls_mpi_init(&tmp); - MPI_ECP_COND_NEG( &Q->Y, inv ); + MPI_ECP_COND_NEG(&Q->Y, inv); cleanup: - mbedtls_mpi_free( &tmp ); - return( ret ); + mbedtls_mpi_free(&tmp); + return ret; } /* @@ -1474,83 +1493,80 @@ cleanup: * 4M + 4S (A == -3) * 3M + 6S + 1a otherwise */ -static int ecp_double_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_ecp_point *P, - mbedtls_mpi tmp[4] ) +static int ecp_double_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_ecp_point *P, + mbedtls_mpi tmp[4]) { #if defined(MBEDTLS_SELF_TEST) dbl_count++; #endif #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_double_jac( grp, R, P ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_double_jac(grp, R, P); + } #endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Special case for A = -3 */ - if( grp->A.p == NULL ) - { + if (grp->A.p == NULL) { /* tmp[0] <- M = 3(X + Z^2)(X - Z^2) */ - MPI_ECP_SQR( &tmp[1], &P->Z ); - MPI_ECP_ADD( &tmp[2], &P->X, &tmp[1] ); - MPI_ECP_SUB( &tmp[3], &P->X, &tmp[1] ); - MPI_ECP_MUL( &tmp[1], &tmp[2], &tmp[3] ); - MPI_ECP_MUL_INT( &tmp[0], &tmp[1], 3 ); - } - else - { + MPI_ECP_SQR(&tmp[1], &P->Z); + MPI_ECP_ADD(&tmp[2], &P->X, &tmp[1]); + MPI_ECP_SUB(&tmp[3], &P->X, &tmp[1]); + MPI_ECP_MUL(&tmp[1], &tmp[2], &tmp[3]); + MPI_ECP_MUL_INT(&tmp[0], &tmp[1], 3); + } else { /* tmp[0] <- M = 3.X^2 + A.Z^4 */ - MPI_ECP_SQR( &tmp[1], &P->X ); - MPI_ECP_MUL_INT( &tmp[0], &tmp[1], 3 ); + MPI_ECP_SQR(&tmp[1], &P->X); + MPI_ECP_MUL_INT(&tmp[0], &tmp[1], 3); /* Optimize away for "koblitz" curves with A = 0 */ - if( MPI_ECP_CMP_INT( &grp->A, 0 ) != 0 ) - { + if (MPI_ECP_CMP_INT(&grp->A, 0) != 0) { /* M += A.Z^4 */ - MPI_ECP_SQR( &tmp[1], &P->Z ); - MPI_ECP_SQR( &tmp[2], &tmp[1] ); - MPI_ECP_MUL( &tmp[1], &tmp[2], &grp->A ); - MPI_ECP_ADD( &tmp[0], &tmp[0], &tmp[1] ); + MPI_ECP_SQR(&tmp[1], &P->Z); + MPI_ECP_SQR(&tmp[2], &tmp[1]); + MPI_ECP_MUL(&tmp[1], &tmp[2], &grp->A); + MPI_ECP_ADD(&tmp[0], &tmp[0], &tmp[1]); } } /* tmp[1] <- S = 4.X.Y^2 */ - MPI_ECP_SQR( &tmp[2], &P->Y ); - MPI_ECP_SHIFT_L( &tmp[2], 1 ); - MPI_ECP_MUL( &tmp[1], &P->X, &tmp[2] ); - MPI_ECP_SHIFT_L( &tmp[1], 1 ); + MPI_ECP_SQR(&tmp[2], &P->Y); + MPI_ECP_SHIFT_L(&tmp[2], 1); + MPI_ECP_MUL(&tmp[1], &P->X, &tmp[2]); + MPI_ECP_SHIFT_L(&tmp[1], 1); /* tmp[3] <- U = 8.Y^4 */ - MPI_ECP_SQR( &tmp[3], &tmp[2] ); - MPI_ECP_SHIFT_L( &tmp[3], 1 ); + MPI_ECP_SQR(&tmp[3], &tmp[2]); + MPI_ECP_SHIFT_L(&tmp[3], 1); /* tmp[2] <- T = M^2 - 2.S */ - MPI_ECP_SQR( &tmp[2], &tmp[0] ); - MPI_ECP_SUB( &tmp[2], &tmp[2], &tmp[1] ); - MPI_ECP_SUB( &tmp[2], &tmp[2], &tmp[1] ); + MPI_ECP_SQR(&tmp[2], &tmp[0]); + MPI_ECP_SUB(&tmp[2], &tmp[2], &tmp[1]); + MPI_ECP_SUB(&tmp[2], &tmp[2], &tmp[1]); /* tmp[1] <- S = M(S - T) - U */ - MPI_ECP_SUB( &tmp[1], &tmp[1], &tmp[2] ); - MPI_ECP_MUL( &tmp[1], &tmp[1], &tmp[0] ); - MPI_ECP_SUB( &tmp[1], &tmp[1], &tmp[3] ); + MPI_ECP_SUB(&tmp[1], &tmp[1], &tmp[2]); + MPI_ECP_MUL(&tmp[1], &tmp[1], &tmp[0]); + MPI_ECP_SUB(&tmp[1], &tmp[1], &tmp[3]); /* tmp[3] <- U = 2.Y.Z */ - MPI_ECP_MUL( &tmp[3], &P->Y, &P->Z ); - MPI_ECP_SHIFT_L( &tmp[3], 1 ); + MPI_ECP_MUL(&tmp[3], &P->Y, &P->Z); + MPI_ECP_SHIFT_L(&tmp[3], 1); /* Store results */ - MPI_ECP_MOV( &R->X, &tmp[2] ); - MPI_ECP_MOV( &R->Y, &tmp[1] ); - MPI_ECP_MOV( &R->Z, &tmp[3] ); + MPI_ECP_MOV(&R->X, &tmp[2]); + MPI_ECP_MOV(&R->Y, &tmp[1]); + MPI_ECP_MOV(&R->Z, &tmp[3]); cleanup: - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) */ } @@ -1574,21 +1590,22 @@ cleanup: * * Cost: 1A := 8M + 3S */ -static int ecp_add_mixed( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q, - mbedtls_mpi tmp[4] ) +static int ecp_add_mixed(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q, + mbedtls_mpi tmp[4]) { #if defined(MBEDTLS_SELF_TEST) add_count++; #endif #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_add_mixed( grp, R, P, Q ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_add_mixed(grp, R, P, Q); + } #endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_ADD_MIXED_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1599,68 +1616,68 @@ static int ecp_add_mixed( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, mbedtls_mpi * const Y = &R->Y; mbedtls_mpi * const Z = &R->Z; - if( !MPI_ECP_VALID( &Q->Z ) ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (!MPI_ECP_VALID(&Q->Z)) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* * Trivial cases: P == 0 or Q == 0 (case 1) */ - if( MPI_ECP_CMP_INT( &P->Z, 0 ) == 0 ) - return( mbedtls_ecp_copy( R, Q ) ); + if (MPI_ECP_CMP_INT(&P->Z, 0) == 0) { + return mbedtls_ecp_copy(R, Q); + } - if( MPI_ECP_CMP_INT( &Q->Z, 0 ) == 0 ) - return( mbedtls_ecp_copy( R, P ) ); + if (MPI_ECP_CMP_INT(&Q->Z, 0) == 0) { + return mbedtls_ecp_copy(R, P); + } /* * Make sure Q coordinates are normalized */ - if( MPI_ECP_CMP_INT( &Q->Z, 1 ) != 0 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (MPI_ECP_CMP_INT(&Q->Z, 1) != 0) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - MPI_ECP_SQR( &tmp[0], &P->Z ); - MPI_ECP_MUL( &tmp[1], &tmp[0], &P->Z ); - MPI_ECP_MUL( &tmp[0], &tmp[0], &Q->X ); - MPI_ECP_MUL( &tmp[1], &tmp[1], &Q->Y ); - MPI_ECP_SUB( &tmp[0], &tmp[0], &P->X ); - MPI_ECP_SUB( &tmp[1], &tmp[1], &P->Y ); + MPI_ECP_SQR(&tmp[0], &P->Z); + MPI_ECP_MUL(&tmp[1], &tmp[0], &P->Z); + MPI_ECP_MUL(&tmp[0], &tmp[0], &Q->X); + MPI_ECP_MUL(&tmp[1], &tmp[1], &Q->Y); + MPI_ECP_SUB(&tmp[0], &tmp[0], &P->X); + MPI_ECP_SUB(&tmp[1], &tmp[1], &P->Y); /* Special cases (2) and (3) */ - if( MPI_ECP_CMP_INT( &tmp[0], 0 ) == 0 ) - { - if( MPI_ECP_CMP_INT( &tmp[1], 0 ) == 0 ) - { - ret = ecp_double_jac( grp, R, P, tmp ); + if (MPI_ECP_CMP_INT(&tmp[0], 0) == 0) { + if (MPI_ECP_CMP_INT(&tmp[1], 0) == 0) { + ret = ecp_double_jac(grp, R, P, tmp); goto cleanup; - } - else - { - ret = mbedtls_ecp_set_zero( R ); + } else { + ret = mbedtls_ecp_set_zero(R); goto cleanup; } } /* {P,Q}->Z no longer used, so OK to write to Z even if there's aliasing. */ - MPI_ECP_MUL( Z, &P->Z, &tmp[0] ); - MPI_ECP_SQR( &tmp[2], &tmp[0] ); - MPI_ECP_MUL( &tmp[3], &tmp[2], &tmp[0] ); - MPI_ECP_MUL( &tmp[2], &tmp[2], &P->X ); + MPI_ECP_MUL(Z, &P->Z, &tmp[0]); + MPI_ECP_SQR(&tmp[2], &tmp[0]); + MPI_ECP_MUL(&tmp[3], &tmp[2], &tmp[0]); + MPI_ECP_MUL(&tmp[2], &tmp[2], &P->X); - MPI_ECP_MOV( &tmp[0], &tmp[2] ); - MPI_ECP_SHIFT_L( &tmp[0], 1 ); + MPI_ECP_MOV(&tmp[0], &tmp[2]); + MPI_ECP_SHIFT_L(&tmp[0], 1); /* {P,Q}->X no longer used, so OK to write to X even if there's aliasing. */ - MPI_ECP_SQR( X, &tmp[1] ); - MPI_ECP_SUB( X, X, &tmp[0] ); - MPI_ECP_SUB( X, X, &tmp[3] ); - MPI_ECP_SUB( &tmp[2], &tmp[2], X ); - MPI_ECP_MUL( &tmp[2], &tmp[2], &tmp[1] ); - MPI_ECP_MUL( &tmp[3], &tmp[3], &P->Y ); + MPI_ECP_SQR(X, &tmp[1]); + MPI_ECP_SUB(X, X, &tmp[0]); + MPI_ECP_SUB(X, X, &tmp[3]); + MPI_ECP_SUB(&tmp[2], &tmp[2], X); + MPI_ECP_MUL(&tmp[2], &tmp[2], &tmp[1]); + MPI_ECP_MUL(&tmp[3], &tmp[3], &P->Y); /* {P,Q}->Y no longer used, so OK to write to Y even if there's aliasing. */ - MPI_ECP_SUB( Y, &tmp[2], &tmp[3] ); + MPI_ECP_SUB(Y, &tmp[2], &tmp[3]); cleanup: - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_ADD_MIXED_ALT) */ } @@ -1671,44 +1688,46 @@ cleanup: * * This countermeasure was first suggested in [2]. */ -static int ecp_randomize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int ecp_randomize_jac(const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_randomize_jac( grp, pt, f_rng, p_rng ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_randomize_jac(grp, pt, f_rng, p_rng); + } #endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi l; - mbedtls_mpi_init( &l ); + mbedtls_mpi_init(&l); /* Generate l such that 1 < l < p */ - MPI_ECP_RAND( &l ); + MPI_ECP_RAND(&l); /* Z' = l * Z */ - MPI_ECP_MUL( &pt->Z, &pt->Z, &l ); + MPI_ECP_MUL(&pt->Z, &pt->Z, &l); /* Y' = l * Y */ - MPI_ECP_MUL( &pt->Y, &pt->Y, &l ); + MPI_ECP_MUL(&pt->Y, &pt->Y, &l); /* X' = l^2 * X */ - MPI_ECP_SQR( &l, &l ); - MPI_ECP_MUL( &pt->X, &pt->X, &l ); + MPI_ECP_SQR(&l, &l); + MPI_ECP_MUL(&pt->X, &pt->X, &l); /* Y'' = l^2 * Y' = l^3 * Y */ - MPI_ECP_MUL( &pt->Y, &pt->Y, &l ); + MPI_ECP_MUL(&pt->Y, &pt->Y, &l); cleanup: - mbedtls_mpi_free( &l ); + mbedtls_mpi_free(&l); - if( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + if (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; - return( ret ); + } + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) */ } @@ -1720,10 +1739,10 @@ cleanup: #endif /* d = ceil( n / w ) */ -#define COMB_MAX_D ( MBEDTLS_ECP_MAX_BITS + 1 ) / 2 +#define COMB_MAX_D (MBEDTLS_ECP_MAX_BITS + 1) / 2 /* number of precomputed points */ -#define COMB_MAX_PRE ( 1 << ( MBEDTLS_ECP_WINDOW_SIZE - 1 ) ) +#define COMB_MAX_PRE (1 << (MBEDTLS_ECP_WINDOW_SIZE - 1)) /* * Compute the representation of m that will be used with our comb method. @@ -1772,32 +1791,33 @@ cleanup: * - m is the MPI, expected to be odd and such that bitlength(m) <= w * d * (the result will be incorrect if these assumptions are not satisfied) */ -static void ecp_comb_recode_core( unsigned char x[], size_t d, - unsigned char w, const mbedtls_mpi *m ) +static void ecp_comb_recode_core(unsigned char x[], size_t d, + unsigned char w, const mbedtls_mpi *m) { size_t i, j; unsigned char c, cc, adjust; - memset( x, 0, d+1 ); + memset(x, 0, d+1); /* First get the classical comb values (except for x_d = 0) */ - for( i = 0; i < d; i++ ) - for( j = 0; j < w; j++ ) - x[i] |= mbedtls_mpi_get_bit( m, i + d * j ) << j; + for (i = 0; i < d; i++) { + for (j = 0; j < w; j++) { + x[i] |= mbedtls_mpi_get_bit(m, i + d * j) << j; + } + } /* Now make sure x_1 .. x_d are odd */ c = 0; - for( i = 1; i <= d; i++ ) - { + for (i = 1; i <= d; i++) { /* Add carry and update it */ cc = x[i] & c; x[i] = x[i] ^ c; c = cc; /* Adjust if needed, avoiding branches */ - adjust = 1 - ( x[i] & 0x01 ); - c |= x[i] & ( x[i-1] * adjust ); - x[i] = x[i] ^ ( x[i-1] * adjust ); + adjust = 1 - (x[i] & 0x01); + c |= x[i] & (x[i-1] * adjust); + x[i] = x[i] ^ (x[i-1] * adjust); x[i-1] |= adjust << 7; } } @@ -1836,40 +1856,42 @@ static void ecp_comb_recode_core( unsigned char x[], size_t d, * value, it's useful to set MBEDTLS_ECP_WINDOW_SIZE to a lower value in order * to minimize maximum blocking time. */ -static int ecp_precompute_comb( const mbedtls_ecp_group *grp, - mbedtls_ecp_point T[], const mbedtls_ecp_point *P, - unsigned char w, size_t d, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecp_precompute_comb(const mbedtls_ecp_group *grp, + mbedtls_ecp_point T[], const mbedtls_ecp_point *P, + unsigned char w, size_t d, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char i; size_t j = 0; - const unsigned char T_size = 1U << ( w - 1 ); - mbedtls_ecp_point *cur, *TT[COMB_MAX_PRE - 1] = {NULL}; + const unsigned char T_size = 1U << (w - 1); + mbedtls_ecp_point *cur, *TT[COMB_MAX_PRE - 1] = { NULL }; mbedtls_mpi tmp[4]; - mpi_init_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mpi_init_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) - { - if( rs_ctx->rsm->state == ecp_rsm_pre_dbl ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { + if (rs_ctx->rsm->state == ecp_rsm_pre_dbl) { goto dbl; - if( rs_ctx->rsm->state == ecp_rsm_pre_norm_dbl ) + } + if (rs_ctx->rsm->state == ecp_rsm_pre_norm_dbl) { goto norm_dbl; - if( rs_ctx->rsm->state == ecp_rsm_pre_add ) + } + if (rs_ctx->rsm->state == ecp_rsm_pre_add) { goto add; - if( rs_ctx->rsm->state == ecp_rsm_pre_norm_add ) + } + if (rs_ctx->rsm->state == ecp_rsm_pre_norm_add) { goto norm_add; + } } #else (void) rs_ctx; #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { rs_ctx->rsm->state = ecp_rsm_pre_dbl; /* initial state for the loop */ @@ -1882,31 +1904,32 @@ dbl: * Set T[0] = P and * T[2^{l-1}] = 2^{dl} P for l = 1 .. w-1 (this is not the final value) */ - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( &T[0], P ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(&T[0], P)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->i != 0 ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->i != 0) { j = rs_ctx->rsm->i; - else + } else #endif - j = 0; + j = 0; - for( ; j < d * ( w - 1 ); j++ ) - { - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_DBL ); + for (; j < d * (w - 1); j++) { + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_DBL); - i = 1U << ( j / d ); + i = 1U << (j / d); cur = T + i; - if( j % d == 0 ) - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( cur, T + ( i >> 1 ) ) ); + if (j % d == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(cur, T + (i >> 1))); + } - MBEDTLS_MPI_CHK( ecp_double_jac( grp, cur, cur, tmp ) ); + MBEDTLS_MPI_CHK(ecp_double_jac(grp, cur, cur, tmp)); } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { rs_ctx->rsm->state = ecp_rsm_pre_norm_dbl; + } norm_dbl: #endif @@ -1918,16 +1941,18 @@ norm_dbl: * */ j = 0; - for( i = 1; i < T_size; i <<= 1 ) + for (i = 1; i < T_size; i <<= 1) { TT[j++] = T + i; + } - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV + 6 * j - 2 ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_INV + 6 * j - 2); - MBEDTLS_MPI_CHK( ecp_normalize_jac_many( grp, TT, j ) ); + MBEDTLS_MPI_CHK(ecp_normalize_jac_many(grp, TT, j)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { rs_ctx->rsm->state = ecp_rsm_pre_add; + } add: #endif @@ -1935,18 +1960,19 @@ add: * Compute the remaining ones using the minimal number of additions * Be careful to update T[2^l] only after using it! */ - MBEDTLS_ECP_BUDGET( ( T_size - 1 ) * MBEDTLS_ECP_OPS_ADD ); + MBEDTLS_ECP_BUDGET((T_size - 1) * MBEDTLS_ECP_OPS_ADD); - for( i = 1; i < T_size; i <<= 1 ) - { + for (i = 1; i < T_size; i <<= 1) { j = i; - while( j-- ) - MBEDTLS_MPI_CHK( ecp_add_mixed( grp, &T[i + j], &T[j], &T[i], tmp ) ); + while (j--) { + MBEDTLS_MPI_CHK(ecp_add_mixed(grp, &T[i + j], &T[j], &T[i], tmp)); + } } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { rs_ctx->rsm->state = ecp_rsm_pre_norm_add; + } norm_add: #endif @@ -1955,35 +1981,37 @@ norm_add: * still need the auxiliary array for homogeneity with the previous * call. Also, skip T[0] which is already normalised, being a copy of P. */ - for( j = 0; j + 1 < T_size; j++ ) + for (j = 0; j + 1 < T_size; j++) { TT[j] = T + j + 1; + } - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV + 6 * j - 2 ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_INV + 6 * j - 2); - MBEDTLS_MPI_CHK( ecp_normalize_jac_many( grp, TT, j ) ); + MBEDTLS_MPI_CHK(ecp_normalize_jac_many(grp, TT, j)); /* Free Z coordinate (=1 after normalization) to save RAM. * This makes T[i] invalid as mbedtls_ecp_points, but this is OK * since from this point onwards, they are only accessed indirectly * via the getter function ecp_select_comb() which does set the * target's Z coordinate to 1. */ - for( i = 0; i < T_size; i++ ) - mbedtls_mpi_free( &T[i].Z ); + for (i = 0; i < T_size; i++) { + mbedtls_mpi_free(&T[i].Z); + } cleanup: - mpi_free_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mpi_free_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL && - ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - { - if( rs_ctx->rsm->state == ecp_rsm_pre_dbl ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL && + ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { + if (rs_ctx->rsm->state == ecp_rsm_pre_dbl) { rs_ctx->rsm->i = j; + } } #endif - return( ret ); + return ret; } /* @@ -1991,30 +2019,29 @@ cleanup: * * See ecp_comb_recode_core() for background */ -static int ecp_select_comb( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_ecp_point T[], unsigned char T_size, - unsigned char i ) +static int ecp_select_comb(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_ecp_point T[], unsigned char T_size, + unsigned char i) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char ii, j; /* Ignore the "sign" bit and scale down */ - ii = ( i & 0x7Fu ) >> 1; + ii = (i & 0x7Fu) >> 1; /* Read the whole table to thwart cache-based timing attacks */ - for( j = 0; j < T_size; j++ ) - { - MPI_ECP_COND_ASSIGN( &R->X, &T[j].X, j == ii ); - MPI_ECP_COND_ASSIGN( &R->Y, &T[j].Y, j == ii ); + for (j = 0; j < T_size; j++) { + MPI_ECP_COND_ASSIGN(&R->X, &T[j].X, j == ii); + MPI_ECP_COND_ASSIGN(&R->Y, &T[j].Y, j == ii); } /* Safely invert result if i is "negative" */ - MBEDTLS_MPI_CHK( ecp_safe_invert_jac( grp, R, i >> 7 ) ); + MBEDTLS_MPI_CHK(ecp_safe_invert_jac(grp, R, i >> 7)); - MPI_ECP_LSET( &R->Z, 1 ); + MPI_ECP_LSET(&R->Z, 1); cleanup: - return( ret ); + return ret; } /* @@ -2023,74 +2050,70 @@ cleanup: * * Cost: d A + d D + 1 R */ -static int ecp_mul_comb_core( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_ecp_point T[], unsigned char T_size, - const unsigned char x[], size_t d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecp_mul_comb_core(const mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_ecp_point T[], unsigned char T_size, + const unsigned char x[], size_t d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point Txi; mbedtls_mpi tmp[4]; size_t i; - mbedtls_ecp_point_init( &Txi ); - mpi_init_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mbedtls_ecp_point_init(&Txi); + mpi_init_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); #if !defined(MBEDTLS_ECP_RESTARTABLE) (void) rs_ctx; #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL && - rs_ctx->rsm->state != ecp_rsm_comb_core ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL && + rs_ctx->rsm->state != ecp_rsm_comb_core) { rs_ctx->rsm->i = 0; rs_ctx->rsm->state = ecp_rsm_comb_core; } /* new 'if' instead of nested for the sake of the 'else' branch */ - if( rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->i != 0 ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->i != 0) { /* restore current index (R already pointing to rs_ctx->rsm->R) */ i = rs_ctx->rsm->i; - } - else + } else #endif { /* Start with a non-zero point and randomize its coordinates */ i = d; - MBEDTLS_MPI_CHK( ecp_select_comb( grp, R, T, T_size, x[i] ) ); - if( f_rng != 0 ) - MBEDTLS_MPI_CHK( ecp_randomize_jac( grp, R, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecp_select_comb(grp, R, T, T_size, x[i])); + if (f_rng != 0) { + MBEDTLS_MPI_CHK(ecp_randomize_jac(grp, R, f_rng, p_rng)); + } } - while( i != 0 ) - { - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_DBL + MBEDTLS_ECP_OPS_ADD ); + while (i != 0) { + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_DBL + MBEDTLS_ECP_OPS_ADD); --i; - MBEDTLS_MPI_CHK( ecp_double_jac( grp, R, R, tmp ) ); - MBEDTLS_MPI_CHK( ecp_select_comb( grp, &Txi, T, T_size, x[i] ) ); - MBEDTLS_MPI_CHK( ecp_add_mixed( grp, R, R, &Txi, tmp ) ); + MBEDTLS_MPI_CHK(ecp_double_jac(grp, R, R, tmp)); + MBEDTLS_MPI_CHK(ecp_select_comb(grp, &Txi, T, T_size, x[i])); + MBEDTLS_MPI_CHK(ecp_add_mixed(grp, R, R, &Txi, tmp)); } cleanup: - mbedtls_ecp_point_free( &Txi ); - mpi_free_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mbedtls_ecp_point_free(&Txi); + mpi_free_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL && - ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL && + ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { rs_ctx->rsm->i = i; /* no need to save R, already pointing to rs_ctx->rsm->R */ } #endif - return( ret ); + return ret; } /* @@ -2105,39 +2128,40 @@ cleanup: * * See ecp_comb_recode_core() for background. */ -static int ecp_comb_recode_scalar( const mbedtls_ecp_group *grp, - const mbedtls_mpi *m, - unsigned char k[COMB_MAX_D + 1], - size_t d, - unsigned char w, - unsigned char *parity_trick ) +static int ecp_comb_recode_scalar(const mbedtls_ecp_group *grp, + const mbedtls_mpi *m, + unsigned char k[COMB_MAX_D + 1], + size_t d, + unsigned char w, + unsigned char *parity_trick) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi M, mm; - mbedtls_mpi_init( &M ); - mbedtls_mpi_init( &mm ); + mbedtls_mpi_init(&M); + mbedtls_mpi_init(&mm); /* N is always odd (see above), just make extra sure */ - if( mbedtls_mpi_get_bit( &grp->N, 0 ) != 1 ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (mbedtls_mpi_get_bit(&grp->N, 0) != 1) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* do we need the parity trick? */ - *parity_trick = ( mbedtls_mpi_get_bit( m, 0 ) == 0 ); + *parity_trick = (mbedtls_mpi_get_bit(m, 0) == 0); /* execute parity fix in constant time */ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &M, m ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &mm, &grp->N, m ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_safe_cond_assign( &M, &mm, *parity_trick ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&M, m)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&mm, &grp->N, m)); + MBEDTLS_MPI_CHK(mbedtls_mpi_safe_cond_assign(&M, &mm, *parity_trick)); /* actual scalar recoding */ - ecp_comb_recode_core( k, d, w, &M ); + ecp_comb_recode_core(k, d, w, &M); cleanup: - mbedtls_mpi_free( &mm ); - mbedtls_mpi_free( &M ); + mbedtls_mpi_free(&mm); + mbedtls_mpi_free(&M); - return( ret ); + return ret; } /* @@ -2147,16 +2171,16 @@ cleanup: * Scalar recoding may use a parity trick that makes us compute -m * P, * if that is the case we'll need to recover m * P at the end. */ -static int ecp_mul_comb_after_precomp( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, - const mbedtls_mpi *m, - const mbedtls_ecp_point *T, - unsigned char T_size, - unsigned char w, - size_t d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecp_mul_comb_after_precomp(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, + const mbedtls_mpi *m, + const mbedtls_ecp_point *T, + unsigned char T_size, + unsigned char w, + size_t d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char parity_trick; @@ -2164,27 +2188,28 @@ static int ecp_mul_comb_after_precomp( const mbedtls_ecp_group *grp, mbedtls_ecp_point *RR = R; #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { RR = &rs_ctx->rsm->R; - if( rs_ctx->rsm->state == ecp_rsm_final_norm ) + if (rs_ctx->rsm->state == ecp_rsm_final_norm) { goto final_norm; + } } #endif - MBEDTLS_MPI_CHK( ecp_comb_recode_scalar( grp, m, k, d, w, - &parity_trick ) ); - MBEDTLS_MPI_CHK( ecp_mul_comb_core( grp, RR, T, T_size, k, d, - f_rng, p_rng, rs_ctx ) ); - MBEDTLS_MPI_CHK( ecp_safe_invert_jac( grp, RR, parity_trick ) ); + MBEDTLS_MPI_CHK(ecp_comb_recode_scalar(grp, m, k, d, w, + &parity_trick)); + MBEDTLS_MPI_CHK(ecp_mul_comb_core(grp, RR, T, T_size, k, d, + f_rng, p_rng, rs_ctx)); + MBEDTLS_MPI_CHK(ecp_safe_invert_jac(grp, RR, parity_trick)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { rs_ctx->rsm->state = ecp_rsm_final_norm; + } final_norm: - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_INV); #endif /* * Knowledge of the jacobian coordinates may leak the last few bits of the @@ -2197,25 +2222,27 @@ final_norm: * * Avoid the leak by randomizing coordinates before we normalize them. */ - if( f_rng != 0 ) - MBEDTLS_MPI_CHK( ecp_randomize_jac( grp, RR, f_rng, p_rng ) ); + if (f_rng != 0) { + MBEDTLS_MPI_CHK(ecp_randomize_jac(grp, RR, f_rng, p_rng)); + } - MBEDTLS_MPI_CHK( ecp_normalize_jac( grp, RR ) ); + MBEDTLS_MPI_CHK(ecp_normalize_jac(grp, RR)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL ) - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, RR ) ); + if (rs_ctx != NULL && rs_ctx->rsm != NULL) { + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(R, RR)); + } #endif cleanup: - return( ret ); + return ret; } /* * Pick window size based on curve size and whether we optimize for base point */ -static unsigned char ecp_pick_window_size( const mbedtls_ecp_group *grp, - unsigned char p_eq_g ) +static unsigned char ecp_pick_window_size(const mbedtls_ecp_group *grp, + unsigned char p_eq_g) { unsigned char w; @@ -2231,8 +2258,9 @@ static unsigned char ecp_pick_window_size( const mbedtls_ecp_group *grp, * Just adding one avoids upping the cost of the first mul too much, * and the memory cost too. */ - if( p_eq_g ) + if (p_eq_g) { w++; + } /* * If static comb table may not be used (!p_eq_g) or static comb table does @@ -2243,14 +2271,16 @@ static unsigned char ecp_pick_window_size( const mbedtls_ecp_group *grp, * static comb table, because the size of static comb table is fixed when * it is generated. */ -#if( MBEDTLS_ECP_WINDOW_SIZE < 6 ) - if( (!p_eq_g || !ecp_group_is_static_comb_table(grp)) && w > MBEDTLS_ECP_WINDOW_SIZE ) +#if (MBEDTLS_ECP_WINDOW_SIZE < 6) + if ((!p_eq_g || !ecp_group_is_static_comb_table(grp)) && w > MBEDTLS_ECP_WINDOW_SIZE) { w = MBEDTLS_ECP_WINDOW_SIZE; + } #endif - if( w >= grp->nbits ) + if (w >= grp->nbits) { w = 2; + } - return( w ); + return w; } /* @@ -2266,11 +2296,11 @@ static unsigned char ecp_pick_window_size( const mbedtls_ecp_group *grp, * * See comments on ecp_comb_recode_core() regarding the computation strategy. */ -static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecp_mul_comb(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char w, p_eq_g, i; @@ -2278,33 +2308,30 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, unsigned char T_size = 0, T_ok = 0; mbedtls_ecp_point *T = NULL; - ECP_RS_ENTER( rsm ); + ECP_RS_ENTER(rsm); /* Is P the base point ? */ #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 - p_eq_g = ( MPI_ECP_CMP( &P->Y, &grp->G.Y ) == 0 && - MPI_ECP_CMP( &P->X, &grp->G.X ) == 0 ); + p_eq_g = (MPI_ECP_CMP(&P->Y, &grp->G.Y) == 0 && + MPI_ECP_CMP(&P->X, &grp->G.X) == 0); #else p_eq_g = 0; #endif /* Pick window size and deduce related sizes */ - w = ecp_pick_window_size( grp, p_eq_g ); - T_size = 1U << ( w - 1 ); - d = ( grp->nbits + w - 1 ) / w; + w = ecp_pick_window_size(grp, p_eq_g); + T_size = 1U << (w - 1); + d = (grp->nbits + w - 1) / w; /* Pre-computed table: do we have it already for the base point? */ - if( p_eq_g && grp->T != NULL ) - { + if (p_eq_g && grp->T != NULL) { /* second pointer to the same table, will be deleted on exit */ T = grp->T; T_ok = 1; - } - else + } else #if defined(MBEDTLS_ECP_RESTARTABLE) /* Pre-computed table: do we have one in progress? complete? */ - if( rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->T != NULL ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL && rs_ctx->rsm->T != NULL) { /* transfer ownership of T from rsm to local function */ T = rs_ctx->rsm->T; rs_ctx->rsm->T = NULL; @@ -2312,31 +2339,28 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, /* This effectively jumps to the call to mul_comb_after_precomp() */ T_ok = rs_ctx->rsm->state >= ecp_rsm_comb_core; - } - else + } else #endif /* Allocate table if we didn't have any */ { - T = mbedtls_calloc( T_size, sizeof( mbedtls_ecp_point ) ); - if( T == NULL ) - { + T = mbedtls_calloc(T_size, sizeof(mbedtls_ecp_point)); + if (T == NULL) { ret = MBEDTLS_ERR_ECP_ALLOC_FAILED; goto cleanup; } - for( i = 0; i < T_size; i++ ) - mbedtls_ecp_point_init( &T[i] ); + for (i = 0; i < T_size; i++) { + mbedtls_ecp_point_init(&T[i]); + } T_ok = 0; } /* Compute table (or finish computing it) if not done already */ - if( !T_ok ) - { - MBEDTLS_MPI_CHK( ecp_precompute_comb( grp, T, P, w, d, rs_ctx ) ); + if (!T_ok) { + MBEDTLS_MPI_CHK(ecp_precompute_comb(grp, T, P, w, d, rs_ctx)); - if( p_eq_g ) - { + if (p_eq_g) { /* almost transfer ownership of T to the group, but keep a copy of * the pointer to use for calling the next function more easily */ grp->T = T; @@ -2345,20 +2369,20 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, } /* Actual comb multiplication using precomputed points */ - MBEDTLS_MPI_CHK( ecp_mul_comb_after_precomp( grp, R, m, - T, T_size, w, d, - f_rng, p_rng, rs_ctx ) ); + MBEDTLS_MPI_CHK(ecp_mul_comb_after_precomp(grp, R, m, + T, T_size, w, d, + f_rng, p_rng, rs_ctx)); cleanup: /* does T belong to the group? */ - if( T == grp->T ) + if (T == grp->T) { T = NULL; + } /* does T belong to the restart context? */ #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->rsm != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS && T != NULL ) - { + if (rs_ctx != NULL && rs_ctx->rsm != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS && T != NULL) { /* transfer ownership of T from local function to rsm */ rs_ctx->rsm->T_size = T_size; rs_ctx->rsm->T = T; @@ -2367,26 +2391,28 @@ cleanup: #endif /* did T belong to us? then let's destroy it! */ - if( T != NULL ) - { - for( i = 0; i < T_size; i++ ) - mbedtls_ecp_point_free( &T[i] ); - mbedtls_free( T ); + if (T != NULL) { + for (i = 0; i < T_size; i++) { + mbedtls_ecp_point_free(&T[i]); + } + mbedtls_free(T); } /* prevent caller from using invalid value */ - int should_free_R = ( ret != 0 ); + int should_free_R = (ret != 0); #if defined(MBEDTLS_ECP_RESTARTABLE) /* don't free R while in progress in case R == P */ - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { should_free_R = 0; + } #endif - if( should_free_R ) - mbedtls_ecp_point_free( R ); + if (should_free_R) { + mbedtls_ecp_point_free(R); + } - ECP_RS_LEAVE( rsm ); + ECP_RS_LEAVE(rsm); - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ @@ -2404,23 +2430,24 @@ cleanup: * Normalize Montgomery x/z coordinates: X = X/Z, Z = 1 * Cost: 1M + 1I */ -static int ecp_normalize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P ) +static int ecp_normalize_mxz(const mbedtls_ecp_group *grp, mbedtls_ecp_point *P) { #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_normalize_mxz( grp, P ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_normalize_mxz(grp, P); + } #endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MPI_ECP_INV( &P->Z, &P->Z ); - MPI_ECP_MUL( &P->X, &P->X, &P->Z ); - MPI_ECP_LSET( &P->Z, 1 ); + MPI_ECP_INV(&P->Z, &P->Z); + MPI_ECP_MUL(&P->X, &P->X, &P->Z); + MPI_ECP_LSET(&P->Z, 1); cleanup: - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) */ } @@ -2432,33 +2459,35 @@ cleanup: * This countermeasure was first suggested in [2]. * Cost: 2M */ -static int ecp_randomize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int ecp_randomize_mxz(const mbedtls_ecp_group *grp, mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_randomize_mxz( grp, P, f_rng, p_rng ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_randomize_mxz(grp, P, f_rng, p_rng); + } #endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi l; - mbedtls_mpi_init( &l ); + mbedtls_mpi_init(&l); /* Generate l such that 1 < l < p */ - MPI_ECP_RAND( &l ); + MPI_ECP_RAND(&l); - MPI_ECP_MUL( &P->X, &P->X, &l ); - MPI_ECP_MUL( &P->Z, &P->Z, &l ); + MPI_ECP_MUL(&P->X, &P->X, &l); + MPI_ECP_MUL(&P->Z, &P->Z, &l); cleanup: - mbedtls_mpi_free( &l ); + mbedtls_mpi_free(&l); - if( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + if (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; - return( ret ); + } + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) */ } @@ -2477,44 +2506,45 @@ cleanup: * * Cost: 5M + 4S */ -static int ecp_double_add_mxz( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, mbedtls_ecp_point *S, - const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q, - const mbedtls_mpi *d, - mbedtls_mpi T[4] ) +static int ecp_double_add_mxz(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, mbedtls_ecp_point *S, + const mbedtls_ecp_point *P, const mbedtls_ecp_point *Q, + const mbedtls_mpi *d, + mbedtls_mpi T[4]) { #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) - if( mbedtls_internal_ecp_grp_capable( grp ) ) - return( mbedtls_internal_ecp_double_add_mxz( grp, R, S, P, Q, d ) ); + if (mbedtls_internal_ecp_grp_capable(grp)) { + return mbedtls_internal_ecp_double_add_mxz(grp, R, S, P, Q, d); + } #endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ #if defined(MBEDTLS_ECP_NO_FALLBACK) && defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MPI_ECP_ADD( &T[0], &P->X, &P->Z ); /* Pp := PX + PZ */ - MPI_ECP_SUB( &T[1], &P->X, &P->Z ); /* Pm := PX - PZ */ - MPI_ECP_ADD( &T[2], &Q->X, &Q->Z ); /* Qp := QX + XZ */ - MPI_ECP_SUB( &T[3], &Q->X, &Q->Z ); /* Qm := QX - QZ */ - MPI_ECP_MUL( &T[3], &T[3], &T[0] ); /* Qm * Pp */ - MPI_ECP_MUL( &T[2], &T[2], &T[1] ); /* Qp * Pm */ - MPI_ECP_SQR( &T[0], &T[0] ); /* Pp^2 */ - MPI_ECP_SQR( &T[1], &T[1] ); /* Pm^2 */ - MPI_ECP_MUL( &R->X, &T[0], &T[1] ); /* Pp^2 * Pm^2 */ - MPI_ECP_SUB( &T[0], &T[0], &T[1] ); /* Pp^2 - Pm^2 */ - MPI_ECP_MUL( &R->Z, &grp->A, &T[0] ); /* A * (Pp^2 - Pm^2) */ - MPI_ECP_ADD( &R->Z, &T[1], &R->Z ); /* [ A * (Pp^2-Pm^2) ] + Pm^2 */ - MPI_ECP_ADD( &S->X, &T[3], &T[2] ); /* Qm*Pp + Qp*Pm */ - MPI_ECP_SQR( &S->X, &S->X ); /* (Qm*Pp + Qp*Pm)^2 */ - MPI_ECP_SUB( &S->Z, &T[3], &T[2] ); /* Qm*Pp - Qp*Pm */ - MPI_ECP_SQR( &S->Z, &S->Z ); /* (Qm*Pp - Qp*Pm)^2 */ - MPI_ECP_MUL( &S->Z, d, &S->Z ); /* d * ( Qm*Pp - Qp*Pm )^2 */ - MPI_ECP_MUL( &R->Z, &T[0], &R->Z ); /* [A*(Pp^2-Pm^2)+Pm^2]*(Pp^2-Pm^2) */ + MPI_ECP_ADD(&T[0], &P->X, &P->Z); /* Pp := PX + PZ */ + MPI_ECP_SUB(&T[1], &P->X, &P->Z); /* Pm := PX - PZ */ + MPI_ECP_ADD(&T[2], &Q->X, &Q->Z); /* Qp := QX + XZ */ + MPI_ECP_SUB(&T[3], &Q->X, &Q->Z); /* Qm := QX - QZ */ + MPI_ECP_MUL(&T[3], &T[3], &T[0]); /* Qm * Pp */ + MPI_ECP_MUL(&T[2], &T[2], &T[1]); /* Qp * Pm */ + MPI_ECP_SQR(&T[0], &T[0]); /* Pp^2 */ + MPI_ECP_SQR(&T[1], &T[1]); /* Pm^2 */ + MPI_ECP_MUL(&R->X, &T[0], &T[1]); /* Pp^2 * Pm^2 */ + MPI_ECP_SUB(&T[0], &T[0], &T[1]); /* Pp^2 - Pm^2 */ + MPI_ECP_MUL(&R->Z, &grp->A, &T[0]); /* A * (Pp^2 - Pm^2) */ + MPI_ECP_ADD(&R->Z, &T[1], &R->Z); /* [ A * (Pp^2-Pm^2) ] + Pm^2 */ + MPI_ECP_ADD(&S->X, &T[3], &T[2]); /* Qm*Pp + Qp*Pm */ + MPI_ECP_SQR(&S->X, &S->X); /* (Qm*Pp + Qp*Pm)^2 */ + MPI_ECP_SUB(&S->Z, &T[3], &T[2]); /* Qm*Pp - Qp*Pm */ + MPI_ECP_SQR(&S->Z, &S->Z); /* (Qm*Pp - Qp*Pm)^2 */ + MPI_ECP_MUL(&S->Z, d, &S->Z); /* d * ( Qm*Pp - Qp*Pm )^2 */ + MPI_ECP_MUL(&R->Z, &T[0], &R->Z); /* [A*(Pp^2-Pm^2)+Pm^2]*(Pp^2-Pm^2) */ cleanup: - return( ret ); + return ret; #endif /* !defined(MBEDTLS_ECP_NO_FALLBACK) || !defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) */ } @@ -2522,10 +2552,10 @@ cleanup: * Multiplication with Montgomery ladder in x/z coordinates, * for curves in Montgomery form */ -static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int ecp_mul_mxz(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -2533,33 +2563,33 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, mbedtls_ecp_point RP; mbedtls_mpi PX; mbedtls_mpi tmp[4]; - mbedtls_ecp_point_init( &RP ); mbedtls_mpi_init( &PX ); + mbedtls_ecp_point_init(&RP); mbedtls_mpi_init(&PX); - mpi_init_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mpi_init_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); - if( f_rng == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* Save PX and read from P before writing to R, in case P == R */ - MPI_ECP_MOV( &PX, &P->X ); - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( &RP, P ) ); + MPI_ECP_MOV(&PX, &P->X); + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(&RP, P)); /* Set R to zero in modified x/z coordinates */ - MPI_ECP_LSET( &R->X, 1 ); - MPI_ECP_LSET( &R->Z, 0 ); - mbedtls_mpi_free( &R->Y ); + MPI_ECP_LSET(&R->X, 1); + MPI_ECP_LSET(&R->Z, 0); + mbedtls_mpi_free(&R->Y); /* RP.X might be slightly larger than P, so reduce it */ - MOD_ADD( &RP.X ); + MOD_ADD(&RP.X); /* Randomize coordinates of the starting point */ - MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, &RP, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(ecp_randomize_mxz(grp, &RP, f_rng, p_rng)); /* Loop invariant: R = result so far, RP = R + P */ i = grp->nbits + 1; /* one past the (zero-based) required msb for private keys */ - while( i-- > 0 ) - { - b = mbedtls_mpi_get_bit( m, i ); + while (i-- > 0) { + b = mbedtls_mpi_get_bit(m, i); /* * if (b) R = 2R + P else R = 2R, * which is: @@ -2567,11 +2597,11 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * else double_add( R, RP, R, RP ) * but using safe conditional swaps to avoid leaks */ - MPI_ECP_COND_SWAP( &R->X, &RP.X, b ); - MPI_ECP_COND_SWAP( &R->Z, &RP.Z, b ); - MBEDTLS_MPI_CHK( ecp_double_add_mxz( grp, R, &RP, R, &RP, &PX, tmp ) ); - MPI_ECP_COND_SWAP( &R->X, &RP.X, b ); - MPI_ECP_COND_SWAP( &R->Z, &RP.Z, b ); + MPI_ECP_COND_SWAP(&R->X, &RP.X, b); + MPI_ECP_COND_SWAP(&R->Z, &RP.Z, b); + MBEDTLS_MPI_CHK(ecp_double_add_mxz(grp, R, &RP, R, &RP, &PX, tmp)); + MPI_ECP_COND_SWAP(&R->X, &RP.X, b); + MPI_ECP_COND_SWAP(&R->Z, &RP.Z, b); } /* @@ -2585,14 +2615,14 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * * Avoid the leak by randomizing coordinates before we normalize them. */ - MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, R, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( ecp_normalize_mxz( grp, R ) ); + MBEDTLS_MPI_CHK(ecp_randomize_mxz(grp, R, f_rng, p_rng)); + MBEDTLS_MPI_CHK(ecp_normalize_mxz(grp, R)); cleanup: - mbedtls_ecp_point_free( &RP ); mbedtls_mpi_free( &PX ); + mbedtls_ecp_point_free(&RP); mbedtls_mpi_free(&PX); - mpi_free_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); - return( ret ); + mpi_free_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); + return ret; } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ @@ -2603,10 +2633,10 @@ cleanup: * This internal function can be called without an RNG in case where we know * the inputs are not sensitive. */ -static int ecp_mul_restartable_internal( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int ecp_mul_restartable_internal(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; #if defined(MBEDTLS_ECP_INTERNAL_ALT) @@ -2615,79 +2645,85 @@ static int ecp_mul_restartable_internal( mbedtls_ecp_group *grp, mbedtls_ecp_poi #if defined(MBEDTLS_ECP_RESTARTABLE) /* reset ops count for this call if top-level */ - if( rs_ctx != NULL && rs_ctx->depth++ == 0 ) + if (rs_ctx != NULL && rs_ctx->depth++ == 0) { rs_ctx->ops_done = 0; + } #else (void) rs_ctx; #endif #if defined(MBEDTLS_ECP_INTERNAL_ALT) - if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) ) - MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) ); + if ((is_grp_capable = mbedtls_internal_ecp_grp_capable(grp))) { + MBEDTLS_MPI_CHK(mbedtls_internal_ecp_init(grp)); + } #endif /* MBEDTLS_ECP_INTERNAL_ALT */ int restarting = 0; #if defined(MBEDTLS_ECP_RESTARTABLE) - restarting = ( rs_ctx != NULL && rs_ctx->rsm != NULL ); + restarting = (rs_ctx != NULL && rs_ctx->rsm != NULL); #endif /* skip argument check when restarting */ - if( !restarting ) - { + if (!restarting) { /* check_privkey is free */ - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_CHK ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_CHK); /* Common sanity checks */ - MBEDTLS_MPI_CHK( mbedtls_ecp_check_privkey( grp, m ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_check_privkey(grp, m)); + MBEDTLS_MPI_CHK(mbedtls_ecp_check_pubkey(grp, P)); } ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - MBEDTLS_MPI_CHK( ecp_mul_mxz( grp, R, m, P, f_rng, p_rng ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + MBEDTLS_MPI_CHK(ecp_mul_mxz(grp, R, m, P, f_rng, p_rng)); + } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - MBEDTLS_MPI_CHK( ecp_mul_comb( grp, R, m, P, f_rng, p_rng, rs_ctx ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + MBEDTLS_MPI_CHK(ecp_mul_comb(grp, R, m, P, f_rng, p_rng, rs_ctx)); + } #endif cleanup: #if defined(MBEDTLS_ECP_INTERNAL_ALT) - if( is_grp_capable ) - mbedtls_internal_ecp_free( grp ); + if (is_grp_capable) { + mbedtls_internal_ecp_free(grp); + } #endif /* MBEDTLS_ECP_INTERNAL_ALT */ #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL ) + if (rs_ctx != NULL) { rs_ctx->depth--; + } #endif - return( ret ); + return ret; } /* * Restartable multiplication R = m * P */ -int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_ecp_restart_ctx *rs_ctx ) +int mbedtls_ecp_mul_restartable(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_ecp_restart_ctx *rs_ctx) { - if( f_rng == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - return( ecp_mul_restartable_internal( grp, R, m, P, f_rng, p_rng, rs_ctx ) ); + return ecp_mul_restartable_internal(grp, R, m, P, f_rng, p_rng, rs_ctx); } /* * Multiplication R = m * P */ -int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_ecp_mul(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - return( mbedtls_ecp_mul_restartable( grp, R, m, P, f_rng, p_rng, NULL ) ); + return mbedtls_ecp_mul_restartable(grp, R, m, P, f_rng, p_rng, NULL); } #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) @@ -2695,35 +2731,37 @@ int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * Check that an affine point is valid as a public key, * short weierstrass curves (SEC1 3.2.3.1) */ -static int ecp_check_pubkey_sw( const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt ) +static int ecp_check_pubkey_sw(const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi YY, RHS; /* pt coordinates must be normalized for our checks */ - if( mbedtls_mpi_cmp_int( &pt->X, 0 ) < 0 || - mbedtls_mpi_cmp_int( &pt->Y, 0 ) < 0 || - mbedtls_mpi_cmp_mpi( &pt->X, &grp->P ) >= 0 || - mbedtls_mpi_cmp_mpi( &pt->Y, &grp->P ) >= 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_cmp_int(&pt->X, 0) < 0 || + mbedtls_mpi_cmp_int(&pt->Y, 0) < 0 || + mbedtls_mpi_cmp_mpi(&pt->X, &grp->P) >= 0 || + mbedtls_mpi_cmp_mpi(&pt->Y, &grp->P) >= 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - mbedtls_mpi_init( &YY ); mbedtls_mpi_init( &RHS ); + mbedtls_mpi_init(&YY); mbedtls_mpi_init(&RHS); /* * YY = Y^2 * RHS = X^3 + A X + B */ - MPI_ECP_SQR( &YY, &pt->Y ); - MBEDTLS_MPI_CHK( ecp_sw_rhs( grp, &RHS, &pt->X ) ); + MPI_ECP_SQR(&YY, &pt->Y); + MBEDTLS_MPI_CHK(ecp_sw_rhs(grp, &RHS, &pt->X)); - if( MPI_ECP_CMP( &YY, &RHS ) != 0 ) + if (MPI_ECP_CMP(&YY, &RHS) != 0) { ret = MBEDTLS_ERR_ECP_INVALID_KEY; + } cleanup: - mbedtls_mpi_free( &YY ); mbedtls_mpi_free( &RHS ); + mbedtls_mpi_free(&YY); mbedtls_mpi_free(&RHS); - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ @@ -2732,42 +2770,35 @@ cleanup: * R = m * P with shortcuts for m == 0, m == 1 and m == -1 * NOT constant-time - ONLY for short Weierstrass! */ -static int mbedtls_ecp_mul_shortcuts( mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, - const mbedtls_mpi *m, - const mbedtls_ecp_point *P, - mbedtls_ecp_restart_ctx *rs_ctx ) +static int mbedtls_ecp_mul_shortcuts(mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, + const mbedtls_mpi *m, + const mbedtls_ecp_point *P, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi tmp; - mbedtls_mpi_init( &tmp ); + mbedtls_mpi_init(&tmp); - if( mbedtls_mpi_cmp_int( m, 0 ) == 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_set_zero( R ) ); - } - else if( mbedtls_mpi_cmp_int( m, 1 ) == 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); - } - else if( mbedtls_mpi_cmp_int( m, -1 ) == 0 ) - { - MBEDTLS_MPI_CHK( mbedtls_ecp_check_pubkey( grp, P ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, P ) ); - MPI_ECP_NEG( &R->Y ); - } - else - { - MBEDTLS_MPI_CHK( ecp_mul_restartable_internal( grp, R, m, P, - NULL, NULL, rs_ctx ) ); + if (mbedtls_mpi_cmp_int(m, 0) == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecp_check_pubkey(grp, P)); + MBEDTLS_MPI_CHK(mbedtls_ecp_set_zero(R)); + } else if (mbedtls_mpi_cmp_int(m, 1) == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecp_check_pubkey(grp, P)); + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(R, P)); + } else if (mbedtls_mpi_cmp_int(m, -1) == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecp_check_pubkey(grp, P)); + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(R, P)); + MPI_ECP_NEG(&R->Y); + } else { + MBEDTLS_MPI_CHK(ecp_mul_restartable_internal(grp, R, m, P, + NULL, NULL, rs_ctx)); } cleanup: - mbedtls_mpi_free( &tmp ); + mbedtls_mpi_free(&tmp); - return( ret ); + return ret; } /* @@ -2775,10 +2806,10 @@ cleanup: * NOT constant-time */ int mbedtls_ecp_muladd_restartable( - mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - const mbedtls_mpi *n, const mbedtls_ecp_point *Q, - mbedtls_ecp_restart_ctx *rs_ctx ) + mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + const mbedtls_mpi *n, const mbedtls_ecp_point *Q, + mbedtls_ecp_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point mP; @@ -2788,98 +2819,107 @@ int mbedtls_ecp_muladd_restartable( #if defined(MBEDTLS_ECP_INTERNAL_ALT) char is_grp_capable = 0; #endif - if( mbedtls_ecp_get_type( grp ) != MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + if (mbedtls_ecp_get_type(grp) != MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } - mbedtls_ecp_point_init( &mP ); - mpi_init_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mbedtls_ecp_point_init(&mP); + mpi_init_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); - ECP_RS_ENTER( ma ); + ECP_RS_ENTER(ma); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ma != NULL ) - { + if (rs_ctx != NULL && rs_ctx->ma != NULL) { /* redirect intermediate results to restart context */ pmP = &rs_ctx->ma->mP; pR = &rs_ctx->ma->R; /* jump to next operation */ - if( rs_ctx->ma->state == ecp_rsma_mul2 ) + if (rs_ctx->ma->state == ecp_rsma_mul2) { goto mul2; - if( rs_ctx->ma->state == ecp_rsma_add ) + } + if (rs_ctx->ma->state == ecp_rsma_add) { goto add; - if( rs_ctx->ma->state == ecp_rsma_norm ) + } + if (rs_ctx->ma->state == ecp_rsma_norm) { goto norm; + } } #endif /* MBEDTLS_ECP_RESTARTABLE */ - MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pmP, m, P, rs_ctx ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul_shortcuts(grp, pmP, m, P, rs_ctx)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ma != NULL ) + if (rs_ctx != NULL && rs_ctx->ma != NULL) { rs_ctx->ma->state = ecp_rsma_mul2; + } mul2: #endif - MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pR, n, Q, rs_ctx ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul_shortcuts(grp, pR, n, Q, rs_ctx)); #if defined(MBEDTLS_ECP_INTERNAL_ALT) - if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) ) - MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) ); + if ((is_grp_capable = mbedtls_internal_ecp_grp_capable(grp))) { + MBEDTLS_MPI_CHK(mbedtls_internal_ecp_init(grp)); + } #endif /* MBEDTLS_ECP_INTERNAL_ALT */ #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ma != NULL ) + if (rs_ctx != NULL && rs_ctx->ma != NULL) { rs_ctx->ma->state = ecp_rsma_add; + } add: #endif - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_ADD ); - MBEDTLS_MPI_CHK( ecp_add_mixed( grp, pR, pmP, pR, tmp ) ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_ADD); + MBEDTLS_MPI_CHK(ecp_add_mixed(grp, pR, pmP, pR, tmp)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ma != NULL ) + if (rs_ctx != NULL && rs_ctx->ma != NULL) { rs_ctx->ma->state = ecp_rsma_norm; + } norm: #endif - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV ); - MBEDTLS_MPI_CHK( ecp_normalize_jac( grp, pR ) ); + MBEDTLS_ECP_BUDGET(MBEDTLS_ECP_OPS_INV); + MBEDTLS_MPI_CHK(ecp_normalize_jac(grp, pR)); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && rs_ctx->ma != NULL ) - MBEDTLS_MPI_CHK( mbedtls_ecp_copy( R, pR ) ); + if (rs_ctx != NULL && rs_ctx->ma != NULL) { + MBEDTLS_MPI_CHK(mbedtls_ecp_copy(R, pR)); + } #endif cleanup: - mpi_free_many( tmp, sizeof( tmp ) / sizeof( mbedtls_mpi ) ); + mpi_free_many(tmp, sizeof(tmp) / sizeof(mbedtls_mpi)); #if defined(MBEDTLS_ECP_INTERNAL_ALT) - if( is_grp_capable ) - mbedtls_internal_ecp_free( grp ); + if (is_grp_capable) { + mbedtls_internal_ecp_free(grp); + } #endif /* MBEDTLS_ECP_INTERNAL_ALT */ - mbedtls_ecp_point_free( &mP ); + mbedtls_ecp_point_free(&mP); - ECP_RS_LEAVE( ma ); + ECP_RS_LEAVE(ma); - return( ret ); + return ret; } /* * Linear combination * NOT constant-time */ -int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, - const mbedtls_mpi *m, const mbedtls_ecp_point *P, - const mbedtls_mpi *n, const mbedtls_ecp_point *Q ) +int mbedtls_ecp_muladd(mbedtls_ecp_group *grp, mbedtls_ecp_point *R, + const mbedtls_mpi *m, const mbedtls_ecp_point *P, + const mbedtls_mpi *n, const mbedtls_ecp_point *Q) { - return( mbedtls_ecp_muladd_restartable( grp, R, m, P, n, Q, NULL ) ); + return mbedtls_ecp_muladd_restartable(grp, R, m, P, n, Q, NULL); } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) -#define ECP_MPI_INIT(s, n, p) {s, (n), (mbedtls_mpi_uint *)(p)} +#define ECP_MPI_INIT(s, n, p) { s, (n), (mbedtls_mpi_uint *) (p) } #define ECP_MPI_INIT_ARRAY(x) \ ECP_MPI_INIT(1, sizeof(x) / sizeof(mbedtls_mpi_uint), x) /* @@ -2888,21 +2928,21 @@ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * See ecp_check_pubkey_x25519(). */ static const mbedtls_mpi_uint x25519_bad_point_1[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xe0, 0xeb, 0x7a, 0x7c, 0x3b, 0x41, 0xb8, 0xae), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x56, 0xe3, 0xfa, 0xf1, 0x9f, 0xc4, 0x6a), + MBEDTLS_BYTES_TO_T_UINT_8(0xda, 0x09, 0x8d, 0xeb, 0x9c, 0x32, 0xb1, 0xfd), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x62, 0x05, 0x16, 0x5f, 0x49, 0xb8, 0x00), }; static const mbedtls_mpi_uint x25519_bad_point_2[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5f, 0x9c, 0x95, 0xbc, 0xa3, 0x50, 0x8c, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0xb1, 0xd0, 0xb1, 0x55, 0x9c, 0x83, 0xef, 0x5b), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x44, 0x5c, 0xc4, 0x58, 0x1c, 0x8e, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0xd8, 0x22, 0x4e, 0xdd, 0xd0, 0x9f, 0x11, 0x57), }; static const mbedtls_mpi ecp_x25519_bad_point_1 = ECP_MPI_INIT_ARRAY( - x25519_bad_point_1 ); + x25519_bad_point_1); static const mbedtls_mpi ecp_x25519_bad_point_2 = ECP_MPI_INIT_ARRAY( - x25519_bad_point_2 ); + x25519_bad_point_2); #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ /* @@ -2911,40 +2951,37 @@ static const mbedtls_mpi ecp_x25519_bad_point_2 = ECP_MPI_INIT_ARRAY( * https://eprint.iacr.org/2017/806.pdf * Those points are never sent by an honest peer. */ -static int ecp_check_bad_points_mx( const mbedtls_mpi *X, const mbedtls_mpi *P, - const mbedtls_ecp_group_id grp_id ) +static int ecp_check_bad_points_mx(const mbedtls_mpi *X, const mbedtls_mpi *P, + const mbedtls_ecp_group_id grp_id) { int ret; mbedtls_mpi XmP; - mbedtls_mpi_init( &XmP ); + mbedtls_mpi_init(&XmP); /* Reduce X mod P so that we only need to check values less than P. * We know X < 2^256 so we can proceed by subtraction. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &XmP, X ) ); - while( mbedtls_mpi_cmp_mpi( &XmP, P ) >= 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &XmP, &XmP, P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&XmP, X)); + while (mbedtls_mpi_cmp_mpi(&XmP, P) >= 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&XmP, &XmP, P)); + } /* Check against the known bad values that are less than P. For Curve448 * these are 0, 1 and -1. For Curve25519 we check the values less than P * from the following list: https://cr.yp.to/ecdh.html#validate */ - if( mbedtls_mpi_cmp_int( &XmP, 1 ) <= 0 ) /* takes care of 0 and 1 */ - { + if (mbedtls_mpi_cmp_int(&XmP, 1) <= 0) { /* takes care of 0 and 1 */ ret = MBEDTLS_ERR_ECP_INVALID_KEY; goto cleanup; } #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) - if( grp_id == MBEDTLS_ECP_DP_CURVE25519 ) - { - if( mbedtls_mpi_cmp_mpi( &XmP, &ecp_x25519_bad_point_1 ) == 0 ) - { + if (grp_id == MBEDTLS_ECP_DP_CURVE25519) { + if (mbedtls_mpi_cmp_mpi(&XmP, &ecp_x25519_bad_point_1) == 0) { ret = MBEDTLS_ERR_ECP_INVALID_KEY; goto cleanup; } - if( mbedtls_mpi_cmp_mpi( &XmP, &ecp_x25519_bad_point_2 ) == 0 ) - { + if (mbedtls_mpi_cmp_mpi(&XmP, &ecp_x25519_bad_point_2) == 0) { ret = MBEDTLS_ERR_ECP_INVALID_KEY; goto cleanup; } @@ -2954,9 +2991,8 @@ static int ecp_check_bad_points_mx( const mbedtls_mpi *X, const mbedtls_mpi *P, #endif /* Final check: check if XmP + 1 is P (final because it changes XmP!) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &XmP, &XmP, 1 ) ); - if( mbedtls_mpi_cmp_mpi( &XmP, P ) == 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&XmP, &XmP, 1)); + if (mbedtls_mpi_cmp_mpi(&XmP, P) == 0) { ret = MBEDTLS_ERR_ECP_INVALID_KEY; goto cleanup; } @@ -2964,96 +3000,102 @@ static int ecp_check_bad_points_mx( const mbedtls_mpi *X, const mbedtls_mpi *P, ret = 0; cleanup: - mbedtls_mpi_free( &XmP ); + mbedtls_mpi_free(&XmP); - return( ret ); + return ret; } /* * Check validity of a public key for Montgomery curves with x-only schemes */ -static int ecp_check_pubkey_mx( const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt ) +static int ecp_check_pubkey_mx(const mbedtls_ecp_group *grp, const mbedtls_ecp_point *pt) { /* [Curve25519 p. 5] Just check X is the correct number of bytes */ /* Allow any public value, if it's too big then we'll just reduce it mod p * (RFC 7748 sec. 5 para. 3). */ - if( mbedtls_mpi_size( &pt->X ) > ( grp->nbits + 7 ) / 8 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_size(&pt->X) > (grp->nbits + 7) / 8) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } /* Implicit in all standards (as they don't consider negative numbers): * X must be non-negative. This is normally ensured by the way it's * encoded for transmission, but let's be extra sure. */ - if( mbedtls_mpi_cmp_int( &pt->X, 0 ) < 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_cmp_int(&pt->X, 0) < 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - return( ecp_check_bad_points_mx( &pt->X, &grp->P, grp->id ) ); + return ecp_check_bad_points_mx(&pt->X, &grp->P, grp->id); } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ /* * Check that a point is valid as a public key */ -int mbedtls_ecp_check_pubkey( const mbedtls_ecp_group *grp, - const mbedtls_ecp_point *pt ) +int mbedtls_ecp_check_pubkey(const mbedtls_ecp_group *grp, + const mbedtls_ecp_point *pt) { /* Must use affine coordinates */ - if( mbedtls_mpi_cmp_int( &pt->Z, 1 ) != 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_cmp_int(&pt->Z, 1) != 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - return( ecp_check_pubkey_mx( grp, pt ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + return ecp_check_pubkey_mx(grp, pt); + } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - return( ecp_check_pubkey_sw( grp, pt ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + return ecp_check_pubkey_sw(grp, pt); + } #endif - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } /* * Check that an mbedtls_mpi is valid as a private key */ -int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, - const mbedtls_mpi *d ) +int mbedtls_ecp_check_privkey(const mbedtls_ecp_group *grp, + const mbedtls_mpi *d) { #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { /* see RFC 7748 sec. 5 para. 5 */ - if( mbedtls_mpi_get_bit( d, 0 ) != 0 || - mbedtls_mpi_get_bit( d, 1 ) != 0 || - mbedtls_mpi_bitlen( d ) - 1 != grp->nbits ) /* mbedtls_mpi_bitlen is one-based! */ - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (mbedtls_mpi_get_bit(d, 0) != 0 || + mbedtls_mpi_get_bit(d, 1) != 0 || + mbedtls_mpi_bitlen(d) - 1 != grp->nbits) { /* mbedtls_mpi_bitlen is one-based! */ + return MBEDTLS_ERR_ECP_INVALID_KEY; + } /* see [Curve25519] page 5 */ - if( grp->nbits == 254 && mbedtls_mpi_get_bit( d, 2 ) != 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (grp->nbits == 254 && mbedtls_mpi_get_bit(d, 2) != 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - return( 0 ); + return 0; } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - { + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { /* see SEC1 3.2 */ - if( mbedtls_mpi_cmp_int( d, 1 ) < 0 || - mbedtls_mpi_cmp_mpi( d, &grp->N ) >= 0 ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); - else - return( 0 ); + if (mbedtls_mpi_cmp_int(d, 1) < 0 || + mbedtls_mpi_cmp_mpi(d, &grp->N) >= 0) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } else { + return 0; + } } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) MBEDTLS_STATIC_TESTABLE -int mbedtls_ecp_gen_privkey_mx( size_t high_bit, - mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecp_gen_privkey_mx(size_t high_bit, + mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; size_t n_random_bytes = high_bit / 8 + 1; @@ -3062,38 +3104,36 @@ int mbedtls_ecp_gen_privkey_mx( size_t high_bit, /* Generate a (high_bit+1)-bit random number by generating just enough * random bytes, then shifting out extra bits from the top (necessary * when (high_bit+1) is not a multiple of 8). */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( d, n_random_bytes, - f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( d, 8 * n_random_bytes - high_bit - 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(d, n_random_bytes, + f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(d, 8 * n_random_bytes - high_bit - 1)); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( d, high_bit, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(d, high_bit, 1)); /* Make sure the last two bits are unset for Curve448, three bits for Curve25519 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( d, 0, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( d, 1, 0 ) ); - if( high_bit == 254 ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( d, 2, 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(d, 0, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(d, 1, 0)); + if (high_bit == 254) { + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(d, 2, 0)); } cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) static int mbedtls_ecp_gen_privkey_sw( const mbedtls_mpi *N, mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - int ret = mbedtls_mpi_random( d, 1, N, f_rng, p_rng ); - switch( ret ) - { + int ret = mbedtls_mpi_random(d, 1, N, f_rng, p_rng); + switch (ret) { case MBEDTLS_ERR_MPI_NOT_ACCEPTABLE: - return( MBEDTLS_ERR_ECP_RANDOM_FAILED ); + return MBEDTLS_ERR_ECP_RANDOM_FAILED; default: - return( ret ); + return ret; } } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ @@ -3101,63 +3141,66 @@ static int mbedtls_ecp_gen_privkey_sw( /* * Generate a private key */ -int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, - mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecp_gen_privkey(const mbedtls_ecp_group *grp, + mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - return( mbedtls_ecp_gen_privkey_mx( grp->nbits, d, f_rng, p_rng ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + return mbedtls_ecp_gen_privkey_mx(grp->nbits, d, f_rng, p_rng); + } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - return( mbedtls_ecp_gen_privkey_sw( &grp->N, d, f_rng, p_rng ) ); + if (mbedtls_ecp_get_type(grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + return mbedtls_ecp_gen_privkey_sw(&grp->N, d, f_rng, p_rng); + } #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } /* * Generate a keypair with configurable base point */ -int mbedtls_ecp_gen_keypair_base( mbedtls_ecp_group *grp, - const mbedtls_ecp_point *G, - mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecp_gen_keypair_base(mbedtls_ecp_group *grp, + const mbedtls_ecp_point *G, + mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_MPI_CHK( mbedtls_ecp_gen_privkey( grp, d, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( grp, Q, d, G, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_gen_privkey(grp, d, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(grp, Q, d, G, f_rng, p_rng)); cleanup: - return( ret ); + return ret; } /* * Generate key pair, wrapper for conventional base point */ -int mbedtls_ecp_gen_keypair( mbedtls_ecp_group *grp, - mbedtls_mpi *d, mbedtls_ecp_point *Q, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ecp_gen_keypair(mbedtls_ecp_group *grp, + mbedtls_mpi *d, mbedtls_ecp_point *Q, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( mbedtls_ecp_gen_keypair_base( grp, &grp->G, d, Q, f_rng, p_rng ) ); + return mbedtls_ecp_gen_keypair_base(grp, &grp->G, d, Q, f_rng, p_rng); } /* * Generate a keypair, prettier wrapper */ -int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_ecp_gen_key(mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_ecp_group_load( &key->grp, grp_id ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_group_load(&key->grp, grp_id)) != 0) { + return ret; + } - return( mbedtls_ecp_gen_keypair( &key->grp, &key->d, &key->Q, f_rng, p_rng ) ); + return mbedtls_ecp_gen_keypair(&key->grp, &key->d, &key->Q, f_rng, p_rng); } #define ECP_CURVE25519_KEY_SIZE 32 @@ -3165,118 +3208,114 @@ int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, /* * Read a private key. */ -int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, - const unsigned char *buf, size_t buflen ) +int mbedtls_ecp_read_key(mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, + const unsigned char *buf, size_t buflen) { int ret = 0; - if( ( ret = mbedtls_ecp_group_load( &key->grp, grp_id ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_group_load(&key->grp, grp_id)) != 0) { + return ret; + } ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { + if (mbedtls_ecp_get_type(&key->grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { /* * Mask the key as mandated by RFC7748 for Curve25519 and Curve448. */ - if( grp_id == MBEDTLS_ECP_DP_CURVE25519 ) - { - if( buflen != ECP_CURVE25519_KEY_SIZE ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + if (grp_id == MBEDTLS_ECP_DP_CURVE25519) { + if (buflen != ECP_CURVE25519_KEY_SIZE) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary_le( &key->d, buf, buflen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary_le(&key->d, buf, buflen)); /* Set the three least significant bits to 0 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &key->d, 0, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &key->d, 1, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &key->d, 2, 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&key->d, 0, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&key->d, 1, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&key->d, 2, 0)); /* Set the most significant bit to 0 */ MBEDTLS_MPI_CHK( - mbedtls_mpi_set_bit( &key->d, - ECP_CURVE25519_KEY_SIZE * 8 - 1, 0 ) - ); + mbedtls_mpi_set_bit(&key->d, + ECP_CURVE25519_KEY_SIZE * 8 - 1, 0) + ); /* Set the second most significant bit to 1 */ MBEDTLS_MPI_CHK( - mbedtls_mpi_set_bit( &key->d, - ECP_CURVE25519_KEY_SIZE * 8 - 2, 1 ) - ); - } - else if( grp_id == MBEDTLS_ECP_DP_CURVE448 ) - { - if( buflen != ECP_CURVE448_KEY_SIZE ) - return( MBEDTLS_ERR_ECP_INVALID_KEY ); + mbedtls_mpi_set_bit(&key->d, + ECP_CURVE25519_KEY_SIZE * 8 - 2, 1) + ); + } else if (grp_id == MBEDTLS_ECP_DP_CURVE448) { + if (buflen != ECP_CURVE448_KEY_SIZE) { + return MBEDTLS_ERR_ECP_INVALID_KEY; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary_le( &key->d, buf, buflen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary_le(&key->d, buf, buflen)); /* Set the two least significant bits to 0 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &key->d, 0, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &key->d, 1, 0 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&key->d, 0, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&key->d, 1, 0)); /* Set the most significant bit to 1 */ MBEDTLS_MPI_CHK( - mbedtls_mpi_set_bit( &key->d, - ECP_CURVE448_KEY_SIZE * 8 - 1, 1 ) - ); + mbedtls_mpi_set_bit(&key->d, + ECP_CURVE448_KEY_SIZE * 8 - 1, 1) + ); } } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &key->d, buf, buflen ) ); + if (mbedtls_ecp_get_type(&key->grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&key->d, buf, buflen)); - MBEDTLS_MPI_CHK( mbedtls_ecp_check_privkey( &key->grp, &key->d ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_check_privkey(&key->grp, &key->d)); } #endif cleanup: - if( ret != 0 ) - mbedtls_mpi_free( &key->d ); + if (ret != 0) { + mbedtls_mpi_free(&key->d); + } - return( ret ); + return ret; } /* * Write a private key. */ -int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, - unsigned char *buf, size_t buflen ) +int mbedtls_ecp_write_key(mbedtls_ecp_keypair *key, + unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { - if( key->grp.id == MBEDTLS_ECP_DP_CURVE25519 ) - { - if( buflen < ECP_CURVE25519_KEY_SIZE ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + if (mbedtls_ecp_get_type(&key->grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + if (key->grp.id == MBEDTLS_ECP_DP_CURVE25519) { + if (buflen < ECP_CURVE25519_KEY_SIZE) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } + } else if (key->grp.id == MBEDTLS_ECP_DP_CURVE448) { + if (buflen < ECP_CURVE448_KEY_SIZE) { + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + } } - else if( key->grp.id == MBEDTLS_ECP_DP_CURVE448 ) - { - if( buflen < ECP_CURVE448_KEY_SIZE ) - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); - } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary_le( &key->d, buf, buflen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary_le(&key->d, buf, buflen)); } #endif #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) - if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &key->d, buf, buflen ) ); + if (mbedtls_ecp_get_type(&key->grp) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&key->d, buf, buflen)); } #endif cleanup: - return( ret ); + return ret; } @@ -3284,43 +3323,41 @@ cleanup: * Check a public-private key pair */ int mbedtls_ecp_check_pub_priv( - const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) + const mbedtls_ecp_keypair *pub, const mbedtls_ecp_keypair *prv, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_point Q; mbedtls_ecp_group grp; - if( pub->grp.id == MBEDTLS_ECP_DP_NONE || + if (pub->grp.id == MBEDTLS_ECP_DP_NONE || pub->grp.id != prv->grp.id || - mbedtls_mpi_cmp_mpi( &pub->Q.X, &prv->Q.X ) || - mbedtls_mpi_cmp_mpi( &pub->Q.Y, &prv->Q.Y ) || - mbedtls_mpi_cmp_mpi( &pub->Q.Z, &prv->Q.Z ) ) - { - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + mbedtls_mpi_cmp_mpi(&pub->Q.X, &prv->Q.X) || + mbedtls_mpi_cmp_mpi(&pub->Q.Y, &prv->Q.Y) || + mbedtls_mpi_cmp_mpi(&pub->Q.Z, &prv->Q.Z)) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } - mbedtls_ecp_point_init( &Q ); - mbedtls_ecp_group_init( &grp ); + mbedtls_ecp_point_init(&Q); + mbedtls_ecp_group_init(&grp); /* mbedtls_ecp_mul() needs a non-const group... */ - mbedtls_ecp_group_copy( &grp, &prv->grp ); + mbedtls_ecp_group_copy(&grp, &prv->grp); /* Also checks d is valid */ - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &Q, &prv->d, &prv->grp.G, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&grp, &Q, &prv->d, &prv->grp.G, f_rng, p_rng)); - if( mbedtls_mpi_cmp_mpi( &Q.X, &prv->Q.X ) || - mbedtls_mpi_cmp_mpi( &Q.Y, &prv->Q.Y ) || - mbedtls_mpi_cmp_mpi( &Q.Z, &prv->Q.Z ) ) - { + if (mbedtls_mpi_cmp_mpi(&Q.X, &prv->Q.X) || + mbedtls_mpi_cmp_mpi(&Q.Y, &prv->Q.Y) || + mbedtls_mpi_cmp_mpi(&Q.Z, &prv->Q.Z)) { ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; goto cleanup; } cleanup: - mbedtls_ecp_point_free( &Q ); - mbedtls_ecp_group_free( &grp ); + mbedtls_ecp_point_free(&Q); + mbedtls_ecp_group_free(&grp); - return( ret ); + return ret; } /* @@ -3331,14 +3368,17 @@ int mbedtls_ecp_export(const mbedtls_ecp_keypair *key, mbedtls_ecp_group *grp, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_ecp_group_copy( grp, &key->grp ) ) != 0 ) + if ((ret = mbedtls_ecp_group_copy(grp, &key->grp)) != 0) { return ret; + } - if( ( ret = mbedtls_mpi_copy( d, &key->d ) ) != 0 ) + if ((ret = mbedtls_mpi_copy(d, &key->d)) != 0) { return ret; + } - if( ( ret = mbedtls_ecp_copy( Q, &key->Q ) ) != 0 ) + if ((ret = mbedtls_ecp_copy(Q, &key->Q)) != 0) { return ret; + } return 0; } @@ -3352,44 +3392,42 @@ int mbedtls_ecp_export(const mbedtls_ecp_keypair *key, mbedtls_ecp_group *grp, * except we only use the low byte as the output. See * https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use */ -static int self_test_rng( void *ctx, unsigned char *out, size_t len ) +static int self_test_rng(void *ctx, unsigned char *out, size_t len) { static uint32_t state = 42; (void) ctx; - for( size_t i = 0; i < len; i++ ) - { + for (size_t i = 0; i < len; i++) { state = state * 1664525u + 1013904223u; out[i] = (unsigned char) state; } - return( 0 ); + return 0; } /* Adjust the exponent to be a valid private point for the specified curve. * This is sometimes necessary because we use a single set of exponents * for all curves but the validity of values depends on the curve. */ -static int self_test_adjust_exponent( const mbedtls_ecp_group *grp, - mbedtls_mpi *m ) +static int self_test_adjust_exponent(const mbedtls_ecp_group *grp, + mbedtls_mpi *m) { int ret = 0; - switch( grp->id ) - { - /* If Curve25519 is available, then that's what we use for the - * Montgomery test, so we don't need the adjustment code. */ -#if ! defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) + switch (grp->id) { + /* If Curve25519 is available, then that's what we use for the + * Montgomery test, so we don't need the adjustment code. */ +#if !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) case MBEDTLS_ECP_DP_CURVE448: /* Move highest bit from 254 to N-1. Setting bit N-1 is * necessary to enforce the highest-bit-set constraint. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( m, 254, 0 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( m, grp->nbits, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(m, 254, 0)); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(m, grp->nbits, 1)); /* Copy second-highest bit from 253 to N-2. This is not * necessary but improves the test variety a bit. */ MBEDTLS_MPI_CHK( - mbedtls_mpi_set_bit( m, grp->nbits - 1, - mbedtls_mpi_get_bit( m, 253 ) ) ); + mbedtls_mpi_set_bit(m, grp->nbits - 1, + mbedtls_mpi_get_bit(m, 253))); break; #endif #endif /* ! defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) */ @@ -3400,18 +3438,18 @@ static int self_test_adjust_exponent( const mbedtls_ecp_group *grp, goto cleanup; } cleanup: - return( ret ); + return ret; } /* Calculate R = m.P for each m in exponents. Check that the number of * basic operations doesn't depend on the value of m. */ -static int self_test_point( int verbose, - mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, - mbedtls_mpi *m, - const mbedtls_ecp_point *P, - const char *const *exponents, - size_t n_exponents ) +static int self_test_point(int verbose, + mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, + mbedtls_mpi *m, + const mbedtls_ecp_point *P, + const char *const *exponents, + size_t n_exponents) { int ret = 0; size_t i = 0; @@ -3420,12 +3458,11 @@ static int self_test_point( int verbose, dbl_count = 0; mul_count = 0; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( m, 16, exponents[0] ) ); - MBEDTLS_MPI_CHK( self_test_adjust_exponent( grp, m ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( grp, R, m, P, self_test_rng, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(m, 16, exponents[0])); + MBEDTLS_MPI_CHK(self_test_adjust_exponent(grp, m)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(grp, R, m, P, self_test_rng, NULL)); - for( i = 1; i < n_exponents; i++ ) - { + for (i = 1; i < n_exponents; i++) { add_c_prev = add_count; dbl_c_prev = dbl_count; mul_c_prev = mul_count; @@ -3433,34 +3470,33 @@ static int self_test_point( int verbose, dbl_count = 0; mul_count = 0; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( m, 16, exponents[i] ) ); - MBEDTLS_MPI_CHK( self_test_adjust_exponent( grp, m ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( grp, R, m, P, self_test_rng, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(m, 16, exponents[i])); + MBEDTLS_MPI_CHK(self_test_adjust_exponent(grp, m)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(grp, R, m, P, self_test_rng, NULL)); - if( add_count != add_c_prev || + if (add_count != add_c_prev || dbl_count != dbl_c_prev || - mul_count != mul_c_prev ) - { + mul_count != mul_c_prev) { ret = 1; break; } } cleanup: - if( verbose != 0 ) - { - if( ret != 0 ) - mbedtls_printf( "failed (%u)\n", (unsigned int) i ); - else - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + if (ret != 0) { + mbedtls_printf("failed (%u)\n", (unsigned int) i); + } else { + mbedtls_printf("passed\n"); + } } - return( ret ); + return ret; } /* * Checkup routine */ -int mbedtls_ecp_self_test( int verbose ) +int mbedtls_ecp_self_test(int verbose) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_group grp; @@ -3496,77 +3532,85 @@ int mbedtls_ecp_self_test( int verbose ) }; #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &R ); - mbedtls_ecp_point_init( &P ); - mbedtls_mpi_init( &m ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&R); + mbedtls_ecp_point_init(&P); + mbedtls_mpi_init(&m); #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* Use secp192r1 if available, or any available curve */ #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_SECP192R1 ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&grp, MBEDTLS_ECP_DP_SECP192R1)); #else - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, mbedtls_ecp_curve_list()->grp_id ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&grp, mbedtls_ecp_curve_list()->grp_id)); #endif - if( verbose != 0 ) - mbedtls_printf( " ECP SW test #1 (constant op_count, base point G): " ); + if (verbose != 0) { + mbedtls_printf(" ECP SW test #1 (constant op_count, base point G): "); + } /* Do a dummy multiplication first to trigger precomputation */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &m, 2 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &P, &m, &grp.G, self_test_rng, NULL ) ); - ret = self_test_point( verbose, - &grp, &R, &m, &grp.G, - sw_exponents, - sizeof( sw_exponents ) / sizeof( sw_exponents[0] )); - if( ret != 0 ) + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&m, 2)); + MBEDTLS_MPI_CHK(mbedtls_ecp_mul(&grp, &P, &m, &grp.G, self_test_rng, NULL)); + ret = self_test_point(verbose, + &grp, &R, &m, &grp.G, + sw_exponents, + sizeof(sw_exponents) / sizeof(sw_exponents[0])); + if (ret != 0) { goto cleanup; + } - if( verbose != 0 ) - mbedtls_printf( " ECP SW test #2 (constant op_count, other point): " ); + if (verbose != 0) { + mbedtls_printf(" ECP SW test #2 (constant op_count, other point): "); + } /* We computed P = 2G last time, use it */ - ret = self_test_point( verbose, - &grp, &R, &m, &P, - sw_exponents, - sizeof( sw_exponents ) / sizeof( sw_exponents[0] )); - if( ret != 0 ) + ret = self_test_point(verbose, + &grp, &R, &m, &P, + sw_exponents, + sizeof(sw_exponents) / sizeof(sw_exponents[0])); + if (ret != 0) { goto cleanup; + } - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &R ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&R); #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) - if( verbose != 0 ) - mbedtls_printf( " ECP Montgomery test (constant op_count): " ); + if (verbose != 0) { + mbedtls_printf(" ECP Montgomery test (constant op_count): "); + } #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_CURVE25519 ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&grp, MBEDTLS_ECP_DP_CURVE25519)); #elif defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_CURVE448 ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&grp, MBEDTLS_ECP_DP_CURVE448)); #else #error "MBEDTLS_ECP_MONTGOMERY_ENABLED is defined, but no curve is supported for self-test" #endif - ret = self_test_point( verbose, - &grp, &R, &m, &grp.G, - m_exponents, - sizeof( m_exponents ) / sizeof( m_exponents[0] )); - if( ret != 0 ) + ret = self_test_point(verbose, + &grp, &R, &m, &grp.G, + m_exponents, + sizeof(m_exponents) / sizeof(m_exponents[0])); + if (ret != 0) { goto cleanup; + } #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ cleanup: - if( ret < 0 && verbose != 0 ) - mbedtls_printf( "Unexpected error, return code = %08X\n", (unsigned int) ret ); + if (ret < 0 && verbose != 0) { + mbedtls_printf("Unexpected error, return code = %08X\n", (unsigned int) ret); + } - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &R ); - mbedtls_ecp_point_free( &P ); - mbedtls_mpi_free( &m ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&R); + mbedtls_ecp_point_free(&P); + mbedtls_mpi_free(&m); - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 5cd2828f7..e62dcea65 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -34,20 +34,20 @@ #if !defined(MBEDTLS_ECP_ALT) /* Parameter validation macros based on platform_util.h */ -#define ECP_VALIDATE_RET( cond ) \ - MBEDTLS_INTERNAL_VALIDATE_RET( cond, MBEDTLS_ERR_ECP_BAD_INPUT_DATA ) -#define ECP_VALIDATE( cond ) \ - MBEDTLS_INTERNAL_VALIDATE( cond ) +#define ECP_VALIDATE_RET(cond) \ + MBEDTLS_INTERNAL_VALIDATE_RET(cond, MBEDTLS_ERR_ECP_BAD_INPUT_DATA) +#define ECP_VALIDATE(cond) \ + MBEDTLS_INTERNAL_VALIDATE(cond) -#define ECP_MPI_INIT(s, n, p) {s, (n), (mbedtls_mpi_uint *)(p)} +#define ECP_MPI_INIT(s, n, p) { s, (n), (mbedtls_mpi_uint *) (p) } #define ECP_MPI_INIT_ARRAY(x) \ ECP_MPI_INIT(1, sizeof(x) / sizeof(mbedtls_mpi_uint), x) #define ECP_POINT_INIT_XY_Z0(x, y) { \ - ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(1, 0, NULL) } + ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(1, 0, NULL) } #define ECP_POINT_INIT_XY_Z1(x, y) { \ - ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(1, 1, mpi_one) } + ECP_MPI_INIT_ARRAY(x), ECP_MPI_INIT_ARRAY(y), ECP_MPI_INIT(1, 1, mpi_one) } #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ @@ -62,7 +62,7 @@ defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) /* For these curves, we build the group parameters dynamically. */ #define ECP_LOAD_GROUP -static mbedtls_mpi_uint mpi_one[] = {1}; +static mbedtls_mpi_uint mpi_one[] = { 1 }; #endif /* @@ -75,190 +75,190 @@ static mbedtls_mpi_uint mpi_one[] = {1}; */ #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) static const mbedtls_mpi_uint secp192r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp192r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0xB9, 0x46, 0xC1, 0xEC, 0xDE, 0xB8, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0x30, 0x24, 0x72, 0xAB, 0xE9, 0xA7, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x80, 0x9C, 0xE5, 0x19, 0x05, 0x21, 0x64 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xB9, 0x46, 0xC1, 0xEC, 0xDE, 0xB8, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x30, 0x24, 0x72, 0xAB, 0xE9, 0xA7, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x80, 0x9C, 0xE5, 0x19, 0x05, 0x21, 0x64), }; static const mbedtls_mpi_uint secp192r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18), }; static const mbedtls_mpi_uint secp192r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07), }; static const mbedtls_mpi_uint secp192r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0x28, 0xD2, 0xB4, 0xB1, 0xC9, 0x6B, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0xF8, 0xDE, 0x99, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x28, 0xD2, 0xB4, 0xB1, 0xC9, 0x6B, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xF8, 0xDE, 0x99, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp192r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x10, 0xFF, 0x82, 0xFD, 0x0A, 0xFF, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x88, 0xA1, 0x43, 0xEB, 0x20, 0xBF, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x90, 0x30, 0xB0, 0x0E, 0xA8, 0x8D, 0x18), }; static const mbedtls_mpi_uint secp192r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x48, 0x79, 0x1E, 0xA1, 0x77, 0xF9, 0x73), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xCD, 0x24, 0x6B, 0xED, 0x11, 0x10, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xDA, 0xC8, 0xFF, 0x95, 0x2B, 0x19, 0x07), }; static const mbedtls_mpi_uint secp192r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x9E, 0xE3, 0x60, 0x59, 0xD1, 0xC4, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xBD, 0x22, 0xD7, 0x2D, 0x07, 0xBD, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x2A, 0xCF, 0x33, 0xF0, 0xBE, 0xD1, 0xED ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x9E, 0xE3, 0x60, 0x59, 0xD1, 0xC4, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBD, 0x22, 0xD7, 0x2D, 0x07, 0xBD, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x2A, 0xCF, 0x33, 0xF0, 0xBE, 0xD1, 0xED), }; static const mbedtls_mpi_uint secp192r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x71, 0x4B, 0xA8, 0xED, 0x7E, 0xC9, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x2A, 0xF6, 0xDF, 0x0E, 0xE8, 0x4C, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x35, 0xF7, 0x8A, 0xC3, 0xEC, 0xDE, 0x1E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x71, 0x4B, 0xA8, 0xED, 0x7E, 0xC9, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x2A, 0xF6, 0xDF, 0x0E, 0xE8, 0x4C, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x35, 0xF7, 0x8A, 0xC3, 0xEC, 0xDE, 0x1E), }; static const mbedtls_mpi_uint secp192r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x67, 0xC2, 0x1D, 0x32, 0x8F, 0x10, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x2D, 0x17, 0xF3, 0xE4, 0xFE, 0xD8, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x45, 0x10, 0x70, 0x2C, 0x3E, 0x52, 0x3E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0xC2, 0x1D, 0x32, 0x8F, 0x10, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x2D, 0x17, 0xF3, 0xE4, 0xFE, 0xD8, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x45, 0x10, 0x70, 0x2C, 0x3E, 0x52, 0x3E), }; static const mbedtls_mpi_uint secp192r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0xF1, 0x04, 0x5D, 0xEE, 0xD4, 0x56, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0xB7, 0x38, 0x27, 0x61, 0xAA, 0x81, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x37, 0xD7, 0x0E, 0x29, 0x0E, 0x11, 0x14 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF1, 0x04, 0x5D, 0xEE, 0xD4, 0x56, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xB7, 0x38, 0x27, 0x61, 0xAA, 0x81, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0xD7, 0x0E, 0x29, 0x0E, 0x11, 0x14), }; static const mbedtls_mpi_uint secp192r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x35, 0x52, 0xC6, 0x31, 0xB7, 0x27, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xD4, 0x15, 0x98, 0x0F, 0xE7, 0xF3, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x31, 0x70, 0x35, 0x09, 0xA0, 0x2B, 0xC2 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x35, 0x52, 0xC6, 0x31, 0xB7, 0x27, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xD4, 0x15, 0x98, 0x0F, 0xE7, 0xF3, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x31, 0x70, 0x35, 0x09, 0xA0, 0x2B, 0xC2), }; static const mbedtls_mpi_uint secp192r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x75, 0xA7, 0x4C, 0x88, 0xCF, 0x5B, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x17, 0x48, 0x8D, 0xF2, 0xF0, 0x86, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0xCF, 0xFE, 0x6B, 0xB0, 0xA5, 0x06, 0xAB ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x75, 0xA7, 0x4C, 0x88, 0xCF, 0x5B, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x17, 0x48, 0x8D, 0xF2, 0xF0, 0x86, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCF, 0xFE, 0x6B, 0xB0, 0xA5, 0x06, 0xAB), }; static const mbedtls_mpi_uint secp192r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x6A, 0xDC, 0x9A, 0x6D, 0x7B, 0x47, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0xFC, 0x51, 0x12, 0x62, 0x66, 0x0B, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x40, 0x93, 0xA0, 0xB5, 0x5A, 0x58, 0xD7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x6A, 0xDC, 0x9A, 0x6D, 0x7B, 0x47, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xFC, 0x51, 0x12, 0x62, 0x66, 0x0B, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x40, 0x93, 0xA0, 0xB5, 0x5A, 0x58, 0xD7), }; static const mbedtls_mpi_uint secp192r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0xCB, 0xAF, 0xDC, 0x0B, 0xA1, 0x26, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x36, 0x9D, 0xA3, 0xD7, 0x3B, 0xAD, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x3B, 0x05, 0x9A, 0xA8, 0xAA, 0x69, 0xB2 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCB, 0xAF, 0xDC, 0x0B, 0xA1, 0x26, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x36, 0x9D, 0xA3, 0xD7, 0x3B, 0xAD, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x3B, 0x05, 0x9A, 0xA8, 0xAA, 0x69, 0xB2), }; static const mbedtls_mpi_uint secp192r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xD9, 0xD1, 0x4D, 0x4A, 0x6E, 0x96, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x66, 0x32, 0x39, 0xC6, 0x57, 0x7D, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xA0, 0x36, 0xC2, 0x45, 0xF9, 0x00, 0x62 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD9, 0xD1, 0x4D, 0x4A, 0x6E, 0x96, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x66, 0x32, 0x39, 0xC6, 0x57, 0x7D, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xA0, 0x36, 0xC2, 0x45, 0xF9, 0x00, 0x62), }; static const mbedtls_mpi_uint secp192r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xEF, 0x59, 0x46, 0xDC, 0x60, 0xD9, 0x8F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0xB0, 0xE9, 0x41, 0xA4, 0x87, 0x76, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0xD4, 0x0E, 0xB2, 0xFA, 0x16, 0x56, 0xDC ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xEF, 0x59, 0x46, 0xDC, 0x60, 0xD9, 0x8F), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xB0, 0xE9, 0x41, 0xA4, 0x87, 0x76, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xD4, 0x0E, 0xB2, 0xFA, 0x16, 0x56, 0xDC), }; static const mbedtls_mpi_uint secp192r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x62, 0xD2, 0xB1, 0x34, 0xB2, 0xF1, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0xED, 0x55, 0xC5, 0x47, 0xB5, 0x07, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xF6, 0x2F, 0x94, 0xC3, 0xDD, 0x54, 0x2F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x62, 0xD2, 0xB1, 0x34, 0xB2, 0xF1, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xED, 0x55, 0xC5, 0x47, 0xB5, 0x07, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF6, 0x2F, 0x94, 0xC3, 0xDD, 0x54, 0x2F), }; static const mbedtls_mpi_uint secp192r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xA6, 0xD4, 0x8C, 0xA9, 0xCE, 0x4D, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x4B, 0x46, 0xCC, 0xB2, 0x55, 0xC8, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0xAE, 0x31, 0xED, 0x89, 0x65, 0x59, 0x55 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xA6, 0xD4, 0x8C, 0xA9, 0xCE, 0x4D, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x4B, 0x46, 0xCC, 0xB2, 0x55, 0xC8, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x31, 0xED, 0x89, 0x65, 0x59, 0x55), }; static const mbedtls_mpi_uint secp192r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x0A, 0xD1, 0x1A, 0xC5, 0xF6, 0xEA, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0xFC, 0x0C, 0x1A, 0xFB, 0xA0, 0xC8, 0x70 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xFD, 0x53, 0x6F, 0x6D, 0xBF, 0xBA, 0xAF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x0A, 0xD1, 0x1A, 0xC5, 0xF6, 0xEA, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xFC, 0x0C, 0x1A, 0xFB, 0xA0, 0xC8, 0x70), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xFD, 0x53, 0x6F, 0x6D, 0xBF, 0xBA, 0xAF), }; static const mbedtls_mpi_uint secp192r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0xB0, 0x7D, 0x83, 0x96, 0xE3, 0xCB, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x6E, 0x55, 0x2C, 0x20, 0x53, 0x2F, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0x66, 0x00, 0x17, 0x08, 0xFE, 0xAC, 0x31 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xB0, 0x7D, 0x83, 0x96, 0xE3, 0xCB, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x6E, 0x55, 0x2C, 0x20, 0x53, 0x2F, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x66, 0x00, 0x17, 0x08, 0xFE, 0xAC, 0x31), }; static const mbedtls_mpi_uint secp192r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x12, 0x97, 0x3A, 0xC7, 0x57, 0x45, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x25, 0x99, 0x00, 0xF6, 0x97, 0xB4, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x74, 0xE6, 0xE6, 0xA3, 0xDF, 0x9C, 0xCC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x12, 0x97, 0x3A, 0xC7, 0x57, 0x45, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x25, 0x99, 0x00, 0xF6, 0x97, 0xB4, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x74, 0xE6, 0xE6, 0xA3, 0xDF, 0x9C, 0xCC), }; static const mbedtls_mpi_uint secp192r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0xF4, 0x76, 0xD5, 0x5F, 0x2A, 0xFD, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x80, 0x7E, 0x3E, 0xE5, 0xE8, 0xD6, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0xAD, 0x1E, 0x70, 0x79, 0x3E, 0x3D, 0x83 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xF4, 0x76, 0xD5, 0x5F, 0x2A, 0xFD, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x80, 0x7E, 0x3E, 0xE5, 0xE8, 0xD6, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xAD, 0x1E, 0x70, 0x79, 0x3E, 0x3D, 0x83), }; static const mbedtls_mpi_uint secp192r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x15, 0xBB, 0xB3, 0x42, 0x6A, 0xA1, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x58, 0xCB, 0x43, 0x25, 0x00, 0x14, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x4E, 0x93, 0x11, 0xE0, 0x32, 0x54, 0x98 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x15, 0xBB, 0xB3, 0x42, 0x6A, 0xA1, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x58, 0xCB, 0x43, 0x25, 0x00, 0x14, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x4E, 0x93, 0x11, 0xE0, 0x32, 0x54, 0x98), }; static const mbedtls_mpi_uint secp192r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x52, 0xA2, 0xB4, 0x57, 0x32, 0xB9, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x43, 0xA1, 0xB1, 0xFB, 0x01, 0xE1, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0xFB, 0x5A, 0x11, 0xB8, 0xC2, 0x03, 0xE5 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x52, 0xA2, 0xB4, 0x57, 0x32, 0xB9, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x43, 0xA1, 0xB1, 0xFB, 0x01, 0xE1, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xFB, 0x5A, 0x11, 0xB8, 0xC2, 0x03, 0xE5), }; static const mbedtls_mpi_uint secp192r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x2B, 0x71, 0x26, 0x4E, 0x7C, 0xC5, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0xF5, 0xD3, 0xA8, 0xE4, 0x95, 0x48, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0xAE, 0xD9, 0x5D, 0x9F, 0x6A, 0x22, 0xAD ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x2B, 0x71, 0x26, 0x4E, 0x7C, 0xC5, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF5, 0xD3, 0xA8, 0xE4, 0x95, 0x48, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAE, 0xD9, 0x5D, 0x9F, 0x6A, 0x22, 0xAD), }; static const mbedtls_mpi_uint secp192r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0xCC, 0xA3, 0x4D, 0xA0, 0x1C, 0x34, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x3C, 0x62, 0xF8, 0x5E, 0xA6, 0x58, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x6E, 0x66, 0x8A, 0x3D, 0x17, 0xFF, 0x0F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xCC, 0xA3, 0x4D, 0xA0, 0x1C, 0x34, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x3C, 0x62, 0xF8, 0x5E, 0xA6, 0x58, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x6E, 0x66, 0x8A, 0x3D, 0x17, 0xFF, 0x0F), }; static const mbedtls_mpi_uint secp192r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0xCD, 0xA8, 0xDD, 0xD1, 0x20, 0x5C, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0xFE, 0x17, 0xE2, 0xCF, 0xEA, 0x63, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x51, 0xC9, 0x16, 0xDE, 0xB4, 0xB2, 0xDD ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xCD, 0xA8, 0xDD, 0xD1, 0x20, 0x5C, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xFE, 0x17, 0xE2, 0xCF, 0xEA, 0x63, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x51, 0xC9, 0x16, 0xDE, 0xB4, 0xB2, 0xDD), }; static const mbedtls_mpi_uint secp192r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xBE, 0x12, 0xD7, 0xA3, 0x0A, 0x50, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0x87, 0xC5, 0x8A, 0x76, 0x57, 0x07, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x1F, 0xC6, 0x1B, 0x66, 0xC4, 0x3D, 0x8A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBE, 0x12, 0xD7, 0xA3, 0x0A, 0x50, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x87, 0xC5, 0x8A, 0x76, 0x57, 0x07, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x1F, 0xC6, 0x1B, 0x66, 0xC4, 0x3D, 0x8A), }; static const mbedtls_mpi_uint secp192r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0xA4, 0x85, 0x13, 0x8F, 0xA7, 0x35, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x0D, 0xFD, 0xFF, 0x1B, 0xD1, 0xD6, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x7A, 0xD0, 0xC3, 0xB4, 0xEF, 0x39, 0x66 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xA4, 0x85, 0x13, 0x8F, 0xA7, 0x35, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x0D, 0xFD, 0xFF, 0x1B, 0xD1, 0xD6, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x7A, 0xD0, 0xC3, 0xB4, 0xEF, 0x39, 0x66), }; static const mbedtls_mpi_uint secp192r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0xFE, 0xA5, 0x9C, 0x34, 0x30, 0x49, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0xC5, 0x39, 0x26, 0x06, 0xE3, 0x01, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0x2B, 0x66, 0xFC, 0x95, 0x5F, 0x35, 0xF7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xFE, 0xA5, 0x9C, 0x34, 0x30, 0x49, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xC5, 0x39, 0x26, 0x06, 0xE3, 0x01, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x2B, 0x66, 0xFC, 0x95, 0x5F, 0x35, 0xF7), }; static const mbedtls_mpi_uint secp192r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0xCF, 0x54, 0x63, 0x99, 0x57, 0x05, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x6F, 0x00, 0x5F, 0x65, 0x08, 0x47, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x2A, 0x90, 0x6D, 0x67, 0xC6, 0xBC, 0x45 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xCF, 0x54, 0x63, 0x99, 0x57, 0x05, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x6F, 0x00, 0x5F, 0x65, 0x08, 0x47, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x2A, 0x90, 0x6D, 0x67, 0xC6, 0xBC, 0x45), }; static const mbedtls_mpi_uint secp192r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x4D, 0x88, 0x0A, 0x35, 0x9E, 0x33, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x17, 0x0C, 0xF8, 0xE1, 0x7A, 0x49, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x44, 0x06, 0x8F, 0x0B, 0x70, 0x2F, 0x71 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x4D, 0x88, 0x0A, 0x35, 0x9E, 0x33, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x17, 0x0C, 0xF8, 0xE1, 0x7A, 0x49, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x44, 0x06, 0x8F, 0x0B, 0x70, 0x2F, 0x71), }; static const mbedtls_mpi_uint secp192r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0x4B, 0xCB, 0xF9, 0x8E, 0x6A, 0xDA, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x43, 0xA1, 0x3F, 0xCE, 0x17, 0xD2, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x0D, 0xD2, 0x6C, 0x82, 0x37, 0xE5, 0xFC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4B, 0xCB, 0xF9, 0x8E, 0x6A, 0xDA, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x43, 0xA1, 0x3F, 0xCE, 0x17, 0xD2, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x0D, 0xD2, 0x6C, 0x82, 0x37, 0xE5, 0xFC), }; static const mbedtls_mpi_uint secp192r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x3C, 0xF4, 0x92, 0xB4, 0x8A, 0x95, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0x96, 0xF1, 0x0A, 0x34, 0x2F, 0x74, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0xA1, 0xAA, 0xBA, 0x86, 0x77, 0x4F, 0xA2 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x3C, 0xF4, 0x92, 0xB4, 0x8A, 0x95, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x96, 0xF1, 0x0A, 0x34, 0x2F, 0x74, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0xAA, 0xBA, 0x86, 0x77, 0x4F, 0xA2), }; static const mbedtls_mpi_uint secp192r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x7F, 0xEF, 0x60, 0x50, 0x80, 0xD7, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0xAC, 0xC9, 0xFE, 0xEC, 0x0A, 0x1A, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x2F, 0xBE, 0x91, 0xD7, 0xB7, 0x38, 0x48 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x7F, 0xEF, 0x60, 0x50, 0x80, 0xD7, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xAC, 0xC9, 0xFE, 0xEC, 0x0A, 0x1A, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x2F, 0xBE, 0x91, 0xD7, 0xB7, 0x38, 0x48), }; static const mbedtls_mpi_uint secp192r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0xAE, 0x85, 0x98, 0xFE, 0x05, 0x7F, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xBE, 0xFD, 0x11, 0x31, 0x3D, 0x14, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x75, 0xE8, 0x30, 0x01, 0xCB, 0x9B, 0x1C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xAE, 0x85, 0x98, 0xFE, 0x05, 0x7F, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBE, 0xFD, 0x11, 0x31, 0x3D, 0x14, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x75, 0xE8, 0x30, 0x01, 0xCB, 0x9B, 0x1C), }; static const mbedtls_ecp_point secp192r1_T[16] = { ECP_POINT_INIT_XY_Z1(secp192r1_T_0_X, secp192r1_T_0_Y), @@ -288,227 +288,227 @@ static const mbedtls_ecp_point secp192r1_T[16] = { */ #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) static const mbedtls_mpi_uint secp224r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_4( 0x85, 0x0A, 0x05, 0xB4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFF, 0x55, 0x23, 0x43, 0x39, 0x0B, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xD8, 0xBF, 0xD7, 0xB7, 0xB0, 0x44, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x32, 0x41, 0xF5, 0xAB, 0xB3, 0x04, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_4(0x85, 0x0A, 0x05, 0xB4), }; static const mbedtls_mpi_uint secp224r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_4( 0xBD, 0x0C, 0x0E, 0xB7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_4(0xBD, 0x0C, 0x0E, 0xB7), }; static const mbedtls_mpi_uint secp224r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_4( 0x88, 0x63, 0x37, 0xBD ), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_4(0x88, 0x63, 0x37, 0xBD), }; static const mbedtls_mpi_uint secp224r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_4( 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x2A, 0x5C, 0x5C, 0x45, 0x29, 0xDD, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF0, 0xB8, 0xE0, 0xA2, 0x16, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp224r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x1D, 0x5C, 0x11, 0xD6, 0x80, 0x32, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x11, 0xC2, 0x56, 0xD3, 0xC1, 0x03, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x90, 0x13, 0x32, 0x7F, 0xBF, 0xB4, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x0C, 0x0E, 0xB7, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x7E, 0x00, 0x85, 0x99, 0x81, 0xD5, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x47, 0x07, 0x5A, 0xA0, 0x75, 0x43, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xDF, 0x22, 0x4C, 0xFB, 0x23, 0xF7, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x63, 0x37, 0xBD, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF9, 0xB8, 0xD0, 0x3D, 0xD2, 0xD3, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xFD, 0x99, 0x26, 0x19, 0xFE, 0x13, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x0E, 0x4C, 0x48, 0x7C, 0xA2, 0x17, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA3, 0x13, 0x57, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x16, 0x5C, 0x8F, 0xAA, 0xED, 0x0F, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xC5, 0x43, 0x34, 0x93, 0x05, 0x2A, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE3, 0x6C, 0xCA, 0xC6, 0x14, 0xC2, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x43, 0x6C, 0xD7, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x5A, 0x98, 0x1E, 0xC8, 0xA5, 0x42, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x49, 0x56, 0x78, 0xF8, 0xEF, 0xED, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xBB, 0x64, 0xB6, 0x4C, 0x54, 0x5F, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x0C, 0x33, 0xCC, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x79, 0xCB, 0x2E, 0x08, 0xFF, 0xD8, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x1F, 0xD4, 0xD7, 0x57, 0xE9, 0x39, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xD6, 0x3B, 0x0A, 0x1C, 0x87, 0xB7, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x30, 0xD8, 0x05, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x79, 0x74, 0x9A, 0xE6, 0xBB, 0xC2, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x5B, 0xA6, 0x67, 0xC1, 0x91, 0xE7, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xDF, 0x38, 0x82, 0x19, 0x2C, 0x4C, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x2E, 0x39, 0xC5, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x36, 0x78, 0x4E, 0xAE, 0x5B, 0x02, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF6, 0x8B, 0xF8, 0xF4, 0x92, 0x6B, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x4D, 0x71, 0x35, 0xE7, 0x0C, 0x2C, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xA5, 0x1F, 0xAE, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x1C, 0x4B, 0xDF, 0x5B, 0xF2, 0x51, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0xB1, 0x5A, 0xC6, 0x0F, 0x0E, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x24, 0x09, 0x62, 0xAF, 0xFC, 0xDB, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xE1, 0x80, 0x55, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x82, 0xFE, 0xAD, 0xC3, 0xE5, 0xCF, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xA2, 0x62, 0x17, 0x76, 0xF0, 0x5A, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB8, 0xE5, 0xAC, 0xB7, 0x66, 0x38, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xFD, 0x86, 0x05, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0x0C, 0x3C, 0xD1, 0x66, 0xB0, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x59, 0xB4, 0x8D, 0x90, 0x10, 0xB7, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x47, 0x9B, 0xE6, 0x55, 0x8A, 0xE4, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x49, 0xDB, 0x78, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x97, 0xED, 0xDE, 0xFF, 0xB3, 0xDF, 0x48), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xB9, 0x83, 0xB7, 0xEB, 0xBE, 0x40, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xD3, 0xD3, 0xCD, 0x0E, 0x82, 0x79, 0x3D), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x83, 0x1B, 0xF0, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x22, 0xBB, 0x54, 0xD3, 0x31, 0x56, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0xE5, 0xE0, 0x89, 0x96, 0x8E, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xEF, 0x0A, 0xED, 0xD0, 0x11, 0x4A, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x00, 0x57, 0x27, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCA, 0x3D, 0xF7, 0x64, 0x9B, 0x6E, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xE3, 0x70, 0x6B, 0x41, 0xD7, 0xED, 0x8F), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x44, 0x44, 0x80, 0xCE, 0x13, 0x37, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x73, 0x80, 0x79, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x4D, 0x70, 0x7D, 0x31, 0x0F, 0x1C, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x35, 0x88, 0x47, 0xC4, 0x24, 0x78, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF0, 0xCD, 0x91, 0x81, 0xB3, 0xDE, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xCE, 0xC6, 0xF7, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x9C, 0x2D, 0xE8, 0xD2, 0x00, 0x8F, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x5E, 0x7C, 0x0E, 0x0C, 0x6E, 0x58, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x81, 0x21, 0xCE, 0x43, 0xF4, 0x24, 0x3D), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xBC, 0xF0, 0xF4, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x10, 0xC2, 0x74, 0x4A, 0x8F, 0x8A, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x67, 0xF4, 0x2B, 0x38, 0x2B, 0x35, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0C, 0xA9, 0xFA, 0x77, 0x5C, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x19, 0x2B, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x3E, 0x96, 0x22, 0x53, 0xE1, 0xE9, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x13, 0xBC, 0xA1, 0x16, 0xEC, 0x01, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x00, 0xC9, 0x7A, 0xC3, 0x73, 0xA5, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xF4, 0x5E, 0xC1, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x95, 0xD6, 0xD9, 0x32, 0x30, 0x2B, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x42, 0x09, 0x05, 0x61, 0x2A, 0x7E, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x84, 0xA2, 0x05, 0x88, 0x64, 0x65, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2D, 0x90, 0xB3, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE7, 0x2E, 0x85, 0x55, 0x80, 0x7C, 0x79), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC1, 0xAC, 0x78, 0xB4, 0xAF, 0xFB, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xC3, 0x28, 0x8E, 0x79, 0x18, 0x1F, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x46, 0xCF, 0x49, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x5F, 0xA8, 0x6C, 0x46, 0x83, 0x43, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xA9, 0x93, 0x11, 0xB6, 0x07, 0x57, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x2A, 0x9D, 0x03, 0x89, 0x7E, 0xD7, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x8C, 0x62, 0xCF, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x2C, 0x13, 0x59, 0xCC, 0xFA, 0x84, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB9, 0x48, 0xBC, 0x57, 0xC7, 0xB3, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x0A, 0x38, 0x24, 0x2E, 0x3A, 0x28, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x0A, 0x43, 0xB8, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x25, 0xAB, 0xC1, 0xEE, 0x70, 0x3C, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xDB, 0x45, 0x1D, 0x4A, 0x80, 0x75, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1F, 0x4D, 0x2D, 0x9A, 0x05, 0xF4, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x10, 0xF0, 0x5A, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x95, 0xE1, 0xDC, 0x15, 0x86, 0xC3, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xDC, 0x27, 0xD1, 0x56, 0xA1, 0x14, 0x0D), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x0B, 0xD6, 0x77, 0x4E, 0x44, 0xA2, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x42, 0x71, 0x1F, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x86, 0xB2, 0xB0, 0xC8, 0x2F, 0x7B, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xEF, 0xCB, 0xDB, 0xBC, 0x9E, 0x3B, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x03, 0x86, 0xDD, 0x5B, 0xF5, 0x8D, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x95, 0x79, 0xD6, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x32, 0x14, 0xDA, 0x9B, 0x4F, 0x07, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x3E, 0xFB, 0x06, 0xEE, 0xA7, 0x40, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x1F, 0xDF, 0x71, 0x61, 0xFD, 0x8B, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x8B, 0xAB, 0x8B, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x34, 0xB3, 0xB4, 0xBC, 0x9F, 0xB0, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x58, 0x48, 0xA8, 0x77, 0xBB, 0x13, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC6, 0xF7, 0x34, 0xCC, 0x89, 0x21, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x33, 0xDD, 0x1F, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x81, 0xEF, 0xA4, 0xF2, 0x10, 0x0B, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF7, 0x6E, 0x72, 0x4A, 0xDF, 0xDD, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x23, 0x0A, 0x53, 0x03, 0x16, 0x62, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x76, 0xFD, 0x3C, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x14, 0xA1, 0xFA, 0xA0, 0x18, 0xBE, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x2A, 0xE1, 0xD7, 0xB0, 0x6C, 0xA0, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xC0, 0xB0, 0xC6, 0x63, 0x24, 0xCD, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x38, 0x2C, 0xB1, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCD, 0x7D, 0x20, 0x0C, 0xFE, 0xAC, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x9F, 0xA2, 0xB6, 0x45, 0xF7, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x99, 0xF3, 0xD2, 0x20, 0x02, 0xEB, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x5B, 0x7B, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xDD, 0x77, 0x91, 0x60, 0xEA, 0xFD, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xD3, 0xB5, 0xD6, 0x90, 0x17, 0x0E, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xF4, 0x28, 0xC1, 0xF2, 0x53, 0xF6, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x58, 0xDC, 0x61, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x20, 0x01, 0xFB, 0xF1, 0xBD, 0x5F, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x7F, 0x06, 0xDA, 0x11, 0xCB, 0xBA, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x41, 0x00, 0xA4, 0x1B, 0x30, 0x33, 0x79), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xFF, 0x27, 0xCA, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_ecp_point secp224r1_T[16] = { ECP_POINT_INIT_XY_Z1(secp224r1_T_0_X, secp224r1_T_0_Y), @@ -538,227 +538,227 @@ static const mbedtls_ecp_point secp224r1_T[16] = { */ #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) static const mbedtls_mpi_uint secp256r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp256r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0x60, 0xD2, 0x27, 0x3E, 0x3C, 0xCE, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xB0, 0x53, 0xCC, 0xB0, 0x06, 0x1D, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x86, 0x98, 0x76, 0x55, 0xBD, 0xEB, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x93, 0x3A, 0xAA, 0xD8, 0x35, 0xC6, 0x5A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x60, 0xD2, 0x27, 0x3E, 0x3C, 0xCE, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xB0, 0x53, 0xCC, 0xB0, 0x06, 0x1D, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x86, 0x98, 0x76, 0x55, 0xBD, 0xEB, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x93, 0x3A, 0xAA, 0xD8, 0x35, 0xC6, 0x5A), }; static const mbedtls_mpi_uint secp256r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B), }; static const mbedtls_mpi_uint secp256r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F), }; static const mbedtls_mpi_uint secp256r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0x25, 0x63, 0xFC, 0xC2, 0xCA, 0xB9, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x9E, 0x17, 0xA7, 0xAD, 0xFA, 0xE6, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x25, 0x63, 0xFC, 0xC2, 0xCA, 0xB9, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x9E, 0x17, 0xA7, 0xAD, 0xFA, 0xE6, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp256r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC2, 0x98, 0xD8, 0x45, 0x39, 0xA1, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x33, 0xEB, 0x2D, 0x81, 0x7D, 0x03, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x40, 0xA4, 0x63, 0xE5, 0xE6, 0xBC, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x42, 0x2C, 0xE1, 0xF2, 0xD1, 0x17, 0x6B), }; static const mbedtls_mpi_uint secp256r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x51, 0xBF, 0x37, 0x68, 0x40, 0xB6, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x5E, 0x31, 0x6B, 0x57, 0x33, 0xCE, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x9E, 0x0F, 0x7C, 0x4A, 0xEB, 0xE7, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x7F, 0x1A, 0xFE, 0xE2, 0x42, 0xE3, 0x4F), }; static const mbedtls_mpi_uint secp256r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0xC8, 0xBA, 0x04, 0xB7, 0x4B, 0xD2, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0xC6, 0x23, 0x3A, 0xA0, 0x09, 0x3A, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x9D, 0x4C, 0xF9, 0x58, 0x23, 0xCC, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0xED, 0x7B, 0x29, 0x87, 0x0F, 0xFA, 0x3C ), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xC8, 0xBA, 0x04, 0xB7, 0x4B, 0xD2, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC6, 0x23, 0x3A, 0xA0, 0x09, 0x3A, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x9D, 0x4C, 0xF9, 0x58, 0x23, 0xCC, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xED, 0x7B, 0x29, 0x87, 0x0F, 0xFA, 0x3C), }; static const mbedtls_mpi_uint secp256r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x69, 0xF2, 0x40, 0x0B, 0xA3, 0x98, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xA8, 0x48, 0x02, 0x0D, 0x1C, 0x12, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0xAF, 0x09, 0x83, 0x80, 0xAA, 0x58, 0xA7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x12, 0xBE, 0x70, 0x94, 0x76, 0xE3, 0xE4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x69, 0xF2, 0x40, 0x0B, 0xA3, 0x98, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xA8, 0x48, 0x02, 0x0D, 0x1C, 0x12, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xAF, 0x09, 0x83, 0x80, 0xAA, 0x58, 0xA7), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x12, 0xBE, 0x70, 0x94, 0x76, 0xE3, 0xE4), }; static const mbedtls_mpi_uint secp256r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x7D, 0xEF, 0x86, 0xFF, 0xE3, 0x37, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x86, 0x8B, 0x08, 0x27, 0x7C, 0xD7, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x54, 0x4C, 0x25, 0x4F, 0x9A, 0xFE, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0xFD, 0xF0, 0x6D, 0x37, 0x03, 0x69, 0xD6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x7D, 0xEF, 0x86, 0xFF, 0xE3, 0x37, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x86, 0x8B, 0x08, 0x27, 0x7C, 0xD7, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x54, 0x4C, 0x25, 0x4F, 0x9A, 0xFE, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xFD, 0xF0, 0x6D, 0x37, 0x03, 0x69, 0xD6), }; static const mbedtls_mpi_uint secp256r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xD5, 0xDA, 0xAD, 0x92, 0x49, 0xF0, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x73, 0x43, 0x9E, 0xAF, 0xA7, 0xD1, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0x41, 0x07, 0xDF, 0x78, 0x95, 0x3E, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0x3D, 0xD1, 0xE6, 0x3C, 0xA5, 0xE2, 0x20 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xD5, 0xDA, 0xAD, 0x92, 0x49, 0xF0, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x73, 0x43, 0x9E, 0xAF, 0xA7, 0xD1, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x41, 0x07, 0xDF, 0x78, 0x95, 0x3E, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x3D, 0xD1, 0xE6, 0x3C, 0xA5, 0xE2, 0x20), }; static const mbedtls_mpi_uint secp256r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x6A, 0x5D, 0x52, 0x35, 0xD7, 0xBF, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0xA2, 0xBE, 0x96, 0xF4, 0xF8, 0x02, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x20, 0x49, 0x54, 0xEA, 0xB3, 0x82, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2E, 0xDB, 0xEA, 0x02, 0xD1, 0x75, 0x1C, 0x62 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x6A, 0x5D, 0x52, 0x35, 0xD7, 0xBF, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xA2, 0xBE, 0x96, 0xF4, 0xF8, 0x02, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x20, 0x49, 0x54, 0xEA, 0xB3, 0x82, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0xDB, 0xEA, 0x02, 0xD1, 0x75, 0x1C, 0x62), }; static const mbedtls_mpi_uint secp256r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x85, 0xF4, 0x9E, 0x4C, 0xDC, 0x39, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x6D, 0xC4, 0x57, 0xD8, 0x03, 0x5D, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x7F, 0x2D, 0x52, 0x6F, 0xC9, 0xDA, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x64, 0xFA, 0xB4, 0xFE, 0xA4, 0xC4, 0xD7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x85, 0xF4, 0x9E, 0x4C, 0xDC, 0x39, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x6D, 0xC4, 0x57, 0xD8, 0x03, 0x5D, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x7F, 0x2D, 0x52, 0x6F, 0xC9, 0xDA, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x64, 0xFA, 0xB4, 0xFE, 0xA4, 0xC4, 0xD7), }; static const mbedtls_mpi_uint secp256r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x37, 0xB9, 0xC0, 0xAA, 0x59, 0xC6, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x58, 0xD9, 0xED, 0x58, 0x99, 0x65, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x7D, 0x26, 0x8C, 0x4A, 0xF9, 0x05, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x73, 0x9A, 0xC9, 0xE7, 0x46, 0xDC, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x37, 0xB9, 0xC0, 0xAA, 0x59, 0xC6, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x58, 0xD9, 0xED, 0x58, 0x99, 0x65, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x7D, 0x26, 0x8C, 0x4A, 0xF9, 0x05, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x73, 0x9A, 0xC9, 0xE7, 0x46, 0xDC, 0x00), }; static const mbedtls_mpi_uint secp256r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0xD0, 0x55, 0xDF, 0x00, 0x0A, 0xF5, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0xBF, 0x56, 0x81, 0x2D, 0x20, 0xEB, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xC1, 0x28, 0x52, 0xAB, 0xE3, 0xD1, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x34, 0x79, 0x45, 0x57, 0xA5, 0x12, 0x03 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xD0, 0x55, 0xDF, 0x00, 0x0A, 0xF5, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xBF, 0x56, 0x81, 0x2D, 0x20, 0xEB, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC1, 0x28, 0x52, 0xAB, 0xE3, 0xD1, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x34, 0x79, 0x45, 0x57, 0xA5, 0x12, 0x03), }; static const mbedtls_mpi_uint secp256r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0xCF, 0xB8, 0x7E, 0xF7, 0x92, 0x96, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0x01, 0x8C, 0x0D, 0x23, 0xF2, 0xE3, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x2E, 0xE3, 0x84, 0x52, 0x7A, 0x34, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0xA1, 0xB0, 0x15, 0x90, 0xE2, 0x53, 0x3C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xCF, 0xB8, 0x7E, 0xF7, 0x92, 0x96, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x01, 0x8C, 0x0D, 0x23, 0xF2, 0xE3, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x2E, 0xE3, 0x84, 0x52, 0x7A, 0x34, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xA1, 0xB0, 0x15, 0x90, 0xE2, 0x53, 0x3C), }; static const mbedtls_mpi_uint secp256r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x98, 0xE7, 0xFA, 0xA5, 0x7D, 0x8B, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x35, 0xD2, 0x00, 0xD1, 0x1B, 0x9F, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x69, 0x08, 0x9A, 0x72, 0xF0, 0xA9, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0xFE, 0x0E, 0x14, 0xDA, 0x7C, 0x0E, 0xD3 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x98, 0xE7, 0xFA, 0xA5, 0x7D, 0x8B, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x35, 0xD2, 0x00, 0xD1, 0x1B, 0x9F, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x69, 0x08, 0x9A, 0x72, 0xF0, 0xA9, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xFE, 0x0E, 0x14, 0xDA, 0x7C, 0x0E, 0xD3), }; static const mbedtls_mpi_uint secp256r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0xF6, 0xE8, 0xF8, 0x87, 0xF7, 0xFC, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xBE, 0x7F, 0x3F, 0x7A, 0x2B, 0xD7, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0x32, 0xF2, 0x2D, 0x94, 0x6D, 0x42, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x9A, 0xE3, 0x5F, 0x42, 0xBB, 0x84, 0xED ), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xF6, 0xE8, 0xF8, 0x87, 0xF7, 0xFC, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xBE, 0x7F, 0x3F, 0x7A, 0x2B, 0xD7, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x32, 0xF2, 0x2D, 0x94, 0x6D, 0x42, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x9A, 0xE3, 0x5F, 0x42, 0xBB, 0x84, 0xED), }; static const mbedtls_mpi_uint secp256r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x95, 0x29, 0x73, 0xA1, 0x67, 0x3E, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x30, 0x54, 0x35, 0x8E, 0x0A, 0xDD, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0xD7, 0xA1, 0x97, 0x61, 0x3B, 0xF8, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x33, 0x3C, 0x58, 0x55, 0x34, 0x23, 0xA3 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x95, 0x29, 0x73, 0xA1, 0x67, 0x3E, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x30, 0x54, 0x35, 0x8E, 0x0A, 0xDD, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xD7, 0xA1, 0x97, 0x61, 0x3B, 0xF8, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x33, 0x3C, 0x58, 0x55, 0x34, 0x23, 0xA3), }; static const mbedtls_mpi_uint secp256r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x5D, 0x16, 0x5F, 0x7B, 0xBC, 0xBB, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0xEE, 0x4E, 0x8A, 0xC1, 0x51, 0xCC, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x0D, 0x4D, 0x1B, 0x53, 0x23, 0x1D, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x2A, 0x38, 0x66, 0x52, 0x84, 0xE1, 0x95 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x5D, 0x16, 0x5F, 0x7B, 0xBC, 0xBB, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xEE, 0x4E, 0x8A, 0xC1, 0x51, 0xCC, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0D, 0x4D, 0x1B, 0x53, 0x23, 0x1D, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x2A, 0x38, 0x66, 0x52, 0x84, 0xE1, 0x95), }; static const mbedtls_mpi_uint secp256r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x9B, 0x83, 0x0A, 0x81, 0x4F, 0xAD, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xFF, 0x42, 0x41, 0x6E, 0xA9, 0xA2, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xA1, 0x4F, 0x1F, 0x89, 0x82, 0xAA, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0xB8, 0x0F, 0x6B, 0x8F, 0x8C, 0xD6, 0x68 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x9B, 0x83, 0x0A, 0x81, 0x4F, 0xAD, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xFF, 0x42, 0x41, 0x6E, 0xA9, 0xA2, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA1, 0x4F, 0x1F, 0x89, 0x82, 0xAA, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xB8, 0x0F, 0x6B, 0x8F, 0x8C, 0xD6, 0x68), }; static const mbedtls_mpi_uint secp256r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0xB3, 0xBB, 0x51, 0x69, 0xA2, 0x11, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x4F, 0x0F, 0x8D, 0xBD, 0x26, 0x0F, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xCB, 0xEC, 0x6B, 0x34, 0xC3, 0x3D, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x5D, 0x1E, 0x10, 0xD5, 0x44, 0xE2, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0xB3, 0xBB, 0x51, 0x69, 0xA2, 0x11, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x4F, 0x0F, 0x8D, 0xBD, 0x26, 0x0F, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xCB, 0xEC, 0x6B, 0x34, 0xC3, 0x3D, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x5D, 0x1E, 0x10, 0xD5, 0x44, 0xE2, 0x54), }; static const mbedtls_mpi_uint secp256r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x9E, 0xB1, 0xF1, 0x6E, 0x4C, 0xAD, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xE3, 0xC2, 0x58, 0xC0, 0xFB, 0x34, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0x9C, 0xDF, 0x35, 0x07, 0x41, 0xBD, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x6E, 0x10, 0xEC, 0x0E, 0xEC, 0xBB, 0xD6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x9E, 0xB1, 0xF1, 0x6E, 0x4C, 0xAD, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE3, 0xC2, 0x58, 0xC0, 0xFB, 0x34, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x9C, 0xDF, 0x35, 0x07, 0x41, 0xBD, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x10, 0xEC, 0x0E, 0xEC, 0xBB, 0xD6), }; static const mbedtls_mpi_uint secp256r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xCF, 0xEF, 0x3F, 0x83, 0x1A, 0x88, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x29, 0xB5, 0xB9, 0xE0, 0xC9, 0xA3, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x46, 0x1E, 0x77, 0xCD, 0x7E, 0xB3, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x21, 0xD0, 0xD4, 0xA3, 0x16, 0x08, 0xEE ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xCF, 0xEF, 0x3F, 0x83, 0x1A, 0x88, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x29, 0xB5, 0xB9, 0xE0, 0xC9, 0xA3, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x46, 0x1E, 0x77, 0xCD, 0x7E, 0xB3, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x21, 0xD0, 0xD4, 0xA3, 0x16, 0x08, 0xEE), }; static const mbedtls_mpi_uint secp256r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0xCA, 0xA8, 0xB3, 0xBF, 0x29, 0x99, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0xF2, 0x05, 0xC1, 0xCF, 0x5D, 0x91, 0x48 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0x01, 0x49, 0xDB, 0x82, 0xDF, 0x5F, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x06, 0x90, 0xAD, 0xE3, 0x38, 0xA4, 0xC4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xCA, 0xA8, 0xB3, 0xBF, 0x29, 0x99, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF2, 0x05, 0xC1, 0xCF, 0x5D, 0x91, 0x48), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x01, 0x49, 0xDB, 0x82, 0xDF, 0x5F, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x06, 0x90, 0xAD, 0xE3, 0x38, 0xA4, 0xC4), }; static const mbedtls_mpi_uint secp256r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xD2, 0x3A, 0xE8, 0x03, 0xC5, 0x6D, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x35, 0xD0, 0xAE, 0x1D, 0x7A, 0x9F, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x1E, 0xD2, 0xCB, 0xAC, 0x88, 0x27, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0xB9, 0x9C, 0xE0, 0x31, 0xDD, 0x99, 0x86 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xD2, 0x3A, 0xE8, 0x03, 0xC5, 0x6D, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x35, 0xD0, 0xAE, 0x1D, 0x7A, 0x9F, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x1E, 0xD2, 0xCB, 0xAC, 0x88, 0x27, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x9C, 0xE0, 0x31, 0xDD, 0x99, 0x86), }; static const mbedtls_mpi_uint secp256r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0xF9, 0x9B, 0x32, 0x96, 0x41, 0x58, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x5A, 0x2A, 0xB8, 0x96, 0x0E, 0xB2, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x78, 0x2C, 0xC7, 0x08, 0x99, 0x19, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x59, 0x28, 0xE9, 0x84, 0x54, 0xE6, 0x16 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xF9, 0x9B, 0x32, 0x96, 0x41, 0x58, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x5A, 0x2A, 0xB8, 0x96, 0x0E, 0xB2, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x78, 0x2C, 0xC7, 0x08, 0x99, 0x19, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x59, 0x28, 0xE9, 0x84, 0x54, 0xE6, 0x16), }; static const mbedtls_mpi_uint secp256r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x38, 0x30, 0xDB, 0x70, 0x2C, 0x0A, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x5C, 0x9D, 0xE9, 0xD5, 0x46, 0x0B, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x0B, 0x60, 0x4B, 0x37, 0x7D, 0xB9, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x24, 0xF3, 0x3D, 0x79, 0x7F, 0x6C, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x38, 0x30, 0xDB, 0x70, 0x2C, 0x0A, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x5C, 0x9D, 0xE9, 0xD5, 0x46, 0x0B, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x0B, 0x60, 0x4B, 0x37, 0x7D, 0xB9, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x24, 0xF3, 0x3D, 0x79, 0x7F, 0x6C, 0x18), }; static const mbedtls_mpi_uint secp256r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7F, 0xE5, 0x1C, 0x4F, 0x60, 0x24, 0xF7, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0xD8, 0xE2, 0x91, 0x7F, 0x89, 0x49, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0xA7, 0x2E, 0x8D, 0x6A, 0xB3, 0x39, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x89, 0xB5, 0x9A, 0xB8, 0x8D, 0x42, 0x9C ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7F, 0xE5, 0x1C, 0x4F, 0x60, 0x24, 0xF7, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xD8, 0xE2, 0x91, 0x7F, 0x89, 0x49, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xA7, 0x2E, 0x8D, 0x6A, 0xB3, 0x39, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x89, 0xB5, 0x9A, 0xB8, 0x8D, 0x42, 0x9C), }; static const mbedtls_mpi_uint secp256r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0x45, 0xE6, 0x4B, 0x3F, 0x4F, 0x1E, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x65, 0x5E, 0x59, 0x22, 0xCC, 0x72, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x93, 0x1A, 0x27, 0x1E, 0x34, 0xC5, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0xF2, 0xA5, 0x58, 0x5C, 0x15, 0x2E, 0xC6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x45, 0xE6, 0x4B, 0x3F, 0x4F, 0x1E, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x65, 0x5E, 0x59, 0x22, 0xCC, 0x72, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x93, 0x1A, 0x27, 0x1E, 0x34, 0xC5, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xF2, 0xA5, 0x58, 0x5C, 0x15, 0x2E, 0xC6), }; static const mbedtls_mpi_uint secp256r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x7F, 0xBA, 0x58, 0x5A, 0x84, 0x6F, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xA6, 0x36, 0x7E, 0xDC, 0xF7, 0xE1, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x4D, 0xAA, 0xEE, 0x57, 0x76, 0x3A, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x7E, 0x26, 0x18, 0x22, 0x23, 0x9F, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x7F, 0xBA, 0x58, 0x5A, 0x84, 0x6F, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA6, 0x36, 0x7E, 0xDC, 0xF7, 0xE1, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x4D, 0xAA, 0xEE, 0x57, 0x76, 0x3A, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x7E, 0x26, 0x18, 0x22, 0x23, 0x9F, 0xFF), }; static const mbedtls_mpi_uint secp256r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x4C, 0x64, 0xC7, 0x55, 0x02, 0x3F, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x02, 0x90, 0xBB, 0xC3, 0xEC, 0x30, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0x6F, 0x64, 0xF4, 0x16, 0x69, 0x48, 0xA4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x44, 0x9C, 0x95, 0x0C, 0x7D, 0x67, 0x5E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x4C, 0x64, 0xC7, 0x55, 0x02, 0x3F, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x02, 0x90, 0xBB, 0xC3, 0xEC, 0x30, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x6F, 0x64, 0xF4, 0x16, 0x69, 0x48, 0xA4), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x44, 0x9C, 0x95, 0x0C, 0x7D, 0x67, 0x5E), }; static const mbedtls_mpi_uint secp256r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0x91, 0x8B, 0xD8, 0xD0, 0xD7, 0xE7, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0xF9, 0x48, 0x62, 0x6F, 0xA8, 0x93, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0x3A, 0x99, 0x02, 0xD5, 0x0B, 0x3D, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xD3, 0x00, 0x31, 0xE6, 0x0C, 0x9F, 0x44 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x91, 0x8B, 0xD8, 0xD0, 0xD7, 0xE7, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xF9, 0x48, 0x62, 0x6F, 0xA8, 0x93, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x3A, 0x99, 0x02, 0xD5, 0x0B, 0x3D, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xD3, 0x00, 0x31, 0xE6, 0x0C, 0x9F, 0x44), }; static const mbedtls_mpi_uint secp256r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0xB2, 0xAA, 0xFD, 0x88, 0x15, 0xDF, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4C, 0x35, 0x27, 0x31, 0x44, 0xCD, 0xC0, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0xF8, 0x91, 0xA5, 0x71, 0x94, 0x84, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xCB, 0xD0, 0x93, 0xE9, 0x88, 0xDA, 0xE4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xB2, 0xAA, 0xFD, 0x88, 0x15, 0xDF, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0x35, 0x27, 0x31, 0x44, 0xCD, 0xC0, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xF8, 0x91, 0xA5, 0x71, 0x94, 0x84, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xCB, 0xD0, 0x93, 0xE9, 0x88, 0xDA, 0xE4), }; static const mbedtls_mpi_uint secp256r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0xC6, 0x39, 0x16, 0x5D, 0xA3, 0x1E, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x07, 0x37, 0x26, 0x36, 0x2A, 0xFE, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xBC, 0xF3, 0xD0, 0xDE, 0x50, 0xFC, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x2E, 0x06, 0x10, 0x15, 0x4D, 0xFA, 0xF7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC6, 0x39, 0x16, 0x5D, 0xA3, 0x1E, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x07, 0x37, 0x26, 0x36, 0x2A, 0xFE, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xBC, 0xF3, 0xD0, 0xDE, 0x50, 0xFC, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x2E, 0x06, 0x10, 0x15, 0x4D, 0xFA, 0xF7), }; static const mbedtls_mpi_uint secp256r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x65, 0x69, 0x5B, 0x66, 0xA2, 0x75, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x16, 0x00, 0x5A, 0xB0, 0x30, 0x25, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0xFB, 0x86, 0x42, 0x80, 0xC1, 0xC4, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x1D, 0x83, 0x8E, 0x94, 0x01, 0x5F, 0x82 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x65, 0x69, 0x5B, 0x66, 0xA2, 0x75, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x16, 0x00, 0x5A, 0xB0, 0x30, 0x25, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xFB, 0x86, 0x42, 0x80, 0xC1, 0xC4, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x1D, 0x83, 0x8E, 0x94, 0x01, 0x5F, 0x82), }; static const mbedtls_mpi_uint secp256r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0x37, 0x70, 0xEF, 0x1F, 0xA1, 0xF0, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x10, 0x5B, 0xCE, 0xC4, 0x9B, 0x6F, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x11, 0x11, 0x24, 0x4F, 0x4C, 0x79, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x3A, 0x72, 0xBC, 0xFE, 0x72, 0x58, 0x43 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x37, 0x70, 0xEF, 0x1F, 0xA1, 0xF0, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x5B, 0xCE, 0xC4, 0x9B, 0x6F, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x11, 0x11, 0x24, 0x4F, 0x4C, 0x79, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x3A, 0x72, 0xBC, 0xFE, 0x72, 0x58, 0x43), }; static const mbedtls_ecp_point secp256r1_T[16] = { ECP_POINT_INIT_XY_Z1(secp256r1_T_0_X, secp256r1_T_0_Y), @@ -789,557 +789,557 @@ static const mbedtls_ecp_point secp256r1_T[16] = { */ #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) static const mbedtls_mpi_uint secp384r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp384r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x2A, 0xEC, 0xD3, 0xED, 0xC8, 0x85, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0xD1, 0x2E, 0x8A, 0x8D, 0x39, 0x56, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x87, 0x13, 0x50, 0x8F, 0x08, 0x14, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x41, 0x81, 0xFE, 0x6E, 0x9C, 0x1D, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x2D, 0xF8, 0xE3, 0x6B, 0x05, 0x8E, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0xE7, 0x3E, 0xE2, 0xA7, 0x2F, 0x31, 0xB3 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x2A, 0xEC, 0xD3, 0xED, 0xC8, 0x85, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xD1, 0x2E, 0x8A, 0x8D, 0x39, 0x56, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x87, 0x13, 0x50, 0x8F, 0x08, 0x14, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x41, 0x81, 0xFE, 0x6E, 0x9C, 0x1D, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x2D, 0xF8, 0xE3, 0x6B, 0x05, 0x8E, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xE7, 0x3E, 0xE2, 0xA7, 0x2F, 0x31, 0xB3), }; static const mbedtls_mpi_uint secp384r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA), }; static const mbedtls_mpi_uint secp384r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36), }; static const mbedtls_mpi_uint secp384r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x29, 0xC5, 0xCC, 0x6A, 0x19, 0xEC, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0xA7, 0xB0, 0x48, 0xB2, 0x0D, 0x1A, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x2D, 0x37, 0xF4, 0x81, 0x4D, 0x63, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x29, 0xC5, 0xCC, 0x6A, 0x19, 0xEC, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xA7, 0xB0, 0x48, 0xB2, 0x0D, 0x1A, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2D, 0x37, 0xF4, 0x81, 0x4D, 0x63, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp384r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0x76, 0x72, 0x38, 0x5E, 0x54, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x29, 0x55, 0xBF, 0x5D, 0xF2, 0x02, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x2A, 0x54, 0x82, 0xE0, 0x41, 0xF7, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9B, 0xA7, 0x8B, 0x62, 0x3B, 0x1D, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xAD, 0x20, 0xF3, 0x1E, 0xC7, 0xB1, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x05, 0x8B, 0xBE, 0x22, 0xCA, 0x87, 0xAA), }; static const mbedtls_mpi_uint secp384r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0E, 0xEA, 0x90, 0x7C, 0x1D, 0x43, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x81, 0x7E, 0x1D, 0xCE, 0xB1, 0x60, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xB8, 0xF0, 0xB5, 0x13, 0x31, 0xDA, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x14, 0x9A, 0x28, 0xBD, 0x1D, 0xF4, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xDC, 0x92, 0x92, 0xBF, 0x98, 0x9E, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x2C, 0x26, 0x96, 0x4A, 0xDE, 0x17, 0x36), }; static const mbedtls_mpi_uint secp384r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x92, 0x00, 0x2C, 0x78, 0xDB, 0x1F, 0x37 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xF3, 0xEB, 0xB7, 0x06, 0xF7, 0xB6, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xBC, 0x2C, 0xCF, 0xD8, 0xED, 0x53, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0x75, 0x7B, 0xA3, 0xAB, 0xC3, 0x2C, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x9D, 0x78, 0x41, 0xF6, 0x76, 0x84, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x56, 0xE8, 0x52, 0xB3, 0xCB, 0xA8, 0xBD ), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x92, 0x00, 0x2C, 0x78, 0xDB, 0x1F, 0x37), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xF3, 0xEB, 0xB7, 0x06, 0xF7, 0xB6, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBC, 0x2C, 0xCF, 0xD8, 0xED, 0x53, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x75, 0x7B, 0xA3, 0xAB, 0xC3, 0x2C, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x9D, 0x78, 0x41, 0xF6, 0x76, 0x84, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x56, 0xE8, 0x52, 0xB3, 0xCB, 0xA8, 0xBD), }; static const mbedtls_mpi_uint secp384r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xF2, 0xAE, 0xA4, 0xB6, 0x89, 0x1B, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x0F, 0xCE, 0x1C, 0x7C, 0xF6, 0x50, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4C, 0xEB, 0x90, 0xE6, 0x4D, 0xC7, 0xD4, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0x49, 0x2D, 0x8A, 0x01, 0x99, 0x60, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x80, 0x9B, 0x9B, 0x6A, 0xB0, 0x07, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0xA2, 0xEE, 0x59, 0xBE, 0x95, 0xBC, 0x23 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xF2, 0xAE, 0xA4, 0xB6, 0x89, 0x1B, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0xCE, 0x1C, 0x7C, 0xF6, 0x50, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xEB, 0x90, 0xE6, 0x4D, 0xC7, 0xD4, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x49, 0x2D, 0x8A, 0x01, 0x99, 0x60, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x80, 0x9B, 0x9B, 0x6A, 0xB0, 0x07, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xA2, 0xEE, 0x59, 0xBE, 0x95, 0xBC, 0x23), }; static const mbedtls_mpi_uint secp384r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x9D, 0x56, 0xAE, 0x59, 0xFB, 0x1F, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0xAC, 0x91, 0x80, 0x87, 0xA8, 0x6E, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x08, 0xA7, 0x08, 0x94, 0x32, 0xFC, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0x29, 0x9E, 0x84, 0xF4, 0xE5, 0x6E, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x21, 0xB9, 0x50, 0x24, 0xF8, 0x9C, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x04, 0x01, 0xC2, 0xFB, 0x77, 0x3E, 0xDE ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x9D, 0x56, 0xAE, 0x59, 0xFB, 0x1F, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xAC, 0x91, 0x80, 0x87, 0xA8, 0x6E, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x08, 0xA7, 0x08, 0x94, 0x32, 0xFC, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x29, 0x9E, 0x84, 0xF4, 0xE5, 0x6E, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x21, 0xB9, 0x50, 0x24, 0xF8, 0x9C, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x04, 0x01, 0xC2, 0xFB, 0x77, 0x3E, 0xDE), }; static const mbedtls_mpi_uint secp384r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x38, 0xEE, 0xE3, 0xC7, 0x9D, 0xEC, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x88, 0xCF, 0x43, 0xFA, 0x92, 0x5E, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0xCA, 0x43, 0xF8, 0x3B, 0x49, 0x7E, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0xE7, 0xEB, 0x17, 0x45, 0x86, 0xC2, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x69, 0x57, 0x32, 0xE0, 0x9C, 0xD1, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x10, 0xB8, 0x4D, 0xB8, 0xF4, 0x0D, 0xE3 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x38, 0xEE, 0xE3, 0xC7, 0x9D, 0xEC, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x88, 0xCF, 0x43, 0xFA, 0x92, 0x5E, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xCA, 0x43, 0xF8, 0x3B, 0x49, 0x7E, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xE7, 0xEB, 0x17, 0x45, 0x86, 0xC2, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x69, 0x57, 0x32, 0xE0, 0x9C, 0xD1, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x10, 0xB8, 0x4D, 0xB8, 0xF4, 0x0D, 0xE3), }; static const mbedtls_mpi_uint secp384r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x60, 0xDC, 0x9A, 0xB2, 0x79, 0x39, 0x27, 0x16 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x71, 0xE4, 0x3B, 0x4D, 0x60, 0x0C, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0xBD, 0x19, 0x40, 0xFA, 0x19, 0x2A, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0xF8, 0x1E, 0x43, 0xA1, 0x50, 0x8D, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x18, 0x7C, 0x41, 0xFA, 0x7C, 0x1B, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x59, 0x24, 0xC4, 0xE9, 0xB7, 0xD3, 0xAD ), + MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0xDC, 0x9A, 0xB2, 0x79, 0x39, 0x27, 0x16), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x71, 0xE4, 0x3B, 0x4D, 0x60, 0x0C, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xBD, 0x19, 0x40, 0xFA, 0x19, 0x2A, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xF8, 0x1E, 0x43, 0xA1, 0x50, 0x8D, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x18, 0x7C, 0x41, 0xFA, 0x7C, 0x1B, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x24, 0xC4, 0xE9, 0xB7, 0xD3, 0xAD), }; static const mbedtls_mpi_uint secp384r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x01, 0x3D, 0x63, 0x54, 0x45, 0x6F, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0xB2, 0x19, 0xA3, 0x86, 0x1D, 0x42, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x02, 0x87, 0x18, 0x92, 0x52, 0x1A, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x18, 0xB1, 0x5D, 0x18, 0x1B, 0x37, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x74, 0x61, 0xBA, 0x18, 0xAF, 0x40, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x7D, 0x3C, 0x52, 0x0F, 0x07, 0xB0, 0x6F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x01, 0x3D, 0x63, 0x54, 0x45, 0x6F, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xB2, 0x19, 0xA3, 0x86, 0x1D, 0x42, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x02, 0x87, 0x18, 0x92, 0x52, 0x1A, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x18, 0xB1, 0x5D, 0x18, 0x1B, 0x37, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x74, 0x61, 0xBA, 0x18, 0xAF, 0x40, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7D, 0x3C, 0x52, 0x0F, 0x07, 0xB0, 0x6F), }; static const mbedtls_mpi_uint secp384r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x39, 0x13, 0xAA, 0x60, 0x15, 0x99, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x00, 0xCB, 0xC6, 0xB1, 0xDB, 0x97, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xFA, 0x60, 0xB8, 0x24, 0xE4, 0x7D, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x75, 0xB3, 0x70, 0xB2, 0x83, 0xB1, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0xE3, 0x6C, 0xCD, 0x33, 0x62, 0x7A, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x30, 0xDC, 0x0F, 0x9F, 0xBB, 0xB8, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x39, 0x13, 0xAA, 0x60, 0x15, 0x99, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x00, 0xCB, 0xC6, 0xB1, 0xDB, 0x97, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xFA, 0x60, 0xB8, 0x24, 0xE4, 0x7D, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x75, 0xB3, 0x70, 0xB2, 0x83, 0xB1, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xE3, 0x6C, 0xCD, 0x33, 0x62, 0x7A, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x30, 0xDC, 0x0F, 0x9F, 0xBB, 0xB8, 0xAA), }; static const mbedtls_mpi_uint secp384r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0xD5, 0x0A, 0x60, 0x81, 0xB9, 0xC5, 0x16 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0xAA, 0x2F, 0xD6, 0xF2, 0x73, 0xDF, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x7B, 0x74, 0xC9, 0xB3, 0x5B, 0x95, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x04, 0xEB, 0x15, 0xC8, 0x5F, 0x00, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x50, 0x20, 0x28, 0xD1, 0x01, 0xAF, 0xF0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x6D, 0x4F, 0x31, 0x81, 0x2F, 0x94, 0x48 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD5, 0x0A, 0x60, 0x81, 0xB9, 0xC5, 0x16), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xAA, 0x2F, 0xD6, 0xF2, 0x73, 0xDF, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x7B, 0x74, 0xC9, 0xB3, 0x5B, 0x95, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x04, 0xEB, 0x15, 0xC8, 0x5F, 0x00, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x50, 0x20, 0x28, 0xD1, 0x01, 0xAF, 0xF0), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x4F, 0x31, 0x81, 0x2F, 0x94, 0x48), }; static const mbedtls_mpi_uint secp384r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x2F, 0xD8, 0xB6, 0x63, 0x7C, 0xE9, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x8C, 0xB9, 0x14, 0xD9, 0x37, 0x63, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x02, 0xB8, 0x46, 0xAD, 0xCE, 0x7B, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x47, 0x2D, 0x66, 0xA7, 0xE9, 0x33, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xF9, 0x93, 0x94, 0xA8, 0x48, 0xB3, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x4A, 0xAC, 0x51, 0x08, 0x72, 0x2F, 0x1A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2F, 0xD8, 0xB6, 0x63, 0x7C, 0xE9, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x8C, 0xB9, 0x14, 0xD9, 0x37, 0x63, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x02, 0xB8, 0x46, 0xAD, 0xCE, 0x7B, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x47, 0x2D, 0x66, 0xA7, 0xE9, 0x33, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF9, 0x93, 0x94, 0xA8, 0x48, 0xB3, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x4A, 0xAC, 0x51, 0x08, 0x72, 0x2F, 0x1A), }; static const mbedtls_mpi_uint secp384r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0xAD, 0xA0, 0xF9, 0x81, 0xE1, 0x78, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x9A, 0x63, 0xD8, 0xBA, 0x79, 0x1A, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x31, 0x7B, 0x7A, 0x5A, 0x5D, 0x7D, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x96, 0x12, 0x4B, 0x19, 0x09, 0xE0, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x8A, 0x57, 0xEE, 0x4E, 0x6E, 0x7E, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x9D, 0x69, 0xDC, 0xB3, 0xDA, 0xD8, 0x08 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xAD, 0xA0, 0xF9, 0x81, 0xE1, 0x78, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9A, 0x63, 0xD8, 0xBA, 0x79, 0x1A, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x31, 0x7B, 0x7A, 0x5A, 0x5D, 0x7D, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x96, 0x12, 0x4B, 0x19, 0x09, 0xE0, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8A, 0x57, 0xEE, 0x4E, 0x6E, 0x7E, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x9D, 0x69, 0xDC, 0xB3, 0xDA, 0xD8, 0x08), }; static const mbedtls_mpi_uint secp384r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x49, 0x03, 0x03, 0x33, 0x6F, 0x28, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xDB, 0xA7, 0x05, 0x8C, 0xF3, 0x4D, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x92, 0xB1, 0xA8, 0xEC, 0x0D, 0x64, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0xFC, 0xFD, 0xD0, 0x4B, 0x88, 0x1B, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x9C, 0x51, 0x69, 0xCE, 0x71, 0x73, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x5A, 0x14, 0x23, 0x1A, 0x46, 0x63, 0x5F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x49, 0x03, 0x03, 0x33, 0x6F, 0x28, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xDB, 0xA7, 0x05, 0x8C, 0xF3, 0x4D, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x92, 0xB1, 0xA8, 0xEC, 0x0D, 0x64, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0xFC, 0xFD, 0xD0, 0x4B, 0x88, 0x1B, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x9C, 0x51, 0x69, 0xCE, 0x71, 0x73, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5A, 0x14, 0x23, 0x1A, 0x46, 0x63, 0x5F), }; static const mbedtls_mpi_uint secp384r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x4C, 0x70, 0x44, 0x18, 0xCD, 0xEF, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x49, 0xDD, 0x64, 0x7E, 0x7E, 0x4D, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA2, 0x32, 0x7C, 0x09, 0xD0, 0x3F, 0xD6, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xE0, 0x4F, 0x65, 0x0C, 0x7A, 0x54, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xFA, 0xFB, 0x4A, 0xB4, 0x79, 0x5A, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x5D, 0x1B, 0x2B, 0xDA, 0xBC, 0x9A, 0x74 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x4C, 0x70, 0x44, 0x18, 0xCD, 0xEF, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x49, 0xDD, 0x64, 0x7E, 0x7E, 0x4D, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x32, 0x7C, 0x09, 0xD0, 0x3F, 0xD6, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE0, 0x4F, 0x65, 0x0C, 0x7A, 0x54, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFA, 0xFB, 0x4A, 0xB4, 0x79, 0x5A, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x1B, 0x2B, 0xDA, 0xBC, 0x9A, 0x74), }; static const mbedtls_mpi_uint secp384r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xAC, 0x56, 0xF7, 0x5F, 0x51, 0x68, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0xE0, 0x1D, 0xBC, 0x13, 0x4E, 0xAC, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xF5, 0xC5, 0xE6, 0xD2, 0x88, 0xBA, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x0E, 0x28, 0x23, 0x58, 0x67, 0xFA, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x80, 0x4B, 0xD8, 0xC4, 0xDF, 0x15, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x0E, 0x58, 0xE6, 0x2C, 0x59, 0xC2, 0x03 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xAC, 0x56, 0xF7, 0x5F, 0x51, 0x68, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xE0, 0x1D, 0xBC, 0x13, 0x4E, 0xAC, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF5, 0xC5, 0xE6, 0xD2, 0x88, 0xBA, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x0E, 0x28, 0x23, 0x58, 0x67, 0xFA, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x80, 0x4B, 0xD8, 0xC4, 0xDF, 0x15, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x0E, 0x58, 0xE6, 0x2C, 0x59, 0xC2, 0x03), }; static const mbedtls_mpi_uint secp384r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x26, 0x27, 0x99, 0x16, 0x2B, 0x22, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0xF3, 0x8F, 0xC3, 0x2A, 0x9B, 0xFC, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x2E, 0x83, 0x3D, 0xFE, 0x9E, 0x3C, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x57, 0xCD, 0x2D, 0xC1, 0x49, 0x38, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x42, 0x8B, 0x33, 0x89, 0x1F, 0xEA, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x1D, 0x13, 0xD7, 0x50, 0xBB, 0x3E, 0xEB ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x26, 0x27, 0x99, 0x16, 0x2B, 0x22, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xF3, 0x8F, 0xC3, 0x2A, 0x9B, 0xFC, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2E, 0x83, 0x3D, 0xFE, 0x9E, 0x3C, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0xCD, 0x2D, 0xC1, 0x49, 0x38, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x42, 0x8B, 0x33, 0x89, 0x1F, 0xEA, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x1D, 0x13, 0xD7, 0x50, 0xBB, 0x3E, 0xEB), }; static const mbedtls_mpi_uint secp384r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x9A, 0x52, 0xD2, 0x54, 0x7C, 0x97, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x33, 0x6E, 0xED, 0xD9, 0x87, 0x50, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x35, 0x7E, 0x16, 0x40, 0x15, 0x83, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x2B, 0xA4, 0xAB, 0x03, 0x91, 0xEA, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x47, 0x39, 0xEF, 0x05, 0x59, 0xD0, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x24, 0x0D, 0x76, 0x11, 0x53, 0x08, 0xAF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x9A, 0x52, 0xD2, 0x54, 0x7C, 0x97, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x33, 0x6E, 0xED, 0xD9, 0x87, 0x50, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x35, 0x7E, 0x16, 0x40, 0x15, 0x83, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x2B, 0xA4, 0xAB, 0x03, 0x91, 0xEA, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x47, 0x39, 0xEF, 0x05, 0x59, 0xD0, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x24, 0x0D, 0x76, 0x11, 0x53, 0x08, 0xAF), }; static const mbedtls_mpi_uint secp384r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x2F, 0xDD, 0xBD, 0x50, 0x48, 0xB1, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x1C, 0x84, 0x55, 0x78, 0x14, 0xEB, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x5E, 0x3E, 0xA6, 0xAF, 0xF6, 0xC7, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x11, 0xE2, 0x65, 0xCA, 0x41, 0x95, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x83, 0xD8, 0xE6, 0x4D, 0x22, 0x06, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x7F, 0x25, 0x2A, 0xAA, 0x28, 0x46, 0x97 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x2F, 0xDD, 0xBD, 0x50, 0x48, 0xB1, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x1C, 0x84, 0x55, 0x78, 0x14, 0xEB, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x5E, 0x3E, 0xA6, 0xAF, 0xF6, 0xC7, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x11, 0xE2, 0x65, 0xCA, 0x41, 0x95, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x83, 0xD8, 0xE6, 0x4D, 0x22, 0x06, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x7F, 0x25, 0x2A, 0xAA, 0x28, 0x46, 0x97), }; static const mbedtls_mpi_uint secp384r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0xDB, 0x15, 0x56, 0x84, 0xCB, 0xC0, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0xDB, 0x0E, 0x08, 0xC9, 0xF5, 0xD4, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x62, 0xD0, 0x1A, 0x7C, 0x13, 0xD5, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0xAD, 0x53, 0xE0, 0x32, 0x21, 0xA0, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x38, 0x81, 0x21, 0x23, 0x0E, 0xD2, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x51, 0x05, 0xD0, 0x1E, 0x82, 0xA9, 0x71 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xDB, 0x15, 0x56, 0x84, 0xCB, 0xC0, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xDB, 0x0E, 0x08, 0xC9, 0xF5, 0xD4, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x62, 0xD0, 0x1A, 0x7C, 0x13, 0xD5, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xAD, 0x53, 0xE0, 0x32, 0x21, 0xA0, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x38, 0x81, 0x21, 0x23, 0x0E, 0xD2, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x51, 0x05, 0xD0, 0x1E, 0x82, 0xA9, 0x71), }; static const mbedtls_mpi_uint secp384r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0xC3, 0x27, 0xBF, 0xC6, 0xAA, 0xB7, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x65, 0x45, 0xDF, 0xB9, 0x46, 0x17, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x38, 0x3F, 0xB2, 0xB1, 0x5D, 0xCA, 0x1C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x29, 0x6C, 0x63, 0xE9, 0xD7, 0x48, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xF1, 0xD7, 0x99, 0x8C, 0xC2, 0x05, 0x99 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xE6, 0x5E, 0x82, 0x6D, 0xE5, 0x7E, 0xD5 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xC3, 0x27, 0xBF, 0xC6, 0xAA, 0xB7, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x65, 0x45, 0xDF, 0xB9, 0x46, 0x17, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x38, 0x3F, 0xB2, 0xB1, 0x5D, 0xCA, 0x1C), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x29, 0x6C, 0x63, 0xE9, 0xD7, 0x48, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xF1, 0xD7, 0x99, 0x8C, 0xC2, 0x05, 0x99), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE6, 0x5E, 0x82, 0x6D, 0xE5, 0x7E, 0xD5), }; static const mbedtls_mpi_uint secp384r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x61, 0xFA, 0x7D, 0x01, 0xDB, 0xB6, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xC6, 0x58, 0x39, 0xF4, 0xC6, 0x82, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x5A, 0x7A, 0x80, 0x08, 0xCD, 0xAA, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x8C, 0xC6, 0x3F, 0x3C, 0xA5, 0x68, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0xF5, 0xD5, 0x17, 0xAE, 0x36, 0xD8, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0xAD, 0x92, 0xC5, 0x57, 0x6C, 0xDA, 0x91 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x61, 0xFA, 0x7D, 0x01, 0xDB, 0xB6, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xC6, 0x58, 0x39, 0xF4, 0xC6, 0x82, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0x7A, 0x80, 0x08, 0xCD, 0xAA, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x8C, 0xC6, 0x3F, 0x3C, 0xA5, 0x68, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xF5, 0xD5, 0x17, 0xAE, 0x36, 0xD8, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xAD, 0x92, 0xC5, 0x57, 0x6C, 0xDA, 0x91), }; static const mbedtls_mpi_uint secp384r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x67, 0x17, 0xC0, 0x40, 0x78, 0x8C, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x9F, 0xF4, 0xAA, 0xDA, 0x5C, 0x7E, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xDB, 0x42, 0x3E, 0x72, 0x64, 0xA0, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0xF9, 0x41, 0x17, 0x43, 0xE3, 0xE8, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xDD, 0xCC, 0x43, 0x7E, 0x16, 0x05, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0x4B, 0xCF, 0x48, 0x8F, 0x41, 0x90, 0xE5 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x67, 0x17, 0xC0, 0x40, 0x78, 0x8C, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x9F, 0xF4, 0xAA, 0xDA, 0x5C, 0x7E, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xDB, 0x42, 0x3E, 0x72, 0x64, 0xA0, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xF9, 0x41, 0x17, 0x43, 0xE3, 0xE8, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xDD, 0xCC, 0x43, 0x7E, 0x16, 0x05, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x4B, 0xCF, 0x48, 0x8F, 0x41, 0x90, 0xE5), }; static const mbedtls_mpi_uint secp384r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x0C, 0x6B, 0x9D, 0x22, 0x04, 0xBC, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x63, 0x79, 0x2F, 0x6A, 0x0E, 0x8A, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x67, 0x3F, 0x02, 0xB8, 0x91, 0x7F, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x14, 0x64, 0xA0, 0x33, 0xF4, 0x6B, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x44, 0x71, 0x87, 0xB8, 0x88, 0x3F, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x2B, 0x85, 0x05, 0xC5, 0x44, 0x53, 0x15 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x0C, 0x6B, 0x9D, 0x22, 0x04, 0xBC, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x63, 0x79, 0x2F, 0x6A, 0x0E, 0x8A, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x67, 0x3F, 0x02, 0xB8, 0x91, 0x7F, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x14, 0x64, 0xA0, 0x33, 0xF4, 0x6B, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x44, 0x71, 0x87, 0xB8, 0x88, 0x3F, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x2B, 0x85, 0x05, 0xC5, 0x44, 0x53, 0x15), }; static const mbedtls_mpi_uint secp384r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x2B, 0xFE, 0xD1, 0x1C, 0x73, 0xE3, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0x33, 0xA1, 0xD3, 0x69, 0x1C, 0x9D, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x5A, 0xBA, 0xB6, 0xAE, 0x1B, 0x94, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0x74, 0x90, 0x5C, 0x57, 0xB0, 0x3A, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x2F, 0x93, 0x20, 0x24, 0x54, 0x1D, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x78, 0x9D, 0x71, 0x67, 0x5D, 0x49, 0x98 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x2B, 0xFE, 0xD1, 0x1C, 0x73, 0xE3, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x33, 0xA1, 0xD3, 0x69, 0x1C, 0x9D, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x5A, 0xBA, 0xB6, 0xAE, 0x1B, 0x94, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x74, 0x90, 0x5C, 0x57, 0xB0, 0x3A, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x2F, 0x93, 0x20, 0x24, 0x54, 0x1D, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x78, 0x9D, 0x71, 0x67, 0x5D, 0x49, 0x98), }; static const mbedtls_mpi_uint secp384r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0xC8, 0x0E, 0x11, 0x8D, 0xE0, 0x8F, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x7F, 0x79, 0x6C, 0x5F, 0xB7, 0xBC, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0xE1, 0x83, 0x3C, 0x12, 0xBB, 0xEE, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xC2, 0xC4, 0x1B, 0x41, 0x71, 0xB9, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0xEE, 0xBB, 0x1D, 0x89, 0x50, 0x88, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x1C, 0x55, 0x74, 0xEB, 0xDE, 0x92, 0x3F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xC8, 0x0E, 0x11, 0x8D, 0xE0, 0x8F, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x7F, 0x79, 0x6C, 0x5F, 0xB7, 0xBC, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xE1, 0x83, 0x3C, 0x12, 0xBB, 0xEE, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC2, 0xC4, 0x1B, 0x41, 0x71, 0xB9, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0xEE, 0xBB, 0x1D, 0x89, 0x50, 0x88, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x1C, 0x55, 0x74, 0xEB, 0xDE, 0x92, 0x3F), }; static const mbedtls_mpi_uint secp384r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x38, 0x92, 0x06, 0x19, 0xD0, 0xB3, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x99, 0x26, 0xA3, 0x5F, 0xE2, 0xC1, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0xFC, 0xFD, 0xC3, 0xB6, 0x26, 0x24, 0x8F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xAD, 0xE7, 0x49, 0xB7, 0x64, 0x4B, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x4E, 0x95, 0xAD, 0x07, 0xFE, 0xB6, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x15, 0xE7, 0x2D, 0x19, 0xA9, 0x08, 0x10 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x38, 0x92, 0x06, 0x19, 0xD0, 0xB3, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x99, 0x26, 0xA3, 0x5F, 0xE2, 0xC1, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xFC, 0xFD, 0xC3, 0xB6, 0x26, 0x24, 0x8F), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xAD, 0xE7, 0x49, 0xB7, 0x64, 0x4B, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x4E, 0x95, 0xAD, 0x07, 0xFE, 0xB6, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x15, 0xE7, 0x2D, 0x19, 0xA9, 0x08, 0x10), }; static const mbedtls_mpi_uint secp384r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xBD, 0xAC, 0x0A, 0x3F, 0x6B, 0xFF, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0xE4, 0x74, 0x14, 0xD9, 0x70, 0x1D, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0xB0, 0x71, 0xBB, 0xD8, 0x18, 0x96, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0xB8, 0x19, 0x90, 0x80, 0xB5, 0xEE, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x21, 0x20, 0xA6, 0x17, 0x48, 0x03, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x1D, 0xBB, 0x6D, 0x94, 0x20, 0x34, 0xF1 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xBD, 0xAC, 0x0A, 0x3F, 0x6B, 0xFF, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xE4, 0x74, 0x14, 0xD9, 0x70, 0x1D, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xB0, 0x71, 0xBB, 0xD8, 0x18, 0x96, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0xB8, 0x19, 0x90, 0x80, 0xB5, 0xEE, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x21, 0x20, 0xA6, 0x17, 0x48, 0x03, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0xBB, 0x6D, 0x94, 0x20, 0x34, 0xF1), }; static const mbedtls_mpi_uint secp384r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x82, 0x67, 0x4B, 0x8E, 0x4E, 0xBE, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xDA, 0x77, 0xF8, 0x23, 0x55, 0x2B, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x02, 0xDE, 0x25, 0x35, 0x2D, 0x74, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x0C, 0xB8, 0x0B, 0x39, 0xBA, 0xAD, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0x0E, 0x28, 0x4D, 0xE1, 0x3D, 0xE4, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xEC, 0x0A, 0xD4, 0xB8, 0xC4, 0x8D, 0xB0 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x82, 0x67, 0x4B, 0x8E, 0x4E, 0xBE, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xDA, 0x77, 0xF8, 0x23, 0x55, 0x2B, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x02, 0xDE, 0x25, 0x35, 0x2D, 0x74, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0C, 0xB8, 0x0B, 0x39, 0xBA, 0xAD, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x0E, 0x28, 0x4D, 0xE1, 0x3D, 0xE4, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xEC, 0x0A, 0xD4, 0xB8, 0xC4, 0x8D, 0xB0), }; static const mbedtls_mpi_uint secp384r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x68, 0xCE, 0xC2, 0x55, 0x4D, 0x0C, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x20, 0x93, 0x32, 0x90, 0xD6, 0xAE, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x78, 0xAB, 0x43, 0x9E, 0xEB, 0x73, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x97, 0xC3, 0x83, 0xA6, 0x3C, 0xF1, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0x25, 0x25, 0x66, 0x08, 0x26, 0xFA, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xFB, 0x44, 0x5D, 0x82, 0xEC, 0x3B, 0xAC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x68, 0xCE, 0xC2, 0x55, 0x4D, 0x0C, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x20, 0x93, 0x32, 0x90, 0xD6, 0xAE, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x78, 0xAB, 0x43, 0x9E, 0xEB, 0x73, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x97, 0xC3, 0x83, 0xA6, 0x3C, 0xF1, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x25, 0x25, 0x66, 0x08, 0x26, 0xFA, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xFB, 0x44, 0x5D, 0x82, 0xEC, 0x3B, 0xAC), }; static const mbedtls_mpi_uint secp384r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x90, 0xEA, 0xB5, 0x04, 0x99, 0xD0, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0xF2, 0x22, 0xA0, 0xEB, 0xFD, 0x45, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xA4, 0x81, 0x32, 0xFC, 0xFA, 0xEE, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0xBB, 0xA4, 0x6A, 0x77, 0x41, 0x5C, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x1E, 0xAA, 0x4F, 0xF0, 0x10, 0xB3, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x74, 0x13, 0x14, 0x9E, 0x90, 0xD7, 0xE6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x90, 0xEA, 0xB5, 0x04, 0x99, 0xD0, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0xF2, 0x22, 0xA0, 0xEB, 0xFD, 0x45, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA4, 0x81, 0x32, 0xFC, 0xFA, 0xEE, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xBB, 0xA4, 0x6A, 0x77, 0x41, 0x5C, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x1E, 0xAA, 0x4F, 0xF0, 0x10, 0xB3, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x74, 0x13, 0x14, 0x9E, 0x90, 0xD7, 0xE6), }; static const mbedtls_mpi_uint secp384r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0xBD, 0x70, 0x4F, 0xA8, 0xD1, 0x06, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x4E, 0x2E, 0x68, 0xFC, 0x35, 0xFA, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x60, 0x53, 0x75, 0xED, 0xF2, 0x5F, 0xC2, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0x87, 0x6B, 0x9F, 0x05, 0xE2, 0x22, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x1A, 0xA8, 0xB7, 0x03, 0x9E, 0x6D, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0xD0, 0x69, 0x88, 0xA8, 0x39, 0x9E, 0x3A ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xBD, 0x70, 0x4F, 0xA8, 0xD1, 0x06, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4E, 0x2E, 0x68, 0xFC, 0x35, 0xFA, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x53, 0x75, 0xED, 0xF2, 0x5F, 0xC2, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x87, 0x6B, 0x9F, 0x05, 0xE2, 0x22, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x1A, 0xA8, 0xB7, 0x03, 0x9E, 0x6D, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD0, 0x69, 0x88, 0xA8, 0x39, 0x9E, 0x3A), }; static const mbedtls_mpi_uint secp384r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0xEF, 0x68, 0xFE, 0xEC, 0x24, 0x08, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x06, 0x4B, 0x92, 0x0D, 0xB7, 0x34, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0xF4, 0xDD, 0x1A, 0xA0, 0x4A, 0xE4, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x63, 0x4F, 0x4F, 0xCE, 0xBB, 0xD6, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xEE, 0x8D, 0xDF, 0x3F, 0x73, 0xB7, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x06, 0xB6, 0x80, 0x4D, 0x81, 0xD9, 0x53 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xEF, 0x68, 0xFE, 0xEC, 0x24, 0x08, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x4B, 0x92, 0x0D, 0xB7, 0x34, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xF4, 0xDD, 0x1A, 0xA0, 0x4A, 0xE4, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x63, 0x4F, 0x4F, 0xCE, 0xBB, 0xD6, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xEE, 0x8D, 0xDF, 0x3F, 0x73, 0xB7, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x06, 0xB6, 0x80, 0x4D, 0x81, 0xD9, 0x53), }; static const mbedtls_mpi_uint secp384r1_T_16_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0xF5, 0x13, 0xDF, 0x13, 0x19, 0x97, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xF9, 0xB3, 0x33, 0x66, 0x82, 0x21, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xFC, 0x39, 0x16, 0x23, 0x43, 0x76, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x48, 0x25, 0xA1, 0x64, 0x95, 0x1C, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0xAC, 0x15, 0x57, 0xD9, 0xDE, 0xA0, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x5F, 0xB8, 0x3D, 0x48, 0x91, 0x24, 0xCC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF5, 0x13, 0xDF, 0x13, 0x19, 0x97, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xF9, 0xB3, 0x33, 0x66, 0x82, 0x21, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xFC, 0x39, 0x16, 0x23, 0x43, 0x76, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x48, 0x25, 0xA1, 0x64, 0x95, 0x1C, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xAC, 0x15, 0x57, 0xD9, 0xDE, 0xA0, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x5F, 0xB8, 0x3D, 0x48, 0x91, 0x24, 0xCC), }; static const mbedtls_mpi_uint secp384r1_T_16_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0xF2, 0xC8, 0x54, 0xD1, 0x32, 0xBD, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x3B, 0xF0, 0xAA, 0x9D, 0xD8, 0xF4, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0xC3, 0xBB, 0x6C, 0x66, 0xAC, 0x25, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x25, 0x10, 0xB2, 0xE1, 0x41, 0xDE, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0xE8, 0x30, 0xB8, 0x37, 0xBC, 0x2A, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x57, 0x01, 0x4A, 0x1E, 0x78, 0x9F, 0x85 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xF2, 0xC8, 0x54, 0xD1, 0x32, 0xBD, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x3B, 0xF0, 0xAA, 0x9D, 0xD8, 0xF4, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xC3, 0xBB, 0x6C, 0x66, 0xAC, 0x25, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x25, 0x10, 0xB2, 0xE1, 0x41, 0xDE, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xE8, 0x30, 0xB8, 0x37, 0xBC, 0x2A, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x57, 0x01, 0x4A, 0x1E, 0x78, 0x9F, 0x85), }; static const mbedtls_mpi_uint secp384r1_T_17_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0x19, 0xCD, 0x12, 0x0B, 0x51, 0x4F, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x4B, 0x3D, 0x24, 0xA4, 0x16, 0x59, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xEB, 0xD3, 0x59, 0x2E, 0x75, 0x7C, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0xB9, 0xB4, 0xA5, 0xD9, 0x2E, 0x29, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x16, 0x05, 0x75, 0x02, 0xB3, 0x06, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x7C, 0x9F, 0x79, 0x91, 0xF1, 0x4F, 0x23 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x19, 0xCD, 0x12, 0x0B, 0x51, 0x4F, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x4B, 0x3D, 0x24, 0xA4, 0x16, 0x59, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xEB, 0xD3, 0x59, 0x2E, 0x75, 0x7C, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB9, 0xB4, 0xA5, 0xD9, 0x2E, 0x29, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x16, 0x05, 0x75, 0x02, 0xB3, 0x06, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x7C, 0x9F, 0x79, 0x91, 0xF1, 0x4F, 0x23), }; static const mbedtls_mpi_uint secp384r1_T_17_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x98, 0x7C, 0x84, 0xE1, 0xFF, 0x30, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0xE2, 0xC2, 0x5F, 0x55, 0x40, 0xBD, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0x65, 0x87, 0x3F, 0xC4, 0xC2, 0x24, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0x30, 0x0A, 0x60, 0x15, 0xD1, 0x24, 0x48 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x99, 0xD9, 0xB6, 0xAE, 0xB1, 0xAF, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x80, 0xEE, 0xA2, 0x0F, 0x74, 0xB9, 0xF3 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x98, 0x7C, 0x84, 0xE1, 0xFF, 0x30, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE2, 0xC2, 0x5F, 0x55, 0x40, 0xBD, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x65, 0x87, 0x3F, 0xC4, 0xC2, 0x24, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x30, 0x0A, 0x60, 0x15, 0xD1, 0x24, 0x48), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x99, 0xD9, 0xB6, 0xAE, 0xB1, 0xAF, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x80, 0xEE, 0xA2, 0x0F, 0x74, 0xB9, 0xF3), }; static const mbedtls_mpi_uint secp384r1_T_18_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0xE6, 0x0F, 0x37, 0xC1, 0x10, 0x99, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0xAD, 0x9D, 0x5D, 0x80, 0x01, 0xA6, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x0F, 0x10, 0x2A, 0x9D, 0x20, 0x38, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x60, 0xCB, 0xCE, 0x5A, 0xA0, 0xA7, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0xCF, 0x14, 0xDF, 0xBF, 0xE5, 0x74, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x12, 0x1A, 0xDD, 0x59, 0x02, 0x5D, 0xC6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xE6, 0x0F, 0x37, 0xC1, 0x10, 0x99, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xAD, 0x9D, 0x5D, 0x80, 0x01, 0xA6, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x0F, 0x10, 0x2A, 0x9D, 0x20, 0x38, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x60, 0xCB, 0xCE, 0x5A, 0xA0, 0xA7, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xCF, 0x14, 0xDF, 0xBF, 0xE5, 0x74, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x12, 0x1A, 0xDD, 0x59, 0x02, 0x5D, 0xC6), }; static const mbedtls_mpi_uint secp384r1_T_18_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xC9, 0xF8, 0xF5, 0xB6, 0x13, 0x4D, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x45, 0xB1, 0x93, 0xB3, 0xA2, 0x79, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xF6, 0xCF, 0xF7, 0xE6, 0x29, 0x9C, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x50, 0x65, 0x80, 0xBC, 0x59, 0x0A, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xF0, 0x24, 0x35, 0xA2, 0x46, 0xF0, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0x26, 0xC0, 0x9D, 0x61, 0x56, 0x62, 0x67 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0xF8, 0xF5, 0xB6, 0x13, 0x4D, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x45, 0xB1, 0x93, 0xB3, 0xA2, 0x79, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xF6, 0xCF, 0xF7, 0xE6, 0x29, 0x9C, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x50, 0x65, 0x80, 0xBC, 0x59, 0x0A, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xF0, 0x24, 0x35, 0xA2, 0x46, 0xF0, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x26, 0xC0, 0x9D, 0x61, 0x56, 0x62, 0x67), }; static const mbedtls_mpi_uint secp384r1_T_19_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xBB, 0xC2, 0x24, 0x43, 0x2E, 0x37, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0xF7, 0xCE, 0x35, 0xFC, 0x77, 0xF3, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x34, 0x96, 0xD5, 0x4A, 0x76, 0x9D, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x3B, 0x0F, 0xEA, 0xA8, 0x12, 0x0B, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0x3F, 0x5D, 0x2D, 0x1C, 0xD4, 0x9E, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x2E, 0xDD, 0xC7, 0x6E, 0xAB, 0xAF, 0xDC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xBB, 0xC2, 0x24, 0x43, 0x2E, 0x37, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xF7, 0xCE, 0x35, 0xFC, 0x77, 0xF3, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x34, 0x96, 0xD5, 0x4A, 0x76, 0x9D, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x3B, 0x0F, 0xEA, 0xA8, 0x12, 0x0B, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x3F, 0x5D, 0x2D, 0x1C, 0xD4, 0x9E, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x2E, 0xDD, 0xC7, 0x6E, 0xAB, 0xAF, 0xDC), }; static const mbedtls_mpi_uint secp384r1_T_19_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0xB2, 0x7B, 0x0C, 0x9A, 0x83, 0x8E, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x51, 0x90, 0x92, 0x79, 0x32, 0x19, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0x89, 0xF9, 0xD0, 0xCF, 0x2C, 0xA5, 0x8F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x50, 0x21, 0xDE, 0x50, 0x41, 0x9D, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x7D, 0x2B, 0x9E, 0x9D, 0x95, 0xA8, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xA5, 0x20, 0x87, 0x88, 0x97, 0x5F, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xB2, 0x7B, 0x0C, 0x9A, 0x83, 0x8E, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x51, 0x90, 0x92, 0x79, 0x32, 0x19, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x89, 0xF9, 0xD0, 0xCF, 0x2C, 0xA5, 0x8F), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x50, 0x21, 0xDE, 0x50, 0x41, 0x9D, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x7D, 0x2B, 0x9E, 0x9D, 0x95, 0xA8, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA5, 0x20, 0x87, 0x88, 0x97, 0x5F, 0xAA), }; static const mbedtls_mpi_uint secp384r1_T_20_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x59, 0xB4, 0x66, 0x7E, 0xE8, 0x5A, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x5C, 0x7E, 0xB2, 0xAD, 0xD9, 0xC9, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x97, 0x49, 0xA3, 0x13, 0x83, 0x07, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x26, 0xC7, 0x13, 0x35, 0x0D, 0xB0, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x60, 0xAB, 0xFA, 0x4B, 0x93, 0x18, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x2D, 0x1C, 0x31, 0x4C, 0xE4, 0x61, 0xAE ), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x59, 0xB4, 0x66, 0x7E, 0xE8, 0x5A, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x5C, 0x7E, 0xB2, 0xAD, 0xD9, 0xC9, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x97, 0x49, 0xA3, 0x13, 0x83, 0x07, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x26, 0xC7, 0x13, 0x35, 0x0D, 0xB0, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x60, 0xAB, 0xFA, 0x4B, 0x93, 0x18, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2D, 0x1C, 0x31, 0x4C, 0xE4, 0x61, 0xAE), }; static const mbedtls_mpi_uint secp384r1_T_20_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0x4D, 0x1E, 0x51, 0x59, 0x6E, 0x91, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x54, 0x4D, 0x51, 0xED, 0x36, 0xCC, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0xA8, 0x56, 0xC7, 0x78, 0x27, 0x33, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0xB7, 0x95, 0xC9, 0x8B, 0xC8, 0x6A, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0xE9, 0x13, 0x96, 0xB3, 0xE1, 0xF9, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x46, 0xB0, 0x5E, 0xC3, 0x94, 0x03, 0x05 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x4D, 0x1E, 0x51, 0x59, 0x6E, 0x91, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x54, 0x4D, 0x51, 0xED, 0x36, 0xCC, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xA8, 0x56, 0xC7, 0x78, 0x27, 0x33, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB7, 0x95, 0xC9, 0x8B, 0xC8, 0x6A, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xE9, 0x13, 0x96, 0xB3, 0xE1, 0xF9, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x46, 0xB0, 0x5E, 0xC3, 0x94, 0x03, 0x05), }; static const mbedtls_mpi_uint secp384r1_T_21_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x5B, 0x29, 0x30, 0x41, 0x1A, 0x9E, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0xCA, 0x83, 0x31, 0x5B, 0xA7, 0xCB, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x41, 0x50, 0x44, 0x4D, 0x64, 0x31, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0x84, 0xC2, 0x5D, 0x97, 0xA5, 0x3C, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x0F, 0xA5, 0xFD, 0x8E, 0x5A, 0x47, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x58, 0x02, 0x2D, 0x40, 0xB1, 0x0B, 0xBA ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x5B, 0x29, 0x30, 0x41, 0x1A, 0x9E, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xCA, 0x83, 0x31, 0x5B, 0xA7, 0xCB, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x41, 0x50, 0x44, 0x4D, 0x64, 0x31, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x84, 0xC2, 0x5D, 0x97, 0xA5, 0x3C, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x0F, 0xA5, 0xFD, 0x8E, 0x5A, 0x47, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x58, 0x02, 0x2D, 0x40, 0xB1, 0x0B, 0xBA), }; static const mbedtls_mpi_uint secp384r1_T_21_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x33, 0x8C, 0x67, 0xCE, 0x23, 0x43, 0x99 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x53, 0x47, 0x72, 0x44, 0x1F, 0x5B, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0xC1, 0xD9, 0xA4, 0x50, 0x88, 0x63, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0xF2, 0x75, 0x69, 0x73, 0x00, 0xC4, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0x90, 0x1D, 0xDF, 0x1A, 0x00, 0xD8, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0xB1, 0x89, 0x48, 0xA8, 0x70, 0x62, 0xEF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x33, 0x8C, 0x67, 0xCE, 0x23, 0x43, 0x99), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x53, 0x47, 0x72, 0x44, 0x1F, 0x5B, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xC1, 0xD9, 0xA4, 0x50, 0x88, 0x63, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xF2, 0x75, 0x69, 0x73, 0x00, 0xC4, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x90, 0x1D, 0xDF, 0x1A, 0x00, 0xD8, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xB1, 0x89, 0x48, 0xA8, 0x70, 0x62, 0xEF), }; static const mbedtls_mpi_uint secp384r1_T_22_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x8A, 0x55, 0x50, 0x7B, 0xEF, 0x8A, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0x1B, 0x23, 0x48, 0x23, 0x63, 0x91, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x04, 0x54, 0x3C, 0x24, 0x9B, 0xC7, 0x9A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0x38, 0xC3, 0x84, 0xFB, 0xFF, 0x9F, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0x2A, 0xE0, 0x6D, 0x68, 0x8A, 0x5C, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x93, 0x53, 0x85, 0xA1, 0x0D, 0xAF, 0x63 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x8A, 0x55, 0x50, 0x7B, 0xEF, 0x8A, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1B, 0x23, 0x48, 0x23, 0x63, 0x91, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x04, 0x54, 0x3C, 0x24, 0x9B, 0xC7, 0x9A), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x38, 0xC3, 0x84, 0xFB, 0xFF, 0x9F, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x2A, 0xE0, 0x6D, 0x68, 0x8A, 0x5C, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x93, 0x53, 0x85, 0xA1, 0x0D, 0xAF, 0x63), }; static const mbedtls_mpi_uint secp384r1_T_22_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x88, 0x95, 0x4C, 0x0B, 0xD0, 0x06, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xAF, 0x8D, 0x49, 0xA2, 0xC8, 0xB4, 0xE0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x76, 0x53, 0x09, 0x88, 0x43, 0x87, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xA4, 0x77, 0x3F, 0x5E, 0x21, 0xB4, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0x9E, 0x86, 0x64, 0xCC, 0x91, 0xC1, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x17, 0x56, 0xCB, 0xC3, 0x7D, 0x5B, 0xB1 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x88, 0x95, 0x4C, 0x0B, 0xD0, 0x06, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xAF, 0x8D, 0x49, 0xA2, 0xC8, 0xB4, 0xE0), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x76, 0x53, 0x09, 0x88, 0x43, 0x87, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA4, 0x77, 0x3F, 0x5E, 0x21, 0xB4, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x9E, 0x86, 0x64, 0xCC, 0x91, 0xC1, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x17, 0x56, 0xCB, 0xC3, 0x7D, 0x5B, 0xB1), }; static const mbedtls_mpi_uint secp384r1_T_23_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x74, 0x9F, 0xB5, 0x91, 0x21, 0xB1, 0x1C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xED, 0xE1, 0x11, 0xEF, 0x45, 0xAF, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x31, 0xBE, 0xB2, 0xBC, 0x72, 0x65, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0x4B, 0x8C, 0x77, 0xCE, 0x1E, 0x42, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xC9, 0xAA, 0xB9, 0xD9, 0x86, 0x99, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x23, 0x80, 0xC6, 0x4E, 0x35, 0x0B, 0x6D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x74, 0x9F, 0xB5, 0x91, 0x21, 0xB1, 0x1C), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xED, 0xE1, 0x11, 0xEF, 0x45, 0xAF, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x31, 0xBE, 0xB2, 0xBC, 0x72, 0x65, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x4B, 0x8C, 0x77, 0xCE, 0x1E, 0x42, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC9, 0xAA, 0xB9, 0xD9, 0x86, 0x99, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x23, 0x80, 0xC6, 0x4E, 0x35, 0x0B, 0x6D), }; static const mbedtls_mpi_uint secp384r1_T_23_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0xD8, 0xA2, 0x0A, 0x39, 0x32, 0x1D, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0xC8, 0x86, 0xF1, 0x12, 0x9A, 0x4A, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xF1, 0x7C, 0xAA, 0x70, 0x8E, 0xBC, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x01, 0x47, 0x8F, 0xDD, 0x8B, 0xA5, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x08, 0x21, 0xF4, 0xAB, 0xC7, 0xF5, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x76, 0xA5, 0x95, 0xC4, 0x0F, 0x88, 0x1D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xD8, 0xA2, 0x0A, 0x39, 0x32, 0x1D, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0xC8, 0x86, 0xF1, 0x12, 0x9A, 0x4A, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xF1, 0x7C, 0xAA, 0x70, 0x8E, 0xBC, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x01, 0x47, 0x8F, 0xDD, 0x8B, 0xA5, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x08, 0x21, 0xF4, 0xAB, 0xC7, 0xF5, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x76, 0xA5, 0x95, 0xC4, 0x0F, 0x88, 0x1D), }; static const mbedtls_mpi_uint secp384r1_T_24_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x42, 0x2A, 0x52, 0xCD, 0x75, 0x51, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0x36, 0xE5, 0x04, 0x2B, 0x44, 0xC6, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xEE, 0x16, 0x13, 0x07, 0x83, 0xB5, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x59, 0xC6, 0xA2, 0x19, 0x05, 0xD3, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x8B, 0xA8, 0x16, 0x09, 0xB7, 0xEA, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0xEE, 0x14, 0xAF, 0xB5, 0xFD, 0xD0, 0xEF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x42, 0x2A, 0x52, 0xCD, 0x75, 0x51, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x36, 0xE5, 0x04, 0x2B, 0x44, 0xC6, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xEE, 0x16, 0x13, 0x07, 0x83, 0xB5, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x59, 0xC6, 0xA2, 0x19, 0x05, 0xD3, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8B, 0xA8, 0x16, 0x09, 0xB7, 0xEA, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xEE, 0x14, 0xAF, 0xB5, 0xFD, 0xD0, 0xEF), }; static const mbedtls_mpi_uint secp384r1_T_24_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x7C, 0xCA, 0x71, 0x3E, 0x6E, 0x66, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x31, 0x0E, 0x3F, 0xE5, 0x91, 0xC4, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x3D, 0xC2, 0x3E, 0x95, 0x37, 0x58, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x1F, 0x02, 0x03, 0xF3, 0xEF, 0xEE, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x5B, 0x1A, 0xFC, 0x38, 0xCD, 0xE8, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x57, 0x42, 0x85, 0xC6, 0x21, 0x68, 0x71 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x7C, 0xCA, 0x71, 0x3E, 0x6E, 0x66, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x31, 0x0E, 0x3F, 0xE5, 0x91, 0xC4, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x3D, 0xC2, 0x3E, 0x95, 0x37, 0x58, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x1F, 0x02, 0x03, 0xF3, 0xEF, 0xEE, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x5B, 0x1A, 0xFC, 0x38, 0xCD, 0xE8, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x57, 0x42, 0x85, 0xC6, 0x21, 0x68, 0x71), }; static const mbedtls_mpi_uint secp384r1_T_25_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xA2, 0x4A, 0x66, 0xB1, 0x0A, 0xE6, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x0C, 0x94, 0x9D, 0x5E, 0x99, 0xB2, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x03, 0x40, 0xCA, 0xB2, 0xB3, 0x30, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x78, 0x48, 0x27, 0x34, 0x1E, 0xE2, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x72, 0x5B, 0xAC, 0xC1, 0x6D, 0xE3, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xAB, 0x46, 0xCB, 0xEA, 0x5E, 0x4B, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA2, 0x4A, 0x66, 0xB1, 0x0A, 0xE6, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x0C, 0x94, 0x9D, 0x5E, 0x99, 0xB2, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x03, 0x40, 0xCA, 0xB2, 0xB3, 0x30, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0x48, 0x27, 0x34, 0x1E, 0xE2, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x72, 0x5B, 0xAC, 0xC1, 0x6D, 0xE3, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAB, 0x46, 0xCB, 0xEA, 0x5E, 0x4B, 0x0B), }; static const mbedtls_mpi_uint secp384r1_T_25_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x08, 0xAD, 0x4E, 0x51, 0x9F, 0x2A, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x5C, 0x7D, 0x4C, 0xD6, 0xCF, 0xDD, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x76, 0x26, 0xE0, 0x8B, 0x10, 0xD9, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0xA7, 0x23, 0x4E, 0x5F, 0xD2, 0x42, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0xE5, 0xA4, 0xEC, 0x77, 0x21, 0x34, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x14, 0x65, 0xEA, 0x4A, 0x85, 0xC3, 0x2F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x08, 0xAD, 0x4E, 0x51, 0x9F, 0x2A, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5C, 0x7D, 0x4C, 0xD6, 0xCF, 0xDD, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x76, 0x26, 0xE0, 0x8B, 0x10, 0xD9, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA7, 0x23, 0x4E, 0x5F, 0xD2, 0x42, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xE5, 0xA4, 0xEC, 0x77, 0x21, 0x34, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x14, 0x65, 0xEA, 0x4A, 0x85, 0xC3, 0x2F), }; static const mbedtls_mpi_uint secp384r1_T_26_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0xD8, 0x40, 0x27, 0x73, 0x15, 0x7E, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xBB, 0x53, 0x7E, 0x0F, 0x40, 0xC8, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0x37, 0x19, 0x73, 0xEF, 0x5A, 0x5E, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x73, 0x2B, 0x49, 0x7E, 0xAC, 0x97, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0xB2, 0xC3, 0x1E, 0x0E, 0xE7, 0xD2, 0x21 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x08, 0xD6, 0xDD, 0xAC, 0x21, 0xD6, 0x3E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xD8, 0x40, 0x27, 0x73, 0x15, 0x7E, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xBB, 0x53, 0x7E, 0x0F, 0x40, 0xC8, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x37, 0x19, 0x73, 0xEF, 0x5A, 0x5E, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x73, 0x2B, 0x49, 0x7E, 0xAC, 0x97, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xB2, 0xC3, 0x1E, 0x0E, 0xE7, 0xD2, 0x21), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x08, 0xD6, 0xDD, 0xAC, 0x21, 0xD6, 0x3E), }; static const mbedtls_mpi_uint secp384r1_T_26_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0x26, 0xBE, 0x6D, 0x6D, 0xF2, 0x38, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x6C, 0x31, 0xA7, 0x49, 0x50, 0x3A, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x99, 0xC6, 0xF5, 0xD2, 0xC2, 0x30, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xE4, 0xF6, 0x8B, 0x8B, 0x97, 0xE9, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x21, 0xB7, 0x0D, 0xFC, 0x15, 0x54, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x83, 0x1C, 0xA4, 0xCD, 0x6B, 0x9D, 0xF2 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x26, 0xBE, 0x6D, 0x6D, 0xF2, 0x38, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6C, 0x31, 0xA7, 0x49, 0x50, 0x3A, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x99, 0xC6, 0xF5, 0xD2, 0xC2, 0x30, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE4, 0xF6, 0x8B, 0x8B, 0x97, 0xE9, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x21, 0xB7, 0x0D, 0xFC, 0x15, 0x54, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x83, 0x1C, 0xA4, 0xCD, 0x6B, 0x9D, 0xF2), }; static const mbedtls_mpi_uint secp384r1_T_27_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xE8, 0x4C, 0x48, 0xE4, 0xAA, 0x69, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x7A, 0x27, 0xFC, 0x37, 0x96, 0x1A, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0xE7, 0x30, 0xA5, 0xCF, 0x13, 0x46, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0xD8, 0xAF, 0x74, 0x23, 0x4D, 0x56, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x3D, 0x44, 0x14, 0x1B, 0x97, 0x83, 0xF0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x47, 0xD7, 0x5F, 0xFD, 0x98, 0x38, 0xF7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE8, 0x4C, 0x48, 0xE4, 0xAA, 0x69, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x7A, 0x27, 0xFC, 0x37, 0x96, 0x1A, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xE7, 0x30, 0xA5, 0xCF, 0x13, 0x46, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xD8, 0xAF, 0x74, 0x23, 0x4D, 0x56, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3D, 0x44, 0x14, 0x1B, 0x97, 0x83, 0xF0), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x47, 0xD7, 0x5F, 0xFD, 0x98, 0x38, 0xF7), }; static const mbedtls_mpi_uint secp384r1_T_27_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x73, 0x64, 0x36, 0xFD, 0x7B, 0xC1, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0x5D, 0x32, 0xD2, 0x47, 0x94, 0x89, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xE9, 0x30, 0xAC, 0x06, 0xC8, 0x65, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x6C, 0xB9, 0x1B, 0xF7, 0x61, 0x49, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0xFF, 0x32, 0x43, 0x80, 0xDA, 0xA6, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xF8, 0x04, 0x01, 0x95, 0x35, 0xCE, 0x21 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x73, 0x64, 0x36, 0xFD, 0x7B, 0xC1, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x5D, 0x32, 0xD2, 0x47, 0x94, 0x89, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xE9, 0x30, 0xAC, 0x06, 0xC8, 0x65, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x6C, 0xB9, 0x1B, 0xF7, 0x61, 0x49, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xFF, 0x32, 0x43, 0x80, 0xDA, 0xA6, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF8, 0x04, 0x01, 0x95, 0x35, 0xCE, 0x21), }; static const mbedtls_mpi_uint secp384r1_T_28_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x06, 0x46, 0x0D, 0x51, 0xE2, 0xD8, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0x57, 0x1D, 0x6F, 0x79, 0xA0, 0xCD, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0xFB, 0x36, 0xCA, 0xAD, 0xF5, 0x9E, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x7A, 0x1D, 0x9E, 0x1D, 0x95, 0x48, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x26, 0xA5, 0xB7, 0x15, 0x2C, 0xC2, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x42, 0x72, 0xAA, 0x11, 0xDC, 0xC9, 0xB6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x06, 0x46, 0x0D, 0x51, 0xE2, 0xD8, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x57, 0x1D, 0x6F, 0x79, 0xA0, 0xCD, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xFB, 0x36, 0xCA, 0xAD, 0xF5, 0x9E, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x7A, 0x1D, 0x9E, 0x1D, 0x95, 0x48, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x26, 0xA5, 0xB7, 0x15, 0x2C, 0xC2, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x42, 0x72, 0xAA, 0x11, 0xDC, 0xC9, 0xB6), }; static const mbedtls_mpi_uint secp384r1_T_28_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x6C, 0x64, 0xA7, 0x62, 0x3C, 0xAB, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0x6A, 0x44, 0xD8, 0x60, 0xC0, 0xA8, 0x80 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x76, 0x58, 0x12, 0x57, 0x3C, 0x89, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x4F, 0x83, 0xCE, 0xCB, 0xB8, 0xD0, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x84, 0x04, 0xB0, 0xAD, 0xEB, 0xFA, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xA4, 0xC3, 0x41, 0x44, 0x4E, 0x65, 0x3E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x6C, 0x64, 0xA7, 0x62, 0x3C, 0xAB, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x6A, 0x44, 0xD8, 0x60, 0xC0, 0xA8, 0x80), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x76, 0x58, 0x12, 0x57, 0x3C, 0x89, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x4F, 0x83, 0xCE, 0xCB, 0xB8, 0xD0, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0x04, 0xB0, 0xAD, 0xEB, 0xFA, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA4, 0xC3, 0x41, 0x44, 0x4E, 0x65, 0x3E), }; static const mbedtls_mpi_uint secp384r1_T_29_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x16, 0xA9, 0x1C, 0xE7, 0x65, 0x20, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x53, 0x32, 0xF8, 0xC0, 0xA6, 0xBD, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xF0, 0xE6, 0x57, 0x31, 0xCC, 0x26, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0xE3, 0x54, 0x1C, 0x34, 0xD3, 0x17, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xAE, 0xED, 0xFB, 0xCD, 0xE7, 0x1E, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x16, 0x1C, 0x34, 0x40, 0x00, 0x1F, 0xB6 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x16, 0xA9, 0x1C, 0xE7, 0x65, 0x20, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x53, 0x32, 0xF8, 0xC0, 0xA6, 0xBD, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xF0, 0xE6, 0x57, 0x31, 0xCC, 0x26, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xE3, 0x54, 0x1C, 0x34, 0xD3, 0x17, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xAE, 0xED, 0xFB, 0xCD, 0xE7, 0x1E, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x16, 0x1C, 0x34, 0x40, 0x00, 0x1F, 0xB6), }; static const mbedtls_mpi_uint secp384r1_T_29_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x32, 0x00, 0xC2, 0xD4, 0x3B, 0x1A, 0x09 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xE0, 0x99, 0x8F, 0x0C, 0x4A, 0x16, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x73, 0x18, 0x1B, 0xD4, 0x94, 0x29, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0xA4, 0x2D, 0xB1, 0x9D, 0x74, 0x32, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0xF4, 0xB1, 0x0C, 0x37, 0x62, 0x8B, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xFF, 0xDA, 0xE2, 0x35, 0xA3, 0xB6, 0x42 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x32, 0x00, 0xC2, 0xD4, 0x3B, 0x1A, 0x09), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xE0, 0x99, 0x8F, 0x0C, 0x4A, 0x16, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x73, 0x18, 0x1B, 0xD4, 0x94, 0x29, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA4, 0x2D, 0xB1, 0x9D, 0x74, 0x32, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0xF4, 0xB1, 0x0C, 0x37, 0x62, 0x8B, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xFF, 0xDA, 0xE2, 0x35, 0xA3, 0xB6, 0x42), }; static const mbedtls_mpi_uint secp384r1_T_30_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x49, 0x99, 0x65, 0xC5, 0xED, 0x16, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0x42, 0x9A, 0xF3, 0xA7, 0x4E, 0x6F, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x0A, 0x7E, 0xC0, 0xD7, 0x4E, 0x07, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x7A, 0x31, 0x69, 0xA6, 0xB9, 0x15, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0xE0, 0x72, 0xA4, 0x3F, 0xB9, 0xF8, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0x75, 0x32, 0x85, 0xA2, 0xDE, 0x37, 0x12 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x49, 0x99, 0x65, 0xC5, 0xED, 0x16, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x42, 0x9A, 0xF3, 0xA7, 0x4E, 0x6F, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x0A, 0x7E, 0xC0, 0xD7, 0x4E, 0x07, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x7A, 0x31, 0x69, 0xA6, 0xB9, 0x15, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xE0, 0x72, 0xA4, 0x3F, 0xB9, 0xF8, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x75, 0x32, 0x85, 0xA2, 0xDE, 0x37, 0x12), }; static const mbedtls_mpi_uint secp384r1_T_30_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xC0, 0x0D, 0xCF, 0x25, 0x41, 0xA4, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0xFC, 0xB2, 0x48, 0xC3, 0x85, 0x83, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0xBE, 0x0B, 0x58, 0x2D, 0x7A, 0x9A, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0xF3, 0x81, 0x18, 0x1B, 0x74, 0x4F, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0x43, 0xA3, 0x0A, 0x16, 0x8B, 0xA3, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x18, 0x81, 0x7B, 0x8D, 0xA2, 0x35, 0x77 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC0, 0x0D, 0xCF, 0x25, 0x41, 0xA4, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xFC, 0xB2, 0x48, 0xC3, 0x85, 0x83, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBE, 0x0B, 0x58, 0x2D, 0x7A, 0x9A, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xF3, 0x81, 0x18, 0x1B, 0x74, 0x4F, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x43, 0xA3, 0x0A, 0x16, 0x8B, 0xA3, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x18, 0x81, 0x7B, 0x8D, 0xA2, 0x35, 0x77), }; static const mbedtls_mpi_uint secp384r1_T_31_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xC4, 0x3F, 0x2C, 0xE7, 0x5F, 0x99, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x2B, 0xB7, 0xB6, 0xAD, 0x5A, 0x56, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x00, 0xA4, 0x48, 0xC8, 0xE8, 0xBA, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0xA1, 0xB5, 0x13, 0x5A, 0xCD, 0x99, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x95, 0xAD, 0xFC, 0xE2, 0x7E, 0xE7, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x6B, 0xD1, 0x34, 0x99, 0x53, 0x63, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xC4, 0x3F, 0x2C, 0xE7, 0x5F, 0x99, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2B, 0xB7, 0xB6, 0xAD, 0x5A, 0x56, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x00, 0xA4, 0x48, 0xC8, 0xE8, 0xBA, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xA1, 0xB5, 0x13, 0x5A, 0xCD, 0x99, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x95, 0xAD, 0xFC, 0xE2, 0x7E, 0xE7, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x6B, 0xD1, 0x34, 0x99, 0x53, 0x63, 0x0B), }; static const mbedtls_mpi_uint secp384r1_T_31_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x8A, 0x77, 0x5D, 0x2B, 0xAB, 0x01, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x85, 0xD0, 0xD5, 0x49, 0x83, 0x4D, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0xC6, 0x91, 0x30, 0x3B, 0x00, 0xAF, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0xAE, 0x61, 0x07, 0xE1, 0xB6, 0xE2, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x43, 0x41, 0xFE, 0x9B, 0xB6, 0xF0, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x97, 0xAE, 0xAD, 0x89, 0x88, 0x9E, 0x41 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x8A, 0x77, 0x5D, 0x2B, 0xAB, 0x01, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x85, 0xD0, 0xD5, 0x49, 0x83, 0x4D, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xC6, 0x91, 0x30, 0x3B, 0x00, 0xAF, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xAE, 0x61, 0x07, 0xE1, 0xB6, 0xE2, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x43, 0x41, 0xFE, 0x9B, 0xB6, 0xF0, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x97, 0xAE, 0xAD, 0x89, 0x88, 0x9E, 0x41), }; static const mbedtls_ecp_point secp384r1_T[32] = { ECP_POINT_INIT_XY_Z1(secp384r1_T_0_X, secp384r1_T_0_Y), @@ -1386,764 +1386,764 @@ static const mbedtls_ecp_point secp384r1_T[32] = { */ #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) static const mbedtls_mpi_uint secp521r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_2( 0xFF, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01), }; static const mbedtls_mpi_uint secp521r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x3F, 0x50, 0x6B, 0xD4, 0x1F, 0x45, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x34, 0x2C, 0x3D, 0x88, 0xDF, 0x73, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xBF, 0xB1, 0x3B, 0xBD, 0xC0, 0x52, 0x16 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x93, 0x7E, 0xEC, 0x51, 0x39, 0x19, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x09, 0xF1, 0x8E, 0x91, 0x89, 0xB4, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x15, 0xB3, 0x99, 0x5B, 0x72, 0xDA, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0x40, 0x85, 0xB6, 0xA0, 0x21, 0x9A, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x9A, 0x1C, 0x8E, 0x61, 0xB9, 0x3E, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_2( 0x51, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x3F, 0x50, 0x6B, 0xD4, 0x1F, 0x45, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x34, 0x2C, 0x3D, 0x88, 0xDF, 0x73, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBF, 0xB1, 0x3B, 0xBD, 0xC0, 0x52, 0x16), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x93, 0x7E, 0xEC, 0x51, 0x39, 0x19, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x09, 0xF1, 0x8E, 0x91, 0x89, 0xB4, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x15, 0xB3, 0x99, 0x5B, 0x72, 0xDA, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x40, 0x85, 0xB6, 0xA0, 0x21, 0x9A, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x9A, 0x1C, 0x8E, 0x61, 0xB9, 0x3E, 0x95), + MBEDTLS_BYTES_TO_T_UINT_2(0x51, 0x00), }; static const mbedtls_mpi_uint secp521r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_2( 0xC6, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85), + MBEDTLS_BYTES_TO_T_UINT_2(0xC6, 0x00), }; static const mbedtls_mpi_uint secp521r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_2( 0x18, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39), + MBEDTLS_BYTES_TO_T_UINT_2(0x18, 0x01), }; static const mbedtls_mpi_uint secp521r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x64, 0x38, 0x91, 0x1E, 0xB7, 0x6F, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x47, 0x9C, 0x89, 0xB8, 0xC9, 0xB5, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0xA5, 0x09, 0xF7, 0x48, 0x01, 0xCC, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x96, 0x2F, 0xBF, 0x83, 0x87, 0x86, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_2( 0xFF, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x64, 0x38, 0x91, 0x1E, 0xB7, 0x6F, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x47, 0x9C, 0x89, 0xB8, 0xC9, 0xB5, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0xA5, 0x09, 0xF7, 0x48, 0x01, 0xCC, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x96, 0x2F, 0xBF, 0x83, 0x87, 0x86, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_2(0xFF, 0x01), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp521r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xBD, 0xE5, 0xC2, 0x31, 0x7E, 0x7E, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x42, 0x6A, 0x85, 0xC1, 0xB3, 0x48, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0xA8, 0xFF, 0xA2, 0x27, 0xC1, 0x1D, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x59, 0xE7, 0xEF, 0x77, 0x5E, 0x4B, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x3D, 0x4D, 0x6B, 0x60, 0xAF, 0x28, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xB5, 0x3F, 0x05, 0x39, 0x81, 0x64, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xB4, 0x95, 0x23, 0x66, 0xCB, 0x3E, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xE9, 0x04, 0x04, 0xB7, 0x06, 0x8E, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x66, 0xD1, 0x9F, 0x76, 0x94, 0xBE, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC2, 0x72, 0xA2, 0x86, 0x70, 0x3C, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0xAD, 0x3F, 0x01, 0xB9, 0x50, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x26, 0xF4, 0x5E, 0x99, 0x72, 0xEE, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0x3E, 0x27, 0x17, 0xBD, 0xAF, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x44, 0x9B, 0x57, 0x49, 0x44, 0xF5, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x1B, 0x7D, 0x2C, 0xB4, 0x5F, 0x8A, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xC0, 0x3B, 0x9A, 0x78, 0x6A, 0x29, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xB1, 0x2D, 0xEB, 0x27, 0x2F, 0xE8, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x4B, 0x44, 0x25, 0xDB, 0x5C, 0x5F, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x85, 0x28, 0x78, 0x2E, 0x75, 0x34, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0x57, 0x0F, 0x73, 0x78, 0x7A, 0xE3, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xD8, 0xEC, 0xDC, 0xDA, 0x04, 0xAD, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x8A, 0x09, 0xF3, 0x58, 0x79, 0xD8, 0x29 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x03, 0xCB, 0x50, 0x1A, 0x7F, 0x56, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xA6, 0x78, 0x38, 0x85, 0x67, 0x0B, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xB1, 0x2D, 0xEB, 0x27, 0x2F, 0xE8, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x4B, 0x44, 0x25, 0xDB, 0x5C, 0x5F, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x85, 0x28, 0x78, 0x2E, 0x75, 0x34, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x57, 0x0F, 0x73, 0x78, 0x7A, 0xE3, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD8, 0xEC, 0xDC, 0xDA, 0x04, 0xAD, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x8A, 0x09, 0xF3, 0x58, 0x79, 0xD8, 0x29), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x03, 0xCB, 0x50, 0x1A, 0x7F, 0x56, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA6, 0x78, 0x38, 0x85, 0x67, 0x0B, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0xD5, 0xD2, 0x22, 0xC4, 0x00, 0x3B, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x93, 0x0E, 0x7B, 0x85, 0x51, 0xC3, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xA6, 0x5F, 0x54, 0x49, 0x02, 0x81, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0xE9, 0x6B, 0x3A, 0x92, 0xE7, 0x72, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x5F, 0x28, 0x9E, 0x91, 0x27, 0x88, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x28, 0x31, 0xB3, 0x84, 0xCA, 0x12, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xF9, 0xAC, 0x22, 0x10, 0x0A, 0x64, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0xC6, 0x33, 0x1F, 0x69, 0x19, 0x18, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xD5, 0xD2, 0x22, 0xC4, 0x00, 0x3B, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x93, 0x0E, 0x7B, 0x85, 0x51, 0xC3, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA6, 0x5F, 0x54, 0x49, 0x02, 0x81, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xE9, 0x6B, 0x3A, 0x92, 0xE7, 0x72, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x5F, 0x28, 0x9E, 0x91, 0x27, 0x88, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x28, 0x31, 0xB3, 0x84, 0xCA, 0x12, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xF9, 0xAC, 0x22, 0x10, 0x0A, 0x64, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xC6, 0x33, 0x1F, 0x69, 0x19, 0x18, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x48, 0xB8, 0xC7, 0x37, 0x5A, 0x00, 0x36 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xCC, 0x32, 0xE0, 0xEE, 0x03, 0xC2, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x29, 0xC2, 0xE4, 0x6E, 0x24, 0x20, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x6B, 0x7F, 0x7B, 0xF9, 0xB0, 0xB8, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x7B, 0x3C, 0xE1, 0x19, 0xA1, 0x23, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xE3, 0xC2, 0x53, 0xC0, 0x07, 0x13, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xFE, 0x36, 0x35, 0x9F, 0x5E, 0x59, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x55, 0x89, 0x84, 0xBC, 0xEF, 0xA2, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x48, 0xB8, 0xC7, 0x37, 0x5A, 0x00, 0x36), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xCC, 0x32, 0xE0, 0xEE, 0x03, 0xC2, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x29, 0xC2, 0xE4, 0x6E, 0x24, 0x20, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x6B, 0x7F, 0x7B, 0xF9, 0xB0, 0xB8, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x7B, 0x3C, 0xE1, 0x19, 0xA1, 0x23, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE3, 0xC2, 0x53, 0xC0, 0x07, 0x13, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFE, 0x36, 0x35, 0x9F, 0x5E, 0x59, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x55, 0x89, 0x84, 0xBC, 0xEF, 0xA2, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0x1A, 0x08, 0x67, 0xB4, 0xE7, 0x22, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x26, 0xDF, 0x81, 0x3C, 0x5F, 0x1C, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x4D, 0xD0, 0x0A, 0x48, 0x06, 0xF4, 0x48 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x18, 0x39, 0xF7, 0xD1, 0x20, 0x77, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0x8F, 0x44, 0x13, 0xCB, 0x78, 0x11, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0xE2, 0x49, 0xEA, 0x43, 0x79, 0x08, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0xD1, 0xD8, 0x73, 0x2C, 0x71, 0x2F, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xE5, 0xE7, 0xF4, 0x46, 0xAB, 0x20, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x1A, 0x08, 0x67, 0xB4, 0xE7, 0x22, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x26, 0xDF, 0x81, 0x3C, 0x5F, 0x1C, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x4D, 0xD0, 0x0A, 0x48, 0x06, 0xF4, 0x48), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x18, 0x39, 0xF7, 0xD1, 0x20, 0x77, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x8F, 0x44, 0x13, 0xCB, 0x78, 0x11, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE2, 0x49, 0xEA, 0x43, 0x79, 0x08, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xD1, 0xD8, 0x73, 0x2C, 0x71, 0x2F, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE5, 0xE7, 0xF4, 0x46, 0xAB, 0x20, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0x0B, 0xB9, 0x71, 0x1A, 0x27, 0xB7, 0xA7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xA2, 0x2C, 0xD1, 0xDA, 0xBC, 0xC1, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xA3, 0x10, 0x1F, 0x90, 0xF2, 0xA5, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0xFB, 0x20, 0xF4, 0xC0, 0x70, 0xC0, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0xA7, 0x99, 0xF0, 0xA5, 0xD3, 0x09, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0xE8, 0x14, 0x39, 0xBE, 0xCB, 0x60, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0xD6, 0x14, 0xA9, 0xC9, 0x20, 0xC3, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xA8, 0x5B, 0xFD, 0x2D, 0x96, 0xBC, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x0B, 0xB9, 0x71, 0x1A, 0x27, 0xB7, 0xA7), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xA2, 0x2C, 0xD1, 0xDA, 0xBC, 0xC1, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xA3, 0x10, 0x1F, 0x90, 0xF2, 0xA5, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xFB, 0x20, 0xF4, 0xC0, 0x70, 0xC0, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xA7, 0x99, 0xF0, 0xA5, 0xD3, 0x09, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xE8, 0x14, 0x39, 0xBE, 0xCB, 0x60, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD6, 0x14, 0xA9, 0xC9, 0x20, 0xC3, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x5B, 0xFD, 0x2D, 0x96, 0xBC, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x04, 0x45, 0xBE, 0xCE, 0x75, 0x95, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0xDA, 0x58, 0x49, 0x35, 0x09, 0x8D, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0xF0, 0xC0, 0x36, 0xF2, 0xA6, 0x2D, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0xFC, 0x3D, 0xA8, 0xFB, 0x3C, 0xD2, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x4D, 0x71, 0x09, 0x18, 0x42, 0xF0, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xC1, 0xCE, 0x9E, 0x6A, 0x49, 0x60, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xB1, 0x00, 0xF7, 0xA1, 0x7A, 0x31, 0xB4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xC3, 0x86, 0xCD, 0x20, 0x4A, 0x17, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x04, 0x45, 0xBE, 0xCE, 0x75, 0x95, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xDA, 0x58, 0x49, 0x35, 0x09, 0x8D, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xF0, 0xC0, 0x36, 0xF2, 0xA6, 0x2D, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFC, 0x3D, 0xA8, 0xFB, 0x3C, 0xD2, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x4D, 0x71, 0x09, 0x18, 0x42, 0xF0, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xC1, 0xCE, 0x9E, 0x6A, 0x49, 0x60, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xB1, 0x00, 0xF7, 0xA1, 0x7A, 0x31, 0xB4), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xC3, 0x86, 0xCD, 0x20, 0x4A, 0x17, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0xAB, 0x8B, 0x47, 0x8D, 0xAA, 0xA6, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x97, 0xF0, 0xBC, 0x2D, 0xDC, 0x9D, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x86, 0xB0, 0x74, 0xB2, 0xF4, 0xF6, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xBD, 0xAC, 0xE3, 0x8F, 0x43, 0x5C, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0xC3, 0xE2, 0x6E, 0x25, 0x49, 0xCD, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x5E, 0x08, 0xB3, 0xB9, 0xAC, 0x5F, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xB7, 0xD1, 0xF4, 0xDC, 0x19, 0xE9, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0xE4, 0xFA, 0xE1, 0x36, 0x3E, 0xED, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xAB, 0x8B, 0x47, 0x8D, 0xAA, 0xA6, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x97, 0xF0, 0xBC, 0x2D, 0xDC, 0x9D, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x86, 0xB0, 0x74, 0xB2, 0xF4, 0xF6, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBD, 0xAC, 0xE3, 0x8F, 0x43, 0x5C, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xC3, 0xE2, 0x6E, 0x25, 0x49, 0xCD, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5E, 0x08, 0xB3, 0xB9, 0xAC, 0x5F, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xB7, 0xD1, 0xF4, 0xDC, 0x19, 0xE9, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xE4, 0xFA, 0xE1, 0x36, 0x3E, 0xED, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x67, 0x92, 0x84, 0x6E, 0x48, 0x03, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x95, 0xEF, 0x8F, 0xB2, 0x82, 0x6B, 0x1C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xFA, 0xB9, 0x55, 0x23, 0xFE, 0x09, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x79, 0x85, 0x4B, 0x0E, 0xD4, 0x35, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x27, 0x45, 0x81, 0xE0, 0x88, 0x52, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x63, 0xA2, 0x4B, 0xBC, 0x5D, 0xB1, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x8C, 0x83, 0xD9, 0x3E, 0xD3, 0x42, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x03, 0x3A, 0x31, 0xBA, 0xE9, 0x3A, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x67, 0x92, 0x84, 0x6E, 0x48, 0x03, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x95, 0xEF, 0x8F, 0xB2, 0x82, 0x6B, 0x1C), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFA, 0xB9, 0x55, 0x23, 0xFE, 0x09, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x79, 0x85, 0x4B, 0x0E, 0xD4, 0x35, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x27, 0x45, 0x81, 0xE0, 0x88, 0x52, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x63, 0xA2, 0x4B, 0xBC, 0x5D, 0xB1, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x8C, 0x83, 0xD9, 0x3E, 0xD3, 0x42, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x03, 0x3A, 0x31, 0xBA, 0xE9, 0x3A, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0x10, 0xCD, 0x2D, 0x00, 0xFE, 0x32, 0xA7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x6E, 0x1F, 0xDA, 0xF8, 0x6F, 0x4D, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x79, 0x7D, 0x09, 0xE5, 0xD3, 0x03, 0x21 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0xC3, 0xBE, 0xDF, 0x07, 0x65, 0x49, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x57, 0x33, 0xEF, 0xAE, 0x4F, 0x04, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0xE9, 0x9B, 0xFE, 0xBF, 0xE6, 0x85, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0xBA, 0xAA, 0x06, 0xC4, 0xC6, 0xB8, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0x83, 0x01, 0xA9, 0xF6, 0x51, 0xE7, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x10, 0xCD, 0x2D, 0x00, 0xFE, 0x32, 0xA7), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x6E, 0x1F, 0xDA, 0xF8, 0x6F, 0x4D, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x79, 0x7D, 0x09, 0xE5, 0xD3, 0x03, 0x21), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC3, 0xBE, 0xDF, 0x07, 0x65, 0x49, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x57, 0x33, 0xEF, 0xAE, 0x4F, 0x04, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xE9, 0x9B, 0xFE, 0xBF, 0xE6, 0x85, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xBA, 0xAA, 0x06, 0xC4, 0xC6, 0xB8, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x83, 0x01, 0xA9, 0xF6, 0x51, 0xE7, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xA6, 0x15, 0x8E, 0xAB, 0x1F, 0x10, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x08, 0x27, 0x1A, 0xA1, 0x21, 0xAD, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x09, 0x90, 0x6E, 0x50, 0x90, 0x9A, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x9A, 0xFE, 0xD7, 0xA1, 0xF5, 0xA2, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x7D, 0xE3, 0xDC, 0x21, 0xFB, 0xA4, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xBF, 0x07, 0xFF, 0x45, 0xDF, 0x51, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x5C, 0x34, 0x02, 0x62, 0x9B, 0x08, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xCE, 0x9A, 0x6A, 0xEC, 0x75, 0xF6, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xA6, 0x15, 0x8E, 0xAB, 0x1F, 0x10, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x08, 0x27, 0x1A, 0xA1, 0x21, 0xAD, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x09, 0x90, 0x6E, 0x50, 0x90, 0x9A, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x9A, 0xFE, 0xD7, 0xA1, 0xF5, 0xA2, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x7D, 0xE3, 0xDC, 0x21, 0xFB, 0xA4, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBF, 0x07, 0xFF, 0x45, 0xDF, 0x51, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x5C, 0x34, 0x02, 0x62, 0x9B, 0x08, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xCE, 0x9A, 0x6A, 0xEC, 0x75, 0xF6, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x59, 0xF4, 0x78, 0x3C, 0x60, 0xB1, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x37, 0x84, 0x6A, 0xDC, 0xF2, 0x9A, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x9A, 0x9A, 0x15, 0x36, 0xE0, 0x2B, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x38, 0x9C, 0x50, 0x3D, 0x1E, 0x37, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x79, 0xF0, 0x92, 0xF2, 0x8B, 0x18, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xE0, 0x82, 0x1E, 0x80, 0x82, 0x4B, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xBB, 0x59, 0x6B, 0x8A, 0x77, 0x41, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0xF9, 0xD4, 0xB8, 0x4A, 0x82, 0xCF, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x59, 0xF4, 0x78, 0x3C, 0x60, 0xB1, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x37, 0x84, 0x6A, 0xDC, 0xF2, 0x9A, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9A, 0x9A, 0x15, 0x36, 0xE0, 0x2B, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x38, 0x9C, 0x50, 0x3D, 0x1E, 0x37, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x79, 0xF0, 0x92, 0xF2, 0x8B, 0x18, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE0, 0x82, 0x1E, 0x80, 0x82, 0x4B, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xBB, 0x59, 0x6B, 0x8A, 0x77, 0x41, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xF9, 0xD4, 0xB8, 0x4A, 0x82, 0xCF, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x8C, 0xC8, 0x9B, 0x72, 0x9E, 0xF7, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0xCE, 0xE9, 0x77, 0x0A, 0x19, 0x59, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0xA1, 0x41, 0x6A, 0x72, 0x4B, 0xB4, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x35, 0x43, 0xE2, 0x8C, 0xBE, 0x0D, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0xEB, 0xAD, 0xF3, 0xA9, 0xA6, 0x68, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x2F, 0xE2, 0x48, 0x0C, 0xDB, 0x1F, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0x1E, 0x60, 0x9B, 0x2A, 0xD2, 0xC1, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x64, 0xB5, 0xD2, 0xF6, 0xF6, 0x6E, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x8C, 0xC8, 0x9B, 0x72, 0x9E, 0xF7, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xCE, 0xE9, 0x77, 0x0A, 0x19, 0x59, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xA1, 0x41, 0x6A, 0x72, 0x4B, 0xB4, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x35, 0x43, 0xE2, 0x8C, 0xBE, 0x0D, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xEB, 0xAD, 0xF3, 0xA9, 0xA6, 0x68, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2F, 0xE2, 0x48, 0x0C, 0xDB, 0x1F, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x1E, 0x60, 0x9B, 0x2A, 0xD2, 0xC1, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x64, 0xB5, 0xD2, 0xF6, 0xF6, 0x6E, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x3D, 0x30, 0x78, 0x10, 0x18, 0x41, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x1D, 0x1C, 0xE0, 0x6D, 0x83, 0xD1, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x03, 0x0B, 0xF5, 0x2F, 0x6C, 0x04, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x3E, 0xD5, 0xFC, 0x31, 0x5B, 0x3A, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x82, 0x2F, 0xFB, 0xFE, 0xF8, 0x76, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0x26, 0xDA, 0x9C, 0x36, 0xF5, 0x93, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4C, 0xE7, 0x6E, 0xD2, 0x7D, 0x81, 0x09, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x03, 0xF9, 0x58, 0x48, 0x24, 0xA2, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x3D, 0x30, 0x78, 0x10, 0x18, 0x41, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x1D, 0x1C, 0xE0, 0x6D, 0x83, 0xD1, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x03, 0x0B, 0xF5, 0x2F, 0x6C, 0x04, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x3E, 0xD5, 0xFC, 0x31, 0x5B, 0x3A, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x82, 0x2F, 0xFB, 0xFE, 0xF8, 0x76, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x26, 0xDA, 0x9C, 0x36, 0xF5, 0x93, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xE7, 0x6E, 0xD2, 0x7D, 0x81, 0x09, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x03, 0xF9, 0x58, 0x48, 0x24, 0xA2, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x79, 0x0C, 0x8E, 0x6B, 0x95, 0xF3, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x10, 0x5C, 0x87, 0x03, 0x39, 0xCF, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xF0, 0xF7, 0xC1, 0x07, 0xA4, 0xF4, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0xE8, 0x02, 0x89, 0x65, 0xC4, 0x72, 0x36 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x88, 0xEA, 0x96, 0x67, 0x0B, 0x5D, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x75, 0x60, 0xA8, 0xBD, 0x74, 0xDF, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0xE5, 0x71, 0x50, 0x67, 0xD0, 0xD2, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0xFC, 0xE5, 0xC7, 0x77, 0xB0, 0x7F, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x79, 0x0C, 0x8E, 0x6B, 0x95, 0xF3, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x10, 0x5C, 0x87, 0x03, 0x39, 0xCF, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xF0, 0xF7, 0xC1, 0x07, 0xA4, 0xF4, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE8, 0x02, 0x89, 0x65, 0xC4, 0x72, 0x36), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x88, 0xEA, 0x96, 0x67, 0x0B, 0x5D, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x75, 0x60, 0xA8, 0xBD, 0x74, 0xDF, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xE5, 0x71, 0x50, 0x67, 0xD0, 0xD2, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFC, 0xE5, 0xC7, 0x77, 0xB0, 0x7F, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x86, 0x69, 0xCD, 0x0D, 0x9A, 0xBD, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x17, 0xBC, 0xBB, 0x59, 0x85, 0x7D, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xA8, 0x76, 0xAC, 0x80, 0xA9, 0x72, 0xE0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x78, 0xC1, 0xE2, 0x4D, 0xAF, 0xF9, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x97, 0x8E, 0x74, 0xC4, 0x4B, 0xB2, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xD8, 0xF6, 0xF3, 0xAF, 0x2F, 0x52, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x57, 0xF4, 0xCE, 0xEE, 0x43, 0xED, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x46, 0x38, 0xDE, 0x20, 0xFD, 0x59, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x86, 0x69, 0xCD, 0x0D, 0x9A, 0xBD, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x17, 0xBC, 0xBB, 0x59, 0x85, 0x7D, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xA8, 0x76, 0xAC, 0x80, 0xA9, 0x72, 0xE0), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x78, 0xC1, 0xE2, 0x4D, 0xAF, 0xF9, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x97, 0x8E, 0x74, 0xC4, 0x4B, 0xB2, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD8, 0xF6, 0xF3, 0xAF, 0x2F, 0x52, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x57, 0xF4, 0xCE, 0xEE, 0x43, 0xED, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x46, 0x38, 0xDE, 0x20, 0xFD, 0x59, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x18, 0xE8, 0x58, 0xB9, 0x76, 0x2C, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x54, 0xE4, 0xFE, 0xC7, 0xBC, 0x31, 0x37 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xF8, 0x89, 0xEE, 0x70, 0xB5, 0xB0, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x22, 0x26, 0x9A, 0x53, 0xB9, 0x38, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xA7, 0x19, 0x8C, 0x74, 0x7E, 0x88, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xDA, 0x0A, 0xE8, 0xDA, 0xA5, 0xBE, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0x5C, 0xF7, 0xB1, 0x0C, 0x72, 0xFB, 0x09 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0xE2, 0x23, 0xE7, 0x46, 0xB7, 0xE0, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x18, 0xE8, 0x58, 0xB9, 0x76, 0x2C, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x54, 0xE4, 0xFE, 0xC7, 0xBC, 0x31, 0x37), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF8, 0x89, 0xEE, 0x70, 0xB5, 0xB0, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x22, 0x26, 0x9A, 0x53, 0xB9, 0x38, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xA7, 0x19, 0x8C, 0x74, 0x7E, 0x88, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xDA, 0x0A, 0xE8, 0xDA, 0xA5, 0xBE, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x5C, 0xF7, 0xB1, 0x0C, 0x72, 0xFB, 0x09), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0xE2, 0x23, 0xE7, 0x46, 0xB7, 0xE0, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x36, 0xBC, 0xBD, 0x48, 0x11, 0x8E, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0xBB, 0xA1, 0xF7, 0x0B, 0x9E, 0xBF, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x28, 0xE1, 0xA2, 0x8F, 0xFC, 0xFC, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0xFE, 0x19, 0x0A, 0xE5, 0xE7, 0x69, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0xCD, 0x12, 0xF5, 0xBE, 0xD3, 0x04, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xA8, 0x0D, 0x81, 0x59, 0xC4, 0x79, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0xF3, 0x4B, 0x92, 0x65, 0xC3, 0x31, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0xB5, 0x4F, 0x4D, 0x91, 0xD4, 0xE2, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x36, 0xBC, 0xBD, 0x48, 0x11, 0x8E, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xBB, 0xA1, 0xF7, 0x0B, 0x9E, 0xBF, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x28, 0xE1, 0xA2, 0x8F, 0xFC, 0xFC, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xFE, 0x19, 0x0A, 0xE5, 0xE7, 0x69, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xCD, 0x12, 0xF5, 0xBE, 0xD3, 0x04, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA8, 0x0D, 0x81, 0x59, 0xC4, 0x79, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xF3, 0x4B, 0x92, 0x65, 0xC3, 0x31, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xB5, 0x4F, 0x4D, 0x91, 0xD4, 0xE2, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x09, 0x41, 0x79, 0x1D, 0x4D, 0x0D, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x31, 0x18, 0xBA, 0xA0, 0xF2, 0x6E, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x5B, 0x4D, 0x4F, 0xAF, 0xC9, 0x8C, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0x99, 0x9C, 0x06, 0x68, 0xDE, 0xD8, 0x29 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x04, 0xE1, 0xB5, 0x9D, 0x00, 0xBC, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x95, 0x92, 0x8D, 0x72, 0xD3, 0x37, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x4B, 0x27, 0xA2, 0xE8, 0xA4, 0x26, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x45, 0x9C, 0xA9, 0xCB, 0x9F, 0xBA, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x09, 0x41, 0x79, 0x1D, 0x4D, 0x0D, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x31, 0x18, 0xBA, 0xA0, 0xF2, 0x6E, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x5B, 0x4D, 0x4F, 0xAF, 0xC9, 0x8C, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x9C, 0x06, 0x68, 0xDE, 0xD8, 0x29), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x04, 0xE1, 0xB5, 0x9D, 0x00, 0xBC, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x95, 0x92, 0x8D, 0x72, 0xD3, 0x37, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x4B, 0x27, 0xA2, 0xE8, 0xA4, 0x26, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x45, 0x9C, 0xA9, 0xCB, 0x9F, 0xBA, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x7E, 0x1B, 0x64, 0xF4, 0xE8, 0xA5, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x20, 0xA9, 0xCA, 0xF3, 0x89, 0xE5, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0xED, 0xFC, 0xAB, 0xD9, 0x0A, 0xB9, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x6F, 0x46, 0x7C, 0xCD, 0x78, 0xFF, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0xAB, 0x71, 0x5A, 0x94, 0xAB, 0x20, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x2E, 0xEE, 0x87, 0x57, 0x1F, 0xAD, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x4C, 0x3D, 0xFB, 0x7E, 0xA1, 0x8B, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0xCF, 0x07, 0x86, 0xBA, 0x53, 0x37, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x7E, 0x1B, 0x64, 0xF4, 0xE8, 0xA5, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x20, 0xA9, 0xCA, 0xF3, 0x89, 0xE5, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xED, 0xFC, 0xAB, 0xD9, 0x0A, 0xB9, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x6F, 0x46, 0x7C, 0xCD, 0x78, 0xFF, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAB, 0x71, 0x5A, 0x94, 0xAB, 0x20, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x2E, 0xEE, 0x87, 0x57, 0x1F, 0xAD, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x4C, 0x3D, 0xFB, 0x7E, 0xA1, 0x8B, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xCF, 0x07, 0x86, 0xBA, 0x53, 0x37, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x26, 0xB2, 0xB9, 0xE2, 0x91, 0xE3, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0xC9, 0x54, 0x84, 0x08, 0x3D, 0x0B, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xA8, 0x77, 0x2F, 0x64, 0x45, 0x99, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x96, 0x16, 0x1F, 0xDB, 0x96, 0x28, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x2B, 0x8D, 0xFF, 0xA2, 0x4F, 0x55, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0xE6, 0x48, 0xBD, 0x99, 0x3D, 0x12, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x84, 0x59, 0xDA, 0xB9, 0xB6, 0x66, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x78, 0x41, 0x92, 0xDF, 0xF4, 0x3F, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x26, 0xB2, 0xB9, 0xE2, 0x91, 0xE3, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xC9, 0x54, 0x84, 0x08, 0x3D, 0x0B, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xA8, 0x77, 0x2F, 0x64, 0x45, 0x99, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x96, 0x16, 0x1F, 0xDB, 0x96, 0x28, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x2B, 0x8D, 0xFF, 0xA2, 0x4F, 0x55, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xE6, 0x48, 0xBD, 0x99, 0x3D, 0x12, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x84, 0x59, 0xDA, 0xB9, 0xB6, 0x66, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x78, 0x41, 0x92, 0xDF, 0xF4, 0x3F, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x86, 0x6F, 0x4F, 0xBF, 0x67, 0xDF, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x2B, 0x1E, 0x5F, 0x00, 0xEA, 0xF6, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xB9, 0x6A, 0x89, 0xD8, 0xC0, 0xD7, 0xA7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x9A, 0x32, 0x23, 0xA0, 0x02, 0x91, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x7F, 0x6A, 0x15, 0x64, 0x6A, 0x8B, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x57, 0x82, 0x58, 0xA9, 0x56, 0xB5, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x50, 0x92, 0x60, 0xCC, 0x81, 0x24, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0x3D, 0xAD, 0xDA, 0xD9, 0x51, 0x3E, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x86, 0x6F, 0x4F, 0xBF, 0x67, 0xDF, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x2B, 0x1E, 0x5F, 0x00, 0xEA, 0xF6, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xB9, 0x6A, 0x89, 0xD8, 0xC0, 0xD7, 0xA7), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x9A, 0x32, 0x23, 0xA0, 0x02, 0x91, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x7F, 0x6A, 0x15, 0x64, 0x6A, 0x8B, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x57, 0x82, 0x58, 0xA9, 0x56, 0xB5, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x50, 0x92, 0x60, 0xCC, 0x81, 0x24, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x3D, 0xAD, 0xDA, 0xD9, 0x51, 0x3E, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0xFE, 0x8F, 0xB0, 0x0B, 0xDE, 0x2E, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0xD2, 0xBE, 0xEF, 0xAC, 0x76, 0x71, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0xE8, 0x72, 0x0B, 0xAC, 0xFE, 0xCA, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x5B, 0xC7, 0xFC, 0xE3, 0x3C, 0x7C, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x04, 0xA7, 0xB9, 0x9B, 0x93, 0xC0, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x48, 0x4B, 0x8E, 0x32, 0xC5, 0xF0, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x42, 0x07, 0xC1, 0xF2, 0xF1, 0x72, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x37, 0x54, 0x9C, 0x88, 0xD2, 0x62, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xFE, 0x8F, 0xB0, 0x0B, 0xDE, 0x2E, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xD2, 0xBE, 0xEF, 0xAC, 0x76, 0x71, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xE8, 0x72, 0x0B, 0xAC, 0xFE, 0xCA, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0xC7, 0xFC, 0xE3, 0x3C, 0x7C, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x04, 0xA7, 0xB9, 0x9B, 0x93, 0xC0, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x48, 0x4B, 0x8E, 0x32, 0xC5, 0xF0, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x42, 0x07, 0xC1, 0xF2, 0xF1, 0x72, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x37, 0x54, 0x9C, 0x88, 0xD2, 0x62, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x19, 0x8A, 0x89, 0x58, 0xA2, 0x0F, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0xCC, 0x4C, 0x97, 0x30, 0x66, 0x34, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x6A, 0x1E, 0x1F, 0xDB, 0xC9, 0x5E, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x4D, 0x49, 0xFF, 0x9B, 0x9C, 0xAC, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0xE4, 0x4B, 0xF2, 0xD4, 0x1A, 0xD2, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xDA, 0xE8, 0x61, 0x9F, 0xC8, 0x49, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xCB, 0xF2, 0x2D, 0x85, 0xF6, 0x8D, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xC5, 0xCD, 0x2C, 0x79, 0xC6, 0x0E, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x19, 0x8A, 0x89, 0x58, 0xA2, 0x0F, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xCC, 0x4C, 0x97, 0x30, 0x66, 0x34, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x6A, 0x1E, 0x1F, 0xDB, 0xC9, 0x5E, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x4D, 0x49, 0xFF, 0x9B, 0x9C, 0xAC, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xE4, 0x4B, 0xF2, 0xD4, 0x1A, 0xD2, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xDA, 0xE8, 0x61, 0x9F, 0xC8, 0x49, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xCB, 0xF2, 0x2D, 0x85, 0xF6, 0x8D, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xC5, 0xCD, 0x2C, 0x79, 0xC6, 0x0E, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x1D, 0x55, 0x0F, 0xF8, 0x22, 0x9F, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x56, 0xBA, 0xE7, 0x57, 0x32, 0xEC, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x9A, 0xC6, 0x4C, 0x09, 0xC4, 0x52, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x1E, 0x6F, 0xF4, 0x7D, 0x27, 0xDD, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x11, 0x16, 0xEC, 0x79, 0x83, 0xAD, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x4E, 0x92, 0x1F, 0x19, 0x7D, 0x65, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0xFF, 0x78, 0x15, 0x45, 0x63, 0x32, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x91, 0xD0, 0x78, 0x58, 0xDA, 0x50, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x1D, 0x55, 0x0F, 0xF8, 0x22, 0x9F, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x56, 0xBA, 0xE7, 0x57, 0x32, 0xEC, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x9A, 0xC6, 0x4C, 0x09, 0xC4, 0x52, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x1E, 0x6F, 0xF4, 0x7D, 0x27, 0xDD, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x11, 0x16, 0xEC, 0x79, 0x83, 0xAD, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x4E, 0x92, 0x1F, 0x19, 0x7D, 0x65, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xFF, 0x78, 0x15, 0x45, 0x63, 0x32, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x91, 0xD0, 0x78, 0x58, 0xDA, 0x50, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0xDE, 0x40, 0xF6, 0x41, 0xB4, 0x3B, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x8D, 0xE0, 0xE1, 0xA9, 0xF0, 0x35, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xD4, 0xBA, 0x7B, 0xCC, 0x1B, 0x3A, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x5A, 0x2E, 0x74, 0x47, 0x14, 0xC3, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0xF0, 0x8B, 0x06, 0x15, 0x8E, 0x0E, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0xD2, 0xEB, 0x97, 0x50, 0x7D, 0x31, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x93, 0x4C, 0xDB, 0x97, 0x79, 0x44, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0xA2, 0xA0, 0x0B, 0xC8, 0x3A, 0x8A, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xDE, 0x40, 0xF6, 0x41, 0xB4, 0x3B, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x8D, 0xE0, 0xE1, 0xA9, 0xF0, 0x35, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xD4, 0xBA, 0x7B, 0xCC, 0x1B, 0x3A, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x5A, 0x2E, 0x74, 0x47, 0x14, 0xC3, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xF0, 0x8B, 0x06, 0x15, 0x8E, 0x0E, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xD2, 0xEB, 0x97, 0x50, 0x7D, 0x31, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x93, 0x4C, 0xDB, 0x97, 0x79, 0x44, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xA2, 0xA0, 0x0B, 0xC8, 0x3A, 0x8A, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0x50, 0x92, 0x9E, 0x24, 0x1F, 0xCB, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x16, 0xC9, 0xC5, 0x3D, 0x5A, 0xAF, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0xE3, 0x97, 0xE4, 0xA8, 0x50, 0xF6, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x57, 0x97, 0x42, 0x78, 0x92, 0x49, 0x0D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0xEB, 0x62, 0x24, 0xFB, 0x8F, 0x32, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x0C, 0x36, 0x6E, 0x8F, 0xE8, 0xE8, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0xD3, 0x7C, 0xC7, 0x8D, 0x3F, 0x5C, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x64, 0x6A, 0x73, 0x10, 0x79, 0xB8, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x50, 0x92, 0x9E, 0x24, 0x1F, 0xCB, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x16, 0xC9, 0xC5, 0x3D, 0x5A, 0xAF, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xE3, 0x97, 0xE4, 0xA8, 0x50, 0xF6, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x57, 0x97, 0x42, 0x78, 0x92, 0x49, 0x0D), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEB, 0x62, 0x24, 0xFB, 0x8F, 0x32, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x0C, 0x36, 0x6E, 0x8F, 0xE8, 0xE8, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xD3, 0x7C, 0xC7, 0x8D, 0x3F, 0x5C, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x64, 0x6A, 0x73, 0x10, 0x79, 0xB8, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xF9, 0xEF, 0xA5, 0x20, 0x4A, 0x5C, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xF3, 0xF4, 0x49, 0x5B, 0x73, 0xAA, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0xF2, 0xEA, 0x0F, 0x00, 0xAD, 0x53, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0xB8, 0x66, 0xED, 0xC4, 0x2B, 0x4C, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x2F, 0xC1, 0x9A, 0x37, 0xD2, 0x7F, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0xA7, 0x81, 0x38, 0x64, 0xC9, 0x37, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x3B, 0x6C, 0x9F, 0x5B, 0xD9, 0x8B, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x14, 0xD9, 0x08, 0xD8, 0xD2, 0x7E, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xF9, 0xEF, 0xA5, 0x20, 0x4A, 0x5C, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xF3, 0xF4, 0x49, 0x5B, 0x73, 0xAA, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xF2, 0xEA, 0x0F, 0x00, 0xAD, 0x53, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xB8, 0x66, 0xED, 0xC4, 0x2B, 0x4C, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x2F, 0xC1, 0x9A, 0x37, 0xD2, 0x7F, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xA7, 0x81, 0x38, 0x64, 0xC9, 0x37, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x3B, 0x6C, 0x9F, 0x5B, 0xD9, 0x8B, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x14, 0xD9, 0x08, 0xD8, 0xD2, 0x7E, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x71, 0xE6, 0x3D, 0xD1, 0xB0, 0xE7, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x81, 0x23, 0xEC, 0x2D, 0x42, 0x45, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0x5B, 0x44, 0x6B, 0x89, 0x03, 0x67, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x27, 0xAE, 0x80, 0x5A, 0x33, 0xBE, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0xB6, 0x64, 0x1A, 0xDF, 0xD3, 0x85, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0x8C, 0x22, 0xBA, 0xD0, 0xBD, 0xCC, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x3C, 0x01, 0x3A, 0xFF, 0x9D, 0xC7, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0xC7, 0x64, 0xB4, 0x59, 0x4E, 0x9F, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x71, 0xE6, 0x3D, 0xD1, 0xB0, 0xE7, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x81, 0x23, 0xEC, 0x2D, 0x42, 0x45, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x5B, 0x44, 0x6B, 0x89, 0x03, 0x67, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x27, 0xAE, 0x80, 0x5A, 0x33, 0xBE, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB6, 0x64, 0x1A, 0xDF, 0xD3, 0x85, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x8C, 0x22, 0xBA, 0xD0, 0xBD, 0xCC, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x3C, 0x01, 0x3A, 0xFF, 0x9D, 0xC7, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC7, 0x64, 0xB4, 0x59, 0x4E, 0x9F, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x34, 0x0A, 0x41, 0x94, 0xA8, 0xF2, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xD4, 0xE4, 0xF0, 0x97, 0x45, 0x6D, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0x1F, 0x4D, 0x6D, 0xFE, 0xA0, 0xC4, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x28, 0x5C, 0x40, 0xBB, 0x65, 0xD4, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0xA8, 0x87, 0x35, 0x20, 0x3A, 0x89, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xFD, 0x4F, 0xAB, 0x2D, 0xD1, 0xD0, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xE8, 0x00, 0xFC, 0x69, 0x52, 0xF8, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x9A, 0x99, 0xE1, 0xDC, 0x9C, 0x3F, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x34, 0x0A, 0x41, 0x94, 0xA8, 0xF2, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD4, 0xE4, 0xF0, 0x97, 0x45, 0x6D, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x1F, 0x4D, 0x6D, 0xFE, 0xA0, 0xC4, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x28, 0x5C, 0x40, 0xBB, 0x65, 0xD4, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xA8, 0x87, 0x35, 0x20, 0x3A, 0x89, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFD, 0x4F, 0xAB, 0x2D, 0xD1, 0xD0, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE8, 0x00, 0xFC, 0x69, 0x52, 0xF8, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x9A, 0x99, 0xE1, 0xDC, 0x9C, 0x3F, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x08, 0x98, 0xD9, 0xCA, 0x73, 0xD5, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x2C, 0xE0, 0xA7, 0x3E, 0x91, 0xD7, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x04, 0xB0, 0x54, 0x09, 0xF4, 0x72, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xEE, 0x28, 0xCC, 0xE8, 0x50, 0x78, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x91, 0x03, 0x76, 0xDB, 0x68, 0x24, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0xE0, 0x56, 0xB2, 0x5D, 0x12, 0xD3, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x42, 0x59, 0x8B, 0xDF, 0x67, 0xB5, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0xCC, 0xE5, 0x31, 0x53, 0x7A, 0x46, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x08, 0x98, 0xD9, 0xCA, 0x73, 0xD5, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x2C, 0xE0, 0xA7, 0x3E, 0x91, 0xD7, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x04, 0xB0, 0x54, 0x09, 0xF4, 0x72, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xEE, 0x28, 0xCC, 0xE8, 0x50, 0x78, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x91, 0x03, 0x76, 0xDB, 0x68, 0x24, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xE0, 0x56, 0xB2, 0x5D, 0x12, 0xD3, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x42, 0x59, 0x8B, 0xDF, 0x67, 0xB5, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xCC, 0xE5, 0x31, 0x53, 0x7A, 0x46, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_16_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x8D, 0x59, 0xB5, 0x1B, 0x0F, 0xF4, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x2F, 0xD1, 0x2C, 0xE0, 0xD8, 0x04, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xF4, 0xD7, 0xBA, 0xB0, 0xA3, 0x7E, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x08, 0x51, 0x56, 0xA6, 0x76, 0x67, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0x17, 0x63, 0xFE, 0x56, 0xD0, 0xD9, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0xF6, 0xC3, 0x14, 0x47, 0xC5, 0xA7, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x4C, 0x80, 0xF6, 0xA2, 0x57, 0xA7, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xB3, 0x7B, 0xF8, 0x2F, 0xE1, 0x3E, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8D, 0x59, 0xB5, 0x1B, 0x0F, 0xF4, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x2F, 0xD1, 0x2C, 0xE0, 0xD8, 0x04, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0xD7, 0xBA, 0xB0, 0xA3, 0x7E, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x08, 0x51, 0x56, 0xA6, 0x76, 0x67, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x17, 0x63, 0xFE, 0x56, 0xD0, 0xD9, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xF6, 0xC3, 0x14, 0x47, 0xC5, 0xA7, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x4C, 0x80, 0xF6, 0xA2, 0x57, 0xA7, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xB3, 0x7B, 0xF8, 0x2F, 0xE1, 0x3E, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_16_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0xF4, 0xF9, 0x6B, 0x7B, 0x90, 0xDF, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x82, 0xEF, 0x62, 0xA1, 0x4C, 0x53, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x99, 0x76, 0x01, 0xBA, 0x8D, 0x0F, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xF4, 0x58, 0x73, 0x56, 0xFE, 0xDD, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xCE, 0xF9, 0xE8, 0xA1, 0x34, 0xC3, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x5F, 0xDC, 0x6A, 0x3D, 0xD8, 0x7F, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0xF4, 0x51, 0xB8, 0xB8, 0xC1, 0xD7, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x7D, 0x58, 0xD1, 0xD4, 0x1B, 0x4D, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0xF4, 0xF9, 0x6B, 0x7B, 0x90, 0xDF, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x82, 0xEF, 0x62, 0xA1, 0x4C, 0x53, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x99, 0x76, 0x01, 0xBA, 0x8D, 0x0F, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xF4, 0x58, 0x73, 0x56, 0xFE, 0xDD, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xCE, 0xF9, 0xE8, 0xA1, 0x34, 0xC3, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x5F, 0xDC, 0x6A, 0x3D, 0xD8, 0x7F, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xF4, 0x51, 0xB8, 0xB8, 0xC1, 0xD7, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x7D, 0x58, 0xD1, 0xD4, 0x1B, 0x4D, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_17_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x95, 0xDF, 0x00, 0xD8, 0x21, 0xDE, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x47, 0x3C, 0xC3, 0xB2, 0x01, 0x53, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x17, 0x43, 0x23, 0xBD, 0xCA, 0x71, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0xBA, 0x0F, 0x4F, 0xDC, 0x41, 0x54, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x39, 0x26, 0x70, 0x53, 0x32, 0x18, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x46, 0x07, 0x97, 0x3A, 0x57, 0xE0, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x92, 0x4F, 0xCE, 0xDF, 0x25, 0x80, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x6F, 0x9A, 0x03, 0x05, 0x4B, 0xD1, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x95, 0xDF, 0x00, 0xD8, 0x21, 0xDE, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x47, 0x3C, 0xC3, 0xB2, 0x01, 0x53, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x17, 0x43, 0x23, 0xBD, 0xCA, 0x71, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xBA, 0x0F, 0x4F, 0xDC, 0x41, 0x54, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x39, 0x26, 0x70, 0x53, 0x32, 0x18, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x46, 0x07, 0x97, 0x3A, 0x57, 0xE0, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x92, 0x4F, 0xCE, 0xDF, 0x25, 0x80, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x6F, 0x9A, 0x03, 0x05, 0x4B, 0xD1, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_17_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0x01, 0x72, 0x30, 0x90, 0x17, 0x51, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xFB, 0x41, 0x65, 0x5C, 0xB4, 0x2D, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xCD, 0xCD, 0xAA, 0x41, 0xCC, 0xBB, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0xCE, 0x08, 0x0A, 0x63, 0xE9, 0xA2, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xA8, 0x21, 0x7F, 0x7A, 0x5B, 0x9B, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x6B, 0x89, 0x44, 0x0A, 0x7F, 0x85, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0xDE, 0x7C, 0x19, 0x5C, 0x65, 0x26, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0xAC, 0x62, 0x29, 0x4A, 0xF1, 0xD0, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x01, 0x72, 0x30, 0x90, 0x17, 0x51, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xFB, 0x41, 0x65, 0x5C, 0xB4, 0x2D, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xCD, 0xCD, 0xAA, 0x41, 0xCC, 0xBB, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xCE, 0x08, 0x0A, 0x63, 0xE9, 0xA2, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xA8, 0x21, 0x7F, 0x7A, 0x5B, 0x9B, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x6B, 0x89, 0x44, 0x0A, 0x7F, 0x85, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0xDE, 0x7C, 0x19, 0x5C, 0x65, 0x26, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0xAC, 0x62, 0x29, 0x4A, 0xF1, 0xD0, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_18_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x00, 0x40, 0x87, 0xEB, 0xA9, 0x58, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0x51, 0x0B, 0xFF, 0x56, 0x35, 0x51, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0xAC, 0x08, 0x94, 0x71, 0xDA, 0xEC, 0x99 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x4D, 0xC5, 0x7B, 0x31, 0x8B, 0x8D, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x05, 0xF1, 0x3E, 0x9E, 0x8F, 0x17, 0x8F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x9C, 0x4B, 0x62, 0x94, 0xAD, 0x49, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xC9, 0xC6, 0x8F, 0xFD, 0x33, 0x44, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x96, 0x17, 0x7F, 0x42, 0xBE, 0xF7, 0x0D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x00, 0x40, 0x87, 0xEB, 0xA9, 0x58, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x51, 0x0B, 0xFF, 0x56, 0x35, 0x51, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xAC, 0x08, 0x94, 0x71, 0xDA, 0xEC, 0x99), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x4D, 0xC5, 0x7B, 0x31, 0x8B, 0x8D, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x05, 0xF1, 0x3E, 0x9E, 0x8F, 0x17, 0x8F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x9C, 0x4B, 0x62, 0x94, 0xAD, 0x49, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xC9, 0xC6, 0x8F, 0xFD, 0x33, 0x44, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x96, 0x17, 0x7F, 0x42, 0xBE, 0xF7, 0x0D), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_18_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0x29, 0x39, 0x13, 0x08, 0x8D, 0x91, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0x79, 0xF9, 0x2F, 0xA9, 0x0A, 0xCF, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x87, 0x7A, 0xA3, 0x19, 0xAB, 0x55, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x0B, 0x01, 0xC5, 0x56, 0x19, 0x9D, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0xDE, 0x82, 0x3B, 0xEA, 0xD3, 0x0B, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x6B, 0xC7, 0xF3, 0x0F, 0x82, 0x87, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x2E, 0x23, 0xF2, 0x39, 0x9D, 0x49, 0x70 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0xDE, 0xAF, 0x7A, 0xEE, 0xB0, 0xDA, 0x70 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x29, 0x39, 0x13, 0x08, 0x8D, 0x91, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x79, 0xF9, 0x2F, 0xA9, 0x0A, 0xCF, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x87, 0x7A, 0xA3, 0x19, 0xAB, 0x55, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x0B, 0x01, 0xC5, 0x56, 0x19, 0x9D, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xDE, 0x82, 0x3B, 0xEA, 0xD3, 0x0B, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x6B, 0xC7, 0xF3, 0x0F, 0x82, 0x87, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x2E, 0x23, 0xF2, 0x39, 0x9D, 0x49, 0x70), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0xDE, 0xAF, 0x7A, 0xEE, 0xB0, 0xDA, 0x70), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_19_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x4E, 0x2A, 0x50, 0xFD, 0x8E, 0xC0, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0x0F, 0x7C, 0x76, 0x63, 0xD8, 0x89, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x2D, 0xB9, 0x4E, 0xF4, 0xEE, 0x85, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x95, 0x5C, 0x96, 0x5D, 0xAA, 0x59, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0xDB, 0xD2, 0x68, 0x8E, 0x5A, 0x94, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x02, 0xBF, 0x77, 0x9F, 0xB9, 0x4C, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0xDC, 0xC0, 0xCF, 0x81, 0x1E, 0xC4, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0xCC, 0x37, 0x86, 0xDC, 0xE2, 0x64, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x4E, 0x2A, 0x50, 0xFD, 0x8E, 0xC0, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x0F, 0x7C, 0x76, 0x63, 0xD8, 0x89, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x2D, 0xB9, 0x4E, 0xF4, 0xEE, 0x85, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x95, 0x5C, 0x96, 0x5D, 0xAA, 0x59, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xDB, 0xD2, 0x68, 0x8E, 0x5A, 0x94, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x02, 0xBF, 0x77, 0x9F, 0xB9, 0x4C, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xDC, 0xC0, 0xCF, 0x81, 0x1E, 0xC4, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xCC, 0x37, 0x86, 0xDC, 0xE2, 0x64, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_19_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x30, 0xB1, 0x59, 0x20, 0x9D, 0x98, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x0C, 0x9D, 0xF8, 0x20, 0xDC, 0x90, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0xA0, 0xF4, 0xE7, 0x3E, 0x9C, 0x9E, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x25, 0xA2, 0xB0, 0x54, 0xCD, 0x2E, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xD9, 0x42, 0xB0, 0x80, 0xB0, 0xA3, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0xFE, 0x9D, 0x8D, 0x40, 0xFF, 0x27, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x9D, 0xA6, 0x88, 0x3A, 0x8B, 0x6F, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x39, 0xEE, 0x1F, 0x3F, 0xB1, 0x4F, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x30, 0xB1, 0x59, 0x20, 0x9D, 0x98, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x0C, 0x9D, 0xF8, 0x20, 0xDC, 0x90, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xA0, 0xF4, 0xE7, 0x3E, 0x9C, 0x9E, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x25, 0xA2, 0xB0, 0x54, 0xCD, 0x2E, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD9, 0x42, 0xB0, 0x80, 0xB0, 0xA3, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xFE, 0x9D, 0x8D, 0x40, 0xFF, 0x27, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x9D, 0xA6, 0x88, 0x3A, 0x8B, 0x6F, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x39, 0xEE, 0x1F, 0x3F, 0xB1, 0x4F, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_20_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xD7, 0x9E, 0xFF, 0xD2, 0x35, 0x67, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x4F, 0x15, 0x5D, 0xE3, 0xE8, 0x53, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xF7, 0x24, 0x98, 0xA2, 0xCB, 0x11, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x2E, 0x25, 0xE1, 0x94, 0xC5, 0xA3, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x82, 0x6E, 0xBA, 0xE7, 0x43, 0x25, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x65, 0xB4, 0x49, 0x73, 0x18, 0x35, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0x5B, 0xBC, 0x62, 0x86, 0x4C, 0xC1, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0xF2, 0x95, 0xA2, 0xBB, 0xA2, 0x35, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xD7, 0x9E, 0xFF, 0xD2, 0x35, 0x67, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x4F, 0x15, 0x5D, 0xE3, 0xE8, 0x53, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xF7, 0x24, 0x98, 0xA2, 0xCB, 0x11, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x2E, 0x25, 0xE1, 0x94, 0xC5, 0xA3, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x82, 0x6E, 0xBA, 0xE7, 0x43, 0x25, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x65, 0xB4, 0x49, 0x73, 0x18, 0x35, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0x5B, 0xBC, 0x62, 0x86, 0x4C, 0xC1, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xF2, 0x95, 0xA2, 0xBB, 0xA2, 0x35, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_20_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x59, 0x62, 0xB0, 0x4B, 0x1E, 0xB4, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x55, 0xCE, 0xB0, 0x69, 0xBA, 0x63, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0x69, 0x86, 0xDB, 0x34, 0x7D, 0x68, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x06, 0xCA, 0x55, 0x44, 0x36, 0x2B, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0xD4, 0xC4, 0x3D, 0xCD, 0x9E, 0x69, 0xA4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x44, 0xE4, 0xBF, 0x31, 0xE6, 0x40, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x4F, 0xFA, 0x75, 0xE3, 0xFB, 0x97, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xC0, 0xBD, 0x1C, 0x48, 0xB0, 0x26, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x59, 0x62, 0xB0, 0x4B, 0x1E, 0xB4, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x55, 0xCE, 0xB0, 0x69, 0xBA, 0x63, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x69, 0x86, 0xDB, 0x34, 0x7D, 0x68, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x06, 0xCA, 0x55, 0x44, 0x36, 0x2B, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xD4, 0xC4, 0x3D, 0xCD, 0x9E, 0x69, 0xA4), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x44, 0xE4, 0xBF, 0x31, 0xE6, 0x40, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x4F, 0xFA, 0x75, 0xE3, 0xFB, 0x97, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xC0, 0xBD, 0x1C, 0x48, 0xB0, 0x26, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_21_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x7B, 0x32, 0xFA, 0xF2, 0x6D, 0x84, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x21, 0x03, 0x1D, 0x0D, 0x22, 0x55, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0xF9, 0x42, 0x03, 0x9C, 0xC2, 0xCB, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0xA1, 0x96, 0xD9, 0x9D, 0x11, 0x6F, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x40, 0x57, 0xEB, 0x40, 0x2D, 0xC0, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x96, 0xBB, 0x4F, 0x2F, 0x23, 0xA8, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x29, 0x85, 0x21, 0xA5, 0x50, 0x62, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x7D, 0x92, 0xCF, 0x87, 0x0C, 0x22, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x7B, 0x32, 0xFA, 0xF2, 0x6D, 0x84, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x21, 0x03, 0x1D, 0x0D, 0x22, 0x55, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xF9, 0x42, 0x03, 0x9C, 0xC2, 0xCB, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xA1, 0x96, 0xD9, 0x9D, 0x11, 0x6F, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x40, 0x57, 0xEB, 0x40, 0x2D, 0xC0, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x96, 0xBB, 0x4F, 0x2F, 0x23, 0xA8, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x29, 0x85, 0x21, 0xA5, 0x50, 0x62, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x7D, 0x92, 0xCF, 0x87, 0x0C, 0x22, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_21_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x0E, 0xA5, 0x32, 0x5B, 0xDF, 0x9C, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x96, 0x37, 0x2C, 0x88, 0x35, 0x30, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0xB4, 0x69, 0xFF, 0xEB, 0xC6, 0x94, 0x08 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x55, 0x60, 0xAD, 0xAA, 0x58, 0x14, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0xFF, 0xF2, 0xB2, 0xD5, 0xA7, 0xD9, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0xAE, 0x54, 0xD2, 0x60, 0x31, 0xF3, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x92, 0x83, 0xE3, 0xF1, 0x42, 0x83, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0xD2, 0xC8, 0xB7, 0x76, 0x45, 0x7F, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x0E, 0xA5, 0x32, 0x5B, 0xDF, 0x9C, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x96, 0x37, 0x2C, 0x88, 0x35, 0x30, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xB4, 0x69, 0xFF, 0xEB, 0xC6, 0x94, 0x08), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x55, 0x60, 0xAD, 0xAA, 0x58, 0x14, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xFF, 0xF2, 0xB2, 0xD5, 0xA7, 0xD9, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xAE, 0x54, 0xD2, 0x60, 0x31, 0xF3, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x92, 0x83, 0xE3, 0xF1, 0x42, 0x83, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD2, 0xC8, 0xB7, 0x76, 0x45, 0x7F, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_22_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x11, 0xA4, 0xFB, 0x7A, 0x01, 0xBC, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x27, 0x73, 0x8D, 0x02, 0x91, 0x27, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x62, 0xF6, 0xDD, 0x6B, 0xFA, 0x5B, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0xCA, 0xA2, 0x44, 0x2C, 0xF0, 0x28, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0xF1, 0x7A, 0xA2, 0x42, 0x4C, 0x50, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0x83, 0x3E, 0x50, 0xAB, 0x9C, 0xF7, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0xED, 0x78, 0xCB, 0x76, 0x69, 0xDA, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x01, 0x1E, 0x43, 0x27, 0x47, 0x6E, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x11, 0xA4, 0xFB, 0x7A, 0x01, 0xBC, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x27, 0x73, 0x8D, 0x02, 0x91, 0x27, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x62, 0xF6, 0xDD, 0x6B, 0xFA, 0x5B, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xCA, 0xA2, 0x44, 0x2C, 0xF0, 0x28, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xF1, 0x7A, 0xA2, 0x42, 0x4C, 0x50, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x83, 0x3E, 0x50, 0xAB, 0x9C, 0xF7, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xED, 0x78, 0xCB, 0x76, 0x69, 0xDA, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x01, 0x1E, 0x43, 0x27, 0x47, 0x6E, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_22_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x4F, 0x54, 0xB9, 0x3E, 0xBD, 0xD5, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x35, 0x40, 0x69, 0x7F, 0x74, 0x9D, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x06, 0x6F, 0x67, 0x68, 0x2B, 0x4D, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x65, 0x41, 0xFC, 0x7C, 0x1E, 0xE8, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x79, 0x37, 0xAF, 0xFD, 0xD2, 0xDA, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0xA8, 0x69, 0x56, 0x62, 0xA4, 0xE4, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x71, 0x73, 0x21, 0x8A, 0x17, 0x81, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0x55, 0x8F, 0x7B, 0xB8, 0xAF, 0xF7, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x4F, 0x54, 0xB9, 0x3E, 0xBD, 0xD5, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x40, 0x69, 0x7F, 0x74, 0x9D, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x06, 0x6F, 0x67, 0x68, 0x2B, 0x4D, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x65, 0x41, 0xFC, 0x7C, 0x1E, 0xE8, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x79, 0x37, 0xAF, 0xFD, 0xD2, 0xDA, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xA8, 0x69, 0x56, 0x62, 0xA4, 0xE4, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x71, 0x73, 0x21, 0x8A, 0x17, 0x81, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x55, 0x8F, 0x7B, 0xB8, 0xAF, 0xF7, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_23_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0xD1, 0xBD, 0xBE, 0x8C, 0xBC, 0x60, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0xA6, 0x57, 0x8C, 0xAE, 0x5C, 0x19, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0x43, 0xE4, 0xD9, 0xD8, 0x7B, 0xE7, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0xB9, 0xE4, 0x85, 0x7C, 0x2E, 0xFC, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x2E, 0x01, 0x2A, 0x6D, 0x56, 0xBE, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x0C, 0x25, 0x9B, 0xAE, 0x86, 0x37, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x22, 0xB3, 0xCB, 0x99, 0x66, 0xB7, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0xF7, 0x90, 0xF0, 0x1B, 0x09, 0x27, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xD1, 0xBD, 0xBE, 0x8C, 0xBC, 0x60, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA6, 0x57, 0x8C, 0xAE, 0x5C, 0x19, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x43, 0xE4, 0xD9, 0xD8, 0x7B, 0xE7, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xB9, 0xE4, 0x85, 0x7C, 0x2E, 0xFC, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2E, 0x01, 0x2A, 0x6D, 0x56, 0xBE, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x0C, 0x25, 0x9B, 0xAE, 0x86, 0x37, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x22, 0xB3, 0xCB, 0x99, 0x66, 0xB7, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xF7, 0x90, 0xF0, 0x1B, 0x09, 0x27, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_23_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x16, 0x08, 0xEF, 0x39, 0x64, 0x49, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xA0, 0xE3, 0x97, 0xA9, 0x07, 0x54, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xFF, 0xE2, 0x00, 0x07, 0x21, 0x88, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xFD, 0x59, 0x53, 0x05, 0x6C, 0x42, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0xF7, 0x39, 0x5C, 0x82, 0x36, 0xE8, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2E, 0x83, 0xA8, 0xE2, 0xA8, 0x43, 0x07, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xAF, 0x2B, 0x79, 0xED, 0xD8, 0x39, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x20, 0x91, 0x7A, 0xC4, 0x07, 0xEF, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x16, 0x08, 0xEF, 0x39, 0x64, 0x49, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA0, 0xE3, 0x97, 0xA9, 0x07, 0x54, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xFF, 0xE2, 0x00, 0x07, 0x21, 0x88, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xFD, 0x59, 0x53, 0x05, 0x6C, 0x42, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xF7, 0x39, 0x5C, 0x82, 0x36, 0xE8, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x83, 0xA8, 0xE2, 0xA8, 0x43, 0x07, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xAF, 0x2B, 0x79, 0xED, 0xD8, 0x39, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x20, 0x91, 0x7A, 0xC4, 0x07, 0xEF, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_24_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x10, 0x2F, 0xAA, 0x0C, 0x94, 0x0E, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x81, 0x87, 0x41, 0x23, 0xEB, 0x55, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x53, 0xCC, 0x79, 0xB6, 0xEB, 0x6C, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x77, 0x73, 0x9D, 0xFC, 0x64, 0x6F, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x40, 0xE3, 0x6D, 0x1C, 0x16, 0x71, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0xF4, 0x1B, 0xFF, 0x1C, 0x2F, 0xA5, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x0E, 0x0B, 0x11, 0xF4, 0x8D, 0x93, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0xC5, 0x64, 0x6F, 0x24, 0x19, 0xF2, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x10, 0x2F, 0xAA, 0x0C, 0x94, 0x0E, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x81, 0x87, 0x41, 0x23, 0xEB, 0x55, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x53, 0xCC, 0x79, 0xB6, 0xEB, 0x6C, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x77, 0x73, 0x9D, 0xFC, 0x64, 0x6F, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x40, 0xE3, 0x6D, 0x1C, 0x16, 0x71, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xF4, 0x1B, 0xFF, 0x1C, 0x2F, 0xA5, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x0E, 0x0B, 0x11, 0xF4, 0x8D, 0x93, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xC5, 0x64, 0x6F, 0x24, 0x19, 0xF2, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_24_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0xB3, 0xAF, 0xA5, 0x0E, 0x4F, 0x5E, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0x77, 0xCA, 0xF2, 0x6D, 0xC5, 0xF6, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0x18, 0x8E, 0x33, 0x68, 0x6C, 0xE8, 0xE0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x8B, 0x80, 0x90, 0x19, 0x7F, 0x90, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x80, 0x6B, 0x68, 0xE2, 0x7D, 0xD4, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xC1, 0x67, 0xB3, 0x72, 0xCB, 0xBF, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0xD5, 0xD3, 0x1D, 0x14, 0x58, 0x0A, 0x80 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0x7A, 0x65, 0x98, 0xB3, 0x07, 0x4B, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xB3, 0xAF, 0xA5, 0x0E, 0x4F, 0x5E, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x77, 0xCA, 0xF2, 0x6D, 0xC5, 0xF6, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x18, 0x8E, 0x33, 0x68, 0x6C, 0xE8, 0xE0), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x8B, 0x80, 0x90, 0x19, 0x7F, 0x90, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x80, 0x6B, 0x68, 0xE2, 0x7D, 0xD4, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xC1, 0x67, 0xB3, 0x72, 0xCB, 0xBF, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xD5, 0xD3, 0x1D, 0x14, 0x58, 0x0A, 0x80), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x7A, 0x65, 0x98, 0xB3, 0x07, 0x4B, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_25_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x87, 0x0F, 0x5F, 0xCF, 0xA2, 0x01, 0x08 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0xC9, 0xC8, 0x6E, 0x35, 0x87, 0xA5, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x3E, 0x91, 0xA0, 0xAB, 0x24, 0x1E, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xBC, 0x02, 0x35, 0x70, 0xC1, 0x5F, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x59, 0xA0, 0x50, 0x04, 0x80, 0x52, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x56, 0x6E, 0x42, 0x8F, 0x8C, 0x91, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xA2, 0xCB, 0xA5, 0xDE, 0x14, 0x24, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0xCB, 0x74, 0x28, 0xE6, 0xA7, 0xE7, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x87, 0x0F, 0x5F, 0xCF, 0xA2, 0x01, 0x08), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xC9, 0xC8, 0x6E, 0x35, 0x87, 0xA5, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x3E, 0x91, 0xA0, 0xAB, 0x24, 0x1E, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xBC, 0x02, 0x35, 0x70, 0xC1, 0x5F, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x59, 0xA0, 0x50, 0x04, 0x80, 0x52, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x56, 0x6E, 0x42, 0x8F, 0x8C, 0x91, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xA2, 0xCB, 0xA5, 0xDE, 0x14, 0x24, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xCB, 0x74, 0x28, 0xE6, 0xA7, 0xE7, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_25_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0x73, 0xA8, 0x8F, 0x9E, 0x0E, 0x63, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x1B, 0x77, 0xC7, 0xC1, 0x38, 0xF9, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x3C, 0xCF, 0xA8, 0x7A, 0xD7, 0xF3, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x5F, 0x9A, 0xC9, 0xAD, 0xE9, 0x1A, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0xCF, 0x2B, 0x5E, 0xD5, 0x81, 0x95, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x88, 0x75, 0x29, 0x1F, 0xC7, 0xC7, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xA9, 0x5A, 0x4D, 0x63, 0x95, 0xF9, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0xCD, 0x04, 0x8F, 0xCD, 0x91, 0xDE, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x73, 0xA8, 0x8F, 0x9E, 0x0E, 0x63, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x1B, 0x77, 0xC7, 0xC1, 0x38, 0xF9, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x3C, 0xCF, 0xA8, 0x7A, 0xD7, 0xF3, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x5F, 0x9A, 0xC9, 0xAD, 0xE9, 0x1A, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0x2B, 0x5E, 0xD5, 0x81, 0x95, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x88, 0x75, 0x29, 0x1F, 0xC7, 0xC7, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA9, 0x5A, 0x4D, 0x63, 0x95, 0xF9, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xCD, 0x04, 0x8F, 0xCD, 0x91, 0xDE, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_26_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0xD4, 0xFD, 0x25, 0x11, 0x99, 0x6E, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x83, 0x01, 0x3D, 0xFB, 0x56, 0xA5, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x3A, 0xDC, 0x74, 0xC2, 0xD7, 0xCF, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0xBD, 0xF1, 0xDD, 0xA3, 0x07, 0x03, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0xBE, 0xE9, 0x2E, 0x58, 0x84, 0x66, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x20, 0x78, 0x37, 0x79, 0x0B, 0xA6, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0xF2, 0xAC, 0x65, 0xC8, 0xC9, 0x2F, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x93, 0xE5, 0x0D, 0x0C, 0xC6, 0xB8, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xD4, 0xFD, 0x25, 0x11, 0x99, 0x6E, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x83, 0x01, 0x3D, 0xFB, 0x56, 0xA5, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x3A, 0xDC, 0x74, 0xC2, 0xD7, 0xCF, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0xBD, 0xF1, 0xDD, 0xA3, 0x07, 0x03, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xBE, 0xE9, 0x2E, 0x58, 0x84, 0x66, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x20, 0x78, 0x37, 0x79, 0x0B, 0xA6, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xF2, 0xAC, 0x65, 0xC8, 0xC9, 0x2F, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x93, 0xE5, 0x0D, 0x0C, 0xC6, 0xB8, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_26_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0xAD, 0x5C, 0x19, 0x12, 0x61, 0x0E, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0x4F, 0x0B, 0x1F, 0x49, 0x7E, 0xCD, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x2E, 0x30, 0x61, 0xDB, 0x08, 0x68, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x78, 0xAF, 0xB3, 0x08, 0xC1, 0x69, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x5F, 0x5D, 0xC1, 0x57, 0x6F, 0xD8, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0xD3, 0x6A, 0xF7, 0xFD, 0x86, 0xE5, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x63, 0xBD, 0x70, 0x7B, 0x47, 0xE8, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x62, 0xC8, 0x7E, 0x9D, 0x11, 0x2B, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xAD, 0x5C, 0x19, 0x12, 0x61, 0x0E, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x4F, 0x0B, 0x1F, 0x49, 0x7E, 0xCD, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2E, 0x30, 0x61, 0xDB, 0x08, 0x68, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x78, 0xAF, 0xB3, 0x08, 0xC1, 0x69, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x5F, 0x5D, 0xC1, 0x57, 0x6F, 0xD8, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xD3, 0x6A, 0xF7, 0xFD, 0x86, 0xE5, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x63, 0xBD, 0x70, 0x7B, 0x47, 0xE8, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x62, 0xC8, 0x7E, 0x9D, 0x11, 0x2B, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_27_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0x84, 0xFD, 0xD5, 0x9A, 0x56, 0x7F, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0xBB, 0xA4, 0x6F, 0x12, 0x6E, 0x4D, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x08, 0xA1, 0x82, 0x9C, 0x62, 0x74, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x58, 0x22, 0x05, 0x1D, 0x15, 0x35, 0x79 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x88, 0xCF, 0x5C, 0x05, 0x78, 0xFB, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x6B, 0x2F, 0x79, 0x09, 0x73, 0x67, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xA0, 0x80, 0xD8, 0xE8, 0xEC, 0xFB, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xE7, 0x0B, 0xB7, 0x81, 0x48, 0x7B, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x84, 0xFD, 0xD5, 0x9A, 0x56, 0x7F, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBB, 0xA4, 0x6F, 0x12, 0x6E, 0x4D, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x08, 0xA1, 0x82, 0x9C, 0x62, 0x74, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x22, 0x05, 0x1D, 0x15, 0x35, 0x79), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x88, 0xCF, 0x5C, 0x05, 0x78, 0xFB, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x6B, 0x2F, 0x79, 0x09, 0x73, 0x67, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA0, 0x80, 0xD8, 0xE8, 0xEC, 0xFB, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xE7, 0x0B, 0xB7, 0x81, 0x48, 0x7B, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_27_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x53, 0xA9, 0xED, 0x61, 0x92, 0xD7, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x49, 0xD9, 0x5D, 0x9B, 0x4E, 0x89, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x12, 0xEB, 0x9A, 0xC9, 0xCB, 0xC1, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0xDC, 0x95, 0x16, 0xFE, 0x29, 0x70, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x33, 0xB1, 0xD6, 0x78, 0xB9, 0xE2, 0x36 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xCE, 0x88, 0xC3, 0xFD, 0x7A, 0x6B, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x1E, 0x50, 0x1E, 0xAF, 0xB1, 0x25, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0xE7, 0xD7, 0xD5, 0xBD, 0x7A, 0x12, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x53, 0xA9, 0xED, 0x61, 0x92, 0xD7, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x49, 0xD9, 0x5D, 0x9B, 0x4E, 0x89, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x12, 0xEB, 0x9A, 0xC9, 0xCB, 0xC1, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xDC, 0x95, 0x16, 0xFE, 0x29, 0x70, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x33, 0xB1, 0xD6, 0x78, 0xB9, 0xE2, 0x36), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xCE, 0x88, 0xC3, 0xFD, 0x7A, 0x6B, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x1E, 0x50, 0x1E, 0xAF, 0xB1, 0x25, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xE7, 0xD7, 0xD5, 0xBD, 0x7A, 0x12, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_28_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0xAA, 0xA2, 0x80, 0x5D, 0x8F, 0xCD, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0x39, 0x79, 0x64, 0xA1, 0x67, 0x3C, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xC7, 0x49, 0xFF, 0x7F, 0xAC, 0xAB, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x54, 0x3E, 0x83, 0xF0, 0x3D, 0xBC, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x92, 0x4A, 0x38, 0x42, 0x8A, 0xAB, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x0B, 0x4F, 0xEE, 0x9E, 0x92, 0xA5, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0xDD, 0x19, 0x96, 0xF2, 0xF0, 0x6B, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xFC, 0xDD, 0xB2, 0x8A, 0xE5, 0x4C, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xAA, 0xA2, 0x80, 0x5D, 0x8F, 0xCD, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x39, 0x79, 0x64, 0xA1, 0x67, 0x3C, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xC7, 0x49, 0xFF, 0x7F, 0xAC, 0xAB, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x54, 0x3E, 0x83, 0xF0, 0x3D, 0xBC, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x92, 0x4A, 0x38, 0x42, 0x8A, 0xAB, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x0B, 0x4F, 0xEE, 0x9E, 0x92, 0xA5, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0xDD, 0x19, 0x96, 0xF2, 0xF0, 0x6B, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xFC, 0xDD, 0xB2, 0x8A, 0xE5, 0x4C, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_28_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x06, 0x49, 0xAC, 0x99, 0x7E, 0xF8, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0xC8, 0x01, 0x51, 0xEA, 0xF6, 0x52, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x89, 0x66, 0x2B, 0x1F, 0x9B, 0x2A, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x0F, 0x95, 0x07, 0x2B, 0x6C, 0x6E, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0xC3, 0xB4, 0xBB, 0x91, 0x1F, 0xA3, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x6E, 0x54, 0x28, 0x7B, 0x9C, 0x79, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0x45, 0xFF, 0xA6, 0xDA, 0xA2, 0x83, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0xDE, 0x8F, 0x17, 0x37, 0x82, 0xCB, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x06, 0x49, 0xAC, 0x99, 0x7E, 0xF8, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xC8, 0x01, 0x51, 0xEA, 0xF6, 0x52, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x89, 0x66, 0x2B, 0x1F, 0x9B, 0x2A, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x0F, 0x95, 0x07, 0x2B, 0x6C, 0x6E, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0xC3, 0xB4, 0xBB, 0x91, 0x1F, 0xA3, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x6E, 0x54, 0x28, 0x7B, 0x9C, 0x79, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x45, 0xFF, 0xA6, 0xDA, 0xA2, 0x83, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xDE, 0x8F, 0x17, 0x37, 0x82, 0xCB, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_29_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x94, 0x3F, 0x26, 0xC9, 0x1D, 0xD9, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x97, 0x28, 0x20, 0xCD, 0xC1, 0xF3, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0xC9, 0xB5, 0x60, 0x9B, 0x1E, 0xDC, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0xB9, 0x5B, 0x7D, 0xA0, 0xB2, 0x8C, 0xF0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0xD1, 0x42, 0xE6, 0x39, 0x33, 0x6D, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xC0, 0xFC, 0xD2, 0x14, 0x5D, 0x3E, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0x4A, 0x3E, 0x40, 0x16, 0x93, 0x15, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x24, 0xC1, 0x27, 0x27, 0xE5, 0x4B, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x94, 0x3F, 0x26, 0xC9, 0x1D, 0xD9, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x97, 0x28, 0x20, 0xCD, 0xC1, 0xF3, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC9, 0xB5, 0x60, 0x9B, 0x1E, 0xDC, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xB9, 0x5B, 0x7D, 0xA0, 0xB2, 0x8C, 0xF0), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xD1, 0x42, 0xE6, 0x39, 0x33, 0x6D, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xC0, 0xFC, 0xD2, 0x14, 0x5D, 0x3E, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x4A, 0x3E, 0x40, 0x16, 0x93, 0x15, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x24, 0xC1, 0x27, 0x27, 0xE5, 0x4B, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_29_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x50, 0xD8, 0xBC, 0xC1, 0x46, 0x22, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x0E, 0x60, 0xA1, 0xB3, 0x50, 0xD4, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0xB1, 0x26, 0xB6, 0x6D, 0x47, 0x5A, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0xAC, 0x11, 0x35, 0x3E, 0xB9, 0xF4, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x97, 0xFA, 0xBB, 0x6B, 0x39, 0x13, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x7B, 0x34, 0x12, 0x75, 0x8E, 0x9B, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x9E, 0xCD, 0x29, 0xB6, 0xEF, 0x8D, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0xAC, 0xE9, 0x25, 0x27, 0xBB, 0x78, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x50, 0xD8, 0xBC, 0xC1, 0x46, 0x22, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x0E, 0x60, 0xA1, 0xB3, 0x50, 0xD4, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xB1, 0x26, 0xB6, 0x6D, 0x47, 0x5A, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0xAC, 0x11, 0x35, 0x3E, 0xB9, 0xF4, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x97, 0xFA, 0xBB, 0x6B, 0x39, 0x13, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x34, 0x12, 0x75, 0x8E, 0x9B, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x9E, 0xCD, 0x29, 0xB6, 0xEF, 0x8D, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xAC, 0xE9, 0x25, 0x27, 0xBB, 0x78, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_30_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x7A, 0xA8, 0xD3, 0xE3, 0x66, 0xE5, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x4C, 0xC4, 0x2C, 0x76, 0x81, 0x50, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0x71, 0x08, 0xB8, 0x52, 0x7C, 0xAF, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x59, 0x24, 0xDD, 0xFB, 0x2F, 0xD0, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xCD, 0x56, 0xE9, 0xAC, 0x91, 0xE6, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x64, 0x20, 0xC6, 0x9F, 0xE4, 0xEF, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x2C, 0x8F, 0x8C, 0x97, 0xF6, 0x22, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xF4, 0x88, 0xAA, 0xA8, 0xD7, 0xA5, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x7A, 0xA8, 0xD3, 0xE3, 0x66, 0xE5, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x4C, 0xC4, 0x2C, 0x76, 0x81, 0x50, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x71, 0x08, 0xB8, 0x52, 0x7C, 0xAF, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x59, 0x24, 0xDD, 0xFB, 0x2F, 0xD0, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCD, 0x56, 0xE9, 0xAC, 0x91, 0xE6, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x64, 0x20, 0xC6, 0x9F, 0xE4, 0xEF, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x2C, 0x8F, 0x8C, 0x97, 0xF6, 0x22, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xF4, 0x88, 0xAA, 0xA8, 0xD7, 0xA5, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_30_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x6C, 0xAE, 0x83, 0xB1, 0x55, 0x55, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x67, 0x84, 0x47, 0x7C, 0x83, 0x5C, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x10, 0x4D, 0xDD, 0x30, 0x60, 0xB0, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xA7, 0x36, 0x76, 0x24, 0x32, 0x9F, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x42, 0x81, 0xFB, 0xA4, 0x2E, 0x13, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x94, 0x91, 0xFF, 0x99, 0xA0, 0x09, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x83, 0xA1, 0x76, 0xAF, 0x37, 0x5C, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xA8, 0x04, 0x86, 0xC4, 0xA9, 0x79, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x6C, 0xAE, 0x83, 0xB1, 0x55, 0x55, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x67, 0x84, 0x47, 0x7C, 0x83, 0x5C, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x10, 0x4D, 0xDD, 0x30, 0x60, 0xB0, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xA7, 0x36, 0x76, 0x24, 0x32, 0x9F, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x42, 0x81, 0xFB, 0xA4, 0x2E, 0x13, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x94, 0x91, 0xFF, 0x99, 0xA0, 0x09, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x83, 0xA1, 0x76, 0xAF, 0x37, 0x5C, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA8, 0x04, 0x86, 0xC4, 0xA9, 0x79, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_31_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x8C, 0xC2, 0x34, 0xFB, 0x83, 0x28, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x03, 0x7D, 0x5E, 0x9E, 0x0E, 0xB0, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA2, 0x02, 0x46, 0x7F, 0xB9, 0xAC, 0xBB, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0xED, 0x48, 0xC2, 0x96, 0x4D, 0x56, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0xB5, 0xC5, 0xD1, 0xE6, 0x1C, 0x7E, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x2E, 0x18, 0x71, 0x2D, 0x7B, 0xD7, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x46, 0x9D, 0xDE, 0xAA, 0x78, 0x8E, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0xD7, 0x69, 0x2E, 0xE1, 0xD9, 0x48, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x8C, 0xC2, 0x34, 0xFB, 0x83, 0x28, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x03, 0x7D, 0x5E, 0x9E, 0x0E, 0xB0, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x02, 0x46, 0x7F, 0xB9, 0xAC, 0xBB, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xED, 0x48, 0xC2, 0x96, 0x4D, 0x56, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xC5, 0xD1, 0xE6, 0x1C, 0x7E, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x2E, 0x18, 0x71, 0x2D, 0x7B, 0xD7, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x46, 0x9D, 0xDE, 0xAA, 0x78, 0x8E, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD7, 0x69, 0x2E, 0xE1, 0xD9, 0x48, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp521r1_T_31_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xFF, 0x9E, 0x09, 0x22, 0x22, 0xE6, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x14, 0x28, 0x13, 0x1B, 0x62, 0x12, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x7F, 0x67, 0x03, 0xB0, 0xC0, 0xF3, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0xC3, 0x0F, 0xFB, 0x25, 0x48, 0x3E, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x6E, 0x53, 0x98, 0x36, 0xB3, 0xD3, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x81, 0x54, 0x22, 0xA4, 0xCC, 0xC1, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xBA, 0xFC, 0xA9, 0xDF, 0x68, 0x86, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x92, 0x0E, 0xC3, 0xF2, 0x58, 0xE8, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFF, 0x9E, 0x09, 0x22, 0x22, 0xE6, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x14, 0x28, 0x13, 0x1B, 0x62, 0x12, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x7F, 0x67, 0x03, 0xB0, 0xC0, 0xF3, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xC3, 0x0F, 0xFB, 0x25, 0x48, 0x3E, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x6E, 0x53, 0x98, 0x36, 0xB3, 0xD3, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x81, 0x54, 0x22, 0xA4, 0xCC, 0xC1, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xBA, 0xFC, 0xA9, 0xDF, 0x68, 0x86, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x92, 0x0E, 0xC3, 0xF2, 0x58, 0xE8, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_ecp_point secp521r1_T[32] = { ECP_POINT_INIT_XY_Z1(secp521r1_T_0_X, secp521r1_T_0_Y), @@ -2186,192 +2186,192 @@ static const mbedtls_ecp_point secp521r1_T[32] = { #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) static const mbedtls_mpi_uint secp192k1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0xEE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xEE, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp192k1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00), }; static const mbedtls_mpi_uint secp192k1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x03, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x03, 0x00), }; static const mbedtls_mpi_uint secp192k1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB), }; static const mbedtls_mpi_uint secp192k1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B), }; static const mbedtls_mpi_uint secp192k1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xFD, 0xDE, 0x74, 0x6A, 0x46, 0x69, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xFC, 0xF2, 0x26, 0xFE, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xDE, 0x74, 0x6A, 0x46, 0x69, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xFC, 0xF2, 0x26, 0xFE, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp192k1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0xE0, 0xEA, 0xB1, 0xD1, 0xA5, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF4, 0xB7, 0x80, 0x02, 0x7D, 0xB0, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xE9, 0x57, 0xC0, 0x0E, 0xF1, 0x4F, 0xDB), }; static const mbedtls_mpi_uint secp192k1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x2F, 0x5E, 0xD9, 0x88, 0xAA, 0x82, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x86, 0xBE, 0x15, 0xD0, 0x63, 0x41, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x28, 0x56, 0x9C, 0x6D, 0x2F, 0x2F, 0x9B), }; static const mbedtls_mpi_uint secp192k1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x77, 0x3D, 0x0D, 0x85, 0x48, 0xA8, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x07, 0xDF, 0x1D, 0xB3, 0xB3, 0x01, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x86, 0xF6, 0xAF, 0x19, 0x2A, 0x88, 0x2E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x77, 0x3D, 0x0D, 0x85, 0x48, 0xA8, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x07, 0xDF, 0x1D, 0xB3, 0xB3, 0x01, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x86, 0xF6, 0xAF, 0x19, 0x2A, 0x88, 0x2E), }; static const mbedtls_mpi_uint secp192k1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x90, 0xB6, 0x2F, 0x48, 0x36, 0x4C, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x11, 0x14, 0xA6, 0xCB, 0xBA, 0x15, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0xB0, 0xF2, 0xD4, 0xC9, 0xDA, 0xBA, 0xD7 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x90, 0xB6, 0x2F, 0x48, 0x36, 0x4C, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x11, 0x14, 0xA6, 0xCB, 0xBA, 0x15, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB0, 0xF2, 0xD4, 0xC9, 0xDA, 0xBA, 0xD7), }; static const mbedtls_mpi_uint secp192k1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0xC1, 0x9C, 0xE6, 0xBB, 0xFB, 0xCF, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x19, 0xAC, 0x5A, 0xC9, 0x8A, 0x1C, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0xF6, 0x76, 0x86, 0x89, 0x27, 0x8D, 0x28 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0xC1, 0x9C, 0xE6, 0xBB, 0xFB, 0xCF, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x19, 0xAC, 0x5A, 0xC9, 0x8A, 0x1C, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xF6, 0x76, 0x86, 0x89, 0x27, 0x8D, 0x28), }; static const mbedtls_mpi_uint secp192k1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0xE0, 0x6F, 0x34, 0xBA, 0x5E, 0xD3, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0xDC, 0xA6, 0x87, 0xC9, 0x9D, 0xC0, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x11, 0x7E, 0xD6, 0xF7, 0x33, 0xFC, 0xE4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xE0, 0x6F, 0x34, 0xBA, 0x5E, 0xD3, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xDC, 0xA6, 0x87, 0xC9, 0x9D, 0xC0, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x11, 0x7E, 0xD6, 0xF7, 0x33, 0xFC, 0xE4), }; static const mbedtls_mpi_uint secp192k1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x37, 0x3E, 0xC0, 0x7F, 0x62, 0xE7, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x3B, 0x69, 0x9D, 0x44, 0xBC, 0x82, 0x99 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x84, 0xB3, 0x5F, 0x2B, 0xA5, 0x9E, 0x2C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x37, 0x3E, 0xC0, 0x7F, 0x62, 0xE7, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3B, 0x69, 0x9D, 0x44, 0xBC, 0x82, 0x99), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x84, 0xB3, 0x5F, 0x2B, 0xA5, 0x9E, 0x2C), }; static const mbedtls_mpi_uint secp192k1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x95, 0xEB, 0x4C, 0x04, 0xB4, 0xF4, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0xAD, 0x4B, 0xD5, 0x9A, 0xEB, 0xC4, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xB1, 0xC5, 0x59, 0xE3, 0xD5, 0x16, 0x2A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x95, 0xEB, 0x4C, 0x04, 0xB4, 0xF4, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xAD, 0x4B, 0xD5, 0x9A, 0xEB, 0xC4, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xB1, 0xC5, 0x59, 0xE3, 0xD5, 0x16, 0x2A), }; static const mbedtls_mpi_uint secp192k1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0x2A, 0xCC, 0xAC, 0xD0, 0xEE, 0x50, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x83, 0xE0, 0x5B, 0x14, 0x44, 0x52, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x15, 0x2D, 0x78, 0xF6, 0x51, 0x32, 0xCF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x2A, 0xCC, 0xAC, 0xD0, 0xEE, 0x50, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x83, 0xE0, 0x5B, 0x14, 0x44, 0x52, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x15, 0x2D, 0x78, 0xF6, 0x51, 0x32, 0xCF), }; static const mbedtls_mpi_uint secp192k1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x36, 0x9B, 0xDD, 0xF8, 0xDD, 0xEF, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0xB1, 0x6A, 0x2B, 0xAF, 0xEB, 0x2B, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x87, 0x7A, 0x66, 0x5D, 0x5B, 0xDF, 0x8F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x36, 0x9B, 0xDD, 0xF8, 0xDD, 0xEF, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xB1, 0x6A, 0x2B, 0xAF, 0xEB, 0x2B, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x87, 0x7A, 0x66, 0x5D, 0x5B, 0xDF, 0x8F), }; static const mbedtls_mpi_uint secp192k1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x45, 0xE5, 0x81, 0x9B, 0xEB, 0x37, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x29, 0xE2, 0x20, 0x64, 0x23, 0x6B, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0x1D, 0x41, 0xE1, 0x9B, 0x61, 0x7B, 0xD9 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x45, 0xE5, 0x81, 0x9B, 0xEB, 0x37, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x29, 0xE2, 0x20, 0x64, 0x23, 0x6B, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x1D, 0x41, 0xE1, 0x9B, 0x61, 0x7B, 0xD9), }; static const mbedtls_mpi_uint secp192k1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x57, 0xA3, 0x0A, 0x13, 0xE4, 0x59, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0x6E, 0x4A, 0x48, 0x84, 0x90, 0xAC, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0xB8, 0xF5, 0xF3, 0xDE, 0xA0, 0xA1, 0x1D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x57, 0xA3, 0x0A, 0x13, 0xE4, 0x59, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x6E, 0x4A, 0x48, 0x84, 0x90, 0xAC, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB8, 0xF5, 0xF3, 0xDE, 0xA0, 0xA1, 0x1D), }; static const mbedtls_mpi_uint secp192k1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x32, 0x81, 0xA9, 0x91, 0x5A, 0x4E, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0xA8, 0x90, 0xBE, 0x0F, 0xEC, 0xC0, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x30, 0xD7, 0x08, 0xAE, 0xC4, 0x3A, 0xA5 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x32, 0x81, 0xA9, 0x91, 0x5A, 0x4E, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xA8, 0x90, 0xBE, 0x0F, 0xEC, 0xC0, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x30, 0xD7, 0x08, 0xAE, 0xC4, 0x3A, 0xA5), }; static const mbedtls_mpi_uint secp192k1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x55, 0xE3, 0x76, 0xB3, 0x64, 0x74, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x75, 0xD4, 0xDB, 0x98, 0xD7, 0x39, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0xEB, 0x8A, 0xAB, 0x16, 0xD9, 0xD4, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x55, 0xE3, 0x76, 0xB3, 0x64, 0x74, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x75, 0xD4, 0xDB, 0x98, 0xD7, 0x39, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xEB, 0x8A, 0xAB, 0x16, 0xD9, 0xD4, 0x0B), }; static const mbedtls_mpi_uint secp192k1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xBE, 0xF9, 0xC7, 0xC7, 0xBA, 0xF3, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x85, 0x59, 0xF3, 0x60, 0x41, 0x02, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x1C, 0x4A, 0xA4, 0xC7, 0xED, 0x66, 0xBC ), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xBE, 0xF9, 0xC7, 0xC7, 0xBA, 0xF3, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x85, 0x59, 0xF3, 0x60, 0x41, 0x02, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x1C, 0x4A, 0xA4, 0xC7, 0xED, 0x66, 0xBC), }; static const mbedtls_mpi_uint secp192k1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x9C, 0x2E, 0x46, 0x52, 0x18, 0x87, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x35, 0x5A, 0x75, 0xAC, 0x4D, 0x75, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0x2F, 0xAC, 0xFC, 0xBC, 0xE6, 0x93, 0x5E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x2E, 0x46, 0x52, 0x18, 0x87, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x35, 0x5A, 0x75, 0xAC, 0x4D, 0x75, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0x2F, 0xAC, 0xFC, 0xBC, 0xE6, 0x93, 0x5E), }; static const mbedtls_mpi_uint secp192k1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x4D, 0xC9, 0x18, 0xE9, 0x00, 0xEB, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x69, 0x72, 0x07, 0x5A, 0x59, 0xA8, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x65, 0x83, 0x20, 0x10, 0xF9, 0x69, 0x82 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x4D, 0xC9, 0x18, 0xE9, 0x00, 0xEB, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x69, 0x72, 0x07, 0x5A, 0x59, 0xA8, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x65, 0x83, 0x20, 0x10, 0xF9, 0x69, 0x82), }; static const mbedtls_mpi_uint secp192k1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0x56, 0x7F, 0x9F, 0xBF, 0x46, 0x0C, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0xCF, 0xF0, 0xDC, 0xDF, 0x2D, 0xE6, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0xF0, 0x72, 0x3A, 0x7A, 0x03, 0xE5, 0x22 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x56, 0x7F, 0x9F, 0xBF, 0x46, 0x0C, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xCF, 0xF0, 0xDC, 0xDF, 0x2D, 0xE6, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xF0, 0x72, 0x3A, 0x7A, 0x03, 0xE5, 0x22), }; static const mbedtls_mpi_uint secp192k1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0xAA, 0x57, 0x13, 0x37, 0xA7, 0x2C, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0xAC, 0xA2, 0x23, 0xF9, 0x84, 0x60, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0xEB, 0x51, 0x70, 0x64, 0x78, 0xCA, 0x05 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xAA, 0x57, 0x13, 0x37, 0xA7, 0x2C, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xAC, 0xA2, 0x23, 0xF9, 0x84, 0x60, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xEB, 0x51, 0x70, 0x64, 0x78, 0xCA, 0x05), }; static const mbedtls_mpi_uint secp192k1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xCC, 0x30, 0x62, 0x93, 0x46, 0x13, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x26, 0xCC, 0x6C, 0x3D, 0x5C, 0xDA, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0xAA, 0xB8, 0x03, 0xA4, 0x1A, 0x00, 0x96 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xCC, 0x30, 0x62, 0x93, 0x46, 0x13, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x26, 0xCC, 0x6C, 0x3D, 0x5C, 0xDA, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xAA, 0xB8, 0x03, 0xA4, 0x1A, 0x00, 0x96), }; static const mbedtls_mpi_uint secp192k1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x9D, 0xE6, 0xCC, 0x4E, 0x2E, 0xC2, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xC3, 0x8A, 0xAE, 0x6F, 0x40, 0x05, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x8F, 0x4A, 0x4D, 0x35, 0xD3, 0x50, 0x9D ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x9D, 0xE6, 0xCC, 0x4E, 0x2E, 0xC2, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xC3, 0x8A, 0xAE, 0x6F, 0x40, 0x05, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x8F, 0x4A, 0x4D, 0x35, 0xD3, 0x50, 0x9D), }; static const mbedtls_mpi_uint secp192k1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0xFD, 0x98, 0xAB, 0xC7, 0x03, 0xB4, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x40, 0xD2, 0x9F, 0xCA, 0xD0, 0x53, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x84, 0x00, 0x6F, 0xC8, 0xAD, 0xED, 0x8D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xFD, 0x98, 0xAB, 0xC7, 0x03, 0xB4, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x40, 0xD2, 0x9F, 0xCA, 0xD0, 0x53, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x84, 0x00, 0x6F, 0xC8, 0xAD, 0xED, 0x8D), }; static const mbedtls_mpi_uint secp192k1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xD3, 0x57, 0xD7, 0xC3, 0x07, 0xBD, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0xBA, 0x47, 0x1D, 0x3D, 0xEF, 0x98, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xC0, 0x6C, 0x7F, 0x12, 0xEE, 0x9F, 0x67 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xD3, 0x57, 0xD7, 0xC3, 0x07, 0xBD, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xBA, 0x47, 0x1D, 0x3D, 0xEF, 0x98, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC0, 0x6C, 0x7F, 0x12, 0xEE, 0x9F, 0x67), }; static const mbedtls_mpi_uint secp192k1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x02, 0xDA, 0x79, 0xAA, 0xC9, 0x27, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x79, 0xC7, 0x71, 0x84, 0xCB, 0xE5, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x37, 0x06, 0xBA, 0xB5, 0xD5, 0x18, 0x4C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x02, 0xDA, 0x79, 0xAA, 0xC9, 0x27, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x79, 0xC7, 0x71, 0x84, 0xCB, 0xE5, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x37, 0x06, 0xBA, 0xB5, 0xD5, 0x18, 0x4C), }; static const mbedtls_mpi_uint secp192k1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x65, 0x72, 0x6C, 0xF2, 0x63, 0x27, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0xBC, 0x71, 0xDF, 0x75, 0xF8, 0x98, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x70, 0x9B, 0xDC, 0xE7, 0x18, 0x71, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x65, 0x72, 0x6C, 0xF2, 0x63, 0x27, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0xBC, 0x71, 0xDF, 0x75, 0xF8, 0x98, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x70, 0x9B, 0xDC, 0xE7, 0x18, 0x71, 0xFF), }; static const mbedtls_mpi_uint secp192k1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x5B, 0x9F, 0x00, 0x5A, 0xB6, 0x80, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xE0, 0xBB, 0xFC, 0x5E, 0x78, 0x9C, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x60, 0x03, 0x68, 0x83, 0x3D, 0x2E, 0x4C, 0xDD ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x5B, 0x9F, 0x00, 0x5A, 0xB6, 0x80, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xE0, 0xBB, 0xFC, 0x5E, 0x78, 0x9C, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x03, 0x68, 0x83, 0x3D, 0x2E, 0x4C, 0xDD), }; static const mbedtls_mpi_uint secp192k1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0x49, 0x23, 0xA8, 0xCB, 0x3B, 0x1A, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0x3D, 0xA7, 0x46, 0xCF, 0x75, 0xB6, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0xFD, 0x30, 0x01, 0xB6, 0xEF, 0xF9, 0xE8 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x49, 0x23, 0xA8, 0xCB, 0x3B, 0x1A, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x3D, 0xA7, 0x46, 0xCF, 0x75, 0xB6, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0xFD, 0x30, 0x01, 0xB6, 0xEF, 0xF9, 0xE8), }; static const mbedtls_mpi_uint secp192k1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0xFA, 0xDA, 0xB8, 0x29, 0x42, 0xC9, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0xD7, 0xA0, 0xE6, 0x6B, 0x86, 0x61, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0xE9, 0xD3, 0x37, 0xD8, 0xE7, 0x35, 0xA9 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xFA, 0xDA, 0xB8, 0x29, 0x42, 0xC9, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xD7, 0xA0, 0xE6, 0x6B, 0x86, 0x61, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0xE9, 0xD3, 0x37, 0xD8, 0xE7, 0x35, 0xA9), }; static const mbedtls_mpi_uint secp192k1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xC8, 0x8E, 0xB1, 0xCB, 0xB1, 0xB5, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xD7, 0x46, 0x7D, 0xAF, 0xE2, 0xDC, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x46, 0xE7, 0xD8, 0x76, 0x31, 0x90, 0x76 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC8, 0x8E, 0xB1, 0xCB, 0xB1, 0xB5, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xD7, 0x46, 0x7D, 0xAF, 0xE2, 0xDC, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x46, 0xE7, 0xD8, 0x76, 0x31, 0x90, 0x76), }; static const mbedtls_mpi_uint secp192k1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0xD3, 0xF4, 0x74, 0xE1, 0x67, 0xD8, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x70, 0x3C, 0xC8, 0xAF, 0x5F, 0xF4, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x4E, 0xED, 0x5C, 0x43, 0xB3, 0x16, 0x35 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD3, 0xF4, 0x74, 0xE1, 0x67, 0xD8, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x70, 0x3C, 0xC8, 0xAF, 0x5F, 0xF4, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x4E, 0xED, 0x5C, 0x43, 0xB3, 0x16, 0x35), }; static const mbedtls_mpi_uint secp192k1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xAE, 0xD1, 0xDD, 0x31, 0x14, 0xD3, 0xF0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x14, 0x06, 0x13, 0x12, 0x1C, 0x81, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0xF9, 0x0C, 0x91, 0xF7, 0x67, 0x59, 0x63 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAE, 0xD1, 0xDD, 0x31, 0x14, 0xD3, 0xF0), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x14, 0x06, 0x13, 0x12, 0x1C, 0x81, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xF9, 0x0C, 0x91, 0xF7, 0x67, 0x59, 0x63), }; static const mbedtls_mpi_uint secp192k1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x91, 0xE2, 0xF4, 0x9D, 0xEB, 0x88, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x82, 0x30, 0x9C, 0xAE, 0x18, 0x4D, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x79, 0xCF, 0x17, 0xA5, 0x1E, 0xE8, 0xC8 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x91, 0xE2, 0xF4, 0x9D, 0xEB, 0x88, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x82, 0x30, 0x9C, 0xAE, 0x18, 0x4D, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x79, 0xCF, 0x17, 0xA5, 0x1E, 0xE8, 0xC8), }; static const mbedtls_ecp_point secp192k1_T[16] = { ECP_POINT_INIT_XY_Z1(secp192k1_T_0_X, secp192k1_T_0_Y), @@ -2399,228 +2399,228 @@ static const mbedtls_ecp_point secp192k1_T[16] = { #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) static const mbedtls_mpi_uint secp224k1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_4( 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xE5, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_4(0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp224k1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x05, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x05, 0x00), }; static const mbedtls_mpi_uint secp224k1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_4( 0x33, 0x5B, 0x45, 0xA1 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_4(0x33, 0x5B, 0x45, 0xA1), }; static const mbedtls_mpi_uint secp224k1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_4( 0xED, 0x9F, 0x08, 0x7E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_4(0xED, 0x9F, 0x08, 0x7E), }; static const mbedtls_mpi_uint secp224k1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xB1, 0x9F, 0x76, 0x71, 0xA9, 0xF0, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x61, 0xEC, 0xD2, 0xE8, 0xDC, 0x01, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp224k1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xA4, 0xB7, 0xB6, 0x0E, 0x65, 0x7E, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x75, 0x70, 0xE4, 0xE9, 0x67, 0xA4, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x28, 0xFC, 0x30, 0xDF, 0x99, 0xF0, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x5B, 0x45, 0xA1, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x61, 0x6D, 0x55, 0xDB, 0x4B, 0xCA, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xBD, 0xB0, 0xC0, 0xF7, 0x19, 0xE3, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xFB, 0xCA, 0x82, 0x42, 0x34, 0xBA, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x9F, 0x08, 0x7E, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x6C, 0x22, 0x22, 0x40, 0x89, 0xAE, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x92, 0xE1, 0x87, 0x56, 0x35, 0xAF, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xAF, 0x08, 0x35, 0x27, 0xEA, 0x04, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x53, 0xFD, 0xCF, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0xD0, 0x9F, 0x8D, 0xF3, 0x63, 0x54, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xDB, 0x0F, 0x61, 0x54, 0x26, 0xD1, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x21, 0xF7, 0x1B, 0xB5, 0x1D, 0xF6, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x05, 0xDA, 0x8F, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x26, 0x73, 0xBC, 0xE4, 0x29, 0x62, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x95, 0x17, 0x8B, 0xC3, 0x9B, 0xAC, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0xDB, 0x77, 0xDF, 0xDD, 0x13, 0x04, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0xFC, 0x22, 0x93, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0xF1, 0x5A, 0x37, 0xEF, 0x79, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x01, 0x37, 0xAC, 0x9A, 0x5B, 0x51, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x75, 0x13, 0xA9, 0x4A, 0xAD, 0xFE, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x82, 0x6F, 0x66, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x5E, 0xF0, 0x40, 0xC3, 0xA6, 0xE2, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x9A, 0x6F, 0xCF, 0x11, 0x26, 0x66, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0x73, 0xA8, 0xCF, 0x2B, 0x12, 0x36, 0x37), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xB3, 0x0A, 0x58, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x79, 0x00, 0x55, 0x04, 0x34, 0x90, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x54, 0x1C, 0xC2, 0x45, 0x0C, 0x1B, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x19, 0xAB, 0xA8, 0xFC, 0x73, 0xDC, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xFB, 0x93, 0xCE, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x75, 0xD0, 0x66, 0x95, 0x86, 0xCA, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xEA, 0x29, 0x16, 0x6A, 0x38, 0xDF, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xA2, 0x36, 0x2F, 0xDC, 0xBB, 0x5E, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x89, 0x59, 0x49, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xA3, 0x99, 0x9D, 0xB8, 0x77, 0x9D, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x93, 0x43, 0x47, 0xC6, 0x5C, 0xF9, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x00, 0x79, 0x42, 0x64, 0xB8, 0x25, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x54, 0xB4, 0x33, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x0C, 0x42, 0x90, 0x83, 0x0B, 0x31, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x2E, 0xAE, 0xC8, 0xC7, 0x5F, 0xD2, 0x70), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xBC, 0xAD, 0x41, 0xE7, 0x32, 0x3A, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x97, 0x52, 0x83, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x13, 0x7A, 0xBD, 0xAE, 0x94, 0x60, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x9B, 0x95, 0xB4, 0x6E, 0x68, 0xB2, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x49, 0xBE, 0x51, 0xFE, 0x66, 0x15, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x37, 0xE4, 0xFE, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x9B, 0xEE, 0x64, 0xC9, 0x1B, 0xBD, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x5F, 0x34, 0xA9, 0x0B, 0xB7, 0x25, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0x13, 0xB1, 0x38, 0xFB, 0x9D, 0x78, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xE7, 0x1B, 0xFA, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xB3, 0xB7, 0x44, 0x92, 0x6B, 0x00, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x82, 0x44, 0x3E, 0x18, 0x1A, 0x58, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0xF8, 0xC0, 0xE4, 0xEE, 0xC1, 0xBF, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x32, 0x27, 0xB2, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x9A, 0x42, 0x62, 0x8B, 0x26, 0x54, 0x21), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x85, 0x74, 0xA0, 0x79, 0xA8, 0xEE, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x36, 0x60, 0xB3, 0x28, 0x4D, 0x55, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x27, 0x82, 0x29, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xFC, 0x73, 0x77, 0xAF, 0x5C, 0xAC, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xED, 0xE5, 0xF6, 0x1D, 0xA8, 0x67, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xDE, 0x33, 0x1C, 0xF1, 0x80, 0x73, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xE2, 0xDE, 0x3C, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x3E, 0x6B, 0xFE, 0xF0, 0x04, 0x28, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xB2, 0x14, 0x9D, 0x18, 0x11, 0x7D, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xC4, 0xD6, 0x2E, 0x6E, 0x57, 0x4D, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x55, 0x1B, 0xDE, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xF7, 0x17, 0xBC, 0x45, 0xAB, 0x16, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xB0, 0xEF, 0x61, 0xE3, 0x20, 0x7C, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x85, 0x41, 0x4D, 0xF1, 0x7E, 0x4D, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC2, 0x9B, 0x5E, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x2E, 0x49, 0x3D, 0x3E, 0x4B, 0xD3, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x2B, 0x9D, 0xD5, 0x27, 0xFA, 0xCA, 0xE0), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0xB3, 0x6A, 0xE0, 0x79, 0x14, 0x28, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x1E, 0xDC, 0xF5, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x44, 0x56, 0xCD, 0xFC, 0x9F, 0x09, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x8C, 0x59, 0xA4, 0x64, 0x2A, 0x3A, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xA0, 0xB5, 0x86, 0x4E, 0x69, 0xDA, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x8B, 0x11, 0x38, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x17, 0x16, 0x12, 0x17, 0xDC, 0x00, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0x76, 0x24, 0x6C, 0x97, 0x2C, 0xB5, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x71, 0xE3, 0xB0, 0xBB, 0x4E, 0x50, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0x48, 0x26, 0xD5, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x5F, 0x28, 0xF6, 0x01, 0x5A, 0x60, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x95, 0xFE, 0xD0, 0xAD, 0x15, 0xD4, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x5B, 0x7A, 0xFD, 0x80, 0xF7, 0x9F, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xBC, 0x1B, 0xDF, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xE6, 0xDF, 0x14, 0x29, 0xF4, 0xD4, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x12, 0xDD, 0xEC, 0x5B, 0x8A, 0x59, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x92, 0x3E, 0x35, 0x08, 0xE9, 0xCF, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0x35, 0x29, 0x97, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xDB, 0xD6, 0x6A, 0xC5, 0x43, 0xA4, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x33, 0x50, 0x61, 0x70, 0xA1, 0xE9, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x15, 0x6E, 0x5F, 0x01, 0x0C, 0x8C, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xA1, 0x9A, 0x9D, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xC6, 0xF7, 0xE2, 0x4A, 0xCD, 0x9B, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x4D, 0x5A, 0xB8, 0xE2, 0x6D, 0xA6, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x3F, 0xB6, 0x17, 0xE3, 0x2C, 0x6F, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xA4, 0x59, 0x51, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x4F, 0x7C, 0x49, 0xCD, 0x6E, 0xEB, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xC9, 0x1F, 0xB7, 0x4D, 0x98, 0xC7, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0x4C, 0xFD, 0x98, 0x20, 0x95, 0xBB, 0x20, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xF2, 0x73, 0x92, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xEF, 0xFB, 0x30, 0xFA, 0x12, 0x1A, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x4C, 0x24, 0xB4, 0x5B, 0xC9, 0x4C, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xDD, 0x5E, 0x84, 0x95, 0x4D, 0x26, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xFA, 0xF9, 0x3A, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0xA3, 0x2E, 0x7A, 0xDC, 0xA7, 0x53, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x9F, 0x81, 0x84, 0xB2, 0x0D, 0xFE, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x89, 0x1B, 0x77, 0x0C, 0x89, 0x71, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xFF, 0x7F, 0xB2, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xE9, 0x2C, 0x79, 0xA6, 0x3C, 0xAD, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xE0, 0x23, 0x02, 0x86, 0x0F, 0x77, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x93, 0x6D, 0xE9, 0xF9, 0x3C, 0xBE, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0xE7, 0x24, 0x92, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x3C, 0x5B, 0x4B, 0x1B, 0x25, 0x37, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xE8, 0x38, 0x1B, 0xA1, 0x5A, 0x2E, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x19, 0xFD, 0xF4, 0x78, 0x01, 0x6B, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0x69, 0x37, 0x4F, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xE2, 0xBF, 0xD3, 0xEC, 0x95, 0x9C, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x7B, 0xFC, 0xD5, 0xD3, 0x25, 0x5E, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x55, 0x09, 0xA2, 0x58, 0x6A, 0xC9, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xCC, 0x3B, 0xD9, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_mpi_uint secp224k1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x08, 0x65, 0x5E, 0xCB, 0xAB, 0x48, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x79, 0x8B, 0xC0, 0x11, 0xC0, 0x69, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xE8, 0x8C, 0x4C, 0xC5, 0x28, 0xE4, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x1F, 0x34, 0x5C, 0x00, 0x00, 0x00, 0x00), }; static const mbedtls_ecp_point secp224k1_T[16] = { ECP_POINT_INIT_XY_Z1(secp224k1_T_0_X, secp224k1_T_0_Y), @@ -2647,228 +2647,228 @@ static const mbedtls_ecp_point secp224k1_T[16] = { #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) static const mbedtls_mpi_uint secp256k1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xFC, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; static const mbedtls_mpi_uint secp256k1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x00, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x00, 0x00), }; static const mbedtls_mpi_uint secp256k1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_2( 0x07, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_2(0x07, 0x00), }; static const mbedtls_mpi_uint secp256k1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79), }; static const mbedtls_mpi_uint secp256k1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48), }; static const mbedtls_mpi_uint secp256k1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x41, 0x36, 0xD0, 0x8C, 0x5E, 0xD2, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0xA0, 0x48, 0xAF, 0xE6, 0xDC, 0xAE, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x41, 0x36, 0xD0, 0x8C, 0x5E, 0xD2, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xA0, 0x48, 0xAF, 0xE6, 0xDC, 0xAE, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint secp256k1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x17, 0xF8, 0x16, 0x5B, 0x81, 0xF2, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x28, 0xCE, 0x2D, 0xDB, 0xFC, 0x9B, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x0B, 0x87, 0xCE, 0x95, 0x62, 0xA0, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xBB, 0xDC, 0xF9, 0x7E, 0x66, 0xBE, 0x79), }; static const mbedtls_mpi_uint secp256k1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0xD4, 0x10, 0xFB, 0x8F, 0xD0, 0x47, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x54, 0x85, 0xA6, 0x48, 0xB4, 0x17, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x08, 0x11, 0x0E, 0xFC, 0xFB, 0xA4, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC4, 0xA3, 0x26, 0x77, 0xDA, 0x3A, 0x48), }; static const mbedtls_mpi_uint secp256k1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0xEE, 0xD7, 0x1E, 0x67, 0x86, 0x32, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0x73, 0xB1, 0xA9, 0xD5, 0xCC, 0x27, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x0E, 0x11, 0x01, 0x71, 0xFE, 0x92, 0x73 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x28, 0x63, 0x6D, 0x72, 0x09, 0xA6, 0xC0 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xEE, 0xD7, 0x1E, 0x67, 0x86, 0x32, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0xB1, 0xA9, 0xD5, 0xCC, 0x27, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x0E, 0x11, 0x01, 0x71, 0xFE, 0x92, 0x73), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x28, 0x63, 0x6D, 0x72, 0x09, 0xA6, 0xC0), }; static const mbedtls_mpi_uint secp256k1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xE1, 0x69, 0xDC, 0x3E, 0x2C, 0x75, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0xB7, 0x3F, 0x30, 0x26, 0x3C, 0xDF, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xBE, 0xB9, 0x5D, 0x0E, 0xE8, 0x5E, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0xC3, 0x05, 0xD6, 0xB7, 0xD5, 0x24, 0xFC ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0x69, 0xDC, 0x3E, 0x2C, 0x75, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xB7, 0x3F, 0x30, 0x26, 0x3C, 0xDF, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xBE, 0xB9, 0x5D, 0x0E, 0xE8, 0x5E, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0xC3, 0x05, 0xD6, 0xB7, 0xD5, 0x24, 0xFC), }; static const mbedtls_mpi_uint secp256k1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0xCF, 0x7B, 0xDC, 0xCD, 0xC3, 0x39, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0xDA, 0xB9, 0xE5, 0x64, 0xA7, 0x47, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0x46, 0xA8, 0x61, 0xF6, 0x23, 0xEB, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xC1, 0xFF, 0xE4, 0x55, 0xD5, 0xC2, 0xBF ), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0xCF, 0x7B, 0xDC, 0xCD, 0xC3, 0x39, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0xDA, 0xB9, 0xE5, 0x64, 0xA7, 0x47, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0x46, 0xA8, 0x61, 0xF6, 0x23, 0xEB, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xC1, 0xFF, 0xE4, 0x55, 0xD5, 0xC2, 0xBF), }; static const mbedtls_mpi_uint secp256k1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xBE, 0xB9, 0x59, 0x24, 0x13, 0x4A, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x45, 0x12, 0xDE, 0xBA, 0x4F, 0xEF, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x08, 0xBF, 0xC1, 0x66, 0xAA, 0x0A, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0xFE, 0x30, 0x55, 0x31, 0x86, 0xA7, 0xB4 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xBE, 0xB9, 0x59, 0x24, 0x13, 0x4A, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x45, 0x12, 0xDE, 0xBA, 0x4F, 0xEF, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x08, 0xBF, 0xC1, 0x66, 0xAA, 0x0A, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xFE, 0x30, 0x55, 0x31, 0x86, 0xA7, 0xB4), }; static const mbedtls_mpi_uint secp256k1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0xBF, 0x18, 0x81, 0x67, 0x27, 0x42, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x05, 0x83, 0xA4, 0xDD, 0x57, 0xD3, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0x63, 0xAB, 0xE4, 0x90, 0x70, 0xD0, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x5D, 0xFD, 0xA0, 0xEF, 0xCF, 0x1C, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBF, 0x18, 0x81, 0x67, 0x27, 0x42, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x05, 0x83, 0xA4, 0xDD, 0x57, 0xD3, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x63, 0xAB, 0xE4, 0x90, 0x70, 0xD0, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x5D, 0xFD, 0xA0, 0xEF, 0xCF, 0x1C, 0x54), }; static const mbedtls_mpi_uint secp256k1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x80, 0xE4, 0xF6, 0x09, 0xBC, 0x57, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x9F, 0x6E, 0x88, 0x54, 0x6E, 0x51, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x5F, 0x85, 0xFB, 0x84, 0x3E, 0x4A, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x19, 0xF5, 0x55, 0xC9, 0x07, 0xD8, 0xCE ), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x80, 0xE4, 0xF6, 0x09, 0xBC, 0x57, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x9F, 0x6E, 0x88, 0x54, 0x6E, 0x51, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x5F, 0x85, 0xFB, 0x84, 0x3E, 0x4A, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x19, 0xF5, 0x55, 0xC9, 0x07, 0xD8, 0xCE), }; static const mbedtls_mpi_uint secp256k1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0xB4, 0xC3, 0xD9, 0x5C, 0xA0, 0xD4, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x30, 0xAF, 0x59, 0x9B, 0xF8, 0x04, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0xA6, 0xFD, 0x66, 0x7B, 0xC3, 0x39, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE0, 0xBF, 0xF0, 0xC2, 0xE9, 0x71, 0xA4, 0x9E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xB4, 0xC3, 0xD9, 0x5C, 0xA0, 0xD4, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x30, 0xAF, 0x59, 0x9B, 0xF8, 0x04, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xA6, 0xFD, 0x66, 0x7B, 0xC3, 0x39, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0xE0, 0xBF, 0xF0, 0xC2, 0xE9, 0x71, 0xA4, 0x9E), }; static const mbedtls_mpi_uint secp256k1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0x2D, 0xB9, 0x88, 0x28, 0xF1, 0xBE, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0xF3, 0x1A, 0x0E, 0xB9, 0x01, 0x66, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0xA7, 0xA4, 0xF4, 0x05, 0xD0, 0xAA, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x39, 0x1E, 0x47, 0xE5, 0x68, 0xC8, 0xC0 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x2D, 0xB9, 0x88, 0x28, 0xF1, 0xBE, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xF3, 0x1A, 0x0E, 0xB9, 0x01, 0x66, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0xA4, 0xF4, 0x05, 0xD0, 0xAA, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x39, 0x1E, 0x47, 0xE5, 0x68, 0xC8, 0xC0), }; static const mbedtls_mpi_uint secp256k1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0xB9, 0xFC, 0xE0, 0x33, 0x8A, 0x7D, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x93, 0xA5, 0x53, 0x55, 0x16, 0xB4, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x5F, 0xEA, 0x9B, 0x29, 0x52, 0x71, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0xF0, 0x24, 0xB8, 0x7D, 0xB7, 0xA0, 0x9B ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xB9, 0xFC, 0xE0, 0x33, 0x8A, 0x7D, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x93, 0xA5, 0x53, 0x55, 0x16, 0xB4, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x5F, 0xEA, 0x9B, 0x29, 0x52, 0x71, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xF0, 0x24, 0xB8, 0x7D, 0xB7, 0xA0, 0x9B), }; static const mbedtls_mpi_uint secp256k1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x00, 0x27, 0xB2, 0xDF, 0x73, 0xA2, 0xE0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x2E, 0x4D, 0x7C, 0xDE, 0x7A, 0x23, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x65, 0x60, 0xC7, 0x97, 0x1E, 0xA4, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x13, 0x5B, 0x77, 0x59, 0xCB, 0x36, 0xE1 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x00, 0x27, 0xB2, 0xDF, 0x73, 0xA2, 0xE0), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x2E, 0x4D, 0x7C, 0xDE, 0x7A, 0x23, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x65, 0x60, 0xC7, 0x97, 0x1E, 0xA4, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x13, 0x5B, 0x77, 0x59, 0xCB, 0x36, 0xE1), }; static const mbedtls_mpi_uint secp256k1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xBC, 0x9F, 0x9E, 0x2D, 0x53, 0x2A, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x5F, 0x64, 0x9F, 0x1A, 0x19, 0xE6, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x7B, 0x39, 0xD2, 0xDB, 0x85, 0x84, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0xC7, 0x0D, 0x58, 0x6E, 0x3F, 0x52, 0x15 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xBC, 0x9F, 0x9E, 0x2D, 0x53, 0x2A, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x5F, 0x64, 0x9F, 0x1A, 0x19, 0xE6, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x7B, 0x39, 0xD2, 0xDB, 0x85, 0x84, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xC7, 0x0D, 0x58, 0x6E, 0x3F, 0x52, 0x15), }; static const mbedtls_mpi_uint secp256k1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x68, 0x19, 0x0B, 0x68, 0xC9, 0x1E, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x4E, 0x21, 0x49, 0x3D, 0x55, 0xCC, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xF9, 0x25, 0x45, 0x54, 0x45, 0xB1, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0xB3, 0xF7, 0xCD, 0x80, 0xA4, 0x04, 0x05 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x68, 0x19, 0x0B, 0x68, 0xC9, 0x1E, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x4E, 0x21, 0x49, 0x3D, 0x55, 0xCC, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xF9, 0x25, 0x45, 0x54, 0x45, 0xB1, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xF7, 0xCD, 0x80, 0xA4, 0x04, 0x05), }; static const mbedtls_mpi_uint secp256k1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x1E, 0x88, 0xC4, 0xAA, 0x18, 0x7E, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0xAC, 0xD9, 0xB2, 0xA1, 0xC0, 0x71, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0xA2, 0xF1, 0x15, 0xA6, 0x5F, 0x6C, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x5B, 0x05, 0xBC, 0xB7, 0xC6, 0x4E, 0x72 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x1E, 0x88, 0xC4, 0xAA, 0x18, 0x7E, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xAC, 0xD9, 0xB2, 0xA1, 0xC0, 0x71, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xA2, 0xF1, 0x15, 0xA6, 0x5F, 0x6C, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x5B, 0x05, 0xBC, 0xB7, 0xC6, 0x4E, 0x72), }; static const mbedtls_mpi_uint secp256k1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x80, 0xF8, 0x5C, 0x20, 0x2A, 0xE1, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x48, 0x2E, 0x68, 0x82, 0x7F, 0xEB, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA2, 0x3B, 0x25, 0xDB, 0x32, 0x4D, 0x88, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0x6E, 0xA6, 0xB6, 0x6D, 0x62, 0x78, 0x22 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x80, 0xF8, 0x5C, 0x20, 0x2A, 0xE1, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x48, 0x2E, 0x68, 0x82, 0x7F, 0xEB, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x3B, 0x25, 0xDB, 0x32, 0x4D, 0x88, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0x6E, 0xA6, 0xB6, 0x6D, 0x62, 0x78, 0x22), }; static const mbedtls_mpi_uint secp256k1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x4D, 0x3E, 0x86, 0x58, 0xC3, 0xEB, 0xBA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x89, 0x33, 0x18, 0x21, 0x1D, 0x9B, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x9D, 0xFF, 0xC3, 0x79, 0xC1, 0x88, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0xD4, 0x48, 0x53, 0xE8, 0xAD, 0x21, 0x16 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4D, 0x3E, 0x86, 0x58, 0xC3, 0xEB, 0xBA), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x89, 0x33, 0x18, 0x21, 0x1D, 0x9B, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x9D, 0xFF, 0xC3, 0x79, 0xC1, 0x88, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0xD4, 0x48, 0x53, 0xE8, 0xAD, 0x21, 0x16), }; static const mbedtls_mpi_uint secp256k1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x7B, 0xDE, 0xCB, 0xD8, 0x39, 0x17, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0xF3, 0x03, 0xF2, 0x5C, 0xBC, 0xC8, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0xAE, 0x4C, 0xB0, 0x16, 0xA4, 0x93, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x8B, 0x6B, 0xDC, 0xD7, 0x9A, 0x3E, 0x7E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x7B, 0xDE, 0xCB, 0xD8, 0x39, 0x17, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xF3, 0x03, 0xF2, 0x5C, 0xBC, 0xC8, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0xAE, 0x4C, 0xB0, 0x16, 0xA4, 0x93, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8B, 0x6B, 0xDC, 0xD7, 0x9A, 0x3E, 0x7E), }; static const mbedtls_mpi_uint secp256k1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x2D, 0x7A, 0xD2, 0x59, 0x05, 0xA2, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x56, 0x09, 0x32, 0xF1, 0xE8, 0xE3, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0xCA, 0xE5, 0x2E, 0xF0, 0xFB, 0x18, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x85, 0xA9, 0x23, 0x15, 0x31, 0x1F, 0x0E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x2D, 0x7A, 0xD2, 0x59, 0x05, 0xA2, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x56, 0x09, 0x32, 0xF1, 0xE8, 0xE3, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0xCA, 0xE5, 0x2E, 0xF0, 0xFB, 0x18, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x85, 0xA9, 0x23, 0x15, 0x31, 0x1F, 0x0E), }; static const mbedtls_mpi_uint secp256k1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0xE5, 0xB1, 0x86, 0xB9, 0x6E, 0x8D, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x77, 0xFC, 0xC9, 0xA3, 0x3F, 0x89, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x6A, 0xDC, 0x25, 0xB0, 0xC7, 0x41, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x11, 0x6B, 0xA6, 0x11, 0x62, 0xD4, 0x2D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xE5, 0xB1, 0x86, 0xB9, 0x6E, 0x8D, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x77, 0xFC, 0xC9, 0xA3, 0x3F, 0x89, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x6A, 0xDC, 0x25, 0xB0, 0xC7, 0x41, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x11, 0x6B, 0xA6, 0x11, 0x62, 0xD4, 0x2D), }; static const mbedtls_mpi_uint secp256k1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x7D, 0x34, 0xB3, 0x20, 0x7F, 0x37, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0xD4, 0x45, 0xE8, 0xC2, 0xE9, 0xC5, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x32, 0x3B, 0x25, 0x7E, 0x79, 0xAF, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0xE4, 0x54, 0x71, 0xBE, 0x35, 0x4E, 0xD0 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7D, 0x34, 0xB3, 0x20, 0x7F, 0x37, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xD4, 0x45, 0xE8, 0xC2, 0xE9, 0xC5, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x32, 0x3B, 0x25, 0x7E, 0x79, 0xAF, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xE4, 0x54, 0x71, 0xBE, 0x35, 0x4E, 0xD0), }; static const mbedtls_mpi_uint secp256k1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x94, 0xDD, 0x8F, 0xB5, 0xC2, 0xDD, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x49, 0xE9, 0x1C, 0x2F, 0x08, 0x49, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0xB6, 0x03, 0x88, 0x6F, 0xB8, 0x15, 0x67 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0xD3, 0x1C, 0xF3, 0xA5, 0xEB, 0x79, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x94, 0xDD, 0x8F, 0xB5, 0xC2, 0xDD, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x49, 0xE9, 0x1C, 0x2F, 0x08, 0x49, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xB6, 0x03, 0x88, 0x6F, 0xB8, 0x15, 0x67), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xD3, 0x1C, 0xF3, 0xA5, 0xEB, 0x79, 0x01), }; static const mbedtls_mpi_uint secp256k1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0xF9, 0x43, 0x88, 0x89, 0x0D, 0x06, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x2D, 0xF5, 0x98, 0x32, 0xF6, 0xB1, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0x73, 0x8F, 0x2B, 0x50, 0x27, 0x0A, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0xE3, 0xBD, 0x16, 0x05, 0xC8, 0x93, 0x12 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF9, 0x43, 0x88, 0x89, 0x0D, 0x06, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x2D, 0xF5, 0x98, 0x32, 0xF6, 0xB1, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x73, 0x8F, 0x2B, 0x50, 0x27, 0x0A, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE3, 0xBD, 0x16, 0x05, 0xC8, 0x93, 0x12), }; static const mbedtls_mpi_uint secp256k1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0x6A, 0xF7, 0xE3, 0x3D, 0xDE, 0x5F, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0xA3, 0x9C, 0x22, 0x3C, 0x33, 0x36, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0x24, 0x4C, 0x69, 0x45, 0x78, 0x14, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xF8, 0xD4, 0xBF, 0xB8, 0xC0, 0xA1, 0x25 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0x6A, 0xF7, 0xE3, 0x3D, 0xDE, 0x5F, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA3, 0x9C, 0x22, 0x3C, 0x33, 0x36, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x24, 0x4C, 0x69, 0x45, 0x78, 0x14, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xF8, 0xD4, 0xBF, 0xB8, 0xC0, 0xA1, 0x25), }; static const mbedtls_mpi_uint secp256k1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x88, 0xE1, 0x91, 0x03, 0xEB, 0xB3, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x11, 0xA1, 0xEF, 0x14, 0x0D, 0xC4, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0xD4, 0x0D, 0x1D, 0x96, 0x33, 0x5C, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x45, 0x2A, 0x1A, 0xE6, 0x57, 0x04, 0x9B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x88, 0xE1, 0x91, 0x03, 0xEB, 0xB3, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x11, 0xA1, 0xEF, 0x14, 0x0D, 0xC4, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0xD4, 0x0D, 0x1D, 0x96, 0x33, 0x5C, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x45, 0x2A, 0x1A, 0xE6, 0x57, 0x04, 0x9B), }; static const mbedtls_mpi_uint secp256k1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0xB5, 0xA7, 0x80, 0xE9, 0x93, 0x97, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0xB9, 0x7C, 0xA0, 0xC9, 0x57, 0x26, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0xEF, 0x56, 0xDA, 0x66, 0xF6, 0x1B, 0x9A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x89, 0x6B, 0x91, 0xE0, 0xA9, 0x65, 0x2B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xB5, 0xA7, 0x80, 0xE9, 0x93, 0x97, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0xB9, 0x7C, 0xA0, 0xC9, 0x57, 0x26, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0xEF, 0x56, 0xDA, 0x66, 0xF6, 0x1B, 0x9A), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x89, 0x6B, 0x91, 0xE0, 0xA9, 0x65, 0x2B), }; static const mbedtls_mpi_uint secp256k1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x98, 0x96, 0x9B, 0x06, 0x7D, 0x5E, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0xFA, 0xC1, 0x5F, 0x19, 0x37, 0x94, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0xBE, 0x6B, 0x1A, 0x05, 0xE4, 0xBF, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0xCD, 0x5D, 0x35, 0xB4, 0x51, 0xF7, 0x64 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x98, 0x96, 0x9B, 0x06, 0x7D, 0x5E, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xFA, 0xC1, 0x5F, 0x19, 0x37, 0x94, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xBE, 0x6B, 0x1A, 0x05, 0xE4, 0xBF, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xCD, 0x5D, 0x35, 0xB4, 0x51, 0xF7, 0x64), }; static const mbedtls_mpi_uint secp256k1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0xEF, 0x96, 0xDB, 0xF2, 0x61, 0x63, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x04, 0x88, 0xC9, 0x9F, 0x1B, 0x94, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x30, 0x79, 0x7E, 0x24, 0xE7, 0x5F, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0xB8, 0x90, 0xB7, 0x94, 0x25, 0xBB, 0x0F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xEF, 0x96, 0xDB, 0xF2, 0x61, 0x63, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x04, 0x88, 0xC9, 0x9F, 0x1B, 0x94, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x30, 0x79, 0x7E, 0x24, 0xE7, 0x5F, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xB8, 0x90, 0xB7, 0x94, 0x25, 0xBB, 0x0F), }; static const mbedtls_mpi_uint secp256k1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x79, 0xEA, 0xAD, 0xC0, 0x6D, 0x18, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0xA4, 0x58, 0x2A, 0x8D, 0x95, 0xB3, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xC4, 0xC2, 0x12, 0x0D, 0x79, 0xE2, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x6F, 0xBE, 0x97, 0x4D, 0xA4, 0x20, 0x07 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x79, 0xEA, 0xAD, 0xC0, 0x6D, 0x18, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xA4, 0x58, 0x2A, 0x8D, 0x95, 0xB3, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC4, 0xC2, 0x12, 0x0D, 0x79, 0xE2, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6F, 0xBE, 0x97, 0x4D, 0xA4, 0x20, 0x07), }; static const mbedtls_mpi_uint secp256k1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x31, 0x71, 0xC6, 0xA6, 0x91, 0xEB, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x9B, 0xA8, 0x4A, 0xE7, 0x77, 0xE1, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0x06, 0xD3, 0x3D, 0x94, 0x30, 0xEF, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0xDF, 0xCA, 0xFA, 0xF5, 0x28, 0xF8, 0xC9 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x31, 0x71, 0xC6, 0xA6, 0x91, 0xEB, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x9B, 0xA8, 0x4A, 0xE7, 0x77, 0xE1, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0x06, 0xD3, 0x3D, 0x94, 0x30, 0xEF, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xDF, 0xCA, 0xFA, 0xF5, 0x28, 0xF8, 0xC9), }; static const mbedtls_mpi_uint secp256k1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0xE1, 0x32, 0xFD, 0x3E, 0x81, 0xF8, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0xF2, 0x4B, 0x1D, 0x19, 0xC9, 0x0F, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xB1, 0x8A, 0x22, 0x8B, 0x05, 0x6B, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0x21, 0xEF, 0x30, 0xEC, 0x09, 0x2A, 0x89 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0xE1, 0x32, 0xFD, 0x3E, 0x81, 0xF8, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0xF2, 0x4B, 0x1D, 0x19, 0xC9, 0x0F, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB1, 0x8A, 0x22, 0x8B, 0x05, 0x6B, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0x21, 0xEF, 0x30, 0xEC, 0x09, 0x2A, 0x89), }; static const mbedtls_mpi_uint secp256k1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x84, 0x4A, 0x46, 0x07, 0x6C, 0x3C, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x18, 0x3A, 0xF4, 0xCC, 0xF5, 0xB2, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0x8F, 0xCD, 0x0A, 0x9C, 0xF4, 0xBD, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x89, 0x7F, 0x8A, 0xB1, 0x52, 0x3A, 0xAB ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x84, 0x4A, 0x46, 0x07, 0x6C, 0x3C, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x18, 0x3A, 0xF4, 0xCC, 0xF5, 0xB2, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0x8F, 0xCD, 0x0A, 0x9C, 0xF4, 0xBD, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x89, 0x7F, 0x8A, 0xB1, 0x52, 0x3A, 0xAB), }; static const mbedtls_ecp_point secp256k1_T[16] = { ECP_POINT_INIT_XY_Z1(secp256k1_T_0_X, secp256k1_T_0_Y), @@ -2898,234 +2898,234 @@ static const mbedtls_ecp_point secp256k1_T[16] = { */ #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) static const mbedtls_mpi_uint brainpoolP256r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x53, 0x6E, 0x1F, 0x1D, 0x48, 0x13, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x20, 0x26, 0xD5, 0x23, 0xF6, 0x3B, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x53, 0x6E, 0x1F, 0x1D, 0x48, 0x13, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x20, 0x26, 0xD5, 0x23, 0xF6, 0x3B, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9), }; static const mbedtls_mpi_uint brainpoolP256r1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0xB5, 0x30, 0xF3, 0x44, 0x4B, 0x4A, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x5C, 0xDC, 0x26, 0xC1, 0x55, 0x80, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0xFF, 0x7A, 0x41, 0x30, 0x75, 0xF6, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x30, 0x2C, 0xFC, 0x75, 0x09, 0x5A, 0x7D ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xB5, 0x30, 0xF3, 0x44, 0x4B, 0x4A, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5C, 0xDC, 0x26, 0xC1, 0x55, 0x80, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xFF, 0x7A, 0x41, 0x30, 0x75, 0xF6, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x30, 0x2C, 0xFC, 0x75, 0x09, 0x5A, 0x7D), }; static const mbedtls_mpi_uint brainpoolP256r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x07, 0x8C, 0xFF, 0x18, 0xDC, 0xCC, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xE1, 0xF7, 0x5C, 0x29, 0x16, 0x84, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x7C, 0xD7, 0xBB, 0xD9, 0xB5, 0x30, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0x4B, 0x4A, 0xE9, 0x6C, 0x5C, 0xDC, 0x26 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x07, 0x8C, 0xFF, 0x18, 0xDC, 0xCC, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE1, 0xF7, 0x5C, 0x29, 0x16, 0x84, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x7C, 0xD7, 0xBB, 0xD9, 0xB5, 0x30, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0x4B, 0x4A, 0xE9, 0x6C, 0x5C, 0xDC, 0x26), }; static const mbedtls_mpi_uint brainpoolP256r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B), }; static const mbedtls_mpi_uint brainpoolP256r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54), }; static const mbedtls_mpi_uint brainpoolP256r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x56, 0x48, 0x97, 0x82, 0x0E, 0x1E, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0xA6, 0x61, 0xB5, 0xA3, 0x7A, 0x39, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x56, 0x48, 0x97, 0x82, 0x0E, 0x1E, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xA6, 0x61, 0xB5, 0xA3, 0x7A, 0x39, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x8D, 0x83, 0x9D, 0x90, 0x0A, 0x66, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA9, 0xEE, 0xA1, 0xDB, 0x57, 0xFB, 0xA9), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint brainpoolP256r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0x32, 0xCE, 0x9A, 0xBD, 0x53, 0x44, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x23, 0xBD, 0xE3, 0xE1, 0x27, 0xDE, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xB7, 0x81, 0xFC, 0x2F, 0x48, 0x4B, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x57, 0x7E, 0xCB, 0xB9, 0xAE, 0xD2, 0x8B), }; static const mbedtls_mpi_uint brainpoolP256r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x69, 0x04, 0x2F, 0xC7, 0x54, 0x1D, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x8E, 0xED, 0x2D, 0x13, 0x45, 0x77, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x1D, 0x61, 0x14, 0x1A, 0x46, 0xF8, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xC4, 0xDA, 0xC3, 0x35, 0xF8, 0x7E, 0x54), }; static const mbedtls_mpi_uint brainpoolP256r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0xA2, 0xED, 0x52, 0xC9, 0x8C, 0xE3, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0xC9, 0xC4, 0x87, 0x3F, 0x93, 0x7A, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x12, 0x53, 0x61, 0x3E, 0x76, 0x08, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0x8C, 0x74, 0xF4, 0x08, 0xC3, 0x76, 0x80 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xA2, 0xED, 0x52, 0xC9, 0x8C, 0xE3, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0xC9, 0xC4, 0x87, 0x3F, 0x93, 0x7A, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x12, 0x53, 0x61, 0x3E, 0x76, 0x08, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0x8C, 0x74, 0xF4, 0x08, 0xC3, 0x76, 0x80), }; static const mbedtls_mpi_uint brainpoolP256r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0xDD, 0x09, 0xA6, 0xED, 0xEE, 0xC4, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xD9, 0xBE, 0x4B, 0xA5, 0xB7, 0x2B, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x20, 0x12, 0xCA, 0x0A, 0x38, 0x24, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x72, 0x71, 0x90, 0x7A, 0x2E, 0xB7, 0x23 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0xDD, 0x09, 0xA6, 0xED, 0xEE, 0xC4, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xD9, 0xBE, 0x4B, 0xA5, 0xB7, 0x2B, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x20, 0x12, 0xCA, 0x0A, 0x38, 0x24, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x72, 0x71, 0x90, 0x7A, 0x2E, 0xB7, 0x23), }; static const mbedtls_mpi_uint brainpoolP256r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x66, 0xA1, 0x93, 0x10, 0x2A, 0x51, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0x10, 0x11, 0x12, 0xBC, 0xB0, 0xB6, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x58, 0xD7, 0x0A, 0x84, 0x05, 0xA3, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x8E, 0x95, 0x61, 0xD3, 0x0B, 0xDF, 0x36 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x66, 0xA1, 0x93, 0x10, 0x2A, 0x51, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0x10, 0x11, 0x12, 0xBC, 0xB0, 0xB6, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x58, 0xD7, 0x0A, 0x84, 0x05, 0xA3, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x8E, 0x95, 0x61, 0xD3, 0x0B, 0xDF, 0x36), }; static const mbedtls_mpi_uint brainpoolP256r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x92, 0x12, 0x0F, 0x5E, 0x87, 0x70, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0xE9, 0x9B, 0xEB, 0x3A, 0xFB, 0xCF, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0x92, 0xB9, 0xF7, 0x45, 0xD3, 0x06, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x28, 0x65, 0xE1, 0xC5, 0x6C, 0x57, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x92, 0x12, 0x0F, 0x5E, 0x87, 0x70, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0xE9, 0x9B, 0xEB, 0x3A, 0xFB, 0xCF, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0x92, 0xB9, 0xF7, 0x45, 0xD3, 0x06, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x28, 0x65, 0xE1, 0xC5, 0x6C, 0x57, 0x18), }; static const mbedtls_mpi_uint brainpoolP256r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x0E, 0x77, 0x01, 0x81, 0x9E, 0x38, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0xF0, 0xD5, 0xA5, 0x91, 0x2B, 0xDF, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xEE, 0xB6, 0x25, 0xD6, 0x98, 0xDE, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0xA1, 0x55, 0x63, 0x39, 0xEB, 0xB5, 0x47 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x0E, 0x77, 0x01, 0x81, 0x9E, 0x38, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0xF0, 0xD5, 0xA5, 0x91, 0x2B, 0xDF, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xEE, 0xB6, 0x25, 0xD6, 0x98, 0xDE, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0xA1, 0x55, 0x63, 0x39, 0xEB, 0xB5, 0x47), }; static const mbedtls_mpi_uint brainpoolP256r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0xD6, 0xB8, 0xE3, 0x13, 0xED, 0x7F, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0xE8, 0xAE, 0x36, 0xB8, 0xCD, 0x19, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x82, 0x83, 0x7A, 0x7B, 0x46, 0x56, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x60, 0x46, 0x15, 0x5A, 0xAC, 0x99, 0x30 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD6, 0xB8, 0xE3, 0x13, 0xED, 0x7F, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xE8, 0xAE, 0x36, 0xB8, 0xCD, 0x19, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x82, 0x83, 0x7A, 0x7B, 0x46, 0x56, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x60, 0x46, 0x15, 0x5A, 0xAC, 0x99, 0x30), }; static const mbedtls_mpi_uint brainpoolP256r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x61, 0x50, 0xC6, 0xFF, 0x10, 0x7D, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x51, 0xDF, 0xA9, 0x7D, 0x78, 0x26, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0x15, 0x9A, 0xF7, 0x01, 0xC1, 0xBB, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x0F, 0xE6, 0x2A, 0xBD, 0x4A, 0x9E, 0x87 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x61, 0x50, 0xC6, 0xFF, 0x10, 0x7D, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x51, 0xDF, 0xA9, 0x7D, 0x78, 0x26, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0x15, 0x9A, 0xF7, 0x01, 0xC1, 0xBB, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x0F, 0xE6, 0x2A, 0xBD, 0x4A, 0x9E, 0x87), }; static const mbedtls_mpi_uint brainpoolP256r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xF8, 0xD1, 0x77, 0xD2, 0x49, 0xB3, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0x86, 0xFB, 0x9E, 0x1F, 0x5A, 0x60, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0xC4, 0x8D, 0xCD, 0x86, 0x61, 0x2F, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xF6, 0xB9, 0xAC, 0x37, 0x9D, 0xE9, 0x28 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF8, 0xD1, 0x77, 0xD2, 0x49, 0xB3, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x86, 0xFB, 0x9E, 0x1F, 0x5A, 0x60, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xC4, 0x8D, 0xCD, 0x86, 0x61, 0x2F, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xF6, 0xB9, 0xAC, 0x37, 0x9D, 0xE9, 0x28), }; static const mbedtls_mpi_uint brainpoolP256r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x77, 0xAA, 0x97, 0x9C, 0x0B, 0x04, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0xA6, 0x60, 0x81, 0xCE, 0x25, 0x13, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x00, 0xF3, 0xBB, 0x82, 0x99, 0x95, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x5A, 0xCE, 0x90, 0x71, 0x38, 0x2F, 0x10 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x77, 0xAA, 0x97, 0x9C, 0x0B, 0x04, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0xA6, 0x60, 0x81, 0xCE, 0x25, 0x13, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x00, 0xF3, 0xBB, 0x82, 0x99, 0x95, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x5A, 0xCE, 0x90, 0x71, 0x38, 0x2F, 0x10), }; static const mbedtls_mpi_uint brainpoolP256r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x1A, 0xC0, 0x84, 0x27, 0xD6, 0x9D, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x37, 0x52, 0x16, 0x13, 0x0E, 0xCE, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xBF, 0x5A, 0xDB, 0xDB, 0x6E, 0x1E, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0xB7, 0x5E, 0xF9, 0x86, 0xDD, 0x8A, 0x5C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x1A, 0xC0, 0x84, 0x27, 0xD6, 0x9D, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x37, 0x52, 0x16, 0x13, 0x0E, 0xCE, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBF, 0x5A, 0xDB, 0xDB, 0x6E, 0x1E, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0xB7, 0x5E, 0xF9, 0x86, 0xDD, 0x8A, 0x5C), }; static const mbedtls_mpi_uint brainpoolP256r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xAB, 0x5C, 0x8D, 0x1D, 0xF2, 0x2D, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0xC5, 0xF8, 0xF7, 0x1D, 0x96, 0x0B, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x4C, 0xA7, 0x45, 0x20, 0x6A, 0x1E, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x5D, 0xEF, 0xDE, 0xEE, 0x39, 0x44, 0x19 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xAB, 0x5C, 0x8D, 0x1D, 0xF2, 0x2D, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0xC5, 0xF8, 0xF7, 0x1D, 0x96, 0x0B, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x4C, 0xA7, 0x45, 0x20, 0x6A, 0x1E, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x5D, 0xEF, 0xDE, 0xEE, 0x39, 0x44, 0x19), }; static const mbedtls_mpi_uint brainpoolP256r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0x2F, 0x6D, 0x52, 0xC9, 0x58, 0x60, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0xC9, 0x62, 0xCB, 0x38, 0x3C, 0x55, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xA5, 0x09, 0x10, 0x88, 0xDB, 0xE3, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0xE0, 0x3C, 0xCE, 0x06, 0x0B, 0x4B, 0x5D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x2F, 0x6D, 0x52, 0xC9, 0x58, 0x60, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xC9, 0x62, 0xCB, 0x38, 0x3C, 0x55, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xA5, 0x09, 0x10, 0x88, 0xDB, 0xE3, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xE0, 0x3C, 0xCE, 0x06, 0x0B, 0x4B, 0x5D), }; static const mbedtls_mpi_uint brainpoolP256r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0x1D, 0xB4, 0x10, 0x76, 0x8F, 0xBA, 0x09 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x70, 0x5A, 0x07, 0xF5, 0x1A, 0x74, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0xE9, 0x94, 0xA8, 0xC0, 0xD5, 0x4A, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x6D, 0xD4, 0xE8, 0x9B, 0xE9, 0x6D, 0x0E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x1D, 0xB4, 0x10, 0x76, 0x8F, 0xBA, 0x09), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x70, 0x5A, 0x07, 0xF5, 0x1A, 0x74, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xE9, 0x94, 0xA8, 0xC0, 0xD5, 0x4A, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x6D, 0xD4, 0xE8, 0x9B, 0xE9, 0x6D, 0x0E), }; static const mbedtls_mpi_uint brainpoolP256r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x00, 0x32, 0x41, 0x57, 0x84, 0x89, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0xC7, 0x14, 0xEC, 0xE9, 0x27, 0xFF, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x67, 0x9E, 0xFB, 0xB6, 0xB8, 0x96, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0x4A, 0xE3, 0x97, 0x4B, 0x58, 0xDE, 0x30 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x00, 0x32, 0x41, 0x57, 0x84, 0x89, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC7, 0x14, 0xEC, 0xE9, 0x27, 0xFF, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x67, 0x9E, 0xFB, 0xB6, 0xB8, 0x96, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0x4A, 0xE3, 0x97, 0x4B, 0x58, 0xDE, 0x30), }; static const mbedtls_mpi_uint brainpoolP256r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0x1E, 0x5C, 0xF5, 0x7F, 0xD5, 0xD4, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x08, 0x7A, 0xF1, 0xBD, 0x89, 0xC7, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0xF9, 0x11, 0x1B, 0xF5, 0x3C, 0x6D, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x50, 0xE5, 0x69, 0x1D, 0x59, 0xFC, 0x0C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0x1E, 0x5C, 0xF5, 0x7F, 0xD5, 0xD4, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x08, 0x7A, 0xF1, 0xBD, 0x89, 0xC7, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0xF9, 0x11, 0x1B, 0xF5, 0x3C, 0x6D, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x50, 0xE5, 0x69, 0x1D, 0x59, 0xFC, 0x0C), }; static const mbedtls_mpi_uint brainpoolP256r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x2F, 0xF8, 0x3F, 0xEC, 0x55, 0x99, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0xA7, 0x29, 0x90, 0x43, 0x81, 0x31, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x18, 0x44, 0x50, 0x5D, 0x76, 0xCB, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0xC5, 0x5B, 0x9A, 0x03, 0xE6, 0x17, 0x39 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x2F, 0xF8, 0x3F, 0xEC, 0x55, 0x99, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0xA7, 0x29, 0x90, 0x43, 0x81, 0x31, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x18, 0x44, 0x50, 0x5D, 0x76, 0xCB, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xC5, 0x5B, 0x9A, 0x03, 0xE6, 0x17, 0x39), }; static const mbedtls_mpi_uint brainpoolP256r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x89, 0xFC, 0x55, 0x94, 0x91, 0x6A, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x46, 0x35, 0xF2, 0x3A, 0x42, 0x08, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0xD2, 0x76, 0x49, 0x42, 0x87, 0xD3, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xEA, 0xA0, 0x52, 0xF1, 0x6A, 0x30, 0x57 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x89, 0xFC, 0x55, 0x94, 0x91, 0x6A, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x46, 0x35, 0xF2, 0x3A, 0x42, 0x08, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0xD2, 0x76, 0x49, 0x42, 0x87, 0xD3, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xEA, 0xA0, 0x52, 0xF1, 0x6A, 0x30, 0x57), }; static const mbedtls_mpi_uint brainpoolP256r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0xB2, 0x57, 0xA3, 0x8A, 0x4D, 0x1B, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0xA3, 0x99, 0x94, 0xB5, 0x3D, 0x64, 0x09 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0xC3, 0xD7, 0x53, 0xF6, 0x49, 0x1C, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x23, 0x41, 0x4D, 0xFB, 0x7A, 0x5C, 0x53 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0xB2, 0x57, 0xA3, 0x8A, 0x4D, 0x1B, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0xA3, 0x99, 0x94, 0xB5, 0x3D, 0x64, 0x09), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC3, 0xD7, 0x53, 0xF6, 0x49, 0x1C, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x23, 0x41, 0x4D, 0xFB, 0x7A, 0x5C, 0x53), }; static const mbedtls_mpi_uint brainpoolP256r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0xB8, 0x15, 0x65, 0x5C, 0x85, 0x94, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x37, 0xC7, 0xF8, 0x7E, 0xAE, 0x6C, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0xD8, 0x11, 0x54, 0x98, 0x44, 0xE3, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x4D, 0xA6, 0x4B, 0x28, 0xF2, 0x57, 0x9E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xB8, 0x15, 0x65, 0x5C, 0x85, 0x94, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x37, 0xC7, 0xF8, 0x7E, 0xAE, 0x6C, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xD8, 0x11, 0x54, 0x98, 0x44, 0xE3, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x4D, 0xA6, 0x4B, 0x28, 0xF2, 0x57, 0x9E), }; static const mbedtls_mpi_uint brainpoolP256r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xD0, 0xEB, 0x1E, 0xAA, 0x30, 0xD3, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x9B, 0x4D, 0xA7, 0x73, 0x6E, 0xB6, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x47, 0xF6, 0xED, 0x37, 0xEF, 0x71, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0xB5, 0x49, 0x61, 0x5E, 0x45, 0xF6, 0x4A ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xD0, 0xEB, 0x1E, 0xAA, 0x30, 0xD3, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x9B, 0x4D, 0xA7, 0x73, 0x6E, 0xB6, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x47, 0xF6, 0xED, 0x37, 0xEF, 0x71, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xB5, 0x49, 0x61, 0x5E, 0x45, 0xF6, 0x4A), }; static const mbedtls_mpi_uint brainpoolP256r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x0E, 0xB3, 0x84, 0x3A, 0x63, 0x72, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x53, 0x5C, 0xA7, 0xC6, 0x2E, 0xAB, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x0F, 0x8F, 0x87, 0x50, 0x28, 0xB4, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x98, 0x4A, 0x98, 0x31, 0x86, 0xCA, 0x51 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x0E, 0xB3, 0x84, 0x3A, 0x63, 0x72, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x53, 0x5C, 0xA7, 0xC6, 0x2E, 0xAB, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x0F, 0x8F, 0x87, 0x50, 0x28, 0xB4, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x98, 0x4A, 0x98, 0x31, 0x86, 0xCA, 0x51), }; static const mbedtls_mpi_uint brainpoolP256r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xC9, 0xE2, 0xFD, 0x5D, 0x1F, 0xE8, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x90, 0x91, 0xC4, 0x84, 0xF0, 0xBA, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x5A, 0xB3, 0x4E, 0xFB, 0xE0, 0x57, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x0B, 0x90, 0xA6, 0xFD, 0x9D, 0x8E, 0x02 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC9, 0xE2, 0xFD, 0x5D, 0x1F, 0xE8, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x90, 0x91, 0xC4, 0x84, 0xF0, 0xBA, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x5A, 0xB3, 0x4E, 0xFB, 0xE0, 0x57, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x0B, 0x90, 0xA6, 0xFD, 0x9D, 0x8E, 0x02), }; static const mbedtls_mpi_uint brainpoolP256r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x41, 0x8F, 0x31, 0xFA, 0x5A, 0xF6, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xE9, 0xE3, 0xF6, 0xE0, 0x4A, 0xE7, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0x4E, 0xCD, 0xA2, 0x22, 0x14, 0xD4, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0xED, 0x21, 0xB7, 0x0F, 0x53, 0x10, 0x17 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x41, 0x8F, 0x31, 0xFA, 0x5A, 0xF6, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xE9, 0xE3, 0xF6, 0xE0, 0x4A, 0xE7, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0x4E, 0xCD, 0xA2, 0x22, 0x14, 0xD4, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xED, 0x21, 0xB7, 0x0F, 0x53, 0x10, 0x17), }; static const mbedtls_mpi_uint brainpoolP256r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x06, 0x24, 0x2C, 0x4E, 0xD1, 0x1E, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0x3F, 0xC1, 0x9F, 0xAB, 0xF0, 0x37, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x03, 0x5E, 0x12, 0xCE, 0x83, 0x1B, 0x2A, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x65, 0xCF, 0xE8, 0x5C, 0xA5, 0xA2, 0x70 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x06, 0x24, 0x2C, 0x4E, 0xD1, 0x1E, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x3F, 0xC1, 0x9F, 0xAB, 0xF0, 0x37, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0x03, 0x5E, 0x12, 0xCE, 0x83, 0x1B, 0x2A, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x65, 0xCF, 0xE8, 0x5C, 0xA5, 0xA2, 0x70), }; static const mbedtls_mpi_uint brainpoolP256r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x86, 0x76, 0x3A, 0x94, 0xF6, 0x1D, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0xDA, 0xC9, 0xA6, 0x29, 0x93, 0x15, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x61, 0x6A, 0x7D, 0xC7, 0xA9, 0xF3, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x03, 0x71, 0xA2, 0x15, 0xCE, 0x50, 0x72 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x86, 0x76, 0x3A, 0x94, 0xF6, 0x1D, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xDA, 0xC9, 0xA6, 0x29, 0x93, 0x15, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x61, 0x6A, 0x7D, 0xC7, 0xA9, 0xF3, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x03, 0x71, 0xA2, 0x15, 0xCE, 0x50, 0x72), }; static const mbedtls_mpi_uint brainpoolP256r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0xD0, 0xA8, 0x1E, 0x91, 0xC4, 0x4F, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0x4B, 0x7E, 0xD7, 0x71, 0x58, 0x7E, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x45, 0xAF, 0x2A, 0x18, 0x93, 0x95, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x8F, 0xC7, 0xFA, 0x4C, 0x7A, 0x86, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xD0, 0xA8, 0x1E, 0x91, 0xC4, 0x4F, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x4B, 0x7E, 0xD7, 0x71, 0x58, 0x7E, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x45, 0xAF, 0x2A, 0x18, 0x93, 0x95, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x8F, 0xC7, 0xFA, 0x4C, 0x7A, 0x86, 0x54), }; static const mbedtls_mpi_uint brainpoolP256r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0xAF, 0x68, 0x3A, 0x23, 0xC1, 0x2E, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0x50, 0x11, 0x67, 0x39, 0xB9, 0xAF, 0x48 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x86, 0xAA, 0x1E, 0x88, 0x21, 0x29, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x28, 0xA4, 0x9D, 0x89, 0xA9, 0x9A, 0x10 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0xAF, 0x68, 0x3A, 0x23, 0xC1, 0x2E, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x50, 0x11, 0x67, 0x39, 0xB9, 0xAF, 0x48), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x86, 0xAA, 0x1E, 0x88, 0x21, 0x29, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x28, 0xA4, 0x9D, 0x89, 0xA9, 0x9A, 0x10), }; static const mbedtls_mpi_uint brainpoolP256r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xBA, 0x04, 0x67, 0xB7, 0x01, 0x40, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xE9, 0x09, 0xA3, 0xCA, 0xA6, 0x37, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x97, 0xA8, 0xB6, 0x3C, 0xEE, 0x90, 0x3D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0xED, 0xC4, 0xF7, 0xC3, 0x95, 0xEC, 0x85 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xBA, 0x04, 0x67, 0xB7, 0x01, 0x40, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xE9, 0x09, 0xA3, 0xCA, 0xA6, 0x37, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x97, 0xA8, 0xB6, 0x3C, 0xEE, 0x90, 0x3D), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xED, 0xC4, 0xF7, 0xC3, 0x95, 0xEC, 0x85), }; static const mbedtls_mpi_uint brainpoolP256r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x84, 0xBD, 0xEB, 0xD5, 0x64, 0xBB, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x9B, 0xE2, 0x28, 0x50, 0xC2, 0x72, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0xF2, 0x74, 0xD1, 0x26, 0xBF, 0x32, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0xCB, 0xAF, 0x72, 0xDB, 0x6D, 0x30, 0x98 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x84, 0xBD, 0xEB, 0xD5, 0x64, 0xBB, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x9B, 0xE2, 0x28, 0x50, 0xC2, 0x72, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0xF2, 0x74, 0xD1, 0x26, 0xBF, 0x32, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xCB, 0xAF, 0x72, 0xDB, 0x6D, 0x30, 0x98), }; static const mbedtls_mpi_uint brainpoolP256r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x50, 0x85, 0xF4, 0x2B, 0x48, 0xC1, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x28, 0xBB, 0x11, 0xBA, 0x5B, 0x22, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xA1, 0xE5, 0x5C, 0xC9, 0x1D, 0x44, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0xE8, 0xE6, 0x6F, 0xBB, 0xC1, 0x81, 0x7F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x50, 0x85, 0xF4, 0x2B, 0x48, 0xC1, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x28, 0xBB, 0x11, 0xBA, 0x5B, 0x22, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xA1, 0xE5, 0x5C, 0xC9, 0x1D, 0x44, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xE8, 0xE6, 0x6F, 0xBB, 0xC1, 0x81, 0x7F), }; static const mbedtls_ecp_point brainpoolP256r1_T[16] = { ECP_POINT_INIT_XY_Z1(brainpoolP256r1_T_0_X, brainpoolP256r1_T_0_Y), @@ -3156,566 +3156,566 @@ static const mbedtls_ecp_point brainpoolP256r1_T[16] = { */ #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) static const mbedtls_mpi_uint brainpoolP384r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0xEC, 0x07, 0x31, 0x13, 0x00, 0x47, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x1A, 0x1D, 0x90, 0x29, 0xA7, 0xD3, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0x11, 0xB7, 0x7F, 0x19, 0xDA, 0xB1, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C ), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xEC, 0x07, 0x31, 0x13, 0x00, 0x47, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x1A, 0x1D, 0x90, 0x29, 0xA7, 0xD3, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x11, 0xB7, 0x7F, 0x19, 0xDA, 0xB1, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C), }; static const mbedtls_mpi_uint brainpoolP384r1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0xD4, 0x3A, 0x50, 0x4A, 0x81, 0xA5, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xF9, 0x91, 0xBA, 0xEF, 0x65, 0x91, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x27, 0xB2, 0x4F, 0x8E, 0xA2, 0xBE, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0xAF, 0x05, 0xCE, 0x0A, 0x08, 0x72, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0x15, 0x8C, 0x3D, 0xC6, 0x82, 0xC3, 0x7B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0xD4, 0x3A, 0x50, 0x4A, 0x81, 0xA5, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xF9, 0x91, 0xBA, 0xEF, 0x65, 0x91, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x27, 0xB2, 0x4F, 0x8E, 0xA2, 0xBE, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xAF, 0x05, 0xCE, 0x0A, 0x08, 0x72, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x15, 0x8C, 0x3D, 0xC6, 0x82, 0xC3, 0x7B), }; static const mbedtls_mpi_uint brainpoolP384r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x4C, 0x50, 0xFA, 0x96, 0x86, 0xB7, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0xC9, 0xDB, 0x95, 0x02, 0x39, 0xB4, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x62, 0xEB, 0x3E, 0xA5, 0x0E, 0x88, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA6, 0xD2, 0xDC, 0x07, 0xE1, 0x7D, 0xB7, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x44, 0xF0, 0x16, 0x54, 0xB5, 0x39, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x4C, 0x50, 0xFA, 0x96, 0x86, 0xB7, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0xC9, 0xDB, 0x95, 0x02, 0x39, 0xB4, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x62, 0xEB, 0x3E, 0xA5, 0x0E, 0x88, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0xA6, 0xD2, 0xDC, 0x07, 0xE1, 0x7D, 0xB7, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x44, 0xF0, 0x16, 0x54, 0xB5, 0x39, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x28, 0xCE, 0x22, 0xDD, 0xC7, 0xA8, 0x04), }; static const mbedtls_mpi_uint brainpoolP384r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D), }; static const mbedtls_mpi_uint brainpoolP384r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A), }; static const mbedtls_mpi_uint brainpoolP384r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x65, 0x04, 0xE9, 0x02, 0x32, 0x88, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xC3, 0x7F, 0x6B, 0xAF, 0xB6, 0x3A, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x25, 0x04, 0xAC, 0x6C, 0x6E, 0x16, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C ), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x65, 0x04, 0xE9, 0x02, 0x32, 0x88, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC3, 0x7F, 0x6B, 0xAF, 0xB6, 0x3A, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x25, 0x04, 0xAC, 0x6C, 0x6E, 0x16, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x56, 0x54, 0xED, 0x09, 0x71, 0x2F, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x41, 0xE6, 0x50, 0x7E, 0x6F, 0x5D, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x6D, 0x38, 0xA3, 0x82, 0x1E, 0xB9, 0x8C), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint brainpoolP384r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xD4, 0x47, 0xE2, 0xB2, 0x87, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x46, 0xD6, 0x36, 0x34, 0xE0, 0x26, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x10, 0xBD, 0x0C, 0xFE, 0xCA, 0x7F, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x4F, 0xF1, 0x7E, 0xE7, 0xA3, 0x47, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x3F, 0xC1, 0xB7, 0x81, 0x3A, 0xA6, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x45, 0xCF, 0x68, 0xF0, 0x64, 0x1C, 0x1D), }; static const mbedtls_mpi_uint brainpoolP384r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x53, 0x3C, 0x26, 0x41, 0x03, 0x82, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x91, 0x77, 0x21, 0x46, 0x46, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x29, 0x91, 0xF9, 0x4F, 0x05, 0x9C, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x58, 0xEC, 0xFE, 0x29, 0x0B, 0xB7, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0xD5, 0xCF, 0x95, 0x8E, 0xEB, 0xB1, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xC2, 0xF9, 0x20, 0x75, 0x1D, 0xBE, 0x8A), }; static const mbedtls_mpi_uint brainpoolP384r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0xD8, 0x8A, 0x54, 0x41, 0xD6, 0x6B, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0x3B, 0xF1, 0x22, 0xFD, 0x2D, 0x4B, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x55, 0xE3, 0x33, 0xF0, 0x73, 0x52, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x3F, 0x30, 0x26, 0xCA, 0x7F, 0x52, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD3, 0x6E, 0x17, 0x9B, 0xD5, 0x2A, 0x4A, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xDA, 0x6B, 0xE5, 0x03, 0x07, 0x1D, 0x2E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xD8, 0x8A, 0x54, 0x41, 0xD6, 0x6B, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x3B, 0xF1, 0x22, 0xFD, 0x2D, 0x4B, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x55, 0xE3, 0x33, 0xF0, 0x73, 0x52, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x3F, 0x30, 0x26, 0xCA, 0x7F, 0x52, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0xD3, 0x6E, 0x17, 0x9B, 0xD5, 0x2A, 0x4A, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xDA, 0x6B, 0xE5, 0x03, 0x07, 0x1D, 0x2E), }; static const mbedtls_mpi_uint brainpoolP384r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0x7A, 0xAF, 0x98, 0xE3, 0xA4, 0xF6, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x7D, 0xFE, 0x51, 0x40, 0x3B, 0x47, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x88, 0xEC, 0xC4, 0xE2, 0x8F, 0xCB, 0xA4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0xE2, 0x88, 0x2D, 0x4E, 0x50, 0xEB, 0x9A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x54, 0x94, 0x5E, 0xF4, 0x7F, 0x3A, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x07, 0x1C, 0xE1, 0xBD, 0x0F, 0xF8, 0x63 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x7A, 0xAF, 0x98, 0xE3, 0xA4, 0xF6, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x7D, 0xFE, 0x51, 0x40, 0x3B, 0x47, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x88, 0xEC, 0xC4, 0xE2, 0x8F, 0xCB, 0xA4), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xE2, 0x88, 0x2D, 0x4E, 0x50, 0xEB, 0x9A), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x54, 0x94, 0x5E, 0xF4, 0x7F, 0x3A, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x07, 0x1C, 0xE1, 0xBD, 0x0F, 0xF8, 0x63), }; static const mbedtls_mpi_uint brainpoolP384r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x92, 0x28, 0x2E, 0x32, 0x04, 0xB1, 0x4D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0x82, 0x44, 0x43, 0x76, 0x0D, 0x55, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0xE3, 0xFF, 0x89, 0x46, 0xDE, 0x4E, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0x22, 0xBB, 0x67, 0x1A, 0x81, 0xEE, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x54, 0xE2, 0x7A, 0xAE, 0xDA, 0x2C, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x9A, 0x90, 0xAA, 0x6E, 0x8B, 0xCC, 0x5F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x92, 0x28, 0x2E, 0x32, 0x04, 0xB1, 0x4D), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x82, 0x44, 0x43, 0x76, 0x0D, 0x55, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xE3, 0xFF, 0x89, 0x46, 0xDE, 0x4E, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0x22, 0xBB, 0x67, 0x1A, 0x81, 0xEE, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x54, 0xE2, 0x7A, 0xAE, 0xDA, 0x2C, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x9A, 0x90, 0xAA, 0x6E, 0x8B, 0xCC, 0x5F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x40, 0xAC, 0xED, 0x7D, 0x37, 0x87, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0xF8, 0xB1, 0x80, 0x4C, 0x8C, 0x04, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x98, 0x2C, 0xAD, 0x30, 0x69, 0x35, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x2E, 0x00, 0x2F, 0x44, 0x8C, 0xF0, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x58, 0x07, 0xD7, 0xCD, 0x60, 0xA1, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0xFB, 0x7B, 0x03, 0x05, 0x5E, 0x79, 0x73 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x40, 0xAC, 0xED, 0x7D, 0x37, 0x87, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0xF8, 0xB1, 0x80, 0x4C, 0x8C, 0x04, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x98, 0x2C, 0xAD, 0x30, 0x69, 0x35, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x2E, 0x00, 0x2F, 0x44, 0x8C, 0xF0, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x58, 0x07, 0xD7, 0xCD, 0x60, 0xA1, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0xFB, 0x7B, 0x03, 0x05, 0x5E, 0x79, 0x73), }; static const mbedtls_mpi_uint brainpoolP384r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x17, 0xCE, 0x38, 0x4B, 0x5E, 0x5B, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x60, 0x0E, 0x0A, 0x61, 0x9D, 0x7C, 0x62, 0x08 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0xF0, 0x98, 0x71, 0x7F, 0x17, 0x26, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0xD3, 0xFA, 0x3C, 0xF0, 0x70, 0x07, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x47, 0x5C, 0x09, 0x43, 0xB7, 0x65, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xA9, 0xA7, 0x3E, 0xFA, 0xF3, 0xEC, 0x22 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x17, 0xCE, 0x38, 0x4B, 0x5E, 0x5B, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x0E, 0x0A, 0x61, 0x9D, 0x7C, 0x62, 0x08), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xF0, 0x98, 0x71, 0x7F, 0x17, 0x26, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0xD3, 0xFA, 0x3C, 0xF0, 0x70, 0x07, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x47, 0x5C, 0x09, 0x43, 0xB7, 0x65, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xA7, 0x3E, 0xFA, 0xF3, 0xEC, 0x22), }; static const mbedtls_mpi_uint brainpoolP384r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x78, 0x22, 0x2B, 0x58, 0x71, 0xFA, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x30, 0xCE, 0x6A, 0xB3, 0xB0, 0x4F, 0x83 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0x95, 0x20, 0xA9, 0x23, 0xC2, 0x65, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0xCF, 0x03, 0x5B, 0x8A, 0x80, 0x44, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xF8, 0x91, 0xF7, 0xD5, 0xED, 0xEA, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x5B, 0x16, 0x10, 0x25, 0xAC, 0x2A, 0x17 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x78, 0x22, 0x2B, 0x58, 0x71, 0xFA, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x30, 0xCE, 0x6A, 0xB3, 0xB0, 0x4F, 0x83), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0x95, 0x20, 0xA9, 0x23, 0xC2, 0x65, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0xCF, 0x03, 0x5B, 0x8A, 0x80, 0x44, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xF8, 0x91, 0xF7, 0xD5, 0xED, 0xEA, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x5B, 0x16, 0x10, 0x25, 0xAC, 0x2A, 0x17), }; static const mbedtls_mpi_uint brainpoolP384r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0xEC, 0xDC, 0xC4, 0x7B, 0x8C, 0x6B, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0xBB, 0x1C, 0xD3, 0x5A, 0xEE, 0xD9, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x5D, 0x30, 0x5E, 0xF7, 0xB2, 0x41, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0xCE, 0x0F, 0x1A, 0xC6, 0x41, 0x64, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x18, 0xE1, 0xE3, 0x82, 0x15, 0x66, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0xE2, 0x24, 0x04, 0x72, 0x39, 0xA0, 0x7C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEC, 0xDC, 0xC4, 0x7B, 0x8C, 0x6B, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xBB, 0x1C, 0xD3, 0x5A, 0xEE, 0xD9, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x5D, 0x30, 0x5E, 0xF7, 0xB2, 0x41, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xCE, 0x0F, 0x1A, 0xC6, 0x41, 0x64, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x18, 0xE1, 0xE3, 0x82, 0x15, 0x66, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0xE2, 0x24, 0x04, 0x72, 0x39, 0xA0, 0x7C), }; static const mbedtls_mpi_uint brainpoolP384r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0x51, 0xA2, 0x58, 0x88, 0x62, 0xE1, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0xD2, 0x65, 0x14, 0xE9, 0x4C, 0x82, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0xE1, 0xAC, 0x87, 0xAE, 0x31, 0x1A, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0x4F, 0x96, 0x1E, 0x85, 0x7A, 0xC3, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x86, 0xBB, 0xF0, 0xC0, 0x9D, 0x08, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0x53, 0x03, 0x09, 0x80, 0x91, 0xEF, 0x68 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x51, 0xA2, 0x58, 0x88, 0x62, 0xE1, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xD2, 0x65, 0x14, 0xE9, 0x4C, 0x82, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE1, 0xAC, 0x87, 0xAE, 0x31, 0x1A, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0x4F, 0x96, 0x1E, 0x85, 0x7A, 0xC3, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x86, 0xBB, 0xF0, 0xC0, 0x9D, 0x08, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x53, 0x03, 0x09, 0x80, 0x91, 0xEF, 0x68), }; static const mbedtls_mpi_uint brainpoolP384r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0xD7, 0xAF, 0x6F, 0x69, 0x7B, 0x88, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0x13, 0xE4, 0x30, 0xA2, 0x47, 0xB5, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xD2, 0xC0, 0xDD, 0x8A, 0x1C, 0x3C, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x8C, 0xB3, 0x4C, 0xBA, 0x8B, 0x6D, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0xC7, 0xA1, 0xA8, 0x6E, 0x3C, 0x4F, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x4A, 0x97, 0xC8, 0x03, 0x6F, 0x01, 0x82 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0xD7, 0xAF, 0x6F, 0x69, 0x7B, 0x88, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x13, 0xE4, 0x30, 0xA2, 0x47, 0xB5, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD2, 0xC0, 0xDD, 0x8A, 0x1C, 0x3C, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x8C, 0xB3, 0x4C, 0xBA, 0x8B, 0x6D, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xC7, 0xA1, 0xA8, 0x6E, 0x3C, 0x4F, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x4A, 0x97, 0xC8, 0x03, 0x6F, 0x01, 0x82), }; static const mbedtls_mpi_uint brainpoolP384r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x18, 0x12, 0xA9, 0x39, 0xD5, 0x22, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0xA7, 0xC0, 0xBD, 0x9D, 0x8D, 0x78, 0x38 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0xB3, 0xD0, 0x7F, 0xDF, 0xD0, 0x30, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x25, 0x73, 0x96, 0xEC, 0xA8, 0x1D, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xD1, 0x65, 0x66, 0xDC, 0xD9, 0xCF, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0xED, 0x7B, 0x37, 0xAD, 0xE2, 0xBE, 0x2D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x18, 0x12, 0xA9, 0x39, 0xD5, 0x22, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0xA7, 0xC0, 0xBD, 0x9D, 0x8D, 0x78, 0x38), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xB3, 0xD0, 0x7F, 0xDF, 0xD0, 0x30, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x73, 0x96, 0xEC, 0xA8, 0x1D, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xD1, 0x65, 0x66, 0xDC, 0xD9, 0xCF, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xED, 0x7B, 0x37, 0xAD, 0xE2, 0xBE, 0x2D), }; static const mbedtls_mpi_uint brainpoolP384r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x79, 0x42, 0x6A, 0x07, 0x66, 0xB1, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x53, 0x62, 0x65, 0x92, 0x09, 0x4C, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0xAF, 0xC3, 0x03, 0xF6, 0xF4, 0x2D, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0xCA, 0x41, 0xD9, 0xA2, 0x69, 0x9B, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0xB2, 0xA6, 0x8D, 0xE1, 0xAA, 0x61, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xBA, 0x4D, 0x12, 0xB6, 0xBE, 0xF3, 0x7E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x79, 0x42, 0x6A, 0x07, 0x66, 0xB1, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x53, 0x62, 0x65, 0x92, 0x09, 0x4C, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xAF, 0xC3, 0x03, 0xF6, 0xF4, 0x2D, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xCA, 0x41, 0xD9, 0xA2, 0x69, 0x9B, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0xB2, 0xA6, 0x8D, 0xE1, 0xAA, 0x61, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xBA, 0x4D, 0x12, 0xB6, 0xBE, 0xF3, 0x7E), }; static const mbedtls_mpi_uint brainpoolP384r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0xD9, 0x92, 0x22, 0x07, 0xCE, 0xC9, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0xA1, 0x7C, 0x91, 0xDB, 0x32, 0xF7, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x49, 0x4B, 0x6D, 0xFB, 0xD9, 0x70, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0xFB, 0x4E, 0x4C, 0x5E, 0x66, 0x81, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0xB3, 0xE1, 0x00, 0xB7, 0xD9, 0xCC, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x36, 0x8B, 0xC4, 0x39, 0x20, 0xFD, 0x30 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x92, 0x22, 0x07, 0xCE, 0xC9, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xA1, 0x7C, 0x91, 0xDB, 0x32, 0xF7, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x49, 0x4B, 0x6D, 0xFB, 0xD9, 0x70, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xFB, 0x4E, 0x4C, 0x5E, 0x66, 0x81, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xB3, 0xE1, 0x00, 0xB7, 0xD9, 0xCC, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x36, 0x8B, 0xC4, 0x39, 0x20, 0xFD, 0x30), }; static const mbedtls_mpi_uint brainpoolP384r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x1F, 0x60, 0x03, 0xBB, 0xD7, 0x60, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x3C, 0x62, 0xDD, 0x71, 0x95, 0xE9, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x5B, 0x7A, 0x5F, 0x68, 0x81, 0xC5, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xAF, 0xB5, 0xB9, 0x98, 0x42, 0x28, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0x29, 0x8E, 0x11, 0x49, 0xB4, 0xD7, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x3E, 0xD2, 0x30, 0xA1, 0xBA, 0xCA, 0x03 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x1F, 0x60, 0x03, 0xBB, 0xD7, 0x60, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x3C, 0x62, 0xDD, 0x71, 0x95, 0xE9, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x5B, 0x7A, 0x5F, 0x68, 0x81, 0xC5, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xAF, 0xB5, 0xB9, 0x98, 0x42, 0x28, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x29, 0x8E, 0x11, 0x49, 0xB4, 0xD7, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x3E, 0xD2, 0x30, 0xA1, 0xBA, 0xCA, 0x03), }; static const mbedtls_mpi_uint brainpoolP384r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x37, 0x64, 0x44, 0x2F, 0x03, 0xE5, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x42, 0xBC, 0xFF, 0xA2, 0x1A, 0x5F, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0x04, 0xAB, 0x04, 0xE0, 0x24, 0xAD, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0x45, 0x17, 0x67, 0x1F, 0x3E, 0x53, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x0F, 0xB3, 0x1B, 0x57, 0x54, 0xC2, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xD3, 0xF8, 0xC4, 0x1B, 0x9B, 0xFA, 0x30 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x37, 0x64, 0x44, 0x2F, 0x03, 0xE5, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x42, 0xBC, 0xFF, 0xA2, 0x1A, 0x5F, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0x04, 0xAB, 0x04, 0xE0, 0x24, 0xAD, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x45, 0x17, 0x67, 0x1F, 0x3E, 0x53, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x0F, 0xB3, 0x1B, 0x57, 0x54, 0xC2, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xD3, 0xF8, 0xC4, 0x1B, 0x9B, 0xFA, 0x30), }; static const mbedtls_mpi_uint brainpoolP384r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x90, 0xFD, 0xFB, 0xCA, 0x49, 0x38, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0xCF, 0xC6, 0xDD, 0xF0, 0xFF, 0x8C, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0x69, 0x9D, 0xBD, 0x5F, 0x33, 0xE9, 0xB4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x19, 0x82, 0x3D, 0xAC, 0x1C, 0x40, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0xC7, 0x02, 0x46, 0x14, 0x77, 0x00, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x05, 0xF2, 0x77, 0x3A, 0x66, 0x5C, 0x39 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x90, 0xFD, 0xFB, 0xCA, 0x49, 0x38, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xCF, 0xC6, 0xDD, 0xF0, 0xFF, 0x8C, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x69, 0x9D, 0xBD, 0x5F, 0x33, 0xE9, 0xB4), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x19, 0x82, 0x3D, 0xAC, 0x1C, 0x40, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0xC7, 0x02, 0x46, 0x14, 0x77, 0x00, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x05, 0xF2, 0x77, 0x3A, 0x66, 0x5C, 0x39), }; static const mbedtls_mpi_uint brainpoolP384r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xE6, 0x17, 0xDE, 0xB2, 0xA1, 0xE5, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0x71, 0xEC, 0x9D, 0xD8, 0xF5, 0xD4, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0xC6, 0x42, 0x5E, 0xE7, 0x18, 0xBA, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x21, 0x68, 0x5A, 0x26, 0xFB, 0xD7, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x00, 0x5C, 0xBA, 0x8A, 0x34, 0xEC, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0x9C, 0x3C, 0xAF, 0x53, 0xE8, 0x65, 0x35 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xE6, 0x17, 0xDE, 0xB2, 0xA1, 0xE5, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x71, 0xEC, 0x9D, 0xD8, 0xF5, 0xD4, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xC6, 0x42, 0x5E, 0xE7, 0x18, 0xBA, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x21, 0x68, 0x5A, 0x26, 0xFB, 0xD7, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x00, 0x5C, 0xBA, 0x8A, 0x34, 0xEC, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0x9C, 0x3C, 0xAF, 0x53, 0xE8, 0x65, 0x35), }; static const mbedtls_mpi_uint brainpoolP384r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xEF, 0x28, 0xDC, 0x67, 0x05, 0xC8, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x78, 0xC3, 0x85, 0x49, 0xA0, 0xBC, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x3E, 0x2D, 0xA0, 0xCF, 0xD4, 0x7A, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0x93, 0xFE, 0x60, 0xB3, 0x6E, 0x99, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x62, 0xAD, 0x04, 0xE7, 0x49, 0xAF, 0x5E, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x7A, 0xED, 0xA6, 0x9E, 0x18, 0x09, 0x31 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xEF, 0x28, 0xDC, 0x67, 0x05, 0xC8, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x78, 0xC3, 0x85, 0x49, 0xA0, 0xBC, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x3E, 0x2D, 0xA0, 0xCF, 0xD4, 0x7A, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x93, 0xFE, 0x60, 0xB3, 0x6E, 0x99, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x62, 0xAD, 0x04, 0xE7, 0x49, 0xAF, 0x5E, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x7A, 0xED, 0xA6, 0x9E, 0x18, 0x09, 0x31), }; static const mbedtls_mpi_uint brainpoolP384r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x05, 0x94, 0x44, 0xDC, 0xB8, 0x85, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0xB7, 0x37, 0xC2, 0x50, 0x75, 0x15, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0xC6, 0x0F, 0xB2, 0xA9, 0x91, 0x3E, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x81, 0xAD, 0x25, 0xA1, 0x26, 0x73, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xF1, 0xD1, 0x61, 0x7C, 0x76, 0x8F, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0xDB, 0x4A, 0xFF, 0x14, 0xA7, 0x48, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x05, 0x94, 0x44, 0xDC, 0xB8, 0x85, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xB7, 0x37, 0xC2, 0x50, 0x75, 0x15, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0xC6, 0x0F, 0xB2, 0xA9, 0x91, 0x3E, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x81, 0xAD, 0x25, 0xA1, 0x26, 0x73, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xF1, 0xD1, 0x61, 0x7C, 0x76, 0x8F, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0xDB, 0x4A, 0xFF, 0x14, 0xA7, 0x48, 0x0B), }; static const mbedtls_mpi_uint brainpoolP384r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x73, 0xC6, 0xC2, 0xCC, 0xF1, 0x57, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0xED, 0x73, 0x27, 0x70, 0x82, 0xB6, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0xBA, 0xAC, 0x3A, 0xCF, 0xF4, 0xEA, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xD6, 0xB1, 0x8F, 0x0E, 0x08, 0x2C, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xE3, 0x8F, 0x2F, 0x0E, 0xA1, 0xF3, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0xF5, 0x7C, 0x9B, 0x29, 0x0A, 0xF6, 0x28 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x73, 0xC6, 0xC2, 0xCC, 0xF1, 0x57, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0xED, 0x73, 0x27, 0x70, 0x82, 0xB6, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xBA, 0xAC, 0x3A, 0xCF, 0xF4, 0xEA, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xD6, 0xB1, 0x8F, 0x0E, 0x08, 0x2C, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xE3, 0x8F, 0x2F, 0x0E, 0xA1, 0xF3, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0xF5, 0x7C, 0x9B, 0x29, 0x0A, 0xF6, 0x28), }; static const mbedtls_mpi_uint brainpoolP384r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0xEE, 0x17, 0x47, 0x34, 0x15, 0xA3, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xBE, 0x88, 0x48, 0xE7, 0xA2, 0xBB, 0xDE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0xAD, 0xDC, 0x65, 0x61, 0x37, 0x0F, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x67, 0xAD, 0xA2, 0x3A, 0x1C, 0x91, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x07, 0x0C, 0x3A, 0x41, 0x6E, 0x13, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0xBD, 0x7E, 0xED, 0xAA, 0x14, 0xDD, 0x61 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0xEE, 0x17, 0x47, 0x34, 0x15, 0xA3, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBE, 0x88, 0x48, 0xE7, 0xA2, 0xBB, 0xDE), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xAD, 0xDC, 0x65, 0x61, 0x37, 0x0F, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x67, 0xAD, 0xA2, 0x3A, 0x1C, 0x91, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x07, 0x0C, 0x3A, 0x41, 0x6E, 0x13, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBD, 0x7E, 0xED, 0xAA, 0x14, 0xDD, 0x61), }; static const mbedtls_mpi_uint brainpoolP384r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC3, 0xDC, 0x20, 0x01, 0x72, 0x11, 0x48, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xC4, 0x7B, 0xF8, 0x62, 0x3D, 0xF0, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0xC2, 0x3D, 0x2E, 0x52, 0xA3, 0x4A, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xE2, 0x53, 0x46, 0x5E, 0x21, 0xF8, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0xC7, 0x8F, 0xA9, 0x26, 0x42, 0x32, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xA6, 0xA0, 0x8D, 0x4B, 0x9A, 0x19, 0x03 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC3, 0xDC, 0x20, 0x01, 0x72, 0x11, 0x48, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xC4, 0x7B, 0xF8, 0x62, 0x3D, 0xF0, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xC2, 0x3D, 0x2E, 0x52, 0xA3, 0x4A, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xE2, 0x53, 0x46, 0x5E, 0x21, 0xF8, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xC7, 0x8F, 0xA9, 0x26, 0x42, 0x32, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xA6, 0xA0, 0x8D, 0x4B, 0x9A, 0x19, 0x03), }; static const mbedtls_mpi_uint brainpoolP384r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xAB, 0x6D, 0x1E, 0xFB, 0xEE, 0x60, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x56, 0x3C, 0xC5, 0x5D, 0x10, 0x79, 0x1C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0xBC, 0x41, 0x9F, 0x71, 0xEF, 0x02, 0xF9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA2, 0x36, 0xC4, 0xD0, 0x88, 0x9B, 0x32, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0xD4, 0x5D, 0x17, 0x39, 0xE6, 0x22, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7B, 0x26, 0x01, 0xCE, 0xBE, 0x4A, 0x9C, 0x27 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xAB, 0x6D, 0x1E, 0xFB, 0xEE, 0x60, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x56, 0x3C, 0xC5, 0x5D, 0x10, 0x79, 0x1C), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0xBC, 0x41, 0x9F, 0x71, 0xEF, 0x02, 0xF9), + MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x36, 0xC4, 0xD0, 0x88, 0x9B, 0x32, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xD4, 0x5D, 0x17, 0x39, 0xE6, 0x22, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x7B, 0x26, 0x01, 0xCE, 0xBE, 0x4A, 0x9C, 0x27), }; static const mbedtls_mpi_uint brainpoolP384r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x6D, 0x11, 0xCA, 0x6C, 0x5A, 0x93, 0x0C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x96, 0x26, 0xAF, 0x2F, 0xE4, 0x30, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0xC1, 0x4C, 0xC6, 0x30, 0x1F, 0x5C, 0x04 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x59, 0xB3, 0xE8, 0xFC, 0x35, 0xEB, 0x63, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x1D, 0xCA, 0xFC, 0x50, 0x36, 0x4B, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x0E, 0x23, 0x5B, 0xAF, 0xEB, 0x2D, 0x31 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x6D, 0x11, 0xCA, 0x6C, 0x5A, 0x93, 0x0C), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x96, 0x26, 0xAF, 0x2F, 0xE4, 0x30, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xC1, 0x4C, 0xC6, 0x30, 0x1F, 0x5C, 0x04), + MBEDTLS_BYTES_TO_T_UINT_8(0x59, 0xB3, 0xE8, 0xFC, 0x35, 0xEB, 0x63, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x1D, 0xCA, 0xFC, 0x50, 0x36, 0x4B, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0E, 0x23, 0x5B, 0xAF, 0xEB, 0x2D, 0x31), }; static const mbedtls_mpi_uint brainpoolP384r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0x88, 0xB6, 0xD7, 0x74, 0x4A, 0x23, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x66, 0xE2, 0xBB, 0x29, 0xA6, 0x4F, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0x6F, 0x7E, 0x68, 0x6E, 0xA0, 0x14, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0x73, 0xD4, 0xE8, 0xAB, 0x5B, 0xF6, 0x0D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0xE0, 0x3C, 0x24, 0x00, 0x95, 0xE9, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x0D, 0x4F, 0x81, 0xD0, 0xF2, 0x3F, 0x00 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0x88, 0xB6, 0xD7, 0x74, 0x4A, 0x23, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x66, 0xE2, 0xBB, 0x29, 0xA6, 0x4F, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0x6F, 0x7E, 0x68, 0x6E, 0xA0, 0x14, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x73, 0xD4, 0xE8, 0xAB, 0x5B, 0xF6, 0x0D), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xE0, 0x3C, 0x24, 0x00, 0x95, 0xE9, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x0D, 0x4F, 0x81, 0xD0, 0xF2, 0x3F, 0x00), }; static const mbedtls_mpi_uint brainpoolP384r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0x1D, 0xCD, 0x78, 0x39, 0xC4, 0x6B, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x45, 0xC7, 0xB8, 0x2F, 0xAA, 0x5D, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0x8C, 0x6E, 0xA3, 0x24, 0xB2, 0xDB, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0x2D, 0xD9, 0xF1, 0xC7, 0x9B, 0x8A, 0xAF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0xE1, 0x2C, 0xB9, 0x40, 0x37, 0x91, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x2C, 0xB5, 0x23, 0x03, 0x2B, 0xAF, 0x2F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0x1D, 0xCD, 0x78, 0x39, 0xC4, 0x6B, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x45, 0xC7, 0xB8, 0x2F, 0xAA, 0x5D, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0x8C, 0x6E, 0xA3, 0x24, 0xB2, 0xDB, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x2D, 0xD9, 0xF1, 0xC7, 0x9B, 0x8A, 0xAF), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xE1, 0x2C, 0xB9, 0x40, 0x37, 0x91, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x2C, 0xB5, 0x23, 0x03, 0x2B, 0xAF, 0x2F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0x9D, 0x5A, 0x20, 0x10, 0xA9, 0x84, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x30, 0x89, 0x20, 0x13, 0xE9, 0xB2, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x6E, 0x52, 0xEB, 0x03, 0x18, 0x1F, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x9E, 0x1C, 0x35, 0x87, 0x92, 0x69, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0xC9, 0x88, 0xAF, 0xC6, 0x6C, 0x83, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0xD5, 0x7A, 0x54, 0x34, 0x99, 0xB6, 0x6F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0x9D, 0x5A, 0x20, 0x10, 0xA9, 0x84, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x30, 0x89, 0x20, 0x13, 0xE9, 0xB2, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x6E, 0x52, 0xEB, 0x03, 0x18, 0x1F, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x9E, 0x1C, 0x35, 0x87, 0x92, 0x69, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0xC9, 0x88, 0xAF, 0xC6, 0x6C, 0x83, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0xD5, 0x7A, 0x54, 0x34, 0x99, 0xB6, 0x6F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0xAD, 0x45, 0x9B, 0x4B, 0x41, 0x4D, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0x5D, 0xAB, 0x7F, 0x35, 0x34, 0xE9, 0x29 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0xBE, 0x78, 0x34, 0x44, 0xF3, 0x4A, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xDE, 0xE3, 0xC4, 0xEE, 0x0B, 0xF9, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x86, 0x16, 0x48, 0x32, 0xB8, 0x74, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0xEE, 0x7C, 0xBA, 0xBD, 0x81, 0xE3, 0x55 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0xAD, 0x45, 0x9B, 0x4B, 0x41, 0x4D, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0x5D, 0xAB, 0x7F, 0x35, 0x34, 0xE9, 0x29), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0xBE, 0x78, 0x34, 0x44, 0xF3, 0x4A, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xDE, 0xE3, 0xC4, 0xEE, 0x0B, 0xF9, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x86, 0x16, 0x48, 0x32, 0xB8, 0x74, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0xEE, 0x7C, 0xBA, 0xBD, 0x81, 0xE3, 0x55), }; static const mbedtls_mpi_uint brainpoolP384r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x6A, 0xFA, 0x84, 0xDA, 0xB8, 0xD5, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0x9F, 0x8A, 0xD5, 0x1B, 0x2E, 0x1A, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x0C, 0x61, 0xE2, 0xFF, 0x5B, 0xE6, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0x62, 0xC1, 0x87, 0x53, 0x1B, 0x92, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x90, 0x00, 0xD1, 0x6A, 0x0C, 0x0E, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0x2E, 0xB5, 0x3B, 0x44, 0xB5, 0xA0, 0x78 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x6A, 0xFA, 0x84, 0xDA, 0xB8, 0xD5, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x9F, 0x8A, 0xD5, 0x1B, 0x2E, 0x1A, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x0C, 0x61, 0xE2, 0xFF, 0x5B, 0xE6, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x62, 0xC1, 0x87, 0x53, 0x1B, 0x92, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x90, 0x00, 0xD1, 0x6A, 0x0C, 0x0E, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x2E, 0xB5, 0x3B, 0x44, 0xB5, 0xA0, 0x78), }; static const mbedtls_mpi_uint brainpoolP384r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x5D, 0x02, 0x58, 0xB5, 0xBE, 0x45, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xEF, 0x8E, 0x90, 0x4D, 0x2A, 0x32, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0x99, 0x75, 0x5C, 0x0A, 0x33, 0x8F, 0x36 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x6C, 0x95, 0xD4, 0x1F, 0xF3, 0xEB, 0xDA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0xE4, 0x4C, 0x91, 0x20, 0xF3, 0x25, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x95, 0xEB, 0x29, 0x6F, 0x20, 0x34, 0x81 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x5D, 0x02, 0x58, 0xB5, 0xBE, 0x45, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xEF, 0x8E, 0x90, 0x4D, 0x2A, 0x32, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0x99, 0x75, 0x5C, 0x0A, 0x33, 0x8F, 0x36), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x6C, 0x95, 0xD4, 0x1F, 0xF3, 0xEB, 0xDA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0xE4, 0x4C, 0x91, 0x20, 0xF3, 0x25, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x95, 0xEB, 0x29, 0x6F, 0x20, 0x34, 0x81), }; static const mbedtls_mpi_uint brainpoolP384r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0x15, 0xE5, 0x13, 0x7E, 0x64, 0x8B, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0xBC, 0x0D, 0x18, 0x7E, 0x37, 0x9E, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x82, 0x20, 0xF7, 0x2D, 0x7A, 0x77, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x29, 0xA2, 0xDB, 0x7A, 0xE6, 0x6F, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0xC6, 0x50, 0x5C, 0xBC, 0xE6, 0x4F, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x9F, 0xD5, 0xE8, 0xC5, 0x3D, 0xB7, 0x30 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x15, 0xE5, 0x13, 0x7E, 0x64, 0x8B, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xBC, 0x0D, 0x18, 0x7E, 0x37, 0x9E, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x82, 0x20, 0xF7, 0x2D, 0x7A, 0x77, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x29, 0xA2, 0xDB, 0x7A, 0xE6, 0x6F, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xC6, 0x50, 0x5C, 0xBC, 0xE6, 0x4F, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x9F, 0xD5, 0xE8, 0xC5, 0x3D, 0xB7, 0x30), }; static const mbedtls_mpi_uint brainpoolP384r1_T_16_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x03, 0x55, 0x10, 0xDB, 0xA6, 0x8B, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x17, 0xAE, 0x78, 0xC9, 0x1D, 0x43, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x35, 0x49, 0xD4, 0x47, 0x84, 0x8D, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x95, 0x2F, 0xEA, 0xBC, 0xB4, 0x18, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x48, 0xAE, 0x89, 0xF5, 0x65, 0x3D, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xF2, 0x2B, 0x20, 0xD1, 0x75, 0x50, 0x63 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x03, 0x55, 0x10, 0xDB, 0xA6, 0x8B, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x17, 0xAE, 0x78, 0xC9, 0x1D, 0x43, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x35, 0x49, 0xD4, 0x47, 0x84, 0x8D, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x95, 0x2F, 0xEA, 0xBC, 0xB4, 0x18, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x48, 0xAE, 0x89, 0xF5, 0x65, 0x3D, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xF2, 0x2B, 0x20, 0xD1, 0x75, 0x50, 0x63), }; static const mbedtls_mpi_uint brainpoolP384r1_T_16_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0xE6, 0x5C, 0x2C, 0xE0, 0x7D, 0xDF, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x07, 0x3E, 0xCE, 0x9F, 0x18, 0xB6, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0xF8, 0xF0, 0xD5, 0xFA, 0x42, 0x1D, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x6C, 0x1D, 0x03, 0xC9, 0x0E, 0x2B, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x18, 0x52, 0xA5, 0xB4, 0x63, 0xE1, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x0A, 0xD9, 0xC4, 0xFD, 0x16, 0x60, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0xE6, 0x5C, 0x2C, 0xE0, 0x7D, 0xDF, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x07, 0x3E, 0xCE, 0x9F, 0x18, 0xB6, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0xF8, 0xF0, 0xD5, 0xFA, 0x42, 0x1D, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x6C, 0x1D, 0x03, 0xC9, 0x0E, 0x2B, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x18, 0x52, 0xA5, 0xB4, 0x63, 0xE1, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x0A, 0xD9, 0xC4, 0xFD, 0x16, 0x60, 0x54), }; static const mbedtls_mpi_uint brainpoolP384r1_T_17_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x7D, 0xDE, 0xDF, 0x4B, 0x4A, 0xB0, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x4E, 0x8C, 0x94, 0xC1, 0xE2, 0x85, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4F, 0xF0, 0xEA, 0xB5, 0x9B, 0x70, 0xEF, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x56, 0xC2, 0x39, 0x5D, 0xF3, 0x2C, 0xD9, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0x1C, 0x2E, 0xCC, 0x2F, 0x54, 0x87, 0x80 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB0, 0x72, 0xC7, 0xB5, 0x50, 0xA3, 0x84, 0x77 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x7D, 0xDE, 0xDF, 0x4B, 0x4A, 0xB0, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x4E, 0x8C, 0x94, 0xC1, 0xE2, 0x85, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x4F, 0xF0, 0xEA, 0xB5, 0x9B, 0x70, 0xEF, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x56, 0xC2, 0x39, 0x5D, 0xF3, 0x2C, 0xD9, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0x1C, 0x2E, 0xCC, 0x2F, 0x54, 0x87, 0x80), + MBEDTLS_BYTES_TO_T_UINT_8(0xB0, 0x72, 0xC7, 0xB5, 0x50, 0xA3, 0x84, 0x77), }; static const mbedtls_mpi_uint brainpoolP384r1_T_17_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xD1, 0xAF, 0xA9, 0xB4, 0x8B, 0x5D, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xF6, 0x52, 0x8A, 0xC3, 0x56, 0xA5, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0x52, 0xFF, 0xEA, 0x05, 0x42, 0x77, 0x83 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x08, 0x90, 0x72, 0x86, 0xC4, 0xC3, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0x15, 0xF8, 0xF1, 0x16, 0x67, 0xC6, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x87, 0xAC, 0x8F, 0x71, 0xEC, 0x83, 0x81 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xD1, 0xAF, 0xA9, 0xB4, 0x8B, 0x5D, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xF6, 0x52, 0x8A, 0xC3, 0x56, 0xA5, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x52, 0xFF, 0xEA, 0x05, 0x42, 0x77, 0x83), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x08, 0x90, 0x72, 0x86, 0xC4, 0xC3, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x15, 0xF8, 0xF1, 0x16, 0x67, 0xC6, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x87, 0xAC, 0x8F, 0x71, 0xEC, 0x83, 0x81), }; static const mbedtls_mpi_uint brainpoolP384r1_T_18_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0xE1, 0xE6, 0x2D, 0x0E, 0x11, 0xA1, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0xE2, 0xA8, 0x32, 0xE6, 0xE3, 0x83, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x56, 0xE5, 0xCD, 0xB7, 0x2B, 0x67, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0xED, 0xC9, 0x65, 0x6D, 0x87, 0xE1, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x8E, 0xFD, 0x9A, 0x53, 0x0E, 0xFA, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0x4C, 0x4A, 0xE2, 0x23, 0x84, 0xFA, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0xE1, 0xE6, 0x2D, 0x0E, 0x11, 0xA1, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0xE2, 0xA8, 0x32, 0xE6, 0xE3, 0x83, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x56, 0xE5, 0xCD, 0xB7, 0x2B, 0x67, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xED, 0xC9, 0x65, 0x6D, 0x87, 0xE1, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xFD, 0x9A, 0x53, 0x0E, 0xFA, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0x4C, 0x4A, 0xE2, 0x23, 0x84, 0xFA, 0x01), }; static const mbedtls_mpi_uint brainpoolP384r1_T_18_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xFE, 0x49, 0x81, 0xD1, 0x3E, 0xF4, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x72, 0xE0, 0xEF, 0x0D, 0xB8, 0x3E, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x00, 0x0F, 0x5F, 0xCE, 0x60, 0x72, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xCC, 0xD8, 0x03, 0x07, 0x6E, 0x5A, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x3A, 0x35, 0x50, 0x4E, 0x1F, 0xCA, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0xEA, 0x88, 0x55, 0xBD, 0x6E, 0x05, 0x7F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xFE, 0x49, 0x81, 0xD1, 0x3E, 0xF4, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x72, 0xE0, 0xEF, 0x0D, 0xB8, 0x3E, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x00, 0x0F, 0x5F, 0xCE, 0x60, 0x72, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xCC, 0xD8, 0x03, 0x07, 0x6E, 0x5A, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x3A, 0x35, 0x50, 0x4E, 0x1F, 0xCA, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0xEA, 0x88, 0x55, 0xBD, 0x6E, 0x05, 0x7F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_19_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0x6D, 0xF1, 0x97, 0xA6, 0x69, 0x39, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0x41, 0x99, 0xFF, 0x3B, 0xA1, 0x26, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x2F, 0x95, 0x80, 0x12, 0x4A, 0x1B, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xBF, 0x51, 0xAA, 0xAE, 0x2D, 0xDA, 0xCF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0x1C, 0xB3, 0x52, 0x36, 0x49, 0xD4, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xC1, 0x1F, 0x3A, 0xD3, 0x3E, 0x5C, 0x1A ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x6D, 0xF1, 0x97, 0xA6, 0x69, 0x39, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0x41, 0x99, 0xFF, 0x3B, 0xA1, 0x26, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x2F, 0x95, 0x80, 0x12, 0x4A, 0x1B, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xBF, 0x51, 0xAA, 0xAE, 0x2D, 0xDA, 0xCF), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1C, 0xB3, 0x52, 0x36, 0x49, 0xD4, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xC1, 0x1F, 0x3A, 0xD3, 0x3E, 0x5C, 0x1A), }; static const mbedtls_mpi_uint brainpoolP384r1_T_19_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x51, 0xF7, 0x2B, 0xC8, 0xA9, 0xA7, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0x4E, 0x7F, 0x98, 0x41, 0x66, 0xB0, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x1D, 0xC0, 0x42, 0xCD, 0xF8, 0xC3, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x41, 0x91, 0x7D, 0xCC, 0x8B, 0xCC, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xAE, 0x76, 0xED, 0x56, 0x18, 0xC5, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x6A, 0x06, 0xA3, 0x7F, 0x65, 0x10, 0x1F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x51, 0xF7, 0x2B, 0xC8, 0xA9, 0xA7, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0x4E, 0x7F, 0x98, 0x41, 0x66, 0xB0, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x1D, 0xC0, 0x42, 0xCD, 0xF8, 0xC3, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x41, 0x91, 0x7D, 0xCC, 0x8B, 0xCC, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xAE, 0x76, 0xED, 0x56, 0x18, 0xC5, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x6A, 0x06, 0xA3, 0x7F, 0x65, 0x10, 0x1F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_20_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0xEC, 0x3C, 0x05, 0x05, 0xCA, 0xF6, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x48, 0xCD, 0x02, 0x51, 0x12, 0x16, 0x3C, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0xEB, 0xB3, 0x43, 0x7B, 0xDD, 0xB2, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x59, 0x90, 0x41, 0xDB, 0xE4, 0xF5, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x0E, 0x18, 0x2A, 0x5A, 0x83, 0x7C, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x37, 0xA1, 0x0D, 0xF1, 0x2F, 0x63, 0x79 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xEC, 0x3C, 0x05, 0x05, 0xCA, 0xF6, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x48, 0xCD, 0x02, 0x51, 0x12, 0x16, 0x3C, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0xEB, 0xB3, 0x43, 0x7B, 0xDD, 0xB2, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x59, 0x90, 0x41, 0xDB, 0xE4, 0xF5, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x0E, 0x18, 0x2A, 0x5A, 0x83, 0x7C, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x37, 0xA1, 0x0D, 0xF1, 0x2F, 0x63, 0x79), }; static const mbedtls_mpi_uint brainpoolP384r1_T_20_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xC0, 0xFA, 0x6F, 0x1F, 0x67, 0xCF, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x34, 0x45, 0xBB, 0xF4, 0xF9, 0x9B, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0x69, 0xFE, 0x67, 0x1D, 0x64, 0x8F, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x39, 0xBF, 0xD8, 0xB3, 0xC7, 0xAD, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0x93, 0xFF, 0xF3, 0x28, 0xFA, 0x39, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xF9, 0xC3, 0x85, 0x26, 0x7A, 0x88, 0x89 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC0, 0xFA, 0x6F, 0x1F, 0x67, 0xCF, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x34, 0x45, 0xBB, 0xF4, 0xF9, 0x9B, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0x69, 0xFE, 0x67, 0x1D, 0x64, 0x8F, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x39, 0xBF, 0xD8, 0xB3, 0xC7, 0xAD, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x93, 0xFF, 0xF3, 0x28, 0xFA, 0x39, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF9, 0xC3, 0x85, 0x26, 0x7A, 0x88, 0x89), }; static const mbedtls_mpi_uint brainpoolP384r1_T_21_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0xD5, 0x79, 0xD8, 0x11, 0xDE, 0xEB, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x46, 0xA4, 0x6A, 0xDA, 0x74, 0x34, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0xBD, 0xD3, 0xF5, 0x14, 0xEE, 0xFE, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x4C, 0xA3, 0x71, 0x43, 0x65, 0xF8, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x6C, 0x35, 0xFA, 0x90, 0x25, 0xD8, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x34, 0x84, 0x96, 0xA1, 0x43, 0x03, 0x4D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xD5, 0x79, 0xD8, 0x11, 0xDE, 0xEB, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x46, 0xA4, 0x6A, 0xDA, 0x74, 0x34, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0xBD, 0xD3, 0xF5, 0x14, 0xEE, 0xFE, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x4C, 0xA3, 0x71, 0x43, 0x65, 0xF8, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x6C, 0x35, 0xFA, 0x90, 0x25, 0xD8, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x34, 0x84, 0x96, 0xA1, 0x43, 0x03, 0x4D), }; static const mbedtls_mpi_uint brainpoolP384r1_T_21_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x3B, 0x3B, 0x2F, 0xCA, 0x59, 0xF2, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCD, 0x48, 0x24, 0x74, 0xD8, 0x72, 0x90, 0xA3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x42, 0x74, 0x8C, 0x6F, 0x52, 0x19, 0x3D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x40, 0x9E, 0x41, 0x63, 0x68, 0x78, 0x4C, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0x94, 0xB6, 0x6B, 0x38, 0x52, 0xA8, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x30, 0x25, 0x93, 0xA1, 0x6F, 0x6E, 0x68 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x3B, 0x3B, 0x2F, 0xCA, 0x59, 0xF2, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xCD, 0x48, 0x24, 0x74, 0xD8, 0x72, 0x90, 0xA3), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x42, 0x74, 0x8C, 0x6F, 0x52, 0x19, 0x3D), + MBEDTLS_BYTES_TO_T_UINT_8(0x40, 0x9E, 0x41, 0x63, 0x68, 0x78, 0x4C, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x94, 0xB6, 0x6B, 0x38, 0x52, 0xA8, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x30, 0x25, 0x93, 0xA1, 0x6F, 0x6E, 0x68), }; static const mbedtls_mpi_uint brainpoolP384r1_T_22_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x2F, 0x4B, 0x64, 0x79, 0x50, 0xFF, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0x36, 0xED, 0x57, 0x39, 0x3B, 0xE7, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x85, 0xEA, 0x35, 0xD6, 0xC0, 0xA0, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x89, 0x3A, 0xCC, 0x22, 0x1C, 0x46, 0x02 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x7A, 0xB0, 0xA1, 0x1B, 0x69, 0x62, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xB8, 0x8A, 0x6C, 0x18, 0x85, 0x0D, 0x88 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x2F, 0x4B, 0x64, 0x79, 0x50, 0xFF, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0x36, 0xED, 0x57, 0x39, 0x3B, 0xE7, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x85, 0xEA, 0x35, 0xD6, 0xC0, 0xA0, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x89, 0x3A, 0xCC, 0x22, 0x1C, 0x46, 0x02), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x7A, 0xB0, 0xA1, 0x1B, 0x69, 0x62, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xB8, 0x8A, 0x6C, 0x18, 0x85, 0x0D, 0x88), }; static const mbedtls_mpi_uint brainpoolP384r1_T_22_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xB6, 0x50, 0xE9, 0x4E, 0x7F, 0xE8, 0x07 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x5B, 0x5C, 0xD1, 0x4B, 0x11, 0x9A, 0xD8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x25, 0x56, 0x74, 0x51, 0x9C, 0xEC, 0x9C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x7F, 0xB6, 0x8A, 0xCB, 0x3A, 0x10, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x60, 0x33, 0x07, 0x01, 0xE9, 0x49, 0x59, 0xE6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0xA5, 0x2E, 0xF2, 0xBA, 0x32, 0x63, 0x44 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB6, 0x50, 0xE9, 0x4E, 0x7F, 0xE8, 0x07), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5B, 0x5C, 0xD1, 0x4B, 0x11, 0x9A, 0xD8), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x25, 0x56, 0x74, 0x51, 0x9C, 0xEC, 0x9C), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x7F, 0xB6, 0x8A, 0xCB, 0x3A, 0x10, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0x60, 0x33, 0x07, 0x01, 0xE9, 0x49, 0x59, 0xE6), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xA5, 0x2E, 0xF2, 0xBA, 0x32, 0x63, 0x44), }; static const mbedtls_mpi_uint brainpoolP384r1_T_23_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x06, 0x0B, 0xA5, 0x44, 0x27, 0x7F, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x74, 0xAC, 0x0F, 0xCC, 0x4F, 0x13, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0xB1, 0xBF, 0x97, 0x49, 0xA5, 0x1C, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x64, 0x68, 0x7B, 0x0F, 0xCC, 0x77, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x39, 0xF9, 0x4E, 0x84, 0x9C, 0xF6, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xCF, 0x6D, 0xE2, 0xA1, 0x2D, 0xF9, 0x2B ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x06, 0x0B, 0xA5, 0x44, 0x27, 0x7F, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x74, 0xAC, 0x0F, 0xCC, 0x4F, 0x13, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0xB1, 0xBF, 0x97, 0x49, 0xA5, 0x1C, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x64, 0x68, 0x7B, 0x0F, 0xCC, 0x77, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x39, 0xF9, 0x4E, 0x84, 0x9C, 0xF6, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xCF, 0x6D, 0xE2, 0xA1, 0x2D, 0xF9, 0x2B), }; static const mbedtls_mpi_uint brainpoolP384r1_T_23_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0xC4, 0x90, 0x57, 0x31, 0x01, 0x05, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x1E, 0xBB, 0xBF, 0x98, 0xA4, 0x7C, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0xE3, 0xA0, 0xB2, 0xCD, 0x39, 0x9A, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x34, 0x60, 0x7A, 0x89, 0x98, 0xB5, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0x20, 0x3D, 0x3A, 0x04, 0x8F, 0x5A, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x26, 0xB6, 0x49, 0x09, 0x9C, 0x0F, 0x59 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0xC4, 0x90, 0x57, 0x31, 0x01, 0x05, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x1E, 0xBB, 0xBF, 0x98, 0xA4, 0x7C, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xE3, 0xA0, 0xB2, 0xCD, 0x39, 0x9A, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x34, 0x60, 0x7A, 0x89, 0x98, 0xB5, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0x20, 0x3D, 0x3A, 0x04, 0x8F, 0x5A, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x26, 0xB6, 0x49, 0x09, 0x9C, 0x0F, 0x59), }; static const mbedtls_mpi_uint brainpoolP384r1_T_24_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x66, 0xD2, 0x38, 0x2A, 0x62, 0x81, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0xC8, 0x20, 0x5E, 0x28, 0xA3, 0x81, 0xA7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0x31, 0xA4, 0xF1, 0xEA, 0x7D, 0x87, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8F, 0x2C, 0x99, 0x09, 0x6F, 0x63, 0xEB, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x73, 0x76, 0xDA, 0x1A, 0x06, 0xBE, 0xDE, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x09, 0x2E, 0x75, 0x39, 0x30, 0x2D, 0x42 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x66, 0xD2, 0x38, 0x2A, 0x62, 0x81, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0xC8, 0x20, 0x5E, 0x28, 0xA3, 0x81, 0xA7), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x31, 0xA4, 0xF1, 0xEA, 0x7D, 0x87, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x8F, 0x2C, 0x99, 0x09, 0x6F, 0x63, 0xEB, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x73, 0x76, 0xDA, 0x1A, 0x06, 0xBE, 0xDE, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x09, 0x2E, 0x75, 0x39, 0x30, 0x2D, 0x42), }; static const mbedtls_mpi_uint brainpoolP384r1_T_24_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x9B, 0xC1, 0x5A, 0x17, 0xC3, 0x8C, 0x31 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x58, 0x8D, 0x94, 0x4D, 0x3D, 0xAB, 0x60, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xFD, 0x1E, 0x0F, 0x43, 0xAE, 0x9D, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0xF2, 0xF3, 0x20, 0x1B, 0xAA, 0xB7, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0x5B, 0xA4, 0xF4, 0x90, 0x3B, 0xE3, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x78, 0x72, 0xBD, 0x65, 0x09, 0x0B, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x9B, 0xC1, 0x5A, 0x17, 0xC3, 0x8C, 0x31), + MBEDTLS_BYTES_TO_T_UINT_8(0x58, 0x8D, 0x94, 0x4D, 0x3D, 0xAB, 0x60, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xFD, 0x1E, 0x0F, 0x43, 0xAE, 0x9D, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF2, 0xF3, 0x20, 0x1B, 0xAA, 0xB7, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0x5B, 0xA4, 0xF4, 0x90, 0x3B, 0xE3, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x78, 0x72, 0xBD, 0x65, 0x09, 0x0B, 0x01), }; static const mbedtls_mpi_uint brainpoolP384r1_T_25_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x37, 0x2A, 0x6C, 0x16, 0x4F, 0x64, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0xCE, 0xA3, 0x90, 0xB4, 0x9A, 0xBC, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x38, 0x55, 0x63, 0x1D, 0x3A, 0x6E, 0x18 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0xB4, 0xAA, 0x99, 0x22, 0x45, 0x89, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0x7C, 0x8C, 0xA6, 0x3D, 0xA7, 0x3E, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x06, 0x42, 0xDC, 0xA6, 0xE3, 0xC6, 0x12 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x37, 0x2A, 0x6C, 0x16, 0x4F, 0x64, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0xCE, 0xA3, 0x90, 0xB4, 0x9A, 0xBC, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x55, 0x63, 0x1D, 0x3A, 0x6E, 0x18), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xB4, 0xAA, 0x99, 0x22, 0x45, 0x89, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0x7C, 0x8C, 0xA6, 0x3D, 0xA7, 0x3E, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x06, 0x42, 0xDC, 0xA6, 0xE3, 0xC6, 0x12), }; static const mbedtls_mpi_uint brainpoolP384r1_T_25_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x8C, 0x3D, 0x5D, 0x47, 0x31, 0x7C, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x85, 0xEE, 0x46, 0x7E, 0x13, 0x04, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x3C, 0x8B, 0x43, 0x2E, 0x74, 0xF5, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x88, 0x8E, 0x07, 0x29, 0x08, 0x03, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0x9B, 0x89, 0xEB, 0x08, 0xE8, 0x43, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x07, 0x67, 0xFD, 0xD9, 0x73, 0x6F, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x8C, 0x3D, 0x5D, 0x47, 0x31, 0x7C, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x85, 0xEE, 0x46, 0x7E, 0x13, 0x04, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x3C, 0x8B, 0x43, 0x2E, 0x74, 0xF5, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x88, 0x8E, 0x07, 0x29, 0x08, 0x03, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0x9B, 0x89, 0xEB, 0x08, 0xE8, 0x43, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x07, 0x67, 0xFD, 0xD9, 0x73, 0x6F, 0x18), }; static const mbedtls_mpi_uint brainpoolP384r1_T_26_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0xEB, 0x21, 0x8D, 0x98, 0x43, 0x74, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x88, 0xCC, 0x14, 0xD8, 0x08, 0xBB, 0xA6, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x98, 0xF2, 0x6A, 0x18, 0xC3, 0xDD, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0x38, 0x91, 0xA0, 0x03, 0xF2, 0x04, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0xAF, 0xE8, 0xFD, 0xFB, 0x13, 0x70, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x93, 0x87, 0x98, 0x4A, 0xE0, 0x00, 0x12 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0xEB, 0x21, 0x8D, 0x98, 0x43, 0x74, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x88, 0xCC, 0x14, 0xD8, 0x08, 0xBB, 0xA6, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x98, 0xF2, 0x6A, 0x18, 0xC3, 0xDD, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x38, 0x91, 0xA0, 0x03, 0xF2, 0x04, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0xAF, 0xE8, 0xFD, 0xFB, 0x13, 0x70, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x93, 0x87, 0x98, 0x4A, 0xE0, 0x00, 0x12), }; static const mbedtls_mpi_uint brainpoolP384r1_T_26_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x2E, 0x69, 0x9C, 0xA2, 0x2D, 0x03, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0xFE, 0xF3, 0xB9, 0xC1, 0x85, 0x2A, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xFD, 0x86, 0xB1, 0xCD, 0xBF, 0x41, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0xD8, 0x9A, 0x21, 0xF3, 0xFE, 0xCB, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x78, 0x04, 0x60, 0xB7, 0xA9, 0xA2, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x1E, 0x66, 0x2A, 0x54, 0x51, 0xBD, 0x8B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x2E, 0x69, 0x9C, 0xA2, 0x2D, 0x03, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFE, 0xF3, 0xB9, 0xC1, 0x85, 0x2A, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xFD, 0x86, 0xB1, 0xCD, 0xBF, 0x41, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xD8, 0x9A, 0x21, 0xF3, 0xFE, 0xCB, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x78, 0x04, 0x60, 0xB7, 0xA9, 0xA2, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1E, 0x66, 0x2A, 0x54, 0x51, 0xBD, 0x8B), }; static const mbedtls_mpi_uint brainpoolP384r1_T_27_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x16, 0x36, 0xEF, 0x61, 0x2D, 0xEE, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x5F, 0x88, 0xA0, 0x13, 0x12, 0xF7, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA9, 0xC6, 0xAD, 0x4A, 0x4A, 0x07, 0x01, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB8, 0x74, 0xB1, 0x4F, 0xEB, 0xBD, 0xD5, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xF9, 0x71, 0xA2, 0x06, 0x4F, 0xD7, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x8B, 0x4D, 0x48, 0xE0, 0x98, 0xFB, 0x6A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x16, 0x36, 0xEF, 0x61, 0x2D, 0xEE, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x5F, 0x88, 0xA0, 0x13, 0x12, 0xF7, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0xA9, 0xC6, 0xAD, 0x4A, 0x4A, 0x07, 0x01, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB8, 0x74, 0xB1, 0x4F, 0xEB, 0xBD, 0xD5, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xF9, 0x71, 0xA2, 0x06, 0x4F, 0xD7, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x8B, 0x4D, 0x48, 0xE0, 0x98, 0xFB, 0x6A), }; static const mbedtls_mpi_uint brainpoolP384r1_T_27_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0xBA, 0x10, 0xA3, 0x0D, 0x52, 0xAC, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xD0, 0xE0, 0x36, 0xE6, 0x07, 0x3A, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x80, 0xF0, 0xAA, 0x49, 0x22, 0x4B, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xC7, 0xAB, 0x1C, 0x89, 0xCD, 0x24, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x82, 0x2A, 0xFC, 0xB3, 0x6D, 0x45, 0x96, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0xE4, 0xDB, 0x52, 0x3F, 0xC4, 0xB4, 0x19 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xBA, 0x10, 0xA3, 0x0D, 0x52, 0xAC, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xD0, 0xE0, 0x36, 0xE6, 0x07, 0x3A, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x80, 0xF0, 0xAA, 0x49, 0x22, 0x4B, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xC7, 0xAB, 0x1C, 0x89, 0xCD, 0x24, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x82, 0x2A, 0xFC, 0xB3, 0x6D, 0x45, 0x96, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xE4, 0xDB, 0x52, 0x3F, 0xC4, 0xB4, 0x19), }; static const mbedtls_mpi_uint brainpoolP384r1_T_28_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5B, 0xCC, 0xC8, 0x7F, 0xBB, 0x6B, 0x87, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x21, 0x3C, 0x69, 0x7D, 0x38, 0x57, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0x4C, 0x18, 0x3C, 0x53, 0xA5, 0x48, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xC3, 0x64, 0x45, 0xDB, 0xC4, 0x6D, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0xCC, 0xD1, 0xBB, 0x17, 0xB8, 0x34, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x69, 0x71, 0xFA, 0xA0, 0x28, 0x4A, 0x3D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5B, 0xCC, 0xC8, 0x7F, 0xBB, 0x6B, 0x87, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x21, 0x3C, 0x69, 0x7D, 0x38, 0x57, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x4C, 0x18, 0x3C, 0x53, 0xA5, 0x48, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xC3, 0x64, 0x45, 0xDB, 0xC4, 0x6D, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xCC, 0xD1, 0xBB, 0x17, 0xB8, 0x34, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x69, 0x71, 0xFA, 0xA0, 0x28, 0x4A, 0x3D), }; static const mbedtls_mpi_uint brainpoolP384r1_T_28_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0xE8, 0x9E, 0x39, 0xEA, 0x8D, 0x38, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x9C, 0xBB, 0xCD, 0x80, 0x1A, 0xEE, 0xB7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xA0, 0x45, 0xBF, 0xD9, 0x22, 0x11, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x7C, 0x5C, 0xD9, 0xC0, 0x9F, 0x69, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x8A, 0xA6, 0x79, 0x4E, 0x35, 0xB9, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCC, 0x8B, 0x9A, 0x3E, 0xA1, 0xB8, 0x28, 0x10 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xE8, 0x9E, 0x39, 0xEA, 0x8D, 0x38, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x9C, 0xBB, 0xCD, 0x80, 0x1A, 0xEE, 0xB7), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xA0, 0x45, 0xBF, 0xD9, 0x22, 0x11, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x7C, 0x5C, 0xD9, 0xC0, 0x9F, 0x69, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x8A, 0xA6, 0x79, 0x4E, 0x35, 0xB9, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0xCC, 0x8B, 0x9A, 0x3E, 0xA1, 0xB8, 0x28, 0x10), }; static const mbedtls_mpi_uint brainpoolP384r1_T_29_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x2F, 0xEF, 0xBB, 0xA9, 0x72, 0x7F, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x34, 0xB7, 0x12, 0xB9, 0xE7, 0xC3, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x1D, 0xD9, 0x42, 0x77, 0x0C, 0x71, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x01, 0x59, 0xA7, 0x56, 0x03, 0x91, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x91, 0x99, 0x33, 0x30, 0x3E, 0xEF, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0xC9, 0x5A, 0x9A, 0x54, 0x66, 0xF1, 0x70 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x2F, 0xEF, 0xBB, 0xA9, 0x72, 0x7F, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x34, 0xB7, 0x12, 0xB9, 0xE7, 0xC3, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x1D, 0xD9, 0x42, 0x77, 0x0C, 0x71, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x01, 0x59, 0xA7, 0x56, 0x03, 0x91, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x91, 0x99, 0x33, 0x30, 0x3E, 0xEF, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xC9, 0x5A, 0x9A, 0x54, 0x66, 0xF1, 0x70), }; static const mbedtls_mpi_uint brainpoolP384r1_T_29_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0x2C, 0xB7, 0x6E, 0x71, 0x7D, 0x35, 0x30 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x0D, 0xEF, 0xD1, 0x2D, 0x99, 0x63, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x31, 0xAF, 0x2D, 0xC9, 0xC6, 0xC2, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0xC0, 0xDF, 0x80, 0x54, 0xC4, 0xAC, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x6B, 0xA0, 0x84, 0x96, 0xF7, 0x31, 0xC8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0xE2, 0x7C, 0x7A, 0x41, 0x45, 0x75, 0x6A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0x2C, 0xB7, 0x6E, 0x71, 0x7D, 0x35, 0x30), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x0D, 0xEF, 0xD1, 0x2D, 0x99, 0x63, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x31, 0xAF, 0x2D, 0xC9, 0xC6, 0xC2, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0xC0, 0xDF, 0x80, 0x54, 0xC4, 0xAC, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x6B, 0xA0, 0x84, 0x96, 0xF7, 0x31, 0xC8), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0xE2, 0x7C, 0x7A, 0x41, 0x45, 0x75, 0x6A), }; static const mbedtls_mpi_uint brainpoolP384r1_T_30_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0xEE, 0x58, 0x31, 0xE8, 0x68, 0xD6, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x2E, 0x48, 0xB7, 0x09, 0x9F, 0xD4, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xA9, 0x5C, 0xE7, 0x64, 0x43, 0x5D, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9E, 0x58, 0x9F, 0x50, 0xAB, 0x68, 0xFF, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0x88, 0x2D, 0xBA, 0x12, 0xBF, 0x8D, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0xDF, 0x6F, 0xB3, 0x75, 0xA4, 0x55, 0x73 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xEE, 0x58, 0x31, 0xE8, 0x68, 0xD6, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x2E, 0x48, 0xB7, 0x09, 0x9F, 0xD4, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xA9, 0x5C, 0xE7, 0x64, 0x43, 0x5D, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x9E, 0x58, 0x9F, 0x50, 0xAB, 0x68, 0xFF, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0x88, 0x2D, 0xBA, 0x12, 0xBF, 0x8D, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xDF, 0x6F, 0xB3, 0x75, 0xA4, 0x55, 0x73), }; static const mbedtls_mpi_uint brainpoolP384r1_T_30_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x17, 0x92, 0x39, 0xB7, 0x13, 0x37, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x43, 0x71, 0xA7, 0xCA, 0x17, 0x1B, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE7, 0xB9, 0xB0, 0x78, 0xEF, 0xA0, 0xDA, 0x83 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x84, 0xF2, 0x0F, 0x85, 0xA2, 0xB6, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x72, 0x65, 0x2E, 0x6E, 0x45, 0xB9, 0x4C, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0x6A, 0x8C, 0x2B, 0x77, 0x96, 0x36, 0x22 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x17, 0x92, 0x39, 0xB7, 0x13, 0x37, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x43, 0x71, 0xA7, 0xCA, 0x17, 0x1B, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0xE7, 0xB9, 0xB0, 0x78, 0xEF, 0xA0, 0xDA, 0x83), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x84, 0xF2, 0x0F, 0x85, 0xA2, 0xB6, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x72, 0x65, 0x2E, 0x6E, 0x45, 0xB9, 0x4C, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x6A, 0x8C, 0x2B, 0x77, 0x96, 0x36, 0x22), }; static const mbedtls_mpi_uint brainpoolP384r1_T_31_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x7A, 0x13, 0x4A, 0x97, 0x63, 0x02, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x1E, 0x06, 0x03, 0x8F, 0xB9, 0xEE, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0xEE, 0x8B, 0x89, 0xA9, 0x70, 0xDB, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x7B, 0x81, 0xC9, 0x70, 0x8D, 0x62, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0xDA, 0x46, 0xF8, 0xF9, 0x3A, 0xBE, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0x9C, 0x7A, 0x97, 0x62, 0xEB, 0xFA, 0x0F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x7A, 0x13, 0x4A, 0x97, 0x63, 0x02, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x1E, 0x06, 0x03, 0x8F, 0xB9, 0xEE, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0xEE, 0x8B, 0x89, 0xA9, 0x70, 0xDB, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x7B, 0x81, 0xC9, 0x70, 0x8D, 0x62, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0xDA, 0x46, 0xF8, 0xF9, 0x3A, 0xBE, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0x9C, 0x7A, 0x97, 0x62, 0xEB, 0xFA, 0x0F), }; static const mbedtls_mpi_uint brainpoolP384r1_T_31_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0x03, 0x3D, 0x3C, 0x46, 0x27, 0x9E, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x08, 0x1C, 0xD5, 0x25, 0xAF, 0xE9, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0x69, 0xDC, 0x59, 0xF4, 0x8A, 0x7C, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x9A, 0x7A, 0x99, 0x21, 0x0C, 0x4E, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xCE, 0x85, 0x5F, 0xAC, 0xAA, 0x82, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x83, 0x57, 0x69, 0x90, 0x76, 0xF3, 0x53, 0x3F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x03, 0x3D, 0x3C, 0x46, 0x27, 0x9E, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x08, 0x1C, 0xD5, 0x25, 0xAF, 0xE9, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x69, 0xDC, 0x59, 0xF4, 0x8A, 0x7C, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x9A, 0x7A, 0x99, 0x21, 0x0C, 0x4E, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xCE, 0x85, 0x5F, 0xAC, 0xAA, 0x82, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x83, 0x57, 0x69, 0x90, 0x76, 0xF3, 0x53, 0x3F), }; static const mbedtls_ecp_point brainpoolP384r1_T[32] = { ECP_POINT_INIT_XY_Z1(brainpoolP384r1_T_0_X, brainpoolP384r1_T_0_Y), @@ -3762,706 +3762,706 @@ static const mbedtls_ecp_point brainpoolP384r1_T[32] = { */ #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) static const mbedtls_mpi_uint brainpoolP512r1_p[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0x48, 0x3A, 0x58, 0x56, 0x60, 0xAA, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x85, 0xC6, 0x82, 0x2D, 0x2F, 0xFF, 0x81, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x80, 0xA3, 0xE6, 0x2A, 0xA1, 0xCD, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x68, 0xC6, 0x9B, 0x00, 0x9B, 0x4D, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0x48, 0x3A, 0x58, 0x56, 0x60, 0xAA, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0x85, 0xC6, 0x82, 0x2D, 0x2F, 0xFF, 0x81, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x80, 0xA3, 0xE6, 0x2A, 0xA1, 0xCD, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x68, 0xC6, 0x9B, 0x00, 0x9B, 0x4D, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA), }; static const mbedtls_mpi_uint brainpoolP512r1_a[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x94, 0xFC, 0x77, 0x4D, 0xAC, 0xC1, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xC7, 0xF2, 0x2B, 0xA7, 0x17, 0x11, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0xC8, 0x9A, 0x8B, 0xC9, 0xF1, 0x2E, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x3A, 0x25, 0xA8, 0x5A, 0x5D, 0xED, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0x63, 0x98, 0xEA, 0xCA, 0x41, 0x34, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x16, 0xF9, 0x3D, 0x8D, 0xDD, 0xCB, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x4C, 0x23, 0xAC, 0x45, 0x71, 0x32, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0x3B, 0x60, 0x8B, 0x31, 0xA3, 0x30, 0x78 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x94, 0xFC, 0x77, 0x4D, 0xAC, 0xC1, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xC7, 0xF2, 0x2B, 0xA7, 0x17, 0x11, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0xC8, 0x9A, 0x8B, 0xC9, 0xF1, 0x2E, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x3A, 0x25, 0xA8, 0x5A, 0x5D, 0xED, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0x63, 0x98, 0xEA, 0xCA, 0x41, 0x34, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x16, 0xF9, 0x3D, 0x8D, 0xDD, 0xCB, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x4C, 0x23, 0xAC, 0x45, 0x71, 0x32, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x3B, 0x60, 0x8B, 0x31, 0xA3, 0x30, 0x78), }; static const mbedtls_mpi_uint brainpoolP512r1_b[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0xF7, 0x16, 0x80, 0x63, 0xBD, 0x09, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0xE5, 0xBA, 0x5E, 0xB7, 0x50, 0x40, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0x3E, 0x08, 0xDC, 0xCA, 0x94, 0xFC, 0x77 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0xAC, 0xC1, 0xE7, 0xB9, 0xC7, 0xF2, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x17, 0x11, 0x7F, 0xB5, 0xC8, 0x9A, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0xF1, 0x2E, 0x0A, 0xA1, 0x3A, 0x25, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x5D, 0xED, 0x2D, 0xBC, 0x63, 0x98, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0x41, 0x34, 0xA8, 0x10, 0x16, 0xF9, 0x3D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0xF7, 0x16, 0x80, 0x63, 0xBD, 0x09, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xE5, 0xBA, 0x5E, 0xB7, 0x50, 0x40, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x3E, 0x08, 0xDC, 0xCA, 0x94, 0xFC, 0x77), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0xAC, 0xC1, 0xE7, 0xB9, 0xC7, 0xF2, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x17, 0x11, 0x7F, 0xB5, 0xC8, 0x9A, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0xF1, 0x2E, 0x0A, 0xA1, 0x3A, 0x25, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x5D, 0xED, 0x2D, 0xBC, 0x63, 0x98, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0x41, 0x34, 0xA8, 0x10, 0x16, 0xF9, 0x3D), }; static const mbedtls_mpi_uint brainpoolP512r1_gx[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81), }; static const mbedtls_mpi_uint brainpoolP512r1_gy[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D), }; static const mbedtls_mpi_uint brainpoolP512r1_n[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x69, 0x00, 0xA9, 0x9C, 0x82, 0x96, 0x87, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0xDA, 0x5D, 0x08, 0x81, 0xD3, 0xB1, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x47, 0x10, 0xAC, 0x7F, 0x19, 0x61, 0x86, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x26, 0xA9, 0x4C, 0x41, 0x5C, 0x3E, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA ), + MBEDTLS_BYTES_TO_T_UINT_8(0x69, 0x00, 0xA9, 0x9C, 0x82, 0x96, 0x87, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0xDA, 0x5D, 0x08, 0x81, 0xD3, 0xB1, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x47, 0x10, 0xAC, 0x7F, 0x19, 0x61, 0x86, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x26, 0xA9, 0x4C, 0x41, 0x5C, 0x3E, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x08, 0x33, 0x70, 0xCA, 0x9C, 0x63, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xD2, 0xC9, 0xB3, 0xB3, 0x8D, 0x30, 0xCB), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xFC, 0xC9, 0x33, 0xAE, 0xE6, 0xD4, 0x3F), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xC4, 0xE9, 0xDB, 0xB8, 0x9D, 0xDD, 0xAA), }; #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 static const mbedtls_mpi_uint brainpoolP512r1_T_0_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0xF8, 0xB9, 0xBC, 0x09, 0x22, 0x35, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x5E, 0x6A, 0x40, 0x47, 0x50, 0x6D, 0x7C), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0x7D, 0xB9, 0x93, 0x7B, 0x68, 0xD1, 0x50), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xD4, 0xD0, 0xE2, 0x78, 0x1F, 0x3B, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x09, 0xD0, 0xF4, 0xEE, 0x62, 0x3B, 0xB4), + MBEDTLS_BYTES_TO_T_UINT_8(0xC1, 0x16, 0xD9, 0xB5, 0x70, 0x9F, 0xED, 0x85), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x6A, 0x4C, 0x9C, 0x2E, 0x32, 0x21, 0x5A), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD9, 0x2E, 0xD8, 0xBD, 0xE4, 0xAE, 0x81), }; static const mbedtls_mpi_uint brainpoolP512r1_T_0_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x08, 0xD8, 0x3A, 0x0F, 0x1E, 0xCD, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x06, 0x54, 0xF0, 0xA8, 0x2F, 0x2B, 0xCA, 0xD1), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0x63, 0x27, 0x8A, 0xD8, 0x4B, 0xCA, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x48, 0x5F, 0x4A, 0x49, 0xDE, 0xDC, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0x81, 0x1F, 0x88, 0x5B, 0xC5, 0x00, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x7B, 0xA5, 0x24, 0x00, 0xF7, 0x09, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x22, 0x78, 0xCF, 0xA9, 0xBF, 0xEA, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0x32, 0x63, 0x56, 0x5D, 0x38, 0xDE, 0x7D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_1_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xE9, 0x6B, 0x8C, 0x6F, 0x9D, 0x88, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x4F, 0x86, 0x96, 0xA7, 0x56, 0xD1, 0x37 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0xAB, 0xFA, 0xEE, 0xA7, 0xF5, 0x0E, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x40, 0xEF, 0x9E, 0x6D, 0xD6, 0x32, 0x33 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0xED, 0x56, 0x14, 0x57, 0x1A, 0x8D, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0xED, 0x4D, 0x3A, 0xFA, 0x71, 0x75, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xC5, 0x76, 0x1C, 0x14, 0xBE, 0xB5, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x5A, 0xCB, 0xE7, 0x36, 0x1D, 0x52, 0x1C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xE9, 0x6B, 0x8C, 0x6F, 0x9D, 0x88, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x4F, 0x86, 0x96, 0xA7, 0x56, 0xD1, 0x37), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xAB, 0xFA, 0xEE, 0xA7, 0xF5, 0x0E, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x40, 0xEF, 0x9E, 0x6D, 0xD6, 0x32, 0x33), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xED, 0x56, 0x14, 0x57, 0x1A, 0x8D, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xED, 0x4D, 0x3A, 0xFA, 0x71, 0x75, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xC5, 0x76, 0x1C, 0x14, 0xBE, 0xB5, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x5A, 0xCB, 0xE7, 0x36, 0x1D, 0x52, 0x1C), }; static const mbedtls_mpi_uint brainpoolP512r1_T_1_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x8D, 0x7A, 0xEB, 0xA3, 0x8B, 0xD5, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0xA3, 0x41, 0xF8, 0xAC, 0x9E, 0xAB, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x12, 0xE3, 0x65, 0x0D, 0x1C, 0xFE, 0x09, 0x2B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0xCA, 0x13, 0x3F, 0xC5, 0xF9, 0x7E, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0x5D, 0x63, 0x28, 0xA6, 0x89, 0xD3, 0x91 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x95, 0x3F, 0x7A, 0x82, 0xD4, 0x77, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xBB, 0x92, 0x32, 0x00, 0xF4, 0x66, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x58, 0x31, 0xD1, 0x17, 0x9F, 0x2A, 0x22 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8D, 0x7A, 0xEB, 0xA3, 0x8B, 0xD5, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0xA3, 0x41, 0xF8, 0xAC, 0x9E, 0xAB, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x12, 0xE3, 0x65, 0x0D, 0x1C, 0xFE, 0x09, 0x2B), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0xCA, 0x13, 0x3F, 0xC5, 0xF9, 0x7E, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0x5D, 0x63, 0x28, 0xA6, 0x89, 0xD3, 0x91), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x95, 0x3F, 0x7A, 0x82, 0xD4, 0x77, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xBB, 0x92, 0x32, 0x00, 0xF4, 0x66, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x58, 0x31, 0xD1, 0x17, 0x9F, 0x2A, 0x22), }; static const mbedtls_mpi_uint brainpoolP512r1_T_2_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0x36, 0xA9, 0xCD, 0x80, 0xA5, 0x2D, 0x78 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x91, 0x44, 0xAB, 0xCE, 0x71, 0xFF, 0x0C, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0x24, 0x58, 0x35, 0x5A, 0x21, 0x32, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1B, 0xA6, 0x28, 0xF8, 0x7A, 0x97, 0xAE, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0xE7, 0x08, 0xFA, 0x47, 0xC9, 0x55, 0x09 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xAC, 0x2E, 0x84, 0xA4, 0xF5, 0x52, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x58, 0x05, 0x9D, 0xA7, 0xC8, 0x71, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x92, 0xB4, 0x92, 0xC1, 0x92, 0xEC, 0x6B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x36, 0xA9, 0xCD, 0x80, 0xA5, 0x2D, 0x78), + MBEDTLS_BYTES_TO_T_UINT_8(0x91, 0x44, 0xAB, 0xCE, 0x71, 0xFF, 0x0C, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0x24, 0x58, 0x35, 0x5A, 0x21, 0x32, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0x1B, 0xA6, 0x28, 0xF8, 0x7A, 0x97, 0xAE, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xE7, 0x08, 0xFA, 0x47, 0xC9, 0x55, 0x09), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xAC, 0x2E, 0x84, 0xA4, 0xF5, 0x52, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x58, 0x05, 0x9D, 0xA7, 0xC8, 0x71, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x92, 0xB4, 0x92, 0xC1, 0x92, 0xEC, 0x6B), }; static const mbedtls_mpi_uint brainpoolP512r1_T_2_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4A, 0x48, 0x2D, 0x79, 0x5E, 0x58, 0xE5, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x85, 0x26, 0xEC, 0xE9, 0x6E, 0xD4, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x68, 0x26, 0x87, 0x38, 0xA2, 0xD2, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0x17, 0x60, 0xCE, 0x75, 0xF8, 0xA5, 0x6F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0x51, 0xDB, 0xA9, 0xAE, 0x87, 0xF1, 0x15 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x49, 0x92, 0x3B, 0x19, 0x96, 0xF5, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0xD5, 0x52, 0x52, 0x8C, 0xCE, 0xFD, 0xFA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x18, 0x0A, 0xE6, 0xF6, 0xAE, 0x08, 0x41 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4A, 0x48, 0x2D, 0x79, 0x5E, 0x58, 0xE5, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x85, 0x26, 0xEC, 0xE9, 0x6E, 0xD4, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x68, 0x26, 0x87, 0x38, 0xA2, 0xD2, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0x17, 0x60, 0xCE, 0x75, 0xF8, 0xA5, 0x6F), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0x51, 0xDB, 0xA9, 0xAE, 0x87, 0xF1, 0x15), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x49, 0x92, 0x3B, 0x19, 0x96, 0xF5, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0xD5, 0x52, 0x52, 0x8C, 0xCE, 0xFD, 0xFA), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x18, 0x0A, 0xE6, 0xF6, 0xAE, 0x08, 0x41), }; static const mbedtls_mpi_uint brainpoolP512r1_T_3_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x2B, 0xD8, 0x54, 0xCE, 0xB0, 0x57, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0xB0, 0xF8, 0x9E, 0x03, 0x03, 0x3C, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x0E, 0x29, 0x29, 0x00, 0xF3, 0x70, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0x33, 0x99, 0x0E, 0x00, 0x5D, 0xFE, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0x2D, 0xF2, 0x59, 0x32, 0xCF, 0x03, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0xC9, 0x72, 0xAE, 0x0C, 0xEF, 0xD1, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x5A, 0x27, 0xBF, 0x2F, 0x45, 0xF9, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD4, 0xBE, 0xE5, 0x2C, 0xFF, 0x5B, 0x1E, 0x88 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x2B, 0xD8, 0x54, 0xCE, 0xB0, 0x57, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xB0, 0xF8, 0x9E, 0x03, 0x03, 0x3C, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x0E, 0x29, 0x29, 0x00, 0xF3, 0x70, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0x33, 0x99, 0x0E, 0x00, 0x5D, 0xFE, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0x2D, 0xF2, 0x59, 0x32, 0xCF, 0x03, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0xC9, 0x72, 0xAE, 0x0C, 0xEF, 0xD1, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x5A, 0x27, 0xBF, 0x2F, 0x45, 0xF9, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0xD4, 0xBE, 0xE5, 0x2C, 0xFF, 0x5B, 0x1E, 0x88), }; static const mbedtls_mpi_uint brainpoolP512r1_T_3_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0xAC, 0xBB, 0xD8, 0x83, 0xC2, 0x46, 0xF6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0xDC, 0xCE, 0x15, 0xB4, 0xEF, 0xCF, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0xDB, 0x5E, 0x94, 0x31, 0x0B, 0xB2, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0xB9, 0xE3, 0xE3, 0x11, 0x71, 0x41, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0xE3, 0x01, 0xB7, 0x7D, 0xBC, 0x65, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x07, 0x65, 0x87, 0xA7, 0xE8, 0x48, 0xE3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0x48, 0x8F, 0xD4, 0x30, 0x8E, 0xB4, 0x6C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0xE0, 0x73, 0xBE, 0x1E, 0xBF, 0x56, 0x36 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0xAC, 0xBB, 0xD8, 0x83, 0xC2, 0x46, 0xF6), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xDC, 0xCE, 0x15, 0xB4, 0xEF, 0xCF, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xDB, 0x5E, 0x94, 0x31, 0x0B, 0xB2, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0xB9, 0xE3, 0xE3, 0x11, 0x71, 0x41, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xE3, 0x01, 0xB7, 0x7D, 0xBC, 0x65, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x07, 0x65, 0x87, 0xA7, 0xE8, 0x48, 0xE3), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x48, 0x8F, 0xD4, 0x30, 0x8E, 0xB4, 0x6C), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0xE0, 0x73, 0xBE, 0x1E, 0xBF, 0x56, 0x36), }; static const mbedtls_mpi_uint brainpoolP512r1_T_4_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xFE, 0x0E, 0x5E, 0x87, 0xC5, 0xAB, 0x0E, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0xF9, 0x5F, 0x80, 0x24, 0x4C, 0x2A, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDE, 0x15, 0x21, 0x54, 0x92, 0x84, 0x8D, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA8, 0x8A, 0x47, 0x74, 0xDC, 0x42, 0xB1, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0xF7, 0x30, 0xFD, 0xC1, 0x9B, 0x0C, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x6C, 0xCC, 0xDF, 0xC5, 0xE3, 0xA9, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x67, 0x59, 0x10, 0x5C, 0x51, 0x54, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x37, 0xFB, 0x6E, 0xB0, 0x78, 0x63, 0x8E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xFE, 0x0E, 0x5E, 0x87, 0xC5, 0xAB, 0x0E, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0xF9, 0x5F, 0x80, 0x24, 0x4C, 0x2A, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0xDE, 0x15, 0x21, 0x54, 0x92, 0x84, 0x8D, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0xA8, 0x8A, 0x47, 0x74, 0xDC, 0x42, 0xB1, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0xF7, 0x30, 0xFD, 0xC1, 0x9B, 0x0C, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x6C, 0xCC, 0xDF, 0xC5, 0xE3, 0xA9, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x67, 0x59, 0x10, 0x5C, 0x51, 0x54, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x37, 0xFB, 0x6E, 0xB0, 0x78, 0x63, 0x8E), }; static const mbedtls_mpi_uint brainpoolP512r1_T_4_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0xEF, 0xC4, 0x39, 0x20, 0xF1, 0x46, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0x62, 0xAE, 0xFF, 0x10, 0xE4, 0xE2, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x5C, 0xF5, 0x2E, 0x22, 0x89, 0xE5, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0x0C, 0x29, 0xA8, 0x62, 0xAE, 0xDB, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0x9E, 0x0F, 0xCA, 0x87, 0x2A, 0x6F, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCE, 0xDC, 0x9B, 0x9F, 0x65, 0xD4, 0xAD, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0xC3, 0x08, 0x0F, 0xCF, 0x67, 0xE9, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x5C, 0xD7, 0xFF, 0x41, 0x9C, 0xCB, 0x26 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0xEF, 0xC4, 0x39, 0x20, 0xF1, 0x46, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0x62, 0xAE, 0xFF, 0x10, 0xE4, 0xE2, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x5C, 0xF5, 0x2E, 0x22, 0x89, 0xE5, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0x0C, 0x29, 0xA8, 0x62, 0xAE, 0xDB, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x9E, 0x0F, 0xCA, 0x87, 0x2A, 0x6F, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xCE, 0xDC, 0x9B, 0x9F, 0x65, 0xD4, 0xAD, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0xC3, 0x08, 0x0F, 0xCF, 0x67, 0xE9, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x5C, 0xD7, 0xFF, 0x41, 0x9C, 0xCB, 0x26), }; static const mbedtls_mpi_uint brainpoolP512r1_T_5_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x25, 0x05, 0x12, 0xAD, 0x73, 0x63, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0x99, 0x07, 0x86, 0x57, 0xE7, 0x94, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x00, 0x4B, 0xA5, 0xBF, 0x18, 0xA9, 0xEF, 0x6A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0x4C, 0xC4, 0x09, 0xF2, 0x2F, 0x0C, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0x3A, 0x04, 0xEA, 0x89, 0x6C, 0x91, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x6C, 0x3A, 0xE7, 0xA3, 0xEC, 0x24, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xA1, 0x26, 0x21, 0x04, 0xE3, 0xB9, 0x40 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0x71, 0x4B, 0x7B, 0xC2, 0x89, 0xCD, 0xA2 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x25, 0x05, 0x12, 0xAD, 0x73, 0x63, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x99, 0x07, 0x86, 0x57, 0xE7, 0x94, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x4B, 0xA5, 0xBF, 0x18, 0xA9, 0xEF, 0x6A), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0x4C, 0xC4, 0x09, 0xF2, 0x2F, 0x0C, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x3A, 0x04, 0xEA, 0x89, 0x6C, 0x91, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x6C, 0x3A, 0xE7, 0xA3, 0xEC, 0x24, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xA1, 0x26, 0x21, 0x04, 0xE3, 0xB9, 0x40), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0x71, 0x4B, 0x7B, 0xC2, 0x89, 0xCD, 0xA2), }; static const mbedtls_mpi_uint brainpoolP512r1_T_5_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB7, 0xB9, 0xA8, 0x9D, 0xFD, 0x00, 0x3A, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x41, 0x6C, 0xBB, 0x5A, 0xCA, 0x1F, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0xD7, 0xE2, 0x6C, 0x6B, 0xA7, 0x48, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x19, 0xAD, 0xA7, 0xC1, 0x7E, 0x4F, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0xF7, 0x19, 0x3C, 0x06, 0x74, 0x2C, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x23, 0x4F, 0x0C, 0x09, 0xB0, 0x80, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4E, 0x74, 0x34, 0x08, 0x44, 0x7E, 0xA3, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xCC, 0x8D, 0x12, 0x6E, 0xE1, 0x3D, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB7, 0xB9, 0xA8, 0x9D, 0xFD, 0x00, 0x3A, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x41, 0x6C, 0xBB, 0x5A, 0xCA, 0x1F, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0xD7, 0xE2, 0x6C, 0x6B, 0xA7, 0x48, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x19, 0xAD, 0xA7, 0xC1, 0x7E, 0x4F, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0xF7, 0x19, 0x3C, 0x06, 0x74, 0x2C, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x23, 0x4F, 0x0C, 0x09, 0xB0, 0x80, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x4E, 0x74, 0x34, 0x08, 0x44, 0x7E, 0xA3, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xCC, 0x8D, 0x12, 0x6E, 0xE1, 0x3D, 0x0B), }; static const mbedtls_mpi_uint brainpoolP512r1_T_6_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x18, 0xB1, 0x71, 0x02, 0x93, 0xC2, 0xA4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x89, 0x40, 0xE2, 0x1F, 0xE7, 0x5E, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x8E, 0xAE, 0x89, 0x01, 0xD4, 0x0C, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAE, 0xDA, 0x58, 0x70, 0x24, 0xF2, 0xE4, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0xC7, 0x1D, 0xD6, 0x4A, 0x6F, 0x66, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x1D, 0x7E, 0x4A, 0x2C, 0xCA, 0xEC, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA1, 0x06, 0x7F, 0xA8, 0x99, 0xE4, 0xD3, 0x4E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x1D, 0x5A, 0xDF, 0x5E, 0x58, 0x36, 0x49 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x18, 0xB1, 0x71, 0x02, 0x93, 0xC2, 0xA4), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x89, 0x40, 0xE2, 0x1F, 0xE7, 0x5E, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x8E, 0xAE, 0x89, 0x01, 0xD4, 0x0C, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0xAE, 0xDA, 0x58, 0x70, 0x24, 0xF2, 0xE4, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0xC7, 0x1D, 0xD6, 0x4A, 0x6F, 0x66, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x1D, 0x7E, 0x4A, 0x2C, 0xCA, 0xEC, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0xA1, 0x06, 0x7F, 0xA8, 0x99, 0xE4, 0xD3, 0x4E), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x1D, 0x5A, 0xDF, 0x5E, 0x58, 0x36, 0x49), }; static const mbedtls_mpi_uint brainpoolP512r1_T_6_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0xB9, 0x32, 0x69, 0x1F, 0x72, 0x2A, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0x73, 0xE2, 0x03, 0x39, 0x35, 0xAA, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x5E, 0x5D, 0x48, 0xEF, 0xAE, 0x30, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x7F, 0x60, 0x19, 0xAF, 0xEC, 0x9D, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCA, 0xD9, 0x19, 0xE4, 0x1B, 0x56, 0x15, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xD7, 0x33, 0x59, 0x1F, 0x43, 0x59, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0xCE, 0xEE, 0xCA, 0xA4, 0x7F, 0x63, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBD, 0x40, 0xC0, 0xF6, 0x19, 0x89, 0x43, 0x20 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0xB9, 0x32, 0x69, 0x1F, 0x72, 0x2A, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0x73, 0xE2, 0x03, 0x39, 0x35, 0xAA, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x5E, 0x5D, 0x48, 0xEF, 0xAE, 0x30, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x7F, 0x60, 0x19, 0xAF, 0xEC, 0x9D, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0xCA, 0xD9, 0x19, 0xE4, 0x1B, 0x56, 0x15, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xD7, 0x33, 0x59, 0x1F, 0x43, 0x59, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xCE, 0xEE, 0xCA, 0xA4, 0x7F, 0x63, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0xBD, 0x40, 0xC0, 0xF6, 0x19, 0x89, 0x43, 0x20), }; static const mbedtls_mpi_uint brainpoolP512r1_T_7_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x92, 0xEA, 0x07, 0x65, 0x79, 0x86, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0xB7, 0x13, 0x75, 0xD3, 0xC5, 0x0A, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x9E, 0xFA, 0xE1, 0x1F, 0x0C, 0xF9, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x8C, 0xED, 0x5C, 0x21, 0xE9, 0x09, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0x4D, 0xD8, 0x18, 0xC4, 0xF6, 0x36, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0xC9, 0xAC, 0x5C, 0xFA, 0x69, 0xA4, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0x8C, 0x94, 0x1C, 0x7B, 0x71, 0x36, 0x58 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0xBD, 0x46, 0xCE, 0xB7, 0x1D, 0x9C, 0x5E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x92, 0xEA, 0x07, 0x65, 0x79, 0x86, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0xB7, 0x13, 0x75, 0xD3, 0xC5, 0x0A, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x9E, 0xFA, 0xE1, 0x1F, 0x0C, 0xF9, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x8C, 0xED, 0x5C, 0x21, 0xE9, 0x09, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0x4D, 0xD8, 0x18, 0xC4, 0xF6, 0x36, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xC9, 0xAC, 0x5C, 0xFA, 0x69, 0xA4, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0x8C, 0x94, 0x1C, 0x7B, 0x71, 0x36, 0x58), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xBD, 0x46, 0xCE, 0xB7, 0x1D, 0x9C, 0x5E), }; static const mbedtls_mpi_uint brainpoolP512r1_T_7_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xD6, 0x96, 0x4B, 0xA6, 0x47, 0xEB, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0xF1, 0x5F, 0x15, 0xDE, 0x99, 0x6F, 0x66 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xBD, 0xE5, 0x04, 0xB8, 0xE6, 0xC0, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x49, 0xD3, 0xF0, 0x04, 0x00, 0xE4, 0x05, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xF3, 0x06, 0xA3, 0x1A, 0xFF, 0xEA, 0x73 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x32, 0xAA, 0x99, 0x33, 0x09, 0xB6, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0xEF, 0xFC, 0x61, 0x10, 0x42, 0x31, 0x94 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0xF1, 0xF4, 0x33, 0xCF, 0x28, 0x90, 0x9C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xD6, 0x96, 0x4B, 0xA6, 0x47, 0xEB, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xF1, 0x5F, 0x15, 0xDE, 0x99, 0x6F, 0x66), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xBD, 0xE5, 0x04, 0xB8, 0xE6, 0xC0, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0x49, 0xD3, 0xF0, 0x04, 0x00, 0xE4, 0x05, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xF3, 0x06, 0xA3, 0x1A, 0xFF, 0xEA, 0x73), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x32, 0xAA, 0x99, 0x33, 0x09, 0xB6, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xEF, 0xFC, 0x61, 0x10, 0x42, 0x31, 0x94), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0xF1, 0xF4, 0x33, 0xCF, 0x28, 0x90, 0x9C), }; static const mbedtls_mpi_uint brainpoolP512r1_T_8_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xDE, 0xF9, 0x88, 0x87, 0x7B, 0xEB, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0xB8, 0xDA, 0xFA, 0xDA, 0x3D, 0xA6, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0xF0, 0x62, 0x82, 0x53, 0x32, 0x55, 0x03 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xA5, 0x32, 0x4A, 0x19, 0x11, 0x9C, 0x10 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xB3, 0x27, 0xE9, 0x75, 0x90, 0x05, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x1C, 0x90, 0x48, 0x77, 0x01, 0x85, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0xD6, 0x9B, 0x84, 0xA8, 0xD7, 0xC5, 0x28 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x7A, 0xCB, 0xB3, 0x11, 0x46, 0xD7, 0x99 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xDE, 0xF9, 0x88, 0x87, 0x7B, 0xEB, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0xB8, 0xDA, 0xFA, 0xDA, 0x3D, 0xA6, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF0, 0x62, 0x82, 0x53, 0x32, 0x55, 0x03), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xA5, 0x32, 0x4A, 0x19, 0x11, 0x9C, 0x10), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xB3, 0x27, 0xE9, 0x75, 0x90, 0x05, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x1C, 0x90, 0x48, 0x77, 0x01, 0x85, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD6, 0x9B, 0x84, 0xA8, 0xD7, 0xC5, 0x28), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x7A, 0xCB, 0xB3, 0x11, 0x46, 0xD7, 0x99), }; static const mbedtls_mpi_uint brainpoolP512r1_T_8_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0x23, 0xBF, 0x75, 0x75, 0xA1, 0x95, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4B, 0x66, 0x5D, 0x34, 0x13, 0xA9, 0x03, 0xBE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x80, 0x9D, 0x5F, 0xD2, 0x44, 0xE1, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x5D, 0xBD, 0xA8, 0xBF, 0xB4, 0x25, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x99, 0x1F, 0x53, 0xF1, 0x57, 0xDB, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x7C, 0xE5, 0xC5, 0x51, 0x0B, 0x4C, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6B, 0xB0, 0x1A, 0x9C, 0x16, 0xB0, 0x32, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0xE3, 0xCF, 0xDD, 0x48, 0xB4, 0x7B, 0x33 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0x23, 0xBF, 0x75, 0x75, 0xA1, 0x95, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0x4B, 0x66, 0x5D, 0x34, 0x13, 0xA9, 0x03, 0xBE), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x80, 0x9D, 0x5F, 0xD2, 0x44, 0xE1, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x5D, 0xBD, 0xA8, 0xBF, 0xB4, 0x25, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x99, 0x1F, 0x53, 0xF1, 0x57, 0xDB, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x7C, 0xE5, 0xC5, 0x51, 0x0B, 0x4C, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x6B, 0xB0, 0x1A, 0x9C, 0x16, 0xB0, 0x32, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xE3, 0xCF, 0xDD, 0x48, 0xB4, 0x7B, 0x33), }; static const mbedtls_mpi_uint brainpoolP512r1_T_9_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0xDD, 0x9E, 0x3C, 0x98, 0x0E, 0x77, 0x65 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0xAB, 0x01, 0xD3, 0x87, 0x74, 0x25, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0xA3, 0xE3, 0x76, 0x43, 0x87, 0x12, 0xBD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x54, 0xB1, 0x3B, 0x60, 0x66, 0xEB, 0x98, 0x54 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x78, 0xC8, 0xD7, 0x4E, 0x75, 0xCA, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xDF, 0x71, 0x19, 0xE7, 0x07, 0x36, 0xB5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0xC9, 0xA8, 0x5F, 0x91, 0xBF, 0x47, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x96, 0x58, 0x96, 0x18, 0xB6, 0xFA, 0x01 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0xDD, 0x9E, 0x3C, 0x98, 0x0E, 0x77, 0x65), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0xAB, 0x01, 0xD3, 0x87, 0x74, 0x25, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xA3, 0xE3, 0x76, 0x43, 0x87, 0x12, 0xBD), + MBEDTLS_BYTES_TO_T_UINT_8(0x54, 0xB1, 0x3B, 0x60, 0x66, 0xEB, 0x98, 0x54), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x78, 0xC8, 0xD7, 0x4E, 0x75, 0xCA, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xDF, 0x71, 0x19, 0xE7, 0x07, 0x36, 0xB5), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0xC9, 0xA8, 0x5F, 0x91, 0xBF, 0x47, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x96, 0x58, 0x96, 0x18, 0xB6, 0xFA, 0x01), }; static const mbedtls_mpi_uint brainpoolP512r1_T_9_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x2D, 0xA9, 0x9B, 0x86, 0xDB, 0x0C, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x0B, 0x2D, 0x56, 0x4A, 0xD3, 0x93, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x15, 0xE2, 0x65, 0x12, 0x86, 0x0E, 0xB2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x41, 0x4D, 0xC1, 0xCB, 0xE4, 0xC3, 0xD7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x53, 0x10, 0xCA, 0xA3, 0xAC, 0x83, 0x26 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x01, 0x22, 0x96, 0x10, 0xAD, 0x69, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x42, 0x46, 0x4E, 0xD8, 0xEA, 0xD6, 0x9D, 0xF3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x2F, 0x7F, 0x62, 0x62, 0x80, 0xD0, 0x14 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x2D, 0xA9, 0x9B, 0x86, 0xDB, 0x0C, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x0B, 0x2D, 0x56, 0x4A, 0xD3, 0x93, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x15, 0xE2, 0x65, 0x12, 0x86, 0x0E, 0xB2), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x41, 0x4D, 0xC1, 0xCB, 0xE4, 0xC3, 0xD7), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x53, 0x10, 0xCA, 0xA3, 0xAC, 0x83, 0x26), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x01, 0x22, 0x96, 0x10, 0xAD, 0x69, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x42, 0x46, 0x4E, 0xD8, 0xEA, 0xD6, 0x9D, 0xF3), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x2F, 0x7F, 0x62, 0x62, 0x80, 0xD0, 0x14), }; static const mbedtls_mpi_uint brainpoolP512r1_T_10_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0xDA, 0x00, 0x63, 0x09, 0xBD, 0x6A, 0x83 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0F, 0xD4, 0x6E, 0x48, 0x05, 0xB7, 0xF7, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0x4D, 0xD7, 0x00, 0x4A, 0x15, 0x27, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x15, 0xAA, 0x37, 0x27, 0x34, 0x18, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x20, 0x2C, 0x84, 0x1B, 0x88, 0xBA, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x09, 0xD6, 0x04, 0xA2, 0x60, 0x84, 0x72 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0x04, 0x94, 0x08, 0xD4, 0xED, 0x47, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0xF3, 0xE4, 0x3E, 0xB9, 0x5B, 0x35, 0x42 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xDA, 0x00, 0x63, 0x09, 0xBD, 0x6A, 0x83), + MBEDTLS_BYTES_TO_T_UINT_8(0x0F, 0xD4, 0x6E, 0x48, 0x05, 0xB7, 0xF7, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0x4D, 0xD7, 0x00, 0x4A, 0x15, 0x27, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x15, 0xAA, 0x37, 0x27, 0x34, 0x18, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x20, 0x2C, 0x84, 0x1B, 0x88, 0xBA, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x09, 0xD6, 0x04, 0xA2, 0x60, 0x84, 0x72), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0x04, 0x94, 0x08, 0xD4, 0xED, 0x47, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xF3, 0xE4, 0x3E, 0xB9, 0x5B, 0x35, 0x42), }; static const mbedtls_mpi_uint brainpoolP512r1_T_10_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5F, 0xD8, 0xB6, 0x80, 0xD6, 0xF1, 0x30, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x14, 0xA6, 0x85, 0xEE, 0xA7, 0xD8, 0x61 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x49, 0x2A, 0x1E, 0x7C, 0xE9, 0x2D, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3A, 0x87, 0x56, 0x91, 0x03, 0x77, 0x4D, 0x55 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0x52, 0xD4, 0xAA, 0xF7, 0xFA, 0xB0, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x5D, 0x11, 0x39, 0xB1, 0xE7, 0x76, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x13, 0xBC, 0x37, 0x5D, 0x74, 0xCD, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x48, 0x14, 0x23, 0x30, 0xF8, 0x46, 0x37 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5F, 0xD8, 0xB6, 0x80, 0xD6, 0xF1, 0x30, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x14, 0xA6, 0x85, 0xEE, 0xA7, 0xD8, 0x61), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x49, 0x2A, 0x1E, 0x7C, 0xE9, 0x2D, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x3A, 0x87, 0x56, 0x91, 0x03, 0x77, 0x4D, 0x55), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0x52, 0xD4, 0xAA, 0xF7, 0xFA, 0xB0, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x5D, 0x11, 0x39, 0xB1, 0xE7, 0x76, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x13, 0xBC, 0x37, 0x5D, 0x74, 0xCD, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x48, 0x14, 0x23, 0x30, 0xF8, 0x46, 0x37), }; static const mbedtls_mpi_uint brainpoolP512r1_T_11_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x27, 0xB0, 0xD9, 0xB2, 0x74, 0xB4, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEA, 0xA6, 0xB9, 0x6F, 0x9F, 0x64, 0x36, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2E, 0x2B, 0x78, 0x40, 0x05, 0x2B, 0x7B, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x68, 0x3A, 0xB6, 0x4A, 0xE2, 0xDB, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1E, 0x33, 0xD7, 0x34, 0x8B, 0x25, 0x45, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0xCE, 0xA8, 0xC9, 0x01, 0xFB, 0x0E, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0xF9, 0x51, 0x4C, 0x12, 0x9F, 0x60, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0x85, 0xBD, 0x30, 0x37, 0x84, 0x39, 0x44 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x27, 0xB0, 0xD9, 0xB2, 0x74, 0xB4, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xEA, 0xA6, 0xB9, 0x6F, 0x9F, 0x64, 0x36, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x2E, 0x2B, 0x78, 0x40, 0x05, 0x2B, 0x7B, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x68, 0x3A, 0xB6, 0x4A, 0xE2, 0xDB, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x1E, 0x33, 0xD7, 0x34, 0x8B, 0x25, 0x45, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xCE, 0xA8, 0xC9, 0x01, 0xFB, 0x0E, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF9, 0x51, 0x4C, 0x12, 0x9F, 0x60, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0x85, 0xBD, 0x30, 0x37, 0x84, 0x39, 0x44), }; static const mbedtls_mpi_uint brainpoolP512r1_T_11_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x26, 0x33, 0xAF, 0x2E, 0xB8, 0x2E, 0xCC, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0xB1, 0x73, 0x59, 0x4E, 0x0C, 0x09, 0x4A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0x24, 0x89, 0x81, 0x12, 0xFF, 0xBB, 0x6E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x71, 0x37, 0x1A, 0x66, 0xEE, 0xED, 0xB6, 0x9B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0xBD, 0x04, 0x20, 0x5D, 0xFB, 0xBF, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0xF8, 0x34, 0xA3, 0xFF, 0x45, 0xDE, 0x92 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x18, 0x73, 0xF1, 0x32, 0x25, 0x58, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0xC1, 0x14, 0xE3, 0x9E, 0x40, 0x0F, 0x12 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x26, 0x33, 0xAF, 0x2E, 0xB8, 0x2E, 0xCC, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0xB1, 0x73, 0x59, 0x4E, 0x0C, 0x09, 0x4A), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0x24, 0x89, 0x81, 0x12, 0xFF, 0xBB, 0x6E), + MBEDTLS_BYTES_TO_T_UINT_8(0x71, 0x37, 0x1A, 0x66, 0xEE, 0xED, 0xB6, 0x9B), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0xBD, 0x04, 0x20, 0x5D, 0xFB, 0xBF, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0xF8, 0x34, 0xA3, 0xFF, 0x45, 0xDE, 0x92), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x18, 0x73, 0xF1, 0x32, 0x25, 0x58, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0xC1, 0x14, 0xE3, 0x9E, 0x40, 0x0F, 0x12), }; static const mbedtls_mpi_uint brainpoolP512r1_T_12_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x07, 0x9D, 0x9C, 0x00, 0xF7, 0x56, 0x19 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0xBA, 0x87, 0xF9, 0x15, 0x0C, 0x66, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0x1F, 0xC1, 0x28, 0xB0, 0x47, 0x0D, 0xF5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0xCA, 0x27, 0xEE, 0x4B, 0x23, 0x2B, 0x89 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7E, 0xB5, 0x68, 0xC8, 0x17, 0x5D, 0xC3, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0x02, 0x08, 0xEE, 0x20, 0x9D, 0xEA, 0x64 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x14, 0x50, 0xD4, 0x7D, 0x5F, 0xCF, 0xA0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0xFA, 0xF8, 0xA7, 0xC6, 0xDC, 0x14, 0x8C ), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x07, 0x9D, 0x9C, 0x00, 0xF7, 0x56, 0x19), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0xBA, 0x87, 0xF9, 0x15, 0x0C, 0x66, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0x1F, 0xC1, 0x28, 0xB0, 0x47, 0x0D, 0xF5), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0xCA, 0x27, 0xEE, 0x4B, 0x23, 0x2B, 0x89), + MBEDTLS_BYTES_TO_T_UINT_8(0x7E, 0xB5, 0x68, 0xC8, 0x17, 0x5D, 0xC3, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0x02, 0x08, 0xEE, 0x20, 0x9D, 0xEA, 0x64), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x14, 0x50, 0xD4, 0x7D, 0x5F, 0xCF, 0xA0), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0xFA, 0xF8, 0xA7, 0xC6, 0xDC, 0x14, 0x8C), }; static const mbedtls_mpi_uint brainpoolP512r1_T_12_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x76, 0xBD, 0x0A, 0x1A, 0x18, 0x98, 0xDC, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x63, 0x63, 0x02, 0xB7, 0xD5, 0x5B, 0x5A, 0xC6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0xB1, 0xD7, 0x4B, 0x15, 0x39, 0x61, 0x5D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0x32, 0xE1, 0x9E, 0x70, 0x1B, 0xCE, 0x51 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x64, 0xD8, 0x18, 0x83, 0x52, 0x9B, 0x6D, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x55, 0x56, 0x19, 0x34, 0xA4, 0xEA, 0xFC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0xA9, 0x55, 0x80, 0xE3, 0x15, 0x36, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0x06, 0xC8, 0x1D, 0x17, 0x0D, 0xAD, 0x16 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x76, 0xBD, 0x0A, 0x1A, 0x18, 0x98, 0xDC, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0x63, 0x63, 0x02, 0xB7, 0xD5, 0x5B, 0x5A, 0xC6), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0xB1, 0xD7, 0x4B, 0x15, 0x39, 0x61, 0x5D), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0x32, 0xE1, 0x9E, 0x70, 0x1B, 0xCE, 0x51), + MBEDTLS_BYTES_TO_T_UINT_8(0x64, 0xD8, 0x18, 0x83, 0x52, 0x9B, 0x6D, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x55, 0x56, 0x19, 0x34, 0xA4, 0xEA, 0xFC), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0xA9, 0x55, 0x80, 0xE3, 0x15, 0x36, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0x06, 0xC8, 0x1D, 0x17, 0x0D, 0xAD, 0x16), }; static const mbedtls_mpi_uint brainpoolP512r1_T_13_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0xD6, 0xF0, 0xCC, 0xF3, 0x63, 0x53, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x5A, 0xDC, 0x46, 0xBD, 0x0D, 0xAD, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0x2F, 0x11, 0x60, 0x15, 0x51, 0x4A, 0xEA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0xE3, 0x93, 0x38, 0xD5, 0x83, 0xAA, 0x0D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x90, 0xA6, 0xCC, 0xB1, 0xFD, 0xBB, 0x1A, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3B, 0x54, 0xC8, 0x54, 0x6F, 0x79, 0x1A, 0x59 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x4A, 0xDA, 0x28, 0x92, 0x97, 0x9D, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD6, 0x4B, 0xDB, 0xC7, 0x52, 0xC5, 0x66, 0x34 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xD6, 0xF0, 0xCC, 0xF3, 0x63, 0x53, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x5A, 0xDC, 0x46, 0xBD, 0x0D, 0xAD, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0x2F, 0x11, 0x60, 0x15, 0x51, 0x4A, 0xEA), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xE3, 0x93, 0x38, 0xD5, 0x83, 0xAA, 0x0D), + MBEDTLS_BYTES_TO_T_UINT_8(0x90, 0xA6, 0xCC, 0xB1, 0xFD, 0xBB, 0x1A, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x3B, 0x54, 0xC8, 0x54, 0x6F, 0x79, 0x1A, 0x59), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4A, 0xDA, 0x28, 0x92, 0x97, 0x9D, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0xD6, 0x4B, 0xDB, 0xC7, 0x52, 0xC5, 0x66, 0x34), }; static const mbedtls_mpi_uint brainpoolP512r1_T_13_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x7E, 0x92, 0x53, 0x30, 0x93, 0xFD, 0xFF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x16, 0x6A, 0xB1, 0x91, 0x0A, 0xB4, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6D, 0x9D, 0x40, 0x3F, 0xE3, 0xF1, 0x01, 0x46 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x0E, 0xD8, 0xED, 0x11, 0x8E, 0x4C, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x86, 0x4A, 0x1B, 0x88, 0xDF, 0x8D, 0x29, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x23, 0x21, 0x11, 0xAB, 0x77, 0x81, 0x62 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0B, 0xAF, 0x11, 0xFA, 0xBA, 0x40, 0x63, 0xE7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0x6F, 0x8D, 0x80, 0xDF, 0x67, 0xF5, 0x44 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7E, 0x92, 0x53, 0x30, 0x93, 0xFD, 0xFF), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0x6A, 0xB1, 0x91, 0x0A, 0xB4, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x6D, 0x9D, 0x40, 0x3F, 0xE3, 0xF1, 0x01, 0x46), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x0E, 0xD8, 0xED, 0x11, 0x8E, 0x4C, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0x86, 0x4A, 0x1B, 0x88, 0xDF, 0x8D, 0x29, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x23, 0x21, 0x11, 0xAB, 0x77, 0x81, 0x62), + MBEDTLS_BYTES_TO_T_UINT_8(0x0B, 0xAF, 0x11, 0xFA, 0xBA, 0x40, 0x63, 0xE7), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x6F, 0x8D, 0x80, 0xDF, 0x67, 0xF5, 0x44), }; static const mbedtls_mpi_uint brainpoolP512r1_T_14_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0x8B, 0xB7, 0x08, 0xF4, 0xD7, 0x2D, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0x2B, 0x30, 0x02, 0x45, 0x71, 0x08, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x97, 0x3A, 0xCA, 0x50, 0xF6, 0xC2, 0x19, 0x8C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xB9, 0x9B, 0x3E, 0x73, 0x95, 0x1D, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x60, 0x59, 0x48, 0xCB, 0xD8, 0xD6, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0xB9, 0x6C, 0x89, 0xAB, 0x99, 0xA8, 0xF8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0xA1, 0x8B, 0x4E, 0x06, 0x19, 0xEC, 0x99 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x95, 0x04, 0xCF, 0xD5, 0x94, 0xB3, 0x02 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0x8B, 0xB7, 0x08, 0xF4, 0xD7, 0x2D, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x2B, 0x30, 0x02, 0x45, 0x71, 0x08, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0x97, 0x3A, 0xCA, 0x50, 0xF6, 0xC2, 0x19, 0x8C), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xB9, 0x9B, 0x3E, 0x73, 0x95, 0x1D, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x60, 0x59, 0x48, 0xCB, 0xD8, 0xD6, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0xB9, 0x6C, 0x89, 0xAB, 0x99, 0xA8, 0xF8), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0xA1, 0x8B, 0x4E, 0x06, 0x19, 0xEC, 0x99), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x95, 0x04, 0xCF, 0xD5, 0x94, 0xB3, 0x02), }; static const mbedtls_mpi_uint brainpoolP512r1_T_14_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x29, 0x35, 0x93, 0x7C, 0xB3, 0xB8, 0x9E, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC4, 0x45, 0x5C, 0x7E, 0xBF, 0x75, 0x81, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0xE8, 0x24, 0xDF, 0xEC, 0x2F, 0x7D, 0xB9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF2, 0x8B, 0xD5, 0x6A, 0x9B, 0xA0, 0xE0, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0xE3, 0x27, 0x82, 0xDE, 0xDD, 0xCA, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x57, 0x56, 0x46, 0x05, 0x06, 0x01, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x74, 0x35, 0xA7, 0x47, 0xE2, 0x6B, 0x2C, 0x4F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x9D, 0x4C, 0xEC, 0x1F, 0x11, 0x75, 0x2B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x29, 0x35, 0x93, 0x7C, 0xB3, 0xB8, 0x9E, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0xC4, 0x45, 0x5C, 0x7E, 0xBF, 0x75, 0x81, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xE8, 0x24, 0xDF, 0xEC, 0x2F, 0x7D, 0xB9), + MBEDTLS_BYTES_TO_T_UINT_8(0xF2, 0x8B, 0xD5, 0x6A, 0x9B, 0xA0, 0xE0, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0xE3, 0x27, 0x82, 0xDE, 0xDD, 0xCA, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x57, 0x56, 0x46, 0x05, 0x06, 0x01, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0x74, 0x35, 0xA7, 0x47, 0xE2, 0x6B, 0x2C, 0x4F), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x9D, 0x4C, 0xEC, 0x1F, 0x11, 0x75, 0x2B), }; static const mbedtls_mpi_uint brainpoolP512r1_T_15_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0xAA, 0x41, 0xC1, 0xE9, 0x0E, 0xE9, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0xCF, 0x9C, 0x4B, 0xE8, 0xED, 0x0A, 0x49 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0x73, 0xCA, 0x0C, 0x46, 0x0A, 0x9C, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xE1, 0x9E, 0xBC, 0xFE, 0x44, 0x63, 0x6D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x31, 0x43, 0x71, 0xEE, 0xF8, 0xC1, 0x8C, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6A, 0x4B, 0xF0, 0x69, 0x25, 0xBD, 0x71, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFD, 0x9A, 0xFE, 0x82, 0xE7, 0xC1, 0xC1, 0xEE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFC, 0x5A, 0x6E, 0x5E, 0x97, 0x6A, 0x35, 0x8D ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0xAA, 0x41, 0xC1, 0xE9, 0x0E, 0xE9, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xCF, 0x9C, 0x4B, 0xE8, 0xED, 0x0A, 0x49), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0x73, 0xCA, 0x0C, 0x46, 0x0A, 0x9C, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE1, 0x9E, 0xBC, 0xFE, 0x44, 0x63, 0x6D), + MBEDTLS_BYTES_TO_T_UINT_8(0x31, 0x43, 0x71, 0xEE, 0xF8, 0xC1, 0x8C, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x6A, 0x4B, 0xF0, 0x69, 0x25, 0xBD, 0x71, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0xFD, 0x9A, 0xFE, 0x82, 0xE7, 0xC1, 0xC1, 0xEE), + MBEDTLS_BYTES_TO_T_UINT_8(0xFC, 0x5A, 0x6E, 0x5E, 0x97, 0x6A, 0x35, 0x8D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_15_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA2, 0x18, 0x6C, 0x7E, 0xB8, 0x9E, 0x57, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x35, 0xB9, 0xC1, 0xD0, 0xFE, 0x78, 0xFB, 0x32 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x08, 0xAE, 0x46, 0x34, 0xEA, 0x7A, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x1C, 0x56, 0xA9, 0x18, 0x37, 0xD4, 0x9E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x28, 0x63, 0xE9, 0x0A, 0xB6, 0x38, 0x3C, 0xC1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3E, 0x4F, 0xA4, 0x6E, 0x85, 0x31, 0x23, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0D, 0xAD, 0xC4, 0xC3, 0xB1, 0x4B, 0x1C, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x56, 0x4A, 0x38, 0xB3, 0x6B, 0x6F, 0x2C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA2, 0x18, 0x6C, 0x7E, 0xB8, 0x9E, 0x57, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x35, 0xB9, 0xC1, 0xD0, 0xFE, 0x78, 0xFB, 0x32), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x08, 0xAE, 0x46, 0x34, 0xEA, 0x7A, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x1C, 0x56, 0xA9, 0x18, 0x37, 0xD4, 0x9E), + MBEDTLS_BYTES_TO_T_UINT_8(0x28, 0x63, 0xE9, 0x0A, 0xB6, 0x38, 0x3C, 0xC1), + MBEDTLS_BYTES_TO_T_UINT_8(0x3E, 0x4F, 0xA4, 0x6E, 0x85, 0x31, 0x23, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x0D, 0xAD, 0xC4, 0xC3, 0xB1, 0x4B, 0x1C, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x56, 0x4A, 0x38, 0xB3, 0x6B, 0x6F, 0x2C), }; static const mbedtls_mpi_uint brainpoolP512r1_T_16_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x67, 0xC7, 0x19, 0xDE, 0x21, 0xED, 0x89, 0xD0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2F, 0xBE, 0xA6, 0xAE, 0xEB, 0x9D, 0xA7, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x0E, 0x13, 0x1E, 0x86, 0x57, 0xC3, 0x3B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x4B, 0x30, 0x46, 0x52, 0xC1, 0xEC, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6E, 0xD5, 0x44, 0x31, 0x96, 0x3B, 0x26, 0x27 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x68, 0xA8, 0x67, 0x78, 0x39, 0xE8, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0x78, 0xB7, 0xDD, 0xF2, 0x58, 0xB6, 0x3D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x81, 0x3C, 0xB3, 0x26, 0xC4, 0x2C, 0x8C, 0xA5 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x67, 0xC7, 0x19, 0xDE, 0x21, 0xED, 0x89, 0xD0), + MBEDTLS_BYTES_TO_T_UINT_8(0x2F, 0xBE, 0xA6, 0xAE, 0xEB, 0x9D, 0xA7, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x0E, 0x13, 0x1E, 0x86, 0x57, 0xC3, 0x3B), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x4B, 0x30, 0x46, 0x52, 0xC1, 0xEC, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x6E, 0xD5, 0x44, 0x31, 0x96, 0x3B, 0x26, 0x27), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x68, 0xA8, 0x67, 0x78, 0x39, 0xE8, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0x78, 0xB7, 0xDD, 0xF2, 0x58, 0xB6, 0x3D), + MBEDTLS_BYTES_TO_T_UINT_8(0x81, 0x3C, 0xB3, 0x26, 0xC4, 0x2C, 0x8C, 0xA5), }; static const mbedtls_mpi_uint brainpoolP512r1_T_16_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB9, 0x24, 0xE5, 0x73, 0xEE, 0x9A, 0x02, 0xA9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0x6A, 0x65, 0x60, 0xF3, 0x62, 0xE3, 0xE9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFB, 0x07, 0x84, 0xE6, 0x3B, 0x46, 0x65, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0x8F, 0x0C, 0xB0, 0xE1, 0x04, 0x82, 0x9D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEB, 0x13, 0xBF, 0x3D, 0xA0, 0x48, 0xA2, 0x74 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0x26, 0x76, 0x74, 0xAB, 0x0B, 0x29, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x30, 0x6E, 0x5F, 0x03, 0x34, 0x7C, 0x38, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0x72, 0xF9, 0x3B, 0x3C, 0xA4, 0xBC, 0x7C ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB9, 0x24, 0xE5, 0x73, 0xEE, 0x9A, 0x02, 0xA9), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0x6A, 0x65, 0x60, 0xF3, 0x62, 0xE3, 0xE9), + MBEDTLS_BYTES_TO_T_UINT_8(0xFB, 0x07, 0x84, 0xE6, 0x3B, 0x46, 0x65, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0x8F, 0x0C, 0xB0, 0xE1, 0x04, 0x82, 0x9D), + MBEDTLS_BYTES_TO_T_UINT_8(0xEB, 0x13, 0xBF, 0x3D, 0xA0, 0x48, 0xA2, 0x74), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0x26, 0x76, 0x74, 0xAB, 0x0B, 0x29, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0x30, 0x6E, 0x5F, 0x03, 0x34, 0x7C, 0x38, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x72, 0xF9, 0x3B, 0x3C, 0xA4, 0xBC, 0x7C), }; static const mbedtls_mpi_uint brainpoolP512r1_T_17_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x5C, 0xCE, 0x18, 0x80, 0xB8, 0x24, 0x45, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x09, 0x03, 0xB8, 0x06, 0x64, 0xF7, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF1, 0x26, 0xB1, 0x10, 0x6D, 0x71, 0x12, 0x2E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x12, 0xC6, 0x6E, 0x1E, 0x6A, 0xC3, 0x80 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE5, 0xD3, 0x0A, 0xDE, 0xD8, 0x6B, 0x04, 0x5C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x87, 0x5B, 0xAE, 0xDB, 0x3C, 0xC0, 0xC5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8E, 0xF5, 0xF9, 0xC1, 0x9A, 0x89, 0xBB, 0x7E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xED, 0x69, 0x72, 0x8B, 0xAE, 0x32, 0x13, 0x11 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x5C, 0xCE, 0x18, 0x80, 0xB8, 0x24, 0x45, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x09, 0x03, 0xB8, 0x06, 0x64, 0xF7, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0xF1, 0x26, 0xB1, 0x10, 0x6D, 0x71, 0x12, 0x2E), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x12, 0xC6, 0x6E, 0x1E, 0x6A, 0xC3, 0x80), + MBEDTLS_BYTES_TO_T_UINT_8(0xE5, 0xD3, 0x0A, 0xDE, 0xD8, 0x6B, 0x04, 0x5C), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x87, 0x5B, 0xAE, 0xDB, 0x3C, 0xC0, 0xC5), + MBEDTLS_BYTES_TO_T_UINT_8(0x8E, 0xF5, 0xF9, 0xC1, 0x9A, 0x89, 0xBB, 0x7E), + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0x69, 0x72, 0x8B, 0xAE, 0x32, 0x13, 0x11), }; static const mbedtls_mpi_uint brainpoolP512r1_T_17_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x16, 0x07, 0x50, 0xFA, 0x4C, 0xCF, 0xE8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x50, 0x21, 0xE9, 0xDE, 0xEC, 0x7E, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x2F, 0xE8, 0x83, 0x30, 0x0B, 0x65, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x0B, 0x99, 0xAC, 0xC9, 0xBA, 0x6C, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x59, 0x5A, 0x0D, 0x7B, 0x9E, 0x08, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x34, 0x91, 0xB2, 0xDC, 0x90, 0xCE, 0x67, 0xED ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x93, 0x60, 0x0C, 0xD7, 0x1F, 0x2F, 0x17 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x19, 0x7F, 0x9D, 0x40, 0xF8, 0x78, 0x7A, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x16, 0x07, 0x50, 0xFA, 0x4C, 0xCF, 0xE8), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x50, 0x21, 0xE9, 0xDE, 0xEC, 0x7E, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x2F, 0xE8, 0x83, 0x30, 0x0B, 0x65, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x0B, 0x99, 0xAC, 0xC9, 0xBA, 0x6C, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x59, 0x5A, 0x0D, 0x7B, 0x9E, 0x08, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0x34, 0x91, 0xB2, 0xDC, 0x90, 0xCE, 0x67, 0xED), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x93, 0x60, 0x0C, 0xD7, 0x1F, 0x2F, 0x17), + MBEDTLS_BYTES_TO_T_UINT_8(0x19, 0x7F, 0x9D, 0x40, 0xF8, 0x78, 0x7A, 0x54), }; static const mbedtls_mpi_uint brainpoolP512r1_T_18_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x13, 0x22, 0x95, 0xE8, 0xEF, 0x31, 0x57, 0x35 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0x88, 0x53, 0xFE, 0xAF, 0x7C, 0x47, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xCE, 0xCC, 0x79, 0xE8, 0x9F, 0x8C, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDB, 0x16, 0xDD, 0x77, 0x6E, 0x8A, 0x73, 0x97 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x07, 0x97, 0x21, 0x3B, 0xF8, 0x5F, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC6, 0xB5, 0xD2, 0x81, 0x84, 0xF0, 0xE7, 0x9F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCB, 0x8F, 0x75, 0x09, 0x6A, 0x0E, 0x53, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x4F, 0x70, 0x97, 0xC7, 0xAC, 0x7D, 0x3F ), + MBEDTLS_BYTES_TO_T_UINT_8(0x13, 0x22, 0x95, 0xE8, 0xEF, 0x31, 0x57, 0x35), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x88, 0x53, 0xFE, 0xAF, 0x7C, 0x47, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xCE, 0xCC, 0x79, 0xE8, 0x9F, 0x8C, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0xDB, 0x16, 0xDD, 0x77, 0x6E, 0x8A, 0x73, 0x97), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x07, 0x97, 0x21, 0x3B, 0xF8, 0x5F, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0xC6, 0xB5, 0xD2, 0x81, 0x84, 0xF0, 0xE7, 0x9F), + MBEDTLS_BYTES_TO_T_UINT_8(0xCB, 0x8F, 0x75, 0x09, 0x6A, 0x0E, 0x53, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x4F, 0x70, 0x97, 0xC7, 0xAC, 0x7D, 0x3F), }; static const mbedtls_mpi_uint brainpoolP512r1_T_18_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF9, 0x3C, 0x6A, 0xB4, 0x10, 0xA9, 0xC8, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0xC5, 0xD6, 0x69, 0x16, 0xB8, 0xAC, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x44, 0xDC, 0xEB, 0x48, 0x54, 0x5D, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6F, 0x48, 0x9B, 0xD7, 0x72, 0x69, 0xA4, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x0D, 0x36, 0x9A, 0x66, 0x0B, 0xEC, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0xC6, 0xD4, 0xB6, 0x60, 0xE5, 0xC3, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBA, 0x29, 0x42, 0xE0, 0x9D, 0xFD, 0x7C, 0x3E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x10, 0xBA, 0x55, 0xBC, 0x3B, 0x38, 0x5D ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF9, 0x3C, 0x6A, 0xB4, 0x10, 0xA9, 0xC8, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xC5, 0xD6, 0x69, 0x16, 0xB8, 0xAC, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x44, 0xDC, 0xEB, 0x48, 0x54, 0x5D, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0x6F, 0x48, 0x9B, 0xD7, 0x72, 0x69, 0xA4, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x0D, 0x36, 0x9A, 0x66, 0x0B, 0xEC, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0xC6, 0xD4, 0xB6, 0x60, 0xE5, 0xC3, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xBA, 0x29, 0x42, 0xE0, 0x9D, 0xFD, 0x7C, 0x3E), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x10, 0xBA, 0x55, 0xBC, 0x3B, 0x38, 0x5D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_19_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x25, 0x66, 0xFA, 0x05, 0x73, 0x03, 0x1B, 0x69 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x11, 0xA4, 0x66, 0x12, 0x96, 0x7B, 0x02, 0x4C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x44, 0xB5, 0xDE, 0x6D, 0x98, 0xD1, 0xD5, 0xA8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE2, 0xF5, 0x44, 0xB8, 0x8E, 0xF6, 0x8C, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x15, 0x2B, 0x72, 0xBC, 0x49, 0xE5, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x6C, 0x44, 0xD7, 0xDF, 0x8F, 0xEB, 0x8D, 0x80 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x64, 0x88, 0xAA, 0xB7, 0xE4, 0x70, 0x1D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9C, 0x14, 0xBB, 0xE9, 0x9B, 0xB9, 0x65, 0x5D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x25, 0x66, 0xFA, 0x05, 0x73, 0x03, 0x1B, 0x69), + MBEDTLS_BYTES_TO_T_UINT_8(0x11, 0xA4, 0x66, 0x12, 0x96, 0x7B, 0x02, 0x4C), + MBEDTLS_BYTES_TO_T_UINT_8(0x44, 0xB5, 0xDE, 0x6D, 0x98, 0xD1, 0xD5, 0xA8), + MBEDTLS_BYTES_TO_T_UINT_8(0xE2, 0xF5, 0x44, 0xB8, 0x8E, 0xF6, 0x8C, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x15, 0x2B, 0x72, 0xBC, 0x49, 0xE5, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0x6C, 0x44, 0xD7, 0xDF, 0x8F, 0xEB, 0x8D, 0x80), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x64, 0x88, 0xAA, 0xB7, 0xE4, 0x70, 0x1D), + MBEDTLS_BYTES_TO_T_UINT_8(0x9C, 0x14, 0xBB, 0xE9, 0x9B, 0xB9, 0x65, 0x5D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_19_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x66, 0x8E, 0x88, 0xF5, 0xF1, 0xC1, 0x89, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x16, 0x30, 0x53, 0xE6, 0xFB, 0x2D, 0x82, 0xB4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0xE4, 0xFF, 0xBA, 0x31, 0x79, 0xAB, 0xC2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x45, 0x09, 0xF7, 0xB7, 0x09, 0x78, 0x4C, 0x90 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xAE, 0xC2, 0x44, 0xDC, 0x17, 0x78, 0x47 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0xD4, 0x17, 0x43, 0x19, 0x74, 0x9E, 0x23 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x64, 0x3B, 0x73, 0xA2, 0x99, 0x27, 0x76 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x74, 0x36, 0x5F, 0xD3, 0x14, 0xB1, 0x31 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x66, 0x8E, 0x88, 0xF5, 0xF1, 0xC1, 0x89, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0x16, 0x30, 0x53, 0xE6, 0xFB, 0x2D, 0x82, 0xB4), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0xE4, 0xFF, 0xBA, 0x31, 0x79, 0xAB, 0xC2), + MBEDTLS_BYTES_TO_T_UINT_8(0x45, 0x09, 0xF7, 0xB7, 0x09, 0x78, 0x4C, 0x90), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xAE, 0xC2, 0x44, 0xDC, 0x17, 0x78, 0x47), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xD4, 0x17, 0x43, 0x19, 0x74, 0x9E, 0x23), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x64, 0x3B, 0x73, 0xA2, 0x99, 0x27, 0x76), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x74, 0x36, 0x5F, 0xD3, 0x14, 0xB1, 0x31), }; static const mbedtls_mpi_uint brainpoolP512r1_T_20_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAC, 0x07, 0xAB, 0xFD, 0x9B, 0x03, 0xC5, 0xD5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0xBE, 0xB0, 0x1D, 0xF2, 0x0C, 0x73, 0x73 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xE7, 0x7B, 0x87, 0xD3, 0x34, 0xFD, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9A, 0x25, 0x3D, 0xC7, 0x36, 0x83, 0x53, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0x7C, 0xCF, 0x63, 0x55, 0x12, 0x11, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC0, 0x34, 0x4D, 0x27, 0x92, 0xAC, 0x18, 0x16 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x42, 0x61, 0x9D, 0x2E, 0xFF, 0x13, 0x16 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF4, 0xDE, 0x92, 0x65, 0x57, 0x0D, 0xBC, 0x0A ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAC, 0x07, 0xAB, 0xFD, 0x9B, 0x03, 0xC5, 0xD5), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0xBE, 0xB0, 0x1D, 0xF2, 0x0C, 0x73, 0x73), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xE7, 0x7B, 0x87, 0xD3, 0x34, 0xFD, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x9A, 0x25, 0x3D, 0xC7, 0x36, 0x83, 0x53, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x7C, 0xCF, 0x63, 0x55, 0x12, 0x11, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0xC0, 0x34, 0x4D, 0x27, 0x92, 0xAC, 0x18, 0x16), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x42, 0x61, 0x9D, 0x2E, 0xFF, 0x13, 0x16), + MBEDTLS_BYTES_TO_T_UINT_8(0xF4, 0xDE, 0x92, 0x65, 0x57, 0x0D, 0xBC, 0x0A), }; static const mbedtls_mpi_uint brainpoolP512r1_T_20_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xEF, 0x7B, 0x6E, 0xC6, 0x2A, 0x21, 0x74, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0xA7, 0x53, 0x4D, 0x29, 0x36, 0xEF, 0xE5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE1, 0xD6, 0x41, 0xC7, 0x99, 0xAD, 0x50, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x99, 0xAC, 0x41, 0x9F, 0xFB, 0x4C, 0x86, 0xF1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0xBB, 0xE6, 0x25, 0x28, 0xAA, 0xEB, 0x1E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x92, 0x04, 0xA2, 0xC3, 0xAA, 0x08, 0x8A, 0xCC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x2B, 0x5B, 0xE2, 0x8D, 0x76, 0xEA, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB3, 0x33, 0xD2, 0x21, 0x4D, 0x62, 0xE3, 0x8E ), + MBEDTLS_BYTES_TO_T_UINT_8(0xEF, 0x7B, 0x6E, 0xC6, 0x2A, 0x21, 0x74, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0xA7, 0x53, 0x4D, 0x29, 0x36, 0xEF, 0xE5), + MBEDTLS_BYTES_TO_T_UINT_8(0xE1, 0xD6, 0x41, 0xC7, 0x99, 0xAD, 0x50, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0x99, 0xAC, 0x41, 0x9F, 0xFB, 0x4C, 0x86, 0xF1), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xBB, 0xE6, 0x25, 0x28, 0xAA, 0xEB, 0x1E), + MBEDTLS_BYTES_TO_T_UINT_8(0x92, 0x04, 0xA2, 0xC3, 0xAA, 0x08, 0x8A, 0xCC), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x2B, 0x5B, 0xE2, 0x8D, 0x76, 0xEA, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0xB3, 0x33, 0xD2, 0x21, 0x4D, 0x62, 0xE3, 0x8E), }; static const mbedtls_mpi_uint brainpoolP512r1_T_21_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0x06, 0x8B, 0x2B, 0xC2, 0xC4, 0xB1, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFA, 0xF5, 0xA1, 0xC0, 0x03, 0x6A, 0x29, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF5, 0xA9, 0xEF, 0x55, 0xB6, 0x1A, 0x9F, 0x6B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9B, 0x54, 0x32, 0xBE, 0x06, 0x43, 0xB5, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF7, 0xD6, 0xD9, 0x20, 0x89, 0xBE, 0xD4, 0x1B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0x26, 0x95, 0x10, 0xCE, 0xB4, 0x88, 0x79 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0xA6, 0x27, 0xAC, 0x32, 0xBA, 0xBD, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0xA6, 0xAE, 0x9C, 0x7B, 0xBE, 0xA1, 0x63 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0x06, 0x8B, 0x2B, 0xC2, 0xC4, 0xB1, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0xFA, 0xF5, 0xA1, 0xC0, 0x03, 0x6A, 0x29, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0xF5, 0xA9, 0xEF, 0x55, 0xB6, 0x1A, 0x9F, 0x6B), + MBEDTLS_BYTES_TO_T_UINT_8(0x9B, 0x54, 0x32, 0xBE, 0x06, 0x43, 0xB5, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xF7, 0xD6, 0xD9, 0x20, 0x89, 0xBE, 0xD4, 0x1B), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0x26, 0x95, 0x10, 0xCE, 0xB4, 0x88, 0x79), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0xA6, 0x27, 0xAC, 0x32, 0xBA, 0xBD, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0xA6, 0xAE, 0x9C, 0x7B, 0xBE, 0xA1, 0x63), }; static const mbedtls_mpi_uint brainpoolP512r1_T_21_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8B, 0xCD, 0x4D, 0x3D, 0xDF, 0x96, 0xBB, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0xA7, 0x11, 0x06, 0xCC, 0x0E, 0x31, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x20, 0xE4, 0xF4, 0xAD, 0x7B, 0x5F, 0xF1, 0xEF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE4, 0x54, 0xBE, 0xF4, 0x8A, 0x03, 0x47, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0x53, 0x00, 0x7F, 0xB0, 0x8A, 0x68, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x16, 0xB1, 0x73, 0x6F, 0x5B, 0x0E, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x32, 0xE3, 0x43, 0x64, 0x75, 0xFB, 0xFB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x18, 0x55, 0x8A, 0x4E, 0x6E, 0x35, 0x54 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8B, 0xCD, 0x4D, 0x3D, 0xDF, 0x96, 0xBB, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0xA7, 0x11, 0x06, 0xCC, 0x0E, 0x31, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0x20, 0xE4, 0xF4, 0xAD, 0x7B, 0x5F, 0xF1, 0xEF), + MBEDTLS_BYTES_TO_T_UINT_8(0xE4, 0x54, 0xBE, 0xF4, 0x8A, 0x03, 0x47, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0x53, 0x00, 0x7F, 0xB0, 0x8A, 0x68, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x16, 0xB1, 0x73, 0x6F, 0x5B, 0x0E, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x32, 0xE3, 0x43, 0x64, 0x75, 0xFB, 0xFB), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x18, 0x55, 0x8A, 0x4E, 0x6E, 0x35, 0x54), }; static const mbedtls_mpi_uint brainpoolP512r1_T_22_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x80, 0x97, 0x15, 0x1E, 0xCB, 0xF2, 0x9C, 0xA5 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0xD1, 0xBB, 0xF3, 0x70, 0xAD, 0x13, 0xAD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0x96, 0xA4, 0xC5, 0x5E, 0xDA, 0xD5, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x81, 0xE9, 0x65, 0x66, 0x76, 0x47, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x35, 0x87, 0x06, 0x73, 0xCF, 0x34, 0xD2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x81, 0x15, 0x42, 0xA2, 0x79, 0x5B, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x08, 0xA2, 0x7D, 0x09, 0x14, 0x64, 0xC6, 0xAE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0x6D, 0xC4, 0xED, 0xF1, 0xD6, 0xE9, 0x24 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x80, 0x97, 0x15, 0x1E, 0xCB, 0xF2, 0x9C, 0xA5), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0xD1, 0xBB, 0xF3, 0x70, 0xAD, 0x13, 0xAD), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0x96, 0xA4, 0xC5, 0x5E, 0xDA, 0xD5, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x81, 0xE9, 0x65, 0x66, 0x76, 0x47, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x35, 0x87, 0x06, 0x73, 0xCF, 0x34, 0xD2), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x81, 0x15, 0x42, 0xA2, 0x79, 0x5B, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x08, 0xA2, 0x7D, 0x09, 0x14, 0x64, 0xC6, 0xAE), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0x6D, 0xC4, 0xED, 0xF1, 0xD6, 0xE9, 0x24), }; static const mbedtls_mpi_uint brainpoolP512r1_T_22_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xB4, 0xD5, 0xBB, 0x25, 0xA3, 0xDD, 0xA3, 0x88 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0xF2, 0x68, 0x67, 0x39, 0x8F, 0x73, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x76, 0x28, 0x89, 0xAD, 0x32, 0xE0, 0xDF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0x90, 0xCC, 0x57, 0x58, 0xAA, 0xC9, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0xD7, 0x43, 0xD2, 0xCE, 0x5E, 0xA0, 0x08 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x33, 0xB0, 0xB8, 0xA4, 0x9E, 0x96, 0x26, 0x86 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x94, 0x61, 0x1D, 0xF3, 0x65, 0x5E, 0x60, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC7, 0x1E, 0x65, 0xED, 0xCF, 0x07, 0x60, 0x20 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xB4, 0xD5, 0xBB, 0x25, 0xA3, 0xDD, 0xA3, 0x88), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xF2, 0x68, 0x67, 0x39, 0x8F, 0x73, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x76, 0x28, 0x89, 0xAD, 0x32, 0xE0, 0xDF), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0x90, 0xCC, 0x57, 0x58, 0xAA, 0xC9, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD7, 0x43, 0xD2, 0xCE, 0x5E, 0xA0, 0x08), + MBEDTLS_BYTES_TO_T_UINT_8(0x33, 0xB0, 0xB8, 0xA4, 0x9E, 0x96, 0x26, 0x86), + MBEDTLS_BYTES_TO_T_UINT_8(0x94, 0x61, 0x1D, 0xF3, 0x65, 0x5E, 0x60, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xC7, 0x1E, 0x65, 0xED, 0xCF, 0x07, 0x60, 0x20), }; static const mbedtls_mpi_uint brainpoolP512r1_T_23_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x30, 0x17, 0x8A, 0x91, 0x88, 0x0A, 0xA4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x05, 0x7D, 0x18, 0xA4, 0xAC, 0x59, 0xFC, 0x5F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x31, 0x8B, 0x25, 0x65, 0x39, 0x9A, 0xDC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x15, 0x16, 0x4B, 0x68, 0xBA, 0x59, 0x13, 0x2F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8D, 0xFD, 0xD3, 0xC5, 0x56, 0xC9, 0x8C, 0x5E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBC, 0xC6, 0x9F, 0xF4, 0xE6, 0xF7, 0xB4, 0x01 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2D, 0x7C, 0x03, 0x00, 0x26, 0x9F, 0xD8, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x1D, 0x6E, 0x00, 0xB9, 0x00, 0x6E, 0x93 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x30, 0x17, 0x8A, 0x91, 0x88, 0x0A, 0xA4), + MBEDTLS_BYTES_TO_T_UINT_8(0x05, 0x7D, 0x18, 0xA4, 0xAC, 0x59, 0xFC, 0x5F), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x31, 0x8B, 0x25, 0x65, 0x39, 0x9A, 0xDC), + MBEDTLS_BYTES_TO_T_UINT_8(0x15, 0x16, 0x4B, 0x68, 0xBA, 0x59, 0x13, 0x2F), + MBEDTLS_BYTES_TO_T_UINT_8(0x8D, 0xFD, 0xD3, 0xC5, 0x56, 0xC9, 0x8C, 0x5E), + MBEDTLS_BYTES_TO_T_UINT_8(0xBC, 0xC6, 0x9F, 0xF4, 0xE6, 0xF7, 0xB4, 0x01), + MBEDTLS_BYTES_TO_T_UINT_8(0x2D, 0x7C, 0x03, 0x00, 0x26, 0x9F, 0xD8, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x1D, 0x6E, 0x00, 0xB9, 0x00, 0x6E, 0x93), }; static const mbedtls_mpi_uint brainpoolP512r1_T_23_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x63, 0xDA, 0x03, 0x2B, 0xD5, 0x0B, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x46, 0xFC, 0xE2, 0xC8, 0x47, 0xF0, 0xAE, 0xF2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x51, 0x4C, 0xF7, 0x50, 0x0C, 0x48, 0x06, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDF, 0x2B, 0x32, 0x98, 0x0E, 0x7E, 0x61, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x02, 0x27, 0xFE, 0x75, 0x86, 0xDF, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2B, 0x30, 0xB1, 0x22, 0x32, 0x1B, 0xFE, 0x24 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC2, 0x27, 0xF7, 0x78, 0x6F, 0xD7, 0xFD, 0xE4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA0, 0x78, 0xCC, 0xEA, 0xC0, 0x50, 0x24, 0x44 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x63, 0xDA, 0x03, 0x2B, 0xD5, 0x0B, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x46, 0xFC, 0xE2, 0xC8, 0x47, 0xF0, 0xAE, 0xF2), + MBEDTLS_BYTES_TO_T_UINT_8(0x51, 0x4C, 0xF7, 0x50, 0x0C, 0x48, 0x06, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0xDF, 0x2B, 0x32, 0x98, 0x0E, 0x7E, 0x61, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x02, 0x27, 0xFE, 0x75, 0x86, 0xDF, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0x2B, 0x30, 0xB1, 0x22, 0x32, 0x1B, 0xFE, 0x24), + MBEDTLS_BYTES_TO_T_UINT_8(0xC2, 0x27, 0xF7, 0x78, 0x6F, 0xD7, 0xFD, 0xE4), + MBEDTLS_BYTES_TO_T_UINT_8(0xA0, 0x78, 0xCC, 0xEA, 0xC0, 0x50, 0x24, 0x44), }; static const mbedtls_mpi_uint brainpoolP512r1_T_24_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x2B, 0x4F, 0x7F, 0x58, 0xE6, 0xC2, 0x70 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x43, 0xD5, 0xA7, 0x35, 0x3C, 0x80, 0xB8 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1A, 0x6D, 0x4B, 0x12, 0x00, 0x7B, 0xE6, 0xA6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x15, 0xBD, 0xD0, 0x9B, 0xCA, 0xAA, 0x81 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xCF, 0xCE, 0x9C, 0xE3, 0x8B, 0x60, 0x7A, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0xDA, 0x4B, 0x03, 0xA7, 0x8D, 0x43, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0xAF, 0x00, 0x2B, 0x32, 0xF0, 0x22, 0x68 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDC, 0xD9, 0x99, 0x99, 0xBE, 0x43, 0x99, 0x3E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x2B, 0x4F, 0x7F, 0x58, 0xE6, 0xC2, 0x70), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x43, 0xD5, 0xA7, 0x35, 0x3C, 0x80, 0xB8), + MBEDTLS_BYTES_TO_T_UINT_8(0x1A, 0x6D, 0x4B, 0x12, 0x00, 0x7B, 0xE6, 0xA6), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x15, 0xBD, 0xD0, 0x9B, 0xCA, 0xAA, 0x81), + MBEDTLS_BYTES_TO_T_UINT_8(0xCF, 0xCE, 0x9C, 0xE3, 0x8B, 0x60, 0x7A, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0xDA, 0x4B, 0x03, 0xA7, 0x8D, 0x43, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0xAF, 0x00, 0x2B, 0x32, 0xF0, 0x22, 0x68), + MBEDTLS_BYTES_TO_T_UINT_8(0xDC, 0xD9, 0x99, 0x99, 0xBE, 0x43, 0x99, 0x3E), }; static const mbedtls_mpi_uint brainpoolP512r1_T_24_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x1F, 0x71, 0x41, 0xF4, 0xB5, 0xFD, 0xDD, 0x36 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9D, 0xE2, 0x20, 0x4C, 0xD1, 0x2E, 0x1F, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x96, 0x43, 0x48, 0x76, 0x8A, 0x49, 0xAC, 0x87 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0C, 0x1A, 0x55, 0xA8, 0xA3, 0xD4, 0x57, 0x75 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0xA6, 0x84, 0x39, 0xC9, 0x13, 0xBB, 0x60 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD9, 0xFA, 0xA9, 0x70, 0xDE, 0x83, 0xDD, 0xC9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEC, 0xC9, 0xD9, 0x3E, 0x44, 0x91, 0x68, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB6, 0x9F, 0x85, 0x6D, 0xF7, 0x54, 0x36, 0x82 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x1F, 0x71, 0x41, 0xF4, 0xB5, 0xFD, 0xDD, 0x36), + MBEDTLS_BYTES_TO_T_UINT_8(0x9D, 0xE2, 0x20, 0x4C, 0xD1, 0x2E, 0x1F, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x96, 0x43, 0x48, 0x76, 0x8A, 0x49, 0xAC, 0x87), + MBEDTLS_BYTES_TO_T_UINT_8(0x0C, 0x1A, 0x55, 0xA8, 0xA3, 0xD4, 0x57, 0x75), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0xA6, 0x84, 0x39, 0xC9, 0x13, 0xBB, 0x60), + MBEDTLS_BYTES_TO_T_UINT_8(0xD9, 0xFA, 0xA9, 0x70, 0xDE, 0x83, 0xDD, 0xC9), + MBEDTLS_BYTES_TO_T_UINT_8(0xEC, 0xC9, 0xD9, 0x3E, 0x44, 0x91, 0x68, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xB6, 0x9F, 0x85, 0x6D, 0xF7, 0x54, 0x36, 0x82), }; static const mbedtls_mpi_uint brainpoolP512r1_T_25_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x68, 0x6B, 0xA6, 0xA3, 0xE5, 0xD4, 0x46, 0xDB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0x3E, 0xDC, 0x84, 0x7C, 0x7B, 0x24, 0x34 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x14, 0xED, 0x7F, 0x86, 0x07, 0x6C, 0x57, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x95, 0x06, 0xFE, 0x52, 0x12, 0x79, 0x69, 0x56 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x84, 0xD1, 0x44, 0x5F, 0x21, 0x3A, 0xC3, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5E, 0xD9, 0x4A, 0xC0, 0x75, 0xAB, 0x17, 0xAC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xFF, 0x81, 0x94, 0xB6, 0x80, 0x6B, 0x6F, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xBE, 0x8E, 0xA5, 0xAA, 0xBC, 0x1E, 0x3E ), + MBEDTLS_BYTES_TO_T_UINT_8(0x68, 0x6B, 0xA6, 0xA3, 0xE5, 0xD4, 0x46, 0xDB), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x3E, 0xDC, 0x84, 0x7C, 0x7B, 0x24, 0x34), + MBEDTLS_BYTES_TO_T_UINT_8(0x14, 0xED, 0x7F, 0x86, 0x07, 0x6C, 0x57, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0x95, 0x06, 0xFE, 0x52, 0x12, 0x79, 0x69, 0x56), + MBEDTLS_BYTES_TO_T_UINT_8(0x84, 0xD1, 0x44, 0x5F, 0x21, 0x3A, 0xC3, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x5E, 0xD9, 0x4A, 0xC0, 0x75, 0xAB, 0x17, 0xAC), + MBEDTLS_BYTES_TO_T_UINT_8(0xFF, 0x81, 0x94, 0xB6, 0x80, 0x6B, 0x6F, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xBE, 0x8E, 0xA5, 0xAA, 0xBC, 0x1E, 0x3E), }; static const mbedtls_mpi_uint brainpoolP512r1_T_25_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x89, 0xC7, 0x85, 0xA6, 0x59, 0x9B, 0xB1, 0x52 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0xCE, 0x40, 0xD1, 0xFB, 0xDF, 0x94, 0xF7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x18, 0xB8, 0x5E, 0xBF, 0x45, 0xA8, 0x2D, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x98, 0x9C, 0x06, 0x1B, 0xA9, 0x57, 0xB9, 0x79 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x53, 0xE9, 0xCE, 0xA2, 0xD3, 0x74, 0xA1, 0x3C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAA, 0x5F, 0x34, 0x78, 0xDB, 0xAE, 0x3A, 0x14 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7D, 0x32, 0x84, 0x3E, 0x68, 0x6A, 0x43, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0xBC, 0x39, 0x36, 0xA4, 0xC5, 0xBB, 0x11 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x89, 0xC7, 0x85, 0xA6, 0x59, 0x9B, 0xB1, 0x52), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xCE, 0x40, 0xD1, 0xFB, 0xDF, 0x94, 0xF7), + MBEDTLS_BYTES_TO_T_UINT_8(0x18, 0xB8, 0x5E, 0xBF, 0x45, 0xA8, 0x2D, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x98, 0x9C, 0x06, 0x1B, 0xA9, 0x57, 0xB9, 0x79), + MBEDTLS_BYTES_TO_T_UINT_8(0x53, 0xE9, 0xCE, 0xA2, 0xD3, 0x74, 0xA1, 0x3C), + MBEDTLS_BYTES_TO_T_UINT_8(0xAA, 0x5F, 0x34, 0x78, 0xDB, 0xAE, 0x3A, 0x14), + MBEDTLS_BYTES_TO_T_UINT_8(0x7D, 0x32, 0x84, 0x3E, 0x68, 0x6A, 0x43, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0xBC, 0x39, 0x36, 0xA4, 0xC5, 0xBB, 0x11), }; static const mbedtls_mpi_uint brainpoolP512r1_T_26_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x8C, 0x07, 0xA2, 0xB5, 0xC9, 0x0F, 0x4D, 0x0F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0x1D, 0x67, 0xE6, 0xF1, 0x46, 0xEB, 0x71 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD7, 0x41, 0x23, 0x95, 0xE7, 0xE0, 0x10, 0xDD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x69, 0xFE, 0x68, 0x8C, 0xC6, 0x5F, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE3, 0xB9, 0x2B, 0x3D, 0xD2, 0x4F, 0xD8, 0x1A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA3, 0x09, 0xF5, 0x5F, 0xCF, 0xF6, 0x91, 0x57 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x65, 0x15, 0x42, 0x6B, 0x6D, 0xB5, 0xF3, 0xB6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBF, 0x56, 0x9D, 0xC5, 0xFF, 0xCA, 0x13, 0x9B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x8C, 0x07, 0xA2, 0xB5, 0xC9, 0x0F, 0x4D, 0x0F), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0x1D, 0x67, 0xE6, 0xF1, 0x46, 0xEB, 0x71), + MBEDTLS_BYTES_TO_T_UINT_8(0xD7, 0x41, 0x23, 0x95, 0xE7, 0xE0, 0x10, 0xDD), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x69, 0xFE, 0x68, 0x8C, 0xC6, 0x5F, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0xE3, 0xB9, 0x2B, 0x3D, 0xD2, 0x4F, 0xD8, 0x1A), + MBEDTLS_BYTES_TO_T_UINT_8(0xA3, 0x09, 0xF5, 0x5F, 0xCF, 0xF6, 0x91, 0x57), + MBEDTLS_BYTES_TO_T_UINT_8(0x65, 0x15, 0x42, 0x6B, 0x6D, 0xB5, 0xF3, 0xB6), + MBEDTLS_BYTES_TO_T_UINT_8(0xBF, 0x56, 0x9D, 0xC5, 0xFF, 0xCA, 0x13, 0x9B), }; static const mbedtls_mpi_uint brainpoolP512r1_T_26_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x4D, 0x38, 0xE6, 0x23, 0x63, 0x48, 0x3C, 0xCA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD2, 0x68, 0x3C, 0xD1, 0x3B, 0xE9, 0x3B, 0x82 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB5, 0x08, 0x54, 0x49, 0xD1, 0x46, 0x45, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x70, 0x52, 0x6E, 0x79, 0xC4, 0x5E, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0xDF, 0xE8, 0x5A, 0x32, 0x81, 0xDA, 0xD3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3C, 0x2D, 0x94, 0x5B, 0xB5, 0x35, 0x9F, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2A, 0x12, 0x8D, 0xC3, 0x36, 0x36, 0xB2, 0x2A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x39, 0x2F, 0x22, 0x38, 0x5B, 0x18, 0x4C, 0x35 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x4D, 0x38, 0xE6, 0x23, 0x63, 0x48, 0x3C, 0xCA), + MBEDTLS_BYTES_TO_T_UINT_8(0xD2, 0x68, 0x3C, 0xD1, 0x3B, 0xE9, 0x3B, 0x82), + MBEDTLS_BYTES_TO_T_UINT_8(0xB5, 0x08, 0x54, 0x49, 0xD1, 0x46, 0x45, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x70, 0x52, 0x6E, 0x79, 0xC4, 0x5E, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0xDF, 0xE8, 0x5A, 0x32, 0x81, 0xDA, 0xD3), + MBEDTLS_BYTES_TO_T_UINT_8(0x3C, 0x2D, 0x94, 0x5B, 0xB5, 0x35, 0x9F, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x2A, 0x12, 0x8D, 0xC3, 0x36, 0x36, 0xB2, 0x2A), + MBEDTLS_BYTES_TO_T_UINT_8(0x39, 0x2F, 0x22, 0x38, 0x5B, 0x18, 0x4C, 0x35), }; static const mbedtls_mpi_uint brainpoolP512r1_T_27_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0xC1, 0x22, 0x0E, 0xF0, 0x73, 0x11, 0x05 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB2, 0xAE, 0xA4, 0x56, 0x18, 0x61, 0x66, 0x12 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x79, 0xFB, 0x72, 0x08, 0x84, 0x38, 0x51, 0xB0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDA, 0x86, 0xA8, 0xB9, 0x31, 0x99, 0x29, 0xC3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x8A, 0xFB, 0xC3, 0x42, 0xB3, 0xC7, 0x6F, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD8, 0xF8, 0xE1, 0x09, 0xBE, 0x75, 0xB0, 0x22 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5A, 0x7D, 0xFF, 0xF4, 0x99, 0xFC, 0x13, 0xAB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE6, 0x1B, 0x84, 0x81, 0x42, 0x22, 0xC6, 0x3D ), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0xC1, 0x22, 0x0E, 0xF0, 0x73, 0x11, 0x05), + MBEDTLS_BYTES_TO_T_UINT_8(0xB2, 0xAE, 0xA4, 0x56, 0x18, 0x61, 0x66, 0x12), + MBEDTLS_BYTES_TO_T_UINT_8(0x79, 0xFB, 0x72, 0x08, 0x84, 0x38, 0x51, 0xB0), + MBEDTLS_BYTES_TO_T_UINT_8(0xDA, 0x86, 0xA8, 0xB9, 0x31, 0x99, 0x29, 0xC3), + MBEDTLS_BYTES_TO_T_UINT_8(0x8A, 0xFB, 0xC3, 0x42, 0xB3, 0xC7, 0x6F, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0xD8, 0xF8, 0xE1, 0x09, 0xBE, 0x75, 0xB0, 0x22), + MBEDTLS_BYTES_TO_T_UINT_8(0x5A, 0x7D, 0xFF, 0xF4, 0x99, 0xFC, 0x13, 0xAB), + MBEDTLS_BYTES_TO_T_UINT_8(0xE6, 0x1B, 0x84, 0x81, 0x42, 0x22, 0xC6, 0x3D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_27_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x21, 0xE0, 0x37, 0xA4, 0xA0, 0x2F, 0x38, 0x7F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x3D, 0xB7, 0x40, 0x2F, 0x39, 0x3C, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7A, 0x3B, 0x8A, 0x51, 0xAE, 0x40, 0x49, 0x7A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x36, 0x20, 0x9F, 0xDD, 0xA9, 0xD0, 0x77, 0xC7 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x78, 0x1D, 0x64, 0xDA, 0xA0, 0x53, 0xC7, 0x7D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x37, 0x7B, 0x66, 0x55, 0x94, 0xD1, 0x51, 0x44 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0E, 0xA9, 0xB5, 0x5B, 0x38, 0x35, 0x40, 0xC0 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC8, 0xC9, 0x0F, 0xF0, 0x73, 0x79, 0x43, 0x61 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x21, 0xE0, 0x37, 0xA4, 0xA0, 0x2F, 0x38, 0x7F), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x3D, 0xB7, 0x40, 0x2F, 0x39, 0x3C, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x7A, 0x3B, 0x8A, 0x51, 0xAE, 0x40, 0x49, 0x7A), + MBEDTLS_BYTES_TO_T_UINT_8(0x36, 0x20, 0x9F, 0xDD, 0xA9, 0xD0, 0x77, 0xC7), + MBEDTLS_BYTES_TO_T_UINT_8(0x78, 0x1D, 0x64, 0xDA, 0xA0, 0x53, 0xC7, 0x7D), + MBEDTLS_BYTES_TO_T_UINT_8(0x37, 0x7B, 0x66, 0x55, 0x94, 0xD1, 0x51, 0x44), + MBEDTLS_BYTES_TO_T_UINT_8(0x0E, 0xA9, 0xB5, 0x5B, 0x38, 0x35, 0x40, 0xC0), + MBEDTLS_BYTES_TO_T_UINT_8(0xC8, 0xC9, 0x0F, 0xF0, 0x73, 0x79, 0x43, 0x61), }; static const mbedtls_mpi_uint brainpoolP512r1_T_28_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x47, 0x45, 0x69, 0x80, 0x72, 0x72, 0x42 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x11, 0x99, 0x59, 0xDB, 0x48, 0x80, 0x39 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x75, 0x6E, 0x3D, 0xFC, 0x37, 0x15, 0xF4, 0xBF ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x17, 0xBB, 0x5B, 0xA6, 0x35, 0x8D, 0x28, 0x20 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0x1A, 0x3B, 0x2C, 0x8F, 0xD3, 0xAA, 0x2D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x55, 0x1C, 0x1A, 0xF8, 0x02, 0xD9, 0x7B, 0x41 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAF, 0x69, 0xAC, 0xF8, 0x54, 0x31, 0x14, 0xA1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x8A, 0xE6, 0xDE, 0x58, 0xB9, 0xC4, 0x7A ), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x47, 0x45, 0x69, 0x80, 0x72, 0x72, 0x42), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x11, 0x99, 0x59, 0xDB, 0x48, 0x80, 0x39), + MBEDTLS_BYTES_TO_T_UINT_8(0x75, 0x6E, 0x3D, 0xFC, 0x37, 0x15, 0xF4, 0xBF), + MBEDTLS_BYTES_TO_T_UINT_8(0x17, 0xBB, 0x5B, 0xA6, 0x35, 0x8D, 0x28, 0x20), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0x1A, 0x3B, 0x2C, 0x8F, 0xD3, 0xAA, 0x2D), + MBEDTLS_BYTES_TO_T_UINT_8(0x55, 0x1C, 0x1A, 0xF8, 0x02, 0xD9, 0x7B, 0x41), + MBEDTLS_BYTES_TO_T_UINT_8(0xAF, 0x69, 0xAC, 0xF8, 0x54, 0x31, 0x14, 0xA1), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x8A, 0xE6, 0xDE, 0x58, 0xB9, 0xC4, 0x7A), }; static const mbedtls_mpi_uint brainpoolP512r1_T_28_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x57, 0x83, 0x52, 0xFE, 0xF9, 0x7B, 0xE9, 0x1F ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0xA2, 0x55, 0x46, 0x15, 0x49, 0xC1, 0x3A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0xBC, 0x5C, 0x91, 0xBD, 0xB9, 0x9C, 0xF4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBB, 0xFD, 0xB1, 0x4E, 0x5F, 0x74, 0xEE, 0x53 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xB1, 0x8B, 0xD8, 0x8B, 0x17, 0x73, 0x1B, 0x96 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x22, 0x92, 0xD7, 0x67, 0x06, 0xAD, 0x25, 0xCD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x01, 0x0F, 0x80, 0x24, 0xE2, 0x27, 0x5F, 0x8B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x61, 0x1C, 0xCE, 0xD0, 0x67, 0xCA, 0xD4, 0x0B ), + MBEDTLS_BYTES_TO_T_UINT_8(0x57, 0x83, 0x52, 0xFE, 0xF9, 0x7B, 0xE9, 0x1F), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0xA2, 0x55, 0x46, 0x15, 0x49, 0xC1, 0x3A), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xBC, 0x5C, 0x91, 0xBD, 0xB9, 0x9C, 0xF4), + MBEDTLS_BYTES_TO_T_UINT_8(0xBB, 0xFD, 0xB1, 0x4E, 0x5F, 0x74, 0xEE, 0x53), + MBEDTLS_BYTES_TO_T_UINT_8(0xB1, 0x8B, 0xD8, 0x8B, 0x17, 0x73, 0x1B, 0x96), + MBEDTLS_BYTES_TO_T_UINT_8(0x22, 0x92, 0xD7, 0x67, 0x06, 0xAD, 0x25, 0xCD), + MBEDTLS_BYTES_TO_T_UINT_8(0x01, 0x0F, 0x80, 0x24, 0xE2, 0x27, 0x5F, 0x8B), + MBEDTLS_BYTES_TO_T_UINT_8(0x61, 0x1C, 0xCE, 0xD0, 0x67, 0xCA, 0xD4, 0x0B), }; static const mbedtls_mpi_uint brainpoolP512r1_T_29_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x87, 0xF1, 0xDD, 0x33, 0x66, 0xF9, 0x05, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1D, 0xE5, 0x6B, 0x79, 0xBD, 0x48, 0x42, 0xAA ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0x14, 0x52, 0xE3, 0x53, 0xB4, 0x50, 0xD4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x32, 0x84, 0x6C, 0xCF, 0xDA, 0xB2, 0x20, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0xD6, 0x1A, 0xE5, 0xE2, 0x29, 0x70, 0xCE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x61, 0xFE, 0xBB, 0x21, 0x82, 0xD1, 0xFE ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x2C, 0xF0, 0x9C, 0x8B, 0x1A, 0x42, 0x30, 0x06 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0xD6, 0x49, 0x81, 0x92, 0xF1, 0xD0, 0x90 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x87, 0xF1, 0xDD, 0x33, 0x66, 0xF9, 0x05, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x1D, 0xE5, 0x6B, 0x79, 0xBD, 0x48, 0x42, 0xAA), + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x14, 0x52, 0xE3, 0x53, 0xB4, 0x50, 0xD4), + MBEDTLS_BYTES_TO_T_UINT_8(0x32, 0x84, 0x6C, 0xCF, 0xDA, 0xB2, 0x20, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0xD6, 0x1A, 0xE5, 0xE2, 0x29, 0x70, 0xCE), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x61, 0xFE, 0xBB, 0x21, 0x82, 0xD1, 0xFE), + MBEDTLS_BYTES_TO_T_UINT_8(0x2C, 0xF0, 0x9C, 0x8B, 0x1A, 0x42, 0x30, 0x06), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0xD6, 0x49, 0x81, 0x92, 0xF1, 0xD0, 0x90), }; static const mbedtls_mpi_uint brainpoolP512r1_T_29_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x91, 0x93, 0x6A, 0xA6, 0x22, 0xE9, 0xD6 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x09, 0xDC, 0xC3, 0x69, 0x11, 0x95, 0x7D, 0xEC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x1C, 0xA3, 0x9D, 0x87, 0x5E, 0x64, 0x41, 0xA2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xBE, 0x87, 0x5A, 0x15, 0xBD, 0x6E, 0x3C, 0x8D ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD0, 0x8D, 0x50, 0xCC, 0xCF, 0xB7, 0x8F, 0x0B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x38, 0x65, 0xCD, 0x31, 0x30, 0xF1, 0x68, 0x13 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x10, 0x5C, 0x66, 0x67, 0x92, 0x30, 0x57, 0x95 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x23, 0x9B, 0x01, 0x3D, 0x20, 0x8B, 0xD1, 0x0D ), + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x91, 0x93, 0x6A, 0xA6, 0x22, 0xE9, 0xD6), + MBEDTLS_BYTES_TO_T_UINT_8(0x09, 0xDC, 0xC3, 0x69, 0x11, 0x95, 0x7D, 0xEC), + MBEDTLS_BYTES_TO_T_UINT_8(0x1C, 0xA3, 0x9D, 0x87, 0x5E, 0x64, 0x41, 0xA2), + MBEDTLS_BYTES_TO_T_UINT_8(0xBE, 0x87, 0x5A, 0x15, 0xBD, 0x6E, 0x3C, 0x8D), + MBEDTLS_BYTES_TO_T_UINT_8(0xD0, 0x8D, 0x50, 0xCC, 0xCF, 0xB7, 0x8F, 0x0B), + MBEDTLS_BYTES_TO_T_UINT_8(0x38, 0x65, 0xCD, 0x31, 0x30, 0xF1, 0x68, 0x13), + MBEDTLS_BYTES_TO_T_UINT_8(0x10, 0x5C, 0x66, 0x67, 0x92, 0x30, 0x57, 0x95), + MBEDTLS_BYTES_TO_T_UINT_8(0x23, 0x9B, 0x01, 0x3D, 0x20, 0x8B, 0xD1, 0x0D), }; static const mbedtls_mpi_uint brainpoolP512r1_T_30_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xAB, 0xC0, 0xE6, 0x4F, 0xDE, 0x62, 0xAB, 0xB3 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA4, 0x48, 0xB3, 0x1C, 0x0F, 0x16, 0x93, 0x45 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x77, 0x63, 0xBD, 0x1F, 0x16, 0x50, 0x56, 0x98 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x5D, 0x06, 0xBC, 0xE9, 0x27, 0x1C, 0x9A, 0x7B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF8, 0xFE, 0x21, 0xC5, 0x39, 0x55, 0xE1, 0xFD ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF6, 0xA8, 0xD0, 0x96, 0x0E, 0xB5, 0xB2, 0x84 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3D, 0xE7, 0x4B, 0xF3, 0x11, 0x0C, 0xC9, 0x5B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x43, 0x3A, 0xC4, 0x87, 0x71, 0xEE, 0xFA, 0x18 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xAB, 0xC0, 0xE6, 0x4F, 0xDE, 0x62, 0xAB, 0xB3), + MBEDTLS_BYTES_TO_T_UINT_8(0xA4, 0x48, 0xB3, 0x1C, 0x0F, 0x16, 0x93, 0x45), + MBEDTLS_BYTES_TO_T_UINT_8(0x77, 0x63, 0xBD, 0x1F, 0x16, 0x50, 0x56, 0x98), + MBEDTLS_BYTES_TO_T_UINT_8(0x5D, 0x06, 0xBC, 0xE9, 0x27, 0x1C, 0x9A, 0x7B), + MBEDTLS_BYTES_TO_T_UINT_8(0xF8, 0xFE, 0x21, 0xC5, 0x39, 0x55, 0xE1, 0xFD), + MBEDTLS_BYTES_TO_T_UINT_8(0xF6, 0xA8, 0xD0, 0x96, 0x0E, 0xB5, 0xB2, 0x84), + MBEDTLS_BYTES_TO_T_UINT_8(0x3D, 0xE7, 0x4B, 0xF3, 0x11, 0x0C, 0xC9, 0x5B), + MBEDTLS_BYTES_TO_T_UINT_8(0x43, 0x3A, 0xC4, 0x87, 0x71, 0xEE, 0xFA, 0x18), }; static const mbedtls_mpi_uint brainpoolP512r1_T_30_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xA7, 0x77, 0xEE, 0x81, 0x5E, 0x96, 0xEA, 0x4B ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xEE, 0xDF, 0xA9, 0xF4, 0x4F, 0x7C, 0xB2, 0x43 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x9F, 0xD4, 0xDF, 0x35, 0x63, 0x47, 0x25, 0x8A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xA5, 0x3D, 0xFF, 0xA4, 0x02, 0xC3, 0x95, 0x11 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xD5, 0x10, 0x78, 0xD1, 0x2B, 0xB7, 0xBE, 0x0E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x0A, 0xE9, 0x57, 0xF9, 0xE0, 0xD8, 0xFC, 0xBC ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF3, 0xC4, 0x01, 0xD6, 0xB4, 0xE7, 0x78, 0xE2 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x02, 0x6C, 0xB9, 0x13, 0xA4, 0xE8, 0x6D, 0x6F ), + MBEDTLS_BYTES_TO_T_UINT_8(0xA7, 0x77, 0xEE, 0x81, 0x5E, 0x96, 0xEA, 0x4B), + MBEDTLS_BYTES_TO_T_UINT_8(0xEE, 0xDF, 0xA9, 0xF4, 0x4F, 0x7C, 0xB2, 0x43), + MBEDTLS_BYTES_TO_T_UINT_8(0x9F, 0xD4, 0xDF, 0x35, 0x63, 0x47, 0x25, 0x8A), + MBEDTLS_BYTES_TO_T_UINT_8(0xA5, 0x3D, 0xFF, 0xA4, 0x02, 0xC3, 0x95, 0x11), + MBEDTLS_BYTES_TO_T_UINT_8(0xD5, 0x10, 0x78, 0xD1, 0x2B, 0xB7, 0xBE, 0x0E), + MBEDTLS_BYTES_TO_T_UINT_8(0x0A, 0xE9, 0x57, 0xF9, 0xE0, 0xD8, 0xFC, 0xBC), + MBEDTLS_BYTES_TO_T_UINT_8(0xF3, 0xC4, 0x01, 0xD6, 0xB4, 0xE7, 0x78, 0xE2), + MBEDTLS_BYTES_TO_T_UINT_8(0x02, 0x6C, 0xB9, 0x13, 0xA4, 0xE8, 0x6D, 0x6F), }; static const mbedtls_mpi_uint brainpoolP512r1_T_31_X[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xE8, 0xB0, 0xC9, 0xCD, 0xBF, 0xA2, 0x1E, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xDD, 0x4F, 0x86, 0x22, 0x9B, 0xEA, 0xE8, 0xBB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x50, 0x46, 0xDF, 0x43, 0xB9, 0x82, 0x2D, 0x0A ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x07, 0x32, 0xF1, 0x4E, 0x95, 0x41, 0xAE, 0x8E ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x52, 0x93, 0x26, 0xFC, 0xD3, 0x90, 0xDC, 0xEB ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x04, 0x05, 0x45, 0xCA, 0xF9, 0x5A, 0x89, 0x93 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xC5, 0x82, 0x63, 0x4E, 0x55, 0x1D, 0x3A, 0x08 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x7C, 0x69, 0x52, 0x49, 0xE9, 0xED, 0x57, 0x34 ), + MBEDTLS_BYTES_TO_T_UINT_8(0xE8, 0xB0, 0xC9, 0xCD, 0xBF, 0xA2, 0x1E, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0xDD, 0x4F, 0x86, 0x22, 0x9B, 0xEA, 0xE8, 0xBB), + MBEDTLS_BYTES_TO_T_UINT_8(0x50, 0x46, 0xDF, 0x43, 0xB9, 0x82, 0x2D, 0x0A), + MBEDTLS_BYTES_TO_T_UINT_8(0x07, 0x32, 0xF1, 0x4E, 0x95, 0x41, 0xAE, 0x8E), + MBEDTLS_BYTES_TO_T_UINT_8(0x52, 0x93, 0x26, 0xFC, 0xD3, 0x90, 0xDC, 0xEB), + MBEDTLS_BYTES_TO_T_UINT_8(0x04, 0x05, 0x45, 0xCA, 0xF9, 0x5A, 0x89, 0x93), + MBEDTLS_BYTES_TO_T_UINT_8(0xC5, 0x82, 0x63, 0x4E, 0x55, 0x1D, 0x3A, 0x08), + MBEDTLS_BYTES_TO_T_UINT_8(0x7C, 0x69, 0x52, 0x49, 0xE9, 0xED, 0x57, 0x34), }; static const mbedtls_mpi_uint brainpoolP512r1_T_31_Y[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x70, 0x64, 0xE9, 0xAC, 0x4C, 0x4A, 0xEA, 0x25 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xE9, 0xE9, 0x0B, 0x99, 0xE7, 0xF9, 0xA9, 0x2C ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x24, 0x0C, 0xC1, 0xF4, 0x8D, 0x07, 0xB6, 0xB1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xAD, 0x68, 0xFA, 0x35, 0xE4, 0x9E, 0xAE, 0xD9 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0xF0, 0x2D, 0x1A, 0x13, 0x8E, 0x02, 0xE2, 0x63 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x27, 0x38, 0x28, 0x86, 0x46, 0x7B, 0x3A, 0xE1 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x3F, 0x4C, 0x64, 0x59, 0x0A, 0xF9, 0x02, 0xC4 ), - MBEDTLS_BYTES_TO_T_UINT_8( 0x41, 0x4F, 0x23, 0xA2, 0xC3, 0xD5, 0xEF, 0x42 ), + MBEDTLS_BYTES_TO_T_UINT_8(0x70, 0x64, 0xE9, 0xAC, 0x4C, 0x4A, 0xEA, 0x25), + MBEDTLS_BYTES_TO_T_UINT_8(0xE9, 0xE9, 0x0B, 0x99, 0xE7, 0xF9, 0xA9, 0x2C), + MBEDTLS_BYTES_TO_T_UINT_8(0x24, 0x0C, 0xC1, 0xF4, 0x8D, 0x07, 0xB6, 0xB1), + MBEDTLS_BYTES_TO_T_UINT_8(0xAD, 0x68, 0xFA, 0x35, 0xE4, 0x9E, 0xAE, 0xD9), + MBEDTLS_BYTES_TO_T_UINT_8(0xF0, 0x2D, 0x1A, 0x13, 0x8E, 0x02, 0xE2, 0x63), + MBEDTLS_BYTES_TO_T_UINT_8(0x27, 0x38, 0x28, 0x86, 0x46, 0x7B, 0x3A, 0xE1), + MBEDTLS_BYTES_TO_T_UINT_8(0x3F, 0x4C, 0x64, 0x59, 0x0A, 0xF9, 0x02, 0xC4), + MBEDTLS_BYTES_TO_T_UINT_8(0x41, 0x4F, 0x23, 0xA2, 0xC3, 0xD5, 0xEF, 0x42), }; static const mbedtls_ecp_point brainpoolP512r1_T[32] = { ECP_POINT_INIT_XY_Z1(brainpoolP512r1_T_0_X, brainpoolP512r1_T_0_Y), @@ -4507,17 +4507,17 @@ static const mbedtls_ecp_point brainpoolP512r1_T[32] = { * Create an MPI from embedded constants * (assumes len is an exact multiple of sizeof mbedtls_mpi_uint) */ -static inline void ecp_mpi_load( mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_t len ) +static inline void ecp_mpi_load(mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_t len) { X->s = 1; - X->n = len / sizeof( mbedtls_mpi_uint ); + X->n = len / sizeof(mbedtls_mpi_uint); X->p = (mbedtls_mpi_uint *) p; } /* * Set an MPI to static value 1 */ -static inline void ecp_mpi_set1( mbedtls_mpi *X ) +static inline void ecp_mpi_set1(mbedtls_mpi *X) { X->s = 1; X->n = 1; @@ -4527,27 +4527,28 @@ static inline void ecp_mpi_set1( mbedtls_mpi *X ) /* * Make group available from embedded constants */ -static int ecp_group_load( mbedtls_ecp_group *grp, - const mbedtls_mpi_uint *p, size_t plen, - const mbedtls_mpi_uint *a, size_t alen, - const mbedtls_mpi_uint *b, size_t blen, - const mbedtls_mpi_uint *gx, size_t gxlen, - const mbedtls_mpi_uint *gy, size_t gylen, - const mbedtls_mpi_uint *n, size_t nlen, - const mbedtls_ecp_point *T) +static int ecp_group_load(mbedtls_ecp_group *grp, + const mbedtls_mpi_uint *p, size_t plen, + const mbedtls_mpi_uint *a, size_t alen, + const mbedtls_mpi_uint *b, size_t blen, + const mbedtls_mpi_uint *gx, size_t gxlen, + const mbedtls_mpi_uint *gy, size_t gylen, + const mbedtls_mpi_uint *n, size_t nlen, + const mbedtls_ecp_point *T) { - ecp_mpi_load( &grp->P, p, plen ); - if( a != NULL ) - ecp_mpi_load( &grp->A, a, alen ); - ecp_mpi_load( &grp->B, b, blen ); - ecp_mpi_load( &grp->N, n, nlen ); + ecp_mpi_load(&grp->P, p, plen); + if (a != NULL) { + ecp_mpi_load(&grp->A, a, alen); + } + ecp_mpi_load(&grp->B, b, blen); + ecp_mpi_load(&grp->N, n, nlen); - ecp_mpi_load( &grp->G.X, gx, gxlen ); - ecp_mpi_load( &grp->G.Y, gy, gylen ); - ecp_mpi_set1( &grp->G.Z ); + ecp_mpi_load(&grp->G.X, gx, gxlen); + ecp_mpi_load(&grp->G.Y, gy, gylen); + ecp_mpi_set1(&grp->G.Z); - grp->pbits = mbedtls_mpi_bitlen( &grp->P ); - grp->nbits = mbedtls_mpi_bitlen( &grp->N ); + grp->pbits = mbedtls_mpi_bitlen(&grp->P); + grp->nbits = mbedtls_mpi_bitlen(&grp->N); grp->h = 1; @@ -4557,70 +4558,70 @@ static int ecp_group_load( mbedtls_ecp_group *grp, */ grp->T_size = 0; - return( 0 ); + return 0; } #endif /* ECP_LOAD_GROUP */ #if defined(MBEDTLS_ECP_NIST_OPTIM) /* Forward declarations */ #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) -static int ecp_mod_p192( mbedtls_mpi * ); +static int ecp_mod_p192(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) -static int ecp_mod_p224( mbedtls_mpi * ); +static int ecp_mod_p224(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) -static int ecp_mod_p256( mbedtls_mpi * ); +static int ecp_mod_p256(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) -static int ecp_mod_p384( mbedtls_mpi * ); +static int ecp_mod_p384(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) -static int ecp_mod_p521( mbedtls_mpi * ); +static int ecp_mod_p521(mbedtls_mpi *); #endif -#define NIST_MODP( P ) grp->modp = ecp_mod_ ## P; +#define NIST_MODP(P) grp->modp = ecp_mod_ ## P; #else -#define NIST_MODP( P ) +#define NIST_MODP(P) #endif /* MBEDTLS_ECP_NIST_OPTIM */ /* Additional forward declarations */ #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) -static int ecp_mod_p255( mbedtls_mpi * ); +static int ecp_mod_p255(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) -static int ecp_mod_p448( mbedtls_mpi * ); +static int ecp_mod_p448(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) -static int ecp_mod_p192k1( mbedtls_mpi * ); +static int ecp_mod_p192k1(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) -static int ecp_mod_p224k1( mbedtls_mpi * ); +static int ecp_mod_p224k1(mbedtls_mpi *); #endif #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) -static int ecp_mod_p256k1( mbedtls_mpi * ); +static int ecp_mod_p256k1(mbedtls_mpi *); #endif #if defined(ECP_LOAD_GROUP) -#define LOAD_GROUP_A( G ) ecp_group_load( grp, \ - G ## _p, sizeof( G ## _p ), \ - G ## _a, sizeof( G ## _a ), \ - G ## _b, sizeof( G ## _b ), \ - G ## _gx, sizeof( G ## _gx ), \ - G ## _gy, sizeof( G ## _gy ), \ - G ## _n, sizeof( G ## _n ), \ - G ## _T \ - ) +#define LOAD_GROUP_A(G) ecp_group_load(grp, \ + G ## _p, sizeof(G ## _p), \ + G ## _a, sizeof(G ## _a), \ + G ## _b, sizeof(G ## _b), \ + G ## _gx, sizeof(G ## _gx), \ + G ## _gy, sizeof(G ## _gy), \ + G ## _n, sizeof(G ## _n), \ + G ## _T \ + ) -#define LOAD_GROUP( G ) ecp_group_load( grp, \ - G ## _p, sizeof( G ## _p ), \ - NULL, 0, \ - G ## _b, sizeof( G ## _b ), \ - G ## _gx, sizeof( G ## _gx ), \ - G ## _gy, sizeof( G ## _gy ), \ - G ## _n, sizeof( G ## _n ), \ - G ## _T \ - ) +#define LOAD_GROUP(G) ecp_group_load(grp, \ + G ## _p, sizeof(G ## _p), \ + NULL, 0, \ + G ## _b, sizeof(G ## _b), \ + G ## _gx, sizeof(G ## _gx), \ + G ## _gy, sizeof(G ## _gy), \ + G ## _n, sizeof(G ## _n), \ + G ## _T \ + ) #endif /* ECP_LOAD_GROUP */ #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) @@ -4634,38 +4635,39 @@ static const unsigned char curve25519_part_of_n[] = { /* * Specialized function for creating the Curve25519 group */ -static int ecp_use_curve25519( mbedtls_ecp_group *grp ) +static int ecp_use_curve25519(mbedtls_ecp_group *grp) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Actually ( A + 2 ) / 4 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->A, curve25519_a24 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve25519_a24)); /* P = 2^255 - 19 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &grp->P, 255 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &grp->P, &grp->P, 19 ) ); - grp->pbits = mbedtls_mpi_bitlen( &grp->P ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 255)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 19)); + grp->pbits = mbedtls_mpi_bitlen(&grp->P); /* N = 2^252 + 27742317777372353535851937790883648493 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &grp->N, - curve25519_part_of_n, sizeof( curve25519_part_of_n ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &grp->N, 252, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&grp->N, + curve25519_part_of_n, sizeof(curve25519_part_of_n))); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 252, 1)); /* Y intentionally not set, since we use x/z coordinates. * This is used as a marker to identify Montgomery curves! */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->G.X, 9 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->G.Z, 1 ) ); - mbedtls_mpi_free( &grp->G.Y ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 9)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1)); + mbedtls_mpi_free(&grp->G.Y); /* Actually, the required msb for private keys */ grp->nbits = 254; cleanup: - if( ret != 0 ) - mbedtls_ecp_group_free( grp ); + if (ret != 0) { + mbedtls_ecp_group_free(grp); + } - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ @@ -4682,140 +4684,140 @@ static const unsigned char curve448_part_of_n[] = { /* * Specialized function for creating the Curve448 group */ -static int ecp_use_curve448( mbedtls_ecp_group *grp ) +static int ecp_use_curve448(mbedtls_ecp_group *grp) { mbedtls_mpi Ns; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_mpi_init( &Ns ); + mbedtls_mpi_init(&Ns); /* Actually ( A + 2 ) / 4 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->A, curve448_a24 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve448_a24)); /* P = 2^448 - 2^224 - 1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &grp->P, 224 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &grp->P, &grp->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &grp->P, 224 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &grp->P, &grp->P, 1 ) ); - grp->pbits = mbedtls_mpi_bitlen( &grp->P ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1)); + grp->pbits = mbedtls_mpi_bitlen(&grp->P); /* Y intentionally not set, since we use x/z coordinates. * This is used as a marker to identify Montgomery curves! */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->G.X, 5 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &grp->G.Z, 1 ) ); - mbedtls_mpi_free( &grp->G.Y ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.X, 5)); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1)); + mbedtls_mpi_free(&grp->G.Y); /* N = 2^446 - 13818066809895115352007386748515426880336692474882178609894547503885 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( &grp->N, 446, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &Ns, - curve448_part_of_n, sizeof( curve448_part_of_n ) ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &grp->N, &grp->N, &Ns ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 446, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&Ns, + curve448_part_of_n, sizeof(curve448_part_of_n))); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&grp->N, &grp->N, &Ns)); /* Actually, the required msb for private keys */ grp->nbits = 447; cleanup: - mbedtls_mpi_free( &Ns ); - if( ret != 0 ) - mbedtls_ecp_group_free( grp ); + mbedtls_mpi_free(&Ns); + if (ret != 0) { + mbedtls_ecp_group_free(grp); + } - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ /* * Set a group using well-known domain parameters */ -int mbedtls_ecp_group_load( mbedtls_ecp_group *grp, mbedtls_ecp_group_id id ) +int mbedtls_ecp_group_load(mbedtls_ecp_group *grp, mbedtls_ecp_group_id id) { - ECP_VALIDATE_RET( grp != NULL ); - mbedtls_ecp_group_free( grp ); + ECP_VALIDATE_RET(grp != NULL); + mbedtls_ecp_group_free(grp); - mbedtls_ecp_group_init( grp ); + mbedtls_ecp_group_init(grp); grp->id = id; - switch( id ) - { + switch (id) { #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) case MBEDTLS_ECP_DP_SECP192R1: - NIST_MODP( p192 ); - return( LOAD_GROUP( secp192r1 ) ); + NIST_MODP(p192); + return LOAD_GROUP(secp192r1); #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) case MBEDTLS_ECP_DP_SECP224R1: - NIST_MODP( p224 ); - return( LOAD_GROUP( secp224r1 ) ); + NIST_MODP(p224); + return LOAD_GROUP(secp224r1); #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) case MBEDTLS_ECP_DP_SECP256R1: - NIST_MODP( p256 ); - return( LOAD_GROUP( secp256r1 ) ); + NIST_MODP(p256); + return LOAD_GROUP(secp256r1); #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) case MBEDTLS_ECP_DP_SECP384R1: - NIST_MODP( p384 ); - return( LOAD_GROUP( secp384r1 ) ); + NIST_MODP(p384); + return LOAD_GROUP(secp384r1); #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) case MBEDTLS_ECP_DP_SECP521R1: - NIST_MODP( p521 ); - return( LOAD_GROUP( secp521r1 ) ); + NIST_MODP(p521); + return LOAD_GROUP(secp521r1); #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) case MBEDTLS_ECP_DP_SECP192K1: grp->modp = ecp_mod_p192k1; - return( LOAD_GROUP_A( secp192k1 ) ); + return LOAD_GROUP_A(secp192k1); #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) case MBEDTLS_ECP_DP_SECP224K1: grp->modp = ecp_mod_p224k1; - return( LOAD_GROUP_A( secp224k1 ) ); + return LOAD_GROUP_A(secp224k1); #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) case MBEDTLS_ECP_DP_SECP256K1: grp->modp = ecp_mod_p256k1; - return( LOAD_GROUP_A( secp256k1 ) ); + return LOAD_GROUP_A(secp256k1); #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) case MBEDTLS_ECP_DP_BP256R1: - return( LOAD_GROUP_A( brainpoolP256r1 ) ); + return LOAD_GROUP_A(brainpoolP256r1); #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) case MBEDTLS_ECP_DP_BP384R1: - return( LOAD_GROUP_A( brainpoolP384r1 ) ); + return LOAD_GROUP_A(brainpoolP384r1); #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) case MBEDTLS_ECP_DP_BP512R1: - return( LOAD_GROUP_A( brainpoolP512r1 ) ); + return LOAD_GROUP_A(brainpoolP512r1); #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) case MBEDTLS_ECP_DP_CURVE25519: grp->modp = ecp_mod_p255; - return( ecp_use_curve25519( grp ) ); + return ecp_use_curve25519(grp); #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) case MBEDTLS_ECP_DP_CURVE448: grp->modp = ecp_mod_p448; - return( ecp_use_curve448( grp ) ); + return ecp_use_curve448(grp); #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ default: grp->id = MBEDTLS_ECP_DP_NONE; - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; } } @@ -4844,56 +4846,54 @@ int mbedtls_ecp_group_load( mbedtls_ecp_group *grp, mbedtls_ecp_group_id id ) */ /* Add 64-bit chunks (dst += src) and update carry */ -static inline void add64( mbedtls_mpi_uint *dst, mbedtls_mpi_uint *src, mbedtls_mpi_uint *carry ) +static inline void add64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *src, mbedtls_mpi_uint *carry) { unsigned char i; mbedtls_mpi_uint c = 0; - for( i = 0; i < 8 / sizeof( mbedtls_mpi_uint ); i++, dst++, src++ ) - { - *dst += c; c = ( *dst < c ); - *dst += *src; c += ( *dst < *src ); + for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++, src++) { + *dst += c; c = (*dst < c); + *dst += *src; c += (*dst < *src); } *carry += c; } /* Add carry to a 64-bit chunk and update carry */ -static inline void carry64( mbedtls_mpi_uint *dst, mbedtls_mpi_uint *carry ) +static inline void carry64(mbedtls_mpi_uint *dst, mbedtls_mpi_uint *carry) { unsigned char i; - for( i = 0; i < 8 / sizeof( mbedtls_mpi_uint ); i++, dst++ ) - { + for (i = 0; i < 8 / sizeof(mbedtls_mpi_uint); i++, dst++) { *dst += *carry; - *carry = ( *dst < *carry ); + *carry = (*dst < *carry); } } -#define WIDTH 8 / sizeof( mbedtls_mpi_uint ) -#define A( i ) N->p + (i) * WIDTH -#define ADD( i ) add64( p, A( i ), &c ) -#define NEXT p += WIDTH; carry64( p, &c ) -#define LAST p += WIDTH; *p = c; while( ++p < end ) *p = 0 +#define WIDTH 8 / sizeof(mbedtls_mpi_uint) +#define A(i) N->p + (i) * WIDTH +#define ADD(i) add64(p, A(i), &c) +#define NEXT p += WIDTH; carry64(p, &c) +#define LAST p += WIDTH; *p = c; while (++p < end) *p = 0 /* * Fast quasi-reduction modulo p192 (FIPS 186-3 D.2.1) */ -static int ecp_mod_p192( mbedtls_mpi *N ) +static int ecp_mod_p192(mbedtls_mpi *N) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi_uint c = 0; mbedtls_mpi_uint *p, *end; /* Make sure we have enough blocks so that A(5) is legal */ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( N, 6 * WIDTH ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, 6 * WIDTH)); p = N->p; end = p + N->n; - ADD( 3 ); ADD( 5 ); NEXT; // A0 += A3 + A5 - ADD( 3 ); ADD( 4 ); ADD( 5 ); NEXT; // A1 += A3 + A4 + A5 - ADD( 4 ); ADD( 5 ); LAST; // A2 += A4 + A5 + ADD(3); ADD(5); NEXT; // A0 += A3 + A5 + ADD(3); ADD(4); ADD(5); NEXT; // A1 += A3 + A4 + A5 + ADD(4); ADD(5); LAST; // A2 += A4 + A5 cleanup: - return( ret ); + return ret; } #undef WIDTH @@ -4922,21 +4922,21 @@ cleanup: * * While at it, also define the size of N in terms of 32-bit chunks. */ -#define LOAD32 cur = A( i ); +#define LOAD32 cur = A(i); #if defined(MBEDTLS_HAVE_INT32) /* 32 bit */ #define MAX32 N->n -#define A( j ) N->p[j] +#define A(j) N->p[j] #define STORE32 N->p[i] = cur; #else /* 64-bit */ #define MAX32 N->n * 2 -#define A( j ) (j) % 2 ? (uint32_t)( N->p[(j)/2] >> 32 ) : \ - (uint32_t)( N->p[(j)/2] ) +#define A(j) (j) % 2 ? (uint32_t) (N->p[(j)/2] >> 32) : \ + (uint32_t) (N->p[(j)/2]) #define STORE32 \ - if( i % 2 ) { \ + if (i % 2) { \ N->p[i/2] &= 0x00000000FFFFFFFF; \ N->p[i/2] |= ((mbedtls_mpi_uint) cur) << 32; \ } else { \ @@ -4949,101 +4949,101 @@ cleanup: /* * Helpers for addition and subtraction of chunks, with signed carry. */ -static inline void add32( uint32_t *dst, uint32_t src, signed char *carry ) +static inline void add32(uint32_t *dst, uint32_t src, signed char *carry) { *dst += src; - *carry += ( *dst < src ); + *carry += (*dst < src); } -static inline void sub32( uint32_t *dst, uint32_t src, signed char *carry ) +static inline void sub32(uint32_t *dst, uint32_t src, signed char *carry) { - *carry -= ( *dst < src ); + *carry -= (*dst < src); *dst -= src; } -#define ADD( j ) add32( &cur, A( j ), &c ); -#define SUB( j ) sub32( &cur, A( j ), &c ); +#define ADD(j) add32(&cur, A(j), &c); +#define SUB(j) sub32(&cur, A(j), &c); /* * Helpers for the main 'loop' */ -#define INIT( b ) \ +#define INIT(b) \ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; \ signed char c = 0, cc; \ uint32_t cur; \ size_t i = 0, bits = (b); \ /* N is the size of the product of two b-bit numbers, plus one */ \ /* limb for fix_negative */ \ - MBEDTLS_MPI_CHK( mbedtls_mpi_grow( N, ( b ) * 2 / biL + 1 ) ); \ + MBEDTLS_MPI_CHK(mbedtls_mpi_grow(N, (b) * 2 / biL + 1)); \ LOAD32; #define NEXT \ STORE32; i++; LOAD32; \ cc = c; c = 0; \ - if( cc < 0 ) \ - sub32( &cur, -cc, &c ); \ + if (cc < 0) \ + sub32(&cur, -cc, &c); \ else \ - add32( &cur, cc, &c ); \ + add32(&cur, cc, &c); \ #define LAST \ STORE32; i++; \ cur = c > 0 ? c : 0; STORE32; \ - cur = 0; while( ++i < MAX32 ) { STORE32; } \ - if( c < 0 ) mbedtls_ecp_fix_negative( N, c, bits ); + cur = 0; while (++i < MAX32) { STORE32; } \ + if (c < 0) mbedtls_ecp_fix_negative(N, c, bits); /* * If the result is negative, we get it in the form * c * 2^bits + N, with c negative and N positive shorter than 'bits' */ MBEDTLS_STATIC_TESTABLE -void mbedtls_ecp_fix_negative( mbedtls_mpi *N, signed char c, size_t bits ) +void mbedtls_ecp_fix_negative(mbedtls_mpi *N, signed char c, size_t bits) { size_t i; /* Set N := 2^bits - 1 - N. We know that 0 <= N < 2^bits, so * set the absolute value to 0xfff...fff - N. There is no carry * since we're subtracting from all-bits-one. */ - for( i = 0; i <= bits / 8 / sizeof( mbedtls_mpi_uint ); i++ ) - { - N->p[i] = ~(mbedtls_mpi_uint)0 - N->p[i]; + for (i = 0; i <= bits / 8 / sizeof(mbedtls_mpi_uint); i++) { + N->p[i] = ~(mbedtls_mpi_uint) 0 - N->p[i]; } /* Add 1, taking care of the carry. */ i = 0; - do + do { ++N->p[i]; - while( N->p[i++] == 0 && i <= bits / 8 / sizeof( mbedtls_mpi_uint ) ); + } while (N->p[i++] == 0 && i <= bits / 8 / sizeof(mbedtls_mpi_uint)); /* Invert the sign. * Now N = N0 - 2^bits where N0 is the initial value of N. */ N->s = -1; /* Add |c| * 2^bits to the absolute value. Since c and N are - * negative, this adds c * 2^bits. */ + * negative, this adds c * 2^bits. */ mbedtls_mpi_uint msw = (mbedtls_mpi_uint) -c; #if defined(MBEDTLS_HAVE_INT64) - if( bits == 224 ) + if (bits == 224) { msw <<= 32; + } #endif - N->p[bits / 8 / sizeof( mbedtls_mpi_uint)] += msw; + N->p[bits / 8 / sizeof(mbedtls_mpi_uint)] += msw; } #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) /* * Fast quasi-reduction modulo p224 (FIPS 186-3 D.2.2) */ -static int ecp_mod_p224( mbedtls_mpi *N ) +static int ecp_mod_p224(mbedtls_mpi *N) { - INIT( 224 ); + INIT(224); - SUB( 7 ); SUB( 11 ); NEXT; // A0 += -A7 - A11 - SUB( 8 ); SUB( 12 ); NEXT; // A1 += -A8 - A12 - SUB( 9 ); SUB( 13 ); NEXT; // A2 += -A9 - A13 - SUB( 10 ); ADD( 7 ); ADD( 11 ); NEXT; // A3 += -A10 + A7 + A11 - SUB( 11 ); ADD( 8 ); ADD( 12 ); NEXT; // A4 += -A11 + A8 + A12 - SUB( 12 ); ADD( 9 ); ADD( 13 ); NEXT; // A5 += -A12 + A9 + A13 - SUB( 13 ); ADD( 10 ); LAST; // A6 += -A13 + A10 + SUB(7); SUB(11); NEXT; // A0 += -A7 - A11 + SUB(8); SUB(12); NEXT; // A1 += -A8 - A12 + SUB(9); SUB(13); NEXT; // A2 += -A9 - A13 + SUB(10); ADD(7); ADD(11); NEXT; // A3 += -A10 + A7 + A11 + SUB(11); ADD(8); ADD(12); NEXT; // A4 += -A11 + A8 + A12 + SUB(12); ADD(9); ADD(13); NEXT; // A5 += -A12 + A9 + A13 + SUB(13); ADD(10); LAST; // A6 += -A13 + A10 cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ @@ -5051,36 +5051,36 @@ cleanup: /* * Fast quasi-reduction modulo p256 (FIPS 186-3 D.2.3) */ -static int ecp_mod_p256( mbedtls_mpi *N ) +static int ecp_mod_p256(mbedtls_mpi *N) { - INIT( 256 ); + INIT(256); - ADD( 8 ); ADD( 9 ); - SUB( 11 ); SUB( 12 ); SUB( 13 ); SUB( 14 ); NEXT; // A0 + ADD(8); ADD(9); + SUB(11); SUB(12); SUB(13); SUB(14); NEXT; // A0 - ADD( 9 ); ADD( 10 ); - SUB( 12 ); SUB( 13 ); SUB( 14 ); SUB( 15 ); NEXT; // A1 + ADD(9); ADD(10); + SUB(12); SUB(13); SUB(14); SUB(15); NEXT; // A1 - ADD( 10 ); ADD( 11 ); - SUB( 13 ); SUB( 14 ); SUB( 15 ); NEXT; // A2 + ADD(10); ADD(11); + SUB(13); SUB(14); SUB(15); NEXT; // A2 - ADD( 11 ); ADD( 11 ); ADD( 12 ); ADD( 12 ); ADD( 13 ); - SUB( 15 ); SUB( 8 ); SUB( 9 ); NEXT; // A3 + ADD(11); ADD(11); ADD(12); ADD(12); ADD(13); + SUB(15); SUB(8); SUB(9); NEXT; // A3 - ADD( 12 ); ADD( 12 ); ADD( 13 ); ADD( 13 ); ADD( 14 ); - SUB( 9 ); SUB( 10 ); NEXT; // A4 + ADD(12); ADD(12); ADD(13); ADD(13); ADD(14); + SUB(9); SUB(10); NEXT; // A4 - ADD( 13 ); ADD( 13 ); ADD( 14 ); ADD( 14 ); ADD( 15 ); - SUB( 10 ); SUB( 11 ); NEXT; // A5 + ADD(13); ADD(13); ADD(14); ADD(14); ADD(15); + SUB(10); SUB(11); NEXT; // A5 - ADD( 14 ); ADD( 14 ); ADD( 15 ); ADD( 15 ); ADD( 14 ); ADD( 13 ); - SUB( 8 ); SUB( 9 ); NEXT; // A6 + ADD(14); ADD(14); ADD(15); ADD(15); ADD(14); ADD(13); + SUB(8); SUB(9); NEXT; // A6 - ADD( 15 ); ADD( 15 ); ADD( 15 ); ADD( 8 ); - SUB( 10 ); SUB( 11 ); SUB( 12 ); SUB( 13 ); LAST; // A7 + ADD(15); ADD(15); ADD(15); ADD(8); + SUB(10); SUB(11); SUB(12); SUB(13); LAST; // A7 cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ @@ -5088,48 +5088,48 @@ cleanup: /* * Fast quasi-reduction modulo p384 (FIPS 186-3 D.2.4) */ -static int ecp_mod_p384( mbedtls_mpi *N ) +static int ecp_mod_p384(mbedtls_mpi *N) { - INIT( 384 ); + INIT(384); - ADD( 12 ); ADD( 21 ); ADD( 20 ); - SUB( 23 ); NEXT; // A0 + ADD(12); ADD(21); ADD(20); + SUB(23); NEXT; // A0 - ADD( 13 ); ADD( 22 ); ADD( 23 ); - SUB( 12 ); SUB( 20 ); NEXT; // A2 + ADD(13); ADD(22); ADD(23); + SUB(12); SUB(20); NEXT; // A2 - ADD( 14 ); ADD( 23 ); - SUB( 13 ); SUB( 21 ); NEXT; // A2 + ADD(14); ADD(23); + SUB(13); SUB(21); NEXT; // A2 - ADD( 15 ); ADD( 12 ); ADD( 20 ); ADD( 21 ); - SUB( 14 ); SUB( 22 ); SUB( 23 ); NEXT; // A3 + ADD(15); ADD(12); ADD(20); ADD(21); + SUB(14); SUB(22); SUB(23); NEXT; // A3 - ADD( 21 ); ADD( 21 ); ADD( 16 ); ADD( 13 ); ADD( 12 ); ADD( 20 ); ADD( 22 ); - SUB( 15 ); SUB( 23 ); SUB( 23 ); NEXT; // A4 + ADD(21); ADD(21); ADD(16); ADD(13); ADD(12); ADD(20); ADD(22); + SUB(15); SUB(23); SUB(23); NEXT; // A4 - ADD( 22 ); ADD( 22 ); ADD( 17 ); ADD( 14 ); ADD( 13 ); ADD( 21 ); ADD( 23 ); - SUB( 16 ); NEXT; // A5 + ADD(22); ADD(22); ADD(17); ADD(14); ADD(13); ADD(21); ADD(23); + SUB(16); NEXT; // A5 - ADD( 23 ); ADD( 23 ); ADD( 18 ); ADD( 15 ); ADD( 14 ); ADD( 22 ); - SUB( 17 ); NEXT; // A6 + ADD(23); ADD(23); ADD(18); ADD(15); ADD(14); ADD(22); + SUB(17); NEXT; // A6 - ADD( 19 ); ADD( 16 ); ADD( 15 ); ADD( 23 ); - SUB( 18 ); NEXT; // A7 + ADD(19); ADD(16); ADD(15); ADD(23); + SUB(18); NEXT; // A7 - ADD( 20 ); ADD( 17 ); ADD( 16 ); - SUB( 19 ); NEXT; // A8 + ADD(20); ADD(17); ADD(16); + SUB(19); NEXT; // A8 - ADD( 21 ); ADD( 18 ); ADD( 17 ); - SUB( 20 ); NEXT; // A9 + ADD(21); ADD(18); ADD(17); + SUB(20); NEXT; // A9 - ADD( 22 ); ADD( 19 ); ADD( 18 ); - SUB( 21 ); NEXT; // A10 + ADD(22); ADD(19); ADD(18); + SUB(21); NEXT; // A10 - ADD( 23 ); ADD( 20 ); ADD( 19 ); - SUB( 22 ); LAST; // A11 + ADD(23); ADD(20); ADD(19); + SUB(22); LAST; // A11 cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ @@ -5152,7 +5152,7 @@ cleanup: */ /* Size of p521 in terms of mbedtls_mpi_uint */ -#define P521_WIDTH ( 521 / 8 / sizeof( mbedtls_mpi_uint ) + 1 ) +#define P521_WIDTH (521 / 8 / sizeof(mbedtls_mpi_uint) + 1) /* Bits to keep in the most significant mbedtls_mpi_uint */ #define P521_MASK 0x01FF @@ -5161,7 +5161,7 @@ cleanup: * Fast quasi-reduction modulo p521 (FIPS 186-3 D.2.5) * Write N as A1 + 2^521 A0, return A0 + A1 */ -static int ecp_mod_p521( mbedtls_mpi *N ) +static int ecp_mod_p521(mbedtls_mpi *N) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -5171,28 +5171,31 @@ static int ecp_mod_p521( mbedtls_mpi *N ) * we need to hold bits 513 to 1056, which is 34 limbs, that is * P521_WIDTH + 1. Otherwise P521_WIDTH is enough. */ - if( N->n < P521_WIDTH ) - return( 0 ); + if (N->n < P521_WIDTH) { + return 0; + } /* M = A1 */ M.s = 1; - M.n = N->n - ( P521_WIDTH - 1 ); - if( M.n > P521_WIDTH + 1 ) + M.n = N->n - (P521_WIDTH - 1); + if (M.n > P521_WIDTH + 1) { M.n = P521_WIDTH + 1; + } M.p = Mp; - memcpy( Mp, N->p + P521_WIDTH - 1, M.n * sizeof( mbedtls_mpi_uint ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &M, 521 % ( 8 * sizeof( mbedtls_mpi_uint ) ) ) ); + memcpy(Mp, N->p + P521_WIDTH - 1, M.n * sizeof(mbedtls_mpi_uint)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, 521 % (8 * sizeof(mbedtls_mpi_uint)))); /* N = A0 */ N->p[P521_WIDTH - 1] &= P521_MASK; - for( i = P521_WIDTH; i < N->n; i++ ) + for (i = P521_WIDTH; i < N->n; i++) { N->p[i] = 0; + } /* N = A0 + A1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_abs( N, N, &M ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M)); cleanup: - return( ret ); + return ret; } #undef P521_WIDTH @@ -5204,47 +5207,49 @@ cleanup: #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) /* Size of p255 in terms of mbedtls_mpi_uint */ -#define P255_WIDTH ( 255 / 8 / sizeof( mbedtls_mpi_uint ) + 1 ) +#define P255_WIDTH (255 / 8 / sizeof(mbedtls_mpi_uint) + 1) /* * Fast quasi-reduction modulo p255 = 2^255 - 19 * Write N as A0 + 2^256 A1, return A0 + 38 * A1 */ -static int ecp_mod_p255( mbedtls_mpi *N ) +static int ecp_mod_p255(mbedtls_mpi *N) { mbedtls_mpi_uint Mp[P255_WIDTH]; /* Helper references for top part of N */ mbedtls_mpi_uint * const NT_p = N->p + P255_WIDTH; const size_t NT_n = N->n - P255_WIDTH; - if( N->n <= P255_WIDTH ) - return( 0 ); - if( NT_n > P255_WIDTH ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (N->n <= P255_WIDTH) { + return 0; + } + if (NT_n > P255_WIDTH) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } /* Split N as N + 2^256 M */ - memcpy( Mp, NT_p, sizeof( mbedtls_mpi_uint ) * NT_n ); - memset( NT_p, 0, sizeof( mbedtls_mpi_uint ) * NT_n ); + memcpy(Mp, NT_p, sizeof(mbedtls_mpi_uint) * NT_n); + memset(NT_p, 0, sizeof(mbedtls_mpi_uint) * NT_n); /* N = A0 + 38 * A1 */ - mbedtls_mpi_core_mla( N->p, P255_WIDTH + 1, - Mp, NT_n, - 38 ); + mbedtls_mpi_core_mla(N->p, P255_WIDTH + 1, + Mp, NT_n, + 38); - return( 0 ); + return 0; } #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) /* Size of p448 in terms of mbedtls_mpi_uint */ -#define P448_WIDTH ( 448 / 8 / sizeof( mbedtls_mpi_uint ) ) +#define P448_WIDTH (448 / 8 / sizeof(mbedtls_mpi_uint)) /* Number of limbs fully occupied by 2^224 (max), and limbs used by it (min) */ -#define DIV_ROUND_UP( X, Y ) ( ( ( X ) + ( Y ) - 1 ) / ( Y ) ) -#define P224_WIDTH_MIN ( 28 / sizeof( mbedtls_mpi_uint ) ) -#define P224_WIDTH_MAX DIV_ROUND_UP( 28, sizeof( mbedtls_mpi_uint ) ) -#define P224_UNUSED_BITS ( ( P224_WIDTH_MAX * sizeof( mbedtls_mpi_uint ) * 8 ) - 224 ) +#define DIV_ROUND_UP(X, Y) (((X) + (Y) -1) / (Y)) +#define P224_WIDTH_MIN (28 / sizeof(mbedtls_mpi_uint)) +#define P224_WIDTH_MAX DIV_ROUND_UP(28, sizeof(mbedtls_mpi_uint)) +#define P224_UNUSED_BITS ((P224_WIDTH_MAX * sizeof(mbedtls_mpi_uint) * 8) - 224) /* * Fast quasi-reduction modulo p448 = 2^448 - 2^224 - 1 @@ -5257,52 +5262,57 @@ static int ecp_mod_p255( mbedtls_mpi *N ) * but for 64-bit targets it should use half the number of operations if we do * the reduction with 224-bit limbs, since mpi_add_mpi will then use 64-bit adds. */ -static int ecp_mod_p448( mbedtls_mpi *N ) +static int ecp_mod_p448(mbedtls_mpi *N) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; mbedtls_mpi M, Q; mbedtls_mpi_uint Mp[P448_WIDTH + 1], Qp[P448_WIDTH]; - if( N->n <= P448_WIDTH ) - return( 0 ); + if (N->n <= P448_WIDTH) { + return 0; + } /* M = A1 */ M.s = 1; - M.n = N->n - ( P448_WIDTH ); - if( M.n > P448_WIDTH ) + M.n = N->n - (P448_WIDTH); + if (M.n > P448_WIDTH) { /* Shouldn't be called with N larger than 2^896! */ - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } M.p = Mp; - memset( Mp, 0, sizeof( Mp ) ); - memcpy( Mp, N->p + P448_WIDTH, M.n * sizeof( mbedtls_mpi_uint ) ); + memset(Mp, 0, sizeof(Mp)); + memcpy(Mp, N->p + P448_WIDTH, M.n * sizeof(mbedtls_mpi_uint)); /* N = A0 */ - for( i = P448_WIDTH; i < N->n; i++ ) + for (i = P448_WIDTH; i < N->n; i++) { N->p[i] = 0; + } /* N += A1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( N, N, &M ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &M)); /* Q = B1, N += B1 */ Q = M; Q.p = Qp; - memcpy( Qp, Mp, sizeof( Qp ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &Q, 224 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( N, N, &Q ) ); + memcpy(Qp, Mp, sizeof(Qp)); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&Q, 224)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &Q)); /* M = (B0 + B1) * 2^224, N += M */ - if( sizeof( mbedtls_mpi_uint ) > 4 ) - Mp[P224_WIDTH_MIN] &= ( (mbedtls_mpi_uint)-1 ) >> ( P224_UNUSED_BITS ); - for( i = P224_WIDTH_MAX; i < M.n; ++i ) + if (sizeof(mbedtls_mpi_uint) > 4) { + Mp[P224_WIDTH_MIN] &= ((mbedtls_mpi_uint)-1) >> (P224_UNUSED_BITS); + } + for (i = P224_WIDTH_MAX; i < M.n; ++i) { Mp[i] = 0; - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &M, &M, &Q ) ); + } + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&M, &M, &Q)); M.n = P448_WIDTH + 1; /* Make room for shifted carry bit from the addition */ - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_l( &M, 224 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( N, N, &M ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&M, 224)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(N, N, &M)); cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */ @@ -5316,18 +5326,19 @@ cleanup: * Write N as A0 + 2^224 A1, return A0 + R * A1. * Actually do two passes, since R is big. */ -#define P_KOBLITZ_MAX ( 256 / 8 / sizeof( mbedtls_mpi_uint ) ) // Max limbs in P -#define P_KOBLITZ_R ( 8 / sizeof( mbedtls_mpi_uint ) ) // Limbs in R -static inline int ecp_mod_koblitz( mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p_limbs, - size_t adjust, size_t shift, mbedtls_mpi_uint mask ) +#define P_KOBLITZ_MAX (256 / 8 / sizeof(mbedtls_mpi_uint)) // Max limbs in P +#define P_KOBLITZ_R (8 / sizeof(mbedtls_mpi_uint)) // Limbs in R +static inline int ecp_mod_koblitz(mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p_limbs, + size_t adjust, size_t shift, mbedtls_mpi_uint mask) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; mbedtls_mpi M, R; mbedtls_mpi_uint Mp[P_KOBLITZ_MAX + P_KOBLITZ_R + 1]; - if( N->n < p_limbs ) - return( 0 ); + if (N->n < p_limbs) { + return 0; + } /* Init R */ R.s = 1; @@ -5339,49 +5350,57 @@ static inline int ecp_mod_koblitz( mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t M.p = Mp; /* M = A1 */ - M.n = N->n - ( p_limbs - adjust ); - if( M.n > p_limbs + adjust ) + M.n = N->n - (p_limbs - adjust); + if (M.n > p_limbs + adjust) { M.n = p_limbs + adjust; - memset( Mp, 0, sizeof Mp ); - memcpy( Mp, N->p + p_limbs - adjust, M.n * sizeof( mbedtls_mpi_uint ) ); - if( shift != 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &M, shift ) ); + } + memset(Mp, 0, sizeof Mp); + memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint)); + if (shift != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift)); + } M.n += R.n; /* Make room for multiplication by R */ /* N = A0 */ - if( mask != 0 ) + if (mask != 0) { N->p[p_limbs - 1] &= mask; - for( i = p_limbs; i < N->n; i++ ) + } + for (i = p_limbs; i < N->n; i++) { N->p[i] = 0; + } /* N = A0 + R * A1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &M, &M, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_abs( N, N, &M ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&M, &M, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M)); /* Second pass */ /* M = A1 */ - M.n = N->n - ( p_limbs - adjust ); - if( M.n > p_limbs + adjust ) + M.n = N->n - (p_limbs - adjust); + if (M.n > p_limbs + adjust) { M.n = p_limbs + adjust; - memset( Mp, 0, sizeof Mp ); - memcpy( Mp, N->p + p_limbs - adjust, M.n * sizeof( mbedtls_mpi_uint ) ); - if( shift != 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &M, shift ) ); + } + memset(Mp, 0, sizeof Mp); + memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint)); + if (shift != 0) { + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift)); + } M.n += R.n; /* Make room for multiplication by R */ /* N = A0 */ - if( mask != 0 ) + if (mask != 0) { N->p[p_limbs - 1] &= mask; - for( i = p_limbs; i < N->n; i++ ) + } + for (i = p_limbs; i < N->n; i++) { N->p[i] = 0; + } /* N = A0 + R * A1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &M, &M, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_abs( N, N, &M ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&M, &M, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(N, N, &M)); cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED) || MBEDTLS_ECP_DP_SECP224K1_ENABLED) || @@ -5392,14 +5411,15 @@ cleanup: * Fast quasi-reduction modulo p192k1 = 2^192 - R, * with R = 2^32 + 2^12 + 2^8 + 2^7 + 2^6 + 2^3 + 1 = 0x0100001119 */ -static int ecp_mod_p192k1( mbedtls_mpi *N ) +static int ecp_mod_p192k1(mbedtls_mpi *N) { static mbedtls_mpi_uint Rp[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xC9, 0x11, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00 ) }; + MBEDTLS_BYTES_TO_T_UINT_8(0xC9, 0x11, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00) + }; - return( ecp_mod_koblitz( N, Rp, 192 / 8 / sizeof( mbedtls_mpi_uint ), 0, 0, - 0 ) ); + return ecp_mod_koblitz(N, Rp, 192 / 8 / sizeof(mbedtls_mpi_uint), 0, 0, + 0); } #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ @@ -5408,17 +5428,18 @@ static int ecp_mod_p192k1( mbedtls_mpi *N ) * Fast quasi-reduction modulo p224k1 = 2^224 - R, * with R = 2^32 + 2^12 + 2^11 + 2^9 + 2^7 + 2^4 + 2 + 1 = 0x0100001A93 */ -static int ecp_mod_p224k1( mbedtls_mpi *N ) +static int ecp_mod_p224k1(mbedtls_mpi *N) { static mbedtls_mpi_uint Rp[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0x93, 0x1A, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00 ) }; + MBEDTLS_BYTES_TO_T_UINT_8(0x93, 0x1A, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00) + }; #if defined(MBEDTLS_HAVE_INT64) - return( ecp_mod_koblitz( N, Rp, 4, 1, 32, 0xFFFFFFFF ) ); + return ecp_mod_koblitz(N, Rp, 4, 1, 32, 0xFFFFFFFF); #else - return( ecp_mod_koblitz( N, Rp, 224 / 8 / sizeof( mbedtls_mpi_uint ), 0, 0, - 0 ) ); + return ecp_mod_koblitz(N, Rp, 224 / 8 / sizeof(mbedtls_mpi_uint), 0, 0, + 0); #endif } @@ -5429,13 +5450,14 @@ static int ecp_mod_p224k1( mbedtls_mpi *N ) * Fast quasi-reduction modulo p256k1 = 2^256 - R, * with R = 2^32 + 2^9 + 2^8 + 2^7 + 2^6 + 2^4 + 1 = 0x01000003D1 */ -static int ecp_mod_p256k1( mbedtls_mpi *N ) +static int ecp_mod_p256k1(mbedtls_mpi *N) { static mbedtls_mpi_uint Rp[] = { - MBEDTLS_BYTES_TO_T_UINT_8( 0xD1, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00 ) }; - return( ecp_mod_koblitz( N, Rp, 256 / 8 / sizeof( mbedtls_mpi_uint ), 0, 0, - 0 ) ); + MBEDTLS_BYTES_TO_T_UINT_8(0xD1, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00) + }; + return ecp_mod_koblitz(N, Rp, 256 / 8 / sizeof(mbedtls_mpi_uint), 0, 0, + 0); } #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ diff --git a/library/ecp_internal_alt.h b/library/ecp_internal_alt.h index a7544aaf1..f663d6737 100644 --- a/library/ecp_internal_alt.h +++ b/library/ecp_internal_alt.h @@ -72,7 +72,7 @@ * * \return Non-zero if successful. */ -unsigned char mbedtls_internal_ecp_grp_capable( const mbedtls_ecp_group *grp ); +unsigned char mbedtls_internal_ecp_grp_capable(const mbedtls_ecp_group *grp); /** * \brief Initialise the Elliptic Curve Point module extension. @@ -89,7 +89,7 @@ unsigned char mbedtls_internal_ecp_grp_capable( const mbedtls_ecp_group *grp ); * * \return 0 if successful. */ -int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp ); +int mbedtls_internal_ecp_init(const mbedtls_ecp_group *grp); /** * \brief Frees and deallocates the Elliptic Curve Point module @@ -97,7 +97,7 @@ int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp ); * * \param grp The pointer to the group the module was initialised for. */ -void mbedtls_internal_ecp_free( const mbedtls_ecp_group *grp ); +void mbedtls_internal_ecp_free(const mbedtls_ecp_group *grp); #if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) @@ -117,9 +117,11 @@ void mbedtls_internal_ecp_free( const mbedtls_ecp_group *grp ); * * \return 0 if successful. */ -int mbedtls_internal_ecp_randomize_jac( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *pt, int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_internal_ecp_randomize_jac(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *pt, int (*f_rng)(void *, + unsigned char *, + size_t), + void *p_rng); #endif #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) @@ -162,9 +164,9 @@ int mbedtls_internal_ecp_randomize_jac( const mbedtls_ecp_group *grp, * * \return 0 if successful. */ -int mbedtls_internal_ecp_add_mixed( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, const mbedtls_ecp_point *P, - const mbedtls_ecp_point *Q ); +int mbedtls_internal_ecp_add_mixed(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, const mbedtls_ecp_point *P, + const mbedtls_ecp_point *Q); #endif /** @@ -187,8 +189,8 @@ int mbedtls_internal_ecp_add_mixed( const mbedtls_ecp_group *grp, * \return 0 if successful. */ #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) -int mbedtls_internal_ecp_double_jac( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, const mbedtls_ecp_point *P ); +int mbedtls_internal_ecp_double_jac(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, const mbedtls_ecp_point *P); #endif /** @@ -217,8 +219,8 @@ int mbedtls_internal_ecp_double_jac( const mbedtls_ecp_group *grp, * an error if one of the points is zero. */ #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) -int mbedtls_internal_ecp_normalize_jac_many( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *T[], size_t t_len ); +int mbedtls_internal_ecp_normalize_jac_many(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *T[], size_t t_len); #endif /** @@ -235,8 +237,8 @@ int mbedtls_internal_ecp_normalize_jac_many( const mbedtls_ecp_group *grp, * \return 0 if successful. */ #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) -int mbedtls_internal_ecp_normalize_jac( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *pt ); +int mbedtls_internal_ecp_normalize_jac(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *pt); #endif #endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ @@ -244,9 +246,12 @@ int mbedtls_internal_ecp_normalize_jac( const mbedtls_ecp_group *grp, #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) -int mbedtls_internal_ecp_double_add_mxz( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *R, mbedtls_ecp_point *S, const mbedtls_ecp_point *P, - const mbedtls_ecp_point *Q, const mbedtls_mpi *d ); +int mbedtls_internal_ecp_double_add_mxz(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, + mbedtls_ecp_point *S, + const mbedtls_ecp_point *P, + const mbedtls_ecp_point *Q, + const mbedtls_mpi *d); #endif /** @@ -265,9 +270,11 @@ int mbedtls_internal_ecp_double_add_mxz( const mbedtls_ecp_group *grp, * \return 0 if successful */ #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) -int mbedtls_internal_ecp_randomize_mxz( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *P, int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_internal_ecp_randomize_mxz(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *P, int (*f_rng)(void *, + unsigned char *, + size_t), + void *p_rng); #endif /** @@ -281,8 +288,8 @@ int mbedtls_internal_ecp_randomize_mxz( const mbedtls_ecp_group *grp, * \return 0 if successful */ #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) -int mbedtls_internal_ecp_normalize_mxz( const mbedtls_ecp_group *grp, - mbedtls_ecp_point *P ); +int mbedtls_internal_ecp_normalize_mxz(const mbedtls_ecp_group *grp, + mbedtls_ecp_point *P); #endif #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ @@ -290,4 +297,3 @@ int mbedtls_internal_ecp_normalize_mxz( const mbedtls_ecp_group *grp, #endif /* MBEDTLS_ECP_INTERNAL_ALT */ #endif /* ecp_internal_alt.h */ - diff --git a/library/ecp_invasive.h b/library/ecp_invasive.h index 71c770275..18815be08 100644 --- a/library/ecp_invasive.h +++ b/library/ecp_invasive.h @@ -44,7 +44,7 @@ * Behavior: * Set N to c * 2^bits + old_value_of_N. */ -void mbedtls_ecp_fix_negative( mbedtls_mpi *N, signed char c, size_t bits ); +void mbedtls_ecp_fix_negative(mbedtls_mpi *N, signed char c, size_t bits); #endif #if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) @@ -69,10 +69,10 @@ void mbedtls_ecp_fix_negative( mbedtls_mpi *N, signed char c, size_t bits ); * \return \c 0 on success. * \return \c MBEDTLS_ERR_ECP_xxx or MBEDTLS_ERR_MPI_xxx on failure. */ -int mbedtls_ecp_gen_privkey_mx( size_t n_bits, - mbedtls_mpi *d, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ecp_gen_privkey_mx(size_t n_bits, + mbedtls_mpi *d, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ diff --git a/library/entropy.c b/library/entropy.c index 545fd9db8..7e25f287f 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -39,20 +39,20 @@ #define ENTROPY_MAX_LOOP 256 /**< Maximum amount to loop before error */ -void mbedtls_entropy_init( mbedtls_entropy_context *ctx ) +void mbedtls_entropy_init(mbedtls_entropy_context *ctx) { ctx->source_count = 0; - memset( ctx->source, 0, sizeof( ctx->source ) ); + memset(ctx->source, 0, sizeof(ctx->source)); #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif ctx->accumulator_started = 0; #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) - mbedtls_sha512_init( &ctx->accumulator ); + mbedtls_sha512_init(&ctx->accumulator); #else - mbedtls_sha256_init( &ctx->accumulator ); + mbedtls_sha256_init(&ctx->accumulator); #endif /* Reminder: Update ENTROPY_HAVE_STRONG in the test files @@ -60,61 +60,62 @@ void mbedtls_entropy_init( mbedtls_entropy_context *ctx ) #if !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) - mbedtls_entropy_add_source( ctx, mbedtls_platform_entropy_poll, NULL, - MBEDTLS_ENTROPY_MIN_PLATFORM, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + mbedtls_entropy_add_source(ctx, mbedtls_platform_entropy_poll, NULL, + MBEDTLS_ENTROPY_MIN_PLATFORM, + MBEDTLS_ENTROPY_SOURCE_STRONG); #endif #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - mbedtls_entropy_add_source( ctx, mbedtls_hardware_poll, NULL, - MBEDTLS_ENTROPY_MIN_HARDWARE, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + mbedtls_entropy_add_source(ctx, mbedtls_hardware_poll, NULL, + MBEDTLS_ENTROPY_MIN_HARDWARE, + MBEDTLS_ENTROPY_SOURCE_STRONG); #endif #if defined(MBEDTLS_ENTROPY_NV_SEED) - mbedtls_entropy_add_source( ctx, mbedtls_nv_seed_poll, NULL, - MBEDTLS_ENTROPY_BLOCK_SIZE, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + mbedtls_entropy_add_source(ctx, mbedtls_nv_seed_poll, NULL, + MBEDTLS_ENTROPY_BLOCK_SIZE, + MBEDTLS_ENTROPY_SOURCE_STRONG); ctx->initial_entropy_run = 0; #endif #endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ } -void mbedtls_entropy_free( mbedtls_entropy_context *ctx ) +void mbedtls_entropy_free(mbedtls_entropy_context *ctx) { /* If the context was already free, don't call free() again. * This is important for mutexes which don't allow double-free. */ - if( ctx->accumulator_started == -1 ) + if (ctx->accumulator_started == -1) { return; + } #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_free( &ctx->mutex ); + mbedtls_mutex_free(&ctx->mutex); #endif #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) - mbedtls_sha512_free( &ctx->accumulator ); + mbedtls_sha512_free(&ctx->accumulator); #else - mbedtls_sha256_free( &ctx->accumulator ); + mbedtls_sha256_free(&ctx->accumulator); #endif #if defined(MBEDTLS_ENTROPY_NV_SEED) ctx->initial_entropy_run = 0; #endif ctx->source_count = 0; - mbedtls_platform_zeroize( ctx->source, sizeof( ctx->source ) ); + mbedtls_platform_zeroize(ctx->source, sizeof(ctx->source)); ctx->accumulator_started = -1; } -int mbedtls_entropy_add_source( mbedtls_entropy_context *ctx, - mbedtls_entropy_f_source_ptr f_source, void *p_source, - size_t threshold, int strong ) +int mbedtls_entropy_add_source(mbedtls_entropy_context *ctx, + mbedtls_entropy_f_source_ptr f_source, void *p_source, + size_t threshold, int strong) { int idx, ret = 0; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif idx = ctx->source_count; - if( idx >= MBEDTLS_ENTROPY_MAX_SOURCES ) - { + if (idx >= MBEDTLS_ENTROPY_MAX_SOURCES) { ret = MBEDTLS_ERR_ENTROPY_MAX_SOURCES; goto exit; } @@ -128,18 +129,19 @@ int mbedtls_entropy_add_source( mbedtls_entropy_context *ctx, exit: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } /* * Entropy accumulator update */ -static int entropy_update( mbedtls_entropy_context *ctx, unsigned char source_id, - const unsigned char *data, size_t len ) +static int entropy_update(mbedtls_entropy_context *ctx, unsigned char source_id, + const unsigned char *data, size_t len) { unsigned char header[2]; unsigned char tmp[MBEDTLS_ENTROPY_BLOCK_SIZE]; @@ -147,14 +149,15 @@ static int entropy_update( mbedtls_entropy_context *ctx, unsigned char source_id const unsigned char *p = data; int ret = 0; - if( use_len > MBEDTLS_ENTROPY_BLOCK_SIZE ) - { + if (use_len > MBEDTLS_ENTROPY_BLOCK_SIZE) { #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) - if( ( ret = mbedtls_sha512( data, len, tmp, 0 ) ) != 0 ) + if ((ret = mbedtls_sha512(data, len, tmp, 0)) != 0) { goto cleanup; + } #else - if( ( ret = mbedtls_sha256( data, len, tmp, 0 ) ) != 0 ) + if ((ret = mbedtls_sha256(data, len, tmp, 0)) != 0) { goto cleanup; + } #endif p = tmp; use_len = MBEDTLS_ENTROPY_BLOCK_SIZE; @@ -169,55 +172,61 @@ static int entropy_update( mbedtls_entropy_context *ctx, unsigned char source_id * gather entropy eventually execute this code. */ #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) - if( ctx->accumulator_started == 0 && - ( ret = mbedtls_sha512_starts( &ctx->accumulator, 0 ) ) != 0 ) + if (ctx->accumulator_started == 0 && + (ret = mbedtls_sha512_starts(&ctx->accumulator, 0)) != 0) { goto cleanup; - else + } else { ctx->accumulator_started = 1; - if( ( ret = mbedtls_sha512_update( &ctx->accumulator, header, 2 ) ) != 0 ) + } + if ((ret = mbedtls_sha512_update(&ctx->accumulator, header, 2)) != 0) { goto cleanup; - ret = mbedtls_sha512_update( &ctx->accumulator, p, use_len ); + } + ret = mbedtls_sha512_update(&ctx->accumulator, p, use_len); #else - if( ctx->accumulator_started == 0 && - ( ret = mbedtls_sha256_starts( &ctx->accumulator, 0 ) ) != 0 ) + if (ctx->accumulator_started == 0 && + (ret = mbedtls_sha256_starts(&ctx->accumulator, 0)) != 0) { goto cleanup; - else + } else { ctx->accumulator_started = 1; - if( ( ret = mbedtls_sha256_update( &ctx->accumulator, header, 2 ) ) != 0 ) + } + if ((ret = mbedtls_sha256_update(&ctx->accumulator, header, 2)) != 0) { goto cleanup; - ret = mbedtls_sha256_update( &ctx->accumulator, p, use_len ); + } + ret = mbedtls_sha256_update(&ctx->accumulator, p, use_len); #endif cleanup: - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); + mbedtls_platform_zeroize(tmp, sizeof(tmp)); - return( ret ); + return ret; } -int mbedtls_entropy_update_manual( mbedtls_entropy_context *ctx, - const unsigned char *data, size_t len ) +int mbedtls_entropy_update_manual(mbedtls_entropy_context *ctx, + const unsigned char *data, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - ret = entropy_update( ctx, MBEDTLS_ENTROPY_SOURCE_MANUAL, data, len ); + ret = entropy_update(ctx, MBEDTLS_ENTROPY_SOURCE_MANUAL, data, len); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } /* * Run through the different sources to add entropy to our accumulator */ -static int entropy_gather_internal( mbedtls_entropy_context *ctx ) +static int entropy_gather_internal(mbedtls_entropy_context *ctx) { int ret = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; int i; @@ -225,121 +234,125 @@ static int entropy_gather_internal( mbedtls_entropy_context *ctx ) unsigned char buf[MBEDTLS_ENTROPY_MAX_GATHER]; size_t olen; - if( ctx->source_count == 0 ) - return( MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED ); + if (ctx->source_count == 0) { + return MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED; + } /* * Run through our entropy sources */ - for( i = 0; i < ctx->source_count; i++ ) - { - if( ctx->source[i].strong == MBEDTLS_ENTROPY_SOURCE_STRONG ) + for (i = 0; i < ctx->source_count; i++) { + if (ctx->source[i].strong == MBEDTLS_ENTROPY_SOURCE_STRONG) { have_one_strong = 1; + } olen = 0; - if( ( ret = ctx->source[i].f_source( ctx->source[i].p_source, - buf, MBEDTLS_ENTROPY_MAX_GATHER, &olen ) ) != 0 ) - { + if ((ret = ctx->source[i].f_source(ctx->source[i].p_source, + buf, MBEDTLS_ENTROPY_MAX_GATHER, &olen)) != 0) { goto cleanup; } /* * Add if we actually gathered something */ - if( olen > 0 ) - { - if( ( ret = entropy_update( ctx, (unsigned char) i, - buf, olen ) ) != 0 ) - return( ret ); + if (olen > 0) { + if ((ret = entropy_update(ctx, (unsigned char) i, + buf, olen)) != 0) { + return ret; + } ctx->source[i].size += olen; } } - if( have_one_strong == 0 ) + if (have_one_strong == 0) { ret = MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE; + } cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - return( ret ); + return ret; } /* * Thread-safe wrapper for entropy_gather_internal() */ -int mbedtls_entropy_gather( mbedtls_entropy_context *ctx ) +int mbedtls_entropy_gather(mbedtls_entropy_context *ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - ret = entropy_gather_internal( ctx ); + ret = entropy_gather_internal(ctx); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } -int mbedtls_entropy_func( void *data, unsigned char *output, size_t len ) +int mbedtls_entropy_func(void *data, unsigned char *output, size_t len) { int ret, count = 0, i, thresholds_reached; size_t strong_size; mbedtls_entropy_context *ctx = (mbedtls_entropy_context *) data; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; - if( len > MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (len > MBEDTLS_ENTROPY_BLOCK_SIZE) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } #if defined(MBEDTLS_ENTROPY_NV_SEED) /* Update the NV entropy seed before generating any entropy for outside * use. */ - if( ctx->initial_entropy_run == 0 ) - { + if (ctx->initial_entropy_run == 0) { ctx->initial_entropy_run = 1; - if( ( ret = mbedtls_entropy_update_nv_seed( ctx ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_entropy_update_nv_seed(ctx)) != 0) { + return ret; + } } #endif #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif /* * Always gather extra entropy before a call */ - do - { - if( count++ > ENTROPY_MAX_LOOP ) - { + do { + if (count++ > ENTROPY_MAX_LOOP) { ret = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; goto exit; } - if( ( ret = entropy_gather_internal( ctx ) ) != 0 ) + if ((ret = entropy_gather_internal(ctx)) != 0) { goto exit; + } thresholds_reached = 1; strong_size = 0; - for( i = 0; i < ctx->source_count; i++ ) - { - if( ctx->source[i].size < ctx->source[i].threshold ) + for (i = 0; i < ctx->source_count; i++) { + if (ctx->source[i].size < ctx->source[i].threshold) { thresholds_reached = 0; - if( ctx->source[i].strong == MBEDTLS_ENTROPY_SOURCE_STRONG ) + } + if (ctx->source[i].strong == MBEDTLS_ENTROPY_SOURCE_STRONG) { strong_size += ctx->source[i].size; + } } - } - while( ! thresholds_reached || strong_size < MBEDTLS_ENTROPY_BLOCK_SIZE ); + } while (!thresholds_reached || strong_size < MBEDTLS_ENTROPY_BLOCK_SIZE); - memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) /* @@ -347,112 +360,121 @@ int mbedtls_entropy_func( void *data, unsigned char *output, size_t len ) * in a previous call to entropy_update(). If this is not guaranteed, the * code below will fail. */ - if( ( ret = mbedtls_sha512_finish( &ctx->accumulator, buf ) ) != 0 ) + if ((ret = mbedtls_sha512_finish(&ctx->accumulator, buf)) != 0) { goto exit; + } /* * Reset accumulator and counters and recycle existing entropy */ - mbedtls_sha512_free( &ctx->accumulator ); - mbedtls_sha512_init( &ctx->accumulator ); - if( ( ret = mbedtls_sha512_starts( &ctx->accumulator, 0 ) ) != 0 ) + mbedtls_sha512_free(&ctx->accumulator); + mbedtls_sha512_init(&ctx->accumulator); + if ((ret = mbedtls_sha512_starts(&ctx->accumulator, 0)) != 0) { goto exit; - if( ( ret = mbedtls_sha512_update( &ctx->accumulator, buf, - MBEDTLS_ENTROPY_BLOCK_SIZE ) ) != 0 ) + } + if ((ret = mbedtls_sha512_update(&ctx->accumulator, buf, + MBEDTLS_ENTROPY_BLOCK_SIZE)) != 0) { goto exit; + } /* * Perform second SHA-512 on entropy */ - if( ( ret = mbedtls_sha512( buf, MBEDTLS_ENTROPY_BLOCK_SIZE, - buf, 0 ) ) != 0 ) + if ((ret = mbedtls_sha512(buf, MBEDTLS_ENTROPY_BLOCK_SIZE, + buf, 0)) != 0) { goto exit; + } #else /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */ - if( ( ret = mbedtls_sha256_finish( &ctx->accumulator, buf ) ) != 0 ) + if ((ret = mbedtls_sha256_finish(&ctx->accumulator, buf)) != 0) { goto exit; + } /* * Reset accumulator and counters and recycle existing entropy */ - mbedtls_sha256_free( &ctx->accumulator ); - mbedtls_sha256_init( &ctx->accumulator ); - if( ( ret = mbedtls_sha256_starts( &ctx->accumulator, 0 ) ) != 0 ) + mbedtls_sha256_free(&ctx->accumulator); + mbedtls_sha256_init(&ctx->accumulator); + if ((ret = mbedtls_sha256_starts(&ctx->accumulator, 0)) != 0) { goto exit; - if( ( ret = mbedtls_sha256_update( &ctx->accumulator, buf, - MBEDTLS_ENTROPY_BLOCK_SIZE ) ) != 0 ) + } + if ((ret = mbedtls_sha256_update(&ctx->accumulator, buf, + MBEDTLS_ENTROPY_BLOCK_SIZE)) != 0) { goto exit; + } /* * Perform second SHA-256 on entropy */ - if( ( ret = mbedtls_sha256( buf, MBEDTLS_ENTROPY_BLOCK_SIZE, - buf, 0 ) ) != 0 ) + if ((ret = mbedtls_sha256(buf, MBEDTLS_ENTROPY_BLOCK_SIZE, + buf, 0)) != 0) { goto exit; + } #endif /* MBEDTLS_ENTROPY_SHA512_ACCUMULATOR */ - for( i = 0; i < ctx->source_count; i++ ) + for (i = 0; i < ctx->source_count; i++) { ctx->source[i].size = 0; + } - memcpy( output, buf, len ); + memcpy(output, buf, len); ret = 0; exit: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } #if defined(MBEDTLS_ENTROPY_NV_SEED) -int mbedtls_entropy_update_nv_seed( mbedtls_entropy_context *ctx ) +int mbedtls_entropy_update_nv_seed(mbedtls_entropy_context *ctx) { int ret = MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; /* Read new seed and write it to NV */ - if( ( ret = mbedtls_entropy_func( ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_entropy_func(ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE)) != 0) { + return ret; + } - if( mbedtls_nv_seed_write( buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) < 0 ) - return( MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR ); + if (mbedtls_nv_seed_write(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) < 0) { + return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; + } /* Manually update the remaining stream with a separator value to diverge */ - memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); - ret = mbedtls_entropy_update_manual( ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); + ret = mbedtls_entropy_update_manual(ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE); - return( ret ); + return ret; } #endif /* MBEDTLS_ENTROPY_NV_SEED */ #if defined(MBEDTLS_FS_IO) -int mbedtls_entropy_write_seed_file( mbedtls_entropy_context *ctx, const char *path ) +int mbedtls_entropy_write_seed_file(mbedtls_entropy_context *ctx, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; FILE *f = NULL; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; - if( ( ret = mbedtls_entropy_func( ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) ) != 0 ) - { + if ((ret = mbedtls_entropy_func(ctx, buf, MBEDTLS_ENTROPY_BLOCK_SIZE)) != 0) { ret = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; goto exit; } - if( ( f = fopen( path, "wb" ) ) == NULL ) - { + if ((f = fopen(path, "wb")) == NULL) { ret = MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; goto exit; } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - if( fwrite( buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f ) != MBEDTLS_ENTROPY_BLOCK_SIZE ) - { + if (fwrite(buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f) != MBEDTLS_ENTROPY_BLOCK_SIZE) { ret = MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; goto exit; } @@ -460,47 +482,52 @@ int mbedtls_entropy_write_seed_file( mbedtls_entropy_context *ctx, const char *p ret = 0; exit: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - if( f != NULL ) - fclose( f ); + if (f != NULL) { + fclose(f); + } - return( ret ); + return ret; } -int mbedtls_entropy_update_seed_file( mbedtls_entropy_context *ctx, const char *path ) +int mbedtls_entropy_update_seed_file(mbedtls_entropy_context *ctx, const char *path) { int ret = 0; FILE *f; size_t n; - unsigned char buf[ MBEDTLS_ENTROPY_MAX_SEED_SIZE ]; + unsigned char buf[MBEDTLS_ENTROPY_MAX_SEED_SIZE]; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - fseek( f, 0, SEEK_END ); - n = (size_t) ftell( f ); - fseek( f, 0, SEEK_SET ); + fseek(f, 0, SEEK_END); + n = (size_t) ftell(f); + fseek(f, 0, SEEK_SET); - if( n > MBEDTLS_ENTROPY_MAX_SEED_SIZE ) + if (n > MBEDTLS_ENTROPY_MAX_SEED_SIZE) { n = MBEDTLS_ENTROPY_MAX_SEED_SIZE; + } - if( fread( buf, 1, n, f ) != n ) + if (fread(buf, 1, n, f) != n) { ret = MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR; - else - ret = mbedtls_entropy_update_manual( ctx, buf, n ); + } else { + ret = mbedtls_entropy_update_manual(ctx, buf, n); + } - fclose( f ); + fclose(f); - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } - return( mbedtls_entropy_write_seed_file( ctx, path ) ); + return mbedtls_entropy_write_seed_file(ctx, path); } #endif /* MBEDTLS_FS_IO */ @@ -508,59 +535,57 @@ int mbedtls_entropy_update_seed_file( mbedtls_entropy_context *ctx, const char * /* * Dummy source function */ -static int entropy_dummy_source( void *data, unsigned char *output, - size_t len, size_t *olen ) +static int entropy_dummy_source(void *data, unsigned char *output, + size_t len, size_t *olen) { ((void) data); - memset( output, 0x2a, len ); + memset(output, 0x2a, len); *olen = len; - return( 0 ); + return 0; } #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) -static int mbedtls_entropy_source_self_test_gather( unsigned char *buf, size_t buf_len ) +static int mbedtls_entropy_source_self_test_gather(unsigned char *buf, size_t buf_len) { int ret = 0; size_t entropy_len = 0; size_t olen = 0; size_t attempts = buf_len; - while( attempts > 0 && entropy_len < buf_len ) - { - if( ( ret = mbedtls_hardware_poll( NULL, buf + entropy_len, - buf_len - entropy_len, &olen ) ) != 0 ) - return( ret ); + while (attempts > 0 && entropy_len < buf_len) { + if ((ret = mbedtls_hardware_poll(NULL, buf + entropy_len, + buf_len - entropy_len, &olen)) != 0) { + return ret; + } entropy_len += olen; attempts--; } - if( entropy_len < buf_len ) - { + if (entropy_len < buf_len) { ret = 1; } - return( ret ); + return ret; } -static int mbedtls_entropy_source_self_test_check_bits( const unsigned char *buf, - size_t buf_len ) +static int mbedtls_entropy_source_self_test_check_bits(const unsigned char *buf, + size_t buf_len) { - unsigned char set= 0xFF; + unsigned char set = 0xFF; unsigned char unset = 0x00; size_t i; - for( i = 0; i < buf_len; i++ ) - { + for (i = 0; i < buf_len; i++) { set &= buf[i]; unset |= buf[i]; } - return( set == 0xFF || unset == 0x00 ); + return set == 0xFF || unset == 0x00; } /* @@ -574,45 +599,50 @@ static int mbedtls_entropy_source_self_test_check_bits( const unsigned char *buf * are not equal. * - The error code returned by the entropy source is not an error. */ -int mbedtls_entropy_source_self_test( int verbose ) +int mbedtls_entropy_source_self_test(int verbose) { int ret = 0; - unsigned char buf0[2 * sizeof( unsigned long long int )]; - unsigned char buf1[2 * sizeof( unsigned long long int )]; + unsigned char buf0[2 * sizeof(unsigned long long int)]; + unsigned char buf1[2 * sizeof(unsigned long long int)]; - if( verbose != 0 ) - mbedtls_printf( " ENTROPY_BIAS test: " ); + if (verbose != 0) { + mbedtls_printf(" ENTROPY_BIAS test: "); + } - memset( buf0, 0x00, sizeof( buf0 ) ); - memset( buf1, 0x00, sizeof( buf1 ) ); + memset(buf0, 0x00, sizeof(buf0)); + memset(buf1, 0x00, sizeof(buf1)); - if( ( ret = mbedtls_entropy_source_self_test_gather( buf0, sizeof( buf0 ) ) ) != 0 ) + if ((ret = mbedtls_entropy_source_self_test_gather(buf0, sizeof(buf0))) != 0) { goto cleanup; - if( ( ret = mbedtls_entropy_source_self_test_gather( buf1, sizeof( buf1 ) ) ) != 0 ) + } + if ((ret = mbedtls_entropy_source_self_test_gather(buf1, sizeof(buf1))) != 0) { goto cleanup; + } /* Make sure that the returned values are not all 0 or 1 */ - if( ( ret = mbedtls_entropy_source_self_test_check_bits( buf0, sizeof( buf0 ) ) ) != 0 ) + if ((ret = mbedtls_entropy_source_self_test_check_bits(buf0, sizeof(buf0))) != 0) { goto cleanup; - if( ( ret = mbedtls_entropy_source_self_test_check_bits( buf1, sizeof( buf1 ) ) ) != 0 ) + } + if ((ret = mbedtls_entropy_source_self_test_check_bits(buf1, sizeof(buf1))) != 0) { goto cleanup; + } /* Make sure that the entropy source is not returning values in a * pattern */ - ret = memcmp( buf0, buf1, sizeof( buf0 ) ) == 0; + ret = memcmp(buf0, buf1, sizeof(buf0)) == 0; cleanup: - if( verbose != 0 ) - { - if( ret != 0 ) - mbedtls_printf( "failed\n" ); - else - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + if (ret != 0) { + mbedtls_printf("failed\n"); + } else { + mbedtls_printf("passed\n"); + } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } - return( ret != 0 ); + return ret != 0; } #endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ @@ -622,7 +652,7 @@ cleanup: * test that the functions don't cause errors and write the correct * amount of data to buffers. */ -int mbedtls_entropy_self_test( int verbose ) +int mbedtls_entropy_self_test(int verbose) { int ret = 1; mbedtls_entropy_context ctx; @@ -630,22 +660,26 @@ int mbedtls_entropy_self_test( int verbose ) unsigned char acc[MBEDTLS_ENTROPY_BLOCK_SIZE] = { 0 }; size_t i, j; - if( verbose != 0 ) - mbedtls_printf( " ENTROPY test: " ); + if (verbose != 0) { + mbedtls_printf(" ENTROPY test: "); + } - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); /* First do a gather to make sure we have default sources */ - if( ( ret = mbedtls_entropy_gather( &ctx ) ) != 0 ) + if ((ret = mbedtls_entropy_gather(&ctx)) != 0) { goto cleanup; + } - ret = mbedtls_entropy_add_source( &ctx, entropy_dummy_source, NULL, 16, - MBEDTLS_ENTROPY_SOURCE_WEAK ); - if( ret != 0 ) + ret = mbedtls_entropy_add_source(&ctx, entropy_dummy_source, NULL, 16, + MBEDTLS_ENTROPY_SOURCE_WEAK); + if (ret != 0) { goto cleanup; + } - if( ( ret = mbedtls_entropy_update_manual( &ctx, buf, sizeof buf ) ) != 0 ) + if ((ret = mbedtls_entropy_update_manual(&ctx, buf, sizeof buf)) != 0) { goto cleanup; + } /* * To test that mbedtls_entropy_func writes correct number of bytes: @@ -655,43 +689,43 @@ int mbedtls_entropy_self_test( int verbose ) * each of the 32 or 64 bytes to be non-zero has a false failure rate * of at most 2^(-58) which is acceptable. */ - for( i = 0; i < 8; i++ ) - { - if( ( ret = mbedtls_entropy_func( &ctx, buf, sizeof( buf ) ) ) != 0 ) + for (i = 0; i < 8; i++) { + if ((ret = mbedtls_entropy_func(&ctx, buf, sizeof(buf))) != 0) { goto cleanup; + } - for( j = 0; j < sizeof( buf ); j++ ) + for (j = 0; j < sizeof(buf); j++) { acc[j] |= buf[j]; + } } - for( j = 0; j < sizeof( buf ); j++ ) - { - if( acc[j] == 0 ) - { + for (j = 0; j < sizeof(buf); j++) { + if (acc[j] == 0) { ret = 1; goto cleanup; } } #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - if( ( ret = mbedtls_entropy_source_self_test( 0 ) ) != 0 ) + if ((ret = mbedtls_entropy_source_self_test(0)) != 0) { goto cleanup; + } #endif cleanup: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); - if( verbose != 0 ) - { - if( ret != 0 ) - mbedtls_printf( "failed\n" ); - else - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + if (ret != 0) { + mbedtls_printf("failed\n"); + } else { + mbedtls_printf("passed\n"); + } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } - return( ret != 0 ); + return ret != 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/entropy_poll.c b/library/entropy_poll.c index 2df9bbec9..b5024c83f 100644 --- a/library/entropy_poll.c +++ b/library/entropy_poll.c @@ -42,7 +42,8 @@ #if !defined(unix) && !defined(__unix__) && !defined(__unix) && \ !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \ !defined(__HAIKU__) && !defined(__midipix__) -#error "Platform entropy sources only work on Unix and Windows, see MBEDTLS_NO_PLATFORM_ENTROPY in mbedtls_config.h" +#error \ + "Platform entropy sources only work on Unix and Windows, see MBEDTLS_NO_PLATFORM_ENTROPY in mbedtls_config.h" #endif #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) @@ -53,29 +54,27 @@ #include #include -int mbedtls_platform_entropy_poll( void *data, unsigned char *output, size_t len, - size_t *olen ) +int mbedtls_platform_entropy_poll(void *data, unsigned char *output, size_t len, + size_t *olen) { HCRYPTPROV provider; ((void) data); *olen = 0; - if( CryptAcquireContext( &provider, NULL, NULL, - PROV_RSA_FULL, CRYPT_VERIFYCONTEXT ) == FALSE ) - { - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (CryptAcquireContext(&provider, NULL, NULL, + PROV_RSA_FULL, CRYPT_VERIFYCONTEXT) == FALSE) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - if( CryptGenRandom( provider, (DWORD) len, output ) == FALSE ) - { - CryptReleaseContext( provider, 0 ); - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (CryptGenRandom(provider, (DWORD) len, output) == FALSE) { + CryptReleaseContext(provider, 0); + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - CryptReleaseContext( provider, 0 ); + CryptReleaseContext(provider, 0); *olen = len; - return( 0 ); + return 0; } #else /* _WIN32 && !EFIX64 && !EFI32 */ @@ -91,15 +90,15 @@ int mbedtls_platform_entropy_poll( void *data, unsigned char *output, size_t len #define HAVE_GETRANDOM #include -static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) +static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags) { /* MemSan cannot understand that the syscall writes to the buffer */ #if defined(__has_feature) #if __has_feature(memory_sanitizer) - memset( buf, 0, buflen ); + memset(buf, 0, buflen); #endif #endif - return( syscall( SYS_getrandom, buf, buflen, flags ) ); + return syscall(SYS_getrandom, buf, buflen, flags); } #endif /* SYS_getrandom */ #endif /* __linux__ || __midipix__ */ @@ -111,9 +110,9 @@ static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) #include #include #define HAVE_GETRANDOM -static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) +static int getrandom_wrapper(void *buf, size_t buflen, unsigned int flags) { - return getrandom( buf, buflen, flags ); + return getrandom(buf, buflen, flags); } #endif /* (__FreeBSD__ && __FreeBSD_version >= 1200000) || (__DragonFly__ && __DragonFly_version >= 500700) */ @@ -133,7 +132,7 @@ static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) #if defined(KERN_ARND) #define HAVE_SYSCTL_ARND -static int sysctl_arnd_wrapper( unsigned char *buf, size_t buflen ) +static int sysctl_arnd_wrapper(unsigned char *buf, size_t buflen) { int name[2]; size_t len; @@ -141,23 +140,23 @@ static int sysctl_arnd_wrapper( unsigned char *buf, size_t buflen ) name[0] = CTL_KERN; name[1] = KERN_ARND; - while( buflen > 0 ) - { + while (buflen > 0) { len = buflen > 256 ? 256 : buflen; - if( sysctl(name, 2, buf, &len, NULL, 0) == -1 ) - return( -1 ); + if (sysctl(name, 2, buf, &len, NULL, 0) == -1) { + return -1; + } buflen -= len; buf += len; } - return( 0 ); + return 0; } #endif /* KERN_ARND */ #endif /* __FreeBSD__ || __NetBSD__ */ #include -int mbedtls_platform_entropy_poll( void *data, - unsigned char *output, size_t len, size_t *olen ) +int mbedtls_platform_entropy_poll(void *data, + unsigned char *output, size_t len, size_t *olen) { FILE *file; size_t read_len; @@ -165,14 +164,13 @@ int mbedtls_platform_entropy_poll( void *data, ((void) data); #if defined(HAVE_GETRANDOM) - ret = getrandom_wrapper( output, len, 0 ); - if( ret >= 0 ) - { + ret = getrandom_wrapper(output, len, 0); + if (ret >= 0) { *olen = ret; - return( 0 ); + return 0; + } else if (errno != ENOSYS) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - else if( errno != ENOSYS ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); /* Fall through if the system call isn't known. */ #else ((void) ret); @@ -181,57 +179,60 @@ int mbedtls_platform_entropy_poll( void *data, #if defined(HAVE_SYSCTL_ARND) ((void) file); ((void) read_len); - if( sysctl_arnd_wrapper( output, len ) == -1 ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (sysctl_arnd_wrapper(output, len) == -1) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } *olen = len; - return( 0 ); + return 0; #else *olen = 0; - file = fopen( "/dev/urandom", "rb" ); - if( file == NULL ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); - - /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( file, NULL ); - - read_len = fread( output, 1, len, file ); - if( read_len != len ) - { - fclose( file ); - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + file = fopen("/dev/urandom", "rb"); + if (file == NULL) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - fclose( file ); + /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ + mbedtls_setbuf(file, NULL); + + read_len = fread(output, 1, len, file); + if (read_len != len) { + fclose(file); + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } + + fclose(file); *olen = len; - return( 0 ); + return 0; #endif /* HAVE_SYSCTL_ARND */ } #endif /* _WIN32 && !EFIX64 && !EFI32 */ #endif /* !MBEDTLS_NO_PLATFORM_ENTROPY */ #if defined(MBEDTLS_ENTROPY_NV_SEED) -int mbedtls_nv_seed_poll( void *data, - unsigned char *output, size_t len, size_t *olen ) +int mbedtls_nv_seed_poll(void *data, + unsigned char *output, size_t len, size_t *olen) { unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; size_t use_len = MBEDTLS_ENTROPY_BLOCK_SIZE; ((void) data); - memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); - if( mbedtls_nv_seed_read( buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) < 0 ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (mbedtls_nv_seed_read(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) < 0) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } - if( len < use_len ) - use_len = len; + if (len < use_len) { + use_len = len; + } - memcpy( output, buf, use_len ); + memcpy(output, buf, use_len); *olen = use_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_ENTROPY_NV_SEED */ diff --git a/library/entropy_poll.h b/library/entropy_poll.h index aef1a0977..3cfd4a444 100644 --- a/library/entropy_poll.h +++ b/library/entropy_poll.h @@ -42,8 +42,8 @@ extern "C" { /** * \brief Platform-specific entropy poll callback */ -int mbedtls_platform_entropy_poll( void *data, - unsigned char *output, size_t len, size_t *olen ); +int mbedtls_platform_entropy_poll(void *data, + unsigned char *output, size_t len, size_t *olen); #endif #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) @@ -55,8 +55,8 @@ int mbedtls_platform_entropy_poll( void *data, * * \note This must accept NULL as its first argument. */ -int mbedtls_hardware_poll( void *data, - unsigned char *output, size_t len, size_t *olen ); +int mbedtls_hardware_poll(void *data, + unsigned char *output, size_t len, size_t *olen); #endif #if defined(MBEDTLS_ENTROPY_NV_SEED) @@ -65,8 +65,8 @@ int mbedtls_hardware_poll( void *data, * * \note This must accept NULL as its first argument. */ -int mbedtls_nv_seed_poll( void *data, - unsigned char *output, size_t len, size_t *olen ); +int mbedtls_nv_seed_poll(void *data, + unsigned char *output, size_t len, size_t *olen); #endif #ifdef __cplusplus diff --git a/library/gcm.c b/library/gcm.c index 0178b5ba7..6d4495fd3 100644 --- a/library/gcm.c +++ b/library/gcm.c @@ -47,9 +47,9 @@ /* * Initialize a context */ -void mbedtls_gcm_init( mbedtls_gcm_context *ctx ) +void mbedtls_gcm_init(mbedtls_gcm_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_gcm_context ) ); + memset(ctx, 0, sizeof(mbedtls_gcm_context)); } /* @@ -60,7 +60,7 @@ void mbedtls_gcm_init( mbedtls_gcm_context *ctx ) * is the high-order bit of HH corresponds to P^0 and the low-order bit of HL * corresponds to P^127. */ -static int gcm_gen_table( mbedtls_gcm_context *ctx ) +static int gcm_gen_table(mbedtls_gcm_context *ctx) { int ret, i, j; uint64_t hi, lo; @@ -68,17 +68,18 @@ static int gcm_gen_table( mbedtls_gcm_context *ctx ) unsigned char h[16]; size_t olen = 0; - memset( h, 0, 16 ); - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, h, 16, h, &olen ) ) != 0 ) - return( ret ); + memset(h, 0, 16); + if ((ret = mbedtls_cipher_update(&ctx->cipher_ctx, h, 16, h, &olen)) != 0) { + return ret; + } /* pack h as two 64-bits ints, big-endian */ - hi = MBEDTLS_GET_UINT32_BE( h, 0 ); - lo = MBEDTLS_GET_UINT32_BE( h, 4 ); + hi = MBEDTLS_GET_UINT32_BE(h, 0); + lo = MBEDTLS_GET_UINT32_BE(h, 4); vh = (uint64_t) hi << 32 | lo; - hi = MBEDTLS_GET_UINT32_BE( h, 8 ); - lo = MBEDTLS_GET_UINT32_BE( h, 12 ); + hi = MBEDTLS_GET_UINT32_BE(h, 8); + lo = MBEDTLS_GET_UINT32_BE(h, 12); vl = (uint64_t) hi << 32 | lo; /* 8 = 1000 corresponds to 1 in GF(2^128) */ @@ -87,73 +88,75 @@ static int gcm_gen_table( mbedtls_gcm_context *ctx ) #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) /* With CLMUL support, we need only h, not the rest of the table */ - if( mbedtls_aesni_has_support( MBEDTLS_AESNI_CLMUL ) ) - return( 0 ); + if (mbedtls_aesni_has_support(MBEDTLS_AESNI_CLMUL)) { + return 0; + } #endif /* 0 corresponds to 0 in GF(2^128) */ ctx->HH[0] = 0; ctx->HL[0] = 0; - for( i = 4; i > 0; i >>= 1 ) - { - uint32_t T = ( vl & 1 ) * 0xe1000000U; - vl = ( vh << 63 ) | ( vl >> 1 ); - vh = ( vh >> 1 ) ^ ( (uint64_t) T << 32); + for (i = 4; i > 0; i >>= 1) { + uint32_t T = (vl & 1) * 0xe1000000U; + vl = (vh << 63) | (vl >> 1); + vh = (vh >> 1) ^ ((uint64_t) T << 32); ctx->HL[i] = vl; ctx->HH[i] = vh; } - for( i = 2; i <= 8; i *= 2 ) - { + for (i = 2; i <= 8; i *= 2) { uint64_t *HiL = ctx->HL + i, *HiH = ctx->HH + i; vh = *HiH; vl = *HiL; - for( j = 1; j < i; j++ ) - { + for (j = 1; j < i; j++) { HiH[j] = vh ^ ctx->HH[j]; HiL[j] = vl ^ ctx->HL[j]; } } - return( 0 ); + return 0; } -int mbedtls_gcm_setkey( mbedtls_gcm_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits ) +int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; - if( keybits != 128 && keybits != 192 && keybits != 256 ) + if (keybits != 128 && keybits != 192 && keybits != 256) { return MBEDTLS_ERR_GCM_BAD_INPUT; - - cipher_info = mbedtls_cipher_info_from_values( cipher, keybits, - MBEDTLS_MODE_ECB ); - if( cipher_info == NULL ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); - - if( cipher_info->block_size != 16 ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); - - mbedtls_cipher_free( &ctx->cipher_ctx ); - - if( ( ret = mbedtls_cipher_setup( &ctx->cipher_ctx, cipher_info ) ) != 0 ) - return( ret ); - - if( ( ret = mbedtls_cipher_setkey( &ctx->cipher_ctx, key, keybits, - MBEDTLS_ENCRYPT ) ) != 0 ) - { - return( ret ); } - if( ( ret = gcm_gen_table( ctx ) ) != 0 ) - return( ret ); + cipher_info = mbedtls_cipher_info_from_values(cipher, keybits, + MBEDTLS_MODE_ECB); + if (cipher_info == NULL) { + return MBEDTLS_ERR_GCM_BAD_INPUT; + } - return( 0 ); + if (cipher_info->block_size != 16) { + return MBEDTLS_ERR_GCM_BAD_INPUT; + } + + mbedtls_cipher_free(&ctx->cipher_ctx); + + if ((ret = mbedtls_cipher_setup(&ctx->cipher_ctx, cipher_info)) != 0) { + return ret; + } + + if ((ret = mbedtls_cipher_setkey(&ctx->cipher_ctx, key, keybits, + MBEDTLS_ENCRYPT)) != 0) { + return ret; + } + + if ((ret = gcm_gen_table(ctx)) != 0) { + return ret; + } + + return 0; } /* @@ -173,23 +176,23 @@ static const uint64_t last4[16] = * Sets output to x times H using the precomputed tables. * x and output are seen as elements of GF(2^128) as in [MGV]. */ -static void gcm_mult( mbedtls_gcm_context *ctx, const unsigned char x[16], - unsigned char output[16] ) +static void gcm_mult(mbedtls_gcm_context *ctx, const unsigned char x[16], + unsigned char output[16]) { int i = 0; unsigned char lo, hi, rem; uint64_t zh, zl; #if defined(MBEDTLS_AESNI_C) && defined(MBEDTLS_HAVE_X86_64) - if( mbedtls_aesni_has_support( MBEDTLS_AESNI_CLMUL ) ) { + if (mbedtls_aesni_has_support(MBEDTLS_AESNI_CLMUL)) { unsigned char h[16]; - MBEDTLS_PUT_UINT32_BE( ctx->HH[8] >> 32, h, 0 ); - MBEDTLS_PUT_UINT32_BE( ctx->HH[8], h, 4 ); - MBEDTLS_PUT_UINT32_BE( ctx->HL[8] >> 32, h, 8 ); - MBEDTLS_PUT_UINT32_BE( ctx->HL[8], h, 12 ); + MBEDTLS_PUT_UINT32_BE(ctx->HH[8] >> 32, h, 0); + MBEDTLS_PUT_UINT32_BE(ctx->HH[8], h, 4); + MBEDTLS_PUT_UINT32_BE(ctx->HL[8] >> 32, h, 8); + MBEDTLS_PUT_UINT32_BE(ctx->HL[8], h, 12); - mbedtls_aesni_gcm_mult( output, x, h ); + mbedtls_aesni_gcm_mult(output, x, h); return; } #endif /* MBEDTLS_AESNI_C && MBEDTLS_HAVE_X86_64 */ @@ -199,16 +202,14 @@ static void gcm_mult( mbedtls_gcm_context *ctx, const unsigned char x[16], zh = ctx->HH[lo]; zl = ctx->HL[lo]; - for( i = 15; i >= 0; i-- ) - { + for (i = 15; i >= 0; i--) { lo = x[i] & 0xf; - hi = ( x[i] >> 4 ) & 0xf; + hi = (x[i] >> 4) & 0xf; - if( i != 15 ) - { + if (i != 15) { rem = (unsigned char) zl & 0xf; - zl = ( zh << 60 ) | ( zl >> 4 ); - zh = ( zh >> 4 ); + zl = (zh << 60) | (zl >> 4); + zh = (zh >> 4); zh ^= (uint64_t) last4[rem] << 48; zh ^= ctx->HH[lo]; zl ^= ctx->HL[lo]; @@ -216,22 +217,22 @@ static void gcm_mult( mbedtls_gcm_context *ctx, const unsigned char x[16], } rem = (unsigned char) zl & 0xf; - zl = ( zh << 60 ) | ( zl >> 4 ); - zh = ( zh >> 4 ); + zl = (zh << 60) | (zl >> 4); + zh = (zh >> 4); zh ^= (uint64_t) last4[rem] << 48; zh ^= ctx->HH[hi]; zl ^= ctx->HL[hi]; } - MBEDTLS_PUT_UINT32_BE( zh >> 32, output, 0 ); - MBEDTLS_PUT_UINT32_BE( zh, output, 4 ); - MBEDTLS_PUT_UINT32_BE( zl >> 32, output, 8 ); - MBEDTLS_PUT_UINT32_BE( zl, output, 12 ); + MBEDTLS_PUT_UINT32_BE(zh >> 32, output, 0); + MBEDTLS_PUT_UINT32_BE(zh, output, 4); + MBEDTLS_PUT_UINT32_BE(zl >> 32, output, 8); + MBEDTLS_PUT_UINT32_BE(zl, output, 12); } -int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, - int mode, - const unsigned char *iv, size_t iv_len ) +int mbedtls_gcm_starts(mbedtls_gcm_context *ctx, + int mode, + const unsigned char *iv, size_t iv_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char work_buf[16]; @@ -241,52 +242,48 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, /* IV is limited to 2^64 bits, so 2^61 bytes */ /* IV is not allowed to be zero length */ - if( iv_len == 0 || (uint64_t) iv_len >> 61 != 0 ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); + if (iv_len == 0 || (uint64_t) iv_len >> 61 != 0) { + return MBEDTLS_ERR_GCM_BAD_INPUT; + } - memset( ctx->y, 0x00, sizeof(ctx->y) ); - memset( ctx->buf, 0x00, sizeof(ctx->buf) ); + memset(ctx->y, 0x00, sizeof(ctx->y)); + memset(ctx->buf, 0x00, sizeof(ctx->buf)); ctx->mode = mode; ctx->len = 0; ctx->add_len = 0; - if( iv_len == 12 ) - { - memcpy( ctx->y, iv, iv_len ); + if (iv_len == 12) { + memcpy(ctx->y, iv, iv_len); ctx->y[15] = 1; - } - else - { - memset( work_buf, 0x00, 16 ); - iv_bits = (uint64_t)iv_len * 8; - MBEDTLS_PUT_UINT64_BE( iv_bits, work_buf, 8 ); + } else { + memset(work_buf, 0x00, 16); + iv_bits = (uint64_t) iv_len * 8; + MBEDTLS_PUT_UINT64_BE(iv_bits, work_buf, 8); p = iv; - while( iv_len > 0 ) - { - use_len = ( iv_len < 16 ) ? iv_len : 16; + while (iv_len > 0) { + use_len = (iv_len < 16) ? iv_len : 16; - mbedtls_xor( ctx->y, ctx->y, p, use_len ); + mbedtls_xor(ctx->y, ctx->y, p, use_len); - gcm_mult( ctx, ctx->y, ctx->y ); + gcm_mult(ctx, ctx->y, ctx->y); iv_len -= use_len; p += use_len; } - mbedtls_xor( ctx->y, ctx->y, work_buf, 16); + mbedtls_xor(ctx->y, ctx->y, work_buf, 16); - gcm_mult( ctx, ctx->y, ctx->y ); + gcm_mult(ctx, ctx->y, ctx->y); } - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, - ctx->base_ectr, &olen ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, + ctx->base_ectr, &olen)) != 0) { + return ret; } - return( 0 ); + return 0; } /** @@ -306,29 +303,31 @@ int mbedtls_gcm_starts( mbedtls_gcm_context *ctx, * * len > 0 && len % 16 == 0: the authentication tag is correct if * the data ends now. */ -int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, - const unsigned char *add, size_t add_len ) +int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx, + const unsigned char *add, size_t add_len) { const unsigned char *p; size_t use_len, offset; /* IV is limited to 2^64 bits, so 2^61 bytes */ - if( (uint64_t) add_len >> 61 != 0 ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); + if ((uint64_t) add_len >> 61 != 0) { + return MBEDTLS_ERR_GCM_BAD_INPUT; + } offset = ctx->add_len % 16; p = add; - if( offset != 0 ) - { + if (offset != 0) { use_len = 16 - offset; - if( use_len > add_len ) + if (use_len > add_len) { use_len = add_len; + } - mbedtls_xor( ctx->buf + offset, ctx->buf + offset, p, use_len ); + mbedtls_xor(ctx->buf + offset, ctx->buf + offset, p, use_len); - if( offset + use_len == 16 ) - gcm_mult( ctx, ctx->buf, ctx->buf ); + if (offset + use_len == 16) { + gcm_mult(ctx, ctx->buf, ctx->buf); + } ctx->add_len += use_len; add_len -= use_len; @@ -337,110 +336,114 @@ int mbedtls_gcm_update_ad( mbedtls_gcm_context *ctx, ctx->add_len += add_len; - while( add_len >= 16 ) - { - mbedtls_xor( ctx->buf, ctx->buf, p, 16 ); + while (add_len >= 16) { + mbedtls_xor(ctx->buf, ctx->buf, p, 16); - gcm_mult( ctx, ctx->buf, ctx->buf ); + gcm_mult(ctx, ctx->buf, ctx->buf); add_len -= 16; p += 16; } - if( add_len > 0 ) - { - mbedtls_xor( ctx->buf, ctx->buf, p, add_len ); + if (add_len > 0) { + mbedtls_xor(ctx->buf, ctx->buf, p, add_len); } - return( 0 ); + return 0; } /* Increment the counter. */ -static void gcm_incr( unsigned char y[16] ) +static void gcm_incr(unsigned char y[16]) { size_t i; - for( i = 16; i > 12; i-- ) - if( ++y[i - 1] != 0 ) + for (i = 16; i > 12; i--) { + if (++y[i - 1] != 0) { break; + } + } } /* Calculate and apply the encryption mask. Process use_len bytes of data, * starting at position offset in the mask block. */ -static int gcm_mask( mbedtls_gcm_context *ctx, - unsigned char ectr[16], - size_t offset, size_t use_len, - const unsigned char *input, - unsigned char *output ) +static int gcm_mask(mbedtls_gcm_context *ctx, + unsigned char ectr[16], + size_t offset, size_t use_len, + const unsigned char *input, + unsigned char *output) { size_t olen = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_cipher_update( &ctx->cipher_ctx, ctx->y, 16, ectr, - &olen ) ) != 0 ) - { - mbedtls_platform_zeroize( ectr, 16 ); - return( ret ); + if ((ret = mbedtls_cipher_update(&ctx->cipher_ctx, ctx->y, 16, ectr, + &olen)) != 0) { + mbedtls_platform_zeroize(ectr, 16); + return ret; } - if( ctx->mode == MBEDTLS_GCM_DECRYPT ) - mbedtls_xor( ctx->buf + offset, ctx->buf + offset, input, use_len ); - mbedtls_xor( output, ectr + offset, input, use_len ); - if( ctx->mode == MBEDTLS_GCM_ENCRYPT ) - mbedtls_xor( ctx->buf + offset, ctx->buf + offset, output, use_len ); + if (ctx->mode == MBEDTLS_GCM_DECRYPT) { + mbedtls_xor(ctx->buf + offset, ctx->buf + offset, input, use_len); + } + mbedtls_xor(output, ectr + offset, input, use_len); + if (ctx->mode == MBEDTLS_GCM_ENCRYPT) { + mbedtls_xor(ctx->buf + offset, ctx->buf + offset, output, use_len); + } - return( 0 ); + return 0; } -int mbedtls_gcm_update( mbedtls_gcm_context *ctx, - const unsigned char *input, size_t input_length, - unsigned char *output, size_t output_size, - size_t *output_length ) +int mbedtls_gcm_update(mbedtls_gcm_context *ctx, + const unsigned char *input, size_t input_length, + unsigned char *output, size_t output_size, + size_t *output_length) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = input; unsigned char *out_p = output; size_t offset; - unsigned char ectr[16] = {0}; + unsigned char ectr[16] = { 0 }; - if( output_size < input_length ) - return( MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL ); + if (output_size < input_length) { + return MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL; + } *output_length = input_length; /* Exit early if input_length==0 so that we don't do any pointer arithmetic * on a potentially null pointer. * Returning early also means that the last partial block of AD remains * untouched for mbedtls_gcm_finish */ - if( input_length == 0 ) - return( 0 ); + if (input_length == 0) { + return 0; + } - if( output > input && (size_t) ( output - input ) < input_length ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); + if (output > input && (size_t) (output - input) < input_length) { + return MBEDTLS_ERR_GCM_BAD_INPUT; + } /* Total length is restricted to 2^39 - 256 bits, ie 2^36 - 2^5 bytes * Also check for possible overflow */ - if( ctx->len + input_length < ctx->len || - (uint64_t) ctx->len + input_length > 0xFFFFFFFE0ull ) - { - return( MBEDTLS_ERR_GCM_BAD_INPUT ); + if (ctx->len + input_length < ctx->len || + (uint64_t) ctx->len + input_length > 0xFFFFFFFE0ull) { + return MBEDTLS_ERR_GCM_BAD_INPUT; } - if( ctx->len == 0 && ctx->add_len % 16 != 0 ) - { - gcm_mult( ctx, ctx->buf, ctx->buf ); + if (ctx->len == 0 && ctx->add_len % 16 != 0) { + gcm_mult(ctx, ctx->buf, ctx->buf); } offset = ctx->len % 16; - if( offset != 0 ) - { + if (offset != 0) { size_t use_len = 16 - offset; - if( use_len > input_length ) + if (use_len > input_length) { use_len = input_length; + } - if( ( ret = gcm_mask( ctx, ectr, offset, use_len, p, out_p ) ) != 0 ) - return( ret ); + if ((ret = gcm_mask(ctx, ectr, offset, use_len, p, out_p)) != 0) { + return ret; + } - if( offset + use_len == 16 ) - gcm_mult( ctx, ctx->buf, ctx->buf ); + if (offset + use_len == 16) { + gcm_mult(ctx, ctx->buf, ctx->buf); + } ctx->len += use_len; input_length -= use_len; @@ -450,34 +453,34 @@ int mbedtls_gcm_update( mbedtls_gcm_context *ctx, ctx->len += input_length; - while( input_length >= 16 ) - { - gcm_incr( ctx->y ); - if( ( ret = gcm_mask( ctx, ectr, 0, 16, p, out_p ) ) != 0 ) - return( ret ); + while (input_length >= 16) { + gcm_incr(ctx->y); + if ((ret = gcm_mask(ctx, ectr, 0, 16, p, out_p)) != 0) { + return ret; + } - gcm_mult( ctx, ctx->buf, ctx->buf ); + gcm_mult(ctx, ctx->buf, ctx->buf); input_length -= 16; p += 16; out_p += 16; } - if( input_length > 0 ) - { - gcm_incr( ctx->y ); - if( ( ret = gcm_mask( ctx, ectr, 0, input_length, p, out_p ) ) != 0 ) - return( ret ); + if (input_length > 0) { + gcm_incr(ctx->y); + if ((ret = gcm_mask(ctx, ectr, 0, input_length, p, out_p)) != 0) { + return ret; + } } - mbedtls_platform_zeroize( ectr, sizeof( ectr ) ); - return( 0 ); + mbedtls_platform_zeroize(ectr, sizeof(ectr)); + return 0; } -int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, - unsigned char *output, size_t output_size, - size_t *output_length, - unsigned char *tag, size_t tag_len ) +int mbedtls_gcm_finish(mbedtls_gcm_context *ctx, + unsigned char *output, size_t output_size, + size_t *output_length, + unsigned char *tag, size_t tag_len) { unsigned char work_buf[16]; uint64_t orig_len; @@ -492,111 +495,115 @@ int mbedtls_gcm_finish( mbedtls_gcm_context *ctx, orig_len = ctx->len * 8; orig_add_len = ctx->add_len * 8; - if( ctx->len == 0 && ctx->add_len % 16 != 0 ) - { - gcm_mult( ctx, ctx->buf, ctx->buf ); + if (ctx->len == 0 && ctx->add_len % 16 != 0) { + gcm_mult(ctx, ctx->buf, ctx->buf); } - if( tag_len > 16 || tag_len < 4 ) - return( MBEDTLS_ERR_GCM_BAD_INPUT ); - - if( ctx->len % 16 != 0 ) - gcm_mult( ctx, ctx->buf, ctx->buf ); - - memcpy( tag, ctx->base_ectr, tag_len ); - - if( orig_len || orig_add_len ) - { - memset( work_buf, 0x00, 16 ); - - MBEDTLS_PUT_UINT32_BE( ( orig_add_len >> 32 ), work_buf, 0 ); - MBEDTLS_PUT_UINT32_BE( ( orig_add_len ), work_buf, 4 ); - MBEDTLS_PUT_UINT32_BE( ( orig_len >> 32 ), work_buf, 8 ); - MBEDTLS_PUT_UINT32_BE( ( orig_len ), work_buf, 12 ); - - mbedtls_xor( ctx->buf, ctx->buf, work_buf, 16 ); - - gcm_mult( ctx, ctx->buf, ctx->buf ); - - mbedtls_xor( tag, tag, ctx->buf, tag_len ); + if (tag_len > 16 || tag_len < 4) { + return MBEDTLS_ERR_GCM_BAD_INPUT; } - return( 0 ); + if (ctx->len % 16 != 0) { + gcm_mult(ctx, ctx->buf, ctx->buf); + } + + memcpy(tag, ctx->base_ectr, tag_len); + + if (orig_len || orig_add_len) { + memset(work_buf, 0x00, 16); + + MBEDTLS_PUT_UINT32_BE((orig_add_len >> 32), work_buf, 0); + MBEDTLS_PUT_UINT32_BE((orig_add_len), work_buf, 4); + MBEDTLS_PUT_UINT32_BE((orig_len >> 32), work_buf, 8); + MBEDTLS_PUT_UINT32_BE((orig_len), work_buf, 12); + + mbedtls_xor(ctx->buf, ctx->buf, work_buf, 16); + + gcm_mult(ctx, ctx->buf, ctx->buf); + + mbedtls_xor(tag, tag, ctx->buf, tag_len); + } + + return 0; } -int mbedtls_gcm_crypt_and_tag( mbedtls_gcm_context *ctx, - int mode, - size_t length, - const unsigned char *iv, - size_t iv_len, - const unsigned char *add, - size_t add_len, - const unsigned char *input, - unsigned char *output, - size_t tag_len, - unsigned char *tag ) +int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx, + int mode, + size_t length, + const unsigned char *iv, + size_t iv_len, + const unsigned char *add, + size_t add_len, + const unsigned char *input, + unsigned char *output, + size_t tag_len, + unsigned char *tag) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; - if( ( ret = mbedtls_gcm_starts( ctx, mode, iv, iv_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_gcm_starts(ctx, mode, iv, iv_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_gcm_update_ad( ctx, add, add_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_gcm_update_ad(ctx, add, add_len)) != 0) { + return ret; + } - if( ( ret = mbedtls_gcm_update( ctx, input, length, - output, length, &olen ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_gcm_update(ctx, input, length, + output, length, &olen)) != 0) { + return ret; + } - if( ( ret = mbedtls_gcm_finish( ctx, NULL, 0, &olen, tag, tag_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_gcm_finish(ctx, NULL, 0, &olen, tag, tag_len)) != 0) { + return ret; + } - return( 0 ); + return 0; } -int mbedtls_gcm_auth_decrypt( mbedtls_gcm_context *ctx, - size_t length, - const unsigned char *iv, - size_t iv_len, - const unsigned char *add, - size_t add_len, - const unsigned char *tag, - size_t tag_len, - const unsigned char *input, - unsigned char *output ) +int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx, + size_t length, + const unsigned char *iv, + size_t iv_len, + const unsigned char *add, + size_t add_len, + const unsigned char *tag, + size_t tag_len, + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char check_tag[16]; size_t i; int diff; - if( ( ret = mbedtls_gcm_crypt_and_tag( ctx, MBEDTLS_GCM_DECRYPT, length, - iv, iv_len, add, add_len, - input, output, tag_len, check_tag ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_gcm_crypt_and_tag(ctx, MBEDTLS_GCM_DECRYPT, length, + iv, iv_len, add, add_len, + input, output, tag_len, check_tag)) != 0) { + return ret; } /* Check tag in "constant-time" */ - for( diff = 0, i = 0; i < tag_len; i++ ) + for (diff = 0, i = 0; i < tag_len; i++) { diff |= tag[i] ^ check_tag[i]; - - if( diff != 0 ) - { - mbedtls_platform_zeroize( output, length ); - return( MBEDTLS_ERR_GCM_AUTH_FAILED ); } - return( 0 ); + if (diff != 0) { + mbedtls_platform_zeroize(output, length); + return MBEDTLS_ERR_GCM_AUTH_FAILED; + } + + return 0; } -void mbedtls_gcm_free( mbedtls_gcm_context *ctx ) +void mbedtls_gcm_free(mbedtls_gcm_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; - mbedtls_cipher_free( &ctx->cipher_ctx ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_gcm_context ) ); + } + mbedtls_cipher_free(&ctx->cipher_ctx); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_gcm_context)); } #endif /* !MBEDTLS_GCM_ALT */ @@ -610,7 +617,7 @@ void mbedtls_gcm_free( mbedtls_gcm_context *ctx ) #define MAX_TESTS 6 static const int key_index_test_data[MAX_TESTS] = - { 0, 0, 1, 1, 1, 1 }; +{ 0, 0, 1, 1, 1, 1 }; static const unsigned char key_test_data[MAX_TESTS][32] = { @@ -625,10 +632,10 @@ static const unsigned char key_test_data[MAX_TESTS][32] = }; static const size_t iv_len_test_data[MAX_TESTS] = - { 12, 12, 12, 12, 8, 60 }; +{ 12, 12, 12, 12, 8, 60 }; static const int iv_index_test_data[MAX_TESTS] = - { 0, 0, 1, 1, 1, 2 }; +{ 0, 0, 1, 1, 1, 2 }; static const unsigned char iv_test_data[MAX_TESTS][64] = { @@ -647,10 +654,10 @@ static const unsigned char iv_test_data[MAX_TESTS][64] = }; static const size_t add_len_test_data[MAX_TESTS] = - { 0, 0, 0, 20, 20, 20 }; +{ 0, 0, 0, 20, 20, 20 }; static const int add_index_test_data[MAX_TESTS] = - { 0, 0, 0, 1, 1, 1 }; +{ 0, 0, 0, 1, 1, 1 }; static const unsigned char additional_test_data[MAX_TESTS][64] = { @@ -661,10 +668,10 @@ static const unsigned char additional_test_data[MAX_TESTS][64] = }; static const size_t pt_len_test_data[MAX_TESTS] = - { 0, 16, 64, 60, 60, 60 }; +{ 0, 16, 64, 60, 60, 60 }; static const int pt_index_test_data[MAX_TESTS] = - { 0, 0, 1, 1, 1, 1 }; +{ 0, 0, 1, 1, 1, 1 }; static const unsigned char pt_test_data[MAX_TESTS][64] = { @@ -829,7 +836,7 @@ static const unsigned char tag_test_data[MAX_TESTS * 3][16] = 0xc8, 0xb5, 0xd4, 0xcf, 0x5a, 0xe9, 0xf1, 0x9a }, }; -int mbedtls_gcm_self_test( int verbose ) +int mbedtls_gcm_self_test(int verbose) { mbedtls_gcm_context ctx; unsigned char buf[64]; @@ -838,267 +845,283 @@ int mbedtls_gcm_self_test( int verbose ) mbedtls_cipher_id_t cipher = MBEDTLS_CIPHER_ID_AES; size_t olen; - for( j = 0; j < 3; j++ ) - { + for (j = 0; j < 3; j++) { int key_len = 128 + 64 * j; - for( i = 0; i < MAX_TESTS; i++ ) - { - mbedtls_gcm_init( &ctx ); + for (i = 0; i < MAX_TESTS; i++) { + mbedtls_gcm_init(&ctx); - if( verbose != 0 ) - mbedtls_printf( " AES-GCM-%3d #%d (%s): ", - key_len, i, "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-GCM-%3d #%d (%s): ", + key_len, i, "enc"); + } - ret = mbedtls_gcm_setkey( &ctx, cipher, - key_test_data[key_index_test_data[i]], - key_len ); + ret = mbedtls_gcm_setkey(&ctx, cipher, + key_test_data[key_index_test_data[i]], + key_len); /* * AES-192 is an optional feature that may be unavailable when * there is an alternative underlying implementation i.e. when * MBEDTLS_AES_ALT is defined. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && key_len == 192 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && key_len == 192) { + mbedtls_printf("skipped\n"); break; - } - else if( ret != 0 ) - { + } else if (ret != 0) { goto exit; } - ret = mbedtls_gcm_crypt_and_tag( &ctx, MBEDTLS_GCM_ENCRYPT, - pt_len_test_data[i], - iv_test_data[iv_index_test_data[i]], - iv_len_test_data[i], - additional_test_data[add_index_test_data[i]], - add_len_test_data[i], - pt_test_data[pt_index_test_data[i]], - buf, 16, tag_buf ); + ret = mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_ENCRYPT, + pt_len_test_data[i], + iv_test_data[iv_index_test_data[i]], + iv_len_test_data[i], + additional_test_data[add_index_test_data[i]], + add_len_test_data[i], + pt_test_data[pt_index_test_data[i]], + buf, 16, tag_buf); #if defined(MBEDTLS_GCM_ALT) /* Allow alternative implementations to only support 12-byte nonces. */ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && - iv_len_test_data[i] != 12 ) - { - mbedtls_printf( "skipped\n" ); + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED && + iv_len_test_data[i] != 12) { + mbedtls_printf("skipped\n"); break; } #endif /* defined(MBEDTLS_GCM_ALT) */ - if( ret != 0 ) + if (ret != 0) { goto exit; + } - if ( memcmp( buf, ct_test_data[j * 6 + i], - pt_len_test_data[i] ) != 0 || - memcmp( tag_buf, tag_test_data[j * 6 + i], 16 ) != 0 ) - { + if (memcmp(buf, ct_test_data[j * 6 + i], + pt_len_test_data[i]) != 0 || + memcmp(tag_buf, tag_test_data[j * 6 + i], 16) != 0) { ret = 1; goto exit; } - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - if( verbose != 0 ) - mbedtls_printf( " AES-GCM-%3d #%d (%s): ", - key_len, i, "dec" ); + if (verbose != 0) { + mbedtls_printf(" AES-GCM-%3d #%d (%s): ", + key_len, i, "dec"); + } - ret = mbedtls_gcm_setkey( &ctx, cipher, - key_test_data[key_index_test_data[i]], - key_len ); - if( ret != 0 ) + ret = mbedtls_gcm_setkey(&ctx, cipher, + key_test_data[key_index_test_data[i]], + key_len); + if (ret != 0) { goto exit; + } - ret = mbedtls_gcm_crypt_and_tag( &ctx, MBEDTLS_GCM_DECRYPT, - pt_len_test_data[i], - iv_test_data[iv_index_test_data[i]], - iv_len_test_data[i], - additional_test_data[add_index_test_data[i]], - add_len_test_data[i], - ct_test_data[j * 6 + i], buf, 16, tag_buf ); + ret = mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_DECRYPT, + pt_len_test_data[i], + iv_test_data[iv_index_test_data[i]], + iv_len_test_data[i], + additional_test_data[add_index_test_data[i]], + add_len_test_data[i], + ct_test_data[j * 6 + i], buf, 16, tag_buf); - if( ret != 0 ) + if (ret != 0) { goto exit; + } - if( memcmp( buf, pt_test_data[pt_index_test_data[i]], - pt_len_test_data[i] ) != 0 || - memcmp( tag_buf, tag_test_data[j * 6 + i], 16 ) != 0 ) - { + if (memcmp(buf, pt_test_data[pt_index_test_data[i]], + pt_len_test_data[i]) != 0 || + memcmp(tag_buf, tag_test_data[j * 6 + i], 16) != 0) { ret = 1; goto exit; } - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - if( verbose != 0 ) - mbedtls_printf( " AES-GCM-%3d #%d split (%s): ", - key_len, i, "enc" ); + if (verbose != 0) { + mbedtls_printf(" AES-GCM-%3d #%d split (%s): ", + key_len, i, "enc"); + } - ret = mbedtls_gcm_setkey( &ctx, cipher, - key_test_data[key_index_test_data[i]], - key_len ); - if( ret != 0 ) + ret = mbedtls_gcm_setkey(&ctx, cipher, + key_test_data[key_index_test_data[i]], + key_len); + if (ret != 0) { goto exit; + } - ret = mbedtls_gcm_starts( &ctx, MBEDTLS_GCM_ENCRYPT, - iv_test_data[iv_index_test_data[i]], - iv_len_test_data[i] ); - if( ret != 0 ) + ret = mbedtls_gcm_starts(&ctx, MBEDTLS_GCM_ENCRYPT, + iv_test_data[iv_index_test_data[i]], + iv_len_test_data[i]); + if (ret != 0) { goto exit; + } - ret = mbedtls_gcm_update_ad( &ctx, - additional_test_data[add_index_test_data[i]], - add_len_test_data[i] ); - if( ret != 0 ) + ret = mbedtls_gcm_update_ad(&ctx, + additional_test_data[add_index_test_data[i]], + add_len_test_data[i]); + if (ret != 0) { goto exit; + } - if( pt_len_test_data[i] > 32 ) - { + if (pt_len_test_data[i] > 32) { size_t rest_len = pt_len_test_data[i] - 32; - ret = mbedtls_gcm_update( &ctx, - pt_test_data[pt_index_test_data[i]], - 32, - buf, sizeof( buf ), &olen ); - if( ret != 0 ) + ret = mbedtls_gcm_update(&ctx, + pt_test_data[pt_index_test_data[i]], + 32, + buf, sizeof(buf), &olen); + if (ret != 0) { goto exit; - if( olen != 32 ) + } + if (olen != 32) { goto exit; + } - ret = mbedtls_gcm_update( &ctx, - pt_test_data[pt_index_test_data[i]] + 32, - rest_len, - buf + 32, sizeof( buf ) - 32, &olen ); - if( ret != 0 ) + ret = mbedtls_gcm_update(&ctx, + pt_test_data[pt_index_test_data[i]] + 32, + rest_len, + buf + 32, sizeof(buf) - 32, &olen); + if (ret != 0) { goto exit; - if( olen != rest_len ) + } + if (olen != rest_len) { goto exit; - } - else - { - ret = mbedtls_gcm_update( &ctx, - pt_test_data[pt_index_test_data[i]], - pt_len_test_data[i], - buf, sizeof( buf ), &olen ); - if( ret != 0 ) + } + } else { + ret = mbedtls_gcm_update(&ctx, + pt_test_data[pt_index_test_data[i]], + pt_len_test_data[i], + buf, sizeof(buf), &olen); + if (ret != 0) { goto exit; - if( olen != pt_len_test_data[i] ) + } + if (olen != pt_len_test_data[i]) { goto exit; + } } - ret = mbedtls_gcm_finish( &ctx, NULL, 0, &olen, tag_buf, 16 ); - if( ret != 0 ) + ret = mbedtls_gcm_finish(&ctx, NULL, 0, &olen, tag_buf, 16); + if (ret != 0) { goto exit; + } - if( memcmp( buf, ct_test_data[j * 6 + i], - pt_len_test_data[i] ) != 0 || - memcmp( tag_buf, tag_test_data[j * 6 + i], 16 ) != 0 ) - { + if (memcmp(buf, ct_test_data[j * 6 + i], + pt_len_test_data[i]) != 0 || + memcmp(tag_buf, tag_test_data[j * 6 + i], 16) != 0) { ret = 1; goto exit; } - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - if( verbose != 0 ) - mbedtls_printf( " AES-GCM-%3d #%d split (%s): ", - key_len, i, "dec" ); + if (verbose != 0) { + mbedtls_printf(" AES-GCM-%3d #%d split (%s): ", + key_len, i, "dec"); + } - ret = mbedtls_gcm_setkey( &ctx, cipher, - key_test_data[key_index_test_data[i]], - key_len ); - if( ret != 0 ) + ret = mbedtls_gcm_setkey(&ctx, cipher, + key_test_data[key_index_test_data[i]], + key_len); + if (ret != 0) { goto exit; + } - ret = mbedtls_gcm_starts( &ctx, MBEDTLS_GCM_DECRYPT, - iv_test_data[iv_index_test_data[i]], - iv_len_test_data[i] ); - if( ret != 0 ) + ret = mbedtls_gcm_starts(&ctx, MBEDTLS_GCM_DECRYPT, + iv_test_data[iv_index_test_data[i]], + iv_len_test_data[i]); + if (ret != 0) { goto exit; - ret = mbedtls_gcm_update_ad( &ctx, - additional_test_data[add_index_test_data[i]], - add_len_test_data[i] ); - if( ret != 0 ) + } + ret = mbedtls_gcm_update_ad(&ctx, + additional_test_data[add_index_test_data[i]], + add_len_test_data[i]); + if (ret != 0) { goto exit; + } - if( pt_len_test_data[i] > 32 ) - { + if (pt_len_test_data[i] > 32) { size_t rest_len = pt_len_test_data[i] - 32; - ret = mbedtls_gcm_update( &ctx, - ct_test_data[j * 6 + i], 32, - buf, sizeof( buf ), &olen ); - if( ret != 0 ) + ret = mbedtls_gcm_update(&ctx, + ct_test_data[j * 6 + i], 32, + buf, sizeof(buf), &olen); + if (ret != 0) { goto exit; - if( olen != 32 ) + } + if (olen != 32) { goto exit; + } - ret = mbedtls_gcm_update( &ctx, - ct_test_data[j * 6 + i] + 32, - rest_len, - buf + 32, sizeof( buf ) - 32, &olen ); - if( ret != 0 ) + ret = mbedtls_gcm_update(&ctx, + ct_test_data[j * 6 + i] + 32, + rest_len, + buf + 32, sizeof(buf) - 32, &olen); + if (ret != 0) { goto exit; - if( olen != rest_len ) + } + if (olen != rest_len) { goto exit; - } - else - { - ret = mbedtls_gcm_update( &ctx, - ct_test_data[j * 6 + i], - pt_len_test_data[i], - buf, sizeof( buf ), &olen ); - if( ret != 0 ) + } + } else { + ret = mbedtls_gcm_update(&ctx, + ct_test_data[j * 6 + i], + pt_len_test_data[i], + buf, sizeof(buf), &olen); + if (ret != 0) { goto exit; - if( olen != pt_len_test_data[i] ) + } + if (olen != pt_len_test_data[i]) { goto exit; + } } - ret = mbedtls_gcm_finish( &ctx, NULL, 0, &olen, tag_buf, 16 ); - if( ret != 0 ) + ret = mbedtls_gcm_finish(&ctx, NULL, 0, &olen, tag_buf, 16); + if (ret != 0) { goto exit; + } - if( memcmp( buf, pt_test_data[pt_index_test_data[i]], - pt_len_test_data[i] ) != 0 || - memcmp( tag_buf, tag_test_data[j * 6 + i], 16 ) != 0 ) - { + if (memcmp(buf, pt_test_data[pt_index_test_data[i]], + pt_len_test_data[i]) != 0 || + memcmp(tag_buf, tag_test_data[j * 6 + i], 16) != 0) { ret = 1; goto exit; } - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } ret = 0; exit: - if( ret != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - mbedtls_gcm_free( &ctx ); + if (ret != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } + mbedtls_gcm_free(&ctx); } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ diff --git a/library/hash_info.c b/library/hash_info.c index cd7d70e82..f8b41a5cb 100644 --- a/library/hash_info.c +++ b/library/hash_info.c @@ -24,8 +24,7 @@ #include "mbedtls/legacy_or_psa.h" #include "mbedtls/error.h" -typedef struct -{ +typedef struct { psa_algorithm_t psa_alg; mbedtls_md_type_t md_type; unsigned char size; @@ -58,12 +57,11 @@ static const hash_entry hash_table[] = { }; /* Get size from MD type */ -unsigned char mbedtls_hash_info_get_size( mbedtls_md_type_t md_type ) +unsigned char mbedtls_hash_info_get_size(mbedtls_md_type_t md_type) { const hash_entry *entry = hash_table; - while( entry->md_type != MBEDTLS_MD_NONE && - entry->md_type != md_type ) - { + while (entry->md_type != MBEDTLS_MD_NONE && + entry->md_type != md_type) { entry++; } @@ -71,12 +69,11 @@ unsigned char mbedtls_hash_info_get_size( mbedtls_md_type_t md_type ) } /* Get block size from MD type */ -unsigned char mbedtls_hash_info_get_block_size( mbedtls_md_type_t md_type ) +unsigned char mbedtls_hash_info_get_block_size(mbedtls_md_type_t md_type) { const hash_entry *entry = hash_table; - while( entry->md_type != MBEDTLS_MD_NONE && - entry->md_type != md_type ) - { + while (entry->md_type != MBEDTLS_MD_NONE && + entry->md_type != md_type) { entry++; } @@ -84,12 +81,11 @@ unsigned char mbedtls_hash_info_get_block_size( mbedtls_md_type_t md_type ) } /* Get PSA from MD */ -psa_algorithm_t mbedtls_hash_info_psa_from_md( mbedtls_md_type_t md_type ) +psa_algorithm_t mbedtls_hash_info_psa_from_md(mbedtls_md_type_t md_type) { const hash_entry *entry = hash_table; - while( entry->md_type != MBEDTLS_MD_NONE && - entry->md_type != md_type ) - { + while (entry->md_type != MBEDTLS_MD_NONE && + entry->md_type != md_type) { entry++; } @@ -97,31 +93,29 @@ psa_algorithm_t mbedtls_hash_info_psa_from_md( mbedtls_md_type_t md_type ) } /* Get MD from PSA */ -mbedtls_md_type_t mbedtls_hash_info_md_from_psa( psa_algorithm_t psa_alg ) +mbedtls_md_type_t mbedtls_hash_info_md_from_psa(psa_algorithm_t psa_alg) { const hash_entry *entry = hash_table; - while( entry->md_type != MBEDTLS_MD_NONE && - entry->psa_alg != psa_alg ) - { + while (entry->md_type != MBEDTLS_MD_NONE && + entry->psa_alg != psa_alg) { entry++; } return entry->md_type; } -int mbedtls_md_error_from_psa( psa_status_t status ) +int mbedtls_md_error_from_psa(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_SUCCESS: - return( 0 ); + return 0; case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE; case PSA_ERROR_INVALID_ARGUMENT: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; case PSA_ERROR_INSUFFICIENT_MEMORY: - return( MBEDTLS_ERR_MD_ALLOC_FAILED ); + return MBEDTLS_ERR_MD_ALLOC_FAILED; default: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } } diff --git a/library/hash_info.h b/library/hash_info.h index 1b7b46cda..47da934de 100644 --- a/library/hash_info.h +++ b/library/hash_info.h @@ -41,11 +41,11 @@ */ #if defined(MBEDTLS_MD_C) && ( \ !defined(MBEDTLS_PSA_CRYPTO_C) || \ - MBEDTLS_MD_MAX_SIZE >= PSA_HASH_MAX_SIZE ) + MBEDTLS_MD_MAX_SIZE >= PSA_HASH_MAX_SIZE) #define MBEDTLS_HASH_MAX_SIZE MBEDTLS_MD_MAX_SIZE #elif defined(MBEDTLS_PSA_CRYPTO_C) && ( \ !defined(MBEDTLS_MD_C) || \ - PSA_HASH_MAX_SIZE >= MBEDTLS_MD_MAX_SIZE ) + PSA_HASH_MAX_SIZE >= MBEDTLS_MD_MAX_SIZE) #define MBEDTLS_HASH_MAX_SIZE PSA_HASH_MAX_SIZE #endif @@ -57,7 +57,7 @@ * * \return The output length in bytes, or 0 if not known. */ -unsigned char mbedtls_hash_info_get_size( mbedtls_md_type_t md_type ); +unsigned char mbedtls_hash_info_get_size(mbedtls_md_type_t md_type); /** Get the block size of the given hash type from its MD type. * @@ -68,7 +68,7 @@ unsigned char mbedtls_hash_info_get_size( mbedtls_md_type_t md_type ); * * \return The block size in bytes, or 0 if not known. */ -unsigned char mbedtls_hash_info_get_block_size( mbedtls_md_type_t md_type ); +unsigned char mbedtls_hash_info_get_block_size(mbedtls_md_type_t md_type); /** Get the PSA alg from the MD type. * @@ -77,7 +77,7 @@ unsigned char mbedtls_hash_info_get_block_size( mbedtls_md_type_t md_type ); * \return The corresponding PSA algorithm identifier, * or PSA_ALG_NONE if not known. */ -psa_algorithm_t mbedtls_hash_info_psa_from_md( mbedtls_md_type_t md_type ); +psa_algorithm_t mbedtls_hash_info_psa_from_md(mbedtls_md_type_t md_type); /** Get the MD type alg from the PSA algorithm identifier. * @@ -86,7 +86,7 @@ psa_algorithm_t mbedtls_hash_info_psa_from_md( mbedtls_md_type_t md_type ); * \return The corresponding MD type, * or MBEDTLS_MD_NONE if not known. */ -mbedtls_md_type_t mbedtls_hash_info_md_from_psa( psa_algorithm_t psa_alg ); +mbedtls_md_type_t mbedtls_hash_info_md_from_psa(psa_algorithm_t psa_alg); /** Convert PSA status to MD error code. * @@ -94,6 +94,6 @@ mbedtls_md_type_t mbedtls_hash_info_md_from_psa( psa_algorithm_t psa_alg ); * * \return The corresponding MD error code, */ -int mbedtls_md_error_from_psa( psa_status_t status ); +int mbedtls_md_error_from_psa(psa_status_t status); #endif /* MBEDTLS_HASH_INFO_H */ diff --git a/library/hkdf.c b/library/hkdf.c index 5013729d2..a3f071ece 100644 --- a/library/hkdf.c +++ b/library/hkdf.c @@ -25,47 +25,43 @@ #include "mbedtls/platform_util.h" #include "mbedtls/error.h" -int mbedtls_hkdf( const mbedtls_md_info_t *md, const unsigned char *salt, - size_t salt_len, const unsigned char *ikm, size_t ikm_len, - const unsigned char *info, size_t info_len, - unsigned char *okm, size_t okm_len ) +int mbedtls_hkdf(const mbedtls_md_info_t *md, const unsigned char *salt, + size_t salt_len, const unsigned char *ikm, size_t ikm_len, + const unsigned char *info, size_t info_len, + unsigned char *okm, size_t okm_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char prk[MBEDTLS_MD_MAX_SIZE]; - ret = mbedtls_hkdf_extract( md, salt, salt_len, ikm, ikm_len, prk ); + ret = mbedtls_hkdf_extract(md, salt, salt_len, ikm, ikm_len, prk); - if( ret == 0 ) - { - ret = mbedtls_hkdf_expand( md, prk, mbedtls_md_get_size( md ), - info, info_len, okm, okm_len ); + if (ret == 0) { + ret = mbedtls_hkdf_expand(md, prk, mbedtls_md_get_size(md), + info, info_len, okm, okm_len); } - mbedtls_platform_zeroize( prk, sizeof( prk ) ); + mbedtls_platform_zeroize(prk, sizeof(prk)); - return( ret ); + return ret; } -int mbedtls_hkdf_extract( const mbedtls_md_info_t *md, - const unsigned char *salt, size_t salt_len, - const unsigned char *ikm, size_t ikm_len, - unsigned char *prk ) +int mbedtls_hkdf_extract(const mbedtls_md_info_t *md, + const unsigned char *salt, size_t salt_len, + const unsigned char *ikm, size_t ikm_len, + unsigned char *prk) { unsigned char null_salt[MBEDTLS_MD_MAX_SIZE] = { '\0' }; - if( salt == NULL ) - { + if (salt == NULL) { size_t hash_len; - if( salt_len != 0 ) - { + if (salt_len != 0) { return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA; } - hash_len = mbedtls_md_get_size( md ); + hash_len = mbedtls_md_get_size(md); - if( hash_len == 0 ) - { + if (hash_len == 0) { return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA; } @@ -73,12 +69,12 @@ int mbedtls_hkdf_extract( const mbedtls_md_info_t *md, salt_len = hash_len; } - return( mbedtls_md_hmac( md, salt, salt_len, ikm, ikm_len, prk ) ); + return mbedtls_md_hmac(md, salt, salt_len, ikm, ikm_len, prk); } -int mbedtls_hkdf_expand( const mbedtls_md_info_t *md, const unsigned char *prk, - size_t prk_len, const unsigned char *info, - size_t info_len, unsigned char *okm, size_t okm_len ) +int mbedtls_hkdf_expand(const mbedtls_md_info_t *md, const unsigned char *prk, + size_t prk_len, const unsigned char *info, + size_t info_len, unsigned char *okm, size_t okm_len) { size_t hash_len; size_t where = 0; @@ -89,28 +85,24 @@ int mbedtls_hkdf_expand( const mbedtls_md_info_t *md, const unsigned char *prk, mbedtls_md_context_t ctx; unsigned char t[MBEDTLS_MD_MAX_SIZE]; - if( okm == NULL ) - { - return( MBEDTLS_ERR_HKDF_BAD_INPUT_DATA ); + if (okm == NULL) { + return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA; } - hash_len = mbedtls_md_get_size( md ); + hash_len = mbedtls_md_get_size(md); - if( prk_len < hash_len || hash_len == 0 ) - { - return( MBEDTLS_ERR_HKDF_BAD_INPUT_DATA ); + if (prk_len < hash_len || hash_len == 0) { + return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA; } - if( info == NULL ) - { + if (info == NULL) { info = (const unsigned char *) ""; info_len = 0; } n = okm_len / hash_len; - if( okm_len % hash_len != 0 ) - { + if (okm_len % hash_len != 0) { n++; } @@ -118,72 +110,64 @@ int mbedtls_hkdf_expand( const mbedtls_md_info_t *md, const unsigned char *prk, * Per RFC 5869 Section 2.3, okm_len must not exceed * 255 times the hash length */ - if( n > 255 ) - { - return( MBEDTLS_ERR_HKDF_BAD_INPUT_DATA ); + if (n > 255) { + return MBEDTLS_ERR_HKDF_BAD_INPUT_DATA; } - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); - if( ( ret = mbedtls_md_setup( &ctx, md, 1 ) ) != 0 ) - { + if ((ret = mbedtls_md_setup(&ctx, md, 1)) != 0) { goto exit; } - memset( t, 0, hash_len ); + memset(t, 0, hash_len); /* * Compute T = T(1) | T(2) | T(3) | ... | T(N) * Where T(N) is defined in RFC 5869 Section 2.3 */ - for( i = 1; i <= n; i++ ) - { + for (i = 1; i <= n; i++) { size_t num_to_copy; unsigned char c = i & 0xff; - ret = mbedtls_md_hmac_starts( &ctx, prk, prk_len ); - if( ret != 0 ) - { + ret = mbedtls_md_hmac_starts(&ctx, prk, prk_len); + if (ret != 0) { goto exit; } - ret = mbedtls_md_hmac_update( &ctx, t, t_len ); - if( ret != 0 ) - { + ret = mbedtls_md_hmac_update(&ctx, t, t_len); + if (ret != 0) { goto exit; } - ret = mbedtls_md_hmac_update( &ctx, info, info_len ); - if( ret != 0 ) - { + ret = mbedtls_md_hmac_update(&ctx, info, info_len); + if (ret != 0) { goto exit; } /* The constant concatenated to the end of each T(n) is a single octet. * */ - ret = mbedtls_md_hmac_update( &ctx, &c, 1 ); - if( ret != 0 ) - { + ret = mbedtls_md_hmac_update(&ctx, &c, 1); + if (ret != 0) { goto exit; } - ret = mbedtls_md_hmac_finish( &ctx, t ); - if( ret != 0 ) - { + ret = mbedtls_md_hmac_finish(&ctx, t); + if (ret != 0) { goto exit; } num_to_copy = i != n ? hash_len : okm_len - where; - memcpy( okm + where, t, num_to_copy ); + memcpy(okm + where, t, num_to_copy); where += hash_len; t_len = hash_len; } exit: - mbedtls_md_free( &ctx ); - mbedtls_platform_zeroize( t, sizeof( t ) ); + mbedtls_md_free(&ctx); + mbedtls_platform_zeroize(t, sizeof(t)); - return( ret ); + return ret; } #endif /* MBEDTLS_HKDF_C */ diff --git a/library/hmac_drbg.c b/library/hmac_drbg.c index 6bc679dd2..b15730235 100644 --- a/library/hmac_drbg.c +++ b/library/hmac_drbg.c @@ -42,9 +42,9 @@ /* * HMAC_DRBG context initialization */ -void mbedtls_hmac_drbg_init( mbedtls_hmac_drbg_context *ctx ) +void mbedtls_hmac_drbg_init(mbedtls_hmac_drbg_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_hmac_drbg_context ) ); + memset(ctx, 0, sizeof(mbedtls_hmac_drbg_context)); ctx->reseed_interval = MBEDTLS_HMAC_DRBG_RESEED_INTERVAL; } @@ -52,65 +52,72 @@ void mbedtls_hmac_drbg_init( mbedtls_hmac_drbg_context *ctx ) /* * HMAC_DRBG update, using optional additional data (10.1.2.2) */ -int mbedtls_hmac_drbg_update( mbedtls_hmac_drbg_context *ctx, - const unsigned char *additional, - size_t add_len ) +int mbedtls_hmac_drbg_update(mbedtls_hmac_drbg_context *ctx, + const unsigned char *additional, + size_t add_len) { - size_t md_len = mbedtls_md_get_size( ctx->md_ctx.md_info ); - unsigned char rounds = ( additional != NULL && add_len != 0 ) ? 2 : 1; + size_t md_len = mbedtls_md_get_size(ctx->md_ctx.md_info); + unsigned char rounds = (additional != NULL && add_len != 0) ? 2 : 1; unsigned char sep[1]; unsigned char K[MBEDTLS_MD_MAX_SIZE]; int ret = MBEDTLS_ERR_MD_BAD_INPUT_DATA; - for( sep[0] = 0; sep[0] < rounds; sep[0]++ ) - { + for (sep[0] = 0; sep[0] < rounds; sep[0]++) { /* Step 1 or 4 */ - if( ( ret = mbedtls_md_hmac_reset( &ctx->md_ctx ) ) != 0 ) - goto exit; - if( ( ret = mbedtls_md_hmac_update( &ctx->md_ctx, - ctx->V, md_len ) ) != 0 ) - goto exit; - if( ( ret = mbedtls_md_hmac_update( &ctx->md_ctx, - sep, 1 ) ) != 0 ) - goto exit; - if( rounds == 2 ) - { - if( ( ret = mbedtls_md_hmac_update( &ctx->md_ctx, - additional, add_len ) ) != 0 ) + if ((ret = mbedtls_md_hmac_reset(&ctx->md_ctx)) != 0) { goto exit; } - if( ( ret = mbedtls_md_hmac_finish( &ctx->md_ctx, K ) ) != 0 ) + if ((ret = mbedtls_md_hmac_update(&ctx->md_ctx, + ctx->V, md_len)) != 0) { goto exit; + } + if ((ret = mbedtls_md_hmac_update(&ctx->md_ctx, + sep, 1)) != 0) { + goto exit; + } + if (rounds == 2) { + if ((ret = mbedtls_md_hmac_update(&ctx->md_ctx, + additional, add_len)) != 0) { + goto exit; + } + } + if ((ret = mbedtls_md_hmac_finish(&ctx->md_ctx, K)) != 0) { + goto exit; + } /* Step 2 or 5 */ - if( ( ret = mbedtls_md_hmac_starts( &ctx->md_ctx, K, md_len ) ) != 0 ) + if ((ret = mbedtls_md_hmac_starts(&ctx->md_ctx, K, md_len)) != 0) { goto exit; - if( ( ret = mbedtls_md_hmac_update( &ctx->md_ctx, - ctx->V, md_len ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_update(&ctx->md_ctx, + ctx->V, md_len)) != 0) { goto exit; - if( ( ret = mbedtls_md_hmac_finish( &ctx->md_ctx, ctx->V ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_finish(&ctx->md_ctx, ctx->V)) != 0) { goto exit; + } } exit: - mbedtls_platform_zeroize( K, sizeof( K ) ); - return( ret ); + mbedtls_platform_zeroize(K, sizeof(K)); + return ret; } /* * Simplified HMAC_DRBG initialisation (for use with deterministic ECDSA) */ -int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx, - const mbedtls_md_info_t * md_info, - const unsigned char *data, size_t data_len ) +int mbedtls_hmac_drbg_seed_buf(mbedtls_hmac_drbg_context *ctx, + const mbedtls_md_info_t *md_info, + const unsigned char *data, size_t data_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 1)) != 0) { + return ret; + } #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif /* @@ -118,15 +125,17 @@ int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx, * Use the V memory location, which is currently all 0, to initialize the * MD context with an all-zero key. Then set V to its initial value. */ - if( ( ret = mbedtls_md_hmac_starts( &ctx->md_ctx, ctx->V, - mbedtls_md_get_size( md_info ) ) ) != 0 ) - return( ret ); - memset( ctx->V, 0x01, mbedtls_md_get_size( md_info ) ); + if ((ret = mbedtls_md_hmac_starts(&ctx->md_ctx, ctx->V, + mbedtls_md_get_size(md_info))) != 0) { + return ret; + } + memset(ctx->V, 0x01, mbedtls_md_get_size(md_info)); - if( ( ret = mbedtls_hmac_drbg_update( ctx, data, data_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_hmac_drbg_update(ctx, data, data_len)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* @@ -134,9 +143,9 @@ int mbedtls_hmac_drbg_seed_buf( mbedtls_hmac_drbg_context *ctx, * Comments starting with arabic numbers refer to section 10.1.2.4 * of SP800-90A, while roman numbers refer to section 9.2. */ -static int hmac_drbg_reseed_core( mbedtls_hmac_drbg_context *ctx, - const unsigned char *additional, size_t len, - int use_nonce ) +static int hmac_drbg_reseed_core(mbedtls_hmac_drbg_context *ctx, + const unsigned char *additional, size_t len, + int use_nonce) { unsigned char seed[MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT]; size_t seedlen = 0; @@ -145,33 +154,31 @@ static int hmac_drbg_reseed_core( mbedtls_hmac_drbg_context *ctx, { size_t total_entropy_len; - if( use_nonce == 0 ) + if (use_nonce == 0) { total_entropy_len = ctx->entropy_len; - else + } else { total_entropy_len = ctx->entropy_len * 3 / 2; + } /* III. Check input length */ - if( len > MBEDTLS_HMAC_DRBG_MAX_INPUT || - total_entropy_len + len > MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT ) - { - return( MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG ); + if (len > MBEDTLS_HMAC_DRBG_MAX_INPUT || + total_entropy_len + len > MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT) { + return MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG; } } - memset( seed, 0, MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT ); + memset(seed, 0, MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT); /* IV. Gather entropy_len bytes of entropy for the seed */ - if( ( ret = ctx->f_entropy( ctx->p_entropy, - seed, ctx->entropy_len ) ) != 0 ) - { - return( MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED ); + if ((ret = ctx->f_entropy(ctx->p_entropy, + seed, ctx->entropy_len)) != 0) { + return MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED; } seedlen += ctx->entropy_len; /* For initial seeding, allow adding of nonce generated * from the entropy source. See Sect 8.6.7 in SP800-90A. */ - if( use_nonce ) - { + if (use_nonce) { /* Note: We don't merge the two calls to f_entropy() in order * to avoid requesting too much entropy from f_entropy() * at once. Specifically, if the underlying digest is not @@ -179,11 +186,10 @@ static int hmac_drbg_reseed_core( mbedtls_hmac_drbg_context *ctx, * is larger than the maximum of 32 Bytes that our own * entropy source implementation can emit in a single * call in configurations disabling SHA-512. */ - if( ( ret = ctx->f_entropy( ctx->p_entropy, - seed + seedlen, - ctx->entropy_len / 2 ) ) != 0 ) - { - return( MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED ); + if ((ret = ctx->f_entropy(ctx->p_entropy, + seed + seedlen, + ctx->entropy_len / 2)) != 0) { + return MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED; } seedlen += ctx->entropy_len / 2; @@ -191,32 +197,32 @@ static int hmac_drbg_reseed_core( mbedtls_hmac_drbg_context *ctx, /* 1. Concatenate entropy and additional data if any */ - if( additional != NULL && len != 0 ) - { - memcpy( seed + seedlen, additional, len ); + if (additional != NULL && len != 0) { + memcpy(seed + seedlen, additional, len); seedlen += len; } /* 2. Update state */ - if( ( ret = mbedtls_hmac_drbg_update( ctx, seed, seedlen ) ) != 0 ) + if ((ret = mbedtls_hmac_drbg_update(ctx, seed, seedlen)) != 0) { goto exit; + } /* 3. Reset reseed_counter */ ctx->reseed_counter = 1; exit: /* 4. Done */ - mbedtls_platform_zeroize( seed, seedlen ); - return( ret ); + mbedtls_platform_zeroize(seed, seedlen); + return ret; } /* * HMAC_DRBG reseeding: 10.1.2.4 + 9.2 */ -int mbedtls_hmac_drbg_reseed( mbedtls_hmac_drbg_context *ctx, - const unsigned char *additional, size_t len ) +int mbedtls_hmac_drbg_reseed(mbedtls_hmac_drbg_context *ctx, + const unsigned char *additional, size_t len) { - return( hmac_drbg_reseed_core( ctx, additional, len, 0 ) ); + return hmac_drbg_reseed_core(ctx, additional, len, 0); } /* @@ -225,40 +231,41 @@ int mbedtls_hmac_drbg_reseed( mbedtls_hmac_drbg_context *ctx, * The nonce is not passed as a separate parameter but extracted * from the entropy source as suggested in 8.6.7. */ -int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx, - const mbedtls_md_info_t * md_info, - int (*f_entropy)(void *, unsigned char *, size_t), - void *p_entropy, - const unsigned char *custom, - size_t len ) +int mbedtls_hmac_drbg_seed(mbedtls_hmac_drbg_context *ctx, + const mbedtls_md_info_t *md_info, + int (*f_entropy)(void *, unsigned char *, size_t), + void *p_entropy, + const unsigned char *custom, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t md_size; - if( ( ret = mbedtls_md_setup( &ctx->md_ctx, md_info, 1 ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_md_setup(&ctx->md_ctx, md_info, 1)) != 0) { + return ret; + } /* The mutex is initialized iff the md context is set up. */ #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif - md_size = mbedtls_md_get_size( md_info ); + md_size = mbedtls_md_get_size(md_info); /* * Set initial working state. * Use the V memory location, which is currently all 0, to initialize the * MD context with an all-zero key. Then set V to its initial value. */ - if( ( ret = mbedtls_md_hmac_starts( &ctx->md_ctx, ctx->V, md_size ) ) != 0 ) - return( ret ); - memset( ctx->V, 0x01, md_size ); + if ((ret = mbedtls_md_hmac_starts(&ctx->md_ctx, ctx->V, md_size)) != 0) { + return ret; + } + memset(ctx->V, 0x01, md_size); ctx->f_entropy = f_entropy; ctx->p_entropy = p_entropy; - if( ctx->entropy_len == 0 ) - { + if (ctx->entropy_len == 0) { /* * See SP800-57 5.6.1 (p. 65-66) for the security strength provided by * each hash function, then according to SP800-90A rev1 10.1 table 2, @@ -271,20 +278,19 @@ int mbedtls_hmac_drbg_seed( mbedtls_hmac_drbg_context *ctx, 32; /* better (256+) -> 256 bits */ } - if( ( ret = hmac_drbg_reseed_core( ctx, custom, len, - 1 /* add nonce */ ) ) != 0 ) - { - return( ret ); + if ((ret = hmac_drbg_reseed_core(ctx, custom, len, + 1 /* add nonce */)) != 0) { + return ret; } - return( 0 ); + return 0; } /* * Set prediction resistance */ -void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx, - int resistance ) +void mbedtls_hmac_drbg_set_prediction_resistance(mbedtls_hmac_drbg_context *ctx, + int resistance) { ctx->prediction_resistance = resistance; } @@ -292,7 +298,7 @@ void mbedtls_hmac_drbg_set_prediction_resistance( mbedtls_hmac_drbg_context *ctx /* * Set entropy length grabbed for seeding */ -void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx, size_t len ) +void mbedtls_hmac_drbg_set_entropy_len(mbedtls_hmac_drbg_context *ctx, size_t len) { ctx->entropy_len = len; } @@ -300,7 +306,7 @@ void mbedtls_hmac_drbg_set_entropy_len( mbedtls_hmac_drbg_context *ctx, size_t l /* * Set reseed interval */ -void mbedtls_hmac_drbg_set_reseed_interval( mbedtls_hmac_drbg_context *ctx, int interval ) +void mbedtls_hmac_drbg_set_reseed_interval(mbedtls_hmac_drbg_context *ctx, int interval) { ctx->reseed_interval = interval; } @@ -309,134 +315,144 @@ void mbedtls_hmac_drbg_set_reseed_interval( mbedtls_hmac_drbg_context *ctx, int * HMAC_DRBG random function with optional additional data: * 10.1.2.5 (arabic) + 9.3 (Roman) */ -int mbedtls_hmac_drbg_random_with_add( void *p_rng, - unsigned char *output, size_t out_len, - const unsigned char *additional, size_t add_len ) +int mbedtls_hmac_drbg_random_with_add(void *p_rng, + unsigned char *output, size_t out_len, + const unsigned char *additional, size_t add_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng; - size_t md_len = mbedtls_md_get_size( ctx->md_ctx.md_info ); + size_t md_len = mbedtls_md_get_size(ctx->md_ctx.md_info); size_t left = out_len; unsigned char *out = output; /* II. Check request length */ - if( out_len > MBEDTLS_HMAC_DRBG_MAX_REQUEST ) - return( MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG ); + if (out_len > MBEDTLS_HMAC_DRBG_MAX_REQUEST) { + return MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG; + } /* III. Check input length */ - if( add_len > MBEDTLS_HMAC_DRBG_MAX_INPUT ) - return( MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG ); + if (add_len > MBEDTLS_HMAC_DRBG_MAX_INPUT) { + return MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG; + } /* 1. (aka VII and IX) Check reseed counter and PR */ - if( ctx->f_entropy != NULL && /* For no-reseeding instances */ - ( ctx->prediction_resistance == MBEDTLS_HMAC_DRBG_PR_ON || - ctx->reseed_counter > ctx->reseed_interval ) ) - { - if( ( ret = mbedtls_hmac_drbg_reseed( ctx, additional, add_len ) ) != 0 ) - return( ret ); + if (ctx->f_entropy != NULL && /* For no-reseeding instances */ + (ctx->prediction_resistance == MBEDTLS_HMAC_DRBG_PR_ON || + ctx->reseed_counter > ctx->reseed_interval)) { + if ((ret = mbedtls_hmac_drbg_reseed(ctx, additional, add_len)) != 0) { + return ret; + } add_len = 0; /* VII.4 */ } /* 2. Use additional data if any */ - if( additional != NULL && add_len != 0 ) - { - if( ( ret = mbedtls_hmac_drbg_update( ctx, - additional, add_len ) ) != 0 ) + if (additional != NULL && add_len != 0) { + if ((ret = mbedtls_hmac_drbg_update(ctx, + additional, add_len)) != 0) { goto exit; + } } /* 3, 4, 5. Generate bytes */ - while( left != 0 ) - { + while (left != 0) { size_t use_len = left > md_len ? md_len : left; - if( ( ret = mbedtls_md_hmac_reset( &ctx->md_ctx ) ) != 0 ) + if ((ret = mbedtls_md_hmac_reset(&ctx->md_ctx)) != 0) { goto exit; - if( ( ret = mbedtls_md_hmac_update( &ctx->md_ctx, - ctx->V, md_len ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_update(&ctx->md_ctx, + ctx->V, md_len)) != 0) { goto exit; - if( ( ret = mbedtls_md_hmac_finish( &ctx->md_ctx, ctx->V ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_finish(&ctx->md_ctx, ctx->V)) != 0) { goto exit; + } - memcpy( out, ctx->V, use_len ); + memcpy(out, ctx->V, use_len); out += use_len; left -= use_len; } /* 6. Update */ - if( ( ret = mbedtls_hmac_drbg_update( ctx, - additional, add_len ) ) != 0 ) + if ((ret = mbedtls_hmac_drbg_update(ctx, + additional, add_len)) != 0) { goto exit; + } /* 7. Update reseed counter */ ctx->reseed_counter++; exit: /* 8. Done */ - return( ret ); + return ret; } /* * HMAC_DRBG random function */ -int mbedtls_hmac_drbg_random( void *p_rng, unsigned char *output, size_t out_len ) +int mbedtls_hmac_drbg_random(void *p_rng, unsigned char *output, size_t out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_hmac_drbg_context *ctx = (mbedtls_hmac_drbg_context *) p_rng; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - ret = mbedtls_hmac_drbg_random_with_add( ctx, output, out_len, NULL, 0 ); + ret = mbedtls_hmac_drbg_random_with_add(ctx, output, out_len, NULL, 0); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } /* * This function resets HMAC_DRBG context to the state immediately * after initial call of mbedtls_hmac_drbg_init(). */ -void mbedtls_hmac_drbg_free( mbedtls_hmac_drbg_context *ctx ) +void mbedtls_hmac_drbg_free(mbedtls_hmac_drbg_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } #if defined(MBEDTLS_THREADING_C) /* The mutex is initialized iff the md context is set up. */ - if( ctx->md_ctx.md_info != NULL ) - mbedtls_mutex_free( &ctx->mutex ); + if (ctx->md_ctx.md_info != NULL) { + mbedtls_mutex_free(&ctx->mutex); + } #endif - mbedtls_md_free( &ctx->md_ctx ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_hmac_drbg_context ) ); + mbedtls_md_free(&ctx->md_ctx); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_hmac_drbg_context)); ctx->reseed_interval = MBEDTLS_HMAC_DRBG_RESEED_INTERVAL; } #if defined(MBEDTLS_FS_IO) -int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path ) +int mbedtls_hmac_drbg_write_seed_file(mbedtls_hmac_drbg_context *ctx, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; FILE *f; - unsigned char buf[ MBEDTLS_HMAC_DRBG_MAX_INPUT ]; + unsigned char buf[MBEDTLS_HMAC_DRBG_MAX_INPUT]; - if( ( f = fopen( path, "wb" ) ) == NULL ) - return( MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR ); + if ((f = fopen(path, "wb")) == NULL) { + return MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - if( ( ret = mbedtls_hmac_drbg_random( ctx, buf, sizeof( buf ) ) ) != 0 ) + if ((ret = mbedtls_hmac_drbg_random(ctx, buf, sizeof(buf))) != 0) { goto exit; + } - if( fwrite( buf, 1, sizeof( buf ), f ) != sizeof( buf ) ) - { + if (fwrite(buf, 1, sizeof(buf), f) != sizeof(buf)) { ret = MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR; goto exit; } @@ -444,49 +460,50 @@ int mbedtls_hmac_drbg_write_seed_file( mbedtls_hmac_drbg_context *ctx, const cha ret = 0; exit: - fclose( f ); - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + fclose(f); + mbedtls_platform_zeroize(buf, sizeof(buf)); - return( ret ); + return ret; } -int mbedtls_hmac_drbg_update_seed_file( mbedtls_hmac_drbg_context *ctx, const char *path ) +int mbedtls_hmac_drbg_update_seed_file(mbedtls_hmac_drbg_context *ctx, const char *path) { int ret = 0; FILE *f = NULL; size_t n; - unsigned char buf[ MBEDTLS_HMAC_DRBG_MAX_INPUT ]; + unsigned char buf[MBEDTLS_HMAC_DRBG_MAX_INPUT]; unsigned char c; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - n = fread( buf, 1, sizeof( buf ), f ); - if( fread( &c, 1, 1, f ) != 0 ) - { + n = fread(buf, 1, sizeof(buf), f); + if (fread(&c, 1, 1, f) != 0) { ret = MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG; goto exit; } - if( n == 0 || ferror( f ) ) - { + if (n == 0 || ferror(f)) { ret = MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR; goto exit; } - fclose( f ); + fclose(f); f = NULL; - ret = mbedtls_hmac_drbg_update( ctx, buf, n ); + ret = mbedtls_hmac_drbg_update(ctx, buf, n); exit: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - if( f != NULL ) - fclose( f ); - if( ret != 0 ) - return( ret ); - return( mbedtls_hmac_drbg_write_seed_file( ctx, path ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + if (f != NULL) { + fclose(f); + } + if (ret != 0) { + return ret; + } + return mbedtls_hmac_drbg_write_seed_file(ctx, path); } #endif /* MBEDTLS_FS_IO */ @@ -495,10 +512,10 @@ exit: #if !defined(MBEDTLS_SHA1_C) /* Dummy checkup routine */ -int mbedtls_hmac_drbg_self_test( int verbose ) +int mbedtls_hmac_drbg_self_test(int verbose) { (void) verbose; - return( 0 ); + return 0; } #else @@ -510,7 +527,8 @@ static const unsigned char entropy_pr[] = { 0xf7, 0x3e, 0x9c, 0x5b, 0x64, 0xef, 0xd8, 0xca, 0x02, 0x8c, 0xf8, 0x11, 0x48, 0xa5, 0x84, 0xfe, 0x69, 0xab, 0x5a, 0xee, 0x42, 0xaa, 0x4d, 0x42, 0x17, 0x60, 0x99, 0xd4, 0x5e, 0x13, 0x97, 0xdc, 0x40, 0x4d, 0x86, 0xa3, - 0x7b, 0xf5, 0x59, 0x54, 0x75, 0x69, 0x51, 0xe4 }; + 0x7b, 0xf5, 0x59, 0x54, 0x75, 0x69, 0x51, 0xe4 +}; static const unsigned char result_pr[OUTPUT_LEN] = { 0x9a, 0x00, 0xa2, 0xd0, 0x0e, 0xd5, 0x9b, 0xfe, 0x31, 0xec, 0xb1, 0x39, 0x9b, 0x60, 0x81, 0x48, 0xd1, 0x96, 0x9d, 0x25, 0x0d, 0x3c, 0x1e, 0x94, @@ -518,14 +536,16 @@ static const unsigned char result_pr[OUTPUT_LEN] = { 0x73, 0x19, 0x70, 0xc0, 0x10, 0x7a, 0xa4, 0x89, 0x25, 0x19, 0x95, 0x5e, 0x4b, 0xc6, 0x00, 0x1d, 0x7f, 0x4e, 0x6a, 0x2b, 0xf8, 0xa3, 0x01, 0xab, 0x46, 0x05, 0x5c, 0x09, 0xa6, 0x71, 0x88, 0xf1, 0xa7, 0x40, 0xee, 0xf3, - 0xe1, 0x5c, 0x02, 0x9b, 0x44, 0xaf, 0x03, 0x44 }; + 0xe1, 0x5c, 0x02, 0x9b, 0x44, 0xaf, 0x03, 0x44 +}; /* From a NIST PR=false test vector */ static const unsigned char entropy_nopr[] = { 0x79, 0x34, 0x9b, 0xbf, 0x7c, 0xdd, 0xa5, 0x79, 0x95, 0x57, 0x86, 0x66, 0x21, 0xc9, 0x13, 0x83, 0x11, 0x46, 0x73, 0x3a, 0xbf, 0x8c, 0x35, 0xc8, 0xc7, 0x21, 0x5b, 0x5b, 0x96, 0xc4, 0x8e, 0x9b, 0x33, 0x8c, 0x74, 0xe3, - 0xe9, 0x9d, 0xfe, 0xdf }; + 0xe9, 0x9d, 0xfe, 0xdf +}; static const unsigned char result_nopr[OUTPUT_LEN] = { 0xc6, 0xa1, 0x6a, 0xb8, 0xd4, 0x20, 0x70, 0x6f, 0x0f, 0x34, 0xab, 0x7f, 0xec, 0x5a, 0xdc, 0xa9, 0xd8, 0xca, 0x3a, 0x13, 0x3e, 0x15, 0x9c, 0xa6, @@ -533,85 +553,91 @@ static const unsigned char result_nopr[OUTPUT_LEN] = { 0xff, 0xb1, 0x0d, 0x71, 0x94, 0xf1, 0xc1, 0xa5, 0xcf, 0x73, 0x22, 0xec, 0x1a, 0xe0, 0x96, 0x4e, 0xd4, 0xbf, 0x12, 0x27, 0x46, 0xe0, 0x87, 0xfd, 0xb5, 0xb3, 0xe9, 0x1b, 0x34, 0x93, 0xd5, 0xbb, 0x98, 0xfa, 0xed, 0x49, - 0xe8, 0x5f, 0x13, 0x0f, 0xc8, 0xa4, 0x59, 0xb7 }; + 0xe8, 0x5f, 0x13, 0x0f, 0xc8, 0xa4, 0x59, 0xb7 +}; /* "Entropy" from buffer */ static size_t test_offset; -static int hmac_drbg_self_test_entropy( void *data, - unsigned char *buf, size_t len ) +static int hmac_drbg_self_test_entropy(void *data, + unsigned char *buf, size_t len) { const unsigned char *p = data; - memcpy( buf, p + test_offset, len ); + memcpy(buf, p + test_offset, len); test_offset += len; - return( 0 ); + return 0; } -#define CHK( c ) if( (c) != 0 ) \ - { \ - if( verbose != 0 ) \ - mbedtls_printf( "failed\n" ); \ - return( 1 ); \ - } +#define CHK(c) if ((c) != 0) \ + { \ + if (verbose != 0) \ + mbedtls_printf("failed\n"); \ + return 1; \ + } /* * Checkup routine for HMAC_DRBG with SHA-1 */ -int mbedtls_hmac_drbg_self_test( int verbose ) +int mbedtls_hmac_drbg_self_test(int verbose) { mbedtls_hmac_drbg_context ctx; unsigned char buf[OUTPUT_LEN]; - const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type( MBEDTLS_MD_SHA1 ); + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); /* * PR = True */ - if( verbose != 0 ) - mbedtls_printf( " HMAC_DRBG (PR = True) : " ); + if (verbose != 0) { + mbedtls_printf(" HMAC_DRBG (PR = True) : "); + } test_offset = 0; - CHK( mbedtls_hmac_drbg_seed( &ctx, md_info, - hmac_drbg_self_test_entropy, (void *) entropy_pr, - NULL, 0 ) ); - mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON ); - CHK( mbedtls_hmac_drbg_random( &ctx, buf, OUTPUT_LEN ) ); - CHK( mbedtls_hmac_drbg_random( &ctx, buf, OUTPUT_LEN ) ); - CHK( memcmp( buf, result_pr, OUTPUT_LEN ) ); - mbedtls_hmac_drbg_free( &ctx ); + CHK(mbedtls_hmac_drbg_seed(&ctx, md_info, + hmac_drbg_self_test_entropy, (void *) entropy_pr, + NULL, 0)); + mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON); + CHK(mbedtls_hmac_drbg_random(&ctx, buf, OUTPUT_LEN)); + CHK(mbedtls_hmac_drbg_random(&ctx, buf, OUTPUT_LEN)); + CHK(memcmp(buf, result_pr, OUTPUT_LEN)); + mbedtls_hmac_drbg_free(&ctx); - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } /* * PR = False */ - if( verbose != 0 ) - mbedtls_printf( " HMAC_DRBG (PR = False) : " ); + if (verbose != 0) { + mbedtls_printf(" HMAC_DRBG (PR = False) : "); + } - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); test_offset = 0; - CHK( mbedtls_hmac_drbg_seed( &ctx, md_info, - hmac_drbg_self_test_entropy, (void *) entropy_nopr, - NULL, 0 ) ); - CHK( mbedtls_hmac_drbg_reseed( &ctx, NULL, 0 ) ); - CHK( mbedtls_hmac_drbg_random( &ctx, buf, OUTPUT_LEN ) ); - CHK( mbedtls_hmac_drbg_random( &ctx, buf, OUTPUT_LEN ) ); - CHK( memcmp( buf, result_nopr, OUTPUT_LEN ) ); - mbedtls_hmac_drbg_free( &ctx ); + CHK(mbedtls_hmac_drbg_seed(&ctx, md_info, + hmac_drbg_self_test_entropy, (void *) entropy_nopr, + NULL, 0)); + CHK(mbedtls_hmac_drbg_reseed(&ctx, NULL, 0)); + CHK(mbedtls_hmac_drbg_random(&ctx, buf, OUTPUT_LEN)); + CHK(mbedtls_hmac_drbg_random(&ctx, buf, OUTPUT_LEN)); + CHK(memcmp(buf, result_nopr, OUTPUT_LEN)); + mbedtls_hmac_drbg_free(&ctx); - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SHA1_C */ #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/lmots.c b/library/lmots.c index 788063c54..c6b45ed59 100644 --- a/library/lmots.c +++ b/library/lmots.c @@ -63,36 +63,34 @@ #define DIGIT_MAX_VALUE ((1u << W_WINTERNITZ_PARAMETER) - 1u) #define D_CONST_LEN (2) -static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = {0x80, 0x80}; -static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = {0x81, 0x81}; +static const unsigned char D_PUBLIC_CONSTANT_BYTES[D_CONST_LEN] = { 0x80, 0x80 }; +static const unsigned char D_MESSAGE_CONSTANT_BYTES[D_CONST_LEN] = { 0x81, 0x81 }; #if defined(MBEDTLS_TEST_HOOKS) -int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ) = NULL; +int (*mbedtls_lmots_sign_private_key_invalidated_hook)(unsigned char *) = NULL; #endif /* defined(MBEDTLS_TEST_HOOKS) */ -void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ) +void mbedtls_lms_unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes) { size_t idx; - for ( idx = 0; idx < len; idx++ ) - { - bytes[idx] = ( val >> ( ( len - 1 - idx ) * 8 ) ) & 0xFF; + for (idx = 0; idx < len; idx++) { + bytes[idx] = (val >> ((len - 1 - idx) * 8)) & 0xFF; } } -unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ) +unsigned int mbedtls_lms_network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes) { size_t idx; unsigned int val = 0; - for ( idx = 0; idx < len; idx++ ) - { - val |= ( ( unsigned int )bytes[idx] ) << (8 * ( len - 1 - idx ) ); + for (idx = 0; idx < len; idx++) { + val |= ((unsigned int) bytes[idx]) << (8 * (len - 1 - idx)); } - return ( val ); + return val; } /* Calculate the checksum digits that are appended to the end of the LMOTS digit @@ -106,18 +104,17 @@ unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, * this does not contain a checksum, it is the same * size as a hash output. */ -static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t *params, - const unsigned char* digest ) +static unsigned short lmots_checksum_calculate(const mbedtls_lmots_parameters_t *params, + const unsigned char *digest) { size_t idx; unsigned sum = 0; - for ( idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN(params->type); idx++ ) - { + for (idx = 0; idx < MBEDTLS_LMOTS_N_HASH_LEN(params->type); idx++) { sum += DIGIT_MAX_VALUE - digest[idx]; } - return ( sum ); + return sum; } /* Create the string of digest digits (in the base determined by the Winternitz @@ -143,58 +140,65 @@ static unsigned short lmots_checksum_calculate( const mbedtls_lmots_parameters_t * MBEDTLS_LMOTS_SHA256_N32_W8, this means it is of * size P bytes). */ -static int create_digit_array_with_checksum( const mbedtls_lmots_parameters_t *params, - const unsigned char *msg, - size_t msg_len, - const unsigned char *C_random_value, - unsigned char *out ) +static int create_digit_array_with_checksum(const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_len, + const unsigned char *C_random_value, + unsigned char *out) { psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned short checksum; - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, params->I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, params->q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, params->q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, D_MESSAGE_CONSTANT_BYTES, D_CONST_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, C_random_value, - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, C_random_value, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(params->type)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, msg, msg_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, msg, msg_len); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, out, - MBEDTLS_LMOTS_N_HASH_LEN(params->type), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, out, + MBEDTLS_LMOTS_N_HASH_LEN(params->type), + &output_hash_len); + if (status != PSA_SUCCESS) { goto exit; + } - checksum = lmots_checksum_calculate( params, out ); - mbedtls_lms_unsigned_int_to_network_bytes( checksum, CHECKSUM_LEN, - out + MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + checksum = lmots_checksum_calculate(params, out); + mbedtls_lms_unsigned_int_to_network_bytes(checksum, CHECKSUM_LEN, + out + MBEDTLS_LMOTS_N_HASH_LEN(params->type)); exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); - return( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } /* Hash each element of the string of digits (+ checksum), producing a hash @@ -226,11 +230,11 @@ exit: * MBEDTLS_LMOTS_SHA256_N32_W8, this is of size 32 * * 34. */ -static int hash_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char *x_digit_array, - const unsigned char *hash_idx_min_values, - const unsigned char *hash_idx_max_values, - unsigned char *output ) +static int hash_digit_array(const mbedtls_lmots_parameters_t *params, + const unsigned char *x_digit_array, + const unsigned char *hash_idx_min_values, + const unsigned char *hash_idx_max_values, + unsigned char *output) { unsigned int i_digit_idx; unsigned char i_digit_idx_bytes[I_DIGIT_IDX_LEN]; @@ -243,76 +247,81 @@ static int hash_digit_array( const mbedtls_lmots_parameters_t *params, size_t output_hash_len; unsigned char tmp_hash[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; - for ( i_digit_idx = 0; - i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); - i_digit_idx++ ) - { + for (i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type); + i_digit_idx++) { - memcpy( tmp_hash, - &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], - MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + memcpy(tmp_hash, + &x_digit_array[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + MBEDTLS_LMOTS_N_HASH_LEN(params->type)); j_hash_idx_min = hash_idx_min_values != NULL ? - hash_idx_min_values[i_digit_idx] : 0; + hash_idx_min_values[i_digit_idx] : 0; j_hash_idx_max = hash_idx_max_values != NULL ? - hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; + hash_idx_max_values[i_digit_idx] : DIGIT_MAX_VALUE; - for ( j_hash_idx = j_hash_idx_min; - j_hash_idx < j_hash_idx_max; - j_hash_idx++ ) - { - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + for (j_hash_idx = j_hash_idx_min; + j_hash_idx < j_hash_idx_max; + j_hash_idx++) { + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, - params->I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, + params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, - params->q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, + params->q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, - I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); - status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - if( status != PSA_SUCCESS ) + mbedtls_lms_unsigned_int_to_network_bytes(i_digit_idx, + I_DIGIT_IDX_LEN, + i_digit_idx_bytes); + status = psa_hash_update(&op, i_digit_idx_bytes, I_DIGIT_IDX_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - mbedtls_lms_unsigned_int_to_network_bytes( j_hash_idx, - J_HASH_IDX_LEN, - j_hash_idx_bytes ); - status = psa_hash_update( &op, j_hash_idx_bytes, J_HASH_IDX_LEN ); - if( status != PSA_SUCCESS ) + mbedtls_lms_unsigned_int_to_network_bytes(j_hash_idx, + J_HASH_IDX_LEN, + j_hash_idx_bytes); + status = psa_hash_update(&op, j_hash_idx_bytes, J_HASH_IDX_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, tmp_hash, - MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, tmp_hash, + MBEDTLS_LMOTS_N_HASH_LEN(params->type)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, tmp_hash, sizeof( tmp_hash ), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, tmp_hash, sizeof(tmp_hash), + &output_hash_len); + if (status != PSA_SUCCESS) { goto exit; + } - psa_hash_abort( &op ); + psa_hash_abort(&op); } - memcpy( &output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], - tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); + memcpy(&output[i_digit_idx * MBEDTLS_LMOTS_N_HASH_LEN(params->type)], + tmp_hash, MBEDTLS_LMOTS_N_HASH_LEN(params->type)); } exit: - psa_hash_abort( &op ); - mbedtls_platform_zeroize( tmp_hash, sizeof( tmp_hash ) ); + psa_hash_abort(&op); + mbedtls_platform_zeroize(tmp_hash, sizeof(tmp_hash)); - return( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } /* Combine the hashes of the digit array into a public key. This is used in @@ -330,276 +339,265 @@ exit: * case this is being run as part of signature * verification), in the form of a hash output. */ -static int public_key_from_hashed_digit_array( const mbedtls_lmots_parameters_t *params, - const unsigned char *y_hashed_digits, - unsigned char *pub_key ) +static int public_key_from_hashed_digit_array(const mbedtls_lmots_parameters_t *params, + const unsigned char *y_hashed_digits, + unsigned char *pub_key) { psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, - params->I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, + params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, params->q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, params->q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, D_PUBLIC_CONSTANT_BYTES, D_CONST_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, y_hashed_digits, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * - MBEDTLS_LMOTS_N_HASH_LEN(params->type) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, y_hashed_digits, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(params->type) * + MBEDTLS_LMOTS_N_HASH_LEN(params->type)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, pub_key, - MBEDTLS_LMOTS_N_HASH_LEN(params->type), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->type), + &output_hash_len); + if (status != PSA_SUCCESS) { exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); + } - return( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } -int mbedtls_lms_error_from_psa( psa_status_t status ) +int mbedtls_lms_error_from_psa(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_SUCCESS: - return( 0 ); + return 0; case PSA_ERROR_HARDWARE_FAILURE: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ); + return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED; case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL; case PSA_ERROR_INVALID_ARGUMENT: - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; default: - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + return MBEDTLS_ERR_ERROR_GENERIC_ERROR; } } -void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_init(mbedtls_lmots_public_t *ctx) { - memset( ctx, 0, sizeof( *ctx ) ) ; + memset(ctx, 0, sizeof(*ctx)); } -void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ) +void mbedtls_lmots_public_free(mbedtls_lmots_public_t *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + mbedtls_platform_zeroize(ctx, sizeof(*ctx)); } -int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, - const unsigned char *key, size_t key_len ) +int mbedtls_lmots_import_public_key(mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_len) { - if( key_len < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (key_len < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } ctx->params.type = - mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET); - if( key_len != MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (key_len != MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type)) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - memcpy( ctx->params.I_key_identifier, - key + PUBLIC_KEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy(ctx->params.I_key_identifier, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN); - memcpy( ctx->params.q_leaf_identifier, - key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + memcpy(ctx->params.q_leaf_identifier, + key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); - memcpy( ctx->public_key, - key + PUBLIC_KEY_KEY_HASH_OFFSET, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + memcpy(ctx->public_key, + key + PUBLIC_KEY_KEY_HASH_OFFSET, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type)); ctx->have_public_key = 1; - return( 0 ); + return 0; } -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ) +int mbedtls_lmots_export_public_key(const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len) { - if( key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + if (key_size < MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type)) { + return MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL; } - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_public_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes(ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + key + MBEDTLS_LMOTS_SIG_TYPE_OFFSET); - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); + memcpy(key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); - memcpy( key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); + memcpy(key + PUBLIC_KEY_Q_LEAF_ID_OFFSET, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); - memcpy( key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + memcpy(key + PUBLIC_KEY_KEY_HASH_OFFSET, ctx->public_key, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type)); - if( key_len != NULL ) - { + if (key_len != NULL) { *key_len = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(ctx->params.type); } - return( 0 ); + return 0; } -int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, - const unsigned char *msg, - size_t msg_size, - const unsigned char *sig, - size_t sig_size, - unsigned char *out, - size_t out_size, - size_t *out_len ) +int mbedtls_lmots_calculate_public_key_candidate(const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( msg == NULL && msg_size != 0 ) - { - return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (msg == NULL && msg_size != 0) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || - out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (sig_size != MBEDTLS_LMOTS_SIG_LEN(params->type) || + out_size < MBEDTLS_LMOTS_N_HASH_LEN(params->type)) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - ret = create_digit_array_with_checksum( params, msg, msg_size, - sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, - tmp_digit_array ); - if( ret ) - { - return ( ret ); + ret = create_digit_array_with_checksum(params, msg, msg_size, + sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, + tmp_digit_array); + if (ret) { + return ret; } - ret = hash_digit_array( params, - sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), - tmp_digit_array, NULL, ( unsigned char * )y_hashed_digits ); - if( ret ) - { - return ( ret ); + ret = hash_digit_array(params, + sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(params->type), + tmp_digit_array, NULL, (unsigned char *) y_hashed_digits); + if (ret) { + return ret; } - ret = public_key_from_hashed_digit_array( params, - ( unsigned char * )y_hashed_digits, - out ); - if( ret ) - { - return ( ret ); + ret = public_key_from_hashed_digit_array(params, + (unsigned char *) y_hashed_digits, + out); + if (ret) { + return ret; } - if( out_len != NULL ) - { + if (out_len != NULL) { *out_len = MBEDTLS_LMOTS_N_HASH_LEN(params->type); } - return( 0 ); + return 0; } -int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, - const unsigned char *msg, size_t msg_size, - const unsigned char *sig, size_t sig_size ) +int mbedtls_lmots_verify(const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size) { unsigned char Kc_public_key_candidate[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( msg == NULL && msg_size != 0 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (msg == NULL && msg_size != 0) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( !ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_public_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->params.type != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->params.type != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( sig_size < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (sig_size < MBEDTLS_LMOTS_SIG_TYPE_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) != + MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - ret = mbedtls_lmots_calculate_public_key_candidate( &ctx->params, - msg, msg_size, sig, sig_size, - Kc_public_key_candidate, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), - NULL ); - if( ret ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + ret = mbedtls_lmots_calculate_public_key_candidate(&ctx->params, + msg, msg_size, sig, sig_size, + Kc_public_key_candidate, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), + NULL); + if (ret) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( memcmp( &Kc_public_key_candidate, ctx->public_key, - sizeof( ctx->public_key ) ) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (memcmp(&Kc_public_key_candidate, ctx->public_key, + sizeof(ctx->public_key))) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - return( 0 ); + return 0; } #if defined(MBEDTLS_LMS_PRIVATE) -void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_init(mbedtls_lmots_private_t *ctx) { - memset( ctx, 0, sizeof( *ctx ) ) ; + memset(ctx, 0, sizeof(*ctx)); } -void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ) +void mbedtls_lmots_private_free(mbedtls_lmots_private_t *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ) ; + mbedtls_platform_zeroize(ctx, + sizeof(*ctx)); } -int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, - mbedtls_lmots_algorithm_type_t type, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - uint32_t q_leaf_identifier, - const unsigned char *seed, - size_t seed_size ) +int mbedtls_lmots_generate_private_key(mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size) { psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -608,124 +606,125 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, unsigned char i_digit_idx_bytes[2]; unsigned char const_bytes[1]; - if( ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( type != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (type != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } ctx->params.type = type; - memcpy( ctx->params.I_key_identifier, - I_key_identifier, - sizeof( ctx->params.I_key_identifier ) ); + memcpy(ctx->params.I_key_identifier, + I_key_identifier, + sizeof(ctx->params.I_key_identifier)); - mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ctx->params.q_leaf_identifier ); + mbedtls_lms_unsigned_int_to_network_bytes(q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + ctx->params.q_leaf_identifier); - mbedtls_lms_unsigned_int_to_network_bytes( 0xFF, sizeof( const_bytes ), - const_bytes ); + mbedtls_lms_unsigned_int_to_network_bytes(0xFF, sizeof(const_bytes), + const_bytes); - for ( i_digit_idx = 0; - i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); - i_digit_idx++ ) - { - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + for (i_digit_idx = 0; + i_digit_idx < MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type); + i_digit_idx++) { + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, - ctx->params.I_key_identifier, - sizeof( ctx->params.I_key_identifier ) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, + ctx->params.I_key_identifier, + sizeof(ctx->params.I_key_identifier)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, - ctx->params.q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, + ctx->params.q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - mbedtls_lms_unsigned_int_to_network_bytes( i_digit_idx, I_DIGIT_IDX_LEN, - i_digit_idx_bytes ); - status = psa_hash_update( &op, i_digit_idx_bytes, I_DIGIT_IDX_LEN ); - if( status != PSA_SUCCESS ) + mbedtls_lms_unsigned_int_to_network_bytes(i_digit_idx, I_DIGIT_IDX_LEN, + i_digit_idx_bytes); + status = psa_hash_update(&op, i_digit_idx_bytes, I_DIGIT_IDX_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, const_bytes, sizeof( const_bytes ) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, const_bytes, sizeof(const_bytes)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, seed, seed_size ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, seed, seed_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, - ctx->private_key[i_digit_idx], - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, + ctx->private_key[i_digit_idx], + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type), + &output_hash_len); + if (status != PSA_SUCCESS) { goto exit; + } - psa_hash_abort( &op ); + psa_hash_abort(&op); } ctx->have_private_key = 1; exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); - return ( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } -int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - const mbedtls_lmots_private_t *priv_ctx ) +int mbedtls_lmots_calculate_public_key(mbedtls_lmots_public_t *ctx, + const mbedtls_lmots_private_t *priv_ctx) { unsigned char y_hashed_digits[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX][MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that a private key is loaded */ - if( !priv_ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!priv_ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - ret = hash_digit_array( &priv_ctx->params, - ( unsigned char * )priv_ctx->private_key, NULL, - NULL, ( unsigned char * )y_hashed_digits ); - if( ret ) - { + ret = hash_digit_array(&priv_ctx->params, + (unsigned char *) priv_ctx->private_key, NULL, + NULL, (unsigned char *) y_hashed_digits); + if (ret) { goto exit; } - ret = public_key_from_hashed_digit_array( &priv_ctx->params, - ( unsigned char * )y_hashed_digits, - ctx->public_key ); - if( ret ) - { + ret = public_key_from_hashed_digit_array(&priv_ctx->params, + (unsigned char *) y_hashed_digits, + ctx->public_key); + if (ret) { goto exit; } - memcpy( &ctx->params, &priv_ctx->params, - sizeof( ctx->params ) ); + memcpy(&ctx->params, &priv_ctx->params, + sizeof(ctx->params)); ctx->have_public_key = 1; exit: - mbedtls_platform_zeroize( y_hashed_digits, sizeof( y_hashed_digits ) ); + mbedtls_platform_zeroize(y_hashed_digits, sizeof(y_hashed_digits)); - return( ret ); + return ret; } -int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_size, - unsigned char *sig, size_t sig_size, size_t* sig_len ) +int mbedtls_lmots_sign(mbedtls_lmots_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len) { unsigned char tmp_digit_array[MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT_MAX]; /* Create a temporary buffer to prepare the signature in. This allows us to @@ -739,58 +738,52 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, unsigned char tmp_c_random[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( msg == NULL && msg_size != 0 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (msg == NULL && msg_size != 0) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( sig_size < MBEDTLS_LMOTS_SIG_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + if (sig_size < MBEDTLS_LMOTS_SIG_LEN(ctx->params.type)) { + return MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL; } /* Check that a private key is loaded */ - if( !ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - ret = f_rng( p_rng, tmp_c_random, - MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); - if( ret ) - { - return( ret ); + ret = f_rng(p_rng, tmp_c_random, + MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type)); + if (ret) { + return ret; } - ret = create_digit_array_with_checksum( &ctx->params, - msg, msg_size, - tmp_c_random, - tmp_digit_array ); - if( ret ) - { + ret = create_digit_array_with_checksum(&ctx->params, + msg, msg_size, + tmp_c_random, + tmp_digit_array); + if (ret) { goto exit; } - ret = hash_digit_array( &ctx->params, ( unsigned char * )ctx->private_key, - NULL, tmp_digit_array, ( unsigned char * )tmp_sig ); - if( ret ) - { + ret = hash_digit_array(&ctx->params, (unsigned char *) ctx->private_key, + NULL, tmp_digit_array, (unsigned char *) tmp_sig); + if (ret) { goto exit; } - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMOTS_TYPE_LEN, - sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes(ctx->params.type, + MBEDTLS_LMOTS_TYPE_LEN, + sig + MBEDTLS_LMOTS_SIG_TYPE_OFFSET); /* Test hook to check if sig is being written to before we invalidate the * private key. */ #if defined(MBEDTLS_TEST_HOOKS) - if( mbedtls_lmots_sign_private_key_invalidated_hook != NULL ) - { - ret = ( *mbedtls_lmots_sign_private_key_invalidated_hook )( sig ); - if( ret != 0 ) - return( ret ); + if (mbedtls_lmots_sign_private_key_invalidated_hook != NULL) { + ret = (*mbedtls_lmots_sign_private_key_invalidated_hook)(sig); + if (ret != 0) { + return ret; + } } #endif /* defined(MBEDTLS_TEST_HOOKS) */ @@ -798,28 +791,27 @@ int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, * key can't be reused. */ ctx->have_private_key = 0; - mbedtls_platform_zeroize( ctx->private_key, - sizeof( ctx->private_key ) ); + mbedtls_platform_zeroize(ctx->private_key, + sizeof(ctx->private_key)); - memcpy( sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, - MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type) ); + memcpy(sig + MBEDTLS_LMOTS_SIG_C_RANDOM_OFFSET, tmp_c_random, + MBEDTLS_LMOTS_C_RANDOM_VALUE_LEN(ctx->params.type)); - memcpy( sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(ctx->params.type), tmp_sig, - MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type) - * MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type) ); + memcpy(sig + MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(ctx->params.type), tmp_sig, + MBEDTLS_LMOTS_P_SIG_DIGIT_COUNT(ctx->params.type) + * MBEDTLS_LMOTS_N_HASH_LEN(ctx->params.type)); - if( sig_len != NULL ) - { + if (sig_len != NULL) { *sig_len = MBEDTLS_LMOTS_SIG_LEN(ctx->params.type); } ret = 0; exit: - mbedtls_platform_zeroize( tmp_digit_array, sizeof( tmp_digit_array ) ); - mbedtls_platform_zeroize( tmp_sig, sizeof( tmp_sig ) ); + mbedtls_platform_zeroize(tmp_digit_array, sizeof(tmp_digit_array)); + mbedtls_platform_zeroize(tmp_sig, sizeof(tmp_sig)); - return ( ret ); + return ret; } #endif /* defined(MBEDTLS_LMS_PRIVATE) */ diff --git a/library/lmots.h b/library/lmots.h index 022dcf3d4..deeeacea8 100644 --- a/library/lmots.h +++ b/library/lmots.h @@ -53,7 +53,7 @@ extern "C" { #if defined(MBEDTLS_TEST_HOOKS) -extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * ); +extern int (*mbedtls_lmots_sign_private_key_invalidated_hook)(unsigned char *); #endif /* defined(MBEDTLS_TEST_HOOKS) */ /** @@ -64,8 +64,8 @@ extern int( *mbedtls_lmots_sign_private_key_invalidated_hook )( unsigned char * * \param len The length of the string. * \param bytes The string to output into. */ -void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, - unsigned char *bytes ); +void mbedtls_lms_unsigned_int_to_network_bytes(unsigned int val, size_t len, + unsigned char *bytes); /** * \brief This function converts a network-byte-order @@ -76,8 +76,8 @@ void mbedtls_lms_unsigned_int_to_network_bytes( unsigned int val, size_t len, * * \return The corresponding LMS error code. */ -unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, - const unsigned char *bytes ); +unsigned int mbedtls_lms_network_bytes_to_unsigned_int(size_t len, + const unsigned char *bytes); /** * \brief This function converts a \ref psa_status_t to a @@ -87,7 +87,7 @@ unsigned int mbedtls_lms_network_bytes_to_unsigned_int( size_t len, * * \return The corresponding LMS error code. */ -int mbedtls_lms_error_from_psa( psa_status_t status ); +int mbedtls_lms_error_from_psa(psa_status_t status); /** @@ -96,7 +96,7 @@ int mbedtls_lms_error_from_psa( psa_status_t status ); * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_init(mbedtls_lmots_public_t *ctx); /** * \brief This function uninitializes a public LMOTS context @@ -104,7 +104,7 @@ void mbedtls_lmots_public_init( mbedtls_lmots_public_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); +void mbedtls_lmots_public_free(mbedtls_lmots_public_t *ctx); /** * \brief This function imports an LMOTS public key into a @@ -124,8 +124,8 @@ void mbedtls_lmots_public_free( mbedtls_lmots_public_t *ctx ); * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, - const unsigned char *key, size_t key_size ); +int mbedtls_lmots_import_public_key(mbedtls_lmots_public_t *ctx, + const unsigned char *key, size_t key_size); /** * \brief This function exports an LMOTS public key from a @@ -146,9 +146,9 @@ int mbedtls_lmots_import_public_key( mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, - unsigned char *key, size_t key_size, - size_t *key_len ); +int mbedtls_lmots_export_public_key(const mbedtls_lmots_public_t *ctx, + unsigned char *key, size_t key_size, + size_t *key_len); /** * \brief This function creates a candidate public key from @@ -175,14 +175,14 @@ int mbedtls_lmots_export_public_key( const mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters_t *params, - const unsigned char *msg, - size_t msg_size, - const unsigned char *sig, - size_t sig_size, - unsigned char *out, - size_t out_size, - size_t *out_len ); +int mbedtls_lmots_calculate_public_key_candidate(const mbedtls_lmots_parameters_t *params, + const unsigned char *msg, + size_t msg_size, + const unsigned char *sig, + size_t sig_size, + unsigned char *out, + size_t out_size, + size_t *out_len); /** * \brief This function verifies a LMOTS signature, using a @@ -209,10 +209,10 @@ int mbedtls_lmots_calculate_public_key_candidate( const mbedtls_lmots_parameters * \return \c 0 on successful verification. * \return A non-zero error code on failure. */ -int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, - const unsigned char *msg, - size_t msg_size, const unsigned char *sig, - size_t sig_size ); +int mbedtls_lmots_verify(const mbedtls_lmots_public_t *ctx, + const unsigned char *msg, + size_t msg_size, const unsigned char *sig, + size_t sig_size); #if defined(MBEDTLS_LMS_PRIVATE) @@ -222,7 +222,7 @@ int mbedtls_lmots_verify( const mbedtls_lmots_public_t *ctx, * \param ctx The uninitialized LMOTS context that will then be * initialized. */ -void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_init(mbedtls_lmots_private_t *ctx); /** * \brief This function uninitializes a private LMOTS context @@ -230,7 +230,7 @@ void mbedtls_lmots_private_init( mbedtls_lmots_private_t *ctx ); * \param ctx The initialized LMOTS context that will then be * uninitialized. */ -void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); +void mbedtls_lmots_private_free(mbedtls_lmots_private_t *ctx); /** * \brief This function calculates an LMOTS private key, and @@ -256,12 +256,12 @@ void mbedtls_lmots_private_free( mbedtls_lmots_private_t *ctx ); * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, - mbedtls_lmots_algorithm_type_t type, - const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], - uint32_t q_leaf_identifier, - const unsigned char *seed, - size_t seed_size ); +int mbedtls_lmots_generate_private_key(mbedtls_lmots_private_t *ctx, + mbedtls_lmots_algorithm_type_t type, + const unsigned char I_key_identifier[MBEDTLS_LMOTS_I_KEY_ID_LEN], + uint32_t q_leaf_identifier, + const unsigned char *seed, + size_t seed_size); /** * \brief This function generates an LMOTS public key from a @@ -277,8 +277,8 @@ int mbedtls_lmots_generate_private_key( mbedtls_lmots_private_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, - const mbedtls_lmots_private_t *priv_ctx ); +int mbedtls_lmots_calculate_public_key(mbedtls_lmots_public_t *ctx, + const mbedtls_lmots_private_t *priv_ctx); /** * \brief This function creates a LMOTS signature, using a @@ -308,10 +308,10 @@ int mbedtls_lmots_calculate_public_key( mbedtls_lmots_public_t *ctx, * \return \c 0 on success. * \return A non-zero error code on failure. */ -int mbedtls_lmots_sign( mbedtls_lmots_private_t *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, const unsigned char *msg, size_t msg_size, - unsigned char *sig, size_t sig_size, size_t* sig_len ); +int mbedtls_lmots_sign(mbedtls_lmots_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, size_t msg_size, + unsigned char *sig, size_t sig_size, size_t *sig_len); #endif /* defined(MBEDTLS_LMS_PRIVATE) */ diff --git a/library/lms.c b/library/lms.c index 78c7d2666..76bcc19af 100644 --- a/library/lms.c +++ b/library/lms.c @@ -70,8 +70,8 @@ #define MERKLE_TREE_INTERNAL_NODE_AM(type) ((size_t) 1 << MBEDTLS_LMS_H_TREE_HEIGHT(type)) #define D_CONST_LEN (2) -static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = {0x82, 0x82}; -static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; +static const unsigned char D_LEAF_CONSTANT_BYTES[D_CONST_LEN] = { 0x82, 0x82 }; +static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = { 0x83, 0x83 }; /* Calculate the value of a leaf node of the Merkle tree (which is a hash of a @@ -92,49 +92,55 @@ static const unsigned char D_INTR_CONSTANT_BYTES[D_CONST_LEN] = {0x83, 0x83}; * * out The output node value, which is a hash output. */ -static int create_merkle_leaf_value( const mbedtls_lms_parameters_t *params, - unsigned char *pub_key, - unsigned int r_node_idx, - unsigned char *out ) +static int create_merkle_leaf_value(const mbedtls_lms_parameters_t *params, + unsigned char *pub_key, + unsigned int r_node_idx, + unsigned char *out) { psa_hash_operation_t op; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - op = psa_hash_operation_init( ); - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + op = psa_hash_operation_init(); + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, params->I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - if( status != PSA_SUCCESS ) + mbedtls_lms_unsigned_int_to_network_bytes(r_node_idx, 4, r_node_idx_bytes); + status = psa_hash_update(&op, r_node_idx_bytes, 4); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, D_LEAF_CONSTANT_BYTES, D_CONST_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, pub_key, - MBEDTLS_LMOTS_N_HASH_LEN(params->otstype) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, pub_key, + MBEDTLS_LMOTS_N_HASH_LEN(params->otstype)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); + if (status != PSA_SUCCESS) { goto exit; + } exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); - return ( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } /* Calculate the value of an internal node of the Merkle tree (which is a hash @@ -159,143 +165,144 @@ exit: * * out The output node value, which is a hash output. */ -static int create_merkle_internal_value( const mbedtls_lms_parameters_t *params, - const unsigned char *left_node, - const unsigned char *right_node, - unsigned int r_node_idx, - unsigned char *out ) +static int create_merkle_internal_value(const mbedtls_lms_parameters_t *params, + const unsigned char *left_node, + const unsigned char *right_node, + unsigned int r_node_idx, + unsigned char *out) { psa_hash_operation_t op; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_hash_len; unsigned char r_node_idx_bytes[4]; - op = psa_hash_operation_init( ); - status = psa_hash_setup( &op, PSA_ALG_SHA_256 ); - if( status != PSA_SUCCESS ) + op = psa_hash_operation_init(); + status = psa_hash_setup(&op, PSA_ALG_SHA_256); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, params->I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, params->I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - mbedtls_lms_unsigned_int_to_network_bytes( r_node_idx, 4, r_node_idx_bytes ); - status = psa_hash_update( &op, r_node_idx_bytes, 4 ); - if( status != PSA_SUCCESS ) + mbedtls_lms_unsigned_int_to_network_bytes(r_node_idx, 4, r_node_idx_bytes); + status = psa_hash_update(&op, r_node_idx_bytes, 4); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, D_INTR_CONSTANT_BYTES, D_CONST_LEN ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, D_INTR_CONSTANT_BYTES, D_CONST_LEN); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, left_node, - MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, left_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &op, right_node, - MBEDTLS_LMS_M_NODE_BYTES(params->type) ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&op, right_node, + MBEDTLS_LMS_M_NODE_BYTES(params->type)); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), - &output_hash_len ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&op, out, MBEDTLS_LMS_M_NODE_BYTES(params->type), + &output_hash_len); + if (status != PSA_SUCCESS) { goto exit; + } exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); - return( mbedtls_lms_error_from_psa( status ) ); + return mbedtls_lms_error_from_psa(status); } -void mbedtls_lms_public_init( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_init(mbedtls_lms_public_t *ctx) { - memset( ctx, 0, sizeof( *ctx ) ) ; + memset(ctx, 0, sizeof(*ctx)); } -void mbedtls_lms_public_free( mbedtls_lms_public_t *ctx ) +void mbedtls_lms_public_free(mbedtls_lms_public_t *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); + mbedtls_platform_zeroize(ctx, sizeof(*ctx)); } -int mbedtls_lms_import_public_key( mbedtls_lms_public_t *ctx, - const unsigned char *key, size_t key_size ) +int mbedtls_lms_import_public_key(mbedtls_lms_public_t *ctx, + const unsigned char *key, size_t key_size) { mbedtls_lms_algorithm_type_t type; mbedtls_lmots_algorithm_type_t otstype; - type = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - key + PUBLIC_KEY_TYPE_OFFSET ); - if( type != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + type = mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMS_TYPE_LEN, + key + PUBLIC_KEY_TYPE_OFFSET); + if (type != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } ctx->params.type = type; - if( key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (key_size != MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type)) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - otstype = mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - key + PUBLIC_KEY_OTSTYPE_OFFSET ); - if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + otstype = mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMOTS_TYPE_LEN, + key + PUBLIC_KEY_OTSTYPE_OFFSET); + if (otstype != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } ctx->params.otstype = otstype; - memcpy( ctx->params.I_key_identifier, - key + PUBLIC_KEY_I_KEY_ID_OFFSET, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( ctx->T_1_pub_key, key + PUBLIC_KEY_ROOT_NODE_OFFSET, - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + memcpy(ctx->params.I_key_identifier, + key + PUBLIC_KEY_I_KEY_ID_OFFSET, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + memcpy(ctx->T_1_pub_key, key + PUBLIC_KEY_ROOT_NODE_OFFSET, + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); ctx->have_public_key = 1; - return( 0 ); + return 0; } -int mbedtls_lms_export_public_key( const mbedtls_lms_public_t *ctx, - unsigned char *key, - size_t key_size, size_t *key_len ) +int mbedtls_lms_export_public_key(const mbedtls_lms_public_t *ctx, + unsigned char *key, + size_t key_size, size_t *key_len) { - if( key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + if (key_size < MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type)) { + return MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL; } - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_public_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } mbedtls_lms_unsigned_int_to_network_bytes( - ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET ); - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.otstype, - MBEDTLS_LMOTS_TYPE_LEN, - key + PUBLIC_KEY_OTSTYPE_OFFSET ); - memcpy( key + PUBLIC_KEY_I_KEY_ID_OFFSET, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - memcpy( key +PUBLIC_KEY_ROOT_NODE_OFFSET, - ctx->T_1_pub_key, - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type) ); + ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, key + PUBLIC_KEY_TYPE_OFFSET); + mbedtls_lms_unsigned_int_to_network_bytes(ctx->params.otstype, + MBEDTLS_LMOTS_TYPE_LEN, + key + PUBLIC_KEY_OTSTYPE_OFFSET); + memcpy(key + PUBLIC_KEY_I_KEY_ID_OFFSET, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + memcpy(key +PUBLIC_KEY_ROOT_NODE_OFFSET, + ctx->T_1_pub_key, + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)); - if( key_len != NULL ) - { + if (key_len != NULL) { *key_len = MBEDTLS_LMS_PUBLIC_KEY_LEN(ctx->params.type); } - return( 0 ); + return 0; } -int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, - const unsigned char *msg, size_t msg_size, - const unsigned char *sig, size_t sig_size ) +int mbedtls_lms_verify(const mbedtls_lms_public_t *ctx, + const unsigned char *msg, size_t msg_size, + const unsigned char *sig, size_t sig_size) { unsigned int q_leaf_identifier; unsigned char Kc_candidate_ots_pub_key[MBEDTLS_LMOTS_N_HASH_LEN_MAX]; @@ -303,124 +310,114 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, unsigned int height; unsigned int curr_node_id; unsigned int parent_node_id; - const unsigned char* left_node; - const unsigned char* right_node; + const unsigned char *left_node; + const unsigned char *right_node; mbedtls_lmots_parameters_t ots_params; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->have_public_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_public_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->params.type - != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->params.type + != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->params.otstype - != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->params.otstype + != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (sig_size != MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype)) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( sig_size < SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_TYPE_LEN ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (sig_size < SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_TYPE_LEN) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMOTS_TYPE_LEN, - sig + SIG_OTS_SIG_OFFSET + MBEDTLS_LMOTS_SIG_TYPE_OFFSET ) - != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMOTS_TYPE_LEN, + sig + SIG_OTS_SIG_OFFSET + + MBEDTLS_LMOTS_SIG_TYPE_OFFSET) + != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( sig_size < SIG_TYPE_OFFSET(ctx->params.otstype) + MBEDTLS_LMS_TYPE_LEN ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (sig_size < SIG_TYPE_OFFSET(ctx->params.otstype) + MBEDTLS_LMS_TYPE_LEN) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - if( mbedtls_lms_network_bytes_to_unsigned_int( MBEDTLS_LMS_TYPE_LEN, - sig + SIG_TYPE_OFFSET(ctx->params.otstype)) - != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (mbedtls_lms_network_bytes_to_unsigned_int(MBEDTLS_LMS_TYPE_LEN, + sig + SIG_TYPE_OFFSET(ctx->params.otstype)) + != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } q_leaf_identifier = mbedtls_lms_network_bytes_to_unsigned_int( - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + SIG_Q_LEAF_ID_OFFSET ); + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, sig + SIG_Q_LEAF_ID_OFFSET); - if( q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (q_leaf_identifier >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type)) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - memcpy( ots_params.I_key_identifier, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, + memcpy(ots_params.I_key_identifier, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + mbedtls_lms_unsigned_int_to_network_bytes(q_leaf_identifier, MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - ots_params.q_leaf_identifier ); + ots_params.q_leaf_identifier); ots_params.type = ctx->params.otstype; - ret = mbedtls_lmots_calculate_public_key_candidate( &ots_params, msg, - msg_size, sig + SIG_OTS_SIG_OFFSET, - MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), Kc_candidate_ots_pub_key, - sizeof( Kc_candidate_ots_pub_key ), NULL ); - if( ret != 0 ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + ret = mbedtls_lmots_calculate_public_key_candidate(&ots_params, + msg, + msg_size, + sig + SIG_OTS_SIG_OFFSET, + MBEDTLS_LMOTS_SIG_LEN(ctx->params.otstype), + Kc_candidate_ots_pub_key, + sizeof(Kc_candidate_ots_pub_key), + NULL); + if (ret != 0) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } create_merkle_leaf_value( - &ctx->params, - Kc_candidate_ots_pub_key, - MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - Tc_candidate_root_node ); + &ctx->params, + Kc_candidate_ots_pub_key, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + Tc_candidate_root_node); curr_node_id = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier; - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); - height++ ) - { + for (height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++) { parent_node_id = curr_node_id / 2; /* Left/right node ordering matters for the hash */ - if( curr_node_id & 1 ) - { + if (curr_node_id & 1) { left_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); right_node = Tc_candidate_root_node; - } - else - { + } else { left_node = Tc_candidate_root_node; right_node = sig + SIG_PATH_OFFSET(ctx->params.otstype) + height * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); } - create_merkle_internal_value( &ctx->params, left_node, right_node, - parent_node_id, Tc_candidate_root_node); + create_merkle_internal_value(&ctx->params, left_node, right_node, + parent_node_id, Tc_candidate_root_node); curr_node_id /= 2; } - if( memcmp( Tc_candidate_root_node, ctx->T_1_pub_key, - MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)) ) - { - return( MBEDTLS_ERR_LMS_VERIFY_FAILED ); + if (memcmp(Tc_candidate_root_node, ctx->T_1_pub_key, + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type))) { + return MBEDTLS_ERR_LMS_VERIFY_FAILED; } - return( 0 ); + return 0; } #if defined(MBEDTLS_LMS_PRIVATE) @@ -439,47 +436,48 @@ int mbedtls_lms_verify( const mbedtls_lms_public_t *ctx, * because the Merkle tree root is 1-indexed, the 0 * index tree node is never used. */ -static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, - unsigned char *tree ) +static int calculate_merkle_tree(const mbedtls_lms_private_t *ctx, + unsigned char *tree) { unsigned int priv_key_idx; unsigned int r_node_idx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* First create the leaf nodes, in ascending order */ - for( priv_key_idx = 0; + for (priv_key_idx = 0; priv_key_idx < MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type); - priv_key_idx++ ) - { + priv_key_idx++) { r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + priv_key_idx; - ret = create_merkle_leaf_value( &ctx->params, - ctx->ots_public_keys[priv_key_idx].public_key, r_node_idx, - &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret != 0 ) - { - return( ret ); + ret = create_merkle_leaf_value(&ctx->params, + ctx->ots_public_keys[priv_key_idx].public_key, + r_node_idx, + &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES( + ctx->params.type)]); + if (ret != 0) { + return ret; } } /* Then the internal nodes, in reverse order so that we can guarantee the * parent has been created */ - for( r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) - 1; + for (r_node_idx = MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) - 1; r_node_idx > 0; - r_node_idx-- ) - { - ret = create_merkle_internal_value( &ctx->params, - &tree[( r_node_idx * 2 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - &tree[( r_node_idx * 2 + 1 ) * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], - r_node_idx, - &tree[r_node_idx * MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)] ); - if( ret != 0 ) - { - return( ret ); + r_node_idx--) { + ret = create_merkle_internal_value(&ctx->params, + &tree[(r_node_idx * 2) * + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + &tree[(r_node_idx * 2 + 1) * + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)], + r_node_idx, + &tree[r_node_idx * + MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type)]); + if (ret != 0) { + return ret; } } - return( 0 ); + return 0; } /* Calculate a path from a leaf node of the Merkle tree to the root of the tree, @@ -494,9 +492,9 @@ static int calculate_merkle_tree( const mbedtls_lms_private_t *ctx, * * path The output path, which is H hash outputs. */ -static int get_merkle_path( mbedtls_lms_private_t *ctx, - unsigned int leaf_node_id, - unsigned char *path ) +static int get_merkle_path(mbedtls_lms_private_t *ctx, + unsigned int leaf_node_id, + unsigned char *path) { const size_t node_bytes = MBEDTLS_LMS_M_NODE_BYTES(ctx->params.type); unsigned int curr_node_id = leaf_node_id; @@ -505,254 +503,229 @@ static int get_merkle_path( mbedtls_lms_private_t *ctx, unsigned int height; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - tree = mbedtls_calloc( MERKLE_TREE_NODE_AM(ctx->params.type), - node_bytes ); - if ( tree == NULL ) - { + tree = mbedtls_calloc(MERKLE_TREE_NODE_AM(ctx->params.type), + node_bytes); + if (tree == NULL) { return MBEDTLS_ERR_LMS_ALLOC_FAILED; } - ret = calculate_merkle_tree( ctx, tree ); - if( ret != 0 ) - { + ret = calculate_merkle_tree(ctx, tree); + if (ret != 0) { goto exit; } - for( height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); - height++ ) - { + for (height = 0; height < MBEDTLS_LMS_H_TREE_HEIGHT(ctx->params.type); + height++) { adjacent_node_id = curr_node_id ^ 1; - memcpy( &path[height * node_bytes], - &tree[adjacent_node_id * node_bytes], node_bytes ); + memcpy(&path[height * node_bytes], + &tree[adjacent_node_id * node_bytes], node_bytes); - curr_node_id >>=1; + curr_node_id >>= 1; } ret = 0; exit: - mbedtls_platform_zeroize( tree, node_bytes * - MERKLE_TREE_NODE_AM(ctx->params.type) ); - mbedtls_free ( tree ); + mbedtls_platform_zeroize(tree, node_bytes * + MERKLE_TREE_NODE_AM(ctx->params.type)); + mbedtls_free(tree); - return( ret ); + return ret; } -void mbedtls_lms_private_init( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_init(mbedtls_lms_private_t *ctx) { - memset( ctx, 0, sizeof( *ctx ) ) ; + memset(ctx, 0, sizeof(*ctx)); } -void mbedtls_lms_private_free( mbedtls_lms_private_t *ctx ) +void mbedtls_lms_private_free(mbedtls_lms_private_t *ctx) { unsigned int idx; - if( ctx->have_private_key ) - { - if( ctx->ots_private_keys != NULL ) - { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) - { - mbedtls_lmots_private_free( &ctx->ots_private_keys[idx] ); + if (ctx->have_private_key) { + if (ctx->ots_private_keys != NULL) { + for (idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++) { + mbedtls_lmots_private_free(&ctx->ots_private_keys[idx]); } } - if( ctx->ots_public_keys != NULL ) - { - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) - { - mbedtls_lmots_public_free( &ctx->ots_public_keys[idx] ); + if (ctx->ots_public_keys != NULL) { + for (idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++) { + mbedtls_lmots_public_free(&ctx->ots_public_keys[idx]); } } - mbedtls_free( ctx->ots_private_keys ); - mbedtls_free( ctx->ots_public_keys ); + mbedtls_free(ctx->ots_private_keys); + mbedtls_free(ctx->ots_public_keys); } - mbedtls_platform_zeroize( ctx, sizeof( *ctx ) ); + mbedtls_platform_zeroize(ctx, sizeof(*ctx)); } -int mbedtls_lms_generate_private_key( mbedtls_lms_private_t *ctx, - mbedtls_lms_algorithm_type_t type, - mbedtls_lmots_algorithm_type_t otstype, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, const unsigned char *seed, - size_t seed_size ) +int mbedtls_lms_generate_private_key(mbedtls_lms_private_t *ctx, + mbedtls_lms_algorithm_type_t type, + mbedtls_lmots_algorithm_type_t otstype, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *seed, + size_t seed_size) { unsigned int idx = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( type != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (type != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( otstype != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (otstype != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } ctx->params.type = type; ctx->params.otstype = otstype; ctx->have_private_key = 1; - ret = f_rng( p_rng, - ctx->params.I_key_identifier, - MBEDTLS_LMOTS_I_KEY_ID_LEN ); - if( ret != 0 ) - { + ret = f_rng(p_rng, + ctx->params.I_key_identifier, + MBEDTLS_LMOTS_I_KEY_ID_LEN); + if (ret != 0) { goto exit; } /* Requires a cast to size_t to avoid an implicit cast warning on certain * platforms (particularly Windows) */ - ctx->ots_private_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( *ctx->ots_private_keys ) ); - if( ctx->ots_private_keys == NULL ) - { + ctx->ots_private_keys = mbedtls_calloc((size_t) MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof(*ctx->ots_private_keys)); + if (ctx->ots_private_keys == NULL) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } /* Requires a cast to size_t to avoid an implicit cast warning on certain * platforms (particularly Windows) */ - ctx->ots_public_keys = mbedtls_calloc( ( size_t )MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), - sizeof( *ctx->ots_public_keys ) ); - if( ctx->ots_public_keys == NULL ) - { + ctx->ots_public_keys = mbedtls_calloc((size_t) MERKLE_TREE_LEAF_NODE_AM(ctx->params.type), + sizeof(*ctx->ots_public_keys)); + if (ctx->ots_public_keys == NULL) { ret = MBEDTLS_ERR_LMS_ALLOC_FAILED; goto exit; } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) - { - mbedtls_lmots_private_init( &ctx->ots_private_keys[idx] ); - mbedtls_lmots_public_init( &ctx->ots_public_keys[idx] ); + for (idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++) { + mbedtls_lmots_private_init(&ctx->ots_private_keys[idx]); + mbedtls_lmots_public_init(&ctx->ots_public_keys[idx]); } - for( idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++ ) - { - ret = mbedtls_lmots_generate_private_key( &ctx->ots_private_keys[idx], - otstype, - ctx->params.I_key_identifier, - idx, seed, seed_size ); - if( ret != 0 ) + for (idx = 0; idx < MERKLE_TREE_LEAF_NODE_AM(ctx->params.type); idx++) { + ret = mbedtls_lmots_generate_private_key(&ctx->ots_private_keys[idx], + otstype, + ctx->params.I_key_identifier, + idx, seed, seed_size); + if (ret != 0) { goto exit; + } - ret = mbedtls_lmots_calculate_public_key( &ctx->ots_public_keys[idx], - &ctx->ots_private_keys[idx] ); - if( ret != 0 ) + ret = mbedtls_lmots_calculate_public_key(&ctx->ots_public_keys[idx], + &ctx->ots_private_keys[idx]); + if (ret != 0) { goto exit; + } } ctx->q_next_usable_key = 0; exit: - if( ret != 0 ) - { + if (ret != 0) { mbedtls_lms_private_free(ctx); } - return( ret ); + return ret; } -int mbedtls_lms_calculate_public_key( mbedtls_lms_public_t *ctx, - const mbedtls_lms_private_t *priv_ctx ) +int mbedtls_lms_calculate_public_key(mbedtls_lms_public_t *ctx, + const mbedtls_lms_private_t *priv_ctx) { const size_t node_bytes = MBEDTLS_LMS_M_NODE_BYTES(priv_ctx->params.type); int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *tree = NULL; - if( ! priv_ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!priv_ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( priv_ctx->params.type - != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (priv_ctx->params.type + != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( priv_ctx->params.otstype - != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (priv_ctx->params.otstype + != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - tree = mbedtls_calloc( MERKLE_TREE_NODE_AM(priv_ctx->params.type), - node_bytes ); - if ( tree == NULL ) - { + tree = mbedtls_calloc(MERKLE_TREE_NODE_AM(priv_ctx->params.type), + node_bytes); + if (tree == NULL) { return MBEDTLS_ERR_LMS_ALLOC_FAILED; } - memcpy( &ctx->params, &priv_ctx->params, - sizeof( mbedtls_lmots_parameters_t ) ); + memcpy(&ctx->params, &priv_ctx->params, + sizeof(mbedtls_lmots_parameters_t)); - ret = calculate_merkle_tree( priv_ctx, tree ); - if( ret != 0 ) - { + ret = calculate_merkle_tree(priv_ctx, tree); + if (ret != 0) { goto exit; } /* Root node is always at position 1, due to 1-based indexing */ - memcpy( ctx->T_1_pub_key, &tree[node_bytes], node_bytes ); + memcpy(ctx->T_1_pub_key, &tree[node_bytes], node_bytes); ctx->have_public_key = 1; ret = 0; exit: - mbedtls_platform_zeroize( tree, node_bytes * - MERKLE_TREE_NODE_AM(priv_ctx->params.type) ); - mbedtls_free ( tree ); + mbedtls_platform_zeroize(tree, node_bytes * + MERKLE_TREE_NODE_AM(priv_ctx->params.type)); + mbedtls_free(tree); - return( ret ); + return ret; } -int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void* p_rng, const unsigned char *msg, - unsigned int msg_size, unsigned char *sig, size_t sig_size, - size_t *sig_len ) +int mbedtls_lms_sign(mbedtls_lms_private_t *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, const unsigned char *msg, + unsigned int msg_size, unsigned char *sig, size_t sig_size, + size_t *sig_len) { uint32_t q_leaf_identifier; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ! ctx->have_private_key ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (!ctx->have_private_key) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( sig_size < MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) ) - { - return( MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + if (sig_size < MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype)) { + return MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL; } - if( ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->params.type != MBEDTLS_LMS_SHA256_M32_H10) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->params.otstype - != MBEDTLS_LMOTS_SHA256_N32_W8 ) - { - return( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (ctx->params.otstype + != MBEDTLS_LMOTS_SHA256_N32_W8) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - if( ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type) ) - { - return( MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS ); + if (ctx->q_next_usable_key >= MERKLE_TREE_LEAF_NODE_AM(ctx->params.type)) { + return MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS; } @@ -762,44 +735,44 @@ int mbedtls_lms_sign( mbedtls_lms_private_t *ctx, */ ctx->q_next_usable_key += 1; - if ( MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) - < SIG_OTS_SIG_OFFSET ) - { - return ( MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + if (MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) + < SIG_OTS_SIG_OFFSET) { + return MBEDTLS_ERR_LMS_BAD_INPUT_DATA; } - ret = mbedtls_lmots_sign( &ctx->ots_private_keys[q_leaf_identifier], - f_rng, p_rng, msg, msg_size, - sig + SIG_OTS_SIG_OFFSET, - MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype) - SIG_OTS_SIG_OFFSET, - NULL ); - if( ret != 0 ) - { - return( ret ); + ret = mbedtls_lmots_sign(&ctx->ots_private_keys[q_leaf_identifier], + f_rng, + p_rng, + msg, + msg_size, + sig + SIG_OTS_SIG_OFFSET, + MBEDTLS_LMS_SIG_LEN(ctx->params.type, + ctx->params.otstype) - SIG_OTS_SIG_OFFSET, + NULL); + if (ret != 0) { + return ret; } - mbedtls_lms_unsigned_int_to_network_bytes( ctx->params.type, - MBEDTLS_LMS_TYPE_LEN, - sig + SIG_TYPE_OFFSET(ctx->params.otstype) ); - mbedtls_lms_unsigned_int_to_network_bytes( q_leaf_identifier, - MBEDTLS_LMOTS_Q_LEAF_ID_LEN, - sig + SIG_Q_LEAF_ID_OFFSET ); + mbedtls_lms_unsigned_int_to_network_bytes(ctx->params.type, + MBEDTLS_LMS_TYPE_LEN, + sig + SIG_TYPE_OFFSET(ctx->params.otstype)); + mbedtls_lms_unsigned_int_to_network_bytes(q_leaf_identifier, + MBEDTLS_LMOTS_Q_LEAF_ID_LEN, + sig + SIG_Q_LEAF_ID_OFFSET); - ret = get_merkle_path( ctx, - MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, - sig + SIG_PATH_OFFSET(ctx->params.otstype) ); - if( ret != 0 ) - { - return( ret ); + ret = get_merkle_path(ctx, + MERKLE_TREE_INTERNAL_NODE_AM(ctx->params.type) + q_leaf_identifier, + sig + SIG_PATH_OFFSET(ctx->params.otstype)); + if (ret != 0) { + return ret; } - if( sig_len != NULL ) - { + if (sig_len != NULL) { *sig_len = MBEDTLS_LMS_SIG_LEN(ctx->params.type, ctx->params.otstype); } - return( 0 ); + return 0; } #endif /* defined(MBEDTLS_LMS_PRIVATE) */ diff --git a/library/md.c b/library/md.c index 9c161a53f..a72987899 100644 --- a/library/md.c +++ b/library/md.c @@ -113,479 +113,481 @@ const mbedtls_md_info_t mbedtls_sha512_info = { static const int supported_digests[] = { #if defined(MBEDTLS_SHA512_C) - MBEDTLS_MD_SHA512, + MBEDTLS_MD_SHA512, #endif #if defined(MBEDTLS_SHA384_C) - MBEDTLS_MD_SHA384, + MBEDTLS_MD_SHA384, #endif #if defined(MBEDTLS_SHA256_C) - MBEDTLS_MD_SHA256, + MBEDTLS_MD_SHA256, #endif #if defined(MBEDTLS_SHA224_C) - MBEDTLS_MD_SHA224, + MBEDTLS_MD_SHA224, #endif #if defined(MBEDTLS_SHA1_C) - MBEDTLS_MD_SHA1, + MBEDTLS_MD_SHA1, #endif #if defined(MBEDTLS_RIPEMD160_C) - MBEDTLS_MD_RIPEMD160, + MBEDTLS_MD_RIPEMD160, #endif #if defined(MBEDTLS_MD5_C) - MBEDTLS_MD_MD5, + MBEDTLS_MD_MD5, #endif - MBEDTLS_MD_NONE + MBEDTLS_MD_NONE }; -const int *mbedtls_md_list( void ) +const int *mbedtls_md_list(void) { - return( supported_digests ); + return supported_digests; } -const mbedtls_md_info_t *mbedtls_md_info_from_string( const char *md_name ) +const mbedtls_md_info_t *mbedtls_md_info_from_string(const char *md_name) { - if( NULL == md_name ) - return( NULL ); + if (NULL == md_name) { + return NULL; + } /* Get the appropriate digest information */ #if defined(MBEDTLS_MD5_C) - if( !strcmp( "MD5", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_MD5 ); + if (!strcmp("MD5", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_MD5); + } #endif #if defined(MBEDTLS_RIPEMD160_C) - if( !strcmp( "RIPEMD160", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_RIPEMD160 ); + if (!strcmp("RIPEMD160", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_RIPEMD160); + } #endif #if defined(MBEDTLS_SHA1_C) - if( !strcmp( "SHA1", md_name ) || !strcmp( "SHA", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_SHA1 ); + if (!strcmp("SHA1", md_name) || !strcmp("SHA", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_SHA1); + } #endif #if defined(MBEDTLS_SHA224_C) - if( !strcmp( "SHA224", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_SHA224 ); + if (!strcmp("SHA224", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_SHA224); + } #endif #if defined(MBEDTLS_SHA256_C) - if( !strcmp( "SHA256", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ); + if (!strcmp("SHA256", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); + } #endif #if defined(MBEDTLS_SHA384_C) - if( !strcmp( "SHA384", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_SHA384 ); + if (!strcmp("SHA384", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_SHA384); + } #endif #if defined(MBEDTLS_SHA512_C) - if( !strcmp( "SHA512", md_name ) ) - return mbedtls_md_info_from_type( MBEDTLS_MD_SHA512 ); + if (!strcmp("SHA512", md_name)) { + return mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); + } #endif - return( NULL ); + return NULL; } -const mbedtls_md_info_t *mbedtls_md_info_from_type( mbedtls_md_type_t md_type ) +const mbedtls_md_info_t *mbedtls_md_info_from_type(mbedtls_md_type_t md_type) { - switch( md_type ) - { + switch (md_type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( &mbedtls_md5_info ); + return &mbedtls_md5_info; #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( &mbedtls_ripemd160_info ); + return &mbedtls_ripemd160_info; #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( &mbedtls_sha1_info ); + return &mbedtls_sha1_info; #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( &mbedtls_sha224_info ); + return &mbedtls_sha224_info; #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( &mbedtls_sha256_info ); + return &mbedtls_sha256_info; #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( &mbedtls_sha384_info ); + return &mbedtls_sha384_info; #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( &mbedtls_sha512_info ); + return &mbedtls_sha512_info; #endif default: - return( NULL ); + return NULL; } } const mbedtls_md_info_t *mbedtls_md_info_from_ctx( - const mbedtls_md_context_t *ctx ) + const mbedtls_md_context_t *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return NULL; + } - return( ctx->MBEDTLS_PRIVATE(md_info) ); + return ctx->MBEDTLS_PRIVATE(md_info); } -void mbedtls_md_init( mbedtls_md_context_t *ctx ) +void mbedtls_md_init(mbedtls_md_context_t *ctx) { - memset( ctx, 0, sizeof( mbedtls_md_context_t ) ); + memset(ctx, 0, sizeof(mbedtls_md_context_t)); } -void mbedtls_md_free( mbedtls_md_context_t *ctx ) +void mbedtls_md_free(mbedtls_md_context_t *ctx) { - if( ctx == NULL || ctx->md_info == NULL ) + if (ctx == NULL || ctx->md_info == NULL) { return; + } - if( ctx->md_ctx != NULL ) - { - switch( ctx->md_info->type ) - { + if (ctx->md_ctx != NULL) { + switch (ctx->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - mbedtls_md5_free( ctx->md_ctx ); + mbedtls_md5_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - mbedtls_ripemd160_free( ctx->md_ctx ); + mbedtls_ripemd160_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - mbedtls_sha1_free( ctx->md_ctx ); + mbedtls_sha1_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - mbedtls_sha256_free( ctx->md_ctx ); + mbedtls_sha256_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - mbedtls_sha256_free( ctx->md_ctx ); + mbedtls_sha256_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - mbedtls_sha512_free( ctx->md_ctx ); + mbedtls_sha512_free(ctx->md_ctx); break; #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - mbedtls_sha512_free( ctx->md_ctx ); + mbedtls_sha512_free(ctx->md_ctx); break; #endif default: /* Shouldn't happen */ break; } - mbedtls_free( ctx->md_ctx ); + mbedtls_free(ctx->md_ctx); } - if( ctx->hmac_ctx != NULL ) - { - mbedtls_platform_zeroize( ctx->hmac_ctx, - 2 * ctx->md_info->block_size ); - mbedtls_free( ctx->hmac_ctx ); + if (ctx->hmac_ctx != NULL) { + mbedtls_platform_zeroize(ctx->hmac_ctx, + 2 * ctx->md_info->block_size); + mbedtls_free(ctx->hmac_ctx); } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_md_context_t ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_md_context_t)); } -int mbedtls_md_clone( mbedtls_md_context_t *dst, - const mbedtls_md_context_t *src ) +int mbedtls_md_clone(mbedtls_md_context_t *dst, + const mbedtls_md_context_t *src) { - if( dst == NULL || dst->md_info == NULL || + if (dst == NULL || dst->md_info == NULL || src == NULL || src->md_info == NULL || - dst->md_info != src->md_info ) - { - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + dst->md_info != src->md_info) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } - switch( src->md_info->type ) - { + switch (src->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - mbedtls_md5_clone( dst->md_ctx, src->md_ctx ); + mbedtls_md5_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - mbedtls_ripemd160_clone( dst->md_ctx, src->md_ctx ); + mbedtls_ripemd160_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - mbedtls_sha1_clone( dst->md_ctx, src->md_ctx ); + mbedtls_sha1_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - mbedtls_sha256_clone( dst->md_ctx, src->md_ctx ); + mbedtls_sha256_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - mbedtls_sha256_clone( dst->md_ctx, src->md_ctx ); + mbedtls_sha256_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - mbedtls_sha512_clone( dst->md_ctx, src->md_ctx ); + mbedtls_sha512_clone(dst->md_ctx, src->md_ctx); break; #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - mbedtls_sha512_clone( dst->md_ctx, src->md_ctx ); + mbedtls_sha512_clone(dst->md_ctx, src->md_ctx); break; #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } - return( 0 ); + return 0; } -#define ALLOC( type ) \ +#define ALLOC(type) \ do { \ - ctx->md_ctx = mbedtls_calloc( 1, sizeof( mbedtls_##type##_context ) ); \ - if( ctx->md_ctx == NULL ) \ - return( MBEDTLS_ERR_MD_ALLOC_FAILED ); \ - mbedtls_##type##_init( ctx->md_ctx ); \ + ctx->md_ctx = mbedtls_calloc(1, sizeof(mbedtls_##type##_context)); \ + if (ctx->md_ctx == NULL) \ + return MBEDTLS_ERR_MD_ALLOC_FAILED; \ + mbedtls_##type##_init(ctx->md_ctx); \ } \ - while( 0 ) + while (0) -int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac ) +int mbedtls_md_setup(mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_info, int hmac) { - if( md_info == NULL || ctx == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (md_info == NULL || ctx == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } ctx->md_info = md_info; ctx->md_ctx = NULL; ctx->hmac_ctx = NULL; - switch( md_info->type ) - { + switch (md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - ALLOC( md5 ); + ALLOC(md5); break; #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - ALLOC( ripemd160 ); + ALLOC(ripemd160); break; #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - ALLOC( sha1 ); + ALLOC(sha1); break; #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - ALLOC( sha256 ); + ALLOC(sha256); break; #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - ALLOC( sha256 ); + ALLOC(sha256); break; #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - ALLOC( sha512 ); + ALLOC(sha512); break; #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - ALLOC( sha512 ); + ALLOC(sha512); break; #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } - if( hmac != 0 ) - { - ctx->hmac_ctx = mbedtls_calloc( 2, md_info->block_size ); - if( ctx->hmac_ctx == NULL ) - { - mbedtls_md_free( ctx ); - return( MBEDTLS_ERR_MD_ALLOC_FAILED ); + if (hmac != 0) { + ctx->hmac_ctx = mbedtls_calloc(2, md_info->block_size); + if (ctx->hmac_ctx == NULL) { + mbedtls_md_free(ctx); + return MBEDTLS_ERR_MD_ALLOC_FAILED; } } - return( 0 ); + return 0; } #undef ALLOC -int mbedtls_md_starts( mbedtls_md_context_t *ctx ) +int mbedtls_md_starts(mbedtls_md_context_t *ctx) { - if( ctx == NULL || ctx->md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - switch( ctx->md_info->type ) - { + switch (ctx->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( mbedtls_md5_starts( ctx->md_ctx ) ); + return mbedtls_md5_starts(ctx->md_ctx); #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( mbedtls_ripemd160_starts( ctx->md_ctx ) ); + return mbedtls_ripemd160_starts(ctx->md_ctx); #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( mbedtls_sha1_starts( ctx->md_ctx ) ); + return mbedtls_sha1_starts(ctx->md_ctx); #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256_starts( ctx->md_ctx, 1 ) ); + return mbedtls_sha256_starts(ctx->md_ctx, 1); #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( mbedtls_sha256_starts( ctx->md_ctx, 0 ) ); + return mbedtls_sha256_starts(ctx->md_ctx, 0); #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512_starts( ctx->md_ctx, 1 ) ); + return mbedtls_sha512_starts(ctx->md_ctx, 1); #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( mbedtls_sha512_starts( ctx->md_ctx, 0 ) ); + return mbedtls_sha512_starts(ctx->md_ctx, 0); #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } } -int mbedtls_md_update( mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen ) +int mbedtls_md_update(mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen) { - if( ctx == NULL || ctx->md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - switch( ctx->md_info->type ) - { + switch (ctx->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( mbedtls_md5_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_md5_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( mbedtls_ripemd160_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_ripemd160_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( mbedtls_sha1_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_sha1_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_sha256_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( mbedtls_sha256_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_sha256_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_sha512_update(ctx->md_ctx, input, ilen); #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( mbedtls_sha512_update( ctx->md_ctx, input, ilen ) ); + return mbedtls_sha512_update(ctx->md_ctx, input, ilen); #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } } -int mbedtls_md_finish( mbedtls_md_context_t *ctx, unsigned char *output ) +int mbedtls_md_finish(mbedtls_md_context_t *ctx, unsigned char *output) { - if( ctx == NULL || ctx->md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - switch( ctx->md_info->type ) - { + switch (ctx->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( mbedtls_md5_finish( ctx->md_ctx, output ) ); + return mbedtls_md5_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( mbedtls_ripemd160_finish( ctx->md_ctx, output ) ); + return mbedtls_ripemd160_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( mbedtls_sha1_finish( ctx->md_ctx, output ) ); + return mbedtls_sha1_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256_finish( ctx->md_ctx, output ) ); + return mbedtls_sha256_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( mbedtls_sha256_finish( ctx->md_ctx, output ) ); + return mbedtls_sha256_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512_finish( ctx->md_ctx, output ) ); + return mbedtls_sha512_finish(ctx->md_ctx, output); #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( mbedtls_sha512_finish( ctx->md_ctx, output ) ); + return mbedtls_sha512_finish(ctx->md_ctx, output); #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } } -int mbedtls_md( const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, - unsigned char *output ) +int mbedtls_md(const mbedtls_md_info_t *md_info, const unsigned char *input, size_t ilen, + unsigned char *output) { - if( md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - switch( md_info->type ) - { + switch (md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( mbedtls_md5( input, ilen, output ) ); + return mbedtls_md5(input, ilen, output); #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( mbedtls_ripemd160( input, ilen, output ) ); + return mbedtls_ripemd160(input, ilen, output); #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( mbedtls_sha1( input, ilen, output ) ); + return mbedtls_sha1(input, ilen, output); #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256( input, ilen, output, 1 ) ); + return mbedtls_sha256(input, ilen, output, 1); #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( mbedtls_sha256( input, ilen, output, 0 ) ); + return mbedtls_sha256(input, ilen, output, 0); #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512( input, ilen, output, 1 ) ); + return mbedtls_sha512(input, ilen, output, 1); #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( mbedtls_sha512( input, ilen, output, 0 ) ); + return mbedtls_sha512(input, ilen, output, 0); #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } } #if defined(MBEDTLS_FS_IO) -int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, unsigned char *output ) +int mbedtls_md_file(const mbedtls_md_info_t *md_info, const char *path, unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; FILE *f; @@ -593,58 +595,68 @@ int mbedtls_md_file( const mbedtls_md_info_t *md_info, const char *path, unsigne mbedtls_md_context_t ctx; unsigned char buf[1024]; - if( md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_MD_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_MD_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); - if( ( ret = mbedtls_md_setup( &ctx, md_info, 0 ) ) != 0 ) + if ((ret = mbedtls_md_setup(&ctx, md_info, 0)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_starts( &ctx ) ) != 0 ) + if ((ret = mbedtls_md_starts(&ctx)) != 0) { goto cleanup; + } - while( ( n = fread( buf, 1, sizeof( buf ), f ) ) > 0 ) - if( ( ret = mbedtls_md_update( &ctx, buf, n ) ) != 0 ) + while ((n = fread(buf, 1, sizeof(buf), f)) > 0) { + if ((ret = mbedtls_md_update(&ctx, buf, n)) != 0) { goto cleanup; + } + } - if( ferror( f ) != 0 ) + if (ferror(f) != 0) { ret = MBEDTLS_ERR_MD_FILE_IO_ERROR; - else - ret = mbedtls_md_finish( &ctx, output ); + } else { + ret = mbedtls_md_finish(&ctx, output); + } cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - fclose( f ); - mbedtls_md_free( &ctx ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + fclose(f); + mbedtls_md_free(&ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ -int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen ) +int mbedtls_md_hmac_starts(mbedtls_md_context_t *ctx, const unsigned char *key, size_t keylen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char sum[MBEDTLS_MD_MAX_SIZE]; unsigned char *ipad, *opad; - if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - if( keylen > (size_t) ctx->md_info->block_size ) - { - if( ( ret = mbedtls_md_starts( ctx ) ) != 0 ) + if (keylen > (size_t) ctx->md_info->block_size) { + if ((ret = mbedtls_md_starts(ctx)) != 0) { goto cleanup; - if( ( ret = mbedtls_md_update( ctx, key, keylen ) ) != 0 ) + } + if ((ret = mbedtls_md_update(ctx, key, keylen)) != 0) { goto cleanup; - if( ( ret = mbedtls_md_finish( ctx, sum ) ) != 0 ) + } + if ((ret = mbedtls_md_finish(ctx, sum)) != 0) { goto cleanup; + } keylen = ctx->md_info->size; key = sum; @@ -653,160 +665,178 @@ int mbedtls_md_hmac_starts( mbedtls_md_context_t *ctx, const unsigned char *key, ipad = (unsigned char *) ctx->hmac_ctx; opad = (unsigned char *) ctx->hmac_ctx + ctx->md_info->block_size; - memset( ipad, 0x36, ctx->md_info->block_size ); - memset( opad, 0x5C, ctx->md_info->block_size ); + memset(ipad, 0x36, ctx->md_info->block_size); + memset(opad, 0x5C, ctx->md_info->block_size); - mbedtls_xor( ipad, ipad, key, keylen ); - mbedtls_xor( opad, opad, key, keylen ); + mbedtls_xor(ipad, ipad, key, keylen); + mbedtls_xor(opad, opad, key, keylen); - if( ( ret = mbedtls_md_starts( ctx ) ) != 0 ) + if ((ret = mbedtls_md_starts(ctx)) != 0) { goto cleanup; - if( ( ret = mbedtls_md_update( ctx, ipad, - ctx->md_info->block_size ) ) != 0 ) + } + if ((ret = mbedtls_md_update(ctx, ipad, + ctx->md_info->block_size)) != 0) { goto cleanup; + } cleanup: - mbedtls_platform_zeroize( sum, sizeof( sum ) ); + mbedtls_platform_zeroize(sum, sizeof(sum)); - return( ret ); + return ret; } -int mbedtls_md_hmac_update( mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen ) +int mbedtls_md_hmac_update(mbedtls_md_context_t *ctx, const unsigned char *input, size_t ilen) { - if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - return( mbedtls_md_update( ctx, input, ilen ) ); + return mbedtls_md_update(ctx, input, ilen); } -int mbedtls_md_hmac_finish( mbedtls_md_context_t *ctx, unsigned char *output ) +int mbedtls_md_hmac_finish(mbedtls_md_context_t *ctx, unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char tmp[MBEDTLS_MD_MAX_SIZE]; unsigned char *opad; - if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } opad = (unsigned char *) ctx->hmac_ctx + ctx->md_info->block_size; - if( ( ret = mbedtls_md_finish( ctx, tmp ) ) != 0 ) - return( ret ); - if( ( ret = mbedtls_md_starts( ctx ) ) != 0 ) - return( ret ); - if( ( ret = mbedtls_md_update( ctx, opad, - ctx->md_info->block_size ) ) != 0 ) - return( ret ); - if( ( ret = mbedtls_md_update( ctx, tmp, - ctx->md_info->size ) ) != 0 ) - return( ret ); - return( mbedtls_md_finish( ctx, output ) ); + if ((ret = mbedtls_md_finish(ctx, tmp)) != 0) { + return ret; + } + if ((ret = mbedtls_md_starts(ctx)) != 0) { + return ret; + } + if ((ret = mbedtls_md_update(ctx, opad, + ctx->md_info->block_size)) != 0) { + return ret; + } + if ((ret = mbedtls_md_update(ctx, tmp, + ctx->md_info->size)) != 0) { + return ret; + } + return mbedtls_md_finish(ctx, output); } -int mbedtls_md_hmac_reset( mbedtls_md_context_t *ctx ) +int mbedtls_md_hmac_reset(mbedtls_md_context_t *ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *ipad; - if( ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL || ctx->hmac_ctx == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } ipad = (unsigned char *) ctx->hmac_ctx; - if( ( ret = mbedtls_md_starts( ctx ) ) != 0 ) - return( ret ); - return( mbedtls_md_update( ctx, ipad, ctx->md_info->block_size ) ); + if ((ret = mbedtls_md_starts(ctx)) != 0) { + return ret; + } + return mbedtls_md_update(ctx, ipad, ctx->md_info->block_size); } -int mbedtls_md_hmac( const mbedtls_md_info_t *md_info, - const unsigned char *key, size_t keylen, - const unsigned char *input, size_t ilen, - unsigned char *output ) +int mbedtls_md_hmac(const mbedtls_md_info_t *md_info, + const unsigned char *key, size_t keylen, + const unsigned char *input, size_t ilen, + unsigned char *output) { mbedtls_md_context_t ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); - if( ( ret = mbedtls_md_setup( &ctx, md_info, 1 ) ) != 0 ) + if ((ret = mbedtls_md_setup(&ctx, md_info, 1)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_starts( &ctx, key, keylen ) ) != 0 ) + if ((ret = mbedtls_md_hmac_starts(&ctx, key, keylen)) != 0) { goto cleanup; - if( ( ret = mbedtls_md_hmac_update( &ctx, input, ilen ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_update(&ctx, input, ilen)) != 0) { goto cleanup; - if( ( ret = mbedtls_md_hmac_finish( &ctx, output ) ) != 0 ) + } + if ((ret = mbedtls_md_hmac_finish(&ctx, output)) != 0) { goto cleanup; + } cleanup: - mbedtls_md_free( &ctx ); + mbedtls_md_free(&ctx); - return( ret ); + return ret; } -int mbedtls_md_process( mbedtls_md_context_t *ctx, const unsigned char *data ) +int mbedtls_md_process(mbedtls_md_context_t *ctx, const unsigned char *data) { - if( ctx == NULL || ctx->md_info == NULL ) - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->md_info == NULL) { + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; + } - switch( ctx->md_info->type ) - { + switch (ctx->md_info->type) { #if defined(MBEDTLS_MD5_C) case MBEDTLS_MD_MD5: - return( mbedtls_internal_md5_process( ctx->md_ctx, data ) ); + return mbedtls_internal_md5_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_RIPEMD160_C) case MBEDTLS_MD_RIPEMD160: - return( mbedtls_internal_ripemd160_process( ctx->md_ctx, data ) ); + return mbedtls_internal_ripemd160_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_SHA1_C) case MBEDTLS_MD_SHA1: - return( mbedtls_internal_sha1_process( ctx->md_ctx, data ) ); + return mbedtls_internal_sha1_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_SHA224_C) case MBEDTLS_MD_SHA224: - return( mbedtls_internal_sha256_process( ctx->md_ctx, data ) ); + return mbedtls_internal_sha256_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA256: - return( mbedtls_internal_sha256_process( ctx->md_ctx, data ) ); + return mbedtls_internal_sha256_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_SHA384_C) case MBEDTLS_MD_SHA384: - return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) ); + return mbedtls_internal_sha512_process(ctx->md_ctx, data); #endif #if defined(MBEDTLS_SHA512_C) case MBEDTLS_MD_SHA512: - return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) ); + return mbedtls_internal_sha512_process(ctx->md_ctx, data); #endif default: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; } } -unsigned char mbedtls_md_get_size( const mbedtls_md_info_t *md_info ) +unsigned char mbedtls_md_get_size(const mbedtls_md_info_t *md_info) { - if( md_info == NULL ) - return( 0 ); + if (md_info == NULL) { + return 0; + } return md_info->size; } -mbedtls_md_type_t mbedtls_md_get_type( const mbedtls_md_info_t *md_info ) +mbedtls_md_type_t mbedtls_md_get_type(const mbedtls_md_info_t *md_info) { - if( md_info == NULL ) - return( MBEDTLS_MD_NONE ); + if (md_info == NULL) { + return MBEDTLS_MD_NONE; + } return md_info->type; } -const char *mbedtls_md_get_name( const mbedtls_md_info_t *md_info ) +const char *mbedtls_md_get_name(const mbedtls_md_info_t *md_info) { - if( md_info == NULL ) - return( NULL ); + if (md_info == NULL) { + return NULL; + } return md_info->name; } diff --git a/library/md5.c b/library/md5.c index f7a225c1d..138a32057 100644 --- a/library/md5.c +++ b/library/md5.c @@ -36,21 +36,22 @@ #if !defined(MBEDTLS_MD5_ALT) -void mbedtls_md5_init( mbedtls_md5_context *ctx ) +void mbedtls_md5_init(mbedtls_md5_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_md5_context ) ); + memset(ctx, 0, sizeof(mbedtls_md5_context)); } -void mbedtls_md5_free( mbedtls_md5_context *ctx ) +void mbedtls_md5_free(mbedtls_md5_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_md5_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_md5_context)); } -void mbedtls_md5_clone( mbedtls_md5_context *dst, - const mbedtls_md5_context *src ) +void mbedtls_md5_clone(mbedtls_md5_context *dst, + const mbedtls_md5_context *src) { *dst = *src; } @@ -58,7 +59,7 @@ void mbedtls_md5_clone( mbedtls_md5_context *dst, /* * MD5 context setup */ -int mbedtls_md5_starts( mbedtls_md5_context *ctx ) +int mbedtls_md5_starts(mbedtls_md5_context *ctx) { ctx->total[0] = 0; ctx->total[1] = 0; @@ -68,131 +69,130 @@ int mbedtls_md5_starts( mbedtls_md5_context *ctx ) ctx->state[2] = 0x98BADCFE; ctx->state[3] = 0x10325476; - return( 0 ); + return 0; } #if !defined(MBEDTLS_MD5_PROCESS_ALT) -int mbedtls_internal_md5_process( mbedtls_md5_context *ctx, - const unsigned char data[64] ) +int mbedtls_internal_md5_process(mbedtls_md5_context *ctx, + const unsigned char data[64]) { - struct - { + struct { uint32_t X[16], A, B, C, D; } local; - local.X[ 0] = MBEDTLS_GET_UINT32_LE( data, 0 ); - local.X[ 1] = MBEDTLS_GET_UINT32_LE( data, 4 ); - local.X[ 2] = MBEDTLS_GET_UINT32_LE( data, 8 ); - local.X[ 3] = MBEDTLS_GET_UINT32_LE( data, 12 ); - local.X[ 4] = MBEDTLS_GET_UINT32_LE( data, 16 ); - local.X[ 5] = MBEDTLS_GET_UINT32_LE( data, 20 ); - local.X[ 6] = MBEDTLS_GET_UINT32_LE( data, 24 ); - local.X[ 7] = MBEDTLS_GET_UINT32_LE( data, 28 ); - local.X[ 8] = MBEDTLS_GET_UINT32_LE( data, 32 ); - local.X[ 9] = MBEDTLS_GET_UINT32_LE( data, 36 ); - local.X[10] = MBEDTLS_GET_UINT32_LE( data, 40 ); - local.X[11] = MBEDTLS_GET_UINT32_LE( data, 44 ); - local.X[12] = MBEDTLS_GET_UINT32_LE( data, 48 ); - local.X[13] = MBEDTLS_GET_UINT32_LE( data, 52 ); - local.X[14] = MBEDTLS_GET_UINT32_LE( data, 56 ); - local.X[15] = MBEDTLS_GET_UINT32_LE( data, 60 ); + local.X[0] = MBEDTLS_GET_UINT32_LE(data, 0); + local.X[1] = MBEDTLS_GET_UINT32_LE(data, 4); + local.X[2] = MBEDTLS_GET_UINT32_LE(data, 8); + local.X[3] = MBEDTLS_GET_UINT32_LE(data, 12); + local.X[4] = MBEDTLS_GET_UINT32_LE(data, 16); + local.X[5] = MBEDTLS_GET_UINT32_LE(data, 20); + local.X[6] = MBEDTLS_GET_UINT32_LE(data, 24); + local.X[7] = MBEDTLS_GET_UINT32_LE(data, 28); + local.X[8] = MBEDTLS_GET_UINT32_LE(data, 32); + local.X[9] = MBEDTLS_GET_UINT32_LE(data, 36); + local.X[10] = MBEDTLS_GET_UINT32_LE(data, 40); + local.X[11] = MBEDTLS_GET_UINT32_LE(data, 44); + local.X[12] = MBEDTLS_GET_UINT32_LE(data, 48); + local.X[13] = MBEDTLS_GET_UINT32_LE(data, 52); + local.X[14] = MBEDTLS_GET_UINT32_LE(data, 56); + local.X[15] = MBEDTLS_GET_UINT32_LE(data, 60); -#define S(x,n) \ - ( ( (x) << (n) ) | ( ( (x) & 0xFFFFFFFF) >> ( 32 - (n) ) ) ) +#define S(x, n) \ + (((x) << (n)) | (((x) & 0xFFFFFFFF) >> (32 - (n)))) -#define P(a,b,c,d,k,s,t) \ +#define P(a, b, c, d, k, s, t) \ do \ { \ - (a) += F((b),(c),(d)) + local.X[(k)] + (t); \ - (a) = S((a),(s)) + (b); \ - } while( 0 ) + (a) += F((b), (c), (d)) + local.X[(k)] + (t); \ + (a) = S((a), (s)) + (b); \ + } while (0) local.A = ctx->state[0]; local.B = ctx->state[1]; local.C = ctx->state[2]; local.D = ctx->state[3]; -#define F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) - P( local.A, local.B, local.C, local.D, 0, 7, 0xD76AA478 ); - P( local.D, local.A, local.B, local.C, 1, 12, 0xE8C7B756 ); - P( local.C, local.D, local.A, local.B, 2, 17, 0x242070DB ); - P( local.B, local.C, local.D, local.A, 3, 22, 0xC1BDCEEE ); - P( local.A, local.B, local.C, local.D, 4, 7, 0xF57C0FAF ); - P( local.D, local.A, local.B, local.C, 5, 12, 0x4787C62A ); - P( local.C, local.D, local.A, local.B, 6, 17, 0xA8304613 ); - P( local.B, local.C, local.D, local.A, 7, 22, 0xFD469501 ); - P( local.A, local.B, local.C, local.D, 8, 7, 0x698098D8 ); - P( local.D, local.A, local.B, local.C, 9, 12, 0x8B44F7AF ); - P( local.C, local.D, local.A, local.B, 10, 17, 0xFFFF5BB1 ); - P( local.B, local.C, local.D, local.A, 11, 22, 0x895CD7BE ); - P( local.A, local.B, local.C, local.D, 12, 7, 0x6B901122 ); - P( local.D, local.A, local.B, local.C, 13, 12, 0xFD987193 ); - P( local.C, local.D, local.A, local.B, 14, 17, 0xA679438E ); - P( local.B, local.C, local.D, local.A, 15, 22, 0x49B40821 ); + P(local.A, local.B, local.C, local.D, 0, 7, 0xD76AA478); + P(local.D, local.A, local.B, local.C, 1, 12, 0xE8C7B756); + P(local.C, local.D, local.A, local.B, 2, 17, 0x242070DB); + P(local.B, local.C, local.D, local.A, 3, 22, 0xC1BDCEEE); + P(local.A, local.B, local.C, local.D, 4, 7, 0xF57C0FAF); + P(local.D, local.A, local.B, local.C, 5, 12, 0x4787C62A); + P(local.C, local.D, local.A, local.B, 6, 17, 0xA8304613); + P(local.B, local.C, local.D, local.A, 7, 22, 0xFD469501); + P(local.A, local.B, local.C, local.D, 8, 7, 0x698098D8); + P(local.D, local.A, local.B, local.C, 9, 12, 0x8B44F7AF); + P(local.C, local.D, local.A, local.B, 10, 17, 0xFFFF5BB1); + P(local.B, local.C, local.D, local.A, 11, 22, 0x895CD7BE); + P(local.A, local.B, local.C, local.D, 12, 7, 0x6B901122); + P(local.D, local.A, local.B, local.C, 13, 12, 0xFD987193); + P(local.C, local.D, local.A, local.B, 14, 17, 0xA679438E); + P(local.B, local.C, local.D, local.A, 15, 22, 0x49B40821); #undef F -#define F(x,y,z) ((y) ^ ((z) & ((x) ^ (y)))) +#define F(x, y, z) ((y) ^ ((z) & ((x) ^ (y)))) - P( local.A, local.B, local.C, local.D, 1, 5, 0xF61E2562 ); - P( local.D, local.A, local.B, local.C, 6, 9, 0xC040B340 ); - P( local.C, local.D, local.A, local.B, 11, 14, 0x265E5A51 ); - P( local.B, local.C, local.D, local.A, 0, 20, 0xE9B6C7AA ); - P( local.A, local.B, local.C, local.D, 5, 5, 0xD62F105D ); - P( local.D, local.A, local.B, local.C, 10, 9, 0x02441453 ); - P( local.C, local.D, local.A, local.B, 15, 14, 0xD8A1E681 ); - P( local.B, local.C, local.D, local.A, 4, 20, 0xE7D3FBC8 ); - P( local.A, local.B, local.C, local.D, 9, 5, 0x21E1CDE6 ); - P( local.D, local.A, local.B, local.C, 14, 9, 0xC33707D6 ); - P( local.C, local.D, local.A, local.B, 3, 14, 0xF4D50D87 ); - P( local.B, local.C, local.D, local.A, 8, 20, 0x455A14ED ); - P( local.A, local.B, local.C, local.D, 13, 5, 0xA9E3E905 ); - P( local.D, local.A, local.B, local.C, 2, 9, 0xFCEFA3F8 ); - P( local.C, local.D, local.A, local.B, 7, 14, 0x676F02D9 ); - P( local.B, local.C, local.D, local.A, 12, 20, 0x8D2A4C8A ); + P(local.A, local.B, local.C, local.D, 1, 5, 0xF61E2562); + P(local.D, local.A, local.B, local.C, 6, 9, 0xC040B340); + P(local.C, local.D, local.A, local.B, 11, 14, 0x265E5A51); + P(local.B, local.C, local.D, local.A, 0, 20, 0xE9B6C7AA); + P(local.A, local.B, local.C, local.D, 5, 5, 0xD62F105D); + P(local.D, local.A, local.B, local.C, 10, 9, 0x02441453); + P(local.C, local.D, local.A, local.B, 15, 14, 0xD8A1E681); + P(local.B, local.C, local.D, local.A, 4, 20, 0xE7D3FBC8); + P(local.A, local.B, local.C, local.D, 9, 5, 0x21E1CDE6); + P(local.D, local.A, local.B, local.C, 14, 9, 0xC33707D6); + P(local.C, local.D, local.A, local.B, 3, 14, 0xF4D50D87); + P(local.B, local.C, local.D, local.A, 8, 20, 0x455A14ED); + P(local.A, local.B, local.C, local.D, 13, 5, 0xA9E3E905); + P(local.D, local.A, local.B, local.C, 2, 9, 0xFCEFA3F8); + P(local.C, local.D, local.A, local.B, 7, 14, 0x676F02D9); + P(local.B, local.C, local.D, local.A, 12, 20, 0x8D2A4C8A); #undef F -#define F(x,y,z) ((x) ^ (y) ^ (z)) +#define F(x, y, z) ((x) ^ (y) ^ (z)) - P( local.A, local.B, local.C, local.D, 5, 4, 0xFFFA3942 ); - P( local.D, local.A, local.B, local.C, 8, 11, 0x8771F681 ); - P( local.C, local.D, local.A, local.B, 11, 16, 0x6D9D6122 ); - P( local.B, local.C, local.D, local.A, 14, 23, 0xFDE5380C ); - P( local.A, local.B, local.C, local.D, 1, 4, 0xA4BEEA44 ); - P( local.D, local.A, local.B, local.C, 4, 11, 0x4BDECFA9 ); - P( local.C, local.D, local.A, local.B, 7, 16, 0xF6BB4B60 ); - P( local.B, local.C, local.D, local.A, 10, 23, 0xBEBFBC70 ); - P( local.A, local.B, local.C, local.D, 13, 4, 0x289B7EC6 ); - P( local.D, local.A, local.B, local.C, 0, 11, 0xEAA127FA ); - P( local.C, local.D, local.A, local.B, 3, 16, 0xD4EF3085 ); - P( local.B, local.C, local.D, local.A, 6, 23, 0x04881D05 ); - P( local.A, local.B, local.C, local.D, 9, 4, 0xD9D4D039 ); - P( local.D, local.A, local.B, local.C, 12, 11, 0xE6DB99E5 ); - P( local.C, local.D, local.A, local.B, 15, 16, 0x1FA27CF8 ); - P( local.B, local.C, local.D, local.A, 2, 23, 0xC4AC5665 ); + P(local.A, local.B, local.C, local.D, 5, 4, 0xFFFA3942); + P(local.D, local.A, local.B, local.C, 8, 11, 0x8771F681); + P(local.C, local.D, local.A, local.B, 11, 16, 0x6D9D6122); + P(local.B, local.C, local.D, local.A, 14, 23, 0xFDE5380C); + P(local.A, local.B, local.C, local.D, 1, 4, 0xA4BEEA44); + P(local.D, local.A, local.B, local.C, 4, 11, 0x4BDECFA9); + P(local.C, local.D, local.A, local.B, 7, 16, 0xF6BB4B60); + P(local.B, local.C, local.D, local.A, 10, 23, 0xBEBFBC70); + P(local.A, local.B, local.C, local.D, 13, 4, 0x289B7EC6); + P(local.D, local.A, local.B, local.C, 0, 11, 0xEAA127FA); + P(local.C, local.D, local.A, local.B, 3, 16, 0xD4EF3085); + P(local.B, local.C, local.D, local.A, 6, 23, 0x04881D05); + P(local.A, local.B, local.C, local.D, 9, 4, 0xD9D4D039); + P(local.D, local.A, local.B, local.C, 12, 11, 0xE6DB99E5); + P(local.C, local.D, local.A, local.B, 15, 16, 0x1FA27CF8); + P(local.B, local.C, local.D, local.A, 2, 23, 0xC4AC5665); #undef F -#define F(x,y,z) ((y) ^ ((x) | ~(z))) +#define F(x, y, z) ((y) ^ ((x) | ~(z))) - P( local.A, local.B, local.C, local.D, 0, 6, 0xF4292244 ); - P( local.D, local.A, local.B, local.C, 7, 10, 0x432AFF97 ); - P( local.C, local.D, local.A, local.B, 14, 15, 0xAB9423A7 ); - P( local.B, local.C, local.D, local.A, 5, 21, 0xFC93A039 ); - P( local.A, local.B, local.C, local.D, 12, 6, 0x655B59C3 ); - P( local.D, local.A, local.B, local.C, 3, 10, 0x8F0CCC92 ); - P( local.C, local.D, local.A, local.B, 10, 15, 0xFFEFF47D ); - P( local.B, local.C, local.D, local.A, 1, 21, 0x85845DD1 ); - P( local.A, local.B, local.C, local.D, 8, 6, 0x6FA87E4F ); - P( local.D, local.A, local.B, local.C, 15, 10, 0xFE2CE6E0 ); - P( local.C, local.D, local.A, local.B, 6, 15, 0xA3014314 ); - P( local.B, local.C, local.D, local.A, 13, 21, 0x4E0811A1 ); - P( local.A, local.B, local.C, local.D, 4, 6, 0xF7537E82 ); - P( local.D, local.A, local.B, local.C, 11, 10, 0xBD3AF235 ); - P( local.C, local.D, local.A, local.B, 2, 15, 0x2AD7D2BB ); - P( local.B, local.C, local.D, local.A, 9, 21, 0xEB86D391 ); + P(local.A, local.B, local.C, local.D, 0, 6, 0xF4292244); + P(local.D, local.A, local.B, local.C, 7, 10, 0x432AFF97); + P(local.C, local.D, local.A, local.B, 14, 15, 0xAB9423A7); + P(local.B, local.C, local.D, local.A, 5, 21, 0xFC93A039); + P(local.A, local.B, local.C, local.D, 12, 6, 0x655B59C3); + P(local.D, local.A, local.B, local.C, 3, 10, 0x8F0CCC92); + P(local.C, local.D, local.A, local.B, 10, 15, 0xFFEFF47D); + P(local.B, local.C, local.D, local.A, 1, 21, 0x85845DD1); + P(local.A, local.B, local.C, local.D, 8, 6, 0x6FA87E4F); + P(local.D, local.A, local.B, local.C, 15, 10, 0xFE2CE6E0); + P(local.C, local.D, local.A, local.B, 6, 15, 0xA3014314); + P(local.B, local.C, local.D, local.A, 13, 21, 0x4E0811A1); + P(local.A, local.B, local.C, local.D, 4, 6, 0xF7537E82); + P(local.D, local.A, local.B, local.C, 11, 10, 0xBD3AF235); + P(local.C, local.D, local.A, local.B, 2, 15, 0x2AD7D2BB); + P(local.B, local.C, local.D, local.A, 9, 21, 0xEB86D391); #undef F @@ -202,9 +202,9 @@ int mbedtls_internal_md5_process( mbedtls_md5_context *ctx, ctx->state[3] += local.D; /* Zeroise variables to clear sensitive data from memory. */ - mbedtls_platform_zeroize( &local, sizeof( local ) ); + mbedtls_platform_zeroize(&local, sizeof(local)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_MD5_PROCESS_ALT */ @@ -212,16 +212,17 @@ int mbedtls_internal_md5_process( mbedtls_md5_context *ctx, /* * MD5 process buffer */ -int mbedtls_md5_update( mbedtls_md5_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_md5_update(mbedtls_md5_context *ctx, + const unsigned char *input, + size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t fill; uint32_t left; - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return 0; + } left = ctx->total[0] & 0x3F; fill = 64 - left; @@ -229,42 +230,42 @@ int mbedtls_md5_update( mbedtls_md5_context *ctx, ctx->total[0] += (uint32_t) ilen; ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (uint32_t) ilen ) + if (ctx->total[0] < (uint32_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); - if( ( ret = mbedtls_internal_md5_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if (left && ilen >= fill) { + memcpy((void *) (ctx->buffer + left), input, fill); + if ((ret = mbedtls_internal_md5_process(ctx, ctx->buffer)) != 0) { + return ret; + } input += fill; ilen -= fill; left = 0; } - while( ilen >= 64 ) - { - if( ( ret = mbedtls_internal_md5_process( ctx, input ) ) != 0 ) - return( ret ); + while (ilen >= 64) { + if ((ret = mbedtls_internal_md5_process(ctx, input)) != 0) { + return ret; + } input += 64; ilen -= 64; } - if( ilen > 0 ) - { - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *) (ctx->buffer + left), input, ilen); } - return( 0 ); + return 0; } /* * MD5 final digest */ -int mbedtls_md5_finish( mbedtls_md5_context *ctx, - unsigned char output[16] ) +int mbedtls_md5_finish(mbedtls_md5_context *ctx, + unsigned char output[16]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint32_t used; @@ -277,44 +278,43 @@ int mbedtls_md5_finish( mbedtls_md5_context *ctx, ctx->buffer[used++] = 0x80; - if( used <= 56 ) - { + if (used <= 56) { /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 56 - used ); - } - else - { + memset(ctx->buffer + used, 0, 56 - used); + } else { /* We'll need an extra block */ - memset( ctx->buffer + used, 0, 64 - used ); + memset(ctx->buffer + used, 0, 64 - used); - if( ( ret = mbedtls_internal_md5_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_md5_process(ctx, ctx->buffer)) != 0) { + return ret; + } - memset( ctx->buffer, 0, 56 ); + memset(ctx->buffer, 0, 56); } /* * Add message length */ - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 29) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - MBEDTLS_PUT_UINT32_LE( low, ctx->buffer, 56 ); - MBEDTLS_PUT_UINT32_LE( high, ctx->buffer, 60 ); + MBEDTLS_PUT_UINT32_LE(low, ctx->buffer, 56); + MBEDTLS_PUT_UINT32_LE(high, ctx->buffer, 60); - if( ( ret = mbedtls_internal_md5_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_md5_process(ctx, ctx->buffer)) != 0) { + return ret; + } /* * Output final state */ - MBEDTLS_PUT_UINT32_LE( ctx->state[0], output, 0 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[1], output, 4 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[2], output, 8 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[3], output, 12 ); + MBEDTLS_PUT_UINT32_LE(ctx->state[0], output, 0); + MBEDTLS_PUT_UINT32_LE(ctx->state[1], output, 4); + MBEDTLS_PUT_UINT32_LE(ctx->state[2], output, 8); + MBEDTLS_PUT_UINT32_LE(ctx->state[3], output, 12); - return( 0 ); + return 0; } #endif /* !MBEDTLS_MD5_ALT */ @@ -322,28 +322,31 @@ int mbedtls_md5_finish( mbedtls_md5_context *ctx, /* * output = MD5( input buffer ) */ -int mbedtls_md5( const unsigned char *input, - size_t ilen, - unsigned char output[16] ) +int mbedtls_md5(const unsigned char *input, + size_t ilen, + unsigned char output[16]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md5_context ctx; - mbedtls_md5_init( &ctx ); + mbedtls_md5_init(&ctx); - if( ( ret = mbedtls_md5_starts( &ctx ) ) != 0 ) + if ((ret = mbedtls_md5_starts(&ctx)) != 0) { goto exit; + } - if( ( ret = mbedtls_md5_update( &ctx, input, ilen ) ) != 0 ) + if ((ret = mbedtls_md5_update(&ctx, input, ilen)) != 0) { goto exit; + } - if( ( ret = mbedtls_md5_finish( &ctx, output ) ) != 0 ) + if ((ret = mbedtls_md5_finish(&ctx, output)) != 0) { goto exit; + } exit: - mbedtls_md5_free( &ctx ); + mbedtls_md5_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_SELF_TEST) @@ -387,40 +390,43 @@ static const unsigned char md5_test_sum[7][16] = /* * Checkup routine */ -int mbedtls_md5_self_test( int verbose ) +int mbedtls_md5_self_test(int verbose) { int i, ret = 0; unsigned char md5sum[16]; - for( i = 0; i < 7; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " MD5 test #%d: ", i + 1 ); + for (i = 0; i < 7; i++) { + if (verbose != 0) { + mbedtls_printf(" MD5 test #%d: ", i + 1); + } - ret = mbedtls_md5( md5_test_buf[i], md5_test_buflen[i], md5sum ); - if( ret != 0 ) + ret = mbedtls_md5(md5_test_buf[i], md5_test_buflen[i], md5sum); + if (ret != 0) { goto fail; + } - if( memcmp( md5sum, md5_test_sum[i], 16 ) != 0 ) - { + if (memcmp(md5sum, md5_test_sum[i], 16) != 0) { ret = 1; goto fail; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; fail: - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/md_wrap.h b/library/md_wrap.h index 90c795731..cd539b54b 100644 --- a/library/md_wrap.h +++ b/library/md_wrap.h @@ -38,10 +38,9 @@ extern "C" { * Message digest information. * Allows message digest functions to be called in a generic way. */ -struct mbedtls_md_info_t -{ +struct mbedtls_md_info_t { /** Name of the message digest */ - const char * name; + const char *name; /** Digest identifier */ mbedtls_md_type_t type; diff --git a/library/memory_buffer_alloc.c b/library/memory_buffer_alloc.c index 61432d875..e5052ce5a 100644 --- a/library/memory_buffer_alloc.c +++ b/library/memory_buffer_alloc.c @@ -42,8 +42,7 @@ #define MAX_BT 20 typedef struct _memory_header memory_header; -struct _memory_header -{ +struct _memory_header { size_t magic1; size_t size; size_t alloc; @@ -58,8 +57,7 @@ struct _memory_header size_t magic2; }; -typedef struct -{ +typedef struct { unsigned char *buf; size_t len; memory_header *first; @@ -82,146 +80,135 @@ buffer_alloc_ctx; static buffer_alloc_ctx heap; #if defined(MBEDTLS_MEMORY_DEBUG) -static void debug_header( memory_header *hdr ) +static void debug_header(memory_header *hdr) { #if defined(MBEDTLS_MEMORY_BACKTRACE) size_t i; #endif - mbedtls_fprintf( stderr, "HDR: PTR(%10zu), PREV(%10zu), NEXT(%10zu), " - "ALLOC(%zu), SIZE(%10zu)\n", - (size_t) hdr, (size_t) hdr->prev, (size_t) hdr->next, - hdr->alloc, hdr->size ); - mbedtls_fprintf( stderr, " FPREV(%10zu), FNEXT(%10zu)\n", - (size_t) hdr->prev_free, (size_t) hdr->next_free ); + mbedtls_fprintf(stderr, "HDR: PTR(%10zu), PREV(%10zu), NEXT(%10zu), " + "ALLOC(%zu), SIZE(%10zu)\n", + (size_t) hdr, (size_t) hdr->prev, (size_t) hdr->next, + hdr->alloc, hdr->size); + mbedtls_fprintf(stderr, " FPREV(%10zu), FNEXT(%10zu)\n", + (size_t) hdr->prev_free, (size_t) hdr->next_free); #if defined(MBEDTLS_MEMORY_BACKTRACE) - mbedtls_fprintf( stderr, "TRACE: \n" ); - for( i = 0; i < hdr->trace_count; i++ ) - mbedtls_fprintf( stderr, "%s\n", hdr->trace[i] ); - mbedtls_fprintf( stderr, "\n" ); + mbedtls_fprintf(stderr, "TRACE: \n"); + for (i = 0; i < hdr->trace_count; i++) { + mbedtls_fprintf(stderr, "%s\n", hdr->trace[i]); + } + mbedtls_fprintf(stderr, "\n"); #endif } -static void debug_chain( void ) +static void debug_chain(void) { memory_header *cur = heap.first; - mbedtls_fprintf( stderr, "\nBlock list\n" ); - while( cur != NULL ) - { - debug_header( cur ); + mbedtls_fprintf(stderr, "\nBlock list\n"); + while (cur != NULL) { + debug_header(cur); cur = cur->next; } - mbedtls_fprintf( stderr, "Free list\n" ); + mbedtls_fprintf(stderr, "Free list\n"); cur = heap.first_free; - while( cur != NULL ) - { - debug_header( cur ); + while (cur != NULL) { + debug_header(cur); cur = cur->next_free; } } #endif /* MBEDTLS_MEMORY_DEBUG */ -static int verify_header( memory_header *hdr ) +static int verify_header(memory_header *hdr) { - if( hdr->magic1 != MAGIC1 ) - { + if (hdr->magic1 != MAGIC1) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: MAGIC1 mismatch\n" ); + mbedtls_fprintf(stderr, "FATAL: MAGIC1 mismatch\n"); #endif - return( 1 ); + return 1; } - if( hdr->magic2 != MAGIC2 ) - { + if (hdr->magic2 != MAGIC2) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: MAGIC2 mismatch\n" ); + mbedtls_fprintf(stderr, "FATAL: MAGIC2 mismatch\n"); #endif - return( 1 ); + return 1; } - if( hdr->alloc > 1 ) - { + if (hdr->alloc > 1) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: alloc has illegal value\n" ); + mbedtls_fprintf(stderr, "FATAL: alloc has illegal value\n"); #endif - return( 1 ); + return 1; } - if( hdr->prev != NULL && hdr->prev == hdr->next ) - { + if (hdr->prev != NULL && hdr->prev == hdr->next) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: prev == next\n" ); + mbedtls_fprintf(stderr, "FATAL: prev == next\n"); #endif - return( 1 ); + return 1; } - if( hdr->prev_free != NULL && hdr->prev_free == hdr->next_free ) - { + if (hdr->prev_free != NULL && hdr->prev_free == hdr->next_free) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: prev_free == next_free\n" ); + mbedtls_fprintf(stderr, "FATAL: prev_free == next_free\n"); #endif - return( 1 ); + return 1; } - return( 0 ); + return 0; } -static int verify_chain( void ) +static int verify_chain(void) { memory_header *prv = heap.first, *cur; - if( prv == NULL || verify_header( prv ) != 0 ) - { + if (prv == NULL || verify_header(prv) != 0) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: verification of first header " - "failed\n" ); + mbedtls_fprintf(stderr, "FATAL: verification of first header " + "failed\n"); #endif - return( 1 ); + return 1; } - if( heap.first->prev != NULL ) - { + if (heap.first->prev != NULL) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: verification failed: " - "first->prev != NULL\n" ); + mbedtls_fprintf(stderr, "FATAL: verification failed: " + "first->prev != NULL\n"); #endif - return( 1 ); + return 1; } cur = heap.first->next; - while( cur != NULL ) - { - if( verify_header( cur ) != 0 ) - { + while (cur != NULL) { + if (verify_header(cur) != 0) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: verification of header " - "failed\n" ); + mbedtls_fprintf(stderr, "FATAL: verification of header " + "failed\n"); #endif - return( 1 ); + return 1; } - if( cur->prev != prv ) - { + if (cur->prev != prv) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: verification failed: " - "cur->prev != prv\n" ); + mbedtls_fprintf(stderr, "FATAL: verification failed: " + "cur->prev != prv\n"); #endif - return( 1 ); + return 1; } prv = cur; cur = cur->next; } - return( 0 ); + return 0; } -static void *buffer_alloc_calloc( size_t n, size_t size ) +static void *buffer_alloc_calloc(size_t n, size_t size) { memory_header *new, *cur = heap.first_free; unsigned char *p; @@ -232,42 +219,43 @@ static void *buffer_alloc_calloc( size_t n, size_t size ) size_t trace_cnt; #endif - if( heap.buf == NULL || heap.first == NULL ) - return( NULL ); + if (heap.buf == NULL || heap.first == NULL) { + return NULL; + } original_len = len = n * size; - if( n == 0 || size == 0 || len / n != size ) - return( NULL ); - else if( len > (size_t)-MBEDTLS_MEMORY_ALIGN_MULTIPLE ) - return( NULL ); + if (n == 0 || size == 0 || len / n != size) { + return NULL; + } else if (len > (size_t) -MBEDTLS_MEMORY_ALIGN_MULTIPLE) { + return NULL; + } - if( len % MBEDTLS_MEMORY_ALIGN_MULTIPLE ) - { + if (len % MBEDTLS_MEMORY_ALIGN_MULTIPLE) { len -= len % MBEDTLS_MEMORY_ALIGN_MULTIPLE; len += MBEDTLS_MEMORY_ALIGN_MULTIPLE; } // Find block that fits // - while( cur != NULL ) - { - if( cur->size >= len ) + while (cur != NULL) { + if (cur->size >= len) { break; + } cur = cur->next_free; } - if( cur == NULL ) - return( NULL ); + if (cur == NULL) { + return NULL; + } - if( cur->alloc != 0 ) - { + if (cur->alloc != 0) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: block in free_list but allocated " - "data\n" ); + mbedtls_fprintf(stderr, "FATAL: block in free_list but allocated " + "data\n"); #endif - mbedtls_exit( 1 ); + mbedtls_exit(1); } #if defined(MBEDTLS_MEMORY_DEBUG) @@ -276,45 +264,48 @@ static void *buffer_alloc_calloc( size_t n, size_t size ) // Found location, split block if > memory_header + 4 room left // - if( cur->size - len < sizeof(memory_header) + - MBEDTLS_MEMORY_ALIGN_MULTIPLE ) - { + if (cur->size - len < sizeof(memory_header) + + MBEDTLS_MEMORY_ALIGN_MULTIPLE) { cur->alloc = 1; // Remove from free_list // - if( cur->prev_free != NULL ) + if (cur->prev_free != NULL) { cur->prev_free->next_free = cur->next_free; - else + } else { heap.first_free = cur->next_free; + } - if( cur->next_free != NULL ) + if (cur->next_free != NULL) { cur->next_free->prev_free = cur->prev_free; + } cur->prev_free = NULL; cur->next_free = NULL; #if defined(MBEDTLS_MEMORY_DEBUG) heap.total_used += cur->size; - if( heap.total_used > heap.maximum_used ) + if (heap.total_used > heap.maximum_used) { heap.maximum_used = heap.total_used; + } #endif #if defined(MBEDTLS_MEMORY_BACKTRACE) - trace_cnt = backtrace( trace_buffer, MAX_BT ); - cur->trace = backtrace_symbols( trace_buffer, trace_cnt ); + trace_cnt = backtrace(trace_buffer, MAX_BT); + cur->trace = backtrace_symbols(trace_buffer, trace_cnt); cur->trace_count = trace_cnt; #endif - if( ( heap.verify & MBEDTLS_MEMORY_VERIFY_ALLOC ) && verify_chain() != 0 ) - mbedtls_exit( 1 ); + if ((heap.verify & MBEDTLS_MEMORY_VERIFY_ALLOC) && verify_chain() != 0) { + mbedtls_exit(1); + } - ret = (unsigned char *) cur + sizeof( memory_header ); - memset( ret, 0, original_len ); + ret = (unsigned char *) cur + sizeof(memory_header); + memset(ret, 0, original_len); - return( ret ); + return ret; } - p = ( (unsigned char *) cur ) + sizeof(memory_header) + len; + p = ((unsigned char *) cur) + sizeof(memory_header) + len; new = (memory_header *) p; new->size = cur->size - len - sizeof(memory_header); @@ -328,20 +319,23 @@ static void *buffer_alloc_calloc( size_t n, size_t size ) new->magic1 = MAGIC1; new->magic2 = MAGIC2; - if( new->next != NULL ) + if (new->next != NULL) { new->next->prev = new; + } // Replace cur with new in free_list // new->prev_free = cur->prev_free; new->next_free = cur->next_free; - if( new->prev_free != NULL ) + if (new->prev_free != NULL) { new->prev_free->next_free = new; - else + } else { heap.first_free = new; + } - if( new->next_free != NULL ) + if (new->next_free != NULL) { new->next_free->prev_free = new; + } cur->alloc = 1; cur->size = len; @@ -351,57 +345,60 @@ static void *buffer_alloc_calloc( size_t n, size_t size ) #if defined(MBEDTLS_MEMORY_DEBUG) heap.header_count++; - if( heap.header_count > heap.maximum_header_count ) + if (heap.header_count > heap.maximum_header_count) { heap.maximum_header_count = heap.header_count; + } heap.total_used += cur->size; - if( heap.total_used > heap.maximum_used ) + if (heap.total_used > heap.maximum_used) { heap.maximum_used = heap.total_used; + } #endif #if defined(MBEDTLS_MEMORY_BACKTRACE) - trace_cnt = backtrace( trace_buffer, MAX_BT ); - cur->trace = backtrace_symbols( trace_buffer, trace_cnt ); + trace_cnt = backtrace(trace_buffer, MAX_BT); + cur->trace = backtrace_symbols(trace_buffer, trace_cnt); cur->trace_count = trace_cnt; #endif - if( ( heap.verify & MBEDTLS_MEMORY_VERIFY_ALLOC ) && verify_chain() != 0 ) - mbedtls_exit( 1 ); + if ((heap.verify & MBEDTLS_MEMORY_VERIFY_ALLOC) && verify_chain() != 0) { + mbedtls_exit(1); + } - ret = (unsigned char *) cur + sizeof( memory_header ); - memset( ret, 0, original_len ); + ret = (unsigned char *) cur + sizeof(memory_header); + memset(ret, 0, original_len); - return( ret ); + return ret; } -static void buffer_alloc_free( void *ptr ) +static void buffer_alloc_free(void *ptr) { memory_header *hdr, *old = NULL; unsigned char *p = (unsigned char *) ptr; - if( ptr == NULL || heap.buf == NULL || heap.first == NULL ) + if (ptr == NULL || heap.buf == NULL || heap.first == NULL) { return; + } - if( p < heap.buf || p >= heap.buf + heap.len ) - { + if (p < heap.buf || p >= heap.buf + heap.len) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: mbedtls_free() outside of managed " - "space\n" ); + mbedtls_fprintf(stderr, "FATAL: mbedtls_free() outside of managed " + "space\n"); #endif - mbedtls_exit( 1 ); + mbedtls_exit(1); } p -= sizeof(memory_header); hdr = (memory_header *) p; - if( verify_header( hdr ) != 0 ) - mbedtls_exit( 1 ); + if (verify_header(hdr) != 0) { + mbedtls_exit(1); + } - if( hdr->alloc != 1 ) - { + if (hdr->alloc != 1) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_fprintf( stderr, "FATAL: mbedtls_free() on unallocated " - "data\n" ); + mbedtls_fprintf(stderr, "FATAL: mbedtls_free() on unallocated " + "data\n"); #endif - mbedtls_exit( 1 ); + mbedtls_exit(1); } hdr->alloc = 0; @@ -412,15 +409,14 @@ static void buffer_alloc_free( void *ptr ) #endif #if defined(MBEDTLS_MEMORY_BACKTRACE) - free( hdr->trace ); + free(hdr->trace); hdr->trace = NULL; hdr->trace_count = 0; #endif // Regroup with block before // - if( hdr->prev != NULL && hdr->prev->alloc == 0 ) - { + if (hdr->prev != NULL && hdr->prev->alloc == 0) { #if defined(MBEDTLS_MEMORY_DEBUG) heap.header_count--; #endif @@ -429,16 +425,16 @@ static void buffer_alloc_free( void *ptr ) old = hdr; hdr = hdr->prev; - if( hdr->next != NULL ) + if (hdr->next != NULL) { hdr->next->prev = hdr; + } - memset( old, 0, sizeof(memory_header) ); + memset(old, 0, sizeof(memory_header)); } // Regroup with block after // - if( hdr->next != NULL && hdr->next->alloc == 0 ) - { + if (hdr->next != NULL && hdr->next->alloc == 0) { #if defined(MBEDTLS_MEMORY_DEBUG) heap.header_count--; #endif @@ -446,101 +442,103 @@ static void buffer_alloc_free( void *ptr ) old = hdr->next; hdr->next = hdr->next->next; - if( hdr->prev_free != NULL || hdr->next_free != NULL ) - { - if( hdr->prev_free != NULL ) + if (hdr->prev_free != NULL || hdr->next_free != NULL) { + if (hdr->prev_free != NULL) { hdr->prev_free->next_free = hdr->next_free; - else + } else { heap.first_free = hdr->next_free; + } - if( hdr->next_free != NULL ) + if (hdr->next_free != NULL) { hdr->next_free->prev_free = hdr->prev_free; + } } hdr->prev_free = old->prev_free; hdr->next_free = old->next_free; - if( hdr->prev_free != NULL ) + if (hdr->prev_free != NULL) { hdr->prev_free->next_free = hdr; - else + } else { heap.first_free = hdr; + } - if( hdr->next_free != NULL ) + if (hdr->next_free != NULL) { hdr->next_free->prev_free = hdr; + } - if( hdr->next != NULL ) + if (hdr->next != NULL) { hdr->next->prev = hdr; + } - memset( old, 0, sizeof(memory_header) ); + memset(old, 0, sizeof(memory_header)); } // Prepend to free_list if we have not merged // (Does not have to stay in same order as prev / next list) // - if( old == NULL ) - { + if (old == NULL) { hdr->next_free = heap.first_free; - if( heap.first_free != NULL ) + if (heap.first_free != NULL) { heap.first_free->prev_free = hdr; + } heap.first_free = hdr; } - if( ( heap.verify & MBEDTLS_MEMORY_VERIFY_FREE ) && verify_chain() != 0 ) - mbedtls_exit( 1 ); + if ((heap.verify & MBEDTLS_MEMORY_VERIFY_FREE) && verify_chain() != 0) { + mbedtls_exit(1); + } } -void mbedtls_memory_buffer_set_verify( int verify ) +void mbedtls_memory_buffer_set_verify(int verify) { heap.verify = verify; } -int mbedtls_memory_buffer_alloc_verify( void ) +int mbedtls_memory_buffer_alloc_verify(void) { return verify_chain(); } #if defined(MBEDTLS_MEMORY_DEBUG) -void mbedtls_memory_buffer_alloc_status( void ) +void mbedtls_memory_buffer_alloc_status(void) { - mbedtls_fprintf( stderr, - "Current use: %zu blocks / %zu bytes, max: %zu blocks / " - "%zu bytes (total %zu bytes), alloc / free: %zu / %zu\n", - heap.header_count, heap.total_used, - heap.maximum_header_count, heap.maximum_used, - heap.maximum_header_count * sizeof( memory_header ) - + heap.maximum_used, - heap.alloc_count, heap.free_count ); + mbedtls_fprintf(stderr, + "Current use: %zu blocks / %zu bytes, max: %zu blocks / " + "%zu bytes (total %zu bytes), alloc / free: %zu / %zu\n", + heap.header_count, heap.total_used, + heap.maximum_header_count, heap.maximum_used, + heap.maximum_header_count * sizeof(memory_header) + + heap.maximum_used, + heap.alloc_count, heap.free_count); - if( heap.first->next == NULL ) - { - mbedtls_fprintf( stderr, "All memory de-allocated in stack buffer\n" ); - } - else - { - mbedtls_fprintf( stderr, "Memory currently allocated:\n" ); + if (heap.first->next == NULL) { + mbedtls_fprintf(stderr, "All memory de-allocated in stack buffer\n"); + } else { + mbedtls_fprintf(stderr, "Memory currently allocated:\n"); debug_chain(); } } -void mbedtls_memory_buffer_alloc_count_get( size_t *alloc_count, size_t *free_count ) +void mbedtls_memory_buffer_alloc_count_get(size_t *alloc_count, size_t *free_count) { *alloc_count = heap.alloc_count; *free_count = heap.free_count; } -void mbedtls_memory_buffer_alloc_max_get( size_t *max_used, size_t *max_blocks ) +void mbedtls_memory_buffer_alloc_max_get(size_t *max_used, size_t *max_blocks) { *max_used = heap.maximum_used; *max_blocks = heap.maximum_header_count; } -void mbedtls_memory_buffer_alloc_max_reset( void ) +void mbedtls_memory_buffer_alloc_max_reset(void) { heap.maximum_used = 0; heap.maximum_header_count = 0; } -void mbedtls_memory_buffer_alloc_cur_get( size_t *cur_used, size_t *cur_blocks ) +void mbedtls_memory_buffer_alloc_cur_get(size_t *cur_used, size_t *cur_blocks) { *cur_used = heap.total_used; *cur_blocks = heap.header_count; @@ -548,202 +546,211 @@ void mbedtls_memory_buffer_alloc_cur_get( size_t *cur_used, size_t *cur_blocks ) #endif /* MBEDTLS_MEMORY_DEBUG */ #if defined(MBEDTLS_THREADING_C) -static void *buffer_alloc_calloc_mutexed( size_t n, size_t size ) +static void *buffer_alloc_calloc_mutexed(size_t n, size_t size) { void *buf; - if( mbedtls_mutex_lock( &heap.mutex ) != 0 ) - return( NULL ); - buf = buffer_alloc_calloc( n, size ); - if( mbedtls_mutex_unlock( &heap.mutex ) ) - return( NULL ); - return( buf ); + if (mbedtls_mutex_lock(&heap.mutex) != 0) { + return NULL; + } + buf = buffer_alloc_calloc(n, size); + if (mbedtls_mutex_unlock(&heap.mutex)) { + return NULL; + } + return buf; } -static void buffer_alloc_free_mutexed( void *ptr ) +static void buffer_alloc_free_mutexed(void *ptr) { /* We have no good option here, but corrupting the heap seems * worse than losing memory. */ - if( mbedtls_mutex_lock( &heap.mutex ) ) + if (mbedtls_mutex_lock(&heap.mutex)) { return; - buffer_alloc_free( ptr ); - (void) mbedtls_mutex_unlock( &heap.mutex ); + } + buffer_alloc_free(ptr); + (void) mbedtls_mutex_unlock(&heap.mutex); } #endif /* MBEDTLS_THREADING_C */ -void mbedtls_memory_buffer_alloc_init( unsigned char *buf, size_t len ) +void mbedtls_memory_buffer_alloc_init(unsigned char *buf, size_t len) { - memset( &heap, 0, sizeof( buffer_alloc_ctx ) ); + memset(&heap, 0, sizeof(buffer_alloc_ctx)); #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &heap.mutex ); - mbedtls_platform_set_calloc_free( buffer_alloc_calloc_mutexed, - buffer_alloc_free_mutexed ); + mbedtls_mutex_init(&heap.mutex); + mbedtls_platform_set_calloc_free(buffer_alloc_calloc_mutexed, + buffer_alloc_free_mutexed); #else - mbedtls_platform_set_calloc_free( buffer_alloc_calloc, buffer_alloc_free ); + mbedtls_platform_set_calloc_free(buffer_alloc_calloc, buffer_alloc_free); #endif - if( len < sizeof( memory_header ) + MBEDTLS_MEMORY_ALIGN_MULTIPLE ) + if (len < sizeof(memory_header) + MBEDTLS_MEMORY_ALIGN_MULTIPLE) { return; - else if( (size_t)buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE ) - { + } else if ((size_t) buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE) { /* Adjust len first since buf is used in the computation */ len -= MBEDTLS_MEMORY_ALIGN_MULTIPLE - - (size_t)buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE; + - (size_t) buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE; buf += MBEDTLS_MEMORY_ALIGN_MULTIPLE - - (size_t)buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE; + - (size_t) buf % MBEDTLS_MEMORY_ALIGN_MULTIPLE; } - memset( buf, 0, len ); + memset(buf, 0, len); heap.buf = buf; heap.len = len; - heap.first = (memory_header *)buf; - heap.first->size = len - sizeof( memory_header ); + heap.first = (memory_header *) buf; + heap.first->size = len - sizeof(memory_header); heap.first->magic1 = MAGIC1; heap.first->magic2 = MAGIC2; heap.first_free = heap.first; } -void mbedtls_memory_buffer_alloc_free( void ) +void mbedtls_memory_buffer_alloc_free(void) { #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_free( &heap.mutex ); + mbedtls_mutex_free(&heap.mutex); #endif - mbedtls_platform_zeroize( &heap, sizeof(buffer_alloc_ctx) ); + mbedtls_platform_zeroize(&heap, sizeof(buffer_alloc_ctx)); } #if defined(MBEDTLS_SELF_TEST) -static int check_pointer( void *p ) +static int check_pointer(void *p) { - if( p == NULL ) - return( -1 ); + if (p == NULL) { + return -1; + } - if( (size_t) p % MBEDTLS_MEMORY_ALIGN_MULTIPLE != 0 ) - return( -1 ); + if ((size_t) p % MBEDTLS_MEMORY_ALIGN_MULTIPLE != 0) { + return -1; + } - return( 0 ); + return 0; } -static int check_all_free( void ) +static int check_all_free(void) { - if( + if ( #if defined(MBEDTLS_MEMORY_DEBUG) heap.total_used != 0 || #endif heap.first != heap.first_free || - (void *) heap.first != (void *) heap.buf ) - { - return( -1 ); + (void *) heap.first != (void *) heap.buf) { + return -1; } - return( 0 ); + return 0; } -#define TEST_ASSERT( condition ) \ - if( ! (condition) ) \ +#define TEST_ASSERT(condition) \ + if (!(condition)) \ { \ - if( verbose != 0 ) \ - mbedtls_printf( "failed\n" ); \ + if (verbose != 0) \ + mbedtls_printf("failed\n"); \ \ ret = 1; \ goto cleanup; \ } -int mbedtls_memory_buffer_alloc_self_test( int verbose ) +int mbedtls_memory_buffer_alloc_self_test(int verbose) { unsigned char buf[1024]; unsigned char *p, *q, *r, *end; int ret = 0; - if( verbose != 0 ) - mbedtls_printf( " MBA test #1 (basic alloc-free cycle): " ); + if (verbose != 0) { + mbedtls_printf(" MBA test #1 (basic alloc-free cycle): "); + } - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); - p = mbedtls_calloc( 1, 1 ); - q = mbedtls_calloc( 1, 128 ); - r = mbedtls_calloc( 1, 16 ); + p = mbedtls_calloc(1, 1); + q = mbedtls_calloc(1, 128); + r = mbedtls_calloc(1, 16); - TEST_ASSERT( check_pointer( p ) == 0 && - check_pointer( q ) == 0 && - check_pointer( r ) == 0 ); + TEST_ASSERT(check_pointer(p) == 0 && + check_pointer(q) == 0 && + check_pointer(r) == 0); - mbedtls_free( r ); - mbedtls_free( q ); - mbedtls_free( p ); + mbedtls_free(r); + mbedtls_free(q); + mbedtls_free(p); - TEST_ASSERT( check_all_free( ) == 0 ); + TEST_ASSERT(check_all_free() == 0); /* Memorize end to compare with the next test */ end = heap.buf + heap.len; - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( " MBA test #2 (buf not aligned): " ); + if (verbose != 0) { + mbedtls_printf(" MBA test #2 (buf not aligned): "); + } - mbedtls_memory_buffer_alloc_init( buf + 1, sizeof( buf ) - 1 ); + mbedtls_memory_buffer_alloc_init(buf + 1, sizeof(buf) - 1); - TEST_ASSERT( heap.buf + heap.len == end ); + TEST_ASSERT(heap.buf + heap.len == end); - p = mbedtls_calloc( 1, 1 ); - q = mbedtls_calloc( 1, 128 ); - r = mbedtls_calloc( 1, 16 ); + p = mbedtls_calloc(1, 1); + q = mbedtls_calloc(1, 128); + r = mbedtls_calloc(1, 16); - TEST_ASSERT( check_pointer( p ) == 0 && - check_pointer( q ) == 0 && - check_pointer( r ) == 0 ); + TEST_ASSERT(check_pointer(p) == 0 && + check_pointer(q) == 0 && + check_pointer(r) == 0); - mbedtls_free( r ); - mbedtls_free( q ); - mbedtls_free( p ); + mbedtls_free(r); + mbedtls_free(q); + mbedtls_free(p); - TEST_ASSERT( check_all_free( ) == 0 ); + TEST_ASSERT(check_all_free() == 0); - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } - if( verbose != 0 ) - mbedtls_printf( " MBA test #3 (full): " ); + if (verbose != 0) { + mbedtls_printf(" MBA test #3 (full): "); + } - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); - p = mbedtls_calloc( 1, sizeof( buf ) - sizeof( memory_header ) ); + p = mbedtls_calloc(1, sizeof(buf) - sizeof(memory_header)); - TEST_ASSERT( check_pointer( p ) == 0 ); - TEST_ASSERT( mbedtls_calloc( 1, 1 ) == NULL ); + TEST_ASSERT(check_pointer(p) == 0); + TEST_ASSERT(mbedtls_calloc(1, 1) == NULL); - mbedtls_free( p ); + mbedtls_free(p); - p = mbedtls_calloc( 1, sizeof( buf ) - 2 * sizeof( memory_header ) - 16 ); - q = mbedtls_calloc( 1, 16 ); + p = mbedtls_calloc(1, sizeof(buf) - 2 * sizeof(memory_header) - 16); + q = mbedtls_calloc(1, 16); - TEST_ASSERT( check_pointer( p ) == 0 && check_pointer( q ) == 0 ); - TEST_ASSERT( mbedtls_calloc( 1, 1 ) == NULL ); + TEST_ASSERT(check_pointer(p) == 0 && check_pointer(q) == 0); + TEST_ASSERT(mbedtls_calloc(1, 1) == NULL); - mbedtls_free( q ); + mbedtls_free(q); - TEST_ASSERT( mbedtls_calloc( 1, 17 ) == NULL ); + TEST_ASSERT(mbedtls_calloc(1, 17) == NULL); - mbedtls_free( p ); + mbedtls_free(p); - TEST_ASSERT( check_all_free( ) == 0 ); + TEST_ASSERT(check_all_free() == 0); - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } cleanup: - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/mps_common.h b/library/mps_common.h index 668876ccf..4a10176bd 100644 --- a/library/mps_common.h +++ b/library/mps_common.h @@ -99,41 +99,41 @@ #if defined(MBEDTLS_MPS_STATE_VALIDATION) -#define MBEDTLS_MPS_STATE_VALIDATE_RAW( cond, string ) \ +#define MBEDTLS_MPS_STATE_VALIDATE_RAW(cond, string) \ do \ { \ - if( !(cond) ) \ + if (!(cond)) \ { \ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_ERROR, string ); \ - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_OPERATION_UNEXPECTED ); \ + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_ERROR, string); \ + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_OPERATION_UNEXPECTED); \ } \ - } while( 0 ) + } while (0) #else /* MBEDTLS_MPS_STATE_VALIDATION */ -#define MBEDTLS_MPS_STATE_VALIDATE_RAW( cond, string ) \ +#define MBEDTLS_MPS_STATE_VALIDATE_RAW(cond, string) \ do \ { \ - ( cond ); \ - } while( 0 ) + (cond); \ + } while (0) #endif /* MBEDTLS_MPS_STATE_VALIDATION */ #if defined(MBEDTLS_MPS_ENABLE_ASSERTIONS) -#define MBEDTLS_MPS_ASSERT_RAW( cond, string ) \ +#define MBEDTLS_MPS_ASSERT_RAW(cond, string) \ do \ { \ - if( !(cond) ) \ + if (!(cond)) \ { \ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_ERROR, string ); \ - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_INTERNAL_ERROR ); \ + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_ERROR, string); \ + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_INTERNAL_ERROR); \ } \ - } while( 0 ) + } while (0) #else /* MBEDTLS_MPS_ENABLE_ASSERTIONS */ -#define MBEDTLS_MPS_ASSERT_RAW( cond, string ) do {} while( 0 ) +#define MBEDTLS_MPS_ASSERT_RAW(cond, string) do {} while (0) #endif /* MBEDTLS_MPS_ENABLE_ASSERTIONS */ @@ -169,7 +169,7 @@ * */ typedef size_t mbedtls_mps_stored_size_t; -#define MBEDTLS_MPS_STORED_SIZE_MAX ( (mbedtls_mps_stored_size_t) -1 ) +#define MBEDTLS_MPS_STORED_SIZE_MAX ((mbedtls_mps_stored_size_t) -1) /** \brief The type of buffer sizes and offsets used in the MPS API * and implementation. @@ -183,7 +183,7 @@ typedef size_t mbedtls_mps_stored_size_t; * so almost 10%. */ typedef size_t mbedtls_mps_size_t; -#define MBEDTLS_MPS_SIZE_MAX ( (mbedtls_mps_size_t) -1 ) +#define MBEDTLS_MPS_SIZE_MAX ((mbedtls_mps_size_t) -1) #if MBEDTLS_MPS_STORED_SIZE_MAX > MBEDTLS_MPS_SIZE_MAX #error "Misconfiguration of mbedtls_mps_size_t and mbedtls_mps_stored_size_t." diff --git a/library/mps_error.h b/library/mps_error.h index f78d9a05f..15570d238 100644 --- a/library/mps_error.h +++ b/library/mps_error.h @@ -45,14 +45,14 @@ */ #ifndef MBEDTLS_MPS_ERR_BASE -#define MBEDTLS_MPS_ERR_BASE ( 0 ) +#define MBEDTLS_MPS_ERR_BASE (0) #endif #define MBEDTLS_MPS_MAKE_ERROR(code) \ - ( -( MBEDTLS_MPS_ERR_BASE | (code) ) ) + (-(MBEDTLS_MPS_ERR_BASE | (code))) -#define MBEDTLS_ERR_MPS_OPERATION_UNEXPECTED MBEDTLS_MPS_MAKE_ERROR( 0x1 ) -#define MBEDTLS_ERR_MPS_INTERNAL_ERROR MBEDTLS_MPS_MAKE_ERROR( 0x2 ) +#define MBEDTLS_ERR_MPS_OPERATION_UNEXPECTED MBEDTLS_MPS_MAKE_ERROR(0x1) +#define MBEDTLS_ERR_MPS_INTERNAL_ERROR MBEDTLS_MPS_MAKE_ERROR(0x2) /* \} name SECTION: MPS general error codes */ @@ -63,40 +63,40 @@ */ #ifndef MBEDTLS_MPS_READER_ERR_BASE -#define MBEDTLS_MPS_READER_ERR_BASE ( 1 << 8 ) +#define MBEDTLS_MPS_READER_ERR_BASE (1 << 8) #endif #define MBEDTLS_MPS_READER_MAKE_ERROR(code) \ - ( -( MBEDTLS_MPS_READER_ERR_BASE | (code) ) ) + (-(MBEDTLS_MPS_READER_ERR_BASE | (code))) /*! An attempt to reclaim the data buffer from a reader failed because * the user hasn't yet read and committed all of it. */ -#define MBEDTLS_ERR_MPS_READER_DATA_LEFT MBEDTLS_MPS_READER_MAKE_ERROR( 0x1 ) +#define MBEDTLS_ERR_MPS_READER_DATA_LEFT MBEDTLS_MPS_READER_MAKE_ERROR(0x1) /*! An invalid argument was passed to the reader. */ -#define MBEDTLS_ERR_MPS_READER_INVALID_ARG MBEDTLS_MPS_READER_MAKE_ERROR( 0x2 ) +#define MBEDTLS_ERR_MPS_READER_INVALID_ARG MBEDTLS_MPS_READER_MAKE_ERROR(0x2) /*! An attempt to move a reader to consuming mode through mbedtls_mps_reader_feed() * after pausing failed because the provided data is not sufficient to serve the * read requests that led to the pausing. */ -#define MBEDTLS_ERR_MPS_READER_NEED_MORE MBEDTLS_MPS_READER_MAKE_ERROR( 0x3 ) +#define MBEDTLS_ERR_MPS_READER_NEED_MORE MBEDTLS_MPS_READER_MAKE_ERROR(0x3) /*! A get request failed because not enough data is available in the reader. */ -#define MBEDTLS_ERR_MPS_READER_OUT_OF_DATA MBEDTLS_MPS_READER_MAKE_ERROR( 0x4 ) +#define MBEDTLS_ERR_MPS_READER_OUT_OF_DATA MBEDTLS_MPS_READER_MAKE_ERROR(0x4) /*!< A get request after pausing and reactivating the reader failed because * the request is not in line with the request made prior to pausing. The user * must not change it's 'strategy' after pausing and reactivating a reader. */ -#define MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS MBEDTLS_MPS_READER_MAKE_ERROR( 0x5 ) +#define MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS MBEDTLS_MPS_READER_MAKE_ERROR(0x5) /*! An attempt to reclaim the data buffer from a reader failed because the reader * has no accumulator it can use to backup the data that hasn't been processed. */ -#define MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR MBEDTLS_MPS_READER_MAKE_ERROR( 0x6 ) +#define MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR MBEDTLS_MPS_READER_MAKE_ERROR(0x6) /*! An attempt to reclaim the data buffer from a reader failed because the * accumulator passed to the reader is not large enough to hold both the * data that hasn't been processed and the excess of the last read-request. */ -#define MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL MBEDTLS_MPS_READER_MAKE_ERROR( 0x7 ) +#define MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL MBEDTLS_MPS_READER_MAKE_ERROR(0x7) /* \} name SECTION: MPS Reader error codes */ diff --git a/library/mps_reader.c b/library/mps_reader.c index df97b6cd1..dc2a91cbc 100644 --- a/library/mps_reader.c +++ b/library/mps_reader.c @@ -67,54 +67,56 @@ static int mbedtls_mps_trace_id = MBEDTLS_MPS_TRACE_BIT_READER; */ static inline int mps_reader_is_accumulating( - mbedtls_mps_reader const *rd ) + mbedtls_mps_reader const *rd) { mbedtls_mps_size_t acc_remaining; - if( rd->acc == NULL ) - return( 0 ); + if (rd->acc == NULL) { + return 0; + } acc_remaining = rd->acc_share.acc_remaining; - return( acc_remaining > 0 ); + return acc_remaining > 0; } static inline int mps_reader_is_producing( - mbedtls_mps_reader const *rd ) + mbedtls_mps_reader const *rd) { unsigned char *frag = rd->frag; - return( frag == NULL ); + return frag == NULL; } static inline int mps_reader_is_consuming( - mbedtls_mps_reader const *rd ) + mbedtls_mps_reader const *rd) { - return( !mps_reader_is_producing( rd ) ); + return !mps_reader_is_producing(rd); } static inline mbedtls_mps_size_t mps_reader_get_fragment_offset( - mbedtls_mps_reader const *rd ) + mbedtls_mps_reader const *rd) { unsigned char *acc = rd->acc; mbedtls_mps_size_t frag_offset; - if( acc == NULL ) - return( 0 ); + if (acc == NULL) { + return 0; + } frag_offset = rd->acc_share.frag_offset; - return( frag_offset ); + return frag_offset; } static inline mbedtls_mps_size_t mps_reader_serving_from_accumulator( - mbedtls_mps_reader const *rd ) + mbedtls_mps_reader const *rd) { mbedtls_mps_size_t frag_offset, end; - frag_offset = mps_reader_get_fragment_offset( rd ); + frag_offset = mps_reader_get_fragment_offset(rd); end = rd->end; - return( end < frag_offset ); + return end < frag_offset; } -static inline void mps_reader_zero( mbedtls_mps_reader *rd ) +static inline void mps_reader_zero(mbedtls_mps_reader *rd) { /* A plain memset() would likely be more efficient, * but the current way of zeroing makes it harder @@ -123,56 +125,56 @@ static inline void mps_reader_zero( mbedtls_mps_reader *rd ) * doesn't require reasoning about structs being * interpreted as unstructured binary blobs. */ static mbedtls_mps_reader const zero = - { .frag = NULL, - .frag_len = 0, - .commit = 0, - .end = 0, - .pending = 0, - .acc = NULL, - .acc_len = 0, - .acc_available = 0, - .acc_share = { .acc_remaining = 0 } - }; + { .frag = NULL, + .frag_len = 0, + .commit = 0, + .end = 0, + .pending = 0, + .acc = NULL, + .acc_len = 0, + .acc_available = 0, + .acc_share = { .acc_remaining = 0 } }; *rd = zero; } -int mbedtls_mps_reader_init( mbedtls_mps_reader *rd, - unsigned char *acc, - mbedtls_mps_size_t acc_len ) +int mbedtls_mps_reader_init(mbedtls_mps_reader *rd, + unsigned char *acc, + mbedtls_mps_size_t acc_len) { - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_init" ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "* Accumulator size: %u bytes", (unsigned) acc_len ); - mps_reader_zero( rd ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_init"); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "* Accumulator size: %u bytes", (unsigned) acc_len); + mps_reader_zero(rd); rd->acc = acc; rd->acc_len = acc_len; - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_RETURN(0); } -int mbedtls_mps_reader_free( mbedtls_mps_reader *rd ) +int mbedtls_mps_reader_free(mbedtls_mps_reader *rd) { - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_free" ); - mps_reader_zero( rd ); - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_free"); + mps_reader_zero(rd); + MBEDTLS_MPS_TRACE_RETURN(0); } -int mbedtls_mps_reader_feed( mbedtls_mps_reader *rd, - unsigned char *new_frag, - mbedtls_mps_size_t new_frag_len ) +int mbedtls_mps_reader_feed(mbedtls_mps_reader *rd, + unsigned char *new_frag, + mbedtls_mps_size_t new_frag_len) { mbedtls_mps_size_t copy_to_acc; - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_feed" ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "* Fragment length: %u bytes", (unsigned) new_frag_len ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_feed"); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "* Fragment length: %u bytes", (unsigned) new_frag_len); - if( new_frag == NULL ) - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_READER_INVALID_ARG ); + if (new_frag == NULL) { + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_READER_INVALID_ARG); + } - MBEDTLS_MPS_STATE_VALIDATE_RAW( mps_reader_is_producing( rd ), - "mbedtls_mps_reader_feed() requires reader to be in producing mode" ); + MBEDTLS_MPS_STATE_VALIDATE_RAW(mps_reader_is_producing( + rd), + "mbedtls_mps_reader_feed() requires reader to be in producing mode"); - if( mps_reader_is_accumulating( rd ) ) - { + if (mps_reader_is_accumulating(rd)) { unsigned char *acc = rd->acc; mbedtls_mps_size_t acc_remaining = rd->acc_share.acc_remaining; mbedtls_mps_size_t acc_available = rd->acc_available; @@ -181,39 +183,38 @@ int mbedtls_mps_reader_feed( mbedtls_mps_reader *rd, acc += acc_available; copy_to_acc = acc_remaining; - if( copy_to_acc > new_frag_len ) + if (copy_to_acc > new_frag_len) { copy_to_acc = new_frag_len; + } /* Copy new contents to accumulator. */ - memcpy( acc, new_frag, copy_to_acc ); + memcpy(acc, new_frag, copy_to_acc); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Copy new data of size %u of %u into accumulator at offset %u", - (unsigned) copy_to_acc, (unsigned) new_frag_len, (unsigned) acc_available ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Copy new data of size %u of %u into accumulator at offset %u", + (unsigned) copy_to_acc, (unsigned) new_frag_len, + (unsigned) acc_available); /* Check if, with the new fragment, we have enough data. */ acc_remaining -= copy_to_acc; - if( acc_remaining > 0 ) - { + if (acc_remaining > 0) { /* We need to accumulate more data. Stay in producing mode. */ acc_available += copy_to_acc; rd->acc_share.acc_remaining = acc_remaining; rd->acc_available = acc_available; - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_READER_NEED_MORE ); + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_READER_NEED_MORE); } /* We have filled the accumulator: Move to consuming mode. */ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Enough data available to serve user request" ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Enough data available to serve user request"); /* Remember overlap of accumulator and fragment. */ rd->acc_share.frag_offset = acc_available; acc_available += copy_to_acc; rd->acc_available = acc_available; - } - else /* Not accumulating */ - { + } else { /* Not accumulating */ rd->acc_share.frag_offset = 0; } @@ -221,30 +222,30 @@ int mbedtls_mps_reader_feed( mbedtls_mps_reader *rd, rd->frag_len = new_frag_len; rd->commit = 0; rd->end = 0; - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_RETURN(0); } -int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, - mbedtls_mps_size_t desired, - unsigned char **buffer, - mbedtls_mps_size_t *buflen ) +int mbedtls_mps_reader_get(mbedtls_mps_reader *rd, + mbedtls_mps_size_t desired, + unsigned char **buffer, + mbedtls_mps_size_t *buflen) { unsigned char *frag; mbedtls_mps_size_t frag_len, frag_offset, end, frag_fetched, frag_remaining; - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_get" ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "* Bytes requested: %u", (unsigned) desired ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_get"); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "* Bytes requested: %u", (unsigned) desired); - MBEDTLS_MPS_STATE_VALIDATE_RAW( mps_reader_is_consuming( rd ), - "mbedtls_mps_reader_get() requires reader to be in consuming mode" ); + MBEDTLS_MPS_STATE_VALIDATE_RAW(mps_reader_is_consuming( + rd), + "mbedtls_mps_reader_get() requires reader to be in consuming mode"); end = rd->end; - frag_offset = mps_reader_get_fragment_offset( rd ); + frag_offset = mps_reader_get_fragment_offset(rd); /* Check if we're still serving from the accumulator. */ - if( mps_reader_serving_from_accumulator( rd ) ) - { + if (mps_reader_serving_from_accumulator(rd)) { /* Illustration of supported and unsupported cases: * * - Allowed #1 @@ -310,14 +311,12 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, unsigned char *acc; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Serve the request from the accumulator" ); - if( frag_offset - end < desired ) - { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Serve the request from the accumulator"); + if (frag_offset - end < desired) { mbedtls_mps_size_t acc_available; acc_available = rd->acc_available; - if( acc_available - end != desired ) - { + if (acc_available - end != desired) { /* It might be possible to serve some of these situations by * making additional space in the accumulator, removing those * parts that have already been committed. @@ -329,7 +328,7 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, * the library, this check is a good opportunity to * validate this. */ MBEDTLS_MPS_TRACE_RETURN( - MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS ); + MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS); } } @@ -337,19 +336,20 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, acc += end; *buffer = acc; - if( buflen != NULL ) + if (buflen != NULL) { *buflen = desired; + } end += desired; rd->end = end; rd->pending = 0; - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_RETURN(0); } /* Attempt to serve the request from the current fragment */ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Serve the request from the current fragment." ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Serve the request from the current fragment."); frag_len = rd->frag_len; frag_fetched = end - frag_offset; /* The amount of data from the current @@ -358,23 +358,20 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, frag_remaining = frag_len - frag_fetched; /* Remaining data in fragment */ /* Check if we can serve the read request from the fragment. */ - if( frag_remaining < desired ) - { - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "There's not enough data in the current fragment " - "to serve the request." ); + if (frag_remaining < desired) { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "There's not enough data in the current fragment " + "to serve the request."); /* There's not enough data in the current fragment, * so either just RETURN what we have or fail. */ - if( buflen == NULL ) - { - if( frag_remaining > 0 ) - { + if (buflen == NULL) { + if (frag_remaining > 0) { rd->pending = desired - frag_remaining; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Remember to collect %u bytes before re-opening", - (unsigned) rd->pending ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Remember to collect %u bytes before re-opening", + (unsigned) rd->pending); } - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); } desired = frag_remaining; @@ -387,41 +384,45 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *rd, frag += frag_fetched; *buffer = frag; - if( buflen != NULL ) + if (buflen != NULL) { *buflen = desired; + } end += desired; rd->end = end; rd->pending = 0; - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_RETURN(0); } -int mbedtls_mps_reader_commit( mbedtls_mps_reader *rd ) +int mbedtls_mps_reader_commit(mbedtls_mps_reader *rd) { mbedtls_mps_size_t end; - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_commit" ); - MBEDTLS_MPS_STATE_VALIDATE_RAW( mps_reader_is_consuming( rd ), - "mbedtls_mps_reader_commit() requires reader to be in consuming mode" ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_commit"); + MBEDTLS_MPS_STATE_VALIDATE_RAW(mps_reader_is_consuming( + rd), + "mbedtls_mps_reader_commit() requires reader to be in consuming mode"); end = rd->end; rd->commit = end; - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE_RETURN(0); } -int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, - int *paused ) +int mbedtls_mps_reader_reclaim(mbedtls_mps_reader *rd, + int *paused) { unsigned char *frag, *acc; mbedtls_mps_size_t pending, commit; mbedtls_mps_size_t acc_len, frag_offset, frag_len; - MBEDTLS_MPS_TRACE_INIT( "mbedtls_mps_reader_reclaim" ); + MBEDTLS_MPS_TRACE_INIT("mbedtls_mps_reader_reclaim"); - if( paused != NULL ) + if (paused != NULL) { *paused = 0; + } - MBEDTLS_MPS_STATE_VALIDATE_RAW( mps_reader_is_consuming( rd ), - "mbedtls_mps_reader_reclaim() requires reader to be in consuming mode" ); + MBEDTLS_MPS_STATE_VALIDATE_RAW(mps_reader_is_consuming( + rd), + "mbedtls_mps_reader_reclaim() requires reader to be in consuming mode"); frag = rd->frag; acc = rd->acc; @@ -429,30 +430,26 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, commit = rd->commit; frag_len = rd->frag_len; - frag_offset = mps_reader_get_fragment_offset( rd ); + frag_offset = mps_reader_get_fragment_offset(rd); - if( pending == 0 ) - { - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "No unsatisfied read-request has been logged." ); + if (pending == 0) { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "No unsatisfied read-request has been logged."); /* Check if there's data left to be consumed. */ - if( commit < frag_offset || commit - frag_offset < frag_len ) - { - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "There is data left to be consumed." ); + if (commit < frag_offset || commit - frag_offset < frag_len) { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "There is data left to be consumed."); rd->end = commit; - MBEDTLS_MPS_TRACE_RETURN( MBEDTLS_ERR_MPS_READER_DATA_LEFT ); + MBEDTLS_MPS_TRACE_RETURN(MBEDTLS_ERR_MPS_READER_DATA_LEFT); } rd->acc_available = 0; rd->acc_share.acc_remaining = 0; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Fragment has been fully processed and committed." ); - } - else - { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Fragment has been fully processed and committed."); + } else { int overflow; mbedtls_mps_size_t acc_backup_offset; @@ -463,31 +460,27 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, mbedtls_mps_size_t backup_len; mbedtls_mps_size_t acc_len_needed; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "There has been an unsatisfied read with %u bytes overhead.", - (unsigned) pending ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "There has been an unsatisfied read with %u bytes overhead.", + (unsigned) pending); - if( acc == NULL ) - { - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "No accumulator present" ); + if (acc == NULL) { + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "No accumulator present"); MBEDTLS_MPS_TRACE_RETURN( - MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR ); + MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR); } acc_len = rd->acc_len; /* Check if the upper layer has already fetched * and committed the contents of the accumulator. */ - if( commit < frag_offset ) - { + if (commit < frag_offset) { /* No, accumulator is still being processed. */ frag_backup_offset = 0; frag_backup_len = frag_len; acc_backup_offset = commit; acc_backup_len = frag_offset - commit; - } - else - { + } else { /* Yes, the accumulator is already processed. */ frag_backup_offset = commit - frag_offset; frag_backup_len = frag_len - frag_backup_offset; @@ -499,47 +492,47 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, acc_len_needed = backup_len + pending; overflow = 0; - overflow |= ( backup_len < acc_backup_len ); - overflow |= ( acc_len_needed < backup_len ); + overflow |= (backup_len < acc_backup_len); + overflow |= (acc_len_needed < backup_len); - if( overflow || acc_len < acc_len_needed ) - { + if (overflow || acc_len < acc_len_needed) { /* Except for the different return code, we behave as if * there hadn't been a call to mbedtls_mps_reader_get() * since the last commit. */ rd->end = commit; rd->pending = 0; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_ERROR, - "The accumulator is too small to handle the backup." ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_ERROR, - "* Size: %u", (unsigned) acc_len ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_ERROR, - "* Needed: %u (%u + %u)", - (unsigned) acc_len_needed, - (unsigned) backup_len, (unsigned) pending ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_ERROR, + "The accumulator is too small to handle the backup."); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_ERROR, + "* Size: %u", (unsigned) acc_len); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_ERROR, + "* Needed: %u (%u + %u)", + (unsigned) acc_len_needed, + (unsigned) backup_len, (unsigned) pending); MBEDTLS_MPS_TRACE_RETURN( - MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL ); + MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL); } - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Fragment backup: %u", (unsigned) frag_backup_len ); - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Accumulator backup: %u", (unsigned) acc_backup_len ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Fragment backup: %u", (unsigned) frag_backup_len); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Accumulator backup: %u", (unsigned) acc_backup_len); /* Move uncommitted parts from the accumulator to the front * of the accumulator. */ - memmove( acc, acc + acc_backup_offset, acc_backup_len ); + memmove(acc, acc + acc_backup_offset, acc_backup_len); /* Copy uncommitted parts of the current fragment to the * accumulator. */ - memcpy( acc + acc_backup_len, - frag + frag_backup_offset, frag_backup_len ); + memcpy(acc + acc_backup_len, + frag + frag_backup_offset, frag_backup_len); rd->acc_available = backup_len; rd->acc_share.acc_remaining = pending; - if( paused != NULL ) + if (paused != NULL) { *paused = 1; + } } rd->frag = NULL; @@ -549,11 +542,11 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *rd, rd->end = 0; rd->pending = 0; - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_COMMENT, - "Final state: aa %u, al %u, ar %u", - (unsigned) rd->acc_available, (unsigned) rd->acc_len, - (unsigned) rd->acc_share.acc_remaining ); - MBEDTLS_MPS_TRACE_RETURN( 0 ); + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_COMMENT, + "Final state: aa %u, al %u, ar %u", + (unsigned) rd->acc_available, (unsigned) rd->acc_len, + (unsigned) rd->acc_share.acc_remaining); + MBEDTLS_MPS_TRACE_RETURN(0); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/mps_reader.h b/library/mps_reader.h index 427c1bd25..bff670503 100644 --- a/library/mps_reader.h +++ b/library/mps_reader.h @@ -134,8 +134,7 @@ typedef struct mbedtls_mps_reader mbedtls_mps_reader; * Structure definitions */ -struct mbedtls_mps_reader -{ +struct mbedtls_mps_reader { unsigned char *frag; /*!< The fragment of incoming data managed by * the reader; it is provided to the reader * through mbedtls_mps_reader_feed(). The reader @@ -146,46 +145,46 @@ struct mbedtls_mps_reader * The reader is in consuming mode if * and only if \c frag is not \c NULL. */ mbedtls_mps_stored_size_t frag_len; - /*!< The length of the current fragment. - * Must be 0 if \c frag == \c NULL. */ + /*!< The length of the current fragment. + * Must be 0 if \c frag == \c NULL. */ mbedtls_mps_stored_size_t commit; - /*!< The offset of the last commit, relative - * to the first byte in the fragment, if - * no accumulator is present. If an accumulator - * is present, it is viewed as a prefix to the - * current fragment, and this variable contains - * an offset from the beginning of the accumulator. - * - * This is only used when the reader is in - * consuming mode, i.e. \c frag != \c NULL; - * otherwise, its value is \c 0. */ + /*!< The offset of the last commit, relative + * to the first byte in the fragment, if + * no accumulator is present. If an accumulator + * is present, it is viewed as a prefix to the + * current fragment, and this variable contains + * an offset from the beginning of the accumulator. + * + * This is only used when the reader is in + * consuming mode, i.e. \c frag != \c NULL; + * otherwise, its value is \c 0. */ mbedtls_mps_stored_size_t end; - /*!< The offset of the end of the last chunk - * passed to the user through a call to - * mbedtls_mps_reader_get(), relative to the first - * byte in the fragment, if no accumulator is - * present. If an accumulator is present, it is - * viewed as a prefix to the current fragment, and - * this variable contains an offset from the - * beginning of the accumulator. - * - * This is only used when the reader is in - * consuming mode, i.e. \c frag != \c NULL; - * otherwise, its value is \c 0. */ + /*!< The offset of the end of the last chunk + * passed to the user through a call to + * mbedtls_mps_reader_get(), relative to the first + * byte in the fragment, if no accumulator is + * present. If an accumulator is present, it is + * viewed as a prefix to the current fragment, and + * this variable contains an offset from the + * beginning of the accumulator. + * + * This is only used when the reader is in + * consuming mode, i.e. \c frag != \c NULL; + * otherwise, its value is \c 0. */ mbedtls_mps_stored_size_t pending; - /*!< The amount of incoming data missing on the - * last call to mbedtls_mps_reader_get(). - * In particular, it is \c 0 if the last call - * was successful. - * If a reader is reclaimed after an - * unsuccessful call to mbedtls_mps_reader_get(), - * this variable is used to have the reader - * remember how much data should be accumulated - * so that the call to mbedtls_mps_reader_get() - * succeeds next time. - * This is only used when the reader is in - * consuming mode, i.e. \c frag != \c NULL; - * otherwise, its value is \c 0. */ + /*!< The amount of incoming data missing on the + * last call to mbedtls_mps_reader_get(). + * In particular, it is \c 0 if the last call + * was successful. + * If a reader is reclaimed after an + * unsuccessful call to mbedtls_mps_reader_get(), + * this variable is used to have the reader + * remember how much data should be accumulated + * so that the call to mbedtls_mps_reader_get() + * succeeds next time. + * This is only used when the reader is in + * consuming mode, i.e. \c frag != \c NULL; + * otherwise, its value is \c 0. */ /* The accumulator is only needed if we need to be able to pause * the reader. A few bytes could be saved by moving this to a @@ -195,32 +194,31 @@ struct mbedtls_mps_reader * data if a read-request via mbedtls_mps_reader_get() * cannot be served from the current fragment. */ mbedtls_mps_stored_size_t acc_len; - /*!< The total size of the accumulator. */ + /*!< The total size of the accumulator. */ mbedtls_mps_stored_size_t acc_available; - /*!< The number of bytes currently gathered in - * the accumulator. This is both used in - * producing and in consuming mode: - * While producing, it is increased until - * it reaches the value of \c acc_remaining below. - * While consuming, it is used to judge if a - * get request can be served from the - * accumulator or not. - * Must not be larger than \c acc_len. */ - union - { + /*!< The number of bytes currently gathered in + * the accumulator. This is both used in + * producing and in consuming mode: + * While producing, it is increased until + * it reaches the value of \c acc_remaining below. + * While consuming, it is used to judge if a + * get request can be served from the + * accumulator or not. + * Must not be larger than \c acc_len. */ + union { mbedtls_mps_stored_size_t acc_remaining; - /*!< This indicates the amount of data still - * to be gathered in the accumulator. It is - * only used in producing mode. - * Must be at most acc_len - acc_available. */ + /*!< This indicates the amount of data still + * to be gathered in the accumulator. It is + * only used in producing mode. + * Must be at most acc_len - acc_available. */ mbedtls_mps_stored_size_t frag_offset; - /*!< If an accumulator is present and in use, this - * field indicates the offset of the current - * fragment from the beginning of the - * accumulator. If no accumulator is present - * or the accumulator is not in use, this is \c 0. - * It is only used in consuming mode. - * Must not be larger than \c acc_available. */ + /*!< If an accumulator is present and in use, this + * field indicates the offset of the current + * fragment from the beginning of the + * accumulator. If no accumulator is present + * or the accumulator is not in use, this is \c 0. + * It is only used in consuming mode. + * Must not be larger than \c acc_available. */ } acc_share; }; @@ -254,9 +252,9 @@ struct mbedtls_mps_reader * \return \c 0 on success. * \return A negative \c MBEDTLS_ERR_READER_XXX error code on failure. */ -int mbedtls_mps_reader_init( mbedtls_mps_reader *reader, - unsigned char *acc, - mbedtls_mps_size_t acc_len ); +int mbedtls_mps_reader_init(mbedtls_mps_reader *reader, + unsigned char *acc, + mbedtls_mps_size_t acc_len); /** * \brief Free a reader object @@ -266,7 +264,7 @@ int mbedtls_mps_reader_init( mbedtls_mps_reader *reader, * \return \c 0 on success. * \return A negative \c MBEDTLS_ERR_READER_XXX error code on failure. */ -int mbedtls_mps_reader_free( mbedtls_mps_reader *reader ); +int mbedtls_mps_reader_free(mbedtls_mps_reader *reader); /** * \brief Pass chunk of data for the reader to manage. @@ -291,9 +289,9 @@ int mbedtls_mps_reader_free( mbedtls_mps_reader *reader ); * \return Another negative \c MBEDTLS_ERR_READER_XXX error code on * different kinds of failures. */ -int mbedtls_mps_reader_feed( mbedtls_mps_reader *reader, - unsigned char *buf, - mbedtls_mps_size_t buflen ); +int mbedtls_mps_reader_feed(mbedtls_mps_reader *reader, + unsigned char *buf, + mbedtls_mps_size_t buflen); /** * \brief Reclaim reader's access to the current input buffer. @@ -310,8 +308,8 @@ int mbedtls_mps_reader_feed( mbedtls_mps_reader *reader, * \return \c 0 on success. * \return A negative \c MBEDTLS_ERR_READER_XXX error code on failure. */ -int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *reader, - int *paused ); +int mbedtls_mps_reader_reclaim(mbedtls_mps_reader *reader, + int *paused); /* * Usage API (Upper layer) @@ -353,10 +351,10 @@ int mbedtls_mps_reader_reclaim( mbedtls_mps_reader *reader, * address as buflen and checking \c *buflen == \c desired * afterwards. */ -int mbedtls_mps_reader_get( mbedtls_mps_reader *reader, - mbedtls_mps_size_t desired, - unsigned char **buffer, - mbedtls_mps_size_t *buflen ); +int mbedtls_mps_reader_get(mbedtls_mps_reader *reader, + mbedtls_mps_size_t desired, + unsigned char **buffer, + mbedtls_mps_size_t *buflen); /** * \brief Mark data obtained from mbedtls_mps_reader_get() as processed. @@ -377,6 +375,6 @@ int mbedtls_mps_reader_get( mbedtls_mps_reader *reader, * \return A negative \c MBEDTLS_ERR_READER_XXX error code on failure. * */ -int mbedtls_mps_reader_commit( mbedtls_mps_reader *reader ); +int mbedtls_mps_reader_commit(mbedtls_mps_reader *reader); #endif /* MBEDTLS_READER_H */ diff --git a/library/mps_trace.c b/library/mps_trace.c index e8b4e1b9e..9ba1f85e5 100644 --- a/library/mps_trace.c +++ b/library/mps_trace.c @@ -41,7 +41,7 @@ static int trace_depth = 0; #define color_cyan "\x1B[1;36m" #define color_white "\x1B[1;37m" -static char const * colors[] = +static char const *colors[] = { color_default, color_green, @@ -54,19 +54,18 @@ static char const * colors[] = #define MPS_TRACE_BUF_SIZE 100 -void mbedtls_mps_trace_print_msg( int id, int line, const char *format, ... ) +void mbedtls_mps_trace_print_msg(int id, int line, const char *format, ...) { int ret; char str[MPS_TRACE_BUF_SIZE]; va_list argp; - va_start( argp, format ); - ret = mbedtls_vsnprintf( str, MPS_TRACE_BUF_SIZE, format, argp ); - va_end( argp ); + va_start(argp, format); + ret = mbedtls_vsnprintf(str, MPS_TRACE_BUF_SIZE, format, argp); + va_end(argp); - if( ret >= 0 && ret < MPS_TRACE_BUF_SIZE ) - { + if (ret >= 0 && ret < MPS_TRACE_BUF_SIZE) { str[ret] = '\0'; - mbedtls_printf( "[%d|L%d]: %s\n", id, line, str ); + mbedtls_printf("[%d|L%d]: %s\n", id, line, str); } } @@ -83,39 +82,39 @@ void mbedtls_mps_trace_inc_depth() trace_depth++; } -void mbedtls_mps_trace_color( int id ) +void mbedtls_mps_trace_color(int id) { - if( id > (int) ( sizeof( colors ) / sizeof( *colors ) ) ) + if (id > (int) (sizeof(colors) / sizeof(*colors))) { return; - printf( "%s", colors[ id ] ); + } + printf("%s", colors[id]); } -void mbedtls_mps_trace_indent( int level, mbedtls_mps_trace_type ty ) +void mbedtls_mps_trace_indent(int level, mbedtls_mps_trace_type ty) { - if( level > 0 ) - { - while( --level ) - printf( "| " ); + if (level > 0) { + while (--level) { + printf("| "); + } - printf( "| " ); + printf("| "); } - switch( ty ) - { + switch (ty) { case MBEDTLS_MPS_TRACE_TYPE_COMMENT: - mbedtls_printf( "@ " ); + mbedtls_printf("@ "); break; case MBEDTLS_MPS_TRACE_TYPE_CALL: - mbedtls_printf( "+--> " ); + mbedtls_printf("+--> "); break; case MBEDTLS_MPS_TRACE_TYPE_ERROR: - mbedtls_printf( "E " ); + mbedtls_printf("E "); break; case MBEDTLS_MPS_TRACE_TYPE_RETURN: - mbedtls_printf( "< " ); + mbedtls_printf("< "); break; default: diff --git a/library/mps_trace.h b/library/mps_trace.h index 820a1b66c..6f0455f03 100644 --- a/library/mps_trace.h +++ b/library/mps_trace.h @@ -52,8 +52,7 @@ * rest of this file. */ -typedef enum -{ +typedef enum { MBEDTLS_MPS_TRACE_TYPE_COMMENT, MBEDTLS_MPS_TRACE_TYPE_CALL, MBEDTLS_MPS_TRACE_TYPE_ERROR, @@ -68,101 +67,101 @@ typedef enum #define MBEDTLS_MPS_TRACE_BIT_READER 6 #if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_1) -#define MBEDTLS_MPS_TRACE_MASK_LAYER_1 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_1 ) +#define MBEDTLS_MPS_TRACE_MASK_LAYER_1 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_1) #else #define MBEDTLS_MPS_TRACE_MASK_LAYER_1 0 #endif #if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_2) -#define MBEDTLS_MPS_TRACE_MASK_LAYER_2 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_2 ) +#define MBEDTLS_MPS_TRACE_MASK_LAYER_2 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_2) #else #define MBEDTLS_MPS_TRACE_MASK_LAYER_2 0 #endif #if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_3) -#define MBEDTLS_MPS_TRACE_MASK_LAYER_3 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_3 ) +#define MBEDTLS_MPS_TRACE_MASK_LAYER_3 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_3) #else #define MBEDTLS_MPS_TRACE_MASK_LAYER_3 0 #endif #if defined(MBEDTLS_MPS_TRACE_ENABLE_LAYER_4) -#define MBEDTLS_MPS_TRACE_MASK_LAYER_4 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_4 ) +#define MBEDTLS_MPS_TRACE_MASK_LAYER_4 (1u << MBEDTLS_MPS_TRACE_BIT_LAYER_4) #else #define MBEDTLS_MPS_TRACE_MASK_LAYER_4 0 #endif #if defined(MBEDTLS_MPS_TRACE_ENABLE_READER) -#define MBEDTLS_MPS_TRACE_MASK_READER (1u << MBEDTLS_MPS_TRACE_BIT_READER ) +#define MBEDTLS_MPS_TRACE_MASK_READER (1u << MBEDTLS_MPS_TRACE_BIT_READER) #else #define MBEDTLS_MPS_TRACE_MASK_READER 0 #endif #if defined(MBEDTLS_MPS_TRACE_ENABLE_WRITER) -#define MBEDTLS_MPS_TRACE_MASK_WRITER (1u << MBEDTLS_MPS_TRACE_BIT_WRITER ) +#define MBEDTLS_MPS_TRACE_MASK_WRITER (1u << MBEDTLS_MPS_TRACE_BIT_WRITER) #else #define MBEDTLS_MPS_TRACE_MASK_WRITER 0 #endif -#define MBEDTLS_MPS_TRACE_MASK ( MBEDTLS_MPS_TRACE_MASK_LAYER_1 | \ - MBEDTLS_MPS_TRACE_MASK_LAYER_2 | \ - MBEDTLS_MPS_TRACE_MASK_LAYER_3 | \ - MBEDTLS_MPS_TRACE_MASK_LAYER_4 | \ - MBEDTLS_MPS_TRACE_MASK_READER | \ - MBEDTLS_MPS_TRACE_MASK_WRITER ) +#define MBEDTLS_MPS_TRACE_MASK (MBEDTLS_MPS_TRACE_MASK_LAYER_1 | \ + MBEDTLS_MPS_TRACE_MASK_LAYER_2 | \ + MBEDTLS_MPS_TRACE_MASK_LAYER_3 | \ + MBEDTLS_MPS_TRACE_MASK_LAYER_4 | \ + MBEDTLS_MPS_TRACE_MASK_READER | \ + MBEDTLS_MPS_TRACE_MASK_WRITER) /* We have to avoid globals because E-ACSL chokes on them... * Wrap everything in stub functions. */ -int mbedtls_mps_trace_get_depth( void ); -void mbedtls_mps_trace_inc_depth( void ); -void mbedtls_mps_trace_dec_depth( void ); +int mbedtls_mps_trace_get_depth(void); +void mbedtls_mps_trace_inc_depth(void); +void mbedtls_mps_trace_dec_depth(void); -void mbedtls_mps_trace_color( int id ); -void mbedtls_mps_trace_indent( int level, mbedtls_mps_trace_type ty ); +void mbedtls_mps_trace_color(int id); +void mbedtls_mps_trace_indent(int level, mbedtls_mps_trace_type ty); -void mbedtls_mps_trace_print_msg( int id, int line, const char *format, ... ); +void mbedtls_mps_trace_print_msg(int id, int line, const char *format, ...); -#define MBEDTLS_MPS_TRACE( type, ... ) \ +#define MBEDTLS_MPS_TRACE(type, ...) \ do { \ - if( ! ( MBEDTLS_MPS_TRACE_MASK & ( 1u << mbedtls_mps_trace_id ) ) ) \ - break; \ - mbedtls_mps_trace_indent( mbedtls_mps_trace_get_depth(), type ); \ - mbedtls_mps_trace_color( mbedtls_mps_trace_id ); \ - mbedtls_mps_trace_print_msg( mbedtls_mps_trace_id, __LINE__, __VA_ARGS__ ); \ - mbedtls_mps_trace_color( 0 ); \ - } while( 0 ) + if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \ + break; \ + mbedtls_mps_trace_indent(mbedtls_mps_trace_get_depth(), type); \ + mbedtls_mps_trace_color(mbedtls_mps_trace_id); \ + mbedtls_mps_trace_print_msg(mbedtls_mps_trace_id, __LINE__, __VA_ARGS__); \ + mbedtls_mps_trace_color(0); \ + } while (0) -#define MBEDTLS_MPS_TRACE_INIT( ... ) \ +#define MBEDTLS_MPS_TRACE_INIT(...) \ do { \ - if( ! ( MBEDTLS_MPS_TRACE_MASK & ( 1u << mbedtls_mps_trace_id ) ) ) \ - break; \ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_CALL, __VA_ARGS__ ); \ + if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \ + break; \ + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_CALL, __VA_ARGS__); \ mbedtls_mps_trace_inc_depth(); \ - } while( 0 ) + } while (0) -#define MBEDTLS_MPS_TRACE_END( val ) \ +#define MBEDTLS_MPS_TRACE_END(val) \ do { \ - if( ! ( MBEDTLS_MPS_TRACE_MASK & ( 1u << mbedtls_mps_trace_id ) ) ) \ - break; \ - MBEDTLS_MPS_TRACE( MBEDTLS_MPS_TRACE_TYPE_RETURN, "%d (-%#04x)", \ - (int) (val), -((unsigned)(val)) ); \ + if (!(MBEDTLS_MPS_TRACE_MASK & (1u << mbedtls_mps_trace_id))) \ + break; \ + MBEDTLS_MPS_TRACE(MBEDTLS_MPS_TRACE_TYPE_RETURN, "%d (-%#04x)", \ + (int) (val), -((unsigned) (val))); \ mbedtls_mps_trace_dec_depth(); \ - } while( 0 ) + } while (0) -#define MBEDTLS_MPS_TRACE_RETURN( val ) \ +#define MBEDTLS_MPS_TRACE_RETURN(val) \ do { \ /* Breaks tail recursion. */ \ int ret__ = val; \ - MBEDTLS_MPS_TRACE_END( ret__ ); \ - return( ret__ ); \ - } while( 0 ) + MBEDTLS_MPS_TRACE_END(ret__); \ + return ret__; \ + } while (0) #else /* MBEDTLS_MPS_TRACE */ -#define MBEDTLS_MPS_TRACE( type, ... ) do { } while( 0 ) -#define MBEDTLS_MPS_TRACE_INIT( ... ) do { } while( 0 ) -#define MBEDTLS_MPS_TRACE_END do { } while( 0 ) +#define MBEDTLS_MPS_TRACE(type, ...) do { } while (0) +#define MBEDTLS_MPS_TRACE_INIT(...) do { } while (0) +#define MBEDTLS_MPS_TRACE_END do { } while (0) -#define MBEDTLS_MPS_TRACE_RETURN( val ) return( val ); +#define MBEDTLS_MPS_TRACE_RETURN(val) return val; #endif /* MBEDTLS_MPS_TRACE */ diff --git a/library/net_sockets.c b/library/net_sockets.c index 637b9f8d8..e63d08b15 100644 --- a/library/net_sockets.c +++ b/library/net_sockets.c @@ -47,7 +47,7 @@ #if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) -#define IS_EINTR( ret ) ( ( ret ) == WSAEINTR ) +#define IS_EINTR(ret) ((ret) == WSAEINTR) #if !defined(_WIN32_WINNT) /* Enables getaddrinfo() & Co */ @@ -70,8 +70,8 @@ #endif #endif /* _MSC_VER */ -#define read(fd,buf,len) recv( fd, (char*)( buf ), (int)( len ), 0 ) -#define write(fd,buf,len) send( fd, (char*)( buf ), (int)( len ), 0 ) +#define read(fd, buf, len) recv(fd, (char *) (buf), (int) (len), 0) +#define write(fd, buf, len) send(fd, (char *) (buf), (int) (len), 0) #define close(fd) closesocket(fd) static int wsa_init_done = 0; @@ -89,7 +89,7 @@ static int wsa_init_done = 0; #include #include -#define IS_EINTR( ret ) ( ( ret ) == EINTR ) +#define IS_EINTR(ret) ((ret) == EINTR) #endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */ @@ -112,25 +112,25 @@ static int wsa_init_done = 0; /* * Prepare for using the sockets interface */ -static int net_prepare( void ) +static int net_prepare(void) { -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) WSADATA wsaData; - if( wsa_init_done == 0 ) - { - if( WSAStartup( MAKEWORD(2,0), &wsaData ) != 0 ) - return( MBEDTLS_ERR_NET_SOCKET_FAILED ); + if (wsa_init_done == 0) { + if (WSAStartup(MAKEWORD(2, 0), &wsaData) != 0) { + return MBEDTLS_ERR_NET_SOCKET_FAILED; + } wsa_init_done = 1; } #else #if !defined(EFIX64) && !defined(EFI32) - signal( SIGPIPE, SIG_IGN ); + signal(SIGPIPE, SIG_IGN); #endif #endif - return( 0 ); + return 0; } /* @@ -138,10 +138,11 @@ static int net_prepare( void ) * If for_select != 0, check whether the file descriptor is within the range * allowed for fd_set used for the FD_xxx macros and the select() function. */ -static int check_fd( int fd, int for_select ) +static int check_fd(int fd, int for_select) { - if( fd < 0 ) - return( MBEDTLS_ERR_NET_INVALID_CONTEXT ); + if (fd < 0) { + return MBEDTLS_ERR_NET_INVALID_CONTEXT; + } #if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) @@ -151,17 +152,18 @@ static int check_fd( int fd, int for_select ) * that are strictly less than FD_SETSIZE. This is a limitation of the * fd_set type. Error out early, because attempting to call FD_SET on a * large file descriptor is a buffer overflow on typical platforms. */ - if( for_select && fd >= FD_SETSIZE ) - return( MBEDTLS_ERR_NET_POLL_FAILED ); + if (for_select && fd >= FD_SETSIZE) { + return MBEDTLS_ERR_NET_POLL_FAILED; + } #endif - return( 0 ); + return 0; } /* * Initialize a context */ -void mbedtls_net_init( mbedtls_net_context *ctx ) +void mbedtls_net_init(mbedtls_net_context *ctx) { ctx->fd = -1; } @@ -169,107 +171,103 @@ void mbedtls_net_init( mbedtls_net_context *ctx ) /* * Initiate a TCP connection with host:port and the given protocol */ -int mbedtls_net_connect( mbedtls_net_context *ctx, const char *host, - const char *port, int proto ) +int mbedtls_net_connect(mbedtls_net_context *ctx, const char *host, + const char *port, int proto) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; struct addrinfo hints, *addr_list, *cur; - if( ( ret = net_prepare() ) != 0 ) - return( ret ); + if ((ret = net_prepare()) != 0) { + return ret; + } /* Do name resolution with both IPv6 and IPv4 */ - memset( &hints, 0, sizeof( hints ) ); + memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = proto == MBEDTLS_NET_PROTO_UDP ? SOCK_DGRAM : SOCK_STREAM; hints.ai_protocol = proto == MBEDTLS_NET_PROTO_UDP ? IPPROTO_UDP : IPPROTO_TCP; - if( getaddrinfo( host, port, &hints, &addr_list ) != 0 ) - return( MBEDTLS_ERR_NET_UNKNOWN_HOST ); + if (getaddrinfo(host, port, &hints, &addr_list) != 0) { + return MBEDTLS_ERR_NET_UNKNOWN_HOST; + } /* Try the sockaddrs until a connection succeeds */ ret = MBEDTLS_ERR_NET_UNKNOWN_HOST; - for( cur = addr_list; cur != NULL; cur = cur->ai_next ) - { - ctx->fd = (int) socket( cur->ai_family, cur->ai_socktype, - cur->ai_protocol ); - if( ctx->fd < 0 ) - { + for (cur = addr_list; cur != NULL; cur = cur->ai_next) { + ctx->fd = (int) socket(cur->ai_family, cur->ai_socktype, + cur->ai_protocol); + if (ctx->fd < 0) { ret = MBEDTLS_ERR_NET_SOCKET_FAILED; continue; } - if( connect( ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) == 0 ) - { + if (connect(ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen) == 0) { ret = 0; break; } - close( ctx->fd ); + close(ctx->fd); ret = MBEDTLS_ERR_NET_CONNECT_FAILED; } - freeaddrinfo( addr_list ); + freeaddrinfo(addr_list); - return( ret ); + return ret; } /* * Create a listening socket on bind_ip:port */ -int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto ) +int mbedtls_net_bind(mbedtls_net_context *ctx, const char *bind_ip, const char *port, int proto) { int n, ret; struct addrinfo hints, *addr_list, *cur; - if( ( ret = net_prepare() ) != 0 ) - return( ret ); + if ((ret = net_prepare()) != 0) { + return ret; + } /* Bind to IPv6 and/or IPv4, but only in the desired protocol */ - memset( &hints, 0, sizeof( hints ) ); + memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = proto == MBEDTLS_NET_PROTO_UDP ? SOCK_DGRAM : SOCK_STREAM; hints.ai_protocol = proto == MBEDTLS_NET_PROTO_UDP ? IPPROTO_UDP : IPPROTO_TCP; - if( bind_ip == NULL ) + if (bind_ip == NULL) { hints.ai_flags = AI_PASSIVE; + } - if( getaddrinfo( bind_ip, port, &hints, &addr_list ) != 0 ) - return( MBEDTLS_ERR_NET_UNKNOWN_HOST ); + if (getaddrinfo(bind_ip, port, &hints, &addr_list) != 0) { + return MBEDTLS_ERR_NET_UNKNOWN_HOST; + } /* Try the sockaddrs until a binding succeeds */ ret = MBEDTLS_ERR_NET_UNKNOWN_HOST; - for( cur = addr_list; cur != NULL; cur = cur->ai_next ) - { - ctx->fd = (int) socket( cur->ai_family, cur->ai_socktype, - cur->ai_protocol ); - if( ctx->fd < 0 ) - { + for (cur = addr_list; cur != NULL; cur = cur->ai_next) { + ctx->fd = (int) socket(cur->ai_family, cur->ai_socktype, + cur->ai_protocol); + if (ctx->fd < 0) { ret = MBEDTLS_ERR_NET_SOCKET_FAILED; continue; } n = 1; - if( setsockopt( ctx->fd, SOL_SOCKET, SO_REUSEADDR, - (const char *) &n, sizeof( n ) ) != 0 ) - { - close( ctx->fd ); + if (setsockopt(ctx->fd, SOL_SOCKET, SO_REUSEADDR, + (const char *) &n, sizeof(n)) != 0) { + close(ctx->fd); ret = MBEDTLS_ERR_NET_SOCKET_FAILED; continue; } - if( bind( ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen ) != 0 ) - { - close( ctx->fd ); + if (bind(ctx->fd, cur->ai_addr, MSVC_INT_CAST cur->ai_addrlen) != 0) { + close(ctx->fd); ret = MBEDTLS_ERR_NET_BIND_FAILED; continue; } /* Listen only makes sense for TCP */ - if( proto == MBEDTLS_NET_PROTO_TCP ) - { - if( listen( ctx->fd, MBEDTLS_NET_LISTEN_BACKLOG ) != 0 ) - { - close( ctx->fd ); + if (proto == MBEDTLS_NET_PROTO_TCP) { + if (listen(ctx->fd, MBEDTLS_NET_LISTEN_BACKLOG) != 0) { + close(ctx->fd); ret = MBEDTLS_ERR_NET_LISTEN_FAILED; continue; } @@ -280,22 +278,22 @@ int mbedtls_net_bind( mbedtls_net_context *ctx, const char *bind_ip, const char break; } - freeaddrinfo( addr_list ); + freeaddrinfo(addr_list); - return( ret ); + return ret; } -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) /* * Check if the requested operation would be blocking on a non-blocking socket * and thus 'failed' with a negative return value. */ -static int net_would_block( const mbedtls_net_context *ctx ) +static int net_would_block(const mbedtls_net_context *ctx) { ((void) ctx); - return( WSAGetLastError() == WSAEWOULDBLOCK ); + return WSAGetLastError() == WSAEWOULDBLOCK; } #else /* @@ -304,39 +302,37 @@ static int net_would_block( const mbedtls_net_context *ctx ) * * Note: on a blocking socket this function always returns 0! */ -static int net_would_block( const mbedtls_net_context *ctx ) +static int net_would_block(const mbedtls_net_context *ctx) { int err = errno; /* * Never return 'WOULD BLOCK' on a blocking socket */ - if( ( fcntl( ctx->fd, F_GETFL ) & O_NONBLOCK ) != O_NONBLOCK ) - { + if ((fcntl(ctx->fd, F_GETFL) & O_NONBLOCK) != O_NONBLOCK) { errno = err; - return( 0 ); + return 0; } - switch( errno = err ) - { + switch (errno = err) { #if defined EAGAIN case EAGAIN: #endif #if defined EWOULDBLOCK && EWOULDBLOCK != EAGAIN case EWOULDBLOCK: #endif - return( 1 ); + return 1; } - return( 0 ); + return 0; } #endif /* ( _WIN32 || _WIN32_WCE ) && !EFIX64 && !EFI32 */ /* * Accept a connection from a remote client */ -int mbedtls_net_accept( mbedtls_net_context *bind_ctx, - mbedtls_net_context *client_ctx, - void *client_ip, size_t buf_size, size_t *ip_len ) +int mbedtls_net_accept(mbedtls_net_context *bind_ctx, + mbedtls_net_context *client_ctx, + void *client_ip, size_t buf_size, size_t *ip_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int type; @@ -346,132 +342,123 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx, #if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \ defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t) || \ defined(socklen_t) || (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200112L) - socklen_t n = (socklen_t) sizeof( client_addr ); - socklen_t type_len = (socklen_t) sizeof( type ); + socklen_t n = (socklen_t) sizeof(client_addr); + socklen_t type_len = (socklen_t) sizeof(type); #else - int n = (int) sizeof( client_addr ); - int type_len = (int) sizeof( type ); + int n = (int) sizeof(client_addr); + int type_len = (int) sizeof(type); #endif /* Is this a TCP or UDP socket? */ - if( getsockopt( bind_ctx->fd, SOL_SOCKET, SO_TYPE, - (void *) &type, &type_len ) != 0 || - ( type != SOCK_STREAM && type != SOCK_DGRAM ) ) - { - return( MBEDTLS_ERR_NET_ACCEPT_FAILED ); + if (getsockopt(bind_ctx->fd, SOL_SOCKET, SO_TYPE, + (void *) &type, &type_len) != 0 || + (type != SOCK_STREAM && type != SOCK_DGRAM)) { + return MBEDTLS_ERR_NET_ACCEPT_FAILED; } - if( type == SOCK_STREAM ) - { + if (type == SOCK_STREAM) { /* TCP: actual accept() */ - ret = client_ctx->fd = (int) accept( bind_ctx->fd, - (struct sockaddr *) &client_addr, &n ); - } - else - { + ret = client_ctx->fd = (int) accept(bind_ctx->fd, + (struct sockaddr *) &client_addr, &n); + } else { /* UDP: wait for a message, but keep it in the queue */ char buf[1] = { 0 }; - ret = (int) recvfrom( bind_ctx->fd, buf, sizeof( buf ), MSG_PEEK, - (struct sockaddr *) &client_addr, &n ); + ret = (int) recvfrom(bind_ctx->fd, buf, sizeof(buf), MSG_PEEK, + (struct sockaddr *) &client_addr, &n); #if defined(_WIN32) - if( ret == SOCKET_ERROR && - WSAGetLastError() == WSAEMSGSIZE ) - { + if (ret == SOCKET_ERROR && + WSAGetLastError() == WSAEMSGSIZE) { /* We know buf is too small, thanks, just peeking here */ ret = 0; } #endif } - if( ret < 0 ) - { - if( net_would_block( bind_ctx ) != 0 ) - return( MBEDTLS_ERR_SSL_WANT_READ ); + if (ret < 0) { + if (net_would_block(bind_ctx) != 0) { + return MBEDTLS_ERR_SSL_WANT_READ; + } - return( MBEDTLS_ERR_NET_ACCEPT_FAILED ); + return MBEDTLS_ERR_NET_ACCEPT_FAILED; } /* UDP: hijack the listening socket to communicate with the client, * then bind a new socket to accept new connections */ - if( type != SOCK_STREAM ) - { + if (type != SOCK_STREAM) { struct sockaddr_storage local_addr; int one = 1; - if( connect( bind_ctx->fd, (struct sockaddr *) &client_addr, n ) != 0 ) - return( MBEDTLS_ERR_NET_ACCEPT_FAILED ); + if (connect(bind_ctx->fd, (struct sockaddr *) &client_addr, n) != 0) { + return MBEDTLS_ERR_NET_ACCEPT_FAILED; + } client_ctx->fd = bind_ctx->fd; bind_ctx->fd = -1; /* In case we exit early */ - n = sizeof( struct sockaddr_storage ); - if( getsockname( client_ctx->fd, - (struct sockaddr *) &local_addr, &n ) != 0 || - ( bind_ctx->fd = (int) socket( local_addr.ss_family, - SOCK_DGRAM, IPPROTO_UDP ) ) < 0 || - setsockopt( bind_ctx->fd, SOL_SOCKET, SO_REUSEADDR, - (const char *) &one, sizeof( one ) ) != 0 ) - { - return( MBEDTLS_ERR_NET_SOCKET_FAILED ); + n = sizeof(struct sockaddr_storage); + if (getsockname(client_ctx->fd, + (struct sockaddr *) &local_addr, &n) != 0 || + (bind_ctx->fd = (int) socket(local_addr.ss_family, + SOCK_DGRAM, IPPROTO_UDP)) < 0 || + setsockopt(bind_ctx->fd, SOL_SOCKET, SO_REUSEADDR, + (const char *) &one, sizeof(one)) != 0) { + return MBEDTLS_ERR_NET_SOCKET_FAILED; } - if( bind( bind_ctx->fd, (struct sockaddr *) &local_addr, n ) != 0 ) - { - return( MBEDTLS_ERR_NET_BIND_FAILED ); + if (bind(bind_ctx->fd, (struct sockaddr *) &local_addr, n) != 0) { + return MBEDTLS_ERR_NET_BIND_FAILED; } } - if( client_ip != NULL ) - { - if( client_addr.ss_family == AF_INET ) - { + if (client_ip != NULL) { + if (client_addr.ss_family == AF_INET) { struct sockaddr_in *addr4 = (struct sockaddr_in *) &client_addr; - *ip_len = sizeof( addr4->sin_addr.s_addr ); + *ip_len = sizeof(addr4->sin_addr.s_addr); - if( buf_size < *ip_len ) - return( MBEDTLS_ERR_NET_BUFFER_TOO_SMALL ); + if (buf_size < *ip_len) { + return MBEDTLS_ERR_NET_BUFFER_TOO_SMALL; + } - memcpy( client_ip, &addr4->sin_addr.s_addr, *ip_len ); - } - else - { + memcpy(client_ip, &addr4->sin_addr.s_addr, *ip_len); + } else { struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *) &client_addr; - *ip_len = sizeof( addr6->sin6_addr.s6_addr ); + *ip_len = sizeof(addr6->sin6_addr.s6_addr); - if( buf_size < *ip_len ) - return( MBEDTLS_ERR_NET_BUFFER_TOO_SMALL ); + if (buf_size < *ip_len) { + return MBEDTLS_ERR_NET_BUFFER_TOO_SMALL; + } - memcpy( client_ip, &addr6->sin6_addr.s6_addr, *ip_len); + memcpy(client_ip, &addr6->sin6_addr.s6_addr, *ip_len); } } - return( 0 ); + return 0; } /* * Set the socket blocking or non-blocking */ -int mbedtls_net_set_block( mbedtls_net_context *ctx ) +int mbedtls_net_set_block(mbedtls_net_context *ctx) { -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) u_long n = 0; - return( ioctlsocket( ctx->fd, FIONBIO, &n ) ); + return ioctlsocket(ctx->fd, FIONBIO, &n); #else - return( fcntl( ctx->fd, F_SETFL, fcntl( ctx->fd, F_GETFL ) & ~O_NONBLOCK ) ); + return fcntl(ctx->fd, F_SETFL, fcntl(ctx->fd, F_GETFL) & ~O_NONBLOCK); #endif } -int mbedtls_net_set_nonblock( mbedtls_net_context *ctx ) +int mbedtls_net_set_nonblock(mbedtls_net_context *ctx) { -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ !defined(EFI32) u_long n = 1; - return( ioctlsocket( ctx->fd, FIONBIO, &n ) ); + return ioctlsocket(ctx->fd, FIONBIO, &n); #else - return( fcntl( ctx->fd, F_SETFL, fcntl( ctx->fd, F_GETFL ) | O_NONBLOCK ) ); + return fcntl(ctx->fd, F_SETFL, fcntl(ctx->fd, F_GETFL) | O_NONBLOCK); #endif } @@ -479,7 +466,7 @@ int mbedtls_net_set_nonblock( mbedtls_net_context *ctx ) * Check if data is available on the socket */ -int mbedtls_net_poll( mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout ) +int mbedtls_net_poll(mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; struct timeval tv; @@ -489,207 +476,220 @@ int mbedtls_net_poll( mbedtls_net_context *ctx, uint32_t rw, uint32_t timeout ) int fd = ctx->fd; - ret = check_fd( fd, 1 ); - if( ret != 0 ) - return( ret ); + ret = check_fd(fd, 1); + if (ret != 0) { + return ret; + } #if defined(__has_feature) #if __has_feature(memory_sanitizer) /* Ensure that memory sanitizers consider read_fds and write_fds as * initialized even on platforms such as Glibc/x86_64 where FD_ZERO * is implemented in assembly. */ - memset( &read_fds, 0, sizeof( read_fds ) ); - memset( &write_fds, 0, sizeof( write_fds ) ); + memset(&read_fds, 0, sizeof(read_fds)); + memset(&write_fds, 0, sizeof(write_fds)); #endif #endif - FD_ZERO( &read_fds ); - if( rw & MBEDTLS_NET_POLL_READ ) - { + FD_ZERO(&read_fds); + if (rw & MBEDTLS_NET_POLL_READ) { rw &= ~MBEDTLS_NET_POLL_READ; - FD_SET( fd, &read_fds ); + FD_SET(fd, &read_fds); } - FD_ZERO( &write_fds ); - if( rw & MBEDTLS_NET_POLL_WRITE ) - { + FD_ZERO(&write_fds); + if (rw & MBEDTLS_NET_POLL_WRITE) { rw &= ~MBEDTLS_NET_POLL_WRITE; - FD_SET( fd, &write_fds ); + FD_SET(fd, &write_fds); } - if( rw != 0 ) - return( MBEDTLS_ERR_NET_BAD_INPUT_DATA ); + if (rw != 0) { + return MBEDTLS_ERR_NET_BAD_INPUT_DATA; + } tv.tv_sec = timeout / 1000; - tv.tv_usec = ( timeout % 1000 ) * 1000; + tv.tv_usec = (timeout % 1000) * 1000; - do - { - ret = select( fd + 1, &read_fds, &write_fds, NULL, - timeout == (uint32_t) -1 ? NULL : &tv ); + do { + ret = select(fd + 1, &read_fds, &write_fds, NULL, + timeout == (uint32_t) -1 ? NULL : &tv); + } while (IS_EINTR(ret)); + + if (ret < 0) { + return MBEDTLS_ERR_NET_POLL_FAILED; } - while( IS_EINTR( ret ) ); - - if( ret < 0 ) - return( MBEDTLS_ERR_NET_POLL_FAILED ); ret = 0; - if( FD_ISSET( fd, &read_fds ) ) + if (FD_ISSET(fd, &read_fds)) { ret |= MBEDTLS_NET_POLL_READ; - if( FD_ISSET( fd, &write_fds ) ) + } + if (FD_ISSET(fd, &write_fds)) { ret |= MBEDTLS_NET_POLL_WRITE; + } - return( ret ); + return ret; } /* * Portable usleep helper */ -void mbedtls_net_usleep( unsigned long usec ) +void mbedtls_net_usleep(unsigned long usec) { #if defined(_WIN32) - Sleep( ( usec + 999 ) / 1000 ); + Sleep((usec + 999) / 1000); #else struct timeval tv; tv.tv_sec = usec / 1000000; #if defined(__unix__) || defined(__unix) || \ - ( defined(__APPLE__) && defined(__MACH__) ) + (defined(__APPLE__) && defined(__MACH__)) tv.tv_usec = (suseconds_t) usec % 1000000; #else tv.tv_usec = usec % 1000000; #endif - select( 0, NULL, NULL, NULL, &tv ); + select(0, NULL, NULL, NULL, &tv); #endif } /* * Read at most 'len' characters */ -int mbedtls_net_recv( void *ctx, unsigned char *buf, size_t len ) +int mbedtls_net_recv(void *ctx, unsigned char *buf, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int fd = ((mbedtls_net_context *) ctx)->fd; - ret = check_fd( fd, 0 ); - if( ret != 0 ) - return( ret ); - - ret = (int) read( fd, buf, len ); - - if( ret < 0 ) - { - if( net_would_block( ctx ) != 0 ) - return( MBEDTLS_ERR_SSL_WANT_READ ); - -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ - !defined(EFI32) - if( WSAGetLastError() == WSAECONNRESET ) - return( MBEDTLS_ERR_NET_CONN_RESET ); -#else - if( errno == EPIPE || errno == ECONNRESET ) - return( MBEDTLS_ERR_NET_CONN_RESET ); - - if( errno == EINTR ) - return( MBEDTLS_ERR_SSL_WANT_READ ); -#endif - - return( MBEDTLS_ERR_NET_RECV_FAILED ); + ret = check_fd(fd, 0); + if (ret != 0) { + return ret; } - return( ret ); + ret = (int) read(fd, buf, len); + + if (ret < 0) { + if (net_would_block(ctx) != 0) { + return MBEDTLS_ERR_SSL_WANT_READ; + } + +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ + !defined(EFI32) + if (WSAGetLastError() == WSAECONNRESET) { + return MBEDTLS_ERR_NET_CONN_RESET; + } +#else + if (errno == EPIPE || errno == ECONNRESET) { + return MBEDTLS_ERR_NET_CONN_RESET; + } + + if (errno == EINTR) { + return MBEDTLS_ERR_SSL_WANT_READ; + } +#endif + + return MBEDTLS_ERR_NET_RECV_FAILED; + } + + return ret; } /* * Read at most 'len' characters, blocking for at most 'timeout' ms */ -int mbedtls_net_recv_timeout( void *ctx, unsigned char *buf, - size_t len, uint32_t timeout ) +int mbedtls_net_recv_timeout(void *ctx, unsigned char *buf, + size_t len, uint32_t timeout) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; struct timeval tv; fd_set read_fds; int fd = ((mbedtls_net_context *) ctx)->fd; - ret = check_fd( fd, 1 ); - if( ret != 0 ) - return( ret ); + ret = check_fd(fd, 1); + if (ret != 0) { + return ret; + } - FD_ZERO( &read_fds ); - FD_SET( fd, &read_fds ); + FD_ZERO(&read_fds); + FD_SET(fd, &read_fds); tv.tv_sec = timeout / 1000; - tv.tv_usec = ( timeout % 1000 ) * 1000; + tv.tv_usec = (timeout % 1000) * 1000; - ret = select( fd + 1, &read_fds, NULL, NULL, timeout == 0 ? NULL : &tv ); + ret = select(fd + 1, &read_fds, NULL, NULL, timeout == 0 ? NULL : &tv); /* Zero fds ready means we timed out */ - if( ret == 0 ) - return( MBEDTLS_ERR_SSL_TIMEOUT ); + if (ret == 0) { + return MBEDTLS_ERR_SSL_TIMEOUT; + } - if( ret < 0 ) - { -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ - !defined(EFI32) - if( WSAGetLastError() == WSAEINTR ) - return( MBEDTLS_ERR_SSL_WANT_READ ); + if (ret < 0) { +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ + !defined(EFI32) + if (WSAGetLastError() == WSAEINTR) { + return MBEDTLS_ERR_SSL_WANT_READ; + } #else - if( errno == EINTR ) - return( MBEDTLS_ERR_SSL_WANT_READ ); + if (errno == EINTR) { + return MBEDTLS_ERR_SSL_WANT_READ; + } #endif - return( MBEDTLS_ERR_NET_RECV_FAILED ); + return MBEDTLS_ERR_NET_RECV_FAILED; } /* This call will not block */ - return( mbedtls_net_recv( ctx, buf, len ) ); + return mbedtls_net_recv(ctx, buf, len); } /* * Write at most 'len' characters */ -int mbedtls_net_send( void *ctx, const unsigned char *buf, size_t len ) +int mbedtls_net_send(void *ctx, const unsigned char *buf, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int fd = ((mbedtls_net_context *) ctx)->fd; - ret = check_fd( fd, 0 ); - if( ret != 0 ) - return( ret ); - - ret = (int) write( fd, buf, len ); - - if( ret < 0 ) - { - if( net_would_block( ctx ) != 0 ) - return( MBEDTLS_ERR_SSL_WANT_WRITE ); - -#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ - !defined(EFI32) - if( WSAGetLastError() == WSAECONNRESET ) - return( MBEDTLS_ERR_NET_CONN_RESET ); -#else - if( errno == EPIPE || errno == ECONNRESET ) - return( MBEDTLS_ERR_NET_CONN_RESET ); - - if( errno == EINTR ) - return( MBEDTLS_ERR_SSL_WANT_WRITE ); -#endif - - return( MBEDTLS_ERR_NET_SEND_FAILED ); + ret = check_fd(fd, 0); + if (ret != 0) { + return ret; } - return( ret ); + ret = (int) write(fd, buf, len); + + if (ret < 0) { + if (net_would_block(ctx) != 0) { + return MBEDTLS_ERR_SSL_WANT_WRITE; + } + +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ + !defined(EFI32) + if (WSAGetLastError() == WSAECONNRESET) { + return MBEDTLS_ERR_NET_CONN_RESET; + } +#else + if (errno == EPIPE || errno == ECONNRESET) { + return MBEDTLS_ERR_NET_CONN_RESET; + } + + if (errno == EINTR) { + return MBEDTLS_ERR_SSL_WANT_WRITE; + } +#endif + + return MBEDTLS_ERR_NET_SEND_FAILED; + } + + return ret; } /* * Close the connection */ -void mbedtls_net_close( mbedtls_net_context *ctx ) +void mbedtls_net_close(mbedtls_net_context *ctx) { - if( ctx->fd == -1 ) + if (ctx->fd == -1) { return; + } - close( ctx->fd ); + close(ctx->fd); ctx->fd = -1; } @@ -697,13 +697,14 @@ void mbedtls_net_close( mbedtls_net_context *ctx ) /* * Gracefully close the connection */ -void mbedtls_net_free( mbedtls_net_context *ctx ) +void mbedtls_net_free(mbedtls_net_context *ctx) { - if( ctx->fd == -1 ) + if (ctx->fd == -1) { return; + } - shutdown( ctx->fd, 2 ); - close( ctx->fd ); + shutdown(ctx->fd, 2); + close(ctx->fd); ctx->fd = -1; } diff --git a/library/nist_kw.c b/library/nist_kw.c index 495c23d06..5817bf4f4 100644 --- a/library/nist_kw.c +++ b/library/nist_kw.c @@ -47,35 +47,37 @@ #define MIN_SEMIBLOCKS_COUNT 3 /*! The 64-bit default integrity check value (ICV) for KW mode. */ -static const unsigned char NIST_KW_ICV1[] = {0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6}; +static const unsigned char NIST_KW_ICV1[] = { 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6 }; /*! The 32-bit default integrity check value (ICV) for KWP mode. */ -static const unsigned char NIST_KW_ICV2[] = {0xA6, 0x59, 0x59, 0xA6}; +static const unsigned char NIST_KW_ICV2[] = { 0xA6, 0x59, 0x59, 0xA6 }; /* * Initialize context */ -void mbedtls_nist_kw_init( mbedtls_nist_kw_context *ctx ) +void mbedtls_nist_kw_init(mbedtls_nist_kw_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_nist_kw_context ) ); + memset(ctx, 0, sizeof(mbedtls_nist_kw_context)); } -int mbedtls_nist_kw_setkey( mbedtls_nist_kw_context *ctx, - mbedtls_cipher_id_t cipher, - const unsigned char *key, - unsigned int keybits, - const int is_wrap ) +int mbedtls_nist_kw_setkey(mbedtls_nist_kw_context *ctx, + mbedtls_cipher_id_t cipher, + const unsigned char *key, + unsigned int keybits, + const int is_wrap) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_cipher_info_t *cipher_info; - cipher_info = mbedtls_cipher_info_from_values( cipher, - keybits, - MBEDTLS_MODE_ECB ); - if( cipher_info == NULL ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + cipher_info = mbedtls_cipher_info_from_values(cipher, + keybits, + MBEDTLS_MODE_ECB); + if (cipher_info == NULL) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } - if( cipher_info->block_size != 16 ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (cipher_info->block_size != 16) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } /* * SP 800-38F currently defines AES cipher as the only block cipher allowed: @@ -86,44 +88,44 @@ int mbedtls_nist_kw_setkey( mbedtls_nist_kw_context *ctx, * Currently we don't support other 128 bit block ciphers for key wrapping, * such as Camellia and Aria. */ - if( cipher != MBEDTLS_CIPHER_ID_AES ) - return( MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); - - mbedtls_cipher_free( &ctx->cipher_ctx ); - - if( ( ret = mbedtls_cipher_setup( &ctx->cipher_ctx, cipher_info ) ) != 0 ) - return( ret ); - - if( ( ret = mbedtls_cipher_setkey( &ctx->cipher_ctx, key, keybits, - is_wrap ? MBEDTLS_ENCRYPT : - MBEDTLS_DECRYPT ) - ) != 0 ) - { - return( ret ); + if (cipher != MBEDTLS_CIPHER_ID_AES) { + return MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; } - return( 0 ); + mbedtls_cipher_free(&ctx->cipher_ctx); + + if ((ret = mbedtls_cipher_setup(&ctx->cipher_ctx, cipher_info)) != 0) { + return ret; + } + + if ((ret = mbedtls_cipher_setkey(&ctx->cipher_ctx, key, keybits, + is_wrap ? MBEDTLS_ENCRYPT : + MBEDTLS_DECRYPT) + ) != 0) { + return ret; + } + + return 0; } /* * Free context */ -void mbedtls_nist_kw_free( mbedtls_nist_kw_context *ctx ) +void mbedtls_nist_kw_free(mbedtls_nist_kw_context *ctx) { - mbedtls_cipher_free( &ctx->cipher_ctx ); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_nist_kw_context ) ); + mbedtls_cipher_free(&ctx->cipher_ctx); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_nist_kw_context)); } /* * Helper function for Xoring the uint64_t "t" with the encrypted A. * Defined in NIST SP 800-38F section 6.1 */ -static void calc_a_xor_t( unsigned char A[KW_SEMIBLOCK_LENGTH], uint64_t t ) +static void calc_a_xor_t(unsigned char A[KW_SEMIBLOCK_LENGTH], uint64_t t) { size_t i = 0; - for( i = 0; i < sizeof( t ); i++ ) - { - A[i] ^= ( t >> ( ( sizeof( t ) - 1 - i ) * 8 ) ) & 0xff; + for (i = 0; i < sizeof(t); i++) { + A[i] ^= (t >> ((sizeof(t) - 1 - i) * 8)) & 0xff; } } @@ -131,10 +133,10 @@ static void calc_a_xor_t( unsigned char A[KW_SEMIBLOCK_LENGTH], uint64_t t ) * KW-AE as defined in SP 800-38F section 6.2 * KWP-AE as defined in SP 800-38F section 6.3 */ -int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx, - mbedtls_nist_kw_mode_t mode, - const unsigned char *input, size_t in_len, - unsigned char *output, size_t *out_len, size_t out_size ) +int mbedtls_nist_kw_wrap(mbedtls_nist_kw_context *ctx, + mbedtls_nist_kw_mode_t mode, + const unsigned char *input, size_t in_len, + unsigned char *output, size_t *out_len, size_t out_size) { int ret = 0; size_t semiblocks = 0; @@ -148,106 +150,96 @@ int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx, /* * Generate the String to work on */ - if( mode == MBEDTLS_KW_MODE_KW ) - { - if( out_size < in_len + KW_SEMIBLOCK_LENGTH ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (mode == MBEDTLS_KW_MODE_KW) { + if (out_size < in_len + KW_SEMIBLOCK_LENGTH) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } /* * According to SP 800-38F Table 1, the plaintext length for KW * must be between 2 to 2^54-1 semiblocks inclusive. */ - if( in_len < 16 || + if (in_len < 16 || #if SIZE_MAX > 0x1FFFFFFFFFFFFF8 in_len > 0x1FFFFFFFFFFFFF8 || #endif - in_len % KW_SEMIBLOCK_LENGTH != 0 ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + in_len % KW_SEMIBLOCK_LENGTH != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - memcpy( output, NIST_KW_ICV1, KW_SEMIBLOCK_LENGTH ); - memmove( output + KW_SEMIBLOCK_LENGTH, input, in_len ); - } - else - { - if( in_len % 8 != 0 ) - { - padlen = ( 8 - ( in_len % 8 ) ); + memcpy(output, NIST_KW_ICV1, KW_SEMIBLOCK_LENGTH); + memmove(output + KW_SEMIBLOCK_LENGTH, input, in_len); + } else { + if (in_len % 8 != 0) { + padlen = (8 - (in_len % 8)); } - if( out_size < in_len + KW_SEMIBLOCK_LENGTH + padlen ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (out_size < in_len + KW_SEMIBLOCK_LENGTH + padlen) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } /* * According to SP 800-38F Table 1, the plaintext length for KWP * must be between 1 and 2^32-1 octets inclusive. */ - if( in_len < 1 + if (in_len < 1 #if SIZE_MAX > 0xFFFFFFFF || in_len > 0xFFFFFFFF #endif - ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + ) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - memcpy( output, NIST_KW_ICV2, KW_SEMIBLOCK_LENGTH / 2 ); - MBEDTLS_PUT_UINT32_BE( ( in_len & 0xffffffff ), output, - KW_SEMIBLOCK_LENGTH / 2 ); + memcpy(output, NIST_KW_ICV2, KW_SEMIBLOCK_LENGTH / 2); + MBEDTLS_PUT_UINT32_BE((in_len & 0xffffffff), output, + KW_SEMIBLOCK_LENGTH / 2); - memcpy( output + KW_SEMIBLOCK_LENGTH, input, in_len ); - memset( output + KW_SEMIBLOCK_LENGTH + in_len, 0, padlen ); + memcpy(output + KW_SEMIBLOCK_LENGTH, input, in_len); + memset(output + KW_SEMIBLOCK_LENGTH + in_len, 0, padlen); } - semiblocks = ( ( in_len + padlen ) / KW_SEMIBLOCK_LENGTH ) + 1; + semiblocks = ((in_len + padlen) / KW_SEMIBLOCK_LENGTH) + 1; - s = 6 * ( semiblocks - 1 ); + s = 6 * (semiblocks - 1); - if( mode == MBEDTLS_KW_MODE_KWP - && in_len <= KW_SEMIBLOCK_LENGTH ) - { - memcpy( inbuff, output, 16 ); - ret = mbedtls_cipher_update( &ctx->cipher_ctx, - inbuff, 16, output, &olen ); - if( ret != 0 ) + if (mode == MBEDTLS_KW_MODE_KWP + && in_len <= KW_SEMIBLOCK_LENGTH) { + memcpy(inbuff, output, 16); + ret = mbedtls_cipher_update(&ctx->cipher_ctx, + inbuff, 16, output, &olen); + if (ret != 0) { goto cleanup; - } - else - { + } + } else { unsigned char *R2 = output + KW_SEMIBLOCK_LENGTH; unsigned char *A = output; /* * Do the wrapping function W, as defined in RFC 3394 section 2.2.1 */ - if( semiblocks < MIN_SEMIBLOCKS_COUNT ) - { + if (semiblocks < MIN_SEMIBLOCKS_COUNT) { ret = MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; goto cleanup; } /* Calculate intermediate values */ - for( t = 1; t <= s; t++ ) - { - memcpy( inbuff, A, KW_SEMIBLOCK_LENGTH ); - memcpy( inbuff + KW_SEMIBLOCK_LENGTH, R2, KW_SEMIBLOCK_LENGTH ); + for (t = 1; t <= s; t++) { + memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH); + memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R2, KW_SEMIBLOCK_LENGTH); - ret = mbedtls_cipher_update( &ctx->cipher_ctx, - inbuff, 16, outbuff, &olen ); - if( ret != 0 ) + ret = mbedtls_cipher_update(&ctx->cipher_ctx, + inbuff, 16, outbuff, &olen); + if (ret != 0) { goto cleanup; + } - memcpy( A, outbuff, KW_SEMIBLOCK_LENGTH ); - calc_a_xor_t( A, t ); + memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH); + calc_a_xor_t(A, t); - memcpy( R2, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH ); + memcpy(R2, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH); R2 += KW_SEMIBLOCK_LENGTH; - if( R2 >= output + ( semiblocks * KW_SEMIBLOCK_LENGTH ) ) + if (R2 >= output + (semiblocks * KW_SEMIBLOCK_LENGTH)) { R2 = output + KW_SEMIBLOCK_LENGTH; + } } } @@ -255,14 +247,13 @@ int mbedtls_nist_kw_wrap( mbedtls_nist_kw_context *ctx, cleanup: - if( ret != 0) - { - memset( output, 0, semiblocks * KW_SEMIBLOCK_LENGTH ); + if (ret != 0) { + memset(output, 0, semiblocks * KW_SEMIBLOCK_LENGTH); } - mbedtls_platform_zeroize( inbuff, KW_SEMIBLOCK_LENGTH * 2 ); - mbedtls_platform_zeroize( outbuff, KW_SEMIBLOCK_LENGTH * 2 ); + mbedtls_platform_zeroize(inbuff, KW_SEMIBLOCK_LENGTH * 2); + mbedtls_platform_zeroize(outbuff, KW_SEMIBLOCK_LENGTH * 2); - return( ret ); + return ret; } /* @@ -273,13 +264,13 @@ cleanup: * 3. Minimal number of semiblocks is 3. * 4. A is a buffer to hold the first semiblock of the input buffer. */ -static int unwrap( mbedtls_nist_kw_context *ctx, - const unsigned char *input, size_t semiblocks, - unsigned char A[KW_SEMIBLOCK_LENGTH], - unsigned char *output, size_t* out_len ) +static int unwrap(mbedtls_nist_kw_context *ctx, + const unsigned char *input, size_t semiblocks, + unsigned char A[KW_SEMIBLOCK_LENGTH], + unsigned char *output, size_t *out_len) { int ret = 0; - const size_t s = 6 * ( semiblocks - 1 ); + const size_t s = 6 * (semiblocks - 1); size_t olen; uint64_t t = 0; unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2]; @@ -287,58 +278,59 @@ static int unwrap( mbedtls_nist_kw_context *ctx, unsigned char *R = NULL; *out_len = 0; - if( semiblocks < MIN_SEMIBLOCKS_COUNT ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (semiblocks < MIN_SEMIBLOCKS_COUNT) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - memcpy( A, input, KW_SEMIBLOCK_LENGTH ); - memmove( output, input + KW_SEMIBLOCK_LENGTH, ( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH ); - R = output + ( semiblocks - 2 ) * KW_SEMIBLOCK_LENGTH; + memcpy(A, input, KW_SEMIBLOCK_LENGTH); + memmove(output, input + KW_SEMIBLOCK_LENGTH, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH); + R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH; /* Calculate intermediate values */ - for( t = s; t >= 1; t-- ) - { - calc_a_xor_t( A, t ); + for (t = s; t >= 1; t--) { + calc_a_xor_t(A, t); - memcpy( inbuff, A, KW_SEMIBLOCK_LENGTH ); - memcpy( inbuff + KW_SEMIBLOCK_LENGTH, R, KW_SEMIBLOCK_LENGTH ); + memcpy(inbuff, A, KW_SEMIBLOCK_LENGTH); + memcpy(inbuff + KW_SEMIBLOCK_LENGTH, R, KW_SEMIBLOCK_LENGTH); - ret = mbedtls_cipher_update( &ctx->cipher_ctx, - inbuff, 16, outbuff, &olen ); - if( ret != 0 ) + ret = mbedtls_cipher_update(&ctx->cipher_ctx, + inbuff, 16, outbuff, &olen); + if (ret != 0) { goto cleanup; + } - memcpy( A, outbuff, KW_SEMIBLOCK_LENGTH ); + memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH); /* Set R as LSB64 of outbuff */ - memcpy( R, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH ); + memcpy(R, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH); - if( R == output ) - R = output + ( semiblocks - 2 ) * KW_SEMIBLOCK_LENGTH; - else + if (R == output) { + R = output + (semiblocks - 2) * KW_SEMIBLOCK_LENGTH; + } else { R -= KW_SEMIBLOCK_LENGTH; + } } - *out_len = ( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH; + *out_len = (semiblocks - 1) * KW_SEMIBLOCK_LENGTH; cleanup: - if( ret != 0) - memset( output, 0, ( semiblocks - 1 ) * KW_SEMIBLOCK_LENGTH ); - mbedtls_platform_zeroize( inbuff, sizeof( inbuff ) ); - mbedtls_platform_zeroize( outbuff, sizeof( outbuff ) ); + if (ret != 0) { + memset(output, 0, (semiblocks - 1) * KW_SEMIBLOCK_LENGTH); + } + mbedtls_platform_zeroize(inbuff, sizeof(inbuff)); + mbedtls_platform_zeroize(outbuff, sizeof(outbuff)); - return( ret ); + return ret; } /* * KW-AD as defined in SP 800-38F section 6.2 * KWP-AD as defined in SP 800-38F section 6.3 */ -int mbedtls_nist_kw_unwrap( mbedtls_nist_kw_context *ctx, - mbedtls_nist_kw_mode_t mode, - const unsigned char *input, size_t in_len, - unsigned char *output, size_t *out_len, size_t out_size ) +int mbedtls_nist_kw_unwrap(mbedtls_nist_kw_context *ctx, + mbedtls_nist_kw_mode_t mode, + const unsigned char *input, size_t in_len, + unsigned char *output, size_t *out_len, size_t out_size) { int ret = 0; size_t i, olen; @@ -346,89 +338,81 @@ int mbedtls_nist_kw_unwrap( mbedtls_nist_kw_context *ctx, unsigned char diff, bad_padding = 0; *out_len = 0; - if( out_size < in_len - KW_SEMIBLOCK_LENGTH ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (out_size < in_len - KW_SEMIBLOCK_LENGTH) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - if( mode == MBEDTLS_KW_MODE_KW ) - { + if (mode == MBEDTLS_KW_MODE_KW) { /* * According to SP 800-38F Table 1, the ciphertext length for KW * must be between 3 to 2^54 semiblocks inclusive. */ - if( in_len < 24 || + if (in_len < 24 || #if SIZE_MAX > 0x200000000000000 in_len > 0x200000000000000 || #endif - in_len % KW_SEMIBLOCK_LENGTH != 0 ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + in_len % KW_SEMIBLOCK_LENGTH != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - ret = unwrap( ctx, input, in_len / KW_SEMIBLOCK_LENGTH, - A, output, out_len ); - if( ret != 0 ) + ret = unwrap(ctx, input, in_len / KW_SEMIBLOCK_LENGTH, + A, output, out_len); + if (ret != 0) { goto cleanup; + } /* Check ICV in "constant-time" */ - diff = mbedtls_ct_memcmp( NIST_KW_ICV1, A, KW_SEMIBLOCK_LENGTH ); + diff = mbedtls_ct_memcmp(NIST_KW_ICV1, A, KW_SEMIBLOCK_LENGTH); - if( diff != 0 ) - { + if (diff != 0) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; goto cleanup; } - } - else if( mode == MBEDTLS_KW_MODE_KWP ) - { + } else if (mode == MBEDTLS_KW_MODE_KWP) { size_t padlen = 0; uint32_t Plen; /* * According to SP 800-38F Table 1, the ciphertext length for KWP * must be between 2 to 2^29 semiblocks inclusive. */ - if( in_len < KW_SEMIBLOCK_LENGTH * 2 || + if (in_len < KW_SEMIBLOCK_LENGTH * 2 || #if SIZE_MAX > 0x100000000 in_len > 0x100000000 || #endif - in_len % KW_SEMIBLOCK_LENGTH != 0 ) - { - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + in_len % KW_SEMIBLOCK_LENGTH != 0) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } - if( in_len == KW_SEMIBLOCK_LENGTH * 2 ) - { + if (in_len == KW_SEMIBLOCK_LENGTH * 2) { unsigned char outbuff[KW_SEMIBLOCK_LENGTH * 2]; - ret = mbedtls_cipher_update( &ctx->cipher_ctx, - input, 16, outbuff, &olen ); - if( ret != 0 ) + ret = mbedtls_cipher_update(&ctx->cipher_ctx, + input, 16, outbuff, &olen); + if (ret != 0) { goto cleanup; + } - memcpy( A, outbuff, KW_SEMIBLOCK_LENGTH ); - memcpy( output, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH ); - mbedtls_platform_zeroize( outbuff, sizeof( outbuff ) ); + memcpy(A, outbuff, KW_SEMIBLOCK_LENGTH); + memcpy(output, outbuff + KW_SEMIBLOCK_LENGTH, KW_SEMIBLOCK_LENGTH); + mbedtls_platform_zeroize(outbuff, sizeof(outbuff)); *out_len = KW_SEMIBLOCK_LENGTH; - } - else - { + } else { /* in_len >= KW_SEMIBLOCK_LENGTH * 3 */ - ret = unwrap( ctx, input, in_len / KW_SEMIBLOCK_LENGTH, - A, output, out_len ); - if( ret != 0 ) + ret = unwrap(ctx, input, in_len / KW_SEMIBLOCK_LENGTH, + A, output, out_len); + if (ret != 0) { goto cleanup; + } } /* Check ICV in "constant-time" */ - diff = mbedtls_ct_memcmp( NIST_KW_ICV2, A, KW_SEMIBLOCK_LENGTH / 2 ); + diff = mbedtls_ct_memcmp(NIST_KW_ICV2, A, KW_SEMIBLOCK_LENGTH / 2); - if( diff != 0 ) - { + if (diff != 0) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; } - Plen = MBEDTLS_GET_UINT32_BE( A, KW_SEMIBLOCK_LENGTH / 2 ); + Plen = MBEDTLS_GET_UINT32_BE(A, KW_SEMIBLOCK_LENGTH / 2); /* * Plen is the length of the plaintext, when the input is valid. @@ -436,51 +420,45 @@ int mbedtls_nist_kw_unwrap( mbedtls_nist_kw_context *ctx, * larger than 8, because of the type wrap around. */ padlen = in_len - KW_SEMIBLOCK_LENGTH - Plen; - if ( padlen > 7 ) - { + if (padlen > 7) { padlen &= 7; ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; } /* Check padding in "constant-time" */ - for( diff = 0, i = 0; i < KW_SEMIBLOCK_LENGTH; i++ ) - { - if( i >= KW_SEMIBLOCK_LENGTH - padlen ) - diff |= output[*out_len - KW_SEMIBLOCK_LENGTH + i]; - else - bad_padding |= output[*out_len - KW_SEMIBLOCK_LENGTH + i]; + for (diff = 0, i = 0; i < KW_SEMIBLOCK_LENGTH; i++) { + if (i >= KW_SEMIBLOCK_LENGTH - padlen) { + diff |= output[*out_len - KW_SEMIBLOCK_LENGTH + i]; + } else { + bad_padding |= output[*out_len - KW_SEMIBLOCK_LENGTH + i]; + } } - if( diff != 0 ) - { + if (diff != 0) { ret = MBEDTLS_ERR_CIPHER_AUTH_FAILED; } - if( ret != 0 ) - { + if (ret != 0) { goto cleanup; } - memset( output + Plen, 0, padlen ); + memset(output + Plen, 0, padlen); *out_len = Plen; - } - else - { + } else { ret = MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; goto cleanup; } cleanup: - if( ret != 0 ) - { - memset( output, 0, *out_len ); + if (ret != 0) { + memset(output, 0, *out_len); *out_len = 0; } - mbedtls_platform_zeroize( &bad_padding, sizeof( bad_padding) ); - mbedtls_platform_zeroize( &diff, sizeof( diff ) ); - mbedtls_platform_zeroize( A, sizeof( A ) ); + mbedtls_platform_zeroize(&bad_padding, sizeof(bad_padding)); + mbedtls_platform_zeroize(&diff, sizeof(diff)); + mbedtls_platform_zeroize(A, sizeof(A)); - return( ret ); + return ret; } #endif /* !MBEDTLS_NIST_KW_ALT */ @@ -575,130 +553,133 @@ static const unsigned char kwp_res[KW_TESTS][48] = { }; static const size_t kwp_out_len[KW_TESTS] = { 24, 40, 16 }; -int mbedtls_nist_kw_self_test( int verbose ) +int mbedtls_nist_kw_self_test(int verbose) { mbedtls_nist_kw_context ctx; unsigned char out[48]; size_t olen; int i; int ret = 0; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - for( i = 0; i < KW_TESTS; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " KW-AES-%u ", (unsigned int) key_len[i] * 8 ); + for (i = 0; i < KW_TESTS; i++) { + if (verbose != 0) { + mbedtls_printf(" KW-AES-%u ", (unsigned int) key_len[i] * 8); + } - ret = mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - kw_key[i], key_len[i] * 8, 1 ); - if( ret != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( " KW: setup failed " ); + ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + kw_key[i], key_len[i] * 8, 1); + if (ret != 0) { + if (verbose != 0) { + mbedtls_printf(" KW: setup failed "); + } goto end; } - ret = mbedtls_nist_kw_wrap( &ctx, MBEDTLS_KW_MODE_KW, kw_msg[i], - kw_msg_len[i], out, &olen, sizeof( out ) ); - if( ret != 0 || kw_out_len[i] != olen || - memcmp( out, kw_res[i], kw_out_len[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed. "); + ret = mbedtls_nist_kw_wrap(&ctx, MBEDTLS_KW_MODE_KW, kw_msg[i], + kw_msg_len[i], out, &olen, sizeof(out)); + if (ret != 0 || kw_out_len[i] != olen || + memcmp(out, kw_res[i], kw_out_len[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed. "); + } ret = 1; goto end; } - if( ( ret = mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - kw_key[i], key_len[i] * 8, 0 ) ) - != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( " KW: setup failed "); + if ((ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + kw_key[i], key_len[i] * 8, 0)) + != 0) { + if (verbose != 0) { + mbedtls_printf(" KW: setup failed "); + } goto end; } - ret = mbedtls_nist_kw_unwrap( &ctx, MBEDTLS_KW_MODE_KW, - out, olen, out, &olen, sizeof( out ) ); + ret = mbedtls_nist_kw_unwrap(&ctx, MBEDTLS_KW_MODE_KW, + out, olen, out, &olen, sizeof(out)); - if( ret != 0 || olen != kw_msg_len[i] || - memcmp( out, kw_msg[i], kw_msg_len[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (ret != 0 || olen != kw_msg_len[i] || + memcmp(out, kw_msg[i], kw_msg_len[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto end; } - if( verbose != 0 ) - mbedtls_printf( " passed\n" ); + if (verbose != 0) { + mbedtls_printf(" passed\n"); + } } - for( i = 0; i < KW_TESTS; i++ ) - { - olen = sizeof( out ); - if( verbose != 0 ) - mbedtls_printf( " KWP-AES-%u ", (unsigned int) key_len[i] * 8 ); + for (i = 0; i < KW_TESTS; i++) { + olen = sizeof(out); + if (verbose != 0) { + mbedtls_printf(" KWP-AES-%u ", (unsigned int) key_len[i] * 8); + } - ret = mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, kwp_key[i], - key_len[i] * 8, 1 ); - if( ret != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( " KWP: setup failed " ); + ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, kwp_key[i], + key_len[i] * 8, 1); + if (ret != 0) { + if (verbose != 0) { + mbedtls_printf(" KWP: setup failed "); + } goto end; } - ret = mbedtls_nist_kw_wrap( &ctx, MBEDTLS_KW_MODE_KWP, kwp_msg[i], - kwp_msg_len[i], out, &olen, sizeof( out ) ); + ret = mbedtls_nist_kw_wrap(&ctx, MBEDTLS_KW_MODE_KWP, kwp_msg[i], + kwp_msg_len[i], out, &olen, sizeof(out)); - if( ret != 0 || kwp_out_len[i] != olen || - memcmp( out, kwp_res[i], kwp_out_len[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed. "); + if (ret != 0 || kwp_out_len[i] != olen || + memcmp(out, kwp_res[i], kwp_out_len[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed. "); + } ret = 1; goto end; } - if( ( ret = mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - kwp_key[i], key_len[i] * 8, 0 ) ) - != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( " KWP: setup failed "); + if ((ret = mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + kwp_key[i], key_len[i] * 8, 0)) + != 0) { + if (verbose != 0) { + mbedtls_printf(" KWP: setup failed "); + } goto end; } - ret = mbedtls_nist_kw_unwrap( &ctx, MBEDTLS_KW_MODE_KWP, out, - olen, out, &olen, sizeof( out ) ); + ret = mbedtls_nist_kw_unwrap(&ctx, MBEDTLS_KW_MODE_KWP, out, + olen, out, &olen, sizeof(out)); - if( ret != 0 || olen != kwp_msg_len[i] || - memcmp( out, kwp_msg[i], kwp_msg_len[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed. "); + if (ret != 0 || olen != kwp_msg_len[i] || + memcmp(out, kwp_msg[i], kwp_msg_len[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed. "); + } ret = 1; goto end; } - if( verbose != 0 ) - mbedtls_printf( " passed\n" ); + if (verbose != 0) { + mbedtls_printf(" passed\n"); + } } end: - mbedtls_nist_kw_free( &ctx ); + mbedtls_nist_kw_free(&ctx); - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST && MBEDTLS_AES_C */ diff --git a/library/oid.c b/library/oid.c index aa5f69c66..049d80245 100644 --- a/library/oid.c +++ b/library/oid.c @@ -54,23 +54,23 @@ * Macro to generate an internal function for oid_XXX_from_asn1() (used by * the other functions) */ -#define FN_OID_TYPED_FROM_ASN1( TYPE_T, NAME, LIST ) \ - static const TYPE_T * oid_ ## NAME ## _from_asn1( \ - const mbedtls_asn1_buf *oid ) \ +#define FN_OID_TYPED_FROM_ASN1(TYPE_T, NAME, LIST) \ + static const TYPE_T *oid_ ## NAME ## _from_asn1( \ + const mbedtls_asn1_buf *oid) \ { \ const TYPE_T *p = (LIST); \ const mbedtls_oid_descriptor_t *cur = \ (const mbedtls_oid_descriptor_t *) p; \ - if( p == NULL || oid == NULL ) return( NULL ); \ - while( cur->asn1 != NULL ) { \ - if( cur->asn1_len == oid->len && \ - memcmp( cur->asn1, oid->p, oid->len ) == 0 ) { \ - return( p ); \ + if (p == NULL || oid == NULL) return NULL; \ + while (cur->asn1 != NULL) { \ + if (cur->asn1_len == oid->len && \ + memcmp(cur->asn1, oid->p, oid->len) == 0) { \ + return p; \ } \ p++; \ cur = (const mbedtls_oid_descriptor_t *) p; \ } \ - return( NULL ); \ + return NULL; \ } #if !defined(MBEDTLS_X509_REMOVE_INFO) @@ -79,13 +79,13 @@ * descriptor of an mbedtls_oid_descriptor_t wrapper. */ #define FN_OID_GET_DESCRIPTOR_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \ -int FN_NAME( const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1 ) \ -{ \ - const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ - if( data == NULL ) return( MBEDTLS_ERR_OID_NOT_FOUND ); \ - *ATTR1 = data->descriptor.ATTR1; \ - return( 0 ); \ -} + int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1) \ + { \ + const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \ + if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \ + *ATTR1 = data->descriptor.ATTR1; \ + return 0; \ + } #endif /* MBEDTLS_X509_REMOVE_INFO */ /* @@ -93,13 +93,13 @@ int FN_NAME( const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1 ) * mbedtls_oid_descriptor_t wrapper. */ #define FN_OID_GET_ATTR1(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1) \ -int FN_NAME( const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1 ) \ -{ \ - const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ - if( data == NULL ) return( MBEDTLS_ERR_OID_NOT_FOUND ); \ - *ATTR1 = data->ATTR1; \ - return( 0 ); \ -} + int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1) \ + { \ + const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \ + if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \ + *ATTR1 = data->ATTR1; \ + return 0; \ + } /* * Macro to generate a function for retrieving two attributes from an @@ -107,34 +107,34 @@ int FN_NAME( const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1 ) */ #define FN_OID_GET_ATTR2(FN_NAME, TYPE_T, TYPE_NAME, ATTR1_TYPE, ATTR1, \ ATTR2_TYPE, ATTR2) \ -int FN_NAME( const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1, \ - ATTR2_TYPE * ATTR2 ) \ -{ \ - const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid ); \ - if( data == NULL ) return( MBEDTLS_ERR_OID_NOT_FOUND ); \ - *(ATTR1) = data->ATTR1; \ - *(ATTR2) = data->ATTR2; \ - return( 0 ); \ -} + int FN_NAME(const mbedtls_asn1_buf *oid, ATTR1_TYPE * ATTR1, \ + ATTR2_TYPE * ATTR2) \ + { \ + const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1(oid); \ + if (data == NULL) return MBEDTLS_ERR_OID_NOT_FOUND; \ + *(ATTR1) = data->ATTR1; \ + *(ATTR2) = data->ATTR2; \ + return 0; \ + } /* * Macro to generate a function for retrieving the OID based on a single * attribute from a mbedtls_oid_descriptor_t wrapper. */ #define FN_OID_GET_OID_BY_ATTR1(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1) \ -int FN_NAME( ATTR1_TYPE ATTR1, const char **oid, size_t *olen ) \ -{ \ - const TYPE_T *cur = (LIST); \ - while( cur->descriptor.asn1 != NULL ) { \ - if( cur->ATTR1 == (ATTR1) ) { \ - *oid = cur->descriptor.asn1; \ - *olen = cur->descriptor.asn1_len; \ - return( 0 ); \ - } \ - cur++; \ - } \ - return( MBEDTLS_ERR_OID_NOT_FOUND ); \ -} + int FN_NAME(ATTR1_TYPE ATTR1, const char **oid, size_t *olen) \ + { \ + const TYPE_T *cur = (LIST); \ + while (cur->descriptor.asn1 != NULL) { \ + if (cur->ATTR1 == (ATTR1)) { \ + *oid = cur->descriptor.asn1; \ + *olen = cur->descriptor.asn1_len; \ + return 0; \ + } \ + cur++; \ + } \ + return MBEDTLS_ERR_OID_NOT_FOUND; \ + } /* * Macro to generate a function for retrieving the OID based on two @@ -142,20 +142,20 @@ int FN_NAME( ATTR1_TYPE ATTR1, const char **oid, size_t *olen ) \ */ #define FN_OID_GET_OID_BY_ATTR2(FN_NAME, TYPE_T, LIST, ATTR1_TYPE, ATTR1, \ ATTR2_TYPE, ATTR2) \ -int FN_NAME( ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid , \ - size_t *olen ) \ -{ \ - const TYPE_T *cur = (LIST); \ - while( cur->descriptor.asn1 != NULL ) { \ - if( cur->ATTR1 == (ATTR1) && cur->ATTR2 == (ATTR2) ) { \ - *oid = cur->descriptor.asn1; \ - *olen = cur->descriptor.asn1_len; \ - return( 0 ); \ - } \ - cur++; \ - } \ - return( MBEDTLS_ERR_OID_NOT_FOUND ); \ -} + int FN_NAME(ATTR1_TYPE ATTR1, ATTR2_TYPE ATTR2, const char **oid, \ + size_t *olen) \ + { \ + const TYPE_T *cur = (LIST); \ + while (cur->descriptor.asn1 != NULL) { \ + if (cur->ATTR1 == (ATTR1) && cur->ATTR2 == (ATTR2)) { \ + *oid = cur->descriptor.asn1; \ + *olen = cur->descriptor.asn1_len; \ + return 0; \ + } \ + cur++; \ + } \ + return MBEDTLS_ERR_OID_NOT_FOUND; \ + } /* * For X520 attribute types @@ -168,83 +168,98 @@ typedef struct { static const oid_x520_attr_t oid_x520_attr_type[] = { { - OID_DESCRIPTOR( MBEDTLS_OID_AT_CN, "id-at-commonName", "Common Name" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_CN, "id-at-commonName", "Common Name"), "CN", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_COUNTRY, "id-at-countryName", "Country" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_COUNTRY, "id-at-countryName", "Country"), "C", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_LOCALITY, "id-at-locality", "Locality" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_LOCALITY, "id-at-locality", "Locality"), "L", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_STATE, "id-at-state", "State" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_STATE, "id-at-state", "State"), "ST", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_ORGANIZATION,"id-at-organizationName", "Organization" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_ORGANIZATION, "id-at-organizationName", + "Organization"), "O", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_ORG_UNIT, "id-at-organizationalUnitName", "Org Unit" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_ORG_UNIT, "id-at-organizationalUnitName", "Org Unit"), "OU", }, { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS9_EMAIL, "emailAddress", "E-mail address" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS9_EMAIL, + "emailAddress", + "E-mail address"), "emailAddress", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_SERIAL_NUMBER,"id-at-serialNumber", "Serial number" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_SERIAL_NUMBER, + "id-at-serialNumber", + "Serial number"), "serialNumber", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_POSTAL_ADDRESS,"id-at-postalAddress", "Postal address" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_ADDRESS, + "id-at-postalAddress", + "Postal address"), "postalAddress", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_POSTAL_CODE, "id-at-postalCode", "Postal code" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_POSTAL_CODE, "id-at-postalCode", "Postal code"), "postalCode", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_SUR_NAME, "id-at-surName", "Surname" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_SUR_NAME, "id-at-surName", "Surname"), "SN", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_GIVEN_NAME, "id-at-givenName", "Given name" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_GIVEN_NAME, "id-at-givenName", "Given name"), "GN", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_INITIALS, "id-at-initials", "Initials" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_INITIALS, "id-at-initials", "Initials"), "initials", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_GENERATION_QUALIFIER, "id-at-generationQualifier", "Generation qualifier" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_GENERATION_QUALIFIER, + "id-at-generationQualifier", + "Generation qualifier"), "generationQualifier", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_TITLE, "id-at-title", "Title" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_TITLE, "id-at-title", "Title"), "title", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_DN_QUALIFIER,"id-at-dnQualifier", "Distinguished Name qualifier" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_DN_QUALIFIER, + "id-at-dnQualifier", + "Distinguished Name qualifier"), "dnQualifier", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_PSEUDONYM, "id-at-pseudonym", "Pseudonym" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_PSEUDONYM, "id-at-pseudonym", "Pseudonym"), "pseudonym", }, { - OID_DESCRIPTOR( MBEDTLS_OID_UID, "id-uid", "User Id" ), + OID_DESCRIPTOR(MBEDTLS_OID_UID, "id-uid", "User Id"), "uid", }, { - OID_DESCRIPTOR( MBEDTLS_OID_DOMAIN_COMPONENT, "id-domainComponent", "Domain component" ), + OID_DESCRIPTOR(MBEDTLS_OID_DOMAIN_COMPONENT, + "id-domainComponent", + "Domain component"), "DC", }, { - OID_DESCRIPTOR( MBEDTLS_OID_AT_UNIQUE_IDENTIFIER, "id-at-uniqueIdentifier", "Unique Identifier" ), + OID_DESCRIPTOR(MBEDTLS_OID_AT_UNIQUE_IDENTIFIER, + "id-at-uniqueIdentifier", + "Unique Identifier"), "uniqueIdentifier", }, { @@ -254,7 +269,11 @@ static const oid_x520_attr_t oid_x520_attr_type[] = }; FN_OID_TYPED_FROM_ASN1(oid_x520_attr_t, x520_attr, oid_x520_attr_type) -FN_OID_GET_ATTR1(mbedtls_oid_get_attr_short_name, oid_x520_attr_t, x520_attr, const char *, short_name) +FN_OID_GET_ATTR1(mbedtls_oid_get_attr_short_name, + oid_x520_attr_t, + x520_attr, + const char *, + short_name) /* * For X509 extensions @@ -267,27 +286,37 @@ typedef struct { static const oid_x509_ext_t oid_x509_ext[] = { { - OID_DESCRIPTOR( MBEDTLS_OID_BASIC_CONSTRAINTS, "id-ce-basicConstraints", "Basic Constraints" ), + OID_DESCRIPTOR(MBEDTLS_OID_BASIC_CONSTRAINTS, + "id-ce-basicConstraints", + "Basic Constraints"), MBEDTLS_OID_X509_EXT_BASIC_CONSTRAINTS, }, { - OID_DESCRIPTOR( MBEDTLS_OID_KEY_USAGE, "id-ce-keyUsage", "Key Usage" ), + OID_DESCRIPTOR(MBEDTLS_OID_KEY_USAGE, "id-ce-keyUsage", "Key Usage"), MBEDTLS_OID_X509_EXT_KEY_USAGE, }, { - OID_DESCRIPTOR( MBEDTLS_OID_EXTENDED_KEY_USAGE, "id-ce-extKeyUsage", "Extended Key Usage" ), + OID_DESCRIPTOR(MBEDTLS_OID_EXTENDED_KEY_USAGE, + "id-ce-extKeyUsage", + "Extended Key Usage"), MBEDTLS_OID_X509_EXT_EXTENDED_KEY_USAGE, }, { - OID_DESCRIPTOR( MBEDTLS_OID_SUBJECT_ALT_NAME, "id-ce-subjectAltName", "Subject Alt Name" ), + OID_DESCRIPTOR(MBEDTLS_OID_SUBJECT_ALT_NAME, + "id-ce-subjectAltName", + "Subject Alt Name"), MBEDTLS_OID_X509_EXT_SUBJECT_ALT_NAME, }, { - OID_DESCRIPTOR( MBEDTLS_OID_NS_CERT_TYPE, "id-netscape-certtype", "Netscape Certificate Type" ), + OID_DESCRIPTOR(MBEDTLS_OID_NS_CERT_TYPE, + "id-netscape-certtype", + "Netscape Certificate Type"), MBEDTLS_OID_X509_EXT_NS_CERT_TYPE, }, { - OID_DESCRIPTOR( MBEDTLS_OID_CERTIFICATE_POLICIES, "id-ce-certificatePolicies", "Certificate Policies" ), + OID_DESCRIPTOR(MBEDTLS_OID_CERTIFICATE_POLICIES, + "id-ce-certificatePolicies", + "Certificate Policies"), MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES, }, { @@ -302,27 +331,41 @@ FN_OID_GET_ATTR1(mbedtls_oid_get_x509_ext_type, oid_x509_ext_t, x509_ext, int, e #if !defined(MBEDTLS_X509_REMOVE_INFO) static const mbedtls_oid_descriptor_t oid_ext_key_usage[] = { - OID_DESCRIPTOR( MBEDTLS_OID_SERVER_AUTH, "id-kp-serverAuth", "TLS Web Server Authentication" ), - OID_DESCRIPTOR( MBEDTLS_OID_CLIENT_AUTH, "id-kp-clientAuth", "TLS Web Client Authentication" ), - OID_DESCRIPTOR( MBEDTLS_OID_CODE_SIGNING, "id-kp-codeSigning", "Code Signing" ), - OID_DESCRIPTOR( MBEDTLS_OID_EMAIL_PROTECTION, "id-kp-emailProtection", "E-mail Protection" ), - OID_DESCRIPTOR( MBEDTLS_OID_TIME_STAMPING, "id-kp-timeStamping", "Time Stamping" ), - OID_DESCRIPTOR( MBEDTLS_OID_OCSP_SIGNING, "id-kp-OCSPSigning", "OCSP Signing" ), - OID_DESCRIPTOR( MBEDTLS_OID_WISUN_FAN, "id-kp-wisun-fan-device", "Wi-SUN Alliance Field Area Network (FAN)" ), + OID_DESCRIPTOR(MBEDTLS_OID_SERVER_AUTH, + "id-kp-serverAuth", + "TLS Web Server Authentication"), + OID_DESCRIPTOR(MBEDTLS_OID_CLIENT_AUTH, + "id-kp-clientAuth", + "TLS Web Client Authentication"), + OID_DESCRIPTOR(MBEDTLS_OID_CODE_SIGNING, "id-kp-codeSigning", "Code Signing"), + OID_DESCRIPTOR(MBEDTLS_OID_EMAIL_PROTECTION, "id-kp-emailProtection", "E-mail Protection"), + OID_DESCRIPTOR(MBEDTLS_OID_TIME_STAMPING, "id-kp-timeStamping", "Time Stamping"), + OID_DESCRIPTOR(MBEDTLS_OID_OCSP_SIGNING, "id-kp-OCSPSigning", "OCSP Signing"), + OID_DESCRIPTOR(MBEDTLS_OID_WISUN_FAN, + "id-kp-wisun-fan-device", + "Wi-SUN Alliance Field Area Network (FAN)"), NULL_OID_DESCRIPTOR, }; FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, ext_key_usage, oid_ext_key_usage) -FN_OID_GET_ATTR1(mbedtls_oid_get_extended_key_usage, mbedtls_oid_descriptor_t, ext_key_usage, const char *, description) +FN_OID_GET_ATTR1(mbedtls_oid_get_extended_key_usage, + mbedtls_oid_descriptor_t, + ext_key_usage, + const char *, + description) static const mbedtls_oid_descriptor_t oid_certificate_policies[] = { - OID_DESCRIPTOR( MBEDTLS_OID_ANY_POLICY, "anyPolicy", "Any Policy" ), + OID_DESCRIPTOR(MBEDTLS_OID_ANY_POLICY, "anyPolicy", "Any Policy"), NULL_OID_DESCRIPTOR, }; FN_OID_TYPED_FROM_ASN1(mbedtls_oid_descriptor_t, certificate_policies, oid_certificate_policies) -FN_OID_GET_ATTR1(mbedtls_oid_get_certificate_policies, mbedtls_oid_descriptor_t, certificate_policies, const char *, description) +FN_OID_GET_ATTR1(mbedtls_oid_get_certificate_policies, + mbedtls_oid_descriptor_t, + certificate_policies, + const char *, + description) #endif /* MBEDTLS_X509_REMOVE_INFO */ /* @@ -339,43 +382,47 @@ static const oid_sig_alg_t oid_sig_alg[] = #if defined(MBEDTLS_RSA_C) #if defined(MBEDTLS_HAS_ALG_MD5_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_MD5, "md5WithRSAEncryption", "RSA with MD5" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_MD5, "md5WithRSAEncryption", "RSA with MD5"), MBEDTLS_MD_MD5, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_MD5_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_SHA1, "sha-1WithRSAEncryption", "RSA with SHA1" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA1, "sha-1WithRSAEncryption", "RSA with SHA1"), MBEDTLS_MD_SHA1, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_SHA224, "sha224WithRSAEncryption", "RSA with SHA-224" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA224, "sha224WithRSAEncryption", + "RSA with SHA-224"), MBEDTLS_MD_SHA224, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_SHA256, "sha256WithRSAEncryption", "RSA with SHA-256" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA256, "sha256WithRSAEncryption", + "RSA with SHA-256"), MBEDTLS_MD_SHA256, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_SHA384, "sha384WithRSAEncryption", "RSA with SHA-384" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA384, "sha384WithRSAEncryption", + "RSA with SHA-384"), MBEDTLS_MD_SHA384, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_SHA512, "sha512WithRSAEncryption", "RSA with SHA-512" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_SHA512, "sha512WithRSAEncryption", + "RSA with SHA-512"), MBEDTLS_MD_SHA512, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_RSA_SHA_OBS, "sha-1WithRSAEncryption", "RSA with SHA1" ), + OID_DESCRIPTOR(MBEDTLS_OID_RSA_SHA_OBS, "sha-1WithRSAEncryption", "RSA with SHA1"), MBEDTLS_MD_SHA1, MBEDTLS_PK_RSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ @@ -383,38 +430,38 @@ static const oid_sig_alg_t oid_sig_alg[] = #if defined(MBEDTLS_ECDSA_C) #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_ECDSA_SHA1, "ecdsa-with-SHA1", "ECDSA with SHA1" ), + OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA1, "ecdsa-with-SHA1", "ECDSA with SHA1"), MBEDTLS_MD_SHA1, MBEDTLS_PK_ECDSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_ECDSA_SHA224, "ecdsa-with-SHA224", "ECDSA with SHA224" ), + OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA224, "ecdsa-with-SHA224", "ECDSA with SHA224"), MBEDTLS_MD_SHA224, MBEDTLS_PK_ECDSA, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_ECDSA_SHA256, "ecdsa-with-SHA256", "ECDSA with SHA256" ), + OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA256, "ecdsa-with-SHA256", "ECDSA with SHA256"), MBEDTLS_MD_SHA256, MBEDTLS_PK_ECDSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_ECDSA_SHA384, "ecdsa-with-SHA384", "ECDSA with SHA384" ), + OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA384, "ecdsa-with-SHA384", "ECDSA with SHA384"), MBEDTLS_MD_SHA384, MBEDTLS_PK_ECDSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_ECDSA_SHA512, "ecdsa-with-SHA512", "ECDSA with SHA512" ), + OID_DESCRIPTOR(MBEDTLS_OID_ECDSA_SHA512, "ecdsa-with-SHA512", "ECDSA with SHA512"), MBEDTLS_MD_SHA512, MBEDTLS_PK_ECDSA, }, #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA */ #endif /* MBEDTLS_ECDSA_C */ #if defined(MBEDTLS_RSA_C) { - OID_DESCRIPTOR( MBEDTLS_OID_RSASSA_PSS, "RSASSA-PSS", "RSASSA-PSS" ), + OID_DESCRIPTOR(MBEDTLS_OID_RSASSA_PSS, "RSASSA-PSS", "RSASSA-PSS"), MBEDTLS_MD_NONE, MBEDTLS_PK_RSASSA_PSS, }, #endif /* MBEDTLS_RSA_C */ @@ -427,11 +474,27 @@ static const oid_sig_alg_t oid_sig_alg[] = FN_OID_TYPED_FROM_ASN1(oid_sig_alg_t, sig_alg, oid_sig_alg) #if !defined(MBEDTLS_X509_REMOVE_INFO) -FN_OID_GET_DESCRIPTOR_ATTR1(mbedtls_oid_get_sig_alg_desc, oid_sig_alg_t, sig_alg, const char *, description) +FN_OID_GET_DESCRIPTOR_ATTR1(mbedtls_oid_get_sig_alg_desc, + oid_sig_alg_t, + sig_alg, + const char *, + description) #endif -FN_OID_GET_ATTR2(mbedtls_oid_get_sig_alg, oid_sig_alg_t, sig_alg, mbedtls_md_type_t, md_alg, mbedtls_pk_type_t, pk_alg) -FN_OID_GET_OID_BY_ATTR2(mbedtls_oid_get_oid_by_sig_alg, oid_sig_alg_t, oid_sig_alg, mbedtls_pk_type_t, pk_alg, mbedtls_md_type_t, md_alg) +FN_OID_GET_ATTR2(mbedtls_oid_get_sig_alg, + oid_sig_alg_t, + sig_alg, + mbedtls_md_type_t, + md_alg, + mbedtls_pk_type_t, + pk_alg) +FN_OID_GET_OID_BY_ATTR2(mbedtls_oid_get_oid_by_sig_alg, + oid_sig_alg_t, + oid_sig_alg, + mbedtls_pk_type_t, + pk_alg, + mbedtls_md_type_t, + md_alg) /* * For PublicKeyInfo (PKCS1, RFC 5480) @@ -444,15 +507,15 @@ typedef struct { static const oid_pk_alg_t oid_pk_alg[] = { { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS1_RSA, "rsaEncryption", "RSA" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS1_RSA, "rsaEncryption", "RSA"), MBEDTLS_PK_RSA, }, { - OID_DESCRIPTOR( MBEDTLS_OID_EC_ALG_UNRESTRICTED, "id-ecPublicKey", "Generic EC key" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_UNRESTRICTED, "id-ecPublicKey", "Generic EC key"), MBEDTLS_PK_ECKEY, }, { - OID_DESCRIPTOR( MBEDTLS_OID_EC_ALG_ECDH, "id-ecDH", "EC key for ECDH" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_ALG_ECDH, "id-ecDH", "EC key for ECDH"), MBEDTLS_PK_ECKEY_DH, }, { @@ -463,7 +526,11 @@ static const oid_pk_alg_t oid_pk_alg[] = FN_OID_TYPED_FROM_ASN1(oid_pk_alg_t, pk_alg, oid_pk_alg) FN_OID_GET_ATTR1(mbedtls_oid_get_pk_alg, oid_pk_alg_t, pk_alg, mbedtls_pk_type_t, pk_alg) -FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg, oid_pk_alg_t, oid_pk_alg, mbedtls_pk_type_t, pk_alg) +FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_pk_alg, + oid_pk_alg_t, + oid_pk_alg, + mbedtls_pk_type_t, + pk_alg) #if defined(MBEDTLS_ECP_C) /* @@ -478,67 +545,67 @@ static const oid_ecp_grp_t oid_ecp_grp[] = { #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP192R1, "secp192r1", "secp192r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192R1, "secp192r1", "secp192r1"), MBEDTLS_ECP_DP_SECP192R1, }, #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP224R1, "secp224r1", "secp224r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224R1, "secp224r1", "secp224r1"), MBEDTLS_ECP_DP_SECP224R1, }, #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP256R1, "secp256r1", "secp256r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256R1, "secp256r1", "secp256r1"), MBEDTLS_ECP_DP_SECP256R1, }, #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP384R1, "secp384r1", "secp384r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP384R1, "secp384r1", "secp384r1"), MBEDTLS_ECP_DP_SECP384R1, }, #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP521R1, "secp521r1", "secp521r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP521R1, "secp521r1", "secp521r1"), MBEDTLS_ECP_DP_SECP521R1, }, #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP192K1, "secp192k1", "secp192k1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP192K1, "secp192k1", "secp192k1"), MBEDTLS_ECP_DP_SECP192K1, }, #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP224K1, "secp224k1", "secp224k1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP224K1, "secp224k1", "secp224k1"), MBEDTLS_ECP_DP_SECP224K1, }, #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_SECP256K1, "secp256k1", "secp256k1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_SECP256K1, "secp256k1", "secp256k1"), MBEDTLS_ECP_DP_SECP256K1, }, #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_BP256R1, "brainpoolP256r1","brainpool256r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP256R1, "brainpoolP256r1", "brainpool256r1"), MBEDTLS_ECP_DP_BP256R1, }, #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_BP384R1, "brainpoolP384r1","brainpool384r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP384R1, "brainpoolP384r1", "brainpool384r1"), MBEDTLS_ECP_DP_BP384R1, }, #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) { - OID_DESCRIPTOR( MBEDTLS_OID_EC_GRP_BP512R1, "brainpoolP512r1","brainpool512r1" ), + OID_DESCRIPTOR(MBEDTLS_OID_EC_GRP_BP512R1, "brainpoolP512r1", "brainpool512r1"), MBEDTLS_ECP_DP_BP512R1, }, #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ @@ -550,7 +617,11 @@ static const oid_ecp_grp_t oid_ecp_grp[] = FN_OID_TYPED_FROM_ASN1(oid_ecp_grp_t, grp_id, oid_ecp_grp) FN_OID_GET_ATTR1(mbedtls_oid_get_ec_grp, oid_ecp_grp_t, grp_id, mbedtls_ecp_group_id, grp_id) -FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp, oid_ecp_grp_t, oid_ecp_grp, mbedtls_ecp_group_id, grp_id) +FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_ec_grp, + oid_ecp_grp_t, + oid_ecp_grp, + mbedtls_ecp_group_id, + grp_id) #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_CIPHER_C) @@ -565,11 +636,11 @@ typedef struct { static const oid_cipher_alg_t oid_cipher_alg[] = { { - OID_DESCRIPTOR( MBEDTLS_OID_DES_CBC, "desCBC", "DES-CBC" ), + OID_DESCRIPTOR(MBEDTLS_OID_DES_CBC, "desCBC", "DES-CBC"), MBEDTLS_CIPHER_DES_CBC, }, { - OID_DESCRIPTOR( MBEDTLS_OID_DES_EDE3_CBC, "des-ede3-cbc", "DES-EDE3-CBC" ), + OID_DESCRIPTOR(MBEDTLS_OID_DES_EDE3_CBC, "des-ede3-cbc", "DES-EDE3-CBC"), MBEDTLS_CIPHER_DES_EDE3_CBC, }, { @@ -579,7 +650,11 @@ static const oid_cipher_alg_t oid_cipher_alg[] = }; FN_OID_TYPED_FROM_ASN1(oid_cipher_alg_t, cipher_alg, oid_cipher_alg) -FN_OID_GET_ATTR1(mbedtls_oid_get_cipher_alg, oid_cipher_alg_t, cipher_alg, mbedtls_cipher_type_t, cipher_alg) +FN_OID_GET_ATTR1(mbedtls_oid_get_cipher_alg, + oid_cipher_alg_t, + cipher_alg, + mbedtls_cipher_type_t, + cipher_alg) #endif /* MBEDTLS_CIPHER_C */ /* @@ -594,43 +669,43 @@ static const oid_md_alg_t oid_md_alg[] = { #if defined(MBEDTLS_HAS_ALG_MD5_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_MD5, "id-md5", "MD5" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_MD5, "id-md5", "MD5"), MBEDTLS_MD_MD5, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA1, "id-sha1", "SHA-1" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA1, "id-sha1", "SHA-1"), MBEDTLS_MD_SHA1, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA224, "id-sha224", "SHA-224" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA224, "id-sha224", "SHA-224"), MBEDTLS_MD_SHA224, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA256, "id-sha256", "SHA-256" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA256, "id-sha256", "SHA-256"), MBEDTLS_MD_SHA256, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA384, "id-sha384", "SHA-384" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA384, "id-sha384", "SHA-384"), MBEDTLS_MD_SHA384, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_SHA512, "id-sha512", "SHA-512" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_SHA512, "id-sha512", "SHA-512"), MBEDTLS_MD_SHA512, }, #endif #if defined(MBEDTLS_HAS_ALG_RIPEMD160_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160" ), + OID_DESCRIPTOR(MBEDTLS_OID_DIGEST_ALG_RIPEMD160, "id-ripemd160", "RIPEMD-160"), MBEDTLS_MD_RIPEMD160, }, #endif @@ -642,7 +717,11 @@ static const oid_md_alg_t oid_md_alg[] = FN_OID_TYPED_FROM_ASN1(oid_md_alg_t, md_alg, oid_md_alg) FN_OID_GET_ATTR1(mbedtls_oid_get_md_alg, oid_md_alg_t, md_alg, mbedtls_md_type_t, md_alg) -FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_md, oid_md_alg_t, oid_md_alg, mbedtls_md_type_t, md_alg) +FN_OID_GET_OID_BY_ATTR1(mbedtls_oid_get_oid_by_md, + oid_md_alg_t, + oid_md_alg, + mbedtls_md_type_t, + md_alg) /* * For HMAC digestAlgorithm @@ -656,31 +735,31 @@ static const oid_md_hmac_t oid_md_hmac[] = { #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_HMAC_SHA1, "hmacSHA1", "HMAC-SHA-1" ), + OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA1, "hmacSHA1", "HMAC-SHA-1"), MBEDTLS_MD_SHA1, }, #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_HMAC_SHA224, "hmacSHA224", "HMAC-SHA-224" ), + OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA224, "hmacSHA224", "HMAC-SHA-224"), MBEDTLS_MD_SHA224, }, #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_HMAC_SHA256, "hmacSHA256", "HMAC-SHA-256" ), + OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA256, "hmacSHA256", "HMAC-SHA-256"), MBEDTLS_MD_SHA256, }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_HMAC_SHA384, "hmacSHA384", "HMAC-SHA-384" ), + OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA384, "hmacSHA384", "HMAC-SHA-384"), MBEDTLS_MD_SHA384, }, #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_LOWLEVEL_OR_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA) { - OID_DESCRIPTOR( MBEDTLS_OID_HMAC_SHA512, "hmacSHA512", "HMAC-SHA-512" ), + OID_DESCRIPTOR(MBEDTLS_OID_HMAC_SHA512, "hmacSHA512", "HMAC-SHA-512"), MBEDTLS_MD_SHA512, }, #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_LOWLEVEL_OR_PSA */ @@ -706,11 +785,15 @@ typedef struct { static const oid_pkcs12_pbe_alg_t oid_pkcs12_pbe_alg[] = { { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC, "pbeWithSHAAnd3-KeyTripleDES-CBC", "PBE with SHA1 and 3-Key 3DES" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES3_EDE_CBC, + "pbeWithSHAAnd3-KeyTripleDES-CBC", + "PBE with SHA1 and 3-Key 3DES"), MBEDTLS_MD_SHA1, MBEDTLS_CIPHER_DES_EDE3_CBC, }, { - OID_DESCRIPTOR( MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC, "pbeWithSHAAnd2-KeyTripleDES-CBC", "PBE with SHA1 and 2-Key 3DES" ), + OID_DESCRIPTOR(MBEDTLS_OID_PKCS12_PBE_SHA1_DES2_EDE_CBC, + "pbeWithSHAAnd2-KeyTripleDES-CBC", + "PBE with SHA1 and 2-Key 3DES"), MBEDTLS_MD_SHA1, MBEDTLS_CIPHER_DES_EDE_CBC, }, { @@ -720,21 +803,27 @@ static const oid_pkcs12_pbe_alg_t oid_pkcs12_pbe_alg[] = }; FN_OID_TYPED_FROM_ASN1(oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, oid_pkcs12_pbe_alg) -FN_OID_GET_ATTR2(mbedtls_oid_get_pkcs12_pbe_alg, oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, mbedtls_md_type_t, md_alg, mbedtls_cipher_type_t, cipher_alg) +FN_OID_GET_ATTR2(mbedtls_oid_get_pkcs12_pbe_alg, + oid_pkcs12_pbe_alg_t, + pkcs12_pbe_alg, + mbedtls_md_type_t, + md_alg, + mbedtls_cipher_type_t, + cipher_alg) #endif /* MBEDTLS_PKCS12_C */ #define OID_SAFE_SNPRINTF \ do { \ - if( ret < 0 || (size_t) ret >= n ) \ - return( MBEDTLS_ERR_OID_BUF_TOO_SMALL ); \ - \ + if (ret < 0 || (size_t) ret >= n) \ + return MBEDTLS_ERR_OID_BUF_TOO_SMALL; \ + \ n -= (size_t) ret; \ p += (size_t) ret; \ - } while( 0 ) + } while (0) /* Return the x.y.z.... style numeric string for the given OID */ -int mbedtls_oid_get_numeric_string( char *buf, size_t size, - const mbedtls_asn1_buf *oid ) +int mbedtls_oid_get_numeric_string(char *buf, size_t size, + const mbedtls_asn1_buf *oid) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, n; @@ -745,32 +834,30 @@ int mbedtls_oid_get_numeric_string( char *buf, size_t size, n = size; /* First byte contains first two dots */ - if( oid->len > 0 ) - { - ret = mbedtls_snprintf( p, n, "%d.%d", oid->p[0] / 40, oid->p[0] % 40 ); + if (oid->len > 0) { + ret = mbedtls_snprintf(p, n, "%d.%d", oid->p[0] / 40, oid->p[0] % 40); OID_SAFE_SNPRINTF; } value = 0; - for( i = 1; i < oid->len; i++ ) - { + for (i = 1; i < oid->len; i++) { /* Prevent overflow in value. */ - if( ( ( value << 7 ) >> 7 ) != value ) - return( MBEDTLS_ERR_OID_BUF_TOO_SMALL ); + if (((value << 7) >> 7) != value) { + return MBEDTLS_ERR_OID_BUF_TOO_SMALL; + } value <<= 7; value += oid->p[i] & 0x7F; - if( !( oid->p[i] & 0x80 ) ) - { + if (!(oid->p[i] & 0x80)) { /* Last byte */ - ret = mbedtls_snprintf( p, n, ".%u", value ); + ret = mbedtls_snprintf(p, n, ".%u", value); OID_SAFE_SNPRINTF; value = 0; } } - return( (int) ( size - n ) ); + return (int) (size - n); } #endif /* MBEDTLS_OID_C */ diff --git a/library/padlock.c b/library/padlock.c index 81bea1f8c..b6c6919cd 100644 --- a/library/padlock.c +++ b/library/padlock.c @@ -42,14 +42,13 @@ /* * PadLock detection routine */ -int mbedtls_padlock_has_support( int feature ) +int mbedtls_padlock_has_support(int feature) { static int flags = -1; int ebx = 0, edx = 0; - if( flags == -1 ) - { - asm( "movl %%ebx, %0 \n\t" + if (flags == -1) { + asm ("movl %%ebx, %0 \n\t" "movl $0xC0000000, %%eax \n\t" "cpuid \n\t" "cmpl $0xC0000001, %%eax \n\t" @@ -62,21 +61,21 @@ int mbedtls_padlock_has_support( int feature ) "movl %2, %%ebx \n\t" : "=m" (ebx), "=m" (edx) : "m" (ebx) - : "eax", "ecx", "edx" ); + : "eax", "ecx", "edx"); flags = edx; } - return( flags & feature ); + return flags & feature; } /* * PadLock AES-ECB block en(de)cryption */ -int mbedtls_padlock_xcryptecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ) +int mbedtls_padlock_xcryptecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]) { int ebx = 0; uint32_t *rk; @@ -86,16 +85,17 @@ int mbedtls_padlock_xcryptecb( mbedtls_aes_context *ctx, rk = ctx->buf + ctx->rk_offset; - if( ( (long) rk & 15 ) != 0 ) - return( MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED ); + if (((long) rk & 15) != 0) { + return MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED; + } - blk = MBEDTLS_PADLOCK_ALIGN16( buf ); - memcpy( blk, input, 16 ); + blk = MBEDTLS_PADLOCK_ALIGN16(buf); + memcpy(blk, input, 16); - ctrl = blk + 4; - *ctrl = 0x80 | ctx->nr | ( ( ctx->nr + ( mode^1 ) - 10 ) << 9 ); + ctrl = blk + 4; + *ctrl = 0x80 | ctx->nr | ((ctx->nr + (mode^1) - 10) << 9); - asm( "pushfl \n\t" + asm ("pushfl \n\t" "popfl \n\t" "movl %%ebx, %0 \n\t" "movl $1, %%ecx \n\t" @@ -107,22 +107,22 @@ int mbedtls_padlock_xcryptecb( mbedtls_aes_context *ctx, "movl %1, %%ebx \n\t" : "=m" (ebx) : "m" (ebx), "m" (ctrl), "m" (rk), "m" (blk) - : "memory", "ecx", "edx", "esi", "edi" ); + : "memory", "ecx", "edx", "esi", "edi"); - memcpy( output, blk, 16 ); + memcpy(output, blk, 16); - return( 0 ); + return 0; } /* * PadLock AES-CBC buffer en(de)cryption */ -int mbedtls_padlock_xcryptcbc( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ) +int mbedtls_padlock_xcryptcbc(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output) { int ebx = 0; size_t count; @@ -133,20 +133,21 @@ int mbedtls_padlock_xcryptcbc( mbedtls_aes_context *ctx, rk = ctx->buf + ctx->rk_offset; - if( ( (long) input & 15 ) != 0 || - ( (long) output & 15 ) != 0 || - ( (long) rk & 15 ) != 0 ) - return( MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED ); + if (((long) input & 15) != 0 || + ((long) output & 15) != 0 || + ((long) rk & 15) != 0) { + return MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED; + } - iw = MBEDTLS_PADLOCK_ALIGN16( buf ); - memcpy( iw, iv, 16 ); + iw = MBEDTLS_PADLOCK_ALIGN16(buf); + memcpy(iw, iv, 16); - ctrl = iw + 4; - *ctrl = 0x80 | ctx->nr | ( ( ctx->nr + ( mode ^ 1 ) - 10 ) << 9 ); + ctrl = iw + 4; + *ctrl = 0x80 | ctx->nr | ((ctx->nr + (mode ^ 1) - 10) << 9); - count = ( length + 15 ) >> 4; + count = (length + 15) >> 4; - asm( "pushfl \n\t" + asm ("pushfl \n\t" "popfl \n\t" "movl %%ebx, %0 \n\t" "movl %2, %%ecx \n\t" @@ -159,12 +160,12 @@ int mbedtls_padlock_xcryptcbc( mbedtls_aes_context *ctx, "movl %1, %%ebx \n\t" : "=m" (ebx) : "m" (ebx), "m" (count), "m" (ctrl), - "m" (rk), "m" (input), "m" (output), "m" (iw) - : "memory", "eax", "ecx", "edx", "esi", "edi" ); + "m" (rk), "m" (input), "m" (output), "m" (iw) + : "memory", "eax", "ecx", "edx", "esi", "edi"); - memcpy( iv, iw, 16 ); + memcpy(iv, iw, 16); - return( 0 ); + return 0; } #endif /* MBEDTLS_HAVE_X86 */ diff --git a/library/padlock.h b/library/padlock.h index 1506ee0c9..b5f0d7d7a 100644 --- a/library/padlock.h +++ b/library/padlock.h @@ -69,7 +69,7 @@ extern "C" { * * \return non-zero if CPU has support for the feature, 0 otherwise */ -int mbedtls_padlock_has_support( int feature ); +int mbedtls_padlock_has_support(int feature); /** * \brief Internal PadLock AES-ECB block en(de)cryption @@ -84,10 +84,10 @@ int mbedtls_padlock_has_support( int feature ); * * \return 0 if success, 1 if operation failed */ -int mbedtls_padlock_xcryptecb( mbedtls_aes_context *ctx, - int mode, - const unsigned char input[16], - unsigned char output[16] ); +int mbedtls_padlock_xcryptecb(mbedtls_aes_context *ctx, + int mode, + const unsigned char input[16], + unsigned char output[16]); /** * \brief Internal PadLock AES-CBC buffer en(de)cryption @@ -104,12 +104,12 @@ int mbedtls_padlock_xcryptecb( mbedtls_aes_context *ctx, * * \return 0 if success, 1 if operation failed */ -int mbedtls_padlock_xcryptcbc( mbedtls_aes_context *ctx, - int mode, - size_t length, - unsigned char iv[16], - const unsigned char *input, - unsigned char *output ); +int mbedtls_padlock_xcryptcbc(mbedtls_aes_context *ctx, + int mode, + size_t length, + unsigned char iv[16], + const unsigned char *input, + unsigned char *output); #ifdef __cplusplus } diff --git a/library/pem.c b/library/pem.c index e8abba13c..8044ed644 100644 --- a/library/pem.c +++ b/library/pem.c @@ -43,106 +43,121 @@ #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C) ) + (defined(MBEDTLS_DES_C) || defined(MBEDTLS_AES_C)) #define PEM_RFC1421 #endif /* MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_CIPHER_MODE_CBC && ( MBEDTLS_AES_C || MBEDTLS_DES_C ) */ #if defined(MBEDTLS_PEM_PARSE_C) -void mbedtls_pem_init( mbedtls_pem_context *ctx ) +void mbedtls_pem_init(mbedtls_pem_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_pem_context ) ); + memset(ctx, 0, sizeof(mbedtls_pem_context)); } #if defined(PEM_RFC1421) /* * Read a 16-byte hex string and convert it to binary */ -static int pem_get_iv( const unsigned char *s, unsigned char *iv, - size_t iv_len ) +static int pem_get_iv(const unsigned char *s, unsigned char *iv, + size_t iv_len) { size_t i, j, k; - memset( iv, 0, iv_len ); + memset(iv, 0, iv_len); - for( i = 0; i < iv_len * 2; i++, s++ ) - { - if( *s >= '0' && *s <= '9' ) j = *s - '0'; else - if( *s >= 'A' && *s <= 'F' ) j = *s - '7'; else - if( *s >= 'a' && *s <= 'f' ) j = *s - 'W'; else - return( MBEDTLS_ERR_PEM_INVALID_ENC_IV ); + for (i = 0; i < iv_len * 2; i++, s++) { + if (*s >= '0' && *s <= '9') { + j = *s - '0'; + } else + if (*s >= 'A' && *s <= 'F') { + j = *s - '7'; + } else + if (*s >= 'a' && *s <= 'f') { + j = *s - 'W'; + } else { + return MBEDTLS_ERR_PEM_INVALID_ENC_IV; + } - k = ( ( i & 1 ) != 0 ) ? j : j << 4; + k = ((i & 1) != 0) ? j : j << 4; - iv[i >> 1] = (unsigned char)( iv[i >> 1] | k ); + iv[i >> 1] = (unsigned char) (iv[i >> 1] | k); } - return( 0 ); + return 0; } #if defined(MBEDTLS_MD5_C) -static int pem_pbkdf1( unsigned char *key, size_t keylen, - unsigned char *iv, - const unsigned char *pwd, size_t pwdlen ) +static int pem_pbkdf1(unsigned char *key, size_t keylen, + unsigned char *iv, + const unsigned char *pwd, size_t pwdlen) { mbedtls_md5_context md5_ctx; unsigned char md5sum[16]; size_t use_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md5_init( &md5_ctx ); + mbedtls_md5_init(&md5_ctx); /* * key[ 0..15] = MD5(pwd || IV) */ - if( ( ret = mbedtls_md5_starts( &md5_ctx ) ) != 0 ) + if ((ret = mbedtls_md5_starts(&md5_ctx)) != 0) { goto exit; - if( ( ret = mbedtls_md5_update( &md5_ctx, pwd, pwdlen ) ) != 0 ) + } + if ((ret = mbedtls_md5_update(&md5_ctx, pwd, pwdlen)) != 0) { goto exit; - if( ( ret = mbedtls_md5_update( &md5_ctx, iv, 8 ) ) != 0 ) + } + if ((ret = mbedtls_md5_update(&md5_ctx, iv, 8)) != 0) { goto exit; - if( ( ret = mbedtls_md5_finish( &md5_ctx, md5sum ) ) != 0 ) - goto exit; - - if( keylen <= 16 ) - { - memcpy( key, md5sum, keylen ); + } + if ((ret = mbedtls_md5_finish(&md5_ctx, md5sum)) != 0) { goto exit; } - memcpy( key, md5sum, 16 ); + if (keylen <= 16) { + memcpy(key, md5sum, keylen); + goto exit; + } + + memcpy(key, md5sum, 16); /* * key[16..23] = MD5(key[ 0..15] || pwd || IV]) */ - if( ( ret = mbedtls_md5_starts( &md5_ctx ) ) != 0 ) + if ((ret = mbedtls_md5_starts(&md5_ctx)) != 0) { goto exit; - if( ( ret = mbedtls_md5_update( &md5_ctx, md5sum, 16 ) ) != 0 ) + } + if ((ret = mbedtls_md5_update(&md5_ctx, md5sum, 16)) != 0) { goto exit; - if( ( ret = mbedtls_md5_update( &md5_ctx, pwd, pwdlen ) ) != 0 ) + } + if ((ret = mbedtls_md5_update(&md5_ctx, pwd, pwdlen)) != 0) { goto exit; - if( ( ret = mbedtls_md5_update( &md5_ctx, iv, 8 ) ) != 0 ) + } + if ((ret = mbedtls_md5_update(&md5_ctx, iv, 8)) != 0) { goto exit; - if( ( ret = mbedtls_md5_finish( &md5_ctx, md5sum ) ) != 0 ) + } + if ((ret = mbedtls_md5_finish(&md5_ctx, md5sum)) != 0) { goto exit; + } use_len = 16; - if( keylen < 32 ) + if (keylen < 32) { use_len = keylen - 16; + } - memcpy( key + 16, md5sum, use_len ); + memcpy(key + 16, md5sum, use_len); exit: - mbedtls_md5_free( &md5_ctx ); - mbedtls_platform_zeroize( md5sum, 16 ); + mbedtls_md5_free(&md5_ctx); + mbedtls_platform_zeroize(md5sum, 16); - return( ret ); + return ret; } #else -static int pem_pbkdf1( unsigned char *key, size_t keylen, - unsigned char *iv, - const unsigned char *pwd, size_t pwdlen ) +static int pem_pbkdf1(unsigned char *key, size_t keylen, + unsigned char *iv, + const unsigned char *pwd, size_t pwdlen) { unsigned char md5sum[16]; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; @@ -150,71 +165,78 @@ static int pem_pbkdf1( unsigned char *key, size_t keylen, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( ( status = psa_hash_setup( &operation, PSA_ALG_MD5 ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_update( &operation, pwd, pwdlen ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_update( &operation, iv, 8 ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_finish( &operation, md5sum, - PSA_HASH_LENGTH( PSA_ALG_MD5 ), - &output_length ) ) != PSA_SUCCESS ) - { + if ((status = psa_hash_setup(&operation, PSA_ALG_MD5)) != PSA_SUCCESS) { goto exit; } - if( ( status = psa_hash_abort( &operation ) ) != PSA_SUCCESS ) + if ((status = psa_hash_update(&operation, pwd, pwdlen)) != PSA_SUCCESS) { goto exit; + } + + if ((status = psa_hash_update(&operation, iv, 8)) != PSA_SUCCESS) { + goto exit; + } + + if ((status = psa_hash_finish(&operation, md5sum, + PSA_HASH_LENGTH(PSA_ALG_MD5), + &output_length)) != PSA_SUCCESS) { + goto exit; + } + + if ((status = psa_hash_abort(&operation)) != PSA_SUCCESS) { + goto exit; + } /* * key[ 0..15] = MD5(pwd || IV) */ - if( keylen <= 16 ) - { - memcpy( key, md5sum, keylen ); + if (keylen <= 16) { + memcpy(key, md5sum, keylen); goto exit; } - memcpy( key, md5sum, 16 ); + memcpy(key, md5sum, 16); /* * key[16..23] = MD5(key[ 0..15] || pwd || IV]) */ - if( ( status = psa_hash_setup( &operation, PSA_ALG_MD5 ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_update( &operation, md5sum, 16 ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_update( &operation, pwd, pwdlen ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_update( &operation, iv, 8 ) ) != PSA_SUCCESS ) - goto exit; - - if( ( status = psa_hash_finish( &operation, md5sum, - PSA_HASH_LENGTH( PSA_ALG_MD5 ), - &output_length ) ) != PSA_SUCCESS ) - { + if ((status = psa_hash_setup(&operation, PSA_ALG_MD5)) != PSA_SUCCESS) { goto exit; } - if( ( status = psa_hash_abort( &operation ) ) != PSA_SUCCESS ) + if ((status = psa_hash_update(&operation, md5sum, 16)) != PSA_SUCCESS) { goto exit; + } + + if ((status = psa_hash_update(&operation, pwd, pwdlen)) != PSA_SUCCESS) { + goto exit; + } + + if ((status = psa_hash_update(&operation, iv, 8)) != PSA_SUCCESS) { + goto exit; + } + + if ((status = psa_hash_finish(&operation, md5sum, + PSA_HASH_LENGTH(PSA_ALG_MD5), + &output_length)) != PSA_SUCCESS) { + goto exit; + } + + if ((status = psa_hash_abort(&operation)) != PSA_SUCCESS) { + goto exit; + } size_t use_len = 16; - if( keylen < 32 ) + if (keylen < 32) { use_len = keylen - 16; + } - memcpy( key + 16, md5sum, use_len ); + memcpy(key + 16, md5sum, use_len); exit: - mbedtls_platform_zeroize( md5sum, 16 ); + mbedtls_platform_zeroize(md5sum, 16); - return( mbedtls_md_error_from_psa ( status ) ); + return mbedtls_md_error_from_psa(status); } #endif /* MBEDTLS_MD5_C */ @@ -222,57 +244,61 @@ exit: /* * Decrypt with DES-CBC, using PBKDF1 for key derivation */ -static int pem_des_decrypt( unsigned char des_iv[8], - unsigned char *buf, size_t buflen, - const unsigned char *pwd, size_t pwdlen ) +static int pem_des_decrypt(unsigned char des_iv[8], + unsigned char *buf, size_t buflen, + const unsigned char *pwd, size_t pwdlen) { mbedtls_des_context des_ctx; unsigned char des_key[8]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_des_init( &des_ctx ); + mbedtls_des_init(&des_ctx); - if( ( ret = pem_pbkdf1( des_key, 8, des_iv, pwd, pwdlen ) ) != 0 ) + if ((ret = pem_pbkdf1(des_key, 8, des_iv, pwd, pwdlen)) != 0) { goto exit; + } - if( ( ret = mbedtls_des_setkey_dec( &des_ctx, des_key ) ) != 0 ) + if ((ret = mbedtls_des_setkey_dec(&des_ctx, des_key)) != 0) { goto exit; - ret = mbedtls_des_crypt_cbc( &des_ctx, MBEDTLS_DES_DECRYPT, buflen, - des_iv, buf, buf ); + } + ret = mbedtls_des_crypt_cbc(&des_ctx, MBEDTLS_DES_DECRYPT, buflen, + des_iv, buf, buf); exit: - mbedtls_des_free( &des_ctx ); - mbedtls_platform_zeroize( des_key, 8 ); + mbedtls_des_free(&des_ctx); + mbedtls_platform_zeroize(des_key, 8); - return( ret ); + return ret; } /* * Decrypt with 3DES-CBC, using PBKDF1 for key derivation */ -static int pem_des3_decrypt( unsigned char des3_iv[8], - unsigned char *buf, size_t buflen, - const unsigned char *pwd, size_t pwdlen ) +static int pem_des3_decrypt(unsigned char des3_iv[8], + unsigned char *buf, size_t buflen, + const unsigned char *pwd, size_t pwdlen) { mbedtls_des3_context des3_ctx; unsigned char des3_key[24]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_des3_init( &des3_ctx ); + mbedtls_des3_init(&des3_ctx); - if( ( ret = pem_pbkdf1( des3_key, 24, des3_iv, pwd, pwdlen ) ) != 0 ) + if ((ret = pem_pbkdf1(des3_key, 24, des3_iv, pwd, pwdlen)) != 0) { goto exit; + } - if( ( ret = mbedtls_des3_set3key_dec( &des3_ctx, des3_key ) ) != 0 ) + if ((ret = mbedtls_des3_set3key_dec(&des3_ctx, des3_key)) != 0) { goto exit; - ret = mbedtls_des3_crypt_cbc( &des3_ctx, MBEDTLS_DES_DECRYPT, buflen, - des3_iv, buf, buf ); + } + ret = mbedtls_des3_crypt_cbc(&des3_ctx, MBEDTLS_DES_DECRYPT, buflen, + des3_iv, buf, buf); exit: - mbedtls_des3_free( &des3_ctx ); - mbedtls_platform_zeroize( des3_key, 24 ); + mbedtls_des3_free(&des3_ctx); + mbedtls_platform_zeroize(des3_key, 24); - return( ret ); + return ret; } #endif /* MBEDTLS_DES_C */ @@ -280,37 +306,39 @@ exit: /* * Decrypt with AES-XXX-CBC, using PBKDF1 for key derivation */ -static int pem_aes_decrypt( unsigned char aes_iv[16], unsigned int keylen, - unsigned char *buf, size_t buflen, - const unsigned char *pwd, size_t pwdlen ) +static int pem_aes_decrypt(unsigned char aes_iv[16], unsigned int keylen, + unsigned char *buf, size_t buflen, + const unsigned char *pwd, size_t pwdlen) { mbedtls_aes_context aes_ctx; unsigned char aes_key[32]; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_aes_init( &aes_ctx ); + mbedtls_aes_init(&aes_ctx); - if( ( ret = pem_pbkdf1( aes_key, keylen, aes_iv, pwd, pwdlen ) ) != 0 ) + if ((ret = pem_pbkdf1(aes_key, keylen, aes_iv, pwd, pwdlen)) != 0) { goto exit; + } - if( ( ret = mbedtls_aes_setkey_dec( &aes_ctx, aes_key, keylen * 8 ) ) != 0 ) + if ((ret = mbedtls_aes_setkey_dec(&aes_ctx, aes_key, keylen * 8)) != 0) { goto exit; - ret = mbedtls_aes_crypt_cbc( &aes_ctx, MBEDTLS_AES_DECRYPT, buflen, - aes_iv, buf, buf ); + } + ret = mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_DECRYPT, buflen, + aes_iv, buf, buf); exit: - mbedtls_aes_free( &aes_ctx ); - mbedtls_platform_zeroize( aes_key, keylen ); + mbedtls_aes_free(&aes_ctx); + mbedtls_platform_zeroize(aes_key, keylen); - return( ret ); + return ret; } #endif /* MBEDTLS_AES_C */ #endif /* PEM_RFC1421 */ -int mbedtls_pem_read_buffer( mbedtls_pem_context *ctx, const char *header, const char *footer, - const unsigned char *data, const unsigned char *pwd, - size_t pwdlen, size_t *use_len ) +int mbedtls_pem_read_buffer(mbedtls_pem_context *ctx, const char *header, const char *footer, + const unsigned char *data, const unsigned char *pwd, + size_t pwdlen, size_t *use_len) { int ret, enc; size_t len; @@ -324,151 +352,178 @@ int mbedtls_pem_read_buffer( mbedtls_pem_context *ctx, const char *header, const ((void) pwdlen); #endif /* PEM_RFC1421 */ - if( ctx == NULL ) - return( MBEDTLS_ERR_PEM_BAD_INPUT_DATA ); + if (ctx == NULL) { + return MBEDTLS_ERR_PEM_BAD_INPUT_DATA; + } - s1 = (unsigned char *) strstr( (const char *) data, header ); + s1 = (unsigned char *) strstr((const char *) data, header); - if( s1 == NULL ) - return( MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ); + if (s1 == NULL) { + return MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; + } - s2 = (unsigned char *) strstr( (const char *) data, footer ); + s2 = (unsigned char *) strstr((const char *) data, footer); - if( s2 == NULL || s2 <= s1 ) - return( MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ); + if (s2 == NULL || s2 <= s1) { + return MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; + } - s1 += strlen( header ); - if( *s1 == ' ' ) s1++; - if( *s1 == '\r' ) s1++; - if( *s1 == '\n' ) s1++; - else return( MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ); + s1 += strlen(header); + if (*s1 == ' ') { + s1++; + } + if (*s1 == '\r') { + s1++; + } + if (*s1 == '\n') { + s1++; + } else { + return MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; + } end = s2; - end += strlen( footer ); - if( *end == ' ' ) end++; - if( *end == '\r' ) end++; - if( *end == '\n' ) end++; + end += strlen(footer); + if (*end == ' ') { + end++; + } + if (*end == '\r') { + end++; + } + if (*end == '\n') { + end++; + } *use_len = end - data; enc = 0; - if( s2 - s1 >= 22 && memcmp( s1, "Proc-Type: 4,ENCRYPTED", 22 ) == 0 ) - { + if (s2 - s1 >= 22 && memcmp(s1, "Proc-Type: 4,ENCRYPTED", 22) == 0) { #if defined(PEM_RFC1421) enc++; s1 += 22; - if( *s1 == '\r' ) s1++; - if( *s1 == '\n' ) s1++; - else return( MBEDTLS_ERR_PEM_INVALID_DATA ); + if (*s1 == '\r') { + s1++; + } + if (*s1 == '\n') { + s1++; + } else { + return MBEDTLS_ERR_PEM_INVALID_DATA; + } #if defined(MBEDTLS_DES_C) - if( s2 - s1 >= 23 && memcmp( s1, "DEK-Info: DES-EDE3-CBC,", 23 ) == 0 ) - { + if (s2 - s1 >= 23 && memcmp(s1, "DEK-Info: DES-EDE3-CBC,", 23) == 0) { enc_alg = MBEDTLS_CIPHER_DES_EDE3_CBC; s1 += 23; - if( s2 - s1 < 16 || pem_get_iv( s1, pem_iv, 8 ) != 0 ) - return( MBEDTLS_ERR_PEM_INVALID_ENC_IV ); + if (s2 - s1 < 16 || pem_get_iv(s1, pem_iv, 8) != 0) { + return MBEDTLS_ERR_PEM_INVALID_ENC_IV; + } s1 += 16; - } - else if( s2 - s1 >= 18 && memcmp( s1, "DEK-Info: DES-CBC,", 18 ) == 0 ) - { + } else if (s2 - s1 >= 18 && memcmp(s1, "DEK-Info: DES-CBC,", 18) == 0) { enc_alg = MBEDTLS_CIPHER_DES_CBC; s1 += 18; - if( s2 - s1 < 16 || pem_get_iv( s1, pem_iv, 8) != 0 ) - return( MBEDTLS_ERR_PEM_INVALID_ENC_IV ); + if (s2 - s1 < 16 || pem_get_iv(s1, pem_iv, 8) != 0) { + return MBEDTLS_ERR_PEM_INVALID_ENC_IV; + } s1 += 16; } #endif /* MBEDTLS_DES_C */ #if defined(MBEDTLS_AES_C) - if( s2 - s1 >= 14 && memcmp( s1, "DEK-Info: AES-", 14 ) == 0 ) - { - if( s2 - s1 < 22 ) - return( MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG ); - else if( memcmp( s1, "DEK-Info: AES-128-CBC,", 22 ) == 0 ) + if (s2 - s1 >= 14 && memcmp(s1, "DEK-Info: AES-", 14) == 0) { + if (s2 - s1 < 22) { + return MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG; + } else if (memcmp(s1, "DEK-Info: AES-128-CBC,", 22) == 0) { enc_alg = MBEDTLS_CIPHER_AES_128_CBC; - else if( memcmp( s1, "DEK-Info: AES-192-CBC,", 22 ) == 0 ) + } else if (memcmp(s1, "DEK-Info: AES-192-CBC,", 22) == 0) { enc_alg = MBEDTLS_CIPHER_AES_192_CBC; - else if( memcmp( s1, "DEK-Info: AES-256-CBC,", 22 ) == 0 ) + } else if (memcmp(s1, "DEK-Info: AES-256-CBC,", 22) == 0) { enc_alg = MBEDTLS_CIPHER_AES_256_CBC; - else - return( MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG ); + } else { + return MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG; + } s1 += 22; - if( s2 - s1 < 32 || pem_get_iv( s1, pem_iv, 16 ) != 0 ) - return( MBEDTLS_ERR_PEM_INVALID_ENC_IV ); + if (s2 - s1 < 32 || pem_get_iv(s1, pem_iv, 16) != 0) { + return MBEDTLS_ERR_PEM_INVALID_ENC_IV; + } s1 += 32; } #endif /* MBEDTLS_AES_C */ - if( enc_alg == MBEDTLS_CIPHER_NONE ) - return( MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG ); + if (enc_alg == MBEDTLS_CIPHER_NONE) { + return MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG; + } - if( *s1 == '\r' ) s1++; - if( *s1 == '\n' ) s1++; - else return( MBEDTLS_ERR_PEM_INVALID_DATA ); + if (*s1 == '\r') { + s1++; + } + if (*s1 == '\n') { + s1++; + } else { + return MBEDTLS_ERR_PEM_INVALID_DATA; + } #else - return( MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE; #endif /* PEM_RFC1421 */ } - if( s1 >= s2 ) - return( MBEDTLS_ERR_PEM_INVALID_DATA ); - - ret = mbedtls_base64_decode( NULL, 0, &len, s1, s2 - s1 ); - - if( ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PEM_INVALID_DATA, ret ) ); - - if( ( buf = mbedtls_calloc( 1, len ) ) == NULL ) - return( MBEDTLS_ERR_PEM_ALLOC_FAILED ); - - if( ( ret = mbedtls_base64_decode( buf, len, &len, s1, s2 - s1 ) ) != 0 ) - { - mbedtls_platform_zeroize( buf, len ); - mbedtls_free( buf ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PEM_INVALID_DATA, ret ) ); + if (s1 >= s2) { + return MBEDTLS_ERR_PEM_INVALID_DATA; } - if( enc != 0 ) - { + ret = mbedtls_base64_decode(NULL, 0, &len, s1, s2 - s1); + + if (ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PEM_INVALID_DATA, ret); + } + + if ((buf = mbedtls_calloc(1, len)) == NULL) { + return MBEDTLS_ERR_PEM_ALLOC_FAILED; + } + + if ((ret = mbedtls_base64_decode(buf, len, &len, s1, s2 - s1)) != 0) { + mbedtls_platform_zeroize(buf, len); + mbedtls_free(buf); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PEM_INVALID_DATA, ret); + } + + if (enc != 0) { #if defined(PEM_RFC1421) - if( pwd == NULL ) - { - mbedtls_platform_zeroize( buf, len ); - mbedtls_free( buf ); - return( MBEDTLS_ERR_PEM_PASSWORD_REQUIRED ); + if (pwd == NULL) { + mbedtls_platform_zeroize(buf, len); + mbedtls_free(buf); + return MBEDTLS_ERR_PEM_PASSWORD_REQUIRED; } ret = 0; #if defined(MBEDTLS_DES_C) - if( enc_alg == MBEDTLS_CIPHER_DES_EDE3_CBC ) - ret = pem_des3_decrypt( pem_iv, buf, len, pwd, pwdlen ); - else if( enc_alg == MBEDTLS_CIPHER_DES_CBC ) - ret = pem_des_decrypt( pem_iv, buf, len, pwd, pwdlen ); + if (enc_alg == MBEDTLS_CIPHER_DES_EDE3_CBC) { + ret = pem_des3_decrypt(pem_iv, buf, len, pwd, pwdlen); + } else if (enc_alg == MBEDTLS_CIPHER_DES_CBC) { + ret = pem_des_decrypt(pem_iv, buf, len, pwd, pwdlen); + } #endif /* MBEDTLS_DES_C */ #if defined(MBEDTLS_AES_C) - if( enc_alg == MBEDTLS_CIPHER_AES_128_CBC ) - ret = pem_aes_decrypt( pem_iv, 16, buf, len, pwd, pwdlen ); - else if( enc_alg == MBEDTLS_CIPHER_AES_192_CBC ) - ret = pem_aes_decrypt( pem_iv, 24, buf, len, pwd, pwdlen ); - else if( enc_alg == MBEDTLS_CIPHER_AES_256_CBC ) - ret = pem_aes_decrypt( pem_iv, 32, buf, len, pwd, pwdlen ); + if (enc_alg == MBEDTLS_CIPHER_AES_128_CBC) { + ret = pem_aes_decrypt(pem_iv, 16, buf, len, pwd, pwdlen); + } else if (enc_alg == MBEDTLS_CIPHER_AES_192_CBC) { + ret = pem_aes_decrypt(pem_iv, 24, buf, len, pwd, pwdlen); + } else if (enc_alg == MBEDTLS_CIPHER_AES_256_CBC) { + ret = pem_aes_decrypt(pem_iv, 32, buf, len, pwd, pwdlen); + } #endif /* MBEDTLS_AES_C */ - if( ret != 0 ) - { - mbedtls_free( buf ); - return( ret ); + if (ret != 0) { + mbedtls_free(buf); + return ret; } /* @@ -477,93 +532,88 @@ int mbedtls_pem_read_buffer( mbedtls_pem_context *ctx, const char *header, const * * Use that as a heuristic to try to detect password mismatches. */ - if( len <= 2 || buf[0] != 0x30 || buf[1] > 0x83 ) - { - mbedtls_platform_zeroize( buf, len ); - mbedtls_free( buf ); - return( MBEDTLS_ERR_PEM_PASSWORD_MISMATCH ); + if (len <= 2 || buf[0] != 0x30 || buf[1] > 0x83) { + mbedtls_platform_zeroize(buf, len); + mbedtls_free(buf); + return MBEDTLS_ERR_PEM_PASSWORD_MISMATCH; } #else - mbedtls_platform_zeroize( buf, len ); - mbedtls_free( buf ); - return( MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE ); + mbedtls_platform_zeroize(buf, len); + mbedtls_free(buf); + return MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE; #endif /* PEM_RFC1421 */ } ctx->buf = buf; ctx->buflen = len; - return( 0 ); + return 0; } -void mbedtls_pem_free( mbedtls_pem_context *ctx ) +void mbedtls_pem_free(mbedtls_pem_context *ctx) { - if ( ctx->buf != NULL ) - { - mbedtls_platform_zeroize( ctx->buf, ctx->buflen ); - mbedtls_free( ctx->buf ); + if (ctx->buf != NULL) { + mbedtls_platform_zeroize(ctx->buf, ctx->buflen); + mbedtls_free(ctx->buf); } - mbedtls_free( ctx->info ); + mbedtls_free(ctx->info); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_pem_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_pem_context)); } #endif /* MBEDTLS_PEM_PARSE_C */ #if defined(MBEDTLS_PEM_WRITE_C) -int mbedtls_pem_write_buffer( const char *header, const char *footer, - const unsigned char *der_data, size_t der_len, - unsigned char *buf, size_t buf_len, size_t *olen ) +int mbedtls_pem_write_buffer(const char *header, const char *footer, + const unsigned char *der_data, size_t der_len, + unsigned char *buf, size_t buf_len, size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *encode_buf = NULL, *c, *p = buf; size_t len = 0, use_len, add_len = 0; - mbedtls_base64_encode( NULL, 0, &use_len, der_data, der_len ); - add_len = strlen( header ) + strlen( footer ) + ( use_len / 64 ) + 1; + mbedtls_base64_encode(NULL, 0, &use_len, der_data, der_len); + add_len = strlen(header) + strlen(footer) + (use_len / 64) + 1; - if( use_len + add_len > buf_len ) - { + if (use_len + add_len > buf_len) { *olen = use_len + add_len; - return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL; } - if( use_len != 0 && - ( ( encode_buf = mbedtls_calloc( 1, use_len ) ) == NULL ) ) - return( MBEDTLS_ERR_PEM_ALLOC_FAILED ); - - if( ( ret = mbedtls_base64_encode( encode_buf, use_len, &use_len, der_data, - der_len ) ) != 0 ) - { - mbedtls_free( encode_buf ); - return( ret ); + if (use_len != 0 && + ((encode_buf = mbedtls_calloc(1, use_len)) == NULL)) { + return MBEDTLS_ERR_PEM_ALLOC_FAILED; } - memcpy( p, header, strlen( header ) ); - p += strlen( header ); + if ((ret = mbedtls_base64_encode(encode_buf, use_len, &use_len, der_data, + der_len)) != 0) { + mbedtls_free(encode_buf); + return ret; + } + + memcpy(p, header, strlen(header)); + p += strlen(header); c = encode_buf; - while( use_len ) - { - len = ( use_len > 64 ) ? 64 : use_len; - memcpy( p, c, len ); + while (use_len) { + len = (use_len > 64) ? 64 : use_len; + memcpy(p, c, len); use_len -= len; p += len; c += len; *p++ = '\n'; } - memcpy( p, footer, strlen( footer ) ); - p += strlen( footer ); + memcpy(p, footer, strlen(footer)); + p += strlen(footer); *p++ = '\0'; *olen = p - buf; - /* Clean any remaining data previously written to the buffer */ - memset( buf + *olen, 0, buf_len - *olen ); + /* Clean any remaining data previously written to the buffer */ + memset(buf + *olen, 0, buf_len - *olen); - mbedtls_free( encode_buf ); - return( 0 ); + mbedtls_free(encode_buf); + return 0; } #endif /* MBEDTLS_PEM_WRITE_C */ #endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */ - diff --git a/library/pk.c b/library/pk.c index a73fa56f5..b01694ca0 100644 --- a/library/pk.c +++ b/library/pk.c @@ -49,7 +49,7 @@ /* * Initialise a mbedtls_pk_context */ -void mbedtls_pk_init( mbedtls_pk_context *ctx ) +void mbedtls_pk_init(mbedtls_pk_context *ctx) { ctx->pk_info = NULL; ctx->pk_ctx = NULL; @@ -58,22 +58,24 @@ void mbedtls_pk_init( mbedtls_pk_context *ctx ) /* * Free (the components of) a mbedtls_pk_context */ -void mbedtls_pk_free( mbedtls_pk_context *ctx ) +void mbedtls_pk_free(mbedtls_pk_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - if ( ctx->pk_info != NULL ) - ctx->pk_info->ctx_free_func( ctx->pk_ctx ); + if (ctx->pk_info != NULL) { + ctx->pk_info->ctx_free_func(ctx->pk_ctx); + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_pk_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_pk_context)); } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* * Initialize a restart context */ -void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx ) +void mbedtls_pk_restart_init(mbedtls_pk_restart_ctx *ctx) { ctx->pk_info = NULL; ctx->rs_ctx = NULL; @@ -82,15 +84,14 @@ void mbedtls_pk_restart_init( mbedtls_pk_restart_ctx *ctx ) /* * Free the components of a restart context */ -void mbedtls_pk_restart_free( mbedtls_pk_restart_ctx *ctx ) +void mbedtls_pk_restart_free(mbedtls_pk_restart_ctx *ctx) { - if( ctx == NULL || ctx->pk_info == NULL || - ctx->pk_info->rs_free_func == NULL ) - { + if (ctx == NULL || ctx->pk_info == NULL || + ctx->pk_info->rs_free_func == NULL) { return; } - ctx->pk_info->rs_free_func( ctx->rs_ctx ); + ctx->pk_info->rs_free_func(ctx->rs_ctx); ctx->pk_info = NULL; ctx->rs_ctx = NULL; @@ -100,81 +101,87 @@ void mbedtls_pk_restart_free( mbedtls_pk_restart_ctx *ctx ) /* * Get pk_info structure from type */ -const mbedtls_pk_info_t * mbedtls_pk_info_from_type( mbedtls_pk_type_t pk_type ) +const mbedtls_pk_info_t *mbedtls_pk_info_from_type(mbedtls_pk_type_t pk_type) { - switch( pk_type ) { + switch (pk_type) { #if defined(MBEDTLS_RSA_C) case MBEDTLS_PK_RSA: - return( &mbedtls_rsa_info ); + return &mbedtls_rsa_info; #endif #if defined(MBEDTLS_ECP_C) case MBEDTLS_PK_ECKEY: - return( &mbedtls_eckey_info ); + return &mbedtls_eckey_info; case MBEDTLS_PK_ECKEY_DH: - return( &mbedtls_eckeydh_info ); + return &mbedtls_eckeydh_info; #endif #if defined(MBEDTLS_ECDSA_C) case MBEDTLS_PK_ECDSA: - return( &mbedtls_ecdsa_info ); + return &mbedtls_ecdsa_info; #endif /* MBEDTLS_PK_RSA_ALT omitted on purpose */ default: - return( NULL ); + return NULL; } } /* * Initialise context */ -int mbedtls_pk_setup( mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info ) +int mbedtls_pk_setup(mbedtls_pk_context *ctx, const mbedtls_pk_info_t *info) { - if( info == NULL || ctx->pk_info != NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (info == NULL || ctx->pk_info != NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ( ctx->pk_ctx = info->ctx_alloc_func() ) == NULL ) - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if ((ctx->pk_ctx = info->ctx_alloc_func()) == NULL) { + return MBEDTLS_ERR_PK_ALLOC_FAILED; + } ctx->pk_info = info; - return( 0 ); + return 0; } #if defined(MBEDTLS_USE_PSA_CRYPTO) /* * Initialise a PSA-wrapping context */ -int mbedtls_pk_setup_opaque( mbedtls_pk_context *ctx, - const mbedtls_svc_key_id_t key ) +int mbedtls_pk_setup_opaque(mbedtls_pk_context *ctx, + const mbedtls_svc_key_id_t key) { const mbedtls_pk_info_t *info = NULL; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t *pk_ctx; psa_key_type_t type; - if( ctx == NULL || ctx->pk_info != NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->pk_info != NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( PSA_SUCCESS != psa_get_key_attributes( key, &attributes ) ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - type = psa_get_key_type( &attributes ); - psa_reset_key_attributes( &attributes ); + if (PSA_SUCCESS != psa_get_key_attributes(key, &attributes)) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } + type = psa_get_key_type(&attributes); + psa_reset_key_attributes(&attributes); - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { info = &mbedtls_pk_ecdsa_opaque_info; - else if( type == PSA_KEY_TYPE_RSA_KEY_PAIR ) + } else if (type == PSA_KEY_TYPE_RSA_KEY_PAIR) { info = &mbedtls_pk_rsa_opaque_info; - else - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + } else { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; + } - if( ( ctx->pk_ctx = info->ctx_alloc_func() ) == NULL ) - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if ((ctx->pk_ctx = info->ctx_alloc_func()) == NULL) { + return MBEDTLS_ERR_PK_ALLOC_FAILED; + } ctx->pk_info = info; pk_ctx = (mbedtls_svc_key_id_t *) ctx->pk_ctx; *pk_ctx = key; - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -182,19 +189,21 @@ int mbedtls_pk_setup_opaque( mbedtls_pk_context *ctx, /* * Initialize an RSA-alt context */ -int mbedtls_pk_setup_rsa_alt( mbedtls_pk_context *ctx, void * key, - mbedtls_pk_rsa_alt_decrypt_func decrypt_func, - mbedtls_pk_rsa_alt_sign_func sign_func, - mbedtls_pk_rsa_alt_key_len_func key_len_func ) +int mbedtls_pk_setup_rsa_alt(mbedtls_pk_context *ctx, void *key, + mbedtls_pk_rsa_alt_decrypt_func decrypt_func, + mbedtls_pk_rsa_alt_sign_func sign_func, + mbedtls_pk_rsa_alt_key_len_func key_len_func) { mbedtls_rsa_alt_context *rsa_alt; const mbedtls_pk_info_t *info = &mbedtls_rsa_alt_info; - if( ctx->pk_info != NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info != NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ( ctx->pk_ctx = info->ctx_alloc_func() ) == NULL ) - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if ((ctx->pk_ctx = info->ctx_alloc_func()) == NULL) { + return MBEDTLS_ERR_PK_ALLOC_FAILED; + } ctx->pk_info = info; @@ -205,78 +214,83 @@ int mbedtls_pk_setup_rsa_alt( mbedtls_pk_context *ctx, void * key, rsa_alt->sign_func = sign_func; rsa_alt->key_len_func = key_len_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ /* * Tell if a PK can do the operations of the given type */ -int mbedtls_pk_can_do( const mbedtls_pk_context *ctx, mbedtls_pk_type_t type ) +int mbedtls_pk_can_do(const mbedtls_pk_context *ctx, mbedtls_pk_type_t type) { /* A context with null pk_info is not set up yet and can't do anything. * For backward compatibility, also accept NULL instead of a context * pointer. */ - if( ctx == NULL || ctx->pk_info == NULL ) - return( 0 ); + if (ctx == NULL || ctx->pk_info == NULL) { + return 0; + } - return( ctx->pk_info->can_do( type ) ); + return ctx->pk_info->can_do(type); } #if defined(MBEDTLS_USE_PSA_CRYPTO) /* * Tell if a PK can do the operations of the given PSA algorithm */ -int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, - psa_key_usage_t usage ) +int mbedtls_pk_can_do_ext(const mbedtls_pk_context *ctx, psa_algorithm_t alg, + psa_key_usage_t usage) { psa_key_usage_t key_usage; /* A context with null pk_info is not set up yet and can't do anything. * For backward compatibility, also accept NULL instead of a context * pointer. */ - if( ctx == NULL || ctx->pk_info == NULL ) - return( 0 ); + if (ctx == NULL || ctx->pk_info == NULL) { + return 0; + } /* Filter out non allowed algorithms */ - if( PSA_ALG_IS_ECDSA( alg ) == 0 && - PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) == 0 && - PSA_ALG_IS_RSA_PSS( alg ) == 0 && + if (PSA_ALG_IS_ECDSA(alg) == 0 && + PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) == 0 && + PSA_ALG_IS_RSA_PSS(alg) == 0 && alg != PSA_ALG_RSA_PKCS1V15_CRYPT && - PSA_ALG_IS_ECDH( alg ) == 0 ) - return( 0 ); + PSA_ALG_IS_ECDH(alg) == 0) { + return 0; + } /* Filter out non allowed usage flags */ - if( usage == 0 || - ( usage & ~( PSA_KEY_USAGE_SIGN_HASH | - PSA_KEY_USAGE_DECRYPT | - PSA_KEY_USAGE_DERIVE ) ) != 0 ) - return( 0 ); + if (usage == 0 || + (usage & ~(PSA_KEY_USAGE_SIGN_HASH | + PSA_KEY_USAGE_DECRYPT | + PSA_KEY_USAGE_DERIVE)) != 0) { + return 0; + } /* Wildcard hash is not allowed */ - if( PSA_ALG_IS_SIGN_HASH( alg ) && - PSA_ALG_SIGN_GET_HASH( alg ) == PSA_ALG_ANY_HASH ) - return( 0 ); + if (PSA_ALG_IS_SIGN_HASH(alg) && + PSA_ALG_SIGN_GET_HASH(alg) == PSA_ALG_ANY_HASH) { + return 0; + } - if( mbedtls_pk_get_type( ctx ) != MBEDTLS_PK_OPAQUE ) - { + if (mbedtls_pk_get_type(ctx) != MBEDTLS_PK_OPAQUE) { mbedtls_pk_type_t type; - if( PSA_ALG_IS_ECDSA( alg ) || PSA_ALG_IS_ECDH( alg ) ) + if (PSA_ALG_IS_ECDSA(alg) || PSA_ALG_IS_ECDH(alg)) { type = MBEDTLS_PK_ECKEY; - else if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) || - alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) + } else if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || + alg == PSA_ALG_RSA_PKCS1V15_CRYPT) { type = MBEDTLS_PK_RSA; - else if( PSA_ALG_IS_RSA_PSS( alg ) ) + } else if (PSA_ALG_IS_RSA_PSS(alg)) { type = MBEDTLS_PK_RSASSA_PSS; - else - return( 0 ); + } else { + return 0; + } - if( ctx->pk_info->can_do( type ) == 0 ) - return( 0 ); + if (ctx->pk_info->can_do(type) == 0) { + return 0; + } - switch( type ) - { + switch (type) { case MBEDTLS_PK_ECKEY: key_usage = PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_DERIVE; break; @@ -288,10 +302,10 @@ int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, break; default: /* Should never happen */ - return( 0 ); + return 0; } - return( ( key_usage & usage ) == usage ); + return (key_usage & usage) == usage; } const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx->pk_ctx; @@ -299,17 +313,19 @@ int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, psa_algorithm_t key_alg, key_alg2; psa_status_t status; - status = psa_get_key_attributes( *key, &attributes ); - if( status != PSA_SUCCESS ) - return( 0 ); + status = psa_get_key_attributes(*key, &attributes); + if (status != PSA_SUCCESS) { + return 0; + } - key_alg = psa_get_key_algorithm( &attributes ); - key_alg2 = psa_get_key_enrollment_algorithm( &attributes ); - key_usage = psa_get_key_usage_flags( &attributes ); - psa_reset_key_attributes( &attributes ); + key_alg = psa_get_key_algorithm(&attributes); + key_alg2 = psa_get_key_enrollment_algorithm(&attributes); + key_usage = psa_get_key_usage_flags(&attributes); + psa_reset_key_attributes(&attributes); - if( ( key_usage & usage ) != usage ) - return( 0 ); + if ((key_usage & usage) != usage) { + return 0; + } /* * Common case: the key alg or alg2 only allows alg. @@ -318,153 +334,167 @@ int mbedtls_pk_can_do_ext( const mbedtls_pk_context *ctx, psa_algorithm_t alg, * This would also match ECDSA/RSA_PKCS1V15_SIGN/RSA_PSS with * a fixed hash on key_alg/key_alg2. */ - if( alg == key_alg || alg == key_alg2 ) - return( 1 ); + if (alg == key_alg || alg == key_alg2) { + return 1; + } /* * If key_alg or key_alg2 is a hash-and-sign with a wildcard for the hash, * and alg is the same hash-and-sign family with any hash, * then alg is compliant with this key alg */ - if( PSA_ALG_IS_SIGN_HASH( alg ) ) - { + if (PSA_ALG_IS_SIGN_HASH(alg)) { - if( PSA_ALG_IS_SIGN_HASH( key_alg ) && - PSA_ALG_SIGN_GET_HASH( key_alg ) == PSA_ALG_ANY_HASH && - ( alg & ~PSA_ALG_HASH_MASK ) == ( key_alg & ~PSA_ALG_HASH_MASK ) ) - return( 1 ); + if (PSA_ALG_IS_SIGN_HASH(key_alg) && + PSA_ALG_SIGN_GET_HASH(key_alg) == PSA_ALG_ANY_HASH && + (alg & ~PSA_ALG_HASH_MASK) == (key_alg & ~PSA_ALG_HASH_MASK)) { + return 1; + } - if( PSA_ALG_IS_SIGN_HASH( key_alg2 ) && - PSA_ALG_SIGN_GET_HASH( key_alg2 ) == PSA_ALG_ANY_HASH && - ( alg & ~PSA_ALG_HASH_MASK ) == ( key_alg2 & ~PSA_ALG_HASH_MASK ) ) - return( 1 ); + if (PSA_ALG_IS_SIGN_HASH(key_alg2) && + PSA_ALG_SIGN_GET_HASH(key_alg2) == PSA_ALG_ANY_HASH && + (alg & ~PSA_ALG_HASH_MASK) == (key_alg2 & ~PSA_ALG_HASH_MASK)) { + return 1; + } } - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* * Helper for mbedtls_pk_sign and mbedtls_pk_verify */ -static inline int pk_hashlen_helper( mbedtls_md_type_t md_alg, size_t *hash_len ) +static inline int pk_hashlen_helper(mbedtls_md_type_t md_alg, size_t *hash_len) { - if( *hash_len != 0 ) - return( 0 ); + if (*hash_len != 0) { + return 0; + } - *hash_len = mbedtls_hash_info_get_size( md_alg ); + *hash_len = mbedtls_hash_info_get_size(md_alg); - if( *hash_len == 0 ) - return( -1 ); + if (*hash_len == 0) { + return -1; + } - return( 0 ); + return 0; } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* * Helper to set up a restart context if needed */ -static int pk_restart_setup( mbedtls_pk_restart_ctx *ctx, - const mbedtls_pk_info_t *info ) +static int pk_restart_setup(mbedtls_pk_restart_ctx *ctx, + const mbedtls_pk_info_t *info) { /* Don't do anything if already set up or invalid */ - if( ctx == NULL || ctx->pk_info != NULL ) - return( 0 ); + if (ctx == NULL || ctx->pk_info != NULL) { + return 0; + } /* Should never happen when we're called */ - if( info->rs_alloc_func == NULL || info->rs_free_func == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (info->rs_alloc_func == NULL || info->rs_free_func == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ( ctx->rs_ctx = info->rs_alloc_func() ) == NULL ) - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if ((ctx->rs_ctx = info->rs_alloc_func()) == NULL) { + return MBEDTLS_ERR_PK_ALLOC_FAILED; + } ctx->pk_info = info; - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ /* * Verify a signature (restartable) */ -int mbedtls_pk_verify_restartable( mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - mbedtls_pk_restart_ctx *rs_ctx ) +int mbedtls_pk_verify_restartable(mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + mbedtls_pk_restart_ctx *rs_ctx) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hash_len != 0) && hash == NULL) { return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info == NULL || - pk_hashlen_helper( md_alg, &hash_len ) != 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL || + pk_hashlen_helper(md_alg, &hash_len) != 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* optimization: use non-restartable version if restart disabled */ - if( rs_ctx != NULL && + if (rs_ctx != NULL && mbedtls_ecp_restart_is_enabled() && - ctx->pk_info->verify_rs_func != NULL ) - { + ctx->pk_info->verify_rs_func != NULL) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 ) - return( ret ); + if ((ret = pk_restart_setup(rs_ctx, ctx->pk_info)) != 0) { + return ret; + } - ret = ctx->pk_info->verify_rs_func( ctx->pk_ctx, - md_alg, hash, hash_len, sig, sig_len, rs_ctx->rs_ctx ); + ret = ctx->pk_info->verify_rs_func(ctx->pk_ctx, + md_alg, hash, hash_len, sig, sig_len, rs_ctx->rs_ctx); - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) - mbedtls_pk_restart_free( rs_ctx ); + if (ret != MBEDTLS_ERR_ECP_IN_PROGRESS) { + mbedtls_pk_restart_free(rs_ctx); + } - return( ret ); + return ret; } #else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ (void) rs_ctx; #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ - if( ctx->pk_info->verify_func == NULL ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (ctx->pk_info->verify_func == NULL) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - return( ctx->pk_info->verify_func( ctx->pk_ctx, md_alg, hash, hash_len, - sig, sig_len ) ); + return ctx->pk_info->verify_func(ctx->pk_ctx, md_alg, hash, hash_len, + sig, sig_len); } /* * Verify a signature */ -int mbedtls_pk_verify( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +int mbedtls_pk_verify(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { - return( mbedtls_pk_verify_restartable( ctx, md_alg, hash, hash_len, - sig, sig_len, NULL ) ); + return mbedtls_pk_verify_restartable(ctx, md_alg, hash, hash_len, + sig, sig_len, NULL); } /* * Verify a signature with options */ -int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, - mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +int mbedtls_pk_verify_ext(mbedtls_pk_type_t type, const void *options, + mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hash_len != 0) && hash == NULL) { return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ! mbedtls_pk_can_do( ctx, type ) ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (!mbedtls_pk_can_do(ctx, type)) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - if( type != MBEDTLS_PK_RSASSA_PSS ) - { + if (type != MBEDTLS_PK_RSASSA_PSS) { /* General case: no options */ - if( options != NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (options != NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - return( mbedtls_pk_verify( ctx, md_alg, hash, hash_len, sig, sig_len ) ); + return mbedtls_pk_verify(ctx, md_alg, hash, hash_len, sig, sig_len); } #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PKCS1_V21) @@ -472,18 +502,19 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, const mbedtls_pk_rsassa_pss_options *pss_opts; #if SIZE_MAX > UINT_MAX - if( md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #endif /* SIZE_MAX > UINT_MAX */ - if( options == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (options == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } pss_opts = (const mbedtls_pk_rsassa_pss_options *) options; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( pss_opts->mgf1_hash_id == md_alg ) - { + if (pss_opts->mgf1_hash_id == md_alg) { unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES]; unsigned char *p; int key_len; @@ -491,27 +522,27 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, psa_status_t status = PSA_ERROR_DATA_CORRUPT; psa_status_t destruction_status = PSA_ERROR_DATA_CORRUPT; - psa_algorithm_t psa_md_alg = mbedtls_hash_info_psa_from_md( md_alg ); + psa_algorithm_t psa_md_alg = mbedtls_hash_info_psa_from_md(md_alg); mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_algorithm_t psa_sig_alg = PSA_ALG_RSA_PSS_ANY_SALT( psa_md_alg ); - p = buf + sizeof( buf ); - key_len = mbedtls_pk_write_pubkey( &p, buf, ctx ); + psa_algorithm_t psa_sig_alg = PSA_ALG_RSA_PSS_ANY_SALT(psa_md_alg); + p = buf + sizeof(buf); + key_len = mbedtls_pk_write_pubkey(&p, buf, ctx); - if( key_len < 0 ) - return( key_len ); + if (key_len < 0) { + return key_len; + } - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, psa_sig_alg ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, psa_sig_alg); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( key_id ); - return( mbedtls_pk_error_from_psa( status ) ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + psa_destroy_key(key_id); + return mbedtls_pk_error_from_psa(status); } /* This function requires returning MBEDTLS_ERR_PK_SIG_LEN_MISMATCH @@ -519,157 +550,166 @@ int mbedtls_pk_verify_ext( mbedtls_pk_type_t type, const void *options, * mbedtls_psa_rsa_verify_hash requires the sig_len to be exact, * so for this reason the passed sig_len is overwritten. Smaller * signature lengths should not be accepted for verification. */ - signature_length = sig_len > mbedtls_pk_get_len( ctx ) ? - mbedtls_pk_get_len( ctx ) : sig_len; - status = psa_verify_hash( key_id, psa_sig_alg, hash, - hash_len, sig, signature_length ); - destruction_status = psa_destroy_key( key_id ); + signature_length = sig_len > mbedtls_pk_get_len(ctx) ? + mbedtls_pk_get_len(ctx) : sig_len; + status = psa_verify_hash(key_id, psa_sig_alg, hash, + hash_len, sig, signature_length); + destruction_status = psa_destroy_key(key_id); - if( status == PSA_SUCCESS && sig_len > mbedtls_pk_get_len( ctx ) ) - return( MBEDTLS_ERR_PK_SIG_LEN_MISMATCH ); + if (status == PSA_SUCCESS && sig_len > mbedtls_pk_get_len(ctx)) { + return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; + } - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { status = destruction_status; + } - return( mbedtls_pk_error_from_psa_rsa( status ) ); - } - else + return mbedtls_pk_error_from_psa_rsa(status); + } else #endif { - if( sig_len < mbedtls_pk_get_len( ctx ) ) - return( MBEDTLS_ERR_RSA_VERIFY_FAILED ); + if (sig_len < mbedtls_pk_get_len(ctx)) { + return MBEDTLS_ERR_RSA_VERIFY_FAILED; + } - ret = mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_pk_rsa( *ctx ), - md_alg, (unsigned int) hash_len, hash, - pss_opts->mgf1_hash_id, - pss_opts->expected_salt_len, - sig ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_rsa_rsassa_pss_verify_ext(mbedtls_pk_rsa(*ctx), + md_alg, (unsigned int) hash_len, hash, + pss_opts->mgf1_hash_id, + pss_opts->expected_salt_len, + sig); + if (ret != 0) { + return ret; + } - if( sig_len > mbedtls_pk_get_len( ctx ) ) - return( MBEDTLS_ERR_PK_SIG_LEN_MISMATCH ); + if (sig_len > mbedtls_pk_get_len(ctx)) { + return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; + } - return( 0 ); + return 0; } #else - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; #endif /* MBEDTLS_RSA_C && MBEDTLS_PKCS1_V21 */ } /* * Make a signature (restartable) */ -int mbedtls_pk_sign_restartable( mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_pk_restart_ctx *rs_ctx ) +int mbedtls_pk_sign_restartable(mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_pk_restart_ctx *rs_ctx) { - if( ( md_alg != MBEDTLS_MD_NONE || hash_len != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hash_len != 0) && hash == NULL) { return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info == NULL || pk_hashlen_helper( md_alg, &hash_len ) != 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL || pk_hashlen_helper(md_alg, &hash_len) != 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* optimization: use non-restartable version if restart disabled */ - if( rs_ctx != NULL && + if (rs_ctx != NULL && mbedtls_ecp_restart_is_enabled() && - ctx->pk_info->sign_rs_func != NULL ) - { + ctx->pk_info->sign_rs_func != NULL) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = pk_restart_setup( rs_ctx, ctx->pk_info ) ) != 0 ) - return( ret ); + if ((ret = pk_restart_setup(rs_ctx, ctx->pk_info)) != 0) { + return ret; + } - ret = ctx->pk_info->sign_rs_func( ctx->pk_ctx, md_alg, - hash, hash_len, - sig, sig_size, sig_len, - f_rng, p_rng, rs_ctx->rs_ctx ); + ret = ctx->pk_info->sign_rs_func(ctx->pk_ctx, md_alg, + hash, hash_len, + sig, sig_size, sig_len, + f_rng, p_rng, rs_ctx->rs_ctx); - if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) - mbedtls_pk_restart_free( rs_ctx ); + if (ret != MBEDTLS_ERR_ECP_IN_PROGRESS) { + mbedtls_pk_restart_free(rs_ctx); + } - return( ret ); + return ret; } #else /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ (void) rs_ctx; #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ - if( ctx->pk_info->sign_func == NULL ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (ctx->pk_info->sign_func == NULL) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - return( ctx->pk_info->sign_func( ctx->pk_ctx, md_alg, - hash, hash_len, - sig, sig_size, sig_len, - f_rng, p_rng ) ); + return ctx->pk_info->sign_func(ctx->pk_ctx, md_alg, + hash, hash_len, + sig, sig_size, sig_len, + f_rng, p_rng); } /* * Make a signature */ -int mbedtls_pk_sign( mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_pk_sign(mbedtls_pk_context *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - return( mbedtls_pk_sign_restartable( ctx, md_alg, hash, hash_len, - sig, sig_size, sig_len, - f_rng, p_rng, NULL ) ); + return mbedtls_pk_sign_restartable(ctx, md_alg, hash, hash_len, + sig, sig_size, sig_len, + f_rng, p_rng, NULL); } #if defined(MBEDTLS_PSA_CRYPTO_C) /* * Make a signature given a signature type. */ -int mbedtls_pk_sign_ext( mbedtls_pk_type_t pk_type, - mbedtls_pk_context *ctx, - mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_pk_sign_ext(mbedtls_pk_type_t pk_type, + mbedtls_pk_context *ctx, + mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { #if defined(MBEDTLS_RSA_C) psa_algorithm_t psa_md_alg; #endif /* MBEDTLS_RSA_C */ *sig_len = 0; - if( ctx->pk_info == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ! mbedtls_pk_can_do( ctx, pk_type ) ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (!mbedtls_pk_can_do(ctx, pk_type)) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - if( pk_type != MBEDTLS_PK_RSASSA_PSS ) - { - return( mbedtls_pk_sign( ctx, md_alg, hash, hash_len, - sig, sig_size, sig_len, f_rng, p_rng ) ); + if (pk_type != MBEDTLS_PK_RSASSA_PSS) { + return mbedtls_pk_sign(ctx, md_alg, hash, hash_len, + sig, sig_size, sig_len, f_rng, p_rng); } #if defined(MBEDTLS_RSA_C) - psa_md_alg = mbedtls_hash_info_psa_from_md( md_alg ); - if( psa_md_alg == 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + psa_md_alg = mbedtls_hash_info_psa_from_md(md_alg); + if (psa_md_alg == 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( mbedtls_pk_get_type( ctx ) == MBEDTLS_PK_OPAQUE ) - { + if (mbedtls_pk_get_type(ctx) == MBEDTLS_PK_OPAQUE) { const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx->pk_ctx; psa_status_t status; - status = psa_sign_hash( *key, PSA_ALG_RSA_PSS( psa_md_alg ), - hash, hash_len, - sig, sig_size, sig_len ); - return( mbedtls_pk_error_from_psa_rsa( status ) ); + status = psa_sign_hash(*key, PSA_ALG_RSA_PSS(psa_md_alg), + hash, hash_len, + sig, sig_size, sig_len); + return mbedtls_pk_error_from_psa_rsa(status); } - return( mbedtls_pk_psa_rsa_sign_ext( PSA_ALG_RSA_PSS( psa_md_alg ), - ctx->pk_ctx, hash, hash_len, - sig, sig_size, sig_len ) ); + return mbedtls_pk_psa_rsa_sign_ext(PSA_ALG_RSA_PSS(psa_md_alg), + ctx->pk_ctx, hash, hash_len, + sig, sig_size, sig_len); #else /* MBEDTLS_RSA_C */ - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; #endif /* !MBEDTLS_RSA_C */ } @@ -678,121 +718,130 @@ int mbedtls_pk_sign_ext( mbedtls_pk_type_t pk_type, /* * Decrypt message */ -int mbedtls_pk_decrypt( mbedtls_pk_context *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_pk_decrypt(mbedtls_pk_context *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - if( ctx->pk_info == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info->decrypt_func == NULL ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (ctx->pk_info->decrypt_func == NULL) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - return( ctx->pk_info->decrypt_func( ctx->pk_ctx, input, ilen, - output, olen, osize, f_rng, p_rng ) ); + return ctx->pk_info->decrypt_func(ctx->pk_ctx, input, ilen, + output, olen, osize, f_rng, p_rng); } /* * Encrypt message */ -int mbedtls_pk_encrypt( mbedtls_pk_context *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_pk_encrypt(mbedtls_pk_context *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - if( ctx->pk_info == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info->encrypt_func == NULL ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (ctx->pk_info->encrypt_func == NULL) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - return( ctx->pk_info->encrypt_func( ctx->pk_ctx, input, ilen, - output, olen, osize, f_rng, p_rng ) ); + return ctx->pk_info->encrypt_func(ctx->pk_ctx, input, ilen, + output, olen, osize, f_rng, p_rng); } /* * Check public-private key pair */ -int mbedtls_pk_check_pair( const mbedtls_pk_context *pub, - const mbedtls_pk_context *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_pk_check_pair(const mbedtls_pk_context *pub, + const mbedtls_pk_context *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - if( pub->pk_info == NULL || - prv->pk_info == NULL ) - { - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (pub->pk_info == NULL || + prv->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; } - if( f_rng == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - - if( prv->pk_info->check_pair_func == NULL ) - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); - - if( prv->pk_info->type == MBEDTLS_PK_RSA_ALT ) - { - if( pub->pk_info->type != MBEDTLS_PK_RSA ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); - } - else - { - if( pub->pk_info != prv->pk_info ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (f_rng == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; } - return( prv->pk_info->check_pair_func( pub->pk_ctx, prv->pk_ctx, f_rng, p_rng ) ); + if (prv->pk_info->check_pair_func == NULL) { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; + } + + if (prv->pk_info->type == MBEDTLS_PK_RSA_ALT) { + if (pub->pk_info->type != MBEDTLS_PK_RSA) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } + } else { + if (pub->pk_info != prv->pk_info) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } + } + + return prv->pk_info->check_pair_func(pub->pk_ctx, prv->pk_ctx, f_rng, p_rng); } /* * Get key size in bits */ -size_t mbedtls_pk_get_bitlen( const mbedtls_pk_context *ctx ) +size_t mbedtls_pk_get_bitlen(const mbedtls_pk_context *ctx) { /* For backward compatibility, accept NULL or a context that * isn't set up yet, and return a fake value that should be safe. */ - if( ctx == NULL || ctx->pk_info == NULL ) - return( 0 ); + if (ctx == NULL || ctx->pk_info == NULL) { + return 0; + } - return( ctx->pk_info->get_bitlen( ctx->pk_ctx ) ); + return ctx->pk_info->get_bitlen(ctx->pk_ctx); } /* * Export debug information */ -int mbedtls_pk_debug( const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items ) +int mbedtls_pk_debug(const mbedtls_pk_context *ctx, mbedtls_pk_debug_item *items) { - if( ctx->pk_info == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (ctx->pk_info == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - if( ctx->pk_info->debug_func == NULL ) - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (ctx->pk_info->debug_func == NULL) { + return MBEDTLS_ERR_PK_TYPE_MISMATCH; + } - ctx->pk_info->debug_func( ctx->pk_ctx, items ); - return( 0 ); + ctx->pk_info->debug_func(ctx->pk_ctx, items); + return 0; } /* * Access the PK type name */ -const char *mbedtls_pk_get_name( const mbedtls_pk_context *ctx ) +const char *mbedtls_pk_get_name(const mbedtls_pk_context *ctx) { - if( ctx == NULL || ctx->pk_info == NULL ) - return( "invalid PK" ); + if (ctx == NULL || ctx->pk_info == NULL) { + return "invalid PK"; + } - return( ctx->pk_info->name ); + return ctx->pk_info->name; } /* * Access the PK type */ -mbedtls_pk_type_t mbedtls_pk_get_type( const mbedtls_pk_context *ctx ) +mbedtls_pk_type_t mbedtls_pk_get_type(const mbedtls_pk_context *ctx) { - if( ctx == NULL || ctx->pk_info == NULL ) - return( MBEDTLS_PK_NONE ); + if (ctx == NULL || ctx->pk_info == NULL) { + return MBEDTLS_PK_NONE; + } - return( ctx->pk_info->type ); + return ctx->pk_info->type; } #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -802,11 +851,11 @@ mbedtls_pk_type_t mbedtls_pk_get_type( const mbedtls_pk_context *ctx ) * * Currently only works for EC & RSA private keys. */ -int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, - mbedtls_svc_key_id_t *key, - psa_algorithm_t alg, - psa_key_usage_t usage, - psa_algorithm_t alg2 ) +int mbedtls_pk_wrap_as_opaque(mbedtls_pk_context *pk, + mbedtls_svc_key_id_t *key, + psa_algorithm_t alg, + psa_key_usage_t usage, + psa_algorithm_t alg2) { #if !defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_RSA_C) ((void) pk); @@ -816,8 +865,7 @@ int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, ((void) alg2); #else #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( pk ) == MBEDTLS_PK_ECKEY ) - { + if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECKEY) { const mbedtls_ecp_keypair *ec; unsigned char d[MBEDTLS_ECP_MAX_BYTES]; size_t d_len; @@ -829,76 +877,79 @@ int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, psa_status_t status; /* export the private key material in the format PSA wants */ - ec = mbedtls_pk_ec( *pk ); - d_len = PSA_BITS_TO_BYTES( ec->grp.nbits ); - if( ( ret = mbedtls_mpi_write_binary( &ec->d, d, d_len ) ) != 0 ) - return( ret ); + ec = mbedtls_pk_ec(*pk); + d_len = PSA_BITS_TO_BYTES(ec->grp.nbits); + if ((ret = mbedtls_mpi_write_binary(&ec->d, d, d_len)) != 0) { + return ret; + } - curve_id = mbedtls_ecc_group_to_psa( ec->grp.id, &bits ); - key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( curve_id ); + curve_id = mbedtls_ecc_group_to_psa(ec->grp.id, &bits); + key_type = PSA_KEY_TYPE_ECC_KEY_PAIR(curve_id); /* prepare the key attributes */ - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, bits ); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - if( alg2 != PSA_ALG_NONE ) - psa_set_key_enrollment_algorithm( &attributes, alg2 ); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, bits); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + if (alg2 != PSA_ALG_NONE) { + psa_set_key_enrollment_algorithm(&attributes, alg2); + } /* import private key into PSA */ - status = psa_import_key( &attributes, d, d_len, key ); - if( status != PSA_SUCCESS ) - return( mbedtls_pk_error_from_psa( status ) ); + status = psa_import_key(&attributes, d, d_len, key); + if (status != PSA_SUCCESS) { + return mbedtls_pk_error_from_psa(status); + } /* make PK context wrap the key slot */ - mbedtls_pk_free( pk ); - mbedtls_pk_init( pk ); + mbedtls_pk_free(pk); + mbedtls_pk_init(pk); - return( mbedtls_pk_setup_opaque( pk, *key ) ); - } - else + return mbedtls_pk_setup_opaque(pk, *key); + } else #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( pk ) == MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_RSA) { unsigned char buf[MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES]; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; int key_len; psa_status_t status; /* export the private key material in the format PSA wants */ - key_len = mbedtls_pk_write_key_der( pk, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + key_len = mbedtls_pk_write_key_der(pk, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } /* prepare the key attributes */ - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_KEY_PAIR ); - psa_set_key_bits( &attributes, mbedtls_pk_get_bitlen( pk ) ); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - if( alg2 != PSA_ALG_NONE ) - psa_set_key_enrollment_algorithm( &attributes, alg2 ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR); + psa_set_key_bits(&attributes, mbedtls_pk_get_bitlen(pk)); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + if (alg2 != PSA_ALG_NONE) { + psa_set_key_enrollment_algorithm(&attributes, alg2); + } /* import private key into PSA */ - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, - key_len, key); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, + key_len, key); - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - if( status != PSA_SUCCESS ) - return( mbedtls_pk_error_from_psa( status ) ); + if (status != PSA_SUCCESS) { + return mbedtls_pk_error_from_psa(status); + } /* make PK context wrap the key slot */ - mbedtls_pk_free( pk ); - mbedtls_pk_init( pk ); + mbedtls_pk_free(pk); + mbedtls_pk_init(pk); - return( mbedtls_pk_setup_opaque( pk, *key ) ); - } - else + return mbedtls_pk_setup_opaque(pk, *key); + } else #endif /* MBEDTLS_RSA_C */ #endif /* !MBEDTLS_ECP_C && !MBEDTLS_RSA_C */ - return( MBEDTLS_ERR_PK_TYPE_MISMATCH ); + return MBEDTLS_ERR_PK_TYPE_MISMATCH; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_PK_C */ diff --git a/library/pk_wrap.c b/library/pk_wrap.c index ea7d7263e..aaf516eab 100644 --- a/library/pk_wrap.c +++ b/library/pk_wrap.c @@ -61,60 +61,58 @@ #include #if defined(MBEDTLS_PSA_CRYPTO_C) -int mbedtls_pk_error_from_psa( psa_status_t status ) +int mbedtls_pk_error_from_psa(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_SUCCESS: - return( 0 ); + return 0; case PSA_ERROR_INVALID_HANDLE: - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; case PSA_ERROR_NOT_PERMITTED: - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + return MBEDTLS_ERR_ERROR_GENERIC_ERROR; case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_PK_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL; case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; case PSA_ERROR_INVALID_ARGUMENT: - return( MBEDTLS_ERR_PK_INVALID_ALG ); + return MBEDTLS_ERR_PK_INVALID_ALG; case PSA_ERROR_INSUFFICIENT_MEMORY: - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + return MBEDTLS_ERR_PK_ALLOC_FAILED; case PSA_ERROR_BAD_STATE: - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; case PSA_ERROR_COMMUNICATION_FAILURE: case PSA_ERROR_HARDWARE_FAILURE: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; case PSA_ERROR_DATA_CORRUPT: case PSA_ERROR_DATA_INVALID: case PSA_ERROR_STORAGE_FAILURE: - return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); + return MBEDTLS_ERR_PK_FILE_IO_ERROR; case PSA_ERROR_CORRUPTION_DETECTED: - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; default: - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + return MBEDTLS_ERR_ERROR_GENERIC_ERROR; } } #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) || \ defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) -int mbedtls_pk_error_from_psa_rsa( psa_status_t status ) +int mbedtls_pk_error_from_psa_rsa(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_ERROR_NOT_PERMITTED: case PSA_ERROR_INVALID_ARGUMENT: case PSA_ERROR_INVALID_HANDLE: - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE ); + return MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE; case PSA_ERROR_INSUFFICIENT_ENTROPY: - return( MBEDTLS_ERR_RSA_RNG_FAILED ); + return MBEDTLS_ERR_RSA_RNG_FAILED; case PSA_ERROR_INVALID_SIGNATURE: - return( MBEDTLS_ERR_RSA_VERIFY_FAILED ); + return MBEDTLS_ERR_RSA_VERIFY_FAILED; case PSA_ERROR_INVALID_PADDING: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; default: - return( mbedtls_pk_error_from_psa( status ) ); + return mbedtls_pk_error_from_psa(status); } } #endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY || PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ @@ -124,23 +122,22 @@ int mbedtls_pk_error_from_psa_rsa( psa_status_t status ) #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) -int mbedtls_pk_error_from_psa_ecdsa( psa_status_t status ) +int mbedtls_pk_error_from_psa_ecdsa(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_ERROR_NOT_PERMITTED: case PSA_ERROR_INVALID_ARGUMENT: - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; case PSA_ERROR_INVALID_HANDLE: - return( MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; case PSA_ERROR_INSUFFICIENT_ENTROPY: - return( MBEDTLS_ERR_ECP_RANDOM_FAILED ); + return MBEDTLS_ERR_ECP_RANDOM_FAILED; case PSA_ERROR_INVALID_SIGNATURE: - return( MBEDTLS_ERR_ECP_VERIFY_FAILED ); + return MBEDTLS_ERR_ECP_VERIFY_FAILED; default: - return( mbedtls_pk_error_from_psa( status ) ); + return mbedtls_pk_error_from_psa(status); } } #endif /* PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY */ @@ -148,24 +145,24 @@ int mbedtls_pk_error_from_psa_ecdsa( psa_status_t status ) #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_RSA_C) -static int rsa_can_do( mbedtls_pk_type_t type ) +static int rsa_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_RSA || - type == MBEDTLS_PK_RSASSA_PSS ); + return type == MBEDTLS_PK_RSA || + type == MBEDTLS_PK_RSASSA_PSS; } -static size_t rsa_get_bitlen( const void *ctx ) +static size_t rsa_get_bitlen(const void *ctx) { - const mbedtls_rsa_context * rsa = (const mbedtls_rsa_context *) ctx; - return( 8 * mbedtls_rsa_get_len( rsa ) ); + const mbedtls_rsa_context *rsa = (const mbedtls_rsa_context *) ctx; + return 8 * mbedtls_rsa_get_len(rsa); } #if defined(MBEDTLS_USE_PSA_CRYPTO) -static int rsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +static int rsa_verify_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; @@ -174,94 +171,100 @@ static int rsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, int key_len; unsigned char buf[MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES]; psa_algorithm_t psa_alg_md = - PSA_ALG_RSA_PKCS1V15_SIGN( mbedtls_hash_info_psa_from_md( md_alg ) ); - size_t rsa_len = mbedtls_rsa_get_len( rsa ); + PSA_ALG_RSA_PKCS1V15_SIGN(mbedtls_hash_info_psa_from_md(md_alg)); + size_t rsa_len = mbedtls_rsa_get_len(rsa); #if SIZE_MAX > UINT_MAX - if( md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #endif /* SIZE_MAX > UINT_MAX */ - if( sig_len < rsa_len ) - return( MBEDTLS_ERR_RSA_VERIFY_FAILED ); + if (sig_len < rsa_len) { + return MBEDTLS_ERR_RSA_VERIFY_FAILED; + } /* mbedtls_pk_write_pubkey_der() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &mbedtls_rsa_info; key.pk_ctx = ctx; - key_len = mbedtls_pk_write_pubkey_der( &key, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + key_len = mbedtls_pk_write_pubkey_der(&key, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, psa_alg_md ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, psa_alg_md); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); goto cleanup; } - status = psa_verify_hash( key_id, psa_alg_md, hash, hash_len, - sig, sig_len ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_rsa( status ); + status = psa_verify_hash(key_id, psa_alg_md, hash, hash_len, + sig, sig_len); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_rsa(status); goto cleanup; } ret = 0; cleanup: - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } - return( ret ); + return ret; } #else -static int rsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +static int rsa_verify_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; - size_t rsa_len = mbedtls_rsa_get_len( rsa ); + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; + size_t rsa_len = mbedtls_rsa_get_len(rsa); #if SIZE_MAX > UINT_MAX - if( md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #endif /* SIZE_MAX > UINT_MAX */ - if( sig_len < rsa_len ) - return( MBEDTLS_ERR_RSA_VERIFY_FAILED ); + if (sig_len < rsa_len) { + return MBEDTLS_ERR_RSA_VERIFY_FAILED; + } - if( ( ret = mbedtls_rsa_pkcs1_verify( rsa, md_alg, - (unsigned int) hash_len, - hash, sig ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_rsa_pkcs1_verify(rsa, md_alg, + (unsigned int) hash_len, + hash, sig)) != 0) { + return ret; + } /* The buffer contains a valid signature followed by extra data. * We have a special error code for that so that so that callers can * use mbedtls_pk_verify() to check "Does the buffer start with a * valid signature?" and not just "Does the buffer contain a valid * signature?". */ - if( sig_len > rsa_len ) - return( MBEDTLS_ERR_PK_SIG_LEN_MISMATCH ); + if (sig_len > rsa_len) { + return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; + } - return( 0 ); + return 0; } #endif #if defined(MBEDTLS_PSA_CRYPTO_C) -int mbedtls_pk_psa_rsa_sign_ext( psa_algorithm_t alg, - mbedtls_rsa_context *rsa_ctx, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, - size_t *sig_len ) +int mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t alg, + mbedtls_rsa_context *rsa_ctx, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, + size_t *sig_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -272,96 +275,100 @@ int mbedtls_pk_psa_rsa_sign_ext( psa_algorithm_t alg, unsigned char buf[MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES]; mbedtls_pk_info_t pk_info = mbedtls_rsa_info; - *sig_len = mbedtls_rsa_get_len( rsa_ctx ); - if( sig_size < *sig_len ) - return( MBEDTLS_ERR_PK_BUFFER_TOO_SMALL ); + *sig_len = mbedtls_rsa_get_len(rsa_ctx); + if (sig_size < *sig_len) { + return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL; + } /* mbedtls_pk_write_key_der() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &pk_info; key.pk_ctx = rsa_ctx; - key_len = mbedtls_pk_write_key_der( &key, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_KEY_PAIR ); + key_len = mbedtls_pk_write_key_der(&key, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); goto cleanup; } - status = psa_sign_hash( key_id, alg, hash, hash_len, - sig, sig_size, sig_len ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_rsa( status ); + status = psa_sign_hash(key_id, alg, hash, hash_len, + sig, sig_size, sig_len); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_rsa(status); goto cleanup; } ret = 0; cleanup: - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); - return( ret ); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } + return ret; } #endif /* MBEDTLS_PSA_CRYPTO_C */ #if defined(MBEDTLS_USE_PSA_CRYPTO) -static int rsa_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { ((void) f_rng); ((void) p_rng); psa_algorithm_t psa_md_alg; - psa_md_alg = mbedtls_hash_info_psa_from_md( md_alg ); - if( psa_md_alg == 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + psa_md_alg = mbedtls_hash_info_psa_from_md(md_alg); + if (psa_md_alg == 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - return( mbedtls_pk_psa_rsa_sign_ext( PSA_ALG_RSA_PKCS1V15_SIGN( - psa_md_alg ), - ctx, hash, hash_len, - sig, sig_size, sig_len ) ); + return mbedtls_pk_psa_rsa_sign_ext(PSA_ALG_RSA_PKCS1V15_SIGN( + psa_md_alg), + ctx, hash, hash_len, + sig, sig_size, sig_len); } #else -static int rsa_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; #if SIZE_MAX > UINT_MAX - if( md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (md_alg == MBEDTLS_MD_NONE && UINT_MAX < hash_len) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #endif /* SIZE_MAX > UINT_MAX */ - *sig_len = mbedtls_rsa_get_len( rsa ); - if( sig_size < *sig_len ) - return( MBEDTLS_ERR_PK_BUFFER_TOO_SMALL ); + *sig_len = mbedtls_rsa_get_len(rsa); + if (sig_size < *sig_len) { + return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL; + } - return( mbedtls_rsa_pkcs1_sign( rsa, f_rng, p_rng, - md_alg, (unsigned int) hash_len, - hash, sig ) ); + return mbedtls_rsa_pkcs1_sign(rsa, f_rng, p_rng, + md_alg, (unsigned int) hash_len, + hash, sig); } #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) -static int rsa_decrypt_wrap( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_decrypt_wrap(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; @@ -374,77 +381,80 @@ static int rsa_decrypt_wrap( void *ctx, ((void) p_rng); #if !defined(MBEDTLS_RSA_ALT) - if( rsa->padding != MBEDTLS_RSA_PKCS_V15 ) - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + if (rsa->padding != MBEDTLS_RSA_PKCS_V15) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } #endif /* !MBEDTLS_RSA_ALT */ - if( ilen != mbedtls_rsa_get_len( rsa ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen != mbedtls_rsa_get_len(rsa)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* mbedtls_pk_write_key_der() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &mbedtls_rsa_info; key.pk_ctx = ctx; - key_len = mbedtls_pk_write_key_der( &key, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + key_len = mbedtls_pk_write_key_der(&key, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_KEY_PAIR ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, PSA_ALG_RSA_PKCS1V15_CRYPT ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, PSA_ALG_RSA_PKCS1V15_CRYPT); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); goto cleanup; } - status = psa_asymmetric_decrypt( key_id, PSA_ALG_RSA_PKCS1V15_CRYPT, - input, ilen, - NULL, 0, - output, osize, olen ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_rsa( status ); + status = psa_asymmetric_decrypt(key_id, PSA_ALG_RSA_PKCS1V15_CRYPT, + input, ilen, + NULL, 0, + output, osize, olen); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_rsa(status); goto cleanup; } ret = 0; cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } - return( ret ); + return ret; } #else -static int rsa_decrypt_wrap( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_decrypt_wrap(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; - if( ilen != mbedtls_rsa_get_len( rsa ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen != mbedtls_rsa_get_len(rsa)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - return( mbedtls_rsa_pkcs1_decrypt( rsa, f_rng, p_rng, - olen, input, output, osize ) ); + return mbedtls_rsa_pkcs1_decrypt(rsa, f_rng, p_rng, + olen, input, output, osize); } #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) -static int rsa_encrypt_wrap( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_encrypt_wrap(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; @@ -457,97 +467,101 @@ static int rsa_encrypt_wrap( void *ctx, ((void) p_rng); #if !defined(MBEDTLS_RSA_ALT) - if( rsa->padding != MBEDTLS_RSA_PKCS_V15 ) - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + if (rsa->padding != MBEDTLS_RSA_PKCS_V15) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } #endif - if( mbedtls_rsa_get_len( rsa ) > osize ) - return( MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE ); + if (mbedtls_rsa_get_len(rsa) > osize) { + return MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE; + } /* mbedtls_pk_write_pubkey_der() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &mbedtls_rsa_info; key.pk_ctx = ctx; - key_len = mbedtls_pk_write_pubkey_der( &key, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + key_len = mbedtls_pk_write_pubkey_der(&key, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, PSA_ALG_RSA_PKCS1V15_CRYPT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, PSA_ALG_RSA_PKCS1V15_CRYPT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); goto cleanup; } - status = psa_asymmetric_encrypt( key_id, PSA_ALG_RSA_PKCS1V15_CRYPT, - input, ilen, - NULL, 0, - output, osize, olen ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_rsa( status ); + status = psa_asymmetric_encrypt(key_id, PSA_ALG_RSA_PKCS1V15_CRYPT, + input, ilen, + NULL, 0, + output, osize, olen); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_rsa(status); goto cleanup; } ret = 0; cleanup: - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } - return( ret ); + return ret; } #else -static int rsa_encrypt_wrap( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_encrypt_wrap(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - mbedtls_rsa_context * rsa = (mbedtls_rsa_context *) ctx; - *olen = mbedtls_rsa_get_len( rsa ); + mbedtls_rsa_context *rsa = (mbedtls_rsa_context *) ctx; + *olen = mbedtls_rsa_get_len(rsa); - if( *olen > osize ) - return( MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE ); + if (*olen > osize) { + return MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE; + } - return( mbedtls_rsa_pkcs1_encrypt( rsa, f_rng, p_rng, - ilen, input, output ) ); + return mbedtls_rsa_pkcs1_encrypt(rsa, f_rng, p_rng, + ilen, input, output); } #endif -static int rsa_check_pair_wrap( const void *pub, const void *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int rsa_check_pair_wrap(const void *pub, const void *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { (void) f_rng; (void) p_rng; - return( mbedtls_rsa_check_pub_priv( (const mbedtls_rsa_context *) pub, - (const mbedtls_rsa_context *) prv ) ); + return mbedtls_rsa_check_pub_priv((const mbedtls_rsa_context *) pub, + (const mbedtls_rsa_context *) prv); } -static void *rsa_alloc_wrap( void ) +static void *rsa_alloc_wrap(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_rsa_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_rsa_context)); - if( ctx != NULL ) - mbedtls_rsa_init( (mbedtls_rsa_context *) ctx ); + if (ctx != NULL) { + mbedtls_rsa_init((mbedtls_rsa_context *) ctx); + } - return( ctx ); + return ctx; } -static void rsa_free_wrap( void *ctx ) +static void rsa_free_wrap(void *ctx) { - mbedtls_rsa_free( (mbedtls_rsa_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_rsa_free((mbedtls_rsa_context *) ctx); + mbedtls_free(ctx); } -static void rsa_debug( const void *ctx, mbedtls_pk_debug_item *items ) +static void rsa_debug(const void *ctx, mbedtls_pk_debug_item *items) { #if defined(MBEDTLS_RSA_ALT) /* Not supported */ @@ -556,13 +570,13 @@ static void rsa_debug( const void *ctx, mbedtls_pk_debug_item *items ) #else items->type = MBEDTLS_PK_DEBUG_MPI; items->name = "rsa.N"; - items->value = &( ((mbedtls_rsa_context *) ctx)->N ); + items->value = &(((mbedtls_rsa_context *) ctx)->N); items++; items->type = MBEDTLS_PK_DEBUG_MPI; items->name = "rsa.E"; - items->value = &( ((mbedtls_rsa_context *) ctx)->E ); + items->value = &(((mbedtls_rsa_context *) ctx)->E); #endif } @@ -594,78 +608,80 @@ const mbedtls_pk_info_t mbedtls_rsa_info = { /* * Generic EC key */ -static int eckey_can_do( mbedtls_pk_type_t type ) +static int eckey_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_ECKEY || - type == MBEDTLS_PK_ECKEY_DH || - type == MBEDTLS_PK_ECDSA ); + return type == MBEDTLS_PK_ECKEY || + type == MBEDTLS_PK_ECKEY_DH || + type == MBEDTLS_PK_ECDSA; } -static size_t eckey_get_bitlen( const void *ctx ) +static size_t eckey_get_bitlen(const void *ctx) { - return( ((mbedtls_ecp_keypair *) ctx)->grp.pbits ); + return ((mbedtls_ecp_keypair *) ctx)->grp.pbits; } #if defined(MBEDTLS_ECDSA_C) /* Forward declarations */ -static int ecdsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ); +static int ecdsa_verify_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len); -static int ecdsa_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ); +static int ecdsa_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng); -static int eckey_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +static int eckey_verify_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecdsa_context ecdsa; - mbedtls_ecdsa_init( &ecdsa ); + mbedtls_ecdsa_init(&ecdsa); - if( ( ret = mbedtls_ecdsa_from_keypair( &ecdsa, ctx ) ) == 0 ) - ret = ecdsa_verify_wrap( &ecdsa, md_alg, hash, hash_len, sig, sig_len ); + if ((ret = mbedtls_ecdsa_from_keypair(&ecdsa, ctx)) == 0) { + ret = ecdsa_verify_wrap(&ecdsa, md_alg, hash, hash_len, sig, sig_len); + } - mbedtls_ecdsa_free( &ecdsa ); + mbedtls_ecdsa_free(&ecdsa); - return( ret ); + return ret; } -static int eckey_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int eckey_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecdsa_context ecdsa; - mbedtls_ecdsa_init( &ecdsa ); + mbedtls_ecdsa_init(&ecdsa); - if( ( ret = mbedtls_ecdsa_from_keypair( &ecdsa, ctx ) ) == 0 ) - ret = ecdsa_sign_wrap( &ecdsa, md_alg, hash, hash_len, - sig, sig_size, sig_len, - f_rng, p_rng ); + if ((ret = mbedtls_ecdsa_from_keypair(&ecdsa, ctx)) == 0) { + ret = ecdsa_sign_wrap(&ecdsa, md_alg, hash, hash_len, + sig, sig_size, sig_len, + f_rng, p_rng); + } - mbedtls_ecdsa_free( &ecdsa ); + mbedtls_ecdsa_free(&ecdsa); - return( ret ); + return ret; } #if defined(MBEDTLS_ECP_RESTARTABLE) /* Forward declarations */ -static int ecdsa_verify_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - void *rs_ctx ); +static int ecdsa_verify_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + void *rs_ctx); -static int ecdsa_sign_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - void *rs_ctx ); +static int ecdsa_sign_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + void *rs_ctx); /* * Restart context for ECDSA operations with ECKEY context @@ -673,123 +689,127 @@ static int ecdsa_sign_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, * We need to store an actual ECDSA context, as we need to pass the same to * the underlying ecdsa function, so we can't create it on the fly every time. */ -typedef struct -{ +typedef struct { mbedtls_ecdsa_restart_ctx ecdsa_rs; mbedtls_ecdsa_context ecdsa_ctx; } eckey_restart_ctx; -static void *eckey_rs_alloc( void ) +static void *eckey_rs_alloc(void) { eckey_restart_ctx *rs_ctx; - void *ctx = mbedtls_calloc( 1, sizeof( eckey_restart_ctx ) ); + void *ctx = mbedtls_calloc(1, sizeof(eckey_restart_ctx)); - if( ctx != NULL ) - { + if (ctx != NULL) { rs_ctx = ctx; - mbedtls_ecdsa_restart_init( &rs_ctx->ecdsa_rs ); - mbedtls_ecdsa_init( &rs_ctx->ecdsa_ctx ); + mbedtls_ecdsa_restart_init(&rs_ctx->ecdsa_rs); + mbedtls_ecdsa_init(&rs_ctx->ecdsa_ctx); } - return( ctx ); + return ctx; } -static void eckey_rs_free( void *ctx ) +static void eckey_rs_free(void *ctx) { eckey_restart_ctx *rs_ctx; - if( ctx == NULL) + if (ctx == NULL) { return; + } rs_ctx = ctx; - mbedtls_ecdsa_restart_free( &rs_ctx->ecdsa_rs ); - mbedtls_ecdsa_free( &rs_ctx->ecdsa_ctx ); + mbedtls_ecdsa_restart_free(&rs_ctx->ecdsa_rs); + mbedtls_ecdsa_free(&rs_ctx->ecdsa_ctx); - mbedtls_free( ctx ); + mbedtls_free(ctx); } -static int eckey_verify_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - void *rs_ctx ) +static int eckey_verify_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + void *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; eckey_restart_ctx *rs = rs_ctx; /* Should never happen */ - if( rs == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (rs == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } /* set up our own sub-context if needed (that is, on first run) */ - if( rs->ecdsa_ctx.grp.pbits == 0 ) - MBEDTLS_MPI_CHK( mbedtls_ecdsa_from_keypair( &rs->ecdsa_ctx, ctx ) ); + if (rs->ecdsa_ctx.grp.pbits == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecdsa_from_keypair(&rs->ecdsa_ctx, ctx)); + } - MBEDTLS_MPI_CHK( ecdsa_verify_rs_wrap( &rs->ecdsa_ctx, - md_alg, hash, hash_len, - sig, sig_len, &rs->ecdsa_rs ) ); + MBEDTLS_MPI_CHK(ecdsa_verify_rs_wrap(&rs->ecdsa_ctx, + md_alg, hash, hash_len, + sig, sig_len, &rs->ecdsa_rs)); cleanup: - return( ret ); + return ret; } -static int eckey_sign_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - void *rs_ctx ) +static int eckey_sign_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + void *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; eckey_restart_ctx *rs = rs_ctx; /* Should never happen */ - if( rs == NULL ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (rs == NULL) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } /* set up our own sub-context if needed (that is, on first run) */ - if( rs->ecdsa_ctx.grp.pbits == 0 ) - MBEDTLS_MPI_CHK( mbedtls_ecdsa_from_keypair( &rs->ecdsa_ctx, ctx ) ); + if (rs->ecdsa_ctx.grp.pbits == 0) { + MBEDTLS_MPI_CHK(mbedtls_ecdsa_from_keypair(&rs->ecdsa_ctx, ctx)); + } - MBEDTLS_MPI_CHK( ecdsa_sign_rs_wrap( &rs->ecdsa_ctx, md_alg, - hash, hash_len, sig, sig_size, sig_len, - f_rng, p_rng, &rs->ecdsa_rs ) ); + MBEDTLS_MPI_CHK(ecdsa_sign_rs_wrap(&rs->ecdsa_ctx, md_alg, + hash, hash_len, sig, sig_size, sig_len, + f_rng, p_rng, &rs->ecdsa_rs)); cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_RESTARTABLE */ #endif /* MBEDTLS_ECDSA_C */ -static int eckey_check_pair( const void *pub, const void *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int eckey_check_pair(const void *pub, const void *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { - return( mbedtls_ecp_check_pub_priv( (const mbedtls_ecp_keypair *) pub, - (const mbedtls_ecp_keypair *) prv, - f_rng, p_rng ) ); + return mbedtls_ecp_check_pub_priv((const mbedtls_ecp_keypair *) pub, + (const mbedtls_ecp_keypair *) prv, + f_rng, p_rng); } -static void *eckey_alloc_wrap( void ) +static void *eckey_alloc_wrap(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_ecp_keypair ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ecp_keypair)); - if( ctx != NULL ) - mbedtls_ecp_keypair_init( ctx ); + if (ctx != NULL) { + mbedtls_ecp_keypair_init(ctx); + } - return( ctx ); + return ctx; } -static void eckey_free_wrap( void *ctx ) +static void eckey_free_wrap(void *ctx) { - mbedtls_ecp_keypair_free( (mbedtls_ecp_keypair *) ctx ); - mbedtls_free( ctx ); + mbedtls_ecp_keypair_free((mbedtls_ecp_keypair *) ctx); + mbedtls_free(ctx); } -static void eckey_debug( const void *ctx, mbedtls_pk_debug_item *items ) +static void eckey_debug(const void *ctx, mbedtls_pk_debug_item *items) { items->type = MBEDTLS_PK_DEBUG_ECP; items->name = "eckey.Q"; - items->value = &( ((mbedtls_ecp_keypair *) ctx)->Q ); + items->value = &(((mbedtls_ecp_keypair *) ctx)->Q); } const mbedtls_pk_info_t mbedtls_eckey_info = { @@ -823,10 +843,10 @@ const mbedtls_pk_info_t mbedtls_eckey_info = { /* * EC key restricted to ECDH */ -static int eckeydh_can_do( mbedtls_pk_type_t type ) +static int eckeydh_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_ECKEY || - type == MBEDTLS_PK_ECKEY_DH ); + return type == MBEDTLS_PK_ECKEY || + type == MBEDTLS_PK_ECKEY_DH; } const mbedtls_pk_info_t mbedtls_eckeydh_info = { @@ -854,9 +874,9 @@ const mbedtls_pk_info_t mbedtls_eckeydh_info = { #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_ECDSA_C) -static int ecdsa_can_do( mbedtls_pk_type_t type ) +static int ecdsa_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_ECDSA ); + return type == MBEDTLS_PK_ECDSA; } #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -864,33 +884,32 @@ static int ecdsa_can_do( mbedtls_pk_type_t type ) * An ASN.1 encoded signature is a sequence of two ASN.1 integers. Parse one of * those integers and convert it to the fixed-length encoding expected by PSA. */ -static int extract_ecdsa_sig_int( unsigned char **from, const unsigned char *end, - unsigned char *to, size_t to_len ) +static int extract_ecdsa_sig_int(unsigned char **from, const unsigned char *end, + unsigned char *to, size_t to_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t unpadded_len, padding_len; - if( ( ret = mbedtls_asn1_get_tag( from, end, &unpadded_len, - MBEDTLS_ASN1_INTEGER ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_asn1_get_tag(from, end, &unpadded_len, + MBEDTLS_ASN1_INTEGER)) != 0) { + return ret; } - while( unpadded_len > 0 && **from == 0x00 ) - { - ( *from )++; + while (unpadded_len > 0 && **from == 0x00) { + (*from)++; unpadded_len--; } - if( unpadded_len > to_len || unpadded_len == 0 ) - return( MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (unpadded_len > to_len || unpadded_len == 0) { + return MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } padding_len = to_len - unpadded_len; - memset( to, 0x00, padding_len ); - memcpy( to + padding_len, *from, unpadded_len ); - ( *from ) += unpadded_len; + memset(to, 0x00, padding_len); + memcpy(to + padding_len, *from, unpadded_len); + (*from) += unpadded_len; - return( 0 ); + return 0; } /* @@ -898,29 +917,32 @@ static int extract_ecdsa_sig_int( unsigned char **from, const unsigned char *end * to a raw {r,s} buffer. Note: the provided sig buffer must be at least * twice as big as int_size. */ -static int extract_ecdsa_sig( unsigned char **p, const unsigned char *end, - unsigned char *sig, size_t int_size ) +static int extract_ecdsa_sig(unsigned char **p, const unsigned char *end, + unsigned char *sig, size_t int_size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t tmp_size; - if( ( ret = mbedtls_asn1_get_tag( p, end, &tmp_size, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &tmp_size, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; + } /* Extract r */ - if( ( ret = extract_ecdsa_sig_int( p, end, sig, int_size ) ) != 0 ) - return( ret ); + if ((ret = extract_ecdsa_sig_int(p, end, sig, int_size)) != 0) { + return ret; + } /* Extract s */ - if( ( ret = extract_ecdsa_sig_int( p, end, sig + int_size, int_size ) ) != 0 ) - return( ret ); + if ((ret = extract_ecdsa_sig_int(p, end, sig + int_size, int_size)) != 0) { + return ret; + } - return( 0 ); + return 0; } -static int ecdsa_verify_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +static int ecdsa_verify_wrap(void *ctx_arg, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { mbedtls_ecdsa_context *ctx = ctx_arg; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -935,88 +957,87 @@ static int ecdsa_verify_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA_ANY; size_t curve_bits; psa_ecc_family_t curve = - mbedtls_ecc_group_to_psa( ctx->grp.id, &curve_bits ); - const size_t signature_part_size = ( ctx->grp.nbits + 7 ) / 8; + mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits); + const size_t signature_part_size = (ctx->grp.nbits + 7) / 8; ((void) md_alg); - if( curve == 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (curve == 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } /* mbedtls_pk_write_pubkey() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &pk_info; key.pk_ctx = ctx; - p = buf + sizeof( buf ); - key_len = mbedtls_pk_write_pubkey( &p, buf, &key ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + p = buf + sizeof(buf); + key_len = mbedtls_pk_write_pubkey(&p, buf, &key); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - psa_set_key_type( &attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY( curve ) ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, psa_sig_md ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, psa_sig_md); - status = psa_import_key( &attributes, - buf + sizeof( buf ) - key_len, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + status = psa_import_key(&attributes, + buf + sizeof(buf) - key_len, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); goto cleanup; } /* We don't need the exported key anymore and can * reuse its buffer for signature extraction. */ - if( 2 * signature_part_size > sizeof( buf ) ) - { + if (2 * signature_part_size > sizeof(buf)) { ret = MBEDTLS_ERR_PK_BAD_INPUT_DATA; goto cleanup; } - p = (unsigned char*) sig; - if( ( ret = extract_ecdsa_sig( &p, sig + sig_len, buf, - signature_part_size ) ) != 0 ) - { + p = (unsigned char *) sig; + if ((ret = extract_ecdsa_sig(&p, sig + sig_len, buf, + signature_part_size)) != 0) { goto cleanup; } - status = psa_verify_hash( key_id, psa_sig_md, - hash, hash_len, - buf, 2 * signature_part_size ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_ecdsa( status ); - goto cleanup; + status = psa_verify_hash(key_id, psa_sig_md, + hash, hash_len, + buf, 2 * signature_part_size); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_ecdsa(status); + goto cleanup; } - if( p != sig + sig_len ) - { + if (p != sig + sig_len) { ret = MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; goto cleanup; } ret = 0; cleanup: - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } - return( ret ); + return ret; } #else /* MBEDTLS_USE_PSA_CRYPTO */ -static int ecdsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ) +static int ecdsa_verify_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ((void) md_alg); - ret = mbedtls_ecdsa_read_signature( (mbedtls_ecdsa_context *) ctx, - hash, hash_len, sig, sig_len ); + ret = mbedtls_ecdsa_read_signature((mbedtls_ecdsa_context *) ctx, + hash, hash_len, sig, sig_len); - if( ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH ) - return( MBEDTLS_ERR_PK_SIG_LEN_MISMATCH ); + if (ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) { + return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; + } - return( ret ); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -1030,48 +1051,49 @@ static int ecdsa_verify_wrap( void *ctx, mbedtls_md_type_t md_alg, * start: start of the output buffer, and also of the mpi to write at the end * n_len: length of the mpi to read from start */ -static int asn1_write_mpibuf( unsigned char **p, unsigned char *start, - size_t n_len ) +static int asn1_write_mpibuf(unsigned char **p, unsigned char *start, + size_t n_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - if( (size_t)( *p - start ) < n_len ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if ((size_t) (*p - start) < n_len) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } len = n_len; *p -= len; - memmove( *p, start, len ); + memmove(*p, start, len); /* ASN.1 DER encoding requires minimal length, so skip leading 0s. * Neither r nor s should be 0, but as a failsafe measure, still detect * that rather than overflowing the buffer in case of a PSA error. */ - while( len > 0 && **p == 0x00 ) - { + while (len > 0 && **p == 0x00) { ++(*p); --len; } /* this is only reached if the signature was invalid */ - if( len == 0 ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + if (len == 0) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } /* if the msb is 1, ASN.1 requires that we prepend a 0. * Neither r nor s can be 0, so we can assume len > 0 at all times. */ - if( **p & 0x80 ) - { - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (**p & 0x80) { + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = 0x00; len += 1; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_INTEGER ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_INTEGER)); - return( (int) len ); + return (int) len; } /* Transcode signature from PSA format to ASN.1 sequence. @@ -1082,25 +1104,26 @@ static int asn1_write_mpibuf( unsigned char **p, unsigned char *start, * [in/out] sig_len: signature length pre- and post-transcoding * [int] buf_len: the available size the in/out buffer */ -static int pk_ecdsa_sig_asn1_from_psa( unsigned char *sig, size_t *sig_len, - size_t buf_len ) +static int pk_ecdsa_sig_asn1_from_psa(unsigned char *sig, size_t *sig_len, + size_t buf_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; const size_t rs_len = *sig_len / 2; unsigned char *p = sig + buf_len; - MBEDTLS_ASN1_CHK_ADD( len, asn1_write_mpibuf( &p, sig + rs_len, rs_len ) ); - MBEDTLS_ASN1_CHK_ADD( len, asn1_write_mpibuf( &p, sig, rs_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, asn1_write_mpibuf(&p, sig + rs_len, rs_len)); + MBEDTLS_ASN1_CHK_ADD(len, asn1_write_mpibuf(&p, sig, rs_len)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &p, sig, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &p, sig, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&p, sig, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&p, sig, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - memmove( sig, p, len ); + memmove(sig, p, len); *sig_len = len; - return( 0 ); + return 0; } /* Locate an ECDSA privateKey in a RFC 5915, or SEC1 Appendix C.4 ASN.1 buffer @@ -1109,8 +1132,8 @@ static int pk_ecdsa_sig_asn1_from_psa( unsigned char *sig, size_t *sig_len, * [in] end: ASN.1 buffer end * [out] key_len: the ECDSA privateKey length in bytes */ -static int find_ecdsa_private_key( unsigned char **buf, unsigned char *end, - size_t *key_len ) +static int find_ecdsa_private_key(unsigned char **buf, unsigned char *end, + size_t *key_len) { size_t len; int ret; @@ -1126,32 +1149,35 @@ static int find_ecdsa_private_key( unsigned char **buf, unsigned char *end, * } */ - if( ( ret = mbedtls_asn1_get_tag( buf, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(buf, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; + } /* version */ - if( ( ret = mbedtls_asn1_get_tag( buf, end, &len, - MBEDTLS_ASN1_INTEGER ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(buf, end, &len, + MBEDTLS_ASN1_INTEGER)) != 0) { + return ret; + } *buf += len; /* privateKey */ - if( ( ret = mbedtls_asn1_get_tag( buf, end, &len, - MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(buf, end, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return ret; + } *key_len = len; return 0; } -static int ecdsa_sign_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int ecdsa_sign_wrap(void *ctx_arg, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { mbedtls_ecdsa_context *ctx = ctx_arg; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1162,145 +1188,150 @@ static int ecdsa_sign_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, size_t key_len; unsigned char buf[MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES]; unsigned char *p; - psa_algorithm_t psa_hash = mbedtls_hash_info_psa_from_md( md_alg ); + psa_algorithm_t psa_hash = mbedtls_hash_info_psa_from_md(md_alg); #if defined(MBEDTLS_ECDSA_DETERMINISTIC) - psa_algorithm_t psa_sig_md = PSA_ALG_DETERMINISTIC_ECDSA( psa_hash ); + psa_algorithm_t psa_sig_md = PSA_ALG_DETERMINISTIC_ECDSA(psa_hash); #else - psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA( psa_hash ); + psa_algorithm_t psa_sig_md = PSA_ALG_ECDSA(psa_hash); #endif size_t curve_bits; psa_ecc_family_t curve = - mbedtls_ecc_group_to_psa( ctx->grp.id, &curve_bits ); + mbedtls_ecc_group_to_psa(ctx->grp.id, &curve_bits); /* PSA has its own RNG */ ((void) f_rng); ((void) p_rng); - if( curve == 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (curve == 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } /* mbedtls_pk_write_key_der() expects a full PK context; * re-construct one to make it happy */ key.pk_info = &mbedtls_eckey_info; key.pk_ctx = ctx; - key_len = mbedtls_pk_write_key_der( &key, buf, sizeof( buf ) ); - if( key_len <= 0 ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + key_len = mbedtls_pk_write_key_der(&key, buf, sizeof(buf)); + if (key_len <= 0) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } - p = buf + sizeof( buf ) - key_len; - ret = find_ecdsa_private_key( &p, buf + sizeof( buf ), &key_len ); - if( ret != 0 ) - goto cleanup; - - psa_set_key_type( &attributes, PSA_KEY_TYPE_ECC_KEY_PAIR( curve ) ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, psa_sig_md ); - - status = psa_import_key( &attributes, - p, key_len, - &key_id ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa( status ); + p = buf + sizeof(buf) - key_len; + ret = find_ecdsa_private_key(&p, buf + sizeof(buf), &key_len); + if (ret != 0) { goto cleanup; } - status = psa_sign_hash( key_id, psa_sig_md, hash, hash_len, - sig, sig_size, sig_len ); - if( status != PSA_SUCCESS ) - { - ret = mbedtls_pk_error_from_psa_ecdsa( status ); - goto cleanup; + psa_set_key_type(&attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(curve)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, psa_sig_md); + + status = psa_import_key(&attributes, + p, key_len, + &key_id); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + goto cleanup; } - ret = pk_ecdsa_sig_asn1_from_psa( sig, sig_len, sig_size ); + status = psa_sign_hash(key_id, psa_sig_md, hash, hash_len, + sig, sig_size, sig_len); + if (status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa_ecdsa(status); + goto cleanup; + } + + ret = pk_ecdsa_sig_asn1_from_psa(sig, sig_len, sig_size); cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - status = psa_destroy_key( key_id ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = mbedtls_pk_error_from_psa( status ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + status = psa_destroy_key(key_id); + if (ret == 0 && status != PSA_SUCCESS) { + ret = mbedtls_pk_error_from_psa(status); + } - return( ret ); + return ret; } #else -static int ecdsa_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int ecdsa_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { - return( mbedtls_ecdsa_write_signature( (mbedtls_ecdsa_context *) ctx, - md_alg, hash, hash_len, - sig, sig_size, sig_len, - f_rng, p_rng ) ); + return mbedtls_ecdsa_write_signature((mbedtls_ecdsa_context *) ctx, + md_alg, hash, hash_len, + sig, sig_size, sig_len, + f_rng, p_rng); } #endif #if defined(MBEDTLS_ECP_RESTARTABLE) -static int ecdsa_verify_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - void *rs_ctx ) +static int ecdsa_verify_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + void *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ((void) md_alg); ret = mbedtls_ecdsa_read_signature_restartable( - (mbedtls_ecdsa_context *) ctx, - hash, hash_len, sig, sig_len, - (mbedtls_ecdsa_restart_ctx *) rs_ctx ); + (mbedtls_ecdsa_context *) ctx, + hash, hash_len, sig, sig_len, + (mbedtls_ecdsa_restart_ctx *) rs_ctx); - if( ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH ) - return( MBEDTLS_ERR_PK_SIG_LEN_MISMATCH ); + if (ret == MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) { + return MBEDTLS_ERR_PK_SIG_LEN_MISMATCH; + } - return( ret ); + return ret; } -static int ecdsa_sign_rs_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - void *rs_ctx ) +static int ecdsa_sign_rs_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + void *rs_ctx) { - return( mbedtls_ecdsa_write_signature_restartable( - (mbedtls_ecdsa_context *) ctx, - md_alg, hash, hash_len, sig, sig_size, sig_len, f_rng, p_rng, - (mbedtls_ecdsa_restart_ctx *) rs_ctx ) ); + return mbedtls_ecdsa_write_signature_restartable( + (mbedtls_ecdsa_context *) ctx, + md_alg, hash, hash_len, sig, sig_size, sig_len, f_rng, p_rng, + (mbedtls_ecdsa_restart_ctx *) rs_ctx); } #endif /* MBEDTLS_ECP_RESTARTABLE */ -static void *ecdsa_alloc_wrap( void ) +static void *ecdsa_alloc_wrap(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_ecdsa_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ecdsa_context)); - if( ctx != NULL ) - mbedtls_ecdsa_init( (mbedtls_ecdsa_context *) ctx ); + if (ctx != NULL) { + mbedtls_ecdsa_init((mbedtls_ecdsa_context *) ctx); + } - return( ctx ); + return ctx; } -static void ecdsa_free_wrap( void *ctx ) +static void ecdsa_free_wrap(void *ctx) { - mbedtls_ecdsa_free( (mbedtls_ecdsa_context *) ctx ); - mbedtls_free( ctx ); + mbedtls_ecdsa_free((mbedtls_ecdsa_context *) ctx); + mbedtls_free(ctx); } #if defined(MBEDTLS_ECP_RESTARTABLE) -static void *ecdsa_rs_alloc( void ) +static void *ecdsa_rs_alloc(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_ecdsa_restart_ctx ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_ecdsa_restart_ctx)); - if( ctx != NULL ) - mbedtls_ecdsa_restart_init( ctx ); + if (ctx != NULL) { + mbedtls_ecdsa_restart_init(ctx); + } - return( ctx ); + return ctx; } -static void ecdsa_rs_free( void *ctx ) +static void ecdsa_rs_free(void *ctx) { - mbedtls_ecdsa_restart_free( ctx ); - mbedtls_free( ctx ); + mbedtls_ecdsa_restart_free(ctx); + mbedtls_free(ctx); } #endif /* MBEDTLS_ECP_RESTARTABLE */ @@ -1333,104 +1364,108 @@ const mbedtls_pk_info_t mbedtls_ecdsa_info = { * Support for alternative RSA-private implementations */ -static int rsa_alt_can_do( mbedtls_pk_type_t type ) +static int rsa_alt_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_RSA ); + return type == MBEDTLS_PK_RSA; } -static size_t rsa_alt_get_bitlen( const void *ctx ) +static size_t rsa_alt_get_bitlen(const void *ctx) { const mbedtls_rsa_alt_context *rsa_alt = (const mbedtls_rsa_alt_context *) ctx; - return( 8 * rsa_alt->key_len_func( rsa_alt->key ) ); + return 8 * rsa_alt->key_len_func(rsa_alt->key); } -static int rsa_alt_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_alt_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { mbedtls_rsa_alt_context *rsa_alt = (mbedtls_rsa_alt_context *) ctx; #if SIZE_MAX > UINT_MAX - if( UINT_MAX < hash_len ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (UINT_MAX < hash_len) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } #endif /* SIZE_MAX > UINT_MAX */ - *sig_len = rsa_alt->key_len_func( rsa_alt->key ); - if( *sig_len > MBEDTLS_PK_SIGNATURE_MAX_SIZE ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - if( *sig_len > sig_size ) - return( MBEDTLS_ERR_PK_BUFFER_TOO_SMALL ); + *sig_len = rsa_alt->key_len_func(rsa_alt->key); + if (*sig_len > MBEDTLS_PK_SIGNATURE_MAX_SIZE) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } + if (*sig_len > sig_size) { + return MBEDTLS_ERR_PK_BUFFER_TOO_SMALL; + } - return( rsa_alt->sign_func( rsa_alt->key, f_rng, p_rng, - md_alg, (unsigned int) hash_len, hash, sig ) ); + return rsa_alt->sign_func(rsa_alt->key, f_rng, p_rng, + md_alg, (unsigned int) hash_len, hash, sig); } -static int rsa_alt_decrypt_wrap( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_alt_decrypt_wrap(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { mbedtls_rsa_alt_context *rsa_alt = (mbedtls_rsa_alt_context *) ctx; ((void) f_rng); ((void) p_rng); - if( ilen != rsa_alt->key_len_func( rsa_alt->key ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen != rsa_alt->key_len_func(rsa_alt->key)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - return( rsa_alt->decrypt_func( rsa_alt->key, - olen, input, output, osize ) ); + return rsa_alt->decrypt_func(rsa_alt->key, + olen, input, output, osize); } #if defined(MBEDTLS_RSA_C) -static int rsa_alt_check_pair( const void *pub, const void *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int rsa_alt_check_pair(const void *pub, const void *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { unsigned char sig[MBEDTLS_MPI_MAX_SIZE]; unsigned char hash[32]; size_t sig_len = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( rsa_alt_get_bitlen( prv ) != rsa_get_bitlen( pub ) ) - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); - - memset( hash, 0x2a, sizeof( hash ) ); - - if( ( ret = rsa_alt_sign_wrap( (void *) prv, MBEDTLS_MD_NONE, - hash, sizeof( hash ), - sig, sizeof( sig ), &sig_len, - f_rng, p_rng ) ) != 0 ) - { - return( ret ); + if (rsa_alt_get_bitlen(prv) != rsa_get_bitlen(pub)) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - if( rsa_verify_wrap( (void *) pub, MBEDTLS_MD_NONE, - hash, sizeof( hash ), sig, sig_len ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + memset(hash, 0x2a, sizeof(hash)); + + if ((ret = rsa_alt_sign_wrap((void *) prv, MBEDTLS_MD_NONE, + hash, sizeof(hash), + sig, sizeof(sig), &sig_len, + f_rng, p_rng)) != 0) { + return ret; } - return( 0 ); + if (rsa_verify_wrap((void *) pub, MBEDTLS_MD_NONE, + hash, sizeof(hash), sig, sig_len) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; + } + + return 0; } #endif /* MBEDTLS_RSA_C */ -static void *rsa_alt_alloc_wrap( void ) +static void *rsa_alt_alloc_wrap(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_rsa_alt_context ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_rsa_alt_context)); - if( ctx != NULL ) - memset( ctx, 0, sizeof( mbedtls_rsa_alt_context ) ); + if (ctx != NULL) { + memset(ctx, 0, sizeof(mbedtls_rsa_alt_context)); + } - return( ctx ); + return ctx; } -static void rsa_alt_free_wrap( void *ctx ) +static void rsa_alt_free_wrap(void *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_rsa_alt_context ) ); - mbedtls_free( ctx ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_rsa_alt_context)); + mbedtls_free(ctx); } const mbedtls_pk_info_t mbedtls_rsa_alt_info = { @@ -1464,51 +1499,52 @@ const mbedtls_pk_info_t mbedtls_rsa_alt_info = { #if defined(MBEDTLS_USE_PSA_CRYPTO) -static void *pk_opaque_alloc_wrap( void ) +static void *pk_opaque_alloc_wrap(void) { - void *ctx = mbedtls_calloc( 1, sizeof( mbedtls_svc_key_id_t ) ); + void *ctx = mbedtls_calloc(1, sizeof(mbedtls_svc_key_id_t)); /* no _init() function to call, as calloc() already zeroized */ - return( ctx ); + return ctx; } -static void pk_opaque_free_wrap( void *ctx ) +static void pk_opaque_free_wrap(void *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_svc_key_id_t ) ); - mbedtls_free( ctx ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_svc_key_id_t)); + mbedtls_free(ctx); } -static size_t pk_opaque_get_bitlen( const void *ctx ) +static size_t pk_opaque_get_bitlen(const void *ctx) { const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx; size_t bits; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - if( PSA_SUCCESS != psa_get_key_attributes( *key, &attributes ) ) - return( 0 ); + if (PSA_SUCCESS != psa_get_key_attributes(*key, &attributes)) { + return 0; + } - bits = psa_get_key_bits( &attributes ); - psa_reset_key_attributes( &attributes ); - return( bits ); + bits = psa_get_key_bits(&attributes); + psa_reset_key_attributes(&attributes); + return bits; } -static int pk_opaque_ecdsa_can_do( mbedtls_pk_type_t type ) +static int pk_opaque_ecdsa_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_ECKEY || - type == MBEDTLS_PK_ECDSA ); + return type == MBEDTLS_PK_ECKEY || + type == MBEDTLS_PK_ECDSA; } -static int pk_opaque_rsa_can_do( mbedtls_pk_type_t type ) +static int pk_opaque_rsa_can_do(mbedtls_pk_type_t type) { - return( type == MBEDTLS_PK_RSA || - type == MBEDTLS_PK_RSASSA_PSS ); + return type == MBEDTLS_PK_RSA || + type == MBEDTLS_PK_RSASSA_PSS; } -static int pk_opaque_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int pk_opaque_sign_wrap(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { #if !defined(MBEDTLS_ECDSA_C) && !defined(MBEDTLS_RSA_C) ((void) ctx); @@ -1520,7 +1556,7 @@ static int pk_opaque_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, ((void) sig_len); ((void) f_rng); ((void) p_rng); - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; #else /* !MBEDTLS_ECDSA_C && !MBEDTLS_RSA_C */ const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1532,47 +1568,48 @@ static int pk_opaque_sign_wrap( void *ctx, mbedtls_md_type_t md_alg, (void) f_rng; (void) p_rng; - status = psa_get_key_attributes( *key, &attributes ); - if( status != PSA_SUCCESS ) - return( mbedtls_pk_error_from_psa( status ) ); + status = psa_get_key_attributes(*key, &attributes); + if (status != PSA_SUCCESS) { + return mbedtls_pk_error_from_psa(status); + } - type = psa_get_key_type( &attributes ); - psa_reset_key_attributes( &attributes ); + type = psa_get_key_type(&attributes); + psa_reset_key_attributes(&attributes); #if defined(MBEDTLS_ECDSA_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) - alg = PSA_ALG_ECDSA( mbedtls_hash_info_psa_from_md( md_alg ) ); - else + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { + alg = PSA_ALG_ECDSA(mbedtls_hash_info_psa_from_md(md_alg)); + } else #endif /* MBEDTLS_ECDSA_C */ #if defined(MBEDTLS_RSA_C) - if( PSA_KEY_TYPE_IS_RSA( type ) ) - alg = PSA_ALG_RSA_PKCS1V15_SIGN( mbedtls_hash_info_psa_from_md( md_alg ) ); - else + if (PSA_KEY_TYPE_IS_RSA(type)) { + alg = PSA_ALG_RSA_PKCS1V15_SIGN(mbedtls_hash_info_psa_from_md(md_alg)); + } else #endif /* MBEDTLS_RSA_C */ - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; /* make the signature */ - status = psa_sign_hash( *key, alg, hash, hash_len, - sig, sig_size, sig_len ); - if( status != PSA_SUCCESS ) - { + status = psa_sign_hash(*key, alg, hash, hash_len, + sig, sig_size, sig_len); + if (status != PSA_SUCCESS) { #if defined(MBEDTLS_ECDSA_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) - return( mbedtls_pk_error_from_psa_ecdsa( status ) ); - else + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { + return mbedtls_pk_error_from_psa_ecdsa(status); + } else #endif /* MBEDTLS_ECDSA_C */ #if defined(MBEDTLS_RSA_C) - if( PSA_KEY_TYPE_IS_RSA( type ) ) - return( mbedtls_pk_error_from_psa_rsa( status ) ); - else + if (PSA_KEY_TYPE_IS_RSA(type)) { + return mbedtls_pk_error_from_psa_rsa(status); + } else #endif /* MBEDTLS_RSA_C */ - return( mbedtls_pk_error_from_psa( status ) ); + return mbedtls_pk_error_from_psa(status); } #if defined(MBEDTLS_ECDSA_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { /* transcode it to ASN.1 sequence */ - return( pk_ecdsa_sig_asn1_from_psa( sig, sig_len, sig_size ) ); + return pk_ecdsa_sig_asn1_from_psa(sig, sig_len, sig_size); + } #endif /* MBEDTLS_ECDSA_C */ return 0; @@ -1603,10 +1640,10 @@ const mbedtls_pk_info_t mbedtls_pk_ecdsa_opaque_info = { }; #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) -static int pk_opaque_rsa_decrypt( void *ctx, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int pk_opaque_rsa_decrypt(void *ctx, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { const mbedtls_svc_key_id_t *key = (const mbedtls_svc_key_id_t *) ctx; psa_status_t status; @@ -1615,13 +1652,12 @@ static int pk_opaque_rsa_decrypt( void *ctx, (void) f_rng; (void) p_rng; - status = psa_asymmetric_decrypt( *key, PSA_ALG_RSA_PKCS1V15_CRYPT, - input, ilen, - NULL, 0, - output, osize, olen ); - if( status != PSA_SUCCESS ) - { - return( mbedtls_pk_error_from_psa_rsa( status ) ); + status = psa_asymmetric_decrypt(*key, PSA_ALG_RSA_PKCS1V15_CRYPT, + input, ilen, + NULL, 0, + output, osize, olen); + if (status != PSA_SUCCESS) { + return mbedtls_pk_error_from_psa_rsa(status); } return 0; diff --git a/library/pk_wrap.h b/library/pk_wrap.h index fc756db65..67d0989c1 100644 --- a/library/pk_wrap.h +++ b/library/pk_wrap.h @@ -31,8 +31,7 @@ #include "psa/crypto.h" #endif /* MBEDTLS_PSA_CRYPTO_C */ -struct mbedtls_pk_info_t -{ +struct mbedtls_pk_info_t { /** Public key type */ mbedtls_pk_type_t type; @@ -40,77 +39,76 @@ struct mbedtls_pk_info_t const char *name; /** Get key size in bits */ - size_t (*get_bitlen)( const void * ); + size_t (*get_bitlen)(const void *); /** Tell if the context implements this type (e.g. ECKEY can do ECDSA) */ - int (*can_do)( mbedtls_pk_type_t type ); + int (*can_do)(mbedtls_pk_type_t type); /** Verify signature */ - int (*verify_func)( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len ); + int (*verify_func)(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len); /** Make signature */ - int (*sign_func)( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); + int (*sign_func)(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /** Verify signature (restartable) */ - int (*verify_rs_func)( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - const unsigned char *sig, size_t sig_len, - void *rs_ctx ); + int (*verify_rs_func)(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + const unsigned char *sig, size_t sig_len, + void *rs_ctx); /** Make signature (restartable) */ - int (*sign_rs_func)( void *ctx, mbedtls_md_type_t md_alg, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, size_t *sig_len, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, void *rs_ctx ); + int (*sign_rs_func)(void *ctx, mbedtls_md_type_t md_alg, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, size_t *sig_len, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, void *rs_ctx); #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ /** Decrypt message */ - int (*decrypt_func)( void *ctx, const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); + int (*decrypt_func)(void *ctx, const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** Encrypt message */ - int (*encrypt_func)( void *ctx, const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen, size_t osize, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); + int (*encrypt_func)(void *ctx, const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen, size_t osize, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** Check public-private key pair */ - int (*check_pair_func)( const void *pub, const void *prv, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); + int (*check_pair_func)(const void *pub, const void *prv, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** Allocate a new context */ - void * (*ctx_alloc_func)( void ); + void * (*ctx_alloc_func)(void); /** Free the given context */ - void (*ctx_free_func)( void *ctx ); + void (*ctx_free_func)(void *ctx); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /** Allocate the restart context */ - void * (*rs_alloc_func)( void ); + void *(*rs_alloc_func)(void); /** Free the restart context */ - void (*rs_free_func)( void *rs_ctx ); + void (*rs_free_func)(void *rs_ctx); #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ /** Interface with the debug module */ - void (*debug_func)( const void *ctx, mbedtls_pk_debug_item *items ); + void (*debug_func)(const void *ctx, mbedtls_pk_debug_item *items); }; #if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) /* Container for RSA-alt */ -typedef struct -{ +typedef struct { void *key; mbedtls_pk_rsa_alt_decrypt_func decrypt_func; mbedtls_pk_rsa_alt_sign_func sign_func; @@ -140,25 +138,25 @@ extern const mbedtls_pk_info_t mbedtls_pk_ecdsa_opaque_info; extern const mbedtls_pk_info_t mbedtls_pk_rsa_opaque_info; #if defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY) -int mbedtls_pk_error_from_psa_ecdsa( psa_status_t status ); +int mbedtls_pk_error_from_psa_ecdsa(psa_status_t status); #endif #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_PSA_CRYPTO_C) -int mbedtls_pk_error_from_psa( psa_status_t status ); +int mbedtls_pk_error_from_psa(psa_status_t status); #if defined(PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY) || \ defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) -int mbedtls_pk_error_from_psa_rsa( psa_status_t status ); +int mbedtls_pk_error_from_psa_rsa(psa_status_t status); #endif /* PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY || PSA_WANT_KEY_TYPE_RSA_KEY_PAIR */ #if defined(MBEDTLS_RSA_C) -int mbedtls_pk_psa_rsa_sign_ext( psa_algorithm_t psa_alg_md, - mbedtls_rsa_context *rsa_ctx, - const unsigned char *hash, size_t hash_len, - unsigned char *sig, size_t sig_size, - size_t *sig_len ); +int mbedtls_pk_psa_rsa_sign_ext(psa_algorithm_t psa_alg_md, + mbedtls_rsa_context *rsa_ctx, + const unsigned char *hash, size_t hash_len, + unsigned char *sig, size_t sig_size, + size_t *sig_len); #endif /* MBEDTLS_RSA_C */ #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/pkcs12.c b/library/pkcs12.c index f33507987..f5ab742c5 100644 --- a/library/pkcs12.c +++ b/library/pkcs12.c @@ -44,8 +44,8 @@ #if defined(MBEDTLS_ASN1_PARSE_C) -static int pkcs12_parse_pbe_params( mbedtls_asn1_buf *params, - mbedtls_asn1_buf *salt, int *iterations ) +static int pkcs12_parse_pbe_params(mbedtls_asn1_buf *params, + mbedtls_asn1_buf *salt, int *iterations) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char **p = ¶ms->p; @@ -58,77 +58,83 @@ static int pkcs12_parse_pbe_params( mbedtls_asn1_buf *params, * } * */ - if( params->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } - if( ( ret = mbedtls_asn1_get_tag( p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &salt->len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret); + } salt->p = *p; *p += salt->len; - if( ( ret = mbedtls_asn1_get_int( p, end, iterations ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(p, end, iterations)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, ret); + } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } #define PKCS12_MAX_PWDLEN 128 -static int pkcs12_pbe_derive_key_iv( mbedtls_asn1_buf *pbe_params, mbedtls_md_type_t md_type, - const unsigned char *pwd, size_t pwdlen, - unsigned char *key, size_t keylen, - unsigned char *iv, size_t ivlen ) +static int pkcs12_pbe_derive_key_iv(mbedtls_asn1_buf *pbe_params, mbedtls_md_type_t md_type, + const unsigned char *pwd, size_t pwdlen, + unsigned char *key, size_t keylen, + unsigned char *iv, size_t ivlen) { int ret, iterations = 0; mbedtls_asn1_buf salt; size_t i; unsigned char unipwd[PKCS12_MAX_PWDLEN * 2 + 2]; - if( pwdlen > PKCS12_MAX_PWDLEN ) - return( MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA ); + if (pwdlen > PKCS12_MAX_PWDLEN) { + return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA; + } - memset( &salt, 0, sizeof(mbedtls_asn1_buf) ); - memset( &unipwd, 0, sizeof(unipwd) ); + memset(&salt, 0, sizeof(mbedtls_asn1_buf)); + memset(&unipwd, 0, sizeof(unipwd)); - if( ( ret = pkcs12_parse_pbe_params( pbe_params, &salt, - &iterations ) ) != 0 ) - return( ret ); + if ((ret = pkcs12_parse_pbe_params(pbe_params, &salt, + &iterations)) != 0) { + return ret; + } - for( i = 0; i < pwdlen; i++ ) + for (i = 0; i < pwdlen; i++) { unipwd[i * 2 + 1] = pwd[i]; - - if( ( ret = mbedtls_pkcs12_derivation( key, keylen, unipwd, pwdlen * 2 + 2, - salt.p, salt.len, md_type, - MBEDTLS_PKCS12_DERIVE_KEY, iterations ) ) != 0 ) - { - return( ret ); } - if( iv == NULL || ivlen == 0 ) - return( 0 ); - - if( ( ret = mbedtls_pkcs12_derivation( iv, ivlen, unipwd, pwdlen * 2 + 2, - salt.p, salt.len, md_type, - MBEDTLS_PKCS12_DERIVE_IV, iterations ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pkcs12_derivation(key, keylen, unipwd, pwdlen * 2 + 2, + salt.p, salt.len, md_type, + MBEDTLS_PKCS12_DERIVE_KEY, iterations)) != 0) { + return ret; } - return( 0 ); + + if (iv == NULL || ivlen == 0) { + return 0; + } + + if ((ret = mbedtls_pkcs12_derivation(iv, ivlen, unipwd, pwdlen * 2 + 2, + salt.p, salt.len, md_type, + MBEDTLS_PKCS12_DERIVE_IV, iterations)) != 0) { + return ret; + } + return 0; } #undef PKCS12_MAX_PWDLEN -int mbedtls_pkcs12_pbe( mbedtls_asn1_buf *pbe_params, int mode, - mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *data, size_t len, - unsigned char *output ) +int mbedtls_pkcs12_pbe(mbedtls_asn1_buf *pbe_params, int mode, + mbedtls_cipher_type_t cipher_type, mbedtls_md_type_t md_type, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *data, size_t len, + unsigned char *output) { int ret, keylen = 0; unsigned char key[32]; @@ -137,73 +143,76 @@ int mbedtls_pkcs12_pbe( mbedtls_asn1_buf *pbe_params, int mode, mbedtls_cipher_context_t cipher_ctx; size_t olen = 0; - if( pwd == NULL && pwdlen != 0 ) - return( MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA ); + if (pwd == NULL && pwdlen != 0) { + return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA; + } - cipher_info = mbedtls_cipher_info_from_type( cipher_type ); - if( cipher_info == NULL ) - return( MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE ); + cipher_info = mbedtls_cipher_info_from_type(cipher_type); + if (cipher_info == NULL) { + return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE; + } keylen = cipher_info->key_bitlen / 8; - if( ( ret = pkcs12_pbe_derive_key_iv( pbe_params, md_type, pwd, pwdlen, - key, keylen, - iv, cipher_info->iv_size ) ) != 0 ) - { - return( ret ); + if ((ret = pkcs12_pbe_derive_key_iv(pbe_params, md_type, pwd, pwdlen, + key, keylen, + iv, cipher_info->iv_size)) != 0) { + return ret; } - mbedtls_cipher_init( &cipher_ctx ); + mbedtls_cipher_init(&cipher_ctx); - if( ( ret = mbedtls_cipher_setup( &cipher_ctx, cipher_info ) ) != 0 ) - goto exit; - - if( ( ret = mbedtls_cipher_setkey( &cipher_ctx, key, 8 * keylen, (mbedtls_operation_t) mode ) ) != 0 ) - goto exit; - - if( ( ret = mbedtls_cipher_set_iv( &cipher_ctx, iv, cipher_info->iv_size ) ) != 0 ) - goto exit; - - if( ( ret = mbedtls_cipher_reset( &cipher_ctx ) ) != 0 ) - goto exit; - - if( ( ret = mbedtls_cipher_update( &cipher_ctx, data, len, - output, &olen ) ) != 0 ) - { + if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) { goto exit; } - if( ( ret = mbedtls_cipher_finish( &cipher_ctx, output + olen, &olen ) ) != 0 ) + if ((ret = + mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen, + (mbedtls_operation_t) mode)) != 0) { + goto exit; + } + + if ((ret = mbedtls_cipher_set_iv(&cipher_ctx, iv, cipher_info->iv_size)) != 0) { + goto exit; + } + + if ((ret = mbedtls_cipher_reset(&cipher_ctx)) != 0) { + goto exit; + } + + if ((ret = mbedtls_cipher_update(&cipher_ctx, data, len, + output, &olen)) != 0) { + goto exit; + } + + if ((ret = mbedtls_cipher_finish(&cipher_ctx, output + olen, &olen)) != 0) { ret = MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH; + } exit: - mbedtls_platform_zeroize( key, sizeof( key ) ); - mbedtls_platform_zeroize( iv, sizeof( iv ) ); - mbedtls_cipher_free( &cipher_ctx ); + mbedtls_platform_zeroize(key, sizeof(key)); + mbedtls_platform_zeroize(iv, sizeof(iv)); + mbedtls_cipher_free(&cipher_ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_ASN1_PARSE_C */ -static void pkcs12_fill_buffer( unsigned char *data, size_t data_len, - const unsigned char *filler, size_t fill_len ) +static void pkcs12_fill_buffer(unsigned char *data, size_t data_len, + const unsigned char *filler, size_t fill_len) { unsigned char *p = data; size_t use_len; - if( filler != NULL && fill_len != 0 ) - { - while( data_len > 0 ) - { - use_len = ( data_len > fill_len ) ? fill_len : data_len; - memcpy( p, filler, use_len ); + if (filler != NULL && fill_len != 0) { + while (data_len > 0) { + use_len = (data_len > fill_len) ? fill_len : data_len; + memcpy(p, filler, use_len); p += use_len; data_len -= use_len; } - } - else - { + } else { /* If either of the above are not true then clearly there is nothing * that this function can do. The function should *not* be called * under either of those circumstances, as you could end up with an @@ -213,117 +222,127 @@ static void pkcs12_fill_buffer( unsigned char *data, size_t data_len, } -static int calculate_hashes( mbedtls_md_type_t md_type, int iterations, - unsigned char *diversifier, unsigned char *salt_block, - unsigned char *pwd_block, unsigned char *hash_output, int use_salt, - int use_password, size_t hlen, size_t v ) +static int calculate_hashes(mbedtls_md_type_t md_type, int iterations, + unsigned char *diversifier, unsigned char *salt_block, + unsigned char *pwd_block, unsigned char *hash_output, int use_salt, + int use_password, size_t hlen, size_t v) { #if defined(MBEDTLS_MD_C) int ret = -1; size_t i; const mbedtls_md_info_t *md_info; mbedtls_md_context_t md_ctx; - md_info = mbedtls_md_info_from_type( md_type ); - if( md_info == NULL ) - return ( MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE ); + md_info = mbedtls_md_info_from_type(md_type); + if (md_info == NULL) { + return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE; + } - mbedtls_md_init( &md_ctx ); + mbedtls_md_init(&md_ctx); - if( ( ret = mbedtls_md_setup( &md_ctx, md_info, 0 ) ) != 0 ) - return ( ret ); + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) { + return ret; + } // Calculate hash( diversifier || salt_block || pwd_block ) - if( ( ret = mbedtls_md_starts( &md_ctx ) ) != 0 ) + if ((ret = mbedtls_md_starts(&md_ctx)) != 0) { goto exit; - - if( ( ret = mbedtls_md_update( &md_ctx, diversifier, v ) ) != 0 ) - goto exit; - - if( use_salt != 0 ) - { - if( ( ret = mbedtls_md_update( &md_ctx, salt_block, v ) ) != 0 ) - goto exit; } - if( use_password != 0 ) - { - if( ( ret = mbedtls_md_update( &md_ctx, pwd_block, v ) ) != 0 ) - goto exit; + if ((ret = mbedtls_md_update(&md_ctx, diversifier, v)) != 0) { + goto exit; } - if( ( ret = mbedtls_md_finish( &md_ctx, hash_output ) ) != 0 ) + if (use_salt != 0) { + if ((ret = mbedtls_md_update(&md_ctx, salt_block, v)) != 0) { + goto exit; + } + } + + if (use_password != 0) { + if ((ret = mbedtls_md_update(&md_ctx, pwd_block, v)) != 0) { + goto exit; + } + } + + if ((ret = mbedtls_md_finish(&md_ctx, hash_output)) != 0) { goto exit; + } // Perform remaining ( iterations - 1 ) recursive hash calculations - for( i = 1; i < (size_t) iterations; i++ ) - { - if( ( ret = mbedtls_md( md_info, hash_output, hlen, hash_output ) ) - != 0 ) + for (i = 1; i < (size_t) iterations; i++) { + if ((ret = mbedtls_md(md_info, hash_output, hlen, hash_output)) + != 0) { goto exit; + } } exit: - mbedtls_md_free( &md_ctx ); + mbedtls_md_free(&md_ctx); return ret; #else psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; - psa_algorithm_t alg = mbedtls_psa_translate_md( md_type ); + psa_algorithm_t alg = mbedtls_psa_translate_md(md_type); psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t status_abort = PSA_ERROR_CORRUPTION_DETECTED; - size_t i, out_len, out_size = PSA_HASH_LENGTH( alg ); + size_t i, out_len, out_size = PSA_HASH_LENGTH(alg); - if( alg == PSA_ALG_NONE ) - return ( MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE ); + if (alg == PSA_ALG_NONE) { + return MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE; + } - if( ( status = psa_hash_setup( &op, alg ) ) != PSA_SUCCESS ) + if ((status = psa_hash_setup(&op, alg)) != PSA_SUCCESS) { goto exit; + } // Calculate hash( diversifier || salt_block || pwd_block ) - if( ( status = psa_hash_update( &op, diversifier, v ) ) != PSA_SUCCESS ) + if ((status = psa_hash_update(&op, diversifier, v)) != PSA_SUCCESS) { goto exit; - - if( use_salt != 0 ) - { - if( ( status = psa_hash_update( &op, salt_block, v ) ) != PSA_SUCCESS ) - goto exit; } - if( use_password != 0 ) - { - if( ( status = psa_hash_update( &op, pwd_block, v ) ) != PSA_SUCCESS ) + if (use_salt != 0) { + if ((status = psa_hash_update(&op, salt_block, v)) != PSA_SUCCESS) { goto exit; + } } - if( ( status = psa_hash_finish( &op, hash_output, out_size, &out_len ) ) - != PSA_SUCCESS ) + if (use_password != 0) { + if ((status = psa_hash_update(&op, pwd_block, v)) != PSA_SUCCESS) { + goto exit; + } + } + + if ((status = psa_hash_finish(&op, hash_output, out_size, &out_len)) + != PSA_SUCCESS) { goto exit; + } // Perform remaining ( iterations - 1 ) recursive hash calculations - for( i = 1; i < (size_t) iterations; i++ ) - { - if( ( status = psa_hash_compute( alg, hash_output, hlen, hash_output, - out_size, &out_len ) ) != PSA_SUCCESS ) + for (i = 1; i < (size_t) iterations; i++) { + if ((status = psa_hash_compute(alg, hash_output, hlen, hash_output, + out_size, &out_len)) != PSA_SUCCESS) { goto exit; + } } exit: - status_abort = psa_hash_abort( &op ); - if( status == PSA_SUCCESS ) + status_abort = psa_hash_abort(&op); + if (status == PSA_SUCCESS) { status = status_abort; - return ( mbedtls_md_error_from_psa( status ) ); + } + return mbedtls_md_error_from_psa(status); #endif /* !MBEDTLS_MD_C */ } -int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *salt, size_t saltlen, - mbedtls_md_type_t md_type, int id, int iterations ) +int mbedtls_pkcs12_derivation(unsigned char *data, size_t datalen, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *salt, size_t saltlen, + mbedtls_md_type_t md_type, int id, int iterations) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned int j; unsigned char diversifier[128]; - unsigned char salt_block[128], pwd_block[128], hash_block[128] = {0}; + unsigned char salt_block[128], pwd_block[128], hash_block[128] = { 0 }; unsigned char hash_output[MBEDTLS_HASH_MAX_SIZE]; unsigned char *p; unsigned char c; @@ -333,84 +352,83 @@ int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen, size_t hlen, use_len, v, i; // This version only allows max of 64 bytes of password or salt - if( datalen > 128 || pwdlen > 64 || saltlen > 64 ) - return( MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA ); - - if( pwd == NULL && pwdlen != 0 ) - return( MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA ); - - if( salt == NULL && saltlen != 0 ) - return( MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA ); - - use_password = ( pwd && pwdlen != 0 ); - use_salt = ( salt && saltlen != 0 ); - - hlen = mbedtls_hash_info_get_size( md_type ); - - if( hlen <= 32 ) - v = 64; - else - v = 128; - - memset( diversifier, (unsigned char) id, v ); - - if( use_salt != 0 ) - { - pkcs12_fill_buffer( salt_block, v, salt, saltlen ); + if (datalen > 128 || pwdlen > 64 || saltlen > 64) { + return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA; } - if( use_password != 0 ) - { - pkcs12_fill_buffer( pwd_block, v, pwd, pwdlen ); + if (pwd == NULL && pwdlen != 0) { + return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA; + } + + if (salt == NULL && saltlen != 0) { + return MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA; + } + + use_password = (pwd && pwdlen != 0); + use_salt = (salt && saltlen != 0); + + hlen = mbedtls_hash_info_get_size(md_type); + + if (hlen <= 32) { + v = 64; + } else { + v = 128; + } + + memset(diversifier, (unsigned char) id, v); + + if (use_salt != 0) { + pkcs12_fill_buffer(salt_block, v, salt, saltlen); + } + + if (use_password != 0) { + pkcs12_fill_buffer(pwd_block, v, pwd, pwdlen); } p = data; - while( datalen > 0 ) - { - if( calculate_hashes( md_type, iterations, diversifier, salt_block, - pwd_block, hash_output, use_salt, use_password, hlen, - v ) != 0 ) - { + while (datalen > 0) { + if (calculate_hashes(md_type, iterations, diversifier, salt_block, + pwd_block, hash_output, use_salt, use_password, hlen, + v) != 0) { goto exit; } - use_len = ( datalen > hlen ) ? hlen : datalen; - memcpy( p, hash_output, use_len ); + use_len = (datalen > hlen) ? hlen : datalen; + memcpy(p, hash_output, use_len); datalen -= use_len; p += use_len; - if( datalen == 0 ) + if (datalen == 0) { break; + } // Concatenating copies of hash_output into hash_block (B) - pkcs12_fill_buffer( hash_block, v, hash_output, hlen ); + pkcs12_fill_buffer(hash_block, v, hash_output, hlen); // B += 1 - for( i = v; i > 0; i-- ) - if( ++hash_block[i - 1] != 0 ) + for (i = v; i > 0; i--) { + if (++hash_block[i - 1] != 0) { break; - - if( use_salt != 0 ) - { - // salt_block += B - c = 0; - for( i = v; i > 0; i-- ) - { - j = salt_block[i - 1] + hash_block[i - 1] + c; - c = MBEDTLS_BYTE_1( j ); - salt_block[i - 1] = MBEDTLS_BYTE_0( j ); } } - if( use_password != 0 ) - { + if (use_salt != 0) { + // salt_block += B + c = 0; + for (i = v; i > 0; i--) { + j = salt_block[i - 1] + hash_block[i - 1] + c; + c = MBEDTLS_BYTE_1(j); + salt_block[i - 1] = MBEDTLS_BYTE_0(j); + } + } + + if (use_password != 0) { // pwd_block += B c = 0; - for( i = v; i > 0; i-- ) - { + for (i = v; i > 0; i--) { j = pwd_block[i - 1] + hash_block[i - 1] + c; - c = MBEDTLS_BYTE_1( j ); - pwd_block[i - 1] = MBEDTLS_BYTE_0( j ); + c = MBEDTLS_BYTE_1(j); + pwd_block[i - 1] = MBEDTLS_BYTE_0(j); } } } @@ -418,12 +436,12 @@ int mbedtls_pkcs12_derivation( unsigned char *data, size_t datalen, ret = 0; exit: - mbedtls_platform_zeroize( salt_block, sizeof( salt_block ) ); - mbedtls_platform_zeroize( pwd_block, sizeof( pwd_block ) ); - mbedtls_platform_zeroize( hash_block, sizeof( hash_block ) ); - mbedtls_platform_zeroize( hash_output, sizeof( hash_output ) ); + mbedtls_platform_zeroize(salt_block, sizeof(salt_block)); + mbedtls_platform_zeroize(pwd_block, sizeof(pwd_block)); + mbedtls_platform_zeroize(hash_block, sizeof(hash_block)); + mbedtls_platform_zeroize(hash_output, sizeof(hash_output)); - return( ret ); + return ret; } #endif /* MBEDTLS_PKCS12_C */ diff --git a/library/pkcs5.c b/library/pkcs5.c index 1e3b17e64..4e71dd396 100644 --- a/library/pkcs5.c +++ b/library/pkcs5.c @@ -48,18 +48,19 @@ #include "mbedtls/psa_util.h" #if defined(MBEDTLS_ASN1_PARSE_C) -static int pkcs5_parse_pbkdf2_params( const mbedtls_asn1_buf *params, - mbedtls_asn1_buf *salt, int *iterations, - int *keylen, mbedtls_md_type_t *md_type ) +static int pkcs5_parse_pbkdf2_params(const mbedtls_asn1_buf *params, + mbedtls_asn1_buf *salt, int *iterations, + int *keylen, mbedtls_md_type_t *md_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_asn1_buf prf_alg_oid; unsigned char *p = params->p; const unsigned char *end = params->p + params->len; - if( params->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } /* * PBKDF2-params ::= SEQUENCE { * salt OCTET STRING, @@ -69,45 +70,52 @@ static int pkcs5_parse_pbkdf2_params( const mbedtls_asn1_buf *params, * } * */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &salt->len, - MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &salt->len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); + } salt->p = p; p += salt->len; - if( ( ret = mbedtls_asn1_get_int( &p, end, iterations ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); - - if( p == end ) - return( 0 ); - - if( ( ret = mbedtls_asn1_get_int( &p, end, keylen ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end, iterations)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); } - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } - if( ( ret = mbedtls_asn1_get_alg_null( &p, end, &prf_alg_oid ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end, keylen)) != 0) { + if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); + } + } - if( mbedtls_oid_get_md_hmac( &prf_alg_oid, md_type ) != 0 ) - return( MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE ); + if (p == end) { + return 0; + } - if( p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if ((ret = mbedtls_asn1_get_alg_null(&p, end, &prf_alg_oid)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); + } - return( 0 ); + if (mbedtls_oid_get_md_hmac(&prf_alg_oid, md_type) != 0) { + return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE; + } + + if (p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + + return 0; } -int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, - const unsigned char *pwd, size_t pwdlen, - const unsigned char *data, size_t datalen, - unsigned char *output ) +int mbedtls_pkcs5_pbes2(const mbedtls_asn1_buf *pbe_params, int mode, + const unsigned char *pwd, size_t pwdlen, + const unsigned char *data, size_t datalen, + unsigned char *output) { int ret, iterations = 0, keylen = 0; unsigned char *p, *end; @@ -129,38 +137,41 @@ int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, * encryptionScheme AlgorithmIdentifier {{PBES2-Encs}} * } */ - if( pbe_params->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (pbe_params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } - if( ( ret = mbedtls_asn1_get_alg( &p, end, &kdf_alg_oid, - &kdf_alg_params ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_alg(&p, end, &kdf_alg_oid, + &kdf_alg_params)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); + } // Only PBKDF2 supported at the moment // - if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS5_PBKDF2, &kdf_alg_oid ) != 0 ) - return( MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE ); - - if( ( ret = pkcs5_parse_pbkdf2_params( &kdf_alg_params, - &salt, &iterations, &keylen, - &md_type ) ) != 0 ) - { - return( ret ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS5_PBKDF2, &kdf_alg_oid) != 0) { + return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE; } - if( ( ret = mbedtls_asn1_get_alg( &p, end, &enc_scheme_oid, - &enc_scheme_params ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret ) ); + if ((ret = pkcs5_parse_pbkdf2_params(&kdf_alg_params, + &salt, &iterations, &keylen, + &md_type)) != 0) { + return ret; } - if( mbedtls_oid_get_cipher_alg( &enc_scheme_oid, &cipher_alg ) != 0 ) - return( MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE ); + if ((ret = mbedtls_asn1_get_alg(&p, end, &enc_scheme_oid, + &enc_scheme_params)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS5_INVALID_FORMAT, ret); + } - cipher_info = mbedtls_cipher_info_from_type( cipher_alg ); - if( cipher_info == NULL ) - return( MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE ); + if (mbedtls_oid_get_cipher_alg(&enc_scheme_oid, &cipher_alg) != 0) { + return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE; + } + + cipher_info = mbedtls_cipher_info_from_type(cipher_alg); + if (cipher_info == NULL) { + return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE; + } /* * The value of keylen from pkcs5_parse_pbkdf2_params() is ignored @@ -168,164 +179,176 @@ int mbedtls_pkcs5_pbes2( const mbedtls_asn1_buf *pbe_params, int mode, */ keylen = cipher_info->key_bitlen / 8; - if( enc_scheme_params.tag != MBEDTLS_ASN1_OCTET_STRING || - enc_scheme_params.len != cipher_info->iv_size ) - { - return( MBEDTLS_ERR_PKCS5_INVALID_FORMAT ); + if (enc_scheme_params.tag != MBEDTLS_ASN1_OCTET_STRING || + enc_scheme_params.len != cipher_info->iv_size) { + return MBEDTLS_ERR_PKCS5_INVALID_FORMAT; } - mbedtls_cipher_init( &cipher_ctx ); + mbedtls_cipher_init(&cipher_ctx); - memcpy( iv, enc_scheme_params.p, enc_scheme_params.len ); + memcpy(iv, enc_scheme_params.p, enc_scheme_params.len); - if( ( ret = mbedtls_pkcs5_pbkdf2_hmac_ext( md_type, pwd, pwdlen, salt.p, - salt.len, iterations, keylen, - key ) ) != 0 ) - { + if ((ret = mbedtls_pkcs5_pbkdf2_hmac_ext(md_type, pwd, pwdlen, salt.p, + salt.len, iterations, keylen, + key)) != 0) { goto exit; } - if( ( ret = mbedtls_cipher_setup( &cipher_ctx, cipher_info ) ) != 0 ) + if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) { goto exit; + } - if( ( ret = mbedtls_cipher_setkey( &cipher_ctx, key, 8 * keylen, - (mbedtls_operation_t) mode ) ) != 0 ) + if ((ret = mbedtls_cipher_setkey(&cipher_ctx, key, 8 * keylen, + (mbedtls_operation_t) mode)) != 0) { goto exit; + } - if( ( ret = mbedtls_cipher_crypt( &cipher_ctx, iv, enc_scheme_params.len, - data, datalen, output, &olen ) ) != 0 ) + if ((ret = mbedtls_cipher_crypt(&cipher_ctx, iv, enc_scheme_params.len, + data, datalen, output, &olen)) != 0) { ret = MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH; + } exit: - mbedtls_cipher_free( &cipher_ctx ); + mbedtls_cipher_free(&cipher_ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_ASN1_PARSE_C */ #if defined(MBEDTLS_MD_C) -static int pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, - const unsigned char *password, - size_t plen, const unsigned char *salt, size_t slen, - unsigned int iteration_count, - uint32_t key_length, unsigned char *output ) +static int pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx, + const unsigned char *password, + size_t plen, const unsigned char *salt, size_t slen, + unsigned int iteration_count, + uint32_t key_length, unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned int i; unsigned char md1[MBEDTLS_MD_MAX_SIZE]; unsigned char work[MBEDTLS_MD_MAX_SIZE]; - unsigned char md_size = mbedtls_md_get_size( ctx->md_info ); + unsigned char md_size = mbedtls_md_get_size(ctx->md_info); size_t use_len; unsigned char *out_p = output; unsigned char counter[4]; - memset( counter, 0, 4 ); + memset(counter, 0, 4); counter[3] = 1; #if UINT_MAX > 0xFFFFFFFF - if( iteration_count > 0xFFFFFFFF ) - return( MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA ); + if (iteration_count > 0xFFFFFFFF) { + return MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA; + } #endif - if( ( ret = mbedtls_md_hmac_starts( ctx, password, plen ) ) != 0 ) - return( ret ); - while( key_length ) - { + if ((ret = mbedtls_md_hmac_starts(ctx, password, plen)) != 0) { + return ret; + } + while (key_length) { // U1 ends up in work // - if( ( ret = mbedtls_md_hmac_update( ctx, salt, slen ) ) != 0 ) + if ((ret = mbedtls_md_hmac_update(ctx, salt, slen)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_update( ctx, counter, 4 ) ) != 0 ) + if ((ret = mbedtls_md_hmac_update(ctx, counter, 4)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_finish( ctx, work ) ) != 0 ) + if ((ret = mbedtls_md_hmac_finish(ctx, work)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_reset( ctx ) ) != 0 ) + if ((ret = mbedtls_md_hmac_reset(ctx)) != 0) { goto cleanup; + } - memcpy( md1, work, md_size ); + memcpy(md1, work, md_size); - for( i = 1; i < iteration_count; i++ ) - { + for (i = 1; i < iteration_count; i++) { // U2 ends up in md1 // - if( ( ret = mbedtls_md_hmac_update( ctx, md1, md_size ) ) != 0 ) + if ((ret = mbedtls_md_hmac_update(ctx, md1, md_size)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_finish( ctx, md1 ) ) != 0 ) + if ((ret = mbedtls_md_hmac_finish(ctx, md1)) != 0) { goto cleanup; + } - if( ( ret = mbedtls_md_hmac_reset( ctx ) ) != 0 ) + if ((ret = mbedtls_md_hmac_reset(ctx)) != 0) { goto cleanup; + } // U1 xor U2 // - mbedtls_xor( work, work, md1, md_size ); + mbedtls_xor(work, work, md1, md_size); } - use_len = ( key_length < md_size ) ? key_length : md_size; - memcpy( out_p, work, use_len ); + use_len = (key_length < md_size) ? key_length : md_size; + memcpy(out_p, work, use_len); key_length -= (uint32_t) use_len; out_p += use_len; - for( i = 4; i > 0; i-- ) - if( ++counter[i - 1] != 0 ) + for (i = 4; i > 0; i--) { + if (++counter[i - 1] != 0) { break; + } + } } cleanup: /* Zeroise buffers to clear sensitive data from memory. */ - mbedtls_platform_zeroize( work, MBEDTLS_MD_MAX_SIZE ); - mbedtls_platform_zeroize( md1, MBEDTLS_MD_MAX_SIZE ); + mbedtls_platform_zeroize(work, MBEDTLS_MD_MAX_SIZE); + mbedtls_platform_zeroize(md1, MBEDTLS_MD_MAX_SIZE); - return( ret ); + return ret; } #if !defined(MBEDTLS_DEPRECATED_REMOVED) -int mbedtls_pkcs5_pbkdf2_hmac( mbedtls_md_context_t *ctx, - const unsigned char *password, - size_t plen, const unsigned char *salt, size_t slen, - unsigned int iteration_count, - uint32_t key_length, unsigned char *output ) +int mbedtls_pkcs5_pbkdf2_hmac(mbedtls_md_context_t *ctx, + const unsigned char *password, + size_t plen, const unsigned char *salt, size_t slen, + unsigned int iteration_count, + uint32_t key_length, unsigned char *output) { - return( pkcs5_pbkdf2_hmac( ctx, password, plen, salt, slen, iteration_count, - key_length, output ) ); + return pkcs5_pbkdf2_hmac(ctx, password, plen, salt, slen, iteration_count, + key_length, output); } #endif #endif /* MBEDTLS_MD_C */ -int mbedtls_pkcs5_pbkdf2_hmac_ext( mbedtls_md_type_t md_alg, - const unsigned char *password, - size_t plen, const unsigned char *salt, size_t slen, - unsigned int iteration_count, - uint32_t key_length, unsigned char *output ) +int mbedtls_pkcs5_pbkdf2_hmac_ext(mbedtls_md_type_t md_alg, + const unsigned char *password, + size_t plen, const unsigned char *salt, size_t slen, + unsigned int iteration_count, + uint32_t key_length, unsigned char *output) { #if defined(MBEDTLS_MD_C) mbedtls_md_context_t md_ctx; const mbedtls_md_info_t *md_info = NULL; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - return( MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE ); + md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE; + } - mbedtls_md_init( &md_ctx ); + mbedtls_md_init(&md_ctx); - if( ( ret = mbedtls_md_setup( &md_ctx, md_info, 1 ) ) != 0 ) + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 1)) != 0) { goto exit; - ret = pkcs5_pbkdf2_hmac( &md_ctx, password, plen, salt, slen, - iteration_count, key_length, output ); + } + ret = pkcs5_pbkdf2_hmac(&md_ctx, password, plen, salt, slen, + iteration_count, key_length, output); exit: - mbedtls_md_free( &md_ctx ); - return( ret ); + mbedtls_md_free(&md_ctx); + return ret; #else unsigned int i; unsigned char md1[PSA_HASH_MAX_SIZE]; unsigned char work[PSA_HASH_MAX_SIZE]; - const unsigned char md_size = mbedtls_hash_info_get_size( md_alg ); + const unsigned char md_size = mbedtls_hash_info_get_size(md_alg); psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -335,109 +358,121 @@ exit: unsigned char counter[4]; mbedtls_svc_key_id_t psa_hmac_key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const psa_algorithm_t alg = PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( md_alg ) ); - const size_t out_size = PSA_MAC_LENGTH( PSA_KEY_TYPE_HMAC, 0, alg ); + const psa_algorithm_t alg = PSA_ALG_HMAC(mbedtls_hash_info_psa_from_md(md_alg)); + const size_t out_size = PSA_MAC_LENGTH(PSA_KEY_TYPE_HMAC, 0, alg); - memset( counter, 0, sizeof( counter ) ); + memset(counter, 0, sizeof(counter)); counter[3] = 1; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); - if( key_length == 0 ) + if (key_length == 0) { return 0; - if( ( status = psa_import_key( &attributes, - password, plen, - &psa_hmac_key ) ) != PSA_SUCCESS ) - { + } + if ((status = psa_import_key(&attributes, + password, plen, + &psa_hmac_key)) != PSA_SUCCESS) { return MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA; } #if UINT_MAX > 0xFFFFFFFF - if( iteration_count > 0xFFFFFFFF ) - return( MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA ); + if (iteration_count > 0xFFFFFFFF) { + return MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA; + } #endif - while( key_length ) - { - status = psa_mac_sign_setup( &operation, psa_hmac_key, - PSA_ALG_HMAC( alg ) ); - if( status != PSA_SUCCESS ) + while (key_length) { + status = psa_mac_sign_setup(&operation, psa_hmac_key, + PSA_ALG_HMAC(alg)); + if (status != PSA_SUCCESS) { goto cleanup; + } // U1 ends up in work - if( ( status = psa_mac_update( &operation, salt, slen ) ) != PSA_SUCCESS ) + if ((status = psa_mac_update(&operation, salt, slen)) != PSA_SUCCESS) { goto cleanup; + } - if( ( status = psa_mac_update( &operation, counter, sizeof( counter ) ) ) != PSA_SUCCESS ) + if ((status = psa_mac_update(&operation, counter, sizeof(counter))) != PSA_SUCCESS) { goto cleanup; + } - if( ( status = psa_mac_sign_finish( &operation, work, out_size, &out_len ) ) - != PSA_SUCCESS ) + if ((status = psa_mac_sign_finish(&operation, work, out_size, &out_len)) + != PSA_SUCCESS) { goto cleanup; + } - memcpy( md1, work, out_len ); + memcpy(md1, work, out_len); - for( i = 1; i < iteration_count; i++ ) - { + for (i = 1; i < iteration_count; i++) { // U2 ends up in md1 // - status = psa_mac_sign_setup( &operation, psa_hmac_key, - PSA_ALG_HMAC( alg ) ); - if( status != PSA_SUCCESS ) + status = psa_mac_sign_setup(&operation, psa_hmac_key, + PSA_ALG_HMAC(alg)); + if (status != PSA_SUCCESS) { goto cleanup; - if( ( status = psa_mac_update( &operation, md1, md_size ) ) != PSA_SUCCESS ) + } + if ((status = psa_mac_update(&operation, md1, md_size)) != PSA_SUCCESS) { goto cleanup; - if( ( status = psa_mac_sign_finish( &operation, md1, out_size, &out_len ) ) != PSA_SUCCESS ) + } + if ((status = + psa_mac_sign_finish(&operation, md1, out_size, &out_len)) != PSA_SUCCESS) { goto cleanup; + } // U1 xor U2 // - mbedtls_xor( work, work, md1, md_size ); + mbedtls_xor(work, work, md1, md_size); } - use_len = ( key_length < md_size ) ? key_length : md_size; - memcpy( out_p, work, use_len ); + use_len = (key_length < md_size) ? key_length : md_size; + memcpy(out_p, work, use_len); key_length -= (uint32_t) use_len; out_p += use_len; - for( i = 4; i > 0; i-- ) - if( ++counter[i - 1] != 0 ) + for (i = 4; i > 0; i--) { + if (++counter[i - 1] != 0) { break; + } + } } cleanup: /* Zeroise buffers to clear sensitive data from memory. */ - mbedtls_platform_zeroize( work, PSA_HASH_MAX_SIZE ); - mbedtls_platform_zeroize( md1, PSA_HASH_MAX_SIZE ); - status_destruction = psa_destroy_key( psa_hmac_key ); - if( status == PSA_SUCCESS && status_destruction != PSA_SUCCESS ) + mbedtls_platform_zeroize(work, PSA_HASH_MAX_SIZE); + mbedtls_platform_zeroize(md1, PSA_HASH_MAX_SIZE); + status_destruction = psa_destroy_key(psa_hmac_key); + if (status == PSA_SUCCESS && status_destruction != PSA_SUCCESS) { status = status_destruction; - status_destruction = psa_mac_abort( &operation ); - if( status == PSA_SUCCESS && status_destruction != PSA_SUCCESS ) + } + status_destruction = psa_mac_abort(&operation); + if (status == PSA_SUCCESS && status_destruction != PSA_SUCCESS) { status = status_destruction; + } - return( mbedtls_md_error_from_psa( status ) ); + return mbedtls_md_error_from_psa(status); #endif /* !MBEDTLS_MD_C */ } #if defined(MBEDTLS_SELF_TEST) #if !defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA) -int mbedtls_pkcs5_self_test( int verbose ) +int mbedtls_pkcs5_self_test(int verbose) { - if( verbose != 0 ) - mbedtls_printf( " PBKDF2 (SHA1): skipped\n\n" ); + if (verbose != 0) { + mbedtls_printf(" PBKDF2 (SHA1): skipped\n\n"); + } - return( 0 ); + return 0; } #else #define MAX_TESTS 6 static const size_t plen_test_data[MAX_TESTS] = - { 8, 8, 8, 24, 9 }; +{ 8, 8, 8, 24, 9 }; static const unsigned char password_test_data[MAX_TESTS][32] = { @@ -449,7 +484,7 @@ static const unsigned char password_test_data[MAX_TESTS][32] = }; static const size_t slen_test_data[MAX_TESTS] = - { 4, 4, 4, 36, 5 }; +{ 4, 4, 4, 36, 5 }; static const unsigned char salt_test_data[MAX_TESTS][40] = { @@ -461,10 +496,10 @@ static const unsigned char salt_test_data[MAX_TESTS][40] = }; static const uint32_t it_cnt_test_data[MAX_TESTS] = - { 1, 2, 4096, 4096, 4096 }; +{ 1, 2, 4096, 4096, 4096 }; static const uint32_t key_len_test_data[MAX_TESTS] = - { 20, 20, 20, 25, 16 }; +{ 20, 20, 20, 25, 16 }; static const unsigned char result_key_test_data[MAX_TESTS][32] = { @@ -485,39 +520,41 @@ static const unsigned char result_key_test_data[MAX_TESTS][32] = 0xcc, 0x37, 0xd7, 0xf0, 0x34, 0x25, 0xe0, 0xc3 }, }; -int mbedtls_pkcs5_self_test( int verbose ) +int mbedtls_pkcs5_self_test(int verbose) { int ret, i; unsigned char key[64]; - for( i = 0; i < MAX_TESTS; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " PBKDF2 (SHA1) #%d: ", i ); + for (i = 0; i < MAX_TESTS; i++) { + if (verbose != 0) { + mbedtls_printf(" PBKDF2 (SHA1) #%d: ", i); + } - ret = mbedtls_pkcs5_pbkdf2_hmac_ext( MBEDTLS_MD_SHA1, password_test_data[i], - plen_test_data[i], salt_test_data[i], - slen_test_data[i], it_cnt_test_data[i], - key_len_test_data[i], key ); - if( ret != 0 || - memcmp( result_key_test_data[i], key, key_len_test_data[i] ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + ret = mbedtls_pkcs5_pbkdf2_hmac_ext(MBEDTLS_MD_SHA1, password_test_data[i], + plen_test_data[i], salt_test_data[i], + slen_test_data[i], it_cnt_test_data[i], + key_len_test_data[i], key); + if (ret != 0 || + memcmp(result_key_test_data[i], key, key_len_test_data[i]) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto exit; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } exit: - return( ret ); + return ret; } #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA */ diff --git a/library/pkcs7.c b/library/pkcs7.c index 9100980f6..5fd8f6444 100644 --- a/library/pkcs7.c +++ b/library/pkcs7.c @@ -47,43 +47,44 @@ /** * Initializes the pkcs7 structure. */ -void mbedtls_pkcs7_init( mbedtls_pkcs7 *pkcs7 ) +void mbedtls_pkcs7_init(mbedtls_pkcs7 *pkcs7) { - memset( pkcs7, 0, sizeof( *pkcs7 ) ); + memset(pkcs7, 0, sizeof(*pkcs7)); } -static int pkcs7_get_next_content_len( unsigned char **p, unsigned char *end, - size_t *len ) +static int pkcs7_get_next_content_len(unsigned char **p, unsigned char *end, + size_t *len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_asn1_get_tag( p, end, len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_CONTEXT_SPECIFIC ); - if( ret != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ); + ret = mbedtls_asn1_get_tag(p, end, len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_CONTEXT_SPECIFIC); + if (ret != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret); } - return( ret ); + return ret; } /** * version Version * Version ::= INTEGER **/ -static int pkcs7_get_version( unsigned char **p, unsigned char *end, int *ver ) +static int pkcs7_get_version(unsigned char **p, unsigned char *end, int *ver) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_asn1_get_int( p, end, ver ); - if( ret != 0 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_VERSION, ret ); + ret = mbedtls_asn1_get_int(p, end, ver); + if (ret != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_VERSION, ret); + } /* If version != 1, return invalid version */ - if( *ver != MBEDTLS_PKCS7_SUPPORTED_VERSION ) + if (*ver != MBEDTLS_PKCS7_SUPPORTED_VERSION) { ret = MBEDTLS_ERR_PKCS7_INVALID_VERSION; + } - return( ret ); + return ret; } /** @@ -92,24 +93,24 @@ static int pkcs7_get_version( unsigned char **p, unsigned char *end, int *ver ) * content * [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL } **/ -static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, - mbedtls_pkcs7_buf *pkcs7 ) +static int pkcs7_get_content_info_type(unsigned char **p, unsigned char *end, + mbedtls_pkcs7_buf *pkcs7) { size_t len = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *start = *p; - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) { + ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE); + if (ret != 0) { *p = start; - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret); } - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OID ); - if( ret != 0 ) { + ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_OID); + if (ret != 0) { *p = start; - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO, ret); } pkcs7->tag = MBEDTLS_ASN1_OID; @@ -117,7 +118,7 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, pkcs7->p = *p; *p += len; - return( ret ); + return ret; } /** @@ -125,47 +126,47 @@ static int pkcs7_get_content_info_type( unsigned char **p, unsigned char *end, * * This is from x509.h **/ -static int pkcs7_get_digest_algorithm( unsigned char **p, unsigned char *end, - mbedtls_x509_buf *alg ) +static int pkcs7_get_digest_algorithm(unsigned char **p, unsigned char *end, + mbedtls_x509_buf *alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_alg_null( p, end, alg ) ) != 0 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ); + if ((ret = mbedtls_asn1_get_alg_null(p, end, alg)) != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_ALG, ret); + } - return( ret ); + return ret; } /** * DigestAlgorithmIdentifiers :: SET of DigestAlgorithmIdentifier **/ -static int pkcs7_get_digest_algorithm_set( unsigned char **p, - unsigned char *end, - mbedtls_x509_buf *alg ) +static int pkcs7_get_digest_algorithm_set(unsigned char **p, + unsigned char *end, + mbedtls_x509_buf *alg) { size_t len = 0; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SET ); - if( ret != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ) ); + ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SET); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_ALG, ret); } end = *p + len; - ret = mbedtls_asn1_get_alg_null( p, end, alg ); - if( ret != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_ALG, ret ) ); + ret = mbedtls_asn1_get_alg_null(p, end, alg); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_ALG, ret); } /** For now, it assumes there is only one digest algorithm specified **/ - if ( *p != end ) - return( MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); + if (*p != end) { + return MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; + } - return( 0 ); + return 0; } /** @@ -177,30 +178,29 @@ static int pkcs7_get_digest_algorithm_set( unsigned char **p, * 0 or higher is valid. * Return negative error code for failure. **/ -static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, - mbedtls_x509_crt *certs ) +static int pkcs7_get_certificates(unsigned char **p, unsigned char *end, + mbedtls_x509_crt *certs) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len1 = 0; size_t len2 = 0; unsigned char *end_set, *end_cert, *start; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len1, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( 0 ); - else - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len1, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return 0; + } else { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret); + } } start = *p; end_set = *p + len1; - ret = mbedtls_asn1_get_tag( p, end_set, &len2, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_CERT, ret ) ); + ret = mbedtls_asn1_get_tag(p, end_set, &len2, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_CERT, ret); } end_cert = *p + len2; @@ -211,15 +211,13 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, * So, we support only the root certificate and the single signer. * The behaviour would be improved with addition of multiple signer support. */ - if ( end_cert != end_set ) - { - return( MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE ); + if (end_cert != end_set) { + return MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; } *p = start; - if( ( ret = mbedtls_x509_crt_parse_der( certs, *p, len1 ) ) < 0 ) - { - return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + if ((ret = mbedtls_x509_crt_parse_der(certs, *p, len1)) < 0) { + return MBEDTLS_ERR_PKCS7_INVALID_CERT; } *p = *p + len1; @@ -228,21 +226,22 @@ static int pkcs7_get_certificates( unsigned char **p, unsigned char *end, * Since in this version we strictly support single certificate, and reaching * here implies we have parsed successfully, we return 1. */ - return( 1 ); + return 1; } /** * EncryptedDigest ::= OCTET STRING **/ -static int pkcs7_get_signature( unsigned char **p, unsigned char *end, - mbedtls_pkcs7_buf *signature ) +static int pkcs7_get_signature(unsigned char **p, unsigned char *end, + mbedtls_pkcs7_buf *signature) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_OCTET_STRING ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_OCTET_STRING); + if (ret != 0) { + return ret; + } signature->tag = MBEDTLS_ASN1_OCTET_STRING; signature->len = len; @@ -250,23 +249,23 @@ static int pkcs7_get_signature( unsigned char **p, unsigned char *end, *p = *p + len; - return( 0 ); + return 0; } -static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) +static void pkcs7_free_signer_info(mbedtls_pkcs7_signer_info *signer) { mbedtls_x509_name *name_cur; mbedtls_x509_name *name_prv; - if( signer == NULL ) + if (signer == NULL) { return; + } name_cur = signer->issuer.next; - while( name_cur != NULL ) - { + while (name_cur != NULL) { name_prv = name_cur; name_cur = name_cur->next; - mbedtls_free( name_prv ); + mbedtls_free(name_prv); } signer->issuer.next = NULL; } @@ -287,74 +286,83 @@ static void pkcs7_free_signer_info( mbedtls_pkcs7_signer_info *signer ) * Structure must not contain vales for authenticatedAttributes * and unauthenticatedAttributes. **/ -static int pkcs7_get_signer_info( unsigned char **p, unsigned char *end, - mbedtls_pkcs7_signer_info *signer ) +static int pkcs7_get_signer_info(unsigned char **p, unsigned char *end, + mbedtls_pkcs7_signer_info *signer) { unsigned char *end_signer; int asn1_ret = 0, ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - asn1_ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( asn1_ret != 0 ) + asn1_ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE); + if (asn1_ret != 0) { goto out; + } end_signer = *p + len; - ret = pkcs7_get_version( p, end_signer, &signer->version ); - if( ret != 0 ) + ret = pkcs7_get_version(p, end_signer, &signer->version); + if (ret != 0) { goto out; + } - asn1_ret = mbedtls_asn1_get_tag( p, end_signer, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( asn1_ret != 0 ) + asn1_ret = mbedtls_asn1_get_tag(p, end_signer, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE); + if (asn1_ret != 0) { goto out; + } /* Parsing IssuerAndSerialNumber */ signer->issuer_raw.p = *p; - asn1_ret = mbedtls_asn1_get_tag( p, end_signer, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( asn1_ret != 0 ) + asn1_ret = mbedtls_asn1_get_tag(p, end_signer, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE); + if (asn1_ret != 0) { goto out; + } - ret = mbedtls_x509_get_name( p, *p + len, &signer->issuer ); - if( ret != 0 ) + ret = mbedtls_x509_get_name(p, *p + len, &signer->issuer); + if (ret != 0) { goto out; + } signer->issuer_raw.len = *p - signer->issuer_raw.p; - ret = mbedtls_x509_get_serial( p, end_signer, &signer->serial ); - if( ret != 0 ) + ret = mbedtls_x509_get_serial(p, end_signer, &signer->serial); + if (ret != 0) { goto out; + } - ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->alg_identifier ); - if( ret != 0 ) + ret = pkcs7_get_digest_algorithm(p, end_signer, &signer->alg_identifier); + if (ret != 0) { goto out; + } /* Assume authenticatedAttributes is nonexistent */ - ret = pkcs7_get_digest_algorithm( p, end_signer, &signer->sig_alg_identifier ); - if( ret != 0 ) + ret = pkcs7_get_digest_algorithm(p, end_signer, &signer->sig_alg_identifier); + if (ret != 0) { goto out; - - ret = pkcs7_get_signature( p, end_signer, &signer->sig ); - if( ret != 0 ) - goto out; - - /* Do not permit any unauthenticated attributes */ - if( *p != end_signer ) - ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; - -out: - if( asn1_ret != 0 || ret != 0 ) - { - pkcs7_free_signer_info( signer ); - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, - asn1_ret ); } - return( ret ); + ret = pkcs7_get_signature(p, end_signer, &signer->sig); + if (ret != 0) { + goto out; + } + + /* Do not permit any unauthenticated attributes */ + if (*p != end_signer) { + ret = MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO; + } + +out: + if (asn1_ret != 0 || ret != 0) { + pkcs7_free_signer_info(signer); + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, + asn1_ret); + } + + return ret; } /** @@ -363,48 +371,45 @@ out: * 0 or higher is valid. * Return negative error code for failure. **/ -static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, - mbedtls_pkcs7_signer_info *signers_set ) +static int pkcs7_get_signers_info_set(unsigned char **p, unsigned char *end, + mbedtls_pkcs7_signer_info *signers_set) { unsigned char *end_set; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int count = 0; size_t len = 0; - ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SET ); - if( ret != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, ret ) ); + ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SET); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO, ret); } /* Detect zero signers */ - if( len == 0 ) - { - return( 0 ); + if (len == 0) { + return 0; } end_set = *p + len; - ret = pkcs7_get_signer_info( p, end_set, signers_set ); - if( ret != 0 ) - return( ret ); + ret = pkcs7_get_signer_info(p, end_set, signers_set); + if (ret != 0) { + return ret; + } count++; mbedtls_pkcs7_signer_info *prev = signers_set; - while( *p != end_set ) - { + while (*p != end_set) { mbedtls_pkcs7_signer_info *signer = - mbedtls_calloc( 1, sizeof( mbedtls_pkcs7_signer_info ) ); - if( !signer ) - { + mbedtls_calloc(1, sizeof(mbedtls_pkcs7_signer_info)); + if (!signer) { ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; goto cleanup; } - ret = pkcs7_get_signer_info( p, end_set, signer ); - if( ret != 0 ) { - mbedtls_free( signer ); + ret = pkcs7_get_signer_info(p, end_set, signer); + if (ret != 0) { + mbedtls_free(signer); goto cleanup; } prev->next = signer; @@ -412,20 +417,19 @@ static int pkcs7_get_signers_info_set( unsigned char **p, unsigned char *end, count++; } - return( count ); + return count; cleanup: - pkcs7_free_signer_info( signers_set ); + pkcs7_free_signer_info(signers_set); mbedtls_pkcs7_signer_info *signer = signers_set->next; - while( signer != NULL ) - { + while (signer != NULL) { prev = signer; signer = signer->next; - pkcs7_free_signer_info( prev ); - mbedtls_free( prev ); + pkcs7_free_signer_info(prev); + mbedtls_free(prev); } signers_set->next = NULL; - return( ret ); + return ret; } /** @@ -440,8 +444,8 @@ cleanup: * [0] IMPLICIT CertificateRevocationLists OPTIONAL, * signerInfos SignerInfos } */ -static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, - mbedtls_pkcs7_signed_data *signed_data ) +static int pkcs7_get_signed_data(unsigned char *buf, size_t buflen, + mbedtls_pkcs7_signed_data *signed_data) { unsigned char *p = buf; unsigned char *end = buf + buflen; @@ -450,47 +454,48 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_alg; - ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_CONSTRUCTED - | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret ) ); + ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_CONSTRUCTED + | MBEDTLS_ASN1_SEQUENCE); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PKCS7_INVALID_FORMAT, ret); } end_set = p + len; /* Get version of signed data */ - ret = pkcs7_get_version( &p, end_set, &signed_data->version ); - if( ret != 0 ) - return( ret ); + ret = pkcs7_get_version(&p, end_set, &signed_data->version); + if (ret != 0) { + return ret; + } /* Get digest algorithm */ - ret = pkcs7_get_digest_algorithm_set( &p, end_set, - &signed_data->digest_alg_identifiers ); - if( ret != 0 ) - return( ret ); + ret = pkcs7_get_digest_algorithm_set(&p, end_set, + &signed_data->digest_alg_identifiers); + if (ret != 0) { + return ret; + } - ret = mbedtls_oid_get_md_alg( &signed_data->digest_alg_identifiers, &md_alg ); - if( ret != 0 ) - { - return( MBEDTLS_ERR_PKCS7_INVALID_ALG ); + ret = mbedtls_oid_get_md_alg(&signed_data->digest_alg_identifiers, &md_alg); + if (ret != 0) { + return MBEDTLS_ERR_PKCS7_INVALID_ALG; } /* Do not expect any content */ - ret = pkcs7_get_content_info_type( &p, end_set, &signed_data->content.oid ); - if( ret != 0 ) - return( ret ); + ret = pkcs7_get_content_info_type(&p, end_set, &signed_data->content.oid); + if (ret != 0) { + return ret; + } - if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &signed_data->content.oid ) ) - { - return( MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_DATA, &signed_data->content.oid)) { + return MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO; } /* Look for certificates, there may or may not be any */ - mbedtls_x509_crt_init( &signed_data->certs ); - ret = pkcs7_get_certificates( &p, end_set, &signed_data->certs ); - if( ret < 0 ) - return( ret ); + mbedtls_x509_crt_init(&signed_data->certs); + ret = pkcs7_get_certificates(&p, end_set, &signed_data->certs); + if (ret < 0) { + return ret; + } signed_data->no_of_certs = ret; @@ -503,21 +508,23 @@ static int pkcs7_get_signed_data( unsigned char *buf, size_t buflen, signed_data->no_of_crls = 0; /* Get signers info */ - ret = pkcs7_get_signers_info_set( &p, end_set, &signed_data->signers ); - if( ret < 0 ) - return( ret ); + ret = pkcs7_get_signers_info_set(&p, end_set, &signed_data->signers); + if (ret < 0) { + return ret; + } signed_data->no_of_signers = ret; /* Don't permit trailing data */ - if ( p != end ) - return( MBEDTLS_ERR_PKCS7_INVALID_FORMAT ); + if (p != end) { + return MBEDTLS_ERR_PKCS7_INVALID_FORMAT; + } - return( 0 ); + return 0; } -int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, - const size_t buflen ) +int mbedtls_pkcs7_parse_der(mbedtls_pkcs7 *pkcs7, const unsigned char *buf, + const size_t buflen) { unsigned char *p; unsigned char *end; @@ -525,78 +532,75 @@ int mbedtls_pkcs7_parse_der( mbedtls_pkcs7 *pkcs7, const unsigned char *buf, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int isoidset = 0; - if( pkcs7 == NULL ) - { - return( MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA ); + if (pkcs7 == NULL) { + return MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA; } /* make an internal copy of the buffer for parsing */ - pkcs7->raw.p = p = mbedtls_calloc( 1, buflen ); - if( pkcs7->raw.p == NULL ) - { + pkcs7->raw.p = p = mbedtls_calloc(1, buflen); + if (pkcs7->raw.p == NULL) { ret = MBEDTLS_ERR_PKCS7_ALLOC_FAILED; goto out; } - memcpy( p, buf, buflen ); + memcpy(p, buf, buflen); pkcs7->raw.len = buflen; end = p + buflen; - ret = pkcs7_get_content_info_type( &p, end, &pkcs7->content_type_oid ); - if( ret != 0 ) - { + ret = pkcs7_get_content_info_type(&p, end, &pkcs7->content_type_oid); + if (ret != 0) { len = buflen; goto try_data; } - if( ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DATA, &pkcs7->content_type_oid ) - || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid ) - || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENVELOPED_DATA, &pkcs7->content_type_oid ) - || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA, &pkcs7->content_type_oid ) - || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_DIGESTED_DATA, &pkcs7->content_type_oid ) - || ! MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid ) ) - { + if (!MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_DATA, &pkcs7->content_type_oid) + || !MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid) + || !MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_ENVELOPED_DATA, &pkcs7->content_type_oid) + || !MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_SIGNED_AND_ENVELOPED_DATA, &pkcs7->content_type_oid) + || !MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_DIGESTED_DATA, &pkcs7->content_type_oid) + || !MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_ENCRYPTED_DATA, &pkcs7->content_type_oid)) { ret = MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE; goto out; } - if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS7_SIGNED_DATA, &pkcs7->content_type_oid ) ) - { + if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS7_SIGNED_DATA, &pkcs7->content_type_oid)) { ret = MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA; goto out; } isoidset = 1; - ret = pkcs7_get_next_content_len( &p, end, &len ); - if( ret != 0 ) + ret = pkcs7_get_next_content_len(&p, end, &len); + if (ret != 0) { goto out; + } try_data: - ret = pkcs7_get_signed_data( p, len, &pkcs7->signed_data ); - if ( ret != 0 ) + ret = pkcs7_get_signed_data(p, len, &pkcs7->signed_data); + if (ret != 0) { goto out; + } - if ( !isoidset ) - { + if (!isoidset) { pkcs7->content_type_oid.tag = MBEDTLS_ASN1_OID; - pkcs7->content_type_oid.len = MBEDTLS_OID_SIZE( MBEDTLS_OID_PKCS7_SIGNED_DATA ); - pkcs7->content_type_oid.p = (unsigned char *)MBEDTLS_OID_PKCS7_SIGNED_DATA; + pkcs7->content_type_oid.len = MBEDTLS_OID_SIZE(MBEDTLS_OID_PKCS7_SIGNED_DATA); + pkcs7->content_type_oid.p = (unsigned char *) MBEDTLS_OID_PKCS7_SIGNED_DATA; } ret = MBEDTLS_PKCS7_SIGNED_DATA; out: - if ( ret < 0 ) - mbedtls_pkcs7_free( pkcs7 ); + if (ret < 0) { + mbedtls_pkcs7_free(pkcs7); + } - return( ret ); + return ret; } -static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, +static int mbedtls_pkcs7_data_or_hash_verify(mbedtls_pkcs7 *pkcs7, const mbedtls_x509_crt *cert, const unsigned char *data, size_t datalen, - const int is_data_hash ) + const int is_data_hash) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *hash; @@ -605,15 +609,13 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, mbedtls_md_type_t md_alg; mbedtls_pkcs7_signer_info *signer; - if( pkcs7->signed_data.no_of_signers == 0 ) - { - return( MBEDTLS_ERR_PKCS7_INVALID_CERT ); + if (pkcs7->signed_data.no_of_signers == 0) { + return MBEDTLS_ERR_PKCS7_INVALID_CERT; } - if( mbedtls_x509_time_is_past( &cert->valid_to ) || - mbedtls_x509_time_is_future( &cert->valid_from )) - { - return( MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID ); + if (mbedtls_x509_time_is_past(&cert->valid_to) || + mbedtls_x509_time_is_future(&cert->valid_from)) { + return MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID; } /* @@ -629,97 +631,92 @@ static int mbedtls_pkcs7_data_or_hash_verify( mbedtls_pkcs7 *pkcs7, * We could also cache hashes by md, so if there are several sigs all using * the same algo we don't recalculate the hash each time. */ - for( signer = &pkcs7->signed_data.signers; signer; signer = signer->next ) - { - ret = mbedtls_oid_get_md_alg( &signer->alg_identifier, &md_alg ); - if( ret != 0 ) - { + for (signer = &pkcs7->signed_data.signers; signer; signer = signer->next) { + ret = mbedtls_oid_get_md_alg(&signer->alg_identifier, &md_alg); + if (ret != 0) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; continue; } - md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - { + md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; continue; } - hash = mbedtls_calloc( mbedtls_md_get_size( md_info ), 1 ); - if( hash == NULL ) { - return( MBEDTLS_ERR_PKCS7_ALLOC_FAILED ); + hash = mbedtls_calloc(mbedtls_md_get_size(md_info), 1); + if (hash == NULL) { + return MBEDTLS_ERR_PKCS7_ALLOC_FAILED; } /* BEGIN must free hash before jumping out */ - if( is_data_hash ) - { - if( datalen != mbedtls_md_get_size( md_info )) + if (is_data_hash) { + if (datalen != mbedtls_md_get_size(md_info)) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - else + } else { memcpy(hash, data, datalen); + } + } else { + ret = mbedtls_md(md_info, data, datalen, hash); } - else - { - ret = mbedtls_md( md_info, data, datalen, hash ); - } - if( ret != 0 ) - { + if (ret != 0) { ret = MBEDTLS_ERR_PKCS7_VERIFY_FAIL; - mbedtls_free( hash ); + mbedtls_free(hash); continue; } - ret = mbedtls_pk_verify( &pk_cxt, md_alg, hash, - mbedtls_md_get_size( md_info ), - signer->sig.p, signer->sig.len ); - mbedtls_free( hash ); + ret = mbedtls_pk_verify(&pk_cxt, md_alg, hash, + mbedtls_md_get_size(md_info), + signer->sig.p, signer->sig.len); + mbedtls_free(hash); /* END must free hash before jumping out */ - if( ret == 0 ) + if (ret == 0) { break; + } } - return( ret ); + return ret; } -int mbedtls_pkcs7_signed_data_verify( mbedtls_pkcs7 *pkcs7, - const mbedtls_x509_crt *cert, - const unsigned char *data, - size_t datalen ) +int mbedtls_pkcs7_signed_data_verify(mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *data, + size_t datalen) { - return( mbedtls_pkcs7_data_or_hash_verify( pkcs7, cert, data, datalen, 0 ) ); + return mbedtls_pkcs7_data_or_hash_verify(pkcs7, cert, data, datalen, 0); } -int mbedtls_pkcs7_signed_hash_verify( mbedtls_pkcs7 *pkcs7, - const mbedtls_x509_crt *cert, - const unsigned char *hash, - size_t hashlen ) +int mbedtls_pkcs7_signed_hash_verify(mbedtls_pkcs7 *pkcs7, + const mbedtls_x509_crt *cert, + const unsigned char *hash, + size_t hashlen) { - return( mbedtls_pkcs7_data_or_hash_verify( pkcs7, cert, hash, hashlen, 1 ) ); + return mbedtls_pkcs7_data_or_hash_verify(pkcs7, cert, hash, hashlen, 1); } /* * Unallocate all pkcs7 data */ -void mbedtls_pkcs7_free( mbedtls_pkcs7 *pkcs7 ) +void mbedtls_pkcs7_free(mbedtls_pkcs7 *pkcs7) { mbedtls_pkcs7_signer_info *signer_cur; mbedtls_pkcs7_signer_info *signer_prev; - if( pkcs7 == NULL || pkcs7->raw.p == NULL ) + if (pkcs7 == NULL || pkcs7->raw.p == NULL) { return; + } - mbedtls_free( pkcs7->raw.p ); + mbedtls_free(pkcs7->raw.p); - mbedtls_x509_crt_free( &pkcs7->signed_data.certs ); - mbedtls_x509_crl_free( &pkcs7->signed_data.crl ); + mbedtls_x509_crt_free(&pkcs7->signed_data.certs); + mbedtls_x509_crl_free(&pkcs7->signed_data.crl); signer_cur = pkcs7->signed_data.signers.next; - pkcs7_free_signer_info( &pkcs7->signed_data.signers ); - while( signer_cur != NULL ) - { + pkcs7_free_signer_info(&pkcs7->signed_data.signers); + while (signer_cur != NULL) { signer_prev = signer_cur; signer_cur = signer_prev->next; - pkcs7_free_signer_info( signer_prev ); - mbedtls_free( signer_prev ); + pkcs7_free_signer_info(signer_prev); + mbedtls_free(signer_prev); } pkcs7->raw.p = NULL; diff --git a/library/pkparse.c b/library/pkparse.c index b9826378d..990b55452 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -58,98 +58,100 @@ * A terminating null byte is always appended. It is included in the announced * length only if the data looks like it is PEM encoded. */ -int mbedtls_pk_load_file( const char *path, unsigned char **buf, size_t *n ) +int mbedtls_pk_load_file(const char *path, unsigned char **buf, size_t *n) { FILE *f; long size; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); + if ((f = fopen(path, "rb")) == NULL) { + return MBEDTLS_ERR_PK_FILE_IO_ERROR; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - fseek( f, 0, SEEK_END ); - if( ( size = ftell( f ) ) == -1 ) - { - fclose( f ); - return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); + fseek(f, 0, SEEK_END); + if ((size = ftell(f)) == -1) { + fclose(f); + return MBEDTLS_ERR_PK_FILE_IO_ERROR; } - fseek( f, 0, SEEK_SET ); + fseek(f, 0, SEEK_SET); *n = (size_t) size; - if( *n + 1 == 0 || - ( *buf = mbedtls_calloc( 1, *n + 1 ) ) == NULL ) - { - fclose( f ); - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if (*n + 1 == 0 || + (*buf = mbedtls_calloc(1, *n + 1)) == NULL) { + fclose(f); + return MBEDTLS_ERR_PK_ALLOC_FAILED; } - if( fread( *buf, 1, *n, f ) != *n ) - { - fclose( f ); + if (fread(*buf, 1, *n, f) != *n) { + fclose(f); - mbedtls_platform_zeroize( *buf, *n ); - mbedtls_free( *buf ); + mbedtls_platform_zeroize(*buf, *n); + mbedtls_free(*buf); - return( MBEDTLS_ERR_PK_FILE_IO_ERROR ); + return MBEDTLS_ERR_PK_FILE_IO_ERROR; } - fclose( f ); + fclose(f); (*buf)[*n] = '\0'; - if( strstr( (const char *) *buf, "-----BEGIN " ) != NULL ) + if (strstr((const char *) *buf, "-----BEGIN ") != NULL) { ++*n; + } - return( 0 ); + return 0; } /* * Load and parse a private key */ -int mbedtls_pk_parse_keyfile( mbedtls_pk_context *ctx, - const char *path, const char *pwd, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_pk_parse_keyfile(mbedtls_pk_context *ctx, + const char *path, const char *pwd, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) { + return ret; + } - if( pwd == NULL ) - ret = mbedtls_pk_parse_key( ctx, buf, n, NULL, 0, f_rng, p_rng ); - else - ret = mbedtls_pk_parse_key( ctx, buf, n, - (const unsigned char *) pwd, strlen( pwd ), f_rng, p_rng ); + if (pwd == NULL) { + ret = mbedtls_pk_parse_key(ctx, buf, n, NULL, 0, f_rng, p_rng); + } else { + ret = mbedtls_pk_parse_key(ctx, buf, n, + (const unsigned char *) pwd, strlen(pwd), f_rng, p_rng); + } - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } /* * Load and parse a public key */ -int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ) +int mbedtls_pk_parse_public_keyfile(mbedtls_pk_context *ctx, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) { + return ret; + } - ret = mbedtls_pk_parse_public_key( ctx, buf, n ); + ret = mbedtls_pk_parse_public_key(ctx, buf, n); - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ @@ -162,40 +164,40 @@ int mbedtls_pk_parse_public_keyfile( mbedtls_pk_context *ctx, const char *path ) * -- implicitCurve NULL * } */ -static int pk_get_ecparams( unsigned char **p, const unsigned char *end, - mbedtls_asn1_buf *params ) +static int pk_get_ecparams(unsigned char **p, const unsigned char *end, + mbedtls_asn1_buf *params) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if ( end - *p < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if (end - *p < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } /* Tag may be either OID or SEQUENCE */ params->tag = **p; - if( params->tag != MBEDTLS_ASN1_OID + if (params->tag != MBEDTLS_ASN1_OID #if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) - && params->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) + && params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) #endif - ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + ) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); } - if( ( ret = mbedtls_asn1_get_tag( p, end, ¶ms->len, params->tag ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, ¶ms->len, params->tag)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } params->p = *p; *p += params->len; - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } #if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) @@ -218,7 +220,7 @@ static int pk_get_ecparams( unsigned char **p, const unsigned char *end, * * We only support prime-field as field type, and ignore hash and cofactor. */ -static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp ) +static int pk_group_from_specified(const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = params->p; @@ -228,11 +230,13 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ int ver; /* SpecifiedECDomainVersion ::= INTEGER { 1, 2, 3 } */ - if( ( ret = mbedtls_asn1_get_int( &p, end, &ver ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end, &ver)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( ver < 1 || ver > 3 ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (ver < 1 || ver > 3) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } /* * FieldID { FIELD-ID:IOSet } ::= SEQUENCE { -- Finite field @@ -240,9 +244,10 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ * parameters FIELD-ID.&Type({IOSet}{@fieldType}) * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; + } end_field = p + len; @@ -254,26 +259,28 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ * } * prime-field OBJECT IDENTIFIER ::= { id-fieldType 1 } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end_field, &len, MBEDTLS_ASN1_OID ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(&p, end_field, &len, MBEDTLS_ASN1_OID)) != 0) { + return ret; + } - if( len != MBEDTLS_OID_SIZE( MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD ) || - memcmp( p, MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD, len ) != 0 ) - { - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + if (len != MBEDTLS_OID_SIZE(MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD) || + memcmp(p, MBEDTLS_OID_ANSI_X9_62_PRIME_FIELD, len) != 0) { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; } p += len; /* Prime-p ::= INTEGER -- Field of size p. */ - if( ( ret = mbedtls_asn1_get_mpi( &p, end_field, &grp->P ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_mpi(&p, end_field, &grp->P)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - grp->pbits = mbedtls_mpi_bitlen( &grp->P ); + grp->pbits = mbedtls_mpi_bitlen(&grp->P); - if( p != end_field ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end_field) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* * Curve ::= SEQUENCE { @@ -284,9 +291,10 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ * -- with version equal to ecdpVer2 or ecdpVer3 * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return ret; + } end_curve = p + len; @@ -294,51 +302,50 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ * FieldElement ::= OCTET STRING * containing an integer in the case of a prime field */ - if( ( ret = mbedtls_asn1_get_tag( &p, end_curve, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 || - ( ret = mbedtls_mpi_read_binary( &grp->A, p, len ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end_curve, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0 || + (ret = mbedtls_mpi_read_binary(&grp->A, p, len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } p += len; - if( ( ret = mbedtls_asn1_get_tag( &p, end_curve, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 || - ( ret = mbedtls_mpi_read_binary( &grp->B, p, len ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end_curve, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0 || + (ret = mbedtls_mpi_read_binary(&grp->B, p, len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } p += len; /* Ignore seed BIT STRING OPTIONAL */ - if( ( ret = mbedtls_asn1_get_tag( &p, end_curve, &len, MBEDTLS_ASN1_BIT_STRING ) ) == 0 ) + if ((ret = mbedtls_asn1_get_tag(&p, end_curve, &len, MBEDTLS_ASN1_BIT_STRING)) == 0) { p += len; + } - if( p != end_curve ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end_curve) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* * ECPoint ::= OCTET STRING */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( ( ret = mbedtls_ecp_point_read_binary( grp, &grp->G, - ( const unsigned char *) p, len ) ) != 0 ) - { + if ((ret = mbedtls_ecp_point_read_binary(grp, &grp->G, + (const unsigned char *) p, len)) != 0) { /* * If we can't read the point because it's compressed, cheat by * reading only the X coordinate and the parity bit of Y. */ - if( ret != MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE || - ( p[0] != 0x02 && p[0] != 0x03 ) || - len != mbedtls_mpi_size( &grp->P ) + 1 || - mbedtls_mpi_read_binary( &grp->G.X, p + 1, len - 1 ) != 0 || - mbedtls_mpi_lset( &grp->G.Y, p[0] - 2 ) != 0 || - mbedtls_mpi_lset( &grp->G.Z, 1 ) != 0 ) - { - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (ret != MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE || + (p[0] != 0x02 && p[0] != 0x03) || + len != mbedtls_mpi_size(&grp->P) + 1 || + mbedtls_mpi_read_binary(&grp->G.X, p + 1, len - 1) != 0 || + mbedtls_mpi_lset(&grp->G.Y, p[0] - 2) != 0 || + mbedtls_mpi_lset(&grp->G.Z, 1) != 0) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; } } @@ -347,83 +354,84 @@ static int pk_group_from_specified( const mbedtls_asn1_buf *params, mbedtls_ecp_ /* * order INTEGER */ - if( ( ret = mbedtls_asn1_get_mpi( &p, end, &grp->N ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_mpi(&p, end, &grp->N)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - grp->nbits = mbedtls_mpi_bitlen( &grp->N ); + grp->nbits = mbedtls_mpi_bitlen(&grp->N); /* * Allow optional elements by purposefully not enforcing p == end here. */ - return( 0 ); + return 0; } /* * Find the group id associated with an (almost filled) group as generated by * pk_group_from_specified(), or return an error if unknown. */ -static int pk_group_id_from_group( const mbedtls_ecp_group *grp, mbedtls_ecp_group_id *grp_id ) +static int pk_group_id_from_group(const mbedtls_ecp_group *grp, mbedtls_ecp_group_id *grp_id) { int ret = 0; mbedtls_ecp_group ref; const mbedtls_ecp_group_id *id; - mbedtls_ecp_group_init( &ref ); + mbedtls_ecp_group_init(&ref); - for( id = mbedtls_ecp_grp_id_list(); *id != MBEDTLS_ECP_DP_NONE; id++ ) - { + for (id = mbedtls_ecp_grp_id_list(); *id != MBEDTLS_ECP_DP_NONE; id++) { /* Load the group associated to that id */ - mbedtls_ecp_group_free( &ref ); - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &ref, *id ) ); + mbedtls_ecp_group_free(&ref); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&ref, *id)); /* Compare to the group we were given, starting with easy tests */ - if( grp->pbits == ref.pbits && grp->nbits == ref.nbits && - mbedtls_mpi_cmp_mpi( &grp->P, &ref.P ) == 0 && - mbedtls_mpi_cmp_mpi( &grp->A, &ref.A ) == 0 && - mbedtls_mpi_cmp_mpi( &grp->B, &ref.B ) == 0 && - mbedtls_mpi_cmp_mpi( &grp->N, &ref.N ) == 0 && - mbedtls_mpi_cmp_mpi( &grp->G.X, &ref.G.X ) == 0 && - mbedtls_mpi_cmp_mpi( &grp->G.Z, &ref.G.Z ) == 0 && + if (grp->pbits == ref.pbits && grp->nbits == ref.nbits && + mbedtls_mpi_cmp_mpi(&grp->P, &ref.P) == 0 && + mbedtls_mpi_cmp_mpi(&grp->A, &ref.A) == 0 && + mbedtls_mpi_cmp_mpi(&grp->B, &ref.B) == 0 && + mbedtls_mpi_cmp_mpi(&grp->N, &ref.N) == 0 && + mbedtls_mpi_cmp_mpi(&grp->G.X, &ref.G.X) == 0 && + mbedtls_mpi_cmp_mpi(&grp->G.Z, &ref.G.Z) == 0 && /* For Y we may only know the parity bit, so compare only that */ - mbedtls_mpi_get_bit( &grp->G.Y, 0 ) == mbedtls_mpi_get_bit( &ref.G.Y, 0 ) ) - { + mbedtls_mpi_get_bit(&grp->G.Y, 0) == mbedtls_mpi_get_bit(&ref.G.Y, 0)) { break; } } cleanup: - mbedtls_ecp_group_free( &ref ); + mbedtls_ecp_group_free(&ref); *grp_id = *id; - if( ret == 0 && *id == MBEDTLS_ECP_DP_NONE ) + if (ret == 0 && *id == MBEDTLS_ECP_DP_NONE) { ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } - return( ret ); + return ret; } /* * Parse a SpecifiedECDomain (SEC 1 C.2) and find the associated group ID */ -static int pk_group_id_from_specified( const mbedtls_asn1_buf *params, - mbedtls_ecp_group_id *grp_id ) +static int pk_group_id_from_specified(const mbedtls_asn1_buf *params, + mbedtls_ecp_group_id *grp_id) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_group grp; - mbedtls_ecp_group_init( &grp ); + mbedtls_ecp_group_init(&grp); - if( ( ret = pk_group_from_specified( params, &grp ) ) != 0 ) + if ((ret = pk_group_from_specified(params, &grp)) != 0) { goto cleanup; + } - ret = pk_group_id_from_group( &grp, grp_id ); + ret = pk_group_id_from_group(&grp, grp_id); cleanup: - mbedtls_ecp_group_free( &grp ); + mbedtls_ecp_group_free(&grp); - return( ret ); + return ret; } #endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ @@ -435,36 +443,37 @@ cleanup: * specifiedCurve SpecifiedECDomain -- = SEQUENCE { ... } * -- implicitCurve NULL */ -static int pk_use_ecparams( const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp ) +static int pk_use_ecparams(const mbedtls_asn1_buf *params, mbedtls_ecp_group *grp) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_group_id grp_id; - if( params->tag == MBEDTLS_ASN1_OID ) - { - if( mbedtls_oid_get_ec_grp( params, &grp_id ) != 0 ) - return( MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE ); - } - else - { + if (params->tag == MBEDTLS_ASN1_OID) { + if (mbedtls_oid_get_ec_grp(params, &grp_id) != 0) { + return MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE; + } + } else { #if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) - if( ( ret = pk_group_id_from_specified( params, &grp_id ) ) != 0 ) - return( ret ); + if ((ret = pk_group_id_from_specified(params, &grp_id)) != 0) { + return ret; + } #else - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; #endif } /* * grp may already be initialized; if so, make sure IDs match */ - if( grp->id != MBEDTLS_ECP_DP_NONE && grp->id != grp_id ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (grp->id != MBEDTLS_ECP_DP_NONE && grp->id != grp_id) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } - if( ( ret = mbedtls_ecp_group_load( grp, grp_id ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ecp_group_load(grp, grp_id)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* @@ -474,15 +483,14 @@ static int pk_use_ecparams( const mbedtls_asn1_buf *params, mbedtls_ecp_group *g * desired. Take care to pass along the possible ECP_FEATURE_UNAVAILABLE * return code of mbedtls_ecp_point_read_binary() and leave p in a usable state. */ -static int pk_get_ecpubkey( unsigned char **p, const unsigned char *end, - mbedtls_ecp_keypair *key ) +static int pk_get_ecpubkey(unsigned char **p, const unsigned char *end, + mbedtls_ecp_keypair *key) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_ecp_point_read_binary( &key->grp, &key->Q, - (const unsigned char *) *p, end - *p ) ) == 0 ) - { - ret = mbedtls_ecp_check_pubkey( &key->grp, &key->Q ); + if ((ret = mbedtls_ecp_point_read_binary(&key->grp, &key->Q, + (const unsigned char *) *p, end - *p)) == 0) { + ret = mbedtls_ecp_check_pubkey(&key->grp, &key->Q); } /* @@ -490,7 +498,7 @@ static int pk_get_ecpubkey( unsigned char **p, const unsigned char *end, */ *p = (unsigned char *) end; - return( ret ); + return ret; } #endif /* MBEDTLS_ECP_C */ @@ -501,52 +509,58 @@ static int pk_get_ecpubkey( unsigned char **p, const unsigned char *end, * publicExponent INTEGER -- e * } */ -static int pk_get_rsapubkey( unsigned char **p, - const unsigned char *end, - mbedtls_rsa_context *rsa ) +static int pk_get_rsapubkey(unsigned char **p, + const unsigned char *end, + mbedtls_rsa_context *rsa) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, ret); + } - if( *p + len != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* Import N */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_INTEGER)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, ret); + } - if( ( ret = mbedtls_rsa_import_raw( rsa, *p, len, NULL, 0, NULL, 0, - NULL, 0, NULL, 0 ) ) != 0 ) - return( MBEDTLS_ERR_PK_INVALID_PUBKEY ); + if ((ret = mbedtls_rsa_import_raw(rsa, *p, len, NULL, 0, NULL, 0, + NULL, 0, NULL, 0)) != 0) { + return MBEDTLS_ERR_PK_INVALID_PUBKEY; + } *p += len; /* Import E */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, MBEDTLS_ASN1_INTEGER ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_INTEGER)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, ret); + } - if( ( ret = mbedtls_rsa_import_raw( rsa, NULL, 0, NULL, 0, NULL, 0, - NULL, 0, *p, len ) ) != 0 ) - return( MBEDTLS_ERR_PK_INVALID_PUBKEY ); + if ((ret = mbedtls_rsa_import_raw(rsa, NULL, 0, NULL, 0, NULL, 0, + NULL, 0, *p, len)) != 0) { + return MBEDTLS_ERR_PK_INVALID_PUBKEY; + } *p += len; - if( mbedtls_rsa_complete( rsa ) != 0 || - mbedtls_rsa_check_pubkey( rsa ) != 0 ) - { - return( MBEDTLS_ERR_PK_INVALID_PUBKEY ); + if (mbedtls_rsa_complete(rsa) != 0 || + mbedtls_rsa_check_pubkey(rsa) != 0) { + return MBEDTLS_ERR_PK_INVALID_PUBKEY; } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_RSA_C */ @@ -556,32 +570,33 @@ static int pk_get_rsapubkey( unsigned char **p, * algorithm OBJECT IDENTIFIER, * parameters ANY DEFINED BY algorithm OPTIONAL } */ -static int pk_get_pk_alg( unsigned char **p, - const unsigned char *end, - mbedtls_pk_type_t *pk_alg, mbedtls_asn1_buf *params ) +static int pk_get_pk_alg(unsigned char **p, + const unsigned char *end, + mbedtls_pk_type_t *pk_alg, mbedtls_asn1_buf *params) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_asn1_buf alg_oid; - memset( params, 0, sizeof(mbedtls_asn1_buf) ); + memset(params, 0, sizeof(mbedtls_asn1_buf)); - if( ( ret = mbedtls_asn1_get_alg( p, end, &alg_oid, params ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_alg(p, end, &alg_oid, params)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_ALG, ret); + } - if( mbedtls_oid_get_pk_alg( &alg_oid, pk_alg ) != 0 ) - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); + if (mbedtls_oid_get_pk_alg(&alg_oid, pk_alg) != 0) { + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; + } /* * No parameters with RSA (only for EC) */ - if( *pk_alg == MBEDTLS_PK_RSA && - ( ( params->tag != MBEDTLS_ASN1_NULL && params->tag != 0 ) || - params->len != 0 ) ) - { - return( MBEDTLS_ERR_PK_INVALID_ALG ); + if (*pk_alg == MBEDTLS_PK_RSA && + ((params->tag != MBEDTLS_ASN1_NULL && params->tag != 0) || + params->len != 0)) { + return MBEDTLS_ERR_PK_INVALID_ALG; } - return( 0 ); + return 0; } /* @@ -589,8 +604,8 @@ static int pk_get_pk_alg( unsigned char **p, * algorithm AlgorithmIdentifier, * subjectPublicKey BIT STRING } */ -int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, - mbedtls_pk_context *pk ) +int mbedtls_pk_parse_subpubkey(unsigned char **p, const unsigned char *end, + mbedtls_pk_context *pk) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -598,54 +613,59 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE; const mbedtls_pk_info_t *pk_info; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } end = *p + len; - if( ( ret = pk_get_pk_alg( p, end, &pk_alg, &alg_params ) ) != 0 ) - return( ret ); + if ((ret = pk_get_pk_alg(p, end, &pk_alg, &alg_params)) != 0) { + return ret; + } - if( ( ret = mbedtls_asn1_get_bitstring_null( p, end, &len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, ret ) ); + if ((ret = mbedtls_asn1_get_bitstring_null(p, end, &len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, ret); + } - if( *p + len != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - if( ( pk_info = mbedtls_pk_info_from_type( pk_alg ) ) == NULL ) - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); + if ((pk_info = mbedtls_pk_info_from_type(pk_alg)) == NULL) { + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; + } - if( ( ret = mbedtls_pk_setup( pk, pk_info ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0) { + return ret; + } #if defined(MBEDTLS_RSA_C) - if( pk_alg == MBEDTLS_PK_RSA ) - { - ret = pk_get_rsapubkey( p, end, mbedtls_pk_rsa( *pk ) ); + if (pk_alg == MBEDTLS_PK_RSA) { + ret = pk_get_rsapubkey(p, end, mbedtls_pk_rsa(*pk)); } else #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) - if( pk_alg == MBEDTLS_PK_ECKEY_DH || pk_alg == MBEDTLS_PK_ECKEY ) - { - ret = pk_use_ecparams( &alg_params, &mbedtls_pk_ec( *pk )->grp ); - if( ret == 0 ) - ret = pk_get_ecpubkey( p, end, mbedtls_pk_ec( *pk ) ); + if (pk_alg == MBEDTLS_PK_ECKEY_DH || pk_alg == MBEDTLS_PK_ECKEY) { + ret = pk_use_ecparams(&alg_params, &mbedtls_pk_ec(*pk)->grp); + if (ret == 0) { + ret = pk_get_ecpubkey(p, end, mbedtls_pk_ec(*pk)); + } } else #endif /* MBEDTLS_ECP_C */ - ret = MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; + ret = MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; - if( ret == 0 && *p != end ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (ret == 0 && *p != end) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - if( ret != 0 ) - mbedtls_pk_free( pk ); + if (ret != 0) { + mbedtls_pk_free(pk); + } - return( ret ); + return ret; } #if defined(MBEDTLS_RSA_C) @@ -659,35 +679,37 @@ int mbedtls_pk_parse_subpubkey( unsigned char **p, const unsigned char *end, * Since values can't be omitted in PKCS#1, passing a zero value to * rsa_complete() would be incorrect, so reject zero values early. */ -static int asn1_get_nonzero_mpi( unsigned char **p, - const unsigned char *end, - mbedtls_mpi *X ) +static int asn1_get_nonzero_mpi(unsigned char **p, + const unsigned char *end, + mbedtls_mpi *X) { int ret; - ret = mbedtls_asn1_get_mpi( p, end, X ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_asn1_get_mpi(p, end, X); + if (ret != 0) { + return ret; + } - if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (mbedtls_mpi_cmp_int(X, 0) == 0) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } - return( 0 ); + return 0; } /* * Parse a PKCS#1 encoded private RSA key */ -static int pk_parse_key_pkcs1_der( mbedtls_rsa_context *rsa, - const unsigned char *key, - size_t keylen ) +static int pk_parse_key_pkcs1_der(mbedtls_rsa_context *rsa, + const unsigned char *key, + size_t keylen) { int ret, version; size_t len; unsigned char *p, *end; mbedtls_mpi T; - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); p = (unsigned char *) key; end = p + keylen; @@ -708,87 +730,93 @@ static int pk_parse_key_pkcs1_der( mbedtls_rsa_context *rsa, * otherPrimeInfos OtherPrimeInfos OPTIONAL * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } end = p + len; - if( ( ret = mbedtls_asn1_get_int( &p, end, &version ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end, &version)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } - if( version != 0 ) - { - return( MBEDTLS_ERR_PK_KEY_INVALID_VERSION ); + if (version != 0) { + return MBEDTLS_ERR_PK_KEY_INVALID_VERSION; } /* Import N */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_rsa_import( rsa, &T, NULL, NULL, - NULL, NULL ) ) != 0 ) + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_rsa_import(rsa, &T, NULL, NULL, + NULL, NULL)) != 0) { goto cleanup; + } /* Import E */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_rsa_import( rsa, NULL, NULL, NULL, - NULL, &T ) ) != 0 ) + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_rsa_import(rsa, NULL, NULL, NULL, + NULL, &T)) != 0) { goto cleanup; + } /* Import D */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_rsa_import( rsa, NULL, NULL, NULL, - &T, NULL ) ) != 0 ) + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_rsa_import(rsa, NULL, NULL, NULL, + &T, NULL)) != 0) { goto cleanup; + } /* Import P */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_rsa_import( rsa, NULL, &T, NULL, - NULL, NULL ) ) != 0 ) + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_rsa_import(rsa, NULL, &T, NULL, + NULL, NULL)) != 0) { goto cleanup; + } /* Import Q */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_rsa_import( rsa, NULL, NULL, &T, - NULL, NULL ) ) != 0 ) + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_rsa_import(rsa, NULL, NULL, &T, + NULL, NULL)) != 0) { goto cleanup; + } #if !defined(MBEDTLS_RSA_NO_CRT) && !defined(MBEDTLS_RSA_ALT) /* - * The RSA CRT parameters DP, DQ and QP are nominally redundant, in - * that they can be easily recomputed from D, P and Q. However by - * parsing them from the PKCS1 structure it is possible to avoid - * recalculating them which both reduces the overhead of loading - * RSA private keys into memory and also avoids side channels which - * can arise when computing those values, since all of D, P, and Q - * are secret. See https://eprint.iacr.org/2020/055 for a - * description of one such attack. - */ + * The RSA CRT parameters DP, DQ and QP are nominally redundant, in + * that they can be easily recomputed from D, P and Q. However by + * parsing them from the PKCS1 structure it is possible to avoid + * recalculating them which both reduces the overhead of loading + * RSA private keys into memory and also avoids side channels which + * can arise when computing those values, since all of D, P, and Q + * are secret. See https://eprint.iacr.org/2020/055 for a + * description of one such attack. + */ /* Import DP */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_mpi_copy( &rsa->DP, &T ) ) != 0 ) - goto cleanup; + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_mpi_copy(&rsa->DP, &T)) != 0) { + goto cleanup; + } /* Import DQ */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_mpi_copy( &rsa->DQ, &T ) ) != 0 ) - goto cleanup; + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_mpi_copy(&rsa->DQ, &T)) != 0) { + goto cleanup; + } /* Import QP */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = mbedtls_mpi_copy( &rsa->QP, &T ) ) != 0 ) - goto cleanup; + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = mbedtls_mpi_copy(&rsa->QP, &T)) != 0) { + goto cleanup; + } #else /* Verify existence of the CRT params */ - if( ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 || - ( ret = asn1_get_nonzero_mpi( &p, end, &T ) ) != 0 ) - goto cleanup; + if ((ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0 || + (ret = asn1_get_nonzero_mpi(&p, end, &T)) != 0) { + goto cleanup; + } #endif /* rsa_complete() doesn't complete anything with the default @@ -800,34 +828,32 @@ static int pk_parse_key_pkcs1_der( mbedtls_rsa_context *rsa, * Furthermore, we also check the public part for consistency with * mbedtls_pk_parse_pubkey(), as it includes size minima for example. */ - if( ( ret = mbedtls_rsa_complete( rsa ) ) != 0 || - ( ret = mbedtls_rsa_check_pubkey( rsa ) ) != 0 ) - { + if ((ret = mbedtls_rsa_complete(rsa)) != 0 || + (ret = mbedtls_rsa_check_pubkey(rsa)) != 0) { goto cleanup; } - if( p != end ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + if (p != end) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } cleanup: - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); - if( ret != 0 ) - { + if (ret != 0) { /* Wrap error code if it's coming from a lower level */ - if( ( ret & 0xff80 ) == 0 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ); - else + if ((ret & 0xff80) == 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } else { ret = MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } - mbedtls_rsa_free( rsa ); + mbedtls_rsa_free(rsa); } - return( ret ); + return ret; } #endif /* MBEDTLS_RSA_C */ @@ -835,9 +861,9 @@ cleanup: /* * Parse a SEC1 encoded private EC key */ -static int pk_parse_key_sec1_der( mbedtls_ecp_keypair *eck, - const unsigned char *key, size_t keylen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int pk_parse_key_sec1_der(mbedtls_ecp_keypair *eck, + const unsigned char *key, size_t keylen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int version, pubkey_done; @@ -857,106 +883,100 @@ static int pk_parse_key_sec1_der( mbedtls_ecp_keypair *eck, * publicKey [1] BIT STRING OPTIONAL * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } end = p + len; - if( ( ret = mbedtls_asn1_get_int( &p, end, &version ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end, &version)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( version != 1 ) - return( MBEDTLS_ERR_PK_KEY_INVALID_VERSION ); + if (version != 1) { + return MBEDTLS_ERR_PK_KEY_INVALID_VERSION; + } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( ( ret = mbedtls_mpi_read_binary( &eck->d, p, len ) ) != 0 ) - { - mbedtls_ecp_keypair_free( eck ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_mpi_read_binary(&eck->d, p, len)) != 0) { + mbedtls_ecp_keypair_free(eck); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } p += len; pubkey_done = 0; - if( p != end ) - { + if (p != end) { /* * Is 'parameters' present? */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0 ) ) == 0 ) - { - if( ( ret = pk_get_ecparams( &p, p + len, ¶ms) ) != 0 || - ( ret = pk_use_ecparams( ¶ms, &eck->grp ) ) != 0 ) - { - mbedtls_ecp_keypair_free( eck ); - return( ret ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 0)) == 0) { + if ((ret = pk_get_ecparams(&p, p + len, ¶ms)) != 0 || + (ret = pk_use_ecparams(¶ms, &eck->grp)) != 0) { + mbedtls_ecp_keypair_free(eck); + return ret; } - } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { - mbedtls_ecp_keypair_free( eck ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + mbedtls_ecp_keypair_free(eck); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } } - if( p != end ) - { + if (p != end) { /* * Is 'publickey' present? If not, or if we can't read it (eg because it * is compressed), create it from the private key. */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1 ) ) == 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 1)) == 0) { end2 = p + len; - if( ( ret = mbedtls_asn1_get_bitstring_null( &p, end2, &len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_bitstring_null(&p, end2, &len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( p + len != end2 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p + len != end2) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - if( ( ret = pk_get_ecpubkey( &p, end2, eck ) ) == 0 ) + if ((ret = pk_get_ecpubkey(&p, end2, eck)) == 0) { pubkey_done = 1; - else - { + } else { /* * The only acceptable failure mode of pk_get_ecpubkey() above * is if the point format is not recognized. */ - if( ret != MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (ret != MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } } - } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { - mbedtls_ecp_keypair_free( eck ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + mbedtls_ecp_keypair_free(eck); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } } - if( ! pubkey_done && - ( ret = mbedtls_ecp_mul( &eck->grp, &eck->Q, &eck->d, &eck->grp.G, - f_rng, p_rng ) ) != 0 ) - { - mbedtls_ecp_keypair_free( eck ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if (!pubkey_done && + (ret = mbedtls_ecp_mul(&eck->grp, &eck->Q, &eck->d, &eck->grp.G, + f_rng, p_rng)) != 0) { + mbedtls_ecp_keypair_free(eck); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } - if( ( ret = mbedtls_ecp_check_privkey( &eck->grp, &eck->d ) ) != 0 ) - { - mbedtls_ecp_keypair_free( eck ); - return( ret ); + if ((ret = mbedtls_ecp_check_privkey(&eck->grp, &eck->d)) != 0) { + mbedtls_ecp_keypair_free(eck); + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_ECP_C */ @@ -974,9 +994,9 @@ static int pk_parse_key_sec1_der( mbedtls_ecp_keypair *eck, * */ static int pk_parse_key_pkcs8_unencrypted_der( - mbedtls_pk_context *pk, - const unsigned char* key, size_t keylen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) + mbedtls_pk_context *pk, + const unsigned char *key, size_t keylen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret, version; size_t len; @@ -1007,62 +1027,62 @@ static int pk_parse_key_pkcs8_unencrypted_der( * The PrivateKey OCTET STRING is a SEC1 ECPrivateKey */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } end = p + len; - if( ( ret = mbedtls_asn1_get_int( &p, end, &version ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); - - if( version != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_VERSION, ret ) ); - - if( ( ret = pk_get_pk_alg( &p, end, &pk_alg, ¶ms ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_asn1_get_int(&p, end, &version)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if (version != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_VERSION, ret); + } - if( len < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((ret = pk_get_pk_alg(&p, end, &pk_alg, ¶ms)) != 0) { + return ret; + } - if( ( pk_info = mbedtls_pk_info_from_type( pk_alg ) ) == NULL ) - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( ( ret = mbedtls_pk_setup( pk, pk_info ) ) != 0 ) - return( ret ); + if (len < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } + + if ((pk_info = mbedtls_pk_info_from_type(pk_alg)) == NULL) { + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; + } + + if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0) { + return ret; + } #if defined(MBEDTLS_RSA_C) - if( pk_alg == MBEDTLS_PK_RSA ) - { - if( ( ret = pk_parse_key_pkcs1_der( mbedtls_pk_rsa( *pk ), p, len ) ) != 0 ) - { - mbedtls_pk_free( pk ); - return( ret ); + if (pk_alg == MBEDTLS_PK_RSA) { + if ((ret = pk_parse_key_pkcs1_der(mbedtls_pk_rsa(*pk), p, len)) != 0) { + mbedtls_pk_free(pk); + return ret; } } else #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) - if( pk_alg == MBEDTLS_PK_ECKEY || pk_alg == MBEDTLS_PK_ECKEY_DH ) - { - if( ( ret = pk_use_ecparams( ¶ms, &mbedtls_pk_ec( *pk )->grp ) ) != 0 || - ( ret = pk_parse_key_sec1_der( mbedtls_pk_ec( *pk ), p, len, f_rng, p_rng ) ) != 0 ) - { - mbedtls_pk_free( pk ); - return( ret ); + if (pk_alg == MBEDTLS_PK_ECKEY || pk_alg == MBEDTLS_PK_ECKEY_DH) { + if ((ret = pk_use_ecparams(¶ms, &mbedtls_pk_ec(*pk)->grp)) != 0 || + (ret = pk_parse_key_sec1_der(mbedtls_pk_ec(*pk), p, len, f_rng, p_rng)) != 0) { + mbedtls_pk_free(pk); + return ret; } } else #endif /* MBEDTLS_ECP_C */ - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; - return( 0 ); + return 0; } /* @@ -1076,10 +1096,10 @@ static int pk_parse_key_pkcs8_unencrypted_der( */ #if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C) static int pk_parse_key_pkcs8_encrypted_der( - mbedtls_pk_context *pk, - unsigned char *key, size_t keylen, - const unsigned char *pwd, size_t pwdlen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) + mbedtls_pk_context *pk, + unsigned char *key, size_t keylen, + const unsigned char *pwd, size_t pwdlen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret, decrypted = 0; size_t len; @@ -1094,8 +1114,9 @@ static int pk_parse_key_pkcs8_encrypted_der( p = key; end = p + keylen; - if( pwdlen == 0 ) - return( MBEDTLS_ERR_PK_PASSWORD_REQUIRED ); + if (pwdlen == 0) { + return MBEDTLS_ERR_PK_PASSWORD_REQUIRED; + } /* * This function parses the EncryptedPrivateKeyInfo object (PKCS#8) @@ -1112,19 +1133,20 @@ static int pk_parse_key_pkcs8_encrypted_der( * The EncryptedData OCTET STRING is a PKCS#8 PrivateKeyInfo * */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); } end = p + len; - if( ( ret = mbedtls_asn1_get_alg( &p, end, &pbe_alg_oid, &pbe_params ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_alg(&p, end, &pbe_alg_oid, &pbe_params)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT, ret); + } buf = p; @@ -1132,56 +1154,53 @@ static int pk_parse_key_pkcs8_encrypted_der( * Decrypt EncryptedData with appropriate PBE */ #if defined(MBEDTLS_PKCS12_C) - if( mbedtls_oid_get_pkcs12_pbe_alg( &pbe_alg_oid, &md_alg, &cipher_alg ) == 0 ) - { - if( ( ret = mbedtls_pkcs12_pbe( &pbe_params, MBEDTLS_PKCS12_PBE_DECRYPT, - cipher_alg, md_alg, - pwd, pwdlen, p, len, buf ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH ) - return( MBEDTLS_ERR_PK_PASSWORD_MISMATCH ); + if (mbedtls_oid_get_pkcs12_pbe_alg(&pbe_alg_oid, &md_alg, &cipher_alg) == 0) { + if ((ret = mbedtls_pkcs12_pbe(&pbe_params, MBEDTLS_PKCS12_PBE_DECRYPT, + cipher_alg, md_alg, + pwd, pwdlen, p, len, buf)) != 0) { + if (ret == MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH) { + return MBEDTLS_ERR_PK_PASSWORD_MISMATCH; + } - return( ret ); + return ret; } decrypted = 1; - } - else + } else #endif /* MBEDTLS_PKCS12_C */ #if defined(MBEDTLS_PKCS5_C) - if( MBEDTLS_OID_CMP( MBEDTLS_OID_PKCS5_PBES2, &pbe_alg_oid ) == 0 ) - { - if( ( ret = mbedtls_pkcs5_pbes2( &pbe_params, MBEDTLS_PKCS5_DECRYPT, pwd, pwdlen, - p, len, buf ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH ) - return( MBEDTLS_ERR_PK_PASSWORD_MISMATCH ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS5_PBES2, &pbe_alg_oid) == 0) { + if ((ret = mbedtls_pkcs5_pbes2(&pbe_params, MBEDTLS_PKCS5_DECRYPT, pwd, pwdlen, + p, len, buf)) != 0) { + if (ret == MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH) { + return MBEDTLS_ERR_PK_PASSWORD_MISMATCH; + } - return( ret ); + return ret; } decrypted = 1; - } - else + } else #endif /* MBEDTLS_PKCS5_C */ { ((void) pwd); } - if( decrypted == 0 ) - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + if (decrypted == 0) { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; + } - return( pk_parse_key_pkcs8_unencrypted_der( pk, buf, len, f_rng, p_rng ) ); + return pk_parse_key_pkcs8_unencrypted_der(pk, buf, len, f_rng, p_rng); } #endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */ /* * Parse a private key */ -int mbedtls_pk_parse_key( mbedtls_pk_context *pk, - const unsigned char *key, size_t keylen, - const unsigned char *pwd, size_t pwdlen, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +int mbedtls_pk_parse_key(mbedtls_pk_context *pk, + const unsigned char *key, size_t keylen, + const unsigned char *pwd, size_t pwdlen, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_pk_info_t *pk_info; @@ -1190,119 +1209,116 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk, mbedtls_pem_context pem; #endif - if( keylen == 0 ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (keylen == 0) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } #if defined(MBEDTLS_PEM_PARSE_C) - mbedtls_pem_init( &pem ); + mbedtls_pem_init(&pem); #if defined(MBEDTLS_RSA_C) /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN RSA PRIVATE KEY-----", - "-----END RSA PRIVATE KEY-----", - key, pwd, pwdlen, &len ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN RSA PRIVATE KEY-----", + "-----END RSA PRIVATE KEY-----", + key, pwd, pwdlen, &len); + } - if( ret == 0 ) - { - pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ); - if( ( ret = mbedtls_pk_setup( pk, pk_info ) ) != 0 || - ( ret = pk_parse_key_pkcs1_der( mbedtls_pk_rsa( *pk ), - pem.buf, pem.buflen ) ) != 0 ) - { - mbedtls_pk_free( pk ); + if (ret == 0) { + pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA); + if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0 || + (ret = pk_parse_key_pkcs1_der(mbedtls_pk_rsa(*pk), + pem.buf, pem.buflen)) != 0) { + mbedtls_pk_free(pk); } - mbedtls_pem_free( &pem ); - return( ret ); + mbedtls_pem_free(&pem); + return ret; + } else if (ret == MBEDTLS_ERR_PEM_PASSWORD_MISMATCH) { + return MBEDTLS_ERR_PK_PASSWORD_MISMATCH; + } else if (ret == MBEDTLS_ERR_PEM_PASSWORD_REQUIRED) { + return MBEDTLS_ERR_PK_PASSWORD_REQUIRED; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + return ret; } - else if( ret == MBEDTLS_ERR_PEM_PASSWORD_MISMATCH ) - return( MBEDTLS_ERR_PK_PASSWORD_MISMATCH ); - else if( ret == MBEDTLS_ERR_PEM_PASSWORD_REQUIRED ) - return( MBEDTLS_ERR_PK_PASSWORD_REQUIRED ); - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - return( ret ); #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN EC PRIVATE KEY-----", - "-----END EC PRIVATE KEY-----", - key, pwd, pwdlen, &len ); - if( ret == 0 ) - { - pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_ECKEY ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN EC PRIVATE KEY-----", + "-----END EC PRIVATE KEY-----", + key, pwd, pwdlen, &len); + } + if (ret == 0) { + pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY); - if( ( ret = mbedtls_pk_setup( pk, pk_info ) ) != 0 || - ( ret = pk_parse_key_sec1_der( mbedtls_pk_ec( *pk ), - pem.buf, pem.buflen, - f_rng, p_rng ) ) != 0 ) - { - mbedtls_pk_free( pk ); + if ((ret = mbedtls_pk_setup(pk, pk_info)) != 0 || + (ret = pk_parse_key_sec1_der(mbedtls_pk_ec(*pk), + pem.buf, pem.buflen, + f_rng, p_rng)) != 0) { + mbedtls_pk_free(pk); } - mbedtls_pem_free( &pem ); - return( ret ); + mbedtls_pem_free(&pem); + return ret; + } else if (ret == MBEDTLS_ERR_PEM_PASSWORD_MISMATCH) { + return MBEDTLS_ERR_PK_PASSWORD_MISMATCH; + } else if (ret == MBEDTLS_ERR_PEM_PASSWORD_REQUIRED) { + return MBEDTLS_ERR_PK_PASSWORD_REQUIRED; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + return ret; } - else if( ret == MBEDTLS_ERR_PEM_PASSWORD_MISMATCH ) - return( MBEDTLS_ERR_PK_PASSWORD_MISMATCH ); - else if( ret == MBEDTLS_ERR_PEM_PASSWORD_REQUIRED ) - return( MBEDTLS_ERR_PK_PASSWORD_REQUIRED ); - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - return( ret ); #endif /* MBEDTLS_ECP_C */ /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN PRIVATE KEY-----", - "-----END PRIVATE KEY-----", - key, NULL, 0, &len ); - if( ret == 0 ) - { - if( ( ret = pk_parse_key_pkcs8_unencrypted_der( pk, - pem.buf, pem.buflen, f_rng, p_rng ) ) != 0 ) - { - mbedtls_pk_free( pk ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN PRIVATE KEY-----", + "-----END PRIVATE KEY-----", + key, NULL, 0, &len); + } + if (ret == 0) { + if ((ret = pk_parse_key_pkcs8_unencrypted_der(pk, + pem.buf, pem.buflen, f_rng, p_rng)) != 0) { + mbedtls_pk_free(pk); } - mbedtls_pem_free( &pem ); - return( ret ); + mbedtls_pem_free(&pem); + return ret; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + return ret; } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - return( ret ); #if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C) /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN ENCRYPTED PRIVATE KEY-----", - "-----END ENCRYPTED PRIVATE KEY-----", - key, NULL, 0, &len ); - if( ret == 0 ) - { - if( ( ret = pk_parse_key_pkcs8_encrypted_der( pk, pem.buf, pem.buflen, - pwd, pwdlen, f_rng, p_rng ) ) != 0 ) - { - mbedtls_pk_free( pk ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN ENCRYPTED PRIVATE KEY-----", + "-----END ENCRYPTED PRIVATE KEY-----", + key, NULL, 0, &len); + } + if (ret == 0) { + if ((ret = pk_parse_key_pkcs8_encrypted_der(pk, pem.buf, pem.buflen, + pwd, pwdlen, f_rng, p_rng)) != 0) { + mbedtls_pk_free(pk); } - mbedtls_pem_free( &pem ); - return( ret ); + mbedtls_pem_free(&pem); + return ret; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + return ret; } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - return( ret ); #endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */ #else ((void) pwd); @@ -1317,65 +1333,62 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk, * error */ #if defined(MBEDTLS_PKCS12_C) || defined(MBEDTLS_PKCS5_C) - if( pwdlen != 0 ) - { + if (pwdlen != 0) { unsigned char *key_copy; - if( ( key_copy = mbedtls_calloc( 1, keylen ) ) == NULL ) - return( MBEDTLS_ERR_PK_ALLOC_FAILED ); + if ((key_copy = mbedtls_calloc(1, keylen)) == NULL) { + return MBEDTLS_ERR_PK_ALLOC_FAILED; + } - memcpy( key_copy, key, keylen ); + memcpy(key_copy, key, keylen); - ret = pk_parse_key_pkcs8_encrypted_der( pk, key_copy, keylen, - pwd, pwdlen, f_rng, p_rng ); + ret = pk_parse_key_pkcs8_encrypted_der(pk, key_copy, keylen, + pwd, pwdlen, f_rng, p_rng); - mbedtls_platform_zeroize( key_copy, keylen ); - mbedtls_free( key_copy ); + mbedtls_platform_zeroize(key_copy, keylen); + mbedtls_free(key_copy); } - if( ret == 0 ) - return( 0 ); + if (ret == 0) { + return 0; + } - mbedtls_pk_free( pk ); - mbedtls_pk_init( pk ); + mbedtls_pk_free(pk); + mbedtls_pk_init(pk); - if( ret == MBEDTLS_ERR_PK_PASSWORD_MISMATCH ) - { - return( ret ); + if (ret == MBEDTLS_ERR_PK_PASSWORD_MISMATCH) { + return ret; } #endif /* MBEDTLS_PKCS12_C || MBEDTLS_PKCS5_C */ - ret = pk_parse_key_pkcs8_unencrypted_der( pk, key, keylen, f_rng, p_rng ); - if( ret == 0 ) - { - return( 0 ); + ret = pk_parse_key_pkcs8_unencrypted_der(pk, key, keylen, f_rng, p_rng); + if (ret == 0) { + return 0; } - mbedtls_pk_free( pk ); - mbedtls_pk_init( pk ); + mbedtls_pk_free(pk); + mbedtls_pk_init(pk); #if defined(MBEDTLS_RSA_C) - pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ); - if( mbedtls_pk_setup( pk, pk_info ) == 0 && - pk_parse_key_pkcs1_der( mbedtls_pk_rsa( *pk ), key, keylen ) == 0 ) - { - return( 0 ); + pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA); + if (mbedtls_pk_setup(pk, pk_info) == 0 && + pk_parse_key_pkcs1_der(mbedtls_pk_rsa(*pk), key, keylen) == 0) { + return 0; } - mbedtls_pk_free( pk ); - mbedtls_pk_init( pk ); + mbedtls_pk_free(pk); + mbedtls_pk_init(pk); #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) - pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_ECKEY ); - if( mbedtls_pk_setup( pk, pk_info ) == 0 && - pk_parse_key_sec1_der( mbedtls_pk_ec( *pk ), - key, keylen, f_rng, p_rng ) == 0 ) - { - return( 0 ); + pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY); + if (mbedtls_pk_setup(pk, pk_info) == 0 && + pk_parse_key_sec1_der(mbedtls_pk_ec(*pk), + key, keylen, f_rng, p_rng) == 0) { + return 0; } - mbedtls_pk_free( pk ); + mbedtls_pk_free(pk); #endif /* MBEDTLS_ECP_C */ /* If MBEDTLS_RSA_C is defined but MBEDTLS_ECP_C isn't, @@ -1388,14 +1401,14 @@ int mbedtls_pk_parse_key( mbedtls_pk_context *pk, * also ok and in line with the mbedtls_pk_free() calls * on failed PEM parsing attempts. */ - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; } /* * Parse a public key */ -int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx, - const unsigned char *key, size_t keylen ) +int mbedtls_pk_parse_public_key(mbedtls_pk_context *ctx, + const unsigned char *key, size_t keylen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p; @@ -1407,102 +1420,98 @@ int mbedtls_pk_parse_public_key( mbedtls_pk_context *ctx, mbedtls_pem_context pem; #endif - if( keylen == 0 ) - return( MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + if (keylen == 0) { + return MBEDTLS_ERR_PK_KEY_INVALID_FORMAT; + } #if defined(MBEDTLS_PEM_PARSE_C) - mbedtls_pem_init( &pem ); + mbedtls_pem_init(&pem); #if defined(MBEDTLS_RSA_C) /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN RSA PUBLIC KEY-----", - "-----END RSA PUBLIC KEY-----", - key, NULL, 0, &len ); - - if( ret == 0 ) - { - p = pem.buf; - if( ( pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == NULL ) - { - mbedtls_pem_free( &pem ); - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); - } - - if( ( ret = mbedtls_pk_setup( ctx, pk_info ) ) != 0 ) - { - mbedtls_pem_free( &pem ); - return( ret ); - } - - if ( ( ret = pk_get_rsapubkey( &p, p + pem.buflen, mbedtls_pk_rsa( *ctx ) ) ) != 0 ) - mbedtls_pk_free( ctx ); - - mbedtls_pem_free( &pem ); - return( ret ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN RSA PUBLIC KEY-----", + "-----END RSA PUBLIC KEY-----", + key, NULL, 0, &len); } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - { - mbedtls_pem_free( &pem ); - return( ret ); + + if (ret == 0) { + p = pem.buf; + if ((pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == NULL) { + mbedtls_pem_free(&pem); + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; + } + + if ((ret = mbedtls_pk_setup(ctx, pk_info)) != 0) { + mbedtls_pem_free(&pem); + return ret; + } + + if ((ret = pk_get_rsapubkey(&p, p + pem.buflen, mbedtls_pk_rsa(*ctx))) != 0) { + mbedtls_pk_free(ctx); + } + + mbedtls_pem_free(&pem); + return ret; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + mbedtls_pem_free(&pem); + return ret; } #endif /* MBEDTLS_RSA_C */ /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( key[keylen - 1] != '\0' ) + if (key[keylen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN PUBLIC KEY-----", - "-----END PUBLIC KEY-----", - key, NULL, 0, &len ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN PUBLIC KEY-----", + "-----END PUBLIC KEY-----", + key, NULL, 0, &len); + } - if( ret == 0 ) - { + if (ret == 0) { /* * Was PEM encoded */ p = pem.buf; - ret = mbedtls_pk_parse_subpubkey( &p, p + pem.buflen, ctx ); - mbedtls_pem_free( &pem ); - return( ret ); + ret = mbedtls_pk_parse_subpubkey(&p, p + pem.buflen, ctx); + mbedtls_pem_free(&pem); + return ret; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + mbedtls_pem_free(&pem); + return ret; } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - { - mbedtls_pem_free( &pem ); - return( ret ); - } - mbedtls_pem_free( &pem ); + mbedtls_pem_free(&pem); #endif /* MBEDTLS_PEM_PARSE_C */ #if defined(MBEDTLS_RSA_C) - if( ( pk_info = mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == NULL ) - return( MBEDTLS_ERR_PK_UNKNOWN_PK_ALG ); - - if( ( ret = mbedtls_pk_setup( ctx, pk_info ) ) != 0 ) - return( ret ); - - p = (unsigned char *)key; - ret = pk_get_rsapubkey( &p, p + keylen, mbedtls_pk_rsa( *ctx ) ); - if( ret == 0 ) - { - return( ret ); + if ((pk_info = mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == NULL) { + return MBEDTLS_ERR_PK_UNKNOWN_PK_ALG; } - mbedtls_pk_free( ctx ); - if( ret != ( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_PK_INVALID_PUBKEY, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ) ) - { - return( ret ); + + if ((ret = mbedtls_pk_setup(ctx, pk_info)) != 0) { + return ret; + } + + p = (unsigned char *) key; + ret = pk_get_rsapubkey(&p, p + keylen, mbedtls_pk_rsa(*ctx)); + if (ret == 0) { + return ret; + } + mbedtls_pk_free(ctx); + if (ret != (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_PK_INVALID_PUBKEY, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG))) { + return ret; } #endif /* MBEDTLS_RSA_C */ p = (unsigned char *) key; - ret = mbedtls_pk_parse_subpubkey( &p, p + keylen, ctx ); + ret = mbedtls_pk_parse_subpubkey(&p, p + keylen, ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_PK_PARSE_C */ diff --git a/library/pkwrite.c b/library/pkwrite.c index f699a2726..2194c97e3 100644 --- a/library/pkwrite.c +++ b/library/pkwrite.c @@ -60,38 +60,41 @@ * publicExponent INTEGER -- e * } */ -static int pk_write_rsa_pubkey( unsigned char **p, unsigned char *start, - mbedtls_rsa_context *rsa ) +static int pk_write_rsa_pubkey(unsigned char **p, unsigned char *start, + mbedtls_rsa_context *rsa) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; mbedtls_mpi T; - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); /* Export E */ - if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, NULL, NULL, &T ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( p, start, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, NULL, NULL, NULL, NULL, &T)) != 0 || + (ret = mbedtls_asn1_write_mpi(p, start, &T)) < 0) { goto end_of_export; + } len += ret; /* Export N */ - if ( ( ret = mbedtls_rsa_export( rsa, &T, NULL, NULL, NULL, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( p, start, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, &T, NULL, NULL, NULL, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(p, start, &T)) < 0) { goto end_of_export; + } len += ret; end_of_export: - mbedtls_mpi_free( &T ); - if( ret < 0 ) - return( ret ); + mbedtls_mpi_free(&T); + if (ret < 0) { + return ret; + } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } #endif /* MBEDTLS_RSA_C */ @@ -99,27 +102,27 @@ end_of_export: /* * EC public key is an EC point */ -static int pk_write_ec_pubkey( unsigned char **p, unsigned char *start, - mbedtls_ecp_keypair *ec ) +static int pk_write_ec_pubkey(unsigned char **p, unsigned char *start, + mbedtls_ecp_keypair *ec) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; unsigned char buf[MBEDTLS_ECP_MAX_PT_LEN]; - if( ( ret = mbedtls_ecp_point_write_binary( &ec->grp, &ec->Q, - MBEDTLS_ECP_PF_UNCOMPRESSED, - &len, buf, sizeof( buf ) ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ecp_point_write_binary(&ec->grp, &ec->Q, + MBEDTLS_ECP_PF_UNCOMPRESSED, + &len, buf, sizeof(buf))) != 0) { + return ret; } - if( *p < start || (size_t)( *p - start ) < len ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p < start || (size_t) (*p - start) < len) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *p -= len; - memcpy( *p, buf, len ); + memcpy(*p, buf, len); - return( (int) len ); + return (int) len; } /* @@ -127,88 +130,86 @@ static int pk_write_ec_pubkey( unsigned char **p, unsigned char *start, * namedCurve OBJECT IDENTIFIER * } */ -static int pk_write_ec_param( unsigned char **p, unsigned char *start, - mbedtls_ecp_keypair *ec ) +static int pk_write_ec_param(unsigned char **p, unsigned char *start, + mbedtls_ecp_keypair *ec) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; const char *oid; size_t oid_len; - if( ( ret = mbedtls_oid_get_oid_by_ec_grp( ec->grp.id, &oid, &oid_len ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_oid_get_oid_by_ec_grp(ec->grp.id, &oid, &oid_len)) != 0) { + return ret; + } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( p, start, oid, oid_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_oid(p, start, oid, oid_len)); - return( (int) len ); + return (int) len; } /* * privateKey OCTET STRING -- always of length ceil(log2(n)/8) */ -static int pk_write_ec_private( unsigned char **p, unsigned char *start, - mbedtls_ecp_keypair *ec ) +static int pk_write_ec_private(unsigned char **p, unsigned char *start, + mbedtls_ecp_keypair *ec) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t byte_length = ( ec->grp.pbits + 7 ) / 8; + size_t byte_length = (ec->grp.pbits + 7) / 8; unsigned char tmp[MBEDTLS_ECP_MAX_BYTES]; - ret = mbedtls_ecp_write_key( ec, tmp, byte_length ); - if( ret != 0 ) + ret = mbedtls_ecp_write_key(ec, tmp, byte_length); + if (ret != 0) { goto exit; - ret = mbedtls_asn1_write_octet_string( p, start, tmp, byte_length ); + } + ret = mbedtls_asn1_write_octet_string(p, start, tmp, byte_length); exit: - mbedtls_platform_zeroize( tmp, byte_length ); - return( ret ); + mbedtls_platform_zeroize(tmp, byte_length); + return ret; } #endif /* MBEDTLS_ECP_C */ -int mbedtls_pk_write_pubkey( unsigned char **p, unsigned char *start, - const mbedtls_pk_context *key ) +int mbedtls_pk_write_pubkey(unsigned char **p, unsigned char *start, + const mbedtls_pk_context *key) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) - MBEDTLS_ASN1_CHK_ADD( len, pk_write_rsa_pubkey( p, start, mbedtls_pk_rsa( *key ) ) ); - else + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_RSA) { + MBEDTLS_ASN1_CHK_ADD(len, pk_write_rsa_pubkey(p, start, mbedtls_pk_rsa(*key))); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_ECKEY ) - MBEDTLS_ASN1_CHK_ADD( len, pk_write_ec_pubkey( p, start, mbedtls_pk_ec( *key ) ) ); - else + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_ECKEY) { + MBEDTLS_ASN1_CHK_ADD(len, pk_write_ec_pubkey(p, start, mbedtls_pk_ec(*key))); + } else #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_OPAQUE ) - { + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_OPAQUE) { size_t buffer_size; - mbedtls_svc_key_id_t* key_id = (mbedtls_svc_key_id_t*) key->pk_ctx; + mbedtls_svc_key_id_t *key_id = (mbedtls_svc_key_id_t *) key->pk_ctx; - if ( *p < start ) - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - - buffer_size = (size_t)( *p - start ); - if ( psa_export_public_key( *key_id, start, buffer_size, &len ) - != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + if (*p < start) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; } - else - { + + buffer_size = (size_t) (*p - start); + if (psa_export_public_key(*key_id, start, buffer_size, &len) + != PSA_SUCCESS) { + return MBEDTLS_ERR_PK_BAD_INPUT_DATA; + } else { *p -= len; - memmove( *p, start, len ); + memmove(*p, start, len); } - } - else + } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; - return( (int) len ); + return (int) len; } -int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *key, unsigned char *buf, size_t size ) +int mbedtls_pk_write_pubkey_der(const mbedtls_pk_context *key, unsigned char *buf, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *c; @@ -216,15 +217,17 @@ int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *key, unsigned char *b mbedtls_pk_type_t pk_type; const char *oid; - if( size == 0 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (size == 0) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } c = buf + size; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_pk_write_pubkey( &c, buf, key ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_pk_write_pubkey(&c, buf, key)); - if( c - buf < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (c - buf < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } /* * SubjectPublicKeyInfo ::= SEQUENCE { @@ -234,174 +237,176 @@ int mbedtls_pk_write_pubkey_der( const mbedtls_pk_context *key, unsigned char *b *--c = 0; len += 1; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_BIT_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_BIT_STRING)); - pk_type = mbedtls_pk_get_type( key ); + pk_type = mbedtls_pk_get_type(key); #if defined(MBEDTLS_ECP_C) - if( pk_type == MBEDTLS_PK_ECKEY ) - { - MBEDTLS_ASN1_CHK_ADD( par_len, pk_write_ec_param( &c, buf, mbedtls_pk_ec( *key ) ) ); + if (pk_type == MBEDTLS_PK_ECKEY) { + MBEDTLS_ASN1_CHK_ADD(par_len, pk_write_ec_param(&c, buf, mbedtls_pk_ec(*key))); } #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( pk_type == MBEDTLS_PK_OPAQUE ) - { + if (pk_type == MBEDTLS_PK_OPAQUE) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t key_type; mbedtls_svc_key_id_t key_id; psa_ecc_family_t curve; size_t bits; - key_id = *((mbedtls_svc_key_id_t*) key->pk_ctx ); - if( PSA_SUCCESS != psa_get_key_attributes( key_id, &attributes ) ) - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); - key_type = psa_get_key_type( &attributes ); - bits = psa_get_key_bits( &attributes ); - psa_reset_key_attributes( &attributes ); + key_id = *((mbedtls_svc_key_id_t *) key->pk_ctx); + if (PSA_SUCCESS != psa_get_key_attributes(key_id, &attributes)) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; + } + key_type = psa_get_key_type(&attributes); + bits = psa_get_key_bits(&attributes); + psa_reset_key_attributes(&attributes); - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( key_type ) ) - { - curve = PSA_KEY_TYPE_ECC_GET_FAMILY( key_type ); - if( curve == 0 ) - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) { + curve = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type); + if (curve == 0) { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; + } - ret = mbedtls_psa_get_ecc_oid_from_id( curve, bits, - &oid, &oid_len ); - if( ret != 0 ) - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + ret = mbedtls_psa_get_ecc_oid_from_id(curve, bits, + &oid, &oid_len); + if (ret != 0) { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; + } /* Write EC algorithm parameters; that's akin * to pk_write_ec_param() above. */ - MBEDTLS_ASN1_CHK_ADD( par_len, mbedtls_asn1_write_oid( &c, buf, - oid, - oid_len ) ); + MBEDTLS_ASN1_CHK_ADD(par_len, mbedtls_asn1_write_oid(&c, buf, + oid, + oid_len)); /* The rest of the function works as for legacy EC contexts. */ pk_type = MBEDTLS_PK_ECKEY; - } - else if( PSA_KEY_TYPE_IS_RSA( key_type ) ) - { + } else if (PSA_KEY_TYPE_IS_RSA(key_type)) { /* The rest of the function works as for legacy RSA contexts. */ pk_type = MBEDTLS_PK_RSA; - } - else - { - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + } else { + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ( ret = mbedtls_oid_get_oid_by_pk_alg( pk_type, &oid, - &oid_len ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_oid_get_oid_by_pk_alg(pk_type, &oid, + &oid_len)) != 0) { + return ret; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_algorithm_identifier( &c, buf, oid, oid_len, - par_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_algorithm_identifier(&c, buf, oid, oid_len, + par_len)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } -int mbedtls_pk_write_key_der( const mbedtls_pk_context *key, unsigned char *buf, size_t size ) +int mbedtls_pk_write_key_der(const mbedtls_pk_context *key, unsigned char *buf, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *c; size_t len = 0; - if( size == 0 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (size == 0) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } c = buf + size; #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_RSA) { mbedtls_mpi T; /* Temporary holding the exported parameters */ - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( *key ); + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(*key); /* * Export the parameters one after another to avoid simultaneous copies. */ - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); /* Export QP */ - if( ( ret = mbedtls_rsa_export_crt( rsa, NULL, NULL, &T ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export_crt(rsa, NULL, NULL, &T)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export DQ */ - if( ( ret = mbedtls_rsa_export_crt( rsa, NULL, &T, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export_crt(rsa, NULL, &T, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export DP */ - if( ( ret = mbedtls_rsa_export_crt( rsa, &T, NULL, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export_crt(rsa, &T, NULL, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export Q */ - if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, - &T, NULL, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, NULL, NULL, + &T, NULL, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export P */ - if ( ( ret = mbedtls_rsa_export( rsa, NULL, &T, - NULL, NULL, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, NULL, &T, + NULL, NULL, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export D */ - if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, - NULL, &T, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, NULL, NULL, + NULL, &T, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export E */ - if ( ( ret = mbedtls_rsa_export( rsa, NULL, NULL, - NULL, NULL, &T ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, NULL, NULL, + NULL, NULL, &T)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; /* Export N */ - if ( ( ret = mbedtls_rsa_export( rsa, &T, NULL, - NULL, NULL, NULL ) ) != 0 || - ( ret = mbedtls_asn1_write_mpi( &c, buf, &T ) ) < 0 ) + if ((ret = mbedtls_rsa_export(rsa, &T, NULL, + NULL, NULL, NULL)) != 0 || + (ret = mbedtls_asn1_write_mpi(&c, buf, &T)) < 0) { goto end_of_export; + } len += ret; - end_of_export: +end_of_export: - mbedtls_mpi_free( &T ); - if( ret < 0 ) - return( ret ); + mbedtls_mpi_free(&T); + if (ret < 0) { + return ret; + } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 0 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, - buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); - } - else + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_int(&c, buf, 0)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, + buf, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); + } else #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ec = mbedtls_pk_ec( *key ); + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ec = mbedtls_pk_ec(*key); size_t pub_len = 0, par_len = 0; /* @@ -416,44 +421,46 @@ int mbedtls_pk_write_key_der( const mbedtls_pk_context *key, unsigned char *buf, */ /* publicKey */ - MBEDTLS_ASN1_CHK_ADD( pub_len, pk_write_ec_pubkey( &c, buf, ec ) ); + MBEDTLS_ASN1_CHK_ADD(pub_len, pk_write_ec_pubkey(&c, buf, ec)); - if( c - buf < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (c - buf < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--c = 0; pub_len += 1; - MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_asn1_write_len( &c, buf, pub_len ) ); - MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_BIT_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(pub_len, mbedtls_asn1_write_len(&c, buf, pub_len)); + MBEDTLS_ASN1_CHK_ADD(pub_len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_BIT_STRING)); - MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_asn1_write_len( &c, buf, pub_len ) ); - MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1 ) ); + MBEDTLS_ASN1_CHK_ADD(pub_len, mbedtls_asn1_write_len(&c, buf, pub_len)); + MBEDTLS_ASN1_CHK_ADD(pub_len, mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | + MBEDTLS_ASN1_CONSTRUCTED | 1)); len += pub_len; /* parameters */ - MBEDTLS_ASN1_CHK_ADD( par_len, pk_write_ec_param( &c, buf, ec ) ); + MBEDTLS_ASN1_CHK_ADD(par_len, pk_write_ec_param(&c, buf, ec)); - MBEDTLS_ASN1_CHK_ADD( par_len, mbedtls_asn1_write_len( &c, buf, par_len ) ); - MBEDTLS_ASN1_CHK_ADD( par_len, mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0 ) ); + MBEDTLS_ASN1_CHK_ADD(par_len, mbedtls_asn1_write_len(&c, buf, par_len)); + MBEDTLS_ASN1_CHK_ADD(par_len, mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | + MBEDTLS_ASN1_CONSTRUCTED | 0)); len += par_len; /* privateKey */ - MBEDTLS_ASN1_CHK_ADD( len, pk_write_ec_private( &c, buf, ec ) ); + MBEDTLS_ASN1_CHK_ADD(len, pk_write_ec_private(&c, buf, ec)); /* version */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 1 ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_int(&c, buf, 1)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); - } - else + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); + } else #endif /* MBEDTLS_ECP_C */ - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; - return( (int) len ); + return (int) len; } #if defined(MBEDTLS_PEM_WRITE_C) @@ -467,70 +474,64 @@ int mbedtls_pk_write_key_der( const mbedtls_pk_context *key, unsigned char *buf, #define PEM_END_PRIVATE_KEY_EC "-----END EC PRIVATE KEY-----\n" #define PUB_DER_MAX_BYTES \ - ( MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES > MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES ? \ - MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES : MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES ) + (MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES > MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES ? \ + MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES : MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES) #define PRV_DER_MAX_BYTES \ - ( MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES > MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES ? \ - MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES : MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES ) + (MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES > MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES ? \ + MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES : MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES) -int mbedtls_pk_write_pubkey_pem( const mbedtls_pk_context *key, unsigned char *buf, size_t size ) +int mbedtls_pk_write_pubkey_pem(const mbedtls_pk_context *key, unsigned char *buf, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char output_buf[PUB_DER_MAX_BYTES]; size_t olen = 0; - if( ( ret = mbedtls_pk_write_pubkey_der( key, output_buf, - sizeof(output_buf) ) ) < 0 ) - { - return( ret ); + if ((ret = mbedtls_pk_write_pubkey_der(key, output_buf, + sizeof(output_buf))) < 0) { + return ret; } - if( ( ret = mbedtls_pem_write_buffer( PEM_BEGIN_PUBLIC_KEY, PEM_END_PUBLIC_KEY, - output_buf + sizeof(output_buf) - ret, - ret, buf, size, &olen ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pem_write_buffer(PEM_BEGIN_PUBLIC_KEY, PEM_END_PUBLIC_KEY, + output_buf + sizeof(output_buf) - ret, + ret, buf, size, &olen)) != 0) { + return ret; } - return( 0 ); + return 0; } -int mbedtls_pk_write_key_pem( const mbedtls_pk_context *key, unsigned char *buf, size_t size ) +int mbedtls_pk_write_key_pem(const mbedtls_pk_context *key, unsigned char *buf, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char output_buf[PRV_DER_MAX_BYTES]; const char *begin, *end; size_t olen = 0; - if( ( ret = mbedtls_pk_write_key_der( key, output_buf, sizeof(output_buf) ) ) < 0 ) - return( ret ); + if ((ret = mbedtls_pk_write_key_der(key, output_buf, sizeof(output_buf))) < 0) { + return ret; + } #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_RSA) { begin = PEM_BEGIN_PRIVATE_KEY_RSA; end = PEM_END_PRIVATE_KEY_RSA; - } - else + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( key ) == MBEDTLS_PK_ECKEY ) - { + if (mbedtls_pk_get_type(key) == MBEDTLS_PK_ECKEY) { begin = PEM_BEGIN_PRIVATE_KEY_EC; end = PEM_END_PRIVATE_KEY_EC; - } - else + } else #endif - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; - if( ( ret = mbedtls_pem_write_buffer( begin, end, - output_buf + sizeof(output_buf) - ret, - ret, buf, size, &olen ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pem_write_buffer(begin, end, + output_buf + sizeof(output_buf) - ret, + ret, buf, size, &olen)) != 0) { + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_PEM_WRITE_C */ diff --git a/library/pkwrite.h b/library/pkwrite.h index 77d3b9183..8aebd0c24 100644 --- a/library/pkwrite.h +++ b/library/pkwrite.h @@ -44,7 +44,7 @@ * publicExponent INTEGER -- e 1 + 3 + MPI_MAX + 1 * } */ -#define MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES ( 38 + 2 * MBEDTLS_MPI_MAX_SIZE ) +#define MBEDTLS_PK_RSA_PUB_DER_MAX_BYTES (38 + 2 * MBEDTLS_MPI_MAX_SIZE) /* * RSA private keys: @@ -61,10 +61,10 @@ * otherPrimeInfos OtherPrimeInfos OPTIONAL 0 (not supported) * } */ -#define MBEDTLS_MPI_MAX_SIZE_2 ( MBEDTLS_MPI_MAX_SIZE / 2 + \ - MBEDTLS_MPI_MAX_SIZE % 2 ) -#define MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES ( 47 + 3 * MBEDTLS_MPI_MAX_SIZE \ - + 5 * MBEDTLS_MPI_MAX_SIZE_2 ) +#define MBEDTLS_MPI_MAX_SIZE_2 (MBEDTLS_MPI_MAX_SIZE / 2 + \ + MBEDTLS_MPI_MAX_SIZE % 2) +#define MBEDTLS_PK_RSA_PRV_DER_MAX_BYTES (47 + 3 * MBEDTLS_MPI_MAX_SIZE \ + + 5 * MBEDTLS_MPI_MAX_SIZE_2) #else /* MBEDTLS_RSA_C */ @@ -85,7 +85,7 @@ * + 2 * ECP_MAX (coords) [1] * } */ -#define MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES ( 30 + 2 * MBEDTLS_ECP_MAX_BYTES ) +#define MBEDTLS_PK_ECP_PUB_DER_MAX_BYTES (30 + 2 * MBEDTLS_ECP_MAX_BYTES) /* * EC private keys: @@ -96,7 +96,7 @@ * publicKey [1] BIT STRING OPTIONAL 1 + 2 + [1] above * } */ -#define MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES ( 29 + 3 * MBEDTLS_ECP_MAX_BYTES ) +#define MBEDTLS_PK_ECP_PRV_DER_MAX_BYTES (29 + 3 * MBEDTLS_ECP_MAX_BYTES) #else /* MBEDTLS_ECP_C */ diff --git a/library/platform.c b/library/platform.c index 6151e6c49..b15b7b29a 100644 --- a/library/platform.c +++ b/library/platform.c @@ -30,22 +30,22 @@ * configuration via mbedtls_platform_set_calloc_free(). So, omit everything * related to the latter if MBEDTLS_PLATFORM_{FREE/CALLOC}_MACRO are defined. */ #if defined(MBEDTLS_PLATFORM_MEMORY) && \ - !( defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && \ - defined(MBEDTLS_PLATFORM_FREE_MACRO) ) + !(defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && \ + defined(MBEDTLS_PLATFORM_FREE_MACRO)) #if !defined(MBEDTLS_PLATFORM_STD_CALLOC) -static void *platform_calloc_uninit( size_t n, size_t size ) +static void *platform_calloc_uninit(size_t n, size_t size) { ((void) n); ((void) size); - return( NULL ); + return NULL; } #define MBEDTLS_PLATFORM_STD_CALLOC platform_calloc_uninit #endif /* !MBEDTLS_PLATFORM_STD_CALLOC */ #if !defined(MBEDTLS_PLATFORM_STD_FREE) -static void platform_free_uninit( void *ptr ) +static void platform_free_uninit(void *ptr) { ((void) ptr); } @@ -53,25 +53,25 @@ static void platform_free_uninit( void *ptr ) #define MBEDTLS_PLATFORM_STD_FREE platform_free_uninit #endif /* !MBEDTLS_PLATFORM_STD_FREE */ -static void * (*mbedtls_calloc_func)( size_t, size_t ) = MBEDTLS_PLATFORM_STD_CALLOC; -static void (*mbedtls_free_func)( void * ) = MBEDTLS_PLATFORM_STD_FREE; +static void * (*mbedtls_calloc_func)(size_t, size_t) = MBEDTLS_PLATFORM_STD_CALLOC; +static void (*mbedtls_free_func)(void *) = MBEDTLS_PLATFORM_STD_FREE; -void * mbedtls_calloc( size_t nmemb, size_t size ) +void *mbedtls_calloc(size_t nmemb, size_t size) { - return (*mbedtls_calloc_func)( nmemb, size ); + return (*mbedtls_calloc_func)(nmemb, size); } -void mbedtls_free( void * ptr ) +void mbedtls_free(void *ptr) { - (*mbedtls_free_func)( ptr ); + (*mbedtls_free_func)(ptr); } -int mbedtls_platform_set_calloc_free( void * (*calloc_func)( size_t, size_t ), - void (*free_func)( void * ) ) +int mbedtls_platform_set_calloc_free(void *(*calloc_func)(size_t, size_t), + void (*free_func)(void *)) { mbedtls_calloc_func = calloc_func; mbedtls_free_func = free_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_MEMORY && !( defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && @@ -79,16 +79,16 @@ int mbedtls_platform_set_calloc_free( void * (*calloc_func)( size_t, size_t ), #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_SNPRINTF) #include -int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... ) +int mbedtls_platform_win32_snprintf(char *s, size_t n, const char *fmt, ...) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; va_list argp; - va_start( argp, fmt ); - ret = mbedtls_vsnprintf( s, n, fmt, argp ); - va_end( argp ); + va_start(argp, fmt); + ret = mbedtls_vsnprintf(s, n, fmt, argp); + va_end(argp); - return( ret ); + return ret; } #endif @@ -97,53 +97,53 @@ int mbedtls_platform_win32_snprintf( char *s, size_t n, const char *fmt, ... ) /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_snprintf_uninit( char * s, size_t n, - const char * format, ... ) +static int platform_snprintf_uninit(char *s, size_t n, + const char *format, ...) { ((void) s); ((void) n); ((void) format); - return( 0 ); + return 0; } #define MBEDTLS_PLATFORM_STD_SNPRINTF platform_snprintf_uninit #endif /* !MBEDTLS_PLATFORM_STD_SNPRINTF */ -int (*mbedtls_snprintf)( char * s, size_t n, - const char * format, - ... ) = MBEDTLS_PLATFORM_STD_SNPRINTF; +int (*mbedtls_snprintf)(char *s, size_t n, + const char *format, + ...) = MBEDTLS_PLATFORM_STD_SNPRINTF; -int mbedtls_platform_set_snprintf( int (*snprintf_func)( char * s, size_t n, - const char * format, - ... ) ) +int mbedtls_platform_set_snprintf(int (*snprintf_func)(char *s, size_t n, + const char *format, + ...)) { mbedtls_snprintf = snprintf_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ #if defined(MBEDTLS_PLATFORM_HAS_NON_CONFORMING_VSNPRINTF) #include -int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_list arg ) +int mbedtls_platform_win32_vsnprintf(char *s, size_t n, const char *fmt, va_list arg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Avoid calling the invalid parameter handler by checking ourselves */ - if( s == NULL || n == 0 || fmt == NULL ) - return( -1 ); + if (s == NULL || n == 0 || fmt == NULL) { + return -1; + } #if defined(_TRUNCATE) - ret = vsnprintf_s( s, n, _TRUNCATE, fmt, arg ); + ret = vsnprintf_s(s, n, _TRUNCATE, fmt, arg); #else - ret = vsnprintf( s, n, fmt, arg ); - if( ret < 0 || (size_t) ret == n ) - { + ret = vsnprintf(s, n, fmt, arg); + if (ret < 0 || (size_t) ret == n) { s[n-1] = '\0'; ret = -1; } #endif - return( ret ); + return ret; } #endif @@ -152,29 +152,29 @@ int mbedtls_platform_win32_vsnprintf( char *s, size_t n, const char *fmt, va_lis /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_vsnprintf_uninit( char * s, size_t n, - const char * format, va_list arg ) +static int platform_vsnprintf_uninit(char *s, size_t n, + const char *format, va_list arg) { ((void) s); ((void) n); ((void) format); ((void) arg); - return( -1 ); + return -1; } #define MBEDTLS_PLATFORM_STD_VSNPRINTF platform_vsnprintf_uninit #endif /* !MBEDTLS_PLATFORM_STD_VSNPRINTF */ -int (*mbedtls_vsnprintf)( char * s, size_t n, - const char * format, - va_list arg ) = MBEDTLS_PLATFORM_STD_VSNPRINTF; +int (*mbedtls_vsnprintf)(char *s, size_t n, + const char *format, + va_list arg) = MBEDTLS_PLATFORM_STD_VSNPRINTF; -int mbedtls_platform_set_vsnprintf( int (*vsnprintf_func)( char * s, size_t n, - const char * format, - va_list arg ) ) +int mbedtls_platform_set_vsnprintf(int (*vsnprintf_func)(char *s, size_t n, + const char *format, + va_list arg)) { mbedtls_vsnprintf = vsnprintf_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */ @@ -183,21 +183,21 @@ int mbedtls_platform_set_vsnprintf( int (*vsnprintf_func)( char * s, size_t n, /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_printf_uninit( const char *format, ... ) +static int platform_printf_uninit(const char *format, ...) { ((void) format); - return( 0 ); + return 0; } #define MBEDTLS_PLATFORM_STD_PRINTF platform_printf_uninit #endif /* !MBEDTLS_PLATFORM_STD_PRINTF */ -int (*mbedtls_printf)( const char *, ... ) = MBEDTLS_PLATFORM_STD_PRINTF; +int (*mbedtls_printf)(const char *, ...) = MBEDTLS_PLATFORM_STD_PRINTF; -int mbedtls_platform_set_printf( int (*printf_func)( const char *, ... ) ) +int mbedtls_platform_set_printf(int (*printf_func)(const char *, ...)) { mbedtls_printf = printf_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ @@ -206,23 +206,23 @@ int mbedtls_platform_set_printf( int (*printf_func)( const char *, ... ) ) /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_fprintf_uninit( FILE *stream, const char *format, ... ) +static int platform_fprintf_uninit(FILE *stream, const char *format, ...) { ((void) stream); ((void) format); - return( 0 ); + return 0; } #define MBEDTLS_PLATFORM_STD_FPRINTF platform_fprintf_uninit #endif /* !MBEDTLS_PLATFORM_STD_FPRINTF */ -int (*mbedtls_fprintf)( FILE *, const char *, ... ) = - MBEDTLS_PLATFORM_STD_FPRINTF; +int (*mbedtls_fprintf)(FILE *, const char *, ...) = + MBEDTLS_PLATFORM_STD_FPRINTF; -int mbedtls_platform_set_fprintf( int (*fprintf_func)( FILE *, const char *, ... ) ) +int mbedtls_platform_set_fprintf(int (*fprintf_func)(FILE *, const char *, ...)) { mbedtls_fprintf = fprintf_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ @@ -231,20 +231,20 @@ int mbedtls_platform_set_fprintf( int (*fprintf_func)( FILE *, const char *, ... /* * Make dummy function to prevent NULL pointer dereferences */ -static void platform_setbuf_uninit( FILE *stream, char *buf ) +static void platform_setbuf_uninit(FILE *stream, char *buf) { - ((void) stream); - ((void) buf); + ((void) stream); + ((void) buf); } #define MBEDTLS_PLATFORM_STD_SETBUF platform_setbuf_uninit #endif /* !MBEDTLS_PLATFORM_STD_SETBUF */ -void (*mbedtls_setbuf)( FILE *stream, char *buf ) = MBEDTLS_PLATFORM_STD_SETBUF; +void (*mbedtls_setbuf)(FILE *stream, char *buf) = MBEDTLS_PLATFORM_STD_SETBUF; -int mbedtls_platform_set_setbuf( void (*setbuf_func)( FILE *stream, char *buf ) ) +int mbedtls_platform_set_setbuf(void (*setbuf_func)(FILE *stream, char *buf)) { - mbedtls_setbuf = setbuf_func; - return( 0 ); + mbedtls_setbuf = setbuf_func; + return 0; } #endif /* MBEDTLS_PLATFORM_SETBUF_ALT */ @@ -253,7 +253,7 @@ int mbedtls_platform_set_setbuf( void (*setbuf_func)( FILE *stream, char *buf ) /* * Make dummy function to prevent NULL pointer dereferences */ -static void platform_exit_uninit( int status ) +static void platform_exit_uninit(int status) { ((void) status); } @@ -261,12 +261,12 @@ static void platform_exit_uninit( int status ) #define MBEDTLS_PLATFORM_STD_EXIT platform_exit_uninit #endif /* !MBEDTLS_PLATFORM_STD_EXIT */ -void (*mbedtls_exit)( int status ) = MBEDTLS_PLATFORM_STD_EXIT; +void (*mbedtls_exit)(int status) = MBEDTLS_PLATFORM_STD_EXIT; -int mbedtls_platform_set_exit( void (*exit_func)( int status ) ) +int mbedtls_platform_set_exit(void (*exit_func)(int status)) { mbedtls_exit = exit_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_EXIT_ALT */ @@ -277,21 +277,21 @@ int mbedtls_platform_set_exit( void (*exit_func)( int status ) ) /* * Make dummy function to prevent NULL pointer dereferences */ -static mbedtls_time_t platform_time_uninit( mbedtls_time_t* timer ) +static mbedtls_time_t platform_time_uninit(mbedtls_time_t *timer) { ((void) timer); - return( 0 ); + return 0; } #define MBEDTLS_PLATFORM_STD_TIME platform_time_uninit #endif /* !MBEDTLS_PLATFORM_STD_TIME */ -mbedtls_time_t (*mbedtls_time)( mbedtls_time_t* timer ) = MBEDTLS_PLATFORM_STD_TIME; +mbedtls_time_t (*mbedtls_time)(mbedtls_time_t *timer) = MBEDTLS_PLATFORM_STD_TIME; -int mbedtls_platform_set_time( mbedtls_time_t (*time_func)( mbedtls_time_t* timer ) ) +int mbedtls_platform_set_time(mbedtls_time_t (*time_func)(mbedtls_time_t *timer)) { mbedtls_time = time_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_TIME_ALT */ @@ -302,47 +302,47 @@ int mbedtls_platform_set_time( mbedtls_time_t (*time_func)( mbedtls_time_t* time /* Default implementations for the platform independent seed functions use * standard libc file functions to read from and write to a pre-defined filename */ -int mbedtls_platform_std_nv_seed_read( unsigned char *buf, size_t buf_len ) +int mbedtls_platform_std_nv_seed_read(unsigned char *buf, size_t buf_len) { FILE *file; size_t n; - if( ( file = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb" ) ) == NULL ) - return( -1 ); - - /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( file, NULL ); - - if( ( n = fread( buf, 1, buf_len, file ) ) != buf_len ) - { - fclose( file ); - mbedtls_platform_zeroize( buf, buf_len ); - return( -1 ); + if ((file = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb")) == NULL) { + return -1; } - fclose( file ); - return( (int)n ); + /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ + mbedtls_setbuf(file, NULL); + + if ((n = fread(buf, 1, buf_len, file)) != buf_len) { + fclose(file); + mbedtls_platform_zeroize(buf, buf_len); + return -1; + } + + fclose(file); + return (int) n; } -int mbedtls_platform_std_nv_seed_write( unsigned char *buf, size_t buf_len ) +int mbedtls_platform_std_nv_seed_write(unsigned char *buf, size_t buf_len) { FILE *file; size_t n; - if( ( file = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w" ) ) == NULL ) - return -1; - - /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( file, NULL ); - - if( ( n = fwrite( buf, 1, buf_len, file ) ) != buf_len ) - { - fclose( file ); + if ((file = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w")) == NULL) { return -1; } - fclose( file ); - return( (int)n ); + /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ + mbedtls_setbuf(file, NULL); + + if ((n = fwrite(buf, 1, buf_len, file)) != buf_len) { + fclose(file); + return -1; + } + + fclose(file); + return (int) n; } #endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ @@ -351,11 +351,11 @@ int mbedtls_platform_std_nv_seed_write( unsigned char *buf, size_t buf_len ) /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_nv_seed_read_uninit( unsigned char *buf, size_t buf_len ) +static int platform_nv_seed_read_uninit(unsigned char *buf, size_t buf_len) { ((void) buf); ((void) buf_len); - return( -1 ); + return -1; } #define MBEDTLS_PLATFORM_STD_NV_SEED_READ platform_nv_seed_read_uninit @@ -365,28 +365,28 @@ static int platform_nv_seed_read_uninit( unsigned char *buf, size_t buf_len ) /* * Make dummy function to prevent NULL pointer dereferences */ -static int platform_nv_seed_write_uninit( unsigned char *buf, size_t buf_len ) +static int platform_nv_seed_write_uninit(unsigned char *buf, size_t buf_len) { ((void) buf); ((void) buf_len); - return( -1 ); + return -1; } #define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE platform_nv_seed_write_uninit #endif /* !MBEDTLS_PLATFORM_STD_NV_SEED_WRITE */ -int (*mbedtls_nv_seed_read)( unsigned char *buf, size_t buf_len ) = - MBEDTLS_PLATFORM_STD_NV_SEED_READ; -int (*mbedtls_nv_seed_write)( unsigned char *buf, size_t buf_len ) = - MBEDTLS_PLATFORM_STD_NV_SEED_WRITE; +int (*mbedtls_nv_seed_read)(unsigned char *buf, size_t buf_len) = + MBEDTLS_PLATFORM_STD_NV_SEED_READ; +int (*mbedtls_nv_seed_write)(unsigned char *buf, size_t buf_len) = + MBEDTLS_PLATFORM_STD_NV_SEED_WRITE; int mbedtls_platform_set_nv_seed( - int (*nv_seed_read_func)( unsigned char *buf, size_t buf_len ), - int (*nv_seed_write_func)( unsigned char *buf, size_t buf_len ) ) + int (*nv_seed_read_func)(unsigned char *buf, size_t buf_len), + int (*nv_seed_write_func)(unsigned char *buf, size_t buf_len)) { mbedtls_nv_seed_read = nv_seed_read_func; mbedtls_nv_seed_write = nv_seed_write_func; - return( 0 ); + return 0; } #endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ #endif /* MBEDTLS_ENTROPY_NV_SEED */ @@ -395,19 +395,19 @@ int mbedtls_platform_set_nv_seed( /* * Placeholder platform setup that does nothing by default */ -int mbedtls_platform_setup( mbedtls_platform_context *ctx ) +int mbedtls_platform_setup(mbedtls_platform_context *ctx) { - (void)ctx; + (void) ctx; - return( 0 ); + return 0; } /* * Placeholder platform teardown that does nothing by default */ -void mbedtls_platform_teardown( mbedtls_platform_context *ctx ) +void mbedtls_platform_teardown(mbedtls_platform_context *ctx) { - (void)ctx; + (void) ctx; } #endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ diff --git a/library/platform_util.c b/library/platform_util.c index 2b674f62e..f935b900e 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -62,14 +62,15 @@ * mbedtls_platform_zeroize() to use a suitable implementation for their * platform and needs. */ -static void * (* const volatile memset_func)( void *, int, size_t ) = memset; +static void *(*const volatile memset_func)(void *, int, size_t) = memset; -void mbedtls_platform_zeroize( void *buf, size_t len ) +void mbedtls_platform_zeroize(void *buf, size_t len) { - MBEDTLS_INTERNAL_VALIDATE( len == 0 || buf != NULL ); + MBEDTLS_INTERNAL_VALIDATE(len == 0 || buf != NULL); - if( len > 0 ) - memset_func( buf, 0, len ); + if (len > 0) { + memset_func(buf, 0, len); + } } #endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ @@ -83,9 +84,9 @@ void mbedtls_platform_zeroize( void *buf, size_t len ) #endif /* !_WIN32 && (unix || __unix || __unix__ || * (__APPLE__ && __MACH__)) */ -#if !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ - ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ - _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) +#if !((defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L) || \ + (defined(_POSIX_THREAD_SAFE_FUNCTIONS) && \ + _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L)) /* * This is a convenience shorthand macro to avoid checking the long * preprocessor conditions above. Ideally, we could expose this macro in @@ -93,70 +94,74 @@ void mbedtls_platform_zeroize( void *buf, size_t len ) * threading.h. However, this macro is not part of the Mbed TLS public API, so * we keep it private by only defining it in this file */ -#if ! ( defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) ) || \ - ( defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) ) +#if !(defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)) || \ + (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)) #define PLATFORM_UTIL_USE_GMTIME #endif -#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ - ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ +#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ + ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) */ -struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt, - struct tm *tm_buf ) +struct tm *mbedtls_platform_gmtime_r(const mbedtls_time_t *tt, + struct tm *tm_buf) { #if defined(_WIN32) && !defined(PLATFORM_UTIL_USE_GMTIME) #if defined(__STDC_LIB_EXT1__) - return( ( gmtime_s( tt, tm_buf ) == 0 ) ? NULL : tm_buf ); + return (gmtime_s(tt, tm_buf) == 0) ? NULL : tm_buf; #else /* MSVC and mingw64 argument order and return value are inconsistent with the C11 standard */ - return( ( gmtime_s( tm_buf, tt ) == 0 ) ? tm_buf : NULL ); + return (gmtime_s(tm_buf, tt) == 0) ? tm_buf : NULL; #endif #elif !defined(PLATFORM_UTIL_USE_GMTIME) - return( gmtime_r( tt, tm_buf ) ); + return gmtime_r(tt, tm_buf); #else struct tm *lt; #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_lock( &mbedtls_threading_gmtime_mutex ) != 0 ) - return( NULL ); + if (mbedtls_mutex_lock(&mbedtls_threading_gmtime_mutex) != 0) { + return NULL; + } #endif /* MBEDTLS_THREADING_C */ - lt = gmtime( tt ); + lt = gmtime(tt); - if( lt != NULL ) - { - memcpy( tm_buf, lt, sizeof( struct tm ) ); + if (lt != NULL) { + memcpy(tm_buf, lt, sizeof(struct tm)); } #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &mbedtls_threading_gmtime_mutex ) != 0 ) - return( NULL ); + if (mbedtls_mutex_unlock(&mbedtls_threading_gmtime_mutex) != 0) { + return NULL; + } #endif /* MBEDTLS_THREADING_C */ - return( ( lt == NULL ) ? NULL : tm_buf ); + return (lt == NULL) ? NULL : tm_buf; #endif /* _WIN32 && !EFIX64 && !EFI32 */ } #endif /* MBEDTLS_HAVE_TIME_DATE && MBEDTLS_PLATFORM_GMTIME_R_ALT */ #if defined(MBEDTLS_TEST_HOOKS) -void (*mbedtls_test_hook_test_fail)( const char *, int, const char *); +void (*mbedtls_test_hook_test_fail)(const char *, int, const char *); #endif /* MBEDTLS_TEST_HOOKS */ /* * Provide external definitions of some inline functions so that the compiler * has the option to not inline them */ -extern inline void mbedtls_xor( unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n ); +extern inline void mbedtls_xor(unsigned char *r, + const unsigned char *a, + const unsigned char *b, + size_t n); -extern inline uint16_t mbedtls_get_unaligned_uint16( const void *p ); +extern inline uint16_t mbedtls_get_unaligned_uint16(const void *p); -extern inline void mbedtls_put_unaligned_uint16( void *p, uint16_t x ); +extern inline void mbedtls_put_unaligned_uint16(void *p, uint16_t x); -extern inline uint32_t mbedtls_get_unaligned_uint32( const void *p ); +extern inline uint32_t mbedtls_get_unaligned_uint32(const void *p); -extern inline void mbedtls_put_unaligned_uint32( void *p, uint32_t x ); +extern inline void mbedtls_put_unaligned_uint32(void *p, uint32_t x); -extern inline uint64_t mbedtls_get_unaligned_uint64( const void *p ); +extern inline uint64_t mbedtls_get_unaligned_uint64(const void *p); -extern inline void mbedtls_put_unaligned_uint64( void *p, uint64_t x ); +extern inline void mbedtls_put_unaligned_uint64(void *p, uint64_t x); diff --git a/library/poly1305.c b/library/poly1305.c index 4d0cdee25..f4e1d3f88 100644 --- a/library/poly1305.c +++ b/library/poly1305.c @@ -32,14 +32,14 @@ #if !defined(MBEDTLS_POLY1305_ALT) -#define POLY1305_BLOCK_SIZE_BYTES ( 16U ) +#define POLY1305_BLOCK_SIZE_BYTES (16U) /* * Our implementation is tuned for 32-bit platforms with a 64-bit multiplier. * However we provided an alternative for platforms without such a multiplier. */ #if defined(MBEDTLS_NO_64BIT_MULTIPLICATION) -static uint64_t mul64( uint32_t a, uint32_t b ) +static uint64_t mul64(uint32_t a, uint32_t b) { /* a = al + 2**16 ah, b = bl + 2**16 bh */ const uint16_t al = (uint16_t) a; @@ -49,15 +49,15 @@ static uint64_t mul64( uint32_t a, uint32_t b ) /* ab = al*bl + 2**16 (ah*bl + bl*bh) + 2**32 ah*bh */ const uint32_t lo = (uint32_t) al * bl; - const uint64_t me = (uint64_t)( (uint32_t) ah * bl ) + (uint32_t) al * bh; + const uint64_t me = (uint64_t) ((uint32_t) ah * bl) + (uint32_t) al * bh; const uint32_t hi = (uint32_t) ah * bh; - return( lo + ( me << 16 ) + ( (uint64_t) hi << 32 ) ); + return lo + (me << 16) + ((uint64_t) hi << 32); } #else -static inline uint64_t mul64( uint32_t a, uint32_t b ) +static inline uint64_t mul64(uint32_t a, uint32_t b) { - return( (uint64_t) a * b ); + return (uint64_t) a * b; } #endif @@ -73,10 +73,10 @@ static inline uint64_t mul64( uint32_t a, uint32_t b ) * applied to the input data before calling this * function. Otherwise, set this parameter to 1. */ -static void poly1305_process( mbedtls_poly1305_context *ctx, - size_t nblocks, - const unsigned char *input, - uint32_t needs_padding ) +static void poly1305_process(mbedtls_poly1305_context *ctx, + size_t nblocks, + const unsigned char *input, + uint32_t needs_padding) { uint64_t d0, d1, d2, d3; uint32_t acc0, acc1, acc2, acc3, acc4; @@ -90,9 +90,9 @@ static void poly1305_process( mbedtls_poly1305_context *ctx, r2 = ctx->r[2]; r3 = ctx->r[3]; - rs1 = r1 + ( r1 >> 2U ); - rs2 = r2 + ( r2 >> 2U ); - rs3 = r3 + ( r3 >> 2U ); + rs1 = r1 + (r1 >> 2U); + rs2 = r2 + (r2 >> 2U); + rs3 = r3 + (r3 >> 2U); acc0 = ctx->acc[0]; acc1 = ctx->acc[1]; @@ -101,67 +101,66 @@ static void poly1305_process( mbedtls_poly1305_context *ctx, acc4 = ctx->acc[4]; /* Process full blocks */ - for( i = 0U; i < nblocks; i++ ) - { + for (i = 0U; i < nblocks; i++) { /* The input block is treated as a 128-bit little-endian integer */ - d0 = MBEDTLS_GET_UINT32_LE( input, offset + 0 ); - d1 = MBEDTLS_GET_UINT32_LE( input, offset + 4 ); - d2 = MBEDTLS_GET_UINT32_LE( input, offset + 8 ); - d3 = MBEDTLS_GET_UINT32_LE( input, offset + 12 ); + d0 = MBEDTLS_GET_UINT32_LE(input, offset + 0); + d1 = MBEDTLS_GET_UINT32_LE(input, offset + 4); + d2 = MBEDTLS_GET_UINT32_LE(input, offset + 8); + d3 = MBEDTLS_GET_UINT32_LE(input, offset + 12); /* Compute: acc += (padded) block as a 130-bit integer */ d0 += (uint64_t) acc0; - d1 += (uint64_t) acc1 + ( d0 >> 32U ); - d2 += (uint64_t) acc2 + ( d1 >> 32U ); - d3 += (uint64_t) acc3 + ( d2 >> 32U ); + d1 += (uint64_t) acc1 + (d0 >> 32U); + d2 += (uint64_t) acc2 + (d1 >> 32U); + d3 += (uint64_t) acc3 + (d2 >> 32U); acc0 = (uint32_t) d0; acc1 = (uint32_t) d1; acc2 = (uint32_t) d2; acc3 = (uint32_t) d3; - acc4 += (uint32_t) ( d3 >> 32U ) + needs_padding; + acc4 += (uint32_t) (d3 >> 32U) + needs_padding; /* Compute: acc *= r */ - d0 = mul64( acc0, r0 ) + - mul64( acc1, rs3 ) + - mul64( acc2, rs2 ) + - mul64( acc3, rs1 ); - d1 = mul64( acc0, r1 ) + - mul64( acc1, r0 ) + - mul64( acc2, rs3 ) + - mul64( acc3, rs2 ) + - mul64( acc4, rs1 ); - d2 = mul64( acc0, r2 ) + - mul64( acc1, r1 ) + - mul64( acc2, r0 ) + - mul64( acc3, rs3 ) + - mul64( acc4, rs2 ); - d3 = mul64( acc0, r3 ) + - mul64( acc1, r2 ) + - mul64( acc2, r1 ) + - mul64( acc3, r0 ) + - mul64( acc4, rs3 ); + d0 = mul64(acc0, r0) + + mul64(acc1, rs3) + + mul64(acc2, rs2) + + mul64(acc3, rs1); + d1 = mul64(acc0, r1) + + mul64(acc1, r0) + + mul64(acc2, rs3) + + mul64(acc3, rs2) + + mul64(acc4, rs1); + d2 = mul64(acc0, r2) + + mul64(acc1, r1) + + mul64(acc2, r0) + + mul64(acc3, rs3) + + mul64(acc4, rs2); + d3 = mul64(acc0, r3) + + mul64(acc1, r2) + + mul64(acc2, r1) + + mul64(acc3, r0) + + mul64(acc4, rs3); acc4 *= r0; /* Compute: acc %= (2^130 - 5) (partial remainder) */ - d1 += ( d0 >> 32 ); - d2 += ( d1 >> 32 ); - d3 += ( d2 >> 32 ); + d1 += (d0 >> 32); + d2 += (d1 >> 32); + d3 += (d2 >> 32); acc0 = (uint32_t) d0; acc1 = (uint32_t) d1; acc2 = (uint32_t) d2; acc3 = (uint32_t) d3; - acc4 = (uint32_t) ( d3 >> 32 ) + acc4; + acc4 = (uint32_t) (d3 >> 32) + acc4; - d0 = (uint64_t) acc0 + ( acc4 >> 2 ) + ( acc4 & 0xFFFFFFFCU ); + d0 = (uint64_t) acc0 + (acc4 >> 2) + (acc4 & 0xFFFFFFFCU); acc4 &= 3U; acc0 = (uint32_t) d0; - d0 = (uint64_t) acc1 + ( d0 >> 32U ); + d0 = (uint64_t) acc1 + (d0 >> 32U); acc1 = (uint32_t) d0; - d0 = (uint64_t) acc2 + ( d0 >> 32U ); + d0 = (uint64_t) acc2 + (d0 >> 32U); acc2 = (uint32_t) d0; - d0 = (uint64_t) acc3 + ( d0 >> 32U ); + d0 = (uint64_t) acc3 + (d0 >> 32U); acc3 = (uint32_t) d0; - d0 = (uint64_t) acc4 + ( d0 >> 32U ); + d0 = (uint64_t) acc4 + (d0 >> 32U); acc4 = (uint32_t) d0; offset += POLY1305_BLOCK_SIZE_BYTES; @@ -181,8 +180,8 @@ static void poly1305_process( mbedtls_poly1305_context *ctx, * \param mac The buffer to where the MAC is written. Must be * big enough to contain the 16-byte MAC. */ -static void poly1305_compute_mac( const mbedtls_poly1305_context *ctx, - unsigned char mac[16] ) +static void poly1305_compute_mac(const mbedtls_poly1305_context *ctx, + unsigned char mac[16]) { uint64_t d; uint32_t g0, g1, g2, g3, g4; @@ -202,68 +201,69 @@ static void poly1305_compute_mac( const mbedtls_poly1305_context *ctx, */ /* Calculate acc + -(2^130 - 5) */ - d = ( (uint64_t) acc0 + 5U ); + d = ((uint64_t) acc0 + 5U); g0 = (uint32_t) d; - d = ( (uint64_t) acc1 + ( d >> 32 ) ); + d = ((uint64_t) acc1 + (d >> 32)); g1 = (uint32_t) d; - d = ( (uint64_t) acc2 + ( d >> 32 ) ); + d = ((uint64_t) acc2 + (d >> 32)); g2 = (uint32_t) d; - d = ( (uint64_t) acc3 + ( d >> 32 ) ); + d = ((uint64_t) acc3 + (d >> 32)); g3 = (uint32_t) d; - g4 = acc4 + (uint32_t) ( d >> 32U ); + g4 = acc4 + (uint32_t) (d >> 32U); /* mask == 0xFFFFFFFF if 131st bit is set, otherwise mask == 0 */ - mask = (uint32_t) 0U - ( g4 >> 2U ); + mask = (uint32_t) 0U - (g4 >> 2U); mask_inv = ~mask; /* If 131st bit is set then acc=g, otherwise, acc is unmodified */ - acc0 = ( acc0 & mask_inv ) | ( g0 & mask ); - acc1 = ( acc1 & mask_inv ) | ( g1 & mask ); - acc2 = ( acc2 & mask_inv ) | ( g2 & mask ); - acc3 = ( acc3 & mask_inv ) | ( g3 & mask ); + acc0 = (acc0 & mask_inv) | (g0 & mask); + acc1 = (acc1 & mask_inv) | (g1 & mask); + acc2 = (acc2 & mask_inv) | (g2 & mask); + acc3 = (acc3 & mask_inv) | (g3 & mask); /* Add 's' */ d = (uint64_t) acc0 + ctx->s[0]; acc0 = (uint32_t) d; - d = (uint64_t) acc1 + ctx->s[1] + ( d >> 32U ); + d = (uint64_t) acc1 + ctx->s[1] + (d >> 32U); acc1 = (uint32_t) d; - d = (uint64_t) acc2 + ctx->s[2] + ( d >> 32U ); + d = (uint64_t) acc2 + ctx->s[2] + (d >> 32U); acc2 = (uint32_t) d; - acc3 += ctx->s[3] + (uint32_t) ( d >> 32U ); + acc3 += ctx->s[3] + (uint32_t) (d >> 32U); /* Compute MAC (128 least significant bits of the accumulator) */ - MBEDTLS_PUT_UINT32_LE( acc0, mac, 0 ); - MBEDTLS_PUT_UINT32_LE( acc1, mac, 4 ); - MBEDTLS_PUT_UINT32_LE( acc2, mac, 8 ); - MBEDTLS_PUT_UINT32_LE( acc3, mac, 12 ); + MBEDTLS_PUT_UINT32_LE(acc0, mac, 0); + MBEDTLS_PUT_UINT32_LE(acc1, mac, 4); + MBEDTLS_PUT_UINT32_LE(acc2, mac, 8); + MBEDTLS_PUT_UINT32_LE(acc3, mac, 12); } -void mbedtls_poly1305_init( mbedtls_poly1305_context *ctx ) +void mbedtls_poly1305_init(mbedtls_poly1305_context *ctx) { - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_poly1305_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_poly1305_context)); } -void mbedtls_poly1305_free( mbedtls_poly1305_context *ctx ) +void mbedtls_poly1305_free(mbedtls_poly1305_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_poly1305_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_poly1305_context)); } -int mbedtls_poly1305_starts( mbedtls_poly1305_context *ctx, - const unsigned char key[32] ) +int mbedtls_poly1305_starts(mbedtls_poly1305_context *ctx, + const unsigned char key[32]) { /* r &= 0x0ffffffc0ffffffc0ffffffc0fffffff */ - ctx->r[0] = MBEDTLS_GET_UINT32_LE( key, 0 ) & 0x0FFFFFFFU; - ctx->r[1] = MBEDTLS_GET_UINT32_LE( key, 4 ) & 0x0FFFFFFCU; - ctx->r[2] = MBEDTLS_GET_UINT32_LE( key, 8 ) & 0x0FFFFFFCU; - ctx->r[3] = MBEDTLS_GET_UINT32_LE( key, 12 ) & 0x0FFFFFFCU; + ctx->r[0] = MBEDTLS_GET_UINT32_LE(key, 0) & 0x0FFFFFFFU; + ctx->r[1] = MBEDTLS_GET_UINT32_LE(key, 4) & 0x0FFFFFFCU; + ctx->r[2] = MBEDTLS_GET_UINT32_LE(key, 8) & 0x0FFFFFFCU; + ctx->r[3] = MBEDTLS_GET_UINT32_LE(key, 12) & 0x0FFFFFFCU; - ctx->s[0] = MBEDTLS_GET_UINT32_LE( key, 16 ); - ctx->s[1] = MBEDTLS_GET_UINT32_LE( key, 20 ); - ctx->s[2] = MBEDTLS_GET_UINT32_LE( key, 24 ); - ctx->s[3] = MBEDTLS_GET_UINT32_LE( key, 28 ); + ctx->s[0] = MBEDTLS_GET_UINT32_LE(key, 16); + ctx->s[1] = MBEDTLS_GET_UINT32_LE(key, 20); + ctx->s[2] = MBEDTLS_GET_UINT32_LE(key, 24); + ctx->s[3] = MBEDTLS_GET_UINT32_LE(key, 28); /* Initial accumulator state */ ctx->acc[0] = 0U; @@ -273,121 +273,116 @@ int mbedtls_poly1305_starts( mbedtls_poly1305_context *ctx, ctx->acc[4] = 0U; /* Queue initially empty */ - mbedtls_platform_zeroize( ctx->queue, sizeof( ctx->queue ) ); + mbedtls_platform_zeroize(ctx->queue, sizeof(ctx->queue)); ctx->queue_len = 0U; - return( 0 ); + return 0; } -int mbedtls_poly1305_update( mbedtls_poly1305_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_poly1305_update(mbedtls_poly1305_context *ctx, + const unsigned char *input, + size_t ilen) { size_t offset = 0U; size_t remaining = ilen; size_t queue_free_len; size_t nblocks; - if( ( remaining > 0U ) && ( ctx->queue_len > 0U ) ) - { - queue_free_len = ( POLY1305_BLOCK_SIZE_BYTES - ctx->queue_len ); + if ((remaining > 0U) && (ctx->queue_len > 0U)) { + queue_free_len = (POLY1305_BLOCK_SIZE_BYTES - ctx->queue_len); - if( ilen < queue_free_len ) - { + if (ilen < queue_free_len) { /* Not enough data to complete the block. * Store this data with the other leftovers. */ - memcpy( &ctx->queue[ctx->queue_len], - input, - ilen ); + memcpy(&ctx->queue[ctx->queue_len], + input, + ilen); ctx->queue_len += ilen; remaining = 0U; - } - else - { + } else { /* Enough data to produce a complete block */ - memcpy( &ctx->queue[ctx->queue_len], - input, - queue_free_len ); + memcpy(&ctx->queue[ctx->queue_len], + input, + queue_free_len); ctx->queue_len = 0U; - poly1305_process( ctx, 1U, ctx->queue, 1U ); /* add padding bit */ + poly1305_process(ctx, 1U, ctx->queue, 1U); /* add padding bit */ offset += queue_free_len; remaining -= queue_free_len; } } - if( remaining >= POLY1305_BLOCK_SIZE_BYTES ) - { + if (remaining >= POLY1305_BLOCK_SIZE_BYTES) { nblocks = remaining / POLY1305_BLOCK_SIZE_BYTES; - poly1305_process( ctx, nblocks, &input[offset], 1U ); + poly1305_process(ctx, nblocks, &input[offset], 1U); offset += nblocks * POLY1305_BLOCK_SIZE_BYTES; remaining %= POLY1305_BLOCK_SIZE_BYTES; } - if( remaining > 0U ) - { + if (remaining > 0U) { /* Store partial block */ ctx->queue_len = remaining; - memcpy( ctx->queue, &input[offset], remaining ); + memcpy(ctx->queue, &input[offset], remaining); } - return( 0 ); + return 0; } -int mbedtls_poly1305_finish( mbedtls_poly1305_context *ctx, - unsigned char mac[16] ) +int mbedtls_poly1305_finish(mbedtls_poly1305_context *ctx, + unsigned char mac[16]) { /* Process any leftover data */ - if( ctx->queue_len > 0U ) - { + if (ctx->queue_len > 0U) { /* Add padding bit */ ctx->queue[ctx->queue_len] = 1U; ctx->queue_len++; /* Pad with zeroes */ - memset( &ctx->queue[ctx->queue_len], - 0, - POLY1305_BLOCK_SIZE_BYTES - ctx->queue_len ); + memset(&ctx->queue[ctx->queue_len], + 0, + POLY1305_BLOCK_SIZE_BYTES - ctx->queue_len); - poly1305_process( ctx, 1U, /* Process 1 block */ - ctx->queue, 0U ); /* Already padded above */ + poly1305_process(ctx, 1U, /* Process 1 block */ + ctx->queue, 0U); /* Already padded above */ } - poly1305_compute_mac( ctx, mac ); + poly1305_compute_mac(ctx, mac); - return( 0 ); + return 0; } -int mbedtls_poly1305_mac( const unsigned char key[32], - const unsigned char *input, - size_t ilen, - unsigned char mac[16] ) +int mbedtls_poly1305_mac(const unsigned char key[32], + const unsigned char *input, + size_t ilen, + unsigned char mac[16]) { mbedtls_poly1305_context ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_poly1305_init( &ctx ); + mbedtls_poly1305_init(&ctx); - ret = mbedtls_poly1305_starts( &ctx, key ); - if( ret != 0 ) + ret = mbedtls_poly1305_starts(&ctx, key); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_poly1305_update( &ctx, input, ilen ); - if( ret != 0 ) + ret = mbedtls_poly1305_update(&ctx, input, ilen); + if (ret != 0) { goto cleanup; + } - ret = mbedtls_poly1305_finish( &ctx, mac ); + ret = mbedtls_poly1305_finish(&ctx, mac); cleanup: - mbedtls_poly1305_free( &ctx ); - return( ret ); + mbedtls_poly1305_free(&ctx); + return ret; } #endif /* MBEDTLS_POLY1305_ALT */ @@ -460,46 +455,48 @@ static const unsigned char test_mac[2][16] = /* Make sure no other definition is already present. */ #undef ASSERT -#define ASSERT( cond, args ) \ +#define ASSERT(cond, args) \ do \ { \ - if( ! ( cond ) ) \ + if (!(cond)) \ { \ - if( verbose != 0 ) \ - mbedtls_printf args; \ + if (verbose != 0) \ + mbedtls_printf args; \ \ - return( -1 ); \ + return -1; \ } \ } \ - while( 0 ) + while (0) -int mbedtls_poly1305_self_test( int verbose ) +int mbedtls_poly1305_self_test(int verbose) { unsigned char mac[16]; unsigned i; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - for( i = 0U; i < 2U; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " Poly1305 test %u ", i ); + for (i = 0U; i < 2U; i++) { + if (verbose != 0) { + mbedtls_printf(" Poly1305 test %u ", i); + } - ret = mbedtls_poly1305_mac( test_keys[i], - test_data[i], - test_data_len[i], - mac ); - ASSERT( 0 == ret, ( "error code: %i\n", ret ) ); + ret = mbedtls_poly1305_mac(test_keys[i], + test_data[i], + test_data_len[i], + mac); + ASSERT(0 == ret, ("error code: %i\n", ret)); - ASSERT( 0 == memcmp( mac, test_mac[i], 16U ), ( "failed (mac)\n" ) ); + ASSERT(0 == memcmp(mac, test_mac[i], 16U), ("failed (mac)\n")); - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/psa_crypto.c b/library/psa_crypto.c index cb5791fc7..0a8949fda 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -82,7 +82,7 @@ #include "mbedtls/sha256.h" #include "mbedtls/sha512.h" -#define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( *( array ) ) ) +#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array))) #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ @@ -94,9 +94,9 @@ /* Global data, support functions and library management */ /****************************************************************/ -static int key_type_is_raw_bytes( psa_key_type_t type ) +static int key_type_is_raw_bytes(psa_key_type_t type) { - return( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ); + return PSA_KEY_TYPE_IS_UNSTRUCTURED(type); } /* Values for psa_global_data_t::rng_state */ @@ -104,8 +104,7 @@ static int key_type_is_raw_bytes( psa_key_type_t type ) #define RNG_INITIALIZED 1 #define RNG_SEEDED 2 -typedef struct -{ +typedef struct { unsigned initialized : 1; unsigned rng_state : 2; mbedtls_psa_random_context_t rng; @@ -119,204 +118,203 @@ mbedtls_psa_drbg_context_t *const mbedtls_psa_random_state = #endif #define GUARD_MODULE_INITIALIZED \ - if( global_data.initialized == 0 ) \ - return( PSA_ERROR_BAD_STATE ); + if (global_data.initialized == 0) \ + return PSA_ERROR_BAD_STATE; -psa_status_t mbedtls_to_psa_error( int ret ) +psa_status_t mbedtls_to_psa_error(int ret) { /* Mbed TLS error codes can combine a high-level error code and a * low-level error code. The low-level error usually reflects the * root cause better, so dispatch on that preferably. */ - int low_level_ret = - ( -ret & 0x007f ); - switch( low_level_ret != 0 ? low_level_ret : ret ) - { + int low_level_ret = -(-ret & 0x007f); + switch (low_level_ret != 0 ? low_level_ret : ret) { case 0: - return( PSA_SUCCESS ); + return PSA_SUCCESS; case MBEDTLS_ERR_AES_INVALID_KEY_LENGTH: case MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_ASN1_OUT_OF_DATA: case MBEDTLS_ERR_ASN1_UNEXPECTED_TAG: case MBEDTLS_ERR_ASN1_INVALID_LENGTH: case MBEDTLS_ERR_ASN1_LENGTH_MISMATCH: case MBEDTLS_ERR_ASN1_INVALID_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_ASN1_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_ASN1_BUF_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; #if defined(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA) case MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA: #endif case MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_CCM_BAD_INPUT: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_CCM_AUTH_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_CHACHAPOLY_BAD_STATE: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; case MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_CIPHER_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_CIPHER_INVALID_PADDING: - return( PSA_ERROR_INVALID_PADDING ); + return PSA_ERROR_INVALID_PADDING; case MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_CIPHER_AUTH_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_CIPHER_INVALID_CONTEXT: - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; -#if !( defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) || \ - defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) ) +#if !(defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) || \ + defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE)) /* Only check CTR_DRBG error codes if underlying mbedtls_xxx * functions are passed a CTR_DRBG instance. */ case MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; case MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG: case MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; #endif case MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED: case MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE: case MBEDTLS_ERR_ENTROPY_SOURCE_FAILED: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; case MBEDTLS_ERR_GCM_AUTH_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_GCM_BAD_INPUT: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \ - defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) + defined(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE) /* Only check HMAC_DRBG error codes if underlying mbedtls_xxx * functions are passed a HMAC_DRBG instance. */ case MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; case MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG: case MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; #endif case MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_MD_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MD_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_MD_FILE_IO_ERROR: - return( PSA_ERROR_STORAGE_FAILURE ); + return PSA_ERROR_STORAGE_FAILURE; case MBEDTLS_ERR_MPI_FILE_IO_ERROR: - return( PSA_ERROR_STORAGE_FAILURE ); + return PSA_ERROR_STORAGE_FAILURE; case MBEDTLS_ERR_MPI_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MPI_INVALID_CHARACTER: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_MPI_NEGATIVE_VALUE: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MPI_DIVISION_BY_ZERO: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MPI_NOT_ACCEPTABLE: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_MPI_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_PK_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_PK_TYPE_MISMATCH: case MBEDTLS_ERR_PK_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_PK_FILE_IO_ERROR: - return( PSA_ERROR_STORAGE_FAILURE ); + return PSA_ERROR_STORAGE_FAILURE; case MBEDTLS_ERR_PK_KEY_INVALID_VERSION: case MBEDTLS_ERR_PK_KEY_INVALID_FORMAT: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_PK_UNKNOWN_PK_ALG: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_PK_PASSWORD_REQUIRED: case MBEDTLS_ERR_PK_PASSWORD_MISMATCH: - return( PSA_ERROR_NOT_PERMITTED ); + return PSA_ERROR_NOT_PERMITTED; case MBEDTLS_ERR_PK_INVALID_PUBKEY: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_PK_INVALID_ALG: case MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE: case MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_PK_SIG_LEN_MISMATCH: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_PK_BUFFER_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED: - return( PSA_ERROR_HARDWARE_FAILURE ); + return PSA_ERROR_HARDWARE_FAILURE; case MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_RSA_BAD_INPUT_DATA: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_RSA_INVALID_PADDING: - return( PSA_ERROR_INVALID_PADDING ); + return PSA_ERROR_INVALID_PADDING; case MBEDTLS_ERR_RSA_KEY_GEN_FAILED: - return( PSA_ERROR_HARDWARE_FAILURE ); + return PSA_ERROR_HARDWARE_FAILURE; case MBEDTLS_ERR_RSA_KEY_CHECK_FAILED: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_RSA_PUBLIC_FAILED: case MBEDTLS_ERR_RSA_PRIVATE_FAILED: - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; case MBEDTLS_ERR_RSA_VERIFY_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_RSA_RNG_FAILED: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; case MBEDTLS_ERR_ECP_BAD_INPUT_DATA: case MBEDTLS_ERR_ECP_INVALID_KEY: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; case MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH: case MBEDTLS_ERR_ECP_VERIFY_FAILED: - return( PSA_ERROR_INVALID_SIGNATURE ); + return PSA_ERROR_INVALID_SIGNATURE; case MBEDTLS_ERR_ECP_ALLOC_FAILED: - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + return PSA_ERROR_INSUFFICIENT_MEMORY; case MBEDTLS_ERR_ECP_RANDOM_FAILED: - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + return PSA_ERROR_INSUFFICIENT_ENTROPY; case MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED: - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; default: - return( PSA_ERROR_GENERIC_ERROR ); + return PSA_ERROR_GENERIC_ERROR; } } @@ -332,99 +330,96 @@ psa_status_t mbedtls_to_psa_error( int ret ) defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) -mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, - size_t bits, - int bits_is_sloppy ) +mbedtls_ecp_group_id mbedtls_ecc_group_of_psa(psa_ecc_family_t curve, + size_t bits, + int bits_is_sloppy) { - switch( curve ) - { + switch (curve) { case PSA_ECC_FAMILY_SECP_R1: - switch( bits ) - { + switch (bits) { #if defined(PSA_WANT_ECC_SECP_R1_192) case 192: - return( MBEDTLS_ECP_DP_SECP192R1 ); + return MBEDTLS_ECP_DP_SECP192R1; #endif #if defined(PSA_WANT_ECC_SECP_R1_224) case 224: - return( MBEDTLS_ECP_DP_SECP224R1 ); + return MBEDTLS_ECP_DP_SECP224R1; #endif #if defined(PSA_WANT_ECC_SECP_R1_256) case 256: - return( MBEDTLS_ECP_DP_SECP256R1 ); + return MBEDTLS_ECP_DP_SECP256R1; #endif #if defined(PSA_WANT_ECC_SECP_R1_384) case 384: - return( MBEDTLS_ECP_DP_SECP384R1 ); + return MBEDTLS_ECP_DP_SECP384R1; #endif #if defined(PSA_WANT_ECC_SECP_R1_521) case 521: - return( MBEDTLS_ECP_DP_SECP521R1 ); + return MBEDTLS_ECP_DP_SECP521R1; case 528: - if( bits_is_sloppy ) - return( MBEDTLS_ECP_DP_SECP521R1 ); + if (bits_is_sloppy) { + return MBEDTLS_ECP_DP_SECP521R1; + } break; #endif } break; case PSA_ECC_FAMILY_BRAINPOOL_P_R1: - switch( bits ) - { + switch (bits) { #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) case 256: - return( MBEDTLS_ECP_DP_BP256R1 ); + return MBEDTLS_ECP_DP_BP256R1; #endif #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) case 384: - return( MBEDTLS_ECP_DP_BP384R1 ); + return MBEDTLS_ECP_DP_BP384R1; #endif #if defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) case 512: - return( MBEDTLS_ECP_DP_BP512R1 ); + return MBEDTLS_ECP_DP_BP512R1; #endif } break; case PSA_ECC_FAMILY_MONTGOMERY: - switch( bits ) - { + switch (bits) { #if defined(PSA_WANT_ECC_MONTGOMERY_255) case 255: - return( MBEDTLS_ECP_DP_CURVE25519 ); + return MBEDTLS_ECP_DP_CURVE25519; case 256: - if( bits_is_sloppy ) - return( MBEDTLS_ECP_DP_CURVE25519 ); + if (bits_is_sloppy) { + return MBEDTLS_ECP_DP_CURVE25519; + } break; #endif #if defined(PSA_WANT_ECC_MONTGOMERY_448) case 448: - return( MBEDTLS_ECP_DP_CURVE448 ); + return MBEDTLS_ECP_DP_CURVE448; #endif } break; case PSA_ECC_FAMILY_SECP_K1: - switch( bits ) - { + switch (bits) { #if defined(PSA_WANT_ECC_SECP_K1_192) case 192: - return( MBEDTLS_ECP_DP_SECP192K1 ); + return MBEDTLS_ECP_DP_SECP192K1; #endif #if defined(PSA_WANT_ECC_SECP_K1_224) case 224: - return( MBEDTLS_ECP_DP_SECP224K1 ); + return MBEDTLS_ECP_DP_SECP224K1; #endif #if defined(PSA_WANT_ECC_SECP_K1_256) case 256: - return( MBEDTLS_ECP_DP_SECP256K1 ); + return MBEDTLS_ECP_DP_SECP256K1; #endif } break; } (void) bits_is_sloppy; - return( MBEDTLS_ECP_DP_NONE ); + return MBEDTLS_ECP_DP_NONE; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) || @@ -432,12 +427,11 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) || defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) */ -psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, - size_t bits ) +psa_status_t psa_validate_unstructured_key_bit_size(psa_key_type_t type, + size_t bits) { /* Check that the bit size is acceptable for the key type */ - switch( type ) - { + switch (type) { case PSA_KEY_TYPE_RAW_DATA: case PSA_KEY_TYPE_HMAC: case PSA_KEY_TYPE_DERIVE: @@ -446,41 +440,47 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, break; #if defined(PSA_WANT_KEY_TYPE_AES) case PSA_KEY_TYPE_AES: - if( bits != 128 && bits != 192 && bits != 256 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (bits != 128 && bits != 192 && bits != 256) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif #if defined(PSA_WANT_KEY_TYPE_ARIA) case PSA_KEY_TYPE_ARIA: - if( bits != 128 && bits != 192 && bits != 256 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (bits != 128 && bits != 192 && bits != 256) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif #if defined(PSA_WANT_KEY_TYPE_CAMELLIA) case PSA_KEY_TYPE_CAMELLIA: - if( bits != 128 && bits != 192 && bits != 256 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (bits != 128 && bits != 192 && bits != 256) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif #if defined(PSA_WANT_KEY_TYPE_DES) case PSA_KEY_TYPE_DES: - if( bits != 64 && bits != 128 && bits != 192 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (bits != 64 && bits != 128 && bits != 192) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif #if defined(PSA_WANT_KEY_TYPE_CHACHA20) case PSA_KEY_TYPE_CHACHA20: - if( bits != 256 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (bits != 256) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif default: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; + } + if (bits % 8 != 0) { + return PSA_ERROR_INVALID_ARGUMENT; } - if( bits % 8 != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Check whether a given key type is valid for use with a given MAC algorithm @@ -499,116 +499,115 @@ psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, */ MBEDTLS_STATIC_TESTABLE psa_status_t psa_mac_key_can_do( psa_algorithm_t algorithm, - psa_key_type_t key_type ) + psa_key_type_t key_type) { - if( PSA_ALG_IS_HMAC( algorithm ) ) - { - if( key_type == PSA_KEY_TYPE_HMAC ) - return( PSA_SUCCESS ); - } - - if( PSA_ALG_IS_BLOCK_CIPHER_MAC( algorithm ) ) - { - /* Check that we're calling PSA_BLOCK_CIPHER_BLOCK_LENGTH with a cipher - * key. */ - if( ( key_type & PSA_KEY_TYPE_CATEGORY_MASK ) == - PSA_KEY_TYPE_CATEGORY_SYMMETRIC ) - { - /* PSA_BLOCK_CIPHER_BLOCK_LENGTH returns 1 for stream ciphers and - * the block length (larger than 1) for block ciphers. */ - if( PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ) > 1 ) - return( PSA_SUCCESS ); + if (PSA_ALG_IS_HMAC(algorithm)) { + if (key_type == PSA_KEY_TYPE_HMAC) { + return PSA_SUCCESS; } } - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_ALG_IS_BLOCK_CIPHER_MAC(algorithm)) { + /* Check that we're calling PSA_BLOCK_CIPHER_BLOCK_LENGTH with a cipher + * key. */ + if ((key_type & PSA_KEY_TYPE_CATEGORY_MASK) == + PSA_KEY_TYPE_CATEGORY_SYMMETRIC) { + /* PSA_BLOCK_CIPHER_BLOCK_LENGTH returns 1 for stream ciphers and + * the block length (larger than 1) for block ciphers. */ + if (PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type) > 1) { + return PSA_SUCCESS; + } + } + } + + return PSA_ERROR_INVALID_ARGUMENT; } -psa_status_t psa_allocate_buffer_to_slot( psa_key_slot_t *slot, - size_t buffer_length ) +psa_status_t psa_allocate_buffer_to_slot(psa_key_slot_t *slot, + size_t buffer_length) { - if( slot->key.data != NULL ) - return( PSA_ERROR_ALREADY_EXISTS ); + if (slot->key.data != NULL) { + return PSA_ERROR_ALREADY_EXISTS; + } - slot->key.data = mbedtls_calloc( 1, buffer_length ); - if( slot->key.data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + slot->key.data = mbedtls_calloc(1, buffer_length); + if (slot->key.data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } slot->key.bytes = buffer_length; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_copy_key_material_into_slot( psa_key_slot_t *slot, - const uint8_t* data, - size_t data_length ) +psa_status_t psa_copy_key_material_into_slot(psa_key_slot_t *slot, + const uint8_t *data, + size_t data_length) { - psa_status_t status = psa_allocate_buffer_to_slot( slot, - data_length ); - if( status != PSA_SUCCESS ) - return( status ); + psa_status_t status = psa_allocate_buffer_to_slot(slot, + data_length); + if (status != PSA_SUCCESS) { + return status; + } - memcpy( slot->key.data, data, data_length ); - return( PSA_SUCCESS ); + memcpy(slot->key.data, data, data_length); + return PSA_SUCCESS; } 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 ) + size_t *key_buffer_length, size_t *bits) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_type_t type = attributes->core.type; /* zero-length keys are never supported. */ - if( data_length == 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (data_length == 0) { + return PSA_ERROR_NOT_SUPPORTED; + } - if( key_type_is_raw_bytes( type ) ) - { - *bits = PSA_BYTES_TO_BITS( data_length ); + if (key_type_is_raw_bytes(type)) { + *bits = PSA_BYTES_TO_BITS(data_length); - status = psa_validate_unstructured_key_bit_size( attributes->core.type, - *bits ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_validate_unstructured_key_bit_size(attributes->core.type, + *bits); + if (status != PSA_SUCCESS) { + return status; + } /* Copy the key material. */ - memcpy( key_buffer, data, data_length ); + memcpy(key_buffer, data, data_length); *key_buffer_length = data_length; - (void)key_buffer_size; + (void) key_buffer_size; - return( PSA_SUCCESS ); - } - else if( PSA_KEY_TYPE_IS_ASYMMETRIC( type ) ) - { + return PSA_SUCCESS; + } else if (PSA_KEY_TYPE_IS_ASYMMETRIC(type)) { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) - if( PSA_KEY_TYPE_IS_ECC( type ) ) - { - return( mbedtls_psa_ecp_import_key( attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, - bits ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + if (PSA_KEY_TYPE_IS_ECC(type)) { + return mbedtls_psa_ecp_import_key(attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, + bits); } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) */ #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) - if( PSA_KEY_TYPE_IS_RSA( type ) ) - { - return( mbedtls_psa_rsa_import_key( attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, - bits ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + if (PSA_KEY_TYPE_IS_RSA(type)) { + return mbedtls_psa_rsa_import_key(attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, + bits); } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) */ } - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } /** Calculate the intersection of two algorithm usage policies. @@ -618,63 +617,61 @@ psa_status_t psa_import_key_into_slot( static psa_algorithm_t psa_key_policy_algorithm_intersection( psa_key_type_t key_type, psa_algorithm_t alg1, - psa_algorithm_t alg2 ) + psa_algorithm_t alg2) { /* Common case: both sides actually specify the same policy. */ - if( alg1 == alg2 ) - return( alg1 ); + if (alg1 == alg2) { + return alg1; + } /* If the policies are from the same hash-and-sign family, check * if one is a wildcard. If so the other has the specific algorithm. */ - if( PSA_ALG_IS_SIGN_HASH( alg1 ) && - PSA_ALG_IS_SIGN_HASH( alg2 ) && - ( alg1 & ~PSA_ALG_HASH_MASK ) == ( alg2 & ~PSA_ALG_HASH_MASK ) ) - { - if( PSA_ALG_SIGN_GET_HASH( alg1 ) == PSA_ALG_ANY_HASH ) - return( alg2 ); - if( PSA_ALG_SIGN_GET_HASH( alg2 ) == PSA_ALG_ANY_HASH ) - return( alg1 ); + if (PSA_ALG_IS_SIGN_HASH(alg1) && + PSA_ALG_IS_SIGN_HASH(alg2) && + (alg1 & ~PSA_ALG_HASH_MASK) == (alg2 & ~PSA_ALG_HASH_MASK)) { + if (PSA_ALG_SIGN_GET_HASH(alg1) == PSA_ALG_ANY_HASH) { + return alg2; + } + if (PSA_ALG_SIGN_GET_HASH(alg2) == PSA_ALG_ANY_HASH) { + return alg1; + } } /* If the policies are from the same AEAD family, check whether * one of them is a minimum-tag-length wildcard. Calculate the most * restrictive tag length. */ - if( PSA_ALG_IS_AEAD( alg1 ) && PSA_ALG_IS_AEAD( alg2 ) && - ( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg1, 0 ) == - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg2, 0 ) ) ) - { - size_t alg1_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg1 ); - size_t alg2_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg2 ); + if (PSA_ALG_IS_AEAD(alg1) && PSA_ALG_IS_AEAD(alg2) && + (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg1, 0) == + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg2, 0))) { + size_t alg1_len = PSA_ALG_AEAD_GET_TAG_LENGTH(alg1); + size_t alg2_len = PSA_ALG_AEAD_GET_TAG_LENGTH(alg2); size_t restricted_len = alg1_len > alg2_len ? alg1_len : alg2_len; /* If both are wildcards, return most restrictive wildcard */ - if( ( ( alg1 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) && - ( ( alg2 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) ) - { - return( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( - alg1, restricted_len ) ); + if (((alg1 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0) && + ((alg2 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0)) { + return PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( + alg1, restricted_len); } /* If only one is a wildcard, return specific algorithm if compatible. */ - if( ( ( alg1 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) && - ( alg1_len <= alg2_len ) ) - { - return( alg2 ); + if (((alg1 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0) && + (alg1_len <= alg2_len)) { + return alg2; } - if( ( ( alg2 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) && - ( alg2_len <= alg1_len ) ) - { - return( alg1 ); + if (((alg2 & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0) && + (alg2_len <= alg1_len)) { + return alg1; } } /* If the policies are from the same MAC family, check whether one * of them is a minimum-MAC-length policy. Calculate the most * restrictive tag length. */ - if( PSA_ALG_IS_MAC( alg1 ) && PSA_ALG_IS_MAC( alg2 ) && - ( PSA_ALG_FULL_LENGTH_MAC( alg1 ) == - PSA_ALG_FULL_LENGTH_MAC( alg2 ) ) ) - { + if (PSA_ALG_IS_MAC(alg1) && PSA_ALG_IS_MAC(alg2) && + (PSA_ALG_FULL_LENGTH_MAC(alg1) == + PSA_ALG_FULL_LENGTH_MAC(alg2))) { /* Validate the combination of key type and algorithm. Since the base * algorithm of alg1 and alg2 are the same, we only need this once. */ - if( PSA_SUCCESS != psa_mac_key_can_do( alg1, key_type ) ) - return( 0 ); + if (PSA_SUCCESS != psa_mac_key_can_do(alg1, key_type)) { + return 0; + } /* Get the (exact or at-least) output lengths for both sides of the * requested intersection. None of the currently supported algorithms @@ -684,79 +681,76 @@ static psa_algorithm_t psa_key_policy_algorithm_intersection( * Note that for at-least-this-length wildcard algorithms, the output * length is set to the shortest allowed length, which allows us to * calculate the most restrictive tag length for the intersection. */ - size_t alg1_len = PSA_MAC_LENGTH( key_type, 0, alg1 ); - size_t alg2_len = PSA_MAC_LENGTH( key_type, 0, alg2 ); + size_t alg1_len = PSA_MAC_LENGTH(key_type, 0, alg1); + size_t alg2_len = PSA_MAC_LENGTH(key_type, 0, alg2); size_t restricted_len = alg1_len > alg2_len ? alg1_len : alg2_len; /* If both are wildcards, return most restrictive wildcard */ - if( ( ( alg1 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) && - ( ( alg2 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) ) - { - return( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg1, restricted_len ) ); + if (((alg1 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) != 0) && + ((alg2 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) != 0)) { + return PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg1, restricted_len); } /* If only one is an at-least-this-length policy, the intersection would * be the other (fixed-length) policy as long as said fixed length is * equal to or larger than the shortest allowed length. */ - if( ( alg1 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) - { - return( ( alg1_len <= alg2_len ) ? alg2 : 0 ); + if ((alg1 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) != 0) { + return (alg1_len <= alg2_len) ? alg2 : 0; } - if( ( alg2 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) - { - return( ( alg2_len <= alg1_len ) ? alg1 : 0 ); + if ((alg2 & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) != 0) { + return (alg2_len <= alg1_len) ? alg1 : 0; } /* If none of them are wildcards, check whether they define the same tag * length. This is still possible here when one is default-length and * the other specific-length. Ensure to always return the * specific-length version for the intersection. */ - if( alg1_len == alg2_len ) - return( PSA_ALG_TRUNCATED_MAC( alg1, alg1_len ) ); + if (alg1_len == alg2_len) { + return PSA_ALG_TRUNCATED_MAC(alg1, alg1_len); + } } /* If the policies are incompatible, allow nothing. */ - return( 0 ); + return 0; } -static int psa_key_algorithm_permits( psa_key_type_t key_type, - psa_algorithm_t policy_alg, - psa_algorithm_t requested_alg ) +static int psa_key_algorithm_permits(psa_key_type_t key_type, + psa_algorithm_t policy_alg, + psa_algorithm_t requested_alg) { /* Common case: the policy only allows requested_alg. */ - if( requested_alg == policy_alg ) - return( 1 ); + if (requested_alg == policy_alg) { + return 1; + } /* If policy_alg is a hash-and-sign with a wildcard for the hash, * and requested_alg is the same hash-and-sign family with any hash, * then requested_alg is compliant with policy_alg. */ - if( PSA_ALG_IS_SIGN_HASH( requested_alg ) && - PSA_ALG_SIGN_GET_HASH( policy_alg ) == PSA_ALG_ANY_HASH ) - { - return( ( policy_alg & ~PSA_ALG_HASH_MASK ) == - ( requested_alg & ~PSA_ALG_HASH_MASK ) ); + if (PSA_ALG_IS_SIGN_HASH(requested_alg) && + PSA_ALG_SIGN_GET_HASH(policy_alg) == PSA_ALG_ANY_HASH) { + return (policy_alg & ~PSA_ALG_HASH_MASK) == + (requested_alg & ~PSA_ALG_HASH_MASK); } /* If policy_alg is a wildcard AEAD algorithm of the same base as * the requested algorithm, check the requested tag length to be * equal-length or longer than the wildcard-specified length. */ - if( PSA_ALG_IS_AEAD( policy_alg ) && - PSA_ALG_IS_AEAD( requested_alg ) && - ( PSA_ALG_AEAD_WITH_SHORTENED_TAG( policy_alg, 0 ) == - PSA_ALG_AEAD_WITH_SHORTENED_TAG( requested_alg, 0 ) ) && - ( ( policy_alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) ) - { - return( PSA_ALG_AEAD_GET_TAG_LENGTH( policy_alg ) <= - PSA_ALG_AEAD_GET_TAG_LENGTH( requested_alg ) ); + if (PSA_ALG_IS_AEAD(policy_alg) && + PSA_ALG_IS_AEAD(requested_alg) && + (PSA_ALG_AEAD_WITH_SHORTENED_TAG(policy_alg, 0) == + PSA_ALG_AEAD_WITH_SHORTENED_TAG(requested_alg, 0)) && + ((policy_alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) != 0)) { + return PSA_ALG_AEAD_GET_TAG_LENGTH(policy_alg) <= + PSA_ALG_AEAD_GET_TAG_LENGTH(requested_alg); } /* If policy_alg is a MAC algorithm of the same base as the requested * algorithm, check whether their MAC lengths are compatible. */ - if( PSA_ALG_IS_MAC( policy_alg ) && - PSA_ALG_IS_MAC( requested_alg ) && - ( PSA_ALG_FULL_LENGTH_MAC( policy_alg ) == - PSA_ALG_FULL_LENGTH_MAC( requested_alg ) ) ) - { + if (PSA_ALG_IS_MAC(policy_alg) && + PSA_ALG_IS_MAC(requested_alg) && + (PSA_ALG_FULL_LENGTH_MAC(policy_alg) == + PSA_ALG_FULL_LENGTH_MAC(requested_alg))) { /* Validate the combination of key type and algorithm. Since the policy * and requested algorithms are the same, we only need this once. */ - if( PSA_SUCCESS != psa_mac_key_can_do( policy_alg, key_type ) ) - return( 0 ); + if (PSA_SUCCESS != psa_mac_key_can_do(policy_alg, key_type)) { + return 0; + } /* Get both the requested output length for the algorithm which is to be * verified, and the default output length for the base algorithm. @@ -764,44 +758,42 @@ static int psa_key_algorithm_permits( psa_key_type_t key_type, * length dependent on actual key size, so setting it to a bogus value * of 0 is currently OK. */ size_t requested_output_length = PSA_MAC_LENGTH( - key_type, 0, requested_alg ); + key_type, 0, requested_alg); size_t default_output_length = PSA_MAC_LENGTH( - key_type, 0, - PSA_ALG_FULL_LENGTH_MAC( requested_alg ) ); + key_type, 0, + PSA_ALG_FULL_LENGTH_MAC(requested_alg)); /* If the policy is default-length, only allow an algorithm with * a declared exact-length matching the default. */ - if( PSA_MAC_TRUNCATED_LENGTH( policy_alg ) == 0 ) - return( requested_output_length == default_output_length ); + if (PSA_MAC_TRUNCATED_LENGTH(policy_alg) == 0) { + return requested_output_length == default_output_length; + } /* If the requested algorithm is default-length, allow it if the policy * length exactly matches the default length. */ - if( PSA_MAC_TRUNCATED_LENGTH( requested_alg ) == 0 && - PSA_MAC_TRUNCATED_LENGTH( policy_alg ) == default_output_length ) - { - return( 1 ); + if (PSA_MAC_TRUNCATED_LENGTH(requested_alg) == 0 && + PSA_MAC_TRUNCATED_LENGTH(policy_alg) == default_output_length) { + return 1; } /* If policy_alg is an at-least-this-length wildcard MAC algorithm, * check for the requested MAC length to be equal to or longer than the * minimum allowed length. */ - if( ( policy_alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) != 0 ) - { - return( PSA_MAC_TRUNCATED_LENGTH( policy_alg ) <= - requested_output_length ); + if ((policy_alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) != 0) { + return PSA_MAC_TRUNCATED_LENGTH(policy_alg) <= + requested_output_length; } } /* If policy_alg is a generic key agreement operation, then using it for * a key derivation with that key agreement should also be allowed. This * behaviour is expected to be defined in a future specification version. */ - if( PSA_ALG_IS_RAW_KEY_AGREEMENT( policy_alg ) && - PSA_ALG_IS_KEY_AGREEMENT( requested_alg ) ) - { - return( PSA_ALG_KEY_AGREEMENT_GET_BASE( requested_alg ) == - policy_alg ); + if (PSA_ALG_IS_RAW_KEY_AGREEMENT(policy_alg) && + PSA_ALG_IS_KEY_AGREEMENT(requested_alg)) { + return PSA_ALG_KEY_AGREEMENT_GET_BASE(requested_alg) == + policy_alg; } /* If it isn't explicitly permitted, it's forbidden. */ - return( 0 ); + return 0; } /** Test whether a policy permits an algorithm. @@ -819,23 +811,26 @@ static int psa_key_algorithm_permits( psa_key_type_t key_type, * \retval PSA_ERROR_NOT_PERMITTED When \p alg is a specific algorithm, but * the \p policy does not allow it. */ -static psa_status_t psa_key_policy_permits( const psa_key_policy_t *policy, - psa_key_type_t key_type, - psa_algorithm_t alg ) +static psa_status_t psa_key_policy_permits(const psa_key_policy_t *policy, + psa_key_type_t key_type, + psa_algorithm_t alg) { /* '0' is not a valid algorithm */ - if( alg == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (alg == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } /* A requested algorithm cannot be a wildcard. */ - if( PSA_ALG_IS_WILDCARD( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_ALG_IS_WILDCARD(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - if( psa_key_algorithm_permits( key_type, policy->alg, alg ) || - psa_key_algorithm_permits( key_type, policy->alg2, alg ) ) - return( PSA_SUCCESS ); - else - return( PSA_ERROR_NOT_PERMITTED ); + if (psa_key_algorithm_permits(key_type, policy->alg, alg) || + psa_key_algorithm_permits(key_type, policy->alg2, alg)) { + return PSA_SUCCESS; + } else { + return PSA_ERROR_NOT_PERMITTED; + } } /** Restrict a key policy based on a constraint. @@ -859,68 +854,71 @@ static psa_status_t psa_key_policy_permits( const psa_key_policy_t *policy, static psa_status_t psa_restrict_key_policy( psa_key_type_t key_type, psa_key_policy_t *policy, - const psa_key_policy_t *constraint ) + const psa_key_policy_t *constraint) { psa_algorithm_t intersection_alg = - psa_key_policy_algorithm_intersection( key_type, policy->alg, - constraint->alg ); + psa_key_policy_algorithm_intersection(key_type, policy->alg, + constraint->alg); psa_algorithm_t intersection_alg2 = - psa_key_policy_algorithm_intersection( key_type, policy->alg2, - constraint->alg2 ); - if( intersection_alg == 0 && policy->alg != 0 && constraint->alg != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - if( intersection_alg2 == 0 && policy->alg2 != 0 && constraint->alg2 != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + psa_key_policy_algorithm_intersection(key_type, policy->alg2, + constraint->alg2); + if (intersection_alg == 0 && policy->alg != 0 && constraint->alg != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } + if (intersection_alg2 == 0 && policy->alg2 != 0 && constraint->alg2 != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } policy->usage &= constraint->usage; policy->alg = intersection_alg; policy->alg2 = intersection_alg2; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot, psa_key_usage_t usage, - psa_algorithm_t alg ) + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; - status = psa_get_and_lock_key_slot( key, p_slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot(key, p_slot); + if (status != PSA_SUCCESS) { + return status; + } slot = *p_slot; /* Enforce that usage policy for the key slot contains all the flags * required by the usage parameter. There is one exception: public * keys can always be exported, so we treat public key objects as * if they had the export flag. */ - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->attr.type ) ) + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(slot->attr.type)) { usage &= ~PSA_KEY_USAGE_EXPORT; + } - if( ( slot->attr.policy.usage & usage ) != usage ) - { + if ((slot->attr.policy.usage & usage) != usage) { status = PSA_ERROR_NOT_PERMITTED; goto error; } /* Enforce that the usage policy permits the requested algorithm. */ - if( alg != 0 ) - { - status = psa_key_policy_permits( &slot->attr.policy, - slot->attr.type, - alg ); - if( status != PSA_SUCCESS ) + if (alg != 0) { + status = psa_key_policy_permits(&slot->attr.policy, + slot->attr.type, + alg); + if (status != PSA_SUCCESS) { goto error; + } } - return( PSA_SUCCESS ); + return PSA_SUCCESS; error: *p_slot = NULL; - psa_unlock_key_slot( slot ); + psa_unlock_key_slot(slot); - return( status ); + return status; } /** Get a key slot containing a transparent key and lock it. @@ -940,54 +938,54 @@ static psa_status_t psa_get_and_lock_transparent_key_slot_with_policy( mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot, psa_key_usage_t usage, - psa_algorithm_t alg ) + psa_algorithm_t alg) { - psa_status_t status = psa_get_and_lock_key_slot_with_policy( key, p_slot, - usage, alg ); - if( status != PSA_SUCCESS ) - return( status ); - - if( psa_key_lifetime_is_external( (*p_slot)->attr.lifetime ) ) - { - psa_unlock_key_slot( *p_slot ); - *p_slot = NULL; - return( PSA_ERROR_NOT_SUPPORTED ); + psa_status_t status = psa_get_and_lock_key_slot_with_policy(key, p_slot, + usage, alg); + if (status != PSA_SUCCESS) { + return status; } - return( PSA_SUCCESS ); + if (psa_key_lifetime_is_external((*p_slot)->attr.lifetime)) { + psa_unlock_key_slot(*p_slot); + *p_slot = NULL; + return PSA_ERROR_NOT_SUPPORTED; + } + + return PSA_SUCCESS; } -psa_status_t psa_remove_key_data_from_memory( psa_key_slot_t *slot ) +psa_status_t psa_remove_key_data_from_memory(psa_key_slot_t *slot) { /* Data pointer will always be either a valid pointer or NULL in an * initialized slot, so we can just free it. */ - if( slot->key.data != NULL ) - mbedtls_platform_zeroize( slot->key.data, slot->key.bytes); + if (slot->key.data != NULL) { + mbedtls_platform_zeroize(slot->key.data, slot->key.bytes); + } - mbedtls_free( slot->key.data ); + mbedtls_free(slot->key.data); slot->key.data = NULL; slot->key.bytes = 0; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Completely wipe a slot in memory, including its policy. * Persistent storage is not affected. */ -psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot ) +psa_status_t psa_wipe_key_slot(psa_key_slot_t *slot) { - psa_status_t status = psa_remove_key_data_from_memory( slot ); + psa_status_t status = psa_remove_key_data_from_memory(slot); - /* - * As the return error code may not be handled in case of multiple errors, - * do our best to report an unexpected lock counter. Assert with - * MBEDTLS_TEST_HOOK_TEST_ASSERT that the lock counter is equal to one: - * if the MBEDTLS_TEST_HOOKS configuration option is enabled and the - * function is called as part of the execution of a test suite, the - * execution of the test suite is stopped in error if the assertion fails. - */ - if( slot->lock_count != 1 ) - { - MBEDTLS_TEST_HOOK_TEST_ASSERT( slot->lock_count == 1 ); + /* + * As the return error code may not be handled in case of multiple errors, + * do our best to report an unexpected lock counter. Assert with + * MBEDTLS_TEST_HOOK_TEST_ASSERT that the lock counter is equal to one: + * if the MBEDTLS_TEST_HOOKS configuration option is enabled and the + * function is called as part of the execution of a test suite, the + * execution of the test suite is stopped in error if the assertion fails. + */ + if (slot->lock_count != 1) { + MBEDTLS_TEST_HOOK_TEST_ASSERT(slot->lock_count == 1); status = PSA_ERROR_CORRUPTION_DETECTED; } @@ -999,11 +997,11 @@ psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot ) /* At this point, key material and other type-specific content has * been wiped. Clear remaining metadata. We can call memset and not * zeroize because the metadata is not particularly sensitive. */ - memset( slot, 0, sizeof( *slot ) ); - return( status ); + memset(slot, 0, sizeof(*slot)); + return status; } -psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) +psa_status_t psa_destroy_key(mbedtls_svc_key_id_t key) { psa_key_slot_t *slot; psa_status_t status; /* status of the last operation */ @@ -1012,8 +1010,9 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) psa_se_drv_table_entry_t *driver; #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - if( mbedtls_svc_key_id_is_null( key ) ) - return( PSA_SUCCESS ); + if (mbedtls_svc_key_id_is_null(key)) { + return PSA_SUCCESS; + } /* * Get the description of the key in a key slot. In case of a persistent @@ -1022,9 +1021,10 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) * the key is operated by an SE or not and this information is needed by * the current implementation. */ - status = psa_get_and_lock_key_slot( key, &slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot(key, &slot); + if (status != PSA_SUCCESS) { + return status; + } /* * If the key slot containing the key description is under access by the @@ -1033,14 +1033,12 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) * implemented), the key should be destroyed when all accesses have * stopped. */ - if( slot->lock_count > 1 ) - { - psa_unlock_key_slot( slot ); - return( PSA_ERROR_GENERIC_ERROR ); + if (slot->lock_count > 1) { + psa_unlock_key_slot(slot); + return PSA_ERROR_GENERIC_ERROR; } - if( PSA_KEY_LIFETIME_IS_READ_ONLY( slot->attr.lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_READ_ONLY(slot->attr.lifetime)) { /* Refuse the destruction of a read-only key (which may or may not work * if we attempt it, depending on whether the key is merely read-only * by policy or actually physically read-only). @@ -1051,22 +1049,20 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - driver = psa_get_se_driver_entry( slot->attr.lifetime ); - if( driver != NULL ) - { + driver = psa_get_se_driver_entry(slot->attr.lifetime); + if (driver != NULL) { /* For a key in a secure element, we need to do three things: * remove the key file in internal storage, destroy the * key inside the secure element, and update the driver's * persistent data. Start a transaction that will encompass these * three actions. */ - psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_DESTROY_KEY ); + psa_crypto_prepare_transaction(PSA_CRYPTO_TRANSACTION_DESTROY_KEY); psa_crypto_transaction.key.lifetime = slot->attr.lifetime; - psa_crypto_transaction.key.slot = psa_key_slot_get_slot_number( slot ); + psa_crypto_transaction.key.slot = psa_key_slot_get_slot_number(slot); psa_crypto_transaction.key.id = slot->attr.id; - status = psa_crypto_save_transaction( ); - if( status != PSA_SUCCESS ) - { - (void) psa_crypto_stop_transaction( ); + status = psa_crypto_save_transaction(); + if (status != PSA_SUCCESS) { + (void) psa_crypto_stop_transaction(); /* We should still try to destroy the key in the secure * element and the key metadata in storage. This is especially * important if the error is that the storage is full. @@ -1078,19 +1074,20 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) goto exit; } - status = psa_destroy_se_key( driver, - psa_key_slot_get_slot_number( slot ) ); - if( overall_status == PSA_SUCCESS ) + status = psa_destroy_se_key(driver, + psa_key_slot_get_slot_number(slot)); + if (overall_status == PSA_SUCCESS) { overall_status = status; + } } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) - { - status = psa_destroy_persistent_key( slot->attr.id ); - if( overall_status == PSA_SUCCESS ) + if (!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) { + status = psa_destroy_persistent_key(slot->attr.id); + if (overall_status == PSA_SUCCESS) { overall_status = status; + } /* TODO: other slots may have a copy of the same key. We should * invalidate them. @@ -1100,96 +1097,100 @@ psa_status_t psa_destroy_key( mbedtls_svc_key_id_t key ) #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */ #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( driver != NULL ) - { - status = psa_save_se_persistent_data( driver ); - if( overall_status == PSA_SUCCESS ) + if (driver != NULL) { + status = psa_save_se_persistent_data(driver); + if (overall_status == PSA_SUCCESS) { overall_status = status; - status = psa_crypto_stop_transaction( ); - if( overall_status == PSA_SUCCESS ) + } + status = psa_crypto_stop_transaction(); + if (overall_status == PSA_SUCCESS) { overall_status = status; + } } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ exit: - status = psa_wipe_key_slot( slot ); + status = psa_wipe_key_slot(slot); /* Prioritize CORRUPTION_DETECTED from wiping over a storage error */ - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { overall_status = status; - return( overall_status ); + } + return overall_status; } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) static psa_status_t psa_get_rsa_public_exponent( const mbedtls_rsa_context *rsa, - psa_key_attributes_t *attributes ) + psa_key_attributes_t *attributes) { mbedtls_mpi mpi; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint8_t *buffer = NULL; size_t buflen; - mbedtls_mpi_init( &mpi ); + mbedtls_mpi_init(&mpi); - ret = mbedtls_rsa_export( rsa, NULL, NULL, NULL, NULL, &mpi ); - if( ret != 0 ) + ret = mbedtls_rsa_export(rsa, NULL, NULL, NULL, NULL, &mpi); + if (ret != 0) { goto exit; - if( mbedtls_mpi_cmp_int( &mpi, 65537 ) == 0 ) - { + } + if (mbedtls_mpi_cmp_int(&mpi, 65537) == 0) { /* It's the default value, which is reported as an empty string, * so there's nothing to do. */ goto exit; } - buflen = mbedtls_mpi_size( &mpi ); - buffer = mbedtls_calloc( 1, buflen ); - if( buffer == NULL ) - { + buflen = mbedtls_mpi_size(&mpi); + buffer = mbedtls_calloc(1, buflen); + if (buffer == NULL) { ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; goto exit; } - ret = mbedtls_mpi_write_binary( &mpi, buffer, buflen ); - if( ret != 0 ) + ret = mbedtls_mpi_write_binary(&mpi, buffer, buflen); + if (ret != 0) { goto exit; + } attributes->domain_parameters = buffer; attributes->domain_parameters_size = buflen; exit: - mbedtls_mpi_free( &mpi ); - if( ret != 0 ) - mbedtls_free( buffer ); - return( mbedtls_to_psa_error( ret ) ); + mbedtls_mpi_free(&mpi); + if (ret != 0) { + mbedtls_free(buffer); + } + return mbedtls_to_psa_error(ret); } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) */ /** Retrieve all the publicly-accessible attributes of a key. */ -psa_status_t psa_get_key_attributes( mbedtls_svc_key_id_t key, - psa_key_attributes_t *attributes ) +psa_status_t psa_get_key_attributes(mbedtls_svc_key_id_t key, + psa_key_attributes_t *attributes) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; - psa_reset_key_attributes( attributes ); + psa_reset_key_attributes(attributes); - status = psa_get_and_lock_key_slot_with_policy( key, &slot, 0, 0 ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot_with_policy(key, &slot, 0, 0); + if (status != PSA_SUCCESS) { + return status; + } attributes->core = slot->attr; - attributes->core.flags &= ( MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY | - MBEDTLS_PSA_KA_MASK_DUAL_USE ); + attributes->core.flags &= (MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY | + MBEDTLS_PSA_KA_MASK_DUAL_USE); #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( psa_get_se_driver_entry( slot->attr.lifetime ) != NULL ) - psa_set_key_slot_number( attributes, - psa_key_slot_get_slot_number( slot ) ); + if (psa_get_se_driver_entry(slot->attr.lifetime) != NULL) { + psa_set_key_slot_number(attributes, + psa_key_slot_get_slot_number(slot)); + } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - switch( slot->attr.type ) - { + switch (slot->attr.type) { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) case PSA_KEY_TYPE_RSA_KEY_PAIR: @@ -1198,22 +1199,22 @@ psa_status_t psa_get_key_attributes( mbedtls_svc_key_id_t key, * is not yet implemented. * https://github.com/ARMmbed/mbed-crypto/issues/216 */ - if( ! psa_key_lifetime_is_external( slot->attr.lifetime ) ) - { + if (!psa_key_lifetime_is_external(slot->attr.lifetime)) { mbedtls_rsa_context *rsa = NULL; status = mbedtls_psa_rsa_load_representation( - slot->attr.type, - slot->key.data, - slot->key.bytes, - &rsa ); - if( status != PSA_SUCCESS ) + slot->attr.type, + slot->key.data, + slot->key.bytes, + &rsa); + if (status != PSA_SUCCESS) { break; + } - status = psa_get_rsa_public_exponent( rsa, - attributes ); - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + status = psa_get_rsa_public_exponent(rsa, + attributes); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); } break; #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || @@ -1223,72 +1224,70 @@ psa_status_t psa_get_key_attributes( mbedtls_svc_key_id_t key, break; } - if( status != PSA_SUCCESS ) - psa_reset_key_attributes( attributes ); + if (status != PSA_SUCCESS) { + psa_reset_key_attributes(attributes); + } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) psa_status_t psa_get_key_slot_number( const psa_key_attributes_t *attributes, - psa_key_slot_number_t *slot_number ) + psa_key_slot_number_t *slot_number) { - if( attributes->core.flags & MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER ) - { + if (attributes->core.flags & MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER) { *slot_number = attributes->slot_number; - return( PSA_SUCCESS ); + return PSA_SUCCESS; + } else { + return PSA_ERROR_INVALID_ARGUMENT; } - else - return( PSA_ERROR_INVALID_ARGUMENT ); } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ -static psa_status_t psa_export_key_buffer_internal( const uint8_t *key_buffer, - size_t key_buffer_size, - uint8_t *data, - size_t data_size, - size_t *data_length ) +static psa_status_t psa_export_key_buffer_internal(const uint8_t *key_buffer, + size_t key_buffer_size, + uint8_t *data, + size_t data_size, + size_t *data_length) { - if( key_buffer_size > data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - memcpy( data, key_buffer, key_buffer_size ); - memset( data + key_buffer_size, 0, - data_size - key_buffer_size ); + if (key_buffer_size > data_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + memcpy(data, key_buffer, key_buffer_size); + memset(data + key_buffer_size, 0, + data_size - key_buffer_size); *data_length = key_buffer_size; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } 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 ) + uint8_t *data, size_t data_size, size_t *data_length) { psa_key_type_t type = attributes->core.type; - if( key_type_is_raw_bytes( type ) || - PSA_KEY_TYPE_IS_RSA( type ) || - PSA_KEY_TYPE_IS_ECC( type ) ) - { - return( psa_export_key_buffer_internal( - key_buffer, key_buffer_size, - data, data_size, data_length ) ); - } - else - { + if (key_type_is_raw_bytes(type) || + PSA_KEY_TYPE_IS_RSA(type) || + PSA_KEY_TYPE_IS_ECC(type)) { + return psa_export_key_buffer_internal( + key_buffer, key_buffer_size, + data, data_size, data_length); + } else { /* This shouldn't happen in the reference implementation, but it is valid for a special-purpose implementation to omit support for exporting certain key types. */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } } -psa_status_t psa_export_key( mbedtls_svc_key_id_t key, - uint8_t *data, - size_t data_size, - size_t *data_length ) +psa_status_t psa_export_key(mbedtls_svc_key_id_t key, + uint8_t *data, + size_t data_size, + size_t *data_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -1297,8 +1296,9 @@ psa_status_t psa_export_key( mbedtls_svc_key_id_t key, /* Reject a zero-length output buffer now, since this can never be a * valid key representation. This way we know that data must be a valid * pointer and we can do things like memset(data, ..., data_size). */ - if( data_size == 0 ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_size == 0) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } /* Set the key to empty now, so that even when there are errors, we always * set data_length to a value between 0 and data_size. On error, setting @@ -1310,21 +1310,22 @@ psa_status_t psa_export_key( mbedtls_svc_key_id_t key, * which don't require any flag, but * psa_get_and_lock_key_slot_with_policy() takes care of this. */ - status = psa_get_and_lock_key_slot_with_policy( key, &slot, - PSA_KEY_USAGE_EXPORT, 0 ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot_with_policy(key, &slot, + PSA_KEY_USAGE_EXPORT, 0); + if (status != PSA_SUCCESS) { + return status; + } psa_key_attributes_t attributes = { .core = slot->attr }; - status = psa_driver_wrapper_export_key( &attributes, - slot->key.data, slot->key.bytes, - data, data_size, data_length ); + status = psa_driver_wrapper_export_key(&attributes, + slot->key.data, slot->key.bytes, + data, data_size, data_length); - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } psa_status_t psa_export_public_key_internal( @@ -1333,66 +1334,59 @@ psa_status_t psa_export_public_key_internal( size_t key_buffer_size, uint8_t *data, size_t data_size, - size_t *data_length ) + size_t *data_length) { psa_key_type_t type = attributes->core.type; - if( PSA_KEY_TYPE_IS_RSA( type ) || PSA_KEY_TYPE_IS_ECC( type ) ) - { - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) - { + if (PSA_KEY_TYPE_IS_RSA(type) || PSA_KEY_TYPE_IS_ECC(type)) { + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) { /* Exporting public -> public */ - return( psa_export_key_buffer_internal( - key_buffer, key_buffer_size, - data, data_size, data_length ) ); + return psa_export_key_buffer_internal( + key_buffer, key_buffer_size, + data, data_size, data_length); } - if( PSA_KEY_TYPE_IS_RSA( type ) ) - { + if (PSA_KEY_TYPE_IS_RSA(type)) { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) - return( mbedtls_psa_rsa_export_public_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + return mbedtls_psa_rsa_export_public_key(attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length); #else /* We don't know how to convert a private RSA key to public. */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) */ - } - else - { + } else { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) - return( mbedtls_psa_ecp_export_public_key( attributes, - key_buffer, - key_buffer_size, - data, - data_size, - data_length ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + return mbedtls_psa_ecp_export_public_key(attributes, + key_buffer, + key_buffer_size, + data, + data_size, + data_length); #else /* We don't know how to convert a private ECC key to public */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) */ } - } - else - { + } else { /* This shouldn't happen in the reference implementation, but it is valid for a special-purpose implementation to omit support for exporting certain key types. */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } } -psa_status_t psa_export_public_key( mbedtls_svc_key_id_t key, - uint8_t *data, - size_t data_size, - size_t *data_length ) +psa_status_t psa_export_public_key(mbedtls_svc_key_id_t key, + uint8_t *data, + size_t data_size, + size_t *data_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -1401,8 +1395,9 @@ psa_status_t psa_export_public_key( mbedtls_svc_key_id_t key, /* Reject a zero-length output buffer now, since this can never be a * valid key representation. This way we know that data must be a valid * pointer and we can do things like memset(data, ..., data_size). */ - if( data_size == 0 ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_size == 0) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } /* Set the key to empty now, so that even when there are errors, we always * set data_length to a value between 0 and data_size. On error, setting @@ -1411,14 +1406,14 @@ psa_status_t psa_export_public_key( mbedtls_svc_key_id_t key, *data_length = 0; /* Exporting a public key doesn't require a usage flag. */ - status = psa_get_and_lock_key_slot_with_policy( key, &slot, 0, 0 ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot_with_policy(key, &slot, 0, 0); + if (status != PSA_SUCCESS) { + return status; + } - if( ! PSA_KEY_TYPE_IS_ASYMMETRIC( slot->attr.type ) ) - { - status = PSA_ERROR_INVALID_ARGUMENT; - goto exit; + if (!PSA_KEY_TYPE_IS_ASYMMETRIC(slot->attr.type)) { + status = PSA_ERROR_INVALID_ARGUMENT; + goto exit; } psa_key_attributes_t attributes = { @@ -1426,21 +1421,21 @@ psa_status_t psa_export_public_key( mbedtls_svc_key_id_t key, }; status = psa_driver_wrapper_export_public_key( &attributes, slot->key.data, slot->key.bytes, - data, data_size, data_length ); + data, data_size, data_length); exit: - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } #if defined(static_assert) -static_assert( ( MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_DUAL_USE ) == 0, - "One or more key attribute flag is listed as both external-only and dual-use" ); -static_assert( ( PSA_KA_MASK_INTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_DUAL_USE ) == 0, - "One or more key attribute flag is listed as both internal-only and dual-use" ); -static_assert( ( PSA_KA_MASK_INTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY ) == 0, - "One or more key attribute flag is listed as both internal-only and external-only" ); +static_assert((MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_DUAL_USE) == 0, + "One or more key attribute flag is listed as both external-only and dual-use"); +static_assert((PSA_KA_MASK_INTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_DUAL_USE) == 0, + "One or more key attribute flag is listed as both internal-only and dual-use"); +static_assert((PSA_KA_MASK_INTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY) == 0, + "One or more key attribute flag is listed as both internal-only and external-only"); #endif /** Validate that a key policy is internally well-formed. @@ -1449,21 +1444,22 @@ static_assert( ( PSA_KA_MASK_INTERNAL_ONLY & MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY ) * consistency of the policy with respect to other attributes of the key * such as the key type. */ -static psa_status_t psa_validate_key_policy( const psa_key_policy_t *policy ) +static psa_status_t psa_validate_key_policy(const psa_key_policy_t *policy) { - if( ( policy->usage & ~( PSA_KEY_USAGE_EXPORT | - PSA_KEY_USAGE_COPY | - PSA_KEY_USAGE_ENCRYPT | - PSA_KEY_USAGE_DECRYPT | - PSA_KEY_USAGE_SIGN_MESSAGE | - PSA_KEY_USAGE_VERIFY_MESSAGE | - PSA_KEY_USAGE_SIGN_HASH | - PSA_KEY_USAGE_VERIFY_HASH | - PSA_KEY_USAGE_VERIFY_DERIVATION | - PSA_KEY_USAGE_DERIVE ) ) != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if ((policy->usage & ~(PSA_KEY_USAGE_EXPORT | + PSA_KEY_USAGE_COPY | + PSA_KEY_USAGE_ENCRYPT | + PSA_KEY_USAGE_DECRYPT | + PSA_KEY_USAGE_SIGN_MESSAGE | + PSA_KEY_USAGE_VERIFY_MESSAGE | + PSA_KEY_USAGE_SIGN_HASH | + PSA_KEY_USAGE_VERIFY_HASH | + PSA_KEY_USAGE_VERIFY_DERIVATION | + PSA_KEY_USAGE_DERIVE)) != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Validate the internal consistency of key attributes. @@ -1481,48 +1477,52 @@ static psa_status_t psa_validate_key_policy( const psa_key_policy_t *policy ) */ static psa_status_t psa_validate_key_attributes( const psa_key_attributes_t *attributes, - psa_se_drv_table_entry_t **p_drv ) + psa_se_drv_table_entry_t **p_drv) { psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; - psa_key_lifetime_t lifetime = psa_get_key_lifetime( attributes ); - mbedtls_svc_key_id_t key = psa_get_key_id( attributes ); + psa_key_lifetime_t lifetime = psa_get_key_lifetime(attributes); + mbedtls_svc_key_id_t key = psa_get_key_id(attributes); - status = psa_validate_key_location( lifetime, p_drv ); - if( status != PSA_SUCCESS ) - return( status ); - - status = psa_validate_key_persistence( lifetime ); - if( status != PSA_SUCCESS ) - return( status ); - - if ( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { - if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key ) != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - } - else - { - if( !psa_is_valid_key_id( psa_get_key_id( attributes ), 0 ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + status = psa_validate_key_location(lifetime, p_drv); + if (status != PSA_SUCCESS) { + return status; } - status = psa_validate_key_policy( &attributes->core.policy ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_validate_key_persistence(lifetime); + if (status != PSA_SUCCESS) { + return status; + } + + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { + if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key) != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } + } else { + if (!psa_is_valid_key_id(psa_get_key_id(attributes), 0)) { + return PSA_ERROR_INVALID_ARGUMENT; + } + } + + status = psa_validate_key_policy(&attributes->core.policy); + if (status != PSA_SUCCESS) { + return status; + } /* Refuse to create overly large keys. * Note that this doesn't trigger on import if the attributes don't * explicitly specify a size (so psa_get_key_bits returns 0), so * psa_import_key() needs its own checks. */ - if( psa_get_key_bits( attributes ) > PSA_MAX_KEY_BITS ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (psa_get_key_bits(attributes) > PSA_MAX_KEY_BITS) { + return PSA_ERROR_NOT_SUPPORTED; + } /* Reject invalid flags. These should not be reachable through the API. */ - if( attributes->core.flags & ~ ( MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY | - MBEDTLS_PSA_KA_MASK_DUAL_USE ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (attributes->core.flags & ~(MBEDTLS_PSA_KA_MASK_EXTERNAL_ONLY | + MBEDTLS_PSA_KA_MASK_DUAL_USE)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Prepare a key slot to receive key material. @@ -1558,7 +1558,7 @@ static psa_status_t psa_start_key_creation( psa_key_creation_method_t method, const psa_key_attributes_t *attributes, psa_key_slot_t **p_slot, - psa_se_drv_table_entry_t **p_drv ) + psa_se_drv_table_entry_t **p_drv) { psa_status_t status; psa_key_id_t volatile_key_id; @@ -1567,13 +1567,15 @@ static psa_status_t psa_start_key_creation( (void) method; *p_drv = NULL; - status = psa_validate_key_attributes( attributes, p_drv ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_validate_key_attributes(attributes, p_drv); + if (status != PSA_SUCCESS) { + return status; + } - status = psa_get_empty_key_slot( &volatile_key_id, p_slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_empty_key_slot(&volatile_key_id, p_slot); + if (status != PSA_SUCCESS) { + return status; + } slot = *p_slot; /* We're storing the declared bit-size of the key. It's up to each @@ -1585,8 +1587,7 @@ static psa_status_t psa_start_key_creation( * definition. */ slot->attr = attributes->core; - if( PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) { #if !defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) slot->attr.id = volatile_key_id; #else @@ -1619,40 +1620,37 @@ static psa_status_t psa_start_key_creation( * secure element driver updates its persistent state, but we do not yet * save the driver's persistent state, so that if the power fails, * we can roll back to a state where the key doesn't exist. */ - if( *p_drv != NULL ) - { + if (*p_drv != NULL) { psa_key_slot_number_t slot_number; - status = psa_find_se_slot_for_key( attributes, method, *p_drv, - &slot_number ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_find_se_slot_for_key(attributes, method, *p_drv, + &slot_number); + if (status != PSA_SUCCESS) { + return status; + } - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( attributes->core.lifetime ) ) - { - psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_CREATE_KEY ); + if (!PSA_KEY_LIFETIME_IS_VOLATILE(attributes->core.lifetime)) { + psa_crypto_prepare_transaction(PSA_CRYPTO_TRANSACTION_CREATE_KEY); psa_crypto_transaction.key.lifetime = slot->attr.lifetime; psa_crypto_transaction.key.slot = slot_number; psa_crypto_transaction.key.id = slot->attr.id; - status = psa_crypto_save_transaction( ); - if( status != PSA_SUCCESS ) - { - (void) psa_crypto_stop_transaction( ); - return( status ); + status = psa_crypto_save_transaction(); + if (status != PSA_SUCCESS) { + (void) psa_crypto_stop_transaction(); + return status; } } status = psa_copy_key_material_into_slot( - slot, (uint8_t *)( &slot_number ), sizeof( slot_number ) ); + slot, (uint8_t *) (&slot_number), sizeof(slot_number)); } - if( *p_drv == NULL && method == PSA_KEY_CREATION_REGISTER ) - { + if (*p_drv == NULL && method == PSA_KEY_CREATION_REGISTER) { /* Key registration only makes sense with a secure element. */ - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Finalize the creation of a key once its key material has been set. @@ -1695,33 +1693,30 @@ static psa_status_t psa_finish_key_creation( (void) driver; #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) - { + if (!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) { #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( driver != NULL ) - { + if (driver != NULL) { psa_se_key_data_storage_t data; psa_key_slot_number_t slot_number = - psa_key_slot_get_slot_number( slot ) ; + psa_key_slot_get_slot_number(slot); #if defined(static_assert) - static_assert( sizeof( slot_number ) == - sizeof( data.slot_number ), - "Slot number size does not match psa_se_key_data_storage_t" ); + static_assert(sizeof(slot_number) == + sizeof(data.slot_number), + "Slot number size does not match psa_se_key_data_storage_t"); #endif - memcpy( &data.slot_number, &slot_number, sizeof( slot_number ) ); - status = psa_save_persistent_key( &slot->attr, - (uint8_t*) &data, - sizeof( data ) ); - } - else + memcpy(&data.slot_number, &slot_number, sizeof(slot_number)); + status = psa_save_persistent_key(&slot->attr, + (uint8_t *) &data, + sizeof(data)); + } else #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ { /* Key material is saved in export representation in the slot, so * just pass the slot buffer for storage. */ - status = psa_save_persistent_key( &slot->attr, - slot->key.data, - slot->key.bytes ); + status = psa_save_persistent_key(&slot->attr, + slot->key.data, + slot->key.bytes); } } #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */ @@ -1732,28 +1727,26 @@ static psa_status_t psa_finish_key_creation( * by checking whether a transaction is in progress (actual * creation of a persistent key in a secure element requires a transaction, * but registration or volatile key creation doesn't use one). */ - if( driver != NULL && - psa_crypto_transaction.unknown.type == PSA_CRYPTO_TRANSACTION_CREATE_KEY ) - { - status = psa_save_se_persistent_data( driver ); - if( status != PSA_SUCCESS ) - { - psa_destroy_persistent_key( slot->attr.id ); - return( status ); + if (driver != NULL && + psa_crypto_transaction.unknown.type == PSA_CRYPTO_TRANSACTION_CREATE_KEY) { + status = psa_save_se_persistent_data(driver); + if (status != PSA_SUCCESS) { + psa_destroy_persistent_key(slot->attr.id); + return status; } - status = psa_crypto_stop_transaction( ); + status = psa_crypto_stop_transaction(); } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { *key = slot->attr.id; - status = psa_unlock_key_slot( slot ); - if( status != PSA_SUCCESS ) + status = psa_unlock_key_slot(slot); + if (status != PSA_SUCCESS) { *key = MBEDTLS_SVC_KEY_ID_INIT; + } } - return( status ); + return status; } /** Abort the creation of a key. @@ -1768,13 +1761,14 @@ static psa_status_t psa_finish_key_creation( * \param[in] driver The secure element driver for the key, * or NULL for a transparent key. */ -static void psa_fail_key_creation( psa_key_slot_t *slot, - psa_se_drv_table_entry_t *driver ) +static void psa_fail_key_creation(psa_key_slot_t *slot, + psa_se_drv_table_entry_t *driver) { (void) driver; - if( slot == NULL ) + if (slot == NULL) { return; + } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* TODO: If the key has already been created in the secure @@ -1790,10 +1784,10 @@ static void psa_fail_key_creation( psa_key_slot_t *slot, * Earlier functions must already have done what it takes to undo any * partial creation. All that's left is to update the transaction data * itself. */ - (void) psa_crypto_stop_transaction( ); + (void) psa_crypto_stop_transaction(); #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - psa_wipe_key_slot( slot ); + psa_wipe_key_slot(slot); } /** Validate optional attributes during key creation. @@ -1807,74 +1801,76 @@ static void psa_fail_key_creation( psa_key_slot_t *slot, */ static psa_status_t psa_validate_optional_attributes( const psa_key_slot_t *slot, - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { - if( attributes->core.type != 0 ) - { - if( attributes->core.type != slot->attr.type ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (attributes->core.type != 0) { + if (attributes->core.type != slot->attr.type) { + return PSA_ERROR_INVALID_ARGUMENT; + } } - if( attributes->domain_parameters_size != 0 ) - { + if (attributes->domain_parameters_size != 0) { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) - if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) - { + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + if (PSA_KEY_TYPE_IS_RSA(slot->attr.type)) { mbedtls_rsa_context *rsa = NULL; mbedtls_mpi actual, required; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = mbedtls_psa_rsa_load_representation( - slot->attr.type, - slot->key.data, - slot->key.bytes, - &rsa ); - if( status != PSA_SUCCESS ) - return( status ); + slot->attr.type, + slot->key.data, + slot->key.bytes, + &rsa); + if (status != PSA_SUCCESS) { + return status; + } - mbedtls_mpi_init( &actual ); - mbedtls_mpi_init( &required ); - ret = mbedtls_rsa_export( rsa, - NULL, NULL, NULL, NULL, &actual ); - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); - if( ret != 0 ) + mbedtls_mpi_init(&actual); + mbedtls_mpi_init(&required); + ret = mbedtls_rsa_export(rsa, + NULL, NULL, NULL, NULL, &actual); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); + if (ret != 0) { goto rsa_exit; - ret = mbedtls_mpi_read_binary( &required, - attributes->domain_parameters, - attributes->domain_parameters_size ); - if( ret != 0 ) + } + ret = mbedtls_mpi_read_binary(&required, + attributes->domain_parameters, + attributes->domain_parameters_size); + if (ret != 0) { goto rsa_exit; - if( mbedtls_mpi_cmp_mpi( &actual, &required ) != 0 ) + } + if (mbedtls_mpi_cmp_mpi(&actual, &required) != 0) { ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; - rsa_exit: - mbedtls_mpi_free( &actual ); - mbedtls_mpi_free( &required ); - if( ret != 0) - return( mbedtls_to_psa_error( ret ) ); - } - else + } +rsa_exit: + mbedtls_mpi_free(&actual); + mbedtls_mpi_free(&required); + if (ret != 0) { + return mbedtls_to_psa_error(ret); + } + } else #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) */ { - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } } - if( attributes->core.bits != 0 ) - { - if( attributes->core.bits != slot->attr.bits ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (attributes->core.bits != 0) { + if (attributes->core.bits != slot->attr.bits) { + return PSA_ERROR_INVALID_ARGUMENT; + } } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_import_key( const psa_key_attributes_t *attributes, - const uint8_t *data, - size_t data_length, - mbedtls_svc_key_id_t *key ) +psa_status_t psa_import_key(const psa_key_attributes_t *attributes, + const uint8_t *data, + size_t data_length, + mbedtls_svc_key_id_t *key) { psa_status_t status; psa_key_slot_t *slot = NULL; @@ -1887,75 +1883,79 @@ psa_status_t psa_import_key( const psa_key_attributes_t *attributes, /* Reject zero-length symmetric keys (including raw data key objects). * This also rejects any key which might be encoded as an empty string, * which is never valid. */ - if( data_length == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (data_length == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } /* Ensure that the bytes-to-bits conversion cannot overflow. */ - if( data_length > SIZE_MAX / 8 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (data_length > SIZE_MAX / 8) { + return PSA_ERROR_NOT_SUPPORTED; + } - status = psa_start_key_creation( PSA_KEY_CREATION_IMPORT, attributes, - &slot, &driver ); - if( status != PSA_SUCCESS ) + status = psa_start_key_creation(PSA_KEY_CREATION_IMPORT, attributes, + &slot, &driver); + if (status != PSA_SUCCESS) { goto exit; + } /* In the case of a transparent key or an opaque key stored in local * storage ( thus not in the case of importing a key in a secure element * with storage ( MBEDTLS_PSA_CRYPTO_SE_C ) ),we have to allocate a * buffer to hold the imported key material. */ - if( slot->key.data == NULL ) - { - if( psa_key_lifetime_is_external( attributes->core.lifetime ) ) - { + if (slot->key.data == NULL) { + if (psa_key_lifetime_is_external(attributes->core.lifetime)) { status = psa_driver_wrapper_get_key_buffer_size_from_key_data( - attributes, data, data_length, &storage_size ); - if( status != PSA_SUCCESS ) + attributes, data, data_length, &storage_size); + if (status != PSA_SUCCESS) { goto exit; + } } - status = psa_allocate_buffer_to_slot( slot, storage_size ); - if( status != PSA_SUCCESS ) + status = psa_allocate_buffer_to_slot(slot, storage_size); + if (status != PSA_SUCCESS) { goto exit; + } } bits = slot->attr.bits; - status = psa_driver_wrapper_import_key( attributes, - data, data_length, - slot->key.data, - slot->key.bytes, - &slot->key.bytes, &bits ); - if( status != PSA_SUCCESS ) + status = psa_driver_wrapper_import_key(attributes, + data, data_length, + slot->key.data, + slot->key.bytes, + &slot->key.bytes, &bits); + if (status != PSA_SUCCESS) { goto exit; + } - if( slot->attr.bits == 0 ) + if (slot->attr.bits == 0) { slot->attr.bits = (psa_key_bits_t) bits; - else if( bits != slot->attr.bits ) - { + } else if (bits != slot->attr.bits) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } /* Enforce a size limit, and in particular ensure that the bit * size fits in its representation type.*/ - if( bits > PSA_MAX_KEY_BITS ) - { + if (bits > PSA_MAX_KEY_BITS) { status = PSA_ERROR_NOT_SUPPORTED; goto exit; } - status = psa_validate_optional_attributes( slot, attributes ); - if( status != PSA_SUCCESS ) + status = psa_validate_optional_attributes(slot, attributes); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_finish_key_creation( slot, driver, key ); + status = psa_finish_key_creation(slot, driver, key); exit: - if( status != PSA_SUCCESS ) - psa_fail_key_creation( slot, driver ); + if (status != PSA_SUCCESS) { + psa_fail_key_creation(slot, driver); + } - return( status ); + return status; } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) psa_status_t mbedtls_psa_register_se_key( - const psa_key_attributes_t *attributes ) + const psa_key_attributes_t *attributes) { psa_status_t status; psa_key_slot_t *slot = NULL; @@ -1966,31 +1966,35 @@ psa_status_t mbedtls_psa_register_se_key( * It could make sense to query the key type and size from the * secure element, but not all secure elements support this * and the driver HAL doesn't currently support it. */ - if( psa_get_key_type( attributes ) == PSA_KEY_TYPE_NONE ) - return( PSA_ERROR_NOT_SUPPORTED ); - if( psa_get_key_bits( attributes ) == 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (psa_get_key_type(attributes) == PSA_KEY_TYPE_NONE) { + return PSA_ERROR_NOT_SUPPORTED; + } + if (psa_get_key_bits(attributes) == 0) { + return PSA_ERROR_NOT_SUPPORTED; + } - status = psa_start_key_creation( PSA_KEY_CREATION_REGISTER, attributes, - &slot, &driver ); - if( status != PSA_SUCCESS ) + status = psa_start_key_creation(PSA_KEY_CREATION_REGISTER, attributes, + &slot, &driver); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_finish_key_creation( slot, driver, &key ); + status = psa_finish_key_creation(slot, driver, &key); exit: - if( status != PSA_SUCCESS ) - psa_fail_key_creation( slot, driver ); + if (status != PSA_SUCCESS) { + psa_fail_key_creation(slot, driver); + } /* Registration doesn't keep the key in RAM. */ - psa_close_key( key ); - return( status ); + psa_close_key(key); + return status; } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ -psa_status_t psa_copy_key( mbedtls_svc_key_id_t source_key, - const psa_key_attributes_t *specified_attributes, - mbedtls_svc_key_id_t *target_key ) +psa_status_t psa_copy_key(mbedtls_svc_key_id_t source_key, + const psa_key_attributes_t *specified_attributes, + mbedtls_svc_key_id_t *target_key) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -2003,14 +2007,16 @@ psa_status_t psa_copy_key( mbedtls_svc_key_id_t source_key, *target_key = MBEDTLS_SVC_KEY_ID_INIT; status = psa_get_and_lock_key_slot_with_policy( - source_key, &source_slot, PSA_KEY_USAGE_COPY, 0 ); - if( status != PSA_SUCCESS ) + source_key, &source_slot, PSA_KEY_USAGE_COPY, 0); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_validate_optional_attributes( source_slot, - specified_attributes ); - if( status != PSA_SUCCESS ) + status = psa_validate_optional_attributes(source_slot, + specified_attributes); + if (status != PSA_SUCCESS) { goto exit; + } /* The target key type and number of bits have been validated by * psa_validate_optional_attributes() to be either equal to zero or @@ -2021,19 +2027,20 @@ psa_status_t psa_copy_key( mbedtls_svc_key_id_t source_key, actual_attributes.core.type = source_slot->attr.type; - status = psa_restrict_key_policy( source_slot->attr.type, - &actual_attributes.core.policy, - &source_slot->attr.policy ); - if( status != PSA_SUCCESS ) + status = psa_restrict_key_policy(source_slot->attr.type, + &actual_attributes.core.policy, + &source_slot->attr.policy); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_start_key_creation( PSA_KEY_CREATION_COPY, &actual_attributes, - &target_slot, &driver ); - if( status != PSA_SUCCESS ) + status = psa_start_key_creation(PSA_KEY_CREATION_COPY, &actual_attributes, + &target_slot, &driver); + if (status != PSA_SUCCESS) { goto exit; - if( PSA_KEY_LIFETIME_GET_LOCATION( target_slot->attr.lifetime ) != - PSA_KEY_LIFETIME_GET_LOCATION( source_slot->attr.lifetime ) ) - { + } + if (PSA_KEY_LIFETIME_GET_LOCATION(target_slot->attr.lifetime) != + PSA_KEY_LIFETIME_GET_LOCATION(source_slot->attr.lifetime)) { /* * If the source and target keys are stored in different locations, * the source key would need to be exported as plaintext and re-imported @@ -2050,42 +2057,44 @@ psa_status_t psa_copy_key( mbedtls_svc_key_id_t source_key, * - For opaque keys this translates to an invocation of the drivers' * copy_key entry point through the dispatch layer. * */ - if( psa_key_lifetime_is_external( actual_attributes.core.lifetime ) ) - { - status = psa_driver_wrapper_get_key_buffer_size( &actual_attributes, - &storage_size ); - if( status != PSA_SUCCESS ) + if (psa_key_lifetime_is_external(actual_attributes.core.lifetime)) { + status = psa_driver_wrapper_get_key_buffer_size(&actual_attributes, + &storage_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_allocate_buffer_to_slot( target_slot, storage_size ); - if( status != PSA_SUCCESS ) + status = psa_allocate_buffer_to_slot(target_slot, storage_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_driver_wrapper_copy_key( &actual_attributes, - source_slot->key.data, - source_slot->key.bytes, - target_slot->key.data, - target_slot->key.bytes, - &target_slot->key.bytes ); - if( status != PSA_SUCCESS ) + status = psa_driver_wrapper_copy_key(&actual_attributes, + source_slot->key.data, + source_slot->key.bytes, + target_slot->key.data, + target_slot->key.bytes, + &target_slot->key.bytes); + if (status != PSA_SUCCESS) { goto exit; - } - else - { - status = psa_copy_key_material_into_slot( target_slot, + } + } else { + status = psa_copy_key_material_into_slot(target_slot, source_slot->key.data, - source_slot->key.bytes ); - if( status != PSA_SUCCESS ) + source_slot->key.bytes); + if (status != PSA_SUCCESS) { goto exit; + } } - status = psa_finish_key_creation( target_slot, driver, target_key ); + status = psa_finish_key_creation(target_slot, driver, target_key); exit: - if( status != PSA_SUCCESS ) - psa_fail_key_creation( target_slot, driver ); + if (status != PSA_SUCCESS) { + psa_fail_key_creation(target_slot, driver); + } - unlock_status = psa_unlock_key_slot( source_slot ); + unlock_status = psa_unlock_key_slot(source_slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } @@ -2094,178 +2103,185 @@ exit: /* Message digests */ /****************************************************************/ -psa_status_t psa_hash_abort( psa_hash_operation_t *operation ) +psa_status_t psa_hash_abort(psa_hash_operation_t *operation) { /* Aborting a non-active operation is allowed */ - if( operation->id == 0 ) - return( PSA_SUCCESS ); + if (operation->id == 0) { + return PSA_SUCCESS; + } - psa_status_t status = psa_driver_wrapper_hash_abort( operation ); + psa_status_t status = psa_driver_wrapper_hash_abort(operation); operation->id = 0; - return( status ); + return status; } -psa_status_t psa_hash_setup( psa_hash_operation_t *operation, - psa_algorithm_t alg ) +psa_status_t psa_hash_setup(psa_hash_operation_t *operation, + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; /* A context must be freshly initialized before it can be set up. */ - if( operation->id != 0 ) - { + if (operation->id != 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( !PSA_ALG_IS_HASH( alg ) ) - { + if (!PSA_ALG_IS_HASH(alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } /* Ensure all of the context is zeroized, since PSA_HASH_OPERATION_INIT only * directly zeroes the int-sized dummy member of the context union. */ - memset( &operation->ctx, 0, sizeof( operation->ctx ) ); + memset(&operation->ctx, 0, sizeof(operation->ctx)); - status = psa_driver_wrapper_hash_setup( operation, alg ); + status = psa_driver_wrapper_hash_setup(operation, alg); exit: - if( status != PSA_SUCCESS ) - psa_hash_abort( operation ); + if (status != PSA_SUCCESS) { + psa_hash_abort(operation); + } return status; } -psa_status_t psa_hash_update( psa_hash_operation_t *operation, - const uint8_t *input, - size_t input_length ) +psa_status_t psa_hash_update(psa_hash_operation_t *operation, + const uint8_t *input, + size_t input_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } /* Don't require hash implementations to behave correctly on a * zero-length input, which may have an invalid pointer. */ - if( input_length == 0 ) - return( PSA_SUCCESS ); + if (input_length == 0) { + return PSA_SUCCESS; + } - status = psa_driver_wrapper_hash_update( operation, input, input_length ); + status = psa_driver_wrapper_hash_update(operation, input, input_length); exit: - if( status != PSA_SUCCESS ) - psa_hash_abort( operation ); + if (status != PSA_SUCCESS) { + psa_hash_abort(operation); + } - return( status ); + return status; } -psa_status_t psa_hash_finish( psa_hash_operation_t *operation, - uint8_t *hash, - size_t hash_size, - size_t *hash_length ) +psa_status_t psa_hash_finish(psa_hash_operation_t *operation, + uint8_t *hash, + size_t hash_size, + size_t *hash_length) { *hash_length = 0; - if( operation->id == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->id == 0) { + return PSA_ERROR_BAD_STATE; + } psa_status_t status = psa_driver_wrapper_hash_finish( - operation, hash, hash_size, hash_length ); - psa_hash_abort( operation ); - return( status ); + operation, hash, hash_size, hash_length); + psa_hash_abort(operation); + return status; } -psa_status_t psa_hash_verify( psa_hash_operation_t *operation, - const uint8_t *hash, - size_t hash_length ) +psa_status_t psa_hash_verify(psa_hash_operation_t *operation, + const uint8_t *hash, + size_t hash_length) { uint8_t actual_hash[PSA_HASH_MAX_SIZE]; size_t actual_hash_length; psa_status_t status = psa_hash_finish( - operation, - actual_hash, sizeof( actual_hash ), - &actual_hash_length ); + operation, + actual_hash, sizeof(actual_hash), + &actual_hash_length); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } - if( actual_hash_length != hash_length ) - { + if (actual_hash_length != hash_length) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } - if( mbedtls_psa_safer_memcmp( hash, actual_hash, actual_hash_length ) != 0 ) + if (mbedtls_psa_safer_memcmp(hash, actual_hash, actual_hash_length) != 0) { status = PSA_ERROR_INVALID_SIGNATURE; + } exit: - mbedtls_platform_zeroize( actual_hash, sizeof( actual_hash ) ); - if( status != PSA_SUCCESS ) + mbedtls_platform_zeroize(actual_hash, sizeof(actual_hash)); + if (status != PSA_SUCCESS) { psa_hash_abort(operation); + } - return( status ); + return status; } -psa_status_t 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 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) { *hash_length = 0; - if( !PSA_ALG_IS_HASH( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_HASH(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( psa_driver_wrapper_hash_compute( alg, input, input_length, - hash, hash_size, hash_length ) ); + return psa_driver_wrapper_hash_compute(alg, input, input_length, + hash, hash_size, hash_length); } -psa_status_t psa_hash_compare( psa_algorithm_t alg, - const uint8_t *input, size_t input_length, - const uint8_t *hash, size_t hash_length ) +psa_status_t psa_hash_compare(psa_algorithm_t alg, + const uint8_t *input, size_t input_length, + const uint8_t *hash, size_t hash_length) { uint8_t actual_hash[PSA_HASH_MAX_SIZE]; size_t actual_hash_length; - if( !PSA_ALG_IS_HASH( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_HASH(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } psa_status_t status = psa_driver_wrapper_hash_compute( - alg, input, input_length, - actual_hash, sizeof(actual_hash), - &actual_hash_length ); - if( status != PSA_SUCCESS ) + alg, input, input_length, + actual_hash, sizeof(actual_hash), + &actual_hash_length); + if (status != PSA_SUCCESS) { goto exit; - if( actual_hash_length != hash_length ) - { + } + if (actual_hash_length != hash_length) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } - if( mbedtls_psa_safer_memcmp( hash, actual_hash, actual_hash_length ) != 0 ) + if (mbedtls_psa_safer_memcmp(hash, actual_hash, actual_hash_length) != 0) { status = PSA_ERROR_INVALID_SIGNATURE; + } exit: - mbedtls_platform_zeroize( actual_hash, sizeof( actual_hash ) ); - return( status ); + mbedtls_platform_zeroize(actual_hash, sizeof(actual_hash)); + return status; } -psa_status_t psa_hash_clone( const psa_hash_operation_t *source_operation, - psa_hash_operation_t *target_operation ) +psa_status_t psa_hash_clone(const psa_hash_operation_t *source_operation, + psa_hash_operation_t *target_operation) { - if( source_operation->id == 0 || - target_operation->id != 0 ) - { - return( PSA_ERROR_BAD_STATE ); + if (source_operation->id == 0 || + target_operation->id != 0) { + return PSA_ERROR_BAD_STATE; } - psa_status_t status = psa_driver_wrapper_hash_clone( source_operation, - target_operation ); - if( status != PSA_SUCCESS ) - psa_hash_abort( target_operation ); + psa_status_t status = psa_driver_wrapper_hash_clone(source_operation, + target_operation); + if (status != PSA_SUCCESS) { + psa_hash_abort(target_operation); + } - return( status ); + return status; } @@ -2273,59 +2289,59 @@ psa_status_t psa_hash_clone( const psa_hash_operation_t *source_operation, /* MAC */ /****************************************************************/ -psa_status_t psa_mac_abort( psa_mac_operation_t *operation ) +psa_status_t psa_mac_abort(psa_mac_operation_t *operation) { /* Aborting a non-active operation is allowed */ - if( operation->id == 0 ) - return( PSA_SUCCESS ); + if (operation->id == 0) { + return PSA_SUCCESS; + } - psa_status_t status = psa_driver_wrapper_mac_abort( operation ); + psa_status_t status = psa_driver_wrapper_mac_abort(operation); operation->mac_size = 0; operation->is_sign = 0; operation->id = 0; - return( status ); + return status; } static psa_status_t psa_mac_finalize_alg_and_key_validation( psa_algorithm_t alg, const psa_key_attributes_t *attributes, - uint8_t *mac_size ) + uint8_t *mac_size) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_type_t key_type = psa_get_key_type( attributes ); - size_t key_bits = psa_get_key_bits( attributes ); + psa_key_type_t key_type = psa_get_key_type(attributes); + size_t key_bits = psa_get_key_bits(attributes); - if( ! PSA_ALG_IS_MAC( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_MAC(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } /* Validate the combination of key type and algorithm */ - status = psa_mac_key_can_do( alg, key_type ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_mac_key_can_do(alg, key_type); + if (status != PSA_SUCCESS) { + return status; + } /* Get the output length for the algorithm and key combination */ - *mac_size = PSA_MAC_LENGTH( key_type, key_bits, alg ); + *mac_size = PSA_MAC_LENGTH(key_type, key_bits, alg); - if( *mac_size < 4 ) - { + if (*mac_size < 4) { /* A very short MAC is too short for security since it can be * brute-forced. Ancient protocols with 32-bit MACs do exist, * so we make this our minimum, even though 32 bits is still * too small for security. */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - if( *mac_size > PSA_MAC_LENGTH( key_type, key_bits, - PSA_ALG_FULL_LENGTH_MAC( alg ) ) ) - { + if (*mac_size > PSA_MAC_LENGTH(key_type, key_bits, + PSA_ALG_FULL_LENGTH_MAC(alg))) { /* It's impossible to "truncate" to a larger length than the full length * of the algorithm. */ - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } - if( *mac_size > PSA_MAC_MAX_SIZE ) - { + if (*mac_size > PSA_MAC_MAX_SIZE) { /* PSA_MAC_LENGTH returns the correct length even for a MAC algorithm * that is disabled in the compile-time configuration. The result can * therefore be larger than PSA_MAC_MAX_SIZE, which does take the @@ -2335,144 +2351,142 @@ static psa_status_t psa_mac_finalize_alg_and_key_validation( * PSA_ERROR_BUFFER_TOO_SMALL for an unsupported algorithm whose MAC size * is larger than PSA_MAC_MAX_SIZE, which is misleading and which breaks * systematically generated tests. */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t psa_mac_setup( psa_mac_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - int is_sign ) +static psa_status_t psa_mac_setup(psa_mac_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + int is_sign) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot = NULL; /* A context must be freshly initialized before it can be set up. */ - if( operation->id != 0 ) - { + if (operation->id != 0) { status = PSA_ERROR_BAD_STATE; goto exit; } status = psa_get_and_lock_key_slot_with_policy( - key, - &slot, - is_sign ? PSA_KEY_USAGE_SIGN_MESSAGE : PSA_KEY_USAGE_VERIFY_MESSAGE, - alg ); - if( status != PSA_SUCCESS ) + key, + &slot, + is_sign ? PSA_KEY_USAGE_SIGN_MESSAGE : PSA_KEY_USAGE_VERIFY_MESSAGE, + alg); + if (status != PSA_SUCCESS) { goto exit; + } psa_key_attributes_t attributes = { .core = slot->attr }; - status = psa_mac_finalize_alg_and_key_validation( alg, &attributes, - &operation->mac_size ); - if( status != PSA_SUCCESS ) + status = psa_mac_finalize_alg_and_key_validation(alg, &attributes, + &operation->mac_size); + if (status != PSA_SUCCESS) { goto exit; + } operation->is_sign = is_sign; /* Dispatch the MAC setup call with validated input */ - if( is_sign ) - { - status = psa_driver_wrapper_mac_sign_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); - } - else - { - status = psa_driver_wrapper_mac_verify_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); + if (is_sign) { + status = psa_driver_wrapper_mac_sign_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); + } else { + status = psa_driver_wrapper_mac_verify_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); } exit: - if( status != PSA_SUCCESS ) - psa_mac_abort( operation ); + if (status != PSA_SUCCESS) { + psa_mac_abort(operation); + } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -psa_status_t psa_mac_sign_setup( psa_mac_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_mac_sign_setup(psa_mac_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_mac_setup( operation, key, alg, 1 ) ); + return psa_mac_setup(operation, key, alg, 1); } -psa_status_t psa_mac_verify_setup( psa_mac_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_mac_verify_setup(psa_mac_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_mac_setup( operation, key, alg, 0 ) ); + return psa_mac_setup(operation, key, alg, 0); } -psa_status_t psa_mac_update( psa_mac_operation_t *operation, - const uint8_t *input, - size_t input_length ) +psa_status_t psa_mac_update(psa_mac_operation_t *operation, + const uint8_t *input, + size_t input_length) { - if( operation->id == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->id == 0) { + return PSA_ERROR_BAD_STATE; + } /* Don't require hash implementations to behave correctly on a * zero-length input, which may have an invalid pointer. */ - if( input_length == 0 ) - return( PSA_SUCCESS ); + if (input_length == 0) { + return PSA_SUCCESS; + } - psa_status_t status = psa_driver_wrapper_mac_update( operation, - input, input_length ); - if( status != PSA_SUCCESS ) - psa_mac_abort( operation ); + psa_status_t status = psa_driver_wrapper_mac_update(operation, + input, input_length); + if (status != PSA_SUCCESS) { + psa_mac_abort(operation); + } - return( status ); + return status; } -psa_status_t psa_mac_sign_finish( psa_mac_operation_t *operation, - uint8_t *mac, - size_t mac_size, - size_t *mac_length ) +psa_status_t psa_mac_sign_finish(psa_mac_operation_t *operation, + uint8_t *mac, + size_t mac_size, + size_t *mac_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( ! operation->is_sign ) - { + if (!operation->is_sign) { status = PSA_ERROR_BAD_STATE; goto exit; } /* Sanity check. This will guarantee that mac_size != 0 (and so mac != NULL) * once all the error checks are done. */ - if( operation->mac_size == 0 ) - { + if (operation->mac_size == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( mac_size < operation->mac_size ) - { + if (mac_size < operation->mac_size) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - status = psa_driver_wrapper_mac_sign_finish( operation, - mac, operation->mac_size, - mac_length ); + status = psa_driver_wrapper_mac_sign_finish(operation, + mac, operation->mac_size, + mac_length); exit: /* In case of success, set the potential excess room in the output buffer @@ -2481,63 +2495,60 @@ exit: * such that in case the caller misses an error check, the output would be * an unachievable MAC. */ - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { *mac_length = mac_size; operation->mac_size = 0; } - if( mac_size > operation->mac_size ) - memset( &mac[operation->mac_size], '!', - mac_size - operation->mac_size ); + if (mac_size > operation->mac_size) { + memset(&mac[operation->mac_size], '!', + mac_size - operation->mac_size); + } - abort_status = psa_mac_abort( operation ); + abort_status = psa_mac_abort(operation); - return( status == PSA_SUCCESS ? abort_status : status ); + return status == PSA_SUCCESS ? abort_status : status; } -psa_status_t psa_mac_verify_finish( psa_mac_operation_t *operation, - const uint8_t *mac, - size_t mac_length ) +psa_status_t psa_mac_verify_finish(psa_mac_operation_t *operation, + const uint8_t *mac, + size_t mac_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->is_sign ) - { + if (operation->is_sign) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->mac_size != mac_length ) - { + if (operation->mac_size != mac_length) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } - status = psa_driver_wrapper_mac_verify_finish( operation, - mac, mac_length ); + status = psa_driver_wrapper_mac_verify_finish(operation, + mac, mac_length); exit: - abort_status = psa_mac_abort( operation ); + abort_status = psa_mac_abort(operation); - return( status == PSA_SUCCESS ? abort_status : status ); + return status == PSA_SUCCESS ? abort_status : status; } -static psa_status_t psa_mac_compute_internal( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const uint8_t *input, - size_t input_length, - uint8_t *mac, - size_t mac_size, - size_t *mac_length, - int is_sign ) +static psa_status_t psa_mac_compute_internal(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + uint8_t *mac, + size_t mac_size, + size_t *mac_length, + int is_sign) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -2545,34 +2556,35 @@ static psa_status_t psa_mac_compute_internal( mbedtls_svc_key_id_t key, uint8_t operation_mac_size = 0; status = psa_get_and_lock_key_slot_with_policy( - key, - &slot, - is_sign ? PSA_KEY_USAGE_SIGN_MESSAGE : PSA_KEY_USAGE_VERIFY_MESSAGE, - alg ); - if( status != PSA_SUCCESS ) + key, + &slot, + is_sign ? PSA_KEY_USAGE_SIGN_MESSAGE : PSA_KEY_USAGE_VERIFY_MESSAGE, + alg); + if (status != PSA_SUCCESS) { goto exit; + } psa_key_attributes_t attributes = { .core = slot->attr }; - status = psa_mac_finalize_alg_and_key_validation( alg, &attributes, - &operation_mac_size ); - if( status != PSA_SUCCESS ) + status = psa_mac_finalize_alg_and_key_validation(alg, &attributes, + &operation_mac_size); + if (status != PSA_SUCCESS) { goto exit; + } - if( mac_size < operation_mac_size ) - { + if (mac_size < operation_mac_size) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } status = psa_driver_wrapper_mac_compute( - &attributes, - slot->key.data, slot->key.bytes, - alg, - input, input_length, - mac, operation_mac_size, mac_length ); + &attributes, + slot->key.data, slot->key.bytes, + alg, + input, input_length, + mac, operation_mac_size, mac_length); exit: /* In case of success, set the potential excess room in the output buffer @@ -2581,102 +2593,100 @@ exit: * such that in case the caller misses an error check, the output would be * an unachievable MAC. */ - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { *mac_length = mac_size; operation_mac_size = 0; } - if( mac_size > operation_mac_size ) - memset( &mac[operation_mac_size], '!', mac_size - operation_mac_size ); + if (mac_size > operation_mac_size) { + memset(&mac[operation_mac_size], '!', mac_size - operation_mac_size); + } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -psa_status_t psa_mac_compute( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const uint8_t *input, - size_t input_length, - uint8_t *mac, - size_t mac_size, - size_t *mac_length) -{ - return( psa_mac_compute_internal( key, alg, - input, input_length, - mac, mac_size, mac_length, 1 ) ); -} - -psa_status_t psa_mac_verify( mbedtls_svc_key_id_t key, +psa_status_t psa_mac_compute(mbedtls_svc_key_id_t key, psa_algorithm_t alg, const uint8_t *input, size_t input_length, - const uint8_t *mac, - size_t mac_length) + uint8_t *mac, + size_t mac_size, + size_t *mac_length) +{ + return psa_mac_compute_internal(key, alg, + input, input_length, + mac, mac_size, mac_length, 1); +} + +psa_status_t psa_mac_verify(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + const uint8_t *mac, + size_t mac_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; uint8_t actual_mac[PSA_MAC_MAX_SIZE]; size_t actual_mac_length; - status = psa_mac_compute_internal( key, alg, - input, input_length, - actual_mac, sizeof( actual_mac ), - &actual_mac_length, 0 ); - if( status != PSA_SUCCESS ) + status = psa_mac_compute_internal(key, alg, + input, input_length, + actual_mac, sizeof(actual_mac), + &actual_mac_length, 0); + if (status != PSA_SUCCESS) { goto exit; + } - if( mac_length != actual_mac_length ) - { + if (mac_length != actual_mac_length) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } - if( mbedtls_psa_safer_memcmp( mac, actual_mac, actual_mac_length ) != 0 ) - { + if (mbedtls_psa_safer_memcmp(mac, actual_mac, actual_mac_length) != 0) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } exit: - mbedtls_platform_zeroize( actual_mac, sizeof( actual_mac ) ); + mbedtls_platform_zeroize(actual_mac, sizeof(actual_mac)); - return ( status ); + return status; } /****************************************************************/ /* Asymmetric cryptography */ /****************************************************************/ -static psa_status_t psa_sign_verify_check_alg( int input_is_message, - psa_algorithm_t alg ) +static psa_status_t psa_sign_verify_check_alg(int input_is_message, + psa_algorithm_t alg) { - if( input_is_message ) - { - if( ! PSA_ALG_IS_SIGN_MESSAGE( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (input_is_message) { + if (!PSA_ALG_IS_SIGN_MESSAGE(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - if ( PSA_ALG_IS_SIGN_HASH( alg ) ) - { - if( ! PSA_ALG_IS_HASH( PSA_ALG_SIGN_GET_HASH( alg ) ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_ALG_IS_SIGN_HASH(alg)) { + if (!PSA_ALG_IS_HASH(PSA_ALG_SIGN_GET_HASH(alg))) { + return PSA_ERROR_INVALID_ARGUMENT; + } + } + } else { + if (!PSA_ALG_IS_SIGN_HASH(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; } } - else - { - if( ! PSA_ALG_IS_SIGN_HASH( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t psa_sign_internal( mbedtls_svc_key_id_t key, - int input_is_message, - psa_algorithm_t alg, - const uint8_t * input, - size_t input_length, - uint8_t * signature, - size_t signature_size, - size_t * signature_length ) +static psa_status_t psa_sign_internal(mbedtls_svc_key_id_t key, + int input_is_message, + 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 status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -2684,50 +2694,49 @@ static psa_status_t psa_sign_internal( mbedtls_svc_key_id_t key, *signature_length = 0; - status = psa_sign_verify_check_alg( input_is_message, alg ); - if( status != PSA_SUCCESS ) + status = psa_sign_verify_check_alg(input_is_message, alg); + if (status != PSA_SUCCESS) { return status; + } /* Immediately reject a zero-length signature buffer. This guarantees * that signature must be a valid pointer. (On the other hand, the input * buffer can in principle be empty since it doesn't actually have * to be a hash.) */ - if( signature_size == 0 ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (signature_size == 0) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } status = psa_get_and_lock_key_slot_with_policy( - key, &slot, - input_is_message ? PSA_KEY_USAGE_SIGN_MESSAGE : - PSA_KEY_USAGE_SIGN_HASH, - alg ); + key, &slot, + input_is_message ? PSA_KEY_USAGE_SIGN_MESSAGE : + PSA_KEY_USAGE_SIGN_HASH, + alg); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } - if( ! PSA_KEY_TYPE_IS_KEY_PAIR( slot->attr.type ) ) - { + if (!PSA_KEY_TYPE_IS_KEY_PAIR(slot->attr.type)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - if( input_is_message ) - { + if (input_is_message) { status = psa_driver_wrapper_sign_message( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, - signature, signature_size, signature_length ); - } - else - { + signature, signature_size, signature_length); + } else { status = psa_driver_wrapper_sign_hash( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, - signature, signature_size, signature_length ); + signature, signature_size, signature_length); } @@ -2736,66 +2745,66 @@ exit: * the trailing part on success) with something that isn't a valid signature * (barring an attack on the signature and deliberately-crafted input), * in case the caller doesn't check the return status properly. */ - if( status == PSA_SUCCESS ) - memset( signature + *signature_length, '!', - signature_size - *signature_length ); - else - memset( signature, '!', signature_size ); + if (status == PSA_SUCCESS) { + memset(signature + *signature_length, '!', + signature_size - *signature_length); + } else { + memset(signature, '!', signature_size); + } /* If signature_size is 0 then we have nothing to do. We must not call * memset because signature may be NULL in this case. */ - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -static psa_status_t psa_verify_internal( mbedtls_svc_key_id_t key, - int input_is_message, - psa_algorithm_t alg, - const uint8_t * input, - size_t input_length, - const uint8_t * signature, - size_t signature_length ) +static psa_status_t psa_verify_internal(mbedtls_svc_key_id_t key, + int input_is_message, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + const uint8_t *signature, + size_t signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; - status = psa_sign_verify_check_alg( input_is_message, alg ); - if( status != PSA_SUCCESS ) + status = psa_sign_verify_check_alg(input_is_message, alg); + if (status != PSA_SUCCESS) { return status; + } status = psa_get_and_lock_key_slot_with_policy( - key, &slot, - input_is_message ? PSA_KEY_USAGE_VERIFY_MESSAGE : - PSA_KEY_USAGE_VERIFY_HASH, - alg ); + key, &slot, + input_is_message ? PSA_KEY_USAGE_VERIFY_MESSAGE : + PSA_KEY_USAGE_VERIFY_HASH, + alg); - if( status != PSA_SUCCESS ) - return( status ); + if (status != PSA_SUCCESS) { + return status; + } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - if( input_is_message ) - { + if (input_is_message) { status = psa_driver_wrapper_verify_message( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, - signature, signature_length ); - } - else - { + signature, signature_length); + } else { status = psa_driver_wrapper_verify_hash( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, - signature, signature_length ); + signature, signature_length); } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } @@ -2808,43 +2817,43 @@ psa_status_t psa_sign_message_builtin( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ) + size_t *signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if ( PSA_ALG_IS_SIGN_HASH( alg ) ) - { + if (PSA_ALG_IS_SIGN_HASH(alg)) { size_t hash_length; uint8_t hash[PSA_HASH_MAX_SIZE]; status = psa_driver_wrapper_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), - input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), + input, input_length, + hash, sizeof(hash), &hash_length); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return status; + } return psa_driver_wrapper_sign_hash( - attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ); + attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); } - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_sign_message( mbedtls_svc_key_id_t key, - 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_sign_message(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + uint8_t *signature, + size_t signature_size, + size_t *signature_length) { return psa_sign_internal( key, 1, alg, input, input_length, - signature, signature_size, signature_length ); + signature, signature_size, signature_length); } psa_status_t psa_verify_message_builtin( @@ -2855,191 +2864,173 @@ psa_status_t psa_verify_message_builtin( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ) + size_t signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if ( PSA_ALG_IS_SIGN_HASH( alg ) ) - { + if (PSA_ALG_IS_SIGN_HASH(alg)) { size_t hash_length; uint8_t hash[PSA_HASH_MAX_SIZE]; status = psa_driver_wrapper_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), - input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), + input, input_length, + hash, sizeof(hash), &hash_length); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return status; + } return psa_driver_wrapper_verify_hash( - attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ); + attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); } - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_verify_message( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const uint8_t * input, - size_t input_length, - const uint8_t * signature, - size_t signature_length ) +psa_status_t psa_verify_message(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + const uint8_t *signature, + size_t signature_length) { return psa_verify_internal( key, 1, alg, input, input_length, - signature, signature_length ); + signature, signature_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 ) + uint8_t *signature, size_t signature_size, size_t *signature_length) { - if( attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) || - PSA_ALG_IS_RSA_PSS( alg) ) - { + if (attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR) { + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || + PSA_ALG_IS_RSA_PSS(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - return( mbedtls_psa_rsa_sign_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) + return mbedtls_psa_rsa_sign_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) */ + } else { + return PSA_ERROR_INVALID_ARGUMENT; } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } - } - else if( PSA_KEY_TYPE_IS_ECC( attributes->core.type ) ) - { - if( PSA_ALG_IS_ECDSA( alg ) ) - { + } else if (PSA_KEY_TYPE_IS_ECC(attributes->core.type)) { + if (PSA_ALG_IS_ECDSA(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - return( mbedtls_psa_ecdsa_sign_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) + return mbedtls_psa_ecdsa_sign_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || * defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) */ - } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); + } else { + return PSA_ERROR_INVALID_ARGUMENT; } } - (void)key_buffer; - (void)key_buffer_size; - (void)hash; - (void)hash_length; - (void)signature; - (void)signature_size; - (void)signature_length; + (void) key_buffer; + (void) key_buffer_size; + (void) hash; + (void) hash_length; + (void) signature; + (void) signature_size; + (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_sign_hash( mbedtls_svc_key_id_t key, - 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 psa_sign_hash(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *hash, + size_t hash_length, + uint8_t *signature, + size_t signature_size, + size_t *signature_length) { return psa_sign_internal( key, 0, alg, hash, hash_length, - signature, signature_size, signature_length ); + signature, signature_size, signature_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 ) + const uint8_t *signature, size_t signature_length) { - if( PSA_KEY_TYPE_IS_RSA( attributes->core.type ) ) - { - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) || - PSA_ALG_IS_RSA_PSS( alg) ) - { + if (PSA_KEY_TYPE_IS_RSA(attributes->core.type)) { + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || + PSA_ALG_IS_RSA_PSS(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - return( mbedtls_psa_rsa_verify_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) + return mbedtls_psa_rsa_verify_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) */ + } else { + return PSA_ERROR_INVALID_ARGUMENT; } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } - } - else if( PSA_KEY_TYPE_IS_ECC( attributes->core.type ) ) - { - if( PSA_ALG_IS_ECDSA( alg ) ) - { + } else if (PSA_KEY_TYPE_IS_ECC(attributes->core.type)) { + if (PSA_ALG_IS_ECDSA(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - return( mbedtls_psa_ecdsa_verify_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) + return mbedtls_psa_ecdsa_verify_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || * defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) */ - } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); + } else { + return PSA_ERROR_INVALID_ARGUMENT; } } - (void)key_buffer; - (void)key_buffer_size; - (void)hash; - (void)hash_length; - (void)signature; - (void)signature_length; + (void) key_buffer; + (void) key_buffer_size; + (void) hash; + (void) hash_length; + (void) signature; + (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_verify_hash( mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const uint8_t *hash, - size_t hash_length, - const uint8_t *signature, - size_t signature_length ) +psa_status_t psa_verify_hash(mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const uint8_t *hash, + size_t hash_length, + const uint8_t *signature, + size_t signature_length) { return psa_verify_internal( key, 0, alg, hash, hash_length, - signature, signature_length ); + signature, signature_length); } -psa_status_t psa_asymmetric_encrypt( mbedtls_svc_key_id_t key, - 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 ) +psa_status_t psa_asymmetric_encrypt(mbedtls_svc_key_id_t key, + 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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -3053,43 +3044,44 @@ psa_status_t psa_asymmetric_encrypt( mbedtls_svc_key_id_t key, *output_length = 0; - if( ! PSA_ALG_IS_RSA_OAEP( alg ) && salt_length != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_RSA_OAEP(alg) && salt_length != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } status = psa_get_and_lock_transparent_key_slot_with_policy( - key, &slot, PSA_KEY_USAGE_ENCRYPT, alg ); - if( status != PSA_SUCCESS ) - return( status ); - if( ! ( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->attr.type ) || - PSA_KEY_TYPE_IS_KEY_PAIR( slot->attr.type ) ) ) - { + key, &slot, PSA_KEY_USAGE_ENCRYPT, alg); + if (status != PSA_SUCCESS) { + return status; + } + if (!(PSA_KEY_TYPE_IS_PUBLIC_KEY(slot->attr.type) || + PSA_KEY_TYPE_IS_KEY_PAIR(slot->attr.type))) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; status = psa_driver_wrapper_asymmetric_encrypt( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, salt, salt_length, - output, output_size, output_length ); + output, output_size, output_length); exit: - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -psa_status_t psa_asymmetric_decrypt( mbedtls_svc_key_id_t key, - 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 ) +psa_status_t psa_asymmetric_decrypt(mbedtls_svc_key_id_t key, + 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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -3103,32 +3095,33 @@ psa_status_t psa_asymmetric_decrypt( mbedtls_svc_key_id_t key, *output_length = 0; - if( ! PSA_ALG_IS_RSA_OAEP( alg ) && salt_length != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_RSA_OAEP(alg) && salt_length != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } status = psa_get_and_lock_transparent_key_slot_with_policy( - key, &slot, PSA_KEY_USAGE_DECRYPT, alg ); - if( status != PSA_SUCCESS ) - return( status ); - if( ! PSA_KEY_TYPE_IS_KEY_PAIR( slot->attr.type ) ) - { + key, &slot, PSA_KEY_USAGE_DECRYPT, alg); + if (status != PSA_SUCCESS) { + return status; + } + if (!PSA_KEY_TYPE_IS_KEY_PAIR(slot->attr.type)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; status = psa_driver_wrapper_asymmetric_decrypt( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, salt, salt_length, - output, output_size, output_length ); + output, output_size, output_length); exit: - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } @@ -3137,277 +3130,266 @@ exit: /* Symmetric cryptography */ /****************************************************************/ -static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - mbedtls_operation_t cipher_operation ) +static psa_status_t psa_cipher_setup(psa_cipher_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + mbedtls_operation_t cipher_operation) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot = NULL; - psa_key_usage_t usage = ( cipher_operation == MBEDTLS_ENCRYPT ? - PSA_KEY_USAGE_ENCRYPT : - PSA_KEY_USAGE_DECRYPT ); + psa_key_usage_t usage = (cipher_operation == MBEDTLS_ENCRYPT ? + PSA_KEY_USAGE_ENCRYPT : + PSA_KEY_USAGE_DECRYPT); /* A context must be freshly initialized before it can be set up. */ - if( operation->id != 0 ) - { + if (operation->id != 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( ! PSA_ALG_IS_CIPHER( alg ) ) - { + if (!PSA_ALG_IS_CIPHER(alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = psa_get_and_lock_key_slot_with_policy( key, &slot, usage, alg ); - if( status != PSA_SUCCESS ) + status = psa_get_and_lock_key_slot_with_policy(key, &slot, usage, alg); + if (status != PSA_SUCCESS) { goto exit; + } /* Initialize the operation struct members, except for id. The id member * is used to indicate to psa_cipher_abort that there are resources to free, * so we only set it (in the driver wrapper) after resources have been * allocated/initialized. */ operation->iv_set = 0; - if( alg == PSA_ALG_ECB_NO_PADDING ) + if (alg == PSA_ALG_ECB_NO_PADDING) { operation->iv_required = 0; - else + } else { operation->iv_required = 1; - operation->default_iv_length = PSA_CIPHER_IV_LENGTH( slot->attr.type, alg ); + } + operation->default_iv_length = PSA_CIPHER_IV_LENGTH(slot->attr.type, alg); psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; /* Try doing the operation through a driver before using software fallback. */ - if( cipher_operation == MBEDTLS_ENCRYPT ) - status = psa_driver_wrapper_cipher_encrypt_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); - else - status = psa_driver_wrapper_cipher_decrypt_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); + if (cipher_operation == MBEDTLS_ENCRYPT) { + status = psa_driver_wrapper_cipher_encrypt_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); + } else { + status = psa_driver_wrapper_cipher_decrypt_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); + } exit: - if( status != PSA_SUCCESS ) - psa_cipher_abort( operation ); + if (status != PSA_SUCCESS) { + psa_cipher_abort(operation); + } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -psa_status_t psa_cipher_encrypt_setup( psa_cipher_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_cipher_encrypt_setup(psa_cipher_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_cipher_setup( operation, key, alg, MBEDTLS_ENCRYPT ) ); + return psa_cipher_setup(operation, key, alg, MBEDTLS_ENCRYPT); } -psa_status_t psa_cipher_decrypt_setup( psa_cipher_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_cipher_decrypt_setup(psa_cipher_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_cipher_setup( operation, key, alg, MBEDTLS_DECRYPT ) ); + return psa_cipher_setup(operation, key, alg, MBEDTLS_DECRYPT); } -psa_status_t psa_cipher_generate_iv( psa_cipher_operation_t *operation, - uint8_t *iv, - size_t iv_size, - size_t *iv_length ) +psa_status_t psa_cipher_generate_iv(psa_cipher_operation_t *operation, + uint8_t *iv, + size_t iv_size, + size_t *iv_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; uint8_t local_iv[PSA_CIPHER_IV_MAX_SIZE]; size_t default_iv_length; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->iv_set || ! operation->iv_required ) - { + if (operation->iv_set || !operation->iv_required) { status = PSA_ERROR_BAD_STATE; goto exit; } default_iv_length = operation->default_iv_length; - if( iv_size < default_iv_length ) - { + if (iv_size < default_iv_length) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - if( default_iv_length > PSA_CIPHER_IV_MAX_SIZE ) - { + if (default_iv_length > PSA_CIPHER_IV_MAX_SIZE) { status = PSA_ERROR_GENERIC_ERROR; goto exit; } - status = psa_generate_random( local_iv, default_iv_length ); - if( status != PSA_SUCCESS ) + status = psa_generate_random(local_iv, default_iv_length); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_driver_wrapper_cipher_set_iv( operation, - local_iv, default_iv_length ); + status = psa_driver_wrapper_cipher_set_iv(operation, + local_iv, default_iv_length); exit: - if( status == PSA_SUCCESS ) - { - memcpy( iv, local_iv, default_iv_length ); + if (status == PSA_SUCCESS) { + memcpy(iv, local_iv, default_iv_length); *iv_length = default_iv_length; operation->iv_set = 1; - } - else - { + } else { *iv_length = 0; - psa_cipher_abort( operation ); + psa_cipher_abort(operation); } - return( status ); + return status; } -psa_status_t psa_cipher_set_iv( psa_cipher_operation_t *operation, - const uint8_t *iv, - size_t iv_length ) +psa_status_t psa_cipher_set_iv(psa_cipher_operation_t *operation, + const uint8_t *iv, + size_t iv_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->iv_set || ! operation->iv_required ) - { + if (operation->iv_set || !operation->iv_required) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( iv_length > PSA_CIPHER_IV_MAX_SIZE ) - { + if (iv_length > PSA_CIPHER_IV_MAX_SIZE) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = psa_driver_wrapper_cipher_set_iv( operation, - iv, - iv_length ); + status = psa_driver_wrapper_cipher_set_iv(operation, + iv, + iv_length); exit: - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->iv_set = 1; - else - psa_cipher_abort( operation ); - return( status ); + } else { + psa_cipher_abort(operation); + } + return status; } -psa_status_t psa_cipher_update( 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 psa_cipher_update(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 status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->iv_required && ! operation->iv_set ) - { + if (operation->iv_required && !operation->iv_set) { status = PSA_ERROR_BAD_STATE; goto exit; } - status = psa_driver_wrapper_cipher_update( operation, - input, - input_length, - output, - output_size, - output_length ); + status = psa_driver_wrapper_cipher_update(operation, + input, + input_length, + output, + output_size, + output_length); exit: - if( status != PSA_SUCCESS ) - psa_cipher_abort( operation ); + if (status != PSA_SUCCESS) { + psa_cipher_abort(operation); + } - return( status ); + return status; } -psa_status_t psa_cipher_finish( psa_cipher_operation_t *operation, - uint8_t *output, - size_t output_size, - size_t *output_length ) +psa_status_t psa_cipher_finish(psa_cipher_operation_t *operation, + uint8_t *output, + size_t output_size, + size_t *output_length) { psa_status_t status = PSA_ERROR_GENERIC_ERROR; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->iv_required && ! operation->iv_set ) - { + if (operation->iv_required && !operation->iv_set) { status = PSA_ERROR_BAD_STATE; goto exit; } - status = psa_driver_wrapper_cipher_finish( operation, - output, - output_size, - output_length ); + status = psa_driver_wrapper_cipher_finish(operation, + output, + output_size, + output_length); exit: - if( status == PSA_SUCCESS ) - return( psa_cipher_abort( operation ) ); - else - { + if (status == PSA_SUCCESS) { + return psa_cipher_abort(operation); + } else { *output_length = 0; - (void) psa_cipher_abort( operation ); + (void) psa_cipher_abort(operation); - return( status ); + return status; } } -psa_status_t psa_cipher_abort( psa_cipher_operation_t *operation ) +psa_status_t psa_cipher_abort(psa_cipher_operation_t *operation) { - if( operation->id == 0 ) - { + if (operation->id == 0) { /* The object has (apparently) been initialized but it is not (yet) * in use. It's ok to call abort on such an object, and there's * nothing to do. */ - return( PSA_SUCCESS ); + return PSA_SUCCESS; } - psa_driver_wrapper_cipher_abort( operation ); + psa_driver_wrapper_cipher_abort(operation); operation->id = 0; operation->iv_set = 0; operation->iv_required = 0; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_cipher_encrypt( mbedtls_svc_key_id_t key, - 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 psa_cipher_encrypt(mbedtls_svc_key_id_t key, + 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 status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -3415,100 +3397,97 @@ psa_status_t psa_cipher_encrypt( mbedtls_svc_key_id_t key, uint8_t local_iv[PSA_CIPHER_IV_MAX_SIZE]; size_t default_iv_length = 0; - if( ! PSA_ALG_IS_CIPHER( alg ) ) - { + if (!PSA_ALG_IS_CIPHER(alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = psa_get_and_lock_key_slot_with_policy( key, &slot, - PSA_KEY_USAGE_ENCRYPT, - alg ); - if( status != PSA_SUCCESS ) + status = psa_get_and_lock_key_slot_with_policy(key, &slot, + PSA_KEY_USAGE_ENCRYPT, + alg); + if (status != PSA_SUCCESS) { goto exit; + } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - default_iv_length = PSA_CIPHER_IV_LENGTH( slot->attr.type, alg ); - if( default_iv_length > PSA_CIPHER_IV_MAX_SIZE ) - { + default_iv_length = PSA_CIPHER_IV_LENGTH(slot->attr.type, alg); + if (default_iv_length > PSA_CIPHER_IV_MAX_SIZE) { status = PSA_ERROR_GENERIC_ERROR; goto exit; } - if( default_iv_length > 0 ) - { - if( output_size < default_iv_length ) - { + if (default_iv_length > 0) { + if (output_size < default_iv_length) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - status = psa_generate_random( local_iv, default_iv_length ); - if( status != PSA_SUCCESS ) + status = psa_generate_random(local_iv, default_iv_length); + if (status != PSA_SUCCESS) { goto exit; + } } status = psa_driver_wrapper_cipher_encrypt( &attributes, slot->key.data, slot->key.bytes, alg, local_iv, default_iv_length, input, input_length, - mbedtls_buffer_offset( output, default_iv_length ), - output_size - default_iv_length, output_length ); + mbedtls_buffer_offset(output, default_iv_length), + output_size - default_iv_length, output_length); exit: - unlock_status = psa_unlock_key_slot( slot ); - if( status == PSA_SUCCESS ) + unlock_status = psa_unlock_key_slot(slot); + if (status == PSA_SUCCESS) { status = unlock_status; - - if( status == PSA_SUCCESS ) - { - if( default_iv_length > 0 ) - memcpy( output, local_iv, default_iv_length ); - *output_length += default_iv_length; } - else - *output_length = 0; - return( status ); + if (status == PSA_SUCCESS) { + if (default_iv_length > 0) { + memcpy(output, local_iv, default_iv_length); + } + *output_length += default_iv_length; + } else { + *output_length = 0; + } + + return status; } -psa_status_t psa_cipher_decrypt( mbedtls_svc_key_id_t key, - 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 psa_cipher_decrypt(mbedtls_svc_key_id_t key, + 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 status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot = NULL; - if( ! PSA_ALG_IS_CIPHER( alg ) ) - { + if (!PSA_ALG_IS_CIPHER(alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = psa_get_and_lock_key_slot_with_policy( key, &slot, - PSA_KEY_USAGE_DECRYPT, - alg ); - if( status != PSA_SUCCESS ) + status = psa_get_and_lock_key_slot_with_policy(key, &slot, + PSA_KEY_USAGE_DECRYPT, + alg); + if (status != PSA_SUCCESS) { goto exit; + } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - if( alg == PSA_ALG_CCM_STAR_NO_TAG && input_length < PSA_BLOCK_CIPHER_BLOCK_LENGTH( slot->attr.type ) ) - { + if (alg == PSA_ALG_CCM_STAR_NO_TAG && + input_length < PSA_BLOCK_CIPHER_BLOCK_LENGTH(slot->attr.type)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; - } - else if ( input_length < PSA_CIPHER_IV_LENGTH( slot->attr.type, alg ) ) - { + } else if (input_length < PSA_CIPHER_IV_LENGTH(slot->attr.type, alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -3516,17 +3495,19 @@ psa_status_t psa_cipher_decrypt( mbedtls_svc_key_id_t key, status = psa_driver_wrapper_cipher_decrypt( &attributes, slot->key.data, slot->key.bytes, alg, input, input_length, - output, output_size, output_length ); + output, output_size, output_length); exit: - unlock_status = psa_unlock_key_slot( slot ); - if( status == PSA_SUCCESS ) + unlock_status = psa_unlock_key_slot(slot); + if (status == PSA_SUCCESS) { status = unlock_status; + } - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { *output_length = 0; + } - return( status ); + return status; } @@ -3535,94 +3516,100 @@ exit: /****************************************************************/ /* Helper function to get the base algorithm from its variants. */ -static psa_algorithm_t psa_aead_get_base_algorithm( psa_algorithm_t alg ) +static psa_algorithm_t psa_aead_get_base_algorithm(psa_algorithm_t alg) { - return PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG( alg ); + return PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg); } /* Helper function to perform common nonce length checks. */ -static psa_status_t psa_aead_check_nonce_length( psa_algorithm_t alg, - size_t nonce_length ) +static psa_status_t psa_aead_check_nonce_length(psa_algorithm_t alg, + size_t nonce_length) { - psa_algorithm_t base_alg = psa_aead_get_base_algorithm( alg ); + psa_algorithm_t base_alg = psa_aead_get_base_algorithm(alg); - switch(base_alg) - { + switch (base_alg) { #if defined(PSA_WANT_ALG_GCM) case PSA_ALG_GCM: /* Not checking max nonce size here as GCM spec allows almost - * arbitrarily large nonces. Please note that we do not generally - * recommend the usage of nonces of greater length than - * PSA_AEAD_NONCE_MAX_SIZE, as large nonces are hashed to a shorter - * size, which can then lead to collisions if you encrypt a very - * large number of messages.*/ - if( nonce_length != 0 ) - return( PSA_SUCCESS ); + * arbitrarily large nonces. Please note that we do not generally + * recommend the usage of nonces of greater length than + * PSA_AEAD_NONCE_MAX_SIZE, as large nonces are hashed to a shorter + * size, which can then lead to collisions if you encrypt a very + * large number of messages.*/ + if (nonce_length != 0) { + return PSA_SUCCESS; + } break; #endif /* PSA_WANT_ALG_GCM */ #if defined(PSA_WANT_ALG_CCM) case PSA_ALG_CCM: - if( nonce_length >= 7 && nonce_length <= 13 ) - return( PSA_SUCCESS ); + if (nonce_length >= 7 && nonce_length <= 13) { + return PSA_SUCCESS; + } break; #endif /* PSA_WANT_ALG_CCM */ #if defined(PSA_WANT_ALG_CHACHA20_POLY1305) case PSA_ALG_CHACHA20_POLY1305: - if( nonce_length == 12 ) - return( PSA_SUCCESS ); - else if( nonce_length == 8 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (nonce_length == 12) { + return PSA_SUCCESS; + } else if (nonce_length == 8) { + return PSA_ERROR_NOT_SUPPORTED; + } break; #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: (void) nonce_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } -static psa_status_t psa_aead_check_algorithm( psa_algorithm_t alg ) +static psa_status_t psa_aead_check_algorithm(psa_algorithm_t alg) { - if( !PSA_ALG_IS_AEAD( alg ) || PSA_ALG_IS_WILDCARD( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_AEAD(alg) || PSA_ALG_IS_WILDCARD(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_aead_encrypt( mbedtls_svc_key_id_t key, - 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 ) +psa_status_t psa_aead_encrypt(mbedtls_svc_key_id_t key, + 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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; *ciphertext_length = 0; - status = psa_aead_check_algorithm( alg ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_aead_check_algorithm(alg); + if (status != PSA_SUCCESS) { + return status; + } status = psa_get_and_lock_key_slot_with_policy( - key, &slot, PSA_KEY_USAGE_ENCRYPT, alg ); - if( status != PSA_SUCCESS ) - return( status ); + key, &slot, PSA_KEY_USAGE_ENCRYPT, alg); + if (status != PSA_SUCCESS) { + return status; + } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - status = psa_aead_check_nonce_length( alg, nonce_length ); - if( status != PSA_SUCCESS ) + status = psa_aead_check_nonce_length(alg, nonce_length); + if (status != PSA_SUCCESS) { goto exit; + } status = psa_driver_wrapper_aead_encrypt( &attributes, slot->key.data, slot->key.bytes, @@ -3630,50 +3617,54 @@ psa_status_t psa_aead_encrypt( mbedtls_svc_key_id_t key, nonce, nonce_length, additional_data, additional_data_length, plaintext, plaintext_length, - ciphertext, ciphertext_size, ciphertext_length ); + ciphertext, ciphertext_size, ciphertext_length); - if( status != PSA_SUCCESS && ciphertext_size != 0 ) - memset( ciphertext, 0, ciphertext_size ); + if (status != PSA_SUCCESS && ciphertext_size != 0) { + memset(ciphertext, 0, ciphertext_size); + } exit: - psa_unlock_key_slot( slot ); + psa_unlock_key_slot(slot); - return( status ); + return status; } -psa_status_t psa_aead_decrypt( mbedtls_svc_key_id_t key, - 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 ) +psa_status_t psa_aead_decrypt(mbedtls_svc_key_id_t key, + 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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; *plaintext_length = 0; - status = psa_aead_check_algorithm( alg ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_aead_check_algorithm(alg); + if (status != PSA_SUCCESS) { + return status; + } status = psa_get_and_lock_key_slot_with_policy( - key, &slot, PSA_KEY_USAGE_DECRYPT, alg ); - if( status != PSA_SUCCESS ) - return( status ); + key, &slot, PSA_KEY_USAGE_DECRYPT, alg); + if (status != PSA_SUCCESS) { + return status; + } psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - status = psa_aead_check_nonce_length( alg, nonce_length ); - if( status != PSA_SUCCESS ) + status = psa_aead_check_nonce_length(alg, nonce_length); + if (status != PSA_SUCCESS) { goto exit; + } status = psa_driver_wrapper_aead_decrypt( &attributes, slot->key.data, slot->key.bytes, @@ -3681,151 +3672,158 @@ psa_status_t psa_aead_decrypt( mbedtls_svc_key_id_t key, nonce, nonce_length, additional_data, additional_data_length, ciphertext, ciphertext_length, - plaintext, plaintext_size, plaintext_length ); + plaintext, plaintext_size, plaintext_length); - if( status != PSA_SUCCESS && plaintext_size != 0 ) - memset( plaintext, 0, plaintext_size ); + if (status != PSA_SUCCESS && plaintext_size != 0) { + memset(plaintext, 0, plaintext_size); + } exit: - psa_unlock_key_slot( slot ); + psa_unlock_key_slot(slot); - return( status ); + return status; } -static psa_status_t psa_validate_tag_length( psa_algorithm_t alg ) { - const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); +static psa_status_t psa_validate_tag_length(psa_algorithm_t alg) +{ + const uint8_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); - switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) - { + switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) { #if defined(PSA_WANT_ALG_CCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0): /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16.*/ - if( tag_len < 4 || tag_len > 16 || tag_len % 2 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (tag_len < 4 || tag_len > 16 || tag_len % 2) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif /* PSA_WANT_ALG_CCM */ #if defined(PSA_WANT_ALG_GCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0): /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. */ - if( tag_len != 4 && tag_len != 8 && ( tag_len < 12 || tag_len > 16 ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (tag_len != 4 && tag_len != 8 && (tag_len < 12 || tag_len > 16)) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif /* PSA_WANT_ALG_GCM */ #if defined(PSA_WANT_ALG_CHACHA20_POLY1305) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0): /* We only support the default tag length. */ - if( tag_len != 16 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (tag_len != 16) { + return PSA_ERROR_INVALID_ARGUMENT; + } break; #endif /* PSA_WANT_ALG_CHACHA20_POLY1305 */ default: (void) tag_len; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /* Set the key for a multipart authenticated operation. */ -static psa_status_t psa_aead_setup( psa_aead_operation_t *operation, - int is_encrypt, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +static psa_status_t psa_aead_setup(psa_aead_operation_t *operation, + int is_encrypt, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot = NULL; psa_key_usage_t key_usage = 0; - status = psa_aead_check_algorithm( alg ); - if( status != PSA_SUCCESS ) + status = psa_aead_check_algorithm(alg); + if (status != PSA_SUCCESS) { goto exit; + } - if( operation->id != 0 ) - { + if (operation->id != 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->nonce_set || operation->lengths_set || - operation->ad_started || operation->body_started ) - { + if (operation->nonce_set || operation->lengths_set || + operation->ad_started || operation->body_started) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( is_encrypt ) + if (is_encrypt) { key_usage = PSA_KEY_USAGE_ENCRYPT; - else + } else { key_usage = PSA_KEY_USAGE_DECRYPT; + } - status = psa_get_and_lock_key_slot_with_policy( key, &slot, key_usage, - alg ); - if( status != PSA_SUCCESS ) + status = psa_get_and_lock_key_slot_with_policy(key, &slot, key_usage, + alg); + if (status != PSA_SUCCESS) { goto exit; + } psa_key_attributes_t attributes = { .core = slot->attr }; - if( ( status = psa_validate_tag_length( alg ) ) != PSA_SUCCESS ) + if ((status = psa_validate_tag_length(alg)) != PSA_SUCCESS) { goto exit; + } - if( is_encrypt ) - status = psa_driver_wrapper_aead_encrypt_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); - else - status = psa_driver_wrapper_aead_decrypt_setup( operation, - &attributes, - slot->key.data, - slot->key.bytes, - alg ); - if( status != PSA_SUCCESS ) + if (is_encrypt) { + status = psa_driver_wrapper_aead_encrypt_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); + } else { + status = psa_driver_wrapper_aead_decrypt_setup(operation, + &attributes, + slot->key.data, + slot->key.bytes, + alg); + } + if (status != PSA_SUCCESS) { goto exit; + } - operation->key_type = psa_get_key_type( &attributes ); + operation->key_type = psa_get_key_type(&attributes); exit: - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { status = unlock_status; - operation->alg = psa_aead_get_base_algorithm( alg ); + operation->alg = psa_aead_get_base_algorithm(alg); operation->is_encrypt = is_encrypt; + } else { + psa_aead_abort(operation); } - else - psa_aead_abort( operation ); - return( status ); + return status; } /* Set the key for a multipart authenticated encryption operation. */ -psa_status_t psa_aead_encrypt_setup( psa_aead_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_aead_encrypt_setup(psa_aead_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_aead_setup( operation, 1, key, alg ) ); + return psa_aead_setup(operation, 1, key, alg); } /* Set the key for a multipart authenticated decryption operation. */ -psa_status_t psa_aead_decrypt_setup( psa_aead_operation_t *operation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg ) +psa_status_t psa_aead_decrypt_setup(psa_aead_operation_t *operation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg) { - return( psa_aead_setup( operation, 0, key, alg ) ); + return psa_aead_setup(operation, 0, key, alg); } /* Generate a random nonce / IV for multipart AEAD operation */ -psa_status_t psa_aead_generate_nonce( psa_aead_operation_t *operation, - uint8_t *nonce, - size_t nonce_size, - size_t *nonce_length ) +psa_status_t psa_aead_generate_nonce(psa_aead_operation_t *operation, + uint8_t *nonce, + size_t nonce_size, + size_t *nonce_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; uint8_t local_nonce[PSA_AEAD_NONCE_MAX_SIZE]; @@ -3833,14 +3831,12 @@ psa_status_t psa_aead_generate_nonce( psa_aead_operation_t *operation, *nonce_length = 0; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->nonce_set || !operation->is_encrypt ) - { + if (operation->nonce_set || !operation->is_encrypt) { status = PSA_ERROR_BAD_STATE; goto exit; } @@ -3854,102 +3850,95 @@ psa_status_t psa_aead_generate_nonce( psa_aead_operation_t *operation, * However this restriction that L has to be the smallest integer is not * applied in practice, and it is not implementable here since the * plaintext length may or may not be known at this time. */ - required_nonce_size = PSA_AEAD_NONCE_LENGTH( operation->key_type, - operation->alg ); - if( nonce_size < required_nonce_size ) - { + required_nonce_size = PSA_AEAD_NONCE_LENGTH(operation->key_type, + operation->alg); + if (nonce_size < required_nonce_size) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - status = psa_generate_random( local_nonce, required_nonce_size ); - if( status != PSA_SUCCESS ) + status = psa_generate_random(local_nonce, required_nonce_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_aead_set_nonce( operation, local_nonce, required_nonce_size ); + status = psa_aead_set_nonce(operation, local_nonce, required_nonce_size); exit: - if( status == PSA_SUCCESS ) - { - memcpy( nonce, local_nonce, required_nonce_size ); + if (status == PSA_SUCCESS) { + memcpy(nonce, local_nonce, required_nonce_size); *nonce_length = required_nonce_size; + } else { + psa_aead_abort(operation); } - else - psa_aead_abort( operation ); - return( status ); + return status; } /* Set the nonce for a multipart authenticated encryption or decryption operation.*/ -psa_status_t psa_aead_set_nonce( psa_aead_operation_t *operation, - const uint8_t *nonce, - size_t nonce_length ) +psa_status_t psa_aead_set_nonce(psa_aead_operation_t *operation, + const uint8_t *nonce, + size_t nonce_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->nonce_set ) - { + if (operation->nonce_set) { status = PSA_ERROR_BAD_STATE; goto exit; } - status = psa_aead_check_nonce_length( operation->alg, nonce_length ); - if( status != PSA_SUCCESS ) - { + status = psa_aead_check_nonce_length(operation->alg, nonce_length); + if (status != PSA_SUCCESS) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = psa_driver_wrapper_aead_set_nonce( operation, nonce, - nonce_length ); + status = psa_driver_wrapper_aead_set_nonce(operation, nonce, + nonce_length); exit: - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->nonce_set = 1; - else - psa_aead_abort( operation ); + } else { + psa_aead_abort(operation); + } - return( status ); + return status; } /* Declare the lengths of the message and additional data for multipart AEAD. */ -psa_status_t psa_aead_set_lengths( psa_aead_operation_t *operation, - size_t ad_length, - size_t plaintext_length ) +psa_status_t psa_aead_set_lengths(psa_aead_operation_t *operation, + size_t ad_length, + size_t plaintext_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->lengths_set || operation->ad_started || - operation->body_started ) - { + if (operation->lengths_set || operation->ad_started || + operation->body_started) { status = PSA_ERROR_BAD_STATE; goto exit; } - switch(operation->alg) - { + switch (operation->alg) { #if defined(PSA_WANT_ALG_GCM) case PSA_ALG_GCM: /* Lengths can only be too large for GCM if size_t is bigger than 32 - * bits. Without the guard this code will generate warnings on 32bit - * builds. */ + * bits. Without the guard this code will generate warnings on 32bit + * builds. */ #if SIZE_MAX > UINT32_MAX - if( (( uint64_t ) ad_length ) >> 61 != 0 || - (( uint64_t ) plaintext_length ) > 0xFFFFFFFE0ull ) - { + if (((uint64_t) ad_length) >> 61 != 0 || + ((uint64_t) plaintext_length) > 0xFFFFFFFE0ull) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -3958,8 +3947,7 @@ psa_status_t psa_aead_set_lengths( psa_aead_operation_t *operation, #endif /* PSA_WANT_ALG_GCM */ #if defined(PSA_WANT_ALG_CCM) case PSA_ALG_CCM: - if( ad_length > 0xFF00 ) - { + if (ad_length > 0xFF00) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -3974,45 +3962,40 @@ psa_status_t psa_aead_set_lengths( psa_aead_operation_t *operation, break; } - status = psa_driver_wrapper_aead_set_lengths( operation, ad_length, - plaintext_length ); + status = psa_driver_wrapper_aead_set_lengths(operation, ad_length, + plaintext_length); exit: - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { operation->ad_remaining = ad_length; operation->body_remaining = plaintext_length; operation->lengths_set = 1; + } else { + psa_aead_abort(operation); } - else - psa_aead_abort( operation ); - return( status ); + return status; } /* Pass additional data to an active multipart AEAD operation. */ -psa_status_t psa_aead_update_ad( psa_aead_operation_t *operation, - const uint8_t *input, - size_t input_length ) +psa_status_t psa_aead_update_ad(psa_aead_operation_t *operation, + const uint8_t *input, + size_t input_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( !operation->nonce_set || operation->body_started ) - { + if (!operation->nonce_set || operation->body_started) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->lengths_set ) - { - if( operation->ad_remaining < input_length ) - { + if (operation->lengths_set) { + if (operation->ad_remaining < input_length) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -4020,63 +4003,58 @@ psa_status_t psa_aead_update_ad( psa_aead_operation_t *operation, operation->ad_remaining -= input_length; } #if defined(PSA_WANT_ALG_CCM) - else if( operation->alg == PSA_ALG_CCM ) - { + else if (operation->alg == PSA_ALG_CCM) { status = PSA_ERROR_BAD_STATE; goto exit; } #endif /* PSA_WANT_ALG_CCM */ - status = psa_driver_wrapper_aead_update_ad( operation, input, - input_length ); + status = psa_driver_wrapper_aead_update_ad(operation, input, + input_length); exit: - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->ad_started = 1; - else - psa_aead_abort( operation ); + } else { + psa_aead_abort(operation); + } - return( status ); + return status; } /* Encrypt or decrypt a message fragment in an active multipart AEAD operation.*/ -psa_status_t psa_aead_update( 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 psa_aead_update(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 status = PSA_ERROR_CORRUPTION_DETECTED; *output_length = 0; - if( operation->id == 0 ) - { + if (operation->id == 0) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( !operation->nonce_set ) - { + if (!operation->nonce_set) { status = PSA_ERROR_BAD_STATE; goto exit; } - if( operation->lengths_set ) - { + if (operation->lengths_set) { /* Additional data length was supplied, but not all the additional data was supplied.*/ - if( operation->ad_remaining != 0 ) - { + if (operation->ad_remaining != 0) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } /* Too much data provided. */ - if( operation->body_remaining < input_length ) - { + if (operation->body_remaining < input_length) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -4084,66 +4062,68 @@ psa_status_t psa_aead_update( psa_aead_operation_t *operation, operation->body_remaining -= input_length; } #if defined(PSA_WANT_ALG_CCM) - else if( operation->alg == PSA_ALG_CCM ) - { + else if (operation->alg == PSA_ALG_CCM) { status = PSA_ERROR_BAD_STATE; goto exit; } #endif /* PSA_WANT_ALG_CCM */ - status = psa_driver_wrapper_aead_update( operation, input, input_length, - output, output_size, - output_length ); + status = psa_driver_wrapper_aead_update(operation, input, input_length, + output, output_size, + output_length); exit: - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->body_started = 1; - else - psa_aead_abort( operation ); + } else { + psa_aead_abort(operation); + } - return( status ); + return status; } -static psa_status_t psa_aead_final_checks( const psa_aead_operation_t *operation ) +static psa_status_t psa_aead_final_checks(const psa_aead_operation_t *operation) { - if( operation->id == 0 || !operation->nonce_set ) - return( PSA_ERROR_BAD_STATE ); + if (operation->id == 0 || !operation->nonce_set) { + return PSA_ERROR_BAD_STATE; + } - if( operation->lengths_set && ( operation->ad_remaining != 0 || - operation->body_remaining != 0 ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (operation->lengths_set && (operation->ad_remaining != 0 || + operation->body_remaining != 0)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /* Finish encrypting a message in a multipart AEAD operation. */ -psa_status_t psa_aead_finish( 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 psa_aead_finish(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 status = PSA_ERROR_CORRUPTION_DETECTED; *ciphertext_length = 0; *tag_length = tag_size; - status = psa_aead_final_checks( operation ); - if( status != PSA_SUCCESS ) + status = psa_aead_final_checks(operation); + if (status != PSA_SUCCESS) { goto exit; + } - if( !operation->is_encrypt ) - { + if (!operation->is_encrypt) { status = PSA_ERROR_BAD_STATE; goto exit; } - status = psa_driver_wrapper_aead_finish( operation, ciphertext, - ciphertext_size, - ciphertext_length, - tag, tag_size, tag_length ); + status = psa_driver_wrapper_aead_finish(operation, ciphertext, + ciphertext_size, + ciphertext_length, + tag, tag_size, tag_length); exit: /* In case the operation fails and the user fails to check for failure or @@ -4151,71 +4131,70 @@ exit: * Even if the operation succeeds, make sure we clear the rest of the * buffer to prevent potential leakage of anything previously placed in * the same buffer.*/ - if( tag != NULL ) - { - if( status != PSA_SUCCESS ) - memset( tag, '!', tag_size ); - else if( *tag_length < tag_size ) - memset( tag + *tag_length, '!', ( tag_size - *tag_length ) ); + if (tag != NULL) { + if (status != PSA_SUCCESS) { + memset(tag, '!', tag_size); + } else if (*tag_length < tag_size) { + memset(tag + *tag_length, '!', (tag_size - *tag_length)); + } } - psa_aead_abort( operation ); + psa_aead_abort(operation); - return( status ); + return status; } /* Finish authenticating and decrypting a message in a multipart AEAD operation.*/ -psa_status_t psa_aead_verify( psa_aead_operation_t *operation, - uint8_t *plaintext, - size_t plaintext_size, - size_t *plaintext_length, - const uint8_t *tag, - size_t tag_length ) +psa_status_t psa_aead_verify(psa_aead_operation_t *operation, + uint8_t *plaintext, + size_t plaintext_size, + size_t *plaintext_length, + const uint8_t *tag, + size_t tag_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; *plaintext_length = 0; - status = psa_aead_final_checks( operation ); - if( status != PSA_SUCCESS ) + status = psa_aead_final_checks(operation); + if (status != PSA_SUCCESS) { goto exit; + } - if( operation->is_encrypt ) - { + if (operation->is_encrypt) { status = PSA_ERROR_BAD_STATE; goto exit; } - status = psa_driver_wrapper_aead_verify( operation, plaintext, - plaintext_size, - plaintext_length, - tag, tag_length ); + status = psa_driver_wrapper_aead_verify(operation, plaintext, + plaintext_size, + plaintext_length, + tag, tag_length); exit: - psa_aead_abort( operation ); + psa_aead_abort(operation); - return( status ); + return status; } /* Abort an AEAD operation. */ -psa_status_t psa_aead_abort( psa_aead_operation_t *operation ) +psa_status_t psa_aead_abort(psa_aead_operation_t *operation) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->id == 0 ) - { + if (operation->id == 0) { /* The object has (apparently) been initialized but it is not (yet) * in use. It's ok to call abort on such an object, and there's * nothing to do. */ - return( PSA_SUCCESS ); + return PSA_SUCCESS; } - status = psa_driver_wrapper_aead_abort( operation ); + status = psa_driver_wrapper_aead_abort(operation); - memset( operation, 0, sizeof( *operation ) ); + memset(operation, 0, sizeof(*operation)); - return( status ); + return status; } /****************************************************************/ @@ -4236,24 +4215,24 @@ static psa_status_t psa_key_derivation_start_hmac( psa_mac_operation_t *operation, psa_algorithm_t hash_alg, const uint8_t *hmac_key, - size_t hmac_key_length ) + size_t hmac_key_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); - psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( hmac_key_length ) ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(hmac_key_length)); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); operation->is_sign = 1; - operation->mac_size = PSA_HASH_LENGTH( hash_alg ); + operation->mac_size = PSA_HASH_LENGTH(hash_alg); - status = psa_driver_wrapper_mac_sign_setup( operation, - &attributes, - hmac_key, hmac_key_length, - PSA_ALG_HMAC( hash_alg ) ); + status = psa_driver_wrapper_mac_sign_setup(operation, + &attributes, + hmac_key, hmac_key_length, + PSA_ALG_HMAC(hash_alg)); - psa_reset_key_attributes( &attributes ); - return( status ); + psa_reset_key_attributes(&attributes); + return status; } #endif /* KDF algorithms reliant on HMAC */ @@ -4263,197 +4242,194 @@ static psa_status_t psa_key_derivation_start_hmac( #define HKDF_STATE_OUTPUT 3 /* output started */ static psa_algorithm_t psa_key_derivation_get_kdf_alg( - const psa_key_derivation_operation_t *operation ) + const psa_key_derivation_operation_t *operation) { - if ( PSA_ALG_IS_KEY_AGREEMENT( operation->alg ) ) - return( PSA_ALG_KEY_AGREEMENT_GET_KDF( operation->alg ) ); - else - return( operation->alg ); + if (PSA_ALG_IS_KEY_AGREEMENT(operation->alg)) { + return PSA_ALG_KEY_AGREEMENT_GET_KDF(operation->alg); + } else { + return operation->alg; + } } -psa_status_t psa_key_derivation_abort( psa_key_derivation_operation_t *operation ) +psa_status_t psa_key_derivation_abort(psa_key_derivation_operation_t *operation) { psa_status_t status = PSA_SUCCESS; - psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg( operation ); - if( kdf_alg == 0 ) - { + psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); + if (kdf_alg == 0) { /* The object has (apparently) been initialized but it is not * in use. It's ok to call abort on such an object, and there's * nothing to do. */ - } - else + } else #if defined(BUILTIN_ALG_ANY_HKDF) - if( PSA_ALG_IS_ANY_HKDF( kdf_alg ) ) - { - mbedtls_free( operation->ctx.hkdf.info ); - status = psa_mac_abort( &operation->ctx.hkdf.hmac ); - } - else + if (PSA_ALG_IS_ANY_HKDF(kdf_alg)) { + mbedtls_free(operation->ctx.hkdf.info); + status = psa_mac_abort(&operation->ctx.hkdf.hmac); + } else #endif /* BUILTIN_ALG_ANY_HKDF */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || - /* TLS-1.2 PSK-to-MS KDF uses the same core as TLS-1.2 PRF */ - PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - { - if( operation->ctx.tls12_prf.secret != NULL ) - { - mbedtls_platform_zeroize( operation->ctx.tls12_prf.secret, - operation->ctx.tls12_prf.secret_length ); - mbedtls_free( operation->ctx.tls12_prf.secret ); + if (PSA_ALG_IS_TLS12_PRF(kdf_alg) || + /* TLS-1.2 PSK-to-MS KDF uses the same core as TLS-1.2 PRF */ + PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + if (operation->ctx.tls12_prf.secret != NULL) { + mbedtls_platform_zeroize(operation->ctx.tls12_prf.secret, + operation->ctx.tls12_prf.secret_length); + mbedtls_free(operation->ctx.tls12_prf.secret); } - if( operation->ctx.tls12_prf.seed != NULL ) - { - mbedtls_platform_zeroize( operation->ctx.tls12_prf.seed, - operation->ctx.tls12_prf.seed_length ); - mbedtls_free( operation->ctx.tls12_prf.seed ); + if (operation->ctx.tls12_prf.seed != NULL) { + mbedtls_platform_zeroize(operation->ctx.tls12_prf.seed, + operation->ctx.tls12_prf.seed_length); + mbedtls_free(operation->ctx.tls12_prf.seed); } - if( operation->ctx.tls12_prf.label != NULL ) - { - mbedtls_platform_zeroize( operation->ctx.tls12_prf.label, - operation->ctx.tls12_prf.label_length ); - mbedtls_free( operation->ctx.tls12_prf.label ); + if (operation->ctx.tls12_prf.label != NULL) { + mbedtls_platform_zeroize(operation->ctx.tls12_prf.label, + operation->ctx.tls12_prf.label_length); + mbedtls_free(operation->ctx.tls12_prf.label); } - if( operation->ctx.tls12_prf.other_secret != NULL ) - { - mbedtls_platform_zeroize( operation->ctx.tls12_prf.other_secret, - operation->ctx.tls12_prf.other_secret_length ); - mbedtls_free( operation->ctx.tls12_prf.other_secret ); + if (operation->ctx.tls12_prf.other_secret != NULL) { + mbedtls_platform_zeroize(operation->ctx.tls12_prf.other_secret, + operation->ctx.tls12_prf.other_secret_length); + mbedtls_free(operation->ctx.tls12_prf.other_secret); } status = PSA_SUCCESS; /* We leave the fields Ai and output_block to be erased safely by the * mbedtls_platform_zeroize() in the end of this function. */ - } - else + } else #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || * defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) - { - mbedtls_platform_zeroize( operation->ctx.tls12_ecjpake_to_pms.data, - sizeof( operation->ctx.tls12_ecjpake_to_pms.data ) ); - } - else + if (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) { + mbedtls_platform_zeroize(operation->ctx.tls12_ecjpake_to_pms.data, + sizeof(operation->ctx.tls12_ecjpake_to_pms.data)); + } else #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) */ { status = PSA_ERROR_BAD_STATE; } - mbedtls_platform_zeroize( operation, sizeof( *operation ) ); - return( status ); + mbedtls_platform_zeroize(operation, sizeof(*operation)); + return status; } psa_status_t psa_key_derivation_get_capacity(const psa_key_derivation_operation_t *operation, - size_t *capacity) + size_t *capacity) { - if( operation->alg == 0 ) - { + if (operation->alg == 0) { /* This is a blank key derivation operation. */ - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } *capacity = operation->capacity; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_key_derivation_set_capacity( psa_key_derivation_operation_t *operation, - size_t capacity ) +psa_status_t psa_key_derivation_set_capacity(psa_key_derivation_operation_t *operation, + size_t capacity) { - if( operation->alg == 0 ) - return( PSA_ERROR_BAD_STATE ); - if( capacity > operation->capacity ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (operation->alg == 0) { + return PSA_ERROR_BAD_STATE; + } + if (capacity > operation->capacity) { + return PSA_ERROR_INVALID_ARGUMENT; + } operation->capacity = capacity; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #if defined(BUILTIN_ALG_ANY_HKDF) /* Read some bytes from an HKDF-based operation. */ -static psa_status_t psa_key_derivation_hkdf_read( psa_hkdf_key_derivation_t *hkdf, - psa_algorithm_t kdf_alg, - uint8_t *output, - size_t output_length ) +static psa_status_t psa_key_derivation_hkdf_read(psa_hkdf_key_derivation_t *hkdf, + psa_algorithm_t kdf_alg, + uint8_t *output, + size_t output_length) { - psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); - uint8_t hash_length = PSA_HASH_LENGTH( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH(kdf_alg); + uint8_t hash_length = PSA_HASH_LENGTH(hash_alg); size_t hmac_output_length; psa_status_t status; #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - const uint8_t last_block = PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ? 0 : 0xff; + const uint8_t last_block = PSA_ALG_IS_HKDF_EXTRACT(kdf_alg) ? 0 : 0xff; #else const uint8_t last_block = 0xff; #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ - if( hkdf->state < HKDF_STATE_KEYED || - ( !hkdf->info_set + if (hkdf->state < HKDF_STATE_KEYED || + (!hkdf->info_set #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - && !PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) + && !PSA_ALG_IS_HKDF_EXTRACT(kdf_alg) #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ - ) ) - return( PSA_ERROR_BAD_STATE ); + )) { + return PSA_ERROR_BAD_STATE; + } hkdf->state = HKDF_STATE_OUTPUT; - while( output_length != 0 ) - { + while (output_length != 0) { /* Copy what remains of the current block */ uint8_t n = hash_length - hkdf->offset_in_block; - if( n > output_length ) + if (n > output_length) { n = (uint8_t) output_length; - memcpy( output, hkdf->output_block + hkdf->offset_in_block, n ); + } + memcpy(output, hkdf->output_block + hkdf->offset_in_block, n); output += n; output_length -= n; hkdf->offset_in_block += n; - if( output_length == 0 ) + if (output_length == 0) { break; + } /* We can't be wanting more output after the last block, otherwise * the capacity check in psa_key_derivation_output_bytes() would have * prevented this call. It could happen only if the operation * object was corrupted or if this function is called directly * inside the library. */ - if( hkdf->block_number == last_block ) - return( PSA_ERROR_BAD_STATE ); + if (hkdf->block_number == last_block) { + return PSA_ERROR_BAD_STATE; + } /* We need a new block */ ++hkdf->block_number; hkdf->offset_in_block = 0; - status = psa_key_derivation_start_hmac( &hkdf->hmac, - hash_alg, - hkdf->prk, - hash_length ); - if( status != PSA_SUCCESS ) - return( status ); - - if( hkdf->block_number != 1 ) - { - status = psa_mac_update( &hkdf->hmac, - hkdf->output_block, - hash_length ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_key_derivation_start_hmac(&hkdf->hmac, + hash_alg, + hkdf->prk, + hash_length); + if (status != PSA_SUCCESS) { + return status; + } + + if (hkdf->block_number != 1) { + status = psa_mac_update(&hkdf->hmac, + hkdf->output_block, + hash_length); + if (status != PSA_SUCCESS) { + return status; + } + } + status = psa_mac_update(&hkdf->hmac, + hkdf->info, + hkdf->info_length); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_mac_update(&hkdf->hmac, + &hkdf->block_number, 1); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_mac_sign_finish(&hkdf->hmac, + hkdf->output_block, + sizeof(hkdf->output_block), + &hmac_output_length); + if (status != PSA_SUCCESS) { + return status; } - status = psa_mac_update( &hkdf->hmac, - hkdf->info, - hkdf->info_length ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_mac_update( &hkdf->hmac, - &hkdf->block_number, 1 ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_mac_sign_finish( &hkdf->hmac, - hkdf->output_block, - sizeof( hkdf->output_block ), - &hmac_output_length ); - if( status != PSA_SUCCESS ) - return( status ); } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* BUILTIN_ALG_ANY_HKDF */ @@ -4461,10 +4437,10 @@ static psa_status_t psa_key_derivation_hkdf_read( psa_hkdf_key_derivation_t *hkd defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) static psa_status_t psa_key_derivation_tls12_prf_generate_next_block( psa_tls12_prf_key_derivation_t *tls12_prf, - psa_algorithm_t alg ) + psa_algorithm_t alg) { - psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( alg ); - uint8_t hash_length = PSA_HASH_LENGTH( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH(alg); + uint8_t hash_length = PSA_HASH_LENGTH(hash_alg); psa_mac_operation_t hmac = PSA_MAC_OPERATION_INIT; size_t hmac_output_length; psa_status_t status, cleanup_status; @@ -4474,8 +4450,9 @@ static psa_status_t psa_key_derivation_tls12_prf_generate_next_block( * prevented this call. It could happen only if the operation * object was corrupted or if this function is called directly * inside the library. */ - if( tls12_prf->block_number == 0xff ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (tls12_prf->block_number == 0xff) { + return PSA_ERROR_CORRUPTION_DETECTED; + } /* We need a new block */ ++tls12_prf->block_number; @@ -4498,125 +4475,133 @@ static psa_status_t psa_key_derivation_tls12_prf_generate_next_block( * `block_number`. */ - status = psa_key_derivation_start_hmac( &hmac, - hash_alg, - tls12_prf->secret, - tls12_prf->secret_length ); - if( status != PSA_SUCCESS ) + status = psa_key_derivation_start_hmac(&hmac, + hash_alg, + tls12_prf->secret, + tls12_prf->secret_length); + if (status != PSA_SUCCESS) { goto cleanup; + } /* Calculate A(i) where i = tls12_prf->block_number. */ - if( tls12_prf->block_number == 1 ) - { + if (tls12_prf->block_number == 1) { /* A(1) = HMAC_hash(secret, A(0)), where A(0) = seed. (The RFC overloads * the variable seed and in this instance means it in the context of the * P_hash function, where seed = label + seed.) */ - status = psa_mac_update( &hmac, - tls12_prf->label, - tls12_prf->label_length ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&hmac, + tls12_prf->label, + tls12_prf->label_length); + if (status != PSA_SUCCESS) { goto cleanup; - status = psa_mac_update( &hmac, - tls12_prf->seed, - tls12_prf->seed_length ); - if( status != PSA_SUCCESS ) + } + status = psa_mac_update(&hmac, + tls12_prf->seed, + tls12_prf->seed_length); + if (status != PSA_SUCCESS) { goto cleanup; - } - else - { + } + } else { /* A(i) = HMAC_hash(secret, A(i-1)) */ - status = psa_mac_update( &hmac, tls12_prf->Ai, hash_length ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&hmac, tls12_prf->Ai, hash_length); + if (status != PSA_SUCCESS) { goto cleanup; + } } - status = psa_mac_sign_finish( &hmac, - tls12_prf->Ai, hash_length, - &hmac_output_length ); - if( hmac_output_length != hash_length ) + status = psa_mac_sign_finish(&hmac, + tls12_prf->Ai, hash_length, + &hmac_output_length); + if (hmac_output_length != hash_length) { status = PSA_ERROR_CORRUPTION_DETECTED; - if( status != PSA_SUCCESS ) + } + if (status != PSA_SUCCESS) { goto cleanup; + } /* Calculate HMAC_hash(secret, A(i) + label + seed). */ - status = psa_key_derivation_start_hmac( &hmac, - hash_alg, - tls12_prf->secret, - tls12_prf->secret_length ); - if( status != PSA_SUCCESS ) + status = psa_key_derivation_start_hmac(&hmac, + hash_alg, + tls12_prf->secret, + tls12_prf->secret_length); + if (status != PSA_SUCCESS) { goto cleanup; - status = psa_mac_update( &hmac, tls12_prf->Ai, hash_length ); - if( status != PSA_SUCCESS ) + } + status = psa_mac_update(&hmac, tls12_prf->Ai, hash_length); + if (status != PSA_SUCCESS) { goto cleanup; - status = psa_mac_update( &hmac, tls12_prf->label, tls12_prf->label_length ); - if( status != PSA_SUCCESS ) + } + status = psa_mac_update(&hmac, tls12_prf->label, tls12_prf->label_length); + if (status != PSA_SUCCESS) { goto cleanup; - status = psa_mac_update( &hmac, tls12_prf->seed, tls12_prf->seed_length ); - if( status != PSA_SUCCESS ) + } + status = psa_mac_update(&hmac, tls12_prf->seed, tls12_prf->seed_length); + if (status != PSA_SUCCESS) { goto cleanup; - status = psa_mac_sign_finish( &hmac, - tls12_prf->output_block, hash_length, - &hmac_output_length ); - if( status != PSA_SUCCESS ) + } + status = psa_mac_sign_finish(&hmac, + tls12_prf->output_block, hash_length, + &hmac_output_length); + if (status != PSA_SUCCESS) { goto cleanup; + } cleanup: - cleanup_status = psa_mac_abort( &hmac ); - if( status == PSA_SUCCESS && cleanup_status != PSA_SUCCESS ) + cleanup_status = psa_mac_abort(&hmac); + if (status == PSA_SUCCESS && cleanup_status != PSA_SUCCESS) { status = cleanup_status; + } - return( status ); + return status; } static psa_status_t psa_key_derivation_tls12_prf_read( psa_tls12_prf_key_derivation_t *tls12_prf, psa_algorithm_t alg, uint8_t *output, - size_t output_length ) + size_t output_length) { - psa_algorithm_t hash_alg = PSA_ALG_TLS12_PRF_GET_HASH( alg ); - uint8_t hash_length = PSA_HASH_LENGTH( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_TLS12_PRF_GET_HASH(alg); + uint8_t hash_length = PSA_HASH_LENGTH(hash_alg); psa_status_t status; uint8_t offset, length; - switch( tls12_prf->state ) - { + switch (tls12_prf->state) { case PSA_TLS12_PRF_STATE_LABEL_SET: tls12_prf->state = PSA_TLS12_PRF_STATE_OUTPUT; break; case PSA_TLS12_PRF_STATE_OUTPUT: break; default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } - while( output_length != 0 ) - { + while (output_length != 0) { /* Check if we have fully processed the current block. */ - if( tls12_prf->left_in_block == 0 ) - { - status = psa_key_derivation_tls12_prf_generate_next_block( tls12_prf, - alg ); - if( status != PSA_SUCCESS ) - return( status ); + if (tls12_prf->left_in_block == 0) { + status = psa_key_derivation_tls12_prf_generate_next_block(tls12_prf, + alg); + if (status != PSA_SUCCESS) { + return status; + } continue; } - if( tls12_prf->left_in_block > output_length ) + if (tls12_prf->left_in_block > output_length) { length = (uint8_t) output_length; - else + } else { length = tls12_prf->left_in_block; + } offset = hash_length - tls12_prf->left_in_block; - memcpy( output, tls12_prf->output_block + offset, length ); + memcpy(output, tls12_prf->output_block + offset, length); output += length; output_length -= length; tls12_prf->left_in_block -= length; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ @@ -4625,151 +4610,147 @@ static psa_status_t psa_key_derivation_tls12_prf_read( static psa_status_t psa_key_derivation_tls12_ecjpake_to_pms_read( psa_tls12_ecjpake_to_pms_t *ecjpake, uint8_t *output, - size_t output_length ) + size_t output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t output_size = 0; - if( output_length != 32 ) - return ( PSA_ERROR_INVALID_ARGUMENT ); + if (output_length != 32) { + return PSA_ERROR_INVALID_ARGUMENT; + } - status = psa_hash_compute( PSA_ALG_SHA_256, ecjpake->data, - PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE, output, output_length, - &output_size ); - if( status != PSA_SUCCESS ) - return ( status ); + status = psa_hash_compute(PSA_ALG_SHA_256, ecjpake->data, + PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE, output, output_length, + &output_size); + if (status != PSA_SUCCESS) { + return status; + } - if( output_size != output_length ) - return ( PSA_ERROR_GENERIC_ERROR ); + if (output_size != output_length) { + return PSA_ERROR_GENERIC_ERROR; + } - return ( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif psa_status_t psa_key_derivation_output_bytes( psa_key_derivation_operation_t *operation, uint8_t *output, - size_t output_length ) + size_t output_length) { psa_status_t status; - psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg( operation ); + psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); - if( operation->alg == 0 ) - { + if (operation->alg == 0) { /* This is a blank operation. */ - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } - if( output_length > operation->capacity ) - { + if (output_length > operation->capacity) { operation->capacity = 0; /* Go through the error path to wipe all confidential data now * that the operation object is useless. */ status = PSA_ERROR_INSUFFICIENT_DATA; goto exit; } - if( output_length == 0 && operation->capacity == 0 ) - { + if (output_length == 0 && operation->capacity == 0) { /* Edge case: this is a finished operation, and 0 bytes * were requested. The right error in this case could * be either INSUFFICIENT_CAPACITY or BAD_STATE. Return * INSUFFICIENT_CAPACITY, which is right for a finished * operation, for consistency with the case when * output_length > 0. */ - return( PSA_ERROR_INSUFFICIENT_DATA ); + return PSA_ERROR_INSUFFICIENT_DATA; } operation->capacity -= output_length; #if defined(BUILTIN_ALG_ANY_HKDF) - if( PSA_ALG_IS_ANY_HKDF( kdf_alg ) ) - { - status = psa_key_derivation_hkdf_read( &operation->ctx.hkdf, kdf_alg, - output, output_length ); - } - else + if (PSA_ALG_IS_ANY_HKDF(kdf_alg)) { + status = psa_key_derivation_hkdf_read(&operation->ctx.hkdf, kdf_alg, + output, output_length); + } else #endif /* BUILTIN_ALG_ANY_HKDF */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - { - status = psa_key_derivation_tls12_prf_read( &operation->ctx.tls12_prf, - kdf_alg, output, - output_length ); - } - else + if (PSA_ALG_IS_TLS12_PRF(kdf_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + status = psa_key_derivation_tls12_prf_read(&operation->ctx.tls12_prf, + kdf_alg, output, + output_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF || * MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) - { + if (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) { status = psa_key_derivation_tls12_ecjpake_to_pms_read( - &operation->ctx.tls12_ecjpake_to_pms, output, output_length ); - } - else + &operation->ctx.tls12_ecjpake_to_pms, output, output_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ { (void) kdf_alg; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } exit: - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { /* Preserve the algorithm upon errors, but clear all sensitive state. * This allows us to differentiate between exhausted operations and * blank operations, so we can return PSA_ERROR_BAD_STATE on blank * operations. */ psa_algorithm_t alg = operation->alg; - psa_key_derivation_abort( operation ); + psa_key_derivation_abort(operation); operation->alg = alg; - memset( output, '!', output_length ); + memset(output, '!', output_length); } - return( status ); + return status; } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) -static void psa_des_set_key_parity( uint8_t *data, size_t data_size ) +static void psa_des_set_key_parity(uint8_t *data, size_t data_size) { - if( data_size >= 8 ) - mbedtls_des_key_set_parity( data ); - if( data_size >= 16 ) - mbedtls_des_key_set_parity( data + 8 ); - if( data_size >= 24 ) - mbedtls_des_key_set_parity( data + 16 ); + if (data_size >= 8) { + mbedtls_des_key_set_parity(data); + } + if (data_size >= 16) { + mbedtls_des_key_set_parity(data + 8); + } + if (data_size >= 24) { + mbedtls_des_key_set_parity(data + 16); + } } #endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */ /* -* ECC keys on a Weierstrass elliptic curve require the generation -* of a private key which is an integer -* in the range [1, N - 1], where N is the boundary of the private key domain: -* N is the prime p for Diffie-Hellman, or the order of the -* curve’s base point for ECC. -* -* Let m be the bit size of N, such that 2^m > N >= 2^(m-1). -* This function generates the private key using the following process: -* -* 1. Draw a byte string of length ceiling(m/8) bytes. -* 2. If m is not a multiple of 8, set the most significant -* (8 * ceiling(m/8) - m) bits of the first byte in the string to zero. -* 3. Convert the string to integer k by decoding it as a big-endian byte string. -* 4. If k > N - 2, discard the result and return to step 1. -* 5. Output k + 1 as the private key. -* -* This method allows compliance to NIST standards, specifically the methods titled -* Key-Pair Generation by Testing Candidates in the following publications: -* - NIST Special Publication 800-56A: Recommendation for Pair-Wise Key-Establishment -* Schemes Using Discrete Logarithm Cryptography [SP800-56A] §5.6.1.1.4 for -* Diffie-Hellman keys. -* -* - [SP800-56A] §5.6.1.2.2 or FIPS Publication 186-4: Digital Signature -* Standard (DSS) [FIPS186-4] §B.4.2 for elliptic curve keys. -* -* Note: Function allocates memory for *data buffer, so given *data should be -* always NULL. -*/ + * ECC keys on a Weierstrass elliptic curve require the generation + * of a private key which is an integer + * in the range [1, N - 1], where N is the boundary of the private key domain: + * N is the prime p for Diffie-Hellman, or the order of the + * curve’s base point for ECC. + * + * Let m be the bit size of N, such that 2^m > N >= 2^(m-1). + * This function generates the private key using the following process: + * + * 1. Draw a byte string of length ceiling(m/8) bytes. + * 2. If m is not a multiple of 8, set the most significant + * (8 * ceiling(m/8) - m) bits of the first byte in the string to zero. + * 3. Convert the string to integer k by decoding it as a big-endian byte string. + * 4. If k > N - 2, discard the result and return to step 1. + * 5. Output k + 1 as the private key. + * + * This method allows compliance to NIST standards, specifically the methods titled + * Key-Pair Generation by Testing Candidates in the following publications: + * - NIST Special Publication 800-56A: Recommendation for Pair-Wise Key-Establishment + * Schemes Using Discrete Logarithm Cryptography [SP800-56A] §5.6.1.1.4 for + * Diffie-Hellman keys. + * + * - [SP800-56A] §5.6.1.2.2 or FIPS Publication 186-4: Digital Signature + * Standard (DSS) [FIPS186-4] §B.4.2 for elliptic curve keys. + * + * Note: Function allocates memory for *data buffer, so given *data should be + * always NULL. + */ #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ @@ -4788,85 +4769,83 @@ static psa_status_t psa_generate_derived_ecc_key_weierstrass_helper( int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - mbedtls_mpi_init( &k ); - mbedtls_mpi_init( &diff_N_2 ); + mbedtls_mpi_init(&k); + mbedtls_mpi_init(&diff_N_2); psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY( - slot->attr.type ); + slot->attr.type); mbedtls_ecp_group_id grp_id = - mbedtls_ecc_group_of_psa( curve, bits, 0 ); + mbedtls_ecc_group_of_psa(curve, bits, 0); - if( grp_id == MBEDTLS_ECP_DP_NONE ) - { + if (grp_id == MBEDTLS_ECP_DP_NONE) { ret = MBEDTLS_ERR_ASN1_INVALID_DATA; goto cleanup; } mbedtls_ecp_group ecp_group; - mbedtls_ecp_group_init( &ecp_group ); + mbedtls_ecp_group_init(&ecp_group); - MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &ecp_group, grp_id ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_group_load(&ecp_group, grp_id)); /* N is the boundary of the private key domain (ecp_group.N). */ /* Let m be the bit size of N. */ size_t m = ecp_group.nbits; - size_t m_bytes = PSA_BITS_TO_BYTES( m ); + size_t m_bytes = PSA_BITS_TO_BYTES(m); /* Calculate N - 2 - it will be needed later. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &diff_N_2, &ecp_group.N, 2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&diff_N_2, &ecp_group.N, 2)); /* Note: This function is always called with *data == NULL and it * allocates memory for the data buffer. */ - *data = mbedtls_calloc( 1, m_bytes ); - if( *data == NULL ) - { + *data = mbedtls_calloc(1, m_bytes); + if (*data == NULL) { ret = MBEDTLS_ERR_ASN1_ALLOC_FAILED; goto cleanup; } - while( key_out_of_range ) - { + while (key_out_of_range) { /* 1. Draw a byte string of length ceiling(m/8) bytes. */ - if( ( status = psa_key_derivation_output_bytes( operation, *data, m_bytes ) ) != 0 ) + if ((status = psa_key_derivation_output_bytes(operation, *data, m_bytes)) != 0) { goto cleanup; + } /* 2. If m is not a multiple of 8 */ - if( m % 8 != 0 ) - { + if (m % 8 != 0) { /* Set the most significant * (8 * ceiling(m/8) - m) bits of the first byte in * the string to zero. */ - uint8_t clear_bit_mask = ( 1 << ( m % 8 ) ) - 1; + uint8_t clear_bit_mask = (1 << (m % 8)) - 1; (*data)[0] &= clear_bit_mask; } /* 3. Convert the string to integer k by decoding it as a - * big-endian byte string. - */ - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &k, *data, m_bytes ) ); + * big-endian byte string. + */ + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&k, *data, m_bytes)); /* 4. If k > N - 2, discard the result and return to step 1. - * Result of comparison is returned. When it indicates error - * then this function is called again. - */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lt_mpi_ct( &diff_N_2, &k, &key_out_of_range ) ); + * Result of comparison is returned. When it indicates error + * then this function is called again. + */ + MBEDTLS_MPI_CHK(mbedtls_mpi_lt_mpi_ct(&diff_N_2, &k, &key_out_of_range)); } /* 5. Output k + 1 as the private key. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &k, &k, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &k, *data, m_bytes ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&k, &k, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&k, *data, m_bytes)); cleanup: - if( ret != 0 ) - status = mbedtls_to_psa_error( ret ); - if( status != PSA_SUCCESS ) { - mbedtls_free( *data ); + if (ret != 0) { + status = mbedtls_to_psa_error(ret); + } + if (status != PSA_SUCCESS) { + mbedtls_free(*data); *data = NULL; } - mbedtls_mpi_free( &k ); - mbedtls_mpi_free( &diff_N_2 ); - return( status ); + mbedtls_mpi_free(&k); + mbedtls_mpi_free(&diff_N_2); + return status; } /* ECC keys on a Montgomery elliptic curve draws a byte string whose length @@ -4892,8 +4871,7 @@ static psa_status_t psa_generate_derived_ecc_key_montgomery_helper( size_t output_length; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - switch( bits ) - { + switch (bits) { case 255: output_length = 32; break; @@ -4901,22 +4879,23 @@ static psa_status_t psa_generate_derived_ecc_key_montgomery_helper( output_length = 56; break; default: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; break; } - *data = mbedtls_calloc( 1, output_length ); + *data = mbedtls_calloc(1, output_length); - if( *data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (*data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - status = psa_key_derivation_output_bytes( operation, *data, output_length ); + status = psa_key_derivation_output_bytes(operation, *data, output_length); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return status; + } - switch( bits ) - { + switch (bits) { case 255: (*data)[0] &= 248; (*data)[31] &= 127; @@ -4927,7 +4906,7 @@ static psa_status_t psa_generate_derived_ecc_key_montgomery_helper( (*data)[55] |= 128; break; default: - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; break; } @@ -4942,37 +4921,36 @@ static psa_status_t psa_generate_derived_ecc_key_montgomery_helper( static psa_status_t psa_generate_derived_key_internal( psa_key_slot_t *slot, size_t bits, - psa_key_derivation_operation_t *operation ) + psa_key_derivation_operation_t *operation) { uint8_t *data = NULL; - size_t bytes = PSA_BITS_TO_BYTES( bits ); + size_t bytes = PSA_BITS_TO_BYTES(bits); size_t storage_size = bytes; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->attr.type ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(slot->attr.type)) { + return PSA_ERROR_INVALID_ARGUMENT; + } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) - if( PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) - { - psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY( slot->attr.type ); - if( PSA_ECC_FAMILY_IS_WEIERSTRASS( curve ) ) - { + if (PSA_KEY_TYPE_IS_ECC(slot->attr.type)) { + psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY(slot->attr.type); + if (PSA_ECC_FAMILY_IS_WEIERSTRASS(curve)) { /* Weierstrass elliptic curve */ - status = psa_generate_derived_ecc_key_weierstrass_helper( slot, bits, operation, &data ); - if( status != PSA_SUCCESS ) + status = psa_generate_derived_ecc_key_weierstrass_helper(slot, bits, operation, &data); + if (status != PSA_SUCCESS) { goto exit; - } - else - { + } + } else { /* Montgomery elliptic curve */ - status = psa_generate_derived_ecc_key_montgomery_helper( bits, operation, &data ); - if( status != PSA_SUCCESS ) + status = psa_generate_derived_ecc_key_montgomery_helper(bits, operation, &data); + if (status != PSA_SUCCESS) { goto exit; + } } } else #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || @@ -4980,57 +4958,62 @@ static psa_status_t psa_generate_derived_key_internal( defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) || defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) */ - if( key_type_is_raw_bytes( slot->attr.type ) ) - { - if( bits % 8 != 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - data = mbedtls_calloc( 1, bytes ); - if( data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (key_type_is_raw_bytes(slot->attr.type)) { + if (bits % 8 != 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } + data = mbedtls_calloc(1, bytes); + if (data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - status = psa_key_derivation_output_bytes( operation, data, bytes ); - if( status != PSA_SUCCESS ) + status = psa_key_derivation_output_bytes(operation, data, bytes); + if (status != PSA_SUCCESS) { goto exit; + } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) - if( slot->attr.type == PSA_KEY_TYPE_DES ) - psa_des_set_key_parity( data, bytes ); + if (slot->attr.type == PSA_KEY_TYPE_DES) { + psa_des_set_key_parity(data, bytes); + } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) */ + } else { + return PSA_ERROR_NOT_SUPPORTED; } - else - return( PSA_ERROR_NOT_SUPPORTED ); slot->attr.bits = (psa_key_bits_t) bits; psa_key_attributes_t attributes = { - .core = slot->attr + .core = slot->attr }; - if( psa_key_lifetime_is_external( attributes.core.lifetime ) ) - { - status = psa_driver_wrapper_get_key_buffer_size( &attributes, - &storage_size ); - if( status != PSA_SUCCESS ) + if (psa_key_lifetime_is_external(attributes.core.lifetime)) { + status = psa_driver_wrapper_get_key_buffer_size(&attributes, + &storage_size); + if (status != PSA_SUCCESS) { goto exit; + } } - status = psa_allocate_buffer_to_slot( slot, storage_size ); - if( status != PSA_SUCCESS ) + status = psa_allocate_buffer_to_slot(slot, storage_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_driver_wrapper_import_key( &attributes, - data, bytes, - slot->key.data, - slot->key.bytes, - &slot->key.bytes, &bits ); - if( bits != slot->attr.bits ) + status = psa_driver_wrapper_import_key(&attributes, + data, bytes, + slot->key.data, + slot->key.bytes, + &slot->key.bytes, &bits); + if (bits != slot->attr.bits) { status = PSA_ERROR_INVALID_ARGUMENT; + } exit: - mbedtls_free( data ); - return( status ); + mbedtls_free(data); + return status; } -psa_status_t psa_key_derivation_output_key( const psa_key_attributes_t *attributes, - psa_key_derivation_operation_t *operation, - mbedtls_svc_key_id_t *key ) +psa_status_t psa_key_derivation_output_key(const psa_key_attributes_t *attributes, + psa_key_derivation_operation_t *operation, + mbedtls_svc_key_id_t *key) { psa_status_t status; psa_key_slot_t *slot = NULL; @@ -5040,36 +5023,39 @@ psa_status_t psa_key_derivation_output_key( const psa_key_attributes_t *attribut /* Reject any attempt to create a zero-length key so that we don't * risk tripping up later, e.g. on a malloc(0) that returns NULL. */ - if( psa_get_key_bits( attributes ) == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (psa_get_key_bits(attributes) == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } - if( operation->alg == PSA_ALG_NONE ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == PSA_ALG_NONE) { + return PSA_ERROR_BAD_STATE; + } - if( ! operation->can_output_key ) - return( PSA_ERROR_NOT_PERMITTED ); + if (!operation->can_output_key) { + return PSA_ERROR_NOT_PERMITTED; + } - status = psa_start_key_creation( PSA_KEY_CREATION_DERIVE, attributes, - &slot, &driver ); + status = psa_start_key_creation(PSA_KEY_CREATION_DERIVE, attributes, + &slot, &driver); #if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( driver != NULL ) - { + if (driver != NULL) { /* Deriving a key in a secure element is not implemented yet. */ status = PSA_ERROR_NOT_SUPPORTED; } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - if( status == PSA_SUCCESS ) - { - status = psa_generate_derived_key_internal( slot, - attributes->core.bits, - operation ); + if (status == PSA_SUCCESS) { + status = psa_generate_derived_key_internal(slot, + attributes->core.bits, + operation); + } + if (status == PSA_SUCCESS) { + status = psa_finish_key_creation(slot, driver, key); + } + if (status != PSA_SUCCESS) { + psa_fail_key_creation(slot, driver); } - if( status == PSA_SUCCESS ) - status = psa_finish_key_creation( slot, driver, key ); - if( status != PSA_SUCCESS ) - psa_fail_key_creation( slot, driver ); - return( status ); + return status; } @@ -5079,353 +5065,367 @@ psa_status_t psa_key_derivation_output_key( const psa_key_attributes_t *attribut /****************************************************************/ #if defined(AT_LEAST_ONE_BUILTIN_KDF) -static int is_kdf_alg_supported( psa_algorithm_t kdf_alg ) +static int is_kdf_alg_supported(psa_algorithm_t kdf_alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF) - if( PSA_ALG_IS_HKDF( kdf_alg ) ) - return( 1 ); + if (PSA_ALG_IS_HKDF(kdf_alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) - return( 1 ); + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) - if( PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) ) - return( 1 ); + if (PSA_ALG_IS_HKDF_EXPAND(kdf_alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) ) - return( 1 ); + if (PSA_ALG_IS_TLS12_PRF(kdf_alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) - if( PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - return( 1 ); + if (PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) - return( 1 ); + if (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) { + return 1; + } #endif - return( 0 ); + return 0; } -static psa_status_t psa_hash_try_support( psa_algorithm_t alg ) +static psa_status_t psa_hash_try_support(psa_algorithm_t alg) { psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - psa_status_t status = psa_hash_setup( &operation, alg ); - psa_hash_abort( &operation ); - return( status ); + psa_status_t status = psa_hash_setup(&operation, alg); + psa_hash_abort(&operation); + return status; } static psa_status_t psa_key_derivation_setup_kdf( psa_key_derivation_operation_t *operation, - psa_algorithm_t kdf_alg ) + psa_algorithm_t kdf_alg) { /* Make sure that operation->ctx is properly zero-initialised. (Macro * initialisers for this union leave some bytes unspecified.) */ - memset( &operation->ctx, 0, sizeof( operation->ctx ) ); + memset(&operation->ctx, 0, sizeof(operation->ctx)); /* Make sure that kdf_alg is a supported key derivation algorithm. */ - if( ! is_kdf_alg_supported( kdf_alg ) ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (!is_kdf_alg_supported(kdf_alg)) { + return PSA_ERROR_NOT_SUPPORTED; + } /* All currently supported key derivation algorithms (apart from * ecjpake to pms) are based on a hash algorithm. */ - psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); - size_t hash_size = PSA_HASH_LENGTH( hash_alg ); - if( kdf_alg != PSA_ALG_TLS12_ECJPAKE_TO_PMS ) - { - if( hash_size == 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); + psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH(kdf_alg); + size_t hash_size = PSA_HASH_LENGTH(hash_alg); + if (kdf_alg != PSA_ALG_TLS12_ECJPAKE_TO_PMS) { + if (hash_size == 0) { + return PSA_ERROR_NOT_SUPPORTED; + } /* Make sure that hash_alg is a supported hash algorithm. Otherwise * we might fail later, which is somewhat unfriendly and potentially * risk-prone. */ - psa_status_t status = psa_hash_try_support( hash_alg ); - if( status != PSA_SUCCESS ) - return( status ); - } - else - { - hash_size = PSA_HASH_LENGTH( PSA_ALG_SHA_256 ); + psa_status_t status = psa_hash_try_support(hash_alg); + if (status != PSA_SUCCESS) { + return status; + } + } else { + hash_size = PSA_HASH_LENGTH(PSA_ALG_SHA_256); } - if( ( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) && - ! ( hash_alg == PSA_ALG_SHA_256 || hash_alg == PSA_ALG_SHA_384 ) ) - { - return( PSA_ERROR_NOT_SUPPORTED ); + if ((PSA_ALG_IS_TLS12_PRF(kdf_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) && + !(hash_alg == PSA_ALG_SHA_256 || hash_alg == PSA_ALG_SHA_384)) { + return PSA_ERROR_NOT_SUPPORTED; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) || - ( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) ) + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg) || + (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS)) { operation->capacity = hash_size; - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT || MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ - operation->capacity = 255 * hash_size; - return( PSA_SUCCESS ); + operation->capacity = 255 * hash_size; + return PSA_SUCCESS; } -static psa_status_t psa_key_agreement_try_support( psa_algorithm_t alg ) +static psa_status_t psa_key_agreement_try_support(psa_algorithm_t alg) { #if defined(PSA_WANT_ALG_ECDH) - if( alg == PSA_ALG_ECDH ) - return( PSA_SUCCESS ); + if (alg == PSA_ALG_ECDH) { + return PSA_SUCCESS; + } #endif (void) alg; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } #endif /* AT_LEAST_ONE_BUILTIN_KDF */ -psa_status_t psa_key_derivation_setup( psa_key_derivation_operation_t *operation, - psa_algorithm_t alg ) +psa_status_t psa_key_derivation_setup(psa_key_derivation_operation_t *operation, + psa_algorithm_t alg) { psa_status_t status; - if( operation->alg != 0 ) - return( PSA_ERROR_BAD_STATE ); - - if( PSA_ALG_IS_RAW_KEY_AGREEMENT( alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - else if( PSA_ALG_IS_KEY_AGREEMENT( alg ) ) - { -#if defined(AT_LEAST_ONE_BUILTIN_KDF) - psa_algorithm_t kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF( alg ); - psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE( alg ); - status = psa_key_agreement_try_support( ka_alg ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_key_derivation_setup_kdf( operation, kdf_alg ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); -#endif /* AT_LEAST_ONE_BUILTIN_KDF */ + if (operation->alg != 0) { + return PSA_ERROR_BAD_STATE; } - else if( PSA_ALG_IS_KEY_DERIVATION( alg ) ) - { -#if defined(AT_LEAST_ONE_BUILTIN_KDF) - status = psa_key_derivation_setup_kdf( operation, alg ); -#else - return( PSA_ERROR_NOT_SUPPORTED ); -#endif /* AT_LEAST_ONE_BUILTIN_KDF */ - } - else - return( PSA_ERROR_INVALID_ARGUMENT ); - if( status == PSA_SUCCESS ) + if (PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } else if (PSA_ALG_IS_KEY_AGREEMENT(alg)) { +#if defined(AT_LEAST_ONE_BUILTIN_KDF) + psa_algorithm_t kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg); + psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE(alg); + status = psa_key_agreement_try_support(ka_alg); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_key_derivation_setup_kdf(operation, kdf_alg); +#else + return PSA_ERROR_NOT_SUPPORTED; +#endif /* AT_LEAST_ONE_BUILTIN_KDF */ + } else if (PSA_ALG_IS_KEY_DERIVATION(alg)) { +#if defined(AT_LEAST_ONE_BUILTIN_KDF) + status = psa_key_derivation_setup_kdf(operation, alg); +#else + return PSA_ERROR_NOT_SUPPORTED; +#endif /* AT_LEAST_ONE_BUILTIN_KDF */ + } else { + return PSA_ERROR_INVALID_ARGUMENT; + } + + if (status == PSA_SUCCESS) { operation->alg = alg; - return( status ); + } + return status; } #if defined(BUILTIN_ALG_ANY_HKDF) -static psa_status_t psa_hkdf_input( psa_hkdf_key_derivation_t *hkdf, - psa_algorithm_t kdf_alg, - psa_key_derivation_step_t step, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_hkdf_input(psa_hkdf_key_derivation_t *hkdf, + psa_algorithm_t kdf_alg, + psa_key_derivation_step_t step, + const uint8_t *data, + size_t data_length) { - psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); + psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH(kdf_alg); psa_status_t status; - switch( step ) - { + switch (step) { case PSA_KEY_DERIVATION_INPUT_SALT: #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) - if( PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_ALG_IS_HKDF_EXPAND(kdf_alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND */ - if( hkdf->state != HKDF_STATE_INIT ) - return( PSA_ERROR_BAD_STATE ); - else - { - status = psa_key_derivation_start_hmac( &hkdf->hmac, - hash_alg, - data, data_length ); - if( status != PSA_SUCCESS ) - return( status ); + if (hkdf->state != HKDF_STATE_INIT) { + return PSA_ERROR_BAD_STATE; + } else { + status = psa_key_derivation_start_hmac(&hkdf->hmac, + hash_alg, + data, data_length); + if (status != PSA_SUCCESS) { + return status; + } hkdf->state = HKDF_STATE_STARTED; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } case PSA_KEY_DERIVATION_INPUT_SECRET: #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) - if( PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) ) - { + if (PSA_ALG_IS_HKDF_EXPAND(kdf_alg)) { /* We shouldn't be in different state as HKDF_EXPAND only allows * two inputs: SECRET (this case) and INFO which does not modify * the state. It could happen only if the hkdf * object was corrupted. */ - if( hkdf->state != HKDF_STATE_INIT ) - return( PSA_ERROR_BAD_STATE ); + if (hkdf->state != HKDF_STATE_INIT) { + return PSA_ERROR_BAD_STATE; + } /* Allow only input that fits expected prk size */ - if( data_length != PSA_HASH_LENGTH( hash_alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (data_length != PSA_HASH_LENGTH(hash_alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - memcpy( hkdf->prk, data, data_length ); - } - else + memcpy(hkdf->prk, data, data_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND */ { /* HKDF: If no salt was provided, use an empty salt. * HKDF-EXTRACT: salt is mandatory. */ - if( hkdf->state == HKDF_STATE_INIT ) - { + if (hkdf->state == HKDF_STATE_INIT) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) - return( PSA_ERROR_BAD_STATE ); + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg)) { + return PSA_ERROR_BAD_STATE; + } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ - status = psa_key_derivation_start_hmac( &hkdf->hmac, - hash_alg, - NULL, 0 ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_key_derivation_start_hmac(&hkdf->hmac, + hash_alg, + NULL, 0); + if (status != PSA_SUCCESS) { + return status; + } hkdf->state = HKDF_STATE_STARTED; } - if( hkdf->state != HKDF_STATE_STARTED ) - return( PSA_ERROR_BAD_STATE ); - status = psa_mac_update( &hkdf->hmac, - data, data_length ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_mac_sign_finish( &hkdf->hmac, - hkdf->prk, - sizeof( hkdf->prk ), - &data_length ); - if( status != PSA_SUCCESS ) - return( status ); + if (hkdf->state != HKDF_STATE_STARTED) { + return PSA_ERROR_BAD_STATE; + } + status = psa_mac_update(&hkdf->hmac, + data, data_length); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_mac_sign_finish(&hkdf->hmac, + hkdf->prk, + sizeof(hkdf->prk), + &data_length); + if (status != PSA_SUCCESS) { + return status; + } } hkdf->state = HKDF_STATE_KEYED; hkdf->block_number = 0; #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) - { + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg)) { /* The only block of output is the PRK. */ - memcpy( hkdf->output_block, hkdf->prk, PSA_HASH_LENGTH( hash_alg ) ); + memcpy(hkdf->output_block, hkdf->prk, PSA_HASH_LENGTH(hash_alg)); hkdf->offset_in_block = 0; - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ { /* Block 0 is empty, and the next block will be * generated by psa_key_derivation_hkdf_read(). */ - hkdf->offset_in_block = PSA_HASH_LENGTH( hash_alg ); + hkdf->offset_in_block = PSA_HASH_LENGTH(hash_alg); } - return( PSA_SUCCESS ); + return PSA_SUCCESS; case PSA_KEY_DERIVATION_INPUT_INFO: #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT) - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXPAND) - if( PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) && - hkdf->state == HKDF_STATE_INIT ) - return( PSA_ERROR_BAD_STATE ); + if (PSA_ALG_IS_HKDF_EXPAND(kdf_alg) && + hkdf->state == HKDF_STATE_INIT) { + return PSA_ERROR_BAD_STATE; + } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HKDF_EXTRACT */ - if( hkdf->state == HKDF_STATE_OUTPUT ) - return( PSA_ERROR_BAD_STATE ); - if( hkdf->info_set ) - return( PSA_ERROR_BAD_STATE ); + if (hkdf->state == HKDF_STATE_OUTPUT) { + return PSA_ERROR_BAD_STATE; + } + if (hkdf->info_set) { + return PSA_ERROR_BAD_STATE; + } hkdf->info_length = data_length; - if( data_length != 0 ) - { - hkdf->info = mbedtls_calloc( 1, data_length ); - if( hkdf->info == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - memcpy( hkdf->info, data, data_length ); + if (data_length != 0) { + hkdf->info = mbedtls_calloc(1, data_length); + if (hkdf->info == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + memcpy(hkdf->info, data, data_length); } hkdf->info_set = 1; - return( PSA_SUCCESS ); + return PSA_SUCCESS; default: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } } #endif /* BUILTIN_ALG_ANY_HKDF */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) -static psa_status_t psa_tls12_prf_set_seed( psa_tls12_prf_key_derivation_t *prf, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_tls12_prf_set_seed(psa_tls12_prf_key_derivation_t *prf, + const uint8_t *data, + size_t data_length) { - if( prf->state != PSA_TLS12_PRF_STATE_INIT ) - return( PSA_ERROR_BAD_STATE ); + if (prf->state != PSA_TLS12_PRF_STATE_INIT) { + return PSA_ERROR_BAD_STATE; + } - if( data_length != 0 ) - { - prf->seed = mbedtls_calloc( 1, data_length ); - if( prf->seed == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (data_length != 0) { + prf->seed = mbedtls_calloc(1, data_length); + if (prf->seed == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - memcpy( prf->seed, data, data_length ); + memcpy(prf->seed, data, data_length); prf->seed_length = data_length; } prf->state = PSA_TLS12_PRF_STATE_SEED_SET; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t psa_tls12_prf_set_key( psa_tls12_prf_key_derivation_t *prf, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_tls12_prf_set_key(psa_tls12_prf_key_derivation_t *prf, + const uint8_t *data, + size_t data_length) { - if( prf->state != PSA_TLS12_PRF_STATE_SEED_SET && - prf->state != PSA_TLS12_PRF_STATE_OTHER_KEY_SET ) - return( PSA_ERROR_BAD_STATE ); + if (prf->state != PSA_TLS12_PRF_STATE_SEED_SET && + prf->state != PSA_TLS12_PRF_STATE_OTHER_KEY_SET) { + return PSA_ERROR_BAD_STATE; + } - if( data_length != 0 ) - { - prf->secret = mbedtls_calloc( 1, data_length ); - if( prf->secret == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (data_length != 0) { + prf->secret = mbedtls_calloc(1, data_length); + if (prf->secret == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - memcpy( prf->secret, data, data_length ); + memcpy(prf->secret, data, data_length); prf->secret_length = data_length; } prf->state = PSA_TLS12_PRF_STATE_KEY_SET; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t psa_tls12_prf_set_label( psa_tls12_prf_key_derivation_t *prf, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_tls12_prf_set_label(psa_tls12_prf_key_derivation_t *prf, + const uint8_t *data, + size_t data_length) { - if( prf->state != PSA_TLS12_PRF_STATE_KEY_SET ) - return( PSA_ERROR_BAD_STATE ); + if (prf->state != PSA_TLS12_PRF_STATE_KEY_SET) { + return PSA_ERROR_BAD_STATE; + } - if( data_length != 0 ) - { - prf->label = mbedtls_calloc( 1, data_length ); - if( prf->label == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (data_length != 0) { + prf->label = mbedtls_calloc(1, data_length); + if (prf->label == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - memcpy( prf->label, data, data_length ); + memcpy(prf->label, data, data_length); prf->label_length = data_length; } prf->state = PSA_TLS12_PRF_STATE_LABEL_SET; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t psa_tls12_prf_input( psa_tls12_prf_key_derivation_t *prf, - psa_key_derivation_step_t step, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_tls12_prf_input(psa_tls12_prf_key_derivation_t *prf, + psa_key_derivation_step_t step, + const uint8_t *data, + size_t data_length) { - switch( step ) - { + switch (step) { case PSA_KEY_DERIVATION_INPUT_SEED: - return( psa_tls12_prf_set_seed( prf, data, data_length ) ); + return psa_tls12_prf_set_seed(prf, data, data_length); case PSA_KEY_DERIVATION_INPUT_SECRET: - return( psa_tls12_prf_set_key( prf, data, data_length ) ); + return psa_tls12_prf_set_key(prf, data, data_length); case PSA_KEY_DERIVATION_INPUT_LABEL: - return( psa_tls12_prf_set_label( prf, data, data_length ) ); + return psa_tls12_prf_set_label(prf, data, data_length); default: - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } } #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) || @@ -5435,19 +5435,21 @@ static psa_status_t psa_tls12_prf_input( psa_tls12_prf_key_derivation_t *prf, static psa_status_t psa_tls12_prf_psk_to_ms_set_key( psa_tls12_prf_key_derivation_t *prf, const uint8_t *data, - size_t data_length ) + size_t data_length) { psa_status_t status; - const size_t pms_len = ( prf->state == PSA_TLS12_PRF_STATE_OTHER_KEY_SET ? - 4 + data_length + prf->other_secret_length : - 4 + 2 * data_length ); + const size_t pms_len = (prf->state == PSA_TLS12_PRF_STATE_OTHER_KEY_SET ? + 4 + data_length + prf->other_secret_length : + 4 + 2 * data_length); - if( data_length > PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (data_length > PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE) { + return PSA_ERROR_INVALID_ARGUMENT; + } - uint8_t *pms = mbedtls_calloc( 1, pms_len ); - if( pms == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + uint8_t *pms = mbedtls_calloc(1, pms_len); + if (pms == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } uint8_t *cur = pms; /* pure-PSK: @@ -5468,83 +5470,77 @@ static psa_status_t psa_tls12_prf_psk_to_ms_set_key( * - RFC 5489 for the definition of ECDHE-PSK. */ - if( prf->state == PSA_TLS12_PRF_STATE_OTHER_KEY_SET ) - { - *cur++ = MBEDTLS_BYTE_1( prf->other_secret_length ); - *cur++ = MBEDTLS_BYTE_0( prf->other_secret_length ); - if( prf->other_secret_length != 0 ) - { - memcpy( cur, prf->other_secret, prf->other_secret_length ); - mbedtls_platform_zeroize( prf->other_secret, prf->other_secret_length ); + if (prf->state == PSA_TLS12_PRF_STATE_OTHER_KEY_SET) { + *cur++ = MBEDTLS_BYTE_1(prf->other_secret_length); + *cur++ = MBEDTLS_BYTE_0(prf->other_secret_length); + if (prf->other_secret_length != 0) { + memcpy(cur, prf->other_secret, prf->other_secret_length); + mbedtls_platform_zeroize(prf->other_secret, prf->other_secret_length); cur += prf->other_secret_length; } - } - else - { - *cur++ = MBEDTLS_BYTE_1( data_length ); - *cur++ = MBEDTLS_BYTE_0( data_length ); - memset( cur, 0, data_length ); + } else { + *cur++ = MBEDTLS_BYTE_1(data_length); + *cur++ = MBEDTLS_BYTE_0(data_length); + memset(cur, 0, data_length); cur += data_length; } - *cur++ = MBEDTLS_BYTE_1( data_length ); - *cur++ = MBEDTLS_BYTE_0( data_length ); - memcpy( cur, data, data_length ); + *cur++ = MBEDTLS_BYTE_1(data_length); + *cur++ = MBEDTLS_BYTE_0(data_length); + memcpy(cur, data, data_length); cur += data_length; - status = psa_tls12_prf_set_key( prf, pms, cur - pms ); + status = psa_tls12_prf_set_key(prf, pms, cur - pms); - mbedtls_platform_zeroize( pms, pms_len ); - mbedtls_free( pms ); - return( status ); + mbedtls_platform_zeroize(pms, pms_len); + mbedtls_free(pms); + return status; } static psa_status_t psa_tls12_prf_psk_to_ms_set_other_key( psa_tls12_prf_key_derivation_t *prf, const uint8_t *data, - size_t data_length ) + size_t data_length) { - if( prf->state != PSA_TLS12_PRF_STATE_SEED_SET ) - return( PSA_ERROR_BAD_STATE ); - - if( data_length != 0 ) - { - prf->other_secret = mbedtls_calloc( 1, data_length ); - if( prf->other_secret == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - - memcpy( prf->other_secret, data, data_length ); - prf->other_secret_length = data_length; + if (prf->state != PSA_TLS12_PRF_STATE_SEED_SET) { + return PSA_ERROR_BAD_STATE; } - else - { + + if (data_length != 0) { + prf->other_secret = mbedtls_calloc(1, data_length); + if (prf->other_secret == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + + memcpy(prf->other_secret, data, data_length); + prf->other_secret_length = data_length; + } else { prf->other_secret_length = 0; } prf->state = PSA_TLS12_PRF_STATE_OTHER_KEY_SET; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } static psa_status_t psa_tls12_prf_psk_to_ms_input( psa_tls12_prf_key_derivation_t *prf, psa_key_derivation_step_t step, const uint8_t *data, - size_t data_length ) + size_t data_length) { - switch( step ) - { + switch (step) { case PSA_KEY_DERIVATION_INPUT_SECRET: - return( psa_tls12_prf_psk_to_ms_set_key( prf, - data, data_length ) ); + return psa_tls12_prf_psk_to_ms_set_key(prf, + data, data_length); break; case PSA_KEY_DERIVATION_INPUT_OTHER_SECRET: - return( psa_tls12_prf_psk_to_ms_set_other_key( prf, - data, - data_length ) ); + return psa_tls12_prf_psk_to_ms_set_other_key(prf, + data, + data_length); break; default: - return( psa_tls12_prf_input( prf, step, data, data_length ) ); + return psa_tls12_prf_input(prf, step, data, data_length); break; } @@ -5556,22 +5552,22 @@ static psa_status_t psa_tls12_ecjpake_to_pms_input( psa_tls12_ecjpake_to_pms_t *ecjpake, psa_key_derivation_step_t step, const uint8_t *data, - size_t data_length ) + size_t data_length) { - if( data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE || - step != PSA_KEY_DERIVATION_INPUT_SECRET ) - { - return( PSA_ERROR_INVALID_ARGUMENT ); + if (data_length != PSA_TLS12_ECJPAKE_TO_PMS_INPUT_SIZE || + step != PSA_KEY_DERIVATION_INPUT_SECRET) { + return PSA_ERROR_INVALID_ARGUMENT; } /* Check if the passed point is in an uncompressed form */ - if( data[0] != 0x04 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (data[0] != 0x04) { + return PSA_ERROR_INVALID_ARGUMENT; + } /* Only K.X has to be extracted - bytes 1 to 32 inclusive. */ - memcpy( ecjpake->data, data + 1, PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); + memcpy(ecjpake->data, data + 1, PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ /** Check whether the given key type is acceptable for the given @@ -5585,33 +5581,38 @@ static psa_status_t psa_tls12_ecjpake_to_pms_input( */ static int psa_key_derivation_check_input_type( psa_key_derivation_step_t step, - psa_key_type_t key_type ) + psa_key_type_t key_type) { - switch( step ) - { + switch (step) { case PSA_KEY_DERIVATION_INPUT_SECRET: - if( key_type == PSA_KEY_TYPE_DERIVE ) - return( PSA_SUCCESS ); - if( key_type == PSA_KEY_TYPE_NONE ) - return( PSA_SUCCESS ); + if (key_type == PSA_KEY_TYPE_DERIVE) { + return PSA_SUCCESS; + } + if (key_type == PSA_KEY_TYPE_NONE) { + return PSA_SUCCESS; + } break; case PSA_KEY_DERIVATION_INPUT_OTHER_SECRET: - if( key_type == PSA_KEY_TYPE_DERIVE ) - return( PSA_SUCCESS ); - if( key_type == PSA_KEY_TYPE_NONE ) - return( PSA_SUCCESS ); + if (key_type == PSA_KEY_TYPE_DERIVE) { + return PSA_SUCCESS; + } + if (key_type == PSA_KEY_TYPE_NONE) { + return PSA_SUCCESS; + } break; case PSA_KEY_DERIVATION_INPUT_LABEL: case PSA_KEY_DERIVATION_INPUT_SALT: case PSA_KEY_DERIVATION_INPUT_INFO: case PSA_KEY_DERIVATION_INPUT_SEED: - if( key_type == PSA_KEY_TYPE_RAW_DATA ) - return( PSA_SUCCESS ); - if( key_type == PSA_KEY_TYPE_NONE ) - return( PSA_SUCCESS ); + if (key_type == PSA_KEY_TYPE_RAW_DATA) { + return PSA_SUCCESS; + } + if (key_type == PSA_KEY_TYPE_NONE) { + return PSA_SUCCESS; + } break; } - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; } static psa_status_t psa_key_derivation_input_internal( @@ -5619,102 +5620,96 @@ static psa_status_t psa_key_derivation_input_internal( psa_key_derivation_step_t step, psa_key_type_t key_type, const uint8_t *data, - size_t data_length ) + size_t data_length) { psa_status_t status; - psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg( operation ); + psa_algorithm_t kdf_alg = psa_key_derivation_get_kdf_alg(operation); - status = psa_key_derivation_check_input_type( step, key_type ); - if( status != PSA_SUCCESS ) + status = psa_key_derivation_check_input_type(step, key_type); + if (status != PSA_SUCCESS) { goto exit; + } #if defined(BUILTIN_ALG_ANY_HKDF) - if( PSA_ALG_IS_ANY_HKDF( kdf_alg ) ) - { - status = psa_hkdf_input( &operation->ctx.hkdf, kdf_alg, - step, data, data_length ); - } - else + if (PSA_ALG_IS_ANY_HKDF(kdf_alg)) { + status = psa_hkdf_input(&operation->ctx.hkdf, kdf_alg, + step, data, data_length); + } else #endif /* BUILTIN_ALG_ANY_HKDF */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF) - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) ) - { - status = psa_tls12_prf_input( &operation->ctx.tls12_prf, - step, data, data_length ); - } - else + if (PSA_ALG_IS_TLS12_PRF(kdf_alg)) { + status = psa_tls12_prf_input(&operation->ctx.tls12_prf, + step, data, data_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PRF */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS) - if( PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - { - status = psa_tls12_prf_psk_to_ms_input( &operation->ctx.tls12_prf, - step, data, data_length ); - } - else + if (PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + status = psa_tls12_prf_psk_to_ms_input(&operation->ctx.tls12_prf, + step, data, data_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS) - if( kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS ) - { + if (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) { status = psa_tls12_ecjpake_to_pms_input( - &operation->ctx.tls12_ecjpake_to_pms, step, data, data_length ); - } - else + &operation->ctx.tls12_ecjpake_to_pms, step, data, data_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_TLS12_ECJPAKE_TO_PMS */ { /* This can't happen unless the operation object was not initialized */ (void) data; (void) data_length; (void) kdf_alg; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } exit: - if( status != PSA_SUCCESS ) - psa_key_derivation_abort( operation ); - return( status ); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(operation); + } + return status; } psa_status_t psa_key_derivation_input_bytes( psa_key_derivation_operation_t *operation, psa_key_derivation_step_t step, const uint8_t *data, - size_t data_length ) + size_t data_length) { - return( psa_key_derivation_input_internal( operation, step, - PSA_KEY_TYPE_NONE, - data, data_length ) ); + return psa_key_derivation_input_internal(operation, step, + PSA_KEY_TYPE_NONE, + data, data_length); } psa_status_t psa_key_derivation_input_key( psa_key_derivation_operation_t *operation, psa_key_derivation_step_t step, - mbedtls_svc_key_id_t key ) + mbedtls_svc_key_id_t key) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; status = psa_get_and_lock_transparent_key_slot_with_policy( - key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( operation ); - return( status ); + key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(operation); + return status; } /* Passing a key object as a SECRET input unlocks the permission * to output to a key object. */ - if( step == PSA_KEY_DERIVATION_INPUT_SECRET ) + if (step == PSA_KEY_DERIVATION_INPUT_SECRET) { operation->can_output_key = 1; + } - status = psa_key_derivation_input_internal( operation, - step, slot->attr.type, - slot->key.data, - slot->key.bytes ); + status = psa_key_derivation_input_internal(operation, + step, slot->attr.type, + slot->key.data, + slot->key.bytes); - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } @@ -5723,26 +5718,25 @@ psa_status_t psa_key_derivation_input_key( /* Key agreement */ /****************************************************************/ -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_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) { - switch( alg ) - { + switch (alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) case PSA_ALG_ECDH: - return( mbedtls_psa_key_agreement_ecdh( attributes, key_buffer, - key_buffer_size, alg, - peer_key, peer_key_length, - shared_secret, - shared_secret_size, - shared_secret_length ) ); + return mbedtls_psa_key_agreement_ecdh(attributes, key_buffer, + key_buffer_size, alg, + peer_key, peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length); #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ default: (void) attributes; @@ -5753,7 +5747,7 @@ psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attribut (void) shared_secret; (void) shared_secret_size; (void) shared_secret_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } } @@ -5763,122 +5757,126 @@ psa_status_t psa_key_agreement_raw_builtin( const psa_key_attributes_t *attribut * Fallback specified in the driver wrapper is built-in raw key agreement * (psa_key_agreement_raw_builtin). */ -static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, - psa_key_slot_t *private_key, - const uint8_t *peer_key, - size_t peer_key_length, - uint8_t *shared_secret, - size_t shared_secret_size, - size_t *shared_secret_length ) +static psa_status_t psa_key_agreement_raw_internal(psa_algorithm_t alg, + psa_key_slot_t *private_key, + const uint8_t *peer_key, + size_t peer_key_length, + uint8_t *shared_secret, + size_t shared_secret_size, + size_t *shared_secret_length) { - if( !PSA_ALG_IS_RAW_KEY_AGREEMENT( alg ) ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (!PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) { + return PSA_ERROR_NOT_SUPPORTED; + } psa_key_attributes_t attributes = { - .core = private_key->attr + .core = private_key->attr }; - return( psa_driver_wrapper_key_agreement( &attributes, - private_key->key.data, - private_key->key.bytes, alg, - peer_key, peer_key_length, - shared_secret, - shared_secret_size, - shared_secret_length ) ); + return psa_driver_wrapper_key_agreement(&attributes, + private_key->key.data, + private_key->key.bytes, alg, + peer_key, peer_key_length, + shared_secret, + shared_secret_size, + shared_secret_length); } /* Note that if this function fails, you must call psa_key_derivation_abort() * to potentially free embedded data structures and wipe confidential data. */ -static psa_status_t psa_key_agreement_internal( psa_key_derivation_operation_t *operation, - psa_key_derivation_step_t step, - psa_key_slot_t *private_key, - const uint8_t *peer_key, - size_t peer_key_length ) +static psa_status_t psa_key_agreement_internal(psa_key_derivation_operation_t *operation, + psa_key_derivation_step_t step, + psa_key_slot_t *private_key, + const uint8_t *peer_key, + size_t peer_key_length) { psa_status_t status; uint8_t shared_secret[PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE]; size_t shared_secret_length = 0; - psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE( operation->alg ); + psa_algorithm_t ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE(operation->alg); /* Step 1: run the secret agreement algorithm to generate the shared * secret. */ - status = psa_key_agreement_raw_internal( ka_alg, - private_key, - peer_key, peer_key_length, - shared_secret, - sizeof( shared_secret ), - &shared_secret_length ); - if( status != PSA_SUCCESS ) + status = psa_key_agreement_raw_internal(ka_alg, + private_key, + peer_key, peer_key_length, + shared_secret, + sizeof(shared_secret), + &shared_secret_length); + if (status != PSA_SUCCESS) { goto exit; + } /* Step 2: set up the key derivation to generate key material from * the shared secret. A shared secret is permitted wherever a key * of type DERIVE is permitted. */ - status = psa_key_derivation_input_internal( operation, step, - PSA_KEY_TYPE_DERIVE, - shared_secret, - shared_secret_length ); + status = psa_key_derivation_input_internal(operation, step, + PSA_KEY_TYPE_DERIVE, + shared_secret, + shared_secret_length); exit: - mbedtls_platform_zeroize( shared_secret, shared_secret_length ); - return( status ); + mbedtls_platform_zeroize(shared_secret, shared_secret_length); + return status; } -psa_status_t psa_key_derivation_key_agreement( psa_key_derivation_operation_t *operation, - psa_key_derivation_step_t step, - mbedtls_svc_key_id_t private_key, - const uint8_t *peer_key, - size_t peer_key_length ) +psa_status_t psa_key_derivation_key_agreement(psa_key_derivation_operation_t *operation, + psa_key_derivation_step_t step, + mbedtls_svc_key_id_t private_key, + const uint8_t *peer_key, + size_t peer_key_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot; - if( ! PSA_ALG_IS_KEY_AGREEMENT( operation->alg ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_ALG_IS_KEY_AGREEMENT(operation->alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } status = psa_get_and_lock_transparent_key_slot_with_policy( - private_key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_key_agreement_internal( operation, step, - slot, - peer_key, peer_key_length ); - if( status != PSA_SUCCESS ) - psa_key_derivation_abort( operation ); - else - { + private_key, &slot, PSA_KEY_USAGE_DERIVE, operation->alg); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_key_agreement_internal(operation, step, + slot, + peer_key, peer_key_length); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(operation); + } else { /* If a private key has been added as SECRET, we allow the derived * key material to be used as a key in PSA Crypto. */ - if( step == PSA_KEY_DERIVATION_INPUT_SECRET ) + if (step == PSA_KEY_DERIVATION_INPUT_SECRET) { operation->can_output_key = 1; + } } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } -psa_status_t psa_raw_key_agreement( psa_algorithm_t alg, - mbedtls_svc_key_id_t private_key, - const uint8_t *peer_key, - size_t peer_key_length, - uint8_t *output, - size_t output_size, - size_t *output_length ) +psa_status_t psa_raw_key_agreement(psa_algorithm_t alg, + mbedtls_svc_key_id_t private_key, + const uint8_t *peer_key, + size_t peer_key_length, + uint8_t *output, + size_t output_size, + size_t *output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t unlock_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_slot_t *slot = NULL; - if( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ) - { + if (!PSA_ALG_IS_KEY_AGREEMENT(alg)) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } status = psa_get_and_lock_transparent_key_slot_with_policy( - private_key, &slot, PSA_KEY_USAGE_DERIVE, alg ); - if( status != PSA_SUCCESS ) + private_key, &slot, PSA_KEY_USAGE_DERIVE, alg); + if (status != PSA_SUCCESS) { goto exit; + } /* PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE() is in general an upper bound * for the output size. The PSA specification only guarantees that this @@ -5889,21 +5887,19 @@ psa_status_t psa_raw_key_agreement( psa_algorithm_t alg, * If FFDH is implemented, PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE() can easily * be exact for it as well. */ size_t expected_length = - PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( slot->attr.type, slot->attr.bits ); - if( output_size < expected_length ) - { + PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(slot->attr.type, slot->attr.bits); + if (output_size < expected_length) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - status = psa_key_agreement_raw_internal( alg, slot, - peer_key, peer_key_length, - output, output_size, - output_length ); + status = psa_key_agreement_raw_internal(alg, slot, + peer_key, peer_key_length, + output, output_size, + output_length); exit: - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { /* If an error happens and is not handled properly, the output * may be used as a key to protect sensitive data. Arrange for such * a key to be random, which is likely to result in decryption or @@ -5911,13 +5907,13 @@ exit: * some constant data such as zeros, which would result in the data * being protected with a reproducible, easily knowable key. */ - psa_generate_random( output, output_size ); + psa_generate_random(output, output_size); *output_length = output_size; } - unlock_status = psa_unlock_key_slot( slot ); + unlock_status = psa_unlock_key_slot(slot); - return( ( status == PSA_SUCCESS ) ? unlock_status : status ); + return (status == PSA_SUCCESS) ? unlock_status : status; } @@ -5928,97 +5924,101 @@ exit: /** Initialize the PSA random generator. */ -static void mbedtls_psa_random_init( mbedtls_psa_random_context_t *rng ) +static void mbedtls_psa_random_init(mbedtls_psa_random_context_t *rng) { #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - memset( rng, 0, sizeof( *rng ) ); + memset(rng, 0, sizeof(*rng)); #else /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ /* Set default configuration if * mbedtls_psa_crypto_configure_entropy_sources() hasn't been called. */ - if( rng->entropy_init == NULL ) + if (rng->entropy_init == NULL) { rng->entropy_init = mbedtls_entropy_init; - if( rng->entropy_free == NULL ) + } + if (rng->entropy_free == NULL) { rng->entropy_free = mbedtls_entropy_free; + } - rng->entropy_init( &rng->entropy ); + rng->entropy_init(&rng->entropy); #if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \ defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) /* The PSA entropy injection feature depends on using NV seed as an entropy * source. Add NV seed as an entropy source for PSA entropy injection. */ - mbedtls_entropy_add_source( &rng->entropy, - mbedtls_nv_seed_poll, NULL, - MBEDTLS_ENTROPY_BLOCK_SIZE, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + mbedtls_entropy_add_source(&rng->entropy, + mbedtls_nv_seed_poll, NULL, + MBEDTLS_ENTROPY_BLOCK_SIZE, + MBEDTLS_ENTROPY_SOURCE_STRONG); #endif - mbedtls_psa_drbg_init( MBEDTLS_PSA_RANDOM_STATE ); + mbedtls_psa_drbg_init(MBEDTLS_PSA_RANDOM_STATE); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ } /** Deinitialize the PSA random generator. */ -static void mbedtls_psa_random_free( mbedtls_psa_random_context_t *rng ) +static void mbedtls_psa_random_free(mbedtls_psa_random_context_t *rng) { #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - memset( rng, 0, sizeof( *rng ) ); + memset(rng, 0, sizeof(*rng)); #else /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - mbedtls_psa_drbg_free( MBEDTLS_PSA_RANDOM_STATE ); - rng->entropy_free( &rng->entropy ); + mbedtls_psa_drbg_free(MBEDTLS_PSA_RANDOM_STATE); + rng->entropy_free(&rng->entropy); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ } /** Seed the PSA random generator. */ -static psa_status_t mbedtls_psa_random_seed( mbedtls_psa_random_context_t *rng ) +static psa_status_t mbedtls_psa_random_seed(mbedtls_psa_random_context_t *rng) { #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) /* Do nothing: the external RNG seeds itself. */ (void) rng; - return( PSA_SUCCESS ); + return PSA_SUCCESS; #else /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ const unsigned char drbg_seed[] = "PSA"; - int ret = mbedtls_psa_drbg_seed( &rng->entropy, - drbg_seed, sizeof( drbg_seed ) - 1 ); - return mbedtls_to_psa_error( ret ); + int ret = mbedtls_psa_drbg_seed(&rng->entropy, + drbg_seed, sizeof(drbg_seed) - 1); + return mbedtls_to_psa_error(ret); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ } -psa_status_t psa_generate_random( uint8_t *output, - size_t output_size ) +psa_status_t psa_generate_random(uint8_t *output, + size_t output_size) { GUARD_MODULE_INITIALIZED; #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) size_t output_length = 0; - psa_status_t status = mbedtls_psa_external_get_random( &global_data.rng, - output, output_size, - &output_length ); - if( status != PSA_SUCCESS ) - return( status ); + psa_status_t status = mbedtls_psa_external_get_random(&global_data.rng, + output, output_size, + &output_length); + if (status != PSA_SUCCESS) { + return status; + } /* Breaking up a request into smaller chunks is currently not supported * for the external RNG interface. */ - if( output_length != output_size ) - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); - return( PSA_SUCCESS ); + if (output_length != output_size) { + return PSA_ERROR_INSUFFICIENT_ENTROPY; + } + return PSA_SUCCESS; #else /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - while( output_size > 0 ) - { + while (output_size > 0) { size_t request_size = - ( output_size > MBEDTLS_PSA_RANDOM_MAX_REQUEST ? - MBEDTLS_PSA_RANDOM_MAX_REQUEST : - output_size ); - int ret = mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output, request_size ); - if( ret != 0 ) - return( mbedtls_to_psa_error( ret ) ); + (output_size > MBEDTLS_PSA_RANDOM_MAX_REQUEST ? + MBEDTLS_PSA_RANDOM_MAX_REQUEST : + output_size); + int ret = mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output, request_size); + if (ret != 0) { + return mbedtls_to_psa_error(ret); + } output_size -= request_size; output += request_size; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ } @@ -6035,10 +6035,10 @@ psa_status_t psa_generate_random( uint8_t *output, * classic API, psa_crypto_random_impl.h defines `mbedtls_psa_get_random` * as a constant function pointer to `mbedtls_xxx_drbg_random`. */ -#if defined (MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) -int mbedtls_psa_get_random( void *p_rng, - unsigned char *output, - size_t output_size ) +#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) +int mbedtls_psa_get_random(void *p_rng, + unsigned char *output, + size_t output_size) { /* This function takes a pointer to the RNG state because that's what * classic mbedtls functions using an RNG expect. The PSA RNG manages @@ -6046,29 +6046,32 @@ int mbedtls_psa_get_random( void *p_rng, * So we just ignore the state parameter, and in practice we'll pass * NULL. */ (void) p_rng; - psa_status_t status = psa_generate_random( output, output_size ); - if( status == PSA_SUCCESS ) - return( 0 ); - else - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + psa_status_t status = psa_generate_random(output, output_size); + if (status == PSA_SUCCESS) { + return 0; + } else { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } } #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ #if defined(MBEDTLS_PSA_INJECT_ENTROPY) #include "entropy_poll.h" -psa_status_t mbedtls_psa_inject_entropy( const uint8_t *seed, - size_t seed_size ) +psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, + size_t seed_size) { - if( global_data.initialized ) - return( PSA_ERROR_NOT_PERMITTED ); + if (global_data.initialized) { + return PSA_ERROR_NOT_PERMITTED; + } - if( ( ( seed_size < MBEDTLS_ENTROPY_MIN_PLATFORM ) || - ( seed_size < MBEDTLS_ENTROPY_BLOCK_SIZE ) ) || - ( seed_size > MBEDTLS_ENTROPY_MAX_SEED_SIZE ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (((seed_size < MBEDTLS_ENTROPY_MIN_PLATFORM) || + (seed_size < MBEDTLS_ENTROPY_BLOCK_SIZE)) || + (seed_size > MBEDTLS_ENTROPY_MAX_SEED_SIZE)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( mbedtls_psa_storage_inject_entropy( seed, seed_size ) ); + return mbedtls_psa_storage_inject_entropy(seed, seed_size); } #endif /* MBEDTLS_PSA_INJECT_ENTROPY */ @@ -6086,103 +6089,97 @@ psa_status_t mbedtls_psa_inject_entropy( const uint8_t *seed, * the two is not supported. */ static psa_status_t psa_validate_key_type_and_size_for_key_generation( - psa_key_type_t type, size_t bits ) + psa_key_type_t type, size_t bits) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( key_type_is_raw_bytes( type ) ) - { - status = psa_validate_unstructured_key_bit_size( type, bits ); - if( status != PSA_SUCCESS ) - return( status ); - } - else + if (key_type_is_raw_bytes(type)) { + status = psa_validate_unstructured_key_bit_size(type, bits); + if (status != PSA_SUCCESS) { + return status; + } + } else #if defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) - if( PSA_KEY_TYPE_IS_RSA( type ) && PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) - { - if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (PSA_KEY_TYPE_IS_RSA(type) && PSA_KEY_TYPE_IS_KEY_PAIR(type)) { + if (bits > PSA_VENDOR_RSA_MAX_KEY_BITS) { + return PSA_ERROR_NOT_SUPPORTED; + } /* Accept only byte-aligned keys, for the same reasons as * in psa_import_rsa_key(). */ - if( bits % 8 != 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); - } - else + if (bits % 8 != 0) { + return PSA_ERROR_NOT_SUPPORTED; + } + } else #endif /* defined(PSA_WANT_KEY_TYPE_RSA_KEY_PAIR) */ #if defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) - if( PSA_KEY_TYPE_IS_ECC( type ) && PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) - { + if (PSA_KEY_TYPE_IS_ECC(type) && PSA_KEY_TYPE_IS_KEY_PAIR(type)) { /* To avoid empty block, return successfully here. */ - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #endif /* defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR) */ { - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t psa_generate_key_internal( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_type_t type = attributes->core.type; - if( ( attributes->domain_parameters == NULL ) && - ( attributes->domain_parameters_size != 0 ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if ((attributes->domain_parameters == NULL) && + (attributes->domain_parameters_size != 0)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - if( key_type_is_raw_bytes( type ) ) - { - status = psa_generate_random( key_buffer, key_buffer_size ); - if( status != PSA_SUCCESS ) - return( status ); + if (key_type_is_raw_bytes(type)) { + status = psa_generate_random(key_buffer, key_buffer_size); + if (status != PSA_SUCCESS) { + return status; + } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) - if( type == PSA_KEY_TYPE_DES ) - psa_des_set_key_parity( key_buffer, key_buffer_size ); + if (type == PSA_KEY_TYPE_DES) { + psa_des_set_key_parity(key_buffer, key_buffer_size); + } #endif /* MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES */ - } - else + } else #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) && \ defined(MBEDTLS_GENPRIME) - if ( type == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { - return( mbedtls_psa_rsa_generate_key( attributes, - key_buffer, - key_buffer_size, - key_buffer_length ) ); - } - else + if (type == PSA_KEY_TYPE_RSA_KEY_PAIR) { + return mbedtls_psa_rsa_generate_key(attributes, + key_buffer, + key_buffer_size, + key_buffer_length); + } else #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) * defined(MBEDTLS_GENPRIME) */ #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) - if ( PSA_KEY_TYPE_IS_ECC( type ) && PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) - { - return( mbedtls_psa_ecp_generate_key( attributes, - key_buffer, - key_buffer_size, - key_buffer_length ) ); - } - else + if (PSA_KEY_TYPE_IS_ECC(type) && PSA_KEY_TYPE_IS_KEY_PAIR(type)) { + return mbedtls_psa_ecp_generate_key(attributes, + key_buffer, + key_buffer_size, + key_buffer_length); + } else #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) */ { - (void)key_buffer_length; - return( PSA_ERROR_NOT_SUPPORTED ); + (void) key_buffer_length; + return PSA_ERROR_NOT_SUPPORTED; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_generate_key( const psa_key_attributes_t *attributes, - mbedtls_svc_key_id_t *key ) +psa_status_t psa_generate_key(const psa_key_attributes_t *attributes, + mbedtls_svc_key_id_t *key) { psa_status_t status; psa_key_slot_t *slot = NULL; @@ -6193,62 +6190,67 @@ psa_status_t psa_generate_key( const psa_key_attributes_t *attributes, /* Reject any attempt to create a zero-length key so that we don't * risk tripping up later, e.g. on a malloc(0) that returns NULL. */ - if( psa_get_key_bits( attributes ) == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (psa_get_key_bits(attributes) == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } /* Reject any attempt to create a public key. */ - if( PSA_KEY_TYPE_IS_PUBLIC_KEY(attributes->core.type) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(attributes->core.type)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - status = psa_start_key_creation( PSA_KEY_CREATION_GENERATE, attributes, - &slot, &driver ); - if( status != PSA_SUCCESS ) + status = psa_start_key_creation(PSA_KEY_CREATION_GENERATE, attributes, + &slot, &driver); + if (status != PSA_SUCCESS) { goto exit; + } /* In the case of a transparent key or an opaque key stored in local * storage ( thus not in the case of generating a key in a secure element * with storage ( MBEDTLS_PSA_CRYPTO_SE_C ) ),we have to allocate a * buffer to hold the generated key material. */ - if( slot->key.data == NULL ) - { - if ( PSA_KEY_LIFETIME_GET_LOCATION( attributes->core.lifetime ) == - PSA_KEY_LOCATION_LOCAL_STORAGE ) - { + if (slot->key.data == NULL) { + if (PSA_KEY_LIFETIME_GET_LOCATION(attributes->core.lifetime) == + PSA_KEY_LOCATION_LOCAL_STORAGE) { status = psa_validate_key_type_and_size_for_key_generation( - attributes->core.type, attributes->core.bits ); - if( status != PSA_SUCCESS ) + attributes->core.type, attributes->core.bits); + if (status != PSA_SUCCESS) { goto exit; + } key_buffer_size = PSA_EXPORT_KEY_OUTPUT_SIZE( - attributes->core.type, - attributes->core.bits ); - } - else - { + attributes->core.type, + attributes->core.bits); + } else { status = psa_driver_wrapper_get_key_buffer_size( - attributes, &key_buffer_size ); - if( status != PSA_SUCCESS ) + attributes, &key_buffer_size); + if (status != PSA_SUCCESS) { goto exit; + } } - status = psa_allocate_buffer_to_slot( slot, key_buffer_size ); - if( status != PSA_SUCCESS ) + status = psa_allocate_buffer_to_slot(slot, key_buffer_size); + if (status != PSA_SUCCESS) { goto exit; + } } - status = psa_driver_wrapper_generate_key( attributes, - slot->key.data, slot->key.bytes, &slot->key.bytes ); + status = psa_driver_wrapper_generate_key(attributes, + slot->key.data, slot->key.bytes, &slot->key.bytes); - if( status != PSA_SUCCESS ) - psa_remove_key_data_from_memory( slot ); + if (status != PSA_SUCCESS) { + psa_remove_key_data_from_memory(slot); + } exit: - if( status == PSA_SUCCESS ) - status = psa_finish_key_creation( slot, driver, key ); - if( status != PSA_SUCCESS ) - psa_fail_key_creation( slot, driver ); + if (status == PSA_SUCCESS) { + status = psa_finish_key_creation(slot, driver, key); + } + if (status != PSA_SUCCESS) { + psa_fail_key_creation(slot, driver); + } - return( status ); + return status; } /****************************************************************/ @@ -6257,31 +6259,31 @@ exit: #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) psa_status_t mbedtls_psa_crypto_configure_entropy_sources( - void (* entropy_init )( mbedtls_entropy_context *ctx ), - void (* entropy_free )( mbedtls_entropy_context *ctx ) ) + void (* entropy_init)(mbedtls_entropy_context *ctx), + void (* entropy_free)(mbedtls_entropy_context *ctx)) { - if( global_data.rng_state != RNG_NOT_INITIALIZED ) - return( PSA_ERROR_BAD_STATE ); + if (global_data.rng_state != RNG_NOT_INITIALIZED) { + return PSA_ERROR_BAD_STATE; + } global_data.rng.entropy_init = entropy_init; global_data.rng.entropy_free = entropy_free; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */ -void mbedtls_psa_crypto_free( void ) +void mbedtls_psa_crypto_free(void) { - psa_wipe_all_key_slots( ); - if( global_data.rng_state != RNG_NOT_INITIALIZED ) - { - mbedtls_psa_random_free( &global_data.rng ); + psa_wipe_all_key_slots(); + if (global_data.rng_state != RNG_NOT_INITIALIZED) { + mbedtls_psa_random_free(&global_data.rng); } /* Wipe all remaining data, including configuration. * In particular, this sets all state indicator to the value * indicating "uninitialized". */ - mbedtls_platform_zeroize( &global_data, sizeof( global_data ) ); + mbedtls_platform_zeroize(&global_data, sizeof(global_data)); /* Terminate drivers */ - psa_driver_wrapper_free( ); + psa_driver_wrapper_free(); } #if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS) @@ -6292,60 +6294,61 @@ void mbedtls_psa_crypto_free( void ) * fails. */ static psa_status_t psa_crypto_recover_transaction( - const psa_crypto_transaction_t *transaction ) + const psa_crypto_transaction_t *transaction) { - switch( transaction->unknown.type ) - { + switch (transaction->unknown.type) { case PSA_CRYPTO_TRANSACTION_CREATE_KEY: case PSA_CRYPTO_TRANSACTION_DESTROY_KEY: - /* TODO - fall through to the failure case until this - * is implemented. - * https://github.com/ARMmbed/mbed-crypto/issues/218 - */ + /* TODO - fall through to the failure case until this + * is implemented. + * https://github.com/ARMmbed/mbed-crypto/issues/218 + */ default: /* We found an unsupported transaction in the storage. * We don't know what state the storage is in. Give up. */ - return( PSA_ERROR_DATA_INVALID ); + return PSA_ERROR_DATA_INVALID; } } #endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */ -psa_status_t psa_crypto_init( void ) +psa_status_t psa_crypto_init(void) { psa_status_t status; /* Double initialization is explicitly allowed. */ - if( global_data.initialized != 0 ) - return( PSA_SUCCESS ); + if (global_data.initialized != 0) { + return PSA_SUCCESS; + } /* Initialize and seed the random generator. */ - mbedtls_psa_random_init( &global_data.rng ); + mbedtls_psa_random_init(&global_data.rng); global_data.rng_state = RNG_INITIALIZED; - status = mbedtls_psa_random_seed( &global_data.rng ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_random_seed(&global_data.rng); + if (status != PSA_SUCCESS) { goto exit; + } global_data.rng_state = RNG_SEEDED; - status = psa_initialize_key_slots( ); - if( status != PSA_SUCCESS ) + status = psa_initialize_key_slots(); + if (status != PSA_SUCCESS) { goto exit; + } /* Init drivers */ - status = psa_driver_wrapper_init( ); - if( status != PSA_SUCCESS ) + status = psa_driver_wrapper_init(); + if (status != PSA_SUCCESS) { goto exit; + } #if defined(PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS) - status = psa_crypto_load_transaction( ); - if( status == PSA_SUCCESS ) - { - status = psa_crypto_recover_transaction( &psa_crypto_transaction ); - if( status != PSA_SUCCESS ) + status = psa_crypto_load_transaction(); + if (status == PSA_SUCCESS) { + status = psa_crypto_recover_transaction(&psa_crypto_transaction); + if (status != PSA_SUCCESS) { goto exit; - status = psa_crypto_stop_transaction( ); - } - else if( status == PSA_ERROR_DOES_NOT_EXIST ) - { + } + status = psa_crypto_stop_transaction(); + } else if (status == PSA_ERROR_DOES_NOT_EXIST) { /* There's no transaction to complete. It's all good. */ status = PSA_SUCCESS; } @@ -6355,9 +6358,10 @@ psa_status_t psa_crypto_init( void ) global_data.initialized = 1; exit: - if( status != PSA_SUCCESS ) - mbedtls_psa_crypto_free( ); - return( status ); + if (status != PSA_SUCCESS) { + mbedtls_psa_crypto_free(); + } + return status; } #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/library/psa_crypto_aead.c b/library/psa_crypto_aead.c index 730ef9555..85d1f39be 100644 --- a/library/psa_crypto_aead.c +++ b/library/psa_crypto_aead.c @@ -40,88 +40,94 @@ static psa_status_t psa_aead_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t key_bits; const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_id_t cipher_id; - ( void ) key_buffer_size; + (void) key_buffer_size; key_bits = attributes->core.bits; - cipher_info = mbedtls_cipher_info_from_psa( alg, - attributes->core.type, key_bits, - &cipher_id ); - if( cipher_info == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); + cipher_info = mbedtls_cipher_info_from_psa(alg, + attributes->core.type, key_bits, + &cipher_id); + if (cipher_info == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } - switch( PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ) ) - { + switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0): operation->alg = PSA_ALG_CCM; /* CCM allows the following tag lengths: 4, 6, 8, 10, 12, 14, 16. * The call to mbedtls_ccm_encrypt_and_tag or * mbedtls_ccm_auth_decrypt will validate the tag length. */ - if( PSA_BLOCK_CIPHER_BLOCK_LENGTH( attributes->core.type ) != 16 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_BLOCK_CIPHER_BLOCK_LENGTH(attributes->core.type) != 16) { + return PSA_ERROR_INVALID_ARGUMENT; + } - mbedtls_ccm_init( &operation->ctx.ccm ); + mbedtls_ccm_init(&operation->ctx.ccm); status = mbedtls_to_psa_error( - mbedtls_ccm_setkey( &operation->ctx.ccm, cipher_id, - key_buffer, (unsigned int) key_bits ) ); - if( status != PSA_SUCCESS ) - return( status ); + mbedtls_ccm_setkey(&operation->ctx.ccm, cipher_id, + key_buffer, (unsigned int) key_bits)); + if (status != PSA_SUCCESS) { + return status; + } break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0): operation->alg = PSA_ALG_GCM; /* GCM allows the following tag lengths: 4, 8, 12, 13, 14, 15, 16. * The call to mbedtls_gcm_crypt_and_tag or * mbedtls_gcm_auth_decrypt will validate the tag length. */ - if( PSA_BLOCK_CIPHER_BLOCK_LENGTH( attributes->core.type ) != 16 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (PSA_BLOCK_CIPHER_BLOCK_LENGTH(attributes->core.type) != 16) { + return PSA_ERROR_INVALID_ARGUMENT; + } - mbedtls_gcm_init( &operation->ctx.gcm ); + mbedtls_gcm_init(&operation->ctx.gcm); status = mbedtls_to_psa_error( - mbedtls_gcm_setkey( &operation->ctx.gcm, cipher_id, - key_buffer, (unsigned int) key_bits ) ); - if( status != PSA_SUCCESS ) - return( status ); + mbedtls_gcm_setkey(&operation->ctx.gcm, cipher_id, + key_buffer, (unsigned int) key_bits)); + if (status != PSA_SUCCESS) { + return status; + } break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0): operation->alg = PSA_ALG_CHACHA20_POLY1305; /* We only support the default tag length. */ - if( alg != PSA_ALG_CHACHA20_POLY1305 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (alg != PSA_ALG_CHACHA20_POLY1305) { + return PSA_ERROR_NOT_SUPPORTED; + } - mbedtls_chachapoly_init( &operation->ctx.chachapoly ); + mbedtls_chachapoly_init(&operation->ctx.chachapoly); status = mbedtls_to_psa_error( - mbedtls_chachapoly_setkey( &operation->ctx.chachapoly, - key_buffer ) ); - if( status != PSA_SUCCESS ) - return( status ); + mbedtls_chachapoly_setkey(&operation->ctx.chachapoly, + key_buffer)); + if (status != PSA_SUCCESS) { + return status; + } break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ default: (void) status; (void) key_buffer; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - operation->key_type = psa_get_key_type( attributes ); + operation->key_type = psa_get_key_type(attributes); - operation->tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH( alg ); + operation->tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH(alg); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_aead_encrypt( @@ -131,74 +137,67 @@ psa_status_t mbedtls_psa_aead_encrypt( 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 ) + uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_psa_aead_operation_t operation = MBEDTLS_PSA_AEAD_OPERATION_INIT; uint8_t *tag; - status = psa_aead_setup( &operation, attributes, key_buffer, - key_buffer_size, alg ); + status = psa_aead_setup(&operation, attributes, key_buffer, + key_buffer_size, alg); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } /* For all currently supported modes, the tag is at the end of the * ciphertext. */ - if( ciphertext_size < ( plaintext_length + operation.tag_length ) ) - { + if (ciphertext_size < (plaintext_length + operation.tag_length)) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } tag = ciphertext + plaintext_length; #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation.alg == PSA_ALG_CCM ) - { + if (operation.alg == PSA_ALG_CCM) { status = mbedtls_to_psa_error( - mbedtls_ccm_encrypt_and_tag( &operation.ctx.ccm, - plaintext_length, - nonce, nonce_length, - additional_data, - additional_data_length, - plaintext, ciphertext, - tag, operation.tag_length ) ); - } - else + mbedtls_ccm_encrypt_and_tag(&operation.ctx.ccm, + plaintext_length, + nonce, nonce_length, + additional_data, + additional_data_length, + plaintext, ciphertext, + tag, operation.tag_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation.alg == PSA_ALG_GCM ) - { + if (operation.alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_crypt_and_tag( &operation.ctx.gcm, - MBEDTLS_GCM_ENCRYPT, - plaintext_length, - nonce, nonce_length, - additional_data, additional_data_length, - plaintext, ciphertext, - operation.tag_length, tag ) ); - } - else + mbedtls_gcm_crypt_and_tag(&operation.ctx.gcm, + MBEDTLS_GCM_ENCRYPT, + plaintext_length, + nonce, nonce_length, + additional_data, additional_data_length, + plaintext, ciphertext, + operation.tag_length, tag)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation.alg == PSA_ALG_CHACHA20_POLY1305 ) - { - if( operation.tag_length != 16 ) - { + if (operation.alg == PSA_ALG_CHACHA20_POLY1305) { + if (operation.tag_length != 16) { status = PSA_ERROR_NOT_SUPPORTED; goto exit; } status = mbedtls_to_psa_error( - mbedtls_chachapoly_encrypt_and_tag( &operation.ctx.chachapoly, - plaintext_length, - nonce, - additional_data, - additional_data_length, - plaintext, - ciphertext, - tag ) ); - } - else + mbedtls_chachapoly_encrypt_and_tag(&operation.ctx.chachapoly, + plaintext_length, + nonce, + additional_data, + additional_data_length, + plaintext, + ciphertext, + tag)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { (void) tag; @@ -207,16 +206,17 @@ psa_status_t mbedtls_psa_aead_encrypt( (void) additional_data; (void) additional_data_length; (void) plaintext; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *ciphertext_length = plaintext_length + operation.tag_length; + } exit: - mbedtls_psa_aead_abort( &operation ); + mbedtls_psa_aead_abort(&operation); - return( status ); + return status; } /* Locate the tag in a ciphertext buffer containing the encrypted data @@ -224,20 +224,22 @@ exit: * *plaintext_length. This is the size of the plaintext in modes where * the encrypted data has the same size as the plaintext, such as * CCM and GCM. */ -static psa_status_t psa_aead_unpadded_locate_tag( size_t tag_length, - const uint8_t *ciphertext, - size_t ciphertext_length, - size_t plaintext_size, - const uint8_t **p_tag ) +static psa_status_t psa_aead_unpadded_locate_tag(size_t tag_length, + const uint8_t *ciphertext, + size_t ciphertext_length, + size_t plaintext_size, + const uint8_t **p_tag) { size_t payload_length; - if( tag_length > ciphertext_length ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (tag_length > ciphertext_length) { + return PSA_ERROR_INVALID_ARGUMENT; + } payload_length = ciphertext_length - tag_length; - if( payload_length > plaintext_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (payload_length > plaintext_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } *p_tag = ciphertext + payload_length; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_aead_decrypt( @@ -247,71 +249,66 @@ psa_status_t mbedtls_psa_aead_decrypt( 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 ) + uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_psa_aead_operation_t operation = MBEDTLS_PSA_AEAD_OPERATION_INIT; const uint8_t *tag = NULL; - status = psa_aead_setup( &operation, attributes, key_buffer, - key_buffer_size, alg ); + status = psa_aead_setup(&operation, attributes, key_buffer, + key_buffer_size, alg); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_aead_unpadded_locate_tag( operation.tag_length, - ciphertext, ciphertext_length, - plaintext_size, &tag ); - if( status != PSA_SUCCESS ) + status = psa_aead_unpadded_locate_tag(operation.tag_length, + ciphertext, ciphertext_length, + plaintext_size, &tag); + if (status != PSA_SUCCESS) { goto exit; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation.alg == PSA_ALG_CCM ) - { + if (operation.alg == PSA_ALG_CCM) { status = mbedtls_to_psa_error( - mbedtls_ccm_auth_decrypt( &operation.ctx.ccm, - ciphertext_length - operation.tag_length, - nonce, nonce_length, - additional_data, - additional_data_length, - ciphertext, plaintext, - tag, operation.tag_length ) ); - } - else + mbedtls_ccm_auth_decrypt(&operation.ctx.ccm, + ciphertext_length - operation.tag_length, + nonce, nonce_length, + additional_data, + additional_data_length, + ciphertext, plaintext, + tag, operation.tag_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation.alg == PSA_ALG_GCM ) - { + if (operation.alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_auth_decrypt( &operation.ctx.gcm, - ciphertext_length - operation.tag_length, - nonce, nonce_length, - additional_data, - additional_data_length, - tag, operation.tag_length, - ciphertext, plaintext ) ); - } - else + mbedtls_gcm_auth_decrypt(&operation.ctx.gcm, + ciphertext_length - operation.tag_length, + nonce, nonce_length, + additional_data, + additional_data_length, + tag, operation.tag_length, + ciphertext, plaintext)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation.alg == PSA_ALG_CHACHA20_POLY1305 ) - { - if( operation.tag_length != 16 ) - { + if (operation.alg == PSA_ALG_CHACHA20_POLY1305) { + if (operation.tag_length != 16) { status = PSA_ERROR_NOT_SUPPORTED; goto exit; } status = mbedtls_to_psa_error( - mbedtls_chachapoly_auth_decrypt( &operation.ctx.chachapoly, - ciphertext_length - operation.tag_length, - nonce, - additional_data, - additional_data_length, - tag, - ciphertext, - plaintext ) ); - } - else + mbedtls_chachapoly_auth_decrypt(&operation.ctx.chachapoly, + ciphertext_length - operation.tag_length, + nonce, + additional_data, + additional_data_length, + tag, + ciphertext, + plaintext)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { (void) nonce; @@ -319,18 +316,20 @@ psa_status_t mbedtls_psa_aead_decrypt( (void) additional_data; (void) additional_data_length; (void) plaintext; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *plaintext_length = ciphertext_length - operation.tag_length; + } exit: - mbedtls_psa_aead_abort( &operation ); + mbedtls_psa_aead_abort(&operation); - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *plaintext_length = ciphertext_length - operation.tag_length; - return( status ); + } + return status; } /* Set the key and algorithm for a multipart authenticated encryption @@ -340,17 +339,18 @@ psa_status_t mbedtls_psa_aead_encrypt_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - status = psa_aead_setup( operation, attributes, key_buffer, - key_buffer_size, alg ); + status = psa_aead_setup(operation, attributes, key_buffer, + key_buffer_size, alg); - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->is_encrypt = 1; + } - return ( status ); + return status; } /* Set the key and algorithm for a multipart authenticated decryption @@ -360,152 +360,139 @@ psa_status_t mbedtls_psa_aead_decrypt_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - status = psa_aead_setup( operation, attributes, key_buffer, - key_buffer_size, alg ); + status = psa_aead_setup(operation, attributes, key_buffer, + key_buffer_size, alg); - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { operation->is_encrypt = 0; + } - return ( status ); + return status; } /* Set a nonce for the multipart AEAD operation*/ psa_status_t mbedtls_psa_aead_set_nonce( mbedtls_psa_aead_operation_t *operation, const uint8_t *nonce, - size_t nonce_length ) + size_t nonce_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation->alg == PSA_ALG_GCM ) - { + if (operation->alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_starts( &operation->ctx.gcm, - operation->is_encrypt ? - MBEDTLS_GCM_ENCRYPT : MBEDTLS_GCM_DECRYPT, - nonce, - nonce_length ) ); - } - else + mbedtls_gcm_starts(&operation->ctx.gcm, + operation->is_encrypt ? + MBEDTLS_GCM_ENCRYPT : MBEDTLS_GCM_DECRYPT, + nonce, + nonce_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation->alg == PSA_ALG_CCM ) - { + if (operation->alg == PSA_ALG_CCM) { status = mbedtls_to_psa_error( - mbedtls_ccm_starts( &operation->ctx.ccm, - operation->is_encrypt ? - MBEDTLS_CCM_ENCRYPT : MBEDTLS_CCM_DECRYPT, - nonce, - nonce_length ) ); - } - else + mbedtls_ccm_starts(&operation->ctx.ccm, + operation->is_encrypt ? + MBEDTLS_CCM_ENCRYPT : MBEDTLS_CCM_DECRYPT, + nonce, + nonce_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation->alg == PSA_ALG_CHACHA20_POLY1305 ) - { + if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { /* Note - ChaChaPoly allows an 8 byte nonce, but we would have to * allocate a buffer in the operation, copy the nonce to it and pad * it, so for now check the nonce is 12 bytes, as * mbedtls_chachapoly_starts() assumes it can read 12 bytes from the * passed in buffer. */ - if( nonce_length != 12 ) - { - return( PSA_ERROR_INVALID_ARGUMENT ); + if (nonce_length != 12) { + return PSA_ERROR_INVALID_ARGUMENT; } status = mbedtls_to_psa_error( - mbedtls_chachapoly_starts( &operation->ctx.chachapoly, + mbedtls_chachapoly_starts(&operation->ctx.chachapoly, nonce, operation->is_encrypt ? MBEDTLS_CHACHAPOLY_ENCRYPT : - MBEDTLS_CHACHAPOLY_DECRYPT ) ); - } - else + MBEDTLS_CHACHAPOLY_DECRYPT)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { - ( void ) operation; - ( void ) nonce; - ( void ) nonce_length; + (void) operation; + (void) nonce; + (void) nonce_length; - return ( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return( status ); + return status; } - /* Declare the lengths of the message and additional data for AEAD. */ +/* Declare the lengths of the message and additional data for AEAD. */ psa_status_t mbedtls_psa_aead_set_lengths( mbedtls_psa_aead_operation_t *operation, size_t ad_length, - size_t plaintext_length ) + size_t plaintext_length) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation->alg == PSA_ALG_CCM ) - { - return( mbedtls_to_psa_error( - mbedtls_ccm_set_lengths( &operation->ctx.ccm, - ad_length, - plaintext_length, - operation->tag_length ) ) ); + if (operation->alg == PSA_ALG_CCM) { + return mbedtls_to_psa_error( + mbedtls_ccm_set_lengths(&operation->ctx.ccm, + ad_length, + plaintext_length, + operation->tag_length)); } #else /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ - ( void ) operation; - ( void ) ad_length; - ( void ) plaintext_length; + (void) operation; + (void) ad_length; + (void) plaintext_length; #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ - return ( PSA_SUCCESS ); + return PSA_SUCCESS; } /* Pass additional data to an active multipart AEAD operation. */ psa_status_t mbedtls_psa_aead_update_ad( mbedtls_psa_aead_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation->alg == PSA_ALG_GCM ) - { + if (operation->alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_update_ad( &operation->ctx.gcm, input, input_length ) ); - } - else + mbedtls_gcm_update_ad(&operation->ctx.gcm, input, input_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation->alg == PSA_ALG_CCM ) - { + if (operation->alg == PSA_ALG_CCM) { status = mbedtls_to_psa_error( - mbedtls_ccm_update_ad( &operation->ctx.ccm, input, input_length ) ); - } - else + mbedtls_ccm_update_ad(&operation->ctx.ccm, input, input_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation->alg == PSA_ALG_CHACHA20_POLY1305 ) - { + if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { status = mbedtls_to_psa_error( - mbedtls_chachapoly_update_aad( &operation->ctx.chachapoly, + mbedtls_chachapoly_update_aad(&operation->ctx.chachapoly, input, - input_length ) ); - } - else + input_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { - ( void ) operation; - ( void ) input; - ( void ) input_length; + (void) operation; + (void) input; + (void) input_length; - return ( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - return ( status ); + return status; } /* Encrypt or decrypt a message fragment in an active multipart AEAD @@ -516,7 +503,7 @@ psa_status_t mbedtls_psa_aead_update( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ) + size_t *output_length) { size_t update_output_length; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -524,57 +511,54 @@ psa_status_t mbedtls_psa_aead_update( update_output_length = input_length; #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation->alg == PSA_ALG_GCM ) - { + if (operation->alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_update( &operation->ctx.gcm, - input, input_length, - output, output_size, - &update_output_length ) ); - } - else -#endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation->alg == PSA_ALG_CCM ) - { - if( output_size < input_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - - status = mbedtls_to_psa_error( - mbedtls_ccm_update( &operation->ctx.ccm, + mbedtls_gcm_update(&operation->ctx.gcm, input, input_length, output, output_size, - &update_output_length ) ); - } - else -#endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ -#if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation->alg == PSA_ALG_CHACHA20_POLY1305 ) - { - if( output_size < input_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + &update_output_length)); + } else +#endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) + if (operation->alg == PSA_ALG_CCM) { + if (output_size < input_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } status = mbedtls_to_psa_error( - mbedtls_chachapoly_update( &operation->ctx.chachapoly, + mbedtls_ccm_update(&operation->ctx.ccm, + input, input_length, + output, output_size, + &update_output_length)); + } else +#endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ +#if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) + if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { + if (output_size < input_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + + status = mbedtls_to_psa_error( + mbedtls_chachapoly_update(&operation->ctx.chachapoly, input_length, input, - output ) ); - } - else + output)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { - ( void ) operation; - ( void ) input; - ( void ) output; - ( void ) output_size; + (void) operation; + (void) input; + (void) output; + (void) output_size; - return ( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *output_length = update_output_length; + } - return( status ); + return status; } /* Finish encrypting a message in a multipart AEAD operation. */ @@ -585,103 +569,97 @@ psa_status_t mbedtls_psa_aead_finish( size_t *ciphertext_length, uint8_t *tag, size_t tag_size, - size_t *tag_length ) + size_t *tag_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t finish_output_size = 0; - if( tag_size < operation->tag_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (tag_size < operation->tag_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - if( operation->alg == PSA_ALG_GCM ) - { + if (operation->alg == PSA_ALG_GCM) { status = mbedtls_to_psa_error( - mbedtls_gcm_finish( &operation->ctx.gcm, - ciphertext, ciphertext_size, ciphertext_length, - tag, operation->tag_length ) ); - } - else + mbedtls_gcm_finish(&operation->ctx.gcm, + ciphertext, ciphertext_size, ciphertext_length, + tag, operation->tag_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - if( operation->alg == PSA_ALG_CCM ) - { + if (operation->alg == PSA_ALG_CCM) { /* tag must be big enough to store a tag of size passed into set * lengths. */ - if( tag_size < operation->tag_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (tag_size < operation->tag_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } status = mbedtls_to_psa_error( - mbedtls_ccm_finish( &operation->ctx.ccm, - tag, operation->tag_length ) ); - } - else + mbedtls_ccm_finish(&operation->ctx.ccm, + tag, operation->tag_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - if( operation->alg == PSA_ALG_CHACHA20_POLY1305 ) - { + if (operation->alg == PSA_ALG_CHACHA20_POLY1305) { /* Belt and braces. Although the above tag_size check should have * already done this, if we later start supporting smaller tag sizes * for chachapoly, then passing a tag buffer smaller than 16 into here * could cause a buffer overflow, so better safe than sorry. */ - if( tag_size < 16 ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (tag_size < 16) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } status = mbedtls_to_psa_error( - mbedtls_chachapoly_finish( &operation->ctx.chachapoly, - tag ) ); - } - else + mbedtls_chachapoly_finish(&operation->ctx.chachapoly, + tag)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ { - ( void ) ciphertext; - ( void ) ciphertext_size; - ( void ) ciphertext_length; - ( void ) tag; - ( void ) tag_size; - ( void ) tag_length; + (void) ciphertext; + (void) ciphertext_size; + (void) ciphertext_length; + (void) tag; + (void) tag_size; + (void) tag_length; - return ( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { /* This will be zero for all supported algorithms currently, but left * here for future support. */ *ciphertext_length = finish_output_size; *tag_length = operation->tag_length; } - return ( status ); + return status; } /* Abort an AEAD operation */ psa_status_t mbedtls_psa_aead_abort( - mbedtls_psa_aead_operation_t *operation ) + mbedtls_psa_aead_operation_t *operation) { - switch( operation->alg ) - { + switch (operation->alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) case PSA_ALG_CCM: - mbedtls_ccm_free( &operation->ctx.ccm ); + mbedtls_ccm_free(&operation->ctx.ccm); break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_CCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) case PSA_ALG_GCM: - mbedtls_gcm_free( &operation->ctx.gcm ); + mbedtls_gcm_free(&operation->ctx.gcm); break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_GCM */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) case PSA_ALG_CHACHA20_POLY1305: - mbedtls_chachapoly_free( &operation->ctx.chachapoly ); + mbedtls_chachapoly_free(&operation->ctx.chachapoly); break; #endif /* MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305 */ } operation->is_encrypt = 0; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_CRYPTO_C */ - diff --git a/library/psa_crypto_aead.h b/library/psa_crypto_aead.h index 70f714a83..2ae8fe82d 100644 --- a/library/psa_crypto_aead.h +++ b/library/psa_crypto_aead.h @@ -83,7 +83,7 @@ psa_status_t mbedtls_psa_aead_encrypt( 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 ); + uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length); /** * \brief Process an authenticated decryption operation. @@ -146,7 +146,7 @@ psa_status_t mbedtls_psa_aead_decrypt( 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 ); + uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length); /** Set the key for a multipart authenticated encryption operation. * @@ -189,7 +189,7 @@ psa_status_t mbedtls_psa_aead_encrypt_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ); + psa_algorithm_t alg); /** Set the key for a multipart authenticated decryption operation. * @@ -232,7 +232,7 @@ psa_status_t mbedtls_psa_aead_decrypt_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ); + psa_algorithm_t alg); /** Set the nonce for an authenticated encryption or decryption operation. * @@ -265,7 +265,7 @@ psa_status_t mbedtls_psa_aead_decrypt_setup( psa_status_t mbedtls_psa_aead_set_nonce( mbedtls_psa_aead_operation_t *operation, const uint8_t *nonce, - size_t nonce_length ); + size_t nonce_length); /** Declare the lengths of the message and additional data for AEAD. * @@ -306,7 +306,7 @@ psa_status_t mbedtls_psa_aead_set_nonce( psa_status_t mbedtls_psa_aead_set_lengths( mbedtls_psa_aead_operation_t *operation, size_t ad_length, - size_t plaintext_length ); + size_t plaintext_length); /** Pass additional data to an active AEAD operation. * @@ -343,7 +343,7 @@ psa_status_t mbedtls_psa_aead_set_lengths( psa_status_t mbedtls_psa_aead_update_ad( mbedtls_psa_aead_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); /** Encrypt or decrypt a message fragment in an active AEAD operation. * @@ -406,7 +406,7 @@ psa_status_t mbedtls_psa_aead_update( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); /** Finish encrypting a message in an AEAD operation. * @@ -479,7 +479,7 @@ psa_status_t mbedtls_psa_aead_finish( size_t *ciphertext_length, uint8_t *tag, size_t tag_size, - size_t *tag_length ); + size_t *tag_length); /** Abort an AEAD operation. * @@ -506,6 +506,6 @@ psa_status_t mbedtls_psa_aead_finish( * Success. */ psa_status_t mbedtls_psa_aead_abort( - mbedtls_psa_aead_operation_t *operation ); + mbedtls_psa_aead_operation_t *operation); #endif /* PSA_CRYPTO_AEAD_H */ diff --git a/library/psa_crypto_cipher.c b/library/psa_crypto_cipher.c index 91a0e3b30..c501144e3 100644 --- a/library/psa_crypto_cipher.c +++ b/library/psa_crypto_cipher.c @@ -35,18 +35,17 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t* cipher_id ) + mbedtls_cipher_id_t *cipher_id) { mbedtls_cipher_mode_t mode; mbedtls_cipher_id_t cipher_id_tmp; - if( PSA_ALG_IS_AEAD( alg ) ) - alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 0 ); + if (PSA_ALG_IS_AEAD(alg)) { + alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0); + } - if( PSA_ALG_IS_CIPHER( alg ) || PSA_ALG_IS_AEAD( alg ) ) - { - switch( alg ) - { + if (PSA_ALG_IS_CIPHER(alg) || PSA_ALG_IS_AEAD(alg)) { + switch (alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_STREAM_CIPHER) case PSA_ALG_STREAM_CIPHER: mode = MBEDTLS_MODE_STREAM; @@ -88,31 +87,30 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_CCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0): mode = MBEDTLS_MODE_CCM; break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_GCM) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0): mode = MBEDTLS_MODE_GCM; break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_CHACHA20_POLY1305) - case PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CHACHA20_POLY1305, 0 ): + case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0): mode = MBEDTLS_MODE_CHACHAPOLY; break; #endif default: - return( NULL ); + return NULL; } - } - else if( alg == PSA_ALG_CMAC ) + } else if (alg == PSA_ALG_CMAC) { mode = MBEDTLS_MODE_ECB; - else - return( NULL ); + } else { + return NULL; + } - switch( key_type ) - { + switch (key_type) { #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_AES) case PSA_KEY_TYPE_AES: cipher_id_tmp = MBEDTLS_CIPHER_ID_AES; @@ -127,15 +125,17 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( case PSA_KEY_TYPE_DES: /* key_bits is 64 for Single-DES, 128 for two-key Triple-DES, * and 192 for three-key Triple-DES. */ - if( key_bits == 64 ) + if (key_bits == 64) { cipher_id_tmp = MBEDTLS_CIPHER_ID_DES; - else + } else { cipher_id_tmp = MBEDTLS_CIPHER_ID_3DES; + } /* mbedtls doesn't recognize two-key Triple-DES as an algorithm, * but two-key Triple-DES is functionally three-key Triple-DES * with K1=K3, so that's how we present it to mbedtls. */ - if( key_bits == 128 ) + if (key_bits == 128) { key_bits = 192; + } break; #endif #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_CAMELLIA) @@ -149,13 +149,14 @@ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( break; #endif default: - return( NULL ); + return NULL; } - if( cipher_id != NULL ) + if (cipher_id != NULL) { *cipher_id = cipher_id_tmp; + } - return( mbedtls_cipher_info_from_values( cipher_id_tmp, - (int) key_bits, mode ) ); + return mbedtls_cipher_info_from_values(cipher_id_tmp, + (int) key_bits, mode); } #if defined(MBEDTLS_PSA_BUILTIN_CIPHER) @@ -165,110 +166,112 @@ static psa_status_t psa_cipher_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, psa_algorithm_t alg, - mbedtls_operation_t cipher_operation ) + mbedtls_operation_t cipher_operation) { int ret = 0; size_t key_bits; const mbedtls_cipher_info_t *cipher_info = NULL; psa_key_type_t key_type = attributes->core.type; - (void)key_buffer_size; + (void) key_buffer_size; - mbedtls_cipher_init( &operation->ctx.cipher ); + mbedtls_cipher_init(&operation->ctx.cipher); operation->alg = alg; key_bits = attributes->core.bits; - cipher_info = mbedtls_cipher_info_from_psa( alg, key_type, - key_bits, NULL ); - if( cipher_info == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); + cipher_info = mbedtls_cipher_info_from_psa(alg, key_type, + key_bits, NULL); + if (cipher_info == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } - ret = mbedtls_cipher_setup( &operation->ctx.cipher, cipher_info ); - if( ret != 0 ) + ret = mbedtls_cipher_setup(&operation->ctx.cipher, cipher_info); + if (ret != 0) { goto exit; + } #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_DES) - if( key_type == PSA_KEY_TYPE_DES && key_bits == 128 ) - { + if (key_type == PSA_KEY_TYPE_DES && key_bits == 128) { /* Two-key Triple-DES is 3-key Triple-DES with K1=K3 */ uint8_t keys[24]; - memcpy( keys, key_buffer, 16 ); - memcpy( keys + 16, key_buffer, 8 ); - ret = mbedtls_cipher_setkey( &operation->ctx.cipher, - keys, - 192, cipher_operation ); - } - else + memcpy(keys, key_buffer, 16); + memcpy(keys + 16, key_buffer, 8); + ret = mbedtls_cipher_setkey(&operation->ctx.cipher, + keys, + 192, cipher_operation); + } else #endif { - ret = mbedtls_cipher_setkey( &operation->ctx.cipher, key_buffer, - (int) key_bits, cipher_operation ); + ret = mbedtls_cipher_setkey(&operation->ctx.cipher, key_buffer, + (int) key_bits, cipher_operation); } - if( ret != 0 ) + if (ret != 0) { goto exit; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING) || \ defined(MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7) - switch( alg ) - { + switch (alg) { case PSA_ALG_CBC_NO_PADDING: - ret = mbedtls_cipher_set_padding_mode( &operation->ctx.cipher, - MBEDTLS_PADDING_NONE ); + ret = mbedtls_cipher_set_padding_mode(&operation->ctx.cipher, + MBEDTLS_PADDING_NONE); break; case PSA_ALG_CBC_PKCS7: - ret = mbedtls_cipher_set_padding_mode( &operation->ctx.cipher, - MBEDTLS_PADDING_PKCS7 ); + ret = mbedtls_cipher_set_padding_mode(&operation->ctx.cipher, + MBEDTLS_PADDING_PKCS7); break; default: /* The algorithm doesn't involve padding. */ ret = 0; break; } - if( ret != 0 ) + if (ret != 0) { goto exit; + } #endif /* MBEDTLS_PSA_BUILTIN_ALG_CBC_NO_PADDING || MBEDTLS_PSA_BUILTIN_ALG_CBC_PKCS7 */ - operation->block_length = ( PSA_ALG_IS_STREAM_CIPHER( alg ) ? 1 : - PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ) ); - operation->iv_length = PSA_CIPHER_IV_LENGTH( key_type, alg ); + operation->block_length = (PSA_ALG_IS_STREAM_CIPHER(alg) ? 1 : + PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type)); + operation->iv_length = PSA_CIPHER_IV_LENGTH(key_type, alg); exit: - return( mbedtls_to_psa_error( ret ) ); + return mbedtls_to_psa_error(ret); } 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 ) + psa_algorithm_t alg) { - return( psa_cipher_setup( operation, attributes, - key_buffer, key_buffer_size, - alg, MBEDTLS_ENCRYPT ) ); + return psa_cipher_setup(operation, attributes, + key_buffer, key_buffer_size, + alg, MBEDTLS_ENCRYPT); } 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 ) + psa_algorithm_t alg) { - return( psa_cipher_setup( operation, attributes, - key_buffer, key_buffer_size, - alg, MBEDTLS_DECRYPT ) ); + return psa_cipher_setup(operation, attributes, + key_buffer, key_buffer_size, + alg, MBEDTLS_DECRYPT); } psa_status_t mbedtls_psa_cipher_set_iv( mbedtls_psa_cipher_operation_t *operation, - const uint8_t *iv, size_t iv_length ) + const uint8_t *iv, size_t iv_length) { - if( iv_length != operation->iv_length ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (iv_length != operation->iv_length) { + return PSA_ERROR_INVALID_ARGUMENT; + } - return( mbedtls_to_psa_error( - mbedtls_cipher_set_iv( &operation->ctx.cipher, - iv, iv_length ) ) ); + return mbedtls_to_psa_error( + mbedtls_cipher_set_iv(&operation->ctx.cipher, + iv, iv_length)); } #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING) @@ -300,43 +303,42 @@ static psa_status_t psa_cipher_update_ecb( const uint8_t *input, size_t input_length, uint8_t *output, - size_t *output_length ) + size_t *output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t block_size = ctx->cipher_info->block_size; size_t internal_output_length = 0; *output_length = 0; - if( input_length == 0 ) - { + if (input_length == 0) { status = PSA_SUCCESS; goto exit; } - if( ctx->unprocessed_len > 0 ) - { + if (ctx->unprocessed_len > 0) { /* Fill up to block size, and run the block if there's a full one. */ size_t bytes_to_copy = block_size - ctx->unprocessed_len; - if( input_length < bytes_to_copy ) + if (input_length < bytes_to_copy) { bytes_to_copy = input_length; + } - memcpy( &( ctx->unprocessed_data[ctx->unprocessed_len] ), - input, bytes_to_copy ); + memcpy(&(ctx->unprocessed_data[ctx->unprocessed_len]), + input, bytes_to_copy); input_length -= bytes_to_copy; input += bytes_to_copy; ctx->unprocessed_len += bytes_to_copy; - if( ctx->unprocessed_len == block_size ) - { + if (ctx->unprocessed_len == block_size) { status = mbedtls_to_psa_error( - mbedtls_cipher_update( ctx, - ctx->unprocessed_data, - block_size, - output, &internal_output_length ) ); + mbedtls_cipher_update(ctx, + ctx->unprocessed_data, + block_size, + output, &internal_output_length)); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } output += internal_output_length; *output_length += internal_output_length; @@ -344,16 +346,16 @@ static psa_status_t psa_cipher_update_ecb( } } - while( input_length >= block_size ) - { + while (input_length >= block_size) { /* Run all full blocks we have, one by one */ status = mbedtls_to_psa_error( - mbedtls_cipher_update( ctx, input, - block_size, - output, &internal_output_length ) ); + mbedtls_cipher_update(ctx, input, + block_size, + output, &internal_output_length)); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } input_length -= block_size; input += block_size; @@ -362,122 +364,119 @@ static psa_status_t psa_cipher_update_ecb( *output_length += internal_output_length; } - if( input_length > 0 ) - { + if (input_length > 0) { /* Save unprocessed bytes for later processing */ - memcpy( &( ctx->unprocessed_data[ctx->unprocessed_len] ), - input, input_length ); + memcpy(&(ctx->unprocessed_data[ctx->unprocessed_len]), + input, input_length); ctx->unprocessed_len += input_length; } status = PSA_SUCCESS; exit: - return( status ); + return status; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING */ 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 ) + uint8_t *output, size_t output_size, size_t *output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t expected_output_size; - if( ! PSA_ALG_IS_STREAM_CIPHER( operation->alg ) ) - { + if (!PSA_ALG_IS_STREAM_CIPHER(operation->alg)) { /* Take the unprocessed partial block left over from previous * update calls, if any, plus the input to this call. Remove * the last partial block, if any. You get the data that will be * output in this call. */ expected_output_size = - ( operation->ctx.cipher.unprocessed_len + input_length ) + (operation->ctx.cipher.unprocessed_len + input_length) / operation->block_length * operation->block_length; - } - else - { + } else { expected_output_size = input_length; } - if( output_size < expected_output_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (output_size < expected_output_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING) - if( operation->alg == PSA_ALG_ECB_NO_PADDING ) - { + if (operation->alg == PSA_ALG_ECB_NO_PADDING) { /* mbedtls_cipher_update has an API inconsistency: it will only - * process a single block at a time in ECB mode. Abstract away that - * inconsistency here to match the PSA API behaviour. */ - status = psa_cipher_update_ecb( &operation->ctx.cipher, - input, - input_length, - output, - output_length ); - } - else + * process a single block at a time in ECB mode. Abstract away that + * inconsistency here to match the PSA API behaviour. */ + status = psa_cipher_update_ecb(&operation->ctx.cipher, + input, + input_length, + output, + output_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECB_NO_PADDING */ { status = mbedtls_to_psa_error( - mbedtls_cipher_update( &operation->ctx.cipher, input, - input_length, output, output_length ) ); + mbedtls_cipher_update(&operation->ctx.cipher, input, + input_length, output, output_length)); - if( *output_length > output_size ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (*output_length > output_size) { + return PSA_ERROR_CORRUPTION_DETECTED; + } } - return( status ); + return status; } psa_status_t mbedtls_psa_cipher_finish( mbedtls_psa_cipher_operation_t *operation, - uint8_t *output, size_t output_size, size_t *output_length ) + uint8_t *output, size_t output_size, size_t *output_length) { psa_status_t status = PSA_ERROR_GENERIC_ERROR; uint8_t temp_output_buffer[MBEDTLS_MAX_BLOCK_LENGTH]; - if( operation->ctx.cipher.unprocessed_len != 0 ) - { - if( operation->alg == PSA_ALG_ECB_NO_PADDING || - operation->alg == PSA_ALG_CBC_NO_PADDING ) - { + if (operation->ctx.cipher.unprocessed_len != 0) { + if (operation->alg == PSA_ALG_ECB_NO_PADDING || + operation->alg == PSA_ALG_CBC_NO_PADDING) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } } status = mbedtls_to_psa_error( - mbedtls_cipher_finish( &operation->ctx.cipher, - temp_output_buffer, - output_length ) ); - if( status != PSA_SUCCESS ) + mbedtls_cipher_finish(&operation->ctx.cipher, + temp_output_buffer, + output_length)); + if (status != PSA_SUCCESS) { goto exit; + } - if( *output_length == 0 ) + if (*output_length == 0) { ; /* Nothing to copy. Note that output may be NULL in this case. */ - else if( output_size >= *output_length ) - memcpy( output, temp_output_buffer, *output_length ); - else + } else if (output_size >= *output_length) { + memcpy(output, temp_output_buffer, *output_length); + } else { status = PSA_ERROR_BUFFER_TOO_SMALL; + } exit: - mbedtls_platform_zeroize( temp_output_buffer, - sizeof( temp_output_buffer ) ); + mbedtls_platform_zeroize(temp_output_buffer, + sizeof(temp_output_buffer)); - return( status ); + return status; } psa_status_t mbedtls_psa_cipher_abort( - mbedtls_psa_cipher_operation_t *operation ) + mbedtls_psa_cipher_operation_t *operation) { /* Sanity check (shouldn't happen: operation->alg should * always have been initialized to a valid value). */ - if( ! PSA_ALG_IS_CIPHER( operation->alg ) ) - return( PSA_ERROR_BAD_STATE ); + if (!PSA_ALG_IS_CIPHER(operation->alg)) { + return PSA_ERROR_BAD_STATE; + } - mbedtls_cipher_free( &operation->ctx.cipher ); + mbedtls_cipher_free(&operation->ctx.cipher); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_cipher_encrypt( @@ -491,47 +490,51 @@ psa_status_t mbedtls_psa_cipher_encrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ) + size_t *output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_psa_cipher_operation_t operation = MBEDTLS_PSA_CIPHER_OPERATION_INIT; size_t update_output_length, finish_output_length; - status = mbedtls_psa_cipher_encrypt_setup( &operation, attributes, - key_buffer, key_buffer_size, - alg ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_cipher_encrypt_setup(&operation, attributes, + key_buffer, key_buffer_size, + alg); + if (status != PSA_SUCCESS) { goto exit; - - if( iv_length > 0 ) - { - status = mbedtls_psa_cipher_set_iv( &operation, iv, iv_length ); - if( status != PSA_SUCCESS ) - goto exit; } - status = mbedtls_psa_cipher_update( &operation, input, input_length, - output, output_size, - &update_output_length ); - if( status != PSA_SUCCESS ) + if (iv_length > 0) { + status = mbedtls_psa_cipher_set_iv(&operation, iv, iv_length); + if (status != PSA_SUCCESS) { + goto exit; + } + } + + status = mbedtls_psa_cipher_update(&operation, input, input_length, + output, output_size, + &update_output_length); + if (status != PSA_SUCCESS) { goto exit; + } status = mbedtls_psa_cipher_finish( &operation, - mbedtls_buffer_offset( output, update_output_length ), - output_size - update_output_length, &finish_output_length ); - if( status != PSA_SUCCESS ) + mbedtls_buffer_offset(output, update_output_length), + output_size - update_output_length, &finish_output_length); + if (status != PSA_SUCCESS) { goto exit; + } *output_length = update_output_length + finish_output_length; exit: - if( status == PSA_SUCCESS ) - status = mbedtls_psa_cipher_abort( &operation ); - else - mbedtls_psa_cipher_abort( &operation ); + if (status == PSA_SUCCESS) { + status = mbedtls_psa_cipher_abort(&operation); + } else { + mbedtls_psa_cipher_abort(&operation); + } - return( status ); + return status; } psa_status_t mbedtls_psa_cipher_decrypt( @@ -543,52 +546,56 @@ psa_status_t mbedtls_psa_cipher_decrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ) + size_t *output_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_psa_cipher_operation_t operation = MBEDTLS_PSA_CIPHER_OPERATION_INIT; size_t olength, accumulated_length; - status = mbedtls_psa_cipher_decrypt_setup( &operation, attributes, - key_buffer, key_buffer_size, - alg ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_cipher_decrypt_setup(&operation, attributes, + key_buffer, key_buffer_size, + alg); + if (status != PSA_SUCCESS) { goto exit; + } - if( operation.iv_length > 0 ) - { - status = mbedtls_psa_cipher_set_iv( &operation, - input, operation.iv_length ); - if( status != PSA_SUCCESS ) + if (operation.iv_length > 0) { + status = mbedtls_psa_cipher_set_iv(&operation, + input, operation.iv_length); + if (status != PSA_SUCCESS) { goto exit; + } } status = mbedtls_psa_cipher_update( &operation, - mbedtls_buffer_offset_const( input, operation.iv_length ), + mbedtls_buffer_offset_const(input, operation.iv_length), input_length - operation.iv_length, - output, output_size, &olength ); - if( status != PSA_SUCCESS ) + output, output_size, &olength); + if (status != PSA_SUCCESS) { goto exit; + } accumulated_length = olength; status = mbedtls_psa_cipher_finish( &operation, - mbedtls_buffer_offset( output, accumulated_length ), - output_size - accumulated_length, &olength ); - if( status != PSA_SUCCESS ) + mbedtls_buffer_offset(output, accumulated_length), + output_size - accumulated_length, &olength); + if (status != PSA_SUCCESS) { goto exit; + } *output_length = accumulated_length + olength; exit: - if ( status == PSA_SUCCESS ) - status = mbedtls_psa_cipher_abort( &operation ); - else - mbedtls_psa_cipher_abort( &operation ); + if (status == PSA_SUCCESS) { + status = mbedtls_psa_cipher_abort(&operation); + } else { + mbedtls_psa_cipher_abort(&operation); + } - return( status ); + return status; } #endif /* MBEDTLS_PSA_BUILTIN_CIPHER */ diff --git a/library/psa_crypto_cipher.h b/library/psa_crypto_cipher.h index 3bd5360cd..6cc6bf614 100644 --- a/library/psa_crypto_cipher.h +++ b/library/psa_crypto_cipher.h @@ -38,7 +38,7 @@ */ const mbedtls_cipher_info_t *mbedtls_cipher_info_from_psa( psa_algorithm_t alg, psa_key_type_t key_type, size_t key_bits, - mbedtls_cipher_id_t *cipher_id ); + mbedtls_cipher_id_t *cipher_id); /** * \brief Set the key for a multipart symmetric encryption operation. @@ -68,7 +68,7 @@ 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 ); + psa_algorithm_t alg); /** * \brief Set the key for a multipart symmetric decryption operation. @@ -98,7 +98,7 @@ 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 ); + psa_algorithm_t alg); /** Set the IV for a symmetric encryption or decryption operation. * @@ -124,7 +124,7 @@ psa_status_t mbedtls_psa_cipher_decrypt_setup( */ psa_status_t mbedtls_psa_cipher_set_iv( mbedtls_psa_cipher_operation_t *operation, - const uint8_t *iv, size_t iv_length ); + const uint8_t *iv, size_t iv_length); /** Encrypt or decrypt a message fragment in an active cipher operation. * @@ -150,7 +150,7 @@ psa_status_t mbedtls_psa_cipher_set_iv( 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 ); + uint8_t *output, size_t output_size, size_t *output_length); /** Finish encrypting or decrypting a message in a cipher operation. * @@ -180,7 +180,7 @@ psa_status_t mbedtls_psa_cipher_update( */ psa_status_t mbedtls_psa_cipher_finish( mbedtls_psa_cipher_operation_t *operation, - uint8_t *output, size_t output_size, size_t *output_length ); + uint8_t *output, size_t output_size, size_t *output_length); /** Abort a cipher operation. * @@ -197,7 +197,7 @@ psa_status_t mbedtls_psa_cipher_finish( * * \retval #PSA_SUCCESS */ -psa_status_t mbedtls_psa_cipher_abort( mbedtls_psa_cipher_operation_t *operation ); +psa_status_t mbedtls_psa_cipher_abort(mbedtls_psa_cipher_operation_t *operation); /** Encrypt a message using a symmetric cipher. * @@ -241,17 +241,17 @@ psa_status_t mbedtls_psa_cipher_abort( mbedtls_psa_cipher_operation_t *operation * This is a decryption operation for an algorithm that includes * padding, and the ciphertext does not contain valid padding. */ -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 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); /** Decrypt a message using a symmetric cipher. * @@ -292,14 +292,14 @@ psa_status_t mbedtls_psa_cipher_encrypt( const psa_key_attributes_t *attributes, * This is a decryption operation for an algorithm that includes * padding, and the ciphertext does not contain valid padding. */ -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(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); #endif /* PSA_CRYPTO_CIPHER_H */ diff --git a/library/psa_crypto_client.c b/library/psa_crypto_client.c index ab7908634..c3234275a 100644 --- a/library/psa_crypto_client.c +++ b/library/psa_crypto_client.c @@ -26,32 +26,31 @@ #include #include "mbedtls/platform.h" -void psa_reset_key_attributes( psa_key_attributes_t *attributes ) +void psa_reset_key_attributes(psa_key_attributes_t *attributes) { - mbedtls_free( attributes->domain_parameters ); - memset( attributes, 0, sizeof( *attributes ) ); + mbedtls_free(attributes->domain_parameters); + memset(attributes, 0, sizeof(*attributes)); } -psa_status_t psa_set_key_domain_parameters( psa_key_attributes_t *attributes, - psa_key_type_t type, - const uint8_t *data, - size_t data_length ) +psa_status_t psa_set_key_domain_parameters(psa_key_attributes_t *attributes, + psa_key_type_t type, + const uint8_t *data, + size_t data_length) { uint8_t *copy = NULL; - if( data_length != 0 ) - { - copy = mbedtls_calloc( 1, data_length ); - if( copy == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - memcpy( copy, data, data_length ); + if (data_length != 0) { + copy = mbedtls_calloc(1, data_length); + if (copy == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + memcpy(copy, data, data_length); } /* After this point, this function is guaranteed to succeed, so it * can start modifying `*attributes`. */ - if( attributes->domain_parameters != NULL ) - { - mbedtls_free( attributes->domain_parameters ); + if (attributes->domain_parameters != NULL) { + mbedtls_free(attributes->domain_parameters); attributes->domain_parameters = NULL; attributes->domain_parameters_size = 0; } @@ -59,20 +58,22 @@ psa_status_t psa_set_key_domain_parameters( psa_key_attributes_t *attributes, attributes->domain_parameters = copy; attributes->domain_parameters_size = data_length; attributes->core.type = type; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t psa_get_key_domain_parameters( const psa_key_attributes_t *attributes, - uint8_t *data, size_t data_size, size_t *data_length ) + uint8_t *data, size_t data_size, size_t *data_length) { - if( attributes->domain_parameters_size > data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (attributes->domain_parameters_size > data_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } *data_length = attributes->domain_parameters_size; - if( attributes->domain_parameters_size != 0 ) - memcpy( data, attributes->domain_parameters, - attributes->domain_parameters_size ); - return( PSA_SUCCESS ); + if (attributes->domain_parameters_size != 0) { + memcpy(data, attributes->domain_parameters, + attributes->domain_parameters_size); + } + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_CRYPTO_CLIENT */ diff --git a/library/psa_crypto_core.h b/library/psa_crypto_core.h index 614cad1f4..38e4bc5cc 100644 --- a/library/psa_crypto_core.h +++ b/library/psa_crypto_core.h @@ -35,22 +35,22 @@ * \return 0 if the buffer contents are equal, non-zero otherwise */ static inline int mbedtls_psa_safer_memcmp( - const uint8_t *a, const uint8_t *b, size_t n ) + const uint8_t *a, const uint8_t *b, size_t n) { size_t i; unsigned char diff = 0; - for( i = 0; i < n; i++ ) + for (i = 0; i < n; i++) { diff |= a[i] ^ b[i]; + } - return( diff ); + return diff; } /** The data structure representing a key slot, containing key material * and metadata for one key. */ -typedef struct -{ +typedef struct { psa_core_key_attributes_t attr; /* @@ -80,8 +80,7 @@ typedef struct /* Dynamically allocated key data buffer. * Format as specified in psa_export_key(). */ - struct key_data - { + struct key_data { uint8_t *data; size_t bytes; } key; @@ -90,7 +89,7 @@ typedef struct /* A mask of key attribute flags used only internally. * Currently there aren't any. */ #define PSA_KA_MASK_INTERNAL_ONLY ( \ - 0 ) + 0) /** Test whether a key slot is occupied. * @@ -101,9 +100,9 @@ typedef struct * * \return 1 if the slot is occupied, 0 otherwise. */ -static inline int psa_is_key_slot_occupied( const psa_key_slot_t *slot ) +static inline int psa_is_key_slot_occupied(const psa_key_slot_t *slot) { - return( slot->attr.type != 0 ); + return slot->attr.type != 0; } /** Test whether a key slot is locked. @@ -114,9 +113,9 @@ static inline int psa_is_key_slot_occupied( const psa_key_slot_t *slot ) * * \return 1 if the slot is locked, 0 otherwise. */ -static inline int psa_is_key_slot_locked( const psa_key_slot_t *slot ) +static inline int psa_is_key_slot_locked(const psa_key_slot_t *slot) { - return( slot->lock_count > 0 ); + return slot->lock_count > 0; } /** Retrieve flags from psa_key_slot_t::attr::core::flags. @@ -127,10 +126,10 @@ static inline int psa_is_key_slot_locked( const psa_key_slot_t *slot ) * \return The key attribute flags in the given slot, * bitwise-anded with \p mask. */ -static inline uint16_t psa_key_slot_get_flags( const psa_key_slot_t *slot, - uint16_t mask ) +static inline uint16_t psa_key_slot_get_flags(const psa_key_slot_t *slot, + uint16_t mask) { - return( slot->attr.flags & mask ); + return slot->attr.flags & mask; } /** Set flags in psa_key_slot_t::attr::core::flags. @@ -139,12 +138,12 @@ static inline uint16_t psa_key_slot_get_flags( const psa_key_slot_t *slot, * \param mask The mask of bits to modify. * \param value The new value of the selected bits. */ -static inline void psa_key_slot_set_flags( psa_key_slot_t *slot, - uint16_t mask, - uint16_t value ) +static inline void psa_key_slot_set_flags(psa_key_slot_t *slot, + uint16_t mask, + uint16_t value) { - slot->attr.flags = ( ( ~mask & slot->attr.flags ) | - ( mask & value ) ); + slot->attr.flags = ((~mask & slot->attr.flags) | + (mask & value)); } /** Turn on flags in psa_key_slot_t::attr::core::flags. @@ -152,8 +151,8 @@ static inline void psa_key_slot_set_flags( psa_key_slot_t *slot, * \param[in,out] slot The key slot to modify. * \param mask The mask of bits to set. */ -static inline void psa_key_slot_set_bits_in_flags( psa_key_slot_t *slot, - uint16_t mask ) +static inline void psa_key_slot_set_bits_in_flags(psa_key_slot_t *slot, + uint16_t mask) { slot->attr.flags |= mask; } @@ -163,8 +162,8 @@ static inline void psa_key_slot_set_bits_in_flags( psa_key_slot_t *slot, * \param[in,out] slot The key slot to modify. * \param mask The mask of bits to clear. */ -static inline void psa_key_slot_clear_bits( psa_key_slot_t *slot, - uint16_t mask ) +static inline void psa_key_slot_clear_bits(psa_key_slot_t *slot, + uint16_t mask) { slot->attr.flags &= ~mask; } @@ -177,9 +176,9 @@ static inline void psa_key_slot_clear_bits( psa_key_slot_t *slot, * secure element, otherwise the behaviour is undefined. */ static inline psa_key_slot_number_t psa_key_slot_get_slot_number( - const psa_key_slot_t *slot ) + const psa_key_slot_t *slot) { - return( *( (psa_key_slot_number_t *)( slot->key.data ) ) ); + return *((psa_key_slot_number_t *) (slot->key.data)); } #endif @@ -196,10 +195,10 @@ static inline psa_key_slot_number_t psa_key_slot_get_slot_number( * On success, the returned key slot is locked. It is the responsibility of * the caller to unlock the key slot when it does not access it anymore. */ -psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, - psa_key_slot_t **p_slot, - psa_key_usage_t usage, - psa_algorithm_t alg ); +psa_status_t psa_get_and_lock_key_slot_with_policy(mbedtls_svc_key_id_t key, + psa_key_slot_t **p_slot, + psa_key_usage_t usage, + psa_algorithm_t alg); /** Completely wipe a slot in memory, including its policy. * @@ -212,7 +211,7 @@ psa_status_t psa_get_and_lock_key_slot_with_policy( mbedtls_svc_key_id_t key, * already fully wiped. * \retval #PSA_ERROR_CORRUPTION_DETECTED */ -psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot ); +psa_status_t psa_wipe_key_slot(psa_key_slot_t *slot); /** Try to allocate a buffer to an empty key slot. * @@ -226,11 +225,11 @@ psa_status_t psa_wipe_key_slot( psa_key_slot_t *slot ); * \retval #PSA_ERROR_ALREADY_EXISTS * Trying to allocate a buffer to a non-empty key slot. */ -psa_status_t psa_allocate_buffer_to_slot( psa_key_slot_t *slot, - size_t buffer_length ); +psa_status_t psa_allocate_buffer_to_slot(psa_key_slot_t *slot, + size_t buffer_length); /** Wipe key data from a slot. Preserves metadata such as the policy. */ -psa_status_t psa_remove_key_data_from_memory( psa_key_slot_t *slot ); +psa_status_t psa_remove_key_data_from_memory(psa_key_slot_t *slot); /** Copy key data (in export format) into an empty key slot. * @@ -249,9 +248,9 @@ psa_status_t psa_remove_key_data_from_memory( psa_key_slot_t *slot ); * \retval #PSA_ERROR_ALREADY_EXISTS * There was other key material already present in the slot. */ -psa_status_t psa_copy_key_material_into_slot( psa_key_slot_t *slot, - const uint8_t *data, - size_t data_length ); +psa_status_t psa_copy_key_material_into_slot(psa_key_slot_t *slot, + const uint8_t *data, + size_t data_length); /** Convert an mbed TLS error code to a PSA error code * @@ -262,7 +261,7 @@ psa_status_t psa_copy_key_material_into_slot( psa_key_slot_t *slot, * * \return The corresponding PSA error code */ -psa_status_t mbedtls_to_psa_error( int ret ); +psa_status_t mbedtls_to_psa_error(int ret); /** Import a key in binary format. * @@ -294,7 +293,7 @@ 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 ); + size_t *key_buffer_length, size_t *bits); /** Export a key in binary format * @@ -321,7 +320,7 @@ psa_status_t psa_import_key_into_slot( 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 ); + uint8_t *data, size_t data_size, size_t *data_length); /** Export a public key or the public part of a key pair in binary format. * @@ -349,7 +348,7 @@ psa_status_t psa_export_key_internal( psa_status_t psa_export_public_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 ); + uint8_t *data, size_t data_size, size_t *data_length); /** * \brief Generate a key. @@ -371,10 +370,10 @@ psa_status_t psa_export_public_key_internal( * \retval #PSA_ERROR_BUFFER_TOO_SMALL * The size of \p key_buffer is too small. */ -psa_status_t psa_generate_key_internal( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, - size_t key_buffer_size, - size_t *key_buffer_length ); +psa_status_t psa_generate_key_internal(const psa_key_attributes_t *attributes, + uint8_t *key_buffer, + size_t key_buffer_size, + size_t *key_buffer_length); /** Sign a message with a private key. For hash-and-sign algorithms, * this includes the hashing step. @@ -417,7 +416,7 @@ 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 ); + uint8_t *signature, size_t signature_size, size_t *signature_length); /** Verify the signature of a message with a public key, using * a hash-and-sign verification algorithm. @@ -454,7 +453,7 @@ 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 ); + const uint8_t *signature, size_t signature_length); /** Sign an already-calculated hash with a private key. * @@ -493,7 +492,7 @@ 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 ); + uint8_t *signature, size_t signature_size, size_t *signature_length); /** * \brief Verify the signature a hash or short message using a public key. @@ -528,7 +527,7 @@ 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 ); + const uint8_t *signature, size_t signature_length); /** * \brief Validate the key bit size for unstructured keys. @@ -547,8 +546,8 @@ psa_status_t psa_verify_hash_builtin( * The type and/or the size in bits of the key or the combination of * the two is not supported. */ -psa_status_t psa_validate_unstructured_key_bit_size( psa_key_type_t type, - size_t bits ); +psa_status_t psa_validate_unstructured_key_bit_size(psa_key_type_t type, + size_t bits); /** Perform a key agreement and return the raw shared secret, using built-in raw key agreement functions. @@ -605,6 +604,6 @@ psa_status_t psa_key_agreement_raw_builtin( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ); + size_t *shared_secret_length); #endif /* PSA_CRYPTO_CORE_H */ diff --git a/library/psa_crypto_driver_wrappers.h b/library/psa_crypto_driver_wrappers.h index a19d7ecae..da3cd1d5d 100644 --- a/library/psa_crypto_driver_wrappers.h +++ b/library/psa_crypto_driver_wrappers.h @@ -27,8 +27,8 @@ /* * Initialization and termination functions */ -psa_status_t psa_driver_wrapper_init( void ); -void psa_driver_wrapper_free( void ); +psa_status_t psa_driver_wrapper_init(void); +void psa_driver_wrapper_free(void); /* * Signature functions @@ -42,7 +42,7 @@ psa_status_t psa_driver_wrapper_sign_message( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ); + size_t *signature_length); psa_status_t psa_driver_wrapper_verify_message( const psa_key_attributes_t *attributes, @@ -52,19 +52,19 @@ psa_status_t psa_driver_wrapper_verify_message( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ); + size_t signature_length); psa_status_t psa_driver_wrapper_sign_hash( 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 ); + uint8_t *signature, size_t signature_size, size_t *signature_length); psa_status_t psa_driver_wrapper_verify_hash( 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 ); + const uint8_t *signature, size_t signature_length); /* * Key handling functions @@ -74,42 +74,42 @@ psa_status_t psa_driver_wrapper_import_key( 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 ); + size_t *key_buffer_length, size_t *bits); psa_status_t psa_driver_wrapper_export_key( 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 ); + uint8_t *data, size_t data_size, size_t *data_length); psa_status_t psa_driver_wrapper_export_public_key( 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 ); + uint8_t *data, size_t data_size, size_t *data_length); psa_status_t psa_driver_wrapper_get_key_buffer_size( const psa_key_attributes_t *attributes, - size_t *key_buffer_size ); + size_t *key_buffer_size); psa_status_t psa_driver_wrapper_get_key_buffer_size_from_key_data( const psa_key_attributes_t *attributes, const uint8_t *data, size_t data_length, - size_t *key_buffer_size ); + size_t *key_buffer_size); psa_status_t psa_driver_wrapper_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ); + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); psa_status_t psa_driver_wrapper_get_builtin_key( psa_drv_slot_number_t slot_number, psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ); + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); psa_status_t psa_driver_wrapper_copy_key( psa_key_attributes_t *attributes, const uint8_t *source_key, size_t source_key_length, uint8_t *target_key_buffer, size_t target_key_buffer_size, - size_t *target_key_buffer_length ); + size_t *target_key_buffer_length); /* * Cipher functions */ @@ -124,7 +124,7 @@ psa_status_t psa_driver_wrapper_cipher_encrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_cipher_decrypt( const psa_key_attributes_t *attributes, @@ -135,24 +135,24 @@ psa_status_t psa_driver_wrapper_cipher_decrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_cipher_encrypt_setup( 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 ); + psa_algorithm_t alg); psa_status_t psa_driver_wrapper_cipher_decrypt_setup( 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 ); + psa_algorithm_t alg); psa_status_t psa_driver_wrapper_cipher_set_iv( psa_cipher_operation_t *operation, const uint8_t *iv, - size_t iv_length ); + size_t iv_length); psa_status_t psa_driver_wrapper_cipher_update( psa_cipher_operation_t *operation, @@ -160,16 +160,16 @@ psa_status_t psa_driver_wrapper_cipher_update( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_cipher_finish( psa_cipher_operation_t *operation, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_cipher_abort( - psa_cipher_operation_t *operation ); + psa_cipher_operation_t *operation); /* * Hashing functions @@ -184,25 +184,25 @@ psa_status_t psa_driver_wrapper_hash_compute( psa_status_t psa_driver_wrapper_hash_setup( psa_hash_operation_t *operation, - psa_algorithm_t alg ); + psa_algorithm_t alg); psa_status_t psa_driver_wrapper_hash_clone( const psa_hash_operation_t *source_operation, - psa_hash_operation_t *target_operation ); + psa_hash_operation_t *target_operation); psa_status_t psa_driver_wrapper_hash_update( psa_hash_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t psa_driver_wrapper_hash_finish( psa_hash_operation_t *operation, uint8_t *hash, size_t hash_size, - size_t *hash_length ); + size_t *hash_length); psa_status_t psa_driver_wrapper_hash_abort( - psa_hash_operation_t *operation ); + psa_hash_operation_t *operation); /* * AEAD functions @@ -215,7 +215,7 @@ psa_status_t psa_driver_wrapper_aead_encrypt( 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 ); + uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length); psa_status_t psa_driver_wrapper_aead_decrypt( const psa_key_attributes_t *attributes, @@ -224,34 +224,34 @@ psa_status_t psa_driver_wrapper_aead_decrypt( 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 ); + uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length); psa_status_t psa_driver_wrapper_aead_encrypt_setup( 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_algorithm_t alg); psa_status_t psa_driver_wrapper_aead_decrypt_setup( 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_algorithm_t alg); psa_status_t psa_driver_wrapper_aead_set_nonce( psa_aead_operation_t *operation, const uint8_t *nonce, - size_t nonce_length ); + size_t nonce_length); psa_status_t psa_driver_wrapper_aead_set_lengths( psa_aead_operation_t *operation, size_t ad_length, - size_t plaintext_length ); + size_t plaintext_length); psa_status_t psa_driver_wrapper_aead_update_ad( psa_aead_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t psa_driver_wrapper_aead_update( psa_aead_operation_t *operation, @@ -259,7 +259,7 @@ psa_status_t psa_driver_wrapper_aead_update( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_aead_finish( psa_aead_operation_t *operation, @@ -268,7 +268,7 @@ psa_status_t psa_driver_wrapper_aead_finish( size_t *ciphertext_length, uint8_t *tag, size_t tag_size, - size_t *tag_length ); + size_t *tag_length); psa_status_t psa_driver_wrapper_aead_verify( psa_aead_operation_t *operation, @@ -276,10 +276,10 @@ psa_status_t psa_driver_wrapper_aead_verify( size_t plaintext_size, size_t *plaintext_length, const uint8_t *tag, - size_t tag_length ); + size_t tag_length); psa_status_t psa_driver_wrapper_aead_abort( - psa_aead_operation_t *operation ); + psa_aead_operation_t *operation); /* * MAC functions @@ -293,40 +293,40 @@ psa_status_t psa_driver_wrapper_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t psa_driver_wrapper_mac_sign_setup( 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_algorithm_t alg); psa_status_t psa_driver_wrapper_mac_verify_setup( 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_algorithm_t alg); psa_status_t psa_driver_wrapper_mac_update( psa_mac_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t psa_driver_wrapper_mac_sign_finish( psa_mac_operation_t *operation, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t psa_driver_wrapper_mac_verify_finish( psa_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ); + size_t mac_length); psa_status_t psa_driver_wrapper_mac_abort( - psa_mac_operation_t *operation ); + psa_mac_operation_t *operation); /* * Asymmetric cryptography @@ -342,7 +342,7 @@ psa_status_t psa_driver_wrapper_asymmetric_encrypt( size_t salt_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); psa_status_t psa_driver_wrapper_asymmetric_decrypt( const psa_key_attributes_t *attributes, @@ -355,7 +355,7 @@ psa_status_t psa_driver_wrapper_asymmetric_decrypt( size_t salt_length, uint8_t *output, size_t output_size, - size_t *output_length ); + size_t *output_length); /* * Raw Key Agreement @@ -369,7 +369,7 @@ psa_status_t psa_driver_wrapper_key_agreement( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ); + size_t *shared_secret_length); #endif /* PSA_CRYPTO_DRIVER_WRAPPERS_H */ diff --git a/library/psa_crypto_ecp.c b/library/psa_crypto_ecp.c index 537a74840..c4ccefd75 100644 --- a/library/psa_crypto_ecp.c +++ b/library/psa_crypto_ecp.c @@ -45,25 +45,25 @@ psa_status_t mbedtls_psa_ecp_load_representation( psa_key_type_t type, size_t curve_bits, const uint8_t *data, size_t data_length, - mbedtls_ecp_keypair **p_ecp ) + mbedtls_ecp_keypair **p_ecp) { mbedtls_ecp_group_id grp_id = MBEDTLS_ECP_DP_NONE; psa_status_t status; mbedtls_ecp_keypair *ecp = NULL; size_t curve_bytes = data_length; - int explicit_bits = ( curve_bits != 0 ); + int explicit_bits = (curve_bits != 0); - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) && - PSA_KEY_TYPE_ECC_GET_FAMILY( type ) != PSA_ECC_FAMILY_MONTGOMERY ) - { + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type) && + PSA_KEY_TYPE_ECC_GET_FAMILY(type) != PSA_ECC_FAMILY_MONTGOMERY) { /* A Weierstrass public key is represented as: * - The byte 0x04; * - `x_P` as a `ceiling(m/8)`-byte string, big-endian; * - `y_P` as a `ceiling(m/8)`-byte string, big-endian. * So its data length is 2m+1 where m is the curve size in bits. */ - if( ( data_length & 1 ) == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if ((data_length & 1) == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } curve_bytes = data_length / 2; /* Montgomery public keys are represented in compressed format, meaning @@ -73,31 +73,29 @@ psa_status_t mbedtls_psa_ecp_load_representation( * format, meaning their curve_bytes is equal to the amount of input. */ } - if( explicit_bits ) - { + if (explicit_bits) { /* With an explicit bit-size, the data must have the matching length. */ - if( curve_bytes != PSA_BITS_TO_BYTES( curve_bits ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - } - else - { + if (curve_bytes != PSA_BITS_TO_BYTES(curve_bits)) { + return PSA_ERROR_INVALID_ARGUMENT; + } + } else { /* We need to infer the bit-size from the data. Since the only * information we have is the length in bytes, the value of curve_bits * at this stage is rounded up to the nearest multiple of 8. */ - curve_bits = PSA_BYTES_TO_BITS( curve_bytes ); + curve_bits = PSA_BYTES_TO_BITS(curve_bytes); } /* Allocate and initialize a key representation. */ - ecp = mbedtls_calloc( 1, sizeof( mbedtls_ecp_keypair ) ); - if( ecp == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - mbedtls_ecp_keypair_init( ecp ); + ecp = mbedtls_calloc(1, sizeof(mbedtls_ecp_keypair)); + if (ecp == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + mbedtls_ecp_keypair_init(ecp); /* Load the group. */ - grp_id = mbedtls_ecc_group_of_psa( PSA_KEY_TYPE_ECC_GET_FAMILY( type ), - curve_bits, !explicit_bits ); - if( grp_id == MBEDTLS_ECP_DP_NONE ) - { + grp_id = mbedtls_ecc_group_of_psa(PSA_KEY_TYPE_ECC_GET_FAMILY(type), + curve_bits, !explicit_bits); + if (grp_id == MBEDTLS_ECP_DP_NONE) { /* We can't distinguish between a nonsensical family/size combination * (which would warrant PSA_ERROR_INVALID_ARGUMENT) and a * well-regarded curve that Mbed TLS just doesn't know about (which @@ -109,48 +107,48 @@ psa_status_t mbedtls_psa_ecp_load_representation( } status = mbedtls_to_psa_error( - mbedtls_ecp_group_load( &ecp->grp, grp_id ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecp_group_load(&ecp->grp, grp_id)); + if (status != PSA_SUCCESS) { goto exit; + } /* Load the key material. */ - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) - { + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) { /* Load the public value. */ status = mbedtls_to_psa_error( - mbedtls_ecp_point_read_binary( &ecp->grp, &ecp->Q, - data, - data_length ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecp_point_read_binary(&ecp->grp, &ecp->Q, + data, + data_length)); + if (status != PSA_SUCCESS) { goto exit; + } /* Check that the point is on the curve. */ status = mbedtls_to_psa_error( - mbedtls_ecp_check_pubkey( &ecp->grp, &ecp->Q ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecp_check_pubkey(&ecp->grp, &ecp->Q)); + if (status != PSA_SUCCESS) { goto exit; - } - else - { + } + } else { /* Load and validate the secret value. */ status = mbedtls_to_psa_error( - mbedtls_ecp_read_key( ecp->grp.id, - ecp, - data, - data_length ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecp_read_key(ecp->grp.id, + ecp, + data, + data_length)); + if (status != PSA_SUCCESS) { goto exit; + } } *p_ecp = ecp; exit: - if( status != PSA_SUCCESS ) - { - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + if (status != PSA_SUCCESS) { + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); } - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) || @@ -165,116 +163,119 @@ psa_status_t mbedtls_psa_ecp_import_key( 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 ) + size_t *key_buffer_length, size_t *bits) { psa_status_t status; mbedtls_ecp_keypair *ecp = NULL; /* Parse input */ - status = mbedtls_psa_ecp_load_representation( attributes->core.type, - attributes->core.bits, - data, - data_length, - &ecp ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_ecp_load_representation(attributes->core.type, + attributes->core.bits, + data, + data_length, + &ecp); + if (status != PSA_SUCCESS) { goto exit; + } - if( PSA_KEY_TYPE_ECC_GET_FAMILY( attributes->core.type ) == - PSA_ECC_FAMILY_MONTGOMERY ) + if (PSA_KEY_TYPE_ECC_GET_FAMILY(attributes->core.type) == + PSA_ECC_FAMILY_MONTGOMERY) { *bits = ecp->grp.nbits + 1; - else + } else { *bits = ecp->grp.nbits; + } /* Re-export the data to PSA export format. There is currently no support * for other input formats then the export format, so this is a 1-1 * copy operation. */ - status = mbedtls_psa_ecp_export_key( attributes->core.type, - ecp, - key_buffer, - key_buffer_size, - key_buffer_length ); + status = mbedtls_psa_ecp_export_key(attributes->core.type, + ecp, + key_buffer, + key_buffer_size, + key_buffer_length); exit: /* Always free the PK object (will also free contained ECP context) */ - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); - return( status ); + return status; } -psa_status_t mbedtls_psa_ecp_export_key( psa_key_type_t type, - mbedtls_ecp_keypair *ecp, - uint8_t *data, - size_t data_size, - size_t *data_length ) +psa_status_t mbedtls_psa_ecp_export_key(psa_key_type_t type, + mbedtls_ecp_keypair *ecp, + uint8_t *data, + size_t data_size, + size_t *data_length) { psa_status_t status; - if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) - { + if (PSA_KEY_TYPE_IS_PUBLIC_KEY(type)) { /* Check whether the public part is loaded */ - if( mbedtls_ecp_is_zero( &ecp->Q ) ) - { + if (mbedtls_ecp_is_zero(&ecp->Q)) { /* Calculate the public key */ status = mbedtls_to_psa_error( - mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); - if( status != PSA_SUCCESS ) - return( status ); + mbedtls_ecp_mul(&ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE)); + if (status != PSA_SUCCESS) { + return status; + } } status = mbedtls_to_psa_error( - mbedtls_ecp_point_write_binary( &ecp->grp, &ecp->Q, - MBEDTLS_ECP_PF_UNCOMPRESSED, - data_length, - data, - data_size ) ); - if( status != PSA_SUCCESS ) - memset( data, 0, data_size ); + mbedtls_ecp_point_write_binary(&ecp->grp, &ecp->Q, + MBEDTLS_ECP_PF_UNCOMPRESSED, + data_length, + data, + data_size)); + if (status != PSA_SUCCESS) { + memset(data, 0, data_size); + } - return( status ); - } - else - { - if( data_size < PSA_BITS_TO_BYTES( ecp->grp.nbits ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return status; + } else { + if (data_size < PSA_BITS_TO_BYTES(ecp->grp.nbits)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } status = mbedtls_to_psa_error( - mbedtls_ecp_write_key( ecp, - data, - PSA_BITS_TO_BYTES( ecp->grp.nbits ) ) ); - if( status == PSA_SUCCESS ) - *data_length = PSA_BITS_TO_BYTES( ecp->grp.nbits ); - else - memset( data, 0, data_size ); + mbedtls_ecp_write_key(ecp, + data, + PSA_BITS_TO_BYTES(ecp->grp.nbits))); + if (status == PSA_SUCCESS) { + *data_length = PSA_BITS_TO_BYTES(ecp->grp.nbits); + } else { + memset(data, 0, data_size); + } - return( status ); + return status; } } psa_status_t mbedtls_psa_ecp_export_public_key( 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 ) + uint8_t *data, size_t data_size, size_t *data_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_keypair *ecp = NULL; status = mbedtls_psa_ecp_load_representation( attributes->core.type, attributes->core.bits, - key_buffer, key_buffer_size, &ecp ); - if( status != PSA_SUCCESS ) - return( status ); + key_buffer, key_buffer_size, &ecp); + if (status != PSA_SUCCESS) { + return status; + } status = mbedtls_psa_ecp_export_key( - PSA_KEY_TYPE_ECC_PUBLIC_KEY( - PSA_KEY_TYPE_ECC_GET_FAMILY( attributes->core.type ) ), - ecp, data, data_size, data_length ); + PSA_KEY_TYPE_ECC_PUBLIC_KEY( + PSA_KEY_TYPE_ECC_GET_FAMILY(attributes->core.type)), + ecp, data, data_size, data_length); - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) */ @@ -282,45 +283,47 @@ psa_status_t mbedtls_psa_ecp_export_public_key( #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) psa_status_t mbedtls_psa_ecp_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY( - attributes->core.type ); + attributes->core.type); mbedtls_ecp_group_id grp_id = - mbedtls_ecc_group_of_psa( curve, attributes->core.bits, 0 ); + mbedtls_ecc_group_of_psa(curve, attributes->core.bits, 0); const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_grp_id( grp_id ); + mbedtls_ecp_curve_info_from_grp_id(grp_id); mbedtls_ecp_keypair ecp; - if( attributes->domain_parameters_size != 0 ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (attributes->domain_parameters_size != 0) { + return PSA_ERROR_NOT_SUPPORTED; + } - if( grp_id == MBEDTLS_ECP_DP_NONE || curve_info == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (grp_id == MBEDTLS_ECP_DP_NONE || curve_info == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } - mbedtls_ecp_keypair_init( &ecp ); - ret = mbedtls_ecp_gen_key( grp_id, &ecp, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0 ) - { - mbedtls_ecp_keypair_free( &ecp ); - return( mbedtls_to_psa_error( ret ) ); + mbedtls_ecp_keypair_init(&ecp); + ret = mbedtls_ecp_gen_key(grp_id, &ecp, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE); + if (ret != 0) { + mbedtls_ecp_keypair_free(&ecp); + return mbedtls_to_psa_error(ret); } status = mbedtls_to_psa_error( - mbedtls_ecp_write_key( &ecp, key_buffer, key_buffer_size ) ); + mbedtls_ecp_write_key(&ecp, key_buffer, key_buffer_size)); - mbedtls_ecp_keypair_free( &ecp ); + mbedtls_ecp_keypair_free(&ecp); - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *key_buffer_length = key_buffer_size; + } - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) */ @@ -334,7 +337,7 @@ psa_status_t mbedtls_psa_ecdsa_sign_hash( 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 ) + uint8_t *signature, size_t signature_size, size_t *signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_keypair *ecp = NULL; @@ -342,72 +345,70 @@ psa_status_t mbedtls_psa_ecdsa_sign_hash( size_t curve_bytes; mbedtls_mpi r, s; - status = mbedtls_psa_ecp_load_representation( attributes->core.type, - attributes->core.bits, - key_buffer, - key_buffer_size, - &ecp ); - if( status != PSA_SUCCESS ) - return( status ); + status = mbedtls_psa_ecp_load_representation(attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, + &ecp); + if (status != PSA_SUCCESS) { + return status; + } - curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits ); - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &s ); + curve_bytes = PSA_BITS_TO_BYTES(ecp->grp.pbits); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&s); - if( signature_size < 2 * curve_bytes ) - { + if (signature_size < 2 * curve_bytes) { ret = MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; goto cleanup; } - if( PSA_ALG_ECDSA_IS_DETERMINISTIC( alg ) ) - { + if (PSA_ALG_ECDSA_IS_DETERMINISTIC(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH( alg ); - mbedtls_md_type_t md_alg = mbedtls_hash_info_md_from_psa( hash_alg ); - MBEDTLS_MPI_CHK( mbedtls_ecdsa_sign_det_ext( - &ecp->grp, &r, &s, - &ecp->d, hash, - hash_length, md_alg, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); + psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH(alg); + mbedtls_md_type_t md_alg = mbedtls_hash_info_md_from_psa(hash_alg); + MBEDTLS_MPI_CHK(mbedtls_ecdsa_sign_det_ext( + &ecp->grp, &r, &s, + &ecp->d, hash, + hash_length, md_alg, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE)); #else - ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; - goto cleanup; + ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + goto cleanup; #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) */ - } - else - { + } else { (void) alg; - MBEDTLS_MPI_CHK( mbedtls_ecdsa_sign( &ecp->grp, &r, &s, &ecp->d, - hash, hash_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); + MBEDTLS_MPI_CHK(mbedtls_ecdsa_sign(&ecp->grp, &r, &s, &ecp->d, + hash, hash_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE)); } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &r, - signature, - curve_bytes ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &s, - signature + curve_bytes, - curve_bytes ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&r, + signature, + curve_bytes)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&s, + signature + curve_bytes, + curve_bytes)); cleanup: - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &s ); - if( ret == 0 ) + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&s); + if (ret == 0) { *signature_length = 2 * curve_bytes; + } - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); - return( mbedtls_to_psa_error( ret ) ); + return mbedtls_to_psa_error(ret); } psa_status_t mbedtls_psa_ecdsa_verify_hash( 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 ) + const uint8_t *signature, size_t signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_ecp_keypair *ecp = NULL; @@ -415,51 +416,50 @@ psa_status_t mbedtls_psa_ecdsa_verify_hash( size_t curve_bytes; mbedtls_mpi r, s; - (void)alg; + (void) alg; - status = mbedtls_psa_ecp_load_representation( attributes->core.type, - attributes->core.bits, - key_buffer, - key_buffer_size, - &ecp ); - if( status != PSA_SUCCESS ) - return( status ); + status = mbedtls_psa_ecp_load_representation(attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, + &ecp); + if (status != PSA_SUCCESS) { + return status; + } - curve_bytes = PSA_BITS_TO_BYTES( ecp->grp.pbits ); - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &s ); + curve_bytes = PSA_BITS_TO_BYTES(ecp->grp.pbits); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&s); - if( signature_length != 2 * curve_bytes ) - { + if (signature_length != 2 * curve_bytes) { ret = MBEDTLS_ERR_ECP_VERIFY_FAILED; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &r, - signature, - curve_bytes ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &s, - signature + curve_bytes, - curve_bytes ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&r, + signature, + curve_bytes)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&s, + signature + curve_bytes, + curve_bytes)); /* Check whether the public part is loaded. If not, load it. */ - if( mbedtls_ecp_is_zero( &ecp->Q ) ) - { + if (mbedtls_ecp_is_zero(&ecp->Q)) { MBEDTLS_MPI_CHK( - mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, - mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ) ); + mbedtls_ecp_mul(&ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, + mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE)); } - ret = mbedtls_ecdsa_verify( &ecp->grp, hash, hash_length, - &ecp->Q, &r, &s ); + ret = mbedtls_ecdsa_verify(&ecp->grp, hash, hash_length, + &ecp->Q, &r, &s); cleanup: - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &s ); - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&s); + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); - return( mbedtls_to_psa_error( ret ) ); + return mbedtls_to_psa_error(ret); } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ @@ -475,64 +475,72 @@ psa_status_t mbedtls_psa_key_agreement_ecdh( 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 ) + size_t *shared_secret_length) { psa_status_t status; - if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( attributes->core.type ) || - ! PSA_ALG_IS_ECDH(alg) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (!PSA_KEY_TYPE_IS_ECC_KEY_PAIR(attributes->core.type) || + !PSA_ALG_IS_ECDH(alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } mbedtls_ecp_keypair *ecp = NULL; status = mbedtls_psa_ecp_load_representation( - attributes->core.type, - attributes->core.bits, - key_buffer, - key_buffer_size, - &ecp ); - if( status != PSA_SUCCESS ) - return( status ); + attributes->core.type, + attributes->core.bits, + key_buffer, + key_buffer_size, + &ecp); + if (status != PSA_SUCCESS) { + return status; + } mbedtls_ecp_keypair *their_key = NULL; mbedtls_ecdh_context ecdh; size_t bits = 0; - psa_ecc_family_t curve = mbedtls_ecc_group_to_psa( ecp->grp.id, &bits ); - mbedtls_ecdh_init( &ecdh ); + psa_ecc_family_t curve = mbedtls_ecc_group_to_psa(ecp->grp.id, &bits); + mbedtls_ecdh_init(&ecdh); status = mbedtls_psa_ecp_load_representation( - PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve), - bits, - peer_key, - peer_key_length, - &their_key ); - if( status != PSA_SUCCESS ) + PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve), + bits, + peer_key, + peer_key_length, + &their_key); + if (status != PSA_SUCCESS) { goto exit; + } status = mbedtls_to_psa_error( - mbedtls_ecdh_get_params( &ecdh, their_key, MBEDTLS_ECDH_THEIRS ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecdh_get_params(&ecdh, their_key, MBEDTLS_ECDH_THEIRS)); + if (status != PSA_SUCCESS) { goto exit; + } status = mbedtls_to_psa_error( - mbedtls_ecdh_get_params( &ecdh, ecp, MBEDTLS_ECDH_OURS ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecdh_get_params(&ecdh, ecp, MBEDTLS_ECDH_OURS)); + if (status != PSA_SUCCESS) { goto exit; + } status = mbedtls_to_psa_error( - mbedtls_ecdh_calc_secret( &ecdh, - shared_secret_length, - shared_secret, shared_secret_size, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); - if( status != PSA_SUCCESS ) + mbedtls_ecdh_calc_secret(&ecdh, + shared_secret_length, + shared_secret, shared_secret_size, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE)); + if (status != PSA_SUCCESS) { goto exit; - if( PSA_BITS_TO_BYTES( bits ) != *shared_secret_length ) + } + if (PSA_BITS_TO_BYTES(bits) != *shared_secret_length) { status = PSA_ERROR_CORRUPTION_DETECTED; + } exit: - if( status != PSA_SUCCESS ) - mbedtls_platform_zeroize( shared_secret, shared_secret_size ); - mbedtls_ecdh_free( &ecdh ); - mbedtls_ecp_keypair_free( their_key ); - mbedtls_free( their_key ); - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); - return( status ); + if (status != PSA_SUCCESS) { + mbedtls_platform_zeroize(shared_secret, shared_secret_size); + } + mbedtls_ecdh_free(&ecdh); + mbedtls_ecp_keypair_free(their_key); + mbedtls_free(their_key); + mbedtls_ecp_keypair_free(ecp); + mbedtls_free(ecp); + return status; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_ECDH */ diff --git a/library/psa_crypto_ecp.h b/library/psa_crypto_ecp.h index 386e87aa9..71f9d6acc 100644 --- a/library/psa_crypto_ecp.h +++ b/library/psa_crypto_ecp.h @@ -42,11 +42,11 @@ * contents of the context and the context itself * when done. */ -psa_status_t mbedtls_psa_ecp_load_representation( psa_key_type_t type, - size_t curve_bits, - const uint8_t *data, - size_t data_length, - mbedtls_ecp_keypair **p_ecp ); +psa_status_t mbedtls_psa_ecp_load_representation(psa_key_type_t type, + size_t curve_bits, + const uint8_t *data, + size_t data_length, + mbedtls_ecp_keypair **p_ecp); /** Import an ECP key in binary format. * @@ -78,7 +78,7 @@ psa_status_t mbedtls_psa_ecp_import_key( 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 ); + size_t *key_buffer_length, size_t *bits); /** Export an ECP key to export representation * @@ -88,11 +88,11 @@ psa_status_t mbedtls_psa_ecp_import_key( * \param[in] data_size The length of the buffer to export to * \param[out] data_length The amount of bytes written to \p data */ -psa_status_t mbedtls_psa_ecp_export_key( psa_key_type_t type, - mbedtls_ecp_keypair *ecp, - uint8_t *data, - size_t data_size, - size_t *data_length ); +psa_status_t mbedtls_psa_ecp_export_key(psa_key_type_t type, + mbedtls_ecp_keypair *ecp, + uint8_t *data, + size_t data_size, + size_t *data_length); /** Export an ECP public key or the public part of an ECP key pair in binary * format. @@ -121,7 +121,7 @@ psa_status_t mbedtls_psa_ecp_export_key( psa_key_type_t type, psa_status_t mbedtls_psa_ecp_export_public_key( 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 ); + uint8_t *data, size_t data_size, size_t *data_length); /** * \brief Generate an ECP key. @@ -144,7 +144,7 @@ psa_status_t mbedtls_psa_ecp_export_public_key( */ psa_status_t mbedtls_psa_ecp_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ); + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); /** Sign an already-calculated hash with ECDSA. * @@ -182,7 +182,7 @@ psa_status_t mbedtls_psa_ecdsa_sign_hash( 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 ); + uint8_t *signature, size_t signature_size, size_t *signature_length); /** * \brief Verify an ECDSA hash or short message signature. @@ -217,7 +217,7 @@ psa_status_t mbedtls_psa_ecdsa_verify_hash( 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 ); + const uint8_t *signature, size_t signature_length); /** Perform a key agreement and return the raw ECDH shared secret. @@ -266,5 +266,5 @@ psa_status_t mbedtls_psa_key_agreement_ecdh( 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 ); + size_t *shared_secret_length); #endif /* PSA_CRYPTO_ECP_H */ diff --git a/library/psa_crypto_hash.c b/library/psa_crypto_hash.c index a20c13fc3..ddf70949c 100644 --- a/library/psa_crypto_hash.c +++ b/library/psa_crypto_hash.c @@ -31,10 +31,9 @@ #if defined(MBEDTLS_PSA_BUILTIN_HASH) psa_status_t mbedtls_psa_hash_abort( - mbedtls_psa_hash_operation_t *operation ) + mbedtls_psa_hash_operation_t *operation) { - switch( operation->alg ) - { + switch (operation->alg) { case 0: /* The object has (apparently) been initialized but it is not * in use. It's ok to call abort on such an object, and there's @@ -42,243 +41,240 @@ psa_status_t mbedtls_psa_hash_abort( break; #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) case PSA_ALG_MD5: - mbedtls_md5_free( &operation->ctx.md5 ); + mbedtls_md5_free(&operation->ctx.md5); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) case PSA_ALG_RIPEMD160: - mbedtls_ripemd160_free( &operation->ctx.ripemd160 ); + mbedtls_ripemd160_free(&operation->ctx.ripemd160); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) case PSA_ALG_SHA_1: - mbedtls_sha1_free( &operation->ctx.sha1 ); + mbedtls_sha1_free(&operation->ctx.sha1); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) case PSA_ALG_SHA_224: - mbedtls_sha256_free( &operation->ctx.sha256 ); + mbedtls_sha256_free(&operation->ctx.sha256); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) case PSA_ALG_SHA_256: - mbedtls_sha256_free( &operation->ctx.sha256 ); + mbedtls_sha256_free(&operation->ctx.sha256); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) case PSA_ALG_SHA_384: - mbedtls_sha512_free( &operation->ctx.sha512 ); + mbedtls_sha512_free(&operation->ctx.sha512); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) case PSA_ALG_SHA_512: - mbedtls_sha512_free( &operation->ctx.sha512 ); + mbedtls_sha512_free(&operation->ctx.sha512); break; #endif default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } operation->alg = 0; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_hash_setup( mbedtls_psa_hash_operation_t *operation, - psa_algorithm_t alg ) + psa_algorithm_t alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* A context must be freshly initialized before it can be set up. */ - if( operation->alg != 0 ) - { - return( PSA_ERROR_BAD_STATE ); + if (operation->alg != 0) { + return PSA_ERROR_BAD_STATE; } - switch( alg ) - { + switch (alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) case PSA_ALG_MD5: - mbedtls_md5_init( &operation->ctx.md5 ); - ret = mbedtls_md5_starts( &operation->ctx.md5 ); + mbedtls_md5_init(&operation->ctx.md5); + ret = mbedtls_md5_starts(&operation->ctx.md5); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) case PSA_ALG_RIPEMD160: - mbedtls_ripemd160_init( &operation->ctx.ripemd160 ); - ret = mbedtls_ripemd160_starts( &operation->ctx.ripemd160 ); + mbedtls_ripemd160_init(&operation->ctx.ripemd160); + ret = mbedtls_ripemd160_starts(&operation->ctx.ripemd160); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) case PSA_ALG_SHA_1: - mbedtls_sha1_init( &operation->ctx.sha1 ); - ret = mbedtls_sha1_starts( &operation->ctx.sha1 ); + mbedtls_sha1_init(&operation->ctx.sha1); + ret = mbedtls_sha1_starts(&operation->ctx.sha1); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) case PSA_ALG_SHA_224: - mbedtls_sha256_init( &operation->ctx.sha256 ); - ret = mbedtls_sha256_starts( &operation->ctx.sha256, 1 ); + mbedtls_sha256_init(&operation->ctx.sha256); + ret = mbedtls_sha256_starts(&operation->ctx.sha256, 1); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) case PSA_ALG_SHA_256: - mbedtls_sha256_init( &operation->ctx.sha256 ); - ret = mbedtls_sha256_starts( &operation->ctx.sha256, 0 ); + mbedtls_sha256_init(&operation->ctx.sha256); + ret = mbedtls_sha256_starts(&operation->ctx.sha256, 0); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) case PSA_ALG_SHA_384: - mbedtls_sha512_init( &operation->ctx.sha512 ); - ret = mbedtls_sha512_starts( &operation->ctx.sha512, 1 ); + mbedtls_sha512_init(&operation->ctx.sha512); + ret = mbedtls_sha512_starts(&operation->ctx.sha512, 1); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) case PSA_ALG_SHA_512: - mbedtls_sha512_init( &operation->ctx.sha512 ); - ret = mbedtls_sha512_starts( &operation->ctx.sha512, 0 ); + mbedtls_sha512_init(&operation->ctx.sha512); + ret = mbedtls_sha512_starts(&operation->ctx.sha512, 0); break; #endif default: - return( PSA_ALG_IS_HASH( alg ) ? - PSA_ERROR_NOT_SUPPORTED : - PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ALG_IS_HASH(alg) ? + PSA_ERROR_NOT_SUPPORTED : + PSA_ERROR_INVALID_ARGUMENT; } - if( ret == 0 ) + if (ret == 0) { operation->alg = alg; - else - mbedtls_psa_hash_abort( operation ); - return( mbedtls_to_psa_error( ret ) ); + } else { + mbedtls_psa_hash_abort(operation); + } + return mbedtls_to_psa_error(ret); } psa_status_t mbedtls_psa_hash_clone( const mbedtls_psa_hash_operation_t *source_operation, - mbedtls_psa_hash_operation_t *target_operation ) + mbedtls_psa_hash_operation_t *target_operation) { - switch( source_operation->alg ) - { + switch (source_operation->alg) { case 0: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) case PSA_ALG_MD5: - mbedtls_md5_clone( &target_operation->ctx.md5, - &source_operation->ctx.md5 ); + mbedtls_md5_clone(&target_operation->ctx.md5, + &source_operation->ctx.md5); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) case PSA_ALG_RIPEMD160: - mbedtls_ripemd160_clone( &target_operation->ctx.ripemd160, - &source_operation->ctx.ripemd160 ); + mbedtls_ripemd160_clone(&target_operation->ctx.ripemd160, + &source_operation->ctx.ripemd160); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) case PSA_ALG_SHA_1: - mbedtls_sha1_clone( &target_operation->ctx.sha1, - &source_operation->ctx.sha1 ); + mbedtls_sha1_clone(&target_operation->ctx.sha1, + &source_operation->ctx.sha1); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) case PSA_ALG_SHA_224: - mbedtls_sha256_clone( &target_operation->ctx.sha256, - &source_operation->ctx.sha256 ); + mbedtls_sha256_clone(&target_operation->ctx.sha256, + &source_operation->ctx.sha256); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) case PSA_ALG_SHA_256: - mbedtls_sha256_clone( &target_operation->ctx.sha256, - &source_operation->ctx.sha256 ); + mbedtls_sha256_clone(&target_operation->ctx.sha256, + &source_operation->ctx.sha256); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) case PSA_ALG_SHA_384: - mbedtls_sha512_clone( &target_operation->ctx.sha512, - &source_operation->ctx.sha512 ); + mbedtls_sha512_clone(&target_operation->ctx.sha512, + &source_operation->ctx.sha512); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) case PSA_ALG_SHA_512: - mbedtls_sha512_clone( &target_operation->ctx.sha512, - &source_operation->ctx.sha512 ); + mbedtls_sha512_clone(&target_operation->ctx.sha512, + &source_operation->ctx.sha512); break; #endif default: (void) source_operation; (void) target_operation; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } target_operation->alg = source_operation->alg; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_hash_update( mbedtls_psa_hash_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch( operation->alg ) - { + switch (operation->alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) case PSA_ALG_MD5: - ret = mbedtls_md5_update( &operation->ctx.md5, - input, input_length ); + ret = mbedtls_md5_update(&operation->ctx.md5, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) case PSA_ALG_RIPEMD160: - ret = mbedtls_ripemd160_update( &operation->ctx.ripemd160, - input, input_length ); + ret = mbedtls_ripemd160_update(&operation->ctx.ripemd160, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) case PSA_ALG_SHA_1: - ret = mbedtls_sha1_update( &operation->ctx.sha1, - input, input_length ); + ret = mbedtls_sha1_update(&operation->ctx.sha1, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) case PSA_ALG_SHA_224: - ret = mbedtls_sha256_update( &operation->ctx.sha256, - input, input_length ); + ret = mbedtls_sha256_update(&operation->ctx.sha256, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) case PSA_ALG_SHA_256: - ret = mbedtls_sha256_update( &operation->ctx.sha256, - input, input_length ); + ret = mbedtls_sha256_update(&operation->ctx.sha256, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) case PSA_ALG_SHA_384: - ret = mbedtls_sha512_update( &operation->ctx.sha512, - input, input_length ); + ret = mbedtls_sha512_update(&operation->ctx.sha512, + input, input_length); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) case PSA_ALG_SHA_512: - ret = mbedtls_sha512_update( &operation->ctx.sha512, - input, input_length ); + ret = mbedtls_sha512_update(&operation->ctx.sha512, + input, input_length); break; #endif default: (void) input; (void) input_length; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } - return( mbedtls_to_psa_error( ret ) ); + return mbedtls_to_psa_error(ret); } psa_status_t mbedtls_psa_hash_finish( mbedtls_psa_hash_operation_t *operation, uint8_t *hash, size_t hash_size, - size_t *hash_length ) + size_t *hash_length) { psa_status_t status; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t actual_hash_length = PSA_HASH_LENGTH( operation->alg ); + size_t actual_hash_length = PSA_HASH_LENGTH(operation->alg); /* Fill the output buffer with something that isn't a valid hash * (barring an attack on the hash and deliberately-crafted input), @@ -286,62 +282,62 @@ psa_status_t mbedtls_psa_hash_finish( *hash_length = hash_size; /* If hash_size is 0 then hash may be NULL and then the * call to memset would have undefined behavior. */ - if( hash_size != 0 ) - memset( hash, '!', hash_size ); + if (hash_size != 0) { + memset(hash, '!', hash_size); + } - if( hash_size < actual_hash_length ) - { + if (hash_size < actual_hash_length) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } - switch( operation->alg ) - { + switch (operation->alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_MD5) case PSA_ALG_MD5: - ret = mbedtls_md5_finish( &operation->ctx.md5, hash ); + ret = mbedtls_md5_finish(&operation->ctx.md5, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RIPEMD160) case PSA_ALG_RIPEMD160: - ret = mbedtls_ripemd160_finish( &operation->ctx.ripemd160, hash ); + ret = mbedtls_ripemd160_finish(&operation->ctx.ripemd160, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_1) case PSA_ALG_SHA_1: - ret = mbedtls_sha1_finish( &operation->ctx.sha1, hash ); + ret = mbedtls_sha1_finish(&operation->ctx.sha1, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_224) case PSA_ALG_SHA_224: - ret = mbedtls_sha256_finish( &operation->ctx.sha256, hash ); + ret = mbedtls_sha256_finish(&operation->ctx.sha256, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_256) case PSA_ALG_SHA_256: - ret = mbedtls_sha256_finish( &operation->ctx.sha256, hash ); + ret = mbedtls_sha256_finish(&operation->ctx.sha256, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_384) case PSA_ALG_SHA_384: - ret = mbedtls_sha512_finish( &operation->ctx.sha512, hash ); + ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash); break; #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_SHA_512) case PSA_ALG_SHA_512: - ret = mbedtls_sha512_finish( &operation->ctx.sha512, hash ); + ret = mbedtls_sha512_finish(&operation->ctx.sha512, hash); break; #endif default: (void) hash; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } - status = mbedtls_to_psa_error( ret ); + status = mbedtls_to_psa_error(ret); exit: - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { *hash_length = actual_hash_length; - return( status ); + } + return status; } psa_status_t mbedtls_psa_hash_compute( @@ -357,22 +353,26 @@ psa_status_t mbedtls_psa_hash_compute( psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; *hash_length = hash_size; - status = mbedtls_psa_hash_setup( &operation, alg ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_hash_setup(&operation, alg); + if (status != PSA_SUCCESS) { goto exit; - status = mbedtls_psa_hash_update( &operation, input, input_length ); - if( status != PSA_SUCCESS ) + } + status = mbedtls_psa_hash_update(&operation, input, input_length); + if (status != PSA_SUCCESS) { goto exit; - status = mbedtls_psa_hash_finish( &operation, hash, hash_size, hash_length ); - if( status != PSA_SUCCESS ) + } + status = mbedtls_psa_hash_finish(&operation, hash, hash_size, hash_length); + if (status != PSA_SUCCESS) { goto exit; + } exit: - abort_status = mbedtls_psa_hash_abort( &operation ); - if( status == PSA_SUCCESS ) - return( abort_status ); - else - return( status ); + abort_status = mbedtls_psa_hash_abort(&operation); + if (status == PSA_SUCCESS) { + return abort_status; + } else { + return status; + } } #endif /* MBEDTLS_PSA_BUILTIN_HASH */ diff --git a/library/psa_crypto_hash.h b/library/psa_crypto_hash.h index 053da0bf5..63874e87d 100644 --- a/library/psa_crypto_hash.h +++ b/library/psa_crypto_hash.h @@ -93,7 +93,7 @@ psa_status_t mbedtls_psa_hash_compute( */ psa_status_t mbedtls_psa_hash_setup( mbedtls_psa_hash_operation_t *operation, - psa_algorithm_t alg ); + psa_algorithm_t alg); /** Clone an Mbed TLS hash operation. * @@ -125,7 +125,7 @@ psa_status_t mbedtls_psa_hash_setup( */ psa_status_t mbedtls_psa_hash_clone( const mbedtls_psa_hash_operation_t *source_operation, - mbedtls_psa_hash_operation_t *target_operation ); + mbedtls_psa_hash_operation_t *target_operation); /** Add a message fragment to a multipart Mbed TLS hash operation. * @@ -153,7 +153,7 @@ psa_status_t mbedtls_psa_hash_clone( psa_status_t mbedtls_psa_hash_update( mbedtls_psa_hash_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); /** Finish the calculation of the Mbed TLS-calculated hash of a message. * @@ -193,7 +193,7 @@ psa_status_t mbedtls_psa_hash_finish( mbedtls_psa_hash_operation_t *operation, uint8_t *hash, size_t hash_size, - size_t *hash_length ); + size_t *hash_length); /** Abort an Mbed TLS hash operation. * @@ -220,6 +220,6 @@ psa_status_t mbedtls_psa_hash_finish( * \retval #PSA_ERROR_CORRUPTION_DETECTED */ psa_status_t mbedtls_psa_hash_abort( - mbedtls_psa_hash_operation_t *operation ); + mbedtls_psa_hash_operation_t *operation); #endif /* PSA_CRYPTO_HASH_H */ diff --git a/library/psa_crypto_invasive.h b/library/psa_crypto_invasive.h index 1dd957933..a900dd8ff 100644 --- a/library/psa_crypto_invasive.h +++ b/library/psa_crypto_invasive.h @@ -69,14 +69,14 @@ * The library has already been initialized. */ psa_status_t mbedtls_psa_crypto_configure_entropy_sources( - void (* entropy_init )( mbedtls_entropy_context *ctx ), - void (* entropy_free )( mbedtls_entropy_context *ctx ) ); + void (* entropy_init)(mbedtls_entropy_context *ctx), + void (* entropy_free)(mbedtls_entropy_context *ctx)); #endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */ #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C) psa_status_t psa_mac_key_can_do( psa_algorithm_t algorithm, - psa_key_type_t key_type ); + psa_key_type_t key_type); #endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_PSA_CRYPTO_C */ #endif /* PSA_CRYPTO_INVASIVE_H */ diff --git a/library/psa_crypto_its.h b/library/psa_crypto_its.h index 90e761237..3ceee49be 100644 --- a/library/psa_crypto_its.h +++ b/library/psa_crypto_its.h @@ -45,8 +45,7 @@ typedef uint64_t psa_storage_uid_t; /** * \brief A container for metadata associated with a specific uid */ -struct psa_storage_info_t -{ +struct psa_storage_info_t { uint32_t size; /**< The size of the data associated with a uid **/ psa_storage_create_flags_t flags; /**< The flags set when the uid was created **/ }; @@ -104,7 +103,7 @@ psa_status_t psa_its_get(psa_storage_uid_t uid, uint32_t data_offset, uint32_t data_length, void *p_data, - size_t *p_data_length ); + size_t *p_data_length); /** * \brief Retrieve the metadata about the provided uid diff --git a/library/psa_crypto_mac.c b/library/psa_crypto_mac.c index d771e23e1..07f123ee0 100644 --- a/library/psa_crypto_mac.c +++ b/library/psa_crypto_mac.c @@ -33,22 +33,22 @@ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) static psa_status_t psa_hmac_abort_internal( - mbedtls_psa_hmac_operation_t *hmac ) + mbedtls_psa_hmac_operation_t *hmac) { - mbedtls_platform_zeroize( hmac->opad, sizeof( hmac->opad ) ); - return( psa_hash_abort( &hmac->hash_ctx ) ); + mbedtls_platform_zeroize(hmac->opad, sizeof(hmac->opad)); + return psa_hash_abort(&hmac->hash_ctx); } static psa_status_t psa_hmac_setup_internal( mbedtls_psa_hmac_operation_t *hmac, const uint8_t *key, size_t key_length, - psa_algorithm_t hash_alg ) + psa_algorithm_t hash_alg) { uint8_t ipad[PSA_HMAC_MAX_HASH_BLOCK_SIZE]; size_t i; - size_t hash_size = PSA_HASH_LENGTH( hash_alg ); - size_t block_size = PSA_HASH_BLOCK_LENGTH( hash_alg ); + size_t hash_size = PSA_HASH_LENGTH(hash_alg); + size_t block_size = PSA_HASH_BLOCK_LENGTH(hash_alg); psa_status_t status; hmac->alg = hash_alg; @@ -59,134 +59,149 @@ static psa_status_t psa_hmac_setup_internal( /* The size checks against the ipad and opad buffers cannot be written * `block_size > sizeof( ipad ) || block_size > sizeof( hmac->opad )` * because that triggers -Wlogical-op on GCC 7.3. */ - if( block_size > sizeof( ipad ) ) - return( PSA_ERROR_NOT_SUPPORTED ); - if( block_size > sizeof( hmac->opad ) ) - return( PSA_ERROR_NOT_SUPPORTED ); - if( block_size < hash_size ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (block_size > sizeof(ipad)) { + return PSA_ERROR_NOT_SUPPORTED; + } + if (block_size > sizeof(hmac->opad)) { + return PSA_ERROR_NOT_SUPPORTED; + } + if (block_size < hash_size) { + return PSA_ERROR_NOT_SUPPORTED; + } - if( key_length > block_size ) - { - status = psa_hash_compute( hash_alg, key, key_length, - ipad, sizeof( ipad ), &key_length ); - if( status != PSA_SUCCESS ) + if (key_length > block_size) { + status = psa_hash_compute(hash_alg, key, key_length, + ipad, sizeof(ipad), &key_length); + if (status != PSA_SUCCESS) { goto cleanup; + } } /* A 0-length key is not commonly used in HMAC when used as a MAC, * but it is permitted. It is common when HMAC is used in HKDF, for * example. Don't call `memcpy` in the 0-length because `key` could be * an invalid pointer which would make the behavior undefined. */ - else if( key_length != 0 ) - memcpy( ipad, key, key_length ); + else if (key_length != 0) { + memcpy(ipad, key, key_length); + } /* ipad contains the key followed by garbage. Xor and fill with 0x36 * to create the ipad value. */ - for( i = 0; i < key_length; i++ ) + for (i = 0; i < key_length; i++) { ipad[i] ^= 0x36; - memset( ipad + key_length, 0x36, block_size - key_length ); + } + memset(ipad + key_length, 0x36, block_size - key_length); /* Copy the key material from ipad to opad, flipping the requisite bits, * and filling the rest of opad with the requisite constant. */ - for( i = 0; i < key_length; i++ ) + for (i = 0; i < key_length; i++) { hmac->opad[i] = ipad[i] ^ 0x36 ^ 0x5C; - memset( hmac->opad + key_length, 0x5C, block_size - key_length ); + } + memset(hmac->opad + key_length, 0x5C, block_size - key_length); - status = psa_hash_setup( &hmac->hash_ctx, hash_alg ); - if( status != PSA_SUCCESS ) + status = psa_hash_setup(&hmac->hash_ctx, hash_alg); + if (status != PSA_SUCCESS) { goto cleanup; + } - status = psa_hash_update( &hmac->hash_ctx, ipad, block_size ); + status = psa_hash_update(&hmac->hash_ctx, ipad, block_size); cleanup: - mbedtls_platform_zeroize( ipad, sizeof( ipad ) ); + mbedtls_platform_zeroize(ipad, sizeof(ipad)); - return( status ); + return status; } static psa_status_t psa_hmac_update_internal( mbedtls_psa_hmac_operation_t *hmac, const uint8_t *data, - size_t data_length ) + size_t data_length) { - return( psa_hash_update( &hmac->hash_ctx, data, data_length ) ); + return psa_hash_update(&hmac->hash_ctx, data, data_length); } static psa_status_t psa_hmac_finish_internal( mbedtls_psa_hmac_operation_t *hmac, uint8_t *mac, - size_t mac_size ) + size_t mac_size) { uint8_t tmp[PSA_HASH_MAX_SIZE]; psa_algorithm_t hash_alg = hmac->alg; size_t hash_size = 0; - size_t block_size = PSA_HASH_BLOCK_LENGTH( hash_alg ); + size_t block_size = PSA_HASH_BLOCK_LENGTH(hash_alg); psa_status_t status; - status = psa_hash_finish( &hmac->hash_ctx, tmp, sizeof( tmp ), &hash_size ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_hash_finish(&hmac->hash_ctx, tmp, sizeof(tmp), &hash_size); + if (status != PSA_SUCCESS) { + return status; + } /* From here on, tmp needs to be wiped. */ - status = psa_hash_setup( &hmac->hash_ctx, hash_alg ); - if( status != PSA_SUCCESS ) + status = psa_hash_setup(&hmac->hash_ctx, hash_alg); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &hmac->hash_ctx, hmac->opad, block_size ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&hmac->hash_ctx, hmac->opad, block_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_update( &hmac->hash_ctx, tmp, hash_size ); - if( status != PSA_SUCCESS ) + status = psa_hash_update(&hmac->hash_ctx, tmp, hash_size); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_hash_finish( &hmac->hash_ctx, tmp, sizeof( tmp ), &hash_size ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&hmac->hash_ctx, tmp, sizeof(tmp), &hash_size); + if (status != PSA_SUCCESS) { goto exit; + } - memcpy( mac, tmp, mac_size ); + memcpy(mac, tmp, mac_size); exit: - mbedtls_platform_zeroize( tmp, hash_size ); - return( status ); + mbedtls_platform_zeroize(tmp, hash_size); + return status; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) -static psa_status_t cmac_setup( mbedtls_psa_mac_operation_t *operation, - const psa_key_attributes_t *attributes, - const uint8_t *key_buffer ) +static psa_status_t cmac_setup(mbedtls_psa_mac_operation_t *operation, + const psa_key_attributes_t *attributes, + const uint8_t *key_buffer) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(PSA_WANT_KEY_TYPE_DES) /* Mbed TLS CMAC does not accept 3DES with only two keys, nor does it accept * to do CMAC with pure DES, so return NOT_SUPPORTED here. */ - if( psa_get_key_type( attributes ) == PSA_KEY_TYPE_DES && - ( psa_get_key_bits( attributes ) == 64 || - psa_get_key_bits( attributes ) == 128 ) ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (psa_get_key_type(attributes) == PSA_KEY_TYPE_DES && + (psa_get_key_bits(attributes) == 64 || + psa_get_key_bits(attributes) == 128)) { + return PSA_ERROR_NOT_SUPPORTED; + } #endif - const mbedtls_cipher_info_t * cipher_info = + const mbedtls_cipher_info_t *cipher_info = mbedtls_cipher_info_from_psa( PSA_ALG_CMAC, - psa_get_key_type( attributes ), - psa_get_key_bits( attributes ), - NULL ); + psa_get_key_type(attributes), + psa_get_key_bits(attributes), + NULL); - if( cipher_info == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (cipher_info == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } - ret = mbedtls_cipher_setup( &operation->ctx.cmac, cipher_info ); - if( ret != 0 ) + ret = mbedtls_cipher_setup(&operation->ctx.cmac, cipher_info); + if (ret != 0) { goto exit; + } - ret = mbedtls_cipher_cmac_starts( &operation->ctx.cmac, - key_buffer, - psa_get_key_bits( attributes ) ); + ret = mbedtls_cipher_cmac_starts(&operation->ctx.cmac, + key_buffer, + psa_get_key_bits(attributes)); exit: - return( mbedtls_to_psa_error( ret ) ); + return mbedtls_to_psa_error(ret); } #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ @@ -197,62 +212,53 @@ exit: * called, mbedtls_psa_mac_abort can run and will do the right thing. */ static psa_status_t mac_init( mbedtls_psa_mac_operation_t *operation, - psa_algorithm_t alg ) + psa_algorithm_t alg) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; operation->alg = alg; #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) - if( PSA_ALG_FULL_LENGTH_MAC( operation->alg ) == PSA_ALG_CMAC ) - { - mbedtls_cipher_init( &operation->ctx.cmac ); + if (PSA_ALG_FULL_LENGTH_MAC(operation->alg) == PSA_ALG_CMAC) { + mbedtls_cipher_init(&operation->ctx.cmac); status = PSA_SUCCESS; - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) - if( PSA_ALG_IS_HMAC( operation->alg ) ) - { + if (PSA_ALG_IS_HMAC(operation->alg)) { /* We'll set up the hash operation later in psa_hmac_setup_internal. */ operation->ctx.hmac.alg = 0; status = PSA_SUCCESS; - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ { (void) operation; status = PSA_ERROR_NOT_SUPPORTED; } - if( status != PSA_SUCCESS ) - memset( operation, 0, sizeof( *operation ) ); - return( status ); + if (status != PSA_SUCCESS) { + memset(operation, 0, sizeof(*operation)); + } + return status; } -psa_status_t mbedtls_psa_mac_abort( mbedtls_psa_mac_operation_t *operation ) +psa_status_t mbedtls_psa_mac_abort(mbedtls_psa_mac_operation_t *operation) { - if( operation->alg == 0 ) - { + if (operation->alg == 0) { /* The object has (apparently) been initialized but it is not * in use. It's ok to call abort on such an object, and there's * nothing to do. */ - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) - if( PSA_ALG_FULL_LENGTH_MAC( operation->alg ) == PSA_ALG_CMAC ) - { - mbedtls_cipher_free( &operation->ctx.cmac ); - } - else + if (PSA_ALG_FULL_LENGTH_MAC(operation->alg) == PSA_ALG_CMAC) { + mbedtls_cipher_free(&operation->ctx.cmac); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) - if( PSA_ALG_IS_HMAC( operation->alg ) ) - { - psa_hmac_abort_internal( &operation->ctx.hmac ); - } - else + if (PSA_ALG_IS_HMAC(operation->alg)) { + psa_hmac_abort_internal(&operation->ctx.hmac); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ { /* Sanity check (shouldn't happen: operation->alg should @@ -262,52 +268,50 @@ psa_status_t mbedtls_psa_mac_abort( mbedtls_psa_mac_operation_t *operation ) operation->alg = 0; - return( PSA_SUCCESS ); + return PSA_SUCCESS; bad_state: /* If abort is called on an uninitialized object, we can't trust * anything. Wipe the object in case it contains confidential data. * This may result in a memory leak if a pointer gets overwritten, * but it's too late to do anything about this. */ - memset( operation, 0, sizeof( *operation ) ); - return( PSA_ERROR_BAD_STATE ); + memset(operation, 0, sizeof(*operation)); + return PSA_ERROR_BAD_STATE; } -static psa_status_t psa_mac_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 ) +static psa_status_t psa_mac_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 status = PSA_ERROR_CORRUPTION_DETECTED; /* A context must be freshly initialized before it can be set up. */ - if( operation->alg != 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg != 0) { + return PSA_ERROR_BAD_STATE; + } - status = mac_init( operation, alg ); - if( status != PSA_SUCCESS ) - return( status ); + status = mac_init(operation, alg); + if (status != PSA_SUCCESS) { + return status; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) - if( PSA_ALG_FULL_LENGTH_MAC( alg ) == PSA_ALG_CMAC ) - { + if (PSA_ALG_FULL_LENGTH_MAC(alg) == PSA_ALG_CMAC) { /* Key buffer size for CMAC is dictated by the key bits set on the * attributes, and previously validated by the core on key import. */ (void) key_buffer_size; - status = cmac_setup( operation, attributes, key_buffer ); - } - else + status = cmac_setup(operation, attributes, key_buffer); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) - if( PSA_ALG_IS_HMAC( alg ) ) - { - status = psa_hmac_setup_internal( &operation->ctx.hmac, - key_buffer, - key_buffer_size, - PSA_ALG_HMAC_GET_HASH( alg ) ); - } - else + if (PSA_ALG_IS_HMAC(alg)) { + status = psa_hmac_setup_internal(&operation->ctx.hmac, + key_buffer, + key_buffer_size, + PSA_ALG_HMAC_GET_HASH(alg)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ { (void) attributes; @@ -316,10 +320,11 @@ static psa_status_t psa_mac_setup( mbedtls_psa_mac_operation_t *operation, status = PSA_ERROR_NOT_SUPPORTED; } - if( status != PSA_SUCCESS ) - mbedtls_psa_mac_abort( operation ); + if (status != PSA_SUCCESS) { + mbedtls_psa_mac_abort(operation); + } - return( status ); + return status; } psa_status_t mbedtls_psa_mac_sign_setup( @@ -327,10 +332,10 @@ psa_status_t mbedtls_psa_mac_sign_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { - return( psa_mac_setup( operation, attributes, - key_buffer, key_buffer_size, alg ) ); + return psa_mac_setup(operation, attributes, + key_buffer, key_buffer_size, alg); } psa_status_t mbedtls_psa_mac_verify_setup( @@ -338,69 +343,63 @@ psa_status_t mbedtls_psa_mac_verify_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { - return( psa_mac_setup( operation, attributes, - key_buffer, key_buffer_size, alg ) ); + return psa_mac_setup(operation, attributes, + key_buffer, key_buffer_size, alg); } psa_status_t mbedtls_psa_mac_update( mbedtls_psa_mac_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { - if( operation->alg == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == 0) { + return PSA_ERROR_BAD_STATE; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) - if( PSA_ALG_FULL_LENGTH_MAC( operation->alg ) == PSA_ALG_CMAC ) - { - return( mbedtls_to_psa_error( - mbedtls_cipher_cmac_update( &operation->ctx.cmac, - input, input_length ) ) ); - } - else + if (PSA_ALG_FULL_LENGTH_MAC(operation->alg) == PSA_ALG_CMAC) { + return mbedtls_to_psa_error( + mbedtls_cipher_cmac_update(&operation->ctx.cmac, + input, input_length)); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) - if( PSA_ALG_IS_HMAC( operation->alg ) ) - { - return( psa_hmac_update_internal( &operation->ctx.hmac, - input, input_length ) ); - } - else + if (PSA_ALG_IS_HMAC(operation->alg)) { + return psa_hmac_update_internal(&operation->ctx.hmac, + input, input_length); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ { /* This shouldn't happen if `operation` was initialized by * a setup function. */ (void) input; (void) input_length; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } } static psa_status_t psa_mac_finish_internal( mbedtls_psa_mac_operation_t *operation, - uint8_t *mac, size_t mac_size ) + uint8_t *mac, size_t mac_size) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_CMAC) - if( PSA_ALG_FULL_LENGTH_MAC( operation->alg ) == PSA_ALG_CMAC ) - { + if (PSA_ALG_FULL_LENGTH_MAC(operation->alg) == PSA_ALG_CMAC) { uint8_t tmp[PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE]; - int ret = mbedtls_cipher_cmac_finish( &operation->ctx.cmac, tmp ); - if( ret == 0 ) - memcpy( mac, tmp, mac_size ); - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); - return( mbedtls_to_psa_error( ret ) ); - } - else + int ret = mbedtls_cipher_cmac_finish(&operation->ctx.cmac, tmp); + if (ret == 0) { + memcpy(mac, tmp, mac_size); + } + mbedtls_platform_zeroize(tmp, sizeof(tmp)); + return mbedtls_to_psa_error(ret); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_CMAC */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_HMAC) - if( PSA_ALG_IS_HMAC( operation->alg ) ) - { - return( psa_hmac_finish_internal( &operation->ctx.hmac, - mac, mac_size ) ); - } - else + if (PSA_ALG_IS_HMAC(operation->alg)) { + return psa_hmac_finish_internal(&operation->ctx.hmac, + mac, mac_size); + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC */ { /* This shouldn't happen if `operation` was initialized by @@ -408,7 +407,7 @@ static psa_status_t psa_mac_finish_internal( (void) operation; (void) mac; (void) mac_size; - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } } @@ -416,46 +415,52 @@ 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 ) + size_t *mac_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == 0) { + return PSA_ERROR_BAD_STATE; + } - status = psa_mac_finish_internal( operation, mac, mac_size ); - if( status == PSA_SUCCESS ) + status = psa_mac_finish_internal(operation, mac, mac_size); + if (status == PSA_SUCCESS) { *mac_length = mac_size; + } - return( status ); + return status; } psa_status_t mbedtls_psa_mac_verify_finish( mbedtls_psa_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ) + size_t mac_length) { uint8_t actual_mac[PSA_MAC_MAX_SIZE]; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == 0) { + return PSA_ERROR_BAD_STATE; + } /* Consistency check: requested MAC length fits our local buffer */ - if( mac_length > sizeof( actual_mac ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (mac_length > sizeof(actual_mac)) { + return PSA_ERROR_INVALID_ARGUMENT; + } - status = psa_mac_finish_internal( operation, actual_mac, mac_length ); - if( status != PSA_SUCCESS ) + status = psa_mac_finish_internal(operation, actual_mac, mac_length); + if (status != PSA_SUCCESS) { goto cleanup; + } - if( mbedtls_psa_safer_memcmp( mac, actual_mac, mac_length ) != 0 ) + if (mbedtls_psa_safer_memcmp(mac, actual_mac, mac_length) != 0) { status = PSA_ERROR_INVALID_SIGNATURE; + } cleanup: - mbedtls_platform_zeroize( actual_mac, sizeof( actual_mac ) ); + mbedtls_platform_zeroize(actual_mac, sizeof(actual_mac)); - return( status ); + return status; } psa_status_t mbedtls_psa_mac_compute( @@ -467,32 +472,34 @@ psa_status_t mbedtls_psa_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ) + size_t *mac_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_psa_mac_operation_t operation = MBEDTLS_PSA_MAC_OPERATION_INIT; - status = psa_mac_setup( &operation, - attributes, key_buffer, key_buffer_size, - alg ); - if( status != PSA_SUCCESS ) + status = psa_mac_setup(&operation, + attributes, key_buffer, key_buffer_size, + alg); + if (status != PSA_SUCCESS) { goto exit; - - if( input_length > 0 ) - { - status = mbedtls_psa_mac_update( &operation, input, input_length ); - if( status != PSA_SUCCESS ) - goto exit; } - status = psa_mac_finish_internal( &operation, mac, mac_size ); - if( status == PSA_SUCCESS ) + if (input_length > 0) { + status = mbedtls_psa_mac_update(&operation, input, input_length); + if (status != PSA_SUCCESS) { + goto exit; + } + } + + status = psa_mac_finish_internal(&operation, mac, mac_size); + if (status == PSA_SUCCESS) { *mac_length = mac_size; + } exit: - mbedtls_psa_mac_abort( &operation ); + mbedtls_psa_mac_abort(&operation); - return( status ); + return status; } #endif /* MBEDTLS_PSA_BUILTIN_ALG_HMAC || MBEDTLS_PSA_BUILTIN_ALG_CMAC */ diff --git a/library/psa_crypto_mac.h b/library/psa_crypto_mac.h index a821e7411..21c4de636 100644 --- a/library/psa_crypto_mac.h +++ b/library/psa_crypto_mac.h @@ -164,7 +164,7 @@ psa_status_t mbedtls_psa_mac_verify_setup( psa_status_t mbedtls_psa_mac_update( mbedtls_psa_mac_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); /** Finish the calculation of the MAC of a message using Mbed TLS. * @@ -207,7 +207,7 @@ 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 ); + size_t *mac_length); /** Finish the calculation of the MAC of a message and compare it with * an expected value using Mbed TLS. @@ -247,7 +247,7 @@ psa_status_t mbedtls_psa_mac_sign_finish( psa_status_t mbedtls_psa_mac_verify_finish( mbedtls_psa_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ); + size_t mac_length); /** Abort a MAC operation using Mbed TLS. * @@ -271,6 +271,6 @@ psa_status_t mbedtls_psa_mac_verify_finish( * \retval #PSA_ERROR_CORRUPTION_DETECTED */ psa_status_t mbedtls_psa_mac_abort( - mbedtls_psa_mac_operation_t *operation ); + mbedtls_psa_mac_operation_t *operation); #endif /* PSA_CRYPTO_MAC_H */ diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c index da66dae7d..1f9a8cb33 100644 --- a/library/psa_crypto_pake.c +++ b/library/psa_crypto_pake.c @@ -78,16 +78,14 @@ * psa_pake_abort() */ -enum psa_pake_step -{ +enum psa_pake_step { PSA_PAKE_STEP_INVALID = 0, PSA_PAKE_STEP_X1_X2 = 1, PSA_PAKE_STEP_X2S = 2, PSA_PAKE_STEP_DERIVE = 3, }; -enum psa_pake_state -{ +enum psa_pake_state { PSA_PAKE_STATE_INVALID = 0, PSA_PAKE_STATE_SETUP = 1, PSA_PAKE_STATE_READY = 2, @@ -158,8 +156,7 @@ enum psa_pake_state * psa_pake_get_implicit_key() * => Input & Output Step = PSA_PAKE_STEP_INVALID */ -enum psa_pake_sequence -{ +enum psa_pake_sequence { PSA_PAKE_SEQ_INVALID = 0, PSA_PAKE_X1_STEP_KEY_SHARE = 1, /* also X2S & X4S KEY_SHARE */ PSA_PAKE_X1_STEP_ZK_PUBLIC = 2, /* also X2S & X4S ZK_PUBLIC */ @@ -171,89 +168,83 @@ enum psa_pake_sequence }; #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) -static psa_status_t mbedtls_ecjpake_to_psa_error( int ret ) +static psa_status_t mbedtls_ecjpake_to_psa_error(int ret) { - switch( ret ) - { + switch (ret) { case MBEDTLS_ERR_MPI_BAD_INPUT_DATA: case MBEDTLS_ERR_ECP_BAD_INPUT_DATA: case MBEDTLS_ERR_ECP_INVALID_KEY: case MBEDTLS_ERR_ECP_VERIFY_FAILED: - return( PSA_ERROR_DATA_INVALID ); + return PSA_ERROR_DATA_INVALID; case MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL: case MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL: - return( PSA_ERROR_BUFFER_TOO_SMALL ); + return PSA_ERROR_BUFFER_TOO_SMALL; case MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE: - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; case MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED: - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; default: - return( PSA_ERROR_GENERIC_ERROR ); + return PSA_ERROR_GENERIC_ERROR; } } #endif #if defined(MBEDTLS_PSA_BUILTIN_PAKE) -psa_status_t psa_pake_setup( psa_pake_operation_t *operation, - const psa_pake_cipher_suite_t *cipher_suite) +psa_status_t psa_pake_setup(psa_pake_operation_t *operation, + const psa_pake_cipher_suite_t *cipher_suite) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; /* A context must be freshly initialized before it can be set up. */ - if( operation->alg != PSA_ALG_NONE ) - { + if (operation->alg != PSA_ALG_NONE) { status = PSA_ERROR_BAD_STATE; goto error; } - if( cipher_suite == NULL || - PSA_ALG_IS_PAKE(cipher_suite->algorithm ) == 0 || - ( cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC && - cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_DH ) || - PSA_ALG_IS_HASH( cipher_suite->hash ) == 0 ) - { + if (cipher_suite == NULL || + PSA_ALG_IS_PAKE(cipher_suite->algorithm) == 0 || + (cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC && + cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_DH) || + PSA_ALG_IS_HASH(cipher_suite->hash) == 0) { status = PSA_ERROR_INVALID_ARGUMENT; goto error; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) - if( cipher_suite->algorithm == PSA_ALG_JPAKE ) - { - if( cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || + if (cipher_suite->algorithm == PSA_ALG_JPAKE) { + if (cipher_suite->type != PSA_PAKE_PRIMITIVE_TYPE_ECC || cipher_suite->family != PSA_ECC_FAMILY_SECP_R1 || cipher_suite->bits != 256 || - cipher_suite->hash != PSA_ALG_SHA_256 ) - { + cipher_suite->hash != PSA_ALG_SHA_256) { status = PSA_ERROR_NOT_SUPPORTED; goto error; } operation->alg = cipher_suite->algorithm; - mbedtls_ecjpake_init( &operation->ctx.ecjpake ); + mbedtls_ecjpake_init(&operation->ctx.ecjpake); operation->state = PSA_PAKE_STATE_SETUP; operation->sequence = PSA_PAKE_SEQ_INVALID; operation->input_step = PSA_PAKE_STEP_X1_X2; operation->output_step = PSA_PAKE_STEP_X1_X2; - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); operation->buffer_length = 0; operation->buffer_offset = 0; - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #endif status = PSA_ERROR_NOT_SUPPORTED; error: - psa_pake_abort( operation ); + psa_pake_abort(operation); return status; } -psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, - mbedtls_svc_key_id_t password ) +psa_status_t psa_pake_set_password_key(psa_pake_operation_t *operation, + mbedtls_svc_key_id_t password) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = psa_key_attributes_init(); @@ -261,78 +252,77 @@ psa_status_t psa_pake_set_password_key( psa_pake_operation_t *operation, psa_key_usage_t usage; psa_key_slot_t *slot = NULL; - if( operation->alg == PSA_ALG_NONE || - operation->state != PSA_PAKE_STATE_SETUP ) - { + if (operation->alg == PSA_ALG_NONE || + operation->state != PSA_PAKE_STATE_SETUP) { status = PSA_ERROR_BAD_STATE; goto error; } - status = psa_get_key_attributes( password, &attributes ); - if( status != PSA_SUCCESS ) + status = psa_get_key_attributes(password, &attributes); + if (status != PSA_SUCCESS) { goto error; + } - type = psa_get_key_type( &attributes ); - usage = psa_get_key_usage_flags( &attributes ); + type = psa_get_key_type(&attributes); + usage = psa_get_key_usage_flags(&attributes); - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - if( type != PSA_KEY_TYPE_PASSWORD && - type != PSA_KEY_TYPE_PASSWORD_HASH ) - { + if (type != PSA_KEY_TYPE_PASSWORD && + type != PSA_KEY_TYPE_PASSWORD_HASH) { status = PSA_ERROR_INVALID_ARGUMENT; goto error; } - if( ( usage & PSA_KEY_USAGE_DERIVE ) == 0 ) { + if ((usage & PSA_KEY_USAGE_DERIVE) == 0) { status = PSA_ERROR_NOT_PERMITTED; goto error; } - if( operation->password != NULL ) - return( PSA_ERROR_BAD_STATE ); - - status = psa_get_and_lock_key_slot_with_policy( password, &slot, - PSA_KEY_USAGE_DERIVE, - PSA_ALG_JPAKE ); - if( status != PSA_SUCCESS ) - return( status ); - - operation->password = mbedtls_calloc( 1, slot->key.bytes ); - if( operation->password == NULL ) - { - psa_unlock_key_slot( slot ); - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (operation->password != NULL) { + return PSA_ERROR_BAD_STATE; } - memcpy( operation->password, slot->key.data, slot->key.bytes ); + + status = psa_get_and_lock_key_slot_with_policy(password, &slot, + PSA_KEY_USAGE_DERIVE, + PSA_ALG_JPAKE); + if (status != PSA_SUCCESS) { + return status; + } + + operation->password = mbedtls_calloc(1, slot->key.bytes); + if (operation->password == NULL) { + psa_unlock_key_slot(slot); + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + memcpy(operation->password, slot->key.data, slot->key.bytes); operation->password_len = slot->key.bytes; - status = psa_unlock_key_slot( slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_unlock_key_slot(slot); + if (status != PSA_SUCCESS) { + return status; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; error: psa_pake_abort(operation); - return( status ); + return status; } -psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, - const uint8_t *user_id, - size_t user_id_len ) +psa_status_t psa_pake_set_user(psa_pake_operation_t *operation, + const uint8_t *user_id, + size_t user_id_len) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == PSA_ALG_NONE || - operation->state != PSA_PAKE_STATE_SETUP ) - { + if (operation->alg == PSA_ALG_NONE || + operation->state != PSA_PAKE_STATE_SETUP) { status = PSA_ERROR_BAD_STATE; goto error; } - if( user_id_len == 0 || user_id == NULL ) - { + if (user_id_len == 0 || user_id == NULL) { status = PSA_ERROR_INVALID_ARGUMENT; goto error; } @@ -341,24 +331,22 @@ psa_status_t psa_pake_set_user( psa_pake_operation_t *operation, error: psa_pake_abort(operation); - return( status ); + return status; } -psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, - const uint8_t *peer_id, - size_t peer_id_len ) +psa_status_t psa_pake_set_peer(psa_pake_operation_t *operation, + const uint8_t *peer_id, + size_t peer_id_len) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == PSA_ALG_NONE || - operation->state != PSA_PAKE_STATE_SETUP ) - { + if (operation->alg == PSA_ALG_NONE || + operation->state != PSA_PAKE_STATE_SETUP) { status = PSA_ERROR_BAD_STATE; goto error; } - if( peer_id_len == 0 || peer_id == NULL ) - { + if (peer_id_len == 0 || peer_id == NULL) { status = PSA_ERROR_INVALID_ARGUMENT; goto error; } @@ -367,105 +355,107 @@ psa_status_t psa_pake_set_peer( psa_pake_operation_t *operation, error: psa_pake_abort(operation); - return( status ); + return status; } -psa_status_t psa_pake_set_role( psa_pake_operation_t *operation, - psa_pake_role_t role ) +psa_status_t psa_pake_set_role(psa_pake_operation_t *operation, + psa_pake_role_t role) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == PSA_ALG_NONE || - operation->state != PSA_PAKE_STATE_SETUP ) - { + if (operation->alg == PSA_ALG_NONE || + operation->state != PSA_PAKE_STATE_SETUP) { status = PSA_ERROR_BAD_STATE; goto error; } - if( role != PSA_PAKE_ROLE_NONE && + if (role != PSA_PAKE_ROLE_NONE && role != PSA_PAKE_ROLE_FIRST && role != PSA_PAKE_ROLE_SECOND && role != PSA_PAKE_ROLE_CLIENT && - role != PSA_PAKE_ROLE_SERVER ) - { + role != PSA_PAKE_ROLE_SERVER) { status = PSA_ERROR_INVALID_ARGUMENT; goto error; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) - if( operation->alg == PSA_ALG_JPAKE ) - { - if( role != PSA_PAKE_ROLE_CLIENT && - role != PSA_PAKE_ROLE_SERVER ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (operation->alg == PSA_ALG_JPAKE) { + if (role != PSA_PAKE_ROLE_CLIENT && + role != PSA_PAKE_ROLE_SERVER) { + return PSA_ERROR_NOT_SUPPORTED; + } operation->role = role; - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #endif - status = PSA_ERROR_NOT_SUPPORTED; + status = PSA_ERROR_NOT_SUPPORTED; error: psa_pake_abort(operation); - return( status ); + return status; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) -static psa_status_t psa_pake_ecjpake_setup( psa_pake_operation_t *operation ) +static psa_status_t psa_pake_ecjpake_setup(psa_pake_operation_t *operation) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ecjpake_role role; - if( operation->role == PSA_PAKE_ROLE_CLIENT ) + if (operation->role == PSA_PAKE_ROLE_CLIENT) { role = MBEDTLS_ECJPAKE_CLIENT; - else if( operation->role == PSA_PAKE_ROLE_SERVER ) + } else if (operation->role == PSA_PAKE_ROLE_SERVER) { role = MBEDTLS_ECJPAKE_SERVER; - else - return( PSA_ERROR_BAD_STATE ); + } else { + return PSA_ERROR_BAD_STATE; + } - if( operation->password_len == 0 ) - return( PSA_ERROR_BAD_STATE ); + if (operation->password_len == 0) { + return PSA_ERROR_BAD_STATE; + } - ret = mbedtls_ecjpake_setup( &operation->ctx.ecjpake, - role, - MBEDTLS_MD_SHA256, - MBEDTLS_ECP_DP_SECP256R1, - operation->password, - operation->password_len ); + ret = mbedtls_ecjpake_setup(&operation->ctx.ecjpake, + role, + MBEDTLS_MD_SHA256, + MBEDTLS_ECP_DP_SECP256R1, + operation->password, + operation->password_len); - mbedtls_platform_zeroize( operation->password, operation->password_len ); - mbedtls_free( operation->password ); + mbedtls_platform_zeroize(operation->password, operation->password_len); + mbedtls_free(operation->password); operation->password = NULL; operation->password_len = 0; - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); + if (ret != 0) { + return mbedtls_ecjpake_to_psa_error(ret); + } operation->state = PSA_PAKE_STATE_READY; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif static psa_status_t psa_pake_output_internal( - psa_pake_operation_t *operation, - psa_pake_step_t step, - uint8_t *output, - size_t output_size, - size_t *output_length ) + psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t length; - if( operation->alg == PSA_ALG_NONE || - operation->state == PSA_PAKE_STATE_INVALID ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == PSA_ALG_NONE || + operation->state == PSA_PAKE_STATE_INVALID) { + return PSA_ERROR_BAD_STATE; + } - if( output == NULL || output_size == 0 || output_length == NULL ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (output == NULL || output_size == 0 || output_length == NULL) { + return PSA_ERROR_INVALID_ARGUMENT; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) /* @@ -482,33 +472,32 @@ static psa_status_t psa_pake_output_internal( * and data is sliced down by parsing the ECPoint records in order * to return the right parts on each step. */ - if( operation->alg == PSA_ALG_JPAKE ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE && + if (operation->alg == PSA_ALG_JPAKE) { + if (step != PSA_PAKE_STEP_KEY_SHARE && step != PSA_PAKE_STEP_ZK_PUBLIC && - step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_INVALID_ARGUMENT ); - - if( operation->state == PSA_PAKE_STATE_SETUP ) { - status = psa_pake_ecjpake_setup( operation ); - if( status != PSA_SUCCESS ) - return( status ); + step != PSA_PAKE_STEP_ZK_PROOF) { + return PSA_ERROR_INVALID_ARGUMENT; } - if( operation->state != PSA_PAKE_STATE_READY && + if (operation->state == PSA_PAKE_STATE_SETUP) { + status = psa_pake_ecjpake_setup(operation); + if (status != PSA_SUCCESS) { + return status; + } + } + + if (operation->state != PSA_PAKE_STATE_READY && operation->state != PSA_PAKE_OUTPUT_X1_X2 && - operation->state != PSA_PAKE_OUTPUT_X2S ) - { - return( PSA_ERROR_BAD_STATE ); + operation->state != PSA_PAKE_OUTPUT_X2S) { + return PSA_ERROR_BAD_STATE; } - if( operation->state == PSA_PAKE_STATE_READY ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); + if (operation->state == PSA_PAKE_STATE_READY) { + if (step != PSA_PAKE_STEP_KEY_SHARE) { + return PSA_ERROR_BAD_STATE; + } - switch( operation->output_step ) - { + switch (operation->output_step) { case PSA_PAKE_STEP_X1_X2: operation->state = PSA_PAKE_OUTPUT_X1_X2; break; @@ -516,63 +505,64 @@ static psa_status_t psa_pake_output_internal( operation->state = PSA_PAKE_OUTPUT_X2S; break; default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } /* Check if step matches current sequence */ - switch( operation->sequence ) - { + switch (operation->sequence) { case PSA_PAKE_X1_STEP_KEY_SHARE: case PSA_PAKE_X2_STEP_KEY_SHARE: - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_KEY_SHARE) { + return PSA_ERROR_BAD_STATE; + } break; case PSA_PAKE_X1_STEP_ZK_PUBLIC: case PSA_PAKE_X2_STEP_ZK_PUBLIC: - if( step != PSA_PAKE_STEP_ZK_PUBLIC ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_ZK_PUBLIC) { + return PSA_ERROR_BAD_STATE; + } break; case PSA_PAKE_X1_STEP_ZK_PROOF: case PSA_PAKE_X2_STEP_ZK_PROOF: - if( step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_ZK_PROOF) { + return PSA_ERROR_BAD_STATE; + } break; default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } /* Initialize & write round on KEY_SHARE sequences */ - if( operation->state == PSA_PAKE_OUTPUT_X1_X2 && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) - { - ret = mbedtls_ecjpake_write_round_one( &operation->ctx.ecjpake, - operation->buffer, - MBEDTLS_PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); + if (operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE) { + ret = mbedtls_ecjpake_write_round_one(&operation->ctx.ecjpake, + operation->buffer, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE); + if (ret != 0) { + return mbedtls_ecjpake_to_psa_error(ret); + } operation->buffer_offset = 0; - } - else if( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE ) - { - ret = mbedtls_ecjpake_write_round_two( &operation->ctx.ecjpake, - operation->buffer, - MBEDTLS_PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); + } else if (operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE) { + ret = mbedtls_ecjpake_write_round_two(&operation->ctx.ecjpake, + operation->buffer, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE); + if (ret != 0) { + return mbedtls_ecjpake_to_psa_error(ret); + } operation->buffer_offset = 0; } @@ -588,10 +578,9 @@ static psa_status_t psa_pake_output_internal( * output with a length byte, even less a curve identifier, as that * information is already available. */ - if( operation->state == PSA_PAKE_OUTPUT_X2S && + if (operation->state == PSA_PAKE_OUTPUT_X2S && operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && - operation->role == PSA_PAKE_ROLE_SERVER ) - { + operation->role == PSA_PAKE_ROLE_SERVER) { /* Skip ECParameters, with is 3 bytes (RFC 8422) */ operation->buffer_offset += 3; } @@ -600,73 +589,76 @@ static psa_status_t psa_pake_output_internal( length = operation->buffer[operation->buffer_offset]; operation->buffer_offset += 1; - if( operation->buffer_offset + length > operation->buffer_length ) - return( PSA_ERROR_DATA_CORRUPT ); + if (operation->buffer_offset + length > operation->buffer_length) { + return PSA_ERROR_DATA_CORRUPT; + } - if( output_size < length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (output_size < length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - operation->buffer + operation->buffer_offset, - length ); + memcpy(output, + operation->buffer + operation->buffer_offset, + length); *output_length = length; operation->buffer_offset += length; /* Reset buffer after ZK_PROOF sequence */ - if( ( operation->state == PSA_PAKE_OUTPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || - ( operation->state == PSA_PAKE_OUTPUT_X2S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) - { - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + if ((operation->state == PSA_PAKE_OUTPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF) || + (operation->state == PSA_PAKE_OUTPUT_X2S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF)) { + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); operation->buffer_length = 0; operation->buffer_offset = 0; operation->state = PSA_PAKE_STATE_READY; operation->output_step++; operation->sequence = PSA_PAKE_SEQ_INVALID; - } - else + } else { operation->sequence++; + } - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_pake_output( psa_pake_operation_t *operation, - psa_pake_step_t step, - uint8_t *output, - size_t output_size, - size_t *output_length ) +psa_status_t psa_pake_output(psa_pake_operation_t *operation, + psa_pake_step_t step, + uint8_t *output, + size_t output_size, + size_t *output_length) { psa_status_t status = psa_pake_output_internal( - operation, step, output, output_size, output_length ); + operation, step, output, output_size, output_length); - if( status != PSA_SUCCESS ) - psa_pake_abort( operation ); + if (status != PSA_SUCCESS) { + psa_pake_abort(operation); + } - return( status ); + return status; } static psa_status_t psa_pake_input_internal( - psa_pake_operation_t *operation, - psa_pake_step_t step, - const uint8_t *input, - size_t input_length ) + psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == PSA_ALG_NONE || - operation->state == PSA_PAKE_STATE_INVALID ) - return( PSA_ERROR_BAD_STATE ); + if (operation->alg == PSA_ALG_NONE || + operation->state == PSA_PAKE_STATE_INVALID) { + return PSA_ERROR_BAD_STATE; + } - if( input == NULL || input_length == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (input == NULL || input_length == 0) { + return PSA_ERROR_INVALID_ARGUMENT; + } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) /* @@ -684,39 +676,38 @@ static psa_status_t psa_pake_input_internal( * * This causes any input error to be only detected on the last step. */ - if( operation->alg == PSA_ALG_JPAKE ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE && + if (operation->alg == PSA_ALG_JPAKE) { + if (step != PSA_PAKE_STEP_KEY_SHARE && step != PSA_PAKE_STEP_ZK_PUBLIC && - step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_INVALID_ARGUMENT ); + step != PSA_PAKE_STEP_ZK_PROOF) { + return PSA_ERROR_INVALID_ARGUMENT; + } const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( - PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256 ); - if( input_length > (size_t) PSA_PAKE_INPUT_SIZE( PSA_ALG_JPAKE, prim, step ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - - if( operation->state == PSA_PAKE_STATE_SETUP ) - { - status = psa_pake_ecjpake_setup( operation ); - if( status != PSA_SUCCESS ) - return( status ); + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, 256); + if (input_length > (size_t) PSA_PAKE_INPUT_SIZE(PSA_ALG_JPAKE, prim, step)) { + return PSA_ERROR_INVALID_ARGUMENT; } - if( operation->state != PSA_PAKE_STATE_READY && + if (operation->state == PSA_PAKE_STATE_SETUP) { + status = psa_pake_ecjpake_setup(operation); + if (status != PSA_SUCCESS) { + return status; + } + } + + if (operation->state != PSA_PAKE_STATE_READY && operation->state != PSA_PAKE_INPUT_X1_X2 && - operation->state != PSA_PAKE_INPUT_X4S ) - { - return( PSA_ERROR_BAD_STATE ); + operation->state != PSA_PAKE_INPUT_X4S) { + return PSA_ERROR_BAD_STATE; } - if( operation->state == PSA_PAKE_STATE_READY ) - { - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); + if (operation->state == PSA_PAKE_STATE_READY) { + if (step != PSA_PAKE_STEP_KEY_SHARE) { + return PSA_ERROR_BAD_STATE; + } - switch( operation->input_step ) - { + switch (operation->input_step) { case PSA_PAKE_STEP_X1_X2: operation->state = PSA_PAKE_INPUT_X1_X2; break; @@ -724,35 +715,37 @@ static psa_status_t psa_pake_input_internal( operation->state = PSA_PAKE_INPUT_X4S; break; default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } operation->sequence = PSA_PAKE_X1_STEP_KEY_SHARE; } /* Check if step matches current sequence */ - switch( operation->sequence ) - { + switch (operation->sequence) { case PSA_PAKE_X1_STEP_KEY_SHARE: case PSA_PAKE_X2_STEP_KEY_SHARE: - if( step != PSA_PAKE_STEP_KEY_SHARE ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_KEY_SHARE) { + return PSA_ERROR_BAD_STATE; + } break; case PSA_PAKE_X1_STEP_ZK_PUBLIC: case PSA_PAKE_X2_STEP_ZK_PUBLIC: - if( step != PSA_PAKE_STEP_ZK_PUBLIC ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_ZK_PUBLIC) { + return PSA_ERROR_BAD_STATE; + } break; case PSA_PAKE_X1_STEP_ZK_PROOF: case PSA_PAKE_X2_STEP_ZK_PROOF: - if( step != PSA_PAKE_STEP_ZK_PROOF ) - return( PSA_ERROR_BAD_STATE ); + if (step != PSA_PAKE_STEP_ZK_PROOF) { + return PSA_ERROR_BAD_STATE; + } break; default: - return( PSA_ERROR_BAD_STATE ); + return PSA_ERROR_BAD_STATE; } /* @@ -764,19 +757,18 @@ static psa_status_t psa_pake_input_internal( * ECParameters structure - which means we have to prepend that when * we're a client. */ - if( operation->state == PSA_PAKE_INPUT_X4S && + if (operation->state == PSA_PAKE_INPUT_X4S && operation->sequence == PSA_PAKE_X1_STEP_KEY_SHARE && - operation->role == PSA_PAKE_ROLE_CLIENT ) - { + operation->role == PSA_PAKE_ROLE_CLIENT) { /* We only support secp256r1. */ /* This is the ECParameters structure defined by RFC 8422. */ unsigned char ecparameters[3] = { 3, /* named_curve */ 0, 23 /* secp256r1 */ }; - memcpy( operation->buffer + operation->buffer_length, - ecparameters, sizeof( ecparameters ) ); - operation->buffer_length += sizeof( ecparameters ); + memcpy(operation->buffer + operation->buffer_length, + ecparameters, sizeof(ecparameters)); + operation->buffer_length += sizeof(ecparameters); } /* Write the length byte */ @@ -784,69 +776,67 @@ static psa_status_t psa_pake_input_internal( operation->buffer_length += 1; /* Finally copy the data */ - memcpy( operation->buffer + operation->buffer_length, - input, input_length ); + memcpy(operation->buffer + operation->buffer_length, + input, input_length); operation->buffer_length += input_length; /* Load buffer at each last round ZK_PROOF */ - if( operation->state == PSA_PAKE_INPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) - { - ret = mbedtls_ecjpake_read_round_one( &operation->ctx.ecjpake, - operation->buffer, - operation->buffer_length ); + if (operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF) { + ret = mbedtls_ecjpake_read_round_one(&operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length); - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); operation->buffer_length = 0; - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); - } - else if( operation->state == PSA_PAKE_INPUT_X4S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) - { - ret = mbedtls_ecjpake_read_round_two( &operation->ctx.ecjpake, - operation->buffer, - operation->buffer_length ); + if (ret != 0) { + return mbedtls_ecjpake_to_psa_error(ret); + } + } else if (operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF) { + ret = mbedtls_ecjpake_read_round_two(&operation->ctx.ecjpake, + operation->buffer, + operation->buffer_length); - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); operation->buffer_length = 0; - if( ret != 0 ) - return( mbedtls_ecjpake_to_psa_error( ret ) ); + if (ret != 0) { + return mbedtls_ecjpake_to_psa_error(ret); + } } - if( ( operation->state == PSA_PAKE_INPUT_X1_X2 && - operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF ) || - ( operation->state == PSA_PAKE_INPUT_X4S && - operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF ) ) - { + if ((operation->state == PSA_PAKE_INPUT_X1_X2 && + operation->sequence == PSA_PAKE_X2_STEP_ZK_PROOF) || + (operation->state == PSA_PAKE_INPUT_X4S && + operation->sequence == PSA_PAKE_X1_STEP_ZK_PROOF)) { operation->state = PSA_PAKE_STATE_READY; operation->input_step++; operation->sequence = PSA_PAKE_SEQ_INVALID; - } - else + } else { operation->sequence++; + } - return( PSA_SUCCESS ); - } - else + return PSA_SUCCESS; + } else #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } -psa_status_t psa_pake_input( psa_pake_operation_t *operation, - psa_pake_step_t step, - const uint8_t *input, - size_t input_length ) +psa_status_t psa_pake_input(psa_pake_operation_t *operation, + psa_pake_step_t step, + const uint8_t *input, + size_t input_length) { psa_status_t status = psa_pake_input_internal( - operation, step, input, input_length ); + operation, step, input, input_length); - if( status != PSA_SUCCESS ) - psa_pake_abort( operation ); + if (status != PSA_SUCCESS) { + psa_pake_abort(operation); + } - return( status ); + return status; } psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, @@ -855,74 +845,69 @@ psa_status_t psa_pake_get_implicit_key(psa_pake_operation_t *operation, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( operation->alg == PSA_ALG_NONE || + if (operation->alg == PSA_ALG_NONE || operation->state != PSA_PAKE_STATE_READY || operation->input_step != PSA_PAKE_STEP_DERIVE || - operation->output_step != PSA_PAKE_STEP_DERIVE ) - { + operation->output_step != PSA_PAKE_STEP_DERIVE) { status = PSA_ERROR_BAD_STATE; goto error; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) - if( operation->alg == PSA_ALG_JPAKE ) - { - ret = mbedtls_ecjpake_write_shared_key( &operation->ctx.ecjpake, - operation->buffer, - MBEDTLS_PSA_PAKE_BUFFER_SIZE, - &operation->buffer_length, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ); - if( ret != 0) - { - psa_pake_abort( operation ); - return( mbedtls_ecjpake_to_psa_error( ret ) ); + if (operation->alg == PSA_ALG_JPAKE) { + ret = mbedtls_ecjpake_write_shared_key(&operation->ctx.ecjpake, + operation->buffer, + MBEDTLS_PSA_PAKE_BUFFER_SIZE, + &operation->buffer_length, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE); + if (ret != 0) { + psa_pake_abort(operation); + return mbedtls_ecjpake_to_psa_error(ret); } - status = psa_key_derivation_input_bytes( output, - PSA_KEY_DERIVATION_INPUT_SECRET, - operation->buffer, - operation->buffer_length ); + status = psa_key_derivation_input_bytes(output, + PSA_KEY_DERIVATION_INPUT_SECRET, + operation->buffer, + operation->buffer_length); - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); - psa_pake_abort( operation ); + psa_pake_abort(operation); - return( status ); - } - else + return status; + } else #endif status = PSA_ERROR_NOT_SUPPORTED; error: - psa_key_derivation_abort( output ); - psa_pake_abort( operation ); + psa_key_derivation_abort(output); + psa_pake_abort(operation); - return( status ); + return status; } -psa_status_t psa_pake_abort(psa_pake_operation_t * operation) +psa_status_t psa_pake_abort(psa_pake_operation_t *operation) { - if( operation->alg == PSA_ALG_NONE ) - { - return( PSA_SUCCESS ); + if (operation->alg == PSA_ALG_NONE) { + return PSA_SUCCESS; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE) - if( operation->alg == PSA_ALG_JPAKE ) - { + if (operation->alg == PSA_ALG_JPAKE) { operation->input_step = PSA_PAKE_STEP_INVALID; operation->output_step = PSA_PAKE_STEP_INVALID; - if( operation->password_len > 0 ) - mbedtls_platform_zeroize( operation->password, operation->password_len ); - mbedtls_free( operation->password ); + if (operation->password_len > 0) { + mbedtls_platform_zeroize(operation->password, operation->password_len); + } + mbedtls_free(operation->password); operation->password = NULL; operation->password_len = 0; operation->role = PSA_PAKE_ROLE_NONE; - mbedtls_platform_zeroize( operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE ); + mbedtls_platform_zeroize(operation->buffer, MBEDTLS_PSA_PAKE_BUFFER_SIZE); operation->buffer_length = 0; operation->buffer_offset = 0; - mbedtls_ecjpake_free( &operation->ctx.ecjpake ); + mbedtls_ecjpake_free(&operation->ctx.ecjpake); } #endif @@ -930,7 +915,7 @@ psa_status_t psa_pake_abort(psa_pake_operation_t * operation) operation->state = PSA_PAKE_STATE_INVALID; operation->sequence = PSA_PAKE_SEQ_INVALID; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_BUILTIN_PAKE */ diff --git a/library/psa_crypto_random_impl.h b/library/psa_crypto_random_impl.h index 3c4c09a28..f1a2af11d 100644 --- a/library/psa_crypto_random_impl.h +++ b/library/psa_crypto_random_impl.h @@ -41,9 +41,9 @@ typedef mbedtls_psa_external_random_context_t mbedtls_psa_random_context_t; /* Trivial wrapper around psa_generate_random(). */ -int mbedtls_psa_get_random( void *p_rng, - unsigned char *output, - size_t output_size ); +int mbedtls_psa_get_random(void *p_rng, + unsigned char *output, + size_t output_size); /* The PSA RNG API doesn't need any externally maintained state. */ #define MBEDTLS_PSA_RANDOM_STATE NULL @@ -89,12 +89,12 @@ int mbedtls_psa_get_random( void *p_rng, * * \param p_rng Pointer to the Mbed TLS DRBG state. */ -static inline void mbedtls_psa_drbg_init( mbedtls_psa_drbg_context_t *p_rng ) +static inline void mbedtls_psa_drbg_init(mbedtls_psa_drbg_context_t *p_rng) { #if defined(MBEDTLS_CTR_DRBG_C) - mbedtls_ctr_drbg_init( p_rng ); + mbedtls_ctr_drbg_init(p_rng); #elif defined(MBEDTLS_HMAC_DRBG_C) - mbedtls_hmac_drbg_init( p_rng ); + mbedtls_hmac_drbg_init(p_rng); #endif } @@ -102,12 +102,12 @@ static inline void mbedtls_psa_drbg_init( mbedtls_psa_drbg_context_t *p_rng ) * * \param p_rng Pointer to the Mbed TLS DRBG state. */ -static inline void mbedtls_psa_drbg_free( mbedtls_psa_drbg_context_t *p_rng ) +static inline void mbedtls_psa_drbg_free(mbedtls_psa_drbg_context_t *p_rng) { #if defined(MBEDTLS_CTR_DRBG_C) - mbedtls_ctr_drbg_free( p_rng ); + mbedtls_ctr_drbg_free(p_rng); #elif defined(MBEDTLS_HMAC_DRBG_C) - mbedtls_hmac_drbg_free( p_rng ); + mbedtls_hmac_drbg_free(p_rng); #endif } @@ -116,10 +116,9 @@ static inline void mbedtls_psa_drbg_free( mbedtls_psa_drbg_context_t *p_rng ) * The random generator context is composed of an entropy context and * a DRBG context. */ -typedef struct -{ - void (* entropy_init )( mbedtls_entropy_context *ctx ); - void (* entropy_free )( mbedtls_entropy_context *ctx ); +typedef struct { + void (* entropy_init)(mbedtls_entropy_context *ctx); + void (* entropy_free)(mbedtls_entropy_context *ctx); mbedtls_entropy_context entropy; mbedtls_psa_drbg_context_t drbg; } mbedtls_psa_random_context_t; @@ -182,21 +181,21 @@ extern mbedtls_psa_drbg_context_t *const mbedtls_psa_random_state; */ static inline int mbedtls_psa_drbg_seed( mbedtls_entropy_context *entropy, - const unsigned char *custom, size_t len ) + const unsigned char *custom, size_t len) { #if defined(MBEDTLS_CTR_DRBG_C) - return( mbedtls_ctr_drbg_seed( MBEDTLS_PSA_RANDOM_STATE, - mbedtls_entropy_func, - entropy, - custom, len ) ); + return mbedtls_ctr_drbg_seed(MBEDTLS_PSA_RANDOM_STATE, + mbedtls_entropy_func, + entropy, + custom, len); #elif defined(MBEDTLS_HMAC_DRBG_C) const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_type( MBEDTLS_PSA_HMAC_DRBG_MD_TYPE ); - return( mbedtls_hmac_drbg_seed( MBEDTLS_PSA_RANDOM_STATE, - md_info, - mbedtls_entropy_func, - entropy, - custom, len ) ); + mbedtls_md_info_from_type(MBEDTLS_PSA_HMAC_DRBG_MD_TYPE); + return mbedtls_hmac_drbg_seed(MBEDTLS_PSA_RANDOM_STATE, + md_info, + mbedtls_entropy_func, + entropy, + custom, len); #endif } diff --git a/library/psa_crypto_rsa.c b/library/psa_crypto_rsa.c index f1b9809d8..c72061586 100644 --- a/library/psa_crypto_rsa.c +++ b/library/psa_crypto_rsa.c @@ -52,46 +52,47 @@ * way to return the exact bit size of a key. * To keep things simple, reject non-byte-aligned key sizes. */ static psa_status_t psa_check_rsa_key_byte_aligned( - const mbedtls_rsa_context *rsa ) + const mbedtls_rsa_context *rsa) { mbedtls_mpi n; psa_status_t status; - mbedtls_mpi_init( &n ); + mbedtls_mpi_init(&n); status = mbedtls_to_psa_error( - mbedtls_rsa_export( rsa, &n, NULL, NULL, NULL, NULL ) ); - if( status == PSA_SUCCESS ) - { - if( mbedtls_mpi_bitlen( &n ) % 8 != 0 ) + mbedtls_rsa_export(rsa, &n, NULL, NULL, NULL, NULL)); + if (status == PSA_SUCCESS) { + if (mbedtls_mpi_bitlen(&n) % 8 != 0) { status = PSA_ERROR_NOT_SUPPORTED; + } } - mbedtls_mpi_free( &n ); - return( status ); + mbedtls_mpi_free(&n); + return status; } psa_status_t mbedtls_psa_rsa_load_representation( psa_key_type_t type, const uint8_t *data, size_t data_length, - mbedtls_rsa_context **p_rsa ) + mbedtls_rsa_context **p_rsa) { psa_status_t status; mbedtls_pk_context ctx; size_t bits; - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); /* Parse the data. */ - if( PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) + if (PSA_KEY_TYPE_IS_KEY_PAIR(type)) { status = mbedtls_to_psa_error( - mbedtls_pk_parse_key( &ctx, data, data_length, NULL, 0, - mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE ) ); - else + mbedtls_pk_parse_key(&ctx, data, data_length, NULL, 0, + mbedtls_psa_get_random, MBEDTLS_PSA_RANDOM_STATE)); + } else { status = mbedtls_to_psa_error( - mbedtls_pk_parse_public_key( &ctx, data, data_length ) ); - if( status != PSA_SUCCESS ) + mbedtls_pk_parse_public_key(&ctx, data, data_length)); + } + if (status != PSA_SUCCESS) { goto exit; + } /* We have something that the pkparse module recognizes. If it is a * valid RSA key, store it. */ - if( mbedtls_pk_get_type( &ctx ) != MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(&ctx) != MBEDTLS_PK_RSA) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } @@ -99,24 +100,24 @@ psa_status_t mbedtls_psa_rsa_load_representation( /* The size of an RSA key doesn't have to be a multiple of 8. Mbed TLS * supports non-byte-aligned key sizes, but not well. For example, * mbedtls_rsa_get_len() returns the key size in bytes, not in bits. */ - bits = PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( mbedtls_pk_rsa( ctx ) ) ); - if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS ) - { + bits = PSA_BYTES_TO_BITS(mbedtls_rsa_get_len(mbedtls_pk_rsa(ctx))); + if (bits > PSA_VENDOR_RSA_MAX_KEY_BITS) { status = PSA_ERROR_NOT_SUPPORTED; goto exit; } - status = psa_check_rsa_key_byte_aligned( mbedtls_pk_rsa( ctx ) ); - if( status != PSA_SUCCESS ) + status = psa_check_rsa_key_byte_aligned(mbedtls_pk_rsa(ctx)); + if (status != PSA_SUCCESS) { goto exit; + } /* Copy out the pointer to the RSA context, and reset the PK context * such that pk_free doesn't free the RSA context we just grabbed. */ - *p_rsa = mbedtls_pk_rsa( ctx ); + *p_rsa = mbedtls_pk_rsa(ctx); ctx.pk_info = NULL; exit: - mbedtls_pk_free( &ctx ); - return( status ); + mbedtls_pk_free(&ctx); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) || @@ -132,179 +133,182 @@ psa_status_t mbedtls_psa_rsa_import_key( 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 ) + size_t *key_buffer_length, size_t *bits) { psa_status_t status; mbedtls_rsa_context *rsa = NULL; /* Parse input */ - status = mbedtls_psa_rsa_load_representation( attributes->core.type, - data, - data_length, - &rsa ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_rsa_load_representation(attributes->core.type, + data, + data_length, + &rsa); + if (status != PSA_SUCCESS) { goto exit; + } - *bits = (psa_key_bits_t) PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( rsa ) ); + *bits = (psa_key_bits_t) PSA_BYTES_TO_BITS(mbedtls_rsa_get_len(rsa)); /* Re-export the data to PSA export format, such that we can store export * representation in the key slot. Export representation in case of RSA is * the smallest representation that's allowed as input, so a straight-up * allocation of the same size as the input buffer will be large enough. */ - status = mbedtls_psa_rsa_export_key( attributes->core.type, - rsa, - key_buffer, - key_buffer_size, - key_buffer_length ); + status = mbedtls_psa_rsa_export_key(attributes->core.type, + rsa, + key_buffer, + key_buffer_size, + key_buffer_length); exit: /* Always free the RSA object */ - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); - return( status ); + return status; } -psa_status_t mbedtls_psa_rsa_export_key( psa_key_type_t type, - mbedtls_rsa_context *rsa, - uint8_t *data, - size_t data_size, - size_t *data_length ) +psa_status_t mbedtls_psa_rsa_export_key(psa_key_type_t type, + mbedtls_rsa_context *rsa, + uint8_t *data, + size_t data_size, + size_t *data_length) { #if defined(MBEDTLS_PK_WRITE_C) int ret; mbedtls_pk_context pk; uint8_t *pos = data + data_size; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); pk.pk_info = &mbedtls_rsa_info; pk.pk_ctx = rsa; /* PSA Crypto API defines the format of an RSA key as a DER-encoded * representation of the non-encrypted PKCS#1 RSAPrivateKey for a * private key and of the RFC3279 RSAPublicKey for a public key. */ - if( PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) - ret = mbedtls_pk_write_key_der( &pk, data, data_size ); - else - ret = mbedtls_pk_write_pubkey( &pos, data, &pk ); + if (PSA_KEY_TYPE_IS_KEY_PAIR(type)) { + ret = mbedtls_pk_write_key_der(&pk, data, data_size); + } else { + ret = mbedtls_pk_write_pubkey(&pos, data, &pk); + } - if( ret < 0 ) - { + if (ret < 0) { /* Clean up in case pk_write failed halfway through. */ - memset( data, 0, data_size ); - return( mbedtls_to_psa_error( ret ) ); + memset(data, 0, data_size); + return mbedtls_to_psa_error(ret); } /* The mbedtls_pk_xxx functions write to the end of the buffer. * Move the data to the beginning and erase remaining data * at the original location. */ - if( 2 * (size_t) ret <= data_size ) - { - memcpy( data, data + data_size - ret, ret ); - memset( data + data_size - ret, 0, ret ); - } - else if( (size_t) ret < data_size ) - { - memmove( data, data + data_size - ret, ret ); - memset( data + ret, 0, data_size - ret ); + if (2 * (size_t) ret <= data_size) { + memcpy(data, data + data_size - ret, ret); + memset(data + data_size - ret, 0, ret); + } else if ((size_t) ret < data_size) { + memmove(data, data + data_size - ret, ret); + memset(data + ret, 0, data_size - ret); } *data_length = ret; - return( PSA_SUCCESS ); + return PSA_SUCCESS; #else (void) type; (void) rsa; (void) data; (void) data_size; (void) data_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PK_WRITE_C */ } psa_status_t mbedtls_psa_rsa_export_public_key( 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 ) + uint8_t *data, size_t data_size, size_t *data_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_rsa_context *rsa = NULL; status = mbedtls_psa_rsa_load_representation( - attributes->core.type, key_buffer, key_buffer_size, &rsa ); - if( status != PSA_SUCCESS ) - return( status ); + attributes->core.type, key_buffer, key_buffer_size, &rsa); + if (status != PSA_SUCCESS) { + return status; + } - status = mbedtls_psa_rsa_export_key( PSA_KEY_TYPE_RSA_PUBLIC_KEY, - rsa, - data, - data_size, - data_length ); + status = mbedtls_psa_rsa_export_key(PSA_KEY_TYPE_RSA_PUBLIC_KEY, + rsa, + data, + data_size, + data_length); - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || * defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) */ #if defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) && \ defined(MBEDTLS_GENPRIME) -static psa_status_t psa_rsa_read_exponent( const uint8_t *domain_parameters, - size_t domain_parameters_size, - int *exponent ) +static psa_status_t psa_rsa_read_exponent(const uint8_t *domain_parameters, + size_t domain_parameters_size, + int *exponent) { size_t i; uint32_t acc = 0; - if( domain_parameters_size == 0 ) - { + if (domain_parameters_size == 0) { *exponent = 65537; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /* Mbed TLS encodes the public exponent as an int. For simplicity, only * support values that fit in a 32-bit integer, which is larger than * int on just about every platform anyway. */ - if( domain_parameters_size > sizeof( acc ) ) - return( PSA_ERROR_NOT_SUPPORTED ); - for( i = 0; i < domain_parameters_size; i++ ) - acc = ( acc << 8 ) | domain_parameters[i]; - if( acc > INT_MAX ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (domain_parameters_size > sizeof(acc)) { + return PSA_ERROR_NOT_SUPPORTED; + } + for (i = 0; i < domain_parameters_size; i++) { + acc = (acc << 8) | domain_parameters[i]; + } + if (acc > INT_MAX) { + return PSA_ERROR_NOT_SUPPORTED; + } *exponent = acc; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_rsa_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length) { psa_status_t status; mbedtls_rsa_context rsa; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int exponent; - status = psa_rsa_read_exponent( attributes->domain_parameters, - attributes->domain_parameters_size, - &exponent ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_rsa_read_exponent(attributes->domain_parameters, + attributes->domain_parameters_size, + &exponent); + if (status != PSA_SUCCESS) { + return status; + } - mbedtls_rsa_init( &rsa ); - ret = mbedtls_rsa_gen_key( &rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - (unsigned int)attributes->core.bits, - exponent ); - if( ret != 0 ) - return( mbedtls_to_psa_error( ret ) ); + mbedtls_rsa_init(&rsa); + ret = mbedtls_rsa_gen_key(&rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + (unsigned int) attributes->core.bits, + exponent); + if (ret != 0) { + return mbedtls_to_psa_error(ret); + } - status = mbedtls_psa_rsa_export_key( attributes->core.type, - &rsa, key_buffer, key_buffer_size, - key_buffer_length ); - mbedtls_rsa_free( &rsa ); + status = mbedtls_psa_rsa_export_key(attributes->core.type, + &rsa, key_buffer, key_buffer_size, + key_buffer_length); + mbedtls_rsa_free(&rsa); - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) * defined(MBEDTLS_GENPRIME) */ @@ -318,131 +322,131 @@ psa_status_t mbedtls_psa_rsa_generate_key( /* Decode the hash algorithm from alg and store the mbedtls encoding in * md_alg. Verify that the hash length is acceptable. */ -static psa_status_t psa_rsa_decode_md_type( psa_algorithm_t alg, - size_t hash_length, - mbedtls_md_type_t *md_alg ) +static psa_status_t psa_rsa_decode_md_type(psa_algorithm_t alg, + size_t hash_length, + mbedtls_md_type_t *md_alg) { - psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH( alg ); - *md_alg = mbedtls_hash_info_md_from_psa( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH(alg); + *md_alg = mbedtls_hash_info_md_from_psa(hash_alg); /* The Mbed TLS RSA module uses an unsigned int for hash length * parameters. Validate that it fits so that we don't risk an * overflow later. */ #if SIZE_MAX > UINT_MAX - if( hash_length > UINT_MAX ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (hash_length > UINT_MAX) { + return PSA_ERROR_INVALID_ARGUMENT; + } #endif /* For signatures using a hash, the hash length must be correct. */ - if( alg != PSA_ALG_RSA_PKCS1V15_SIGN_RAW ) - { - if( *md_alg == MBEDTLS_MD_NONE ) - return( PSA_ERROR_NOT_SUPPORTED ); - if( mbedtls_hash_info_get_size( *md_alg ) != hash_length ) - return( PSA_ERROR_INVALID_ARGUMENT ); + if (alg != PSA_ALG_RSA_PKCS1V15_SIGN_RAW) { + if (*md_alg == MBEDTLS_MD_NONE) { + return PSA_ERROR_NOT_SUPPORTED; + } + if (mbedtls_hash_info_get_size(*md_alg) != hash_length) { + return PSA_ERROR_INVALID_ARGUMENT; + } } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t mbedtls_psa_rsa_sign_hash( 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 ) + uint8_t *signature, size_t signature_size, size_t *signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_rsa_context *rsa = NULL; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_alg; - status = mbedtls_psa_rsa_load_representation( attributes->core.type, - key_buffer, - key_buffer_size, - &rsa ); - if( status != PSA_SUCCESS ) - return( status ); + status = mbedtls_psa_rsa_load_representation(attributes->core.type, + key_buffer, + key_buffer_size, + &rsa); + if (status != PSA_SUCCESS) { + return status; + } - status = psa_rsa_decode_md_type( alg, hash_length, &md_alg ); - if( status != PSA_SUCCESS ) + status = psa_rsa_decode_md_type(alg, hash_length, &md_alg); + if (status != PSA_SUCCESS) { goto exit; + } - if( signature_size < mbedtls_rsa_get_len( rsa ) ) - { + if (signature_size < mbedtls_rsa_get_len(rsa)) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto exit; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ) - { - ret = mbedtls_rsa_set_padding( rsa, MBEDTLS_RSA_PKCS_V15, - MBEDTLS_MD_NONE ); - if( ret == 0 ) - { - ret = mbedtls_rsa_pkcs1_sign( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - md_alg, - (unsigned int) hash_length, - hash, - signature ); + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg)) { + ret = mbedtls_rsa_set_padding(rsa, MBEDTLS_RSA_PKCS_V15, + MBEDTLS_MD_NONE); + if (ret == 0) { + ret = mbedtls_rsa_pkcs1_sign(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + md_alg, + (unsigned int) hash_length, + hash, + signature); } - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - if( PSA_ALG_IS_RSA_PSS( alg ) ) - { - ret = mbedtls_rsa_set_padding( rsa, MBEDTLS_RSA_PKCS_V21, md_alg ); + if (PSA_ALG_IS_RSA_PSS(alg)) { + ret = mbedtls_rsa_set_padding(rsa, MBEDTLS_RSA_PKCS_V21, md_alg); - if( ret == 0 ) - { - ret = mbedtls_rsa_rsassa_pss_sign( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - MBEDTLS_MD_NONE, - (unsigned int) hash_length, - hash, - signature ); + if (ret == 0) { + ret = mbedtls_rsa_rsassa_pss_sign(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + MBEDTLS_MD_NONE, + (unsigned int) hash_length, + hash, + signature); } - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS */ { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - if( ret == 0 ) - *signature_length = mbedtls_rsa_get_len( rsa ); - status = mbedtls_to_psa_error( ret ); + if (ret == 0) { + *signature_length = mbedtls_rsa_get_len(rsa); + } + status = mbedtls_to_psa_error(ret); exit: - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); - return( status ); + return status; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) -static int rsa_pss_expected_salt_len( psa_algorithm_t alg, - const mbedtls_rsa_context *rsa, - size_t hash_length ) +static int rsa_pss_expected_salt_len(psa_algorithm_t alg, + const mbedtls_rsa_context *rsa, + size_t hash_length) { - if( PSA_ALG_IS_RSA_PSS_ANY_SALT( alg ) ) - return( MBEDTLS_RSA_SALT_LEN_ANY ); + if (PSA_ALG_IS_RSA_PSS_ANY_SALT(alg)) { + return MBEDTLS_RSA_SALT_LEN_ANY; + } /* Otherwise: standard salt length, i.e. largest possible salt length * up to the hash length. */ - int klen = (int) mbedtls_rsa_get_len( rsa ); // known to fit + int klen = (int) mbedtls_rsa_get_len(rsa); // known to fit int hlen = (int) hash_length; // known to fit int room = klen - 2 - hlen; - if( room < 0 ) - return( 0 ); // there is no valid signature in this case anyway - else if( room > hlen ) - return( hlen ); - else - return( room ); + if (room < 0) { + return 0; // there is no valid signature in this case anyway + } else if (room > hlen) { + return hlen; + } else { + return room; + } } #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS */ @@ -450,63 +454,58 @@ psa_status_t mbedtls_psa_rsa_verify_hash( 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 ) + const uint8_t *signature, size_t signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_rsa_context *rsa = NULL; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_alg; - status = mbedtls_psa_rsa_load_representation( attributes->core.type, - key_buffer, - key_buffer_size, - &rsa ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_rsa_load_representation(attributes->core.type, + key_buffer, + key_buffer_size, + &rsa); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_rsa_decode_md_type( alg, hash_length, &md_alg ); - if( status != PSA_SUCCESS ) + status = psa_rsa_decode_md_type(alg, hash_length, &md_alg); + if (status != PSA_SUCCESS) { goto exit; + } - if( signature_length != mbedtls_rsa_get_len( rsa ) ) - { + if (signature_length != mbedtls_rsa_get_len(rsa)) { status = PSA_ERROR_INVALID_SIGNATURE; goto exit; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ) - { - ret = mbedtls_rsa_set_padding( rsa, MBEDTLS_RSA_PKCS_V15, - MBEDTLS_MD_NONE ); - if( ret == 0 ) - { - ret = mbedtls_rsa_pkcs1_verify( rsa, - md_alg, - (unsigned int) hash_length, - hash, - signature ); + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg)) { + ret = mbedtls_rsa_set_padding(rsa, MBEDTLS_RSA_PKCS_V15, + MBEDTLS_MD_NONE); + if (ret == 0) { + ret = mbedtls_rsa_pkcs1_verify(rsa, + md_alg, + (unsigned int) hash_length, + hash, + signature); } - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN */ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - if( PSA_ALG_IS_RSA_PSS( alg ) ) - { - ret = mbedtls_rsa_set_padding( rsa, MBEDTLS_RSA_PKCS_V21, md_alg ); - if( ret == 0 ) - { - int slen = rsa_pss_expected_salt_len( alg, rsa, hash_length ); - ret = mbedtls_rsa_rsassa_pss_verify_ext( rsa, - md_alg, - (unsigned) hash_length, - hash, - md_alg, - slen, - signature ); + if (PSA_ALG_IS_RSA_PSS(alg)) { + ret = mbedtls_rsa_set_padding(rsa, MBEDTLS_RSA_PKCS_V21, md_alg); + if (ret == 0) { + int slen = rsa_pss_expected_salt_len(alg, rsa, hash_length); + ret = mbedtls_rsa_rsassa_pss_verify_ext(rsa, + md_alg, + (unsigned) hash_length, + hash, + md_alg, + slen, + signature); } - } - else + } else #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS */ { status = PSA_ERROR_INVALID_ARGUMENT; @@ -516,15 +515,15 @@ psa_status_t mbedtls_psa_rsa_verify_hash( /* Mbed TLS distinguishes "invalid padding" from "valid padding but * the rest of the signature is invalid". This has little use in * practice and PSA doesn't report this distinction. */ - status = ( ret == MBEDTLS_ERR_RSA_INVALID_PADDING ) ? + status = (ret == MBEDTLS_ERR_RSA_INVALID_PADDING) ? PSA_ERROR_INVALID_SIGNATURE : - mbedtls_to_psa_error( ret ); + mbedtls_to_psa_error(ret); exit: - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); - return( status ); + return status; } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || @@ -535,27 +534,27 @@ exit: /****************************************************************/ #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) -static int psa_rsa_oaep_set_padding_mode( psa_algorithm_t alg, - mbedtls_rsa_context *rsa ) +static int psa_rsa_oaep_set_padding_mode(psa_algorithm_t alg, + mbedtls_rsa_context *rsa) { - psa_algorithm_t hash_alg = PSA_ALG_RSA_OAEP_GET_HASH( alg ); - mbedtls_md_type_t md_alg = mbedtls_hash_info_md_from_psa( hash_alg ); + psa_algorithm_t hash_alg = PSA_ALG_RSA_OAEP_GET_HASH(alg); + mbedtls_md_type_t md_alg = mbedtls_hash_info_md_from_psa(hash_alg); - return( mbedtls_rsa_set_padding( rsa, MBEDTLS_RSA_PKCS_V21, md_alg ) ); + return mbedtls_rsa_set_padding(rsa, MBEDTLS_RSA_PKCS_V21, md_alg); } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) */ -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 ) +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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; (void) key_buffer; @@ -568,94 +567,88 @@ psa_status_t mbedtls_psa_asymmetric_encrypt( const psa_key_attributes_t *attribu (void) output_size; (void) output_length; - if( PSA_KEY_TYPE_IS_RSA( attributes->core.type ) ) - { + if (PSA_KEY_TYPE_IS_RSA(attributes->core.type)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) mbedtls_rsa_context *rsa = NULL; - status = mbedtls_psa_rsa_load_representation( attributes->core.type, - key_buffer, - key_buffer_size, - &rsa ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_rsa_load_representation(attributes->core.type, + key_buffer, + key_buffer_size, + &rsa); + if (status != PSA_SUCCESS) { goto rsa_exit; + } - if( output_size < mbedtls_rsa_get_len( rsa ) ) - { + if (output_size < mbedtls_rsa_get_len(rsa)) { status = PSA_ERROR_BUFFER_TOO_SMALL; goto rsa_exit; } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) */ - if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) - { + if (alg == PSA_ALG_RSA_PKCS1V15_CRYPT) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) status = mbedtls_to_psa_error( - mbedtls_rsa_pkcs1_encrypt( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - input_length, - input, - output ) ); + mbedtls_rsa_pkcs1_encrypt(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + input_length, + input, + output)); #else status = PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT */ - } - else - if( PSA_ALG_IS_RSA_OAEP( alg ) ) - { + } else + if (PSA_ALG_IS_RSA_OAEP(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) status = mbedtls_to_psa_error( - psa_rsa_oaep_set_padding_mode( alg, rsa ) ); - if( status != PSA_SUCCESS ) + psa_rsa_oaep_set_padding_mode(alg, rsa)); + if (status != PSA_SUCCESS) { goto rsa_exit; + } status = mbedtls_to_psa_error( - mbedtls_rsa_rsaes_oaep_encrypt( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - salt, salt_length, - input_length, - input, - output ) ); + mbedtls_rsa_rsaes_oaep_encrypt(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + salt, salt_length, + input_length, + input, + output)); #else status = PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP */ - } - else - { + } else { status = PSA_ERROR_INVALID_ARGUMENT; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) rsa_exit: - if( status == PSA_SUCCESS ) - *output_length = mbedtls_rsa_get_len( rsa ); + if (status == PSA_SUCCESS) { + *output_length = mbedtls_rsa_get_len(rsa); + } - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) */ - } - else - { + } else { status = PSA_ERROR_NOT_SUPPORTED; } return status; } -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 ) +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) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; (void) key_buffer; @@ -670,78 +663,71 @@ psa_status_t mbedtls_psa_asymmetric_decrypt( const psa_key_attributes_t *attribu *output_length = 0; - if( attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { + if (attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) mbedtls_rsa_context *rsa = NULL; - status = mbedtls_psa_rsa_load_representation( attributes->core.type, - key_buffer, - key_buffer_size, - &rsa ); - if( status != PSA_SUCCESS ) + status = mbedtls_psa_rsa_load_representation(attributes->core.type, + key_buffer, + key_buffer_size, + &rsa); + if (status != PSA_SUCCESS) { goto rsa_exit; + } - if( input_length != mbedtls_rsa_get_len( rsa ) ) - { + if (input_length != mbedtls_rsa_get_len(rsa)) { status = PSA_ERROR_INVALID_ARGUMENT; goto rsa_exit; } #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) */ - if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) - { + if (alg == PSA_ALG_RSA_PKCS1V15_CRYPT) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) status = mbedtls_to_psa_error( - mbedtls_rsa_pkcs1_decrypt( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - output_length, - input, - output, - output_size ) ); + mbedtls_rsa_pkcs1_decrypt(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + output_length, + input, + output, + output_size)); #else status = PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT */ - } - else - if( PSA_ALG_IS_RSA_OAEP( alg ) ) - { + } else + if (PSA_ALG_IS_RSA_OAEP(alg)) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) status = mbedtls_to_psa_error( - psa_rsa_oaep_set_padding_mode( alg, rsa ) ); - if( status != PSA_SUCCESS ) + psa_rsa_oaep_set_padding_mode(alg, rsa)); + if (status != PSA_SUCCESS) { goto rsa_exit; + } status = mbedtls_to_psa_error( - mbedtls_rsa_rsaes_oaep_decrypt( rsa, - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE, - salt, salt_length, - output_length, - input, - output, - output_size ) ); + mbedtls_rsa_rsaes_oaep_decrypt(rsa, + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE, + salt, salt_length, + output_length, + input, + output, + output_size)); #else status = PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP */ - } - else - { + } else { status = PSA_ERROR_INVALID_ARGUMENT; } #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) rsa_exit: - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); + mbedtls_rsa_free(rsa); + mbedtls_free(rsa); #endif /* defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_CRYPT) || * defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) */ - } - else - { + } else { status = PSA_ERROR_NOT_SUPPORTED; } diff --git a/library/psa_crypto_rsa.h b/library/psa_crypto_rsa.h index 5835c6fc5..c3acdd0eb 100644 --- a/library/psa_crypto_rsa.h +++ b/library/psa_crypto_rsa.h @@ -34,10 +34,10 @@ * contents of the context and the context itself * when done. */ -psa_status_t mbedtls_psa_rsa_load_representation( psa_key_type_t type, - const uint8_t *data, - size_t data_length, - mbedtls_rsa_context **p_rsa ); +psa_status_t mbedtls_psa_rsa_load_representation(psa_key_type_t type, + const uint8_t *data, + size_t data_length, + mbedtls_rsa_context **p_rsa); /** Import an RSA key in binary format. * @@ -69,7 +69,7 @@ psa_status_t mbedtls_psa_rsa_import_key( 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 ); + size_t *key_buffer_length, size_t *bits); /** Export an RSA key to export representation * @@ -79,11 +79,11 @@ psa_status_t mbedtls_psa_rsa_import_key( * \param[in] data_size The length of the buffer to export to * \param[out] data_length The amount of bytes written to \p data */ -psa_status_t mbedtls_psa_rsa_export_key( psa_key_type_t type, - mbedtls_rsa_context *rsa, - uint8_t *data, - size_t data_size, - size_t *data_length ); +psa_status_t mbedtls_psa_rsa_export_key(psa_key_type_t type, + mbedtls_rsa_context *rsa, + uint8_t *data, + size_t data_size, + size_t *data_length); /** Export a public RSA key or the public part of an RSA key pair in binary * format. @@ -112,7 +112,7 @@ psa_status_t mbedtls_psa_rsa_export_key( psa_key_type_t type, psa_status_t mbedtls_psa_rsa_export_public_key( 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 ); + uint8_t *data, size_t data_size, size_t *data_length); /** * \brief Generate an RSA key. @@ -135,7 +135,7 @@ psa_status_t mbedtls_psa_rsa_export_public_key( */ psa_status_t mbedtls_psa_rsa_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ); + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); /** Sign an already-calculated hash with an RSA private key. * @@ -174,7 +174,7 @@ psa_status_t mbedtls_psa_rsa_sign_hash( 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 ); + uint8_t *signature, size_t signature_size, size_t *signature_length); /** * \brief Verify the signature a hash or short message using a public RSA key. @@ -210,7 +210,7 @@ psa_status_t mbedtls_psa_rsa_verify_hash( 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 ); + const uint8_t *signature, size_t signature_length); /** * \brief Encrypt a short message with a public key. @@ -256,17 +256,17 @@ psa_status_t mbedtls_psa_rsa_verify_hash( * It is implementation-dependent whether a failure to initialize * results in this error code. */ -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 ); +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); /** * \brief Decrypt a short message with a private key. @@ -314,16 +314,16 @@ psa_status_t mbedtls_psa_asymmetric_encrypt( const psa_key_attributes_t *attribu * It is implementation-dependent whether a failure to initialize * results in this error code. */ -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 ); +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); #endif /* PSA_CRYPTO_RSA_H */ diff --git a/library/psa_crypto_se.c b/library/psa_crypto_se.c index 87d2634e7..b66039364 100644 --- a/library/psa_crypto_se.c +++ b/library/psa_crypto_se.c @@ -48,19 +48,16 @@ /* This structure is identical to psa_drv_se_context_t declared in * `crypto_se_driver.h`, except that some parts are writable here * (non-const, or pointer to non-const). */ -typedef struct -{ +typedef struct { void *persistent_data; size_t persistent_data_size; uintptr_t transient_data; } psa_drv_se_internal_context_t; -struct psa_se_drv_table_entry_s -{ +struct psa_se_drv_table_entry_s { psa_key_location_t location; const psa_drv_se_t *methods; - union - { + union { psa_drv_se_internal_context_t internal; psa_drv_se_context_t context; } u; @@ -69,46 +66,49 @@ struct psa_se_drv_table_entry_s static psa_se_drv_table_entry_t driver_table[PSA_MAX_SE_DRIVERS]; psa_se_drv_table_entry_t *psa_get_se_driver_entry( - psa_key_lifetime_t lifetime ) + psa_key_lifetime_t lifetime) { size_t i; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); /* In the driver table, location=0 means an entry that isn't used. * No driver has a location of 0 because it's a reserved value * (which designates transparent keys). Make sure we never return * a driver entry for location 0. */ - if( location == 0 ) - return( NULL ); - for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) - { - if( driver_table[i].location == location ) - return( &driver_table[i] ); + if (location == 0) { + return NULL; } - return( NULL ); + for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) { + if (driver_table[i].location == location) { + return &driver_table[i]; + } + } + return NULL; } const psa_drv_se_t *psa_get_se_driver_methods( - const psa_se_drv_table_entry_t *driver ) + const psa_se_drv_table_entry_t *driver) { - return( driver->methods ); + return driver->methods; } psa_drv_se_context_t *psa_get_se_driver_context( - psa_se_drv_table_entry_t *driver ) + psa_se_drv_table_entry_t *driver) { - return( &driver->u.context ); + return &driver->u.context; } -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) +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) { - psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry( lifetime ); - if( p_methods != NULL ) - *p_methods = ( driver ? driver->methods : NULL ); - if( p_drv_context != NULL ) - *p_drv_context = ( driver ? &driver->u.context : NULL ); - return( driver != NULL ); + psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry(lifetime); + if (p_methods != NULL) { + *p_methods = (driver ? driver->methods : NULL); + } + if (p_drv_context != NULL) { + *p_drv_context = (driver ? &driver->u.context : NULL); + } + return driver != NULL; } @@ -119,32 +119,35 @@ int psa_get_se_driver( psa_key_lifetime_t lifetime, static psa_status_t psa_get_se_driver_its_file_uid( const psa_se_drv_table_entry_t *driver, - psa_storage_uid_t *uid ) + psa_storage_uid_t *uid) { - if( driver->location > PSA_MAX_SE_LOCATION ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (driver->location > PSA_MAX_SE_LOCATION) { + return PSA_ERROR_NOT_SUPPORTED; + } #if SIZE_MAX > UINT32_MAX /* ITS file sizes are limited to 32 bits. */ - if( driver->u.internal.persistent_data_size > UINT32_MAX ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (driver->u.internal.persistent_data_size > UINT32_MAX) { + return PSA_ERROR_NOT_SUPPORTED; + } #endif /* See the documentation of PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE. */ *uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + driver->location; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } psa_status_t psa_load_se_persistent_data( - const psa_se_drv_table_entry_t *driver ) + const psa_se_drv_table_entry_t *driver) { psa_status_t status; psa_storage_uid_t uid; size_t length; - status = psa_get_se_driver_its_file_uid( driver, &uid ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_se_driver_its_file_uid(driver, &uid); + if (status != PSA_SUCCESS) { + return status; + } /* Read the amount of persistent data that the driver requests. * If the data in storage is larger, it is truncated. If the data @@ -153,97 +156,98 @@ psa_status_t psa_load_se_persistent_data( /* psa_get_se_driver_its_file_uid ensures that the size_t * persistent_data_size is in range, but compilers don't know that, * so cast to reassure them. */ - return( psa_its_get( uid, 0, - (uint32_t) driver->u.internal.persistent_data_size, - driver->u.internal.persistent_data, - &length ) ); + return psa_its_get(uid, 0, + (uint32_t) driver->u.internal.persistent_data_size, + driver->u.internal.persistent_data, + &length); } psa_status_t psa_save_se_persistent_data( - const psa_se_drv_table_entry_t *driver ) + const psa_se_drv_table_entry_t *driver) { psa_status_t status; psa_storage_uid_t uid; - status = psa_get_se_driver_its_file_uid( driver, &uid ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_se_driver_its_file_uid(driver, &uid); + if (status != PSA_SUCCESS) { + return status; + } /* psa_get_se_driver_its_file_uid ensures that the size_t * persistent_data_size is in range, but compilers don't know that, * so cast to reassure them. */ - return( psa_its_set( uid, - (uint32_t) driver->u.internal.persistent_data_size, - driver->u.internal.persistent_data, - 0 ) ); + return psa_its_set(uid, + (uint32_t) driver->u.internal.persistent_data_size, + driver->u.internal.persistent_data, + 0); } -psa_status_t psa_destroy_se_persistent_data( psa_key_location_t location ) +psa_status_t psa_destroy_se_persistent_data(psa_key_location_t location) { psa_storage_uid_t uid; - if( location > PSA_MAX_SE_LOCATION ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (location > PSA_MAX_SE_LOCATION) { + return PSA_ERROR_NOT_SUPPORTED; + } uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + location; - return( psa_its_remove( uid ) ); + return psa_its_remove(uid); } psa_status_t psa_find_se_slot_for_key( const psa_key_attributes_t *attributes, psa_key_creation_method_t method, psa_se_drv_table_entry_t *driver, - psa_key_slot_number_t *slot_number ) + psa_key_slot_number_t *slot_number) { psa_status_t status; psa_key_location_t key_location = - PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); + PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes)); /* If the location is wrong, it's a bug in the library. */ - if( driver->location != key_location ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (driver->location != key_location) { + return PSA_ERROR_CORRUPTION_DETECTED; + } /* If the driver doesn't support key creation in any way, give up now. */ - if( driver->methods->key_management == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (driver->methods->key_management == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } - if( psa_get_key_slot_number( attributes, slot_number ) == PSA_SUCCESS ) - { + if (psa_get_key_slot_number(attributes, slot_number) == PSA_SUCCESS) { /* The application wants to use a specific slot. Allow it if * the driver supports it. On a system with isolation, * the crypto service must check that the application is * permitted to request this slot. */ psa_drv_se_validate_slot_number_t p_validate_slot_number = driver->methods->key_management->p_validate_slot_number; - if( p_validate_slot_number == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); - status = p_validate_slot_number( &driver->u.context, - driver->u.internal.persistent_data, - attributes, method, - *slot_number ); - } - else if( method == PSA_KEY_CREATION_REGISTER ) - { + if (p_validate_slot_number == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } + status = p_validate_slot_number(&driver->u.context, + driver->u.internal.persistent_data, + attributes, method, + *slot_number); + } else if (method == PSA_KEY_CREATION_REGISTER) { /* The application didn't specify a slot number. This doesn't * make sense when registering a slot. */ - return( PSA_ERROR_INVALID_ARGUMENT ); - } - else - { + return PSA_ERROR_INVALID_ARGUMENT; + } else { /* The application didn't tell us which slot to use. Let the driver * choose. This is the normal case. */ psa_drv_se_allocate_key_t p_allocate = driver->methods->key_management->p_allocate; - if( p_allocate == NULL ) - return( PSA_ERROR_NOT_SUPPORTED ); - status = p_allocate( &driver->u.context, - driver->u.internal.persistent_data, - attributes, method, - slot_number ); + if (p_allocate == NULL) { + return PSA_ERROR_NOT_SUPPORTED; + } + status = p_allocate(&driver->u.context, + driver->u.internal.persistent_data, + attributes, method, + slot_number); } - return( status ); + return status; } -psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver, - psa_key_slot_number_t slot_number ) +psa_status_t psa_destroy_se_key(psa_se_drv_table_entry_t *driver, + psa_key_slot_number_t slot_number) { psa_status_t status; psa_status_t storage_status; @@ -255,40 +259,42 @@ psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver, * locked in a read-only state: we can use the keys but not * destroy them. Hence, if the driver doesn't support destroying * keys, it's really a lack of permission. */ - if( driver->methods->key_management == NULL || - driver->methods->key_management->p_destroy == NULL ) - return( PSA_ERROR_NOT_PERMITTED ); + if (driver->methods->key_management == NULL || + driver->methods->key_management->p_destroy == NULL) { + return PSA_ERROR_NOT_PERMITTED; + } status = driver->methods->key_management->p_destroy( &driver->u.context, driver->u.internal.persistent_data, - slot_number ); - storage_status = psa_save_se_persistent_data( driver ); - return( status == PSA_SUCCESS ? storage_status : status ); + slot_number); + storage_status = psa_save_se_persistent_data(driver); + return status == PSA_SUCCESS ? storage_status : status; } -psa_status_t psa_init_all_se_drivers( void ) +psa_status_t psa_init_all_se_drivers(void) { size_t i; - for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) - { + for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) { psa_se_drv_table_entry_t *driver = &driver_table[i]; - if( driver->location == 0 ) + if (driver->location == 0) { continue; /* skipping unused entry */ - const psa_drv_se_t *methods = psa_get_se_driver_methods( driver ); - if( methods->p_init != NULL ) - { + } + const psa_drv_se_t *methods = psa_get_se_driver_methods(driver); + if (methods->p_init != NULL) { psa_status_t status = methods->p_init( &driver->u.context, driver->u.internal.persistent_data, - driver->location ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_save_se_persistent_data( driver ); - if( status != PSA_SUCCESS ) - return( status ); + driver->location); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_save_se_persistent_data(driver); + if (status != PSA_SUCCESS) { + return status; + } } } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } @@ -304,70 +310,74 @@ psa_status_t psa_register_se_driver( size_t i; psa_status_t status; - if( methods->hal_version != PSA_DRV_SE_HAL_VERSION ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (methods->hal_version != PSA_DRV_SE_HAL_VERSION) { + return PSA_ERROR_NOT_SUPPORTED; + } /* Driver table entries are 0-initialized. 0 is not a valid driver * location because it means a transparent key. */ #if defined(static_assert) - static_assert( PSA_KEY_LOCATION_LOCAL_STORAGE == 0, - "Secure element support requires 0 to mean a local key" ); + static_assert(PSA_KEY_LOCATION_LOCAL_STORAGE == 0, + "Secure element support requires 0 to mean a local key"); #endif - if( location == PSA_KEY_LOCATION_LOCAL_STORAGE ) - return( PSA_ERROR_INVALID_ARGUMENT ); - if( location > PSA_MAX_SE_LOCATION ) - return( PSA_ERROR_NOT_SUPPORTED ); + if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) { + return PSA_ERROR_INVALID_ARGUMENT; + } + if (location > PSA_MAX_SE_LOCATION) { + return PSA_ERROR_NOT_SUPPORTED; + } - for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) - { - if( driver_table[i].location == 0 ) + for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) { + if (driver_table[i].location == 0) { break; + } /* Check that location isn't already in use up to the first free * entry. Since entries are created in order and never deleted, * there can't be a used entry after the first free entry. */ - if( driver_table[i].location == location ) - return( PSA_ERROR_ALREADY_EXISTS ); + if (driver_table[i].location == location) { + return PSA_ERROR_ALREADY_EXISTS; + } + } + if (i == PSA_MAX_SE_DRIVERS) { + return PSA_ERROR_INSUFFICIENT_MEMORY; } - if( i == PSA_MAX_SE_DRIVERS ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); driver_table[i].location = location; driver_table[i].methods = methods; driver_table[i].u.internal.persistent_data_size = methods->persistent_data_size; - if( methods->persistent_data_size != 0 ) - { + if (methods->persistent_data_size != 0) { driver_table[i].u.internal.persistent_data = - mbedtls_calloc( 1, methods->persistent_data_size ); - if( driver_table[i].u.internal.persistent_data == NULL ) - { + mbedtls_calloc(1, methods->persistent_data_size); + if (driver_table[i].u.internal.persistent_data == NULL) { status = PSA_ERROR_INSUFFICIENT_MEMORY; goto error; } /* Load the driver's persistent data. On first use, the persistent * data does not exist in storage, and is initialized to * all-bits-zero by the calloc call just above. */ - status = psa_load_se_persistent_data( &driver_table[i] ); - if( status != PSA_SUCCESS && status != PSA_ERROR_DOES_NOT_EXIST ) + status = psa_load_se_persistent_data(&driver_table[i]); + if (status != PSA_SUCCESS && status != PSA_ERROR_DOES_NOT_EXIST) { goto error; + } } - return( PSA_SUCCESS ); + return PSA_SUCCESS; error: - memset( &driver_table[i], 0, sizeof( driver_table[i] ) ); - return( status ); + memset(&driver_table[i], 0, sizeof(driver_table[i])); + return status; } -void psa_unregister_all_se_drivers( void ) +void psa_unregister_all_se_drivers(void) { size_t i; - for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) - { - if( driver_table[i].u.internal.persistent_data != NULL ) - mbedtls_free( driver_table[i].u.internal.persistent_data ); + for (i = 0; i < PSA_MAX_SE_DRIVERS; i++) { + if (driver_table[i].u.internal.persistent_data != NULL) { + mbedtls_free(driver_table[i].u.internal.persistent_data); + } } - memset( driver_table, 0, sizeof( driver_table ) ); + memset(driver_table, 0, sizeof(driver_table)); } diff --git a/library/psa_crypto_se.h b/library/psa_crypto_se.h index 693c3ead5..a1e5e0922 100644 --- a/library/psa_crypto_se.h +++ b/library/psa_crypto_se.h @@ -47,7 +47,7 @@ * actually not used since it corresponds to #PSA_KEY_LOCATION_LOCAL_STORAGE * which doesn't have a driver. */ -#define PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE ( (psa_key_id_t) 0xfffffe00 ) +#define PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE ((psa_key_id_t) 0xfffffe00) /** The maximum number of registered secure element driver locations. */ #define PSA_MAX_SE_DRIVERS 4 @@ -58,13 +58,13 @@ * state. This function is only intended to be called at the end * of mbedtls_psa_crypto_free(). */ -void psa_unregister_all_se_drivers( void ); +void psa_unregister_all_se_drivers(void); /** Initialize all secure element drivers. * * Called from psa_crypto_init(). */ -psa_status_t psa_init_all_se_drivers( void ); +psa_status_t psa_init_all_se_drivers(void); /** A structure that describes a registered secure element driver. * @@ -89,9 +89,9 @@ typedef struct psa_se_drv_table_entry_s psa_se_drv_table_entry_t; * \retval 0 * \p lifetime does not correspond to a registered driver. */ -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); +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); /** Return the secure element driver table entry for a lifetime value. * @@ -101,7 +101,7 @@ int psa_get_se_driver( psa_key_lifetime_t lifetime, * \p NULL if \p lifetime does not correspond to a registered driver. */ psa_se_drv_table_entry_t *psa_get_se_driver_entry( - psa_key_lifetime_t lifetime ); + psa_key_lifetime_t lifetime); /** Return the method table for a secure element driver. * @@ -111,7 +111,7 @@ psa_se_drv_table_entry_t *psa_get_se_driver_entry( * \c NULL if \p driver is \c NULL. */ const psa_drv_se_t *psa_get_se_driver_methods( - const psa_se_drv_table_entry_t *driver ); + const psa_se_drv_table_entry_t *driver); /** Return the context of a secure element driver. * @@ -121,7 +121,7 @@ const psa_drv_se_t *psa_get_se_driver_methods( * \c NULL if \p driver is \c NULL. */ psa_drv_se_context_t *psa_get_se_driver_context( - psa_se_drv_table_entry_t *driver ); + psa_se_drv_table_entry_t *driver); /** Find a free slot for a key that is to be created. * @@ -137,15 +137,15 @@ psa_status_t psa_find_se_slot_for_key( const psa_key_attributes_t *attributes, psa_key_creation_method_t method, psa_se_drv_table_entry_t *driver, - psa_key_slot_number_t *slot_number ); + psa_key_slot_number_t *slot_number); /** Destroy a key in a secure element. * * This function calls the relevant driver method to destroy a key * and updates the driver's persistent data. */ -psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver, - psa_key_slot_number_t slot_number ); +psa_status_t psa_destroy_se_key(psa_se_drv_table_entry_t *driver, + psa_key_slot_number_t slot_number); /** Load the persistent data of a secure element driver. * @@ -160,7 +160,7 @@ psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver, * \return #PSA_ERROR_INVALID_ARGUMENT */ psa_status_t psa_load_se_persistent_data( - const psa_se_drv_table_entry_t *driver ); + const psa_se_drv_table_entry_t *driver); /** Save the persistent data of a secure element driver. * @@ -176,7 +176,7 @@ psa_status_t psa_load_se_persistent_data( * \return #PSA_ERROR_INVALID_ARGUMENT */ psa_status_t psa_save_se_persistent_data( - const psa_se_drv_table_entry_t *driver ); + const psa_se_drv_table_entry_t *driver); /** Destroy the persistent data of a secure element driver. * @@ -185,14 +185,13 @@ psa_status_t psa_save_se_persistent_data( * \param[in] location The location identifier for the driver whose * persistent data is to be erased. */ -psa_status_t psa_destroy_se_persistent_data( psa_key_location_t location ); +psa_status_t psa_destroy_se_persistent_data(psa_key_location_t location); /** The storage representation of a key whose data is in a secure element. */ -typedef struct -{ - uint8_t slot_number[sizeof( psa_key_slot_number_t )]; +typedef struct { + uint8_t slot_number[sizeof(psa_key_slot_number_t)]; } psa_se_key_data_storage_t; #endif /* PSA_CRYPTO_SE_H */ diff --git a/library/psa_crypto_slot_management.c b/library/psa_crypto_slot_management.c index 9dceaac6d..cb7fa59c0 100644 --- a/library/psa_crypto_slot_management.c +++ b/library/psa_crypto_slot_management.c @@ -36,30 +36,31 @@ #include #include "mbedtls/platform.h" -#define ARRAY_LENGTH( array ) ( sizeof( array ) / sizeof( *( array ) ) ) +#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array))) -typedef struct -{ +typedef struct { psa_key_slot_t key_slots[MBEDTLS_PSA_KEY_SLOT_COUNT]; unsigned key_slots_initialized : 1; } psa_global_data_t; static psa_global_data_t global_data; -int psa_is_valid_key_id( mbedtls_svc_key_id_t key, int vendor_ok ) +int psa_is_valid_key_id(mbedtls_svc_key_id_t key, int vendor_ok) { - psa_key_id_t key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key ); + psa_key_id_t key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key); - if( ( PSA_KEY_ID_USER_MIN <= key_id ) && - ( key_id <= PSA_KEY_ID_USER_MAX ) ) - return( 1 ); + if ((PSA_KEY_ID_USER_MIN <= key_id) && + (key_id <= PSA_KEY_ID_USER_MAX)) { + return 1; + } - if( vendor_ok && - ( PSA_KEY_ID_VENDOR_MIN <= key_id ) && - ( key_id <= PSA_KEY_ID_VENDOR_MAX ) ) - return( 1 ); + if (vendor_ok && + (PSA_KEY_ID_VENDOR_MIN <= key_id) && + (key_id <= PSA_KEY_ID_VENDOR_MAX)) { + return 1; + } - return( 0 ); + return 0; } /** Get the description in memory of a key given its identifier and lock it. @@ -94,16 +95,15 @@ int psa_is_valid_key_id( mbedtls_svc_key_id_t key, int vendor_ok ) * There is no key with key identifier \p key in the key slots. */ static psa_status_t psa_get_and_lock_key_slot_in_memory( - mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot ) + mbedtls_svc_key_id_t key, psa_key_slot_t **p_slot) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_id_t key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key ); + psa_key_id_t key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key); size_t slot_idx; psa_key_slot_t *slot = NULL; - if( psa_key_id_is_volatile( key_id ) ) - { - slot = &global_data.key_slots[ key_id - PSA_KEY_ID_VOLATILE_MIN ]; + if (psa_key_id_is_volatile(key_id)) { + slot = &global_data.key_slots[key_id - PSA_KEY_ID_VOLATILE_MIN]; /* * Check if both the PSA key identifier key_id and the owner @@ -113,83 +113,79 @@ static psa_status_t psa_get_and_lock_key_slot_in_memory( * is equal to zero. This is an invalid value for a PSA key identifier * and thus cannot be equal to the valid PSA key identifier key_id. */ - status = mbedtls_svc_key_id_equal( key, slot->attr.id ) ? + status = mbedtls_svc_key_id_equal(key, slot->attr.id) ? PSA_SUCCESS : PSA_ERROR_DOES_NOT_EXIST; - } - else - { - if ( !psa_is_valid_key_id( key, 1 ) ) - return( PSA_ERROR_INVALID_HANDLE ); - - for( slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++ ) - { - slot = &global_data.key_slots[ slot_idx ]; - if( mbedtls_svc_key_id_equal( key, slot->attr.id ) ) - break; + } else { + if (!psa_is_valid_key_id(key, 1)) { + return PSA_ERROR_INVALID_HANDLE; } - status = ( slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT ) ? + + for (slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++) { + slot = &global_data.key_slots[slot_idx]; + if (mbedtls_svc_key_id_equal(key, slot->attr.id)) { + break; + } + } + status = (slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT) ? PSA_SUCCESS : PSA_ERROR_DOES_NOT_EXIST; } - if( status == PSA_SUCCESS ) - { - status = psa_lock_key_slot( slot ); - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { + status = psa_lock_key_slot(slot); + if (status == PSA_SUCCESS) { *p_slot = slot; + } } - return( status ); + return status; } -psa_status_t psa_initialize_key_slots( void ) +psa_status_t psa_initialize_key_slots(void) { /* Nothing to do: program startup and psa_wipe_all_key_slots() both * guarantee that the key slots are initialized to all-zero, which * means that all the key slots are in a valid, empty state. */ global_data.key_slots_initialized = 1; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -void psa_wipe_all_key_slots( void ) +void psa_wipe_all_key_slots(void) { size_t slot_idx; - for( slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++ ) - { - psa_key_slot_t *slot = &global_data.key_slots[ slot_idx ]; + for (slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++) { + psa_key_slot_t *slot = &global_data.key_slots[slot_idx]; slot->lock_count = 1; - (void) psa_wipe_key_slot( slot ); + (void) psa_wipe_key_slot(slot); } global_data.key_slots_initialized = 0; } -psa_status_t psa_get_empty_key_slot( psa_key_id_t *volatile_key_id, - psa_key_slot_t **p_slot ) +psa_status_t psa_get_empty_key_slot(psa_key_id_t *volatile_key_id, + psa_key_slot_t **p_slot) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t slot_idx; psa_key_slot_t *selected_slot, *unlocked_persistent_key_slot; - if( ! global_data.key_slots_initialized ) - { + if (!global_data.key_slots_initialized) { status = PSA_ERROR_BAD_STATE; goto error; } selected_slot = unlocked_persistent_key_slot = NULL; - for( slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++ ) - { - psa_key_slot_t *slot = &global_data.key_slots[ slot_idx ]; - if( ! psa_is_key_slot_occupied( slot ) ) - { + for (slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++) { + psa_key_slot_t *slot = &global_data.key_slots[slot_idx]; + if (!psa_is_key_slot_occupied(slot)) { selected_slot = slot; break; } - if( ( unlocked_persistent_key_slot == NULL ) && - ( ! PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) && - ( ! psa_is_key_slot_locked( slot ) ) ) + if ((unlocked_persistent_key_slot == NULL) && + (!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) && + (!psa_is_key_slot_locked(slot))) { unlocked_persistent_key_slot = slot; + } } /* @@ -199,25 +195,24 @@ psa_status_t psa_get_empty_key_slot( psa_key_id_t *volatile_key_id, * persistent key we are evicting now, we will reload its description from * storage. */ - if( ( selected_slot == NULL ) && - ( unlocked_persistent_key_slot != NULL ) ) - { + if ((selected_slot == NULL) && + (unlocked_persistent_key_slot != NULL)) { selected_slot = unlocked_persistent_key_slot; selected_slot->lock_count = 1; - psa_wipe_key_slot( selected_slot ); + psa_wipe_key_slot(selected_slot); } - if( selected_slot != NULL ) - { - status = psa_lock_key_slot( selected_slot ); - if( status != PSA_SUCCESS ) - goto error; + if (selected_slot != NULL) { + status = psa_lock_key_slot(selected_slot); + if (status != PSA_SUCCESS) { + goto error; + } *volatile_key_id = PSA_KEY_ID_VOLATILE_MIN + - ( (psa_key_id_t)( selected_slot - global_data.key_slots ) ); + ((psa_key_id_t) (selected_slot - global_data.key_slots)); *p_slot = selected_slot; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } status = PSA_ERROR_INSUFFICIENT_MEMORY; @@ -225,53 +220,52 @@ error: *p_slot = NULL; *volatile_key_id = 0; - return( status ); + return status; } #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) -static psa_status_t psa_load_persistent_key_into_slot( psa_key_slot_t *slot ) +static psa_status_t psa_load_persistent_key_into_slot(psa_key_slot_t *slot) { psa_status_t status = PSA_SUCCESS; uint8_t *key_data = NULL; size_t key_data_length = 0; - status = psa_load_persistent_key( &slot->attr, - &key_data, &key_data_length ); - if( status != PSA_SUCCESS ) + status = psa_load_persistent_key(&slot->attr, + &key_data, &key_data_length); + if (status != PSA_SUCCESS) { goto exit; + } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* Special handling is required for loading keys associated with a * dynamically registered SE interface. */ const psa_drv_se_t *drv; psa_drv_se_context_t *drv_context; - if( psa_get_se_driver( slot->attr.lifetime, &drv, &drv_context ) ) - { + if (psa_get_se_driver(slot->attr.lifetime, &drv, &drv_context)) { psa_se_key_data_storage_t *data; - if( key_data_length != sizeof( *data ) ) - { + if (key_data_length != sizeof(*data)) { status = PSA_ERROR_DATA_INVALID; goto exit; } data = (psa_se_key_data_storage_t *) key_data; status = psa_copy_key_material_into_slot( - slot, data->slot_number, sizeof( data->slot_number ) ); + slot, data->slot_number, sizeof(data->slot_number)); goto exit; } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - status = psa_copy_key_material_into_slot( slot, key_data, key_data_length ); + status = psa_copy_key_material_into_slot(slot, key_data, key_data_length); exit: - psa_free_persistent_key_data( key_data, key_data_length ); - return( status ); + psa_free_persistent_key_data(key_data, key_data_length); + return status; } #endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ #if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) -static psa_status_t psa_load_builtin_key_into_slot( psa_key_slot_t *slot ) +static psa_status_t psa_load_builtin_key_into_slot(psa_key_slot_t *slot) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -280,91 +274,98 @@ static psa_status_t psa_load_builtin_key_into_slot( psa_key_slot_t *slot ) size_t key_buffer_size = 0; size_t key_buffer_length = 0; - if( ! psa_key_id_is_builtin( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot->attr.id ) ) ) - { - return( PSA_ERROR_DOES_NOT_EXIST ); + if (!psa_key_id_is_builtin( + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot->attr.id))) { + return PSA_ERROR_DOES_NOT_EXIST; } /* Check the platform function to see whether this key actually exists */ status = mbedtls_psa_platform_get_builtin_key( - slot->attr.id, &lifetime, &slot_number ); - if( status != PSA_SUCCESS ) - return( status ); + slot->attr.id, &lifetime, &slot_number); + if (status != PSA_SUCCESS) { + return status; + } /* Set required key attributes to ensure get_builtin_key can retrieve the * full attributes. */ - psa_set_key_id( &attributes, slot->attr.id ); - psa_set_key_lifetime( &attributes, lifetime ); + psa_set_key_id(&attributes, slot->attr.id); + psa_set_key_lifetime(&attributes, lifetime); /* Get the full key attributes from the driver in order to be able to * calculate the required buffer size. */ status = psa_driver_wrapper_get_builtin_key( - slot_number, &attributes, - NULL, 0, NULL ); - if( status != PSA_ERROR_BUFFER_TOO_SMALL ) - { + slot_number, &attributes, + NULL, 0, NULL); + if (status != PSA_ERROR_BUFFER_TOO_SMALL) { /* Builtin keys cannot be defined by the attributes alone */ - if( status == PSA_SUCCESS ) + if (status == PSA_SUCCESS) { status = PSA_ERROR_CORRUPTION_DETECTED; - return( status ); + } + return status; } /* If the key should exist according to the platform, then ask the driver * what its expected size is. */ - status = psa_driver_wrapper_get_key_buffer_size( &attributes, - &key_buffer_size ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_driver_wrapper_get_key_buffer_size(&attributes, + &key_buffer_size); + if (status != PSA_SUCCESS) { + return status; + } /* Allocate a buffer of the required size and load the builtin key directly * into the (now properly sized) slot buffer. */ - status = psa_allocate_buffer_to_slot( slot, key_buffer_size ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_allocate_buffer_to_slot(slot, key_buffer_size); + if (status != PSA_SUCCESS) { + return status; + } status = psa_driver_wrapper_get_builtin_key( - slot_number, &attributes, - slot->key.data, slot->key.bytes, &key_buffer_length ); - if( status != PSA_SUCCESS ) + slot_number, &attributes, + slot->key.data, slot->key.bytes, &key_buffer_length); + if (status != PSA_SUCCESS) { goto exit; + } /* Copy actual key length and core attributes into the slot on success */ slot->key.bytes = key_buffer_length; slot->attr = attributes.core; exit: - if( status != PSA_SUCCESS ) - psa_remove_key_data_from_memory( slot ); - return( status ); + if (status != PSA_SUCCESS) { + psa_remove_key_data_from_memory(slot); + } + return status; } #endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ -psa_status_t psa_get_and_lock_key_slot( mbedtls_svc_key_id_t key, - psa_key_slot_t **p_slot ) +psa_status_t psa_get_and_lock_key_slot(mbedtls_svc_key_id_t key, + psa_key_slot_t **p_slot) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; *p_slot = NULL; - if( ! global_data.key_slots_initialized ) - return( PSA_ERROR_BAD_STATE ); + if (!global_data.key_slots_initialized) { + return PSA_ERROR_BAD_STATE; + } /* * On success, the pointer to the slot is passed directly to the caller * thus no need to unlock the key slot here. */ - status = psa_get_and_lock_key_slot_in_memory( key, p_slot ); - if( status != PSA_ERROR_DOES_NOT_EXIST ) - return( status ); + status = psa_get_and_lock_key_slot_in_memory(key, p_slot); + if (status != PSA_ERROR_DOES_NOT_EXIST) { + return status; + } /* Loading keys from storage requires support for such a mechanism */ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) || \ defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) psa_key_id_t volatile_key_id; - status = psa_get_empty_key_slot( &volatile_key_id, p_slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_empty_key_slot(&volatile_key_id, p_slot); + if (status != PSA_SUCCESS) { + return status; + } (*p_slot)->attr.id = key; (*p_slot)->attr.lifetime = PSA_KEY_LIFETIME_PERSISTENT; @@ -372,66 +373,66 @@ psa_status_t psa_get_and_lock_key_slot( mbedtls_svc_key_id_t key, status = PSA_ERROR_DOES_NOT_EXIST; #if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) /* Load keys in the 'builtin' range through their own interface */ - status = psa_load_builtin_key_into_slot( *p_slot ); + status = psa_load_builtin_key_into_slot(*p_slot); #endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( status == PSA_ERROR_DOES_NOT_EXIST ) - status = psa_load_persistent_key_into_slot( *p_slot ); + if (status == PSA_ERROR_DOES_NOT_EXIST) { + status = psa_load_persistent_key_into_slot(*p_slot); + } #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */ - if( status != PSA_SUCCESS ) - { - psa_wipe_key_slot( *p_slot ); - if( status == PSA_ERROR_DOES_NOT_EXIST ) + if (status != PSA_SUCCESS) { + psa_wipe_key_slot(*p_slot); + if (status == PSA_ERROR_DOES_NOT_EXIST) { status = PSA_ERROR_INVALID_HANDLE; - } - else + } + } else { /* Add implicit usage flags. */ - psa_extend_key_usage_flags( &(*p_slot)->attr.policy.usage ); + psa_extend_key_usage_flags(&(*p_slot)->attr.policy.usage); + } - return( status ); + return status; #else /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ - return( PSA_ERROR_INVALID_HANDLE ); + return PSA_ERROR_INVALID_HANDLE; #endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ } -psa_status_t psa_unlock_key_slot( psa_key_slot_t *slot ) +psa_status_t psa_unlock_key_slot(psa_key_slot_t *slot) { - if( slot == NULL ) - return( PSA_SUCCESS ); - - if( slot->lock_count > 0 ) - { - slot->lock_count--; - return( PSA_SUCCESS ); + if (slot == NULL) { + return PSA_SUCCESS; } - /* - * As the return error code may not be handled in case of multiple errors, - * do our best to report if the lock counter is equal to zero. Assert with - * MBEDTLS_TEST_HOOK_TEST_ASSERT that the lock counter is strictly greater - * than zero: if the MBEDTLS_TEST_HOOKS configuration option is enabled and - * the function is called as part of the execution of a test suite, the - * execution of the test suite is stopped in error if the assertion fails. - */ - MBEDTLS_TEST_HOOK_TEST_ASSERT( slot->lock_count > 0 ); - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (slot->lock_count > 0) { + slot->lock_count--; + return PSA_SUCCESS; + } + + /* + * As the return error code may not be handled in case of multiple errors, + * do our best to report if the lock counter is equal to zero. Assert with + * MBEDTLS_TEST_HOOK_TEST_ASSERT that the lock counter is strictly greater + * than zero: if the MBEDTLS_TEST_HOOKS configuration option is enabled and + * the function is called as part of the execution of a test suite, the + * execution of the test suite is stopped in error if the assertion fails. + */ + MBEDTLS_TEST_HOOK_TEST_ASSERT(slot->lock_count > 0); + return PSA_ERROR_CORRUPTION_DETECTED; } -psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, - psa_se_drv_table_entry_t **p_drv ) +psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime, + psa_se_drv_table_entry_t **p_drv) { - if ( psa_key_lifetime_is_external( lifetime ) ) - { + if (psa_key_lifetime_is_external(lifetime)) { #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* Check whether a driver is registered against this lifetime */ - psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry( lifetime ); - if( driver != NULL ) - { - if (p_drv != NULL) + psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry(lifetime); + if (driver != NULL) { + if (p_drv != NULL) { *p_drv = driver; - return( PSA_SUCCESS ); + } + return PSA_SUCCESS; } #else /* MBEDTLS_PSA_CRYPTO_SE_C */ (void) p_drv; @@ -439,139 +440,138 @@ psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, #if defined(MBEDTLS_PSA_CRYPTO_DRIVERS) /* Key location for external keys gets checked by the wrapper */ - return( PSA_SUCCESS ); + return PSA_SUCCESS; #else /* MBEDTLS_PSA_CRYPTO_DRIVERS */ /* No support for external lifetimes at all, or dynamic interface * did not find driver for requested lifetime. */ - return( PSA_ERROR_INVALID_ARGUMENT ); + return PSA_ERROR_INVALID_ARGUMENT; #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS */ - } - else + } else { /* Local/internal keys are always valid */ - return( PSA_SUCCESS ); + return PSA_SUCCESS; + } } -psa_status_t psa_validate_key_persistence( psa_key_lifetime_t lifetime ) +psa_status_t psa_validate_key_persistence(psa_key_lifetime_t lifetime) { - if ( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { /* Volatile keys are always supported */ - return( PSA_SUCCESS ); - } - else - { + return PSA_SUCCESS; + } else { /* Persistent keys require storage support */ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( PSA_KEY_LIFETIME_IS_READ_ONLY( lifetime ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - else - return( PSA_SUCCESS ); + if (PSA_KEY_LIFETIME_IS_READ_ONLY(lifetime)) { + return PSA_ERROR_INVALID_ARGUMENT; + } else { + return PSA_SUCCESS; + } #else /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif /* !MBEDTLS_PSA_CRYPTO_STORAGE_C */ } } -psa_status_t psa_open_key( mbedtls_svc_key_id_t key, psa_key_handle_t *handle ) +psa_status_t psa_open_key(mbedtls_svc_key_id_t key, psa_key_handle_t *handle) { #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) || \ defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) psa_status_t status; psa_key_slot_t *slot; - status = psa_get_and_lock_key_slot( key, &slot ); - if( status != PSA_SUCCESS ) - { + status = psa_get_and_lock_key_slot(key, &slot); + if (status != PSA_SUCCESS) { *handle = PSA_KEY_HANDLE_INIT; - if( status == PSA_ERROR_INVALID_HANDLE ) + if (status == PSA_ERROR_INVALID_HANDLE) { status = PSA_ERROR_DOES_NOT_EXIST; + } - return( status ); + return status; } *handle = key; - return( psa_unlock_key_slot( slot ) ); + return psa_unlock_key_slot(slot); #else /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ (void) key; *handle = PSA_KEY_HANDLE_INIT; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C || MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ } -psa_status_t psa_close_key( psa_key_handle_t handle ) +psa_status_t psa_close_key(psa_key_handle_t handle) { psa_status_t status; psa_key_slot_t *slot; - if( psa_key_handle_is_null( handle ) ) - return( PSA_SUCCESS ); - - status = psa_get_and_lock_key_slot_in_memory( handle, &slot ); - if( status != PSA_SUCCESS ) - { - if( status == PSA_ERROR_DOES_NOT_EXIST ) - status = PSA_ERROR_INVALID_HANDLE; - - return( status ); + if (psa_key_handle_is_null(handle)) { + return PSA_SUCCESS; + } + + status = psa_get_and_lock_key_slot_in_memory(handle, &slot); + if (status != PSA_SUCCESS) { + if (status == PSA_ERROR_DOES_NOT_EXIST) { + status = PSA_ERROR_INVALID_HANDLE; + } + + return status; + } + if (slot->lock_count <= 1) { + return psa_wipe_key_slot(slot); + } else { + return psa_unlock_key_slot(slot); } - if( slot->lock_count <= 1 ) - return( psa_wipe_key_slot( slot ) ); - else - return( psa_unlock_key_slot( slot ) ); } -psa_status_t psa_purge_key( mbedtls_svc_key_id_t key ) +psa_status_t psa_purge_key(mbedtls_svc_key_id_t key) { psa_status_t status; psa_key_slot_t *slot; - status = psa_get_and_lock_key_slot_in_memory( key, &slot ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_get_and_lock_key_slot_in_memory(key, &slot); + if (status != PSA_SUCCESS) { + return status; + } - if( ( ! PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) && - ( slot->lock_count <= 1 ) ) - return( psa_wipe_key_slot( slot ) ); - else - return( psa_unlock_key_slot( slot ) ); + if ((!PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) && + (slot->lock_count <= 1)) { + return psa_wipe_key_slot(slot); + } else { + return psa_unlock_key_slot(slot); + } } -void mbedtls_psa_get_stats( mbedtls_psa_stats_t *stats ) +void mbedtls_psa_get_stats(mbedtls_psa_stats_t *stats) { size_t slot_idx; - memset( stats, 0, sizeof( *stats ) ); + memset(stats, 0, sizeof(*stats)); - for( slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++ ) - { - const psa_key_slot_t *slot = &global_data.key_slots[ slot_idx ]; - if( psa_is_key_slot_locked( slot ) ) - { + for (slot_idx = 0; slot_idx < MBEDTLS_PSA_KEY_SLOT_COUNT; slot_idx++) { + const psa_key_slot_t *slot = &global_data.key_slots[slot_idx]; + if (psa_is_key_slot_locked(slot)) { ++stats->locked_slots; } - if( ! psa_is_key_slot_occupied( slot ) ) - { + if (!psa_is_key_slot_occupied(slot)) { ++stats->empty_slots; continue; } - if( PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) + if (PSA_KEY_LIFETIME_IS_VOLATILE(slot->attr.lifetime)) { ++stats->volatile_slots; - else - { - psa_key_id_t id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot->attr.id ); + } else { + psa_key_id_t id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot->attr.id); ++stats->persistent_slots; - if( id > stats->max_open_internal_key_id ) + if (id > stats->max_open_internal_key_id) { stats->max_open_internal_key_id = id; + } } - if( PSA_KEY_LIFETIME_GET_LOCATION( slot->attr.lifetime ) != - PSA_KEY_LOCATION_LOCAL_STORAGE ) - { - psa_key_id_t id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot->attr.id ); + if (PSA_KEY_LIFETIME_GET_LOCATION(slot->attr.lifetime) != + PSA_KEY_LOCATION_LOCAL_STORAGE) { + psa_key_id_t id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot->attr.id); ++stats->external_slots; - if( id > stats->max_open_external_key_id ) + if (id > stats->max_open_external_key_id) { stats->max_open_external_key_id = id; + } } } } diff --git a/library/psa_crypto_slot_management.h b/library/psa_crypto_slot_management.h index d539bdd86..ff8ccdeae 100644 --- a/library/psa_crypto_slot_management.h +++ b/library/psa_crypto_slot_management.h @@ -35,8 +35,8 @@ /** The minimum value for a volatile key identifier. */ -#define PSA_KEY_ID_VOLATILE_MIN ( PSA_KEY_ID_VENDOR_MAX - \ - MBEDTLS_PSA_KEY_SLOT_COUNT + 1 ) +#define PSA_KEY_ID_VOLATILE_MIN (PSA_KEY_ID_VENDOR_MAX - \ + MBEDTLS_PSA_KEY_SLOT_COUNT + 1) /** The maximum value for a volatile key identifier. */ @@ -51,10 +51,10 @@ * \retval 0 * The key identifier is not a volatile key identifier. */ -static inline int psa_key_id_is_volatile( psa_key_id_t key_id ) +static inline int psa_key_id_is_volatile(psa_key_id_t key_id) { - return( ( key_id >= PSA_KEY_ID_VOLATILE_MIN ) && - ( key_id <= PSA_KEY_ID_VOLATILE_MAX ) ); + return (key_id >= PSA_KEY_ID_VOLATILE_MIN) && + (key_id <= PSA_KEY_ID_VOLATILE_MAX); } /** Get the description of a key given its identifier and lock it. @@ -92,20 +92,20 @@ static inline int psa_key_id_is_volatile( psa_key_id_t key_id ) * \retval #PSA_ERROR_STORAGE_FAILURE * \retval #PSA_ERROR_DATA_CORRUPT */ -psa_status_t psa_get_and_lock_key_slot( mbedtls_svc_key_id_t key, - psa_key_slot_t **p_slot ); +psa_status_t psa_get_and_lock_key_slot(mbedtls_svc_key_id_t key, + psa_key_slot_t **p_slot); /** Initialize the key slot structures. * * \retval #PSA_SUCCESS * Currently this function always succeeds. */ -psa_status_t psa_initialize_key_slots( void ); +psa_status_t psa_initialize_key_slots(void); /** Delete all data from key slots in memory. * * This does not affect persistent storage. */ -void psa_wipe_all_key_slots( void ); +void psa_wipe_all_key_slots(void); /** Find a free key slot. * @@ -122,8 +122,8 @@ void psa_wipe_all_key_slots( void ); * \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_BAD_STATE */ -psa_status_t psa_get_empty_key_slot( psa_key_id_t *volatile_key_id, - psa_key_slot_t **p_slot ); +psa_status_t psa_get_empty_key_slot(psa_key_id_t *volatile_key_id, + psa_key_slot_t **p_slot); /** Lock a key slot. * @@ -137,14 +137,15 @@ psa_status_t psa_get_empty_key_slot( psa_key_id_t *volatile_key_id, * The lock counter already reached its maximum value and was not * increased. */ -static inline psa_status_t psa_lock_key_slot( psa_key_slot_t *slot ) +static inline psa_status_t psa_lock_key_slot(psa_key_slot_t *slot) { - if( slot->lock_count >= SIZE_MAX ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (slot->lock_count >= SIZE_MAX) { + return PSA_ERROR_CORRUPTION_DETECTED; + } slot->lock_count++; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** Unlock a key slot. @@ -163,7 +164,7 @@ static inline psa_status_t psa_lock_key_slot( psa_key_slot_t *slot ) * The lock counter was equal to 0. * */ -psa_status_t psa_unlock_key_slot( psa_key_slot_t *slot ); +psa_status_t psa_unlock_key_slot(psa_key_slot_t *slot); /** Test whether a lifetime designates a key in an external cryptoprocessor. * @@ -177,10 +178,10 @@ psa_status_t psa_unlock_key_slot( psa_key_slot_t *slot ); * The lifetime designates a key that is volatile or in internal * storage. */ -static inline int psa_key_lifetime_is_external( psa_key_lifetime_t lifetime ) +static inline int psa_key_lifetime_is_external(psa_key_lifetime_t lifetime) { - return( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) - != PSA_KEY_LOCATION_LOCAL_STORAGE ); + return PSA_KEY_LIFETIME_GET_LOCATION(lifetime) + != PSA_KEY_LOCATION_LOCAL_STORAGE; } /** Validate a key's location. @@ -197,8 +198,8 @@ static inline int psa_key_lifetime_is_external( psa_key_lifetime_t lifetime ) * \retval #PSA_SUCCESS * \retval #PSA_ERROR_INVALID_ARGUMENT */ -psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, - psa_se_drv_table_entry_t **p_drv ); +psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime, + psa_se_drv_table_entry_t **p_drv); /** Validate the persistence of a key. * @@ -208,7 +209,7 @@ psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, * \retval #PSA_ERROR_NOT_SUPPORTED The key is persistent but persistent keys * are not supported. */ -psa_status_t psa_validate_key_persistence( psa_key_lifetime_t lifetime ); +psa_status_t psa_validate_key_persistence(psa_key_lifetime_t lifetime); /** Validate a key identifier. * @@ -219,6 +220,6 @@ psa_status_t psa_validate_key_persistence( psa_key_lifetime_t lifetime ); * * \retval <> 0 if the key identifier is valid, 0 otherwise. */ -int psa_is_valid_key_id( mbedtls_svc_key_id_t key, int vendor_ok ); +int psa_is_valid_key_id(mbedtls_svc_key_id_t key, int vendor_ok); #endif /* PSA_CRYPTO_SLOT_MANAGEMENT_H */ diff --git a/library/psa_crypto_storage.c b/library/psa_crypto_storage.c index 3186a3685..822501439 100644 --- a/library/psa_crypto_storage.c +++ b/library/psa_crypto_storage.c @@ -49,22 +49,22 @@ * other than storing a key. Currently, the only such file is the random seed * file whose name is PSA_CRYPTO_ITS_RANDOM_SEED_UID and whose value is * 0xFFFFFF52. */ -static psa_storage_uid_t psa_its_identifier_of_slot( mbedtls_svc_key_id_t key ) +static psa_storage_uid_t psa_its_identifier_of_slot(mbedtls_svc_key_id_t key) { #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) /* Encode the owner in the upper 32 bits. This means that if * owner values are nonzero (as they are on a PSA platform), * no key file will ever have a value less than 0x100000000, so * the whole range 0..0xffffffff is available for non-key files. */ - uint32_t unsigned_owner_id = MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( key ); - return( ( (uint64_t) unsigned_owner_id << 32 ) | - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key ) ); + uint32_t unsigned_owner_id = MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(key); + return ((uint64_t) unsigned_owner_id << 32) | + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key); #else /* Use the key id directly as a file name. * psa_is_key_id_valid() in psa_crypto_slot_management.c * is responsible for ensuring that key identifiers do not have a * value that is reserved for non-key files. */ - return( key ); + return key; #endif } @@ -86,35 +86,38 @@ static psa_storage_uid_t psa_its_identifier_of_slot( mbedtls_svc_key_id_t key ) * \retval #PSA_ERROR_DOES_NOT_EXIST */ static psa_status_t psa_crypto_storage_load( - const mbedtls_svc_key_id_t key, uint8_t *data, size_t data_size ) + const mbedtls_svc_key_id_t key, uint8_t *data, size_t data_size) { psa_status_t status; - psa_storage_uid_t data_identifier = psa_its_identifier_of_slot( key ); + psa_storage_uid_t data_identifier = psa_its_identifier_of_slot(key); struct psa_storage_info_t data_identifier_info; size_t data_length = 0; - status = psa_its_get_info( data_identifier, &data_identifier_info ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_its_get_info(data_identifier, &data_identifier_info); + if (status != PSA_SUCCESS) { + return status; + } - status = psa_its_get( data_identifier, 0, (uint32_t) data_size, data, &data_length ); - if( data_size != data_length ) - return( PSA_ERROR_DATA_INVALID ); + status = psa_its_get(data_identifier, 0, (uint32_t) data_size, data, &data_length); + if (data_size != data_length) { + return PSA_ERROR_DATA_INVALID; + } - return( status ); + return status; } -int psa_is_key_present_in_storage( const mbedtls_svc_key_id_t key ) +int psa_is_key_present_in_storage(const mbedtls_svc_key_id_t key) { psa_status_t ret; - psa_storage_uid_t data_identifier = psa_its_identifier_of_slot( key ); + psa_storage_uid_t data_identifier = psa_its_identifier_of_slot(key); struct psa_storage_info_t data_identifier_info; - ret = psa_its_get_info( data_identifier, &data_identifier_info ); + ret = psa_its_get_info(data_identifier, &data_identifier_info); - if( ret == PSA_ERROR_DOES_NOT_EXIST ) - return( 0 ); - return( 1 ); + if (ret == PSA_ERROR_DOES_NOT_EXIST) { + return 0; + } + return 1; } /** @@ -134,65 +137,65 @@ int psa_is_key_present_in_storage( const mbedtls_svc_key_id_t key ) * \retval #PSA_ERROR_STORAGE_FAILURE * \retval #PSA_ERROR_DATA_INVALID */ -static psa_status_t psa_crypto_storage_store( const mbedtls_svc_key_id_t key, - const uint8_t *data, - size_t data_length ) +static psa_status_t psa_crypto_storage_store(const mbedtls_svc_key_id_t key, + const uint8_t *data, + size_t data_length) { psa_status_t status; - psa_storage_uid_t data_identifier = psa_its_identifier_of_slot( key ); + psa_storage_uid_t data_identifier = psa_its_identifier_of_slot(key); struct psa_storage_info_t data_identifier_info; - if( psa_is_key_present_in_storage( key ) == 1 ) - return( PSA_ERROR_ALREADY_EXISTS ); - - status = psa_its_set( data_identifier, (uint32_t) data_length, data, 0 ); - if( status != PSA_SUCCESS ) - { - return( PSA_ERROR_DATA_INVALID ); + if (psa_is_key_present_in_storage(key) == 1) { + return PSA_ERROR_ALREADY_EXISTS; } - status = psa_its_get_info( data_identifier, &data_identifier_info ); - if( status != PSA_SUCCESS ) - { + status = psa_its_set(data_identifier, (uint32_t) data_length, data, 0); + if (status != PSA_SUCCESS) { + return PSA_ERROR_DATA_INVALID; + } + + status = psa_its_get_info(data_identifier, &data_identifier_info); + if (status != PSA_SUCCESS) { goto exit; } - if( data_identifier_info.size != data_length ) - { + if (data_identifier_info.size != data_length) { status = PSA_ERROR_DATA_INVALID; goto exit; } exit: - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { /* Remove the file in case we managed to create it but something * went wrong. It's ok if the file doesn't exist. If the file exists * but the removal fails, we're already reporting an error so there's * nothing else we can do. */ - (void) psa_its_remove( data_identifier ); + (void) psa_its_remove(data_identifier); } - return( status ); + return status; } -psa_status_t psa_destroy_persistent_key( const mbedtls_svc_key_id_t key ) +psa_status_t psa_destroy_persistent_key(const mbedtls_svc_key_id_t key) { psa_status_t ret; - psa_storage_uid_t data_identifier = psa_its_identifier_of_slot( key ); + psa_storage_uid_t data_identifier = psa_its_identifier_of_slot(key); struct psa_storage_info_t data_identifier_info; - ret = psa_its_get_info( data_identifier, &data_identifier_info ); - if( ret == PSA_ERROR_DOES_NOT_EXIST ) - return( PSA_SUCCESS ); + ret = psa_its_get_info(data_identifier, &data_identifier_info); + if (ret == PSA_ERROR_DOES_NOT_EXIST) { + return PSA_SUCCESS; + } - if( psa_its_remove( data_identifier ) != PSA_SUCCESS ) - return( PSA_ERROR_DATA_INVALID ); + if (psa_its_remove(data_identifier) != PSA_SUCCESS) { + return PSA_ERROR_DATA_INVALID; + } - ret = psa_its_get_info( data_identifier, &data_identifier_info ); - if( ret != PSA_ERROR_DOES_NOT_EXIST ) - return( PSA_ERROR_DATA_INVALID ); + ret = psa_its_get_info(data_identifier, &data_identifier_info); + if (ret != PSA_ERROR_DOES_NOT_EXIST) { + return PSA_ERROR_DATA_INVALID; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** @@ -209,189 +212,200 @@ psa_status_t psa_destroy_persistent_key( const mbedtls_svc_key_id_t key ) */ static psa_status_t psa_crypto_storage_get_data_length( const mbedtls_svc_key_id_t key, - size_t *data_length ) + size_t *data_length) { psa_status_t status; - psa_storage_uid_t data_identifier = psa_its_identifier_of_slot( key ); + psa_storage_uid_t data_identifier = psa_its_identifier_of_slot(key); struct psa_storage_info_t data_identifier_info; - status = psa_its_get_info( data_identifier, &data_identifier_info ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_its_get_info(data_identifier, &data_identifier_info); + if (status != PSA_SUCCESS) { + return status; + } *data_length = (size_t) data_identifier_info.size; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /** * Persistent key storage magic header. */ #define PSA_KEY_STORAGE_MAGIC_HEADER "PSA\0KEY" -#define PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH ( sizeof( PSA_KEY_STORAGE_MAGIC_HEADER ) ) +#define PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH (sizeof(PSA_KEY_STORAGE_MAGIC_HEADER)) typedef struct { uint8_t magic[PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH]; uint8_t version[4]; - uint8_t lifetime[sizeof( psa_key_lifetime_t )]; + uint8_t lifetime[sizeof(psa_key_lifetime_t)]; uint8_t type[2]; uint8_t bits[2]; - uint8_t policy[sizeof( psa_key_policy_t )]; + uint8_t policy[sizeof(psa_key_policy_t)]; uint8_t data_len[4]; uint8_t key_data[]; } psa_persistent_key_storage_format; -void psa_format_key_data_for_storage( const uint8_t *data, - const size_t data_length, - const psa_core_key_attributes_t *attr, - uint8_t *storage_data ) +void psa_format_key_data_for_storage(const uint8_t *data, + const size_t data_length, + const psa_core_key_attributes_t *attr, + uint8_t *storage_data) { psa_persistent_key_storage_format *storage_format = (psa_persistent_key_storage_format *) storage_data; - memcpy( storage_format->magic, PSA_KEY_STORAGE_MAGIC_HEADER, PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH ); - MBEDTLS_PUT_UINT32_LE( 0, storage_format->version, 0 ); - MBEDTLS_PUT_UINT32_LE( attr->lifetime, storage_format->lifetime, 0 ); - MBEDTLS_PUT_UINT16_LE( (uint16_t) attr->type, storage_format->type, 0 ); - MBEDTLS_PUT_UINT16_LE( (uint16_t) attr->bits, storage_format->bits, 0 ); - MBEDTLS_PUT_UINT32_LE( attr->policy.usage, storage_format->policy, 0 ); - MBEDTLS_PUT_UINT32_LE( attr->policy.alg, storage_format->policy, sizeof( uint32_t ) ); - MBEDTLS_PUT_UINT32_LE( attr->policy.alg2, storage_format->policy, 2 * sizeof( uint32_t ) ); - MBEDTLS_PUT_UINT32_LE( data_length, storage_format->data_len, 0 ); - memcpy( storage_format->key_data, data, data_length ); + memcpy(storage_format->magic, PSA_KEY_STORAGE_MAGIC_HEADER, + PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH); + MBEDTLS_PUT_UINT32_LE(0, storage_format->version, 0); + MBEDTLS_PUT_UINT32_LE(attr->lifetime, storage_format->lifetime, 0); + MBEDTLS_PUT_UINT16_LE((uint16_t) attr->type, storage_format->type, 0); + MBEDTLS_PUT_UINT16_LE((uint16_t) attr->bits, storage_format->bits, 0); + MBEDTLS_PUT_UINT32_LE(attr->policy.usage, storage_format->policy, 0); + MBEDTLS_PUT_UINT32_LE(attr->policy.alg, storage_format->policy, sizeof(uint32_t)); + MBEDTLS_PUT_UINT32_LE(attr->policy.alg2, storage_format->policy, 2 * sizeof(uint32_t)); + MBEDTLS_PUT_UINT32_LE(data_length, storage_format->data_len, 0); + memcpy(storage_format->key_data, data, data_length); } -static psa_status_t check_magic_header( const uint8_t *data ) +static psa_status_t check_magic_header(const uint8_t *data) { - if( memcmp( data, PSA_KEY_STORAGE_MAGIC_HEADER, - PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH ) != 0 ) - return( PSA_ERROR_DATA_INVALID ); - return( PSA_SUCCESS ); + if (memcmp(data, PSA_KEY_STORAGE_MAGIC_HEADER, + PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH) != 0) { + return PSA_ERROR_DATA_INVALID; + } + return PSA_SUCCESS; } -psa_status_t psa_parse_key_data_from_storage( const uint8_t *storage_data, - size_t storage_data_length, - uint8_t **key_data, - size_t *key_data_length, - psa_core_key_attributes_t *attr ) +psa_status_t psa_parse_key_data_from_storage(const uint8_t *storage_data, + size_t storage_data_length, + uint8_t **key_data, + size_t *key_data_length, + psa_core_key_attributes_t *attr) { psa_status_t status; const psa_persistent_key_storage_format *storage_format = - (const psa_persistent_key_storage_format *)storage_data; + (const psa_persistent_key_storage_format *) storage_data; uint32_t version; - if( storage_data_length < sizeof(*storage_format) ) - return( PSA_ERROR_DATA_INVALID ); + if (storage_data_length < sizeof(*storage_format)) { + return PSA_ERROR_DATA_INVALID; + } - status = check_magic_header( storage_data ); - if( status != PSA_SUCCESS ) - return( status ); + status = check_magic_header(storage_data); + if (status != PSA_SUCCESS) { + return status; + } - version = MBEDTLS_GET_UINT32_LE( storage_format->version, 0 ); - if( version != 0 ) - return( PSA_ERROR_DATA_INVALID ); + version = MBEDTLS_GET_UINT32_LE(storage_format->version, 0); + if (version != 0) { + return PSA_ERROR_DATA_INVALID; + } - *key_data_length = MBEDTLS_GET_UINT32_LE( storage_format->data_len, 0 ); - if( *key_data_length > ( storage_data_length - sizeof(*storage_format) ) || - *key_data_length > PSA_CRYPTO_MAX_STORAGE_SIZE ) - return( PSA_ERROR_DATA_INVALID ); + *key_data_length = MBEDTLS_GET_UINT32_LE(storage_format->data_len, 0); + if (*key_data_length > (storage_data_length - sizeof(*storage_format)) || + *key_data_length > PSA_CRYPTO_MAX_STORAGE_SIZE) { + return PSA_ERROR_DATA_INVALID; + } - if( *key_data_length == 0 ) - { + if (*key_data_length == 0) { *key_data = NULL; - } - else - { - *key_data = mbedtls_calloc( 1, *key_data_length ); - if( *key_data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - memcpy( *key_data, storage_format->key_data, *key_data_length ); + } else { + *key_data = mbedtls_calloc(1, *key_data_length); + if (*key_data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + memcpy(*key_data, storage_format->key_data, *key_data_length); } - attr->lifetime = MBEDTLS_GET_UINT32_LE( storage_format->lifetime, 0 ); - attr->type = MBEDTLS_GET_UINT16_LE( storage_format->type, 0 ); - attr->bits = MBEDTLS_GET_UINT16_LE( storage_format->bits, 0 ); - attr->policy.usage = MBEDTLS_GET_UINT32_LE( storage_format->policy, 0 ); - attr->policy.alg = MBEDTLS_GET_UINT32_LE( storage_format->policy, sizeof( uint32_t ) ); - attr->policy.alg2 = MBEDTLS_GET_UINT32_LE( storage_format->policy, 2 * sizeof( uint32_t ) ); + attr->lifetime = MBEDTLS_GET_UINT32_LE(storage_format->lifetime, 0); + attr->type = MBEDTLS_GET_UINT16_LE(storage_format->type, 0); + attr->bits = MBEDTLS_GET_UINT16_LE(storage_format->bits, 0); + attr->policy.usage = MBEDTLS_GET_UINT32_LE(storage_format->policy, 0); + attr->policy.alg = MBEDTLS_GET_UINT32_LE(storage_format->policy, sizeof(uint32_t)); + attr->policy.alg2 = MBEDTLS_GET_UINT32_LE(storage_format->policy, 2 * sizeof(uint32_t)); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -psa_status_t psa_save_persistent_key( const psa_core_key_attributes_t *attr, - const uint8_t *data, - const size_t data_length ) +psa_status_t psa_save_persistent_key(const psa_core_key_attributes_t *attr, + const uint8_t *data, + const size_t data_length) { size_t storage_data_length; uint8_t *storage_data; psa_status_t status; /* All keys saved to persistent storage always have a key context */ - if( data == NULL || data_length == 0 ) - return( PSA_ERROR_INVALID_ARGUMENT ); - - if( data_length > PSA_CRYPTO_MAX_STORAGE_SIZE ) - return( PSA_ERROR_INSUFFICIENT_STORAGE ); - storage_data_length = data_length + sizeof( psa_persistent_key_storage_format ); - - storage_data = mbedtls_calloc( 1, storage_data_length ); - if( storage_data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - - psa_format_key_data_for_storage( data, data_length, attr, storage_data ); - - status = psa_crypto_storage_store( attr->id, - storage_data, storage_data_length ); - - mbedtls_platform_zeroize( storage_data, storage_data_length ); - mbedtls_free( storage_data ); - - return( status ); -} - -void psa_free_persistent_key_data( uint8_t *key_data, size_t key_data_length ) -{ - if( key_data != NULL ) - { - mbedtls_platform_zeroize( key_data, key_data_length ); + if (data == NULL || data_length == 0) { + return PSA_ERROR_INVALID_ARGUMENT; } - mbedtls_free( key_data ); + + if (data_length > PSA_CRYPTO_MAX_STORAGE_SIZE) { + return PSA_ERROR_INSUFFICIENT_STORAGE; + } + storage_data_length = data_length + sizeof(psa_persistent_key_storage_format); + + storage_data = mbedtls_calloc(1, storage_data_length); + if (storage_data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } + + psa_format_key_data_for_storage(data, data_length, attr, storage_data); + + status = psa_crypto_storage_store(attr->id, + storage_data, storage_data_length); + + mbedtls_platform_zeroize(storage_data, storage_data_length); + mbedtls_free(storage_data); + + return status; } -psa_status_t psa_load_persistent_key( psa_core_key_attributes_t *attr, - uint8_t **data, - size_t *data_length ) +void psa_free_persistent_key_data(uint8_t *key_data, size_t key_data_length) +{ + if (key_data != NULL) { + mbedtls_platform_zeroize(key_data, key_data_length); + } + mbedtls_free(key_data); +} + +psa_status_t psa_load_persistent_key(psa_core_key_attributes_t *attr, + uint8_t **data, + size_t *data_length) { psa_status_t status = PSA_SUCCESS; uint8_t *loaded_data; size_t storage_data_length = 0; mbedtls_svc_key_id_t key = attr->id; - status = psa_crypto_storage_get_data_length( key, &storage_data_length ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_crypto_storage_get_data_length(key, &storage_data_length); + if (status != PSA_SUCCESS) { + return status; + } - loaded_data = mbedtls_calloc( 1, storage_data_length ); + loaded_data = mbedtls_calloc(1, storage_data_length); - if( loaded_data == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + if (loaded_data == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - status = psa_crypto_storage_load( key, loaded_data, storage_data_length ); - if( status != PSA_SUCCESS ) + status = psa_crypto_storage_load(key, loaded_data, storage_data_length); + if (status != PSA_SUCCESS) { goto exit; + } - status = psa_parse_key_data_from_storage( loaded_data, storage_data_length, - data, data_length, attr ); + status = psa_parse_key_data_from_storage(loaded_data, storage_data_length, + data, data_length, attr); /* All keys saved to persistent storage always have a key context */ - if( status == PSA_SUCCESS && - ( *data == NULL || *data_length == 0 ) ) + if (status == PSA_SUCCESS && + (*data == NULL || *data_length == 0)) { status = PSA_ERROR_STORAGE_FAILURE; + } exit: - mbedtls_platform_zeroize( loaded_data, storage_data_length ); - mbedtls_free( loaded_data ); - return( status ); + mbedtls_platform_zeroize(loaded_data, storage_data_length); + mbedtls_free(loaded_data); + return status; } @@ -404,47 +418,48 @@ exit: psa_crypto_transaction_t psa_crypto_transaction; -psa_status_t psa_crypto_save_transaction( void ) +psa_status_t psa_crypto_save_transaction(void) { struct psa_storage_info_t p_info; psa_status_t status; - status = psa_its_get_info( PSA_CRYPTO_ITS_TRANSACTION_UID, &p_info ); - if( status == PSA_SUCCESS ) - { + status = psa_its_get_info(PSA_CRYPTO_ITS_TRANSACTION_UID, &p_info); + if (status == PSA_SUCCESS) { /* This shouldn't happen: we're trying to start a transaction while * there is still a transaction that hasn't been replayed. */ - return( PSA_ERROR_CORRUPTION_DETECTED ); + return PSA_ERROR_CORRUPTION_DETECTED; + } else if (status != PSA_ERROR_DOES_NOT_EXIST) { + return status; } - else if( status != PSA_ERROR_DOES_NOT_EXIST ) - return( status ); - return( psa_its_set( PSA_CRYPTO_ITS_TRANSACTION_UID, - sizeof( psa_crypto_transaction ), - &psa_crypto_transaction, - 0 ) ); + return psa_its_set(PSA_CRYPTO_ITS_TRANSACTION_UID, + sizeof(psa_crypto_transaction), + &psa_crypto_transaction, + 0); } -psa_status_t psa_crypto_load_transaction( void ) +psa_status_t psa_crypto_load_transaction(void) { psa_status_t status; size_t length; - status = psa_its_get( PSA_CRYPTO_ITS_TRANSACTION_UID, 0, - sizeof( psa_crypto_transaction ), - &psa_crypto_transaction, &length ); - if( status != PSA_SUCCESS ) - return( status ); - if( length != sizeof( psa_crypto_transaction ) ) - return( PSA_ERROR_DATA_INVALID ); - return( PSA_SUCCESS ); + status = psa_its_get(PSA_CRYPTO_ITS_TRANSACTION_UID, 0, + sizeof(psa_crypto_transaction), + &psa_crypto_transaction, &length); + if (status != PSA_SUCCESS) { + return status; + } + if (length != sizeof(psa_crypto_transaction)) { + return PSA_ERROR_DATA_INVALID; + } + return PSA_SUCCESS; } -psa_status_t psa_crypto_stop_transaction( void ) +psa_status_t psa_crypto_stop_transaction(void) { - psa_status_t status = psa_its_remove( PSA_CRYPTO_ITS_TRANSACTION_UID ); + psa_status_t status = psa_its_remove(PSA_CRYPTO_ITS_TRANSACTION_UID); /* Whether or not updating the storage succeeded, the transaction is * finished now. It's too late to go back, so zero out the in-memory * data. */ - memset( &psa_crypto_transaction, 0, sizeof( psa_crypto_transaction ) ); - return( status ); + memset(&psa_crypto_transaction, 0, sizeof(psa_crypto_transaction)); + return status; } #endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */ @@ -456,24 +471,21 @@ psa_status_t psa_crypto_stop_transaction( void ) /****************************************************************/ #if defined(MBEDTLS_PSA_INJECT_ENTROPY) -psa_status_t mbedtls_psa_storage_inject_entropy( const unsigned char *seed, - size_t seed_size ) +psa_status_t mbedtls_psa_storage_inject_entropy(const unsigned char *seed, + size_t seed_size) { psa_status_t status; struct psa_storage_info_t p_info; - status = psa_its_get_info( PSA_CRYPTO_ITS_RANDOM_SEED_UID, &p_info ); + status = psa_its_get_info(PSA_CRYPTO_ITS_RANDOM_SEED_UID, &p_info); - if( PSA_ERROR_DOES_NOT_EXIST == status ) /* No seed exists */ - { - status = psa_its_set( PSA_CRYPTO_ITS_RANDOM_SEED_UID, seed_size, seed, 0 ); - } - else if( PSA_SUCCESS == status ) - { + if (PSA_ERROR_DOES_NOT_EXIST == status) { /* No seed exists */ + status = psa_its_set(PSA_CRYPTO_ITS_RANDOM_SEED_UID, seed_size, seed, 0); + } else if (PSA_SUCCESS == status) { /* You should not be here. Seed needs to be injected only once */ status = PSA_ERROR_NOT_PERMITTED; } - return( status ); + return status; } #endif /* MBEDTLS_PSA_INJECT_ENTROPY */ diff --git a/library/psa_crypto_storage.h b/library/psa_crypto_storage.h index 970e1083a..8e108c568 100644 --- a/library/psa_crypto_storage.h +++ b/library/psa_crypto_storage.h @@ -35,7 +35,7 @@ extern "C" { /* Limit the maximum key size in storage. This should have no effect * since the key size is limited in memory. */ -#define PSA_CRYPTO_MAX_STORAGE_SIZE ( PSA_BITS_TO_BYTES( PSA_MAX_KEY_BITS ) ) +#define PSA_CRYPTO_MAX_STORAGE_SIZE (PSA_BITS_TO_BYTES(PSA_MAX_KEY_BITS)) /* Sanity check: a file size must fit in 32 bits. Allow a generous * 64kB of metadata. */ #if PSA_CRYPTO_MAX_STORAGE_SIZE > 0xffff0000 @@ -72,7 +72,7 @@ extern "C" { * \retval 1 * Persistent data present for slot number */ -int psa_is_key_present_in_storage( const mbedtls_svc_key_id_t key ); +int psa_is_key_present_in_storage(const mbedtls_svc_key_id_t key); /** * \brief Format key data and metadata and save to a location for given key @@ -105,9 +105,9 @@ int psa_is_key_present_in_storage( const mbedtls_svc_key_id_t key ); * \retval #PSA_ERROR_DATA_INVALID * \retval #PSA_ERROR_DATA_CORRUPT */ -psa_status_t psa_save_persistent_key( const psa_core_key_attributes_t *attr, - const uint8_t *data, - const size_t data_length ); +psa_status_t psa_save_persistent_key(const psa_core_key_attributes_t *attr, + const uint8_t *data, + const size_t data_length); /** * \brief Parses key data and metadata and load persistent key for given @@ -135,9 +135,9 @@ psa_status_t psa_save_persistent_key( const psa_core_key_attributes_t *attr, * \retval #PSA_ERROR_DATA_CORRUPT * \retval #PSA_ERROR_DOES_NOT_EXIST */ -psa_status_t psa_load_persistent_key( psa_core_key_attributes_t *attr, - uint8_t **data, - size_t *data_length ); +psa_status_t psa_load_persistent_key(psa_core_key_attributes_t *attr, + uint8_t **data, + size_t *data_length); /** * \brief Remove persistent data for the given key slot number. @@ -150,7 +150,7 @@ psa_status_t psa_load_persistent_key( psa_core_key_attributes_t *attr, * or the key did not exist. * \retval #PSA_ERROR_DATA_INVALID */ -psa_status_t psa_destroy_persistent_key( const mbedtls_svc_key_id_t key ); +psa_status_t psa_destroy_persistent_key(const mbedtls_svc_key_id_t key); /** * \brief Free the temporary buffer allocated by psa_load_persistent_key(). @@ -162,7 +162,7 @@ psa_status_t psa_destroy_persistent_key( const mbedtls_svc_key_id_t key ); * \param key_data_length Size of the key data buffer. * */ -void psa_free_persistent_key_data( uint8_t *key_data, size_t key_data_length ); +void psa_free_persistent_key_data(uint8_t *key_data, size_t key_data_length); /** * \brief Formats key data and metadata for persistent storage @@ -173,10 +173,10 @@ void psa_free_persistent_key_data( uint8_t *key_data, size_t key_data_length ); * \param[out] storage_data Output buffer for the formatted data. * */ -void psa_format_key_data_for_storage( const uint8_t *data, - const size_t data_length, - const psa_core_key_attributes_t *attr, - uint8_t *storage_data ); +void psa_format_key_data_for_storage(const uint8_t *data, + const size_t data_length, + const psa_core_key_attributes_t *attr, + uint8_t *storage_data); /** * \brief Parses persistent storage data into key data and metadata @@ -194,11 +194,11 @@ void psa_format_key_data_for_storage( const uint8_t *data, * \retval #PSA_ERROR_INSUFFICIENT_MEMORY * \retval #PSA_ERROR_DATA_INVALID */ -psa_status_t psa_parse_key_data_from_storage( const uint8_t *storage_data, - size_t storage_data_length, - uint8_t **key_data, - size_t *key_data_length, - psa_core_key_attributes_t *attr ); +psa_status_t psa_parse_key_data_from_storage(const uint8_t *storage_data, + size_t storage_data_length, + uint8_t **key_data, + size_t *key_data_length, + psa_core_key_attributes_t *attr); #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /** This symbol is defined if transaction support is required. */ @@ -220,7 +220,7 @@ typedef uint16_t psa_crypto_transaction_type_t; * This has the value 0, so zero-initialization sets a transaction's type to * this value. */ -#define PSA_CRYPTO_TRANSACTION_NONE ( (psa_crypto_transaction_type_t) 0x0000 ) +#define PSA_CRYPTO_TRANSACTION_NONE ((psa_crypto_transaction_type_t) 0x0000) /** A key creation transaction. * @@ -228,7 +228,7 @@ typedef uint16_t psa_crypto_transaction_type_t; * Keys in RAM or in internal storage are created atomically in storage * (simple file creation), so they do not need a transaction mechanism. */ -#define PSA_CRYPTO_TRANSACTION_CREATE_KEY ( (psa_crypto_transaction_type_t) 0x0001 ) +#define PSA_CRYPTO_TRANSACTION_CREATE_KEY ((psa_crypto_transaction_type_t) 0x0001) /** A key destruction transaction. * @@ -236,7 +236,7 @@ typedef uint16_t psa_crypto_transaction_type_t; * Keys in RAM or in internal storage are destroyed atomically in storage * (simple file deletion), so they do not need a transaction mechanism. */ -#define PSA_CRYPTO_TRANSACTION_DESTROY_KEY ( (psa_crypto_transaction_type_t) 0x0002 ) +#define PSA_CRYPTO_TRANSACTION_DESTROY_KEY ((psa_crypto_transaction_type_t) 0x0002) /** Transaction data. * @@ -274,8 +274,7 @@ typedef uint16_t psa_crypto_transaction_type_t; * in psa_crypto.c. If you add a new type of transaction, be * sure to add code for it in psa_crypto_recover_transaction(). */ -typedef union -{ +typedef union { /* Each element of this union must have the following properties * to facilitate serialization and deserialization: * @@ -284,8 +283,7 @@ typedef union * - Elements of the struct are arranged such a way that there is * no padding. */ - struct psa_crypto_transaction_unknown_s - { + struct psa_crypto_transaction_unknown_s { psa_crypto_transaction_type_t type; uint16_t unused1; uint32_t unused2; @@ -294,8 +292,7 @@ typedef union } unknown; /* ::type is #PSA_CRYPTO_TRANSACTION_CREATE_KEY or * #PSA_CRYPTO_TRANSACTION_DESTROY_KEY. */ - struct psa_crypto_transaction_key_s - { + struct psa_crypto_transaction_key_s { psa_crypto_transaction_type_t type; uint16_t unused1; psa_key_lifetime_t lifetime; @@ -315,7 +312,7 @@ extern psa_crypto_transaction_t psa_crypto_transaction; * \param type The type of transaction to start. */ static inline void psa_crypto_prepare_transaction( - psa_crypto_transaction_type_t type ) + psa_crypto_transaction_type_t type) { psa_crypto_transaction.unknown.type = type; } @@ -330,7 +327,7 @@ static inline void psa_crypto_prepare_transaction( * \retval #PSA_ERROR_INSUFFICIENT_STORAGE * \retval #PSA_ERROR_STORAGE_FAILURE */ -psa_status_t psa_crypto_save_transaction( void ); +psa_status_t psa_crypto_save_transaction(void); /** Load the transaction data from storage, if any. * @@ -346,7 +343,7 @@ psa_status_t psa_crypto_save_transaction( void ); * \retval #PSA_ERROR_DATA_INVALID * \retval #PSA_ERROR_DATA_CORRUPT */ -psa_status_t psa_crypto_load_transaction( void ); +psa_status_t psa_crypto_load_transaction(void); /** Indicate that the current transaction is finished. * @@ -366,13 +363,13 @@ psa_status_t psa_crypto_load_transaction( void ); * It was impossible to determine whether there was transaction data * in storage, or the transaction data could not be erased. */ -psa_status_t psa_crypto_stop_transaction( void ); +psa_status_t psa_crypto_stop_transaction(void); /** The ITS file identifier for the transaction data. * * 0xffffffNN = special file; 0x74 = 't' for transaction. */ -#define PSA_CRYPTO_ITS_TRANSACTION_UID ( (psa_key_id_t) 0xffffff74 ) +#define PSA_CRYPTO_ITS_TRANSACTION_UID ((psa_key_id_t) 0xffffff74) #endif /* PSA_CRYPTO_STORAGE_HAS_TRANSACTIONS */ @@ -388,8 +385,8 @@ psa_status_t psa_crypto_stop_transaction( void ); * \retval #PSA_ERROR_NOT_PERMITTED * The entropy seed file already exists. */ -psa_status_t mbedtls_psa_storage_inject_entropy( const unsigned char *seed, - size_t seed_size ); +psa_status_t mbedtls_psa_storage_inject_entropy(const unsigned char *seed, + size_t seed_size); #endif /* MBEDTLS_PSA_INJECT_ENTROPY */ #ifdef __cplusplus diff --git a/library/psa_its_file.c b/library/psa_its_file.c index a35ac2494..97486165e 100644 --- a/library/psa_its_file.c +++ b/library/psa_its_file.c @@ -42,10 +42,10 @@ #define PSA_ITS_STORAGE_FILENAME_PATTERN "%08x%08x" #define PSA_ITS_STORAGE_SUFFIX ".psa_its" #define PSA_ITS_STORAGE_FILENAME_LENGTH \ - ( sizeof( PSA_ITS_STORAGE_PREFIX ) - 1 + /*prefix without terminating 0*/ \ - 16 + /*UID (64-bit number in hex)*/ \ - sizeof( PSA_ITS_STORAGE_SUFFIX ) - 1 + /*suffix without terminating 0*/ \ - 1 /*terminating null byte*/ ) + (sizeof(PSA_ITS_STORAGE_PREFIX) - 1 + /*prefix without terminating 0*/ \ + 16 + /*UID (64-bit number in hex)*/ \ + sizeof(PSA_ITS_STORAGE_SUFFIX) - 1 + /*suffix without terminating 0*/ \ + 1 /*terminating null byte*/) #define PSA_ITS_STORAGE_TEMP \ PSA_ITS_STORAGE_PREFIX "tempfile" PSA_ITS_STORAGE_SUFFIX @@ -59,133 +59,143 @@ * use MoveFileExA with the MOVEFILE_REPLACE_EXISTING flag instead. * Returns 0 on success, nonzero on failure. */ #if defined(_WIN32) -#define rename_replace_existing( oldpath, newpath ) \ - ( ! MoveFileExA( oldpath, newpath, MOVEFILE_REPLACE_EXISTING ) ) +#define rename_replace_existing(oldpath, newpath) \ + (!MoveFileExA(oldpath, newpath, MOVEFILE_REPLACE_EXISTING)) #else -#define rename_replace_existing( oldpath, newpath ) rename( oldpath, newpath ) +#define rename_replace_existing(oldpath, newpath) rename(oldpath, newpath) #endif -typedef struct -{ +typedef struct { uint8_t magic[PSA_ITS_MAGIC_LENGTH]; - uint8_t size[sizeof( uint32_t )]; - uint8_t flags[sizeof( psa_storage_create_flags_t )]; + uint8_t size[sizeof(uint32_t)]; + uint8_t flags[sizeof(psa_storage_create_flags_t)]; } psa_its_file_header_t; -static void psa_its_fill_filename( psa_storage_uid_t uid, char *filename ) +static void psa_its_fill_filename(psa_storage_uid_t uid, char *filename) { /* Break up the UID into two 32-bit pieces so as not to rely on * long long support in snprintf. */ - mbedtls_snprintf( filename, PSA_ITS_STORAGE_FILENAME_LENGTH, - "%s" PSA_ITS_STORAGE_FILENAME_PATTERN "%s", - PSA_ITS_STORAGE_PREFIX, - (unsigned) ( uid >> 32 ), - (unsigned) ( uid & 0xffffffff ), - PSA_ITS_STORAGE_SUFFIX ); + mbedtls_snprintf(filename, PSA_ITS_STORAGE_FILENAME_LENGTH, + "%s" PSA_ITS_STORAGE_FILENAME_PATTERN "%s", + PSA_ITS_STORAGE_PREFIX, + (unsigned) (uid >> 32), + (unsigned) (uid & 0xffffffff), + PSA_ITS_STORAGE_SUFFIX); } -static psa_status_t psa_its_read_file( psa_storage_uid_t uid, - struct psa_storage_info_t *p_info, - FILE **p_stream ) +static psa_status_t psa_its_read_file(psa_storage_uid_t uid, + struct psa_storage_info_t *p_info, + FILE **p_stream) { char filename[PSA_ITS_STORAGE_FILENAME_LENGTH]; psa_its_file_header_t header; size_t n; *p_stream = NULL; - psa_its_fill_filename( uid, filename ); - *p_stream = fopen( filename, "rb" ); - if( *p_stream == NULL ) - return( PSA_ERROR_DOES_NOT_EXIST ); + psa_its_fill_filename(uid, filename); + *p_stream = fopen(filename, "rb"); + if (*p_stream == NULL) { + return PSA_ERROR_DOES_NOT_EXIST; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( *p_stream, NULL ); + mbedtls_setbuf(*p_stream, NULL); - n = fread( &header, 1, sizeof( header ), *p_stream ); - if( n != sizeof( header ) ) - return( PSA_ERROR_DATA_CORRUPT ); - if( memcmp( header.magic, PSA_ITS_MAGIC_STRING, - PSA_ITS_MAGIC_LENGTH ) != 0 ) - return( PSA_ERROR_DATA_CORRUPT ); + n = fread(&header, 1, sizeof(header), *p_stream); + if (n != sizeof(header)) { + return PSA_ERROR_DATA_CORRUPT; + } + if (memcmp(header.magic, PSA_ITS_MAGIC_STRING, + PSA_ITS_MAGIC_LENGTH) != 0) { + return PSA_ERROR_DATA_CORRUPT; + } - p_info->size = ( header.size[0] | - header.size[1] << 8 | - header.size[2] << 16 | - header.size[3] << 24 ); - p_info->flags = ( header.flags[0] | - header.flags[1] << 8 | - header.flags[2] << 16 | - header.flags[3] << 24 ); - return( PSA_SUCCESS ); + p_info->size = (header.size[0] | + header.size[1] << 8 | + header.size[2] << 16 | + header.size[3] << 24); + p_info->flags = (header.flags[0] | + header.flags[1] << 8 | + header.flags[2] << 16 | + header.flags[3] << 24); + return PSA_SUCCESS; } -psa_status_t psa_its_get_info( psa_storage_uid_t uid, - struct psa_storage_info_t *p_info ) +psa_status_t psa_its_get_info(psa_storage_uid_t uid, + struct psa_storage_info_t *p_info) { psa_status_t status; FILE *stream = NULL; - status = psa_its_read_file( uid, p_info, &stream ); - if( stream != NULL ) - fclose( stream ); - return( status ); + status = psa_its_read_file(uid, p_info, &stream); + if (stream != NULL) { + fclose(stream); + } + return status; } -psa_status_t psa_its_get( psa_storage_uid_t uid, - uint32_t data_offset, - uint32_t data_length, - void *p_data, - size_t *p_data_length ) +psa_status_t psa_its_get(psa_storage_uid_t uid, + uint32_t data_offset, + uint32_t data_length, + void *p_data, + size_t *p_data_length) { psa_status_t status; FILE *stream = NULL; size_t n; struct psa_storage_info_t info; - status = psa_its_read_file( uid, &info, &stream ); - if( status != PSA_SUCCESS ) + status = psa_its_read_file(uid, &info, &stream); + if (status != PSA_SUCCESS) { goto exit; + } status = PSA_ERROR_INVALID_ARGUMENT; - if( data_offset + data_length < data_offset ) + if (data_offset + data_length < data_offset) { goto exit; + } #if SIZE_MAX < 0xffffffff - if( data_offset + data_length > SIZE_MAX ) + if (data_offset + data_length > SIZE_MAX) { goto exit; + } #endif - if( data_offset + data_length > info.size ) + if (data_offset + data_length > info.size) { goto exit; + } status = PSA_ERROR_STORAGE_FAILURE; #if LONG_MAX < 0xffffffff - while( data_offset > LONG_MAX ) - { - if( fseek( stream, LONG_MAX, SEEK_CUR ) != 0 ) + while (data_offset > LONG_MAX) { + if (fseek(stream, LONG_MAX, SEEK_CUR) != 0) { goto exit; + } data_offset -= LONG_MAX; } #endif - if( fseek( stream, data_offset, SEEK_CUR ) != 0 ) + if (fseek(stream, data_offset, SEEK_CUR) != 0) { goto exit; - n = fread( p_data, 1, data_length, stream ); - if( n != data_length ) + } + n = fread(p_data, 1, data_length, stream); + if (n != data_length) { goto exit; + } status = PSA_SUCCESS; - if( p_data_length != NULL ) + if (p_data_length != NULL) { *p_data_length = n; + } exit: - if( stream != NULL ) - fclose( stream ); - return( status ); + if (stream != NULL) { + fclose(stream); + } + return status; } -psa_status_t psa_its_set( psa_storage_uid_t uid, - uint32_t data_length, - const void *p_data, - psa_storage_create_flags_t create_flags ) +psa_status_t psa_its_set(psa_storage_uid_t uid, + uint32_t data_length, + const void *p_data, + psa_storage_create_flags_t create_flags) { - if( uid == 0 ) - { - return( PSA_ERROR_INVALID_HANDLE ); + if (uid == 0) { + return PSA_ERROR_INVALID_HANDLE; } psa_status_t status = PSA_ERROR_STORAGE_FAILURE; @@ -194,64 +204,68 @@ psa_status_t psa_its_set( psa_storage_uid_t uid, psa_its_file_header_t header; size_t n; - memcpy( header.magic, PSA_ITS_MAGIC_STRING, PSA_ITS_MAGIC_LENGTH ); - MBEDTLS_PUT_UINT32_LE( data_length, header.size, 0 ); - MBEDTLS_PUT_UINT32_LE( create_flags, header.flags, 0 ); + memcpy(header.magic, PSA_ITS_MAGIC_STRING, PSA_ITS_MAGIC_LENGTH); + MBEDTLS_PUT_UINT32_LE(data_length, header.size, 0); + MBEDTLS_PUT_UINT32_LE(create_flags, header.flags, 0); - psa_its_fill_filename( uid, filename ); - stream = fopen( PSA_ITS_STORAGE_TEMP, "wb" ); + psa_its_fill_filename(uid, filename); + stream = fopen(PSA_ITS_STORAGE_TEMP, "wb"); - if( stream == NULL ) + if (stream == NULL) { goto exit; + } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( stream, NULL ); + mbedtls_setbuf(stream, NULL); status = PSA_ERROR_INSUFFICIENT_STORAGE; - n = fwrite( &header, 1, sizeof( header ), stream ); - if( n != sizeof( header ) ) + n = fwrite(&header, 1, sizeof(header), stream); + if (n != sizeof(header)) { goto exit; - if( data_length != 0 ) - { - n = fwrite( p_data, 1, data_length, stream ); - if( n != data_length ) + } + if (data_length != 0) { + n = fwrite(p_data, 1, data_length, stream); + if (n != data_length) { goto exit; + } } status = PSA_SUCCESS; exit: - if( stream != NULL ) - { - int ret = fclose( stream ); - if( status == PSA_SUCCESS && ret != 0 ) + if (stream != NULL) { + int ret = fclose(stream); + if (status == PSA_SUCCESS && ret != 0) { status = PSA_ERROR_INSUFFICIENT_STORAGE; + } } - if( status == PSA_SUCCESS ) - { - if( rename_replace_existing( PSA_ITS_STORAGE_TEMP, filename ) != 0 ) + if (status == PSA_SUCCESS) { + if (rename_replace_existing(PSA_ITS_STORAGE_TEMP, filename) != 0) { status = PSA_ERROR_STORAGE_FAILURE; + } } /* The temporary file may still exist, but only in failure cases where * we're already reporting an error. So there's nothing we can do on * failure. If the function succeeded, and in some error cases, the * temporary file doesn't exist and so remove() is expected to fail. * Thus we just ignore the return status of remove(). */ - (void) remove( PSA_ITS_STORAGE_TEMP ); - return( status ); + (void) remove(PSA_ITS_STORAGE_TEMP); + return status; } -psa_status_t psa_its_remove( psa_storage_uid_t uid ) +psa_status_t psa_its_remove(psa_storage_uid_t uid) { char filename[PSA_ITS_STORAGE_FILENAME_LENGTH]; FILE *stream; - psa_its_fill_filename( uid, filename ); - stream = fopen( filename, "rb" ); - if( stream == NULL ) - return( PSA_ERROR_DOES_NOT_EXIST ); - fclose( stream ); - if( remove( filename ) != 0 ) - return( PSA_ERROR_STORAGE_FAILURE ); - return( PSA_SUCCESS ); + psa_its_fill_filename(uid, filename); + stream = fopen(filename, "rb"); + if (stream == NULL) { + return PSA_ERROR_DOES_NOT_EXIST; + } + fclose(stream); + if (remove(filename) != 0) { + return PSA_ERROR_STORAGE_FAILURE; + } + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_ITS_FILE_C */ diff --git a/library/ripemd160.c b/library/ripemd160.c index 6212cb257..eed664f8c 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -37,21 +37,22 @@ #if !defined(MBEDTLS_RIPEMD160_ALT) -void mbedtls_ripemd160_init( mbedtls_ripemd160_context *ctx ) +void mbedtls_ripemd160_init(mbedtls_ripemd160_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_ripemd160_context ) ); + memset(ctx, 0, sizeof(mbedtls_ripemd160_context)); } -void mbedtls_ripemd160_free( mbedtls_ripemd160_context *ctx ) +void mbedtls_ripemd160_free(mbedtls_ripemd160_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ripemd160_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ripemd160_context)); } -void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst, - const mbedtls_ripemd160_context *src ) +void mbedtls_ripemd160_clone(mbedtls_ripemd160_context *dst, + const mbedtls_ripemd160_context *src) { *dst = *src; } @@ -59,7 +60,7 @@ void mbedtls_ripemd160_clone( mbedtls_ripemd160_context *dst, /* * RIPEMD-160 context setup */ -int mbedtls_ripemd160_starts( mbedtls_ripemd160_context *ctx ) +int mbedtls_ripemd160_starts(mbedtls_ripemd160_context *ctx) { ctx->total[0] = 0; ctx->total[1] = 0; @@ -70,37 +71,36 @@ int mbedtls_ripemd160_starts( mbedtls_ripemd160_context *ctx ) ctx->state[3] = 0x10325476; ctx->state[4] = 0xC3D2E1F0; - return( 0 ); + return 0; } #if !defined(MBEDTLS_RIPEMD160_PROCESS_ALT) /* * Process one block */ -int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, - const unsigned char data[64] ) +int mbedtls_internal_ripemd160_process(mbedtls_ripemd160_context *ctx, + const unsigned char data[64]) { - struct - { + struct { uint32_t A, B, C, D, E, Ap, Bp, Cp, Dp, Ep, X[16]; } local; - local.X[ 0] = MBEDTLS_GET_UINT32_LE( data, 0 ); - local.X[ 1] = MBEDTLS_GET_UINT32_LE( data, 4 ); - local.X[ 2] = MBEDTLS_GET_UINT32_LE( data, 8 ); - local.X[ 3] = MBEDTLS_GET_UINT32_LE( data, 12 ); - local.X[ 4] = MBEDTLS_GET_UINT32_LE( data, 16 ); - local.X[ 5] = MBEDTLS_GET_UINT32_LE( data, 20 ); - local.X[ 6] = MBEDTLS_GET_UINT32_LE( data, 24 ); - local.X[ 7] = MBEDTLS_GET_UINT32_LE( data, 28 ); - local.X[ 8] = MBEDTLS_GET_UINT32_LE( data, 32 ); - local.X[ 9] = MBEDTLS_GET_UINT32_LE( data, 36 ); - local.X[10] = MBEDTLS_GET_UINT32_LE( data, 40 ); - local.X[11] = MBEDTLS_GET_UINT32_LE( data, 44 ); - local.X[12] = MBEDTLS_GET_UINT32_LE( data, 48 ); - local.X[13] = MBEDTLS_GET_UINT32_LE( data, 52 ); - local.X[14] = MBEDTLS_GET_UINT32_LE( data, 56 ); - local.X[15] = MBEDTLS_GET_UINT32_LE( data, 60 ); + local.X[0] = MBEDTLS_GET_UINT32_LE(data, 0); + local.X[1] = MBEDTLS_GET_UINT32_LE(data, 4); + local.X[2] = MBEDTLS_GET_UINT32_LE(data, 8); + local.X[3] = MBEDTLS_GET_UINT32_LE(data, 12); + local.X[4] = MBEDTLS_GET_UINT32_LE(data, 16); + local.X[5] = MBEDTLS_GET_UINT32_LE(data, 20); + local.X[6] = MBEDTLS_GET_UINT32_LE(data, 24); + local.X[7] = MBEDTLS_GET_UINT32_LE(data, 28); + local.X[8] = MBEDTLS_GET_UINT32_LE(data, 32); + local.X[9] = MBEDTLS_GET_UINT32_LE(data, 36); + local.X[10] = MBEDTLS_GET_UINT32_LE(data, 40); + local.X[11] = MBEDTLS_GET_UINT32_LE(data, 44); + local.X[12] = MBEDTLS_GET_UINT32_LE(data, 48); + local.X[13] = MBEDTLS_GET_UINT32_LE(data, 52); + local.X[14] = MBEDTLS_GET_UINT32_LE(data, 56); + local.X[15] = MBEDTLS_GET_UINT32_LE(data, 60); local.A = local.Ap = ctx->state[0]; local.B = local.Bp = ctx->state[1]; @@ -108,50 +108,50 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, local.D = local.Dp = ctx->state[3]; local.E = local.Ep = ctx->state[4]; -#define F1( x, y, z ) ( (x) ^ (y) ^ (z) ) -#define F2( x, y, z ) ( ( (x) & (y) ) | ( ~(x) & (z) ) ) -#define F3( x, y, z ) ( ( (x) | ~(y) ) ^ (z) ) -#define F4( x, y, z ) ( ( (x) & (z) ) | ( (y) & ~(z) ) ) -#define F5( x, y, z ) ( (x) ^ ( (y) | ~(z) ) ) +#define F1(x, y, z) ((x) ^ (y) ^ (z)) +#define F2(x, y, z) (((x) & (y)) | (~(x) & (z))) +#define F3(x, y, z) (((x) | ~(y)) ^ (z)) +#define F4(x, y, z) (((x) & (z)) | ((y) & ~(z))) +#define F5(x, y, z) ((x) ^ ((y) | ~(z))) -#define S( x, n ) ( ( (x) << (n) ) | ( (x) >> (32 - (n)) ) ) +#define S(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) -#define P( a, b, c, d, e, r, s, f, k ) \ +#define P(a, b, c, d, e, r, s, f, k) \ do \ { \ - (a) += f( (b), (c), (d) ) + local.X[r] + (k); \ - (a) = S( (a), (s) ) + (e); \ - (c) = S( (c), 10 ); \ - } while( 0 ) + (a) += f((b), (c), (d)) + local.X[r] + (k); \ + (a) = S((a), (s)) + (e); \ + (c) = S((c), 10); \ + } while (0) -#define P2( a, b, c, d, e, r, s, rp, sp ) \ +#define P2(a, b, c, d, e, r, s, rp, sp) \ do \ { \ - P( (a), (b), (c), (d), (e), (r), (s), F, K ); \ - P( a ## p, b ## p, c ## p, d ## p, e ## p, \ - (rp), (sp), Fp, Kp ); \ - } while( 0 ) + P((a), (b), (c), (d), (e), (r), (s), F, K); \ + P(a ## p, b ## p, c ## p, d ## p, e ## p, \ + (rp), (sp), Fp, Kp); \ + } while (0) #define F F1 #define K 0x00000000 #define Fp F5 #define Kp 0x50A28BE6 - P2( local.A, local.B, local.C, local.D, local.E, 0, 11, 5, 8 ); - P2( local.E, local.A, local.B, local.C, local.D, 1, 14, 14, 9 ); - P2( local.D, local.E, local.A, local.B, local.C, 2, 15, 7, 9 ); - P2( local.C, local.D, local.E, local.A, local.B, 3, 12, 0, 11 ); - P2( local.B, local.C, local.D, local.E, local.A, 4, 5, 9, 13 ); - P2( local.A, local.B, local.C, local.D, local.E, 5, 8, 2, 15 ); - P2( local.E, local.A, local.B, local.C, local.D, 6, 7, 11, 15 ); - P2( local.D, local.E, local.A, local.B, local.C, 7, 9, 4, 5 ); - P2( local.C, local.D, local.E, local.A, local.B, 8, 11, 13, 7 ); - P2( local.B, local.C, local.D, local.E, local.A, 9, 13, 6, 7 ); - P2( local.A, local.B, local.C, local.D, local.E, 10, 14, 15, 8 ); - P2( local.E, local.A, local.B, local.C, local.D, 11, 15, 8, 11 ); - P2( local.D, local.E, local.A, local.B, local.C, 12, 6, 1, 14 ); - P2( local.C, local.D, local.E, local.A, local.B, 13, 7, 10, 14 ); - P2( local.B, local.C, local.D, local.E, local.A, 14, 9, 3, 12 ); - P2( local.A, local.B, local.C, local.D, local.E, 15, 8, 12, 6 ); + P2(local.A, local.B, local.C, local.D, local.E, 0, 11, 5, 8); + P2(local.E, local.A, local.B, local.C, local.D, 1, 14, 14, 9); + P2(local.D, local.E, local.A, local.B, local.C, 2, 15, 7, 9); + P2(local.C, local.D, local.E, local.A, local.B, 3, 12, 0, 11); + P2(local.B, local.C, local.D, local.E, local.A, 4, 5, 9, 13); + P2(local.A, local.B, local.C, local.D, local.E, 5, 8, 2, 15); + P2(local.E, local.A, local.B, local.C, local.D, 6, 7, 11, 15); + P2(local.D, local.E, local.A, local.B, local.C, 7, 9, 4, 5); + P2(local.C, local.D, local.E, local.A, local.B, 8, 11, 13, 7); + P2(local.B, local.C, local.D, local.E, local.A, 9, 13, 6, 7); + P2(local.A, local.B, local.C, local.D, local.E, 10, 14, 15, 8); + P2(local.E, local.A, local.B, local.C, local.D, 11, 15, 8, 11); + P2(local.D, local.E, local.A, local.B, local.C, 12, 6, 1, 14); + P2(local.C, local.D, local.E, local.A, local.B, 13, 7, 10, 14); + P2(local.B, local.C, local.D, local.E, local.A, 14, 9, 3, 12); + P2(local.A, local.B, local.C, local.D, local.E, 15, 8, 12, 6); #undef F #undef K #undef Fp @@ -161,22 +161,22 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, #define K 0x5A827999 #define Fp F4 #define Kp 0x5C4DD124 - P2( local.E, local.A, local.B, local.C, local.D, 7, 7, 6, 9 ); - P2( local.D, local.E, local.A, local.B, local.C, 4, 6, 11, 13 ); - P2( local.C, local.D, local.E, local.A, local.B, 13, 8, 3, 15 ); - P2( local.B, local.C, local.D, local.E, local.A, 1, 13, 7, 7 ); - P2( local.A, local.B, local.C, local.D, local.E, 10, 11, 0, 12 ); - P2( local.E, local.A, local.B, local.C, local.D, 6, 9, 13, 8 ); - P2( local.D, local.E, local.A, local.B, local.C, 15, 7, 5, 9 ); - P2( local.C, local.D, local.E, local.A, local.B, 3, 15, 10, 11 ); - P2( local.B, local.C, local.D, local.E, local.A, 12, 7, 14, 7 ); - P2( local.A, local.B, local.C, local.D, local.E, 0, 12, 15, 7 ); - P2( local.E, local.A, local.B, local.C, local.D, 9, 15, 8, 12 ); - P2( local.D, local.E, local.A, local.B, local.C, 5, 9, 12, 7 ); - P2( local.C, local.D, local.E, local.A, local.B, 2, 11, 4, 6 ); - P2( local.B, local.C, local.D, local.E, local.A, 14, 7, 9, 15 ); - P2( local.A, local.B, local.C, local.D, local.E, 11, 13, 1, 13 ); - P2( local.E, local.A, local.B, local.C, local.D, 8, 12, 2, 11 ); + P2(local.E, local.A, local.B, local.C, local.D, 7, 7, 6, 9); + P2(local.D, local.E, local.A, local.B, local.C, 4, 6, 11, 13); + P2(local.C, local.D, local.E, local.A, local.B, 13, 8, 3, 15); + P2(local.B, local.C, local.D, local.E, local.A, 1, 13, 7, 7); + P2(local.A, local.B, local.C, local.D, local.E, 10, 11, 0, 12); + P2(local.E, local.A, local.B, local.C, local.D, 6, 9, 13, 8); + P2(local.D, local.E, local.A, local.B, local.C, 15, 7, 5, 9); + P2(local.C, local.D, local.E, local.A, local.B, 3, 15, 10, 11); + P2(local.B, local.C, local.D, local.E, local.A, 12, 7, 14, 7); + P2(local.A, local.B, local.C, local.D, local.E, 0, 12, 15, 7); + P2(local.E, local.A, local.B, local.C, local.D, 9, 15, 8, 12); + P2(local.D, local.E, local.A, local.B, local.C, 5, 9, 12, 7); + P2(local.C, local.D, local.E, local.A, local.B, 2, 11, 4, 6); + P2(local.B, local.C, local.D, local.E, local.A, 14, 7, 9, 15); + P2(local.A, local.B, local.C, local.D, local.E, 11, 13, 1, 13); + P2(local.E, local.A, local.B, local.C, local.D, 8, 12, 2, 11); #undef F #undef K #undef Fp @@ -186,22 +186,22 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, #define K 0x6ED9EBA1 #define Fp F3 #define Kp 0x6D703EF3 - P2( local.D, local.E, local.A, local.B, local.C, 3, 11, 15, 9 ); - P2( local.C, local.D, local.E, local.A, local.B, 10, 13, 5, 7 ); - P2( local.B, local.C, local.D, local.E, local.A, 14, 6, 1, 15 ); - P2( local.A, local.B, local.C, local.D, local.E, 4, 7, 3, 11 ); - P2( local.E, local.A, local.B, local.C, local.D, 9, 14, 7, 8 ); - P2( local.D, local.E, local.A, local.B, local.C, 15, 9, 14, 6 ); - P2( local.C, local.D, local.E, local.A, local.B, 8, 13, 6, 6 ); - P2( local.B, local.C, local.D, local.E, local.A, 1, 15, 9, 14 ); - P2( local.A, local.B, local.C, local.D, local.E, 2, 14, 11, 12 ); - P2( local.E, local.A, local.B, local.C, local.D, 7, 8, 8, 13 ); - P2( local.D, local.E, local.A, local.B, local.C, 0, 13, 12, 5 ); - P2( local.C, local.D, local.E, local.A, local.B, 6, 6, 2, 14 ); - P2( local.B, local.C, local.D, local.E, local.A, 13, 5, 10, 13 ); - P2( local.A, local.B, local.C, local.D, local.E, 11, 12, 0, 13 ); - P2( local.E, local.A, local.B, local.C, local.D, 5, 7, 4, 7 ); - P2( local.D, local.E, local.A, local.B, local.C, 12, 5, 13, 5 ); + P2(local.D, local.E, local.A, local.B, local.C, 3, 11, 15, 9); + P2(local.C, local.D, local.E, local.A, local.B, 10, 13, 5, 7); + P2(local.B, local.C, local.D, local.E, local.A, 14, 6, 1, 15); + P2(local.A, local.B, local.C, local.D, local.E, 4, 7, 3, 11); + P2(local.E, local.A, local.B, local.C, local.D, 9, 14, 7, 8); + P2(local.D, local.E, local.A, local.B, local.C, 15, 9, 14, 6); + P2(local.C, local.D, local.E, local.A, local.B, 8, 13, 6, 6); + P2(local.B, local.C, local.D, local.E, local.A, 1, 15, 9, 14); + P2(local.A, local.B, local.C, local.D, local.E, 2, 14, 11, 12); + P2(local.E, local.A, local.B, local.C, local.D, 7, 8, 8, 13); + P2(local.D, local.E, local.A, local.B, local.C, 0, 13, 12, 5); + P2(local.C, local.D, local.E, local.A, local.B, 6, 6, 2, 14); + P2(local.B, local.C, local.D, local.E, local.A, 13, 5, 10, 13); + P2(local.A, local.B, local.C, local.D, local.E, 11, 12, 0, 13); + P2(local.E, local.A, local.B, local.C, local.D, 5, 7, 4, 7); + P2(local.D, local.E, local.A, local.B, local.C, 12, 5, 13, 5); #undef F #undef K #undef Fp @@ -211,22 +211,22 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, #define K 0x8F1BBCDC #define Fp F2 #define Kp 0x7A6D76E9 - P2( local.C, local.D, local.E, local.A, local.B, 1, 11, 8, 15 ); - P2( local.B, local.C, local.D, local.E, local.A, 9, 12, 6, 5 ); - P2( local.A, local.B, local.C, local.D, local.E, 11, 14, 4, 8 ); - P2( local.E, local.A, local.B, local.C, local.D, 10, 15, 1, 11 ); - P2( local.D, local.E, local.A, local.B, local.C, 0, 14, 3, 14 ); - P2( local.C, local.D, local.E, local.A, local.B, 8, 15, 11, 14 ); - P2( local.B, local.C, local.D, local.E, local.A, 12, 9, 15, 6 ); - P2( local.A, local.B, local.C, local.D, local.E, 4, 8, 0, 14 ); - P2( local.E, local.A, local.B, local.C, local.D, 13, 9, 5, 6 ); - P2( local.D, local.E, local.A, local.B, local.C, 3, 14, 12, 9 ); - P2( local.C, local.D, local.E, local.A, local.B, 7, 5, 2, 12 ); - P2( local.B, local.C, local.D, local.E, local.A, 15, 6, 13, 9 ); - P2( local.A, local.B, local.C, local.D, local.E, 14, 8, 9, 12 ); - P2( local.E, local.A, local.B, local.C, local.D, 5, 6, 7, 5 ); - P2( local.D, local.E, local.A, local.B, local.C, 6, 5, 10, 15 ); - P2( local.C, local.D, local.E, local.A, local.B, 2, 12, 14, 8 ); + P2(local.C, local.D, local.E, local.A, local.B, 1, 11, 8, 15); + P2(local.B, local.C, local.D, local.E, local.A, 9, 12, 6, 5); + P2(local.A, local.B, local.C, local.D, local.E, 11, 14, 4, 8); + P2(local.E, local.A, local.B, local.C, local.D, 10, 15, 1, 11); + P2(local.D, local.E, local.A, local.B, local.C, 0, 14, 3, 14); + P2(local.C, local.D, local.E, local.A, local.B, 8, 15, 11, 14); + P2(local.B, local.C, local.D, local.E, local.A, 12, 9, 15, 6); + P2(local.A, local.B, local.C, local.D, local.E, 4, 8, 0, 14); + P2(local.E, local.A, local.B, local.C, local.D, 13, 9, 5, 6); + P2(local.D, local.E, local.A, local.B, local.C, 3, 14, 12, 9); + P2(local.C, local.D, local.E, local.A, local.B, 7, 5, 2, 12); + P2(local.B, local.C, local.D, local.E, local.A, 15, 6, 13, 9); + P2(local.A, local.B, local.C, local.D, local.E, 14, 8, 9, 12); + P2(local.E, local.A, local.B, local.C, local.D, 5, 6, 7, 5); + P2(local.D, local.E, local.A, local.B, local.C, 6, 5, 10, 15); + P2(local.C, local.D, local.E, local.A, local.B, 2, 12, 14, 8); #undef F #undef K #undef Fp @@ -236,22 +236,22 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, #define K 0xA953FD4E #define Fp F1 #define Kp 0x00000000 - P2( local.B, local.C, local.D, local.E, local.A, 4, 9, 12, 8 ); - P2( local.A, local.B, local.C, local.D, local.E, 0, 15, 15, 5 ); - P2( local.E, local.A, local.B, local.C, local.D, 5, 5, 10, 12 ); - P2( local.D, local.E, local.A, local.B, local.C, 9, 11, 4, 9 ); - P2( local.C, local.D, local.E, local.A, local.B, 7, 6, 1, 12 ); - P2( local.B, local.C, local.D, local.E, local.A, 12, 8, 5, 5 ); - P2( local.A, local.B, local.C, local.D, local.E, 2, 13, 8, 14 ); - P2( local.E, local.A, local.B, local.C, local.D, 10, 12, 7, 6 ); - P2( local.D, local.E, local.A, local.B, local.C, 14, 5, 6, 8 ); - P2( local.C, local.D, local.E, local.A, local.B, 1, 12, 2, 13 ); - P2( local.B, local.C, local.D, local.E, local.A, 3, 13, 13, 6 ); - P2( local.A, local.B, local.C, local.D, local.E, 8, 14, 14, 5 ); - P2( local.E, local.A, local.B, local.C, local.D, 11, 11, 0, 15 ); - P2( local.D, local.E, local.A, local.B, local.C, 6, 8, 3, 13 ); - P2( local.C, local.D, local.E, local.A, local.B, 15, 5, 9, 11 ); - P2( local.B, local.C, local.D, local.E, local.A, 13, 6, 11, 11 ); + P2(local.B, local.C, local.D, local.E, local.A, 4, 9, 12, 8); + P2(local.A, local.B, local.C, local.D, local.E, 0, 15, 15, 5); + P2(local.E, local.A, local.B, local.C, local.D, 5, 5, 10, 12); + P2(local.D, local.E, local.A, local.B, local.C, 9, 11, 4, 9); + P2(local.C, local.D, local.E, local.A, local.B, 7, 6, 1, 12); + P2(local.B, local.C, local.D, local.E, local.A, 12, 8, 5, 5); + P2(local.A, local.B, local.C, local.D, local.E, 2, 13, 8, 14); + P2(local.E, local.A, local.B, local.C, local.D, 10, 12, 7, 6); + P2(local.D, local.E, local.A, local.B, local.C, 14, 5, 6, 8); + P2(local.C, local.D, local.E, local.A, local.B, 1, 12, 2, 13); + P2(local.B, local.C, local.D, local.E, local.A, 3, 13, 13, 6); + P2(local.A, local.B, local.C, local.D, local.E, 8, 14, 14, 5); + P2(local.E, local.A, local.B, local.C, local.D, 11, 11, 0, 15); + P2(local.D, local.E, local.A, local.B, local.C, 6, 8, 3, 13); + P2(local.C, local.D, local.E, local.A, local.B, 15, 5, 9, 11); + P2(local.B, local.C, local.D, local.E, local.A, 13, 6, 11, 11); #undef F #undef K #undef Fp @@ -265,9 +265,9 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, ctx->state[0] = local.C; /* Zeroise variables to clear sensitive data from memory. */ - mbedtls_platform_zeroize( &local, sizeof( local ) ); + mbedtls_platform_zeroize(&local, sizeof(local)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_RIPEMD160_PROCESS_ALT */ @@ -275,16 +275,17 @@ int mbedtls_internal_ripemd160_process( mbedtls_ripemd160_context *ctx, /* * RIPEMD-160 process buffer */ -int mbedtls_ripemd160_update( mbedtls_ripemd160_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_ripemd160_update(mbedtls_ripemd160_context *ctx, + const unsigned char *input, + size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t fill; uint32_t left; - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return 0; + } left = ctx->total[0] & 0x3F; fill = 64 - left; @@ -292,41 +293,41 @@ int mbedtls_ripemd160_update( mbedtls_ripemd160_context *ctx, ctx->total[0] += (uint32_t) ilen; ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (uint32_t) ilen ) + if (ctx->total[0] < (uint32_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *) (ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_ripemd160_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_ripemd160_process(ctx, ctx->buffer)) != 0) { + return ret; + } input += fill; ilen -= fill; left = 0; } - while( ilen >= 64 ) - { - if( ( ret = mbedtls_internal_ripemd160_process( ctx, input ) ) != 0 ) - return( ret ); + while (ilen >= 64) { + if ((ret = mbedtls_internal_ripemd160_process(ctx, input)) != 0) { + return ret; + } input += 64; ilen -= 64; } - if( ilen > 0 ) - { - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *) (ctx->buffer + left), input, ilen); } - return( 0 ); + return 0; } static const unsigned char ripemd160_padding[64] = { - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 @@ -335,39 +336,41 @@ static const unsigned char ripemd160_padding[64] = /* * RIPEMD-160 final digest */ -int mbedtls_ripemd160_finish( mbedtls_ripemd160_context *ctx, - unsigned char output[20] ) +int mbedtls_ripemd160_finish(mbedtls_ripemd160_context *ctx, + unsigned char output[20]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint32_t last, padn; uint32_t high, low; unsigned char msglen[8]; - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 29) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - MBEDTLS_PUT_UINT32_LE( low, msglen, 0 ); - MBEDTLS_PUT_UINT32_LE( high, msglen, 4 ); + MBEDTLS_PUT_UINT32_LE(low, msglen, 0); + MBEDTLS_PUT_UINT32_LE(high, msglen, 4); last = ctx->total[0] & 0x3F; - padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); + padn = (last < 56) ? (56 - last) : (120 - last); - ret = mbedtls_ripemd160_update( ctx, ripemd160_padding, padn ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ripemd160_update(ctx, ripemd160_padding, padn); + if (ret != 0) { + return ret; + } - ret = mbedtls_ripemd160_update( ctx, msglen, 8 ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ripemd160_update(ctx, msglen, 8); + if (ret != 0) { + return ret; + } - MBEDTLS_PUT_UINT32_LE( ctx->state[0], output, 0 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[1], output, 4 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[2], output, 8 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[3], output, 12 ); - MBEDTLS_PUT_UINT32_LE( ctx->state[4], output, 16 ); + MBEDTLS_PUT_UINT32_LE(ctx->state[0], output, 0); + MBEDTLS_PUT_UINT32_LE(ctx->state[1], output, 4); + MBEDTLS_PUT_UINT32_LE(ctx->state[2], output, 8); + MBEDTLS_PUT_UINT32_LE(ctx->state[3], output, 12); + MBEDTLS_PUT_UINT32_LE(ctx->state[4], output, 16); - return( 0 ); + return 0; } #endif /* ! MBEDTLS_RIPEMD160_ALT */ @@ -375,28 +378,31 @@ int mbedtls_ripemd160_finish( mbedtls_ripemd160_context *ctx, /* * output = RIPEMD-160( input buffer ) */ -int mbedtls_ripemd160( const unsigned char *input, - size_t ilen, - unsigned char output[20] ) +int mbedtls_ripemd160(const unsigned char *input, + size_t ilen, + unsigned char output[20]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ripemd160_context ctx; - mbedtls_ripemd160_init( &ctx ); + mbedtls_ripemd160_init(&ctx); - if( ( ret = mbedtls_ripemd160_starts( &ctx ) ) != 0 ) + if ((ret = mbedtls_ripemd160_starts(&ctx)) != 0) { goto exit; + } - if( ( ret = mbedtls_ripemd160_update( &ctx, input, ilen ) ) != 0 ) + if ((ret = mbedtls_ripemd160_update(&ctx, input, ilen)) != 0) { goto exit; + } - if( ( ret = mbedtls_ripemd160_finish( &ctx, output ) ) != 0 ) + if ((ret = mbedtls_ripemd160_finish(&ctx, output)) != 0) { goto exit; + } exit: - mbedtls_ripemd160_free( &ctx ); + mbedtls_ripemd160_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_SELF_TEST) @@ -445,43 +451,46 @@ static const unsigned char ripemd160_test_md[TESTS][20] = /* * Checkup routine */ -int mbedtls_ripemd160_self_test( int verbose ) +int mbedtls_ripemd160_self_test(int verbose) { int i, ret = 0; unsigned char output[20]; - memset( output, 0, sizeof output ); + memset(output, 0, sizeof output); - for( i = 0; i < TESTS; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " RIPEMD-160 test #%d: ", i + 1 ); + for (i = 0; i < TESTS; i++) { + if (verbose != 0) { + mbedtls_printf(" RIPEMD-160 test #%d: ", i + 1); + } - ret = mbedtls_ripemd160( ripemd160_test_str[i], - ripemd160_test_strlen[i], output ); - if( ret != 0 ) + ret = mbedtls_ripemd160(ripemd160_test_str[i], + ripemd160_test_strlen[i], output); + if (ret != 0) { goto fail; + } - if( memcmp( output, ripemd160_test_md[i], 20 ) != 0 ) - { + if (memcmp(output, ripemd160_test_md[i], 20) != 0) { ret = 1; goto fail; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } - return( 0 ); + return 0; fail: - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/rsa.c b/library/rsa.c index ae9e68b91..df7d7975c 100644 --- a/library/rsa.c +++ b/library/rsa.c @@ -67,61 +67,65 @@ #if !defined(MBEDTLS_RSA_ALT) -int mbedtls_rsa_import( mbedtls_rsa_context *ctx, - const mbedtls_mpi *N, - const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, const mbedtls_mpi *E ) +int mbedtls_rsa_import(mbedtls_rsa_context *ctx, + const mbedtls_mpi *N, + const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, const mbedtls_mpi *E) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( N != NULL && ( ret = mbedtls_mpi_copy( &ctx->N, N ) ) != 0 ) || - ( P != NULL && ( ret = mbedtls_mpi_copy( &ctx->P, P ) ) != 0 ) || - ( Q != NULL && ( ret = mbedtls_mpi_copy( &ctx->Q, Q ) ) != 0 ) || - ( D != NULL && ( ret = mbedtls_mpi_copy( &ctx->D, D ) ) != 0 ) || - ( E != NULL && ( ret = mbedtls_mpi_copy( &ctx->E, E ) ) != 0 ) ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if ((N != NULL && (ret = mbedtls_mpi_copy(&ctx->N, N)) != 0) || + (P != NULL && (ret = mbedtls_mpi_copy(&ctx->P, P)) != 0) || + (Q != NULL && (ret = mbedtls_mpi_copy(&ctx->Q, Q)) != 0) || + (D != NULL && (ret = mbedtls_mpi_copy(&ctx->D, D)) != 0) || + (E != NULL && (ret = mbedtls_mpi_copy(&ctx->E, E)) != 0)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); } - if( N != NULL ) - ctx->len = mbedtls_mpi_size( &ctx->N ); + if (N != NULL) { + ctx->len = mbedtls_mpi_size(&ctx->N); + } - return( 0 ); + return 0; } -int mbedtls_rsa_import_raw( mbedtls_rsa_context *ctx, - unsigned char const *N, size_t N_len, - unsigned char const *P, size_t P_len, - unsigned char const *Q, size_t Q_len, - unsigned char const *D, size_t D_len, - unsigned char const *E, size_t E_len ) +int mbedtls_rsa_import_raw(mbedtls_rsa_context *ctx, + unsigned char const *N, size_t N_len, + unsigned char const *P, size_t P_len, + unsigned char const *Q, size_t Q_len, + unsigned char const *D, size_t D_len, + unsigned char const *E, size_t E_len) { int ret = 0; - if( N != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->N, N, N_len ) ); - ctx->len = mbedtls_mpi_size( &ctx->N ); + if (N != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->N, N, N_len)); + ctx->len = mbedtls_mpi_size(&ctx->N); } - if( P != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->P, P, P_len ) ); + if (P != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->P, P, P_len)); + } - if( Q != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->Q, Q, Q_len ) ); + if (Q != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->Q, Q, Q_len)); + } - if( D != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->D, D, D_len ) ); + if (D != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->D, D, D_len)); + } - if( E != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->E, E, E_len ) ); + if (E != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->E, E, E_len)); + } cleanup: - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); + } - return( 0 ); + return 0; } /* @@ -129,8 +133,8 @@ cleanup: * that the RSA primitives will be able to execute without error. * It does *not* make guarantees for consistency of the parameters. */ -static int rsa_check_context( mbedtls_rsa_context const *ctx, int is_priv, - int blinding_needed ) +static int rsa_check_context(mbedtls_rsa_context const *ctx, int is_priv, + int blinding_needed) { #if !defined(MBEDTLS_RSA_NO_CRT) /* blinding_needed is only used for NO_CRT to decide whether @@ -138,10 +142,9 @@ static int rsa_check_context( mbedtls_rsa_context const *ctx, int is_priv, ((void) blinding_needed); #endif - if( ctx->len != mbedtls_mpi_size( &ctx->N ) || - ctx->len > MBEDTLS_MPI_MAX_SIZE ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ctx->len != mbedtls_mpi_size(&ctx->N) || + ctx->len > MBEDTLS_MPI_MAX_SIZE) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } /* @@ -150,23 +153,21 @@ static int rsa_check_context( mbedtls_rsa_context const *ctx, int is_priv, /* Modular exponentiation wrt. N is always used for * RSA public key operations. */ - if( mbedtls_mpi_cmp_int( &ctx->N, 0 ) <= 0 || - mbedtls_mpi_get_bit( &ctx->N, 0 ) == 0 ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(&ctx->N, 0) <= 0 || + mbedtls_mpi_get_bit(&ctx->N, 0) == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #if !defined(MBEDTLS_RSA_NO_CRT) /* Modular exponentiation for P and Q is only * used for private key operations and if CRT * is used. */ - if( is_priv && - ( mbedtls_mpi_cmp_int( &ctx->P, 0 ) <= 0 || - mbedtls_mpi_get_bit( &ctx->P, 0 ) == 0 || - mbedtls_mpi_cmp_int( &ctx->Q, 0 ) <= 0 || - mbedtls_mpi_get_bit( &ctx->Q, 0 ) == 0 ) ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (is_priv && + (mbedtls_mpi_cmp_int(&ctx->P, 0) <= 0 || + mbedtls_mpi_get_bit(&ctx->P, 0) == 0 || + mbedtls_mpi_cmp_int(&ctx->Q, 0) <= 0 || + mbedtls_mpi_get_bit(&ctx->Q, 0) == 0)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #endif /* !MBEDTLS_RSA_NO_CRT */ @@ -175,20 +176,21 @@ static int rsa_check_context( mbedtls_rsa_context const *ctx, int is_priv, */ /* Always need E for public key operations */ - if( mbedtls_mpi_cmp_int( &ctx->E, 0 ) <= 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(&ctx->E, 0) <= 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } #if defined(MBEDTLS_RSA_NO_CRT) /* For private key operations, use D or DP & DQ * as (unblinded) exponents. */ - if( is_priv && mbedtls_mpi_cmp_int( &ctx->D, 0 ) <= 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (is_priv && mbedtls_mpi_cmp_int(&ctx->D, 0) <= 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } #else - if( is_priv && - ( mbedtls_mpi_cmp_int( &ctx->DP, 0 ) <= 0 || - mbedtls_mpi_cmp_int( &ctx->DQ, 0 ) <= 0 ) ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (is_priv && + (mbedtls_mpi_cmp_int(&ctx->DP, 0) <= 0 || + mbedtls_mpi_cmp_int(&ctx->DQ, 0) <= 0)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #endif /* MBEDTLS_RSA_NO_CRT */ @@ -196,28 +198,26 @@ static int rsa_check_context( mbedtls_rsa_context const *ctx, int is_priv, * so check that P, Q >= 1 if that hasn't yet been * done as part of 1. */ #if defined(MBEDTLS_RSA_NO_CRT) - if( is_priv && blinding_needed && - ( mbedtls_mpi_cmp_int( &ctx->P, 0 ) <= 0 || - mbedtls_mpi_cmp_int( &ctx->Q, 0 ) <= 0 ) ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (is_priv && blinding_needed && + (mbedtls_mpi_cmp_int(&ctx->P, 0) <= 0 || + mbedtls_mpi_cmp_int(&ctx->Q, 0) <= 0)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #endif /* It wouldn't lead to an error if it wasn't satisfied, * but check for QP >= 1 nonetheless. */ #if !defined(MBEDTLS_RSA_NO_CRT) - if( is_priv && - mbedtls_mpi_cmp_int( &ctx->QP, 0 ) <= 0 ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (is_priv && + mbedtls_mpi_cmp_int(&ctx->QP, 0) <= 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #endif - return( 0 ); + return 0; } -int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) +int mbedtls_rsa_complete(mbedtls_rsa_context *ctx) { int ret = 0; int have_N, have_P, have_Q, have_D, have_E; @@ -226,16 +226,16 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) #endif int n_missing, pq_missing, d_missing, is_pub, is_priv; - have_N = ( mbedtls_mpi_cmp_int( &ctx->N, 0 ) != 0 ); - have_P = ( mbedtls_mpi_cmp_int( &ctx->P, 0 ) != 0 ); - have_Q = ( mbedtls_mpi_cmp_int( &ctx->Q, 0 ) != 0 ); - have_D = ( mbedtls_mpi_cmp_int( &ctx->D, 0 ) != 0 ); - have_E = ( mbedtls_mpi_cmp_int( &ctx->E, 0 ) != 0 ); + have_N = (mbedtls_mpi_cmp_int(&ctx->N, 0) != 0); + have_P = (mbedtls_mpi_cmp_int(&ctx->P, 0) != 0); + have_Q = (mbedtls_mpi_cmp_int(&ctx->Q, 0) != 0); + have_D = (mbedtls_mpi_cmp_int(&ctx->D, 0) != 0); + have_E = (mbedtls_mpi_cmp_int(&ctx->E, 0) != 0); #if !defined(MBEDTLS_RSA_NO_CRT) - have_DP = ( mbedtls_mpi_cmp_int( &ctx->DP, 0 ) != 0 ); - have_DQ = ( mbedtls_mpi_cmp_int( &ctx->DQ, 0 ) != 0 ); - have_QP = ( mbedtls_mpi_cmp_int( &ctx->QP, 0 ) != 0 ); + have_DP = (mbedtls_mpi_cmp_int(&ctx->DP, 0) != 0); + have_DQ = (mbedtls_mpi_cmp_int(&ctx->DQ, 0) != 0); + have_QP = (mbedtls_mpi_cmp_int(&ctx->QP, 0) != 0); #endif /* @@ -256,44 +256,40 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) /* These three alternatives are mutually exclusive */ is_priv = n_missing || pq_missing || d_missing; - if( !is_priv && !is_pub ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (!is_priv && !is_pub) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* * Step 1: Deduce N if P, Q are provided. */ - if( !have_N && have_P && have_Q ) - { - if( ( ret = mbedtls_mpi_mul_mpi( &ctx->N, &ctx->P, - &ctx->Q ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if (!have_N && have_P && have_Q) { + if ((ret = mbedtls_mpi_mul_mpi(&ctx->N, &ctx->P, + &ctx->Q)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); } - ctx->len = mbedtls_mpi_size( &ctx->N ); + ctx->len = mbedtls_mpi_size(&ctx->N); } /* * Step 2: Deduce and verify all remaining core parameters. */ - if( pq_missing ) - { - ret = mbedtls_rsa_deduce_primes( &ctx->N, &ctx->E, &ctx->D, - &ctx->P, &ctx->Q ); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if (pq_missing) { + ret = mbedtls_rsa_deduce_primes(&ctx->N, &ctx->E, &ctx->D, + &ctx->P, &ctx->Q); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); + } - } - else if( d_missing ) - { - if( ( ret = mbedtls_rsa_deduce_private_exponent( &ctx->P, - &ctx->Q, - &ctx->E, - &ctx->D ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + } else if (d_missing) { + if ((ret = mbedtls_rsa_deduce_private_exponent(&ctx->P, + &ctx->Q, + &ctx->E, + &ctx->D)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); } } @@ -303,12 +299,12 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) */ #if !defined(MBEDTLS_RSA_NO_CRT) - if( is_priv && ! ( have_DP && have_DQ && have_QP ) ) - { - ret = mbedtls_rsa_deduce_crt( &ctx->P, &ctx->Q, &ctx->D, - &ctx->DP, &ctx->DQ, &ctx->QP ); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if (is_priv && !(have_DP && have_DQ && have_QP)) { + ret = mbedtls_rsa_deduce_crt(&ctx->P, &ctx->Q, &ctx->D, + &ctx->DP, &ctx->DQ, &ctx->QP); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); + } } #endif /* MBEDTLS_RSA_NO_CRT */ @@ -316,92 +312,96 @@ int mbedtls_rsa_complete( mbedtls_rsa_context *ctx ) * Step 3: Basic sanity checks */ - return( rsa_check_context( ctx, is_priv, 1 ) ); + return rsa_check_context(ctx, is_priv, 1); } -int mbedtls_rsa_export_raw( const mbedtls_rsa_context *ctx, - unsigned char *N, size_t N_len, - unsigned char *P, size_t P_len, - unsigned char *Q, size_t Q_len, - unsigned char *D, size_t D_len, - unsigned char *E, size_t E_len ) +int mbedtls_rsa_export_raw(const mbedtls_rsa_context *ctx, + unsigned char *N, size_t N_len, + unsigned char *P, size_t P_len, + unsigned char *Q, size_t Q_len, + unsigned char *D, size_t D_len, + unsigned char *E, size_t E_len) { int ret = 0; int is_priv; /* Check if key is private or public */ is_priv = - mbedtls_mpi_cmp_int( &ctx->N, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->P, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->Q, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->D, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->E, 0 ) != 0; + mbedtls_mpi_cmp_int(&ctx->N, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->P, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->Q, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->D, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->E, 0) != 0; - if( !is_priv ) - { + if (!is_priv) { /* If we're trying to export private parameters for a public key, * something must be wrong. */ - if( P != NULL || Q != NULL || D != NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (P != NULL || Q != NULL || D != NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } } - if( N != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->N, N, N_len ) ); + if (N != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->N, N, N_len)); + } - if( P != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->P, P, P_len ) ); + if (P != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->P, P, P_len)); + } - if( Q != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->Q, Q, Q_len ) ); + if (Q != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->Q, Q, Q_len)); + } - if( D != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->D, D, D_len ) ); + if (D != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->D, D, D_len)); + } - if( E != NULL ) - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &ctx->E, E, E_len ) ); + if (E != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&ctx->E, E, E_len)); + } cleanup: - return( ret ); + return ret; } -int mbedtls_rsa_export( const mbedtls_rsa_context *ctx, - mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q, - mbedtls_mpi *D, mbedtls_mpi *E ) +int mbedtls_rsa_export(const mbedtls_rsa_context *ctx, + mbedtls_mpi *N, mbedtls_mpi *P, mbedtls_mpi *Q, + mbedtls_mpi *D, mbedtls_mpi *E) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int is_priv; /* Check if key is private or public */ is_priv = - mbedtls_mpi_cmp_int( &ctx->N, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->P, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->Q, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->D, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->E, 0 ) != 0; + mbedtls_mpi_cmp_int(&ctx->N, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->P, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->Q, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->D, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->E, 0) != 0; - if( !is_priv ) - { + if (!is_priv) { /* If we're trying to export private parameters for a public key, * something must be wrong. */ - if( P != NULL || Q != NULL || D != NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (P != NULL || Q != NULL || D != NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } } /* Export all requested core parameters. */ - if( ( N != NULL && ( ret = mbedtls_mpi_copy( N, &ctx->N ) ) != 0 ) || - ( P != NULL && ( ret = mbedtls_mpi_copy( P, &ctx->P ) ) != 0 ) || - ( Q != NULL && ( ret = mbedtls_mpi_copy( Q, &ctx->Q ) ) != 0 ) || - ( D != NULL && ( ret = mbedtls_mpi_copy( D, &ctx->D ) ) != 0 ) || - ( E != NULL && ( ret = mbedtls_mpi_copy( E, &ctx->E ) ) != 0 ) ) - { - return( ret ); + if ((N != NULL && (ret = mbedtls_mpi_copy(N, &ctx->N)) != 0) || + (P != NULL && (ret = mbedtls_mpi_copy(P, &ctx->P)) != 0) || + (Q != NULL && (ret = mbedtls_mpi_copy(Q, &ctx->Q)) != 0) || + (D != NULL && (ret = mbedtls_mpi_copy(D, &ctx->D)) != 0) || + (E != NULL && (ret = mbedtls_mpi_copy(E, &ctx->E)) != 0)) { + return ret; } - return( 0 ); + return 0; } /* @@ -410,48 +410,47 @@ int mbedtls_rsa_export( const mbedtls_rsa_context *ctx, * write DER encoded RSA keys. The helper function mbedtls_rsa_deduce_crt * can be used in this case. */ -int mbedtls_rsa_export_crt( const mbedtls_rsa_context *ctx, - mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP ) +int mbedtls_rsa_export_crt(const mbedtls_rsa_context *ctx, + mbedtls_mpi *DP, mbedtls_mpi *DQ, mbedtls_mpi *QP) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int is_priv; /* Check if key is private or public */ is_priv = - mbedtls_mpi_cmp_int( &ctx->N, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->P, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->Q, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->D, 0 ) != 0 && - mbedtls_mpi_cmp_int( &ctx->E, 0 ) != 0; + mbedtls_mpi_cmp_int(&ctx->N, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->P, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->Q, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->D, 0) != 0 && + mbedtls_mpi_cmp_int(&ctx->E, 0) != 0; - if( !is_priv ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (!is_priv) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } #if !defined(MBEDTLS_RSA_NO_CRT) /* Export all requested blinding parameters. */ - if( ( DP != NULL && ( ret = mbedtls_mpi_copy( DP, &ctx->DP ) ) != 0 ) || - ( DQ != NULL && ( ret = mbedtls_mpi_copy( DQ, &ctx->DQ ) ) != 0 ) || - ( QP != NULL && ( ret = mbedtls_mpi_copy( QP, &ctx->QP ) ) != 0 ) ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if ((DP != NULL && (ret = mbedtls_mpi_copy(DP, &ctx->DP)) != 0) || + (DQ != NULL && (ret = mbedtls_mpi_copy(DQ, &ctx->DQ)) != 0) || + (QP != NULL && (ret = mbedtls_mpi_copy(QP, &ctx->QP)) != 0)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); } #else - if( ( ret = mbedtls_rsa_deduce_crt( &ctx->P, &ctx->Q, &ctx->D, - DP, DQ, QP ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret ) ); + if ((ret = mbedtls_rsa_deduce_crt(&ctx->P, &ctx->Q, &ctx->D, + DP, DQ, QP)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_BAD_INPUT_DATA, ret); } #endif - return( 0 ); + return 0; } /* * Initialize an RSA context */ -void mbedtls_rsa_init( mbedtls_rsa_context *ctx ) +void mbedtls_rsa_init(mbedtls_rsa_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_rsa_context ) ); + memset(ctx, 0, sizeof(mbedtls_rsa_context)); ctx->padding = MBEDTLS_RSA_PKCS_V15; ctx->hash_id = MBEDTLS_MD_NONE; @@ -460,18 +459,17 @@ void mbedtls_rsa_init( mbedtls_rsa_context *ctx ) /* Set ctx->ver to nonzero to indicate that the mutex has been * initialized and will need to be freed. */ ctx->ver = 1; - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif } /* * Set padding for an existing RSA context */ -int mbedtls_rsa_set_padding( mbedtls_rsa_context *ctx, int padding, - mbedtls_md_type_t hash_id ) +int mbedtls_rsa_set_padding(mbedtls_rsa_context *ctx, int padding, + mbedtls_md_type_t hash_id) { - switch( padding ) - { + switch (padding) { #if defined(MBEDTLS_PKCS1_V15) case MBEDTLS_RSA_PKCS_V15: break; @@ -482,32 +480,32 @@ int mbedtls_rsa_set_padding( mbedtls_rsa_context *ctx, int padding, break; #endif default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; } #if defined(MBEDTLS_PKCS1_V21) - if( ( padding == MBEDTLS_RSA_PKCS_V21 ) && - ( hash_id != MBEDTLS_MD_NONE ) ) - { + if ((padding == MBEDTLS_RSA_PKCS_V21) && + (hash_id != MBEDTLS_MD_NONE)) { /* Just make sure this hash is supported in this build. */ - if( mbedtls_hash_info_psa_from_md( hash_id ) == PSA_ALG_NONE ) - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + if (mbedtls_hash_info_psa_from_md(hash_id) == PSA_ALG_NONE) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } } #endif /* MBEDTLS_PKCS1_V21 */ ctx->padding = padding; ctx->hash_id = hash_id; - return( 0 ); + return 0; } /* * Get length in bytes of RSA modulus */ -size_t mbedtls_rsa_get_len( const mbedtls_rsa_context *ctx ) +size_t mbedtls_rsa_get_len(const mbedtls_rsa_context *ctx) { - return( ctx->len ); + return ctx->len; } @@ -519,10 +517,10 @@ size_t mbedtls_rsa_get_len( const mbedtls_rsa_context *ctx ) * This generation method follows the RSA key pair generation procedure of * FIPS 186-4 if 2^16 < exponent < 2^256 and nbits = 2048 or nbits = 3072. */ -int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - unsigned int nbits, int exponent ) +int mbedtls_rsa_gen_key(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + unsigned int nbits, int exponent) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_mpi H, G, L; @@ -533,15 +531,15 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, * the RSA algorithm is less than or equal to 80 bits and therefore an error * rate of 2^-80 is sufficient. */ - if( nbits > 1024 ) + if (nbits > 1024) { prime_quality = MBEDTLS_MPI_GEN_PRIME_FLAG_LOW_ERR; + } - mbedtls_mpi_init( &H ); - mbedtls_mpi_init( &G ); - mbedtls_mpi_init( &L ); + mbedtls_mpi_init(&H); + mbedtls_mpi_init(&G); + mbedtls_mpi_init(&L); - if( nbits < 128 || exponent < 3 || nbits % 2 != 0 ) - { + if (nbits < 128 || exponent < 3 || nbits % 2 != 0) { ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; goto cleanup; } @@ -552,54 +550,56 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, * 2. GCD( E, (P-1)*(Q-1) ) == 1 * 3. E^-1 mod LCM(P-1, Q-1) > 2^( nbits / 2 ) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &ctx->E, exponent ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&ctx->E, exponent)); - do - { - MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->P, nbits >> 1, - prime_quality, f_rng, p_rng ) ); + do { + MBEDTLS_MPI_CHK(mbedtls_mpi_gen_prime(&ctx->P, nbits >> 1, + prime_quality, f_rng, p_rng)); - MBEDTLS_MPI_CHK( mbedtls_mpi_gen_prime( &ctx->Q, nbits >> 1, - prime_quality, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_gen_prime(&ctx->Q, nbits >> 1, + prime_quality, f_rng, p_rng)); /* make sure the difference between p and q is not too small (FIPS 186-4 §B.3.3 step 5.4) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &H, &ctx->P, &ctx->Q ) ); - if( mbedtls_mpi_bitlen( &H ) <= ( ( nbits >= 200 ) ? ( ( nbits >> 1 ) - 99 ) : 0 ) ) + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&H, &ctx->P, &ctx->Q)); + if (mbedtls_mpi_bitlen(&H) <= ((nbits >= 200) ? ((nbits >> 1) - 99) : 0)) { continue; + } /* not required by any standards, but some users rely on the fact that P > Q */ - if( H.s < 0 ) - mbedtls_mpi_swap( &ctx->P, &ctx->Q ); + if (H.s < 0) { + mbedtls_mpi_swap(&ctx->P, &ctx->Q); + } /* Temporarily replace P,Q by P-1, Q-1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &ctx->P, &ctx->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &ctx->Q, &ctx->Q, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &H, &ctx->P, &ctx->Q ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&ctx->P, &ctx->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&ctx->Q, &ctx->Q, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&H, &ctx->P, &ctx->Q)); /* check GCD( E, (P-1)*(Q-1) ) == 1 (FIPS 186-4 §B.3.1 criterion 2(a)) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &G, &ctx->E, &H ) ); - if( mbedtls_mpi_cmp_int( &G, 1 ) != 0 ) + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, &ctx->E, &H)); + if (mbedtls_mpi_cmp_int(&G, 1) != 0) { continue; + } /* compute smallest possible D = E^-1 mod LCM(P-1, Q-1) (FIPS 186-4 §B.3.1 criterion 3(b)) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &G, &ctx->P, &ctx->Q ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_div_mpi( &L, NULL, &H, &G ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->D, &ctx->E, &L ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, &ctx->P, &ctx->Q)); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&L, NULL, &H, &G)); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&ctx->D, &ctx->E, &L)); - if( mbedtls_mpi_bitlen( &ctx->D ) <= ( ( nbits + 1 ) / 2 ) ) // (FIPS 186-4 §B.3.1 criterion 3(a)) + if (mbedtls_mpi_bitlen(&ctx->D) <= ((nbits + 1) / 2)) { // (FIPS 186-4 §B.3.1 criterion 3(a)) continue; + } break; - } - while( 1 ); + } while (1); /* Restore P,Q */ - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &ctx->P, &ctx->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &ctx->Q, &ctx->Q, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&ctx->P, &ctx->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&ctx->Q, &ctx->Q, 1)); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->N, &ctx->P, &ctx->Q ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->N, &ctx->P, &ctx->Q)); - ctx->len = mbedtls_mpi_size( &ctx->N ); + ctx->len = mbedtls_mpi_size(&ctx->N); #if !defined(MBEDTLS_RSA_NO_CRT) /* @@ -607,29 +607,29 @@ int mbedtls_rsa_gen_key( mbedtls_rsa_context *ctx, * DQ = D mod (Q - 1) * QP = Q^-1 mod P */ - MBEDTLS_MPI_CHK( mbedtls_rsa_deduce_crt( &ctx->P, &ctx->Q, &ctx->D, - &ctx->DP, &ctx->DQ, &ctx->QP ) ); + MBEDTLS_MPI_CHK(mbedtls_rsa_deduce_crt(&ctx->P, &ctx->Q, &ctx->D, + &ctx->DP, &ctx->DQ, &ctx->QP)); #endif /* MBEDTLS_RSA_NO_CRT */ /* Double-check */ - MBEDTLS_MPI_CHK( mbedtls_rsa_check_privkey( ctx ) ); + MBEDTLS_MPI_CHK(mbedtls_rsa_check_privkey(ctx)); cleanup: - mbedtls_mpi_free( &H ); - mbedtls_mpi_free( &G ); - mbedtls_mpi_free( &L ); + mbedtls_mpi_free(&H); + mbedtls_mpi_free(&G); + mbedtls_mpi_free(&L); - if( ret != 0 ) - { - mbedtls_rsa_free( ctx ); + if (ret != 0) { + mbedtls_rsa_free(ctx); - if( ( -ret & ~0x7f ) == 0 ) - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_KEY_GEN_FAILED, ret ); - return( ret ); + if ((-ret & ~0x7f) == 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_KEY_GEN_FAILED, ret); + } + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_GENPRIME */ @@ -637,120 +637,117 @@ cleanup: /* * Check a public RSA key */ -int mbedtls_rsa_check_pubkey( const mbedtls_rsa_context *ctx ) +int mbedtls_rsa_check_pubkey(const mbedtls_rsa_context *ctx) { - if( rsa_check_context( ctx, 0 /* public */, 0 /* no blinding */ ) != 0 ) - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); - - if( mbedtls_mpi_bitlen( &ctx->N ) < 128 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (rsa_check_context(ctx, 0 /* public */, 0 /* no blinding */) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - if( mbedtls_mpi_get_bit( &ctx->E, 0 ) == 0 || - mbedtls_mpi_bitlen( &ctx->E ) < 2 || - mbedtls_mpi_cmp_mpi( &ctx->E, &ctx->N ) >= 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (mbedtls_mpi_bitlen(&ctx->N) < 128) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - return( 0 ); + if (mbedtls_mpi_get_bit(&ctx->E, 0) == 0 || + mbedtls_mpi_bitlen(&ctx->E) < 2 || + mbedtls_mpi_cmp_mpi(&ctx->E, &ctx->N) >= 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; + } + + return 0; } /* * Check for the consistency of all fields in an RSA private key context */ -int mbedtls_rsa_check_privkey( const mbedtls_rsa_context *ctx ) +int mbedtls_rsa_check_privkey(const mbedtls_rsa_context *ctx) { - if( mbedtls_rsa_check_pubkey( ctx ) != 0 || - rsa_check_context( ctx, 1 /* private */, 1 /* blinding */ ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (mbedtls_rsa_check_pubkey(ctx) != 0 || + rsa_check_context(ctx, 1 /* private */, 1 /* blinding */) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - if( mbedtls_rsa_validate_params( &ctx->N, &ctx->P, &ctx->Q, - &ctx->D, &ctx->E, NULL, NULL ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (mbedtls_rsa_validate_params(&ctx->N, &ctx->P, &ctx->Q, + &ctx->D, &ctx->E, NULL, NULL) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } #if !defined(MBEDTLS_RSA_NO_CRT) - else if( mbedtls_rsa_validate_crt( &ctx->P, &ctx->Q, &ctx->D, - &ctx->DP, &ctx->DQ, &ctx->QP ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + else if (mbedtls_rsa_validate_crt(&ctx->P, &ctx->Q, &ctx->D, + &ctx->DP, &ctx->DQ, &ctx->QP) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } #endif - return( 0 ); + return 0; } /* * Check if contexts holding a public and private key match */ -int mbedtls_rsa_check_pub_priv( const mbedtls_rsa_context *pub, - const mbedtls_rsa_context *prv ) +int mbedtls_rsa_check_pub_priv(const mbedtls_rsa_context *pub, + const mbedtls_rsa_context *prv) { - if( mbedtls_rsa_check_pubkey( pub ) != 0 || - mbedtls_rsa_check_privkey( prv ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (mbedtls_rsa_check_pubkey(pub) != 0 || + mbedtls_rsa_check_privkey(prv) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - if( mbedtls_mpi_cmp_mpi( &pub->N, &prv->N ) != 0 || - mbedtls_mpi_cmp_mpi( &pub->E, &prv->E ) != 0 ) - { - return( MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + if (mbedtls_mpi_cmp_mpi(&pub->N, &prv->N) != 0 || + mbedtls_mpi_cmp_mpi(&pub->E, &prv->E) != 0) { + return MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - return( 0 ); + return 0; } /* * Do an RSA public key operation */ -int mbedtls_rsa_public( mbedtls_rsa_context *ctx, - const unsigned char *input, - unsigned char *output ) +int mbedtls_rsa_public(mbedtls_rsa_context *ctx, + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; mbedtls_mpi T; - if( rsa_check_context( ctx, 0 /* public */, 0 /* no blinding */ ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (rsa_check_context(ctx, 0 /* public */, 0 /* no blinding */)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &T, input, ctx->len ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&T, input, ctx->len)); - if( mbedtls_mpi_cmp_mpi( &T, &ctx->N ) >= 0 ) - { + if (mbedtls_mpi_cmp_mpi(&T, &ctx->N) >= 0) { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } olen = ctx->len; - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &T, &T, &ctx->E, &ctx->N, &ctx->RN ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &T, output, olen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&T, &T, &ctx->E, &ctx->N, &ctx->RN)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&T, output, olen)); cleanup: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_PUBLIC_FAILED, ret ) ); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_PUBLIC_FAILED, ret); + } - return( 0 ); + return 0; } /* @@ -759,63 +756,62 @@ cleanup: * DSS, and other systems. In : Advances in Cryptology-CRYPTO'96. Springer * Berlin Heidelberg, 1996. p. 104-113. */ -static int rsa_prepare_blinding( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +static int rsa_prepare_blinding(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng) { int ret, count = 0; mbedtls_mpi R; - mbedtls_mpi_init( &R ); + mbedtls_mpi_init(&R); - if( ctx->Vf.p != NULL ) - { + if (ctx->Vf.p != NULL) { /* We already have blinding values, just update them by squaring */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vi, &ctx->Vi ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vf, &ctx->Vf ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vi, &ctx->Vi)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vf, &ctx->Vf, &ctx->Vf)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vf, &ctx->Vf, &ctx->N)); goto cleanup; } /* Unblinding value: Vf = random number, invertible mod N */ do { - if( count++ > 10 ) - { + if (count++ > 10) { ret = MBEDTLS_ERR_RSA_RNG_FAILED; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vf, ctx->len - 1, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&ctx->Vf, ctx->len - 1, f_rng, p_rng)); /* Compute Vf^-1 as R * (R Vf)^-1 to avoid leaks from inv_mod. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &R, ctx->len - 1, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vf, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&R, ctx->len - 1, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vf, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->N)); /* At this point, Vi is invertible mod N if and only if both Vf and R * are invertible mod N. If one of them isn't, we don't need to know * which one, we just loop and choose new values for both of them. * (Each iteration succeeds with overwhelming probability.) */ - ret = mbedtls_mpi_inv_mod( &ctx->Vi, &ctx->Vi, &ctx->N ); - if( ret != 0 && ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + ret = mbedtls_mpi_inv_mod(&ctx->Vi, &ctx->Vi, &ctx->N); + if (ret != 0 && ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) { goto cleanup; + } - } while( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); + } while (ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE); /* Finish the computation of Vf^-1 = R * (R Vf)^-1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vi, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&ctx->Vi, &ctx->Vi, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&ctx->Vi, &ctx->Vi, &ctx->N)); /* Blinding value: Vi = Vf^(-e) mod N * (Vi already contains Vf^-1 at this point) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vi, &ctx->Vi, &ctx->E, &ctx->N, &ctx->RN ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&ctx->Vi, &ctx->Vi, &ctx->E, &ctx->N, &ctx->RN)); cleanup: - mbedtls_mpi_free( &R ); + mbedtls_mpi_free(&R); - return( ret ); + return ret; } /* @@ -842,11 +838,11 @@ cleanup: /* * Do an RSA private key operation */ -int mbedtls_rsa_private( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *input, - unsigned char *output ) +int mbedtls_rsa_private(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *input, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; @@ -883,103 +879,103 @@ int mbedtls_rsa_private( mbedtls_rsa_context *ctx, * checked result; should be the same in the end. */ mbedtls_mpi I, C; - if( f_rng == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( rsa_check_context( ctx, 1 /* private key checks */, - 1 /* blinding on */ ) != 0 ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (rsa_check_context(ctx, 1 /* private key checks */, + 1 /* blinding on */) != 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif /* MPI Initialization */ - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&T); - mbedtls_mpi_init( &P1 ); - mbedtls_mpi_init( &Q1 ); - mbedtls_mpi_init( &R ); + mbedtls_mpi_init(&P1); + mbedtls_mpi_init(&Q1); + mbedtls_mpi_init(&R); #if defined(MBEDTLS_RSA_NO_CRT) - mbedtls_mpi_init( &D_blind ); + mbedtls_mpi_init(&D_blind); #else - mbedtls_mpi_init( &DP_blind ); - mbedtls_mpi_init( &DQ_blind ); + mbedtls_mpi_init(&DP_blind); + mbedtls_mpi_init(&DQ_blind); #endif #if !defined(MBEDTLS_RSA_NO_CRT) - mbedtls_mpi_init( &TP ); mbedtls_mpi_init( &TQ ); + mbedtls_mpi_init(&TP); mbedtls_mpi_init(&TQ); #endif - mbedtls_mpi_init( &I ); - mbedtls_mpi_init( &C ); + mbedtls_mpi_init(&I); + mbedtls_mpi_init(&C); /* End of MPI initialization */ - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &T, input, ctx->len ) ); - if( mbedtls_mpi_cmp_mpi( &T, &ctx->N ) >= 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&T, input, ctx->len)); + if (mbedtls_mpi_cmp_mpi(&T, &ctx->N) >= 0) { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &I, &T ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&I, &T)); /* * Blinding * T = T * Vi mod N */ - MBEDTLS_MPI_CHK( rsa_prepare_blinding( ctx, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &T, &T, &ctx->Vi ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &T, &T, &ctx->N ) ); + MBEDTLS_MPI_CHK(rsa_prepare_blinding(ctx, f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&T, &T, &ctx->Vi)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&T, &T, &ctx->N)); /* * Exponent blinding */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &P1, &ctx->P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &Q1, &ctx->Q, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&P1, &ctx->P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&Q1, &ctx->Q, 1)); #if defined(MBEDTLS_RSA_NO_CRT) /* * D_blind = ( P - 1 ) * ( Q - 1 ) * R + D */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &R, RSA_EXPONENT_BLINDING, - f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &D_blind, &P1, &Q1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &D_blind, &D_blind, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &D_blind, &D_blind, &ctx->D ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&R, RSA_EXPONENT_BLINDING, + f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&D_blind, &P1, &Q1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&D_blind, &D_blind, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&D_blind, &D_blind, &ctx->D)); D = &D_blind; #else /* * DP_blind = ( P - 1 ) * R + DP */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &R, RSA_EXPONENT_BLINDING, - f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &DP_blind, &P1, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &DP_blind, &DP_blind, - &ctx->DP ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&R, RSA_EXPONENT_BLINDING, + f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&DP_blind, &P1, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&DP_blind, &DP_blind, + &ctx->DP)); DP = &DP_blind; /* * DQ_blind = ( Q - 1 ) * R + DQ */ - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &R, RSA_EXPONENT_BLINDING, - f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &DQ_blind, &Q1, &R ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &DQ_blind, &DQ_blind, - &ctx->DQ ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&R, RSA_EXPONENT_BLINDING, + f_rng, p_rng)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&DQ_blind, &Q1, &R)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&DQ_blind, &DQ_blind, + &ctx->DQ)); DQ = &DQ_blind; #endif /* MBEDTLS_RSA_NO_CRT */ #if defined(MBEDTLS_RSA_NO_CRT) - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &T, &T, D, &ctx->N, &ctx->RN ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&T, &T, D, &ctx->N, &ctx->RN)); #else /* * Faster decryption using the CRT @@ -988,72 +984,73 @@ int mbedtls_rsa_private( mbedtls_rsa_context *ctx, * TQ = input ^ dQ mod Q */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &TP, &T, DP, &ctx->P, &ctx->RP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &TQ, &T, DQ, &ctx->Q, &ctx->RQ ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&TP, &T, DP, &ctx->P, &ctx->RP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&TQ, &T, DQ, &ctx->Q, &ctx->RQ)); /* * T = (TP - TQ) * (Q^-1 mod P) mod P */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &T, &TP, &TQ ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &TP, &T, &ctx->QP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &T, &TP, &ctx->P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&T, &TP, &TQ)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&TP, &T, &ctx->QP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&T, &TP, &ctx->P)); /* * T = TQ + T * Q */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &TP, &T, &ctx->Q ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &T, &TQ, &TP ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&TP, &T, &ctx->Q)); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_mpi(&T, &TQ, &TP)); #endif /* MBEDTLS_RSA_NO_CRT */ /* * Unblind * T = T * Vf mod N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &T, &T, &ctx->Vf ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &T, &T, &ctx->N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&T, &T, &ctx->Vf)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&T, &T, &ctx->N)); /* Verify the result to prevent glitching attacks. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &C, &T, &ctx->E, - &ctx->N, &ctx->RN ) ); - if( mbedtls_mpi_cmp_mpi( &C, &I ) != 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&C, &T, &ctx->E, + &ctx->N, &ctx->RN)); + if (mbedtls_mpi_cmp_mpi(&C, &I) != 0) { ret = MBEDTLS_ERR_RSA_VERIFY_FAILED; goto cleanup; } olen = ctx->len; - MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &T, output, olen ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&T, output, olen)); cleanup: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - mbedtls_mpi_free( &P1 ); - mbedtls_mpi_free( &Q1 ); - mbedtls_mpi_free( &R ); + mbedtls_mpi_free(&P1); + mbedtls_mpi_free(&Q1); + mbedtls_mpi_free(&R); #if defined(MBEDTLS_RSA_NO_CRT) - mbedtls_mpi_free( &D_blind ); + mbedtls_mpi_free(&D_blind); #else - mbedtls_mpi_free( &DP_blind ); - mbedtls_mpi_free( &DQ_blind ); + mbedtls_mpi_free(&DP_blind); + mbedtls_mpi_free(&DQ_blind); #endif - mbedtls_mpi_free( &T ); + mbedtls_mpi_free(&T); #if !defined(MBEDTLS_RSA_NO_CRT) - mbedtls_mpi_free( &TP ); mbedtls_mpi_free( &TQ ); + mbedtls_mpi_free(&TP); mbedtls_mpi_free(&TQ); #endif - mbedtls_mpi_free( &C ); - mbedtls_mpi_free( &I ); + mbedtls_mpi_free(&C); + mbedtls_mpi_free(&I); - if( ret != 0 && ret >= -0x007f ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_PRIVATE_FAILED, ret ) ); + if (ret != 0 && ret >= -0x007f) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_PRIVATE_FAILED, ret); + } - return( ret ); + return ret; } #if defined(MBEDTLS_PKCS1_V21) @@ -1066,8 +1063,8 @@ cleanup: * \param slen length of the source buffer * \param md_alg message digest to use */ -static int mgf_mask( unsigned char *dst, size_t dlen, unsigned char *src, - size_t slen, mbedtls_md_type_t md_alg ) +static int mgf_mask(unsigned char *dst, size_t dlen, unsigned char *src, + size_t slen, mbedtls_md_type_t md_alg) { unsigned char counter[4]; unsigned char *p; @@ -1079,60 +1076,71 @@ static int mgf_mask( unsigned char *dst, size_t dlen, unsigned char *src, const mbedtls_md_info_t *md_info; mbedtls_md_context_t md_ctx; - mbedtls_md_init( &md_ctx ); - md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + mbedtls_md_init(&md_ctx); + md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - mbedtls_md_init( &md_ctx ); - if( ( ret = mbedtls_md_setup( &md_ctx, md_info, 0 ) ) != 0 ) + mbedtls_md_init(&md_ctx); + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) { goto exit; + } - hlen = mbedtls_md_get_size( md_info ); + hlen = mbedtls_md_get_size(md_info); #else psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; - psa_algorithm_t alg = mbedtls_psa_translate_md( md_alg ); + psa_algorithm_t alg = mbedtls_psa_translate_md(md_alg); psa_status_t status = PSA_SUCCESS; size_t out_len; - hlen = PSA_HASH_LENGTH( alg ); + hlen = PSA_HASH_LENGTH(alg); #endif - memset( mask, 0, sizeof( mask ) ); - memset( counter, 0, 4 ); + memset(mask, 0, sizeof(mask)); + memset(counter, 0, 4); /* Generate and apply dbMask */ p = dst; - while( dlen > 0 ) - { + while (dlen > 0) { use_len = hlen; - if( dlen < hlen ) + if (dlen < hlen) { use_len = dlen; + } #if defined(MBEDTLS_MD_C) - if( ( ret = mbedtls_md_starts( &md_ctx ) ) != 0 ) + if ((ret = mbedtls_md_starts(&md_ctx)) != 0) { goto exit; - if( ( ret = mbedtls_md_update( &md_ctx, src, slen ) ) != 0 ) + } + if ((ret = mbedtls_md_update(&md_ctx, src, slen)) != 0) { goto exit; - if( ( ret = mbedtls_md_update( &md_ctx, counter, 4 ) ) != 0 ) + } + if ((ret = mbedtls_md_update(&md_ctx, counter, 4)) != 0) { goto exit; - if( ( ret = mbedtls_md_finish( &md_ctx, mask ) ) != 0 ) + } + if ((ret = mbedtls_md_finish(&md_ctx, mask)) != 0) { goto exit; + } #else - if( ( status = psa_hash_setup( &op, alg ) ) != PSA_SUCCESS ) + if ((status = psa_hash_setup(&op, alg)) != PSA_SUCCESS) { goto exit; - if( ( status = psa_hash_update( &op, src, slen ) ) != PSA_SUCCESS ) + } + if ((status = psa_hash_update(&op, src, slen)) != PSA_SUCCESS) { goto exit; - if( ( status = psa_hash_update( &op, counter, 4 ) ) != PSA_SUCCESS ) + } + if ((status = psa_hash_update(&op, counter, 4)) != PSA_SUCCESS) { goto exit; - status = psa_hash_finish( &op, mask, sizeof( mask ), &out_len ); - if( status != PSA_SUCCESS ) + } + status = psa_hash_finish(&op, mask, sizeof(mask), &out_len); + if (status != PSA_SUCCESS) { goto exit; + } #endif - for( i = 0; i < use_len; ++i ) + for (i = 0; i < use_len; ++i) { *p++ ^= mask[i]; + } counter[3]++; @@ -1140,15 +1148,15 @@ static int mgf_mask( unsigned char *dst, size_t dlen, unsigned char *src, } exit: - mbedtls_platform_zeroize( mask, sizeof( mask ) ); + mbedtls_platform_zeroize(mask, sizeof(mask)); #if defined(MBEDTLS_MD_C) - mbedtls_md_free( &md_ctx ); + mbedtls_md_free(&md_ctx); - return( ret ); + return ret; #else - psa_hash_abort( &op ); + psa_hash_abort(&op); - return( mbedtls_md_error_from_psa( status ) ); + return mbedtls_md_error_from_psa(status); #endif } @@ -1162,9 +1170,9 @@ exit: * \param out the output buffer - must be large enough for \p md_alg * \param md_alg message digest to use */ -static int hash_mprime( const unsigned char *hash, size_t hlen, - const unsigned char *salt, size_t slen, - unsigned char *out, mbedtls_md_type_t md_alg ) +static int hash_mprime(const unsigned char *hash, size_t hlen, + const unsigned char *salt, size_t slen, + unsigned char *out, mbedtls_md_type_t md_alg) { const unsigned char zeros[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; @@ -1172,51 +1180,63 @@ static int hash_mprime( const unsigned char *hash, size_t hlen, mbedtls_md_context_t md_ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - mbedtls_md_init( &md_ctx ); - if( ( ret = mbedtls_md_setup( &md_ctx, md_info, 0 ) ) != 0 ) + mbedtls_md_init(&md_ctx); + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 0)) != 0) { goto exit; - if( ( ret = mbedtls_md_starts( &md_ctx ) ) != 0 ) + } + if ((ret = mbedtls_md_starts(&md_ctx)) != 0) { goto exit; - if( ( ret = mbedtls_md_update( &md_ctx, zeros, sizeof( zeros ) ) ) != 0 ) + } + if ((ret = mbedtls_md_update(&md_ctx, zeros, sizeof(zeros))) != 0) { goto exit; - if( ( ret = mbedtls_md_update( &md_ctx, hash, hlen ) ) != 0 ) + } + if ((ret = mbedtls_md_update(&md_ctx, hash, hlen)) != 0) { goto exit; - if( ( ret = mbedtls_md_update( &md_ctx, salt, slen ) ) != 0 ) + } + if ((ret = mbedtls_md_update(&md_ctx, salt, slen)) != 0) { goto exit; - if( ( ret = mbedtls_md_finish( &md_ctx, out ) ) != 0 ) + } + if ((ret = mbedtls_md_finish(&md_ctx, out)) != 0) { goto exit; + } exit: - mbedtls_md_free( &md_ctx ); + mbedtls_md_free(&md_ctx); - return( ret ); + return ret; #else psa_hash_operation_t op = PSA_HASH_OPERATION_INIT; - psa_algorithm_t alg = mbedtls_psa_translate_md( md_alg ); - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED ; - size_t out_size = PSA_HASH_LENGTH( alg ); + psa_algorithm_t alg = mbedtls_psa_translate_md(md_alg); + psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + size_t out_size = PSA_HASH_LENGTH(alg); size_t out_len; - if( ( status = psa_hash_setup( &op, alg ) ) != PSA_SUCCESS ) + if ((status = psa_hash_setup(&op, alg)) != PSA_SUCCESS) { goto exit; - if( ( status = psa_hash_update( &op, zeros, sizeof( zeros ) ) ) != PSA_SUCCESS ) + } + if ((status = psa_hash_update(&op, zeros, sizeof(zeros))) != PSA_SUCCESS) { goto exit; - if( ( status = psa_hash_update( &op, hash, hlen ) ) != PSA_SUCCESS ) + } + if ((status = psa_hash_update(&op, hash, hlen)) != PSA_SUCCESS) { goto exit; - if( ( status = psa_hash_update( &op, salt, slen ) ) != PSA_SUCCESS ) + } + if ((status = psa_hash_update(&op, salt, slen)) != PSA_SUCCESS) { goto exit; - status = psa_hash_finish( &op, out, out_size, &out_len ); - if( status != PSA_SUCCESS ) + } + status = psa_hash_finish(&op, out, out_size, &out_len); + if (status != PSA_SUCCESS) { goto exit; + } exit: - psa_hash_abort( &op ); + psa_hash_abort(&op); - return( mbedtls_md_error_from_psa( status ) ); + return mbedtls_md_error_from_psa(status); #endif /* !MBEDTLS_MD_C */ } @@ -1228,27 +1248,28 @@ exit: * \param ilen input length * \param output the output buffer - must be large enough for \p md_alg */ -static int compute_hash( mbedtls_md_type_t md_alg, - const unsigned char *input, size_t ilen, - unsigned char *output ) +static int compute_hash(mbedtls_md_type_t md_alg, + const unsigned char *input, size_t ilen, + unsigned char *output) { #if defined(MBEDTLS_MD_C) const mbedtls_md_info_t *md_info; - md_info = mbedtls_md_info_from_type( md_alg ); - if( md_info == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + md_info = mbedtls_md_info_from_type(md_alg); + if (md_info == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - return( mbedtls_md( md_info, input, ilen, output ) ); + return mbedtls_md(md_info, input, ilen, output); #else - psa_algorithm_t alg = mbedtls_psa_translate_md( md_alg ); + psa_algorithm_t alg = mbedtls_psa_translate_md(md_alg); psa_status_t status; - size_t out_size = PSA_HASH_LENGTH( alg ); + size_t out_size = PSA_HASH_LENGTH(alg); size_t out_len; - status = psa_hash_compute( alg, input, ilen, output, out_size, &out_len ); + status = psa_hash_compute(alg, input, ilen, output, out_size, &out_len); - return( mbedtls_md_error_from_psa( status ) ); + return mbedtls_md_error_from_psa(status); #endif /* !MBEDTLS_MD_C */ } #endif /* MBEDTLS_PKCS1_V21 */ @@ -1257,63 +1278,71 @@ static int compute_hash( mbedtls_md_type_t md_alg, /* * Implementation of the PKCS#1 v2.1 RSAES-OAEP-ENCRYPT function */ -int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *label, size_t label_len, - size_t ilen, - const unsigned char *input, - unsigned char *output ) +int mbedtls_rsa_rsaes_oaep_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *label, size_t label_len, + size_t ilen, + const unsigned char *input, + unsigned char *output) { size_t olen; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = output; unsigned int hlen; - if( f_rng == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id ); - if( hlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + hlen = mbedtls_hash_info_get_size((mbedtls_md_type_t) ctx->hash_id); + if (hlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } olen = ctx->len; /* first comparison checks for overflow */ - if( ilen + 2 * hlen + 2 < ilen || olen < ilen + 2 * hlen + 2 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen + 2 * hlen + 2 < ilen || olen < ilen + 2 * hlen + 2) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - memset( output, 0, olen ); + memset(output, 0, olen); *p++ = 0; /* Generate a random octet string seed */ - if( ( ret = f_rng( p_rng, p, hlen ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_RNG_FAILED, ret ) ); + if ((ret = f_rng(p_rng, p, hlen)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_RNG_FAILED, ret); + } p += hlen; /* Construct DB */ - ret = compute_hash( (mbedtls_md_type_t) ctx->hash_id, label, label_len, p ); - if( ret != 0 ) - return( ret ); + ret = compute_hash((mbedtls_md_type_t) ctx->hash_id, label, label_len, p); + if (ret != 0) { + return ret; + } p += hlen; p += olen - 2 * hlen - 2 - ilen; *p++ = 1; - if( ilen != 0 ) - memcpy( p, input, ilen ); + if (ilen != 0) { + memcpy(p, input, ilen); + } /* maskedDB: Apply dbMask to DB */ - if( ( ret = mgf_mask( output + hlen + 1, olen - hlen - 1, output + 1, hlen, - ctx->hash_id ) ) != 0 ) - return( ret ); + if ((ret = mgf_mask(output + hlen + 1, olen - hlen - 1, output + 1, hlen, + ctx->hash_id)) != 0) { + return ret; + } /* maskedSeed: Apply seedMask to seed */ - if( ( ret = mgf_mask( output + 1, hlen, output + hlen + 1, olen - hlen - 1, - ctx->hash_id ) ) != 0 ) - return( ret ); + if ((ret = mgf_mask(output + 1, hlen, output + hlen + 1, olen - hlen - 1, + ctx->hash_id)) != 0) { + return ret; + } - return( mbedtls_rsa_public( ctx, output, output ) ); + return mbedtls_rsa_public(ctx, output, output); } #endif /* MBEDTLS_PKCS1_V21 */ @@ -1321,11 +1350,11 @@ int mbedtls_rsa_rsaes_oaep_encrypt( mbedtls_rsa_context *ctx, /* * Implementation of the PKCS#1 v2.1 RSAES-PKCS1-V1_5-ENCRYPT function */ -int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, size_t ilen, - const unsigned char *input, - unsigned char *output ) +int mbedtls_rsa_rsaes_pkcs1_v15_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, size_t ilen, + const unsigned char *input, + unsigned char *output) { size_t nb_pad, olen; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -1334,67 +1363,69 @@ int mbedtls_rsa_rsaes_pkcs1_v15_encrypt( mbedtls_rsa_context *ctx, olen = ctx->len; /* first comparison checks for overflow */ - if( ilen + 11 < ilen || olen < ilen + 11 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen + 11 < ilen || olen < ilen + 11) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } nb_pad = olen - 3 - ilen; *p++ = 0; - if( f_rng == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } *p++ = MBEDTLS_RSA_CRYPT; - while( nb_pad-- > 0 ) - { + while (nb_pad-- > 0) { int rng_dl = 100; do { - ret = f_rng( p_rng, p, 1 ); - } while( *p == 0 && --rng_dl && ret == 0 ); + ret = f_rng(p_rng, p, 1); + } while (*p == 0 && --rng_dl && ret == 0); /* Check if RNG failed to generate data */ - if( rng_dl == 0 || ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_RNG_FAILED, ret ) ); + if (rng_dl == 0 || ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_RNG_FAILED, ret); + } p++; } *p++ = 0; - if( ilen != 0 ) - memcpy( p, input, ilen ); + if (ilen != 0) { + memcpy(p, input, ilen); + } - return( mbedtls_rsa_public( ctx, output, output ) ); + return mbedtls_rsa_public(ctx, output, output); } #endif /* MBEDTLS_PKCS1_V15 */ /* * Add the message padding, then do an RSA operation */ -int mbedtls_rsa_pkcs1_encrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t ilen, - const unsigned char *input, - unsigned char *output ) +int mbedtls_rsa_pkcs1_encrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t ilen, + const unsigned char *input, + unsigned char *output) { - switch( ctx->padding ) - { + switch (ctx->padding) { #if defined(MBEDTLS_PKCS1_V15) case MBEDTLS_RSA_PKCS_V15: - return mbedtls_rsa_rsaes_pkcs1_v15_encrypt( ctx, f_rng, p_rng, - ilen, input, output ); + return mbedtls_rsa_rsaes_pkcs1_v15_encrypt(ctx, f_rng, p_rng, + ilen, input, output); #endif #if defined(MBEDTLS_PKCS1_V21) case MBEDTLS_RSA_PKCS_V21: - return mbedtls_rsa_rsaes_oaep_encrypt( ctx, f_rng, p_rng, NULL, 0, - ilen, input, output ); + return mbedtls_rsa_rsaes_oaep_encrypt(ctx, f_rng, p_rng, NULL, 0, + ilen, input, output); #endif default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; } } @@ -1402,14 +1433,14 @@ int mbedtls_rsa_pkcs1_encrypt( mbedtls_rsa_context *ctx, /* * Implementation of the PKCS#1 v2.1 RSAES-OAEP-DECRYPT function */ -int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - const unsigned char *label, size_t label_len, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len ) +int mbedtls_rsa_rsaes_oaep_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + const unsigned char *label, size_t label_len, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t ilen, i, pad_len; @@ -1421,48 +1452,53 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, /* * Parameters sanity checks */ - if( ctx->padding != MBEDTLS_RSA_PKCS_V21 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ctx->padding != MBEDTLS_RSA_PKCS_V21) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } ilen = ctx->len; - if( ilen < 16 || ilen > sizeof( buf ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen < 16 || ilen > sizeof(buf)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id ); - if( hlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + hlen = mbedtls_hash_info_get_size((mbedtls_md_type_t) ctx->hash_id); + if (hlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } // checking for integer underflow - if( 2 * hlen + 2 > ilen ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (2 * hlen + 2 > ilen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* * RSA operation */ - ret = mbedtls_rsa_private( ctx, f_rng, p_rng, input, buf ); + ret = mbedtls_rsa_private(ctx, f_rng, p_rng, input, buf); - if( ret != 0 ) + if (ret != 0) { goto cleanup; + } /* * Unmask data and generate lHash */ /* seed: Apply seedMask to maskedSeed */ - if( ( ret = mgf_mask( buf + 1, hlen, buf + hlen + 1, ilen - hlen - 1, - ctx->hash_id ) ) != 0 || - /* DB: Apply dbMask to maskedDB */ - ( ret = mgf_mask( buf + hlen + 1, ilen - hlen - 1, buf + 1, hlen, - ctx->hash_id ) ) != 0 ) - { + if ((ret = mgf_mask(buf + 1, hlen, buf + hlen + 1, ilen - hlen - 1, + ctx->hash_id)) != 0 || + /* DB: Apply dbMask to maskedDB */ + (ret = mgf_mask(buf + hlen + 1, ilen - hlen - 1, buf + 1, hlen, + ctx->hash_id)) != 0) { goto cleanup; } /* Generate lHash */ - ret = compute_hash( (mbedtls_md_type_t) ctx->hash_id, - label, label_len, lhash ); - if( ret != 0 ) + ret = compute_hash((mbedtls_md_type_t) ctx->hash_id, + label, label_len, lhash); + if (ret != 0) { goto cleanup; + } /* * Check contents, in "constant-time" @@ -1475,17 +1511,17 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, p += hlen; /* Skip seed */ /* Check lHash */ - for( i = 0; i < hlen; i++ ) + for (i = 0; i < hlen; i++) { bad |= lhash[i] ^ *p++; + } /* Get zero-padding len, but always read till end of buffer * (minus one, for the 01 byte) */ pad_len = 0; pad_done = 0; - for( i = 0; i < ilen - 2 * hlen - 2; i++ ) - { + for (i = 0; i < ilen - 2 * hlen - 2; i++) { pad_done |= p[i]; - pad_len += ((pad_done | (unsigned char)-pad_done) >> 7) ^ 1; + pad_len += ((pad_done | (unsigned char) -pad_done) >> 7) ^ 1; } p += pad_len; @@ -1497,28 +1533,27 @@ int mbedtls_rsa_rsaes_oaep_decrypt( mbedtls_rsa_context *ctx, * recommendations in PKCS#1 v2.2: an opponent cannot distinguish between * the different error conditions. */ - if( bad != 0 ) - { + if (bad != 0) { ret = MBEDTLS_ERR_RSA_INVALID_PADDING; goto cleanup; } - if( ilen - ( p - buf ) > output_max_len ) - { + if (ilen - (p - buf) > output_max_len) { ret = MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE; goto cleanup; } *olen = ilen - (p - buf); - if( *olen != 0 ) - memcpy( output, p, *olen ); + if (*olen != 0) { + memcpy(output, p, *olen); + } ret = 0; cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); - mbedtls_platform_zeroize( lhash, sizeof( lhash ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); + mbedtls_platform_zeroize(lhash, sizeof(lhash)); - return( ret ); + return ret; } #endif /* MBEDTLS_PKCS1_V21 */ @@ -1526,13 +1561,13 @@ cleanup: /* * Implementation of the PKCS#1 v2.1 RSAES-PKCS1-V1_5-DECRYPT function */ -int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len ) +int mbedtls_rsa_rsaes_pkcs1_v15_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t ilen; @@ -1540,67 +1575,69 @@ int mbedtls_rsa_rsaes_pkcs1_v15_decrypt( mbedtls_rsa_context *ctx, ilen = ctx->len; - if( ctx->padding != MBEDTLS_RSA_PKCS_V15 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ctx->padding != MBEDTLS_RSA_PKCS_V15) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( ilen < 16 || ilen > sizeof( buf ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ilen < 16 || ilen > sizeof(buf)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - ret = mbedtls_rsa_private( ctx, f_rng, p_rng, input, buf ); + ret = mbedtls_rsa_private(ctx, f_rng, p_rng, input, buf); - if( ret != 0 ) + if (ret != 0) { goto cleanup; + } - ret = mbedtls_ct_rsaes_pkcs1_v15_unpadding( buf, ilen, - output, output_max_len, olen ); + ret = mbedtls_ct_rsaes_pkcs1_v15_unpadding(buf, ilen, + output, output_max_len, olen); cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - return( ret ); + return ret; } #endif /* MBEDTLS_PKCS1_V15 */ /* * Do an RSA operation, then remove the message padding */ -int mbedtls_rsa_pkcs1_decrypt( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - size_t *olen, - const unsigned char *input, - unsigned char *output, - size_t output_max_len) +int mbedtls_rsa_pkcs1_decrypt(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + size_t *olen, + const unsigned char *input, + unsigned char *output, + size_t output_max_len) { - switch( ctx->padding ) - { + switch (ctx->padding) { #if defined(MBEDTLS_PKCS1_V15) case MBEDTLS_RSA_PKCS_V15: - return mbedtls_rsa_rsaes_pkcs1_v15_decrypt( ctx, f_rng, p_rng, olen, - input, output, output_max_len ); + return mbedtls_rsa_rsaes_pkcs1_v15_decrypt(ctx, f_rng, p_rng, olen, + input, output, output_max_len); #endif #if defined(MBEDTLS_PKCS1_V21) case MBEDTLS_RSA_PKCS_V21: - return mbedtls_rsa_rsaes_oaep_decrypt( ctx, f_rng, p_rng, NULL, 0, - olen, input, output, - output_max_len ); + return mbedtls_rsa_rsaes_oaep_decrypt(ctx, f_rng, p_rng, NULL, 0, + olen, input, output, + output_max_len); #endif default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; } } #if defined(MBEDTLS_PKCS1_V21) -static int rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - int saltlen, - unsigned char *sig ) +static int rsa_rsassa_pss_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + int saltlen, + unsigned char *sig) { size_t olen; unsigned char *p = sig; @@ -1609,127 +1646,132 @@ static int rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t msb; - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( ctx->padding != MBEDTLS_RSA_PKCS_V21 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ctx->padding != MBEDTLS_RSA_PKCS_V21) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( f_rng == NULL ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (f_rng == NULL) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } olen = ctx->len; - if( md_alg != MBEDTLS_MD_NONE ) - { + if (md_alg != MBEDTLS_MD_NONE) { /* Gather length of hash to sign */ - size_t exp_hashlen = mbedtls_hash_info_get_size( md_alg ); - if( exp_hashlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + size_t exp_hashlen = mbedtls_hash_info_get_size(md_alg); + if (exp_hashlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( hashlen != exp_hashlen ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (hashlen != exp_hashlen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } } - hlen = mbedtls_hash_info_get_size( (mbedtls_md_type_t) ctx->hash_id ); - if( hlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + hlen = mbedtls_hash_info_get_size((mbedtls_md_type_t) ctx->hash_id); + if (hlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if (saltlen == MBEDTLS_RSA_SALT_LEN_ANY) - { - /* Calculate the largest possible salt length, up to the hash size. - * Normally this is the hash length, which is the maximum salt length - * according to FIPS 185-4 §5.5 (e) and common practice. If there is not - * enough room, use the maximum salt length that fits. The constraint is - * that the hash length plus the salt length plus 2 bytes must be at most - * the key length. This complies with FIPS 186-4 §5.5 (e) and RFC 8017 - * (PKCS#1 v2.2) §9.1.1 step 3. */ + if (saltlen == MBEDTLS_RSA_SALT_LEN_ANY) { + /* Calculate the largest possible salt length, up to the hash size. + * Normally this is the hash length, which is the maximum salt length + * according to FIPS 185-4 §5.5 (e) and common practice. If there is not + * enough room, use the maximum salt length that fits. The constraint is + * that the hash length plus the salt length plus 2 bytes must be at most + * the key length. This complies with FIPS 186-4 §5.5 (e) and RFC 8017 + * (PKCS#1 v2.2) §9.1.1 step 3. */ min_slen = hlen - 2; - if( olen < hlen + min_slen + 2 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - else if( olen >= hlen + hlen + 2 ) + if (olen < hlen + min_slen + 2) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } else if (olen >= hlen + hlen + 2) { slen = hlen; - else + } else { slen = olen - hlen - 2; - } - else if ( (saltlen < 0) || (saltlen + hlen + 2 > olen) ) - { - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - } - else - { + } + } else if ((saltlen < 0) || (saltlen + hlen + 2 > olen)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } else { slen = (size_t) saltlen; } - memset( sig, 0, olen ); + memset(sig, 0, olen); /* Note: EMSA-PSS encoding is over the length of N - 1 bits */ - msb = mbedtls_mpi_bitlen( &ctx->N ) - 1; + msb = mbedtls_mpi_bitlen(&ctx->N) - 1; p += olen - hlen - slen - 2; *p++ = 0x01; /* Generate salt of length slen in place in the encoded message */ salt = p; - if( ( ret = f_rng( p_rng, salt, slen ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_RSA_RNG_FAILED, ret ) ); + if ((ret = f_rng(p_rng, salt, slen)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_RSA_RNG_FAILED, ret); + } p += slen; /* Generate H = Hash( M' ) */ - ret = hash_mprime( hash, hashlen, salt, slen, p, ctx->hash_id ); - if( ret != 0 ) - return( ret ); + ret = hash_mprime(hash, hashlen, salt, slen, p, ctx->hash_id); + if (ret != 0) { + return ret; + } /* Compensate for boundary condition when applying mask */ - if( msb % 8 == 0 ) + if (msb % 8 == 0) { offset = 1; + } /* maskedDB: Apply dbMask to DB */ - ret = mgf_mask( sig + offset, olen - hlen - 1 - offset, p, hlen, - ctx->hash_id ); - if( ret != 0 ) - return( ret ); + ret = mgf_mask(sig + offset, olen - hlen - 1 - offset, p, hlen, + ctx->hash_id); + if (ret != 0) { + return ret; + } - msb = mbedtls_mpi_bitlen( &ctx->N ) - 1; - sig[0] &= 0xFF >> ( olen * 8 - msb ); + msb = mbedtls_mpi_bitlen(&ctx->N) - 1; + sig[0] &= 0xFF >> (olen * 8 - msb); p += hlen; *p++ = 0xBC; - return mbedtls_rsa_private( ctx, f_rng, p_rng, sig, sig ); + return mbedtls_rsa_private(ctx, f_rng, p_rng, sig, sig); } /* * Implementation of the PKCS#1 v2.1 RSASSA-PSS-SIGN function with * the option to pass in the salt length. */ -int mbedtls_rsa_rsassa_pss_sign_ext( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - int saltlen, - unsigned char *sig ) +int mbedtls_rsa_rsassa_pss_sign_ext(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + int saltlen, + unsigned char *sig) { - return rsa_rsassa_pss_sign( ctx, f_rng, p_rng, md_alg, - hashlen, hash, saltlen, sig ); + return rsa_rsassa_pss_sign(ctx, f_rng, p_rng, md_alg, + hashlen, hash, saltlen, sig); } /* * Implementation of the PKCS#1 v2.1 RSASSA-PSS-SIGN function */ -int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ) +int mbedtls_rsa_rsassa_pss_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig) { - return rsa_rsassa_pss_sign( ctx, f_rng, p_rng, md_alg, - hashlen, hash, MBEDTLS_RSA_SALT_LEN_ANY, sig ); + return rsa_rsassa_pss_sign(ctx, f_rng, p_rng, md_alg, + hashlen, hash, MBEDTLS_RSA_SALT_LEN_ANY, sig); } #endif /* MBEDTLS_PKCS1_V21 */ @@ -1755,11 +1797,11 @@ int mbedtls_rsa_rsassa_pss_sign( mbedtls_rsa_context *ctx, * - dst points to a buffer of size at least dst_len. * */ -static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - size_t dst_len, - unsigned char *dst ) +static int rsa_rsassa_pkcs1_v15_encode(mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + size_t dst_len, + unsigned char *dst) { size_t oid_size = 0; size_t nb_pad = dst_len; @@ -1767,24 +1809,27 @@ static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, const char *oid = NULL; /* Are we signing hashed or raw data? */ - if( md_alg != MBEDTLS_MD_NONE ) - { - unsigned char md_size = mbedtls_hash_info_get_size( md_alg ); - if( md_size == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (md_alg != MBEDTLS_MD_NONE) { + unsigned char md_size = mbedtls_hash_info_get_size(md_alg); + if (md_size == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( mbedtls_oid_get_oid_by_md( md_alg, &oid, &oid_size ) != 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (mbedtls_oid_get_oid_by_md(md_alg, &oid, &oid_size) != 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( hashlen != md_size ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (hashlen != md_size) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* Double-check that 8 + hashlen + oid_size can be used as a * 1-byte ASN.1 length encoding and that there's no overflow. */ - if( 8 + hashlen + oid_size >= 0x80 || + if (8 + hashlen + oid_size >= 0x80 || 10 + hashlen < hashlen || - 10 + hashlen + oid_size < 10 + hashlen ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + 10 + hashlen + oid_size < 10 + hashlen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* * Static bounds check: @@ -1794,22 +1839,23 @@ static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, * - Need hashlen bytes for hash * - Need oid_size bytes for hash alg OID. */ - if( nb_pad < 10 + hashlen + oid_size ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (nb_pad < 10 + hashlen + oid_size) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } nb_pad -= 10 + hashlen + oid_size; - } - else - { - if( nb_pad < hashlen ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + } else { + if (nb_pad < hashlen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } nb_pad -= hashlen; } /* Need space for signature header and padding delimiter (3 bytes), * and 8 bytes for the minimal padding */ - if( nb_pad < 3 + 8 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (nb_pad < 3 + 8) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } nb_pad -= 3; /* Now nb_pad is the amount of memory to be filled @@ -1818,15 +1864,14 @@ static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, /* Write signature header and padding */ *p++ = 0; *p++ = MBEDTLS_RSA_SIGN; - memset( p, 0xFF, nb_pad ); + memset(p, 0xFF, nb_pad); p += nb_pad; *p++ = 0; /* Are we signing raw data? */ - if( md_alg == MBEDTLS_MD_NONE ) - { - memcpy( p, hash, hashlen ); - return( 0 ); + if (md_alg == MBEDTLS_MD_NONE) { + memcpy(p, hash, hashlen); + return 0; } /* Signing hashed data, add corresponding ASN.1 structure @@ -1843,58 +1888,60 @@ static int rsa_rsassa_pkcs1_v15_encode( mbedtls_md_type_t md_alg, * TAG-OCTET + LEN [ HASH ] ] */ *p++ = MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED; - *p++ = (unsigned char)( 0x08 + oid_size + hashlen ); + *p++ = (unsigned char) (0x08 + oid_size + hashlen); *p++ = MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED; - *p++ = (unsigned char)( 0x04 + oid_size ); + *p++ = (unsigned char) (0x04 + oid_size); *p++ = MBEDTLS_ASN1_OID; *p++ = (unsigned char) oid_size; - memcpy( p, oid, oid_size ); + memcpy(p, oid, oid_size); p += oid_size; *p++ = MBEDTLS_ASN1_NULL; *p++ = 0x00; *p++ = MBEDTLS_ASN1_OCTET_STRING; *p++ = (unsigned char) hashlen; - memcpy( p, hash, hashlen ); + memcpy(p, hash, hashlen); p += hashlen; /* Just a sanity-check, should be automatic * after the initial bounds check. */ - if( p != dst + dst_len ) - { - mbedtls_platform_zeroize( dst, dst_len ); - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (p != dst + dst_len) { + mbedtls_platform_zeroize(dst, dst_len); + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; } - return( 0 ); + return 0; } /* * Do an RSA operation to sign the message digest */ -int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ) +int mbedtls_rsa_rsassa_pkcs1_v15_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *sig_try = NULL, *verif = NULL; - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - if( ctx->padding != MBEDTLS_RSA_PKCS_V15 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (ctx->padding != MBEDTLS_RSA_PKCS_V15) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* * Prepare PKCS1-v1.5 encoding (padding and hash identifier) */ - if( ( ret = rsa_rsassa_pkcs1_v15_encode( md_alg, hashlen, hash, - ctx->len, sig ) ) != 0 ) - return( ret ); + if ((ret = rsa_rsassa_pkcs1_v15_encode(md_alg, hashlen, hash, + ctx->len, sig)) != 0) { + return ret; + } /* Private key operation * @@ -1902,70 +1949,70 @@ int mbedtls_rsa_rsassa_pkcs1_v15_sign( mbedtls_rsa_context *ctx, * temporary buffer and check it before returning it. */ - sig_try = mbedtls_calloc( 1, ctx->len ); - if( sig_try == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - - verif = mbedtls_calloc( 1, ctx->len ); - if( verif == NULL ) - { - mbedtls_free( sig_try ); - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); + sig_try = mbedtls_calloc(1, ctx->len); + if (sig_try == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; } - MBEDTLS_MPI_CHK( mbedtls_rsa_private( ctx, f_rng, p_rng, sig, sig_try ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_public( ctx, sig_try, verif ) ); + verif = mbedtls_calloc(1, ctx->len); + if (verif == NULL) { + mbedtls_free(sig_try); + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } - if( mbedtls_ct_memcmp( verif, sig, ctx->len ) != 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_rsa_private(ctx, f_rng, p_rng, sig, sig_try)); + MBEDTLS_MPI_CHK(mbedtls_rsa_public(ctx, sig_try, verif)); + + if (mbedtls_ct_memcmp(verif, sig, ctx->len) != 0) { ret = MBEDTLS_ERR_RSA_PRIVATE_FAILED; goto cleanup; } - memcpy( sig, sig_try, ctx->len ); + memcpy(sig, sig_try, ctx->len); cleanup: - mbedtls_platform_zeroize( sig_try, ctx->len ); - mbedtls_platform_zeroize( verif, ctx->len ); - mbedtls_free( sig_try ); - mbedtls_free( verif ); + mbedtls_platform_zeroize(sig_try, ctx->len); + mbedtls_platform_zeroize(verif, ctx->len); + mbedtls_free(sig_try); + mbedtls_free(verif); - if( ret != 0 ) - memset( sig, '!', ctx->len ); - return( ret ); + if (ret != 0) { + memset(sig, '!', ctx->len); + } + return ret; } #endif /* MBEDTLS_PKCS1_V15 */ /* * Do an RSA operation to sign the message digest */ -int mbedtls_rsa_pkcs1_sign( mbedtls_rsa_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - unsigned char *sig ) +int mbedtls_rsa_pkcs1_sign(mbedtls_rsa_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + unsigned char *sig) { - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - switch( ctx->padding ) - { + switch (ctx->padding) { #if defined(MBEDTLS_PKCS1_V15) case MBEDTLS_RSA_PKCS_V15: - return mbedtls_rsa_rsassa_pkcs1_v15_sign( ctx, f_rng, p_rng, - md_alg, hashlen, hash, sig ); + return mbedtls_rsa_rsassa_pkcs1_v15_sign(ctx, f_rng, p_rng, + md_alg, hashlen, hash, sig); #endif #if defined(MBEDTLS_PKCS1_V21) case MBEDTLS_RSA_PKCS_V21: - return mbedtls_rsa_rsassa_pss_sign( ctx, f_rng, p_rng, md_alg, - hashlen, hash, sig ); + return mbedtls_rsa_rsassa_pss_sign(ctx, f_rng, p_rng, md_alg, + hashlen, hash, sig); #endif default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; } } @@ -1973,13 +2020,13 @@ int mbedtls_rsa_pkcs1_sign( mbedtls_rsa_context *ctx, /* * Implementation of the PKCS#1 v2.1 RSASSA-PSS-VERIFY function */ -int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - mbedtls_md_type_t mgf1_hash_id, - int expected_salt_len, - const unsigned char *sig ) +int mbedtls_rsa_rsassa_pss_verify_ext(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + mbedtls_md_type_t mgf1_hash_id, + int expected_salt_len, + const unsigned char *sig) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t siglen; @@ -1988,116 +2035,128 @@ int mbedtls_rsa_rsassa_pss_verify_ext( mbedtls_rsa_context *ctx, unsigned char result[MBEDTLS_HASH_MAX_SIZE]; unsigned int hlen; size_t observed_salt_len, msb; - unsigned char buf[MBEDTLS_MPI_MAX_SIZE] = {0}; + unsigned char buf[MBEDTLS_MPI_MAX_SIZE] = { 0 }; - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } siglen = ctx->len; - if( siglen < 16 || siglen > sizeof( buf ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (siglen < 16 || siglen > sizeof(buf)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - ret = mbedtls_rsa_public( ctx, sig, buf ); + ret = mbedtls_rsa_public(ctx, sig, buf); - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } p = buf; - if( buf[siglen - 1] != 0xBC ) - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); - - if( md_alg != MBEDTLS_MD_NONE ) - { - /* Gather length of hash to sign */ - size_t exp_hashlen = mbedtls_hash_info_get_size( md_alg ); - if( exp_hashlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); - - if( hashlen != exp_hashlen ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (buf[siglen - 1] != 0xBC) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; } - hlen = mbedtls_hash_info_get_size( mgf1_hash_id ); - if( hlen == 0 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (md_alg != MBEDTLS_MD_NONE) { + /* Gather length of hash to sign */ + size_t exp_hashlen = mbedtls_hash_info_get_size(md_alg); + if (exp_hashlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + + if (hashlen != exp_hashlen) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } + } + + hlen = mbedtls_hash_info_get_size(mgf1_hash_id); + if (hlen == 0) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* * Note: EMSA-PSS verification is over the length of N - 1 bits */ - msb = mbedtls_mpi_bitlen( &ctx->N ) - 1; + msb = mbedtls_mpi_bitlen(&ctx->N) - 1; - if( buf[0] >> ( 8 - siglen * 8 + msb ) ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (buf[0] >> (8 - siglen * 8 + msb)) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } /* Compensate for boundary condition when applying mask */ - if( msb % 8 == 0 ) - { + if (msb % 8 == 0) { p++; siglen -= 1; } - if( siglen < hlen + 2 ) - return( MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + if (siglen < hlen + 2) { + return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } hash_start = p + siglen - hlen - 1; - ret = mgf_mask( p, siglen - hlen - 1, hash_start, hlen, mgf1_hash_id ); - if( ret != 0 ) - return( ret ); + ret = mgf_mask(p, siglen - hlen - 1, hash_start, hlen, mgf1_hash_id); + if (ret != 0) { + return ret; + } - buf[0] &= 0xFF >> ( siglen * 8 - msb ); + buf[0] &= 0xFF >> (siglen * 8 - msb); - while( p < hash_start - 1 && *p == 0 ) + while (p < hash_start - 1 && *p == 0) { p++; + } - if( *p++ != 0x01 ) - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + if (*p++ != 0x01) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; + } observed_salt_len = hash_start - p; - if( expected_salt_len != MBEDTLS_RSA_SALT_LEN_ANY && - observed_salt_len != (size_t) expected_salt_len ) - { - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + if (expected_salt_len != MBEDTLS_RSA_SALT_LEN_ANY && + observed_salt_len != (size_t) expected_salt_len) { + return MBEDTLS_ERR_RSA_INVALID_PADDING; } /* * Generate H = Hash( M' ) */ - ret = hash_mprime( hash, hashlen, p, observed_salt_len, - result, mgf1_hash_id ); - if( ret != 0 ) - return( ret ); + ret = hash_mprime(hash, hashlen, p, observed_salt_len, + result, mgf1_hash_id); + if (ret != 0) { + return ret; + } - if( memcmp( hash_start, result, hlen ) != 0 ) - return( MBEDTLS_ERR_RSA_VERIFY_FAILED ); + if (memcmp(hash_start, result, hlen) != 0) { + return MBEDTLS_ERR_RSA_VERIFY_FAILED; + } - return( 0 ); + return 0; } /* * Simplified PKCS#1 v2.1 RSASSA-PSS-VERIFY function */ -int mbedtls_rsa_rsassa_pss_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ) +int mbedtls_rsa_rsassa_pss_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig) { mbedtls_md_type_t mgf1_hash_id; - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - mgf1_hash_id = ( ctx->hash_id != MBEDTLS_MD_NONE ) + mgf1_hash_id = (ctx->hash_id != MBEDTLS_MD_NONE) ? (mbedtls_md_type_t) ctx->hash_id : md_alg; - return( mbedtls_rsa_rsassa_pss_verify_ext( ctx, - md_alg, hashlen, hash, - mgf1_hash_id, - MBEDTLS_RSA_SALT_LEN_ANY, - sig ) ); + return mbedtls_rsa_rsassa_pss_verify_ext(ctx, + md_alg, hashlen, hash, + mgf1_hash_id, + MBEDTLS_RSA_SALT_LEN_ANY, + sig); } #endif /* MBEDTLS_PKCS1_V21 */ @@ -2106,18 +2165,19 @@ int mbedtls_rsa_rsassa_pss_verify( mbedtls_rsa_context *ctx, /* * Implementation of the PKCS#1 v2.1 RSASSA-PKCS1-v1_5-VERIFY function */ -int mbedtls_rsa_rsassa_pkcs1_v15_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ) +int mbedtls_rsa_rsassa_pkcs1_v15_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig) { int ret = 0; size_t sig_len; unsigned char *encoded = NULL, *encoded_expected = NULL; - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } sig_len = ctx->len; @@ -2125,154 +2185,153 @@ int mbedtls_rsa_rsassa_pkcs1_v15_verify( mbedtls_rsa_context *ctx, * Prepare expected PKCS1 v1.5 encoding of hash. */ - if( ( encoded = mbedtls_calloc( 1, sig_len ) ) == NULL || - ( encoded_expected = mbedtls_calloc( 1, sig_len ) ) == NULL ) - { + if ((encoded = mbedtls_calloc(1, sig_len)) == NULL || + (encoded_expected = mbedtls_calloc(1, sig_len)) == NULL) { ret = MBEDTLS_ERR_MPI_ALLOC_FAILED; goto cleanup; } - if( ( ret = rsa_rsassa_pkcs1_v15_encode( md_alg, hashlen, hash, sig_len, - encoded_expected ) ) != 0 ) + if ((ret = rsa_rsassa_pkcs1_v15_encode(md_alg, hashlen, hash, sig_len, + encoded_expected)) != 0) { goto cleanup; + } /* * Apply RSA primitive to get what should be PKCS1 encoded hash. */ - ret = mbedtls_rsa_public( ctx, sig, encoded ); - if( ret != 0 ) + ret = mbedtls_rsa_public(ctx, sig, encoded); + if (ret != 0) { goto cleanup; + } /* * Compare */ - if( ( ret = mbedtls_ct_memcmp( encoded, encoded_expected, - sig_len ) ) != 0 ) - { + if ((ret = mbedtls_ct_memcmp(encoded, encoded_expected, + sig_len)) != 0) { ret = MBEDTLS_ERR_RSA_VERIFY_FAILED; goto cleanup; } cleanup: - if( encoded != NULL ) - { - mbedtls_platform_zeroize( encoded, sig_len ); - mbedtls_free( encoded ); + if (encoded != NULL) { + mbedtls_platform_zeroize(encoded, sig_len); + mbedtls_free(encoded); } - if( encoded_expected != NULL ) - { - mbedtls_platform_zeroize( encoded_expected, sig_len ); - mbedtls_free( encoded_expected ); + if (encoded_expected != NULL) { + mbedtls_platform_zeroize(encoded_expected, sig_len); + mbedtls_free(encoded_expected); } - return( ret ); + return ret; } #endif /* MBEDTLS_PKCS1_V15 */ /* * Do an RSA operation and check the message digest */ -int mbedtls_rsa_pkcs1_verify( mbedtls_rsa_context *ctx, - mbedtls_md_type_t md_alg, - unsigned int hashlen, - const unsigned char *hash, - const unsigned char *sig ) +int mbedtls_rsa_pkcs1_verify(mbedtls_rsa_context *ctx, + mbedtls_md_type_t md_alg, + unsigned int hashlen, + const unsigned char *hash, + const unsigned char *sig) { - if( ( md_alg != MBEDTLS_MD_NONE || hashlen != 0 ) && hash == NULL ) + if ((md_alg != MBEDTLS_MD_NONE || hashlen != 0) && hash == NULL) { return MBEDTLS_ERR_RSA_BAD_INPUT_DATA; + } - switch( ctx->padding ) - { + switch (ctx->padding) { #if defined(MBEDTLS_PKCS1_V15) case MBEDTLS_RSA_PKCS_V15: - return mbedtls_rsa_rsassa_pkcs1_v15_verify( ctx, md_alg, - hashlen, hash, sig ); + return mbedtls_rsa_rsassa_pkcs1_v15_verify(ctx, md_alg, + hashlen, hash, sig); #endif #if defined(MBEDTLS_PKCS1_V21) case MBEDTLS_RSA_PKCS_V21: - return mbedtls_rsa_rsassa_pss_verify( ctx, md_alg, - hashlen, hash, sig ); + return mbedtls_rsa_rsassa_pss_verify(ctx, md_alg, + hashlen, hash, sig); #endif default: - return( MBEDTLS_ERR_RSA_INVALID_PADDING ); + return MBEDTLS_ERR_RSA_INVALID_PADDING; } } /* * Copy the components of an RSA key */ -int mbedtls_rsa_copy( mbedtls_rsa_context *dst, const mbedtls_rsa_context *src ) +int mbedtls_rsa_copy(mbedtls_rsa_context *dst, const mbedtls_rsa_context *src) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; dst->len = src->len; - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->N, &src->N ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->E, &src->E ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->N, &src->N)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->E, &src->E)); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->D, &src->D ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->P, &src->P ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->Q, &src->Q ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->D, &src->D)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->P, &src->P)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->Q, &src->Q)); #if !defined(MBEDTLS_RSA_NO_CRT) - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->DP, &src->DP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->DQ, &src->DQ ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->QP, &src->QP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->RP, &src->RP ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->RQ, &src->RQ ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->DP, &src->DP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->DQ, &src->DQ)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->QP, &src->QP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->RP, &src->RP)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->RQ, &src->RQ)); #endif - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->RN, &src->RN ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->RN, &src->RN)); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->Vi, &src->Vi ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &dst->Vf, &src->Vf ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->Vi, &src->Vi)); + MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&dst->Vf, &src->Vf)); dst->padding = src->padding; dst->hash_id = src->hash_id; cleanup: - if( ret != 0 ) - mbedtls_rsa_free( dst ); + if (ret != 0) { + mbedtls_rsa_free(dst); + } - return( ret ); + return ret; } /* * Free the components of an RSA key */ -void mbedtls_rsa_free( mbedtls_rsa_context *ctx ) +void mbedtls_rsa_free(mbedtls_rsa_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_mpi_free( &ctx->Vi ); - mbedtls_mpi_free( &ctx->Vf ); - mbedtls_mpi_free( &ctx->RN ); - mbedtls_mpi_free( &ctx->D ); - mbedtls_mpi_free( &ctx->Q ); - mbedtls_mpi_free( &ctx->P ); - mbedtls_mpi_free( &ctx->E ); - mbedtls_mpi_free( &ctx->N ); + mbedtls_mpi_free(&ctx->Vi); + mbedtls_mpi_free(&ctx->Vf); + mbedtls_mpi_free(&ctx->RN); + mbedtls_mpi_free(&ctx->D); + mbedtls_mpi_free(&ctx->Q); + mbedtls_mpi_free(&ctx->P); + mbedtls_mpi_free(&ctx->E); + mbedtls_mpi_free(&ctx->N); #if !defined(MBEDTLS_RSA_NO_CRT) - mbedtls_mpi_free( &ctx->RQ ); - mbedtls_mpi_free( &ctx->RP ); - mbedtls_mpi_free( &ctx->QP ); - mbedtls_mpi_free( &ctx->DQ ); - mbedtls_mpi_free( &ctx->DP ); + mbedtls_mpi_free(&ctx->RQ); + mbedtls_mpi_free(&ctx->RP); + mbedtls_mpi_free(&ctx->QP); + mbedtls_mpi_free(&ctx->DQ); + mbedtls_mpi_free(&ctx->DP); #endif /* MBEDTLS_RSA_NO_CRT */ #if defined(MBEDTLS_THREADING_C) /* Free the mutex, but only if it hasn't been freed already. */ - if( ctx->ver != 0 ) - { - mbedtls_mutex_free( &ctx->mutex ); + if (ctx->ver != 0) { + mbedtls_mutex_free(&ctx->mutex); ctx->ver = 0; } #endif @@ -2324,31 +2383,34 @@ void mbedtls_rsa_free( mbedtls_rsa_context *ctx ) "\x11\x22\x33\x0A\x0B\x0C\xCC\xDD\xDD\xDD\xDD\xDD" #if defined(MBEDTLS_PKCS1_V15) -static int myrand( void *rng_state, unsigned char *output, size_t len ) +static int myrand(void *rng_state, unsigned char *output, size_t len) { #if !defined(__OpenBSD__) && !defined(__NetBSD__) size_t i; - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - for( i = 0; i < len; ++i ) + for (i = 0; i < len; ++i) { output[i] = rand(); + } #else - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - arc4random_buf( output, len ); + arc4random_buf(output, len); #endif /* !OpenBSD && !NetBSD */ - return( 0 ); + return 0; } #endif /* MBEDTLS_PKCS1_V15 */ /* * Checkup routine */ -int mbedtls_rsa_self_test( int verbose ) +int mbedtls_rsa_self_test(int verbose) { int ret = 0; #if defined(MBEDTLS_PKCS1_V15) @@ -2363,127 +2425,135 @@ int mbedtls_rsa_self_test( int verbose ) mbedtls_mpi K; - mbedtls_mpi_init( &K ); - mbedtls_rsa_init( &rsa ); + mbedtls_mpi_init(&K); + mbedtls_rsa_init(&rsa); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &K, 16, RSA_N ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_import( &rsa, &K, NULL, NULL, NULL, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &K, 16, RSA_P ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_import( &rsa, NULL, &K, NULL, NULL, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &K, 16, RSA_Q ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_import( &rsa, NULL, NULL, &K, NULL, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &K, 16, RSA_D ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_import( &rsa, NULL, NULL, NULL, &K, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &K, 16, RSA_E ) ); - MBEDTLS_MPI_CHK( mbedtls_rsa_import( &rsa, NULL, NULL, NULL, NULL, &K ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&K, 16, RSA_N)); + MBEDTLS_MPI_CHK(mbedtls_rsa_import(&rsa, &K, NULL, NULL, NULL, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&K, 16, RSA_P)); + MBEDTLS_MPI_CHK(mbedtls_rsa_import(&rsa, NULL, &K, NULL, NULL, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&K, 16, RSA_Q)); + MBEDTLS_MPI_CHK(mbedtls_rsa_import(&rsa, NULL, NULL, &K, NULL, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&K, 16, RSA_D)); + MBEDTLS_MPI_CHK(mbedtls_rsa_import(&rsa, NULL, NULL, NULL, &K, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&K, 16, RSA_E)); + MBEDTLS_MPI_CHK(mbedtls_rsa_import(&rsa, NULL, NULL, NULL, NULL, &K)); - MBEDTLS_MPI_CHK( mbedtls_rsa_complete( &rsa ) ); + MBEDTLS_MPI_CHK(mbedtls_rsa_complete(&rsa)); - if( verbose != 0 ) - mbedtls_printf( " RSA key validation: " ); + if (verbose != 0) { + mbedtls_printf(" RSA key validation: "); + } - if( mbedtls_rsa_check_pubkey( &rsa ) != 0 || - mbedtls_rsa_check_privkey( &rsa ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_rsa_check_pubkey(&rsa) != 0 || + mbedtls_rsa_check_privkey(&rsa) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n PKCS#1 encryption : " ); + if (verbose != 0) { + mbedtls_printf("passed\n PKCS#1 encryption : "); + } - memcpy( rsa_plaintext, RSA_PT, PT_LEN ); + memcpy(rsa_plaintext, RSA_PT, PT_LEN); - if( mbedtls_rsa_pkcs1_encrypt( &rsa, myrand, NULL, - PT_LEN, rsa_plaintext, - rsa_ciphertext ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_rsa_pkcs1_encrypt(&rsa, myrand, NULL, + PT_LEN, rsa_plaintext, + rsa_ciphertext) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n PKCS#1 decryption : " ); + if (verbose != 0) { + mbedtls_printf("passed\n PKCS#1 decryption : "); + } - if( mbedtls_rsa_pkcs1_decrypt( &rsa, myrand, NULL, - &len, rsa_ciphertext, rsa_decrypted, - sizeof(rsa_decrypted) ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_rsa_pkcs1_decrypt(&rsa, myrand, NULL, + &len, rsa_ciphertext, rsa_decrypted, + sizeof(rsa_decrypted)) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( memcmp( rsa_decrypted, rsa_plaintext, len ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (memcmp(rsa_decrypted, rsa_plaintext, len) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } #if defined(MBEDTLS_SHA1_C) - if( verbose != 0 ) - mbedtls_printf( " PKCS#1 data sign : " ); - - if( mbedtls_sha1( rsa_plaintext, PT_LEN, sha1sum ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); - - return( 1 ); + if (verbose != 0) { + mbedtls_printf(" PKCS#1 data sign : "); } - if( mbedtls_rsa_pkcs1_sign( &rsa, myrand, NULL, - MBEDTLS_MD_SHA1, 20, - sha1sum, rsa_ciphertext ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_sha1(rsa_plaintext, PT_LEN, sha1sum) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } + + return 1; + } + + if (mbedtls_rsa_pkcs1_sign(&rsa, myrand, NULL, + MBEDTLS_MD_SHA1, 20, + sha1sum, rsa_ciphertext) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n PKCS#1 sig. verify: " ); + if (verbose != 0) { + mbedtls_printf("passed\n PKCS#1 sig. verify: "); + } - if( mbedtls_rsa_pkcs1_verify( &rsa, MBEDTLS_MD_SHA1, 20, - sha1sum, rsa_ciphertext ) != 0 ) - { - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (mbedtls_rsa_pkcs1_verify(&rsa, MBEDTLS_MD_SHA1, 20, + sha1sum, rsa_ciphertext) != 0) { + if (verbose != 0) { + mbedtls_printf("failed\n"); + } ret = 1; goto cleanup; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } #endif /* MBEDTLS_SHA1_C */ - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } cleanup: - mbedtls_mpi_free( &K ); - mbedtls_rsa_free( &rsa ); + mbedtls_mpi_free(&K); + mbedtls_rsa_free(&rsa); #else /* MBEDTLS_PKCS1_V15 */ ((void) verbose); #endif /* MBEDTLS_PKCS1_V15 */ - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/rsa_alt_helpers.c b/library/rsa_alt_helpers.c index dff2d9345..3451469b9 100644 --- a/library/rsa_alt_helpers.c +++ b/library/rsa_alt_helpers.c @@ -59,9 +59,9 @@ * of (a) and (b) above to attempt to factor N. * */ -int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, - mbedtls_mpi const *E, mbedtls_mpi const *D, - mbedtls_mpi *P, mbedtls_mpi *Q ) +int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N, + mbedtls_mpi const *E, mbedtls_mpi const *D, + mbedtls_mpi *P, mbedtls_mpi *Q) { int ret = 0; @@ -74,48 +74,46 @@ int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, mbedtls_mpi K; /* Temporary holding the current candidate */ const unsigned char primes[] = { 2, - 3, 5, 7, 11, 13, 17, 19, 23, - 29, 31, 37, 41, 43, 47, 53, 59, - 61, 67, 71, 73, 79, 83, 89, 97, - 101, 103, 107, 109, 113, 127, 131, 137, - 139, 149, 151, 157, 163, 167, 173, 179, - 181, 191, 193, 197, 199, 211, 223, 227, - 229, 233, 239, 241, 251 - }; + 3, 5, 7, 11, 13, 17, 19, 23, + 29, 31, 37, 41, 43, 47, 53, 59, + 61, 67, 71, 73, 79, 83, 89, 97, + 101, 103, 107, 109, 113, 127, 131, 137, + 139, 149, 151, 157, 163, 167, 173, 179, + 181, 191, 193, 197, 199, 211, 223, 227, + 229, 233, 239, 241, 251 }; - const size_t num_primes = sizeof( primes ) / sizeof( *primes ); + const size_t num_primes = sizeof(primes) / sizeof(*primes); - if( P == NULL || Q == NULL || P->p != NULL || Q->p != NULL ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (P == NULL || Q == NULL || P->p != NULL || Q->p != NULL) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - if( mbedtls_mpi_cmp_int( N, 0 ) <= 0 || - mbedtls_mpi_cmp_int( D, 1 ) <= 0 || - mbedtls_mpi_cmp_mpi( D, N ) >= 0 || - mbedtls_mpi_cmp_int( E, 1 ) <= 0 || - mbedtls_mpi_cmp_mpi( E, N ) >= 0 ) - { - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (mbedtls_mpi_cmp_int(N, 0) <= 0 || + mbedtls_mpi_cmp_int(D, 1) <= 0 || + mbedtls_mpi_cmp_mpi(D, N) >= 0 || + mbedtls_mpi_cmp_int(E, 1) <= 0 || + mbedtls_mpi_cmp_mpi(E, N) >= 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } /* * Initializations and temporary changes */ - mbedtls_mpi_init( &K ); - mbedtls_mpi_init( &T ); + mbedtls_mpi_init(&K); + mbedtls_mpi_init(&T); /* T := DE - 1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &T, D, E ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &T, &T, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&T, D, E)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&T, &T, 1)); - if( ( order = (uint16_t) mbedtls_mpi_lsb( &T ) ) == 0 ) - { + if ((order = (uint16_t) mbedtls_mpi_lsb(&T)) == 0) { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } /* After this operation, T holds the largest odd divisor of DE - 1. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &T, order ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&T, order)); /* * Actual work @@ -123,49 +121,49 @@ int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, /* Skip trying 2 if N == 1 mod 8 */ attempt = 0; - if( N->p[0] % 8 == 1 ) + if (N->p[0] % 8 == 1) { attempt = 1; + } - for( ; attempt < num_primes; ++attempt ) - { - mbedtls_mpi_lset( &K, primes[attempt] ); + for (; attempt < num_primes; ++attempt) { + mbedtls_mpi_lset(&K, primes[attempt]); /* Check if gcd(K,N) = 1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( P, &K, N ) ); - if( mbedtls_mpi_cmp_int( P, 1 ) != 0 ) + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N)); + if (mbedtls_mpi_cmp_int(P, 1) != 0) { continue; + } /* Go through K^T + 1, K^(2T) + 1, K^(4T) + 1, ... * and check whether they have nontrivial GCD with N. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &K, &K, &T, N, - Q /* temporarily use Q for storing Montgomery - * multiplication helper values */ ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&K, &K, &T, N, + Q /* temporarily use Q for storing Montgomery + * multiplication helper values */)); - for( iter = 1; iter <= order; ++iter ) - { + for (iter = 1; iter <= order; ++iter) { /* If we reach 1 prematurely, there's no point * in continuing to square K */ - if( mbedtls_mpi_cmp_int( &K, 1 ) == 0 ) + if (mbedtls_mpi_cmp_int(&K, 1) == 0) { break; + } - MBEDTLS_MPI_CHK( mbedtls_mpi_add_int( &K, &K, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( P, &K, N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_add_int(&K, &K, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N)); - if( mbedtls_mpi_cmp_int( P, 1 ) == 1 && - mbedtls_mpi_cmp_mpi( P, N ) == -1 ) - { + if (mbedtls_mpi_cmp_int(P, 1) == 1 && + mbedtls_mpi_cmp_mpi(P, N) == -1) { /* * Have found a nontrivial divisor P of N. * Set Q := N / P. */ - MBEDTLS_MPI_CHK( mbedtls_mpi_div_mpi( Q, NULL, N, P ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(Q, NULL, N, P)); goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, &K, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, &K, &K ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &K, &K, N ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, &K, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, &K, &K)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&K, &K, N)); } /* @@ -175,8 +173,7 @@ int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, * Check if that's the case and abort if not, to avoid very long, * yet eventually failing, computations if N,D,E were not sane. */ - if( mbedtls_mpi_cmp_int( &K, 1 ) != 0 ) - { + if (mbedtls_mpi_cmp_int(&K, 1) != 0) { break; } } @@ -185,106 +182,103 @@ int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, cleanup: - mbedtls_mpi_free( &K ); - mbedtls_mpi_free( &T ); - return( ret ); + mbedtls_mpi_free(&K); + mbedtls_mpi_free(&T); + return ret; } /* * Given P, Q and the public exponent E, deduce D. * This is essentially a modular inversion. */ -int mbedtls_rsa_deduce_private_exponent( mbedtls_mpi const *P, - mbedtls_mpi const *Q, - mbedtls_mpi const *E, - mbedtls_mpi *D ) +int mbedtls_rsa_deduce_private_exponent(mbedtls_mpi const *P, + mbedtls_mpi const *Q, + mbedtls_mpi const *E, + mbedtls_mpi *D) { int ret = 0; mbedtls_mpi K, L; - if( D == NULL || mbedtls_mpi_cmp_int( D, 0 ) != 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - if( mbedtls_mpi_cmp_int( P, 1 ) <= 0 || - mbedtls_mpi_cmp_int( Q, 1 ) <= 0 || - mbedtls_mpi_cmp_int( E, 0 ) == 0 ) - { - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (D == NULL || mbedtls_mpi_cmp_int(D, 0) != 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - mbedtls_mpi_init( &K ); - mbedtls_mpi_init( &L ); + if (mbedtls_mpi_cmp_int(P, 1) <= 0 || + mbedtls_mpi_cmp_int(Q, 1) <= 0 || + mbedtls_mpi_cmp_int(E, 0) == 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } + + mbedtls_mpi_init(&K); + mbedtls_mpi_init(&L); /* Temporarily put K := P-1 and L := Q-1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &L, Q, 1 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&L, Q, 1)); /* Temporarily put D := gcd(P-1, Q-1) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( D, &K, &L ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(D, &K, &L)); /* K := LCM(P-1, Q-1) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, &K, &L ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_div_mpi( &K, NULL, &K, D ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, &K, &L)); + MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&K, NULL, &K, D)); /* Compute modular inverse of E in LCM(P-1, Q-1) */ - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( D, E, &K ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(D, E, &K)); cleanup: - mbedtls_mpi_free( &K ); - mbedtls_mpi_free( &L ); + mbedtls_mpi_free(&K); + mbedtls_mpi_free(&L); - return( ret ); + return ret; } -int mbedtls_rsa_deduce_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, mbedtls_mpi *DP, - mbedtls_mpi *DQ, mbedtls_mpi *QP ) +int mbedtls_rsa_deduce_crt(const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, mbedtls_mpi *DP, + mbedtls_mpi *DQ, mbedtls_mpi *QP) { int ret = 0; mbedtls_mpi K; - mbedtls_mpi_init( &K ); + mbedtls_mpi_init(&K); /* DP = D mod P-1 */ - if( DP != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( DP, D, &K ) ); + if (DP != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(DP, D, &K)); } /* DQ = D mod Q-1 */ - if( DQ != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, Q, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( DQ, D, &K ) ); + if (DQ != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, Q, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(DQ, D, &K)); } /* QP = Q^{-1} mod P */ - if( QP != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( QP, Q, P ) ); + if (QP != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(QP, Q, P)); } cleanup: - mbedtls_mpi_free( &K ); + mbedtls_mpi_free(&K); - return( ret ); + return ret; } /* * Check that core RSA parameters are sane. */ -int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, - const mbedtls_mpi *Q, const mbedtls_mpi *D, - const mbedtls_mpi *E, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_rsa_validate_params(const mbedtls_mpi *N, const mbedtls_mpi *P, + const mbedtls_mpi *Q, const mbedtls_mpi *D, + const mbedtls_mpi *E, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = 0; mbedtls_mpi K, L; - mbedtls_mpi_init( &K ); - mbedtls_mpi_init( &L ); + mbedtls_mpi_init(&K); + mbedtls_mpi_init(&L); /* * Step 1: If PRNG provided, check that P and Q are prime @@ -296,16 +290,14 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, * rate of at most 2^-100 and we are aiming for the same certainty here as * well. */ - if( f_rng != NULL && P != NULL && - ( ret = mbedtls_mpi_is_prime_ext( P, 50, f_rng, p_rng ) ) != 0 ) - { + if (f_rng != NULL && P != NULL && + (ret = mbedtls_mpi_is_prime_ext(P, 50, f_rng, p_rng)) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } - if( f_rng != NULL && Q != NULL && - ( ret = mbedtls_mpi_is_prime_ext( Q, 50, f_rng, p_rng ) ) != 0 ) - { + if (f_rng != NULL && Q != NULL && + (ret = mbedtls_mpi_is_prime_ext(Q, 50, f_rng, p_rng)) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } @@ -318,12 +310,10 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, * Step 2: Check that 1 < N = P * Q */ - if( P != NULL && Q != NULL && N != NULL ) - { - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, P, Q ) ); - if( mbedtls_mpi_cmp_int( N, 1 ) <= 0 || - mbedtls_mpi_cmp_mpi( &K, N ) != 0 ) - { + if (P != NULL && Q != NULL && N != NULL) { + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, P, Q)); + if (mbedtls_mpi_cmp_int(N, 1) <= 0 || + mbedtls_mpi_cmp_mpi(&K, N) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } @@ -333,13 +323,11 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, * Step 3: Check and 1 < D, E < N if present. */ - if( N != NULL && D != NULL && E != NULL ) - { - if ( mbedtls_mpi_cmp_int( D, 1 ) <= 0 || - mbedtls_mpi_cmp_int( E, 1 ) <= 0 || - mbedtls_mpi_cmp_mpi( D, N ) >= 0 || - mbedtls_mpi_cmp_mpi( E, N ) >= 0 ) - { + if (N != NULL && D != NULL && E != NULL) { + if (mbedtls_mpi_cmp_int(D, 1) <= 0 || + mbedtls_mpi_cmp_int(E, 1) <= 0 || + mbedtls_mpi_cmp_mpi(D, N) >= 0 || + mbedtls_mpi_cmp_mpi(E, N) >= 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } @@ -349,33 +337,29 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, * Step 4: Check that D, E are inverse modulo P-1 and Q-1 */ - if( P != NULL && Q != NULL && D != NULL && E != NULL ) - { - if( mbedtls_mpi_cmp_int( P, 1 ) <= 0 || - mbedtls_mpi_cmp_int( Q, 1 ) <= 0 ) - { + if (P != NULL && Q != NULL && D != NULL && E != NULL) { + if (mbedtls_mpi_cmp_int(P, 1) <= 0 || + mbedtls_mpi_cmp_int(Q, 1) <= 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } /* Compute DE-1 mod P-1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, D, E ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, &K, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &L, P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &K, &K, &L ) ); - if( mbedtls_mpi_cmp_int( &K, 0 ) != 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, D, E)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, &K, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&L, P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&K, &K, &L)); + if (mbedtls_mpi_cmp_int(&K, 0) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } /* Compute DE-1 mod Q-1 */ - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, D, E ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, &K, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &L, Q, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &K, &K, &L ) ); - if( mbedtls_mpi_cmp_int( &K, 0 ) != 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, D, E)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, &K, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&L, Q, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&K, &K, &L)); + if (mbedtls_mpi_cmp_int(&K, 0) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } @@ -383,85 +367,75 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, cleanup: - mbedtls_mpi_free( &K ); - mbedtls_mpi_free( &L ); + mbedtls_mpi_free(&K); + mbedtls_mpi_free(&L); /* Wrap MPI error codes by RSA check failure error code */ - if( ret != 0 && ret != MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ) - { + if (ret != 0 && ret != MBEDTLS_ERR_RSA_KEY_CHECK_FAILED) { ret += MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - return( ret ); + return ret; } /* * Check that RSA CRT parameters are in accordance with core parameters. */ -int mbedtls_rsa_validate_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, const mbedtls_mpi *DP, - const mbedtls_mpi *DQ, const mbedtls_mpi *QP ) +int mbedtls_rsa_validate_crt(const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, const mbedtls_mpi *DP, + const mbedtls_mpi *DQ, const mbedtls_mpi *QP) { int ret = 0; mbedtls_mpi K, L; - mbedtls_mpi_init( &K ); - mbedtls_mpi_init( &L ); + mbedtls_mpi_init(&K); + mbedtls_mpi_init(&L); /* Check that DP - D == 0 mod P - 1 */ - if( DP != NULL ) - { - if( P == NULL ) - { + if (DP != NULL) { + if (P == NULL) { ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &L, DP, D ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &L, &L, &K ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&L, DP, D)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&L, &L, &K)); - if( mbedtls_mpi_cmp_int( &L, 0 ) != 0 ) - { + if (mbedtls_mpi_cmp_int(&L, 0) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } } /* Check that DQ - D == 0 mod Q - 1 */ - if( DQ != NULL ) - { - if( Q == NULL ) - { + if (DQ != NULL) { + if (Q == NULL) { ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, Q, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mpi( &L, DQ, D ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &L, &L, &K ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, Q, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&L, DQ, D)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&L, &L, &K)); - if( mbedtls_mpi_cmp_int( &L, 0 ) != 0 ) - { + if (mbedtls_mpi_cmp_int(&L, 0) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } } /* Check that QP * Q - 1 == 0 mod P */ - if( QP != NULL ) - { - if( P == NULL || Q == NULL ) - { + if (QP != NULL) { + if (P == NULL || Q == NULL) { ret = MBEDTLS_ERR_RSA_BAD_INPUT_DATA; goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &K, QP, Q ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &K, &K, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &K, &K, P ) ); - if( mbedtls_mpi_cmp_int( &K, 0 ) != 0 ) - { + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&K, QP, Q)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&K, &K, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&K, &K, P)); + if (mbedtls_mpi_cmp_int(&K, 0) != 0) { ret = MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; goto cleanup; } @@ -470,17 +444,16 @@ int mbedtls_rsa_validate_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, cleanup: /* Wrap MPI error codes by RSA check failure error code */ - if( ret != 0 && + if (ret != 0 && ret != MBEDTLS_ERR_RSA_KEY_CHECK_FAILED && - ret != MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) - { + ret != MBEDTLS_ERR_RSA_BAD_INPUT_DATA) { ret += MBEDTLS_ERR_RSA_KEY_CHECK_FAILED; } - mbedtls_mpi_free( &K ); - mbedtls_mpi_free( &L ); + mbedtls_mpi_free(&K); + mbedtls_mpi_free(&L); - return( ret ); + return ret; } #endif /* MBEDTLS_RSA_C */ diff --git a/library/rsa_alt_helpers.h b/library/rsa_alt_helpers.h index d6fc8e592..3b22ba853 100644 --- a/library/rsa_alt_helpers.h +++ b/library/rsa_alt_helpers.h @@ -88,9 +88,9 @@ extern "C" { * use the helper function \c mbedtls_rsa_validate_params. * */ -int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, mbedtls_mpi const *E, - mbedtls_mpi const *D, - mbedtls_mpi *P, mbedtls_mpi *Q ); +int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N, mbedtls_mpi const *E, + mbedtls_mpi const *D, + mbedtls_mpi *P, mbedtls_mpi *Q); /** * \brief Compute RSA private exponent from @@ -113,10 +113,10 @@ int mbedtls_rsa_deduce_primes( mbedtls_mpi const *N, mbedtls_mpi const *E, * \note This function does not check whether P and Q are primes. * */ -int mbedtls_rsa_deduce_private_exponent( mbedtls_mpi const *P, - mbedtls_mpi const *Q, - mbedtls_mpi const *E, - mbedtls_mpi *D ); +int mbedtls_rsa_deduce_private_exponent(mbedtls_mpi const *P, + mbedtls_mpi const *Q, + mbedtls_mpi const *E, + mbedtls_mpi *D); /** @@ -139,9 +139,9 @@ int mbedtls_rsa_deduce_private_exponent( mbedtls_mpi const *P, * prime and whether D is a valid private exponent. * */ -int mbedtls_rsa_deduce_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, mbedtls_mpi *DP, - mbedtls_mpi *DQ, mbedtls_mpi *QP ); +int mbedtls_rsa_deduce_crt(const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, mbedtls_mpi *DP, + mbedtls_mpi *DQ, mbedtls_mpi *QP); /** @@ -174,11 +174,11 @@ int mbedtls_rsa_deduce_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, * to perform specific checks only. E.g., calling it with * (-,P,-,-,-) and a PRNG amounts to a primality check for P. */ -int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, - const mbedtls_mpi *Q, const mbedtls_mpi *D, - const mbedtls_mpi *E, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_rsa_validate_params(const mbedtls_mpi *N, const mbedtls_mpi *P, + const mbedtls_mpi *Q, const mbedtls_mpi *D, + const mbedtls_mpi *E, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); /** * \brief Check validity of RSA CRT parameters @@ -209,9 +209,9 @@ int mbedtls_rsa_validate_params( const mbedtls_mpi *N, const mbedtls_mpi *P, * to perform specific checks only. E.g., calling it with the * parameters (P, -, D, DP, -, -) will check DP = D mod P-1. */ -int mbedtls_rsa_validate_crt( const mbedtls_mpi *P, const mbedtls_mpi *Q, - const mbedtls_mpi *D, const mbedtls_mpi *DP, - const mbedtls_mpi *DQ, const mbedtls_mpi *QP ); +int mbedtls_rsa_validate_crt(const mbedtls_mpi *P, const mbedtls_mpi *Q, + const mbedtls_mpi *D, const mbedtls_mpi *DP, + const mbedtls_mpi *DQ, const mbedtls_mpi *QP); #ifdef __cplusplus } diff --git a/library/sha1.c b/library/sha1.c index 5ae818a64..4c9cbf5e8 100644 --- a/library/sha1.c +++ b/library/sha1.c @@ -36,21 +36,22 @@ #if !defined(MBEDTLS_SHA1_ALT) -void mbedtls_sha1_init( mbedtls_sha1_context *ctx ) +void mbedtls_sha1_init(mbedtls_sha1_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_sha1_context ) ); + memset(ctx, 0, sizeof(mbedtls_sha1_context)); } -void mbedtls_sha1_free( mbedtls_sha1_context *ctx ) +void mbedtls_sha1_free(mbedtls_sha1_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_sha1_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_sha1_context)); } -void mbedtls_sha1_clone( mbedtls_sha1_context *dst, - const mbedtls_sha1_context *src ) +void mbedtls_sha1_clone(mbedtls_sha1_context *dst, + const mbedtls_sha1_context *src) { *dst = *src; } @@ -58,7 +59,7 @@ void mbedtls_sha1_clone( mbedtls_sha1_context *dst, /* * SHA-1 context setup */ -int mbedtls_sha1_starts( mbedtls_sha1_context *ctx ) +int mbedtls_sha1_starts(mbedtls_sha1_context *ctx) { ctx->total[0] = 0; ctx->total[1] = 0; @@ -69,52 +70,51 @@ int mbedtls_sha1_starts( mbedtls_sha1_context *ctx ) ctx->state[3] = 0x10325476; ctx->state[4] = 0xC3D2E1F0; - return( 0 ); + return 0; } #if !defined(MBEDTLS_SHA1_PROCESS_ALT) -int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, - const unsigned char data[64] ) +int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx, + const unsigned char data[64]) { - struct - { + struct { uint32_t temp, W[16], A, B, C, D, E; } local; - local.W[ 0] = MBEDTLS_GET_UINT32_BE( data, 0 ); - local.W[ 1] = MBEDTLS_GET_UINT32_BE( data, 4 ); - local.W[ 2] = MBEDTLS_GET_UINT32_BE( data, 8 ); - local.W[ 3] = MBEDTLS_GET_UINT32_BE( data, 12 ); - local.W[ 4] = MBEDTLS_GET_UINT32_BE( data, 16 ); - local.W[ 5] = MBEDTLS_GET_UINT32_BE( data, 20 ); - local.W[ 6] = MBEDTLS_GET_UINT32_BE( data, 24 ); - local.W[ 7] = MBEDTLS_GET_UINT32_BE( data, 28 ); - local.W[ 8] = MBEDTLS_GET_UINT32_BE( data, 32 ); - local.W[ 9] = MBEDTLS_GET_UINT32_BE( data, 36 ); - local.W[10] = MBEDTLS_GET_UINT32_BE( data, 40 ); - local.W[11] = MBEDTLS_GET_UINT32_BE( data, 44 ); - local.W[12] = MBEDTLS_GET_UINT32_BE( data, 48 ); - local.W[13] = MBEDTLS_GET_UINT32_BE( data, 52 ); - local.W[14] = MBEDTLS_GET_UINT32_BE( data, 56 ); - local.W[15] = MBEDTLS_GET_UINT32_BE( data, 60 ); + local.W[0] = MBEDTLS_GET_UINT32_BE(data, 0); + local.W[1] = MBEDTLS_GET_UINT32_BE(data, 4); + local.W[2] = MBEDTLS_GET_UINT32_BE(data, 8); + local.W[3] = MBEDTLS_GET_UINT32_BE(data, 12); + local.W[4] = MBEDTLS_GET_UINT32_BE(data, 16); + local.W[5] = MBEDTLS_GET_UINT32_BE(data, 20); + local.W[6] = MBEDTLS_GET_UINT32_BE(data, 24); + local.W[7] = MBEDTLS_GET_UINT32_BE(data, 28); + local.W[8] = MBEDTLS_GET_UINT32_BE(data, 32); + local.W[9] = MBEDTLS_GET_UINT32_BE(data, 36); + local.W[10] = MBEDTLS_GET_UINT32_BE(data, 40); + local.W[11] = MBEDTLS_GET_UINT32_BE(data, 44); + local.W[12] = MBEDTLS_GET_UINT32_BE(data, 48); + local.W[13] = MBEDTLS_GET_UINT32_BE(data, 52); + local.W[14] = MBEDTLS_GET_UINT32_BE(data, 56); + local.W[15] = MBEDTLS_GET_UINT32_BE(data, 60); -#define S(x,n) (((x) << (n)) | (((x) & 0xFFFFFFFF) >> (32 - (n)))) +#define S(x, n) (((x) << (n)) | (((x) & 0xFFFFFFFF) >> (32 - (n)))) #define R(t) \ ( \ - local.temp = local.W[( (t) - 3 ) & 0x0F] ^ \ - local.W[( (t) - 8 ) & 0x0F] ^ \ - local.W[( (t) - 14 ) & 0x0F] ^ \ - local.W[ (t) & 0x0F], \ - ( local.W[(t) & 0x0F] = S(local.temp,1) ) \ + local.temp = local.W[((t) - 3) & 0x0F] ^ \ + local.W[((t) - 8) & 0x0F] ^ \ + local.W[((t) - 14) & 0x0F] ^ \ + local.W[(t) & 0x0F], \ + (local.W[(t) & 0x0F] = S(local.temp, 1)) \ ) -#define P(a,b,c,d,e,x) \ +#define P(a, b, c, d, e, x) \ do \ { \ - (e) += S((a),5) + F((b),(c),(d)) + K + (x); \ - (b) = S((b),30); \ - } while( 0 ) + (e) += S((a), 5) + F((b), (c), (d)) + K + (x); \ + (b) = S((b), 30); \ + } while (0) local.A = ctx->state[0]; local.B = ctx->state[1]; @@ -122,110 +122,110 @@ int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, local.D = ctx->state[3]; local.E = ctx->state[4]; -#define F(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define F(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) #define K 0x5A827999 - P( local.A, local.B, local.C, local.D, local.E, local.W[0] ); - P( local.E, local.A, local.B, local.C, local.D, local.W[1] ); - P( local.D, local.E, local.A, local.B, local.C, local.W[2] ); - P( local.C, local.D, local.E, local.A, local.B, local.W[3] ); - P( local.B, local.C, local.D, local.E, local.A, local.W[4] ); - P( local.A, local.B, local.C, local.D, local.E, local.W[5] ); - P( local.E, local.A, local.B, local.C, local.D, local.W[6] ); - P( local.D, local.E, local.A, local.B, local.C, local.W[7] ); - P( local.C, local.D, local.E, local.A, local.B, local.W[8] ); - P( local.B, local.C, local.D, local.E, local.A, local.W[9] ); - P( local.A, local.B, local.C, local.D, local.E, local.W[10] ); - P( local.E, local.A, local.B, local.C, local.D, local.W[11] ); - P( local.D, local.E, local.A, local.B, local.C, local.W[12] ); - P( local.C, local.D, local.E, local.A, local.B, local.W[13] ); - P( local.B, local.C, local.D, local.E, local.A, local.W[14] ); - P( local.A, local.B, local.C, local.D, local.E, local.W[15] ); - P( local.E, local.A, local.B, local.C, local.D, R(16) ); - P( local.D, local.E, local.A, local.B, local.C, R(17) ); - P( local.C, local.D, local.E, local.A, local.B, R(18) ); - P( local.B, local.C, local.D, local.E, local.A, R(19) ); + P(local.A, local.B, local.C, local.D, local.E, local.W[0]); + P(local.E, local.A, local.B, local.C, local.D, local.W[1]); + P(local.D, local.E, local.A, local.B, local.C, local.W[2]); + P(local.C, local.D, local.E, local.A, local.B, local.W[3]); + P(local.B, local.C, local.D, local.E, local.A, local.W[4]); + P(local.A, local.B, local.C, local.D, local.E, local.W[5]); + P(local.E, local.A, local.B, local.C, local.D, local.W[6]); + P(local.D, local.E, local.A, local.B, local.C, local.W[7]); + P(local.C, local.D, local.E, local.A, local.B, local.W[8]); + P(local.B, local.C, local.D, local.E, local.A, local.W[9]); + P(local.A, local.B, local.C, local.D, local.E, local.W[10]); + P(local.E, local.A, local.B, local.C, local.D, local.W[11]); + P(local.D, local.E, local.A, local.B, local.C, local.W[12]); + P(local.C, local.D, local.E, local.A, local.B, local.W[13]); + P(local.B, local.C, local.D, local.E, local.A, local.W[14]); + P(local.A, local.B, local.C, local.D, local.E, local.W[15]); + P(local.E, local.A, local.B, local.C, local.D, R(16)); + P(local.D, local.E, local.A, local.B, local.C, R(17)); + P(local.C, local.D, local.E, local.A, local.B, R(18)); + P(local.B, local.C, local.D, local.E, local.A, R(19)); #undef K #undef F -#define F(x,y,z) ((x) ^ (y) ^ (z)) +#define F(x, y, z) ((x) ^ (y) ^ (z)) #define K 0x6ED9EBA1 - P( local.A, local.B, local.C, local.D, local.E, R(20) ); - P( local.E, local.A, local.B, local.C, local.D, R(21) ); - P( local.D, local.E, local.A, local.B, local.C, R(22) ); - P( local.C, local.D, local.E, local.A, local.B, R(23) ); - P( local.B, local.C, local.D, local.E, local.A, R(24) ); - P( local.A, local.B, local.C, local.D, local.E, R(25) ); - P( local.E, local.A, local.B, local.C, local.D, R(26) ); - P( local.D, local.E, local.A, local.B, local.C, R(27) ); - P( local.C, local.D, local.E, local.A, local.B, R(28) ); - P( local.B, local.C, local.D, local.E, local.A, R(29) ); - P( local.A, local.B, local.C, local.D, local.E, R(30) ); - P( local.E, local.A, local.B, local.C, local.D, R(31) ); - P( local.D, local.E, local.A, local.B, local.C, R(32) ); - P( local.C, local.D, local.E, local.A, local.B, R(33) ); - P( local.B, local.C, local.D, local.E, local.A, R(34) ); - P( local.A, local.B, local.C, local.D, local.E, R(35) ); - P( local.E, local.A, local.B, local.C, local.D, R(36) ); - P( local.D, local.E, local.A, local.B, local.C, R(37) ); - P( local.C, local.D, local.E, local.A, local.B, R(38) ); - P( local.B, local.C, local.D, local.E, local.A, R(39) ); + P(local.A, local.B, local.C, local.D, local.E, R(20)); + P(local.E, local.A, local.B, local.C, local.D, R(21)); + P(local.D, local.E, local.A, local.B, local.C, R(22)); + P(local.C, local.D, local.E, local.A, local.B, R(23)); + P(local.B, local.C, local.D, local.E, local.A, R(24)); + P(local.A, local.B, local.C, local.D, local.E, R(25)); + P(local.E, local.A, local.B, local.C, local.D, R(26)); + P(local.D, local.E, local.A, local.B, local.C, R(27)); + P(local.C, local.D, local.E, local.A, local.B, R(28)); + P(local.B, local.C, local.D, local.E, local.A, R(29)); + P(local.A, local.B, local.C, local.D, local.E, R(30)); + P(local.E, local.A, local.B, local.C, local.D, R(31)); + P(local.D, local.E, local.A, local.B, local.C, R(32)); + P(local.C, local.D, local.E, local.A, local.B, R(33)); + P(local.B, local.C, local.D, local.E, local.A, R(34)); + P(local.A, local.B, local.C, local.D, local.E, R(35)); + P(local.E, local.A, local.B, local.C, local.D, R(36)); + P(local.D, local.E, local.A, local.B, local.C, R(37)); + P(local.C, local.D, local.E, local.A, local.B, R(38)); + P(local.B, local.C, local.D, local.E, local.A, R(39)); #undef K #undef F -#define F(x,y,z) (((x) & (y)) | ((z) & ((x) | (y)))) +#define F(x, y, z) (((x) & (y)) | ((z) & ((x) | (y)))) #define K 0x8F1BBCDC - P( local.A, local.B, local.C, local.D, local.E, R(40) ); - P( local.E, local.A, local.B, local.C, local.D, R(41) ); - P( local.D, local.E, local.A, local.B, local.C, R(42) ); - P( local.C, local.D, local.E, local.A, local.B, R(43) ); - P( local.B, local.C, local.D, local.E, local.A, R(44) ); - P( local.A, local.B, local.C, local.D, local.E, R(45) ); - P( local.E, local.A, local.B, local.C, local.D, R(46) ); - P( local.D, local.E, local.A, local.B, local.C, R(47) ); - P( local.C, local.D, local.E, local.A, local.B, R(48) ); - P( local.B, local.C, local.D, local.E, local.A, R(49) ); - P( local.A, local.B, local.C, local.D, local.E, R(50) ); - P( local.E, local.A, local.B, local.C, local.D, R(51) ); - P( local.D, local.E, local.A, local.B, local.C, R(52) ); - P( local.C, local.D, local.E, local.A, local.B, R(53) ); - P( local.B, local.C, local.D, local.E, local.A, R(54) ); - P( local.A, local.B, local.C, local.D, local.E, R(55) ); - P( local.E, local.A, local.B, local.C, local.D, R(56) ); - P( local.D, local.E, local.A, local.B, local.C, R(57) ); - P( local.C, local.D, local.E, local.A, local.B, R(58) ); - P( local.B, local.C, local.D, local.E, local.A, R(59) ); + P(local.A, local.B, local.C, local.D, local.E, R(40)); + P(local.E, local.A, local.B, local.C, local.D, R(41)); + P(local.D, local.E, local.A, local.B, local.C, R(42)); + P(local.C, local.D, local.E, local.A, local.B, R(43)); + P(local.B, local.C, local.D, local.E, local.A, R(44)); + P(local.A, local.B, local.C, local.D, local.E, R(45)); + P(local.E, local.A, local.B, local.C, local.D, R(46)); + P(local.D, local.E, local.A, local.B, local.C, R(47)); + P(local.C, local.D, local.E, local.A, local.B, R(48)); + P(local.B, local.C, local.D, local.E, local.A, R(49)); + P(local.A, local.B, local.C, local.D, local.E, R(50)); + P(local.E, local.A, local.B, local.C, local.D, R(51)); + P(local.D, local.E, local.A, local.B, local.C, R(52)); + P(local.C, local.D, local.E, local.A, local.B, R(53)); + P(local.B, local.C, local.D, local.E, local.A, R(54)); + P(local.A, local.B, local.C, local.D, local.E, R(55)); + P(local.E, local.A, local.B, local.C, local.D, R(56)); + P(local.D, local.E, local.A, local.B, local.C, R(57)); + P(local.C, local.D, local.E, local.A, local.B, R(58)); + P(local.B, local.C, local.D, local.E, local.A, R(59)); #undef K #undef F -#define F(x,y,z) ((x) ^ (y) ^ (z)) +#define F(x, y, z) ((x) ^ (y) ^ (z)) #define K 0xCA62C1D6 - P( local.A, local.B, local.C, local.D, local.E, R(60) ); - P( local.E, local.A, local.B, local.C, local.D, R(61) ); - P( local.D, local.E, local.A, local.B, local.C, R(62) ); - P( local.C, local.D, local.E, local.A, local.B, R(63) ); - P( local.B, local.C, local.D, local.E, local.A, R(64) ); - P( local.A, local.B, local.C, local.D, local.E, R(65) ); - P( local.E, local.A, local.B, local.C, local.D, R(66) ); - P( local.D, local.E, local.A, local.B, local.C, R(67) ); - P( local.C, local.D, local.E, local.A, local.B, R(68) ); - P( local.B, local.C, local.D, local.E, local.A, R(69) ); - P( local.A, local.B, local.C, local.D, local.E, R(70) ); - P( local.E, local.A, local.B, local.C, local.D, R(71) ); - P( local.D, local.E, local.A, local.B, local.C, R(72) ); - P( local.C, local.D, local.E, local.A, local.B, R(73) ); - P( local.B, local.C, local.D, local.E, local.A, R(74) ); - P( local.A, local.B, local.C, local.D, local.E, R(75) ); - P( local.E, local.A, local.B, local.C, local.D, R(76) ); - P( local.D, local.E, local.A, local.B, local.C, R(77) ); - P( local.C, local.D, local.E, local.A, local.B, R(78) ); - P( local.B, local.C, local.D, local.E, local.A, R(79) ); + P(local.A, local.B, local.C, local.D, local.E, R(60)); + P(local.E, local.A, local.B, local.C, local.D, R(61)); + P(local.D, local.E, local.A, local.B, local.C, R(62)); + P(local.C, local.D, local.E, local.A, local.B, R(63)); + P(local.B, local.C, local.D, local.E, local.A, R(64)); + P(local.A, local.B, local.C, local.D, local.E, R(65)); + P(local.E, local.A, local.B, local.C, local.D, R(66)); + P(local.D, local.E, local.A, local.B, local.C, R(67)); + P(local.C, local.D, local.E, local.A, local.B, R(68)); + P(local.B, local.C, local.D, local.E, local.A, R(69)); + P(local.A, local.B, local.C, local.D, local.E, R(70)); + P(local.E, local.A, local.B, local.C, local.D, R(71)); + P(local.D, local.E, local.A, local.B, local.C, R(72)); + P(local.C, local.D, local.E, local.A, local.B, R(73)); + P(local.B, local.C, local.D, local.E, local.A, R(74)); + P(local.A, local.B, local.C, local.D, local.E, R(75)); + P(local.E, local.A, local.B, local.C, local.D, R(76)); + P(local.D, local.E, local.A, local.B, local.C, R(77)); + P(local.C, local.D, local.E, local.A, local.B, R(78)); + P(local.B, local.C, local.D, local.E, local.A, R(79)); #undef K #undef F @@ -237,9 +237,9 @@ int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, ctx->state[4] += local.E; /* Zeroise buffers and variables to clear sensitive data from memory. */ - mbedtls_platform_zeroize( &local, sizeof( local ) ); + mbedtls_platform_zeroize(&local, sizeof(local)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA1_PROCESS_ALT */ @@ -247,16 +247,17 @@ int mbedtls_internal_sha1_process( mbedtls_sha1_context *ctx, /* * SHA-1 process buffer */ -int mbedtls_sha1_update( mbedtls_sha1_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_sha1_update(mbedtls_sha1_context *ctx, + const unsigned char *input, + size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t fill; uint32_t left; - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return 0; + } left = ctx->total[0] & 0x3F; fill = 64 - left; @@ -264,41 +265,43 @@ int mbedtls_sha1_update( mbedtls_sha1_context *ctx, ctx->total[0] += (uint32_t) ilen; ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (uint32_t) ilen ) + if (ctx->total[0] < (uint32_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *) (ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_sha1_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) { + return ret; + } input += fill; ilen -= fill; left = 0; } - while( ilen >= 64 ) - { - if( ( ret = mbedtls_internal_sha1_process( ctx, input ) ) != 0 ) - return( ret ); + while (ilen >= 64) { + if ((ret = mbedtls_internal_sha1_process(ctx, input)) != 0) { + return ret; + } input += 64; ilen -= 64; } - if( ilen > 0 ) - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *) (ctx->buffer + left), input, ilen); + } - return( 0 ); + return 0; } /* * SHA-1 final digest */ -int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, - unsigned char output[20] ) +int mbedtls_sha1_finish(mbedtls_sha1_context *ctx, + unsigned char output[20]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint32_t used; @@ -311,45 +314,44 @@ int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, ctx->buffer[used++] = 0x80; - if( used <= 56 ) - { + if (used <= 56) { /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 56 - used ); - } - else - { + memset(ctx->buffer + used, 0, 56 - used); + } else { /* We'll need an extra block */ - memset( ctx->buffer + used, 0, 64 - used ); + memset(ctx->buffer + used, 0, 64 - used); - if( ( ret = mbedtls_internal_sha1_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) { + return ret; + } - memset( ctx->buffer, 0, 56 ); + memset(ctx->buffer, 0, 56); } /* * Add message length */ - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 29) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - MBEDTLS_PUT_UINT32_BE( high, ctx->buffer, 56 ); - MBEDTLS_PUT_UINT32_BE( low, ctx->buffer, 60 ); + MBEDTLS_PUT_UINT32_BE(high, ctx->buffer, 56); + MBEDTLS_PUT_UINT32_BE(low, ctx->buffer, 60); - if( ( ret = mbedtls_internal_sha1_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha1_process(ctx, ctx->buffer)) != 0) { + return ret; + } /* * Output final state */ - MBEDTLS_PUT_UINT32_BE( ctx->state[0], output, 0 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[1], output, 4 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[2], output, 8 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[3], output, 12 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[4], output, 16 ); + MBEDTLS_PUT_UINT32_BE(ctx->state[0], output, 0); + MBEDTLS_PUT_UINT32_BE(ctx->state[1], output, 4); + MBEDTLS_PUT_UINT32_BE(ctx->state[2], output, 8); + MBEDTLS_PUT_UINT32_BE(ctx->state[3], output, 12); + MBEDTLS_PUT_UINT32_BE(ctx->state[4], output, 16); - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA1_ALT */ @@ -357,28 +359,31 @@ int mbedtls_sha1_finish( mbedtls_sha1_context *ctx, /* * output = SHA-1( input buffer ) */ -int mbedtls_sha1( const unsigned char *input, - size_t ilen, - unsigned char output[20] ) +int mbedtls_sha1(const unsigned char *input, + size_t ilen, + unsigned char output[20]) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha1_context ctx; - mbedtls_sha1_init( &ctx ); + mbedtls_sha1_init(&ctx); - if( ( ret = mbedtls_sha1_starts( &ctx ) ) != 0 ) + if ((ret = mbedtls_sha1_starts(&ctx)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha1_update( &ctx, input, ilen ) ) != 0 ) + if ((ret = mbedtls_sha1_update(&ctx, input, ilen)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha1_finish( &ctx, output ) ) != 0 ) + if ((ret = mbedtls_sha1_finish(&ctx, output)) != 0) { goto exit; + } exit: - mbedtls_sha1_free( &ctx ); + mbedtls_sha1_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_SELF_TEST) @@ -410,71 +415,73 @@ static const unsigned char sha1_test_sum[3][20] = /* * Checkup routine */ -int mbedtls_sha1_self_test( int verbose ) +int mbedtls_sha1_self_test(int verbose) { int i, j, buflen, ret = 0; unsigned char buf[1024]; unsigned char sha1sum[20]; mbedtls_sha1_context ctx; - mbedtls_sha1_init( &ctx ); + mbedtls_sha1_init(&ctx); /* * SHA-1 */ - for( i = 0; i < 3; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " SHA-1 test #%d: ", i + 1 ); + for (i = 0; i < 3; i++) { + if (verbose != 0) { + mbedtls_printf(" SHA-1 test #%d: ", i + 1); + } - if( ( ret = mbedtls_sha1_starts( &ctx ) ) != 0 ) + if ((ret = mbedtls_sha1_starts(&ctx)) != 0) { goto fail; + } - if( i == 2 ) - { - memset( buf, 'a', buflen = 1000 ); + if (i == 2) { + memset(buf, 'a', buflen = 1000); - for( j = 0; j < 1000; j++ ) - { - ret = mbedtls_sha1_update( &ctx, buf, buflen ); - if( ret != 0 ) + for (j = 0; j < 1000; j++) { + ret = mbedtls_sha1_update(&ctx, buf, buflen); + if (ret != 0) { goto fail; + } + } + } else { + ret = mbedtls_sha1_update(&ctx, sha1_test_buf[i], + sha1_test_buflen[i]); + if (ret != 0) { + goto fail; } } - else - { - ret = mbedtls_sha1_update( &ctx, sha1_test_buf[i], - sha1_test_buflen[i] ); - if( ret != 0 ) - goto fail; + + if ((ret = mbedtls_sha1_finish(&ctx, sha1sum)) != 0) { + goto fail; } - if( ( ret = mbedtls_sha1_finish( &ctx, sha1sum ) ) != 0 ) - goto fail; - - if( memcmp( sha1sum, sha1_test_sum[i], 20 ) != 0 ) - { + if (memcmp(sha1sum, sha1_test_sum[i], 20) != 0) { ret = 1; goto fail; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } goto exit; fail: - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } exit: - mbedtls_sha1_free( &ctx ); + mbedtls_sha1_free(&ctx); - return( ret ); + return ret; } #endif /* MBEDTLS_SELF_TEST */ diff --git a/library/sha256.c b/library/sha256.c index 6e6a58f88..16fd20d8c 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -36,22 +36,22 @@ #if defined(__aarch64__) # if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) || \ - defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) + defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) # include # endif # if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) # if defined(__unix__) # if defined(__linux__) - /* Our preferred method of detection is getauxval() */ +/* Our preferred method of detection is getauxval() */ # include # endif - /* Use SIGILL on Unix, and fall back to it on Linux */ +/* Use SIGILL on Unix, and fall back to it on Linux */ # include # endif # endif #elif defined(_M_ARM64) # if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) || \ - defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) + defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) # include # endif #else @@ -65,24 +65,24 @@ * MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT if no detection mechanism found */ #if defined(HWCAP_SHA2) -static int mbedtls_a64_crypto_sha256_determine_support( void ) +static int mbedtls_a64_crypto_sha256_determine_support(void) { - return( ( getauxval( AT_HWCAP ) & HWCAP_SHA2 ) ? 1 : 0 ); + return (getauxval(AT_HWCAP) & HWCAP_SHA2) ? 1 : 0; } #elif defined(__APPLE__) -static int mbedtls_a64_crypto_sha256_determine_support( void ) +static int mbedtls_a64_crypto_sha256_determine_support(void) { - return( 1 ); + return 1; } #elif defined(_M_ARM64) #define WIN32_LEAN_AND_MEAN #include #include -static int mbedtls_a64_crypto_sha256_determine_support( void ) +static int mbedtls_a64_crypto_sha256_determine_support(void) { - return( IsProcessorFeaturePresent( PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE ) ? - 1 : 0 ); + return IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) ? + 1 : 0; } #elif defined(__unix__) && defined(SIG_SETMASK) /* Detection with SIGILL, setjmp() and longjmp() */ @@ -100,39 +100,39 @@ static jmp_buf return_from_sigill; /* * A64 SHA256 support detection via SIGILL */ -static void sigill_handler( int signal ) +static void sigill_handler(int signal) { (void) signal; - longjmp( return_from_sigill, 1 ); + longjmp(return_from_sigill, 1); } -static int mbedtls_a64_crypto_sha256_determine_support( void ) +static int mbedtls_a64_crypto_sha256_determine_support(void) { struct sigaction old_action, new_action; sigset_t old_mask; - if( sigprocmask( 0, NULL, &old_mask ) ) - return( 0 ); + if (sigprocmask(0, NULL, &old_mask)) { + return 0; + } - sigemptyset( &new_action.sa_mask ); + sigemptyset(&new_action.sa_mask); new_action.sa_flags = 0; new_action.sa_handler = sigill_handler; - sigaction( SIGILL, &new_action, &old_action ); + sigaction(SIGILL, &new_action, &old_action); static int ret = 0; - if( setjmp( return_from_sigill ) == 0 ) /* First return only */ - { + if (setjmp(return_from_sigill) == 0) { /* First return only */ /* If this traps, we will return a second time from setjmp() with 1 */ - asm( "sha256h q0, q0, v0.4s" : : : "v0" ); + asm ("sha256h q0, q0, v0.4s" : : : "v0"); ret = 1; } - sigaction( SIGILL, &old_action, NULL ); - sigprocmask( SIG_SETMASK, &old_mask, NULL ); + sigaction(SIGILL, &old_action, NULL); + sigprocmask(SIG_SETMASK, &old_mask, NULL); - return( ret ); + return ret; } #else #warning "No mechanism to detect A64_CRYPTO found, using C code only" @@ -145,21 +145,22 @@ static int mbedtls_a64_crypto_sha256_determine_support( void ) #define SHA256_BLOCK_SIZE 64 -void mbedtls_sha256_init( mbedtls_sha256_context *ctx ) +void mbedtls_sha256_init(mbedtls_sha256_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_sha256_context ) ); + memset(ctx, 0, sizeof(mbedtls_sha256_context)); } -void mbedtls_sha256_free( mbedtls_sha256_context *ctx ) +void mbedtls_sha256_free(mbedtls_sha256_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_sha256_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_sha256_context)); } -void mbedtls_sha256_clone( mbedtls_sha256_context *dst, - const mbedtls_sha256_context *src ) +void mbedtls_sha256_clone(mbedtls_sha256_context *dst, + const mbedtls_sha256_context *src) { *dst = *src; } @@ -167,24 +168,26 @@ void mbedtls_sha256_clone( mbedtls_sha256_context *dst, /* * SHA-256 context setup */ -int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) +int mbedtls_sha256_starts(mbedtls_sha256_context *ctx, int is224) { #if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) - if( is224 != 0 && is224 != 1 ) + if (is224 != 0 && is224 != 1) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #elif defined(MBEDTLS_SHA256_C) - if( is224 != 0 ) + if (is224 != 0) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #else /* defined MBEDTLS_SHA224_C only */ - if( is224 == 0 ) + if (is224 == 0) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #endif ctx->total[0] = 0; ctx->total[1] = 0; - if( is224 == 0 ) - { + if (is224 == 0) { #if defined(MBEDTLS_SHA256_C) ctx->state[0] = 0x6A09E667; ctx->state[1] = 0xBB67AE85; @@ -195,9 +198,7 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) ctx->state[6] = 0x1F83D9AB; ctx->state[7] = 0x5BE0CD19; #endif - } - else - { + } else { #if defined(MBEDTLS_SHA224_C) ctx->state[0] = 0xC1059ED8; ctx->state[1] = 0x367CD507; @@ -214,7 +215,7 @@ int mbedtls_sha256_starts( mbedtls_sha256_context *ctx, int is224 ) ctx->is224 = is224; #endif - return( 0 ); + return 0; } #if !defined(MBEDTLS_SHA256_PROCESS_ALT) @@ -249,100 +250,98 @@ static const uint32_t K[] = #endif static size_t mbedtls_internal_sha256_process_many_a64_crypto( - mbedtls_sha256_context *ctx, const uint8_t *msg, size_t len ) + mbedtls_sha256_context *ctx, const uint8_t *msg, size_t len) { - uint32x4_t abcd = vld1q_u32( &ctx->state[0] ); - uint32x4_t efgh = vld1q_u32( &ctx->state[4] ); + uint32x4_t abcd = vld1q_u32(&ctx->state[0]); + uint32x4_t efgh = vld1q_u32(&ctx->state[4]); size_t processed = 0; - for( ; + for (; len >= SHA256_BLOCK_SIZE; processed += SHA256_BLOCK_SIZE, - msg += SHA256_BLOCK_SIZE, - len -= SHA256_BLOCK_SIZE ) - { + msg += SHA256_BLOCK_SIZE, + len -= SHA256_BLOCK_SIZE) { uint32x4_t tmp, abcd_prev; uint32x4_t abcd_orig = abcd; uint32x4_t efgh_orig = efgh; - uint32x4_t sched0 = (uint32x4_t) vld1q_u8( msg + 16 * 0 ); - uint32x4_t sched1 = (uint32x4_t) vld1q_u8( msg + 16 * 1 ); - uint32x4_t sched2 = (uint32x4_t) vld1q_u8( msg + 16 * 2 ); - uint32x4_t sched3 = (uint32x4_t) vld1q_u8( msg + 16 * 3 ); + uint32x4_t sched0 = (uint32x4_t) vld1q_u8(msg + 16 * 0); + uint32x4_t sched1 = (uint32x4_t) vld1q_u8(msg + 16 * 1); + uint32x4_t sched2 = (uint32x4_t) vld1q_u8(msg + 16 * 2); + uint32x4_t sched3 = (uint32x4_t) vld1q_u8(msg + 16 * 3); #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ /* Will be true if not defined */ /* Untested on BE */ - sched0 = vreinterpretq_u32_u8( vrev32q_u8( vreinterpretq_u8_u32( sched0 ) ) ); - sched1 = vreinterpretq_u32_u8( vrev32q_u8( vreinterpretq_u8_u32( sched1 ) ) ); - sched2 = vreinterpretq_u32_u8( vrev32q_u8( vreinterpretq_u8_u32( sched2 ) ) ); - sched3 = vreinterpretq_u32_u8( vrev32q_u8( vreinterpretq_u8_u32( sched3 ) ) ); + sched0 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(sched0))); + sched1 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(sched1))); + sched2 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(sched2))); + sched3 = vreinterpretq_u32_u8(vrev32q_u8(vreinterpretq_u8_u32(sched3))); #endif /* Rounds 0 to 3 */ - tmp = vaddq_u32( sched0, vld1q_u32( &K[0] ) ); + tmp = vaddq_u32(sched0, vld1q_u32(&K[0])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds 4 to 7 */ - tmp = vaddq_u32( sched1, vld1q_u32( &K[4] ) ); + tmp = vaddq_u32(sched1, vld1q_u32(&K[4])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds 8 to 11 */ - tmp = vaddq_u32( sched2, vld1q_u32( &K[8] ) ); + tmp = vaddq_u32(sched2, vld1q_u32(&K[8])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds 12 to 15 */ - tmp = vaddq_u32( sched3, vld1q_u32( &K[12] ) ); + tmp = vaddq_u32(sched3, vld1q_u32(&K[12])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); - for( int t = 16; t < 64; t += 16 ) - { + for (int t = 16; t < 64; t += 16) { /* Rounds t to t + 3 */ - sched0 = vsha256su1q_u32( vsha256su0q_u32( sched0, sched1 ), sched2, sched3 ); - tmp = vaddq_u32( sched0, vld1q_u32( &K[t] ) ); + sched0 = vsha256su1q_u32(vsha256su0q_u32(sched0, sched1), sched2, sched3); + tmp = vaddq_u32(sched0, vld1q_u32(&K[t])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds t + 4 to t + 7 */ - sched1 = vsha256su1q_u32( vsha256su0q_u32( sched1, sched2 ), sched3, sched0 ); - tmp = vaddq_u32( sched1, vld1q_u32( &K[t + 4] ) ); + sched1 = vsha256su1q_u32(vsha256su0q_u32(sched1, sched2), sched3, sched0); + tmp = vaddq_u32(sched1, vld1q_u32(&K[t + 4])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds t + 8 to t + 11 */ - sched2 = vsha256su1q_u32( vsha256su0q_u32( sched2, sched3 ), sched0, sched1 ); - tmp = vaddq_u32( sched2, vld1q_u32( &K[t + 8] ) ); + sched2 = vsha256su1q_u32(vsha256su0q_u32(sched2, sched3), sched0, sched1); + tmp = vaddq_u32(sched2, vld1q_u32(&K[t + 8])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); /* Rounds t + 12 to t + 15 */ - sched3 = vsha256su1q_u32( vsha256su0q_u32( sched3, sched0 ), sched1, sched2 ); - tmp = vaddq_u32( sched3, vld1q_u32( &K[t + 12] ) ); + sched3 = vsha256su1q_u32(vsha256su0q_u32(sched3, sched0), sched1, sched2); + tmp = vaddq_u32(sched3, vld1q_u32(&K[t + 12])); abcd_prev = abcd; - abcd = vsha256hq_u32( abcd_prev, efgh, tmp ); - efgh = vsha256h2q_u32( efgh, abcd_prev, tmp ); + abcd = vsha256hq_u32(abcd_prev, efgh, tmp); + efgh = vsha256h2q_u32(efgh, abcd_prev, tmp); } - abcd = vaddq_u32( abcd, abcd_orig ); - efgh = vaddq_u32( efgh, efgh_orig ); + abcd = vaddq_u32(abcd, abcd_orig); + efgh = vaddq_u32(efgh, efgh_orig); } - vst1q_u32( &ctx->state[0], abcd ); - vst1q_u32( &ctx->state[4], efgh ); + vst1q_u32(&ctx->state[0], abcd); + vst1q_u32(&ctx->state[4], efgh); - return( processed ); + return processed; } #if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) @@ -352,11 +351,12 @@ static size_t mbedtls_internal_sha256_process_many_a64_crypto( */ static #endif -int mbedtls_internal_sha256_process_a64_crypto( mbedtls_sha256_context *ctx, - const unsigned char data[SHA256_BLOCK_SIZE] ) +int mbedtls_internal_sha256_process_a64_crypto(mbedtls_sha256_context *ctx, + const unsigned char data[SHA256_BLOCK_SIZE]) { - return( ( mbedtls_internal_sha256_process_many_a64_crypto( ctx, data, - SHA256_BLOCK_SIZE ) == SHA256_BLOCK_SIZE ) ? 0 : -1 ); + return (mbedtls_internal_sha256_process_many_a64_crypto(ctx, data, + SHA256_BLOCK_SIZE) == + SHA256_BLOCK_SIZE) ? 0 : -1; } #endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT || MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ @@ -371,17 +371,17 @@ int mbedtls_internal_sha256_process_a64_crypto( mbedtls_sha256_context *ctx, #if !defined(MBEDTLS_SHA256_PROCESS_ALT) && \ !defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) -#define SHR(x,n) (((x) & 0xFFFFFFFF) >> (n)) -#define ROTR(x,n) (SHR(x,n) | ((x) << (32 - (n)))) +#define SHR(x, n) (((x) & 0xFFFFFFFF) >> (n)) +#define ROTR(x, n) (SHR(x, n) | ((x) << (32 - (n)))) -#define S0(x) (ROTR(x, 7) ^ ROTR(x,18) ^ SHR(x, 3)) -#define S1(x) (ROTR(x,17) ^ ROTR(x,19) ^ SHR(x,10)) +#define S0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3)) +#define S1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10)) -#define S2(x) (ROTR(x, 2) ^ ROTR(x,13) ^ ROTR(x,22)) -#define S3(x) (ROTR(x, 6) ^ ROTR(x,11) ^ ROTR(x,25)) +#define S2(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22)) +#define S3(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25)) -#define F0(x,y,z) (((x) & (y)) | ((z) & ((x) | (y)))) -#define F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define F0(x, y, z) (((x) & (y)) | ((z) & ((x) | (y)))) +#define F1(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) #define R(t) \ ( \ @@ -389,13 +389,13 @@ int mbedtls_internal_sha256_process_a64_crypto( mbedtls_sha256_context *ctx, S0(local.W[(t) - 15]) + local.W[(t) - 16] \ ) -#define P(a,b,c,d,e,f,g,h,x,K) \ +#define P(a, b, c, d, e, f, g, h, x, K) \ do \ { \ - local.temp1 = (h) + S3(e) + F1((e),(f),(g)) + (K) + (x); \ - local.temp2 = S2(a) + F0((a),(b),(c)); \ + local.temp1 = (h) + S3(e) + F1((e), (f), (g)) + (K) + (x); \ + local.temp2 = S2(a) + F0((a), (b), (c)); \ (d) += local.temp1; (h) = local.temp1 + local.temp2; \ - } while( 0 ) + } while (0) #if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) /* @@ -404,30 +404,30 @@ int mbedtls_internal_sha256_process_a64_crypto( mbedtls_sha256_context *ctx, */ static #endif -int mbedtls_internal_sha256_process_c( mbedtls_sha256_context *ctx, - const unsigned char data[SHA256_BLOCK_SIZE] ) +int mbedtls_internal_sha256_process_c(mbedtls_sha256_context *ctx, + const unsigned char data[SHA256_BLOCK_SIZE]) { - struct - { + struct { uint32_t temp1, temp2, W[64]; uint32_t A[8]; } local; unsigned int i; - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { local.A[i] = ctx->state[i]; + } #if defined(MBEDTLS_SHA256_SMALLER) - for( i = 0; i < 64; i++ ) - { - if( i < 16 ) - local.W[i] = MBEDTLS_GET_UINT32_BE( data, 4 * i ); - else - R( i ); + for (i = 0; i < 64; i++) { + if (i < 16) { + local.W[i] = MBEDTLS_GET_UINT32_BE(data, 4 * i); + } else { + R(i); + } - P( local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], - local.A[5], local.A[6], local.A[7], local.W[i], K[i] ); + P(local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], + local.A[5], local.A[6], local.A[7], local.W[i], K[i]); local.temp1 = local.A[7]; local.A[7] = local.A[6]; local.A[6] = local.A[5]; local.A[5] = local.A[4]; @@ -436,57 +436,57 @@ int mbedtls_internal_sha256_process_c( mbedtls_sha256_context *ctx, local.A[0] = local.temp1; } #else /* MBEDTLS_SHA256_SMALLER */ - for( i = 0; i < 16; i++ ) - local.W[i] = MBEDTLS_GET_UINT32_BE( data, 4 * i ); - - for( i = 0; i < 16; i += 8 ) - { - P( local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], - local.A[5], local.A[6], local.A[7], local.W[i+0], K[i+0] ); - P( local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], - local.A[4], local.A[5], local.A[6], local.W[i+1], K[i+1] ); - P( local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], - local.A[3], local.A[4], local.A[5], local.W[i+2], K[i+2] ); - P( local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], - local.A[2], local.A[3], local.A[4], local.W[i+3], K[i+3] ); - P( local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], - local.A[1], local.A[2], local.A[3], local.W[i+4], K[i+4] ); - P( local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], - local.A[0], local.A[1], local.A[2], local.W[i+5], K[i+5] ); - P( local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], - local.A[7], local.A[0], local.A[1], local.W[i+6], K[i+6] ); - P( local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], - local.A[6], local.A[7], local.A[0], local.W[i+7], K[i+7] ); + for (i = 0; i < 16; i++) { + local.W[i] = MBEDTLS_GET_UINT32_BE(data, 4 * i); } - for( i = 16; i < 64; i += 8 ) - { - P( local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], - local.A[5], local.A[6], local.A[7], R(i+0), K[i+0] ); - P( local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], - local.A[4], local.A[5], local.A[6], R(i+1), K[i+1] ); - P( local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], - local.A[3], local.A[4], local.A[5], R(i+2), K[i+2] ); - P( local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], - local.A[2], local.A[3], local.A[4], R(i+3), K[i+3] ); - P( local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], - local.A[1], local.A[2], local.A[3], R(i+4), K[i+4] ); - P( local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], - local.A[0], local.A[1], local.A[2], R(i+5), K[i+5] ); - P( local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], - local.A[7], local.A[0], local.A[1], R(i+6), K[i+6] ); - P( local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], - local.A[6], local.A[7], local.A[0], R(i+7), K[i+7] ); + for (i = 0; i < 16; i += 8) { + P(local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], + local.A[5], local.A[6], local.A[7], local.W[i+0], K[i+0]); + P(local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], + local.A[4], local.A[5], local.A[6], local.W[i+1], K[i+1]); + P(local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], + local.A[3], local.A[4], local.A[5], local.W[i+2], K[i+2]); + P(local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], + local.A[2], local.A[3], local.A[4], local.W[i+3], K[i+3]); + P(local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], + local.A[1], local.A[2], local.A[3], local.W[i+4], K[i+4]); + P(local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], + local.A[0], local.A[1], local.A[2], local.W[i+5], K[i+5]); + P(local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], + local.A[7], local.A[0], local.A[1], local.W[i+6], K[i+6]); + P(local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], + local.A[6], local.A[7], local.A[0], local.W[i+7], K[i+7]); + } + + for (i = 16; i < 64; i += 8) { + P(local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], + local.A[5], local.A[6], local.A[7], R(i+0), K[i+0]); + P(local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], + local.A[4], local.A[5], local.A[6], R(i+1), K[i+1]); + P(local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], + local.A[3], local.A[4], local.A[5], R(i+2), K[i+2]); + P(local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], + local.A[2], local.A[3], local.A[4], R(i+3), K[i+3]); + P(local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], + local.A[1], local.A[2], local.A[3], R(i+4), K[i+4]); + P(local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], + local.A[0], local.A[1], local.A[2], R(i+5), K[i+5]); + P(local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], + local.A[7], local.A[0], local.A[1], R(i+6), K[i+6]); + P(local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], + local.A[6], local.A[7], local.A[0], R(i+7), K[i+7]); } #endif /* MBEDTLS_SHA256_SMALLER */ - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { ctx->state[i] += local.A[i]; + } /* Zeroise buffers and variables to clear sensitive data from memory. */ - mbedtls_platform_zeroize( &local, sizeof( local ) ); + mbedtls_platform_zeroize(&local, sizeof(local)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA256_PROCESS_ALT && !MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ @@ -495,14 +495,14 @@ int mbedtls_internal_sha256_process_c( mbedtls_sha256_context *ctx, #if !defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY) static size_t mbedtls_internal_sha256_process_many_c( - mbedtls_sha256_context *ctx, const uint8_t *data, size_t len ) + mbedtls_sha256_context *ctx, const uint8_t *data, size_t len) { size_t processed = 0; - while( len >= SHA256_BLOCK_SIZE ) - { - if( mbedtls_internal_sha256_process_c( ctx, data ) != 0 ) - return( 0 ); + while (len >= SHA256_BLOCK_SIZE) { + if (mbedtls_internal_sha256_process_c(ctx, data) != 0) { + return 0; + } data += SHA256_BLOCK_SIZE; len -= SHA256_BLOCK_SIZE; @@ -510,7 +510,7 @@ static size_t mbedtls_internal_sha256_process_many_c( processed += SHA256_BLOCK_SIZE; } - return( processed ); + return processed; } #endif /* !MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */ @@ -518,36 +518,37 @@ static size_t mbedtls_internal_sha256_process_many_c( #if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT) -static int mbedtls_a64_crypto_sha256_has_support( void ) +static int mbedtls_a64_crypto_sha256_has_support(void) { static int done = 0; static int supported = 0; - if( !done ) - { + if (!done) { supported = mbedtls_a64_crypto_sha256_determine_support(); done = 1; } - return( supported ); + return supported; } -static size_t mbedtls_internal_sha256_process_many( mbedtls_sha256_context *ctx, - const uint8_t *msg, size_t len ) +static size_t mbedtls_internal_sha256_process_many(mbedtls_sha256_context *ctx, + const uint8_t *msg, size_t len) { - if( mbedtls_a64_crypto_sha256_has_support() ) - return( mbedtls_internal_sha256_process_many_a64_crypto( ctx, msg, len ) ); - else - return( mbedtls_internal_sha256_process_many_c( ctx, msg, len ) ); + if (mbedtls_a64_crypto_sha256_has_support()) { + return mbedtls_internal_sha256_process_many_a64_crypto(ctx, msg, len); + } else { + return mbedtls_internal_sha256_process_many_c(ctx, msg, len); + } } -int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, - const unsigned char data[SHA256_BLOCK_SIZE] ) +int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx, + const unsigned char data[SHA256_BLOCK_SIZE]) { - if( mbedtls_a64_crypto_sha256_has_support() ) - return( mbedtls_internal_sha256_process_a64_crypto( ctx, data ) ); - else - return( mbedtls_internal_sha256_process_c( ctx, data ) ); + if (mbedtls_a64_crypto_sha256_has_support()) { + return mbedtls_internal_sha256_process_a64_crypto(ctx, data); + } else { + return mbedtls_internal_sha256_process_c(ctx, data); + } } #endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */ @@ -556,16 +557,17 @@ int mbedtls_internal_sha256_process( mbedtls_sha256_context *ctx, /* * SHA-256 process buffer */ -int mbedtls_sha256_update( mbedtls_sha256_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_sha256_update(mbedtls_sha256_context *ctx, + const unsigned char *input, + size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t fill; uint32_t left; - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return 0; + } left = ctx->total[0] & 0x3F; fill = SHA256_BLOCK_SIZE - left; @@ -573,43 +575,45 @@ int mbedtls_sha256_update( mbedtls_sha256_context *ctx, ctx->total[0] += (uint32_t) ilen; ctx->total[0] &= 0xFFFFFFFF; - if( ctx->total[0] < (uint32_t) ilen ) + if (ctx->total[0] < (uint32_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *) (ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return ret; + } input += fill; ilen -= fill; left = 0; } - while( ilen >= SHA256_BLOCK_SIZE ) - { + while (ilen >= SHA256_BLOCK_SIZE) { size_t processed = - mbedtls_internal_sha256_process_many( ctx, input, ilen ); - if( processed < SHA256_BLOCK_SIZE ) - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + mbedtls_internal_sha256_process_many(ctx, input, ilen); + if (processed < SHA256_BLOCK_SIZE) { + return MBEDTLS_ERR_ERROR_GENERIC_ERROR; + } input += processed; ilen -= processed; } - if( ilen > 0 ) - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *) (ctx->buffer + left), input, ilen); + } - return( 0 ); + return 0; } /* * SHA-256 final digest */ -int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, - unsigned char *output ) +int mbedtls_sha256_finish(mbedtls_sha256_context *ctx, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint32_t used; @@ -622,54 +626,54 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, ctx->buffer[used++] = 0x80; - if( used <= 56 ) - { + if (used <= 56) { /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 56 - used ); - } - else - { + memset(ctx->buffer + used, 0, 56 - used); + } else { /* We'll need an extra block */ - memset( ctx->buffer + used, 0, SHA256_BLOCK_SIZE - used ); + memset(ctx->buffer + used, 0, SHA256_BLOCK_SIZE - used); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return ret; + } - memset( ctx->buffer, 0, 56 ); + memset(ctx->buffer, 0, 56); } /* * Add message length */ - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 29) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - MBEDTLS_PUT_UINT32_BE( high, ctx->buffer, 56 ); - MBEDTLS_PUT_UINT32_BE( low, ctx->buffer, 60 ); + MBEDTLS_PUT_UINT32_BE(high, ctx->buffer, 56); + MBEDTLS_PUT_UINT32_BE(low, ctx->buffer, 60); - if( ( ret = mbedtls_internal_sha256_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha256_process(ctx, ctx->buffer)) != 0) { + return ret; + } /* * Output final state */ - MBEDTLS_PUT_UINT32_BE( ctx->state[0], output, 0 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[1], output, 4 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[2], output, 8 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[3], output, 12 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[4], output, 16 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[5], output, 20 ); - MBEDTLS_PUT_UINT32_BE( ctx->state[6], output, 24 ); + MBEDTLS_PUT_UINT32_BE(ctx->state[0], output, 0); + MBEDTLS_PUT_UINT32_BE(ctx->state[1], output, 4); + MBEDTLS_PUT_UINT32_BE(ctx->state[2], output, 8); + MBEDTLS_PUT_UINT32_BE(ctx->state[3], output, 12); + MBEDTLS_PUT_UINT32_BE(ctx->state[4], output, 16); + MBEDTLS_PUT_UINT32_BE(ctx->state[5], output, 20); + MBEDTLS_PUT_UINT32_BE(ctx->state[6], output, 24); int truncated = 0; #if defined(MBEDTLS_SHA224_C) truncated = ctx->is224; #endif - if( !truncated ) - MBEDTLS_PUT_UINT32_BE( ctx->state[7], output, 28 ); + if (!truncated) { + MBEDTLS_PUT_UINT32_BE(ctx->state[7], output, 28); + } - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA256_ALT */ @@ -677,40 +681,46 @@ int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, /* * output = SHA-256( input buffer ) */ -int mbedtls_sha256( const unsigned char *input, - size_t ilen, - unsigned char *output, - int is224 ) +int mbedtls_sha256(const unsigned char *input, + size_t ilen, + unsigned char *output, + int is224) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha256_context ctx; #if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) - if( is224 != 0 && is224 != 1 ) + if (is224 != 0 && is224 != 1) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #elif defined(MBEDTLS_SHA256_C) - if( is224 != 0 ) + if (is224 != 0) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #else /* defined MBEDTLS_SHA224_C only */ - if( is224 == 0 ) + if (is224 == 0) { return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA; + } #endif - mbedtls_sha256_init( &ctx ); + mbedtls_sha256_init(&ctx); - if( ( ret = mbedtls_sha256_starts( &ctx, is224 ) ) != 0 ) + if ((ret = mbedtls_sha256_starts(&ctx, is224)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha256_update( &ctx, input, ilen ) ) != 0 ) + if ((ret = mbedtls_sha256_update(&ctx, input, ilen)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha256_finish( &ctx, output ) ) != 0 ) + if ((ret = mbedtls_sha256_finish(&ctx, output)) != 0) { goto exit; + } exit: - mbedtls_sha256_free( &ctx ); + mbedtls_sha256_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_SELF_TEST) @@ -776,7 +786,7 @@ static sha_test_sum_t sha256_test_sum[] = /* * Checkup routine */ -static int mbedtls_sha256_common_self_test( int verbose, int is224 ) +static int mbedtls_sha256_common_self_test(int verbose, int is224) { int i, buflen, ret = 0; unsigned char *buf; @@ -784,93 +794,95 @@ static int mbedtls_sha256_common_self_test( int verbose, int is224 ) mbedtls_sha256_context ctx; #if defined(MBEDTLS_SHA224_C) && defined(MBEDTLS_SHA256_C) - sha_test_sum_t* sha_test_sum = ( is224 ) ? sha224_test_sum : sha256_test_sum; + sha_test_sum_t *sha_test_sum = (is224) ? sha224_test_sum : sha256_test_sum; #elif defined(MBEDTLS_SHA256_C) - sha_test_sum_t* sha_test_sum = sha256_test_sum; + sha_test_sum_t *sha_test_sum = sha256_test_sum; #else - sha_test_sum_t* sha_test_sum = sha224_test_sum; + sha_test_sum_t *sha_test_sum = sha224_test_sum; #endif - buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); - if( NULL == buf ) - { - if( verbose != 0 ) - mbedtls_printf( "Buffer allocation failed\n" ); + buf = mbedtls_calloc(1024, sizeof(unsigned char)); + if (NULL == buf) { + if (verbose != 0) { + mbedtls_printf("Buffer allocation failed\n"); + } - return( 1 ); + return 1; } - mbedtls_sha256_init( &ctx ); + mbedtls_sha256_init(&ctx); - for( i = 0; i < 3; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " SHA-%d test #%d: ", 256 - is224 * 32, i + 1 ); + for (i = 0; i < 3; i++) { + if (verbose != 0) { + mbedtls_printf(" SHA-%d test #%d: ", 256 - is224 * 32, i + 1); + } - if( ( ret = mbedtls_sha256_starts( &ctx, is224 ) ) != 0 ) + if ((ret = mbedtls_sha256_starts(&ctx, is224)) != 0) { goto fail; + } - if( i == 2 ) - { - memset( buf, 'a', buflen = 1000 ); + if (i == 2) { + memset(buf, 'a', buflen = 1000); - for( int j = 0; j < 1000; j++ ) - { - ret = mbedtls_sha256_update( &ctx, buf, buflen ); - if( ret != 0 ) + for (int j = 0; j < 1000; j++) { + ret = mbedtls_sha256_update(&ctx, buf, buflen); + if (ret != 0) { goto fail; + } } - } - else - { - ret = mbedtls_sha256_update( &ctx, sha_test_buf[i], - sha_test_buflen[i] ); - if( ret != 0 ) - goto fail; + } else { + ret = mbedtls_sha256_update(&ctx, sha_test_buf[i], + sha_test_buflen[i]); + if (ret != 0) { + goto fail; + } } - if( ( ret = mbedtls_sha256_finish( &ctx, sha256sum ) ) != 0 ) + if ((ret = mbedtls_sha256_finish(&ctx, sha256sum)) != 0) { goto fail; + } - if( memcmp( sha256sum, sha_test_sum[i], 32 - is224 * 4 ) != 0 ) - { + if (memcmp(sha256sum, sha_test_sum[i], 32 - is224 * 4) != 0) { ret = 1; goto fail; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } goto exit; fail: - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } exit: - mbedtls_sha256_free( &ctx ); - mbedtls_free( buf ); + mbedtls_sha256_free(&ctx); + mbedtls_free(buf); - return( ret ); + return ret; } #if defined(MBEDTLS_SHA256_C) -int mbedtls_sha256_self_test( int verbose ) +int mbedtls_sha256_self_test(int verbose) { - return mbedtls_sha256_common_self_test( verbose, 0 ); + return mbedtls_sha256_common_self_test(verbose, 0); } #endif /* MBEDTLS_SHA256_C */ #if defined(MBEDTLS_SHA224_C) -int mbedtls_sha224_self_test( int verbose ) +int mbedtls_sha224_self_test(int verbose) { - return mbedtls_sha256_common_self_test( verbose, 1 ); + return mbedtls_sha256_common_self_test(verbose, 1); } #endif /* MBEDTLS_SHA224_C */ diff --git a/library/sha512.c b/library/sha512.c index 46e3dabb1..0ea64218b 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -42,22 +42,22 @@ #if defined(__aarch64__) # if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \ - defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) + defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) # include # endif # if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) # if defined(__unix__) # if defined(__linux__) - /* Our preferred method of detection is getauxval() */ +/* Our preferred method of detection is getauxval() */ # include # endif - /* Use SIGILL on Unix, and fall back to it on Linux */ +/* Use SIGILL on Unix, and fall back to it on Linux */ # include # endif # endif #elif defined(_M_ARM64) # if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) || \ - defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) + defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) # include # endif #else @@ -71,22 +71,22 @@ * MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT if no detection mechanism found */ #if defined(HWCAP_SHA512) -static int mbedtls_a64_crypto_sha512_determine_support( void ) +static int mbedtls_a64_crypto_sha512_determine_support(void) { - return( ( getauxval( AT_HWCAP ) & HWCAP_SHA512 ) ? 1 : 0 ); + return (getauxval(AT_HWCAP) & HWCAP_SHA512) ? 1 : 0; } #elif defined(__APPLE__) #include #include -static int mbedtls_a64_crypto_sha512_determine_support( void ) +static int mbedtls_a64_crypto_sha512_determine_support(void) { int value = 0; size_t value_len = sizeof(value); - int ret = sysctlbyname( "hw.optional.armv8_2_sha512", &value, &value_len, - NULL, 0 ); - return( ret == 0 && value != 0 ); + int ret = sysctlbyname("hw.optional.armv8_2_sha512", &value, &value_len, + NULL, 0); + return ret == 0 && value != 0; } #elif defined(_M_ARM64) /* @@ -115,39 +115,39 @@ static jmp_buf return_from_sigill; /* * A64 SHA512 support detection via SIGILL */ -static void sigill_handler( int signal ) +static void sigill_handler(int signal) { (void) signal; - longjmp( return_from_sigill, 1 ); + longjmp(return_from_sigill, 1); } -static int mbedtls_a64_crypto_sha512_determine_support( void ) +static int mbedtls_a64_crypto_sha512_determine_support(void) { struct sigaction old_action, new_action; sigset_t old_mask; - if( sigprocmask( 0, NULL, &old_mask ) ) - return( 0 ); + if (sigprocmask(0, NULL, &old_mask)) { + return 0; + } - sigemptyset( &new_action.sa_mask ); + sigemptyset(&new_action.sa_mask); new_action.sa_flags = 0; new_action.sa_handler = sigill_handler; - sigaction( SIGILL, &new_action, &old_action ); + sigaction(SIGILL, &new_action, &old_action); static int ret = 0; - if( setjmp( return_from_sigill ) == 0 ) /* First return only */ - { + if (setjmp(return_from_sigill) == 0) { /* First return only */ /* If this traps, we will return a second time from setjmp() with 1 */ - asm( "sha512h q0, q0, v0.2d" : : : "v0" ); + asm ("sha512h q0, q0, v0.2d" : : : "v0"); ret = 1; } - sigaction( SIGILL, &old_action, NULL ); - sigprocmask( SIG_SETMASK, &old_mask, NULL ); + sigaction(SIGILL, &old_action, NULL); + sigprocmask(SIG_SETMASK, &old_mask, NULL); - return( ret ); + return ret; } #else #warning "No mechanism to detect A64_CRYPTO found, using C code only" @@ -161,7 +161,7 @@ static int mbedtls_a64_crypto_sha512_determine_support( void ) #define SHA512_BLOCK_SIZE 128 #if defined(MBEDTLS_SHA512_SMALLER) -static void sha512_put_uint64_be( uint64_t n, unsigned char *b, uint8_t i ) +static void sha512_put_uint64_be(uint64_t n, unsigned char *b, uint8_t i) { MBEDTLS_PUT_UINT64_BE(n, b, i); } @@ -169,21 +169,22 @@ static void sha512_put_uint64_be( uint64_t n, unsigned char *b, uint8_t i ) #define sha512_put_uint64_be MBEDTLS_PUT_UINT64_BE #endif /* MBEDTLS_SHA512_SMALLER */ -void mbedtls_sha512_init( mbedtls_sha512_context *ctx ) +void mbedtls_sha512_init(mbedtls_sha512_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_sha512_context ) ); + memset(ctx, 0, sizeof(mbedtls_sha512_context)); } -void mbedtls_sha512_free( mbedtls_sha512_context *ctx ) +void mbedtls_sha512_free(mbedtls_sha512_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_sha512_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_sha512_context)); } -void mbedtls_sha512_clone( mbedtls_sha512_context *dst, - const mbedtls_sha512_context *src ) +void mbedtls_sha512_clone(mbedtls_sha512_context *dst, + const mbedtls_sha512_context *src) { *dst = *src; } @@ -191,24 +192,26 @@ void mbedtls_sha512_clone( mbedtls_sha512_context *dst, /* * SHA-512 context setup */ -int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) +int mbedtls_sha512_starts(mbedtls_sha512_context *ctx, int is384) { #if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) - if( is384 != 0 && is384 != 1 ) + if (is384 != 0 && is384 != 1) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #elif defined(MBEDTLS_SHA512_C) - if( is384 != 0 ) + if (is384 != 0) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #else /* defined MBEDTLS_SHA384_C only */ - if( is384 == 0 ) + if (is384 == 0) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #endif ctx->total[0] = 0; ctx->total[1] = 0; - if( is384 == 0 ) - { + if (is384 == 0) { #if defined(MBEDTLS_SHA512_C) ctx->state[0] = UL64(0x6A09E667F3BCC908); ctx->state[1] = UL64(0xBB67AE8584CAA73B); @@ -219,9 +222,7 @@ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) ctx->state[6] = UL64(0x1F83D9ABFB41BD6B); ctx->state[7] = UL64(0x5BE0CD19137E2179); #endif /* MBEDTLS_SHA512_C */ - } - else - { + } else { #if defined(MBEDTLS_SHA384_C) ctx->state[0] = UL64(0xCBBB9D5DC1059ED8); ctx->state[1] = UL64(0x629A292A367CD507); @@ -238,7 +239,7 @@ int mbedtls_sha512_starts( mbedtls_sha512_context *ctx, int is384 ) ctx->is384 = is384; #endif - return( 0 ); + return 0; } #if !defined(MBEDTLS_SHA512_PROCESS_ALT) @@ -310,46 +311,45 @@ static const uint64_t K[80] = */ #if defined(__clang__) && \ - (__clang_major__ < 13 || \ - (__clang_major__ == 13 && __clang_minor__ == 0 && __clang_patchlevel__ == 0)) + (__clang_major__ < 13 || \ + (__clang_major__ == 13 && __clang_minor__ == 0 && __clang_patchlevel__ == 0)) static inline uint64x2_t vsha512su0q_u64(uint64x2_t x, uint64x2_t y) { - asm( "sha512su0 %0.2D,%1.2D" : "+w" (x) : "w" (y) ); - return( x ); + asm ("sha512su0 %0.2D,%1.2D" : "+w" (x) : "w" (y)); + return x; } static inline uint64x2_t vsha512su1q_u64(uint64x2_t x, uint64x2_t y, uint64x2_t z) { - asm( "sha512su1 %0.2D,%1.2D,%2.2D" : "+w" (x) : "w" (y), "w" (z) ); - return( x ); + asm ("sha512su1 %0.2D,%1.2D,%2.2D" : "+w" (x) : "w" (y), "w" (z)); + return x; } static inline uint64x2_t vsha512hq_u64(uint64x2_t x, uint64x2_t y, uint64x2_t z) { - asm( "sha512h %0,%1,%2.2D" : "+w" (x) : "w" (y), "w" (z) ); - return( x ); + asm ("sha512h %0,%1,%2.2D" : "+w" (x) : "w" (y), "w" (z)); + return x; } static inline uint64x2_t vsha512h2q_u64(uint64x2_t x, uint64x2_t y, uint64x2_t z) { - asm( "sha512h2 %0,%1,%2.2D" : "+w" (x) : "w" (y), "w" (z) ); - return( x ); + asm ("sha512h2 %0,%1,%2.2D" : "+w" (x) : "w" (y), "w" (z)); + return x; } #endif /* __clang__ etc */ static size_t mbedtls_internal_sha512_process_many_a64_crypto( - mbedtls_sha512_context *ctx, const uint8_t *msg, size_t len ) + mbedtls_sha512_context *ctx, const uint8_t *msg, size_t len) { - uint64x2_t ab = vld1q_u64( &ctx->state[0] ); - uint64x2_t cd = vld1q_u64( &ctx->state[2] ); - uint64x2_t ef = vld1q_u64( &ctx->state[4] ); - uint64x2_t gh = vld1q_u64( &ctx->state[6] ); + uint64x2_t ab = vld1q_u64(&ctx->state[0]); + uint64x2_t cd = vld1q_u64(&ctx->state[2]); + uint64x2_t ef = vld1q_u64(&ctx->state[4]); + uint64x2_t gh = vld1q_u64(&ctx->state[6]); size_t processed = 0; - for ( ; - len >= SHA512_BLOCK_SIZE; - processed += SHA512_BLOCK_SIZE, - msg += SHA512_BLOCK_SIZE, - len -= SHA512_BLOCK_SIZE ) - { + for (; + len >= SHA512_BLOCK_SIZE; + processed += SHA512_BLOCK_SIZE, + msg += SHA512_BLOCK_SIZE, + len -= SHA512_BLOCK_SIZE) { uint64x2_t initial_sum, sum, intermed; uint64x2_t ab_orig = ab; @@ -357,161 +357,160 @@ static size_t mbedtls_internal_sha512_process_many_a64_crypto( uint64x2_t ef_orig = ef; uint64x2_t gh_orig = gh; - uint64x2_t s0 = (uint64x2_t) vld1q_u8( msg + 16 * 0 ); - uint64x2_t s1 = (uint64x2_t) vld1q_u8( msg + 16 * 1 ); - uint64x2_t s2 = (uint64x2_t) vld1q_u8( msg + 16 * 2 ); - uint64x2_t s3 = (uint64x2_t) vld1q_u8( msg + 16 * 3 ); - uint64x2_t s4 = (uint64x2_t) vld1q_u8( msg + 16 * 4 ); - uint64x2_t s5 = (uint64x2_t) vld1q_u8( msg + 16 * 5 ); - uint64x2_t s6 = (uint64x2_t) vld1q_u8( msg + 16 * 6 ); - uint64x2_t s7 = (uint64x2_t) vld1q_u8( msg + 16 * 7 ); + uint64x2_t s0 = (uint64x2_t) vld1q_u8(msg + 16 * 0); + uint64x2_t s1 = (uint64x2_t) vld1q_u8(msg + 16 * 1); + uint64x2_t s2 = (uint64x2_t) vld1q_u8(msg + 16 * 2); + uint64x2_t s3 = (uint64x2_t) vld1q_u8(msg + 16 * 3); + uint64x2_t s4 = (uint64x2_t) vld1q_u8(msg + 16 * 4); + uint64x2_t s5 = (uint64x2_t) vld1q_u8(msg + 16 * 5); + uint64x2_t s6 = (uint64x2_t) vld1q_u8(msg + 16 * 6); + uint64x2_t s7 = (uint64x2_t) vld1q_u8(msg + 16 * 7); #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ /* assume LE if these not defined; untested on BE */ - s0 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s0 ) ) ); - s1 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s1 ) ) ); - s2 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s2 ) ) ); - s3 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s3 ) ) ); - s4 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s4 ) ) ); - s5 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s5 ) ) ); - s6 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s6 ) ) ); - s7 = vreinterpretq_u64_u8( vrev64q_u8( vreinterpretq_u8_u64( s7 ) ) ); + s0 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s0))); + s1 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s1))); + s2 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s2))); + s3 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s3))); + s4 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s4))); + s5 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s5))); + s6 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s6))); + s7 = vreinterpretq_u64_u8(vrev64q_u8(vreinterpretq_u8_u64(s7))); #endif /* Rounds 0 and 1 */ - initial_sum = vaddq_u64( s0, vld1q_u64( &K[0] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), gh ); - intermed = vsha512hq_u64( sum, vextq_u64( ef, gh, 1 ), vextq_u64( cd, ef, 1 ) ); - gh = vsha512h2q_u64( intermed, cd, ab ); - cd = vaddq_u64( cd, intermed ); + initial_sum = vaddq_u64(s0, vld1q_u64(&K[0])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), gh); + intermed = vsha512hq_u64(sum, vextq_u64(ef, gh, 1), vextq_u64(cd, ef, 1)); + gh = vsha512h2q_u64(intermed, cd, ab); + cd = vaddq_u64(cd, intermed); /* Rounds 2 and 3 */ - initial_sum = vaddq_u64( s1, vld1q_u64( &K[2] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ef ); - intermed = vsha512hq_u64( sum, vextq_u64( cd, ef, 1 ), vextq_u64( ab, cd, 1 ) ); - ef = vsha512h2q_u64( intermed, ab, gh ); - ab = vaddq_u64( ab, intermed ); + initial_sum = vaddq_u64(s1, vld1q_u64(&K[2])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ef); + intermed = vsha512hq_u64(sum, vextq_u64(cd, ef, 1), vextq_u64(ab, cd, 1)); + ef = vsha512h2q_u64(intermed, ab, gh); + ab = vaddq_u64(ab, intermed); /* Rounds 4 and 5 */ - initial_sum = vaddq_u64( s2, vld1q_u64( &K[4] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), cd ); - intermed = vsha512hq_u64( sum, vextq_u64( ab, cd, 1 ), vextq_u64( gh, ab, 1 ) ); - cd = vsha512h2q_u64( intermed, gh, ef ); - gh = vaddq_u64( gh, intermed ); + initial_sum = vaddq_u64(s2, vld1q_u64(&K[4])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), cd); + intermed = vsha512hq_u64(sum, vextq_u64(ab, cd, 1), vextq_u64(gh, ab, 1)); + cd = vsha512h2q_u64(intermed, gh, ef); + gh = vaddq_u64(gh, intermed); /* Rounds 6 and 7 */ - initial_sum = vaddq_u64( s3, vld1q_u64( &K[6] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ab ); - intermed = vsha512hq_u64( sum, vextq_u64( gh, ab, 1 ), vextq_u64( ef, gh, 1 ) ); - ab = vsha512h2q_u64( intermed, ef, cd ); - ef = vaddq_u64( ef, intermed ); + initial_sum = vaddq_u64(s3, vld1q_u64(&K[6])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ab); + intermed = vsha512hq_u64(sum, vextq_u64(gh, ab, 1), vextq_u64(ef, gh, 1)); + ab = vsha512h2q_u64(intermed, ef, cd); + ef = vaddq_u64(ef, intermed); /* Rounds 8 and 9 */ - initial_sum = vaddq_u64( s4, vld1q_u64( &K[8] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), gh ); - intermed = vsha512hq_u64( sum, vextq_u64( ef, gh, 1 ), vextq_u64( cd, ef, 1 ) ); - gh = vsha512h2q_u64( intermed, cd, ab ); - cd = vaddq_u64( cd, intermed ); + initial_sum = vaddq_u64(s4, vld1q_u64(&K[8])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), gh); + intermed = vsha512hq_u64(sum, vextq_u64(ef, gh, 1), vextq_u64(cd, ef, 1)); + gh = vsha512h2q_u64(intermed, cd, ab); + cd = vaddq_u64(cd, intermed); /* Rounds 10 and 11 */ - initial_sum = vaddq_u64( s5, vld1q_u64( &K[10] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ef ); - intermed = vsha512hq_u64( sum, vextq_u64( cd, ef, 1 ), vextq_u64( ab, cd, 1 ) ); - ef = vsha512h2q_u64( intermed, ab, gh ); - ab = vaddq_u64( ab, intermed ); + initial_sum = vaddq_u64(s5, vld1q_u64(&K[10])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ef); + intermed = vsha512hq_u64(sum, vextq_u64(cd, ef, 1), vextq_u64(ab, cd, 1)); + ef = vsha512h2q_u64(intermed, ab, gh); + ab = vaddq_u64(ab, intermed); /* Rounds 12 and 13 */ - initial_sum = vaddq_u64( s6, vld1q_u64( &K[12] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), cd ); - intermed = vsha512hq_u64( sum, vextq_u64( ab, cd, 1 ), vextq_u64( gh, ab, 1 ) ); - cd = vsha512h2q_u64( intermed, gh, ef ); - gh = vaddq_u64( gh, intermed ); + initial_sum = vaddq_u64(s6, vld1q_u64(&K[12])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), cd); + intermed = vsha512hq_u64(sum, vextq_u64(ab, cd, 1), vextq_u64(gh, ab, 1)); + cd = vsha512h2q_u64(intermed, gh, ef); + gh = vaddq_u64(gh, intermed); /* Rounds 14 and 15 */ - initial_sum = vaddq_u64( s7, vld1q_u64( &K[14] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ab ); - intermed = vsha512hq_u64( sum, vextq_u64( gh, ab, 1 ), vextq_u64( ef, gh, 1 ) ); - ab = vsha512h2q_u64( intermed, ef, cd ); - ef = vaddq_u64( ef, intermed ); + initial_sum = vaddq_u64(s7, vld1q_u64(&K[14])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ab); + intermed = vsha512hq_u64(sum, vextq_u64(gh, ab, 1), vextq_u64(ef, gh, 1)); + ab = vsha512h2q_u64(intermed, ef, cd); + ef = vaddq_u64(ef, intermed); - for ( unsigned int t = 16; t < 80; t += 16 ) - { + for (unsigned int t = 16; t < 80; t += 16) { /* Rounds t and t + 1 */ - s0 = vsha512su1q_u64( vsha512su0q_u64( s0, s1 ), s7, vextq_u64( s4, s5, 1 ) ); - initial_sum = vaddq_u64( s0, vld1q_u64( &K[t] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), gh ); - intermed = vsha512hq_u64( sum, vextq_u64( ef, gh, 1 ), vextq_u64( cd, ef, 1 ) ); - gh = vsha512h2q_u64( intermed, cd, ab ); - cd = vaddq_u64( cd, intermed ); + s0 = vsha512su1q_u64(vsha512su0q_u64(s0, s1), s7, vextq_u64(s4, s5, 1)); + initial_sum = vaddq_u64(s0, vld1q_u64(&K[t])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), gh); + intermed = vsha512hq_u64(sum, vextq_u64(ef, gh, 1), vextq_u64(cd, ef, 1)); + gh = vsha512h2q_u64(intermed, cd, ab); + cd = vaddq_u64(cd, intermed); /* Rounds t + 2 and t + 3 */ - s1 = vsha512su1q_u64( vsha512su0q_u64( s1, s2 ), s0, vextq_u64( s5, s6, 1 ) ); - initial_sum = vaddq_u64( s1, vld1q_u64( &K[t + 2] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ef ); - intermed = vsha512hq_u64( sum, vextq_u64( cd, ef, 1 ), vextq_u64( ab, cd, 1 ) ); - ef = vsha512h2q_u64( intermed, ab, gh ); - ab = vaddq_u64( ab, intermed ); + s1 = vsha512su1q_u64(vsha512su0q_u64(s1, s2), s0, vextq_u64(s5, s6, 1)); + initial_sum = vaddq_u64(s1, vld1q_u64(&K[t + 2])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ef); + intermed = vsha512hq_u64(sum, vextq_u64(cd, ef, 1), vextq_u64(ab, cd, 1)); + ef = vsha512h2q_u64(intermed, ab, gh); + ab = vaddq_u64(ab, intermed); /* Rounds t + 4 and t + 5 */ - s2 = vsha512su1q_u64( vsha512su0q_u64( s2, s3 ), s1, vextq_u64( s6, s7, 1 ) ); - initial_sum = vaddq_u64( s2, vld1q_u64( &K[t + 4] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), cd ); - intermed = vsha512hq_u64( sum, vextq_u64( ab, cd, 1 ), vextq_u64( gh, ab, 1 ) ); - cd = vsha512h2q_u64( intermed, gh, ef ); - gh = vaddq_u64( gh, intermed ); + s2 = vsha512su1q_u64(vsha512su0q_u64(s2, s3), s1, vextq_u64(s6, s7, 1)); + initial_sum = vaddq_u64(s2, vld1q_u64(&K[t + 4])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), cd); + intermed = vsha512hq_u64(sum, vextq_u64(ab, cd, 1), vextq_u64(gh, ab, 1)); + cd = vsha512h2q_u64(intermed, gh, ef); + gh = vaddq_u64(gh, intermed); /* Rounds t + 6 and t + 7 */ - s3 = vsha512su1q_u64( vsha512su0q_u64( s3, s4 ), s2, vextq_u64( s7, s0, 1 ) ); - initial_sum = vaddq_u64( s3, vld1q_u64( &K[t + 6] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ab ); - intermed = vsha512hq_u64( sum, vextq_u64( gh, ab, 1 ), vextq_u64( ef, gh, 1 ) ); - ab = vsha512h2q_u64( intermed, ef, cd ); - ef = vaddq_u64( ef, intermed ); + s3 = vsha512su1q_u64(vsha512su0q_u64(s3, s4), s2, vextq_u64(s7, s0, 1)); + initial_sum = vaddq_u64(s3, vld1q_u64(&K[t + 6])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ab); + intermed = vsha512hq_u64(sum, vextq_u64(gh, ab, 1), vextq_u64(ef, gh, 1)); + ab = vsha512h2q_u64(intermed, ef, cd); + ef = vaddq_u64(ef, intermed); /* Rounds t + 8 and t + 9 */ - s4 = vsha512su1q_u64( vsha512su0q_u64( s4, s5 ), s3, vextq_u64( s0, s1, 1 ) ); - initial_sum = vaddq_u64( s4, vld1q_u64( &K[t + 8] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), gh ); - intermed = vsha512hq_u64( sum, vextq_u64( ef, gh, 1 ), vextq_u64( cd, ef, 1 ) ); - gh = vsha512h2q_u64( intermed, cd, ab ); - cd = vaddq_u64( cd, intermed ); + s4 = vsha512su1q_u64(vsha512su0q_u64(s4, s5), s3, vextq_u64(s0, s1, 1)); + initial_sum = vaddq_u64(s4, vld1q_u64(&K[t + 8])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), gh); + intermed = vsha512hq_u64(sum, vextq_u64(ef, gh, 1), vextq_u64(cd, ef, 1)); + gh = vsha512h2q_u64(intermed, cd, ab); + cd = vaddq_u64(cd, intermed); /* Rounds t + 10 and t + 11 */ - s5 = vsha512su1q_u64( vsha512su0q_u64( s5, s6 ), s4, vextq_u64( s1, s2, 1 ) ); - initial_sum = vaddq_u64( s5, vld1q_u64( &K[t + 10] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ef ); - intermed = vsha512hq_u64( sum, vextq_u64( cd, ef, 1 ), vextq_u64( ab, cd, 1 ) ); - ef = vsha512h2q_u64( intermed, ab, gh ); - ab = vaddq_u64( ab, intermed ); + s5 = vsha512su1q_u64(vsha512su0q_u64(s5, s6), s4, vextq_u64(s1, s2, 1)); + initial_sum = vaddq_u64(s5, vld1q_u64(&K[t + 10])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ef); + intermed = vsha512hq_u64(sum, vextq_u64(cd, ef, 1), vextq_u64(ab, cd, 1)); + ef = vsha512h2q_u64(intermed, ab, gh); + ab = vaddq_u64(ab, intermed); /* Rounds t + 12 and t + 13 */ - s6 = vsha512su1q_u64( vsha512su0q_u64( s6, s7 ), s5, vextq_u64( s2, s3, 1 ) ); - initial_sum = vaddq_u64( s6, vld1q_u64( &K[t + 12] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), cd ); - intermed = vsha512hq_u64( sum, vextq_u64( ab, cd, 1 ), vextq_u64( gh, ab, 1 ) ); - cd = vsha512h2q_u64( intermed, gh, ef ); - gh = vaddq_u64( gh, intermed ); + s6 = vsha512su1q_u64(vsha512su0q_u64(s6, s7), s5, vextq_u64(s2, s3, 1)); + initial_sum = vaddq_u64(s6, vld1q_u64(&K[t + 12])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), cd); + intermed = vsha512hq_u64(sum, vextq_u64(ab, cd, 1), vextq_u64(gh, ab, 1)); + cd = vsha512h2q_u64(intermed, gh, ef); + gh = vaddq_u64(gh, intermed); /* Rounds t + 14 and t + 15 */ - s7 = vsha512su1q_u64( vsha512su0q_u64( s7, s0 ), s6, vextq_u64( s3, s4, 1 ) ); - initial_sum = vaddq_u64( s7, vld1q_u64( &K[t + 14] ) ); - sum = vaddq_u64( vextq_u64( initial_sum, initial_sum, 1 ), ab ); - intermed = vsha512hq_u64( sum, vextq_u64( gh, ab, 1 ), vextq_u64( ef, gh, 1 ) ); - ab = vsha512h2q_u64( intermed, ef, cd ); - ef = vaddq_u64( ef, intermed ); + s7 = vsha512su1q_u64(vsha512su0q_u64(s7, s0), s6, vextq_u64(s3, s4, 1)); + initial_sum = vaddq_u64(s7, vld1q_u64(&K[t + 14])); + sum = vaddq_u64(vextq_u64(initial_sum, initial_sum, 1), ab); + intermed = vsha512hq_u64(sum, vextq_u64(gh, ab, 1), vextq_u64(ef, gh, 1)); + ab = vsha512h2q_u64(intermed, ef, cd); + ef = vaddq_u64(ef, intermed); } - ab = vaddq_u64( ab, ab_orig ); - cd = vaddq_u64( cd, cd_orig ); - ef = vaddq_u64( ef, ef_orig ); - gh = vaddq_u64( gh, gh_orig ); + ab = vaddq_u64(ab, ab_orig); + cd = vaddq_u64(cd, cd_orig); + ef = vaddq_u64(ef, ef_orig); + gh = vaddq_u64(gh, gh_orig); } - vst1q_u64( &ctx->state[0], ab ); - vst1q_u64( &ctx->state[2], cd ); - vst1q_u64( &ctx->state[4], ef ); - vst1q_u64( &ctx->state[6], gh ); + vst1q_u64(&ctx->state[0], ab); + vst1q_u64(&ctx->state[2], cd); + vst1q_u64(&ctx->state[4], ef); + vst1q_u64(&ctx->state[6], gh); - return( processed ); + return processed; } #if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) @@ -521,11 +520,12 @@ static size_t mbedtls_internal_sha512_process_many_a64_crypto( */ static #endif -int mbedtls_internal_sha512_process_a64_crypto( mbedtls_sha512_context *ctx, - const unsigned char data[SHA512_BLOCK_SIZE] ) +int mbedtls_internal_sha512_process_a64_crypto(mbedtls_sha512_context *ctx, + const unsigned char data[SHA512_BLOCK_SIZE]) { - return( mbedtls_internal_sha512_process_many_a64_crypto( ctx, data, - SHA512_BLOCK_SIZE ) == SHA512_BLOCK_SIZE ) ? 0 : -1; + return (mbedtls_internal_sha512_process_many_a64_crypto(ctx, data, + SHA512_BLOCK_SIZE) == + SHA512_BLOCK_SIZE) ? 0 : -1; } #endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT || MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ @@ -546,54 +546,50 @@ int mbedtls_internal_sha512_process_a64_crypto( mbedtls_sha512_context *ctx, */ static #endif -int mbedtls_internal_sha512_process_c( mbedtls_sha512_context *ctx, - const unsigned char data[SHA512_BLOCK_SIZE] ) +int mbedtls_internal_sha512_process_c(mbedtls_sha512_context *ctx, + const unsigned char data[SHA512_BLOCK_SIZE]) { int i; - struct - { + struct { uint64_t temp1, temp2, W[80]; uint64_t A[8]; } local; -#define SHR(x,n) ((x) >> (n)) -#define ROTR(x,n) (SHR((x),(n)) | ((x) << (64 - (n)))) +#define SHR(x, n) ((x) >> (n)) +#define ROTR(x, n) (SHR((x), (n)) | ((x) << (64 - (n)))) #define S0(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHR(x, 7)) -#define S1(x) (ROTR(x,19) ^ ROTR(x,61) ^ SHR(x, 6)) +#define S1(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHR(x, 6)) -#define S2(x) (ROTR(x,28) ^ ROTR(x,34) ^ ROTR(x,39)) -#define S3(x) (ROTR(x,14) ^ ROTR(x,18) ^ ROTR(x,41)) +#define S2(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39)) +#define S3(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41)) -#define F0(x,y,z) (((x) & (y)) | ((z) & ((x) | (y)))) -#define F1(x,y,z) ((z) ^ ((x) & ((y) ^ (z)))) +#define F0(x, y, z) (((x) & (y)) | ((z) & ((x) | (y)))) +#define F1(x, y, z) ((z) ^ ((x) & ((y) ^ (z)))) -#define P(a,b,c,d,e,f,g,h,x,K) \ +#define P(a, b, c, d, e, f, g, h, x, K) \ do \ { \ - local.temp1 = (h) + S3(e) + F1((e),(f),(g)) + (K) + (x); \ - local.temp2 = S2(a) + F0((a),(b),(c)); \ + local.temp1 = (h) + S3(e) + F1((e), (f), (g)) + (K) + (x); \ + local.temp2 = S2(a) + F0((a), (b), (c)); \ (d) += local.temp1; (h) = local.temp1 + local.temp2; \ - } while( 0 ) + } while (0) - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { local.A[i] = ctx->state[i]; + } #if defined(MBEDTLS_SHA512_SMALLER) - for( i = 0; i < 80; i++ ) - { - if( i < 16 ) - { - local.W[i] = MBEDTLS_GET_UINT64_BE( data, i << 3 ); - } - else - { + for (i = 0; i < 80; i++) { + if (i < 16) { + local.W[i] = MBEDTLS_GET_UINT64_BE(data, i << 3); + } else { local.W[i] = S1(local.W[i - 2]) + local.W[i - 7] + - S0(local.W[i - 15]) + local.W[i - 16]; + S0(local.W[i - 15]) + local.W[i - 16]; } - P( local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], - local.A[5], local.A[6], local.A[7], local.W[i], K[i] ); + P(local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], + local.A[5], local.A[6], local.A[7], local.W[i], K[i]); local.temp1 = local.A[7]; local.A[7] = local.A[6]; local.A[6] = local.A[5]; local.A[5] = local.A[4]; @@ -602,47 +598,44 @@ int mbedtls_internal_sha512_process_c( mbedtls_sha512_context *ctx, local.A[0] = local.temp1; } #else /* MBEDTLS_SHA512_SMALLER */ - for( i = 0; i < 16; i++ ) - { - local.W[i] = MBEDTLS_GET_UINT64_BE( data, i << 3 ); + for (i = 0; i < 16; i++) { + local.W[i] = MBEDTLS_GET_UINT64_BE(data, i << 3); } - for( ; i < 80; i++ ) - { + for (; i < 80; i++) { local.W[i] = S1(local.W[i - 2]) + local.W[i - 7] + - S0(local.W[i - 15]) + local.W[i - 16]; + S0(local.W[i - 15]) + local.W[i - 16]; } i = 0; - do - { - P( local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], - local.A[5], local.A[6], local.A[7], local.W[i], K[i] ); i++; - P( local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], - local.A[4], local.A[5], local.A[6], local.W[i], K[i] ); i++; - P( local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], - local.A[3], local.A[4], local.A[5], local.W[i], K[i] ); i++; - P( local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], - local.A[2], local.A[3], local.A[4], local.W[i], K[i] ); i++; - P( local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], - local.A[1], local.A[2], local.A[3], local.W[i], K[i] ); i++; - P( local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], - local.A[0], local.A[1], local.A[2], local.W[i], K[i] ); i++; - P( local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], - local.A[7], local.A[0], local.A[1], local.W[i], K[i] ); i++; - P( local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], - local.A[6], local.A[7], local.A[0], local.W[i], K[i] ); i++; - } - while( i < 80 ); + do { + P(local.A[0], local.A[1], local.A[2], local.A[3], local.A[4], + local.A[5], local.A[6], local.A[7], local.W[i], K[i]); i++; + P(local.A[7], local.A[0], local.A[1], local.A[2], local.A[3], + local.A[4], local.A[5], local.A[6], local.W[i], K[i]); i++; + P(local.A[6], local.A[7], local.A[0], local.A[1], local.A[2], + local.A[3], local.A[4], local.A[5], local.W[i], K[i]); i++; + P(local.A[5], local.A[6], local.A[7], local.A[0], local.A[1], + local.A[2], local.A[3], local.A[4], local.W[i], K[i]); i++; + P(local.A[4], local.A[5], local.A[6], local.A[7], local.A[0], + local.A[1], local.A[2], local.A[3], local.W[i], K[i]); i++; + P(local.A[3], local.A[4], local.A[5], local.A[6], local.A[7], + local.A[0], local.A[1], local.A[2], local.W[i], K[i]); i++; + P(local.A[2], local.A[3], local.A[4], local.A[5], local.A[6], + local.A[7], local.A[0], local.A[1], local.W[i], K[i]); i++; + P(local.A[1], local.A[2], local.A[3], local.A[4], local.A[5], + local.A[6], local.A[7], local.A[0], local.W[i], K[i]); i++; + } while (i < 80); #endif /* MBEDTLS_SHA512_SMALLER */ - for( i = 0; i < 8; i++ ) + for (i = 0; i < 8; i++) { ctx->state[i] += local.A[i]; + } /* Zeroise buffers and variables to clear sensitive data from memory. */ - mbedtls_platform_zeroize( &local, sizeof( local ) ); + mbedtls_platform_zeroize(&local, sizeof(local)); - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA512_PROCESS_ALT && !MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ @@ -651,14 +644,14 @@ int mbedtls_internal_sha512_process_c( mbedtls_sha512_context *ctx, #if !defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY) static size_t mbedtls_internal_sha512_process_many_c( - mbedtls_sha512_context *ctx, const uint8_t *data, size_t len) + mbedtls_sha512_context *ctx, const uint8_t *data, size_t len) { size_t processed = 0; - while( len >= SHA512_BLOCK_SIZE ) - { - if( mbedtls_internal_sha512_process_c( ctx, data ) != 0) - return( 0 ); + while (len >= SHA512_BLOCK_SIZE) { + if (mbedtls_internal_sha512_process_c(ctx, data) != 0) { + return 0; + } data += SHA512_BLOCK_SIZE; len -= SHA512_BLOCK_SIZE; @@ -666,7 +659,7 @@ static size_t mbedtls_internal_sha512_process_many_c( processed += SHA512_BLOCK_SIZE; } - return( processed ); + return processed; } #endif /* !MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */ @@ -674,36 +667,37 @@ static size_t mbedtls_internal_sha512_process_many_c( #if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT) -static int mbedtls_a64_crypto_sha512_has_support( void ) +static int mbedtls_a64_crypto_sha512_has_support(void) { static int done = 0; static int supported = 0; - if( !done ) - { + if (!done) { supported = mbedtls_a64_crypto_sha512_determine_support(); done = 1; } - return( supported ); + return supported; } -static size_t mbedtls_internal_sha512_process_many( mbedtls_sha512_context *ctx, - const uint8_t *msg, size_t len ) +static size_t mbedtls_internal_sha512_process_many(mbedtls_sha512_context *ctx, + const uint8_t *msg, size_t len) { - if( mbedtls_a64_crypto_sha512_has_support() ) - return( mbedtls_internal_sha512_process_many_a64_crypto( ctx, msg, len ) ); - else - return( mbedtls_internal_sha512_process_many_c( ctx, msg, len ) ); + if (mbedtls_a64_crypto_sha512_has_support()) { + return mbedtls_internal_sha512_process_many_a64_crypto(ctx, msg, len); + } else { + return mbedtls_internal_sha512_process_many_c(ctx, msg, len); + } } -int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, - const unsigned char data[SHA512_BLOCK_SIZE] ) +int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx, + const unsigned char data[SHA512_BLOCK_SIZE]) { - if( mbedtls_a64_crypto_sha512_has_support() ) - return( mbedtls_internal_sha512_process_a64_crypto( ctx, data ) ); - else - return( mbedtls_internal_sha512_process_c( ctx, data ) ); + if (mbedtls_a64_crypto_sha512_has_support()) { + return mbedtls_internal_sha512_process_a64_crypto(ctx, data); + } else { + return mbedtls_internal_sha512_process_c(ctx, data); + } } #endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */ @@ -711,59 +705,62 @@ int mbedtls_internal_sha512_process( mbedtls_sha512_context *ctx, /* * SHA-512 process buffer */ -int mbedtls_sha512_update( mbedtls_sha512_context *ctx, - const unsigned char *input, - size_t ilen ) +int mbedtls_sha512_update(mbedtls_sha512_context *ctx, + const unsigned char *input, + size_t ilen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t fill; unsigned int left; - if( ilen == 0 ) - return( 0 ); + if (ilen == 0) { + return 0; + } left = (unsigned int) (ctx->total[0] & 0x7F); fill = SHA512_BLOCK_SIZE - left; ctx->total[0] += (uint64_t) ilen; - if( ctx->total[0] < (uint64_t) ilen ) + if (ctx->total[0] < (uint64_t) ilen) { ctx->total[1]++; + } - if( left && ilen >= fill ) - { - memcpy( (void *) (ctx->buffer + left), input, fill ); + if (left && ilen >= fill) { + memcpy((void *) (ctx->buffer + left), input, fill); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return ret; + } input += fill; ilen -= fill; left = 0; } - while( ilen >= SHA512_BLOCK_SIZE ) - { + while (ilen >= SHA512_BLOCK_SIZE) { size_t processed = - mbedtls_internal_sha512_process_many( ctx, input, ilen ); - if( processed < SHA512_BLOCK_SIZE ) - return( MBEDTLS_ERR_ERROR_GENERIC_ERROR ); + mbedtls_internal_sha512_process_many(ctx, input, ilen); + if (processed < SHA512_BLOCK_SIZE) { + return MBEDTLS_ERR_ERROR_GENERIC_ERROR; + } input += processed; ilen -= processed; } - if( ilen > 0 ) - memcpy( (void *) (ctx->buffer + left), input, ilen ); + if (ilen > 0) { + memcpy((void *) (ctx->buffer + left), input, ilen); + } - return( 0 ); + return 0; } /* * SHA-512 final digest */ -int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, - unsigned char *output ) +int mbedtls_sha512_finish(mbedtls_sha512_context *ctx, + unsigned char *output) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned used; @@ -776,56 +773,54 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, ctx->buffer[used++] = 0x80; - if( used <= 112 ) - { + if (used <= 112) { /* Enough room for padding + length in current block */ - memset( ctx->buffer + used, 0, 112 - used ); - } - else - { + memset(ctx->buffer + used, 0, 112 - used); + } else { /* We'll need an extra block */ - memset( ctx->buffer + used, 0, SHA512_BLOCK_SIZE - used ); + memset(ctx->buffer + used, 0, SHA512_BLOCK_SIZE - used); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return ret; + } - memset( ctx->buffer, 0, 112 ); + memset(ctx->buffer, 0, 112); } /* * Add message length */ - high = ( ctx->total[0] >> 61 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); + high = (ctx->total[0] >> 61) + | (ctx->total[1] << 3); + low = (ctx->total[0] << 3); - sha512_put_uint64_be( high, ctx->buffer, 112 ); - sha512_put_uint64_be( low, ctx->buffer, 120 ); + sha512_put_uint64_be(high, ctx->buffer, 112); + sha512_put_uint64_be(low, ctx->buffer, 120); - if( ( ret = mbedtls_internal_sha512_process( ctx, ctx->buffer ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_internal_sha512_process(ctx, ctx->buffer)) != 0) { + return ret; + } /* * Output final state */ - sha512_put_uint64_be( ctx->state[0], output, 0 ); - sha512_put_uint64_be( ctx->state[1], output, 8 ); - sha512_put_uint64_be( ctx->state[2], output, 16 ); - sha512_put_uint64_be( ctx->state[3], output, 24 ); - sha512_put_uint64_be( ctx->state[4], output, 32 ); - sha512_put_uint64_be( ctx->state[5], output, 40 ); + sha512_put_uint64_be(ctx->state[0], output, 0); + sha512_put_uint64_be(ctx->state[1], output, 8); + sha512_put_uint64_be(ctx->state[2], output, 16); + sha512_put_uint64_be(ctx->state[3], output, 24); + sha512_put_uint64_be(ctx->state[4], output, 32); + sha512_put_uint64_be(ctx->state[5], output, 40); int truncated = 0; #if defined(MBEDTLS_SHA384_C) truncated = ctx->is384; #endif - if( !truncated ) - { - sha512_put_uint64_be( ctx->state[6], output, 48 ); - sha512_put_uint64_be( ctx->state[7], output, 56 ); + if (!truncated) { + sha512_put_uint64_be(ctx->state[6], output, 48); + sha512_put_uint64_be(ctx->state[7], output, 56); } - return( 0 ); + return 0; } #endif /* !MBEDTLS_SHA512_ALT */ @@ -833,40 +828,46 @@ int mbedtls_sha512_finish( mbedtls_sha512_context *ctx, /* * output = SHA-512( input buffer ) */ -int mbedtls_sha512( const unsigned char *input, - size_t ilen, - unsigned char *output, - int is384 ) +int mbedtls_sha512(const unsigned char *input, + size_t ilen, + unsigned char *output, + int is384) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_sha512_context ctx; #if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) - if( is384 != 0 && is384 != 1 ) + if (is384 != 0 && is384 != 1) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #elif defined(MBEDTLS_SHA512_C) - if( is384 != 0 ) + if (is384 != 0) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #else /* defined MBEDTLS_SHA384_C only */ - if( is384 == 0 ) + if (is384 == 0) { return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA; + } #endif - mbedtls_sha512_init( &ctx ); + mbedtls_sha512_init(&ctx); - if( ( ret = mbedtls_sha512_starts( &ctx, is384 ) ) != 0 ) + if ((ret = mbedtls_sha512_starts(&ctx, is384)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha512_update( &ctx, input, ilen ) ) != 0 ) + if ((ret = mbedtls_sha512_update(&ctx, input, ilen)) != 0) { goto exit; + } - if( ( ret = mbedtls_sha512_finish( &ctx, output ) ) != 0 ) + if ((ret = mbedtls_sha512_finish(&ctx, output)) != 0) { goto exit; + } exit: - mbedtls_sha512_free( &ctx ); + mbedtls_sha512_free(&ctx); - return( ret ); + return ret; } #if defined(MBEDTLS_SELF_TEST) @@ -877,7 +878,9 @@ exit: static const unsigned char sha_test_buf[3][113] = { { "abc" }, - { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" }, + { + "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu" + }, { "" } }; @@ -948,9 +951,9 @@ static sha_test_sum_t sha512_test_sum[] = }; #endif /* MBEDTLS_SHA512_C */ -#define ARRAY_LENGTH( a ) ( sizeof( a ) / sizeof( ( a )[0] ) ) +#define ARRAY_LENGTH(a) (sizeof(a) / sizeof((a)[0])) -static int mbedtls_sha512_common_self_test( int verbose, int is384 ) +static int mbedtls_sha512_common_self_test(int verbose, int is384) { int i, buflen, ret = 0; unsigned char *buf; @@ -958,91 +961,93 @@ static int mbedtls_sha512_common_self_test( int verbose, int is384 ) mbedtls_sha512_context ctx; #if defined(MBEDTLS_SHA384_C) && defined(MBEDTLS_SHA512_C) - sha_test_sum_t* sha_test_sum = ( is384 ) ? sha384_test_sum : sha512_test_sum; + sha_test_sum_t *sha_test_sum = (is384) ? sha384_test_sum : sha512_test_sum; #elif defined(MBEDTLS_SHA512_C) - sha_test_sum_t* sha_test_sum = sha512_test_sum; + sha_test_sum_t *sha_test_sum = sha512_test_sum; #else - sha_test_sum_t* sha_test_sum = sha384_test_sum; + sha_test_sum_t *sha_test_sum = sha384_test_sum; #endif - buf = mbedtls_calloc( 1024, sizeof(unsigned char) ); - if( NULL == buf ) - { - if( verbose != 0 ) - mbedtls_printf( "Buffer allocation failed\n" ); + buf = mbedtls_calloc(1024, sizeof(unsigned char)); + if (NULL == buf) { + if (verbose != 0) { + mbedtls_printf("Buffer allocation failed\n"); + } - return( 1 ); + return 1; } - mbedtls_sha512_init( &ctx ); + mbedtls_sha512_init(&ctx); - for( i = 0; i < 3; i++ ) - { - if( verbose != 0 ) - mbedtls_printf( " SHA-%d test #%d: ", 512 - is384 * 128, i + 1 ); + for (i = 0; i < 3; i++) { + if (verbose != 0) { + mbedtls_printf(" SHA-%d test #%d: ", 512 - is384 * 128, i + 1); + } - if( ( ret = mbedtls_sha512_starts( &ctx, is384 ) ) != 0 ) + if ((ret = mbedtls_sha512_starts(&ctx, is384)) != 0) { goto fail; + } - if( i == 2 ) - { - memset( buf, 'a', buflen = 1000 ); + if (i == 2) { + memset(buf, 'a', buflen = 1000); - for( int j = 0; j < 1000; j++ ) - { - ret = mbedtls_sha512_update( &ctx, buf, buflen ); - if( ret != 0 ) + for (int j = 0; j < 1000; j++) { + ret = mbedtls_sha512_update(&ctx, buf, buflen); + if (ret != 0) { goto fail; + } + } + } else { + ret = mbedtls_sha512_update(&ctx, sha_test_buf[i], + sha_test_buflen[i]); + if (ret != 0) { + goto fail; } } - else - { - ret = mbedtls_sha512_update( &ctx, sha_test_buf[i], - sha_test_buflen[i] ); - if( ret != 0 ) - goto fail; + + if ((ret = mbedtls_sha512_finish(&ctx, sha512sum)) != 0) { + goto fail; } - if( ( ret = mbedtls_sha512_finish( &ctx, sha512sum ) ) != 0 ) - goto fail; - - if( memcmp( sha512sum, sha_test_sum[i], 64 - is384 * 16 ) != 0 ) - { + if (memcmp(sha512sum, sha_test_sum[i], 64 - is384 * 16) != 0) { ret = 1; goto fail; } - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + if (verbose != 0) { + mbedtls_printf("passed\n"); + } } - if( verbose != 0 ) - mbedtls_printf( "\n" ); + if (verbose != 0) { + mbedtls_printf("\n"); + } goto exit; fail: - if( verbose != 0 ) - mbedtls_printf( "failed\n" ); + if (verbose != 0) { + mbedtls_printf("failed\n"); + } exit: - mbedtls_sha512_free( &ctx ); - mbedtls_free( buf ); + mbedtls_sha512_free(&ctx); + mbedtls_free(buf); - return( ret ); + return ret; } #if defined(MBEDTLS_SHA512_C) -int mbedtls_sha512_self_test( int verbose ) +int mbedtls_sha512_self_test(int verbose) { - return mbedtls_sha512_common_self_test( verbose, 0 ); + return mbedtls_sha512_common_self_test(verbose, 0); } #endif /* MBEDTLS_SHA512_C */ #if defined(MBEDTLS_SHA384_C) -int mbedtls_sha384_self_test( int verbose ) +int mbedtls_sha384_self_test(int verbose) { - return mbedtls_sha512_common_self_test( verbose, 1 ); + return mbedtls_sha512_common_self_test(verbose, 1); } #endif /* MBEDTLS_SHA384_C */ diff --git a/library/ssl_cache.c b/library/ssl_cache.c index 8405d2798..7c16e10e9 100644 --- a/library/ssl_cache.c +++ b/library/ssl_cache.c @@ -32,101 +32,103 @@ #include -void mbedtls_ssl_cache_init( mbedtls_ssl_cache_context *cache ) +void mbedtls_ssl_cache_init(mbedtls_ssl_cache_context *cache) { - memset( cache, 0, sizeof( mbedtls_ssl_cache_context ) ); + memset(cache, 0, sizeof(mbedtls_ssl_cache_context)); cache->timeout = MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT; cache->max_entries = MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES; #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &cache->mutex ); + mbedtls_mutex_init(&cache->mutex); #endif } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_cache_find_entry( mbedtls_ssl_cache_context *cache, - unsigned char const *session_id, - size_t session_id_len, - mbedtls_ssl_cache_entry **dst ) +static int ssl_cache_find_entry(mbedtls_ssl_cache_context *cache, + unsigned char const *session_id, + size_t session_id_len, + mbedtls_ssl_cache_entry **dst) { int ret = 1; #if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t t = mbedtls_time( NULL ); + mbedtls_time_t t = mbedtls_time(NULL); #endif mbedtls_ssl_cache_entry *cur; - for( cur = cache->chain; cur != NULL; cur = cur->next ) - { + for (cur = cache->chain; cur != NULL; cur = cur->next) { #if defined(MBEDTLS_HAVE_TIME) - if( cache->timeout != 0 && - (int) ( t - cur->timestamp ) > cache->timeout ) + if (cache->timeout != 0 && + (int) (t - cur->timestamp) > cache->timeout) { continue; + } #endif - if( session_id_len != cur->session_id_len || - memcmp( session_id, cur->session_id, - cur->session_id_len ) != 0 ) - { + if (session_id_len != cur->session_id_len || + memcmp(session_id, cur->session_id, + cur->session_id_len) != 0) { continue; } break; } - if( cur != NULL ) - { + if (cur != NULL) { *dst = cur; ret = 0; } - return( ret ); + return ret; } -int mbedtls_ssl_cache_get( void *data, - unsigned char const *session_id, - size_t session_id_len, - mbedtls_ssl_session *session ) +int mbedtls_ssl_cache_get(void *data, + unsigned char const *session_id, + size_t session_id_len, + mbedtls_ssl_session *session) { int ret = 1; mbedtls_ssl_cache_context *cache = (mbedtls_ssl_cache_context *) data; mbedtls_ssl_cache_entry *entry; #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_lock( &cache->mutex ) != 0 ) - return( 1 ); + if (mbedtls_mutex_lock(&cache->mutex) != 0) { + return 1; + } #endif - ret = ssl_cache_find_entry( cache, session_id, session_id_len, &entry ); - if( ret != 0 ) + ret = ssl_cache_find_entry(cache, session_id, session_id_len, &entry); + if (ret != 0) { goto exit; + } - ret = mbedtls_ssl_session_load( session, - entry->session, - entry->session_len ); - if( ret != 0 ) + ret = mbedtls_ssl_session_load(session, + entry->session, + entry->session_len); + if (ret != 0) { goto exit; + } ret = 0; exit: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &cache->mutex ) != 0 ) + if (mbedtls_mutex_unlock(&cache->mutex) != 0) { ret = 1; + } #endif - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_cache_pick_writing_slot( mbedtls_ssl_cache_context *cache, - unsigned char const *session_id, - size_t session_id_len, - mbedtls_ssl_cache_entry **dst ) +static int ssl_cache_pick_writing_slot(mbedtls_ssl_cache_context *cache, + unsigned char const *session_id, + size_t session_id_len, + mbedtls_ssl_cache_entry **dst) { #if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t t = mbedtls_time( NULL ), oldest = 0; + mbedtls_time_t t = mbedtls_time(NULL), oldest = 0; #endif /* MBEDTLS_HAVE_TIME */ mbedtls_ssl_cache_entry *old = NULL; @@ -142,12 +144,10 @@ static int ssl_cache_pick_writing_slot( mbedtls_ssl_cache_context *cache, * entry, both of which will be used later. */ last = NULL; - for( cur = cache->chain; cur != NULL; cur = cur->next ) - { + for (cur = cache->chain; cur != NULL; cur = cur->next) { count++; - if( session_id_len == cur->session_id_len && - memcmp( session_id, cur->session_id, cur->session_id_len ) == 0 ) - { + if (session_id_len == cur->session_id_len && + memcmp(session_id, cur->session_id, cur->session_id_len) == 0) { goto found; } last = cur; @@ -161,16 +161,13 @@ static int ssl_cache_pick_writing_slot( mbedtls_ssl_cache_context *cache, */ #if defined(MBEDTLS_HAVE_TIME) - for( cur = cache->chain; cur != NULL; cur = cur->next ) - { - if( cache->timeout != 0 && - (int) ( t - cur->timestamp ) > cache->timeout ) - { + for (cur = cache->chain; cur != NULL; cur = cur->next) { + if (cache->timeout != 0 && + (int) (t - cur->timestamp) > cache->timeout) { goto found; } - if( oldest == 0 || cur->timestamp < oldest ) - { + if (oldest == 0 || cur->timestamp < oldest) { oldest = cur->timestamp; old = cur; } @@ -179,18 +176,19 @@ static int ssl_cache_pick_writing_slot( mbedtls_ssl_cache_context *cache, /* Check 3: Is there free space in the cache? */ - if( count < cache->max_entries ) - { + if (count < cache->max_entries) { /* Create new entry */ - cur = mbedtls_calloc( 1, sizeof(mbedtls_ssl_cache_entry) ); - if( cur == NULL ) - return( 1 ); + cur = mbedtls_calloc(1, sizeof(mbedtls_ssl_cache_entry)); + if (cur == NULL) { + return 1; + } /* Append to the end of the linked list. */ - if( last == NULL ) + if (last == NULL) { cache->chain = cur; - else + } else { last->next = cur; + } goto found; } @@ -200,16 +198,16 @@ static int ssl_cache_pick_writing_slot( mbedtls_ssl_cache_context *cache, * (if present) or cache-order. */ #if defined(MBEDTLS_HAVE_TIME) - if( old == NULL ) - { + if (old == NULL) { /* This should only happen on an ill-configured cache * with max_entries == 0. */ - return( 1 ); + return 1; } #else /* MBEDTLS_HAVE_TIME */ /* Reuse first entry in chain, but move to last place. */ - if( cache->chain == NULL ) - return( 1 ); + if (cache->chain == NULL) { + return 1; + } old = cache->chain; cache->chain = old->next; @@ -227,23 +225,22 @@ found: #endif /* If we're reusing an entry, free it first. */ - if( cur->session != NULL ) - { - mbedtls_free( cur->session ); + if (cur->session != NULL) { + mbedtls_free(cur->session); cur->session = NULL; cur->session_len = 0; - memset( cur->session_id, 0, sizeof( cur->session_id ) ); + memset(cur->session_id, 0, sizeof(cur->session_id)); cur->session_id_len = 0; } *dst = cur; - return( 0 ); + return 0; } -int mbedtls_ssl_cache_set( void *data, - unsigned char const *session_id, - size_t session_id_len, - const mbedtls_ssl_session *session ) +int mbedtls_ssl_cache_set(void *data, + unsigned char const *session_id, + size_t session_id_len, + const mbedtls_ssl_session *session) { int ret = 1; mbedtls_ssl_cache_context *cache = (mbedtls_ssl_cache_context *) data; @@ -253,47 +250,47 @@ int mbedtls_ssl_cache_set( void *data, unsigned char *session_serialized = NULL; #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &cache->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&cache->mutex)) != 0) { + return ret; + } #endif - ret = ssl_cache_pick_writing_slot( cache, - session_id, session_id_len, - &cur ); - if( ret != 0 ) + ret = ssl_cache_pick_writing_slot(cache, + session_id, session_id_len, + &cur); + if (ret != 0) { goto exit; + } /* Check how much space we need to serialize the session * and allocate a sufficiently large buffer. */ - ret = mbedtls_ssl_session_save( session, NULL, 0, &session_serialized_len ); - if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ) - { + ret = mbedtls_ssl_session_save(session, NULL, 0, &session_serialized_len); + if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) { ret = 1; goto exit; } - session_serialized = mbedtls_calloc( 1, session_serialized_len ); - if( session_serialized == NULL ) - { + session_serialized = mbedtls_calloc(1, session_serialized_len); + if (session_serialized == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } /* Now serialize the session into the allocated buffer. */ - ret = mbedtls_ssl_session_save( session, - session_serialized, - session_serialized_len, - &session_serialized_len ); - if( ret != 0 ) + ret = mbedtls_ssl_session_save(session, + session_serialized, + session_serialized_len, + &session_serialized_len); + if (ret != 0) { goto exit; + } - if( session_id_len > sizeof( cur->session_id ) ) - { + if (session_id_len > sizeof(cur->session_id)) { ret = 1; goto exit; } cur->session_id_len = session_id_len; - memcpy( cur->session_id, session_id, session_id_len ); + memcpy(cur->session_id, session_id, session_id_len); cur->session = session_serialized; cur->session_len = session_serialized_len; @@ -303,53 +300,56 @@ int mbedtls_ssl_cache_set( void *data, exit: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &cache->mutex ) != 0 ) + if (mbedtls_mutex_unlock(&cache->mutex) != 0) { ret = 1; + } #endif - if( session_serialized != NULL ) - { - mbedtls_platform_zeroize( session_serialized, session_serialized_len ); - mbedtls_free( session_serialized ); + if (session_serialized != NULL) { + mbedtls_platform_zeroize(session_serialized, session_serialized_len); + mbedtls_free(session_serialized); session_serialized = NULL; } - return( ret ); + return ret; } #if defined(MBEDTLS_HAVE_TIME) -void mbedtls_ssl_cache_set_timeout( mbedtls_ssl_cache_context *cache, int timeout ) +void mbedtls_ssl_cache_set_timeout(mbedtls_ssl_cache_context *cache, int timeout) { - if( timeout < 0 ) timeout = 0; + if (timeout < 0) { + timeout = 0; + } cache->timeout = timeout; } #endif /* MBEDTLS_HAVE_TIME */ -void mbedtls_ssl_cache_set_max_entries( mbedtls_ssl_cache_context *cache, int max ) +void mbedtls_ssl_cache_set_max_entries(mbedtls_ssl_cache_context *cache, int max) { - if( max < 0 ) max = 0; + if (max < 0) { + max = 0; + } cache->max_entries = max; } -void mbedtls_ssl_cache_free( mbedtls_ssl_cache_context *cache ) +void mbedtls_ssl_cache_free(mbedtls_ssl_cache_context *cache) { mbedtls_ssl_cache_entry *cur, *prv; cur = cache->chain; - while( cur != NULL ) - { + while (cur != NULL) { prv = cur; cur = cur->next; - mbedtls_free( prv->session ); - mbedtls_free( prv ); + mbedtls_free(prv->session); + mbedtls_free(prv); } #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_free( &cache->mutex ); + mbedtls_mutex_free(&cache->mutex); #endif cache->chain = NULL; } diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index a83527f87..33789c463 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -295,30 +295,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_GCM_C) #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) { MBEDTLS_TLS1_3_AES_256_GCM_SHA384, "TLS1-3-AES-256-GCM-SHA384", - MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, - MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ - 0, - MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, + MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, + MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ + 0, + MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) { MBEDTLS_TLS1_3_AES_128_GCM_SHA256, "TLS1-3-AES-128-GCM-SHA256", - MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, - MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ - 0, - MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, + MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, + MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ + 0, + MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) { MBEDTLS_TLS1_3_AES_128_CCM_SHA256, "TLS1-3-AES-128-CCM-SHA256", - MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, - MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ - 0, - MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, + MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, + MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ + 0, + MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, { MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256, "TLS1-3-AES-128-CCM-8-SHA256", - MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, - MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ - MBEDTLS_CIPHERSUITE_SHORT_TAG, - MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, + MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, + MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */ + MBEDTLS_CIPHERSUITE_SHORT_TAG, + MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_CCM_C */ #endif /* MBEDTLS_AES_C */ #if defined(MBEDTLS_CHACHAPOLY_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) @@ -458,13 +458,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_CAMELLIA_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", + { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", + { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -473,13 +475,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_GCM_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", + { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, + "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", + { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, + "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -544,13 +548,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_CAMELLIA_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", + { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, + "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384", + { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, + "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -559,13 +565,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_GCM_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", + { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, + "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", + { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, + "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -849,13 +857,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_CAMELLIA_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256", + { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, + "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384", + { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, + "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -864,13 +874,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_GCM_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256", + { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, + "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384", + { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, + "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -935,13 +947,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_CAMELLIA_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", + { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", + { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -950,13 +964,15 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_GCM_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", + { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, + "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", + { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, + "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1211,14 +1227,16 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_CAMELLIA_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", + { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, + "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", + { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, + "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1445,28 +1463,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384, - "TLS-RSA-WITH-ARIA-256-GCM-SHA384", + "TLS-RSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384, - "TLS-RSA-WITH-ARIA-256-CBC-SHA384", + "TLS-RSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256, - "TLS-RSA-WITH-ARIA-128-GCM-SHA256", + "TLS-RSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256, - "TLS-RSA-WITH-ARIA-128-CBC-SHA256", + "TLS-RSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1478,28 +1498,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384, - "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384", + "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384, - "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384", + "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256, - "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256", + "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256, - "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256", + "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1511,28 +1533,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384, - "TLS-PSK-WITH-ARIA-256-GCM-SHA384", - MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384,MBEDTLS_KEY_EXCHANGE_PSK, + "TLS-PSK-WITH-ARIA-256-GCM-SHA384", + MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384, - "TLS-PSK-WITH-ARIA-256-CBC-SHA384", + "TLS-PSK-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256, - "TLS-PSK-WITH-ARIA-128-GCM-SHA256", + "TLS-PSK-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256, - "TLS-PSK-WITH-ARIA-128-CBC-SHA256", + "TLS-PSK-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1544,28 +1568,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384, - "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384", + "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384, - "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384", + "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256, - "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256", + "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256, - "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256", + "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1577,28 +1603,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384, - "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384", + "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384, - "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384", + "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256, - "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256", + "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256, - "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256", + "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1608,16 +1636,18 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384, - "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384", + "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256, - "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256", + "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1629,28 +1659,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384, - "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384", + "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384, - "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384", + "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256, - "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256", + "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256, - "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256", + "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1662,28 +1694,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384, - "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384", + "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384, - "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384", + "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256, - "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256", + "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256, - "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256", + "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1695,28 +1729,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384, - "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384", + "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384, - "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384", + "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256, - "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256", + "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256, - "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256", + "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1728,28 +1764,30 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384, - "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384", + "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384", MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384, - "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384", + "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384", MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256, - "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256", + "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256", MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, #endif -#if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) +#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256, - "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256", + "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256", MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 0, MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 }, @@ -1766,43 +1804,40 @@ static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = }; #if defined(MBEDTLS_SSL_CIPHERSUITES) -const int *mbedtls_ssl_list_ciphersuites( void ) +const int *mbedtls_ssl_list_ciphersuites(void) { - return( ciphersuite_preference ); + return ciphersuite_preference; } #else -#define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \ - sizeof( ciphersuite_definitions[0] ) +#define MAX_CIPHERSUITES sizeof(ciphersuite_definitions) / \ + sizeof(ciphersuite_definitions[0]) static int supported_ciphersuites[MAX_CIPHERSUITES]; static int supported_init = 0; MBEDTLS_CHECK_RETURN_CRITICAL -static int ciphersuite_is_removed( const mbedtls_ssl_ciphersuite_t *cs_info ) +static int ciphersuite_is_removed(const mbedtls_ssl_ciphersuite_t *cs_info) { - (void)cs_info; + (void) cs_info; - return( 0 ); + return 0; } -const int *mbedtls_ssl_list_ciphersuites( void ) +const int *mbedtls_ssl_list_ciphersuites(void) { /* * On initial call filter out all ciphersuites not supported by current * build based on presence in the ciphersuite_definitions. */ - if( supported_init == 0 ) - { + if (supported_init == 0) { const int *p; int *q; - for( p = ciphersuite_preference, q = supported_ciphersuites; + for (p = ciphersuite_preference, q = supported_ciphersuites; *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1; - p++ ) - { + p++) { const mbedtls_ssl_ciphersuite_t *cs_info; - if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL && - !ciphersuite_is_removed( cs_info ) ) - { + if ((cs_info = mbedtls_ssl_ciphersuite_from_id(*p)) != NULL && + !ciphersuite_is_removed(cs_info)) { *(q++) = *p; } } @@ -1811,69 +1846,72 @@ const int *mbedtls_ssl_list_ciphersuites( void ) supported_init = 1; } - return( supported_ciphersuites ); + return supported_ciphersuites; } #endif /* MBEDTLS_SSL_CIPHERSUITES */ const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string( - const char *ciphersuite_name ) + const char *ciphersuite_name) { const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions; - if( NULL == ciphersuite_name ) - return( NULL ); + if (NULL == ciphersuite_name) { + return NULL; + } - while( cur->id != 0 ) - { - if( 0 == strcmp( cur->name, ciphersuite_name ) ) - return( cur ); + while (cur->id != 0) { + if (0 == strcmp(cur->name, ciphersuite_name)) { + return cur; + } cur++; } - return( NULL ); + return NULL; } -const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite ) +const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id(int ciphersuite) { const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions; - while( cur->id != 0 ) - { - if( cur->id == ciphersuite ) - return( cur ); + while (cur->id != 0) { + if (cur->id == ciphersuite) { + return cur; + } cur++; } - return( NULL ); + return NULL; } -const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id ) +const char *mbedtls_ssl_get_ciphersuite_name(const int ciphersuite_id) { const mbedtls_ssl_ciphersuite_t *cur; - cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); + cur = mbedtls_ssl_ciphersuite_from_id(ciphersuite_id); - if( cur == NULL ) - return( "unknown" ); + if (cur == NULL) { + return "unknown"; + } - return( cur->name ); + return cur->name; } -int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name ) +int mbedtls_ssl_get_ciphersuite_id(const char *ciphersuite_name) { const mbedtls_ssl_ciphersuite_t *cur; - cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name ); + cur = mbedtls_ssl_ciphersuite_from_string(ciphersuite_name); - if( cur == NULL ) - return( 0 ); + if (cur == NULL) { + return 0; + } - return( cur->id ); + return cur->id; } -size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( const mbedtls_ssl_ciphersuite_t *info ) +size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersuite_t *info) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -1881,105 +1919,102 @@ size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( const mbedtls_ssl_ciphersu psa_algorithm_t alg; size_t key_bits; - status = mbedtls_ssl_cipher_to_psa( info->cipher, - info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16, - &alg, &key_type, &key_bits ); + status = mbedtls_ssl_cipher_to_psa(info->cipher, + info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16, + &alg, &key_type, &key_bits); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return 0; + } return key_bits; #else const mbedtls_cipher_info_t * const cipher_info = - mbedtls_cipher_info_from_type( info->cipher ); + mbedtls_cipher_info_from_type(info->cipher); - return( mbedtls_cipher_info_get_key_bitlen( cipher_info ) ); + return mbedtls_cipher_info_get_key_bitlen(cipher_info); #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #if defined(MBEDTLS_PK_C) -mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info ) +mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: - return( MBEDTLS_PK_RSA ); + return MBEDTLS_PK_RSA; case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( MBEDTLS_PK_ECDSA ); + return MBEDTLS_PK_ECDSA; case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: - return( MBEDTLS_PK_ECKEY ); + return MBEDTLS_PK_ECKEY; default: - return( MBEDTLS_PK_NONE ); + return MBEDTLS_PK_NONE; } } #if defined(MBEDTLS_USE_PSA_CRYPTO) -psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg( const mbedtls_ssl_ciphersuite_t *info ) +psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: - return( PSA_ALG_RSA_PKCS1V15_CRYPT ); + return PSA_ALG_RSA_PKCS1V15_CRYPT; case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: - return( PSA_ALG_RSA_PKCS1V15_SIGN( - mbedtls_hash_info_psa_from_md( info->mac ) ) ); + return PSA_ALG_RSA_PKCS1V15_SIGN( + mbedtls_hash_info_psa_from_md(info->mac)); case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( PSA_ALG_ECDSA( mbedtls_hash_info_psa_from_md( info->mac ) ) ); + return PSA_ALG_ECDSA(mbedtls_hash_info_psa_from_md(info->mac)); case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: - return( PSA_ALG_ECDH ); + return PSA_ALG_ECDH; default: - return( PSA_ALG_NONE ); + return PSA_ALG_NONE; } } -psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage( const mbedtls_ssl_ciphersuite_t *info ) +psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: - return( PSA_KEY_USAGE_DECRYPT ); + return PSA_KEY_USAGE_DECRYPT; case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( PSA_KEY_USAGE_SIGN_HASH ); + return PSA_KEY_USAGE_SIGN_HASH; case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: - return( PSA_KEY_USAGE_DERIVE ); + return PSA_KEY_USAGE_DERIVE; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ -mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphersuite_t *info ) +mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_DHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: - return( MBEDTLS_PK_RSA ); + return MBEDTLS_PK_RSA; case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: - return( MBEDTLS_PK_ECDSA ); + return MBEDTLS_PK_ECDSA; default: - return( MBEDTLS_PK_NONE ); + return MBEDTLS_PK_NONE; } } @@ -1987,37 +2022,35 @@ mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphers #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info ) +int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: case MBEDTLS_KEY_EXCHANGE_ECJPAKE: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED*/ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info ) +int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info) { - switch( info->key_exchange ) - { + switch (info->key_exchange) { case MBEDTLS_KEY_EXCHANGE_PSK: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: case MBEDTLS_KEY_EXCHANGE_DHE_PSK: case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ diff --git a/library/ssl_client.c b/library/ssl_client.c index 925d0c201..ab897c49f 100644 --- a/library/ssl_client.c +++ b/library/ssl_client.c @@ -37,26 +37,27 @@ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_hostname_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; size_t hostname_len; *olen = 0; - if( ssl->hostname == NULL ) - return( 0 ); + if (ssl->hostname == NULL) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding server name extension: %s", - ssl->hostname ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding server name extension: %s", + ssl->hostname)); - hostname_len = strlen( ssl->hostname ); + hostname_len = strlen(ssl->hostname); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, hostname_len + 9); /* * Sect. 3, RFC 6066 (TLS Extensions Definitions) @@ -84,28 +85,28 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, * } ServerNameList; * */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SERVERNAME, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SERVERNAME, p, 0); p += 2; - MBEDTLS_PUT_UINT16_BE( hostname_len + 5, p, 0 ); + MBEDTLS_PUT_UINT16_BE(hostname_len + 5, p, 0); p += 2; - MBEDTLS_PUT_UINT16_BE( hostname_len + 3, p, 0 ); + MBEDTLS_PUT_UINT16_BE(hostname_len + 3, p, 0); p += 2; - *p++ = MBEDTLS_BYTE_0( MBEDTLS_TLS_EXT_SERVERNAME_HOSTNAME ); + *p++ = MBEDTLS_BYTE_0(MBEDTLS_TLS_EXT_SERVERNAME_HOSTNAME); - MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(hostname_len, p, 0); p += 2; - memcpy( p, ssl->hostname, hostname_len ); + memcpy(p, ssl->hostname, hostname_len); *olen = hostname_len + 9; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_SERVERNAME); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ @@ -124,26 +125,27 @@ static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, * */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *out_len ) +static int ssl_write_alpn_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len) { unsigned char *p = buf; *out_len = 0; - if( ssl->conf->alpn_list == NULL ) - return( 0 ); + if (ssl->conf->alpn_list == NULL) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding alpn extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding alpn extension")); /* Check we have enough space for the extension type (2 bytes), the * extension length (2 bytes) and the protocol_name_list length (2 bytes). */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ALPN, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ALPN, p, 0); /* Skip writing extension and list length for now */ p += 6; @@ -154,32 +156,31 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, * ProtocolName protocol_name_list<2..2^16-1> * } ProtocolNameList; */ - for( const char **cur = ssl->conf->alpn_list; *cur != NULL; cur++ ) - { + for (const char **cur = ssl->conf->alpn_list; *cur != NULL; cur++) { /* * mbedtls_ssl_conf_set_alpn_protocols() checked that the length of * protocol names is less than 255. */ - size_t protocol_name_len = strlen( *cur ); + size_t protocol_name_len = strlen(*cur); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + protocol_name_len ); - *p++ = (unsigned char)protocol_name_len; - memcpy( p, *cur, protocol_name_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 1 + protocol_name_len); + *p++ = (unsigned char) protocol_name_len; + memcpy(p, *cur, protocol_name_len); p += protocol_name_len; } *out_len = p - buf; /* List length = *out_len - 2 (ext_type) - 2 (ext_len) - 2 (list_len) */ - MBEDTLS_PUT_UINT16_BE( *out_len - 6, buf, 4 ); + MBEDTLS_PUT_UINT16_BE(*out_len - 6, buf, 4); /* Extension length = *out_len - 2 (ext_type) - 2 (ext_len) */ - MBEDTLS_PUT_UINT16_BE( *out_len - 4, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(*out_len - 4, buf, 2); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_ALPN); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_ALPN */ @@ -225,54 +226,52 @@ static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, * DHE groups are not supported yet. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *out_len ) +static int ssl_write_supported_groups_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len) { - unsigned char *p = buf ; + unsigned char *p = buf; unsigned char *named_group_list; /* Start of named_group_list */ size_t named_group_list_len; /* Length of named_group_list */ - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding supported_groups extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding supported_groups extension")); /* Check if we have space for header and length fields: * - extension_type (2 bytes) * - extension_data_length (2 bytes) * - named_group_list_length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); p += 6; named_group_list = p; - if( group_list == NULL ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + if (group_list == NULL) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - for( ; *group_list != 0; group_list++ ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got supported group(%04x)", *group_list ) ); + for (; *group_list != 0; group_list++) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got supported group(%04x)", *group_list)); #if defined(MBEDTLS_ECP_C) - if( ( mbedtls_ssl_conf_is_tls13_enabled( ssl->conf ) && - mbedtls_ssl_tls13_named_group_is_ecdhe( *group_list ) ) || - ( mbedtls_ssl_conf_is_tls12_enabled( ssl->conf ) && - mbedtls_ssl_tls12_named_group_is_ecdhe( *group_list ) ) ) - { - if( mbedtls_ssl_get_ecp_group_id_from_tls_id( *group_list ) == - MBEDTLS_ECP_DP_NONE ) - { + if ((mbedtls_ssl_conf_is_tls13_enabled(ssl->conf) && + mbedtls_ssl_tls13_named_group_is_ecdhe(*group_list)) || + (mbedtls_ssl_conf_is_tls12_enabled(ssl->conf) && + mbedtls_ssl_tls12_named_group_is_ecdhe(*group_list))) { + if (mbedtls_ssl_get_ecp_group_id_from_tls_id(*group_list) == + MBEDTLS_ECP_DP_NONE) { continue; } - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( *group_list, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(*group_list, p, 0); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "NamedGroup: %s ( %x )", - mbedtls_ssl_get_curve_name_from_tls_id( *group_list ), - *group_list ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("NamedGroup: %s ( %x )", + mbedtls_ssl_get_curve_name_from_tls_id(*group_list), + *group_list)); } #endif /* MBEDTLS_ECP_C */ /* Add DHE groups here */ @@ -281,30 +280,29 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, /* Length of named_group_list */ named_group_list_len = p - named_group_list; - if( named_group_list_len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "No group available." ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (named_group_list_len == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("No group available.")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Write extension_type */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SUPPORTED_GROUPS, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SUPPORTED_GROUPS, buf, 0); /* Write extension_data_length */ - MBEDTLS_PUT_UINT16_BE( named_group_list_len + 2, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(named_group_list_len + 2, buf, 2); /* Write length of named_group_list */ - MBEDTLS_PUT_UINT16_BE( named_group_list_len, buf, 4 ); + MBEDTLS_PUT_UINT16_BE(named_group_list_len, buf, 4); - MBEDTLS_SSL_DEBUG_BUF( 3, "Supported groups extension", - buf + 4, named_group_list_len + 2 ); + MBEDTLS_SSL_DEBUG_BUF(3, "Supported groups extension", + buf + 4, named_group_list_len + 2); *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) mbedtls_ssl_tls13_set_hs_sent_ext_mask( - ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ); + ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || @@ -312,11 +310,11 @@ static int ssl_write_supported_groups_ext( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_write_client_hello_cipher_suites( - mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - int *tls12_uses_ec, - size_t *out_len ) + mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + int *tls12_uses_ec, + size_t *out_len) { unsigned char *p = buf; const int *ciphersuite_list; @@ -337,38 +335,38 @@ static int ssl_write_client_hello_cipher_suites( ciphersuite_list = ssl->conf->ciphersuite_list; /* Check there is space for the cipher suite list length (2 bytes). */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); p += 2; /* Write cipher_suites * CipherSuite cipher_suites<2..2^16-2>; */ cipher_suites = p; - for ( size_t i = 0; ciphersuite_list[i] != 0; i++ ) - { + for (size_t i = 0; ciphersuite_list[i] != 0; i++) { int cipher_suite = ciphersuite_list[i]; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( cipher_suite ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(cipher_suite); - if( mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, - ssl->handshake->min_tls_version, - ssl->tls_version ) != 0 ) + if (mbedtls_ssl_validate_ciphersuite(ssl, ciphersuite_info, + ssl->handshake->min_tls_version, + ssl->tls_version) != 0) { continue; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ - ( defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) ) - *tls12_uses_ec |= mbedtls_ssl_ciphersuite_uses_ec( ciphersuite_info ); + (defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)) + *tls12_uses_ec |= mbedtls_ssl_ciphersuite_uses_ec(ciphersuite_info); #endif - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, add ciphersuite: %04x, %s", - (unsigned int) cipher_suite, - ciphersuite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, add ciphersuite: %04x, %s", + (unsigned int) cipher_suite, + ciphersuite_info->name)); /* Check there is space for the cipher suite identifier (2 bytes). */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( cipher_suite, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(cipher_suite, p, 0); p += 2; } @@ -377,27 +375,26 @@ static int ssl_write_client_hello_cipher_suites( */ int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); + renegotiating = (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE); #endif - if( !renegotiating ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding EMPTY_RENEGOTIATION_INFO_SCSV" ) ); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO, p, 0 ); + if (!renegotiating) { + MBEDTLS_SSL_DEBUG_MSG(3, ("adding EMPTY_RENEGOTIATION_INFO_SCSV")); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO, p, 0); p += 2; } /* Write the cipher_suites length in number of bytes */ cipher_suites_len = p - cipher_suites; - MBEDTLS_PUT_UINT16_BE( cipher_suites_len, buf, 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, got %" MBEDTLS_PRINTF_SIZET " cipher suites", - cipher_suites_len/2 ) ); + MBEDTLS_PUT_UINT16_BE(cipher_suites_len, buf, 0); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, got %" MBEDTLS_PRINTF_SIZET " cipher suites", + cipher_suites_len/2)); /* Output the total length of cipher_suites field. */ *out_len = p - buf; - return( 0 ); + return 0; } /* @@ -430,11 +427,11 @@ static int ssl_write_client_hello_cipher_suites( * } ClientHello; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len, - size_t *binders_len ) +static int ssl_write_client_hello_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len, + size_t *binders_len) { int ret; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -449,15 +446,15 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) unsigned char propose_tls12 = - ( handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2 ) + (handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2) && - ( MBEDTLS_SSL_VERSION_TLS1_2 <= ssl->tls_version ); + (MBEDTLS_SSL_VERSION_TLS1_2 <= ssl->tls_version); #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) unsigned char propose_tls13 = - ( handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_3 ) + (handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_3) && - ( MBEDTLS_SSL_VERSION_TLS1_3 <= ssl->tls_version ); + (MBEDTLS_SSL_VERSION_TLS1_3 <= ssl->tls_version); #endif /* @@ -465,9 +462,9 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, * * In all cases this is the TLS 1.2 version. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - mbedtls_ssl_write_version( p, ssl->conf->transport, - MBEDTLS_SSL_VERSION_TLS1_2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + mbedtls_ssl_write_version(p, ssl->conf->transport, + MBEDTLS_SSL_VERSION_TLS1_2); p += 2; /* ... @@ -478,10 +475,10 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, * the handshake->randbytes buffer and are copied here into the output * buffer. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); - memcpy( p, handshake->randbytes, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, random bytes", - p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, MBEDTLS_CLIENT_HELLO_RANDOM_LEN); + memcpy(p, handshake->randbytes, MBEDTLS_CLIENT_HELLO_RANDOM_LEN); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, random bytes", + p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN); p += MBEDTLS_CLIENT_HELLO_RANDOM_LEN; /* TLS 1.2: @@ -500,13 +497,13 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, * ssl_prepare_client_hello() into the ssl->session_negotiate->id buffer * and are copied here into the output buffer. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, ssl->session_negotiate->id_len + 1 ); - *p++ = (unsigned char)ssl->session_negotiate->id_len; - memcpy( p, ssl->session_negotiate->id, ssl->session_negotiate->id_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, ssl->session_negotiate->id_len + 1); + *p++ = (unsigned char) ssl->session_negotiate->id_len; + memcpy(p, ssl->session_negotiate->id, ssl->session_negotiate->id_len); p += ssl->session_negotiate->id_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "session id", ssl->session_negotiate->id, - ssl->session_negotiate->id_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "session id", ssl->session_negotiate->id, + ssl->session_negotiate->id_len); /* DTLS 1.2 ONLY * ... @@ -514,38 +511,36 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, * ... */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) uint8_t cookie_len = 0; #else uint16_t cookie_len = 0; #endif /* !MBEDTLS_SSL_PROTO_TLS1_3 */ - if( handshake->cookie != NULL ) - { - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, cookie", - handshake->cookie, - handshake->cookie_len ); + if (handshake->cookie != NULL) { + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, cookie", + handshake->cookie, + handshake->cookie_len); cookie_len = handshake->cookie_len; } - MBEDTLS_SSL_CHK_BUF_PTR( p, end, cookie_len + 1 ); - *p++ = ( unsigned char )cookie_len; - if( cookie_len > 0 ) - { - memcpy( p, handshake->cookie, cookie_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, cookie_len + 1); + *p++ = (unsigned char) cookie_len; + if (cookie_len > 0) { + memcpy(p, handshake->cookie, cookie_len); p += cookie_len; } } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_SSL_PROTO_DTLS */ /* Write cipher_suites */ - ret = ssl_write_client_hello_cipher_suites( ssl, p, end, - &tls12_uses_ec, - &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_write_client_hello_cipher_suites(ssl, p, end, + &tls12_uses_ec, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; /* Write legacy_compression_methods (TLS 1.3) or @@ -558,7 +553,7 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, * For TLS 1.2 ClientHello, for security reasons we do not support * compression anymore, thus also just the 'null' compression method. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); *p++ = 1; *p++ = MBEDTLS_SSL_COMPRESS_NULL; @@ -570,80 +565,82 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, #endif /* First write extensions, then the total length */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); p_extensions_len = p; p += 2; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) /* Write server name extension */ - ret = ssl_write_hostname_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_write_hostname_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_ALPN) - ret = ssl_write_alpn_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_write_alpn_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( propose_tls13 ) - { - ret = mbedtls_ssl_tls13_write_client_hello_exts( ssl, p, end, - &output_len ); - if( ret != 0 ) - return( ret ); + if (propose_tls13) { + ret = mbedtls_ssl_tls13_write_client_hello_exts(ssl, p, end, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( + if ( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ( propose_tls13 && - mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) || + (propose_tls13 && + mbedtls_ssl_conf_tls13_some_ephemeral_enabled(ssl)) || #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - ( propose_tls12 && tls12_uses_ec ) || + (propose_tls12 && tls12_uses_ec) || #endif - 0 ) - { - ret = ssl_write_supported_groups_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + 0) { + ret = ssl_write_supported_groups_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( + if ( #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - ( propose_tls13 && mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) ) || + (propose_tls13 && mbedtls_ssl_conf_tls13_ephemeral_enabled(ssl)) || #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) propose_tls12 || #endif - 0 ) - { - ret = mbedtls_ssl_write_sig_alg_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + 0) { + ret = mbedtls_ssl_write_sig_alg_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( propose_tls12 ) - { - ret = mbedtls_ssl_tls12_write_client_hello_exts( ssl, p, end, - tls12_uses_ec, - &output_len ); - if( ret != 0 ) - return( ret ); + if (propose_tls12) { + ret = mbedtls_ssl_tls12_write_client_hello_exts(ssl, p, end, + tls12_uses_ec, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ @@ -652,12 +649,12 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, /* The "pre_shared_key" extension (RFC 8446 Section 4.2.11) * MUST be the last extension in the ClientHello. */ - if( propose_tls13 && mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) ) - { + if (propose_tls13 && mbedtls_ssl_conf_tls13_some_psk_enabled(ssl)) { ret = mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( - ssl, p, end, &output_len, binders_len ); - if( ret != 0 ) - return( ret ); + ssl, p, end, &output_len, binders_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -665,28 +662,27 @@ static int ssl_write_client_hello_body( mbedtls_ssl_context *ssl, /* Write the length of the list of extensions. */ extensions_len = p - p_extensions_len - 2; - if( extensions_len == 0 ) - p = p_extensions_len; - else - { - MBEDTLS_PUT_UINT16_BE( extensions_len, p_extensions_len, 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, total extension length: %" \ - MBEDTLS_PRINTF_SIZET, extensions_len ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", - p_extensions_len, extensions_len ); + if (extensions_len == 0) { + p = p_extensions_len; + } else { + MBEDTLS_PUT_UINT16_BE(extensions_len, p_extensions_len, 0); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, total extension length: %" \ + MBEDTLS_PRINTF_SIZET, extensions_len)); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello extensions", + p_extensions_len, extensions_len); } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_CLIENT_HELLO, handshake->sent_extensions); #endif *out_len = p - buf; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_generate_random( mbedtls_ssl_context *ssl ) +static int ssl_generate_random(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *randbytes = ssl->handshake->randbytes; @@ -704,52 +700,50 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) * TLS 1.3 case: * opaque Random[32]; */ - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { #if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t gmt_unix_time = mbedtls_time( NULL ); - MBEDTLS_PUT_UINT32_BE( gmt_unix_time, randbytes, 0 ); + mbedtls_time_t gmt_unix_time = mbedtls_time(NULL); + MBEDTLS_PUT_UINT32_BE(gmt_unix_time, randbytes, 0); gmt_unix_time_len = 4; - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, current time: %" MBEDTLS_PRINTF_LONGLONG, - (long long) gmt_unix_time ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, current time: %" MBEDTLS_PRINTF_LONGLONG, + (long long) gmt_unix_time)); #endif /* MBEDTLS_HAVE_TIME */ } - ret = ssl->conf->f_rng( ssl->conf->p_rng, - randbytes + gmt_unix_time_len, - MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len ); - return( ret ); + ret = ssl->conf->f_rng(ssl->conf->p_rng, + randbytes + gmt_unix_time_len, + MBEDTLS_CLIENT_HELLO_RANDOM_LEN - gmt_unix_time_len); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) +static int ssl_prepare_client_hello(mbedtls_ssl_context *ssl) { int ret; size_t session_id_len; mbedtls_ssl_session *session_negotiate = ssl->session_negotiate; - if( session_negotiate == NULL ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (session_negotiate == NULL) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_HAVE_TIME) /* Check if a tls13 ticket has been configured. */ - if( ssl->handshake->resume != 0 && + if (ssl->handshake->resume != 0 && session_negotiate->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - session_negotiate->ticket != NULL ) - { - mbedtls_time_t now = mbedtls_time( NULL ); - uint64_t age = (uint64_t)( now - session_negotiate->ticket_received ); - if( session_negotiate->ticket_received > now || - age > session_negotiate->ticket_lifetime ) - { + session_negotiate->ticket != NULL) { + mbedtls_time_t now = mbedtls_time(NULL); + uint64_t age = (uint64_t) (now - session_negotiate->ticket_received); + if (session_negotiate->ticket_received > now || + age > session_negotiate->ticket_lifetime) { /* Without valid ticket, disable session resumption.*/ MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket expired, disable session resumption" ) ); + 3, ("Ticket expired, disable session resumption")); ssl->handshake->resume = 0; } } @@ -757,30 +751,26 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */ - if( ssl->conf->f_rng == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no RNG provided" ) ); - return( MBEDTLS_ERR_SSL_NO_RNG ); + if (ssl->conf->f_rng == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no RNG provided")); + return MBEDTLS_ERR_SSL_NO_RNG; } /* Bet on the highest configured version if we are not in a TLS 1.2 * renegotiation or session resumption. */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { ssl->handshake->min_tls_version = ssl->tls_version; - else + } else #endif { - if( ssl->handshake->resume ) - { - ssl->tls_version = session_negotiate->tls_version; - ssl->handshake->min_tls_version = ssl->tls_version; - } - else - { - ssl->tls_version = ssl->conf->max_tls_version; - ssl->handshake->min_tls_version = ssl->conf->min_tls_version; + if (ssl->handshake->resume) { + ssl->tls_version = session_negotiate->tls_version; + ssl->handshake->min_tls_version = ssl->tls_version; + } else { + ssl->tls_version = ssl->conf->max_tls_version; + ssl->handshake->min_tls_version = ssl->conf->min_tls_version; } } @@ -790,15 +780,14 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) * (RFC 6347 4.2.1). */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) || - ( ssl->handshake->cookie == NULL ) ) + if ((ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) || + (ssl->handshake->cookie == NULL)) #endif { - ret = ssl_generate_random( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "Random bytes generation failed", ret ); - return( ret ); + ret = ssl_generate_random(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "Random bytes generation failed", ret); + return ret; } } @@ -811,32 +800,29 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) session_id_len = session_negotiate->id_len; #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { - if( session_id_len < 16 || session_id_len > 32 || + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { + if (session_id_len < 16 || session_id_len > 32 || #if defined(MBEDTLS_SSL_RENEGOTIATION) ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE || #endif - ssl->handshake->resume == 0 ) - { + ssl->handshake->resume == 0) { session_id_len = 0; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) - /* - * RFC 5077 section 3.4: "When presenting a ticket, the client MAY - * generate and include a Session ID in the TLS ClientHello." - */ + /* + * RFC 5077 section 3.4: "When presenting a ticket, the client MAY + * generate and include a Session ID in the TLS ClientHello." + */ int renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { renegotiating = 1; + } #endif - if( !renegotiating ) - { - if( ( session_negotiate->ticket != NULL ) && - ( session_negotiate->ticket_len != 0 ) ) - { + if (!renegotiating) { + if ((session_negotiate->ticket != NULL) && + (session_negotiate->ticket_len != 0)) { session_id_len = 32; } } @@ -845,8 +831,7 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* * Create a legacy session identifier for the purpose of middlebox * compatibility only if one has not been created already, which is @@ -867,18 +852,15 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) } #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ - if( session_id_len != session_negotiate->id_len ) - { + if (session_id_len != session_negotiate->id_len) { session_negotiate->id_len = session_id_len; - if( session_id_len > 0 ) - { - ret = ssl->conf->f_rng( ssl->conf->p_rng, - session_negotiate->id, - session_id_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "creating session id failed", ret ); - return( ret ); + if (session_id_len > 0) { + ret = ssl->conf->f_rng(ssl->conf->p_rng, + session_negotiate->id, + session_id_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "creating session id failed", ret); + return ret; } } } @@ -886,64 +868,58 @@ static int ssl_prepare_client_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ssl->handshake->resume ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + ssl->handshake->resume) { int hostname_mismatch = ssl->hostname != NULL || session_negotiate->hostname != NULL; - if( ssl->hostname != NULL && session_negotiate->hostname != NULL ) - { + if (ssl->hostname != NULL && session_negotiate->hostname != NULL) { hostname_mismatch = strcmp( - ssl->hostname, session_negotiate->hostname ) != 0; + ssl->hostname, session_negotiate->hostname) != 0; } - if( hostname_mismatch ) - { + if (hostname_mismatch) { MBEDTLS_SSL_DEBUG_MSG( - 1, ( "Hostname mismatch the session ticket, " - "disable session resumption." ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + 1, ("Hostname mismatch the session ticket, " + "disable session resumption.")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - } - else - { - return mbedtls_ssl_session_set_hostname( session_negotiate, - ssl->hostname ); + } else { + return mbedtls_ssl_session_set_hostname(session_negotiate, + ssl->hostname); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_SERVER_NAME_INDICATION */ - return( 0 ); + return 0; } /* * Write ClientHello handshake message. * Handler for MBEDTLS_SSL_CLIENT_HELLO */ -int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_client_hello(mbedtls_ssl_context *ssl) { int ret = 0; unsigned char *buf; size_t buf_len, msg_len, binders_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write client hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write client hello")); - MBEDTLS_SSL_PROC_CHK( ssl_prepare_client_hello( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_prepare_client_hello(ssl)); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( - ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_write_client_hello_body( ssl, buf, - buf + buf_len, - &msg_len, - &binders_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_write_client_hello_body(ssl, buf, + buf + buf_len, + &msg_len, + &binders_len)); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->out_msglen = msg_len + 4; - mbedtls_ssl_send_flight_completed( ssl ); + mbedtls_ssl_send_flight_completed(ssl); /* * The two functions below may try to send data on the network and @@ -954,48 +930,44 @@ int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ) * that we will not write and send again a ClientHello when we * eventually succeed in sending the pending data. */ - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_HELLO ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_HELLO); - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - if( ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flight_transmit", ret ); - return( ret ); + if ((ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flight_transmit", ret); + return ret; } - } - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_SSL_PROTO_DTLS */ { - mbedtls_ssl_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, - msg_len ); - ssl->handshake->update_checksum( ssl, buf, msg_len - binders_len ); + mbedtls_ssl_add_hs_hdr_to_checksum(ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, + msg_len); + ssl->handshake->update_checksum(ssl, buf, msg_len - binders_len); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - if( binders_len > 0 ) - { + if (binders_len > 0) { MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( - ssl, buf + msg_len - binders_len, buf + msg_len ) ); - ssl->handshake->update_checksum( ssl, buf + msg_len - binders_len, - binders_len ); + ssl, buf + msg_len - binders_len, buf + msg_len)); + ssl->handshake->update_checksum(ssl, buf + msg_len - binders_len, + binders_len); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, - buf_len, - msg_len ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_HELLO ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg(ssl, + buf_len, + msg_len)); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_HELLO); } cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write client hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write client hello")); return ret; } diff --git a/library/ssl_client.h b/library/ssl_client.h index be4d0677d..f57bea33f 100644 --- a/library/ssl_client.h +++ b/library/ssl_client.h @@ -29,6 +29,6 @@ #include MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_client_hello( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_write_client_hello(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_CLIENT_H */ diff --git a/library/ssl_cookie.c b/library/ssl_cookie.c index a996174eb..b7eead402 100644 --- a/library/ssl_cookie.c +++ b/library/ssl_cookie.c @@ -57,14 +57,14 @@ * Cookies are formed of a 4-bytes timestamp (or serial number) and * an HMAC of timestamp and client ID. */ -#define COOKIE_LEN ( 4 + COOKIE_HMAC_LEN ) +#define COOKIE_LEN (4 + COOKIE_HMAC_LEN) -void mbedtls_ssl_cookie_init( mbedtls_ssl_cookie_ctx *ctx ) +void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx) { #if defined(MBEDTLS_USE_PSA_CRYPTO) ctx->psa_hmac_key = MBEDTLS_SVC_KEY_ID_INIT; #else - mbedtls_md_init( &ctx->hmac_ctx ); + mbedtls_md_init(&ctx->hmac_ctx); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if !defined(MBEDTLS_HAVE_TIME) ctx->serial = 0; @@ -73,80 +73,83 @@ void mbedtls_ssl_cookie_init( mbedtls_ssl_cookie_ctx *ctx ) #if !defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif #endif /* !MBEDTLS_USE_PSA_CRYPTO */ } -void mbedtls_ssl_cookie_set_timeout( mbedtls_ssl_cookie_ctx *ctx, unsigned long delay ) +void mbedtls_ssl_cookie_set_timeout(mbedtls_ssl_cookie_ctx *ctx, unsigned long delay) { ctx->timeout = delay; } -void mbedtls_ssl_cookie_free( mbedtls_ssl_cookie_ctx *ctx ) +void mbedtls_ssl_cookie_free(mbedtls_ssl_cookie_ctx *ctx) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( ctx->psa_hmac_key ); + psa_destroy_key(ctx->psa_hmac_key); #else - mbedtls_md_free( &ctx->hmac_ctx ); + mbedtls_md_free(&ctx->hmac_ctx); #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_free( &ctx->mutex ); + mbedtls_mutex_free(&ctx->mutex); #endif #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ssl_cookie_ctx ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ssl_cookie_ctx)); } -int mbedtls_ssl_cookie_setup( mbedtls_ssl_cookie_ctx *ctx, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_algorithm_t alg; - (void)f_rng; - (void)p_rng; + (void) f_rng; + (void) p_rng; - alg = mbedtls_hash_info_psa_from_md( COOKIE_MD ); - if( alg == 0 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + alg = mbedtls_hash_info_psa_from_md(COOKIE_MD); + if (alg == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ctx->psa_hmac_alg = PSA_ALG_TRUNCATED_MAC( PSA_ALG_HMAC( alg ), - COOKIE_HMAC_LEN ); + ctx->psa_hmac_alg = PSA_ALG_TRUNCATED_MAC(PSA_ALG_HMAC(alg), + COOKIE_HMAC_LEN); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE | - PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, ctx->psa_hmac_alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); - psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( COOKIE_MD_OUTLEN ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_MESSAGE | + PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, ctx->psa_hmac_alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(COOKIE_MD_OUTLEN)); - if( ( status = psa_generate_key( &attributes, - &ctx->psa_hmac_key ) ) != PSA_SUCCESS ) - { - return psa_ssl_status_to_mbedtls( status ); + if ((status = psa_generate_key(&attributes, + &ctx->psa_hmac_key)) != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); } #else int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char key[COOKIE_MD_OUTLEN]; - if( ( ret = f_rng( p_rng, key, sizeof( key ) ) ) != 0 ) - return( ret ); + if ((ret = f_rng(p_rng, key, sizeof(key))) != 0) { + return ret; + } - ret = mbedtls_md_setup( &ctx->hmac_ctx, mbedtls_md_info_from_type( COOKIE_MD ), 1 ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_md_setup(&ctx->hmac_ctx, mbedtls_md_info_from_type(COOKIE_MD), 1); + if (ret != 0) { + return ret; + } - ret = mbedtls_md_hmac_starts( &ctx->hmac_ctx, key, sizeof( key ) ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_md_hmac_starts(&ctx->hmac_ctx, key, sizeof(key)); + if (ret != 0) { + return ret; + } - mbedtls_platform_zeroize( key, sizeof( key ) ); + mbedtls_platform_zeroize(key, sizeof(key)); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( 0 ); + return 0; } #if !defined(MBEDTLS_USE_PSA_CRYPTO) @@ -154,36 +157,35 @@ int mbedtls_ssl_cookie_setup( mbedtls_ssl_cookie_ctx *ctx, * Generate the HMAC part of a cookie */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_cookie_hmac( mbedtls_md_context_t *hmac_ctx, - const unsigned char time[4], - unsigned char **p, unsigned char *end, - const unsigned char *cli_id, size_t cli_id_len ) +static int ssl_cookie_hmac(mbedtls_md_context_t *hmac_ctx, + const unsigned char time[4], + unsigned char **p, unsigned char *end, + const unsigned char *cli_id, size_t cli_id_len) { unsigned char hmac_out[COOKIE_MD_OUTLEN]; - MBEDTLS_SSL_CHK_BUF_PTR( *p, end, COOKIE_HMAC_LEN ); + MBEDTLS_SSL_CHK_BUF_PTR(*p, end, COOKIE_HMAC_LEN); - if( mbedtls_md_hmac_reset( hmac_ctx ) != 0 || - mbedtls_md_hmac_update( hmac_ctx, time, 4 ) != 0 || - mbedtls_md_hmac_update( hmac_ctx, cli_id, cli_id_len ) != 0 || - mbedtls_md_hmac_finish( hmac_ctx, hmac_out ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (mbedtls_md_hmac_reset(hmac_ctx) != 0 || + mbedtls_md_hmac_update(hmac_ctx, time, 4) != 0 || + mbedtls_md_hmac_update(hmac_ctx, cli_id, cli_id_len) != 0 || + mbedtls_md_hmac_finish(hmac_ctx, hmac_out) != 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - memcpy( *p, hmac_out, COOKIE_HMAC_LEN ); + memcpy(*p, hmac_out, COOKIE_HMAC_LEN); *p += COOKIE_HMAC_LEN; - return( 0 ); + return 0; } #endif /* !MBEDTLS_USE_PSA_CRYPTO */ /* * Generate cookie for DTLS ClientHello verification */ -int mbedtls_ssl_cookie_write( void *p_ctx, - unsigned char **p, unsigned char *end, - const unsigned char *cli_id, size_t cli_id_len ) +int mbedtls_ssl_cookie_write(void *p_ctx, + unsigned char **p, unsigned char *end, + const unsigned char *cli_id, size_t cli_id_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; @@ -194,13 +196,14 @@ int mbedtls_ssl_cookie_write( void *p_ctx, mbedtls_ssl_cookie_ctx *ctx = (mbedtls_ssl_cookie_ctx *) p_ctx; unsigned long t; - if( ctx == NULL || cli_id == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ctx == NULL || cli_id == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_SSL_CHK_BUF_PTR( *p, end, COOKIE_LEN ); + MBEDTLS_SSL_CHK_BUF_PTR(*p, end, COOKIE_LEN); #if defined(MBEDTLS_HAVE_TIME) - t = (unsigned long) mbedtls_time( NULL ); + t = (unsigned long) mbedtls_time(NULL); #else t = ctx->serial++; #endif @@ -209,33 +212,29 @@ int mbedtls_ssl_cookie_write( void *p_ctx, *p += 4; #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_sign_setup( &operation, ctx->psa_hmac_key, - ctx->psa_hmac_alg ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_sign_setup(&operation, ctx->psa_hmac_key, + ctx->psa_hmac_alg); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_update( &operation, *p - 4, 4 ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_update(&operation, *p - 4, 4); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_update( &operation, cli_id, cli_id_len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_update(&operation, cli_id, cli_id_len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_sign_finish( &operation, *p, COOKIE_MD_OUTLEN, - &sign_mac_length ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_sign_finish(&operation, *p, COOKIE_MD_OUTLEN, + &sign_mac_length); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } @@ -244,35 +243,38 @@ int mbedtls_ssl_cookie_write( void *p_ctx, ret = 0; #else #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret ) ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret); + } #endif - ret = ssl_cookie_hmac( &ctx->hmac_ctx, *p - 4, - p, end, cli_id, cli_id_len ); + ret = ssl_cookie_hmac(&ctx->hmac_ctx, *p - 4, + p, end, cli_id, cli_id_len); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_SSL_INTERNAL_ERROR, - MBEDTLS_ERR_THREADING_MUTEX_ERROR ) ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, + MBEDTLS_ERR_THREADING_MUTEX_ERROR); + } #endif #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) exit: - status = psa_mac_abort( &operation ); - if( status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_abort(&operation); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( ret ); + return ret; } /* * Check a cookie */ -int mbedtls_ssl_cookie_check( void *p_ctx, - const unsigned char *cookie, size_t cookie_len, - const unsigned char *cli_id, size_t cli_id_len ) +int mbedtls_ssl_cookie_check(void *p_ctx, + const unsigned char *cookie, size_t cookie_len, + const unsigned char *cli_id, size_t cli_id_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; @@ -285,99 +287,98 @@ int mbedtls_ssl_cookie_check( void *p_ctx, mbedtls_ssl_cookie_ctx *ctx = (mbedtls_ssl_cookie_ctx *) p_ctx; unsigned long cur_time, cookie_time; - if( ctx == NULL || cli_id == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ctx == NULL || cli_id == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( cookie_len != COOKIE_LEN ) - return( -1 ); + if (cookie_len != COOKIE_LEN) { + return -1; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_verify_setup( &operation, ctx->psa_hmac_key, - ctx->psa_hmac_alg ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_verify_setup(&operation, ctx->psa_hmac_key, + ctx->psa_hmac_alg); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_update( &operation, cookie, 4 ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_update(&operation, cookie, 4); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_update( &operation, cli_id, - cli_id_len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_update(&operation, cli_id, + cli_id_len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } - status = psa_mac_verify_finish( &operation, cookie + 4, - COOKIE_HMAC_LEN ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_verify_finish(&operation, cookie + 4, + COOKIE_HMAC_LEN); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto exit; } ret = 0; #else #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret ) ); -#endif - - if( ssl_cookie_hmac( &ctx->hmac_ctx, cookie, - &p, p + sizeof( ref_hmac ), - cli_id, cli_id_len ) != 0 ) - ret = -1; - -#if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_SSL_INTERNAL_ERROR, - MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, ret); } #endif - if( ret != 0 ) - goto exit; + if (ssl_cookie_hmac(&ctx->hmac_ctx, cookie, + &p, p + sizeof(ref_hmac), + cli_id, cli_id_len) != 0) { + ret = -1; + } - if( mbedtls_ct_memcmp( cookie + 4, ref_hmac, sizeof( ref_hmac ) ) != 0 ) - { +#if defined(MBEDTLS_THREADING_C) + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_SSL_INTERNAL_ERROR, + MBEDTLS_ERR_THREADING_MUTEX_ERROR); + } +#endif + + if (ret != 0) { + goto exit; + } + + if (mbedtls_ct_memcmp(cookie + 4, ref_hmac, sizeof(ref_hmac)) != 0) { ret = -1; goto exit; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_HAVE_TIME) - cur_time = (unsigned long) mbedtls_time( NULL ); + cur_time = (unsigned long) mbedtls_time(NULL); #else cur_time = ctx->serial; #endif - cookie_time = ( (unsigned long) cookie[0] << 24 ) | - ( (unsigned long) cookie[1] << 16 ) | - ( (unsigned long) cookie[2] << 8 ) | - ( (unsigned long) cookie[3] ); + cookie_time = ((unsigned long) cookie[0] << 24) | + ((unsigned long) cookie[1] << 16) | + ((unsigned long) cookie[2] << 8) | + ((unsigned long) cookie[3]); - if( ctx->timeout != 0 && cur_time - cookie_time > ctx->timeout ) - { + if (ctx->timeout != 0 && cur_time - cookie_time > ctx->timeout) { ret = -1; goto exit; } exit: #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_abort( &operation ); - if( status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_mac_abort(&operation); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } #else - mbedtls_platform_zeroize( ref_hmac, sizeof( ref_hmac ) ); + mbedtls_platform_zeroize(ref_hmac, sizeof(ref_hmac)); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_COOKIE_C */ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 4412f8e21..4d2a170ed 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -31,43 +31,43 @@ #include "ssl_misc.h" -const char *mbedtls_ssl_states_str( mbedtls_ssl_states in ); +const char *mbedtls_ssl_states_str(mbedtls_ssl_states in); -const char *mbedtls_ssl_protocol_version_str( mbedtls_ssl_protocol_version in ); +const char *mbedtls_ssl_protocol_version_str(mbedtls_ssl_protocol_version in); -const char *mbedtls_tls_prf_types_str( mbedtls_tls_prf_types in ); +const char *mbedtls_tls_prf_types_str(mbedtls_tls_prf_types in); -const char *mbedtls_ssl_key_export_type_str( mbedtls_ssl_key_export_type in ); +const char *mbedtls_ssl_key_export_type_str(mbedtls_ssl_key_export_type in); -const char *mbedtls_ssl_sig_alg_to_str( uint16_t in ); +const char *mbedtls_ssl_sig_alg_to_str(uint16_t in); -const char *mbedtls_ssl_named_group_to_str( uint16_t in ); +const char *mbedtls_ssl_named_group_to_str(uint16_t in); -const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ); +const char *mbedtls_ssl_get_extension_name(unsigned int extension_type); -void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, uint32_t extensions_mask, - const char *extra ); - -void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, +void mbedtls_ssl_print_extensions(const mbedtls_ssl_context *ssl, int level, const char *file, int line, - int hs_msg_type, unsigned int extension_type, - const char *extra_msg0, const char *extra_msg1 ); + int hs_msg_type, uint32_t extensions_mask, + const char *extra); -#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extensions_mask ) \ - mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extensions_mask, NULL ) +void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1); -#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) \ - mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__, \ - hs_msg_type, extension_type, \ - extra, NULL ) +#define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extensions_mask) \ + mbedtls_ssl_print_extensions(ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extensions_mask, NULL) + +#define MBEDTLS_SSL_PRINT_EXT(level, hs_msg_type, extension_type, extra) \ + mbedtls_ssl_print_extension(ssl, level, __FILE__, __LINE__, \ + hs_msg_type, extension_type, \ + extra, NULL) #else -#define MBEDTLS_SSL_PRINT_EXTS( level, hs_msg_type, extension_mask ) +#define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extension_mask) -#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra ) +#define MBEDTLS_SSL_PRINT_EXT(level, hs_msg_type, extension_type, extra) #endif /* MBEDTLS_DEBUG_C */ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index d558e38aa..16eccfc9e 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -71,7 +71,7 @@ #define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */ /* Faked handshake message identity for HelloRetryRequest. */ -#define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST ( -MBEDTLS_SSL_HS_SERVER_HELLO ) +#define MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST (-MBEDTLS_SSL_HS_SERVER_HELLO) /* * Internal identity of handshake extensions @@ -108,10 +108,10 @@ #define MBEDTLS_SSL_EXT_ID_SESSION_TICKET 27 /* Utility for translating IANA extension type. */ -uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ); -uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); +uint32_t mbedtls_ssl_get_extension_id(unsigned int extension_type); +uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type); /* Macros used to define mask constants */ -#define MBEDTLS_SSL_EXT_MASK( id ) ( 1ULL << ( MBEDTLS_SSL_EXT_ID_##id ) ) +#define MBEDTLS_SSL_EXT_MASK(id) (1ULL << (MBEDTLS_SSL_EXT_ID_##id)) /* Reset value of extension mask */ #define MBEDTLS_SSL_EXT_MASK_NONE 0 @@ -136,81 +136,81 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* Extensions that are not recognized by TLS 1.3 */ #define MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED \ - ( MBEDTLS_SSL_EXT_MASK( SUPPORTED_POINT_FORMATS ) | \ - MBEDTLS_SSL_EXT_MASK( ENCRYPT_THEN_MAC ) | \ - MBEDTLS_SSL_EXT_MASK( EXTENDED_MASTER_SECRET ) | \ - MBEDTLS_SSL_EXT_MASK( SESSION_TICKET ) | \ - MBEDTLS_SSL_EXT_MASK( TRUNCATED_HMAC ) | \ - MBEDTLS_SSL_EXT_MASK( UNRECOGNIZED ) ) + (MBEDTLS_SSL_EXT_MASK(SUPPORTED_POINT_FORMATS) | \ + MBEDTLS_SSL_EXT_MASK(ENCRYPT_THEN_MAC) | \ + MBEDTLS_SSL_EXT_MASK(EXTENDED_MASTER_SECRET) | \ + MBEDTLS_SSL_EXT_MASK(SESSION_TICKET) | \ + MBEDTLS_SSL_EXT_MASK(TRUNCATED_HMAC) | \ + MBEDTLS_SSL_EXT_MASK(UNRECOGNIZED)) /* RFC 8446 section 4.2. Allowed extensions for ClientHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH \ - ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ - MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ - MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ - MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ - MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ - MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ - MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ - MBEDTLS_SSL_EXT_MASK( ALPN ) | \ - MBEDTLS_SSL_EXT_MASK( SCT ) | \ - MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ - MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ - MBEDTLS_SSL_EXT_MASK( PADDING ) | \ - MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ - MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ - MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) | \ - MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ - MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ - MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) | \ - MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ - MBEDTLS_SSL_EXT_MASK( POST_HANDSHAKE_AUTH ) | \ - MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) + (MBEDTLS_SSL_EXT_MASK(SERVERNAME) | \ + MBEDTLS_SSL_EXT_MASK(MAX_FRAGMENT_LENGTH) | \ + MBEDTLS_SSL_EXT_MASK(STATUS_REQUEST) | \ + MBEDTLS_SSL_EXT_MASK(SUPPORTED_GROUPS) | \ + MBEDTLS_SSL_EXT_MASK(SIG_ALG) | \ + MBEDTLS_SSL_EXT_MASK(USE_SRTP) | \ + MBEDTLS_SSL_EXT_MASK(HEARTBEAT) | \ + MBEDTLS_SSL_EXT_MASK(ALPN) | \ + MBEDTLS_SSL_EXT_MASK(SCT) | \ + MBEDTLS_SSL_EXT_MASK(CLI_CERT_TYPE) | \ + MBEDTLS_SSL_EXT_MASK(SERV_CERT_TYPE) | \ + MBEDTLS_SSL_EXT_MASK(PADDING) | \ + MBEDTLS_SSL_EXT_MASK(KEY_SHARE) | \ + MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | \ + MBEDTLS_SSL_EXT_MASK(PSK_KEY_EXCHANGE_MODES) | \ + MBEDTLS_SSL_EXT_MASK(EARLY_DATA) | \ + MBEDTLS_SSL_EXT_MASK(COOKIE) | \ + MBEDTLS_SSL_EXT_MASK(SUPPORTED_VERSIONS) | \ + MBEDTLS_SSL_EXT_MASK(CERT_AUTH) | \ + MBEDTLS_SSL_EXT_MASK(POST_HANDSHAKE_AUTH) | \ + MBEDTLS_SSL_EXT_MASK(SIG_ALG_CERT) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED) /* RFC 8446 section 4.2. Allowed extensions for EncryptedExtensions */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE \ - ( MBEDTLS_SSL_EXT_MASK( SERVERNAME ) | \ - MBEDTLS_SSL_EXT_MASK( MAX_FRAGMENT_LENGTH ) | \ - MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | \ - MBEDTLS_SSL_EXT_MASK( USE_SRTP ) | \ - MBEDTLS_SSL_EXT_MASK( HEARTBEAT ) | \ - MBEDTLS_SSL_EXT_MASK( ALPN ) | \ - MBEDTLS_SSL_EXT_MASK( CLI_CERT_TYPE ) | \ - MBEDTLS_SSL_EXT_MASK( SERV_CERT_TYPE ) | \ - MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) ) + (MBEDTLS_SSL_EXT_MASK(SERVERNAME) | \ + MBEDTLS_SSL_EXT_MASK(MAX_FRAGMENT_LENGTH) | \ + MBEDTLS_SSL_EXT_MASK(SUPPORTED_GROUPS) | \ + MBEDTLS_SSL_EXT_MASK(USE_SRTP) | \ + MBEDTLS_SSL_EXT_MASK(HEARTBEAT) | \ + MBEDTLS_SSL_EXT_MASK(ALPN) | \ + MBEDTLS_SSL_EXT_MASK(CLI_CERT_TYPE) | \ + MBEDTLS_SSL_EXT_MASK(SERV_CERT_TYPE) | \ + MBEDTLS_SSL_EXT_MASK(EARLY_DATA)) /* RFC 8446 section 4.2. Allowed extensions for CertificateRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR \ - ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ - MBEDTLS_SSL_EXT_MASK( SIG_ALG ) | \ - MBEDTLS_SSL_EXT_MASK( SCT ) | \ - MBEDTLS_SSL_EXT_MASK( CERT_AUTH ) | \ - MBEDTLS_SSL_EXT_MASK( OID_FILTERS ) | \ - MBEDTLS_SSL_EXT_MASK( SIG_ALG_CERT ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) + (MBEDTLS_SSL_EXT_MASK(STATUS_REQUEST) | \ + MBEDTLS_SSL_EXT_MASK(SIG_ALG) | \ + MBEDTLS_SSL_EXT_MASK(SCT) | \ + MBEDTLS_SSL_EXT_MASK(CERT_AUTH) | \ + MBEDTLS_SSL_EXT_MASK(OID_FILTERS) | \ + MBEDTLS_SSL_EXT_MASK(SIG_ALG_CERT) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED) /* RFC 8446 section 4.2. Allowed extensions for Certificate */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT \ - ( MBEDTLS_SSL_EXT_MASK( STATUS_REQUEST ) | \ - MBEDTLS_SSL_EXT_MASK( SCT ) ) + (MBEDTLS_SSL_EXT_MASK(STATUS_REQUEST) | \ + MBEDTLS_SSL_EXT_MASK(SCT)) /* RFC 8446 section 4.2. Allowed extensions for ServerHello */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH \ - ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ - MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | \ - MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) + (MBEDTLS_SSL_EXT_MASK(KEY_SHARE) | \ + MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | \ + MBEDTLS_SSL_EXT_MASK(SUPPORTED_VERSIONS)) /* RFC 8446 section 4.2. Allowed extensions for HelloRetryRequest */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR \ - ( MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | \ - MBEDTLS_SSL_EXT_MASK( COOKIE ) | \ - MBEDTLS_SSL_EXT_MASK( SUPPORTED_VERSIONS ) ) + (MBEDTLS_SSL_EXT_MASK(KEY_SHARE) | \ + MBEDTLS_SSL_EXT_MASK(COOKIE) | \ + MBEDTLS_SSL_EXT_MASK(SUPPORTED_VERSIONS)) /* RFC 8446 section 4.2. Allowed extensions for NewSessionTicket */ #define MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST \ - ( MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) | \ - MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED ) + (MBEDTLS_SSL_EXT_MASK(EARLY_DATA) | \ + MBEDTLS_SSL_TLS1_3_EXT_MASK_UNRECOGNIZED) /* * Helper macros for function call with return check. @@ -218,25 +218,25 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* * Exit when return non-zero value */ -#define MBEDTLS_SSL_PROC_CHK( f ) \ +#define MBEDTLS_SSL_PROC_CHK(f) \ do { \ - ret = ( f ); \ - if( ret != 0 ) \ + ret = (f); \ + if (ret != 0) \ { \ goto cleanup; \ } \ - } while( 0 ) + } while (0) /* * Exit when return negative value */ -#define MBEDTLS_SSL_PROC_CHK_NEG( f ) \ +#define MBEDTLS_SSL_PROC_CHK_NEG(f) \ do { \ - ret = ( f ); \ - if( ret < 0 ) \ + ret = (f); \ + if (ret < 0) \ { \ goto cleanup; \ } \ - } while( 0 ) + } while (0) /* * DTLS retransmission states, see RFC 6347 4.2.4 @@ -260,10 +260,10 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* This macro determines whether CBC is supported. */ #if defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_AES_C) || \ - defined(MBEDTLS_CAMELLIA_C) || \ - defined(MBEDTLS_ARIA_C) || \ - defined(MBEDTLS_DES_C) ) + (defined(MBEDTLS_AES_C) || \ + defined(MBEDTLS_CAMELLIA_C) || \ + defined(MBEDTLS_ARIA_C) || \ + defined(MBEDTLS_DES_C)) #define MBEDTLS_SSL_SOME_SUITES_USE_CBC #endif @@ -275,7 +275,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); /* This macro determines whether the CBC construct used in TLS 1.2 is supported. */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \ - defined(MBEDTLS_SSL_PROTO_TLS1_2) + defined(MBEDTLS_SSL_PROTO_TLS1_2) #define MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC #endif @@ -318,17 +318,17 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); #define MBEDTLS_SSL_MAX_CID_EXPANSION 0 #endif -#define MBEDTLS_SSL_PAYLOAD_OVERHEAD ( MBEDTLS_MAX_IV_LENGTH + \ - MBEDTLS_SSL_MAC_ADD + \ - MBEDTLS_SSL_PADDING_ADD + \ - MBEDTLS_SSL_MAX_CID_EXPANSION \ - ) +#define MBEDTLS_SSL_PAYLOAD_OVERHEAD (MBEDTLS_MAX_IV_LENGTH + \ + MBEDTLS_SSL_MAC_ADD + \ + MBEDTLS_SSL_PADDING_ADD + \ + MBEDTLS_SSL_MAX_CID_EXPANSION \ + ) -#define MBEDTLS_SSL_IN_PAYLOAD_LEN ( MBEDTLS_SSL_PAYLOAD_OVERHEAD + \ - ( MBEDTLS_SSL_IN_CONTENT_LEN ) ) +#define MBEDTLS_SSL_IN_PAYLOAD_LEN (MBEDTLS_SSL_PAYLOAD_OVERHEAD + \ + (MBEDTLS_SSL_IN_CONTENT_LEN)) -#define MBEDTLS_SSL_OUT_PAYLOAD_LEN ( MBEDTLS_SSL_PAYLOAD_OVERHEAD + \ - ( MBEDTLS_SSL_OUT_CONTENT_LEN ) ) +#define MBEDTLS_SSL_OUT_PAYLOAD_LEN (MBEDTLS_SSL_PAYLOAD_OVERHEAD + \ + (MBEDTLS_SSL_OUT_CONTENT_LEN)) /* The maximum number of buffered handshake messages. */ #define MBEDTLS_SSL_MAX_BUFFERED_HS 4 @@ -339,8 +339,8 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); */ #define MBEDTLS_TLS_EXT_ADV_CONTENT_LEN ( \ (MBEDTLS_SSL_IN_CONTENT_LEN > MBEDTLS_SSL_OUT_CONTENT_LEN) \ - ? ( MBEDTLS_SSL_OUT_CONTENT_LEN ) \ - : ( MBEDTLS_SSL_IN_CONTENT_LEN ) \ + ? (MBEDTLS_SSL_OUT_CONTENT_LEN) \ + : (MBEDTLS_SSL_IN_CONTENT_LEN) \ ) /* Maximum size in bytes of list in signature algorithms ext., RFC 5246/8446 */ @@ -359,7 +359,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); #define MBEDTLS_TLS_SIG_NONE MBEDTLS_TLS1_3_SIG_NONE #if defined(MBEDTLS_SSL_PROTO_TLS1_2) -#define MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( sig, hash ) (( hash << 8 ) | sig) +#define MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(sig, hash) ((hash << 8) | sig) #define MBEDTLS_SSL_TLS12_SIG_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg & 0xFF) #define MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG(alg) (alg >> 8) #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ @@ -395,20 +395,20 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); #if !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) #define MBEDTLS_SSL_IN_BUFFER_LEN \ - ( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_IN_PAYLOAD_LEN ) ) + ((MBEDTLS_SSL_HEADER_LEN) + (MBEDTLS_SSL_IN_PAYLOAD_LEN)) #else #define MBEDTLS_SSL_IN_BUFFER_LEN \ - ( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_IN_PAYLOAD_LEN ) \ - + ( MBEDTLS_SSL_CID_IN_LEN_MAX ) ) + ((MBEDTLS_SSL_HEADER_LEN) + (MBEDTLS_SSL_IN_PAYLOAD_LEN) \ + + (MBEDTLS_SSL_CID_IN_LEN_MAX)) #endif #if !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) #define MBEDTLS_SSL_OUT_BUFFER_LEN \ - ( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_OUT_PAYLOAD_LEN ) ) + ((MBEDTLS_SSL_HEADER_LEN) + (MBEDTLS_SSL_OUT_PAYLOAD_LEN)) #else #define MBEDTLS_SSL_OUT_BUFFER_LEN \ - ( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_OUT_PAYLOAD_LEN ) \ - + ( MBEDTLS_SSL_CID_OUT_LEN_MAX ) ) + ((MBEDTLS_SSL_HEADER_LEN) + (MBEDTLS_SSL_OUT_PAYLOAD_LEN) \ + + (MBEDTLS_SSL_CID_OUT_LEN_MAX)) #endif #define MBEDTLS_CLIENT_HELLO_RANDOM_LEN 32 @@ -428,7 +428,7 @@ uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ); * * \return Current maximum fragment length for the output buffer. */ -size_t mbedtls_ssl_get_output_max_frag_len( const mbedtls_ssl_context *ssl ); +size_t mbedtls_ssl_get_output_max_frag_len(const mbedtls_ssl_context *ssl); /** * \brief Return the maximum fragment length (payload, in bytes) for @@ -444,31 +444,31 @@ size_t mbedtls_ssl_get_output_max_frag_len( const mbedtls_ssl_context *ssl ); * * \return Current maximum fragment length for the output buffer. */ -size_t mbedtls_ssl_get_input_max_frag_len( const mbedtls_ssl_context *ssl ); +size_t mbedtls_ssl_get_input_max_frag_len(const mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) -static inline size_t mbedtls_ssl_get_output_buflen( const mbedtls_ssl_context *ctx ) +static inline size_t mbedtls_ssl_get_output_buflen(const mbedtls_ssl_context *ctx) { -#if defined (MBEDTLS_SSL_DTLS_CONNECTION_ID) - return mbedtls_ssl_get_output_max_frag_len( ctx ) - + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD - + MBEDTLS_SSL_CID_OUT_LEN_MAX; +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + return mbedtls_ssl_get_output_max_frag_len(ctx) + + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD + + MBEDTLS_SSL_CID_OUT_LEN_MAX; #else - return mbedtls_ssl_get_output_max_frag_len( ctx ) - + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD; + return mbedtls_ssl_get_output_max_frag_len(ctx) + + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD; #endif } -static inline size_t mbedtls_ssl_get_input_buflen( const mbedtls_ssl_context *ctx ) +static inline size_t mbedtls_ssl_get_input_buflen(const mbedtls_ssl_context *ctx) { -#if defined (MBEDTLS_SSL_DTLS_CONNECTION_ID) - return mbedtls_ssl_get_input_max_frag_len( ctx ) - + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD - + MBEDTLS_SSL_CID_IN_LEN_MAX; +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + return mbedtls_ssl_get_input_max_frag_len(ctx) + + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD + + MBEDTLS_SSL_CID_IN_LEN_MAX; #else - return mbedtls_ssl_get_input_max_frag_len( ctx ) - + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD; + return mbedtls_ssl_get_input_max_frag_len(ctx) + + MBEDTLS_SSL_HEADER_LEN + MBEDTLS_SSL_PAYLOAD_OVERHEAD; #endif } #endif @@ -492,36 +492,34 @@ static inline size_t mbedtls_ssl_get_input_buflen( const mbedtls_ssl_context *ct * \return Zero if the needed space is available in the buffer, non-zero * otherwise. */ -#if ! defined(MBEDTLS_TEST_HOOKS) -static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, - const uint8_t *end, size_t need ) +#if !defined(MBEDTLS_TEST_HOOKS) +static inline int mbedtls_ssl_chk_buf_ptr(const uint8_t *cur, + const uint8_t *end, size_t need) { - return( ( cur > end ) || ( need > (size_t)( end - cur ) ) ); + return (cur > end) || (need > (size_t) (end - cur)); } #else -typedef struct -{ +typedef struct { const uint8_t *cur; const uint8_t *end; size_t need; } mbedtls_ssl_chk_buf_ptr_args; void mbedtls_ssl_set_chk_buf_ptr_fail_args( - const uint8_t *cur, const uint8_t *end, size_t need ); -void mbedtls_ssl_reset_chk_buf_ptr_fail_args( void ); + const uint8_t *cur, const uint8_t *end, size_t need); +void mbedtls_ssl_reset_chk_buf_ptr_fail_args(void); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_cmp_chk_buf_ptr_fail_args( mbedtls_ssl_chk_buf_ptr_args *args ); +int mbedtls_ssl_cmp_chk_buf_ptr_fail_args(mbedtls_ssl_chk_buf_ptr_args *args); -static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, - const uint8_t *end, size_t need ) +static inline int mbedtls_ssl_chk_buf_ptr(const uint8_t *cur, + const uint8_t *end, size_t need) { - if( ( cur > end ) || ( need > (size_t)( end - cur ) ) ) - { - mbedtls_ssl_set_chk_buf_ptr_fail_args( cur, end, need ); - return( 1 ); + if ((cur > end) || (need > (size_t) (end - cur))) { + mbedtls_ssl_set_chk_buf_ptr_fail_args(cur, end, need); + return 1; } - return( 0 ); + return 0; } #endif /* MBEDTLS_TEST_HOOKS */ @@ -535,13 +533,13 @@ static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, * \param need Needed space in bytes. * */ -#define MBEDTLS_SSL_CHK_BUF_PTR( cur, end, need ) \ +#define MBEDTLS_SSL_CHK_BUF_PTR(cur, end, need) \ do { \ - if( mbedtls_ssl_chk_buf_ptr( ( cur ), ( end ), ( need ) ) != 0 ) \ + if (mbedtls_ssl_chk_buf_ptr((cur), (end), (need)) != 0) \ { \ - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); \ + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; \ } \ - } while( 0 ) + } while (0) /** * \brief This macro checks if the remaining length in an input buffer is @@ -557,26 +555,26 @@ static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, * \param need Needed length in bytes. * */ -#define MBEDTLS_SSL_CHK_BUF_READ_PTR( cur, end, need ) \ +#define MBEDTLS_SSL_CHK_BUF_READ_PTR(cur, end, need) \ do { \ - if( mbedtls_ssl_chk_buf_ptr( ( cur ), ( end ), ( need ) ) != 0 ) \ + if (mbedtls_ssl_chk_buf_ptr((cur), (end), (need)) != 0) \ { \ - MBEDTLS_SSL_DEBUG_MSG( 1, \ - ( "missing input data in %s", __func__ ) ); \ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, \ - MBEDTLS_ERR_SSL_DECODE_ERROR ); \ - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); \ + MBEDTLS_SSL_DEBUG_MSG(1, \ + ("missing input data in %s", __func__)); \ + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, \ + MBEDTLS_ERR_SSL_DECODE_ERROR); \ + return MBEDTLS_ERR_SSL_DECODE_ERROR; \ } \ - } while( 0 ) + } while (0) #ifdef __cplusplus extern "C" { #endif -typedef int mbedtls_ssl_tls_prf_cb( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ); +typedef int mbedtls_ssl_tls_prf_cb(const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen); /* cipher.h exports the maximum IV, key and block length from * all ciphers enabled in the config, regardless of whether those @@ -602,16 +600,15 @@ typedef int mbedtls_ssl_tls_prf_cb( const unsigned char *secret, size_t slen, * \brief The data structure holding the cryptographic material (key and IV) * used for record protection in TLS 1.3. */ -struct mbedtls_ssl_key_set -{ +struct mbedtls_ssl_key_set { /*! The key for client->server records. */ - unsigned char client_write_key[ MBEDTLS_SSL_MAX_KEY_LENGTH ]; + unsigned char client_write_key[MBEDTLS_SSL_MAX_KEY_LENGTH]; /*! The key for server->client records. */ - unsigned char server_write_key[ MBEDTLS_SSL_MAX_KEY_LENGTH ]; + unsigned char server_write_key[MBEDTLS_SSL_MAX_KEY_LENGTH]; /*! The IV for client->server records. */ - unsigned char client_write_iv[ MBEDTLS_SSL_MAX_IV_LENGTH ]; + unsigned char client_write_iv[MBEDTLS_SSL_MAX_IV_LENGTH]; /*! The IV for server->client records. */ - unsigned char server_write_iv[ MBEDTLS_SSL_MAX_IV_LENGTH ]; + unsigned char server_write_iv[MBEDTLS_SSL_MAX_IV_LENGTH]; size_t key_len; /*!< The length of client_write_key and * server_write_key, in Bytes. */ @@ -620,24 +617,21 @@ struct mbedtls_ssl_key_set }; typedef struct mbedtls_ssl_key_set mbedtls_ssl_key_set; -typedef struct -{ - unsigned char binder_key [ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char client_early_traffic_secret [ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char early_exporter_master_secret[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; +typedef struct { + unsigned char binder_key[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char client_early_traffic_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char early_exporter_master_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; } mbedtls_ssl_tls13_early_secrets; -typedef struct -{ - unsigned char client_handshake_traffic_secret[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; - unsigned char server_handshake_traffic_secret[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; +typedef struct { + unsigned char client_handshake_traffic_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char server_handshake_traffic_secret[MBEDTLS_TLS1_3_MD_MAX_SIZE]; } mbedtls_ssl_tls13_handshake_secrets; /* * This structure contains the parameters only needed during handshake. */ -struct mbedtls_ssl_handshake_params -{ +struct mbedtls_ssl_handshake_params { /* Frequently-used boolean or byte fields (placed early to take * advantage of smaller code size for indirect access on Arm Thumb) */ uint8_t resume; /*!< session resume indicator*/ @@ -819,16 +813,14 @@ struct mbedtls_ssl_handshake_params mbedtls_pk_context peer_pubkey; /*!< The public key from the peer. */ #endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - struct - { + struct { size_t total_bytes_buffered; /*!< Cumulative size of heap allocated * buffers used for message buffering. */ uint8_t seen_ccs; /*!< Indicates if a CCS message has * been seen in the current flight. */ - struct mbedtls_ssl_hs_buffer - { + struct mbedtls_ssl_hs_buffer { unsigned is_valid : 1; unsigned is_fragmented : 1; unsigned is_complete : 1; @@ -836,8 +828,7 @@ struct mbedtls_ssl_handshake_params size_t data_len; } hs[MBEDTLS_SSL_MAX_BUFFERED_HS]; - struct - { + struct { unsigned char *data; size_t len; unsigned epoch; @@ -846,8 +837,8 @@ struct mbedtls_ssl_handshake_params } buffering; #if defined(MBEDTLS_SSL_CLI_C) && \ - ( defined(MBEDTLS_SSL_PROTO_DTLS) || \ - defined(MBEDTLS_SSL_PROTO_TLS1_3) ) + (defined(MBEDTLS_SSL_PROTO_DTLS) || \ + defined(MBEDTLS_SSL_PROTO_TLS1_3)) unsigned char *cookie; /*!< HelloVerifyRequest cookie for DTLS * HelloRetryRequest cookie for TLS 1.3 */ #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -885,7 +876,7 @@ struct mbedtls_ssl_handshake_params unsigned int in_flight_start_seq; /*!< Minimum message sequence in the flight being received */ mbedtls_ssl_transform *alt_transform_out; /*!< Alternative transform for - resending messages */ + resending messages */ unsigned char alt_out_ctr[MBEDTLS_SSL_SEQUENCE_NUMBER_LEN]; /*!< Alternative record epoch/counter for resending messages */ @@ -896,7 +887,7 @@ struct mbedtls_ssl_handshake_params * has been negotiated. Possible values are * #MBEDTLS_SSL_CID_ENABLED and * #MBEDTLS_SSL_CID_DISABLED. */ - unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; /*! The peer's CID */ + unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX]; /*! The peer's CID */ uint8_t peer_cid_len; /*!< The length of * \c peer_cid. */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -942,11 +933,9 @@ struct mbedtls_ssl_handshake_params * State-local variables used during the processing * of a specific handshake state. */ - union - { + union { /* Outgoing Finished message */ - struct - { + struct { uint8_t preparation_done; /* Buffer holding digest of the handshake up to @@ -956,8 +945,7 @@ struct mbedtls_ssl_handshake_params } finished_out; /* Incoming Finished message */ - struct - { + struct { uint8_t preparation_done; /* Buffer holding digest of the handshake up to but @@ -972,10 +960,10 @@ struct mbedtls_ssl_handshake_params unsigned char randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN + MBEDTLS_SERVER_HELLO_RANDOM_LEN]; - /*!< random bytes */ + /*!< random bytes */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) unsigned char premaster[MBEDTLS_PREMASTER_SIZE]; - /*!< premaster secret */ + /*!< premaster secret */ size_t pmslen; /*!< premaster length */ #endif @@ -990,11 +978,10 @@ struct mbedtls_ssl_handshake_params /** TLS 1.3 transform for encrypted handshake messages. */ mbedtls_ssl_transform *transform_handshake; - union - { - unsigned char early [MBEDTLS_TLS1_3_MD_MAX_SIZE]; + union { + unsigned char early[MBEDTLS_TLS1_3_MD_MAX_SIZE]; unsigned char handshake[MBEDTLS_TLS1_3_MD_MAX_SIZE]; - unsigned char app [MBEDTLS_TLS1_3_MD_MAX_SIZE]; + unsigned char app[MBEDTLS_TLS1_3_MD_MAX_SIZE]; } tls13_master_secrets; mbedtls_ssl_tls13_handshake_secrets tls13_hs_secrets; @@ -1104,8 +1091,7 @@ typedef struct mbedtls_ssl_hs_buffer mbedtls_ssl_hs_buffer; * in other transformations. * */ -struct mbedtls_ssl_transform -{ +struct mbedtls_ssl_transform { /* * Session specific crypto layer */ @@ -1149,8 +1135,8 @@ struct mbedtls_ssl_transform #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) uint8_t in_cid_len; uint8_t out_cid_len; - unsigned char in_cid [ MBEDTLS_SSL_CID_IN_LEN_MAX ]; - unsigned char out_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; + unsigned char in_cid[MBEDTLS_SSL_CID_IN_LEN_MAX]; + unsigned char out_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX]; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -1159,7 +1145,7 @@ struct mbedtls_ssl_transform * see ssl_tls12_populate_transform() */ unsigned char randbytes[MBEDTLS_SERVER_HELLO_RANDOM_LEN + MBEDTLS_CLIENT_HELLO_RANDOM_LEN]; - /*!< ServerHello.random+ClientHello.random */ + /*!< ServerHello.random+ClientHello.random */ #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ }; @@ -1168,13 +1154,13 @@ struct mbedtls_ssl_transform * Equivalently, return 0 if a separate MAC is used, 1 otherwise. */ static inline int mbedtls_ssl_transform_uses_aead( - const mbedtls_ssl_transform *transform ) + const mbedtls_ssl_transform *transform) { #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - return( transform->maclen == 0 && transform->taglen != 0 ); + return transform->maclen == 0 && transform->taglen != 0; #else (void) transform; - return( 1 ); + return 1; #endif } @@ -1204,8 +1190,7 @@ static inline int mbedtls_ssl_transform_uses_aead( #define MBEDTLS_SSL_CID_LEN_MAX MBEDTLS_SSL_CID_IN_LEN_MAX #endif -typedef struct -{ +typedef struct { uint8_t ctr[MBEDTLS_SSL_SEQUENCE_NUMBER_LEN]; /* In TLS: The implicit record sequence number. * In DTLS: The 2-byte epoch followed by * the 6-byte sequence number. @@ -1228,7 +1213,7 @@ typedef struct #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) uint8_t cid_len; /* Length of the CID (0 if not present) */ - unsigned char cid[ MBEDTLS_SSL_CID_LEN_MAX ]; /* The CID */ + unsigned char cid[MBEDTLS_SSL_CID_LEN_MAX]; /* The CID */ #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ } mbedtls_record; @@ -1236,8 +1221,7 @@ typedef struct /* * List of certificate + private key pairs */ -struct mbedtls_ssl_key_cert -{ +struct mbedtls_ssl_key_cert { mbedtls_x509_crt *cert; /*!< cert */ mbedtls_pk_context *key; /*!< private key */ mbedtls_ssl_key_cert *next; /*!< next key/cert pair */ @@ -1248,8 +1232,7 @@ struct mbedtls_ssl_key_cert /* * List of handshake messages kept around for resending */ -struct mbedtls_ssl_flight_item -{ +struct mbedtls_ssl_flight_item { unsigned char *p; /*!< message, including handshake headers */ size_t len; /*!< length of p */ unsigned char type; /*!< type of the message: handshake or CCS */ @@ -1270,11 +1253,11 @@ struct mbedtls_ssl_flight_item * \param[out] out_len Length of the data written into the buffer \p buf */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls12_write_client_hello_exts( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - int uses_ec, - size_t *out_len ); +int mbedtls_ssl_tls12_write_client_hello_exts(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + int uses_ec, + size_t *out_len); #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ @@ -1291,8 +1274,8 @@ int mbedtls_ssl_tls12_write_client_hello_exts( mbedtls_ssl_context *ssl, * identifier as defined in the TLS 1.2 HashAlgorithm enumeration. */ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( - mbedtls_ssl_context *ssl, - unsigned int sig_alg ); + mbedtls_ssl_context *ssl, + unsigned int sig_alg); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ @@ -1303,7 +1286,7 @@ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( * * \param transform SSL transform context */ -void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform ); +void mbedtls_ssl_transform_free(mbedtls_ssl_transform *transform); /** * \brief Free referenced items in an SSL handshake context and clear @@ -1311,42 +1294,42 @@ void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform ); * * \param ssl SSL context */ -void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl); /* set inbound transform of ssl context */ -void mbedtls_ssl_set_inbound_transform( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ); +void mbedtls_ssl_set_inbound_transform(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform); /* set outbound transform of ssl context */ -void mbedtls_ssl_set_outbound_transform( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ); +void mbedtls_ssl_set_outbound_transform(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_handshake_client_step(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ); -static inline void mbedtls_ssl_handshake_set_state( mbedtls_ssl_context *ssl, - mbedtls_ssl_states state ) +int mbedtls_ssl_handshake_server_step(mbedtls_ssl_context *ssl); +void mbedtls_ssl_handshake_wrapup(mbedtls_ssl_context *ssl); +static inline void mbedtls_ssl_handshake_set_state(mbedtls_ssl_context *ssl, + mbedtls_ssl_states state) { - ssl->state = ( int ) state; + ssl->state = (int) state; } MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_send_fatal_handshake_failure( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_send_fatal_handshake_failure(mbedtls_ssl_context *ssl); -void mbedtls_ssl_reset_checksum( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_derive_keys(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl); +void mbedtls_ssl_update_handshake_status(mbedtls_ssl_context *ssl); /** * \brief Update record layer @@ -1425,81 +1408,81 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ); * */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, - unsigned update_hs_digest ); +int mbedtls_ssl_read_record(mbedtls_ssl_context *ssl, + unsigned update_hs_digest); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ); +int mbedtls_ssl_fetch_input(mbedtls_ssl_context *ssl, size_t nb_want); /* * Write handshake message header */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_start_handshake_msg( mbedtls_ssl_context *ssl, unsigned hs_type, - unsigned char **buf, size_t *buf_len ); +int mbedtls_ssl_start_handshake_msg(mbedtls_ssl_context *ssl, unsigned hs_type, + unsigned char **buf, size_t *buf_len); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_handshake_msg_ext( mbedtls_ssl_context *ssl, - int update_checksum, - int force_flush ); -static inline int mbedtls_ssl_write_handshake_msg( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_handshake_msg_ext(mbedtls_ssl_context *ssl, + int update_checksum, + int force_flush); +static inline int mbedtls_ssl_write_handshake_msg(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_write_handshake_msg_ext( ssl, 1 /* update checksum */, 1 /* force flush */ ) ); + return mbedtls_ssl_write_handshake_msg_ext(ssl, 1 /* update checksum */, 1 /* force flush */); } /* * Write handshake message tail */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_finish_handshake_msg( mbedtls_ssl_context *ssl, - size_t buf_len, size_t msg_len ); +int mbedtls_ssl_finish_handshake_msg(mbedtls_ssl_context *ssl, + size_t buf_len, size_t msg_len); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, int force_flush ); +int mbedtls_ssl_write_record(mbedtls_ssl_context *ssl, int force_flush); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_flush_output(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_parse_certificate(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_write_certificate(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_parse_change_cipher_spec(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_change_cipher_spec( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_write_change_cipher_spec(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_finished( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_parse_finished(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_write_finished(mbedtls_ssl_context *ssl); -void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, - const mbedtls_ssl_ciphersuite_t *ciphersuite_info ); +void mbedtls_ssl_optimize_checksum(mbedtls_ssl_context *ssl, + const mbedtls_ssl_ciphersuite_t *ciphersuite_info); /* * Update checksum of handshake messages. */ -void mbedtls_ssl_add_hs_msg_to_checksum( mbedtls_ssl_context *ssl, - unsigned hs_type, - unsigned char const *msg, - size_t msg_len ); +void mbedtls_ssl_add_hs_msg_to_checksum(mbedtls_ssl_context *ssl, + unsigned hs_type, + unsigned char const *msg, + size_t msg_len); -void mbedtls_ssl_add_hs_hdr_to_checksum( mbedtls_ssl_context *ssl, - unsigned hs_type, - size_t total_hs_len ); +void mbedtls_ssl_add_hs_hdr_to_checksum(mbedtls_ssl_context *ssl, + unsigned hs_type, + size_t total_hs_len); #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) #if !defined(MBEDTLS_USE_PSA_CRYPTO) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, - mbedtls_key_exchange_type_t key_ex ); +int mbedtls_ssl_psk_derive_premaster(mbedtls_ssl_context *ssl, + mbedtls_key_exchange_type_t key_ex); #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); +int mbedtls_ssl_conf_has_static_psk(mbedtls_ssl_config const *conf); #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) /** @@ -1510,15 +1493,17 @@ int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ); * Return an opaque PSK */ static inline mbedtls_svc_key_id_t mbedtls_ssl_get_opaque_psk( - const mbedtls_ssl_context *ssl ) + const mbedtls_ssl_context *ssl) { - if( ! mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) - return( ssl->handshake->psk_opaque ); + if (!mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) { + return ssl->handshake->psk_opaque; + } - if( ! mbedtls_svc_key_id_is_null( ssl->conf->psk_opaque ) ) - return( ssl->conf->psk_opaque ); + if (!mbedtls_svc_key_id_is_null(ssl->conf->psk_opaque)) { + return ssl->conf->psk_opaque; + } - return( MBEDTLS_SVC_KEY_ID_INIT ); + return MBEDTLS_SVC_KEY_ID_INIT; } #else /** @@ -1527,53 +1512,46 @@ static inline mbedtls_svc_key_id_t mbedtls_ssl_get_opaque_psk( * 2. static PSK configured by \c mbedtls_ssl_conf_psk() * Return a code and update the pair (PSK, PSK length) passed to this function */ -static inline int mbedtls_ssl_get_psk( const mbedtls_ssl_context *ssl, - const unsigned char **psk, size_t *psk_len ) +static inline int mbedtls_ssl_get_psk(const mbedtls_ssl_context *ssl, + const unsigned char **psk, size_t *psk_len) { - if( ssl->handshake->psk != NULL && ssl->handshake->psk_len > 0 ) - { + if (ssl->handshake->psk != NULL && ssl->handshake->psk_len > 0) { *psk = ssl->handshake->psk; *psk_len = ssl->handshake->psk_len; - } - - else if( ssl->conf->psk != NULL && ssl->conf->psk_len > 0 ) - { + } else if (ssl->conf->psk != NULL && ssl->conf->psk_len > 0) { *psk = ssl->conf->psk; *psk_len = ssl->conf->psk_len; - } - - else - { + } else { *psk = NULL; *psk_len = 0; - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_PK_C) -unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk ); -unsigned char mbedtls_ssl_sig_from_pk_alg( mbedtls_pk_type_t type ); -mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig( unsigned char sig ); +unsigned char mbedtls_ssl_sig_from_pk(mbedtls_pk_context *pk); +unsigned char mbedtls_ssl_sig_from_pk_alg(mbedtls_pk_type_t type); +mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig(unsigned char sig); #endif -mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash( unsigned char hash ); -unsigned char mbedtls_ssl_hash_from_md_alg( int md ); +mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash(unsigned char hash); +unsigned char mbedtls_ssl_hash_from_md_alg(int md); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md ); +int mbedtls_ssl_set_calc_verify_md(mbedtls_ssl_context *ssl, int md); #endif MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_check_curve_tls_id( const mbedtls_ssl_context *ssl, uint16_t tls_id ); +int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_id); #if defined(MBEDTLS_ECP_C) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id ); +int mbedtls_ssl_check_curve(const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id); #endif /** @@ -1592,9 +1570,9 @@ int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_i * The function can be called with both parameters as NULL * simply to check if a specific TLS ID is supported. */ -int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, - psa_ecc_family_t *family, - size_t* bits ); +int mbedtls_ssl_get_psa_curve_info_from_tls_id(uint16_t tls_id, + psa_ecc_family_t *family, + size_t *bits); /** * \brief Return \c mbedtls_ecp_group_id for the specified TLS ID. @@ -1603,7 +1581,7 @@ int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, * \return Proper \c mbedtls_ecp_group_id if the TLS ID is supported, * or MBEDTLS_ECP_DP_NONE otherwise */ -mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ); +mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id(uint16_t tls_id); /** * \brief Return TLS ID for the specified \c mbedtls_ecp_group_id. @@ -1612,7 +1590,7 @@ mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ) * \return Proper TLS ID if the \c mbedtls_ecp_group_id is supported, * or 0 otherwise */ -uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ); +uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id(mbedtls_ecp_group_id grp_id); #if defined(MBEDTLS_DEBUG_C) /** @@ -1622,15 +1600,14 @@ uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) * \return A pointer to a const string with the proper name. If TLS * ID is not supported, a NULL pointer is returned instead. */ -const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ); +const char *mbedtls_ssl_get_curve_name_from_tls_id(uint16_t tls_id); #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) static inline mbedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value - ( const uint16_t srtp_profile_value ) + (const uint16_t srtp_profile_value) { - switch( srtp_profile_value ) - { + switch (srtp_profile_value) { case MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80: case MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32: case MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80: @@ -1638,33 +1615,35 @@ static inline mbedtls_ssl_srtp_profile mbedtls_ssl_check_srtp_profile_value return srtp_profile_value; default: break; } - return( MBEDTLS_TLS_SRTP_UNSET ); + return MBEDTLS_TLS_SRTP_UNSET; } #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) -static inline mbedtls_pk_context *mbedtls_ssl_own_key( mbedtls_ssl_context *ssl ) +static inline mbedtls_pk_context *mbedtls_ssl_own_key(mbedtls_ssl_context *ssl) { mbedtls_ssl_key_cert *key_cert; - if( ssl->handshake != NULL && ssl->handshake->key_cert != NULL ) + if (ssl->handshake != NULL && ssl->handshake->key_cert != NULL) { key_cert = ssl->handshake->key_cert; - else + } else { key_cert = ssl->conf->key_cert; + } - return( key_cert == NULL ? NULL : key_cert->key ); + return key_cert == NULL ? NULL : key_cert->key; } -static inline mbedtls_x509_crt *mbedtls_ssl_own_cert( mbedtls_ssl_context *ssl ) +static inline mbedtls_x509_crt *mbedtls_ssl_own_cert(mbedtls_ssl_context *ssl) { mbedtls_ssl_key_cert *key_cert; - if( ssl->handshake != NULL && ssl->handshake->key_cert != NULL ) + if (ssl->handshake != NULL && ssl->handshake->key_cert != NULL) { key_cert = ssl->handshake->key_cert; - else + } else { key_cert = ssl->conf->key_cert; + } - return( key_cert == NULL ? NULL : key_cert->cert ); + return key_cert == NULL ? NULL : key_cert->cert; } /* @@ -1677,159 +1656,159 @@ static inline mbedtls_x509_crt *mbedtls_ssl_own_cert( mbedtls_ssl_context *ssl ) * Return 0 if everything is OK, -1 if not. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert, - const mbedtls_ssl_ciphersuite_t *ciphersuite, - int cert_endpoint, - uint32_t *flags ); +int mbedtls_ssl_check_cert_usage(const mbedtls_x509_crt *cert, + const mbedtls_ssl_ciphersuite_t *ciphersuite, + int cert_endpoint, + uint32_t *flags); #endif /* MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_ssl_write_version( unsigned char version[2], int transport, - mbedtls_ssl_protocol_version tls_version ); -uint16_t mbedtls_ssl_read_version( const unsigned char version[2], - int transport ); +void mbedtls_ssl_write_version(unsigned char version[2], int transport, + mbedtls_ssl_protocol_version tls_version); +uint16_t mbedtls_ssl_read_version(const unsigned char version[2], + int transport); -static inline size_t mbedtls_ssl_in_hdr_len( const mbedtls_ssl_context *ssl ) +static inline size_t mbedtls_ssl_in_hdr_len(const mbedtls_ssl_context *ssl) { #if !defined(MBEDTLS_SSL_PROTO_DTLS) ((void) ssl); #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - return( 13 ); - } - else + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 13; + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ { - return( 5 ); + return 5; } } -static inline size_t mbedtls_ssl_out_hdr_len( const mbedtls_ssl_context *ssl ) +static inline size_t mbedtls_ssl_out_hdr_len(const mbedtls_ssl_context *ssl) { - return( (size_t) ( ssl->out_iv - ssl->out_hdr ) ); + return (size_t) (ssl->out_iv - ssl->out_hdr); } -static inline size_t mbedtls_ssl_hs_hdr_len( const mbedtls_ssl_context *ssl ) +static inline size_t mbedtls_ssl_hs_hdr_len(const mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( 12 ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 12; + } #else ((void) ssl); #endif - return( 4 ); + return 4; } #if defined(MBEDTLS_SSL_PROTO_DTLS) -void mbedtls_ssl_send_flight_completed( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_recv_flight_completed( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_send_flight_completed(mbedtls_ssl_context *ssl); +void mbedtls_ssl_recv_flight_completed(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_resend( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_resend(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_flight_transmit(mbedtls_ssl_context *ssl); #endif /* Visible for testing purposes only */ #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_dtls_replay_check( mbedtls_ssl_context const *ssl ); -void mbedtls_ssl_dtls_replay_update( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_dtls_replay_check(mbedtls_ssl_context const *ssl); +void mbedtls_ssl_dtls_replay_update(mbedtls_ssl_context *ssl); #endif MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, - const mbedtls_ssl_session *src ); +int mbedtls_ssl_session_copy(mbedtls_ssl_session *dst, + const mbedtls_ssl_session *src); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* The hash buffer must have at least MBEDTLS_MD_MAX_SIZE bytes of length. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl, - unsigned char *hash, size_t *hashlen, - unsigned char *data, size_t data_len, - mbedtls_md_type_t md_alg ); +int mbedtls_ssl_get_key_exchange_md_tls1_2(mbedtls_ssl_context *ssl, + unsigned char *hash, size_t *hashlen, + unsigned char *data, size_t data_len, + mbedtls_md_type_t md_alg); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #ifdef __cplusplus } #endif -void mbedtls_ssl_transform_init( mbedtls_ssl_transform *transform ); +void mbedtls_ssl_transform_init(mbedtls_ssl_transform *transform); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform, - mbedtls_record *rec, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ); +int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform, + mbedtls_record *rec, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, - mbedtls_ssl_transform *transform, - mbedtls_record *rec ); +int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl, + mbedtls_ssl_transform *transform, + mbedtls_record *rec); /* Length of the "epoch" field in the record header */ -static inline size_t mbedtls_ssl_ep_len( const mbedtls_ssl_context *ssl ) +static inline size_t mbedtls_ssl_ep_len(const mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( 2 ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 2; + } #else ((void) ssl); #endif - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_PROTO_DTLS) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_resend_hello_request( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_resend_hello_request(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_PROTO_DTLS */ -void mbedtls_ssl_set_timer( mbedtls_ssl_context *ssl, uint32_t millisecs ); +void mbedtls_ssl_set_timer(mbedtls_ssl_context *ssl, uint32_t millisecs); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_check_timer( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_check_timer(mbedtls_ssl_context *ssl); -void mbedtls_ssl_reset_in_out_pointers( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ); -void mbedtls_ssl_update_in_pointers( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl); +void mbedtls_ssl_update_out_pointers(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform); +void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ); -void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, - int partial ); +int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial); +void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, + int partial); /* * Send pending alert */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_handle_pending_alert( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_handle_pending_alert(mbedtls_ssl_context *ssl); /* * Set pending fatal alert flag. */ -void mbedtls_ssl_pend_fatal_alert( mbedtls_ssl_context *ssl, - unsigned char alert_type, - int alert_reason ); +void mbedtls_ssl_pend_fatal_alert(mbedtls_ssl_context *ssl, + unsigned char alert_type, + int alert_reason); /* Alias of mbedtls_ssl_pend_fatal_alert */ -#define MBEDTLS_SSL_PEND_FATAL_ALERT( type, user_return_value ) \ - mbedtls_ssl_pend_fatal_alert( ssl, type, user_return_value ) +#define MBEDTLS_SSL_PEND_FATAL_ALERT(type, user_return_value) \ + mbedtls_ssl_pend_fatal_alert(ssl, type, user_return_value) #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) -void mbedtls_ssl_dtls_replay_reset( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_dtls_replay_reset(mbedtls_ssl_context *ssl); #endif -void mbedtls_ssl_handshake_wrapup_free_hs_transform( mbedtls_ssl_context *ssl ); +void mbedtls_ssl_handshake_wrapup_free_hs_transform(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_RENEGOTIATION) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_start_renegotiation( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_start_renegotiation(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_RENEGOTIATION */ #if defined(MBEDTLS_SSL_PROTO_DTLS) -size_t mbedtls_ssl_get_current_mtu( const mbedtls_ssl_context *ssl ); -void mbedtls_ssl_buffering_free( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_flight_free( mbedtls_ssl_flight_item *flight ); +size_t mbedtls_ssl_get_current_mtu(const mbedtls_ssl_context *ssl); +void mbedtls_ssl_buffering_free(mbedtls_ssl_context *ssl); +void mbedtls_ssl_flight_free(mbedtls_ssl_flight_item *flight); #endif /* MBEDTLS_SSL_PROTO_DTLS */ /** @@ -1837,61 +1816,61 @@ void mbedtls_ssl_flight_free( mbedtls_ssl_flight_item *flight ); */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) -static inline int mbedtls_ssl_conf_is_tls13_only( const mbedtls_ssl_config *conf ) +static inline int mbedtls_ssl_conf_is_tls13_only(const mbedtls_ssl_config *conf) { - return( conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ); + return conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) -static inline int mbedtls_ssl_conf_is_tls12_only( const mbedtls_ssl_config *conf ) +static inline int mbedtls_ssl_conf_is_tls12_only(const mbedtls_ssl_config *conf) { - return( conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && - conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ); + return conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && + conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_2; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ -static inline int mbedtls_ssl_conf_is_tls13_enabled( const mbedtls_ssl_config *conf ) +static inline int mbedtls_ssl_conf_is_tls13_enabled(const mbedtls_ssl_config *conf) { #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - return( conf->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_3 && - conf->max_tls_version >= MBEDTLS_SSL_VERSION_TLS1_3 ); + return conf->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_3 && + conf->max_tls_version >= MBEDTLS_SSL_VERSION_TLS1_3; #else ((void) conf); - return( 0 ); + return 0; #endif } -static inline int mbedtls_ssl_conf_is_tls12_enabled( const mbedtls_ssl_config *conf ) +static inline int mbedtls_ssl_conf_is_tls12_enabled(const mbedtls_ssl_config *conf) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - return( conf->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2 && - conf->max_tls_version >= MBEDTLS_SSL_VERSION_TLS1_2 ); + return conf->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2 && + conf->max_tls_version >= MBEDTLS_SSL_VERSION_TLS1_2; #else ((void) conf); - return( 0 ); + return 0; #endif } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_TLS1_3) -static inline int mbedtls_ssl_conf_is_hybrid_tls12_tls13( const mbedtls_ssl_config *conf ) +static inline int mbedtls_ssl_conf_is_hybrid_tls12_tls13(const mbedtls_ssl_config *conf) { - return( conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && - conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ); + return conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && + conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) extern const uint8_t mbedtls_ssl_tls13_hello_retry_request_magic[ - MBEDTLS_SERVER_HELLO_RANDOM_LEN ]; + MBEDTLS_SERVER_HELLO_RANDOM_LEN]; MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_process_finished_message( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_process_finished_message(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_write_finished_message( mbedtls_ssl_context *ssl ); -void mbedtls_ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_write_finished_message(mbedtls_ssl_context *ssl); +void mbedtls_ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl); /** * \brief Given an SSL context and its associated configuration, write the TLS @@ -1903,10 +1882,10 @@ void mbedtls_ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ); * \param[out] out_len Length of the data written into the buffer \p buf */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ); +int mbedtls_ssl_tls13_write_client_hello_exts(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len); /** * \brief TLS 1.3 client side state machine entry @@ -1914,7 +1893,7 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, * \param ssl SSL context */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_handshake_client_step(mbedtls_ssl_context *ssl); /** * \brief TLS 1.3 server side state machine entry @@ -1922,46 +1901,46 @@ int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ); * \param ssl SSL context */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_handshake_server_step(mbedtls_ssl_context *ssl); /* * Helper functions around key exchange modes. */ -static inline unsigned mbedtls_ssl_conf_tls13_check_kex_modes( mbedtls_ssl_context *ssl, - int kex_mode_mask ) +static inline unsigned mbedtls_ssl_conf_tls13_check_kex_modes(mbedtls_ssl_context *ssl, + int kex_mode_mask) { - return( ( ssl->conf->tls13_kex_modes & kex_mode_mask ) != 0 ); + return (ssl->conf->tls13_kex_modes & kex_mode_mask) != 0; } -static inline int mbedtls_ssl_conf_tls13_psk_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_conf_tls13_psk_enabled(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_conf_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ) ); + return mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK); } -static inline int mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_conf_tls13_psk_ephemeral_enabled(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_conf_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL ) ); + return mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL); } -static inline int mbedtls_ssl_conf_tls13_ephemeral_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_conf_tls13_ephemeral_enabled(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_conf_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ) ); + return mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL); } -static inline int mbedtls_ssl_conf_tls13_some_ephemeral_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_conf_tls13_some_ephemeral_enabled(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_conf_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL ) ); + return mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL); } -static inline int mbedtls_ssl_conf_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_conf_tls13_some_psk_enabled(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_conf_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); + return mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL); } #if defined(MBEDTLS_SSL_SRV_C) && \ @@ -1976,41 +1955,41 @@ static inline int mbedtls_ssl_conf_tls13_some_psk_enabled( mbedtls_ssl_context * * \return 0 if at least one of the key exchange modes is supported, * !=0 otherwise. */ -static inline unsigned mbedtls_ssl_tls13_check_kex_modes( mbedtls_ssl_context *ssl, - int kex_modes_mask ) +static inline unsigned mbedtls_ssl_tls13_check_kex_modes(mbedtls_ssl_context *ssl, + int kex_modes_mask) { - return( ( ssl->handshake->tls13_kex_modes & kex_modes_mask ) == 0 ); + return (ssl->handshake->tls13_kex_modes & kex_modes_mask) == 0; } -static inline int mbedtls_ssl_tls13_psk_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_tls13_psk_enabled(mbedtls_ssl_context *ssl) { - return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK ) ); + return !mbedtls_ssl_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK); } static inline int mbedtls_ssl_tls13_psk_ephemeral_enabled( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL ) ); + return !mbedtls_ssl_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL); } -static inline int mbedtls_ssl_tls13_ephemeral_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_tls13_ephemeral_enabled(mbedtls_ssl_context *ssl) { - return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ) ); + return !mbedtls_ssl_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL); } -static inline int mbedtls_ssl_tls13_some_ephemeral_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_tls13_some_ephemeral_enabled(mbedtls_ssl_context *ssl) { - return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL ) ); + return !mbedtls_ssl_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL); } -static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) +static inline int mbedtls_ssl_tls13_some_psk_enabled(mbedtls_ssl_context *ssl) { - return( ! mbedtls_ssl_tls13_check_kex_modes( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); + return !mbedtls_ssl_tls13_check_kex_modes(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL); } #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -2021,68 +2000,68 @@ static inline int mbedtls_ssl_tls13_some_psk_enabled( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_check_received_extension( - mbedtls_ssl_context *ssl, - int hs_msg_type, - unsigned int received_extension_type, - uint32_t hs_msg_allowed_extensions_mask ); + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask); static inline void mbedtls_ssl_tls13_set_hs_sent_ext_mask( - mbedtls_ssl_context *ssl, unsigned int extension_type ) + mbedtls_ssl_context *ssl, unsigned int extension_type) { ssl->handshake->sent_extensions |= - mbedtls_ssl_get_extension_mask( extension_type ); + mbedtls_ssl_get_extension_mask(extension_type); } /* * Helper functions to check the selected key exchange mode. */ static inline int mbedtls_ssl_tls13_key_exchange_mode_check( - mbedtls_ssl_context *ssl, int kex_mask ) + mbedtls_ssl_context *ssl, int kex_mask) { - return( ( ssl->handshake->key_exchange_mode & kex_mask ) != 0 ); + return (ssl->handshake->key_exchange_mode & kex_mask) != 0; } static inline int mbedtls_ssl_tls13_key_exchange_mode_with_psk( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_tls13_key_exchange_mode_check( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL ) ); + return mbedtls_ssl_tls13_key_exchange_mode_check(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL); } static inline int mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_tls13_key_exchange_mode_check( ssl, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL ) ); + return mbedtls_ssl_tls13_key_exchange_mode_check(ssl, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL); } /* * Fetch TLS 1.3 handshake message header */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_fetch_handshake_msg( mbedtls_ssl_context *ssl, - unsigned hs_type, - unsigned char **buf, - size_t *buf_len ); +int mbedtls_ssl_tls13_fetch_handshake_msg(mbedtls_ssl_context *ssl, + unsigned hs_type, + unsigned char **buf, + size_t *buf_len); /* * Handler of TLS 1.3 server certificate message */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_process_certificate(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* * Handler of TLS 1.3 write Certificate message */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_write_certificate( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_write_certificate(mbedtls_ssl_context *ssl); /* * Handler of TLS 1.3 write Certificate Verify message */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_write_certificate_verify(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -2090,32 +2069,32 @@ int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ); * Generic handler of Certificate Verify */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_process_certificate_verify(mbedtls_ssl_context *ssl); /* * Write of dummy-CCS's for middlebox compatibility */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_write_change_cipher_spec( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_write_change_cipher_spec(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_reset_transcript_for_hrr(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_ECDH_C) MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( - mbedtls_ssl_context *ssl, - uint16_t named_group, - unsigned char *buf, - unsigned char *end, - size_t *out_len ); + mbedtls_ssl_context *ssl, + uint16_t named_group, + unsigned char *buf, + unsigned char *end, + size_t *out_len); #endif /* MBEDTLS_ECDH_C */ #if defined(MBEDTLS_SSL_EARLY_DATA) -int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *out_len ); +int mbedtls_ssl_tls13_write_early_data_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len); #endif /* MBEDTLS_SSL_EARLY_DATA */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -2125,24 +2104,24 @@ int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, * Write Signature Algorithm extension */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, - const unsigned char *end, size_t *out_len ); +int mbedtls_ssl_write_sig_alg_ext(mbedtls_ssl_context *ssl, unsigned char *buf, + const unsigned char *end, size_t *out_len); /* * Parse TLS Signature Algorithm extension */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ); +int mbedtls_ssl_parse_sig_alg_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Get handshake transcript */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, - const mbedtls_md_type_t md, - unsigned char *dst, - size_t dst_len, - size_t *olen ); +int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl, + const mbedtls_md_type_t md, + unsigned char *dst, + size_t dst_len, + size_t *olen); /* * Return supported groups. @@ -2155,87 +2134,89 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, * ssl->conf->group_list when mbedtls_ssl_conf_groups() has been more recently invoked. * */ -static inline const void *mbedtls_ssl_get_groups( const mbedtls_ssl_context *ssl ) +static inline const void *mbedtls_ssl_get_groups(const mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_DEPRECATED_REMOVED) || !defined(MBEDTLS_ECP_C) - return( ssl->conf->group_list ); + return ssl->conf->group_list; #else - if( ( ssl->handshake != NULL ) && ( ssl->handshake->group_list != NULL ) ) - return( ssl->handshake->group_list ); - else - return( ssl->conf->group_list ); + if ((ssl->handshake != NULL) && (ssl->handshake->group_list != NULL)) { + return ssl->handshake->group_list; + } else { + return ssl->conf->group_list; + } #endif } /* * Helper functions for NamedGroup. */ -static inline int mbedtls_ssl_tls12_named_group_is_ecdhe( uint16_t named_group ) +static inline int mbedtls_ssl_tls12_named_group_is_ecdhe(uint16_t named_group) { /* * RFC 8422 section 5.1.1 */ - return( named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X25519 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X448 || - /* Below deprecated curves should be removed with notice to users */ - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1 ); + return named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X25519 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP256R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP384R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_BP512R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X448 || + /* Below deprecated curves should be removed with notice to users */ + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192K1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224K1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256K1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1; } -static inline int mbedtls_ssl_tls13_named_group_is_ecdhe( uint16_t named_group ) +static inline int mbedtls_ssl_tls13_named_group_is_ecdhe(uint16_t named_group) { - return( named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X25519 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1 || - named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X448 ); + return named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X25519 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP384R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_SECP521R1 || + named_group == MBEDTLS_SSL_IANA_TLS_GROUP_X448; } -static inline int mbedtls_ssl_tls13_named_group_is_dhe( uint16_t named_group ) +static inline int mbedtls_ssl_tls13_named_group_is_dhe(uint16_t named_group) { - return( named_group >= MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048 && - named_group <= MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192 ); + return named_group >= MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE2048 && + named_group <= MBEDTLS_SSL_IANA_TLS_GROUP_FFDHE8192; } static inline int mbedtls_ssl_named_group_is_offered( - const mbedtls_ssl_context *ssl, uint16_t named_group ) + const mbedtls_ssl_context *ssl, uint16_t named_group) { - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); - if( group_list == NULL ) - return( 0 ); - - for( ; *group_list != 0; group_list++ ) - { - if( *group_list == named_group ) - return( 1 ); + if (group_list == NULL) { + return 0; } - return( 0 ); + for (; *group_list != 0; group_list++) { + if (*group_list == named_group) { + return 1; + } + } + + return 0; } -static inline int mbedtls_ssl_named_group_is_supported( uint16_t named_group ) +static inline int mbedtls_ssl_named_group_is_supported(uint16_t named_group) { #if defined(MBEDTLS_ECDH_C) - if( mbedtls_ssl_tls13_named_group_is_ecdhe( named_group ) ) - { - if( mbedtls_ssl_get_ecp_group_id_from_tls_id( named_group ) != - MBEDTLS_ECP_DP_NONE ) - return( 1 ); + if (mbedtls_ssl_tls13_named_group_is_ecdhe(named_group)) { + if (mbedtls_ssl_get_ecp_group_id_from_tls_id(named_group) != + MBEDTLS_ECP_DP_NONE) { + return 1; + } } #else ((void) named_group); #endif /* MBEDTLS_ECDH_C */ - return( 0 ); + return 0; } /* @@ -2251,48 +2232,47 @@ static inline int mbedtls_ssl_named_group_is_supported( uint16_t named_group ) * */ static inline const void *mbedtls_ssl_get_sig_algs( - const mbedtls_ssl_context *ssl ) + const mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) - if( ssl->handshake != NULL && + if (ssl->handshake != NULL && ssl->handshake->sig_algs_heap_allocated == 1 && - ssl->handshake->sig_algs != NULL ) - { - return( ssl->handshake->sig_algs ); + ssl->handshake->sig_algs != NULL) { + return ssl->handshake->sig_algs; } #endif - return( ssl->conf->sig_algs ); + return ssl->conf->sig_algs; #else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ ((void) ssl); - return( NULL ); + return NULL; #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) -static inline int mbedtls_ssl_sig_alg_is_received( const mbedtls_ssl_context *ssl, - uint16_t own_sig_alg ) +static inline int mbedtls_ssl_sig_alg_is_received(const mbedtls_ssl_context *ssl, + uint16_t own_sig_alg) { const uint16_t *sig_alg = ssl->handshake->received_sig_algs; - if( sig_alg == NULL ) - return( 0 ); - - for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) - { - if( *sig_alg == own_sig_alg ) - return( 1 ); + if (sig_alg == NULL) { + return 0; } - return( 0 ); + + for (; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++) { + if (*sig_alg == own_sig_alg) { + return 1; + } + } + return 0; } static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( - const uint16_t sig_alg ) + const uint16_t sig_alg) { - switch( sig_alg ) - { + switch (sig_alg) { #if defined(MBEDTLS_ECDSA_C) #if defined(PSA_WANT_ALG_SHA_256) && defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: @@ -2323,17 +2303,16 @@ static inline int mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( #endif /* PSA_WANT_ALG_SHA_512 */ #endif /* MBEDTLS_PKCS1_V21 */ default: - return( 0 ); + return 0; } - return( 1 ); + return 1; } static inline int mbedtls_ssl_tls13_sig_alg_is_supported( - const uint16_t sig_alg ) + const uint16_t sig_alg) { - switch( sig_alg ) - { + switch (sig_alg) { #if defined(MBEDTLS_PKCS1_V15) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: @@ -2349,44 +2328,45 @@ static inline int mbedtls_ssl_tls13_sig_alg_is_supported( #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_PKCS1_V15 */ default: - return( mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( - sig_alg ) ); + return mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( + sig_alg); } - return( 1 ); + return 1; } MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, - mbedtls_pk_context *key ); +int mbedtls_ssl_tls13_check_sig_alg_cert_key_match(uint16_t sig_alg, + mbedtls_pk_context *key); #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) -static inline int mbedtls_ssl_sig_alg_is_offered( const mbedtls_ssl_context *ssl, - uint16_t proposed_sig_alg ) +static inline int mbedtls_ssl_sig_alg_is_offered(const mbedtls_ssl_context *ssl, + uint16_t proposed_sig_alg) { - const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); - if( sig_alg == NULL ) - return( 0 ); - - for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) - { - if( *sig_alg == proposed_sig_alg ) - return( 1 ); + const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs(ssl); + if (sig_alg == NULL) { + return 0; } - return( 0 ); + + for (; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++) { + if (*sig_alg == proposed_sig_alg) { + return 1; + } + } + return 0; } static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg ) + uint16_t sig_alg, mbedtls_pk_type_t *pk_type, mbedtls_md_type_t *md_alg) { - *pk_type = mbedtls_ssl_pk_alg_from_sig( sig_alg & 0xff ); - *md_alg = mbedtls_ssl_md_alg_from_hash( ( sig_alg >> 8 ) & 0xff ); + *pk_type = mbedtls_ssl_pk_alg_from_sig(sig_alg & 0xff); + *md_alg = mbedtls_ssl_md_alg_from_hash((sig_alg >> 8) & 0xff); - if( *pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE ) - return( 0 ); + if (*pk_type != MBEDTLS_PK_NONE && *md_alg != MBEDTLS_MD_NONE) { + return 0; + } - switch( sig_alg ) - { + switch (sig_alg) { #if defined(MBEDTLS_PKCS1_V21) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: @@ -2407,22 +2387,21 @@ static inline int mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( break; #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_PKCS1_V21 */ - default: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); - } - return( 0 ); + default: + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } + return 0; } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) static inline int mbedtls_ssl_tls12_sig_alg_is_supported( - const uint16_t sig_alg ) + const uint16_t sig_alg) { /* High byte is hash */ - unsigned char hash = MBEDTLS_BYTE_1( sig_alg ); - unsigned char sig = MBEDTLS_BYTE_0( sig_alg ); + unsigned char hash = MBEDTLS_BYTE_1(sig_alg); + unsigned char sig = MBEDTLS_BYTE_0(sig_alg); - switch( hash ) - { + switch (hash) { #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_MD5: break; @@ -2454,11 +2433,10 @@ static inline int mbedtls_ssl_tls12_sig_alg_is_supported( #endif default: - return( 0 ); + return 0; } - switch( sig ) - { + switch (sig) { #if defined(MBEDTLS_RSA_C) case MBEDTLS_SSL_SIG_RSA: break; @@ -2469,35 +2447,33 @@ static inline int mbedtls_ssl_tls12_sig_alg_is_supported( break; #endif - default: - return( 0 ); + default: + return 0; } - return( 1 ); + return 1; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ static inline int mbedtls_ssl_sig_alg_is_supported( - const mbedtls_ssl_context *ssl, - const uint16_t sig_alg ) + const mbedtls_ssl_context *ssl, + const uint16_t sig_alg) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { - return( mbedtls_ssl_tls12_sig_alg_is_supported( sig_alg ) ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { + return mbedtls_ssl_tls12_sig_alg_is_supported(sig_alg); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - return( mbedtls_ssl_tls13_sig_alg_is_supported( sig_alg ) ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + return mbedtls_ssl_tls13_sig_alg_is_supported(sig_alg); } #endif ((void) ssl); ((void) sig_alg); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -2526,11 +2502,11 @@ static inline int mbedtls_ssl_sig_alg_is_supported( * \return PSA_SUCCESS on success or PSA_ERROR_NOT_SUPPORTED if * conversion is not supported. */ -psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_type, - size_t taglen, - psa_algorithm_t *alg, - psa_key_type_t *key_type, - size_t *key_size ); +psa_status_t mbedtls_ssl_cipher_to_psa(mbedtls_cipher_type_t mbedtls_cipher_type, + size_t taglen, + psa_algorithm_t *alg, + psa_key_type_t *key_type, + size_t *key_size); /** * \brief Convert given PSA status to mbedtls error code. @@ -2539,26 +2515,25 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ * * \return corresponding mbedtls error code */ -static inline int psa_ssl_status_to_mbedtls( psa_status_t status ) +static inline int psa_ssl_status_to_mbedtls(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_SUCCESS: - return( 0 ); + return 0; case PSA_ERROR_INSUFFICIENT_MEMORY: - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; case PSA_ERROR_INVALID_SIGNATURE: - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + return MBEDTLS_ERR_SSL_INVALID_MAC; case PSA_ERROR_INVALID_ARGUMENT: - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; case PSA_ERROR_BAD_STATE: - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; default: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } } #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -2584,9 +2559,9 @@ typedef enum { * \return 0 on success or a negative error code in case of failure */ int mbedtls_psa_ecjpake_read_round( - psa_pake_operation_t *pake_ctx, - const unsigned char *buf, - size_t len, mbedtls_ecjpake_rounds_t round ); + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len, mbedtls_ecjpake_rounds_t round); /** * \brief Write the first round of key exchange into the provided output @@ -2602,10 +2577,10 @@ int mbedtls_psa_ecjpake_read_round( * \return 0 on success or a negative error code in case of failure */ int mbedtls_psa_ecjpake_write_round( - psa_pake_operation_t *pake_ctx, - unsigned char *buf, - size_t len, size_t *olen, - mbedtls_ecjpake_rounds_t round ); + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen, + mbedtls_ecjpake_rounds_t round); #endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO @@ -2620,40 +2595,38 @@ typedef enum { } mbedtls_ssl_mode_t; mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_transform( - const mbedtls_ssl_transform *transform ); + const mbedtls_ssl_transform *transform); #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( - int encrypt_then_mac, - const mbedtls_ssl_ciphersuite_t *suite ); + int encrypt_then_mac, + const mbedtls_ssl_ciphersuite_t *suite); #else mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( - const mbedtls_ssl_ciphersuite_t *suite ); + const mbedtls_ssl_ciphersuite_t *suite); #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ #if defined(MBEDTLS_ECDH_C) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_read_public_ecdhe_share( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t buf_len ); +int mbedtls_ssl_tls13_read_public_ecdhe_share(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t buf_len); #endif /* MBEDTLS_ECDH_C */ static inline int mbedtls_ssl_tls13_cipher_suite_is_offered( - mbedtls_ssl_context *ssl, int cipher_suite ) + mbedtls_ssl_context *ssl, int cipher_suite) { const int *ciphersuite_list = ssl->conf->ciphersuite_list; /* Check whether we have offered this ciphersuite */ - for ( size_t i = 0; ciphersuite_list[i] != 0; i++ ) - { - if( ciphersuite_list[i] == cipher_suite ) - { - return( 1 ); + for (size_t i = 0; ciphersuite_list[i] != 0; i++) { + if (ciphersuite_list[i] == cipher_suite) { + return 1; } } - return( 0 ); + return 0; } /** @@ -2671,35 +2644,35 @@ int mbedtls_ssl_validate_ciphersuite( const mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *suite_info, mbedtls_ssl_protocol_version min_tls_version, - mbedtls_ssl_protocol_version max_tls_version ); + mbedtls_ssl_protocol_version max_tls_version); #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_server_name_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ); +int mbedtls_ssl_parse_server_name_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end); #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_ALPN) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ); +int mbedtls_ssl_parse_alpn_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end); MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ); +int mbedtls_ssl_write_alpn_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len); #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_TEST_HOOKS) int mbedtls_ssl_check_dtls_clihlo_cookie( - mbedtls_ssl_context *ssl, - const unsigned char *cli_id, size_t cli_id_len, - const unsigned char *in, size_t in_len, - unsigned char *obuf, size_t buf_len, size_t *olen ); + mbedtls_ssl_context *ssl, + const unsigned char *cli_id, size_t cli_id_len, + const unsigned char *in, size_t in_len, + unsigned char *obuf, size_t buf_len, size_t *olen); #endif #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -2720,7 +2693,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, - size_t *out_len, size_t *binders_len ); + size_t *out_len, size_t *binders_len); /** * \brief Given an SSL context and its associated configuration, write the TLS @@ -2734,7 +2707,7 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, unsigned char *end ); + unsigned char *buf, unsigned char *end); #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ @@ -2742,8 +2715,8 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, - const char *hostname ); +int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session, + const char *hostname); #endif #endif /* ssl_misc.h */ diff --git a/library/ssl_msg.c b/library/ssl_msg.c index 194c326a9..4ebc8cb92 100644 --- a/library/ssl_msg.c +++ b/library/ssl_msg.c @@ -48,78 +48,74 @@ #include "mbedtls/oid.h" #endif -static uint32_t ssl_get_hs_total_len( mbedtls_ssl_context const *ssl ); +static uint32_t ssl_get_hs_total_len(mbedtls_ssl_context const *ssl); /* * Start a timer. * Passing millisecs = 0 cancels a running timer. */ -void mbedtls_ssl_set_timer( mbedtls_ssl_context *ssl, uint32_t millisecs ) +void mbedtls_ssl_set_timer(mbedtls_ssl_context *ssl, uint32_t millisecs) { - if( ssl->f_set_timer == NULL ) + if (ssl->f_set_timer == NULL) { return; + } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "set_timer to %d ms", (int) millisecs ) ); - ssl->f_set_timer( ssl->p_timer, millisecs / 4, millisecs ); + MBEDTLS_SSL_DEBUG_MSG(3, ("set_timer to %d ms", (int) millisecs)); + ssl->f_set_timer(ssl->p_timer, millisecs / 4, millisecs); } /* * Return -1 is timer is expired, 0 if it isn't. */ -int mbedtls_ssl_check_timer( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_check_timer(mbedtls_ssl_context *ssl) { - if( ssl->f_get_timer == NULL ) - return( 0 ); - - if( ssl->f_get_timer( ssl->p_timer ) == 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "timer expired" ) ); - return( -1 ); + if (ssl->f_get_timer == NULL) { + return 0; } - return( 0 ); + if (ssl->f_get_timer(ssl->p_timer) == 2) { + MBEDTLS_SSL_DEBUG_MSG(3, ("timer expired")); + return -1; + } + + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, - unsigned char *buf, - size_t len, - mbedtls_record *rec ); +static int ssl_parse_record_header(mbedtls_ssl_context const *ssl, + unsigned char *buf, + size_t len, + mbedtls_record *rec); -int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, - unsigned char *buf, - size_t buflen ) +int mbedtls_ssl_check_record(mbedtls_ssl_context const *ssl, + unsigned char *buf, + size_t buflen) { int ret = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "=> mbedtls_ssl_check_record" ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "record buffer", buf, buflen ); + MBEDTLS_SSL_DEBUG_MSG(1, ("=> mbedtls_ssl_check_record")); + MBEDTLS_SSL_DEBUG_BUF(3, "record buffer", buf, buflen); /* We don't support record checking in TLS because * there doesn't seem to be a usecase for it. */ - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_STREAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_STREAM) { ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; goto exit; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - else - { + else { mbedtls_record rec; - ret = ssl_parse_record_header( ssl, buf, buflen, &rec ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 3, "ssl_parse_record_header", ret ); + ret = ssl_parse_record_header(ssl, buf, buflen, &rec); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(3, "ssl_parse_record_header", ret); goto exit; } - if( ssl->transform_in != NULL ) - { - ret = mbedtls_ssl_decrypt_buf( ssl, ssl->transform_in, &rec ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 3, "mbedtls_ssl_decrypt_buf", ret ); + if (ssl->transform_in != NULL) { + ret = mbedtls_ssl_decrypt_buf(ssl, ssl->transform_in, &rec); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(3, "mbedtls_ssl_decrypt_buf", ret); goto exit; } } @@ -129,18 +125,17 @@ int mbedtls_ssl_check_record( mbedtls_ssl_context const *ssl, exit: /* On success, we have decrypted the buffer in-place, so make * sure we don't leak any plaintext data. */ - mbedtls_platform_zeroize( buf, buflen ); + mbedtls_platform_zeroize(buf, buflen); /* For the purpose of this API, treat messages with unexpected CID * as well as such from future epochs as unexpected. */ - if( ret == MBEDTLS_ERR_SSL_UNEXPECTED_CID || - ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE ) - { + if (ret == MBEDTLS_ERR_SSL_UNEXPECTED_CID || + ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE) { ret = MBEDTLS_ERR_SSL_UNEXPECTED_RECORD; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "<= mbedtls_ssl_check_record" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(1, ("<= mbedtls_ssl_check_record")); + return ret; } #define SSL_DONT_FORCE_FLUSH 0 @@ -149,65 +144,66 @@ exit: #if defined(MBEDTLS_SSL_PROTO_DTLS) /* Forward declarations for functions related to message buffering. */ -static void ssl_buffering_free_slot( mbedtls_ssl_context *ssl, - uint8_t slot ); -static void ssl_free_buffered_record( mbedtls_ssl_context *ssl ); +static void ssl_buffering_free_slot(mbedtls_ssl_context *ssl, + uint8_t slot); +static void ssl_free_buffered_record(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_load_buffered_message( mbedtls_ssl_context *ssl ); +static int ssl_load_buffered_message(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_load_buffered_record( mbedtls_ssl_context *ssl ); +static int ssl_load_buffered_record(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_buffer_message( mbedtls_ssl_context *ssl ); +static int ssl_buffer_message(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_buffer_future_record( mbedtls_ssl_context *ssl, - mbedtls_record const *rec ); +static int ssl_buffer_future_record(mbedtls_ssl_context *ssl, + mbedtls_record const *rec); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_next_record_is_in_datagram( mbedtls_ssl_context *ssl ); +static int ssl_next_record_is_in_datagram(mbedtls_ssl_context *ssl); -static size_t ssl_get_maximum_datagram_size( mbedtls_ssl_context const *ssl ) +static size_t ssl_get_maximum_datagram_size(mbedtls_ssl_context const *ssl) { - size_t mtu = mbedtls_ssl_get_current_mtu( ssl ); + size_t mtu = mbedtls_ssl_get_current_mtu(ssl); #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) size_t out_buf_len = ssl->out_buf_len; #else size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN; #endif - if( mtu != 0 && mtu < out_buf_len ) - return( mtu ); + if (mtu != 0 && mtu < out_buf_len) { + return mtu; + } - return( out_buf_len ); + return out_buf_len; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_remaining_space_in_datagram( mbedtls_ssl_context const *ssl ) +static int ssl_get_remaining_space_in_datagram(mbedtls_ssl_context const *ssl) { size_t const bytes_written = ssl->out_left; - size_t const mtu = ssl_get_maximum_datagram_size( ssl ); + size_t const mtu = ssl_get_maximum_datagram_size(ssl); /* Double-check that the write-index hasn't gone * past what we can transmit in a single datagram. */ - if( bytes_written > mtu ) - { + if (bytes_written > mtu) { /* Should never happen... */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - return( (int) ( mtu - bytes_written ) ); + return (int) (mtu - bytes_written); } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_remaining_payload_in_datagram( mbedtls_ssl_context const *ssl ) +static int ssl_get_remaining_payload_in_datagram(mbedtls_ssl_context const *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t remaining, expansion; size_t max_len = MBEDTLS_SSL_OUT_CONTENT_LEN; #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - const size_t mfl = mbedtls_ssl_get_output_max_frag_len( ssl ); + const size_t mfl = mbedtls_ssl_get_output_max_frag_len(ssl); - if( max_len > mfl ) + if (max_len > mfl) { max_len = mfl; + } /* By the standard (RFC 6066 Sect. 4), the MFL extension * only limits the maximum record payload size, so in theory @@ -218,30 +214,35 @@ static int ssl_get_remaining_payload_in_datagram( mbedtls_ssl_context const *ssl * The following reduction of max_len makes sure that we never * write datagrams larger than MFL + Record Expansion Overhead. */ - if( max_len <= ssl->out_left ) - return( 0 ); + if (max_len <= ssl->out_left) { + return 0; + } max_len -= ssl->out_left; #endif - ret = ssl_get_remaining_space_in_datagram( ssl ); - if( ret < 0 ) - return( ret ); + ret = ssl_get_remaining_space_in_datagram(ssl); + if (ret < 0) { + return ret; + } remaining = (size_t) ret; - ret = mbedtls_ssl_get_record_expansion( ssl ); - if( ret < 0 ) - return( ret ); + ret = mbedtls_ssl_get_record_expansion(ssl); + if (ret < 0) { + return ret; + } expansion = (size_t) ret; - if( remaining <= expansion ) - return( 0 ); + if (remaining <= expansion) { + return 0; + } remaining -= expansion; - if( remaining >= max_len ) + if (remaining >= max_len) { remaining = max_len; + } - return( (int) remaining ); + return (int) remaining; } /* @@ -249,12 +250,13 @@ static int ssl_get_remaining_payload_in_datagram( mbedtls_ssl_context const *ssl * returning -1 if the maximum value has already been reached. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_double_retransmit_timeout( mbedtls_ssl_context *ssl ) +static int ssl_double_retransmit_timeout(mbedtls_ssl_context *ssl) { uint32_t new_timeout; - if( ssl->handshake->retransmit_timeout >= ssl->conf->hs_timeout_max ) - return( -1 ); + if (ssl->handshake->retransmit_timeout >= ssl->conf->hs_timeout_max) { + return -1; + } /* Implement the final paragraph of RFC 6347 section 4.1.1.1 * in the following way: after the initial transmission and a first @@ -262,33 +264,31 @@ static int ssl_double_retransmit_timeout( mbedtls_ssl_context *ssl ) * This value is guaranteed to be deliverable (if not guaranteed to be * delivered) of any compliant IPv4 (and IPv6) network, and should work * on most non-IP stacks too. */ - if( ssl->handshake->retransmit_timeout != ssl->conf->hs_timeout_min ) - { + if (ssl->handshake->retransmit_timeout != ssl->conf->hs_timeout_min) { ssl->handshake->mtu = 508; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "mtu autoreduction to %d bytes", ssl->handshake->mtu ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("mtu autoreduction to %d bytes", ssl->handshake->mtu)); } new_timeout = 2 * ssl->handshake->retransmit_timeout; /* Avoid arithmetic overflow and range overflow */ - if( new_timeout < ssl->handshake->retransmit_timeout || - new_timeout > ssl->conf->hs_timeout_max ) - { + if (new_timeout < ssl->handshake->retransmit_timeout || + new_timeout > ssl->conf->hs_timeout_max) { new_timeout = ssl->conf->hs_timeout_max; } ssl->handshake->retransmit_timeout = new_timeout; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "update timeout value to %lu millisecs", - (unsigned long) ssl->handshake->retransmit_timeout ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("update timeout value to %lu millisecs", + (unsigned long) ssl->handshake->retransmit_timeout)); - return( 0 ); + return 0; } -static void ssl_reset_retransmit_timeout( mbedtls_ssl_context *ssl ) +static void ssl_reset_retransmit_timeout(mbedtls_ssl_context *ssl) { ssl->handshake->retransmit_timeout = ssl->conf->hs_timeout_min; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "update timeout value to %lu millisecs", - (unsigned long) ssl->handshake->retransmit_timeout ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("update timeout value to %lu millisecs", + (unsigned long) ssl->handshake->retransmit_timeout)); } #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -298,10 +298,10 @@ static void ssl_reset_retransmit_timeout( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) || defined(MBEDTLS_SSL_PROTO_TLS1_3) -static size_t ssl_compute_padding_length( size_t len, - size_t granularity ) +static size_t ssl_compute_padding_length(size_t len, + size_t granularity) { - return( ( granularity - ( len + 1 ) % granularity ) % granularity ); + return (granularity - (len + 1) % granularity) % granularity; } /* This functions transforms a (D)TLS plaintext fragment and a record content @@ -333,52 +333,54 @@ static size_t ssl_compute_padding_length( size_t len, * for the expansion. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_build_inner_plaintext( unsigned char *content, - size_t *content_size, - size_t remaining, - uint8_t rec_type, - size_t pad ) +static int ssl_build_inner_plaintext(unsigned char *content, + size_t *content_size, + size_t remaining, + uint8_t rec_type, + size_t pad) { size_t len = *content_size; /* Write real content type */ - if( remaining == 0 ) - return( -1 ); - content[ len ] = rec_type; + if (remaining == 0) { + return -1; + } + content[len] = rec_type; len++; remaining--; - if( remaining < pad ) - return( -1 ); - memset( content + len, 0, pad ); + if (remaining < pad) { + return -1; + } + memset(content + len, 0, pad); len += pad; remaining -= pad; *content_size = len; - return( 0 ); + return 0; } /* This function parses a (D)TLSInnerPlaintext structure. * See ssl_build_inner_plaintext() for details. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_inner_plaintext( unsigned char const *content, - size_t *content_size, - uint8_t *rec_type ) +static int ssl_parse_inner_plaintext(unsigned char const *content, + size_t *content_size, + uint8_t *rec_type) { size_t remaining = *content_size; /* Determine length of padding by skipping zeroes from the back. */ - do - { - if( remaining == 0 ) - return( -1 ); + do { + if (remaining == 0) { + return -1; + } remaining--; - } while( content[ remaining ] == 0 ); + } while (content[remaining] == 0); *content_size = remaining; - *rec_type = content[ remaining ]; + *rec_type = content[remaining]; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID || MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -433,12 +435,12 @@ static int ssl_parse_inner_plaintext( unsigned char const *content, * 2: length_of_DTLSInnerPlaintext * */ -static void ssl_extract_add_data_from_record( unsigned char* add_data, - size_t *add_data_len, - mbedtls_record *rec, - mbedtls_ssl_protocol_version - tls_version, - size_t taglen ) +static void ssl_extract_add_data_from_record(unsigned char *add_data, + size_t *add_data_len, + mbedtls_record *rec, + mbedtls_ssl_protocol_version + tls_version, + size_t taglen) { /* Several types of ciphers have been defined for use with TLS and DTLS, * and the MAC calculations for those ciphers differ slightly. Further @@ -527,7 +529,7 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, * cid + * cid_length + * length_of_DTLSInnerPlaintext - */ + */ unsigned char *cur = add_data; size_t ad_len_field = rec->data_len; @@ -538,26 +540,23 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* In TLS 1.3, the AAD contains the length of the TLSCiphertext, * which differs from the length of the TLSInnerPlaintext * by the length of the authentication tag. */ ad_len_field += taglen; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ { ((void) tls_version); ((void) taglen); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ - MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 - if( rec->cid_len != 0 ) - { + MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 + if (rec->cid_len != 0) { // seq_num_placeholder - memcpy( cur, seq_num_placeholder, sizeof(seq_num_placeholder) ); - cur += sizeof( seq_num_placeholder ); + memcpy(cur, seq_num_placeholder, sizeof(seq_num_placeholder)); + cur += sizeof(seq_num_placeholder); // tls12_cid type *cur = rec->type; @@ -566,13 +565,12 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, // cid_length *cur = rec->cid_len; cur++; - } - else + } else #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ { // epoch + sequence number - memcpy( cur, rec->ctr, sizeof( rec->ctr ) ); - cur += sizeof( rec->ctr ); + memcpy(cur, rec->ctr, sizeof(rec->ctr)); + cur += sizeof(rec->ctr); } } @@ -581,14 +579,13 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, cur++; // version - memcpy( cur, rec->ver, sizeof( rec->ver ) ); - cur += sizeof( rec->ver ); + memcpy(cur, rec->ver, sizeof(rec->ver)); + cur += sizeof(rec->ver); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 1 - if (rec->cid_len != 0) - { + if (rec->cid_len != 0) { // CID memcpy(cur, rec->cid, rec->cid_len); cur += rec->cid_len; @@ -600,29 +597,26 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, // length of inner plaintext MBEDTLS_PUT_UINT16_BE(ad_len_field, cur, 0); cur += 2; - } - else + } else #elif defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \ MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT == 0 - if( rec->cid_len != 0 ) - { + if (rec->cid_len != 0) { // epoch + sequence number memcpy(cur, rec->ctr, sizeof(rec->ctr)); cur += sizeof(rec->ctr); // CID - memcpy( cur, rec->cid, rec->cid_len ); + memcpy(cur, rec->cid, rec->cid_len); cur += rec->cid_len; // length of inner plaintext - MBEDTLS_PUT_UINT16_BE( ad_len_field, cur, 0 ); + MBEDTLS_PUT_UINT16_BE(ad_len_field, cur, 0); cur += 2; - } - else + } else #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ { - MBEDTLS_PUT_UINT16_BE( ad_len_field, cur, 0 ); + MBEDTLS_PUT_UINT16_BE(ad_len_field, cur, 0); cur += 2; } @@ -634,9 +628,9 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, defined(MBEDTLS_CHACHAPOLY_C) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_transform_aead_dynamic_iv_is_explicit( - mbedtls_ssl_transform const *transform ) + mbedtls_ssl_transform const *transform) { - return( transform->ivlen != transform->fixed_ivlen ); + return transform->ivlen != transform->fixed_ivlen; } /* Compute IV := ( fixed_iv || 0 ) XOR ( 0 || dynamic_IV ) @@ -662,34 +656,34 @@ static int ssl_transform_aead_dynamic_iv_is_explicit( * which has to be ensured by the caller. If this precondition * violated, the behavior of this function is undefined. */ -static void ssl_build_record_nonce( unsigned char *dst_iv, - size_t dst_iv_len, - unsigned char const *fixed_iv, - size_t fixed_iv_len, - unsigned char const *dynamic_iv, - size_t dynamic_iv_len ) +static void ssl_build_record_nonce(unsigned char *dst_iv, + size_t dst_iv_len, + unsigned char const *fixed_iv, + size_t fixed_iv_len, + unsigned char const *dynamic_iv, + size_t dynamic_iv_len) { /* Start with Fixed IV || 0 */ - memset( dst_iv, 0, dst_iv_len ); - memcpy( dst_iv, fixed_iv, fixed_iv_len ); + memset(dst_iv, 0, dst_iv_len); + memcpy(dst_iv, fixed_iv, fixed_iv_len); dst_iv += dst_iv_len - dynamic_iv_len; - mbedtls_xor( dst_iv, dst_iv, dynamic_iv, dynamic_iv_len ); + mbedtls_xor(dst_iv, dst_iv, dynamic_iv, dynamic_iv_len); } #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ -int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform, - mbedtls_record *rec, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_ssl_encrypt_buf(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform, + mbedtls_record *rec, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { mbedtls_ssl_mode_t ssl_mode; int auth_done = 0; - unsigned char * data; + unsigned char *data; /* For an explanation of the additional data length see - * the description of ssl_extract_add_data_from_record(). - */ + * the description of ssl_extract_add_data_from_record(). + */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char add_data[23 + MBEDTLS_SSL_CID_OUT_LEN_MAX]; #else @@ -706,46 +700,43 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, /* The PRNG is used for dynamic IV generation that's used * for CBC transformations in TLS 1.2. */ -#if !( defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \ - defined(MBEDTLS_SSL_PROTO_TLS1_2) ) +#if !(defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \ + defined(MBEDTLS_SSL_PROTO_TLS1_2)) ((void) f_rng); ((void) p_rng); #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> encrypt buf" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> encrypt buf")); - if( transform == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no transform provided to encrypt_buf" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (transform == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no transform provided to encrypt_buf")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( rec == NULL + if (rec == NULL || rec->buf == NULL || rec->buf_len < rec->data_offset || rec->buf_len - rec->data_offset < rec->data_len #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) || rec->cid_len != 0 #endif - ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad record structure provided to encrypt_buf" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + ) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad record structure provided to encrypt_buf")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - ssl_mode = mbedtls_ssl_get_mode_from_transform( transform ); + ssl_mode = mbedtls_ssl_get_mode_from_transform(transform); data = rec->buf + rec->data_offset; - post_avail = rec->buf_len - ( rec->data_len + rec->data_offset ); - MBEDTLS_SSL_DEBUG_BUF( 4, "before encrypt: output payload", - data, rec->data_len ); + post_avail = rec->buf_len - (rec->data_len + rec->data_offset); + MBEDTLS_SSL_DEBUG_BUF(4, "before encrypt: output payload", + data, rec->data_len); - if( rec->data_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Record content %" MBEDTLS_PRINTF_SIZET - " too large, maximum %" MBEDTLS_PRINTF_SIZET, - rec->data_len, - (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (rec->data_len > MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Record content %" MBEDTLS_PRINTF_SIZET + " too large, maximum %" MBEDTLS_PRINTF_SIZET, + rec->data_len, + (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* The following two code paths implement the (D)TLSInnerPlaintext @@ -761,18 +752,16 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * is hence no risk of double-addition of the inner plaintext. */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { size_t padding = - ssl_compute_padding_length( rec->data_len, - MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY ); - if( ssl_build_inner_plaintext( data, - &rec->data_len, - post_avail, - rec->type, - padding ) != 0 ) - { - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + ssl_compute_padding_length(rec->data_len, + MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY); + if (ssl_build_inner_plaintext(data, + &rec->data_len, + post_avail, + rec->type, + padding) != 0) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } rec->type = MBEDTLS_SSL_MSG_APPLICATION_DATA; @@ -784,14 +773,13 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * Add CID information */ rec->cid_len = transform->out_cid_len; - memcpy( rec->cid, transform->out_cid, transform->out_cid_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "CID", rec->cid, rec->cid_len ); + memcpy(rec->cid, transform->out_cid, transform->out_cid_len); + MBEDTLS_SSL_DEBUG_BUF(3, "CID", rec->cid, rec->cid_len); - if( rec->cid_len != 0 ) - { + if (rec->cid_len != 0) { size_t padding = - ssl_compute_padding_length( rec->data_len, - MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY ); + ssl_compute_padding_length(rec->data_len, + MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY); /* * Wrap plaintext into DTLSInnerPlaintext structure. * See ssl_build_inner_plaintext() for more information. @@ -799,32 +787,29 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * Note that this changes `rec->data_len`, and hence * `post_avail` needs to be recalculated afterwards. */ - if( ssl_build_inner_plaintext( data, - &rec->data_len, - post_avail, - rec->type, - padding ) != 0 ) - { - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (ssl_build_inner_plaintext(data, + &rec->data_len, + post_avail, + rec->type, + padding) != 0) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } rec->type = MBEDTLS_SSL_MSG_CID; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - post_avail = rec->buf_len - ( rec->data_len + rec->data_offset ); + post_avail = rec->buf_len - (rec->data_len + rec->data_offset); /* * Add MAC before if needed */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( ssl_mode == MBEDTLS_SSL_MODE_STREAM || - ssl_mode == MBEDTLS_SSL_MODE_CBC ) - { - if( post_avail < transform->maclen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (ssl_mode == MBEDTLS_SSL_MODE_STREAM || + ssl_mode == MBEDTLS_SSL_MODE_CBC) { + if (post_avail < transform->maclen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) unsigned char mac[MBEDTLS_SSL_MAC_ADD]; @@ -835,66 +820,74 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, size_t sign_mac_length = 0; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - ssl_extract_add_data_from_record( add_data, &add_data_len, rec, - transform->tls_version, - transform->taglen ); + ssl_extract_add_data_from_record(add_data, &add_data_len, rec, + transform->tls_version, + transform->taglen); #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_sign_setup( &operation, transform->psa_mac_enc, - transform->psa_mac_alg ); - if( status != PSA_SUCCESS ) + status = psa_mac_sign_setup(&operation, transform->psa_mac_enc, + transform->psa_mac_alg); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_disabled; + } - status = psa_mac_update( &operation, add_data, add_data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, add_data, add_data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_disabled; + } - status = psa_mac_update( &operation, data, rec->data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, data, rec->data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_disabled; + } - status = psa_mac_sign_finish( &operation, mac, MBEDTLS_SSL_MAC_ADD, - &sign_mac_length ); - if( status != PSA_SUCCESS ) + status = psa_mac_sign_finish(&operation, mac, MBEDTLS_SSL_MAC_ADD, + &sign_mac_length); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_disabled; + } #else - ret = mbedtls_md_hmac_update( &transform->md_ctx_enc, add_data, - add_data_len ); - if( ret != 0 ) + ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data, + add_data_len); + if (ret != 0) { goto hmac_failed_etm_disabled; - ret = mbedtls_md_hmac_update( &transform->md_ctx_enc, data, rec->data_len ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, data, rec->data_len); + if (ret != 0) { goto hmac_failed_etm_disabled; - ret = mbedtls_md_hmac_finish( &transform->md_ctx_enc, mac ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac); + if (ret != 0) { goto hmac_failed_etm_disabled; - ret = mbedtls_md_hmac_reset( &transform->md_ctx_enc ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc); + if (ret != 0) { goto hmac_failed_etm_disabled; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - memcpy( data + rec->data_len, mac, transform->maclen ); + memcpy(data + rec->data_len, mac, transform->maclen); #endif - MBEDTLS_SSL_DEBUG_BUF( 4, "computed mac", data + rec->data_len, - transform->maclen ); + MBEDTLS_SSL_DEBUG_BUF(4, "computed mac", data + rec->data_len, + transform->maclen); rec->data_len += transform->maclen; post_avail -= transform->maclen; auth_done++; - hmac_failed_etm_disabled: - mbedtls_platform_zeroize( mac, transform->maclen ); +hmac_failed_etm_disabled: + mbedtls_platform_zeroize(mac, transform->maclen); #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = psa_ssl_status_to_mbedtls( status ); - status = psa_mac_abort( &operation ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + ret = psa_ssl_status_to_mbedtls(status); + status = psa_mac_abort(&operation); + if (ret == 0 && status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_hmac_xxx", ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_hmac_xxx", ret); + return ret; } } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ @@ -903,38 +896,34 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * Encrypt */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_STREAM) - if( ssl_mode == MBEDTLS_SSL_MODE_STREAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " - "including %d bytes of padding", - rec->data_len, 0 ) ); + if (ssl_mode == MBEDTLS_SSL_MODE_STREAM) { + MBEDTLS_SSL_DEBUG_MSG(3, ("before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " + "including %d bytes of padding", + rec->data_len, 0)); /* The only supported stream cipher is "NULL", * so there's nothing to do here.*/ - } - else + } else #endif /* MBEDTLS_SSL_SOME_SUITES_USE_STREAM */ #if defined(MBEDTLS_GCM_C) || \ defined(MBEDTLS_CCM_C) || \ defined(MBEDTLS_CHACHAPOLY_C) - if( ssl_mode == MBEDTLS_SSL_MODE_AEAD ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_AEAD) { unsigned char iv[12]; unsigned char *dynamic_iv; size_t dynamic_iv_len; int dynamic_iv_is_explicit = - ssl_transform_aead_dynamic_iv_is_explicit( transform ); + ssl_transform_aead_dynamic_iv_is_explicit(transform); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #endif /* MBEDTLS_USE_PSA_CRYPTO */ int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Check that there's space for the authentication tag. */ - if( post_avail < transform->taglen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (post_avail < transform->taglen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } /* @@ -950,95 +939,89 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * record sequence number here in all cases. */ dynamic_iv = rec->ctr; - dynamic_iv_len = sizeof( rec->ctr ); + dynamic_iv_len = sizeof(rec->ctr); - ssl_build_record_nonce( iv, sizeof( iv ), - transform->iv_enc, - transform->fixed_ivlen, - dynamic_iv, - dynamic_iv_len ); + ssl_build_record_nonce(iv, sizeof(iv), + transform->iv_enc, + transform->fixed_ivlen, + dynamic_iv, + dynamic_iv_len); /* * Build additional data for AEAD encryption. * This depends on the TLS version. */ - ssl_extract_add_data_from_record( add_data, &add_data_len, rec, - transform->tls_version, - transform->taglen ); + ssl_extract_add_data_from_record(add_data, &add_data_len, rec, + transform->tls_version, + transform->taglen); - MBEDTLS_SSL_DEBUG_BUF( 4, "IV used (internal)", - iv, transform->ivlen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "IV used (transmitted)", - dynamic_iv, - dynamic_iv_is_explicit ? dynamic_iv_len : 0 ); - MBEDTLS_SSL_DEBUG_BUF( 4, "additional data used for AEAD", - add_data, add_data_len ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " - "including 0 bytes of padding", - rec->data_len ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "IV used (internal)", + iv, transform->ivlen); + MBEDTLS_SSL_DEBUG_BUF(4, "IV used (transmitted)", + dynamic_iv, + dynamic_iv_is_explicit ? dynamic_iv_len : 0); + MBEDTLS_SSL_DEBUG_BUF(4, "additional data used for AEAD", + add_data, add_data_len); + MBEDTLS_SSL_DEBUG_MSG(3, ("before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " + "including 0 bytes of padding", + rec->data_len)); /* * Encrypt and authenticate */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_aead_encrypt( transform->psa_key_enc, - transform->psa_alg, - iv, transform->ivlen, - add_data, add_data_len, - data, rec->data_len, - data, rec->buf_len - (data - rec->buf), - &rec->data_len ); + status = psa_aead_encrypt(transform->psa_key_enc, + transform->psa_alg, + iv, transform->ivlen, + add_data, add_data_len, + data, rec->data_len, + data, rec->buf_len - (data - rec->buf), + &rec->data_len); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_encrypt_buf", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_encrypt_buf", ret); + return ret; } #else - if( ( ret = mbedtls_cipher_auth_encrypt_ext( &transform->cipher_ctx_enc, - iv, transform->ivlen, - add_data, add_data_len, - data, rec->data_len, /* src */ - data, rec->buf_len - (data - rec->buf), /* dst */ - &rec->data_len, - transform->taglen ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_auth_encrypt_ext", ret ); - return( ret ); + if ((ret = mbedtls_cipher_auth_encrypt_ext(&transform->cipher_ctx_enc, + iv, transform->ivlen, + add_data, add_data_len, + data, rec->data_len, /* src */ + data, rec->buf_len - (data - rec->buf), /* dst */ + &rec->data_len, + transform->taglen)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_auth_encrypt_ext", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - MBEDTLS_SSL_DEBUG_BUF( 4, "after encrypt: tag", - data + rec->data_len - transform->taglen, - transform->taglen ); + MBEDTLS_SSL_DEBUG_BUF(4, "after encrypt: tag", + data + rec->data_len - transform->taglen, + transform->taglen); /* Account for authentication tag. */ post_avail -= transform->taglen; /* * Prefix record content with dynamic IV in case it is explicit. */ - if( dynamic_iv_is_explicit != 0 ) - { - if( rec->data_offset < dynamic_iv_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (dynamic_iv_is_explicit != 0) { + if (rec->data_offset < dynamic_iv_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - memcpy( data - dynamic_iv_len, dynamic_iv, dynamic_iv_len ); + memcpy(data - dynamic_iv_len, dynamic_iv, dynamic_iv_len); rec->data_offset -= dynamic_iv_len; rec->data_len += dynamic_iv_len; } auth_done++; - } - else + } else #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) - if( ssl_mode == MBEDTLS_SSL_MODE_CBC || - ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_CBC || + ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t padlen, i; size_t olen; @@ -1050,19 +1033,20 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, /* Currently we're always using minimal padding * (up to 255 bytes would be allowed). */ - padlen = transform->ivlen - ( rec->data_len + 1 ) % transform->ivlen; - if( padlen == transform->ivlen ) + padlen = transform->ivlen - (rec->data_len + 1) % transform->ivlen; + if (padlen == transform->ivlen) { padlen = 0; - - /* Check there's enough space in the buffer for the padding. */ - if( post_avail < padlen + 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } - for( i = 0; i <= padlen; i++ ) + /* Check there's enough space in the buffer for the padding. */ + if (post_avail < padlen + 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; + } + + for (i = 0; i <= padlen; i++) { data[rec->data_len + i] = (unsigned char) padlen; + } rec->data_len += padlen + 1; post_avail -= padlen + 1; @@ -1072,96 +1056,90 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, * Prepend per-record IV for block cipher in TLS v1.2 as per * Method 1 (6.2.3.2. in RFC4346 and RFC5246) */ - if( f_rng == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "No PRNG provided to encrypt_record routine" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (f_rng == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("No PRNG provided to encrypt_record routine")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( rec->data_offset < transform->ivlen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (rec->data_offset < transform->ivlen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } /* * Generate IV */ - ret = f_rng( p_rng, transform->iv_enc, transform->ivlen ); - if( ret != 0 ) - return( ret ); + ret = f_rng(p_rng, transform->iv_enc, transform->ivlen); + if (ret != 0) { + return ret; + } - memcpy( data - transform->ivlen, transform->iv_enc, transform->ivlen ); + memcpy(data - transform->ivlen, transform->iv_enc, transform->ivlen); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " - "including %" MBEDTLS_PRINTF_SIZET - " bytes of IV and %" MBEDTLS_PRINTF_SIZET " bytes of padding", - rec->data_len, transform->ivlen, - padlen + 1 ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("before encrypt: msglen = %" MBEDTLS_PRINTF_SIZET ", " + "including %" + MBEDTLS_PRINTF_SIZET + " bytes of IV and %" MBEDTLS_PRINTF_SIZET " bytes of padding", + rec->data_len, transform->ivlen, + padlen + 1)); #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_cipher_encrypt_setup( &cipher_op, - transform->psa_key_enc, transform->psa_alg ); + status = psa_cipher_encrypt_setup(&cipher_op, + transform->psa_key_enc, transform->psa_alg); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_encrypt_setup", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_encrypt_setup", ret); + return ret; } - status = psa_cipher_set_iv( &cipher_op, transform->iv_enc, transform->ivlen ); + status = psa_cipher_set_iv(&cipher_op, transform->iv_enc, transform->ivlen); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_set_iv", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_set_iv", ret); + return ret; } - status = psa_cipher_update( &cipher_op, - data, rec->data_len, - data, rec->data_len, &olen ); + status = psa_cipher_update(&cipher_op, + data, rec->data_len, + data, rec->data_len, &olen); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_update", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_update", ret); + return ret; } - status = psa_cipher_finish( &cipher_op, - data + olen, rec->data_len - olen, - &part_len ); + status = psa_cipher_finish(&cipher_op, + data + olen, rec->data_len - olen, + &part_len); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_finish", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_finish", ret); + return ret; } olen += part_len; #else - if( ( ret = mbedtls_cipher_crypt( &transform->cipher_ctx_enc, - transform->iv_enc, - transform->ivlen, - data, rec->data_len, - data, &olen ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_crypt", ret ); - return( ret ); + if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_enc, + transform->iv_enc, + transform->ivlen, + data, rec->data_len, + data, &olen)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_crypt", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( rec->data_len != olen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (rec->data_len != olen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } data -= transform->ivlen; @@ -1169,8 +1147,7 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, rec->data_len += transform->ivlen; #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( auth_done == 0 ) - { + if (auth_done == 0) { unsigned char mac[MBEDTLS_SSL_MAC_ADD]; #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; @@ -1180,99 +1157,104 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, /* MAC(MAC_write_key, add_data, IV, ENC(content + padding + padding_length)) */ - if( post_avail < transform->maclen) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (post_avail < transform->maclen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Buffer provided for encrypted record not large enough")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - ssl_extract_add_data_from_record( add_data, &add_data_len, - rec, transform->tls_version, - transform->taglen ); + ssl_extract_add_data_from_record(add_data, &add_data_len, + rec, transform->tls_version, + transform->taglen); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "using encrypt then mac" ) ); - MBEDTLS_SSL_DEBUG_BUF( 4, "MAC'd meta-data", add_data, - add_data_len ); + MBEDTLS_SSL_DEBUG_MSG(3, ("using encrypt then mac")); + MBEDTLS_SSL_DEBUG_BUF(4, "MAC'd meta-data", add_data, + add_data_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_sign_setup( &operation, transform->psa_mac_enc, - transform->psa_mac_alg ); - if( status != PSA_SUCCESS ) + status = psa_mac_sign_setup(&operation, transform->psa_mac_enc, + transform->psa_mac_alg); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } - status = psa_mac_update( &operation, add_data, add_data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, add_data, add_data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } - status = psa_mac_update( &operation, data, rec->data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, data, rec->data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } - status = psa_mac_sign_finish( &operation, mac, MBEDTLS_SSL_MAC_ADD, - &sign_mac_length ); - if( status != PSA_SUCCESS ) + status = psa_mac_sign_finish(&operation, mac, MBEDTLS_SSL_MAC_ADD, + &sign_mac_length); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } #else - ret = mbedtls_md_hmac_update( &transform->md_ctx_enc, add_data, - add_data_len ); - if( ret != 0 ) + ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, add_data, + add_data_len); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_update( &transform->md_ctx_enc, - data, rec->data_len ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&transform->md_ctx_enc, + data, rec->data_len); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_finish( &transform->md_ctx_enc, mac ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&transform->md_ctx_enc, mac); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_reset( &transform->md_ctx_enc ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_reset(&transform->md_ctx_enc); + if (ret != 0) { goto hmac_failed_etm_enabled; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - memcpy( data + rec->data_len, mac, transform->maclen ); + memcpy(data + rec->data_len, mac, transform->maclen); rec->data_len += transform->maclen; post_avail -= transform->maclen; auth_done++; - hmac_failed_etm_enabled: - mbedtls_platform_zeroize( mac, transform->maclen ); +hmac_failed_etm_enabled: + mbedtls_platform_zeroize(mac, transform->maclen); #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = psa_ssl_status_to_mbedtls( status ); - status = psa_mac_abort( &operation ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + ret = psa_ssl_status_to_mbedtls(status); + status = psa_mac_abort(&operation); + if (ret == 0 && status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "HMAC calculation failed", ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "HMAC calculation failed", ret); + return ret; } } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ - } - else + } else #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC) */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Make extra sure authentication was performed, exactly once */ - if( auth_done != 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (auth_done != 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= encrypt buf" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= encrypt buf")); - return( 0 ); + return 0; } -int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, - mbedtls_ssl_transform *transform, - mbedtls_record *rec ) +int mbedtls_ssl_decrypt_buf(mbedtls_ssl_context const *ssl, + mbedtls_ssl_transform *transform, + mbedtls_record *rec) { #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) || defined(MBEDTLS_CIPHER_MODE_AEAD) size_t olen; @@ -1284,10 +1266,10 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) size_t padlen = 0, correct = 1; #endif - unsigned char* data; + unsigned char *data; /* For an explanation of the additional data length see - * the description of ssl_extract_add_data_from_record(). - */ + * the description of ssl_extract_add_data_from_record(). + */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) unsigned char add_data[23 + MBEDTLS_SSL_CID_IN_LEN_MAX]; #else @@ -1300,43 +1282,38 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, ((void) ssl); #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> decrypt buf" ) ); - if( rec == NULL || + MBEDTLS_SSL_DEBUG_MSG(2, ("=> decrypt buf")); + if (rec == NULL || rec->buf == NULL || rec->buf_len < rec->data_offset || - rec->buf_len - rec->data_offset < rec->data_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad record structure provided to decrypt_buf" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + rec->buf_len - rec->data_offset < rec->data_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad record structure provided to decrypt_buf")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } data = rec->buf + rec->data_offset; - ssl_mode = mbedtls_ssl_get_mode_from_transform( transform ); + ssl_mode = mbedtls_ssl_get_mode_from_transform(transform); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* * Match record's CID with incoming CID. */ - if( rec->cid_len != transform->in_cid_len || - memcmp( rec->cid, transform->in_cid, rec->cid_len ) != 0 ) - { - return( MBEDTLS_ERR_SSL_UNEXPECTED_CID ); + if (rec->cid_len != transform->in_cid_len || + memcmp(rec->cid, transform->in_cid, rec->cid_len) != 0) { + return MBEDTLS_ERR_SSL_UNEXPECTED_CID; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_STREAM) - if( ssl_mode == MBEDTLS_SSL_MODE_STREAM ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_STREAM) { /* The only supported stream cipher is "NULL", * so there's nothing to do here.*/ - } - else + } else #endif /* MBEDTLS_SSL_SOME_SUITES_USE_STREAM */ #if defined(MBEDTLS_GCM_C) || \ defined(MBEDTLS_CCM_C) || \ defined(MBEDTLS_CHACHAPOLY_C) - if( ssl_mode == MBEDTLS_SSL_MODE_AEAD ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_AEAD) { unsigned char iv[12]; unsigned char *dynamic_iv; size_t dynamic_iv_len; @@ -1352,57 +1329,52 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * can be chosen freely - in particular, it need not * agree with the record sequence number. */ - dynamic_iv_len = sizeof( rec->ctr ); - if( ssl_transform_aead_dynamic_iv_is_explicit( transform ) == 1 ) - { - if( rec->data_len < dynamic_iv_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%" MBEDTLS_PRINTF_SIZET - " ) < explicit_iv_len (%" MBEDTLS_PRINTF_SIZET ") ", - rec->data_len, - dynamic_iv_len ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + dynamic_iv_len = sizeof(rec->ctr); + if (ssl_transform_aead_dynamic_iv_is_explicit(transform) == 1) { + if (rec->data_len < dynamic_iv_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("msglen (%" MBEDTLS_PRINTF_SIZET + " ) < explicit_iv_len (%" MBEDTLS_PRINTF_SIZET ") ", + rec->data_len, + dynamic_iv_len)); + return MBEDTLS_ERR_SSL_INVALID_MAC; } dynamic_iv = data; data += dynamic_iv_len; rec->data_offset += dynamic_iv_len; rec->data_len -= dynamic_iv_len; - } - else - { + } else { dynamic_iv = rec->ctr; } /* Check that there's space for the authentication tag. */ - if( rec->data_len < transform->taglen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%" MBEDTLS_PRINTF_SIZET - ") < taglen (%" MBEDTLS_PRINTF_SIZET ") ", - rec->data_len, - transform->taglen ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (rec->data_len < transform->taglen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("msglen (%" MBEDTLS_PRINTF_SIZET + ") < taglen (%" MBEDTLS_PRINTF_SIZET ") ", + rec->data_len, + transform->taglen)); + return MBEDTLS_ERR_SSL_INVALID_MAC; } rec->data_len -= transform->taglen; /* * Prepare nonce from dynamic and static parts. */ - ssl_build_record_nonce( iv, sizeof( iv ), - transform->iv_dec, - transform->fixed_ivlen, - dynamic_iv, - dynamic_iv_len ); + ssl_build_record_nonce(iv, sizeof(iv), + transform->iv_dec, + transform->fixed_ivlen, + dynamic_iv, + dynamic_iv_len); /* * Build additional data for AEAD encryption. * This depends on the TLS version. */ - ssl_extract_add_data_from_record( add_data, &add_data_len, rec, - transform->tls_version, - transform->taglen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "additional data used for AEAD", - add_data, add_data_len ); + ssl_extract_add_data_from_record(add_data, &add_data_len, rec, + transform->tls_version, + transform->taglen); + MBEDTLS_SSL_DEBUG_BUF(4, "additional data used for AEAD", + add_data, add_data_len); /* Because of the check above, we know that there are * explicit_iv_len Bytes preceding data, and taglen @@ -1410,60 +1382,56 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * the debug message and the invocation of * mbedtls_cipher_auth_decrypt_ext() below. */ - MBEDTLS_SSL_DEBUG_BUF( 4, "IV used", iv, transform->ivlen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "TAG used", data + rec->data_len, - transform->taglen ); + MBEDTLS_SSL_DEBUG_BUF(4, "IV used", iv, transform->ivlen); + MBEDTLS_SSL_DEBUG_BUF(4, "TAG used", data + rec->data_len, + transform->taglen); /* * Decrypt and authenticate */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_aead_decrypt( transform->psa_key_dec, - transform->psa_alg, - iv, transform->ivlen, - add_data, add_data_len, - data, rec->data_len + transform->taglen, - data, rec->buf_len - (data - rec->buf), - &olen ); + status = psa_aead_decrypt(transform->psa_key_dec, + transform->psa_alg, + iv, transform->ivlen, + add_data, add_data_len, + data, rec->data_len + transform->taglen, + data, rec->buf_len - (data - rec->buf), + &olen); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_aead_decrypt", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_aead_decrypt", ret); + return ret; } #else - if( ( ret = mbedtls_cipher_auth_decrypt_ext( &transform->cipher_ctx_dec, - iv, transform->ivlen, - add_data, add_data_len, - data, rec->data_len + transform->taglen, /* src */ - data, rec->buf_len - (data - rec->buf), &olen, /* dst */ - transform->taglen ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_auth_decrypt_ext", ret ); + if ((ret = mbedtls_cipher_auth_decrypt_ext(&transform->cipher_ctx_dec, + iv, transform->ivlen, + add_data, add_data_len, + data, rec->data_len + transform->taglen, /* src */ + data, rec->buf_len - (data - rec->buf), &olen, /* dst */ + transform->taglen)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_auth_decrypt_ext", ret); - if( ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED ) - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED) { + return MBEDTLS_ERR_SSL_INVALID_MAC; + } - return( ret ); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ auth_done++; /* Double-check that AEAD decryption doesn't change content length. */ - if( olen != rec->data_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (olen != rec->data_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - } - else + } else #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) - if( ssl_mode == MBEDTLS_SSL_MODE_CBC || - ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_CBC || + ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) { size_t minlen = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -1500,31 +1468,30 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * lower bound minlen + maclen + 1 on the record size, which * we test for in the second check below. */ - if( rec->data_len < minlen + transform->ivlen || - rec->data_len < minlen + transform->maclen + 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%" MBEDTLS_PRINTF_SIZET - ") < max( ivlen(%" MBEDTLS_PRINTF_SIZET - "), maclen (%" MBEDTLS_PRINTF_SIZET ") " - "+ 1 ) ( + expl IV )", rec->data_len, - transform->ivlen, - transform->maclen ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (rec->data_len < minlen + transform->ivlen || + rec->data_len < minlen + transform->maclen + 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("msglen (%" MBEDTLS_PRINTF_SIZET + ") < max( ivlen(%" MBEDTLS_PRINTF_SIZET + "), maclen (%" MBEDTLS_PRINTF_SIZET ") " + "+ 1 ) ( + expl IV )", + rec->data_len, + transform->ivlen, + transform->maclen)); + return MBEDTLS_ERR_SSL_INVALID_MAC; } /* * Authenticate before decrypt if enabled */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; #else unsigned char mac_expect[MBEDTLS_SSL_MAC_ADD]; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "using encrypt then mac" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("using encrypt then mac")); /* Update data_len in tandem with add_data. * @@ -1537,78 +1504,86 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * * Further, we still know that data_len > minlen */ rec->data_len -= transform->maclen; - ssl_extract_add_data_from_record( add_data, &add_data_len, rec, - transform->tls_version, - transform->taglen ); + ssl_extract_add_data_from_record(add_data, &add_data_len, rec, + transform->tls_version, + transform->taglen); /* Calculate expected MAC. */ - MBEDTLS_SSL_DEBUG_BUF( 4, "MAC'd meta-data", add_data, - add_data_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "MAC'd meta-data", add_data, + add_data_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_mac_verify_setup( &operation, transform->psa_mac_dec, - transform->psa_mac_alg ); - if( status != PSA_SUCCESS ) + status = psa_mac_verify_setup(&operation, transform->psa_mac_dec, + transform->psa_mac_alg); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } - status = psa_mac_update( &operation, add_data, add_data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, add_data, add_data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } - status = psa_mac_update( &operation, data, rec->data_len ); - if( status != PSA_SUCCESS ) + status = psa_mac_update(&operation, data, rec->data_len); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } /* Compare expected MAC with MAC at the end of the record. */ - status = psa_mac_verify_finish( &operation, data + rec->data_len, - transform->maclen ); - if( status != PSA_SUCCESS ) + status = psa_mac_verify_finish(&operation, data + rec->data_len, + transform->maclen); + if (status != PSA_SUCCESS) { goto hmac_failed_etm_enabled; + } #else - ret = mbedtls_md_hmac_update( &transform->md_ctx_dec, add_data, - add_data_len ); - if( ret != 0 ) + ret = mbedtls_md_hmac_update(&transform->md_ctx_dec, add_data, + add_data_len); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_update( &transform->md_ctx_dec, - data, rec->data_len ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&transform->md_ctx_dec, + data, rec->data_len); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_finish( &transform->md_ctx_dec, mac_expect ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&transform->md_ctx_dec, mac_expect); + if (ret != 0) { goto hmac_failed_etm_enabled; - ret = mbedtls_md_hmac_reset( &transform->md_ctx_dec ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_reset(&transform->md_ctx_dec); + if (ret != 0) { goto hmac_failed_etm_enabled; + } - MBEDTLS_SSL_DEBUG_BUF( 4, "message mac", data + rec->data_len, - transform->maclen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "expected mac", mac_expect, - transform->maclen ); + MBEDTLS_SSL_DEBUG_BUF(4, "message mac", data + rec->data_len, + transform->maclen); + MBEDTLS_SSL_DEBUG_BUF(4, "expected mac", mac_expect, + transform->maclen); /* Compare expected MAC with MAC at the end of the record. */ - if( mbedtls_ct_memcmp( data + rec->data_len, mac_expect, - transform->maclen ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "message mac does not match" ) ); + if (mbedtls_ct_memcmp(data + rec->data_len, mac_expect, + transform->maclen) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("message mac does not match")); ret = MBEDTLS_ERR_SSL_INVALID_MAC; goto hmac_failed_etm_enabled; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ auth_done++; - hmac_failed_etm_enabled: +hmac_failed_etm_enabled: #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = psa_ssl_status_to_mbedtls( status ); - status = psa_mac_abort( &operation ); - if( ret == 0 && status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + ret = psa_ssl_status_to_mbedtls(status); + status = psa_mac_abort(&operation); + if (ret == 0 && status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } #else - mbedtls_platform_zeroize( mac_expect, transform->maclen ); + mbedtls_platform_zeroize(mac_expect, transform->maclen); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ret != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_INVALID_MAC ) - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_hmac_xxx", ret ); - return( ret ); + if (ret != 0) { + if (ret != MBEDTLS_ERR_SSL_INVALID_MAC) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_hmac_xxx", ret); + } + return ret; } } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ @@ -1620,12 +1595,11 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, /* We know from above that data_len > minlen >= 0, * so the following check in particular implies that * data_len >= minlen + ivlen ( = minlen or 2 * minlen ). */ - if( rec->data_len % transform->ivlen != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%" MBEDTLS_PRINTF_SIZET - ") %% ivlen (%" MBEDTLS_PRINTF_SIZET ") != 0", - rec->data_len, transform->ivlen ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (rec->data_len % transform->ivlen != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("msglen (%" MBEDTLS_PRINTF_SIZET + ") %% ivlen (%" MBEDTLS_PRINTF_SIZET ") != 0", + rec->data_len, transform->ivlen)); + return MBEDTLS_ERR_SSL_INVALID_MAC; } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) @@ -1633,7 +1607,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * Initialize for prepended IV for block cipher in TLS v1.2 */ /* Safe because data_len >= minlen + ivlen = 2 * ivlen. */ - memcpy( transform->iv_dec, data, transform->ivlen ); + memcpy(transform->iv_dec, data, transform->ivlen); data += transform->ivlen; rec->data_offset += transform->ivlen; @@ -1643,64 +1617,58 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, /* We still have data_len % ivlen == 0 and data_len >= ivlen here. */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_cipher_decrypt_setup( &cipher_op, - transform->psa_key_dec, transform->psa_alg ); + status = psa_cipher_decrypt_setup(&cipher_op, + transform->psa_key_dec, transform->psa_alg); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_decrypt_setup", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_decrypt_setup", ret); + return ret; } - status = psa_cipher_set_iv( &cipher_op, transform->iv_dec, transform->ivlen ); + status = psa_cipher_set_iv(&cipher_op, transform->iv_dec, transform->ivlen); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_set_iv", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_set_iv", ret); + return ret; } - status = psa_cipher_update( &cipher_op, - data, rec->data_len, - data, rec->data_len, &olen ); + status = psa_cipher_update(&cipher_op, + data, rec->data_len, + data, rec->data_len, &olen); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_update", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_update", ret); + return ret; } - status = psa_cipher_finish( &cipher_op, - data + olen, rec->data_len - olen, - &part_len ); + status = psa_cipher_finish(&cipher_op, + data + olen, rec->data_len - olen, + &part_len); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_cipher_finish", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_cipher_finish", ret); + return ret; } olen += part_len; #else - if( ( ret = mbedtls_cipher_crypt( &transform->cipher_ctx_dec, - transform->iv_dec, transform->ivlen, - data, rec->data_len, data, &olen ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_crypt", ret ); - return( ret ); + if ((ret = mbedtls_cipher_crypt(&transform->cipher_ctx_dec, + transform->iv_dec, transform->ivlen, + data, rec->data_len, data, &olen)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_crypt", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Double-check that length hasn't changed during decryption. */ - if( rec->data_len != olen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (rec->data_len != olen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Safe since data_len >= minlen + maclen + 1, so after having @@ -1709,31 +1677,27 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * >= ivlen ). */ padlen = data[rec->data_len - 1]; - if( auth_done == 1 ) - { + if (auth_done == 1) { const size_t mask = mbedtls_ct_size_mask_ge( - rec->data_len, - padlen + 1 ); + rec->data_len, + padlen + 1); correct &= mask; padlen &= mask; - } - else - { + } else { #if defined(MBEDTLS_SSL_DEBUG_ALL) - if( rec->data_len < transform->maclen + padlen + 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%" MBEDTLS_PRINTF_SIZET - ") < maclen (%" MBEDTLS_PRINTF_SIZET - ") + padlen (%" MBEDTLS_PRINTF_SIZET ")", - rec->data_len, - transform->maclen, - padlen + 1 ) ); + if (rec->data_len < transform->maclen + padlen + 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("msglen (%" MBEDTLS_PRINTF_SIZET + ") < maclen (%" MBEDTLS_PRINTF_SIZET + ") + padlen (%" MBEDTLS_PRINTF_SIZET ")", + rec->data_len, + transform->maclen, + padlen + 1)); } #endif const size_t mask = mbedtls_ct_size_mask_ge( - rec->data_len, - transform->maclen + padlen + 1 ); + rec->data_len, + transform->maclen + padlen + 1); correct &= mask; padlen &= mask; } @@ -1745,38 +1709,38 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* The padding check involves a series of up to 256 - * consecutive memory reads at the end of the record - * plaintext buffer. In order to hide the length and - * validity of the padding, always perform exactly - * `min(256,plaintext_len)` reads (but take into account - * only the last `padlen` bytes for the padding check). */ + * consecutive memory reads at the end of the record + * plaintext buffer. In order to hide the length and + * validity of the padding, always perform exactly + * `min(256,plaintext_len)` reads (but take into account + * only the last `padlen` bytes for the padding check). */ size_t pad_count = 0; - volatile unsigned char* const check = data; + volatile unsigned char * const check = data; /* Index of first padding byte; it has been ensured above - * that the subtraction is safe. */ + * that the subtraction is safe. */ size_t const padding_idx = rec->data_len - padlen; size_t const num_checks = rec->data_len <= 256 ? rec->data_len : 256; size_t const start_idx = rec->data_len - num_checks; size_t idx; - for( idx = start_idx; idx < rec->data_len; idx++ ) - { + for (idx = start_idx; idx < rec->data_len; idx++) { /* pad_count += (idx >= padding_idx) && - * (check[idx] == padlen - 1); - */ - const size_t mask = mbedtls_ct_size_mask_ge( idx, padding_idx ); - const size_t equal = mbedtls_ct_size_bool_eq( check[idx], - padlen - 1 ); + * (check[idx] == padlen - 1); + */ + const size_t mask = mbedtls_ct_size_mask_ge(idx, padding_idx); + const size_t equal = mbedtls_ct_size_bool_eq(check[idx], + padlen - 1); pad_count += mask & equal; } - correct &= mbedtls_ct_size_bool_eq( pad_count, padlen ); + correct &= mbedtls_ct_size_bool_eq(pad_count, padlen); #if defined(MBEDTLS_SSL_DEBUG_ALL) - if( padlen > 0 && correct == 0 ) - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad padding byte detected" ) ); + if (padlen > 0 && correct == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad padding byte detected")); + } #endif - padlen &= mbedtls_ct_size_mask( correct ); + padlen &= mbedtls_ct_size_mask(correct); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ @@ -1785,17 +1749,16 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * padlen hasn't been changed and the previous assertion * data_len >= padlen still holds. */ rec->data_len -= padlen; - } - else + } else #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #if defined(MBEDTLS_SSL_DEBUG_ALL) - MBEDTLS_SSL_DEBUG_BUF( 4, "raw buffer after decryption", - data, rec->data_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "raw buffer after decryption", + data, rec->data_len); #endif /* @@ -1803,8 +1766,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * Compute the MAC regardless of the padding result (RFC4346, CBCTIME). */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( auth_done == 0 ) - { + if (auth_done == 0) { unsigned char mac_expect[MBEDTLS_SSL_MAC_ADD] = { 0 }; unsigned char mac_peer[MBEDTLS_SSL_MAC_ADD] = { 0 }; @@ -1822,109 +1784,108 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * hence data_len >= maclen in any case. */ rec->data_len -= transform->maclen; - ssl_extract_add_data_from_record( add_data, &add_data_len, rec, - transform->tls_version, - transform->taglen ); + ssl_extract_add_data_from_record(add_data, &add_data_len, rec, + transform->tls_version, + transform->taglen); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* - * The next two sizes are the minimum and maximum values of - * data_len over all padlen values. - * - * They're independent of padlen, since we previously did - * data_len -= padlen. - * - * Note that max_len + maclen is never more than the buffer - * length, as we previously did in_msglen -= maclen too. - */ + * The next two sizes are the minimum and maximum values of + * data_len over all padlen values. + * + * They're independent of padlen, since we previously did + * data_len -= padlen. + * + * Note that max_len + maclen is never more than the buffer + * length, as we previously did in_msglen -= maclen too. + */ const size_t max_len = rec->data_len + padlen; - const size_t min_len = ( max_len > 256 ) ? max_len - 256 : 0; + const size_t min_len = (max_len > 256) ? max_len - 256 : 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = mbedtls_ct_hmac( transform->psa_mac_dec, - transform->psa_mac_alg, - add_data, add_data_len, - data, rec->data_len, min_len, max_len, - mac_expect ); + ret = mbedtls_ct_hmac(transform->psa_mac_dec, + transform->psa_mac_alg, + add_data, add_data_len, + data, rec->data_len, min_len, max_len, + mac_expect); #else - ret = mbedtls_ct_hmac( &transform->md_ctx_dec, - add_data, add_data_len, - data, rec->data_len, min_len, max_len, - mac_expect ); + ret = mbedtls_ct_hmac(&transform->md_ctx_dec, + add_data, add_data_len, + data, rec->data_len, min_len, max_len, + mac_expect); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ct_hmac", ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ct_hmac", ret); goto hmac_failed_etm_disabled; } - mbedtls_ct_memcpy_offset( mac_peer, data, - rec->data_len, - min_len, max_len, - transform->maclen ); + mbedtls_ct_memcpy_offset(mac_peer, data, + rec->data_len, + min_len, max_len, + transform->maclen); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_DEBUG_ALL) - MBEDTLS_SSL_DEBUG_BUF( 4, "expected mac", mac_expect, transform->maclen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "message mac", mac_peer, transform->maclen ); + MBEDTLS_SSL_DEBUG_BUF(4, "expected mac", mac_expect, transform->maclen); + MBEDTLS_SSL_DEBUG_BUF(4, "message mac", mac_peer, transform->maclen); #endif - if( mbedtls_ct_memcmp( mac_peer, mac_expect, - transform->maclen ) != 0 ) - { + if (mbedtls_ct_memcmp(mac_peer, mac_expect, + transform->maclen) != 0) { #if defined(MBEDTLS_SSL_DEBUG_ALL) - MBEDTLS_SSL_DEBUG_MSG( 1, ( "message mac does not match" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("message mac does not match")); #endif correct = 0; } auth_done++; - hmac_failed_etm_disabled: - mbedtls_platform_zeroize( mac_peer, transform->maclen ); - mbedtls_platform_zeroize( mac_expect, transform->maclen ); - if( ret != 0 ) - return( ret ); +hmac_failed_etm_disabled: + mbedtls_platform_zeroize(mac_peer, transform->maclen); + mbedtls_platform_zeroize(mac_expect, transform->maclen); + if (ret != 0) { + return ret; + } } /* * Finally check the correct flag */ - if( correct == 0 ) - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (correct == 0) { + return MBEDTLS_ERR_SSL_INVALID_MAC; + } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ /* Make extra sure authentication was performed, exactly once */ - if( auth_done != 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (auth_done != 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (transform->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* Remove inner padding and infer true content type. */ - ret = ssl_parse_inner_plaintext( data, &rec->data_len, - &rec->type ); + ret = ssl_parse_inner_plaintext(data, &rec->data_len, + &rec->type); - if( ret != 0 ) - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ret != 0) { + return MBEDTLS_ERR_SSL_INVALID_RECORD; + } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( rec->cid_len != 0 ) - { - ret = ssl_parse_inner_plaintext( data, &rec->data_len, - &rec->type ); - if( ret != 0 ) - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (rec->cid_len != 0) { + ret = ssl_parse_inner_plaintext(data, &rec->data_len, + &rec->type); + if (ret != 0) { + return MBEDTLS_ERR_SSL_INVALID_RECORD; + } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= decrypt buf" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= decrypt buf")); - return( 0 ); + return 0; } #undef MAC_NONE @@ -1946,7 +1907,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * For DTLS, it is up to the caller to set ssl->next_record_offset when * they're done reading a record. */ -int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) +int mbedtls_ssl_fetch_input(mbedtls_ssl_context *ssl, size_t nb_want) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -1956,23 +1917,20 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> fetch input" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> fetch input")); - if( ssl->f_recv == NULL && ssl->f_recv_timeout == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->f_recv == NULL && ssl->f_recv_timeout == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Bad usage of mbedtls_ssl_set_bio() ")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - if( nb_want > in_buf_len - (size_t)( ssl->in_hdr - ssl->in_buf ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "requesting more data than fits" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (nb_want > in_buf_len - (size_t) (ssl->in_hdr - ssl->in_buf)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("requesting more data than fits")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { uint32_t timeout; /* @@ -1985,40 +1943,36 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) /* * Move to the next record in the already read datagram if applicable */ - if( ssl->next_record_offset != 0 ) - { - if( ssl->in_left < ssl->next_record_offset ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->next_record_offset != 0) { + if (ssl->in_left < ssl->next_record_offset) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } ssl->in_left -= ssl->next_record_offset; - if( ssl->in_left != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "next record in same datagram, offset: %" - MBEDTLS_PRINTF_SIZET, - ssl->next_record_offset ) ); - memmove( ssl->in_hdr, - ssl->in_hdr + ssl->next_record_offset, - ssl->in_left ); + if (ssl->in_left != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("next record in same datagram, offset: %" + MBEDTLS_PRINTF_SIZET, + ssl->next_record_offset)); + memmove(ssl->in_hdr, + ssl->in_hdr + ssl->next_record_offset, + ssl->in_left); } ssl->next_record_offset = 0; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "in_left: %" MBEDTLS_PRINTF_SIZET - ", nb_want: %" MBEDTLS_PRINTF_SIZET, - ssl->in_left, nb_want ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("in_left: %" MBEDTLS_PRINTF_SIZET + ", nb_want: %" MBEDTLS_PRINTF_SIZET, + ssl->in_left, nb_want)); /* * Done if we already have enough data. */ - if( nb_want <= ssl->in_left) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= fetch input" ) ); - return( 0 ); + if (nb_want <= ssl->in_left) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= fetch input")); + return 0; } /* @@ -2026,10 +1980,9 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) * are not at the beginning of a new record, the caller did something * wrong. */ - if( ssl->in_left != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->in_left != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* @@ -2037,195 +1990,182 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) * This avoids by-passing the timer when repeatedly receiving messages * that will end up being dropped. */ - if( mbedtls_ssl_check_timer( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "timer has expired" ) ); + if (mbedtls_ssl_check_timer(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("timer has expired")); ret = MBEDTLS_ERR_SSL_TIMEOUT; - } - else - { - len = in_buf_len - ( ssl->in_hdr - ssl->in_buf ); + } else { + len = in_buf_len - (ssl->in_hdr - ssl->in_buf); - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) + if (mbedtls_ssl_is_handshake_over(ssl) == 0) { timeout = ssl->handshake->retransmit_timeout; - else + } else { timeout = ssl->conf->read_timeout; + } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "f_recv_timeout: %lu ms", (unsigned long) timeout ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("f_recv_timeout: %lu ms", (unsigned long) timeout)); - if( ssl->f_recv_timeout != NULL ) - ret = ssl->f_recv_timeout( ssl->p_bio, ssl->in_hdr, len, - timeout ); - else - ret = ssl->f_recv( ssl->p_bio, ssl->in_hdr, len ); + if (ssl->f_recv_timeout != NULL) { + ret = ssl->f_recv_timeout(ssl->p_bio, ssl->in_hdr, len, + timeout); + } else { + ret = ssl->f_recv(ssl->p_bio, ssl->in_hdr, len); + } - MBEDTLS_SSL_DEBUG_RET( 2, "ssl->f_recv(_timeout)", ret ); + MBEDTLS_SSL_DEBUG_RET(2, "ssl->f_recv(_timeout)", ret); - if( ret == 0 ) - return( MBEDTLS_ERR_SSL_CONN_EOF ); + if (ret == 0) { + return MBEDTLS_ERR_SSL_CONN_EOF; + } } - if( ret == MBEDTLS_ERR_SSL_TIMEOUT ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "timeout" ) ); - mbedtls_ssl_set_timer( ssl, 0 ); + if (ret == MBEDTLS_ERR_SSL_TIMEOUT) { + MBEDTLS_SSL_DEBUG_MSG(2, ("timeout")); + mbedtls_ssl_set_timer(ssl, 0); - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) - { - if( ssl_double_retransmit_timeout( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "handshake timeout" ) ); - return( MBEDTLS_ERR_SSL_TIMEOUT ); + if (ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER) { + if (ssl_double_retransmit_timeout(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("handshake timeout")); + return MBEDTLS_ERR_SSL_TIMEOUT; } - if( ( ret = mbedtls_ssl_resend( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_resend", ret ); - return( ret ); + if ((ret = mbedtls_ssl_resend(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_resend", ret); + return ret; } - return( MBEDTLS_ERR_SSL_WANT_READ ); + return MBEDTLS_ERR_SSL_WANT_READ; } #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_RENEGOTIATION) - else if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING ) - { - if( ( ret = mbedtls_ssl_resend_hello_request( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_resend_hello_request", - ret ); - return( ret ); + else if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && + ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING) { + if ((ret = mbedtls_ssl_resend_hello_request(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_resend_hello_request", + ret); + return ret; } - return( MBEDTLS_ERR_SSL_WANT_READ ); + return MBEDTLS_ERR_SSL_WANT_READ; } #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_RENEGOTIATION */ } - if( ret < 0 ) - return( ret ); + if (ret < 0) { + return ret; + } ssl->in_left = ret; - } - else + } else #endif { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "in_left: %" MBEDTLS_PRINTF_SIZET - ", nb_want: %" MBEDTLS_PRINTF_SIZET, - ssl->in_left, nb_want ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("in_left: %" MBEDTLS_PRINTF_SIZET + ", nb_want: %" MBEDTLS_PRINTF_SIZET, + ssl->in_left, nb_want)); - while( ssl->in_left < nb_want ) - { + while (ssl->in_left < nb_want) { len = nb_want - ssl->in_left; - if( mbedtls_ssl_check_timer( ssl ) != 0 ) + if (mbedtls_ssl_check_timer(ssl) != 0) { ret = MBEDTLS_ERR_SSL_TIMEOUT; - else - { - if( ssl->f_recv_timeout != NULL ) - { - ret = ssl->f_recv_timeout( ssl->p_bio, - ssl->in_hdr + ssl->in_left, len, - ssl->conf->read_timeout ); - } - else - { - ret = ssl->f_recv( ssl->p_bio, - ssl->in_hdr + ssl->in_left, len ); + } else { + if (ssl->f_recv_timeout != NULL) { + ret = ssl->f_recv_timeout(ssl->p_bio, + ssl->in_hdr + ssl->in_left, len, + ssl->conf->read_timeout); + } else { + ret = ssl->f_recv(ssl->p_bio, + ssl->in_hdr + ssl->in_left, len); } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "in_left: %" MBEDTLS_PRINTF_SIZET - ", nb_want: %" MBEDTLS_PRINTF_SIZET, - ssl->in_left, nb_want ) ); - MBEDTLS_SSL_DEBUG_RET( 2, "ssl->f_recv(_timeout)", ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("in_left: %" MBEDTLS_PRINTF_SIZET + ", nb_want: %" MBEDTLS_PRINTF_SIZET, + ssl->in_left, nb_want)); + MBEDTLS_SSL_DEBUG_RET(2, "ssl->f_recv(_timeout)", ret); - if( ret == 0 ) - return( MBEDTLS_ERR_SSL_CONN_EOF ); + if (ret == 0) { + return MBEDTLS_ERR_SSL_CONN_EOF; + } - if( ret < 0 ) - return( ret ); + if (ret < 0) { + return ret; + } - if ( (size_t)ret > len || ( INT_MAX > SIZE_MAX && ret > (int)SIZE_MAX ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "f_recv returned %d bytes but only %" MBEDTLS_PRINTF_SIZET " were requested", - ret, len ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if ((size_t) ret > len || (INT_MAX > SIZE_MAX && ret > (int) SIZE_MAX)) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("f_recv returned %d bytes but only %" MBEDTLS_PRINTF_SIZET + " were requested", + ret, len)); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } ssl->in_left += ret; } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= fetch input" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= fetch input")); - return( 0 ); + return 0; } /* * Flush any data not yet written */ -int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_flush_output(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> flush output" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> flush output")); - if( ssl->f_send == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Bad usage of mbedtls_ssl_set_bio() " ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->f_send == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Bad usage of mbedtls_ssl_set_bio() ")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Avoid incrementing counter if data is flushed */ - if( ssl->out_left == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= flush output" ) ); - return( 0 ); + if (ssl->out_left == 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= flush output")); + return 0; } - while( ssl->out_left > 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "message length: %" MBEDTLS_PRINTF_SIZET - ", out_left: %" MBEDTLS_PRINTF_SIZET, - mbedtls_ssl_out_hdr_len( ssl ) + ssl->out_msglen, ssl->out_left ) ); + while (ssl->out_left > 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("message length: %" MBEDTLS_PRINTF_SIZET + ", out_left: %" MBEDTLS_PRINTF_SIZET, + mbedtls_ssl_out_hdr_len(ssl) + ssl->out_msglen, ssl->out_left)); buf = ssl->out_hdr - ssl->out_left; - ret = ssl->f_send( ssl->p_bio, buf, ssl->out_left ); + ret = ssl->f_send(ssl->p_bio, buf, ssl->out_left); - MBEDTLS_SSL_DEBUG_RET( 2, "ssl->f_send", ret ); + MBEDTLS_SSL_DEBUG_RET(2, "ssl->f_send", ret); - if( ret <= 0 ) - return( ret ); + if (ret <= 0) { + return ret; + } - if( (size_t)ret > ssl->out_left || ( INT_MAX > SIZE_MAX && ret > (int)SIZE_MAX ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "f_send returned %d bytes but only %" MBEDTLS_PRINTF_SIZET " bytes were sent", - ret, ssl->out_left ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if ((size_t) ret > ssl->out_left || (INT_MAX > SIZE_MAX && ret > (int) SIZE_MAX)) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("f_send returned %d bytes but only %" MBEDTLS_PRINTF_SIZET + " bytes were sent", + ret, ssl->out_left)); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } ssl->out_left -= ret; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->out_hdr = ssl->out_buf; - } - else + } else #endif { ssl->out_hdr = ssl->out_buf + 8; } - mbedtls_ssl_update_out_pointers( ssl, ssl->transform_out ); + mbedtls_ssl_update_out_pointers(ssl, ssl->transform_out); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= flush output" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= flush output")); - return( 0 ); + return 0; } /* @@ -2236,64 +2176,61 @@ int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ) * Append current handshake message to current outgoing flight */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_flight_append( mbedtls_ssl_context *ssl ) +static int ssl_flight_append(mbedtls_ssl_context *ssl) { mbedtls_ssl_flight_item *msg; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_flight_append" ) ); - MBEDTLS_SSL_DEBUG_BUF( 4, "message appended to flight", - ssl->out_msg, ssl->out_msglen ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_flight_append")); + MBEDTLS_SSL_DEBUG_BUF(4, "message appended to flight", + ssl->out_msg, ssl->out_msglen); /* Allocate space for current message */ - if( ( msg = mbedtls_calloc( 1, sizeof( mbedtls_ssl_flight_item ) ) ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc %" MBEDTLS_PRINTF_SIZET " bytes failed", - sizeof( mbedtls_ssl_flight_item ) ) ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((msg = mbedtls_calloc(1, sizeof(mbedtls_ssl_flight_item))) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc %" MBEDTLS_PRINTF_SIZET " bytes failed", + sizeof(mbedtls_ssl_flight_item))); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - if( ( msg->p = mbedtls_calloc( 1, ssl->out_msglen ) ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc %" MBEDTLS_PRINTF_SIZET " bytes failed", - ssl->out_msglen ) ); - mbedtls_free( msg ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((msg->p = mbedtls_calloc(1, ssl->out_msglen)) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc %" MBEDTLS_PRINTF_SIZET " bytes failed", + ssl->out_msglen)); + mbedtls_free(msg); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } /* Copy current handshake message with headers */ - memcpy( msg->p, ssl->out_msg, ssl->out_msglen ); + memcpy(msg->p, ssl->out_msg, ssl->out_msglen); msg->len = ssl->out_msglen; msg->type = ssl->out_msgtype; msg->next = NULL; /* Append to the current flight */ - if( ssl->handshake->flight == NULL ) + if (ssl->handshake->flight == NULL) { ssl->handshake->flight = msg; - else - { + } else { mbedtls_ssl_flight_item *cur = ssl->handshake->flight; - while( cur->next != NULL ) + while (cur->next != NULL) { cur = cur->next; + } cur->next = msg; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_flight_append" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_flight_append")); + return 0; } /* * Free the current flight of handshake messages */ -void mbedtls_ssl_flight_free( mbedtls_ssl_flight_item *flight ) +void mbedtls_ssl_flight_free(mbedtls_ssl_flight_item *flight) { mbedtls_ssl_flight_item *cur = flight; mbedtls_ssl_flight_item *next; - while( cur != NULL ) - { + while (cur != NULL) { next = cur->next; - mbedtls_free( cur->p ); - mbedtls_free( cur ); + mbedtls_free(cur->p); + mbedtls_free(cur); cur = next; } @@ -2303,18 +2240,17 @@ void mbedtls_ssl_flight_free( mbedtls_ssl_flight_item *flight ) * Swap transform_out and out_ctr with the alternative ones */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_swap_epochs( mbedtls_ssl_context *ssl ) +static int ssl_swap_epochs(mbedtls_ssl_context *ssl) { mbedtls_ssl_transform *tmp_transform; unsigned char tmp_out_ctr[MBEDTLS_SSL_SEQUENCE_NUMBER_LEN]; - if( ssl->transform_out == ssl->handshake->alt_transform_out ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip swap epochs" ) ); - return( 0 ); + if (ssl->transform_out == ssl->handshake->alt_transform_out) { + MBEDTLS_SSL_DEBUG_MSG(3, ("skip swap epochs")); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "swap epochs" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("swap epochs")); /* Swap transforms */ tmp_transform = ssl->transform_out; @@ -2322,32 +2258,32 @@ static int ssl_swap_epochs( mbedtls_ssl_context *ssl ) ssl->handshake->alt_transform_out = tmp_transform; /* Swap epoch + sequence_number */ - memcpy( tmp_out_ctr, ssl->cur_out_ctr, sizeof( tmp_out_ctr ) ); - memcpy( ssl->cur_out_ctr, ssl->handshake->alt_out_ctr, - sizeof( ssl->cur_out_ctr ) ); - memcpy( ssl->handshake->alt_out_ctr, tmp_out_ctr, - sizeof( ssl->handshake->alt_out_ctr ) ); + memcpy(tmp_out_ctr, ssl->cur_out_ctr, sizeof(tmp_out_ctr)); + memcpy(ssl->cur_out_ctr, ssl->handshake->alt_out_ctr, + sizeof(ssl->cur_out_ctr)); + memcpy(ssl->handshake->alt_out_ctr, tmp_out_ctr, + sizeof(ssl->handshake->alt_out_ctr)); /* Adjust to the newly activated transform */ - mbedtls_ssl_update_out_pointers( ssl, ssl->transform_out ); + mbedtls_ssl_update_out_pointers(ssl, ssl->transform_out); - return( 0 ); + return 0; } /* * Retransmit the current flight of messages. */ -int mbedtls_ssl_resend( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_resend(mbedtls_ssl_context *ssl) { int ret = 0; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_resend" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> mbedtls_ssl_resend")); - ret = mbedtls_ssl_flight_transmit( ssl ); + ret = mbedtls_ssl_flight_transmit(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_resend" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= mbedtls_ssl_resend")); - return( ret ); + return ret; } /* @@ -2357,121 +2293,117 @@ int mbedtls_ssl_resend( mbedtls_ssl_context *ssl ) * WANT_WRITE, causing us to exit this function and come back later. * This function must be called until state is no longer SENDING. */ -int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_flight_transmit(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_flight_transmit" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> mbedtls_ssl_flight_transmit")); - if( ssl->handshake->retransmit_state != MBEDTLS_SSL_RETRANS_SENDING ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "initialise flight transmission" ) ); + if (ssl->handshake->retransmit_state != MBEDTLS_SSL_RETRANS_SENDING) { + MBEDTLS_SSL_DEBUG_MSG(2, ("initialise flight transmission")); ssl->handshake->cur_msg = ssl->handshake->flight; ssl->handshake->cur_msg_p = ssl->handshake->flight->p + 12; - ret = ssl_swap_epochs( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_swap_epochs(ssl); + if (ret != 0) { + return ret; + } ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_SENDING; } - while( ssl->handshake->cur_msg != NULL ) - { + while (ssl->handshake->cur_msg != NULL) { size_t max_frag_len; const mbedtls_ssl_flight_item * const cur = ssl->handshake->cur_msg; int const is_finished = - ( cur->type == MBEDTLS_SSL_MSG_HANDSHAKE && - cur->p[0] == MBEDTLS_SSL_HS_FINISHED ); + (cur->type == MBEDTLS_SSL_MSG_HANDSHAKE && + cur->p[0] == MBEDTLS_SSL_HS_FINISHED); int const force_flush = ssl->disable_datagram_packing == 1 ? - SSL_FORCE_FLUSH : SSL_DONT_FORCE_FLUSH; + SSL_FORCE_FLUSH : SSL_DONT_FORCE_FLUSH; /* Swap epochs before sending Finished: we can't do it after * sending ChangeCipherSpec, in case write returns WANT_READ. * Must be done before copying, may change out_msg pointer */ - if( is_finished && ssl->handshake->cur_msg_p == ( cur->p + 12 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "swap epochs to send finished message" ) ); - ret = ssl_swap_epochs( ssl ); - if( ret != 0 ) - return( ret ); + if (is_finished && ssl->handshake->cur_msg_p == (cur->p + 12)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("swap epochs to send finished message")); + ret = ssl_swap_epochs(ssl); + if (ret != 0) { + return ret; + } } - ret = ssl_get_remaining_payload_in_datagram( ssl ); - if( ret < 0 ) - return( ret ); + ret = ssl_get_remaining_payload_in_datagram(ssl); + if (ret < 0) { + return ret; + } max_frag_len = (size_t) ret; /* CCS is copied as is, while HS messages may need fragmentation */ - if( cur->type == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC ) - { - if( max_frag_len == 0 ) - { - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - return( ret ); + if (cur->type == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC) { + if (max_frag_len == 0) { + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + return ret; + } continue; } - memcpy( ssl->out_msg, cur->p, cur->len ); + memcpy(ssl->out_msg, cur->p, cur->len); ssl->out_msglen = cur->len; ssl->out_msgtype = cur->type; /* Update position inside current message */ ssl->handshake->cur_msg_p += cur->len; - } - else - { + } else { const unsigned char * const p = ssl->handshake->cur_msg_p; const size_t hs_len = cur->len - 12; - const size_t frag_off = p - ( cur->p + 12 ); + const size_t frag_off = p - (cur->p + 12); const size_t rem_len = hs_len - frag_off; size_t cur_hs_frag_len, max_hs_frag_len; - if( ( max_frag_len < 12 ) || ( max_frag_len == 12 && hs_len != 0 ) ) - { - if( is_finished ) - { - ret = ssl_swap_epochs( ssl ); - if( ret != 0 ) - return( ret ); + if ((max_frag_len < 12) || (max_frag_len == 12 && hs_len != 0)) { + if (is_finished) { + ret = ssl_swap_epochs(ssl); + if (ret != 0) { + return ret; + } } - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + return ret; + } continue; } max_hs_frag_len = max_frag_len - 12; cur_hs_frag_len = rem_len > max_hs_frag_len ? - max_hs_frag_len : rem_len; + max_hs_frag_len : rem_len; - if( frag_off == 0 && cur_hs_frag_len != hs_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "fragmenting handshake message (%u > %u)", - (unsigned) cur_hs_frag_len, - (unsigned) max_hs_frag_len ) ); + if (frag_off == 0 && cur_hs_frag_len != hs_len) { + MBEDTLS_SSL_DEBUG_MSG(2, ("fragmenting handshake message (%u > %u)", + (unsigned) cur_hs_frag_len, + (unsigned) max_hs_frag_len)); } /* Messages are stored with handshake headers as if not fragmented, * copy beginning of headers then fill fragmentation fields. * Handshake headers: type(1) len(3) seq(2) f_off(3) f_len(3) */ - memcpy( ssl->out_msg, cur->p, 6 ); + memcpy(ssl->out_msg, cur->p, 6); - ssl->out_msg[6] = MBEDTLS_BYTE_2( frag_off ); - ssl->out_msg[7] = MBEDTLS_BYTE_1( frag_off ); - ssl->out_msg[8] = MBEDTLS_BYTE_0( frag_off ); + ssl->out_msg[6] = MBEDTLS_BYTE_2(frag_off); + ssl->out_msg[7] = MBEDTLS_BYTE_1(frag_off); + ssl->out_msg[8] = MBEDTLS_BYTE_0(frag_off); - ssl->out_msg[ 9] = MBEDTLS_BYTE_2( cur_hs_frag_len ); - ssl->out_msg[10] = MBEDTLS_BYTE_1( cur_hs_frag_len ); - ssl->out_msg[11] = MBEDTLS_BYTE_0( cur_hs_frag_len ); + ssl->out_msg[9] = MBEDTLS_BYTE_2(cur_hs_frag_len); + ssl->out_msg[10] = MBEDTLS_BYTE_1(cur_hs_frag_len); + ssl->out_msg[11] = MBEDTLS_BYTE_0(cur_hs_frag_len); - MBEDTLS_SSL_DEBUG_BUF( 3, "handshake header", ssl->out_msg, 12 ); + MBEDTLS_SSL_DEBUG_BUF(3, "handshake header", ssl->out_msg, 12); /* Copy the handshake message content and set records fields */ - memcpy( ssl->out_msg + 12, p, cur_hs_frag_len ); + memcpy(ssl->out_msg + 12, p, cur_hs_frag_len); ssl->out_msglen = cur_hs_frag_len + 12; ssl->out_msgtype = cur->type; @@ -2480,52 +2412,47 @@ int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl ) } /* If done with the current message move to the next one if any */ - if( ssl->handshake->cur_msg_p >= cur->p + cur->len ) - { - if( cur->next != NULL ) - { + if (ssl->handshake->cur_msg_p >= cur->p + cur->len) { + if (cur->next != NULL) { ssl->handshake->cur_msg = cur->next; ssl->handshake->cur_msg_p = cur->next->p + 12; - } - else - { + } else { ssl->handshake->cur_msg = NULL; ssl->handshake->cur_msg_p = NULL; } } /* Actually send the message out */ - if( ( ret = mbedtls_ssl_write_record( ssl, force_flush ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_record(ssl, force_flush)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_record", ret); + return ret; } } - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - return( ret ); - - /* Update state and set timer */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) - ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; - else - { - ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_WAITING; - mbedtls_ssl_set_timer( ssl, ssl->handshake->retransmit_timeout ); + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_flight_transmit" ) ); + /* Update state and set timer */ + if (mbedtls_ssl_is_handshake_over(ssl) == 1) { + ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; + } else { + ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_WAITING; + mbedtls_ssl_set_timer(ssl, ssl->handshake->retransmit_timeout); + } - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= mbedtls_ssl_flight_transmit")); + + return 0; } /* * To be called when the last message of an incoming flight is received. */ -void mbedtls_ssl_recv_flight_completed( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_recv_flight_completed(mbedtls_ssl_context *ssl) { /* We won't need to resend that one any more */ - mbedtls_ssl_flight_free( ssl->handshake->flight ); + mbedtls_ssl_flight_free(ssl->handshake->flight); ssl->handshake->flight = NULL; ssl->handshake->cur_msg = NULL; @@ -2536,43 +2463,41 @@ void mbedtls_ssl_recv_flight_completed( mbedtls_ssl_context *ssl ) ssl->handshake->buffering.seen_ccs = 0; /* Clear future message buffering structure. */ - mbedtls_ssl_buffering_free( ssl ); + mbedtls_ssl_buffering_free(ssl); /* Cancel timer */ - mbedtls_ssl_set_timer( ssl, 0 ); + mbedtls_ssl_set_timer(ssl, 0); - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && - ssl->in_msg[0] == MBEDTLS_SSL_HS_FINISHED ) - { + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && + ssl->in_msg[0] == MBEDTLS_SSL_HS_FINISHED) { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; - } - else + } else { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_PREPARING; + } } /* * To be called when the last message of an outgoing flight is send. */ -void mbedtls_ssl_send_flight_completed( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_send_flight_completed(mbedtls_ssl_context *ssl) { - ssl_reset_retransmit_timeout( ssl ); - mbedtls_ssl_set_timer( ssl, ssl->handshake->retransmit_timeout ); + ssl_reset_retransmit_timeout(ssl); + mbedtls_ssl_set_timer(ssl, ssl->handshake->retransmit_timeout); - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && - ssl->in_msg[0] == MBEDTLS_SSL_HS_FINISHED ) - { + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && + ssl->in_msg[0] == MBEDTLS_SSL_HS_FINISHED) { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_FINISHED; - } - else + } else { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_WAITING; + } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ /* * Handshake layer functions */ -int mbedtls_ssl_start_handshake_msg( mbedtls_ssl_context *ssl, unsigned hs_type, - unsigned char **buf, size_t *buf_len ) +int mbedtls_ssl_start_handshake_msg(mbedtls_ssl_context *ssl, unsigned hs_type, + unsigned char **buf, size_t *buf_len) { /* * Reserve 4 bytes for handshake header. ( Section 4,RFC 8446 ) @@ -2587,7 +2512,7 @@ int mbedtls_ssl_start_handshake_msg( mbedtls_ssl_context *ssl, unsigned hs_type, ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->out_msg[0] = hs_type; - return( 0 ); + return 0; } /* @@ -2612,43 +2537,40 @@ int mbedtls_ssl_start_handshake_msg( mbedtls_ssl_context *ssl, unsigned hs_type, * (including handshake headers but excluding record headers) * - ssl->out_msg: the record contents (handshake headers + content) */ -int mbedtls_ssl_write_handshake_msg_ext( mbedtls_ssl_context *ssl, - int update_checksum, - int force_flush ) +int mbedtls_ssl_write_handshake_msg_ext(mbedtls_ssl_context *ssl, + int update_checksum, + int force_flush) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const size_t hs_len = ssl->out_msglen - 4; const unsigned char hs_type = ssl->out_msg[0]; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write handshake message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write handshake message")); /* * Sanity checks */ - if( ssl->out_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE && - ssl->out_msgtype != MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->out_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE && + ssl->out_msgtype != MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Whenever we send anything different from a * HelloRequest we should be in a handshake - double check. */ - if( ! ( ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && - hs_type == MBEDTLS_SSL_HS_HELLO_REQUEST ) && - ssl->handshake == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!(ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && + hs_type == MBEDTLS_SSL_HS_HELLO_REQUEST) && + ssl->handshake == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && ssl->handshake != NULL && - ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #endif @@ -2660,24 +2582,22 @@ int mbedtls_ssl_write_handshake_msg_ext( mbedtls_ssl_context *ssl, * * Note: We deliberately do not check for the MTU or MFL here. */ - if( ssl->out_msglen > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Record too large: " - "size %" MBEDTLS_PRINTF_SIZET - ", maximum %" MBEDTLS_PRINTF_SIZET, - ssl->out_msglen, - (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->out_msglen > MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Record too large: " + "size %" MBEDTLS_PRINTF_SIZET + ", maximum %" MBEDTLS_PRINTF_SIZET, + ssl->out_msglen, + (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN)); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* * Fill handshake headers */ - if( ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE ) - { - ssl->out_msg[1] = MBEDTLS_BYTE_2( hs_len ); - ssl->out_msg[2] = MBEDTLS_BYTE_1( hs_len ); - ssl->out_msg[3] = MBEDTLS_BYTE_0( hs_len ); + if (ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE) { + ssl->out_msg[1] = MBEDTLS_BYTE_2(hs_len); + ssl->out_msg[2] = MBEDTLS_BYTE_1(hs_len); + ssl->out_msg[3] = MBEDTLS_BYTE_0(hs_len); /* * DTLS has additional fields in the Handshake layer, @@ -2687,74 +2607,67 @@ int mbedtls_ssl_write_handshake_msg_ext( mbedtls_ssl_context *ssl, * uint24 fragment_length; */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Make room for the additional DTLS fields */ - if( MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen < 8 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DTLS handshake message too large: " - "size %" MBEDTLS_PRINTF_SIZET ", maximum %" MBEDTLS_PRINTF_SIZET, - hs_len, - (size_t) ( MBEDTLS_SSL_OUT_CONTENT_LEN - 12 ) ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen < 8) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DTLS handshake message too large: " + "size %" MBEDTLS_PRINTF_SIZET ", maximum %" + MBEDTLS_PRINTF_SIZET, + hs_len, + (size_t) (MBEDTLS_SSL_OUT_CONTENT_LEN - 12))); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - memmove( ssl->out_msg + 12, ssl->out_msg + 4, hs_len ); + memmove(ssl->out_msg + 12, ssl->out_msg + 4, hs_len); ssl->out_msglen += 8; /* Write message_seq and update it, except for HelloRequest */ - if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST ) - { - MBEDTLS_PUT_UINT16_BE( ssl->handshake->out_msg_seq, ssl->out_msg, 4 ); - ++( ssl->handshake->out_msg_seq ); - } - else - { + if (hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST) { + MBEDTLS_PUT_UINT16_BE(ssl->handshake->out_msg_seq, ssl->out_msg, 4); + ++(ssl->handshake->out_msg_seq); + } else { ssl->out_msg[4] = 0; ssl->out_msg[5] = 0; } /* Handshake hashes are computed without fragmentation, * so set frag_offset = 0 and frag_len = hs_len for now */ - memset( ssl->out_msg + 6, 0x00, 3 ); - memcpy( ssl->out_msg + 9, ssl->out_msg + 1, 3 ); + memset(ssl->out_msg + 6, 0x00, 3); + memcpy(ssl->out_msg + 9, ssl->out_msg + 1, 3); } #endif /* MBEDTLS_SSL_PROTO_DTLS */ /* Update running hashes of handshake messages seen */ - if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST && update_checksum != 0 ) - ssl->handshake->update_checksum( ssl, ssl->out_msg, ssl->out_msglen ); + if (hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST && update_checksum != 0) { + ssl->handshake->update_checksum(ssl, ssl->out_msg, ssl->out_msglen); + } } /* Either send now, or just save to be sent (and resent) later */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ! ( ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && - hs_type == MBEDTLS_SSL_HS_HELLO_REQUEST ) ) - { - if( ( ret = ssl_flight_append( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_flight_append", ret ); - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + !(ssl->out_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && + hs_type == MBEDTLS_SSL_HS_HELLO_REQUEST)) { + if ((ret = ssl_flight_append(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_flight_append", ret); + return ret; } - } - else + } else #endif { - if( ( ret = mbedtls_ssl_write_record( ssl, force_flush ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_record(ssl, force_flush)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_record", ret); + return ret; } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write handshake message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write handshake message")); - return( 0 ); + return 0; } -int mbedtls_ssl_finish_handshake_msg( mbedtls_ssl_context *ssl, - size_t buf_len, size_t msg_len ) +int mbedtls_ssl_finish_handshake_msg(mbedtls_ssl_context *ssl, + size_t buf_len, size_t msg_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t msg_with_header_len; @@ -2763,10 +2676,10 @@ int mbedtls_ssl_finish_handshake_msg( mbedtls_ssl_context *ssl, /* Add reserved 4 bytes for handshake header */ msg_with_header_len = msg_len + 4; ssl->out_msglen = msg_with_header_len; - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_write_handshake_msg_ext( ssl, 0, 0 ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_write_handshake_msg_ext(ssl, 0, 0)); cleanup: - return( ret ); + return ret; } /* @@ -2781,16 +2694,15 @@ cleanup: * - ssl->out_msglen: length of the record content (excl headers) * - ssl->out_msg: record content */ -int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, int force_flush ) +int mbedtls_ssl_write_record(mbedtls_ssl_context *ssl, int force_flush) { int ret, done = 0; size_t len = ssl->out_msglen; int flush = force_flush; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write record" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write record")); - if( !done ) - { + if (!done) { unsigned i; size_t protected_record_size; #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) @@ -2804,26 +2716,26 @@ int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, int force_flush ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* TLS 1.3 still uses the TLS 1.2 version identifier * for backwards compatibility. */ - if( tls_ver == MBEDTLS_SSL_VERSION_TLS1_3 ) + if (tls_ver == MBEDTLS_SSL_VERSION_TLS1_3) { tls_ver = MBEDTLS_SSL_VERSION_TLS1_2; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - mbedtls_ssl_write_version( ssl->out_hdr + 1, ssl->conf->transport, - tls_ver ); + mbedtls_ssl_write_version(ssl->out_hdr + 1, ssl->conf->transport, + tls_ver); - memcpy( ssl->out_ctr, ssl->cur_out_ctr, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN ); - MBEDTLS_PUT_UINT16_BE( len, ssl->out_len, 0); + memcpy(ssl->out_ctr, ssl->cur_out_ctr, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN); + MBEDTLS_PUT_UINT16_BE(len, ssl->out_len, 0); - if( ssl->transform_out != NULL ) - { + if (ssl->transform_out != NULL) { mbedtls_record rec; rec.buf = ssl->out_iv; - rec.buf_len = out_buf_len - ( ssl->out_iv - ssl->out_buf ); + rec.buf_len = out_buf_len - (ssl->out_iv - ssl->out_buf); rec.data_len = ssl->out_msglen; rec.data_offset = ssl->out_msg - rec.buf; - memcpy( &rec.ctr[0], ssl->out_ctr, sizeof( rec.ctr ) ); - mbedtls_ssl_write_version( rec.ver, ssl->conf->transport, tls_ver ); + memcpy(&rec.ctr[0], ssl->out_ctr, sizeof(rec.ctr)); + mbedtls_ssl_write_version(rec.ver, ssl->conf->transport, tls_ver); rec.type = ssl->out_msgtype; #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) @@ -2831,43 +2743,40 @@ int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, int force_flush ) rec.cid_len = 0; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - if( ( ret = mbedtls_ssl_encrypt_buf( ssl, ssl->transform_out, &rec, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_encrypt_buf", ret ); - return( ret ); + if ((ret = mbedtls_ssl_encrypt_buf(ssl, ssl->transform_out, &rec, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_encrypt_buf", ret); + return ret; } - if( rec.data_offset != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (rec.data_offset != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Update the record content type and CID. */ ssl->out_msgtype = rec.type; -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID ) - memcpy( ssl->out_cid, rec.cid, rec.cid_len ); +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) + memcpy(ssl->out_cid, rec.cid, rec.cid_len); #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ ssl->out_msglen = len = rec.data_len; - MBEDTLS_PUT_UINT16_BE( rec.data_len, ssl->out_len, 0 ); + MBEDTLS_PUT_UINT16_BE(rec.data_len, ssl->out_len, 0); } - protected_record_size = len + mbedtls_ssl_out_hdr_len( ssl ); + protected_record_size = len + mbedtls_ssl_out_hdr_len(ssl); #if defined(MBEDTLS_SSL_PROTO_DTLS) /* In case of DTLS, double-check that we don't exceed * the remaining space in the datagram. */ - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - ret = ssl_get_remaining_space_in_datagram( ssl ); - if( ret < 0 ) - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + ret = ssl_get_remaining_space_in_datagram(ssl); + if (ret < 0) { + return ret; + } - if( protected_record_size > (size_t) ret ) - { + if (protected_record_size > (size_t) ret) { /* Should never happen */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -2875,133 +2784,131 @@ int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, int force_flush ) /* Now write the potentially updated record content type. */ ssl->out_hdr[0] = (unsigned char) ssl->out_msgtype; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "output record: msgtype = %u, " - "version = [%u:%u], msglen = %" MBEDTLS_PRINTF_SIZET, - ssl->out_hdr[0], ssl->out_hdr[1], - ssl->out_hdr[2], len ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("output record: msgtype = %u, " + "version = [%u:%u], msglen = %" MBEDTLS_PRINTF_SIZET, + ssl->out_hdr[0], ssl->out_hdr[1], + ssl->out_hdr[2], len)); - MBEDTLS_SSL_DEBUG_BUF( 4, "output record sent to network", - ssl->out_hdr, protected_record_size ); + MBEDTLS_SSL_DEBUG_BUF(4, "output record sent to network", + ssl->out_hdr, protected_record_size); ssl->out_left += protected_record_size; ssl->out_hdr += protected_record_size; - mbedtls_ssl_update_out_pointers( ssl, ssl->transform_out ); + mbedtls_ssl_update_out_pointers(ssl, ssl->transform_out); - for( i = 8; i > mbedtls_ssl_ep_len( ssl ); i-- ) - if( ++ssl->cur_out_ctr[i - 1] != 0 ) + for (i = 8; i > mbedtls_ssl_ep_len(ssl); i--) { + if (++ssl->cur_out_ctr[i - 1] != 0) { break; + } + } /* The loop goes to its end if the counter is wrapping */ - if( i == mbedtls_ssl_ep_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "outgoing message counter would wrap" ) ); - return( MBEDTLS_ERR_SSL_COUNTER_WRAPPING ); + if (i == mbedtls_ssl_ep_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("outgoing message counter would wrap")); + return MBEDTLS_ERR_SSL_COUNTER_WRAPPING; } } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - flush == SSL_DONT_FORCE_FLUSH ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + flush == SSL_DONT_FORCE_FLUSH) { size_t remaining; - ret = ssl_get_remaining_payload_in_datagram( ssl ); - if( ret < 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_get_remaining_payload_in_datagram", - ret ); - return( ret ); + ret = ssl_get_remaining_payload_in_datagram(ssl); + if (ret < 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_get_remaining_payload_in_datagram", + ret); + return ret; } remaining = (size_t) ret; - if( remaining == 0 ) - { + if (remaining == 0) { flush = SSL_FORCE_FLUSH; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Still %u bytes available in current datagram", (unsigned) remaining ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, + ("Still %u bytes available in current datagram", + (unsigned) remaining)); } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - if( ( flush == SSL_FORCE_FLUSH ) && - ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flush_output", ret ); - return( ret ); + if ((flush == SSL_FORCE_FLUSH) && + (ret = mbedtls_ssl_flush_output(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flush_output", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write record" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write record")); - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_PROTO_DTLS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_hs_is_proper_fragment( mbedtls_ssl_context *ssl ) +static int ssl_hs_is_proper_fragment(mbedtls_ssl_context *ssl) { - if( ssl->in_msglen < ssl->in_hslen || - memcmp( ssl->in_msg + 6, "\0\0\0", 3 ) != 0 || - memcmp( ssl->in_msg + 9, ssl->in_msg + 1, 3 ) != 0 ) - { - return( 1 ); + if (ssl->in_msglen < ssl->in_hslen || + memcmp(ssl->in_msg + 6, "\0\0\0", 3) != 0 || + memcmp(ssl->in_msg + 9, ssl->in_msg + 1, 3) != 0) { + return 1; } - return( 0 ); + return 0; } -static uint32_t ssl_get_hs_frag_len( mbedtls_ssl_context const *ssl ) +static uint32_t ssl_get_hs_frag_len(mbedtls_ssl_context const *ssl) { - return( ( ssl->in_msg[9] << 16 ) | - ( ssl->in_msg[10] << 8 ) | - ssl->in_msg[11] ); + return (ssl->in_msg[9] << 16) | + (ssl->in_msg[10] << 8) | + ssl->in_msg[11]; } -static uint32_t ssl_get_hs_frag_off( mbedtls_ssl_context const *ssl ) +static uint32_t ssl_get_hs_frag_off(mbedtls_ssl_context const *ssl) { - return( ( ssl->in_msg[6] << 16 ) | - ( ssl->in_msg[7] << 8 ) | - ssl->in_msg[8] ); + return (ssl->in_msg[6] << 16) | + (ssl->in_msg[7] << 8) | + ssl->in_msg[8]; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_hs_header( mbedtls_ssl_context const *ssl ) +static int ssl_check_hs_header(mbedtls_ssl_context const *ssl) { uint32_t msg_len, frag_off, frag_len; - msg_len = ssl_get_hs_total_len( ssl ); - frag_off = ssl_get_hs_frag_off( ssl ); - frag_len = ssl_get_hs_frag_len( ssl ); + msg_len = ssl_get_hs_total_len(ssl); + frag_off = ssl_get_hs_frag_off(ssl); + frag_len = ssl_get_hs_frag_len(ssl); - if( frag_off > msg_len ) - return( -1 ); + if (frag_off > msg_len) { + return -1; + } - if( frag_len > msg_len - frag_off ) - return( -1 ); + if (frag_len > msg_len - frag_off) { + return -1; + } - if( frag_len + 12 > ssl->in_msglen ) - return( -1 ); + if (frag_len + 12 > ssl->in_msglen) { + return -1; + } - return( 0 ); + return 0; } /* * Mark bits in bitmask (used for DTLS HS reassembly) */ -static void ssl_bitmask_set( unsigned char *mask, size_t offset, size_t len ) +static void ssl_bitmask_set(unsigned char *mask, size_t offset, size_t len) { unsigned int start_bits, end_bits; - start_bits = 8 - ( offset % 8 ); - if( start_bits != 8 ) - { + start_bits = 8 - (offset % 8); + if (start_bits != 8) { size_t first_byte_idx = offset / 8; /* Special case */ - if( len <= start_bits ) - { - for( ; len != 0; len-- ) - mask[first_byte_idx] |= 1 << ( start_bits - len ); + if (len <= start_bits) { + for (; len != 0; len--) { + mask[first_byte_idx] |= 1 << (start_bits - len); + } /* Avoid potential issues with offset or len becoming invalid */ return; @@ -3010,134 +2917,134 @@ static void ssl_bitmask_set( unsigned char *mask, size_t offset, size_t len ) offset += start_bits; /* Now offset % 8 == 0 */ len -= start_bits; - for( ; start_bits != 0; start_bits-- ) - mask[first_byte_idx] |= 1 << ( start_bits - 1 ); + for (; start_bits != 0; start_bits--) { + mask[first_byte_idx] |= 1 << (start_bits - 1); + } } end_bits = len % 8; - if( end_bits != 0 ) - { - size_t last_byte_idx = ( offset + len ) / 8; + if (end_bits != 0) { + size_t last_byte_idx = (offset + len) / 8; len -= end_bits; /* Now len % 8 == 0 */ - for( ; end_bits != 0; end_bits-- ) - mask[last_byte_idx] |= 1 << ( 8 - end_bits ); + for (; end_bits != 0; end_bits--) { + mask[last_byte_idx] |= 1 << (8 - end_bits); + } } - memset( mask + offset / 8, 0xFF, len / 8 ); + memset(mask + offset / 8, 0xFF, len / 8); } /* * Check that bitmask is full */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_bitmask_check( unsigned char *mask, size_t len ) +static int ssl_bitmask_check(unsigned char *mask, size_t len) { size_t i; - for( i = 0; i < len / 8; i++ ) - if( mask[i] != 0xFF ) - return( -1 ); + for (i = 0; i < len / 8; i++) { + if (mask[i] != 0xFF) { + return -1; + } + } - for( i = 0; i < len % 8; i++ ) - if( ( mask[len / 8] & ( 1 << ( 7 - i ) ) ) == 0 ) - return( -1 ); + for (i = 0; i < len % 8; i++) { + if ((mask[len / 8] & (1 << (7 - i))) == 0) { + return -1; + } + } - return( 0 ); + return 0; } /* msg_len does not include the handshake header */ -static size_t ssl_get_reassembly_buffer_size( size_t msg_len, - unsigned add_bitmap ) +static size_t ssl_get_reassembly_buffer_size(size_t msg_len, + unsigned add_bitmap) { size_t alloc_len; alloc_len = 12; /* Handshake header */ alloc_len += msg_len; /* Content buffer */ - if( add_bitmap ) - alloc_len += msg_len / 8 + ( msg_len % 8 != 0 ); /* Bitmap */ + if (add_bitmap) { + alloc_len += msg_len / 8 + (msg_len % 8 != 0); /* Bitmap */ - return( alloc_len ); + } + return alloc_len; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ -static uint32_t ssl_get_hs_total_len( mbedtls_ssl_context const *ssl ) +static uint32_t ssl_get_hs_total_len(mbedtls_ssl_context const *ssl) { - return( ( ssl->in_msg[1] << 16 ) | - ( ssl->in_msg[2] << 8 ) | - ssl->in_msg[3] ); + return (ssl->in_msg[1] << 16) | + (ssl->in_msg[2] << 8) | + ssl->in_msg[3]; } -int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_prepare_handshake_record(mbedtls_ssl_context *ssl) { - if( ssl->in_msglen < mbedtls_ssl_hs_hdr_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "handshake message too short: %" MBEDTLS_PRINTF_SIZET, - ssl->in_msglen ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl->in_msglen < mbedtls_ssl_hs_hdr_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("handshake message too short: %" MBEDTLS_PRINTF_SIZET, + ssl->in_msglen)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - ssl->in_hslen = mbedtls_ssl_hs_hdr_len( ssl ) + ssl_get_hs_total_len( ssl ); + ssl->in_hslen = mbedtls_ssl_hs_hdr_len(ssl) + ssl_get_hs_total_len(ssl); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "handshake message: msglen =" - " %" MBEDTLS_PRINTF_SIZET ", type = %u, hslen = %" MBEDTLS_PRINTF_SIZET, - ssl->in_msglen, ssl->in_msg[0], ssl->in_hslen ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("handshake message: msglen =" + " %" MBEDTLS_PRINTF_SIZET ", type = %u, hslen = %" + MBEDTLS_PRINTF_SIZET, + ssl->in_msglen, ssl->in_msg[0], ssl->in_hslen)); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned int recv_msg_seq = ( ssl->in_msg[4] << 8 ) | ssl->in_msg[5]; + unsigned int recv_msg_seq = (ssl->in_msg[4] << 8) | ssl->in_msg[5]; - if( ssl_check_hs_header( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid handshake header" ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl_check_hs_header(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid handshake header")); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - if( ssl->handshake != NULL && - ( ( mbedtls_ssl_is_handshake_over( ssl ) == 0 && - recv_msg_seq != ssl->handshake->in_msg_seq ) || - ( mbedtls_ssl_is_handshake_over( ssl ) == 1 && - ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) ) ) - { - if( recv_msg_seq > ssl->handshake->in_msg_seq ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "received future handshake message of sequence number %u (next %u)", - recv_msg_seq, - ssl->handshake->in_msg_seq ) ); - return( MBEDTLS_ERR_SSL_EARLY_MESSAGE ); + if (ssl->handshake != NULL && + ((mbedtls_ssl_is_handshake_over(ssl) == 0 && + recv_msg_seq != ssl->handshake->in_msg_seq) || + (mbedtls_ssl_is_handshake_over(ssl) == 1 && + ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO))) { + if (recv_msg_seq > ssl->handshake->in_msg_seq) { + MBEDTLS_SSL_DEBUG_MSG(2, + ( + "received future handshake message of sequence number %u (next %u)", + recv_msg_seq, + ssl->handshake->in_msg_seq)); + return MBEDTLS_ERR_SSL_EARLY_MESSAGE; } /* Retransmit only on last message from previous flight, to avoid * too many retransmissions. * Besides, No sane server ever retransmits HelloVerifyRequest */ - if( recv_msg_seq == ssl->handshake->in_flight_start_seq - 1 && - ssl->in_msg[0] != MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "received message from last flight, " - "message_seq = %u, start_of_flight = %u", - recv_msg_seq, - ssl->handshake->in_flight_start_seq ) ); + if (recv_msg_seq == ssl->handshake->in_flight_start_seq - 1 && + ssl->in_msg[0] != MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST) { + MBEDTLS_SSL_DEBUG_MSG(2, ("received message from last flight, " + "message_seq = %u, start_of_flight = %u", + recv_msg_seq, + ssl->handshake->in_flight_start_seq)); - if( ( ret = mbedtls_ssl_resend( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_resend", ret ); - return( ret ); + if ((ret = mbedtls_ssl_resend(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_resend", ret); + return ret; } - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "dropping out-of-sequence message: " - "message_seq = %u, expected = %u", - recv_msg_seq, - ssl->handshake->in_msg_seq ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("dropping out-of-sequence message: " + "message_seq = %u, expected = %u", + recv_msg_seq, + ssl->handshake->in_msg_seq)); } - return( MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ); + return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; } /* Wait until message completion to increment in_msg_seq */ @@ -3145,38 +3052,33 @@ int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl ) * messages; the commonality is that both handshake fragments and * future messages cannot be forwarded immediately to the * handshake logic layer. */ - if( ssl_hs_is_proper_fragment( ssl ) == 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "found fragmented DTLS handshake message" ) ); - return( MBEDTLS_ERR_SSL_EARLY_MESSAGE ); + if (ssl_hs_is_proper_fragment(ssl) == 1) { + MBEDTLS_SSL_DEBUG_MSG(2, ("found fragmented DTLS handshake message")); + return MBEDTLS_ERR_SSL_EARLY_MESSAGE; } - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ /* With TLS we don't handle fragmentation (for now) */ - if( ssl->in_msglen < ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "TLS handshake fragmentation not supported" ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (ssl->in_msglen < ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("TLS handshake fragmentation not supported")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - return( 0 ); + return 0; } -void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_update_handshake_status(mbedtls_ssl_context *ssl) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 && hs != NULL ) - { - ssl->handshake->update_checksum( ssl, ssl->in_msg, ssl->in_hslen ); + if (mbedtls_ssl_is_handshake_over(ssl) == 0 && hs != NULL) { + ssl->handshake->update_checksum(ssl, ssl->in_msg, ssl->in_hslen); } /* Handshake message is complete, increment counter */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->handshake != NULL ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->handshake != NULL) { unsigned offset; mbedtls_ssl_hs_buffer *hs_buf; @@ -3188,18 +3090,17 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) */ /* Free first entry */ - ssl_buffering_free_slot( ssl, 0 ); + ssl_buffering_free_slot(ssl, 0); /* Shift all other entries */ - for( offset = 0, hs_buf = &hs->buffering.hs[0]; + for (offset = 0, hs_buf = &hs->buffering.hs[0]; offset + 1 < MBEDTLS_SSL_MAX_BUFFERED_HS; - offset++, hs_buf++ ) - { + offset++, hs_buf++) { *hs_buf = *(hs_buf + 1); } /* Create a fresh last entry */ - memset( hs_buf, 0, sizeof( mbedtls_ssl_hs_buffer ) ); + memset(hs_buf, 0, sizeof(mbedtls_ssl_hs_buffer)); } #endif } @@ -3215,24 +3116,24 @@ void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl ) * not seen yet). */ #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) -void mbedtls_ssl_dtls_replay_reset( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_dtls_replay_reset(mbedtls_ssl_context *ssl) { ssl->in_window_top = 0; ssl->in_window = 0; } -static inline uint64_t ssl_load_six_bytes( unsigned char *buf ) +static inline uint64_t ssl_load_six_bytes(unsigned char *buf) { - return( ( (uint64_t) buf[0] << 40 ) | - ( (uint64_t) buf[1] << 32 ) | - ( (uint64_t) buf[2] << 24 ) | - ( (uint64_t) buf[3] << 16 ) | - ( (uint64_t) buf[4] << 8 ) | - ( (uint64_t) buf[5] ) ); + return ((uint64_t) buf[0] << 40) | + ((uint64_t) buf[1] << 32) | + ((uint64_t) buf[2] << 24) | + ((uint64_t) buf[3] << 16) | + ((uint64_t) buf[4] << 8) | + ((uint64_t) buf[5]); } MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_dtls_record_replay_check( mbedtls_ssl_context *ssl, uint8_t *record_in_ctr ) +static int mbedtls_ssl_dtls_record_replay_check(mbedtls_ssl_context *ssl, uint8_t *record_in_ctr) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *original_in_ctr; @@ -3243,7 +3144,7 @@ static int mbedtls_ssl_dtls_record_replay_check( mbedtls_ssl_context *ssl, uint8 // use counter from record ssl->in_ctr = record_in_ctr; - ret = mbedtls_ssl_dtls_replay_check( (mbedtls_ssl_context const *) ssl ); + ret = mbedtls_ssl_dtls_replay_check((mbedtls_ssl_context const *) ssl); // restore the counter ssl->in_ctr = original_in_ctr; @@ -3254,60 +3155,62 @@ static int mbedtls_ssl_dtls_record_replay_check( mbedtls_ssl_context *ssl, uint8 /* * Return 0 if sequence number is acceptable, -1 otherwise */ -int mbedtls_ssl_dtls_replay_check( mbedtls_ssl_context const *ssl ) +int mbedtls_ssl_dtls_replay_check(mbedtls_ssl_context const *ssl) { - uint64_t rec_seqnum = ssl_load_six_bytes( ssl->in_ctr + 2 ); + uint64_t rec_seqnum = ssl_load_six_bytes(ssl->in_ctr + 2); uint64_t bit; - if( ssl->conf->anti_replay == MBEDTLS_SSL_ANTI_REPLAY_DISABLED ) - return( 0 ); + if (ssl->conf->anti_replay == MBEDTLS_SSL_ANTI_REPLAY_DISABLED) { + return 0; + } - if( rec_seqnum > ssl->in_window_top ) - return( 0 ); + if (rec_seqnum > ssl->in_window_top) { + return 0; + } bit = ssl->in_window_top - rec_seqnum; - if( bit >= 64 ) - return( -1 ); + if (bit >= 64) { + return -1; + } - if( ( ssl->in_window & ( (uint64_t) 1 << bit ) ) != 0 ) - return( -1 ); + if ((ssl->in_window & ((uint64_t) 1 << bit)) != 0) { + return -1; + } - return( 0 ); + return 0; } /* * Update replay window on new validated record */ -void mbedtls_ssl_dtls_replay_update( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_dtls_replay_update(mbedtls_ssl_context *ssl) { - uint64_t rec_seqnum = ssl_load_six_bytes( ssl->in_ctr + 2 ); + uint64_t rec_seqnum = ssl_load_six_bytes(ssl->in_ctr + 2); - if( ssl->conf->anti_replay == MBEDTLS_SSL_ANTI_REPLAY_DISABLED ) + if (ssl->conf->anti_replay == MBEDTLS_SSL_ANTI_REPLAY_DISABLED) { return; + } - if( rec_seqnum > ssl->in_window_top ) - { + if (rec_seqnum > ssl->in_window_top) { /* Update window_top and the contents of the window */ uint64_t shift = rec_seqnum - ssl->in_window_top; - if( shift >= 64 ) + if (shift >= 64) { ssl->in_window = 1; - else - { + } else { ssl->in_window <<= shift; ssl->in_window |= 1; } ssl->in_window_top = rec_seqnum; - } - else - { + } else { /* Mark that number as seen in the current window */ uint64_t bit = ssl->in_window_top - rec_seqnum; - if( bit < 64 ) /* Always true, but be extra sure */ + if (bit < 64) { /* Always true, but be extra sure */ ssl->in_window |= (uint64_t) 1 << bit; + } } } #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ @@ -3327,10 +3230,10 @@ void mbedtls_ssl_dtls_replay_update( mbedtls_ssl_context *ssl ) MBEDTLS_CHECK_RETURN_CRITICAL MBEDTLS_STATIC_TESTABLE int mbedtls_ssl_check_dtls_clihlo_cookie( - mbedtls_ssl_context *ssl, - const unsigned char *cli_id, size_t cli_id_len, - const unsigned char *in, size_t in_len, - unsigned char *obuf, size_t buf_len, size_t *olen ) + mbedtls_ssl_context *ssl, + const unsigned char *cli_id, size_t cli_id_len, + const unsigned char *in, size_t in_len, + unsigned char *obuf, size_t buf_len, size_t *olen) { size_t sid_len, cookie_len, epoch, fragment_offset; unsigned char *p; @@ -3361,56 +3264,51 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( * * Minimum length is 61 bytes. */ - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: in_len=%u", - (unsigned) in_len ) ); - MBEDTLS_SSL_DEBUG_BUF( 4, "cli_id", cli_id, cli_id_len ); - if( in_len < 61 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: record too short" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: in_len=%u", + (unsigned) in_len)); + MBEDTLS_SSL_DEBUG_BUF(4, "cli_id", cli_id, cli_id_len); + if (in_len < 61) { + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: record too short")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - epoch = MBEDTLS_GET_UINT16_BE( in, 3 ); - fragment_offset = MBEDTLS_GET_UINT24_BE( in, 19 ); + epoch = MBEDTLS_GET_UINT16_BE(in, 3); + fragment_offset = MBEDTLS_GET_UINT24_BE(in, 19); - if( in[0] != MBEDTLS_SSL_MSG_HANDSHAKE || epoch != 0 || - fragment_offset != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: not a good ClientHello" ) ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( " type=%u epoch=%u fragment_offset=%u", - in[0], (unsigned) epoch, - (unsigned) fragment_offset ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (in[0] != MBEDTLS_SSL_MSG_HANDSHAKE || epoch != 0 || + fragment_offset != 0) { + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: not a good ClientHello")); + MBEDTLS_SSL_DEBUG_MSG(4, (" type=%u epoch=%u fragment_offset=%u", + in[0], (unsigned) epoch, + (unsigned) fragment_offset)); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } sid_len = in[59]; - if( 59 + 1 + sid_len + 1 > in_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: sid_len=%u > %u", - (unsigned) sid_len, - (unsigned) in_len - 61 ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (59 + 1 + sid_len + 1 > in_len) { + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: sid_len=%u > %u", + (unsigned) sid_len, + (unsigned) in_len - 61)); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 4, "sid received from network", - in + 60, sid_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "sid received from network", + in + 60, sid_len); cookie_len = in[60 + sid_len]; - if( 59 + 1 + sid_len + 1 + cookie_len > in_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: cookie_len=%u > %u", - (unsigned) cookie_len, - (unsigned) ( in_len - sid_len - 61 ) ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (59 + 1 + sid_len + 1 + cookie_len > in_len) { + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: cookie_len=%u > %u", + (unsigned) cookie_len, + (unsigned) (in_len - sid_len - 61))); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 4, "cookie received from network", - in + sid_len + 61, cookie_len ); - if( ssl->conf->f_cookie_check( ssl->conf->p_cookie, - in + sid_len + 61, cookie_len, - cli_id, cli_id_len ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "check cookie: valid" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_BUF(4, "cookie received from network", + in + sid_len + 61, cookie_len); + if (ssl->conf->f_cookie_check(ssl->conf->p_cookie, + in + sid_len + 61, cookie_len, + cli_id, cli_id_len) == 0) { + MBEDTLS_SSL_DEBUG_MSG(4, ("check cookie: valid")); + return 0; } /* @@ -3433,36 +3331,36 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( * * Minimum length is 28. */ - if( buf_len < 28 ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (buf_len < 28) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; + } /* Copy most fields and adapt others */ - memcpy( obuf, in, 25 ); + memcpy(obuf, in, 25); obuf[13] = MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST; obuf[25] = 0xfe; obuf[26] = 0xff; /* Generate and write actual cookie */ p = obuf + 28; - if( ssl->conf->f_cookie_write( ssl->conf->p_cookie, - &p, obuf + buf_len, - cli_id, cli_id_len ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->conf->f_cookie_write(ssl->conf->p_cookie, + &p, obuf + buf_len, + cli_id, cli_id_len) != 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } *olen = p - obuf; /* Go back and fill length fields */ - obuf[27] = (unsigned char)( *olen - 28 ); + obuf[27] = (unsigned char) (*olen - 28); - obuf[14] = obuf[22] = MBEDTLS_BYTE_2( *olen - 25 ); - obuf[15] = obuf[23] = MBEDTLS_BYTE_1( *olen - 25 ); - obuf[16] = obuf[24] = MBEDTLS_BYTE_0( *olen - 25 ); + obuf[14] = obuf[22] = MBEDTLS_BYTE_2(*olen - 25); + obuf[15] = obuf[23] = MBEDTLS_BYTE_1(*olen - 25); + obuf[16] = obuf[24] = MBEDTLS_BYTE_0(*olen - 25); - MBEDTLS_PUT_UINT16_BE( *olen - 13, obuf, 11 ); + MBEDTLS_PUT_UINT16_BE(*olen - 13, obuf, 11); - return( MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED ); + return MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED; } /* @@ -3486,73 +3384,68 @@ int mbedtls_ssl_check_dtls_clihlo_cookie( * errors, and is the right thing to do in both cases). */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_handle_possible_reconnect( mbedtls_ssl_context *ssl ) +static int ssl_handle_possible_reconnect(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ssl->conf->f_cookie_write == NULL || - ssl->conf->f_cookie_check == NULL ) - { + if (ssl->conf->f_cookie_write == NULL || + ssl->conf->f_cookie_check == NULL) { /* If we can't use cookies to verify reachability of the peer, * drop the record. */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no cookie callbacks, " - "can't check reconnect validity" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(1, ("no cookie callbacks, " + "can't check reconnect validity")); + return 0; } ret = mbedtls_ssl_check_dtls_clihlo_cookie( - ssl, - ssl->cli_id, ssl->cli_id_len, - ssl->in_buf, ssl->in_left, - ssl->out_buf, MBEDTLS_SSL_OUT_CONTENT_LEN, &len ); + ssl, + ssl->cli_id, ssl->cli_id_len, + ssl->in_buf, ssl->in_left, + ssl->out_buf, MBEDTLS_SSL_OUT_CONTENT_LEN, &len); - MBEDTLS_SSL_DEBUG_RET( 2, "mbedtls_ssl_check_dtls_clihlo_cookie", ret ); + MBEDTLS_SSL_DEBUG_RET(2, "mbedtls_ssl_check_dtls_clihlo_cookie", ret); - if( ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED ) - { + if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) { int send_ret; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "sending HelloVerifyRequest" ) ); - MBEDTLS_SSL_DEBUG_BUF( 4, "output record sent to network", - ssl->out_buf, len ); + MBEDTLS_SSL_DEBUG_MSG(1, ("sending HelloVerifyRequest")); + MBEDTLS_SSL_DEBUG_BUF(4, "output record sent to network", + ssl->out_buf, len); /* Don't check write errors as we can't do anything here. * If the error is permanent we'll catch it later, * if it's not, then hopefully it'll work next time. */ - send_ret = ssl->f_send( ssl->p_bio, ssl->out_buf, len ); - MBEDTLS_SSL_DEBUG_RET( 2, "ssl->f_send", send_ret ); + send_ret = ssl->f_send(ssl->p_bio, ssl->out_buf, len); + MBEDTLS_SSL_DEBUG_RET(2, "ssl->f_send", send_ret); (void) send_ret; - return( 0 ); + return 0; } - if( ret == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "cookie is valid, resetting context" ) ); - if( ( ret = mbedtls_ssl_session_reset_int( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "reset", ret ); - return( ret ); + if (ret == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("cookie is valid, resetting context")); + if ((ret = mbedtls_ssl_session_reset_int(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "reset", ret); + return ret; } - return( MBEDTLS_ERR_SSL_CLIENT_RECONNECT ); + return MBEDTLS_ERR_SSL_CLIENT_RECONNECT; } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE && MBEDTLS_SSL_SRV_C */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_record_type( uint8_t record_type ) +static int ssl_check_record_type(uint8_t record_type) { - if( record_type != MBEDTLS_SSL_MSG_HANDSHAKE && + if (record_type != MBEDTLS_SSL_MSG_HANDSHAKE && record_type != MBEDTLS_SSL_MSG_ALERT && record_type != MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC && - record_type != MBEDTLS_SSL_MSG_APPLICATION_DATA ) - { - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + record_type != MBEDTLS_SSL_MSG_APPLICATION_DATA) { + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - return( 0 ); + return 0; } /* @@ -3575,10 +3468,10 @@ static int ssl_check_record_type( uint8_t record_type ) * the first record from a datagram but are still waiting for the others. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, - unsigned char *buf, - size_t len, - mbedtls_record *rec ) +static int ssl_parse_record_header(mbedtls_ssl_context const *ssl, + unsigned char *buf, + size_t len, + mbedtls_record *rec) { mbedtls_ssl_protocol_version tls_version; @@ -3610,38 +3503,36 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { rec_hdr_len_offset = rec_hdr_ctr_offset + rec_hdr_ctr_len; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ { rec_hdr_len_offset = rec_hdr_version_offset + rec_hdr_version_len; } - if( len < rec_hdr_len_offset + rec_hdr_len_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "datagram of length %u too small to hold DTLS record header of length %u", - (unsigned) len, - (unsigned)( rec_hdr_len_len + rec_hdr_len_len ) ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (len < rec_hdr_len_offset + rec_hdr_len_len) { + MBEDTLS_SSL_DEBUG_MSG(1, + ( + "datagram of length %u too small to hold DTLS record header of length %u", + (unsigned) len, + (unsigned) (rec_hdr_len_len + rec_hdr_len_len))); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } /* * Parse and validate record content type */ - rec->type = buf[ rec_hdr_type_offset ]; + rec->type = buf[rec_hdr_type_offset]; /* Check record content type */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) rec->cid_len = 0; - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && ssl->conf->cid_len != 0 && - rec->type == MBEDTLS_SSL_MSG_CID ) - { + rec->type == MBEDTLS_SSL_MSG_CID) { /* Shift pointers to account for record header including CID * struct { * ContentType outer_type = tls12_cid; @@ -3660,62 +3551,58 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, rec_hdr_cid_len = ssl->conf->cid_len; rec_hdr_len_offset += rec_hdr_cid_len; - if( len < rec_hdr_len_offset + rec_hdr_len_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "datagram of length %u too small to hold DTLS record header including CID, length %u", - (unsigned) len, - (unsigned)( rec_hdr_len_offset + rec_hdr_len_len ) ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (len < rec_hdr_len_offset + rec_hdr_len_len) { + MBEDTLS_SSL_DEBUG_MSG(1, + ( + "datagram of length %u too small to hold DTLS record header including CID, length %u", + (unsigned) len, + (unsigned) (rec_hdr_len_offset + rec_hdr_len_len))); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } /* configured CID len is guaranteed at most 255, see * MBEDTLS_SSL_CID_OUT_LEN_MAX in check_config.h */ rec->cid_len = (uint8_t) rec_hdr_cid_len; - memcpy( rec->cid, buf + rec_hdr_cid_offset, rec_hdr_cid_len ); - } - else + memcpy(rec->cid, buf + rec_hdr_cid_offset, rec_hdr_cid_len); + } else #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ { - if( ssl_check_record_type( rec->type ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "unknown record type %u", - (unsigned) rec->type ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl_check_record_type(rec->type)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("unknown record type %u", + (unsigned) rec->type)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } } /* * Parse and validate record version */ - rec->ver[0] = buf[ rec_hdr_version_offset + 0 ]; - rec->ver[1] = buf[ rec_hdr_version_offset + 1 ]; - tls_version = mbedtls_ssl_read_version( buf + rec_hdr_version_offset, - ssl->conf->transport ); + rec->ver[0] = buf[rec_hdr_version_offset + 0]; + rec->ver[1] = buf[rec_hdr_version_offset + 1]; + tls_version = mbedtls_ssl_read_version(buf + rec_hdr_version_offset, + ssl->conf->transport); - if( tls_version > ssl->conf->max_tls_version ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "TLS version mismatch: got %u, expected max %u", - (unsigned) tls_version, - (unsigned) ssl->conf->max_tls_version) ); + if (tls_version > ssl->conf->max_tls_version) { + MBEDTLS_SSL_DEBUG_MSG(1, ("TLS version mismatch: got %u, expected max %u", + (unsigned) tls_version, + (unsigned) ssl->conf->max_tls_version)); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } /* * Parse/Copy record sequence number. */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Copy explicit record sequence number from input buffer. */ - memcpy( &rec->ctr[0], buf + rec_hdr_ctr_offset, - rec_hdr_ctr_len ); - } - else + memcpy(&rec->ctr[0], buf + rec_hdr_ctr_offset, + rec_hdr_ctr_len); + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ { /* Copy implicit record sequence number from SSL context structure. */ - memcpy( &rec->ctr[0], ssl->in_ctr, rec_hdr_ctr_len ); + memcpy(&rec->ctr[0], ssl->in_ctr, rec_hdr_ctr_len); } /* @@ -3723,19 +3610,20 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, */ rec->data_offset = rec_hdr_len_offset + rec_hdr_len_len; - rec->data_len = ( (size_t) buf[ rec_hdr_len_offset + 0 ] << 8 ) | - ( (size_t) buf[ rec_hdr_len_offset + 1 ] << 0 ); - MBEDTLS_SSL_DEBUG_BUF( 4, "input record header", buf, rec->data_offset ); + rec->data_len = ((size_t) buf[rec_hdr_len_offset + 0] << 8) | + ((size_t) buf[rec_hdr_len_offset + 1] << 0); + MBEDTLS_SSL_DEBUG_BUF(4, "input record header", buf, rec->data_offset); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "input record: msgtype = %u, " - "version = [0x%x], msglen = %" MBEDTLS_PRINTF_SIZET, - rec->type, (unsigned)tls_version, rec->data_len ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("input record: msgtype = %u, " + "version = [0x%x], msglen = %" MBEDTLS_PRINTF_SIZET, + rec->type, (unsigned) tls_version, rec->data_len)); rec->buf = buf; rec->buf_len = rec->data_offset + rec->data_len; - if( rec->data_len == 0 ) - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (rec->data_len == 0) { + return MBEDTLS_ERR_SSL_INVALID_RECORD; + } /* * DTLS-related tests. @@ -3750,61 +3638,58 @@ static int ssl_parse_record_header( mbedtls_ssl_context const *ssl, * record leads to the entire datagram being dropped. */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - rec_epoch = ( rec->ctr[0] << 8 ) | rec->ctr[1]; + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + rec_epoch = (rec->ctr[0] << 8) | rec->ctr[1]; /* Check that the datagram is large enough to contain a record * of the advertised length. */ - if( len < rec->data_offset + rec->data_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Datagram of length %u too small to contain record of advertised length %u.", - (unsigned) len, - (unsigned)( rec->data_offset + rec->data_len ) ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (len < rec->data_offset + rec->data_len) { + MBEDTLS_SSL_DEBUG_MSG(1, + ( + "Datagram of length %u too small to contain record of advertised length %u.", + (unsigned) len, + (unsigned) (rec->data_offset + rec->data_len))); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } /* Records from other, non-matching epochs are silently discarded. * (The case of same-port Client reconnects must be considered in * the caller). */ - if( rec_epoch != ssl->in_epoch ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "record from another epoch: " - "expected %u, received %lu", - ssl->in_epoch, (unsigned long) rec_epoch ) ); + if (rec_epoch != ssl->in_epoch) { + MBEDTLS_SSL_DEBUG_MSG(1, ("record from another epoch: " + "expected %u, received %lu", + ssl->in_epoch, (unsigned long) rec_epoch)); /* Records from the next epoch are considered for buffering * (concretely: early Finished messages). */ - if( rec_epoch == (unsigned) ssl->in_epoch + 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Consider record for buffering" ) ); - return( MBEDTLS_ERR_SSL_EARLY_MESSAGE ); + if (rec_epoch == (unsigned) ssl->in_epoch + 1) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Consider record for buffering")); + return MBEDTLS_ERR_SSL_EARLY_MESSAGE; } - return( MBEDTLS_ERR_SSL_UNEXPECTED_RECORD ); + return MBEDTLS_ERR_SSL_UNEXPECTED_RECORD; } #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) /* For records from the correct epoch, check whether their * sequence number has been seen before. */ - else if( mbedtls_ssl_dtls_record_replay_check( (mbedtls_ssl_context *) ssl, - &rec->ctr[0] ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "replayed record" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_RECORD ); + else if (mbedtls_ssl_dtls_record_replay_check((mbedtls_ssl_context *) ssl, + &rec->ctr[0]) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("replayed record")); + return MBEDTLS_ERR_SSL_UNEXPECTED_RECORD; } #endif } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && defined(MBEDTLS_SSL_SRV_C) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_client_reconnect( mbedtls_ssl_context *ssl ) +static int ssl_check_client_reconnect(mbedtls_ssl_context *ssl) { - unsigned int rec_epoch = ( ssl->in_ctr[0] << 8 ) | ssl->in_ctr[1]; + unsigned int rec_epoch = (ssl->in_ctr[0] << 8) | ssl->in_ctr[1]; /* * Check for an epoch 0 ClientHello. We can't use in_msg here to @@ -3812,19 +3697,18 @@ static int ssl_check_client_reconnect( mbedtls_ssl_context *ssl ) * have an active transform (possibly iv_len != 0), so use the * fact that the record header len is 13 instead. */ - if( rec_epoch == 0 && + if (rec_epoch == 0 && ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - mbedtls_ssl_is_handshake_over( ssl ) == 1 && + mbedtls_ssl_is_handshake_over(ssl) == 1 && ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && ssl->in_left > 13 && - ssl->in_buf[13] == MBEDTLS_SSL_HS_CLIENT_HELLO ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "possible client reconnect " - "from the same port" ) ); - return( ssl_handle_possible_reconnect( ssl ) ); + ssl->in_buf[13] == MBEDTLS_SSL_HS_CLIENT_HELLO) { + MBEDTLS_SSL_DEBUG_MSG(1, ("possible client reconnect " + "from the same port")); + return ssl_handle_possible_reconnect(ssl); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE && MBEDTLS_SSL_SRV_C */ @@ -3832,13 +3716,13 @@ static int ssl_check_client_reconnect( mbedtls_ssl_context *ssl ) * If applicable, decrypt record content */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_prepare_record_content( mbedtls_ssl_context *ssl, - mbedtls_record *rec ) +static int ssl_prepare_record_content(mbedtls_ssl_context *ssl, + mbedtls_record *rec) { int ret, done = 0; - MBEDTLS_SSL_DEBUG_BUF( 4, "input record from network", - rec->buf, rec->buf_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "input record from network", + rec->buf, rec->buf_len); /* * In TLS 1.3, always treat ChangeCipherSpec records @@ -3846,44 +3730,40 @@ static int ssl_prepare_record_content( mbedtls_ssl_context *ssl, * check the length and content and ignore them. */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->transform_in != NULL && - ssl->transform_in->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - if( rec->type == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC ) + if (ssl->transform_in != NULL && + ssl->transform_in->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + if (rec->type == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC) { done = 1; + } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( !done && ssl->transform_in != NULL ) - { + if (!done && ssl->transform_in != NULL) { unsigned char const old_msg_type = rec->type; - if( ( ret = mbedtls_ssl_decrypt_buf( ssl, ssl->transform_in, - rec ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_decrypt_buf", ret ); + if ((ret = mbedtls_ssl_decrypt_buf(ssl, ssl->transform_in, + rec)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_decrypt_buf", ret); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( ret == MBEDTLS_ERR_SSL_UNEXPECTED_CID && + if (ret == MBEDTLS_ERR_SSL_UNEXPECTED_CID && ssl->conf->ignore_unexpected_cid - == MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ignoring unexpected CID" ) ); + == MBEDTLS_SSL_UNEXPECTED_CID_IGNORE) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ignoring unexpected CID")); ret = MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - return( ret ); + return ret; } - if( old_msg_type != rec->type ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "record type after decrypt (before %d): %d", - old_msg_type, rec->type ) ); + if (old_msg_type != rec->type) { + MBEDTLS_SSL_DEBUG_MSG(4, ("record type after decrypt (before %d): %d", + old_msg_type, rec->type)); } - MBEDTLS_SSL_DEBUG_BUF( 4, "input payload after decrypt", - rec->buf + rec->data_offset, rec->data_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "input payload after decrypt", + rec->buf + rec->data_offset, rec->data_len); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* We have already checked the record content type @@ -3893,22 +3773,19 @@ static int ssl_prepare_record_content( mbedtls_ssl_context *ssl, * Since with the use of CIDs, the record content type * might change during decryption, re-check the record * content type, but treat a failure as fatal this time. */ - if( ssl_check_record_type( rec->type ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "unknown record type" ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl_check_record_type(rec->type)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("unknown record type")); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - if( rec->data_len == 0 ) - { + if (rec->data_len == 0) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 - && rec->type != MBEDTLS_SSL_MSG_APPLICATION_DATA ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 + && rec->type != MBEDTLS_SSL_MSG_APPLICATION_DATA) { /* TLS v1.2 explicitly disallows zero-length messages which are not application data */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid zero-length message type: %d", ssl->in_msgtype ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid zero-length message type: %d", ssl->in_msgtype)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ @@ -3918,61 +3795,55 @@ static int ssl_prepare_record_content( mbedtls_ssl_context *ssl, * Three or more empty messages may be a DoS attack * (excessive CPU consumption). */ - if( ssl->nb_zero > 3 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "received four consecutive empty " - "messages, possible DoS attack" ) ); + if (ssl->nb_zero > 3) { + MBEDTLS_SSL_DEBUG_MSG(1, ("received four consecutive empty " + "messages, possible DoS attack")); /* Treat the records as if they were not properly authenticated, * thereby failing the connection if we see more than allowed * by the configured bad MAC threshold. */ - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + return MBEDTLS_ERR_SSL_INVALID_MAC; } - } - else + } else { ssl->nb_zero = 0; + } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ; /* in_ctr read from peer, not maintained internally */ - } - else + } else #endif { unsigned i; - for( i = MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; - i > mbedtls_ssl_ep_len( ssl ); i-- ) - { - if( ++ssl->in_ctr[i - 1] != 0 ) + for (i = MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; + i > mbedtls_ssl_ep_len(ssl); i--) { + if (++ssl->in_ctr[i - 1] != 0) { break; + } } /* The loop goes to its end iff the counter is wrapping */ - if( i == mbedtls_ssl_ep_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "incoming message counter would wrap" ) ); - return( MBEDTLS_ERR_SSL_COUNTER_WRAPPING ); + if (i == mbedtls_ssl_ep_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("incoming message counter would wrap")); + return MBEDTLS_ERR_SSL_COUNTER_WRAPPING; } } } #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - mbedtls_ssl_dtls_replay_update( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_dtls_replay_update(ssl); } #endif /* Check actual (decrypted) record content length against * configured maximum. */ - if( rec->data_len > MBEDTLS_SSL_IN_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad message length" ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (rec->data_len > MBEDTLS_SSL_IN_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad message length")); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - return( 0 ); + return 0; } /* @@ -3985,131 +3856,125 @@ static int ssl_prepare_record_content( mbedtls_ssl_context *ssl, /* Helper functions for mbedtls_ssl_read_record(). */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_consume_current_message( mbedtls_ssl_context *ssl ); +static int ssl_consume_current_message(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_next_record( mbedtls_ssl_context *ssl ); +static int ssl_get_next_record(mbedtls_ssl_context *ssl); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_record_is_in_progress( mbedtls_ssl_context *ssl ); +static int ssl_record_is_in_progress(mbedtls_ssl_context *ssl); -int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl, - unsigned update_hs_digest ) +int mbedtls_ssl_read_record(mbedtls_ssl_context *ssl, + unsigned update_hs_digest) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> read record" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> read record")); - if( ssl->keep_current_message == 0 ) - { + if (ssl->keep_current_message == 0) { do { - ret = ssl_consume_current_message( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_consume_current_message(ssl); + if (ret != 0) { + return ret; + } - if( ssl_record_is_in_progress( ssl ) == 0 ) - { + if (ssl_record_is_in_progress(ssl) == 0) { int dtls_have_buffered = 0; #if defined(MBEDTLS_SSL_PROTO_DTLS) /* We only check for buffered messages if the * current datagram is fully consumed. */ - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl_next_record_is_in_datagram( ssl ) == 0 ) - { - if( ssl_load_buffered_message( ssl ) == 0 ) + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl_next_record_is_in_datagram(ssl) == 0) { + if (ssl_load_buffered_message(ssl) == 0) { dtls_have_buffered = 1; + } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - if( dtls_have_buffered == 0 ) - { - ret = ssl_get_next_record( ssl ); - if( ret == MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ) + if (dtls_have_buffered == 0) { + ret = ssl_get_next_record(ssl); + if (ret == MBEDTLS_ERR_SSL_CONTINUE_PROCESSING) { continue; + } - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_get_next_record" ), ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_get_next_record"), ret); + return ret; } } } - ret = mbedtls_ssl_handle_message_type( ssl ); + ret = mbedtls_ssl_handle_message_type(ssl); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE ) - { + if (ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE) { /* Buffer future message */ - ret = ssl_buffer_message( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_buffer_message(ssl); + if (ret != 0) { + return ret; + } ret = MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - } while( MBEDTLS_ERR_SSL_NON_FATAL == ret || - MBEDTLS_ERR_SSL_CONTINUE_PROCESSING == ret ); + } while (MBEDTLS_ERR_SSL_NON_FATAL == ret || + MBEDTLS_ERR_SSL_CONTINUE_PROCESSING == ret); - if( 0 != ret ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ssl_handle_message_type" ), ret ); - return( ret ); + if (0 != ret) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ssl_handle_message_type"), ret); + return ret; } - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && - update_hs_digest == 1 ) - { - mbedtls_ssl_update_handshake_status( ssl ); + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && + update_hs_digest == 1) { + mbedtls_ssl_update_handshake_status(ssl); } - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "reuse previously read message" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("reuse previously read message")); ssl->keep_current_message = 0; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= read record" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= read record")); - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_PROTO_DTLS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_next_record_is_in_datagram( mbedtls_ssl_context *ssl ) +static int ssl_next_record_is_in_datagram(mbedtls_ssl_context *ssl) { - if( ssl->in_left > ssl->next_record_offset ) - return( 1 ); + if (ssl->in_left > ssl->next_record_offset) { + return 1; + } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_load_buffered_message( mbedtls_ssl_context *ssl ) +static int ssl_load_buffered_message(mbedtls_ssl_context *ssl) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - mbedtls_ssl_hs_buffer * hs_buf; + mbedtls_ssl_hs_buffer *hs_buf; int ret = 0; - if( hs == NULL ) - return( -1 ); + if (hs == NULL) { + return -1; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_load_buffered_message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_load_buffered_message")); - if( ssl->state == MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC || - ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC ) - { + if (ssl->state == MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC || + ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC) { /* Check if we have seen a ChangeCipherSpec before. * If yes, synthesize a CCS record. */ - if( !hs->buffering.seen_ccs ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "CCS not seen in the current flight" ) ); + if (!hs->buffering.seen_ccs) { + MBEDTLS_SSL_DEBUG_MSG(2, ("CCS not seen in the current flight")); ret = -1; goto exit; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Injecting buffered CCS message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Injecting buffered CCS message")); ssl->in_msgtype = MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC; ssl->in_msglen = 1; ssl->in_msg[0] = 1; @@ -4126,14 +3991,12 @@ static int ssl_load_buffered_message( mbedtls_ssl_context *ssl ) /* Debug only */ { unsigned offset; - for( offset = 1; offset < MBEDTLS_SSL_MAX_BUFFERED_HS; offset++ ) - { + for (offset = 1; offset < MBEDTLS_SSL_MAX_BUFFERED_HS; offset++) { hs_buf = &hs->buffering.hs[offset]; - if( hs_buf->is_valid == 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Future message with sequence number %u %s buffered.", - hs->in_msg_seq + offset, - hs_buf->is_complete ? "fully" : "partially" ) ); + if (hs_buf->is_valid == 1) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Future message with sequence number %u %s buffered.", + hs->in_msg_seq + offset, + hs_buf->is_complete ? "fully" : "partially")); } } } @@ -4142,105 +4005,100 @@ static int ssl_load_buffered_message( mbedtls_ssl_context *ssl ) /* Check if we have buffered and/or fully reassembled the * next handshake message. */ hs_buf = &hs->buffering.hs[0]; - if( ( hs_buf->is_valid == 1 ) && ( hs_buf->is_complete == 1 ) ) - { + if ((hs_buf->is_valid == 1) && (hs_buf->is_complete == 1)) { /* Synthesize a record containing the buffered HS message. */ - size_t msg_len = ( hs_buf->data[1] << 16 ) | - ( hs_buf->data[2] << 8 ) | - hs_buf->data[3]; + size_t msg_len = (hs_buf->data[1] << 16) | + (hs_buf->data[2] << 8) | + hs_buf->data[3]; /* Double-check that we haven't accidentally buffered * a message that doesn't fit into the input buffer. */ - if( msg_len + 12 > MBEDTLS_SSL_IN_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (msg_len + 12 > MBEDTLS_SSL_IN_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Next handshake message has been buffered - load" ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Buffered handshake message (incl. header)", - hs_buf->data, msg_len + 12 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Next handshake message has been buffered - load")); + MBEDTLS_SSL_DEBUG_BUF(3, "Buffered handshake message (incl. header)", + hs_buf->data, msg_len + 12); ssl->in_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->in_hslen = msg_len + 12; ssl->in_msglen = msg_len + 12; - memcpy( ssl->in_msg, hs_buf->data, ssl->in_hslen ); + memcpy(ssl->in_msg, hs_buf->data, ssl->in_hslen); ret = 0; goto exit; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Next handshake message %u not or only partially bufffered", - hs->in_msg_seq ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("Next handshake message %u not or only partially bufffered", + hs->in_msg_seq)); } ret = -1; exit: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_load_buffered_message" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_load_buffered_message")); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_buffer_make_space( mbedtls_ssl_context *ssl, - size_t desired ) +static int ssl_buffer_make_space(mbedtls_ssl_context *ssl, + size_t desired) { int offset; mbedtls_ssl_handshake_params * const hs = ssl->handshake; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Attempt to free buffered messages to have %u bytes available", - (unsigned) desired ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Attempt to free buffered messages to have %u bytes available", + (unsigned) desired)); /* Get rid of future records epoch first, if such exist. */ - ssl_free_buffered_record( ssl ); + ssl_free_buffered_record(ssl); /* Check if we have enough space available now. */ - if( desired <= ( MBEDTLS_SSL_DTLS_MAX_BUFFERING - - hs->buffering.total_bytes_buffered ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Enough space available after freeing future epoch record" ) ); - return( 0 ); + if (desired <= (MBEDTLS_SSL_DTLS_MAX_BUFFERING - + hs->buffering.total_bytes_buffered)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Enough space available after freeing future epoch record")); + return 0; } /* We don't have enough space to buffer the next expected handshake * message. Remove buffers used for future messages to gain space, * starting with the most distant one. */ - for( offset = MBEDTLS_SSL_MAX_BUFFERED_HS - 1; - offset >= 0; offset-- ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Free buffering slot %d to make space for reassembly of next handshake message", - offset ) ); + for (offset = MBEDTLS_SSL_MAX_BUFFERED_HS - 1; + offset >= 0; offset--) { + MBEDTLS_SSL_DEBUG_MSG(2, + ( + "Free buffering slot %d to make space for reassembly of next handshake message", + offset)); - ssl_buffering_free_slot( ssl, (uint8_t) offset ); + ssl_buffering_free_slot(ssl, (uint8_t) offset); /* Check if we have enough space available now. */ - if( desired <= ( MBEDTLS_SSL_DTLS_MAX_BUFFERING - - hs->buffering.total_bytes_buffered ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Enough space available after freeing buffered HS messages" ) ); - return( 0 ); + if (desired <= (MBEDTLS_SSL_DTLS_MAX_BUFFERING - + hs->buffering.total_bytes_buffered)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Enough space available after freeing buffered HS messages")); + return 0; } } - return( -1 ); + return -1; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_buffer_message( mbedtls_ssl_context *ssl ) +static int ssl_buffer_message(mbedtls_ssl_context *ssl) { int ret = 0; mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( hs == NULL ) - return( 0 ); + if (hs == NULL) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_buffer_message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_buffer_message")); - switch( ssl->in_msgtype ) - { + switch (ssl->in_msgtype) { case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Remember CCS message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Remember CCS message")); hs->buffering.seen_ccs = 1; break; @@ -4248,113 +4106,115 @@ static int ssl_buffer_message( mbedtls_ssl_context *ssl ) case MBEDTLS_SSL_MSG_HANDSHAKE: { unsigned recv_msg_seq_offset; - unsigned recv_msg_seq = ( ssl->in_msg[4] << 8 ) | ssl->in_msg[5]; + unsigned recv_msg_seq = (ssl->in_msg[4] << 8) | ssl->in_msg[5]; mbedtls_ssl_hs_buffer *hs_buf; size_t msg_len = ssl->in_hslen - 12; /* We should never receive an old handshake * message - double-check nonetheless. */ - if( recv_msg_seq < ssl->handshake->in_msg_seq ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (recv_msg_seq < ssl->handshake->in_msg_seq) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } recv_msg_seq_offset = recv_msg_seq - ssl->handshake->in_msg_seq; - if( recv_msg_seq_offset >= MBEDTLS_SSL_MAX_BUFFERED_HS ) - { + if (recv_msg_seq_offset >= MBEDTLS_SSL_MAX_BUFFERED_HS) { /* Silently ignore -- message too far in the future */ - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "Ignore future HS message with sequence number %u, " - "buffering window %u - %u", - recv_msg_seq, ssl->handshake->in_msg_seq, - ssl->handshake->in_msg_seq + MBEDTLS_SSL_MAX_BUFFERED_HS - 1 ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("Ignore future HS message with sequence number %u, " + "buffering window %u - %u", + recv_msg_seq, ssl->handshake->in_msg_seq, + ssl->handshake->in_msg_seq + MBEDTLS_SSL_MAX_BUFFERED_HS - + 1)); goto exit; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffering HS message with sequence number %u, offset %u ", - recv_msg_seq, recv_msg_seq_offset ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Buffering HS message with sequence number %u, offset %u ", + recv_msg_seq, recv_msg_seq_offset)); - hs_buf = &hs->buffering.hs[ recv_msg_seq_offset ]; + hs_buf = &hs->buffering.hs[recv_msg_seq_offset]; /* Check if the buffering for this seq nr has already commenced. */ - if( !hs_buf->is_valid ) - { + if (!hs_buf->is_valid) { size_t reassembly_buf_sz; hs_buf->is_fragmented = - ( ssl_hs_is_proper_fragment( ssl ) == 1 ); + (ssl_hs_is_proper_fragment(ssl) == 1); /* We copy the message back into the input buffer * after reassembly, so check that it's not too large. * This is an implementation-specific limitation * and not one from the standard, hence it is not * checked in ssl_check_hs_header(). */ - if( msg_len + 12 > MBEDTLS_SSL_IN_CONTENT_LEN ) - { + if (msg_len + 12 > MBEDTLS_SSL_IN_CONTENT_LEN) { /* Ignore message */ goto exit; } /* Check if we have enough space to buffer the message. */ - if( hs->buffering.total_bytes_buffered > - MBEDTLS_SSL_DTLS_MAX_BUFFERING ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (hs->buffering.total_bytes_buffered > + MBEDTLS_SSL_DTLS_MAX_BUFFERING) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - reassembly_buf_sz = ssl_get_reassembly_buffer_size( msg_len, - hs_buf->is_fragmented ); + reassembly_buf_sz = ssl_get_reassembly_buffer_size(msg_len, + hs_buf->is_fragmented); - if( reassembly_buf_sz > ( MBEDTLS_SSL_DTLS_MAX_BUFFERING - - hs->buffering.total_bytes_buffered ) ) - { - if( recv_msg_seq_offset > 0 ) - { + if (reassembly_buf_sz > (MBEDTLS_SSL_DTLS_MAX_BUFFERING - + hs->buffering.total_bytes_buffered)) { + if (recv_msg_seq_offset > 0) { /* If we can't buffer a future message because * of space limitations -- ignore. */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffering of future message of size %" MBEDTLS_PRINTF_SIZET - " would exceed the compile-time limit %" MBEDTLS_PRINTF_SIZET - " (already %" MBEDTLS_PRINTF_SIZET - " bytes buffered) -- ignore\n", - msg_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, - hs->buffering.total_bytes_buffered ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("Buffering of future message of size %" + MBEDTLS_PRINTF_SIZET + " would exceed the compile-time limit %" + MBEDTLS_PRINTF_SIZET + " (already %" MBEDTLS_PRINTF_SIZET + " bytes buffered) -- ignore\n", + msg_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, + hs->buffering.total_bytes_buffered)); goto exit; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffering of future message of size %" MBEDTLS_PRINTF_SIZET - " would exceed the compile-time limit %" MBEDTLS_PRINTF_SIZET - " (already %" MBEDTLS_PRINTF_SIZET - " bytes buffered) -- attempt to make space by freeing buffered future messages\n", - msg_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, - hs->buffering.total_bytes_buffered ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, + ("Buffering of future message of size %" + MBEDTLS_PRINTF_SIZET + " would exceed the compile-time limit %" + MBEDTLS_PRINTF_SIZET + " (already %" MBEDTLS_PRINTF_SIZET + " bytes buffered) -- attempt to make space by freeing buffered future messages\n", + msg_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, + hs->buffering.total_bytes_buffered)); } - if( ssl_buffer_make_space( ssl, reassembly_buf_sz ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Reassembly of next message of size %" MBEDTLS_PRINTF_SIZET - " (%" MBEDTLS_PRINTF_SIZET " with bitmap) would exceed" - " the compile-time limit %" MBEDTLS_PRINTF_SIZET - " (already %" MBEDTLS_PRINTF_SIZET - " bytes buffered) -- fail\n", - msg_len, - reassembly_buf_sz, - (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, - hs->buffering.total_bytes_buffered ) ); + if (ssl_buffer_make_space(ssl, reassembly_buf_sz) != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, + ("Reassembly of next message of size %" + MBEDTLS_PRINTF_SIZET + " (%" MBEDTLS_PRINTF_SIZET + " with bitmap) would exceed" + " the compile-time limit %" + MBEDTLS_PRINTF_SIZET + " (already %" MBEDTLS_PRINTF_SIZET + " bytes buffered) -- fail\n", + msg_len, + reassembly_buf_sz, + (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, + hs->buffering.total_bytes_buffered)); ret = MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; goto exit; } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "initialize reassembly, total length = %" MBEDTLS_PRINTF_SIZET, - msg_len ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("initialize reassembly, total length = %" + MBEDTLS_PRINTF_SIZET, + msg_len)); - hs_buf->data = mbedtls_calloc( 1, reassembly_buf_sz ); - if( hs_buf->data == NULL ) - { + hs_buf->data = mbedtls_calloc(1, reassembly_buf_sz); + if (hs_buf->data == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } @@ -4362,27 +4222,23 @@ static int ssl_buffer_message( mbedtls_ssl_context *ssl ) /* Prepare final header: copy msg_type, length and message_seq, * then add standardised fragment_offset and fragment_length */ - memcpy( hs_buf->data, ssl->in_msg, 6 ); - memset( hs_buf->data + 6, 0, 3 ); - memcpy( hs_buf->data + 9, hs_buf->data + 1, 3 ); + memcpy(hs_buf->data, ssl->in_msg, 6); + memset(hs_buf->data + 6, 0, 3); + memcpy(hs_buf->data + 9, hs_buf->data + 1, 3); hs_buf->is_valid = 1; hs->buffering.total_bytes_buffered += reassembly_buf_sz; - } - else - { + } else { /* Make sure msg_type and length are consistent */ - if( memcmp( hs_buf->data, ssl->in_msg, 4 ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Fragment header mismatch - ignore" ) ); + if (memcmp(hs_buf->data, ssl->in_msg, 4) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Fragment header mismatch - ignore")); /* Ignore */ goto exit; } } - if( !hs_buf->is_complete ) - { + if (!hs_buf->is_complete) { size_t frag_len, frag_off; unsigned char * const msg = hs_buf->data + 12; @@ -4392,28 +4248,25 @@ static int ssl_buffer_message( mbedtls_ssl_context *ssl ) /* Validation of header fields already done in * mbedtls_ssl_prepare_handshake_record(). */ - frag_off = ssl_get_hs_frag_off( ssl ); - frag_len = ssl_get_hs_frag_len( ssl ); + frag_off = ssl_get_hs_frag_off(ssl); + frag_len = ssl_get_hs_frag_len(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "adding fragment, offset = %" MBEDTLS_PRINTF_SIZET - ", length = %" MBEDTLS_PRINTF_SIZET, - frag_off, frag_len ) ); - memcpy( msg + frag_off, ssl->in_msg + 12, frag_len ); + MBEDTLS_SSL_DEBUG_MSG(2, ("adding fragment, offset = %" MBEDTLS_PRINTF_SIZET + ", length = %" MBEDTLS_PRINTF_SIZET, + frag_off, frag_len)); + memcpy(msg + frag_off, ssl->in_msg + 12, frag_len); - if( hs_buf->is_fragmented ) - { + if (hs_buf->is_fragmented) { unsigned char * const bitmask = msg + msg_len; - ssl_bitmask_set( bitmask, frag_off, frag_len ); - hs_buf->is_complete = ( ssl_bitmask_check( bitmask, - msg_len ) == 0 ); - } - else - { + ssl_bitmask_set(bitmask, frag_off, frag_len); + hs_buf->is_complete = (ssl_bitmask_check(bitmask, + msg_len) == 0); + } else { hs_buf->is_complete = 1; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "message %scomplete", - hs_buf->is_complete ? "" : "not yet " ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("message %scomplete", + hs_buf->is_complete ? "" : "not yet ")); } break; @@ -4426,13 +4279,13 @@ static int ssl_buffer_message( mbedtls_ssl_context *ssl ) exit: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_buffer_message" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_buffer_message")); + return ret; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_consume_current_message( mbedtls_ssl_context *ssl ) +static int ssl_consume_current_message(mbedtls_ssl_context *ssl) { /* * Consume last content-layer message and potentially @@ -4457,15 +4310,13 @@ static int ssl_consume_current_message( mbedtls_ssl_context *ssl ) */ /* Case (1): Handshake messages */ - if( ssl->in_hslen != 0 ) - { + if (ssl->in_hslen != 0) { /* Hard assertion to be sure that no application data * is in flight, as corrupting ssl->in_msglen during * ssl->in_offt != NULL is fatal. */ - if( ssl->in_offt != NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->in_offt != NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* @@ -4489,68 +4340,64 @@ static int ssl_consume_current_message( mbedtls_ssl_context *ssl ) * bounds after handling a DTLS message with an unexpected * sequence number, see mbedtls_ssl_prepare_handshake_record. */ - if( ssl->in_hslen < ssl->in_msglen ) - { + if (ssl->in_hslen < ssl->in_msglen) { ssl->in_msglen -= ssl->in_hslen; - memmove( ssl->in_msg, ssl->in_msg + ssl->in_hslen, - ssl->in_msglen ); + memmove(ssl->in_msg, ssl->in_msg + ssl->in_hslen, + ssl->in_msglen); - MBEDTLS_SSL_DEBUG_BUF( 4, "remaining content in record", - ssl->in_msg, ssl->in_msglen ); - } - else - { + MBEDTLS_SSL_DEBUG_BUF(4, "remaining content in record", + ssl->in_msg, ssl->in_msglen); + } else { ssl->in_msglen = 0; } ssl->in_hslen = 0; } /* Case (4): Application data */ - else if( ssl->in_offt != NULL ) - { - return( 0 ); + else if (ssl->in_offt != NULL) { + return 0; } /* Everything else (CCS & Alerts) */ - else - { + else { ssl->in_msglen = 0; } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_record_is_in_progress( mbedtls_ssl_context *ssl ) +static int ssl_record_is_in_progress(mbedtls_ssl_context *ssl) { - if( ssl->in_msglen > 0 ) - return( 1 ); + if (ssl->in_msglen > 0) { + return 1; + } - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_PROTO_DTLS) -static void ssl_free_buffered_record( mbedtls_ssl_context *ssl ) +static void ssl_free_buffered_record(mbedtls_ssl_context *ssl) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( hs == NULL ) + if (hs == NULL) { return; + } - if( hs->buffering.future_record.data != NULL ) - { + if (hs->buffering.future_record.data != NULL) { hs->buffering.total_bytes_buffered -= hs->buffering.future_record.len; - mbedtls_free( hs->buffering.future_record.data ); + mbedtls_free(hs->buffering.future_record.data); hs->buffering.future_record.data = NULL; } } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_load_buffered_record( mbedtls_ssl_context *ssl ) +static int ssl_load_buffered_record(mbedtls_ssl_context *ssl) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; - unsigned char * rec; + unsigned char *rec; size_t rec_len; unsigned rec_epoch; #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) @@ -4558,88 +4405,92 @@ static int ssl_load_buffered_record( mbedtls_ssl_context *ssl ) #else size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; #endif - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( 0 ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 0; + } - if( hs == NULL ) - return( 0 ); + if (hs == NULL) { + return 0; + } rec = hs->buffering.future_record.data; rec_len = hs->buffering.future_record.len; rec_epoch = hs->buffering.future_record.epoch; - if( rec == NULL ) - return( 0 ); + if (rec == NULL) { + return 0; + } /* Only consider loading future records if the * input buffer is empty. */ - if( ssl_next_record_is_in_datagram( ssl ) == 1 ) - return( 0 ); + if (ssl_next_record_is_in_datagram(ssl) == 1) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_load_buffered_record" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_load_buffered_record")); - if( rec_epoch != ssl->in_epoch ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffered record not from current epoch." ) ); + if (rec_epoch != ssl->in_epoch) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Buffered record not from current epoch.")); goto exit; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Found buffered record from current epoch - load" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Found buffered record from current epoch - load")); /* Double-check that the record is not too large */ - if( rec_len > in_buf_len - (size_t)( ssl->in_hdr - ssl->in_buf ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (rec_len > in_buf_len - (size_t) (ssl->in_hdr - ssl->in_buf)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - memcpy( ssl->in_hdr, rec, rec_len ); + memcpy(ssl->in_hdr, rec, rec_len); ssl->in_left = rec_len; ssl->next_record_offset = 0; - ssl_free_buffered_record( ssl ); + ssl_free_buffered_record(ssl); exit: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_load_buffered_record" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_load_buffered_record")); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_buffer_future_record( mbedtls_ssl_context *ssl, - mbedtls_record const *rec ) +static int ssl_buffer_future_record(mbedtls_ssl_context *ssl, + mbedtls_record const *rec) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; /* Don't buffer future records outside handshakes. */ - if( hs == NULL ) - return( 0 ); + if (hs == NULL) { + return 0; + } /* Only buffer handshake records (we are only interested * in Finished messages). */ - if( rec->type != MBEDTLS_SSL_MSG_HANDSHAKE ) - return( 0 ); + if (rec->type != MBEDTLS_SSL_MSG_HANDSHAKE) { + return 0; + } /* Don't buffer more than one future epoch record. */ - if( hs->buffering.future_record.data != NULL ) - return( 0 ); + if (hs->buffering.future_record.data != NULL) { + return 0; + } /* Don't buffer record if there's not enough buffering space remaining. */ - if( rec->buf_len > ( MBEDTLS_SSL_DTLS_MAX_BUFFERING - - hs->buffering.total_bytes_buffered ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffering of future epoch record of size %" MBEDTLS_PRINTF_SIZET - " would exceed the compile-time limit %" MBEDTLS_PRINTF_SIZET - " (already %" MBEDTLS_PRINTF_SIZET - " bytes buffered) -- ignore\n", - rec->buf_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, - hs->buffering.total_bytes_buffered ) ); - return( 0 ); + if (rec->buf_len > (MBEDTLS_SSL_DTLS_MAX_BUFFERING - + hs->buffering.total_bytes_buffered)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("Buffering of future epoch record of size %" MBEDTLS_PRINTF_SIZET + " would exceed the compile-time limit %" MBEDTLS_PRINTF_SIZET + " (already %" MBEDTLS_PRINTF_SIZET + " bytes buffered) -- ignore\n", + rec->buf_len, (size_t) MBEDTLS_SSL_DTLS_MAX_BUFFERING, + hs->buffering.total_bytes_buffered)); + return 0; } /* Buffer record */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Buffer record from epoch %u", - ssl->in_epoch + 1U ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Buffered record", rec->buf, rec->buf_len ); + MBEDTLS_SSL_DEBUG_MSG(2, ("Buffer record from epoch %u", + ssl->in_epoch + 1U)); + MBEDTLS_SSL_DEBUG_BUF(3, "Buffered record", rec->buf, rec->buf_len); /* ssl_parse_record_header() only considers records * of the next epoch as candidates for buffering. */ @@ -4647,24 +4498,23 @@ static int ssl_buffer_future_record( mbedtls_ssl_context *ssl, hs->buffering.future_record.len = rec->buf_len; hs->buffering.future_record.data = - mbedtls_calloc( 1, hs->buffering.future_record.len ); - if( hs->buffering.future_record.data == NULL ) - { + mbedtls_calloc(1, hs->buffering.future_record.len); + if (hs->buffering.future_record.data == NULL) { /* If we run out of RAM trying to buffer a * record from the next epoch, just ignore. */ - return( 0 ); + return 0; } - memcpy( hs->buffering.future_record.data, rec->buf, rec->buf_len ); + memcpy(hs->buffering.future_record.data, rec->buf, rec->buf_len); hs->buffering.total_bytes_buffered += rec->buf_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_next_record( mbedtls_ssl_context *ssl ) +static int ssl_get_next_record(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_record rec; @@ -4676,44 +4526,41 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) * the length of the buffered record, so that * the calls to ssl_fetch_input() below will * essentially be no-ops. */ - ret = ssl_load_buffered_record( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_load_buffered_record(ssl); + if (ret != 0) { + return ret; + } #endif /* MBEDTLS_SSL_PROTO_DTLS */ /* Ensure that we have enough space available for the default form * of TLS / DTLS record headers (5 Bytes for TLS, 13 Bytes for DTLS, * with no space for CIDs counted in). */ - ret = mbedtls_ssl_fetch_input( ssl, mbedtls_ssl_in_hdr_len( ssl ) ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_fetch_input", ret ); - return( ret ); + ret = mbedtls_ssl_fetch_input(ssl, mbedtls_ssl_in_hdr_len(ssl)); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_fetch_input", ret); + return ret; } - ret = ssl_parse_record_header( ssl, ssl->in_hdr, ssl->in_left, &rec ); - if( ret != 0 ) - { + ret = ssl_parse_record_header(ssl, ssl->in_hdr, ssl->in_left, &rec); + if (ret != 0) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE ) - { - ret = ssl_buffer_future_record( ssl, &rec ); - if( ret != 0 ) - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if (ret == MBEDTLS_ERR_SSL_EARLY_MESSAGE) { + ret = ssl_buffer_future_record(ssl, &rec); + if (ret != 0) { + return ret; + } /* Fall through to handling of unexpected records */ ret = MBEDTLS_ERR_SSL_UNEXPECTED_RECORD; } - if( ret == MBEDTLS_ERR_SSL_UNEXPECTED_RECORD ) - { + if (ret == MBEDTLS_ERR_SSL_UNEXPECTED_RECORD) { #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && defined(MBEDTLS_SSL_SRV_C) /* Reset in pointers to default state for TLS/DTLS records, * assuming no CID and no offset between record content and * record plaintext. */ - mbedtls_ssl_update_in_pointers( ssl ); + mbedtls_ssl_update_in_pointers(ssl); /* Setup internal message pointers from record structure. */ ssl->in_msgtype = rec.type; @@ -4723,59 +4570,53 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) ssl->in_iv = ssl->in_msg = ssl->in_len + 2; ssl->in_msglen = rec.data_len; - ret = ssl_check_client_reconnect( ssl ); - MBEDTLS_SSL_DEBUG_RET( 2, "ssl_check_client_reconnect", ret ); - if( ret != 0 ) - return( ret ); + ret = ssl_check_client_reconnect(ssl); + MBEDTLS_SSL_DEBUG_RET(2, "ssl_check_client_reconnect", ret); + if (ret != 0) { + return ret; + } #endif /* Skip unexpected record (but not whole datagram) */ ssl->next_record_offset = rec.buf_len; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "discarding unexpected record " - "(header)" ) ); - } - else - { + MBEDTLS_SSL_DEBUG_MSG(1, ("discarding unexpected record " + "(header)")); + } else { /* Skip invalid record and the rest of the datagram */ ssl->next_record_offset = 0; ssl->in_left = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "discarding invalid record " - "(header)" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("discarding invalid record " + "(header)")); } /* Get next record */ - return( MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ); - } - else + return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; + } else #endif { - return( ret ); + return ret; } } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Remember offset of next record within datagram. */ ssl->next_record_offset = rec.buf_len; - if( ssl->next_record_offset < ssl->in_left ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "more than one record within datagram" ) ); + if (ssl->next_record_offset < ssl->in_left) { + MBEDTLS_SSL_DEBUG_MSG(3, ("more than one record within datagram")); } - } - else + } else #endif { /* * Fetch record contents from underlying transport. */ - ret = mbedtls_ssl_fetch_input( ssl, rec.buf_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_fetch_input", ret ); - return( ret ); + ret = mbedtls_ssl_fetch_input(ssl, rec.buf_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_fetch_input", ret); + return ret; } ssl->in_left = 0; @@ -4785,36 +4626,30 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) * Decrypt record contents. */ - if( ( ret = ssl_prepare_record_content( ssl, &rec ) ) != 0 ) - { + if ((ret = ssl_prepare_record_content(ssl, &rec)) != 0) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Silently discard invalid records */ - if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) - { + if (ret == MBEDTLS_ERR_SSL_INVALID_MAC) { /* Except when waiting for Finished as a bad mac here * probably means something went wrong in the handshake * (eg wrong psk used, mitm downgrade attempt, etc.) */ - if( ssl->state == MBEDTLS_SSL_CLIENT_FINISHED || - ssl->state == MBEDTLS_SSL_SERVER_FINISHED ) - { + if (ssl->state == MBEDTLS_SSL_CLIENT_FINISHED || + ssl->state == MBEDTLS_SSL_SERVER_FINISHED) { #if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) - if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) - { - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC ); + if (ret == MBEDTLS_ERR_SSL_INVALID_MAC) { + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC); } #endif - return( ret ); + return ret; } - if( ssl->conf->badmac_limit != 0 && - ++ssl->badmac_seen >= ssl->conf->badmac_limit ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "too many records with bad MAC" ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + if (ssl->conf->badmac_limit != 0 && + ++ssl->badmac_seen >= ssl->conf->badmac_limit) { + MBEDTLS_SSL_DEBUG_MSG(1, ("too many records with bad MAC")); + return MBEDTLS_ERR_SSL_INVALID_MAC; } /* As above, invalid records cause @@ -4823,25 +4658,23 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) ssl->next_record_offset = 0; ssl->in_left = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "discarding invalid record (mac)" ) ); - return( MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ); + MBEDTLS_SSL_DEBUG_MSG(1, ("discarding invalid record (mac)")); + return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; } - return( ret ); - } - else + return ret; + } else #endif { /* Error out (and send alert) on invalid records */ #if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) - if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) - { - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC ); + if (ret == MBEDTLS_ERR_SSL_INVALID_MAC) { + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC); } #endif - return( ret ); + return ret; } } @@ -4849,7 +4682,7 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) /* Reset in pointers to default state for TLS/DTLS records, * assuming no CID and no offset between record content and * record plaintext. */ - mbedtls_ssl_update_in_pointers( ssl ); + mbedtls_ssl_update_in_pointers(ssl); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ssl->in_len = ssl->in_cid + rec.cid_len; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -4865,113 +4698,100 @@ static int ssl_get_next_record( mbedtls_ssl_context *ssl ) ssl->in_hdr[0] = rec.type; ssl->in_msg = rec.buf + rec.data_offset; ssl->in_msglen = rec.data_len; - MBEDTLS_PUT_UINT16_BE( rec.data_len, ssl->in_len, 0 ); + MBEDTLS_PUT_UINT16_BE(rec.data_len, ssl->in_len, 0); - return( 0 ); + return 0; } -int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handle_message_type(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* * Handle particular types of records */ - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE ) - { - if( ( ret = mbedtls_ssl_prepare_handshake_record( ssl ) ) != 0 ) - { - return( ret ); + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE) { + if ((ret = mbedtls_ssl_prepare_handshake_record(ssl)) != 0) { + return ret; } } - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC ) - { - if( ssl->in_msglen != 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid CCS message, len: %" MBEDTLS_PRINTF_SIZET, - ssl->in_msglen ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC) { + if (ssl->in_msglen != 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid CCS message, len: %" MBEDTLS_PRINTF_SIZET, + ssl->in_msglen)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - if( ssl->in_msg[0] != 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid CCS message, content: %02x", - ssl->in_msg[0] ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + if (ssl->in_msg[0] != 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid CCS message, content: %02x", + ssl->in_msg[0])); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && ssl->state != MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC && - ssl->state != MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC ) - { - if( ssl->handshake == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "dropping ChangeCipherSpec outside handshake" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_RECORD ); + ssl->state != MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC) { + if (ssl->handshake == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("dropping ChangeCipherSpec outside handshake")); + return MBEDTLS_ERR_SSL_UNEXPECTED_RECORD; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "received out-of-order ChangeCipherSpec - remember" ) ); - return( MBEDTLS_ERR_SSL_EARLY_MESSAGE ); + MBEDTLS_SSL_DEBUG_MSG(1, ("received out-of-order ChangeCipherSpec - remember")); + return MBEDTLS_ERR_SSL_EARLY_MESSAGE; } #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "Ignore ChangeCipherSpec in TLS 1.3 compatibility mode" ) ); - return( MBEDTLS_ERR_SSL_CONTINUE_PROCESSING ); + MBEDTLS_SSL_DEBUG_MSG(1, + ("Ignore ChangeCipherSpec in TLS 1.3 compatibility mode")); + return MBEDTLS_ERR_SSL_CONTINUE_PROCESSING; #else - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "ChangeCipherSpec invalid in TLS 1.3 without compatibility mode" ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + MBEDTLS_SSL_DEBUG_MSG(1, + ("ChangeCipherSpec invalid in TLS 1.3 without compatibility mode")); + return MBEDTLS_ERR_SSL_INVALID_RECORD; #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ } - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_ALERT ) - { - if( ssl->in_msglen != 2 ) - { + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_ALERT) { + if (ssl->in_msglen != 2) { /* Note: Standard allows for more than one 2 byte alert to be packed in a single message, but Mbed TLS doesn't currently support this. */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid alert message, len: %" MBEDTLS_PRINTF_SIZET, - ssl->in_msglen ) ); - return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid alert message, len: %" MBEDTLS_PRINTF_SIZET, + ssl->in_msglen)); + return MBEDTLS_ERR_SSL_INVALID_RECORD; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "got an alert message, type: [%u:%u]", - ssl->in_msg[0], ssl->in_msg[1] ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("got an alert message, type: [%u:%u]", + ssl->in_msg[0], ssl->in_msg[1])); /* * Ignore non-fatal alerts, except close_notify and no_renegotiation */ - if( ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_FATAL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "is a fatal alert message (msg %d)", - ssl->in_msg[1] ) ); - return( MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE ); + if (ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_FATAL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("is a fatal alert message (msg %d)", + ssl->in_msg[1])); + return MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE; } - if( ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_WARNING && - ssl->in_msg[1] == MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "is a close notify message" ) ); - return( MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY ); + if (ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_WARNING && + ssl->in_msg[1] == MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY) { + MBEDTLS_SSL_DEBUG_MSG(2, ("is a close notify message")); + return MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY; } #if defined(MBEDTLS_SSL_RENEGOTIATION_ENABLED) - if( ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_WARNING && - ssl->in_msg[1] == MBEDTLS_SSL_ALERT_MSG_NO_RENEGOTIATION ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "is a no renegotiation alert" ) ); + if (ssl->in_msg[0] == MBEDTLS_SSL_ALERT_LEVEL_WARNING && + ssl->in_msg[1] == MBEDTLS_SSL_ALERT_MSG_NO_RENEGOTIATION) { + MBEDTLS_SSL_DEBUG_MSG(2, ("is a no renegotiation alert")); /* Will be handled when trying to parse ServerHello */ - return( 0 ); + return 0; } #endif /* Silently ignore: fetch new message */ @@ -4979,75 +4799,73 @@ int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl ) } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Drop unexpected ApplicationData records, * except at the beginning of renegotiations */ - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA && - mbedtls_ssl_is_handshake_over( ssl ) == 0 + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA && + mbedtls_ssl_is_handshake_over(ssl) == 0 #if defined(MBEDTLS_SSL_RENEGOTIATION) - && ! ( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && - ssl->state == MBEDTLS_SSL_SERVER_HELLO ) + && !(ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + ssl->state == MBEDTLS_SSL_SERVER_HELLO) #endif - ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "dropping unexpected ApplicationData" ) ); - return( MBEDTLS_ERR_SSL_NON_FATAL ); + ) { + MBEDTLS_SSL_DEBUG_MSG(1, ("dropping unexpected ApplicationData")); + return MBEDTLS_ERR_SSL_NON_FATAL; } - if( ssl->handshake != NULL && - mbedtls_ssl_is_handshake_over( ssl ) == 1 ) - { - mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); + if (ssl->handshake != NULL && + mbedtls_ssl_is_handshake_over(ssl) == 1) { + mbedtls_ssl_handshake_wrapup_free_hs_transform(ssl); } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - return( 0 ); + return 0; } -int mbedtls_ssl_send_fatal_handshake_failure( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_send_fatal_handshake_failure(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ) ); + return mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); } -int mbedtls_ssl_send_alert_message( mbedtls_ssl_context *ssl, - unsigned char level, - unsigned char message ) +int mbedtls_ssl_send_alert_message(mbedtls_ssl_context *ssl, + unsigned char level, + unsigned char message) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( ssl->out_left != 0 ) - return( mbedtls_ssl_flush_output( ssl ) ); + if (ssl->out_left != 0) { + return mbedtls_ssl_flush_output(ssl); + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> send alert message" ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "send alert level=%u message=%u", level, message )); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> send alert message")); + MBEDTLS_SSL_DEBUG_MSG(3, ("send alert level=%u message=%u", level, message)); ssl->out_msgtype = MBEDTLS_SSL_MSG_ALERT; ssl->out_msglen = 2; ssl->out_msg[0] = level; ssl->out_msg[1] = message; - if( ( ret = mbedtls_ssl_write_record( ssl, SSL_FORCE_FLUSH ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_record(ssl, SSL_FORCE_FLUSH)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_record", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= send alert message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= send alert message")); - return( 0 ); + return 0; } -int mbedtls_ssl_write_change_cipher_spec( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_change_cipher_spec(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write change cipher spec" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write change cipher spec")); ssl->out_msgtype = MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC; ssl->out_msglen = 1; @@ -5055,35 +4873,32 @@ int mbedtls_ssl_write_change_cipher_spec( mbedtls_ssl_context *ssl ) ssl->state++; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write change cipher spec" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write change cipher spec")); - return( 0 ); + return 0; } -int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_parse_change_cipher_spec(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse change cipher spec" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse change cipher spec")); - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad change cipher spec message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad change cipher spec message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } /* CCS records are only accepted if they have length 1 and content '1', @@ -5093,39 +4908,36 @@ int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) * Switch to our negotiated transform and session parameters for inbound * data. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "switching to new transform spec for inbound data" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("switching to new transform spec for inbound data")); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) ssl->transform_in = ssl->transform_negotiate; #endif ssl->session_in = ssl->session_negotiate; #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - mbedtls_ssl_dtls_replay_reset( ssl ); + mbedtls_ssl_dtls_replay_reset(ssl); #endif /* Increment epoch */ - if( ++ssl->in_epoch == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DTLS epoch would wrap" ) ); + if (++ssl->in_epoch == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DTLS epoch would wrap")); /* This is highly unlikely to happen for legitimate reasons, so treat it as an attack and don't send an alert. */ - return( MBEDTLS_ERR_SSL_COUNTER_WRAPPING ); + return MBEDTLS_ERR_SSL_COUNTER_WRAPPING; } - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ - memset( ssl->in_ctr, 0, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN ); + memset(ssl->in_ctr, 0, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN); - mbedtls_ssl_update_in_pointers( ssl ); + mbedtls_ssl_update_in_pointers(ssl); ssl->state++; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse change cipher spec" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse change cipher spec")); - return( 0 ); + return 0; } /* Once ssl->out_hdr as the address of the beginning of the @@ -5137,29 +4949,28 @@ int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) */ static size_t ssl_transform_get_explicit_iv_len( - mbedtls_ssl_transform const *transform ) + mbedtls_ssl_transform const *transform) { - return( transform->ivlen - transform->fixed_ivlen ); + return transform->ivlen - transform->fixed_ivlen; } -void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ) +void mbedtls_ssl_update_out_pointers(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->out_ctr = ssl->out_hdr + 3; #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) ssl->out_cid = ssl->out_ctr + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; ssl->out_len = ssl->out_cid; - if( transform != NULL ) + if (transform != NULL) { ssl->out_len += transform->out_cid_len; + } #else /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ ssl->out_len = ssl->out_ctr + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ ssl->out_iv = ssl->out_len + 2; - } - else + } else #endif { ssl->out_len = ssl->out_hdr + 3; @@ -5171,8 +4982,9 @@ void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, ssl->out_msg = ssl->out_iv; /* Adjust out_msg to make space for explicit IV, if used. */ - if( transform != NULL ) - ssl->out_msg += ssl_transform_get_explicit_iv_len( transform ); + if (transform != NULL) { + ssl->out_msg += ssl_transform_get_explicit_iv_len(transform); + } } /* Once ssl->in_hdr as the address of the beginning of the @@ -5183,7 +4995,7 @@ void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, * and the caller has to make sure there's space for this. */ -void mbedtls_ssl_update_in_pointers( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_update_in_pointers(mbedtls_ssl_context *ssl) { /* This function sets the pointers to match the case * of unprotected TLS/DTLS records, with both ssl->in_iv @@ -5196,8 +5008,7 @@ void mbedtls_ssl_update_in_pointers( mbedtls_ssl_context *ssl ) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* This sets the header pointers to match records * without CID. When we receive a record containing * a CID, the fields are shifted accordingly in @@ -5210,8 +5021,7 @@ void mbedtls_ssl_update_in_pointers( mbedtls_ssl_context *ssl ) ssl->in_len = ssl->in_ctr + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ ssl->in_iv = ssl->in_len + 2; - } - else + } else #endif { ssl->in_ctr = ssl->in_hdr - MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; @@ -5230,16 +5040,14 @@ void mbedtls_ssl_update_in_pointers( mbedtls_ssl_context *ssl ) * Setup an SSL context */ -void mbedtls_ssl_reset_in_out_pointers( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_reset_in_out_pointers(mbedtls_ssl_context *ssl) { /* Set the incoming and outgoing record pointers. */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->out_hdr = ssl->out_buf; ssl->in_hdr = ssl->in_buf; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ { ssl->out_ctr = ssl->out_buf; @@ -5248,29 +5056,28 @@ void mbedtls_ssl_reset_in_out_pointers( mbedtls_ssl_context *ssl ) } /* Derive other internal pointers. */ - mbedtls_ssl_update_out_pointers( ssl, NULL /* no transform enabled */ ); - mbedtls_ssl_update_in_pointers ( ssl ); + mbedtls_ssl_update_out_pointers(ssl, NULL /* no transform enabled */); + mbedtls_ssl_update_in_pointers(ssl); } /* * SSL get accessors */ -size_t mbedtls_ssl_get_bytes_avail( const mbedtls_ssl_context *ssl ) +size_t mbedtls_ssl_get_bytes_avail(const mbedtls_ssl_context *ssl) { - return( ssl->in_offt == NULL ? 0 : ssl->in_msglen ); + return ssl->in_offt == NULL ? 0 : ssl->in_msglen; } -int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ) +int mbedtls_ssl_check_pending(const mbedtls_ssl_context *ssl) { /* * Case A: We're currently holding back * a message for further processing. */ - if( ssl->keep_current_message == 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_check_pending: record held back for processing" ) ); - return( 1 ); + if (ssl->keep_current_message == 1) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ssl_check_pending: record held back for processing")); + return 1; } /* @@ -5278,11 +5085,10 @@ int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->in_left > ssl->next_record_offset ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_check_pending: more records within current datagram" ) ); - return( 1 ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->in_left > ssl->next_record_offset) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ssl_check_pending: more records within current datagram")); + return 1; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -5290,19 +5096,18 @@ int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ) * Case C: A handshake message is being processed. */ - if( ssl->in_hslen > 0 && ssl->in_hslen < ssl->in_msglen ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_check_pending: more handshake messages within current record" ) ); - return( 1 ); + if (ssl->in_hslen > 0 && ssl->in_hslen < ssl->in_msglen) { + MBEDTLS_SSL_DEBUG_MSG(3, + ("ssl_check_pending: more handshake messages within current record")); + return 1; } /* * Case D: An application data message is being processed */ - if( ssl->in_offt != NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_check_pending: application data record is being processed" ) ); - return( 1 ); + if (ssl->in_offt != NULL) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ssl_check_pending: application data record is being processed")); + return 1; } /* @@ -5311,12 +5116,12 @@ int mbedtls_ssl_check_pending( const mbedtls_ssl_context *ssl ) * we implement support for multiple alerts in single records. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_check_pending: nothing pending" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ssl_check_pending: nothing pending")); + return 0; } -int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) +int mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *ssl) { size_t transform_expansion = 0; const mbedtls_ssl_transform *transform = ssl->transform_out; @@ -5326,27 +5131,25 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) psa_key_type_t key_type; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - size_t out_hdr_len = mbedtls_ssl_out_hdr_len( ssl ); + size_t out_hdr_len = mbedtls_ssl_out_hdr_len(ssl); - if( transform == NULL ) - return( (int) out_hdr_len ); + if (transform == NULL) { + return (int) out_hdr_len; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( transform->psa_alg == PSA_ALG_GCM || - transform->psa_alg == PSA_ALG_CCM || - transform->psa_alg == PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, 8 ) || - transform->psa_alg == PSA_ALG_CHACHA20_POLY1305 || - transform->psa_alg == MBEDTLS_SSL_NULL_CIPHER ) - { + if (transform->psa_alg == PSA_ALG_GCM || + transform->psa_alg == PSA_ALG_CCM || + transform->psa_alg == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 8) || + transform->psa_alg == PSA_ALG_CHACHA20_POLY1305 || + transform->psa_alg == MBEDTLS_SSL_NULL_CIPHER) { transform_expansion = transform->minlen; - } - else if ( transform->psa_alg == PSA_ALG_CBC_NO_PADDING ) - { - (void) psa_get_key_attributes( transform->psa_key_enc, &attr ); - key_type = psa_get_key_type( &attr ); + } else if (transform->psa_alg == PSA_ALG_CBC_NO_PADDING) { + (void) psa_get_key_attributes(transform->psa_key_enc, &attr); + key_type = psa_get_key_type(&attr); - block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ); + block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type); /* Expansion due to the addition of the MAC. */ transform_expansion += transform->maclen; @@ -5361,15 +5164,13 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) transform_expansion += block_size; #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Unsupported psa_alg spotted in mbedtls_ssl_get_record_expansion()" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, + ("Unsupported psa_alg spotted in mbedtls_ssl_get_record_expansion()")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else - switch( mbedtls_cipher_get_cipher_mode( &transform->cipher_ctx_enc ) ) - { + switch (mbedtls_cipher_get_cipher_mode(&transform->cipher_ctx_enc)) { case MBEDTLS_MODE_GCM: case MBEDTLS_MODE_CCM: case MBEDTLS_MODE_CHACHAPOLY: @@ -5380,7 +5181,7 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) case MBEDTLS_MODE_CBC: block_size = mbedtls_cipher_get_block_size( - &transform->cipher_ctx_enc ); + &transform->cipher_ctx_enc); /* Expansion due to the addition of the MAC. */ transform_expansion += transform->maclen; @@ -5399,17 +5200,18 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) break; default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( transform->out_cid_len != 0 ) + if (transform->out_cid_len != 0) { transform_expansion += MBEDTLS_SSL_MAX_CID_EXPANSION; + } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - return( (int)( out_hdr_len + transform_expansion ) ); + return (int) (out_hdr_len + transform_expansion); } #if defined(MBEDTLS_SSL_RENEGOTIATION) @@ -5417,33 +5219,31 @@ int mbedtls_ssl_get_record_expansion( const mbedtls_ssl_context *ssl ) * Check record counters and renegotiate if they're above the limit. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_ctr_renegotiate( mbedtls_ssl_context *ssl ) +static int ssl_check_ctr_renegotiate(mbedtls_ssl_context *ssl) { - size_t ep_len = mbedtls_ssl_ep_len( ssl ); + size_t ep_len = mbedtls_ssl_ep_len(ssl); int in_ctr_cmp; int out_ctr_cmp; - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 || + if (mbedtls_ssl_is_handshake_over(ssl) == 0 || ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING || - ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED ) - { - return( 0 ); + ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED) { + return 0; } - in_ctr_cmp = memcmp( ssl->in_ctr + ep_len, + in_ctr_cmp = memcmp(ssl->in_ctr + ep_len, + &ssl->conf->renego_period[ep_len], + MBEDTLS_SSL_SEQUENCE_NUMBER_LEN - ep_len); + out_ctr_cmp = memcmp(&ssl->cur_out_ctr[ep_len], &ssl->conf->renego_period[ep_len], - MBEDTLS_SSL_SEQUENCE_NUMBER_LEN - ep_len ); - out_ctr_cmp = memcmp( &ssl->cur_out_ctr[ep_len], - &ssl->conf->renego_period[ep_len], - sizeof( ssl->cur_out_ctr ) - ep_len ); + sizeof(ssl->cur_out_ctr) - ep_len); - if( in_ctr_cmp <= 0 && out_ctr_cmp <= 0 ) - { - return( 0 ); + if (in_ctr_cmp <= 0 && out_ctr_cmp <= 0) { + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "record counter limit reached: renegotiate" ) ); - return( mbedtls_ssl_renegotiate( ssl ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("record counter limit reached: renegotiate")); + return mbedtls_ssl_renegotiate(ssl); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ @@ -5451,42 +5251,41 @@ static int ssl_check_ctr_renegotiate( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_check_new_session_ticket( mbedtls_ssl_context *ssl ) +static int ssl_tls13_check_new_session_ticket(mbedtls_ssl_context *ssl) { - if( ( ssl->in_hslen == mbedtls_ssl_hs_hdr_len( ssl ) ) || - ( ssl->in_msg[0] != MBEDTLS_SSL_HS_NEW_SESSION_TICKET ) ) - { - return( 0 ); + if ((ssl->in_hslen == mbedtls_ssl_hs_hdr_len(ssl)) || + (ssl->in_msg[0] != MBEDTLS_SSL_HS_NEW_SESSION_TICKET)) { + return 0; } ssl->keep_current_message = 1; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "NewSessionTicket received" ) ); - mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); + MBEDTLS_SSL_DEBUG_MSG(3, ("NewSessionTicket received")); + mbedtls_ssl_handshake_set_state(ssl, + MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); - return( MBEDTLS_ERR_SSL_WANT_READ ); + return MBEDTLS_ERR_SSL_WANT_READ; } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_handle_hs_message_post_handshake( mbedtls_ssl_context *ssl ) +static int ssl_tls13_handle_hs_message_post_handshake(mbedtls_ssl_context *ssl) { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "received post-handshake message" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("received post-handshake message")); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - int ret = ssl_tls13_check_new_session_ticket( ssl ); - if( ret != 0 ) - return( ret ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { + int ret = ssl_tls13_check_new_session_ticket(ssl); + if (ret != 0) { + return ret; + } } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ /* Fail in all other cases. */ - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -5501,7 +5300,7 @@ static int ssl_tls13_handle_hs_message_post_handshake( mbedtls_ssl_context *ssl * TLS 1.3 in the future without bloating the logic of mbedtls_ssl_read(). */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls12_handle_hs_message_post_handshake( mbedtls_ssl_context *ssl ) +static int ssl_tls12_handle_hs_message_post_handshake(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -5512,135 +5311,125 @@ static int ssl_tls12_handle_hs_message_post_handshake( mbedtls_ssl_context *ssl */ #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && - ( ssl->in_msg[0] != MBEDTLS_SSL_HS_HELLO_REQUEST || - ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "handshake received (not HelloRequest)" ) ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && + (ssl->in_msg[0] != MBEDTLS_SSL_HS_HELLO_REQUEST || + ssl->in_hslen != mbedtls_ssl_hs_hdr_len(ssl))) { + MBEDTLS_SSL_DEBUG_MSG(1, ("handshake received (not HelloRequest)")); /* With DTLS, drop the packet (probably from last handshake) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - return( 0 ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 0; } #endif - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "handshake received (not ClientHello)" ) ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && + ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_HELLO) { + MBEDTLS_SSL_DEBUG_MSG(1, ("handshake received (not ClientHello)")); /* With DTLS, drop the packet (probably from last handshake) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - return( 0 ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 0; } #endif - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_RENEGOTIATION) /* Determine whether renegotiation attempt should be accepted */ - if( ! ( ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED || - ( ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == - MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION ) ) ) - { + if (!(ssl->conf->disable_renegotiation == MBEDTLS_SSL_RENEGOTIATION_DISABLED || + (ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + ssl->conf->allow_legacy_renegotiation == + MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION))) { /* * Accept renegotiation request */ /* DTLS clients need to know renego is server-initiated */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_PENDING; } #endif - ret = mbedtls_ssl_start_renegotiation( ssl ); - if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && - ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_start_renegotiation", - ret ); - return( ret ); + ret = mbedtls_ssl_start_renegotiation(ssl); + if (ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && + ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_start_renegotiation", + ret); + return ret; } - } - else + } else #endif /* MBEDTLS_SSL_RENEGOTIATION */ { /* * Refuse renegotiation */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "refusing renegotiation, sending alert" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("refusing renegotiation, sending alert")); - if( ( ret = mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_WARNING, - MBEDTLS_SSL_ALERT_MSG_NO_RENEGOTIATION ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_WARNING, + MBEDTLS_SSL_ALERT_MSG_NO_RENEGOTIATION)) != 0) { + return ret; } } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_handle_hs_message_post_handshake( mbedtls_ssl_context *ssl ) +static int ssl_handle_hs_message_post_handshake(mbedtls_ssl_context *ssl) { /* Check protocol version and dispatch accordingly. */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - return( ssl_tls13_handle_hs_message_post_handshake( ssl ) ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + return ssl_tls13_handle_hs_message_post_handshake(ssl); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version <= MBEDTLS_SSL_VERSION_TLS1_2 ) - { - return( ssl_tls12_handle_hs_message_post_handshake( ssl ) ); + if (ssl->tls_version <= MBEDTLS_SSL_VERSION_TLS1_2) { + return ssl_tls12_handle_hs_message_post_handshake(ssl); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ /* Should never happen */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* * Receive application data decrypted from the SSL layer */ -int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) +int mbedtls_ssl_read(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> read" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> read")); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + return ret; + } - if( ssl->handshake != NULL && - ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING ) - { - if( ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - return( ret ); + if (ssl->handshake != NULL && + ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING) { + if ((ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + return ret; + } } } #endif @@ -5658,69 +5447,61 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - ret = ssl_check_ctr_renegotiate( ssl ); - if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && - ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_check_ctr_renegotiate", ret ); - return( ret ); + ret = ssl_check_ctr_renegotiate(ssl); + if (ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && + ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_check_ctr_renegotiate", ret); + return ret; } #endif - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) - { - ret = mbedtls_ssl_handshake( ssl ); - if( ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && - ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_handshake", ret ); - return( ret ); + if (ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER) { + ret = mbedtls_ssl_handshake(ssl); + if (ret != MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO && + ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_handshake", ret); + return ret; } } /* Loop as long as no application data record is available */ - while( ssl->in_offt == NULL ) - { + while (ssl->in_offt == NULL) { /* Start timer if not already running */ - if( ssl->f_get_timer != NULL && - ssl->f_get_timer( ssl->p_timer ) == -1 ) - { - mbedtls_ssl_set_timer( ssl, ssl->conf->read_timeout ); + if (ssl->f_get_timer != NULL && + ssl->f_get_timer(ssl->p_timer) == -1) { + mbedtls_ssl_set_timer(ssl, ssl->conf->read_timeout); } - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_SSL_CONN_EOF ) - return( 0 ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + if (ret == MBEDTLS_ERR_SSL_CONN_EOF) { + return 0; + } - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msglen == 0 && - ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA ) - { + if (ssl->in_msglen == 0 && + ssl->in_msgtype == MBEDTLS_SSL_MSG_APPLICATION_DATA) { /* * OpenSSL sends empty messages to randomize the IV */ - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_SSL_CONN_EOF ) - return( 0 ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + if (ret == MBEDTLS_ERR_SSL_CONN_EOF) { + return 0; + } - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } } - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE ) - { - ret = ssl_handle_hs_message_post_handshake( ssl ); - if( ret != 0) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_handle_hs_message_post_handshake", - ret ); - return( ret ); + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE) { + ret = ssl_handle_hs_message_post_handshake(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_handle_hs_message_post_handshake", + ret); + return ret; } /* At this point, we don't know whether the renegotiation triggered @@ -5747,84 +5528,75 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) continue; } #if defined(MBEDTLS_SSL_RENEGOTIATION) - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING ) - { - if( ssl->conf->renego_max_records >= 0 ) - { - if( ++ssl->renego_records_seen > ssl->conf->renego_max_records ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation requested, " - "but not honored by client" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING) { + if (ssl->conf->renego_max_records >= 0) { + if (++ssl->renego_records_seen > ssl->conf->renego_max_records) { + MBEDTLS_SSL_DEBUG_MSG(1, ("renegotiation requested, " + "but not honored by client")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } } } #endif /* MBEDTLS_SSL_RENEGOTIATION */ /* Fatal and closure alerts handled by mbedtls_ssl_read_record() */ - if( ssl->in_msgtype == MBEDTLS_SSL_MSG_ALERT ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ignoring non-fatal non-closure alert" ) ); - return( MBEDTLS_ERR_SSL_WANT_READ ); + if (ssl->in_msgtype == MBEDTLS_SSL_MSG_ALERT) { + MBEDTLS_SSL_DEBUG_MSG(2, ("ignoring non-fatal non-closure alert")); + return MBEDTLS_ERR_SSL_WANT_READ; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_APPLICATION_DATA ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad application data message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_APPLICATION_DATA) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad application data message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } ssl->in_offt = ssl->in_msg; /* We're going to return something now, cancel timer, * except if handshake (renegotiation) is in progress */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) - mbedtls_ssl_set_timer( ssl, 0 ); + if (mbedtls_ssl_is_handshake_over(ssl) == 1) { + mbedtls_ssl_set_timer(ssl, 0); + } #if defined(MBEDTLS_SSL_PROTO_DTLS) /* If we requested renego but received AppData, resend HelloRequest. * Do it now, after setting in_offt, to avoid taking this branch * again if ssl_write_hello_request() returns WANT_WRITE */ #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && - ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING ) - { - if( ( ret = mbedtls_ssl_resend_hello_request( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_resend_hello_request", - ret ); - return( ret ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER && + ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING) { + if ((ret = mbedtls_ssl_resend_hello_request(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_resend_hello_request", + ret); + return ret; } } #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_RENEGOTIATION */ #endif /* MBEDTLS_SSL_PROTO_DTLS */ } - n = ( len < ssl->in_msglen ) + n = (len < ssl->in_msglen) ? len : ssl->in_msglen; - memcpy( buf, ssl->in_offt, n ); + memcpy(buf, ssl->in_offt, n); ssl->in_msglen -= n; /* Zeroising the plaintext buffer to erase unused application data from the memory. */ - mbedtls_platform_zeroize( ssl->in_offt, n ); + mbedtls_platform_zeroize(ssl->in_offt, n); - if( ssl->in_msglen == 0 ) - { + if (ssl->in_msglen == 0) { /* all bytes consumed */ ssl->in_offt = NULL; ssl->keep_current_message = 0; - } - else - { + } else { /* more data available */ ssl->in_offt += n; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= read" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= read")); - return( (int) n ); + return (int) n; } /* @@ -5840,50 +5612,42 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) * corresponding return code is 0 on success. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_real( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static int ssl_write_real(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { - int ret = mbedtls_ssl_get_max_out_record_payload( ssl ); + int ret = mbedtls_ssl_get_max_out_record_payload(ssl); const size_t max_len = (size_t) ret; - if( ret < 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_get_max_out_record_payload", ret ); - return( ret ); + if (ret < 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_get_max_out_record_payload", ret); + return ret; } - if( len > max_len ) - { + if (len > max_len) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "fragment larger than the (negotiated) " - "maximum fragment length: %" MBEDTLS_PRINTF_SIZET - " > %" MBEDTLS_PRINTF_SIZET, - len, max_len ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } - else + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + MBEDTLS_SSL_DEBUG_MSG(1, ("fragment larger than the (negotiated) " + "maximum fragment length: %" MBEDTLS_PRINTF_SIZET + " > %" MBEDTLS_PRINTF_SIZET, + len, max_len)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } else #endif - len = max_len; + len = max_len; } - if( ssl->out_left != 0 ) - { + if (ssl->out_left != 0) { /* * The user has previously tried to send the data and * MBEDTLS_ERR_SSL_WANT_WRITE or the message was only partially * written. In this case, we expect the high-level write function * (e.g. mbedtls_ssl_write()) to be called with the same parameters */ - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flush_output", ret ); - return( ret ); + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flush_output", ret); + return ret; } - } - else - { + } else { /* * The user is trying to send a message the first time, so we need to * copy the data into the internal buffers and setup the data structure @@ -5891,153 +5655,152 @@ static int ssl_write_real( mbedtls_ssl_context *ssl, */ ssl->out_msglen = len; ssl->out_msgtype = MBEDTLS_SSL_MSG_APPLICATION_DATA; - memcpy( ssl->out_msg, buf, len ); + memcpy(ssl->out_msg, buf, len); - if( ( ret = mbedtls_ssl_write_record( ssl, SSL_FORCE_FLUSH ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_record(ssl, SSL_FORCE_FLUSH)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_record", ret); + return ret; } } - return( (int) len ); + return (int) len; } /* * Write application data (public-facing wrapper) */ -int mbedtls_ssl_write( mbedtls_ssl_context *ssl, const unsigned char *buf, size_t len ) +int mbedtls_ssl_write(mbedtls_ssl_context *ssl, const unsigned char *buf, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write")); - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ( ret = ssl_check_ctr_renegotiate( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_check_ctr_renegotiate", ret ); - return( ret ); + if ((ret = ssl_check_ctr_renegotiate(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_check_ctr_renegotiate", ret); + return ret; } #endif - if( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) - { - if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_handshake", ret ); - return( ret ); + if (ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER) { + if ((ret = mbedtls_ssl_handshake(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_handshake", ret); + return ret; } } - ret = ssl_write_real( ssl, buf, len ); + ret = ssl_write_real(ssl, buf, len); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write")); - return( ret ); + return ret; } /* * Notify the peer that the connection is being closed */ -int mbedtls_ssl_close_notify( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_close_notify(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write close notify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write close notify")); - if( mbedtls_ssl_is_handshake_over( ssl ) == 1 ) - { - if( ( ret = mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_WARNING, - MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_send_alert_message", ret ); - return( ret ); + if (mbedtls_ssl_is_handshake_over(ssl) == 1) { + if ((ret = mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_WARNING, + MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_send_alert_message", ret); + return ret; } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write close notify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write close notify")); - return( 0 ); + return 0; } -void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform ) +void mbedtls_ssl_transform_free(mbedtls_ssl_transform *transform) { - if( transform == NULL ) + if (transform == NULL) { return; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( transform->psa_key_enc ); - psa_destroy_key( transform->psa_key_dec ); + psa_destroy_key(transform->psa_key_enc); + psa_destroy_key(transform->psa_key_dec); #else - mbedtls_cipher_free( &transform->cipher_ctx_enc ); - mbedtls_cipher_free( &transform->cipher_ctx_dec ); + mbedtls_cipher_free(&transform->cipher_ctx_enc); + mbedtls_cipher_free(&transform->cipher_ctx_dec); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( transform->psa_mac_enc ); - psa_destroy_key( transform->psa_mac_dec ); + psa_destroy_key(transform->psa_mac_enc); + psa_destroy_key(transform->psa_mac_dec); #else - mbedtls_md_free( &transform->md_ctx_enc ); - mbedtls_md_free( &transform->md_ctx_dec ); + mbedtls_md_free(&transform->md_ctx_enc); + mbedtls_md_free(&transform->md_ctx_dec); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif - mbedtls_platform_zeroize( transform, sizeof( mbedtls_ssl_transform ) ); + mbedtls_platform_zeroize(transform, sizeof(mbedtls_ssl_transform)); } -void mbedtls_ssl_set_inbound_transform( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ) +void mbedtls_ssl_set_inbound_transform(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform) { ssl->transform_in = transform; - memset( ssl->in_ctr, 0, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN ); + memset(ssl->in_ctr, 0, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN); } -void mbedtls_ssl_set_outbound_transform( mbedtls_ssl_context *ssl, - mbedtls_ssl_transform *transform ) +void mbedtls_ssl_set_outbound_transform(mbedtls_ssl_context *ssl, + mbedtls_ssl_transform *transform) { ssl->transform_out = transform; - memset( ssl->cur_out_ctr, 0, sizeof( ssl->cur_out_ctr ) ); + memset(ssl->cur_out_ctr, 0, sizeof(ssl->cur_out_ctr)); } #if defined(MBEDTLS_SSL_PROTO_DTLS) -void mbedtls_ssl_buffering_free( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_buffering_free(mbedtls_ssl_context *ssl) { unsigned offset; mbedtls_ssl_handshake_params * const hs = ssl->handshake; - if( hs == NULL ) + if (hs == NULL) { return; + } - ssl_free_buffered_record( ssl ); + ssl_free_buffered_record(ssl); - for( offset = 0; offset < MBEDTLS_SSL_MAX_BUFFERED_HS; offset++ ) - ssl_buffering_free_slot( ssl, offset ); + for (offset = 0; offset < MBEDTLS_SSL_MAX_BUFFERED_HS; offset++) { + ssl_buffering_free_slot(ssl, offset); + } } -static void ssl_buffering_free_slot( mbedtls_ssl_context *ssl, - uint8_t slot ) +static void ssl_buffering_free_slot(mbedtls_ssl_context *ssl, + uint8_t slot) { mbedtls_ssl_handshake_params * const hs = ssl->handshake; mbedtls_ssl_hs_buffer * const hs_buf = &hs->buffering.hs[slot]; - if( slot >= MBEDTLS_SSL_MAX_BUFFERED_HS ) + if (slot >= MBEDTLS_SSL_MAX_BUFFERED_HS) { return; + } - if( hs_buf->is_valid == 1 ) - { + if (hs_buf->is_valid == 1) { hs->buffering.total_bytes_buffered -= hs_buf->data_len; - mbedtls_platform_zeroize( hs_buf->data, hs_buf->data_len ); - mbedtls_free( hs_buf->data ); - memset( hs_buf, 0, sizeof( mbedtls_ssl_hs_buffer ) ); + mbedtls_platform_zeroize(hs_buf->data, hs_buf->data_len); + mbedtls_free(hs_buf->data); + memset(hs_buf, 0, sizeof(mbedtls_ssl_hs_buffer)); } } @@ -6052,27 +5815,29 @@ static void ssl_buffering_free_slot( mbedtls_ssl_context *ssl, * 1.x <-> 3.x+1 for x != 0 (DTLS 1.2 based on TLS 1.2) * DTLS 1.0 is stored as TLS 1.1 internally */ -void mbedtls_ssl_write_version( unsigned char version[2], int transport, - mbedtls_ssl_protocol_version tls_version ) +void mbedtls_ssl_write_version(unsigned char version[2], int transport, + mbedtls_ssl_protocol_version tls_version) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) + if (transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { tls_version = - ~( tls_version - ( tls_version == 0x0302 ? 0x0202 : 0x0201 ) ); + ~(tls_version - (tls_version == 0x0302 ? 0x0202 : 0x0201)); + } #else ((void) transport); #endif - MBEDTLS_PUT_UINT16_BE( tls_version, version, 0 ); + MBEDTLS_PUT_UINT16_BE(tls_version, version, 0); } -uint16_t mbedtls_ssl_read_version( const unsigned char version[2], - int transport ) +uint16_t mbedtls_ssl_read_version(const unsigned char version[2], + int transport) { - uint16_t tls_version = MBEDTLS_GET_UINT16_BE( version, 0 ); + uint16_t tls_version = MBEDTLS_GET_UINT16_BE(version, 0); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) + if (transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { tls_version = - ~( tls_version - ( tls_version == 0xfeff ? 0x0202 : 0x0201 ) ); + ~(tls_version - (tls_version == 0xfeff ? 0x0202 : 0x0201)); + } #else ((void) transport); #endif @@ -6085,38 +5850,39 @@ uint16_t mbedtls_ssl_read_version( const unsigned char version[2], * !0, if mbedtls_ssl_send_alert_message() returned in error, the error code it * returned, ssl->alert_reason otherwise. */ -int mbedtls_ssl_handle_pending_alert( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handle_pending_alert(mbedtls_ssl_context *ssl) { int ret; /* No pending alert, return success*/ - if( ssl->send_alert == 0 ) - return( 0 ); + if (ssl->send_alert == 0) { + return 0; + } - ret = mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - ssl->alert_type ); + ret = mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + ssl->alert_type); /* If mbedtls_ssl_send_alert_message() returned with MBEDTLS_ERR_SSL_WANT_WRITE, * do not clear the alert to be able to send it later. */ - if( ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + if (ret != MBEDTLS_ERR_SSL_WANT_WRITE) { ssl->send_alert = 0; } - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } - return( ssl->alert_reason ); + return ssl->alert_reason; } /* * Set pending fatal alert flag. */ -void mbedtls_ssl_pend_fatal_alert( mbedtls_ssl_context *ssl, - unsigned char alert_type, - int alert_reason ) +void mbedtls_ssl_pend_fatal_alert(mbedtls_ssl_context *ssl, + unsigned char alert_type, + int alert_reason) { ssl->send_alert = 1; ssl->alert_type = alert_type; diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c index e39563bc4..ba9dbd512 100644 --- a/library/ssl_ticket.c +++ b/library/ssl_ticket.c @@ -33,12 +33,12 @@ /* * Initialize context */ -void mbedtls_ssl_ticket_init( mbedtls_ssl_ticket_context *ctx ) +void mbedtls_ssl_ticket_init(mbedtls_ssl_ticket_context *ctx) { - memset( ctx, 0, sizeof( mbedtls_ssl_ticket_context ) ); + memset(ctx, 0, sizeof(mbedtls_ssl_ticket_context)); #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif } @@ -49,23 +49,23 @@ void mbedtls_ssl_ticket_init( mbedtls_ssl_ticket_context *ctx ) #define TICKET_CRYPT_LEN_BYTES 2 #define TICKET_AUTH_TAG_BYTES 16 -#define TICKET_MIN_LEN ( TICKET_KEY_NAME_BYTES + \ - TICKET_IV_BYTES + \ - TICKET_CRYPT_LEN_BYTES + \ - TICKET_AUTH_TAG_BYTES ) -#define TICKET_ADD_DATA_LEN ( TICKET_KEY_NAME_BYTES + \ - TICKET_IV_BYTES + \ - TICKET_CRYPT_LEN_BYTES ) +#define TICKET_MIN_LEN (TICKET_KEY_NAME_BYTES + \ + TICKET_IV_BYTES + \ + TICKET_CRYPT_LEN_BYTES + \ + TICKET_AUTH_TAG_BYTES) +#define TICKET_ADD_DATA_LEN (TICKET_KEY_NAME_BYTES + \ + TICKET_IV_BYTES + \ + TICKET_CRYPT_LEN_BYTES) /* * Generate/update a key */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_ticket_gen_key( mbedtls_ssl_ticket_context *ctx, - unsigned char index ) +static int ssl_ticket_gen_key(mbedtls_ssl_ticket_context *ctx, + unsigned char index) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char buf[MAX_KEY_BYTES] = {0}; + unsigned char buf[MAX_KEY_BYTES] = { 0 }; mbedtls_ssl_ticket_key *key = ctx->keys + index; #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -73,85 +73,83 @@ static int ssl_ticket_gen_key( mbedtls_ssl_ticket_context *ctx, #endif #if defined(MBEDTLS_HAVE_TIME) - key->generation_time = mbedtls_time( NULL ); + key->generation_time = mbedtls_time(NULL); #endif - if( ( ret = ctx->f_rng( ctx->p_rng, key->name, sizeof( key->name ) ) ) != 0 ) - return( ret ); + if ((ret = ctx->f_rng(ctx->p_rng, key->name, sizeof(key->name))) != 0) { + return ret; + } - if( ( ret = ctx->f_rng( ctx->p_rng, buf, sizeof( buf ) ) ) != 0 ) - return( ret ); + if ((ret = ctx->f_rng(ctx->p_rng, buf, sizeof(buf))) != 0) { + return ret; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, key->alg ); - psa_set_key_type( &attributes, key->key_type ); - psa_set_key_bits( &attributes, key->key_bits ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, key->alg); + psa_set_key_type(&attributes, key->key_type); + psa_set_key_bits(&attributes, key->key_bits); ret = psa_ssl_status_to_mbedtls( - psa_import_key( &attributes, buf, - PSA_BITS_TO_BYTES( key->key_bits ), - &key->key ) ); + psa_import_key(&attributes, buf, + PSA_BITS_TO_BYTES(key->key_bits), + &key->key)); #else /* With GCM and CCM, same context can encrypt & decrypt */ - ret = mbedtls_cipher_setkey( &key->ctx, buf, - mbedtls_cipher_get_key_bitlen( &key->ctx ), - MBEDTLS_ENCRYPT ); + ret = mbedtls_cipher_setkey(&key->ctx, buf, + mbedtls_cipher_get_key_bitlen(&key->ctx), + MBEDTLS_ENCRYPT); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - return( ret ); + return ret; } /* * Rotate/generate keys if necessary */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_ticket_update_keys( mbedtls_ssl_ticket_context *ctx ) +static int ssl_ticket_update_keys(mbedtls_ssl_ticket_context *ctx) { #if !defined(MBEDTLS_HAVE_TIME) ((void) ctx); #else - if( ctx->ticket_lifetime != 0 ) - { - mbedtls_time_t current_time = mbedtls_time( NULL ); + if (ctx->ticket_lifetime != 0) { + mbedtls_time_t current_time = mbedtls_time(NULL); mbedtls_time_t key_time = ctx->keys[ctx->active].generation_time; #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #endif - if( current_time >= key_time && - (uint64_t) ( current_time - key_time ) < ctx->ticket_lifetime ) - { - return( 0 ); + if (current_time >= key_time && + (uint64_t) (current_time - key_time) < ctx->ticket_lifetime) { + return 0; } ctx->active = 1 - ctx->active; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( status = psa_destroy_key( ctx->keys[ctx->active].key ) ) != PSA_SUCCESS ) - { - return psa_ssl_status_to_mbedtls( status ); + if ((status = psa_destroy_key(ctx->keys[ctx->active].key)) != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( ssl_ticket_gen_key( ctx, ctx->active ) ); - } - else + return ssl_ticket_gen_key(ctx, ctx->active); + } else #endif /* MBEDTLS_HAVE_TIME */ - return( 0 ); + return 0; } /* * Rotate active session ticket encryption key */ -int mbedtls_ssl_ticket_rotate( mbedtls_ssl_ticket_context *ctx, - const unsigned char *name, size_t nlength, - const unsigned char *k, size_t klength, - uint32_t lifetime ) +int mbedtls_ssl_ticket_rotate(mbedtls_ssl_ticket_context *ctx, + const unsigned char *name, size_t nlength, + const unsigned char *k, size_t klength, + uint32_t lifetime) { const unsigned char idx = 1 - ctx->active; mbedtls_ssl_ticket_key * const key = ctx->keys + idx; @@ -162,43 +160,43 @@ int mbedtls_ssl_ticket_rotate( mbedtls_ssl_ticket_context *ctx, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; const size_t bitlen = key->key_bits; #else - const int bitlen = mbedtls_cipher_get_key_bitlen( &key->ctx ); + const int bitlen = mbedtls_cipher_get_key_bitlen(&key->ctx); #endif - if( nlength < TICKET_KEY_NAME_BYTES || klength * 8 < (size_t)bitlen ) - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + if (nlength < TICKET_KEY_NAME_BYTES || klength * 8 < (size_t) bitlen) { + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( status = psa_destroy_key( key->key ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - return( ret ); + if ((status = psa_destroy_key(key->key)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + return ret; } - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, key->alg ); - psa_set_key_type( &attributes, key->key_type ); - psa_set_key_bits( &attributes, key->key_bits ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, key->alg); + psa_set_key_type(&attributes, key->key_type); + psa_set_key_bits(&attributes, key->key_bits); - if( ( status = psa_import_key( &attributes, k, - PSA_BITS_TO_BYTES( key->key_bits ), - &key->key ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - return( ret ); + if ((status = psa_import_key(&attributes, k, + PSA_BITS_TO_BYTES(key->key_bits), + &key->key)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + return ret; } #else - ret = mbedtls_cipher_setkey( &key->ctx, k, bitlen, MBEDTLS_ENCRYPT ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_cipher_setkey(&key->ctx, k, bitlen, MBEDTLS_ENCRYPT); + if (ret != 0) { + return ret; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ ctx->active = idx; ctx->ticket_lifetime = lifetime; - memcpy( key->name, name, TICKET_KEY_NAME_BYTES ); + memcpy(key->name, name, TICKET_KEY_NAME_BYTES); #if defined(MBEDTLS_HAVE_TIME) - key->generation_time = mbedtls_time( NULL ); + key->generation_time = mbedtls_time(NULL); #endif return 0; } @@ -206,10 +204,10 @@ int mbedtls_ssl_ticket_rotate( mbedtls_ssl_ticket_context *ctx, /* * Setup context for actual use */ -int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_cipher_type_t cipher, - uint32_t lifetime ) +int mbedtls_ssl_ticket_setup(mbedtls_ssl_ticket_context *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_cipher_type_t cipher, + uint32_t lifetime) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t key_bits; @@ -222,27 +220,29 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_ssl_cipher_to_psa( cipher, TICKET_AUTH_TAG_BYTES, - &alg, &key_type, &key_bits ) != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( PSA_ALG_IS_AEAD( alg ) == 0 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); -#else - cipher_info = mbedtls_cipher_info_from_type( cipher ); - - if( mbedtls_cipher_info_get_mode( cipher_info ) != MBEDTLS_MODE_GCM && - mbedtls_cipher_info_get_mode( cipher_info ) != MBEDTLS_MODE_CCM && - mbedtls_cipher_info_get_mode( cipher_info ) != MBEDTLS_MODE_CHACHAPOLY ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mbedtls_ssl_cipher_to_psa(cipher, TICKET_AUTH_TAG_BYTES, + &alg, &key_type, &key_bits) != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - key_bits = mbedtls_cipher_info_get_key_bitlen( cipher_info ); + if (PSA_ALG_IS_AEAD(alg) == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } +#else + cipher_info = mbedtls_cipher_info_from_type(cipher); + + if (mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_GCM && + mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CCM && + mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_CHACHAPOLY) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + key_bits = mbedtls_cipher_info_get_key_bitlen(cipher_info); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( key_bits > 8 * MAX_KEY_BYTES ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (key_bits > 8 * MAX_KEY_BYTES) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } ctx->f_rng = f_rng; ctx->p_rng = p_rng; @@ -258,20 +258,21 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, ctx->keys[1].key_type = key_type; ctx->keys[1].key_bits = key_bits; #else - if( ( ret = mbedtls_cipher_setup( &ctx->keys[0].ctx, cipher_info ) ) != 0 ) - return( ret ); - - if( ( ret = mbedtls_cipher_setup( &ctx->keys[1].ctx, cipher_info ) ) != 0 ) - return( ret ); -#endif /* MBEDTLS_USE_PSA_CRYPTO */ - - if( ( ret = ssl_ticket_gen_key( ctx, 0 ) ) != 0 || - ( ret = ssl_ticket_gen_key( ctx, 1 ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_cipher_setup(&ctx->keys[0].ctx, cipher_info)) != 0) { + return ret; } - return( 0 ); + if ((ret = mbedtls_cipher_setup(&ctx->keys[1].ctx, cipher_info)) != 0) { + return ret; + } +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + + if ((ret = ssl_ticket_gen_key(ctx, 0)) != 0 || + (ret = ssl_ticket_gen_key(ctx, 1)) != 0) { + return ret; + } + + return 0; } /* @@ -288,12 +289,12 @@ int mbedtls_ssl_ticket_setup( mbedtls_ssl_ticket_context *ctx, * authenticated data. */ -int mbedtls_ssl_ticket_write( void *p_ticket, - const mbedtls_ssl_session *session, - unsigned char *start, - const unsigned char *end, - size_t *tlen, - uint32_t *ticket_lifetime ) +int mbedtls_ssl_ticket_write(void *p_ticket, + const mbedtls_ssl_session *session, + unsigned char *start, + const unsigned char *end, + size_t *tlen, + uint32_t *ticket_lifetime) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_ticket_context *ctx = p_ticket; @@ -310,66 +311,66 @@ int mbedtls_ssl_ticket_write( void *p_ticket, *tlen = 0; - if( ctx == NULL || ctx->f_rng == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->f_rng == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } /* We need at least 4 bytes for key_name, 12 for IV, 2 for len 16 for tag, * in addition to session itself, that will be checked when writing it. */ - MBEDTLS_SSL_CHK_BUF_PTR( start, end, TICKET_MIN_LEN ); + MBEDTLS_SSL_CHK_BUF_PTR(start, end, TICKET_MIN_LEN); #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - if( ( ret = ssl_ticket_update_keys( ctx ) ) != 0 ) + if ((ret = ssl_ticket_update_keys(ctx)) != 0) { goto cleanup; + } key = &ctx->keys[ctx->active]; *ticket_lifetime = ctx->ticket_lifetime; - memcpy( key_name, key->name, TICKET_KEY_NAME_BYTES ); + memcpy(key_name, key->name, TICKET_KEY_NAME_BYTES); - if( ( ret = ctx->f_rng( ctx->p_rng, iv, TICKET_IV_BYTES ) ) != 0 ) + if ((ret = ctx->f_rng(ctx->p_rng, iv, TICKET_IV_BYTES)) != 0) { goto cleanup; + } /* Dump session state */ - if( ( ret = mbedtls_ssl_session_save( session, - state, end - state, - &clear_len ) ) != 0 || - (unsigned long) clear_len > 65535 ) - { - goto cleanup; + if ((ret = mbedtls_ssl_session_save(session, + state, end - state, + &clear_len)) != 0 || + (unsigned long) clear_len > 65535) { + goto cleanup; } - MBEDTLS_PUT_UINT16_BE( clear_len, state_len_bytes, 0 ); + MBEDTLS_PUT_UINT16_BE(clear_len, state_len_bytes, 0); /* Encrypt and authenticate */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( status = psa_aead_encrypt( key->key, key->alg, iv, TICKET_IV_BYTES, - key_name, TICKET_ADD_DATA_LEN, - state, clear_len, - state, end - state, - &ciph_len ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if ((status = psa_aead_encrypt(key->key, key->alg, iv, TICKET_IV_BYTES, + key_name, TICKET_ADD_DATA_LEN, + state, clear_len, + state, end - state, + &ciph_len)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } #else - if( ( ret = mbedtls_cipher_auth_encrypt_ext( &key->ctx, - iv, TICKET_IV_BYTES, - /* Additional data: key name, IV and length */ - key_name, TICKET_ADD_DATA_LEN, - state, clear_len, - state, end - state, &ciph_len, - TICKET_AUTH_TAG_BYTES ) ) != 0 ) - { + if ((ret = mbedtls_cipher_auth_encrypt_ext(&key->ctx, + iv, TICKET_IV_BYTES, + /* Additional data: key name, IV and length */ + key_name, TICKET_ADD_DATA_LEN, + state, clear_len, + state, end - state, &ciph_len, + TICKET_AUTH_TAG_BYTES)) != 0) { goto cleanup; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ciph_len != clear_len + TICKET_AUTH_TAG_BYTES ) - { + if (ciph_len != clear_len + TICKET_AUTH_TAG_BYTES) { ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } @@ -378,36 +379,39 @@ int mbedtls_ssl_ticket_write( void *p_ticket, cleanup: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } /* * Select key based on name */ static mbedtls_ssl_ticket_key *ssl_ticket_select_key( - mbedtls_ssl_ticket_context *ctx, - const unsigned char name[4] ) + mbedtls_ssl_ticket_context *ctx, + const unsigned char name[4]) { unsigned char i; - for( i = 0; i < sizeof( ctx->keys ) / sizeof( *ctx->keys ); i++ ) - if( memcmp( name, ctx->keys[i].name, 4 ) == 0 ) - return( &ctx->keys[i] ); + for (i = 0; i < sizeof(ctx->keys) / sizeof(*ctx->keys); i++) { + if (memcmp(name, ctx->keys[i].name, 4) == 0) { + return &ctx->keys[i]; + } + } - return( NULL ); + return NULL; } /* * Load session ticket (see mbedtls_ssl_ticket_write for structure) */ -int mbedtls_ssl_ticket_parse( void *p_ticket, - mbedtls_ssl_session *session, - unsigned char *buf, - size_t len ) +int mbedtls_ssl_ticket_parse(void *p_ticket, + mbedtls_ssl_session *session, + unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_ticket_context *ctx = p_ticket; @@ -422,31 +426,33 @@ int mbedtls_ssl_ticket_parse( void *p_ticket, psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #endif - if( ctx == NULL || ctx->f_rng == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ctx == NULL || ctx->f_rng == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( len < TICKET_MIN_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (len < TICKET_MIN_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mutex_lock(&ctx->mutex)) != 0) { + return ret; + } #endif - if( ( ret = ssl_ticket_update_keys( ctx ) ) != 0 ) + if ((ret = ssl_ticket_update_keys(ctx)) != 0) { goto cleanup; + } - enc_len = ( enc_len_p[0] << 8 ) | enc_len_p[1]; + enc_len = (enc_len_p[0] << 8) | enc_len_p[1]; - if( len != TICKET_MIN_LEN + enc_len ) - { + if (len != TICKET_MIN_LEN + enc_len) { ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; goto cleanup; } /* Select key */ - if( ( key = ssl_ticket_select_key( ctx, key_name ) ) == NULL ) - { + if ((key = ssl_ticket_select_key(ctx, key_name)) == NULL) { /* We can't know for sure but this is a likely option unless we're * under attack - this is only informative anyway */ ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; @@ -455,48 +461,46 @@ int mbedtls_ssl_ticket_parse( void *p_ticket, /* Decrypt and authenticate */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( status = psa_aead_decrypt( key->key, key->alg, iv, TICKET_IV_BYTES, - key_name, TICKET_ADD_DATA_LEN, - ticket, enc_len + TICKET_AUTH_TAG_BYTES, - ticket, enc_len, &clear_len ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if ((status = psa_aead_decrypt(key->key, key->alg, iv, TICKET_IV_BYTES, + key_name, TICKET_ADD_DATA_LEN, + ticket, enc_len + TICKET_AUTH_TAG_BYTES, + ticket, enc_len, &clear_len)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } #else - if( ( ret = mbedtls_cipher_auth_decrypt_ext( &key->ctx, - iv, TICKET_IV_BYTES, - /* Additional data: key name, IV and length */ - key_name, TICKET_ADD_DATA_LEN, - ticket, enc_len + TICKET_AUTH_TAG_BYTES, - ticket, enc_len, &clear_len, - TICKET_AUTH_TAG_BYTES ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED ) + if ((ret = mbedtls_cipher_auth_decrypt_ext(&key->ctx, + iv, TICKET_IV_BYTES, + /* Additional data: key name, IV and length */ + key_name, TICKET_ADD_DATA_LEN, + ticket, enc_len + TICKET_AUTH_TAG_BYTES, + ticket, enc_len, &clear_len, + TICKET_AUTH_TAG_BYTES)) != 0) { + if (ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED) { ret = MBEDTLS_ERR_SSL_INVALID_MAC; + } goto cleanup; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( clear_len != enc_len ) - { + if (clear_len != enc_len) { ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } /* Actually load session */ - if( ( ret = mbedtls_ssl_session_load( session, ticket, clear_len ) ) != 0 ) + if ((ret = mbedtls_ssl_session_load(session, ticket, clear_len)) != 0) { goto cleanup; + } #if defined(MBEDTLS_HAVE_TIME) { /* Check for expiration */ - mbedtls_time_t current_time = mbedtls_time( NULL ); + mbedtls_time_t current_time = mbedtls_time(NULL); - if( current_time < session->start || - (uint32_t)( current_time - session->start ) > ctx->ticket_lifetime ) - { + if (current_time < session->start || + (uint32_t) (current_time - session->start) > ctx->ticket_lifetime) { ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; goto cleanup; } @@ -505,31 +509,32 @@ int mbedtls_ssl_ticket_parse( void *p_ticket, cleanup: #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &ctx->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (mbedtls_mutex_unlock(&ctx->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif - return( ret ); + return ret; } /* * Free context */ -void mbedtls_ssl_ticket_free( mbedtls_ssl_ticket_context *ctx ) +void mbedtls_ssl_ticket_free(mbedtls_ssl_ticket_context *ctx) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( ctx->keys[0].key ); - psa_destroy_key( ctx->keys[1].key ); + psa_destroy_key(ctx->keys[0].key); + psa_destroy_key(ctx->keys[1].key); #else - mbedtls_cipher_free( &ctx->keys[0].ctx ); - mbedtls_cipher_free( &ctx->keys[1].ctx ); + mbedtls_cipher_free(&ctx->keys[0].ctx); + mbedtls_cipher_free(&ctx->keys[1].ctx); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_free( &ctx->mutex ); + mbedtls_mutex_free(&ctx->mutex); #endif - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_ssl_ticket_context ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_ssl_ticket_context)); } #endif /* MBEDTLS_SSL_TICKET_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 35565dee4..bd8fd8cf7 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -56,23 +56,23 @@ static mbedtls_ssl_chk_buf_ptr_args chk_buf_ptr_fail_args; void mbedtls_ssl_set_chk_buf_ptr_fail_args( - const uint8_t *cur, const uint8_t *end, size_t need ) + const uint8_t *cur, const uint8_t *end, size_t need) { chk_buf_ptr_fail_args.cur = cur; chk_buf_ptr_fail_args.end = end; chk_buf_ptr_fail_args.need = need; } -void mbedtls_ssl_reset_chk_buf_ptr_fail_args( void ) +void mbedtls_ssl_reset_chk_buf_ptr_fail_args(void) { - memset( &chk_buf_ptr_fail_args, 0, sizeof( chk_buf_ptr_fail_args ) ); + memset(&chk_buf_ptr_fail_args, 0, sizeof(chk_buf_ptr_fail_args)); } -int mbedtls_ssl_cmp_chk_buf_ptr_fail_args( mbedtls_ssl_chk_buf_ptr_args *args ) +int mbedtls_ssl_cmp_chk_buf_ptr_fail_args(mbedtls_ssl_chk_buf_ptr_args *args) { - return( ( chk_buf_ptr_fail_args.cur != args->cur ) || - ( chk_buf_ptr_fail_args.end != args->end ) || - ( chk_buf_ptr_fail_args.need != args->need ) ); + return (chk_buf_ptr_fail_args.cur != args->cur) || + (chk_buf_ptr_fail_args.end != args->end) || + (chk_buf_ptr_fail_args.need != args->need); } #endif /* MBEDTLS_TEST_HOOKS */ @@ -81,121 +81,118 @@ int mbedtls_ssl_cmp_chk_buf_ptr_fail_args( mbedtls_ssl_chk_buf_ptr_args *args ) #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* Top-level Connection ID API */ -int mbedtls_ssl_conf_cid( mbedtls_ssl_config *conf, - size_t len, - int ignore_other_cid ) +int mbedtls_ssl_conf_cid(mbedtls_ssl_config *conf, + size_t len, + int ignore_other_cid) { - if( len > MBEDTLS_SSL_CID_IN_LEN_MAX ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (len > MBEDTLS_SSL_CID_IN_LEN_MAX) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( ignore_other_cid != MBEDTLS_SSL_UNEXPECTED_CID_FAIL && - ignore_other_cid != MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ignore_other_cid != MBEDTLS_SSL_UNEXPECTED_CID_FAIL && + ignore_other_cid != MBEDTLS_SSL_UNEXPECTED_CID_IGNORE) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } conf->ignore_unexpected_cid = ignore_other_cid; conf->cid_len = len; - return( 0 ); + return 0; } -int mbedtls_ssl_set_cid( mbedtls_ssl_context *ssl, - int enable, - unsigned char const *own_cid, - size_t own_cid_len ) +int mbedtls_ssl_set_cid(mbedtls_ssl_context *ssl, + int enable, + unsigned char const *own_cid, + size_t own_cid_len) { - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } ssl->negotiate_cid = enable; - if( enable == MBEDTLS_SSL_CID_DISABLED ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Disable use of CID extension." ) ); - return( 0 ); + if (enable == MBEDTLS_SSL_CID_DISABLED) { + MBEDTLS_SSL_DEBUG_MSG(3, ("Disable use of CID extension.")); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Enable use of CID extension." ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Own CID", own_cid, own_cid_len ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Enable use of CID extension.")); + MBEDTLS_SSL_DEBUG_BUF(3, "Own CID", own_cid, own_cid_len); - if( own_cid_len != ssl->conf->cid_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "CID length %u does not match CID length %u in config", - (unsigned) own_cid_len, - (unsigned) ssl->conf->cid_len ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (own_cid_len != ssl->conf->cid_len) { + MBEDTLS_SSL_DEBUG_MSG(3, ("CID length %u does not match CID length %u in config", + (unsigned) own_cid_len, + (unsigned) ssl->conf->cid_len)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - memcpy( ssl->own_cid, own_cid, own_cid_len ); + memcpy(ssl->own_cid, own_cid, own_cid_len); /* Truncation is not an issue here because * MBEDTLS_SSL_CID_IN_LEN_MAX at most 255. */ ssl->own_cid_len = (uint8_t) own_cid_len; - return( 0 ); + return 0; } -int mbedtls_ssl_get_own_cid( mbedtls_ssl_context *ssl, - int *enabled, - unsigned char own_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX], - size_t *own_cid_len ) +int mbedtls_ssl_get_own_cid(mbedtls_ssl_context *ssl, + int *enabled, + unsigned char own_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX], + size_t *own_cid_len) { *enabled = MBEDTLS_SSL_CID_DISABLED; - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } /* We report MBEDTLS_SSL_CID_DISABLED in case the CID length is * zero as this is indistinguishable from not requesting to use * the CID extension. */ - if( ssl->own_cid_len == 0 || ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED ) - return( 0 ); + if (ssl->own_cid_len == 0 || ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED) { + return 0; + } - if( own_cid_len != NULL ) - { + if (own_cid_len != NULL) { *own_cid_len = ssl->own_cid_len; - if( own_cid != NULL ) - memcpy( own_cid, ssl->own_cid, ssl->own_cid_len ); + if (own_cid != NULL) { + memcpy(own_cid, ssl->own_cid, ssl->own_cid_len); + } } *enabled = MBEDTLS_SSL_CID_ENABLED; - return( 0 ); + return 0; } -int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, - int *enabled, - unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ], - size_t *peer_cid_len ) +int mbedtls_ssl_get_peer_cid(mbedtls_ssl_context *ssl, + int *enabled, + unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX], + size_t *peer_cid_len) { *enabled = MBEDTLS_SSL_CID_DISABLED; - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || - mbedtls_ssl_is_handshake_over( ssl ) == 0 ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || + mbedtls_ssl_is_handshake_over(ssl) == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* We report MBEDTLS_SSL_CID_DISABLED in case the CID extensions * were used, but client and server requested the empty CID. * This is indistinguishable from not using the CID extension * in the first place. */ - if( ssl->transform_in->in_cid_len == 0 && - ssl->transform_in->out_cid_len == 0 ) - { - return( 0 ); + if (ssl->transform_in->in_cid_len == 0 && + ssl->transform_in->out_cid_len == 0) { + return 0; } - if( peer_cid_len != NULL ) - { + if (peer_cid_len != NULL) { *peer_cid_len = ssl->transform_in->out_cid_len; - if( peer_cid != NULL ) - { - memcpy( peer_cid, ssl->transform_in->out_cid, - ssl->transform_in->out_cid_len ); + if (peer_cid != NULL) { + memcpy(peer_cid, ssl->transform_in->out_cid, + ssl->transform_in->out_cid_len); } } *enabled = MBEDTLS_SSL_CID_ENABLED; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -210,31 +207,30 @@ int mbedtls_ssl_get_peer_cid( mbedtls_ssl_context *ssl, * } MaxFragmentLength; * and we add 0 -> extension unused */ -static unsigned int ssl_mfl_code_to_length( int mfl ) +static unsigned int ssl_mfl_code_to_length(int mfl) { - switch( mfl ) - { - case MBEDTLS_SSL_MAX_FRAG_LEN_NONE: - return ( MBEDTLS_TLS_EXT_ADV_CONTENT_LEN ); - case MBEDTLS_SSL_MAX_FRAG_LEN_512: - return 512; - case MBEDTLS_SSL_MAX_FRAG_LEN_1024: - return 1024; - case MBEDTLS_SSL_MAX_FRAG_LEN_2048: - return 2048; - case MBEDTLS_SSL_MAX_FRAG_LEN_4096: - return 4096; - default: - return ( MBEDTLS_TLS_EXT_ADV_CONTENT_LEN ); + switch (mfl) { + case MBEDTLS_SSL_MAX_FRAG_LEN_NONE: + return MBEDTLS_TLS_EXT_ADV_CONTENT_LEN; + case MBEDTLS_SSL_MAX_FRAG_LEN_512: + return 512; + case MBEDTLS_SSL_MAX_FRAG_LEN_1024: + return 1024; + case MBEDTLS_SSL_MAX_FRAG_LEN_2048: + return 2048; + case MBEDTLS_SSL_MAX_FRAG_LEN_4096: + return 4096; + default: + return MBEDTLS_TLS_EXT_ADV_CONTENT_LEN; } } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ -int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, - const mbedtls_ssl_session *src ) +int mbedtls_ssl_session_copy(mbedtls_ssl_session *dst, + const mbedtls_ssl_session *src) { - mbedtls_ssl_session_free( dst ); - memcpy( dst, src, sizeof( mbedtls_ssl_session ) ); + mbedtls_ssl_session_free(dst); + memcpy(dst, src, sizeof(mbedtls_ssl_session)); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) dst->ticket = NULL; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ @@ -246,34 +242,33 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - if( src->peer_cert != NULL ) - { + if (src->peer_cert != NULL) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - dst->peer_cert = mbedtls_calloc( 1, sizeof(mbedtls_x509_crt) ); - if( dst->peer_cert == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + dst->peer_cert = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); + if (dst->peer_cert == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - mbedtls_x509_crt_init( dst->peer_cert ); + mbedtls_x509_crt_init(dst->peer_cert); - if( ( ret = mbedtls_x509_crt_parse_der( dst->peer_cert, src->peer_cert->raw.p, - src->peer_cert->raw.len ) ) != 0 ) - { - mbedtls_free( dst->peer_cert ); + if ((ret = mbedtls_x509_crt_parse_der(dst->peer_cert, src->peer_cert->raw.p, + src->peer_cert->raw.len)) != 0) { + mbedtls_free(dst->peer_cert); dst->peer_cert = NULL; - return( ret ); + return ret; } } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( src->peer_cert_digest != NULL ) - { + if (src->peer_cert_digest != NULL) { dst->peer_cert_digest = - mbedtls_calloc( 1, src->peer_cert_digest_len ); - if( dst->peer_cert_digest == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + mbedtls_calloc(1, src->peer_cert_digest_len); + if (dst->peer_cert_digest == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( dst->peer_cert_digest, src->peer_cert_digest, - src->peer_cert_digest_len ); + memcpy(dst->peer_cert_digest, src->peer_cert_digest, + src->peer_cert_digest_len); dst->peer_cert_digest_type = src->peer_cert_digest_type; dst->peer_cert_digest_len = src->peer_cert_digest_len; } @@ -282,47 +277,48 @@ int mbedtls_ssl_session_copy( mbedtls_ssl_session *dst, #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( src->ticket != NULL ) - { - dst->ticket = mbedtls_calloc( 1, src->ticket_len ); - if( dst->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if (src->ticket != NULL) { + dst->ticket = mbedtls_calloc(1, src->ticket_len); + if (dst->ticket == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( dst->ticket, src->ticket, src->ticket_len ); + memcpy(dst->ticket, src->ticket, src->ticket_len); } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( src->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (src->endpoint == MBEDTLS_SSL_IS_CLIENT) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ssl_session_set_hostname( dst, src->hostname ); - if( ret != 0 ) - return ( ret ); + ret = mbedtls_ssl_session_set_hostname(dst, src->hostname); + if (ret != 0) { + return ret; + } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) MBEDTLS_CHECK_RETURN_CRITICAL -static int resize_buffer( unsigned char **buffer, size_t len_new, size_t *len_old ) +static int resize_buffer(unsigned char **buffer, size_t len_new, size_t *len_old) { - unsigned char* resized_buffer = mbedtls_calloc( 1, len_new ); - if( resized_buffer == NULL ) + unsigned char *resized_buffer = mbedtls_calloc(1, len_new); + if (resized_buffer == NULL) { return -1; + } /* We want to copy len_new bytes when downsizing the buffer, and * len_old bytes when upsizing, so we choose the smaller of two sizes, * to fit one buffer into another. Size checks, ensuring that no data is * lost, are done outside of this function. */ - memcpy( resized_buffer, *buffer, - ( len_new < *len_old ) ? len_new : *len_old ); - mbedtls_platform_zeroize( *buffer, *len_old ); - mbedtls_free( *buffer ); + memcpy(resized_buffer, *buffer, + (len_new < *len_old) ? len_new : *len_old); + mbedtls_platform_zeroize(*buffer, *len_old); + mbedtls_free(*buffer); *buffer = resized_buffer; *len_old = len_new; @@ -330,60 +326,49 @@ static int resize_buffer( unsigned char **buffer, size_t len_new, size_t *len_ol return 0; } -static void handle_buffer_resizing( mbedtls_ssl_context *ssl, int downsizing, - size_t in_buf_new_len, - size_t out_buf_new_len ) +static void handle_buffer_resizing(mbedtls_ssl_context *ssl, int downsizing, + size_t in_buf_new_len, + size_t out_buf_new_len) { int modified = 0; size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0; size_t written_out = 0, iv_offset_out = 0, len_offset_out = 0; - if( ssl->in_buf != NULL ) - { + if (ssl->in_buf != NULL) { written_in = ssl->in_msg - ssl->in_buf; iv_offset_in = ssl->in_iv - ssl->in_buf; len_offset_in = ssl->in_len - ssl->in_buf; - if( downsizing ? + if (downsizing ? ssl->in_buf_len > in_buf_new_len && ssl->in_left < in_buf_new_len : - ssl->in_buf_len < in_buf_new_len ) - { - if( resize_buffer( &ssl->in_buf, in_buf_new_len, &ssl->in_buf_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "input buffer resizing failed - out of memory" ) ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Reallocating in_buf to %" MBEDTLS_PRINTF_SIZET, - in_buf_new_len ) ); + ssl->in_buf_len < in_buf_new_len) { + if (resize_buffer(&ssl->in_buf, in_buf_new_len, &ssl->in_buf_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("input buffer resizing failed - out of memory")); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("Reallocating in_buf to %" MBEDTLS_PRINTF_SIZET, + in_buf_new_len)); modified = 1; } } } - if( ssl->out_buf != NULL ) - { + if (ssl->out_buf != NULL) { written_out = ssl->out_msg - ssl->out_buf; iv_offset_out = ssl->out_iv - ssl->out_buf; len_offset_out = ssl->out_len - ssl->out_buf; - if( downsizing ? + if (downsizing ? ssl->out_buf_len > out_buf_new_len && ssl->out_left < out_buf_new_len : - ssl->out_buf_len < out_buf_new_len ) - { - if( resize_buffer( &ssl->out_buf, out_buf_new_len, &ssl->out_buf_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "output buffer resizing failed - out of memory" ) ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Reallocating out_buf to %" MBEDTLS_PRINTF_SIZET, - out_buf_new_len ) ); + ssl->out_buf_len < out_buf_new_len) { + if (resize_buffer(&ssl->out_buf, out_buf_new_len, &ssl->out_buf_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("output buffer resizing failed - out of memory")); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("Reallocating out_buf to %" MBEDTLS_PRINTF_SIZET, + out_buf_new_len)); modified = 1; } } } - if( modified ) - { + if (modified) { /* Update pointers here to avoid doing it twice. */ - mbedtls_ssl_reset_in_out_pointers( ssl ); + mbedtls_ssl_reset_in_out_pointers(ssl); /* Fields below might not be properly updated with record * splitting or with CID, so they are manually updated here. */ ssl->out_msg = ssl->out_buf + written_out; @@ -400,12 +385,12 @@ static void handle_buffer_resizing( mbedtls_ssl_context *ssl, int downsizing, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) -typedef int (*tls_prf_fn)( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ); +typedef int (*tls_prf_fn)(const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen); -static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ); +static tls_prf_fn ssl_tls12prf_from_cs(int ciphersuite_id); #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ @@ -415,104 +400,101 @@ typedef int ssl_tls_prf_t(const unsigned char *, size_t, const char *, unsigned char *, size_t); MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, - int ciphersuite, - const unsigned char master[48], +static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform, + int ciphersuite, + const unsigned char master[48], #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - int encrypt_then_mac, + int encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ssl_tls_prf_t tls_prf, - const unsigned char randbytes[64], - mbedtls_ssl_protocol_version tls_version, - unsigned endpoint, - const mbedtls_ssl_context *ssl ); + ssl_tls_prf_t tls_prf, + const unsigned char randbytes[64], + mbedtls_ssl_protocol_version tls_version, + unsigned endpoint, + const mbedtls_ssl_context *ssl); #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_sha256( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ); -static void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *,unsigned char*, size_t * ); -static void ssl_calc_finished_tls_sha256( mbedtls_ssl_context *,unsigned char *, int ); - -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ - -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_sha384( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ); - -static void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *, unsigned char*, size_t * ); -static void ssl_calc_finished_tls_sha384( mbedtls_ssl_context *, unsigned char *, int ); -#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ - -static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len ); - -MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls12_session_load( mbedtls_ssl_session *session, - const unsigned char *buf, - size_t len ); -#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - -static void ssl_update_checksum_start( mbedtls_ssl_context *, const unsigned char *, size_t ); - -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -static void ssl_update_checksum_sha256( mbedtls_ssl_context *, const unsigned char *, size_t ); -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ - -#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -static void ssl_update_checksum_sha384( mbedtls_ssl_context *, const unsigned char *, size_t ); -#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ - -int mbedtls_ssl_tls_prf( const mbedtls_tls_prf_types prf, - const unsigned char *secret, size_t slen, +static int tls_prf_sha256(const unsigned char *secret, size_t slen, const char *label, const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ) + unsigned char *dstbuf, size_t dlen); +static void ssl_calc_verify_tls_sha256(const mbedtls_ssl_context *, unsigned char *, size_t *); +static void ssl_calc_finished_tls_sha256(mbedtls_ssl_context *, unsigned char *, int); + +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ + +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +MBEDTLS_CHECK_RETURN_CRITICAL +static int tls_prf_sha384(const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen); + +static void ssl_calc_verify_tls_sha384(const mbedtls_ssl_context *, unsigned char *, size_t *); +static void ssl_calc_finished_tls_sha384(mbedtls_ssl_context *, unsigned char *, int); +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ + +static size_t ssl_tls12_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len); + +MBEDTLS_CHECK_RETURN_CRITICAL +static int ssl_tls12_session_load(mbedtls_ssl_session *session, + const unsigned char *buf, + size_t len); +#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ + +static void ssl_update_checksum_start(mbedtls_ssl_context *, const unsigned char *, size_t); + +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +static void ssl_update_checksum_sha256(mbedtls_ssl_context *, const unsigned char *, size_t); +#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ + +#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +static void ssl_update_checksum_sha384(mbedtls_ssl_context *, const unsigned char *, size_t); +#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ + +int mbedtls_ssl_tls_prf(const mbedtls_tls_prf_types prf, + const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen) { mbedtls_ssl_tls_prf_cb *tls_prf = NULL; - switch( prf ) - { + switch (prf) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_TLS_PRF_SHA384: tls_prf = tls_prf_sha384; - break; + break; #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_TLS_PRF_SHA256: tls_prf = tls_prf_sha256; - break; + break; #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - default: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + default: + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - return( tls_prf( secret, slen, label, random, rlen, dstbuf, dlen ) ); + return tls_prf(secret, slen, label, random, rlen, dstbuf, dlen); } #if defined(MBEDTLS_X509_CRT_PARSE_C) -static void ssl_clear_peer_cert( mbedtls_ssl_session *session ) +static void ssl_clear_peer_cert(mbedtls_ssl_session *session) { #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - if( session->peer_cert != NULL ) - { - mbedtls_x509_crt_free( session->peer_cert ); - mbedtls_free( session->peer_cert ); + if (session->peer_cert != NULL) { + mbedtls_x509_crt_free(session->peer_cert); + mbedtls_free(session->peer_cert); session->peer_cert = NULL; } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( session->peer_cert_digest != NULL ) - { + if (session->peer_cert_digest != NULL) { /* Zeroization is not necessary. */ - mbedtls_free( session->peer_cert_digest ); + mbedtls_free(session->peer_cert_digest); session->peer_cert_digest = NULL; session->peer_cert_digest_type = MBEDTLS_MD_NONE; session->peer_cert_digest_len = 0; @@ -521,99 +503,98 @@ static void ssl_clear_peer_cert( mbedtls_ssl_session *session ) } #endif /* MBEDTLS_X509_CRT_PARSE_C */ -uint32_t mbedtls_ssl_get_extension_id( unsigned int extension_type ) +uint32_t mbedtls_ssl_get_extension_id(unsigned int extension_type) { - switch( extension_type ) - { + switch (extension_type) { case MBEDTLS_TLS_EXT_SERVERNAME: - return( MBEDTLS_SSL_EXT_ID_SERVERNAME ); + return MBEDTLS_SSL_EXT_ID_SERVERNAME; case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - return( MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH ); + return MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH; case MBEDTLS_TLS_EXT_STATUS_REQUEST: - return( MBEDTLS_SSL_EXT_ID_STATUS_REQUEST ); + return MBEDTLS_SSL_EXT_ID_STATUS_REQUEST; case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - return( MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS ); + return MBEDTLS_SSL_EXT_ID_SUPPORTED_GROUPS; case MBEDTLS_TLS_EXT_SIG_ALG: - return( MBEDTLS_SSL_EXT_ID_SIG_ALG ); + return MBEDTLS_SSL_EXT_ID_SIG_ALG; case MBEDTLS_TLS_EXT_USE_SRTP: - return( MBEDTLS_SSL_EXT_ID_USE_SRTP ); + return MBEDTLS_SSL_EXT_ID_USE_SRTP; case MBEDTLS_TLS_EXT_HEARTBEAT: - return( MBEDTLS_SSL_EXT_ID_HEARTBEAT ); + return MBEDTLS_SSL_EXT_ID_HEARTBEAT; case MBEDTLS_TLS_EXT_ALPN: - return( MBEDTLS_SSL_EXT_ID_ALPN ); + return MBEDTLS_SSL_EXT_ID_ALPN; case MBEDTLS_TLS_EXT_SCT: - return( MBEDTLS_SSL_EXT_ID_SCT ); + return MBEDTLS_SSL_EXT_ID_SCT; case MBEDTLS_TLS_EXT_CLI_CERT_TYPE: - return( MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE ); + return MBEDTLS_SSL_EXT_ID_CLI_CERT_TYPE; case MBEDTLS_TLS_EXT_SERV_CERT_TYPE: - return( MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE ); + return MBEDTLS_SSL_EXT_ID_SERV_CERT_TYPE; case MBEDTLS_TLS_EXT_PADDING: - return( MBEDTLS_SSL_EXT_ID_PADDING ); + return MBEDTLS_SSL_EXT_ID_PADDING; case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - return( MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY ); + return MBEDTLS_SSL_EXT_ID_PRE_SHARED_KEY; case MBEDTLS_TLS_EXT_EARLY_DATA: - return( MBEDTLS_SSL_EXT_ID_EARLY_DATA ); + return MBEDTLS_SSL_EXT_ID_EARLY_DATA; case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - return( MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS ); + return MBEDTLS_SSL_EXT_ID_SUPPORTED_VERSIONS; case MBEDTLS_TLS_EXT_COOKIE: - return( MBEDTLS_SSL_EXT_ID_COOKIE ); + return MBEDTLS_SSL_EXT_ID_COOKIE; case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - return( MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES ); + return MBEDTLS_SSL_EXT_ID_PSK_KEY_EXCHANGE_MODES; case MBEDTLS_TLS_EXT_CERT_AUTH: - return( MBEDTLS_SSL_EXT_ID_CERT_AUTH ); + return MBEDTLS_SSL_EXT_ID_CERT_AUTH; case MBEDTLS_TLS_EXT_OID_FILTERS: - return( MBEDTLS_SSL_EXT_ID_OID_FILTERS ); + return MBEDTLS_SSL_EXT_ID_OID_FILTERS; case MBEDTLS_TLS_EXT_POST_HANDSHAKE_AUTH: - return( MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH ); + return MBEDTLS_SSL_EXT_ID_POST_HANDSHAKE_AUTH; case MBEDTLS_TLS_EXT_SIG_ALG_CERT: - return( MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT ); + return MBEDTLS_SSL_EXT_ID_SIG_ALG_CERT; case MBEDTLS_TLS_EXT_KEY_SHARE: - return( MBEDTLS_SSL_EXT_ID_KEY_SHARE ); + return MBEDTLS_SSL_EXT_ID_KEY_SHARE; case MBEDTLS_TLS_EXT_TRUNCATED_HMAC: - return( MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC ); + return MBEDTLS_SSL_EXT_ID_TRUNCATED_HMAC; case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: - return( MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS ); + return MBEDTLS_SSL_EXT_ID_SUPPORTED_POINT_FORMATS; case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: - return( MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC ); + return MBEDTLS_SSL_EXT_ID_ENCRYPT_THEN_MAC; case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: - return( MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET ); + return MBEDTLS_SSL_EXT_ID_EXTENDED_MASTER_SECRET; case MBEDTLS_TLS_EXT_SESSION_TICKET: - return( MBEDTLS_SSL_EXT_ID_SESSION_TICKET ); + return MBEDTLS_SSL_EXT_ID_SESSION_TICKET; } - return( MBEDTLS_SSL_EXT_ID_UNRECOGNIZED ); + return MBEDTLS_SSL_EXT_ID_UNRECOGNIZED; } -uint32_t mbedtls_ssl_get_extension_mask( unsigned int extension_type ) +uint32_t mbedtls_ssl_get_extension_mask(unsigned int extension_type) { - return( 1 << mbedtls_ssl_get_extension_id( extension_type ) ); + return 1 << mbedtls_ssl_get_extension_id(extension_type); } #if defined(MBEDTLS_DEBUG_C) @@ -648,7 +629,7 @@ static const char *extension_name_table[] = { [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = "session_ticket" }; -static unsigned int extension_type_table[]={ +static unsigned int extension_type_table[] = { [MBEDTLS_SSL_EXT_ID_UNRECOGNIZED] = 0xff, [MBEDTLS_SSL_EXT_ID_SERVERNAME] = MBEDTLS_TLS_EXT_SERVERNAME, [MBEDTLS_SSL_EXT_ID_MAX_FRAGMENT_LENGTH] = MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, @@ -679,168 +660,164 @@ static unsigned int extension_type_table[]={ [MBEDTLS_SSL_EXT_ID_SESSION_TICKET] = MBEDTLS_TLS_EXT_SESSION_TICKET }; -const char *mbedtls_ssl_get_extension_name( unsigned int extension_type ) +const char *mbedtls_ssl_get_extension_name(unsigned int extension_type) { - return( extension_name_table[ - mbedtls_ssl_get_extension_id( extension_type ) ] ); + return extension_name_table[ + mbedtls_ssl_get_extension_id(extension_type)]; } -static const char *ssl_tls13_get_hs_msg_name( int hs_msg_type ) +static const char *ssl_tls13_get_hs_msg_name(int hs_msg_type) { - switch( hs_msg_type ) - { + switch (hs_msg_type) { case MBEDTLS_SSL_HS_CLIENT_HELLO: - return( "ClientHello" ); + return "ClientHello"; case MBEDTLS_SSL_HS_SERVER_HELLO: - return( "ServerHello" ); + return "ServerHello"; case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: - return( "HelloRetryRequest" ); + return "HelloRetryRequest"; case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: - return( "NewSessionTicket" ); + return "NewSessionTicket"; case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: - return( "EncryptedExtensions" ); + return "EncryptedExtensions"; case MBEDTLS_SSL_HS_CERTIFICATE: - return( "Certificate" ); + return "Certificate"; case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: - return( "CertificateRequest" ); + return "CertificateRequest"; } - return( "Unknown" ); + return "Unknown"; } -void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, unsigned int extension_type, - const char *extra_msg0, const char *extra_msg1 ) +void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, unsigned int extension_type, + const char *extra_msg0, const char *extra_msg1) { const char *extra_msg; - if( extra_msg0 && extra_msg1 ) - { + if (extra_msg0 && extra_msg1) { mbedtls_debug_print_msg( ssl, level, file, line, "%s: %s(%u) extension %s %s.", - ssl_tls13_get_hs_msg_name( hs_msg_type ), - mbedtls_ssl_get_extension_name( extension_type ), + ssl_tls13_get_hs_msg_name(hs_msg_type), + mbedtls_ssl_get_extension_name(extension_type), extension_type, - extra_msg0, extra_msg1 ); + extra_msg0, extra_msg1); return; } extra_msg = extra_msg0 ? extra_msg0 : extra_msg1; - if( extra_msg ) - { + if (extra_msg) { mbedtls_debug_print_msg( ssl, level, file, line, - "%s: %s(%u) extension %s.", ssl_tls13_get_hs_msg_name( hs_msg_type ), - mbedtls_ssl_get_extension_name( extension_type ), extension_type, - extra_msg ); + "%s: %s(%u) extension %s.", ssl_tls13_get_hs_msg_name(hs_msg_type), + mbedtls_ssl_get_extension_name(extension_type), extension_type, + extra_msg); return; } mbedtls_debug_print_msg( ssl, level, file, line, - "%s: %s(%u) extension.", ssl_tls13_get_hs_msg_name( hs_msg_type ), - mbedtls_ssl_get_extension_name( extension_type ), extension_type ); + "%s: %s(%u) extension.", ssl_tls13_get_hs_msg_name(hs_msg_type), + mbedtls_ssl_get_extension_name(extension_type), extension_type); } -void mbedtls_ssl_print_extensions( const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - int hs_msg_type, uint32_t extensions_mask, - const char *extra ) +void mbedtls_ssl_print_extensions(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + int hs_msg_type, uint32_t extensions_mask, + const char *extra) { - for( unsigned i = 0; - i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] ); - i++ ) - { + for (unsigned i = 0; + i < sizeof(extension_name_table) / sizeof(extension_name_table[0]); + i++) { mbedtls_ssl_print_extension( ssl, level, file, line, hs_msg_type, extension_type_table[i], - extensions_mask & ( 1 << i ) ? "exists" : "does not exist", extra ); + extensions_mask & (1 << i) ? "exists" : "does not exist", extra); } } #endif /* MBEDTLS_DEBUG_C */ -void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, - const mbedtls_ssl_ciphersuite_t *ciphersuite_info ) +void mbedtls_ssl_optimize_checksum(mbedtls_ssl_context *ssl, + const mbedtls_ssl_ciphersuite_t *ciphersuite_info) { ((void) ciphersuite_info); #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) + if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) { ssl->handshake->update_checksum = ssl_update_checksum_sha384; - else + } else #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac != MBEDTLS_MD_SHA384 ) + if (ciphersuite_info->mac != MBEDTLS_MD_SHA384) { ssl->handshake->update_checksum = ssl_update_checksum_sha256; - else + } else #endif { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); return; } } -void mbedtls_ssl_add_hs_hdr_to_checksum( mbedtls_ssl_context *ssl, - unsigned hs_type, - size_t total_hs_len ) +void mbedtls_ssl_add_hs_hdr_to_checksum(mbedtls_ssl_context *ssl, + unsigned hs_type, + size_t total_hs_len) { unsigned char hs_hdr[4]; /* Build HS header for checksum update. */ - hs_hdr[0] = MBEDTLS_BYTE_0( hs_type ); - hs_hdr[1] = MBEDTLS_BYTE_2( total_hs_len ); - hs_hdr[2] = MBEDTLS_BYTE_1( total_hs_len ); - hs_hdr[3] = MBEDTLS_BYTE_0( total_hs_len ); + hs_hdr[0] = MBEDTLS_BYTE_0(hs_type); + hs_hdr[1] = MBEDTLS_BYTE_2(total_hs_len); + hs_hdr[2] = MBEDTLS_BYTE_1(total_hs_len); + hs_hdr[3] = MBEDTLS_BYTE_0(total_hs_len); - ssl->handshake->update_checksum( ssl, hs_hdr, sizeof( hs_hdr ) ); + ssl->handshake->update_checksum(ssl, hs_hdr, sizeof(hs_hdr)); } -void mbedtls_ssl_add_hs_msg_to_checksum( mbedtls_ssl_context *ssl, - unsigned hs_type, - unsigned char const *msg, - size_t msg_len ) +void mbedtls_ssl_add_hs_msg_to_checksum(mbedtls_ssl_context *ssl, + unsigned hs_type, + unsigned char const *msg, + size_t msg_len) { - mbedtls_ssl_add_hs_hdr_to_checksum( ssl, hs_type, msg_len ); - ssl->handshake->update_checksum( ssl, msg, msg_len ); + mbedtls_ssl_add_hs_hdr_to_checksum(ssl, hs_type, msg_len); + ssl->handshake->update_checksum(ssl, msg, msg_len); } -void mbedtls_ssl_reset_checksum( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_reset_checksum(mbedtls_ssl_context *ssl) { ((void) ssl); #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &ssl->handshake->fin_sha256_psa ); - psa_hash_setup( &ssl->handshake->fin_sha256_psa, PSA_ALG_SHA_256 ); + psa_hash_abort(&ssl->handshake->fin_sha256_psa); + psa_hash_setup(&ssl->handshake->fin_sha256_psa, PSA_ALG_SHA_256); #else - mbedtls_sha256_starts( &ssl->handshake->fin_sha256, 0 ); + mbedtls_sha256_starts(&ssl->handshake->fin_sha256, 0); #endif #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &ssl->handshake->fin_sha384_psa ); - psa_hash_setup( &ssl->handshake->fin_sha384_psa, PSA_ALG_SHA_384 ); + psa_hash_abort(&ssl->handshake->fin_sha384_psa); + psa_hash_setup(&ssl->handshake->fin_sha384_psa, PSA_ALG_SHA_384); #else - mbedtls_sha512_starts( &ssl->handshake->fin_sha384, 1 ); + mbedtls_sha512_starts(&ssl->handshake->fin_sha384, 1); #endif #endif } -static void ssl_update_checksum_start( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static void ssl_update_checksum_start(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_update( &ssl->handshake->fin_sha256_psa, buf, len ); + psa_hash_update(&ssl->handshake->fin_sha256_psa, buf, len); #else - mbedtls_sha256_update( &ssl->handshake->fin_sha256, buf, len ); + mbedtls_sha256_update(&ssl->handshake->fin_sha256, buf, len); #endif #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_update( &ssl->handshake->fin_sha384_psa, buf, len ); + psa_hash_update(&ssl->handshake->fin_sha384_psa, buf, len); #else - mbedtls_sha512_update( &ssl->handshake->fin_sha384, buf, len ); + mbedtls_sha512_update(&ssl->handshake->fin_sha384, buf, len); #endif #endif #if !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ @@ -852,66 +829,66 @@ static void ssl_update_checksum_start( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -static void ssl_update_checksum_sha256( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static void ssl_update_checksum_sha256(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_update( &ssl->handshake->fin_sha256_psa, buf, len ); + psa_hash_update(&ssl->handshake->fin_sha256_psa, buf, len); #else - mbedtls_sha256_update( &ssl->handshake->fin_sha256, buf, len ); + mbedtls_sha256_update(&ssl->handshake->fin_sha256, buf, len); #endif } #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -static void ssl_update_checksum_sha384( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static void ssl_update_checksum_sha384(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_update( &ssl->handshake->fin_sha384_psa, buf, len ); + psa_hash_update(&ssl->handshake->fin_sha384_psa, buf, len); #else - mbedtls_sha512_update( &ssl->handshake->fin_sha384, buf, len ); + mbedtls_sha512_update(&ssl->handshake->fin_sha384, buf, len); #endif } #endif -static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) +static void ssl_handshake_params_init(mbedtls_ssl_handshake_params *handshake) { - memset( handshake, 0, sizeof( mbedtls_ssl_handshake_params ) ); + memset(handshake, 0, sizeof(mbedtls_ssl_handshake_params)); #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) handshake->fin_sha256_psa = psa_hash_operation_init(); - psa_hash_setup( &handshake->fin_sha256_psa, PSA_ALG_SHA_256 ); + psa_hash_setup(&handshake->fin_sha256_psa, PSA_ALG_SHA_256); #else - mbedtls_sha256_init( &handshake->fin_sha256 ); - mbedtls_sha256_starts( &handshake->fin_sha256, 0 ); + mbedtls_sha256_init(&handshake->fin_sha256); + mbedtls_sha256_starts(&handshake->fin_sha256, 0); #endif #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) handshake->fin_sha384_psa = psa_hash_operation_init(); - psa_hash_setup( &handshake->fin_sha384_psa, PSA_ALG_SHA_384 ); + psa_hash_setup(&handshake->fin_sha384_psa, PSA_ALG_SHA_384); #else - mbedtls_sha512_init( &handshake->fin_sha384 ); - mbedtls_sha512_starts( &handshake->fin_sha384, 1 ); + mbedtls_sha512_init(&handshake->fin_sha384); + mbedtls_sha512_starts(&handshake->fin_sha384, 1); #endif #endif handshake->update_checksum = ssl_update_checksum_start; #if defined(MBEDTLS_DHM_C) - mbedtls_dhm_init( &handshake->dhm_ctx ); + mbedtls_dhm_init(&handshake->dhm_ctx); #endif #if !defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECDH_C) - mbedtls_ecdh_init( &handshake->ecdh_ctx ); + mbedtls_ecdh_init(&handshake->ecdh_ctx); #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) handshake->psa_pake_ctx = psa_pake_operation_init(); handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT; #else - mbedtls_ecjpake_init( &handshake->ecjpake_ctx ); + mbedtls_ecjpake_init(&handshake->ecjpake_ctx); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_CLI_C) handshake->ecjpake_cache = NULL; @@ -920,7 +897,7 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) #endif #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - mbedtls_x509_crt_restart_init( &handshake->ecrs_ctx ); + mbedtls_x509_crt_restart_init(&handshake->ecrs_ctx); #endif #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) @@ -929,20 +906,20 @@ static void ssl_handshake_params_init( mbedtls_ssl_handshake_params *handshake ) #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - mbedtls_pk_init( &handshake->peer_pubkey ); + mbedtls_pk_init(&handshake->peer_pubkey); #endif } -void mbedtls_ssl_transform_init( mbedtls_ssl_transform *transform ) +void mbedtls_ssl_transform_init(mbedtls_ssl_transform *transform) { - memset( transform, 0, sizeof(mbedtls_ssl_transform) ); + memset(transform, 0, sizeof(mbedtls_ssl_transform)); #if defined(MBEDTLS_USE_PSA_CRYPTO) transform->psa_key_enc = MBEDTLS_SVC_KEY_ID_INIT; transform->psa_key_dec = MBEDTLS_SVC_KEY_ID_INIT; #else - mbedtls_cipher_init( &transform->cipher_ctx_enc ); - mbedtls_cipher_init( &transform->cipher_ctx_dec ); + mbedtls_cipher_init(&transform->cipher_ctx_enc); + mbedtls_cipher_init(&transform->cipher_ctx_dec); #endif #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) @@ -950,106 +927,105 @@ void mbedtls_ssl_transform_init( mbedtls_ssl_transform *transform ) transform->psa_mac_enc = MBEDTLS_SVC_KEY_ID_INIT; transform->psa_mac_dec = MBEDTLS_SVC_KEY_ID_INIT; #else - mbedtls_md_init( &transform->md_ctx_enc ); - mbedtls_md_init( &transform->md_ctx_dec ); + mbedtls_md_init(&transform->md_ctx_enc); + mbedtls_md_init(&transform->md_ctx_dec); #endif #endif } -void mbedtls_ssl_session_init( mbedtls_ssl_session *session ) +void mbedtls_ssl_session_init(mbedtls_ssl_session *session) { - memset( session, 0, sizeof(mbedtls_ssl_session) ); + memset(session, 0, sizeof(mbedtls_ssl_session)); } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_handshake_init( mbedtls_ssl_context *ssl ) +static int ssl_handshake_init(mbedtls_ssl_context *ssl) { /* Clear old handshake information if present */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->transform_negotiate ) - mbedtls_ssl_transform_free( ssl->transform_negotiate ); + if (ssl->transform_negotiate) { + mbedtls_ssl_transform_free(ssl->transform_negotiate); + } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - if( ssl->session_negotiate ) - mbedtls_ssl_session_free( ssl->session_negotiate ); - if( ssl->handshake ) - mbedtls_ssl_handshake_free( ssl ); + if (ssl->session_negotiate) { + mbedtls_ssl_session_free(ssl->session_negotiate); + } + if (ssl->handshake) { + mbedtls_ssl_handshake_free(ssl); + } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* * Either the pointers are now NULL or cleared properly and can be freed. * Now allocate missing structures. */ - if( ssl->transform_negotiate == NULL ) - { - ssl->transform_negotiate = mbedtls_calloc( 1, sizeof(mbedtls_ssl_transform) ); + if (ssl->transform_negotiate == NULL) { + ssl->transform_negotiate = mbedtls_calloc(1, sizeof(mbedtls_ssl_transform)); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - if( ssl->session_negotiate == NULL ) - { - ssl->session_negotiate = mbedtls_calloc( 1, sizeof(mbedtls_ssl_session) ); + if (ssl->session_negotiate == NULL) { + ssl->session_negotiate = mbedtls_calloc(1, sizeof(mbedtls_ssl_session)); } - if( ssl->handshake == NULL ) - { - ssl->handshake = mbedtls_calloc( 1, sizeof(mbedtls_ssl_handshake_params) ); + if (ssl->handshake == NULL) { + ssl->handshake = mbedtls_calloc(1, sizeof(mbedtls_ssl_handshake_params)); } #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) /* If the buffers are too small - reallocate */ - handle_buffer_resizing( ssl, 0, MBEDTLS_SSL_IN_BUFFER_LEN, - MBEDTLS_SSL_OUT_BUFFER_LEN ); + handle_buffer_resizing(ssl, 0, MBEDTLS_SSL_IN_BUFFER_LEN, + MBEDTLS_SSL_OUT_BUFFER_LEN); #endif /* All pointers should exist and can be directly freed without issue */ - if( ssl->handshake == NULL || + if (ssl->handshake == NULL || #if defined(MBEDTLS_SSL_PROTO_TLS1_2) ssl->transform_negotiate == NULL || #endif - ssl->session_negotiate == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc() of ssl sub-contexts failed" ) ); + ssl->session_negotiate == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc() of ssl sub-contexts failed")); - mbedtls_free( ssl->handshake ); + mbedtls_free(ssl->handshake); ssl->handshake = NULL; #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - mbedtls_free( ssl->transform_negotiate ); + mbedtls_free(ssl->transform_negotiate); ssl->transform_negotiate = NULL; #endif - mbedtls_free( ssl->session_negotiate ); + mbedtls_free(ssl->session_negotiate); ssl->session_negotiate = NULL; - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } /* Initialize structures */ - mbedtls_ssl_session_init( ssl->session_negotiate ); - ssl_handshake_params_init( ssl->handshake ); + mbedtls_ssl_session_init(ssl->session_negotiate); + ssl_handshake_params_init(ssl->handshake); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - mbedtls_ssl_transform_init( ssl->transform_negotiate ); + mbedtls_ssl_transform_init(ssl->transform_negotiate); #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_SSL_SESSION_TICKETS) ssl->handshake->new_session_tickets_count = - ssl->conf->new_session_tickets_count ; + ssl->conf->new_session_tickets_count; #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { ssl->handshake->alt_transform_out = ssl->transform_out; - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_PREPARING; - else + } else { ssl->handshake->retransmit_state = MBEDTLS_SSL_RETRANS_WAITING; + } - mbedtls_ssl_set_timer( ssl, 0 ); + mbedtls_ssl_set_timer(ssl, 0); } #endif @@ -1061,27 +1037,26 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECP_C) #if !defined(MBEDTLS_DEPRECATED_REMOVED) /* Heap allocate and translate curve_list from internal to IANA group ids */ - if ( ssl->conf->curve_list != NULL ) - { + if (ssl->conf->curve_list != NULL) { size_t length; const mbedtls_ecp_group_id *curve_list = ssl->conf->curve_list; - for( length = 0; ( curve_list[length] != MBEDTLS_ECP_DP_NONE ) && - ( length < MBEDTLS_ECP_DP_MAX ); length++ ) {} + for (length = 0; (curve_list[length] != MBEDTLS_ECP_DP_NONE) && + (length < MBEDTLS_ECP_DP_MAX); length++) { + } /* Leave room for zero termination */ - uint16_t *group_list = mbedtls_calloc( length + 1, sizeof(uint16_t) ); - if ( group_list == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + uint16_t *group_list = mbedtls_calloc(length + 1, sizeof(uint16_t)); + if (group_list == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - for( size_t i = 0; i < length; i++ ) - { + for (size_t i = 0; i < length; i++) { uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( - curve_list[i] ); - if ( tls_id == 0 ) - { - mbedtls_free( group_list ); - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + curve_list[i]); + if (tls_id == 0) { + mbedtls_free(group_list); + return MBEDTLS_ERR_SSL_BAD_CONFIG; } group_list[i] = tls_id; } @@ -1090,9 +1065,7 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) ssl->handshake->group_list = group_list; ssl->handshake->group_list_heap_allocated = 1; - } - else - { + } else { ssl->handshake->group_list = ssl->conf->group_list; ssl->handshake->group_list_heap_allocated = 0; } @@ -1104,77 +1077,78 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* Heap allocate and translate sig_hashes from internal hash identifiers to signature algorithms IANA identifiers. */ - if ( mbedtls_ssl_conf_is_tls12_only( ssl->conf ) && - ssl->conf->sig_hashes != NULL ) - { + if (mbedtls_ssl_conf_is_tls12_only(ssl->conf) && + ssl->conf->sig_hashes != NULL) { const int *md; const int *sig_hashes = ssl->conf->sig_hashes; size_t sig_algs_len = 0; uint16_t *p; #if defined(static_assert) - static_assert( MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN - <= ( SIZE_MAX - ( 2 * sizeof(uint16_t) ) ), - "MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN too big" ); + static_assert(MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN + <= (SIZE_MAX - (2 * sizeof(uint16_t))), + "MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN too big"); #endif - for( md = sig_hashes; *md != MBEDTLS_MD_NONE; md++ ) - { - if( mbedtls_ssl_hash_from_md_alg( *md ) == MBEDTLS_SSL_HASH_NONE ) + for (md = sig_hashes; *md != MBEDTLS_MD_NONE; md++) { + if (mbedtls_ssl_hash_from_md_alg(*md) == MBEDTLS_SSL_HASH_NONE) { continue; + } #if defined(MBEDTLS_ECDSA_C) - sig_algs_len += sizeof( uint16_t ); + sig_algs_len += sizeof(uint16_t); #endif #if defined(MBEDTLS_RSA_C) - sig_algs_len += sizeof( uint16_t ); + sig_algs_len += sizeof(uint16_t); #endif - if( sig_algs_len > MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + if (sig_algs_len > MBEDTLS_SSL_MAX_SIG_ALG_LIST_LEN) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } } - if( sig_algs_len < MBEDTLS_SSL_MIN_SIG_ALG_LIST_LEN ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + if (sig_algs_len < MBEDTLS_SSL_MIN_SIG_ALG_LIST_LEN) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - ssl->handshake->sig_algs = mbedtls_calloc( 1, sig_algs_len + - sizeof( uint16_t )); - if( ssl->handshake->sig_algs == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + ssl->handshake->sig_algs = mbedtls_calloc(1, sig_algs_len + + sizeof(uint16_t)); + if (ssl->handshake->sig_algs == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - p = (uint16_t *)ssl->handshake->sig_algs; - for( md = sig_hashes; *md != MBEDTLS_MD_NONE; md++ ) - { - unsigned char hash = mbedtls_ssl_hash_from_md_alg( *md ); - if( hash == MBEDTLS_SSL_HASH_NONE ) + p = (uint16_t *) ssl->handshake->sig_algs; + for (md = sig_hashes; *md != MBEDTLS_MD_NONE; md++) { + unsigned char hash = mbedtls_ssl_hash_from_md_alg(*md); + if (hash == MBEDTLS_SSL_HASH_NONE) { continue; + } #if defined(MBEDTLS_ECDSA_C) - *p = (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA); + *p = ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA); p++; #endif #if defined(MBEDTLS_RSA_C) - *p = (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA); + *p = ((hash << 8) | MBEDTLS_SSL_SIG_RSA); p++; #endif } *p = MBEDTLS_TLS_SIG_NONE; ssl->handshake->sig_algs_heap_allocated = 1; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ { ssl->handshake->sig_algs_heap_allocated = 0; } #endif /* !MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) /* Dummy cookie callbacks for defaults */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_cookie_write_dummy( void *ctx, - unsigned char **p, unsigned char *end, - const unsigned char *cli_id, size_t cli_id_len ) +static int ssl_cookie_write_dummy(void *ctx, + unsigned char **p, unsigned char *end, + const unsigned char *cli_id, size_t cli_id_len) { ((void) ctx); ((void) p); @@ -1182,13 +1156,13 @@ static int ssl_cookie_write_dummy( void *ctx, ((void) cli_id); ((void) cli_id_len); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_cookie_check_dummy( void *ctx, - const unsigned char *cookie, size_t cookie_len, - const unsigned char *cli_id, size_t cli_id_len ) +static int ssl_cookie_check_dummy(void *ctx, + const unsigned char *cookie, size_t cookie_len, + const unsigned char *cli_id, size_t cli_id_len) { ((void) ctx); ((void) cookie); @@ -1196,77 +1170,72 @@ static int ssl_cookie_check_dummy( void *ctx, ((void) cli_id); ((void) cli_id_len); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY && MBEDTLS_SSL_SRV_C */ /* * Initialize an SSL context */ -void mbedtls_ssl_init( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_init(mbedtls_ssl_context *ssl) { - memset( ssl, 0, sizeof( mbedtls_ssl_context ) ); + memset(ssl, 0, sizeof(mbedtls_ssl_context)); } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_conf_version_check( const mbedtls_ssl_context *ssl ) +static int ssl_conf_version_check(const mbedtls_ssl_context *ssl) { const mbedtls_ssl_config *conf = ssl->conf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( mbedtls_ssl_conf_is_tls13_only( conf ) ) - { - if( conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DTLS 1.3 is not yet supported." ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (mbedtls_ssl_conf_is_tls13_only(conf)) { + if (conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DTLS 1.3 is not yet supported.")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - MBEDTLS_SSL_DEBUG_MSG( 4, ( "The SSL configuration is tls13 only." ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(4, ("The SSL configuration is tls13 only.")); + return 0; } #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( mbedtls_ssl_conf_is_tls12_only( conf ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "The SSL configuration is tls12 only." ) ); - return( 0 ); + if (mbedtls_ssl_conf_is_tls12_only(conf)) { + MBEDTLS_SSL_DEBUG_MSG(4, ("The SSL configuration is tls12 only.")); + return 0; } #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( mbedtls_ssl_conf_is_hybrid_tls12_tls13( conf ) ) - { - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DTLS not yet supported in Hybrid TLS 1.3 + TLS 1.2" ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (mbedtls_ssl_conf_is_hybrid_tls12_tls13(conf)) { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DTLS not yet supported in Hybrid TLS 1.3 + TLS 1.2")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - if( conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "TLS 1.3 server is not supported yet." ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (conf->endpoint == MBEDTLS_SSL_IS_SERVER) { + MBEDTLS_SSL_DEBUG_MSG(1, ("TLS 1.3 server is not supported yet.")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - MBEDTLS_SSL_DEBUG_MSG( 4, ( "The SSL configuration is TLS 1.3 or TLS 1.2." ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(4, ("The SSL configuration is TLS 1.3 or TLS 1.2.")); + return 0; } #endif - MBEDTLS_SSL_DEBUG_MSG( 1, ( "The SSL configuration is invalid." ) ); - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + MBEDTLS_SSL_DEBUG_MSG(1, ("The SSL configuration is invalid.")); + return MBEDTLS_ERR_SSL_BAD_CONFIG; } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_conf_check(const mbedtls_ssl_context *ssl) { int ret; - ret = ssl_conf_version_check( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_conf_version_check(ssl); + if (ret != 0) { + return ret; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* RFC 8446 section 4.4.3 @@ -1278,31 +1247,30 @@ static int ssl_conf_check(const mbedtls_ssl_context *ssl) * bad config. * */ - if( mbedtls_ssl_conf_tls13_ephemeral_enabled( - (mbedtls_ssl_context *)ssl ) && + if (mbedtls_ssl_conf_tls13_ephemeral_enabled( + (mbedtls_ssl_context *) ssl) && ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && ssl->conf->max_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && ssl->conf->min_tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) - { + ssl->conf->authmode == MBEDTLS_SSL_VERIFY_OPTIONAL) { MBEDTLS_SSL_DEBUG_MSG( - 1, ( "Optional verify auth mode " - "is not available for TLS 1.3 client" ) ); - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + 1, ("Optional verify auth mode " + "is not available for TLS 1.3 client")); + return MBEDTLS_ERR_SSL_BAD_CONFIG; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /* Space for further checks */ - return( 0 ); + return 0; } /* * Setup an SSL context */ -int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, - const mbedtls_ssl_config *conf ) +int mbedtls_ssl_setup(mbedtls_ssl_context *ssl, + const mbedtls_ssl_config *conf) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; @@ -1310,8 +1278,9 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, ssl->conf = conf; - if( ( ret = ssl_conf_check( ssl ) ) != 0 ) - return( ret ); + if ((ret = ssl_conf_check(ssl)) != 0) { + return ret; + } /* * Prepare base structures @@ -1323,10 +1292,9 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) ssl->in_buf_len = in_buf_len; #endif - ssl->in_buf = mbedtls_calloc( 1, in_buf_len ); - if( ssl->in_buf == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", in_buf_len ) ); + ssl->in_buf = mbedtls_calloc(1, in_buf_len); + if (ssl->in_buf == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", in_buf_len)); ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto error; } @@ -1334,28 +1302,28 @@ int mbedtls_ssl_setup( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) ssl->out_buf_len = out_buf_len; #endif - ssl->out_buf = mbedtls_calloc( 1, out_buf_len ); - if( ssl->out_buf == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", out_buf_len ) ); + ssl->out_buf = mbedtls_calloc(1, out_buf_len); + if (ssl->out_buf == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", out_buf_len)); ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto error; } - mbedtls_ssl_reset_in_out_pointers( ssl ); + mbedtls_ssl_reset_in_out_pointers(ssl); #if defined(MBEDTLS_SSL_DTLS_SRTP) - memset( &ssl->dtls_srtp_info, 0, sizeof(ssl->dtls_srtp_info) ); + memset(&ssl->dtls_srtp_info, 0, sizeof(ssl->dtls_srtp_info)); #endif - if( ( ret = ssl_handshake_init( ssl ) ) != 0 ) + if ((ret = ssl_handshake_init(ssl)) != 0) { goto error; + } - return( 0 ); + return 0; error: - mbedtls_free( ssl->in_buf ); - mbedtls_free( ssl->out_buf ); + mbedtls_free(ssl->in_buf); + mbedtls_free(ssl->out_buf); ssl->conf = NULL; @@ -1378,7 +1346,7 @@ error: ssl->out_iv = NULL; ssl->out_msg = NULL; - return( ret ); + return ret; } /* @@ -1388,8 +1356,8 @@ error: * If partial is non-zero, keep data in the input buffer and client ID. * (Use when a DTLS client reconnects from the same port.) */ -void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, - int partial ) +void mbedtls_ssl_session_reset_msg_layer(mbedtls_ssl_context *ssl, + int partial) { #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) size_t in_buf_len = ssl->in_buf_len; @@ -1404,9 +1372,9 @@ void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, #endif /* Cancel any possibly running timer */ - mbedtls_ssl_set_timer( ssl, 0 ); + mbedtls_ssl_set_timer(ssl, 0); - mbedtls_ssl_reset_in_out_pointers( ssl ); + mbedtls_ssl_reset_in_out_pointers(ssl); /* Reset incoming message parsing */ ssl->in_offt = NULL; @@ -1423,10 +1391,9 @@ void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, #endif /* Keep current datagram if partial == 1 */ - if( partial == 0 ) - { + if (partial == 0) { ssl->in_left = 0; - memset( ssl->in_buf, 0, in_buf_len ); + memset(ssl->in_buf, 0, in_buf_len); } ssl->send_alert = 0; @@ -1435,51 +1402,49 @@ void mbedtls_ssl_session_reset_msg_layer( mbedtls_ssl_context *ssl, ssl->out_msgtype = 0; ssl->out_msglen = 0; ssl->out_left = 0; - memset( ssl->out_buf, 0, out_buf_len ); - memset( ssl->cur_out_ctr, 0, sizeof( ssl->cur_out_ctr ) ); + memset(ssl->out_buf, 0, out_buf_len); + memset(ssl->cur_out_ctr, 0, sizeof(ssl->cur_out_ctr)); ssl->transform_out = NULL; #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - mbedtls_ssl_dtls_replay_reset( ssl ); + mbedtls_ssl_dtls_replay_reset(ssl); #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->transform ) - { - mbedtls_ssl_transform_free( ssl->transform ); - mbedtls_free( ssl->transform ); + if (ssl->transform) { + mbedtls_ssl_transform_free(ssl->transform); + mbedtls_free(ssl->transform); ssl->transform = NULL; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_transform_free( ssl->transform_application ); - mbedtls_free( ssl->transform_application ); + mbedtls_ssl_transform_free(ssl->transform_application); + mbedtls_free(ssl->transform_application); ssl->transform_application = NULL; - if( ssl->handshake != NULL ) - { + if (ssl->handshake != NULL) { #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_transform_free( ssl->handshake->transform_earlydata ); - mbedtls_free( ssl->handshake->transform_earlydata ); + mbedtls_ssl_transform_free(ssl->handshake->transform_earlydata); + mbedtls_free(ssl->handshake->transform_earlydata); ssl->handshake->transform_earlydata = NULL; #endif - mbedtls_ssl_transform_free( ssl->handshake->transform_handshake ); - mbedtls_free( ssl->handshake->transform_handshake ); + mbedtls_ssl_transform_free(ssl->handshake->transform_handshake); + mbedtls_free(ssl->handshake->transform_handshake); ssl->handshake->transform_handshake = NULL; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ } -int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ) +int mbedtls_ssl_session_reset_int(mbedtls_ssl_context *ssl, int partial) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ssl->state = MBEDTLS_SSL_HELLO_REQUEST; - mbedtls_ssl_session_reset_msg_layer( ssl, partial ); + mbedtls_ssl_session_reset_msg_layer(ssl, partial); /* Reset renegotiation state */ #if defined(MBEDTLS_SSL_RENEGOTIATION) @@ -1487,17 +1452,16 @@ int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ) ssl->renego_records_seen = 0; ssl->verify_data_len = 0; - memset( ssl->own_verify_data, 0, MBEDTLS_SSL_VERIFY_DATA_MAX_LEN ); - memset( ssl->peer_verify_data, 0, MBEDTLS_SSL_VERIFY_DATA_MAX_LEN ); + memset(ssl->own_verify_data, 0, MBEDTLS_SSL_VERIFY_DATA_MAX_LEN); + memset(ssl->peer_verify_data, 0, MBEDTLS_SSL_VERIFY_DATA_MAX_LEN); #endif ssl->secure_renegotiation = MBEDTLS_SSL_LEGACY_RENEGOTIATION; ssl->session_in = NULL; ssl->session_out = NULL; - if( ssl->session ) - { - mbedtls_ssl_session_free( ssl->session ); - mbedtls_free( ssl->session ); + if (ssl->session) { + mbedtls_ssl_session_free(ssl->session); + mbedtls_free(ssl->session); ssl->session = NULL; } @@ -1508,108 +1472,108 @@ int mbedtls_ssl_session_reset_int( mbedtls_ssl_context *ssl, int partial ) #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) int free_cli_id = 1; #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) - free_cli_id = ( partial == 0 ); + free_cli_id = (partial == 0); #endif - if( free_cli_id ) - { - mbedtls_free( ssl->cli_id ); + if (free_cli_id) { + mbedtls_free(ssl->cli_id); ssl->cli_id = NULL; ssl->cli_id_len = 0; } #endif - if( ( ret = ssl_handshake_init( ssl ) ) != 0 ) - return( ret ); + if ((ret = ssl_handshake_init(ssl)) != 0) { + return ret; + } - return( 0 ); + return 0; } /* * Reset an initialized and used SSL context for re-use while retaining * all application-set variables, function pointers and data. */ -int mbedtls_ssl_session_reset( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_session_reset(mbedtls_ssl_context *ssl) { - return( mbedtls_ssl_session_reset_int( ssl, 0 ) ); + return mbedtls_ssl_session_reset_int(ssl, 0); } /* * SSL set accessors */ -void mbedtls_ssl_conf_endpoint( mbedtls_ssl_config *conf, int endpoint ) +void mbedtls_ssl_conf_endpoint(mbedtls_ssl_config *conf, int endpoint) { conf->endpoint = endpoint; } -void mbedtls_ssl_conf_transport( mbedtls_ssl_config *conf, int transport ) +void mbedtls_ssl_conf_transport(mbedtls_ssl_config *conf, int transport) { conf->transport = transport; } #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) -void mbedtls_ssl_conf_dtls_anti_replay( mbedtls_ssl_config *conf, char mode ) +void mbedtls_ssl_conf_dtls_anti_replay(mbedtls_ssl_config *conf, char mode) { conf->anti_replay = mode; } #endif -void mbedtls_ssl_conf_dtls_badmac_limit( mbedtls_ssl_config *conf, unsigned limit ) +void mbedtls_ssl_conf_dtls_badmac_limit(mbedtls_ssl_config *conf, unsigned limit) { conf->badmac_limit = limit; } #if defined(MBEDTLS_SSL_PROTO_DTLS) -void mbedtls_ssl_set_datagram_packing( mbedtls_ssl_context *ssl, - unsigned allow_packing ) +void mbedtls_ssl_set_datagram_packing(mbedtls_ssl_context *ssl, + unsigned allow_packing) { ssl->disable_datagram_packing = !allow_packing; } -void mbedtls_ssl_conf_handshake_timeout( mbedtls_ssl_config *conf, - uint32_t min, uint32_t max ) +void mbedtls_ssl_conf_handshake_timeout(mbedtls_ssl_config *conf, + uint32_t min, uint32_t max) { conf->hs_timeout_min = min; conf->hs_timeout_max = max; } #endif -void mbedtls_ssl_conf_authmode( mbedtls_ssl_config *conf, int authmode ) +void mbedtls_ssl_conf_authmode(mbedtls_ssl_config *conf, int authmode) { conf->authmode = authmode; } #if defined(MBEDTLS_X509_CRT_PARSE_C) -void mbedtls_ssl_conf_verify( mbedtls_ssl_config *conf, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) +void mbedtls_ssl_conf_verify(mbedtls_ssl_config *conf, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { conf->f_vrfy = f_vrfy; conf->p_vrfy = p_vrfy; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_ssl_conf_rng( mbedtls_ssl_config *conf, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +void mbedtls_ssl_conf_rng(mbedtls_ssl_config *conf, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { conf->f_rng = f_rng; conf->p_rng = p_rng; } -void mbedtls_ssl_conf_dbg( mbedtls_ssl_config *conf, - void (*f_dbg)(void *, int, const char *, int, const char *), - void *p_dbg ) +void mbedtls_ssl_conf_dbg(mbedtls_ssl_config *conf, + void (*f_dbg)(void *, int, const char *, int, const char *), + void *p_dbg) { conf->f_dbg = f_dbg; conf->p_dbg = p_dbg; } -void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, - void *p_bio, - mbedtls_ssl_send_t *f_send, - mbedtls_ssl_recv_t *f_recv, - mbedtls_ssl_recv_timeout_t *f_recv_timeout ) +void mbedtls_ssl_set_bio(mbedtls_ssl_context *ssl, + void *p_bio, + mbedtls_ssl_send_t *f_send, + mbedtls_ssl_recv_t *f_recv, + mbedtls_ssl_recv_timeout_t *f_recv_timeout) { ssl->p_bio = p_bio; ssl->f_send = f_send; @@ -1618,35 +1582,35 @@ void mbedtls_ssl_set_bio( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_PROTO_DTLS) -void mbedtls_ssl_set_mtu( mbedtls_ssl_context *ssl, uint16_t mtu ) +void mbedtls_ssl_set_mtu(mbedtls_ssl_context *ssl, uint16_t mtu) { ssl->mtu = mtu; } #endif -void mbedtls_ssl_conf_read_timeout( mbedtls_ssl_config *conf, uint32_t timeout ) +void mbedtls_ssl_conf_read_timeout(mbedtls_ssl_config *conf, uint32_t timeout) { conf->read_timeout = timeout; } -void mbedtls_ssl_set_timer_cb( mbedtls_ssl_context *ssl, - void *p_timer, - mbedtls_ssl_set_timer_t *f_set_timer, - mbedtls_ssl_get_timer_t *f_get_timer ) +void mbedtls_ssl_set_timer_cb(mbedtls_ssl_context *ssl, + void *p_timer, + mbedtls_ssl_set_timer_t *f_set_timer, + mbedtls_ssl_get_timer_t *f_get_timer) { ssl->p_timer = p_timer; ssl->f_set_timer = f_set_timer; ssl->f_get_timer = f_get_timer; /* Make sure we start with no timer running */ - mbedtls_ssl_set_timer( ssl, 0 ); + mbedtls_ssl_set_timer(ssl, 0); } #if defined(MBEDTLS_SSL_SRV_C) -void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, - void *p_cache, - mbedtls_ssl_cache_get_t *f_get_cache, - mbedtls_ssl_cache_set_t *f_set_cache ) +void mbedtls_ssl_conf_session_cache(mbedtls_ssl_config *conf, + void *p_cache, + mbedtls_ssl_cache_get_t *f_get_cache, + mbedtls_ssl_cache_set_t *f_set_cache) { conf->p_cache = p_cache; conf->f_get_cache = f_get_cache; @@ -1655,71 +1619,70 @@ void mbedtls_ssl_conf_session_cache( mbedtls_ssl_config *conf, #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_CLI_C) -int mbedtls_ssl_set_session( mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session ) +int mbedtls_ssl_set_session(mbedtls_ssl_context *ssl, const mbedtls_ssl_session *session) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl == NULL || + if (ssl == NULL || session == NULL || ssl->session_negotiate == NULL || - ssl->conf->endpoint != MBEDTLS_SSL_IS_CLIENT ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ssl->conf->endpoint != MBEDTLS_SSL_IS_CLIENT) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - if( ssl->handshake->resume == 1 ) - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (ssl->handshake->resume == 1) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( session->ciphersuite ); + mbedtls_ssl_ciphersuite_from_id(session->ciphersuite); - if( mbedtls_ssl_validate_ciphersuite( + if (mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, MBEDTLS_SSL_VERSION_TLS1_3, - MBEDTLS_SSL_VERSION_TLS1_3 ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "%d is not a valid TLS 1.3 ciphersuite.", - session->ciphersuite ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + MBEDTLS_SSL_VERSION_TLS1_3) != 0) { + MBEDTLS_SSL_DEBUG_MSG(4, ("%d is not a valid TLS 1.3 ciphersuite.", + session->ciphersuite)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( ( ret = mbedtls_ssl_session_copy( ssl->session_negotiate, - session ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ssl_session_copy(ssl->session_negotiate, + session)) != 0) { + return ret; + } ssl->handshake->resume = 1; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_CLI_C */ -void mbedtls_ssl_conf_ciphersuites( mbedtls_ssl_config *conf, - const int *ciphersuites ) +void mbedtls_ssl_conf_ciphersuites(mbedtls_ssl_config *conf, + const int *ciphersuites) { conf->ciphersuite_list = ciphersuites; } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) -void mbedtls_ssl_conf_tls13_key_exchange_modes( mbedtls_ssl_config *conf, - const int kex_modes ) +void mbedtls_ssl_conf_tls13_key_exchange_modes(mbedtls_ssl_config *conf, + const int kex_modes) { conf->tls13_kex_modes = kex_modes & MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; } #if defined(MBEDTLS_SSL_EARLY_DATA) -void mbedtls_ssl_tls13_conf_early_data( mbedtls_ssl_config *conf, - int early_data_enabled ) +void mbedtls_ssl_tls13_conf_early_data(mbedtls_ssl_config *conf, + int early_data_enabled) { conf->early_data_enabled = early_data_enabled; } #if defined(MBEDTLS_SSL_SRV_C) void mbedtls_ssl_tls13_conf_max_early_data_size( - mbedtls_ssl_config *conf, uint32_t max_early_data_size ) + mbedtls_ssl_config *conf, uint32_t max_early_data_size) { conf->max_early_data_size = max_early_data_size; } @@ -1729,74 +1692,71 @@ void mbedtls_ssl_tls13_conf_max_early_data_size( #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_X509_CRT_PARSE_C) -void mbedtls_ssl_conf_cert_profile( mbedtls_ssl_config *conf, - const mbedtls_x509_crt_profile *profile ) +void mbedtls_ssl_conf_cert_profile(mbedtls_ssl_config *conf, + const mbedtls_x509_crt_profile *profile) { conf->cert_profile = profile; } -static void ssl_key_cert_free( mbedtls_ssl_key_cert *key_cert ) +static void ssl_key_cert_free(mbedtls_ssl_key_cert *key_cert) { mbedtls_ssl_key_cert *cur = key_cert, *next; - while( cur != NULL ) - { + while (cur != NULL) { next = cur->next; - mbedtls_free( cur ); + mbedtls_free(cur); cur = next; } } /* Append a new keycert entry to a (possibly empty) list */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_append_key_cert( mbedtls_ssl_key_cert **head, - mbedtls_x509_crt *cert, - mbedtls_pk_context *key ) +static int ssl_append_key_cert(mbedtls_ssl_key_cert **head, + mbedtls_x509_crt *cert, + mbedtls_pk_context *key) { mbedtls_ssl_key_cert *new_cert; - if( cert == NULL ) - { + if (cert == NULL) { /* Free list if cert is null */ - ssl_key_cert_free( *head ); + ssl_key_cert_free(*head); *head = NULL; - return( 0 ); + return 0; } - new_cert = mbedtls_calloc( 1, sizeof( mbedtls_ssl_key_cert ) ); - if( new_cert == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + new_cert = mbedtls_calloc(1, sizeof(mbedtls_ssl_key_cert)); + if (new_cert == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } new_cert->cert = cert; new_cert->key = key; new_cert->next = NULL; /* Update head if the list was null, else add to the end */ - if( *head == NULL ) - { + if (*head == NULL) { *head = new_cert; - } - else - { + } else { mbedtls_ssl_key_cert *cur = *head; - while( cur->next != NULL ) + while (cur->next != NULL) { cur = cur->next; + } cur->next = new_cert; } - return( 0 ); + return 0; } -int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, +int mbedtls_ssl_conf_own_cert(mbedtls_ssl_config *conf, mbedtls_x509_crt *own_cert, - mbedtls_pk_context *pk_key ) + mbedtls_pk_context *pk_key) { - return( ssl_append_key_cert( &conf->key_cert, own_cert, pk_key ) ); + return ssl_append_key_cert(&conf->key_cert, own_cert, pk_key); } -void mbedtls_ssl_conf_ca_chain( mbedtls_ssl_config *conf, +void mbedtls_ssl_conf_ca_chain(mbedtls_ssl_config *conf, mbedtls_x509_crt *ca_chain, - mbedtls_x509_crl *ca_crl ) + mbedtls_x509_crl *ca_crl) { conf->ca_chain = ca_chain; conf->ca_crl = ca_crl; @@ -1810,9 +1770,9 @@ void mbedtls_ssl_conf_ca_chain( mbedtls_ssl_config *conf, } #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) -void mbedtls_ssl_conf_ca_cb( mbedtls_ssl_config *conf, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb ) +void mbedtls_ssl_conf_ca_cb(mbedtls_ssl_config *conf, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb) { conf->f_ca_cb = f_ca_cb; conf->p_ca_cb = p_ca_cb; @@ -1826,48 +1786,48 @@ void mbedtls_ssl_conf_ca_cb( mbedtls_ssl_config *conf, #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -const unsigned char *mbedtls_ssl_get_hs_sni( mbedtls_ssl_context *ssl, - size_t *name_len ) +const unsigned char *mbedtls_ssl_get_hs_sni(mbedtls_ssl_context *ssl, + size_t *name_len) { *name_len = ssl->handshake->sni_name_len; - return( ssl->handshake->sni_name ); + return ssl->handshake->sni_name; } -int mbedtls_ssl_set_hs_own_cert( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *own_cert, - mbedtls_pk_context *pk_key ) +int mbedtls_ssl_set_hs_own_cert(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *own_cert, + mbedtls_pk_context *pk_key) { - return( ssl_append_key_cert( &ssl->handshake->sni_key_cert, - own_cert, pk_key ) ); + return ssl_append_key_cert(&ssl->handshake->sni_key_cert, + own_cert, pk_key); } -void mbedtls_ssl_set_hs_ca_chain( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *ca_chain, - mbedtls_x509_crl *ca_crl ) +void mbedtls_ssl_set_hs_ca_chain(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *ca_chain, + mbedtls_x509_crl *ca_crl) { ssl->handshake->sni_ca_chain = ca_chain; ssl->handshake->sni_ca_crl = ca_crl; } #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) -void mbedtls_ssl_set_hs_dn_hints( mbedtls_ssl_context *ssl, - const mbedtls_x509_crt *crt) +void mbedtls_ssl_set_hs_dn_hints(mbedtls_ssl_context *ssl, + const mbedtls_x509_crt *crt) { ssl->handshake->dn_hints = crt; } #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ -void mbedtls_ssl_set_hs_authmode( mbedtls_ssl_context *ssl, - int authmode ) +void mbedtls_ssl_set_hs_authmode(mbedtls_ssl_context *ssl, + int authmode) { ssl->handshake->sni_authmode = authmode; } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_X509_CRT_PARSE_C) -void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) +void mbedtls_ssl_set_verify(mbedtls_ssl_context *ssl, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { ssl->f_vrfy = f_vrfy; ssl->p_vrfy = p_vrfy; @@ -1878,169 +1838,177 @@ void mbedtls_ssl_set_verify( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_USE_PSA_CRYPTO) static psa_status_t mbedtls_ssl_set_hs_ecjpake_password_common( - mbedtls_ssl_context *ssl, - mbedtls_svc_key_id_t pwd ) + mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd) { psa_status_t status; psa_pake_role_t psa_role; psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); - psa_pake_cs_set_algorithm( &cipher_suite, PSA_ALG_JPAKE ); - psa_pake_cs_set_primitive( &cipher_suite, - PSA_PAKE_PRIMITIVE( PSA_PAKE_PRIMITIVE_TYPE_ECC, - PSA_ECC_FAMILY_SECP_R1, - 256) ); - psa_pake_cs_set_hash( &cipher_suite, PSA_ALG_SHA_256 ); + psa_pake_cs_set_algorithm(&cipher_suite, PSA_ALG_JPAKE); + psa_pake_cs_set_primitive(&cipher_suite, + PSA_PAKE_PRIMITIVE(PSA_PAKE_PRIMITIVE_TYPE_ECC, + PSA_ECC_FAMILY_SECP_R1, + 256)); + psa_pake_cs_set_hash(&cipher_suite, PSA_ALG_SHA_256); - status = psa_pake_setup( &ssl->handshake->psa_pake_ctx, &cipher_suite ); - if( status != PSA_SUCCESS ) + status = psa_pake_setup(&ssl->handshake->psa_pake_ctx, &cipher_suite); + if (status != PSA_SUCCESS) { return status; + } - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { psa_role = PSA_PAKE_ROLE_SERVER; - else + } else { psa_role = PSA_PAKE_ROLE_CLIENT; + } - status = psa_pake_set_role( &ssl->handshake->psa_pake_ctx, psa_role ); - if( status != PSA_SUCCESS ) + status = psa_pake_set_role(&ssl->handshake->psa_pake_ctx, psa_role); + if (status != PSA_SUCCESS) { return status; + } - status = psa_pake_set_password_key( &ssl->handshake->psa_pake_ctx, pwd ); - if( status != PSA_SUCCESS ) + status = psa_pake_set_password_key(&ssl->handshake->psa_pake_ctx, pwd); + if (status != PSA_SUCCESS) { return status; + } ssl->handshake->psa_pake_ctx_is_ok = 1; - return ( PSA_SUCCESS ); + return PSA_SUCCESS; } -int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, - const unsigned char *pw, - size_t pw_len ) +int mbedtls_ssl_set_hs_ecjpake_password(mbedtls_ssl_context *ssl, + const unsigned char *pw, + size_t pw_len) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t status; - if( ssl->handshake == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - /* Empty password is not valid */ - if( ( pw == NULL) || ( pw_len == 0 ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - - status = psa_import_key( &attributes, pw, pw_len, - &ssl->handshake->psa_pake_password ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - - status = mbedtls_ssl_set_hs_ecjpake_password_common( ssl, - ssl->handshake->psa_pake_password ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + if (ssl->handshake == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - return( 0 ); + /* Empty password is not valid */ + if ((pw == NULL) || (pw_len == 0)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); + + status = psa_import_key(&attributes, pw, pw_len, + &ssl->handshake->psa_pake_password); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } + + status = mbedtls_ssl_set_hs_ecjpake_password_common(ssl, + ssl->handshake->psa_pake_password); + if (status != PSA_SUCCESS) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } + + return 0; } -int mbedtls_ssl_set_hs_ecjpake_password_opaque( mbedtls_ssl_context *ssl, - mbedtls_svc_key_id_t pwd ) +int mbedtls_ssl_set_hs_ecjpake_password_opaque(mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t pwd) { psa_status_t status; - if( ssl->handshake == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( mbedtls_svc_key_id_is_null( pwd ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - status = mbedtls_ssl_set_hs_ecjpake_password_common( ssl, pwd ); - if( status != PSA_SUCCESS ) - { - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + if (ssl->handshake == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - return( 0 ); + if (mbedtls_svc_key_id_is_null(pwd)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + status = mbedtls_ssl_set_hs_ecjpake_password_common(ssl, pwd); + if (status != PSA_SUCCESS) { + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } + + return 0; } #else /* MBEDTLS_USE_PSA_CRYPTO */ -int mbedtls_ssl_set_hs_ecjpake_password( mbedtls_ssl_context *ssl, - const unsigned char *pw, - size_t pw_len ) +int mbedtls_ssl_set_hs_ecjpake_password(mbedtls_ssl_context *ssl, + const unsigned char *pw, + size_t pw_len) { mbedtls_ecjpake_role role; - if( ssl->handshake == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->handshake == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } /* Empty password is not valid */ - if( ( pw == NULL) || ( pw_len == 0 ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((pw == NULL) || (pw_len == 0)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { role = MBEDTLS_ECJPAKE_SERVER; - else + } else { role = MBEDTLS_ECJPAKE_CLIENT; + } - return( mbedtls_ecjpake_setup( &ssl->handshake->ecjpake_ctx, - role, - MBEDTLS_MD_SHA256, - MBEDTLS_ECP_DP_SECP256R1, - pw, pw_len ) ); + return mbedtls_ecjpake_setup(&ssl->handshake->ecjpake_ctx, + role, + MBEDTLS_MD_SHA256, + MBEDTLS_ECP_DP_SECP256R1, + pw, pw_len); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) -int mbedtls_ssl_conf_has_static_psk( mbedtls_ssl_config const *conf ) +int mbedtls_ssl_conf_has_static_psk(mbedtls_ssl_config const *conf) { - if( conf->psk_identity == NULL || - conf->psk_identity_len == 0 ) - { - return( 0 ); + if (conf->psk_identity == NULL || + conf->psk_identity_len == 0) { + return 0; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - return( 1 ); + if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) { + return 1; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL && conf->psk_len != 0 ) - return( 1 ); + if (conf->psk != NULL && conf->psk_len != 0) { + return 1; + } - return( 0 ); + return 0; } -static void ssl_conf_remove_psk( mbedtls_ssl_config *conf ) +static void ssl_conf_remove_psk(mbedtls_ssl_config *conf) { /* Remove reference to existing PSK, if any. */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - { + if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) { /* The maintenance of the PSK key slot is the * user's responsibility. */ conf->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL ) - { - mbedtls_platform_zeroize( conf->psk, conf->psk_len ); + if (conf->psk != NULL) { + mbedtls_platform_zeroize(conf->psk, conf->psk_len); - mbedtls_free( conf->psk ); + mbedtls_free(conf->psk); conf->psk = NULL; conf->psk_len = 0; } /* Remove reference to PSK identity, if any. */ - if( conf->psk_identity != NULL ) - { - mbedtls_free( conf->psk_identity ); + if (conf->psk_identity != NULL) { + mbedtls_free(conf->psk_identity); conf->psk_identity = NULL; conf->psk_identity_len = 0; } @@ -2051,87 +2019,90 @@ static void ssl_conf_remove_psk( mbedtls_ssl_config *conf ) * to make a copy of it in the SSL config. * On failure, the PSK identity in the config remains unset. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_conf_set_psk_identity( mbedtls_ssl_config *conf, - unsigned char const *psk_identity, - size_t psk_identity_len ) +static int ssl_conf_set_psk_identity(mbedtls_ssl_config *conf, + unsigned char const *psk_identity, + size_t psk_identity_len) { /* Identity len will be encoded on two bytes */ - if( psk_identity == NULL || + if (psk_identity == NULL || psk_identity_len == 0 || - ( psk_identity_len >> 16 ) != 0 || - psk_identity_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + (psk_identity_len >> 16) != 0 || + psk_identity_len > MBEDTLS_SSL_OUT_CONTENT_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - conf->psk_identity = mbedtls_calloc( 1, psk_identity_len ); - if( conf->psk_identity == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + conf->psk_identity = mbedtls_calloc(1, psk_identity_len); + if (conf->psk_identity == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } conf->psk_identity_len = psk_identity_len; - memcpy( conf->psk_identity, psk_identity, conf->psk_identity_len ); + memcpy(conf->psk_identity, psk_identity, conf->psk_identity_len); - return( 0 ); + return 0; } -int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, - const unsigned char *psk, size_t psk_len, - const unsigned char *psk_identity, size_t psk_identity_len ) +int mbedtls_ssl_conf_psk(mbedtls_ssl_config *conf, + const unsigned char *psk, size_t psk_len, + const unsigned char *psk_identity, size_t psk_identity_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( mbedtls_ssl_conf_has_static_psk( conf ) ) - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (mbedtls_ssl_conf_has_static_psk(conf)) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } /* Check and set raw PSK */ - if( psk == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( psk_len == 0 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( psk_len > MBEDTLS_PSK_MAX_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (psk == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + if (psk_len == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + if (psk_len > MBEDTLS_PSK_MAX_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( ( conf->psk = mbedtls_calloc( 1, psk_len ) ) == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((conf->psk = mbedtls_calloc(1, psk_len)) == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } conf->psk_len = psk_len; - memcpy( conf->psk, psk, conf->psk_len ); + memcpy(conf->psk, psk, conf->psk_len); /* Check and set PSK Identity */ - ret = ssl_conf_set_psk_identity( conf, psk_identity, psk_identity_len ); - if( ret != 0 ) - ssl_conf_remove_psk( conf ); + ret = ssl_conf_set_psk_identity(conf, psk_identity, psk_identity_len); + if (ret != 0) { + ssl_conf_remove_psk(conf); + } - return( ret ); + return ret; } -static void ssl_remove_psk( mbedtls_ssl_context *ssl ) +static void ssl_remove_psk(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) - { + if (!mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) { /* The maintenance of the external PSK key slot is the * user's responsibility. */ - if( ssl->handshake->psk_opaque_is_internal ) - { - psa_destroy_key( ssl->handshake->psk_opaque ); + if (ssl->handshake->psk_opaque_is_internal) { + psa_destroy_key(ssl->handshake->psk_opaque); ssl->handshake->psk_opaque_is_internal = 0; } ssl->handshake->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT; } #else - if( ssl->handshake->psk != NULL ) - { - mbedtls_platform_zeroize( ssl->handshake->psk, - ssl->handshake->psk_len ); - mbedtls_free( ssl->handshake->psk ); + if (ssl->handshake->psk != NULL) { + mbedtls_platform_zeroize(ssl->handshake->psk, + ssl->handshake->psk_len); + mbedtls_free(ssl->handshake->psk); ssl->handshake->psk_len = 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ } -int mbedtls_ssl_set_hs_psk( mbedtls_ssl_context *ssl, - const unsigned char *psk, size_t psk_len ) +int mbedtls_ssl_set_hs_psk(mbedtls_ssl_context *ssl, + const unsigned char *psk, size_t psk_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_key_attributes_t key_attributes = psa_key_attributes_init(); @@ -2140,100 +2111,107 @@ int mbedtls_ssl_set_hs_psk( mbedtls_ssl_context *ssl, mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( psk == NULL || ssl->handshake == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (psk == NULL || ssl->handshake == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( psk_len > MBEDTLS_PSK_MAX_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (psk_len > MBEDTLS_PSK_MAX_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl_remove_psk( ssl ); + ssl_remove_psk(ssl); #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { - if( ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) - alg = PSA_ALG_TLS12_PSK_TO_MS( PSA_ALG_SHA_384 ); - else - alg = PSA_ALG_TLS12_PSK_TO_MS( PSA_ALG_SHA_256 ); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { + if (ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384) { + alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); + } else { + alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); + } + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - alg = PSA_ALG_HKDF_EXTRACT( PSA_ALG_ANY_HASH ); - psa_set_key_usage_flags( &key_attributes, - PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + alg = PSA_ALG_HKDF_EXTRACT(PSA_ALG_ANY_HASH); + psa_set_key_usage_flags(&key_attributes, + PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - psa_set_key_algorithm( &key_attributes, alg ); - psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE ); + psa_set_key_algorithm(&key_attributes, alg); + psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE); - status = psa_import_key( &key_attributes, psk, psk_len, &key ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_import_key(&key_attributes, psk, psk_len, &key); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } /* Allow calling psa_destroy_key() on psk remove */ ssl->handshake->psk_opaque_is_internal = 1; - return mbedtls_ssl_set_hs_psk_opaque( ssl, key ); + return mbedtls_ssl_set_hs_psk_opaque(ssl, key); #else - if( ( ssl->handshake->psk = mbedtls_calloc( 1, psk_len ) ) == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((ssl->handshake->psk = mbedtls_calloc(1, psk_len)) == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } ssl->handshake->psk_len = psk_len; - memcpy( ssl->handshake->psk, psk, ssl->handshake->psk_len ); + memcpy(ssl->handshake->psk, psk, ssl->handshake->psk_len); - return( 0 ); + return 0; #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #if defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, - mbedtls_svc_key_id_t psk, - const unsigned char *psk_identity, - size_t psk_identity_len ) +int mbedtls_ssl_conf_psk_opaque(mbedtls_ssl_config *conf, + mbedtls_svc_key_id_t psk, + const unsigned char *psk_identity, + size_t psk_identity_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* We currently only support one PSK, raw or opaque. */ - if( mbedtls_ssl_conf_has_static_psk( conf ) ) - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (mbedtls_ssl_conf_has_static_psk(conf)) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } /* Check and set opaque PSK */ - if( mbedtls_svc_key_id_is_null( psk ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mbedtls_svc_key_id_is_null(psk)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } conf->psk_opaque = psk; /* Check and set PSK Identity */ - ret = ssl_conf_set_psk_identity( conf, psk_identity, - psk_identity_len ); - if( ret != 0 ) - ssl_conf_remove_psk( conf ); + ret = ssl_conf_set_psk_identity(conf, psk_identity, + psk_identity_len); + if (ret != 0) { + ssl_conf_remove_psk(conf); + } - return( ret ); + return ret; } -int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, - mbedtls_svc_key_id_t psk ) +int mbedtls_ssl_set_hs_psk_opaque(mbedtls_ssl_context *ssl, + mbedtls_svc_key_id_t psk) { - if( ( mbedtls_svc_key_id_is_null( psk ) ) || - ( ssl->handshake == NULL ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((mbedtls_svc_key_id_is_null(psk)) || + (ssl->handshake == NULL)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl_remove_psk( ssl ); + ssl_remove_psk(ssl); ssl->handshake->psk_opaque = psk; - return( 0 ); + return 0; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_SRV_C) -void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, - int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, - size_t), - void *p_psk ) +void mbedtls_ssl_conf_psk_cb(mbedtls_ssl_config *conf, + int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, + size_t), + void *p_psk) { conf->f_psk = f_psk; conf->p_psk = p_psk; @@ -2244,64 +2222,67 @@ void mbedtls_ssl_conf_psk_cb( mbedtls_ssl_config *conf, #if defined(MBEDTLS_USE_PSA_CRYPTO) static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode( - psa_algorithm_t alg ) + psa_algorithm_t alg) { #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( alg == PSA_ALG_CBC_NO_PADDING ) - return( MBEDTLS_SSL_MODE_CBC ); + if (alg == PSA_ALG_CBC_NO_PADDING) { + return MBEDTLS_SSL_MODE_CBC; + } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ - if( PSA_ALG_IS_AEAD( alg ) ) - return( MBEDTLS_SSL_MODE_AEAD ); - return( MBEDTLS_SSL_MODE_STREAM ); + if (PSA_ALG_IS_AEAD(alg)) { + return MBEDTLS_SSL_MODE_AEAD; + } + return MBEDTLS_SSL_MODE_STREAM; } #else /* MBEDTLS_USE_PSA_CRYPTO */ static mbedtls_ssl_mode_t mbedtls_ssl_get_base_mode( - mbedtls_cipher_mode_t mode ) + mbedtls_cipher_mode_t mode) { #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( mode == MBEDTLS_MODE_CBC ) - return( MBEDTLS_SSL_MODE_CBC ); + if (mode == MBEDTLS_MODE_CBC) { + return MBEDTLS_SSL_MODE_CBC; + } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ #if defined(MBEDTLS_GCM_C) || \ defined(MBEDTLS_CCM_C) || \ defined(MBEDTLS_CHACHAPOLY_C) - if( mode == MBEDTLS_MODE_GCM || + if (mode == MBEDTLS_MODE_GCM || mode == MBEDTLS_MODE_CCM || - mode == MBEDTLS_MODE_CHACHAPOLY ) - return( MBEDTLS_SSL_MODE_AEAD ); + mode == MBEDTLS_MODE_CHACHAPOLY) { + return MBEDTLS_SSL_MODE_AEAD; + } #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ - return( MBEDTLS_SSL_MODE_STREAM ); + return MBEDTLS_SSL_MODE_STREAM; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ static mbedtls_ssl_mode_t mbedtls_ssl_get_actual_mode( mbedtls_ssl_mode_t base_mode, - int encrypt_then_mac ) + int encrypt_then_mac) { #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - if( encrypt_then_mac == MBEDTLS_SSL_ETM_ENABLED && - base_mode == MBEDTLS_SSL_MODE_CBC ) - { - return( MBEDTLS_SSL_MODE_CBC_ETM ); + if (encrypt_then_mac == MBEDTLS_SSL_ETM_ENABLED && + base_mode == MBEDTLS_SSL_MODE_CBC) { + return MBEDTLS_SSL_MODE_CBC_ETM; } #else (void) encrypt_then_mac; #endif - return( base_mode ); + return base_mode; } mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_transform( - const mbedtls_ssl_transform *transform ) + const mbedtls_ssl_transform *transform) { mbedtls_ssl_mode_t base_mode = mbedtls_ssl_get_base_mode( #if defined(MBEDTLS_USE_PSA_CRYPTO) - transform->psa_alg + transform->psa_alg #else - mbedtls_cipher_get_cipher_mode( &transform->cipher_ctx_enc ) + mbedtls_cipher_get_cipher_mode(&transform->cipher_ctx_enc) #endif ); @@ -2309,14 +2290,14 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_transform( #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) encrypt_then_mac = transform->encrypt_then_mac; #endif - return( mbedtls_ssl_get_actual_mode( base_mode, encrypt_then_mac ) ); + return mbedtls_ssl_get_actual_mode(base_mode, encrypt_then_mac); } mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - int encrypt_then_mac, + int encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - const mbedtls_ssl_ciphersuite_t *suite ) + const mbedtls_ssl_ciphersuite_t *suite) { mbedtls_ssl_mode_t base_mode = MBEDTLS_SSL_MODE_STREAM; @@ -2325,24 +2306,24 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( psa_algorithm_t alg; psa_key_type_t type; size_t size; - status = mbedtls_ssl_cipher_to_psa( suite->cipher, 0, &alg, &type, &size ); - if( status == PSA_SUCCESS ) - base_mode = mbedtls_ssl_get_base_mode( alg ); + status = mbedtls_ssl_cipher_to_psa(suite->cipher, 0, &alg, &type, &size); + if (status == PSA_SUCCESS) { + base_mode = mbedtls_ssl_get_base_mode(alg); + } #else const mbedtls_cipher_info_t *cipher = - mbedtls_cipher_info_from_type( suite->cipher ); - if( cipher != NULL ) - { + mbedtls_cipher_info_from_type(suite->cipher); + if (cipher != NULL) { base_mode = mbedtls_ssl_get_base_mode( - mbedtls_cipher_info_get_mode( cipher ) ); + mbedtls_cipher_info_get_mode(cipher)); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if !defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) int encrypt_then_mac = 0; #endif - return( mbedtls_ssl_get_actual_mode( base_mode, encrypt_then_mac ) ); + return mbedtls_ssl_get_actual_mode(base_mode, encrypt_then_mac); } #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -2372,16 +2353,16 @@ mbedtls_ssl_mode_t mbedtls_ssl_get_mode_from_ciphersuite( */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len, - size_t *olen ) +static int ssl_tls13_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len, + size_t *olen) { unsigned char *p = buf; #if defined(MBEDTLS_SSL_CLI_C) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - size_t hostname_len = ( session->hostname == NULL ) ? - 0 : strlen( session->hostname ) + 1; + size_t hostname_len = (session->hostname == NULL) ? + 0 : strlen(session->hostname) + 1; #endif size_t needed = 1 /* endpoint */ + 2 /* ciphersuite */ @@ -2390,8 +2371,9 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, + 1; /* resumption_key length */ *olen = 0; - if( session->resumption_key_len > MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (session->resumption_key_len > MBEDTLS_SSL_TLS1_3_TICKET_RESUMPTION_KEY_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } needed += session->resumption_key_len; /* resumption_key */ #if defined(MBEDTLS_HAVE_TIME) @@ -2399,216 +2381,220 @@ static int ssl_tls13_session_save( const mbedtls_ssl_session *session, #endif #if defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (session->endpoint == MBEDTLS_SSL_IS_CLIENT) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) needed += 2 /* hostname_len */ - + hostname_len; /* hostname */ + + hostname_len; /* hostname */ #endif needed += 4 /* ticket_lifetime */ + 2; /* ticket_len */ /* Check size_t overflow */ - if( session->ticket_len > SIZE_MAX - needed ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (session->ticket_len > SIZE_MAX - needed) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } needed += session->ticket_len; /* ticket */ } #endif /* MBEDTLS_SSL_CLI_C */ *olen = needed; - if( needed > buf_len ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (needed > buf_len) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; + } p[0] = session->endpoint; - MBEDTLS_PUT_UINT16_BE( session->ciphersuite, p, 1 ); - MBEDTLS_PUT_UINT32_BE( session->ticket_age_add, p, 3 ); + MBEDTLS_PUT_UINT16_BE(session->ciphersuite, p, 1); + MBEDTLS_PUT_UINT32_BE(session->ticket_age_add, p, 3); p[7] = session->ticket_flags; /* save resumption_key */ p[8] = session->resumption_key_len; p += 9; - memcpy( p, session->resumption_key, session->resumption_key_len ); + memcpy(p, session->resumption_key, session->resumption_key_len); p += session->resumption_key_len; #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) - if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - MBEDTLS_PUT_UINT64_BE( (uint64_t) session->start, p, 0 ); + if (session->endpoint == MBEDTLS_SSL_IS_SERVER) { + MBEDTLS_PUT_UINT64_BE((uint64_t) session->start, p, 0); p += 8; } #endif /* MBEDTLS_HAVE_TIME */ #if defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (session->endpoint == MBEDTLS_SSL_IS_CLIENT) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - MBEDTLS_PUT_UINT16_BE( hostname_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(hostname_len, p, 0); p += 2; - if( hostname_len > 0 ) - { + if (hostname_len > 0) { /* save host name */ - memcpy( p, session->hostname, hostname_len ); + memcpy(p, session->hostname, hostname_len); p += hostname_len; } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_HAVE_TIME) - MBEDTLS_PUT_UINT64_BE( (uint64_t) session->ticket_received, p, 0 ); + MBEDTLS_PUT_UINT64_BE((uint64_t) session->ticket_received, p, 0); p += 8; #endif - MBEDTLS_PUT_UINT32_BE( session->ticket_lifetime, p, 0 ); + MBEDTLS_PUT_UINT32_BE(session->ticket_lifetime, p, 0); p += 4; - MBEDTLS_PUT_UINT16_BE( session->ticket_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(session->ticket_len, p, 0); p += 2; - if( session->ticket != NULL && session->ticket_len > 0 ) - { - memcpy( p, session->ticket, session->ticket_len ); + if (session->ticket != NULL && session->ticket_len > 0) { + memcpy(p, session->ticket, session->ticket_len); p += session->ticket_len; } } #endif /* MBEDTLS_SSL_CLI_C */ - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_load( mbedtls_ssl_session *session, - const unsigned char *buf, - size_t len ) +static int ssl_tls13_session_load(mbedtls_ssl_session *session, + const unsigned char *buf, + size_t len) { const unsigned char *p = buf; const unsigned char *end = buf + len; - if( end - p < 9 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end - p < 9) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->endpoint = p[0]; - session->ciphersuite = MBEDTLS_GET_UINT16_BE( p, 1 ); - session->ticket_age_add = MBEDTLS_GET_UINT32_BE( p, 3 ); + session->ciphersuite = MBEDTLS_GET_UINT16_BE(p, 1); + session->ticket_age_add = MBEDTLS_GET_UINT32_BE(p, 3); session->ticket_flags = p[7]; /* load resumption_key */ session->resumption_key_len = p[8]; p += 9; - if( end - p < session->resumption_key_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end - p < session->resumption_key_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( sizeof( session->resumption_key ) < session->resumption_key_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - memcpy( session->resumption_key, p, session->resumption_key_len ); + if (sizeof(session->resumption_key) < session->resumption_key_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + memcpy(session->resumption_key, p, session->resumption_key_len); p += session->resumption_key_len; #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) - if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - if( end - p < 8 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->start = MBEDTLS_GET_UINT64_BE( p, 0 ); + if (session->endpoint == MBEDTLS_SSL_IS_SERVER) { + if (end - p < 8) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + session->start = MBEDTLS_GET_UINT64_BE(p, 0); p += 8; } #endif /* MBEDTLS_HAVE_TIME */ #if defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (session->endpoint == MBEDTLS_SSL_IS_CLIENT) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ - defined(MBEDTLS_SSL_SESSION_TICKETS) + defined(MBEDTLS_SSL_SESSION_TICKETS) size_t hostname_len; /* load host name */ - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + if (end - p < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + hostname_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - if( end - p < ( long int )hostname_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( hostname_len > 0 ) - { - session->hostname = mbedtls_calloc( 1, hostname_len ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->hostname, p, hostname_len ); + if (end - p < (long int) hostname_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + if (hostname_len > 0) { + session->hostname = mbedtls_calloc(1, hostname_len); + if (session->hostname == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } + memcpy(session->hostname, p, hostname_len); p += hostname_len; } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION && MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_HAVE_TIME) - if( end - p < 8 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->ticket_received = MBEDTLS_GET_UINT64_BE( p, 0 ); + if (end - p < 8) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + session->ticket_received = MBEDTLS_GET_UINT64_BE(p, 0); p += 8; #endif - if( end - p < 4 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->ticket_lifetime = MBEDTLS_GET_UINT32_BE( p, 0 ); + if (end - p < 4) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + session->ticket_lifetime = MBEDTLS_GET_UINT32_BE(p, 0); p += 4; - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - session->ticket_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + if (end - p < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + session->ticket_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - if( end - p < ( long int )session->ticket_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( session->ticket_len > 0 ) - { - session->ticket = mbedtls_calloc( 1, session->ticket_len ); - if( session->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( session->ticket, p, session->ticket_len ); + if (end - p < (long int) session->ticket_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + if (session->ticket_len > 0) { + session->ticket = mbedtls_calloc(1, session->ticket_len); + if (session->ticket == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } + memcpy(session->ticket, p, session->ticket_len); p += session->ticket_len; } } #endif /* MBEDTLS_SSL_CLI_C */ - return( 0 ); + return 0; } #else /* MBEDTLS_SSL_SESSION_TICKETS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len, - size_t *olen ) +static int ssl_tls13_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len, + size_t *olen) { ((void) session); ((void) buf); ((void) buf_len); *olen = 0; - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } -static int ssl_tls13_session_load( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len ) +static int ssl_tls13_session_load(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len) { ((void) session); ((void) buf); ((void) buf_len); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } #endif /* !MBEDTLS_SSL_SESSION_TICKETS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ -psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_type, - size_t taglen, - psa_algorithm_t *alg, - psa_key_type_t *key_type, - size_t *key_size ) +psa_status_t mbedtls_ssl_cipher_to_psa(mbedtls_cipher_type_t mbedtls_cipher_type, + size_t taglen, + psa_algorithm_t *alg, + psa_key_type_t *key_type, + size_t *key_size) { - switch ( mbedtls_cipher_type ) - { + switch (mbedtls_cipher_type) { case MBEDTLS_CIPHER_AES_128_CBC: *alg = PSA_ALG_CBC_NO_PADDING; *key_type = PSA_KEY_TYPE_AES; *key_size = 128; break; case MBEDTLS_CIPHER_AES_128_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_AES; *key_size = 128; break; @@ -2618,7 +2604,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 128; break; case MBEDTLS_CIPHER_AES_192_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_AES; *key_size = 192; break; @@ -2633,7 +2619,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 256; break; case MBEDTLS_CIPHER_AES_256_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_AES; *key_size = 256; break; @@ -2648,7 +2634,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 128; break; case MBEDTLS_CIPHER_ARIA_128_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_ARIA; *key_size = 128; break; @@ -2658,7 +2644,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 128; break; case MBEDTLS_CIPHER_ARIA_192_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_ARIA; *key_size = 192; break; @@ -2673,7 +2659,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 256; break; case MBEDTLS_CIPHER_ARIA_256_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_ARIA; *key_size = 256; break; @@ -2688,7 +2674,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 128; break; case MBEDTLS_CIPHER_CAMELLIA_128_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_CAMELLIA; *key_size = 128; break; @@ -2698,7 +2684,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 128; break; case MBEDTLS_CIPHER_CAMELLIA_192_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_CAMELLIA; *key_size = 192; break; @@ -2713,7 +2699,7 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ *key_size = 256; break; case MBEDTLS_CIPHER_CAMELLIA_256_CCM: - *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_CCM, taglen ) : PSA_ALG_CCM; + *alg = taglen ? PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, taglen) : PSA_ALG_CCM; *key_type = PSA_KEY_TYPE_CAMELLIA; *key_size = 256; break; @@ -2741,44 +2727,42 @@ psa_status_t mbedtls_ssl_cipher_to_psa( mbedtls_cipher_type_t mbedtls_cipher_typ #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) -int mbedtls_ssl_conf_dh_param_bin( mbedtls_ssl_config *conf, - const unsigned char *dhm_P, size_t P_len, - const unsigned char *dhm_G, size_t G_len ) +int mbedtls_ssl_conf_dh_param_bin(mbedtls_ssl_config *conf, + const unsigned char *dhm_P, size_t P_len, + const unsigned char *dhm_G, size_t G_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_mpi_free( &conf->dhm_P ); - mbedtls_mpi_free( &conf->dhm_G ); + mbedtls_mpi_free(&conf->dhm_P); + mbedtls_mpi_free(&conf->dhm_G); - if( ( ret = mbedtls_mpi_read_binary( &conf->dhm_P, dhm_P, P_len ) ) != 0 || - ( ret = mbedtls_mpi_read_binary( &conf->dhm_G, dhm_G, G_len ) ) != 0 ) - { - mbedtls_mpi_free( &conf->dhm_P ); - mbedtls_mpi_free( &conf->dhm_G ); - return( ret ); + if ((ret = mbedtls_mpi_read_binary(&conf->dhm_P, dhm_P, P_len)) != 0 || + (ret = mbedtls_mpi_read_binary(&conf->dhm_G, dhm_G, G_len)) != 0) { + mbedtls_mpi_free(&conf->dhm_P); + mbedtls_mpi_free(&conf->dhm_G); + return ret; } - return( 0 ); + return 0; } -int mbedtls_ssl_conf_dh_param_ctx( mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx ) +int mbedtls_ssl_conf_dh_param_ctx(mbedtls_ssl_config *conf, mbedtls_dhm_context *dhm_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_mpi_free( &conf->dhm_P ); - mbedtls_mpi_free( &conf->dhm_G ); + mbedtls_mpi_free(&conf->dhm_P); + mbedtls_mpi_free(&conf->dhm_G); - if( ( ret = mbedtls_dhm_get_value( dhm_ctx, MBEDTLS_DHM_PARAM_P, - &conf->dhm_P ) ) != 0 || - ( ret = mbedtls_dhm_get_value( dhm_ctx, MBEDTLS_DHM_PARAM_G, - &conf->dhm_G ) ) != 0 ) - { - mbedtls_mpi_free( &conf->dhm_P ); - mbedtls_mpi_free( &conf->dhm_G ); - return( ret ); + if ((ret = mbedtls_dhm_get_value(dhm_ctx, MBEDTLS_DHM_PARAM_P, + &conf->dhm_P)) != 0 || + (ret = mbedtls_dhm_get_value(dhm_ctx, MBEDTLS_DHM_PARAM_G, + &conf->dhm_G)) != 0) { + mbedtls_mpi_free(&conf->dhm_P); + mbedtls_mpi_free(&conf->dhm_G); + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_DHM_C && MBEDTLS_SSL_SRV_C */ @@ -2786,8 +2770,8 @@ int mbedtls_ssl_conf_dh_param_ctx( mbedtls_ssl_config *conf, mbedtls_dhm_context /* * Set the minimum length for Diffie-Hellman parameters */ -void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, - unsigned int bitlen ) +void mbedtls_ssl_conf_dhm_min_bitlen(mbedtls_ssl_config *conf, + unsigned int bitlen) { conf->dhm_min_bitlen = bitlen; } @@ -2798,16 +2782,16 @@ void mbedtls_ssl_conf_dhm_min_bitlen( mbedtls_ssl_config *conf, /* * Set allowed/preferred hashes for handshake signatures */ -void mbedtls_ssl_conf_sig_hashes( mbedtls_ssl_config *conf, - const int *hashes ) +void mbedtls_ssl_conf_sig_hashes(mbedtls_ssl_config *conf, + const int *hashes) { conf->sig_hashes = hashes; } #endif /* !MBEDTLS_DEPRECATED_REMOVED && MBEDTLS_SSL_PROTO_TLS1_2 */ /* Configure allowed signature algorithms for handshake */ -void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, - const uint16_t* sig_algs ) +void mbedtls_ssl_conf_sig_algs(mbedtls_ssl_config *conf, + const uint16_t *sig_algs) { #if !defined(MBEDTLS_DEPRECATED_REMOVED) conf->sig_hashes = NULL; @@ -2826,8 +2810,8 @@ void mbedtls_ssl_conf_sig_algs( mbedtls_ssl_config *conf, * stored in ssl->handshake->group_list. * */ -void mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, - const mbedtls_ecp_group_id *curve_list ) +void mbedtls_ssl_conf_curves(mbedtls_ssl_config *conf, + const mbedtls_ecp_group_id *curve_list) { conf->curve_list = curve_list; conf->group_list = NULL; @@ -2838,8 +2822,8 @@ void mbedtls_ssl_conf_curves( mbedtls_ssl_config *conf, /* * Set the allowed groups */ -void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, - const uint16_t *group_list ) +void mbedtls_ssl_conf_groups(mbedtls_ssl_config *conf, + const uint16_t *group_list) { #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) conf->curve_list = NULL; @@ -2848,56 +2832,53 @@ void mbedtls_ssl_conf_groups( mbedtls_ssl_config *conf, } #if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_set_hostname( mbedtls_ssl_context *ssl, const char *hostname ) +int mbedtls_ssl_set_hostname(mbedtls_ssl_context *ssl, const char *hostname) { /* Initialize to suppress unnecessary compiler warning */ size_t hostname_len = 0; /* Check if new hostname is valid before * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); + if (hostname != NULL) { + hostname_len = strlen(hostname); - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } } /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); + if (ssl->hostname != NULL) { + mbedtls_platform_zeroize(ssl->hostname, strlen(ssl->hostname)); + mbedtls_free(ssl->hostname); } /* Passing NULL as hostname shall clear the old one */ - if( hostname == NULL ) - { + if (hostname == NULL) { ssl->hostname = NULL; - } - else - { - ssl->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( ssl->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + } else { + ssl->hostname = mbedtls_calloc(1, hostname_len + 1); + if (ssl->hostname == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( ssl->hostname, hostname, hostname_len ); + memcpy(ssl->hostname, hostname, hostname_len); ssl->hostname[hostname_len] = '\0'; } - return( 0 ); + return 0; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, - int (*f_sni)(void *, mbedtls_ssl_context *, - const unsigned char *, size_t), - void *p_sni ) +void mbedtls_ssl_conf_sni(mbedtls_ssl_config *conf, + int (*f_sni)(void *, mbedtls_ssl_context *, + const unsigned char *, size_t), + void *p_sni) { conf->f_sni = f_sni; conf->p_sni = p_sni; @@ -2905,7 +2886,7 @@ void mbedtls_ssl_conf_sni( mbedtls_ssl_config *conf, #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_ALPN) -int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **protos ) +int mbedtls_ssl_conf_alpn_protocols(mbedtls_ssl_config *conf, const char **protos) { size_t cur_len, tot_len; const char **p; @@ -2916,183 +2897,172 @@ int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **prot * We check lengths now rather than later. */ tot_len = 0; - for( p = protos; *p != NULL; p++ ) - { - cur_len = strlen( *p ); + for (p = protos; *p != NULL; p++) { + cur_len = strlen(*p); tot_len += cur_len; - if( ( cur_len == 0 ) || - ( cur_len > MBEDTLS_SSL_MAX_ALPN_NAME_LEN ) || - ( tot_len > MBEDTLS_SSL_MAX_ALPN_LIST_LEN ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((cur_len == 0) || + (cur_len > MBEDTLS_SSL_MAX_ALPN_NAME_LEN) || + (tot_len > MBEDTLS_SSL_MAX_ALPN_LIST_LEN)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } } conf->alpn_list = protos; - return( 0 ); + return 0; } -const char *mbedtls_ssl_get_alpn_protocol( const mbedtls_ssl_context *ssl ) +const char *mbedtls_ssl_get_alpn_protocol(const mbedtls_ssl_context *ssl) { - return( ssl->alpn_chosen ); + return ssl->alpn_chosen; } #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_DTLS_SRTP) -void mbedtls_ssl_conf_srtp_mki_value_supported( mbedtls_ssl_config *conf, - int support_mki_value ) +void mbedtls_ssl_conf_srtp_mki_value_supported(mbedtls_ssl_config *conf, + int support_mki_value) { conf->dtls_srtp_mki_support = support_mki_value; } -int mbedtls_ssl_dtls_srtp_set_mki_value( mbedtls_ssl_context *ssl, - unsigned char *mki_value, - uint16_t mki_len ) +int mbedtls_ssl_dtls_srtp_set_mki_value(mbedtls_ssl_context *ssl, + unsigned char *mki_value, + uint16_t mki_len) { - if( mki_len > MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mki_len > MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - if( ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED ) - { - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - memcpy( ssl->dtls_srtp_info.mki_value, mki_value, mki_len ); + memcpy(ssl->dtls_srtp_info.mki_value, mki_value, mki_len); ssl->dtls_srtp_info.mki_len = mki_len; - return( 0 ); + return 0; } -int mbedtls_ssl_conf_dtls_srtp_protection_profiles( mbedtls_ssl_config *conf, - const mbedtls_ssl_srtp_profile *profiles ) +int mbedtls_ssl_conf_dtls_srtp_protection_profiles(mbedtls_ssl_config *conf, + const mbedtls_ssl_srtp_profile *profiles) { const mbedtls_ssl_srtp_profile *p; size_t list_size = 0; /* check the profiles list: all entry must be valid, * its size cannot be more than the total number of supported profiles, currently 4 */ - for( p = profiles; *p != MBEDTLS_TLS_SRTP_UNSET && - list_size <= MBEDTLS_TLS_SRTP_MAX_PROFILE_LIST_LENGTH; - p++ ) - { - if( mbedtls_ssl_check_srtp_profile_value( *p ) != MBEDTLS_TLS_SRTP_UNSET ) - { + for (p = profiles; *p != MBEDTLS_TLS_SRTP_UNSET && + list_size <= MBEDTLS_TLS_SRTP_MAX_PROFILE_LIST_LENGTH; + p++) { + if (mbedtls_ssl_check_srtp_profile_value(*p) != MBEDTLS_TLS_SRTP_UNSET) { list_size++; - } - else - { + } else { /* unsupported value, stop parsing and set the size to an error value */ list_size = MBEDTLS_TLS_SRTP_MAX_PROFILE_LIST_LENGTH + 1; } } - if( list_size > MBEDTLS_TLS_SRTP_MAX_PROFILE_LIST_LENGTH ) - { - conf->dtls_srtp_profile_list = NULL; - conf->dtls_srtp_profile_list_len = 0; - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (list_size > MBEDTLS_TLS_SRTP_MAX_PROFILE_LIST_LENGTH) { + conf->dtls_srtp_profile_list = NULL; + conf->dtls_srtp_profile_list_len = 0; + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } conf->dtls_srtp_profile_list = profiles; conf->dtls_srtp_profile_list_len = list_size; - return( 0 ); + return 0; } -void mbedtls_ssl_get_dtls_srtp_negotiation_result( const mbedtls_ssl_context *ssl, - mbedtls_dtls_srtp_info *dtls_srtp_info ) +void mbedtls_ssl_get_dtls_srtp_negotiation_result(const mbedtls_ssl_context *ssl, + mbedtls_dtls_srtp_info *dtls_srtp_info) { dtls_srtp_info->chosen_dtls_srtp_profile = ssl->dtls_srtp_info.chosen_dtls_srtp_profile; /* do not copy the mki value if there is no chosen profile */ - if( dtls_srtp_info->chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET ) - { + if (dtls_srtp_info->chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET) { dtls_srtp_info->mki_len = 0; - } - else - { + } else { dtls_srtp_info->mki_len = ssl->dtls_srtp_info.mki_len; - memcpy( dtls_srtp_info->mki_value, ssl->dtls_srtp_info.mki_value, - ssl->dtls_srtp_info.mki_len ); + memcpy(dtls_srtp_info->mki_value, ssl->dtls_srtp_info.mki_value, + ssl->dtls_srtp_info.mki_len); } } #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if !defined(MBEDTLS_DEPRECATED_REMOVED) -void mbedtls_ssl_conf_max_version( mbedtls_ssl_config *conf, int major, int minor ) +void mbedtls_ssl_conf_max_version(mbedtls_ssl_config *conf, int major, int minor) { conf->max_tls_version = (major << 8) | minor; } -void mbedtls_ssl_conf_min_version( mbedtls_ssl_config *conf, int major, int minor ) +void mbedtls_ssl_conf_min_version(mbedtls_ssl_config *conf, int major, int minor) { conf->min_tls_version = (major << 8) | minor; } #endif /* MBEDTLS_DEPRECATED_REMOVED */ #if defined(MBEDTLS_SSL_SRV_C) -void mbedtls_ssl_conf_cert_req_ca_list( mbedtls_ssl_config *conf, - char cert_req_ca_list ) +void mbedtls_ssl_conf_cert_req_ca_list(mbedtls_ssl_config *conf, + char cert_req_ca_list) { conf->cert_req_ca_list = cert_req_ca_list; } #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) -void mbedtls_ssl_conf_encrypt_then_mac( mbedtls_ssl_config *conf, char etm ) +void mbedtls_ssl_conf_encrypt_then_mac(mbedtls_ssl_config *conf, char etm) { conf->encrypt_then_mac = etm; } #endif #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) -void mbedtls_ssl_conf_extended_master_secret( mbedtls_ssl_config *conf, char ems ) +void mbedtls_ssl_conf_extended_master_secret(mbedtls_ssl_config *conf, char ems) { conf->extended_ms = ems; } #endif #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) -int mbedtls_ssl_conf_max_frag_len( mbedtls_ssl_config *conf, unsigned char mfl_code ) +int mbedtls_ssl_conf_max_frag_len(mbedtls_ssl_config *conf, unsigned char mfl_code) { - if( mfl_code >= MBEDTLS_SSL_MAX_FRAG_LEN_INVALID || - ssl_mfl_code_to_length( mfl_code ) > MBEDTLS_TLS_EXT_ADV_CONTENT_LEN ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mfl_code >= MBEDTLS_SSL_MAX_FRAG_LEN_INVALID || + ssl_mfl_code_to_length(mfl_code) > MBEDTLS_TLS_EXT_ADV_CONTENT_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } conf->mfl_code = mfl_code; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ -void mbedtls_ssl_conf_legacy_renegotiation( mbedtls_ssl_config *conf, int allow_legacy ) +void mbedtls_ssl_conf_legacy_renegotiation(mbedtls_ssl_config *conf, int allow_legacy) { conf->allow_legacy_renegotiation = allow_legacy; } #if defined(MBEDTLS_SSL_RENEGOTIATION) -void mbedtls_ssl_conf_renegotiation( mbedtls_ssl_config *conf, int renegotiation ) +void mbedtls_ssl_conf_renegotiation(mbedtls_ssl_config *conf, int renegotiation) { conf->disable_renegotiation = renegotiation; } -void mbedtls_ssl_conf_renegotiation_enforced( mbedtls_ssl_config *conf, int max_records ) +void mbedtls_ssl_conf_renegotiation_enforced(mbedtls_ssl_config *conf, int max_records) { conf->renego_max_records = max_records; } -void mbedtls_ssl_conf_renegotiation_period( mbedtls_ssl_config *conf, - const unsigned char period[8] ) +void mbedtls_ssl_conf_renegotiation_period(mbedtls_ssl_config *conf, + const unsigned char period[8]) { - memcpy( conf->renego_period, period, 8 ); + memcpy(conf->renego_period, period, 8); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) #if defined(MBEDTLS_SSL_CLI_C) -void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets ) +void mbedtls_ssl_conf_session_tickets(mbedtls_ssl_config *conf, int use_tickets) { conf->session_tickets = use_tickets; } @@ -3101,17 +3071,17 @@ void mbedtls_ssl_conf_session_tickets( mbedtls_ssl_config *conf, int use_tickets #if defined(MBEDTLS_SSL_SRV_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -void mbedtls_ssl_conf_new_session_tickets( mbedtls_ssl_config *conf, - uint16_t num_tickets ) +void mbedtls_ssl_conf_new_session_tickets(mbedtls_ssl_config *conf, + uint16_t num_tickets) { conf->new_session_tickets_count = num_tickets; } #endif -void mbedtls_ssl_conf_session_tickets_cb( mbedtls_ssl_config *conf, - mbedtls_ssl_ticket_write_t *f_ticket_write, - mbedtls_ssl_ticket_parse_t *f_ticket_parse, - void *p_ticket ) +void mbedtls_ssl_conf_session_tickets_cb(mbedtls_ssl_config *conf, + mbedtls_ssl_ticket_write_t *f_ticket_write, + mbedtls_ssl_ticket_parse_t *f_ticket_parse, + void *p_ticket) { conf->f_ticket_write = f_ticket_write; conf->f_ticket_parse = f_ticket_parse; @@ -3120,9 +3090,9 @@ void mbedtls_ssl_conf_session_tickets_cb( mbedtls_ssl_config *conf, #endif #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -void mbedtls_ssl_set_export_keys_cb( mbedtls_ssl_context *ssl, - mbedtls_ssl_export_keys_t *f_export_keys, - void *p_export_keys ) +void mbedtls_ssl_set_export_keys_cb(mbedtls_ssl_context *ssl, + mbedtls_ssl_export_keys_t *f_export_keys, + void *p_export_keys) { ssl->f_export_keys = f_export_keys; ssl->p_export_keys = p_export_keys; @@ -3135,7 +3105,7 @@ void mbedtls_ssl_conf_async_private_cb( mbedtls_ssl_async_decrypt_t *f_async_decrypt, mbedtls_ssl_async_resume_t *f_async_resume, mbedtls_ssl_async_cancel_t *f_async_cancel, - void *async_config_data ) + void *async_config_data) { conf->f_async_sign_start = f_async_sign; conf->f_async_decrypt_start = f_async_decrypt; @@ -3144,169 +3114,168 @@ void mbedtls_ssl_conf_async_private_cb( conf->p_async_config_data = async_config_data; } -void *mbedtls_ssl_conf_get_async_config_data( const mbedtls_ssl_config *conf ) +void *mbedtls_ssl_conf_get_async_config_data(const mbedtls_ssl_config *conf) { - return( conf->p_async_config_data ); + return conf->p_async_config_data; } -void *mbedtls_ssl_get_async_operation_data( const mbedtls_ssl_context *ssl ) +void *mbedtls_ssl_get_async_operation_data(const mbedtls_ssl_context *ssl) { - if( ssl->handshake == NULL ) - return( NULL ); - else - return( ssl->handshake->user_async_ctx ); + if (ssl->handshake == NULL) { + return NULL; + } else { + return ssl->handshake->user_async_ctx; + } } -void mbedtls_ssl_set_async_operation_data( mbedtls_ssl_context *ssl, - void *ctx ) +void mbedtls_ssl_set_async_operation_data(mbedtls_ssl_context *ssl, + void *ctx) { - if( ssl->handshake != NULL ) + if (ssl->handshake != NULL) { ssl->handshake->user_async_ctx = ctx; + } } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ /* * SSL get accessors */ -uint32_t mbedtls_ssl_get_verify_result( const mbedtls_ssl_context *ssl ) +uint32_t mbedtls_ssl_get_verify_result(const mbedtls_ssl_context *ssl) { - if( ssl->session != NULL ) - return( ssl->session->verify_result ); + if (ssl->session != NULL) { + return ssl->session->verify_result; + } - if( ssl->session_negotiate != NULL ) - return( ssl->session_negotiate->verify_result ); + if (ssl->session_negotiate != NULL) { + return ssl->session_negotiate->verify_result; + } - return( 0xFFFFFFFF ); + return 0xFFFFFFFF; } -int mbedtls_ssl_get_ciphersuite_id_from_ssl( const mbedtls_ssl_context *ssl ) +int mbedtls_ssl_get_ciphersuite_id_from_ssl(const mbedtls_ssl_context *ssl) { - if( ssl == NULL || ssl->session == NULL ) - return( 0 ); + if (ssl == NULL || ssl->session == NULL) { + return 0; + } - return( ssl->session->ciphersuite ); + return ssl->session->ciphersuite; } -const char *mbedtls_ssl_get_ciphersuite( const mbedtls_ssl_context *ssl ) +const char *mbedtls_ssl_get_ciphersuite(const mbedtls_ssl_context *ssl) { - if( ssl == NULL || ssl->session == NULL ) - return( NULL ); + if (ssl == NULL || ssl->session == NULL) { + return NULL; + } - return mbedtls_ssl_get_ciphersuite_name( ssl->session->ciphersuite ); + return mbedtls_ssl_get_ciphersuite_name(ssl->session->ciphersuite); } -const char *mbedtls_ssl_get_version( const mbedtls_ssl_context *ssl ) +const char *mbedtls_ssl_get_version(const mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - switch( ssl->tls_version ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + switch (ssl->tls_version) { case MBEDTLS_SSL_VERSION_TLS1_2: - return( "DTLSv1.2" ); + return "DTLSv1.2"; default: - return( "unknown (DTLS)" ); + return "unknown (DTLS)"; } } #endif - switch( ssl->tls_version ) - { + switch (ssl->tls_version) { case MBEDTLS_SSL_VERSION_TLS1_2: - return( "TLSv1.2" ); + return "TLSv1.2"; case MBEDTLS_SSL_VERSION_TLS1_3: - return( "TLSv1.3" ); + return "TLSv1.3"; default: - return( "unknown" ); + return "unknown"; } } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) -size_t mbedtls_ssl_get_input_max_frag_len( const mbedtls_ssl_context *ssl ) +size_t mbedtls_ssl_get_input_max_frag_len(const mbedtls_ssl_context *ssl) { size_t max_len = MBEDTLS_SSL_IN_CONTENT_LEN; size_t read_mfl; #if defined(MBEDTLS_SSL_PROTO_TLS1_2) /* Use the configured MFL for the client if we're past SERVER_HELLO_DONE */ - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && - ssl->state >= MBEDTLS_SSL_SERVER_HELLO_DONE ) - { - return ssl_mfl_code_to_length( ssl->conf->mfl_code ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && + ssl->state >= MBEDTLS_SSL_SERVER_HELLO_DONE) { + return ssl_mfl_code_to_length(ssl->conf->mfl_code); } #endif /* Check if a smaller max length was negotiated */ - if( ssl->session_out != NULL ) - { - read_mfl = ssl_mfl_code_to_length( ssl->session_out->mfl_code ); - if( read_mfl < max_len ) - { + if (ssl->session_out != NULL) { + read_mfl = ssl_mfl_code_to_length(ssl->session_out->mfl_code); + if (read_mfl < max_len) { max_len = read_mfl; } } /* During a handshake, use the value being negotiated */ - if( ssl->session_negotiate != NULL ) - { - read_mfl = ssl_mfl_code_to_length( ssl->session_negotiate->mfl_code ); - if( read_mfl < max_len ) - { + if (ssl->session_negotiate != NULL) { + read_mfl = ssl_mfl_code_to_length(ssl->session_negotiate->mfl_code); + if (read_mfl < max_len) { max_len = read_mfl; } } - return( max_len ); + return max_len; } -size_t mbedtls_ssl_get_output_max_frag_len( const mbedtls_ssl_context *ssl ) +size_t mbedtls_ssl_get_output_max_frag_len(const mbedtls_ssl_context *ssl) { size_t max_len; /* * Assume mfl_code is correct since it was checked when set */ - max_len = ssl_mfl_code_to_length( ssl->conf->mfl_code ); + max_len = ssl_mfl_code_to_length(ssl->conf->mfl_code); /* Check if a smaller max length was negotiated */ - if( ssl->session_out != NULL && - ssl_mfl_code_to_length( ssl->session_out->mfl_code ) < max_len ) - { - max_len = ssl_mfl_code_to_length( ssl->session_out->mfl_code ); + if (ssl->session_out != NULL && + ssl_mfl_code_to_length(ssl->session_out->mfl_code) < max_len) { + max_len = ssl_mfl_code_to_length(ssl->session_out->mfl_code); } /* During a handshake, use the value being negotiated */ - if( ssl->session_negotiate != NULL && - ssl_mfl_code_to_length( ssl->session_negotiate->mfl_code ) < max_len ) - { - max_len = ssl_mfl_code_to_length( ssl->session_negotiate->mfl_code ); + if (ssl->session_negotiate != NULL && + ssl_mfl_code_to_length(ssl->session_negotiate->mfl_code) < max_len) { + max_len = ssl_mfl_code_to_length(ssl->session_negotiate->mfl_code); } - return( max_len ); + return max_len; } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_PROTO_DTLS) -size_t mbedtls_ssl_get_current_mtu( const mbedtls_ssl_context *ssl ) +size_t mbedtls_ssl_get_current_mtu(const mbedtls_ssl_context *ssl) { /* Return unlimited mtu for client hello messages to avoid fragmentation. */ - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && - ( ssl->state == MBEDTLS_SSL_CLIENT_HELLO || - ssl->state == MBEDTLS_SSL_SERVER_HELLO ) ) - return ( 0 ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && + (ssl->state == MBEDTLS_SSL_CLIENT_HELLO || + ssl->state == MBEDTLS_SSL_SERVER_HELLO)) { + return 0; + } - if( ssl->handshake == NULL || ssl->handshake->mtu == 0 ) - return( ssl->mtu ); + if (ssl->handshake == NULL || ssl->handshake->mtu == 0) { + return ssl->mtu; + } - if( ssl->mtu == 0 ) - return( ssl->handshake->mtu ); + if (ssl->mtu == 0) { + return ssl->handshake->mtu; + } - return( ssl->mtu < ssl->handshake->mtu ? - ssl->mtu : ssl->handshake->mtu ); + return ssl->mtu < ssl->handshake->mtu ? + ssl->mtu : ssl->handshake->mtu; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ -int mbedtls_ssl_get_max_out_record_payload( const mbedtls_ssl_context *ssl ) +int mbedtls_ssl_get_max_out_record_payload(const mbedtls_ssl_context *ssl) { size_t max_len = MBEDTLS_SSL_OUT_CONTENT_LEN; @@ -3316,30 +3285,31 @@ int mbedtls_ssl_get_max_out_record_payload( const mbedtls_ssl_context *ssl ) #endif #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - const size_t mfl = mbedtls_ssl_get_output_max_frag_len( ssl ); + const size_t mfl = mbedtls_ssl_get_output_max_frag_len(ssl); - if( max_len > mfl ) + if (max_len > mfl) { max_len = mfl; + } #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( mbedtls_ssl_get_current_mtu( ssl ) != 0 ) - { - const size_t mtu = mbedtls_ssl_get_current_mtu( ssl ); - const int ret = mbedtls_ssl_get_record_expansion( ssl ); + if (mbedtls_ssl_get_current_mtu(ssl) != 0) { + const size_t mtu = mbedtls_ssl_get_current_mtu(ssl); + const int ret = mbedtls_ssl_get_record_expansion(ssl); const size_t overhead = (size_t) ret; - if( ret < 0 ) - return( ret ); - - if( mtu <= overhead ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "MTU too low for record expansion" ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (ret < 0) { + return ret; } - if( max_len > mtu - overhead ) + if (mtu <= overhead) { + MBEDTLS_SSL_DEBUG_MSG(1, ("MTU too low for record expansion")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } + + if (max_len > mtu - overhead) { max_len = mtu - overhead; + } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -3348,10 +3318,10 @@ int mbedtls_ssl_get_max_out_record_payload( const mbedtls_ssl_context *ssl ) ((void) ssl); #endif - return( (int) max_len ); + return (int) max_len; } -int mbedtls_ssl_get_max_in_record_payload( const mbedtls_ssl_context *ssl ) +int mbedtls_ssl_get_max_in_record_payload(const mbedtls_ssl_context *ssl) { size_t max_len = MBEDTLS_SSL_IN_CONTENT_LEN; @@ -3360,41 +3330,42 @@ int mbedtls_ssl_get_max_in_record_payload( const mbedtls_ssl_context *ssl ) #endif #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - const size_t mfl = mbedtls_ssl_get_input_max_frag_len( ssl ); + const size_t mfl = mbedtls_ssl_get_input_max_frag_len(ssl); - if( max_len > mfl ) + if (max_len > mfl) { max_len = mfl; + } #endif - return( (int) max_len ); + return (int) max_len; } #if defined(MBEDTLS_X509_CRT_PARSE_C) -const mbedtls_x509_crt *mbedtls_ssl_get_peer_cert( const mbedtls_ssl_context *ssl ) +const mbedtls_x509_crt *mbedtls_ssl_get_peer_cert(const mbedtls_ssl_context *ssl) { - if( ssl == NULL || ssl->session == NULL ) - return( NULL ); + if (ssl == NULL || ssl->session == NULL) { + return NULL; + } #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - return( ssl->session->peer_cert ); + return ssl->session->peer_cert; #else - return( NULL ); + return NULL; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ } #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_SSL_CLI_C) -int mbedtls_ssl_get_session( const mbedtls_ssl_context *ssl, - mbedtls_ssl_session *dst ) +int mbedtls_ssl_get_session(const mbedtls_ssl_context *ssl, + mbedtls_ssl_session *dst) { int ret; - if( ssl == NULL || + if (ssl == NULL || dst == NULL || ssl->session == NULL || - ssl->conf->endpoint != MBEDTLS_SSL_IS_CLIENT ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ssl->conf->endpoint != MBEDTLS_SSL_IS_CLIENT) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Since Mbed TLS 3.0, mbedtls_ssl_get_session() is no longer @@ -3408,16 +3379,18 @@ int mbedtls_ssl_get_session( const mbedtls_ssl_context *ssl, * Check whether we have already exported the current session, * and fail if so. */ - if( ssl->session->exported == 1 ) - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (ssl->session->exported == 1) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; + } - ret = mbedtls_ssl_session_copy( dst, ssl->session ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_session_copy(dst, ssl->session); + if (ret != 0) { + return ret; + } /* Remember that we've exported the session. */ ssl->session->exported = 1; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_CLI_C */ @@ -3475,20 +3448,21 @@ int mbedtls_ssl_get_session( const mbedtls_ssl_context *ssl, #define SSL_SERIALIZED_SESSION_CONFIG_TICKET_BIT 5 #define SSL_SERIALIZED_SESSION_CONFIG_BITFLAG \ - ( (uint16_t) ( \ - ( SSL_SERIALIZED_SESSION_CONFIG_TIME << SSL_SERIALIZED_SESSION_CONFIG_TIME_BIT ) | \ - ( SSL_SERIALIZED_SESSION_CONFIG_CRT << SSL_SERIALIZED_SESSION_CONFIG_CRT_BIT ) | \ - ( SSL_SERIALIZED_SESSION_CONFIG_CLIENT_TICKET << SSL_SERIALIZED_SESSION_CONFIG_CLIENT_TICKET_BIT ) | \ - ( SSL_SERIALIZED_SESSION_CONFIG_MFL << SSL_SERIALIZED_SESSION_CONFIG_MFL_BIT ) | \ - ( SSL_SERIALIZED_SESSION_CONFIG_ETM << SSL_SERIALIZED_SESSION_CONFIG_ETM_BIT ) | \ - ( SSL_SERIALIZED_SESSION_CONFIG_TICKET << SSL_SERIALIZED_SESSION_CONFIG_TICKET_BIT ) ) ) + ((uint16_t) ( \ + (SSL_SERIALIZED_SESSION_CONFIG_TIME << SSL_SERIALIZED_SESSION_CONFIG_TIME_BIT) | \ + (SSL_SERIALIZED_SESSION_CONFIG_CRT << SSL_SERIALIZED_SESSION_CONFIG_CRT_BIT) | \ + (SSL_SERIALIZED_SESSION_CONFIG_CLIENT_TICKET << \ + SSL_SERIALIZED_SESSION_CONFIG_CLIENT_TICKET_BIT) | \ + (SSL_SERIALIZED_SESSION_CONFIG_MFL << SSL_SERIALIZED_SESSION_CONFIG_MFL_BIT) | \ + (SSL_SERIALIZED_SESSION_CONFIG_ETM << SSL_SERIALIZED_SESSION_CONFIG_ETM_BIT) | \ + (SSL_SERIALIZED_SESSION_CONFIG_TICKET << SSL_SERIALIZED_SESSION_CONFIG_TICKET_BIT))) static unsigned char ssl_serialized_session_header[] = { MBEDTLS_VERSION_MAJOR, MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH, - MBEDTLS_BYTE_1( SSL_SERIALIZED_SESSION_CONFIG_BITFLAG ), - MBEDTLS_BYTE_0( SSL_SERIALIZED_SESSION_CONFIG_BITFLAG ), + MBEDTLS_BYTE_1(SSL_SERIALIZED_SESSION_CONFIG_BITFLAG), + MBEDTLS_BYTE_0(SSL_SERIALIZED_SESSION_CONFIG_BITFLAG), }; /* @@ -3528,11 +3502,11 @@ static unsigned char ssl_serialized_session_header[] = { */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_session_save( const mbedtls_ssl_session *session, - unsigned char omit_header, - unsigned char *buf, - size_t buf_len, - size_t *olen ) +static int ssl_session_save(const mbedtls_ssl_session *session, + unsigned char omit_header, + unsigned char *buf, + size_t buf_len, + size_t *olen) { unsigned char *p = buf; size_t used = 0; @@ -3541,21 +3515,20 @@ static int ssl_session_save( const mbedtls_ssl_session *session, size_t out_len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #endif - if( session == NULL ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (session == NULL) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - if( !omit_header ) - { + if (!omit_header) { /* * Add Mbed TLS version identifier */ - used += sizeof( ssl_serialized_session_header ); + used += sizeof(ssl_serialized_session_header); - if( used <= buf_len ) - { - memcpy( p, ssl_serialized_session_header, - sizeof( ssl_serialized_session_header ) ); - p += sizeof( ssl_serialized_session_header ); + if (used <= buf_len) { + memcpy(p, ssl_serialized_session_header, + sizeof(ssl_serialized_session_header)); + p += sizeof(ssl_serialized_session_header); } } @@ -3563,50 +3536,50 @@ static int ssl_session_save( const mbedtls_ssl_session *session, * TLS version identifier */ used += 1; - if( used <= buf_len ) - { - *p++ = MBEDTLS_BYTE_0( session->tls_version ); + if (used <= buf_len) { + *p++ = MBEDTLS_BYTE_0(session->tls_version); } /* Forward to version-specific serialization routine. */ remaining_len = (buf_len >= used) ? buf_len - used : 0; - switch( session->tls_version ) - { + switch (session->tls_version) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - case MBEDTLS_SSL_VERSION_TLS1_2: - used += ssl_tls12_session_save( session, p, remaining_len ); - break; + case MBEDTLS_SSL_VERSION_TLS1_2: + used += ssl_tls12_session_save(session, p, remaining_len); + break; #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - case MBEDTLS_SSL_VERSION_TLS1_3: - ret = ssl_tls13_session_save( session, p, remaining_len, &out_len ); - if( ret != 0 && ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ) - return( ret ); - used += out_len; - break; + case MBEDTLS_SSL_VERSION_TLS1_3: + ret = ssl_tls13_session_save(session, p, remaining_len, &out_len); + if (ret != 0 && ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) { + return ret; + } + used += out_len; + break; #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - default: - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + default: + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } *olen = used; - if( used > buf_len ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (used > buf_len) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; + } - return( 0 ); + return 0; } /* * Public wrapper for ssl_session_save() */ -int mbedtls_ssl_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len, - size_t *olen ) +int mbedtls_ssl_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len, + size_t *olen) { - return( ssl_session_save( session, 0, buf, buf_len, olen ) ); + return ssl_session_save(session, 0, buf, buf_len, olen); } /* @@ -3616,82 +3589,83 @@ int mbedtls_ssl_session_save( const mbedtls_ssl_session *session, * case of error, and has an extra option omit_header. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_session_load( mbedtls_ssl_session *session, - unsigned char omit_header, - const unsigned char *buf, - size_t len ) +static int ssl_session_load(mbedtls_ssl_session *session, + unsigned char omit_header, + const unsigned char *buf, + size_t len) { const unsigned char *p = buf; const unsigned char * const end = buf + len; size_t remaining_len; - if( session == NULL ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (session == NULL) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - if( !omit_header ) - { + if (!omit_header) { /* * Check Mbed TLS version identifier */ - if( (size_t)( end - p ) < sizeof( ssl_serialized_session_header ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( memcmp( p, ssl_serialized_session_header, - sizeof( ssl_serialized_session_header ) ) != 0 ) - { - return( MBEDTLS_ERR_SSL_VERSION_MISMATCH ); + if ((size_t) (end - p) < sizeof(ssl_serialized_session_header)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - p += sizeof( ssl_serialized_session_header ); + + if (memcmp(p, ssl_serialized_session_header, + sizeof(ssl_serialized_session_header)) != 0) { + return MBEDTLS_ERR_SSL_VERSION_MISMATCH; + } + p += sizeof(ssl_serialized_session_header); } /* * TLS version identifier */ - if( 1 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (1 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->tls_version = 0x0300 | *p++; /* Dispatch according to TLS version. */ - remaining_len = ( end - p ); - switch( session->tls_version ) - { + remaining_len = (end - p); + switch (session->tls_version) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - case MBEDTLS_SSL_VERSION_TLS1_2: - return( ssl_tls12_session_load( session, p, remaining_len ) ); + case MBEDTLS_SSL_VERSION_TLS1_2: + return ssl_tls12_session_load(session, p, remaining_len); #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - case MBEDTLS_SSL_VERSION_TLS1_3: - return( ssl_tls13_session_load( session, p, remaining_len ) ); + case MBEDTLS_SSL_VERSION_TLS1_3: + return ssl_tls13_session_load(session, p, remaining_len); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - default: - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + default: + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } } /* * Deserialize session: public wrapper for error cleaning */ -int mbedtls_ssl_session_load( mbedtls_ssl_session *session, - const unsigned char *buf, - size_t len ) +int mbedtls_ssl_session_load(mbedtls_ssl_session *session, + const unsigned char *buf, + size_t len) { - int ret = ssl_session_load( session, 0, buf, len ); + int ret = ssl_session_load(session, 0, buf, len); - if( ret != 0 ) - mbedtls_ssl_session_free( session ); + if (ret != 0) { + mbedtls_ssl_session_free(session); + } - return( ret ); + return ret; } /* * Perform a single step of the SSL handshake */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_prepare_handshake_step( mbedtls_ssl_context *ssl ) +static int ssl_prepare_handshake_step(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -3710,143 +3684,143 @@ static int ssl_prepare_handshake_step( mbedtls_ssl_context *ssl ) * `mbedtls_ssl_handle_pending_alert` in case an error that triggered an * alert occurred. */ - if( ( ret = mbedtls_ssl_flush_output( ssl ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ssl_flush_output(ssl)) != 0) { + return ret; + } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING ) - { - if( ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->handshake->retransmit_state == MBEDTLS_SSL_RETRANS_SENDING) { + if ((ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + return ret; + } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - return( ret ); + return ret; } -int mbedtls_ssl_handshake_step( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handshake_step(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl == NULL || + if (ssl == NULL || ssl->conf == NULL || ssl->handshake == NULL || - ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - ret = ssl_prepare_handshake_step( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_prepare_handshake_step(ssl); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_handle_pending_alert( ssl ); - if( ret != 0 ) + ret = mbedtls_ssl_handle_pending_alert(ssl); + if (ret != 0) { goto cleanup; + } /* If ssl->conf->endpoint is not one of MBEDTLS_SSL_IS_CLIENT or * MBEDTLS_SSL_IS_SERVER, this is the return code we give */ ret = MBEDTLS_ERR_SSL_BAD_INPUT_DATA; #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "client state: %s", - mbedtls_ssl_states_str( ssl->state ) ) ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { + MBEDTLS_SSL_DEBUG_MSG(2, ("client state: %s", + mbedtls_ssl_states_str(ssl->state))); - switch( ssl->state ) - { + switch (ssl->state) { case MBEDTLS_SSL_HELLO_REQUEST: ssl->state = MBEDTLS_SSL_CLIENT_HELLO; ret = 0; break; case MBEDTLS_SSL_CLIENT_HELLO: - ret = mbedtls_ssl_write_client_hello( ssl ); + ret = mbedtls_ssl_write_client_hello(ssl); break; default: #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - ret = mbedtls_ssl_tls13_handshake_client_step( ssl ); - else - ret = mbedtls_ssl_handshake_client_step( ssl ); + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + ret = mbedtls_ssl_tls13_handshake_client_step(ssl); + } else { + ret = mbedtls_ssl_handshake_client_step(ssl); + } #elif defined(MBEDTLS_SSL_PROTO_TLS1_2) - ret = mbedtls_ssl_handshake_client_step( ssl ); + ret = mbedtls_ssl_handshake_client_step(ssl); #else - ret = mbedtls_ssl_tls13_handshake_client_step( ssl ); + ret = mbedtls_ssl_tls13_handshake_client_step(ssl); #endif } } #endif #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( mbedtls_ssl_conf_is_tls13_only( ssl->conf ) ) - ret = mbedtls_ssl_tls13_handshake_server_step( ssl ); + if (mbedtls_ssl_conf_is_tls13_only(ssl->conf)) { + ret = mbedtls_ssl_tls13_handshake_server_step(ssl); + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( mbedtls_ssl_conf_is_tls12_only( ssl->conf ) ) - ret = mbedtls_ssl_handshake_server_step( ssl ); + if (mbedtls_ssl_conf_is_tls12_only(ssl->conf)) { + ret = mbedtls_ssl_handshake_server_step(ssl); + } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ } #endif - if( ret != 0 ) - { + if (ret != 0) { /* handshake_step return error. And it is same * with alert_reason. */ - if( ssl->send_alert ) - { - ret = mbedtls_ssl_handle_pending_alert( ssl ); + if (ssl->send_alert) { + ret = mbedtls_ssl_handle_pending_alert(ssl); goto cleanup; } } cleanup: - return( ret ); + return ret; } /* * Perform the SSL handshake */ -int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handshake(mbedtls_ssl_context *ssl) { int ret = 0; /* Sanity checks */ - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ( ssl->f_set_timer == NULL || ssl->f_get_timer == NULL ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "You must use " - "mbedtls_ssl_set_timer_cb() for DTLS" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + (ssl->f_set_timer == NULL || ssl->f_get_timer == NULL)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("You must use " + "mbedtls_ssl_set_timer_cb() for DTLS")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> handshake" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> handshake")); /* Main handshake loop */ - while( ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER ) - { - ret = mbedtls_ssl_handshake_step( ssl ); + while (ssl->state != MBEDTLS_SSL_HANDSHAKE_OVER) { + ret = mbedtls_ssl_handshake_step(ssl); - if( ret != 0 ) + if (ret != 0) { break; + } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= handshake" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= handshake")); - return( ret ); + return ret; } #if defined(MBEDTLS_SSL_RENEGOTIATION) @@ -3855,25 +3829,24 @@ int mbedtls_ssl_handshake( mbedtls_ssl_context *ssl ) * Write HelloRequest to request renegotiation on server */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_hello_request( mbedtls_ssl_context *ssl ) +static int ssl_write_hello_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write hello request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write hello request")); ssl->out_msglen = 4; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->out_msg[0] = MBEDTLS_SSL_HS_HELLO_REQUEST; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write hello request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write hello request")); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SRV_C */ @@ -3886,67 +3859,69 @@ static int ssl_write_hello_request( mbedtls_ssl_context *ssl ) * If the handshake doesn't complete due to waiting for I/O, it will continue * during the next calls to mbedtls_ssl_renegotiate() or mbedtls_ssl_read() respectively. */ -int mbedtls_ssl_start_renegotiation( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_start_renegotiation(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> renegotiate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> renegotiate")); - if( ( ret = ssl_handshake_init( ssl ) ) != 0 ) - return( ret ); + if ((ret = ssl_handshake_init(ssl)) != 0) { + return ret; + } /* RFC 6347 4.2.2: "[...] the HelloRequest will have message_seq = 0 and * the ServerHello will have message_seq = 1" */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING ) - { - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_PENDING) { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { ssl->handshake->out_msg_seq = 1; - else + } else { ssl->handshake->in_msg_seq = 1; + } } #endif ssl->state = MBEDTLS_SSL_HELLO_REQUEST; ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS; - if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_handshake", ret ); - return( ret ); + if ((ret = mbedtls_ssl_handshake(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_handshake", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= renegotiate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= renegotiate")); - return( 0 ); + return 0; } /* * Renegotiate current connection on client, * or request renegotiation on server */ -int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_renegotiate(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; - if( ssl == NULL || ssl->conf == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl == NULL || ssl->conf == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } #if defined(MBEDTLS_SSL_SRV_C) /* On server, just send the request */ - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { + if (mbedtls_ssl_is_handshake_over(ssl) == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_PENDING; /* Did we already try/start sending HelloRequest? */ - if( ssl->out_left != 0 ) - return( mbedtls_ssl_flush_output( ssl ) ); + if (ssl->out_left != 0) { + return mbedtls_ssl_flush_output(ssl); + } - return( ssl_write_hello_request( ssl ) ); + return ssl_write_hello_request(ssl); } #endif /* MBEDTLS_SSL_SRV_C */ @@ -3955,108 +3930,104 @@ int mbedtls_ssl_renegotiate( mbedtls_ssl_context *ssl ) * On client, either start the renegotiation process or, * if already in progress, continue the handshake */ - if( ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( ( ret = mbedtls_ssl_start_renegotiation( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_start_renegotiation", ret ); - return( ret ); + if (ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { + if (mbedtls_ssl_is_handshake_over(ssl) == 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - } - else - { - if( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_handshake", ret ); - return( ret ); + + if ((ret = mbedtls_ssl_start_renegotiation(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_start_renegotiation", ret); + return ret; + } + } else { + if ((ret = mbedtls_ssl_handshake(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_handshake", ret); + return ret; } } #endif /* MBEDTLS_SSL_CLI_C */ - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ -void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_handshake_free(mbedtls_ssl_context *ssl) { mbedtls_ssl_handshake_params *handshake = ssl->handshake; - if( handshake == NULL ) + if (handshake == NULL) { return; + } #if defined(MBEDTLS_ECP_C) #if !defined(MBEDTLS_DEPRECATED_REMOVED) - if ( ssl->handshake->group_list_heap_allocated ) - mbedtls_free( (void*) handshake->group_list ); + if (ssl->handshake->group_list_heap_allocated) { + mbedtls_free((void *) handshake->group_list); + } handshake->group_list = NULL; #endif /* MBEDTLS_DEPRECATED_REMOVED */ #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if !defined(MBEDTLS_DEPRECATED_REMOVED) - if ( ssl->handshake->sig_algs_heap_allocated ) - mbedtls_free( (void*) handshake->sig_algs ); + if (ssl->handshake->sig_algs_heap_allocated) { + mbedtls_free((void *) handshake->sig_algs); + } handshake->sig_algs = NULL; #endif /* MBEDTLS_DEPRECATED_REMOVED */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( ssl->handshake->certificate_request_context ) - { - mbedtls_free( (void*) handshake->certificate_request_context ); + if (ssl->handshake->certificate_request_context) { + mbedtls_free((void *) handshake->certificate_request_context); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ssl->conf->f_async_cancel != NULL && handshake->async_in_progress != 0 ) - { - ssl->conf->f_async_cancel( ssl ); + if (ssl->conf->f_async_cancel != NULL && handshake->async_in_progress != 0) { + ssl->conf->f_async_cancel(ssl); handshake->async_in_progress = 0; } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &handshake->fin_sha256_psa ); + psa_hash_abort(&handshake->fin_sha256_psa); #else - mbedtls_sha256_free( &handshake->fin_sha256 ); + mbedtls_sha256_free(&handshake->fin_sha256); #endif #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &handshake->fin_sha384_psa ); + psa_hash_abort(&handshake->fin_sha384_psa); #else - mbedtls_sha512_free( &handshake->fin_sha384 ); + mbedtls_sha512_free(&handshake->fin_sha384); #endif #endif #if defined(MBEDTLS_DHM_C) - mbedtls_dhm_free( &handshake->dhm_ctx ); + mbedtls_dhm_free(&handshake->dhm_ctx); #endif #if !defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_ECDH_C) - mbedtls_ecdh_free( &handshake->ecdh_ctx ); + mbedtls_ecdh_free(&handshake->ecdh_ctx); #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_pake_abort( &handshake->psa_pake_ctx ); + psa_pake_abort(&handshake->psa_pake_ctx); /* * Opaque keys are not stored in the handshake's data and it's the user * responsibility to destroy them. Clear ones, instead, are created by * the TLS library and should be destroyed at the same level */ - if( ! mbedtls_svc_key_id_is_null( handshake->psa_pake_password ) ) - { - psa_destroy_key( handshake->psa_pake_password ); + if (!mbedtls_svc_key_id_is_null(handshake->psa_pake_password)) { + psa_destroy_key(handshake->psa_pake_password); } handshake->psa_pake_password = MBEDTLS_SVC_KEY_ID_INIT; #else - mbedtls_ecjpake_free( &handshake->ecjpake_ctx ); + mbedtls_ecjpake_free(&handshake->ecjpake_ctx); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_CLI_C) - mbedtls_free( handshake->ecjpake_cache ); + mbedtls_free(handshake->ecjpake_cache); handshake->ecjpake_cache = NULL; handshake->ecjpake_cache_len = 0; #endif @@ -4065,27 +4036,24 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) /* explicit void pointer cast for buggy MS compiler */ - mbedtls_free( (void *) handshake->curves_tls_id ); + mbedtls_free((void *) handshake->curves_tls_id); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) - { + if (!mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) { /* The maintenance of the external PSK key slot is the * user's responsibility. */ - if( ssl->handshake->psk_opaque_is_internal ) - { - psa_destroy_key( ssl->handshake->psk_opaque ); + if (ssl->handshake->psk_opaque_is_internal) { + psa_destroy_key(ssl->handshake->psk_opaque); ssl->handshake->psk_opaque_is_internal = 0; } ssl->handshake->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT; } #else - if( handshake->psk != NULL ) - { - mbedtls_platform_zeroize( handshake->psk, handshake->psk_len ); - mbedtls_free( handshake->psk ); + if (handshake->psk != NULL) { + mbedtls_platform_zeroize(handshake->psk, handshake->psk_len); + mbedtls_free(handshake->psk); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ @@ -4096,46 +4064,46 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) * Free only the linked list wrapper, not the keys themselves * since the belong to the SNI callback */ - ssl_key_cert_free( handshake->sni_key_cert ); + ssl_key_cert_free(handshake->sni_key_cert); #endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - mbedtls_x509_crt_restart_free( &handshake->ecrs_ctx ); - if( handshake->ecrs_peer_cert != NULL ) - { - mbedtls_x509_crt_free( handshake->ecrs_peer_cert ); - mbedtls_free( handshake->ecrs_peer_cert ); + mbedtls_x509_crt_restart_free(&handshake->ecrs_ctx); + if (handshake->ecrs_peer_cert != NULL) { + mbedtls_x509_crt_free(handshake->ecrs_peer_cert); + mbedtls_free(handshake->ecrs_peer_cert); } #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) && \ !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - mbedtls_pk_free( &handshake->peer_pubkey ); + mbedtls_pk_free(&handshake->peer_pubkey); #endif /* MBEDTLS_X509_CRT_PARSE_C && !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ #if defined(MBEDTLS_SSL_CLI_C) && \ - ( defined(MBEDTLS_SSL_PROTO_DTLS) || defined(MBEDTLS_SSL_PROTO_TLS1_3) ) - mbedtls_free( handshake->cookie ); + (defined(MBEDTLS_SSL_PROTO_DTLS) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) + mbedtls_free(handshake->cookie); #endif /* MBEDTLS_SSL_CLI_C && ( MBEDTLS_SSL_PROTO_DTLS || MBEDTLS_SSL_PROTO_TLS1_3 ) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - mbedtls_ssl_flight_free( handshake->flight ); - mbedtls_ssl_buffering_free( ssl ); + mbedtls_ssl_flight_free(handshake->flight); + mbedtls_ssl_buffering_free(ssl); #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_ECDH_C) && \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) ) - if( handshake->ecdh_psa_privkey_is_external == 0 ) - psa_destroy_key( handshake->ecdh_psa_privkey ); + (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) + if (handshake->ecdh_psa_privkey_is_external == 0) { + psa_destroy_key(handshake->ecdh_psa_privkey); + } #endif /* MBEDTLS_ECDH_C && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_transform_free( handshake->transform_handshake ); - mbedtls_free( handshake->transform_handshake ); + mbedtls_ssl_transform_free(handshake->transform_handshake); + mbedtls_free(handshake->transform_handshake); #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_transform_free( handshake->transform_earlydata ); - mbedtls_free( handshake->transform_earlydata ); + mbedtls_ssl_transform_free(handshake->transform_earlydata); + mbedtls_free(handshake->transform_earlydata); #endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -4145,33 +4113,34 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) * processes datagrams and the fact that a datagram is allowed to have * several records in it, it is possible that the I/O buffers are not * empty at this stage */ - handle_buffer_resizing( ssl, 1, mbedtls_ssl_get_input_buflen( ssl ), - mbedtls_ssl_get_output_buflen( ssl ) ); + handle_buffer_resizing(ssl, 1, mbedtls_ssl_get_input_buflen(ssl), + mbedtls_ssl_get_output_buflen(ssl)); #endif /* mbedtls_platform_zeroize MUST be last one in this function */ - mbedtls_platform_zeroize( handshake, - sizeof( mbedtls_ssl_handshake_params ) ); + mbedtls_platform_zeroize(handshake, + sizeof(mbedtls_ssl_handshake_params)); } -void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) +void mbedtls_ssl_session_free(mbedtls_ssl_session *session) { - if( session == NULL ) + if (session == NULL) { return; + } #if defined(MBEDTLS_X509_CRT_PARSE_C) - ssl_clear_peer_cert( session ); + ssl_clear_peer_cert(session); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - mbedtls_free( session->hostname ); + mbedtls_free(session->hostname); #endif - mbedtls_free( session->ticket ); + mbedtls_free(session->ticket); #endif - mbedtls_platform_zeroize( session, sizeof( mbedtls_ssl_session ) ); + mbedtls_platform_zeroize(session, sizeof(mbedtls_ssl_session)); } #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -4202,22 +4171,25 @@ void mbedtls_ssl_session_free( mbedtls_ssl_session *session ) #define SSL_SERIALIZED_CONTEXT_CONFIG_ALPN_BIT 3 #define SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG \ - ( (uint32_t) ( \ - ( SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_CONNECTION_ID << SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT ) | \ - ( SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_BADMAC_LIMIT << SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT ) | \ - ( SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_ANTI_REPLAY << SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT ) | \ - ( SSL_SERIALIZED_CONTEXT_CONFIG_ALPN << SSL_SERIALIZED_CONTEXT_CONFIG_ALPN_BIT ) | \ - 0u ) ) + ((uint32_t) ( \ + (SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_CONNECTION_ID << \ + SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT) | \ + (SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_BADMAC_LIMIT << \ + SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT) | \ + (SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_ANTI_REPLAY << \ + SSL_SERIALIZED_CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT) | \ + (SSL_SERIALIZED_CONTEXT_CONFIG_ALPN << SSL_SERIALIZED_CONTEXT_CONFIG_ALPN_BIT) | \ + 0u)) static unsigned char ssl_serialized_context_header[] = { MBEDTLS_VERSION_MAJOR, MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH, - MBEDTLS_BYTE_1( SSL_SERIALIZED_SESSION_CONFIG_BITFLAG ), - MBEDTLS_BYTE_0( SSL_SERIALIZED_SESSION_CONFIG_BITFLAG ), - MBEDTLS_BYTE_2( SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG ), - MBEDTLS_BYTE_1( SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG ), - MBEDTLS_BYTE_0( SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG ), + MBEDTLS_BYTE_1(SSL_SERIALIZED_SESSION_CONFIG_BITFLAG), + MBEDTLS_BYTE_0(SSL_SERIALIZED_SESSION_CONFIG_BITFLAG), + MBEDTLS_BYTE_2(SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG), + MBEDTLS_BYTE_1(SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG), + MBEDTLS_BYTE_0(SSL_SERIALIZED_CONTEXT_CONFIG_BITFLAG), }; /* @@ -4258,10 +4230,10 @@ static unsigned char ssl_serialized_context_header[] = { * 4. value was temporary (eg content of input buffer) * 5. value will be provided by the user again (eg I/O callbacks and context) */ -int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t buf_len, - size_t *olen ) +int mbedtls_ssl_context_save(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t buf_len, + size_t *olen) { unsigned char *p = buf; size_t used = 0; @@ -4277,89 +4249,80 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * (only DTLS) but are currently used to simplify the implementation. */ /* The initial handshake must be over */ - if( mbedtls_ssl_is_handshake_over( ssl ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Initial handshake isn't over" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mbedtls_ssl_is_handshake_over(ssl) == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Initial handshake isn't over")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - if( ssl->handshake != NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Handshake isn't completed" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->handshake != NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Handshake isn't completed")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Double-check that sub-structures are indeed ready */ - if( ssl->transform == NULL || ssl->session == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Serialised structures aren't ready" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->transform == NULL || ssl->session == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Serialised structures aren't ready")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* There must be no pending incoming or outgoing data */ - if( mbedtls_ssl_check_pending( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "There is pending incoming data" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mbedtls_ssl_check_pending(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("There is pending incoming data")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - if( ssl->out_left != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "There is pending outgoing data" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->out_left != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("There is pending outgoing data")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Protocol must be DTLS, not TLS */ - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Only DTLS is supported" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Only DTLS is supported")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Version must be 1.2 */ - if( ssl->tls_version != MBEDTLS_SSL_VERSION_TLS1_2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Only version 1.2 supported" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->tls_version != MBEDTLS_SSL_VERSION_TLS1_2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Only version 1.2 supported")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* We must be using an AEAD ciphersuite */ - if( mbedtls_ssl_transform_uses_aead( ssl->transform ) != 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Only AEAD ciphersuites supported" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (mbedtls_ssl_transform_uses_aead(ssl->transform) != 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Only AEAD ciphersuites supported")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Renegotiation must not be enabled */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->conf->disable_renegotiation != MBEDTLS_SSL_RENEGOTIATION_DISABLED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Renegotiation must not be enabled" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->disable_renegotiation != MBEDTLS_SSL_RENEGOTIATION_DISABLED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Renegotiation must not be enabled")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #endif /* * Version and format identifier */ - used += sizeof( ssl_serialized_context_header ); + used += sizeof(ssl_serialized_context_header); - if( used <= buf_len ) - { - memcpy( p, ssl_serialized_context_header, - sizeof( ssl_serialized_context_header ) ); - p += sizeof( ssl_serialized_context_header ); + if (used <= buf_len) { + memcpy(p, ssl_serialized_context_header, + sizeof(ssl_serialized_context_header)); + p += sizeof(ssl_serialized_context_header); } /* * Session (length + data) */ - ret = ssl_session_save( ssl->session, 1, NULL, 0, &session_len ); - if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ) - return( ret ); + ret = ssl_session_save(ssl->session, 1, NULL, 0, &session_len); + if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) { + return ret; + } used += 4 + session_len; - if( used <= buf_len ) - { - MBEDTLS_PUT_UINT32_BE( session_len, p, 0 ); + if (used <= buf_len) { + MBEDTLS_PUT_UINT32_BE(session_len, p, 0); p += 4; - ret = ssl_session_save( ssl->session, 1, - p, session_len, &session_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_session_save(ssl->session, 1, + p, session_len, &session_len); + if (ret != 0) { + return ret; + } p += session_len; } @@ -4367,24 +4330,22 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, /* * Transform */ - used += sizeof( ssl->transform->randbytes ); - if( used <= buf_len ) - { - memcpy( p, ssl->transform->randbytes, - sizeof( ssl->transform->randbytes ) ); - p += sizeof( ssl->transform->randbytes ); + used += sizeof(ssl->transform->randbytes); + if (used <= buf_len) { + memcpy(p, ssl->transform->randbytes, + sizeof(ssl->transform->randbytes)); + p += sizeof(ssl->transform->randbytes); } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) used += 2 + ssl->transform->in_cid_len + ssl->transform->out_cid_len; - if( used <= buf_len ) - { + if (used <= buf_len) { *p++ = ssl->transform->in_cid_len; - memcpy( p, ssl->transform->in_cid, ssl->transform->in_cid_len ); + memcpy(p, ssl->transform->in_cid, ssl->transform->in_cid_len); p += ssl->transform->in_cid_len; *p++ = ssl->transform->out_cid_len; - memcpy( p, ssl->transform->out_cid, ssl->transform->out_cid_len ); + memcpy(p, ssl->transform->out_cid, ssl->transform->out_cid_len); p += ssl->transform->out_cid_len; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -4393,44 +4354,39 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * Saved fields from top-level ssl_context structure */ used += 4; - if( used <= buf_len ) - { - MBEDTLS_PUT_UINT32_BE( ssl->badmac_seen, p, 0 ); + if (used <= buf_len) { + MBEDTLS_PUT_UINT32_BE(ssl->badmac_seen, p, 0); p += 4; } #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) used += 16; - if( used <= buf_len ) - { - MBEDTLS_PUT_UINT64_BE( ssl->in_window_top, p, 0 ); + if (used <= buf_len) { + MBEDTLS_PUT_UINT64_BE(ssl->in_window_top, p, 0); p += 8; - MBEDTLS_PUT_UINT64_BE( ssl->in_window, p, 0 ); + MBEDTLS_PUT_UINT64_BE(ssl->in_window, p, 0); p += 8; } #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ #if defined(MBEDTLS_SSL_PROTO_DTLS) used += 1; - if( used <= buf_len ) - { + if (used <= buf_len) { *p++ = ssl->disable_datagram_packing; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ used += MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; - if( used <= buf_len ) - { - memcpy( p, ssl->cur_out_ctr, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN ); + if (used <= buf_len) { + memcpy(p, ssl->cur_out_ctr, MBEDTLS_SSL_SEQUENCE_NUMBER_LEN); p += MBEDTLS_SSL_SEQUENCE_NUMBER_LEN; } #if defined(MBEDTLS_SSL_PROTO_DTLS) used += 2; - if( used <= buf_len ) - { - MBEDTLS_PUT_UINT16_BE( ssl->mtu, p, 0 ); + if (used <= buf_len) { + MBEDTLS_PUT_UINT16_BE(ssl->mtu, p, 0); p += 2; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -4438,17 +4394,15 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_ALPN) { const uint8_t alpn_len = ssl->alpn_chosen - ? (uint8_t) strlen( ssl->alpn_chosen ) + ? (uint8_t) strlen(ssl->alpn_chosen) : 0; used += 1 + alpn_len; - if( used <= buf_len ) - { + if (used <= buf_len) { *p++ = alpn_len; - if( ssl->alpn_chosen != NULL ) - { - memcpy( p, ssl->alpn_chosen, alpn_len ); + if (ssl->alpn_chosen != NULL) { + memcpy(p, ssl->alpn_chosen, alpn_len); p += alpn_len; } } @@ -4460,12 +4414,13 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, */ *olen = used; - if( used > buf_len ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (used > buf_len) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; + } - MBEDTLS_SSL_DEBUG_BUF( 4, "saved context", buf, used ); + MBEDTLS_SSL_DEBUG_BUF(4, "saved context", buf, used); - return( mbedtls_ssl_session_reset_int( ssl, 0 ) ); + return mbedtls_ssl_session_reset_int(ssl, 0); } /* @@ -4475,9 +4430,9 @@ int mbedtls_ssl_context_save( mbedtls_ssl_context *ssl, * case of error. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_context_load( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_context_load(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { const unsigned char *p = buf; const unsigned char * const end = buf + len; @@ -4493,52 +4448,51 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, * (Checking session is useful because it won't be NULL if we're * renegotiating, or if the user mistakenly loaded a session first.) */ - if( ssl->state != MBEDTLS_SSL_HELLO_REQUEST || - ssl->session != NULL ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->state != MBEDTLS_SSL_HELLO_REQUEST || + ssl->session != NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* * We can't check that the config matches the initial one, but we can at * least check it matches the requirements for serializing. */ - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || ssl->conf->max_tls_version < MBEDTLS_SSL_VERSION_TLS1_2 || ssl->conf->min_tls_version > MBEDTLS_SSL_VERSION_TLS1_2 || #if defined(MBEDTLS_SSL_RENEGOTIATION) ssl->conf->disable_renegotiation != MBEDTLS_SSL_RENEGOTIATION_DISABLED || #endif - 0 ) - { - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + 0) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - MBEDTLS_SSL_DEBUG_BUF( 4, "context to load", buf, len ); + MBEDTLS_SSL_DEBUG_BUF(4, "context to load", buf, len); /* * Check version identifier */ - if( (size_t)( end - p ) < sizeof( ssl_serialized_context_header ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - - if( memcmp( p, ssl_serialized_context_header, - sizeof( ssl_serialized_context_header ) ) != 0 ) - { - return( MBEDTLS_ERR_SSL_VERSION_MISMATCH ); + if ((size_t) (end - p) < sizeof(ssl_serialized_context_header)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - p += sizeof( ssl_serialized_context_header ); + + if (memcmp(p, ssl_serialized_context_header, + sizeof(ssl_serialized_context_header)) != 0) { + return MBEDTLS_ERR_SSL_VERSION_MISMATCH; + } + p += sizeof(ssl_serialized_context_header); /* * Session */ - if( (size_t)( end - p ) < 4 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 4) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session_len = ( (size_t) p[0] << 24 ) | - ( (size_t) p[1] << 16 ) | - ( (size_t) p[2] << 8 ) | - ( (size_t) p[3] ); + session_len = ((size_t) p[0] << 24) | + ((size_t) p[1] << 16) | + ((size_t) p[2] << 8) | + ((size_t) p[3]); p += 4; /* This has been allocated by ssl_handshake_init(), called by @@ -4548,14 +4502,14 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, ssl->session_out = ssl->session; ssl->session_negotiate = NULL; - if( (size_t)( end - p ) < session_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < session_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ret = ssl_session_load( ssl->session, 1, p, session_len ); - if( ret != 0 ) - { - mbedtls_ssl_session_free( ssl->session ); - return( ret ); + ret = ssl_session_load(ssl->session, 1, p, session_len); + if (ret != 0) { + mbedtls_ssl_session_free(ssl->session); + return ret; } p += session_len; @@ -4574,106 +4528,117 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - prf_func = ssl_tls12prf_from_cs( ssl->session->ciphersuite ); - if( prf_func == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + prf_func = ssl_tls12prf_from_cs(ssl->session->ciphersuite); + if (prf_func == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } /* Read random bytes and populate structure */ - if( (size_t)( end - p ) < sizeof( ssl->transform->randbytes ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < sizeof(ssl->transform->randbytes)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ret = ssl_tls12_populate_transform( ssl->transform, - ssl->session->ciphersuite, - ssl->session->master, + ret = ssl_tls12_populate_transform(ssl->transform, + ssl->session->ciphersuite, + ssl->session->master, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - ssl->session->encrypt_then_mac, + ssl->session->encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - prf_func, - p, /* currently pointing to randbytes */ - MBEDTLS_SSL_VERSION_TLS1_2, /* (D)TLS 1.2 is forced */ - ssl->conf->endpoint, - ssl ); - if( ret != 0 ) - return( ret ); + prf_func, + p, /* currently pointing to randbytes */ + MBEDTLS_SSL_VERSION_TLS1_2, /* (D)TLS 1.2 is forced */ + ssl->conf->endpoint, + ssl); + if (ret != 0) { + return ret; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - p += sizeof( ssl->transform->randbytes ); + p += sizeof(ssl->transform->randbytes); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* Read connection IDs and store them */ - if( (size_t)( end - p ) < 1 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 1) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } ssl->transform->in_cid_len = *p++; - if( (size_t)( end - p ) < ssl->transform->in_cid_len + 1u ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < ssl->transform->in_cid_len + 1u) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - memcpy( ssl->transform->in_cid, p, ssl->transform->in_cid_len ); + memcpy(ssl->transform->in_cid, p, ssl->transform->in_cid_len); p += ssl->transform->in_cid_len; ssl->transform->out_cid_len = *p++; - if( (size_t)( end - p ) < ssl->transform->out_cid_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < ssl->transform->out_cid_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - memcpy( ssl->transform->out_cid, p, ssl->transform->out_cid_len ); + memcpy(ssl->transform->out_cid, p, ssl->transform->out_cid_len); p += ssl->transform->out_cid_len; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ /* * Saved fields from top-level ssl_context structure */ - if( (size_t)( end - p ) < 4 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 4) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl->badmac_seen = ( (uint32_t) p[0] << 24 ) | - ( (uint32_t) p[1] << 16 ) | - ( (uint32_t) p[2] << 8 ) | - ( (uint32_t) p[3] ); + ssl->badmac_seen = ((uint32_t) p[0] << 24) | + ((uint32_t) p[1] << 16) | + ((uint32_t) p[2] << 8) | + ((uint32_t) p[3]); p += 4; #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - if( (size_t)( end - p ) < 16 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 16) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl->in_window_top = ( (uint64_t) p[0] << 56 ) | - ( (uint64_t) p[1] << 48 ) | - ( (uint64_t) p[2] << 40 ) | - ( (uint64_t) p[3] << 32 ) | - ( (uint64_t) p[4] << 24 ) | - ( (uint64_t) p[5] << 16 ) | - ( (uint64_t) p[6] << 8 ) | - ( (uint64_t) p[7] ); + ssl->in_window_top = ((uint64_t) p[0] << 56) | + ((uint64_t) p[1] << 48) | + ((uint64_t) p[2] << 40) | + ((uint64_t) p[3] << 32) | + ((uint64_t) p[4] << 24) | + ((uint64_t) p[5] << 16) | + ((uint64_t) p[6] << 8) | + ((uint64_t) p[7]); p += 8; - ssl->in_window = ( (uint64_t) p[0] << 56 ) | - ( (uint64_t) p[1] << 48 ) | - ( (uint64_t) p[2] << 40 ) | - ( (uint64_t) p[3] << 32 ) | - ( (uint64_t) p[4] << 24 ) | - ( (uint64_t) p[5] << 16 ) | - ( (uint64_t) p[6] << 8 ) | - ( (uint64_t) p[7] ); + ssl->in_window = ((uint64_t) p[0] << 56) | + ((uint64_t) p[1] << 48) | + ((uint64_t) p[2] << 40) | + ((uint64_t) p[3] << 32) | + ((uint64_t) p[4] << 24) | + ((uint64_t) p[5] << 16) | + ((uint64_t) p[6] << 8) | + ((uint64_t) p[7]); p += 8; #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( (size_t)( end - p ) < 1 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 1) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } ssl->disable_datagram_packing = *p++; #endif /* MBEDTLS_SSL_PROTO_DTLS */ - if( (size_t)( end - p ) < sizeof( ssl->cur_out_ctr ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - memcpy( ssl->cur_out_ctr, p, sizeof( ssl->cur_out_ctr ) ); - p += sizeof( ssl->cur_out_ctr ); + if ((size_t) (end - p) < sizeof(ssl->cur_out_ctr)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + memcpy(ssl->cur_out_ctr, p, sizeof(ssl->cur_out_ctr)); + p += sizeof(ssl->cur_out_ctr); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( (size_t)( end - p ) < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl->mtu = ( p[0] << 8 ) | p[1]; + ssl->mtu = (p[0] << 8) | p[1]; p += 2; #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -4682,19 +4647,17 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, uint8_t alpn_len; const char **cur; - if( (size_t)( end - p ) < 1 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if ((size_t) (end - p) < 1) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } alpn_len = *p++; - if( alpn_len != 0 && ssl->conf->alpn_list != NULL ) - { + if (alpn_len != 0 && ssl->conf->alpn_list != NULL) { /* alpn_chosen should point to an item in the configured list */ - for( cur = ssl->conf->alpn_list; *cur != NULL; cur++ ) - { - if( strlen( *cur ) == alpn_len && - memcmp( p, cur, alpn_len ) == 0 ) - { + for (cur = ssl->conf->alpn_list; *cur != NULL; cur++) { + if (strlen(*cur) == alpn_len && + memcmp(p, cur, alpn_len) == 0) { ssl->alpn_chosen = *cur; break; } @@ -4702,8 +4665,9 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, } /* can only happen on conf mismatch */ - if( alpn_len != 0 && ssl->alpn_chosen == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (alpn_len != 0 && ssl->alpn_chosen == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } p += alpn_len; } @@ -4720,7 +4684,7 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, /* Adjust pointers for header fields of outgoing records to * the given transform, accounting for explicit IV and CID. */ - mbedtls_ssl_update_out_pointers( ssl, ssl->transform ); + mbedtls_ssl_update_out_pointers(ssl, ssl->transform); #if defined(MBEDTLS_SSL_PROTO_DTLS) ssl->in_epoch = 1; @@ -4730,129 +4694,125 @@ static int ssl_context_load( mbedtls_ssl_context *ssl, * which we don't want - otherwise we'd end up freeing the wrong transform * by calling mbedtls_ssl_handshake_wrapup_free_hs_transform() * inappropriately. */ - if( ssl->handshake != NULL ) - { - mbedtls_ssl_handshake_free( ssl ); - mbedtls_free( ssl->handshake ); + if (ssl->handshake != NULL) { + mbedtls_ssl_handshake_free(ssl); + mbedtls_free(ssl->handshake); ssl->handshake = NULL; } /* * Done - should have consumed entire buffer */ - if( p != end ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (p != end) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } /* * Deserialize context: public wrapper for error cleaning */ -int mbedtls_ssl_context_load( mbedtls_ssl_context *context, - const unsigned char *buf, - size_t len ) +int mbedtls_ssl_context_load(mbedtls_ssl_context *context, + const unsigned char *buf, + size_t len) { - int ret = ssl_context_load( context, buf, len ); + int ret = ssl_context_load(context, buf, len); - if( ret != 0 ) - mbedtls_ssl_free( context ); + if (ret != 0) { + mbedtls_ssl_free(context); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ /* * Free an SSL context */ -void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_free(mbedtls_ssl_context *ssl) { - if( ssl == NULL ) + if (ssl == NULL) { return; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> free" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> free")); - if( ssl->out_buf != NULL ) - { + if (ssl->out_buf != NULL) { #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) size_t out_buf_len = ssl->out_buf_len; #else size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN; #endif - mbedtls_platform_zeroize( ssl->out_buf, out_buf_len ); - mbedtls_free( ssl->out_buf ); + mbedtls_platform_zeroize(ssl->out_buf, out_buf_len); + mbedtls_free(ssl->out_buf); ssl->out_buf = NULL; } - if( ssl->in_buf != NULL ) - { + if (ssl->in_buf != NULL) { #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) size_t in_buf_len = ssl->in_buf_len; #else size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; #endif - mbedtls_platform_zeroize( ssl->in_buf, in_buf_len ); - mbedtls_free( ssl->in_buf ); + mbedtls_platform_zeroize(ssl->in_buf, in_buf_len); + mbedtls_free(ssl->in_buf); ssl->in_buf = NULL; } - if( ssl->transform ) - { - mbedtls_ssl_transform_free( ssl->transform ); - mbedtls_free( ssl->transform ); + if (ssl->transform) { + mbedtls_ssl_transform_free(ssl->transform); + mbedtls_free(ssl->transform); } - if( ssl->handshake ) - { - mbedtls_ssl_handshake_free( ssl ); - mbedtls_free( ssl->handshake ); + if (ssl->handshake) { + mbedtls_ssl_handshake_free(ssl); + mbedtls_free(ssl->handshake); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - mbedtls_ssl_transform_free( ssl->transform_negotiate ); - mbedtls_free( ssl->transform_negotiate ); + mbedtls_ssl_transform_free(ssl->transform_negotiate); + mbedtls_free(ssl->transform_negotiate); #endif - mbedtls_ssl_session_free( ssl->session_negotiate ); - mbedtls_free( ssl->session_negotiate ); + mbedtls_ssl_session_free(ssl->session_negotiate); + mbedtls_free(ssl->session_negotiate); } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_transform_free( ssl->transform_application ); - mbedtls_free( ssl->transform_application ); + mbedtls_ssl_transform_free(ssl->transform_application); + mbedtls_free(ssl->transform_application); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( ssl->session ) - { - mbedtls_ssl_session_free( ssl->session ); - mbedtls_free( ssl->session ); + if (ssl->session) { + mbedtls_ssl_session_free(ssl->session); + mbedtls_free(ssl->session); } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ssl->hostname != NULL ) - { - mbedtls_platform_zeroize( ssl->hostname, strlen( ssl->hostname ) ); - mbedtls_free( ssl->hostname ); + if (ssl->hostname != NULL) { + mbedtls_platform_zeroize(ssl->hostname, strlen(ssl->hostname)); + mbedtls_free(ssl->hostname); } #endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && defined(MBEDTLS_SSL_SRV_C) - mbedtls_free( ssl->cli_id ); + mbedtls_free(ssl->cli_id); #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= free" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= free")); /* Actually clear after last debug message */ - mbedtls_platform_zeroize( ssl, sizeof( mbedtls_ssl_context ) ); + mbedtls_platform_zeroize(ssl, sizeof(mbedtls_ssl_context)); } /* * Initialize mbedtls_ssl_config */ -void mbedtls_ssl_config_init( mbedtls_ssl_config *conf ) +void mbedtls_ssl_config_init(mbedtls_ssl_config *conf) { - memset( conf, 0, sizeof( mbedtls_ssl_config ) ); + memset(conf, 0, sizeof(mbedtls_ssl_config)); } /* The selection should be the same as mbedtls_x509_crt_profile_default in @@ -4925,17 +4885,23 @@ static uint16_t ssl_preset_default_sig_algs[] = { #endif /* MBEDTLS_ECDSA_C && MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA&& MBEDTLS_ECP_DP_SECP521R1_ENABLED */ -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ + defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512, -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif \ + /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384, -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif \ + /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#endif \ + /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512, @@ -4957,35 +4923,35 @@ static uint16_t ssl_preset_default_sig_algs[] = { static uint16_t ssl_tls12_preset_default_sig_algs[] = { #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA512 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA512), #endif #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512, #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA512 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA512), #endif #endif /* MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384), #endif #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384, #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA384 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA384), #endif #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256), #endif #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA256 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA256), #endif #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ MBEDTLS_TLS_SIG_NONE @@ -5006,9 +4972,11 @@ static uint16_t ssl_preset_suiteb_sig_algs[] = { #endif /* MBEDTLS_ECDSA_C && MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA&& MBEDTLS_ECP_DP_SECP384R1_ENABLED */ -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, -#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ +#endif \ + /* MBEDTLS_X509_RSASSA_PSS_SUPPORT && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256, @@ -5022,18 +4990,18 @@ static uint16_t ssl_preset_suiteb_sig_algs[] = { static uint16_t ssl_tls12_preset_suiteb_sig_algs[] = { #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA256), #endif #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA256 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA256), #endif #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, MBEDTLS_SSL_HASH_SHA384), #endif #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA384 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, MBEDTLS_SSL_HASH_SHA384), #endif #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ MBEDTLS_TLS_SIG_NONE @@ -5056,24 +5024,23 @@ static uint16_t ssl_preset_suiteb_groups[] = { /* Function for checking `ssl_preset_*_sig_algs` and `ssl_tls12_preset_*_sig_algs` * to make sure there are no duplicated signature algorithm entries. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_no_sig_alg_duplication( uint16_t * sig_algs ) +static int ssl_check_no_sig_alg_duplication(uint16_t *sig_algs) { size_t i, j; int ret = 0; - for( i = 0; sig_algs[i] != MBEDTLS_TLS_SIG_NONE; i++ ) - { - for( j = 0; j < i; j++ ) - { - if( sig_algs[i] != sig_algs[j] ) + for (i = 0; sig_algs[i] != MBEDTLS_TLS_SIG_NONE; i++) { + for (j = 0; j < i; j++) { + if (sig_algs[i] != sig_algs[j]) { continue; - mbedtls_printf( " entry(%04x,%" MBEDTLS_PRINTF_SIZET - ") is duplicated at %" MBEDTLS_PRINTF_SIZET "\n", - sig_algs[i], j, i ); + } + mbedtls_printf(" entry(%04x,%" MBEDTLS_PRINTF_SIZET + ") is duplicated at %" MBEDTLS_PRINTF_SIZET "\n", + sig_algs[i], j, i); ret = -1; } } - return( ret ); + return ret; } #endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -5081,52 +5048,47 @@ static int ssl_check_no_sig_alg_duplication( uint16_t * sig_algs ) /* * Load default in mbedtls_ssl_config */ -int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, - int endpoint, int transport, int preset ) +int mbedtls_ssl_config_defaults(mbedtls_ssl_config *conf, + int endpoint, int transport, int preset) { #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #endif #if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( ssl_check_no_sig_alg_duplication( ssl_preset_suiteb_sig_algs ) ) - { - mbedtls_printf( "ssl_preset_suiteb_sig_algs has duplicated entries\n" ); - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + if (ssl_check_no_sig_alg_duplication(ssl_preset_suiteb_sig_algs)) { + mbedtls_printf("ssl_preset_suiteb_sig_algs has duplicated entries\n"); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } - if( ssl_check_no_sig_alg_duplication( ssl_preset_default_sig_algs ) ) - { - mbedtls_printf( "ssl_preset_default_sig_algs has duplicated entries\n" ); - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + if (ssl_check_no_sig_alg_duplication(ssl_preset_default_sig_algs)) { + mbedtls_printf("ssl_preset_default_sig_algs has duplicated entries\n"); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl_check_no_sig_alg_duplication( ssl_tls12_preset_suiteb_sig_algs ) ) - { - mbedtls_printf( "ssl_tls12_preset_suiteb_sig_algs has duplicated entries\n" ); - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + if (ssl_check_no_sig_alg_duplication(ssl_tls12_preset_suiteb_sig_algs)) { + mbedtls_printf("ssl_tls12_preset_suiteb_sig_algs has duplicated entries\n"); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } - if( ssl_check_no_sig_alg_duplication( ssl_tls12_preset_default_sig_algs ) ) - { - mbedtls_printf( "ssl_tls12_preset_default_sig_algs has duplicated entries\n" ); - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + if (ssl_check_no_sig_alg_duplication(ssl_tls12_preset_default_sig_algs)) { + mbedtls_printf("ssl_tls12_preset_default_sig_algs has duplicated entries\n"); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #endif /* MBEDTLS_DEBUG_C && MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* Use the functions here so that they are covered in tests, * but otherwise access member directly for efficiency */ - mbedtls_ssl_conf_endpoint( conf, endpoint ); - mbedtls_ssl_conf_transport( conf, transport ); + mbedtls_ssl_conf_endpoint(conf, endpoint); + mbedtls_ssl_conf_transport(conf, transport); /* * Things that are common to all presets */ #if defined(MBEDTLS_SSL_CLI_C) - if( endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (endpoint == MBEDTLS_SSL_IS_CLIENT) { conf->authmode = MBEDTLS_SSL_VERIFY_REQUIRED; #if defined(MBEDTLS_SSL_SESSION_TICKETS) conf->session_tickets = MBEDTLS_SSL_SESSION_TICKETS_ENABLED; @@ -5163,23 +5125,21 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_RENEGOTIATION) conf->renego_max_records = MBEDTLS_SSL_RENEGO_MAX_RECORDS_DEFAULT; - memset( conf->renego_period, 0x00, 2 ); - memset( conf->renego_period + 2, 0xFF, 6 ); + memset(conf->renego_period, 0x00, 2); + memset(conf->renego_period + 2, 0xFF, 6); #endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_SSL_SRV_C) - if( endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (endpoint == MBEDTLS_SSL_IS_SERVER) { const unsigned char dhm_p[] = MBEDTLS_DHM_RFC3526_MODP_2048_P_BIN; const unsigned char dhm_g[] = MBEDTLS_DHM_RFC3526_MODP_2048_G_BIN; - if ( ( ret = mbedtls_ssl_conf_dh_param_bin( conf, - dhm_p, sizeof( dhm_p ), - dhm_g, sizeof( dhm_g ) ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ssl_conf_dh_param_bin(conf, + dhm_p, sizeof(dhm_p), + dhm_g, sizeof(dhm_g))) != 0) { + return ret; } } #endif @@ -5187,16 +5147,16 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_tls13_conf_early_data( conf, MBEDTLS_SSL_EARLY_DATA_DISABLED ); + mbedtls_ssl_tls13_conf_early_data(conf, MBEDTLS_SSL_EARLY_DATA_DISABLED); #if defined(MBEDTLS_SSL_SRV_C) mbedtls_ssl_tls13_conf_max_early_data_size( - conf, MBEDTLS_SSL_MAX_EARLY_DATA_SIZE ); + conf, MBEDTLS_SSL_MAX_EARLY_DATA_SIZE); #endif #endif /* MBEDTLS_SSL_EARLY_DATA */ #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_conf_new_session_tickets( - conf, MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS ); + conf, MBEDTLS_SSL_TLS1_3_DEFAULT_NEW_SESSION_TICKETS); #endif /* * Allow all TLS 1.3 key exchange modes by default. @@ -5204,26 +5164,20 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) conf->min_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; conf->max_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; #else - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; #endif - } - else - { + } else { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (endpoint == MBEDTLS_SSL_IS_CLIENT) { conf->min_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; conf->max_tls_version = MBEDTLS_SSL_VERSION_TLS1_3; - } - else - /* Hybrid TLS 1.2 / 1.3 is not supported on server side yet */ - { + } else { + /* Hybrid TLS 1.2 / 1.3 is not supported on server side yet */ conf->min_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; conf->max_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; } @@ -5234,15 +5188,14 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, conf->min_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; conf->max_tls_version = MBEDTLS_SSL_VERSION_TLS1_2; #else - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; #endif } /* * Preset-specific defaults */ - switch( preset ) - { + switch (preset) { /* * NSA Suite B */ @@ -5256,11 +5209,11 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( mbedtls_ssl_conf_is_tls12_only( conf ) ) + if (mbedtls_ssl_conf_is_tls12_only(conf)) { conf->sig_algs = ssl_tls12_preset_suiteb_sig_algs; - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - conf->sig_algs = ssl_preset_suiteb_sig_algs; + conf->sig_algs = ssl_preset_suiteb_sig_algs; #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -5282,11 +5235,11 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( mbedtls_ssl_conf_is_tls12_only( conf ) ) + if (mbedtls_ssl_conf_is_tls12_only(conf)) { conf->sig_algs = ssl_tls12_preset_default_sig_algs; - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - conf->sig_algs = ssl_preset_default_sig_algs; + conf->sig_algs = ssl_preset_default_sig_algs; #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) @@ -5299,95 +5252,93 @@ int mbedtls_ssl_config_defaults( mbedtls_ssl_config *conf, #endif } - return( 0 ); + return 0; } /* * Free mbedtls_ssl_config */ -void mbedtls_ssl_config_free( mbedtls_ssl_config *conf ) +void mbedtls_ssl_config_free(mbedtls_ssl_config *conf) { #if defined(MBEDTLS_DHM_C) - mbedtls_mpi_free( &conf->dhm_P ); - mbedtls_mpi_free( &conf->dhm_G ); + mbedtls_mpi_free(&conf->dhm_P); + mbedtls_mpi_free(&conf->dhm_G); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - { + if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) { conf->psk_opaque = MBEDTLS_SVC_KEY_ID_INIT; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL ) - { - mbedtls_platform_zeroize( conf->psk, conf->psk_len ); - mbedtls_free( conf->psk ); + if (conf->psk != NULL) { + mbedtls_platform_zeroize(conf->psk, conf->psk_len); + mbedtls_free(conf->psk); conf->psk = NULL; conf->psk_len = 0; } - if( conf->psk_identity != NULL ) - { - mbedtls_platform_zeroize( conf->psk_identity, conf->psk_identity_len ); - mbedtls_free( conf->psk_identity ); + if (conf->psk_identity != NULL) { + mbedtls_platform_zeroize(conf->psk_identity, conf->psk_identity_len); + mbedtls_free(conf->psk_identity); conf->psk_identity = NULL; conf->psk_identity_len = 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_X509_CRT_PARSE_C) - ssl_key_cert_free( conf->key_cert ); + ssl_key_cert_free(conf->key_cert); #endif - mbedtls_platform_zeroize( conf, sizeof( mbedtls_ssl_config ) ); + mbedtls_platform_zeroize(conf, sizeof(mbedtls_ssl_config)); } #if defined(MBEDTLS_PK_C) && \ - ( defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C) ) + (defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C)) /* * Convert between MBEDTLS_PK_XXX and SSL_SIG_XXX */ -unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk ) +unsigned char mbedtls_ssl_sig_from_pk(mbedtls_pk_context *pk) { #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_can_do( pk, MBEDTLS_PK_RSA ) ) - return( MBEDTLS_SSL_SIG_RSA ); + if (mbedtls_pk_can_do(pk, MBEDTLS_PK_RSA)) { + return MBEDTLS_SSL_SIG_RSA; + } #endif #if defined(MBEDTLS_ECDSA_C) - if( mbedtls_pk_can_do( pk, MBEDTLS_PK_ECDSA ) ) - return( MBEDTLS_SSL_SIG_ECDSA ); + if (mbedtls_pk_can_do(pk, MBEDTLS_PK_ECDSA)) { + return MBEDTLS_SSL_SIG_ECDSA; + } #endif - return( MBEDTLS_SSL_SIG_ANON ); + return MBEDTLS_SSL_SIG_ANON; } -unsigned char mbedtls_ssl_sig_from_pk_alg( mbedtls_pk_type_t type ) +unsigned char mbedtls_ssl_sig_from_pk_alg(mbedtls_pk_type_t type) { - switch( type ) { + switch (type) { case MBEDTLS_PK_RSA: - return( MBEDTLS_SSL_SIG_RSA ); + return MBEDTLS_SSL_SIG_RSA; case MBEDTLS_PK_ECDSA: case MBEDTLS_PK_ECKEY: - return( MBEDTLS_SSL_SIG_ECDSA ); + return MBEDTLS_SSL_SIG_ECDSA; default: - return( MBEDTLS_SSL_SIG_ANON ); + return MBEDTLS_SSL_SIG_ANON; } } -mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig( unsigned char sig ) +mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig(unsigned char sig) { - switch( sig ) - { + switch (sig) { #if defined(MBEDTLS_RSA_C) case MBEDTLS_SSL_SIG_RSA: - return( MBEDTLS_PK_RSA ); + return MBEDTLS_PK_RSA; #endif #if defined(MBEDTLS_ECDSA_C) case MBEDTLS_SSL_SIG_ECDSA: - return( MBEDTLS_PK_ECDSA ); + return MBEDTLS_PK_ECDSA; #endif default: - return( MBEDTLS_PK_NONE ); + return MBEDTLS_PK_NONE; } } #endif /* MBEDTLS_PK_C && ( MBEDTLS_RSA_C || MBEDTLS_ECDSA_C ) */ @@ -5395,72 +5346,70 @@ mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig( unsigned char sig ) /* * Convert from MBEDTLS_SSL_HASH_XXX to MBEDTLS_MD_XXX */ -mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash( unsigned char hash ) +mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash(unsigned char hash) { - switch( hash ) - { + switch (hash) { #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_MD5: - return( MBEDTLS_MD_MD5 ); + return MBEDTLS_MD_MD5; #endif #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA1: - return( MBEDTLS_MD_SHA1 ); + return MBEDTLS_MD_SHA1; #endif #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA224: - return( MBEDTLS_MD_SHA224 ); + return MBEDTLS_MD_SHA224; #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA256: - return( MBEDTLS_MD_SHA256 ); + return MBEDTLS_MD_SHA256; #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA384: - return( MBEDTLS_MD_SHA384 ); + return MBEDTLS_MD_SHA384; #endif #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA512: - return( MBEDTLS_MD_SHA512 ); + return MBEDTLS_MD_SHA512; #endif default: - return( MBEDTLS_MD_NONE ); + return MBEDTLS_MD_NONE; } } /* * Convert from MBEDTLS_MD_XXX to MBEDTLS_SSL_HASH_XXX */ -unsigned char mbedtls_ssl_hash_from_md_alg( int md ) +unsigned char mbedtls_ssl_hash_from_md_alg(int md) { - switch( md ) - { + switch (md) { #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_MD5: - return( MBEDTLS_SSL_HASH_MD5 ); + return MBEDTLS_SSL_HASH_MD5; #endif #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_SHA1: - return( MBEDTLS_SSL_HASH_SHA1 ); + return MBEDTLS_SSL_HASH_SHA1; #endif #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_SHA224: - return( MBEDTLS_SSL_HASH_SHA224 ); + return MBEDTLS_SSL_HASH_SHA224; #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_SHA256: - return( MBEDTLS_SSL_HASH_SHA256 ); + return MBEDTLS_SSL_HASH_SHA256; #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_SHA384: - return( MBEDTLS_SSL_HASH_SHA384 ); + return MBEDTLS_SSL_HASH_SHA384; #endif #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_MD_SHA512: - return( MBEDTLS_SSL_HASH_SHA512 ); + return MBEDTLS_SSL_HASH_SHA512; #endif default: - return( MBEDTLS_SSL_HASH_NONE ); + return MBEDTLS_SSL_HASH_NONE; } } @@ -5468,38 +5417,40 @@ unsigned char mbedtls_ssl_hash_from_md_alg( int md ) * Check if a curve proposed by the peer is in our list. * Return 0 if we're willing to use it, -1 otherwise. */ -int mbedtls_ssl_check_curve_tls_id( const mbedtls_ssl_context *ssl, uint16_t tls_id ) +int mbedtls_ssl_check_curve_tls_id(const mbedtls_ssl_context *ssl, uint16_t tls_id) { - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); - if( group_list == NULL ) - return( -1 ); - - for( ; *group_list != 0; group_list++ ) - { - if( *group_list == tls_id ) - return( 0 ); + if (group_list == NULL) { + return -1; } - return( -1 ); + for (; *group_list != 0; group_list++) { + if (*group_list == tls_id) { + return 0; + } + } + + return -1; } #if defined(MBEDTLS_ECP_C) /* * Same as mbedtls_ssl_check_curve_tls_id() but with a mbedtls_ecp_group_id. */ -int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id ) +int mbedtls_ssl_check_curve(const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id) { - uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( grp_id ); + uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(grp_id); - if ( tls_id == 0 ) + if (tls_id == 0) { return -1; + } - return mbedtls_ssl_check_curve_tls_id( ssl, tls_id ); + return mbedtls_ssl_check_curve_tls_id(ssl, tls_id); } #endif /* MBEDTLS_ECP_C */ -#if defined( MBEDTLS_DEBUG_C ) +#if defined(MBEDTLS_DEBUG_C) #define EC_NAME(_name_) _name_ #else #define EC_NAME(_name_) NULL @@ -5510,63 +5461,63 @@ static const struct { mbedtls_ecp_group_id ecp_group_id; psa_ecc_family_t psa_family; uint16_t bits; - const char* name; + const char *name; } tls_id_match_table[] = { #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_521) - { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521, EC_NAME( "secp521r1" ) }, + { 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521, EC_NAME("secp521r1") }, #endif #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) - { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512, EC_NAME( "brainpoolP512r1" ) }, + { 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512, EC_NAME("brainpoolP512r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384) - { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384, EC_NAME( "secp384r1" ) }, + { 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384, EC_NAME("secp384r1") }, #endif #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) - { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384, EC_NAME( "brainpoolP384r1" ) }, + { 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384, EC_NAME("brainpoolP384r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256) - { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256, EC_NAME( "secp256r1" ) }, + { 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256, EC_NAME("secp256r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_256) - { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256, EC_NAME( "secp256k1" ) }, + { 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256, EC_NAME("secp256k1") }, #endif #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) - { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256, EC_NAME( "brainpoolP256r1" ) }, + { 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256, EC_NAME("brainpoolP256r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_224) - { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224, EC_NAME( "secp224r1" ) }, + { 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224, EC_NAME("secp224r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_224) - { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224, EC_NAME( "secp224k1" ) }, + { 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224, EC_NAME("secp224k1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_192) - { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192, EC_NAME( "secp192r1" ) }, + { 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192, EC_NAME("secp192r1") }, #endif #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_192) - { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192, EC_NAME( "secp192k1" ) }, + { 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192, EC_NAME("secp192k1") }, #endif #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_255) - { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255, EC_NAME( "x25519" ) }, + { 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255, EC_NAME("x25519") }, #endif #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_448) - { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448, EC_NAME( "x448" ) }, + { 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448, EC_NAME("x448") }, #endif { 0, MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, }; -int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, - psa_ecc_family_t *family, - size_t* bits ) +int mbedtls_ssl_get_psa_curve_info_from_tls_id(uint16_t tls_id, + psa_ecc_family_t *family, + size_t *bits) { - for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) - { - if( tls_id_match_table[i].tls_id == tls_id ) - { - if( family != NULL ) + for (int i = 0; tls_id_match_table[i].tls_id != 0; i++) { + if (tls_id_match_table[i].tls_id == tls_id) { + if (family != NULL) { *family = tls_id_match_table[i].psa_family; - if( bits != NULL ) + } + if (bits != NULL) { *bits = tls_id_match_table[i].bits; + } return PSA_SUCCESS; } } @@ -5574,36 +5525,36 @@ int mbedtls_ssl_get_psa_curve_info_from_tls_id( uint16_t tls_id, return PSA_ERROR_NOT_SUPPORTED; } -mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id( uint16_t tls_id ) +mbedtls_ecp_group_id mbedtls_ssl_get_ecp_group_id_from_tls_id(uint16_t tls_id) { - for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) - { - if( tls_id_match_table[i].tls_id == tls_id ) + for (int i = 0; tls_id_match_table[i].tls_id != 0; i++) { + if (tls_id_match_table[i].tls_id == tls_id) { return tls_id_match_table[i].ecp_group_id; + } } return MBEDTLS_ECP_DP_NONE; } -uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id( mbedtls_ecp_group_id grp_id ) +uint16_t mbedtls_ssl_get_tls_id_from_ecp_group_id(mbedtls_ecp_group_id grp_id) { - for( int i = 0; tls_id_match_table[i].ecp_group_id != MBEDTLS_ECP_DP_NONE; - i++ ) - { - if( tls_id_match_table[i].ecp_group_id == grp_id ) + for (int i = 0; tls_id_match_table[i].ecp_group_id != MBEDTLS_ECP_DP_NONE; + i++) { + if (tls_id_match_table[i].ecp_group_id == grp_id) { return tls_id_match_table[i].tls_id; + } } return 0; } #if defined(MBEDTLS_DEBUG_C) -const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ) +const char *mbedtls_ssl_get_curve_name_from_tls_id(uint16_t tls_id) { - for( int i = 0; tls_id_match_table[i].tls_id != 0; i++ ) - { - if( tls_id_match_table[i].tls_id == tls_id ) + for (int i = 0; tls_id_match_table[i].tls_id != 0; i++) { + if (tls_id_match_table[i].tls_id == tls_id) { return tls_id_match_table[i].name; + } } return NULL; @@ -5611,21 +5562,19 @@ const char* mbedtls_ssl_get_curve_name_from_tls_id( uint16_t tls_id ) #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) -int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert, - const mbedtls_ssl_ciphersuite_t *ciphersuite, - int cert_endpoint, - uint32_t *flags ) +int mbedtls_ssl_check_cert_usage(const mbedtls_x509_crt *cert, + const mbedtls_ssl_ciphersuite_t *ciphersuite, + int cert_endpoint, + uint32_t *flags) { int ret = 0; int usage = 0; const char *ext_oid; size_t ext_len; - if( cert_endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (cert_endpoint == MBEDTLS_SSL_IS_SERVER) { /* Server part of the key exchange */ - switch( ciphersuite->key_exchange ) - { + switch (ciphersuite->key_exchange) { case MBEDTLS_KEY_EXCHANGE_RSA: case MBEDTLS_KEY_EXCHANGE_RSA_PSK: usage = MBEDTLS_X509_KU_KEY_ENCIPHERMENT; @@ -5650,46 +5599,39 @@ int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert, case MBEDTLS_KEY_EXCHANGE_ECJPAKE: usage = 0; } - } - else - { + } else { /* Client auth: we only implement rsa_sign and mbedtls_ecdsa_sign for now */ usage = MBEDTLS_X509_KU_DIGITAL_SIGNATURE; } - if( mbedtls_x509_crt_check_key_usage( cert, usage ) != 0 ) - { + if (mbedtls_x509_crt_check_key_usage(cert, usage) != 0) { *flags |= MBEDTLS_X509_BADCERT_KEY_USAGE; ret = -1; } - if( cert_endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (cert_endpoint == MBEDTLS_SSL_IS_SERVER) { ext_oid = MBEDTLS_OID_SERVER_AUTH; - ext_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_SERVER_AUTH ); - } - else - { + ext_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_SERVER_AUTH); + } else { ext_oid = MBEDTLS_OID_CLIENT_AUTH; - ext_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_CLIENT_AUTH ); + ext_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_CLIENT_AUTH); } - if( mbedtls_x509_crt_check_extended_key_usage( cert, ext_oid, ext_len ) != 0 ) - { + if (mbedtls_x509_crt_check_extended_key_usage(cert, ext_oid, ext_len) != 0) { *flags |= MBEDTLS_X509_BADCERT_EXT_KEY_USAGE; ret = -1; } - return( ret ); + return ret; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, - const mbedtls_md_type_t md, - unsigned char *dst, - size_t dst_len, - size_t *olen ) +int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl, + const mbedtls_md_type_t md, + unsigned char *dst, + size_t dst_len, + size_t *olen) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_hash_operation_t *hash_operation_to_clone; @@ -5697,60 +5639,61 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, *olen = 0; - switch( md ) - { + switch (md) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_MD_SHA384: - hash_operation_to_clone = &ssl->handshake->fin_sha384_psa; - break; + case MBEDTLS_MD_SHA384: + hash_operation_to_clone = &ssl->handshake->fin_sha384_psa; + break; #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_MD_SHA256: - hash_operation_to_clone = &ssl->handshake->fin_sha256_psa; - break; + case MBEDTLS_MD_SHA256: + hash_operation_to_clone = &ssl->handshake->fin_sha256_psa; + break; #endif - default: + default: + goto exit; + } + + status = psa_hash_clone(hash_operation_to_clone, &hash_operation); + if (status != PSA_SUCCESS) { goto exit; } - status = psa_hash_clone( hash_operation_to_clone, &hash_operation ); - if( status != PSA_SUCCESS ) - goto exit; - - status = psa_hash_finish( &hash_operation, dst, dst_len, olen ); - if( status != PSA_SUCCESS ) + status = psa_hash_finish(&hash_operation, dst, dst_len, olen); + if (status != PSA_SUCCESS) { goto exit; + } exit: #if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) (void) ssl; #endif - return( psa_ssl_status_to_mbedtls( status ) ); + return psa_ssl_status_to_mbedtls(status); } #else /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_handshake_transcript_sha384( mbedtls_ssl_context *ssl, - unsigned char *dst, - size_t dst_len, - size_t *olen ) +static int ssl_get_handshake_transcript_sha384(mbedtls_ssl_context *ssl, + unsigned char *dst, + size_t dst_len, + size_t *olen) { int ret; mbedtls_sha512_context sha512; - if( dst_len < 48 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (dst_len < 48) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - mbedtls_sha512_init( &sha512 ); - mbedtls_sha512_clone( &sha512, &ssl->handshake->fin_sha384 ); + mbedtls_sha512_init(&sha512); + mbedtls_sha512_clone(&sha512, &ssl->handshake->fin_sha384); - if( ( ret = mbedtls_sha512_finish( &sha512, dst ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_sha512_finish", ret ); + if ((ret = mbedtls_sha512_finish(&sha512, dst)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_sha512_finish", ret); goto exit; } @@ -5758,30 +5701,30 @@ static int ssl_get_handshake_transcript_sha384( mbedtls_ssl_context *ssl, exit: - mbedtls_sha512_free( &sha512 ); - return( ret ); + mbedtls_sha512_free(&sha512); + return ret; } #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_handshake_transcript_sha256( mbedtls_ssl_context *ssl, - unsigned char *dst, - size_t dst_len, - size_t *olen ) +static int ssl_get_handshake_transcript_sha256(mbedtls_ssl_context *ssl, + unsigned char *dst, + size_t dst_len, + size_t *olen) { int ret; mbedtls_sha256_context sha256; - if( dst_len < 32 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (dst_len < 32) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - mbedtls_sha256_init( &sha256 ); - mbedtls_sha256_clone( &sha256, &ssl->handshake->fin_sha256 ); + mbedtls_sha256_init(&sha256); + mbedtls_sha256_clone(&sha256, &ssl->handshake->fin_sha256); - if( ( ret = mbedtls_sha256_finish( &sha256, dst ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_sha256_finish", ret ); + if ((ret = mbedtls_sha256_finish(&sha256, dst)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_sha256_finish", ret); goto exit; } @@ -5789,41 +5732,40 @@ static int ssl_get_handshake_transcript_sha256( mbedtls_ssl_context *ssl, exit: - mbedtls_sha256_free( &sha256 ); - return( ret ); + mbedtls_sha256_free(&sha256); + return ret; } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, - const mbedtls_md_type_t md, - unsigned char *dst, - size_t dst_len, - size_t *olen ) +int mbedtls_ssl_get_handshake_transcript(mbedtls_ssl_context *ssl, + const mbedtls_md_type_t md, + unsigned char *dst, + size_t dst_len, + size_t *olen) { - switch( md ) - { + switch (md) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_MD_SHA384: - return( ssl_get_handshake_transcript_sha384( ssl, dst, dst_len, olen ) ); + case MBEDTLS_MD_SHA384: + return ssl_get_handshake_transcript_sha384(ssl, dst, dst_len, olen); #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - case MBEDTLS_MD_SHA256: - return( ssl_get_handshake_transcript_sha256( ssl, dst, dst_len, olen ) ); + case MBEDTLS_MD_SHA256: + return ssl_get_handshake_transcript_sha256(ssl, dst, dst_len, olen); #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ - default: + default: #if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ - !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - (void) ssl; - (void) dst; - (void) dst_len; - (void) olen; + !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + (void) ssl; + (void) dst; + (void) dst_len; + (void) olen; #endif - break; + break; } - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #endif /* !MBEDTLS_USE_PSA_CRYPTO */ @@ -5869,9 +5811,9 @@ int mbedtls_ssl_get_handshake_transcript( mbedtls_ssl_context *ssl, * `SignatureScheme` field of TLS 1.3 * */ -int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +int mbedtls_ssl_parse_sig_alg_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { const unsigned char *p = buf; size_t supported_sig_algs_len = 0; @@ -5879,61 +5821,56 @@ int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, uint16_t sig_alg; uint32_t common_idx = 0; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - supported_sig_algs_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + supported_sig_algs_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - memset( ssl->handshake->received_sig_algs, 0, - sizeof(ssl->handshake->received_sig_algs) ); + memset(ssl->handshake->received_sig_algs, 0, + sizeof(ssl->handshake->received_sig_algs)); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, supported_sig_algs_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, supported_sig_algs_len); supported_sig_algs_end = p + supported_sig_algs_len; - while( p < supported_sig_algs_end ) - { - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, supported_sig_algs_end, 2 ); - sig_alg = MBEDTLS_GET_UINT16_BE( p, 0 ); + while (p < supported_sig_algs_end) { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, supported_sig_algs_end, 2); + sig_alg = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 4, ( "received signature algorithm: 0x%x %s", - sig_alg, - mbedtls_ssl_sig_alg_to_str( sig_alg ) ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("received signature algorithm: 0x%x %s", + sig_alg, + mbedtls_ssl_sig_alg_to_str(sig_alg))); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && - ( ! ( mbedtls_ssl_sig_alg_is_supported( ssl, sig_alg ) && - mbedtls_ssl_sig_alg_is_offered( ssl, sig_alg ) ) ) ) - { + if (ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 && + (!(mbedtls_ssl_sig_alg_is_supported(ssl, sig_alg) && + mbedtls_ssl_sig_alg_is_offered(ssl, sig_alg)))) { continue; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - MBEDTLS_SSL_DEBUG_MSG( 4, ( "valid signature algorithm: %s", - mbedtls_ssl_sig_alg_to_str( sig_alg ) ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("valid signature algorithm: %s", + mbedtls_ssl_sig_alg_to_str(sig_alg))); - if( common_idx + 1 < MBEDTLS_RECEIVED_SIG_ALGS_SIZE ) - { + if (common_idx + 1 < MBEDTLS_RECEIVED_SIG_ALGS_SIZE) { ssl->handshake->received_sig_algs[common_idx] = sig_alg; common_idx += 1; } } /* Check that we consumed all the message. */ - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "Signature algorithms extension length misaligned" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("Signature algorithms extension length misaligned")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( common_idx == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "no signature algorithm in common" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (common_idx == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("no signature algorithm in common")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } ssl->handshake->received_sig_algs[common_idx] = MBEDTLS_TLS_SIG_NONE; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -5942,79 +5879,78 @@ int mbedtls_ssl_parse_sig_alg_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_USE_PSA_CRYPTO) -static psa_status_t setup_psa_key_derivation( psa_key_derivation_operation_t* derivation, - mbedtls_svc_key_id_t key, - psa_algorithm_t alg, - const unsigned char* raw_psk, size_t raw_psk_length, - const unsigned char* seed, size_t seed_length, - const unsigned char* label, size_t label_length, - const unsigned char* other_secret, - size_t other_secret_length, - size_t capacity ) +static psa_status_t setup_psa_key_derivation(psa_key_derivation_operation_t *derivation, + mbedtls_svc_key_id_t key, + psa_algorithm_t alg, + const unsigned char *raw_psk, size_t raw_psk_length, + const unsigned char *seed, size_t seed_length, + const unsigned char *label, size_t label_length, + const unsigned char *other_secret, + size_t other_secret_length, + size_t capacity) { psa_status_t status; - status = psa_key_derivation_setup( derivation, alg ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_key_derivation_setup(derivation, alg); + if (status != PSA_SUCCESS) { + return status; + } - if( PSA_ALG_IS_TLS12_PRF( alg ) || PSA_ALG_IS_TLS12_PSK_TO_MS( alg ) ) - { - status = psa_key_derivation_input_bytes( derivation, - PSA_KEY_DERIVATION_INPUT_SEED, - seed, seed_length ); - if( status != PSA_SUCCESS ) - return( status ); - - if ( other_secret != NULL ) - { - status = psa_key_derivation_input_bytes( derivation, - PSA_KEY_DERIVATION_INPUT_OTHER_SECRET, - other_secret, other_secret_length ); - if( status != PSA_SUCCESS ) - return( status ); + if (PSA_ALG_IS_TLS12_PRF(alg) || PSA_ALG_IS_TLS12_PSK_TO_MS(alg)) { + status = psa_key_derivation_input_bytes(derivation, + PSA_KEY_DERIVATION_INPUT_SEED, + seed, seed_length); + if (status != PSA_SUCCESS) { + return status; } - if( mbedtls_svc_key_id_is_null( key ) ) - { + if (other_secret != NULL) { + status = psa_key_derivation_input_bytes(derivation, + PSA_KEY_DERIVATION_INPUT_OTHER_SECRET, + other_secret, other_secret_length); + if (status != PSA_SUCCESS) { + return status; + } + } + + if (mbedtls_svc_key_id_is_null(key)) { status = psa_key_derivation_input_bytes( derivation, PSA_KEY_DERIVATION_INPUT_SECRET, - raw_psk, raw_psk_length ); - } - else - { + raw_psk, raw_psk_length); + } else { status = psa_key_derivation_input_key( - derivation, PSA_KEY_DERIVATION_INPUT_SECRET, key ); + derivation, PSA_KEY_DERIVATION_INPUT_SECRET, key); + } + if (status != PSA_SUCCESS) { + return status; } - if( status != PSA_SUCCESS ) - return( status ); - status = psa_key_derivation_input_bytes( derivation, - PSA_KEY_DERIVATION_INPUT_LABEL, - label, label_length ); - if( status != PSA_SUCCESS ) - return( status ); - } - else - { - return( PSA_ERROR_NOT_SUPPORTED ); + status = psa_key_derivation_input_bytes(derivation, + PSA_KEY_DERIVATION_INPUT_LABEL, + label, label_length); + if (status != PSA_SUCCESS) { + return status; + } + } else { + return PSA_ERROR_NOT_SUPPORTED; } - status = psa_key_derivation_set_capacity( derivation, capacity ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_key_derivation_set_capacity(derivation, capacity); + if (status != PSA_SUCCESS) { + return status; + } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #if defined(PSA_WANT_ALG_SHA_384) || \ defined(PSA_WANT_ALG_SHA_256) MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_generic( mbedtls_md_type_t md_type, - const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ) +static int tls_prf_generic(mbedtls_md_type_t md_type, + const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen) { psa_status_t status; psa_algorithm_t alg; @@ -6022,10 +5958,11 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, psa_key_derivation_operation_t derivation = PSA_KEY_DERIVATION_OPERATION_INIT; - if( md_type == MBEDTLS_MD_SHA384 ) + if (md_type == MBEDTLS_MD_SHA384) { alg = PSA_ALG_TLS12_PRF(PSA_ALG_SHA_384); - else + } else { alg = PSA_ALG_TLS12_PRF(PSA_ALG_SHA_256); + } /* Normally a "secret" should be long enough to be impossible to * find by brute force, and in particular should not be empty. But @@ -6034,67 +5971,66 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, * Since the key API doesn't allow importing a key of length 0, * keep master_key=0, which setup_psa_key_derivation() understands * to mean a 0-length "secret" input. */ - if( slen != 0 ) - { + if (slen != 0) { psa_key_attributes_t key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, alg ); - psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, alg); + psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE); - status = psa_import_key( &key_attributes, secret, slen, &master_key ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_import_key(&key_attributes, secret, slen, &master_key); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } } - status = setup_psa_key_derivation( &derivation, - master_key, alg, - NULL, 0, - random, rlen, - (unsigned char const *) label, - (size_t) strlen( label ), - NULL, 0, - dlen ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - psa_destroy_key( master_key ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = setup_psa_key_derivation(&derivation, + master_key, alg, + NULL, 0, + random, rlen, + (unsigned char const *) label, + (size_t) strlen(label), + NULL, 0, + dlen); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + psa_destroy_key(master_key); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_output_bytes( &derivation, dstbuf, dlen ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - psa_destroy_key( master_key ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_output_bytes(&derivation, dstbuf, dlen); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + psa_destroy_key(master_key); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_abort( &derivation ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( master_key ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_abort(&derivation); + if (status != PSA_SUCCESS) { + psa_destroy_key(master_key); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - if( ! mbedtls_svc_key_id_is_null( master_key ) ) - status = psa_destroy_key( master_key ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + if (!mbedtls_svc_key_id_is_null(master_key)) { + status = psa_destroy_key(master_key); + } + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } - return( 0 ); + return 0; } #endif /* PSA_WANT_ALG_SHA_256 || PSA_WANT_ALG_SHA_384 */ #else /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_MD_C) && \ - ( defined(MBEDTLS_SHA256_C) || \ - defined(MBEDTLS_SHA384_C) ) + (defined(MBEDTLS_SHA256_C) || \ + defined(MBEDTLS_SHA384_C)) MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_generic( mbedtls_md_type_t md_type, - const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ) +static int tls_prf_generic(mbedtls_md_type_t md_type, + const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen) { size_t nb; size_t i, j, k, md_len; @@ -6105,106 +6041,117 @@ static int tls_prf_generic( mbedtls_md_type_t md_type, mbedtls_md_context_t md_ctx; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_md_init( &md_ctx ); + mbedtls_md_init(&md_ctx); - if( ( md_info = mbedtls_md_info_from_type( md_type ) ) == NULL ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if ((md_info = mbedtls_md_info_from_type(md_type)) == NULL) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - md_len = mbedtls_md_get_size( md_info ); + md_len = mbedtls_md_get_size(md_info); - tmp_len = md_len + strlen( label ) + rlen; - tmp = mbedtls_calloc( 1, tmp_len ); - if( tmp == NULL ) - { + tmp_len = md_len + strlen(label) + rlen; + tmp = mbedtls_calloc(1, tmp_len); + if (tmp == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } - nb = strlen( label ); - memcpy( tmp + md_len, label, nb ); - memcpy( tmp + md_len + nb, random, rlen ); + nb = strlen(label); + memcpy(tmp + md_len, label, nb); + memcpy(tmp + md_len + nb, random, rlen); nb += rlen; /* * Compute P_(secret, label + random)[0..dlen] */ - if ( ( ret = mbedtls_md_setup( &md_ctx, md_info, 1 ) ) != 0 ) + if ((ret = mbedtls_md_setup(&md_ctx, md_info, 1)) != 0) { goto exit; + } - ret = mbedtls_md_hmac_starts( &md_ctx, secret, slen ); - if( ret != 0 ) + ret = mbedtls_md_hmac_starts(&md_ctx, secret, slen); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_update( &md_ctx, tmp + md_len, nb ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&md_ctx, tmp + md_len, nb); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_finish( &md_ctx, tmp ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&md_ctx, tmp); + if (ret != 0) { goto exit; + } - for( i = 0; i < dlen; i += md_len ) - { - ret = mbedtls_md_hmac_reset ( &md_ctx ); - if( ret != 0 ) + for (i = 0; i < dlen; i += md_len) { + ret = mbedtls_md_hmac_reset(&md_ctx); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_update( &md_ctx, tmp, md_len + nb ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&md_ctx, tmp, md_len + nb); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_finish( &md_ctx, h_i ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&md_ctx, h_i); + if (ret != 0) { goto exit; + } - ret = mbedtls_md_hmac_reset ( &md_ctx ); - if( ret != 0 ) + ret = mbedtls_md_hmac_reset(&md_ctx); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_update( &md_ctx, tmp, md_len ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_update(&md_ctx, tmp, md_len); + if (ret != 0) { goto exit; - ret = mbedtls_md_hmac_finish( &md_ctx, tmp ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_finish(&md_ctx, tmp); + if (ret != 0) { goto exit; + } - k = ( i + md_len > dlen ) ? dlen % md_len : md_len; + k = (i + md_len > dlen) ? dlen % md_len : md_len; - for( j = 0; j < k; j++ ) + for (j = 0; j < k; j++) { dstbuf[i + j] = h_i[j]; + } } exit: - mbedtls_md_free( &md_ctx ); + mbedtls_md_free(&md_ctx); - if ( tmp != NULL ) - mbedtls_platform_zeroize( tmp, tmp_len ); + if (tmp != NULL) { + mbedtls_platform_zeroize(tmp, tmp_len); + } - mbedtls_platform_zeroize( h_i, sizeof( h_i ) ); + mbedtls_platform_zeroize(h_i, sizeof(h_i)); - mbedtls_free( tmp ); + mbedtls_free(tmp); - return( ret ); + return ret; } #endif /* MBEDTLS_MD_C && ( MBEDTLS_SHA256_C || MBEDTLS_SHA384_C ) */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_sha256( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ) +static int tls_prf_sha256(const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen) { - return( tls_prf_generic( MBEDTLS_MD_SHA256, secret, slen, - label, random, rlen, dstbuf, dlen ) ); + return tls_prf_generic(MBEDTLS_MD_SHA256, secret, slen, + label, random, rlen, dstbuf, dlen); } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_CHECK_RETURN_CRITICAL -static int tls_prf_sha384( const unsigned char *secret, size_t slen, - const char *label, - const unsigned char *random, size_t rlen, - unsigned char *dstbuf, size_t dlen ) +static int tls_prf_sha384(const unsigned char *secret, size_t slen, + const char *label, + const unsigned char *random, size_t rlen, + unsigned char *dstbuf, size_t dlen) { - return( tls_prf_generic( MBEDTLS_MD_SHA384, secret, slen, - label, random, rlen, dstbuf, dlen ) ); + return tls_prf_generic(MBEDTLS_MD_SHA384, secret, slen, + label, random, rlen, dstbuf, dlen); } #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ @@ -6218,17 +6165,15 @@ static int tls_prf_sha384( const unsigned char *secret, size_t slen, * - the tls_prf, calc_verify and calc_finished members of handshake structure */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_set_handshake_prfs( mbedtls_ssl_handshake_params *handshake, - mbedtls_md_type_t hash ) +static int ssl_set_handshake_prfs(mbedtls_ssl_handshake_params *handshake, + mbedtls_md_type_t hash) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( hash == MBEDTLS_MD_SHA384 ) - { + if (hash == MBEDTLS_MD_SHA384) { handshake->tls_prf = tls_prf_sha384; handshake->calc_verify = ssl_calc_verify_tls_sha384; handshake->calc_finished = ssl_calc_finished_tls_sha384; - } - else + } else #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) { @@ -6241,11 +6186,11 @@ static int ssl_set_handshake_prfs( mbedtls_ssl_handshake_params *handshake, { (void) handshake; (void) hash; - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #endif - return( 0 ); + return 0; } /* @@ -6263,9 +6208,9 @@ static int ssl_set_handshake_prfs( mbedtls_ssl_handshake_params *handshake, * PSA-PSA: conf */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, - unsigned char *master, - const mbedtls_ssl_context *ssl ) +static int ssl_compute_master(mbedtls_ssl_handshake_params *handshake, + unsigned char *master, + const mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -6296,33 +6241,30 @@ static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, #if !defined(MBEDTLS_DEBUG_C) && \ !defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \ !(defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)) + defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)) ssl = NULL; /* make sure we don't use it except for those cases */ (void) ssl; #endif - if( handshake->resume != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "no premaster (session resumed)" ) ); - return( 0 ); + if (handshake->resume != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("no premaster (session resumed)")); + return 0; } #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - if( handshake->extended_ms == MBEDTLS_SSL_EXTENDED_MS_ENABLED ) - { + if (handshake->extended_ms == MBEDTLS_SSL_EXTENDED_MS_ENABLED) { lbl = "extended master secret"; seed = session_hash; - handshake->calc_verify( ssl, session_hash, &seed_len ); + handshake->calc_verify(ssl, session_hash, &seed_len); - MBEDTLS_SSL_DEBUG_BUF( 3, "session hash for extended master secret", - session_hash, seed_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "session hash for extended master secret", + session_hash, seed_len); } #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_psk( handshake->ciphersuite_info ) == 1 ) - { + if (mbedtls_ssl_ciphersuite_uses_psk(handshake->ciphersuite_info) == 1) { /* Perform PSK-to-MS expansion in a single step. */ psa_status_t status; psa_algorithm_t alg; @@ -6331,20 +6273,20 @@ static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, PSA_KEY_DERIVATION_OPERATION_INIT; mbedtls_md_type_t hash_alg = handshake->ciphersuite_info->mac; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "perform PSA-based PSK-to-MS expansion" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("perform PSA-based PSK-to-MS expansion")); - psk = mbedtls_ssl_get_opaque_psk( ssl ); + psk = mbedtls_ssl_get_opaque_psk(ssl); - if( hash_alg == MBEDTLS_MD_SHA384 ) + if (hash_alg == MBEDTLS_MD_SHA384) { alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); - else + } else { alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); + } size_t other_secret_len = 0; - unsigned char* other_secret = NULL; + unsigned char *other_secret = NULL; - switch( handshake->ciphersuite_info->key_exchange ) - { + switch (handshake->ciphersuite_info->key_exchange) { /* Provide other secret. * Other secret is stored in premaster, where first 2 bytes hold the * length of the other key. @@ -6363,130 +6305,121 @@ static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, break; } - status = setup_psa_key_derivation( &derivation, psk, alg, - ssl->conf->psk, ssl->conf->psk_len, - seed, seed_len, - (unsigned char const *) lbl, - (size_t) strlen( lbl ), - other_secret, other_secret_len, - master_secret_len ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = setup_psa_key_derivation(&derivation, psk, alg, + ssl->conf->psk, ssl->conf->psk_len, + seed, seed_len, + (unsigned char const *) lbl, + (size_t) strlen(lbl), + other_secret, other_secret_len, + master_secret_len); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_output_bytes( &derivation, - master, - master_secret_len ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_output_bytes(&derivation, + master, + master_secret_len); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_abort( &derivation ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - } - else + status = psa_key_derivation_abort(&derivation); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } + } else #endif { #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( handshake->ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + if (handshake->ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) { psa_status_t status; psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; psa_key_derivation_operation_t derivation = PSA_KEY_DERIVATION_OPERATION_INIT; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "perform PSA-based PMS KDF for ECJPAKE" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("perform PSA-based PMS KDF for ECJPAKE")); handshake->pmslen = PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE; - status = psa_key_derivation_setup( &derivation, alg ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); - - status = psa_key_derivation_set_capacity( &derivation, - PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_setup(&derivation, alg); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_pake_get_implicit_key( &handshake->psa_pake_ctx, - &derivation ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_set_capacity(&derivation, + PSA_TLS12_ECJPAKE_TO_PMS_DATA_SIZE); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_output_bytes( &derivation, - handshake->premaster, - handshake->pmslen ); - if( status != PSA_SUCCESS ) - { - psa_key_derivation_abort( &derivation ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_pake_get_implicit_key(&handshake->psa_pake_ctx, + &derivation); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } - status = psa_key_derivation_abort( &derivation ); - if( status != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_key_derivation_output_bytes(&derivation, + handshake->premaster, + handshake->pmslen); + if (status != PSA_SUCCESS) { + psa_key_derivation_abort(&derivation); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } + + status = psa_key_derivation_abort(&derivation); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } } #endif - ret = handshake->tls_prf( handshake->premaster, handshake->pmslen, - lbl, seed, seed_len, - master, - master_secret_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "prf", ret ); - return( ret ); + ret = handshake->tls_prf(handshake->premaster, handshake->pmslen, + lbl, seed, seed_len, + master, + master_secret_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "prf", ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 3, "premaster secret", - handshake->premaster, - handshake->pmslen ); + MBEDTLS_SSL_DEBUG_BUF(3, "premaster secret", + handshake->premaster, + handshake->pmslen); - mbedtls_platform_zeroize( handshake->premaster, - sizeof(handshake->premaster) ); + mbedtls_platform_zeroize(handshake->premaster, + sizeof(handshake->premaster)); } - return( 0 ); + return 0; } -int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_derive_keys(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> derive keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> derive keys")); /* Set PRF, calc_verify and calc_finished function pointers */ - ret = ssl_set_handshake_prfs( ssl->handshake, - ciphersuite_info->mac ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_set_handshake_prfs", ret ); - return( ret ); + ret = ssl_set_handshake_prfs(ssl->handshake, + ciphersuite_info->mac); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_set_handshake_prfs", ret); + return ret; } /* Compute master secret if needed */ - ret = ssl_compute_master( ssl->handshake, - ssl->session_negotiate->master, - ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_compute_master", ret ); - return( ret ); + ret = ssl_compute_master(ssl->handshake, + ssl->session_negotiate->master, + ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_compute_master", ret); + return ret; } /* Swap the client and server random values: @@ -6494,43 +6427,41 @@ int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl ) * - key derivation wants server+client (RFC 5246 6.3) */ { unsigned char tmp[64]; - memcpy( tmp, ssl->handshake->randbytes, 64 ); - memcpy( ssl->handshake->randbytes, tmp + 32, 32 ); - memcpy( ssl->handshake->randbytes + 32, tmp, 32 ); - mbedtls_platform_zeroize( tmp, sizeof( tmp ) ); + memcpy(tmp, ssl->handshake->randbytes, 64); + memcpy(ssl->handshake->randbytes, tmp + 32, 32); + memcpy(ssl->handshake->randbytes + 32, tmp, 32); + mbedtls_platform_zeroize(tmp, sizeof(tmp)); } /* Populate transform structure */ - ret = ssl_tls12_populate_transform( ssl->transform_negotiate, - ssl->session_negotiate->ciphersuite, - ssl->session_negotiate->master, + ret = ssl_tls12_populate_transform(ssl->transform_negotiate, + ssl->session_negotiate->ciphersuite, + ssl->session_negotiate->master, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - ssl->session_negotiate->encrypt_then_mac, + ssl->session_negotiate->encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ssl->handshake->tls_prf, - ssl->handshake->randbytes, - ssl->tls_version, - ssl->conf->endpoint, - ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls12_populate_transform", ret ); - return( ret ); + ssl->handshake->tls_prf, + ssl->handshake->randbytes, + ssl->tls_version, + ssl->conf->endpoint, + ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls12_populate_transform", ret); + return ret; } /* We no longer need Server/ClientHello.random values */ - mbedtls_platform_zeroize( ssl->handshake->randbytes, - sizeof( ssl->handshake->randbytes ) ); + mbedtls_platform_zeroize(ssl->handshake->randbytes, + sizeof(ssl->handshake->randbytes)); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= derive keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= derive keys")); - return( 0 ); + return 0; } -int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md ) +int mbedtls_ssl_set_calc_verify_md(mbedtls_ssl_context *ssl, int md) { - switch( md ) - { + switch (md) { #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) case MBEDTLS_SSL_HASH_SHA384: ssl->handshake->calc_verify = ssl_calc_verify_tls_sha384; @@ -6542,108 +6473,104 @@ int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md ) break; #endif default: - return( -1 ); + return -1; } #if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ !defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) (void) ssl; #endif - return( 0 ); + return 0; } #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -void ssl_calc_verify_tls_sha256( const mbedtls_ssl_context *ssl, - unsigned char *hash, - size_t *hlen ) +void ssl_calc_verify_tls_sha256(const mbedtls_ssl_context *ssl, + unsigned char *hash, + size_t *hlen) { #if defined(MBEDTLS_USE_PSA_CRYPTO) size_t hash_size; psa_status_t status; psa_hash_operation_t sha256_psa = psa_hash_operation_init(); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> PSA calc verify sha256" ) ); - status = psa_hash_clone( &ssl->handshake->fin_sha256_psa, &sha256_psa ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash clone failed" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> PSA calc verify sha256")); + status = psa_hash_clone(&ssl->handshake->fin_sha256_psa, &sha256_psa); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash clone failed")); return; } - status = psa_hash_finish( &sha256_psa, hash, 32, &hash_size ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash finish failed" ) ); + status = psa_hash_finish(&sha256_psa, hash, 32, &hash_size); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash finish failed")); return; } *hlen = 32; - MBEDTLS_SSL_DEBUG_BUF( 3, "PSA calculated verify result", hash, *hlen ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= PSA calc verify" ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "PSA calculated verify result", hash, *hlen); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= PSA calc verify")); #else mbedtls_sha256_context sha256; - mbedtls_sha256_init( &sha256 ); + mbedtls_sha256_init(&sha256); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc verify sha256" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc verify sha256")); - mbedtls_sha256_clone( &sha256, &ssl->handshake->fin_sha256 ); - mbedtls_sha256_finish( &sha256, hash ); + mbedtls_sha256_clone(&sha256, &ssl->handshake->fin_sha256); + mbedtls_sha256_finish(&sha256, hash); *hlen = 32; - MBEDTLS_SSL_DEBUG_BUF( 3, "calculated verify result", hash, *hlen ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= calc verify" ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "calculated verify result", hash, *hlen); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc verify")); - mbedtls_sha256_free( &sha256 ); + mbedtls_sha256_free(&sha256); #endif /* MBEDTLS_USE_PSA_CRYPTO */ return; } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *ssl, - unsigned char *hash, - size_t *hlen ) +void ssl_calc_verify_tls_sha384(const mbedtls_ssl_context *ssl, + unsigned char *hash, + size_t *hlen) { #if defined(MBEDTLS_USE_PSA_CRYPTO) size_t hash_size; psa_status_t status; psa_hash_operation_t sha384_psa = psa_hash_operation_init(); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> PSA calc verify sha384" ) ); - status = psa_hash_clone( &ssl->handshake->fin_sha384_psa, &sha384_psa ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash clone failed" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> PSA calc verify sha384")); + status = psa_hash_clone(&ssl->handshake->fin_sha384_psa, &sha384_psa); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash clone failed")); return; } - status = psa_hash_finish( &sha384_psa, hash, 48, &hash_size ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash finish failed" ) ); + status = psa_hash_finish(&sha384_psa, hash, 48, &hash_size); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash finish failed")); return; } *hlen = 48; - MBEDTLS_SSL_DEBUG_BUF( 3, "PSA calculated verify result", hash, *hlen ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= PSA calc verify" ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "PSA calculated verify result", hash, *hlen); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= PSA calc verify")); #else mbedtls_sha512_context sha512; - mbedtls_sha512_init( &sha512 ); + mbedtls_sha512_init(&sha512); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc verify sha384" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc verify sha384")); - mbedtls_sha512_clone( &sha512, &ssl->handshake->fin_sha384 ); - mbedtls_sha512_finish( &sha512, hash ); + mbedtls_sha512_clone(&sha512, &ssl->handshake->fin_sha384); + mbedtls_sha512_finish(&sha512, hash); *hlen = 48; - MBEDTLS_SSL_DEBUG_BUF( 3, "calculated verify result", hash, *hlen ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= calc verify" ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "calculated verify result", hash, *hlen); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc verify")); - mbedtls_sha512_free( &sha512 ); + mbedtls_sha512_free(&sha512); #endif /* MBEDTLS_USE_PSA_CRYPTO */ return; } @@ -6651,16 +6578,15 @@ void ssl_calc_verify_tls_sha384( const mbedtls_ssl_context *ssl, #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) -int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ) +int mbedtls_ssl_psk_derive_premaster(mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex) { unsigned char *p = ssl->handshake->premaster; - unsigned char *end = p + sizeof( ssl->handshake->premaster ); + unsigned char *end = p + sizeof(ssl->handshake->premaster); const unsigned char *psk = NULL; size_t psk_len = 0; - int psk_ret = mbedtls_ssl_get_psk( ssl, &psk, &psk_len ); + int psk_ret = mbedtls_ssl_get_psk(ssl, &psk, &psk_len); - if( psk_ret == MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ) - { + if (psk_ret == MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED) { /* * This should never happen because the existence of a PSK is always * checked before calling this function. @@ -6668,10 +6594,9 @@ int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exch * The exception is opaque DHE-PSK. For DHE-PSK fill premaster with * the shared secret without PSK. */ - if ( key_ex != MBEDTLS_KEY_EXCHANGE_DHE_PSK ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (key_ex != MBEDTLS_KEY_EXCHANGE_DHE_PSK) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } } @@ -6683,133 +6608,125 @@ int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exch * with "other_secret" depending on the particular key exchange */ #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - if( key_ex == MBEDTLS_KEY_EXCHANGE_PSK ) - { - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (key_ex == MBEDTLS_KEY_EXCHANGE_PSK) { + if (end - p < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_PUT_UINT16_BE( psk_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(psk_len, p, 0); p += 2; - if( end < p || (size_t)( end - p ) < psk_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end < p || (size_t) (end - p) < psk_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - memset( p, 0, psk_len ); + memset(p, 0, psk_len); p += psk_len; - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - if( key_ex == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) - { + if (key_ex == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { /* * other_secret already set by the ClientKeyExchange message, * and is 48 bytes long */ - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end - p < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } *p++ = 0; *p++ = 48; p += 48; - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - if( key_ex == MBEDTLS_KEY_EXCHANGE_DHE_PSK ) - { + if (key_ex == MBEDTLS_KEY_EXCHANGE_DHE_PSK) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; /* Write length only when we know the actual value */ - if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - p + 2, end - ( p + 2 ), &len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); - return( ret ); + if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx, + p + 2, end - (p + 2), &len, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret); + return ret; } - MBEDTLS_PUT_UINT16_BE( len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(len, p, 0); p += 2 + len; - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: K ", &ssl->handshake->dhm_ctx.K ); - } - else + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K); + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( key_ex == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { + if (key_ex == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t zlen; - if( ( ret = mbedtls_ecdh_calc_secret( &ssl->handshake->ecdh_ctx, &zlen, - p + 2, end - ( p + 2 ), - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_calc_secret", ret ); - return( ret ); + if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx, &zlen, + p + 2, end - (p + 2), + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret); + return ret; } - MBEDTLS_PUT_UINT16_BE( zlen, p, 0 ); + MBEDTLS_PUT_UINT16_BE(zlen, p, 0); p += 2 + zlen; - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Z ); - } - else + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Z); + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* opaque psk<0..2^16-1>; */ - if( end - p < 2 ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end - p < 2) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_PUT_UINT16_BE( psk_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(psk_len, p, 0); p += 2; - if( end < p || (size_t)( end - p ) < psk_len ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (end < p || (size_t) (end - p) < psk_len) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - memcpy( p, psk, psk_len ); + memcpy(p, psk, psk_len); p += psk_len; ssl->handshake->pmslen = p - ssl->handshake->premaster; - return( 0 ); + return 0; } #endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_RENEGOTIATION) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_hello_request( mbedtls_ssl_context *ssl ); +static int ssl_write_hello_request(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_PROTO_DTLS) -int mbedtls_ssl_resend_hello_request( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_resend_hello_request(mbedtls_ssl_context *ssl) { /* If renegotiation is not enforced, retransmit until we would reach max * timeout if we were using the usual handshake doubling scheme */ - if( ssl->conf->renego_max_records < 0 ) - { + if (ssl->conf->renego_max_records < 0) { uint32_t ratio = ssl->conf->hs_timeout_max / ssl->conf->hs_timeout_min + 1; unsigned char doublings = 1; - while( ratio != 0 ) - { + while (ratio != 0) { ++doublings; ratio >>= 1; } - if( ++ssl->renego_records_seen > doublings ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "no longer retransmitting hello request" ) ); - return( 0 ); + if (++ssl->renego_records_seen > doublings) { + MBEDTLS_SSL_DEBUG_MSG(2, ("no longer retransmitting hello request")); + return 0; } } - return( ssl_write_hello_request( ssl ) ); + return ssl_write_hello_request(ssl); } #endif #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_RENEGOTIATION */ @@ -6819,46 +6736,44 @@ int mbedtls_ssl_resend_hello_request( mbedtls_ssl_context *ssl ) */ #if !defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* No certificate support -> dummy functions */ -int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_certificate(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate")); - if( !mbedtls_ssl_ciphersuite_uses_srv_cert( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate" ) ); + if (!mbedtls_ssl_ciphersuite_uses_srv_cert(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } -int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_parse_certificate(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate")); - if( !mbedtls_ssl_ciphersuite_uses_srv_cert( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate" ) ); + if (!mbedtls_ssl_ciphersuite_uses_srv_cert(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ /* Some certificate support -> implement write and parse */ -int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_certificate(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; size_t i, n; @@ -6866,39 +6781,34 @@ int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ) const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate")); - if( !mbedtls_ssl_ciphersuite_uses_srv_cert( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate" ) ); + if (!mbedtls_ssl_ciphersuite_uses_srv_cert(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate")); ssl->state++; - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - if( ssl->handshake->client_auth == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate" ) ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { + if (ssl->handshake->client_auth == 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate")); ssl->state++; - return( 0 ); + return 0; } } #endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - if( mbedtls_ssl_own_cert( ssl ) == NULL ) - { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { + if (mbedtls_ssl_own_cert(ssl) == NULL) { /* Should never happen because we shouldn't have picked the * ciphersuite if we don't have a certificate. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } } #endif - MBEDTLS_SSL_DEBUG_CRT( 3, "own certificate", mbedtls_ssl_own_cert( ssl ) ); + MBEDTLS_SSL_DEBUG_CRT(3, "own certificate", mbedtls_ssl_own_cert(ssl)); /* * 0 . 0 handshake type @@ -6910,30 +6820,28 @@ int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ) * n+3 . ... upper level cert, etc. */ i = 7; - crt = mbedtls_ssl_own_cert( ssl ); + crt = mbedtls_ssl_own_cert(ssl); - while( crt != NULL ) - { + while (crt != NULL) { n = crt->raw.len; - if( n > MBEDTLS_SSL_OUT_CONTENT_LEN - 3 - i ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "certificate too large, %" MBEDTLS_PRINTF_SIZET - " > %" MBEDTLS_PRINTF_SIZET, - i + 3 + n, (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (n > MBEDTLS_SSL_OUT_CONTENT_LEN - 3 - i) { + MBEDTLS_SSL_DEBUG_MSG(1, ("certificate too large, %" MBEDTLS_PRINTF_SIZET + " > %" MBEDTLS_PRINTF_SIZET, + i + 3 + n, (size_t) MBEDTLS_SSL_OUT_CONTENT_LEN)); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - ssl->out_msg[i ] = MBEDTLS_BYTE_2( n ); - ssl->out_msg[i + 1] = MBEDTLS_BYTE_1( n ); - ssl->out_msg[i + 2] = MBEDTLS_BYTE_0( n ); + ssl->out_msg[i] = MBEDTLS_BYTE_2(n); + ssl->out_msg[i + 1] = MBEDTLS_BYTE_1(n); + ssl->out_msg[i + 2] = MBEDTLS_BYTE_0(n); - i += 3; memcpy( ssl->out_msg + i, crt->raw.p, n ); + i += 3; memcpy(ssl->out_msg + i, crt->raw.p, n); i += n; crt = crt->next; } - ssl->out_msg[4] = MBEDTLS_BYTE_2( i - 7 ); - ssl->out_msg[5] = MBEDTLS_BYTE_1( i - 7 ); - ssl->out_msg[6] = MBEDTLS_BYTE_0( i - 7 ); + ssl->out_msg[4] = MBEDTLS_BYTE_2(i - 7); + ssl->out_msg[5] = MBEDTLS_BYTE_1(i - 7); + ssl->out_msg[6] = MBEDTLS_BYTE_0(i - 7); ssl->out_msglen = i; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; @@ -6941,40 +6849,41 @@ int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl ) ssl->state++; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate")); - return( ret ); + return ret; } #if defined(MBEDTLS_SSL_RENEGOTIATION) && defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_peer_crt_unchanged( mbedtls_ssl_context *ssl, - unsigned char *crt_buf, - size_t crt_buf_len ) +static int ssl_check_peer_crt_unchanged(mbedtls_ssl_context *ssl, + unsigned char *crt_buf, + size_t crt_buf_len) { mbedtls_x509_crt const * const peer_crt = ssl->session->peer_cert; - if( peer_crt == NULL ) - return( -1 ); + if (peer_crt == NULL) { + return -1; + } - if( peer_crt->raw.len != crt_buf_len ) - return( -1 ); + if (peer_crt->raw.len != crt_buf_len) { + return -1; + } - return( memcmp( peer_crt->raw.p, crt_buf, peer_crt->raw.len ) ); + return memcmp(peer_crt->raw.p, crt_buf, peer_crt->raw.len); } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_peer_crt_unchanged( mbedtls_ssl_context *ssl, - unsigned char *crt_buf, - size_t crt_buf_len ) +static int ssl_check_peer_crt_unchanged(mbedtls_ssl_context *ssl, + unsigned char *crt_buf, + size_t crt_buf_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char const * const peer_cert_digest = @@ -6982,22 +6891,25 @@ static int ssl_check_peer_crt_unchanged( mbedtls_ssl_context *ssl, mbedtls_md_type_t const peer_cert_digest_type = ssl->session->peer_cert_digest_type; mbedtls_md_info_t const * const digest_info = - mbedtls_md_info_from_type( peer_cert_digest_type ); + mbedtls_md_info_from_type(peer_cert_digest_type); unsigned char tmp_digest[MBEDTLS_SSL_PEER_CERT_DIGEST_MAX_LEN]; size_t digest_len; - if( peer_cert_digest == NULL || digest_info == NULL ) - return( -1 ); + if (peer_cert_digest == NULL || digest_info == NULL) { + return -1; + } - digest_len = mbedtls_md_get_size( digest_info ); - if( digest_len > MBEDTLS_SSL_PEER_CERT_DIGEST_MAX_LEN ) - return( -1 ); + digest_len = mbedtls_md_get_size(digest_info); + if (digest_len > MBEDTLS_SSL_PEER_CERT_DIGEST_MAX_LEN) { + return -1; + } - ret = mbedtls_md( digest_info, crt_buf, crt_buf_len, tmp_digest ); - if( ret != 0 ) - return( -1 ); + ret = mbedtls_md(digest_info, crt_buf, crt_buf_len, tmp_digest); + if (ret != 0) { + return -1; + } - return( memcmp( tmp_digest, peer_cert_digest, digest_len ) ); + return memcmp(tmp_digest, peer_cert_digest, digest_len); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ #endif /* MBEDTLS_SSL_RENEGOTIATION && MBEDTLS_SSL_CLI_C */ @@ -7007,131 +6919,121 @@ static int ssl_check_peer_crt_unchanged( mbedtls_ssl_context *ssl, * perform basic checks, but leave actual verification to the caller */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_chain( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *chain ) +static int ssl_parse_certificate_chain(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *chain) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_SSL_RENEGOTIATION) && defined(MBEDTLS_SSL_CLI_C) - int crt_cnt=0; + int crt_cnt = 0; #endif size_t i, n; uint8_t alert; - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - if( ssl->in_msg[0] != MBEDTLS_SSL_HS_CERTIFICATE ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msg[0] != MBEDTLS_SSL_HS_CERTIFICATE) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - if( ssl->in_hslen < mbedtls_ssl_hs_hdr_len( ssl ) + 3 + 3 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen < mbedtls_ssl_hs_hdr_len(ssl) + 3 + 3) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - i = mbedtls_ssl_hs_hdr_len( ssl ); + i = mbedtls_ssl_hs_hdr_len(ssl); /* * Same message structure as in mbedtls_ssl_write_certificate() */ - n = ( ssl->in_msg[i+1] << 8 ) | ssl->in_msg[i+2]; + n = (ssl->in_msg[i+1] << 8) | ssl->in_msg[i+2]; - if( ssl->in_msg[i] != 0 || - ssl->in_hslen != n + 3 + mbedtls_ssl_hs_hdr_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_msg[i] != 0 || + ssl->in_hslen != n + 3 + mbedtls_ssl_hs_hdr_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Make &ssl->in_msg[i] point to the beginning of the CRT chain. */ i += 3; /* Iterate through and parse the CRTs in the provided chain. */ - while( i < ssl->in_hslen ) - { + while (i < ssl->in_hslen) { /* Check that there's room for the next CRT's length fields. */ - if ( i + 3 > ssl->in_hslen ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (i + 3 > ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* In theory, the CRT can be up to 2**24 Bytes, but we don't support * anything beyond 2**16 ~ 64K. */ - if( ssl->in_msg[i] != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT ); - return( MBEDTLS_ERR_SSL_BAD_CERTIFICATE ); + if (ssl->in_msg[i] != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT); + return MBEDTLS_ERR_SSL_BAD_CERTIFICATE; } /* Read length of the next CRT in the chain. */ - n = ( (unsigned int) ssl->in_msg[i + 1] << 8 ) + n = ((unsigned int) ssl->in_msg[i + 1] << 8) | (unsigned int) ssl->in_msg[i + 2]; i += 3; - if( n < 128 || i + n > ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (n < 128 || i + n > ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Check if we're handling the first CRT in the chain. */ #if defined(MBEDTLS_SSL_RENEGOTIATION) && defined(MBEDTLS_SSL_CLI_C) - if( crt_cnt++ == 0 && + if (crt_cnt++ == 0 && ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT && - ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { + ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { /* During client-side renegotiation, check that the server's * end-CRTs hasn't changed compared to the initial handshake, * mitigating the triple handshake attack. On success, reuse * the original end-CRT instead of parsing it again. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Check that peer CRT hasn't changed during renegotiation" ) ); - if( ssl_check_peer_crt_unchanged( ssl, - &ssl->in_msg[i], - n ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "new server cert during renegotiation" ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED ); - return( MBEDTLS_ERR_SSL_BAD_CERTIFICATE ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Check that peer CRT hasn't changed during renegotiation")); + if (ssl_check_peer_crt_unchanged(ssl, + &ssl->in_msg[i], + n) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("new server cert during renegotiation")); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED); + return MBEDTLS_ERR_SSL_BAD_CERTIFICATE; } /* Now we can safely free the original chain. */ - ssl_clear_peer_cert( ssl->session ); + ssl_clear_peer_cert(ssl->session); } #endif /* MBEDTLS_SSL_RENEGOTIATION && MBEDTLS_SSL_CLI_C */ /* Parse the next certificate in the chain. */ #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - ret = mbedtls_x509_crt_parse_der( chain, ssl->in_msg + i, n ); + ret = mbedtls_x509_crt_parse_der(chain, ssl->in_msg + i, n); #else /* If we don't need to store the CRT chain permanently, parse * it in-place from the input buffer instead of making a copy. */ - ret = mbedtls_x509_crt_parse_der_nocopy( chain, ssl->in_msg + i, n ); + ret = mbedtls_x509_crt_parse_der_nocopy(chain, ssl->in_msg + i, n); #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - switch( ret ) - { + switch (ret) { case 0: /*ok*/ case MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG + MBEDTLS_ERR_OID_NOT_FOUND: /* Ignore certificate with an unknown algorithm: maybe a @@ -7148,35 +7050,35 @@ static int ssl_parse_certificate_chain( mbedtls_ssl_context *ssl, default: alert = MBEDTLS_SSL_ALERT_MSG_BAD_CERT; - crt_parse_der_failed: - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, alert ); - MBEDTLS_SSL_DEBUG_RET( 1, " mbedtls_x509_crt_parse_der", ret ); - return( ret ); +crt_parse_der_failed: + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, alert); + MBEDTLS_SSL_DEBUG_RET(1, " mbedtls_x509_crt_parse_der", ret); + return ret; } i += n; } - MBEDTLS_SSL_DEBUG_CRT( 3, "peer certificate", chain ); - return( 0 ); + MBEDTLS_SSL_DEBUG_CRT(3, "peer certificate", chain); + return 0; } #if defined(MBEDTLS_SSL_SRV_C) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_srv_check_client_no_crt_notification( mbedtls_ssl_context *ssl ) +static int ssl_srv_check_client_no_crt_notification(mbedtls_ssl_context *ssl) { - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - return( -1 ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { + return -1; + } - if( ssl->in_hslen == 3 + mbedtls_ssl_hs_hdr_len( ssl ) && + if (ssl->in_hslen == 3 + mbedtls_ssl_hs_hdr_len(ssl) && ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE && ssl->in_msg[0] == MBEDTLS_SSL_HS_CERTIFICATE && - memcmp( ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ), "\0\0\0", 3 ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "peer has no certificate" ) ); - return( 0 ); + memcmp(ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl), "\0\0\0", 3) == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("peer has no certificate")); + return 0; } - return( -1 ); + return -1; } #endif /* MBEDTLS_SSL_SRV_C */ @@ -7189,40 +7091,40 @@ static int ssl_srv_check_client_no_crt_notification( mbedtls_ssl_context *ssl ) #define SSL_CERTIFICATE_EXPECTED 0 #define SSL_CERTIFICATE_SKIP 1 MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_coordinate( mbedtls_ssl_context *ssl, - int authmode ) +static int ssl_parse_certificate_coordinate(mbedtls_ssl_context *ssl, + int authmode) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - if( !mbedtls_ssl_ciphersuite_uses_srv_cert( ciphersuite_info ) ) - return( SSL_CERTIFICATE_SKIP ); + if (!mbedtls_ssl_ciphersuite_uses_srv_cert(ciphersuite_info)) { + return SSL_CERTIFICATE_SKIP; + } #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) - return( SSL_CERTIFICATE_SKIP ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { + return SSL_CERTIFICATE_SKIP; + } - if( authmode == MBEDTLS_SSL_VERIFY_NONE ) - { + if (authmode == MBEDTLS_SSL_VERIFY_NONE) { ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_SKIP_VERIFY; - return( SSL_CERTIFICATE_SKIP ); + return SSL_CERTIFICATE_SKIP; } } #else ((void) authmode); #endif /* MBEDTLS_SSL_SRV_C */ - return( SSL_CERTIFICATE_EXPECTED ); + return SSL_CERTIFICATE_EXPECTED; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, - int authmode, - mbedtls_x509_crt *chain, - void *rs_ctx ) +static int ssl_parse_certificate_verify(mbedtls_ssl_context *ssl, + int authmode, + mbedtls_x509_crt *chain, + void *rs_ctx) { int ret = 0; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = @@ -7232,18 +7134,16 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *); void *p_vrfy; - if( authmode == MBEDTLS_SSL_VERIFY_NONE ) - return( 0 ); + if (authmode == MBEDTLS_SSL_VERIFY_NONE) { + return 0; + } - if( ssl->f_vrfy != NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Use context-specific verification callback" ) ); + if (ssl->f_vrfy != NULL) { + MBEDTLS_SSL_DEBUG_MSG(3, ("Use context-specific verification callback")); f_vrfy = ssl->f_vrfy; p_vrfy = ssl->p_vrfy; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Use configuration-specific verification callback" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(3, ("Use configuration-specific verification callback")); f_vrfy = ssl->conf->f_vrfy; p_vrfy = ssl->conf->p_vrfy; } @@ -7252,12 +7152,11 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, * Main check: verify certificate */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - if( ssl->conf->f_ca_cb != NULL ) - { + if (ssl->conf->f_ca_cb != NULL) { ((void) rs_ctx); have_ca_chain = 1; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "use CA callback for X.509 CRT verification" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("use CA callback for X.509 CRT verification")); ret = mbedtls_x509_crt_verify_with_ca_cb( chain, ssl->conf->f_ca_cb, @@ -7265,29 +7164,27 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, ssl->conf->cert_profile, ssl->hostname, &ssl->session_negotiate->verify_result, - f_vrfy, p_vrfy ); - } - else + f_vrfy, p_vrfy); + } else #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ { mbedtls_x509_crt *ca_chain; mbedtls_x509_crl *ca_crl; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_ca_chain != NULL ) - { + if (ssl->handshake->sni_ca_chain != NULL) { ca_chain = ssl->handshake->sni_ca_chain; ca_crl = ssl->handshake->sni_ca_crl; - } - else + } else #endif { ca_chain = ssl->conf->ca_chain; ca_crl = ssl->conf->ca_crl; } - if( ca_chain != NULL ) + if (ca_chain != NULL) { have_ca_chain = 1; + } ret = mbedtls_x509_crt_verify_restartable( chain, @@ -7295,17 +7192,17 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, ssl->conf->cert_profile, ssl->hostname, &ssl->session_negotiate->verify_result, - f_vrfy, p_vrfy, rs_ctx ); + f_vrfy, p_vrfy, rs_ctx); } - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "x509_verify_cert", ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "x509_verify_cert", ret); } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - return( MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ); + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { + return MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif /* @@ -7319,39 +7216,37 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, /* If certificate uses an EC key, make sure the curve is OK. * This is a public key, so it can't be opaque, so can_do() is a good * enough check to ensure pk_ec() is safe to use here. */ - if( mbedtls_pk_can_do( pk, MBEDTLS_PK_ECKEY ) ) - { + if (mbedtls_pk_can_do(pk, MBEDTLS_PK_ECKEY)) { /* and in the unlikely case the above assumption no longer holds * we are making sure that pk_ec() here does not return a NULL */ - const mbedtls_ecp_keypair *ec = mbedtls_pk_ec( *pk ); - if( ec == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "mbedtls_pk_ec() returned NULL" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + const mbedtls_ecp_keypair *ec = mbedtls_pk_ec(*pk); + if (ec == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("mbedtls_pk_ec() returned NULL")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( mbedtls_ssl_check_curve( ssl, ec->grp.id ) != 0 ) - { + if (mbedtls_ssl_check_curve(ssl, ec->grp.id) != 0) { ssl->session_negotiate->verify_result |= MBEDTLS_X509_BADCERT_BAD_KEY; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate (EC key curve)" ) ); - if( ret == 0 ) + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate (EC key curve)")); + if (ret == 0) { ret = MBEDTLS_ERR_SSL_BAD_CERTIFICATE; + } } } } #endif /* MBEDTLS_ECP_C */ - if( mbedtls_ssl_check_cert_usage( chain, - ciphersuite_info, - ! ssl->conf->endpoint, - &ssl->session_negotiate->verify_result ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate (usage extensions)" ) ); - if( ret == 0 ) + if (mbedtls_ssl_check_cert_usage(chain, + ciphersuite_info, + !ssl->conf->endpoint, + &ssl->session_negotiate->verify_result) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate (usage extensions)")); + if (ret == 0) { ret = MBEDTLS_ERR_SSL_BAD_CERTIFICATE; + } } /* mbedtls_x509_crt_verify_with_profile is supposed to report a @@ -7360,122 +7255,115 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl, * of error codes, including those from the user provided f_vrfy * functions, are treated as fatal and lead to a failure of * ssl_parse_certificate even if verification was optional. */ - if( authmode == MBEDTLS_SSL_VERIFY_OPTIONAL && - ( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED || - ret == MBEDTLS_ERR_SSL_BAD_CERTIFICATE ) ) - { + if (authmode == MBEDTLS_SSL_VERIFY_OPTIONAL && + (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED || + ret == MBEDTLS_ERR_SSL_BAD_CERTIFICATE)) { ret = 0; } - if( have_ca_chain == 0 && authmode == MBEDTLS_SSL_VERIFY_REQUIRED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no CA chain" ) ); + if (have_ca_chain == 0 && authmode == MBEDTLS_SSL_VERIFY_REQUIRED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no CA chain")); ret = MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED; } - if( ret != 0 ) - { + if (ret != 0) { uint8_t alert; /* The certificate may have been rejected for several reasons. Pick one and send the corresponding alert. Which alert to send may be a subject of debate in some cases. */ - if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_OTHER ) + if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_OTHER) { alert = MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_CN_MISMATCH ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_CN_MISMATCH) { alert = MBEDTLS_SSL_ALERT_MSG_BAD_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_KEY_USAGE ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_KEY_USAGE) { alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_EXT_KEY_USAGE ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_EXT_KEY_USAGE) { alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_NS_CERT_TYPE ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_NS_CERT_TYPE) { alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_BAD_PK ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_BAD_PK) { alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_BAD_KEY ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_BAD_KEY) { alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_EXPIRED ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_EXPIRED) { alert = MBEDTLS_SSL_ALERT_MSG_CERT_EXPIRED; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_REVOKED ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_REVOKED) { alert = MBEDTLS_SSL_ALERT_MSG_CERT_REVOKED; - else if( ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_NOT_TRUSTED ) + } else if (ssl->session_negotiate->verify_result & MBEDTLS_X509_BADCERT_NOT_TRUSTED) { alert = MBEDTLS_SSL_ALERT_MSG_UNKNOWN_CA; - else + } else { alert = MBEDTLS_SSL_ALERT_MSG_CERT_UNKNOWN; - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - alert ); + } + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + alert); } #if defined(MBEDTLS_DEBUG_C) - if( ssl->session_negotiate->verify_result != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "! Certificate verification flags %08x", - (unsigned int) ssl->session_negotiate->verify_result ) ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Certificate verification flags clear" ) ); + if (ssl->session_negotiate->verify_result != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("! Certificate verification flags %08x", + (unsigned int) ssl->session_negotiate->verify_result)); + } else { + MBEDTLS_SSL_DEBUG_MSG(3, ("Certificate verification flags clear")); } #endif /* MBEDTLS_DEBUG_C */ - return( ret ); + return ret; } #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_remember_peer_crt_digest( mbedtls_ssl_context *ssl, - unsigned char *start, size_t len ) +static int ssl_remember_peer_crt_digest(mbedtls_ssl_context *ssl, + unsigned char *start, size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Remember digest of the peer's end-CRT. */ ssl->session_negotiate->peer_cert_digest = - mbedtls_calloc( 1, MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN ); - if( ssl->session_negotiate->peer_cert_digest == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc(%d bytes) failed", - MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); + mbedtls_calloc(1, MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN); + if (ssl->session_negotiate->peer_cert_digest == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc(%d bytes) failed", + MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN)); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - ret = mbedtls_md( mbedtls_md_info_from_type( - MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE ), - start, len, - ssl->session_negotiate->peer_cert_digest ); + ret = mbedtls_md(mbedtls_md_info_from_type( + MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE), + start, len, + ssl->session_negotiate->peer_cert_digest); ssl->session_negotiate->peer_cert_digest_type = MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE; ssl->session_negotiate->peer_cert_digest_len = MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN; - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_remember_peer_pubkey( mbedtls_ssl_context *ssl, - unsigned char *start, size_t len ) +static int ssl_remember_peer_pubkey(mbedtls_ssl_context *ssl, + unsigned char *start, size_t len) { unsigned char *end = start + len; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* Make a copy of the peer's raw public key. */ - mbedtls_pk_init( &ssl->handshake->peer_pubkey ); - ret = mbedtls_pk_parse_subpubkey( &start, end, - &ssl->handshake->peer_pubkey ); - if( ret != 0 ) - { + mbedtls_pk_init(&ssl->handshake->peer_pubkey); + ret = mbedtls_pk_parse_subpubkey(&start, end, + &ssl->handshake->peer_pubkey); + if (ret != 0) { /* We should have parsed the public key before. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - return( 0 ); + return 0; } #endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ -int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_parse_certificate(mbedtls_ssl_context *ssl) { int ret = 0; int crt_expected; @@ -7489,40 +7377,37 @@ int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ) void *rs_ctx = NULL; mbedtls_x509_crt *chain = NULL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate")); - crt_expected = ssl_parse_certificate_coordinate( ssl, authmode ); - if( crt_expected == SSL_CERTIFICATE_SKIP ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate" ) ); + crt_expected = ssl_parse_certificate_coordinate(ssl, authmode); + if (crt_expected == SSL_CERTIFICATE_SKIP) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate")); goto exit; } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled && - ssl->handshake->ecrs_state == ssl_ecrs_crt_verify ) - { + if (ssl->handshake->ecrs_enabled && + ssl->handshake->ecrs_state == ssl_ecrs_crt_verify) { chain = ssl->handshake->ecrs_peer_cert; ssl->handshake->ecrs_peer_cert = NULL; goto crt_verify; } #endif - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { /* mbedtls_ssl_read_record may have sent an alert already. We let it decide whether to alert. */ - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); goto exit; } #if defined(MBEDTLS_SSL_SRV_C) - if( ssl_srv_check_client_no_crt_notification( ssl ) == 0 ) - { + if (ssl_srv_check_client_no_crt_notification(ssl) == 0) { ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_MISSING; - if( authmode != MBEDTLS_SSL_VERIFY_OPTIONAL ) + if (authmode != MBEDTLS_SSL_VERIFY_OPTIONAL) { ret = MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE; + } goto exit; } @@ -7530,39 +7415,42 @@ int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ) /* Clear existing peer CRT structure in case we tried to * reuse a session but it failed, and allocate a new one. */ - ssl_clear_peer_cert( ssl->session_negotiate ); + ssl_clear_peer_cert(ssl->session_negotiate); - chain = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ); - if( chain == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", - sizeof( mbedtls_x509_crt ) ) ); - mbedtls_ssl_send_alert_message( ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); + chain = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); + if (chain == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc(%" MBEDTLS_PRINTF_SIZET " bytes) failed", + sizeof(mbedtls_x509_crt))); + mbedtls_ssl_send_alert_message(ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } - mbedtls_x509_crt_init( chain ); + mbedtls_x509_crt_init(chain); - ret = ssl_parse_certificate_chain( ssl, chain ); - if( ret != 0 ) + ret = ssl_parse_certificate_chain(ssl, chain); + if (ret != 0) { goto exit; + } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled) + if (ssl->handshake->ecrs_enabled) { ssl->handshake->ecrs_state = ssl_ecrs_crt_verify; + } crt_verify: - if( ssl->handshake->ecrs_enabled) + if (ssl->handshake->ecrs_enabled) { rs_ctx = &ssl->handshake->ecrs_ctx; + } #endif - ret = ssl_parse_certificate_verify( ssl, authmode, - chain, rs_ctx ); - if( ret != 0 ) + ret = ssl_parse_certificate_verify(ssl, authmode, + chain, rs_ctx); + if (ret != 0) { goto exit; + } #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) { @@ -7582,17 +7470,19 @@ crt_verify: /* Free the CRT structures before computing * digest and copying the peer's public key. */ - mbedtls_x509_crt_free( chain ); - mbedtls_free( chain ); + mbedtls_x509_crt_free(chain); + mbedtls_free(chain); chain = NULL; - ret = ssl_remember_peer_crt_digest( ssl, crt_start, crt_len ); - if( ret != 0 ) + ret = ssl_remember_peer_crt_digest(ssl, crt_start, crt_len); + if (ret != 0) { goto exit; + } - ret = ssl_remember_peer_pubkey( ssl, pk_start, pk_len ); - if( ret != 0 ) + ret = ssl_remember_peer_pubkey(ssl, pk_start, pk_len); + if (ret != 0) { goto exit; + } } #else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ /* Pass ownership to session structure. */ @@ -7600,34 +7490,33 @@ crt_verify: chain = NULL; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate")); exit: - if( ret == 0 ) + if (ret == 0) { ssl->state++; + } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { ssl->handshake->ecrs_peer_cert = chain; chain = NULL; } #endif - if( chain != NULL ) - { - mbedtls_x509_crt_free( chain ); - mbedtls_free( chain ); + if (chain != NULL) { + mbedtls_x509_crt_free(chain); + mbedtls_free(chain); } - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static void ssl_calc_finished_tls_sha256( - mbedtls_ssl_context *ssl, unsigned char *buf, int from ) + mbedtls_ssl_context *ssl, unsigned char *buf, int from) { int len = 12; const char *sender; @@ -7641,39 +7530,38 @@ static void ssl_calc_finished_tls_sha256( #endif mbedtls_ssl_session *session = ssl->session_negotiate; - if( !session ) + if (!session) { session = ssl->session; + } - sender = ( from == MBEDTLS_SSL_IS_CLIENT ) + sender = (from == MBEDTLS_SSL_IS_CLIENT) ? "client finished" : "server finished"; #if defined(MBEDTLS_USE_PSA_CRYPTO) sha256_psa = psa_hash_operation_init(); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc PSA finished tls sha256" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc PSA finished tls sha256")); - status = psa_hash_clone( &ssl->handshake->fin_sha256_psa, &sha256_psa ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash clone failed" ) ); + status = psa_hash_clone(&ssl->handshake->fin_sha256_psa, &sha256_psa); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash clone failed")); return; } - status = psa_hash_finish( &sha256_psa, padbuf, sizeof( padbuf ), &hash_size ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash finish failed" ) ); + status = psa_hash_finish(&sha256_psa, padbuf, sizeof(padbuf), &hash_size); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash finish failed")); return; } - MBEDTLS_SSL_DEBUG_BUF( 3, "PSA calculated padbuf", padbuf, 32 ); + MBEDTLS_SSL_DEBUG_BUF(3, "PSA calculated padbuf", padbuf, 32); #else - mbedtls_sha256_init( &sha256 ); + mbedtls_sha256_init(&sha256); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc finished tls sha256" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc finished tls sha256")); - mbedtls_sha256_clone( &sha256, &ssl->handshake->fin_sha256 ); + mbedtls_sha256_clone(&sha256, &ssl->handshake->fin_sha256); /* * TLSv1.2: @@ -7682,29 +7570,29 @@ static void ssl_calc_finished_tls_sha256( */ #if !defined(MBEDTLS_SHA256_ALT) - MBEDTLS_SSL_DEBUG_BUF( 4, "finished sha2 state", (unsigned char *) - sha256.state, sizeof( sha256.state ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "finished sha2 state", (unsigned char *) + sha256.state, sizeof(sha256.state)); #endif - mbedtls_sha256_finish( &sha256, padbuf ); - mbedtls_sha256_free( &sha256 ); + mbedtls_sha256_finish(&sha256, padbuf); + mbedtls_sha256_free(&sha256); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - ssl->handshake->tls_prf( session->master, 48, sender, - padbuf, 32, buf, len ); + ssl->handshake->tls_prf(session->master, 48, sender, + padbuf, 32, buf, len); - MBEDTLS_SSL_DEBUG_BUF( 3, "calc finished result", buf, len ); + MBEDTLS_SSL_DEBUG_BUF(3, "calc finished result", buf, len); - mbedtls_platform_zeroize( padbuf, sizeof( padbuf ) ); + mbedtls_platform_zeroize(padbuf, sizeof(padbuf)); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= calc finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc finished")); } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) static void ssl_calc_finished_tls_sha384( - mbedtls_ssl_context *ssl, unsigned char *buf, int from ) + mbedtls_ssl_context *ssl, unsigned char *buf, int from) { int len = 12; const char *sender; @@ -7718,38 +7606,37 @@ static void ssl_calc_finished_tls_sha384( #endif mbedtls_ssl_session *session = ssl->session_negotiate; - if( !session ) + if (!session) { session = ssl->session; + } - sender = ( from == MBEDTLS_SSL_IS_CLIENT ) + sender = (from == MBEDTLS_SSL_IS_CLIENT) ? "client finished" : "server finished"; #if defined(MBEDTLS_USE_PSA_CRYPTO) sha384_psa = psa_hash_operation_init(); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc PSA finished tls sha384" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc PSA finished tls sha384")); - status = psa_hash_clone( &ssl->handshake->fin_sha384_psa, &sha384_psa ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash clone failed" ) ); + status = psa_hash_clone(&ssl->handshake->fin_sha384_psa, &sha384_psa); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash clone failed")); return; } - status = psa_hash_finish( &sha384_psa, padbuf, sizeof( padbuf ), &hash_size ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "PSA hash finish failed" ) ); + status = psa_hash_finish(&sha384_psa, padbuf, sizeof(padbuf), &hash_size); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("PSA hash finish failed")); return; } - MBEDTLS_SSL_DEBUG_BUF( 3, "PSA calculated padbuf", padbuf, 48 ); + MBEDTLS_SSL_DEBUG_BUF(3, "PSA calculated padbuf", padbuf, 48); #else - mbedtls_sha512_init( &sha512 ); + mbedtls_sha512_init(&sha512); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> calc finished tls sha384" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> calc finished tls sha384")); - mbedtls_sha512_clone( &sha512, &ssl->handshake->fin_sha384 ); + mbedtls_sha512_clone(&sha512, &ssl->handshake->fin_sha384); /* * TLSv1.2: @@ -7758,59 +7645,57 @@ static void ssl_calc_finished_tls_sha384( */ #if !defined(MBEDTLS_SHA512_ALT) - MBEDTLS_SSL_DEBUG_BUF( 4, "finished sha512 state", (unsigned char *) - sha512.state, sizeof( sha512.state ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "finished sha512 state", (unsigned char *) + sha512.state, sizeof(sha512.state)); #endif - mbedtls_sha512_finish( &sha512, padbuf ); + mbedtls_sha512_finish(&sha512, padbuf); - mbedtls_sha512_free( &sha512 ); + mbedtls_sha512_free(&sha512); #endif - ssl->handshake->tls_prf( session->master, 48, sender, - padbuf, 48, buf, len ); + ssl->handshake->tls_prf(session->master, 48, sender, + padbuf, 48, buf, len); - MBEDTLS_SSL_DEBUG_BUF( 3, "calc finished result", buf, len ); + MBEDTLS_SSL_DEBUG_BUF(3, "calc finished result", buf, len); - mbedtls_platform_zeroize( padbuf, sizeof( padbuf ) ); + mbedtls_platform_zeroize(padbuf, sizeof(padbuf)); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= calc finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= calc finished")); } #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA*/ -void mbedtls_ssl_handshake_wrapup_free_hs_transform( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_handshake_wrapup_free_hs_transform(mbedtls_ssl_context *ssl) { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "=> handshake wrapup: final free" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("=> handshake wrapup: final free")); /* * Free our handshake params */ - mbedtls_ssl_handshake_free( ssl ); - mbedtls_free( ssl->handshake ); + mbedtls_ssl_handshake_free(ssl); + mbedtls_free(ssl->handshake); ssl->handshake = NULL; /* * Free the previous transform and switch in the current one */ - if( ssl->transform ) - { - mbedtls_ssl_transform_free( ssl->transform ); - mbedtls_free( ssl->transform ); + if (ssl->transform) { + mbedtls_ssl_transform_free(ssl->transform); + mbedtls_free(ssl->transform); } ssl->transform = ssl->transform_negotiate; ssl->transform_negotiate = NULL; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "<= handshake wrapup: final free" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("<= handshake wrapup: final free")); } -void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_handshake_wrapup(mbedtls_ssl_context *ssl) { int resume = ssl->handshake->resume; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "=> handshake wrapup" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("=> handshake wrapup")); #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { + if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { ssl->renego_status = MBEDTLS_SSL_RENEGOTIATION_DONE; ssl->renego_records_seen = 0; } @@ -7819,16 +7704,15 @@ void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ) /* * Free the previous session and switch in the current one */ - if( ssl->session ) - { + if (ssl->session) { #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) /* RFC 7366 3.1: keep the EtM state */ ssl->session_negotiate->encrypt_then_mac = - ssl->session->encrypt_then_mac; + ssl->session->encrypt_then_mac; #endif - mbedtls_ssl_session_free( ssl->session ); - mbedtls_free( ssl->session ); + mbedtls_ssl_session_free(ssl->session); + mbedtls_free(ssl->session); } ssl->session = ssl->session_negotiate; ssl->session_negotiate = NULL; @@ -7836,46 +7720,44 @@ void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl ) /* * Add cache entry */ - if( ssl->conf->f_set_cache != NULL && + if (ssl->conf->f_set_cache != NULL && ssl->session->id_len != 0 && - resume == 0 ) - { - if( ssl->conf->f_set_cache( ssl->conf->p_cache, - ssl->session->id, - ssl->session->id_len, - ssl->session ) != 0 ) - MBEDTLS_SSL_DEBUG_MSG( 1, ( "cache did not store session" ) ); + resume == 0) { + if (ssl->conf->f_set_cache(ssl->conf->p_cache, + ssl->session->id, + ssl->session->id_len, + ssl->session) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("cache did not store session")); + } } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->handshake->flight != NULL ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->handshake->flight != NULL) { /* Cancel handshake timer */ - mbedtls_ssl_set_timer( ssl, 0 ); + mbedtls_ssl_set_timer(ssl, 0); /* Keep last flight around in case we need to resend it: * we need the handshake and transform structures for that */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip freeing handshake and transform" ) ); - } - else + MBEDTLS_SSL_DEBUG_MSG(3, ("skip freeing handshake and transform")); + } else #endif - mbedtls_ssl_handshake_wrapup_free_hs_transform( ssl ); + mbedtls_ssl_handshake_wrapup_free_hs_transform(ssl); ssl->state = MBEDTLS_SSL_HANDSHAKE_OVER; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "<= handshake wrapup" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("<= handshake wrapup")); } -int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_write_finished(mbedtls_ssl_context *ssl) { int ret, hash_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write finished")); - mbedtls_ssl_update_out_pointers( ssl, ssl->transform_negotiate ); + mbedtls_ssl_update_out_pointers(ssl, ssl->transform_negotiate); - ssl->handshake->calc_finished( ssl, ssl->out_msg + 4, ssl->conf->endpoint ); + ssl->handshake->calc_finished(ssl, ssl->out_msg + 4, ssl->conf->endpoint); /* * RFC 5246 7.4.9 (Page 63) says 12 is the default length and ciphersuites @@ -7887,7 +7769,7 @@ int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_RENEGOTIATION) ssl->verify_data_len = hash_len; - memcpy( ssl->own_verify_data, ssl->out_msg + 4, hash_len ); + memcpy(ssl->own_verify_data, ssl->out_msg + 4, hash_len); #endif ssl->out_msglen = 4 + hash_len; @@ -7898,167 +7780,163 @@ int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl ) * In case of session resuming, invert the client and server * ChangeCipherSpec messages order. */ - if( ssl->handshake->resume != 0 ) - { + if (ssl->handshake->resume != 0) { #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP; + } #endif #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { ssl->state = MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC; + } #endif - } - else + } else { ssl->state++; + } /* * Switch to our negotiated transform and session parameters for outbound * data. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "switching to new transform spec for outbound data" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("switching to new transform spec for outbound data")); #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { unsigned char i; /* Remember current epoch settings for resending */ ssl->handshake->alt_transform_out = ssl->transform_out; - memcpy( ssl->handshake->alt_out_ctr, ssl->cur_out_ctr, - sizeof( ssl->handshake->alt_out_ctr ) ); + memcpy(ssl->handshake->alt_out_ctr, ssl->cur_out_ctr, + sizeof(ssl->handshake->alt_out_ctr)); /* Set sequence_number to zero */ - memset( &ssl->cur_out_ctr[2], 0, sizeof( ssl->cur_out_ctr ) - 2 ); + memset(&ssl->cur_out_ctr[2], 0, sizeof(ssl->cur_out_ctr) - 2); /* Increment epoch */ - for( i = 2; i > 0; i-- ) - if( ++ssl->cur_out_ctr[i - 1] != 0 ) + for (i = 2; i > 0; i--) { + if (++ssl->cur_out_ctr[i - 1] != 0) { break; + } + } /* The loop goes to its end iff the counter is wrapping */ - if( i == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DTLS epoch would wrap" ) ); - return( MBEDTLS_ERR_SSL_COUNTER_WRAPPING ); + if (i == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DTLS epoch would wrap")); + return MBEDTLS_ERR_SSL_COUNTER_WRAPPING; } - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ - memset( ssl->cur_out_ctr, 0, sizeof( ssl->cur_out_ctr ) ); + memset(ssl->cur_out_ctr, 0, sizeof(ssl->cur_out_ctr)); ssl->transform_out = ssl->transform_negotiate; ssl->session_out = ssl->session_negotiate; #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - mbedtls_ssl_send_flight_completed( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_send_flight_completed(ssl); + } #endif - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flight_transmit", ret ); - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + (ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flight_transmit", ret); + return ret; } #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write finished")); - return( 0 ); + return 0; } #define SSL_MAX_HASH_LEN 12 -int mbedtls_ssl_parse_finished( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_parse_finished(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned int hash_len = 12; unsigned char buf[SSL_MAX_HASH_LEN]; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse finished")); - ssl->handshake->calc_finished( ssl, buf, ssl->conf->endpoint ^ 1 ); + ssl->handshake->calc_finished(ssl, buf, ssl->conf->endpoint ^ 1); - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); goto exit; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad finished message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad finished message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); ret = MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; goto exit; } - if( ssl->in_msg[0] != MBEDTLS_SSL_HS_FINISHED ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + if (ssl->in_msg[0] != MBEDTLS_SSL_HS_FINISHED) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); ret = MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; goto exit; } - if( ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) + hash_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad finished message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + if (ssl->in_hslen != mbedtls_ssl_hs_hdr_len(ssl) + hash_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad finished message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); ret = MBEDTLS_ERR_SSL_DECODE_ERROR; goto exit; } - if( mbedtls_ct_memcmp( ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ), - buf, hash_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad finished message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR ); + if (mbedtls_ct_memcmp(ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl), + buf, hash_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad finished message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR); ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; goto exit; } #if defined(MBEDTLS_SSL_RENEGOTIATION) ssl->verify_data_len = hash_len; - memcpy( ssl->peer_verify_data, buf, hash_len ); + memcpy(ssl->peer_verify_data, buf, hash_len); #endif - if( ssl->handshake->resume != 0 ) - { + if (ssl->handshake->resume != 0) { #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { ssl->state = MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC; + } #endif #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP; + } #endif - } - else + } else { ssl->state++; + } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - mbedtls_ssl_recv_flight_completed( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_recv_flight_completed(ssl); + } #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse finished" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse finished")); exit: - mbedtls_platform_zeroize( buf, hash_len ); - return( ret ); + mbedtls_platform_zeroize(buf, hash_len); + return ret; } #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) @@ -8066,19 +7944,20 @@ exit: * Helper to get TLS 1.2 PRF from ciphersuite * (Duplicates bits of logic from ssl_set_handshake_prfs().) */ -static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) +static tls_prf_fn ssl_tls12prf_from_cs(int ciphersuite_id) { const mbedtls_ssl_ciphersuite_t * const ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); + mbedtls_ssl_ciphersuite_from_id(ciphersuite_id); #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) - return( tls_prf_sha384 ); - else + if (ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA384) { + return tls_prf_sha384; + } else #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) { - if( ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) - return( tls_prf_sha256 ); + if (ciphersuite_info != NULL && ciphersuite_info->mac == MBEDTLS_MD_SHA256) { + return tls_prf_sha256; + } } #endif #if !defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \ @@ -8086,28 +7965,24 @@ static tls_prf_fn ssl_tls12prf_from_cs( int ciphersuite_id ) (void) ciphersuite_info; #endif - return( NULL ); + return NULL; } #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ -static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) +static mbedtls_tls_prf_types tls_prf_get_type(mbedtls_ssl_tls_prf_cb *tls_prf) { ((void) tls_prf); #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( tls_prf == tls_prf_sha384 ) - { - return( MBEDTLS_SSL_TLS_PRF_SHA384 ); - } - else + if (tls_prf == tls_prf_sha384) { + return MBEDTLS_SSL_TLS_PRF_SHA384; + } else #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( tls_prf == tls_prf_sha256 ) - { - return( MBEDTLS_SSL_TLS_PRF_SHA256 ); - } - else + if (tls_prf == tls_prf_sha256) { + return MBEDTLS_SSL_TLS_PRF_SHA256; + } else #endif - return( MBEDTLS_SSL_TLS_PRF_NONE ); + return MBEDTLS_SSL_TLS_PRF_NONE; } /* @@ -8131,17 +8006,17 @@ static mbedtls_tls_prf_types tls_prf_get_type( mbedtls_ssl_tls_prf_cb *tls_prf ) * - MBEDTLS_DEBUG_C: ssl->conf->{f,p}_dbg */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, - int ciphersuite, - const unsigned char master[48], +static int ssl_tls12_populate_transform(mbedtls_ssl_transform *transform, + int ciphersuite, + const unsigned char master[48], #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - int encrypt_then_mac, + int encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ssl_tls_prf_t tls_prf, - const unsigned char randbytes[64], - mbedtls_ssl_protocol_version tls_version, - unsigned endpoint, - const mbedtls_ssl_context *ssl ) + ssl_tls_prf_t tls_prf, + const unsigned char randbytes[64], + mbedtls_ssl_protocol_version tls_version, + unsigned endpoint, + const mbedtls_ssl_context *ssl) { int ret = 0; unsigned char keyblk[256]; @@ -8170,8 +8045,7 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, #if !defined(MBEDTLS_DEBUG_C) && \ !defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( ssl->f_export_keys == NULL ) - { + if (ssl->f_export_keys == NULL) { ssl = NULL; /* make sure we don't use it except for these cases */ (void) ssl; } @@ -8186,113 +8060,106 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, transform->tls_version = tls_version; #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - memcpy( transform->randbytes, randbytes, sizeof( transform->randbytes ) ); + memcpy(transform->randbytes, randbytes, sizeof(transform->randbytes)); #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* At the moment, we keep TLS <= 1.2 and TLS 1.3 transform * generation separate. This should never happen. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /* * Get various info structures */ - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - if( ciphersuite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ciphersuite info for %d not found", - ciphersuite ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(ciphersuite); + if (ciphersuite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ciphersuite info for %d not found", + ciphersuite)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } ssl_mode = mbedtls_ssl_get_mode_from_ciphersuite( #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - encrypt_then_mac, + encrypt_then_mac, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ - ciphersuite_info ); + ciphersuite_info); - if( ssl_mode == MBEDTLS_SSL_MODE_AEAD ) + if (ssl_mode == MBEDTLS_SSL_MODE_AEAD) { transform->taglen = ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( status = mbedtls_ssl_cipher_to_psa( ciphersuite_info->cipher, - transform->taglen, - &alg, - &key_type, - &key_bits ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_cipher_to_psa", ret ); + if ((status = mbedtls_ssl_cipher_to_psa(ciphersuite_info->cipher, + transform->taglen, + &alg, + &key_type, + &key_bits)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_cipher_to_psa", ret); goto end; } #else - cipher_info = mbedtls_cipher_info_from_type( ciphersuite_info->cipher ); - if( cipher_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "cipher info for %u not found", - ciphersuite_info->cipher ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + cipher_info = mbedtls_cipher_info_from_type(ciphersuite_info->cipher); + if (cipher_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("cipher info for %u not found", + ciphersuite_info->cipher)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - mac_alg = mbedtls_hash_info_psa_from_md( ciphersuite_info->mac ); - if( mac_alg == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "mbedtls_hash_info_psa_from_md for %u not found", - (unsigned) ciphersuite_info->mac ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + mac_alg = mbedtls_hash_info_psa_from_md(ciphersuite_info->mac); + if (mac_alg == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("mbedtls_hash_info_psa_from_md for %u not found", + (unsigned) ciphersuite_info->mac)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #else - md_info = mbedtls_md_info_from_type( ciphersuite_info->mac ); - if( md_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "mbedtls_md info for %u not found", - (unsigned) ciphersuite_info->mac ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + md_info = mbedtls_md_info_from_type(ciphersuite_info->mac); + if (md_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("mbedtls_md info for %u not found", + (unsigned) ciphersuite_info->mac)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* Copy own and peer's CID if the use of the CID * extension has been negotiated. */ - if( ssl->handshake->cid_in_use == MBEDTLS_SSL_CID_ENABLED ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Copy CIDs into SSL transform" ) ); + if (ssl->handshake->cid_in_use == MBEDTLS_SSL_CID_ENABLED) { + MBEDTLS_SSL_DEBUG_MSG(3, ("Copy CIDs into SSL transform")); transform->in_cid_len = ssl->own_cid_len; - memcpy( transform->in_cid, ssl->own_cid, ssl->own_cid_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Incoming CID", transform->in_cid, - transform->in_cid_len ); + memcpy(transform->in_cid, ssl->own_cid, ssl->own_cid_len); + MBEDTLS_SSL_DEBUG_BUF(3, "Incoming CID", transform->in_cid, + transform->in_cid_len); transform->out_cid_len = ssl->handshake->peer_cid_len; - memcpy( transform->out_cid, ssl->handshake->peer_cid, - ssl->handshake->peer_cid_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Outgoing CID", transform->out_cid, - transform->out_cid_len ); + memcpy(transform->out_cid, ssl->handshake->peer_cid, + ssl->handshake->peer_cid_len); + MBEDTLS_SSL_DEBUG_BUF(3, "Outgoing CID", transform->out_cid, + transform->out_cid_len); } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ /* * Compute key block using the PRF */ - ret = tls_prf( master, 48, "key expansion", randbytes, 64, keyblk, 256 ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "prf", ret ); - return( ret ); + ret = tls_prf(master, 48, "key expansion", randbytes, 64, keyblk, 256); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "prf", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite = %s", - mbedtls_ssl_get_ciphersuite_name( ciphersuite ) ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "master secret", master, 48 ); - MBEDTLS_SSL_DEBUG_BUF( 4, "random bytes", randbytes, 64 ); - MBEDTLS_SSL_DEBUG_BUF( 4, "key block", keyblk, 256 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite = %s", + mbedtls_ssl_get_ciphersuite_name(ciphersuite))); + MBEDTLS_SSL_DEBUG_BUF(3, "master secret", master, 48); + MBEDTLS_SSL_DEBUG_BUF(4, "random bytes", randbytes, 64); + MBEDTLS_SSL_DEBUG_BUF(4, "key block", keyblk, 256); /* * Determine the appropriate key, IV and MAC length. @@ -8301,14 +8168,13 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, #if defined(MBEDTLS_USE_PSA_CRYPTO) keylen = PSA_BITS_TO_BYTES(key_bits); #else - keylen = mbedtls_cipher_info_get_key_bitlen( cipher_info ) / 8; + keylen = mbedtls_cipher_info_get_key_bitlen(cipher_info) / 8; #endif #if defined(MBEDTLS_GCM_C) || \ defined(MBEDTLS_CCM_C) || \ defined(MBEDTLS_CHACHAPOLY_C) - if( ssl_mode == MBEDTLS_SSL_MODE_AEAD ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_AEAD) { size_t explicit_ivlen; transform->maclen = 0; @@ -8326,30 +8192,29 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, int is_chachapoly = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - is_chachapoly = ( key_type == PSA_KEY_TYPE_CHACHA20 ); + is_chachapoly = (key_type == PSA_KEY_TYPE_CHACHA20); #else - is_chachapoly = ( mbedtls_cipher_info_get_mode( cipher_info ) - == MBEDTLS_MODE_CHACHAPOLY ); + is_chachapoly = (mbedtls_cipher_info_get_mode(cipher_info) + == MBEDTLS_MODE_CHACHAPOLY); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( is_chachapoly ) + if (is_chachapoly) { transform->fixed_ivlen = 12; - else + } else { transform->fixed_ivlen = 4; + } /* Minimum length of encrypted record */ explicit_ivlen = transform->ivlen - transform->fixed_ivlen; transform->minlen = explicit_ivlen + transform->taglen; - } - else + } else #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( ssl_mode == MBEDTLS_SSL_MODE_STREAM || + if (ssl_mode == MBEDTLS_SSL_MODE_STREAM || ssl_mode == MBEDTLS_SSL_MODE_CBC || - ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM ) - { + ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ); + size_t block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type); #else size_t block_size = cipher_info->block_size; #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -8359,30 +8224,28 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, mac_key_len = PSA_HASH_LENGTH(mac_alg); #else /* Initialize HMAC contexts */ - if( ( ret = mbedtls_md_setup( &transform->md_ctx_enc, md_info, 1 ) ) != 0 || - ( ret = mbedtls_md_setup( &transform->md_ctx_dec, md_info, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_setup", ret ); + if ((ret = mbedtls_md_setup(&transform->md_ctx_enc, md_info, 1)) != 0 || + (ret = mbedtls_md_setup(&transform->md_ctx_dec, md_info, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_setup", ret); goto end; } /* Get MAC length */ - mac_key_len = mbedtls_md_get_size( md_info ); + mac_key_len = mbedtls_md_get_size(md_info); #endif /* MBEDTLS_USE_PSA_CRYPTO */ transform->maclen = mac_key_len; /* IV length */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - transform->ivlen = PSA_CIPHER_IV_LENGTH( key_type, alg ); + transform->ivlen = PSA_CIPHER_IV_LENGTH(key_type, alg); #else transform->ivlen = cipher_info->iv_size; #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Minimum length */ - if( ssl_mode == MBEDTLS_SSL_MODE_STREAM ) + if (ssl_mode == MBEDTLS_SSL_MODE_STREAM) { transform->minlen = transform->maclen; - else - { + } else { /* * GenericBlockCipher: * 1. if EtM is in use: one block plus MAC @@ -8390,174 +8253,153 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, * 2. IV */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM ) - { + if (ssl_mode == MBEDTLS_SSL_MODE_CBC_ETM) { transform->minlen = transform->maclen - + block_size; - } - else + + block_size; + } else #endif { transform->minlen = transform->maclen - + block_size - - transform->maclen % block_size; + + block_size + - transform->maclen % block_size; } - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { transform->minlen += transform->ivlen; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto end; } } - } - else + } else #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "keylen: %u, minlen: %u, ivlen: %u, maclen: %u", - (unsigned) keylen, - (unsigned) transform->minlen, - (unsigned) transform->ivlen, - (unsigned) transform->maclen ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("keylen: %u, minlen: %u, ivlen: %u, maclen: %u", + (unsigned) keylen, + (unsigned) transform->minlen, + (unsigned) transform->ivlen, + (unsigned) transform->maclen)); /* * Finally setup the cipher contexts, IVs and MAC secrets. */ #if defined(MBEDTLS_SSL_CLI_C) - if( endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (endpoint == MBEDTLS_SSL_IS_CLIENT) { key1 = keyblk + mac_key_len * 2; key2 = keyblk + mac_key_len * 2 + keylen; mac_enc = keyblk; mac_dec = keyblk + mac_key_len; - iv_copy_len = ( transform->fixed_ivlen ) ? - transform->fixed_ivlen : transform->ivlen; - memcpy( transform->iv_enc, key2 + keylen, iv_copy_len ); - memcpy( transform->iv_dec, key2 + keylen + iv_copy_len, - iv_copy_len ); - } - else + iv_copy_len = (transform->fixed_ivlen) ? + transform->fixed_ivlen : transform->ivlen; + memcpy(transform->iv_enc, key2 + keylen, iv_copy_len); + memcpy(transform->iv_dec, key2 + keylen + iv_copy_len, + iv_copy_len); + } else #endif /* MBEDTLS_SSL_CLI_C */ #if defined(MBEDTLS_SSL_SRV_C) - if( endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (endpoint == MBEDTLS_SSL_IS_SERVER) { key1 = keyblk + mac_key_len * 2 + keylen; key2 = keyblk + mac_key_len * 2; mac_enc = keyblk + mac_key_len; mac_dec = keyblk; - iv_copy_len = ( transform->fixed_ivlen ) ? - transform->fixed_ivlen : transform->ivlen; - memcpy( transform->iv_dec, key1 + keylen, iv_copy_len ); - memcpy( transform->iv_enc, key1 + keylen + iv_copy_len, - iv_copy_len ); - } - else + iv_copy_len = (transform->fixed_ivlen) ? + transform->fixed_ivlen : transform->ivlen; + memcpy(transform->iv_dec, key1 + keylen, iv_copy_len); + memcpy(transform->iv_enc, key1 + keylen + iv_copy_len, + iv_copy_len); + } else #endif /* MBEDTLS_SSL_SRV_C */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto end; } - if( ssl != NULL && ssl->f_export_keys != NULL ) - { - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET, - master, 48, - randbytes + 32, - randbytes, - tls_prf_get_type( tls_prf ) ); + if (ssl != NULL && ssl->f_export_keys != NULL) { + ssl->f_export_keys(ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET, + master, 48, + randbytes + 32, + randbytes, + tls_prf_get_type(tls_prf)); } #if defined(MBEDTLS_USE_PSA_CRYPTO) transform->psa_alg = alg; - if ( alg != MBEDTLS_SSL_NULL_CIPHER ) - { - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + if (alg != MBEDTLS_SSL_NULL_CIPHER) { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - if( ( status = psa_import_key( &attributes, - key1, - PSA_BITS_TO_BYTES( key_bits ), - &transform->psa_key_enc ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 3, "psa_import_key", (int)status ); - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_key", ret ); + if ((status = psa_import_key(&attributes, + key1, + PSA_BITS_TO_BYTES(key_bits), + &transform->psa_key_enc)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(3, "psa_import_key", (int) status); + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_key", ret); goto end; } - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); - if( ( status = psa_import_key( &attributes, - key2, - PSA_BITS_TO_BYTES( key_bits ), - &transform->psa_key_dec ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_key", ret ); + if ((status = psa_import_key(&attributes, + key2, + PSA_BITS_TO_BYTES(key_bits), + &transform->psa_key_dec)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_key", ret); goto end; } } #else - if( ( ret = mbedtls_cipher_setup( &transform->cipher_ctx_enc, - cipher_info ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setup", ret ); + if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_enc, + cipher_info)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret); goto end; } - if( ( ret = mbedtls_cipher_setup( &transform->cipher_ctx_dec, - cipher_info ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setup", ret ); + if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_dec, + cipher_info)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret); goto end; } - if( ( ret = mbedtls_cipher_setkey( &transform->cipher_ctx_enc, key1, - (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ), - MBEDTLS_ENCRYPT ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setkey", ret ); + if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_enc, key1, + (int) mbedtls_cipher_info_get_key_bitlen(cipher_info), + MBEDTLS_ENCRYPT)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret); goto end; } - if( ( ret = mbedtls_cipher_setkey( &transform->cipher_ctx_dec, key2, - (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ), - MBEDTLS_DECRYPT ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setkey", ret ); + if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_dec, key2, + (int) mbedtls_cipher_info_get_key_bitlen(cipher_info), + MBEDTLS_DECRYPT)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret); goto end; } #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( mbedtls_cipher_info_get_mode( cipher_info ) == MBEDTLS_MODE_CBC ) - { - if( ( ret = mbedtls_cipher_set_padding_mode( &transform->cipher_ctx_enc, - MBEDTLS_PADDING_NONE ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_set_padding_mode", ret ); + if (mbedtls_cipher_info_get_mode(cipher_info) == MBEDTLS_MODE_CBC) { + if ((ret = mbedtls_cipher_set_padding_mode(&transform->cipher_ctx_enc, + MBEDTLS_PADDING_NONE)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_set_padding_mode", ret); goto end; } - if( ( ret = mbedtls_cipher_set_padding_mode( &transform->cipher_ctx_dec, - MBEDTLS_PADDING_NONE ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_set_padding_mode", ret ); + if ((ret = mbedtls_cipher_set_padding_mode(&transform->cipher_ctx_dec, + MBEDTLS_PADDING_NONE)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_set_padding_mode", ret); goto end; } } @@ -8567,51 +8409,51 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) /* For HMAC-based ciphersuites, initialize the HMAC transforms. For AEAD-based ciphersuites, there is nothing to do here. */ - if( mac_key_len != 0 ) - { + if (mac_key_len != 0) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - transform->psa_mac_alg = PSA_ALG_HMAC( mac_alg ); + transform->psa_mac_alg = PSA_ALG_HMAC(mac_alg); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, PSA_ALG_HMAC( mac_alg ) ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, PSA_ALG_HMAC(mac_alg)); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); - if( ( status = psa_import_key( &attributes, - mac_enc, mac_key_len, - &transform->psa_mac_enc ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_mac_key", ret ); + if ((status = psa_import_key(&attributes, + mac_enc, mac_key_len, + &transform->psa_mac_enc)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_mac_key", ret); goto end; } - if( ( transform->psa_alg == MBEDTLS_SSL_NULL_CIPHER ) || - ( ( transform->psa_alg == PSA_ALG_CBC_NO_PADDING ) + if ((transform->psa_alg == MBEDTLS_SSL_NULL_CIPHER) || + ((transform->psa_alg == PSA_ALG_CBC_NO_PADDING) #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - && ( transform->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED ) + && (transform->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED) #endif - ) ) + )) { /* mbedtls_ct_hmac() requires the key to be exportable */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT | - PSA_KEY_USAGE_VERIFY_HASH ); - else - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT | + PSA_KEY_USAGE_VERIFY_HASH); + } else { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + } - if( ( status = psa_import_key( &attributes, - mac_dec, mac_key_len, - &transform->psa_mac_dec ) ) != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_mac_key", ret ); + if ((status = psa_import_key(&attributes, + mac_dec, mac_key_len, + &transform->psa_mac_dec)) != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_mac_key", ret); goto end; } #else - ret = mbedtls_md_hmac_starts( &transform->md_ctx_enc, mac_enc, mac_key_len ); - if( ret != 0 ) + ret = mbedtls_md_hmac_starts(&transform->md_ctx_enc, mac_enc, mac_key_len); + if (ret != 0) { goto end; - ret = mbedtls_md_hmac_starts( &transform->md_ctx_dec, mac_dec, mac_key_len ); - if( ret != 0 ) + } + ret = mbedtls_md_hmac_starts(&transform->md_ctx_dec, mac_dec, mac_key_len); + if (ret != 0) { goto end; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_SSL_SOME_SUITES_USE_MAC */ @@ -8620,16 +8462,16 @@ static int ssl_tls12_populate_transform( mbedtls_ssl_transform *transform, ((void) mac_enc); end: - mbedtls_platform_zeroize( keyblk, sizeof( keyblk ) ); - return( ret ); + mbedtls_platform_zeroize(keyblk, sizeof(keyblk)); + return ret; } #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) int mbedtls_psa_ecjpake_read_round( - psa_pake_operation_t *pake_ctx, - const unsigned char *buf, - size_t len, mbedtls_ecjpake_rounds_t round ) + psa_pake_operation_t *pake_ctx, + const unsigned char *buf, + size_t len, mbedtls_ecjpake_rounds_t round) { psa_status_t status; size_t input_offset = 0; @@ -8637,45 +8479,42 @@ int mbedtls_psa_ecjpake_read_round( * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice * At round two perform a single cycle */ - unsigned int remaining_steps = ( round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; + unsigned int remaining_steps = (round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; - for( ; remaining_steps > 0; remaining_steps-- ) - { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; + for (; remaining_steps > 0; remaining_steps--) { + for (psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; step <= PSA_PAKE_STEP_ZK_PROOF; - ++step ) - { + ++step) { /* Length is stored at the first byte */ size_t length = buf[input_offset]; input_offset += 1; - if( input_offset + length > len ) - { + if (input_offset + length > len) { return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - status = psa_pake_input( pake_ctx, step, - buf + input_offset, length ); - if( status != PSA_SUCCESS) - { - return psa_ssl_status_to_mbedtls( status ); + status = psa_pake_input(pake_ctx, step, + buf + input_offset, length); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); } input_offset += length; } } - if( input_offset != len ) + if (input_offset != len) { return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } - return( 0 ); + return 0; } int mbedtls_psa_ecjpake_write_round( - psa_pake_operation_t *pake_ctx, - unsigned char *buf, - size_t len, size_t *olen, - mbedtls_ecjpake_rounds_t round ) + psa_pake_operation_t *pake_ctx, + unsigned char *buf, + size_t len, size_t *olen, + mbedtls_ecjpake_rounds_t round) { psa_status_t status; size_t output_offset = 0; @@ -8684,25 +8523,22 @@ int mbedtls_psa_ecjpake_write_round( * At round one repeat the KEY_SHARE, ZK_PUBLIC & ZF_PROOF twice * At round two perform a single cycle */ - unsigned int remaining_steps = ( round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; + unsigned int remaining_steps = (round == MBEDTLS_ECJPAKE_ROUND_ONE) ? 2 : 1; - for( ; remaining_steps > 0; remaining_steps-- ) - { - for( psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; - step <= PSA_PAKE_STEP_ZK_PROOF; - ++step ) - { + for (; remaining_steps > 0; remaining_steps--) { + for (psa_pake_step_t step = PSA_PAKE_STEP_KEY_SHARE; + step <= PSA_PAKE_STEP_ZK_PROOF; + ++step) { /* * For each step, prepend 1 byte with the length of the data as * given by psa_pake_output(). */ - status = psa_pake_output( pake_ctx, step, - buf + output_offset + 1, - len - output_offset - 1, - &output_len ); - if( status != PSA_SUCCESS ) - { - return( psa_ssl_status_to_mbedtls( status ) ); + status = psa_pake_output(pake_ctx, step, + buf + output_offset + 1, + len - output_offset - 1, + &output_len); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); } *(buf + output_offset) = (uint8_t) output_len; @@ -8713,86 +8549,80 @@ int mbedtls_psa_ecjpake_write_round( *olen = output_offset; - return( 0 ); + return 0; } #endif //MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO #if defined(MBEDTLS_USE_PSA_CRYPTO) -int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl, - unsigned char *hash, size_t *hashlen, - unsigned char *data, size_t data_len, - mbedtls_md_type_t md_alg ) +int mbedtls_ssl_get_key_exchange_md_tls1_2(mbedtls_ssl_context *ssl, + unsigned char *hash, size_t *hashlen, + unsigned char *data, size_t data_len, + mbedtls_md_type_t md_alg) { psa_status_t status; psa_hash_operation_t hash_operation = PSA_HASH_OPERATION_INIT; - psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md( md_alg ); + psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md(md_alg); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Perform PSA-based computation of digest of ServerKeyExchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Perform PSA-based computation of digest of ServerKeyExchange")); - if( ( status = psa_hash_setup( &hash_operation, - hash_alg ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_hash_setup", status ); + if ((status = psa_hash_setup(&hash_operation, + hash_alg)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_hash_setup", status); goto exit; } - if( ( status = psa_hash_update( &hash_operation, ssl->handshake->randbytes, - 64 ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_hash_update", status ); + if ((status = psa_hash_update(&hash_operation, ssl->handshake->randbytes, + 64)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_hash_update", status); goto exit; } - if( ( status = psa_hash_update( &hash_operation, - data, data_len ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_hash_update", status ); + if ((status = psa_hash_update(&hash_operation, + data, data_len)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_hash_update", status); goto exit; } - if( ( status = psa_hash_finish( &hash_operation, hash, PSA_HASH_MAX_SIZE, - hashlen ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_hash_finish", status ); - goto exit; + if ((status = psa_hash_finish(&hash_operation, hash, PSA_HASH_MAX_SIZE, + hashlen)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_hash_finish", status); + goto exit; } exit: - if( status != PSA_SUCCESS ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); - switch( status ) - { + if (status != PSA_SUCCESS) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + switch (status) { case PSA_ERROR_NOT_SUPPORTED: - return( MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE; case PSA_ERROR_BAD_STATE: /* Intentional fallthrough */ case PSA_ERROR_BUFFER_TOO_SMALL: - return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + return MBEDTLS_ERR_MD_BAD_INPUT_DATA; case PSA_ERROR_INSUFFICIENT_MEMORY: - return( MBEDTLS_ERR_MD_ALLOC_FAILED ); + return MBEDTLS_ERR_MD_ALLOC_FAILED; default: - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } } - return( 0 ); + return 0; } #else -int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl, - unsigned char *hash, size_t *hashlen, - unsigned char *data, size_t data_len, - mbedtls_md_type_t md_alg ) +int mbedtls_ssl_get_key_exchange_md_tls1_2(mbedtls_ssl_context *ssl, + unsigned char *hash, size_t *hashlen, + unsigned char *data, size_t data_len, + mbedtls_md_type_t md_alg) { int ret = 0; mbedtls_md_context_t ctx; - const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type( md_alg ); - *hashlen = mbedtls_md_get_size( md_info ); + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_alg); + *hashlen = mbedtls_md_get_size(md_info); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Perform mbedtls-based computation of digest of ServerKeyExchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Perform mbedtls-based computation of digest of ServerKeyExchange")); - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); /* * digitally-signed struct { @@ -8801,40 +8631,36 @@ int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl, * ServerDHParams params; * }; */ - if( ( ret = mbedtls_md_setup( &ctx, md_info, 0 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_setup", ret ); + if ((ret = mbedtls_md_setup(&ctx, md_info, 0)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_setup", ret); goto exit; } - if( ( ret = mbedtls_md_starts( &ctx ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_starts", ret ); + if ((ret = mbedtls_md_starts(&ctx)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_starts", ret); goto exit; } - if( ( ret = mbedtls_md_update( &ctx, ssl->handshake->randbytes, 64 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_update", ret ); + if ((ret = mbedtls_md_update(&ctx, ssl->handshake->randbytes, 64)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_update", ret); goto exit; } - if( ( ret = mbedtls_md_update( &ctx, data, data_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_update", ret ); + if ((ret = mbedtls_md_update(&ctx, data, data_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_update", ret); goto exit; } - if( ( ret = mbedtls_md_finish( &ctx, hash ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_md_finish", ret ); + if ((ret = mbedtls_md_finish(&ctx, hash)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_md_finish", ret); goto exit; } exit: - mbedtls_md_free( &ctx ); + mbedtls_md_free(&ctx); - if( ret != 0 ) - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); + if (ret != 0) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + } - return( ret ); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -8842,52 +8668,52 @@ exit: /* Find the preferred hash for a given signature algorithm. */ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( - mbedtls_ssl_context *ssl, - unsigned int sig_alg ) + mbedtls_ssl_context *ssl, + unsigned int sig_alg) { unsigned int i; uint16_t *received_sig_algs = ssl->handshake->received_sig_algs; - if( sig_alg == MBEDTLS_SSL_SIG_ANON ) - return( MBEDTLS_SSL_HASH_NONE ); + if (sig_alg == MBEDTLS_SSL_SIG_ANON) { + return MBEDTLS_SSL_HASH_NONE; + } - for( i = 0; received_sig_algs[i] != MBEDTLS_TLS_SIG_NONE; i++ ) - { + for (i = 0; received_sig_algs[i] != MBEDTLS_TLS_SIG_NONE; i++) { unsigned int hash_alg_received = - MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG( - received_sig_algs[i] ); + MBEDTLS_SSL_TLS12_HASH_ALG_FROM_SIG_AND_HASH_ALG( + received_sig_algs[i]); unsigned int sig_alg_received = - MBEDTLS_SSL_TLS12_SIG_ALG_FROM_SIG_AND_HASH_ALG( - received_sig_algs[i] ); + MBEDTLS_SSL_TLS12_SIG_ALG_FROM_SIG_AND_HASH_ALG( + received_sig_algs[i]); - if( sig_alg == sig_alg_received ) - { + if (sig_alg == sig_alg_received) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ssl->handshake->key_cert && ssl->handshake->key_cert->key ) - { + if (ssl->handshake->key_cert && ssl->handshake->key_cert->key) { psa_algorithm_t psa_hash_alg = - mbedtls_hash_info_psa_from_md( hash_alg_received ); + mbedtls_hash_info_psa_from_md(hash_alg_received); - if( sig_alg_received == MBEDTLS_SSL_SIG_ECDSA && - ! mbedtls_pk_can_do_ext( ssl->handshake->key_cert->key, - PSA_ALG_ECDSA( psa_hash_alg ), - PSA_KEY_USAGE_SIGN_HASH ) ) + if (sig_alg_received == MBEDTLS_SSL_SIG_ECDSA && + !mbedtls_pk_can_do_ext(ssl->handshake->key_cert->key, + PSA_ALG_ECDSA(psa_hash_alg), + PSA_KEY_USAGE_SIGN_HASH)) { continue; + } - if( sig_alg_received == MBEDTLS_SSL_SIG_RSA && - ! mbedtls_pk_can_do_ext( ssl->handshake->key_cert->key, - PSA_ALG_RSA_PKCS1V15_SIGN( - psa_hash_alg ), - PSA_KEY_USAGE_SIGN_HASH ) ) + if (sig_alg_received == MBEDTLS_SSL_SIG_RSA && + !mbedtls_pk_can_do_ext(ssl->handshake->key_cert->key, + PSA_ALG_RSA_PKCS1V15_SIGN( + psa_hash_alg), + PSA_KEY_USAGE_SIGN_HASH)) { continue; + } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( hash_alg_received ); + return hash_alg_received; } } - return( MBEDTLS_SSL_HASH_NONE ); + return MBEDTLS_SSL_HASH_NONE; } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ @@ -8909,9 +8735,9 @@ unsigned int mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( * } serialized_session_tls12; * */ -static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, - unsigned char *buf, - size_t buf_len ) +static size_t ssl_tls12_session_save(const mbedtls_ssl_session *session, + unsigned char *buf, + size_t buf_len) { unsigned char *p = buf; size_t used = 0; @@ -8931,11 +8757,10 @@ static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_HAVE_TIME) used += 8; - if( used <= buf_len ) - { + if (used <= buf_len) { start = (uint64_t) session->start; - MBEDTLS_PUT_UINT64_BE( start, p, 0 ); + MBEDTLS_PUT_UINT64_BE(start, p, 0); p += 8; } #endif /* MBEDTLS_HAVE_TIME */ @@ -8944,24 +8769,23 @@ static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, * Basic mandatory fields */ used += 2 /* ciphersuite */ - + 1 /* id_len */ - + sizeof( session->id ) - + sizeof( session->master ) - + 4; /* verify_result */ + + 1 /* id_len */ + + sizeof(session->id) + + sizeof(session->master) + + 4; /* verify_result */ - if( used <= buf_len ) - { - MBEDTLS_PUT_UINT16_BE( session->ciphersuite, p, 0 ); + if (used <= buf_len) { + MBEDTLS_PUT_UINT16_BE(session->ciphersuite, p, 0); p += 2; - *p++ = MBEDTLS_BYTE_0( session->id_len ); - memcpy( p, session->id, 32 ); + *p++ = MBEDTLS_BYTE_0(session->id_len); + memcpy(p, session->id, 32); p += 32; - memcpy( p, session->master, 48 ); + memcpy(p, session->master, 48); p += 48; - MBEDTLS_PUT_UINT32_BE( session->verify_result, p, 0 ); + MBEDTLS_PUT_UINT32_BE(session->verify_result, p, 0); p += 4; } @@ -8970,43 +8794,37 @@ static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, */ #if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - if( session->peer_cert == NULL ) + if (session->peer_cert == NULL) { cert_len = 0; - else + } else { cert_len = session->peer_cert->raw.len; + } used += 3 + cert_len; - if( used <= buf_len ) - { - *p++ = MBEDTLS_BYTE_2( cert_len ); - *p++ = MBEDTLS_BYTE_1( cert_len ); - *p++ = MBEDTLS_BYTE_0( cert_len ); + if (used <= buf_len) { + *p++ = MBEDTLS_BYTE_2(cert_len); + *p++ = MBEDTLS_BYTE_1(cert_len); + *p++ = MBEDTLS_BYTE_0(cert_len); - if( session->peer_cert != NULL ) - { - memcpy( p, session->peer_cert->raw.p, cert_len ); + if (session->peer_cert != NULL) { + memcpy(p, session->peer_cert->raw.p, cert_len); p += cert_len; } } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( session->peer_cert_digest != NULL ) - { + if (session->peer_cert_digest != NULL) { used += 1 /* type */ + 1 /* length */ + session->peer_cert_digest_len; - if( used <= buf_len ) - { + if (used <= buf_len) { *p++ = (unsigned char) session->peer_cert_digest_type; *p++ = (unsigned char) session->peer_cert_digest_len; - memcpy( p, session->peer_cert_digest, - session->peer_cert_digest_len ); + memcpy(p, session->peer_cert_digest, + session->peer_cert_digest_len); p += session->peer_cert_digest_len; } - } - else - { + } else { used += 2; - if( used <= buf_len ) - { + if (used <= buf_len) { *p++ = (unsigned char) MBEDTLS_MD_NONE; *p++ = 0; } @@ -9020,19 +8838,17 @@ static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) used += 3 + session->ticket_len + 4; /* len + ticket + lifetime */ - if( used <= buf_len ) - { - *p++ = MBEDTLS_BYTE_2( session->ticket_len ); - *p++ = MBEDTLS_BYTE_1( session->ticket_len ); - *p++ = MBEDTLS_BYTE_0( session->ticket_len ); + if (used <= buf_len) { + *p++ = MBEDTLS_BYTE_2(session->ticket_len); + *p++ = MBEDTLS_BYTE_1(session->ticket_len); + *p++ = MBEDTLS_BYTE_0(session->ticket_len); - if( session->ticket != NULL ) - { - memcpy( p, session->ticket, session->ticket_len ); + if (session->ticket != NULL) { + memcpy(p, session->ticket, session->ticket_len); p += session->ticket_len; } - MBEDTLS_PUT_UINT32_BE( session->ticket_lifetime, p, 0 ); + MBEDTLS_PUT_UINT32_BE(session->ticket_lifetime, p, 0); p += 4; } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ @@ -9043,24 +8859,26 @@ static size_t ssl_tls12_session_save( const mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) used += 1; - if( used <= buf_len ) + if (used <= buf_len) { *p++ = session->mfl_code; + } #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) used += 1; - if( used <= buf_len ) - *p++ = MBEDTLS_BYTE_0( session->encrypt_then_mac ); + if (used <= buf_len) { + *p++ = MBEDTLS_BYTE_0(session->encrypt_then_mac); + } #endif - return( used ); + return used; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls12_session_load( mbedtls_ssl_session *session, - const unsigned char *buf, - size_t len ) +static int ssl_tls12_session_load(mbedtls_ssl_session *session, + const unsigned char *buf, + size_t len) { #if defined(MBEDTLS_HAVE_TIME) uint64_t start; @@ -9078,17 +8896,18 @@ static int ssl_tls12_session_load( mbedtls_ssl_session *session, * Time */ #if defined(MBEDTLS_HAVE_TIME) - if( 8 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (8 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - start = ( (uint64_t) p[0] << 56 ) | - ( (uint64_t) p[1] << 48 ) | - ( (uint64_t) p[2] << 40 ) | - ( (uint64_t) p[3] << 32 ) | - ( (uint64_t) p[4] << 24 ) | - ( (uint64_t) p[5] << 16 ) | - ( (uint64_t) p[6] << 8 ) | - ( (uint64_t) p[7] ); + start = ((uint64_t) p[0] << 56) | + ((uint64_t) p[1] << 48) | + ((uint64_t) p[2] << 40) | + ((uint64_t) p[3] << 32) | + ((uint64_t) p[4] << 24) | + ((uint64_t) p[5] << 16) | + ((uint64_t) p[6] << 8) | + ((uint64_t) p[7]); p += 8; session->start = (time_t) start; @@ -9097,23 +8916,24 @@ static int ssl_tls12_session_load( mbedtls_ssl_session *session, /* * Basic mandatory fields */ - if( 2 + 1 + 32 + 48 + 4 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (2 + 1 + 32 + 48 + 4 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session->ciphersuite = ( p[0] << 8 ) | p[1]; + session->ciphersuite = (p[0] << 8) | p[1]; p += 2; session->id_len = *p++; - memcpy( session->id, p, 32 ); + memcpy(session->id, p, 32); p += 32; - memcpy( session->master, p, 48 ); + memcpy(session->master, p, 48); p += 48; - session->verify_result = ( (uint32_t) p[0] << 24 ) | - ( (uint32_t) p[1] << 16 ) | - ( (uint32_t) p[2] << 8 ) | - ( (uint32_t) p[3] ); + session->verify_result = ((uint32_t) p[0] << 24) | + ((uint32_t) p[1] << 16) | + ((uint32_t) p[2] << 8) | + ((uint32_t) p[3]); p += 4; /* Immediately clear invalid pointer values that have been read, in case @@ -9135,64 +8955,69 @@ static int ssl_tls12_session_load( mbedtls_ssl_session *session, #if defined(MBEDTLS_X509_CRT_PARSE_C) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* Deserialize CRT from the end of the ticket. */ - if( 3 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (3 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - cert_len = ( p[0] << 16 ) | ( p[1] << 8 ) | p[2]; + cert_len = (p[0] << 16) | (p[1] << 8) | p[2]; p += 3; - if( cert_len != 0 ) - { + if (cert_len != 0) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( cert_len > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (cert_len > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session->peer_cert = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ); + session->peer_cert = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); - if( session->peer_cert == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if (session->peer_cert == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - mbedtls_x509_crt_init( session->peer_cert ); + mbedtls_x509_crt_init(session->peer_cert); - if( ( ret = mbedtls_x509_crt_parse_der( session->peer_cert, - p, cert_len ) ) != 0 ) - { - mbedtls_x509_crt_free( session->peer_cert ); - mbedtls_free( session->peer_cert ); + if ((ret = mbedtls_x509_crt_parse_der(session->peer_cert, + p, cert_len)) != 0) { + mbedtls_x509_crt_free(session->peer_cert); + mbedtls_free(session->peer_cert); session->peer_cert = NULL; - return( ret ); + return ret; } p += cert_len; } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ /* Deserialize CRT digest from the end of the ticket. */ - if( 2 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (2 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->peer_cert_digest_type = (mbedtls_md_type_t) *p++; session->peer_cert_digest_len = (size_t) *p++; - if( session->peer_cert_digest_len != 0 ) - { + if (session->peer_cert_digest_len != 0) { const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_type( session->peer_cert_digest_type ); - if( md_info == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( session->peer_cert_digest_len != mbedtls_md_get_size( md_info ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + mbedtls_md_info_from_type(session->peer_cert_digest_type); + if (md_info == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + if (session->peer_cert_digest_len != mbedtls_md_get_size(md_info)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - if( session->peer_cert_digest_len > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (session->peer_cert_digest_len > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->peer_cert_digest = - mbedtls_calloc( 1, session->peer_cert_digest_len ); - if( session->peer_cert_digest == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + mbedtls_calloc(1, session->peer_cert_digest_len); + if (session->peer_cert_digest == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( session->peer_cert_digest, p, - session->peer_cert_digest_len ); + memcpy(session->peer_cert_digest, p, + session->peer_cert_digest_len); p += session->peer_cert_digest_len; } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ @@ -9202,32 +9027,35 @@ static int ssl_tls12_session_load( mbedtls_ssl_session *session, * Session ticket and associated data */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( 3 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (3 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session->ticket_len = ( p[0] << 16 ) | ( p[1] << 8 ) | p[2]; + session->ticket_len = (p[0] << 16) | (p[1] << 8) | p[2]; p += 3; - if( session->ticket_len != 0 ) - { - if( session->ticket_len > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (session->ticket_len != 0) { + if (session->ticket_len > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session->ticket = mbedtls_calloc( 1, session->ticket_len ); - if( session->ticket == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + session->ticket = mbedtls_calloc(1, session->ticket_len); + if (session->ticket == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( session->ticket, p, session->ticket_len ); + memcpy(session->ticket, p, session->ticket_len); p += session->ticket_len; } - if( 4 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (4 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - session->ticket_lifetime = ( (uint32_t) p[0] << 24 ) | - ( (uint32_t) p[1] << 16 ) | - ( (uint32_t) p[2] << 8 ) | - ( (uint32_t) p[3] ); + session->ticket_lifetime = ((uint32_t) p[0] << 24) | + ((uint32_t) p[1] << 16) | + ((uint32_t) p[2] << 8) | + ((uint32_t) p[3]); p += 4; #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_SSL_CLI_C */ @@ -9235,24 +9063,27 @@ static int ssl_tls12_session_load( mbedtls_ssl_session *session, * Misc extension-related info */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - if( 1 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (1 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->mfl_code = *p++; #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( 1 > (size_t)( end - p ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (1 > (size_t) (end - p)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } session->encrypt_then_mac = *p++; #endif /* Done, should have consumed entire buffer */ - if( p != end ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (p != end) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ @@ -9260,44 +9091,43 @@ int mbedtls_ssl_validate_ciphersuite( const mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *suite_info, mbedtls_ssl_protocol_version min_tls_version, - mbedtls_ssl_protocol_version max_tls_version ) + mbedtls_ssl_protocol_version max_tls_version) { (void) ssl; - if( suite_info == NULL ) - return( -1 ); + if (suite_info == NULL) { + return -1; + } - if( ( suite_info->min_tls_version > max_tls_version ) || - ( suite_info->max_tls_version < min_tls_version ) ) - { - return( -1 ); + if ((suite_info->min_tls_version > max_tls_version) || + (suite_info->max_tls_version < min_tls_version)) { + return -1; } #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && defined(MBEDTLS_SSL_CLI_C) #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && - ssl->handshake->psa_pake_ctx_is_ok != 1 ) + if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && + ssl->handshake->psa_pake_ctx_is_ok != 1) #else - if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && - mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) + if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && + mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0) #endif /* MBEDTLS_USE_PSA_CRYPTO */ { - return( -1 ); + return -1; } #endif /* Don't suggest PSK-based ciphersuite if no PSK is available. */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_psk( suite_info ) && - mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 0 ) - { - return( -1 ); + if (mbedtls_ssl_ciphersuite_uses_psk(suite_info) && + mbedtls_ssl_conf_has_static_psk(ssl->conf) == 0) { + return -1; } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) @@ -9342,8 +9172,8 @@ int mbedtls_ssl_validate_ciphersuite( * `SignatureScheme` field of TLS 1.3 * */ -int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, - const unsigned char *end, size_t *out_len ) +int mbedtls_ssl_write_sig_alg_ext(mbedtls_ssl_context *ssl, unsigned char *buf, + const unsigned char *end, size_t *out_len) { unsigned char *p = buf; unsigned char *supported_sig_alg; /* Start of supported_signature_algorithms */ @@ -9351,58 +9181,58 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding signature_algorithms extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("adding signature_algorithms extension")); /* Check if we have space for header and length field: * - extension_type (2 bytes) * - extension_data_length (2 bytes) * - supported_signature_algorithms_length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); p += 6; /* * Write supported_signature_algorithms */ supported_sig_alg = p; - const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); - if( sig_alg == NULL ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs(ssl); + if (sig_alg == NULL) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++ ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "got signature scheme [%x] %s", - *sig_alg, - mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); - if( ! mbedtls_ssl_sig_alg_is_supported( ssl, *sig_alg ) ) + for (; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++) { + MBEDTLS_SSL_DEBUG_MSG(3, ("got signature scheme [%x] %s", + *sig_alg, + mbedtls_ssl_sig_alg_to_str(*sig_alg))); + if (!mbedtls_ssl_sig_alg_is_supported(ssl, *sig_alg)) { continue; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( *sig_alg, p, 0 ); + } + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(*sig_alg, p, 0); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "sent signature scheme [%x] %s", - *sig_alg, - mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("sent signature scheme [%x] %s", + *sig_alg, + mbedtls_ssl_sig_alg_to_str(*sig_alg))); } /* Length of supported_signature_algorithms */ supported_sig_alg_len = p - supported_sig_alg; - if( supported_sig_alg_len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "No signature algorithms defined." ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (supported_sig_alg_len == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("No signature algorithms defined.")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SIG_ALG, buf, 0 ); - MBEDTLS_PUT_UINT16_BE( supported_sig_alg_len + 2, buf, 2 ); - MBEDTLS_PUT_UINT16_BE( supported_sig_alg_len, buf, 4 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SIG_ALG, buf, 0); + MBEDTLS_PUT_UINT16_BE(supported_sig_alg_len + 2, buf, 2); + MBEDTLS_PUT_UINT16_BE(supported_sig_alg_len, buf, 4); *out_len = p - buf; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_SIG_ALG); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -9428,32 +9258,30 @@ int mbedtls_ssl_write_sig_alg_ext( mbedtls_ssl_context *ssl, unsigned char *buf, * } ServerNameList; */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_server_name_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +int mbedtls_ssl_parse_server_name_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; size_t server_name_list_len, hostname_len; const unsigned char *server_name_list_end; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "parse ServerName extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("parse ServerName extension")); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - server_name_list_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + server_name_list_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, server_name_list_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, server_name_list_len); server_name_list_end = p + server_name_list_len; - while( p < server_name_list_end ) - { - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, server_name_list_end, 3 ); - hostname_len = MBEDTLS_GET_UINT16_BE( p, 1 ); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, server_name_list_end, - hostname_len + 3 ); + while (p < server_name_list_end) { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, server_name_list_end, 3); + hostname_len = MBEDTLS_GET_UINT16_BE(p, 1); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, server_name_list_end, + hostname_len + 3); - if( p[0] == MBEDTLS_TLS_EXT_SERVERNAME_HOSTNAME ) - { + if (p[0] == MBEDTLS_TLS_EXT_SERVERNAME_HOSTNAME) { /* sni_name is intended to be used only during the parsing of the * ClientHello message (it is reset to NULL before the end of * the message parsing). Thus it is ok to just point to the @@ -9461,32 +9289,32 @@ int mbedtls_ssl_parse_server_name_ext( mbedtls_ssl_context *ssl, */ ssl->handshake->sni_name = p + 3; ssl->handshake->sni_name_len = hostname_len; - if( ssl->conf->f_sni == NULL ) - return( 0 ); - ret = ssl->conf->f_sni( ssl->conf->p_sni, - ssl, p + 3, hostname_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_sni_wrapper", ret ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNRECOGNIZED_NAME, - MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME ); - return( MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME ); + if (ssl->conf->f_sni == NULL) { + return 0; } - return( 0 ); + ret = ssl->conf->f_sni(ssl->conf->p_sni, + ssl, p + 3, hostname_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_sni_wrapper", ret); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNRECOGNIZED_NAME, + MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME); + return MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME; + } + return 0; } p += hostname_len + 3; } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_ALPN) MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +int mbedtls_ssl_parse_alpn_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { const unsigned char *p = buf; size_t protocol_name_list_len; @@ -9495,8 +9323,9 @@ int mbedtls_ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, size_t protocol_name_len; /* If ALPN not configured, just ignore the extension */ - if( ssl->conf->alpn_list == NULL ) - return( 0 ); + if (ssl->conf->alpn_list == NULL) { + return 0; + } /* * RFC7301, section 3.1 @@ -9512,44 +9341,39 @@ int mbedtls_ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, * protocol_name_len 1 bytes * protocol_name >=1 byte */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 4); - protocol_name_list_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + protocol_name_list_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, protocol_name_list_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, protocol_name_list_len); protocol_name_list = p; protocol_name_list_end = p + protocol_name_list_len; /* Validate peer's list (lengths) */ - while( p < protocol_name_list_end ) - { + while (p < protocol_name_list_end) { protocol_name_len = *p++; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, protocol_name_list_end, - protocol_name_len ); - if( protocol_name_len == 0 ) - { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, protocol_name_list_end, + protocol_name_len); + if (protocol_name_len == 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } p += protocol_name_len; } /* Use our order of preference */ - for( const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++ ) - { - size_t const alpn_len = strlen( *alpn ); + for (const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) { + size_t const alpn_len = strlen(*alpn); p = protocol_name_list; - while( p < protocol_name_list_end ) - { + while (p < protocol_name_list_end) { protocol_name_len = *p++; - if( protocol_name_len == alpn_len && - memcmp( p, *alpn, alpn_len ) == 0 ) - { + if (protocol_name_len == alpn_len && + memcmp(p, *alpn, alpn_len) == 0) { ssl->alpn_chosen = *alpn; - return( 0 ); + return 0; } p += protocol_name_len; @@ -9558,29 +9382,28 @@ int mbedtls_ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, /* If we get here, no match was found */ MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_NO_APPLICATION_PROTOCOL, - MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL ); - return( MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL ); + MBEDTLS_SSL_ALERT_MSG_NO_APPLICATION_PROTOCOL, + MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL); + return MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL; } -int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +int mbedtls_ssl_write_alpn_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { unsigned char *p = buf; size_t protocol_name_len; *out_len = 0; - if( ssl->alpn_chosen == NULL ) - { - return( 0 ); + if (ssl->alpn_chosen == NULL) { + return 0; } - protocol_name_len = strlen( ssl->alpn_chosen ); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 7 + protocol_name_len ); + protocol_name_len = strlen(ssl->alpn_chosen); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 7 + protocol_name_len); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server side, adding alpn extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server side, adding alpn extension")); /* * 0 . 1 ext identifier * 2 . 3 ext length @@ -9588,24 +9411,24 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, * 6 . 6 protocol name length * 7 . 7+n protocol name */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ALPN, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ALPN, p, 0); *out_len = 7 + protocol_name_len; - MBEDTLS_PUT_UINT16_BE( protocol_name_len + 3, p, 2 ); - MBEDTLS_PUT_UINT16_BE( protocol_name_len + 1, p, 4 ); + MBEDTLS_PUT_UINT16_BE(protocol_name_len + 3, p, 2); + MBEDTLS_PUT_UINT16_BE(protocol_name_len + 1, p, 4); /* Note: the length of the chosen protocol has been checked to be less * than 255 bytes in `mbedtls_ssl_conf_alpn_protocols`. */ - p[6] = MBEDTLS_BYTE_0( protocol_name_len ); + p[6] = MBEDTLS_BYTE_0(protocol_name_len); - memcpy( p + 7, ssl->alpn_chosen, protocol_name_len ); + memcpy(p + 7, ssl->alpn_chosen, protocol_name_len); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_ALPN); #endif - return ( 0 ); + return 0; } #endif /* MBEDTLS_SSL_ALPN */ @@ -9613,46 +9436,43 @@ int mbedtls_ssl_write_alpn_ext( mbedtls_ssl_context *ssl, defined(MBEDTLS_SSL_SESSION_TICKETS) && \ defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \ defined(MBEDTLS_SSL_CLI_C) -int mbedtls_ssl_session_set_hostname( mbedtls_ssl_session *session, - const char *hostname ) +int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session, + const char *hostname) { /* Initialize to suppress unnecessary compiler warning */ size_t hostname_len = 0; /* Check if new hostname is valid before * making any change to current one */ - if( hostname != NULL ) - { - hostname_len = strlen( hostname ); + if (hostname != NULL) { + hostname_len = strlen(hostname); - if( hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (hostname_len > MBEDTLS_SSL_MAX_HOST_NAME_LEN) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } } /* Now it's clear that we will overwrite the old hostname, * so we can free it safely */ - if( session->hostname != NULL ) - { - mbedtls_platform_zeroize( session->hostname, - strlen( session->hostname ) ); - mbedtls_free( session->hostname ); + if (session->hostname != NULL) { + mbedtls_platform_zeroize(session->hostname, + strlen(session->hostname)); + mbedtls_free(session->hostname); } /* Passing NULL as hostname shall clear the old one */ - if( hostname == NULL ) - { + if (hostname == NULL) { session->hostname = NULL; - } - else - { - session->hostname = mbedtls_calloc( 1, hostname_len + 1 ); - if( session->hostname == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + } else { + session->hostname = mbedtls_calloc(1, hostname_len + 1); + if (session->hostname == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( session->hostname, hostname, hostname_len ); + memcpy(session->hostname, hostname, hostname_len); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS && diff --git a/library/ssl_tls12_client.c b/library/ssl_tls12_client.c index 30b648166..b427ae944 100644 --- a/library/ssl_tls12_client.c +++ b/library/ssl_tls12_client.c @@ -51,10 +51,10 @@ #if defined(MBEDTLS_SSL_RENEGOTIATION) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_renegotiation_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; @@ -63,29 +63,30 @@ static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, /* We're always including a TLS_EMPTY_RENEGOTIATION_INFO_SCSV in the * initial ClientHello, in which case also adding the renegotiation * info extension is NOT RECOMMENDED as per RFC 5746 Section 3.4. */ - if( ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - return( 0 ); + if (ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding renegotiation extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding renegotiation extension")); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 5 + ssl->verify_data_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 5 + ssl->verify_data_len); /* * Secure renegotiation */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_RENEGOTIATION_INFO, p, 0); p += 2; *p++ = 0x00; - *p++ = MBEDTLS_BYTE_0( ssl->verify_data_len + 1 ); - *p++ = MBEDTLS_BYTE_0( ssl->verify_data_len ); + *p++ = MBEDTLS_BYTE_0(ssl->verify_data_len + 1); + *p++ = MBEDTLS_BYTE_0(ssl->verify_data_len); - memcpy( p, ssl->own_verify_data, ssl->verify_data_len ); + memcpy(p, ssl->own_verify_data, ssl->verify_data_len); *olen = 5 + ssl->verify_data_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ @@ -93,21 +94,21 @@ static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_supported_point_formats_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; (void) ssl; /* ssl used for debugging only */ *olen = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding supported_point_formats extension" ) ); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding supported_point_formats extension")); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, p, 0); p += 2; *p++ = 0x00; @@ -118,17 +119,17 @@ static int ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, *olen = 6; - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -138,19 +139,21 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, /* Skip costly extension if we can't use EC J-PAKE anyway */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ssl->handshake->psa_pake_ctx_is_ok != 1 ) - return( 0 ); + if (ssl->handshake->psa_pake_ctx_is_ok != 1) { + return 0; + } #else - if( mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) - return( 0 ); + if (mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0) { + return 0; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding ecjpake_kkpp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding ecjpake_kkpp extension")); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0); p += 2; /* @@ -158,69 +161,63 @@ static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, * We don't want to compute fresh values every time (both for performance * and consistency reasons), so cache the extension content. */ - if( ssl->handshake->ecjpake_cache == NULL || - ssl->handshake->ecjpake_cache_len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); + if (ssl->handshake->ecjpake_cache == NULL || + ssl->handshake->ecjpake_cache_len == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("generating new ecjpake parameters")); #if defined(MBEDTLS_USE_PSA_CRYPTO) ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx, - p + 2, end - p - 2, &kkpp_len, - MBEDTLS_ECJPAKE_ROUND_ONE ); - if ( ret != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); - return( ret ); + p + 2, end - p - 2, &kkpp_len, + MBEDTLS_ECJPAKE_ROUND_ONE); + if (ret != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret); + return ret; } #else - ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, - p + 2, end - p - 2, &kkpp_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1 , - "mbedtls_ecjpake_write_round_one", ret ); - return( ret ); + ret = mbedtls_ecjpake_write_round_one(&ssl->handshake->ecjpake_ctx, + p + 2, end - p - 2, &kkpp_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ecjpake_write_round_one", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - ssl->handshake->ecjpake_cache = mbedtls_calloc( 1, kkpp_len ); - if( ssl->handshake->ecjpake_cache == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "allocation failed" ) ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + ssl->handshake->ecjpake_cache = mbedtls_calloc(1, kkpp_len); + if (ssl->handshake->ecjpake_cache == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("allocation failed")); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( ssl->handshake->ecjpake_cache, p + 2, kkpp_len ); + memcpy(ssl->handshake->ecjpake_cache, p + 2, kkpp_len); ssl->handshake->ecjpake_cache_len = kkpp_len; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "re-using cached ecjpake parameters" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(3, ("re-using cached ecjpake parameters")); kkpp_len = ssl->handshake->ecjpake_cache_len; - MBEDTLS_SSL_CHK_BUF_PTR( p + 2, end, kkpp_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p + 2, end, kkpp_len); - memcpy( p + 2, ssl->handshake->ecjpake_cache, kkpp_len ); + memcpy(p + 2, ssl->handshake->ecjpake_cache, kkpp_len); } - MBEDTLS_PUT_UINT16_BE( kkpp_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(kkpp_len, p, 0); p += 2; *olen = kkpp_len + 4; - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_cid_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_cid_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; size_t ext_len; @@ -229,56 +226,56 @@ static int ssl_write_cid_ext( mbedtls_ssl_context *ssl, * struct { * opaque cid<0..2^8-1>; * } ConnectionId; - */ + */ *olen = 0; - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || - ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED ) - { - return( 0 ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || + ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED) { + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding CID extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding CID extension")); /* ssl->own_cid_len is at most MBEDTLS_SSL_CID_IN_LEN_MAX * which is at most 255, so the increment cannot overflow. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, (unsigned)( ssl->own_cid_len + 5 ) ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, (unsigned) (ssl->own_cid_len + 5)); /* Add extension ID + size */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_CID, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_CID, p, 0); p += 2; ext_len = (size_t) ssl->own_cid_len + 1; - MBEDTLS_PUT_UINT16_BE( ext_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(ext_len, p, 0); p += 2; *p++ = (uint8_t) ssl->own_cid_len; - memcpy( p, ssl->own_cid, ssl->own_cid_len ); + memcpy(p, ssl->own_cid, ssl->own_cid_len); *olen = ssl->own_cid_len + 5; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_max_fragment_length_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; *olen = 0; - if( ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE ) - return( 0 ); + if (ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding max_fragment_length extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding max_fragment_length extension")); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 5 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 5); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, p, 0); p += 2; *p++ = 0x00; @@ -288,30 +285,31 @@ static int ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, *olen = 5; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_encrypt_then_mac_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; *olen = 0; - if( ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED ) - return( 0 ); + if (ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding encrypt_then_mac extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding encrypt_then_mac extension")); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, p, 0); p += 2; *p++ = 0x00; @@ -319,30 +317,31 @@ static int ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, *olen = 4; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_extended_ms_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; *olen = 0; - if( ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED ) - return( 0 ); + if (ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding extended_master_secret extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding extended_master_secret extension")); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, p, 0); p += 2; *p++ = 0x00; @@ -350,59 +349,61 @@ static int ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, *olen = 4; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_session_ticket_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; size_t tlen = ssl->session_negotiate->ticket_len; *olen = 0; - if( ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) - return( 0 ); + if (ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding session ticket extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding session ticket extension")); /* The addition is safe here since the ticket length is 16 bit. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 + tlen ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4 + tlen); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SESSION_TICKET, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SESSION_TICKET, p, 0); p += 2; - MBEDTLS_PUT_UINT16_BE( tlen, p, 0 ); + MBEDTLS_PUT_UINT16_BE(tlen, p, 0); p += 2; *olen = 4; - if( ssl->session_negotiate->ticket == NULL || tlen == 0 ) - return( 0 ); + if (ssl->session_negotiate->ticket == NULL || tlen == 0) { + return 0; + } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "sending session ticket of length %" MBEDTLS_PRINTF_SIZET, tlen ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("sending session ticket of length %" MBEDTLS_PRINTF_SIZET, tlen)); - memcpy( p, ssl->session_negotiate->ticket, tlen ); + memcpy(p, ssl->session_negotiate->ticket, tlen); *olen += tlen; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_SSL_DTLS_SRTP) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *olen ) +static int ssl_write_use_srtp_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen) { unsigned char *p = buf; size_t protection_profiles_index = 0, ext_len = 0; @@ -410,11 +411,10 @@ static int ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, *olen = 0; - if( ( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) || - ( ssl->conf->dtls_srtp_profile_list == NULL ) || - ( ssl->conf->dtls_srtp_profile_list_len == 0 ) ) - { - return( 0 ); + if ((ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) || + (ssl->conf->dtls_srtp_profile_list == NULL) || + (ssl->conf->dtls_srtp_profile_list_len == 0)) { + return 0; } /* RFC 5764 section 4.1.1 @@ -426,28 +426,27 @@ static int ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, * } UseSRTPData; * SRTPProtectionProfile SRTPProtectionProfiles<2..2^16-1>; */ - if( ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED ) - { + if (ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED) { mki_len = ssl->dtls_srtp_info.mki_len; } /* Extension length = 2 bytes for profiles length, * ssl->conf->dtls_srtp_profile_list_len * 2 (each profile is 2 bytes length ), * 1 byte for srtp_mki vector length and the mki_len value */ - ext_len = 2 + 2 * ( ssl->conf->dtls_srtp_profile_list_len ) + 1 + mki_len; + ext_len = 2 + 2 * (ssl->conf->dtls_srtp_profile_list_len) + 1 + mki_len; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding use_srtp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding use_srtp extension")); /* Check there is room in the buffer for the extension + 4 bytes * - the extension tag (2 bytes) * - the extension length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, ext_len + 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, ext_len + 4); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_USE_SRTP, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_USE_SRTP, p, 0); p += 2; - MBEDTLS_PUT_UINT16_BE( ext_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(ext_len, p, 0); p += 2; /* protection profile length: 2*(ssl->conf->dtls_srtp_profile_list_len) */ @@ -459,47 +458,42 @@ static int ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, * >> 8 ) & 0xFF ); */ *p++ = 0; - *p++ = MBEDTLS_BYTE_0( 2 * ssl->conf->dtls_srtp_profile_list_len ); + *p++ = MBEDTLS_BYTE_0(2 * ssl->conf->dtls_srtp_profile_list_len); - for( protection_profiles_index=0; + for (protection_profiles_index = 0; protection_profiles_index < ssl->conf->dtls_srtp_profile_list_len; - protection_profiles_index++ ) - { + protection_profiles_index++) { profile_value = mbedtls_ssl_check_srtp_profile_value - ( ssl->conf->dtls_srtp_profile_list[protection_profiles_index] ); - if( profile_value != MBEDTLS_TLS_SRTP_UNSET ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ssl_write_use_srtp_ext, add profile: %04x", - profile_value ) ); - MBEDTLS_PUT_UINT16_BE( profile_value, p, 0 ); + (ssl->conf->dtls_srtp_profile_list[protection_profiles_index]); + if (profile_value != MBEDTLS_TLS_SRTP_UNSET) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ssl_write_use_srtp_ext, add profile: %04x", + profile_value)); + MBEDTLS_PUT_UINT16_BE(profile_value, p, 0); p += 2; - } - else - { + } else { /* * Note: we shall never arrive here as protection profiles * is checked by mbedtls_ssl_conf_dtls_srtp_protection_profiles function */ - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, " - "illegal DTLS-SRTP protection profile %d", - ssl->conf->dtls_srtp_profile_list[protection_profiles_index] - ) ); - return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, " + "illegal DTLS-SRTP protection profile %d", + ssl->conf->dtls_srtp_profile_list[protection_profiles_index] + )); + return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; } } *p++ = mki_len & 0xFF; - if( mki_len != 0 ) - { - memcpy( p, ssl->dtls_srtp_info.mki_value, mki_len ); + if (mki_len != 0) { + memcpy(p, ssl->dtls_srtp_info.mki_value, mki_len); /* * Increment p to point to the current position. */ p += mki_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "sending mki", ssl->dtls_srtp_info.mki_value, - ssl->dtls_srtp_info.mki_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "sending mki", ssl->dtls_srtp_info.mki_value, + ssl->dtls_srtp_info.mki_len); } /* @@ -512,15 +506,15 @@ static int ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, */ *olen = p - buf; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -int mbedtls_ssl_tls12_write_client_hello_exts( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - int uses_ec, - size_t *out_len ) +int mbedtls_ssl_tls12_write_client_hello_exts(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + int uses_ec, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -537,425 +531,396 @@ int mbedtls_ssl_tls12_write_client_hello_exts( mbedtls_ssl_context *ssl, /* Note that TLS_EMPTY_RENEGOTIATION_INFO_SCSV is always added * even if MBEDTLS_SSL_RENEGOTIATION is not defined. */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ( ret = ssl_write_renegotiation_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_renegotiation_ext", ret ); - return( ret ); + if ((ret = ssl_write_renegotiation_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_renegotiation_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( uses_ec ) - { - if( ( ret = ssl_write_supported_point_formats_ext( ssl, p, end, - &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_supported_point_formats_ext", ret ); - return( ret ); + if (uses_ec) { + if ((ret = ssl_write_supported_point_formats_ext(ssl, p, end, + &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_supported_point_formats_ext", ret); + return ret; } p += ext_len; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( ( ret = ssl_write_ecjpake_kkpp_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_ecjpake_kkpp_ext", ret ); - return( ret ); + if ((ret = ssl_write_ecjpake_kkpp_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_ecjpake_kkpp_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( ( ret = ssl_write_cid_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_cid_ext", ret ); - return( ret ); + if ((ret = ssl_write_cid_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_cid_ext", ret); + return ret; } p += ext_len; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - if( ( ret = ssl_write_max_fragment_length_ext( ssl, p, end, - &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_max_fragment_length_ext", ret ); - return( ret ); + if ((ret = ssl_write_max_fragment_length_ext(ssl, p, end, + &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_max_fragment_length_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( ( ret = ssl_write_encrypt_then_mac_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_encrypt_then_mac_ext", ret ); - return( ret ); + if ((ret = ssl_write_encrypt_then_mac_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_encrypt_then_mac_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - if( ( ret = ssl_write_extended_ms_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_extended_ms_ext", ret ); - return( ret ); + if ((ret = ssl_write_extended_ms_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_extended_ms_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) - if( ( ret = ssl_write_use_srtp_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_use_srtp_ext", ret ); - return( ret ); + if ((ret = ssl_write_use_srtp_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_use_srtp_ext", ret); + return ret; } p += ext_len; #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ( ret = ssl_write_session_ticket_ext( ssl, p, end, &ext_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_session_ticket_ext", ret ); - return( ret ); + if ((ret = ssl_write_session_ticket_ext(ssl, p, end, &ext_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_write_session_ticket_ext", ret); + return ret; } p += ext_len; #endif *out_len = p - buf; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_renegotiation_info( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_renegotiation_info(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) - { + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { /* Check verify-data in constant-time. The length OTOH is no secret */ - if( len != 1 + ssl->verify_data_len * 2 || + if (len != 1 + ssl->verify_data_len * 2 || buf[0] != ssl->verify_data_len * 2 || - mbedtls_ct_memcmp( buf + 1, - ssl->own_verify_data, ssl->verify_data_len ) != 0 || - mbedtls_ct_memcmp( buf + 1 + ssl->verify_data_len, - ssl->peer_verify_data, ssl->verify_data_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching renegotiation info" ) ); + mbedtls_ct_memcmp(buf + 1, + ssl->own_verify_data, ssl->verify_data_len) != 0 || + mbedtls_ct_memcmp(buf + 1 + ssl->verify_data_len, + ssl->peer_verify_data, ssl->verify_data_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("non-matching renegotiation info")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - } - else + } else #endif /* MBEDTLS_SSL_RENEGOTIATION */ { - if( len != 1 || buf[0] != 0x00 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-zero length renegotiation info" ) ); + if (len != 1 || buf[0] != 0x00) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-zero length renegotiation info")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } ssl->secure_renegotiation = MBEDTLS_SSL_SECURE_RENEGOTIATION; } - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_max_fragment_length_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_max_fragment_length_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { /* * server should use the extension only if we did, * and if so the server's value should match ours (and len is always 1) */ - if( ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE || + if (ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE || len != 1 || - buf[0] != ssl->conf->mfl_code ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-matching max fragment length extension" ) ); + buf[0] != ssl->conf->mfl_code) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-matching max fragment length extension")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_cid_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_cid_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { size_t peer_cid_len; - if( /* CID extension only makes sense in DTLS */ + if ( /* CID extension only makes sense in DTLS */ ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || /* The server must only send the CID extension if we have offered it. */ - ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "CID extension unexpected" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("CID extension unexpected")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } - if( len == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "CID extension invalid" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("CID extension invalid")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } peer_cid_len = *buf++; len--; - if( peer_cid_len > MBEDTLS_SSL_CID_OUT_LEN_MAX ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "CID extension invalid" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (peer_cid_len > MBEDTLS_SSL_CID_OUT_LEN_MAX) { + MBEDTLS_SSL_DEBUG_MSG(1, ("CID extension invalid")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - if( len != peer_cid_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "CID extension invalid" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len != peer_cid_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("CID extension invalid")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ssl->handshake->cid_in_use = MBEDTLS_SSL_CID_ENABLED; ssl->handshake->peer_cid_len = (uint8_t) peer_cid_len; - memcpy( ssl->handshake->peer_cid, buf, peer_cid_len ); + memcpy(ssl->handshake->peer_cid, buf, peer_cid_len); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Use of CID extension negotiated" ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Server CID", buf, peer_cid_len ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Use of CID extension negotiated")); + MBEDTLS_SSL_DEBUG_BUF(3, "Server CID", buf, peer_cid_len); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_encrypt_then_mac_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED || - len != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-matching encrypt-then-MAC extension" ) ); + if (ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED || + len != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-matching encrypt-then-MAC extension")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } ((void) buf); ssl->session_negotiate->encrypt_then_mac = MBEDTLS_SSL_ETM_ENABLED; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_extended_ms_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_extended_ms_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED || - len != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-matching extended master secret extension" ) ); + if (ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED || + len != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-matching extended master secret extension")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } ((void) buf); ssl->handshake->extended_ms = MBEDTLS_SSL_EXTENDED_MS_ENABLED; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_session_ticket_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_session_ticket_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED || - len != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-matching session ticket extension" ) ); + if (ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED || + len != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-matching session ticket extension")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } ((void) buf); ssl->handshake->new_session_ticket = 1; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_supported_point_formats_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_supported_point_formats_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { size_t list_size; const unsigned char *p; - if( len == 0 || (size_t)( buf[0] + 1 ) != len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len == 0 || (size_t) (buf[0] + 1) != len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } list_size = buf[0]; p = buf + 1; - while( list_size > 0 ) - { - if( p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED || - p[0] == MBEDTLS_ECP_PF_COMPRESSED ) - { + while (list_size > 0) { + if (p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED || + p[0] == MBEDTLS_ECP_PF_COMPRESSED) { #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - ( defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) ) + (defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C)) ssl->handshake->ecdh_ctx.point_format = p[0]; #endif /* !MBEDTLS_USE_PSA_CRYPTO && ( MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C ) */ #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - mbedtls_ecjpake_set_point_format( &ssl->handshake->ecjpake_ctx, - p[0] ); + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + mbedtls_ecjpake_set_point_format(&ssl->handshake->ecjpake_ctx, + p[0]); #endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ - MBEDTLS_SSL_DEBUG_MSG( 4, ( "point format selected: %d", p[0] ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(4, ("point format selected: %d", p[0])); + return 0; } list_size--; p++; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no point format in common" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG(1, ("no point format in common")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl->handshake->ciphersuite_info->key_exchange != - MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip ecjpake kkpp extension" ) ); - return( 0 ); + if (ssl->handshake->ciphersuite_info->key_exchange != + MBEDTLS_KEY_EXCHANGE_ECJPAKE) { + MBEDTLS_SSL_DEBUG_MSG(3, ("skip ecjpake kkpp extension")); + return 0; } /* If we got here, we no longer need our cached extension */ - mbedtls_free( ssl->handshake->ecjpake_cache ); + mbedtls_free(ssl->handshake->ecjpake_cache); ssl->handshake->ecjpake_cache = NULL; ssl->handshake->ecjpake_cache_len = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_psa_ecjpake_read_round( - &ssl->handshake->psa_pake_ctx, buf, len, - MBEDTLS_ECJPAKE_ROUND_ONE ) ) != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + if ((ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, buf, len, + MBEDTLS_ECJPAKE_ROUND_ONE)) != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); - mbedtls_ssl_send_alert_message( - ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( ret ); - } - - return( 0 ); -#else - if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, - buf, len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_one", ret ); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_input round one", ret); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( ret ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return ret; } - return( 0 ); + return 0; +#else + if ((ret = mbedtls_ecjpake_read_round_one(&ssl->handshake->ecjpake_ctx, + buf, len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_one", ret); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return ret; + } + + return 0; #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static int ssl_parse_alpn_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { size_t list_len, name_len; const char **p; /* If we didn't send it, the server shouldn't send it */ - if( ssl->conf->alpn_list == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching ALPN extension" ) ); + if (ssl->conf->alpn_list == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("non-matching ALPN extension")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } /* @@ -969,62 +934,58 @@ static int ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, */ /* Min length is 2 (list_len) + 1 (name_len) + 1 (name) */ - if( len < 4 ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len < 4) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - list_len = ( buf[0] << 8 ) | buf[1]; - if( list_len != len - 2 ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + list_len = (buf[0] << 8) | buf[1]; + if (list_len != len - 2) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } name_len = buf[2]; - if( name_len != list_len - 1 ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (name_len != list_len - 1) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Check that the server chosen protocol was in our list and save it */ - for( p = ssl->conf->alpn_list; *p != NULL; p++ ) - { - if( name_len == strlen( *p ) && - memcmp( buf + 3, *p, name_len ) == 0 ) - { + for (p = ssl->conf->alpn_list; *p != NULL; p++) { + if (name_len == strlen(*p) && + memcmp(buf + 3, *p, name_len) == 0) { ssl->alpn_chosen = *p; - return( 0 ); + return 0; } } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ALPN extension: no matching protocol" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG(1, ("ALPN extension: no matching protocol")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_DTLS_SRTP) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_use_srtp_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { mbedtls_ssl_srtp_profile server_protection = MBEDTLS_TLS_SRTP_UNSET; size_t i, mki_len = 0; uint16_t server_protection_profile_value = 0; /* If use_srtp is not configured, just ignore the extension */ - if( ( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) || - ( ssl->conf->dtls_srtp_profile_list == NULL ) || - ( ssl->conf->dtls_srtp_profile_list_len == 0 ) ) - return( 0 ); + if ((ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) || + (ssl->conf->dtls_srtp_profile_list == NULL) || + (ssl->conf->dtls_srtp_profile_list_len == 0)) { + return 0; + } /* RFC 5764 section 4.1.1 * uint8 SRTPProtectionProfile[2]; @@ -1037,8 +998,7 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, * SRTPProtectionProfile SRTPProtectionProfiles<2..2^16-1>; * */ - if( ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED ) - { + if (ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED) { mki_len = ssl->dtls_srtp_info.mki_len; } @@ -1048,8 +1008,9 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, * + mki_len(1 byte) * and optional srtp_mki */ - if( ( len < 5 ) || ( len != ( buf[4] + 5u ) ) ) - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((len < 5) || (len != (buf[4] + 5u))) { + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } /* * get the server protection profile @@ -1059,17 +1020,17 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, * protection profile length must be 0x0002 as we must have only * one protection profile in server Hello */ - if( ( buf[0] != 0 ) || ( buf[1] != 2 ) ) - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((buf[0] != 0) || (buf[1] != 2)) { + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } - server_protection_profile_value = ( buf[2] << 8 ) | buf[3]; + server_protection_profile_value = (buf[2] << 8) | buf[3]; server_protection = mbedtls_ssl_check_srtp_profile_value( - server_protection_profile_value ); - if( server_protection != MBEDTLS_TLS_SRTP_UNSET ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found srtp profile: %s", - mbedtls_ssl_get_srtp_profile_as_string( - server_protection ) ) ); + server_protection_profile_value); + if (server_protection != MBEDTLS_TLS_SRTP_UNSET) { + MBEDTLS_SSL_DEBUG_MSG(3, ("found srtp profile: %s", + mbedtls_ssl_get_srtp_profile_as_string( + server_protection))); } ssl->dtls_srtp_info.chosen_dtls_srtp_profile = MBEDTLS_TLS_SRTP_UNSET; @@ -1077,30 +1038,26 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, /* * Check we have the server profile in our list */ - for( i=0; i < ssl->conf->dtls_srtp_profile_list_len; i++) - { - if( server_protection == ssl->conf->dtls_srtp_profile_list[i] ) - { + for (i = 0; i < ssl->conf->dtls_srtp_profile_list_len; i++) { + if (server_protection == ssl->conf->dtls_srtp_profile_list[i]) { ssl->dtls_srtp_info.chosen_dtls_srtp_profile = ssl->conf->dtls_srtp_profile_list[i]; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected srtp profile: %s", + MBEDTLS_SSL_DEBUG_MSG(3, ("selected srtp profile: %s", mbedtls_ssl_get_srtp_profile_as_string( - server_protection ) ) ); + server_protection))); break; } } /* If no match was found : server problem, it shall never answer with incompatible profile */ - if( ssl->dtls_srtp_info.chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ssl->dtls_srtp_info.chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* If server does not use mki in its reply, make sure the client won't keep * one as negotiated */ - if( len == 5 ) - { + if (len == 5) { ssl->dtls_srtp_info.mki_len = 0; } @@ -1110,21 +1067,19 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, * that is different than the one the client offered, then the client * MUST abort the handshake and SHOULD send an invalid_parameter alert. */ - if( len > 5 && ( buf[4] != mki_len || - ( memcmp( ssl->dtls_srtp_info.mki_value, &buf[5], mki_len ) ) ) ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (len > 5 && (buf[4] != mki_len || + (memcmp(ssl->dtls_srtp_info.mki_value, &buf[5], mki_len)))) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } -#if defined (MBEDTLS_DEBUG_C) - if( len > 5 ) - { - MBEDTLS_SSL_DEBUG_BUF( 3, "received mki", ssl->dtls_srtp_info.mki_value, - ssl->dtls_srtp_info.mki_len ); +#if defined(MBEDTLS_DEBUG_C) + if (len > 5) { + MBEDTLS_SSL_DEBUG_BUF(3, "received mki", ssl->dtls_srtp_info.mki_value, + ssl->dtls_srtp_info.mki_len); } #endif - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ @@ -1133,9 +1088,9 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, */ #if defined(MBEDTLS_SSL_PROTO_DTLS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) +static int ssl_parse_hello_verify_request(mbedtls_ssl_context *ssl) { - const unsigned char *p = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); + const unsigned char *p = ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl); uint16_t dtls_legacy_version; #if !defined(MBEDTLS_SSL_PROTO_TLS1_3) @@ -1144,19 +1099,18 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) uint16_t cookie_len; #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse hello verify request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse hello verify request")); /* Check that there is enough room for: * - 2 bytes of version * - 1 byte of cookie_len */ - if( mbedtls_ssl_hs_hdr_len( ssl ) + 3 > ssl->in_msglen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "incoming HelloVerifyRequest message is too short" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (mbedtls_ssl_hs_hdr_len(ssl) + 3 > ssl->in_msglen) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("incoming HelloVerifyRequest message is too short")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* @@ -1165,8 +1119,8 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) * opaque cookie<0..2^8-1>; * } HelloVerifyRequest; */ - MBEDTLS_SSL_DEBUG_BUF( 3, "server version", p, 2 ); - dtls_legacy_version = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_DEBUG_BUF(3, "server version", p, 2); + dtls_legacy_version = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* @@ -1174,53 +1128,50 @@ static int ssl_parse_hello_verify_request( mbedtls_ssl_context *ssl ) * The DTLS 1.3 (current draft) renames ProtocolVersion server_version to * legacy_version and locks the value of legacy_version to 0xfefd (DTLS 1.2) */ - if( dtls_legacy_version != 0xfefd && dtls_legacy_version != 0xfeff ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server version" ) ); + if (dtls_legacy_version != 0xfefd && dtls_legacy_version != 0xfeff) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server version")); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION ); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION); - return( MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + return MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } cookie_len = *p++; - if( ( ssl->in_msg + ssl->in_msglen ) - p < cookie_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "cookie length does not match incoming message size" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ssl->in_msg + ssl->in_msglen) - p < cookie_len) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("cookie length does not match incoming message size")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "cookie", p, cookie_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "cookie", p, cookie_len); - mbedtls_free( ssl->handshake->cookie ); + mbedtls_free(ssl->handshake->cookie); - ssl->handshake->cookie = mbedtls_calloc( 1, cookie_len ); - if( ssl->handshake->cookie == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc failed (%d bytes)", cookie_len ) ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + ssl->handshake->cookie = mbedtls_calloc(1, cookie_len); + if (ssl->handshake->cookie == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc failed (%d bytes)", cookie_len)); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( ssl->handshake->cookie, p, cookie_len ); + memcpy(ssl->handshake->cookie, p, cookie_len); ssl->handshake->cookie_len = cookie_len; /* Start over at ClientHello */ ssl->state = MBEDTLS_SSL_CLIENT_HELLO; - mbedtls_ssl_reset_checksum( ssl ); + mbedtls_ssl_reset_checksum(ssl); - mbedtls_ssl_recv_flight_completed( ssl ); + mbedtls_ssl_recv_flight_completed(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse hello verify request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse hello verify request")); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_parse_server_hello(mbedtls_ssl_context *ssl) { int ret, i; size_t n; @@ -1233,74 +1184,65 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) int handshake_failure = 0; const mbedtls_ssl_ciphersuite_t *suite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse server hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse server hello")); - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { /* No alert on a read error. */ - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } buf = ssl->in_msg; - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { + if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { ssl->renego_records_seen++; - if( ssl->conf->renego_max_records >= 0 && - ssl->renego_records_seen > ssl->conf->renego_max_records ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "renegotiation requested, but not honored by server" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->conf->renego_max_records >= 0 && + ssl->renego_records_seen > ssl->conf->renego_max_records) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("renegotiation requested, but not honored by server")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "non-handshake message during renegotiation" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, + ("non-handshake message during renegotiation")); ssl->keep_current_message = 1; - return( MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO ); + return MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( buf[0] == MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "received hello verify request" ) ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse server hello" ) ); - return( ssl_parse_hello_verify_request( ssl ) ); - } - else - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if (buf[0] == MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST) { + MBEDTLS_SSL_DEBUG_MSG(2, ("received hello verify request")); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse server hello")); + return ssl_parse_hello_verify_request(ssl); + } else { /* We made it through the verification process */ - mbedtls_free( ssl->handshake->cookie ); + mbedtls_free(ssl->handshake->cookie); ssl->handshake->cookie = NULL; ssl->handshake->cookie_len = 0; } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - if( ssl->in_hslen < 38 + mbedtls_ssl_hs_hdr_len( ssl ) || - buf[0] != MBEDTLS_SSL_HS_SERVER_HELLO ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen < 38 + mbedtls_ssl_hs_hdr_len(ssl) || + buf[0] != MBEDTLS_SSL_HS_SERVER_HELLO) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* @@ -1314,365 +1256,340 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) * 38+n . 39+n extensions length (optional) * 40+n . .. extensions */ - buf += mbedtls_ssl_hs_hdr_len( ssl ); + buf += mbedtls_ssl_hs_hdr_len(ssl); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, version", buf, 2 ); - ssl->tls_version = mbedtls_ssl_read_version( buf, ssl->conf->transport ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, version", buf, 2); + ssl->tls_version = mbedtls_ssl_read_version(buf, ssl->conf->transport); ssl->session_negotiate->tls_version = ssl->tls_version; - if( ssl->tls_version < ssl->conf->min_tls_version || - ssl->tls_version > ssl->conf->max_tls_version ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "server version out of bounds - min: [0x%x], server: [0x%x], max: [0x%x]", - (unsigned)ssl->conf->min_tls_version, - (unsigned)ssl->tls_version, - (unsigned)ssl->conf->max_tls_version ) ); + if (ssl->tls_version < ssl->conf->min_tls_version || + ssl->tls_version > ssl->conf->max_tls_version) { + MBEDTLS_SSL_DEBUG_MSG(1, + ( + "server version out of bounds - min: [0x%x], server: [0x%x], max: [0x%x]", + (unsigned) ssl->conf->min_tls_version, + (unsigned) ssl->tls_version, + (unsigned) ssl->conf->max_tls_version)); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION ); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION); - return( MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + return MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, current time: %lu", - ( (unsigned long) buf[2] << 24 ) | - ( (unsigned long) buf[3] << 16 ) | - ( (unsigned long) buf[4] << 8 ) | - ( (unsigned long) buf[5] ) ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, current time: %lu", + ((unsigned long) buf[2] << 24) | + ((unsigned long) buf[3] << 16) | + ((unsigned long) buf[4] << 8) | + ((unsigned long) buf[5]))); - memcpy( ssl->handshake->randbytes + 32, buf + 2, 32 ); + memcpy(ssl->handshake->randbytes + 32, buf + 2, 32); n = buf[34]; - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, random bytes", buf + 2, 32 ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, random bytes", buf + 2, 32); - if( n > 32 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (n > 32) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ssl->in_hslen > mbedtls_ssl_hs_hdr_len( ssl ) + 39 + n ) - { - ext_len = ( ( buf[38 + n] << 8 ) - | ( buf[39 + n] ) ); + if (ssl->in_hslen > mbedtls_ssl_hs_hdr_len(ssl) + 39 + n) { + ext_len = ((buf[38 + n] << 8) + | (buf[39 + n])); - if( ( ext_len > 0 && ext_len < 4 ) || - ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) + 40 + n + ext_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + if ((ext_len > 0 && ext_len < 4) || + ssl->in_hslen != mbedtls_ssl_hs_hdr_len(ssl) + 40 + n + ext_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - } - else if( ssl->in_hslen == mbedtls_ssl_hs_hdr_len( ssl ) + 38 + n ) - { + } else if (ssl->in_hslen == mbedtls_ssl_hs_hdr_len(ssl) + 38 + n) { ext_len = 0; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* ciphersuite (used later) */ - i = ( buf[35 + n] << 8 ) | buf[36 + n]; + i = (buf[35 + n] << 8) | buf[36 + n]; /* * Read and check compression */ comp = buf[37 + n]; - if( comp != MBEDTLS_SSL_COMPRESS_NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "server hello, bad compression: %d", comp ) ); + if (comp != MBEDTLS_SSL_COMPRESS_NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("server hello, bad compression: %d", comp)); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } /* * Initialize update checksum functions */ - ssl->handshake->ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( i ); - if( ssl->handshake->ciphersuite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "ciphersuite info for %04x not found", (unsigned int)i ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ssl->handshake->ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(i); + if (ssl->handshake->ciphersuite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("ciphersuite info for %04x not found", (unsigned int) i)); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - mbedtls_ssl_optimize_checksum( ssl, ssl->handshake->ciphersuite_info ); + mbedtls_ssl_optimize_checksum(ssl, ssl->handshake->ciphersuite_info); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, session id len.: %" MBEDTLS_PRINTF_SIZET, n ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, session id", buf + 35, n ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, session id len.: %" MBEDTLS_PRINTF_SIZET, n)); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, session id", buf + 35, n); /* * Check if the session can be resumed */ - if( ssl->handshake->resume == 0 || n == 0 || + if (ssl->handshake->resume == 0 || n == 0 || #if defined(MBEDTLS_SSL_RENEGOTIATION) ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE || #endif ssl->session_negotiate->ciphersuite != i || ssl->session_negotiate->id_len != n || - memcmp( ssl->session_negotiate->id, buf + 35, n ) != 0 ) - { + memcmp(ssl->session_negotiate->id, buf + 35, n) != 0) { ssl->state++; ssl->handshake->resume = 0; #if defined(MBEDTLS_HAVE_TIME) - ssl->session_negotiate->start = mbedtls_time( NULL ); + ssl->session_negotiate->start = mbedtls_time(NULL); #endif ssl->session_negotiate->ciphersuite = i; ssl->session_negotiate->id_len = n; - memcpy( ssl->session_negotiate->id, buf + 35, n ); - } - else - { + memcpy(ssl->session_negotiate->id, buf + 35, n); + } else { ssl->state = MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s session has been resumed", - ssl->handshake->resume ? "a" : "no" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("%s session has been resumed", + ssl->handshake->resume ? "a" : "no")); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: %04x", (unsigned) i ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d", - buf[37 + n] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, chosen ciphersuite: %04x", (unsigned) i)); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, compress alg.: %d", + buf[37 + n])); /* * Perform cipher suite validation in same way as in ssl_write_client_hello. */ i = 0; - while( 1 ) - { - if( ssl->conf->ciphersuite_list[i] == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + while (1) { + if (ssl->conf->ciphersuite_list[i] == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - if( ssl->conf->ciphersuite_list[i++] == - ssl->session_negotiate->ciphersuite ) - { + if (ssl->conf->ciphersuite_list[i++] == + ssl->session_negotiate->ciphersuite) { break; } } suite_info = mbedtls_ssl_ciphersuite_from_id( - ssl->session_negotiate->ciphersuite ); - if( mbedtls_ssl_validate_ciphersuite( ssl, suite_info, ssl->tls_version, - ssl->tls_version ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + ssl->session_negotiate->ciphersuite); + if (mbedtls_ssl_validate_ciphersuite(ssl, suite_info, ssl->tls_version, + ssl->tls_version) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "server hello, chosen ciphersuite: %s", suite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("server hello, chosen ciphersuite: %s", suite_info->name)); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA && - ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { + if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA && + ssl->tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { ssl->handshake->ecrs_enabled = 1; } #endif - if( comp != MBEDTLS_SSL_COMPRESS_NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + if (comp != MBEDTLS_SSL_COMPRESS_NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } ext = buf + 40 + n; - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "server hello, total extension length: %" MBEDTLS_PRINTF_SIZET, ext_len ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("server hello, total extension length: %" MBEDTLS_PRINTF_SIZET, + ext_len)); - while( ext_len ) - { - unsigned int ext_id = ( ( ext[0] << 8 ) - | ( ext[1] ) ); - unsigned int ext_size = ( ( ext[2] << 8 ) - | ( ext[3] ) ); + while (ext_len) { + unsigned int ext_id = ((ext[0] << 8) + | (ext[1])); + unsigned int ext_size = ((ext[2] << 8) + | (ext[3])); - if( ext_size + 4 > ext_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); + if (ext_size + 4 > ext_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - switch( ext_id ) - { - case MBEDTLS_TLS_EXT_RENEGOTIATION_INFO: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found renegotiation extension" ) ); + switch (ext_id) { + case MBEDTLS_TLS_EXT_RENEGOTIATION_INFO: + MBEDTLS_SSL_DEBUG_MSG(3, ("found renegotiation extension")); #if defined(MBEDTLS_SSL_RENEGOTIATION) - renegotiation_info_seen = 1; + renegotiation_info_seen = 1; #endif - if( ( ret = ssl_parse_renegotiation_info( ssl, ext + 4, - ext_size ) ) != 0 ) - return( ret ); + if ((ret = ssl_parse_renegotiation_info(ssl, ext + 4, + ext_size)) != 0) { + return ret; + } - break; + break; #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "found max_fragment_length extension" ) ); + case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: + MBEDTLS_SSL_DEBUG_MSG(3, + ("found max_fragment_length extension")); - if( ( ret = ssl_parse_max_fragment_length_ext( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_max_fragment_length_ext(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - case MBEDTLS_TLS_EXT_CID: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found CID extension" ) ); + case MBEDTLS_TLS_EXT_CID: + MBEDTLS_SSL_DEBUG_MSG(3, ("found CID extension")); - if( ( ret = ssl_parse_cid_ext( ssl, - ext + 4, - ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_cid_ext(ssl, + ext + 4, + ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found encrypt_then_mac extension" ) ); + case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: + MBEDTLS_SSL_DEBUG_MSG(3, ("found encrypt_then_mac extension")); - if( ( ret = ssl_parse_encrypt_then_mac_ext( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_encrypt_then_mac_ext(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "found extended_master_secret extension" ) ); + case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: + MBEDTLS_SSL_DEBUG_MSG(3, + ("found extended_master_secret extension")); - if( ( ret = ssl_parse_extended_ms_ext( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_extended_ms_ext(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_TLS_EXT_SESSION_TICKET: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found session_ticket extension" ) ); + case MBEDTLS_TLS_EXT_SESSION_TICKET: + MBEDTLS_SSL_DEBUG_MSG(3, ("found session_ticket extension")); - if( ( ret = ssl_parse_session_ticket_ext( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_session_ticket_ext(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "found supported_point_formats extension" ) ); + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: + MBEDTLS_SSL_DEBUG_MSG(3, + ("found supported_point_formats extension")); - if( ( ret = ssl_parse_supported_point_formats_ext( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_supported_point_formats_ext(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - case MBEDTLS_TLS_EXT_ECJPAKE_KKPP: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found ecjpake_kkpp extension" ) ); + case MBEDTLS_TLS_EXT_ECJPAKE_KKPP: + MBEDTLS_SSL_DEBUG_MSG(3, ("found ecjpake_kkpp extension")); - if( ( ret = ssl_parse_ecjpake_kkpp( ssl, - ext + 4, ext_size ) ) != 0 ) - { - return( ret ); - } + if ((ret = ssl_parse_ecjpake_kkpp(ssl, + ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) - case MBEDTLS_TLS_EXT_ALPN: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); + case MBEDTLS_TLS_EXT_ALPN: + MBEDTLS_SSL_DEBUG_MSG(3, ("found alpn extension")); - if( ( ret = ssl_parse_alpn_ext( ssl, ext + 4, ext_size ) ) != 0 ) - return( ret ); + if ((ret = ssl_parse_alpn_ext(ssl, ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_DTLS_SRTP) - case MBEDTLS_TLS_EXT_USE_SRTP: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found use_srtp extension" ) ); + case MBEDTLS_TLS_EXT_USE_SRTP: + MBEDTLS_SSL_DEBUG_MSG(3, ("found use_srtp extension")); - if( ( ret = ssl_parse_use_srtp_ext( ssl, ext + 4, ext_size ) ) != 0 ) - return( ret ); + if ((ret = ssl_parse_use_srtp_ext(ssl, ext + 4, ext_size)) != 0) { + return ret; + } - break; + break; #endif /* MBEDTLS_SSL_DTLS_SRTP */ - default: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "unknown extension found: %u (ignoring)", ext_id ) ); + default: + MBEDTLS_SSL_DEBUG_MSG(3, + ("unknown extension found: %u (ignoring)", ext_id)); } ext_len -= 4 + ext_size; ext += 4 + ext_size; - if( ext_len > 0 && ext_len < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ext_len > 0 && ext_len < 4) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } } @@ -1681,77 +1598,68 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) * extensions. It sets the transform data for the resumed session which in * case of DTLS includes the server CID extracted from the CID extension. */ - if( ssl->handshake->resume ) - { - if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); + if (ssl->handshake->resume) { + if ((ret = mbedtls_ssl_derive_keys(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_derive_keys", ret); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); - return( ret ); + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + return ret; } } /* * Renegotiation security checks */ - if( ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + if (ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && ssl->conf->allow_legacy_renegotiation == - MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "legacy renegotiation, breaking off handshake" ) ); + MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("legacy renegotiation, breaking off handshake")); handshake_failure = 1; } #if defined(MBEDTLS_SSL_RENEGOTIATION) - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && ssl->secure_renegotiation == MBEDTLS_SSL_SECURE_RENEGOTIATION && - renegotiation_info_seen == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "renegotiation_info extension missing (secure)" ) ); + renegotiation_info_seen == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("renegotiation_info extension missing (secure)")); handshake_failure = 1; - } - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && - ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == - MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "legacy renegotiation not allowed" ) ); + } else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + ssl->conf->allow_legacy_renegotiation == + MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION) { + MBEDTLS_SSL_DEBUG_MSG(1, ("legacy renegotiation not allowed")); handshake_failure = 1; - } - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && - ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - renegotiation_info_seen == 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "renegotiation_info extension present (legacy)" ) ); + } else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + renegotiation_info_seen == 1) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("renegotiation_info extension present (legacy)")); handshake_failure = 1; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ - if( handshake_failure == 1 ) - { + if (handshake_failure == 1) { mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse server hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse server hello")); - return( 0 ); + return 0; } #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, - unsigned char **p, - unsigned char *end ) +static int ssl_parse_server_dh_params(mbedtls_ssl_context *ssl, + unsigned char **p, + unsigned char *end) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; size_t dhm_actual_bitlen; @@ -1765,27 +1673,25 @@ static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, * opaque dh_Ys<1..2^16-1>; * } ServerDHParams; */ - if( ( ret = mbedtls_dhm_read_params( &ssl->handshake->dhm_ctx, - p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 2, ( "mbedtls_dhm_read_params" ), ret ); - return( ret ); + if ((ret = mbedtls_dhm_read_params(&ssl->handshake->dhm_ctx, + p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(2, ("mbedtls_dhm_read_params"), ret); + return ret; } - dhm_actual_bitlen = mbedtls_dhm_get_bitlen( &ssl->handshake->dhm_ctx ); - if( dhm_actual_bitlen < ssl->conf->dhm_min_bitlen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "DHM prime too short: %" MBEDTLS_PRINTF_SIZET " < %u", - dhm_actual_bitlen, - ssl->conf->dhm_min_bitlen ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + dhm_actual_bitlen = mbedtls_dhm_get_bitlen(&ssl->handshake->dhm_ctx); + if (dhm_actual_bitlen < ssl->conf->dhm_min_bitlen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("DHM prime too short: %" MBEDTLS_PRINTF_SIZET " < %u", + dhm_actual_bitlen, + ssl->conf->dhm_min_bitlen)); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: P ", &ssl->handshake->dhm_ctx.P ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: G ", &ssl->handshake->dhm_ctx.G ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: GY", &ssl->handshake->dhm_ctx.GY ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: P ", &ssl->handshake->dhm_ctx.P); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: G ", &ssl->handshake->dhm_ctx.G); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GY", &ssl->handshake->dhm_ctx.GY); - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ @@ -1795,9 +1701,9 @@ static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, - unsigned char **p, - unsigned char *end ) +static int ssl_parse_server_ecdh_params(mbedtls_ssl_context *ssl, + unsigned char **p, + unsigned char *end) { uint16_t tls_id; uint8_t ecpoint_len; @@ -1816,12 +1722,14 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, * 4 ECPoint.len * 5+ ECPoint contents */ - if( end - *p < 4 ) - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (end - *p < 4) { + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } /* First byte is curve_type; only named_curve is handled */ - if( *(*p)++ != MBEDTLS_ECP_TLS_NAMED_CURVE ) - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (*(*p)++ != MBEDTLS_ECP_TLS_NAMED_CURVE) { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } /* Next two bytes are the namedcurve value */ tls_id = *(*p)++; @@ -1829,36 +1737,36 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, tls_id |= *(*p)++; /* Check it's a curve we offered */ - if( mbedtls_ssl_check_curve_tls_id( ssl, tls_id ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "bad server key exchange message (ECDHE curve): %u", - (unsigned) tls_id ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (mbedtls_ssl_check_curve_tls_id(ssl, tls_id) != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, + ("bad server key exchange message (ECDHE curve): %u", + (unsigned) tls_id)); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* Convert EC's TLS ID to PSA key type. */ - if( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ec_psa_family, - &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) - { - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id, &ec_psa_family, + &ec_bits) == PSA_ERROR_NOT_SUPPORTED) { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR(ec_psa_family); handshake->ecdh_bits = ec_bits; /* Keep a copy of the peer's public key */ ecpoint_len = *(*p)++; - if( (size_t)( end - *p ) < ecpoint_len ) - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((size_t) (end - *p) < ecpoint_len) { + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } - if( ecpoint_len > sizeof( handshake->ecdh_psa_peerkey ) ) - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ecpoint_len > sizeof(handshake->ecdh_psa_peerkey)) { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } - memcpy( handshake->ecdh_psa_peerkey, *p, ecpoint_len ); + memcpy(handshake->ecdh_psa_peerkey, *p, ecpoint_len); handshake->ecdh_psa_peerkey_len = ecpoint_len; *p += ecpoint_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || @@ -1870,7 +1778,7 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) +static int ssl_check_server_ecdh_params(const mbedtls_ssl_context *ssl) { uint16_t tls_id; mbedtls_ecp_group_id grp_id; @@ -1880,23 +1788,23 @@ static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) grp_id = ssl->handshake->ecdh_ctx.grp_id; #endif - tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( grp_id ); - if( tls_id == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(grp_id); + if (tls_id == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", - mbedtls_ssl_get_curve_name_from_tls_id( tls_id ) ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("ECDH curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id(tls_id))); - if( mbedtls_ssl_check_curve( ssl, grp_id ) != 0 ) - return( -1 ); + if (mbedtls_ssl_check_curve(ssl, grp_id) != 0) { + return -1; + } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_QP ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_QP); - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || @@ -1909,9 +1817,9 @@ static int ssl_check_server_ecdh_params( const mbedtls_ssl_context *ssl ) defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, - unsigned char **p, - unsigned char *end ) +static int ssl_parse_server_ecdh_params(mbedtls_ssl_context *ssl, + unsigned char **p, + unsigned char *end) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; @@ -1923,35 +1831,34 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, * ECPoint public; * } ServerECDHParams; */ - if( ( ret = mbedtls_ecdh_read_params( &ssl->handshake->ecdh_ctx, - (const unsigned char **) p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ecdh_read_params" ), ret ); + if ((ret = mbedtls_ecdh_read_params(&ssl->handshake->ecdh_ctx, + (const unsigned char **) p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_read_params"), ret); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif - return( ret ); + return ret; } - if( ssl_check_server_ecdh_params( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "bad server key exchange message (ECDHE curve)" ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ssl_check_server_ecdh_params(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("bad server key exchange message (ECDHE curve)")); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - return( ret ); + return ret; } -#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || \ +#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || \ MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ #endif /* !MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, - unsigned char **p, - unsigned char *end ) +static int ssl_parse_server_psk_hint(mbedtls_ssl_context *ssl, + unsigned char **p, + unsigned char *end) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; uint16_t len; @@ -1962,20 +1869,18 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, * * opaque psk_identity_hint<0..2^16-1>; */ - if( end - (*p) < 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "bad server key exchange message (psk_identity_hint length)" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (end - (*p) < 2) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("bad server key exchange message (psk_identity_hint length)")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } len = (*p)[0] << 8 | (*p)[1]; *p += 2; - if( end - (*p) < len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "bad server key exchange message (psk_identity_hint length)" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (end - (*p) < len) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("bad server key exchange message (psk_identity_hint length)")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* @@ -1986,7 +1891,7 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, *p += len; ret = 0; - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ @@ -1996,19 +1901,18 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, * Generate a pre-master secret and encrypt it with the server's RSA key */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, - size_t offset, size_t *olen, - size_t pms_offset ) +static int ssl_write_encrypted_pms(mbedtls_ssl_context *ssl, + size_t offset, size_t *olen, + size_t pms_offset) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len_bytes = 2; unsigned char *p = ssl->handshake->premaster + pms_offset; - mbedtls_pk_context * peer_pk; + mbedtls_pk_context *peer_pk; - if( offset + len_bytes > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small for encrypted pms" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (offset + len_bytes > MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small for encrypted pms")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } /* @@ -2018,13 +1922,12 @@ static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, * opaque random[46]; * } PreMasterSecret; */ - mbedtls_ssl_write_version( p, ssl->conf->transport, - MBEDTLS_SSL_VERSION_TLS1_2 ); + mbedtls_ssl_write_version(p, ssl->conf->transport, + MBEDTLS_SSL_VERSION_TLS1_2); - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, p + 2, 46 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "f_rng", ret ); - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p + 2, 46)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "f_rng", ret); + return ret; } ssl->handshake->pmslen = 48; @@ -2032,11 +1935,10 @@ static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) peer_pk = &ssl->handshake->peer_pubkey; #else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( ssl->session_negotiate->peer_cert == NULL ) - { + if (ssl->session_negotiate->peer_cert == NULL) { /* Should never happen */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } peer_pk = &ssl->session_negotiate->peer_cert->pk; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ @@ -2044,33 +1946,30 @@ static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, /* * Now write it out, encrypted */ - if( ! mbedtls_pk_can_do( peer_pk, MBEDTLS_PK_RSA ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "certificate key type mismatch" ) ); - return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); + if (!mbedtls_pk_can_do(peer_pk, MBEDTLS_PK_RSA)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("certificate key type mismatch")); + return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; } - if( ( ret = mbedtls_pk_encrypt( peer_pk, - p, ssl->handshake->pmslen, - ssl->out_msg + offset + len_bytes, olen, - MBEDTLS_SSL_OUT_CONTENT_LEN - offset - len_bytes, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_rsa_pkcs1_encrypt", ret ); - return( ret ); + if ((ret = mbedtls_pk_encrypt(peer_pk, + p, ssl->handshake->pmslen, + ssl->out_msg + offset + len_bytes, olen, + MBEDTLS_SSL_OUT_CONTENT_LEN - offset - len_bytes, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_rsa_pkcs1_encrypt", ret); + return ret; } - if( len_bytes == 2 ) - { - MBEDTLS_PUT_UINT16_BE( *olen, ssl->out_msg, offset ); + if (len_bytes == 2) { + MBEDTLS_PUT_UINT16_BE(*olen, ssl->out_msg, offset); *olen += 2; } #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* We don't need the peer's public key anymore. Free it. */ - mbedtls_pk_free( peer_pk ); + mbedtls_pk_free(peer_pk); #endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ @@ -2078,115 +1977,107 @@ static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) +static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_ecp_keypair *peer_key; - mbedtls_pk_context * peer_pk; + mbedtls_pk_context *peer_pk; #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) peer_pk = &ssl->handshake->peer_pubkey; #else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( ssl->session_negotiate->peer_cert == NULL ) - { + if (ssl->session_negotiate->peer_cert == NULL) { /* Should never happen */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } peer_pk = &ssl->session_negotiate->peer_cert->pk; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ /* This is a public key, so it can't be opaque, so can_do() is a good * enough check to ensure pk_ec() is safe to use below. */ - if( ! mbedtls_pk_can_do( peer_pk, MBEDTLS_PK_ECKEY ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server key not ECDH capable" ) ); - return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); + if (!mbedtls_pk_can_do(peer_pk, MBEDTLS_PK_ECKEY)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("server key not ECDH capable")); + return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; } - peer_key = mbedtls_pk_ec( *peer_pk ); + peer_key = mbedtls_pk_ec(*peer_pk); #if defined(MBEDTLS_USE_PSA_CRYPTO) size_t olen = 0; uint16_t tls_id = 0; psa_ecc_family_t ecc_family; - if( mbedtls_ssl_check_curve( ssl, peer_key->grp.id ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server certificate (ECDH curve)" ) ); - return( MBEDTLS_ERR_SSL_BAD_CERTIFICATE ); + if (mbedtls_ssl_check_curve(ssl, peer_key->grp.id) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server certificate (ECDH curve)")); + return MBEDTLS_ERR_SSL_BAD_CERTIFICATE; } - tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( peer_key->grp.id ); - if( tls_id == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ECC group %u not suported", - peer_key->grp.id ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(peer_key->grp.id); + if (tls_id == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ECC group %u not suported", + peer_key->grp.id)); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* If the above conversion to TLS ID was fine, then also this one will be, so there is no need to check the return value here */ - mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, - &ssl->handshake->ecdh_bits ); + mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id, &ecc_family, + &ssl->handshake->ecdh_bits); - ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ecc_family ); + ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR(ecc_family); /* Store peer's public key in psa format. */ - ret = mbedtls_ecp_point_write_binary( &peer_key->grp, &peer_key->Q, - MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, - ssl->handshake->ecdh_psa_peerkey, - MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH ); + ret = mbedtls_ecp_point_write_binary(&peer_key->grp, &peer_key->Q, + MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, + ssl->handshake->ecdh_psa_peerkey, + MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH); - if ( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ecp_point_write_binary" ), ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecp_point_write_binary"), ret); + return ret; } ssl->handshake->ecdh_psa_peerkey_len = olen; #else - if( ( ret = mbedtls_ecdh_get_params( &ssl->handshake->ecdh_ctx, peer_key, - MBEDTLS_ECDH_THEIRS ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ecdh_get_params" ), ret ); - return( ret ); + if ((ret = mbedtls_ecdh_get_params(&ssl->handshake->ecdh_ctx, peer_key, + MBEDTLS_ECDH_THEIRS)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_get_params"), ret); + return ret; } - if( ssl_check_server_ecdh_params( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server certificate (ECDH curve)" ) ); - return( MBEDTLS_ERR_SSL_BAD_CERTIFICATE ); + if (ssl_check_server_ecdh_params(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server certificate (ECDH curve)")); + return MBEDTLS_ERR_SSL_BAD_CERTIFICATE; } #endif #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* We don't need the peer's public key anymore. Free it, * so that more RAM is available for upcoming expensive * operations like ECDHE. */ - mbedtls_pk_free( peer_pk ); + mbedtls_pk_free(peer_pk); #endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_parse_server_key_exchange(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; unsigned char *p = NULL, *end = NULL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse server key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse server key exchange")); #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse server key exchange" ) ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse server key exchange")); ssl->state++; - return( 0 ); + return 0; } ((void) p); ((void) end); @@ -2194,22 +2085,20 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA ) - { - if( ( ret = ssl_get_ecdh_params_from_cert( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_get_ecdh_params_from_cert", ret ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) { + if ((ret = ssl_get_ecdh_params_from_cert(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_get_ecdh_params_from_cert", ret); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( ret ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse server key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse server key exchange")); ssl->state++; - return( 0 ); + return 0; } ((void) p); ((void) end); @@ -2217,132 +2106,119 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled && - ssl->handshake->ecrs_state == ssl_ecrs_ske_start_processing ) - { + if (ssl->handshake->ecrs_enabled && + ssl->handshake->ecrs_state == ssl_ecrs_ske_start_processing) { goto start_processing; } #endif - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } /* * ServerKeyExchange may be skipped with PSK and RSA-PSK when the server * doesn't use a psk_identity_hint */ - if( ssl->in_msg[0] != MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE ) - { - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) - { + if (ssl->in_msg[0] != MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE) { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { /* Current message is probably either * CertificateRequest or ServerHelloDone */ ssl->keep_current_message = 1; goto exit; } - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "server key exchange message must not be skipped" ) ); + MBEDTLS_SSL_DEBUG_MSG(1, + ("server key exchange message must not be skipped")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) + if (ssl->handshake->ecrs_enabled) { ssl->handshake->ecrs_state = ssl_ecrs_ske_start_processing; + } start_processing: #endif - p = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); + p = ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl); end = ssl->in_msg + ssl->in_hslen; - MBEDTLS_SSL_DEBUG_BUF( 3, "server key exchange", p, end - p ); + MBEDTLS_SSL_DEBUG_BUF(3, "server key exchange", p, end - p); #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { - if( ssl_parse_server_psk_hint( ssl, &p, end ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { + if (ssl_parse_server_psk_hint(ssl, &p, end) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } } /* FALLTHROUGH */ #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { ; /* nothing more to do */ - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED || MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK ) - { - if( ssl_parse_server_dh_params( ssl, &p, end ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) { + if (ssl_parse_server_dh_params(ssl, &p, end) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA ) - { - if( ssl_parse_server_ecdh_params( ssl, &p, end ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA) { + if (ssl_parse_server_ecdh_params(ssl, &p, end) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) { #if defined(MBEDTLS_USE_PSA_CRYPTO) /* * The first 3 bytes are: @@ -2352,81 +2228,74 @@ start_processing: * However since we only support secp256r1 for now, we check only * that TLS ID here */ - uint16_t read_tls_id = MBEDTLS_GET_UINT16_BE( p, 1 ); + uint16_t read_tls_id = MBEDTLS_GET_UINT16_BE(p, 1); uint16_t exp_tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( - MBEDTLS_ECP_DP_SECP256R1 ); + MBEDTLS_ECP_DP_SECP256R1); - if( exp_tls_id == 0 ) - { - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + if (exp_tls_id == 0) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - if( ( *p != MBEDTLS_ECP_TLS_NAMED_CURVE ) || - ( read_tls_id != exp_tls_id ) ) - { - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if ((*p != MBEDTLS_ECP_TLS_NAMED_CURVE) || + (read_tls_id != exp_tls_id)) { + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } p += 3; - if( ( ret = mbedtls_psa_ecjpake_read_round( - &ssl->handshake->psa_pake_ctx, p, end - p, - MBEDTLS_ECJPAKE_ROUND_TWO ) ) != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + if ((ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, p, end - p, + MBEDTLS_ECJPAKE_ROUND_TWO)) != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round two", ret ); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_input round two", ret); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #else - ret = mbedtls_ecjpake_read_round_two( &ssl->handshake->ecjpake_ctx, - p, end - p ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_two", ret ); + ret = mbedtls_ecjpake_read_round_two(&ssl->handshake->ecjpake_ctx, + p, end - p); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_two", ret); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_server_signature( ciphersuite_info ) ) - { + if (mbedtls_ssl_ciphersuite_uses_server_signature(ciphersuite_info)) { size_t sig_len, hashlen; unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; mbedtls_md_type_t md_alg = MBEDTLS_MD_NONE; mbedtls_pk_type_t pk_alg = MBEDTLS_PK_NONE; - unsigned char *params = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); + unsigned char *params = ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl); size_t params_len = p - params; void *rs_ctx = NULL; uint16_t sig_alg; - mbedtls_pk_context * peer_pk; + mbedtls_pk_context *peer_pk; #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) peer_pk = &ssl->handshake->peer_pubkey; #else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( ssl->session_negotiate->peer_cert == NULL ) - { + if (ssl->session_negotiate->peer_cert == NULL) { /* Should never happen */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } peer_pk = &ssl->session_negotiate->peer_cert->pk; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ @@ -2434,143 +2303,137 @@ start_processing: /* * Handle the digitally-signed structure */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - sig_alg = MBEDTLS_GET_UINT16_BE( p, 0 ); - if( mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - sig_alg, &pk_alg, &md_alg ) != 0 && - ! mbedtls_ssl_sig_alg_is_offered( ssl, sig_alg ) && - ! mbedtls_ssl_sig_alg_is_supported( ssl, sig_alg ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "bad server key exchange message" ) ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + sig_alg = MBEDTLS_GET_UINT16_BE(p, 0); + if (mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + sig_alg, &pk_alg, &md_alg) != 0 && + !mbedtls_ssl_sig_alg_is_offered(ssl, sig_alg) && + !mbedtls_ssl_sig_alg_is_supported(ssl, sig_alg)) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } p += 2; - if( !mbedtls_pk_can_do( peer_pk, pk_alg ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "bad server key exchange message" ) ); + if (!mbedtls_pk_can_do(peer_pk, pk_alg)) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* * Read signature */ - if( p > end - 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + if (p > end - 2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - sig_len = ( p[0] << 8 ) | p[1]; + sig_len = (p[0] << 8) | p[1]; p += 2; - if( p != end - sig_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + if (p != end - sig_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "signature", p, sig_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "signature", p, sig_len); /* * Compute the hash that has been signed */ - if( md_alg != MBEDTLS_MD_NONE ) - { - ret = mbedtls_ssl_get_key_exchange_md_tls1_2( ssl, hash, &hashlen, - params, params_len, - md_alg ); - if( ret != 0 ) - return( ret ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (md_alg != MBEDTLS_MD_NONE) { + ret = mbedtls_ssl_get_key_exchange_md_tls1_2(ssl, hash, &hashlen, + params, params_len, + md_alg); + if (ret != 0) { + return ret; + } + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "parameters hash", hash, hashlen ); + MBEDTLS_SSL_DEBUG_BUF(3, "parameters hash", hash, hashlen); /* * Verify signature */ - if( !mbedtls_pk_can_do( peer_pk, pk_alg ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); + if (!mbedtls_pk_can_do(peer_pk, pk_alg)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server key exchange message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; } #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) + if (ssl->handshake->ecrs_enabled) { rs_ctx = &ssl->handshake->ecrs_ctx.pk; + } #endif #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - if( pk_alg == MBEDTLS_PK_RSASSA_PSS ) - { + if (pk_alg == MBEDTLS_PK_RSASSA_PSS) { mbedtls_pk_rsassa_pss_options rsassa_pss_options; rsassa_pss_options.mgf1_hash_id = md_alg; rsassa_pss_options.expected_salt_len = - mbedtls_hash_info_get_size( md_alg ); - if( rsassa_pss_options.expected_salt_len == 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + mbedtls_hash_info_get_size(md_alg); + if (rsassa_pss_options.expected_salt_len == 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - ret = mbedtls_pk_verify_ext( pk_alg, &rsassa_pss_options, - peer_pk, - md_alg, hash, hashlen, - p, sig_len ); - } - else + ret = mbedtls_pk_verify_ext(pk_alg, &rsassa_pss_options, + peer_pk, + md_alg, hash, hashlen, + p, sig_len); + } else #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ - ret = mbedtls_pk_verify_restartable( peer_pk, - md_alg, hash, hashlen, p, sig_len, rs_ctx ); + ret = mbedtls_pk_verify_restartable(peer_pk, + md_alg, hash, hashlen, p, sig_len, rs_ctx); - if( ret != 0 ) - { + if (ret != 0) { int send_alert_msg = 1; #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - send_alert_msg = ( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ); + send_alert_msg = (ret != MBEDTLS_ERR_ECP_IN_PROGRESS); #endif - if( send_alert_msg ) + if (send_alert_msg) { mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR ); - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_verify", ret ); + MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR); + } + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_verify", ret); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif - return( ret ); + return ret; } #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* We don't need the peer's public key anymore. Free it, * so that more RAM is available for upcoming expensive * operations like ECDHE. */ - mbedtls_pk_free( peer_pk ); + mbedtls_pk_free(peer_pk); #endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED */ @@ -2578,33 +2441,32 @@ start_processing: exit: ssl->state++; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse server key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse server key exchange")); - return( 0 ); + return 0; } -#if ! defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) +#if !defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_parse_certificate_request(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate request")); - if( ! mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate request" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate request")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_parse_certificate_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; @@ -2614,44 +2476,40 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) ssl->handshake->ciphersuite_info; size_t sig_alg_len; #if defined(MBEDTLS_DEBUG_C) - unsigned char *sig_alg; - unsigned char *dn; + unsigned char *sig_alg; + unsigned char *dn; #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate request")); - if( ! mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate request" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate request")); ssl->state++; - return( 0 ); + return 0; } - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } ssl->state++; ssl->handshake->client_auth = - ( ssl->in_msg[0] == MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ); + (ssl->in_msg[0] == MBEDTLS_SSL_HS_CERTIFICATE_REQUEST); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "got %s certificate request", - ssl->handshake->client_auth ? "a" : "no" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("got %s certificate request", + ssl->handshake->client_auth ? "a" : "no")); - if( ssl->handshake->client_auth == 0 ) - { + if (ssl->handshake->client_auth == 0) { /* Current message is probably the ServerHelloDone */ ssl->keep_current_message = 1; goto exit; @@ -2684,14 +2542,13 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) buf = ssl->in_msg; /* certificate_types */ - if( ssl->in_hslen <= mbedtls_ssl_hs_hdr_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen <= mbedtls_ssl_hs_hdr_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - cert_type_len = buf[mbedtls_ssl_hs_hdr_len( ssl )]; + cert_type_len = buf[mbedtls_ssl_hs_hdr_len(ssl)]; n = cert_type_len; /* @@ -2704,17 +2561,16 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) * therefore the buffer length at this point must be greater than that * regardless of the actual code path. */ - if( ssl->in_hslen <= mbedtls_ssl_hs_hdr_len( ssl ) + 2 + n ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen <= mbedtls_ssl_hs_hdr_len(ssl) + 2 + n) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* supported_signature_algorithms */ - sig_alg_len = ( ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 1 + n] << 8 ) - | ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 2 + n] ) ); + sig_alg_len = ((buf[mbedtls_ssl_hs_hdr_len(ssl) + 1 + n] << 8) + | (buf[mbedtls_ssl_hs_hdr_len(ssl) + 2 + n])); /* * The furthest access in buf is in the loop few lines below: @@ -2728,119 +2584,112 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) * buf[...hdr_len + 3 + n + sig_alg_len], * which is one less than we need the buf to be. */ - if( ssl->in_hslen <= mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n + sig_alg_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); + if (ssl->in_hslen <= mbedtls_ssl_hs_hdr_len(ssl) + 3 + n + sig_alg_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } #if defined(MBEDTLS_DEBUG_C) - sig_alg = buf + mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n; - for( size_t i = 0; i < sig_alg_len; i += 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Supported Signature Algorithm found: %02x %02x", - sig_alg[i], sig_alg[i + 1] ) ); + sig_alg = buf + mbedtls_ssl_hs_hdr_len(ssl) + 3 + n; + for (size_t i = 0; i < sig_alg_len; i += 2) { + MBEDTLS_SSL_DEBUG_MSG(3, + ("Supported Signature Algorithm found: %02x %02x", + sig_alg[i], sig_alg[i + 1])); } #endif n += 2 + sig_alg_len; /* certificate_authorities */ - dn_len = ( ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 1 + n] << 8 ) - | ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 2 + n] ) ); + dn_len = ((buf[mbedtls_ssl_hs_hdr_len(ssl) + 1 + n] << 8) + | (buf[mbedtls_ssl_hs_hdr_len(ssl) + 2 + n])); n += dn_len; - if( ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen != mbedtls_ssl_hs_hdr_len(ssl) + 3 + n) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } #if defined(MBEDTLS_DEBUG_C) - dn = buf + mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n - dn_len; - for( size_t i = 0, dni_len = 0; i < dn_len; i += 2 + dni_len ) - { + dn = buf + mbedtls_ssl_hs_hdr_len(ssl) + 3 + n - dn_len; + for (size_t i = 0, dni_len = 0; i < dn_len; i += 2 + dni_len) { unsigned char *p = dn + i + 2; mbedtls_x509_name name; size_t asn1_len; char s[MBEDTLS_X509_MAX_DN_NAME_SIZE]; - memset( &name, 0, sizeof( name ) ); - dni_len = MBEDTLS_GET_UINT16_BE( dn + i, 0 ); - if( dni_len > dn_len - i - 2 || - mbedtls_asn1_get_tag( &p, p + dni_len, &asn1_len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) != 0 || - mbedtls_x509_get_name( &p, p + asn1_len, &name ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); + memset(&name, 0, sizeof(name)); + dni_len = MBEDTLS_GET_UINT16_BE(dn + i, 0); + if (dni_len > dn_len - i - 2 || + mbedtls_asn1_get_tag(&p, p + dni_len, &asn1_len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) != 0 || + mbedtls_x509_get_name(&p, p + asn1_len, &name) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate request message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "DN hint: %.*s", - mbedtls_x509_dn_gets( s, sizeof(s), &name ), s ) ); - mbedtls_asn1_free_named_data_list_shallow( name.next ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("DN hint: %.*s", + mbedtls_x509_dn_gets(s, sizeof(s), &name), s)); + mbedtls_asn1_free_named_data_list_shallow(name.next); } #endif exit: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate request")); - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_server_hello_done( mbedtls_ssl_context *ssl ) +static int ssl_parse_server_hello_done(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse server hello done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse server hello done")); - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello done message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello done message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - if( ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) || - ssl->in_msg[0] != MBEDTLS_SSL_HS_SERVER_HELLO_DONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello done message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_hslen != mbedtls_ssl_hs_hdr_len(ssl) || + ssl->in_msg[0] != MBEDTLS_SSL_HS_SERVER_HELLO_DONE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad server hello done message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ssl->state++; #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - mbedtls_ssl_recv_flight_completed( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_recv_flight_completed(ssl); + } #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse server hello done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse server hello done")); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_write_client_key_exchange(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -2849,55 +2698,50 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write client key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write client key exchange")); #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA) { /* * DHM key exchange -- send G^X mod P */ - content_len = mbedtls_dhm_get_len( &ssl->handshake->dhm_ctx ); + content_len = mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx); - MBEDTLS_PUT_UINT16_BE( content_len, ssl->out_msg, 4 ); + MBEDTLS_PUT_UINT16_BE(content_len, ssl->out_msg, 4); header_len = 6; - ret = mbedtls_dhm_make_public( &ssl->handshake->dhm_ctx, - (int) mbedtls_dhm_get_len( &ssl->handshake->dhm_ctx ), - &ssl->out_msg[header_len], content_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_make_public", ret ); - return( ret ); + ret = mbedtls_dhm_make_public(&ssl->handshake->dhm_ctx, + (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx), + &ssl->out_msg[header_len], content_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_public", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: X ", &ssl->handshake->dhm_ctx.X ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: GX", &ssl->handshake->dhm_ctx.GX ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: X ", &ssl->handshake->dhm_ctx.X); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GX", &ssl->handshake->dhm_ctx.GX); - if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - ssl->handshake->premaster, - MBEDTLS_PREMASTER_SIZE, - &ssl->handshake->pmslen, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); - return( ret ); + if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx, + ssl->handshake->premaster, + MBEDTLS_PREMASTER_SIZE, + &ssl->handshake->pmslen, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: K ", &ssl->handshake->dhm_ctx.K ); - } - else + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K); + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA ) - { + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -2907,7 +2751,7 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) header_len = 4; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Perform PSA-based ECDH computation.")); /* * Generate EC private key for ECDHE exchange. @@ -2921,33 +2765,33 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) * For the time being, we therefore need to split the computation * of the ECDH secret and the application of the TLS 1.2 PRF. */ key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, PSA_ALG_ECDH ); - psa_set_key_type( &key_attributes, handshake->ecdh_psa_type ); - psa_set_key_bits( &key_attributes, handshake->ecdh_bits ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH); + psa_set_key_type(&key_attributes, handshake->ecdh_psa_type); + psa_set_key_bits(&key_attributes, handshake->ecdh_bits); /* Generate ECDH private key. */ - status = psa_generate_key( &key_attributes, - &handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + status = psa_generate_key(&key_attributes, + &handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } /* Export the public part of the ECDH private key from PSA. * The export format is an ECPoint structure as expected by TLS, * but we just need to add a length byte before that. */ unsigned char *own_pubkey = ssl->out_msg + header_len + 1; unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; - size_t own_pubkey_max_len = (size_t)( end - own_pubkey ); + size_t own_pubkey_max_len = (size_t) (end - own_pubkey); size_t own_pubkey_len; - status = psa_export_public_key( handshake->ecdh_psa_privkey, - own_pubkey, own_pubkey_max_len, - &own_pubkey_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( handshake->ecdh_psa_privkey ); + status = psa_export_public_key(handshake->ecdh_psa_privkey, + own_pubkey, own_pubkey_max_len, + &own_pubkey_len); + if (status != PSA_SUCCESS) { + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; } ssl->out_msg[header_len] = (unsigned char) own_pubkey_len; @@ -2956,19 +2800,20 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) /* The ECDH secret is the premaster secret used for key derivation. */ /* Compute ECDH shared secret. */ - status = psa_raw_key_agreement( PSA_ALG_ECDH, - handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, - handshake->ecdh_psa_peerkey_len, - ssl->handshake->premaster, - sizeof( ssl->handshake->premaster ), - &ssl->handshake->pmslen ); + status = psa_raw_key_agreement(PSA_ALG_ECDH, + handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, + handshake->ecdh_psa_peerkey_len, + ssl->handshake->premaster, + sizeof(ssl->handshake->premaster), + &ssl->handshake->pmslen); - destruction_status = psa_destroy_key( handshake->ecdh_psa_privkey ); + destruction_status = psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - if( status != PSA_SUCCESS || destruction_status != PSA_SUCCESS ) - return( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + if (status != PSA_SUCCESS || destruction_status != PSA_SUCCESS) { + return MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } #else /* * ECDH key exchange -- send client public value @@ -2976,70 +2821,68 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) header_len = 4; #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) - { - if( ssl->handshake->ecrs_state == ssl_ecrs_cke_ecdh_calc_secret ) + if (ssl->handshake->ecrs_enabled) { + if (ssl->handshake->ecrs_state == ssl_ecrs_cke_ecdh_calc_secret) { goto ecdh_calc_secret; + } - mbedtls_ecdh_enable_restart( &ssl->handshake->ecdh_ctx ); + mbedtls_ecdh_enable_restart(&ssl->handshake->ecdh_ctx); } #endif - ret = mbedtls_ecdh_make_public( &ssl->handshake->ecdh_ctx, - &content_len, - &ssl->out_msg[header_len], 1000, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_make_public", ret ); + ret = mbedtls_ecdh_make_public(&ssl->handshake->ecdh_ctx, + &content_len, + &ssl->out_msg[header_len], 1000, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_public", ret); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif - return( ret ); + return ret; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Q ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Q); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) - { + if (ssl->handshake->ecrs_enabled) { ssl->handshake->ecrs_n = content_len; ssl->handshake->ecrs_state = ssl_ecrs_cke_ecdh_calc_secret; } ecdh_calc_secret: - if( ssl->handshake->ecrs_enabled ) + if (ssl->handshake->ecrs_enabled) { content_len = ssl->handshake->ecrs_n; + } #endif - if( ( ret = mbedtls_ecdh_calc_secret( &ssl->handshake->ecdh_ctx, - &ssl->handshake->pmslen, - ssl->handshake->premaster, - MBEDTLS_MPI_MAX_SIZE, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_calc_secret", ret ); + if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx, + &ssl->handshake->pmslen, + ssl->handshake->premaster, + MBEDTLS_MPI_MAX_SIZE, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif - return( ret ); + return ret; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Z ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Z); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_attributes_t key_attributes; @@ -3049,38 +2892,38 @@ ecdh_calc_secret: /* * opaque psk_identity<0..2^16-1>; */ - if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 0 ) + if (mbedtls_ssl_conf_has_static_psk(ssl->conf) == 0) { /* We don't offer PSK suites if we don't have a PSK, * and we check that the server's choice is among the * ciphersuites we offered, so this should never happen. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* uint16 to store content length */ const size_t content_len_size = 2; header_len = 4; - if( header_len + content_len_size + ssl->conf->psk_identity_len - > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "psk identity too long or SSL buffer too short" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (header_len + content_len_size + ssl->conf->psk_identity_len + > MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("psk identity too long or SSL buffer too short")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } unsigned char *p = ssl->out_msg + header_len; - *p++ = MBEDTLS_BYTE_1( ssl->conf->psk_identity_len ); - *p++ = MBEDTLS_BYTE_0( ssl->conf->psk_identity_len ); + *p++ = MBEDTLS_BYTE_1(ssl->conf->psk_identity_len); + *p++ = MBEDTLS_BYTE_0(ssl->conf->psk_identity_len); header_len += content_len_size; - memcpy( p, ssl->conf->psk_identity, - ssl->conf->psk_identity_len ); + memcpy(p, ssl->conf->psk_identity, + ssl->conf->psk_identity_len); p += ssl->conf->psk_identity_len; header_len += ssl->conf->psk_identity_len; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Perform PSA-based ECDH computation.")); /* * Generate EC private key for ECDHE exchange. @@ -3094,33 +2937,33 @@ ecdh_calc_secret: * For the time being, we therefore need to split the computation * of the ECDH secret and the application of the TLS 1.2 PRF. */ key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, PSA_ALG_ECDH ); - psa_set_key_type( &key_attributes, handshake->ecdh_psa_type ); - psa_set_key_bits( &key_attributes, handshake->ecdh_bits ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH); + psa_set_key_type(&key_attributes, handshake->ecdh_psa_type); + psa_set_key_bits(&key_attributes, handshake->ecdh_bits); /* Generate ECDH private key. */ - status = psa_generate_key( &key_attributes, - &handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); + status = psa_generate_key(&key_attributes, + &handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } /* Export the public part of the ECDH private key from PSA. * The export format is an ECPoint structure as expected by TLS, * but we just need to add a length byte before that. */ unsigned char *own_pubkey = p + 1; unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; - size_t own_pubkey_max_len = (size_t)( end - own_pubkey ); + size_t own_pubkey_max_len = (size_t) (end - own_pubkey); size_t own_pubkey_len = 0; - status = psa_export_public_key( handshake->ecdh_psa_privkey, - own_pubkey, own_pubkey_max_len, - &own_pubkey_len ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( handshake->ecdh_psa_privkey ); + status = psa_export_public_key(handshake->ecdh_psa_privkey, + own_pubkey, own_pubkey_max_len, + &own_pubkey_len); + if (status != PSA_SUCCESS) { + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( psa_ssl_status_to_mbedtls( status ) ); + return psa_ssl_status_to_mbedtls(status); } *p = (unsigned char) own_pubkey_len; @@ -3133,231 +2976,209 @@ ecdh_calc_secret: * - the PSK itself */ unsigned char *pms = ssl->handshake->premaster; - const unsigned char* const pms_end = pms + - sizeof( ssl->handshake->premaster ); + const unsigned char * const pms_end = pms + + sizeof(ssl->handshake->premaster); /* uint16 to store length (in octets) of the ECDH computation */ const size_t zlen_size = 2; size_t zlen = 0; /* Perform ECDH computation after the uint16 reserved for the length */ - status = psa_raw_key_agreement( PSA_ALG_ECDH, - handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, - handshake->ecdh_psa_peerkey_len, - pms + zlen_size, - pms_end - ( pms + zlen_size ), - &zlen ); + status = psa_raw_key_agreement(PSA_ALG_ECDH, + handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, + handshake->ecdh_psa_peerkey_len, + pms + zlen_size, + pms_end - (pms + zlen_size), + &zlen); - destruction_status = psa_destroy_key( handshake->ecdh_psa_privkey ); + destruction_status = psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); - else if( destruction_status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( destruction_status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } else if (destruction_status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(destruction_status); + } /* Write the ECDH computation length before the ECDH computation */ - MBEDTLS_PUT_UINT16_BE( zlen, pms, 0 ); + MBEDTLS_PUT_UINT16_BE(zlen, pms, 0); pms += zlen_size + zlen; - } - else + } else #endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_psk( ciphersuite_info ) ) - { + if (mbedtls_ssl_ciphersuite_uses_psk(ciphersuite_info)) { /* * opaque psk_identity<0..2^16-1>; */ - if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) == 0 ) - { + if (mbedtls_ssl_conf_has_static_psk(ssl->conf) == 0) { /* We don't offer PSK suites if we don't have a PSK, * and we check that the server's choice is among the * ciphersuites we offered, so this should never happen. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } header_len = 4; content_len = ssl->conf->psk_identity_len; - if( header_len + 2 + content_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "psk identity too long or SSL buffer too short" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (header_len + 2 + content_len > MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("psk identity too long or SSL buffer too short")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - ssl->out_msg[header_len++] = MBEDTLS_BYTE_1( content_len ); - ssl->out_msg[header_len++] = MBEDTLS_BYTE_0( content_len ); + ssl->out_msg[header_len++] = MBEDTLS_BYTE_1(content_len); + ssl->out_msg[header_len++] = MBEDTLS_BYTE_0(content_len); - memcpy( ssl->out_msg + header_len, - ssl->conf->psk_identity, - ssl->conf->psk_identity_len ); + memcpy(ssl->out_msg + header_len, + ssl->conf->psk_identity, + ssl->conf->psk_identity_len); header_len += ssl->conf->psk_identity_len; #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK) { content_len = 0; - } - else + } else #endif #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) - { - if( ( ret = ssl_write_encrypted_pms( ssl, header_len, - &content_len, 2 ) ) != 0 ) - return( ret ); - } - else + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { + if ((ret = ssl_write_encrypted_pms(ssl, header_len, + &content_len, 2)) != 0) { + return ret; + } + } else #endif #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) { /* * ClientDiffieHellmanPublic public (DHM send G^X mod P) */ - content_len = mbedtls_dhm_get_len( &ssl->handshake->dhm_ctx ); + content_len = mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx); - if( header_len + 2 + content_len > - MBEDTLS_SSL_OUT_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "psk identity or DHM size too long or SSL buffer too short" ) ); - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (header_len + 2 + content_len > + MBEDTLS_SSL_OUT_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("psk identity or DHM size too long or SSL buffer too short")); + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - ssl->out_msg[header_len++] = MBEDTLS_BYTE_1( content_len ); - ssl->out_msg[header_len++] = MBEDTLS_BYTE_0( content_len ); + ssl->out_msg[header_len++] = MBEDTLS_BYTE_1(content_len); + ssl->out_msg[header_len++] = MBEDTLS_BYTE_0(content_len); - ret = mbedtls_dhm_make_public( &ssl->handshake->dhm_ctx, - (int) mbedtls_dhm_get_len( &ssl->handshake->dhm_ctx ), - &ssl->out_msg[header_len], content_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_make_public", ret ); - return( ret ); + ret = mbedtls_dhm_make_public(&ssl->handshake->dhm_ctx, + (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx), + &ssl->out_msg[header_len], content_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_public", ret); + return ret; } #if defined(MBEDTLS_USE_PSA_CRYPTO) unsigned char *pms = ssl->handshake->premaster; - unsigned char *pms_end = pms + sizeof( ssl->handshake->premaster ); + unsigned char *pms_end = pms + sizeof(ssl->handshake->premaster); size_t pms_len; /* Write length only when we know the actual value */ - if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - pms + 2, pms_end - ( pms + 2 ), &pms_len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); - return( ret ); + if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx, + pms + 2, pms_end - (pms + 2), &pms_len, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret); + return ret; } - MBEDTLS_PUT_UINT16_BE( pms_len, pms, 0 ); + MBEDTLS_PUT_UINT16_BE(pms_len, pms, 0); pms += 2 + pms_len; - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: K ", &ssl->handshake->dhm_ctx.K ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K); #endif - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { /* * ClientECDiffieHellmanPublic public; */ - ret = mbedtls_ecdh_make_public( &ssl->handshake->ecdh_ctx, - &content_len, - &ssl->out_msg[header_len], - MBEDTLS_SSL_OUT_CONTENT_LEN - header_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_make_public", ret ); - return( ret ); + ret = mbedtls_ecdh_make_public(&ssl->handshake->ecdh_ctx, + &content_len, + &ssl->out_msg[header_len], + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_public", ret); + return ret; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Q ); - } - else + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Q); + } else #endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #if !defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, - ciphersuite_info->key_exchange ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_psk_derive_premaster", ret ); - return( ret ); + if ((ret = mbedtls_ssl_psk_derive_premaster(ssl, + ciphersuite_info->key_exchange)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_psk_derive_premaster", ret); + return ret; } #endif /* !MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) { header_len = 4; - if( ( ret = ssl_write_encrypted_pms( ssl, header_len, - &content_len, 0 ) ) != 0 ) - return( ret ); - } - else + if ((ret = ssl_write_encrypted_pms(ssl, header_len, + &content_len, 0)) != 0) { + return ret; + } + } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) { header_len = 4; #if defined(MBEDTLS_USE_PSA_CRYPTO) unsigned char *out_p = ssl->out_msg + header_len; unsigned char *end_p = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len; - ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, - out_p, end_p - out_p, &content_len, - MBEDTLS_ECJPAKE_ROUND_TWO ); - if ( ret != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); - return( ret ); + ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx, + out_p, end_p - out_p, &content_len, + MBEDTLS_ECJPAKE_ROUND_TWO); + if (ret != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret); + return ret; } #else - ret = mbedtls_ecjpake_write_round_two( &ssl->handshake->ecjpake_ctx, - ssl->out_msg + header_len, - MBEDTLS_SSL_OUT_CONTENT_LEN - header_len, - &content_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_write_round_two", ret ); - return( ret ); + ret = mbedtls_ecjpake_write_round_two(&ssl->handshake->ecjpake_ctx, + ssl->out_msg + header_len, + MBEDTLS_SSL_OUT_CONTENT_LEN - header_len, + &content_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_two", ret); + return ret; } - ret = mbedtls_ecjpake_derive_secret( &ssl->handshake->ecjpake_ctx, - ssl->handshake->premaster, 32, &ssl->handshake->pmslen, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_derive_secret", ret ); - return( ret ); + ret = mbedtls_ecjpake_derive_secret(&ssl->handshake->ecjpake_ctx, + ssl->handshake->premaster, 32, &ssl->handshake->pmslen, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_derive_secret", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ { ((void) ciphersuite_info); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } ssl->out_msglen = header_len + content_len; @@ -3366,46 +3187,43 @@ ecdh_calc_secret: ssl->state++; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write client key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write client key exchange")); - return( 0 ); + return 0; } #if !defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_write_certificate_verify(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate verify")); - if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); - return( ret ); + if ((ret = mbedtls_ssl_derive_keys(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_derive_keys", ret); + return ret; } - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate verify" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate verify")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else /* !MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_write_certificate_verify(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = @@ -3417,59 +3235,55 @@ static int ssl_write_certificate_verify( mbedtls_ssl_context *ssl ) size_t hashlen; void *rs_ctx = NULL; #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - size_t out_buf_len = ssl->out_buf_len - ( ssl->out_msg - ssl->out_buf ); + size_t out_buf_len = ssl->out_buf_len - (ssl->out_msg - ssl->out_buf); #else - size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN - ( ssl->out_msg - ssl->out_buf ); + size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN - (ssl->out_msg - ssl->out_buf); #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate verify")); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled && - ssl->handshake->ecrs_state == ssl_ecrs_crt_vrfy_sign ) - { + if (ssl->handshake->ecrs_enabled && + ssl->handshake->ecrs_state == ssl_ecrs_crt_vrfy_sign) { goto sign; } #endif - if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); - return( ret ); + if ((ret = mbedtls_ssl_derive_keys(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_derive_keys", ret); + return ret; } - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate verify" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate verify")); ssl->state++; - return( 0 ); + return 0; } - if( ssl->handshake->client_auth == 0 || - mbedtls_ssl_own_cert( ssl ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate verify" ) ); + if (ssl->handshake->client_auth == 0 || + mbedtls_ssl_own_cert(ssl) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate verify")); ssl->state++; - return( 0 ); + return 0; } - if( mbedtls_ssl_own_key( ssl ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no private key for certificate" ) ); - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + if (mbedtls_ssl_own_key(ssl) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no private key for certificate")); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } /* * Make a signature of the handshake digests */ #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) + if (ssl->handshake->ecrs_enabled) { ssl->handshake->ecrs_state = ssl_ecrs_crt_vrfy_sign; + } sign: #endif - ssl->handshake->calc_verify( ssl, hash, &hashlen ); + ssl->handshake->calc_verify(ssl, hash, &hashlen); /* * digitally-signed struct { @@ -3487,43 +3301,41 @@ sign: * SHA224 in order to satisfy 'weird' needs from the server * side. */ - if( ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) - { + if (ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384) { md_alg = MBEDTLS_MD_SHA384; ssl->out_msg[4] = MBEDTLS_SSL_HASH_SHA384; - } - else - { + } else { md_alg = MBEDTLS_MD_SHA256; ssl->out_msg[4] = MBEDTLS_SSL_HASH_SHA256; } - ssl->out_msg[5] = mbedtls_ssl_sig_from_pk( mbedtls_ssl_own_key( ssl ) ); + ssl->out_msg[5] = mbedtls_ssl_sig_from_pk(mbedtls_ssl_own_key(ssl)); /* Info from md_alg will be used instead */ hashlen = 0; offset = 2; #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ssl->handshake->ecrs_enabled ) + if (ssl->handshake->ecrs_enabled) { rs_ctx = &ssl->handshake->ecrs_ctx.pk; + } #endif - if( ( ret = mbedtls_pk_sign_restartable( mbedtls_ssl_own_key( ssl ), - md_alg, hash_start, hashlen, - ssl->out_msg + 6 + offset, - out_buf_len - 6 - offset, - &n, - ssl->conf->f_rng, ssl->conf->p_rng, rs_ctx ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_sign", ret ); + if ((ret = mbedtls_pk_sign_restartable(mbedtls_ssl_own_key(ssl), + md_alg, hash_start, hashlen, + ssl->out_msg + 6 + offset, + out_buf_len - 6 - offset, + &n, + ssl->conf->f_rng, ssl->conf->p_rng, rs_ctx)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_sign", ret); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) - if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { ret = MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS; + } #endif - return( ret ); + return ret; } - MBEDTLS_PUT_UINT16_BE( n, ssl->out_msg, offset + 4 ); + MBEDTLS_PUT_UINT16_BE(n, ssl->out_msg, offset + 4); ssl->out_msglen = 6 + n + offset; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; @@ -3531,21 +3343,20 @@ sign: ssl->state++; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate verify")); - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) +static int ssl_parse_new_session_ticket(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; uint32_t lifetime; @@ -3553,22 +3364,20 @@ static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) unsigned char *ticket; const unsigned char *msg; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse new session ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse new session ticket")); - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad new session ticket message" ) ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad new session ticket message")); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } /* @@ -3581,31 +3390,29 @@ static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) * 4 . 5 ticket_len (n) * 6 . 5+n ticket content */ - if( ssl->in_msg[0] != MBEDTLS_SSL_HS_NEW_SESSION_TICKET || - ssl->in_hslen < 6 + mbedtls_ssl_hs_hdr_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad new session ticket message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ssl->in_msg[0] != MBEDTLS_SSL_HS_NEW_SESSION_TICKET || + ssl->in_hslen < 6 + mbedtls_ssl_hs_hdr_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad new session ticket message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - msg = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); + msg = ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl); - lifetime = ( ((uint32_t) msg[0]) << 24 ) | ( msg[1] << 16 ) | - ( msg[2] << 8 ) | ( msg[3] ); + lifetime = (((uint32_t) msg[0]) << 24) | (msg[1] << 16) | + (msg[2] << 8) | (msg[3]); - ticket_len = ( msg[4] << 8 ) | ( msg[5] ); + ticket_len = (msg[4] << 8) | (msg[5]); - if( ticket_len + 6 + mbedtls_ssl_hs_hdr_len( ssl ) != ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad new session ticket message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (ticket_len + 6 + mbedtls_ssl_hs_hdr_len(ssl) != ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad new session ticket message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket length: %" MBEDTLS_PRINTF_SIZET, ticket_len ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket length: %" MBEDTLS_PRINTF_SIZET, ticket_len)); /* We're not waiting for a NewSessionTicket message any more */ ssl->handshake->new_session_ticket = 0; @@ -3615,33 +3422,32 @@ static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) * Zero-length ticket means the server changed his mind and doesn't want * to send a ticket after all, so just forget it */ - if( ticket_len == 0 ) - return( 0 ); + if (ticket_len == 0) { + return 0; + } - if( ssl->session != NULL && ssl->session->ticket != NULL ) - { - mbedtls_platform_zeroize( ssl->session->ticket, - ssl->session->ticket_len ); - mbedtls_free( ssl->session->ticket ); + if (ssl->session != NULL && ssl->session->ticket != NULL) { + mbedtls_platform_zeroize(ssl->session->ticket, + ssl->session->ticket_len); + mbedtls_free(ssl->session->ticket); ssl->session->ticket = NULL; ssl->session->ticket_len = 0; } - mbedtls_platform_zeroize( ssl->session_negotiate->ticket, - ssl->session_negotiate->ticket_len ); - mbedtls_free( ssl->session_negotiate->ticket ); + mbedtls_platform_zeroize(ssl->session_negotiate->ticket, + ssl->session_negotiate->ticket_len); + mbedtls_free(ssl->session_negotiate->ticket); ssl->session_negotiate->ticket = NULL; ssl->session_negotiate->ticket_len = 0; - if( ( ticket = mbedtls_calloc( 1, ticket_len ) ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ticket alloc failed" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((ticket = mbedtls_calloc(1, ticket_len)) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ticket alloc failed")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( ticket, msg + 6, ticket_len ); + memcpy(ticket, msg + 6, ticket_len); ssl->session_negotiate->ticket = ticket; ssl->session_negotiate->ticket_len = ticket_len; @@ -3652,133 +3458,131 @@ static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) * "If the client receives a session ticket from the server, then it * discards any Session ID that was sent in the ServerHello." */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket in use, discarding session id" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket in use, discarding session id")); ssl->session_negotiate->id_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse new session ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse new session ticket")); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ /* * SSL handshake -- client side -- single step */ -int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handshake_client_step(mbedtls_ssl_context *ssl) { int ret = 0; /* Change state now, so that it is right in mbedtls_ssl_read_record(), used * by DTLS for dropping out-of-sequence ChangeCipherSpec records */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC && - ssl->handshake->new_session_ticket != 0 ) - { + if (ssl->state == MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC && + ssl->handshake->new_session_ticket != 0) { ssl->state = MBEDTLS_SSL_NEW_SESSION_TICKET; } #endif - switch( ssl->state ) - { + switch (ssl->state) { case MBEDTLS_SSL_HELLO_REQUEST: ssl->state = MBEDTLS_SSL_CLIENT_HELLO; break; - /* - * ==> ClientHello - */ - case MBEDTLS_SSL_CLIENT_HELLO: - ret = mbedtls_ssl_write_client_hello( ssl ); - break; + /* + * ==> ClientHello + */ + case MBEDTLS_SSL_CLIENT_HELLO: + ret = mbedtls_ssl_write_client_hello(ssl); + break; - /* - * <== ServerHello - * Certificate - * ( ServerKeyExchange ) - * ( CertificateRequest ) - * ServerHelloDone - */ - case MBEDTLS_SSL_SERVER_HELLO: - ret = ssl_parse_server_hello( ssl ); - break; + /* + * <== ServerHello + * Certificate + * ( ServerKeyExchange ) + * ( CertificateRequest ) + * ServerHelloDone + */ + case MBEDTLS_SSL_SERVER_HELLO: + ret = ssl_parse_server_hello(ssl); + break; - case MBEDTLS_SSL_SERVER_CERTIFICATE: - ret = mbedtls_ssl_parse_certificate( ssl ); - break; + case MBEDTLS_SSL_SERVER_CERTIFICATE: + ret = mbedtls_ssl_parse_certificate(ssl); + break; - case MBEDTLS_SSL_SERVER_KEY_EXCHANGE: - ret = ssl_parse_server_key_exchange( ssl ); - break; + case MBEDTLS_SSL_SERVER_KEY_EXCHANGE: + ret = ssl_parse_server_key_exchange(ssl); + break; - case MBEDTLS_SSL_CERTIFICATE_REQUEST: - ret = ssl_parse_certificate_request( ssl ); - break; + case MBEDTLS_SSL_CERTIFICATE_REQUEST: + ret = ssl_parse_certificate_request(ssl); + break; - case MBEDTLS_SSL_SERVER_HELLO_DONE: - ret = ssl_parse_server_hello_done( ssl ); - break; + case MBEDTLS_SSL_SERVER_HELLO_DONE: + ret = ssl_parse_server_hello_done(ssl); + break; - /* - * ==> ( Certificate/Alert ) - * ClientKeyExchange - * ( CertificateVerify ) - * ChangeCipherSpec - * Finished - */ - case MBEDTLS_SSL_CLIENT_CERTIFICATE: - ret = mbedtls_ssl_write_certificate( ssl ); - break; + /* + * ==> ( Certificate/Alert ) + * ClientKeyExchange + * ( CertificateVerify ) + * ChangeCipherSpec + * Finished + */ + case MBEDTLS_SSL_CLIENT_CERTIFICATE: + ret = mbedtls_ssl_write_certificate(ssl); + break; - case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE: - ret = ssl_write_client_key_exchange( ssl ); - break; + case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE: + ret = ssl_write_client_key_exchange(ssl); + break; - case MBEDTLS_SSL_CERTIFICATE_VERIFY: - ret = ssl_write_certificate_verify( ssl ); - break; + case MBEDTLS_SSL_CERTIFICATE_VERIFY: + ret = ssl_write_certificate_verify(ssl); + break; - case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC: - ret = mbedtls_ssl_write_change_cipher_spec( ssl ); - break; + case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC: + ret = mbedtls_ssl_write_change_cipher_spec(ssl); + break; - case MBEDTLS_SSL_CLIENT_FINISHED: - ret = mbedtls_ssl_write_finished( ssl ); - break; + case MBEDTLS_SSL_CLIENT_FINISHED: + ret = mbedtls_ssl_write_finished(ssl); + break; - /* - * <== ( NewSessionTicket ) - * ChangeCipherSpec - * Finished - */ + /* + * <== ( NewSessionTicket ) + * ChangeCipherSpec + * Finished + */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - case MBEDTLS_SSL_NEW_SESSION_TICKET: - ret = ssl_parse_new_session_ticket( ssl ); - break; + case MBEDTLS_SSL_NEW_SESSION_TICKET: + ret = ssl_parse_new_session_ticket(ssl); + break; #endif - case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC: - ret = mbedtls_ssl_parse_change_cipher_spec( ssl ); - break; + case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC: + ret = mbedtls_ssl_parse_change_cipher_spec(ssl); + break; - case MBEDTLS_SSL_SERVER_FINISHED: - ret = mbedtls_ssl_parse_finished( ssl ); - break; + case MBEDTLS_SSL_SERVER_FINISHED: + ret = mbedtls_ssl_parse_finished(ssl); + break; - case MBEDTLS_SSL_FLUSH_BUFFERS: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "handshake: done" ) ); - ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP; - break; + case MBEDTLS_SSL_FLUSH_BUFFERS: + MBEDTLS_SSL_DEBUG_MSG(2, ("handshake: done")); + ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP; + break; - case MBEDTLS_SSL_HANDSHAKE_WRAPUP: - mbedtls_ssl_handshake_wrapup( ssl ); - break; + case MBEDTLS_SSL_HANDSHAKE_WRAPUP: + mbedtls_ssl_handshake_wrapup(ssl); + break; - default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid state %d", ssl->state ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - } + default: + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid state %d", ssl->state)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_TLS1_2 */ diff --git a/library/ssl_tls12_server.c b/library/ssl_tls12_server.c index a28cd6740..929829249 100644 --- a/library/ssl_tls12_server.c +++ b/library/ssl_tls12_server.c @@ -43,28 +43,30 @@ #endif #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) -int mbedtls_ssl_set_client_transport_id( mbedtls_ssl_context *ssl, - const unsigned char *info, - size_t ilen ) +int mbedtls_ssl_set_client_transport_id(mbedtls_ssl_context *ssl, + const unsigned char *info, + size_t ilen) { - if( ssl->conf->endpoint != MBEDTLS_SSL_IS_SERVER ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->endpoint != MBEDTLS_SSL_IS_SERVER) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - mbedtls_free( ssl->cli_id ); + mbedtls_free(ssl->cli_id); - if( ( ssl->cli_id = mbedtls_calloc( 1, ilen ) ) == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((ssl->cli_id = mbedtls_calloc(1, ilen)) == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } - memcpy( ssl->cli_id, info, ilen ); + memcpy(ssl->cli_id, info, ilen); ssl->cli_id_len = ilen; - return( 0 ); + return 0; } -void mbedtls_ssl_conf_dtls_cookies( mbedtls_ssl_config *conf, - mbedtls_ssl_cookie_write_t *f_cookie_write, - mbedtls_ssl_cookie_check_t *f_cookie_check, - void *p_cookie ) +void mbedtls_ssl_conf_dtls_cookies(mbedtls_ssl_config *conf, + mbedtls_ssl_cookie_write_t *f_cookie_write, + mbedtls_ssl_cookie_check_t *f_cookie_check, + void *p_cookie) { conf->f_cookie_write = f_cookie_write; conf->f_cookie_check = f_cookie_check; @@ -74,62 +76,62 @@ void mbedtls_ssl_conf_dtls_cookies( mbedtls_ssl_config *conf, #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_conf_has_psk_or_cb( mbedtls_ssl_config const *conf ) +static int ssl_conf_has_psk_or_cb(mbedtls_ssl_config const *conf) { - if( conf->f_psk != NULL ) - return( 1 ); + if (conf->f_psk != NULL) { + return 1; + } - if( conf->psk_identity_len == 0 || conf->psk_identity == NULL ) - return( 0 ); + if (conf->psk_identity_len == 0 || conf->psk_identity == NULL) { + return 0; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ! mbedtls_svc_key_id_is_null( conf->psk_opaque ) ) - return( 1 ); + if (!mbedtls_svc_key_id_is_null(conf->psk_opaque)) { + return 1; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( conf->psk != NULL && conf->psk_len != 0 ) - return( 1 ); + if (conf->psk != NULL && conf->psk_len != 0) { + return 1; + } - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_renegotiation_info( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_renegotiation_info(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) - { + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { /* Check verify-data in constant-time. The length OTOH is no secret */ - if( len != 1 + ssl->verify_data_len || + if (len != 1 + ssl->verify_data_len || buf[0] != ssl->verify_data_len || - mbedtls_ct_memcmp( buf + 1, ssl->peer_verify_data, - ssl->verify_data_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching renegotiation info" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + mbedtls_ct_memcmp(buf + 1, ssl->peer_verify_data, + ssl->verify_data_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("non-matching renegotiation info")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - } - else + } else #endif /* MBEDTLS_SSL_RENEGOTIATION */ { - if( len != 1 || buf[0] != 0x0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-zero length renegotiation info" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (len != 1 || buf[0] != 0x0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("non-zero length renegotiation info")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } ssl->secure_renegotiation = MBEDTLS_SSL_SECURE_RENEGOTIATION; } - return( 0 ); + return 0; } #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ @@ -174,63 +176,59 @@ static int ssl_parse_renegotiation_info( mbedtls_ssl_context *ssl, * DHE groups are not supported yet. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_supported_groups_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_supported_groups_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { size_t list_size, our_size; const unsigned char *p; uint16_t *curves_tls_id; - if ( len < 2 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len < 2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - list_size = ( ( buf[0] << 8 ) | ( buf[1] ) ); - if( list_size + 2 != len || - list_size % 2 != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + list_size = ((buf[0] << 8) | (buf[1])); + if (list_size + 2 != len || + list_size % 2 != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Should never happen unless client duplicates the extension */ - if( ssl->handshake->curves_tls_id != NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (ssl->handshake->curves_tls_id != NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* Don't allow our peer to make us allocate too much memory, * and leave room for a final 0 */ our_size = list_size / 2 + 1; - if( our_size > MBEDTLS_ECP_DP_MAX ) + if (our_size > MBEDTLS_ECP_DP_MAX) { our_size = MBEDTLS_ECP_DP_MAX; + } - if( ( curves_tls_id = mbedtls_calloc( our_size, - sizeof( *curves_tls_id ) ) ) == NULL ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((curves_tls_id = mbedtls_calloc(our_size, + sizeof(*curves_tls_id))) == NULL) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } ssl->handshake->curves_tls_id = curves_tls_id; p = buf + 2; - while( list_size > 0 && our_size > 1 ) - { - uint16_t curr_tls_id = MBEDTLS_GET_UINT16_BE( p, 0 ); + while (list_size > 0 && our_size > 1) { + uint16_t curr_tls_id = MBEDTLS_GET_UINT16_BE(p, 0); - if( mbedtls_ssl_get_ecp_group_id_from_tls_id( curr_tls_id ) != - MBEDTLS_ECP_DP_NONE ) - { + if (mbedtls_ssl_get_ecp_group_id_from_tls_id(curr_tls_id) != + MBEDTLS_ECP_DP_NONE) { *curves_tls_id++ = curr_tls_id; our_size--; } @@ -239,296 +237,280 @@ static int ssl_parse_supported_groups_ext( mbedtls_ssl_context *ssl, p += 2; } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_supported_point_formats( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_supported_point_formats(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { size_t list_size; const unsigned char *p; - if( len == 0 || (size_t)( buf[0] + 1 ) != len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len == 0 || (size_t) (buf[0] + 1) != len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } list_size = buf[0]; p = buf + 1; - while( list_size > 0 ) - { - if( p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED || - p[0] == MBEDTLS_ECP_PF_COMPRESSED ) - { + while (list_size > 0) { + if (p[0] == MBEDTLS_ECP_PF_UNCOMPRESSED || + p[0] == MBEDTLS_ECP_PF_COMPRESSED) { #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - ( defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) ) + (defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C)) ssl->handshake->ecdh_ctx.point_format = p[0]; #endif /* !MBEDTLS_USE_PSA_CRYPTO && ( MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C ) */ #if !defined(MBEDTLS_USE_PSA_CRYPTO) && \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - mbedtls_ecjpake_set_point_format( &ssl->handshake->ecjpake_ctx, - p[0] ); + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + mbedtls_ecjpake_set_point_format(&ssl->handshake->ecjpake_ctx, + p[0]); #endif /* !MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ - MBEDTLS_SSL_DEBUG_MSG( 4, ( "point format selected: %d", p[0] ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(4, ("point format selected: %d", p[0])); + return 0; } list_size--; p++; } - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len) +static int ssl_parse_ecjpake_kkpp(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ssl->handshake->psa_pake_ctx_is_ok != 1 ) + if (ssl->handshake->psa_pake_ctx_is_ok != 1) #else - if( mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) + if (mbedtls_ecjpake_check(&ssl->handshake->ecjpake_ctx) != 0) #endif /* MBEDTLS_USE_PSA_CRYPTO */ { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip ecjpake kkpp extension" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("skip ecjpake kkpp extension")); + return 0; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_psa_ecjpake_read_round( - &ssl->handshake->psa_pake_ctx, buf, len, - MBEDTLS_ECJPAKE_ROUND_ONE ) ) != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + if ((ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, buf, len, + MBEDTLS_ECJPAKE_ROUND_ONE)) != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round one", ret ); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_input round one", ret); mbedtls_ssl_send_alert_message( - ssl, - MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); - return( ret ); + return ret; } #else - if( ( ret = mbedtls_ecjpake_read_round_one( &ssl->handshake->ecjpake_ctx, - buf, len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_one", ret ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( ret ); + if ((ret = mbedtls_ecjpake_read_round_one(&ssl->handshake->ecjpake_ctx, + buf, len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_one", ret); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Only mark the extension as OK when we're sure it is */ ssl->handshake->cli_exts |= MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK; - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_max_fragment_length_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_max_fragment_length_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( len != 1 || buf[0] >= MBEDTLS_SSL_MAX_FRAG_LEN_INVALID ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (len != 1 || buf[0] >= MBEDTLS_SSL_MAX_FRAG_LEN_INVALID) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } ssl->session_negotiate->mfl_code = buf[0]; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_cid_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_cid_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { size_t peer_cid_len; /* CID extension only makes sense in DTLS */ - if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* * struct { * opaque cid<0..2^8-1>; * } ConnectionId; - */ + */ - if( len < 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len < 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } peer_cid_len = *buf++; len--; - if( len != peer_cid_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len != peer_cid_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Ignore CID if the user has disabled its use. */ - if( ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED ) - { + if (ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED) { /* Leave ssl->handshake->cid_in_use in its default * value of MBEDTLS_SSL_CID_DISABLED. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Client sent CID extension, but CID disabled" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Client sent CID extension, but CID disabled")); + return 0; } - if( peer_cid_len > MBEDTLS_SSL_CID_OUT_LEN_MAX ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (peer_cid_len > MBEDTLS_SSL_CID_OUT_LEN_MAX) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } ssl->handshake->cid_in_use = MBEDTLS_SSL_CID_ENABLED; ssl->handshake->peer_cid_len = (uint8_t) peer_cid_len; - memcpy( ssl->handshake->peer_cid, buf, peer_cid_len ); + memcpy(ssl->handshake->peer_cid, buf, peer_cid_len); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Use of CID extension negotiated" ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Client CID", buf, peer_cid_len ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Use of CID extension negotiated")); + MBEDTLS_SSL_DEBUG_BUF(3, "Client CID", buf, peer_cid_len); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_encrypt_then_mac_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( len != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ((void) buf); - if( ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_ENABLED ) - { + if (ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_ENABLED) { ssl->session_negotiate->encrypt_then_mac = MBEDTLS_SSL_ETM_ENABLED; } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_extended_ms_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_extended_ms_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { - if( len != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ((void) buf); - if( ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_ENABLED ) - { + if (ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_ENABLED) { ssl->handshake->extended_ms = MBEDTLS_SSL_EXTENDED_MS_ENABLED; } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_session_ticket_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t len ) +static int ssl_parse_session_ticket_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_session session; - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); - if( ssl->conf->f_ticket_parse == NULL || - ssl->conf->f_ticket_write == NULL ) - { - return( 0 ); + if (ssl->conf->f_ticket_parse == NULL || + ssl->conf->f_ticket_write == NULL) { + return 0; } /* Remember the client asked us to send a new ticket */ ssl->handshake->new_session_ticket = 1; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket length: %" MBEDTLS_PRINTF_SIZET, len ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket length: %" MBEDTLS_PRINTF_SIZET, len)); - if( len == 0 ) - return( 0 ); + if (len == 0) { + return 0; + } #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket rejected: renegotiating" ) ); - return( 0 ); + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket rejected: renegotiating")); + return 0; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ /* * Failures are ok: just ignore the ticket and proceed. */ - if( ( ret = ssl->conf->f_ticket_parse( ssl->conf->p_ticket, &session, - buf, len ) ) != 0 ) - { - mbedtls_ssl_session_free( &session ); + if ((ret = ssl->conf->f_ticket_parse(ssl->conf->p_ticket, &session, + buf, len)) != 0) { + mbedtls_ssl_session_free(&session); - if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is not authentic" ) ); - else if( ret == MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ) - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is expired" ) ); - else - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_ticket_parse", ret ); + if (ret == MBEDTLS_ERR_SSL_INVALID_MAC) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket is not authentic")); + } else if (ret == MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket is expired")); + } else { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_ticket_parse", ret); + } - return( 0 ); + return 0; } /* @@ -536,44 +518,43 @@ static int ssl_parse_session_ticket_ext( mbedtls_ssl_context *ssl, * inform them we're accepting the ticket (RFC 5077 section 3.4) */ session.id_len = ssl->session_negotiate->id_len; - memcpy( &session.id, ssl->session_negotiate->id, session.id_len ); + memcpy(&session.id, ssl->session_negotiate->id, session.id_len); - mbedtls_ssl_session_free( ssl->session_negotiate ); - memcpy( ssl->session_negotiate, &session, sizeof( mbedtls_ssl_session ) ); + mbedtls_ssl_session_free(ssl->session_negotiate); + memcpy(ssl->session_negotiate, &session, sizeof(mbedtls_ssl_session)); /* Zeroize instead of free as we copied the content */ - mbedtls_platform_zeroize( &session, sizeof( mbedtls_ssl_session ) ); + mbedtls_platform_zeroize(&session, sizeof(mbedtls_ssl_session)); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "session successfully restored from ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("session successfully restored from ticket")); ssl->handshake->resume = 1; /* Don't send a new ticket after all, this one is OK */ ssl->handshake->new_session_ticket = 0; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_SSL_DTLS_SRTP) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t len ) +static int ssl_parse_use_srtp_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t len) { mbedtls_ssl_srtp_profile client_protection = MBEDTLS_TLS_SRTP_UNSET; - size_t i,j; + size_t i, j; size_t profile_length; uint16_t mki_length; /*! 2 bytes for profile length and 1 byte for mki len */ const size_t size_of_lengths = 3; /* If use_srtp is not configured, just ignore the extension */ - if( ( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) || - ( ssl->conf->dtls_srtp_profile_list == NULL ) || - ( ssl->conf->dtls_srtp_profile_list_len == 0 ) ) - { - return( 0 ); + if ((ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) || + (ssl->conf->dtls_srtp_profile_list == NULL) || + (ssl->conf->dtls_srtp_profile_list_len == 0)) { + return 0; } /* RFC5764 section 4.1.1 @@ -593,86 +574,77 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, * Check here that we have at least 2 bytes of protection profiles length * and one of srtp_mki length */ - if( len < size_of_lengths ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (len < size_of_lengths) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - ssl->dtls_srtp_info.chosen_dtls_srtp_profile = MBEDTLS_TLS_SRTP_UNSET; + ssl->dtls_srtp_info.chosen_dtls_srtp_profile = MBEDTLS_TLS_SRTP_UNSET; /* first 2 bytes are protection profile length(in bytes) */ - profile_length = ( buf[0] << 8 ) | buf[1]; + profile_length = (buf[0] << 8) | buf[1]; buf += 2; /* The profile length cannot be bigger than input buffer size - lengths fields */ - if( profile_length > len - size_of_lengths || - profile_length % 2 != 0 ) /* profiles are 2 bytes long, so the length must be even */ - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (profile_length > len - size_of_lengths || + profile_length % 2 != 0) { /* profiles are 2 bytes long, so the length must be even */ + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* * parse the extension list values are defined in * http://www.iana.org/assignments/srtp-protection/srtp-protection.xhtml */ - for( j = 0; j < profile_length; j += 2 ) - { + for (j = 0; j < profile_length; j += 2) { uint16_t protection_profile_value = buf[j] << 8 | buf[j + 1]; - client_protection = mbedtls_ssl_check_srtp_profile_value( protection_profile_value ); + client_protection = mbedtls_ssl_check_srtp_profile_value(protection_profile_value); - if( client_protection != MBEDTLS_TLS_SRTP_UNSET ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found srtp profile: %s", - mbedtls_ssl_get_srtp_profile_as_string( - client_protection ) ) ); - } - else - { + if (client_protection != MBEDTLS_TLS_SRTP_UNSET) { + MBEDTLS_SSL_DEBUG_MSG(3, ("found srtp profile: %s", + mbedtls_ssl_get_srtp_profile_as_string( + client_protection))); + } else { continue; } /* check if suggested profile is in our list */ - for( i = 0; i < ssl->conf->dtls_srtp_profile_list_len; i++) - { - if( client_protection == ssl->conf->dtls_srtp_profile_list[i] ) - { + for (i = 0; i < ssl->conf->dtls_srtp_profile_list_len; i++) { + if (client_protection == ssl->conf->dtls_srtp_profile_list[i]) { ssl->dtls_srtp_info.chosen_dtls_srtp_profile = ssl->conf->dtls_srtp_profile_list[i]; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected srtp profile: %s", - mbedtls_ssl_get_srtp_profile_as_string( - client_protection ) ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("selected srtp profile: %s", + mbedtls_ssl_get_srtp_profile_as_string( + client_protection))); break; } } - if( ssl->dtls_srtp_info.chosen_dtls_srtp_profile != MBEDTLS_TLS_SRTP_UNSET ) + if (ssl->dtls_srtp_info.chosen_dtls_srtp_profile != MBEDTLS_TLS_SRTP_UNSET) { break; + } } buf += profile_length; /* buf points to the mki length */ mki_length = *buf; buf++; - if( mki_length > MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH || - mki_length + profile_length + size_of_lengths != len ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (mki_length > MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH || + mki_length + profile_length + size_of_lengths != len) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Parse the mki only if present and mki is supported locally */ - if( ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED && - mki_length > 0 ) - { + if (ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED && + mki_length > 0) { ssl->dtls_srtp_info.mki_len = mki_length; - memcpy( ssl->dtls_srtp_info.mki_value, buf, mki_length ); + memcpy(ssl->dtls_srtp_info.mki_value, buf, mki_length); - MBEDTLS_SSL_DEBUG_BUF( 3, "using mki", ssl->dtls_srtp_info.mki_value, - ssl->dtls_srtp_info.mki_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "using mki", ssl->dtls_srtp_info.mki_value, + ssl->dtls_srtp_info.mki_len); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ @@ -686,22 +658,22 @@ static int ssl_parse_use_srtp_ext( mbedtls_ssl_context *ssl, */ #if defined(MBEDTLS_ECDSA_C) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_check_key_curve( mbedtls_pk_context *pk, - uint16_t *curves_tls_id ) +static int ssl_check_key_curve(mbedtls_pk_context *pk, + uint16_t *curves_tls_id) { uint16_t *curr_tls_id = curves_tls_id; - mbedtls_ecp_group_id grp_id = mbedtls_pk_ec( *pk )->grp.id; + mbedtls_ecp_group_id grp_id = mbedtls_pk_ec(*pk)->grp.id; mbedtls_ecp_group_id curr_grp_id; - while( *curr_tls_id != 0 ) - { - curr_grp_id = mbedtls_ssl_get_ecp_group_id_from_tls_id( *curr_tls_id ); - if( curr_grp_id == grp_id ) - return( 0 ); + while (*curr_tls_id != 0) { + curr_grp_id = mbedtls_ssl_get_ecp_group_id_from_tls_id(*curr_tls_id); + if (curr_grp_id == grp_id) { + return 0; + } curr_tls_id++; } - return( -1 ); + return -1; } #endif /* MBEDTLS_ECDSA_C */ @@ -710,68 +682,66 @@ static int ssl_check_key_curve( mbedtls_pk_context *pk, * return 0 on success and -1 on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_pick_cert( mbedtls_ssl_context *ssl, - const mbedtls_ssl_ciphersuite_t * ciphersuite_info ) +static int ssl_pick_cert(mbedtls_ssl_context *ssl, + const mbedtls_ssl_ciphersuite_t *ciphersuite_info) { mbedtls_ssl_key_cert *cur, *list; #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t pk_alg = - mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg( ciphersuite_info ); + mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(ciphersuite_info); psa_key_usage_t pk_usage = - mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage( ciphersuite_info ); + mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(ciphersuite_info); #else mbedtls_pk_type_t pk_alg = - mbedtls_ssl_get_ciphersuite_sig_pk_alg( ciphersuite_info ); + mbedtls_ssl_get_ciphersuite_sig_pk_alg(ciphersuite_info); #endif /* MBEDTLS_USE_PSA_CRYPTO */ uint32_t flags; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_key_cert != NULL ) + if (ssl->handshake->sni_key_cert != NULL) { list = ssl->handshake->sni_key_cert; - else + } else #endif - list = ssl->conf->key_cert; + list = ssl->conf->key_cert; int pk_alg_is_none = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - pk_alg_is_none = ( pk_alg == PSA_ALG_NONE ); + pk_alg_is_none = (pk_alg == PSA_ALG_NONE); #else - pk_alg_is_none = ( pk_alg == MBEDTLS_PK_NONE ); + pk_alg_is_none = (pk_alg == MBEDTLS_PK_NONE); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( pk_alg_is_none ) - return( 0 ); - - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite requires certificate" ) ); - - if( list == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server has no certificate" ) ); - return( -1 ); + if (pk_alg_is_none) { + return 0; } - for( cur = list; cur != NULL; cur = cur->next ) - { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite requires certificate")); + + if (list == NULL) { + MBEDTLS_SSL_DEBUG_MSG(3, ("server has no certificate")); + return -1; + } + + for (cur = list; cur != NULL; cur = cur->next) { flags = 0; - MBEDTLS_SSL_DEBUG_CRT( 3, "candidate certificate chain, certificate", - cur->cert ); + MBEDTLS_SSL_DEBUG_CRT(3, "candidate certificate chain, certificate", + cur->cert); int key_type_matches = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - key_type_matches = ( ( ssl->conf->f_async_sign_start != NULL || - ssl->conf->f_async_decrypt_start != NULL || - mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ) && - mbedtls_pk_can_do_ext( &cur->cert->pk, pk_alg, pk_usage ) ); + key_type_matches = ((ssl->conf->f_async_sign_start != NULL || + ssl->conf->f_async_decrypt_start != NULL || + mbedtls_pk_can_do_ext(cur->key, pk_alg, pk_usage)) && + mbedtls_pk_can_do_ext(&cur->cert->pk, pk_alg, pk_usage)); #else key_type_matches = ( - mbedtls_pk_can_do_ext( cur->key, pk_alg, pk_usage ) ); + mbedtls_pk_can_do_ext(cur->key, pk_alg, pk_usage)); #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #else - key_type_matches = mbedtls_pk_can_do( &cur->cert->pk, pk_alg ); + key_type_matches = mbedtls_pk_can_do(&cur->cert->pk, pk_alg); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( !key_type_matches ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: key type" ) ); + if (!key_type_matches) { + MBEDTLS_SSL_DEBUG_MSG(3, ("certificate mismatch: key type")); continue; } @@ -783,20 +753,18 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, * different uses based on keyUsage, eg if they want to avoid signing * and decrypting with the same RSA key. */ - if( mbedtls_ssl_check_cert_usage( cur->cert, ciphersuite_info, - MBEDTLS_SSL_IS_SERVER, &flags ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: " - "(extended) key usage extension" ) ); + if (mbedtls_ssl_check_cert_usage(cur->cert, ciphersuite_info, + MBEDTLS_SSL_IS_SERVER, &flags) != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("certificate mismatch: " + "(extended) key usage extension")); continue; } #if defined(MBEDTLS_ECDSA_C) - if( pk_alg == MBEDTLS_PK_ECDSA && - ssl_check_key_curve( &cur->cert->pk, - ssl->handshake->curves_tls_id ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: elliptic curve" ) ); + if (pk_alg == MBEDTLS_PK_ECDSA && + ssl_check_key_curve(&cur->cert->pk, + ssl->handshake->curves_tls_id) != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("certificate mismatch: elliptic curve")); continue; } #endif @@ -806,15 +774,14 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, } /* Do not update ssl->handshake->key_cert unless there is a match */ - if( cur != NULL ) - { + if (cur != NULL) { ssl->handshake->key_cert = cur; - MBEDTLS_SSL_DEBUG_CRT( 3, "selected certificate chain, certificate", - ssl->handshake->key_cert->cert ); - return( 0 ); + MBEDTLS_SSL_DEBUG_CRT(3, "selected certificate chain, certificate", + ssl->handshake->key_cert->cert); + return 0; } - return( -1 ); + return -1; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ @@ -823,8 +790,8 @@ static int ssl_pick_cert( mbedtls_ssl_context *ssl, * Sets ciphersuite_info only if the suite matches. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_ciphersuite_match( mbedtls_ssl_context *ssl, int suite_id, - const mbedtls_ssl_ciphersuite_t **ciphersuite_info ) +static int ssl_ciphersuite_match(mbedtls_ssl_context *ssl, int suite_id, + const mbedtls_ssl_ciphersuite_t **ciphersuite_info) { const mbedtls_ssl_ciphersuite_t *suite_info; @@ -832,53 +799,48 @@ static int ssl_ciphersuite_match( mbedtls_ssl_context *ssl, int suite_id, mbedtls_pk_type_t sig_type; #endif - suite_info = mbedtls_ssl_ciphersuite_from_id( suite_id ); - if( suite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + suite_info = mbedtls_ssl_ciphersuite_from_id(suite_id); + if (suite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "trying ciphersuite: %#04x (%s)", - (unsigned int) suite_id, suite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("trying ciphersuite: %#04x (%s)", + (unsigned int) suite_id, suite_info->name)); - if( suite_info->min_tls_version > ssl->tls_version || - suite_info->max_tls_version < ssl->tls_version ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: version" ) ); - return( 0 ); + if (suite_info->min_tls_version > ssl->tls_version || + suite_info->max_tls_version < ssl->tls_version) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: version")); + return 0; } #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && - ( ssl->handshake->cli_exts & MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: ecjpake " - "not configured or ext missing" ) ); - return( 0 ); + if (suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE && + (ssl->handshake->cli_exts & MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK) == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: ecjpake " + "not configured or ext missing")); + return 0; } #endif #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) - if( mbedtls_ssl_ciphersuite_uses_ec( suite_info ) && - ( ssl->handshake->curves_tls_id == NULL || - ssl->handshake->curves_tls_id[0] == 0 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: " - "no common elliptic curve" ) ); - return( 0 ); + if (mbedtls_ssl_ciphersuite_uses_ec(suite_info) && + (ssl->handshake->curves_tls_id == NULL || + ssl->handshake->curves_tls_id[0] == 0)) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: " + "no common elliptic curve")); + return 0; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) /* If the ciphersuite requires a pre-shared key and we don't * have one, skip it now rather than failing later */ - if( mbedtls_ssl_ciphersuite_uses_psk( suite_info ) && - ssl_conf_has_psk_or_cb( ssl->conf ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: no pre-shared key" ) ); - return( 0 ); + if (mbedtls_ssl_ciphersuite_uses_psk(suite_info) && + ssl_conf_has_psk_or_cb(ssl->conf) == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: no pre-shared key")); + return 0; } #endif @@ -890,38 +852,36 @@ static int ssl_ciphersuite_match( mbedtls_ssl_context *ssl, int suite_id, * - try the next ciphersuite if we don't * This must be done last since we modify the key_cert list. */ - if( ssl_pick_cert( ssl, suite_info ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: " - "no suitable certificate" ) ); - return( 0 ); + if (ssl_pick_cert(ssl, suite_info) != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: " + "no suitable certificate")); + return 0; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* If the ciphersuite requires signing, check whether * a suitable hash algorithm is present. */ - sig_type = mbedtls_ssl_get_ciphersuite_sig_alg( suite_info ); - if( sig_type != MBEDTLS_PK_NONE && + sig_type = mbedtls_ssl_get_ciphersuite_sig_alg(suite_info); + if (sig_type != MBEDTLS_PK_NONE && mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( - ssl, mbedtls_ssl_sig_from_pk_alg( sig_type ) ) == MBEDTLS_SSL_HASH_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ciphersuite mismatch: no suitable hash algorithm " - "for signature algorithm %u", (unsigned) sig_type ) ); - return( 0 ); + ssl, mbedtls_ssl_sig_from_pk_alg(sig_type)) == MBEDTLS_SSL_HASH_NONE) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ciphersuite mismatch: no suitable hash algorithm " + "for signature algorithm %u", (unsigned) sig_type)); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ *ciphersuite_info = suite_info; - return( 0 ); + return 0; } /* This function doesn't alert on errors that happen early during ClientHello parsing because they might indicate that the client is not talking SSL/TLS at all and would not understand our alert. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_client_hello( mbedtls_ssl_context *ssl ) +static int ssl_parse_client_hello(mbedtls_ssl_context *ssl) { int ret, got_common_suite; size_t i, j; @@ -945,7 +905,7 @@ static int ssl_parse_client_hello( mbedtls_ssl_context *ssl ) int sig_hash_alg_ext_present = 0; #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse client hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse client hello")); int renegotiating; @@ -959,21 +919,19 @@ read_record_header: */ renegotiating = 0; #if defined(MBEDTLS_SSL_RENEGOTIATION) - renegotiating = ( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ); + renegotiating = (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE); #endif - if( !renegotiating ) - { - if( ( ret = mbedtls_ssl_fetch_input( ssl, 5 ) ) != 0 ) - { + if (!renegotiating) { + if ((ret = mbedtls_ssl_fetch_input(ssl, 5)) != 0) { /* No alert on a read error. */ - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_fetch_input", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_fetch_input", ret); + return ret; } } buf = ssl->in_hdr; - MBEDTLS_SSL_DEBUG_BUF( 4, "record header", buf, mbedtls_ssl_in_hdr_len( ssl ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "record header", buf, mbedtls_ssl_in_hdr_len(ssl)); /* * TLS Client Hello @@ -984,93 +942,85 @@ read_record_header: * 3 . 11 DTLS: epoch + record sequence number * 3 . 4 message length */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, message type: %d", - buf[0] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, message type: %d", + buf[0])); - if( buf[0] != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (buf[0] != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, message len.: %d", - ( ssl->in_len[0] << 8 ) | ssl->in_len[1] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, message len.: %d", + (ssl->in_len[0] << 8) | ssl->in_len[1])); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, protocol version: [%d:%d]", - buf[1], buf[2] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, protocol version: [%d:%d]", + buf[1], buf[2])); /* For DTLS if this is the initial handshake, remember the client sequence * number to use it in our next message (RFC 6347 4.2.1) */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM #if defined(MBEDTLS_SSL_RENEGOTIATION) && ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE #endif - ) - { + ) { /* Epoch should be 0 for initial handshakes */ - if( ssl->in_ctr[0] != 0 || ssl->in_ctr[1] != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (ssl->in_ctr[0] != 0 || ssl->in_ctr[1] != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - memcpy( &ssl->cur_out_ctr[2], ssl->in_ctr + 2, - sizeof( ssl->cur_out_ctr ) - 2 ); + memcpy(&ssl->cur_out_ctr[2], ssl->in_ctr + 2, + sizeof(ssl->cur_out_ctr) - 2); #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - if( mbedtls_ssl_dtls_replay_check( ssl ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "replayed record, discarding" ) ); + if (mbedtls_ssl_dtls_replay_check(ssl) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("replayed record, discarding")); ssl->next_record_offset = 0; ssl->in_left = 0; goto read_record_header; } /* No MAC to check yet, so we can update right now */ - mbedtls_ssl_dtls_replay_update( ssl ); + mbedtls_ssl_dtls_replay_update(ssl); #endif } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - msg_len = ( ssl->in_len[0] << 8 ) | ssl->in_len[1]; + msg_len = (ssl->in_len[0] << 8) | ssl->in_len[1]; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) - { + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { /* Set by mbedtls_ssl_read_record() */ msg_len = ssl->in_hslen; - } - else + } else #endif { - if( msg_len > MBEDTLS_SSL_IN_CONTENT_LEN ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (msg_len > MBEDTLS_SSL_IN_CONTENT_LEN) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - if( ( ret = mbedtls_ssl_fetch_input( ssl, - mbedtls_ssl_in_hdr_len( ssl ) + msg_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_fetch_input", ret ); - return( ret ); + if ((ret = mbedtls_ssl_fetch_input(ssl, + mbedtls_ssl_in_hdr_len(ssl) + msg_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_fetch_input", ret); + return ret; } - /* Done reading this record, get ready for the next one */ + /* Done reading this record, get ready for the next one */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - ssl->next_record_offset = msg_len + mbedtls_ssl_in_hdr_len( ssl ); - else + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + ssl->next_record_offset = msg_len + mbedtls_ssl_in_hdr_len(ssl); + } else #endif - ssl->in_left = 0; + ssl->in_left = 0; } buf = ssl->in_msg; - MBEDTLS_SSL_DEBUG_BUF( 4, "record contents", buf, msg_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "record contents", buf, msg_len); - ssl->handshake->update_checksum( ssl, buf, msg_len ); + ssl->handshake->update_checksum(ssl, buf, msg_len); /* * Handshake layer: @@ -1080,73 +1030,65 @@ read_record_header: * 6 . 8 DTLS only: fragment offset * 9 . 11 DTLS only: fragment length */ - if( msg_len < mbedtls_ssl_hs_hdr_len( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (msg_len < mbedtls_ssl_hs_hdr_len(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello v3, handshake type: %d", buf[0] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello v3, handshake type: %d", buf[0])); - if( buf[0] != MBEDTLS_SSL_HS_CLIENT_HELLO ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (buf[0] != MBEDTLS_SSL_HS_CLIENT_HELLO) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } { - size_t handshake_len = MBEDTLS_GET_UINT24_BE( buf, 1 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello v3, handshake len.: %u", - ( unsigned ) handshake_len ) ); + size_t handshake_len = MBEDTLS_GET_UINT24_BE(buf, 1); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello v3, handshake len.: %u", + (unsigned) handshake_len)); /* The record layer has a record size limit of 2^14 - 1 and * fragmentation is not supported, so buf[1] should be zero. */ - if( buf[1] != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message: %u != 0", - (unsigned) buf[1] ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (buf[1] != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != 0", + (unsigned) buf[1])); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* We don't support fragmentation of ClientHello (yet?) */ - if( msg_len != mbedtls_ssl_hs_hdr_len( ssl ) + handshake_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message: %u != %u + %u", - (unsigned) msg_len, - (unsigned) mbedtls_ssl_hs_hdr_len( ssl ), - (unsigned) handshake_len ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (msg_len != mbedtls_ssl_hs_hdr_len(ssl) + handshake_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message: %u != %u + %u", + (unsigned) msg_len, + (unsigned) mbedtls_ssl_hs_hdr_len(ssl), + (unsigned) handshake_len)); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* * Copy the client's handshake message_seq on initial handshakes, * check sequence number on renego. */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { + if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { /* This couldn't be done in ssl_prepare_handshake_record() */ - unsigned int cli_msg_seq = ( ssl->in_msg[4] << 8 ) | - ssl->in_msg[5]; + unsigned int cli_msg_seq = (ssl->in_msg[4] << 8) | + ssl->in_msg[5]; - if( cli_msg_seq != ssl->handshake->in_msg_seq ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message_seq: " - "%u (expected %u)", cli_msg_seq, - ssl->handshake->in_msg_seq ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (cli_msg_seq != ssl->handshake->in_msg_seq) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message_seq: " + "%u (expected %u)", cli_msg_seq, + ssl->handshake->in_msg_seq)); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ssl->handshake->in_msg_seq++; - } - else + } else #endif { - unsigned int cli_msg_seq = ( ssl->in_msg[4] << 8 ) | - ssl->in_msg[5]; + unsigned int cli_msg_seq = (ssl->in_msg[4] << 8) | + ssl->in_msg[5]; ssl->handshake->out_msg_seq = cli_msg_seq; ssl->handshake->in_msg_seq = cli_msg_seq + 1; } @@ -1156,24 +1098,23 @@ read_record_header: * fragment_offset == 0 and fragment_length == length */ size_t fragment_offset, fragment_length, length; - fragment_offset = MBEDTLS_GET_UINT24_BE( ssl->in_msg, 6 ); - fragment_length = MBEDTLS_GET_UINT24_BE( ssl->in_msg, 9 ); - length = MBEDTLS_GET_UINT24_BE( ssl->in_msg, 1 ); + fragment_offset = MBEDTLS_GET_UINT24_BE(ssl->in_msg, 6); + fragment_length = MBEDTLS_GET_UINT24_BE(ssl->in_msg, 9); + length = MBEDTLS_GET_UINT24_BE(ssl->in_msg, 1); MBEDTLS_SSL_DEBUG_MSG( - 4, ( "fragment_offset=%u fragment_length=%u length=%u", - (unsigned) fragment_offset, (unsigned) fragment_length, - (unsigned) length ) ); - if( fragment_offset != 0 || length != fragment_length ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ClientHello fragmentation not supported" ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + 4, ("fragment_offset=%u fragment_length=%u length=%u", + (unsigned) fragment_offset, (unsigned) fragment_length, + (unsigned) length)); + if (fragment_offset != 0 || length != fragment_length) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ClientHello fragmentation not supported")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - buf += mbedtls_ssl_hs_hdr_len( ssl ); - msg_len -= mbedtls_ssl_hs_hdr_len( ssl ); + buf += mbedtls_ssl_hs_hdr_len(ssl); + msg_len -= mbedtls_ssl_hs_hdr_len(ssl); /* * ClientHello layer: @@ -1196,135 +1137,122 @@ read_record_header: * 2 + 32 + 1 + 2 + 1 = 38 bytes. Check that first, so that we can * read at least up to session id length without worrying. */ - if( msg_len < 38 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (msg_len < 38) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* * Check and save the protocol version */ - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, version", buf, 2 ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, version", buf, 2); - ssl->tls_version = mbedtls_ssl_read_version( buf, ssl->conf->transport ); + ssl->tls_version = mbedtls_ssl_read_version(buf, ssl->conf->transport); ssl->session_negotiate->tls_version = ssl->tls_version; - if( ssl->tls_version != MBEDTLS_SSL_VERSION_TLS1_2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server only supports TLS 1.2" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION ); - return( MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + if (ssl->tls_version != MBEDTLS_SSL_VERSION_TLS1_2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("server only supports TLS 1.2")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION); + return MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } /* * Save client random (inc. Unix time) */ - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, random bytes", buf + 2, 32 ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, random bytes", buf + 2, 32); - memcpy( ssl->handshake->randbytes, buf + 2, 32 ); + memcpy(ssl->handshake->randbytes, buf + 2, 32); /* * Check the session ID length and save session ID */ sess_len = buf[34]; - if( sess_len > sizeof( ssl->session_negotiate->id ) || - sess_len + 34 + 2 > msg_len ) /* 2 for cipherlist length field */ - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (sess_len > sizeof(ssl->session_negotiate->id) || + sess_len + 34 + 2 > msg_len) { /* 2 for cipherlist length field */ + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, session id", buf + 35, sess_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, session id", buf + 35, sess_len); ssl->session_negotiate->id_len = sess_len; - memset( ssl->session_negotiate->id, 0, - sizeof( ssl->session_negotiate->id ) ); - memcpy( ssl->session_negotiate->id, buf + 35, - ssl->session_negotiate->id_len ); + memset(ssl->session_negotiate->id, 0, + sizeof(ssl->session_negotiate->id)); + memcpy(ssl->session_negotiate->id, buf + 35, + ssl->session_negotiate->id_len); /* * Check the cookie length and content */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { cookie_offset = 35 + sess_len; cookie_len = buf[cookie_offset]; - if( cookie_offset + 1 + cookie_len + 2 > msg_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (cookie_offset + 1 + cookie_len + 2 > msg_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, cookie", - buf + cookie_offset + 1, cookie_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, cookie", + buf + cookie_offset + 1, cookie_len); #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - if( ssl->conf->f_cookie_check != NULL + if (ssl->conf->f_cookie_check != NULL #if defined(MBEDTLS_SSL_RENEGOTIATION) && ssl->renego_status == MBEDTLS_SSL_INITIAL_HANDSHAKE #endif - ) - { - if( ssl->conf->f_cookie_check( ssl->conf->p_cookie, - buf + cookie_offset + 1, cookie_len, - ssl->cli_id, ssl->cli_id_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "cookie verification failed" ) ); + ) { + if (ssl->conf->f_cookie_check(ssl->conf->p_cookie, + buf + cookie_offset + 1, cookie_len, + ssl->cli_id, ssl->cli_id_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("cookie verification failed")); ssl->handshake->cookie_verify_result = 1; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "cookie verification passed" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("cookie verification passed")); ssl->handshake->cookie_verify_result = 0; } - } - else + } else #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ { /* We know we didn't send a cookie, so it should be empty */ - if( cookie_len != 0 ) - { + if (cookie_len != 0) { /* This may be an attacker's probe, so don't send an alert */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "cookie verification skipped" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("cookie verification skipped")); } - /* - * Check the ciphersuitelist length (will be parsed later) - */ + /* + * Check the ciphersuitelist length (will be parsed later) + */ ciph_offset = cookie_offset + 1 + cookie_len; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_DTLS */ - ciph_offset = 35 + sess_len; + ciph_offset = 35 + sess_len; - ciph_len = ( buf[ciph_offset + 0] << 8 ) - | ( buf[ciph_offset + 1] ); + ciph_len = (buf[ciph_offset + 0] << 8) + | (buf[ciph_offset + 1]); - if( ciph_len < 2 || + if (ciph_len < 2 || ciph_len + 2 + ciph_offset + 1 > msg_len || /* 1 for comp. alg. len */ - ( ciph_len % 2 ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + (ciph_len % 2) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, ciphersuitelist", - buf + ciph_offset + 2, ciph_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, ciphersuitelist", + buf + ciph_offset + 2, ciph_len); /* * Check the compression algorithm's length. @@ -1336,243 +1264,248 @@ read_record_header: comp_len = buf[comp_offset]; - if( comp_len < 1 || + if (comp_len < 1 || comp_len > 16 || - comp_len + comp_offset + 1 > msg_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + comp_len + comp_offset + 1 > msg_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, compression", - buf + comp_offset + 1, comp_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, compression", + buf + comp_offset + 1, comp_len); - /* - * Check the extension length - */ - ext_offset = comp_offset + 1 + comp_len; - if( msg_len > ext_offset ) - { - if( msg_len < ext_offset + 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); - } - - ext_len = ( buf[ext_offset + 0] << 8 ) - | ( buf[ext_offset + 1] ); - - if( msg_len != ext_offset + 2 + ext_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); - } + /* + * Check the extension length + */ + ext_offset = comp_offset + 1 + comp_len; + if (msg_len > ext_offset) { + if (msg_len < ext_offset + 2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - else - ext_len = 0; - ext = buf + ext_offset + 2; - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", ext, ext_len ); + ext_len = (buf[ext_offset + 0] << 8) + | (buf[ext_offset + 1]); - while( ext_len != 0 ) - { - unsigned int ext_id; - unsigned int ext_size; - if ( ext_len < 4 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); - } - ext_id = ( ( ext[0] << 8 ) | ( ext[1] ) ); - ext_size = ( ( ext[2] << 8 ) | ( ext[3] ) ); + if (msg_len != ext_offset + 2 + ext_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } + } else { + ext_len = 0; + } - if( ext_size + 4 > ext_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); - } - switch( ext_id ) - { + ext = buf + ext_offset + 2; + MBEDTLS_SSL_DEBUG_BUF(3, "client hello extensions", ext, ext_len); + + while (ext_len != 0) { + unsigned int ext_id; + unsigned int ext_size; + if (ext_len < 4) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } + ext_id = ((ext[0] << 8) | (ext[1])); + ext_size = ((ext[2] << 8) | (ext[3])); + + if (ext_size + 4 > ext_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } + switch (ext_id) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) case MBEDTLS_TLS_EXT_SERVERNAME: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found ServerName extension" ) ); - ret = mbedtls_ssl_parse_server_name_ext( ssl, ext + 4, - ext + 4 + ext_size ); - if( ret != 0 ) - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found ServerName extension")); + ret = mbedtls_ssl_parse_server_name_ext(ssl, ext + 4, + ext + 4 + ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ case MBEDTLS_TLS_EXT_RENEGOTIATION_INFO: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found renegotiation extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found renegotiation extension")); #if defined(MBEDTLS_SSL_RENEGOTIATION) renegotiation_info_seen = 1; #endif - ret = ssl_parse_renegotiation_info( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_renegotiation_info(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) case MBEDTLS_TLS_EXT_SIG_ALG: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found signature_algorithms extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found signature_algorithms extension")); - ret = mbedtls_ssl_parse_sig_alg_ext( ssl, ext + 4, ext + 4 + ext_size ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_parse_sig_alg_ext(ssl, ext + 4, ext + 4 + ext_size); + if (ret != 0) { + return ret; + } sig_hash_alg_ext_present = 1; break; #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) + defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found supported elliptic curves extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found supported elliptic curves extension")); - ret = ssl_parse_supported_groups_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_supported_groups_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found supported point formats extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found supported point formats extension")); ssl->handshake->cli_exts |= MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS_PRESENT; - ret = ssl_parse_supported_point_formats( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_supported_point_formats(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) case MBEDTLS_TLS_EXT_ECJPAKE_KKPP: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found ecjpake kkpp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found ecjpake kkpp extension")); - ret = ssl_parse_ecjpake_kkpp( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_ecjpake_kkpp(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found max fragment length extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found max fragment length extension")); - ret = ssl_parse_max_fragment_length_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_max_fragment_length_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) case MBEDTLS_TLS_EXT_CID: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found CID extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found CID extension")); - ret = ssl_parse_cid_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_cid_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) case MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found encrypt then mac extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found encrypt then mac extension")); - ret = ssl_parse_encrypt_then_mac_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_encrypt_then_mac_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found extended master secret extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found extended master secret extension")); - ret = ssl_parse_extended_ms_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_extended_ms_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_TLS_EXT_SESSION_TICKET: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found session ticket extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found session ticket extension")); - ret = ssl_parse_session_ticket_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_session_ticket_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_SSL_ALPN) case MBEDTLS_TLS_EXT_ALPN: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found alpn extension")); - ret = mbedtls_ssl_parse_alpn_ext( ssl, ext + 4, - ext + 4 + ext_size ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_parse_alpn_ext(ssl, ext + 4, + ext + 4 + ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_SSL_DTLS_SRTP) case MBEDTLS_TLS_EXT_USE_SRTP: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found use_srtp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found use_srtp extension")); - ret = ssl_parse_use_srtp_ext( ssl, ext + 4, ext_size ); - if( ret != 0 ) - return( ret ); + ret = ssl_parse_use_srtp_ext(ssl, ext + 4, ext_size); + if (ret != 0) { + return ret; + } break; #endif /* MBEDTLS_SSL_DTLS_SRTP */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "unknown extension found: %u (ignoring)", - ext_id ) ); - } - - ext_len -= 4 + ext_size; - ext += 4 + ext_size; + MBEDTLS_SSL_DEBUG_MSG(3, ("unknown extension found: %u (ignoring)", + ext_id)); } + ext_len -= 4 + ext_size; + ext += 4 + ext_size; + } + #if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) /* * Try to fall back to default hash SHA1 if the client * hasn't provided any preferred signature-hash combinations. */ - if( ! sig_hash_alg_ext_present ) - { + if (!sig_hash_alg_ext_present) { uint16_t *received_sig_algs = ssl->handshake->received_sig_algs; const uint16_t default_sig_algs[] = { #if defined(MBEDTLS_ECDSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_ECDSA, - MBEDTLS_SSL_HASH_SHA1 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_ECDSA, + MBEDTLS_SSL_HASH_SHA1), #endif #if defined(MBEDTLS_RSA_C) - MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG( MBEDTLS_SSL_SIG_RSA, - MBEDTLS_SSL_HASH_SHA1 ), + MBEDTLS_SSL_TLS12_SIG_AND_HASH_ALG(MBEDTLS_SSL_SIG_RSA, + MBEDTLS_SSL_HASH_SHA1), #endif MBEDTLS_TLS_SIG_NONE }; #if defined(static_assert) - static_assert( sizeof( default_sig_algs ) / sizeof( default_sig_algs[0] ) <= - MBEDTLS_RECEIVED_SIG_ALGS_SIZE, "default_sig_algs is too big" ); + static_assert(sizeof(default_sig_algs) / sizeof(default_sig_algs[0]) <= + MBEDTLS_RECEIVED_SIG_ALGS_SIZE, "default_sig_algs is too big"); #endif - memcpy( received_sig_algs, default_sig_algs, sizeof( default_sig_algs ) ); + memcpy(received_sig_algs, default_sig_algs, sizeof(default_sig_algs)); } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ @@ -1580,19 +1513,16 @@ read_record_header: /* * Check for TLS_EMPTY_RENEGOTIATION_INFO_SCSV */ - for( i = 0, p = buf + ciph_offset + 2; i < ciph_len; i += 2, p += 2 ) - { - if( p[0] == 0 && p[1] == MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "received TLS_EMPTY_RENEGOTIATION_INFO " ) ); + for (i = 0, p = buf + ciph_offset + 2; i < ciph_len; i += 2, p += 2) { + if (p[0] == 0 && p[1] == MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO) { + MBEDTLS_SSL_DEBUG_MSG(3, ("received TLS_EMPTY_RENEGOTIATION_INFO ")); #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "received RENEGOTIATION SCSV " - "during renegotiation" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS) { + MBEDTLS_SSL_DEBUG_MSG(1, ("received RENEGOTIATION SCSV " + "during renegotiation")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif ssl->secure_renegotiation = MBEDTLS_SSL_SECURE_RENEGOTIATION; @@ -1603,50 +1533,42 @@ read_record_header: /* * Renegotiation security checks */ - if( ssl->secure_renegotiation != MBEDTLS_SSL_SECURE_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "legacy renegotiation, breaking off handshake" ) ); + if (ssl->secure_renegotiation != MBEDTLS_SSL_SECURE_RENEGOTIATION && + ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("legacy renegotiation, breaking off handshake")); handshake_failure = 1; } #if defined(MBEDTLS_SSL_RENEGOTIATION) - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && ssl->secure_renegotiation == MBEDTLS_SSL_SECURE_RENEGOTIATION && - renegotiation_info_seen == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation_info extension missing (secure)" ) ); + renegotiation_info_seen == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("renegotiation_info extension missing (secure)")); handshake_failure = 1; - } - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && - ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "legacy renegotiation not allowed" ) ); + } else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION) { + MBEDTLS_SSL_DEBUG_MSG(1, ("legacy renegotiation not allowed")); handshake_failure = 1; - } - else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && - ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - renegotiation_info_seen == 1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation_info extension present (legacy)" ) ); + } else if (ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && + ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && + renegotiation_info_seen == 1) { + MBEDTLS_SSL_DEBUG_MSG(1, ("renegotiation_info extension present (legacy)")); handshake_failure = 1; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ - if( handshake_failure == 1 ) - { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (handshake_failure == 1) { + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* * Server certification selection (after processing TLS extensions) */ - if( ssl->conf->f_cert_cb && ( ret = ssl->conf->f_cert_cb( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "f_cert_cb", ret ); - return( ret ); + if (ssl->conf->f_cert_cb && (ret = ssl->conf->f_cert_cb(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "f_cert_cb", ret); + return ret; } #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) ssl->handshake->sni_name = NULL; @@ -1663,59 +1585,61 @@ read_record_header: ciphersuites = ssl->conf->ciphersuite_list; ciphersuite_info = NULL; - if (ssl->conf->respect_cli_pref == MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_CLIENT) - { - for( j = 0, p = buf + ciph_offset + 2; j < ciph_len; j += 2, p += 2 ) - for( i = 0; ciphersuites[i] != 0; i++ ) - { - if( MBEDTLS_GET_UINT16_BE(p, 0) != ciphersuites[i] ) + if (ssl->conf->respect_cli_pref == MBEDTLS_SSL_SRV_CIPHERSUITE_ORDER_CLIENT) { + for (j = 0, p = buf + ciph_offset + 2; j < ciph_len; j += 2, p += 2) { + for (i = 0; ciphersuites[i] != 0; i++) { + if (MBEDTLS_GET_UINT16_BE(p, 0) != ciphersuites[i]) { continue; + } got_common_suite = 1; - if( ( ret = ssl_ciphersuite_match( ssl, ciphersuites[i], - &ciphersuite_info ) ) != 0 ) - return( ret ); + if ((ret = ssl_ciphersuite_match(ssl, ciphersuites[i], + &ciphersuite_info)) != 0) { + return ret; + } - if( ciphersuite_info != NULL ) + if (ciphersuite_info != NULL) { goto have_ciphersuite; + } } + } } else { - for( i = 0; ciphersuites[i] != 0; i++ ) - for( j = 0, p = buf + ciph_offset + 2; j < ciph_len; j += 2, p += 2 ) - { - if( MBEDTLS_GET_UINT16_BE(p, 0) != ciphersuites[i] ) + for (i = 0; ciphersuites[i] != 0; i++) { + for (j = 0, p = buf + ciph_offset + 2; j < ciph_len; j += 2, p += 2) { + if (MBEDTLS_GET_UINT16_BE(p, 0) != ciphersuites[i]) { continue; + } got_common_suite = 1; - if( ( ret = ssl_ciphersuite_match( ssl, ciphersuites[i], - &ciphersuite_info ) ) != 0 ) - return( ret ); + if ((ret = ssl_ciphersuite_match(ssl, ciphersuites[i], + &ciphersuite_info)) != 0) { + return ret; + } - if( ciphersuite_info != NULL ) + if (ciphersuite_info != NULL) { goto have_ciphersuite; + } } + } } - if( got_common_suite ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got ciphersuites in common, " - "but none of them usable" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no ciphersuites in common" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (got_common_suite) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got ciphersuites in common, " + "but none of them usable")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no ciphersuites in common")); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } have_ciphersuite: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %s", ciphersuite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("selected ciphersuite: %s", ciphersuite_info->name)); ssl->session_negotiate->ciphersuite = ciphersuites[i]; ssl->handshake->ciphersuite_info = ciphersuite_info; @@ -1723,37 +1647,35 @@ have_ciphersuite: ssl->state++; #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - mbedtls_ssl_recv_flight_completed( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_recv_flight_completed(ssl); + } #endif /* Debugging-only output for testsuite */ #if defined(MBEDTLS_DEBUG_C) && \ defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - mbedtls_pk_type_t sig_alg = mbedtls_ssl_get_ciphersuite_sig_alg( ciphersuite_info ); - if( sig_alg != MBEDTLS_PK_NONE ) - { + mbedtls_pk_type_t sig_alg = mbedtls_ssl_get_ciphersuite_sig_alg(ciphersuite_info); + if (sig_alg != MBEDTLS_PK_NONE) { unsigned int sig_hash = mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( - ssl, mbedtls_ssl_sig_from_pk_alg( sig_alg ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello v3, signature_algorithm ext: %u", - sig_hash ) ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "no hash algorithm for signature algorithm " - "%u - should not happen", (unsigned) sig_alg ) ); + ssl, mbedtls_ssl_sig_from_pk_alg(sig_alg)); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello v3, signature_algorithm ext: %u", + sig_hash)); + } else { + MBEDTLS_SSL_DEBUG_MSG(3, ("no hash algorithm for signature algorithm " + "%u - should not happen", (unsigned) sig_alg)); } #endif - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse client hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse client hello")); - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_cid_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; size_t ext_len; @@ -1763,41 +1685,41 @@ static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, /* Skip writing the extension if we don't want to use it or if * the client hasn't offered it. */ - if( ssl->handshake->cid_in_use == MBEDTLS_SSL_CID_DISABLED ) - return; - - /* ssl->own_cid_len is at most MBEDTLS_SSL_CID_IN_LEN_MAX - * which is at most 255, so the increment cannot overflow. */ - if( end < p || (size_t)( end - p ) < (unsigned)( ssl->own_cid_len + 5 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); + if (ssl->handshake->cid_in_use == MBEDTLS_SSL_CID_DISABLED) { return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding CID extension" ) ); + /* ssl->own_cid_len is at most MBEDTLS_SSL_CID_IN_LEN_MAX + * which is at most 255, so the increment cannot overflow. */ + if (end < p || (size_t) (end - p) < (unsigned) (ssl->own_cid_len + 5)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small")); + return; + } + + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding CID extension")); /* * struct { * opaque cid<0..2^8-1>; * } ConnectionId; - */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_CID, p, 0 ); + */ + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_CID, p, 0); p += 2; ext_len = (size_t) ssl->own_cid_len + 1; - MBEDTLS_PUT_UINT16_BE( ext_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(ext_len, p, 0); p += 2; *p++ = (uint8_t) ssl->own_cid_len; - memcpy( p, ssl->own_cid, ssl->own_cid_len ); + memcpy(p, ssl->own_cid, ssl->own_cid_len); *olen = ssl->own_cid_len + 5; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) -static void ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_encrypt_then_mac_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; const mbedtls_ssl_ciphersuite_t *suite = NULL; @@ -1809,29 +1731,28 @@ static void ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, * encrypt-then-MAC response extension back to the client." */ suite = mbedtls_ssl_ciphersuite_from_id( - ssl->session_negotiate->ciphersuite ); - if( suite == NULL ) + ssl->session_negotiate->ciphersuite); + if (suite == NULL) { ssl->session_negotiate->encrypt_then_mac = MBEDTLS_SSL_ETM_DISABLED; - else - { + } else { mbedtls_ssl_mode_t ssl_mode = mbedtls_ssl_get_mode_from_ciphersuite( ssl->session_negotiate->encrypt_then_mac, - suite ); + suite); - if( ssl_mode != MBEDTLS_SSL_MODE_CBC_ETM ) + if (ssl_mode != MBEDTLS_SSL_MODE_CBC_ETM) { ssl->session_negotiate->encrypt_then_mac = MBEDTLS_SSL_ETM_DISABLED; + } } - if( ssl->session_negotiate->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED ) - { + if (ssl->session_negotiate->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding encrypt then mac extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding encrypt then mac extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC, p, 0); p += 2; *p++ = 0x00; @@ -1842,22 +1763,21 @@ static void ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) -static void ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_extended_ms_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; - if( ssl->handshake->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED ) - { + if (ssl->handshake->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding extended master secret " - "extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding extended master secret " + "extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET, p, 0); p += 2; *p++ = 0x00; @@ -1868,21 +1788,20 @@ static void ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) -static void ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_session_ticket_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; - if( ssl->handshake->new_session_ticket == 0 ) - { + if (ssl->handshake->new_session_ticket == 0) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding session ticket extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding session ticket extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SESSION_TICKET, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SESSION_TICKET, p, 0); p += 2; *p++ = 0x00; @@ -1892,36 +1811,33 @@ static void ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_renegotiation_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; - if( ssl->secure_renegotiation != MBEDTLS_SSL_SECURE_RENEGOTIATION ) - { + if (ssl->secure_renegotiation != MBEDTLS_SSL_SECURE_RENEGOTIATION) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, secure renegotiation extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, secure renegotiation extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_RENEGOTIATION_INFO, p, 0); p += 2; #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) - { + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { *p++ = 0x00; - *p++ = ( ssl->verify_data_len * 2 + 1 ) & 0xFF; + *p++ = (ssl->verify_data_len * 2 + 1) & 0xFF; *p++ = ssl->verify_data_len * 2 & 0xFF; - memcpy( p, ssl->peer_verify_data, ssl->verify_data_len ); + memcpy(p, ssl->peer_verify_data, ssl->verify_data_len); p += ssl->verify_data_len; - memcpy( p, ssl->own_verify_data, ssl->verify_data_len ); + memcpy(p, ssl->own_verify_data, ssl->verify_data_len); p += ssl->verify_data_len; - } - else + } else #endif /* MBEDTLS_SSL_RENEGOTIATION */ { *p++ = 0x00; @@ -1933,21 +1849,20 @@ static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) -static void ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_max_fragment_length_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; - if( ssl->session_negotiate->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE ) - { + if (ssl->session_negotiate->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, max_fragment_length extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, max_fragment_length extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH, p, 0); p += 2; *p++ = 0x00; @@ -1961,23 +1876,22 @@ static void ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -static void ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_supported_point_formats_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { unsigned char *p = buf; ((void) ssl); - if( ( ssl->handshake->cli_exts & - MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS_PRESENT ) == 0 ) - { + if ((ssl->handshake->cli_exts & + MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS_PRESENT) == 0) { *olen = 0; return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, supported_point_formats extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, supported_point_formats extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS, p, 0); p += 2; *p++ = 0x00; @@ -1991,9 +1905,9 @@ static void ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static void ssl_write_ecjpake_kkpp_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2003,54 +1917,52 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, *olen = 0; /* Skip costly computation if not needed */ - if( ssl->handshake->ciphersuite_info->key_exchange != - MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - return; - - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, ecjpake kkpp extension" ) ); - - if( end - p < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); + if (ssl->handshake->ciphersuite_info->key_exchange != + MBEDTLS_KEY_EXCHANGE_ECJPAKE) { return; } - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, ecjpake kkpp extension")); + + if (end - p < 4) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small")); + return; + } + + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_ECJPAKE_KKPP, p, 0); p += 2; #if defined(MBEDTLS_USE_PSA_CRYPTO) - ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, - p + 2, end - p - 2, &kkpp_len, - MBEDTLS_ECJPAKE_ROUND_ONE ); - if ( ret != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); + ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx, + p + 2, end - p - 2, &kkpp_len, + MBEDTLS_ECJPAKE_ROUND_ONE); + if (ret != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret); return; } #else - ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, - p + 2, end - p - 2, &kkpp_len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1 , "mbedtls_ecjpake_write_round_one", ret ); + ret = mbedtls_ecjpake_write_round_one(&ssl->handshake->ecjpake_ctx, + p + 2, end - p - 2, &kkpp_len, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_one", ret); return; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - MBEDTLS_PUT_UINT16_BE( kkpp_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(kkpp_len, p, 0); p += 2; *olen = kkpp_len + 4; } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -#if defined(MBEDTLS_SSL_DTLS_SRTP ) && defined(MBEDTLS_SSL_PROTO_DTLS) -static void ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +#if defined(MBEDTLS_SSL_DTLS_SRTP) && defined(MBEDTLS_SSL_PROTO_DTLS) +static void ssl_write_use_srtp_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + size_t *olen) { size_t mki_len = 0, ext_len = 0; uint16_t profile_value = 0; @@ -2058,16 +1970,14 @@ static void ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, *olen = 0; - if( ( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) || - ( ssl->dtls_srtp_info.chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET ) ) - { + if ((ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) || + (ssl->dtls_srtp_info.chosen_dtls_srtp_profile == MBEDTLS_TLS_SRTP_UNSET)) { return; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding use_srtp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding use_srtp extension")); - if( ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED ) - { + if (ssl->conf->dtls_srtp_mki_support == MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED) { mki_len = ssl->dtls_srtp_info.mki_len; } @@ -2079,38 +1989,34 @@ static void ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, * - 1 byte for the mki length * + the actual mki length * Check we have enough room in the output buffer */ - if( (size_t)( end - buf ) < mki_len + 9 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); + if ((size_t) (end - buf) < mki_len + 9) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small")); return; } /* extension */ - MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_USE_SRTP, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_USE_SRTP, buf, 0); /* * total length 5 and mki value: only one profile(2 bytes) * and length(2 bytes) and srtp_mki ) */ ext_len = 5 + mki_len; - MBEDTLS_PUT_UINT16_BE( ext_len, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(ext_len, buf, 2); /* protection profile length: 2 */ buf[4] = 0x00; buf[5] = 0x02; profile_value = mbedtls_ssl_check_srtp_profile_value( - ssl->dtls_srtp_info.chosen_dtls_srtp_profile ); - if( profile_value != MBEDTLS_TLS_SRTP_UNSET ) - { - MBEDTLS_PUT_UINT16_BE( profile_value, buf, 6 ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "use_srtp extension invalid profile" ) ); + ssl->dtls_srtp_info.chosen_dtls_srtp_profile); + if (profile_value != MBEDTLS_TLS_SRTP_UNSET) { + MBEDTLS_PUT_UINT16_BE(profile_value, buf, 6); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("use_srtp extension invalid profile")); return; } buf[8] = mki_len & 0xFF; - memcpy( &buf[9], ssl->dtls_srtp_info.mki_value, mki_len ); + memcpy(&buf[9], ssl->dtls_srtp_info.mki_value, mki_len); *olen = 9 + mki_len; } @@ -2118,13 +2024,13 @@ static void ssl_write_use_srtp_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_hello_verify_request( mbedtls_ssl_context *ssl ) +static int ssl_write_hello_verify_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = ssl->out_msg + 4; unsigned char *cookie_len_byte; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write hello verify request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write hello verify request")); /* * struct { @@ -2135,31 +2041,29 @@ static int ssl_write_hello_verify_request( mbedtls_ssl_context *ssl ) /* The RFC is not clear on this point, but sending the actual negotiated * version looks like the most interoperable thing to do. */ - mbedtls_ssl_write_version( p, ssl->conf->transport, ssl->tls_version ); - MBEDTLS_SSL_DEBUG_BUF( 3, "server version", p, 2 ); + mbedtls_ssl_write_version(p, ssl->conf->transport, ssl->tls_version); + MBEDTLS_SSL_DEBUG_BUF(3, "server version", p, 2); p += 2; /* If we get here, f_cookie_check is not null */ - if( ssl->conf->f_cookie_write == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "inconsistent cookie callbacks" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (ssl->conf->f_cookie_write == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("inconsistent cookie callbacks")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Skip length byte until we know the length */ cookie_len_byte = p++; - if( ( ret = ssl->conf->f_cookie_write( ssl->conf->p_cookie, - &p, ssl->out_buf + MBEDTLS_SSL_OUT_BUFFER_LEN, - ssl->cli_id, ssl->cli_id_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "f_cookie_write", ret ); - return( ret ); + if ((ret = ssl->conf->f_cookie_write(ssl->conf->p_cookie, + &p, ssl->out_buf + MBEDTLS_SSL_OUT_BUFFER_LEN, + ssl->cli_id, ssl->cli_id_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "f_cookie_write", ret); + return ret; } - *cookie_len_byte = (unsigned char)( p - ( cookie_len_byte + 1 ) ); + *cookie_len_byte = (unsigned char) (p - (cookie_len_byte + 1)); - MBEDTLS_SSL_DEBUG_BUF( 3, "cookie sent", cookie_len_byte + 1, *cookie_len_byte ); + MBEDTLS_SSL_DEBUG_BUF(3, "cookie sent", cookie_len_byte + 1, *cookie_len_byte); ssl->out_msglen = p - ssl->out_msg; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; @@ -2167,28 +2071,26 @@ static int ssl_write_hello_verify_request( mbedtls_ssl_context *ssl ) ssl->state = MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flight_transmit", ret ); - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + (ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flight_transmit", ret); + return ret; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write hello verify request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write hello verify request")); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ -static void ssl_handle_id_based_session_resumption( mbedtls_ssl_context *ssl ) +static void ssl_handle_id_based_session_resumption(mbedtls_ssl_context *ssl) { int ret; mbedtls_ssl_session session_tmp; @@ -2196,47 +2098,51 @@ static void ssl_handle_id_based_session_resumption( mbedtls_ssl_context *ssl ) /* Resume is 0 by default, see ssl_handshake_init(). * It may be already set to 1 by ssl_parse_session_ticket_ext(). */ - if( ssl->handshake->resume == 1 ) + if (ssl->handshake->resume == 1) { return; - if( session->id_len == 0 ) + } + if (session->id_len == 0) { return; - if( ssl->conf->f_get_cache == NULL ) + } + if (ssl->conf->f_get_cache == NULL) { return; + } #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ) + if (ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE) { return; + } #endif - mbedtls_ssl_session_init( &session_tmp ); + mbedtls_ssl_session_init(&session_tmp); - ret = ssl->conf->f_get_cache( ssl->conf->p_cache, - session->id, - session->id_len, - &session_tmp ); - if( ret != 0 ) + ret = ssl->conf->f_get_cache(ssl->conf->p_cache, + session->id, + session->id_len, + &session_tmp); + if (ret != 0) { goto exit; + } - if( session->ciphersuite != session_tmp.ciphersuite ) - { + if (session->ciphersuite != session_tmp.ciphersuite) { /* Mismatch between cached and negotiated session */ goto exit; } /* Move semantics */ - mbedtls_ssl_session_free( session ); + mbedtls_ssl_session_free(session); *session = session_tmp; - memset( &session_tmp, 0, sizeof( session_tmp ) ); + memset(&session_tmp, 0, sizeof(session_tmp)); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "session successfully restored from cache" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("session successfully restored from cache")); ssl->handshake->resume = 1; exit: - mbedtls_ssl_session_free( &session_tmp ); + mbedtls_ssl_session_free(&session_tmp); } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_write_server_hello(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_HAVE_TIME) mbedtls_time_t t; @@ -2245,23 +2151,21 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) size_t olen, ext_len = 0, n; unsigned char *buf, *p; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write server hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write server hello")); #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ssl->handshake->cookie_verify_result != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "client hello was not authenticated" ) ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server hello" ) ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + ssl->handshake->cookie_verify_result != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("client hello was not authenticated")); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server hello")); - return( ssl_write_hello_verify_request( ssl ) ); + return ssl_write_hello_verify_request(ssl); } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ - if( ssl->conf->f_rng == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no RNG provided") ); - return( MBEDTLS_ERR_SSL_NO_RNG ); + if (ssl->conf->f_rng == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no RNG provided")); + return MBEDTLS_ERR_SSL_NO_RNG; } /* @@ -2274,39 +2178,40 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) buf = ssl->out_msg; p = buf + 4; - mbedtls_ssl_write_version( p, ssl->conf->transport, ssl->tls_version ); + mbedtls_ssl_write_version(p, ssl->conf->transport, ssl->tls_version); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen version: [%d:%d]", - buf[4], buf[5] ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, chosen version: [%d:%d]", + buf[4], buf[5])); #if defined(MBEDTLS_HAVE_TIME) - t = mbedtls_time( NULL ); - MBEDTLS_PUT_UINT32_BE( t, p, 0 ); + t = mbedtls_time(NULL); + MBEDTLS_PUT_UINT32_BE(t, p, 0); p += 4; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, current time: %" MBEDTLS_PRINTF_LONGLONG, - (long long) t ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, current time: %" MBEDTLS_PRINTF_LONGLONG, + (long long) t)); #else - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, p, 4 ) ) != 0 ) - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p, 4)) != 0) { + return ret; + } p += 4; #endif /* MBEDTLS_HAVE_TIME */ - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, p, 28 ) ) != 0 ) - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, p, 28)) != 0) { + return ret; + } p += 28; - memcpy( ssl->handshake->randbytes + 32, buf + 6, 32 ); + memcpy(ssl->handshake->randbytes + 32, buf + 6, 32); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, random bytes", buf + 6, 32 ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, random bytes", buf + 6, 32); - ssl_handle_id_based_session_resumption( ssl ); + ssl_handle_id_based_session_resumption(ssl); - if( ssl->handshake->resume == 0 ) - { + if (ssl->handshake->resume == 0) { /* * New session, create a new session id, * unless we're about to issue a session ticket @@ -2314,36 +2219,32 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) ssl->state++; #if defined(MBEDTLS_HAVE_TIME) - ssl->session_negotiate->start = mbedtls_time( NULL ); + ssl->session_negotiate->start = mbedtls_time(NULL); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl->handshake->new_session_ticket != 0 ) - { + if (ssl->handshake->new_session_ticket != 0) { ssl->session_negotiate->id_len = n = 0; - memset( ssl->session_negotiate->id, 0, 32 ); - } - else + memset(ssl->session_negotiate->id, 0, 32); + } else #endif /* MBEDTLS_SSL_SESSION_TICKETS */ { ssl->session_negotiate->id_len = n = 32; - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, ssl->session_negotiate->id, - n ) ) != 0 ) - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, ssl->session_negotiate->id, + n)) != 0) { + return ret; + } } - } - else - { + } else { /* * Resuming a session */ n = ssl->session_negotiate->id_len; ssl->state = MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC; - if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); - return( ret ); + if ((ret = mbedtls_ssl_derive_keys(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_derive_keys", ret); + return ret; } } @@ -2356,90 +2257,89 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) * 44+n . 43+n+m extensions */ *p++ = (unsigned char) ssl->session_negotiate->id_len; - memcpy( p, ssl->session_negotiate->id, ssl->session_negotiate->id_len ); + memcpy(p, ssl->session_negotiate->id, ssl->session_negotiate->id_len); p += ssl->session_negotiate->id_len; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, session id len.: %" MBEDTLS_PRINTF_SIZET, n ) ); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, session id", buf + 39, n ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s session has been resumed", - ssl->handshake->resume ? "a" : "no" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, session id len.: %" MBEDTLS_PRINTF_SIZET, n)); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, session id", buf + 39, n); + MBEDTLS_SSL_DEBUG_MSG(3, ("%s session has been resumed", + ssl->handshake->resume ? "a" : "no")); - MBEDTLS_PUT_UINT16_BE( ssl->session_negotiate->ciphersuite, p, 0 ); + MBEDTLS_PUT_UINT16_BE(ssl->session_negotiate->ciphersuite, p, 0); p += 2; - *p++ = MBEDTLS_BYTE_0( MBEDTLS_SSL_COMPRESS_NULL ); + *p++ = MBEDTLS_BYTE_0(MBEDTLS_SSL_COMPRESS_NULL); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: %s", - mbedtls_ssl_get_ciphersuite_name( ssl->session_negotiate->ciphersuite ) ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: 0x%02X", - (unsigned int) MBEDTLS_SSL_COMPRESS_NULL ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, chosen ciphersuite: %s", + mbedtls_ssl_get_ciphersuite_name(ssl->session_negotiate->ciphersuite))); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, compress alg.: 0x%02X", + (unsigned int) MBEDTLS_SSL_COMPRESS_NULL)); /* * First write extensions, then the total length */ - ssl_write_renegotiation_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_renegotiation_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - ssl_write_max_fragment_length_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_max_fragment_length_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ssl_write_cid_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_cid_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC_ETM) - ssl_write_encrypt_then_mac_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_encrypt_then_mac_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - ssl_write_extended_ms_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_extended_ms_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - ssl_write_session_ticket_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_session_ticket_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) const mbedtls_ssl_ciphersuite_t *suite = - mbedtls_ssl_ciphersuite_from_id( ssl->session_negotiate->ciphersuite ); - if ( suite != NULL && mbedtls_ssl_ciphersuite_uses_ec( suite) ) - { - ssl_write_supported_point_formats_ext( ssl, p + 2 + ext_len, &olen ); + mbedtls_ssl_ciphersuite_from_id(ssl->session_negotiate->ciphersuite); + if (suite != NULL && mbedtls_ssl_ciphersuite_uses_ec(suite)) { + ssl_write_supported_point_formats_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - ssl_write_ecjpake_kkpp_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_ecjpake_kkpp_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif #if defined(MBEDTLS_SSL_ALPN) unsigned char *end = buf + MBEDTLS_SSL_OUT_CONTENT_LEN - 4; - if( ( ret = mbedtls_ssl_write_alpn_ext( ssl, p + 2 + ext_len, end, &olen ) ) - != 0 ) + if ((ret = mbedtls_ssl_write_alpn_ext(ssl, p + 2 + ext_len, end, &olen)) + != 0) { return ret; + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) - ssl_write_use_srtp_ext( ssl, p + 2 + ext_len, &olen ); + ssl_write_use_srtp_ext(ssl, p + 2 + ext_len, &olen); ext_len += olen; #endif - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, total extension length: %" MBEDTLS_PRINTF_SIZET, - ext_len ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, total extension length: %" MBEDTLS_PRINTF_SIZET, + ext_len)); - if( ext_len > 0 ) - { - MBEDTLS_PUT_UINT16_BE( ext_len, p, 0 ); + if (ext_len > 0) { + MBEDTLS_PUT_UINT16_BE(ext_len, p, 0); p += 2 + ext_len; } @@ -2447,35 +2347,34 @@ static int ssl_write_server_hello( mbedtls_ssl_context *ssl ) ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->out_msg[0] = MBEDTLS_SSL_HS_SERVER_HELLO; - ret = mbedtls_ssl_write_handshake_msg( ssl ); + ret = mbedtls_ssl_write_handshake_msg(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server hello")); - return( ret ); + return ret; } #if !defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_write_certificate_request(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate request")); - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate request" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate request")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else /* !MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_write_certificate_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = @@ -2487,22 +2386,21 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) const mbedtls_x509_crt *crt; int authmode; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate request")); ssl->state++; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET ) + if (ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET) { authmode = ssl->handshake->sni_authmode; - else + } else #endif - authmode = ssl->conf->authmode; + authmode = ssl->conf->authmode; - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) || - authmode == MBEDTLS_SSL_VERIFY_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate request" ) ); - return( 0 ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info) || + authmode == MBEDTLS_SSL_VERIFY_NONE) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate request")); + return 0; } /* @@ -2553,29 +2451,31 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) * enum { (255) } HashAlgorithm; * enum { (255) } SignatureAlgorithm; */ - const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs( ssl ); - if( sig_alg == NULL ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + const uint16_t *sig_alg = mbedtls_ssl_get_sig_algs(ssl); + if (sig_alg == NULL) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - for( ; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++ ) - { - unsigned char hash = MBEDTLS_BYTE_1( *sig_alg ); + for (; *sig_alg != MBEDTLS_TLS_SIG_NONE; sig_alg++) { + unsigned char hash = MBEDTLS_BYTE_1(*sig_alg); - if( mbedtls_ssl_set_calc_verify_md( ssl, hash ) ) + if (mbedtls_ssl_set_calc_verify_md(ssl, hash)) { continue; - if( ! mbedtls_ssl_sig_alg_is_supported( ssl, *sig_alg ) ) + } + if (!mbedtls_ssl_sig_alg_is_supported(ssl, *sig_alg)) { continue; + } /* Write elements at offsets starting from 1 (offset 0 is for the * length). Thus the offset of each element is the length of the * partial list including that element. */ sa_len += 2; - MBEDTLS_PUT_UINT16_BE( *sig_alg, p, sa_len ); + MBEDTLS_PUT_UINT16_BE(*sig_alg, p, sa_len); } /* Fill in list length. */ - MBEDTLS_PUT_UINT16_BE( sa_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(sa_len, p, 0); sa_len += 2; p += sa_len; @@ -2587,8 +2487,7 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) total_dn_size = 0; - if( ssl->conf->cert_req_ca_list == MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED ) - { + if (ssl->conf->cert_req_ca_list == MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED) { /* NOTE: If trusted certificates are provisioned * via a CA callback (configured through * `mbedtls_ssl_conf_ca_cb()`, then the @@ -2596,39 +2495,37 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->dn_hints != NULL ) + if (ssl->handshake->dn_hints != NULL) { crt = ssl->handshake->dn_hints; - else + } else #endif - if( ssl->conf->dn_hints != NULL ) + if (ssl->conf->dn_hints != NULL) { crt = ssl->conf->dn_hints; - else + } else #endif #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_ca_chain != NULL ) + if (ssl->handshake->sni_ca_chain != NULL) { crt = ssl->handshake->sni_ca_chain; - else + } else #endif - crt = ssl->conf->ca_chain; + crt = ssl->conf->ca_chain; - while( crt != NULL && crt->version != 0 ) - { + while (crt != NULL && crt->version != 0) { /* It follows from RFC 5280 A.1 that this length * can be represented in at most 11 bits. */ dn_size = (uint16_t) crt->subject_raw.len; - if( end < p || (size_t)( end - p ) < 2 + (size_t) dn_size ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "skipping CAs: buffer too short" ) ); + if (end < p || (size_t) (end - p) < 2 + (size_t) dn_size) { + MBEDTLS_SSL_DEBUG_MSG(1, ("skipping CAs: buffer too short")); break; } - MBEDTLS_PUT_UINT16_BE( dn_size, p, 0 ); + MBEDTLS_PUT_UINT16_BE(dn_size, p, 0); p += 2; - memcpy( p, crt->subject_raw.p, dn_size ); + memcpy(p, crt->subject_raw.p, dn_size); p += dn_size; - MBEDTLS_SSL_DEBUG_BUF( 3, "requested DN", p - dn_size, dn_size ); + MBEDTLS_SSL_DEBUG_BUF(3, "requested DN", p - dn_size, dn_size); total_dn_size += 2 + dn_size; crt = crt->next; @@ -2638,21 +2535,21 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) ssl->out_msglen = p - buf; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->out_msg[0] = MBEDTLS_SSL_HS_CERTIFICATE_REQUEST; - MBEDTLS_PUT_UINT16_BE( total_dn_size, ssl->out_msg, 4 + ct_len + sa_len ); + MBEDTLS_PUT_UINT16_BE(total_dn_size, ssl->out_msg, 4 + ct_len + sa_len); - ret = mbedtls_ssl_write_handshake_msg( ssl ); + ret = mbedtls_ssl_write_handshake_msg(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate request")); - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ - ( defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) ) + (defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) +static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -2665,119 +2562,116 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) mbedtls_pk_context *pk; mbedtls_ecp_keypair *key; - pk = mbedtls_ssl_own_key( ssl ); + pk = mbedtls_ssl_own_key(ssl); - if( pk == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (pk == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - switch( mbedtls_pk_get_type( pk ) ) - { - case MBEDTLS_PK_OPAQUE: - if( ! mbedtls_pk_can_do( pk, MBEDTLS_PK_ECKEY ) ) - return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); + switch (mbedtls_pk_get_type(pk)) { + case MBEDTLS_PK_OPAQUE: + if (!mbedtls_pk_can_do(pk, MBEDTLS_PK_ECKEY)) { + return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; + } - ssl->handshake->ecdh_psa_privkey = - *( (mbedtls_svc_key_id_t*) pk->pk_ctx ); + ssl->handshake->ecdh_psa_privkey = + *((mbedtls_svc_key_id_t *) pk->pk_ctx); - /* Key should not be destroyed in the TLS library */ - ssl->handshake->ecdh_psa_privkey_is_external = 1; + /* Key should not be destroyed in the TLS library */ + ssl->handshake->ecdh_psa_privkey_is_external = 1; - status = psa_get_key_attributes( ssl->handshake->ecdh_psa_privkey, - &key_attributes ); - if( status != PSA_SUCCESS) - { - ssl->handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( psa_ssl_status_to_mbedtls( status ) ); - } + status = psa_get_key_attributes(ssl->handshake->ecdh_psa_privkey, + &key_attributes); + if (status != PSA_SUCCESS) { + ssl->handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; + return psa_ssl_status_to_mbedtls(status); + } - ssl->handshake->ecdh_psa_type = psa_get_key_type( &key_attributes ); - ssl->handshake->ecdh_bits = psa_get_key_bits( &key_attributes ); + ssl->handshake->ecdh_psa_type = psa_get_key_type(&key_attributes); + ssl->handshake->ecdh_bits = psa_get_key_bits(&key_attributes); - psa_reset_key_attributes( &key_attributes ); + psa_reset_key_attributes(&key_attributes); - ret = 0; - break; - case MBEDTLS_PK_ECKEY: - case MBEDTLS_PK_ECKEY_DH: - case MBEDTLS_PK_ECDSA: - key = mbedtls_pk_ec( *pk ); - if( key == NULL ) - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + ret = 0; + break; + case MBEDTLS_PK_ECKEY: + case MBEDTLS_PK_ECKEY_DH: + case MBEDTLS_PK_ECDSA: + key = mbedtls_pk_ec(*pk); + if (key == NULL) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } - tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( key->grp.id ); - if( tls_id == 0 ) - { - /* This elliptic curve is not supported */ - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - } + tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id(key->grp.id); + if (tls_id == 0) { + /* This elliptic curve is not supported */ + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } - /* If the above conversion to TLS ID was fine, then also this one will - be, so there is no need to check the return value here */ - mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id, &ecc_family, - &ssl->handshake->ecdh_bits ); + /* If the above conversion to TLS ID was fine, then also this one will + be, so there is no need to check the return value here */ + mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id, &ecc_family, + &ssl->handshake->ecdh_bits); - ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ecc_family ); + ssl->handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR(ecc_family); - key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, PSA_ALG_ECDH ); - psa_set_key_type( &key_attributes, - PSA_KEY_TYPE_ECC_KEY_PAIR( ssl->handshake->ecdh_psa_type ) ); - psa_set_key_bits( &key_attributes, ssl->handshake->ecdh_bits ); + key_attributes = psa_key_attributes_init(); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH); + psa_set_key_type(&key_attributes, + PSA_KEY_TYPE_ECC_KEY_PAIR(ssl->handshake->ecdh_psa_type)); + psa_set_key_bits(&key_attributes, ssl->handshake->ecdh_bits); - key_len = PSA_BITS_TO_BYTES( key->grp.pbits ); - ret = mbedtls_ecp_write_key( key, buf, key_len ); - if( ret != 0 ) - goto cleanup; + key_len = PSA_BITS_TO_BYTES(key->grp.pbits); + ret = mbedtls_ecp_write_key(key, buf, key_len); + if (ret != 0) { + goto cleanup; + } - status = psa_import_key( &key_attributes, buf, key_len, - &ssl->handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - goto cleanup; - } + status = psa_import_key(&key_attributes, buf, key_len, + &ssl->handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + goto cleanup; + } - ret = 0; - break; - default: + ret = 0; + break; + default: ret = MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; } cleanup: - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + mbedtls_platform_zeroize(buf, sizeof(buf)); - return( ret ); + return ret; } #elif defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) +static int ssl_get_ecdh_params_from_cert(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - const mbedtls_pk_context *private_key = mbedtls_ssl_own_key( ssl ); - if( private_key == NULL) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no server private key" ) ); - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + const mbedtls_pk_context *private_key = mbedtls_ssl_own_key(ssl); + if (private_key == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no server private key")); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } - if( ! mbedtls_pk_can_do( private_key, MBEDTLS_PK_ECKEY ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server key not ECDH capable" ) ); - return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); + if (!mbedtls_pk_can_do(private_key, MBEDTLS_PK_ECKEY)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("server key not ECDH capable")); + return MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH; } - if( ( ret = mbedtls_ecdh_get_params( &ssl->handshake->ecdh_ctx, - mbedtls_pk_ec( *mbedtls_ssl_own_key( ssl ) ), - MBEDTLS_ECDH_OURS ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ecdh_get_params" ), ret ); - return( ret ); + if ((ret = mbedtls_ecdh_get_params(&ssl->handshake->ecdh_ctx, + mbedtls_pk_ec(*mbedtls_ssl_own_key(ssl)), + MBEDTLS_ECDH_OURS)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ecdh_get_params"), ret); + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ @@ -2785,8 +2679,8 @@ static int ssl_get_ecdh_params_from_cert( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) && \ defined(MBEDTLS_SSL_ASYNC_PRIVATE) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_resume_server_key_exchange( mbedtls_ssl_context *ssl, - size_t *signature_len ) +static int ssl_resume_server_key_exchange(mbedtls_ssl_context *ssl, + size_t *signature_len) { /* Append the signature to ssl->out_msg, leaving 2 bytes for the * signature length which will be added in ssl_write_server_key_exchange @@ -2794,17 +2688,16 @@ static int ssl_resume_server_key_exchange( mbedtls_ssl_context *ssl, * ssl_write_server_key_exchange also takes care of incrementing * ssl->out_msglen. */ unsigned char *sig_start = ssl->out_msg + ssl->out_msglen + 2; - size_t sig_max_len = ( ssl->out_buf + MBEDTLS_SSL_OUT_CONTENT_LEN - - sig_start ); - int ret = ssl->conf->f_async_resume( ssl, - sig_start, signature_len, sig_max_len ); - if( ret != MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ) - { + size_t sig_max_len = (ssl->out_buf + MBEDTLS_SSL_OUT_CONTENT_LEN + - sig_start); + int ret = ssl->conf->f_async_resume(ssl, + sig_start, signature_len, sig_max_len); + if (ret != MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) { ssl->handshake->async_in_progress = 0; - mbedtls_ssl_set_async_operation_data( ssl, NULL ); + mbedtls_ssl_set_async_operation_data(ssl, NULL); } - MBEDTLS_SSL_DEBUG_RET( 2, "ssl_resume_server_key_exchange", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(2, "ssl_resume_server_key_exchange", ret); + return ret; } #endif /* defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) && defined(MBEDTLS_SSL_ASYNC_PRIVATE) */ @@ -2813,8 +2706,8 @@ static int ssl_resume_server_key_exchange( mbedtls_ssl_context *ssl, * calculating the signature if any, but excluding formatting the * signature and sending the message. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, - size_t *signature_len ) +static int ssl_prepare_server_key_exchange(mbedtls_ssl_context *ssl, + size_t *signature_len) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; @@ -2832,9 +2725,9 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - size_t out_buf_len = ssl->out_buf_len - ( ssl->out_msg - ssl->out_buf ); + size_t out_buf_len = ssl->out_buf_len - (ssl->out_msg - ssl->out_buf); #else - size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN - ( ssl->out_msg - ssl->out_buf ); + size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN - (ssl->out_msg - ssl->out_buf); #endif #endif @@ -2850,8 +2743,7 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * - ECJPAKE key exchanges */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_USE_PSA_CRYPTO) unsigned char *out_p = ssl->out_msg + ssl->out_msglen; @@ -2869,25 +2761,23 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * TLS ID here */ uint16_t tls_id = mbedtls_ssl_get_tls_id_from_ecp_group_id( - MBEDTLS_ECP_DP_SECP256R1 ); - if( tls_id ==0 ) - { - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + MBEDTLS_ECP_DP_SECP256R1); + if (tls_id == 0) { + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } *out_p = MBEDTLS_ECP_TLS_NAMED_CURVE; - MBEDTLS_PUT_UINT16_BE( tls_id, out_p, 1 ); + MBEDTLS_PUT_UINT16_BE(tls_id, out_p, 1); output_offset += 3; - ret = mbedtls_psa_ecjpake_write_round( &ssl->handshake->psa_pake_ctx, - out_p + output_offset, - end_p - out_p - output_offset, &output_len, - MBEDTLS_ECJPAKE_ROUND_TWO ); - if( ret != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); - MBEDTLS_SSL_DEBUG_RET( 1 , "psa_pake_output", ret ); - return( ret ); + ret = mbedtls_psa_ecjpake_write_round(&ssl->handshake->psa_pake_ctx, + out_p + output_offset, + end_p - out_p - output_offset, &output_len, + MBEDTLS_ECJPAKE_ROUND_TWO); + if (ret != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_output", ret); + return ret; } output_offset += output_len; @@ -2899,11 +2789,10 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, &ssl->handshake->ecjpake_ctx, ssl->out_msg + ssl->out_msglen, MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen, &len, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_write_round_two", ret ); - return( ret ); + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_write_round_two", ret); + return ret; } ssl->out_msglen += len; @@ -2918,9 +2807,8 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, **/ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { ssl->out_msg[ssl->out_msglen++] = 0x00; ssl->out_msg[ssl->out_msglen++] = 0x00; } @@ -2931,15 +2819,13 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * - DHE key exchanges */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_dhe( ciphersuite_info ) ) - { + if (mbedtls_ssl_ciphersuite_uses_dhe(ciphersuite_info)) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - if( ssl->conf->dhm_P.p == NULL || ssl->conf->dhm_G.p == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no DH parameters set" ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->dhm_P.p == NULL || ssl->conf->dhm_G.p == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no DH parameters set")); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* @@ -2951,22 +2837,20 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * opaque dh_Ys<1..2^16-1>; * } ServerDHParams; */ - if( ( ret = mbedtls_dhm_set_group( &ssl->handshake->dhm_ctx, - &ssl->conf->dhm_P, - &ssl->conf->dhm_G ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_set_group", ret ); - return( ret ); + if ((ret = mbedtls_dhm_set_group(&ssl->handshake->dhm_ctx, + &ssl->conf->dhm_P, + &ssl->conf->dhm_G)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_set_group", ret); + return ret; } - if( ( ret = mbedtls_dhm_make_params( - &ssl->handshake->dhm_ctx, - (int) mbedtls_dhm_get_len( &ssl->handshake->dhm_ctx ), - ssl->out_msg + ssl->out_msglen, &len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_make_params", ret ); - return( ret ); + if ((ret = mbedtls_dhm_make_params( + &ssl->handshake->dhm_ctx, + (int) mbedtls_dhm_get_len(&ssl->handshake->dhm_ctx), + ssl->out_msg + ssl->out_msglen, &len, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_make_params", ret); + return ret; } #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) @@ -2975,10 +2859,10 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, ssl->out_msglen += len; - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: X ", &ssl->handshake->dhm_ctx.X ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: P ", &ssl->handshake->dhm_ctx.P ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: G ", &ssl->handshake->dhm_ctx.G ); - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: GX", &ssl->handshake->dhm_ctx.GX ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: X ", &ssl->handshake->dhm_ctx.X); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: P ", &ssl->handshake->dhm_ctx.P); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: G ", &ssl->handshake->dhm_ctx.G); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GX", &ssl->handshake->dhm_ctx.GX); } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED */ @@ -2986,8 +2870,7 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * - ECDHE key exchanges */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_ecdhe( ciphersuite_info ) ) - { + if (mbedtls_ssl_ciphersuite_uses_ecdhe(ciphersuite_info)) { /* * Ephemeral ECDH parameters: * @@ -2997,28 +2880,31 @@ static int ssl_prepare_server_key_exchange( mbedtls_ssl_context *ssl, * } ServerECDHParams; */ uint16_t *curr_tls_id = ssl->handshake->curves_tls_id; - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; /* Match our preference list against the offered curves */ - if( ( group_list == NULL ) || ( curr_tls_id == NULL ) ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); - for( ; *group_list != 0; group_list++ ) - for( curr_tls_id = ssl->handshake->curves_tls_id; - *curr_tls_id != 0; curr_tls_id++ ) - if( *curr_tls_id == *group_list ) + if ((group_list == NULL) || (curr_tls_id == NULL)) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } + for (; *group_list != 0; group_list++) { + for (curr_tls_id = ssl->handshake->curves_tls_id; + *curr_tls_id != 0; curr_tls_id++) { + if (*curr_tls_id == *group_list) { goto curve_matching_done; - -curve_matching_done: - if( *curr_tls_id == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no matching curve for ECDHE" ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + } + } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDHE curve: %s", - mbedtls_ssl_get_curve_name_from_tls_id(*curr_tls_id) ) ); +curve_matching_done: + if (*curr_tls_id == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no matching curve for ECDHE")); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; + } + + MBEDTLS_SSL_DEBUG_MSG(2, ("ECDHE curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id(*curr_tls_id))); #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_GENERIC_ERROR; @@ -3031,23 +2917,23 @@ curve_matching_done: psa_ecc_family_t ec_psa_family = 0; size_t ec_bits = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Perform PSA-based ECDH computation.")); /* Convert EC's TLS ID to PSA key type. */ - if( mbedtls_ssl_get_psa_curve_info_from_tls_id( *curr_tls_id, - &ec_psa_family, &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid ecc group parse." ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (mbedtls_ssl_get_psa_curve_info_from_tls_id(*curr_tls_id, + &ec_psa_family, + &ec_bits) == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid ecc group parse.")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR(ec_psa_family); handshake->ecdh_bits = ec_bits; key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, PSA_ALG_ECDH ); - psa_set_key_type( &key_attributes, handshake->ecdh_psa_type ); - psa_set_key_bits( &key_attributes, handshake->ecdh_bits ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH); + psa_set_key_type(&key_attributes, handshake->ecdh_psa_type); + psa_set_key_bits(&key_attributes, handshake->ecdh_bits); /* * ECParameters curve_params @@ -3059,17 +2945,16 @@ curve_matching_done: /* * Next two bytes are the namedcurve value */ - MBEDTLS_PUT_UINT16_BE( *curr_tls_id, p, 0 ); + MBEDTLS_PUT_UINT16_BE(*curr_tls_id, p, 0); p += 2; /* Generate ECDH private key. */ - status = psa_generate_key( &key_attributes, - &handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_generate_key", ret ); - return( ret ); + status = psa_generate_key(&key_attributes, + &handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_generate_key", ret); + return ret; } /* @@ -3084,19 +2969,18 @@ curve_matching_done: */ unsigned char *own_pubkey = p + data_length_size; - size_t own_pubkey_max_len = (size_t)( MBEDTLS_SSL_OUT_CONTENT_LEN - - ( own_pubkey - ssl->out_msg ) ); + size_t own_pubkey_max_len = (size_t) (MBEDTLS_SSL_OUT_CONTENT_LEN + - (own_pubkey - ssl->out_msg)); - status = psa_export_public_key( handshake->ecdh_psa_privkey, - own_pubkey, own_pubkey_max_len, - &len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_export_public_key", ret ); - (void) psa_destroy_key( handshake->ecdh_psa_privkey ); + status = psa_export_public_key(handshake->ecdh_psa_privkey, + own_pubkey, own_pubkey_max_len, + &len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_export_public_key", ret); + (void) psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( ret ); + return ret; } /* Store the length of the exported public key. */ @@ -3106,27 +2990,25 @@ curve_matching_done: len += header_size; #else mbedtls_ecp_group_id curr_grp_id = - mbedtls_ssl_get_ecp_group_id_from_tls_id( *curr_tls_id ); + mbedtls_ssl_get_ecp_group_id_from_tls_id(*curr_tls_id); - if( ( ret = mbedtls_ecdh_setup( &ssl->handshake->ecdh_ctx, - curr_grp_id ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecp_group_load", ret ); - return( ret ); + if ((ret = mbedtls_ecdh_setup(&ssl->handshake->ecdh_ctx, + curr_grp_id)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecp_group_load", ret); + return ret; } - if( ( ret = mbedtls_ecdh_make_params( - &ssl->handshake->ecdh_ctx, &len, - ssl->out_msg + ssl->out_msglen, - MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_make_params", ret ); - return( ret ); + if ((ret = mbedtls_ecdh_make_params( + &ssl->handshake->ecdh_ctx, &len, + ssl->out_msg + ssl->out_msglen, + MBEDTLS_SSL_OUT_CONTENT_LEN - ssl->out_msglen, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_make_params", ret); + return ret; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Q ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Q); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) @@ -3144,12 +3026,10 @@ curve_matching_done: * */ #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_server_signature( ciphersuite_info ) ) - { - if( dig_signed == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (mbedtls_ssl_ciphersuite_uses_server_signature(ciphersuite_info)) { + if (dig_signed == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } size_t dig_signed_len = ssl->out_msg + ssl->out_msglen - dig_signed; @@ -3165,45 +3045,42 @@ curve_matching_done: */ mbedtls_pk_type_t sig_alg = - mbedtls_ssl_get_ciphersuite_sig_pk_alg( ciphersuite_info ); + mbedtls_ssl_get_ciphersuite_sig_pk_alg(ciphersuite_info); unsigned int sig_hash = mbedtls_ssl_tls12_get_preferred_hash_for_sig_alg( - ssl, mbedtls_ssl_sig_from_pk_alg( sig_alg ) ); + ssl, mbedtls_ssl_sig_from_pk_alg(sig_alg)); - mbedtls_md_type_t md_alg = mbedtls_ssl_md_alg_from_hash( sig_hash ); + mbedtls_md_type_t md_alg = mbedtls_ssl_md_alg_from_hash(sig_hash); /* For TLS 1.2, obey signature-hash-algorithm extension * (RFC 5246, Sec. 7.4.1.4.1). */ - if( sig_alg == MBEDTLS_PK_NONE || md_alg == MBEDTLS_MD_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + if (sig_alg == MBEDTLS_PK_NONE || md_alg == MBEDTLS_MD_NONE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); /* (... because we choose a cipher suite * only if there is a matching hash.) */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "pick hash algorithm %u for signing", (unsigned) md_alg ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("pick hash algorithm %u for signing", (unsigned) md_alg)); /* * 2.2: Compute the hash to be signed */ - if( md_alg != MBEDTLS_MD_NONE ) - { - ret = mbedtls_ssl_get_key_exchange_md_tls1_2( ssl, hash, &hashlen, - dig_signed, - dig_signed_len, - md_alg ); - if( ret != 0 ) - return( ret ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (md_alg != MBEDTLS_MD_NONE) { + ret = mbedtls_ssl_get_key_exchange_md_tls1_2(ssl, hash, &hashlen, + dig_signed, + dig_signed_len, + md_alg); + if (ret != 0) { + return ret; + } + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "parameters hash", hash, hashlen ); + MBEDTLS_SSL_DEBUG_BUF(3, "parameters hash", hash, hashlen); /* * 2.3: Compute and add the signature @@ -3224,37 +3101,34 @@ curve_matching_done: * */ - ssl->out_msg[ssl->out_msglen++] = mbedtls_ssl_hash_from_md_alg( md_alg ); - ssl->out_msg[ssl->out_msglen++] = mbedtls_ssl_sig_from_pk_alg( sig_alg ); + ssl->out_msg[ssl->out_msglen++] = mbedtls_ssl_hash_from_md_alg(md_alg); + ssl->out_msg[ssl->out_msglen++] = mbedtls_ssl_sig_from_pk_alg(sig_alg); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ssl->conf->f_async_sign_start != NULL ) - { - ret = ssl->conf->f_async_sign_start( ssl, - mbedtls_ssl_own_cert( ssl ), - md_alg, hash, hashlen ); - switch( ret ) - { - case MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH: - /* act as if f_async_sign was null */ - break; - case 0: - ssl->handshake->async_in_progress = 1; - return( ssl_resume_server_key_exchange( ssl, signature_len ) ); - case MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS: - ssl->handshake->async_in_progress = 1; - return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ); - default: - MBEDTLS_SSL_DEBUG_RET( 1, "f_async_sign_start", ret ); - return( ret ); + if (ssl->conf->f_async_sign_start != NULL) { + ret = ssl->conf->f_async_sign_start(ssl, + mbedtls_ssl_own_cert(ssl), + md_alg, hash, hashlen); + switch (ret) { + case MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH: + /* act as if f_async_sign was null */ + break; + case 0: + ssl->handshake->async_in_progress = 1; + return ssl_resume_server_key_exchange(ssl, signature_len); + case MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS: + ssl->handshake->async_in_progress = 1; + return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS; + default: + MBEDTLS_SSL_DEBUG_RET(1, "f_async_sign_start", ret); + return ret; } } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( mbedtls_ssl_own_key( ssl ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no private key" ) ); - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + if (mbedtls_ssl_own_key(ssl) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no private key")); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } /* Append the signature to ssl->out_msg, leaving 2 bytes for the @@ -3262,21 +3136,20 @@ curve_matching_done: * after the call to ssl_prepare_server_key_exchange. * ssl_write_server_key_exchange also takes care of incrementing * ssl->out_msglen. */ - if( ( ret = mbedtls_pk_sign( mbedtls_ssl_own_key( ssl ), - md_alg, hash, hashlen, - ssl->out_msg + ssl->out_msglen + 2, - out_buf_len - ssl->out_msglen - 2, - signature_len, - ssl->conf->f_rng, - ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_sign", ret ); - return( ret ); + if ((ret = mbedtls_pk_sign(mbedtls_ssl_own_key(ssl), + md_alg, hash, hashlen, + ssl->out_msg + ssl->out_msglen + 2, + out_buf_len - ssl->out_msglen - 2, + signature_len, + ssl->conf->f_rng, + ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_sign", ret); + return ret; } } #endif /* MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED */ - return( 0 ); + return 0; } /* Prepare the ServerKeyExchange message and send it. For ciphersuites @@ -3284,41 +3157,38 @@ curve_matching_done: * way, if successful, move on to the next step in the SSL state * machine. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_server_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_write_server_key_exchange(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t signature_len = 0; #if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED) const mbedtls_ssl_ciphersuite_t *ciphersuite_info = - ssl->handshake->ciphersuite_info; + ssl->handshake->ciphersuite_info; #endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write server key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write server key exchange")); #if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED) /* Extract static ECDH parameters and abort if ServerKeyExchange * is not needed. */ - if( mbedtls_ssl_ciphersuite_no_pfs( ciphersuite_info ) ) - { + if (mbedtls_ssl_ciphersuite_no_pfs(ciphersuite_info)) { /* For suites involving ECDH, extract DH parameters * from certificate at this point. */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED) - if( mbedtls_ssl_ciphersuite_uses_ecdh( ciphersuite_info ) ) - { - ret = ssl_get_ecdh_params_from_cert( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_get_ecdh_params_from_cert", ret ); - return( ret ); + if (mbedtls_ssl_ciphersuite_uses_ecdh(ciphersuite_info)) { + ret = ssl_get_ecdh_params_from_cert(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_get_ecdh_params_from_cert", ret); + return ret; } } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED */ /* Key exchanges not involving ephemeral keys don't use * ServerKeyExchange, so end here. */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write server key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write server key exchange")); ssl->state++; - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED */ @@ -3326,44 +3196,41 @@ static int ssl_write_server_key_exchange( mbedtls_ssl_context *ssl ) defined(MBEDTLS_SSL_ASYNC_PRIVATE) /* If we have already prepared the message and there is an ongoing * signature operation, resume signing. */ - if( ssl->handshake->async_in_progress != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "resuming signature operation" ) ); - ret = ssl_resume_server_key_exchange( ssl, &signature_len ); - } - else + if (ssl->handshake->async_in_progress != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("resuming signature operation")); + ret = ssl_resume_server_key_exchange(ssl, &signature_len); + } else #endif /* defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) && defined(MBEDTLS_SSL_ASYNC_PRIVATE) */ { /* ServerKeyExchange is needed. Prepare the message. */ - ret = ssl_prepare_server_key_exchange( ssl, &signature_len ); + ret = ssl_prepare_server_key_exchange(ssl, &signature_len); } - if( ret != 0 ) - { + if (ret != 0) { /* If we're starting to write a new message, set ssl->out_msglen * to 0. But if we're resuming after an asynchronous message, * out_msglen is the amount of data written so far and mst be * preserved. */ - if( ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ) - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server key exchange (pending)" ) ); - else + if (ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server key exchange (pending)")); + } else { ssl->out_msglen = 0; - return( ret ); + } + return ret; } /* If there is a signature, write its length. * ssl_prepare_server_key_exchange already wrote the signature * itself at its proper place in the output buffer. */ #if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED) - if( signature_len != 0 ) - { - ssl->out_msg[ssl->out_msglen++] = MBEDTLS_BYTE_1( signature_len ); - ssl->out_msg[ssl->out_msglen++] = MBEDTLS_BYTE_0( signature_len ); + if (signature_len != 0) { + ssl->out_msg[ssl->out_msglen++] = MBEDTLS_BYTE_1(signature_len); + ssl->out_msg[ssl->out_msglen++] = MBEDTLS_BYTE_0(signature_len); - MBEDTLS_SSL_DEBUG_BUF( 3, "my signature", - ssl->out_msg + ssl->out_msglen, - signature_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "my signature", + ssl->out_msg + ssl->out_msglen, + signature_len); /* Skip over the already-written signature */ ssl->out_msglen += signature_len; @@ -3376,22 +3243,21 @@ static int ssl_write_server_key_exchange( mbedtls_ssl_context *ssl ) ssl->state++; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server key exchange" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server key exchange")); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_server_hello_done( mbedtls_ssl_context *ssl ) +static int ssl_write_server_hello_done(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write server hello done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write server hello done")); ssl->out_msglen = 4; ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; @@ -3400,35 +3266,34 @@ static int ssl_write_server_hello_done( mbedtls_ssl_context *ssl ) ssl->state++; #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - mbedtls_ssl_send_flight_completed( ssl ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + mbedtls_ssl_send_flight_completed(ssl); + } #endif - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - ( ret = mbedtls_ssl_flight_transmit( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_flight_transmit", ret ); - return( ret ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + (ret = mbedtls_ssl_flight_transmit(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_flight_transmit", ret); + return ret; } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server hello done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server hello done")); - return( 0 ); + return 0; } #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_client_dh_public( mbedtls_ssl_context *ssl, unsigned char **p, - const unsigned char *end ) +static int ssl_parse_client_dh_public(mbedtls_ssl_context *ssl, unsigned char **p, + const unsigned char *end) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; size_t n; @@ -3436,32 +3301,29 @@ static int ssl_parse_client_dh_public( mbedtls_ssl_context *ssl, unsigned char * /* * Receive G^Y mod P, premaster = (G^Y)^X mod P */ - if( *p + 2 > end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (*p + 2 > end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - n = ( (*p)[0] << 8 ) | (*p)[1]; + n = ((*p)[0] << 8) | (*p)[1]; *p += 2; - if( *p + n > end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (*p + n > end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ( ret = mbedtls_dhm_read_public( &ssl->handshake->dhm_ctx, *p, n ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_read_public", ret ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ret = mbedtls_dhm_read_public(&ssl->handshake->dhm_ctx, *p, n)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_read_public", ret); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } *p += n; - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: GY", &ssl->handshake->dhm_ctx.GY ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: GY", &ssl->handshake->dhm_ctx.GY); - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ @@ -3471,120 +3333,113 @@ static int ssl_parse_client_dh_public( mbedtls_ssl_context *ssl, unsigned char * #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_resume_decrypt_pms( mbedtls_ssl_context *ssl, - unsigned char *peer_pms, - size_t *peer_pmslen, - size_t peer_pmssize ) +static int ssl_resume_decrypt_pms(mbedtls_ssl_context *ssl, + unsigned char *peer_pms, + size_t *peer_pmslen, + size_t peer_pmssize) { - int ret = ssl->conf->f_async_resume( ssl, - peer_pms, peer_pmslen, peer_pmssize ); - if( ret != MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ) - { + int ret = ssl->conf->f_async_resume(ssl, + peer_pms, peer_pmslen, peer_pmssize); + if (ret != MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) { ssl->handshake->async_in_progress = 0; - mbedtls_ssl_set_async_operation_data( ssl, NULL ); + mbedtls_ssl_set_async_operation_data(ssl, NULL); } - MBEDTLS_SSL_DEBUG_RET( 2, "ssl_decrypt_encrypted_pms", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(2, "ssl_decrypt_encrypted_pms", ret); + return ret; } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_decrypt_encrypted_pms( mbedtls_ssl_context *ssl, - const unsigned char *p, - const unsigned char *end, - unsigned char *peer_pms, - size_t *peer_pmslen, - size_t peer_pmssize ) +static int ssl_decrypt_encrypted_pms(mbedtls_ssl_context *ssl, + const unsigned char *p, + const unsigned char *end, + unsigned char *peer_pms, + size_t *peer_pmslen, + size_t peer_pmssize) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_x509_crt *own_cert = mbedtls_ssl_own_cert( ssl ); - if( own_cert == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no local certificate" ) ); - return( MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE ); + mbedtls_x509_crt *own_cert = mbedtls_ssl_own_cert(ssl); + if (own_cert == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no local certificate")); + return MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE; } mbedtls_pk_context *public_key = &own_cert->pk; - mbedtls_pk_context *private_key = mbedtls_ssl_own_key( ssl ); - size_t len = mbedtls_pk_get_len( public_key ); + mbedtls_pk_context *private_key = mbedtls_ssl_own_key(ssl); + size_t len = mbedtls_pk_get_len(public_key); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) /* If we have already started decoding the message and there is an ongoing * decryption operation, resume signing. */ - if( ssl->handshake->async_in_progress != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "resuming decryption operation" ) ); - return( ssl_resume_decrypt_pms( ssl, - peer_pms, peer_pmslen, peer_pmssize ) ); + if (ssl->handshake->async_in_progress != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("resuming decryption operation")); + return ssl_resume_decrypt_pms(ssl, + peer_pms, peer_pmslen, peer_pmssize); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ /* * Prepare to decrypt the premaster using own private RSA key */ - if ( p + 2 > end ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p + 2 > end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( *p++ != MBEDTLS_BYTE_1( len ) || - *p++ != MBEDTLS_BYTE_0( len ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (*p++ != MBEDTLS_BYTE_1(len) || + *p++ != MBEDTLS_BYTE_0(len)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( p + len != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p + len != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* * Decrypt the premaster secret */ #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ssl->conf->f_async_decrypt_start != NULL ) - { - ret = ssl->conf->f_async_decrypt_start( ssl, - mbedtls_ssl_own_cert( ssl ), - p, len ); - switch( ret ) - { - case MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH: - /* act as if f_async_decrypt_start was null */ - break; - case 0: - ssl->handshake->async_in_progress = 1; - return( ssl_resume_decrypt_pms( ssl, - peer_pms, - peer_pmslen, - peer_pmssize ) ); - case MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS: - ssl->handshake->async_in_progress = 1; - return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ); - default: - MBEDTLS_SSL_DEBUG_RET( 1, "f_async_decrypt_start", ret ); - return( ret ); + if (ssl->conf->f_async_decrypt_start != NULL) { + ret = ssl->conf->f_async_decrypt_start(ssl, + mbedtls_ssl_own_cert(ssl), + p, len); + switch (ret) { + case MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH: + /* act as if f_async_decrypt_start was null */ + break; + case 0: + ssl->handshake->async_in_progress = 1; + return ssl_resume_decrypt_pms(ssl, + peer_pms, + peer_pmslen, + peer_pmssize); + case MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS: + ssl->handshake->async_in_progress = 1; + return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS; + default: + MBEDTLS_SSL_DEBUG_RET(1, "f_async_decrypt_start", ret); + return ret; } } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( ! mbedtls_pk_can_do( private_key, MBEDTLS_PK_RSA ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no RSA private key" ) ); - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + if (!mbedtls_pk_can_do(private_key, MBEDTLS_PK_RSA)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no RSA private key")); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } - ret = mbedtls_pk_decrypt( private_key, p, len, - peer_pms, peer_pmslen, peer_pmssize, - ssl->conf->f_rng, ssl->conf->p_rng ); - return( ret ); + ret = mbedtls_pk_decrypt(private_key, p, len, + peer_pms, peer_pmslen, peer_pmssize, + ssl->conf->f_rng, ssl->conf->p_rng); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_encrypted_pms( mbedtls_ssl_context *ssl, - const unsigned char *p, - const unsigned char *end, - size_t pms_offset ) +static int ssl_parse_encrypted_pms(mbedtls_ssl_context *ssl, + const unsigned char *p, + const unsigned char *end, + size_t pms_offset) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *pms = ssl->handshake->premaster + pms_offset; @@ -3604,18 +3459,19 @@ static int ssl_parse_encrypted_pms( mbedtls_ssl_context *ssl, peer_pms[0] = peer_pms[1] = ~0; peer_pmslen = 0; - ret = ssl_decrypt_encrypted_pms( ssl, p, end, - peer_pms, - &peer_pmslen, - sizeof( peer_pms ) ); + ret = ssl_decrypt_encrypted_pms(ssl, p, end, + peer_pms, + &peer_pmslen, + sizeof(peer_pms)); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if ( ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ) - return( ret ); + if (ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) { + return ret; + } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - mbedtls_ssl_write_version( ver, ssl->conf->transport, - ssl->session_negotiate->tls_version ); + mbedtls_ssl_write_version(ver, ssl->conf->transport, + ssl->session_negotiate->tls_version); /* Avoid data-dependent branches while checking for invalid * padding, to protect against timing-based Bleichenbacher-type @@ -3626,7 +3482,7 @@ static int ssl_parse_encrypted_pms( mbedtls_ssl_context *ssl, diff |= peer_pms[1] ^ ver[1]; /* mask = diff ? 0xff : 0x00 using bit operations to avoid branches */ - mask = mbedtls_ct_uint_mask( diff ); + mask = mbedtls_ct_uint_mask(diff); /* * Protection against Bleichenbacher's attack: invalid PKCS#1 v1.5 padding @@ -3637,101 +3493,94 @@ static int ssl_parse_encrypted_pms( mbedtls_ssl_context *ssl, * successful. In particular, always generate the fake premaster secret, * regardless of whether it will ultimately influence the output or not. */ - ret = ssl->conf->f_rng( ssl->conf->p_rng, fake_pms, sizeof( fake_pms ) ); - if( ret != 0 ) - { + ret = ssl->conf->f_rng(ssl->conf->p_rng, fake_pms, sizeof(fake_pms)); + if (ret != 0) { /* It's ok to abort on an RNG failure, since this does not reveal * anything about the RSA decryption. */ - return( ret ); + return ret; } #if defined(MBEDTLS_SSL_DEBUG_ALL) - if( diff != 0 ) - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); + if (diff != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + } #endif - if( sizeof( ssl->handshake->premaster ) < pms_offset || - sizeof( ssl->handshake->premaster ) - pms_offset < 48 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (sizeof(ssl->handshake->premaster) < pms_offset || + sizeof(ssl->handshake->premaster) - pms_offset < 48) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } ssl->handshake->pmslen = 48; /* Set pms to either the true or the fake PMS, without * data-dependent branches. */ - for( i = 0; i < ssl->handshake->pmslen; i++ ) - pms[i] = ( mask & fake_pms[i] ) | ( (~mask) & peer_pms[i] ); + for (i = 0; i < ssl->handshake->pmslen; i++) { + pms[i] = (mask & fake_pms[i]) | ((~mask) & peer_pms[i]); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_client_psk_identity( mbedtls_ssl_context *ssl, unsigned char **p, - const unsigned char *end ) +static int ssl_parse_client_psk_identity(mbedtls_ssl_context *ssl, unsigned char **p, + const unsigned char *end) { int ret = 0; uint16_t n; - if( ssl_conf_has_psk_or_cb( ssl->conf ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no pre-shared key" ) ); - return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + if (ssl_conf_has_psk_or_cb(ssl->conf) == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no pre-shared key")); + return MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED; } /* * Receive client pre-shared key identity name */ - if( end - *p < 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (end - *p < 2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - n = ( (*p)[0] << 8 ) | (*p)[1]; + n = ((*p)[0] << 8) | (*p)[1]; *p += 2; - if( n == 0 || n > end - *p ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (n == 0 || n > end - *p) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ssl->conf->f_psk != NULL ) - { - if( ssl->conf->f_psk( ssl->conf->p_psk, ssl, *p, n ) != 0 ) + if (ssl->conf->f_psk != NULL) { + if (ssl->conf->f_psk(ssl->conf->p_psk, ssl, *p, n) != 0) { ret = MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY; - } - else - { + } + } else { /* Identity is not a big secret since clients send it in the clear, * but treat it carefully anyway, just in case */ - if( n != ssl->conf->psk_identity_len || - mbedtls_ct_memcmp( ssl->conf->psk_identity, *p, n ) != 0 ) - { + if (n != ssl->conf->psk_identity_len || + mbedtls_ct_memcmp(ssl->conf->psk_identity, *p, n) != 0) { ret = MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY; } } - if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) - { - MBEDTLS_SSL_DEBUG_BUF( 3, "Unknown PSK identity", *p, n ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNKNOWN_PSK_IDENTITY ); - return( MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ); + if (ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY) { + MBEDTLS_SSL_DEBUG_BUF(3, "Unknown PSK identity", *p, n); + mbedtls_ssl_send_alert_message(ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNKNOWN_PSK_IDENTITY); + return MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY; } *p += n; - return( 0 ); + return 0; } #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_parse_client_key_exchange(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; @@ -3739,282 +3588,244 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse client key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse client key exchange")); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) && \ - ( defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ - defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) ) - if( ( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA ) && - ( ssl->handshake->async_in_progress != 0 ) ) - { + (defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)) + if ((ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK || + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) && + (ssl->handshake->async_in_progress != 0)) { /* We've already read a record and there is an asynchronous * operation in progress to decrypt it. So skip reading the * record. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "will resume decryption of previously-read record" ) ); - } - else + MBEDTLS_SSL_DEBUG_MSG(3, ("will resume decryption of previously-read record")); + } else #endif - if( ( ret = mbedtls_ssl_read_record( ssl, 1 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 1)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } - p = ssl->in_msg + mbedtls_ssl_hs_hdr_len( ssl ); + p = ssl->in_msg + mbedtls_ssl_hs_hdr_len(ssl); end = ssl->in_msg + ssl->in_hslen; - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - if( ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msg[0] != MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA ) - { - if( ( ret = ssl_parse_client_dh_public( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_dh_public" ), ret ); - return( ret ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_RSA) { + if ((ret = ssl_parse_client_dh_public(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_dh_public"), ret); + return ret; } - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - ssl->handshake->premaster, - MBEDTLS_PREMASTER_SIZE, - &ssl->handshake->pmslen, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx, + ssl->handshake->premaster, + MBEDTLS_PREMASTER_SIZE, + &ssl->handshake->pmslen, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: K ", &ssl->handshake->dhm_ctx.K ); - } - else + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K); + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_RSA || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA || ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_RSA || - ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA ) - { + ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - size_t data_len = (size_t)( *p++ ); - size_t buf_len = (size_t)( end - p ); + size_t data_len = (size_t) (*p++); + size_t buf_len = (size_t) (end - p); psa_status_t status = PSA_ERROR_GENERIC_ERROR; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Read the peer's public key." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Read the peer's public key.")); /* * We must have at least two bytes (1 for length, at least 1 for data) */ - if( buf_len < 2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid buffer length" ) ); - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (buf_len < 2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid buffer length")); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } - if( data_len < 1 || data_len > buf_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid data length" ) ); - return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + if (data_len < 1 || data_len > buf_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid data length")); + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; } /* Store peer's ECDH public key. */ - memcpy( handshake->ecdh_psa_peerkey, p, data_len ); + memcpy(handshake->ecdh_psa_peerkey, p, data_len); handshake->ecdh_psa_peerkey_len = data_len; /* Compute ECDH shared secret. */ status = psa_raw_key_agreement( - PSA_ALG_ECDH, handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - handshake->premaster, sizeof( handshake->premaster ), - &handshake->pmslen ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); - if( handshake->ecdh_psa_privkey_is_external == 0 ) - (void) psa_destroy_key( handshake->ecdh_psa_privkey ); + PSA_ALG_ECDH, handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, + handshake->premaster, sizeof(handshake->premaster), + &handshake->pmslen); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_raw_key_agreement", ret); + if (handshake->ecdh_psa_privkey_is_external == 0) { + (void) psa_destroy_key(handshake->ecdh_psa_privkey); + } handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( ret ); + return ret; } - if( handshake->ecdh_psa_privkey_is_external == 0 ) - { - status = psa_destroy_key( handshake->ecdh_psa_privkey ); + if (handshake->ecdh_psa_privkey_is_external == 0) { + status = psa_destroy_key(handshake->ecdh_psa_privkey); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_destroy_key", ret); + return ret; } } handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #else - if( ( ret = mbedtls_ecdh_read_public( &ssl->handshake->ecdh_ctx, - p, end - p) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_read_public", ret ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ret = mbedtls_ecdh_read_public(&ssl->handshake->ecdh_ctx, + p, end - p)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_read_public", ret); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_QP ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_QP); - if( ( ret = mbedtls_ecdh_calc_secret( &ssl->handshake->ecdh_ctx, - &ssl->handshake->pmslen, - ssl->handshake->premaster, - MBEDTLS_MPI_MAX_SIZE, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_calc_secret", ret ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ret = mbedtls_ecdh_calc_secret(&ssl->handshake->ecdh_ctx, + &ssl->handshake->pmslen, + ssl->handshake->premaster, + MBEDTLS_MPI_MAX_SIZE, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_calc_secret", ret); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_Z ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_Z); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED || MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK ) - { - if( ( ret = ssl_parse_client_psk_identity( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_psk_identity" ), ret ); - return( ret ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_PSK) { + if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret); + return ret; } - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } #if !defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, - ciphersuite_info->key_exchange ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_psk_derive_premaster", ret ); - return( ret ); + if ((ret = mbedtls_ssl_psk_derive_premaster(ssl, + ciphersuite_info->key_exchange)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret); + return ret; } #endif /* !MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA_PSK) { #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if ( ssl->handshake->async_in_progress != 0 ) - { + if (ssl->handshake->async_in_progress != 0) { /* There is an asynchronous operation in progress to * decrypt the encrypted premaster secret, so skip * directly to resuming this operation. */ - MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK identity already parsed" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("PSK identity already parsed")); /* Update p to skip the PSK identity. ssl_parse_encrypted_pms * won't actually use it, but maintain p anyway for robustness. */ p += ssl->conf->psk_identity_len + 2; - } - else + } else #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( ( ret = ssl_parse_client_psk_identity( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_psk_identity" ), ret ); - return( ret ); + if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret); + return ret; } - if( ( ret = ssl_parse_encrypted_pms( ssl, p, end, 2 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_encrypted_pms" ), ret ); - return( ret ); + if ((ret = ssl_parse_encrypted_pms(ssl, p, end, 2)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_encrypted_pms"), ret); + return ret; } #if !defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, - ciphersuite_info->key_exchange ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_psk_derive_premaster", ret ); - return( ret ); + if ((ret = mbedtls_ssl_psk_derive_premaster(ssl, + ciphersuite_info->key_exchange)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret); + return ret; } #endif /* !MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK ) - { - if( ( ret = ssl_parse_client_psk_identity( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_psk_identity" ), ret ); - return( ret ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_DHE_PSK) { + if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret); + return ret; } - if( ( ret = ssl_parse_client_dh_public( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_dh_public" ), ret ); - return( ret ); + if ((ret = ssl_parse_client_dh_public(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_dh_public"), ret); + return ret; } - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client key exchange" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client key exchange")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } #if defined(MBEDTLS_USE_PSA_CRYPTO) unsigned char *pms = ssl->handshake->premaster; - unsigned char *pms_end = pms + sizeof( ssl->handshake->premaster ); + unsigned char *pms_end = pms + sizeof(ssl->handshake->premaster); size_t pms_len; /* Write length only when we know the actual value */ - if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - pms + 2, pms_end - ( pms + 2 ), &pms_len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); - return( ret ); + if ((ret = mbedtls_dhm_calc_secret(&ssl->handshake->dhm_ctx, + pms + 2, pms_end - (pms + 2), &pms_len, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_dhm_calc_secret", ret); + return ret; } - MBEDTLS_PUT_UINT16_BE( pms_len, pms, 0 ); + MBEDTLS_PUT_UINT16_BE(pms_len, pms, 0); pms += 2 + pms_len; - MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: K ", &ssl->handshake->dhm_ctx.K ); + MBEDTLS_SSL_DEBUG_MPI(3, "DHM: K ", &ssl->handshake->dhm_ctx.K); #else - if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, - ciphersuite_info->key_exchange ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_psk_derive_premaster", ret ); - return( ret ); + if ((ret = mbedtls_ssl_psk_derive_premaster(ssl, + ciphersuite_info->key_exchange)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_PSK) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t destruction_status = PSA_ERROR_CORRUPTION_DETECTED; @@ -4022,36 +3833,34 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_params *handshake = ssl->handshake; - if( ( ret = ssl_parse_client_psk_identity( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_psk_identity" ), ret ); - psa_destroy_key( handshake->ecdh_psa_privkey ); + if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret); + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( ret ); + return ret; } /* Keep a copy of the peer's public key */ - if( p >= end ) - { - psa_destroy_key( handshake->ecdh_psa_privkey ); + if (p >= end) { + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ecpoint_len = *(p++); - if( (size_t)( end - p ) < ecpoint_len ) { - psa_destroy_key( handshake->ecdh_psa_privkey ); + if ((size_t) (end - p) < ecpoint_len) { + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ecpoint_len > sizeof( handshake->ecdh_psa_peerkey ) ) { - psa_destroy_key( handshake->ecdh_psa_privkey ); + if (ecpoint_len > sizeof(handshake->ecdh_psa_peerkey)) { + psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - memcpy( handshake->ecdh_psa_peerkey, p, ecpoint_len ); + memcpy(handshake->ecdh_psa_peerkey, p, ecpoint_len); handshake->ecdh_psa_peerkey_len = ecpoint_len; p += ecpoint_len; @@ -4062,146 +3871,133 @@ static int ssl_parse_client_key_exchange( mbedtls_ssl_context *ssl ) * - the PSK itself */ unsigned char *psm = ssl->handshake->premaster; - const unsigned char* const psm_end = - psm + sizeof( ssl->handshake->premaster ); + const unsigned char * const psm_end = + psm + sizeof(ssl->handshake->premaster); /* uint16 to store length (in octets) of the ECDH computation */ const size_t zlen_size = 2; size_t zlen = 0; /* Compute ECDH shared secret. */ - status = psa_raw_key_agreement( PSA_ALG_ECDH, - handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, - handshake->ecdh_psa_peerkey_len, - psm + zlen_size, - psm_end - ( psm + zlen_size ), - &zlen ); + status = psa_raw_key_agreement(PSA_ALG_ECDH, + handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, + handshake->ecdh_psa_peerkey_len, + psm + zlen_size, + psm_end - (psm + zlen_size), + &zlen); - destruction_status = psa_destroy_key( handshake->ecdh_psa_privkey ); + destruction_status = psa_destroy_key(handshake->ecdh_psa_privkey); handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); - else if( destruction_status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( destruction_status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } else if (destruction_status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(destruction_status); + } /* Write the ECDH computation length before the ECDH computation */ - MBEDTLS_PUT_UINT16_BE( zlen, psm, 0 ); + MBEDTLS_PUT_UINT16_BE(zlen, psm, 0); psm += zlen_size + zlen; #else /* MBEDTLS_USE_PSA_CRYPTO */ - if( ( ret = ssl_parse_client_psk_identity( ssl, &p, end ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_client_psk_identity" ), ret ); - return( ret ); + if ((ret = ssl_parse_client_psk_identity(ssl, &p, end)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_client_psk_identity"), ret); + return ret; } - if( ( ret = mbedtls_ecdh_read_public( &ssl->handshake->ecdh_ctx, - p, end - p ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_read_public", ret ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((ret = mbedtls_ecdh_read_public(&ssl->handshake->ecdh_ctx, + p, end - p)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecdh_read_public", ret); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_ECDH( 3, &ssl->handshake->ecdh_ctx, - MBEDTLS_DEBUG_ECDH_QP ); + MBEDTLS_SSL_DEBUG_ECDH(3, &ssl->handshake->ecdh_ctx, + MBEDTLS_DEBUG_ECDH_QP); - if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, - ciphersuite_info->key_exchange ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_psk_derive_premaster", ret ); - return( ret ); + if ((ret = mbedtls_ssl_psk_derive_premaster(ssl, + ciphersuite_info->key_exchange)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_psk_derive_premaster", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA ) - { - if( ( ret = ssl_parse_encrypted_pms( ssl, p, end, 0 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "ssl_parse_parse_encrypted_pms_secret" ), ret ); - return( ret ); + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_RSA) { + if ((ret = ssl_parse_encrypted_pms(ssl, p, end, 0)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, ("ssl_parse_parse_encrypted_pms_secret"), ret); + return ret; } - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE ) - { + if (ciphersuite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECJPAKE) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_psa_ecjpake_read_round( - &ssl->handshake->psa_pake_ctx, p, end - p, - MBEDTLS_ECJPAKE_ROUND_TWO ) ) != 0 ) - { - psa_destroy_key( ssl->handshake->psa_pake_password ); - psa_pake_abort( &ssl->handshake->psa_pake_ctx ); + if ((ret = mbedtls_psa_ecjpake_read_round( + &ssl->handshake->psa_pake_ctx, p, end - p, + MBEDTLS_ECJPAKE_ROUND_TWO)) != 0) { + psa_destroy_key(ssl->handshake->psa_pake_password); + psa_pake_abort(&ssl->handshake->psa_pake_ctx); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_pake_input round two", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_RET(1, "psa_pake_input round two", ret); + return ret; } #else - ret = mbedtls_ecjpake_read_round_two( &ssl->handshake->ecjpake_ctx, - p, end - p ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_two", ret ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + ret = mbedtls_ecjpake_read_round_two(&ssl->handshake->ecjpake_ctx, + p, end - p); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_read_round_two", ret); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - ret = mbedtls_ecjpake_derive_secret( &ssl->handshake->ecjpake_ctx, - ssl->handshake->premaster, 32, &ssl->handshake->pmslen, - ssl->conf->f_rng, ssl->conf->p_rng ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_derive_secret", ret ); - return( ret ); + ret = mbedtls_ecjpake_derive_secret(&ssl->handshake->ecjpake_ctx, + ssl->handshake->premaster, 32, &ssl->handshake->pmslen, + ssl->conf->f_rng, ssl->conf->p_rng); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ecjpake_derive_secret", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - } - else + } else #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); - return( ret ); + if ((ret = mbedtls_ssl_derive_keys(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_derive_keys", ret); + return ret; } ssl->state++; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse client key exchange" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse client key exchange")); - return( 0 ); + return 0; } #if !defined(MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_parse_certificate_verify(mbedtls_ssl_context *ssl) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate verify")); - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate verify" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate verify")); ssl->state++; - return( 0 ); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } #else /* !MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_parse_certificate_verify(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; size_t i, sig_len; @@ -4212,60 +4008,54 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl ) mbedtls_md_type_t md_alg; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - mbedtls_pk_context * peer_pk; + mbedtls_pk_context *peer_pk; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate verify")); - if( !mbedtls_ssl_ciphersuite_cert_req_allowed( ciphersuite_info ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate verify" ) ); + if (!mbedtls_ssl_ciphersuite_cert_req_allowed(ciphersuite_info)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate verify")); ssl->state++; - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - if( ssl->session_negotiate->peer_cert == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate verify" ) ); + if (ssl->session_negotiate->peer_cert == NULL) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate verify")); ssl->state++; - return( 0 ); + return 0; } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( ssl->session_negotiate->peer_cert_digest == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip parse certificate verify" ) ); + if (ssl->session_negotiate->peer_cert_digest == NULL) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip parse certificate verify")); ssl->state++; - return( 0 ); + return 0; } #endif /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ /* Read the message without adding it to the checksum */ - ret = mbedtls_ssl_read_record( ssl, 0 /* no checksum update */ ); - if( 0 != ret ) - { - MBEDTLS_SSL_DEBUG_RET( 1, ( "mbedtls_ssl_read_record" ), ret ); - return( ret ); + ret = mbedtls_ssl_read_record(ssl, 0 /* no checksum update */); + if (0 != ret) { + MBEDTLS_SSL_DEBUG_RET(1, ("mbedtls_ssl_read_record"), ret); + return ret; } ssl->state++; /* Process the message contents */ - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE || - ssl->in_msg[0] != MBEDTLS_SSL_HS_CERTIFICATE_VERIFY ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate verify message" ) ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE || + ssl->in_msg[0] != MBEDTLS_SSL_HS_CERTIFICATE_VERIFY) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate verify message")); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } - i = mbedtls_ssl_hs_hdr_len( ssl ); + i = mbedtls_ssl_hs_hdr_len(ssl); #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) peer_pk = &ssl->handshake->peer_pubkey; #else /* !MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - if( ssl->session_negotiate->peer_cert == NULL ) - { + if (ssl->session_negotiate->peer_cert == NULL) { /* Should never happen */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } peer_pk = &ssl->session_negotiate->peer_cert->pk; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ @@ -4276,27 +4066,26 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl ) * opaque signature<0..2^16-1>; * } DigitallySigned; */ - if( i + 2 > ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate verify message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (i + 2 > ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate verify message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* * Hash */ - md_alg = mbedtls_ssl_md_alg_from_hash( ssl->in_msg[i] ); + md_alg = mbedtls_ssl_md_alg_from_hash(ssl->in_msg[i]); - if( md_alg == MBEDTLS_MD_NONE || mbedtls_ssl_set_calc_verify_md( ssl, ssl->in_msg[i] ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "peer not adhering to requested sig_alg" - " for verify message" ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (md_alg == MBEDTLS_MD_NONE || mbedtls_ssl_set_calc_verify_md(ssl, ssl->in_msg[i])) { + MBEDTLS_SSL_DEBUG_MSG(1, ("peer not adhering to requested sig_alg" + " for verify message")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } #if !defined(MBEDTLS_MD_SHA1) - if( MBEDTLS_MD_SHA1 == md_alg ) + if (MBEDTLS_MD_SHA1 == md_alg) { hash_start += 16; + } #endif /* Info from md_alg will be used instead */ @@ -4307,71 +4096,66 @@ static int ssl_parse_certificate_verify( mbedtls_ssl_context *ssl ) /* * Signature */ - if( ( pk_alg = mbedtls_ssl_pk_alg_from_sig( ssl->in_msg[i] ) ) - == MBEDTLS_PK_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "peer not adhering to requested sig_alg" - " for verify message" ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if ((pk_alg = mbedtls_ssl_pk_alg_from_sig(ssl->in_msg[i])) + == MBEDTLS_PK_NONE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("peer not adhering to requested sig_alg" + " for verify message")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* * Check the certificate's key type matches the signature alg */ - if( !mbedtls_pk_can_do( peer_pk, pk_alg ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "sig_alg doesn't match cert key" ) ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (!mbedtls_pk_can_do(peer_pk, pk_alg)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("sig_alg doesn't match cert key")); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } i++; - if( i + 2 > ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate verify message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (i + 2 > ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate verify message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - sig_len = ( ssl->in_msg[i] << 8 ) | ssl->in_msg[i+1]; + sig_len = (ssl->in_msg[i] << 8) | ssl->in_msg[i+1]; i += 2; - if( i + sig_len != ssl->in_hslen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate verify message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (i + sig_len != ssl->in_hslen) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate verify message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Calculate hash and verify signature */ { size_t dummy_hlen; - ssl->handshake->calc_verify( ssl, hash, &dummy_hlen ); + ssl->handshake->calc_verify(ssl, hash, &dummy_hlen); } - if( ( ret = mbedtls_pk_verify( peer_pk, - md_alg, hash_start, hashlen, - ssl->in_msg + i, sig_len ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_verify", ret ); - return( ret ); + if ((ret = mbedtls_pk_verify(peer_pk, + md_alg, hash_start, hashlen, + ssl->in_msg + i, sig_len)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_verify", ret); + return ret; } - mbedtls_ssl_update_handshake_status( ssl ); + mbedtls_ssl_update_handshake_status(ssl); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate verify")); - return( ret ); + return ret; } #endif /* MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_write_new_session_ticket( mbedtls_ssl_context *ssl ) +static int ssl_write_new_session_ticket(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t tlen; uint32_t lifetime; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write new session ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write new session ticket")); ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE; ssl->out_msg[0] = MBEDTLS_SSL_HS_NEW_SESSION_TICKET; @@ -4387,18 +4171,17 @@ static int ssl_write_new_session_ticket( mbedtls_ssl_context *ssl ) * 10 . 9+n ticket content */ - if( ( ret = ssl->conf->f_ticket_write( ssl->conf->p_ticket, - ssl->session_negotiate, - ssl->out_msg + 10, - ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN, - &tlen, &lifetime ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_ticket_write", ret ); + if ((ret = ssl->conf->f_ticket_write(ssl->conf->p_ticket, + ssl->session_negotiate, + ssl->out_msg + 10, + ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN, + &tlen, &lifetime)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_ticket_write", ret); tlen = 0; } - MBEDTLS_PUT_UINT32_BE( lifetime, ssl->out_msg, 4 ); - MBEDTLS_PUT_UINT16_BE( tlen, ssl->out_msg, 8 ); + MBEDTLS_PUT_UINT32_BE(lifetime, ssl->out_msg, 4); + MBEDTLS_PUT_UINT16_BE(tlen, ssl->out_msg, 8); ssl->out_msglen = 10 + tlen; /* @@ -4407,29 +4190,27 @@ static int ssl_write_new_session_ticket( mbedtls_ssl_context *ssl ) */ ssl->handshake->new_session_ticket = 0; - if( ( ret = mbedtls_ssl_write_handshake_msg( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_write_handshake_msg", ret ); - return( ret ); + if ((ret = mbedtls_ssl_write_handshake_msg(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_write_handshake_msg", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write new session ticket")); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ /* * SSL handshake -- server side -- single step */ -int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_handshake_server_step(mbedtls_ssl_context *ssl) { int ret = 0; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "server state: %d", ssl->state ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("server state: %d", ssl->state)); - switch( ssl->state ) - { + switch (ssl->state) { case MBEDTLS_SSL_HELLO_REQUEST: ssl->state = MBEDTLS_SSL_CLIENT_HELLO; break; @@ -4438,12 +4219,12 @@ int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ) * <== ClientHello */ case MBEDTLS_SSL_CLIENT_HELLO: - ret = ssl_parse_client_hello( ssl ); + ret = ssl_parse_client_hello(ssl); break; #if defined(MBEDTLS_SSL_PROTO_DTLS) case MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT: - return( MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED ); + return MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED; #endif /* @@ -4454,23 +4235,23 @@ int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ) * ServerHelloDone */ case MBEDTLS_SSL_SERVER_HELLO: - ret = ssl_write_server_hello( ssl ); + ret = ssl_write_server_hello(ssl); break; case MBEDTLS_SSL_SERVER_CERTIFICATE: - ret = mbedtls_ssl_write_certificate( ssl ); + ret = mbedtls_ssl_write_certificate(ssl); break; case MBEDTLS_SSL_SERVER_KEY_EXCHANGE: - ret = ssl_write_server_key_exchange( ssl ); + ret = ssl_write_server_key_exchange(ssl); break; case MBEDTLS_SSL_CERTIFICATE_REQUEST: - ret = ssl_write_certificate_request( ssl ); + ret = ssl_write_certificate_request(ssl); break; case MBEDTLS_SSL_SERVER_HELLO_DONE: - ret = ssl_write_server_hello_done( ssl ); + ret = ssl_write_server_hello_done(ssl); break; /* @@ -4481,23 +4262,23 @@ int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ) * Finished */ case MBEDTLS_SSL_CLIENT_CERTIFICATE: - ret = mbedtls_ssl_parse_certificate( ssl ); + ret = mbedtls_ssl_parse_certificate(ssl); break; case MBEDTLS_SSL_CLIENT_KEY_EXCHANGE: - ret = ssl_parse_client_key_exchange( ssl ); + ret = ssl_parse_client_key_exchange(ssl); break; case MBEDTLS_SSL_CERTIFICATE_VERIFY: - ret = ssl_parse_certificate_verify( ssl ); + ret = ssl_parse_certificate_verify(ssl); break; case MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC: - ret = mbedtls_ssl_parse_change_cipher_spec( ssl ); + ret = mbedtls_ssl_parse_change_cipher_spec(ssl); break; case MBEDTLS_SSL_CLIENT_FINISHED: - ret = mbedtls_ssl_parse_finished( ssl ); + ret = mbedtls_ssl_parse_finished(ssl); break; /* @@ -4507,35 +4288,35 @@ int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl ) */ case MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC: #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl->handshake->new_session_ticket != 0 ) - ret = ssl_write_new_session_ticket( ssl ); - else + if (ssl->handshake->new_session_ticket != 0) { + ret = ssl_write_new_session_ticket(ssl); + } else #endif - ret = mbedtls_ssl_write_change_cipher_spec( ssl ); + ret = mbedtls_ssl_write_change_cipher_spec(ssl); break; case MBEDTLS_SSL_SERVER_FINISHED: - ret = mbedtls_ssl_write_finished( ssl ); + ret = mbedtls_ssl_write_finished(ssl); break; case MBEDTLS_SSL_FLUSH_BUFFERS: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "handshake: done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("handshake: done")); ssl->state = MBEDTLS_SSL_HANDSHAKE_WRAPUP; break; case MBEDTLS_SSL_HANDSHAKE_WRAPUP: - mbedtls_ssl_handshake_wrapup( ssl ); + mbedtls_ssl_handshake_wrapup(ssl); break; default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid state %d", ssl->state ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid state %d", ssl->state)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - return( ret ); + return ret; } -void mbedtls_ssl_conf_preference_order( mbedtls_ssl_config *conf, int order ) +void mbedtls_ssl_conf_preference_order(mbedtls_ssl_config *conf, int order) { conf->respect_cli_pref = order; } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 025183d44..291a4cff6 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -44,18 +44,18 @@ * } SupportedVersions; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_supported_versions_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { unsigned char *p = buf; - unsigned char versions_len = ( ssl->handshake->min_tls_version <= - MBEDTLS_SSL_VERSION_TLS1_2 ) ? 4 : 2; + unsigned char versions_len = (ssl->handshake->min_tls_version <= + MBEDTLS_SSL_VERSION_TLS1_2) ? 4 : 2; *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding supported versions extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding supported versions extension")); /* Check if we have space to write the extension: * - extension_type (2 bytes) @@ -63,10 +63,10 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, * - versions_length (1 byte ) * - versions (2 or 4 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 5 + versions_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 5 + versions_len); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, p, 0 ); - MBEDTLS_PUT_UINT16_BE( versions_len + 1, p, 2 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, p, 0); + MBEDTLS_PUT_UINT16_BE(versions_len + 1, p, 2); p += 4; /* Length of versions */ @@ -76,59 +76,56 @@ static int ssl_tls13_write_supported_versions_ext( mbedtls_ssl_context *ssl, * They are defined by the configuration. * Currently, we advertise only TLS 1.3 or both TLS 1.3 and TLS 1.2. */ - mbedtls_ssl_write_version( p, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_VERSION_TLS1_3 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "supported version: [3:4]" ) ); + mbedtls_ssl_write_version(p, MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_VERSION_TLS1_3); + MBEDTLS_SSL_DEBUG_MSG(3, ("supported version: [3:4]")); - if( ssl->handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2 ) - { - mbedtls_ssl_write_version( p + 2, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_VERSION_TLS1_2 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "supported version: [3:3]" ) ); + if (ssl->handshake->min_tls_version <= MBEDTLS_SSL_VERSION_TLS1_2) { + mbedtls_ssl_write_version(p + 2, MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_VERSION_TLS1_2); + MBEDTLS_SSL_DEBUG_MSG(3, ("supported version: [3:3]")); } *out_len = 5 + versions_len; mbedtls_ssl_tls13_set_hs_sent_ext_mask( - ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_supported_versions_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_supported_versions_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { ((void) ssl); - MBEDTLS_SSL_CHK_BUF_READ_PTR( buf, end, 2 ); - if( mbedtls_ssl_read_version( buf, ssl->conf->transport ) != - MBEDTLS_SSL_VERSION_TLS1_3 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "unexpected version" ) ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(buf, end, 2); + if (mbedtls_ssl_read_version(buf, ssl->conf->transport) != + MBEDTLS_SSL_VERSION_TLS1_3) { + MBEDTLS_SSL_DEBUG_MSG(1, ("unexpected version")); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - if( &buf[2] != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "supported_versions ext data length incorrect" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (&buf[2] != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("supported_versions ext data length incorrect")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_ALPN) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_alpn_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, size_t len ) +static int ssl_tls13_parse_alpn_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, size_t len) { const unsigned char *p = buf; const unsigned char *end = buf + len; @@ -136,8 +133,9 @@ static int ssl_tls13_parse_alpn_ext( mbedtls_ssl_context *ssl, const unsigned char *protocol_name_list_end; /* If we didn't send it, the server shouldn't send it */ - if( ssl->conf->alpn_list == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->conf->alpn_list == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } /* * opaque ProtocolName<1..2^8-1>; @@ -149,66 +147,61 @@ static int ssl_tls13_parse_alpn_ext( mbedtls_ssl_context *ssl, * the "ProtocolNameList" MUST contain exactly one "ProtocolName" */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - protocol_name_list_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + protocol_name_list_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, protocol_name_list_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, protocol_name_list_len); protocol_name_list_end = p + protocol_name_list_len; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, protocol_name_list_end, 1 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, protocol_name_list_end, 1); protocol_name_len = *p++; /* Check that the server chosen protocol was in our list and save it */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, protocol_name_list_end, protocol_name_len ); - for( const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++ ) - { - if( protocol_name_len == strlen( *alpn ) && - memcmp( p, *alpn, protocol_name_len ) == 0 ) - { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, protocol_name_list_end, protocol_name_len); + for (const char **alpn = ssl->conf->alpn_list; *alpn != NULL; alpn++) { + if (protocol_name_len == strlen(*alpn) && + memcmp(p, *alpn, protocol_name_len) == 0) { ssl->alpn_chosen = *alpn; - return( 0 ); + return 0; } } - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #endif /* MBEDTLS_SSL_ALPN */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_reset_key_share( mbedtls_ssl_context *ssl ) +static int ssl_tls13_reset_key_share(mbedtls_ssl_context *ssl) { uint16_t group_id = ssl->handshake->offered_group_id; - if( group_id == 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (group_id == 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } #if defined(MBEDTLS_ECDH_C) - if( mbedtls_ssl_tls13_named_group_is_ecdhe( group_id ) ) - { + if (mbedtls_ssl_tls13_named_group_is_ecdhe(group_id)) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; /* Destroy generated private key. */ - status = psa_destroy_key( ssl->handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); - return( ret ); + status = psa_destroy_key(ssl->handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_destroy_key", ret); + return ret; } ssl->handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; - return( 0 ); - } - else + return 0; + } else #endif /* MBEDTLS_ECDH_C */ - if( 0 /* other KEMs? */ ) - { + if (0 /* other KEMs? */) { /* Do something */ } - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* @@ -216,26 +209,25 @@ static int ssl_tls13_reset_key_share( mbedtls_ssl_context *ssl ) */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, - uint16_t *group_id ) +static int ssl_tls13_get_default_group_id(mbedtls_ssl_context *ssl, + uint16_t *group_id) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; #if defined(MBEDTLS_ECDH_C) - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); /* Pick first available ECDHE group compatible with TLS 1.3 */ - if( group_list == NULL ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + if (group_list == NULL) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - for ( ; *group_list != 0; group_list++ ) - { - if( ( mbedtls_ssl_get_psa_curve_info_from_tls_id( *group_list, - NULL, NULL ) == PSA_SUCCESS ) && - mbedtls_ssl_tls13_named_group_is_ecdhe( *group_list ) ) - { + for (; *group_list != 0; group_list++) { + if ((mbedtls_ssl_get_psa_curve_info_from_tls_id(*group_list, + NULL, NULL) == PSA_SUCCESS) && + mbedtls_ssl_tls13_named_group_is_ecdhe(*group_list)) { *group_id = *group_list; - return( 0 ); + return 0; } } #else @@ -248,7 +240,7 @@ static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, * Pick first available DHE group compatible with TLS 1.3 */ - return( ret ); + return ret; } /* @@ -265,10 +257,10 @@ static int ssl_tls13_get_default_group_id( mbedtls_ssl_context *ssl, * } KeyShareClientHello; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_key_share_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { unsigned char *p = buf; unsigned char *client_shares; /* Start of client_shares */ @@ -283,18 +275,17 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, * - extension_data_length (2 bytes) * - client_shares_length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); p += 6; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello: adding key share extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello: adding key share extension")); /* HRR could already have requested something else. */ group_id = ssl->handshake->offered_group_id; - if( !mbedtls_ssl_tls13_named_group_is_ecdhe( group_id ) && - !mbedtls_ssl_tls13_named_group_is_dhe( group_id ) ) - { - MBEDTLS_SSL_PROC_CHK( ssl_tls13_get_default_group_id( ssl, - &group_id ) ); + if (!mbedtls_ssl_tls13_named_group_is_ecdhe(group_id) && + !mbedtls_ssl_tls13_named_group_is_dhe(group_id)) { + MBEDTLS_SSL_PROC_CHK(ssl_tls13_get_default_group_id(ssl, + &group_id)); } /* @@ -307,8 +298,7 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, */ client_shares = p; #if defined(MBEDTLS_ECDH_C) - if( mbedtls_ssl_tls13_named_group_is_ecdhe( group_id ) ) - { + if (mbedtls_ssl_tls13_named_group_is_ecdhe(group_id)) { /* Pointer to group */ unsigned char *group = p; /* Length of key_exchange */ @@ -318,41 +308,39 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, * - group (2 bytes) * - key_exchange_length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); p += 4; ret = mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( - ssl, group_id, p, end, &key_exchange_len ); + ssl, group_id, p, end, &key_exchange_len); p += key_exchange_len; - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } /* Write group */ - MBEDTLS_PUT_UINT16_BE( group_id, group, 0 ); + MBEDTLS_PUT_UINT16_BE(group_id, group, 0); /* Write key_exchange_length */ - MBEDTLS_PUT_UINT16_BE( key_exchange_len, group, 2 ); - } - else + MBEDTLS_PUT_UINT16_BE(key_exchange_len, group, 2); + } else #endif /* MBEDTLS_ECDH_C */ - if( 0 /* other KEMs? */ ) - { + if (0 /* other KEMs? */) { /* Do something */ + } else { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - else - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); /* Length of client_shares */ client_shares_len = p - client_shares; - if( client_shares_len == 0) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "No key share defined." ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (client_shares_len == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("No key share defined.")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Write extension_type */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_KEY_SHARE, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_KEY_SHARE, buf, 0); /* Write extension_data_length */ - MBEDTLS_PUT_UINT16_BE( client_shares_len + 2, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(client_shares_len + 2, buf, 2); /* Write client_shares_length */ - MBEDTLS_PUT_UINT16_BE( client_shares_len, buf, 4 ); + MBEDTLS_PUT_UINT16_BE(client_shares_len, buf, 4); /* Update offered_group_id field */ ssl->handshake->offered_group_id = group_id; @@ -360,13 +348,13 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, /* Output the total length of key_share extension. */ *out_len = p - buf; - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, key_share extension", buf, *out_len); - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_KEY_SHARE); cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ @@ -379,25 +367,26 @@ cleanup: * } KeyShareHelloRetryRequest; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_hrr_key_share_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { #if defined(MBEDTLS_ECDH_C) const unsigned char *p = buf; int selected_group; int found = 0; - const uint16_t *group_list = mbedtls_ssl_get_groups( ssl ); - if( group_list == NULL ) - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + const uint16_t *group_list = mbedtls_ssl_get_groups(ssl); + if (group_list == NULL) { + return MBEDTLS_ERR_SSL_BAD_CONFIG; + } - MBEDTLS_SSL_DEBUG_BUF( 3, "key_share extension", p, end - buf ); + MBEDTLS_SSL_DEBUG_BUF(3, "key_share extension", p, end - buf); /* Read selected_group */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - selected_group = MBEDTLS_GET_UINT16_BE( p, 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected_group ( %d )", selected_group ) ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + selected_group = MBEDTLS_GET_UINT16_BE(p, 0); + MBEDTLS_SSL_DEBUG_MSG(3, ("selected_group ( %d )", selected_group)); /* Upon receipt of this extension in a HelloRetryRequest, the client * MUST first verify that the selected_group field corresponds to a @@ -408,12 +397,12 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, * If the server provided a key share that was not sent in the ClientHello * then the client MUST abort the handshake with an "illegal_parameter" alert. */ - for( ; *group_list != 0; group_list++ ) - { - if( ( mbedtls_ssl_get_psa_curve_info_from_tls_id( *group_list, - NULL, NULL ) == PSA_ERROR_NOT_SUPPORTED ) || - *group_list != selected_group ) + for (; *group_list != 0; group_list++) { + if ((mbedtls_ssl_get_psa_curve_info_from_tls_id(*group_list, + NULL, NULL) == PSA_ERROR_NOT_SUPPORTED) || + *group_list != selected_group) { continue; + } /* We found a match */ found = 1; @@ -427,24 +416,23 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, * ClientHello then the client MUST abort the handshake with * an "illegal_parameter" alert. */ - if( found == 0 || selected_group == ssl->handshake->offered_group_id ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid key share in HRR" ) ); + if (found == 0 || selected_group == ssl->handshake->offered_group_id) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid key share in HRR")); MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } /* Remember server's preference for next ClientHello */ ssl->handshake->offered_group_id = selected_group; - return( 0 ); + return 0; #else (void) ssl; (void) buf; (void) end; - return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + return MBEDTLS_ERR_SSL_BAD_CONFIG; #endif } @@ -461,9 +449,9 @@ static int ssl_tls13_parse_hrr_key_share_ext( mbedtls_ssl_context *ssl, * } KeyShareEntry; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_key_share_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -473,49 +461,45 @@ static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, * NamedGroup group; (2 bytes) * ... */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - group = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + group = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* Check that the chosen group matches the one we offered. */ offered_group = ssl->handshake->offered_group_id; - if( offered_group != group ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "Invalid server key share, our group %u, their group %u", - (unsigned) offered_group, (unsigned) group ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (offered_group != group) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("Invalid server key share, our group %u, their group %u", + (unsigned) offered_group, (unsigned) group)); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #if defined(MBEDTLS_ECDH_C) - if( mbedtls_ssl_tls13_named_group_is_ecdhe( group ) ) - { - if( mbedtls_ssl_get_psa_curve_info_from_tls_id( group, NULL, NULL ) - == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid TLS curve group id" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (mbedtls_ssl_tls13_named_group_is_ecdhe(group)) { + if (mbedtls_ssl_get_psa_curve_info_from_tls_id(group, NULL, NULL) + == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid TLS curve group id")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH curve: %s", - mbedtls_ssl_get_curve_name_from_tls_id( group ) ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("ECDH curve: %s", + mbedtls_ssl_get_curve_name_from_tls_id(group))); - ret = mbedtls_ssl_tls13_read_public_ecdhe_share( ssl, p, end - p ); - if( ret != 0 ) - return( ret ); - } - else + ret = mbedtls_ssl_tls13_read_public_ecdhe_share(ssl, p, end - p); + if (ret != 0) { + return ret; + } + } else #endif /* MBEDTLS_ECDH_C */ - if( 0 /* other KEMs? */ ) - { + if (0 /* other KEMs? */) { /* Do something */ + } else { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - else - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - return( ret ); + return ret; } /* @@ -535,76 +519,74 @@ static int ssl_tls13_parse_key_share_ext( mbedtls_ssl_context *ssl, * cookies in their initial ClientHello in subsequent connections. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_cookie_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_cookie_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { uint16_t cookie_len; const unsigned char *p = buf; mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* Retrieve length field of cookie */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - cookie_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + cookie_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, cookie_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "cookie extension", p, cookie_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, cookie_len); + MBEDTLS_SSL_DEBUG_BUF(3, "cookie extension", p, cookie_len); - mbedtls_free( handshake->cookie ); + mbedtls_free(handshake->cookie); handshake->cookie_len = 0; - handshake->cookie = mbedtls_calloc( 1, cookie_len ); - if( handshake->cookie == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "alloc failed ( %ud bytes )", - cookie_len ) ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + handshake->cookie = mbedtls_calloc(1, cookie_len); + if (handshake->cookie == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("alloc failed ( %ud bytes )", + cookie_len)); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( handshake->cookie, p, cookie_len ); + memcpy(handshake->cookie, p, cookie_len); handshake->cookie_len = cookie_len; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_cookie_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { unsigned char *p = buf; *out_len = 0; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - if( handshake->cookie == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "no cookie to send; skip extension" ) ); - return( 0 ); + if (handshake->cookie == NULL) { + MBEDTLS_SSL_DEBUG_MSG(3, ("no cookie to send; skip extension")); + return 0; } - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, cookie", - handshake->cookie, - handshake->cookie_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, cookie", + handshake->cookie, + handshake->cookie_len); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, handshake->cookie_len + 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, handshake->cookie_len + 6); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding cookie extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding cookie extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_COOKIE, p, 0 ); - MBEDTLS_PUT_UINT16_BE( handshake->cookie_len + 2, p, 2 ); - MBEDTLS_PUT_UINT16_BE( handshake->cookie_len, p, 4 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_COOKIE, p, 0); + MBEDTLS_PUT_UINT16_BE(handshake->cookie_len + 2, p, 2); + MBEDTLS_PUT_UINT16_BE(handshake->cookie_len, p, 4); p += 6; /* Cookie */ - memcpy( p, handshake->cookie, handshake->cookie_len ); + memcpy(p, handshake->cookie, handshake->cookie_len); *out_len = handshake->cookie_len + 6; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_COOKIE); - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -618,195 +600,195 @@ static int ssl_tls13_write_cookie_ext( mbedtls_ssl_context *ssl, * } PskKeyExchangeModes; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_psk_key_exchange_modes_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_psk_key_exchange_modes_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { unsigned char *p = buf; int ke_modes_len = 0; - ((void) ke_modes_len ); + ((void) ke_modes_len); *out_len = 0; /* Skip writing extension if no PSK key exchange mode * is enabled in the config. */ - if( !mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip psk_key_exchange_modes extension" ) ); - return( 0 ); + if (!mbedtls_ssl_conf_tls13_some_psk_enabled(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(3, ("skip psk_key_exchange_modes extension")); + return 0; } /* Require 7 bytes of data, otherwise fail, * even if extension might be shorter. */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 7 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 7); MBEDTLS_SSL_DEBUG_MSG( - 3, ( "client hello, adding psk_key_exchange_modes extension" ) ); + 3, ("client hello, adding psk_key_exchange_modes extension")); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES, p, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES, p, 0); /* Skip extension length (2 bytes) and * ke_modes length (1 byte) for now. */ p += 5; - if( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) ) - { + if (mbedtls_ssl_conf_tls13_psk_ephemeral_enabled(ssl)) { *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_ECDHE; ke_modes_len++; - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding PSK-ECDHE key exchange mode" ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("Adding PSK-ECDHE key exchange mode")); } - if( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) ) - { + if (mbedtls_ssl_conf_tls13_psk_enabled(ssl)) { *p++ = MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE; ke_modes_len++; - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Adding pure PSK key exchange mode" ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("Adding pure PSK key exchange mode")); } /* Now write the extension and ke_modes length */ - MBEDTLS_PUT_UINT16_BE( ke_modes_len + 1, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(ke_modes_len + 1, buf, 2); buf[4] = ke_modes_len; *out_len = p - buf; mbedtls_ssl_tls13_set_hs_sent_ext_mask( - ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ); + ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES); - return ( 0 ); + return 0; } -static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg( int ciphersuite ) +static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg(int ciphersuite) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info = NULL; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(ciphersuite); - if( ciphersuite_info != NULL ) - return( mbedtls_psa_translate_md( ciphersuite_info->mac ) ); + if (ciphersuite_info != NULL) { + return mbedtls_psa_translate_md(ciphersuite_info->mac); + } - return( PSA_ALG_NONE ); + return PSA_ALG_NONE; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) -static int ssl_tls13_has_configured_ticket( mbedtls_ssl_context *ssl ) +static int ssl_tls13_has_configured_ticket(mbedtls_ssl_context *ssl) { mbedtls_ssl_session *session = ssl->session_negotiate; - return( ssl->handshake->resume && - session != NULL && session->ticket != NULL ); + return ssl->handshake->resume && + session != NULL && session->ticket != NULL; } #if defined(MBEDTLS_SSL_EARLY_DATA) -static int ssl_tls13_early_data_has_valid_ticket( mbedtls_ssl_context *ssl ) +static int ssl_tls13_early_data_has_valid_ticket(mbedtls_ssl_context *ssl) { mbedtls_ssl_session *session = ssl->session_negotiate; - return( ssl->handshake->resume && - session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && - ( session->ticket_flags & - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA ) && - mbedtls_ssl_tls13_cipher_suite_is_offered( - ssl, session->ciphersuite ) ); + return ssl->handshake->resume && + session->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 && + (session->ticket_flags & + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA) && + mbedtls_ssl_tls13_cipher_suite_is_offered( + ssl, session->ciphersuite); } #endif MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_ticket_get_identity( mbedtls_ssl_context *ssl, - psa_algorithm_t *hash_alg, - const unsigned char **identity, - size_t *identity_len ) +static int ssl_tls13_ticket_get_identity(mbedtls_ssl_context *ssl, + psa_algorithm_t *hash_alg, + const unsigned char **identity, + size_t *identity_len) { mbedtls_ssl_session *session = ssl->session_negotiate; - if( !ssl_tls13_has_configured_ticket( ssl ) ) - return( -1 ); + if (!ssl_tls13_has_configured_ticket(ssl)) { + return -1; + } - *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); + *hash_alg = ssl_tls13_get_ciphersuite_hash_alg(session->ciphersuite); *identity = session->ticket; *identity_len = session->ticket_len; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_ticket_get_psk( mbedtls_ssl_context *ssl, - psa_algorithm_t *hash_alg, - const unsigned char **psk, - size_t *psk_len ) +static int ssl_tls13_ticket_get_psk(mbedtls_ssl_context *ssl, + psa_algorithm_t *hash_alg, + const unsigned char **psk, + size_t *psk_len) { mbedtls_ssl_session *session = ssl->session_negotiate; - if( !ssl_tls13_has_configured_ticket( ssl ) ) - return( -1 ); + if (!ssl_tls13_has_configured_ticket(ssl)) { + return -1; + } - *hash_alg = ssl_tls13_get_ciphersuite_hash_alg( session->ciphersuite ); + *hash_alg = ssl_tls13_get_ciphersuite_hash_alg(session->ciphersuite); *psk = session->resumption_key; *psk_len = session->resumption_key_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_psk_get_identity( mbedtls_ssl_context *ssl, - psa_algorithm_t *hash_alg, - const unsigned char **identity, - size_t *identity_len ) +static int ssl_tls13_psk_get_identity(mbedtls_ssl_context *ssl, + psa_algorithm_t *hash_alg, + const unsigned char **identity, + size_t *identity_len) { - if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) - return( -1 ); + if (!mbedtls_ssl_conf_has_static_psk(ssl->conf)) { + return -1; + } *hash_alg = PSA_ALG_SHA_256; *identity = ssl->conf->psk_identity; *identity_len = ssl->conf->psk_identity_len; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_psk_get_psk( mbedtls_ssl_context *ssl, - psa_algorithm_t *hash_alg, - const unsigned char **psk, - size_t *psk_len ) +static int ssl_tls13_psk_get_psk(mbedtls_ssl_context *ssl, + psa_algorithm_t *hash_alg, + const unsigned char **psk, + size_t *psk_len) { - if( ! mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) - return( -1 ); + if (!mbedtls_ssl_conf_has_static_psk(ssl->conf)) { + return -1; + } *hash_alg = PSA_ALG_SHA_256; *psk = ssl->conf->psk; *psk_len = ssl->conf->psk_len; - return( 0 ); + return 0; } -static int ssl_tls13_get_configured_psk_count( mbedtls_ssl_context *ssl ) +static int ssl_tls13_get_configured_psk_count(mbedtls_ssl_context *ssl) { int configured_psk_count = 0; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl_tls13_has_configured_ticket( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Ticket is configured" ) ); + if (ssl_tls13_has_configured_ticket(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(3, ("Ticket is configured")); configured_psk_count++; } #endif - if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "PSK is configured" ) ); + if (mbedtls_ssl_conf_has_static_psk(ssl->conf)) { + MBEDTLS_SSL_DEBUG_MSG(3, ("PSK is configured")); configured_psk_count++; } - return( configured_psk_count ); + return configured_psk_count; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - const unsigned char *identity, - size_t identity_len, - uint32_t obfuscated_ticket_age, - size_t *out_len ) +static int ssl_tls13_write_identity(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + const unsigned char *identity, + size_t identity_len, + uint32_t obfuscated_ticket_age, + size_t *out_len) { ((void) ssl); *out_len = 0; @@ -816,66 +798,66 @@ static int ssl_tls13_write_identity( mbedtls_ssl_context *ssl, * - identity (psk_identity_len bytes) * - obfuscated_ticket_age (4 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 6 + identity_len ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, 6 + identity_len); - MBEDTLS_PUT_UINT16_BE( identity_len, buf, 0 ); - memcpy( buf + 2, identity, identity_len ); - MBEDTLS_PUT_UINT32_BE( obfuscated_ticket_age, buf, 2 + identity_len ); + MBEDTLS_PUT_UINT16_BE(identity_len, buf, 0); + memcpy(buf + 2, identity, identity_len); + MBEDTLS_PUT_UINT32_BE(obfuscated_ticket_age, buf, 2 + identity_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "write identity", buf, 6 + identity_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "write identity", buf, 6 + identity_len); *out_len = 6 + identity_len; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - int psk_type, - psa_algorithm_t hash_alg, - const unsigned char *psk, - size_t psk_len, - size_t *out_len ) +static int ssl_tls13_write_binder(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + int psk_type, + psa_algorithm_t hash_alg, + const unsigned char *psk, + size_t psk_len, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char binder_len; - unsigned char transcript[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; + unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t transcript_len = 0; *out_len = 0; - binder_len = PSA_HASH_LENGTH( hash_alg ); + binder_len = PSA_HASH_LENGTH(hash_alg); /* * - binder_len (1 bytes) * - binder (binder_len bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 1 + binder_len ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, 1 + binder_len); buf[0] = binder_len; /* Get current state of handshake transcript. */ ret = mbedtls_ssl_get_handshake_transcript( - ssl, mbedtls_hash_info_md_from_psa( hash_alg ), - transcript, sizeof( transcript ), &transcript_len ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_create_psk_binder( ssl, hash_alg, - psk, psk_len, psk_type, - transcript, buf + 1 ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_create_psk_binder", ret ); - return( ret ); + ssl, mbedtls_hash_info_md_from_psa(hash_alg), + transcript, sizeof(transcript), &transcript_len); + if (ret != 0) { + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 4, "write binder", buf, 1 + binder_len ); + + ret = mbedtls_ssl_tls13_create_psk_binder(ssl, hash_alg, + psk, psk_len, psk_type, + transcript, buf + 1); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_create_psk_binder", ret); + return ret; + } + MBEDTLS_SSL_DEBUG_BUF(4, "write binder", buf, 1 + binder_len); *out_len = 1 + binder_len; - return( 0 ); + return 0; } /* @@ -902,8 +884,8 @@ static int ssl_tls13_write_binder( mbedtls_ssl_context *ssl, * */ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( - mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, - size_t *out_len, size_t *binders_len ) + mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end, + size_t *out_len, size_t *binders_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int configured_psk_count = 0; @@ -918,33 +900,31 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( *binders_len = 0; /* Check if we have any PSKs to offer. If no, skip pre_shared_key */ - configured_psk_count = ssl_tls13_get_configured_psk_count( ssl ); - if( configured_psk_count == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "skip pre_shared_key extensions" ) ); - return( 0 ); + configured_psk_count = ssl_tls13_get_configured_psk_count(ssl); + if (configured_psk_count == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("skip pre_shared_key extensions")); + return 0; } - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Pre-configured PSK number = %d", - configured_psk_count ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("Pre-configured PSK number = %d", + configured_psk_count)); /* Check if we have space to write the extension, binders included. * - extension_type (2 bytes) * - extension_data_len (2 bytes) * - identities_len (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); p += 6; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl_tls13_ticket_get_identity( - ssl, &hash_alg, &identity, &identity_len ) == 0 ) - { + if (ssl_tls13_ticket_get_identity( + ssl, &hash_alg, &identity, &identity_len) == 0) { #if defined(MBEDTLS_HAVE_TIME) - mbedtls_time_t now = mbedtls_time( NULL ); + mbedtls_time_t now = mbedtls_time(NULL); mbedtls_ssl_session *session = ssl->session_negotiate; uint32_t obfuscated_ticket_age = - (uint32_t)( now - session->ticket_received ); + (uint32_t) (now - session->ticket_received); /* * The ticket timestamp is in seconds but the ticket age is in @@ -958,69 +938,71 @@ int mbedtls_ssl_tls13_write_identities_of_pre_shared_key_ext( * one computed here and potentially reject the ticket. To avoid that, * remove one second to the ticket age if possible. */ - if( obfuscated_ticket_age > 0 ) + if (obfuscated_ticket_age > 0) { obfuscated_ticket_age -= 1; + } obfuscated_ticket_age *= 1000; obfuscated_ticket_age += session->ticket_age_add; - ret = ssl_tls13_write_identity( ssl, p, end, - identity, identity_len, - obfuscated_ticket_age, - &output_len ); + ret = ssl_tls13_write_identity(ssl, p, end, + identity, identity_len, + obfuscated_ticket_age, + &output_len); #else - ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, - 0, &output_len ); + ret = ssl_tls13_write_identity(ssl, p, end, identity, identity_len, + 0, &output_len); #endif /* MBEDTLS_HAVE_TIME */ - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } p += output_len; - l_binders_len += 1 + PSA_HASH_LENGTH( hash_alg ); + l_binders_len += 1 + PSA_HASH_LENGTH(hash_alg); } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - if( ssl_tls13_psk_get_identity( - ssl, &hash_alg, &identity, &identity_len ) == 0 ) - { + if (ssl_tls13_psk_get_identity( + ssl, &hash_alg, &identity, &identity_len) == 0) { - ret = ssl_tls13_write_identity( ssl, p, end, identity, identity_len, 0, - &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_identity(ssl, p, end, identity, identity_len, 0, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; - l_binders_len += 1 + PSA_HASH_LENGTH( hash_alg ); + l_binders_len += 1 + PSA_HASH_LENGTH(hash_alg); } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "client hello, adding pre_shared_key extension, " - "omitting PSK binder list" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("client hello, adding pre_shared_key extension, " + "omitting PSK binder list")); /* Take into account the two bytes for the length of the binders. */ l_binders_len += 2; /* Check if there is enough space for binders */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, l_binders_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, l_binders_len); /* * - extension_type (2 bytes) * - extension_data_len (2 bytes) * - identities_len (2 bytes) */ - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PRE_SHARED_KEY, buf, 0 ); - MBEDTLS_PUT_UINT16_BE( p - buf - 4 + l_binders_len , buf, 2 ); - MBEDTLS_PUT_UINT16_BE( p - buf - 6 , buf, 4 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_PRE_SHARED_KEY, buf, 0); + MBEDTLS_PUT_UINT16_BE(p - buf - 4 + l_binders_len, buf, 2); + MBEDTLS_PUT_UINT16_BE(p - buf - 6, buf, 4); - *out_len = ( p - buf ) + l_binders_len; + *out_len = (p - buf) + l_binders_len; *binders_len = l_binders_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key identities", buf, p - buf ); + MBEDTLS_SSL_DEBUG_BUF(3, "pre_shared_key identities", buf, p - buf); - return( 0 ); + return 0; } int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( - mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end ) + mbedtls_ssl_context *ssl, unsigned char *buf, unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -1032,48 +1014,48 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( /* Check if we have space to write binders_len. * - binders_len (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); p += 2; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 ) - { + if (ssl_tls13_ticket_get_psk(ssl, &hash_alg, &psk, &psk_len) == 0) { - ret = ssl_tls13_write_binder( ssl, p, end, - MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, - hash_alg, psk, psk_len, - &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_binder(ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION, + hash_alg, psk, psk_len, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ - if( ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ) == 0 ) - { + if (ssl_tls13_psk_get_psk(ssl, &hash_alg, &psk, &psk_len) == 0) { - ret = ssl_tls13_write_binder( ssl, p, end, - MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, - hash_alg, psk, psk_len, - &output_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_binder(ssl, p, end, + MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL, + hash_alg, psk, psk_len, + &output_len); + if (ret != 0) { + return ret; + } p += output_len; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding PSK binder list." ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("client hello, adding PSK binder list.")); /* * - binders_len (2 bytes) */ - MBEDTLS_PUT_UINT16_BE( p - buf - 2, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(p - buf - 2, buf, 0); - MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key binders", buf, p - buf ); + MBEDTLS_SSL_DEBUG_BUF(3, "pre_shared_key binders", buf, p - buf); mbedtls_ssl_tls13_set_hs_sent_ext_mask( - ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY); - return( 0 ); + return 0; } /* @@ -1095,9 +1077,9 @@ int mbedtls_ssl_tls13_write_binders_of_pre_shared_key_ext( * */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_server_pre_shared_key_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int selected_identity; @@ -1105,54 +1087,48 @@ static int ssl_tls13_parse_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, size_t psk_len; psa_algorithm_t hash_alg; - MBEDTLS_SSL_CHK_BUF_READ_PTR( buf, end, 2 ); - selected_identity = MBEDTLS_GET_UINT16_BE( buf, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(buf, end, 2); + selected_identity = MBEDTLS_GET_UINT16_BE(buf, 0); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "selected_identity = %d", selected_identity ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("selected_identity = %d", selected_identity)); - if( selected_identity >= ssl_tls13_get_configured_psk_count( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Invalid PSK identity." ) ); + if (selected_identity >= ssl_tls13_get_configured_psk_count(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Invalid PSK identity.")); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( selected_identity == 0 && ssl_tls13_has_configured_ticket( ssl ) ) - { - ret = ssl_tls13_ticket_get_psk( ssl, &hash_alg, &psk, &psk_len ); - } - else + if (selected_identity == 0 && ssl_tls13_has_configured_ticket(ssl)) { + ret = ssl_tls13_ticket_get_psk(ssl, &hash_alg, &psk, &psk_len); + } else #endif - if( mbedtls_ssl_conf_has_static_psk( ssl->conf ) ) - { - ret = ssl_tls13_psk_get_psk( ssl, &hash_alg, &psk, &psk_len ); + if (mbedtls_ssl_conf_has_static_psk(ssl->conf)) { + ret = ssl_tls13_psk_get_psk(ssl, &hash_alg, &psk, &psk_len); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_set_hs_psk( ssl, psk, psk_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_set_hs_psk", ret ); - return( ret ); + if (ret != 0) { + return ret; } - return( 0 ); + ret = mbedtls_ssl_set_hs_psk(ssl, psk, psk_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_set_hs_psk", ret); + return ret; + } + + return 0; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ -int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +int mbedtls_ssl_tls13_write_client_hello_exts(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -1164,37 +1140,39 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, * * Supported Versions Extension is mandatory with TLS 1.3. */ - ret = ssl_tls13_write_supported_versions_ext( ssl, p, end, &ext_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_supported_versions_ext(ssl, p, end, &ext_len); + if (ret != 0) { + return ret; + } p += ext_len; /* Echo the cookie if the server provided one in its preceding * HelloRetryRequest message. */ - ret = ssl_tls13_write_cookie_ext( ssl, p, end, &ext_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_cookie_ext(ssl, p, end, &ext_len); + if (ret != 0) { + return ret; + } p += ext_len; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED) - if( mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) - { - ret = ssl_tls13_write_key_share_ext( ssl, p, end, &ext_len ); - if( ret != 0 ) - return( ret ); + if (mbedtls_ssl_conf_tls13_some_ephemeral_enabled(ssl)) { + ret = ssl_tls13_write_key_share_ext(ssl, p, end, &ext_len); + if (ret != 0) { + return ret; + } p += ext_len; } #endif #if defined(MBEDTLS_SSL_EARLY_DATA) - if( mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ssl_tls13_early_data_has_valid_ticket( ssl ) && - ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) - { - ret = mbedtls_ssl_tls13_write_early_data_ext( ssl, p, end, &ext_len ); - if( ret != 0 ) - return( ret ); + if (mbedtls_ssl_conf_tls13_some_psk_enabled(ssl) && + ssl_tls13_early_data_has_valid_ticket(ssl) && + ssl->conf->early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED) { + ret = mbedtls_ssl_tls13_write_early_data_ext(ssl, p, end, &ext_len); + if (ret != 0) { + return ret; + } p += ext_len; /* Initializes the status to `rejected`. It will be updated to @@ -1202,10 +1180,8 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, * indication extension. */ ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_REJECTED; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write early_data extension" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write early_data extension")); ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_NOT_SENT; } #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -1220,15 +1196,16 @@ int mbedtls_ssl_tls13_write_client_hello_exts( mbedtls_ssl_context *ssl, * * Add the psk_key_exchange_modes extension. */ - ret = ssl_tls13_write_psk_key_exchange_modes_ext( ssl, p, end, &ext_len ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_write_psk_key_exchange_modes_ext(ssl, p, end, &ext_len); + if (ret != 0) { + return ret; + } p += ext_len; #endif *out_len = p - buf; - return( 0 ); + return 0; } /* @@ -1251,7 +1228,7 @@ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_is_supported_versions_ext_present( mbedtls_ssl_context *ssl, const unsigned char *buf, - const unsigned char *end ) + const unsigned char *end) { const unsigned char *p = buf; size_t legacy_session_id_echo_len; @@ -1265,7 +1242,7 @@ static int ssl_tls13_is_supported_versions_ext_present( * - random MBEDTLS_SERVER_HELLO_RANDOM_LEN bytes * - legacy_session_id_echo length 1 byte */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 3 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 3); p += MBEDTLS_SERVER_HELLO_RANDOM_LEN + 2; legacy_session_id_echo_len = *p; @@ -1275,12 +1252,13 @@ static int ssl_tls13_is_supported_versions_ext_present( * - cipher_suite 2 bytes * - legacy_compression_method 1 byte */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, legacy_session_id_echo_len + 4 ); - p += legacy_session_id_echo_len + 4; + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, legacy_session_id_echo_len + 4); + p += legacy_session_id_echo_len + 4; /* Case of no extension */ - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } /* ... * Extension extensions<6..2^16-1>; @@ -1290,32 +1268,32 @@ static int ssl_tls13_is_supported_versions_ext_present( * opaque extension_data<0..2^16-1>; * } Extension; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* Check extensions do not go beyond the buffer of data. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); extensions_end = p + extensions_len; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - if( extension_type == MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) - return( 1 ); + if (extension_type == MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS) { + return 1; + } - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); p += extension_data_len; } - return( 0 ); + return 0; } /* Returns a negative value on failure, and otherwise @@ -1324,29 +1302,28 @@ static int ssl_tls13_is_supported_versions_ext_present( * - 0 otherwise */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_is_downgrade_negotiation( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_is_downgrade_negotiation(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { /* First seven bytes of the magic downgrade strings, see RFC 8446 4.1.3 */ static const unsigned char magic_downgrade_string[] = - { 0x44, 0x4F, 0x57, 0x4E, 0x47, 0x52, 0x44 }; + { 0x44, 0x4F, 0x57, 0x4E, 0x47, 0x52, 0x44 }; const unsigned char *last_eight_bytes_of_random; unsigned char last_byte_of_random; - MBEDTLS_SSL_CHK_BUF_READ_PTR( buf, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(buf, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 2); last_eight_bytes_of_random = buf + 2 + MBEDTLS_SERVER_HELLO_RANDOM_LEN - 8; - if( memcmp( last_eight_bytes_of_random, - magic_downgrade_string, - sizeof( magic_downgrade_string ) ) == 0 ) - { + if (memcmp(last_eight_bytes_of_random, + magic_downgrade_string, + sizeof(magic_downgrade_string)) == 0) { last_byte_of_random = last_eight_bytes_of_random[7]; - return( last_byte_of_random == 0 || - last_byte_of_random == 1 ); + return last_byte_of_random == 0 || + last_byte_of_random == 1; } - return( 0 ); + return 0; } /* Returns a negative value on failure, and otherwise @@ -1357,9 +1334,9 @@ static int ssl_tls13_is_downgrade_negotiation( mbedtls_ssl_context *ssl, #define SSL_SERVER_HELLO 0 #define SSL_SERVER_HELLO_HRR 1 MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_server_hello_is_hrr( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_server_hello_is_hrr(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { /* Check whether this message is a HelloRetryRequest ( HRR ) message. @@ -1377,16 +1354,15 @@ static int ssl_server_hello_is_hrr( mbedtls_ssl_context *ssl, * } ServerHello; * */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( buf, end, - 2 + sizeof( mbedtls_ssl_tls13_hello_retry_request_magic ) ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(buf, end, + 2 + sizeof(mbedtls_ssl_tls13_hello_retry_request_magic)); - if( memcmp( buf + 2, mbedtls_ssl_tls13_hello_retry_request_magic, - sizeof( mbedtls_ssl_tls13_hello_retry_request_magic ) ) == 0 ) - { - return( SSL_SERVER_HELLO_HRR ); + if (memcmp(buf + 2, mbedtls_ssl_tls13_hello_retry_request_magic, + sizeof(mbedtls_ssl_tls13_hello_retry_request_magic)) == 0) { + return SSL_SERVER_HELLO_HRR; } - return( SSL_SERVER_HELLO ); + return SSL_SERVER_HELLO; } /* @@ -1397,20 +1373,19 @@ static int ssl_server_hello_is_hrr( mbedtls_ssl_context *ssl, */ #define SSL_SERVER_HELLO_TLS1_2 2 MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_preprocess_server_hello(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - MBEDTLS_SSL_PROC_CHK_NEG( ssl_tls13_is_supported_versions_ext_present( - ssl, buf, end ) ); + MBEDTLS_SSL_PROC_CHK_NEG(ssl_tls13_is_supported_versions_ext_present( + ssl, buf, end)); - if( ret == 0 ) - { + if (ret == 0) { MBEDTLS_SSL_PROC_CHK_NEG( - ssl_tls13_is_downgrade_negotiation( ssl, buf, end ) ); + ssl_tls13_is_downgrade_negotiation(ssl, buf, end)); /* If the server is negotiating TLS 1.2 or below and: * . we did not propose TLS 1.2 or @@ -1418,26 +1393,25 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, * version of the protocol and thus we are under downgrade attack * abort the handshake with an "illegal parameter" alert. */ - if( handshake->min_tls_version > MBEDTLS_SSL_VERSION_TLS1_2 || ret ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (handshake->min_tls_version > MBEDTLS_SSL_VERSION_TLS1_2 || ret) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } ssl->keep_current_message = 1; ssl->tls_version = MBEDTLS_SSL_VERSION_TLS1_2; - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_SERVER_HELLO, - buf, (size_t)(end - buf) ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_SERVER_HELLO, + buf, (size_t) (end - buf)); - if( mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) - { - ret = ssl_tls13_reset_key_share( ssl ); - if( ret != 0 ) - return( ret ); + if (mbedtls_ssl_conf_tls13_some_ephemeral_enabled(ssl)) { + ret = ssl_tls13_reset_key_share(ssl); + if (ret != 0) { + return ret; + } } - return( SSL_SERVER_HELLO_TLS1_2 ); + return SSL_SERVER_HELLO_TLS1_2; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) @@ -1447,25 +1421,23 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - ret = ssl_server_hello_is_hrr( ssl, buf, end ); - switch( ret ) - { + ret = ssl_server_hello_is_hrr(ssl, buf, end); + switch (ret) { case SSL_SERVER_HELLO: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "received ServerHello message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("received ServerHello message")); break; case SSL_SERVER_HELLO_HRR: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "received HelloRetryRequest message" ) ); - /* If a client receives a second - * HelloRetryRequest in the same connection (i.e., where the ClientHello - * was itself in response to a HelloRetryRequest), it MUST abort the - * handshake with an "unexpected_message" alert. - */ - if( handshake->hello_retry_request_count > 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Multiple HRRs received" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE, - MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); - return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_DEBUG_MSG(2, ("received HelloRetryRequest message")); + /* If a client receives a second + * HelloRetryRequest in the same connection (i.e., where the ClientHello + * was itself in response to a HelloRetryRequest), it MUST abort the + * handshake with an "unexpected_message" alert. + */ + if (handshake->hello_retry_request_count > 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Multiple HRRs received")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE, + MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE); + return MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; } /* * Clients must abort the handshake with an "illegal_parameter" @@ -1473,14 +1445,13 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, * in the ClientHello. * In a PSK only key exchange that what we expect. */ - if( ! mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "Unexpected HRR in pure PSK key exchange." ) ); + if (!mbedtls_ssl_conf_tls13_some_ephemeral_enabled(ssl)) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("Unexpected HRR in pure PSK key exchange.")); MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } handshake->hello_retry_request_count++; @@ -1490,44 +1461,43 @@ static int ssl_tls13_preprocess_server_hello( mbedtls_ssl_context *ssl, cleanup: - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_check_server_hello_session_id_echo( mbedtls_ssl_context *ssl, - const unsigned char **buf, - const unsigned char *end ) +static int ssl_tls13_check_server_hello_session_id_echo(mbedtls_ssl_context *ssl, + const unsigned char **buf, + const unsigned char *end) { const unsigned char *p = *buf; size_t legacy_session_id_echo_len; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 1 ); - legacy_session_id_echo_len = *p++ ; + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 1); + legacy_session_id_echo_len = *p++; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, legacy_session_id_echo_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, legacy_session_id_echo_len); /* legacy_session_id_echo */ - if( ssl->session_negotiate->id_len != legacy_session_id_echo_len || - memcmp( ssl->session_negotiate->id, p , legacy_session_id_echo_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_BUF( 3, "Expected Session ID", - ssl->session_negotiate->id, - ssl->session_negotiate->id_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Received Session ID", p, - legacy_session_id_echo_len ); + if (ssl->session_negotiate->id_len != legacy_session_id_echo_len || + memcmp(ssl->session_negotiate->id, p, legacy_session_id_echo_len) != 0) { + MBEDTLS_SSL_DEBUG_BUF(3, "Expected Session ID", + ssl->session_negotiate->id, + ssl->session_negotiate->id_len); + MBEDTLS_SSL_DEBUG_BUF(3, "Received Session ID", p, + legacy_session_id_echo_len); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } p += legacy_session_id_echo_len; *buf = p; - MBEDTLS_SSL_DEBUG_BUF( 3, "Session ID", ssl->session_negotiate->id, - ssl->session_negotiate->id_len ); - return( 0 ); + MBEDTLS_SSL_DEBUG_BUF(3, "Session ID", ssl->session_negotiate->id, + ssl->session_negotiate->id_len); + return 0; } /* Parse ServerHello message and configure context @@ -1542,10 +1512,10 @@ static int ssl_tls13_check_server_hello_session_id_echo( mbedtls_ssl_context *ss * } ServerHello; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end, - int is_hrr ) +static int ssl_tls13_parse_server_hello(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end, + int is_hrr) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -1557,7 +1527,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, int fatal_alert = 0; uint32_t allowed_extensions_mask; int hs_msg_type = is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : - MBEDTLS_SSL_HS_SERVER_HELLO; + MBEDTLS_SSL_HS_SERVER_HELLO; /* * Check there is space for minimal fields @@ -1568,10 +1538,10 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * - cipher_suite ( 2 bytes) * - legacy_compression_method ( 1 byte ) */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 6 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN + 6); - MBEDTLS_SSL_DEBUG_BUF( 4, "server hello", p, end - p ); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, version", p, 2 ); + MBEDTLS_SSL_DEBUG_BUF(4, "server hello", p, end - p); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, version", p, 2); /* ... * ProtocolVersion legacy_version = 0x0303; // TLS 1.2 @@ -1579,12 +1549,11 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * with ProtocolVersion defined as: * uint16 ProtocolVersion; */ - if( mbedtls_ssl_read_version( p, ssl->conf->transport ) != - MBEDTLS_SSL_VERSION_TLS1_2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Unsupported version of TLS." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, - MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + if (mbedtls_ssl_read_version(p, ssl->conf->transport) != + MBEDTLS_SSL_VERSION_TLS1_2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Unsupported version of TLS.")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, + MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION); ret = MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; goto cleanup; } @@ -1596,12 +1565,11 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * with Random defined as: * opaque Random[MBEDTLS_SERVER_HELLO_RANDOM_LEN]; */ - if( !is_hrr ) - { - memcpy( &handshake->randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN], p, - MBEDTLS_SERVER_HELLO_RANDOM_LEN ); - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, random bytes", - p, MBEDTLS_SERVER_HELLO_RANDOM_LEN ); + if (!is_hrr) { + memcpy(&handshake->randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN], p, + MBEDTLS_SERVER_HELLO_RANDOM_LEN); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, random bytes", + p, MBEDTLS_SERVER_HELLO_RANDOM_LEN); } p += MBEDTLS_SERVER_HELLO_RANDOM_LEN; @@ -1609,8 +1577,7 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * opaque legacy_session_id_echo<0..32>; * ... */ - if( ssl_tls13_check_server_hello_session_id_echo( ssl, &p, end ) != 0 ) - { + if (ssl_tls13_check_server_hello_session_id_echo(ssl, &p, end) != 0) { fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; goto cleanup; } @@ -1621,20 +1588,19 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * with CipherSuite defined as: * uint8 CipherSuite[2]; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - cipher_suite = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + cipher_suite = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( cipher_suite ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(cipher_suite); /* * Check whether this ciphersuite is valid and offered. */ - if( ( mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, - ssl->tls_version, - ssl->tls_version ) != 0 ) || - !mbedtls_ssl_tls13_cipher_suite_is_offered( ssl, cipher_suite ) ) - { + if ((mbedtls_ssl_validate_ciphersuite(ssl, ciphersuite_info, + ssl->tls_version, + ssl->tls_version) != 0) || + !mbedtls_ssl_tls13_cipher_suite_is_offered(ssl, cipher_suite)) { fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; } /* @@ -1643,40 +1609,37 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * proposed in the HRR, we abort the handshake and send an * "illegal_parameter" alert. */ - else if( ( !is_hrr ) && ( handshake->hello_retry_request_count > 0 ) && - ( cipher_suite != ssl->session_negotiate->ciphersuite ) ) - { + else if ((!is_hrr) && (handshake->hello_retry_request_count > 0) && + (cipher_suite != ssl->session_negotiate->ciphersuite)) { fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; } - if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid ciphersuite(%04x) parameter", - cipher_suite ) ); + if (fatal_alert == MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER) { + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid ciphersuite(%04x) parameter", + cipher_suite)); goto cleanup; } /* Configure ciphersuites */ - mbedtls_ssl_optimize_checksum( ssl, ciphersuite_info ); + mbedtls_ssl_optimize_checksum(ssl, ciphersuite_info); handshake->ciphersuite_info = ciphersuite_info; ssl->session_negotiate->ciphersuite = cipher_suite; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: ( %04x ) - %s", - cipher_suite, ciphersuite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, chosen ciphersuite: ( %04x ) - %s", + cipher_suite, ciphersuite_info->name)); #if defined(MBEDTLS_HAVE_TIME) - ssl->session_negotiate->start = time( NULL ); + ssl->session_negotiate->start = time(NULL); #endif /* MBEDTLS_HAVE_TIME */ /* ... * uint8 legacy_compression_method = 0; * ... */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 1 ); - if( p[0] != MBEDTLS_SSL_COMPRESS_NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad legacy compression method" ) ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 1); + if (p[0] != MBEDTLS_SSL_COMPRESS_NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad legacy compression method")); fatal_alert = MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER; goto cleanup; } @@ -1690,96 +1653,93 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, * opaque extension_data<0..2^16-1>; * } Extension; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* Check extensions do not go beyond the buffer of data. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); extensions_end = p + extensions_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello extensions", p, extensions_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello extensions", p, extensions_len); handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; allowed_extensions_mask = is_hrr ? - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_HRR : + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_SH; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; const unsigned char *extension_data_end; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); extension_data_end = p + extension_data_len; ret = mbedtls_ssl_tls13_check_received_extension( - ssl, hs_msg_type, extension_type, allowed_extensions_mask ); - if( ret != 0 ) - return( ret ); + ssl, hs_msg_type, extension_type, allowed_extensions_mask); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { case MBEDTLS_TLS_EXT_COOKIE: - ret = ssl_tls13_parse_cookie_ext( ssl, - p, extension_data_end ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "ssl_tls13_parse_cookie_ext", - ret ); + ret = ssl_tls13_parse_cookie_ext(ssl, + p, extension_data_end); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "ssl_tls13_parse_cookie_ext", + ret); goto cleanup; } break; case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - ret = ssl_tls13_parse_supported_versions_ext( ssl, - p, - extension_data_end ); - if( ret != 0 ) + ret = ssl_tls13_parse_supported_versions_ext(ssl, + p, + extension_data_end); + if (ret != 0) { goto cleanup; + } break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found pre_shared_key extension")); - if( ( ret = ssl_tls13_parse_server_pre_shared_key_ext( - ssl, p, extension_data_end ) ) != 0 ) - { + if ((ret = ssl_tls13_parse_server_pre_shared_key_ext( + ssl, p, extension_data_end)) != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, ( "ssl_tls13_parse_server_pre_shared_key_ext" ), ret ); - return( ret ); + 1, ("ssl_tls13_parse_server_pre_shared_key_ext"), ret); + return ret; } break; #endif case MBEDTLS_TLS_EXT_KEY_SHARE: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found key_shares extension" ) ); - if( ! mbedtls_ssl_conf_tls13_some_ephemeral_enabled( ssl ) ) - { + MBEDTLS_SSL_DEBUG_MSG(3, ("found key_shares extension")); + if (!mbedtls_ssl_conf_tls13_some_ephemeral_enabled(ssl)) { fatal_alert = MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT; goto cleanup; } - if( is_hrr ) - ret = ssl_tls13_parse_hrr_key_share_ext( ssl, - p, extension_data_end ); - else - ret = ssl_tls13_parse_key_share_ext( ssl, - p, extension_data_end ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "ssl_tls13_parse_key_share_ext", - ret ); + if (is_hrr) { + ret = ssl_tls13_parse_hrr_key_share_ext(ssl, + p, extension_data_end); + } else { + ret = ssl_tls13_parse_key_share_ext(ssl, + p, extension_data_end); + } + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "ssl_tls13_parse_key_share_ext", + ret); goto cleanup; } break; @@ -1792,30 +1752,26 @@ static int ssl_tls13_parse_server_hello( mbedtls_ssl_context *ssl, p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, hs_msg_type, handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, hs_msg_type, handshake->received_extensions); cleanup: - if( fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + if (fatal_alert == MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, + MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION); ret = MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; - } - else if ( fatal_alert == MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + } else if (fatal_alert == MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); ret = MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - return( ret ); + return ret; } #if defined(MBEDTLS_DEBUG_C) static const char *ssl_tls13_get_kex_mode_str(int mode) { - switch( mode ) - { + switch (mode) { case MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK: return "psk"; case MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL: @@ -1829,7 +1785,7 @@ static const char *ssl_tls13_get_kex_mode_str(int mode) #endif /* MBEDTLS_DEBUG_C */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_postprocess_server_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1842,87 +1798,82 @@ static int ssl_tls13_postprocess_server_hello( mbedtls_ssl_context *ssl ) * 3) If only the key_share extension was received then the key * exchange mode is EPHEMERAL-only. */ - switch( handshake->received_extensions & - ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ) ) - { + switch (handshake->received_extensions & + (MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | MBEDTLS_SSL_EXT_MASK(KEY_SHARE))) { /* Only the pre_shared_key extension was received */ - case MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ): + case MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; break; /* Only the key_share extension was received */ - case MBEDTLS_SSL_EXT_MASK( KEY_SHARE ): + case MBEDTLS_SSL_EXT_MASK(KEY_SHARE): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; break; /* Both the pre_shared_key and key_share extensions were received */ - case ( MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) ): + case (MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | MBEDTLS_SSL_EXT_MASK(KEY_SHARE)): handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; break; /* Neither pre_shared_key nor key_share extension was received */ default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Unknown key exchange." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Unknown key exchange.")); ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; goto cleanup; } - if( !mbedtls_ssl_conf_tls13_check_kex_modes( ssl, handshake->key_exchange_mode ) ) - { + if (!mbedtls_ssl_conf_tls13_check_kex_modes(ssl, handshake->key_exchange_mode)) { ret = MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "Key exchange mode(%s) is not supported.", - ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("Key exchange mode(%s) is not supported.", + ssl_tls13_get_kex_mode_str(handshake->key_exchange_mode))); goto cleanup; } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "Selected key exchange mode: %s", - ssl_tls13_get_kex_mode_str( handshake->key_exchange_mode ) ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("Selected key exchange mode: %s", + ssl_tls13_get_kex_mode_str(handshake->key_exchange_mode))); /* Start the TLS 1.3 key schedule: Set the PSK and derive early secret. * * TODO: We don't have to do this in case we offered 0-RTT and the * server accepted it. In this case, we could skip generating * the early secret. */ - ret = mbedtls_ssl_tls13_key_schedule_stage_early( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_key_schedule_stage_early", - ret ); + ret = mbedtls_ssl_tls13_key_schedule_stage_early(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_key_schedule_stage_early", + ret); goto cleanup; } - ret = mbedtls_ssl_tls13_compute_handshake_transform( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_compute_handshake_transform", - ret ); + ret = mbedtls_ssl_tls13_compute_handshake_transform(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_compute_handshake_transform", + ret); goto cleanup; } - mbedtls_ssl_set_inbound_transform( ssl, handshake->transform_handshake ); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Switch to handshake keys for inbound traffic" ) ); + mbedtls_ssl_set_inbound_transform(ssl, handshake->transform_handshake); + MBEDTLS_SSL_DEBUG_MSG(1, ("Switch to handshake keys for inbound traffic")); ssl->session_in = ssl->session_negotiate; cleanup: - if( ret != 0 ) - { + if (ret != 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); } - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_postprocess_hrr( mbedtls_ssl_context *ssl ) +static int ssl_tls13_postprocess_hrr(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_ssl_session_reset_msg_layer( ssl, 0 ); + mbedtls_ssl_session_reset_msg_layer(ssl, 0); /* * We are going to re-generate a shared secret corresponding to the group @@ -1930,11 +1881,12 @@ static int ssl_tls13_postprocess_hrr( mbedtls_ssl_context *ssl ) * generated a shared secret in the first client hello. * Thus, reset the shared secret. */ - ret = ssl_tls13_reset_key_share( ssl ); - if( ret != 0 ) - return( ret ); + ret = ssl_tls13_reset_key_share(ssl); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } /* @@ -1942,64 +1894,62 @@ static int ssl_tls13_postprocess_hrr( mbedtls_ssl_context *ssl ) * Handler for MBEDTLS_SSL_SERVER_HELLO */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_server_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf = NULL; size_t buf_len = 0; int is_hrr = 0; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> %s", __func__ ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> %s", __func__)); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( ssl, - MBEDTLS_SSL_HS_SERVER_HELLO, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg(ssl, + MBEDTLS_SSL_HS_SERVER_HELLO, + &buf, &buf_len)); - ret = ssl_tls13_preprocess_server_hello( ssl, buf, buf + buf_len ); - if( ret < 0 ) + ret = ssl_tls13_preprocess_server_hello(ssl, buf, buf + buf_len); + if (ret < 0) { goto cleanup; - else - is_hrr = ( ret == SSL_SERVER_HELLO_HRR ); + } else { + is_hrr = (ret == SSL_SERVER_HELLO_HRR); + } - if( ret == SSL_SERVER_HELLO_TLS1_2 ) - { + if (ret == SSL_SERVER_HELLO_TLS1_2) { ret = 0; goto cleanup; } - MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_server_hello( ssl, buf, - buf + buf_len, - is_hrr ) ); - if( is_hrr ) - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_reset_transcript_for_hrr( ssl ) ); - - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_SERVER_HELLO, - buf, buf_len ); - - if( is_hrr ) - { - MBEDTLS_SSL_PROC_CHK( ssl_tls13_postprocess_hrr( ssl ) ); -#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) - /* If not offering early data, the client sends a dummy CCS record - * immediately before its second flight. This may either be before - * its second ClientHello or before its encrypted handshake flight. - */ - mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO ); -#else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); -#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ + MBEDTLS_SSL_PROC_CHK(ssl_tls13_parse_server_hello(ssl, buf, + buf + buf_len, + is_hrr)); + if (is_hrr) { + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_reset_transcript_for_hrr(ssl)); } - else - { - MBEDTLS_SSL_PROC_CHK( ssl_tls13_postprocess_server_hello( ssl ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS ); + + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_SERVER_HELLO, + buf, buf_len); + + if (is_hrr) { + MBEDTLS_SSL_PROC_CHK(ssl_tls13_postprocess_hrr(ssl)); +#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) + /* If not offering early data, the client sends a dummy CCS record + * immediately before its second flight. This may either be before + * its second ClientHello or before its encrypted handshake flight. + */ + mbedtls_ssl_handshake_set_state(ssl, + MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO); +#else + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); +#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ + } else { + MBEDTLS_SSL_PROC_CHK(ssl_tls13_postprocess_server_hello(ssl)); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS); } cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= %s ( %s )", __func__, - is_hrr?"HelloRetryRequest":"ServerHello" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= %s ( %s )", __func__, + is_hrr ? "HelloRetryRequest" : "ServerHello")); + return ret; } /* @@ -2017,9 +1967,9 @@ cleanup: * } EncryptedExtensions; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_encrypted_extensions(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = 0; size_t extensions_len; @@ -2027,18 +1977,17 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, const unsigned char *extensions_end; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_DEBUG_BUF( 3, "encrypted extensions", p, extensions_len ); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "encrypted extensions", p, extensions_len); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); extensions_end = p + extensions_len; handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; @@ -2048,28 +1997,27 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, * opaque extension_data<0..2^16-1>; * } Extension; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE ); - if( ret != 0 ) - return( ret ); + ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_EE); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { #if defined(MBEDTLS_SSL_ALPN) case MBEDTLS_TLS_EXT_ALPN: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found alpn extension")); - if( ( ret = ssl_tls13_parse_alpn_ext( ssl, p, (size_t)extension_data_len ) ) != 0 ) - { - return( ret ); + if ((ret = ssl_tls13_parse_alpn_ext(ssl, p, (size_t) extension_data_len)) != 0) { + return ret; } break; @@ -2078,12 +2026,11 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_EARLY_DATA) case MBEDTLS_TLS_EXT_EARLY_DATA: - if( extension_data_len != 0 ) - { + if (extension_data_len != 0) { /* The message must be empty. */ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } break; @@ -2092,70 +2039,69 @@ static int ssl_tls13_parse_encrypted_extensions( mbedtls_ssl_context *ssl, default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - extension_type, "( ignored )" ); + extension_type, "( ignored )"); break; } p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + handshake->received_extensions); /* Check that we consumed all the message. */ - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "EncryptedExtension lengths misaligned" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("EncryptedExtension lengths misaligned")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_encrypted_extensions( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_encrypted_extensions(mbedtls_ssl_context *ssl) { int ret; unsigned char *buf; size_t buf_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse encrypted extensions" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse encrypted extensions")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( ssl, - MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg(ssl, + MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + &buf, &buf_len)); /* Process the message contents */ MBEDTLS_SSL_PROC_CHK( - ssl_tls13_parse_encrypted_extensions( ssl, buf, buf + buf_len ) ); + ssl_tls13_parse_encrypted_extensions(ssl, buf, buf + buf_len)); #if defined(MBEDTLS_SSL_EARLY_DATA) - if( ssl->handshake->received_extensions & - MBEDTLS_SSL_EXT_MASK( EARLY_DATA ) ) - { + if (ssl->handshake->received_extensions & + MBEDTLS_SSL_EXT_MASK(EARLY_DATA)) { ssl->early_data_status = MBEDTLS_SSL_EARLY_DATA_STATUS_ACCEPTED; } #endif - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, - buf, buf_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, + buf, buf_len); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); - else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CERTIFICATE_REQUEST ); + if (mbedtls_ssl_tls13_key_exchange_mode_with_psk(ssl)) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); + } else { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CERTIFICATE_REQUEST); + } #else ((void) ssl); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); #endif cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse encrypted extensions" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse encrypted extensions")); + return ret; } @@ -2174,27 +2120,25 @@ cleanup: * indicating if a Certificate Request is expected or not. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_certificate_request_coordinate(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_ssl_read_record( ssl, 0 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); - return( ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 0)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); + return ret; } ssl->keep_current_message = 1; - if( ( ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE ) && - ( ssl->in_msg[0] == MBEDTLS_SSL_HS_CERTIFICATE_REQUEST ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "got a certificate request" ) ); - return( SSL_CERTIFICATE_REQUEST_EXPECT_REQUEST ); + if ((ssl->in_msgtype == MBEDTLS_SSL_MSG_HANDSHAKE) && + (ssl->in_msg[0] == MBEDTLS_SSL_HS_CERTIFICATE_REQUEST)) { + MBEDTLS_SSL_DEBUG_MSG(3, ("got a certificate request")); + return SSL_CERTIFICATE_REQUEST_EXPECT_REQUEST; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "got no certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("got no certificate request")); - return( SSL_CERTIFICATE_REQUEST_SKIP ); + return SSL_CERTIFICATE_REQUEST_SKIP; } /* @@ -2206,9 +2150,9 @@ static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) * } CertificateRequest; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_certificate_request(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -2221,25 +2165,23 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * opaque certificate_request_context<0..2^8-1> * ... */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 1 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 1); certificate_request_context_len = (size_t) p[0]; p += 1; - if( certificate_request_context_len > 0 ) - { - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, certificate_request_context_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "Certificate Request Context", - p, certificate_request_context_len ); + if (certificate_request_context_len > 0) { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, certificate_request_context_len); + MBEDTLS_SSL_DEBUG_BUF(3, "Certificate Request Context", + p, certificate_request_context_len); handshake->certificate_request_context = - mbedtls_calloc( 1, certificate_request_context_len ); - if( handshake->certificate_request_context == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return ( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + mbedtls_calloc(1, certificate_request_context_len); + if (handshake->certificate_request_context == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small")); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( handshake->certificate_request_context, p, - certificate_request_context_len ); + memcpy(handshake->certificate_request_context, p, + certificate_request_context_len); p += certificate_request_context_len; } @@ -2247,63 +2189,62 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * Extension extensions<2..2^16-1>; * ... */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); extensions_end = p + extensions_len; handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR ); - if( ret != 0 ) - return( ret ); + ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CR); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { case MBEDTLS_TLS_EXT_SIG_ALG: - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "found signature algorithms extension" ) ); - ret = mbedtls_ssl_parse_sig_alg_ext( ssl, p, - p + extension_data_len ); - if( ret != 0 ) - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("found signature algorithms extension")); + ret = mbedtls_ssl_parse_sig_alg_ext(ssl, p, + p + extension_data_len); + if (ret != 0) { + return ret; + } break; default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - extension_type, "( ignored )" ); + extension_type, "( ignored )"); break; } p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + handshake->received_extensions); /* Check that we consumed all the message. */ - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "CertificateRequest misaligned" ) ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, + ("CertificateRequest misaligned")); goto decode_error; } @@ -2311,98 +2252,94 @@ static int ssl_tls13_parse_certificate_request( mbedtls_ssl_context *ssl, * * The "signature_algorithms" extension MUST be specified */ - if( ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "no signature algorithms extension found" ) ); + if ((handshake->received_extensions & MBEDTLS_SSL_EXT_MASK(SIG_ALG)) == 0) { + MBEDTLS_SSL_DEBUG_MSG(3, + ("no signature algorithms extension found")); goto decode_error; } ssl->handshake->client_auth = 1; - return( 0 ); + return 0; decode_error: - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* * Handler for MBEDTLS_SSL_CERTIFICATE_REQUEST */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_certificate_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate request")); - MBEDTLS_SSL_PROC_CHK_NEG( ssl_tls13_certificate_request_coordinate( ssl ) ); + MBEDTLS_SSL_PROC_CHK_NEG(ssl_tls13_certificate_request_coordinate(ssl)); - if( ret == SSL_CERTIFICATE_REQUEST_EXPECT_REQUEST ) - { + if (ret == SSL_CERTIFICATE_REQUEST_EXPECT_REQUEST) { unsigned char *buf; size_t buf_len; - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( ssl, - MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg(ssl, + MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_certificate_request( ssl, - buf, buf + buf_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_parse_certificate_request(ssl, + buf, buf + buf_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, - buf, buf_len ); - } - else if( ret == SSL_CERTIFICATE_REQUEST_SKIP ) - { + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + buf, buf_len); + } else if (ret == SSL_CERTIFICATE_REQUEST_SKIP) { ret = 0; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_CERTIFICATE ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_CERTIFICATE); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate request" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate request")); + return ret; } /* * Handler for MBEDTLS_SSL_SERVER_CERTIFICATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_server_certificate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_server_certificate(mbedtls_ssl_context *ssl) { int ret; - ret = mbedtls_ssl_tls13_process_certificate( ssl ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_process_certificate(ssl); + if (ret != 0) { + return ret; + } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CERTIFICATE_VERIFY ); - return( 0 ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CERTIFICATE_VERIFY); + return 0; } /* * Handler for MBEDTLS_SSL_CERTIFICATE_VERIFY */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_certificate_verify(mbedtls_ssl_context *ssl) { int ret; - ret = mbedtls_ssl_tls13_process_certificate_verify( ssl ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_process_certificate_verify(ssl); + if (ret != 0) { + return ret; + } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); - return( 0 ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); + return 0; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -2410,74 +2347,70 @@ static int ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) * Handler for MBEDTLS_SSL_SERVER_FINISHED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_server_finished( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_server_finished(mbedtls_ssl_context *ssl) { int ret; - ret = mbedtls_ssl_tls13_process_finished_message( ssl ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_process_finished_message(ssl); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_compute_application_transform( ssl ); - if( ret != 0 ) - { + ret = mbedtls_ssl_tls13_compute_application_transform(ssl); + if (ret != 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( ret ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return ret; } #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED ); + MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED); #else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE); #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ - return( 0 ); + return 0; } /* * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_client_certificate(mbedtls_ssl_context *ssl) { int non_empty_certificate_msg = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "Switch to handshake traffic keys for outbound traffic" ) ); - mbedtls_ssl_set_outbound_transform( ssl, ssl->handshake->transform_handshake ); + MBEDTLS_SSL_DEBUG_MSG(1, + ("Switch to handshake traffic keys for outbound traffic")); + mbedtls_ssl_set_outbound_transform(ssl, ssl->handshake->transform_handshake); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - if( ssl->handshake->client_auth ) - { - int ret = mbedtls_ssl_tls13_write_certificate( ssl ); - if( ret != 0 ) - return( ret ); + if (ssl->handshake->client_auth) { + int ret = mbedtls_ssl_tls13_write_certificate(ssl); + if (ret != 0) { + return ret; + } - if( mbedtls_ssl_own_cert( ssl ) != NULL ) + if (mbedtls_ssl_own_cert(ssl) != NULL) { non_empty_certificate_msg = 1; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "skip write certificate" ) ); + } + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("skip write certificate")); } #endif - if( non_empty_certificate_msg ) - { - mbedtls_ssl_handshake_set_state( ssl, - MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "skip write certificate verify" ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_FINISHED ); - } + if (non_empty_certificate_msg) { + mbedtls_ssl_handshake_set_state(ssl, + MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("skip write certificate verify")); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_FINISHED); + } - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -2485,14 +2418,15 @@ static int ssl_tls13_write_client_certificate( mbedtls_ssl_context *ssl ) * Handler for MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_client_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_client_certificate_verify(mbedtls_ssl_context *ssl) { - int ret = mbedtls_ssl_tls13_write_certificate_verify( ssl ); + int ret = mbedtls_ssl_tls13_write_certificate_verify(ssl); - if( ret == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_FINISHED ); + if (ret == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_FINISHED); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -2500,56 +2434,56 @@ static int ssl_tls13_write_client_certificate_verify( mbedtls_ssl_context *ssl ) * Handler for MBEDTLS_SSL_CLIENT_FINISHED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_client_finished( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_client_finished(mbedtls_ssl_context *ssl) { int ret; - ret = mbedtls_ssl_tls13_write_finished_message( ssl ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_compute_resumption_master_secret( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_compute_resumption_master_secret ", ret ); - return ( ret ); + ret = mbedtls_ssl_tls13_write_finished_message(ssl); + if (ret != 0) { + return ret; } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_FLUSH_BUFFERS ); - return( 0 ); + ret = mbedtls_ssl_tls13_compute_resumption_master_secret(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_compute_resumption_master_secret ", ret); + return ret; + } + + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_FLUSH_BUFFERS); + return 0; } /* * Handler for MBEDTLS_SSL_FLUSH_BUFFERS */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_flush_buffers( mbedtls_ssl_context *ssl ) +static int ssl_tls13_flush_buffers(mbedtls_ssl_context *ssl) { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "handshake: done" ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_WRAPUP ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("handshake: done")); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_WRAPUP); + return 0; } /* * Handler for MBEDTLS_SSL_HANDSHAKE_WRAPUP */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) +static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) { - mbedtls_ssl_tls13_handshake_wrapup( ssl ); + mbedtls_ssl_tls13_handshake_wrapup(ssl); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); - return( 0 ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + return 0; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_new_session_ticket_exts(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { mbedtls_ssl_handshake_params *handshake = ssl->handshake; const unsigned char *p = buf; @@ -2557,40 +2491,37 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - while( p < end ) - { + while (p < end) { unsigned int extension_type; size_t extension_data_len; int ret; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extension_data_len); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST ); - if( ret != 0 ) - return( ret ); + ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_NST); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { #if defined(MBEDTLS_SSL_EARLY_DATA) case MBEDTLS_TLS_EXT_EARLY_DATA: - if( extension_data_len != 4 ) - { + if (extension_data_len != 4) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - if( ssl->session != NULL ) - { + if (ssl->session != NULL) { ssl->session->ticket_flags |= - MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA; + MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_EARLY_DATA; } break; #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -2598,17 +2529,17 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, - extension_type, "( ignored )" ); + extension_type, "( ignored )"); break; } p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + handshake->received_extensions); - return( 0 ); + return 0; } /* @@ -2624,11 +2555,11 @@ static int ssl_tls13_parse_new_session_ticket_exts( mbedtls_ssl_context *ssl, * */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_new_session_ticket( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - unsigned char **ticket_nonce, - size_t *ticket_nonce_len ) +static int ssl_tls13_parse_new_session_ticket(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + unsigned char **ticket_nonce, + size_t *ticket_nonce_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2644,77 +2575,74 @@ static int ssl_tls13_parse_new_session_ticket( mbedtls_ssl_context *ssl, * ticket_age_add 4 bytes * ticket_nonce_len 1 byte */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 9 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 9); - session->ticket_lifetime = MBEDTLS_GET_UINT32_BE( p, 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "ticket_lifetime: %u", - ( unsigned int )session->ticket_lifetime ) ); + session->ticket_lifetime = MBEDTLS_GET_UINT32_BE(p, 0); + MBEDTLS_SSL_DEBUG_MSG(3, + ("ticket_lifetime: %u", + (unsigned int) session->ticket_lifetime)); - session->ticket_age_add = MBEDTLS_GET_UINT32_BE( p, 4 ); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "ticket_age_add: %u", - ( unsigned int )session->ticket_age_add ) ); + session->ticket_age_add = MBEDTLS_GET_UINT32_BE(p, 4); + MBEDTLS_SSL_DEBUG_MSG(3, + ("ticket_age_add: %u", + (unsigned int) session->ticket_age_add)); *ticket_nonce_len = p[8]; p += 9; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, *ticket_nonce_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, *ticket_nonce_len); *ticket_nonce = p; - MBEDTLS_SSL_DEBUG_BUF( 3, "ticket_nonce:", *ticket_nonce, *ticket_nonce_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "ticket_nonce:", *ticket_nonce, *ticket_nonce_len); p += *ticket_nonce_len; /* Ticket */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - ticket_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + ticket_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, ticket_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "received ticket", p, ticket_len ) ; + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, ticket_len); + MBEDTLS_SSL_DEBUG_BUF(3, "received ticket", p, ticket_len); /* Check if we previously received a ticket already. */ - if( session->ticket != NULL || session->ticket_len > 0 ) - { - mbedtls_free( session->ticket ); + if (session->ticket != NULL || session->ticket_len > 0) { + mbedtls_free(session->ticket); session->ticket = NULL; session->ticket_len = 0; } - if( ( ticket = mbedtls_calloc( 1, ticket_len ) ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ticket alloc failed" ) ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((ticket = mbedtls_calloc(1, ticket_len)) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ticket alloc failed")); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( ticket, p, ticket_len ); + memcpy(ticket, p, ticket_len); p += ticket_len; session->ticket = ticket; session->ticket_len = ticket_len; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); - MBEDTLS_SSL_DEBUG_BUF( 3, "ticket extension", p, extensions_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "ticket extension", p, extensions_len); - ret = ssl_tls13_parse_new_session_ticket_exts( ssl, p, p + extensions_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "ssl_tls13_parse_new_session_ticket_exts", - ret ); - return( ret ); + ret = ssl_tls13_parse_new_session_ticket_exts(ssl, p, p + extensions_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "ssl_tls13_parse_new_session_ticket_exts", + ret); + return ret; } /* session has been updated, allow export */ session->exported = 0; - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_postprocess_new_session_ticket( mbedtls_ssl_context *ssl, - unsigned char *ticket_nonce, - size_t ticket_nonce_len ) +static int ssl_tls13_postprocess_new_session_ticket(mbedtls_ssl_context *ssl, + unsigned char *ticket_nonce, + size_t ticket_nonce_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_session *session = ssl->session; @@ -2724,28 +2652,26 @@ static int ssl_tls13_postprocess_new_session_ticket( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_HAVE_TIME) /* Store ticket creation time */ - session->ticket_received = mbedtls_time( NULL ); + session->ticket_received = mbedtls_time(NULL); #endif - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( session->ciphersuite ); - if( ciphersuite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(session->ciphersuite); + if (ciphersuite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - psa_hash_alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); - hash_length = PSA_HASH_LENGTH( psa_hash_alg ); - if( hash_length == -1 || - ( size_t )hash_length > sizeof( session->resumption_key ) ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + psa_hash_alg = mbedtls_psa_translate_md(ciphersuite_info->mac); + hash_length = PSA_HASH_LENGTH(psa_hash_alg); + if (hash_length == -1 || + (size_t) hash_length > sizeof(session->resumption_key)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 3, "resumption_master_secret", - session->app_secrets.resumption_master_secret, - hash_length ); + MBEDTLS_SSL_DEBUG_BUF(3, "resumption_master_secret", + session->app_secrets.resumption_master_secret, + hash_length); /* Compute resumption key * @@ -2753,37 +2679,36 @@ static int ssl_tls13_postprocess_new_session_ticket( mbedtls_ssl_context *ssl, * "resumption", ticket_nonce, Hash.length ) */ ret = mbedtls_ssl_tls13_hkdf_expand_label( - psa_hash_alg, - session->app_secrets.resumption_master_secret, - hash_length, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( resumption ), - ticket_nonce, - ticket_nonce_len, - session->resumption_key, - hash_length ); + psa_hash_alg, + session->app_secrets.resumption_master_secret, + hash_length, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(resumption), + ticket_nonce, + ticket_nonce_len, + session->resumption_key, + hash_length); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 2, - "Creating the ticket-resumed PSK failed", - ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(2, + "Creating the ticket-resumed PSK failed", + ret); + return ret; } session->resumption_key_len = hash_length; - MBEDTLS_SSL_DEBUG_BUF( 3, "Ticket-resumed PSK", - session->resumption_key, - session->resumption_key_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "Ticket-resumed PSK", + session->resumption_key, + session->resumption_key_len); - return( 0 ); + return 0; } /* * Handler for MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_new_session_ticket( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_new_session_ticket(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; @@ -2791,124 +2716,124 @@ static int ssl_tls13_process_new_session_ticket( mbedtls_ssl_context *ssl ) unsigned char *ticket_nonce; size_t ticket_nonce_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse new session ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse new session ticket")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( - ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg( + ssl, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_new_session_ticket( - ssl, buf, buf + buf_len, - &ticket_nonce, &ticket_nonce_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_parse_new_session_ticket( + ssl, buf, buf + buf_len, + &ticket_nonce, &ticket_nonce_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_postprocess_new_session_ticket( - ssl, ticket_nonce, ticket_nonce_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_postprocess_new_session_ticket( + ssl, ticket_nonce, ticket_nonce_len)); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse new session ticket" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse new session ticket")); + return ret; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ -int mbedtls_ssl_tls13_handshake_client_step( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_handshake_client_step(mbedtls_ssl_context *ssl) { int ret = 0; - switch( ssl->state ) - { + switch (ssl->state) { case MBEDTLS_SSL_HELLO_REQUEST: - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); break; case MBEDTLS_SSL_CLIENT_HELLO: - ret = mbedtls_ssl_write_client_hello( ssl ); + ret = mbedtls_ssl_write_client_hello(ssl); break; case MBEDTLS_SSL_SERVER_HELLO: - ret = ssl_tls13_process_server_hello( ssl ); + ret = ssl_tls13_process_server_hello(ssl); break; case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS: - ret = ssl_tls13_process_encrypted_extensions( ssl ); + ret = ssl_tls13_process_encrypted_extensions(ssl); break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: - ret = ssl_tls13_process_certificate_request( ssl ); + ret = ssl_tls13_process_certificate_request(ssl); break; case MBEDTLS_SSL_SERVER_CERTIFICATE: - ret = ssl_tls13_process_server_certificate( ssl ); + ret = ssl_tls13_process_server_certificate(ssl); break; case MBEDTLS_SSL_CERTIFICATE_VERIFY: - ret = ssl_tls13_process_certificate_verify( ssl ); + ret = ssl_tls13_process_certificate_verify(ssl); break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_SERVER_FINISHED: - ret = ssl_tls13_process_server_finished( ssl ); + ret = ssl_tls13_process_server_finished(ssl); break; case MBEDTLS_SSL_CLIENT_CERTIFICATE: - ret = ssl_tls13_write_client_certificate( ssl ); + ret = ssl_tls13_write_client_certificate(ssl); break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY: - ret = ssl_tls13_write_client_certificate_verify( ssl ); + ret = ssl_tls13_write_client_certificate_verify(ssl); break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ case MBEDTLS_SSL_CLIENT_FINISHED: - ret = ssl_tls13_write_client_finished( ssl ); + ret = ssl_tls13_write_client_finished(ssl); break; case MBEDTLS_SSL_FLUSH_BUFFERS: - ret = ssl_tls13_flush_buffers( ssl ); + ret = ssl_tls13_flush_buffers(ssl); break; case MBEDTLS_SSL_HANDSHAKE_WRAPUP: - ret = ssl_tls13_handshake_wrapup( ssl ); + ret = ssl_tls13_handshake_wrapup(ssl); break; - /* - * Injection of dummy-CCS's for middlebox compatibility - */ + /* + * Injection of dummy-CCS's for middlebox compatibility + */ #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) case MBEDTLS_SSL_CLIENT_CCS_BEFORE_2ND_CLIENT_HELLO: - ret = mbedtls_ssl_tls13_write_change_cipher_spec( ssl ); - if( ret == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + ret = mbedtls_ssl_tls13_write_change_cipher_spec(ssl); + if (ret == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); + } break; case MBEDTLS_SSL_CLIENT_CCS_AFTER_SERVER_FINISHED: - ret = mbedtls_ssl_tls13_write_change_cipher_spec( ssl ); - if( ret == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE ); + ret = mbedtls_ssl_tls13_write_change_cipher_spec(ssl); + if (ret == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE); + } break; #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET: - ret = ssl_tls13_process_new_session_ticket( ssl ); - if( ret != 0 ) + ret = ssl_tls13_process_new_session_ticket(ssl); + if (ret != 0) { break; + } ret = MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET; break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid state %d", ssl->state ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid state %d", ssl->state)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_TLS1_3 */ - - diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c index 121ff43d8..513937e0e 100644 --- a/library/ssl_tls13_generic.c +++ b/library/ssl_tls13_generic.c @@ -37,31 +37,29 @@ #include "ssl_debug_helpers.h" const uint8_t mbedtls_ssl_tls13_hello_retry_request_magic[ - MBEDTLS_SERVER_HELLO_RANDOM_LEN ] = - { 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, - 0xBE, 0x1D, 0x8C, 0x02, 0x1E, 0x65, 0xB8, 0x91, - 0xC2, 0xA2, 0x11, 0x16, 0x7A, 0xBB, 0x8C, 0x5E, - 0x07, 0x9E, 0x09, 0xE2, 0xC8, 0xA8, 0x33, 0x9C }; + MBEDTLS_SERVER_HELLO_RANDOM_LEN] = +{ 0xCF, 0x21, 0xAD, 0x74, 0xE5, 0x9A, 0x61, 0x11, + 0xBE, 0x1D, 0x8C, 0x02, 0x1E, 0x65, 0xB8, 0x91, + 0xC2, 0xA2, 0x11, 0x16, 0x7A, 0xBB, 0x8C, 0x5E, + 0x07, 0x9E, 0x09, 0xE2, 0xC8, 0xA8, 0x33, 0x9C }; -int mbedtls_ssl_tls13_fetch_handshake_msg( mbedtls_ssl_context *ssl, - unsigned hs_type, - unsigned char **buf, - size_t *buf_len ) +int mbedtls_ssl_tls13_fetch_handshake_msg(mbedtls_ssl_context *ssl, + unsigned hs_type, + unsigned char **buf, + size_t *buf_len) { int ret; - if( ( ret = mbedtls_ssl_read_record( ssl, 0 ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_read_record", ret ); + if ((ret = mbedtls_ssl_read_record(ssl, 0)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_read_record", ret); goto cleanup; } - if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE || - ssl->in_msg[0] != hs_type ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Receive unexpected handshake message." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE, - MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); + if (ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE || + ssl->in_msg[0] != hs_type) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Receive unexpected handshake message.")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE, + MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE); ret = MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE; goto cleanup; } @@ -78,7 +76,7 @@ int mbedtls_ssl_tls13_fetch_handshake_msg( mbedtls_ssl_context *ssl, cleanup: - return( ret ); + return ret; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -103,11 +101,11 @@ cleanup: * (64 + 33 + 1 + 48 bytes) * */ -#define SSL_VERIFY_STRUCT_MAX_SIZE ( 64 + \ - 33 + \ - 1 + \ - MBEDTLS_TLS1_3_MD_MAX_SIZE \ - ) +#define SSL_VERIFY_STRUCT_MAX_SIZE (64 + \ + 33 + \ + 1 + \ + MBEDTLS_TLS1_3_MD_MAX_SIZE \ + ) /* * The ssl_tls13_create_verify_structure() creates the verify structure. @@ -116,11 +114,11 @@ cleanup: * The caller has to ensure that the buffer has size at least * SSL_VERIFY_STRUCT_MAX_SIZE bytes. */ -static void ssl_tls13_create_verify_structure( const unsigned char *transcript_hash, - size_t transcript_hash_len, - unsigned char *verify_buffer, - size_t *verify_buffer_len, - int from ) +static void ssl_tls13_create_verify_structure(const unsigned char *transcript_hash, + size_t transcript_hash_len, + unsigned char *verify_buffer, + size_t *verify_buffer_len, + int from) { size_t idx; @@ -133,34 +131,31 @@ static void ssl_tls13_create_verify_structure( const unsigned char *transcript_h * - A single 0 byte which serves as the separator * - The content to be signed */ - memset( verify_buffer, 0x20, 64 ); + memset(verify_buffer, 0x20, 64); idx = 64; - if( from == MBEDTLS_SSL_IS_CLIENT ) - { - memcpy( verify_buffer + idx, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( client_cv ) ); - idx += MBEDTLS_SSL_TLS1_3_LBL_LEN( client_cv ); - } - else - { /* from == MBEDTLS_SSL_IS_SERVER */ - memcpy( verify_buffer + idx, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( server_cv ) ); - idx += MBEDTLS_SSL_TLS1_3_LBL_LEN( server_cv ); + if (from == MBEDTLS_SSL_IS_CLIENT) { + memcpy(verify_buffer + idx, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(client_cv)); + idx += MBEDTLS_SSL_TLS1_3_LBL_LEN(client_cv); + } else { /* from == MBEDTLS_SSL_IS_SERVER */ + memcpy(verify_buffer + idx, MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(server_cv)); + idx += MBEDTLS_SSL_TLS1_3_LBL_LEN(server_cv); } verify_buffer[idx++] = 0x0; - memcpy( verify_buffer + idx, transcript_hash, transcript_hash_len ); + memcpy(verify_buffer + idx, transcript_hash, transcript_hash_len); idx += transcript_hash_len; *verify_buffer_len = idx; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_certificate_verify( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end, - const unsigned char *verify_buffer, - size_t verify_buffer_len ) +static int ssl_tls13_parse_certificate_verify(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end, + const unsigned char *verify_buffer, + size_t verify_buffer_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; @@ -184,8 +179,8 @@ static int ssl_tls13_parse_certificate_verify( mbedtls_ssl_context *ssl, * opaque signature<0..2^16-1>; * } CertificateVerify; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - algorithm = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + algorithm = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* RFC 8446 section 4.4.3 @@ -202,90 +197,83 @@ static int ssl_tls13_parse_certificate_verify( mbedtls_ssl_context *ssl, * * Check if algorithm is an offered signature algorithm. */ - if( ! mbedtls_ssl_sig_alg_is_offered( ssl, algorithm ) ) - { + if (!mbedtls_ssl_sig_alg_is_offered(ssl, algorithm)) { /* algorithm not in offered signature algorithms list */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Received signature algorithm(%04x) is not " - "offered.", - ( unsigned int ) algorithm ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Received signature algorithm(%04x) is not " + "offered.", + (unsigned int) algorithm)); goto error; } - if( mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - algorithm, &sig_alg, &md_alg ) != 0 ) - { + if (mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + algorithm, &sig_alg, &md_alg) != 0) { goto error; } - hash_alg = mbedtls_hash_info_psa_from_md( md_alg ); - if( hash_alg == 0 ) - { + hash_alg = mbedtls_hash_info_psa_from_md(md_alg); + if (hash_alg == 0) { goto error; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Certificate Verify: Signature algorithm ( %04x )", - ( unsigned int ) algorithm ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Certificate Verify: Signature algorithm ( %04x )", + (unsigned int) algorithm)); /* * Check the certificate's key type matches the signature alg */ - if( !mbedtls_pk_can_do( &ssl->session_negotiate->peer_cert->pk, sig_alg ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "signature algorithm doesn't match cert key" ) ); + if (!mbedtls_pk_can_do(&ssl->session_negotiate->peer_cert->pk, sig_alg)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("signature algorithm doesn't match cert key")); goto error; } - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - signature_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + signature_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, signature_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, signature_len); - status = psa_hash_compute( hash_alg, - verify_buffer, - verify_buffer_len, - verify_hash, - sizeof( verify_hash ), - &verify_hash_len ); - if( status != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "hash computation PSA error", status ); + status = psa_hash_compute(hash_alg, + verify_buffer, + verify_buffer_len, + verify_hash, + sizeof(verify_hash), + &verify_hash_len); + if (status != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "hash computation PSA error", status); goto error; } - MBEDTLS_SSL_DEBUG_BUF( 3, "verify hash", verify_hash, verify_hash_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "verify hash", verify_hash, verify_hash_len); #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - if( sig_alg == MBEDTLS_PK_RSASSA_PSS ) - { + if (sig_alg == MBEDTLS_PK_RSASSA_PSS) { rsassa_pss_options.mgf1_hash_id = md_alg; - rsassa_pss_options.expected_salt_len = PSA_HASH_LENGTH( hash_alg ); - options = (const void*) &rsassa_pss_options; + rsassa_pss_options.expected_salt_len = PSA_HASH_LENGTH(hash_alg); + options = (const void *) &rsassa_pss_options; } #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ - if( ( ret = mbedtls_pk_verify_ext( sig_alg, options, - &ssl->session_negotiate->peer_cert->pk, - md_alg, verify_hash, verify_hash_len, - p, signature_len ) ) == 0 ) - { - return( 0 ); + if ((ret = mbedtls_pk_verify_ext(sig_alg, options, + &ssl->session_negotiate->peer_cert->pk, + md_alg, verify_hash, verify_hash_len, + p, signature_len)) == 0) { + return 0; } - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_verify_ext", ret ); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_pk_verify_ext", ret); error: /* RFC 8446 section 4.4.3 * * If the verification fails, the receiver MUST terminate the handshake * with a "decrypt_error" alert. - */ - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + */ + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -int mbedtls_ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_process_certificate_verify(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -297,55 +285,55 @@ int mbedtls_ssl_tls13_process_certificate_verify( mbedtls_ssl_context *ssl ) unsigned char *buf; size_t buf_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate verify")); MBEDTLS_SSL_PROC_CHK( - mbedtls_ssl_tls13_fetch_handshake_msg( ssl, - MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, &buf, &buf_len ) ); + mbedtls_ssl_tls13_fetch_handshake_msg(ssl, + MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, &buf, &buf_len)); /* Need to calculate the hash of the transcript first * before reading the message since otherwise it gets * included in the transcript */ - ret = mbedtls_ssl_get_handshake_transcript( ssl, - ssl->handshake->ciphersuite_info->mac, - transcript, sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - { + ret = mbedtls_ssl_get_handshake_transcript(ssl, + ssl->handshake->ciphersuite_info->mac, + transcript, sizeof(transcript), + &transcript_len); + if (ret != 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR, - MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - return( ret ); + MBEDTLS_ERR_SSL_INTERNAL_ERROR); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 3, "handshake hash", transcript, transcript_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "handshake hash", transcript, transcript_len); /* Create verify structure */ - ssl_tls13_create_verify_structure( transcript, - transcript_len, - verify_buffer, - &verify_buffer_len, - ( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) ? - MBEDTLS_SSL_IS_SERVER : - MBEDTLS_SSL_IS_CLIENT ); + ssl_tls13_create_verify_structure(transcript, + transcript_len, + verify_buffer, + &verify_buffer_len, + (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) ? + MBEDTLS_SSL_IS_SERVER : + MBEDTLS_SSL_IS_CLIENT); /* Process the message contents */ - MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_certificate_verify( ssl, buf, - buf + buf_len, verify_buffer, verify_buffer_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_parse_certificate_verify(ssl, buf, + buf + buf_len, verify_buffer, + verify_buffer_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, - buf, buf_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, + buf, buf_len); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate verify" ) ); - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_process_certificate_verify", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate verify")); + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_process_certificate_verify", ret); + return ret; #else ((void) ssl); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ } @@ -387,9 +375,9 @@ cleanup: /* Parse certificate chain send by the server. */ MBEDTLS_CHECK_RETURN_CRITICAL MBEDTLS_STATIC_TESTABLE -int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +int mbedtls_ssl_tls13_parse_certificate(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t certificate_request_context_len = 0; @@ -398,58 +386,53 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, const unsigned char *certificate_list_end; mbedtls_ssl_handshake_params *handshake = ssl->handshake; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 4); certificate_request_context_len = p[0]; - certificate_list_len = MBEDTLS_GET_UINT24_BE( p, 1 ); + certificate_list_len = MBEDTLS_GET_UINT24_BE(p, 1); p += 4; /* In theory, the certificate list can be up to 2^24 Bytes, but we don't * support anything beyond 2^16 = 64K. */ - if( ( certificate_request_context_len != 0 ) || - ( certificate_list_len >= 0x10000 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate message" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((certificate_request_context_len != 0) || + (certificate_list_len >= 0x10000)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate message")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* In case we tried to reuse a session but it failed */ - if( ssl->session_negotiate->peer_cert != NULL ) - { - mbedtls_x509_crt_free( ssl->session_negotiate->peer_cert ); - mbedtls_free( ssl->session_negotiate->peer_cert ); + if (ssl->session_negotiate->peer_cert != NULL) { + mbedtls_x509_crt_free(ssl->session_negotiate->peer_cert); + mbedtls_free(ssl->session_negotiate->peer_cert); } - if( certificate_list_len == 0 ) - { + if (certificate_list_len == 0) { ssl->session_negotiate->peer_cert = NULL; ret = 0; goto exit; } - if( ( ssl->session_negotiate->peer_cert = - mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ) ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "alloc( %" MBEDTLS_PRINTF_SIZET " bytes ) failed", - sizeof( mbedtls_x509_crt ) ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR, - MBEDTLS_ERR_SSL_ALLOC_FAILED ); - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + if ((ssl->session_negotiate->peer_cert = + mbedtls_calloc(1, sizeof(mbedtls_x509_crt))) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("alloc( %" MBEDTLS_PRINTF_SIZET " bytes ) failed", + sizeof(mbedtls_x509_crt))); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR, + MBEDTLS_ERR_SSL_ALLOC_FAILED); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - mbedtls_x509_crt_init( ssl->session_negotiate->peer_cert ); + mbedtls_x509_crt_init(ssl->session_negotiate->peer_cert); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, certificate_list_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, certificate_list_len); certificate_list_end = p + certificate_list_len; - while( p < certificate_list_end ) - { + while (p < certificate_list_end) { size_t cert_data_len, extensions_len; const unsigned char *extensions_end; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 3 ); - cert_data_len = MBEDTLS_GET_UINT24_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, certificate_list_end, 3); + cert_data_len = MBEDTLS_GET_UINT24_BE(p, 0); p += 3; /* In theory, the CRT can be up to 2^24 Bytes, but we don't support @@ -457,20 +440,18 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, * check that we have a minimum of 128 bytes of data, this is not * clear why we need that though. */ - if( ( cert_data_len < 128 ) || ( cert_data_len >= 0x10000 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad Certificate message" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if ((cert_data_len < 128) || (cert_data_len >= 0x10000)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad Certificate message")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, cert_data_len ); - ret = mbedtls_x509_crt_parse_der( ssl->session_negotiate->peer_cert, - p, cert_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, certificate_list_end, cert_data_len); + ret = mbedtls_x509_crt_parse_der(ssl->session_negotiate->peer_cert, + p, cert_data_len); - switch( ret ) - { + switch (ret) { case 0: /*ok*/ break; case MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG + MBEDTLS_ERR_OID_NOT_FOUND: @@ -479,100 +460,98 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, break; case MBEDTLS_ERR_X509_ALLOC_FAILED: - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR, - MBEDTLS_ERR_X509_ALLOC_FAILED ); - MBEDTLS_SSL_DEBUG_RET( 1, " mbedtls_x509_crt_parse_der", ret ); - return( ret ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR, + MBEDTLS_ERR_X509_ALLOC_FAILED); + MBEDTLS_SSL_DEBUG_RET(1, " mbedtls_x509_crt_parse_der", ret); + return ret; case MBEDTLS_ERR_X509_UNKNOWN_VERSION: - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT, - MBEDTLS_ERR_X509_UNKNOWN_VERSION ); - MBEDTLS_SSL_DEBUG_RET( 1, " mbedtls_x509_crt_parse_der", ret ); - return( ret ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT, + MBEDTLS_ERR_X509_UNKNOWN_VERSION); + MBEDTLS_SSL_DEBUG_RET(1, " mbedtls_x509_crt_parse_der", ret); + return ret; default: - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_BAD_CERT, - ret ); - MBEDTLS_SSL_DEBUG_RET( 1, " mbedtls_x509_crt_parse_der", ret ); - return( ret ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_BAD_CERT, + ret); + MBEDTLS_SSL_DEBUG_RET(1, " mbedtls_x509_crt_parse_der", ret); + return ret; } p += cert_data_len; /* Certificate extensions length */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, 2 ); - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, certificate_list_end, 2); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, certificate_list_end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, certificate_list_end, extensions_len); extensions_end = p + extensions_len; handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; /* - * struct { - * ExtensionType extension_type; (2 bytes) - * opaque extension_data<0..2^16-1>; - * } Extension; - */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + * struct { + * ExtensionType extension_type; (2 bytes) + * opaque extension_data<0..2^16-1>; + * } Extension; + */ + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT ); - if( ret != 0 ) - return( ret ); + ssl, MBEDTLS_SSL_HS_CERTIFICATE, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CT); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CERTIFICATE, - extension_type, "( ignored )" ); + extension_type, "( ignored )"); break; } p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, MBEDTLS_SSL_HS_CERTIFICATE, + handshake->received_extensions); } exit: /* Check that all the message is consumed. */ - if( p != end ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad Certificate message" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p != end) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad Certificate message")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_CRT( 3, "peer certificate", ssl->session_negotiate->peer_cert ); + MBEDTLS_SSL_DEBUG_CRT(3, "peer certificate", ssl->session_negotiate->peer_cert); - return( ret ); + return ret; } #else MBEDTLS_CHECK_RETURN_CRITICAL MBEDTLS_STATIC_TESTABLE -int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +int mbedtls_ssl_tls13_parse_certificate(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { ((void) ssl); ((void) buf); ((void) end); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -581,7 +560,7 @@ int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* Validate certificate chain sent by the server. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_validate_certificate(mbedtls_ssl_context *ssl) { int ret = 0; int authmode = MBEDTLS_SSL_VERIFY_REQUIRED; @@ -594,14 +573,13 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) /* If SNI was used, overwrite authentication mode * from the configuration. */ #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET ) + if (ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET) { authmode = ssl->handshake->sni_authmode; - else + } else #endif - authmode = ssl->conf->authmode; + authmode = ssl->conf->authmode; } #endif @@ -612,46 +590,40 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) * Check for that and handle it depending on the * authentication mode. */ - if( ssl->session_negotiate->peer_cert == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "peer has no certificate" ) ); + if (ssl->session_negotiate->peer_cert == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("peer has no certificate")); #if defined(MBEDTLS_SSL_SRV_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_SERVER) { /* The client was asked for a certificate but didn't send * one. The client should know what's going on, so we * don't send an alert. */ ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_MISSING; - if( authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) - return( 0 ); - else - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_NO_CERT, - MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE ); - return( MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE ); + if (authmode == MBEDTLS_SSL_VERIFY_OPTIONAL) { + return 0; + } else { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_NO_CERT, + MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE); + return MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE; } } #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_CLI_C) - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_NO_CERT, - MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE ); - return( MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE ); + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_NO_CERT, + MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE); + return MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE; } #endif /* MBEDTLS_SSL_CLI_C */ } #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_ca_chain != NULL ) - { + if (ssl->handshake->sni_ca_chain != NULL) { ca_chain = ssl->handshake->sni_ca_chain; ca_crl = ssl->handshake->sni_ca_crl; - } - else + } else #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ { ca_chain = ssl->conf->ca_chain; @@ -667,37 +639,33 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) ssl->conf->cert_profile, ssl->hostname, &verify_result, - ssl->conf->f_vrfy, ssl->conf->p_vrfy ); + ssl->conf->f_vrfy, ssl->conf->p_vrfy); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "x509_verify_cert", ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "x509_verify_cert", ret); } /* * Secondary checks: always done, but change 'ret' only if it was 0 */ - if( ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT) { ext_oid = MBEDTLS_OID_SERVER_AUTH; - ext_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_SERVER_AUTH ); - } - else - { + ext_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_SERVER_AUTH); + } else { ext_oid = MBEDTLS_OID_CLIENT_AUTH; - ext_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_CLIENT_AUTH ); + ext_len = MBEDTLS_OID_SIZE(MBEDTLS_OID_CLIENT_AUTH); } - if( ( mbedtls_x509_crt_check_key_usage( - ssl->session_negotiate->peer_cert, - MBEDTLS_X509_KU_DIGITAL_SIGNATURE ) != 0 ) || - ( mbedtls_x509_crt_check_extended_key_usage( - ssl->session_negotiate->peer_cert, - ext_oid, ext_len ) != 0 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate (usage extensions)" ) ); - if( ret == 0 ) + if ((mbedtls_x509_crt_check_key_usage( + ssl->session_negotiate->peer_cert, + MBEDTLS_X509_KU_DIGITAL_SIGNATURE) != 0) || + (mbedtls_x509_crt_check_extended_key_usage( + ssl->session_negotiate->peer_cert, + ext_oid, ext_len) != 0)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad certificate (usage extensions)")); + if (ret == 0) { ret = MBEDTLS_ERR_SSL_BAD_CERTIFICATE; + } } /* mbedtls_x509_crt_verify_with_profile is supposed to report a @@ -707,96 +675,91 @@ static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) * functions, are treated as fatal and lead to a failure of * mbedtls_ssl_tls13_parse_certificate even if verification was optional. */ - if( authmode == MBEDTLS_SSL_VERIFY_OPTIONAL && - ( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED || - ret == MBEDTLS_ERR_SSL_BAD_CERTIFICATE ) ) - { + if (authmode == MBEDTLS_SSL_VERIFY_OPTIONAL && + (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED || + ret == MBEDTLS_ERR_SSL_BAD_CERTIFICATE)) { ret = 0; } - if( ca_chain == NULL && authmode == MBEDTLS_SSL_VERIFY_REQUIRED ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "got no CA chain" ) ); + if (ca_chain == NULL && authmode == MBEDTLS_SSL_VERIFY_REQUIRED) { + MBEDTLS_SSL_DEBUG_MSG(1, ("got no CA chain")); ret = MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED; } - if( ret != 0 ) - { + if (ret != 0) { /* The certificate may have been rejected for several reasons. Pick one and send the corresponding alert. Which alert to send may be a subject of debate in some cases. */ - if( verify_result & MBEDTLS_X509_BADCERT_OTHER ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED, ret ); - else if( verify_result & MBEDTLS_X509_BADCERT_CN_MISMATCH ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_BAD_CERT, ret ); - else if( verify_result & ( MBEDTLS_X509_BADCERT_KEY_USAGE | - MBEDTLS_X509_BADCERT_EXT_KEY_USAGE | - MBEDTLS_X509_BADCERT_NS_CERT_TYPE | - MBEDTLS_X509_BADCERT_BAD_PK | - MBEDTLS_X509_BADCERT_BAD_KEY ) ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT, ret ); - else if( verify_result & MBEDTLS_X509_BADCERT_EXPIRED ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_CERT_EXPIRED, ret ); - else if( verify_result & MBEDTLS_X509_BADCERT_REVOKED ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_CERT_REVOKED, ret ); - else if( verify_result & MBEDTLS_X509_BADCERT_NOT_TRUSTED ) - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNKNOWN_CA, ret ); - else - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_CERT_UNKNOWN, ret ); + if (verify_result & MBEDTLS_X509_BADCERT_OTHER) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED, ret); + } else if (verify_result & MBEDTLS_X509_BADCERT_CN_MISMATCH) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_BAD_CERT, ret); + } else if (verify_result & (MBEDTLS_X509_BADCERT_KEY_USAGE | + MBEDTLS_X509_BADCERT_EXT_KEY_USAGE | + MBEDTLS_X509_BADCERT_NS_CERT_TYPE | + MBEDTLS_X509_BADCERT_BAD_PK | + MBEDTLS_X509_BADCERT_BAD_KEY)) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT, ret); + } else if (verify_result & MBEDTLS_X509_BADCERT_EXPIRED) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_CERT_EXPIRED, ret); + } else if (verify_result & MBEDTLS_X509_BADCERT_REVOKED) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_CERT_REVOKED, ret); + } else if (verify_result & MBEDTLS_X509_BADCERT_NOT_TRUSTED) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_UNKNOWN_CA, ret); + } else { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_CERT_UNKNOWN, ret); + } } #if defined(MBEDTLS_DEBUG_C) - if( verify_result != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "! Certificate verification flags %08x", - (unsigned int) verify_result ) ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Certificate verification flags clear" ) ); + if (verify_result != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("! Certificate verification flags %08x", + (unsigned int) verify_result)); + } else { + MBEDTLS_SSL_DEBUG_MSG(3, ("Certificate verification flags clear")); } #endif /* MBEDTLS_DEBUG_C */ ssl->session_negotiate->verify_result = verify_result; - return( ret ); + return ret; } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_validate_certificate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_validate_certificate(mbedtls_ssl_context *ssl) { ((void) ssl); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ -int mbedtls_ssl_tls13_process_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_process_certificate(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse certificate")); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) unsigned char *buf; size_t buf_len; - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( - ssl, MBEDTLS_SSL_HS_CERTIFICATE, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg( + ssl, MBEDTLS_SSL_HS_CERTIFICATE, + &buf, &buf_len)); /* Parse the certificate chain sent by the peer. */ - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_parse_certificate( ssl, buf, - buf + buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_parse_certificate(ssl, buf, + buf + buf_len)); /* Validate the certificate chain and set the verification results. */ - MBEDTLS_SSL_PROC_CHK( ssl_tls13_validate_certificate( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_validate_certificate(ssl)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_CERTIFICATE, - buf, buf_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_CERTIFICATE, + buf, buf_len); cleanup: #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse certificate" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse certificate")); + return ret; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) /* @@ -824,17 +787,17 @@ cleanup: * } Certificate; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_certificate_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { - const mbedtls_x509_crt *crt = mbedtls_ssl_own_cert( ssl ); + const mbedtls_x509_crt *crt = mbedtls_ssl_own_cert(ssl); unsigned char *p = buf; unsigned char *certificate_request_context = - ssl->handshake->certificate_request_context; + ssl->handshake->certificate_request_context; unsigned char certificate_request_context_len = - ssl->handshake->certificate_request_context_len; + ssl->handshake->certificate_request_context_len; unsigned char *p_certificate_list_len; @@ -842,11 +805,10 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, * opaque certificate_request_context<0..2^8-1>; * ... */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, certificate_request_context_len + 1 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, certificate_request_context_len + 1); *p++ = certificate_request_context_len; - if( certificate_request_context_len > 0 ) - { - memcpy( p, certificate_request_context, certificate_request_context_len ); + if (certificate_request_context_len > 0) { + memcpy(p, certificate_request_context, certificate_request_context_len); p += certificate_request_context_len; } @@ -854,106 +816,103 @@ static int ssl_tls13_write_certificate_body( mbedtls_ssl_context *ssl, * CertificateEntry certificate_list<0..2^24-1>; * ... */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 3 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 3); p_certificate_list_len = p; p += 3; - MBEDTLS_SSL_DEBUG_CRT( 3, "own certificate", crt ); + MBEDTLS_SSL_DEBUG_CRT(3, "own certificate", crt); - while( crt != NULL ) - { + while (crt != NULL) { size_t cert_data_len = crt->raw.len; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, cert_data_len + 3 + 2 ); - MBEDTLS_PUT_UINT24_BE( cert_data_len, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, cert_data_len + 3 + 2); + MBEDTLS_PUT_UINT24_BE(cert_data_len, p, 0); p += 3; - memcpy( p, crt->raw.p, cert_data_len ); + memcpy(p, crt->raw.p, cert_data_len); p += cert_data_len; crt = crt->next; /* Currently, we don't have any certificate extensions defined. * Hence, we are sending an empty extension with length zero. */ - MBEDTLS_PUT_UINT16_BE( 0, p, 0 ); + MBEDTLS_PUT_UINT16_BE(0, p, 0); p += 2; } - MBEDTLS_PUT_UINT24_BE( p - p_certificate_list_len - 3, - p_certificate_list_len, 0 ); + MBEDTLS_PUT_UINT24_BE(p - p_certificate_list_len - 3, + p_certificate_list_len, 0); *out_len = p - buf; MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_CERTIFICATE, ssl->handshake->sent_extensions); - return( 0 ); + return 0; } -int mbedtls_ssl_tls13_write_certificate( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_write_certificate(mbedtls_ssl_context *ssl) { int ret; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_CERTIFICATE, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_CERTIFICATE, &buf, + &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_certificate_body( ssl, - buf, - buf + buf_len, - &msg_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_certificate_body(ssl, + buf, + buf + buf_len, + &msg_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_CERTIFICATE, - buf, msg_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_CERTIFICATE, + buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate")); + return ret; } /* * STATE HANDLING: Output Certificate Verify */ -int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, - mbedtls_pk_context *key ) +int mbedtls_ssl_tls13_check_sig_alg_cert_key_match(uint16_t sig_alg, + mbedtls_pk_context *key) { - mbedtls_pk_type_t pk_type = mbedtls_ssl_sig_from_pk( key ); - size_t key_size = mbedtls_pk_get_bitlen( key ); + mbedtls_pk_type_t pk_type = mbedtls_ssl_sig_from_pk(key); + size_t key_size = mbedtls_pk_get_bitlen(key); - switch( pk_type ) - { + switch (pk_type) { case MBEDTLS_SSL_SIG_ECDSA: - switch( key_size ) - { + switch (key_size) { case 256: - return( - sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256 ); + return + sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256; case 384: - return( - sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384 ); + return + sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384; case 521: - return( - sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512 ); + return + sig_alg == MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512; default: break; } break; case MBEDTLS_SSL_SIG_RSA: - switch( sig_alg ) - { + switch (sig_alg) { case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: /* Intentional fallthrough */ case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: /* Intentional fallthrough */ case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - return( 1 ); + return 1; default: break; @@ -964,22 +923,22 @@ int mbedtls_ssl_tls13_check_sig_alg_cert_key_match( uint16_t sig_alg, break; } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_certificate_verify_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; mbedtls_pk_context *own_key; - unsigned char handshake_hash[ MBEDTLS_TLS1_3_MD_MAX_SIZE ]; + unsigned char handshake_hash[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t handshake_hash_len; - unsigned char verify_buffer[ SSL_VERIFY_STRUCT_MAX_SIZE ]; + unsigned char verify_buffer[SSL_VERIFY_STRUCT_MAX_SIZE]; size_t verify_buffer_len; uint16_t *sig_alg = ssl->handshake->received_sig_algs; @@ -987,28 +946,28 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, *out_len = 0; - own_key = mbedtls_ssl_own_key( ssl ); - if( own_key == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + own_key = mbedtls_ssl_own_key(ssl); + if (own_key == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - ret = mbedtls_ssl_get_handshake_transcript( ssl, - ssl->handshake->ciphersuite_info->mac, - handshake_hash, - sizeof( handshake_hash ), - &handshake_hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, + ssl->handshake->ciphersuite_info->mac, + handshake_hash, + sizeof(handshake_hash), + &handshake_hash_len); + if (ret != 0) { + return ret; + } - MBEDTLS_SSL_DEBUG_BUF( 3, "handshake hash", - handshake_hash, - handshake_hash_len); + MBEDTLS_SSL_DEBUG_BUF(3, "handshake hash", + handshake_hash, + handshake_hash_len); - ssl_tls13_create_verify_structure( handshake_hash, handshake_hash_len, - verify_buffer, &verify_buffer_len, - ssl->conf->endpoint ); + ssl_tls13_create_verify_structure(handshake_hash, handshake_hash_len, + verify_buffer, &verify_buffer_len, + ssl->conf->endpoint); /* * struct { @@ -1019,10 +978,9 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, /* Check there is space for the algorithm identifier (2 bytes) and the * signature length (2 bytes). */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); - for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE ; sig_alg++ ) - { + for (; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; mbedtls_pk_type_t pk_type = MBEDTLS_PK_NONE; mbedtls_md_type_t md_alg = MBEDTLS_MD_NONE; @@ -1030,96 +988,98 @@ static int ssl_tls13_write_certificate_verify_body( mbedtls_ssl_context *ssl, unsigned char verify_hash[PSA_HASH_MAX_SIZE]; size_t verify_hash_len; - if( !mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) ) + if (!mbedtls_ssl_sig_alg_is_offered(ssl, *sig_alg)) { continue; + } - if( !mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) ) + if (!mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(*sig_alg)) { continue; + } - if( !mbedtls_ssl_tls13_check_sig_alg_cert_key_match( *sig_alg, own_key ) ) + if (!mbedtls_ssl_tls13_check_sig_alg_cert_key_match(*sig_alg, own_key)) { continue; + } - if( mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( - *sig_alg, &pk_type, &md_alg ) != 0 ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (mbedtls_ssl_get_pk_type_and_md_alg_from_sig_alg( + *sig_alg, &pk_type, &md_alg) != 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* Hash verify buffer with indicated hash function */ - psa_algorithm = mbedtls_hash_info_psa_from_md( md_alg ); - status = psa_hash_compute( psa_algorithm, - verify_buffer, - verify_buffer_len, - verify_hash, sizeof( verify_hash ), - &verify_hash_len ); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); - - MBEDTLS_SSL_DEBUG_BUF( 3, "verify hash", verify_hash, verify_hash_len ); - - if( ( ret = mbedtls_pk_sign_ext( pk_type, own_key, - md_alg, verify_hash, verify_hash_len, - p + 4, (size_t)( end - ( p + 4 ) ), &signature_len, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify signature failed with %s", - mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); - MBEDTLS_SSL_DEBUG_RET( 2, "mbedtls_pk_sign_ext", ret ); - - /* The signature failed. This is possible if the private key - * was not suitable for the signature operation as purposely we - * did not check its suitability completely. Let's try with - * another signature algorithm. - */ - continue; + psa_algorithm = mbedtls_hash_info_psa_from_md(md_alg); + status = psa_hash_compute(psa_algorithm, + verify_buffer, + verify_buffer_len, + verify_hash, sizeof(verify_hash), + &verify_hash_len); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "CertificateVerify signature with %s", - mbedtls_ssl_sig_alg_to_str( *sig_alg ) ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "verify hash", verify_hash, verify_hash_len); + + if ((ret = mbedtls_pk_sign_ext(pk_type, own_key, + md_alg, verify_hash, verify_hash_len, + p + 4, (size_t) (end - (p + 4)), &signature_len, + ssl->conf->f_rng, ssl->conf->p_rng)) != 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("CertificateVerify signature failed with %s", + mbedtls_ssl_sig_alg_to_str(*sig_alg))); + MBEDTLS_SSL_DEBUG_RET(2, "mbedtls_pk_sign_ext", ret); + + /* The signature failed. This is possible if the private key + * was not suitable for the signature operation as purposely we + * did not check its suitability completely. Let's try with + * another signature algorithm. + */ + continue; + } + + MBEDTLS_SSL_DEBUG_MSG(2, ("CertificateVerify signature with %s", + mbedtls_ssl_sig_alg_to_str(*sig_alg))); break; } - if( *sig_alg == MBEDTLS_TLS1_3_SIG_NONE ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no suitable signature algorithm" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (*sig_alg == MBEDTLS_TLS1_3_SIG_NONE) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no suitable signature algorithm")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_PUT_UINT16_BE( *sig_alg, p, 0 ); - MBEDTLS_PUT_UINT16_BE( signature_len, p, 2 ); + MBEDTLS_PUT_UINT16_BE(*sig_alg, p, 0); + MBEDTLS_PUT_UINT16_BE(signature_len, p, 2); *out_len = 4 + signature_len; - return( 0 ); + return 0; } -int mbedtls_ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_write_certificate_verify(mbedtls_ssl_context *ssl) { int ret = 0; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate verify" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate verify")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, &buf, + &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_certificate_verify_body( - ssl, buf, buf + buf_len, &msg_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_certificate_verify_body( + ssl, buf, buf + buf_len, &msg_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, - buf, msg_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_CERTIFICATE_VERIFY, + buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate verify" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate verify")); + return ret; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -1133,29 +1093,29 @@ cleanup: */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_preprocess_finished_message( mbedtls_ssl_context *ssl ) +static int ssl_tls13_preprocess_finished_message(mbedtls_ssl_context *ssl) { int ret; - ret = mbedtls_ssl_tls13_calculate_verify_data( ssl, - ssl->handshake->state_local.finished_in.digest, - sizeof( ssl->handshake->state_local.finished_in.digest ), - &ssl->handshake->state_local.finished_in.digest_len, - ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ? - MBEDTLS_SSL_IS_SERVER : MBEDTLS_SSL_IS_CLIENT ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_calculate_verify_data", ret ); - return( ret ); + ret = mbedtls_ssl_tls13_calculate_verify_data(ssl, + ssl->handshake->state_local.finished_in.digest, + sizeof(ssl->handshake->state_local.finished_in. + digest), + &ssl->handshake->state_local.finished_in.digest_len, + ssl->conf->endpoint == MBEDTLS_SSL_IS_CLIENT ? + MBEDTLS_SSL_IS_SERVER : MBEDTLS_SSL_IS_CLIENT); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_calculate_verify_data", ret); + return ret; } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_finished_message( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_finished_message(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { /* * struct { @@ -1167,59 +1127,57 @@ static int ssl_tls13_parse_finished_message( mbedtls_ssl_context *ssl, size_t expected_verify_data_len = ssl->handshake->state_local.finished_in.digest_len; /* Structural validation */ - if( (size_t)( end - buf ) != expected_verify_data_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad finished message" ) ); + if ((size_t) (end - buf) != expected_verify_data_len) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad finished message")); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } - MBEDTLS_SSL_DEBUG_BUF( 4, "verify_data (self-computed):", - expected_verify_data, - expected_verify_data_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "verify_data (received message):", buf, - expected_verify_data_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "verify_data (self-computed):", + expected_verify_data, + expected_verify_data_len); + MBEDTLS_SSL_DEBUG_BUF(4, "verify_data (received message):", buf, + expected_verify_data_len); /* Semantic validation */ - if( mbedtls_ct_memcmp( buf, - expected_verify_data, - expected_verify_data_len ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad finished message" ) ); + if (mbedtls_ct_memcmp(buf, + expected_verify_data, + expected_verify_data_len) != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad finished message")); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - return( 0 ); + return 0; } -int mbedtls_ssl_tls13_process_finished_message( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_process_finished_message(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; size_t buf_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse finished message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse finished message")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( ssl, - MBEDTLS_SSL_HS_FINISHED, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg(ssl, + MBEDTLS_SSL_HS_FINISHED, + &buf, &buf_len)); /* Preprocessing step: Compute handshake digest */ - MBEDTLS_SSL_PROC_CHK( ssl_tls13_preprocess_finished_message( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_preprocess_finished_message(ssl)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_parse_finished_message( ssl, buf, buf + buf_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_parse_finished_message(ssl, buf, buf + buf_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_FINISHED, - buf, buf_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_FINISHED, + buf, buf_len); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse finished message" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse finished message")); + return ret; } /* @@ -1232,31 +1190,31 @@ cleanup: */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_prepare_finished_message( mbedtls_ssl_context *ssl ) +static int ssl_tls13_prepare_finished_message(mbedtls_ssl_context *ssl) { int ret; /* Compute transcript of handshake up to now. */ - ret = mbedtls_ssl_tls13_calculate_verify_data( ssl, - ssl->handshake->state_local.finished_out.digest, - sizeof( ssl->handshake->state_local.finished_out.digest ), - &ssl->handshake->state_local.finished_out.digest_len, - ssl->conf->endpoint ); + ret = mbedtls_ssl_tls13_calculate_verify_data(ssl, + ssl->handshake->state_local.finished_out.digest, + sizeof(ssl->handshake->state_local.finished_out. + digest), + &ssl->handshake->state_local.finished_out.digest_len, + ssl->conf->endpoint); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "calculate_verify_data failed", ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "calculate_verify_data failed", ret); + return ret; } - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_finished_message_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_finished_message_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { size_t verify_data_len = ssl->handshake->state_local.finished_out.digest_len; /* @@ -1264,66 +1222,65 @@ static int ssl_tls13_write_finished_message_body( mbedtls_ssl_context *ssl, * opaque verify_data[Hash.length]; * } Finished; */ - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, verify_data_len ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, verify_data_len); - memcpy( buf, ssl->handshake->state_local.finished_out.digest, - verify_data_len ); + memcpy(buf, ssl->handshake->state_local.finished_out.digest, + verify_data_len); *out_len = verify_data_len; - return( 0 ); + return 0; } /* Main entry point: orchestrates the other functions */ -int mbedtls_ssl_tls13_write_finished_message( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_write_finished_message(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write finished message" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write finished message")); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_finished_message( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_prepare_finished_message(ssl)); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_FINISHED, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_FINISHED, &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_finished_message_body( - ssl, buf, buf + buf_len, &msg_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_finished_message_body( + ssl, buf, buf + buf_len, &msg_len)); - mbedtls_ssl_add_hs_msg_to_checksum( ssl, MBEDTLS_SSL_HS_FINISHED, - buf, msg_len ); + mbedtls_ssl_add_hs_msg_to_checksum(ssl, MBEDTLS_SSL_HS_FINISHED, + buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write finished message" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write finished message")); + return ret; } -void mbedtls_ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) +void mbedtls_ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "=> handshake wrapup" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("=> handshake wrapup")); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Switch to application keys for inbound traffic" ) ); - mbedtls_ssl_set_inbound_transform ( ssl, ssl->transform_application ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Switch to application keys for inbound traffic")); + mbedtls_ssl_set_inbound_transform(ssl, ssl->transform_application); - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Switch to application keys for outbound traffic" ) ); - mbedtls_ssl_set_outbound_transform( ssl, ssl->transform_application ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Switch to application keys for outbound traffic")); + mbedtls_ssl_set_outbound_transform(ssl, ssl->transform_application); /* * Free the previous session and switch to the current one. */ - if( ssl->session ) - { - mbedtls_ssl_session_free( ssl->session ); - mbedtls_free( ssl->session ); + if (ssl->session) { + mbedtls_ssl_session_free(ssl->session); + mbedtls_free(ssl->session); } ssl->session = ssl->session_negotiate; ssl->session_negotiate = NULL; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "<= handshake wrapup" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("<= handshake wrapup")); } /* @@ -1333,41 +1290,41 @@ void mbedtls_ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) */ #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_change_cipher_spec_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *olen ) +static int ssl_tls13_write_change_cipher_spec_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *olen) { ((void) ssl); - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 1 ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, 1); buf[0] = 1; *olen = 1; - return( 0 ); + return 0; } -int mbedtls_ssl_tls13_write_change_cipher_spec( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_write_change_cipher_spec(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write change cipher spec" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write change cipher spec")); /* Write CCS message */ - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_change_cipher_spec_body( - ssl, ssl->out_msg, - ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN, - &ssl->out_msglen ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_change_cipher_spec_body( + ssl, ssl->out_msg, + ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN, + &ssl->out_msglen)); ssl->out_msgtype = MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC; /* Dispatch message */ - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_write_record( ssl, 0 ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_write_record(ssl, 0)); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write change cipher spec" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write change cipher spec")); + return ret; } #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ @@ -1383,25 +1340,25 @@ cleanup: * } EarlyDataIndication; */ #if defined(MBEDTLS_SSL_EARLY_DATA) -int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *out_len ) +int mbedtls_ssl_tls13_write_early_data_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len) { unsigned char *p = buf; *out_len = 0; ((void) ssl); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_EARLY_DATA, p, 0 ); - MBEDTLS_PUT_UINT16_BE( 0, p, 2 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_EARLY_DATA, p, 0); + MBEDTLS_PUT_UINT16_BE(0, p, 2); *out_len = 4; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_EARLY_DATA ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_EARLY_DATA); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -1416,25 +1373,24 @@ int mbedtls_ssl_tls13_write_early_data_ext( mbedtls_ssl_context *ssl, * - session ticket * - negotiated ciphersuite */ -int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_reset_transcript_for_hrr(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char hash_transcript[PSA_HASH_MAX_SIZE + 4]; size_t hash_len; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; uint16_t cipher_suite = ssl->session_negotiate->ciphersuite; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( cipher_suite ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(cipher_suite); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Reset SSL session for HRR" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Reset SSL session for HRR")); - ret = mbedtls_ssl_get_handshake_transcript( ssl, ciphersuite_info->mac, - hash_transcript + 4, - PSA_HASH_MAX_SIZE, - &hash_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 4, "mbedtls_ssl_get_handshake_transcript", ret ); - return( ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, ciphersuite_info->mac, + hash_transcript + 4, + PSA_HASH_MAX_SIZE, + &hash_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(4, "mbedtls_ssl_get_handshake_transcript", ret); + return ret; } hash_transcript[0] = MBEDTLS_SSL_HS_MESSAGE_HASH; @@ -1445,71 +1401,71 @@ int mbedtls_ssl_reset_transcript_for_hrr( mbedtls_ssl_context *ssl ) hash_len += 4; #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac == MBEDTLS_MD_SHA256 ) - { - MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-256 handshake transcript", - hash_transcript, hash_len ); + if (ciphersuite_info->mac == MBEDTLS_MD_SHA256) { + MBEDTLS_SSL_DEBUG_BUF(4, "Truncated SHA-256 handshake transcript", + hash_transcript, hash_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &ssl->handshake->fin_sha256_psa ); - psa_hash_setup( &ssl->handshake->fin_sha256_psa, PSA_ALG_SHA_256 ); + psa_hash_abort(&ssl->handshake->fin_sha256_psa); + psa_hash_setup(&ssl->handshake->fin_sha256_psa, PSA_ALG_SHA_256); #else - mbedtls_sha256_starts( &ssl->handshake->fin_sha256, 0 ); + mbedtls_sha256_starts(&ssl->handshake->fin_sha256, 0); #endif } #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) - { - MBEDTLS_SSL_DEBUG_BUF( 4, "Truncated SHA-384 handshake transcript", - hash_transcript, hash_len ); + if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) { + MBEDTLS_SSL_DEBUG_BUF(4, "Truncated SHA-384 handshake transcript", + hash_transcript, hash_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_hash_abort( &ssl->handshake->fin_sha384_psa ); - psa_hash_setup( &ssl->handshake->fin_sha384_psa, PSA_ALG_SHA_384 ); + psa_hash_abort(&ssl->handshake->fin_sha384_psa); + psa_hash_setup(&ssl->handshake->fin_sha384_psa, PSA_ALG_SHA_384); #else - mbedtls_sha512_starts( &ssl->handshake->fin_sha384, 1 ); + mbedtls_sha512_starts(&ssl->handshake->fin_sha384, 1); #endif } #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - ssl->handshake->update_checksum( ssl, hash_transcript, hash_len ); -#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) + ssl->handshake->update_checksum(ssl, hash_transcript, hash_len); +#endif \ + /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA || MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ - return( ret ); + return ret; } #if defined(MBEDTLS_ECDH_C) -int mbedtls_ssl_tls13_read_public_ecdhe_share( mbedtls_ssl_context *ssl, - const unsigned char *buf, - size_t buf_len ) +int mbedtls_ssl_tls13_read_public_ecdhe_share(mbedtls_ssl_context *ssl, + const unsigned char *buf, + size_t buf_len) { - uint8_t *p = (uint8_t*)buf; + uint8_t *p = (uint8_t *) buf; const uint8_t *end = buf + buf_len; mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* Get size of the TLS opaque key_exchange field of the KeyShareEntry struct. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - uint16_t peerkey_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + uint16_t peerkey_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* Check if key size is consistent with given buffer length. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, peerkey_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, peerkey_len); /* Store peer's ECDH public key. */ - memcpy( handshake->ecdh_psa_peerkey, p, peerkey_len ); + memcpy(handshake->ecdh_psa_peerkey, p, peerkey_len); handshake->ecdh_psa_peerkey_len = peerkey_len; - return( 0 ); + return 0; } int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( - mbedtls_ssl_context *ssl, - uint16_t named_group, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) + mbedtls_ssl_context *ssl, + uint16_t named_group, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { psa_status_t status = PSA_ERROR_GENERIC_ERROR; int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; @@ -1519,49 +1475,47 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( psa_ecc_family_t ec_psa_family = 0; size_t ec_bits = 0; - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Perform PSA-based ECDH computation." ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Perform PSA-based ECDH computation.")); /* Convert EC's TLS ID to PSA key type. */ - if( mbedtls_ssl_get_psa_curve_info_from_tls_id( named_group, - &ec_psa_family, &ec_bits ) == PSA_ERROR_NOT_SUPPORTED ) - { - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (mbedtls_ssl_get_psa_curve_info_from_tls_id(named_group, + &ec_psa_family, + &ec_bits) == PSA_ERROR_NOT_SUPPORTED) { + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR( ec_psa_family ); + handshake->ecdh_psa_type = PSA_KEY_TYPE_ECC_KEY_PAIR(ec_psa_family); ssl->handshake->ecdh_bits = ec_bits; key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, PSA_ALG_ECDH ); - psa_set_key_type( &key_attributes, handshake->ecdh_psa_type ); - psa_set_key_bits( &key_attributes, handshake->ecdh_bits ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, PSA_ALG_ECDH); + psa_set_key_type(&key_attributes, handshake->ecdh_psa_type); + psa_set_key_bits(&key_attributes, handshake->ecdh_bits); /* Generate ECDH private key. */ - status = psa_generate_key( &key_attributes, - &handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_generate_key", ret ); - return( ret ); + status = psa_generate_key(&key_attributes, + &handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_generate_key", ret); + return ret; } /* Export the public part of the ECDH private key from PSA. */ - status = psa_export_public_key( handshake->ecdh_psa_privkey, - buf, (size_t)( end - buf ), - &own_pubkey_len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_export_public_key", ret ); - return( ret ); + status = psa_export_public_key(handshake->ecdh_psa_privkey, + buf, (size_t) (end - buf), + &own_pubkey_len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_export_public_key", ret); + return ret; } *out_len = own_pubkey_len; - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C */ @@ -1573,25 +1527,24 @@ int mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( * */ int mbedtls_ssl_tls13_check_received_extension( - mbedtls_ssl_context *ssl, - int hs_msg_type, - unsigned int received_extension_type, - uint32_t hs_msg_allowed_extensions_mask ) + mbedtls_ssl_context *ssl, + int hs_msg_type, + unsigned int received_extension_type, + uint32_t hs_msg_allowed_extensions_mask) { uint32_t extension_mask = mbedtls_ssl_get_extension_mask( - received_extension_type ); + received_extension_type); MBEDTLS_SSL_PRINT_EXT( - 3, hs_msg_type, received_extension_type, "received" ); + 3, hs_msg_type, received_extension_type, "received"); - if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 ) - { + if ((extension_mask & hs_msg_allowed_extensions_mask) == 0) { MBEDTLS_SSL_PRINT_EXT( - 3, hs_msg_type, received_extension_type, "is illegal" ); + 3, hs_msg_type, received_extension_type, "is illegal"); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } ssl->handshake->received_extensions |= extension_mask; @@ -1599,27 +1552,26 @@ int mbedtls_ssl_tls13_check_received_extension( * If it is a message containing extension responses, check that we * previously sent the extension. */ - switch( hs_msg_type ) - { + switch (hs_msg_type) { case MBEDTLS_SSL_HS_SERVER_HELLO: case MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST: case MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS: case MBEDTLS_SSL_HS_CERTIFICATE: /* Check if the received extension is sent by peer message.*/ - if( ( ssl->handshake->sent_extensions & extension_mask ) != 0 ) - return( 0 ); + if ((ssl->handshake->sent_extensions & extension_mask) != 0) { + return 0; + } break; default: - return( 0 ); + return 0; } MBEDTLS_SSL_PRINT_EXT( - 3, hs_msg_type, received_extension_type, "is unsupported" ); + 3, hs_msg_type, received_extension_type, "is unsupported"); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT, - MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); - return( MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION ); + MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION); + return MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION; } #endif /* MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_PROTO_TLS1_3 */ - diff --git a/library/ssl_tls13_invasive.h b/library/ssl_tls13_invasive.h index 54702007d..3fb79a95d 100644 --- a/library/ssl_tls13_invasive.h +++ b/library/ssl_tls13_invasive.h @@ -25,9 +25,9 @@ #include "psa/crypto.h" #if defined(MBEDTLS_TEST_HOOKS) -int mbedtls_ssl_tls13_parse_certificate( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ); +int mbedtls_ssl_tls13_parse_certificate(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end); #endif /* MBEDTLS_TEST_HOOKS */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index cef61449b..ecfdab318 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -35,7 +35,7 @@ #include "psa/crypto.h" -#define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ +#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ .name = string, struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = @@ -84,29 +84,29 @@ struct mbedtls_ssl_tls13_labels_struct const mbedtls_ssl_tls13_labels = static const char tls13_label_prefix[6] = "tls13 "; -#define SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN( label_len, context_len ) \ - ( 2 /* expansion length */ \ - + 1 /* label length */ \ - + label_len \ - + 1 /* context length */ \ - + context_len ) +#define SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN(label_len, context_len) \ + (2 /* expansion length */ \ + + 1 /* label length */ \ + + label_len \ + + 1 /* context length */ \ + + context_len) #define SSL_TLS1_3_KEY_SCHEDULE_MAX_HKDF_LABEL_LEN \ SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN( \ - sizeof(tls13_label_prefix) + \ - MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_LABEL_LEN, \ - MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN ) + sizeof(tls13_label_prefix) + \ + MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_LABEL_LEN, \ + MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN) static void ssl_tls13_hkdf_encode_label( - size_t desired_length, - const unsigned char *label, size_t label_len, - const unsigned char *ctx, size_t ctx_len, - unsigned char *dst, size_t *dst_len ) + size_t desired_length, + const unsigned char *label, size_t label_len, + const unsigned char *ctx, size_t ctx_len, + unsigned char *dst, size_t *dst_len) { size_t total_label_len = sizeof(tls13_label_prefix) + label_len; size_t total_hkdf_lbl_len = - SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN( total_label_len, ctx_len ); + SSL_TLS1_3_KEY_SCHEDULE_HKDF_LABEL_LEN(total_label_len, ctx_len); unsigned char *p = dst; @@ -115,131 +115,135 @@ static void ssl_tls13_hkdf_encode_label( * TLS 1.3 HKDF key expansion to more than 255 Bytes. */ #if MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN > 255 #error "The implementation of ssl_tls13_hkdf_encode_label() is not fit for the \ - value of MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN" + value of MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN" #endif *p++ = 0; - *p++ = MBEDTLS_BYTE_0( desired_length ); + *p++ = MBEDTLS_BYTE_0(desired_length); /* Add label incl. prefix */ - *p++ = MBEDTLS_BYTE_0( total_label_len ); - memcpy( p, tls13_label_prefix, sizeof(tls13_label_prefix) ); + *p++ = MBEDTLS_BYTE_0(total_label_len); + memcpy(p, tls13_label_prefix, sizeof(tls13_label_prefix)); p += sizeof(tls13_label_prefix); - memcpy( p, label, label_len ); + memcpy(p, label, label_len); p += label_len; /* Add context value */ - *p++ = MBEDTLS_BYTE_0( ctx_len ); - if( ctx_len != 0 ) - memcpy( p, ctx, ctx_len ); + *p++ = MBEDTLS_BYTE_0(ctx_len); + if (ctx_len != 0) { + memcpy(p, ctx, ctx_len); + } /* Return total length to the caller. */ *dst_len = total_hkdf_lbl_len; } int mbedtls_ssl_tls13_hkdf_expand_label( - psa_algorithm_t hash_alg, - const unsigned char *secret, size_t secret_len, - const unsigned char *label, size_t label_len, - const unsigned char *ctx, size_t ctx_len, - unsigned char *buf, size_t buf_len ) + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + const unsigned char *label, size_t label_len, + const unsigned char *ctx, size_t ctx_len, + unsigned char *buf, size_t buf_len) { - unsigned char hkdf_label[ SSL_TLS1_3_KEY_SCHEDULE_MAX_HKDF_LABEL_LEN ]; + unsigned char hkdf_label[SSL_TLS1_3_KEY_SCHEDULE_MAX_HKDF_LABEL_LEN]; size_t hkdf_label_len = 0; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - if( label_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_LABEL_LEN ) - { + if (label_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_LABEL_LEN) { /* Should never happen since this is an internal * function, and we know statically which labels * are allowed. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( ctx_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN ) - { + if (ctx_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_CONTEXT_LEN) { /* Should not happen, as above. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( buf_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN ) - { + if (buf_len > MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_EXPANSION_LEN) { /* Should not happen, as above. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ssl_tls13_hkdf_encode_label( buf_len, - label, label_len, - ctx, ctx_len, - hkdf_label, - &hkdf_label_len ); + ssl_tls13_hkdf_encode_label(buf_len, + label, label_len, + ctx, ctx_len, + hkdf_label, + &hkdf_label_len); - status = psa_key_derivation_setup( &operation, PSA_ALG_HKDF_EXPAND( hash_alg ) ); + status = psa_key_derivation_setup(&operation, PSA_ALG_HKDF_EXPAND(hash_alg)); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - secret, - secret_len ); + status = psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + secret, + secret_len); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_INFO, - hkdf_label, - hkdf_label_len ); + status = psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_INFO, + hkdf_label, + hkdf_label_len); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_output_bytes( &operation, - buf, - buf_len ); + status = psa_key_derivation_output_bytes(&operation, + buf, + buf_len); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } cleanup: - abort_status = psa_key_derivation_abort( &operation ); - status = ( status == PSA_SUCCESS ? abort_status : status ); - mbedtls_platform_zeroize( hkdf_label, hkdf_label_len ); - return( psa_ssl_status_to_mbedtls ( status ) ); + abort_status = psa_key_derivation_abort(&operation); + status = (status == PSA_SUCCESS ? abort_status : status); + mbedtls_platform_zeroize(hkdf_label, hkdf_label_len); + return psa_ssl_status_to_mbedtls(status); } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_make_traffic_key( - psa_algorithm_t hash_alg, - const unsigned char *secret, size_t secret_len, - unsigned char *key, size_t key_len, - unsigned char *iv, size_t iv_len ) + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + unsigned char *key, size_t key_len, + unsigned char *iv, size_t iv_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; ret = mbedtls_ssl_tls13_hkdf_expand_label( - hash_alg, - secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( key ), - NULL, 0, - key, key_len ); - if( ret != 0 ) - return( ret ); + hash_alg, + secret, secret_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(key), + NULL, 0, + key, key_len); + if (ret != 0) { + return ret; + } ret = mbedtls_ssl_tls13_hkdf_expand_label( - hash_alg, - secret, secret_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( iv ), - NULL, 0, - iv, iv_len ); - return( ret ); + hash_alg, + secret, secret_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(iv), + NULL, 0, + iv, iv_len); + return ret; } /* @@ -259,178 +263,178 @@ static int ssl_tls13_make_traffic_key( * keys in a single function call. */ int mbedtls_ssl_tls13_make_traffic_keys( - psa_algorithm_t hash_alg, - const unsigned char *client_secret, - const unsigned char *server_secret, size_t secret_len, - size_t key_len, size_t iv_len, - mbedtls_ssl_key_set *keys ) + psa_algorithm_t hash_alg, + const unsigned char *client_secret, + const unsigned char *server_secret, size_t secret_len, + size_t key_len, size_t iv_len, + mbedtls_ssl_key_set *keys) { int ret = 0; ret = ssl_tls13_make_traffic_key( - hash_alg, client_secret, secret_len, - keys->client_write_key, key_len, - keys->client_write_iv, iv_len ); - if( ret != 0 ) - return( ret ); + hash_alg, client_secret, secret_len, + keys->client_write_key, key_len, + keys->client_write_iv, iv_len); + if (ret != 0) { + return ret; + } ret = ssl_tls13_make_traffic_key( - hash_alg, server_secret, secret_len, - keys->server_write_key, key_len, - keys->server_write_iv, iv_len ); - if( ret != 0 ) - return( ret ); + hash_alg, server_secret, secret_len, + keys->server_write_key, key_len, + keys->server_write_iv, iv_len); + if (ret != 0) { + return ret; + } keys->key_len = key_len; keys->iv_len = iv_len; - return( 0 ); + return 0; } int mbedtls_ssl_tls13_derive_secret( - psa_algorithm_t hash_alg, - const unsigned char *secret, size_t secret_len, - const unsigned char *label, size_t label_len, - const unsigned char *ctx, size_t ctx_len, - int ctx_hashed, - unsigned char *dstbuf, size_t dstbuf_len ) + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + const unsigned char *label, size_t label_len, + const unsigned char *ctx, size_t ctx_len, + int ctx_hashed, + unsigned char *dstbuf, size_t dstbuf_len) { int ret; - unsigned char hashed_context[ PSA_HASH_MAX_SIZE ]; - if( ctx_hashed == MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED ) - { + unsigned char hashed_context[PSA_HASH_MAX_SIZE]; + if (ctx_hashed == MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - status = psa_hash_compute( hash_alg, ctx, ctx_len, hashed_context, - PSA_HASH_LENGTH( hash_alg ), &ctx_len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_hash_compute(hash_alg, ctx, ctx_len, hashed_context, + PSA_HASH_LENGTH(hash_alg), &ctx_len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); return ret; } - } - else - { - if( ctx_len > sizeof(hashed_context) ) - { + } else { + if (ctx_len > sizeof(hashed_context)) { /* This should never happen since this function is internal * and the code sets `ctx_hashed` correctly. * Let's double-check nonetheless to not run at the risk * of getting a stack overflow. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - memcpy( hashed_context, ctx, ctx_len ); + memcpy(hashed_context, ctx, ctx_len); } - return( mbedtls_ssl_tls13_hkdf_expand_label( hash_alg, - secret, secret_len, - label, label_len, - hashed_context, ctx_len, - dstbuf, dstbuf_len ) ); + return mbedtls_ssl_tls13_hkdf_expand_label(hash_alg, + secret, secret_len, + label, label_len, + hashed_context, ctx_len, + dstbuf, dstbuf_len); } int mbedtls_ssl_tls13_evolve_secret( - psa_algorithm_t hash_alg, - const unsigned char *secret_old, - const unsigned char *input, size_t input_len, - unsigned char *secret_new ) + psa_algorithm_t hash_alg, + const unsigned char *secret_old, + const unsigned char *input, size_t input_len, + unsigned char *secret_new) { int ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t abort_status = PSA_ERROR_CORRUPTION_DETECTED; size_t hlen; - unsigned char tmp_secret[ PSA_MAC_MAX_SIZE ] = { 0 }; - const unsigned char all_zeroes_input[ MBEDTLS_TLS1_3_MD_MAX_SIZE ] = { 0 }; + unsigned char tmp_secret[PSA_MAC_MAX_SIZE] = { 0 }; + const unsigned char all_zeroes_input[MBEDTLS_TLS1_3_MD_MAX_SIZE] = { 0 }; const unsigned char *l_input = NULL; size_t l_input_len; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - hlen = PSA_HASH_LENGTH( hash_alg ); + hlen = PSA_HASH_LENGTH(hash_alg); /* For non-initial runs, call Derive-Secret( ., "derived", "") * on the old secret. */ - if( secret_old != NULL ) - { + if (secret_old != NULL) { ret = mbedtls_ssl_tls13_derive_secret( - hash_alg, - secret_old, hlen, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( derived ), - NULL, 0, /* context */ - MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, - tmp_secret, hlen ); - if( ret != 0 ) + hash_alg, + secret_old, hlen, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(derived), + NULL, 0, /* context */ + MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, + tmp_secret, hlen); + if (ret != 0) { goto cleanup; + } } ret = 0; - if( input != NULL && input_len != 0 ) - { + if (input != NULL && input_len != 0) { l_input = input; l_input_len = input_len; - } - else - { + } else { l_input = all_zeroes_input; l_input_len = hlen; } - status = psa_key_derivation_setup( &operation, - PSA_ALG_HKDF_EXTRACT( hash_alg ) ); + status = psa_key_derivation_setup(&operation, + PSA_ALG_HKDF_EXTRACT(hash_alg)); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_SALT, - tmp_secret, - hlen ); + status = psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_SALT, + tmp_secret, + hlen); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - l_input, l_input_len ); + status = psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + l_input, l_input_len); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - status = psa_key_derivation_output_bytes( &operation, - secret_new, - PSA_HASH_LENGTH( hash_alg ) ); + status = psa_key_derivation_output_bytes(&operation, + secret_new, + PSA_HASH_LENGTH(hash_alg)); - if( status != PSA_SUCCESS ) - goto cleanup; + if (status != PSA_SUCCESS) { + goto cleanup; + } - cleanup: - abort_status = psa_key_derivation_abort( &operation ); - status = ( status == PSA_SUCCESS ? abort_status : status ); - ret = ( ret == 0 ? psa_ssl_status_to_mbedtls ( status ) : ret ); - mbedtls_platform_zeroize( tmp_secret, sizeof(tmp_secret) ); - return( ret ); +cleanup: + abort_status = psa_key_derivation_abort(&operation); + status = (status == PSA_SUCCESS ? abort_status : status); + ret = (ret == 0 ? psa_ssl_status_to_mbedtls(status) : ret); + mbedtls_platform_zeroize(tmp_secret, sizeof(tmp_secret)); + return ret; } int mbedtls_ssl_tls13_derive_early_secrets( - psa_algorithm_t hash_alg, - unsigned char const *early_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_early_secrets *derived ) + psa_algorithm_t hash_alg, + unsigned char const *early_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_early_secrets *derived) { int ret; - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* * 0 @@ -447,43 +451,46 @@ int mbedtls_ssl_tls13_derive_early_secrets( */ /* Create client_early_traffic_secret */ - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - early_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( c_e_traffic ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->client_early_traffic_secret, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + early_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(c_e_traffic), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->client_early_traffic_secret, + hash_len); + if (ret != 0) { + return ret; + } /* Create early exporter */ - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - early_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( e_exp_master ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->early_exporter_master_secret, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + early_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(e_exp_master), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->early_exporter_master_secret, + hash_len); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } int mbedtls_ssl_tls13_derive_handshake_secrets( - psa_algorithm_t hash_alg, - unsigned char const *handshake_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_handshake_secrets *derived ) + psa_algorithm_t hash_alg, + unsigned char const *handshake_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_handshake_secrets *derived) { int ret; - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* * @@ -504,47 +511,50 @@ int mbedtls_ssl_tls13_derive_handshake_secrets( * Derive-Secret( ., "c hs traffic", ClientHello...ServerHello ) */ - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - handshake_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( c_hs_traffic ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->client_handshake_traffic_secret, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + handshake_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(c_hs_traffic), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->client_handshake_traffic_secret, + hash_len); + if (ret != 0) { + return ret; + } /* * Compute server_handshake_traffic_secret with * Derive-Secret( ., "s hs traffic", ClientHello...ServerHello ) */ - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - handshake_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( s_hs_traffic ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->server_handshake_traffic_secret, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + handshake_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(s_hs_traffic), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->server_handshake_traffic_secret, + hash_len); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } int mbedtls_ssl_tls13_derive_application_secrets( - psa_algorithm_t hash_alg, - unsigned char const *application_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_application_secrets *derived ) + psa_algorithm_t hash_alg, + unsigned char const *application_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_application_secrets *derived) { int ret; - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* Generate {client,server}_application_traffic_secret_0 * @@ -564,37 +574,40 @@ int mbedtls_ssl_tls13_derive_application_secrets( * */ - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - application_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( c_ap_traffic ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->client_application_traffic_secret_N, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + application_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(c_ap_traffic), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->client_application_traffic_secret_N, + hash_len); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - application_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( s_ap_traffic ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->server_application_traffic_secret_N, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + application_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(s_ap_traffic), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->server_application_traffic_secret_N, + hash_len); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - application_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( exp_master ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->exporter_master_secret, - hash_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + application_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(exp_master), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->exporter_master_secret, + hash_len); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } /* Generate resumption_master_secret for use with the ticket exchange. @@ -602,78 +615,80 @@ int mbedtls_ssl_tls13_derive_application_secrets( * This is not integrated with mbedtls_ssl_tls13_derive_application_secrets() * because it uses the transcript hash up to and including ClientFinished. */ int mbedtls_ssl_tls13_derive_resumption_master_secret( - psa_algorithm_t hash_alg, - unsigned char const *application_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_application_secrets *derived ) + psa_algorithm_t hash_alg, + unsigned char const *application_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_application_secrets *derived) { int ret; - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - application_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( res_master ), - transcript, transcript_len, - MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, - derived->resumption_master_secret, - hash_len ); + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + application_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(res_master), + transcript, transcript_len, + MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED, + derived->resumption_master_secret, + hash_len); - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } -int mbedtls_ssl_tls13_key_schedule_stage_application( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( - handshake->ciphersuite_info->mac ); + handshake->ciphersuite_info->mac); /* * Compute MasterSecret */ - ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, - handshake->tls13_master_secrets.handshake, - NULL, 0, - handshake->tls13_master_secrets.app ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); - return( ret ); + ret = mbedtls_ssl_tls13_evolve_secret(hash_alg, + handshake->tls13_master_secrets.handshake, + NULL, 0, + handshake->tls13_master_secrets.app); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_evolve_secret", ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 4, "Master secret", - handshake->tls13_master_secrets.app, PSA_HASH_LENGTH( hash_alg ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "Master secret", + handshake->tls13_master_secrets.app, PSA_HASH_LENGTH(hash_alg)); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_calc_finished_core( psa_algorithm_t hash_alg, - unsigned char const *base_key, - unsigned char const *transcript, - unsigned char *dst, - size_t *dst_len ) +static int ssl_tls13_calc_finished_core(psa_algorithm_t hash_alg, + unsigned char const *base_key, + unsigned char const *transcript, + unsigned char *dst, + size_t *dst_len) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - size_t hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t hash_len = PSA_HASH_LENGTH(hash_alg); unsigned char finished_key[PSA_MAC_MAX_SIZE]; int ret; psa_algorithm_t alg; /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* TLS 1.3 Finished message * @@ -693,45 +708,46 @@ static int ssl_tls13_calc_finished_core( psa_algorithm_t hash_alg, */ ret = mbedtls_ssl_tls13_hkdf_expand_label( - hash_alg, base_key, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( finished ), - NULL, 0, - finished_key, hash_len ); - if( ret != 0 ) - goto exit; - - alg = PSA_ALG_HMAC( hash_alg ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); - - status = psa_import_key( &attributes, finished_key, hash_len, &key ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + hash_alg, base_key, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(finished), + NULL, 0, + finished_key, hash_len); + if (ret != 0) { goto exit; } - status = psa_mac_compute( key, alg, transcript, hash_len, - dst, hash_len, dst_len ); - ret = psa_ssl_status_to_mbedtls( status ); + alg = PSA_ALG_HMAC(hash_alg); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); + + status = psa_import_key(&attributes, finished_key, hash_len, &key); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + goto exit; + } + + status = psa_mac_compute(key, alg, transcript, hash_len, + dst, hash_len, dst_len); + ret = psa_ssl_status_to_mbedtls(status); exit: - status = psa_destroy_key( key ); - if( ret == 0 ) - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_destroy_key(key); + if (ret == 0) { + ret = psa_ssl_status_to_mbedtls(status); + } - mbedtls_platform_zeroize( finished_key, sizeof( finished_key ) ); + mbedtls_platform_zeroize(finished_key, sizeof(finished_key)); - return( ret ); + return ret; } -int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, - unsigned char* dst, - size_t dst_len, - size_t *actual_len, - int from ) +int mbedtls_ssl_tls13_calculate_verify_data(mbedtls_ssl_context *ssl, + unsigned char *dst, + size_t dst_len, + size_t *actual_len, + int from) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -741,68 +757,64 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context* ssl, unsigned char *base_key = NULL; size_t base_key_len = 0; mbedtls_ssl_tls13_handshake_secrets *tls13_hs_secrets = - &ssl->handshake->tls13_hs_secrets; + &ssl->handshake->tls13_hs_secrets; mbedtls_md_type_t const md_type = ssl->handshake->ciphersuite_info->mac; psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md( - ssl->handshake->ciphersuite_info->mac ); - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + ssl->handshake->ciphersuite_info->mac); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_tls13_calculate_verify_data" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> mbedtls_ssl_tls13_calculate_verify_data")); - if( from == MBEDTLS_SSL_IS_CLIENT ) - { + if (from == MBEDTLS_SSL_IS_CLIENT) { base_key = tls13_hs_secrets->client_handshake_traffic_secret; - base_key_len = sizeof( tls13_hs_secrets->client_handshake_traffic_secret ); - } - else - { + base_key_len = sizeof(tls13_hs_secrets->client_handshake_traffic_secret); + } else { base_key = tls13_hs_secrets->server_handshake_traffic_secret; - base_key_len = sizeof( tls13_hs_secrets->server_handshake_traffic_secret ); + base_key_len = sizeof(tls13_hs_secrets->server_handshake_traffic_secret); } - if( dst_len < hash_len ) - { + if (dst_len < hash_len) { ret = MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; goto exit; } - ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, - transcript, sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_get_handshake_transcript", ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, md_type, + transcript, sizeof(transcript), + &transcript_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_get_handshake_transcript", ret); goto exit; } - MBEDTLS_SSL_DEBUG_BUF( 4, "handshake hash", transcript, transcript_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "handshake hash", transcript, transcript_len); - ret = ssl_tls13_calc_finished_core( hash_alg, base_key, transcript, dst, actual_len ); - if( ret != 0 ) + ret = ssl_tls13_calc_finished_core(hash_alg, base_key, transcript, dst, actual_len); + if (ret != 0) { goto exit; + } - MBEDTLS_SSL_DEBUG_BUF( 3, "verify_data for finished message", dst, hash_len ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_tls13_calculate_verify_data" ) ); + MBEDTLS_SSL_DEBUG_BUF(3, "verify_data for finished message", dst, hash_len); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= mbedtls_ssl_tls13_calculate_verify_data")); exit: /* Erase handshake secrets */ - mbedtls_platform_zeroize( base_key, base_key_len ); - mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); - return( ret ); + mbedtls_platform_zeroize(base_key, base_key_len); + mbedtls_platform_zeroize(transcript, sizeof(transcript)); + return ret; } -int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, - const psa_algorithm_t hash_alg, - unsigned char const *psk, size_t psk_len, - int psk_type, - unsigned char const *transcript, - unsigned char *result ) +int mbedtls_ssl_tls13_create_psk_binder(mbedtls_ssl_context *ssl, + const psa_algorithm_t hash_alg, + unsigned char const *psk, size_t psk_len, + int psk_type, + unsigned char const *transcript, + unsigned char *result) { int ret = 0; unsigned char binder_key[PSA_MAC_MAX_SIZE]; unsigned char early_secret[PSA_MAC_MAX_SIZE]; - size_t const hash_len = PSA_HASH_LENGTH( hash_alg ); + size_t const hash_len = PSA_HASH_LENGTH(hash_alg); size_t actual_len; #if !defined(MBEDTLS_DEBUG_C) @@ -812,8 +824,9 @@ int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, /* We should never call this function with an unknown hash, * but add an assertion anyway. */ - if( ! PSA_ALG_IS_HASH( hash_alg ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (!PSA_ALG_IS_HASH(hash_alg)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } /* * 0 @@ -826,41 +839,36 @@ int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, * v */ - ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, - NULL, /* Old secret */ - psk, psk_len, /* Input */ - early_secret ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); + ret = mbedtls_ssl_tls13_evolve_secret(hash_alg, + NULL, /* Old secret */ + psk, psk_len, /* Input */ + early_secret); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_evolve_secret", ret); goto exit; } - MBEDTLS_SSL_DEBUG_BUF( 4, "mbedtls_ssl_tls13_create_psk_binder", - early_secret, hash_len ) ; + MBEDTLS_SSL_DEBUG_BUF(4, "mbedtls_ssl_tls13_create_psk_binder", + early_secret, hash_len); - if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) - { - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - early_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( res_binder ), - NULL, 0, MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, - binder_key, hash_len ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Derive Early Secret with 'res binder'" ) ); - } - else - { - ret = mbedtls_ssl_tls13_derive_secret( hash_alg, - early_secret, hash_len, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( ext_binder ), - NULL, 0, MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, - binder_key, hash_len ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Derive Early Secret with 'ext binder'" ) ); + if (psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION) { + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + early_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(res_binder), + NULL, 0, MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, + binder_key, hash_len); + MBEDTLS_SSL_DEBUG_MSG(4, ("Derive Early Secret with 'res binder'")); + } else { + ret = mbedtls_ssl_tls13_derive_secret(hash_alg, + early_secret, hash_len, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(ext_binder), + NULL, 0, MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED, + binder_key, hash_len); + MBEDTLS_SSL_DEBUG_MSG(4, ("Derive Early Secret with 'ext binder'")); } - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_derive_secret", ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_derive_secret", ret); goto exit; } @@ -869,25 +877,26 @@ int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, * but with the BaseKey being the binder_key. */ - ret = ssl_tls13_calc_finished_core( hash_alg, binder_key, transcript, - result, &actual_len ); - if( ret != 0 ) + ret = ssl_tls13_calc_finished_core(hash_alg, binder_key, transcript, + result, &actual_len); + if (ret != 0) { goto exit; + } - MBEDTLS_SSL_DEBUG_BUF( 3, "psk binder", result, actual_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "psk binder", result, actual_len); exit: - mbedtls_platform_zeroize( early_secret, sizeof( early_secret ) ); - mbedtls_platform_zeroize( binder_key, sizeof( binder_key ) ); - return( ret ); + mbedtls_platform_zeroize(early_secret, sizeof(early_secret)); + mbedtls_platform_zeroize(binder_key, sizeof(binder_key)); + return ret; } -int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, - int endpoint, - int ciphersuite, - mbedtls_ssl_key_set const *traffic_keys, - mbedtls_ssl_context *ssl /* DEBUG ONLY */ ) +int mbedtls_ssl_tls13_populate_transform(mbedtls_ssl_transform *transform, + int endpoint, + int ciphersuite, + mbedtls_ssl_key_set const *traffic_keys, + mbedtls_ssl_context *ssl /* DEBUG ONLY */) { #if !defined(MBEDTLS_USE_PSA_CRYPTO) int ret; @@ -912,84 +921,74 @@ int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, (void) ssl; #endif - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite ); - if( ciphersuite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ciphersuite info for %d not found", - ciphersuite ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(ciphersuite); + if (ciphersuite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("ciphersuite info for %d not found", + ciphersuite)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } #if !defined(MBEDTLS_USE_PSA_CRYPTO) - cipher_info = mbedtls_cipher_info_from_type( ciphersuite_info->cipher ); - if( cipher_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "cipher info for %u not found", - ciphersuite_info->cipher ) ); - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + cipher_info = mbedtls_cipher_info_from_type(ciphersuite_info->cipher); + if (cipher_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("cipher info for %u not found", + ciphersuite_info->cipher)); + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* * Setup cipher contexts in target transform */ - if( ( ret = mbedtls_cipher_setup( &transform->cipher_ctx_enc, - cipher_info ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setup", ret ); - return( ret ); + if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_enc, + cipher_info)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret); + return ret; } - if( ( ret = mbedtls_cipher_setup( &transform->cipher_ctx_dec, - cipher_info ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setup", ret ); - return( ret ); + if ((ret = mbedtls_cipher_setup(&transform->cipher_ctx_dec, + cipher_info)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setup", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_SRV_C) - if( endpoint == MBEDTLS_SSL_IS_SERVER ) - { + if (endpoint == MBEDTLS_SSL_IS_SERVER) { key_enc = traffic_keys->server_write_key; key_dec = traffic_keys->client_write_key; iv_enc = traffic_keys->server_write_iv; iv_dec = traffic_keys->client_write_iv; - } - else + } else #endif /* MBEDTLS_SSL_SRV_C */ #if defined(MBEDTLS_SSL_CLI_C) - if( endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (endpoint == MBEDTLS_SSL_IS_CLIENT) { key_enc = traffic_keys->client_write_key; key_dec = traffic_keys->server_write_key; iv_enc = traffic_keys->client_write_iv; iv_dec = traffic_keys->server_write_iv; - } - else + } else #endif /* MBEDTLS_SSL_CLI_C */ { /* should not happen */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - memcpy( transform->iv_enc, iv_enc, traffic_keys->iv_len ); - memcpy( transform->iv_dec, iv_dec, traffic_keys->iv_len ); + memcpy(transform->iv_enc, iv_enc, traffic_keys->iv_len); + memcpy(transform->iv_dec, iv_dec, traffic_keys->iv_len); #if !defined(MBEDTLS_USE_PSA_CRYPTO) - if( ( ret = mbedtls_cipher_setkey( &transform->cipher_ctx_enc, - key_enc, cipher_info->key_bitlen, - MBEDTLS_ENCRYPT ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setkey", ret ); - return( ret ); + if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_enc, + key_enc, cipher_info->key_bitlen, + MBEDTLS_ENCRYPT)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret); + return ret; } - if( ( ret = mbedtls_cipher_setkey( &transform->cipher_ctx_dec, - key_dec, cipher_info->key_bitlen, - MBEDTLS_DECRYPT ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_setkey", ret ); - return( ret ); + if ((ret = mbedtls_cipher_setkey(&transform->cipher_ctx_dec, + key_dec, cipher_info->key_bitlen, + MBEDTLS_DECRYPT)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_cipher_setkey", ret); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -997,10 +996,11 @@ int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, * Setup other fields in SSL transform */ - if( ( ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ) != 0 ) + if ((ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG) != 0) { transform->taglen = 8; - else + } else { transform->taglen = 16; + } transform->ivlen = traffic_keys->iv_len; transform->maclen = 0; @@ -1018,53 +1018,49 @@ int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, /* * Setup psa keys and alg */ - if( ( status = mbedtls_ssl_cipher_to_psa( ciphersuite_info->cipher, - transform->taglen, - &alg, - &key_type, - &key_bits ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_cipher_to_psa", psa_ssl_status_to_mbedtls( status ) ); - return( psa_ssl_status_to_mbedtls( status ) ); + if ((status = mbedtls_ssl_cipher_to_psa(ciphersuite_info->cipher, + transform->taglen, + &alg, + &key_type, + &key_bits)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_cipher_to_psa", psa_ssl_status_to_mbedtls(status)); + return psa_ssl_status_to_mbedtls(status); } transform->psa_alg = alg; - if ( alg != MBEDTLS_SSL_NULL_CIPHER ) - { - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + if (alg != MBEDTLS_SSL_NULL_CIPHER) { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - if( ( status = psa_import_key( &attributes, - key_enc, - PSA_BITS_TO_BYTES( key_bits ), - &transform->psa_key_enc ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_key", psa_ssl_status_to_mbedtls( status ) ); - return( psa_ssl_status_to_mbedtls( status ) ); + if ((status = psa_import_key(&attributes, + key_enc, + PSA_BITS_TO_BYTES(key_bits), + &transform->psa_key_enc)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_key", psa_ssl_status_to_mbedtls(status)); + return psa_ssl_status_to_mbedtls(status); } - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); - if( ( status = psa_import_key( &attributes, - key_dec, - PSA_BITS_TO_BYTES( key_bits ), - &transform->psa_key_dec ) ) != PSA_SUCCESS ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "psa_import_key", psa_ssl_status_to_mbedtls( status ) ); - return( psa_ssl_status_to_mbedtls( status ) ); + if ((status = psa_import_key(&attributes, + key_dec, + PSA_BITS_TO_BYTES(key_bits), + &transform->psa_key_dec)) != PSA_SUCCESS) { + MBEDTLS_SSL_DEBUG_RET(1, "psa_import_key", psa_ssl_status_to_mbedtls(status)); + return psa_ssl_status_to_mbedtls(status); } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_get_cipher_key_info( - const mbedtls_ssl_ciphersuite_t *ciphersuite_info, - size_t *key_len, size_t *iv_len ) + const mbedtls_ssl_ciphersuite_t *ciphersuite_info, + size_t *key_len, size_t *iv_len) { psa_key_type_t key_type; psa_algorithm_t alg; @@ -1072,17 +1068,19 @@ static int ssl_tls13_get_cipher_key_info( size_t key_bits; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - if( ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ) + if (ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG) { taglen = 8; - else + } else { taglen = 16; + } - status = mbedtls_ssl_cipher_to_psa( ciphersuite_info->cipher, taglen, - &alg, &key_type, &key_bits ); - if( status != PSA_SUCCESS ) - return psa_ssl_status_to_mbedtls( status ); + status = mbedtls_ssl_cipher_to_psa(ciphersuite_info->cipher, taglen, + &alg, &key_type, &key_bits); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } - *key_len = PSA_BITS_TO_BYTES( key_bits ); + *key_len = PSA_BITS_TO_BYTES(key_bits); /* TLS 1.3 only have AEAD ciphers, IV length is unconditionally 12 bytes */ *iv_len = 12; @@ -1101,8 +1099,8 @@ static int ssl_tls13_get_cipher_key_info( * a key for server early traffic. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys ) +static int ssl_tls13_generate_early_key(mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; @@ -1117,51 +1115,47 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; mbedtls_ssl_tls13_early_secrets *tls13_early_secrets = &handshake->tls13_early_secrets; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> ssl_tls13_generate_early_key" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_tls13_generate_early_key")); - ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); + ret = ssl_tls13_get_cipher_key_info(ciphersuite_info, &key_len, &iv_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_get_cipher_key_info", ret); goto cleanup; } md_type = ciphersuite_info->mac; - hash_alg = mbedtls_hash_info_psa_from_md( ciphersuite_info->mac ); - hash_len = PSA_HASH_LENGTH( hash_alg ); + hash_alg = mbedtls_hash_info_psa_from_md(ciphersuite_info->mac); + hash_len = PSA_HASH_LENGTH(hash_alg); - ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, - transcript, - sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_get_handshake_transcript", - ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, md_type, + transcript, + sizeof(transcript), + &transcript_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_get_handshake_transcript", + ret); goto cleanup; } ret = mbedtls_ssl_tls13_derive_early_secrets( - hash_alg, handshake->tls13_master_secrets.early, - transcript, transcript_len, tls13_early_secrets ); - if( ret != 0 ) - { + hash_alg, handshake->tls13_master_secrets.early, + transcript, transcript_len, tls13_early_secrets); + if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "mbedtls_ssl_tls13_derive_early_secrets", ret ); + 1, "mbedtls_ssl_tls13_derive_early_secrets", ret); goto cleanup; } MBEDTLS_SSL_DEBUG_BUF( 4, "Client early traffic secret", - tls13_early_secrets->client_early_traffic_secret, hash_len ); + tls13_early_secrets->client_early_traffic_secret, hash_len); /* * Export client handshake traffic secret */ - if( ssl->f_export_keys != NULL ) - { + if (ssl->f_export_keys != NULL) { ssl->f_export_keys( ssl->p_export_keys, MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_EARLY_SECRET, @@ -1169,41 +1163,40 @@ static int ssl_tls13_generate_early_key( mbedtls_ssl_context *ssl, hash_len, handshake->randbytes, handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */); } ret = ssl_tls13_make_traffic_key( - hash_alg, - tls13_early_secrets->client_early_traffic_secret, - hash_len, traffic_keys->client_write_key, key_len, - traffic_keys->client_write_iv, iv_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_make_traffic_key", ret ); + hash_alg, + tls13_early_secrets->client_early_traffic_secret, + hash_len, traffic_keys->client_write_key, key_len, + traffic_keys->client_write_iv, iv_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_make_traffic_key", ret); goto cleanup; } traffic_keys->key_len = key_len; traffic_keys->iv_len = iv_len; - MBEDTLS_SSL_DEBUG_BUF( 4, "client early write_key", - traffic_keys->client_write_key, - traffic_keys->key_len); + MBEDTLS_SSL_DEBUG_BUF(4, "client early write_key", + traffic_keys->client_write_key, + traffic_keys->key_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "client early write_iv", - traffic_keys->client_write_iv, - traffic_keys->iv_len); + MBEDTLS_SSL_DEBUG_BUF(4, "client early write_iv", + traffic_keys->client_write_iv, + traffic_keys->iv_len); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= ssl_tls13_generate_early_key" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_tls13_generate_early_key")); cleanup: /* Erase secret and transcript */ mbedtls_platform_zeroize( - tls13_early_secrets, sizeof( mbedtls_ssl_tls13_early_secrets ) ); - mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); - return( ret ); + tls13_early_secrets, sizeof(mbedtls_ssl_tls13_early_secrets)); + mbedtls_platform_zeroize(transcript, sizeof(transcript)); + return ret; } -int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_compute_early_transform(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_key_set traffic_keys; @@ -1212,44 +1205,42 @@ int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ) /* Next evolution in key schedule: Establish early_data secret and * key material. */ - ret = ssl_tls13_generate_early_key( ssl, &traffic_keys ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_generate_early_key", - ret ); + ret = ssl_tls13_generate_early_key(ssl, &traffic_keys); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_generate_early_key", + ret); goto cleanup; } - transform_earlydata = mbedtls_calloc( 1, sizeof( mbedtls_ssl_transform ) ); - if( transform_earlydata == NULL ) - { + transform_earlydata = mbedtls_calloc(1, sizeof(mbedtls_ssl_transform)); + if (transform_earlydata == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto cleanup; } ret = mbedtls_ssl_tls13_populate_transform( - transform_earlydata, - ssl->conf->endpoint, - ssl->session_negotiate->ciphersuite, - &traffic_keys, - ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_populate_transform", ret ); + transform_earlydata, + ssl->conf->endpoint, + ssl->session_negotiate->ciphersuite, + &traffic_keys, + ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_populate_transform", ret); goto cleanup; } handshake->transform_earlydata = transform_earlydata; cleanup: - mbedtls_platform_zeroize( &traffic_keys, sizeof( traffic_keys ) ); - if( ret != 0 ) - mbedtls_free( transform_earlydata ); + mbedtls_platform_zeroize(&traffic_keys, sizeof(traffic_keys)); + if (ret != 0) { + mbedtls_free(transform_earlydata); + } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_EARLY_DATA */ -int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; psa_algorithm_t hash_alg; @@ -1257,48 +1248,44 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ) unsigned char *psk = NULL; size_t psk_len = 0; - if( handshake->ciphersuite_info == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "cipher suite info not found" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + if (handshake->ciphersuite_info == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("cipher suite info not found")); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); + hash_alg = mbedtls_hash_info_psa_from_md(handshake->ciphersuite_info->mac); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) - { - ret = mbedtls_ssl_tls13_export_handshake_psk( ssl, &psk, &psk_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_export_handshake_psk", - ret ); - return( ret ); + if (mbedtls_ssl_tls13_key_exchange_mode_with_psk(ssl)) { + ret = mbedtls_ssl_tls13_export_handshake_psk(ssl, &psk, &psk_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_export_handshake_psk", + ret); + return ret; } } #endif - ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, NULL, psk, psk_len, - handshake->tls13_master_secrets.early ); + ret = mbedtls_ssl_tls13_evolve_secret(hash_alg, NULL, psk, psk_len, + handshake->tls13_master_secrets.early); #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - mbedtls_free( (void*)psk ); + mbedtls_free((void *) psk); #endif - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); - return( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_evolve_secret", ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 4, "mbedtls_ssl_tls13_key_schedule_stage_early", - handshake->tls13_master_secrets.early, - PSA_HASH_LENGTH( hash_alg ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_BUF(4, "mbedtls_ssl_tls13_key_schedule_stage_early", + handshake->tls13_master_secrets.early, + PSA_HASH_LENGTH(hash_alg)); + return 0; } /* mbedtls_ssl_tls13_generate_handshake_keys() generates keys necessary for * protecting the handshake messages, as described in Section 7 of TLS 1.3. */ -int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys ) +int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; @@ -1313,110 +1300,105 @@ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; mbedtls_ssl_tls13_handshake_secrets *tls13_hs_secrets = &handshake->tls13_hs_secrets; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> mbedtls_ssl_tls13_generate_handshake_keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> mbedtls_ssl_tls13_generate_handshake_keys")); - ret = ssl_tls13_get_cipher_key_info( ciphersuite_info, &key_len, &iv_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); + ret = ssl_tls13_get_cipher_key_info(ciphersuite_info, &key_len, &iv_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_get_cipher_key_info", ret); return ret; } md_type = ciphersuite_info->mac; - hash_alg = mbedtls_hash_info_psa_from_md( ciphersuite_info->mac ); - hash_len = PSA_HASH_LENGTH( hash_alg ); + hash_alg = mbedtls_hash_info_psa_from_md(ciphersuite_info->mac); + hash_len = PSA_HASH_LENGTH(hash_alg); - ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, - transcript, - sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_get_handshake_transcript", - ret ); - return( ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, md_type, + transcript, + sizeof(transcript), + &transcript_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_get_handshake_transcript", + ret); + return ret; } - ret = mbedtls_ssl_tls13_derive_handshake_secrets( hash_alg, - handshake->tls13_master_secrets.handshake, - transcript, transcript_len, tls13_hs_secrets ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_derive_handshake_secrets", - ret ); - return( ret ); + ret = mbedtls_ssl_tls13_derive_handshake_secrets(hash_alg, + handshake->tls13_master_secrets.handshake, + transcript, transcript_len, tls13_hs_secrets); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_derive_handshake_secrets", + ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 4, "Client handshake traffic secret", - tls13_hs_secrets->client_handshake_traffic_secret, - hash_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "Server handshake traffic secret", - tls13_hs_secrets->server_handshake_traffic_secret, - hash_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "Client handshake traffic secret", + tls13_hs_secrets->client_handshake_traffic_secret, + hash_len); + MBEDTLS_SSL_DEBUG_BUF(4, "Server handshake traffic secret", + tls13_hs_secrets->server_handshake_traffic_secret, + hash_len); /* * Export client handshake traffic secret */ - if( ssl->f_export_keys != NULL ) - { - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET, - tls13_hs_secrets->client_handshake_traffic_secret, - hash_len, - handshake->randbytes, - handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); + if (ssl->f_export_keys != NULL) { + ssl->f_export_keys(ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_HANDSHAKE_TRAFFIC_SECRET, + tls13_hs_secrets->client_handshake_traffic_secret, + hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */); - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET, - tls13_hs_secrets->server_handshake_traffic_secret, - hash_len, - handshake->randbytes, - handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */ ); + ssl->f_export_keys(ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_HANDSHAKE_TRAFFIC_SECRET, + tls13_hs_secrets->server_handshake_traffic_secret, + hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: FIX! */); } - ret = mbedtls_ssl_tls13_make_traffic_keys( hash_alg, - tls13_hs_secrets->client_handshake_traffic_secret, - tls13_hs_secrets->server_handshake_traffic_secret, - hash_len, key_len, iv_len, traffic_keys ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); + ret = mbedtls_ssl_tls13_make_traffic_keys(hash_alg, + tls13_hs_secrets->client_handshake_traffic_secret, + tls13_hs_secrets->server_handshake_traffic_secret, + hash_len, key_len, iv_len, traffic_keys); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_make_traffic_keys", ret); goto exit; } - MBEDTLS_SSL_DEBUG_BUF( 4, "client_handshake write_key", - traffic_keys->client_write_key, - traffic_keys->key_len); + MBEDTLS_SSL_DEBUG_BUF(4, "client_handshake write_key", + traffic_keys->client_write_key, + traffic_keys->key_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "server_handshake write_key", - traffic_keys->server_write_key, - traffic_keys->key_len); + MBEDTLS_SSL_DEBUG_BUF(4, "server_handshake write_key", + traffic_keys->server_write_key, + traffic_keys->key_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "client_handshake write_iv", - traffic_keys->client_write_iv, - traffic_keys->iv_len); + MBEDTLS_SSL_DEBUG_BUF(4, "client_handshake write_iv", + traffic_keys->client_write_iv, + traffic_keys->iv_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "server_handshake write_iv", - traffic_keys->server_write_iv, - traffic_keys->iv_len); + MBEDTLS_SSL_DEBUG_BUF(4, "server_handshake write_iv", + traffic_keys->server_write_iv, + traffic_keys->iv_len); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= mbedtls_ssl_tls13_generate_handshake_keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= mbedtls_ssl_tls13_generate_handshake_keys")); exit: - return( ret ); + return ret; } -int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; psa_algorithm_t const hash_alg = mbedtls_hash_info_psa_from_md( - handshake->ciphersuite_info->mac ); + handshake->ciphersuite_info->mac); unsigned char *shared_secret = NULL; size_t shared_secret_len = 0; @@ -1426,52 +1408,48 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) * client_handshake_traffic_secret and server_handshake_traffic_secret * are derived in the handshake secret derivation stage. */ - if( mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral( ssl ) ) - { - if( mbedtls_ssl_tls13_named_group_is_ecdhe( handshake->offered_group_id ) ) - { + if (mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral(ssl)) { + if (mbedtls_ssl_tls13_named_group_is_ecdhe(handshake->offered_group_id)) { #if defined(MBEDTLS_ECDH_C) - /* Compute ECDH shared secret. */ + /* Compute ECDH shared secret. */ psa_status_t status = PSA_ERROR_GENERIC_ERROR; psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT; - status = psa_get_key_attributes( handshake->ecdh_psa_privkey, - &key_attributes ); - if( status != PSA_SUCCESS ) - ret = psa_ssl_status_to_mbedtls( status ); + status = psa_get_key_attributes(handshake->ecdh_psa_privkey, + &key_attributes); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + } shared_secret_len = PSA_BITS_TO_BYTES( - psa_get_key_bits( &key_attributes ) ); - shared_secret = mbedtls_calloc( 1, shared_secret_len ); - if( shared_secret == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + psa_get_key_bits(&key_attributes)); + shared_secret = mbedtls_calloc(1, shared_secret_len); + if (shared_secret == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } status = psa_raw_key_agreement( - PSA_ALG_ECDH, handshake->ecdh_psa_privkey, - handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, - shared_secret, shared_secret_len, &shared_secret_len ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_raw_key_agreement", ret ); + PSA_ALG_ECDH, handshake->ecdh_psa_privkey, + handshake->ecdh_psa_peerkey, handshake->ecdh_psa_peerkey_len, + shared_secret, shared_secret_len, &shared_secret_len); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_raw_key_agreement", ret); goto cleanup; } - status = psa_destroy_key( handshake->ecdh_psa_privkey ); - if( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); - MBEDTLS_SSL_DEBUG_RET( 1, "psa_destroy_key", ret ); + status = psa_destroy_key(handshake->ecdh_psa_privkey); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); + MBEDTLS_SSL_DEBUG_RET(1, "psa_destroy_key", ret); goto cleanup; } handshake->ecdh_psa_privkey = MBEDTLS_SVC_KEY_ID_INIT; #endif /* MBEDTLS_ECDH_C */ - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Group not supported." ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("Group not supported.")); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_EPHEMERAL_ENABLED */ @@ -1479,36 +1457,34 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ) /* * Compute the Handshake Secret */ - ret = mbedtls_ssl_tls13_evolve_secret( hash_alg, - handshake->tls13_master_secrets.early, - shared_secret, shared_secret_len, - handshake->tls13_master_secrets.handshake ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_evolve_secret", ret ); + ret = mbedtls_ssl_tls13_evolve_secret(hash_alg, + handshake->tls13_master_secrets.early, + shared_secret, shared_secret_len, + handshake->tls13_master_secrets.handshake); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_evolve_secret", ret); goto cleanup; } - MBEDTLS_SSL_DEBUG_BUF( 4, "Handshake secret", - handshake->tls13_master_secrets.handshake, - PSA_HASH_LENGTH( hash_alg ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "Handshake secret", + handshake->tls13_master_secrets.handshake, + PSA_HASH_LENGTH(hash_alg)); cleanup: - if( shared_secret != NULL ) - { - mbedtls_platform_zeroize( shared_secret, shared_secret_len ); - mbedtls_free( shared_secret ); + if (shared_secret != NULL) { + mbedtls_platform_zeroize(shared_secret, shared_secret_len); + mbedtls_free(shared_secret); } - return( ret ); + return ret; } /* Generate application traffic keys since any records following a 1-RTT Finished message * MUST be encrypted under the application traffic key. */ int mbedtls_ssl_tls13_generate_application_keys( - mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys ) + mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1530,108 +1506,105 @@ int mbedtls_ssl_tls13_generate_application_keys( /* Variables relating to the cipher for the chosen ciphersuite. */ size_t key_len, iv_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> derive application traffic keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> derive application traffic keys")); /* Extract basic information about hash and ciphersuite */ - ret = ssl_tls13_get_cipher_key_info( handshake->ciphersuite_info, - &key_len, &iv_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_get_cipher_key_info", ret ); + ret = ssl_tls13_get_cipher_key_info(handshake->ciphersuite_info, + &key_len, &iv_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_get_cipher_key_info", ret); goto cleanup; } md_type = handshake->ciphersuite_info->mac; - hash_alg = mbedtls_hash_info_psa_from_md( handshake->ciphersuite_info->mac ); - hash_len = PSA_HASH_LENGTH( hash_alg ); + hash_alg = mbedtls_hash_info_psa_from_md(handshake->ciphersuite_info->mac); + hash_len = PSA_HASH_LENGTH(hash_alg); /* Compute current handshake transcript. It's the caller's responsibility * to call this at the right time, that is, after the ServerFinished. */ - ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, - transcript, sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) + ret = mbedtls_ssl_get_handshake_transcript(ssl, md_type, + transcript, sizeof(transcript), + &transcript_len); + if (ret != 0) { goto cleanup; + } /* Compute application secrets from master secret and transcript hash. */ - ret = mbedtls_ssl_tls13_derive_application_secrets( hash_alg, - handshake->tls13_master_secrets.app, - transcript, transcript_len, - app_secrets ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_derive_application_secrets", ret ); + ret = mbedtls_ssl_tls13_derive_application_secrets(hash_alg, + handshake->tls13_master_secrets.app, + transcript, transcript_len, + app_secrets); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_derive_application_secrets", ret); goto cleanup; } /* Derive first epoch of IV + Key for application traffic. */ - ret = mbedtls_ssl_tls13_make_traffic_keys( hash_alg, - app_secrets->client_application_traffic_secret_N, - app_secrets->server_application_traffic_secret_N, - hash_len, key_len, iv_len, traffic_keys ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_make_traffic_keys", ret ); + ret = mbedtls_ssl_tls13_make_traffic_keys(hash_alg, + app_secrets->client_application_traffic_secret_N, + app_secrets->server_application_traffic_secret_N, + hash_len, key_len, iv_len, traffic_keys); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_make_traffic_keys", ret); goto cleanup; } - MBEDTLS_SSL_DEBUG_BUF( 4, "Client application traffic secret", - app_secrets->client_application_traffic_secret_N, - hash_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "Client application traffic secret", + app_secrets->client_application_traffic_secret_N, + hash_len); - MBEDTLS_SSL_DEBUG_BUF( 4, "Server application traffic secret", - app_secrets->server_application_traffic_secret_N, - hash_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "Server application traffic secret", + app_secrets->server_application_traffic_secret_N, + hash_len); /* * Export client/server application traffic secret 0 */ - if( ssl->f_export_keys != NULL ) - { - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET, - app_secrets->client_application_traffic_secret_N, hash_len, - handshake->randbytes, - handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: this should be replaced by - a new constant for TLS 1.3! */ ); + if (ssl->f_export_keys != NULL) { + ssl->f_export_keys(ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_CLIENT_APPLICATION_TRAFFIC_SECRET, + app_secrets->client_application_traffic_secret_N, hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: this should be replaced by + a new constant for TLS 1.3! */); - ssl->f_export_keys( ssl->p_export_keys, - MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET, - app_secrets->server_application_traffic_secret_N, hash_len, - handshake->randbytes, - handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, - MBEDTLS_SSL_TLS_PRF_NONE /* TODO: this should be replaced by - a new constant for TLS 1.3! */ ); + ssl->f_export_keys(ssl->p_export_keys, + MBEDTLS_SSL_KEY_EXPORT_TLS1_3_SERVER_APPLICATION_TRAFFIC_SECRET, + app_secrets->server_application_traffic_secret_N, hash_len, + handshake->randbytes, + handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN, + MBEDTLS_SSL_TLS_PRF_NONE /* TODO: this should be replaced by + a new constant for TLS 1.3! */); } - MBEDTLS_SSL_DEBUG_BUF( 4, "client application_write_key:", - traffic_keys->client_write_key, key_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "server application write key", - traffic_keys->server_write_key, key_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "client application write IV", - traffic_keys->client_write_iv, iv_len ); - MBEDTLS_SSL_DEBUG_BUF( 4, "server application write IV", - traffic_keys->server_write_iv, iv_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "client application_write_key:", + traffic_keys->client_write_key, key_len); + MBEDTLS_SSL_DEBUG_BUF(4, "server application write key", + traffic_keys->server_write_key, key_len); + MBEDTLS_SSL_DEBUG_BUF(4, "client application write IV", + traffic_keys->client_write_iv, iv_len); + MBEDTLS_SSL_DEBUG_BUF(4, "server application write IV", + traffic_keys->server_write_iv, iv_len); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= derive application traffic keys" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= derive application traffic keys")); - cleanup: +cleanup: /* randbytes is not used again */ - mbedtls_platform_zeroize( ssl->handshake->randbytes, - sizeof( ssl->handshake->randbytes ) ); + mbedtls_platform_zeroize(ssl->handshake->randbytes, + sizeof(ssl->handshake->randbytes)); - mbedtls_platform_zeroize( transcript, sizeof( transcript ) ); - return( ret ); + mbedtls_platform_zeroize(transcript, sizeof(transcript)); + return ret; } -int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_compute_handshake_transform(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_key_set traffic_keys; @@ -1639,52 +1612,49 @@ int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ) mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* Compute handshake secret */ - ret = mbedtls_ssl_tls13_key_schedule_stage_handshake( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_derive_master_secret", ret ); + ret = mbedtls_ssl_tls13_key_schedule_stage_handshake(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_derive_master_secret", ret); goto cleanup; } /* Next evolution in key schedule: Establish handshake secret and * key material. */ - ret = mbedtls_ssl_tls13_generate_handshake_keys( ssl, &traffic_keys ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_generate_handshake_keys", - ret ); + ret = mbedtls_ssl_tls13_generate_handshake_keys(ssl, &traffic_keys); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_generate_handshake_keys", + ret); goto cleanup; } - transform_handshake = mbedtls_calloc( 1, sizeof( mbedtls_ssl_transform ) ); - if( transform_handshake == NULL ) - { + transform_handshake = mbedtls_calloc(1, sizeof(mbedtls_ssl_transform)); + if (transform_handshake == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto cleanup; } ret = mbedtls_ssl_tls13_populate_transform( - transform_handshake, - ssl->conf->endpoint, - ssl->session_negotiate->ciphersuite, - &traffic_keys, - ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_populate_transform", ret ); + transform_handshake, + ssl->conf->endpoint, + ssl->session_negotiate->ciphersuite, + &traffic_keys, + ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_populate_transform", ret); goto cleanup; } handshake->transform_handshake = transform_handshake; cleanup: - mbedtls_platform_zeroize( &traffic_keys, sizeof( traffic_keys ) ); - if( ret != 0 ) - mbedtls_free( transform_handshake ); + mbedtls_platform_zeroize(&traffic_keys, sizeof(traffic_keys)); + if (ret != 0) { + mbedtls_free(transform_handshake); + } - return( ret ); + return ret; } -int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_compute_resumption_master_secret(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; @@ -1692,77 +1662,75 @@ int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl unsigned char transcript[MBEDTLS_TLS1_3_MD_MAX_SIZE]; size_t transcript_len; - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "=> mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("=> mbedtls_ssl_tls13_compute_resumption_master_secret")); md_type = handshake->ciphersuite_info->mac; - ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type, - transcript, sizeof( transcript ), - &transcript_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_get_handshake_transcript(ssl, md_type, + transcript, sizeof(transcript), + &transcript_len); + if (ret != 0) { + return ret; + } ret = mbedtls_ssl_tls13_derive_resumption_master_secret( - mbedtls_psa_translate_md( md_type ), - handshake->tls13_master_secrets.app, - transcript, transcript_len, - &ssl->session_negotiate->app_secrets ); - if( ret != 0 ) - return( ret ); + mbedtls_psa_translate_md(md_type), + handshake->tls13_master_secrets.app, + transcript, transcript_len, + &ssl->session_negotiate->app_secrets); + if (ret != 0) { + return ret; + } /* Erase master secrets */ - mbedtls_platform_zeroize( &handshake->tls13_master_secrets, - sizeof( handshake->tls13_master_secrets ) ); + mbedtls_platform_zeroize(&handshake->tls13_master_secrets, + sizeof(handshake->tls13_master_secrets)); - MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret", - ssl->session_negotiate->app_secrets.resumption_master_secret, - PSA_HASH_LENGTH( mbedtls_psa_translate_md( md_type ) ) ) ; + MBEDTLS_SSL_DEBUG_BUF(4, "Resumption master secret", + ssl->session_negotiate->app_secrets.resumption_master_secret, + PSA_HASH_LENGTH(mbedtls_psa_translate_md(md_type))); - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "<= mbedtls_ssl_tls13_compute_resumption_master_secret" ) ); - return( 0 ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("<= mbedtls_ssl_tls13_compute_resumption_master_secret")); + return 0; } -int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_compute_application_transform(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_key_set traffic_keys; mbedtls_ssl_transform *transform_application = NULL; - ret = mbedtls_ssl_tls13_key_schedule_stage_application( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_key_schedule_stage_application", ret ); + ret = mbedtls_ssl_tls13_key_schedule_stage_application(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_key_schedule_stage_application", ret); goto cleanup; } - ret = mbedtls_ssl_tls13_generate_application_keys( ssl, &traffic_keys ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_generate_application_keys", ret ); + ret = mbedtls_ssl_tls13_generate_application_keys(ssl, &traffic_keys); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_generate_application_keys", ret); goto cleanup; } transform_application = - mbedtls_calloc( 1, sizeof( mbedtls_ssl_transform ) ); - if( transform_application == NULL ) - { + mbedtls_calloc(1, sizeof(mbedtls_ssl_transform)); + if (transform_application == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto cleanup; } ret = mbedtls_ssl_tls13_populate_transform( - transform_application, - ssl->conf->endpoint, - ssl->session_negotiate->ciphersuite, - &traffic_keys, - ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_populate_transform", ret ); + transform_application, + ssl->conf->endpoint, + ssl->session_negotiate->ciphersuite, + &traffic_keys, + ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_populate_transform", ret); goto cleanup; } @@ -1770,18 +1738,17 @@ int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ) cleanup: - mbedtls_platform_zeroize( &traffic_keys, sizeof( traffic_keys ) ); - if( ret != 0 ) - { - mbedtls_free( transform_application ); + mbedtls_platform_zeroize(&traffic_keys, sizeof(traffic_keys)); + if (ret != 0) { + mbedtls_free(transform_application); } - return( ret ); + return ret; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) -int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, - unsigned char **psk, - size_t *psk_len ) +int mbedtls_ssl_tls13_export_handshake_psk(mbedtls_ssl_context *ssl, + unsigned char **psk, + size_t *psk_len) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_key_attributes_t key_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1790,36 +1757,38 @@ int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, *psk_len = 0; *psk = NULL; - if( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - - status = psa_get_key_attributes( ssl->handshake->psk_opaque, &key_attributes ); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); - - *psk_len = PSA_BITS_TO_BYTES( psa_get_key_bits( &key_attributes ) ); - *psk = mbedtls_calloc( 1, *psk_len ); - if( *psk == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - - status = psa_export_key( ssl->handshake->psk_opaque, - (uint8_t *)*psk, *psk_len, psk_len ); - if( status != PSA_SUCCESS ) - { - mbedtls_free( (void *)*psk ); - *psk = NULL; - return( psa_ssl_status_to_mbedtls( status ) ); + if (mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - return( 0 ); + + status = psa_get_key_attributes(ssl->handshake->psk_opaque, &key_attributes); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } + + *psk_len = PSA_BITS_TO_BYTES(psa_get_key_bits(&key_attributes)); + *psk = mbedtls_calloc(1, *psk_len); + if (*psk == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } + + status = psa_export_key(ssl->handshake->psk_opaque, + (uint8_t *) *psk, *psk_len, psk_len); + if (status != PSA_SUCCESS) { + mbedtls_free((void *) *psk); + *psk = NULL; + return psa_ssl_status_to_mbedtls(status); + } + return 0; #else *psk = ssl->handshake->psk; *psk_len = ssl->handshake->psk_len; - if( *psk == NULL ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - return( 0 ); + if (*psk == NULL) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } + return 0; #endif /* !MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index fc64737cd..d4f2b4024 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -23,26 +23,26 @@ * the point of use. See e.g. the definition of mbedtls_ssl_tls13_labels_union * below. */ #define MBEDTLS_SSL_TLS1_3_LABEL_LIST \ - MBEDTLS_SSL_TLS1_3_LABEL( finished , "finished" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( resumption , "resumption" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( traffic_upd , "traffic upd" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( exporter , "exporter" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( key , "key" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( iv , "iv" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( c_hs_traffic, "c hs traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( c_ap_traffic, "c ap traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( c_e_traffic , "c e traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( s_hs_traffic, "s hs traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( s_ap_traffic, "s ap traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( s_e_traffic , "s e traffic" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( e_exp_master, "e exp master" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( res_master , "res master" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( exp_master , "exp master" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( ext_binder , "ext binder" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( res_binder , "res binder" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( derived , "derived" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( client_cv , "TLS 1.3, client CertificateVerify" ) \ - MBEDTLS_SSL_TLS1_3_LABEL( server_cv , "TLS 1.3, server CertificateVerify" ) + MBEDTLS_SSL_TLS1_3_LABEL(finished, "finished") \ + MBEDTLS_SSL_TLS1_3_LABEL(resumption, "resumption") \ + MBEDTLS_SSL_TLS1_3_LABEL(traffic_upd, "traffic upd") \ + MBEDTLS_SSL_TLS1_3_LABEL(exporter, "exporter") \ + MBEDTLS_SSL_TLS1_3_LABEL(key, "key") \ + MBEDTLS_SSL_TLS1_3_LABEL(iv, "iv") \ + MBEDTLS_SSL_TLS1_3_LABEL(c_hs_traffic, "c hs traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(c_ap_traffic, "c ap traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(c_e_traffic, "c e traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(s_hs_traffic, "s hs traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(s_ap_traffic, "s ap traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(s_e_traffic, "s e traffic") \ + MBEDTLS_SSL_TLS1_3_LABEL(e_exp_master, "e exp master") \ + MBEDTLS_SSL_TLS1_3_LABEL(res_master, "res master") \ + MBEDTLS_SSL_TLS1_3_LABEL(exp_master, "exp master") \ + MBEDTLS_SSL_TLS1_3_LABEL(ext_binder, "ext binder") \ + MBEDTLS_SSL_TLS1_3_LABEL(res_binder, "res binder") \ + MBEDTLS_SSL_TLS1_3_LABEL(derived, "derived") \ + MBEDTLS_SSL_TLS1_3_LABEL(client_cv, "TLS 1.3, client CertificateVerify") \ + MBEDTLS_SSL_TLS1_3_LABEL(server_cv, "TLS 1.3, server CertificateVerify") #define MBEDTLS_SSL_TLS1_3_CONTEXT_UNHASHED 0 #define MBEDTLS_SSL_TLS1_3_CONTEXT_HASHED 1 @@ -52,30 +52,28 @@ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) -#define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ - const unsigned char name [ sizeof(string) - 1 ]; +#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ + const unsigned char name [sizeof(string) - 1]; -union mbedtls_ssl_tls13_labels_union -{ +union mbedtls_ssl_tls13_labels_union { MBEDTLS_SSL_TLS1_3_LABEL_LIST }; -struct mbedtls_ssl_tls13_labels_struct -{ +struct mbedtls_ssl_tls13_labels_struct { MBEDTLS_SSL_TLS1_3_LABEL_LIST }; #undef MBEDTLS_SSL_TLS1_3_LABEL extern const struct mbedtls_ssl_tls13_labels_struct mbedtls_ssl_tls13_labels; -#define MBEDTLS_SSL_TLS1_3_LBL_LEN( LABEL ) \ +#define MBEDTLS_SSL_TLS1_3_LBL_LEN(LABEL) \ sizeof(mbedtls_ssl_tls13_labels.LABEL) -#define MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( LABEL ) \ +#define MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(LABEL) \ mbedtls_ssl_tls13_labels.LABEL, \ - MBEDTLS_SSL_TLS1_3_LBL_LEN( LABEL ) + MBEDTLS_SSL_TLS1_3_LBL_LEN(LABEL) #define MBEDTLS_SSL_TLS1_3_KEY_SCHEDULE_MAX_LABEL_LEN \ - sizeof( union mbedtls_ssl_tls13_labels_union ) + sizeof(union mbedtls_ssl_tls13_labels_union) /* The maximum length of HKDF contexts used in the TLS 1.3 standard. * Since contexts are always hashes of message transcripts, this can @@ -123,11 +121,11 @@ extern const struct mbedtls_ssl_tls13_labels_struct mbedtls_ssl_tls13_labels; MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_hkdf_expand_label( - psa_algorithm_t hash_alg, - const unsigned char *secret, size_t secret_len, - const unsigned char *label, size_t label_len, - const unsigned char *ctx, size_t ctx_len, - unsigned char *buf, size_t buf_len ); + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + const unsigned char *label, size_t label_len, + const unsigned char *ctx, size_t ctx_len, + unsigned char *buf, size_t buf_len); /** * \brief This function is part of the TLS 1.3 key schedule. @@ -162,11 +160,11 @@ int mbedtls_ssl_tls13_hkdf_expand_label( MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_make_traffic_keys( - psa_algorithm_t hash_alg, - const unsigned char *client_secret, - const unsigned char *server_secret, size_t secret_len, - size_t key_len, size_t iv_len, - mbedtls_ssl_key_set *keys ); + psa_algorithm_t hash_alg, + const unsigned char *client_secret, + const unsigned char *server_secret, size_t secret_len, + size_t key_len, size_t iv_len, + mbedtls_ssl_key_set *keys); /** * \brief The \c Derive-Secret function from the TLS 1.3 standard RFC 8446. @@ -209,12 +207,12 @@ int mbedtls_ssl_tls13_make_traffic_keys( */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_derive_secret( - psa_algorithm_t hash_alg, - const unsigned char *secret, size_t secret_len, - const unsigned char *label, size_t label_len, - const unsigned char *ctx, size_t ctx_len, - int ctx_hashed, - unsigned char *dstbuf, size_t dstbuf_len ); + psa_algorithm_t hash_alg, + const unsigned char *secret, size_t secret_len, + const unsigned char *label, size_t label_len, + const unsigned char *ctx, size_t ctx_len, + int ctx_hashed, + unsigned char *dstbuf, size_t dstbuf_len); /** * \brief Derive TLS 1.3 early data key material from early secret. @@ -260,10 +258,10 @@ int mbedtls_ssl_tls13_derive_secret( */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_derive_early_secrets( - psa_algorithm_t hash_alg, - unsigned char const *early_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_early_secrets *derived ); + psa_algorithm_t hash_alg, + unsigned char const *early_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_early_secrets *derived); /** * \brief Derive TLS 1.3 handshake key material from the handshake secret. @@ -306,10 +304,10 @@ int mbedtls_ssl_tls13_derive_early_secrets( */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_derive_handshake_secrets( - psa_algorithm_t hash_alg, - unsigned char const *handshake_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_handshake_secrets *derived ); + psa_algorithm_t hash_alg, + unsigned char const *handshake_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_handshake_secrets *derived); /** * \brief Derive TLS 1.3 application key material from the master secret. @@ -357,10 +355,10 @@ int mbedtls_ssl_tls13_derive_handshake_secrets( */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_derive_application_secrets( - psa_algorithm_t hash_alg, - unsigned char const *master_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_application_secrets *derived ); + psa_algorithm_t hash_alg, + unsigned char const *master_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_application_secrets *derived); /** * \brief Derive TLS 1.3 resumption master secret from the master secret. @@ -388,10 +386,10 @@ int mbedtls_ssl_tls13_derive_application_secrets( */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_derive_resumption_master_secret( - psa_algorithm_t hash_alg, - unsigned char const *application_secret, - unsigned char const *transcript, size_t transcript_len, - mbedtls_ssl_tls13_application_secrets *derived ); + psa_algorithm_t hash_alg, + unsigned char const *application_secret, + unsigned char const *transcript, size_t transcript_len, + mbedtls_ssl_tls13_application_secrets *derived); /** * \brief Compute the next secret in the TLS 1.3 key schedule @@ -462,10 +460,10 @@ int mbedtls_ssl_tls13_derive_resumption_master_secret( MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_evolve_secret( - psa_algorithm_t hash_alg, - const unsigned char *secret_old, - const unsigned char *input, size_t input_len, - unsigned char *secret_new ); + psa_algorithm_t hash_alg, + const unsigned char *secret_old, + const unsigned char *input, size_t input_len, + unsigned char *secret_new); /** * \brief Calculate a TLS 1.3 PSK binder. @@ -491,12 +489,12 @@ int mbedtls_ssl_tls13_evolve_secret( * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, - const psa_algorithm_t hash_alg, - unsigned char const *psk, size_t psk_len, - int psk_type, - unsigned char const *transcript, - unsigned char *result ); +int mbedtls_ssl_tls13_create_psk_binder(mbedtls_ssl_context *ssl, + const psa_algorithm_t hash_alg, + unsigned char const *psk, size_t psk_len, + int psk_type, + unsigned char const *transcript, + unsigned char *result); /** * \bref Setup an SSL transform structure representing the @@ -526,11 +524,11 @@ int mbedtls_ssl_tls13_create_psk_binder( mbedtls_ssl_context *ssl, * \return A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, - int endpoint, - int ciphersuite, - mbedtls_ssl_key_set const *traffic_keys, - mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_populate_transform(mbedtls_ssl_transform *transform, + int endpoint, + int ciphersuite, + mbedtls_ssl_key_set const *traffic_keys, + mbedtls_ssl_context *ssl); /* * TLS 1.3 key schedule evolutions @@ -553,7 +551,7 @@ int mbedtls_ssl_tls13_populate_transform( mbedtls_ssl_transform *transform, * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl); /** * \brief Transition into handshake stage of TLS 1.3 key schedule. @@ -572,7 +570,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_early( mbedtls_ssl_context *ssl ); * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl); /** * \brief Compute TLS 1.3 handshake traffic keys. @@ -587,8 +585,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_handshake( mbedtls_ssl_context *ssl ); * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys ); +int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys); /** * \brief Transition into application stage of TLS 1.3 key schedule. @@ -607,7 +605,7 @@ int mbedtls_ssl_tls13_generate_handshake_keys( mbedtls_ssl_context *ssl, * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_key_schedule_stage_application( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl); /** * \brief Compute TLS 1.3 application traffic keys. @@ -623,7 +621,7 @@ int mbedtls_ssl_tls13_key_schedule_stage_application( mbedtls_ssl_context *ssl ) */ MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_generate_application_keys( - mbedtls_ssl_context* ssl, mbedtls_ssl_key_set *traffic_keys ); + mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys); /** * \brief Compute TLS 1.3 resumption master secret. @@ -636,7 +634,7 @@ int mbedtls_ssl_tls13_generate_application_keys( * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_compute_resumption_master_secret(mbedtls_ssl_context *ssl); /** * \brief Calculate the verify_data value for the client or server TLS 1.3 @@ -661,11 +659,11 @@ int mbedtls_ssl_tls13_compute_resumption_master_secret( mbedtls_ssl_context *ssl * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context *ssl, - unsigned char *dst, - size_t dst_len, - size_t *actual_len, - int which ); +int mbedtls_ssl_tls13_calculate_verify_data(mbedtls_ssl_context *ssl, + unsigned char *dst, + size_t dst_len, + size_t *actual_len, + int which); #if defined(MBEDTLS_SSL_EARLY_DATA) /** @@ -685,7 +683,7 @@ int mbedtls_ssl_tls13_calculate_verify_data( mbedtls_ssl_context *ssl, * traffic from the server to the client). */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_compute_early_transform(mbedtls_ssl_context *ssl); #endif /* MBEDTLS_SSL_EARLY_DATA */ /** @@ -698,7 +696,7 @@ int mbedtls_ssl_tls13_compute_early_transform( mbedtls_ssl_context *ssl ); * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_compute_handshake_transform(mbedtls_ssl_context *ssl); /** * \brief Compute TLS 1.3 application transform @@ -710,7 +708,7 @@ int mbedtls_ssl_tls13_compute_handshake_transform( mbedtls_ssl_context *ssl ); * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ); +int mbedtls_ssl_tls13_compute_application_transform(mbedtls_ssl_context *ssl); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /** @@ -725,9 +723,9 @@ int mbedtls_ssl_tls13_compute_application_transform( mbedtls_ssl_context *ssl ); * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_export_handshake_psk( mbedtls_ssl_context *ssl, - unsigned char **psk, - size_t *psk_len ); +int mbedtls_ssl_tls13_export_handshake_psk(mbedtls_ssl_context *ssl, + unsigned char **psk, + size_t *psk_len); #endif #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 685e10ba1..980c2255b 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -15,7 +15,7 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. -*/ + */ #include "common.h" @@ -32,21 +32,21 @@ static const mbedtls_ssl_ciphersuite_t *ssl_tls13_validate_peer_ciphersuite( - mbedtls_ssl_context *ssl, - unsigned int cipher_suite ) + mbedtls_ssl_context *ssl, + unsigned int cipher_suite) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - if( ! mbedtls_ssl_tls13_cipher_suite_is_offered( ssl, cipher_suite ) ) - return( NULL ); - - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( cipher_suite ); - if( ( mbedtls_ssl_validate_ciphersuite( ssl, ciphersuite_info, - ssl->tls_version, - ssl->tls_version ) != 0 ) ) - { - return( NULL ); + if (!mbedtls_ssl_tls13_cipher_suite_is_offered(ssl, cipher_suite)) { + return NULL; } - return( ciphersuite_info ); + + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(cipher_suite); + if ((mbedtls_ssl_validate_ciphersuite(ssl, ciphersuite_info, + ssl->tls_version, + ssl->tls_version) != 0)) { + return NULL; + } + return ciphersuite_info; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) @@ -58,49 +58,46 @@ static const mbedtls_ssl_ciphersuite_t *ssl_tls13_validate_peer_ciphersuite( * } PskKeyExchangeModes; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_key_exchange_modes_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_key_exchange_modes_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { const unsigned char *p = buf; size_t ke_modes_len; int ke_modes = 0; /* Read ke_modes length (1 Byte) */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 1 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 1); ke_modes_len = *p++; /* Currently, there are only two PSK modes, so even without looking * at the content, something's wrong if the list has more than 2 items. */ - if( ke_modes_len > 2 ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ke_modes_len > 2) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, ke_modes_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, ke_modes_len); - while( ke_modes_len-- != 0 ) - { - switch( *p++ ) - { - case MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE: - ke_modes |= MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Found PSK KEX MODE" ) ); - break; - case MBEDTLS_SSL_TLS1_3_PSK_MODE_ECDHE: - ke_modes |= MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Found PSK_EPHEMERAL KEX MODE" ) ); - break; - default: - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + while (ke_modes_len-- != 0) { + switch (*p++) { + case MBEDTLS_SSL_TLS1_3_PSK_MODE_PURE: + ke_modes |= MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; + MBEDTLS_SSL_DEBUG_MSG(3, ("Found PSK KEX MODE")); + break; + case MBEDTLS_SSL_TLS1_3_PSK_MODE_ECDHE: + ke_modes |= MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; + MBEDTLS_SSL_DEBUG_MSG(3, ("Found PSK_EPHEMERAL KEX MODE")); + break; + default: + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } } ssl->handshake->tls13_kex_modes = ke_modes; - return( 0 ); + return 0; } #define SSL_TLS1_3_OFFERED_PSK_NOT_MATCH 1 @@ -110,11 +107,11 @@ static int ssl_tls13_parse_key_exchange_modes_ext( mbedtls_ssl_context *ssl, MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_offered_psks_check_identity_match_ticket( - mbedtls_ssl_context *ssl, - const unsigned char *identity, - size_t identity_len, - uint32_t obfuscated_ticket_age, - mbedtls_ssl_session *session ) + mbedtls_ssl_context *ssl, + const unsigned char *identity, + size_t identity_len, + uint32_t obfuscated_ticket_age, + mbedtls_ssl_session *session) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *ticket_buffer; @@ -126,57 +123,57 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( ((void) obfuscated_ticket_age); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> check_identity_match_ticket" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> check_identity_match_ticket")); /* Ticket parser is not configured, Skip */ - if( ssl->conf->f_ticket_parse == NULL || identity_len == 0 ) - return( 0 ); + if (ssl->conf->f_ticket_parse == NULL || identity_len == 0) { + return 0; + } /* We create a copy of the encrypted ticket since the ticket parsing * function is allowed to use its input buffer as an output buffer * (in-place decryption). We do, however, need the original buffer for * computing the PSK binder value. */ - ticket_buffer = mbedtls_calloc( 1, identity_len ); - if( ticket_buffer == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return ( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + ticket_buffer = mbedtls_calloc(1, identity_len); + if (ticket_buffer == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("buffer too small")); + return MBEDTLS_ERR_SSL_ALLOC_FAILED; } - memcpy( ticket_buffer, identity, identity_len ); + memcpy(ticket_buffer, identity, identity_len); - if( ( ret = ssl->conf->f_ticket_parse( ssl->conf->p_ticket, - session, - ticket_buffer, identity_len ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_SSL_INVALID_MAC ) - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is not authentic" ) ); - else if( ret == MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ) - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket is expired" ) ); - else - MBEDTLS_SSL_DEBUG_RET( 1, "ticket_parse", ret ); + if ((ret = ssl->conf->f_ticket_parse(ssl->conf->p_ticket, + session, + ticket_buffer, identity_len)) != 0) { + if (ret == MBEDTLS_ERR_SSL_INVALID_MAC) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket is not authentic")); + } else if (ret == MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED) { + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket is expired")); + } else { + MBEDTLS_SSL_DEBUG_RET(1, "ticket_parse", ret); + } } /* We delete the temporary buffer */ - mbedtls_free( ticket_buffer ); + mbedtls_free(ticket_buffer); - if( ret != 0 ) - goto exit; - - ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; -#if defined(MBEDTLS_HAVE_TIME) - now = mbedtls_time( NULL ); - - if( now < session->start ) - { - MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Invalid ticket start time ( now=%" MBEDTLS_PRINTF_LONGLONG - ", start=%" MBEDTLS_PRINTF_LONGLONG " )", - (long long)now, (long long)session->start ) ); + if (ret != 0) { goto exit; } - age_in_s = (uint64_t)( now - session->start ); + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; +#if defined(MBEDTLS_HAVE_TIME) + now = mbedtls_time(NULL); + + if (now < session->start) { + MBEDTLS_SSL_DEBUG_MSG( + 3, ("Invalid ticket start time ( now=%" MBEDTLS_PRINTF_LONGLONG + ", start=%" MBEDTLS_PRINTF_LONGLONG " )", + (long long) now, (long long) session->start)); + goto exit; + } + + age_in_s = (uint64_t) (now - session->start); /* RFC 8446 section 4.6.1 * @@ -189,11 +186,10 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * * For time being, the age MUST be less than 604800 seconds (7 days). */ - if( age_in_s > 604800 ) - { + if (age_in_s > 604800) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket age exceeds limitation ticket_age=%lu", - (long unsigned int)age_in_s ) ); + 3, ("Ticket age exceeds limitation ticket_age=%lu", + (long unsigned int) age_in_s)); goto exit; } @@ -210,13 +206,12 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * into account. */ age_diff_in_ms = age_in_s * 1000; - age_diff_in_ms -= ( obfuscated_ticket_age - session->ticket_age_add ); - if( age_diff_in_ms <= -1000 || - age_diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE ) - { + age_diff_in_ms -= (obfuscated_ticket_age - session->ticket_age_add); + if (age_diff_in_ms <= -1000 || + age_diff_in_ms > MBEDTLS_SSL_TLS1_3_TICKET_AGE_TOLERANCE) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "Ticket age outside tolerance window ( diff=%d )", - (int)age_diff_in_ms ) ); + 3, ("Ticket age outside tolerance window ( diff=%d )", + (int) age_diff_in_ms)); goto exit; } @@ -225,81 +220,78 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( #endif /* MBEDTLS_HAVE_TIME */ exit: - if( ret != 0 ) - mbedtls_ssl_session_free( session ); + if (ret != 0) { + mbedtls_ssl_session_free(session); + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= check_identity_match_ticket" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= check_identity_match_ticket")); + return ret; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_offered_psks_check_identity_match( - mbedtls_ssl_context *ssl, - const unsigned char *identity, - size_t identity_len, - uint32_t obfuscated_ticket_age, - int *psk_type, - mbedtls_ssl_session *session ) + mbedtls_ssl_context *ssl, + const unsigned char *identity, + size_t identity_len, + uint32_t obfuscated_ticket_age, + int *psk_type, + mbedtls_ssl_session *session) { ((void) session); ((void) obfuscated_ticket_age); *psk_type = MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL; - MBEDTLS_SSL_DEBUG_BUF( 4, "identity", identity, identity_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "identity", identity, identity_len); ssl->handshake->resume = 0; #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( ssl_tls13_offered_psks_check_identity_match_ticket( + if (ssl_tls13_offered_psks_check_identity_match_ticket( ssl, identity, identity_len, obfuscated_ticket_age, - session ) == SSL_TLS1_3_OFFERED_PSK_MATCH ) - { + session) == SSL_TLS1_3_OFFERED_PSK_MATCH) { ssl->handshake->resume = 1; *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; - mbedtls_ssl_set_hs_psk( ssl, - session->resumption_key, - session->resumption_key_len ); - - MBEDTLS_SSL_DEBUG_BUF( 4, "Ticket-resumed PSK:", + mbedtls_ssl_set_hs_psk(ssl, session->resumption_key, - session->resumption_key_len ); - MBEDTLS_SSL_DEBUG_MSG( 4, ( "ticket: obfuscated_ticket_age: %u", - (unsigned)obfuscated_ticket_age ) ); - return( SSL_TLS1_3_OFFERED_PSK_MATCH ); + session->resumption_key_len); + + MBEDTLS_SSL_DEBUG_BUF(4, "Ticket-resumed PSK:", + session->resumption_key, + session->resumption_key_len); + MBEDTLS_SSL_DEBUG_MSG(4, ("ticket: obfuscated_ticket_age: %u", + (unsigned) obfuscated_ticket_age)); + return SSL_TLS1_3_OFFERED_PSK_MATCH; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ /* Check identity with external configured function */ - if( ssl->conf->f_psk != NULL ) - { - if( ssl->conf->f_psk( - ssl->conf->p_psk, ssl, identity, identity_len ) == 0 ) - { - return( SSL_TLS1_3_OFFERED_PSK_MATCH ); + if (ssl->conf->f_psk != NULL) { + if (ssl->conf->f_psk( + ssl->conf->p_psk, ssl, identity, identity_len) == 0) { + return SSL_TLS1_3_OFFERED_PSK_MATCH; } - return( SSL_TLS1_3_OFFERED_PSK_NOT_MATCH ); + return SSL_TLS1_3_OFFERED_PSK_NOT_MATCH; } - MBEDTLS_SSL_DEBUG_BUF( 5, "identity", identity, identity_len ); + MBEDTLS_SSL_DEBUG_BUF(5, "identity", identity, identity_len); /* Check identity with pre-configured psk */ - if( ssl->conf->psk_identity != NULL && + if (ssl->conf->psk_identity != NULL && identity_len == ssl->conf->psk_identity_len && - mbedtls_ct_memcmp( ssl->conf->psk_identity, - identity, identity_len ) == 0 ) - { - mbedtls_ssl_set_hs_psk( ssl, ssl->conf->psk, ssl->conf->psk_len ); - return( SSL_TLS1_3_OFFERED_PSK_MATCH ); + mbedtls_ct_memcmp(ssl->conf->psk_identity, + identity, identity_len) == 0) { + mbedtls_ssl_set_hs_psk(ssl, ssl->conf->psk, ssl->conf->psk_len); + return SSL_TLS1_3_OFFERED_PSK_MATCH; } - return( SSL_TLS1_3_OFFERED_PSK_NOT_MATCH ); + return SSL_TLS1_3_OFFERED_PSK_NOT_MATCH; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_offered_psks_check_binder_match( mbedtls_ssl_context *ssl, - const unsigned char *binder, - size_t binder_len, - int psk_type, - psa_algorithm_t psk_hash_alg ) +static int ssl_tls13_offered_psks_check_binder_match(mbedtls_ssl_context *ssl, + const unsigned char *binder, + size_t binder_len, + int psk_type, + psa_algorithm_t psk_hash_alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -311,49 +303,49 @@ static int ssl_tls13_offered_psks_check_binder_match( mbedtls_ssl_context *ssl, /* Get current state of handshake transcript. */ ret = mbedtls_ssl_get_handshake_transcript( - ssl, mbedtls_hash_info_md_from_psa( psk_hash_alg ), - transcript, sizeof( transcript ), &transcript_len ); - if( ret != 0 ) - return( ret ); + ssl, mbedtls_hash_info_md_from_psa(psk_hash_alg), + transcript, sizeof(transcript), &transcript_len); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_export_handshake_psk( ssl, &psk, &psk_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_export_handshake_psk(ssl, &psk, &psk_len); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_create_psk_binder( ssl, psk_hash_alg, - psk, psk_len, psk_type, - transcript, - server_computed_binder ); + ret = mbedtls_ssl_tls13_create_psk_binder(ssl, psk_hash_alg, + psk, psk_len, psk_type, + transcript, + server_computed_binder); #if defined(MBEDTLS_USE_PSA_CRYPTO) - mbedtls_free( (void*)psk ); + mbedtls_free((void *) psk); #endif - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "PSK binder calculation failed." ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("PSK binder calculation failed.")); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } - MBEDTLS_SSL_DEBUG_BUF( 3, "psk binder ( computed ): ", - server_computed_binder, transcript_len ); - MBEDTLS_SSL_DEBUG_BUF( 3, "psk binder ( received ): ", binder, binder_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "psk binder ( computed ): ", + server_computed_binder, transcript_len); + MBEDTLS_SSL_DEBUG_BUF(3, "psk binder ( received ): ", binder, binder_len); - if( mbedtls_ct_memcmp( server_computed_binder, binder, binder_len ) == 0 ) - { - return( SSL_TLS1_3_OFFERED_PSK_MATCH ); + if (mbedtls_ct_memcmp(server_computed_binder, binder, binder_len) == 0) { + return SSL_TLS1_3_OFFERED_PSK_MATCH; } - mbedtls_platform_zeroize( server_computed_binder, - sizeof( server_computed_binder ) ); - return( SSL_TLS1_3_OFFERED_PSK_NOT_MATCH ); + mbedtls_platform_zeroize(server_computed_binder, + sizeof(server_computed_binder)); + return SSL_TLS1_3_OFFERED_PSK_NOT_MATCH; } MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_select_ciphersuite_for_psk( - mbedtls_ssl_context *ssl, - const unsigned char *cipher_suites, - const unsigned char *cipher_suites_end, - uint16_t *selected_ciphersuite, - const mbedtls_ssl_ciphersuite_t **selected_ciphersuite_info ) + mbedtls_ssl_context *ssl, + const unsigned char *cipher_suites, + const unsigned char *cipher_suites_end, + uint16_t *selected_ciphersuite, + const mbedtls_ssl_ciphersuite_t **selected_ciphersuite_info) { psa_algorithm_t psk_hash_alg = PSA_ALG_SHA_256; @@ -370,79 +362,80 @@ static int ssl_tls13_select_ciphersuite_for_psk( /* * Search for a matching ciphersuite */ - for ( const unsigned char *p = cipher_suites; - p < cipher_suites_end; p += 2 ) - { + for (const unsigned char *p = cipher_suites; + p < cipher_suites_end; p += 2) { uint16_t cipher_suite; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - cipher_suite = MBEDTLS_GET_UINT16_BE( p, 0 ); - ciphersuite_info = ssl_tls13_validate_peer_ciphersuite( ssl, - cipher_suite ); - if( ciphersuite_info == NULL ) + cipher_suite = MBEDTLS_GET_UINT16_BE(p, 0); + ciphersuite_info = ssl_tls13_validate_peer_ciphersuite(ssl, + cipher_suite); + if (ciphersuite_info == NULL) { continue; + } /* MAC of selected ciphersuite MUST be same with PSK binder if exist. * Otherwise, client should reject. */ - if( psk_hash_alg == mbedtls_psa_translate_md( ciphersuite_info->mac ) ) - { + if (psk_hash_alg == mbedtls_psa_translate_md(ciphersuite_info->mac)) { *selected_ciphersuite = cipher_suite; *selected_ciphersuite_info = ciphersuite_info; - return( 0 ); + return 0; } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "No matched ciphersuite" ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG(2, ("No matched ciphersuite")); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_select_ciphersuite_for_resumption( - mbedtls_ssl_context *ssl, - const unsigned char *cipher_suites, - const unsigned char *cipher_suites_end, - mbedtls_ssl_session *session, - uint16_t *selected_ciphersuite, - const mbedtls_ssl_ciphersuite_t **selected_ciphersuite_info ) + mbedtls_ssl_context *ssl, + const unsigned char *cipher_suites, + const unsigned char *cipher_suites_end, + mbedtls_ssl_session *session, + uint16_t *selected_ciphersuite, + const mbedtls_ssl_ciphersuite_t **selected_ciphersuite_info) { *selected_ciphersuite = 0; *selected_ciphersuite_info = NULL; - for( const unsigned char *p = cipher_suites; p < cipher_suites_end; p += 2 ) - { - uint16_t cipher_suite = MBEDTLS_GET_UINT16_BE( p, 0 ); + for (const unsigned char *p = cipher_suites; p < cipher_suites_end; p += 2) { + uint16_t cipher_suite = MBEDTLS_GET_UINT16_BE(p, 0); const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - if( cipher_suite != session->ciphersuite ) + if (cipher_suite != session->ciphersuite) { continue; + } - ciphersuite_info = ssl_tls13_validate_peer_ciphersuite( ssl, - cipher_suite ); - if( ciphersuite_info == NULL ) + ciphersuite_info = ssl_tls13_validate_peer_ciphersuite(ssl, + cipher_suite); + if (ciphersuite_info == NULL) { continue; + } *selected_ciphersuite = cipher_suite; *selected_ciphersuite_info = ciphersuite_info; - return( 0 ); + return 0; } - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_session_copy_ticket( mbedtls_ssl_session *dst, - const mbedtls_ssl_session *src ) +static int ssl_tls13_session_copy_ticket(mbedtls_ssl_session *dst, + const mbedtls_ssl_session *src) { dst->ticket_age_add = src->ticket_age_add; dst->ticket_flags = src->ticket_flags; dst->resumption_key_len = src->resumption_key_len; - if( src->resumption_key_len == 0 ) - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - memcpy( dst->resumption_key, src->resumption_key, src->resumption_key_len ); + if (src->resumption_key_len == 0) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; + } + memcpy(dst->resumption_key, src->resumption_key, src->resumption_key_len); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ @@ -467,11 +460,11 @@ static int ssl_tls13_session_copy_ticket( mbedtls_ssl_session *dst, * } PreSharedKeyExtension; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, - const unsigned char *pre_shared_key_ext, - const unsigned char *pre_shared_key_ext_end, - const unsigned char *ciphersuites, - const unsigned char *ciphersuites_end ) +static int ssl_tls13_parse_pre_shared_key_ext(mbedtls_ssl_context *ssl, + const unsigned char *pre_shared_key_ext, + const unsigned char *pre_shared_key_ext_end, + const unsigned char *ciphersuites, + const unsigned char *ciphersuites_end) { const unsigned char *identities = pre_shared_key_ext; const unsigned char *p_identity_len; @@ -484,35 +477,34 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, int matched_identity = -1; int identity_id = -1; - MBEDTLS_SSL_DEBUG_BUF( 3, "pre_shared_key extension", - pre_shared_key_ext, - pre_shared_key_ext_end - pre_shared_key_ext ); + MBEDTLS_SSL_DEBUG_BUF(3, "pre_shared_key extension", + pre_shared_key_ext, + pre_shared_key_ext_end - pre_shared_key_ext); /* identities_len 2 bytes * identities_data >= 7 bytes */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( identities, pre_shared_key_ext_end, 7 + 2 ); - identities_len = MBEDTLS_GET_UINT16_BE( identities, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(identities, pre_shared_key_ext_end, 7 + 2); + identities_len = MBEDTLS_GET_UINT16_BE(identities, 0); p_identity_len = identities + 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p_identity_len, pre_shared_key_ext_end, - identities_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p_identity_len, pre_shared_key_ext_end, + identities_len); identities_end = p_identity_len + identities_len; /* binders_len 2 bytes * binders >= 33 bytes */ binders = identities_end; - MBEDTLS_SSL_CHK_BUF_READ_PTR( binders, pre_shared_key_ext_end, 33 + 2 ); - binders_len = MBEDTLS_GET_UINT16_BE( binders, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(binders, pre_shared_key_ext_end, 33 + 2); + binders_len = MBEDTLS_GET_UINT16_BE(binders, 0); p_binder_len = binders + 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p_binder_len, pre_shared_key_ext_end, binders_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p_binder_len, pre_shared_key_ext_end, binders_len); binders_end = p_binder_len + binders_len; - ssl->handshake->update_checksum( ssl, pre_shared_key_ext, - identities_end - pre_shared_key_ext ); + ssl->handshake->update_checksum(ssl, pre_shared_key_ext, + identities_end - pre_shared_key_ext); - while( p_identity_len < identities_end && p_binder_len < binders_end ) - { + while (p_identity_len < identities_end && p_binder_len < binders_end) { const unsigned char *identity; size_t identity_len; uint32_t obfuscated_ticket_age; @@ -524,83 +516,83 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info; #if defined(MBEDTLS_SSL_SESSION_TICKETS) mbedtls_ssl_session session; - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); #endif - MBEDTLS_SSL_CHK_BUF_READ_PTR( p_identity_len, identities_end, 2 + 1 + 4 ); - identity_len = MBEDTLS_GET_UINT16_BE( p_identity_len, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p_identity_len, identities_end, 2 + 1 + 4); + identity_len = MBEDTLS_GET_UINT16_BE(p_identity_len, 0); identity = p_identity_len + 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( identity, identities_end, identity_len + 4 ); - obfuscated_ticket_age = MBEDTLS_GET_UINT32_BE( identity , identity_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(identity, identities_end, identity_len + 4); + obfuscated_ticket_age = MBEDTLS_GET_UINT32_BE(identity, identity_len); p_identity_len += identity_len + 6; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p_binder_len, binders_end, 1 + 32 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p_binder_len, binders_end, 1 + 32); binder_len = *p_binder_len; binder = p_binder_len + 1; - MBEDTLS_SSL_CHK_BUF_READ_PTR( binder, binders_end, binder_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(binder, binders_end, binder_len); p_binder_len += binder_len + 1; identity_id++; - if( matched_identity != -1 ) + if (matched_identity != -1) { continue; + } ret = ssl_tls13_offered_psks_check_identity_match( - ssl, identity, identity_len, obfuscated_ticket_age, - &psk_type, &session ); - if( ret != SSL_TLS1_3_OFFERED_PSK_MATCH ) + ssl, identity, identity_len, obfuscated_ticket_age, + &psk_type, &session); + if (ret != SSL_TLS1_3_OFFERED_PSK_MATCH) { continue; + } - MBEDTLS_SSL_DEBUG_MSG( 4, ( "found matched identity" ) ); - switch( psk_type ) - { + MBEDTLS_SSL_DEBUG_MSG(4, ("found matched identity")); + switch (psk_type) { case MBEDTLS_SSL_TLS1_3_PSK_EXTERNAL: ret = ssl_tls13_select_ciphersuite_for_psk( - ssl, ciphersuites, ciphersuites_end, - &cipher_suite, &ciphersuite_info ); + ssl, ciphersuites, ciphersuites_end, + &cipher_suite, &ciphersuite_info); break; case MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION: #if defined(MBEDTLS_SSL_SESSION_TICKETS) ret = ssl_tls13_select_ciphersuite_for_resumption( - ssl, ciphersuites, ciphersuites_end, &session, - &cipher_suite, &ciphersuite_info ); - if( ret != 0 ) - mbedtls_ssl_session_free( &session ); + ssl, ciphersuites, ciphersuites_end, &session, + &cipher_suite, &ciphersuite_info); + if (ret != 0) { + mbedtls_ssl_session_free(&session); + } #else ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; #endif break; default: - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - if( ret != 0 ) - { + if (ret != 0) { /* See below, no cipher_suite available, abort handshake */ MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); MBEDTLS_SSL_DEBUG_RET( - 2, "ssl_tls13_select_ciphersuite", ret ); - return( ret ); + 2, "ssl_tls13_select_ciphersuite", ret); + return ret; } ret = ssl_tls13_offered_psks_check_binder_match( - ssl, binder, binder_len, psk_type, - mbedtls_psa_translate_md( ciphersuite_info->mac ) ); - if( ret != SSL_TLS1_3_OFFERED_PSK_MATCH ) - { + ssl, binder, binder_len, psk_type, + mbedtls_psa_translate_md(ciphersuite_info->mac)); + if (ret != SSL_TLS1_3_OFFERED_PSK_MATCH) { /* For security reasons, the handshake should be aborted when we * fail to validate a binder value. See RFC 8446 section 4.2.11.2 * and appendix E.6. */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_session_free( &session ); + mbedtls_ssl_session_free(&session); #endif - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Invalid binder." ) ); - MBEDTLS_SSL_DEBUG_RET( 1, - "ssl_tls13_offered_psks_check_binder_match" , ret ); + MBEDTLS_SSL_DEBUG_MSG(3, ("Invalid binder.")); + MBEDTLS_SSL_DEBUG_RET(1, + "ssl_tls13_offered_psks_check_binder_match", ret); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( ret ); + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return ret; } matched_identity = identity_id; @@ -608,42 +600,40 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, /* Update handshake parameters */ ssl->handshake->ciphersuite_info = ciphersuite_info; ssl->session_negotiate->ciphersuite = cipher_suite; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "overwrite ciphersuite: %04x - %s", - cipher_suite, ciphersuite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("overwrite ciphersuite: %04x - %s", + cipher_suite, ciphersuite_info->name)); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - if( psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION ) - { - ret = ssl_tls13_session_copy_ticket( ssl->session_negotiate, - &session ); - mbedtls_ssl_session_free( &session ); - if( ret != 0 ) - return( ret ); + if (psk_type == MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION) { + ret = ssl_tls13_session_copy_ticket(ssl->session_negotiate, + &session); + mbedtls_ssl_session_free(&session); + if (ret != 0) { + return ret; + } } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ } - if( p_identity_len != identities_end || p_binder_len != binders_end ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "pre_shared_key extension decode error" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, - MBEDTLS_ERR_SSL_DECODE_ERROR ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (p_identity_len != identities_end || p_binder_len != binders_end) { + MBEDTLS_SSL_DEBUG_MSG(3, ("pre_shared_key extension decode error")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR, + MBEDTLS_ERR_SSL_DECODE_ERROR); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } /* Update the handshake transcript with the binder list. */ - ssl->handshake->update_checksum( ssl, - identities_end, - (size_t)( binders_end - identities_end ) ); - if( matched_identity == -1 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "No matched PSK or ticket." ) ); - return( MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ); + ssl->handshake->update_checksum(ssl, + identities_end, + (size_t) (binders_end - identities_end)); + if (matched_identity == -1) { + MBEDTLS_SSL_DEBUG_MSG(3, ("No matched PSK or ticket.")); + return MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY; } - ssl->handshake->selected_identity = (uint16_t)matched_identity; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Pre shared key found" ) ); + ssl->handshake->selected_identity = (uint16_t) matched_identity; + MBEDTLS_SSL_DEBUG_MSG(3, ("Pre shared key found")); - return( 0 ); + return 0; } /* @@ -655,44 +645,43 @@ static int ssl_tls13_parse_pre_shared_key_ext( mbedtls_ssl_context *ssl, * } * } PreSharedKeyExtension; */ -static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *olen ) +static int ssl_tls13_write_server_pre_shared_key_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *olen) { - unsigned char *p = (unsigned char*)buf; + unsigned char *p = (unsigned char *) buf; *olen = 0; int not_using_psk = 0; #if defined(MBEDTLS_USE_PSA_CRYPTO) - not_using_psk = ( mbedtls_svc_key_id_is_null( ssl->handshake->psk_opaque ) ); + not_using_psk = (mbedtls_svc_key_id_is_null(ssl->handshake->psk_opaque)); #else - not_using_psk = ( ssl->handshake->psk == NULL ); + not_using_psk = (ssl->handshake->psk == NULL); #endif - if( not_using_psk ) - { + if (not_using_psk) { /* We shouldn't have called this extension writer unless we've * chosen to use a PSK. */ - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding pre_shared_key extension" ) ); - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding pre_shared_key extension")); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 6); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_PRE_SHARED_KEY, p, 0 ); - MBEDTLS_PUT_UINT16_BE( 2, p, 2 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_PRE_SHARED_KEY, p, 0); + MBEDTLS_PUT_UINT16_BE(2, p, 2); - MBEDTLS_PUT_UINT16_BE( ssl->handshake->selected_identity, p, 4 ); + MBEDTLS_PUT_UINT16_BE(ssl->handshake->selected_identity, p, 4); *olen = 6; - MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent selected_identity: %u", - ssl->handshake->selected_identity ) ); + MBEDTLS_SSL_DEBUG_MSG(4, ("sent selected_identity: %u", + ssl->handshake->selected_identity)); - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY); - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ @@ -703,9 +692,9 @@ static int ssl_tls13_write_server_pre_shared_key_ext( mbedtls_ssl_context *ssl, * } SupportedVersions; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_supported_versions_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_supported_versions_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { const unsigned char *p = buf; size_t versions_len; @@ -713,39 +702,36 @@ static int ssl_tls13_parse_supported_versions_ext( mbedtls_ssl_context *ssl, uint16_t tls_version; int tls13_supported = 0; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 1 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 1); versions_len = p[0]; p += 1; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, versions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, versions_len); versions_end = p + versions_len; - while( p < versions_end ) - { - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, versions_end, 2 ); - tls_version = mbedtls_ssl_read_version( p, ssl->conf->transport ); + while (p < versions_end) { + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, versions_end, 2); + tls_version = mbedtls_ssl_read_version(p, ssl->conf->transport); p += 2; /* In this implementation we only support TLS 1.3 and DTLS 1.3. */ - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { tls13_supported = 1; break; } } - if( !tls13_supported ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "TLS 1.3 is not supported by the client" ) ); + if (!tls13_supported) { + MBEDTLS_SSL_DEBUG_MSG(1, ("TLS 1.3 is not supported by the client")); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, - MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); - return( MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, + MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION); + return MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Negotiated version. Supported is [%04x]", - (unsigned int)tls_version ) ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Negotiated version. Supported is [%04x]", + (unsigned int) tls_version)); - return( 0 ); + return 0; } #if defined(MBEDTLS_ECDH_C) @@ -760,50 +746,48 @@ static int ssl_tls13_parse_supported_versions_ext( mbedtls_ssl_context *ssl, * } NamedGroupList; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_supported_groups_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_supported_groups_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { const unsigned char *p = buf; size_t named_group_list_len; const unsigned char *named_group_list_end; - MBEDTLS_SSL_DEBUG_BUF( 3, "supported_groups extension", p, end - buf ); - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - named_group_list_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_DEBUG_BUF(3, "supported_groups extension", p, end - buf); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + named_group_list_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, named_group_list_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, named_group_list_len); named_group_list_end = p + named_group_list_len; ssl->handshake->hrr_selected_group = 0; - while( p < named_group_list_end ) - { + while (p < named_group_list_end) { uint16_t named_group; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, named_group_list_end, 2 ); - named_group = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, named_group_list_end, 2); + named_group = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "got named group: %s(%04x)", - mbedtls_ssl_named_group_to_str( named_group ), - named_group ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("got named group: %s(%04x)", + mbedtls_ssl_named_group_to_str(named_group), + named_group)); - if( ! mbedtls_ssl_named_group_is_offered( ssl, named_group ) || - ! mbedtls_ssl_named_group_is_supported( named_group ) || - ssl->handshake->hrr_selected_group != 0 ) - { + if (!mbedtls_ssl_named_group_is_offered(ssl, named_group) || + !mbedtls_ssl_named_group_is_supported(named_group) || + ssl->handshake->hrr_selected_group != 0) { continue; } - MBEDTLS_SSL_DEBUG_MSG( 2, - ( "add named group %s(%04x) into received list.", - mbedtls_ssl_named_group_to_str( named_group ), - named_group ) ); + MBEDTLS_SSL_DEBUG_MSG(2, + ("add named group %s(%04x) into received list.", + mbedtls_ssl_named_group_to_str(named_group), + named_group)); ssl->handshake->hrr_selected_group = named_group; } - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C */ @@ -823,9 +807,9 @@ static int ssl_tls13_parse_supported_groups_ext( mbedtls_ssl_context *ssl, * - A negative value for fatal errors. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_key_shares_ext(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char const *p = buf; @@ -840,10 +824,10 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, * */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 2 ); - client_shares_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); + client_shares_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, client_shares_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, client_shares_len); ssl->handshake->offered_group_id = 0; client_shares_end = p + client_shares_len; @@ -854,8 +838,7 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, * dismiss it and send a HelloRetryRequest message. */ - while( p < client_shares_end ) - { + while (p < client_shares_end) { uint16_t group; size_t key_exchange_len; const unsigned char *key_exchange; @@ -866,42 +849,39 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, * opaque key_exchange<1..2^16-1>; * } KeyShareEntry; */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, client_shares_end, 4 ); - group = MBEDTLS_GET_UINT16_BE( p, 0 ); - key_exchange_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, client_shares_end, 4); + group = MBEDTLS_GET_UINT16_BE(p, 0); + key_exchange_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; key_exchange = p; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, client_shares_end, key_exchange_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, client_shares_end, key_exchange_len); p += key_exchange_len; /* Continue parsing even if we have already found a match, * for input validation purposes. */ - if( ! mbedtls_ssl_named_group_is_offered( ssl, group ) || - ! mbedtls_ssl_named_group_is_supported( group ) || - ssl->handshake->offered_group_id != 0 ) - { + if (!mbedtls_ssl_named_group_is_offered(ssl, group) || + !mbedtls_ssl_named_group_is_supported(group) || + ssl->handshake->offered_group_id != 0) { continue; } /* * For now, we only support ECDHE groups. */ - if( mbedtls_ssl_tls13_named_group_is_ecdhe( group ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ECDH group: %s (%04x)", - mbedtls_ssl_named_group_to_str( group ), - group ) ); + if (mbedtls_ssl_tls13_named_group_is_ecdhe(group)) { + MBEDTLS_SSL_DEBUG_MSG(2, ("ECDH group: %s (%04x)", + mbedtls_ssl_named_group_to_str(group), + group)); ret = mbedtls_ssl_tls13_read_public_ecdhe_share( - ssl, key_exchange - 2, key_exchange_len + 2 ); - if( ret != 0 ) - return( ret ); + ssl, key_exchange - 2, key_exchange_len + 2); + if (ret != 0) { + return ret; + } - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Unrecognized NamedGroup %u", - (unsigned) group ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(4, ("Unrecognized NamedGroup %u", + (unsigned) group)); continue; } @@ -909,101 +889,100 @@ static int ssl_tls13_parse_key_shares_ext( mbedtls_ssl_context *ssl, } - if( ssl->handshake->offered_group_id == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no matching key share" ) ); - return( SSL_TLS1_3_PARSE_KEY_SHARES_EXT_NO_MATCH ); + if (ssl->handshake->offered_group_id == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no matching key share")); + return SSL_TLS1_3_PARSE_KEY_SHARES_EXT_NO_MATCH; } - return( 0 ); + return 0; } #endif /* MBEDTLS_ECDH_C */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_client_hello_has_exts( mbedtls_ssl_context *ssl, - int exts_mask ) +static int ssl_tls13_client_hello_has_exts(mbedtls_ssl_context *ssl, + int exts_mask) { int masked = ssl->handshake->received_extensions & exts_mask; - return( masked == exts_mask ); + return masked == exts_mask; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ssl_tls13_client_hello_has_exts( - ssl, - MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | - MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | - MBEDTLS_SSL_EXT_MASK( SIG_ALG ) ) ); + return ssl_tls13_client_hello_has_exts( + ssl, + MBEDTLS_SSL_EXT_MASK(SUPPORTED_GROUPS) | + MBEDTLS_SSL_EXT_MASK(KEY_SHARE) | + MBEDTLS_SSL_EXT_MASK(SIG_ALG)); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_key_exchange( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ssl_tls13_client_hello_has_exts( - ssl, - MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | - MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); + return ssl_tls13_client_hello_has_exts( + ssl, + MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | + MBEDTLS_SSL_EXT_MASK(PSK_KEY_EXCHANGE_MODES)); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( - mbedtls_ssl_context *ssl ) + mbedtls_ssl_context *ssl) { - return( ssl_tls13_client_hello_has_exts( - ssl, - MBEDTLS_SSL_EXT_MASK( SUPPORTED_GROUPS ) | - MBEDTLS_SSL_EXT_MASK( KEY_SHARE ) | - MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) | - MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) ); + return ssl_tls13_client_hello_has_exts( + ssl, + MBEDTLS_SSL_EXT_MASK(SUPPORTED_GROUPS) | + MBEDTLS_SSL_EXT_MASK(KEY_SHARE) | + MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY) | + MBEDTLS_SSL_EXT_MASK(PSK_KEY_EXCHANGE_MODES)); } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_check_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_tls13_check_ephemeral_key_exchange(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - return( mbedtls_ssl_conf_tls13_ephemeral_enabled( ssl ) && - ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange( ssl ) ); + return mbedtls_ssl_conf_tls13_ephemeral_enabled(ssl) && + ssl_tls13_client_hello_has_exts_for_ephemeral_key_exchange(ssl); #else ((void) ssl); - return( 0 ); + return 0; #endif } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_check_psk_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_tls13_check_psk_key_exchange(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED) - return( mbedtls_ssl_conf_tls13_psk_enabled( ssl ) && - mbedtls_ssl_tls13_psk_enabled( ssl ) && - ssl_tls13_client_hello_has_exts_for_psk_key_exchange( ssl ) ); + return mbedtls_ssl_conf_tls13_psk_enabled(ssl) && + mbedtls_ssl_tls13_psk_enabled(ssl) && + ssl_tls13_client_hello_has_exts_for_psk_key_exchange(ssl); #else ((void) ssl); - return( 0 ); + return 0; #endif } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_check_psk_ephemeral_key_exchange( mbedtls_ssl_context *ssl ) +static int ssl_tls13_check_psk_ephemeral_key_exchange(mbedtls_ssl_context *ssl) { #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED) - return( mbedtls_ssl_conf_tls13_psk_ephemeral_enabled( ssl ) && - mbedtls_ssl_tls13_psk_ephemeral_enabled( ssl ) && - ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange( ssl ) ); + return mbedtls_ssl_conf_tls13_psk_ephemeral_enabled(ssl) && + mbedtls_ssl_tls13_psk_ephemeral_enabled(ssl) && + ssl_tls13_client_hello_has_exts_for_psk_ephemeral_key_exchange(ssl); #else ((void) ssl); - return( 0 ); + return 0; #endif } -static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) +static int ssl_tls13_determine_key_exchange_mode(mbedtls_ssl_context *ssl) { /* * Determine the key exchange algorithm to use. @@ -1022,37 +1001,30 @@ static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) ssl->handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE; - if( ssl_tls13_check_psk_ephemeral_key_exchange( ssl ) ) - { + if (ssl_tls13_check_psk_ephemeral_key_exchange(ssl)) { ssl->handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk_ephemeral" ) ); - } - else - if( ssl_tls13_check_ephemeral_key_exchange( ssl ) ) - { + MBEDTLS_SSL_DEBUG_MSG(2, ("key exchange mode: psk_ephemeral")); + } else + if (ssl_tls13_check_ephemeral_key_exchange(ssl)) { ssl->handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: ephemeral" ) ); - } - else - if( ssl_tls13_check_psk_key_exchange( ssl ) ) - { + MBEDTLS_SSL_DEBUG_MSG(2, ("key exchange mode: ephemeral")); + } else + if (ssl_tls13_check_psk_key_exchange(ssl)) { ssl->handshake->key_exchange_mode = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "key exchange mode: psk" ) ); - } - else - { + MBEDTLS_SSL_DEBUG_MSG(2, ("key exchange mode: psk")); + } else { MBEDTLS_SSL_DEBUG_MSG( - 1, - ( "ClientHello message misses mandatory extensions." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION , - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + 1, + ("ClientHello message misses mandatory extensions.")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_MISSING_EXTENSION, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - return( 0 ); + return 0; } @@ -1060,30 +1032,29 @@ static int ssl_tls13_determine_key_exchange_mode( mbedtls_ssl_context *ssl ) defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) -static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) +static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg(uint16_t sig_alg) { - switch( sig_alg ) - { + switch (sig_alg) { case MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_256 ) ); + return PSA_ALG_ECDSA(PSA_ALG_SHA_256); case MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_384 ) ); + return PSA_ALG_ECDSA(PSA_ALG_SHA_384); case MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512: - return( PSA_ALG_ECDSA( PSA_ALG_SHA_512 ) ); + return PSA_ALG_ECDSA(PSA_ALG_SHA_512); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ) ); + return PSA_ALG_RSA_PSS(PSA_ALG_SHA_256); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ) ); + return PSA_ALG_RSA_PSS(PSA_ALG_SHA_384); case MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512: - return( PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ) ); + return PSA_ALG_RSA_PSS(PSA_ALG_SHA_512); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256: - return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_256 ) ); + return PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384: - return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_384 ) ); + return PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_384); case MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512: - return( PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_512 ) ); + return PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_512); default: - return( PSA_ALG_NONE ); + return PSA_ALG_NONE; } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ @@ -1093,93 +1064,90 @@ static psa_algorithm_t ssl_tls13_iana_sig_alg_to_psa_alg( uint16_t sig_alg ) * algorithms supported by the client. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) +static int ssl_tls13_pick_key_cert(mbedtls_ssl_context *ssl) { mbedtls_ssl_key_cert *key_cert, *key_cert_list; const uint16_t *sig_alg = ssl->handshake->received_sig_algs; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_key_cert != NULL ) + if (ssl->handshake->sni_key_cert != NULL) { key_cert_list = ssl->handshake->sni_key_cert; - else + } else #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ - key_cert_list = ssl->conf->key_cert; + key_cert_list = ssl->conf->key_cert; - if( key_cert_list == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server has no certificate" ) ); - return( -1 ); + if (key_cert_list == NULL) { + MBEDTLS_SSL_DEBUG_MSG(3, ("server has no certificate")); + return -1; } - for( ; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++ ) - { - if( !mbedtls_ssl_sig_alg_is_offered( ssl, *sig_alg ) ) + for (; *sig_alg != MBEDTLS_TLS1_3_SIG_NONE; sig_alg++) { + if (!mbedtls_ssl_sig_alg_is_offered(ssl, *sig_alg)) { continue; + } - if( !mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported( *sig_alg ) ) + if (!mbedtls_ssl_tls13_sig_alg_for_cert_verify_is_supported(*sig_alg)) { continue; + } - for( key_cert = key_cert_list; key_cert != NULL; - key_cert = key_cert->next ) - { + for (key_cert = key_cert_list; key_cert != NULL; + key_cert = key_cert->next) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t psa_alg = PSA_ALG_NONE; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - MBEDTLS_SSL_DEBUG_CRT( 3, "certificate (chain) candidate", - key_cert->cert ); + MBEDTLS_SSL_DEBUG_CRT(3, "certificate (chain) candidate", + key_cert->cert); /* - * This avoids sending the client a cert it'll reject based on - * keyUsage or other extensions. - */ - if( mbedtls_x509_crt_check_key_usage( - key_cert->cert, MBEDTLS_X509_KU_DIGITAL_SIGNATURE ) != 0 || + * This avoids sending the client a cert it'll reject based on + * keyUsage or other extensions. + */ + if (mbedtls_x509_crt_check_key_usage( + key_cert->cert, MBEDTLS_X509_KU_DIGITAL_SIGNATURE) != 0 || mbedtls_x509_crt_check_extended_key_usage( key_cert->cert, MBEDTLS_OID_SERVER_AUTH, - MBEDTLS_OID_SIZE( MBEDTLS_OID_SERVER_AUTH ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "certificate mismatch: " - "(extended) key usage extension" ) ); + MBEDTLS_OID_SIZE(MBEDTLS_OID_SERVER_AUTH)) != 0) { + MBEDTLS_SSL_DEBUG_MSG(3, ("certificate mismatch: " + "(extended) key usage extension")); continue; } - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "ssl_tls13_pick_key_cert:" - "check signature algorithm %s [%04x]", - mbedtls_ssl_sig_alg_to_str( *sig_alg ), - *sig_alg ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("ssl_tls13_pick_key_cert:" + "check signature algorithm %s [%04x]", + mbedtls_ssl_sig_alg_to_str(*sig_alg), + *sig_alg)); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_alg = ssl_tls13_iana_sig_alg_to_psa_alg( *sig_alg ); + psa_alg = ssl_tls13_iana_sig_alg_to_psa_alg(*sig_alg); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( mbedtls_ssl_tls13_check_sig_alg_cert_key_match( - *sig_alg, &key_cert->cert->pk ) + if (mbedtls_ssl_tls13_check_sig_alg_cert_key_match( + *sig_alg, &key_cert->cert->pk) #if defined(MBEDTLS_USE_PSA_CRYPTO) && psa_alg != PSA_ALG_NONE && - mbedtls_pk_can_do_ext( &key_cert->cert->pk, psa_alg, - PSA_KEY_USAGE_SIGN_HASH ) == 1 + mbedtls_pk_can_do_ext(&key_cert->cert->pk, psa_alg, + PSA_KEY_USAGE_SIGN_HASH) == 1 #endif /* MBEDTLS_USE_PSA_CRYPTO */ - ) - { + ) { ssl->handshake->key_cert = key_cert; - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "ssl_tls13_pick_key_cert:" - "selected signature algorithm" - " %s [%04x]", - mbedtls_ssl_sig_alg_to_str( *sig_alg ), - *sig_alg ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("ssl_tls13_pick_key_cert:" + "selected signature algorithm" + " %s [%04x]", + mbedtls_ssl_sig_alg_to_str(*sig_alg), + *sig_alg)); MBEDTLS_SSL_DEBUG_CRT( - 3, "selected certificate (chain)", - ssl->handshake->key_cert->cert ); - return( 0 ); + 3, "selected certificate (chain)", + ssl->handshake->key_cert->cert); + return 0; } } } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "ssl_tls13_pick_key_cert:" - "no suitable certificate found" ) ); - return( -1 ); + MBEDTLS_SSL_DEBUG_MSG(2, ("ssl_tls13_pick_key_cert:" + "no suitable certificate found")); + return -1; } #endif /* MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -1229,9 +1197,9 @@ static int ssl_tls13_pick_key_cert( mbedtls_ssl_context *ssl ) #define SSL_CLIENT_HELLO_HRR_REQUIRED 1 MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, - const unsigned char *buf, - const unsigned char *end ) +static int ssl_tls13_parse_client_hello(mbedtls_ssl_context *ssl, + const unsigned char *buf, + const unsigned char *end) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned char *p = buf; @@ -1268,7 +1236,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * 2 + 32 + 1 + 2 + 1 = 38 bytes. Check that first, so that we can * read at least up to session id length without worrying. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, 38 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 38); /* ... * ProtocolVersion legacy_version = 0x0303; // TLS 1.2 @@ -1276,13 +1244,12 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * with ProtocolVersion defined as: * uint16 ProtocolVersion; */ - if( mbedtls_ssl_read_version( p, ssl->conf->transport ) != - MBEDTLS_SSL_VERSION_TLS1_2 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Unsupported version of TLS." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, - MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); - return ( MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION ); + if (mbedtls_ssl_read_version(p, ssl->conf->transport) != + MBEDTLS_SSL_VERSION_TLS1_2) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Unsupported version of TLS.")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION, + MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION); + return MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } p += 2; @@ -1303,10 +1270,10 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * with Random defined as: * opaque Random[32]; */ - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, random bytes", - p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, random bytes", + p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN); - memcpy( &handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN ); + memcpy(&handshake->randbytes[0], p, MBEDTLS_CLIENT_HELLO_RANDOM_LEN); p += MBEDTLS_CLIENT_HELLO_RANDOM_LEN; /* ... @@ -1316,25 +1283,24 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, legacy_session_id_len = p[0]; p++; - if( legacy_session_id_len > sizeof( ssl->session_negotiate->id ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad client hello message" ) ); - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + if (legacy_session_id_len > sizeof(ssl->session_negotiate->id)) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad client hello message")); + return MBEDTLS_ERR_SSL_DECODE_ERROR; } ssl->session_negotiate->id_len = legacy_session_id_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, session id", - p, legacy_session_id_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, session id", + p, legacy_session_id_len); /* * Check we have enough data for the legacy session identifier * and the ciphersuite list length. */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, legacy_session_id_len + 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, legacy_session_id_len + 2); - memcpy( &ssl->session_negotiate->id[0], p, legacy_session_id_len ); + memcpy(&ssl->session_negotiate->id[0], p, legacy_session_id_len); p += legacy_session_id_len; - cipher_suites_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + cipher_suites_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; /* Check we have enough data for the ciphersuite list, the legacy @@ -1344,61 +1310,59 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * legacy_compression_methods 2 bytes * extensions_len 2 bytes */ - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, cipher_suites_len + 2 + 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, cipher_suites_len + 2 + 2); - /* ... - * CipherSuite cipher_suites<2..2^16-2>; - * ... - * with CipherSuite defined as: - * uint8 CipherSuite[2]; - */ + /* ... + * CipherSuite cipher_suites<2..2^16-2>; + * ... + * with CipherSuite defined as: + * uint8 CipherSuite[2]; + */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) cipher_suites = p; #endif cipher_suites_end = p + cipher_suites_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, ciphersuitelist", - p, cipher_suites_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello, ciphersuitelist", + p, cipher_suites_len); /* * Search for a matching ciphersuite */ - for ( ; p < cipher_suites_end; p += 2 ) - { + for (; p < cipher_suites_end; p += 2) { uint16_t cipher_suite; - const mbedtls_ssl_ciphersuite_t* ciphersuite_info; + const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, cipher_suites_end, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, cipher_suites_end, 2); - cipher_suite = MBEDTLS_GET_UINT16_BE( p, 0 ); + cipher_suite = MBEDTLS_GET_UINT16_BE(p, 0); ciphersuite_info = ssl_tls13_validate_peer_ciphersuite( - ssl,cipher_suite ); - if( ciphersuite_info == NULL ) + ssl, cipher_suite); + if (ciphersuite_info == NULL) { continue; + } ssl->session_negotiate->ciphersuite = cipher_suite; handshake->ciphersuite_info = ciphersuite_info; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "selected ciphersuite: %04x - %s", - cipher_suite, - ciphersuite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("selected ciphersuite: %04x - %s", + cipher_suite, + ciphersuite_info->name)); } - if( handshake->ciphersuite_info == NULL ) - { - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return ( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (handshake->ciphersuite_info == NULL) { + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* ... * opaque legacy_compression_methods<1..2^8-1>; * ... */ - if( p[0] != 1 || p[1] != MBEDTLS_SSL_COMPRESS_NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad legacy compression method" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return ( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + if (p[0] != 1 || p[1] != MBEDTLS_SSL_COMPRESS_NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("bad legacy compression method")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } p += 2; @@ -1411,17 +1375,16 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * opaque extension_data<0..2^16-1>; * } Extension; */ - extensions_len = MBEDTLS_GET_UINT16_BE( p, 0 ); + extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, end, extensions_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, extensions_len); extensions_end = p + extensions_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "client hello extensions", p, extensions_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "client hello extensions", p, extensions_len); handshake->received_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - while( p < extensions_end ) - { + while (p < extensions_end) { unsigned int extension_type; size_t extension_data_len; const unsigned char *extension_data_end; @@ -1433,49 +1396,47 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * Servers MUST check that it is the last extension and otherwise fail * the handshake with an "illegal_parameter" alert. */ - if( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) - { + if (handshake->received_extensions & MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY)) { MBEDTLS_SSL_DEBUG_MSG( - 3, ( "pre_shared_key is not last extension." ) ); + 3, ("pre_shared_key is not last extension.")); MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, 4 ); - extension_type = MBEDTLS_GET_UINT16_BE( p, 0 ); - extension_data_len = MBEDTLS_GET_UINT16_BE( p, 2 ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, 4); + extension_type = MBEDTLS_GET_UINT16_BE(p, 0); + extension_data_len = MBEDTLS_GET_UINT16_BE(p, 2); p += 4; - MBEDTLS_SSL_CHK_BUF_READ_PTR( p, extensions_end, extension_data_len ); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, extensions_end, extension_data_len); extension_data_end = p + extension_data_len; ret = mbedtls_ssl_tls13_check_received_extension( - ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, - MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH ); - if( ret != 0 ) - return( ret ); + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, extension_type, + MBEDTLS_SSL_TLS1_3_ALLOWED_EXTS_OF_CH); + if (ret != 0) { + return ret; + } - switch( extension_type ) - { + switch (extension_type) { #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) case MBEDTLS_TLS_EXT_SERVERNAME: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found ServerName extension" ) ); - ret = mbedtls_ssl_parse_server_name_ext( ssl, p, - extension_data_end ); - if( ret != 0 ) - { + MBEDTLS_SSL_DEBUG_MSG(3, ("found ServerName extension")); + ret = mbedtls_ssl_parse_server_name_ext(ssl, p, + extension_data_end); + if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "mbedtls_ssl_parse_servername_ext", ret ); - return( ret ); + 1, "mbedtls_ssl_parse_servername_ext", ret); + return ret; } break; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_ECDH_C) case MBEDTLS_TLS_EXT_SUPPORTED_GROUPS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found supported group extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found supported group extension")); /* Supported Groups Extension * @@ -1484,12 +1445,11 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * ordered from most preferred to least preferred. */ ret = ssl_tls13_parse_supported_groups_ext( - ssl, p, extension_data_end ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_parse_supported_groups_ext", ret ); - return( ret ); + ssl, p, extension_data_end); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_parse_supported_groups_ext", ret); + return ret; } break; @@ -1497,7 +1457,7 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_ECDH_C) case MBEDTLS_TLS_EXT_KEY_SHARE: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found key share extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found key share extension")); /* * Key Share Extension @@ -1507,61 +1467,56 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * ECDHE/DHE key establishment methods. */ ret = ssl_tls13_parse_key_shares_ext( - ssl, p, extension_data_end ); - if( ret == SSL_TLS1_3_PARSE_KEY_SHARES_EXT_NO_MATCH ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "HRR needed " ) ); + ssl, p, extension_data_end); + if (ret == SSL_TLS1_3_PARSE_KEY_SHARES_EXT_NO_MATCH) { + MBEDTLS_SSL_DEBUG_MSG(2, ("HRR needed ")); hrr_required = 1; } - if( ret < 0 ) - { + if (ret < 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "ssl_tls13_parse_key_shares_ext", ret ); - return( ret ); + 1, "ssl_tls13_parse_key_shares_ext", ret); + return ret; } break; #endif /* MBEDTLS_ECDH_C */ case MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found supported versions extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found supported versions extension")); ret = ssl_tls13_parse_supported_versions_ext( - ssl, p, extension_data_end ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - ( "ssl_tls13_parse_supported_versions_ext" ), ret ); - return( ret ); + ssl, p, extension_data_end); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + ("ssl_tls13_parse_supported_versions_ext"), ret); + return ret; } break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) case MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found psk key exchange modes extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found psk key exchange modes extension")); ret = ssl_tls13_parse_key_exchange_modes_ext( - ssl, p, extension_data_end ); - if( ret != 0 ) - { + ssl, p, extension_data_end); + if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "ssl_tls13_parse_key_exchange_modes_ext", ret ); - return( ret ); + 1, "ssl_tls13_parse_key_exchange_modes_ext", ret); + return ret; } break; #endif case MBEDTLS_TLS_EXT_PRE_SHARED_KEY: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found pre_shared_key extension" ) ); - if( ( handshake->received_extensions & - MBEDTLS_SSL_EXT_MASK( PSK_KEY_EXCHANGE_MODES ) ) == 0 ) - { + MBEDTLS_SSL_DEBUG_MSG(3, ("found pre_shared_key extension")); + if ((handshake->received_extensions & + MBEDTLS_SSL_EXT_MASK(PSK_KEY_EXCHANGE_MODES)) == 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER, - MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); - return( MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER ); + MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER); + return MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Delay processing of the PSK identity once we have @@ -1575,30 +1530,29 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_ALPN) case MBEDTLS_TLS_EXT_ALPN: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found alpn extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found alpn extension")); - ret = mbedtls_ssl_parse_alpn_ext( ssl, p, extension_data_end ); - if( ret != 0 ) - { + ret = mbedtls_ssl_parse_alpn_ext(ssl, p, extension_data_end); + if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, ( "mbedtls_ssl_parse_alpn_ext" ), ret ); - return( ret ); + 1, ("mbedtls_ssl_parse_alpn_ext"), ret); + return ret; } break; #endif /* MBEDTLS_SSL_ALPN */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_TLS_EXT_SIG_ALG: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found signature_algorithms extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("found signature_algorithms extension")); ret = mbedtls_ssl_parse_sig_alg_ext( - ssl, p, extension_data_end ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, - ( "ssl_parse_supported_signature_algorithms_server_ext ( %d )", - ret ) ); - return( ret ); + ssl, p, extension_data_end); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_MSG(1, + ( + "ssl_parse_supported_signature_algorithms_server_ext ( %d )", + ret)); + return ret; } break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -1606,19 +1560,19 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, default: MBEDTLS_SSL_PRINT_EXT( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, - extension_type, "( ignored )" ); + extension_type, "( ignored )"); break; } p += extension_data_len; } - MBEDTLS_SSL_PRINT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO, - handshake->received_extensions ); + MBEDTLS_SSL_PRINT_EXTS(3, MBEDTLS_SSL_HS_CLIENT_HELLO, + handshake->received_extensions); - mbedtls_ssl_add_hs_hdr_to_checksum( ssl, - MBEDTLS_SSL_HS_CLIENT_HELLO, - p - buf ); + mbedtls_ssl_add_hs_hdr_to_checksum(ssl, + MBEDTLS_SSL_HS_CLIENT_HELLO, + p - buf); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Update checksum with either @@ -1626,72 +1580,66 @@ static int ssl_tls13_parse_client_hello( mbedtls_ssl_context *ssl, * - The content up to but excluding the PSK extension, if present. */ /* If we've settled on a PSK-based exchange, parse PSK identity ext */ - if( mbedtls_ssl_tls13_some_psk_enabled( ssl ) && - mbedtls_ssl_conf_tls13_some_psk_enabled( ssl ) && - ( handshake->received_extensions & MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ) ) ) - { - handshake->update_checksum( ssl, buf, - pre_shared_key_ext - buf ); - ret = ssl_tls13_parse_pre_shared_key_ext( ssl, - pre_shared_key_ext, - pre_shared_key_ext_end, - cipher_suites, - cipher_suites_end ); - if( ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY ) - { - handshake->received_extensions &= ~MBEDTLS_SSL_EXT_MASK( PRE_SHARED_KEY ); - } - else if( ret != 0 ) - { + if (mbedtls_ssl_tls13_some_psk_enabled(ssl) && + mbedtls_ssl_conf_tls13_some_psk_enabled(ssl) && + (handshake->received_extensions & MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY))) { + handshake->update_checksum(ssl, buf, + pre_shared_key_ext - buf); + ret = ssl_tls13_parse_pre_shared_key_ext(ssl, + pre_shared_key_ext, + pre_shared_key_ext_end, + cipher_suites, + cipher_suites_end); + if (ret == MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY) { + handshake->received_extensions &= ~MBEDTLS_SSL_EXT_MASK(PRE_SHARED_KEY); + } else if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "ssl_tls13_parse_pre_shared_key_ext" , ret ); - return( ret ); + 1, "ssl_tls13_parse_pre_shared_key_ext", ret); + return ret; } - } - else + } else #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED */ { - handshake->update_checksum( ssl, buf, p - buf ); + handshake->update_checksum(ssl, buf, p - buf); } - ret = ssl_tls13_determine_key_exchange_mode( ssl ); - if( ret < 0 ) - return( ret ); + ret = ssl_tls13_determine_key_exchange_mode(ssl); + if (ret < 0) { + return ret; + } - mbedtls_ssl_optimize_checksum( ssl, handshake->ciphersuite_info ); + mbedtls_ssl_optimize_checksum(ssl, handshake->ciphersuite_info); - return( hrr_required ? SSL_CLIENT_HELLO_HRR_REQUIRED : SSL_CLIENT_HELLO_OK ); + return hrr_required ? SSL_CLIENT_HELLO_HRR_REQUIRED : SSL_CLIENT_HELLO_OK; } /* Update the handshake state machine */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_postprocess_client_hello( mbedtls_ssl_context* ssl ) +static int ssl_tls13_postprocess_client_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* * Server certificate selection */ - if( ssl->conf->f_cert_cb && ( ret = ssl->conf->f_cert_cb( ssl ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "f_cert_cb", ret ); - return( ret ); + if (ssl->conf->f_cert_cb && (ret = ssl->conf->f_cert_cb(ssl)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "f_cert_cb", ret); + return ret; } #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) ssl->handshake->sni_name = NULL; ssl->handshake->sni_name_len = 0; #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ - ret = mbedtls_ssl_tls13_key_schedule_stage_early( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls1_3_key_schedule_stage_early", ret ); - return( ret ); + ret = mbedtls_ssl_tls13_key_schedule_stage_early(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls1_3_key_schedule_stage_early", ret); + return ret; } - return( 0 ); + return 0; } @@ -1700,71 +1648,70 @@ static int ssl_tls13_postprocess_client_hello( mbedtls_ssl_context* ssl ) */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_client_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_client_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char* buf = NULL; + unsigned char *buf = NULL; size_t buflen = 0; int parse_client_hello_ret; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> parse client hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> parse client hello")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_fetch_handshake_msg( - ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, - &buf, &buflen ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_tls13_fetch_handshake_msg( + ssl, MBEDTLS_SSL_HS_CLIENT_HELLO, + &buf, &buflen)); - MBEDTLS_SSL_PROC_CHK_NEG( ssl_tls13_parse_client_hello( ssl, buf, - buf + buflen ) ); + MBEDTLS_SSL_PROC_CHK_NEG(ssl_tls13_parse_client_hello(ssl, buf, + buf + buflen)); parse_client_hello_ret = ret; /* Store return value of parse_client_hello, * only SSL_CLIENT_HELLO_OK or * SSL_CLIENT_HELLO_HRR_REQUIRED at this * stage as negative error codes are handled * by MBEDTLS_SSL_PROC_CHK_NEG. */ - MBEDTLS_SSL_PROC_CHK( ssl_tls13_postprocess_client_hello( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_postprocess_client_hello(ssl)); - if( parse_client_hello_ret == SSL_CLIENT_HELLO_OK ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_HELLO ); - else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HELLO_RETRY_REQUEST ); + if (parse_client_hello_ret == SSL_CLIENT_HELLO_OK) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_HELLO); + } else { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HELLO_RETRY_REQUEST); + } cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= parse client hello" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= parse client hello")); + return ret; } /* * Handler for MBEDTLS_SSL_SERVER_HELLO */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_prepare_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_prepare_server_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *server_randbytes = - ssl->handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN; - if( ssl->conf->f_rng == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no RNG provided" ) ); - return( MBEDTLS_ERR_SSL_NO_RNG ); + ssl->handshake->randbytes + MBEDTLS_CLIENT_HELLO_RANDOM_LEN; + if (ssl->conf->f_rng == NULL) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no RNG provided")); + return MBEDTLS_ERR_SSL_NO_RNG; } - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, server_randbytes, - MBEDTLS_SERVER_HELLO_RANDOM_LEN ) ) != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "f_rng", ret ); - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, server_randbytes, + MBEDTLS_SERVER_HELLO_RANDOM_LEN)) != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "f_rng", ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, random bytes", server_randbytes, - MBEDTLS_SERVER_HELLO_RANDOM_LEN ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, random bytes", server_randbytes, + MBEDTLS_SERVER_HELLO_RANDOM_LEN); #if defined(MBEDTLS_HAVE_TIME) - ssl->session_negotiate->start = time( NULL ); + ssl->session_negotiate->start = time(NULL); #endif /* MBEDTLS_HAVE_TIME */ - return( ret ); + return ret; } /* @@ -1776,39 +1723,39 @@ static int ssl_tls13_prepare_server_hello( mbedtls_ssl_context *ssl ) */ MBEDTLS_CHECK_RETURN_CRITICAL static int ssl_tls13_write_server_hello_supported_versions_ext( - mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) + mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, write selected version" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, write selected version")); /* Check if we have space to write the extension: * - extension_type (2 bytes) * - extension_data_length (2 bytes) * - selected_version (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, 6); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, buf, 0 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS, buf, 0); - MBEDTLS_PUT_UINT16_BE( 2, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(2, buf, 2); - mbedtls_ssl_write_version( buf + 4, - ssl->conf->transport, - ssl->tls_version ); + mbedtls_ssl_write_version(buf + 4, + ssl->conf->transport, + ssl->tls_version); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "supported version: [%04x]", - ssl->tls_version ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("supported version: [%04x]", + ssl->tls_version)); *out_len = 6; mbedtls_ssl_tls13_set_hs_sent_ext_mask( - ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ); + ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS); - return( 0 ); + return 0; } @@ -1816,36 +1763,30 @@ static int ssl_tls13_write_server_hello_supported_versions_ext( /* Generate and export a single key share. For hybrid KEMs, this can * be called multiple times with the different components of the hybrid. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_generate_and_write_key_share( mbedtls_ssl_context *ssl, - uint16_t named_group, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_generate_and_write_key_share(mbedtls_ssl_context *ssl, + uint16_t named_group, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; *out_len = 0; #if defined(MBEDTLS_ECDH_C) - if( mbedtls_ssl_tls13_named_group_is_ecdhe( named_group ) ) - { + if (mbedtls_ssl_tls13_named_group_is_ecdhe(named_group)) { ret = mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange( - ssl, named_group, buf, end, out_len ); - if( ret != 0 ) - { + ssl, named_group, buf, end, out_len); + if (ret != 0) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_tls13_generate_and_write_ecdh_key_exchange", - ret ); - return( ret ); + ret); + return ret; } - } - else + } else #endif /* MBEDTLS_ECDH_C */ - if( 0 /* Other kinds of KEMs */ ) - { - } - else - { + if (0 /* Other kinds of KEMs */) { + } else { ((void) ssl); ((void) named_group); ((void) buf); @@ -1853,7 +1794,7 @@ static int ssl_tls13_generate_and_write_key_share( mbedtls_ssl_context *ssl, ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; } - return( ret ); + return ret; } /* @@ -1870,10 +1811,10 @@ static int ssl_tls13_generate_and_write_key_share( mbedtls_ssl_context *ssl, * } KeyShareServerHello; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_key_share_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -1883,11 +1824,11 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, adding key share extension" ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("server hello, adding key share extension")); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "server hello, write selected_group: %s (%04x)", - mbedtls_ssl_named_group_to_str( group ), - group ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("server hello, write selected_group: %s (%04x)", + mbedtls_ssl_named_group_to_str(group), + group)); /* Check if we have space for header and length fields: * - extension_type (2 bytes) @@ -1895,35 +1836,36 @@ static int ssl_tls13_write_key_share_ext( mbedtls_ssl_context *ssl, * - group (2 bytes) * - key_exchange_length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 8 ); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_KEY_SHARE, p, 0 ); - MBEDTLS_PUT_UINT16_BE( group, server_share, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 8); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_KEY_SHARE, p, 0); + MBEDTLS_PUT_UINT16_BE(group, server_share, 0); p += 8; /* When we introduce PQC-ECDHE hybrids, we'll want to call this * function multiple times. */ ret = ssl_tls13_generate_and_write_key_share( - ssl, group, server_share + 4, end, &key_exchange_length ); - if( ret != 0 ) - return( ret ); + ssl, group, server_share + 4, end, &key_exchange_length); + if (ret != 0) { + return ret; + } p += key_exchange_length; - MBEDTLS_PUT_UINT16_BE( key_exchange_length, server_share + 2, 0 ); + MBEDTLS_PUT_UINT16_BE(key_exchange_length, server_share + 2, 0); - MBEDTLS_PUT_UINT16_BE( p - server_share, buf, 2 ); + MBEDTLS_PUT_UINT16_BE(p - server_share, buf, 2); *out_len = p - buf; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_KEY_SHARE); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_hrr_key_share_ext(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { uint16_t selected_group = ssl->handshake->hrr_selected_group; /* key_share Extension @@ -1945,21 +1887,20 @@ static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, * of the HRR is then to transmit a cookie to force the client to demonstrate * reachability at their apparent network address (primarily useful for DTLS). */ - if( ! mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral( ssl ) ) - return( 0 ); + if (!mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral(ssl)) { + return 0; + } /* We should only send the key_share extension if the client's initial * key share was not acceptable. */ - if( ssl->handshake->offered_group_id != 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Skip key_share extension in HRR" ) ); - return( 0 ); + if (ssl->handshake->offered_group_id != 0) { + MBEDTLS_SSL_DEBUG_MSG(4, ("Skip key_share extension in HRR")); + return 0; } - if( selected_group == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "no matching named group found" ) ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (selected_group == 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("no matching named group found")); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* Check if we have enough space: @@ -1967,22 +1908,22 @@ static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, * - extension_data_length (2 bytes) * - selected_group (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 6 ); + MBEDTLS_SSL_CHK_BUF_PTR(buf, end, 6); - MBEDTLS_PUT_UINT16_BE( MBEDTLS_TLS_EXT_KEY_SHARE, buf, 0 ); - MBEDTLS_PUT_UINT16_BE( 2, buf, 2 ); - MBEDTLS_PUT_UINT16_BE( selected_group, buf, 4 ); + MBEDTLS_PUT_UINT16_BE(MBEDTLS_TLS_EXT_KEY_SHARE, buf, 0); + MBEDTLS_PUT_UINT16_BE(2, buf, 2); + MBEDTLS_PUT_UINT16_BE(selected_group, buf, 4); - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "HRR selected_group: %s (%x)", - mbedtls_ssl_named_group_to_str( selected_group ), - selected_group ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("HRR selected_group: %s (%x)", + mbedtls_ssl_named_group_to_str(selected_group), + selected_group)); *out_len = 6; - mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE ); + mbedtls_ssl_tls13_set_hs_sent_ext_mask(ssl, MBEDTLS_TLS_EXT_KEY_SHARE); - return( 0 ); + return 0; } /* @@ -1998,11 +1939,11 @@ static int ssl_tls13_write_hrr_key_share_ext( mbedtls_ssl_context *ssl, * } ServerHello; */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len, - int is_hrr ) +static int ssl_tls13_write_server_hello_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len, + int is_hrr) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2018,8 +1959,8 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, * with ProtocolVersion defined as: * uint16 ProtocolVersion; */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( 0x0303, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(0x0303, p, 0); p += 2; /* ... @@ -2028,35 +1969,31 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, * with Random defined as: * opaque Random[MBEDTLS_SERVER_HELLO_RANDOM_LEN]; */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN ); - if( is_hrr ) - { - memcpy( p, mbedtls_ssl_tls13_hello_retry_request_magic, - MBEDTLS_SERVER_HELLO_RANDOM_LEN ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, MBEDTLS_SERVER_HELLO_RANDOM_LEN); + if (is_hrr) { + memcpy(p, mbedtls_ssl_tls13_hello_retry_request_magic, + MBEDTLS_SERVER_HELLO_RANDOM_LEN); + } else { + memcpy(p, &ssl->handshake->randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN], + MBEDTLS_SERVER_HELLO_RANDOM_LEN); } - else - { - memcpy( p, &ssl->handshake->randbytes[MBEDTLS_CLIENT_HELLO_RANDOM_LEN], - MBEDTLS_SERVER_HELLO_RANDOM_LEN ); - } - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello, random bytes", - p, MBEDTLS_SERVER_HELLO_RANDOM_LEN ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello, random bytes", + p, MBEDTLS_SERVER_HELLO_RANDOM_LEN); p += MBEDTLS_SERVER_HELLO_RANDOM_LEN; /* ... * opaque legacy_session_id_echo<0..32>; * ... */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 + ssl->session_negotiate->id_len ); - *p++ = (unsigned char)ssl->session_negotiate->id_len; - if( ssl->session_negotiate->id_len > 0 ) - { - memcpy( p, &ssl->session_negotiate->id[0], - ssl->session_negotiate->id_len ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 1 + ssl->session_negotiate->id_len); + *p++ = (unsigned char) ssl->session_negotiate->id_len; + if (ssl->session_negotiate->id_len > 0) { + memcpy(p, &ssl->session_negotiate->id[0], + ssl->session_negotiate->id_len); p += ssl->session_negotiate->id_len; - MBEDTLS_SSL_DEBUG_BUF( 3, "session id", ssl->session_negotiate->id, - ssl->session_negotiate->id_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "session id", ssl->session_negotiate->id, + ssl->session_negotiate->id_len); } /* ... @@ -2065,20 +2002,20 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, * with CipherSuite defined as: * uint8 CipherSuite[2]; */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( ssl->session_negotiate->ciphersuite, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(ssl->session_negotiate->ciphersuite, p, 0); p += 2; - MBEDTLS_SSL_DEBUG_MSG( 3, - ( "server hello, chosen ciphersuite: %s ( id=%d )", - mbedtls_ssl_get_ciphersuite_name( - ssl->session_negotiate->ciphersuite ), - ssl->session_negotiate->ciphersuite ) ); + MBEDTLS_SSL_DEBUG_MSG(3, + ("server hello, chosen ciphersuite: %s ( id=%d )", + mbedtls_ssl_get_ciphersuite_name( + ssl->session_negotiate->ciphersuite), + ssl->session_negotiate->ciphersuite)); /* ... * uint8 legacy_compression_method = 0; * ... */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 1); *p++ = MBEDTLS_SSL_COMPRESS_NULL; /* ... @@ -2089,103 +2026,101 @@ static int ssl_tls13_write_server_hello_body( mbedtls_ssl_context *ssl, * opaque extension_data<0..2^16-1>; * } Extension; */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); p_extensions_len = p; p += 2; - if( ( ret = ssl_tls13_write_server_hello_supported_versions_ext( - ssl, p, end, &output_len ) ) != 0 ) - { + if ((ret = ssl_tls13_write_server_hello_supported_versions_ext( + ssl, p, end, &output_len)) != 0) { MBEDTLS_SSL_DEBUG_RET( - 1, "ssl_tls13_write_server_hello_supported_versions_ext", ret ); - return( ret ); + 1, "ssl_tls13_write_server_hello_supported_versions_ext", ret); + return ret; } p += output_len; - if( mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral( ssl ) ) - { - if( is_hrr ) - ret = ssl_tls13_write_hrr_key_share_ext( ssl, p, end, &output_len ); - else - ret = ssl_tls13_write_key_share_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + if (mbedtls_ssl_tls13_key_exchange_mode_with_ephemeral(ssl)) { + if (is_hrr) { + ret = ssl_tls13_write_hrr_key_share_ext(ssl, p, end, &output_len); + } else { + ret = ssl_tls13_write_key_share_ext(ssl, p, end, &output_len); + } + if (ret != 0) { + return ret; + } p += output_len; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - if( !is_hrr && mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) - { - ret = ssl_tls13_write_server_pre_shared_key_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_write_server_pre_shared_key_ext", - ret ); - return( ret ); + if (!is_hrr && mbedtls_ssl_tls13_key_exchange_mode_with_psk(ssl)) { + ret = ssl_tls13_write_server_pre_shared_key_ext(ssl, p, end, &output_len); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_write_server_pre_shared_key_ext", + ret); + return ret; } p += output_len; } #endif - MBEDTLS_PUT_UINT16_BE( p - p_extensions_len - 2, p_extensions_len, 0 ); + MBEDTLS_PUT_UINT16_BE(p - p_extensions_len - 2, p_extensions_len, 0); - MBEDTLS_SSL_DEBUG_BUF( 4, "server hello extensions", - p_extensions_len, p - p_extensions_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "server hello extensions", + p_extensions_len, p - p_extensions_len); *out_len = p - buf; - MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "server hello", buf, *out_len); MBEDTLS_SSL_PRINT_EXTS( 3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST : - MBEDTLS_SSL_HS_SERVER_HELLO, - ssl->handshake->sent_extensions ); + MBEDTLS_SSL_HS_SERVER_HELLO, + ssl->handshake->sent_extensions); - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_finalize_write_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_finalize_write_server_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ssl_tls13_compute_handshake_transform( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_compute_handshake_transform", - ret ); - return( ret ); + ret = mbedtls_ssl_tls13_compute_handshake_transform(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_compute_handshake_transform", + ret); + return ret; } - return( ret ); + return ret; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_server_hello( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_server_hello(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write server hello" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write server hello")); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_server_hello( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_prepare_server_hello(ssl)); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_SERVER_HELLO, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_SERVER_HELLO, &buf, + &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_server_hello_body( ssl, buf, - buf + buf_len, - &msg_len, - 0 ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_server_hello_body(ssl, buf, + buf + buf_len, + &msg_len, + 0)); mbedtls_ssl_add_hs_msg_to_checksum( - ssl, MBEDTLS_SSL_HS_SERVER_HELLO, buf, msg_len ); + ssl, MBEDTLS_SSL_HS_SERVER_HELLO, buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_finalize_write_server_hello( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_finalize_write_server_hello(ssl)); #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) /* The server sends a dummy change_cipher_spec record immediately @@ -2193,15 +2128,15 @@ static int ssl_tls13_write_server_hello( mbedtls_ssl_context *ssl ) * a ServerHello or a HelloRetryRequest. */ mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO ); + ssl, MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO); #else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS); #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write server hello" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write server hello")); + return ret; } @@ -2209,57 +2144,55 @@ cleanup: * Handler for MBEDTLS_SSL_HELLO_RETRY_REQUEST */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_prepare_hello_retry_request( mbedtls_ssl_context *ssl ) +static int ssl_tls13_prepare_hello_retry_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl->handshake->hello_retry_request_count > 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Too many HRRs" ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if (ssl->handshake->hello_retry_request_count > 0) { + MBEDTLS_SSL_DEBUG_MSG(1, ("Too many HRRs")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } /* * Create stateless transcript hash for HRR */ - MBEDTLS_SSL_DEBUG_MSG( 4, ( "Reset transcript for HRR" ) ); - ret = mbedtls_ssl_reset_transcript_for_hrr( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_reset_transcript_for_hrr", ret ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(4, ("Reset transcript for HRR")); + ret = mbedtls_ssl_reset_transcript_for_hrr(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_reset_transcript_for_hrr", ret); + return ret; } - mbedtls_ssl_session_reset_msg_layer( ssl, 0 ); + mbedtls_ssl_session_reset_msg_layer(ssl, 0); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_hello_retry_request( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_hello_retry_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write hello retry request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write hello retry request")); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_hello_retry_request( ssl ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_prepare_hello_retry_request(ssl)); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( - ssl, MBEDTLS_SSL_HS_SERVER_HELLO, - &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg( + ssl, MBEDTLS_SSL_HS_SERVER_HELLO, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_server_hello_body( ssl, buf, - buf + buf_len, - &msg_len, - 1 ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_server_hello_body(ssl, buf, + buf + buf_len, + &msg_len, + 1)); mbedtls_ssl_add_hs_msg_to_checksum( - ssl, MBEDTLS_SSL_HS_SERVER_HELLO, buf, msg_len ); + ssl, MBEDTLS_SSL_HS_SERVER_HELLO, buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( ssl, buf_len, - msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg(ssl, buf_len, + msg_len)); ssl->handshake->hello_retry_request_count++; @@ -2269,14 +2202,14 @@ static int ssl_tls13_write_hello_retry_request( mbedtls_ssl_context *ssl ) * a ServerHello or a HelloRetryRequest. */ mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST ); + ssl, MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST); #else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write hello retry request" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write hello retry request")); + return ret; } /* @@ -2290,10 +2223,10 @@ cleanup: * */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_encrypted_extensions_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2303,7 +2236,7 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, *out_len = 0; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); p_extensions_len = p; p += 2; @@ -2312,64 +2245,67 @@ static int ssl_tls13_write_encrypted_extensions_body( mbedtls_ssl_context *ssl, ((void) output_len); #if defined(MBEDTLS_SSL_ALPN) - ret = mbedtls_ssl_write_alpn_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_write_alpn_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; #endif /* MBEDTLS_SSL_ALPN */ - extensions_len = ( p - p_extensions_len ) - 2; - MBEDTLS_PUT_UINT16_BE( extensions_len, p_extensions_len, 0 ); + extensions_len = (p - p_extensions_len) - 2; + MBEDTLS_PUT_UINT16_BE(extensions_len, p_extensions_len, 0); *out_len = p - buf; - MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len ); + MBEDTLS_SSL_DEBUG_BUF(4, "encrypted extensions", buf, *out_len); MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, ssl->handshake->sent_extensions); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_encrypted_extensions( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_encrypted_extensions(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *buf; size_t buf_len, msg_len; - mbedtls_ssl_set_outbound_transform( ssl, - ssl->handshake->transform_handshake ); + mbedtls_ssl_set_outbound_transform(ssl, + ssl->handshake->transform_handshake); MBEDTLS_SSL_DEBUG_MSG( - 3, ( "switching to handshake transform for outbound data" ) ); + 3, ("switching to handshake transform for outbound data")); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write encrypted extensions" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write encrypted extensions")); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, &buf, + &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_encrypted_extensions_body( - ssl, buf, buf + buf_len, &msg_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_encrypted_extensions_body( + ssl, buf, buf + buf_len, &msg_len)); mbedtls_ssl_add_hs_msg_to_checksum( - ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, buf, msg_len ); + ssl, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS, buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) - if( mbedtls_ssl_tls13_key_exchange_mode_with_psk( ssl ) ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); - else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CERTIFICATE_REQUEST ); + if (mbedtls_ssl_tls13_key_exchange_mode_with_psk(ssl)) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); + } else { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CERTIFICATE_REQUEST); + } #else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); #endif cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write encrypted extensions" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write encrypted extensions")); + return ret; } #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) @@ -2384,26 +2320,25 @@ cleanup: * should be skipped or not. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_certificate_request_coordinate(mbedtls_ssl_context *ssl) { int authmode; #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - if( ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET ) + if (ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET) { authmode = ssl->handshake->sni_authmode; - else + } else #endif authmode = ssl->conf->authmode; - if( authmode == MBEDTLS_SSL_VERIFY_NONE ) - { + if (authmode == MBEDTLS_SSL_VERIFY_NONE) { ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_SKIP_VERIFY; - return( SSL_CERTIFICATE_REQUEST_SKIP ); + return SSL_CERTIFICATE_REQUEST_SKIP; } ssl->handshake->certificate_request_sent = 1; - return( SSL_CERTIFICATE_REQUEST_SEND_REQUEST ); + return SSL_CERTIFICATE_REQUEST_SEND_REQUEST; } /* @@ -2414,10 +2349,10 @@ static int ssl_tls13_certificate_request_coordinate( mbedtls_ssl_context *ssl ) * */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - const unsigned char *end, - size_t *out_len ) +static int ssl_tls13_write_certificate_request_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *out_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2430,7 +2365,7 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, * - certificate_request_context (1 byte) * - extensions length (2 bytes) */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 3 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 3); /* * Write certificate_request_context @@ -2448,103 +2383,101 @@ static int ssl_tls13_write_certificate_request_body( mbedtls_ssl_context *ssl, /* The extensions must contain the signature_algorithms. */ p_extensions_len = p; p += 2; - ret = mbedtls_ssl_write_sig_alg_ext( ssl, p, end, &output_len ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_write_sig_alg_ext(ssl, p, end, &output_len); + if (ret != 0) { + return ret; + } p += output_len; - MBEDTLS_PUT_UINT16_BE( p - p_extensions_len - 2, p_extensions_len, 0 ); + MBEDTLS_PUT_UINT16_BE(p - p_extensions_len - 2, p_extensions_len, 0); *out_len = p - buf; MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, ssl->handshake->sent_extensions); - return( 0 ); + return 0; } MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_certificate_request( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_certificate_request(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write certificate request" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write certificate request")); - MBEDTLS_SSL_PROC_CHK_NEG( ssl_tls13_certificate_request_coordinate( ssl ) ); + MBEDTLS_SSL_PROC_CHK_NEG(ssl_tls13_certificate_request_coordinate(ssl)); - if( ret == SSL_CERTIFICATE_REQUEST_SEND_REQUEST ) - { + if (ret == SSL_CERTIFICATE_REQUEST_SEND_REQUEST) { unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_certificate_request_body( - ssl, buf, buf + buf_len, &msg_len ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_certificate_request_body( + ssl, buf, buf + buf_len, &msg_len)); mbedtls_ssl_add_hs_msg_to_checksum( - ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, buf, msg_len ); + ssl, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST, buf, msg_len); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); - } - else if( ret == SSL_CERTIFICATE_REQUEST_SKIP ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate request" ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); + } else if (ret == SSL_CERTIFICATE_REQUEST_SKIP) { + MBEDTLS_SSL_DEBUG_MSG(2, ("<= skip write certificate request")); ret = 0; - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + } else { + MBEDTLS_SSL_DEBUG_MSG(1, ("should never happen")); ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR; goto cleanup; } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_CERTIFICATE ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_CERTIFICATE); cleanup: - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write certificate request" ) ); - return( ret ); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write certificate request")); + return ret; } /* * Handler for MBEDTLS_SSL_SERVER_CERTIFICATE */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_server_certificate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_server_certificate(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( ( ssl_tls13_pick_key_cert( ssl ) != 0 ) || - mbedtls_ssl_own_cert( ssl ) == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "No certificate available." ) ); - MBEDTLS_SSL_PEND_FATAL_ALERT( MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); - return( MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); + if ((ssl_tls13_pick_key_cert(ssl) != 0) || + mbedtls_ssl_own_cert(ssl) == NULL) { + MBEDTLS_SSL_DEBUG_MSG(2, ("No certificate available.")); + MBEDTLS_SSL_PEND_FATAL_ALERT(MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ - ret = mbedtls_ssl_tls13_write_certificate( ssl ); - if( ret != 0 ) - return( ret ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CERTIFICATE_VERIFY ); - return( 0 ); + ret = mbedtls_ssl_tls13_write_certificate(ssl); + if (ret != 0) { + return ret; + } + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CERTIFICATE_VERIFY); + return 0; } /* * Handler for MBEDTLS_SSL_CERTIFICATE_VERIFY */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_certificate_verify(mbedtls_ssl_context *ssl) { - int ret = mbedtls_ssl_tls13_write_certificate_verify( ssl ); - if( ret != 0 ) - return( ret ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_SERVER_FINISHED ); - return( 0 ); + int ret = mbedtls_ssl_tls13_write_certificate_verify(ssl); + if (ret != 0) { + return ret; + } + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_SERVER_FINISHED); + return 0; } #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ @@ -2552,77 +2485,76 @@ static int ssl_tls13_write_certificate_verify( mbedtls_ssl_context *ssl ) * Handler for MBEDTLS_SSL_SERVER_FINISHED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_server_finished( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_server_finished(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ssl_tls13_write_finished_message( ssl ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_ssl_tls13_write_finished_message(ssl); + if (ret != 0) { + return ret; + } - ret = mbedtls_ssl_tls13_compute_application_transform( ssl ); - if( ret != 0 ) - { + ret = mbedtls_ssl_tls13_compute_application_transform(ssl); + if (ret != 0) { MBEDTLS_SSL_PEND_FATAL_ALERT( - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, - MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE ); - return( ret ); + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE, + MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Switch to handshake keys for inbound traffic" ) ); - mbedtls_ssl_set_inbound_transform( ssl, ssl->handshake->transform_handshake ); + MBEDTLS_SSL_DEBUG_MSG(1, ("Switch to handshake keys for inbound traffic")); + mbedtls_ssl_set_inbound_transform(ssl, ssl->handshake->transform_handshake); - if( ssl->handshake->certificate_request_sent ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE ); - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "skip parse certificate" ) ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "skip parse certificate verify" ) ); - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_FINISHED ); + if (ssl->handshake->certificate_request_sent) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("skip parse certificate")); + MBEDTLS_SSL_DEBUG_MSG(2, ("skip parse certificate verify")); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_FINISHED); } - return( 0 ); + return 0; } /* * Handler for MBEDTLS_SSL_CLIENT_FINISHED */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_process_client_finished( mbedtls_ssl_context *ssl ) +static int ssl_tls13_process_client_finished(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_ssl_tls13_process_finished_message( ssl ); - if( ret != 0 ) - return( ret ); - - ret = mbedtls_ssl_tls13_compute_resumption_master_secret( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "mbedtls_ssl_tls13_compute_resumption_master_secret", ret ); + ret = mbedtls_ssl_tls13_process_finished_message(ssl); + if (ret != 0) { + return ret; } - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_WRAPUP ); - return( 0 ); + ret = mbedtls_ssl_tls13_compute_resumption_master_secret(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "mbedtls_ssl_tls13_compute_resumption_master_secret", ret); + } + + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_WRAPUP); + return 0; } /* * Handler for MBEDTLS_SSL_HANDSHAKE_WRAPUP */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) +static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "handshake: done" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("handshake: done")); - mbedtls_ssl_tls13_handshake_wrapup( ssl ); + mbedtls_ssl_tls13_handshake_wrapup(ssl); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); #else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); #endif - return( 0 ); + return 0; } /* @@ -2631,37 +2563,34 @@ static int ssl_tls13_handshake_wrapup( mbedtls_ssl_context *ssl ) #define SSL_NEW_SESSION_TICKET_SKIP 0 #define SSL_NEW_SESSION_TICKET_WRITE 1 MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_new_session_ticket_coordinate( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_new_session_ticket_coordinate(mbedtls_ssl_context *ssl) { /* Check whether the use of session tickets is enabled */ - if( ssl->conf->f_ticket_write == NULL ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: disabled," - " callback is not set" ) ); - return( SSL_NEW_SESSION_TICKET_SKIP ); + if (ssl->conf->f_ticket_write == NULL) { + MBEDTLS_SSL_DEBUG_MSG(2, ("NewSessionTicket: disabled," + " callback is not set")); + return SSL_NEW_SESSION_TICKET_SKIP; } - if( ssl->conf->new_session_tickets_count == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: disabled," - " configured count is zero" ) ); - return( SSL_NEW_SESSION_TICKET_SKIP ); + if (ssl->conf->new_session_tickets_count == 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("NewSessionTicket: disabled," + " configured count is zero")); + return SSL_NEW_SESSION_TICKET_SKIP; } - if( ssl->handshake->new_session_tickets_count == 0 ) - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "NewSessionTicket: all tickets have " - "been sent." ) ); - return( SSL_NEW_SESSION_TICKET_SKIP ); + if (ssl->handshake->new_session_tickets_count == 0) { + MBEDTLS_SSL_DEBUG_MSG(2, ("NewSessionTicket: all tickets have " + "been sent.")); + return SSL_NEW_SESSION_TICKET_SKIP; } - return( SSL_NEW_SESSION_TICKET_WRITE ); + return SSL_NEW_SESSION_TICKET_WRITE; } #if defined(MBEDTLS_SSL_SESSION_TICKETS) MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, - unsigned char *ticket_nonce, - size_t ticket_nonce_size ) +static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, + unsigned char *ticket_nonce, + size_t ticket_nonce_size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_session *session = ssl->session; @@ -2669,41 +2598,38 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, psa_algorithm_t psa_hash_alg; int hash_length; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> prepare NewSessionTicket msg" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> prepare NewSessionTicket msg")); #if defined(MBEDTLS_HAVE_TIME) - session->start = mbedtls_time( NULL ); + session->start = mbedtls_time(NULL); #endif /* Generate ticket_age_add */ - if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, - (unsigned char *) &session->ticket_age_add, - sizeof( session->ticket_age_add ) ) != 0 ) ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "generate_ticket_age_add", ret ); - return( ret ); + if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, + (unsigned char *) &session->ticket_age_add, + sizeof(session->ticket_age_add)) != 0)) { + MBEDTLS_SSL_DEBUG_RET(1, "generate_ticket_age_add", ret); + return ret; } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket_age_add: %u", - (unsigned int)session->ticket_age_add ) ); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket_age_add: %u", + (unsigned int) session->ticket_age_add)); /* Generate ticket_nonce */ - ret = ssl->conf->f_rng( ssl->conf->p_rng, ticket_nonce, ticket_nonce_size ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "generate_ticket_nonce", ret ); - return( ret ); + ret = ssl->conf->f_rng(ssl->conf->p_rng, ticket_nonce, ticket_nonce_size); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "generate_ticket_nonce", ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 3, "ticket_nonce:", - ticket_nonce, ticket_nonce_size ); + MBEDTLS_SSL_DEBUG_BUF(3, "ticket_nonce:", + ticket_nonce, ticket_nonce_size); ciphersuite_info = - (mbedtls_ssl_ciphersuite_t *) ssl->handshake->ciphersuite_info; - psa_hash_alg = mbedtls_psa_translate_md( ciphersuite_info->mac ); - hash_length = PSA_HASH_LENGTH( psa_hash_alg ); - if( hash_length == -1 || - (size_t)hash_length > sizeof( session->resumption_key ) ) - { - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + (mbedtls_ssl_ciphersuite_t *) ssl->handshake->ciphersuite_info; + psa_hash_alg = mbedtls_psa_translate_md(ciphersuite_info->mac); + hash_length = PSA_HASH_LENGTH(psa_hash_alg); + if (hash_length == -1 || + (size_t) hash_length > sizeof(session->resumption_key)) { + return MBEDTLS_ERR_SSL_INTERNAL_ERROR; } /* In this code the psk key length equals the length of the hash */ @@ -2716,31 +2642,30 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, * "resumption", ticket_nonce, Hash.length ) */ ret = mbedtls_ssl_tls13_hkdf_expand_label( - psa_hash_alg, - session->app_secrets.resumption_master_secret, - hash_length, - MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN( resumption ), - ticket_nonce, - ticket_nonce_size, - session->resumption_key, - hash_length ); + psa_hash_alg, + session->app_secrets.resumption_master_secret, + hash_length, + MBEDTLS_SSL_TLS1_3_LBL_WITH_LEN(resumption), + ticket_nonce, + ticket_nonce_size, + session->resumption_key, + hash_length); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 2, - "Creating the ticket-resumed PSK failed", - ret ); - return ( ret ); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(2, + "Creating the ticket-resumed PSK failed", + ret); + return ret; } - MBEDTLS_SSL_DEBUG_BUF( 3, "Ticket-resumed PSK", - session->resumption_key, - session->resumption_key_len ); + MBEDTLS_SSL_DEBUG_BUF(3, "Ticket-resumed PSK", + session->resumption_key, + session->resumption_key_len); - MBEDTLS_SSL_DEBUG_BUF( 3, "resumption_master_secret", - session->app_secrets.resumption_master_secret, - hash_length ); + MBEDTLS_SSL_DEBUG_BUF(3, "resumption_master_secret", + session->app_secrets.resumption_master_secret, + hash_length); - return( 0 ); + return 0; } /* This function creates a NewSessionTicket message in the following format: @@ -2768,12 +2693,12 @@ static int ssl_tls13_prepare_new_session_ticket( mbedtls_ssl_context *ssl, * - ciphersuite (ciphersuite) */ MBEDTLS_CHECK_RETURN_CRITICAL -static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, - unsigned char *buf, - unsigned char *end, - size_t *out_len, - unsigned char *ticket_nonce, - size_t ticket_nonce_size ) +static int ssl_tls13_write_new_session_ticket_body(mbedtls_ssl_context *ssl, + unsigned char *buf, + unsigned char *end, + size_t *out_len, + unsigned char *ticket_nonce, + size_t ticket_nonce_size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; @@ -2782,7 +2707,7 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, uint32_t ticket_lifetime; *out_len = 0; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write NewSessionTicket msg" ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> write NewSessionTicket msg")); /* * ticket_lifetime 4 bytes @@ -2790,19 +2715,18 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * ticket_nonce 1 + ticket_nonce_size bytes * ticket >=2 bytes */ - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 + 4 + 1 + ticket_nonce_size + 2 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 4 + 4 + 1 + ticket_nonce_size + 2); /* Generate ticket and ticket_lifetime */ - ret = ssl->conf->f_ticket_write( ssl->conf->p_ticket, - session, - p + 9 + ticket_nonce_size + 2, - end, - &ticket_len, - &ticket_lifetime); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "write_ticket", ret ); - return( ret ); + ret = ssl->conf->f_ticket_write(ssl->conf->p_ticket, + session, + p + 9 + ticket_nonce_size + 2, + end, + &ticket_len, + &ticket_lifetime); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "write_ticket", ret); + return ret; } /* RFC 8446 4.6.1 * ticket_lifetime: Indicates the lifetime in seconds as a 32-bit @@ -2815,29 +2739,29 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, * MAY treat a ticket as valid for a shorter period of time than what * is stated in the ticket_lifetime. */ - if( ticket_lifetime > 604800 ) + if (ticket_lifetime > 604800) { ticket_lifetime = 604800; - MBEDTLS_PUT_UINT32_BE( ticket_lifetime, p, 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket_lifetime: %u", - ( unsigned int )ticket_lifetime ) ); + } + MBEDTLS_PUT_UINT32_BE(ticket_lifetime, p, 0); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket_lifetime: %u", + (unsigned int) ticket_lifetime)); /* Write ticket_age_add */ - MBEDTLS_PUT_UINT32_BE( session->ticket_age_add, p, 4 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "ticket_age_add: %u", - ( unsigned int )session->ticket_age_add ) ); + MBEDTLS_PUT_UINT32_BE(session->ticket_age_add, p, 4); + MBEDTLS_SSL_DEBUG_MSG(3, ("ticket_age_add: %u", + (unsigned int) session->ticket_age_add)); /* Write ticket_nonce */ - p[8] = ( unsigned char )ticket_nonce_size; - if( ticket_nonce_size > 0 ) - { - memcpy( p + 9, ticket_nonce, ticket_nonce_size ); + p[8] = (unsigned char) ticket_nonce_size; + if (ticket_nonce_size > 0) { + memcpy(p + 9, ticket_nonce, ticket_nonce_size); } p += 9 + ticket_nonce_size; /* Write ticket */ - MBEDTLS_PUT_UINT16_BE( ticket_len, p, 0 ); + MBEDTLS_PUT_UINT16_BE(ticket_len, p, 0); p += 2; - MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", p, ticket_len); + MBEDTLS_SSL_DEBUG_BUF(4, "ticket", p, ticket_len); p += ticket_len; /* Ticket Extensions @@ -2847,201 +2771,195 @@ static int ssl_tls13_write_new_session_ticket_body( mbedtls_ssl_context *ssl, */ ssl->handshake->sent_extensions = MBEDTLS_SSL_EXT_MASK_NONE; - MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); - MBEDTLS_PUT_UINT16_BE( 0, p, 0 ); + MBEDTLS_SSL_CHK_BUF_PTR(p, end, 2); + MBEDTLS_PUT_UINT16_BE(0, p, 0); p += 2; *out_len = p - buf; - MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) ); + MBEDTLS_SSL_DEBUG_BUF(4, "ticket", buf, *out_len); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= write new session ticket")); MBEDTLS_SSL_PRINT_EXTS( - 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->sent_extensions ); + 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET, ssl->handshake->sent_extensions); - return( 0 ); + return 0; } /* * Handler for MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET */ -static int ssl_tls13_write_new_session_ticket( mbedtls_ssl_context *ssl ) +static int ssl_tls13_write_new_session_ticket(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - MBEDTLS_SSL_PROC_CHK_NEG( ssl_tls13_write_new_session_ticket_coordinate( ssl ) ); + MBEDTLS_SSL_PROC_CHK_NEG(ssl_tls13_write_new_session_ticket_coordinate(ssl)); - if( ret == SSL_NEW_SESSION_TICKET_WRITE ) - { + if (ret == SSL_NEW_SESSION_TICKET_WRITE) { unsigned char ticket_nonce[MBEDTLS_SSL_TLS1_3_TICKET_NONCE_LENGTH]; unsigned char *buf; size_t buf_len, msg_len; - MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_new_session_ticket( - ssl, ticket_nonce, sizeof( ticket_nonce ) ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_prepare_new_session_ticket( + ssl, ticket_nonce, sizeof(ticket_nonce))); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_start_handshake_msg( ssl, - MBEDTLS_SSL_HS_NEW_SESSION_TICKET, &buf, &buf_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_start_handshake_msg(ssl, + MBEDTLS_SSL_HS_NEW_SESSION_TICKET, + &buf, &buf_len)); - MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_new_session_ticket_body( - ssl, buf, buf + buf_len, &msg_len, - ticket_nonce, sizeof( ticket_nonce ) ) ); + MBEDTLS_SSL_PROC_CHK(ssl_tls13_write_new_session_ticket_body( + ssl, buf, buf + buf_len, &msg_len, + ticket_nonce, sizeof(ticket_nonce))); - MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_finish_handshake_msg( - ssl, buf_len, msg_len ) ); + MBEDTLS_SSL_PROC_CHK(mbedtls_ssl_finish_handshake_msg( + ssl, buf_len, msg_len)); /* Limit session tickets count to one when resumption connection. * * See document of mbedtls_ssl_conf_new_session_tickets. */ - if( ssl->handshake->resume == 1 ) + if (ssl->handshake->resume == 1) { ssl->handshake->new_session_tickets_count = 0; - else + } else { ssl->handshake->new_session_tickets_count--; + } mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH ); - } - else - { - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); + ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH); + } else { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); } cleanup: - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ /* * TLS 1.3 State Machine -- server side */ -int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) +int mbedtls_ssl_tls13_handshake_server_step(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER || ssl->handshake == NULL ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER || ssl->handshake == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "tls13 server state: %s(%d)", - mbedtls_ssl_states_str( ssl->state ), - ssl->state ) ); + MBEDTLS_SSL_DEBUG_MSG(2, ("tls13 server state: %s(%d)", + mbedtls_ssl_states_str(ssl->state), + ssl->state)); - switch( ssl->state ) - { + switch (ssl->state) { /* start state */ case MBEDTLS_SSL_HELLO_REQUEST: - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); ret = 0; break; case MBEDTLS_SSL_CLIENT_HELLO: - ret = ssl_tls13_process_client_hello( ssl ); - if( ret != 0 ) - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_process_client_hello", ret ); + ret = ssl_tls13_process_client_hello(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_process_client_hello", ret); + } break; case MBEDTLS_SSL_HELLO_RETRY_REQUEST: - ret = ssl_tls13_write_hello_retry_request( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_write_hello_retry_request", ret ); - return( ret ); + ret = ssl_tls13_write_hello_retry_request(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_write_hello_retry_request", ret); + return ret; } break; case MBEDTLS_SSL_SERVER_HELLO: - ret = ssl_tls13_write_server_hello( ssl ); + ret = ssl_tls13_write_server_hello(ssl); break; case MBEDTLS_SSL_ENCRYPTED_EXTENSIONS: - ret = ssl_tls13_write_encrypted_extensions( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, "ssl_tls13_write_encrypted_extensions", ret ); - return( ret ); + ret = ssl_tls13_write_encrypted_extensions(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_write_encrypted_extensions", ret); + return ret; } break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CERTIFICATE_REQUEST: - ret = ssl_tls13_write_certificate_request( ssl ); + ret = ssl_tls13_write_certificate_request(ssl); break; case MBEDTLS_SSL_SERVER_CERTIFICATE: - ret = ssl_tls13_write_server_certificate( ssl ); + ret = ssl_tls13_write_server_certificate(ssl); break; case MBEDTLS_SSL_CERTIFICATE_VERIFY: - ret = ssl_tls13_write_certificate_verify( ssl ); + ret = ssl_tls13_write_certificate_verify(ssl); break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ - /* - * Injection of dummy-CCS's for middlebox compatibility - */ + /* + * Injection of dummy-CCS's for middlebox compatibility + */ #if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE) case MBEDTLS_SSL_SERVER_CCS_AFTER_HELLO_RETRY_REQUEST: - ret = mbedtls_ssl_tls13_write_change_cipher_spec( ssl ); - if( ret == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_CLIENT_HELLO ); + ret = mbedtls_ssl_tls13_write_change_cipher_spec(ssl); + if (ret == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_CLIENT_HELLO); + } break; case MBEDTLS_SSL_SERVER_CCS_AFTER_SERVER_HELLO: - ret = mbedtls_ssl_tls13_write_change_cipher_spec( ssl ); - if( ret == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS ); + ret = mbedtls_ssl_tls13_write_change_cipher_spec(ssl); + if (ret == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_ENCRYPTED_EXTENSIONS); + } break; #endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */ case MBEDTLS_SSL_SERVER_FINISHED: - ret = ssl_tls13_write_server_finished( ssl ); + ret = ssl_tls13_write_server_finished(ssl); break; case MBEDTLS_SSL_CLIENT_FINISHED: - ret = ssl_tls13_process_client_finished( ssl ); + ret = ssl_tls13_process_client_finished(ssl); break; case MBEDTLS_SSL_HANDSHAKE_WRAPUP: - ret = ssl_tls13_handshake_wrapup( ssl ); + ret = ssl_tls13_handshake_wrapup(ssl); break; #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED) case MBEDTLS_SSL_CLIENT_CERTIFICATE: - ret = mbedtls_ssl_tls13_process_certificate( ssl ); - if( ret == 0 ) - { - if( ssl->session_negotiate->peer_cert != NULL ) - { + ret = mbedtls_ssl_tls13_process_certificate(ssl); + if (ret == 0) { + if (ssl->session_negotiate->peer_cert != NULL) { mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY ); - } - else - { - MBEDTLS_SSL_DEBUG_MSG( 2, ( "skip parse certificate verify" ) ); + ssl, MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY); + } else { + MBEDTLS_SSL_DEBUG_MSG(2, ("skip parse certificate verify")); mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_CLIENT_FINISHED ); + ssl, MBEDTLS_SSL_CLIENT_FINISHED); } } break; case MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY: - ret = mbedtls_ssl_tls13_process_certificate_verify( ssl ); - if( ret == 0 ) - { + ret = mbedtls_ssl_tls13_process_certificate_verify(ssl); + if (ret == 0) { mbedtls_ssl_handshake_set_state( - ssl, MBEDTLS_SSL_CLIENT_FINISHED ); + ssl, MBEDTLS_SSL_CLIENT_FINISHED); } break; #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET: - ret = ssl_tls13_write_new_session_ticket( ssl ); - if( ret != 0 ) - { - MBEDTLS_SSL_DEBUG_RET( 1, - "ssl_tls13_write_new_session_ticket ", - ret ); + ret = ssl_tls13_write_new_session_ticket(ssl); + if (ret != 0) { + MBEDTLS_SSL_DEBUG_RET(1, + "ssl_tls13_write_new_session_ticket ", + ret); } break; case MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET_FLUSH: @@ -3051,20 +2969,21 @@ int mbedtls_ssl_tls13_handshake_server_step( mbedtls_ssl_context *ssl ) */ ret = 0; - if( ssl->handshake->new_session_tickets_count == 0 ) - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_HANDSHAKE_OVER ); - else - mbedtls_ssl_handshake_set_state( ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET ); + if (ssl->handshake->new_session_tickets_count == 0) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + } else { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); + } break; #endif /* MBEDTLS_SSL_SESSION_TICKETS */ default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid state %d", ssl->state ) ); - return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + MBEDTLS_SSL_DEBUG_MSG(1, ("invalid state %d", ssl->state)); + return MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_TLS1_3 */ diff --git a/library/threading.c b/library/threading.c index cd9942bf6..130c6963d 100644 --- a/library/threading.c +++ b/library/threading.c @@ -40,9 +40,9 @@ #endif /* !_WIN32 && (unix || __unix || __unix__ || * (__APPLE__ && __MACH__)) */ -#if !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ - ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ - _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) +#if !((defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L) || \ + (defined(_POSIX_THREAD_SAFE_FUNCTIONS) && \ + _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L)) /* * This is a convenience shorthand macro to avoid checking the long * preprocessor conditions above. Ideally, we could expose this macro in @@ -51,21 +51,22 @@ * we keep it private by only defining it in this file */ -#if ! ( defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) ) +#if !(defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)) #define THREADING_USE_GMTIME #endif /* ! ( defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) ) */ -#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ - ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ +#endif /* !( ( defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L ) || \ + ( defined(_POSIX_THREAD_SAFE_FUNCTIONS ) && \ _POSIX_THREAD_SAFE_FUNCTIONS >= 200112L ) ) */ #endif /* MBEDTLS_HAVE_TIME_DATE && !MBEDTLS_PLATFORM_GMTIME_R_ALT */ #if defined(MBEDTLS_THREADING_PTHREAD) -static void threading_mutex_init_pthread( mbedtls_threading_mutex_t *mutex ) +static void threading_mutex_init_pthread(mbedtls_threading_mutex_t *mutex) { - if( mutex == NULL ) + if (mutex == NULL) { return; + } /* A nonzero value of is_valid indicates a successfully initialized * mutex. This is a workaround for not being able to return an error @@ -73,44 +74,49 @@ static void threading_mutex_init_pthread( mbedtls_threading_mutex_t *mutex ) * if is_valid is nonzero. The Mbed TLS unit test code uses this field * to distinguish more states of the mutex; see * tests/src/threading_helpers for details. */ - mutex->is_valid = pthread_mutex_init( &mutex->mutex, NULL ) == 0; + mutex->is_valid = pthread_mutex_init(&mutex->mutex, NULL) == 0; } -static void threading_mutex_free_pthread( mbedtls_threading_mutex_t *mutex ) +static void threading_mutex_free_pthread(mbedtls_threading_mutex_t *mutex) { - if( mutex == NULL || !mutex->is_valid ) + if (mutex == NULL || !mutex->is_valid) { return; + } - (void) pthread_mutex_destroy( &mutex->mutex ); + (void) pthread_mutex_destroy(&mutex->mutex); mutex->is_valid = 0; } -static int threading_mutex_lock_pthread( mbedtls_threading_mutex_t *mutex ) +static int threading_mutex_lock_pthread(mbedtls_threading_mutex_t *mutex) { - if( mutex == NULL || ! mutex->is_valid ) - return( MBEDTLS_ERR_THREADING_BAD_INPUT_DATA ); + if (mutex == NULL || !mutex->is_valid) { + return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA; + } - if( pthread_mutex_lock( &mutex->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (pthread_mutex_lock(&mutex->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } - return( 0 ); + return 0; } -static int threading_mutex_unlock_pthread( mbedtls_threading_mutex_t *mutex ) +static int threading_mutex_unlock_pthread(mbedtls_threading_mutex_t *mutex) { - if( mutex == NULL || ! mutex->is_valid ) - return( MBEDTLS_ERR_THREADING_BAD_INPUT_DATA ); + if (mutex == NULL || !mutex->is_valid) { + return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA; + } - if( pthread_mutex_unlock( &mutex->mutex ) != 0 ) - return( MBEDTLS_ERR_THREADING_MUTEX_ERROR ); + if (pthread_mutex_unlock(&mutex->mutex) != 0) { + return MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } - return( 0 ); + return 0; } -void (*mbedtls_mutex_init)( mbedtls_threading_mutex_t * ) = threading_mutex_init_pthread; -void (*mbedtls_mutex_free)( mbedtls_threading_mutex_t * ) = threading_mutex_free_pthread; -int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t * ) = threading_mutex_lock_pthread; -int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * ) = threading_mutex_unlock_pthread; +void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *) = threading_mutex_init_pthread; +void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *) = threading_mutex_free_pthread; +int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *) = threading_mutex_lock_pthread; +int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *) = threading_mutex_unlock_pthread; /* * With pthreads we can statically initialize mutexes @@ -120,29 +126,29 @@ int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * ) = threading_mutex_unl #endif /* MBEDTLS_THREADING_PTHREAD */ #if defined(MBEDTLS_THREADING_ALT) -static int threading_mutex_fail( mbedtls_threading_mutex_t *mutex ) +static int threading_mutex_fail(mbedtls_threading_mutex_t *mutex) { - ((void) mutex ); - return( MBEDTLS_ERR_THREADING_BAD_INPUT_DATA ); + ((void) mutex); + return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA; } -static void threading_mutex_dummy( mbedtls_threading_mutex_t *mutex ) +static void threading_mutex_dummy(mbedtls_threading_mutex_t *mutex) { - ((void) mutex ); + ((void) mutex); return; } -void (*mbedtls_mutex_init)( mbedtls_threading_mutex_t * ) = threading_mutex_dummy; -void (*mbedtls_mutex_free)( mbedtls_threading_mutex_t * ) = threading_mutex_dummy; -int (*mbedtls_mutex_lock)( mbedtls_threading_mutex_t * ) = threading_mutex_fail; -int (*mbedtls_mutex_unlock)( mbedtls_threading_mutex_t * ) = threading_mutex_fail; +void (*mbedtls_mutex_init)(mbedtls_threading_mutex_t *) = threading_mutex_dummy; +void (*mbedtls_mutex_free)(mbedtls_threading_mutex_t *) = threading_mutex_dummy; +int (*mbedtls_mutex_lock)(mbedtls_threading_mutex_t *) = threading_mutex_fail; +int (*mbedtls_mutex_unlock)(mbedtls_threading_mutex_t *) = threading_mutex_fail; /* * Set functions pointers and initialize global mutexes */ -void mbedtls_threading_set_alt( void (*mutex_init)( mbedtls_threading_mutex_t * ), - void (*mutex_free)( mbedtls_threading_mutex_t * ), - int (*mutex_lock)( mbedtls_threading_mutex_t * ), - int (*mutex_unlock)( mbedtls_threading_mutex_t * ) ) +void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *), + void (*mutex_free)(mbedtls_threading_mutex_t *), + int (*mutex_lock)(mbedtls_threading_mutex_t *), + int (*mutex_unlock)(mbedtls_threading_mutex_t *)) { mbedtls_mutex_init = mutex_init; mbedtls_mutex_free = mutex_free; @@ -150,23 +156,23 @@ void mbedtls_threading_set_alt( void (*mutex_init)( mbedtls_threading_mutex_t * mbedtls_mutex_unlock = mutex_unlock; #if defined(MBEDTLS_FS_IO) - mbedtls_mutex_init( &mbedtls_threading_readdir_mutex ); + mbedtls_mutex_init(&mbedtls_threading_readdir_mutex); #endif #if defined(THREADING_USE_GMTIME) - mbedtls_mutex_init( &mbedtls_threading_gmtime_mutex ); + mbedtls_mutex_init(&mbedtls_threading_gmtime_mutex); #endif } /* * Free global mutexes */ -void mbedtls_threading_free_alt( void ) +void mbedtls_threading_free_alt(void) { #if defined(MBEDTLS_FS_IO) - mbedtls_mutex_free( &mbedtls_threading_readdir_mutex ); + mbedtls_mutex_free(&mbedtls_threading_readdir_mutex); #endif #if defined(THREADING_USE_GMTIME) - mbedtls_mutex_free( &mbedtls_threading_gmtime_mutex ); + mbedtls_mutex_free(&mbedtls_threading_gmtime_mutex); #endif } #endif /* MBEDTLS_THREADING_ALT */ diff --git a/library/timing.c b/library/timing.c index 859c1b83f..6852033ea 100644 --- a/library/timing.c +++ b/library/timing.c @@ -36,8 +36,7 @@ #include #include -struct _hr_time -{ +struct _hr_time { LARGE_INTEGER start; }; @@ -50,8 +49,7 @@ struct _hr_time * platform matches the ifdefs above, it will be used. */ #include #include -struct _hr_time -{ +struct _hr_time { struct timeval start; }; #endif /* _WIN32 && !EFIX64 && !EFI32 */ @@ -77,46 +75,40 @@ struct _hr_time */ #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) -unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int reset ) +unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset) { struct _hr_time *t = (struct _hr_time *) val; - if( reset ) - { - QueryPerformanceCounter( &t->start ); - return( 0 ); - } - else - { + if (reset) { + QueryPerformanceCounter(&t->start); + return 0; + } else { unsigned long delta; LARGE_INTEGER now, hfreq; - QueryPerformanceCounter( &now ); - QueryPerformanceFrequency( &hfreq ); - delta = (unsigned long)( ( now.QuadPart - t->start.QuadPart ) * 1000ul - / hfreq.QuadPart ); - return( delta ); + QueryPerformanceCounter(&now); + QueryPerformanceFrequency(&hfreq); + delta = (unsigned long) ((now.QuadPart - t->start.QuadPart) * 1000ul + / hfreq.QuadPart); + return delta; } } #else /* _WIN32 && !EFIX64 && !EFI32 */ -unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int reset ) +unsigned long mbedtls_timing_get_timer(struct mbedtls_timing_hr_time *val, int reset) { struct _hr_time *t = (struct _hr_time *) val; - if( reset ) - { - gettimeofday( &t->start, NULL ); - return( 0 ); - } - else - { + if (reset) { + gettimeofday(&t->start, NULL); + return 0; + } else { unsigned long delta; struct timeval now; - gettimeofday( &now, NULL ); - delta = ( now.tv_sec - t->start.tv_sec ) * 1000ul - + ( now.tv_usec - t->start.tv_usec ) / 1000; - return( delta ); + gettimeofday(&now, NULL); + delta = (now.tv_sec - t->start.tv_sec) * 1000ul + + (now.tv_usec - t->start.tv_usec) / 1000; + return delta; } } @@ -125,46 +117,50 @@ unsigned long mbedtls_timing_get_timer( struct mbedtls_timing_hr_time *val, int /* * Set delays to watch */ -void mbedtls_timing_set_delay( void *data, uint32_t int_ms, uint32_t fin_ms ) +void mbedtls_timing_set_delay(void *data, uint32_t int_ms, uint32_t fin_ms) { mbedtls_timing_delay_context *ctx = (mbedtls_timing_delay_context *) data; ctx->int_ms = int_ms; ctx->fin_ms = fin_ms; - if( fin_ms != 0 ) - (void) mbedtls_timing_get_timer( &ctx->timer, 1 ); + if (fin_ms != 0) { + (void) mbedtls_timing_get_timer(&ctx->timer, 1); + } } /* * Get number of delays expired */ -int mbedtls_timing_get_delay( void *data ) +int mbedtls_timing_get_delay(void *data) { mbedtls_timing_delay_context *ctx = (mbedtls_timing_delay_context *) data; unsigned long elapsed_ms; - if( ctx->fin_ms == 0 ) - return( -1 ); + if (ctx->fin_ms == 0) { + return -1; + } - elapsed_ms = mbedtls_timing_get_timer( &ctx->timer, 0 ); + elapsed_ms = mbedtls_timing_get_timer(&ctx->timer, 0); - if( elapsed_ms >= ctx->fin_ms ) - return( 2 ); + if (elapsed_ms >= ctx->fin_ms) { + return 2; + } - if( elapsed_ms >= ctx->int_ms ) - return( 1 ); + if (elapsed_ms >= ctx->int_ms) { + return 1; + } - return( 0 ); + return 0; } /* * Get the final delay. */ uint32_t mbedtls_timing_get_final_delay( - const mbedtls_timing_delay_context *data ) + const mbedtls_timing_delay_context *data) { - return( data->fin_ms ); + return data->fin_ms; } #endif /* !MBEDTLS_TIMING_ALT */ #endif /* MBEDTLS_TIMING_C */ diff --git a/library/version.c b/library/version.c index 32a0d7d58..4f78c9cb1 100644 --- a/library/version.c +++ b/library/version.c @@ -24,21 +24,21 @@ #include "mbedtls/version.h" #include -unsigned int mbedtls_version_get_number( void ) +unsigned int mbedtls_version_get_number(void) { - return( MBEDTLS_VERSION_NUMBER ); + return MBEDTLS_VERSION_NUMBER; } -void mbedtls_version_get_string( char *string ) +void mbedtls_version_get_string(char *string) { - memcpy( string, MBEDTLS_VERSION_STRING, - sizeof( MBEDTLS_VERSION_STRING ) ); + memcpy(string, MBEDTLS_VERSION_STRING, + sizeof(MBEDTLS_VERSION_STRING)); } -void mbedtls_version_get_string_full( char *string ) +void mbedtls_version_get_string_full(char *string) { - memcpy( string, MBEDTLS_VERSION_STRING_FULL, - sizeof( MBEDTLS_VERSION_STRING_FULL ) ); + memcpy(string, MBEDTLS_VERSION_STRING_FULL, + sizeof(MBEDTLS_VERSION_STRING_FULL)); } #endif /* MBEDTLS_VERSION_C */ diff --git a/library/x509.c b/library/x509.c index be8797300..1b3701cda 100644 --- a/library/x509.c +++ b/library/x509.c @@ -55,42 +55,45 @@ #include "mbedtls/legacy_or_psa.h" -#define CHECK(code) if( ( ret = ( code ) ) != 0 ){ return( ret ); } +#define CHECK(code) if ((ret = (code)) != 0) { return ret; } #define CHECK_RANGE(min, max, val) \ do \ { \ - if( ( val ) < ( min ) || ( val ) > ( max ) ) \ + if ((val) < (min) || (val) > (max)) \ { \ - return( ret ); \ + return ret; \ } \ - } while( 0 ) + } while (0) /* * CertificateSerialNumber ::= INTEGER */ -int mbedtls_x509_get_serial( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *serial ) +int mbedtls_x509_get_serial(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *serial) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_SERIAL, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((end - *p) < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_SERIAL, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } - if( **p != ( MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_PRIMITIVE | 2 ) && - **p != MBEDTLS_ASN1_INTEGER ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_SERIAL, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (**p != (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_PRIMITIVE | 2) && + **p != MBEDTLS_ASN1_INTEGER) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_SERIAL, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } serial->tag = *(*p)++; - if( ( ret = mbedtls_asn1_get_len( p, end, &serial->len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_SERIAL, ret ) ); + if ((ret = mbedtls_asn1_get_len(p, end, &serial->len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_SERIAL, ret); + } serial->p = *p; *p += serial->len; - return( 0 ); + return 0; } /* Get an algorithm identifier without parameters (eg for signatures) @@ -99,70 +102,71 @@ int mbedtls_x509_get_serial( unsigned char **p, const unsigned char *end, * algorithm OBJECT IDENTIFIER, * parameters ANY DEFINED BY algorithm OPTIONAL } */ -int mbedtls_x509_get_alg_null( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *alg ) +int mbedtls_x509_get_alg_null(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_alg_null( p, end, alg ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_alg_null(p, end, alg)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - return( 0 ); + return 0; } /* * Parse an algorithm identifier with (optional) parameters */ -int mbedtls_x509_get_alg( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *alg, mbedtls_x509_buf *params ) +int mbedtls_x509_get_alg(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *alg, mbedtls_x509_buf *params) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_alg( p, end, alg, params ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_alg(p, end, alg, params)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - return( 0 ); + return 0; } /* * Convert md type to string */ -static inline const char* md_type_to_string( mbedtls_md_type_t md_alg ) +static inline const char *md_type_to_string(mbedtls_md_type_t md_alg) { - switch( md_alg ) - { + switch (md_alg) { #if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA) - case MBEDTLS_MD_MD5: - return( "MD5" ); + case MBEDTLS_MD_MD5: + return "MD5"; #endif #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA) - case MBEDTLS_MD_SHA1: - return( "SHA1" ); + case MBEDTLS_MD_SHA1: + return "SHA1"; #endif #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA) - case MBEDTLS_MD_SHA224: - return( "SHA224" ); + case MBEDTLS_MD_SHA224: + return "SHA224"; #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA) - case MBEDTLS_MD_SHA256: - return( "SHA256" ); + case MBEDTLS_MD_SHA256: + return "SHA256"; #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA) - case MBEDTLS_MD_SHA384: - return( "SHA384" ); + case MBEDTLS_MD_SHA384: + return "SHA384"; #endif #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA) - case MBEDTLS_MD_SHA512: - return( "SHA512" ); + case MBEDTLS_MD_SHA512: + return "SHA512"; #endif #if defined(MBEDTLS_HAS_ALG_RIPEMD160_VIA_MD_OR_PSA) - case MBEDTLS_MD_RIPEMD160: - return( "RIPEMD160" ); + case MBEDTLS_MD_RIPEMD160: + return "RIPEMD160"; #endif - case MBEDTLS_MD_NONE: - return( NULL ); - default: - return( NULL ); + case MBEDTLS_MD_NONE: + return NULL; + default: + return NULL; } } @@ -176,7 +180,7 @@ static inline const char* md_type_to_string( mbedtls_md_type_t md_alg ) * * For HashAlgorithm, parameters MUST be NULL or absent. */ -static int x509_get_hash_alg( const mbedtls_x509_buf *alg, mbedtls_md_type_t *md_alg ) +static int x509_get_hash_alg(const mbedtls_x509_buf *alg, mbedtls_md_type_t *md_alg) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p; @@ -185,42 +189,49 @@ static int x509_get_hash_alg( const mbedtls_x509_buf *alg, mbedtls_md_type_t *md size_t len; /* Make sure we got a SEQUENCE and setup bounds */ - if( alg->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (alg->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } p = alg->p; end = p + alg->len; - if( p >= end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if (p >= end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } /* Parse md_oid */ md_oid.tag = *p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &md_oid.len, MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &md_oid.len, MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } md_oid.p = p; p += md_oid.len; /* Get md_alg from md_oid */ - if( ( ret = mbedtls_oid_get_md_alg( &md_oid, md_alg ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_oid_get_md_alg(&md_oid, md_alg)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } /* Make sure params is absent of NULL */ - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_NULL ) ) != 0 || len != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_NULL)) != 0 || len != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - if( p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* @@ -235,9 +246,9 @@ static int x509_get_hash_alg( const mbedtls_x509_buf *alg, mbedtls_md_type_t *md * of trailerField MUST be 1, and PKCS#1 v2.2 doesn't even define any other * option. Enforce this at parsing time. */ -int mbedtls_x509_get_rsassa_pss_params( const mbedtls_x509_buf *params, - mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, - int *salt_len ) +int mbedtls_x509_get_rsassa_pss_params(const mbedtls_x509_buf *params, + mbedtls_md_type_t *md_alg, mbedtls_md_type_t *mgf_md, + int *salt_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p; @@ -251,121 +262,139 @@ int mbedtls_x509_get_rsassa_pss_params( const mbedtls_x509_buf *params, *salt_len = 20; /* Make sure params is a SEQUENCE and setup bounds */ - if( params->tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (params->tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } p = (unsigned char *) params->p; end = p + params->len; - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } /* * HashAlgorithm */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0 ) ) == 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 0)) == 0) { end2 = p + len; /* HashAlgorithm ::= AlgorithmIdentifier (without parameters) */ - if( ( ret = mbedtls_x509_get_alg_null( &p, end2, &alg_id ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_alg_null(&p, end2, &alg_id)) != 0) { + return ret; + } - if( ( ret = mbedtls_oid_get_md_alg( &alg_id, md_alg ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_oid_get_md_alg(&alg_id, md_alg)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - if( p != end2 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end2) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } /* * MaskGenAlgorithm */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 1 ) ) == 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 1)) == 0) { end2 = p + len; /* MaskGenAlgorithm ::= AlgorithmIdentifier (params = HashAlgorithm) */ - if( ( ret = mbedtls_x509_get_alg( &p, end2, &alg_id, &alg_params ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_alg(&p, end2, &alg_id, &alg_params)) != 0) { + return ret; + } /* Only MFG1 is recognised for now */ - if( MBEDTLS_OID_CMP( MBEDTLS_OID_MGF1, &alg_id ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE, - MBEDTLS_ERR_OID_NOT_FOUND ) ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_MGF1, &alg_id) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE, + MBEDTLS_ERR_OID_NOT_FOUND); + } /* Parse HashAlgorithm */ - if( ( ret = x509_get_hash_alg( &alg_params, mgf_md ) ) != 0 ) - return( ret ); + if ((ret = x509_get_hash_alg(&alg_params, mgf_md)) != 0) { + return ret; + } - if( p != end2 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end2) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } /* * salt_len */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 2 ) ) == 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 2)) == 0) { end2 = p + len; - if( ( ret = mbedtls_asn1_get_int( &p, end2, salt_len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end2, salt_len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - if( p != end2 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end2) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); - if( p == end ) - return( 0 ); + if (p == end) { + return 0; + } /* * trailer_field (if present, must be 1) */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 3 ) ) == 0 ) - { + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 3)) == 0) { int trailer_field; end2 = p + len; - if( ( ret = mbedtls_asn1_get_int( &p, end2, &trailer_field ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); + if ((ret = mbedtls_asn1_get_int(&p, end2, &trailer_field)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); + } - if( p != end2 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end2) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - if( trailer_field != 1 ) - return( MBEDTLS_ERR_X509_INVALID_ALG ); + if (trailer_field != 1) { + return MBEDTLS_ERR_X509_INVALID_ALG; + } + } else if (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, ret); } - else if( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, ret ) ); - if( p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_ALG, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_ALG, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ @@ -378,63 +407,68 @@ int mbedtls_x509_get_rsassa_pss_params( const mbedtls_x509_buf *params, * * AttributeValue ::= ANY DEFINED BY AttributeType */ -static int x509_get_attr_type_value( unsigned char **p, - const unsigned char *end, - mbedtls_x509_name *cur ) +static int x509_get_attr_type_value(unsigned char **p, + const unsigned char *end, + mbedtls_x509_name *cur) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; mbedtls_x509_buf *oid; mbedtls_x509_buf *val; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, ret); + } end = *p + len; - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((end - *p) < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } oid = &cur->oid; oid->tag = **p; - if( ( ret = mbedtls_asn1_get_tag( p, end, &oid->len, MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &oid->len, MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, ret); + } oid->p = *p; *p += oid->len; - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((end - *p) < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } - if( **p != MBEDTLS_ASN1_BMP_STRING && **p != MBEDTLS_ASN1_UTF8_STRING && + if (**p != MBEDTLS_ASN1_BMP_STRING && **p != MBEDTLS_ASN1_UTF8_STRING && **p != MBEDTLS_ASN1_T61_STRING && **p != MBEDTLS_ASN1_PRINTABLE_STRING && **p != MBEDTLS_ASN1_IA5_STRING && **p != MBEDTLS_ASN1_UNIVERSAL_STRING && - **p != MBEDTLS_ASN1_BIT_STRING ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + **p != MBEDTLS_ASN1_BIT_STRING) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } val = &cur->val; val->tag = *(*p)++; - if( ( ret = mbedtls_asn1_get_len( p, end, &val->len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ) ); + if ((ret = mbedtls_asn1_get_len(p, end, &val->len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, ret); + } val->p = *p; *p += val->len; - if( *p != end ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } cur->next = NULL; - return( 0 ); + return 0; } /* @@ -465,8 +499,8 @@ static int x509_get_attr_type_value( unsigned char **p, * cases, this function frees all allocated memory internally and the caller * has no freeing responsibilities. */ -int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, - mbedtls_x509_name *cur ) +int mbedtls_x509_get_name(unsigned char **p, const unsigned char *end, + mbedtls_x509_name *cur) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t set_len; @@ -474,35 +508,33 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, mbedtls_x509_name *head = cur; /* don't use recursion, we'd risk stack overflow if not optimized */ - while( 1 ) - { + while (1) { /* * parse SET */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &set_len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ) ) != 0 ) - { - ret = MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_NAME, ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &set_len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)) != 0) { + ret = MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_NAME, ret); goto error; } end_set = *p + set_len; - while( 1 ) - { - if( ( ret = x509_get_attr_type_value( p, end_set, cur ) ) != 0 ) + while (1) { + if ((ret = x509_get_attr_type_value(p, end_set, cur)) != 0) { goto error; + } - if( *p == end_set ) + if (*p == end_set) { break; + } /* Mark this item as being no the only one in a set */ cur->next_merged = 1; - cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); + cur->next = mbedtls_calloc(1, sizeof(mbedtls_x509_name)); - if( cur->next == NULL ) - { + if (cur->next == NULL) { ret = MBEDTLS_ERR_X509_ALLOC_FAILED; goto error; } @@ -513,13 +545,13 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, /* * continue until end of SEQUENCE is reached */ - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } - cur->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_name ) ); + cur->next = mbedtls_calloc(1, sizeof(mbedtls_x509_name)); - if( cur->next == NULL ) - { + if (cur->next == NULL) { ret = MBEDTLS_ERR_X509_ALLOC_FAILED; goto error; } @@ -529,40 +561,39 @@ int mbedtls_x509_get_name( unsigned char **p, const unsigned char *end, error: /* Skip the first element as we did not allocate it */ - mbedtls_asn1_free_named_data_list_shallow( head->next ); + mbedtls_asn1_free_named_data_list_shallow(head->next); head->next = NULL; - return( ret ); + return ret; } -static int x509_parse_int( unsigned char **p, size_t n, int *res ) +static int x509_parse_int(unsigned char **p, size_t n, int *res) { *res = 0; - for( ; n > 0; --n ) - { - if( ( **p < '0') || ( **p > '9' ) ) - return ( MBEDTLS_ERR_X509_INVALID_DATE ); + for (; n > 0; --n) { + if ((**p < '0') || (**p > '9')) { + return MBEDTLS_ERR_X509_INVALID_DATE; + } *res *= 10; - *res += ( *(*p)++ - '0' ); + *res += (*(*p)++ - '0'); } - return( 0 ); + return 0; } -static int x509_date_is_valid(const mbedtls_x509_time *t ) +static int x509_date_is_valid(const mbedtls_x509_time *t) { int ret = MBEDTLS_ERR_X509_INVALID_DATE; int month_len; - CHECK_RANGE( 0, 9999, t->year ); - CHECK_RANGE( 0, 23, t->hour ); - CHECK_RANGE( 0, 59, t->min ); - CHECK_RANGE( 0, 59, t->sec ); + CHECK_RANGE(0, 9999, t->year); + CHECK_RANGE(0, 23, t->hour); + CHECK_RANGE(0, 59, t->min); + CHECK_RANGE(0, 59, t->sec); - switch( t->mon ) - { + switch (t->mon) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: month_len = 31; break; @@ -570,69 +601,69 @@ static int x509_date_is_valid(const mbedtls_x509_time *t ) month_len = 30; break; case 2: - if( ( !( t->year % 4 ) && t->year % 100 ) || - !( t->year % 400 ) ) + if ((!(t->year % 4) && t->year % 100) || + !(t->year % 400)) { month_len = 29; - else + } else { month_len = 28; + } break; default: - return( ret ); + return ret; } - CHECK_RANGE( 1, month_len, t->day ); + CHECK_RANGE(1, month_len, t->day); - return( 0 ); + return 0; } /* * Parse an ASN1_UTC_TIME (yearlen=2) or ASN1_GENERALIZED_TIME (yearlen=4) * field. */ -static int x509_parse_time( unsigned char **p, size_t len, size_t yearlen, - mbedtls_x509_time *tm ) +static int x509_parse_time(unsigned char **p, size_t len, size_t yearlen, + mbedtls_x509_time *tm) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; /* * Minimum length is 10 or 12 depending on yearlen */ - if ( len < yearlen + 8 ) - return ( MBEDTLS_ERR_X509_INVALID_DATE ); + if (len < yearlen + 8) { + return MBEDTLS_ERR_X509_INVALID_DATE; + } len -= yearlen + 8; /* * Parse year, month, day, hour, minute */ - CHECK( x509_parse_int( p, yearlen, &tm->year ) ); - if ( 2 == yearlen ) - { - if ( tm->year < 50 ) + CHECK(x509_parse_int(p, yearlen, &tm->year)); + if (2 == yearlen) { + if (tm->year < 50) { tm->year += 100; + } tm->year += 1900; } - CHECK( x509_parse_int( p, 2, &tm->mon ) ); - CHECK( x509_parse_int( p, 2, &tm->day ) ); - CHECK( x509_parse_int( p, 2, &tm->hour ) ); - CHECK( x509_parse_int( p, 2, &tm->min ) ); + CHECK(x509_parse_int(p, 2, &tm->mon)); + CHECK(x509_parse_int(p, 2, &tm->day)); + CHECK(x509_parse_int(p, 2, &tm->hour)); + CHECK(x509_parse_int(p, 2, &tm->min)); /* * Parse seconds if present */ - if ( len >= 2 ) - { - CHECK( x509_parse_int( p, 2, &tm->sec ) ); + if (len >= 2) { + CHECK(x509_parse_int(p, 2, &tm->sec)); len -= 2; + } else { + return MBEDTLS_ERR_X509_INVALID_DATE; } - else - return ( MBEDTLS_ERR_X509_INVALID_DATE ); /* * Parse trailing 'Z' if present */ - if ( 1 == len && 'Z' == **p ) - { + if (1 == len && 'Z' == **p) { (*p)++; len--; } @@ -640,12 +671,13 @@ static int x509_parse_time( unsigned char **p, size_t len, size_t yearlen, /* * We should have parsed all characters at this point */ - if ( 0 != len ) - return ( MBEDTLS_ERR_X509_INVALID_DATE ); + if (0 != len) { + return MBEDTLS_ERR_X509_INVALID_DATE; + } - CHECK( x509_date_is_valid( tm ) ); + CHECK(x509_date_is_valid(tm)); - return ( 0 ); + return 0; } /* @@ -653,50 +685,55 @@ static int x509_parse_time( unsigned char **p, size_t len, size_t yearlen, * utcTime UTCTime, * generalTime GeneralizedTime } */ -int mbedtls_x509_get_time( unsigned char **p, const unsigned char *end, - mbedtls_x509_time *tm ) +int mbedtls_x509_get_time(unsigned char **p, const unsigned char *end, + mbedtls_x509_time *tm) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len, year_len; unsigned char tag; - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((end - *p) < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } tag = **p; - if( tag == MBEDTLS_ASN1_UTC_TIME ) + if (tag == MBEDTLS_ASN1_UTC_TIME) { year_len = 2; - else if( tag == MBEDTLS_ASN1_GENERALIZED_TIME ) + } else if (tag == MBEDTLS_ASN1_GENERALIZED_TIME) { year_len = 4; - else - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + } else { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } (*p)++; - ret = mbedtls_asn1_get_len( p, end, &len ); + ret = mbedtls_asn1_get_len(p, end, &len); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, ret ) ); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, ret); + } - return x509_parse_time( p, len, year_len, tm ); + return x509_parse_time(p, len, year_len, tm); } -int mbedtls_x509_get_sig( unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig ) +int mbedtls_x509_get_sig(unsigned char **p, const unsigned char *end, mbedtls_x509_buf *sig) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; int tag_type; - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_SIGNATURE, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ); + if ((end - *p) < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_SIGNATURE, + MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } tag_type = **p; - if( ( ret = mbedtls_asn1_get_bitstring_null( p, end, &len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_SIGNATURE, ret ) ); + if ((ret = mbedtls_asn1_get_bitstring_null(p, end, &len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_SIGNATURE, ret); + } sig->tag = tag_type; sig->len = len; @@ -704,63 +741,64 @@ int mbedtls_x509_get_sig( unsigned char **p, const unsigned char *end, mbedtls_x *p += len; - return( 0 ); + return 0; } /* * Get signature algorithm from alg OID and optional parameters */ -int mbedtls_x509_get_sig_alg( const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, - mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg, - void **sig_opts ) +int mbedtls_x509_get_sig_alg(const mbedtls_x509_buf *sig_oid, const mbedtls_x509_buf *sig_params, + mbedtls_md_type_t *md_alg, mbedtls_pk_type_t *pk_alg, + void **sig_opts) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( *sig_opts != NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (*sig_opts != NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - if( ( ret = mbedtls_oid_get_sig_alg( sig_oid, md_alg, pk_alg ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG, ret ) ); + if ((ret = mbedtls_oid_get_sig_alg(sig_oid, md_alg, pk_alg)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG, ret); + } #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - if( *pk_alg == MBEDTLS_PK_RSASSA_PSS ) - { + if (*pk_alg == MBEDTLS_PK_RSASSA_PSS) { mbedtls_pk_rsassa_pss_options *pss_opts; - pss_opts = mbedtls_calloc( 1, sizeof( mbedtls_pk_rsassa_pss_options ) ); - if( pss_opts == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + pss_opts = mbedtls_calloc(1, sizeof(mbedtls_pk_rsassa_pss_options)); + if (pss_opts == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } - ret = mbedtls_x509_get_rsassa_pss_params( sig_params, - md_alg, - &pss_opts->mgf1_hash_id, - &pss_opts->expected_salt_len ); - if( ret != 0 ) - { - mbedtls_free( pss_opts ); - return( ret ); + ret = mbedtls_x509_get_rsassa_pss_params(sig_params, + md_alg, + &pss_opts->mgf1_hash_id, + &pss_opts->expected_salt_len); + if (ret != 0) { + mbedtls_free(pss_opts); + return ret; } *sig_opts = (void *) pss_opts; - } - else + } else #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ { /* Make sure parameters are absent or NULL */ - if( ( sig_params->tag != MBEDTLS_ASN1_NULL && sig_params->tag != 0 ) || - sig_params->len != 0 ) - return( MBEDTLS_ERR_X509_INVALID_ALG ); + if ((sig_params->tag != MBEDTLS_ASN1_NULL && sig_params->tag != 0) || + sig_params->len != 0) { + return MBEDTLS_ERR_X509_INVALID_ALG; + } } - return( 0 ); + return 0; } /* * X.509 Extensions (No parsing of extensions, pointer should * be either manually updated or extensions should be parsed!) */ -int mbedtls_x509_get_ext( unsigned char **p, const unsigned char *end, - mbedtls_x509_buf *ext, int tag ) +int mbedtls_x509_get_ext(unsigned char **p, const unsigned char *end, + mbedtls_x509_buf *ext, int tag) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -768,10 +806,11 @@ int mbedtls_x509_get_ext( unsigned char **p, const unsigned char *end, /* Extension structure use EXPLICIT tagging. That is, the actual * `Extensions` structure is wrapped by a tag-length pair using * the respective context-specific tag. */ - ret = mbedtls_asn1_get_tag( p, end, &ext->len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | tag ); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + ret = mbedtls_asn1_get_tag(p, end, &ext->len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | tag); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } ext->tag = MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | tag; ext->p = *p; @@ -780,22 +819,24 @@ int mbedtls_x509_get_ext( unsigned char **p, const unsigned char *end, /* * Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( end != *p + len ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (end != *p + len) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* * Store the name in printable form into buf; no more * than size characters will be written */ -int mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn ) +int mbedtls_x509_dn_gets(char *buf, size_t size, const mbedtls_x509_name *dn) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, j, n; @@ -804,67 +845,67 @@ int mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn ) const char *short_name = NULL; char s[MBEDTLS_X509_MAX_DN_NAME_SIZE], *p; - memset( s, 0, sizeof( s ) ); + memset(s, 0, sizeof(s)); name = dn; p = buf; n = size; - while( name != NULL ) - { - if( !name->oid.p ) - { + while (name != NULL) { + if (!name->oid.p) { name = name->next; continue; } - if( name != dn ) - { - ret = mbedtls_snprintf( p, n, merge ? " + " : ", " ); + if (name != dn) { + ret = mbedtls_snprintf(p, n, merge ? " + " : ", "); MBEDTLS_X509_SAFE_SNPRINTF; } - ret = mbedtls_oid_get_attr_short_name( &name->oid, &short_name ); + ret = mbedtls_oid_get_attr_short_name(&name->oid, &short_name); - if( ret == 0 ) - ret = mbedtls_snprintf( p, n, "%s=", short_name ); - else - ret = mbedtls_snprintf( p, n, "\?\?=" ); + if (ret == 0) { + ret = mbedtls_snprintf(p, n, "%s=", short_name); + } else { + ret = mbedtls_snprintf(p, n, "\?\?="); + } MBEDTLS_X509_SAFE_SNPRINTF; - for( i = 0, j = 0; i < name->val.len; i++, j++ ) - { - if( j >= sizeof( s ) - 1 ) - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + for (i = 0, j = 0; i < name->val.len; i++, j++) { + if (j >= sizeof(s) - 1) { + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; + } c = name->val.p[i]; // Special characters requiring escaping, RFC 1779 - if( c && strchr( ",=+<>#;\"\\", c ) ) - { - if( j + 1 >= sizeof( s ) - 1 ) - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + if (c && strchr(",=+<>#;\"\\", c)) { + if (j + 1 >= sizeof(s) - 1) { + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; + } s[j++] = '\\'; } - if( c < 32 || c >= 127 ) - s[j] = '?'; - else s[j] = c; + if (c < 32 || c >= 127) { + s[j] = '?'; + } else { + s[j] = c; + } } s[j] = '\0'; - ret = mbedtls_snprintf( p, n, "%s", s ); + ret = mbedtls_snprintf(p, n, "%s", s); MBEDTLS_X509_SAFE_SNPRINTF; merge = name->next_merged; name = name->next; } - return( (int) ( size - n ) ); + return (int) (size - n); } /* * Store the serial in printable form into buf; no more * than size characters will be written */ -int mbedtls_x509_serial_gets( char *buf, size_t size, const mbedtls_x509_buf *serial ) +int mbedtls_x509_serial_gets(char *buf, size_t size, const mbedtls_x509_buf *serial) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, n, nr; @@ -873,62 +914,61 @@ int mbedtls_x509_serial_gets( char *buf, size_t size, const mbedtls_x509_buf *se p = buf; n = size; - nr = ( serial->len <= 32 ) + nr = (serial->len <= 32) ? serial->len : 28; - for( i = 0; i < nr; i++ ) - { - if( i == 0 && nr > 1 && serial->p[i] == 0x0 ) + for (i = 0; i < nr; i++) { + if (i == 0 && nr > 1 && serial->p[i] == 0x0) { continue; + } - ret = mbedtls_snprintf( p, n, "%02X%s", - serial->p[i], ( i < nr - 1 ) ? ":" : "" ); + ret = mbedtls_snprintf(p, n, "%02X%s", + serial->p[i], (i < nr - 1) ? ":" : ""); MBEDTLS_X509_SAFE_SNPRINTF; } - if( nr != serial->len ) - { - ret = mbedtls_snprintf( p, n, "...." ); + if (nr != serial->len) { + ret = mbedtls_snprintf(p, n, "...."); MBEDTLS_X509_SAFE_SNPRINTF; } - return( (int) ( size - n ) ); + return (int) (size - n); } #if !defined(MBEDTLS_X509_REMOVE_INFO) /* * Helper for writing signature algorithms */ -int mbedtls_x509_sig_alg_gets( char *buf, size_t size, const mbedtls_x509_buf *sig_oid, - mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, - const void *sig_opts ) +int mbedtls_x509_sig_alg_gets(char *buf, size_t size, const mbedtls_x509_buf *sig_oid, + mbedtls_pk_type_t pk_alg, mbedtls_md_type_t md_alg, + const void *sig_opts) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; char *p = buf; size_t n = size; const char *desc = NULL; - ret = mbedtls_oid_get_sig_alg_desc( sig_oid, &desc ); - if( ret != 0 ) - ret = mbedtls_snprintf( p, n, "???" ); - else - ret = mbedtls_snprintf( p, n, "%s", desc ); + ret = mbedtls_oid_get_sig_alg_desc(sig_oid, &desc); + if (ret != 0) { + ret = mbedtls_snprintf(p, n, "???"); + } else { + ret = mbedtls_snprintf(p, n, "%s", desc); + } MBEDTLS_X509_SAFE_SNPRINTF; #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - if( pk_alg == MBEDTLS_PK_RSASSA_PSS ) - { + if (pk_alg == MBEDTLS_PK_RSASSA_PSS) { const mbedtls_pk_rsassa_pss_options *pss_opts; pss_opts = (const mbedtls_pk_rsassa_pss_options *) sig_opts; - const char *name = md_type_to_string( md_alg ); - const char *mgf_name = md_type_to_string( pss_opts->mgf1_hash_id ); + const char *name = md_type_to_string(md_alg); + const char *mgf_name = md_type_to_string(pss_opts->mgf1_hash_id); - ret = mbedtls_snprintf( p, n, " (%s, MGF1-%s, 0x%02X)", - name ? name : "???", - mgf_name ? mgf_name : "???", - (unsigned int) pss_opts->expected_salt_len ); + ret = mbedtls_snprintf(p, n, " (%s, MGF1-%s, 0x%02X)", + name ? name : "???", + mgf_name ? mgf_name : "???", + (unsigned int) pss_opts->expected_salt_len); MBEDTLS_X509_SAFE_SNPRINTF; } #else @@ -937,23 +977,23 @@ int mbedtls_x509_sig_alg_gets( char *buf, size_t size, const mbedtls_x509_buf *s ((void) sig_opts); #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ - return( (int)( size - n ) ); + return (int) (size - n); } #endif /* MBEDTLS_X509_REMOVE_INFO */ /* * Helper for writing "RSA key size", "EC key size", etc */ -int mbedtls_x509_key_size_helper( char *buf, size_t buf_size, const char *name ) +int mbedtls_x509_key_size_helper(char *buf, size_t buf_size, const char *name) { char *p = buf; size_t n = buf_size; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - ret = mbedtls_snprintf( p, n, "%s key size", name ); + ret = mbedtls_snprintf(p, n, "%s key size", name); MBEDTLS_X509_SAFE_SNPRINTF; - return( 0 ); + return 0; } #if defined(MBEDTLS_HAVE_TIME_DATE) @@ -961,19 +1001,18 @@ int mbedtls_x509_key_size_helper( char *buf, size_t buf_size, const char *name ) * Set the time structure to the current time. * Return 0 on success, non-zero on failure. */ -static int x509_get_current_time( mbedtls_x509_time *now ) +static int x509_get_current_time(mbedtls_x509_time *now) { struct tm *lt, tm_buf; mbedtls_time_t tt; int ret = 0; - tt = mbedtls_time( NULL ); - lt = mbedtls_platform_gmtime_r( &tt, &tm_buf ); + tt = mbedtls_time(NULL); + lt = mbedtls_platform_gmtime_r(&tt, &tm_buf); - if( lt == NULL ) + if (lt == NULL) { ret = -1; - else - { + } else { now->year = lt->tm_year + 1900; now->mon = lt->tm_mon + 1; now->day = lt->tm_mday; @@ -982,82 +1021,90 @@ static int x509_get_current_time( mbedtls_x509_time *now ) now->sec = lt->tm_sec; } - return( ret ); + return ret; } /* * Return 0 if before <= after, 1 otherwise */ -static int x509_check_time( const mbedtls_x509_time *before, const mbedtls_x509_time *after ) +static int x509_check_time(const mbedtls_x509_time *before, const mbedtls_x509_time *after) { - if( before->year > after->year ) - return( 1 ); + if (before->year > after->year) { + return 1; + } - if( before->year == after->year && - before->mon > after->mon ) - return( 1 ); + if (before->year == after->year && + before->mon > after->mon) { + return 1; + } - if( before->year == after->year && + if (before->year == after->year && before->mon == after->mon && - before->day > after->day ) - return( 1 ); + before->day > after->day) { + return 1; + } - if( before->year == after->year && + if (before->year == after->year && before->mon == after->mon && before->day == after->day && - before->hour > after->hour ) - return( 1 ); + before->hour > after->hour) { + return 1; + } - if( before->year == after->year && + if (before->year == after->year && before->mon == after->mon && before->day == after->day && before->hour == after->hour && - before->min > after->min ) - return( 1 ); + before->min > after->min) { + return 1; + } - if( before->year == after->year && + if (before->year == after->year && before->mon == after->mon && before->day == after->day && before->hour == after->hour && before->min == after->min && - before->sec > after->sec ) - return( 1 ); + before->sec > after->sec) { + return 1; + } - return( 0 ); + return 0; } -int mbedtls_x509_time_is_past( const mbedtls_x509_time *to ) +int mbedtls_x509_time_is_past(const mbedtls_x509_time *to) { mbedtls_x509_time now; - if( x509_get_current_time( &now ) != 0 ) - return( 1 ); + if (x509_get_current_time(&now) != 0) { + return 1; + } - return( x509_check_time( &now, to ) ); + return x509_check_time(&now, to); } -int mbedtls_x509_time_is_future( const mbedtls_x509_time *from ) +int mbedtls_x509_time_is_future(const mbedtls_x509_time *from) { mbedtls_x509_time now; - if( x509_get_current_time( &now ) != 0 ) - return( 1 ); + if (x509_get_current_time(&now) != 0) { + return 1; + } - return( x509_check_time( from, &now ) ); + return x509_check_time(from, &now); } #else /* MBEDTLS_HAVE_TIME_DATE */ -int mbedtls_x509_time_is_past( const mbedtls_x509_time *to ) +int mbedtls_x509_time_is_past(const mbedtls_x509_time *to) { ((void) to); - return( 0 ); + return 0; } -int mbedtls_x509_time_is_future( const mbedtls_x509_time *from ) +int mbedtls_x509_time_is_future(const mbedtls_x509_time *from) { ((void) from); - return( 0 ); + return 0; } #endif /* MBEDTLS_HAVE_TIME_DATE */ #endif /* MBEDTLS_X509_USE_C */ diff --git a/library/x509_create.c b/library/x509_create.c index 056bbaa78..50db95688 100644 --- a/library/x509_create.c +++ b/library/x509_create.c @@ -31,115 +31,115 @@ /* Structure linking OIDs for X.509 DN AttributeTypes to their * string representations and default string encodings used by Mbed TLS. */ typedef struct { - const char *name; /* String representation of AttributeType, e.g. - * "CN" or "emailAddress". */ - size_t name_len; /* Length of 'name', without trailing 0 byte. */ - const char *oid; /* String representation of OID of AttributeType, + const char *name; /* String representation of AttributeType, e.g. + * "CN" or "emailAddress". */ + size_t name_len; /* Length of 'name', without trailing 0 byte. */ + const char *oid; /* String representation of OID of AttributeType, * as per RFC 5280, Appendix A.1. */ - int default_tag; /* The default character encoding used for the + int default_tag; /* The default character encoding used for the * given attribute type, e.g. * MBEDTLS_ASN1_UTF8_STRING for UTF-8. */ } x509_attr_descriptor_t; -#define ADD_STRLEN( s ) s, sizeof( s ) - 1 +#define ADD_STRLEN(s) s, sizeof(s) - 1 /* X.509 DN attributes from RFC 5280, Appendix A.1. */ static const x509_attr_descriptor_t x509_attrs[] = { - { ADD_STRLEN( "CN" ), + { ADD_STRLEN("CN"), MBEDTLS_OID_AT_CN, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "commonName" ), + { ADD_STRLEN("commonName"), MBEDTLS_OID_AT_CN, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "C" ), + { ADD_STRLEN("C"), MBEDTLS_OID_AT_COUNTRY, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "countryName" ), + { ADD_STRLEN("countryName"), MBEDTLS_OID_AT_COUNTRY, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "O" ), + { ADD_STRLEN("O"), MBEDTLS_OID_AT_ORGANIZATION, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "organizationName" ), + { ADD_STRLEN("organizationName"), MBEDTLS_OID_AT_ORGANIZATION, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "L" ), + { ADD_STRLEN("L"), MBEDTLS_OID_AT_LOCALITY, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "locality" ), + { ADD_STRLEN("locality"), MBEDTLS_OID_AT_LOCALITY, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "R" ), + { ADD_STRLEN("R"), MBEDTLS_OID_PKCS9_EMAIL, MBEDTLS_ASN1_IA5_STRING }, - { ADD_STRLEN( "OU" ), + { ADD_STRLEN("OU"), MBEDTLS_OID_AT_ORG_UNIT, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "organizationalUnitName" ), + { ADD_STRLEN("organizationalUnitName"), MBEDTLS_OID_AT_ORG_UNIT, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "ST" ), + { ADD_STRLEN("ST"), MBEDTLS_OID_AT_STATE, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "stateOrProvinceName" ), + { ADD_STRLEN("stateOrProvinceName"), MBEDTLS_OID_AT_STATE, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "emailAddress" ), + { ADD_STRLEN("emailAddress"), MBEDTLS_OID_PKCS9_EMAIL, MBEDTLS_ASN1_IA5_STRING }, - { ADD_STRLEN( "serialNumber" ), + { ADD_STRLEN("serialNumber"), MBEDTLS_OID_AT_SERIAL_NUMBER, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "postalAddress" ), + { ADD_STRLEN("postalAddress"), MBEDTLS_OID_AT_POSTAL_ADDRESS, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "postalCode" ), + { ADD_STRLEN("postalCode"), MBEDTLS_OID_AT_POSTAL_CODE, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "dnQualifier" ), + { ADD_STRLEN("dnQualifier"), MBEDTLS_OID_AT_DN_QUALIFIER, MBEDTLS_ASN1_PRINTABLE_STRING }, - { ADD_STRLEN( "title" ), + { ADD_STRLEN("title"), MBEDTLS_OID_AT_TITLE, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "surName" ), + { ADD_STRLEN("surName"), MBEDTLS_OID_AT_SUR_NAME, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "SN" ), + { ADD_STRLEN("SN"), MBEDTLS_OID_AT_SUR_NAME, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "givenName" ), + { ADD_STRLEN("givenName"), MBEDTLS_OID_AT_GIVEN_NAME, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "GN" ), + { ADD_STRLEN("GN"), MBEDTLS_OID_AT_GIVEN_NAME, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "initials" ), + { ADD_STRLEN("initials"), MBEDTLS_OID_AT_INITIALS, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "pseudonym" ), + { ADD_STRLEN("pseudonym"), MBEDTLS_OID_AT_PSEUDONYM, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "generationQualifier" ), + { ADD_STRLEN("generationQualifier"), MBEDTLS_OID_AT_GENERATION_QUALIFIER, MBEDTLS_ASN1_UTF8_STRING }, - { ADD_STRLEN( "domainComponent" ), + { ADD_STRLEN("domainComponent"), MBEDTLS_OID_DOMAIN_COMPONENT, MBEDTLS_ASN1_IA5_STRING }, - { ADD_STRLEN( "DC" ), + { ADD_STRLEN("DC"), MBEDTLS_OID_DOMAIN_COMPONENT, MBEDTLS_ASN1_IA5_STRING }, { NULL, 0, NULL, MBEDTLS_ASN1_NULL } }; -static const x509_attr_descriptor_t *x509_attr_descr_from_name( const char *name, size_t name_len ) +static const x509_attr_descriptor_t *x509_attr_descr_from_name(const char *name, size_t name_len) { const x509_attr_descriptor_t *cur; - for( cur = x509_attrs; cur->name != NULL; cur++ ) - if( cur->name_len == name_len && - strncmp( cur->name, name, name_len ) == 0 ) + for (cur = x509_attrs; cur->name != NULL; cur++) { + if (cur->name_len == name_len && + strncmp(cur->name, name, name_len) == 0) { break; + } + } - if ( cur->name == NULL ) - return( NULL ); + if (cur->name == NULL) { + return NULL; + } - return( cur ); + return cur; } -int mbedtls_x509_string_to_names( mbedtls_asn1_named_data **head, const char *name ) +int mbedtls_x509_string_to_names(mbedtls_asn1_named_data **head, const char *name) { int ret = 0; const char *s = name, *c = s; - const char *end = s + strlen( s ); + const char *end = s + strlen(s); const char *oid = NULL; - const x509_attr_descriptor_t* attr_descr = NULL; + const x509_attr_descriptor_t *attr_descr = NULL; int in_tag = 1; char data[MBEDTLS_X509_MAX_DN_NAME_SIZE]; char *d = data; /* Clear existing chain if present */ - mbedtls_asn1_free_named_data_list( head ); + mbedtls_asn1_free_named_data_list(head); - while( c <= end ) - { - if( in_tag && *c == '=' ) - { - if( ( attr_descr = x509_attr_descr_from_name( s, c - s ) ) == NULL ) - { + while (c <= end) { + if (in_tag && *c == '=') { + if ((attr_descr = x509_attr_descr_from_name(s, c - s)) == NULL) { ret = MBEDTLS_ERR_X509_UNKNOWN_OID; goto exit; } @@ -150,45 +150,39 @@ int mbedtls_x509_string_to_names( mbedtls_asn1_named_data **head, const char *na d = data; } - if( !in_tag && *c == '\\' && c != end ) - { + if (!in_tag && *c == '\\' && c != end) { c++; /* Check for valid escaped characters */ - if( c == end || *c != ',' ) - { + if (c == end || *c != ',') { ret = MBEDTLS_ERR_X509_INVALID_NAME; goto exit; } - } - else if( !in_tag && ( *c == ',' || c == end ) ) - { - mbedtls_asn1_named_data* cur = - mbedtls_asn1_store_named_data( head, oid, strlen( oid ), - (unsigned char *) data, - d - data ); + } else if (!in_tag && (*c == ',' || c == end)) { + mbedtls_asn1_named_data *cur = + mbedtls_asn1_store_named_data(head, oid, strlen(oid), + (unsigned char *) data, + d - data); - if(cur == NULL ) - { - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if (cur == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; } // set tagType cur->val.tag = attr_descr->default_tag; - while( c < end && *(c + 1) == ' ' ) + while (c < end && *(c + 1) == ' ') { c++; + } s = c + 1; in_tag = 1; } - if( !in_tag && s != c + 1 ) - { + if (!in_tag && s != c + 1) { *(d++) = *c; - if( d - data == MBEDTLS_X509_MAX_DN_NAME_SIZE ) - { + if (d - data == MBEDTLS_X509_MAX_DN_NAME_SIZE) { ret = MBEDTLS_ERR_X509_INVALID_NAME; goto exit; } @@ -199,27 +193,26 @@ int mbedtls_x509_string_to_names( mbedtls_asn1_named_data **head, const char *na exit: - return( ret ); + return ret; } /* The first byte of the value in the mbedtls_asn1_named_data structure is reserved * to store the critical boolean for us */ -int mbedtls_x509_set_extension( mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, - int critical, const unsigned char *val, size_t val_len ) +int mbedtls_x509_set_extension(mbedtls_asn1_named_data **head, const char *oid, size_t oid_len, + int critical, const unsigned char *val, size_t val_len) { mbedtls_asn1_named_data *cur; - if( ( cur = mbedtls_asn1_store_named_data( head, oid, oid_len, - NULL, val_len + 1 ) ) == NULL ) - { - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if ((cur = mbedtls_asn1_store_named_data(head, oid, oid_len, + NULL, val_len + 1)) == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; } cur->val.p[0] = critical; - memcpy( cur->val.p + 1, val, val_len ); + memcpy(cur->val.p + 1, val, val_len); - return( 0 ); + return 0; } /* @@ -234,115 +227,117 @@ int mbedtls_x509_set_extension( mbedtls_asn1_named_data **head, const char *oid, * * AttributeValue ::= ANY DEFINED BY AttributeType */ -static int x509_write_name( unsigned char **p, unsigned char *start, mbedtls_asn1_named_data* cur_name) +static int x509_write_name(unsigned char **p, + unsigned char *start, + mbedtls_asn1_named_data *cur_name) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - const char *oid = (const char*)cur_name->oid.p; + const char *oid = (const char *) cur_name->oid.p; size_t oid_len = cur_name->oid.len; const unsigned char *name = cur_name->val.p; size_t name_len = cur_name->val.len; // Write correct string tag and value - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tagged_string( p, start, - cur_name->val.tag, - (const char *) name, - name_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tagged_string(p, start, + cur_name->val.tag, + (const char *) name, + name_len)); // Write OID // - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( p, start, oid, - oid_len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_oid(p, start, oid, + oid_len)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SET ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SET)); - return( (int) len ); + return (int) len; } -int mbedtls_x509_write_names( unsigned char **p, unsigned char *start, - mbedtls_asn1_named_data *first ) +int mbedtls_x509_write_names(unsigned char **p, unsigned char *start, + mbedtls_asn1_named_data *first) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; mbedtls_asn1_named_data *cur = first; - while( cur != NULL ) - { - MBEDTLS_ASN1_CHK_ADD( len, x509_write_name( p, start, cur ) ); + while (cur != NULL) { + MBEDTLS_ASN1_CHK_ADD(len, x509_write_name(p, start, cur)); cur = cur->next; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } -int mbedtls_x509_write_sig( unsigned char **p, unsigned char *start, - const char *oid, size_t oid_len, - unsigned char *sig, size_t size ) +int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start, + const char *oid, size_t oid_len, + unsigned char *sig, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - if( *p < start || (size_t)( *p - start ) < size ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p < start || (size_t) (*p - start) < size) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } len = size; (*p) -= len; - memcpy( *p, sig, len ); + memcpy(*p, sig, len); - if( *p - start < 1 ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (*p - start < 1) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *--(*p) = 0; len += 1; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_BIT_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_BIT_STRING)); // Write OID // - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_algorithm_identifier( p, start, oid, - oid_len, 0 ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_algorithm_identifier(p, start, oid, + oid_len, 0)); - return( (int) len ); + return (int) len; } -static int x509_write_extension( unsigned char **p, unsigned char *start, - mbedtls_asn1_named_data *ext ) +static int x509_write_extension(unsigned char **p, unsigned char *start, + mbedtls_asn1_named_data *ext) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, ext->val.p + 1, - ext->val.len - 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, ext->val.len - 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_OCTET_STRING ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, ext->val.p + 1, + ext->val.len - 1)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, ext->val.len - 1)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_OCTET_STRING)); - if( ext->val.p[0] != 0 ) - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_bool( p, start, 1 ) ); + if (ext->val.p[0] != 0) { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_bool(p, start, 1)); } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, ext->oid.p, - ext->oid.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, ext->oid.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_OID ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, ext->oid.p, + ext->oid.len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, ext->oid.len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_OID)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } /* @@ -355,20 +350,19 @@ static int x509_write_extension( unsigned char **p, unsigned char *start, * -- by extnID * } */ -int mbedtls_x509_write_extensions( unsigned char **p, unsigned char *start, - mbedtls_asn1_named_data *first ) +int mbedtls_x509_write_extensions(unsigned char **p, unsigned char *start, + mbedtls_asn1_named_data *first) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; mbedtls_asn1_named_data *cur_ext = first; - while( cur_ext != NULL ) - { - MBEDTLS_ASN1_CHK_ADD( len, x509_write_extension( p, start, cur_ext ) ); + while (cur_ext != NULL) { + MBEDTLS_ASN1_CHK_ADD(len, x509_write_extension(p, start, cur_ext)); cur_ext = cur_ext->next; } - return( (int) len ); + return (int) len; } #endif /* MBEDTLS_X509_CREATE_C */ diff --git a/library/x509_crl.c b/library/x509_crl.c index dc2d2e3e2..f6442030d 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -59,24 +59,22 @@ /* * Version ::= INTEGER { v1(0), v2(1) } */ -static int x509_crl_get_version( unsigned char **p, - const unsigned char *end, - int *ver ) +static int x509_crl_get_version(unsigned char **p, + const unsigned char *end, + int *ver) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_int( p, end, ver ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { + if ((ret = mbedtls_asn1_get_int(p, end, ver)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { *ver = 0; - return( 0 ); + return 0; } - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_VERSION, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, ret); } - return( 0 ); + return 0; } /* @@ -86,26 +84,27 @@ static int x509_crl_get_version( unsigned char **p, * list of extensions is well-formed and abort on critical extensions (that * are unsupported as we don't support any extension so far) */ -static int x509_get_crl_ext( unsigned char **p, - const unsigned char *end, - mbedtls_x509_buf *ext ) +static int x509_get_crl_ext(unsigned char **p, + const unsigned char *end, + mbedtls_x509_buf *ext) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } /* * crlExtensions [0] EXPLICIT Extensions OPTIONAL * -- if present, version MUST be v2 */ - if( ( ret = mbedtls_x509_get_ext( p, end, ext, 0 ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_ext(p, end, ext, 0)) != 0) { + return ret; + } end = ext->p + ext->len; - while( *p < end ) - { + while (*p < end) { /* * Extension ::= SEQUENCE { * extnID OBJECT IDENTIFIER, @@ -117,65 +116,69 @@ static int x509_get_crl_ext( unsigned char **p, size_t len; /* Get enclosing sequence tag */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } end_ext_data = *p + len; /* Get OID (currently ignored) */ - if( ( ret = mbedtls_asn1_get_tag( p, end_ext_data, &len, - MBEDTLS_ASN1_OID ) ) != 0 ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } *p += len; /* Get optional critical */ - if( ( ret = mbedtls_asn1_get_bool( p, end_ext_data, - &is_critical ) ) != 0 && - ( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_bool(p, end_ext_data, + &is_critical)) != 0 && + (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } /* Data should be octet string type */ - if( ( ret = mbedtls_asn1_get_tag( p, end_ext_data, &len, - MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* Ignore data so far and just check its length */ *p += len; - if( *p != end_ext_data ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end_ext_data) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* Abort on (unsupported) critical extensions */ - if( is_critical ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if (is_critical) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* * X.509 CRL v2 entry extensions (no extensions parsed yet.) */ -static int x509_get_crl_entry_ext( unsigned char **p, - const unsigned char *end, - mbedtls_x509_buf *ext ) +static int x509_get_crl_entry_ext(unsigned char **p, + const unsigned char *end, + mbedtls_x509_buf *ext) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; /* OPTIONAL */ - if( end <= *p ) - return( 0 ); + if (end <= *p) { + return 0; + } ext->tag = **p; ext->p = *p; @@ -184,110 +187,112 @@ static int x509_get_crl_entry_ext( unsigned char **p, * Get CRL-entry extension sequence header * crlEntryExtensions Extensions OPTIONAL -- if present, MUST be v2 */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &ext->len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { + if ((ret = mbedtls_asn1_get_tag(p, end, &ext->len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { ext->p = NULL; - return( 0 ); + return 0; } - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } end = *p + ext->len; - if( end != *p + ext->len ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (end != *p + ext->len) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - while( *p < end ) - { - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + while (*p < end) { + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } *p += len; } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* * X.509 CRL Entries */ -static int x509_get_entries( unsigned char **p, - const unsigned char *end, - mbedtls_x509_crl_entry *entry ) +static int x509_get_entries(unsigned char **p, + const unsigned char *end, + mbedtls_x509_crl_entry *entry) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t entry_len; mbedtls_x509_crl_entry *cur_entry = entry; - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } - if( ( ret = mbedtls_asn1_get_tag( p, end, &entry_len, - MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( 0 ); + if ((ret = mbedtls_asn1_get_tag(p, end, &entry_len, + MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return 0; + } - return( ret ); + return ret; } end = *p + entry_len; - while( *p < end ) - { + while (*p < end) { size_t len2; const unsigned char *end2; cur_entry->raw.tag = **p; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len2, - MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len2, + MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED)) != 0) { + return ret; } cur_entry->raw.p = *p; cur_entry->raw.len = len2; end2 = *p + len2; - if( ( ret = mbedtls_x509_get_serial( p, end2, &cur_entry->serial ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_serial(p, end2, &cur_entry->serial)) != 0) { + return ret; + } - if( ( ret = mbedtls_x509_get_time( p, end2, - &cur_entry->revocation_date ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_time(p, end2, + &cur_entry->revocation_date)) != 0) { + return ret; + } - if( ( ret = x509_get_crl_entry_ext( p, end2, - &cur_entry->entry_ext ) ) != 0 ) - return( ret ); + if ((ret = x509_get_crl_entry_ext(p, end2, + &cur_entry->entry_ext)) != 0) { + return ret; + } - if( *p < end ) - { - cur_entry->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_crl_entry ) ); + if (*p < end) { + cur_entry->next = mbedtls_calloc(1, sizeof(mbedtls_x509_crl_entry)); - if( cur_entry->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if (cur_entry->next == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } cur_entry = cur_entry->next; } } - return( 0 ); + return 0; } /* * Parse one CRLs in DER format and append it to the chained list */ -int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, - const unsigned char *buf, size_t buflen ) +int mbedtls_x509_crl_parse_der(mbedtls_x509_crl *chain, + const unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -298,44 +303,46 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, /* * Check for valid input */ - if( crl == NULL || buf == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (crl == NULL || buf == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - memset( &sig_params1, 0, sizeof( mbedtls_x509_buf ) ); - memset( &sig_params2, 0, sizeof( mbedtls_x509_buf ) ); - memset( &sig_oid2, 0, sizeof( mbedtls_x509_buf ) ); + memset(&sig_params1, 0, sizeof(mbedtls_x509_buf)); + memset(&sig_params2, 0, sizeof(mbedtls_x509_buf)); + memset(&sig_oid2, 0, sizeof(mbedtls_x509_buf)); /* * Add new CRL on the end of the chain if needed. */ - while( crl->version != 0 && crl->next != NULL ) + while (crl->version != 0 && crl->next != NULL) { crl = crl->next; + } - if( crl->version != 0 && crl->next == NULL ) - { - crl->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_crl ) ); + if (crl->version != 0 && crl->next == NULL) { + crl->next = mbedtls_calloc(1, sizeof(mbedtls_x509_crl)); - if( crl->next == NULL ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if (crl->next == NULL) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERR_X509_ALLOC_FAILED; } - mbedtls_x509_crl_init( crl->next ); + mbedtls_x509_crl_init(crl->next); crl = crl->next; } /* * Copy raw DER-encoded CRL */ - if( buflen == 0 ) - return( MBEDTLS_ERR_X509_INVALID_FORMAT ); + if (buflen == 0) { + return MBEDTLS_ERR_X509_INVALID_FORMAT; + } - p = mbedtls_calloc( 1, buflen ); - if( p == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + p = mbedtls_calloc(1, buflen); + if (p == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } - memcpy( p, buf, buflen ); + memcpy(p, buf, buflen); crl->raw.p = p; crl->raw.len = buflen; @@ -348,18 +355,16 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * signatureAlgorithm AlgorithmIdentifier, * signatureValue BIT STRING } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERR_X509_INVALID_FORMAT ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERR_X509_INVALID_FORMAT; } - if( len != (size_t) ( end - p ) ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (len != (size_t) (end - p)) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } /* @@ -367,11 +372,10 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, */ crl->tbs.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } end = p + len; @@ -383,27 +387,24 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * * signature AlgorithmIdentifier */ - if( ( ret = x509_crl_get_version( &p, end, &crl->version ) ) != 0 || - ( ret = mbedtls_x509_get_alg( &p, end, &crl->sig_oid, &sig_params1 ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = x509_crl_get_version(&p, end, &crl->version)) != 0 || + (ret = mbedtls_x509_get_alg(&p, end, &crl->sig_oid, &sig_params1)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } - if( crl->version < 0 || crl->version > 1 ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERR_X509_UNKNOWN_VERSION ); + if (crl->version < 0 || crl->version > 1) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERR_X509_UNKNOWN_VERSION; } crl->version++; - if( ( ret = mbedtls_x509_get_sig_alg( &crl->sig_oid, &sig_params1, - &crl->sig_md, &crl->sig_pk, - &crl->sig_opts ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG ); + if ((ret = mbedtls_x509_get_sig_alg(&crl->sig_oid, &sig_params1, + &crl->sig_md, &crl->sig_pk, + &crl->sig_opts)) != 0) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG; } /* @@ -411,17 +412,15 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, */ crl->issuer_raw.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } - if( ( ret = mbedtls_x509_get_name( &p, p + len, &crl->issuer ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = mbedtls_x509_get_name(&p, p + len, &crl->issuer)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } crl->issuer_raw.len = p - crl->issuer_raw.p; @@ -430,21 +429,18 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * thisUpdate Time * nextUpdate Time OPTIONAL */ - if( ( ret = mbedtls_x509_get_time( &p, end, &crl->this_update ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = mbedtls_x509_get_time(&p, end, &crl->this_update)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } - if( ( ret = mbedtls_x509_get_time( &p, end, &crl->next_update ) ) != 0 ) - { - if( ret != ( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ) && - ret != ( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, - MBEDTLS_ERR_ASN1_OUT_OF_DATA ) ) ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = mbedtls_x509_get_time(&p, end, &crl->next_update)) != 0) { + if (ret != (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) && + ret != (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, + MBEDTLS_ERR_ASN1_OUT_OF_DATA))) { + mbedtls_x509_crl_free(crl); + return ret; } } @@ -456,32 +452,28 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * -- if present, MUST be v2 * } OPTIONAL */ - if( ( ret = x509_get_entries( &p, end, &crl->entry ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = x509_get_entries(&p, end, &crl->entry)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } /* * crlExtensions EXPLICIT Extensions OPTIONAL * -- if present, MUST be v2 */ - if( crl->version == 2 ) - { - ret = x509_get_crl_ext( &p, end, &crl->crl_ext ); + if (crl->version == 2) { + ret = x509_get_crl_ext(&p, end, &crl->crl_ext); - if( ret != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if (ret != 0) { + mbedtls_x509_crl_free(crl); + return ret; } } - if( p != end ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } end = crl->raw.p + crl->raw.len; @@ -490,42 +482,38 @@ int mbedtls_x509_crl_parse_der( mbedtls_x509_crl *chain, * signatureAlgorithm AlgorithmIdentifier, * signatureValue BIT STRING */ - if( ( ret = mbedtls_x509_get_alg( &p, end, &sig_oid2, &sig_params2 ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = mbedtls_x509_get_alg(&p, end, &sig_oid2, &sig_params2)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } - if( crl->sig_oid.len != sig_oid2.len || - memcmp( crl->sig_oid.p, sig_oid2.p, crl->sig_oid.len ) != 0 || + if (crl->sig_oid.len != sig_oid2.len || + memcmp(crl->sig_oid.p, sig_oid2.p, crl->sig_oid.len) != 0 || sig_params1.len != sig_params2.len || - ( sig_params1.len != 0 && - memcmp( sig_params1.p, sig_params2.p, sig_params1.len ) != 0 ) ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERR_X509_SIG_MISMATCH ); + (sig_params1.len != 0 && + memcmp(sig_params1.p, sig_params2.p, sig_params1.len) != 0)) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERR_X509_SIG_MISMATCH; } - if( ( ret = mbedtls_x509_get_sig( &p, end, &crl->sig ) ) != 0 ) - { - mbedtls_x509_crl_free( crl ); - return( ret ); + if ((ret = mbedtls_x509_get_sig(&p, end, &crl->sig)) != 0) { + mbedtls_x509_crl_free(crl); + return ret; } - if( p != end ) - { - mbedtls_x509_crl_free( crl ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_x509_crl_free(crl); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } - return( 0 ); + return 0; } /* * Parse one or more CRLs and add them to the chained list */ -int mbedtls_x509_crl_parse( mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen ) +int mbedtls_x509_crl_parse(mbedtls_x509_crl *chain, const unsigned char *buf, size_t buflen) { #if defined(MBEDTLS_PEM_PARSE_C) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -533,25 +521,25 @@ int mbedtls_x509_crl_parse( mbedtls_x509_crl *chain, const unsigned char *buf, s mbedtls_pem_context pem; int is_pem = 0; - if( chain == NULL || buf == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (chain == NULL || buf == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - do - { - mbedtls_pem_init( &pem ); + do { + mbedtls_pem_init(&pem); // Avoid calling mbedtls_pem_read_buffer() on non-null-terminated // string - if( buflen == 0 || buf[buflen - 1] != '\0' ) + if (buflen == 0 || buf[buflen - 1] != '\0') { ret = MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT; - else - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN X509 CRL-----", - "-----END X509 CRL-----", - buf, NULL, 0, &use_len ); + } else { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN X509 CRL-----", + "-----END X509 CRL-----", + buf, NULL, 0, &use_len); + } - if( ret == 0 ) - { + if (ret == 0) { /* * Was PEM encoded */ @@ -560,51 +548,49 @@ int mbedtls_x509_crl_parse( mbedtls_x509_crl *chain, const unsigned char *buf, s buflen -= use_len; buf += use_len; - if( ( ret = mbedtls_x509_crl_parse_der( chain, - pem.buf, pem.buflen ) ) != 0 ) - { - mbedtls_pem_free( &pem ); - return( ret ); + if ((ret = mbedtls_x509_crl_parse_der(chain, + pem.buf, pem.buflen)) != 0) { + mbedtls_pem_free(&pem); + return ret; } - } - else if( is_pem ) - { - mbedtls_pem_free( &pem ); - return( ret ); + } else if (is_pem) { + mbedtls_pem_free(&pem); + return ret; } - mbedtls_pem_free( &pem ); + mbedtls_pem_free(&pem); } /* In the PEM case, buflen is 1 at the end, for the terminated NULL byte. * And a valid CRL cannot be less than 1 byte anyway. */ - while( is_pem && buflen > 1 ); + while (is_pem && buflen > 1); - if( is_pem ) - return( 0 ); - else + if (is_pem) { + return 0; + } else #endif /* MBEDTLS_PEM_PARSE_C */ - return( mbedtls_x509_crl_parse_der( chain, buf, buflen ) ); + return mbedtls_x509_crl_parse_der(chain, buf, buflen); } #if defined(MBEDTLS_FS_IO) /* * Load one or more CRLs and add them to the chained list */ -int mbedtls_x509_crl_parse_file( mbedtls_x509_crl *chain, const char *path ) +int mbedtls_x509_crl_parse_file(mbedtls_x509_crl *chain, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) { + return ret; + } - ret = mbedtls_x509_crl_parse( chain, buf, n ); + ret = mbedtls_x509_crl_parse(chain, buf, n); - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ @@ -617,8 +603,8 @@ int mbedtls_x509_crl_parse_file( mbedtls_x509_crl *chain, const char *path ) /* * Return an informational string about the CRL. */ -int mbedtls_x509_crl_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_crl *crl ) +int mbedtls_x509_crl_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_crl *crl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; @@ -628,116 +614,113 @@ int mbedtls_x509_crl_info( char *buf, size_t size, const char *prefix, p = buf; n = size; - ret = mbedtls_snprintf( p, n, "%sCRL version : %d", - prefix, crl->version ); + ret = mbedtls_snprintf(p, n, "%sCRL version : %d", + prefix, crl->version); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%sissuer name : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%sissuer name : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_dn_gets( p, n, &crl->issuer ); + ret = mbedtls_x509_dn_gets(p, n, &crl->issuer); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%sthis update : " \ - "%04d-%02d-%02d %02d:%02d:%02d", prefix, - crl->this_update.year, crl->this_update.mon, - crl->this_update.day, crl->this_update.hour, - crl->this_update.min, crl->this_update.sec ); + ret = mbedtls_snprintf(p, n, "\n%sthis update : " \ + "%04d-%02d-%02d %02d:%02d:%02d", prefix, + crl->this_update.year, crl->this_update.mon, + crl->this_update.day, crl->this_update.hour, + crl->this_update.min, crl->this_update.sec); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%snext update : " \ - "%04d-%02d-%02d %02d:%02d:%02d", prefix, - crl->next_update.year, crl->next_update.mon, - crl->next_update.day, crl->next_update.hour, - crl->next_update.min, crl->next_update.sec ); + ret = mbedtls_snprintf(p, n, "\n%snext update : " \ + "%04d-%02d-%02d %02d:%02d:%02d", prefix, + crl->next_update.year, crl->next_update.mon, + crl->next_update.day, crl->next_update.hour, + crl->next_update.min, crl->next_update.sec); MBEDTLS_X509_SAFE_SNPRINTF; entry = &crl->entry; - ret = mbedtls_snprintf( p, n, "\n%sRevoked certificates:", - prefix ); + ret = mbedtls_snprintf(p, n, "\n%sRevoked certificates:", + prefix); MBEDTLS_X509_SAFE_SNPRINTF; - while( entry != NULL && entry->raw.len != 0 ) - { - ret = mbedtls_snprintf( p, n, "\n%sserial number: ", - prefix ); + while (entry != NULL && entry->raw.len != 0) { + ret = mbedtls_snprintf(p, n, "\n%sserial number: ", + prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_serial_gets( p, n, &entry->serial ); + ret = mbedtls_x509_serial_gets(p, n, &entry->serial); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " revocation date: " \ - "%04d-%02d-%02d %02d:%02d:%02d", - entry->revocation_date.year, entry->revocation_date.mon, - entry->revocation_date.day, entry->revocation_date.hour, - entry->revocation_date.min, entry->revocation_date.sec ); + ret = mbedtls_snprintf(p, n, " revocation date: " \ + "%04d-%02d-%02d %02d:%02d:%02d", + entry->revocation_date.year, entry->revocation_date.mon, + entry->revocation_date.day, entry->revocation_date.hour, + entry->revocation_date.min, entry->revocation_date.sec); MBEDTLS_X509_SAFE_SNPRINTF; entry = entry->next; } - ret = mbedtls_snprintf( p, n, "\n%ssigned using : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%ssigned using : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_sig_alg_gets( p, n, &crl->sig_oid, crl->sig_pk, crl->sig_md, - crl->sig_opts ); + ret = mbedtls_x509_sig_alg_gets(p, n, &crl->sig_oid, crl->sig_pk, crl->sig_md, + crl->sig_opts); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n" ); + ret = mbedtls_snprintf(p, n, "\n"); MBEDTLS_X509_SAFE_SNPRINTF; - return( (int) ( size - n ) ); + return (int) (size - n); } #endif /* MBEDTLS_X509_REMOVE_INFO */ /* * Initialize a CRL chain */ -void mbedtls_x509_crl_init( mbedtls_x509_crl *crl ) +void mbedtls_x509_crl_init(mbedtls_x509_crl *crl) { - memset( crl, 0, sizeof(mbedtls_x509_crl) ); + memset(crl, 0, sizeof(mbedtls_x509_crl)); } /* * Unallocate all CRL data */ -void mbedtls_x509_crl_free( mbedtls_x509_crl *crl ) +void mbedtls_x509_crl_free(mbedtls_x509_crl *crl) { mbedtls_x509_crl *crl_cur = crl; mbedtls_x509_crl *crl_prv; mbedtls_x509_crl_entry *entry_cur; mbedtls_x509_crl_entry *entry_prv; - while( crl_cur != NULL ) - { + while (crl_cur != NULL) { #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - mbedtls_free( crl_cur->sig_opts ); + mbedtls_free(crl_cur->sig_opts); #endif - mbedtls_asn1_free_named_data_list_shallow( crl_cur->issuer.next ); + mbedtls_asn1_free_named_data_list_shallow(crl_cur->issuer.next); entry_cur = crl_cur->entry.next; - while( entry_cur != NULL ) - { + while (entry_cur != NULL) { entry_prv = entry_cur; entry_cur = entry_cur->next; - mbedtls_platform_zeroize( entry_prv, - sizeof( mbedtls_x509_crl_entry ) ); - mbedtls_free( entry_prv ); + mbedtls_platform_zeroize(entry_prv, + sizeof(mbedtls_x509_crl_entry)); + mbedtls_free(entry_prv); } - if( crl_cur->raw.p != NULL ) - { - mbedtls_platform_zeroize( crl_cur->raw.p, crl_cur->raw.len ); - mbedtls_free( crl_cur->raw.p ); + if (crl_cur->raw.p != NULL) { + mbedtls_platform_zeroize(crl_cur->raw.p, crl_cur->raw.len); + mbedtls_free(crl_cur->raw.p); } crl_prv = crl_cur; crl_cur = crl_cur->next; - mbedtls_platform_zeroize( crl_prv, sizeof( mbedtls_x509_crl ) ); - if( crl_prv != crl ) - mbedtls_free( crl_prv ); + mbedtls_platform_zeroize(crl_prv, sizeof(mbedtls_x509_crl)); + if (crl_prv != crl) { + mbedtls_free(crl_prv); + } } } diff --git a/library/x509_crt.c b/library/x509_crt.c index 0eee97cb6..033009797 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -89,7 +89,7 @@ typedef struct { /* * Max size of verification chain: end-entity + intermediates + trusted root */ -#define X509_MAX_VERIFY_CHAIN_SIZE ( MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2 ) +#define X509_MAX_VERIFY_CHAIN_SIZE (MBEDTLS_X509_MAX_INTERMEDIATE_CA + 2) /* Default profile. Do not remove items unless there are serious security * concerns. */ @@ -97,19 +97,19 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_default = { /* Hashes from SHA-256 and above. Note that this selection * should be aligned with ssl_preset_default_hashes in ssl_tls.c. */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA256 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA384 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA512 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512), 0xFFFFFFF, /* Any PK alg */ #if defined(MBEDTLS_ECP_C) /* Curves at or above 128-bit security level. Note that this selection * should be aligned with ssl_preset_default_curves in ssl_tls.c. */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP256R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP384R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP521R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP256R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP384R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP512R1 ) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP384R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP521R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP256R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP384R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP512R1) | 0, #else 0, @@ -122,19 +122,19 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_default = const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_next = { /* Hashes from SHA-256 and above. */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA256 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA384 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA512 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512), 0xFFFFFFF, /* Any PK alg */ #if defined(MBEDTLS_ECP_C) /* Curves at or above 128-bit security level. */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP256R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP384R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP521R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP256R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP384R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_BP512R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP256K1 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP384R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP521R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP256R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP384R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_BP512R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256K1), #else 0, #endif @@ -147,15 +147,15 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_next = const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_suiteb = { /* Only SHA-256 and 384 */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA256 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA384 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384), /* Only ECDSA */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_PK_ECDSA ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_PK_ECKEY ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_PK_ECDSA) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_PK_ECKEY), #if defined(MBEDTLS_ECP_C) /* Only NIST P-256 and P-384 */ - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP256R1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_ECP_DP_SECP384R1 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP256R1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_ECP_DP_SECP384R1), #else 0, #endif @@ -177,133 +177,136 @@ const mbedtls_x509_crt_profile mbedtls_x509_crt_profile_none = * Check md_alg against profile * Return 0 if md_alg is acceptable for this profile, -1 otherwise */ -static int x509_profile_check_md_alg( const mbedtls_x509_crt_profile *profile, - mbedtls_md_type_t md_alg ) +static int x509_profile_check_md_alg(const mbedtls_x509_crt_profile *profile, + mbedtls_md_type_t md_alg) { - if( md_alg == MBEDTLS_MD_NONE ) - return( -1 ); + if (md_alg == MBEDTLS_MD_NONE) { + return -1; + } - if( ( profile->allowed_mds & MBEDTLS_X509_ID_FLAG( md_alg ) ) != 0 ) - return( 0 ); + if ((profile->allowed_mds & MBEDTLS_X509_ID_FLAG(md_alg)) != 0) { + return 0; + } - return( -1 ); + return -1; } /* * Check pk_alg against profile * Return 0 if pk_alg is acceptable for this profile, -1 otherwise */ -static int x509_profile_check_pk_alg( const mbedtls_x509_crt_profile *profile, - mbedtls_pk_type_t pk_alg ) +static int x509_profile_check_pk_alg(const mbedtls_x509_crt_profile *profile, + mbedtls_pk_type_t pk_alg) { - if( pk_alg == MBEDTLS_PK_NONE ) - return( -1 ); + if (pk_alg == MBEDTLS_PK_NONE) { + return -1; + } - if( ( profile->allowed_pks & MBEDTLS_X509_ID_FLAG( pk_alg ) ) != 0 ) - return( 0 ); + if ((profile->allowed_pks & MBEDTLS_X509_ID_FLAG(pk_alg)) != 0) { + return 0; + } - return( -1 ); + return -1; } /* * Check key against profile * Return 0 if pk is acceptable for this profile, -1 otherwise */ -static int x509_profile_check_key( const mbedtls_x509_crt_profile *profile, - const mbedtls_pk_context *pk ) +static int x509_profile_check_key(const mbedtls_x509_crt_profile *profile, + const mbedtls_pk_context *pk) { - const mbedtls_pk_type_t pk_alg = mbedtls_pk_get_type( pk ); + const mbedtls_pk_type_t pk_alg = mbedtls_pk_get_type(pk); #if defined(MBEDTLS_RSA_C) - if( pk_alg == MBEDTLS_PK_RSA || pk_alg == MBEDTLS_PK_RSASSA_PSS ) - { - if( mbedtls_pk_get_bitlen( pk ) >= profile->rsa_min_bitlen ) - return( 0 ); + if (pk_alg == MBEDTLS_PK_RSA || pk_alg == MBEDTLS_PK_RSASSA_PSS) { + if (mbedtls_pk_get_bitlen(pk) >= profile->rsa_min_bitlen) { + return 0; + } - return( -1 ); + return -1; } #endif #if defined(MBEDTLS_ECP_C) - if( pk_alg == MBEDTLS_PK_ECDSA || + if (pk_alg == MBEDTLS_PK_ECDSA || pk_alg == MBEDTLS_PK_ECKEY || - pk_alg == MBEDTLS_PK_ECKEY_DH ) - { - const mbedtls_ecp_group_id gid = mbedtls_pk_ec( *pk )->grp.id; + pk_alg == MBEDTLS_PK_ECKEY_DH) { + const mbedtls_ecp_group_id gid = mbedtls_pk_ec(*pk)->grp.id; - if( gid == MBEDTLS_ECP_DP_NONE ) - return( -1 ); + if (gid == MBEDTLS_ECP_DP_NONE) { + return -1; + } - if( ( profile->allowed_curves & MBEDTLS_X509_ID_FLAG( gid ) ) != 0 ) - return( 0 ); + if ((profile->allowed_curves & MBEDTLS_X509_ID_FLAG(gid)) != 0) { + return 0; + } - return( -1 ); + return -1; } #endif - return( -1 ); + return -1; } /* * Like memcmp, but case-insensitive and always returns -1 if different */ -static int x509_memcasecmp( const void *s1, const void *s2, size_t len ) +static int x509_memcasecmp(const void *s1, const void *s2, size_t len) { size_t i; unsigned char diff; const unsigned char *n1 = s1, *n2 = s2; - for( i = 0; i < len; i++ ) - { + for (i = 0; i < len; i++) { diff = n1[i] ^ n2[i]; - if( diff == 0 ) - continue; - - if( diff == 32 && - ( ( n1[i] >= 'a' && n1[i] <= 'z' ) || - ( n1[i] >= 'A' && n1[i] <= 'Z' ) ) ) - { + if (diff == 0) { continue; } - return( -1 ); + if (diff == 32 && + ((n1[i] >= 'a' && n1[i] <= 'z') || + (n1[i] >= 'A' && n1[i] <= 'Z'))) { + continue; + } + + return -1; } - return( 0 ); + return 0; } /* * Return 0 if name matches wildcard, -1 otherwise */ -static int x509_check_wildcard( const char *cn, const mbedtls_x509_buf *name ) +static int x509_check_wildcard(const char *cn, const mbedtls_x509_buf *name) { size_t i; - size_t cn_idx = 0, cn_len = strlen( cn ); + size_t cn_idx = 0, cn_len = strlen(cn); /* We can't have a match if there is no wildcard to match */ - if( name->len < 3 || name->p[0] != '*' || name->p[1] != '.' ) - return( -1 ); + if (name->len < 3 || name->p[0] != '*' || name->p[1] != '.') { + return -1; + } - for( i = 0; i < cn_len; ++i ) - { - if( cn[i] == '.' ) - { + for (i = 0; i < cn_len; ++i) { + if (cn[i] == '.') { cn_idx = i; break; } } - if( cn_idx == 0 ) - return( -1 ); - - if( cn_len - cn_idx == name->len - 1 && - x509_memcasecmp( name->p + 1, cn + cn_idx, name->len - 1 ) == 0 ) - { - return( 0 ); + if (cn_idx == 0) { + return -1; } - return( -1 ); + if (cn_len - cn_idx == name->len - 1 && + x509_memcasecmp(name->p + 1, cn + cn_idx, name->len - 1) == 0) { + return 0; + } + + return -1; } /* @@ -312,24 +315,22 @@ static int x509_check_wildcard( const char *cn, const mbedtls_x509_buf *name ) * * Return 0 if equal, -1 otherwise. */ -static int x509_string_cmp( const mbedtls_x509_buf *a, const mbedtls_x509_buf *b ) +static int x509_string_cmp(const mbedtls_x509_buf *a, const mbedtls_x509_buf *b) { - if( a->tag == b->tag && + if (a->tag == b->tag && a->len == b->len && - memcmp( a->p, b->p, b->len ) == 0 ) - { - return( 0 ); + memcmp(a->p, b->p, b->len) == 0) { + return 0; } - if( ( a->tag == MBEDTLS_ASN1_UTF8_STRING || a->tag == MBEDTLS_ASN1_PRINTABLE_STRING ) && - ( b->tag == MBEDTLS_ASN1_UTF8_STRING || b->tag == MBEDTLS_ASN1_PRINTABLE_STRING ) && + if ((a->tag == MBEDTLS_ASN1_UTF8_STRING || a->tag == MBEDTLS_ASN1_PRINTABLE_STRING) && + (b->tag == MBEDTLS_ASN1_UTF8_STRING || b->tag == MBEDTLS_ASN1_PRINTABLE_STRING) && a->len == b->len && - x509_memcasecmp( a->p, b->p, b->len ) == 0 ) - { - return( 0 ); + x509_memcasecmp(a->p, b->p, b->len) == 0) { + return 0; } - return( -1 ); + return -1; } /* @@ -342,48 +343,48 @@ static int x509_string_cmp( const mbedtls_x509_buf *a, const mbedtls_x509_buf *b * * Return 0 if equal, -1 otherwise. */ -static int x509_name_cmp( const mbedtls_x509_name *a, const mbedtls_x509_name *b ) +static int x509_name_cmp(const mbedtls_x509_name *a, const mbedtls_x509_name *b) { /* Avoid recursion, it might not be optimised by the compiler */ - while( a != NULL || b != NULL ) - { - if( a == NULL || b == NULL ) - return( -1 ); + while (a != NULL || b != NULL) { + if (a == NULL || b == NULL) { + return -1; + } /* type */ - if( a->oid.tag != b->oid.tag || + if (a->oid.tag != b->oid.tag || a->oid.len != b->oid.len || - memcmp( a->oid.p, b->oid.p, b->oid.len ) != 0 ) - { - return( -1 ); + memcmp(a->oid.p, b->oid.p, b->oid.len) != 0) { + return -1; } /* value */ - if( x509_string_cmp( &a->val, &b->val ) != 0 ) - return( -1 ); + if (x509_string_cmp(&a->val, &b->val) != 0) { + return -1; + } /* structure of the list of sets */ - if( a->next_merged != b->next_merged ) - return( -1 ); + if (a->next_merged != b->next_merged) { + return -1; + } a = a->next; b = b->next; } /* a == NULL == b */ - return( 0 ); + return 0; } /* * Reset (init or clear) a verify_chain */ static void x509_crt_verify_chain_reset( - mbedtls_x509_crt_verify_chain *ver_chain ) + mbedtls_x509_crt_verify_chain *ver_chain) { size_t i; - for( i = 0; i < MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE; i++ ) - { + for (i = 0; i < MBEDTLS_X509_MAX_VERIFY_CHAIN_SIZE; i++) { ver_chain->items[i].crt = NULL; ver_chain->items[i].flags = (uint32_t) -1; } @@ -398,35 +399,36 @@ static void x509_crt_verify_chain_reset( /* * Version ::= INTEGER { v1(0), v2(1), v3(2) } */ -static int x509_get_version( unsigned char **p, - const unsigned char *end, - int *ver ) +static int x509_get_version(unsigned char **p, + const unsigned char *end, + int *ver) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | 0 ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + 0)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { *ver = 0; - return( 0 ); + return 0; } - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } end = *p + len; - if( ( ret = mbedtls_asn1_get_int( p, end, ver ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_VERSION, ret ) ); + if ((ret = mbedtls_asn1_get_int(p, end, ver)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, ret); + } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_VERSION, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* @@ -434,66 +436,72 @@ static int x509_get_version( unsigned char **p, * notBefore Time, * notAfter Time } */ -static int x509_get_dates( unsigned char **p, - const unsigned char *end, - mbedtls_x509_time *from, - mbedtls_x509_time *to ) +static int x509_get_dates(unsigned char **p, + const unsigned char *end, + mbedtls_x509_time *from, + mbedtls_x509_time *to) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, ret); + } end = *p + len; - if( ( ret = mbedtls_x509_get_time( p, end, from ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_time(p, end, from)) != 0) { + return ret; + } - if( ( ret = mbedtls_x509_get_time( p, end, to ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_time(p, end, to)) != 0) { + return ret; + } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_DATE, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_DATE, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* * X.509 v2/v3 unique identifier (not parsed) */ -static int x509_get_uid( unsigned char **p, - const unsigned char *end, - mbedtls_x509_buf *uid, int n ) +static int x509_get_uid(unsigned char **p, + const unsigned char *end, + mbedtls_x509_buf *uid, int n) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } uid->tag = **p; - if( ( ret = mbedtls_asn1_get_tag( p, end, &uid->len, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | n ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - return( 0 ); + if ((ret = mbedtls_asn1_get_tag(p, end, &uid->len, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_ASN1_CONSTRUCTED | + n)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + return 0; + } - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } uid->p = *p; *p += uid->len; - return( 0 ); + return 0; } -static int x509_get_basic_constraints( unsigned char **p, - const unsigned char *end, - int *ca_istrue, - int *max_pathlen ) +static int x509_get_basic_constraints(unsigned char **p, + const unsigned char *end, + int *ca_istrue, + int *max_pathlen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -506,88 +514,99 @@ static int x509_get_basic_constraints( unsigned char **p, *ca_istrue = 0; /* DEFAULT FALSE */ *max_pathlen = 0; /* endless */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); - - if( *p == end ) - return( 0 ); - - if( ( ret = mbedtls_asn1_get_bool( p, end, ca_istrue ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - ret = mbedtls_asn1_get_int( p, end, ca_istrue ); - - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); - - if( *ca_istrue != 0 ) - *ca_istrue = 1; + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } - if( ( ret = mbedtls_asn1_get_int( p, end, max_pathlen ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_bool(p, end, ca_istrue)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { + ret = mbedtls_asn1_get_int(p, end, ca_istrue); + } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if (*ca_istrue != 0) { + *ca_istrue = 1; + } + } + + if (*p == end) { + return 0; + } + + if ((ret = mbedtls_asn1_get_int(p, end, max_pathlen)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* Do not accept max_pathlen equal to INT_MAX to avoid a signed integer * overflow, which is an undefined behavior. */ - if( *max_pathlen == INT_MAX ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH ) ); + if (*max_pathlen == INT_MAX) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } (*max_pathlen)++; - return( 0 ); + return 0; } -static int x509_get_ns_cert_type( unsigned char **p, - const unsigned char *end, - unsigned char *ns_cert_type) +static int x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_bitstring bs = { 0, 0, NULL }; - if( ( ret = mbedtls_asn1_get_bitstring( p, end, &bs ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( bs.len != 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH ) ); + if (bs.len != 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } /* Get actual bitstring */ *ns_cert_type = *bs.p; - return( 0 ); + return 0; } -static int x509_get_key_usage( unsigned char **p, - const unsigned char *end, - unsigned int *key_usage) +static int x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; mbedtls_x509_bitstring bs = { 0, 0, NULL }; - if( ( ret = mbedtls_asn1_get_bitstring( p, end, &bs ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( bs.len < 1 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH ) ); + if (bs.len < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } /* Get actual bitstring */ *key_usage = 0; - for( i = 0; i < bs.len && i < sizeof( unsigned int ); i++ ) - { + for (i = 0; i < bs.len && i < sizeof(unsigned int); i++) { *key_usage |= (unsigned int) bs.p[i] << (8*i); } - return( 0 ); + return 0; } /* @@ -595,21 +614,23 @@ static int x509_get_key_usage( unsigned char **p, * * KeyPurposeId ::= OBJECT IDENTIFIER */ -static int x509_get_ext_key_usage( unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *ext_key_usage) +static int x509_get_ext_key_usage(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *ext_key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_sequence_of( p, end, ext_key_usage, MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_sequence_of(p, end, ext_key_usage, MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* Sequence length must be >= 1 */ - if( ext_key_usage->buf.p == NULL ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH ) ); + if (ext_key_usage->buf.p == NULL) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } - return( 0 ); + return 0; } /* @@ -639,9 +660,9 @@ static int x509_get_ext_key_usage( unsigned char **p, * NOTE: we list all types, but only use dNSName and otherName * of type HwModuleName, as defined in RFC 4108, at this point. */ -static int x509_get_subject_alt_name( unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *subject_alt_name ) +static int x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len, tag_len; @@ -650,57 +671,58 @@ static int x509_get_subject_alt_name( unsigned char **p, mbedtls_asn1_sequence *cur = subject_alt_name; /* Get main sequence tag */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( *p + len != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - while( *p < end ) - { + while (*p < end) { mbedtls_x509_subject_alternative_name dummy_san_buf; - memset( &dummy_san_buf, 0, sizeof( dummy_san_buf ) ); + memset(&dummy_san_buf, 0, sizeof(dummy_san_buf)); tag = **p; (*p)++; - if( ( ret = mbedtls_asn1_get_len( p, end, &tag_len ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_len(p, end, &tag_len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( ( tag & MBEDTLS_ASN1_TAG_CLASS_MASK ) != - MBEDTLS_ASN1_CONTEXT_SPECIFIC ) - { - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + if ((tag & MBEDTLS_ASN1_TAG_CLASS_MASK) != + MBEDTLS_ASN1_CONTEXT_SPECIFIC) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); } /* * Check that the SAN is structured correctly. */ - ret = mbedtls_x509_parse_subject_alt_name( &(cur->buf), &dummy_san_buf ); + ret = mbedtls_x509_parse_subject_alt_name(&(cur->buf), &dummy_san_buf); /* * In case the extension is malformed, return an error, * and clear the allocated sequences. */ - if( ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ) - { - mbedtls_asn1_sequence_free( subject_alt_name->next ); + if (ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { + mbedtls_asn1_sequence_free(subject_alt_name->next); subject_alt_name->next = NULL; - return( ret ); + return ret; } /* Allocate and assign next pointer */ - if( cur->buf.p != NULL ) - { - if( cur->next != NULL ) - return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS ); + if (cur->buf.p != NULL) { + if (cur->next != NULL) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; + } - cur->next = mbedtls_calloc( 1, sizeof( mbedtls_asn1_sequence ) ); + cur->next = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); - if( cur->next == NULL ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_ALLOC_FAILED ) ); + if (cur->next == NULL) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_ALLOC_FAILED); + } cur = cur->next; } @@ -715,11 +737,12 @@ static int x509_get_subject_alt_name( unsigned char **p, /* Set final sequence entry's next pointer to NULL */ cur->next = NULL; - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* @@ -771,9 +794,9 @@ static int x509_get_subject_alt_name( unsigned char **p, * NOTE: we only parse and use anyPolicy without qualifiers at this point * as defined in RFC 5280. */ -static int x509_get_certificate_policies( unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *certificate_policies ) +static int x509_get_certificate_policies(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *certificate_policies) { int ret, parse_ret = 0; size_t len; @@ -781,39 +804,43 @@ static int x509_get_certificate_policies( unsigned char **p, mbedtls_asn1_sequence *cur = certificate_policies; /* Get main sequence tag */ - ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( *p + len != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* * Cannot be an empty sequence. */ - if( len == 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (len == 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - while( *p < end ) - { + while (*p < end) { mbedtls_x509_buf policy_oid; const unsigned char *policy_end; /* * Get the policy sequence */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } policy_end = *p + len; - if( ( ret = mbedtls_asn1_get_tag( p, policy_end, &len, - MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, policy_end, &len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } policy_oid.tag = MBEDTLS_ASN1_OID; policy_oid.len = len; @@ -822,8 +849,7 @@ static int x509_get_certificate_policies( unsigned char **p, /* * Only AnyPolicy is currently supported when enforcing policy. */ - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ANY_POLICY, &policy_oid ) != 0 ) - { + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ANY_POLICY, &policy_oid) != 0) { /* * Set the parsing return code but continue parsing, in case this * extension is critical. @@ -832,135 +858,144 @@ static int x509_get_certificate_policies( unsigned char **p, } /* Allocate and assign next pointer */ - if( cur->buf.p != NULL ) - { - if( cur->next != NULL ) - return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS ); + if (cur->buf.p != NULL) { + if (cur->next != NULL) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; + } - cur->next = mbedtls_calloc( 1, sizeof( mbedtls_asn1_sequence ) ); + cur->next = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); - if( cur->next == NULL ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_ALLOC_FAILED ) ); + if (cur->next == NULL) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_ALLOC_FAILED); + } cur = cur->next; } - buf = &( cur->buf ); + buf = &(cur->buf); buf->tag = policy_oid.tag; buf->p = policy_oid.p; buf->len = policy_oid.len; *p += len; - /* - * If there is an optional qualifier, then *p < policy_end - * Check the Qualifier len to verify it doesn't exceed policy_end. - */ - if( *p < policy_end ) - { - if( ( ret = mbedtls_asn1_get_tag( p, policy_end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + /* + * If there is an optional qualifier, then *p < policy_end + * Check the Qualifier len to verify it doesn't exceed policy_end. + */ + if (*p < policy_end) { + if ((ret = mbedtls_asn1_get_tag(p, policy_end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != + 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* * Skip the optional policy qualifiers. */ *p += len; } - if( *p != policy_end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != policy_end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } } /* Set final sequence entry's next pointer to NULL */ cur->next = NULL; - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( parse_ret ); + return parse_ret; } /* * X.509 v3 extensions * */ -static int x509_get_crt_ext( unsigned char **p, - const unsigned char *end, - mbedtls_x509_crt *crt, - mbedtls_x509_crt_ext_cb_t cb, - void *p_ctx ) +static int x509_get_crt_ext(unsigned char **p, + const unsigned char *end, + mbedtls_x509_crt *crt, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; unsigned char *end_ext_data, *start_ext_octet, *end_ext_octet; - if( *p == end ) - return( 0 ); + if (*p == end) { + return 0; + } - if( ( ret = mbedtls_x509_get_ext( p, end, &crt->v3_ext, 3 ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_x509_get_ext(p, end, &crt->v3_ext, 3)) != 0) { + return ret; + } end = crt->v3_ext.p + crt->v3_ext.len; - while( *p < end ) - { + while (*p < end) { /* * Extension ::= SEQUENCE { * extnID OBJECT IDENTIFIER, * critical BOOLEAN DEFAULT FALSE, * extnValue OCTET STRING } */ - mbedtls_x509_buf extn_oid = {0, 0, NULL}; + mbedtls_x509_buf extn_oid = { 0, 0, NULL }; int is_critical = 0; /* DEFAULT FALSE */ int ext_type = 0; - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } end_ext_data = *p + len; /* Get extension ID */ - if( ( ret = mbedtls_asn1_get_tag( p, end_ext_data, &extn_oid.len, - MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &extn_oid.len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } extn_oid.tag = MBEDTLS_ASN1_OID; extn_oid.p = *p; *p += extn_oid.len; /* Get optional critical */ - if( ( ret = mbedtls_asn1_get_bool( p, end_ext_data, &is_critical ) ) != 0 && - ( ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_bool(p, end_ext_data, &is_critical)) != 0 && + (ret != MBEDTLS_ERR_ASN1_UNEXPECTED_TAG)) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* Data should be octet string type */ - if( ( ret = mbedtls_asn1_get_tag( p, end_ext_data, &len, - MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } start_ext_octet = *p; end_ext_octet = *p + len; - if( end_ext_octet != end_ext_data ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (end_ext_octet != end_ext_data) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* * Detect supported extensions */ - ret = mbedtls_oid_get_x509_ext_type( &extn_oid, &ext_type ); + ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type); - if( ret != 0 ) - { + if (ret != 0) { /* Give the callback (if any) a chance to handle the extension */ - if( cb != NULL ) - { - ret = cb( p_ctx, crt, &extn_oid, is_critical, *p, end_ext_octet ); - if( ret != 0 && is_critical ) - return( ret ); + if (cb != NULL) { + ret = cb(p_ctx, crt, &extn_oid, is_critical, *p, end_ext_octet); + if (ret != 0 && is_critical) { + return ret; + } *p = end_ext_octet; continue; } @@ -968,131 +1003,139 @@ static int x509_get_crt_ext( unsigned char **p, /* No parser found, skip extension */ *p = end_ext_octet; - if( is_critical ) - { + if (is_critical) { /* Data is marked as critical: fail */ - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); } continue; } /* Forbid repeated extensions */ - if( ( crt->ext_types & ext_type ) != 0 ) - return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS ); + if ((crt->ext_types & ext_type) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; + } crt->ext_types |= ext_type; - switch( ext_type ) - { - case MBEDTLS_X509_EXT_BASIC_CONSTRAINTS: - /* Parse basic constraints */ - if( ( ret = x509_get_basic_constraints( p, end_ext_octet, - &crt->ca_istrue, &crt->max_pathlen ) ) != 0 ) - return( ret ); - break; + switch (ext_type) { + case MBEDTLS_X509_EXT_BASIC_CONSTRAINTS: + /* Parse basic constraints */ + if ((ret = x509_get_basic_constraints(p, end_ext_octet, + &crt->ca_istrue, &crt->max_pathlen)) != 0) { + return ret; + } + break; - case MBEDTLS_X509_EXT_KEY_USAGE: - /* Parse key usage */ - if( ( ret = x509_get_key_usage( p, end_ext_octet, - &crt->key_usage ) ) != 0 ) - return( ret ); - break; + case MBEDTLS_X509_EXT_KEY_USAGE: + /* Parse key usage */ + if ((ret = x509_get_key_usage(p, end_ext_octet, + &crt->key_usage)) != 0) { + return ret; + } + break; - case MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE: - /* Parse extended key usage */ - if( ( ret = x509_get_ext_key_usage( p, end_ext_octet, - &crt->ext_key_usage ) ) != 0 ) - return( ret ); - break; + case MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE: + /* Parse extended key usage */ + if ((ret = x509_get_ext_key_usage(p, end_ext_octet, + &crt->ext_key_usage)) != 0) { + return ret; + } + break; - case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: - /* Parse subject alt name */ - if( ( ret = x509_get_subject_alt_name( p, end_ext_octet, - &crt->subject_alt_names ) ) != 0 ) - return( ret ); - break; + case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: + /* Parse subject alt name */ + if ((ret = x509_get_subject_alt_name(p, end_ext_octet, + &crt->subject_alt_names)) != 0) { + return ret; + } + break; - case MBEDTLS_X509_EXT_NS_CERT_TYPE: - /* Parse netscape certificate type */ - if( ( ret = x509_get_ns_cert_type( p, end_ext_octet, - &crt->ns_cert_type ) ) != 0 ) - return( ret ); - break; + case MBEDTLS_X509_EXT_NS_CERT_TYPE: + /* Parse netscape certificate type */ + if ((ret = x509_get_ns_cert_type(p, end_ext_octet, + &crt->ns_cert_type)) != 0) { + return ret; + } + break; - case MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES: - /* Parse certificate policies type */ - if( ( ret = x509_get_certificate_policies( p, end_ext_octet, - &crt->certificate_policies ) ) != 0 ) - { - /* Give the callback (if any) a chance to handle the extension - * if it contains unsupported policies */ - if( ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE && cb != NULL && - cb( p_ctx, crt, &extn_oid, is_critical, - start_ext_octet, end_ext_octet ) == 0 ) - break; + case MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES: + /* Parse certificate policies type */ + if ((ret = x509_get_certificate_policies(p, end_ext_octet, + &crt->certificate_policies)) != 0) { + /* Give the callback (if any) a chance to handle the extension + * if it contains unsupported policies */ + if (ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE && cb != NULL && + cb(p_ctx, crt, &extn_oid, is_critical, + start_ext_octet, end_ext_octet) == 0) { + break; + } - if( is_critical ) - return( ret ); - else + if (is_critical) { + return ret; + } else + /* + * If MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE is returned, then we + * cannot interpret or enforce the policy. However, it is up to + * the user to choose how to enforce the policies, + * unless the extension is critical. + */ + if (ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { + return ret; + } + } + break; + + default: /* - * If MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE is returned, then we - * cannot interpret or enforce the policy. However, it is up to - * the user to choose how to enforce the policies, - * unless the extension is critical. + * If this is a non-critical extension, which the oid layer + * supports, but there isn't an x509 parser for it, + * skip the extension. */ - if( ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ) - return( ret ); - } - break; - - default: - /* - * If this is a non-critical extension, which the oid layer - * supports, but there isn't an x509 parser for it, - * skip the extension. - */ - if( is_critical ) - return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ); - else - *p = end_ext_octet; + if (is_critical) { + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; + } else { + *p = end_ext_octet; + } } } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( 0 ); + return 0; } /* * Parse and fill a single X.509 certificate in DER format */ -static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, - const unsigned char *buf, - size_t buflen, - int make_copy, - mbedtls_x509_crt_ext_cb_t cb, - void *p_ctx ) +static int x509_crt_parse_der_core(mbedtls_x509_crt *crt, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; unsigned char *p, *end, *crt_end; mbedtls_x509_buf sig_params1, sig_params2, sig_oid2; - memset( &sig_params1, 0, sizeof( mbedtls_x509_buf ) ); - memset( &sig_params2, 0, sizeof( mbedtls_x509_buf ) ); - memset( &sig_oid2, 0, sizeof( mbedtls_x509_buf ) ); + memset(&sig_params1, 0, sizeof(mbedtls_x509_buf)); + memset(&sig_params2, 0, sizeof(mbedtls_x509_buf)); + memset(&sig_oid2, 0, sizeof(mbedtls_x509_buf)); /* * Check for valid input */ - if( crt == NULL || buf == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (crt == NULL || buf == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } /* Use the original buffer until we figure out actual length. */ - p = (unsigned char*) buf; + p = (unsigned char *) buf; len = buflen; end = p + len; @@ -1102,31 +1145,28 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * signatureAlgorithm AlgorithmIdentifier, * signatureValue BIT STRING } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERR_X509_INVALID_FORMAT ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERR_X509_INVALID_FORMAT; } end = crt_end = p + len; crt->raw.len = crt_end - buf; - if( make_copy != 0 ) - { + if (make_copy != 0) { /* Create and populate a new buffer for the raw field. */ - crt->raw.p = p = mbedtls_calloc( 1, crt->raw.len ); - if( crt->raw.p == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + crt->raw.p = p = mbedtls_calloc(1, crt->raw.len); + if (crt->raw.p == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } - memcpy( crt->raw.p, buf, crt->raw.len ); + memcpy(crt->raw.p, buf, crt->raw.len); crt->own_buffer = 1; p += crt->raw.len - len; end = crt_end = p + len; - } - else - { - crt->raw.p = (unsigned char*) buf; + } else { + crt->raw.p = (unsigned char *) buf; crt->own_buffer = 0; } @@ -1135,11 +1175,10 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, */ crt->tbs.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } end = p + len; @@ -1152,29 +1191,26 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * * signature AlgorithmIdentifier */ - if( ( ret = x509_get_version( &p, end, &crt->version ) ) != 0 || - ( ret = mbedtls_x509_get_serial( &p, end, &crt->serial ) ) != 0 || - ( ret = mbedtls_x509_get_alg( &p, end, &crt->sig_oid, - &sig_params1 ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = x509_get_version(&p, end, &crt->version)) != 0 || + (ret = mbedtls_x509_get_serial(&p, end, &crt->serial)) != 0 || + (ret = mbedtls_x509_get_alg(&p, end, &crt->sig_oid, + &sig_params1)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } - if( crt->version < 0 || crt->version > 2 ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERR_X509_UNKNOWN_VERSION ); + if (crt->version < 0 || crt->version > 2) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERR_X509_UNKNOWN_VERSION; } crt->version++; - if( ( ret = mbedtls_x509_get_sig_alg( &crt->sig_oid, &sig_params1, - &crt->sig_md, &crt->sig_pk, - &crt->sig_opts ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = mbedtls_x509_get_sig_alg(&crt->sig_oid, &sig_params1, + &crt->sig_md, &crt->sig_pk, + &crt->sig_opts)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } /* @@ -1182,17 +1218,15 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, */ crt->issuer_raw.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } - if( ( ret = mbedtls_x509_get_name( &p, p + len, &crt->issuer ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = mbedtls_x509_get_name(&p, p + len, &crt->issuer)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } crt->issuer_raw.len = p - crt->issuer_raw.p; @@ -1203,11 +1237,10 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * notAfter Time } * */ - if( ( ret = x509_get_dates( &p, end, &crt->valid_from, - &crt->valid_to ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = x509_get_dates(&p, end, &crt->valid_from, + &crt->valid_to)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } /* @@ -1215,17 +1248,15 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, */ crt->subject_raw.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } - if( len && ( ret = mbedtls_x509_get_name( &p, p + len, &crt->subject ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if (len && (ret = mbedtls_x509_get_name(&p, p + len, &crt->subject)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } crt->subject_raw.len = p - crt->subject_raw.p; @@ -1234,10 +1265,9 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * SubjectPublicKeyInfo */ crt->pk_raw.p = p; - if( ( ret = mbedtls_pk_parse_subpubkey( &p, end, &crt->pk ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = mbedtls_pk_parse_subpubkey(&p, end, &crt->pk)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } crt->pk_raw.len = p - crt->pk_raw.p; @@ -1249,41 +1279,34 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * extensions [3] EXPLICIT Extensions OPTIONAL * -- If present, version shall be v3 */ - if( crt->version == 2 || crt->version == 3 ) - { - ret = x509_get_uid( &p, end, &crt->issuer_id, 1 ); - if( ret != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if (crt->version == 2 || crt->version == 3) { + ret = x509_get_uid(&p, end, &crt->issuer_id, 1); + if (ret != 0) { + mbedtls_x509_crt_free(crt); + return ret; } } - if( crt->version == 2 || crt->version == 3 ) - { - ret = x509_get_uid( &p, end, &crt->subject_id, 2 ); - if( ret != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if (crt->version == 2 || crt->version == 3) { + ret = x509_get_uid(&p, end, &crt->subject_id, 2); + if (ret != 0) { + mbedtls_x509_crt_free(crt); + return ret; } } - if( crt->version == 3 ) - { - ret = x509_get_crt_ext( &p, end, crt, cb, p_ctx ); - if( ret != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if (crt->version == 3) { + ret = x509_get_crt_ext(&p, end, crt, cb, p_ctx); + if (ret != 0) { + mbedtls_x509_crt_free(crt); + return ret; } } - if( p != end ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } end = crt_end; @@ -1295,49 +1318,45 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, * signatureAlgorithm AlgorithmIdentifier, * signatureValue BIT STRING */ - if( ( ret = mbedtls_x509_get_alg( &p, end, &sig_oid2, &sig_params2 ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = mbedtls_x509_get_alg(&p, end, &sig_oid2, &sig_params2)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } - if( crt->sig_oid.len != sig_oid2.len || - memcmp( crt->sig_oid.p, sig_oid2.p, crt->sig_oid.len ) != 0 || + if (crt->sig_oid.len != sig_oid2.len || + memcmp(crt->sig_oid.p, sig_oid2.p, crt->sig_oid.len) != 0 || sig_params1.tag != sig_params2.tag || sig_params1.len != sig_params2.len || - ( sig_params1.len != 0 && - memcmp( sig_params1.p, sig_params2.p, sig_params1.len ) != 0 ) ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERR_X509_SIG_MISMATCH ); + (sig_params1.len != 0 && + memcmp(sig_params1.p, sig_params2.p, sig_params1.len) != 0)) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERR_X509_SIG_MISMATCH; } - if( ( ret = mbedtls_x509_get_sig( &p, end, &crt->sig ) ) != 0 ) - { - mbedtls_x509_crt_free( crt ); - return( ret ); + if ((ret = mbedtls_x509_get_sig(&p, end, &crt->sig)) != 0) { + mbedtls_x509_crt_free(crt); + return ret; } - if( p != end ) - { - mbedtls_x509_crt_free( crt ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_x509_crt_free(crt); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } - return( 0 ); + return 0; } /* * Parse one X.509 certificate in DER format from a buffer and add them to a * chained list */ -static int mbedtls_x509_crt_parse_der_internal( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen, - int make_copy, - mbedtls_x509_crt_ext_cb_t cb, - void *p_ctx ) +static int mbedtls_x509_crt_parse_der_internal(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_crt *crt = chain, *prev = NULL; @@ -1345,11 +1364,11 @@ static int mbedtls_x509_crt_parse_der_internal( mbedtls_x509_crt *chain, /* * Check for valid input */ - if( crt == NULL || buf == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (crt == NULL || buf == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - while( crt->version != 0 && crt->next != NULL ) - { + while (crt->version != 0 && crt->next != NULL) { prev = crt; crt = crt->next; } @@ -1357,64 +1376,65 @@ static int mbedtls_x509_crt_parse_der_internal( mbedtls_x509_crt *chain, /* * Add new certificate on the end of the chain if needed. */ - if( crt->version != 0 && crt->next == NULL ) - { - crt->next = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ); + if (crt->version != 0 && crt->next == NULL) { + crt->next = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); - if( crt->next == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if (crt->next == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } prev = crt; - mbedtls_x509_crt_init( crt->next ); + mbedtls_x509_crt_init(crt->next); crt = crt->next; } - ret = x509_crt_parse_der_core( crt, buf, buflen, make_copy, cb, p_ctx ); - if( ret != 0 ) - { - if( prev ) + ret = x509_crt_parse_der_core(crt, buf, buflen, make_copy, cb, p_ctx); + if (ret != 0) { + if (prev) { prev->next = NULL; + } - if( crt != chain ) - mbedtls_free( crt ); + if (crt != chain) { + mbedtls_free(crt); + } - return( ret ); + return ret; } - return( 0 ); + return 0; } -int mbedtls_x509_crt_parse_der_nocopy( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen ) +int mbedtls_x509_crt_parse_der_nocopy(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen) { - return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 0, NULL, NULL ) ); + return mbedtls_x509_crt_parse_der_internal(chain, buf, buflen, 0, NULL, NULL); } -int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen, - int make_copy, - mbedtls_x509_crt_ext_cb_t cb, - void *p_ctx ) +int mbedtls_x509_crt_parse_der_with_ext_cb(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx) { - return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, make_copy, cb, p_ctx ) ); + return mbedtls_x509_crt_parse_der_internal(chain, buf, buflen, make_copy, cb, p_ctx); } -int mbedtls_x509_crt_parse_der( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen ) +int mbedtls_x509_crt_parse_der(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen) { - return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 1, NULL, NULL ) ); + return mbedtls_x509_crt_parse_der_internal(chain, buf, buflen, 1, NULL, NULL); } /* * Parse one or more PEM certificates from a buffer and add them to the chained * list */ -int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, - const unsigned char *buf, - size_t buflen ) +int mbedtls_x509_crt_parse(mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen) { #if defined(MBEDTLS_PEM_PARSE_C) int success = 0, first_error = 0, total_failed = 0; @@ -1424,59 +1444,53 @@ int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, /* * Check for valid input */ - if( chain == NULL || buf == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (chain == NULL || buf == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } /* * Determine buffer content. Buffer contains either one DER certificate or * one or more PEM certificates. */ #if defined(MBEDTLS_PEM_PARSE_C) - if( buflen != 0 && buf[buflen - 1] == '\0' && - strstr( (const char *) buf, "-----BEGIN CERTIFICATE-----" ) != NULL ) - { + if (buflen != 0 && buf[buflen - 1] == '\0' && + strstr((const char *) buf, "-----BEGIN CERTIFICATE-----") != NULL) { buf_format = MBEDTLS_X509_FORMAT_PEM; } - if( buf_format == MBEDTLS_X509_FORMAT_DER ) - return mbedtls_x509_crt_parse_der( chain, buf, buflen ); + if (buf_format == MBEDTLS_X509_FORMAT_DER) { + return mbedtls_x509_crt_parse_der(chain, buf, buflen); + } #else - return mbedtls_x509_crt_parse_der( chain, buf, buflen ); + return mbedtls_x509_crt_parse_der(chain, buf, buflen); #endif #if defined(MBEDTLS_PEM_PARSE_C) - if( buf_format == MBEDTLS_X509_FORMAT_PEM ) - { + if (buf_format == MBEDTLS_X509_FORMAT_PEM) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_pem_context pem; /* 1 rather than 0 since the terminating NULL byte is counted in */ - while( buflen > 1 ) - { + while (buflen > 1) { size_t use_len; - mbedtls_pem_init( &pem ); + mbedtls_pem_init(&pem); /* If we get there, we know the string is null-terminated */ - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN CERTIFICATE-----", - "-----END CERTIFICATE-----", - buf, NULL, 0, &use_len ); + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN CERTIFICATE-----", + "-----END CERTIFICATE-----", + buf, NULL, 0, &use_len); - if( ret == 0 ) - { + if (ret == 0) { /* * Was PEM encoded */ buflen -= use_len; buf += use_len; - } - else if( ret == MBEDTLS_ERR_PEM_BAD_INPUT_DATA ) - { - return( ret ); - } - else if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - { - mbedtls_pem_free( &pem ); + } else if (ret == MBEDTLS_ERR_PEM_BAD_INPUT_DATA) { + return ret; + } else if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + mbedtls_pem_free(&pem); /* * PEM header and footer were found @@ -1484,29 +1498,31 @@ int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, buflen -= use_len; buf += use_len; - if( first_error == 0 ) + if (first_error == 0) { first_error = ret; + } total_failed++; continue; - } - else + } else { break; + } - ret = mbedtls_x509_crt_parse_der( chain, pem.buf, pem.buflen ); + ret = mbedtls_x509_crt_parse_der(chain, pem.buf, pem.buflen); - mbedtls_pem_free( &pem ); + mbedtls_pem_free(&pem); - if( ret != 0 ) - { + if (ret != 0) { /* * Quit parsing on a memory error */ - if( ret == MBEDTLS_ERR_X509_ALLOC_FAILED ) - return( ret ); + if (ret == MBEDTLS_ERR_X509_ALLOC_FAILED) { + return ret; + } - if( first_error == 0 ) + if (first_error == 0) { first_error = ret; + } total_failed++; continue; @@ -1516,12 +1532,13 @@ int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, } } - if( success ) - return( total_failed ); - else if( first_error ) - return( first_error ); - else - return( MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT ); + if (success) { + return total_failed; + } else if (first_error) { + return first_error; + } else { + return MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT; + } #endif /* MBEDTLS_PEM_PARSE_C */ } @@ -1529,24 +1546,25 @@ int mbedtls_x509_crt_parse( mbedtls_x509_crt *chain, /* * Load one or more certificates and add them to the chained list */ -int mbedtls_x509_crt_parse_file( mbedtls_x509_crt *chain, const char *path ) +int mbedtls_x509_crt_parse_file(mbedtls_x509_crt *chain, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) { + return ret; + } - ret = mbedtls_x509_crt_parse( chain, buf, n ); + ret = mbedtls_x509_crt_parse(chain, buf, n); - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } -int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path ) +int mbedtls_x509_crt_parse_path(mbedtls_x509_crt *chain, const char *path) { int ret = 0; #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) @@ -1554,96 +1572,94 @@ int mbedtls_x509_crt_parse_path( mbedtls_x509_crt *chain, const char *path ) WCHAR szDir[MAX_PATH]; char filename[MAX_PATH]; char *p; - size_t len = strlen( path ); + size_t len = strlen(path); WIN32_FIND_DATAW file_data; HANDLE hFind; - if( len > MAX_PATH - 3 ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (len > MAX_PATH - 3) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - memset( szDir, 0, sizeof(szDir) ); - memset( filename, 0, MAX_PATH ); - memcpy( filename, path, len ); + memset(szDir, 0, sizeof(szDir)); + memset(filename, 0, MAX_PATH); + memcpy(filename, path, len); filename[len++] = '\\'; p = filename + len; filename[len++] = '*'; - w_ret = MultiByteToWideChar( CP_ACP, 0, filename, (int)len, szDir, - MAX_PATH - 3 ); - if( w_ret == 0 ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + w_ret = MultiByteToWideChar(CP_ACP, 0, filename, (int) len, szDir, + MAX_PATH - 3); + if (w_ret == 0) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - hFind = FindFirstFileW( szDir, &file_data ); - if( hFind == INVALID_HANDLE_VALUE ) - return( MBEDTLS_ERR_X509_FILE_IO_ERROR ); + hFind = FindFirstFileW(szDir, &file_data); + if (hFind == INVALID_HANDLE_VALUE) { + return MBEDTLS_ERR_X509_FILE_IO_ERROR; + } len = MAX_PATH - len; - do - { - memset( p, 0, len ); + do { + memset(p, 0, len); - if( file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) + if (file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { continue; + } - w_ret = WideCharToMultiByte( CP_ACP, 0, file_data.cFileName, - lstrlenW( file_data.cFileName ), - p, (int) len - 1, - NULL, NULL ); - if( w_ret == 0 ) - { + w_ret = WideCharToMultiByte(CP_ACP, 0, file_data.cFileName, + lstrlenW(file_data.cFileName), + p, (int) len - 1, + NULL, NULL); + if (w_ret == 0) { ret = MBEDTLS_ERR_X509_FILE_IO_ERROR; goto cleanup; } - w_ret = mbedtls_x509_crt_parse_file( chain, filename ); - if( w_ret < 0 ) + w_ret = mbedtls_x509_crt_parse_file(chain, filename); + if (w_ret < 0) { ret++; - else + } else { ret += w_ret; - } - while( FindNextFileW( hFind, &file_data ) != 0 ); + } + } while (FindNextFileW(hFind, &file_data) != 0); - if( GetLastError() != ERROR_NO_MORE_FILES ) + if (GetLastError() != ERROR_NO_MORE_FILES) { ret = MBEDTLS_ERR_X509_FILE_IO_ERROR; + } cleanup: - FindClose( hFind ); + FindClose(hFind); #else /* _WIN32 */ int t_ret; int snp_ret; struct stat sb; struct dirent *entry; char entry_name[MBEDTLS_X509_MAX_FILE_PATH_LEN]; - DIR *dir = opendir( path ); + DIR *dir = opendir(path); - if( dir == NULL ) - return( MBEDTLS_ERR_X509_FILE_IO_ERROR ); + if (dir == NULL) { + return MBEDTLS_ERR_X509_FILE_IO_ERROR; + } #if defined(MBEDTLS_THREADING_C) - if( ( ret = mbedtls_mutex_lock( &mbedtls_threading_readdir_mutex ) ) != 0 ) - { - closedir( dir ); - return( ret ); + if ((ret = mbedtls_mutex_lock(&mbedtls_threading_readdir_mutex)) != 0) { + closedir(dir); + return ret; } #endif /* MBEDTLS_THREADING_C */ - memset( &sb, 0, sizeof( sb ) ); + memset(&sb, 0, sizeof(sb)); - while( ( entry = readdir( dir ) ) != NULL ) - { - snp_ret = mbedtls_snprintf( entry_name, sizeof entry_name, - "%s/%s", path, entry->d_name ); + while ((entry = readdir(dir)) != NULL) { + snp_ret = mbedtls_snprintf(entry_name, sizeof entry_name, + "%s/%s", path, entry->d_name); - if( snp_ret < 0 || (size_t)snp_ret >= sizeof entry_name ) - { + if (snp_ret < 0 || (size_t) snp_ret >= sizeof entry_name) { ret = MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; goto cleanup; - } - else if( stat( entry_name, &sb ) == -1 ) - { - if( errno == ENOENT ) - { + } else if (stat(entry_name, &sb) == -1) { + if (errno == ENOENT) { /* Broken symbolic link - ignore this entry. stat(2) will return this error for either (a) a dangling symlink or (b) a missing file. @@ -1651,38 +1667,39 @@ cleanup: assume that it does exist and therefore treat this as a dangling symlink. */ continue; - } - else - { + } else { /* Some other file error; report the error. */ ret = MBEDTLS_ERR_X509_FILE_IO_ERROR; goto cleanup; } } - if( !S_ISREG( sb.st_mode ) ) + if (!S_ISREG(sb.st_mode)) { continue; + } // Ignore parse errors // - t_ret = mbedtls_x509_crt_parse_file( chain, entry_name ); - if( t_ret < 0 ) + t_ret = mbedtls_x509_crt_parse_file(chain, entry_name); + if (t_ret < 0) { ret++; - else + } else { ret += t_ret; + } } cleanup: - closedir( dir ); + closedir(dir); #if defined(MBEDTLS_THREADING_C) - if( mbedtls_mutex_unlock( &mbedtls_threading_readdir_mutex ) != 0 ) + if (mbedtls_mutex_unlock(&mbedtls_threading_readdir_mutex) != 0) { ret = MBEDTLS_ERR_THREADING_MUTEX_ERROR; + } #endif /* MBEDTLS_THREADING_C */ #endif /* _WIN32 */ - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ @@ -1698,8 +1715,8 @@ cleanup: * NOTE: we currently only parse and use otherName of type HwModuleName, * as defined in RFC 4108. */ -static int x509_get_other_name( const mbedtls_x509_buf *subject_alt_name, - mbedtls_x509_san_other_name *other_name ) +static int x509_get_other_name(const mbedtls_x509_buf *subject_alt_name, + mbedtls_x509_san_other_name *other_name) { int ret = 0; size_t len; @@ -1707,19 +1724,19 @@ static int x509_get_other_name( const mbedtls_x509_buf *subject_alt_name, const unsigned char *end = p + subject_alt_name->len; mbedtls_x509_buf cur_oid; - if( ( subject_alt_name->tag & - ( MBEDTLS_ASN1_TAG_CLASS_MASK | MBEDTLS_ASN1_TAG_VALUE_MASK ) ) != - ( MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME ) ) - { + if ((subject_alt_name->tag & + (MBEDTLS_ASN1_TAG_CLASS_MASK | MBEDTLS_ASN1_TAG_VALUE_MASK)) != + (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME)) { /* * The given subject alternative name is not of type "othername". */ - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } cur_oid.tag = MBEDTLS_ASN1_OID; cur_oid.p = p; @@ -1728,81 +1745,82 @@ static int x509_get_other_name( const mbedtls_x509_buf *subject_alt_name, /* * Only HwModuleName is currently supported. */ - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, &cur_oid ) != 0 ) - { - return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, &cur_oid) != 0) { + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; } - if( p + len >= end ) - { - mbedtls_platform_zeroize( other_name, sizeof( *other_name ) ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p + len >= end) { + mbedtls_platform_zeroize(other_name, sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } p += len; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) != + 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } other_name->value.hardware_module_name.oid.tag = MBEDTLS_ASN1_OID; other_name->value.hardware_module_name.oid.p = p; other_name->value.hardware_module_name.oid.len = len; - if( p + len >= end ) - { - mbedtls_platform_zeroize( other_name, sizeof( *other_name ) ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p + len >= end) { + mbedtls_platform_zeroize(other_name, sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } p += len; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } other_name->value.hardware_module_name.val.tag = MBEDTLS_ASN1_OCTET_STRING; other_name->value.hardware_module_name.val.p = p; other_name->value.hardware_module_name.val.len = len; p += len; - if( p != end ) - { - mbedtls_platform_zeroize( other_name, - sizeof( *other_name ) ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_platform_zeroize(other_name, + sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } - return( 0 ); + return 0; } -int mbedtls_x509_parse_subject_alt_name( const mbedtls_x509_buf *san_buf, - mbedtls_x509_subject_alternative_name *san ) +int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, + mbedtls_x509_subject_alternative_name *san) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch( san_buf->tag & - ( MBEDTLS_ASN1_TAG_CLASS_MASK | - MBEDTLS_ASN1_TAG_VALUE_MASK ) ) - { + switch (san_buf->tag & + (MBEDTLS_ASN1_TAG_CLASS_MASK | + MBEDTLS_ASN1_TAG_VALUE_MASK)) { /* * otherName */ - case( MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME ): + case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME): { mbedtls_x509_san_other_name other_name; - ret = x509_get_other_name( san_buf, &other_name ); - if( ret != 0 ) - return( ret ); + ret = x509_get_other_name(san_buf, &other_name); + if (ret != 0) { + return ret; + } - memset( san, 0, sizeof( mbedtls_x509_subject_alternative_name ) ); + memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); san->type = MBEDTLS_X509_SAN_OTHER_NAME; - memcpy( &san->san.other_name, - &other_name, sizeof( other_name ) ); + memcpy(&san->san.other_name, + &other_name, sizeof(other_name)); } break; @@ -1810,13 +1828,13 @@ int mbedtls_x509_parse_subject_alt_name( const mbedtls_x509_buf *san_buf, /* * dNSName */ - case( MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_DNS_NAME ): + case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_DNS_NAME): { - memset( san, 0, sizeof( mbedtls_x509_subject_alternative_name ) ); + memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); san->type = MBEDTLS_X509_SAN_DNS_NAME; - memcpy( &san->san.unstructured_name, - san_buf, sizeof( *san_buf ) ); + memcpy(&san->san.unstructured_name, + san_buf, sizeof(*san_buf)); } break; @@ -1825,16 +1843,16 @@ int mbedtls_x509_parse_subject_alt_name( const mbedtls_x509_buf *san_buf, * Type not supported */ default: - return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ); + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; } - return( 0 ); + return 0; } #if !defined(MBEDTLS_X509_REMOVE_INFO) -static int x509_info_subject_alt_name( char **buf, size_t *size, - const mbedtls_x509_sequence - *subject_alt_name, - const char *prefix ) +static int x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -1844,28 +1862,22 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, mbedtls_x509_subject_alternative_name san; int parse_ret; - while( cur != NULL ) - { - memset( &san, 0, sizeof( san ) ); - parse_ret = mbedtls_x509_parse_subject_alt_name( &cur->buf, &san ); - if( parse_ret != 0 ) - { - if( parse_ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ) - { - ret = mbedtls_snprintf( p, n, "\n%s ", prefix ); + while (cur != NULL) { + memset(&san, 0, sizeof(san)); + parse_ret = mbedtls_x509_parse_subject_alt_name(&cur->buf, &san); + if (parse_ret != 0) { + if (parse_ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - } - else - { - ret = mbedtls_snprintf( p, n, "\n%s ", prefix ); + } else { + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; } cur = cur->next; continue; } - switch( san.type ) - { + switch (san.type) { /* * otherName */ @@ -1873,26 +1885,31 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, { mbedtls_x509_san_other_name *other_name = &san.san.other_name; - ret = mbedtls_snprintf( p, n, "\n%s otherName :", prefix ); + ret = mbedtls_snprintf(p, n, "\n%s otherName :", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, - &other_name->value.hardware_module_name.oid ) != 0 ) - { - ret = mbedtls_snprintf( p, n, "\n%s hardware module name :", prefix ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, + &other_name->value.hardware_module_name.oid) != 0) { + ret = mbedtls_snprintf(p, n, "\n%s hardware module name :", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%s hardware type : ", prefix ); + ret = + mbedtls_snprintf(p, n, "\n%s hardware type : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_oid_get_numeric_string( p, n, &other_name->value.hardware_module_name.oid ); + ret = mbedtls_oid_get_numeric_string(p, + n, + &other_name->value.hardware_module_name.oid); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%s hardware serial number : ", prefix ); + ret = + mbedtls_snprintf(p, n, "\n%s hardware serial number : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - for( i = 0; i < other_name->value.hardware_module_name.val.len; i++ ) - { - ret = mbedtls_snprintf( p, n, "%02X", other_name->value.hardware_module_name.val.p[i] ); + for (i = 0; i < other_name->value.hardware_module_name.val.len; i++) { + ret = mbedtls_snprintf(p, + n, + "%02X", + other_name->value.hardware_module_name.val.p[i]); MBEDTLS_X509_SAFE_SNPRINTF; } }/* MBEDTLS_OID_ON_HW_MODULE_NAME */ @@ -1904,15 +1921,14 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, */ case MBEDTLS_X509_SAN_DNS_NAME: { - ret = mbedtls_snprintf( p, n, "\n%s dNSName : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%s dNSName : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( san.san.unstructured_name.len >= n ) - { + if (san.san.unstructured_name.len >= n) { *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; } - memcpy( p, san.san.unstructured_name.p, san.san.unstructured_name.len ); + memcpy(p, san.san.unstructured_name.p, san.san.unstructured_name.len); p += san.san.unstructured_name.len; n -= san.san.unstructured_name.len; } @@ -1922,7 +1938,7 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, * Type not supported, skip item. */ default: - ret = mbedtls_snprintf( p, n, "\n%s ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; break; } @@ -1935,73 +1951,73 @@ static int x509_info_subject_alt_name( char **buf, size_t *size, *size = n; *buf = p; - return( 0 ); + return 0; } #define PRINT_ITEM(i) \ { \ - ret = mbedtls_snprintf( p, n, "%s" i, sep ); \ + ret = mbedtls_snprintf(p, n, "%s" i, sep); \ MBEDTLS_X509_SAFE_SNPRINTF; \ sep = ", "; \ } -#define CERT_TYPE(type,name) \ - if( ns_cert_type & (type) ) \ - PRINT_ITEM( name ); +#define CERT_TYPE(type, name) \ + if (ns_cert_type & (type)) \ + PRINT_ITEM(name); -static int x509_info_cert_type( char **buf, size_t *size, - unsigned char ns_cert_type ) +static int x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; char *p = *buf; const char *sep = ""; - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT, "SSL Client" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER, "SSL Server" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_EMAIL, "Email" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING, "Object Signing" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_RESERVED, "Reserved" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_SSL_CA, "SSL CA" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA, "Email CA" ); - CERT_TYPE( MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA, "Object Signing CA" ); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT, "SSL Client"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER, "SSL Server"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL, "Email"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING, "Object Signing"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_RESERVED, "Reserved"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CA, "SSL CA"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA, "Email CA"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA, "Object Signing CA"); *size = n; *buf = p; - return( 0 ); + return 0; } -#define KEY_USAGE(code,name) \ - if( key_usage & (code) ) \ - PRINT_ITEM( name ); +#define KEY_USAGE(code, name) \ + if (key_usage & (code)) \ + PRINT_ITEM(name); -static int x509_info_key_usage( char **buf, size_t *size, - unsigned int key_usage ) +static int x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; char *p = *buf; const char *sep = ""; - KEY_USAGE( MBEDTLS_X509_KU_DIGITAL_SIGNATURE, "Digital Signature" ); - KEY_USAGE( MBEDTLS_X509_KU_NON_REPUDIATION, "Non Repudiation" ); - KEY_USAGE( MBEDTLS_X509_KU_KEY_ENCIPHERMENT, "Key Encipherment" ); - KEY_USAGE( MBEDTLS_X509_KU_DATA_ENCIPHERMENT, "Data Encipherment" ); - KEY_USAGE( MBEDTLS_X509_KU_KEY_AGREEMENT, "Key Agreement" ); - KEY_USAGE( MBEDTLS_X509_KU_KEY_CERT_SIGN, "Key Cert Sign" ); - KEY_USAGE( MBEDTLS_X509_KU_CRL_SIGN, "CRL Sign" ); - KEY_USAGE( MBEDTLS_X509_KU_ENCIPHER_ONLY, "Encipher Only" ); - KEY_USAGE( MBEDTLS_X509_KU_DECIPHER_ONLY, "Decipher Only" ); + KEY_USAGE(MBEDTLS_X509_KU_DIGITAL_SIGNATURE, "Digital Signature"); + KEY_USAGE(MBEDTLS_X509_KU_NON_REPUDIATION, "Non Repudiation"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_ENCIPHERMENT, "Key Encipherment"); + KEY_USAGE(MBEDTLS_X509_KU_DATA_ENCIPHERMENT, "Data Encipherment"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_AGREEMENT, "Key Agreement"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_CERT_SIGN, "Key Cert Sign"); + KEY_USAGE(MBEDTLS_X509_KU_CRL_SIGN, "CRL Sign"); + KEY_USAGE(MBEDTLS_X509_KU_ENCIPHER_ONLY, "Encipher Only"); + KEY_USAGE(MBEDTLS_X509_KU_DECIPHER_ONLY, "Decipher Only"); *size = n; *buf = p; - return( 0 ); + return 0; } -static int x509_info_ext_key_usage( char **buf, size_t *size, - const mbedtls_x509_sequence *extended_key_usage ) +static int x509_info_ext_key_usage(char **buf, size_t *size, + const mbedtls_x509_sequence *extended_key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const char *desc; @@ -2010,12 +2026,12 @@ static int x509_info_ext_key_usage( char **buf, size_t *size, const mbedtls_x509_sequence *cur = extended_key_usage; const char *sep = ""; - while( cur != NULL ) - { - if( mbedtls_oid_get_extended_key_usage( &cur->buf, &desc ) != 0 ) + while (cur != NULL) { + if (mbedtls_oid_get_extended_key_usage(&cur->buf, &desc) != 0) { desc = "???"; + } - ret = mbedtls_snprintf( p, n, "%s%s", sep, desc ); + ret = mbedtls_snprintf(p, n, "%s%s", sep, desc); MBEDTLS_X509_SAFE_SNPRINTF; sep = ", "; @@ -2026,11 +2042,11 @@ static int x509_info_ext_key_usage( char **buf, size_t *size, *size = n; *buf = p; - return( 0 ); + return 0; } -static int x509_info_cert_policies( char **buf, size_t *size, - const mbedtls_x509_sequence *certificate_policies ) +static int x509_info_cert_policies(char **buf, size_t *size, + const mbedtls_x509_sequence *certificate_policies) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const char *desc; @@ -2039,12 +2055,12 @@ static int x509_info_cert_policies( char **buf, size_t *size, const mbedtls_x509_sequence *cur = certificate_policies; const char *sep = ""; - while( cur != NULL ) - { - if( mbedtls_oid_get_certificate_policies( &cur->buf, &desc ) != 0 ) + while (cur != NULL) { + if (mbedtls_oid_get_certificate_policies(&cur->buf, &desc) != 0) { desc = "???"; + } - ret = mbedtls_snprintf( p, n, "%s%s", sep, desc ); + ret = mbedtls_snprintf(p, n, "%s%s", sep, desc); MBEDTLS_X509_SAFE_SNPRINTF; sep = ", "; @@ -2055,7 +2071,7 @@ static int x509_info_cert_policies( char **buf, size_t *size, *size = n; *buf = p; - return( 0 ); + return 0; } /* @@ -2063,8 +2079,8 @@ static int x509_info_cert_policies( char **buf, size_t *size, */ #define BEFORE_COLON 18 #define BC "18" -int mbedtls_x509_crt_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_crt *crt ) +int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_crt *crt) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; @@ -2074,136 +2090,132 @@ int mbedtls_x509_crt_info( char *buf, size_t size, const char *prefix, p = buf; n = size; - if( NULL == crt ) - { - ret = mbedtls_snprintf( p, n, "\nCertificate is uninitialised!\n" ); + if (NULL == crt) { + ret = mbedtls_snprintf(p, n, "\nCertificate is uninitialised!\n"); MBEDTLS_X509_SAFE_SNPRINTF; - return( (int) ( size - n ) ); + return (int) (size - n); } - ret = mbedtls_snprintf( p, n, "%scert. version : %d\n", - prefix, crt->version ); + ret = mbedtls_snprintf(p, n, "%scert. version : %d\n", + prefix, crt->version); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "%sserial number : ", - prefix ); + ret = mbedtls_snprintf(p, n, "%sserial number : ", + prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_serial_gets( p, n, &crt->serial ); + ret = mbedtls_x509_serial_gets(p, n, &crt->serial); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%sissuer name : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%sissuer name : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_dn_gets( p, n, &crt->issuer ); + ret = mbedtls_x509_dn_gets(p, n, &crt->issuer); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%ssubject name : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%ssubject name : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_dn_gets( p, n, &crt->subject ); + ret = mbedtls_x509_dn_gets(p, n, &crt->subject); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%sissued on : " \ - "%04d-%02d-%02d %02d:%02d:%02d", prefix, - crt->valid_from.year, crt->valid_from.mon, - crt->valid_from.day, crt->valid_from.hour, - crt->valid_from.min, crt->valid_from.sec ); + ret = mbedtls_snprintf(p, n, "\n%sissued on : " \ + "%04d-%02d-%02d %02d:%02d:%02d", prefix, + crt->valid_from.year, crt->valid_from.mon, + crt->valid_from.day, crt->valid_from.hour, + crt->valid_from.min, crt->valid_from.sec); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%sexpires on : " \ - "%04d-%02d-%02d %02d:%02d:%02d", prefix, - crt->valid_to.year, crt->valid_to.mon, - crt->valid_to.day, crt->valid_to.hour, - crt->valid_to.min, crt->valid_to.sec ); + ret = mbedtls_snprintf(p, n, "\n%sexpires on : " \ + "%04d-%02d-%02d %02d:%02d:%02d", prefix, + crt->valid_to.year, crt->valid_to.mon, + crt->valid_to.day, crt->valid_to.hour, + crt->valid_to.min, crt->valid_to.sec); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%ssigned using : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%ssigned using : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_sig_alg_gets( p, n, &crt->sig_oid, crt->sig_pk, - crt->sig_md, crt->sig_opts ); + ret = mbedtls_x509_sig_alg_gets(p, n, &crt->sig_oid, crt->sig_pk, + crt->sig_md, crt->sig_opts); MBEDTLS_X509_SAFE_SNPRINTF; /* Key size */ - if( ( ret = mbedtls_x509_key_size_helper( key_size_str, BEFORE_COLON, - mbedtls_pk_get_name( &crt->pk ) ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_x509_key_size_helper(key_size_str, BEFORE_COLON, + mbedtls_pk_get_name(&crt->pk))) != 0) { + return ret; } - ret = mbedtls_snprintf( p, n, "\n%s%-" BC "s: %d bits", prefix, key_size_str, - (int) mbedtls_pk_get_bitlen( &crt->pk ) ); + ret = mbedtls_snprintf(p, n, "\n%s%-" BC "s: %d bits", prefix, key_size_str, + (int) mbedtls_pk_get_bitlen(&crt->pk)); MBEDTLS_X509_SAFE_SNPRINTF; /* * Optional extensions */ - if( crt->ext_types & MBEDTLS_X509_EXT_BASIC_CONSTRAINTS ) - { - ret = mbedtls_snprintf( p, n, "\n%sbasic constraints : CA=%s", prefix, - crt->ca_istrue ? "true" : "false" ); + if (crt->ext_types & MBEDTLS_X509_EXT_BASIC_CONSTRAINTS) { + ret = mbedtls_snprintf(p, n, "\n%sbasic constraints : CA=%s", prefix, + crt->ca_istrue ? "true" : "false"); MBEDTLS_X509_SAFE_SNPRINTF; - if( crt->max_pathlen > 0 ) - { - ret = mbedtls_snprintf( p, n, ", max_pathlen=%d", crt->max_pathlen - 1 ); + if (crt->max_pathlen > 0) { + ret = mbedtls_snprintf(p, n, ", max_pathlen=%d", crt->max_pathlen - 1); MBEDTLS_X509_SAFE_SNPRINTF; } } - if( crt->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME ) - { - ret = mbedtls_snprintf( p, n, "\n%ssubject alt name :", prefix ); + if (crt->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) { + ret = mbedtls_snprintf(p, n, "\n%ssubject alt name :", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = x509_info_subject_alt_name( &p, &n, - &crt->subject_alt_names, - prefix ) ) != 0 ) - return( ret ); + if ((ret = x509_info_subject_alt_name(&p, &n, + &crt->subject_alt_names, + prefix)) != 0) { + return ret; + } } - if( crt->ext_types & MBEDTLS_X509_EXT_NS_CERT_TYPE ) - { - ret = mbedtls_snprintf( p, n, "\n%scert. type : ", prefix ); + if (crt->ext_types & MBEDTLS_X509_EXT_NS_CERT_TYPE) { + ret = mbedtls_snprintf(p, n, "\n%scert. type : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = x509_info_cert_type( &p, &n, crt->ns_cert_type ) ) != 0 ) - return( ret ); + if ((ret = x509_info_cert_type(&p, &n, crt->ns_cert_type)) != 0) { + return ret; + } } - if( crt->ext_types & MBEDTLS_X509_EXT_KEY_USAGE ) - { - ret = mbedtls_snprintf( p, n, "\n%skey usage : ", prefix ); + if (crt->ext_types & MBEDTLS_X509_EXT_KEY_USAGE) { + ret = mbedtls_snprintf(p, n, "\n%skey usage : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = x509_info_key_usage( &p, &n, crt->key_usage ) ) != 0 ) - return( ret ); + if ((ret = x509_info_key_usage(&p, &n, crt->key_usage)) != 0) { + return ret; + } } - if( crt->ext_types & MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE ) - { - ret = mbedtls_snprintf( p, n, "\n%sext key usage : ", prefix ); + if (crt->ext_types & MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE) { + ret = mbedtls_snprintf(p, n, "\n%sext key usage : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = x509_info_ext_key_usage( &p, &n, - &crt->ext_key_usage ) ) != 0 ) - return( ret ); + if ((ret = x509_info_ext_key_usage(&p, &n, + &crt->ext_key_usage)) != 0) { + return ret; + } } - if( crt->ext_types & MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES ) - { - ret = mbedtls_snprintf( p, n, "\n%scertificate policies : ", prefix ); + if (crt->ext_types & MBEDTLS_OID_X509_EXT_CERTIFICATE_POLICIES) { + ret = mbedtls_snprintf(p, n, "\n%scertificate policies : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = x509_info_cert_policies( &p, &n, - &crt->certificate_policies ) ) != 0 ) - return( ret ); + if ((ret = x509_info_cert_policies(&p, &n, + &crt->certificate_policies)) != 0) { + return ret; + } } - ret = mbedtls_snprintf( p, n, "\n" ); + ret = mbedtls_snprintf(p, n, "\n"); MBEDTLS_X509_SAFE_SNPRINTF; - return( (int) ( size - n ) ); + return (int) (size - n); } struct x509_crt_verify_string { @@ -2211,124 +2223,124 @@ struct x509_crt_verify_string { const char *string; }; -#define X509_CRT_ERROR_INFO( err, err_str, info ) { err, info }, +#define X509_CRT_ERROR_INFO(err, err_str, info) { err, info }, static const struct x509_crt_verify_string x509_crt_verify_strings[] = { MBEDTLS_X509_CRT_ERROR_INFO_LIST { 0, NULL } }; #undef X509_CRT_ERROR_INFO -int mbedtls_x509_crt_verify_info( char *buf, size_t size, const char *prefix, - uint32_t flags ) +int mbedtls_x509_crt_verify_info(char *buf, size_t size, const char *prefix, + uint32_t flags) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const struct x509_crt_verify_string *cur; char *p = buf; size_t n = size; - for( cur = x509_crt_verify_strings; cur->string != NULL ; cur++ ) - { - if( ( flags & cur->code ) == 0 ) + for (cur = x509_crt_verify_strings; cur->string != NULL; cur++) { + if ((flags & cur->code) == 0) { continue; + } - ret = mbedtls_snprintf( p, n, "%s%s\n", prefix, cur->string ); + ret = mbedtls_snprintf(p, n, "%s%s\n", prefix, cur->string); MBEDTLS_X509_SAFE_SNPRINTF; flags ^= cur->code; } - if( flags != 0 ) - { - ret = mbedtls_snprintf( p, n, "%sUnknown reason " - "(this should not happen)\n", prefix ); + if (flags != 0) { + ret = mbedtls_snprintf(p, n, "%sUnknown reason " + "(this should not happen)\n", prefix); MBEDTLS_X509_SAFE_SNPRINTF; } - return( (int) ( size - n ) ); + return (int) (size - n); } #endif /* MBEDTLS_X509_REMOVE_INFO */ -int mbedtls_x509_crt_check_key_usage( const mbedtls_x509_crt *crt, - unsigned int usage ) +int mbedtls_x509_crt_check_key_usage(const mbedtls_x509_crt *crt, + unsigned int usage) { unsigned int usage_must, usage_may; unsigned int may_mask = MBEDTLS_X509_KU_ENCIPHER_ONLY - | MBEDTLS_X509_KU_DECIPHER_ONLY; + | MBEDTLS_X509_KU_DECIPHER_ONLY; - if( ( crt->ext_types & MBEDTLS_X509_EXT_KEY_USAGE ) == 0 ) - return( 0 ); + if ((crt->ext_types & MBEDTLS_X509_EXT_KEY_USAGE) == 0) { + return 0; + } usage_must = usage & ~may_mask; - if( ( ( crt->key_usage & ~may_mask ) & usage_must ) != usage_must ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (((crt->key_usage & ~may_mask) & usage_must) != usage_must) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } usage_may = usage & may_mask; - if( ( ( crt->key_usage & may_mask ) | usage_may ) != usage_may ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (((crt->key_usage & may_mask) | usage_may) != usage_may) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - return( 0 ); + return 0; } -int mbedtls_x509_crt_check_extended_key_usage( const mbedtls_x509_crt *crt, - const char *usage_oid, - size_t usage_len ) +int mbedtls_x509_crt_check_extended_key_usage(const mbedtls_x509_crt *crt, + const char *usage_oid, + size_t usage_len) { const mbedtls_x509_sequence *cur; /* Extension is not mandatory, absent means no restriction */ - if( ( crt->ext_types & MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE ) == 0 ) - return( 0 ); + if ((crt->ext_types & MBEDTLS_X509_EXT_EXTENDED_KEY_USAGE) == 0) { + return 0; + } /* * Look for the requested usage (or wildcard ANY) in our list */ - for( cur = &crt->ext_key_usage; cur != NULL; cur = cur->next ) - { + for (cur = &crt->ext_key_usage; cur != NULL; cur = cur->next) { const mbedtls_x509_buf *cur_oid = &cur->buf; - if( cur_oid->len == usage_len && - memcmp( cur_oid->p, usage_oid, usage_len ) == 0 ) - { - return( 0 ); + if (cur_oid->len == usage_len && + memcmp(cur_oid->p, usage_oid, usage_len) == 0) { + return 0; } - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE, cur_oid ) == 0 ) - return( 0 ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ANY_EXTENDED_KEY_USAGE, cur_oid) == 0) { + return 0; + } } - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } #if defined(MBEDTLS_X509_CRL_PARSE_C) /* * Return 1 if the certificate is revoked, or 0 otherwise. */ -int mbedtls_x509_crt_is_revoked( const mbedtls_x509_crt *crt, const mbedtls_x509_crl *crl ) +int mbedtls_x509_crt_is_revoked(const mbedtls_x509_crt *crt, const mbedtls_x509_crl *crl) { const mbedtls_x509_crl_entry *cur = &crl->entry; - while( cur != NULL && cur->serial.len != 0 ) - { - if( crt->serial.len == cur->serial.len && - memcmp( crt->serial.p, cur->serial.p, crt->serial.len ) == 0 ) - { - return( 1 ); + while (cur != NULL && cur->serial.len != 0) { + if (crt->serial.len == cur->serial.len && + memcmp(crt->serial.p, cur->serial.p, crt->serial.len) == 0) { + return 1; } cur = cur->next; } - return( 0 ); + return 0; } /* * Check that the given certificate is not revoked according to the CRL. * Skip validation if no CRL for the given CA is present. */ -static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, - mbedtls_x509_crl *crl_list, - const mbedtls_x509_crt_profile *profile ) +static int x509_crt_verifycrl(mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, + mbedtls_x509_crl *crl_list, + const mbedtls_x509_crt_profile *profile) { int flags = 0; unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; @@ -2339,14 +2351,13 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, #endif /* MBEDTLS_USE_PSA_CRYPTO */ size_t hash_length; - if( ca == NULL ) - return( flags ); + if (ca == NULL) { + return flags; + } - while( crl_list != NULL ) - { - if( crl_list->version == 0 || - x509_name_cmp( &crl_list->issuer, &ca->subject ) != 0 ) - { + while (crl_list != NULL) { + if (crl_list->version == 0 || + x509_name_cmp(&crl_list->issuer, &ca->subject) != 0) { crl_list = crl_list->next; continue; } @@ -2354,9 +2365,8 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, /* * Check if the CA is configured to sign CRLs */ - if( mbedtls_x509_crt_check_key_usage( ca, - MBEDTLS_X509_KU_CRL_SIGN ) != 0 ) - { + if (mbedtls_x509_crt_check_key_usage(ca, + MBEDTLS_X509_KU_CRL_SIGN) != 0) { flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED; break; } @@ -2364,46 +2374,46 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, /* * Check if CRL is correctly signed by the trusted CA */ - if( x509_profile_check_md_alg( profile, crl_list->sig_md ) != 0 ) + if (x509_profile_check_md_alg(profile, crl_list->sig_md) != 0) { flags |= MBEDTLS_X509_BADCRL_BAD_MD; + } - if( x509_profile_check_pk_alg( profile, crl_list->sig_pk ) != 0 ) + if (x509_profile_check_pk_alg(profile, crl_list->sig_pk) != 0) { flags |= MBEDTLS_X509_BADCRL_BAD_PK; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_algorithm = mbedtls_hash_info_psa_from_md( crl_list->sig_md ); - if( psa_hash_compute( psa_algorithm, - crl_list->tbs.p, - crl_list->tbs.len, - hash, - sizeof( hash ), - &hash_length ) != PSA_SUCCESS ) - { + psa_algorithm = mbedtls_hash_info_psa_from_md(crl_list->sig_md); + if (psa_hash_compute(psa_algorithm, + crl_list->tbs.p, + crl_list->tbs.len, + hash, + sizeof(hash), + &hash_length) != PSA_SUCCESS) { /* Note: this can't happen except after an internal error */ flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED; break; } #else - md_info = mbedtls_md_info_from_type( crl_list->sig_md ); - hash_length = mbedtls_md_get_size( md_info ); - if( mbedtls_md( md_info, - crl_list->tbs.p, - crl_list->tbs.len, - hash ) != 0 ) - { + md_info = mbedtls_md_info_from_type(crl_list->sig_md); + hash_length = mbedtls_md_get_size(md_info); + if (mbedtls_md(md_info, + crl_list->tbs.p, + crl_list->tbs.len, + hash) != 0) { /* Note: this can't happen except after an internal error */ flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED; break; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( x509_profile_check_key( profile, &ca->pk ) != 0 ) + if (x509_profile_check_key(profile, &ca->pk) != 0) { flags |= MBEDTLS_X509_BADCERT_BAD_KEY; + } - if( mbedtls_pk_verify_ext( crl_list->sig_pk, crl_list->sig_opts, &ca->pk, - crl_list->sig_md, hash, hash_length, - crl_list->sig.p, crl_list->sig.len ) != 0 ) - { + if (mbedtls_pk_verify_ext(crl_list->sig_pk, crl_list->sig_opts, &ca->pk, + crl_list->sig_md, hash, hash_length, + crl_list->sig.p, crl_list->sig.len) != 0) { flags |= MBEDTLS_X509_BADCRL_NOT_TRUSTED; break; } @@ -2411,17 +2421,18 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, /* * Check for validity of CRL (Do not drop out) */ - if( mbedtls_x509_time_is_past( &crl_list->next_update ) ) + if (mbedtls_x509_time_is_past(&crl_list->next_update)) { flags |= MBEDTLS_X509_BADCRL_EXPIRED; + } - if( mbedtls_x509_time_is_future( &crl_list->this_update ) ) + if (mbedtls_x509_time_is_future(&crl_list->this_update)) { flags |= MBEDTLS_X509_BADCRL_FUTURE; + } /* * Check if certificate is revoked */ - if( mbedtls_x509_crt_is_revoked( crt, crl_list ) ) - { + if (mbedtls_x509_crt_is_revoked(crt, crl_list)) { flags |= MBEDTLS_X509_BADCERT_REVOKED; break; } @@ -2429,61 +2440,61 @@ static int x509_crt_verifycrl( mbedtls_x509_crt *crt, mbedtls_x509_crt *ca, crl_list = crl_list->next; } - return( flags ); + return flags; } #endif /* MBEDTLS_X509_CRL_PARSE_C */ /* * Check the signature of a certificate by its parent */ -static int x509_crt_check_signature( const mbedtls_x509_crt *child, - mbedtls_x509_crt *parent, - mbedtls_x509_crt_restart_ctx *rs_ctx ) +static int x509_crt_check_signature(const mbedtls_x509_crt *child, + mbedtls_x509_crt *parent, + mbedtls_x509_crt_restart_ctx *rs_ctx) { size_t hash_len; unsigned char hash[MBEDTLS_HASH_MAX_SIZE]; #if !defined(MBEDTLS_USE_PSA_CRYPTO) const mbedtls_md_info_t *md_info; - md_info = mbedtls_md_info_from_type( child->sig_md ); - hash_len = mbedtls_md_get_size( md_info ); + md_info = mbedtls_md_info_from_type(child->sig_md); + hash_len = mbedtls_md_get_size(md_info); /* Note: hash errors can happen only after an internal error */ - if( mbedtls_md( md_info, child->tbs.p, child->tbs.len, hash ) != 0 ) - return( -1 ); + if (mbedtls_md(md_info, child->tbs.p, child->tbs.len, hash) != 0) { + return -1; + } #else - psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md( child->sig_md ); + psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md(child->sig_md); psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - status = psa_hash_compute( hash_alg, - child->tbs.p, - child->tbs.len, - hash, - sizeof( hash ), - &hash_len ); - if( status != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_hash_compute(hash_alg, + child->tbs.p, + child->tbs.len, + hash, + sizeof(hash), + &hash_len); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Skip expensive computation on obvious mismatch */ - if( ! mbedtls_pk_can_do( &parent->pk, child->sig_pk ) ) - return( -1 ); + if (!mbedtls_pk_can_do(&parent->pk, child->sig_pk)) { + return -1; + } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && child->sig_pk == MBEDTLS_PK_ECDSA ) - { - return( mbedtls_pk_verify_restartable( &parent->pk, - child->sig_md, hash, hash_len, - child->sig.p, child->sig.len, &rs_ctx->pk ) ); + if (rs_ctx != NULL && child->sig_pk == MBEDTLS_PK_ECDSA) { + return mbedtls_pk_verify_restartable(&parent->pk, + child->sig_md, hash, hash_len, + child->sig.p, child->sig.len, &rs_ctx->pk); } #else (void) rs_ctx; #endif - return( mbedtls_pk_verify_ext( child->sig_pk, child->sig_opts, &parent->pk, - child->sig_md, hash, hash_len, - child->sig.p, child->sig.len ) ); + return mbedtls_pk_verify_ext(child->sig_pk, child->sig_opts, &parent->pk, + child->sig_md, hash, hash_len, + child->sig.p, child->sig.len); } /* @@ -2492,33 +2503,35 @@ static int x509_crt_check_signature( const mbedtls_x509_crt *child, * * top means parent is a locally-trusted certificate */ -static int x509_crt_check_parent( const mbedtls_x509_crt *child, - const mbedtls_x509_crt *parent, - int top ) +static int x509_crt_check_parent(const mbedtls_x509_crt *child, + const mbedtls_x509_crt *parent, + int top) { int need_ca_bit; /* Parent must be the issuer */ - if( x509_name_cmp( &child->issuer, &parent->subject ) != 0 ) - return( -1 ); + if (x509_name_cmp(&child->issuer, &parent->subject) != 0) { + return -1; + } /* Parent must have the basicConstraints CA bit set as a general rule */ need_ca_bit = 1; /* Exception: v1/v2 certificates that are locally trusted. */ - if( top && parent->version < 3 ) + if (top && parent->version < 3) { need_ca_bit = 0; - - if( need_ca_bit && ! parent->ca_istrue ) - return( -1 ); - - if( need_ca_bit && - mbedtls_x509_crt_check_key_usage( parent, MBEDTLS_X509_KU_KEY_CERT_SIGN ) != 0 ) - { - return( -1 ); } - return( 0 ); + if (need_ca_bit && !parent->ca_istrue) { + return -1; + } + + if (need_ca_bit && + mbedtls_x509_crt_check_key_usage(parent, MBEDTLS_X509_KU_KEY_CERT_SIGN) != 0) { + return -1; + } + + return 0; } /* @@ -2565,14 +2578,14 @@ static int x509_crt_check_parent( const mbedtls_x509_crt *child, * - MBEDTLS_ERR_ECP_IN_PROGRESS otherwise */ static int x509_crt_find_parent_in( - mbedtls_x509_crt *child, - mbedtls_x509_crt *candidates, - mbedtls_x509_crt **r_parent, - int *r_signature_is_good, - int top, - unsigned path_cnt, - unsigned self_cnt, - mbedtls_x509_crt_restart_ctx *rs_ctx ) + mbedtls_x509_crt *child, + mbedtls_x509_crt *candidates, + mbedtls_x509_crt **r_parent, + int *r_signature_is_good, + int top, + unsigned path_cnt, + unsigned self_cnt, + mbedtls_x509_crt_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_crt *parent, *fallback_parent; @@ -2580,8 +2593,7 @@ static int x509_crt_find_parent_in( #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* did we have something in progress? */ - if( rs_ctx != NULL && rs_ctx->parent != NULL ) - { + if (rs_ctx != NULL && rs_ctx->parent != NULL) { /* restore saved state */ parent = rs_ctx->parent; fallback_parent = rs_ctx->fallback_parent; @@ -2600,16 +2612,15 @@ static int x509_crt_find_parent_in( fallback_parent = NULL; fallback_signature_is_good = 0; - for( parent = candidates; parent != NULL; parent = parent->next ) - { + for (parent = candidates; parent != NULL; parent = parent->next) { /* basic parenting skills (name, CA bit, key usage) */ - if( x509_crt_check_parent( child, parent, top ) != 0 ) + if (x509_crt_check_parent(child, parent, top) != 0) { continue; + } /* +1 because stored max_pathlen is 1 higher that the actual value */ - if( parent->max_pathlen > 0 && - (size_t) parent->max_pathlen < 1 + path_cnt - self_cnt ) - { + if (parent->max_pathlen > 0 && + (size_t) parent->max_pathlen < 1 + path_cnt - self_cnt) { continue; } @@ -2617,32 +2628,30 @@ static int x509_crt_find_parent_in( #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) check_signature: #endif - ret = x509_crt_check_signature( child, parent, rs_ctx ); + ret = x509_crt_check_signature(child, parent, rs_ctx); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - { + if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { /* save state */ rs_ctx->parent = parent; rs_ctx->fallback_parent = fallback_parent; rs_ctx->fallback_signature_is_good = fallback_signature_is_good; - return( ret ); + return ret; } #else (void) ret; #endif signature_is_good = ret == 0; - if( top && ! signature_is_good ) + if (top && !signature_is_good) { continue; + } /* optional time check */ - if( mbedtls_x509_time_is_past( &parent->valid_to ) || - mbedtls_x509_time_is_future( &parent->valid_from ) ) - { - if( fallback_parent == NULL ) - { + if (mbedtls_x509_time_is_past(&parent->valid_to) || + mbedtls_x509_time_is_future(&parent->valid_from)) { + if (fallback_parent == NULL) { fallback_parent = parent; fallback_signature_is_good = signature_is_good; } @@ -2656,13 +2665,12 @@ check_signature: break; } - if( parent == NULL ) - { + if (parent == NULL) { *r_parent = fallback_parent; *r_signature_is_good = fallback_signature_is_good; } - return( 0 ); + return 0; } /* @@ -2688,14 +2696,14 @@ check_signature: * - MBEDTLS_ERR_ECP_IN_PROGRESS otherwise */ static int x509_crt_find_parent( - mbedtls_x509_crt *child, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crt **parent, - int *parent_is_trusted, - int *signature_is_good, - unsigned path_cnt, - unsigned self_cnt, - mbedtls_x509_crt_restart_ctx *rs_ctx ) + mbedtls_x509_crt *child, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crt **parent, + int *parent_is_trusted, + int *signature_is_good, + unsigned path_cnt, + unsigned self_cnt, + mbedtls_x509_crt_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_crt *search_list; @@ -2704,48 +2712,46 @@ static int x509_crt_find_parent( #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* restore then clear saved state if we have some stored */ - if( rs_ctx != NULL && rs_ctx->parent_is_trusted != -1 ) - { + if (rs_ctx != NULL && rs_ctx->parent_is_trusted != -1) { *parent_is_trusted = rs_ctx->parent_is_trusted; rs_ctx->parent_is_trusted = -1; } #endif - while( 1 ) { + while (1) { search_list = *parent_is_trusted ? trust_ca : child->next; - ret = x509_crt_find_parent_in( child, search_list, - parent, signature_is_good, - *parent_is_trusted, - path_cnt, self_cnt, rs_ctx ); + ret = x509_crt_find_parent_in(child, search_list, + parent, signature_is_good, + *parent_is_trusted, + path_cnt, self_cnt, rs_ctx); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - { + if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { /* save state */ rs_ctx->parent_is_trusted = *parent_is_trusted; - return( ret ); + return ret; } #else (void) ret; #endif /* stop here if found or already in second iteration */ - if( *parent != NULL || *parent_is_trusted == 0 ) + if (*parent != NULL || *parent_is_trusted == 0) { break; + } /* prepare second iteration */ *parent_is_trusted = 0; } /* extra precaution against mistakes in the caller */ - if( *parent == NULL ) - { + if (*parent == NULL) { *parent_is_trusted = 0; *signature_is_good = 0; } - return( 0 ); + return 0; } /* @@ -2755,27 +2761,26 @@ static int x509_crt_find_parent( * check for self-issued as self-signatures are not checked) */ static int x509_crt_check_ee_locally_trusted( - mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca ) + mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca) { mbedtls_x509_crt *cur; /* must be self-issued */ - if( x509_name_cmp( &crt->issuer, &crt->subject ) != 0 ) - return( -1 ); + if (x509_name_cmp(&crt->issuer, &crt->subject) != 0) { + return -1; + } /* look for an exact match with trusted cert */ - for( cur = trust_ca; cur != NULL; cur = cur->next ) - { - if( crt->raw.len == cur->raw.len && - memcmp( crt->raw.p, cur->raw.p, crt->raw.len ) == 0 ) - { - return( 0 ); + for (cur = trust_ca; cur != NULL; cur = cur->next) { + if (crt->raw.len == cur->raw.len && + memcmp(crt->raw.p, cur->raw.p, crt->raw.len) == 0) { + return 0; } } /* too bad */ - return( -1 ); + return -1; } /* @@ -2819,14 +2824,14 @@ static int x509_crt_check_ee_locally_trusted( * even if it was found to be invalid */ static int x509_crt_verify_chain( - mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb, - const mbedtls_x509_crt_profile *profile, - mbedtls_x509_crt_verify_chain *ver_chain, - mbedtls_x509_crt_restart_ctx *rs_ctx ) + mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb, + const mbedtls_x509_crt_profile *profile, + mbedtls_x509_crt_verify_chain *ver_chain, + mbedtls_x509_crt_restart_ctx *rs_ctx) { /* Don't initialize any of those variables here, so that the compiler can * catch potential issues with jumping ahead when restarting */ @@ -2843,8 +2848,7 @@ static int x509_crt_verify_chain( #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) /* resume if we had an operation in progress */ - if( rs_ctx != NULL && rs_ctx->in_progress == x509_crt_rs_find_parent ) - { + if (rs_ctx != NULL && rs_ctx->in_progress == x509_crt_rs_find_parent) { /* restore saved state */ *ver_chain = rs_ctx->ver_chain; /* struct copy */ self_cnt = rs_ctx->self_cnt; @@ -2863,7 +2867,7 @@ static int x509_crt_verify_chain( parent_is_trusted = 0; child_is_trusted = 0; - while( 1 ) { + while (1) { /* Add certificate to the verification chain */ cur = &ver_chain->items[ver_chain->len]; cur->crt = child; @@ -2872,28 +2876,32 @@ static int x509_crt_verify_chain( flags = &cur->flags; /* Check time-validity (all certificates) */ - if( mbedtls_x509_time_is_past( &child->valid_to ) ) + if (mbedtls_x509_time_is_past(&child->valid_to)) { *flags |= MBEDTLS_X509_BADCERT_EXPIRED; + } - if( mbedtls_x509_time_is_future( &child->valid_from ) ) + if (mbedtls_x509_time_is_future(&child->valid_from)) { *flags |= MBEDTLS_X509_BADCERT_FUTURE; + } /* Stop here for trusted roots (but not for trusted EE certs) */ - if( child_is_trusted ) - return( 0 ); + if (child_is_trusted) { + return 0; + } /* Check signature algorithm: MD & PK algs */ - if( x509_profile_check_md_alg( profile, child->sig_md ) != 0 ) + if (x509_profile_check_md_alg(profile, child->sig_md) != 0) { *flags |= MBEDTLS_X509_BADCERT_BAD_MD; + } - if( x509_profile_check_pk_alg( profile, child->sig_pk ) != 0 ) + if (x509_profile_check_pk_alg(profile, child->sig_pk) != 0) { *flags |= MBEDTLS_X509_BADCERT_BAD_PK; + } /* Special case: EE certs that are locally trusted */ - if( ver_chain->len == 1 && - x509_crt_check_ee_locally_trusted( child, trust_ca ) == 0 ) - { - return( 0 ); + if (ver_chain->len == 1 && + x509_crt_check_ee_locally_trusted(child, trust_ca) == 0) { + return 0; } #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) @@ -2903,19 +2911,18 @@ find_parent: /* Obtain list of potential trusted signers from CA callback, * or use statically provided list. */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - if( f_ca_cb != NULL ) - { - mbedtls_x509_crt_free( ver_chain->trust_ca_cb_result ); - mbedtls_free( ver_chain->trust_ca_cb_result ); + if (f_ca_cb != NULL) { + mbedtls_x509_crt_free(ver_chain->trust_ca_cb_result); + mbedtls_free(ver_chain->trust_ca_cb_result); ver_chain->trust_ca_cb_result = NULL; - ret = f_ca_cb( p_ca_cb, child, &ver_chain->trust_ca_cb_result ); - if( ret != 0 ) - return( MBEDTLS_ERR_X509_FATAL_ERROR ); + ret = f_ca_cb(p_ca_cb, child, &ver_chain->trust_ca_cb_result); + if (ret != 0) { + return MBEDTLS_ERR_X509_FATAL_ERROR; + } cur_trust_ca = ver_chain->trust_ca_cb_result; - } - else + } else #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ { ((void) f_ca_cb); @@ -2924,60 +2931,58 @@ find_parent: } /* Look for a parent in trusted CAs or up the chain */ - ret = x509_crt_find_parent( child, cur_trust_ca, &parent, - &parent_is_trusted, &signature_is_good, - ver_chain->len - 1, self_cnt, rs_ctx ); + ret = x509_crt_find_parent(child, cur_trust_ca, &parent, + &parent_is_trusted, &signature_is_good, + ver_chain->len - 1, self_cnt, rs_ctx); #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) - { + if (rs_ctx != NULL && ret == MBEDTLS_ERR_ECP_IN_PROGRESS) { /* save state */ rs_ctx->in_progress = x509_crt_rs_find_parent; rs_ctx->self_cnt = self_cnt; rs_ctx->ver_chain = *ver_chain; /* struct copy */ - return( ret ); + return ret; } #else (void) ret; #endif /* No parent? We're done here */ - if( parent == NULL ) - { + if (parent == NULL) { *flags |= MBEDTLS_X509_BADCERT_NOT_TRUSTED; - return( 0 ); + return 0; } /* Count intermediate self-issued (not necessarily self-signed) certs. * These can occur with some strategies for key rollover, see [SIRO], * and should be excluded from max_pathlen checks. */ - if( ver_chain->len != 1 && - x509_name_cmp( &child->issuer, &child->subject ) == 0 ) - { + if (ver_chain->len != 1 && + x509_name_cmp(&child->issuer, &child->subject) == 0) { self_cnt++; } /* path_cnt is 0 for the first intermediate CA, * and if parent is trusted it's not an intermediate CA */ - if( ! parent_is_trusted && - ver_chain->len > MBEDTLS_X509_MAX_INTERMEDIATE_CA ) - { + if (!parent_is_trusted && + ver_chain->len > MBEDTLS_X509_MAX_INTERMEDIATE_CA) { /* return immediately to avoid overflow the chain array */ - return( MBEDTLS_ERR_X509_FATAL_ERROR ); + return MBEDTLS_ERR_X509_FATAL_ERROR; } /* signature was checked while searching parent */ - if( ! signature_is_good ) + if (!signature_is_good) { *flags |= MBEDTLS_X509_BADCERT_NOT_TRUSTED; + } /* check size of signing key */ - if( x509_profile_check_key( profile, &parent->pk ) != 0 ) + if (x509_profile_check_key(profile, &parent->pk) != 0) { *flags |= MBEDTLS_X509_BADCERT_BAD_KEY; + } #if defined(MBEDTLS_X509_CRL_PARSE_C) /* Check trusted CA's CRL for the given crt */ - *flags |= x509_crt_verifycrl( child, parent, ca_crl, profile ); + *flags |= x509_crt_verifycrl(child, parent, ca_crl, profile); #else (void) ca_crl; #endif @@ -2993,79 +2998,75 @@ find_parent: /* * Check for CN match */ -static int x509_crt_check_cn( const mbedtls_x509_buf *name, - const char *cn, size_t cn_len ) +static int x509_crt_check_cn(const mbedtls_x509_buf *name, + const char *cn, size_t cn_len) { /* try exact match */ - if( name->len == cn_len && - x509_memcasecmp( cn, name->p, cn_len ) == 0 ) - { - return( 0 ); + if (name->len == cn_len && + x509_memcasecmp(cn, name->p, cn_len) == 0) { + return 0; } /* try wildcard match */ - if( x509_check_wildcard( cn, name ) == 0 ) - { - return( 0 ); + if (x509_check_wildcard(cn, name) == 0) { + return 0; } - return( -1 ); + return -1; } /* * Check for SAN match, see RFC 5280 Section 4.2.1.6 */ -static int x509_crt_check_san( const mbedtls_x509_buf *name, - const char *cn, size_t cn_len ) +static int x509_crt_check_san(const mbedtls_x509_buf *name, + const char *cn, size_t cn_len) { const unsigned char san_type = (unsigned char) name->tag & MBEDTLS_ASN1_TAG_VALUE_MASK; /* dNSName */ - if( san_type == MBEDTLS_X509_SAN_DNS_NAME ) - return( x509_crt_check_cn( name, cn, cn_len ) ); + if (san_type == MBEDTLS_X509_SAN_DNS_NAME) { + return x509_crt_check_cn(name, cn, cn_len); + } /* (We may handle other types here later.) */ /* Unrecognized type */ - return( -1 ); + return -1; } /* * Verify the requested CN - only call this if cn is not NULL! */ -static void x509_crt_verify_name( const mbedtls_x509_crt *crt, - const char *cn, - uint32_t *flags ) +static void x509_crt_verify_name(const mbedtls_x509_crt *crt, + const char *cn, + uint32_t *flags) { const mbedtls_x509_name *name; const mbedtls_x509_sequence *cur; - size_t cn_len = strlen( cn ); + size_t cn_len = strlen(cn); - if( crt->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME ) - { - for( cur = &crt->subject_alt_names; cur != NULL; cur = cur->next ) - { - if( x509_crt_check_san( &cur->buf, cn, cn_len ) == 0 ) - break; - } - - if( cur == NULL ) - *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; - } - else - { - for( name = &crt->subject; name != NULL; name = name->next ) - { - if( MBEDTLS_OID_CMP( MBEDTLS_OID_AT_CN, &name->oid ) == 0 && - x509_crt_check_cn( &name->val, cn, cn_len ) == 0 ) - { + if (crt->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) { + for (cur = &crt->subject_alt_names; cur != NULL; cur = cur->next) { + if (x509_crt_check_san(&cur->buf, cn, cn_len) == 0) { break; } } - if( name == NULL ) + if (cur == NULL) { *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; + } + } else { + for (name = &crt->subject; name != NULL; name = name->next) { + if (MBEDTLS_OID_CMP(MBEDTLS_OID_AT_CN, &name->oid) == 0 && + x509_crt_check_cn(&name->val, cn, cn_len) == 0) { + break; + } + } + + if (name == NULL) { + *flags |= MBEDTLS_X509_BADCERT_CN_MISMATCH; + } } } @@ -3073,29 +3074,30 @@ static void x509_crt_verify_name( const mbedtls_x509_crt *crt, * Merge the flags for all certs in the chain, after calling callback */ static int x509_crt_merge_flags_with_cb( - uint32_t *flags, - const mbedtls_x509_crt_verify_chain *ver_chain, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) + uint32_t *flags, + const mbedtls_x509_crt_verify_chain *ver_chain, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned i; uint32_t cur_flags; const mbedtls_x509_crt_verify_chain_item *cur; - for( i = ver_chain->len; i != 0; --i ) - { + for (i = ver_chain->len; i != 0; --i) { cur = &ver_chain->items[i-1]; cur_flags = cur->flags; - if( NULL != f_vrfy ) - if( ( ret = f_vrfy( p_vrfy, cur->crt, (int) i-1, &cur_flags ) ) != 0 ) - return( ret ); + if (NULL != f_vrfy) { + if ((ret = f_vrfy(p_vrfy, cur->crt, (int) i-1, &cur_flags)) != 0) { + return ret; + } + } *flags |= cur_flags; } - return( 0 ); + return 0; } /* @@ -3115,16 +3117,19 @@ static int x509_crt_merge_flags_with_cb( * of trusted signers, and `ca_crl` will be use as the static list * of CRLs. */ -static int x509_crt_verify_restartable_ca_cb( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy, - mbedtls_x509_crt_restart_ctx *rs_ctx ) +static int x509_crt_verify_restartable_ca_cb(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, + mbedtls_x509_crt *, + int, + uint32_t *), + void *p_vrfy, + mbedtls_x509_crt_restart_ctx *rs_ctx) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_pk_type_t pk_type; @@ -3133,105 +3138,110 @@ static int x509_crt_verify_restartable_ca_cb( mbedtls_x509_crt *crt, *flags = 0; ee_flags = 0; - x509_crt_verify_chain_reset( &ver_chain ); + x509_crt_verify_chain_reset(&ver_chain); - if( profile == NULL ) - { + if (profile == NULL) { ret = MBEDTLS_ERR_X509_BAD_INPUT_DATA; goto exit; } /* check name if requested */ - if( cn != NULL ) - x509_crt_verify_name( crt, cn, &ee_flags ); + if (cn != NULL) { + x509_crt_verify_name(crt, cn, &ee_flags); + } /* Check the type and size of the key */ - pk_type = mbedtls_pk_get_type( &crt->pk ); + pk_type = mbedtls_pk_get_type(&crt->pk); - if( x509_profile_check_pk_alg( profile, pk_type ) != 0 ) + if (x509_profile_check_pk_alg(profile, pk_type) != 0) { ee_flags |= MBEDTLS_X509_BADCERT_BAD_PK; + } - if( x509_profile_check_key( profile, &crt->pk ) != 0 ) + if (x509_profile_check_key(profile, &crt->pk) != 0) { ee_flags |= MBEDTLS_X509_BADCERT_BAD_KEY; + } /* Check the chain */ - ret = x509_crt_verify_chain( crt, trust_ca, ca_crl, - f_ca_cb, p_ca_cb, profile, - &ver_chain, rs_ctx ); + ret = x509_crt_verify_chain(crt, trust_ca, ca_crl, + f_ca_cb, p_ca_cb, profile, + &ver_chain, rs_ctx); - if( ret != 0 ) + if (ret != 0) { goto exit; + } /* Merge end-entity flags */ ver_chain.items[0].flags |= ee_flags; /* Build final flags, calling callback on the way if any */ - ret = x509_crt_merge_flags_with_cb( flags, &ver_chain, f_vrfy, p_vrfy ); + ret = x509_crt_merge_flags_with_cb(flags, &ver_chain, f_vrfy, p_vrfy); exit: #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - mbedtls_x509_crt_free( ver_chain.trust_ca_cb_result ); - mbedtls_free( ver_chain.trust_ca_cb_result ); + mbedtls_x509_crt_free(ver_chain.trust_ca_cb_result); + mbedtls_free(ver_chain.trust_ca_cb_result); ver_chain.trust_ca_cb_result = NULL; #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - if( rs_ctx != NULL && ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) - mbedtls_x509_crt_restart_free( rs_ctx ); + if (rs_ctx != NULL && ret != MBEDTLS_ERR_ECP_IN_PROGRESS) { + mbedtls_x509_crt_restart_free(rs_ctx); + } #endif /* prevent misuse of the vrfy callback - VERIFY_FAILED would be ignored by * the SSL module for authmode optional, but non-zero return from the * callback means a fatal error so it shouldn't be ignored */ - if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) + if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) { ret = MBEDTLS_ERR_X509_FATAL_ERROR; - - if( ret != 0 ) - { - *flags = (uint32_t) -1; - return( ret ); } - if( *flags != 0 ) - return( MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ); + if (ret != 0) { + *flags = (uint32_t) -1; + return ret; + } - return( 0 ); + if (*flags != 0) { + return MBEDTLS_ERR_X509_CERT_VERIFY_FAILED; + } + + return 0; } /* * Verify the certificate validity (default profile, not restartable) */ -int mbedtls_x509_crt_verify( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) +int mbedtls_x509_crt_verify(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { - return( x509_crt_verify_restartable_ca_cb( crt, trust_ca, ca_crl, - NULL, NULL, - &mbedtls_x509_crt_profile_default, - cn, flags, - f_vrfy, p_vrfy, NULL ) ); + return x509_crt_verify_restartable_ca_cb(crt, trust_ca, ca_crl, + NULL, NULL, + &mbedtls_x509_crt_profile_default, + cn, flags, + f_vrfy, p_vrfy, NULL); } /* * Verify the certificate validity (user-chosen profile, not restartable) */ -int mbedtls_x509_crt_verify_with_profile( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) +int mbedtls_x509_crt_verify_with_profile(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { - return( x509_crt_verify_restartable_ca_cb( crt, trust_ca, ca_crl, - NULL, NULL, - profile, cn, flags, - f_vrfy, p_vrfy, NULL ) ); + return x509_crt_verify_restartable_ca_cb(crt, trust_ca, ca_crl, + NULL, NULL, + profile, cn, flags, + f_vrfy, p_vrfy, NULL); } #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) @@ -3239,79 +3249,78 @@ int mbedtls_x509_crt_verify_with_profile( mbedtls_x509_crt *crt, * Verify the certificate validity (user-chosen profile, CA callback, * not restartable). */ -int mbedtls_x509_crt_verify_with_ca_cb( mbedtls_x509_crt *crt, - mbedtls_x509_crt_ca_cb_t f_ca_cb, - void *p_ca_cb, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy ) +int mbedtls_x509_crt_verify_with_ca_cb(mbedtls_x509_crt *crt, + mbedtls_x509_crt_ca_cb_t f_ca_cb, + void *p_ca_cb, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy) { - return( x509_crt_verify_restartable_ca_cb( crt, NULL, NULL, - f_ca_cb, p_ca_cb, - profile, cn, flags, - f_vrfy, p_vrfy, NULL ) ); + return x509_crt_verify_restartable_ca_cb(crt, NULL, NULL, + f_ca_cb, p_ca_cb, + profile, cn, flags, + f_vrfy, p_vrfy, NULL); } #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -int mbedtls_x509_crt_verify_restartable( mbedtls_x509_crt *crt, - mbedtls_x509_crt *trust_ca, - mbedtls_x509_crl *ca_crl, - const mbedtls_x509_crt_profile *profile, - const char *cn, uint32_t *flags, - int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), - void *p_vrfy, - mbedtls_x509_crt_restart_ctx *rs_ctx ) +int mbedtls_x509_crt_verify_restartable(mbedtls_x509_crt *crt, + mbedtls_x509_crt *trust_ca, + mbedtls_x509_crl *ca_crl, + const mbedtls_x509_crt_profile *profile, + const char *cn, uint32_t *flags, + int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *), + void *p_vrfy, + mbedtls_x509_crt_restart_ctx *rs_ctx) { - return( x509_crt_verify_restartable_ca_cb( crt, trust_ca, ca_crl, - NULL, NULL, - profile, cn, flags, - f_vrfy, p_vrfy, rs_ctx ) ); + return x509_crt_verify_restartable_ca_cb(crt, trust_ca, ca_crl, + NULL, NULL, + profile, cn, flags, + f_vrfy, p_vrfy, rs_ctx); } /* * Initialize a certificate chain */ -void mbedtls_x509_crt_init( mbedtls_x509_crt *crt ) +void mbedtls_x509_crt_init(mbedtls_x509_crt *crt) { - memset( crt, 0, sizeof(mbedtls_x509_crt) ); + memset(crt, 0, sizeof(mbedtls_x509_crt)); } /* * Unallocate all certificate data */ -void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) +void mbedtls_x509_crt_free(mbedtls_x509_crt *crt) { mbedtls_x509_crt *cert_cur = crt; mbedtls_x509_crt *cert_prv; - while( cert_cur != NULL ) - { - mbedtls_pk_free( &cert_cur->pk ); + while (cert_cur != NULL) { + mbedtls_pk_free(&cert_cur->pk); #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - mbedtls_free( cert_cur->sig_opts ); + mbedtls_free(cert_cur->sig_opts); #endif - mbedtls_asn1_free_named_data_list_shallow( cert_cur->issuer.next ); - mbedtls_asn1_free_named_data_list_shallow( cert_cur->subject.next ); - mbedtls_asn1_sequence_free( cert_cur->ext_key_usage.next ); - mbedtls_asn1_sequence_free( cert_cur->subject_alt_names.next ); - mbedtls_asn1_sequence_free( cert_cur->certificate_policies.next ); + mbedtls_asn1_free_named_data_list_shallow(cert_cur->issuer.next); + mbedtls_asn1_free_named_data_list_shallow(cert_cur->subject.next); + mbedtls_asn1_sequence_free(cert_cur->ext_key_usage.next); + mbedtls_asn1_sequence_free(cert_cur->subject_alt_names.next); + mbedtls_asn1_sequence_free(cert_cur->certificate_policies.next); - if( cert_cur->raw.p != NULL && cert_cur->own_buffer ) - { - mbedtls_platform_zeroize( cert_cur->raw.p, cert_cur->raw.len ); - mbedtls_free( cert_cur->raw.p ); + if (cert_cur->raw.p != NULL && cert_cur->own_buffer) { + mbedtls_platform_zeroize(cert_cur->raw.p, cert_cur->raw.len); + mbedtls_free(cert_cur->raw.p); } cert_prv = cert_cur; cert_cur = cert_cur->next; - mbedtls_platform_zeroize( cert_prv, sizeof( mbedtls_x509_crt ) ); - if( cert_prv != crt ) - mbedtls_free( cert_prv ); + mbedtls_platform_zeroize(cert_prv, sizeof(mbedtls_x509_crt)); + if (cert_prv != crt) { + mbedtls_free(cert_prv); + } } } @@ -3319,9 +3328,9 @@ void mbedtls_x509_crt_free( mbedtls_x509_crt *crt ) /* * Initialize a restart context */ -void mbedtls_x509_crt_restart_init( mbedtls_x509_crt_restart_ctx *ctx ) +void mbedtls_x509_crt_restart_init(mbedtls_x509_crt_restart_ctx *ctx) { - mbedtls_pk_restart_init( &ctx->pk ); + mbedtls_pk_restart_init(&ctx->pk); ctx->parent = NULL; ctx->fallback_parent = NULL; @@ -3331,19 +3340,20 @@ void mbedtls_x509_crt_restart_init( mbedtls_x509_crt_restart_ctx *ctx ) ctx->in_progress = x509_crt_rs_none; ctx->self_cnt = 0; - x509_crt_verify_chain_reset( &ctx->ver_chain ); + x509_crt_verify_chain_reset(&ctx->ver_chain); } /* * Free the components of a restart context */ -void mbedtls_x509_crt_restart_free( mbedtls_x509_crt_restart_ctx *ctx ) +void mbedtls_x509_crt_restart_free(mbedtls_x509_crt_restart_ctx *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_pk_restart_free( &ctx->pk ); - mbedtls_x509_crt_restart_init( ctx ); + mbedtls_pk_restart_free(&ctx->pk); + mbedtls_x509_crt_restart_init(ctx); } #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ECP_RESTARTABLE */ diff --git a/library/x509_csr.c b/library/x509_csr.c index f9462adde..0c664d908 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -51,56 +51,56 @@ /* * Version ::= INTEGER { v1(0) } */ -static int x509_csr_get_version( unsigned char **p, - const unsigned char *end, - int *ver ) +static int x509_csr_get_version(unsigned char **p, + const unsigned char *end, + int *ver) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_asn1_get_int( p, end, ver ) ) != 0 ) - { - if( ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) - { + if ((ret = mbedtls_asn1_get_int(p, end, ver)) != 0) { + if (ret == MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) { *ver = 0; - return( 0 ); + return 0; } - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_VERSION, ret ) ); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_VERSION, ret); } - return( 0 ); + return 0; } /* * Parse a CSR in DER format */ -int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, - const unsigned char *buf, size_t buflen ) +int mbedtls_x509_csr_parse_der(mbedtls_x509_csr *csr, + const unsigned char *buf, size_t buflen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; unsigned char *p, *end; mbedtls_x509_buf sig_params; - memset( &sig_params, 0, sizeof( mbedtls_x509_buf ) ); + memset(&sig_params, 0, sizeof(mbedtls_x509_buf)); /* * Check for valid input */ - if( csr == NULL || buf == NULL || buflen == 0 ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (csr == NULL || buf == NULL || buflen == 0) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } - mbedtls_x509_csr_init( csr ); + mbedtls_x509_csr_init(csr); /* * first copy the raw DER data */ - p = mbedtls_calloc( 1, len = buflen ); + p = mbedtls_calloc(1, len = buflen); - if( p == NULL ) - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if (p == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; + } - memcpy( p, buf, buflen ); + memcpy(p, buf, buflen); csr->raw.p = p; csr->raw.len = len; @@ -113,18 +113,16 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, * signature BIT STRING * } */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERR_X509_INVALID_FORMAT ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERR_X509_INVALID_FORMAT; } - if( len != (size_t) ( end - p ) ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (len != (size_t) (end - p)) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } /* @@ -132,11 +130,10 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, */ csr->cri.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } end = p + len; @@ -145,16 +142,14 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, /* * Version ::= INTEGER { v1(0) } */ - if( ( ret = x509_csr_get_version( &p, end, &csr->version ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( ret ); + if ((ret = x509_csr_get_version(&p, end, &csr->version)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; } - if( csr->version != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERR_X509_UNKNOWN_VERSION ); + if (csr->version != 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERR_X509_UNKNOWN_VERSION; } csr->version++; @@ -164,17 +159,15 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, */ csr->subject_raw.p = p; - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } - if( ( ret = mbedtls_x509_get_name( &p, p + len, &csr->subject ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( ret ); + if ((ret = mbedtls_x509_get_name(&p, p + len, &csr->subject)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; } csr->subject_raw.len = p - csr->subject_raw.p; @@ -182,10 +175,9 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, /* * subjectPKInfo SubjectPublicKeyInfo */ - if( ( ret = mbedtls_pk_parse_subpubkey( &p, end, &csr->pk ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( ret ); + if ((ret = mbedtls_pk_parse_subpubkey(&p, end, &csr->pk)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; } /* @@ -198,11 +190,11 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, * the requester's expectations - this cannot cause a violation of our * signature policies. */ - if( ( ret = mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, ret ) ); + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) != + 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } p += len; @@ -213,40 +205,36 @@ int mbedtls_x509_csr_parse_der( mbedtls_x509_csr *csr, * signatureAlgorithm AlgorithmIdentifier, * signature BIT STRING */ - if( ( ret = mbedtls_x509_get_alg( &p, end, &csr->sig_oid, &sig_params ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( ret ); + if ((ret = mbedtls_x509_get_alg(&p, end, &csr->sig_oid, &sig_params)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; } - if( ( ret = mbedtls_x509_get_sig_alg( &csr->sig_oid, &sig_params, - &csr->sig_md, &csr->sig_pk, - &csr->sig_opts ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG ); + if ((ret = mbedtls_x509_get_sig_alg(&csr->sig_oid, &sig_params, + &csr->sig_md, &csr->sig_pk, + &csr->sig_opts)) != 0) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG; } - if( ( ret = mbedtls_x509_get_sig( &p, end, &csr->sig ) ) != 0 ) - { - mbedtls_x509_csr_free( csr ); - return( ret ); + if ((ret = mbedtls_x509_get_sig(&p, end, &csr->sig)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; } - if( p != end ) - { - mbedtls_x509_csr_free( csr ); - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_FORMAT, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (p != end) { + mbedtls_x509_csr_free(csr); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } - return( 0 ); + return 0; } /* * Parse a CSR, allowing for PEM or raw DER encoding */ -int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen ) +int mbedtls_x509_csr_parse(mbedtls_x509_csr *csr, const unsigned char *buf, size_t buflen) { #if defined(MBEDTLS_PEM_PARSE_C) int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -257,61 +245,61 @@ int mbedtls_x509_csr_parse( mbedtls_x509_csr *csr, const unsigned char *buf, siz /* * Check for valid input */ - if( csr == NULL || buf == NULL || buflen == 0 ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (csr == NULL || buf == NULL || buflen == 0) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } #if defined(MBEDTLS_PEM_PARSE_C) /* Avoid calling mbedtls_pem_read_buffer() on non-null-terminated string */ - if( buf[buflen - 1] == '\0' ) - { - mbedtls_pem_init( &pem ); - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN CERTIFICATE REQUEST-----", - "-----END CERTIFICATE REQUEST-----", - buf, NULL, 0, &use_len ); - if( ret == MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - { - ret = mbedtls_pem_read_buffer( &pem, - "-----BEGIN NEW CERTIFICATE REQUEST-----", - "-----END NEW CERTIFICATE REQUEST-----", - buf, NULL, 0, &use_len ); + if (buf[buflen - 1] == '\0') { + mbedtls_pem_init(&pem); + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN CERTIFICATE REQUEST-----", + "-----END CERTIFICATE REQUEST-----", + buf, NULL, 0, &use_len); + if (ret == MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + ret = mbedtls_pem_read_buffer(&pem, + "-----BEGIN NEW CERTIFICATE REQUEST-----", + "-----END NEW CERTIFICATE REQUEST-----", + buf, NULL, 0, &use_len); } - if( ret == 0 ) - { + if (ret == 0) { /* * Was PEM encoded, parse the result */ - ret = mbedtls_x509_csr_parse_der( csr, pem.buf, pem.buflen ); + ret = mbedtls_x509_csr_parse_der(csr, pem.buf, pem.buflen); } - mbedtls_pem_free( &pem ); - if( ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT ) - return( ret ); + mbedtls_pem_free(&pem); + if (ret != MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) { + return ret; + } } #endif /* MBEDTLS_PEM_PARSE_C */ - return( mbedtls_x509_csr_parse_der( csr, buf, buflen ) ); + return mbedtls_x509_csr_parse_der(csr, buf, buflen); } #if defined(MBEDTLS_FS_IO) /* * Load a CSR into the structure */ -int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path ) +int mbedtls_x509_csr_parse_file(mbedtls_x509_csr *csr, const char *path) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; unsigned char *buf; - if( ( ret = mbedtls_pk_load_file( path, &buf, &n ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_pk_load_file(path, &buf, &n)) != 0) { + return ret; + } - ret = mbedtls_x509_csr_parse( csr, buf, n ); + ret = mbedtls_x509_csr_parse(csr, buf, n); - mbedtls_platform_zeroize( buf, n ); - mbedtls_free( buf ); + mbedtls_platform_zeroize(buf, n); + mbedtls_free(buf); - return( ret ); + return ret; } #endif /* MBEDTLS_FS_IO */ @@ -321,8 +309,8 @@ int mbedtls_x509_csr_parse_file( mbedtls_x509_csr *csr, const char *path ) /* * Return an informational string about the CSR. */ -int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix, - const mbedtls_x509_csr *csr ) +int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, + const mbedtls_x509_csr *csr) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; @@ -332,67 +320,66 @@ int mbedtls_x509_csr_info( char *buf, size_t size, const char *prefix, p = buf; n = size; - ret = mbedtls_snprintf( p, n, "%sCSR version : %d", - prefix, csr->version ); + ret = mbedtls_snprintf(p, n, "%sCSR version : %d", + prefix, csr->version); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%ssubject name : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%ssubject name : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_dn_gets( p, n, &csr->subject ); + ret = mbedtls_x509_dn_gets(p, n, &csr->subject); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, "\n%ssigned using : ", prefix ); + ret = mbedtls_snprintf(p, n, "\n%ssigned using : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_sig_alg_gets( p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md, - csr->sig_opts ); + ret = mbedtls_x509_sig_alg_gets(p, n, &csr->sig_oid, csr->sig_pk, csr->sig_md, + csr->sig_opts); MBEDTLS_X509_SAFE_SNPRINTF; - if( ( ret = mbedtls_x509_key_size_helper( key_size_str, BEFORE_COLON, - mbedtls_pk_get_name( &csr->pk ) ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_x509_key_size_helper(key_size_str, BEFORE_COLON, + mbedtls_pk_get_name(&csr->pk))) != 0) { + return ret; } - ret = mbedtls_snprintf( p, n, "\n%s%-" BC "s: %d bits\n", prefix, key_size_str, - (int) mbedtls_pk_get_bitlen( &csr->pk ) ); + ret = mbedtls_snprintf(p, n, "\n%s%-" BC "s: %d bits\n", prefix, key_size_str, + (int) mbedtls_pk_get_bitlen(&csr->pk)); MBEDTLS_X509_SAFE_SNPRINTF; - return( (int) ( size - n ) ); + return (int) (size - n); } #endif /* MBEDTLS_X509_REMOVE_INFO */ /* * Initialize a CSR */ -void mbedtls_x509_csr_init( mbedtls_x509_csr *csr ) +void mbedtls_x509_csr_init(mbedtls_x509_csr *csr) { - memset( csr, 0, sizeof(mbedtls_x509_csr) ); + memset(csr, 0, sizeof(mbedtls_x509_csr)); } /* * Unallocate all CSR data */ -void mbedtls_x509_csr_free( mbedtls_x509_csr *csr ) +void mbedtls_x509_csr_free(mbedtls_x509_csr *csr) { - if( csr == NULL ) + if (csr == NULL) { return; - - mbedtls_pk_free( &csr->pk ); - -#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) - mbedtls_free( csr->sig_opts ); -#endif - - mbedtls_asn1_free_named_data_list_shallow( csr->subject.next ); - - if( csr->raw.p != NULL ) - { - mbedtls_platform_zeroize( csr->raw.p, csr->raw.len ); - mbedtls_free( csr->raw.p ); } - mbedtls_platform_zeroize( csr, sizeof( mbedtls_x509_csr ) ); + mbedtls_pk_free(&csr->pk); + +#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) + mbedtls_free(csr->sig_opts); +#endif + + mbedtls_asn1_free_named_data_list_shallow(csr->subject.next); + + if (csr->raw.p != NULL) { + mbedtls_platform_zeroize(csr->raw.p, csr->raw.len); + mbedtls_free(csr->raw.p); + } + + mbedtls_platform_zeroize(csr, sizeof(mbedtls_x509_csr)); } #endif /* MBEDTLS_X509_CSR_PARSE_C */ diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 254c4b2fc..febd0e6f3 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -48,136 +48,135 @@ #include "hash_info.h" #include "mbedtls/legacy_or_psa.h" -void mbedtls_x509write_crt_init( mbedtls_x509write_cert *ctx ) +void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx) { - memset( ctx, 0, sizeof( mbedtls_x509write_cert ) ); + memset(ctx, 0, sizeof(mbedtls_x509write_cert)); - mbedtls_mpi_init( &ctx->serial ); + mbedtls_mpi_init(&ctx->serial); ctx->version = MBEDTLS_X509_CRT_VERSION_3; } -void mbedtls_x509write_crt_free( mbedtls_x509write_cert *ctx ) +void mbedtls_x509write_crt_free(mbedtls_x509write_cert *ctx) { - mbedtls_mpi_free( &ctx->serial ); + mbedtls_mpi_free(&ctx->serial); - mbedtls_asn1_free_named_data_list( &ctx->subject ); - mbedtls_asn1_free_named_data_list( &ctx->issuer ); - mbedtls_asn1_free_named_data_list( &ctx->extensions ); + mbedtls_asn1_free_named_data_list(&ctx->subject); + mbedtls_asn1_free_named_data_list(&ctx->issuer); + mbedtls_asn1_free_named_data_list(&ctx->extensions); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_x509write_cert ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_x509write_cert)); } -void mbedtls_x509write_crt_set_version( mbedtls_x509write_cert *ctx, - int version ) +void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, + int version) { ctx->version = version; } -void mbedtls_x509write_crt_set_md_alg( mbedtls_x509write_cert *ctx, - mbedtls_md_type_t md_alg ) +void mbedtls_x509write_crt_set_md_alg(mbedtls_x509write_cert *ctx, + mbedtls_md_type_t md_alg) { ctx->md_alg = md_alg; } -void mbedtls_x509write_crt_set_subject_key( mbedtls_x509write_cert *ctx, - mbedtls_pk_context *key ) +void mbedtls_x509write_crt_set_subject_key(mbedtls_x509write_cert *ctx, + mbedtls_pk_context *key) { ctx->subject_key = key; } -void mbedtls_x509write_crt_set_issuer_key( mbedtls_x509write_cert *ctx, - mbedtls_pk_context *key ) +void mbedtls_x509write_crt_set_issuer_key(mbedtls_x509write_cert *ctx, + mbedtls_pk_context *key) { ctx->issuer_key = key; } -int mbedtls_x509write_crt_set_subject_name( mbedtls_x509write_cert *ctx, - const char *subject_name ) +int mbedtls_x509write_crt_set_subject_name(mbedtls_x509write_cert *ctx, + const char *subject_name) { - return mbedtls_x509_string_to_names( &ctx->subject, subject_name ); + return mbedtls_x509_string_to_names(&ctx->subject, subject_name); } -int mbedtls_x509write_crt_set_issuer_name( mbedtls_x509write_cert *ctx, - const char *issuer_name ) +int mbedtls_x509write_crt_set_issuer_name(mbedtls_x509write_cert *ctx, + const char *issuer_name) { - return mbedtls_x509_string_to_names( &ctx->issuer, issuer_name ); + return mbedtls_x509_string_to_names(&ctx->issuer, issuer_name); } -int mbedtls_x509write_crt_set_serial( mbedtls_x509write_cert *ctx, - const mbedtls_mpi *serial ) +int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, + const mbedtls_mpi *serial) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( ( ret = mbedtls_mpi_copy( &ctx->serial, serial ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_mpi_copy(&ctx->serial, serial)) != 0) { + return ret; + } - return( 0 ); + return 0; } -int mbedtls_x509write_crt_set_validity( mbedtls_x509write_cert *ctx, - const char *not_before, - const char *not_after ) +int mbedtls_x509write_crt_set_validity(mbedtls_x509write_cert *ctx, + const char *not_before, + const char *not_after) { - if( strlen( not_before ) != MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1 || - strlen( not_after ) != MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1 ) - { - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (strlen(not_before) != MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1 || + strlen(not_after) != MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - strncpy( ctx->not_before, not_before, MBEDTLS_X509_RFC5280_UTC_TIME_LEN ); - strncpy( ctx->not_after , not_after , MBEDTLS_X509_RFC5280_UTC_TIME_LEN ); + strncpy(ctx->not_before, not_before, MBEDTLS_X509_RFC5280_UTC_TIME_LEN); + strncpy(ctx->not_after, not_after, MBEDTLS_X509_RFC5280_UTC_TIME_LEN); ctx->not_before[MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1] = 'Z'; ctx->not_after[MBEDTLS_X509_RFC5280_UTC_TIME_LEN - 1] = 'Z'; - return( 0 ); + return 0; } -int mbedtls_x509write_crt_set_extension( mbedtls_x509write_cert *ctx, - const char *oid, size_t oid_len, - int critical, - const unsigned char *val, size_t val_len ) +int mbedtls_x509write_crt_set_extension(mbedtls_x509write_cert *ctx, + const char *oid, size_t oid_len, + int critical, + const unsigned char *val, size_t val_len) { - return( mbedtls_x509_set_extension( &ctx->extensions, oid, oid_len, - critical, val, val_len ) ); + return mbedtls_x509_set_extension(&ctx->extensions, oid, oid_len, + critical, val, val_len); } -int mbedtls_x509write_crt_set_basic_constraints( mbedtls_x509write_cert *ctx, - int is_ca, int max_pathlen ) +int mbedtls_x509write_crt_set_basic_constraints(mbedtls_x509write_cert *ctx, + int is_ca, int max_pathlen) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char buf[9]; unsigned char *c = buf + sizeof(buf); size_t len = 0; - memset( buf, 0, sizeof(buf) ); + memset(buf, 0, sizeof(buf)); - if( is_ca && max_pathlen > 127 ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - - if( is_ca ) - { - if( max_pathlen >= 0 ) - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, - max_pathlen ) ); - } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_bool( &c, buf, 1 ) ); + if (is_ca && max_pathlen > 127) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + if (is_ca) { + if (max_pathlen >= 0) { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_int(&c, buf, + max_pathlen)); + } + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_bool(&c, buf, 1)); + } - return( - mbedtls_x509write_crt_set_extension( ctx, MBEDTLS_OID_BASIC_CONSTRAINTS, - MBEDTLS_OID_SIZE( MBEDTLS_OID_BASIC_CONSTRAINTS ), - is_ca, buf + sizeof(buf) - len, len ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); + + return + mbedtls_x509write_crt_set_extension(ctx, MBEDTLS_OID_BASIC_CONSTRAINTS, + MBEDTLS_OID_SIZE(MBEDTLS_OID_BASIC_CONSTRAINTS), + is_ca, buf + sizeof(buf) - len, len); } #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) -static int mbedtls_x509write_crt_set_key_identifier( mbedtls_x509write_cert *ctx, - int is_ca, - unsigned char tag ) +static int mbedtls_x509write_crt_set_key_identifier(mbedtls_x509write_cert *ctx, + int is_ca, + unsigned char tag) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char buf[MBEDTLS_MPI_MAX_SIZE * 2 + 20]; /* tag, length + 2xMPI */ @@ -188,116 +187,121 @@ static int mbedtls_x509write_crt_set_key_identifier( mbedtls_x509write_cert *ctx size_t hash_length; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - memset( buf, 0, sizeof(buf) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_pk_write_pubkey( &c, - buf, - is_ca ? - ctx->issuer_key : - ctx->subject_key ) ); + memset(buf, 0, sizeof(buf)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_pk_write_pubkey(&c, + buf, + is_ca ? + ctx->issuer_key : + ctx->subject_key)); #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = psa_hash_compute( PSA_ALG_SHA_1, - buf + sizeof(buf) - len, - len, - buf + sizeof(buf) - 20, - 20, - &hash_length ); - if( status != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_hash_compute(PSA_ALG_SHA_1, + buf + sizeof(buf) - len, + len, + buf + sizeof(buf) - 20, + 20, + &hash_length); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } #else - ret = mbedtls_sha1( buf + sizeof( buf ) - len, len, - buf + sizeof( buf ) - 20 ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_sha1(buf + sizeof(buf) - len, len, + buf + sizeof(buf) - 20); + if (ret != 0) { + return ret; + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - c = buf + sizeof( buf ) - 20; + c = buf + sizeof(buf) - 20; len = 20; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, tag ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, tag)); - if( is_ca ) // writes AuthorityKeyIdentifier sequence - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len )); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, - buf, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + if (is_ca) { // writes AuthorityKeyIdentifier sequence + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, + buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); } - if( is_ca ) - return( mbedtls_x509write_crt_set_extension( ctx, - MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER, - MBEDTLS_OID_SIZE( MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER ), - 0, buf + sizeof(buf) - len, len ) ); - else - return( mbedtls_x509write_crt_set_extension( ctx, - MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER, - MBEDTLS_OID_SIZE( MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER ), - 0, buf + sizeof(buf) - len, len ) ); + if (is_ca) { + return mbedtls_x509write_crt_set_extension(ctx, + MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER, + MBEDTLS_OID_SIZE( + MBEDTLS_OID_AUTHORITY_KEY_IDENTIFIER), + 0, buf + sizeof(buf) - len, len); + } else { + return mbedtls_x509write_crt_set_extension(ctx, + MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER, + MBEDTLS_OID_SIZE( + MBEDTLS_OID_SUBJECT_KEY_IDENTIFIER), + 0, buf + sizeof(buf) - len, len); + } } -int mbedtls_x509write_crt_set_subject_key_identifier( mbedtls_x509write_cert *ctx ) +int mbedtls_x509write_crt_set_subject_key_identifier(mbedtls_x509write_cert *ctx) { - return mbedtls_x509write_crt_set_key_identifier( ctx, - 0, - MBEDTLS_ASN1_OCTET_STRING ); + return mbedtls_x509write_crt_set_key_identifier(ctx, + 0, + MBEDTLS_ASN1_OCTET_STRING); } -int mbedtls_x509write_crt_set_authority_key_identifier( mbedtls_x509write_cert *ctx ) +int mbedtls_x509write_crt_set_authority_key_identifier(mbedtls_x509write_cert *ctx) { - return mbedtls_x509write_crt_set_key_identifier( ctx, - 1, - (MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0) ); + return mbedtls_x509write_crt_set_key_identifier(ctx, + 1, + (MBEDTLS_ASN1_CONTEXT_SPECIFIC | 0)); } #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -int mbedtls_x509write_crt_set_key_usage( mbedtls_x509write_cert *ctx, - unsigned int key_usage ) +int mbedtls_x509write_crt_set_key_usage(mbedtls_x509write_cert *ctx, + unsigned int key_usage) { - unsigned char buf[5] = {0}, ku[2] = {0}; + unsigned char buf[5] = { 0 }, ku[2] = { 0 }; unsigned char *c; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const unsigned int allowed_bits = MBEDTLS_X509_KU_DIGITAL_SIGNATURE | - MBEDTLS_X509_KU_NON_REPUDIATION | - MBEDTLS_X509_KU_KEY_ENCIPHERMENT | - MBEDTLS_X509_KU_DATA_ENCIPHERMENT | - MBEDTLS_X509_KU_KEY_AGREEMENT | - MBEDTLS_X509_KU_KEY_CERT_SIGN | - MBEDTLS_X509_KU_CRL_SIGN | - MBEDTLS_X509_KU_ENCIPHER_ONLY | - MBEDTLS_X509_KU_DECIPHER_ONLY; + MBEDTLS_X509_KU_NON_REPUDIATION | + MBEDTLS_X509_KU_KEY_ENCIPHERMENT | + MBEDTLS_X509_KU_DATA_ENCIPHERMENT | + MBEDTLS_X509_KU_KEY_AGREEMENT | + MBEDTLS_X509_KU_KEY_CERT_SIGN | + MBEDTLS_X509_KU_CRL_SIGN | + MBEDTLS_X509_KU_ENCIPHER_ONLY | + MBEDTLS_X509_KU_DECIPHER_ONLY; /* Check that nothing other than the allowed flags is set */ - if( ( key_usage & ~allowed_bits ) != 0 ) - return( MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ); + if ((key_usage & ~allowed_bits) != 0) { + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; + } c = buf + 5; - MBEDTLS_PUT_UINT16_LE( key_usage, ku, 0 ); - ret = mbedtls_asn1_write_named_bitstring( &c, buf, ku, 9 ); + MBEDTLS_PUT_UINT16_LE(key_usage, ku, 0); + ret = mbedtls_asn1_write_named_bitstring(&c, buf, ku, 9); - if( ret < 0 ) - return( ret ); - else if( ret < 3 || ret > 5 ) - return( MBEDTLS_ERR_X509_INVALID_FORMAT ); + if (ret < 0) { + return ret; + } else if (ret < 3 || ret > 5) { + return MBEDTLS_ERR_X509_INVALID_FORMAT; + } - ret = mbedtls_x509write_crt_set_extension( ctx, MBEDTLS_OID_KEY_USAGE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_KEY_USAGE ), - 1, c, (size_t)ret ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_x509write_crt_set_extension(ctx, MBEDTLS_OID_KEY_USAGE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_KEY_USAGE), + 1, c, (size_t) ret); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } -int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, - const mbedtls_asn1_sequence *exts ) +int mbedtls_x509write_crt_set_ext_key_usage(mbedtls_x509write_cert *ctx, + const mbedtls_asn1_sequence *exts) { unsigned char buf[256]; unsigned char *c = buf + sizeof(buf); @@ -306,57 +310,63 @@ int mbedtls_x509write_crt_set_ext_key_usage( mbedtls_x509write_cert *ctx, const mbedtls_asn1_sequence *last_ext = NULL; const mbedtls_asn1_sequence *ext; - memset( buf, 0, sizeof(buf) ); + memset(buf, 0, sizeof(buf)); /* We need at least one extension: SEQUENCE SIZE (1..MAX) OF KeyPurposeId */ - if( exts == NULL ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); + if (exts == NULL) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } /* Iterate over exts backwards, so we write them out in the requested order */ - while( last_ext != exts ) - { - for( ext = exts; ext->next != last_ext; ext = ext->next ) {} - if( ext->buf.tag != MBEDTLS_ASN1_OID ) - return( MBEDTLS_ERR_X509_BAD_INPUT_DATA ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( &c, buf, ext->buf.p, ext->buf.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, ext->buf.len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_OID ) ); + while (last_ext != exts) { + for (ext = exts; ext->next != last_ext; ext = ext->next) { + } + if (ext->buf.tag != MBEDTLS_ASN1_OID) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(&c, buf, ext->buf.p, ext->buf.len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, ext->buf.len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_OID)); last_ext = ext; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)); - return mbedtls_x509write_crt_set_extension( ctx, - MBEDTLS_OID_EXTENDED_KEY_USAGE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), - 1, c, len ); + return mbedtls_x509write_crt_set_extension(ctx, + MBEDTLS_OID_EXTENDED_KEY_USAGE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_EXTENDED_KEY_USAGE), + 1, c, len); } -int mbedtls_x509write_crt_set_ns_cert_type( mbedtls_x509write_cert *ctx, - unsigned char ns_cert_type ) +int mbedtls_x509write_crt_set_ns_cert_type(mbedtls_x509write_cert *ctx, + unsigned char ns_cert_type) { - unsigned char buf[4] = {0}; + unsigned char buf[4] = { 0 }; unsigned char *c; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; c = buf + 4; - ret = mbedtls_asn1_write_named_bitstring( &c, buf, &ns_cert_type, 8 ); - if( ret < 3 || ret > 4 ) - return( ret ); + ret = mbedtls_asn1_write_named_bitstring(&c, buf, &ns_cert_type, 8); + if (ret < 3 || ret > 4) { + return ret; + } - ret = mbedtls_x509write_crt_set_extension( ctx, MBEDTLS_OID_NS_CERT_TYPE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_NS_CERT_TYPE ), - 0, c, (size_t)ret ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_x509write_crt_set_extension(ctx, MBEDTLS_OID_NS_CERT_TYPE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_NS_CERT_TYPE), + 0, c, (size_t) ret); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } -static int x509_write_time( unsigned char **p, unsigned char *start, - const char *t, size_t size ) +static int x509_write_time(unsigned char **p, unsigned char *start, + const char *t, size_t size) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len = 0; @@ -364,32 +374,29 @@ static int x509_write_time( unsigned char **p, unsigned char *start, /* * write MBEDTLS_ASN1_UTC_TIME if year < 2050 (2 bytes shorter) */ - if( t[0] < '2' || ( t[0] == '2' && t[1] == '0' && t[2] < '5' ) ) - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, - (const unsigned char *) t + 2, - size - 2 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_UTC_TIME ) ); - } - else - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_raw_buffer( p, start, - (const unsigned char *) t, - size ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_GENERALIZED_TIME ) ); + if (t[0] < '2' || (t[0] == '2' && t[1] == '0' && t[2] < '5')) { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, + (const unsigned char *) t + 2, + size - 2)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_UTC_TIME)); + } else { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(p, start, + (const unsigned char *) t, + size)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_GENERALIZED_TIME)); } - return( (int) len ); + return (int) len; } -int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, - unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, + unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const char *sig_oid; @@ -416,17 +423,17 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, /* There's no direct way of extracting a signature algorithm * (represented as an element of mbedtls_pk_type_t) from a PK instance. */ - if( mbedtls_pk_can_do( ctx->issuer_key, MBEDTLS_PK_RSA ) ) + if (mbedtls_pk_can_do(ctx->issuer_key, MBEDTLS_PK_RSA)) { pk_alg = MBEDTLS_PK_RSA; - else if( mbedtls_pk_can_do( ctx->issuer_key, MBEDTLS_PK_ECDSA ) ) + } else if (mbedtls_pk_can_do(ctx->issuer_key, MBEDTLS_PK_ECDSA)) { pk_alg = MBEDTLS_PK_ECDSA; - else - return( MBEDTLS_ERR_X509_INVALID_ALG ); + } else { + return MBEDTLS_ERR_X509_INVALID_ALG; + } - if( ( ret = mbedtls_oid_get_oid_by_sig_alg( pk_alg, ctx->md_alg, - &sig_oid, &sig_oid_len ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg, + &sig_oid, &sig_oid_len)) != 0) { + return ret; } /* @@ -434,38 +441,37 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, */ /* Only for v3 */ - if( ctx->version == MBEDTLS_X509_CRT_VERSION_3 ) - { - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_x509_write_extensions( &c, - buf, ctx->extensions ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | - MBEDTLS_ASN1_CONSTRUCTED | 3 ) ); + if (ctx->version == MBEDTLS_X509_CRT_VERSION_3) { + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_x509_write_extensions(&c, + buf, ctx->extensions)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | + MBEDTLS_ASN1_CONSTRUCTED | 3)); } /* * SubjectPublicKeyInfo */ - MBEDTLS_ASN1_CHK_ADD( pub_len, - mbedtls_pk_write_pubkey_der( ctx->subject_key, - buf, c - buf ) ); + MBEDTLS_ASN1_CHK_ADD(pub_len, + mbedtls_pk_write_pubkey_der(ctx->subject_key, + buf, c - buf)); c -= pub_len; len += pub_len; /* * Subject ::= Name */ - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_x509_write_names( &c, buf, - ctx->subject ) ); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_x509_write_names(&c, buf, + ctx->subject)); /* * Validity ::= SEQUENCE { @@ -474,63 +480,62 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, */ sub_len = 0; - MBEDTLS_ASN1_CHK_ADD( sub_len, - x509_write_time( &c, buf, ctx->not_after, - MBEDTLS_X509_RFC5280_UTC_TIME_LEN ) ); + MBEDTLS_ASN1_CHK_ADD(sub_len, + x509_write_time(&c, buf, ctx->not_after, + MBEDTLS_X509_RFC5280_UTC_TIME_LEN)); - MBEDTLS_ASN1_CHK_ADD( sub_len, - x509_write_time( &c, buf, ctx->not_before, - MBEDTLS_X509_RFC5280_UTC_TIME_LEN ) ); + MBEDTLS_ASN1_CHK_ADD(sub_len, + x509_write_time(&c, buf, ctx->not_before, + MBEDTLS_X509_RFC5280_UTC_TIME_LEN)); len += sub_len; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, sub_len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, sub_len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); /* * Issuer ::= Name */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_names( &c, buf, - ctx->issuer ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_x509_write_names(&c, buf, + ctx->issuer)); /* * Signature ::= AlgorithmIdentifier */ - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_algorithm_identifier( &c, buf, - sig_oid, strlen( sig_oid ), 0 ) ); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_algorithm_identifier(&c, buf, + sig_oid, strlen(sig_oid), 0)); /* * Serial ::= INTEGER */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_mpi( &c, buf, - &ctx->serial ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_mpi(&c, buf, + &ctx->serial)); /* * Version ::= INTEGER { v1(0), v2(1), v3(2) } */ /* Can be omitted for v1 */ - if( ctx->version != MBEDTLS_X509_CRT_VERSION_1 ) - { + if (ctx->version != MBEDTLS_X509_CRT_VERSION_1) { sub_len = 0; - MBEDTLS_ASN1_CHK_ADD( sub_len, - mbedtls_asn1_write_int( &c, buf, ctx->version ) ); + MBEDTLS_ASN1_CHK_ADD(sub_len, + mbedtls_asn1_write_int(&c, buf, ctx->version)); len += sub_len; - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_len( &c, buf, sub_len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONTEXT_SPECIFIC | - MBEDTLS_ASN1_CONSTRUCTED | 0 ) ); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_len(&c, buf, sub_len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONTEXT_SPECIFIC | + MBEDTLS_ASN1_CONSTRUCTED | 0)); } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( &c, buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); /* * Make signature @@ -538,45 +543,43 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, /* Compute hash of CRT. */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_algorithm = mbedtls_hash_info_psa_from_md( ctx->md_alg ); + psa_algorithm = mbedtls_hash_info_psa_from_md(ctx->md_alg); - status = psa_hash_compute( psa_algorithm, - c, - len, - hash, - sizeof( hash ), - &hash_length ); - if( status != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + status = psa_hash_compute(psa_algorithm, + c, + len, + hash, + sizeof(hash), + &hash_length); + if (status != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } #else - if( ( ret = mbedtls_md( mbedtls_md_info_from_type( ctx->md_alg ), c, - len, hash ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_md(mbedtls_md_info_from_type(ctx->md_alg), c, + len, hash)) != 0) { + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ( ret = mbedtls_pk_sign( ctx->issuer_key, ctx->md_alg, - hash, hash_length, sig, sizeof( sig ), &sig_len, - f_rng, p_rng ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pk_sign(ctx->issuer_key, ctx->md_alg, + hash, hash_length, sig, sizeof(sig), &sig_len, + f_rng, p_rng)) != 0) { + return ret; } /* Move CRT to the front of the buffer to have space * for the signature. */ - memmove( buf, c, len ); + memmove(buf, c, len); c = buf + len; /* Add signature at the end of the buffer, * making sure that it doesn't underflow * into the CRT buffer. */ c2 = buf + size; - MBEDTLS_ASN1_CHK_ADD( sig_and_oid_len, mbedtls_x509_write_sig( &c2, c, - sig_oid, sig_oid_len, sig, sig_len ) ); + MBEDTLS_ASN1_CHK_ADD(sig_and_oid_len, mbedtls_x509_write_sig(&c2, c, + sig_oid, sig_oid_len, sig, + sig_len)); /* * Memory layout after this step: @@ -587,43 +590,41 @@ int mbedtls_x509write_crt_der( mbedtls_x509write_cert *ctx, /* Move raw CRT to just before the signature. */ c = c2 - len; - memmove( c, buf, len ); + memmove(c, buf, len); len += sig_and_oid_len; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - return( (int) len ); + return (int) len; } #define PEM_BEGIN_CRT "-----BEGIN CERTIFICATE-----\n" #define PEM_END_CRT "-----END CERTIFICATE-----\n" #if defined(MBEDTLS_PEM_WRITE_C) -int mbedtls_x509write_crt_pem( mbedtls_x509write_cert *crt, - unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_x509write_crt_pem(mbedtls_x509write_cert *crt, + unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen; - if( ( ret = mbedtls_x509write_crt_der( crt, buf, size, - f_rng, p_rng ) ) < 0 ) - { - return( ret ); + if ((ret = mbedtls_x509write_crt_der(crt, buf, size, + f_rng, p_rng)) < 0) { + return ret; } - if( ( ret = mbedtls_pem_write_buffer( PEM_BEGIN_CRT, PEM_END_CRT, - buf + size - ret, ret, - buf, size, &olen ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pem_write_buffer(PEM_BEGIN_CRT, PEM_END_CRT, + buf + size - ret, ret, + buf, size, &olen)) != 0) { + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_PEM_WRITE_C */ diff --git a/library/x509write_csr.c b/library/x509write_csr.c index 976f6e6df..d8d8e99ff 100644 --- a/library/x509write_csr.c +++ b/library/x509write_csr.c @@ -47,93 +47,97 @@ #include "mbedtls/platform.h" -void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ) +void mbedtls_x509write_csr_init(mbedtls_x509write_csr *ctx) { - memset( ctx, 0, sizeof( mbedtls_x509write_csr ) ); + memset(ctx, 0, sizeof(mbedtls_x509write_csr)); } -void mbedtls_x509write_csr_free( mbedtls_x509write_csr *ctx ) +void mbedtls_x509write_csr_free(mbedtls_x509write_csr *ctx) { - mbedtls_asn1_free_named_data_list( &ctx->subject ); - mbedtls_asn1_free_named_data_list( &ctx->extensions ); + mbedtls_asn1_free_named_data_list(&ctx->subject); + mbedtls_asn1_free_named_data_list(&ctx->extensions); - mbedtls_platform_zeroize( ctx, sizeof( mbedtls_x509write_csr ) ); + mbedtls_platform_zeroize(ctx, sizeof(mbedtls_x509write_csr)); } -void mbedtls_x509write_csr_set_md_alg( mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg ) +void mbedtls_x509write_csr_set_md_alg(mbedtls_x509write_csr *ctx, mbedtls_md_type_t md_alg) { ctx->md_alg = md_alg; } -void mbedtls_x509write_csr_set_key( mbedtls_x509write_csr *ctx, mbedtls_pk_context *key ) +void mbedtls_x509write_csr_set_key(mbedtls_x509write_csr *ctx, mbedtls_pk_context *key) { ctx->key = key; } -int mbedtls_x509write_csr_set_subject_name( mbedtls_x509write_csr *ctx, - const char *subject_name ) +int mbedtls_x509write_csr_set_subject_name(mbedtls_x509write_csr *ctx, + const char *subject_name) { - return mbedtls_x509_string_to_names( &ctx->subject, subject_name ); + return mbedtls_x509_string_to_names(&ctx->subject, subject_name); } -int mbedtls_x509write_csr_set_extension( mbedtls_x509write_csr *ctx, - const char *oid, size_t oid_len, - int critical, - const unsigned char *val, size_t val_len ) +int mbedtls_x509write_csr_set_extension(mbedtls_x509write_csr *ctx, + const char *oid, size_t oid_len, + int critical, + const unsigned char *val, size_t val_len) { - return mbedtls_x509_set_extension( &ctx->extensions, oid, oid_len, - critical, val, val_len ); + return mbedtls_x509_set_extension(&ctx->extensions, oid, oid_len, + critical, val, val_len); } -int mbedtls_x509write_csr_set_key_usage( mbedtls_x509write_csr *ctx, unsigned char key_usage ) +int mbedtls_x509write_csr_set_key_usage(mbedtls_x509write_csr *ctx, unsigned char key_usage) { - unsigned char buf[4] = {0}; + unsigned char buf[4] = { 0 }; unsigned char *c; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; c = buf + 4; - ret = mbedtls_asn1_write_named_bitstring( &c, buf, &key_usage, 8 ); - if( ret < 3 || ret > 4 ) - return( ret ); + ret = mbedtls_asn1_write_named_bitstring(&c, buf, &key_usage, 8); + if (ret < 3 || ret > 4) { + return ret; + } - ret = mbedtls_x509write_csr_set_extension( ctx, MBEDTLS_OID_KEY_USAGE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_KEY_USAGE ), - 0, c, (size_t)ret ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_x509write_csr_set_extension(ctx, MBEDTLS_OID_KEY_USAGE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_KEY_USAGE), + 0, c, (size_t) ret); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } -int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx, - unsigned char ns_cert_type ) +int mbedtls_x509write_csr_set_ns_cert_type(mbedtls_x509write_csr *ctx, + unsigned char ns_cert_type) { - unsigned char buf[4] = {0}; + unsigned char buf[4] = { 0 }; unsigned char *c; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; c = buf + 4; - ret = mbedtls_asn1_write_named_bitstring( &c, buf, &ns_cert_type, 8 ); - if( ret < 3 || ret > 4 ) - return( ret ); + ret = mbedtls_asn1_write_named_bitstring(&c, buf, &ns_cert_type, 8); + if (ret < 3 || ret > 4) { + return ret; + } - ret = mbedtls_x509write_csr_set_extension( ctx, MBEDTLS_OID_NS_CERT_TYPE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_NS_CERT_TYPE ), - 0, c, (size_t)ret ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_x509write_csr_set_extension(ctx, MBEDTLS_OID_NS_CERT_TYPE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_NS_CERT_TYPE), + 0, c, (size_t) ret); + if (ret != 0) { + return ret; + } - return( 0 ); + return 0; } -static int x509write_csr_der_internal( mbedtls_x509write_csr *ctx, - unsigned char *buf, - size_t size, - unsigned char *sig, size_t sig_size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int x509write_csr_der_internal(mbedtls_x509write_csr *ctx, + unsigned char *buf, + size_t size, + unsigned char *sig, size_t sig_size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const char *sig_oid; @@ -145,113 +149,111 @@ static int x509write_csr_der_internal( mbedtls_x509write_csr *ctx, mbedtls_pk_type_t pk_alg; #if defined(MBEDTLS_USE_PSA_CRYPTO) size_t hash_len; - psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md( ctx->md_alg ); + psa_algorithm_t hash_alg = mbedtls_hash_info_psa_from_md(ctx->md_alg); #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Write the CSR backwards starting from the end of buf */ c = buf + size; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_extensions( &c, buf, - ctx->extensions ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_x509_write_extensions(&c, buf, + ctx->extensions)); - if( len ) - { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + if (len) { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_oid( - &c, buf, MBEDTLS_OID_PKCS9_CSR_EXT_REQ, - MBEDTLS_OID_SIZE( MBEDTLS_OID_PKCS9_CSR_EXT_REQ ) ) ); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_oid( + &c, buf, MBEDTLS_OID_PKCS9_CSR_EXT_REQ, + MBEDTLS_OID_SIZE(MBEDTLS_OID_PKCS9_CSR_EXT_REQ))); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)); } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)); - MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_pk_write_pubkey_der( ctx->key, - buf, c - buf ) ); + MBEDTLS_ASN1_CHK_ADD(pub_len, mbedtls_pk_write_pubkey_der(ctx->key, + buf, c - buf)); c -= pub_len; len += pub_len; /* * Subject ::= Name */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_names( &c, buf, - ctx->subject ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_x509_write_names(&c, buf, + ctx->subject)); /* * Version ::= INTEGER { v1(0), v2(1), v3(2) } */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 0 ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_int(&c, buf, 0)); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)); /* * Sign the written CSR data into the sig buffer * Note: hash errors can happen only after an internal error */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( psa_hash_compute( hash_alg, - c, - len, - hash, - sizeof( hash ), - &hash_len ) != PSA_SUCCESS ) - { - return( MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED ); + if (psa_hash_compute(hash_alg, + c, + len, + hash, + sizeof(hash), + &hash_len) != PSA_SUCCESS) { + return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED; } #else /* MBEDTLS_USE_PSA_CRYPTO */ - ret = mbedtls_md( mbedtls_md_info_from_type( ctx->md_alg ), c, len, hash ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_md(mbedtls_md_info_from_type(ctx->md_alg), c, len, hash); + if (ret != 0) { + return ret; + } #endif - if( ( ret = mbedtls_pk_sign( ctx->key, ctx->md_alg, hash, 0, - sig, sig_size, &sig_len, - f_rng, p_rng ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pk_sign(ctx->key, ctx->md_alg, hash, 0, + sig, sig_size, &sig_len, + f_rng, p_rng)) != 0) { + return ret; } - if( mbedtls_pk_can_do( ctx->key, MBEDTLS_PK_RSA ) ) + if (mbedtls_pk_can_do(ctx->key, MBEDTLS_PK_RSA)) { pk_alg = MBEDTLS_PK_RSA; - else if( mbedtls_pk_can_do( ctx->key, MBEDTLS_PK_ECDSA ) ) + } else if (mbedtls_pk_can_do(ctx->key, MBEDTLS_PK_ECDSA)) { pk_alg = MBEDTLS_PK_ECDSA; - else - return( MBEDTLS_ERR_X509_INVALID_ALG ); + } else { + return MBEDTLS_ERR_X509_INVALID_ALG; + } - if( ( ret = mbedtls_oid_get_oid_by_sig_alg( pk_alg, ctx->md_alg, - &sig_oid, &sig_oid_len ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_oid_get_oid_by_sig_alg(pk_alg, ctx->md_alg, + &sig_oid, &sig_oid_len)) != 0) { + return ret; } /* * Move the written CSR data to the start of buf to create space for * writing the signature into buf. */ - memmove( buf, c, len ); + memmove(buf, c, len); /* * Write sig and its OID into buf backwards from the end of buf. @@ -259,78 +261,75 @@ static int x509write_csr_der_internal( mbedtls_x509write_csr *ctx, * and return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if needed. */ c2 = buf + size; - MBEDTLS_ASN1_CHK_ADD( sig_and_oid_len, - mbedtls_x509_write_sig( &c2, buf + len, sig_oid, sig_oid_len, - sig, sig_len ) ); + MBEDTLS_ASN1_CHK_ADD(sig_and_oid_len, + mbedtls_x509_write_sig(&c2, buf + len, sig_oid, sig_oid_len, + sig, sig_len)); /* * Compact the space between the CSR data and signature by moving the * CSR data to the start of the signature. */ c2 -= len; - memmove( c2, buf, len ); + memmove(c2, buf, len); /* ASN encode the total size and tag the CSR data with it. */ len += sig_and_oid_len; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c2, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, - mbedtls_asn1_write_tag( - &c2, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c2, buf, len)); + MBEDTLS_ASN1_CHK_ADD(len, + mbedtls_asn1_write_tag( + &c2, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)); /* Zero the unused bytes at the start of buf */ - memset( buf, 0, c2 - buf); + memset(buf, 0, c2 - buf); - return( (int) len ); + return (int) len; } -int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, - size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_x509write_csr_der(mbedtls_x509write_csr *ctx, unsigned char *buf, + size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret; unsigned char *sig; - if( ( sig = mbedtls_calloc( 1, MBEDTLS_PK_SIGNATURE_MAX_SIZE ) ) == NULL ) - { - return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + if ((sig = mbedtls_calloc(1, MBEDTLS_PK_SIGNATURE_MAX_SIZE)) == NULL) { + return MBEDTLS_ERR_X509_ALLOC_FAILED; } - ret = x509write_csr_der_internal( ctx, buf, size, - sig, MBEDTLS_PK_SIGNATURE_MAX_SIZE, - f_rng, p_rng ); + ret = x509write_csr_der_internal(ctx, buf, size, + sig, MBEDTLS_PK_SIGNATURE_MAX_SIZE, + f_rng, p_rng); - mbedtls_free( sig ); + mbedtls_free(sig); - return( ret ); + return ret; } #define PEM_BEGIN_CSR "-----BEGIN CERTIFICATE REQUEST-----\n" #define PEM_END_CSR "-----END CERTIFICATE REQUEST-----\n" #if defined(MBEDTLS_PEM_WRITE_C) -int mbedtls_x509write_csr_pem( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int mbedtls_x509write_csr_pem(mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t olen = 0; - if( ( ret = mbedtls_x509write_csr_der( ctx, buf, size, - f_rng, p_rng ) ) < 0 ) - { - return( ret ); + if ((ret = mbedtls_x509write_csr_der(ctx, buf, size, + f_rng, p_rng)) < 0) { + return ret; } - if( ( ret = mbedtls_pem_write_buffer( PEM_BEGIN_CSR, PEM_END_CSR, - buf + size - ret, - ret, buf, size, &olen ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_pem_write_buffer(PEM_BEGIN_CSR, PEM_END_CSR, + buf + size - ret, + ret, buf, size, &olen)) != 0) { + return ret; } - return( 0 ); + return 0; } #endif /* MBEDTLS_PEM_WRITE_C */ diff --git a/programs/aes/crypt_and_hash.c b/programs/aes/crypt_and_hash.c index 476c20e22..0187648be 100644 --- a/programs/aes/crypt_and_hash.c +++ b/programs/aes/crypt_and_hash.c @@ -28,7 +28,7 @@ #include "mbedtls/platform.h" #if defined(MBEDTLS_CIPHER_C) && defined(MBEDTLS_MD_C) && \ - defined(MBEDTLS_FS_IO) + defined(MBEDTLS_FS_IO) #include "mbedtls/cipher.h" #include "mbedtls/md.h" #include "mbedtls/platform_util.h" @@ -59,15 +59,15 @@ #if !defined(MBEDTLS_CIPHER_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_CIPHER_C and/or MBEDTLS_MD_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1, i; unsigned n; @@ -91,138 +91,121 @@ int main( int argc, char *argv[] ) #if defined(_WIN32_WCE) long filesize, offset; #elif defined(_WIN32) - LARGE_INTEGER li_size; + LARGE_INTEGER li_size; __int64 filesize, offset; #else - off_t filesize, offset; + off_t filesize, offset; #endif - mbedtls_cipher_init( &cipher_ctx ); - mbedtls_md_init( &md_ctx ); + mbedtls_cipher_init(&cipher_ctx); + mbedtls_md_init(&md_ctx); /* * Parse the command-line arguments. */ - if( argc != 7 ) - { + if (argc != 7) { const int *list; - mbedtls_printf( USAGE ); + mbedtls_printf(USAGE); - mbedtls_printf( "Available ciphers:\n" ); + mbedtls_printf("Available ciphers:\n"); list = mbedtls_cipher_list(); - while( *list ) - { - cipher_info = mbedtls_cipher_info_from_type( *list ); - mbedtls_printf( " %s\n", mbedtls_cipher_info_get_name( cipher_info ) ); + while (*list) { + cipher_info = mbedtls_cipher_info_from_type(*list); + mbedtls_printf(" %s\n", mbedtls_cipher_info_get_name(cipher_info)); list++; } - mbedtls_printf( "\nAvailable message digests:\n" ); + mbedtls_printf("\nAvailable message digests:\n"); list = mbedtls_md_list(); - while( *list ) - { - md_info = mbedtls_md_info_from_type( *list ); - mbedtls_printf( " %s\n", mbedtls_md_get_name( md_info ) ); + while (*list) { + md_info = mbedtls_md_info_from_type(*list); + mbedtls_printf(" %s\n", mbedtls_md_get_name(md_info)); list++; } goto exit; } - mode = atoi( argv[1] ); + mode = atoi(argv[1]); - if( mode != MODE_ENCRYPT && mode != MODE_DECRYPT ) - { - mbedtls_fprintf( stderr, "invalid operation mode\n" ); + if (mode != MODE_ENCRYPT && mode != MODE_DECRYPT) { + mbedtls_fprintf(stderr, "invalid operation mode\n"); goto exit; } - if( strcmp( argv[2], argv[3] ) == 0 ) - { - mbedtls_fprintf( stderr, "input and output filenames must differ\n" ); + if (strcmp(argv[2], argv[3]) == 0) { + mbedtls_fprintf(stderr, "input and output filenames must differ\n"); goto exit; } - if( ( fin = fopen( argv[2], "rb" ) ) == NULL ) - { - mbedtls_fprintf( stderr, "fopen(%s,rb) failed\n", argv[2] ); + if ((fin = fopen(argv[2], "rb")) == NULL) { + mbedtls_fprintf(stderr, "fopen(%s,rb) failed\n", argv[2]); goto exit; } - if( ( fout = fopen( argv[3], "wb+" ) ) == NULL ) - { - mbedtls_fprintf( stderr, "fopen(%s,wb+) failed\n", argv[3] ); + if ((fout = fopen(argv[3], "wb+")) == NULL) { + mbedtls_fprintf(stderr, "fopen(%s,wb+) failed\n", argv[3]); goto exit; } /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( fin, NULL ); - mbedtls_setbuf( fout, NULL ); + mbedtls_setbuf(fin, NULL); + mbedtls_setbuf(fout, NULL); /* * Read the Cipher and MD from the command line */ - cipher_info = mbedtls_cipher_info_from_string( argv[4] ); - if( cipher_info == NULL ) - { - mbedtls_fprintf( stderr, "Cipher '%s' not found\n", argv[4] ); + cipher_info = mbedtls_cipher_info_from_string(argv[4]); + if (cipher_info == NULL) { + mbedtls_fprintf(stderr, "Cipher '%s' not found\n", argv[4]); goto exit; } - if( ( ret = mbedtls_cipher_setup( &cipher_ctx, cipher_info) ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_setup failed\n" ); + if ((ret = mbedtls_cipher_setup(&cipher_ctx, cipher_info)) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_setup failed\n"); goto exit; } - md_info = mbedtls_md_info_from_string( argv[5] ); - if( md_info == NULL ) - { - mbedtls_fprintf( stderr, "Message Digest '%s' not found\n", argv[5] ); + md_info = mbedtls_md_info_from_string(argv[5]); + if (md_info == NULL) { + mbedtls_fprintf(stderr, "Message Digest '%s' not found\n", argv[5]); goto exit; } - if( mbedtls_md_setup( &md_ctx, md_info, 1 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_setup failed\n" ); + if (mbedtls_md_setup(&md_ctx, md_info, 1) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_setup failed\n"); goto exit; } /* * Read the secret key from file or command line */ - if( ( fkey = fopen( argv[6], "rb" ) ) != NULL ) - { - keylen = fread( key, 1, sizeof( key ), fkey ); - fclose( fkey ); - } - else - { - if( memcmp( argv[6], "hex:", 4 ) == 0 ) - { + if ((fkey = fopen(argv[6], "rb")) != NULL) { + keylen = fread(key, 1, sizeof(key), fkey); + fclose(fkey); + } else { + if (memcmp(argv[6], "hex:", 4) == 0) { p = &argv[6][4]; keylen = 0; - while( sscanf( p, "%02X", (unsigned int*) &n ) > 0 && - keylen < (int) sizeof( key ) ) - { + while (sscanf(p, "%02X", (unsigned int *) &n) > 0 && + keylen < (int) sizeof(key)) { key[keylen++] = (unsigned char) n; p += 2; } - } - else - { - keylen = strlen( argv[6] ); + } else { + keylen = strlen(argv[6]); - if( keylen > (int) sizeof( key ) ) - keylen = (int) sizeof( key ); + if (keylen > (int) sizeof(key)) { + keylen = (int) sizeof(key); + } - memcpy( key, argv[6], keylen ); + memcpy(key, argv[6], keylen); } } #if defined(_WIN32_WCE) - filesize = fseek( fin, 0L, SEEK_END ); + filesize = fseek(fin, 0L, SEEK_END); #else #if defined(_WIN32) /* @@ -230,72 +213,64 @@ int main( int argc, char *argv[] ) */ li_size.QuadPart = 0; li_size.LowPart = - SetFilePointer( (HANDLE) _get_osfhandle( _fileno( fin ) ), - li_size.LowPart, &li_size.HighPart, FILE_END ); + SetFilePointer((HANDLE) _get_osfhandle(_fileno(fin)), + li_size.LowPart, &li_size.HighPart, FILE_END); - if( li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR ) - { - mbedtls_fprintf( stderr, "SetFilePointer(0,FILE_END) failed\n" ); + if (li_size.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR) { + mbedtls_fprintf(stderr, "SetFilePointer(0,FILE_END) failed\n"); goto exit; } filesize = li_size.QuadPart; #else - if( ( filesize = lseek( fileno( fin ), 0, SEEK_END ) ) < 0 ) - { - perror( "lseek" ); + if ((filesize = lseek(fileno(fin), 0, SEEK_END)) < 0) { + perror("lseek"); goto exit; } #endif #endif - if( fseek( fin, 0, SEEK_SET ) < 0 ) - { - mbedtls_fprintf( stderr, "fseek(0,SEEK_SET) failed\n" ); + if (fseek(fin, 0, SEEK_SET) < 0) { + mbedtls_fprintf(stderr, "fseek(0,SEEK_SET) failed\n"); goto exit; } - if( mode == MODE_ENCRYPT ) - { + if (mode == MODE_ENCRYPT) { /* * Generate the initialization vector as: * IV = MD( filesize || filename )[0..15] */ - for( i = 0; i < 8; i++ ) - buffer[i] = (unsigned char)( filesize >> ( i << 3 ) ); + for (i = 0; i < 8; i++) { + buffer[i] = (unsigned char) (filesize >> (i << 3)); + } p = argv[2]; - if( mbedtls_md_starts( &md_ctx ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_starts() returned error\n" ); + if (mbedtls_md_starts(&md_ctx) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_starts() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, buffer, 8 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, buffer, 8) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, ( unsigned char * ) p, strlen( p ) ) - != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, (unsigned char *) p, strlen(p)) + != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_finish( &md_ctx, digest ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_finish() returned error\n" ); + if (mbedtls_md_finish(&md_ctx, digest) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_finish() returned error\n"); goto exit; } - memcpy( IV, digest, 16 ); + memcpy(IV, digest, 16); /* * Append the IV at the beginning of the output. */ - if( fwrite( IV, 1, 16, fout ) != 16 ) - { - mbedtls_fprintf( stderr, "fwrite(%d bytes) failed\n", 16 ); + if (fwrite(IV, 1, 16, fout) != 16) { + mbedtls_fprintf(stderr, "fwrite(%d bytes) failed\n", 16); goto exit; } @@ -303,131 +278,111 @@ int main( int argc, char *argv[] ) * Hash the IV and the secret key together 8192 times * using the result to setup the AES context and HMAC. */ - memset( digest, 0, 32 ); - memcpy( digest, IV, 16 ); + memset(digest, 0, 32); + memcpy(digest, IV, 16); - for( i = 0; i < 8192; i++ ) - { - if( mbedtls_md_starts( &md_ctx ) != 0 ) - { - mbedtls_fprintf( stderr, - "mbedtls_md_starts() returned error\n" ); + for (i = 0; i < 8192; i++) { + if (mbedtls_md_starts(&md_ctx) != 0) { + mbedtls_fprintf(stderr, + "mbedtls_md_starts() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, digest, 32 ) != 0 ) - { - mbedtls_fprintf( stderr, - "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, digest, 32) != 0) { + mbedtls_fprintf(stderr, + "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, key, keylen ) != 0 ) - { - mbedtls_fprintf( stderr, - "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, key, keylen) != 0) { + mbedtls_fprintf(stderr, + "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_finish( &md_ctx, digest ) != 0 ) - { - mbedtls_fprintf( stderr, - "mbedtls_md_finish() returned error\n" ); + if (mbedtls_md_finish(&md_ctx, digest) != 0) { + mbedtls_fprintf(stderr, + "mbedtls_md_finish() returned error\n"); goto exit; } } - if( mbedtls_cipher_setkey( &cipher_ctx, - digest, - (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ), - MBEDTLS_ENCRYPT ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_setkey() returned error\n"); + if (mbedtls_cipher_setkey(&cipher_ctx, + digest, + (int) mbedtls_cipher_info_get_key_bitlen(cipher_info), + MBEDTLS_ENCRYPT) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_setkey() returned error\n"); goto exit; } - if( mbedtls_cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_set_iv() returned error\n"); + if (mbedtls_cipher_set_iv(&cipher_ctx, IV, 16) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_set_iv() returned error\n"); goto exit; } - if( mbedtls_cipher_reset( &cipher_ctx ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_reset() returned error\n"); + if (mbedtls_cipher_reset(&cipher_ctx) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_reset() returned error\n"); goto exit; } - if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" ); + if (mbedtls_md_hmac_starts(&md_ctx, digest, 32) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_starts() returned error\n"); goto exit; } /* * Encrypt and write the ciphertext. */ - for( offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size( &cipher_ctx ) ) - { - ilen = ( (unsigned int) filesize - offset > mbedtls_cipher_get_block_size( &cipher_ctx ) ) ? - mbedtls_cipher_get_block_size( &cipher_ctx ) : (unsigned int) ( filesize - offset ); + for (offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size(&cipher_ctx)) { + ilen = ((unsigned int) filesize - offset > mbedtls_cipher_get_block_size(&cipher_ctx)) ? + mbedtls_cipher_get_block_size(&cipher_ctx) : (unsigned int) (filesize - offset); - if( fread( buffer, 1, ilen, fin ) != ilen ) - { - mbedtls_fprintf( stderr, "fread(%ld bytes) failed\n", (long) ilen ); + if (fread(buffer, 1, ilen, fin) != ilen) { + mbedtls_fprintf(stderr, "fread(%ld bytes) failed\n", (long) ilen); goto exit; } - if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output, &olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_update() returned error\n"); + if (mbedtls_cipher_update(&cipher_ctx, buffer, ilen, output, &olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_update() returned error\n"); goto exit; } - if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" ); + if (mbedtls_md_hmac_update(&md_ctx, output, olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n"); goto exit; } - if( fwrite( output, 1, olen, fout ) != olen ) - { - mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + if (fwrite(output, 1, olen, fout) != olen) { + mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen); goto exit; } } - if( mbedtls_cipher_finish( &cipher_ctx, output, &olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" ); + if (mbedtls_cipher_finish(&cipher_ctx, output, &olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_finish() returned error\n"); goto exit; } - if( mbedtls_md_hmac_update( &md_ctx, output, olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" ); + if (mbedtls_md_hmac_update(&md_ctx, output, olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n"); goto exit; } - if( fwrite( output, 1, olen, fout ) != olen ) - { - mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + if (fwrite(output, 1, olen, fout) != olen) { + mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen); goto exit; } /* * Finally write the HMAC. */ - if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" ); + if (mbedtls_md_hmac_finish(&md_ctx, digest) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_finish() returned error\n"); goto exit; } - if( fwrite( digest, 1, mbedtls_md_get_size( md_info ), fout ) != mbedtls_md_get_size( md_info ) ) - { - mbedtls_fprintf( stderr, "fwrite(%d bytes) failed\n", mbedtls_md_get_size( md_info ) ); + if (fwrite(digest, 1, mbedtls_md_get_size(md_info), fout) != mbedtls_md_get_size(md_info)) { + mbedtls_fprintf(stderr, "fwrite(%d bytes) failed\n", mbedtls_md_get_size(md_info)); goto exit; } } - if( mode == MODE_DECRYPT ) - { + if (mode == MODE_DECRYPT) { /* * The encrypted file must be structured as follows: * @@ -437,134 +392,116 @@ int main( int argc, char *argv[] ) * N*16 .. (N+1)*16 - 1 Encrypted Block #N * (N+1)*16 .. (N+1)*16 + n Hash(ciphertext) */ - if( filesize < 16 + mbedtls_md_get_size( md_info ) ) - { - mbedtls_fprintf( stderr, "File too short to be encrypted.\n" ); + if (filesize < 16 + mbedtls_md_get_size(md_info)) { + mbedtls_fprintf(stderr, "File too short to be encrypted.\n"); goto exit; } - if( mbedtls_cipher_get_block_size( &cipher_ctx ) == 0 ) - { - mbedtls_fprintf( stderr, "Invalid cipher block size: 0. \n" ); + if (mbedtls_cipher_get_block_size(&cipher_ctx) == 0) { + mbedtls_fprintf(stderr, "Invalid cipher block size: 0. \n"); goto exit; } /* * Check the file size. */ - if( mbedtls_cipher_info_get_mode( cipher_info ) != MBEDTLS_MODE_GCM && - ( ( filesize - mbedtls_md_get_size( md_info ) ) % - mbedtls_cipher_get_block_size( &cipher_ctx ) ) != 0 ) - { - mbedtls_fprintf( stderr, "File content not a multiple of the block size (%u).\n", - mbedtls_cipher_get_block_size( &cipher_ctx )); + if (mbedtls_cipher_info_get_mode(cipher_info) != MBEDTLS_MODE_GCM && + ((filesize - mbedtls_md_get_size(md_info)) % + mbedtls_cipher_get_block_size(&cipher_ctx)) != 0) { + mbedtls_fprintf(stderr, "File content not a multiple of the block size (%u).\n", + mbedtls_cipher_get_block_size(&cipher_ctx)); goto exit; } /* * Subtract the IV + HMAC length. */ - filesize -= ( 16 + mbedtls_md_get_size( md_info ) ); + filesize -= (16 + mbedtls_md_get_size(md_info)); /* * Read the IV and original filesize modulo 16. */ - if( fread( buffer, 1, 16, fin ) != 16 ) - { - mbedtls_fprintf( stderr, "fread(%d bytes) failed\n", 16 ); + if (fread(buffer, 1, 16, fin) != 16) { + mbedtls_fprintf(stderr, "fread(%d bytes) failed\n", 16); goto exit; } - memcpy( IV, buffer, 16 ); + memcpy(IV, buffer, 16); /* * Hash the IV and the secret key together 8192 times * using the result to setup the AES context and HMAC. */ - memset( digest, 0, 32 ); - memcpy( digest, IV, 16 ); + memset(digest, 0, 32); + memcpy(digest, IV, 16); - for( i = 0; i < 8192; i++ ) - { - if( mbedtls_md_starts( &md_ctx ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_starts() returned error\n" ); + for (i = 0; i < 8192; i++) { + if (mbedtls_md_starts(&md_ctx) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_starts() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, digest, 32 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, digest, 32) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_update( &md_ctx, key, keylen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_update() returned error\n" ); + if (mbedtls_md_update(&md_ctx, key, keylen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_update() returned error\n"); goto exit; } - if( mbedtls_md_finish( &md_ctx, digest ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_finish() returned error\n" ); + if (mbedtls_md_finish(&md_ctx, digest) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_finish() returned error\n"); goto exit; } } - if( mbedtls_cipher_setkey( &cipher_ctx, - digest, - (int) mbedtls_cipher_info_get_key_bitlen( cipher_info ), - MBEDTLS_DECRYPT ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_setkey() returned error\n" ); + if (mbedtls_cipher_setkey(&cipher_ctx, + digest, + (int) mbedtls_cipher_info_get_key_bitlen(cipher_info), + MBEDTLS_DECRYPT) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_setkey() returned error\n"); goto exit; } - if( mbedtls_cipher_set_iv( &cipher_ctx, IV, 16 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_set_iv() returned error\n" ); + if (mbedtls_cipher_set_iv(&cipher_ctx, IV, 16) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_set_iv() returned error\n"); goto exit; } - if( mbedtls_cipher_reset( &cipher_ctx ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_reset() returned error\n" ); + if (mbedtls_cipher_reset(&cipher_ctx) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_reset() returned error\n"); goto exit; } - if( mbedtls_md_hmac_starts( &md_ctx, digest, 32 ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_starts() returned error\n" ); + if (mbedtls_md_hmac_starts(&md_ctx, digest, 32) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_starts() returned error\n"); goto exit; } /* * Decrypt and write the plaintext. */ - for( offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size( &cipher_ctx ) ) - { - ilen = ( (unsigned int) filesize - offset > mbedtls_cipher_get_block_size( &cipher_ctx ) ) ? - mbedtls_cipher_get_block_size( &cipher_ctx ) : (unsigned int) ( filesize - offset ); + for (offset = 0; offset < filesize; offset += mbedtls_cipher_get_block_size(&cipher_ctx)) { + ilen = ((unsigned int) filesize - offset > mbedtls_cipher_get_block_size(&cipher_ctx)) ? + mbedtls_cipher_get_block_size(&cipher_ctx) : (unsigned int) (filesize - offset); - if( fread( buffer, 1, ilen, fin ) != ilen ) - { - mbedtls_fprintf( stderr, "fread(%u bytes) failed\n", - mbedtls_cipher_get_block_size( &cipher_ctx ) ); + if (fread(buffer, 1, ilen, fin) != ilen) { + mbedtls_fprintf(stderr, "fread(%u bytes) failed\n", + mbedtls_cipher_get_block_size(&cipher_ctx)); goto exit; } - if( mbedtls_md_hmac_update( &md_ctx, buffer, ilen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_update() returned error\n" ); + if (mbedtls_md_hmac_update(&md_ctx, buffer, ilen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_update() returned error\n"); goto exit; } - if( mbedtls_cipher_update( &cipher_ctx, buffer, ilen, output, - &olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_update() returned error\n" ); + if (mbedtls_cipher_update(&cipher_ctx, buffer, ilen, output, + &olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_update() returned error\n"); goto exit; } - if( fwrite( output, 1, olen, fout ) != olen ) - { - mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + if (fwrite(output, 1, olen, fout) != olen) { + mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen); goto exit; } } @@ -572,42 +509,38 @@ int main( int argc, char *argv[] ) /* * Verify the message authentication code. */ - if( mbedtls_md_hmac_finish( &md_ctx, digest ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_md_hmac_finish() returned error\n" ); + if (mbedtls_md_hmac_finish(&md_ctx, digest) != 0) { + mbedtls_fprintf(stderr, "mbedtls_md_hmac_finish() returned error\n"); goto exit; } - if( fread( buffer, 1, mbedtls_md_get_size( md_info ), fin ) != mbedtls_md_get_size( md_info ) ) - { - mbedtls_fprintf( stderr, "fread(%d bytes) failed\n", mbedtls_md_get_size( md_info ) ); + if (fread(buffer, 1, mbedtls_md_get_size(md_info), fin) != mbedtls_md_get_size(md_info)) { + mbedtls_fprintf(stderr, "fread(%d bytes) failed\n", mbedtls_md_get_size(md_info)); goto exit; } /* Use constant-time buffer comparison */ diff = 0; - for( i = 0; i < mbedtls_md_get_size( md_info ); i++ ) + for (i = 0; i < mbedtls_md_get_size(md_info); i++) { diff |= digest[i] ^ buffer[i]; + } - if( diff != 0 ) - { - mbedtls_fprintf( stderr, "HMAC check failed: wrong key, " - "or file corrupted.\n" ); + if (diff != 0) { + mbedtls_fprintf(stderr, "HMAC check failed: wrong key, " + "or file corrupted.\n"); goto exit; } /* * Write the final block of data */ - if( mbedtls_cipher_finish( &cipher_ctx, output, &olen ) != 0 ) - { - mbedtls_fprintf( stderr, "mbedtls_cipher_finish() returned error\n" ); + if (mbedtls_cipher_finish(&cipher_ctx, output, &olen) != 0) { + mbedtls_fprintf(stderr, "mbedtls_cipher_finish() returned error\n"); goto exit; } - if( fwrite( output, 1, olen, fout ) != olen ) - { - mbedtls_fprintf( stderr, "fwrite(%ld bytes) failed\n", (long) olen ); + if (fwrite(output, 1, olen, fout) != olen) { + mbedtls_fprintf(stderr, "fwrite(%ld bytes) failed\n", (long) olen); goto exit; } } @@ -615,26 +548,29 @@ int main( int argc, char *argv[] ) exit_code = MBEDTLS_EXIT_SUCCESS; exit: - if( fin ) - fclose( fin ); - if( fout ) - fclose( fout ); + if (fin) { + fclose(fin); + } + if (fout) { + fclose(fout); + } /* Zeroize all command line arguments to also cover the case when the user has missed or reordered some, in which case the key might not be in argv[6]. */ - for( i = 0; i < argc; i++ ) - mbedtls_platform_zeroize( argv[i], strlen( argv[i] ) ); + for (i = 0; i < argc; i++) { + mbedtls_platform_zeroize(argv[i], strlen(argv[i])); + } - mbedtls_platform_zeroize( IV, sizeof( IV ) ); - mbedtls_platform_zeroize( key, sizeof( key ) ); - mbedtls_platform_zeroize( buffer, sizeof( buffer ) ); - mbedtls_platform_zeroize( output, sizeof( output ) ); - mbedtls_platform_zeroize( digest, sizeof( digest ) ); + mbedtls_platform_zeroize(IV, sizeof(IV)); + mbedtls_platform_zeroize(key, sizeof(key)); + mbedtls_platform_zeroize(buffer, sizeof(buffer)); + mbedtls_platform_zeroize(output, sizeof(output)); + mbedtls_platform_zeroize(digest, sizeof(digest)); - mbedtls_cipher_free( &cipher_ctx ); - mbedtls_md_free( &md_ctx ); + mbedtls_cipher_free(&cipher_ctx); + mbedtls_md_free(&md_ctx); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_CIPHER_C && MBEDTLS_MD_C && MBEDTLS_FS_IO */ diff --git a/programs/cipher/cipher_aead_demo.c b/programs/cipher/cipher_aead_demo.c index 18bd66c81..ce3925628 100644 --- a/programs/cipher/cipher_aead_demo.c +++ b/programs/cipher/cipher_aead_demo.c @@ -55,19 +55,19 @@ #if !defined(MBEDTLS_CIPHER_C) || \ !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_GCM_C) || \ !defined(MBEDTLS_CHACHAPOLY_C) -int main( void ) +int main(void) { - printf( "MBEDTLS_MD_C and/or " - "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or " - "MBEDTLS_CHACHAPOLY_C not defined\r\n" ); - return( 0 ); + printf("MBEDTLS_MD_C and/or " + "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or " + "MBEDTLS_CHACHAPOLY_C not defined\r\n"); + return 0; } #else /* The real program starts here. */ const char usage[] = -"Usage: cipher_aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]"; + "Usage: cipher_aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]"; /* Dummy data for encryption: IV/nonce, additional data, 2-part message */ const unsigned char iv1[12] = { 0x00 }; @@ -82,39 +82,40 @@ const unsigned char msg2_part1[] = { 0x13, 0x14 }; const unsigned char msg2_part2[] = { 0x15, 0x16, 0x17 }; /* Maximum total size of the messages */ -#define MSG1_SIZE ( sizeof( msg1_part1 ) + sizeof( msg1_part2 ) ) -#define MSG2_SIZE ( sizeof( msg2_part1 ) + sizeof( msg2_part2 ) ) -#define MSG_MAX_SIZE ( MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE ) +#define MSG1_SIZE (sizeof(msg1_part1) + sizeof(msg1_part2)) +#define MSG2_SIZE (sizeof(msg2_part1) + sizeof(msg2_part2)) +#define MSG_MAX_SIZE (MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE) /* Dummy key material - never do this in production! * 32-byte is enough to all the key size supported by this program. */ const unsigned char key_bytes[32] = { 0x2a }; /* Print the contents of a buffer in hex */ -void print_buf( const char *title, unsigned char *buf, size_t len ) +void print_buf(const char *title, unsigned char *buf, size_t len) { - printf( "%s:", title ); - for( size_t i = 0; i < len; i++ ) - printf( " %02x", buf[i] ); - printf( "\n" ); + printf("%s:", title); + for (size_t i = 0; i < len; i++) { + printf(" %02x", buf[i]); + } + printf("\n"); } /* Run an Mbed TLS function and bail out if it fails. * A string description of the error code can be recovered with: * programs/util/strerror */ -#define CHK( expr ) \ +#define CHK(expr) \ do \ { \ - ret = ( expr ); \ - if( ret != 0 ) \ + ret = (expr); \ + if (ret != 0) \ { \ - printf( "Error %d at line %d: %s\n", \ - ret, \ - __LINE__, \ - #expr ); \ + printf("Error %d at line %d: %s\n", \ + ret, \ + __LINE__, \ + #expr); \ goto exit; \ } \ - } while( 0 ) + } while (0) /* * Prepare encryption material: @@ -122,41 +123,41 @@ void print_buf( const char *title, unsigned char *buf, size_t len ) * - set up key * - outputs: context and tag length, which together hold all the information */ -static int aead_prepare( const char *info, - mbedtls_cipher_context_t *ctx, - size_t *tag_len ) +static int aead_prepare(const char *info, + mbedtls_cipher_context_t *ctx, + size_t *tag_len) { int ret; /* Convert arg to type + tag_len */ mbedtls_cipher_type_t type; - if( strcmp( info, "aes128-gcm" ) == 0 ) { + if (strcmp(info, "aes128-gcm") == 0) { type = MBEDTLS_CIPHER_AES_128_GCM; *tag_len = 16; - } else if( strcmp( info, "aes256-gcm" ) == 0 ) { + } else if (strcmp(info, "aes256-gcm") == 0) { type = MBEDTLS_CIPHER_AES_256_GCM; *tag_len = 16; - } else if( strcmp( info, "aes128-gcm_8" ) == 0 ) { + } else if (strcmp(info, "aes128-gcm_8") == 0) { type = MBEDTLS_CIPHER_AES_128_GCM; *tag_len = 8; - } else if( strcmp( info, "chachapoly" ) == 0 ) { + } else if (strcmp(info, "chachapoly") == 0) { type = MBEDTLS_CIPHER_CHACHA20_POLY1305; *tag_len = 16; } else { - puts( usage ); - return( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + puts(usage); + return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA; } /* Prepare context for the given type */ - CHK( mbedtls_cipher_setup( ctx, - mbedtls_cipher_info_from_type( type ) ) ); + CHK(mbedtls_cipher_setup(ctx, + mbedtls_cipher_info_from_type(type))); /* Import key */ - int key_len = mbedtls_cipher_get_key_bitlen( ctx ); - CHK( mbedtls_cipher_setkey( ctx, key_bytes, key_len, MBEDTLS_ENCRYPT ) ); + int key_len = mbedtls_cipher_get_key_bitlen(ctx); + CHK(mbedtls_cipher_setkey(ctx, key_bytes, key_len, MBEDTLS_ENCRYPT)); exit: - return( ret ); + return ret; } /* @@ -165,30 +166,30 @@ exit: * All of this information was present in the command line argument, but his * function demonstrates how each piece can be recovered from (ctx, tag_len). */ -static void aead_info( const mbedtls_cipher_context_t *ctx, size_t tag_len ) +static void aead_info(const mbedtls_cipher_context_t *ctx, size_t tag_len) { - mbedtls_cipher_type_t type = mbedtls_cipher_get_type( ctx ); - const mbedtls_cipher_info_t *info = mbedtls_cipher_info_from_type( type ); - const char *ciph = mbedtls_cipher_info_get_name( info ); - int key_bits = mbedtls_cipher_get_key_bitlen( ctx ); - mbedtls_cipher_mode_t mode = mbedtls_cipher_get_cipher_mode( ctx ); + mbedtls_cipher_type_t type = mbedtls_cipher_get_type(ctx); + const mbedtls_cipher_info_t *info = mbedtls_cipher_info_from_type(type); + const char *ciph = mbedtls_cipher_info_get_name(info); + int key_bits = mbedtls_cipher_get_key_bitlen(ctx); + mbedtls_cipher_mode_t mode = mbedtls_cipher_get_cipher_mode(ctx); const char *mode_str = mode == MBEDTLS_MODE_GCM ? "GCM" : mode == MBEDTLS_MODE_CHACHAPOLY ? "ChachaPoly" : "???"; - printf( "%s, %d, %s, %u\n", - ciph, key_bits, mode_str, (unsigned) tag_len ); + printf("%s, %d, %s, %u\n", + ciph, key_bits, mode_str, (unsigned) tag_len); } /* * Encrypt a 2-part message. */ -static int aead_encrypt( mbedtls_cipher_context_t *ctx, size_t tag_len, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *part1, size_t part1_len, - const unsigned char *part2, size_t part2_len ) +static int aead_encrypt(mbedtls_cipher_context_t *ctx, size_t tag_len, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *part1, size_t part1_len, + const unsigned char *part2, size_t part2_len) { int ret; size_t olen; @@ -196,76 +197,75 @@ static int aead_encrypt( mbedtls_cipher_context_t *ctx, size_t tag_len, unsigned char out[MSG_MAX_SIZE + MAX_TAG_LENGTH]; unsigned char *p = out; - CHK( mbedtls_cipher_set_iv( ctx, iv, iv_len ) ); - CHK( mbedtls_cipher_reset( ctx ) ); - CHK( mbedtls_cipher_update_ad( ctx, ad, ad_len ) ); - CHK( mbedtls_cipher_update( ctx, part1, part1_len, p, &olen ) ); + CHK(mbedtls_cipher_set_iv(ctx, iv, iv_len)); + CHK(mbedtls_cipher_reset(ctx)); + CHK(mbedtls_cipher_update_ad(ctx, ad, ad_len)); + CHK(mbedtls_cipher_update(ctx, part1, part1_len, p, &olen)); p += olen; - CHK( mbedtls_cipher_update( ctx, part2, part2_len, p, &olen ) ); + CHK(mbedtls_cipher_update(ctx, part2, part2_len, p, &olen)); p += olen; - CHK( mbedtls_cipher_finish( ctx, p, &olen ) ); + CHK(mbedtls_cipher_finish(ctx, p, &olen)); p += olen; - CHK( mbedtls_cipher_write_tag( ctx, p, tag_len ) ); + CHK(mbedtls_cipher_write_tag(ctx, p, tag_len)); p += tag_len; olen = p - out; - print_buf( "out", out, olen ); + print_buf("out", out, olen); exit: - return( ret ); + return ret; } /* * AEAD demo: set up key/alg, print out info, encrypt messages. */ -static int aead_demo( const char *info ) +static int aead_demo(const char *info) { int ret = 0; mbedtls_cipher_context_t ctx; size_t tag_len; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - CHK( aead_prepare( info, &ctx, &tag_len ) ); + CHK(aead_prepare(info, &ctx, &tag_len)); - aead_info( &ctx, tag_len ); + aead_info(&ctx, tag_len); - CHK( aead_encrypt( &ctx, tag_len, - iv1, sizeof( iv1 ), add_data1, sizeof( add_data1 ), - msg1_part1, sizeof( msg1_part1 ), - msg1_part2, sizeof( msg1_part2 ) ) ); - CHK( aead_encrypt( &ctx, tag_len, - iv2, sizeof( iv2 ), add_data2, sizeof( add_data2 ), - msg2_part1, sizeof( msg2_part1 ), - msg2_part2, sizeof( msg2_part2 ) ) ); + CHK(aead_encrypt(&ctx, tag_len, + iv1, sizeof(iv1), add_data1, sizeof(add_data1), + msg1_part1, sizeof(msg1_part1), + msg1_part2, sizeof(msg1_part2))); + CHK(aead_encrypt(&ctx, tag_len, + iv2, sizeof(iv2), add_data2, sizeof(add_data2), + msg2_part1, sizeof(msg2_part1), + msg2_part2, sizeof(msg2_part2))); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); - return( ret ); + return ret; } /* * Main function */ -int main( int argc, char **argv ) +int main(int argc, char **argv) { /* Check usage */ - if( argc != 2 ) - { - puts( usage ); - return( 1 ); + if (argc != 2) { + puts(usage); + return 1; } int ret; /* Run the demo */ - CHK( aead_demo( argv[1] ) ); + CHK(aead_demo(argv[1])); exit: - return( ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE ); + return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } #endif diff --git a/programs/fuzz/common.c b/programs/fuzz/common.c index c554bc680..75021bb2f 100644 --- a/programs/fuzz/common.c +++ b/programs/fuzz/common.c @@ -6,7 +6,7 @@ #include "mbedtls/ctr_drbg.h" #if defined(MBEDTLS_PLATFORM_TIME_ALT) -mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ) +mbedtls_time_t dummy_constant_time(mbedtls_time_t *time) { (void) time; return 0x5af2a056; @@ -16,54 +16,54 @@ mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ) void dummy_init() { #if defined(MBEDTLS_PLATFORM_TIME_ALT) - mbedtls_platform_set_time( dummy_constant_time ); + mbedtls_platform_set_time(dummy_constant_time); #else fprintf(stderr, "Warning: fuzzing without constant time\n"); #endif } -int dummy_send( void *ctx, const unsigned char *buf, size_t len ) +int dummy_send(void *ctx, const unsigned char *buf, size_t len) { //silence warning about unused parameter (void) ctx; (void) buf; //pretends we wrote everything ok - if( len > INT_MAX ) { - return( -1 ); + if (len > INT_MAX) { + return -1; } - return( (int) len ); + return (int) len; } -int fuzz_recv( void *ctx, unsigned char *buf, size_t len ) +int fuzz_recv(void *ctx, unsigned char *buf, size_t len) { //reads from the buffer from fuzzer - fuzzBufferOffset_t * biomemfuzz = (fuzzBufferOffset_t *) ctx; + fuzzBufferOffset_t *biomemfuzz = (fuzzBufferOffset_t *) ctx; - if(biomemfuzz->Offset == biomemfuzz->Size) { + if (biomemfuzz->Offset == biomemfuzz->Size) { //EOF - return( 0 ); + return 0; } - if( len > INT_MAX ) { - return( -1 ); + if (len > INT_MAX) { + return -1; } - if( len + biomemfuzz->Offset > biomemfuzz->Size ) { + if (len + biomemfuzz->Offset > biomemfuzz->Size) { //do not overflow len = biomemfuzz->Size - biomemfuzz->Offset; } memcpy(buf, biomemfuzz->Data + biomemfuzz->Offset, len); biomemfuzz->Offset += len; - return( (int) len ); + return (int) len; } -int dummy_random( void *p_rng, unsigned char *output, size_t output_len ) +int dummy_random(void *p_rng, unsigned char *output, size_t output_len) { int ret; size_t i; #if defined(MBEDTLS_CTR_DRBG_C) //mbedtls_ctr_drbg_random requires a valid mbedtls_ctr_drbg_context in p_rng - if( p_rng != NULL ) { + if (p_rng != NULL) { //use mbedtls_ctr_drbg_random to find bugs in it ret = mbedtls_ctr_drbg_random(p_rng, output, output_len); } else { @@ -74,14 +74,14 @@ int dummy_random( void *p_rng, unsigned char *output, size_t output_len ) (void) p_rng; ret = 0; #endif - for (i=0; i #include -typedef struct fuzzBufferOffset -{ +typedef struct fuzzBufferOffset { const uint8_t *Data; size_t Size; size_t Offset; } fuzzBufferOffset_t; #if defined(MBEDTLS_HAVE_TIME) -mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ); +mbedtls_time_t dummy_constant_time(mbedtls_time_t *time); #endif void dummy_init(); -int dummy_send( void *ctx, const unsigned char *buf, size_t len ); -int fuzz_recv( void *ctx, unsigned char *buf, size_t len ); -int dummy_random( void *p_rng, unsigned char *output, size_t output_len ); -int dummy_entropy( void *data, unsigned char *output, size_t len ); -int fuzz_recv_timeout( void *ctx, unsigned char *buf, size_t len, - uint32_t timeout ); +int dummy_send(void *ctx, const unsigned char *buf, size_t len); +int fuzz_recv(void *ctx, unsigned char *buf, size_t len); +int dummy_random(void *p_rng, unsigned char *output, size_t output_len); +int dummy_entropy(void *data, unsigned char *output, size_t len); +int fuzz_recv_timeout(void *ctx, unsigned char *buf, size_t len, + uint32_t timeout); diff --git a/programs/fuzz/fuzz_client.c b/programs/fuzz/fuzz_client.c index ab2d13494..56a5efe78 100644 --- a/programs/fuzz/fuzz_client.c +++ b/programs/fuzz/fuzz_client.c @@ -32,7 +32,8 @@ const char *pers = "fuzz_client"; #endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #if defined(MBEDTLS_SSL_CLI_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) @@ -48,10 +49,11 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { if (initialized == 0) { #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_x509_crt_init( &cacert ); - if (mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ) != 0) + mbedtls_x509_crt_init(&cacert); + if (mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len) != 0) { return 1; + } #endif alpn_list[0] = "HTTP"; @@ -71,98 +73,108 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { //Avoid warnings if compile options imply no options (void) options; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy, - (const unsigned char *) pers, strlen( pers ) ) != 0 ) + if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { goto exit; + } - if( mbedtls_ssl_config_defaults( &conf, + if (mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) != 0 ) + MBEDTLS_SSL_PRESET_DEFAULT) != 0) { goto exit; + } #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) if (options & 2) { - mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ), - (const unsigned char *) psk_id, sizeof( psk_id ) - 1 ); + mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk), + (const unsigned char *) psk_id, sizeof(psk_id) - 1); } #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) if (options & 4) { - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED ); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED); } else #endif { - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE ); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE); } #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - mbedtls_ssl_conf_extended_master_secret( &conf, (options & 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED); + mbedtls_ssl_conf_extended_master_secret(&conf, + (options & + 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED); #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - mbedtls_ssl_conf_encrypt_then_mac( &conf, (options & 0x20) ? MBEDTLS_SSL_ETM_DISABLED : MBEDTLS_SSL_ETM_ENABLED); + mbedtls_ssl_conf_encrypt_then_mac(&conf, + (options & + 0x20) ? MBEDTLS_SSL_ETM_DISABLED : MBEDTLS_SSL_ETM_ENABLED); #endif #if defined(MBEDTLS_SSL_RENEGOTIATION) - mbedtls_ssl_conf_renegotiation( &conf, (options & 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED ); + mbedtls_ssl_conf_renegotiation(&conf, + (options & + 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_conf_session_tickets( &conf, (options & 0x100) ? MBEDTLS_SSL_SESSION_TICKETS_DISABLED : MBEDTLS_SSL_SESSION_TICKETS_ENABLED ); + mbedtls_ssl_conf_session_tickets(&conf, + (options & + 0x100) ? MBEDTLS_SSL_SESSION_TICKETS_DISABLED : MBEDTLS_SSL_SESSION_TICKETS_ENABLED); #endif #if defined(MBEDTLS_SSL_ALPN) if (options & 0x200) { - mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ); + mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list); } #endif //There may be other options to add : // mbedtls_ssl_conf_cert_profile, mbedtls_ssl_conf_sig_hashes srand(1); - mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg ); + mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg); - if( mbedtls_ssl_setup( &ssl, &conf ) != 0 ) + if (mbedtls_ssl_setup(&ssl, &conf) != 0) { goto exit; + } #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) if ((options & 1) == 0) { - if( mbedtls_ssl_set_hostname( &ssl, "localhost" ) != 0 ) + if (mbedtls_ssl_set_hostname(&ssl, "localhost") != 0) { goto exit; + } } #endif biomemfuzz.Data = Data; biomemfuzz.Size = Size-2; biomemfuzz.Offset = 0; - mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL); - ret = mbedtls_ssl_handshake( &ssl ); - if( ret == 0 ) - { + ret = mbedtls_ssl_handshake(&ssl); + if (ret == 0) { //keep reading data from server until the end - do - { - len = sizeof( buf ) - 1; - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { continue; - else if( ret <= 0 ) + } else if (ret <= 0) { //EOF or error break; - } - while( 1 ); + } + } while (1); } exit: - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_free( &ssl ); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_free(&ssl); #else (void) Data; diff --git a/programs/fuzz/fuzz_dtlsclient.c b/programs/fuzz/fuzz_dtlsclient.c index 16f601470..a58f6f45b 100644 --- a/programs/fuzz/fuzz_dtlsclient.c +++ b/programs/fuzz/fuzz_dtlsclient.c @@ -26,7 +26,8 @@ const char *pers = "fuzz_dtlsclient"; -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ defined(MBEDTLS_SSL_CLI_C) && \ defined(MBEDTLS_ENTROPY_C) && \ @@ -44,77 +45,80 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { if (initialized == 0) { #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_x509_crt_init( &cacert ); - if (mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ) != 0) + mbedtls_x509_crt_init(&cacert); + if (mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len) != 0) { return 1; + } #endif dummy_init(); initialized = 1; } - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); srand(1); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy, - (const unsigned char *) pers, strlen( pers ) ) != 0 ) + if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { goto exit; + } - if( mbedtls_ssl_config_defaults( &conf, + if (mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) != 0 ) + MBEDTLS_SSL_PRESET_DEFAULT) != 0) { goto exit; + } #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); #endif - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE ); - mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg ); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE); + mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg); - if( mbedtls_ssl_setup( &ssl, &conf ) != 0 ) + if (mbedtls_ssl_setup(&ssl, &conf) != 0) { goto exit; + } - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - if( mbedtls_ssl_set_hostname( &ssl, "localhost" ) != 0 ) + if (mbedtls_ssl_set_hostname(&ssl, "localhost") != 0) { goto exit; + } #endif biomemfuzz.Data = Data; biomemfuzz.Size = Size; biomemfuzz.Offset = 0; - mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout ); + mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout); - ret = mbedtls_ssl_handshake( &ssl ); - if( ret == 0 ) - { + ret = mbedtls_ssl_handshake(&ssl); + if (ret == 0) { //keep reading data from server until the end - do - { - len = sizeof( buf ) - 1; - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { continue; - else if( ret <= 0 ) + } else if (ret <= 0) { //EOF or error break; - } - while( 1 ); + } + } while (1); } exit: - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_free( &ssl ); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_free(&ssl); #else (void) Data; diff --git a/programs/fuzz/fuzz_dtlsserver.c b/programs/fuzz/fuzz_dtlsserver.c index 17caab211..007838565 100644 --- a/programs/fuzz/fuzz_dtlsserver.c +++ b/programs/fuzz/fuzz_dtlsserver.c @@ -17,10 +17,10 @@ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ - ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + (defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) const char *pers = "fuzz_dtlsserver"; -const unsigned char client_ip[4] = {0x7F, 0, 0, 1}; +const unsigned char client_ip[4] = { 0x7F, 0, 0, 1 }; static int initialized = 0; #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) static mbedtls_x509_crt srvcert; @@ -29,14 +29,15 @@ static mbedtls_pk_context pkey; #endif #endif // MBEDTLS_SSL_PROTO_DTLS -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #if defined(MBEDTLS_SSL_PROTO_DTLS) && \ defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) && \ defined(MBEDTLS_TIMING_C) && \ - ( defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ - defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) ) + (defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) || \ + defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)) int ret; size_t len; mbedtls_ssl_context ssl; @@ -48,104 +49,115 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { unsigned char buf[4096]; fuzzBufferOffset_t biomemfuzz; - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy, - ( const unsigned char * ) pers, strlen( pers ) ) != 0 ) + if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { goto exit; + } if (initialized == 0) { #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_x509_crt_init( &srvcert ); - mbedtls_pk_init( &pkey ); - if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ) != 0) + mbedtls_x509_crt_init(&srvcert); + mbedtls_pk_init(&pkey); + if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len) != 0) { return 1; - if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ) != 0) + } + if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len) != 0) { return 1; - if (mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, + } + if (mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key, mbedtls_test_srv_key_len, NULL, 0, - dummy_random, &ctr_drbg ) != 0) + dummy_random, &ctr_drbg) != 0) { return 1; + } #endif dummy_init(); initialized = 1; } - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_ssl_cookie_init( &cookie_ctx ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_ssl_cookie_init(&cookie_ctx); - if( mbedtls_ssl_config_defaults( &conf, + if (mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_SERVER, MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) != 0 ) + MBEDTLS_SSL_PRESET_DEFAULT) != 0) { goto exit; + } srand(1); - mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg ); + mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg); #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL ); - if( mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) != 0 ) + mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL); + if (mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey) != 0) { goto exit; + } #endif - if( mbedtls_ssl_cookie_setup( &cookie_ctx, dummy_random, &ctr_drbg ) != 0 ) + if (mbedtls_ssl_cookie_setup(&cookie_ctx, dummy_random, &ctr_drbg) != 0) { goto exit; + } - mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, &cookie_ctx ); + mbedtls_ssl_conf_dtls_cookies(&conf, + mbedtls_ssl_cookie_write, + mbedtls_ssl_cookie_check, + &cookie_ctx); - if( mbedtls_ssl_setup( &ssl, &conf ) != 0 ) + if (mbedtls_ssl_setup(&ssl, &conf) != 0) { goto exit; + } - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); biomemfuzz.Data = Data; biomemfuzz.Size = Size; biomemfuzz.Offset = 0; - mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout ); - if( mbedtls_ssl_set_client_transport_id( &ssl, client_ip, sizeof(client_ip) ) != 0 ) + mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout); + if (mbedtls_ssl_set_client_transport_id(&ssl, client_ip, sizeof(client_ip)) != 0) { goto exit; + } - ret = mbedtls_ssl_handshake( &ssl ); + ret = mbedtls_ssl_handshake(&ssl); if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) { biomemfuzz.Offset = ssl.next_record_offset; - mbedtls_ssl_session_reset( &ssl ); - mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout ); - if( mbedtls_ssl_set_client_transport_id( &ssl, client_ip, sizeof(client_ip) ) != 0 ) + mbedtls_ssl_session_reset(&ssl); + mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, fuzz_recv_timeout); + if (mbedtls_ssl_set_client_transport_id(&ssl, client_ip, sizeof(client_ip)) != 0) { goto exit; + } - ret = mbedtls_ssl_handshake( &ssl ); + ret = mbedtls_ssl_handshake(&ssl); - if( ret == 0 ) - { + if (ret == 0) { //keep reading data from server until the end - do - { - len = sizeof( buf ) - 1; - ret = mbedtls_ssl_read( &ssl, buf, len ); - if( ret == MBEDTLS_ERR_SSL_WANT_READ ) + do { + len = sizeof(buf) - 1; + ret = mbedtls_ssl_read(&ssl, buf, len); + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { continue; - else if( ret <= 0 ) + } else if (ret <= 0) { //EOF or error break; - } - while( 1 ); + } + } while (1); } } exit: - mbedtls_ssl_cookie_free( &cookie_ctx ); - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_free( &ssl ); + mbedtls_ssl_cookie_free(&cookie_ctx); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_free(&ssl); #else (void) Data; diff --git a/programs/fuzz/fuzz_pkcs7.c b/programs/fuzz/fuzz_pkcs7.c index 960007d7a..2056913f2 100644 --- a/programs/fuzz/fuzz_pkcs7.c +++ b/programs/fuzz/fuzz_pkcs7.c @@ -1,15 +1,16 @@ #include #include "mbedtls/pkcs7.h" -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #ifdef MBEDTLS_PKCS7_C mbedtls_pkcs7 pkcs7; - mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_pkcs7_init(&pkcs7); - mbedtls_pkcs7_parse_der( &pkcs7, Data, Size ); + mbedtls_pkcs7_parse_der(&pkcs7, Data, Size); - mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_pkcs7_free(&pkcs7); #else (void) Data; (void) Size; diff --git a/programs/fuzz/fuzz_privkey.c b/programs/fuzz/fuzz_privkey.c index 81ea1bce8..39c23e21e 100644 --- a/programs/fuzz/fuzz_privkey.c +++ b/programs/fuzz/fuzz_privkey.c @@ -15,7 +15,8 @@ const char *pers = "fuzz_privkey"; #endif // MBEDTLS_PK_PARSE_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_ENTROPY_C -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #if defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) int ret; mbedtls_pk_context pk; @@ -27,64 +28,62 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { Size = MAX_LEN; } - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy, - ( const unsigned char * ) pers, strlen( pers ) ) != 0 ) + if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { return 1; + } - mbedtls_pk_init( &pk ); - ret = mbedtls_pk_parse_key( &pk, Data, Size, NULL, 0, - dummy_random, &ctr_drbg ); + mbedtls_pk_init(&pk); + ret = mbedtls_pk_parse_key(&pk, Data, Size, NULL, 0, + dummy_random, &ctr_drbg); if (ret == 0) { #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) { mbedtls_mpi N, P, Q, D, E, DP, DQ, QP; mbedtls_rsa_context *rsa; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - rsa = mbedtls_pk_rsa( pk ); - if ( mbedtls_rsa_export( rsa, &N, &P, &Q, &D, &E ) != 0 ) { + rsa = mbedtls_pk_rsa(pk); + if (mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E) != 0) { abort(); } - if ( mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) != 0 ) { + if (mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP) != 0) { abort(); } - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); - } - else + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY || - mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY_DH ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk ); + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY || + mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY_DH) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk); mbedtls_ecp_group_id grp_id = ecp->grp.id; const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_grp_id( grp_id ); + mbedtls_ecp_curve_info_from_grp_id(grp_id); /* If the curve is not supported, the key should not have been * accepted. */ - if( curve_info == NULL ) - abort( ); - } - else + if (curve_info == NULL) { + abort(); + } + } else #endif { /* The key is valid but is not of a supported type. * This should not happen. */ - abort( ); + abort(); } } - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); #else (void) Data; (void) Size; diff --git a/programs/fuzz/fuzz_pubkey.c b/programs/fuzz/fuzz_pubkey.c index 655d5d615..7f5e4aa0b 100644 --- a/programs/fuzz/fuzz_pubkey.c +++ b/programs/fuzz/fuzz_pubkey.c @@ -4,70 +4,69 @@ #include #include "mbedtls/pk.h" -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #ifdef MBEDTLS_PK_PARSE_C int ret; mbedtls_pk_context pk; - mbedtls_pk_init( &pk ); - ret = mbedtls_pk_parse_public_key( &pk, Data, Size ); + mbedtls_pk_init(&pk); + ret = mbedtls_pk_parse_public_key(&pk, Data, Size); if (ret == 0) { #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA ) - { + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) { mbedtls_mpi N, P, Q, D, E, DP, DQ, QP; mbedtls_rsa_context *rsa; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - rsa = mbedtls_pk_rsa( pk ); - if ( mbedtls_rsa_export( rsa, &N, NULL, NULL, NULL, &E ) != 0 ) { + rsa = mbedtls_pk_rsa(pk); + if (mbedtls_rsa_export(rsa, &N, NULL, NULL, NULL, &E) != 0) { abort(); } - if ( mbedtls_rsa_export( rsa, &N, &P, &Q, &D, &E ) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) { + if (mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA) { abort(); } - if ( mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA ) { + if (mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP) != MBEDTLS_ERR_RSA_BAD_INPUT_DATA) { abort(); } - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - } - else + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY || - mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY_DH ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk ); + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY || + mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY_DH) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk); mbedtls_ecp_group_id grp_id = ecp->grp.id; const mbedtls_ecp_curve_info *curve_info = - mbedtls_ecp_curve_info_from_grp_id( grp_id ); + mbedtls_ecp_curve_info_from_grp_id(grp_id); /* If the curve is not supported, the key should not have been * accepted. */ - if( curve_info == NULL ) - abort( ); + if (curve_info == NULL) { + abort(); + } /* It's a public key, so the private value should not have * been changed from its initialization to 0. */ - if( mbedtls_mpi_cmp_int( &ecp->d, 0 ) != 0 ) - abort( ); - } - else + if (mbedtls_mpi_cmp_int(&ecp->d, 0) != 0) { + abort(); + } + } else #endif { /* The key is valid but is not of a supported type. * This should not happen. */ - abort( ); + abort(); } } - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); #else (void) Data; (void) Size; diff --git a/programs/fuzz/fuzz_server.c b/programs/fuzz/fuzz_server.c index 95f43b8ff..cd021e1b4 100644 --- a/programs/fuzz/fuzz_server.c +++ b/programs/fuzz/fuzz_server.c @@ -32,7 +32,8 @@ const char psk_id[] = "Client_identity"; #endif // MBEDTLS_SSL_SRV_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #if defined(MBEDTLS_SSL_SRV_C) && \ defined(MBEDTLS_ENTROPY_C) && \ defined(MBEDTLS_CTR_DRBG_C) @@ -55,28 +56,32 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { } options = Data[Size - 1]; - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, dummy_entropy, &entropy, - ( const unsigned char * ) pers, strlen( pers ) ) != 0 ) + if (mbedtls_ctr_drbg_seed(&ctr_drbg, dummy_entropy, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { return 1; + } if (initialized == 0) { #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_x509_crt_init( &srvcert ); - mbedtls_pk_init( &pkey ); - if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ) != 0) + mbedtls_x509_crt_init(&srvcert); + mbedtls_pk_init(&pkey); + if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len) != 0) { return 1; - if (mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ) != 0) + } + if (mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len) != 0) { return 1; - if (mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, + } + if (mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key, mbedtls_test_srv_key_len, NULL, 0, - dummy_random, &ctr_drbg ) != 0) + dummy_random, &ctr_drbg) != 0) { return 1; + } #endif alpn_list[0] = "HTTP"; @@ -87,99 +92,108 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { initialized = 1; } - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - mbedtls_ssl_ticket_init( &ticket_ctx ); + mbedtls_ssl_ticket_init(&ticket_ctx); #endif - if( mbedtls_ssl_config_defaults( &conf, + if (mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_SERVER, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) != 0 ) + MBEDTLS_SSL_PRESET_DEFAULT) != 0) { goto exit; + } srand(1); - mbedtls_ssl_conf_rng( &conf, dummy_random, &ctr_drbg ); + mbedtls_ssl_conf_rng(&conf, dummy_random, &ctr_drbg); #if defined(MBEDTLS_X509_CRT_PARSE_C) && defined(MBEDTLS_PEM_PARSE_C) - mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL ); - if( mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) != 0 ) + mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL); + if (mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey) != 0) { goto exit; + } #endif - mbedtls_ssl_conf_cert_req_ca_list( &conf, (options & 0x1) ? MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED : MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED ); + mbedtls_ssl_conf_cert_req_ca_list(&conf, + (options & + 0x1) ? MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED : MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED); #if defined(MBEDTLS_SSL_ALPN) if (options & 0x2) { - mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ); + mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list); } #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - if( options & 0x4 ) - { - if( mbedtls_ssl_ticket_setup( &ticket_ctx, + if (options & 0x4) { + if (mbedtls_ssl_ticket_setup(&ticket_ctx, dummy_random, &ctr_drbg, MBEDTLS_CIPHER_AES_256_GCM, - 86400 ) != 0 ) + 86400) != 0) { goto exit; + } - mbedtls_ssl_conf_session_tickets_cb( &conf, + mbedtls_ssl_conf_session_tickets_cb(&conf, mbedtls_ssl_ticket_write, mbedtls_ssl_ticket_parse, - &ticket_ctx ); + &ticket_ctx); } #endif #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - mbedtls_ssl_conf_extended_master_secret( &conf, (options & 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED); + mbedtls_ssl_conf_extended_master_secret(&conf, + (options & + 0x10) ? MBEDTLS_SSL_EXTENDED_MS_DISABLED : MBEDTLS_SSL_EXTENDED_MS_ENABLED); #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - mbedtls_ssl_conf_encrypt_then_mac( &conf, (options & 0x20) ? MBEDTLS_SSL_ETM_ENABLED : MBEDTLS_SSL_ETM_DISABLED); + mbedtls_ssl_conf_encrypt_then_mac(&conf, + (options & + 0x20) ? MBEDTLS_SSL_ETM_ENABLED : MBEDTLS_SSL_ETM_DISABLED); #endif #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) if (options & 0x40) { - mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ), - (const unsigned char *) psk_id, sizeof( psk_id ) - 1 ); + mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk), + (const unsigned char *) psk_id, sizeof(psk_id) - 1); } #endif #if defined(MBEDTLS_SSL_RENEGOTIATION) - mbedtls_ssl_conf_renegotiation( &conf, (options & 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED ); + mbedtls_ssl_conf_renegotiation(&conf, + (options & + 0x80) ? MBEDTLS_SSL_RENEGOTIATION_ENABLED : MBEDTLS_SSL_RENEGOTIATION_DISABLED); #endif - if( mbedtls_ssl_setup( &ssl, &conf ) != 0 ) + if (mbedtls_ssl_setup(&ssl, &conf) != 0) { goto exit; + } biomemfuzz.Data = Data; biomemfuzz.Size = Size-1; biomemfuzz.Offset = 0; - mbedtls_ssl_set_bio( &ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &biomemfuzz, dummy_send, fuzz_recv, NULL); - mbedtls_ssl_session_reset( &ssl ); - ret = mbedtls_ssl_handshake( &ssl ); - if( ret == 0 ) - { + mbedtls_ssl_session_reset(&ssl); + ret = mbedtls_ssl_handshake(&ssl); + if (ret == 0) { //keep reading data from server until the end - do - { - len = sizeof( buf ) - 1; - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ) { continue; - else if( ret <= 0 ) + } else if (ret <= 0) { //EOF or error break; - } - while( 1 ); + } + } while (1); } exit: #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - mbedtls_ssl_ticket_free( &ticket_ctx ); + mbedtls_ssl_ticket_free(&ticket_ctx); #endif - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_free( &ssl ); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_free(&ssl); #else (void) Data; diff --git a/programs/fuzz/fuzz_x509crl.c b/programs/fuzz/fuzz_x509crl.c index 65fc37fb3..6ff0c05b2 100644 --- a/programs/fuzz/fuzz_x509crl.c +++ b/programs/fuzz/fuzz_x509crl.c @@ -3,23 +3,24 @@ #include #include "mbedtls/x509_crl.h" -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #ifdef MBEDTLS_X509_CRL_PARSE_C int ret; mbedtls_x509_crl crl; unsigned char buf[4096]; - mbedtls_x509_crl_init( &crl ); - ret = mbedtls_x509_crl_parse( &crl, Data, Size ); + mbedtls_x509_crl_init(&crl); + ret = mbedtls_x509_crl_parse(&crl, Data, Size); #if !defined(MBEDTLS_X509_REMOVE_INFO) if (ret == 0) { - ret = mbedtls_x509_crl_info( (char *) buf, sizeof( buf ) - 1, " ", &crl ); + ret = mbedtls_x509_crl_info((char *) buf, sizeof(buf) - 1, " ", &crl); } #else ((void) ret); ((void) buf); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_crl_free( &crl ); + mbedtls_x509_crl_free(&crl); #else (void) Data; (void) Size; diff --git a/programs/fuzz/fuzz_x509crt.c b/programs/fuzz/fuzz_x509crt.c index bd8bdffdb..858c1ffe3 100644 --- a/programs/fuzz/fuzz_x509crt.c +++ b/programs/fuzz/fuzz_x509crt.c @@ -3,23 +3,24 @@ #include #include "mbedtls/x509_crt.h" -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #ifdef MBEDTLS_X509_CRT_PARSE_C int ret; mbedtls_x509_crt crt; unsigned char buf[4096]; - mbedtls_x509_crt_init( &crt ); - ret = mbedtls_x509_crt_parse( &crt, Data, Size ); + mbedtls_x509_crt_init(&crt); + ret = mbedtls_x509_crt_parse(&crt, Data, Size); #if !defined(MBEDTLS_X509_REMOVE_INFO) if (ret == 0) { - ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", &crt ); + ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", &crt); } #else ((void) ret); ((void) buf); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); #else (void) Data; (void) Size; diff --git a/programs/fuzz/fuzz_x509csr.c b/programs/fuzz/fuzz_x509csr.c index a9205be53..39fb4cb0d 100644 --- a/programs/fuzz/fuzz_x509csr.c +++ b/programs/fuzz/fuzz_x509csr.c @@ -3,23 +3,24 @@ #include #include "mbedtls/x509_csr.h" -int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { +int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) +{ #ifdef MBEDTLS_X509_CSR_PARSE_C int ret; mbedtls_x509_csr csr; unsigned char buf[4096]; - mbedtls_x509_csr_init( &csr ); - ret = mbedtls_x509_csr_parse( &csr, Data, Size ); + mbedtls_x509_csr_init(&csr); + ret = mbedtls_x509_csr_parse(&csr, Data, Size); #if !defined(MBEDTLS_X509_REMOVE_INFO) if (ret == 0) { - ret = mbedtls_x509_csr_info( (char *) buf, sizeof( buf ) - 1, " ", &csr ); + ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr); } #else ((void) ret); ((void) buf); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_csr_free( &csr ); + mbedtls_x509_csr_free(&csr); #else (void) Data; (void) Size; diff --git a/programs/fuzz/onefile.c b/programs/fuzz/onefile.c index 730be36dd..4f80cdcec 100644 --- a/programs/fuzz/onefile.c +++ b/programs/fuzz/onefile.c @@ -9,9 +9,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); -int main(int argc, char** argv) +int main(int argc, char **argv) { - FILE * fp; + FILE *fp; uint8_t *Data; size_t Size; @@ -53,4 +53,3 @@ int main(int argc, char** argv) fclose(fp); return 0; } - diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c index 6f49e79be..e2e49e343 100644 --- a/programs/hash/generic_sum.c +++ b/programs/hash/generic_sum.c @@ -29,43 +29,47 @@ #endif #if !defined(MBEDTLS_MD_C) || !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -static int generic_wrapper( const mbedtls_md_info_t *md_info, char *filename, unsigned char *sum ) +static int generic_wrapper(const mbedtls_md_info_t *md_info, char *filename, unsigned char *sum) { - int ret = mbedtls_md_file( md_info, filename, sum ); + int ret = mbedtls_md_file(md_info, filename, sum); - if( ret == 1 ) - mbedtls_fprintf( stderr, "failed to open: %s\n", filename ); + if (ret == 1) { + mbedtls_fprintf(stderr, "failed to open: %s\n", filename); + } - if( ret == 2 ) - mbedtls_fprintf( stderr, "failed to read: %s\n", filename ); + if (ret == 2) { + mbedtls_fprintf(stderr, "failed to read: %s\n", filename); + } - return( ret ); + return ret; } -static int generic_print( const mbedtls_md_info_t *md_info, char *filename ) +static int generic_print(const mbedtls_md_info_t *md_info, char *filename) { int i; unsigned char sum[MBEDTLS_MD_MAX_SIZE]; - if( generic_wrapper( md_info, filename, sum ) != 0 ) - return( 1 ); + if (generic_wrapper(md_info, filename, sum) != 0) { + return 1; + } - for( i = 0; i < mbedtls_md_get_size( md_info ); i++ ) - mbedtls_printf( "%02x", sum[i] ); + for (i = 0; i < mbedtls_md_get_size(md_info); i++) { + mbedtls_printf("%02x", sum[i]); + } - mbedtls_printf( " %s\n", filename ); - return( 0 ); + mbedtls_printf(" %s\n", filename); + return 0; } -static int generic_check( const mbedtls_md_info_t *md_info, char *filename ) +static int generic_check(const mbedtls_md_info_t *md_info, char *filename) { int i; size_t n; @@ -81,141 +85,137 @@ static int generic_check( const mbedtls_md_info_t *md_info, char *filename ) char buf[MBEDTLS_MD_MAX_SIZE * 2 + 1]; #endif - if( ( f = fopen( filename, "rb" ) ) == NULL ) - { - mbedtls_printf( "failed to open: %s\n", filename ); - return( 1 ); + if ((f = fopen(filename, "rb")) == NULL) { + mbedtls_printf("failed to open: %s\n", filename); + return 1; } nb_err1 = nb_err2 = 0; nb_tot1 = nb_tot2 = 0; - memset( line, 0, sizeof( line ) ); + memset(line, 0, sizeof(line)); - n = sizeof( line ); + n = sizeof(line); - while( fgets( line, (int) n - 1, f ) != NULL ) - { - n = strlen( line ); + while (fgets(line, (int) n - 1, f) != NULL) { + n = strlen(line); - if( n < (size_t) 2 * mbedtls_md_get_size( md_info ) + 4 ) - { - mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name( md_info )); + if (n < (size_t) 2 * mbedtls_md_get_size(md_info) + 4) { + mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name(md_info)); continue; } - if( line[2 * mbedtls_md_get_size( md_info )] != ' ' || line[2 * mbedtls_md_get_size( md_info ) + 1] != ' ' ) - { - mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name( md_info )); + if (line[2 * mbedtls_md_get_size(md_info)] != ' ' || + line[2 * mbedtls_md_get_size(md_info) + 1] != ' ') { + mbedtls_printf("No '%s' hash found on line.\n", mbedtls_md_get_name(md_info)); continue; } - if( line[n - 1] == '\n' ) { n--; line[n] = '\0'; } - if( line[n - 1] == '\r' ) { n--; line[n] = '\0'; } + if (line[n - 1] == '\n') { + n--; line[n] = '\0'; + } + if (line[n - 1] == '\r') { + n--; line[n] = '\0'; + } nb_tot1++; - if( generic_wrapper( md_info, line + 2 + 2 * mbedtls_md_get_size( md_info ), sum ) != 0 ) - { + if (generic_wrapper(md_info, line + 2 + 2 * mbedtls_md_get_size(md_info), sum) != 0) { nb_err1++; continue; } nb_tot2++; - for( i = 0; i < mbedtls_md_get_size( md_info ); i++ ) - sprintf( buf + i * 2, "%02x", sum[i] ); + for (i = 0; i < mbedtls_md_get_size(md_info); i++) { + sprintf(buf + i * 2, "%02x", sum[i]); + } /* Use constant-time buffer comparison */ diff = 0; - for( i = 0; i < 2 * mbedtls_md_get_size( md_info ); i++ ) + for (i = 0; i < 2 * mbedtls_md_get_size(md_info); i++) { diff |= line[i] ^ buf[i]; - - if( diff != 0 ) - { - nb_err2++; - mbedtls_fprintf( stderr, "wrong checksum: %s\n", line + 66 ); } - n = sizeof( line ); + if (diff != 0) { + nb_err2++; + mbedtls_fprintf(stderr, "wrong checksum: %s\n", line + 66); + } + + n = sizeof(line); } - if( nb_err1 != 0 ) - { - mbedtls_printf( "WARNING: %d (out of %d) input files could " - "not be read\n", nb_err1, nb_tot1 ); + if (nb_err1 != 0) { + mbedtls_printf("WARNING: %d (out of %d) input files could " + "not be read\n", nb_err1, nb_tot1); } - if( nb_err2 != 0 ) - { - mbedtls_printf( "WARNING: %d (out of %d) computed checksums did " - "not match\n", nb_err2, nb_tot2 ); + if (nb_err2 != 0) { + mbedtls_printf("WARNING: %d (out of %d) computed checksums did " + "not match\n", nb_err2, nb_tot2); } - fclose( f ); + fclose(f); - return( nb_err1 != 0 || nb_err2 != 0 ); + return nb_err1 != 0 || nb_err2 != 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1, i; int exit_code = MBEDTLS_EXIT_FAILURE; const mbedtls_md_info_t *md_info; mbedtls_md_context_t md_ctx; - mbedtls_md_init( &md_ctx ); + mbedtls_md_init(&md_ctx); - if( argc == 1 ) - { + if (argc == 1) { const int *list; - mbedtls_printf( "print mode: generic_sum ...\n" ); - mbedtls_printf( "check mode: generic_sum -c \n" ); + mbedtls_printf("print mode: generic_sum ...\n"); + mbedtls_printf("check mode: generic_sum -c \n"); - mbedtls_printf( "\nAvailable message digests:\n" ); + mbedtls_printf("\nAvailable message digests:\n"); list = mbedtls_md_list(); - while( *list ) - { - md_info = mbedtls_md_info_from_type( *list ); - mbedtls_printf( " %s\n", mbedtls_md_get_name( md_info ) ); + while (*list) { + md_info = mbedtls_md_info_from_type(*list); + mbedtls_printf(" %s\n", mbedtls_md_get_name(md_info)); list++; } - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } /* * Read the MD from the command line */ - md_info = mbedtls_md_info_from_string( argv[1] ); - if( md_info == NULL ) - { - mbedtls_fprintf( stderr, "Message Digest '%s' not found\n", argv[1] ); - mbedtls_exit( exit_code ); + md_info = mbedtls_md_info_from_string(argv[1]); + if (md_info == NULL) { + mbedtls_fprintf(stderr, "Message Digest '%s' not found\n", argv[1]); + mbedtls_exit(exit_code); } - if( mbedtls_md_setup( &md_ctx, md_info, 0 ) ) - { - mbedtls_fprintf( stderr, "Failed to initialize context.\n" ); - mbedtls_exit( exit_code ); + if (mbedtls_md_setup(&md_ctx, md_info, 0)) { + mbedtls_fprintf(stderr, "Failed to initialize context.\n"); + mbedtls_exit(exit_code); } ret = 0; - if( argc == 4 && strcmp( "-c", argv[2] ) == 0 ) - { - ret |= generic_check( md_info, argv[3] ); + if (argc == 4 && strcmp("-c", argv[2]) == 0) { + ret |= generic_check(md_info, argv[3]); goto exit; } - for( i = 2; i < argc; i++ ) - ret |= generic_print( md_info, argv[i] ); + for (i = 2; i < argc; i++) { + ret |= generic_print(md_info, argv[i]); + } - if ( ret == 0 ) + if (ret == 0) { exit_code = MBEDTLS_EXIT_SUCCESS; + } exit: - mbedtls_md_free( &md_ctx ); + mbedtls_md_free(&md_ctx); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_MD_C && MBEDTLS_FS_IO */ diff --git a/programs/hash/hello.c b/programs/hash/hello.c index 3ef065263..7bb27ad4a 100644 --- a/programs/hash/hello.c +++ b/programs/hash/hello.c @@ -26,30 +26,32 @@ #endif #if !defined(MBEDTLS_MD5_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_MD5_C not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( void ) +int main(void) { int i, ret; unsigned char digest[16]; char str[] = "Hello, world!"; - mbedtls_printf( "\n MD5('%s') = ", str ); + mbedtls_printf("\n MD5('%s') = ", str); - if( ( ret = mbedtls_md5( (unsigned char *) str, 13, digest ) ) != 0 ) - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); + if ((ret = mbedtls_md5((unsigned char *) str, 13, digest)) != 0) { + mbedtls_exit(MBEDTLS_EXIT_FAILURE); + } - for( i = 0; i < 16; i++ ) - mbedtls_printf( "%02x", digest[i] ); + for (i = 0; i < 16; i++) { + mbedtls_printf("%02x", digest[i]); + } - mbedtls_printf( "\n\n" ); + mbedtls_printf("\n\n"); - mbedtls_exit( MBEDTLS_EXIT_SUCCESS ); + mbedtls_exit(MBEDTLS_EXIT_SUCCESS); } #endif /* MBEDTLS_MD5_C */ diff --git a/programs/hash/md_hmac_demo.c b/programs/hash/md_hmac_demo.c index d4cc3ccd4..4c812fbd8 100644 --- a/programs/hash/md_hmac_demo.c +++ b/programs/hash/md_hmac_demo.c @@ -49,10 +49,10 @@ /* If the build options we need are not enabled, compile a placeholder. */ #if !defined(MBEDTLS_MD_C) -int main( void ) +int main(void) { - printf( "MBEDTLS_MD_C not defined\r\n" ); - return( 0 ); + printf("MBEDTLS_MD_C not defined\r\n"); + return 0; } #else @@ -69,30 +69,31 @@ const unsigned char msg2_part2[] = { 0x06, 0x06 }; const unsigned char key_bytes[32] = { 0 }; /* Print the contents of a buffer in hex */ -void print_buf( const char *title, unsigned char *buf, size_t len ) +void print_buf(const char *title, unsigned char *buf, size_t len) { - printf( "%s:", title ); - for( size_t i = 0; i < len; i++ ) - printf( " %02x", buf[i] ); - printf( "\n" ); + printf("%s:", title); + for (size_t i = 0; i < len; i++) { + printf(" %02x", buf[i]); + } + printf("\n"); } /* Run an Mbed TLS function and bail out if it fails. * A string description of the error code can be recovered with: * programs/util/strerror */ -#define CHK( expr ) \ +#define CHK(expr) \ do \ { \ - ret = ( expr ); \ - if( ret != 0 ) \ + ret = (expr); \ + if (ret != 0) \ { \ - printf( "Error %d at line %d: %s\n", \ - ret, \ - __LINE__, \ - #expr ); \ + printf("Error %d at line %d: %s\n", \ + ret, \ + __LINE__, \ + #expr); \ goto exit; \ } \ - } while( 0 ) + } while (0) /* * This function demonstrates computation of the HMAC of two messages using @@ -106,42 +107,42 @@ int hmac_demo(void) mbedtls_md_context_t ctx; - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); /* prepare context and load key */ // the last argument to setup is 1 to enable HMAC (not just hashing) - const mbedtls_md_info_t *info = mbedtls_md_info_from_type( alg ); - CHK( mbedtls_md_setup( &ctx, info, 1 ) ); - CHK( mbedtls_md_hmac_starts( &ctx, key_bytes, sizeof( key_bytes ) ) ); + const mbedtls_md_info_t *info = mbedtls_md_info_from_type(alg); + CHK(mbedtls_md_setup(&ctx, info, 1)); + CHK(mbedtls_md_hmac_starts(&ctx, key_bytes, sizeof(key_bytes))); /* compute HMAC(key, msg1_part1 | msg1_part2) */ - CHK( mbedtls_md_hmac_update( &ctx, msg1_part1, sizeof( msg1_part1 ) ) ); - CHK( mbedtls_md_hmac_update( &ctx, msg1_part2, sizeof( msg1_part2 ) ) ); - CHK( mbedtls_md_hmac_finish( &ctx, out ) ); - print_buf( "msg1", out, mbedtls_md_get_size( info ) ); + CHK(mbedtls_md_hmac_update(&ctx, msg1_part1, sizeof(msg1_part1))); + CHK(mbedtls_md_hmac_update(&ctx, msg1_part2, sizeof(msg1_part2))); + CHK(mbedtls_md_hmac_finish(&ctx, out)); + print_buf("msg1", out, mbedtls_md_get_size(info)); /* compute HMAC(key, msg2_part1 | msg2_part2) */ - CHK( mbedtls_md_hmac_reset( &ctx ) ); // prepare for new operation - CHK( mbedtls_md_hmac_update( &ctx, msg2_part1, sizeof( msg2_part1 ) ) ); - CHK( mbedtls_md_hmac_update( &ctx, msg2_part2, sizeof( msg2_part2 ) ) ); - CHK( mbedtls_md_hmac_finish( &ctx, out ) ); - print_buf( "msg2", out, mbedtls_md_get_size( info ) ); + CHK(mbedtls_md_hmac_reset(&ctx)); // prepare for new operation + CHK(mbedtls_md_hmac_update(&ctx, msg2_part1, sizeof(msg2_part1))); + CHK(mbedtls_md_hmac_update(&ctx, msg2_part2, sizeof(msg2_part2))); + CHK(mbedtls_md_hmac_finish(&ctx, out)); + print_buf("msg2", out, mbedtls_md_get_size(info)); exit: - mbedtls_md_free( &ctx ); - mbedtls_platform_zeroize( out, sizeof( out ) ); + mbedtls_md_free(&ctx); + mbedtls_platform_zeroize(out, sizeof(out)); - return( ret ); + return ret; } int main(void) { int ret; - CHK( hmac_demo() ); + CHK(hmac_demo()); exit: - return( ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE ); + return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; } #endif diff --git a/programs/pkey/dh_client.c b/programs/pkey/dh_client.c index 3619cb216..bc58a153c 100644 --- a/programs/pkey/dh_client.c +++ b/programs/pkey/dh_client.c @@ -46,18 +46,18 @@ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_SHA1_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_AES_C and/or MBEDTLS_DHM_C and/or MBEDTLS_ENTROPY_C " - "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( void ) +int main(void) { FILE *f; @@ -77,111 +77,102 @@ int main( void ) mbedtls_dhm_context dhm; mbedtls_aes_context aes; - mbedtls_net_init( &server_fd ); - mbedtls_dhm_init( &dhm ); - mbedtls_aes_init( &aes ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&server_fd); + mbedtls_dhm_init(&dhm); + mbedtls_aes_init(&aes); + mbedtls_ctr_drbg_init(&ctr_drbg); /* * 1. Setup the RNG */ - mbedtls_printf( "\n . Seeding the random number generator" ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator"); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } /* * 2. Read the server's public RSA key */ - mbedtls_printf( "\n . Reading public key from rsa_pub.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from rsa_pub.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_pub.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - mbedtls_rsa_init( &rsa ); + mbedtls_rsa_init(&rsa); - if( ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(N), 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(E), 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(N), 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(E), 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret); + fclose(f); goto exit; } - rsa.MBEDTLS_PRIVATE(len) = ( mbedtls_mpi_bitlen( &rsa.MBEDTLS_PRIVATE(N) ) + 7 ) >> 3; + rsa.MBEDTLS_PRIVATE(len) = (mbedtls_mpi_bitlen(&rsa.MBEDTLS_PRIVATE(N)) + 7) >> 3; - fclose( f ); + fclose(f); /* * 3. Initiate the connection */ - mbedtls_printf( "\n . Connecting to tcp/%s/%s", SERVER_NAME, - SERVER_PORT ); - fflush( stdout ); + mbedtls_printf("\n . Connecting to tcp/%s/%s", SERVER_NAME, + SERVER_PORT); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, SERVER_NAME, - SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, SERVER_NAME, + SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto exit; } /* * 4a. First get the buffer length */ - mbedtls_printf( "\n . Receiving the server's DH parameters" ); - fflush( stdout ); + mbedtls_printf("\n . Receiving the server's DH parameters"); + fflush(stdout); - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - if( ( ret = mbedtls_net_recv( &server_fd, buf, 2 ) ) != 2 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret ); + if ((ret = mbedtls_net_recv(&server_fd, buf, 2)) != 2) { + mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret); goto exit; } - n = buflen = ( buf[0] << 8 ) | buf[1]; - if( buflen < 1 || buflen > sizeof( buf ) ) - { - mbedtls_printf( " failed\n ! Got an invalid buffer length\n\n" ); + n = buflen = (buf[0] << 8) | buf[1]; + if (buflen < 1 || buflen > sizeof(buf)) { + mbedtls_printf(" failed\n ! Got an invalid buffer length\n\n"); goto exit; } /* * 4b. Get the DHM parameters: P, G and Ys = G^Xs mod P */ - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - if( ( ret = mbedtls_net_recv( &server_fd, buf, n ) ) != (int) n ) - { - mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret ); + if ((ret = mbedtls_net_recv(&server_fd, buf, n)) != (int) n) { + mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret); goto exit; } p = buf, end = buf + buflen; - if( ( ret = mbedtls_dhm_read_params( &dhm, &p, end ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_read_params returned %d\n\n", ret ); + if ((ret = mbedtls_dhm_read_params(&dhm, &p, end)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_read_params returned %d\n\n", ret); goto exit; } - n = mbedtls_dhm_get_len( &dhm ); - if( n < 64 || n > 512 ) - { - mbedtls_printf( " failed\n ! Invalid DHM modulus size\n\n" ); + n = mbedtls_dhm_get_len(&dhm); + if (n < 64 || n > 512) { + mbedtls_printf(" failed\n ! Invalid DHM modulus size\n\n"); goto exit; } @@ -189,65 +180,60 @@ int main( void ) * 5. Check that the server's RSA signature matches * the SHA-256 hash of (P,G,Ys) */ - mbedtls_printf( "\n . Verifying the server's RSA signature" ); - fflush( stdout ); + mbedtls_printf("\n . Verifying the server's RSA signature"); + fflush(stdout); p += 2; - if( ( n = (size_t) ( end - p ) ) != rsa.MBEDTLS_PRIVATE(len) ) - { - mbedtls_printf( " failed\n ! Invalid RSA signature size\n\n" ); + if ((n = (size_t) (end - p)) != rsa.MBEDTLS_PRIVATE(len)) { + mbedtls_printf(" failed\n ! Invalid RSA signature size\n\n"); goto exit; } - if( ( ret = mbedtls_sha1( buf, (int)( p - 2 - buf ), hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_sha1 returned %d\n\n", ret ); + if ((ret = mbedtls_sha1(buf, (int) (p - 2 - buf), hash)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_sha1 returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_rsa_pkcs1_verify( &rsa, MBEDTLS_MD_SHA256, - 32, hash, p ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_verify returned %d\n\n", ret ); + if ((ret = mbedtls_rsa_pkcs1_verify(&rsa, MBEDTLS_MD_SHA256, + 32, hash, p)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_verify returned %d\n\n", ret); goto exit; } /* * 6. Send our public value: Yc = G ^ Xc mod P */ - mbedtls_printf( "\n . Sending own public value to server" ); - fflush( stdout ); + mbedtls_printf("\n . Sending own public value to server"); + fflush(stdout); - n = mbedtls_dhm_get_len( &dhm ); - if( ( ret = mbedtls_dhm_make_public( &dhm, (int) n, buf, n, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_make_public returned %d\n\n", ret ); + n = mbedtls_dhm_get_len(&dhm); + if ((ret = mbedtls_dhm_make_public(&dhm, (int) n, buf, n, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_make_public returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_net_send( &server_fd, buf, n ) ) != (int) n ) - { - mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret ); + if ((ret = mbedtls_net_send(&server_fd, buf, n)) != (int) n) { + mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret); goto exit; } /* * 7. Derive the shared secret: K = Ys ^ Xc mod P */ - mbedtls_printf( "\n . Shared secret: " ); - fflush( stdout ); + mbedtls_printf("\n . Shared secret: "); + fflush(stdout); - if( ( ret = mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &n, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret ); + if ((ret = mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &n, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret); goto exit; } - for( n = 0; n < 16; n++ ) - mbedtls_printf( "%02x", buf[n] ); + for (n = 0; n < 16; n++) { + mbedtls_printf("%02x", buf[n]); + } /* * 8. Setup the AES-256 decryption key @@ -257,40 +243,41 @@ int main( void ) * the keying material for the encryption/decryption keys, * IVs and MACs. */ - mbedtls_printf( "...\n . Receiving and decrypting the ciphertext" ); - fflush( stdout ); + mbedtls_printf("...\n . Receiving and decrypting the ciphertext"); + fflush(stdout); - ret = mbedtls_aes_setkey_dec( &aes, buf, 256 ); - if( ret != 0 ) - goto exit; - - memset( buf, 0, sizeof( buf ) ); - - if( ( ret = mbedtls_net_recv( &server_fd, buf, 16 ) ) != 16 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret ); + ret = mbedtls_aes_setkey_dec(&aes, buf, 256); + if (ret != 0) { goto exit; } - ret = mbedtls_aes_crypt_ecb( &aes, MBEDTLS_AES_DECRYPT, buf, buf ); - if( ret != 0 ) + memset(buf, 0, sizeof(buf)); + + if ((ret = mbedtls_net_recv(&server_fd, buf, 16)) != 16) { + mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret); goto exit; + } + + ret = mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_DECRYPT, buf, buf); + if (ret != 0) { + goto exit; + } buf[16] = '\0'; - mbedtls_printf( "\n . Plaintext is \"%s\"\n\n", (char *) buf ); + mbedtls_printf("\n . Plaintext is \"%s\"\n\n", (char *) buf); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); - mbedtls_aes_free( &aes ); - mbedtls_rsa_free( &rsa ); - mbedtls_dhm_free( &dhm ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_aes_free(&aes); + mbedtls_rsa_free(&rsa); + mbedtls_dhm_free(&dhm); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_AES_C && MBEDTLS_DHM_C && MBEDTLS_ENTROPY_C && MBEDTLS_NET_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 3e81d135f..25371ba9e 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_GENPRIME) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_GENPRIME not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_GENPRIME not defined.\n"); + mbedtls_exit(0); } #else @@ -54,7 +54,7 @@ int main( void ) #define GENERATOR "4" -int main( int argc, char **argv ) +int main(int argc, char **argv) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -67,116 +67,107 @@ int main( int argc, char **argv ) int i; char *p, *q; - mbedtls_mpi_init( &G ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_mpi_init(&G); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "bits" ) == 0 ) - { - nbits = atoi( q ); - if( nbits < 0 || nbits > MBEDTLS_MPI_MAX_BITS ) + if (strcmp(p, "bits") == 0) { + nbits = atoi(q); + if (nbits < 0 || nbits > MBEDTLS_MPI_MAX_BITS) { goto usage; - } - else + } + } else { goto usage; + } } - if( ( ret = mbedtls_mpi_read_string( &G, 10, GENERATOR ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_string returned %d\n", ret ); + if ((ret = mbedtls_mpi_read_string(&G, 10, GENERATOR)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_string returned %d\n", ret); goto exit; } - mbedtls_printf( " ! Generating large primes may take minutes!\n" ); + mbedtls_printf(" ! Generating large primes may take minutes!\n"); - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n . Generating the modulus, please wait..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Generating the modulus, please wait..."); + fflush(stdout); /* * This can take a long time... */ - if( ( ret = mbedtls_mpi_gen_prime( &P, nbits, 1, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_gen_prime returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_gen_prime(&P, nbits, 1, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_gen_prime returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n . Verifying that Q = (P-1)/2 is prime..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Verifying that Q = (P-1)/2 is prime..."); + fflush(stdout); - if( ( ret = mbedtls_mpi_sub_int( &Q, &P, 1 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_sub_int returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_sub_int(&Q, &P, 1)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_sub_int returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_mpi_div_int( &Q, NULL, &Q, 2 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_div_int returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_div_int(&Q, NULL, &Q, 2)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_div_int returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_mpi_is_prime_ext( &Q, 50, mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_is_prime returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_is_prime_ext(&Q, 50, mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_is_prime returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n . Exporting the value in dh_prime.txt..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Exporting the value in dh_prime.txt..."); + fflush(stdout); - if( ( fout = fopen( "dh_prime.txt", "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create dh_prime.txt\n\n" ); + if ((fout = fopen("dh_prime.txt", "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create dh_prime.txt\n\n"); goto exit; } - if( ( ( ret = mbedtls_mpi_write_file( "P = ", &P, 16, fout ) ) != 0 ) || - ( ( ret = mbedtls_mpi_write_file( "G = ", &G, 16, fout ) ) != 0 ) ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret ); - fclose( fout ); + if (((ret = mbedtls_mpi_write_file("P = ", &P, 16, fout)) != 0) || + ((ret = mbedtls_mpi_write_file("G = ", &G, 16, fout)) != 0)) { + mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret); + fclose(fout); goto exit; } - mbedtls_printf( " ok\n\n" ); - fclose( fout ); + mbedtls_printf(" ok\n\n"); + fclose(fout); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_mpi_free( &G ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_mpi_free(&G); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C && MBEDTLS_GENPRIME */ diff --git a/programs/pkey/dh_server.c b/programs/pkey/dh_server.c index e6f53ed62..2514fc05c 100644 --- a/programs/pkey/dh_server.c +++ b/programs/pkey/dh_server.c @@ -46,18 +46,18 @@ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_SHA1_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_AES_C and/or MBEDTLS_DHM_C and/or MBEDTLS_ENTROPY_C " - "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "and/or MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( void ) +int main(void) { FILE *f; @@ -79,195 +79,181 @@ int main( void ) mbedtls_mpi N, P, Q, D, E; - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); - mbedtls_dhm_init( &dhm ); - mbedtls_aes_init( &aes ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); + mbedtls_dhm_init(&dhm); + mbedtls_aes_init(&aes); + mbedtls_ctr_drbg_init(&ctr_drbg); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); /* * 1. Setup the RNG */ - mbedtls_printf( "\n . Seeding the random number generator" ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator"); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } /* * 2a. Read the server's private RSA key */ - mbedtls_printf( "\n . Reading private key from rsa_priv.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from rsa_priv.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_priv.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - mbedtls_rsa_init( &rsa ); + mbedtls_rsa_init(&rsa); - if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", - ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", + ret); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n", + ret); goto exit; } - if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_complete(&rsa)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n", + ret); goto exit; } /* * 2b. Get the DHM modulus and generator */ - mbedtls_printf( "\n . Reading DH parameters from dh_prime.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading DH parameters from dh_prime.txt"); + fflush(stdout); - if( ( f = fopen( "dh_prime.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open dh_prime.txt\n" \ - " ! Please run dh_genprime first\n\n" ); + if ((f = fopen("dh_prime.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open dh_prime.txt\n" \ + " ! Please run dh_genprime first\n\n"); goto exit; } - if( mbedtls_mpi_read_file( &dhm.MBEDTLS_PRIVATE(P), 16, f ) != 0 || - mbedtls_mpi_read_file( &dhm.MBEDTLS_PRIVATE(G), 16, f ) != 0 ) - { - mbedtls_printf( " failed\n ! Invalid DH parameter file\n\n" ); - fclose( f ); + if (mbedtls_mpi_read_file(&dhm.MBEDTLS_PRIVATE(P), 16, f) != 0 || + mbedtls_mpi_read_file(&dhm.MBEDTLS_PRIVATE(G), 16, f) != 0) { + mbedtls_printf(" failed\n ! Invalid DH parameter file\n\n"); + fclose(f); goto exit; } - fclose( f ); + fclose(f); /* * 3. Wait for a client to connect */ - mbedtls_printf( "\n . Waiting for a remote connection" ); - fflush( stdout ); + mbedtls_printf("\n . Waiting for a remote connection"); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, NULL, SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, NULL, SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - NULL, 0, NULL ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + NULL, 0, NULL)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret); goto exit; } /* * 4. Setup the DH parameters (P,G,Ys) */ - mbedtls_printf( "\n . Sending the server's DH parameters" ); - fflush( stdout ); + mbedtls_printf("\n . Sending the server's DH parameters"); + fflush(stdout); - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - if( ( ret = mbedtls_dhm_make_params( &dhm, (int) mbedtls_mpi_size( &dhm.MBEDTLS_PRIVATE(P) ), buf, &n, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_make_params returned %d\n\n", ret ); + if ((ret = + mbedtls_dhm_make_params(&dhm, (int) mbedtls_mpi_size(&dhm.MBEDTLS_PRIVATE(P)), buf, &n, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_make_params returned %d\n\n", ret); goto exit; } /* * 5. Sign the parameters and send them */ - if( ( ret = mbedtls_sha1( buf, n, hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_sha1 returned %d\n\n", ret ); + if ((ret = mbedtls_sha1(buf, n, hash)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_sha1 returned %d\n\n", ret); goto exit; } - buf[n ] = (unsigned char)( rsa.MBEDTLS_PRIVATE(len) >> 8 ); - buf[n + 1] = (unsigned char)( rsa.MBEDTLS_PRIVATE(len) ); + buf[n] = (unsigned char) (rsa.MBEDTLS_PRIVATE(len) >> 8); + buf[n + 1] = (unsigned char) (rsa.MBEDTLS_PRIVATE(len)); - if( ( ret = mbedtls_rsa_pkcs1_sign( &rsa, NULL, NULL, MBEDTLS_MD_SHA256, - 32, hash, buf + n + 2 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_sign returned %d\n\n", ret ); + if ((ret = mbedtls_rsa_pkcs1_sign(&rsa, NULL, NULL, MBEDTLS_MD_SHA256, + 32, hash, buf + n + 2)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_sign returned %d\n\n", ret); goto exit; } buflen = n + 2 + rsa.MBEDTLS_PRIVATE(len); - buf2[0] = (unsigned char)( buflen >> 8 ); - buf2[1] = (unsigned char)( buflen ); + buf2[0] = (unsigned char) (buflen >> 8); + buf2[1] = (unsigned char) (buflen); - if( ( ret = mbedtls_net_send( &client_fd, buf2, 2 ) ) != 2 || - ( ret = mbedtls_net_send( &client_fd, buf, buflen ) ) != (int) buflen ) - { - mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret ); + if ((ret = mbedtls_net_send(&client_fd, buf2, 2)) != 2 || + (ret = mbedtls_net_send(&client_fd, buf, buflen)) != (int) buflen) { + mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret); goto exit; } /* * 6. Get the client's public value: Yc = G ^ Xc mod P */ - mbedtls_printf( "\n . Receiving the client's public value" ); - fflush( stdout ); + mbedtls_printf("\n . Receiving the client's public value"); + fflush(stdout); - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - n = mbedtls_dhm_get_len( &dhm ); - if( ( ret = mbedtls_net_recv( &client_fd, buf, n ) ) != (int) n ) - { - mbedtls_printf( " failed\n ! mbedtls_net_recv returned %d\n\n", ret ); + n = mbedtls_dhm_get_len(&dhm); + if ((ret = mbedtls_net_recv(&client_fd, buf, n)) != (int) n) { + mbedtls_printf(" failed\n ! mbedtls_net_recv returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_dhm_read_public( &dhm, buf, n ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_read_public returned %d\n\n", ret ); + if ((ret = mbedtls_dhm_read_public(&dhm, buf, n)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_read_public returned %d\n\n", ret); goto exit; } /* * 7. Derive the shared secret: K = Ys ^ Xc mod P */ - mbedtls_printf( "\n . Shared secret: " ); - fflush( stdout ); + mbedtls_printf("\n . Shared secret: "); + fflush(stdout); - if( ( ret = mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &n, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret ); + if ((ret = mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &n, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_calc_secret returned %d\n\n", ret); goto exit; } - for( n = 0; n < 16; n++ ) - mbedtls_printf( "%02x", buf[n] ); + for (n = 0; n < 16; n++) { + mbedtls_printf("%02x", buf[n]); + } /* * 8. Setup the AES-256 encryption key @@ -277,42 +263,43 @@ int main( void ) * the keying material for the encryption/decryption keys * and MACs. */ - mbedtls_printf( "...\n . Encrypting and sending the ciphertext" ); - fflush( stdout ); + mbedtls_printf("...\n . Encrypting and sending the ciphertext"); + fflush(stdout); - ret = mbedtls_aes_setkey_enc( &aes, buf, 256 ); - if( ret != 0 ) + ret = mbedtls_aes_setkey_enc(&aes, buf, 256); + if (ret != 0) { goto exit; - memcpy( buf, PLAINTEXT, 16 ); - ret = mbedtls_aes_crypt_ecb( &aes, MBEDTLS_AES_ENCRYPT, buf, buf ); - if( ret != 0 ) - goto exit; - - if( ( ret = mbedtls_net_send( &client_fd, buf, 16 ) ) != 16 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret ); + } + memcpy(buf, PLAINTEXT, 16); + ret = mbedtls_aes_crypt_ecb(&aes, MBEDTLS_AES_ENCRYPT, buf, buf); + if (ret != 0) { goto exit; } - mbedtls_printf( "\n\n" ); + if ((ret = mbedtls_net_send(&client_fd, buf, 16)) != 16) { + mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret); + goto exit; + } + + mbedtls_printf("\n\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&listen_fd); - mbedtls_aes_free( &aes ); - mbedtls_rsa_free( &rsa ); - mbedtls_dhm_free( &dhm ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_aes_free(&aes); + mbedtls_rsa_free(&rsa); + mbedtls_dhm_free(&dhm); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_AES_C && MBEDTLS_DHM_C && MBEDTLS_ENTROPY_C && MBEDTLS_NET_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && diff --git a/programs/pkey/ecdh_curve25519.c b/programs/pkey/ecdh_curve25519.c index 5dd6bddb4..d880a1a0a 100644 --- a/programs/pkey/ecdh_curve25519.c +++ b/programs/pkey/ecdh_curve25519.c @@ -24,13 +24,13 @@ #if !defined(MBEDTLS_ECDH_C) || \ !defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_ECDH_C and/or " - "MBEDTLS_ECP_DP_CURVE25519_ENABLED and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C " - "not defined\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_ECDH_C and/or " + "MBEDTLS_ECP_DP_CURVE25519_ENABLED and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C " + "not defined\n"); + mbedtls_exit(0); } #else @@ -41,7 +41,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -60,151 +60,142 @@ int main( int argc, char *argv[] ) ((void) argc); ((void) argv); - mbedtls_ecdh_init( &ctx_cli ); - mbedtls_ecdh_init( &ctx_srv ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_ecdh_init(&ctx_cli); + mbedtls_ecdh_init(&ctx_srv); + mbedtls_ctr_drbg_init(&ctr_drbg); /* * Initialize random number generation */ - mbedtls_printf( " . Seed the random number generator..." ); - fflush( stdout ); + mbedtls_printf(" . Seed the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, - &entropy, - (const unsigned char *) pers, - sizeof pers ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", - ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, + &entropy, + (const unsigned char *) pers, + sizeof pers)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", + ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * Client: initialize context and generate keypair */ - mbedtls_printf( " . Set up client context, generate EC key pair..." ); - fflush( stdout ); + mbedtls_printf(" . Set up client context, generate EC key pair..."); + fflush(stdout); - ret = mbedtls_ecdh_setup( &ctx_cli, MBEDTLS_ECP_DP_CURVE25519 ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_setup returned %d\n", ret ); + ret = mbedtls_ecdh_setup(&ctx_cli, MBEDTLS_ECP_DP_CURVE25519); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_setup returned %d\n", ret); goto exit; } - ret = mbedtls_ecdh_make_params( &ctx_cli, &cli_olen, cli_to_srv, - sizeof( cli_to_srv ), - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_make_params returned %d\n", - ret ); + ret = mbedtls_ecdh_make_params(&ctx_cli, &cli_olen, cli_to_srv, + sizeof(cli_to_srv), + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_make_params returned %d\n", + ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * Server: initialize context and generate keypair */ - mbedtls_printf( " . Server: read params, generate public key..." ); - fflush( stdout ); + mbedtls_printf(" . Server: read params, generate public key..."); + fflush(stdout); - ret = mbedtls_ecdh_read_params( &ctx_srv, &p_cli_to_srv, - p_cli_to_srv + sizeof( cli_to_srv ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_read_params returned %d\n", - ret ); + ret = mbedtls_ecdh_read_params(&ctx_srv, &p_cli_to_srv, + p_cli_to_srv + sizeof(cli_to_srv)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_read_params returned %d\n", + ret); goto exit; } - ret = mbedtls_ecdh_make_public( &ctx_srv, &srv_olen, srv_to_cli, - sizeof( srv_to_cli ), - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_make_public returned %d\n", - ret ); + ret = mbedtls_ecdh_make_public(&ctx_srv, &srv_olen, srv_to_cli, + sizeof(srv_to_cli), + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_make_public returned %d\n", + ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * Client: read public key */ - mbedtls_printf( " . Client: read public key..." ); - fflush( stdout ); + mbedtls_printf(" . Client: read public key..."); + fflush(stdout); - ret = mbedtls_ecdh_read_public( &ctx_cli, srv_to_cli, - sizeof( srv_to_cli ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_read_public returned %d\n", - ret ); + ret = mbedtls_ecdh_read_public(&ctx_cli, srv_to_cli, + sizeof(srv_to_cli)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_read_public returned %d\n", + ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * Calculate secrets */ - mbedtls_printf( " . Calculate secrets..." ); - fflush( stdout ); + mbedtls_printf(" . Calculate secrets..."); + fflush(stdout); - ret = mbedtls_ecdh_calc_secret( &ctx_cli, &cli_olen, secret_cli, - sizeof( secret_cli ), - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_calc_secret returned %d\n", - ret ); + ret = mbedtls_ecdh_calc_secret(&ctx_cli, &cli_olen, secret_cli, + sizeof(secret_cli), + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_calc_secret returned %d\n", + ret); goto exit; } - ret = mbedtls_ecdh_calc_secret( &ctx_srv, &srv_olen, secret_srv, - sizeof( secret_srv ), - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdh_calc_secret returned %d\n", - ret ); + ret = mbedtls_ecdh_calc_secret(&ctx_srv, &srv_olen, secret_srv, + sizeof(secret_srv), + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdh_calc_secret returned %d\n", + ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * Verification: are the computed secrets equal? */ - mbedtls_printf( " . Check if both calculated secrets are equal..." ); - fflush( stdout ); + mbedtls_printf(" . Check if both calculated secrets are equal..."); + fflush(stdout); - ret = memcmp( secret_srv, secret_cli, srv_olen ); - if( ret != 0 || ( cli_olen != srv_olen ) ) - { - mbedtls_printf( " failed\n ! Shared secrets not equal.\n" ); + ret = memcmp(secret_srv, secret_cli, srv_olen); + if (ret != 0 || (cli_olen != srv_olen)) { + mbedtls_printf(" failed\n ! Shared secrets not equal.\n"); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_ecdh_free( &ctx_srv ); - mbedtls_ecdh_free( &ctx_cli ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ecdh_free(&ctx_srv); + mbedtls_ecdh_free(&ctx_cli); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_ECDH_C && MBEDTLS_ECP_DP_CURVE25519_ENABLED && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index 1035bb273..be2ca90b5 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -47,46 +47,46 @@ #if !defined(MBEDTLS_ECDSA_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_ECDSA_C and/or MBEDTLS_SHA256_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined\n"); - mbedtls_exit( 0 ); + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined\n"); + mbedtls_exit(0); } #else #if defined(VERBOSE) -static void dump_buf( const char *title, unsigned char *buf, size_t len ) +static void dump_buf(const char *title, unsigned char *buf, size_t len) { size_t i; - mbedtls_printf( "%s", title ); - for( i = 0; i < len; i++ ) + mbedtls_printf("%s", title); + for (i = 0; i < len; i++) { mbedtls_printf("%c%c", "0123456789ABCDEF" [buf[i] / 16], - "0123456789ABCDEF" [buf[i] % 16] ); - mbedtls_printf( "\n" ); + "0123456789ABCDEF" [buf[i] % 16]); + } + mbedtls_printf("\n"); } -static void dump_pubkey( const char *title, mbedtls_ecdsa_context *key ) +static void dump_pubkey(const char *title, mbedtls_ecdsa_context *key) { unsigned char buf[300]; size_t len; - if( mbedtls_ecp_point_write_binary( &key->MBEDTLS_PRIVATE(grp), &key->MBEDTLS_PRIVATE(Q), - MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf ) != 0 ) - { + if (mbedtls_ecp_point_write_binary(&key->MBEDTLS_PRIVATE(grp), &key->MBEDTLS_PRIVATE(Q), + MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf) != 0) { mbedtls_printf("internal error\n"); return; } - dump_buf( title, buf, len ); + dump_buf(title, buf, len); } #else -#define dump_buf( a, b, c ) -#define dump_pubkey( a, b ) +#define dump_buf(a, b, c) +#define dump_pubkey(a, b) #endif -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -100,19 +100,18 @@ int main( int argc, char *argv[] ) const char *pers = "ecdsa"; ((void) argv); - mbedtls_ecdsa_init( &ctx_sign ); - mbedtls_ecdsa_init( &ctx_verify ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_ecdsa_init(&ctx_sign); + mbedtls_ecdsa_init(&ctx_verify); + mbedtls_ctr_drbg_init(&ctr_drbg); - memset( sig, 0, sizeof( sig ) ); - memset( message, 0x25, sizeof( message ) ); + memset(sig, 0, sizeof(sig)); + memset(message, 0x25, sizeof(message)); - if( argc != 1 ) - { - mbedtls_printf( "usage: ecdsa\n" ); + if (argc != 1) { + mbedtls_printf("usage: ecdsa\n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; @@ -121,65 +120,61 @@ int main( int argc, char *argv[] ) /* * Generate a key pair for signing */ - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n . Generating key pair..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Generating key pair..."); + fflush(stdout); - if( ( ret = mbedtls_ecdsa_genkey( &ctx_sign, ECPARAMS, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdsa_genkey returned %d\n", ret ); + if ((ret = mbedtls_ecdsa_genkey(&ctx_sign, ECPARAMS, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdsa_genkey returned %d\n", ret); goto exit; } - mbedtls_printf( " ok (key size: %d bits)\n", (int) ctx_sign.MBEDTLS_PRIVATE(grp).pbits ); + mbedtls_printf(" ok (key size: %d bits)\n", (int) ctx_sign.MBEDTLS_PRIVATE(grp).pbits); - dump_pubkey( " + Public key: ", &ctx_sign ); + dump_pubkey(" + Public key: ", &ctx_sign); /* * Compute message hash */ - mbedtls_printf( " . Computing message hash..." ); - fflush( stdout ); + mbedtls_printf(" . Computing message hash..."); + fflush(stdout); - if( ( ret = mbedtls_sha256( message, sizeof( message ), hash, 0 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_sha256 returned %d\n", ret ); + if ((ret = mbedtls_sha256(message, sizeof(message), hash, 0)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_sha256 returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - dump_buf( " + Hash: ", hash, sizeof( hash ) ); + dump_buf(" + Hash: ", hash, sizeof(hash)); /* * Sign message hash */ - mbedtls_printf( " . Signing message hash..." ); - fflush( stdout ); + mbedtls_printf(" . Signing message hash..."); + fflush(stdout); - if( ( ret = mbedtls_ecdsa_write_signature( &ctx_sign, MBEDTLS_MD_SHA256, - hash, sizeof( hash ), - sig, sizeof( sig ), &sig_len, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdsa_write_signature returned %d\n", ret ); + if ((ret = mbedtls_ecdsa_write_signature(&ctx_sign, MBEDTLS_MD_SHA256, + hash, sizeof(hash), + sig, sizeof(sig), &sig_len, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdsa_write_signature returned %d\n", ret); goto exit; } - mbedtls_printf( " ok (signature length = %u)\n", (unsigned int) sig_len ); + mbedtls_printf(" ok (signature length = %u)\n", (unsigned int) sig_len); - dump_buf( " + Signature: ", sig, sig_len ); + dump_buf(" + Signature: ", sig, sig_len); /* * Transfer public information to verifying context @@ -188,47 +183,47 @@ int main( int argc, char *argv[] ) * chose to use a new one in order to make it clear that the verifying * context only needs the public key (Q), and not the private key (d). */ - mbedtls_printf( " . Preparing verification context..." ); - fflush( stdout ); + mbedtls_printf(" . Preparing verification context..."); + fflush(stdout); - if( ( ret = mbedtls_ecp_group_copy( &ctx_verify.MBEDTLS_PRIVATE(grp), &ctx_sign.MBEDTLS_PRIVATE(grp) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecp_group_copy returned %d\n", ret ); + if ((ret = + mbedtls_ecp_group_copy(&ctx_verify.MBEDTLS_PRIVATE(grp), + &ctx_sign.MBEDTLS_PRIVATE(grp))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecp_group_copy returned %d\n", ret); goto exit; } - if( ( ret = mbedtls_ecp_copy( &ctx_verify.MBEDTLS_PRIVATE(Q), &ctx_sign.MBEDTLS_PRIVATE(Q) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecp_copy returned %d\n", ret ); + if ((ret = + mbedtls_ecp_copy(&ctx_verify.MBEDTLS_PRIVATE(Q), &ctx_sign.MBEDTLS_PRIVATE(Q))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecp_copy returned %d\n", ret); goto exit; } /* * Verify signature */ - mbedtls_printf( " ok\n . Verifying signature..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Verifying signature..."); + fflush(stdout); - if( ( ret = mbedtls_ecdsa_read_signature( &ctx_verify, - hash, sizeof( hash ), - sig, sig_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecdsa_read_signature returned %d\n", ret ); + if ((ret = mbedtls_ecdsa_read_signature(&ctx_verify, + hash, sizeof(hash), + sig, sig_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecdsa_read_signature returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_ecdsa_free( &ctx_verify ); - mbedtls_ecdsa_free( &ctx_sign ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ecdsa_free(&ctx_verify); + mbedtls_ecdsa_free(&ctx_sign); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_ECDSA_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && ECPARAMS */ diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 9e5329fb8..85ee4358a 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -40,8 +40,8 @@ #define DEV_RANDOM_THRESHOLD 32 -int dev_random_entropy_poll( void *data, unsigned char *output, - size_t len, size_t *olen ) +int dev_random_entropy_poll(void *data, unsigned char *output, + size_t len, size_t *olen) { FILE *file; size_t ret, left = len; @@ -50,28 +50,27 @@ int dev_random_entropy_poll( void *data, unsigned char *output, *olen = 0; - file = fopen( "/dev/random", "rb" ); - if( file == NULL ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + file = fopen("/dev/random", "rb"); + if (file == NULL) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } - while( left > 0 ) - { + while (left > 0) { /* /dev/random can return much less than requested. If so, try again */ - ret = fread( p, 1, left, file ); - if( ret == 0 && ferror( file ) ) - { - fclose( file ); - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + ret = fread(p, 1, left, file); + if (ret == 0 && ferror(file)) { + fclose(file); + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } p += ret; left -= ret; - sleep( 1 ); + sleep(1); } - fclose( file ); + fclose(file); *olen = len; - return( 0 ); + return 0; } #endif /* !_WIN32 */ #endif @@ -112,13 +111,13 @@ int dev_random_entropy_poll( void *data, unsigned char *output, #if !defined(MBEDTLS_PK_WRITE_C) || !defined(MBEDTLS_PEM_WRITE_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_PK_WRITE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_PEM_WRITE_C" - "not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_PK_WRITE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_PEM_WRITE_C" + "not defined.\n"); + mbedtls_exit(0); } #else @@ -126,8 +125,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { int type; /* the type of key to generate */ int rsa_keysize; /* length of key in bits */ int ec_curve; /* curve identifier for EC keys */ @@ -136,7 +134,7 @@ struct options int use_dev_random; /* use /dev/random as entropy source */ } opt; -static int write_private_key( mbedtls_pk_context *key, const char *output_file ) +static int write_private_key(mbedtls_pk_context *key, const char *output_file) { int ret; FILE *f; @@ -145,37 +143,36 @@ static int write_private_key( mbedtls_pk_context *key, const char *output_file ) size_t len = 0; memset(output_buf, 0, 16000); - if( opt.format == FORMAT_PEM ) - { - if( ( ret = mbedtls_pk_write_key_pem( key, output_buf, 16000 ) ) != 0 ) - return( ret ); + if (opt.format == FORMAT_PEM) { + if ((ret = mbedtls_pk_write_key_pem(key, output_buf, 16000)) != 0) { + return ret; + } - len = strlen( (char *) output_buf ); - } - else - { - if( ( ret = mbedtls_pk_write_key_der( key, output_buf, 16000 ) ) < 0 ) - return( ret ); + len = strlen((char *) output_buf); + } else { + if ((ret = mbedtls_pk_write_key_der(key, output_buf, 16000)) < 0) { + return ret; + } len = ret; c = output_buf + sizeof(output_buf) - len; } - if( ( f = fopen( output_file, "wb" ) ) == NULL ) - return( -1 ); - - if( fwrite( c, 1, len, f ) != len ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(output_file, "wb")) == NULL) { + return -1; } - fclose( f ); + if (fwrite(c, 1, len, f) != len) { + fclose(f); + return -1; + } - return( 0 ); + fclose(f); + + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -195,24 +192,24 @@ int main( int argc, char *argv[] ) * Set to sane values */ - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - mbedtls_pk_init( &key ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - memset( buf, 0, sizeof( buf ) ); + mbedtls_pk_init(&key); + mbedtls_ctr_drbg_init(&ctr_drbg); + memset(buf, 0, sizeof(buf)); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); #if defined(MBEDTLS_ECP_C) - mbedtls_printf( " available ec_curve values:\n" ); + mbedtls_printf(" available ec_curve values:\n"); curve_info = mbedtls_ecp_curve_list(); - mbedtls_printf( " %s (default)\n", curve_info->name ); - while( ( ++curve_info )->name != NULL ) - mbedtls_printf( " %s\n", curve_info->name ); + mbedtls_printf(" %s (default)\n", curve_info->name); + while ((++curve_info)->name != NULL) { + mbedtls_printf(" %s\n", curve_info->name); + } #endif /* MBEDTLS_ECP_C */ goto exit; } @@ -224,209 +221,194 @@ int main( int argc, char *argv[] ) opt.format = DFL_FORMAT; opt.use_dev_random = DFL_USE_DEV_RANDOM; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "type" ) == 0 ) - { - if( strcmp( q, "rsa" ) == 0 ) + if (strcmp(p, "type") == 0) { + if (strcmp(q, "rsa") == 0) { opt.type = MBEDTLS_PK_RSA; - else if( strcmp( q, "ec" ) == 0 ) + } else if (strcmp(q, "ec") == 0) { opt.type = MBEDTLS_PK_ECKEY; - else + } else { goto usage; - } - else if( strcmp( p, "format" ) == 0 ) - { - if( strcmp( q, "pem" ) == 0 ) + } + } else if (strcmp(p, "format") == 0) { + if (strcmp(q, "pem") == 0) { opt.format = FORMAT_PEM; - else if( strcmp( q, "der" ) == 0 ) + } else if (strcmp(q, "der") == 0) { opt.format = FORMAT_DER; - else + } else { goto usage; - } - else if( strcmp( p, "rsa_keysize" ) == 0 ) - { - opt.rsa_keysize = atoi( q ); - if( opt.rsa_keysize < 1024 || - opt.rsa_keysize > MBEDTLS_MPI_MAX_BITS ) + } + } else if (strcmp(p, "rsa_keysize") == 0) { + opt.rsa_keysize = atoi(q); + if (opt.rsa_keysize < 1024 || + opt.rsa_keysize > MBEDTLS_MPI_MAX_BITS) { goto usage; + } } #if defined(MBEDTLS_ECP_C) - else if( strcmp( p, "ec_curve" ) == 0 ) - { - if( ( curve_info = mbedtls_ecp_curve_info_from_name( q ) ) == NULL ) + else if (strcmp(p, "ec_curve") == 0) { + if ((curve_info = mbedtls_ecp_curve_info_from_name(q)) == NULL) { goto usage; + } opt.ec_curve = curve_info->grp_id; } #endif - else if( strcmp( p, "filename" ) == 0 ) + else if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "use_dev_random" ) == 0 ) - { - opt.use_dev_random = atoi( q ); - if( opt.use_dev_random < 0 || opt.use_dev_random > 1 ) + } else if (strcmp(p, "use_dev_random") == 0) { + opt.use_dev_random = atoi(q); + if (opt.use_dev_random < 0 || opt.use_dev_random > 1) { goto usage; - } - else + } + } else { goto usage; + } } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); + mbedtls_entropy_init(&entropy); #if !defined(_WIN32) && defined(MBEDTLS_FS_IO) - if( opt.use_dev_random ) - { - if( ( ret = mbedtls_entropy_add_source( &entropy, dev_random_entropy_poll, - NULL, DEV_RANDOM_THRESHOLD, - MBEDTLS_ENTROPY_SOURCE_STRONG ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_entropy_add_source returned -0x%04x\n", (unsigned int) -ret ); + if (opt.use_dev_random) { + if ((ret = mbedtls_entropy_add_source(&entropy, dev_random_entropy_poll, + NULL, DEV_RANDOM_THRESHOLD, + MBEDTLS_ENTROPY_SOURCE_STRONG)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_entropy_add_source returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf("\n Using /dev/random, so can take a long time! " ); - fflush( stdout ); + mbedtls_printf("\n Using /dev/random, so can take a long time! "); + fflush(stdout); } #endif /* !_WIN32 && MBEDTLS_FS_IO */ - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } /* * 1.1. Generate the key */ - mbedtls_printf( "\n . Generating the private key ..." ); - fflush( stdout ); + mbedtls_printf("\n . Generating the private key ..."); + fflush(stdout); - if( ( ret = mbedtls_pk_setup( &key, - mbedtls_pk_info_from_type( (mbedtls_pk_type_t) opt.type ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_setup returned -0x%04x", (unsigned int) -ret ); + if ((ret = mbedtls_pk_setup(&key, + mbedtls_pk_info_from_type((mbedtls_pk_type_t) opt.type))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_setup returned -0x%04x", (unsigned int) -ret); goto exit; } #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) - if( opt.type == MBEDTLS_PK_RSA ) - { - ret = mbedtls_rsa_gen_key( mbedtls_pk_rsa( key ), mbedtls_ctr_drbg_random, &ctr_drbg, - opt.rsa_keysize, 65537 ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_gen_key returned -0x%04x", (unsigned int) -ret ); + if (opt.type == MBEDTLS_PK_RSA) { + ret = mbedtls_rsa_gen_key(mbedtls_pk_rsa(key), mbedtls_ctr_drbg_random, &ctr_drbg, + opt.rsa_keysize, 65537); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_gen_key returned -0x%04x", + (unsigned int) -ret); goto exit; } - } - else + } else #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECP_C) - if( opt.type == MBEDTLS_PK_ECKEY ) - { - ret = mbedtls_ecp_gen_key( (mbedtls_ecp_group_id) opt.ec_curve, - mbedtls_pk_ec( key ), - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ecp_gen_key returned -0x%04x", (unsigned int) -ret ); + if (opt.type == MBEDTLS_PK_ECKEY) { + ret = mbedtls_ecp_gen_key((mbedtls_ecp_group_id) opt.ec_curve, + mbedtls_pk_ec(key), + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ecp_gen_key returned -0x%04x", + (unsigned int) -ret); goto exit; } - } - else + } else #endif /* MBEDTLS_ECP_C */ { - mbedtls_printf( " failed\n ! key type not supported\n" ); + mbedtls_printf(" failed\n ! key type not supported\n"); goto exit; } /* * 1.2 Print the key */ - mbedtls_printf( " ok\n . Key information:\n" ); + mbedtls_printf(" ok\n . Key information:\n"); #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA ) - { - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key ); + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) { + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key); - if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 || - ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 || + (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto exit; } - mbedtls_mpi_write_file( "N: ", &N, 16, NULL ); - mbedtls_mpi_write_file( "E: ", &E, 16, NULL ); - mbedtls_mpi_write_file( "D: ", &D, 16, NULL ); - mbedtls_mpi_write_file( "P: ", &P, 16, NULL ); - mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL ); - mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL ); - mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL ); - mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL ); - } - else + mbedtls_mpi_write_file("N: ", &N, 16, NULL); + mbedtls_mpi_write_file("E: ", &E, 16, NULL); + mbedtls_mpi_write_file("D: ", &D, 16, NULL); + mbedtls_mpi_write_file("P: ", &P, 16, NULL); + mbedtls_mpi_write_file("Q: ", &Q, 16, NULL); + mbedtls_mpi_write_file("DP: ", &DP, 16, NULL); + mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL); + mbedtls_mpi_write_file("QP: ", &QP, 16, NULL); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key ); - mbedtls_printf( "curve: %s\n", - mbedtls_ecp_curve_info_from_grp_id( ecp->MBEDTLS_PRIVATE(grp).id )->name ); - mbedtls_mpi_write_file( "X_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ); - mbedtls_mpi_write_file( "Y_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ); - mbedtls_mpi_write_file( "D: ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL ); - } - else + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key); + mbedtls_printf("curve: %s\n", + mbedtls_ecp_curve_info_from_grp_id(ecp->MBEDTLS_PRIVATE(grp).id)->name); + mbedtls_mpi_write_file("X_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL); + mbedtls_mpi_write_file("Y_Q: ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL); + mbedtls_mpi_write_file("D: ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL); + } else #endif - mbedtls_printf(" ! key type not supported\n"); + mbedtls_printf(" ! key type not supported\n"); /* * 1.3 Export key */ - mbedtls_printf( " . Writing key to file..." ); + mbedtls_printf(" . Writing key to file..."); - if( ( ret = write_private_key( &key, opt.filename ) ) != 0 ) - { - mbedtls_printf( " failed\n" ); + if ((ret = write_private_key(&key, opt.filename)) != 0) { + mbedtls_printf(" failed\n"); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { + if (exit_code != MBEDTLS_EXIT_SUCCESS) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, sizeof( buf ) ); - mbedtls_printf( " - %s\n", buf ); + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" - %s\n", buf); #else mbedtls_printf("\n"); #endif } - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - mbedtls_pk_free( &key ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_pk_free(&key); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_PK_WRITE_C && MBEDTLS_PEM_WRITE_C && MBEDTLS_FS_IO && * MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c index 02a19e95a..8ed88dafb 100644 --- a/programs/pkey/key_app.c +++ b/programs/pkey/key_app.c @@ -55,12 +55,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or " - "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else @@ -68,15 +68,14 @@ int main( void ) /* * global options */ -struct options -{ +struct options { int mode; /* the mode to run the application in */ const char *filename; /* filename of the key file */ const char *password; /* password for the private key */ const char *password_file; /* password_file for the private key */ } opt; -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -94,20 +93,19 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); - mbedtls_pk_init( &pk ); - memset( buf, 0, sizeof(buf) ); + mbedtls_pk_init(&pk); + memset(buf, 0, sizeof(buf)); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto cleanup; } @@ -116,206 +114,204 @@ int main( int argc, char *argv[] ) opt.password = DFL_PASSWORD; opt.password_file = DFL_PASSWORD_FILE; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "mode" ) == 0 ) - { - if( strcmp( q, "private" ) == 0 ) + if (strcmp(p, "mode") == 0) { + if (strcmp(q, "private") == 0) { opt.mode = MODE_PRIVATE; - else if( strcmp( q, "public" ) == 0 ) + } else if (strcmp(q, "public") == 0) { opt.mode = MODE_PUBLIC; - else + } else { goto usage; - } - else if( strcmp( p, "filename" ) == 0 ) + } + } else if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "password" ) == 0 ) + } else if (strcmp(p, "password") == 0) { opt.password = q; - else if( strcmp( p, "password_file" ) == 0 ) + } else if (strcmp(p, "password_file") == 0) { opt.password_file = q; - else + } else { goto usage; + } } - if( opt.mode == MODE_PRIVATE ) - { - if( strlen( opt.password ) && strlen( opt.password_file ) ) - { - mbedtls_printf( "Error: cannot have both password and password_file\n" ); + if (opt.mode == MODE_PRIVATE) { + if (strlen(opt.password) && strlen(opt.password_file)) { + mbedtls_printf("Error: cannot have both password and password_file\n"); goto usage; } - if( strlen( opt.password_file ) ) - { + if (strlen(opt.password_file)) { FILE *f; - mbedtls_printf( "\n . Loading the password file ..." ); - if( ( f = fopen( opt.password_file, "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! fopen returned NULL\n" ); + mbedtls_printf("\n . Loading the password file ..."); + if ((f = fopen(opt.password_file, "rb")) == NULL) { + mbedtls_printf(" failed\n ! fopen returned NULL\n"); goto cleanup; } - if( fgets( buf, sizeof(buf), f ) == NULL ) - { - fclose( f ); - mbedtls_printf( "Error: fgets() failed to retrieve password\n" ); + if (fgets(buf, sizeof(buf), f) == NULL) { + fclose(f); + mbedtls_printf("Error: fgets() failed to retrieve password\n"); goto cleanup; } - fclose( f ); + fclose(f); - i = (int) strlen( buf ); - if( buf[i - 1] == '\n' ) buf[i - 1] = '\0'; - if( buf[i - 2] == '\r' ) buf[i - 2] = '\0'; + i = (int) strlen(buf); + if (buf[i - 1] == '\n') { + buf[i - 1] = '\0'; + } + if (buf[i - 2] == '\r') { + buf[i - 2] = '\0'; + } opt.password = buf; } /* * 1.1. Load the key */ - mbedtls_printf( "\n . Loading the private key ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the private key ..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto cleanup; } - ret = mbedtls_pk_parse_keyfile( &pk, opt.filename, opt.password, - mbedtls_ctr_drbg_random, &ctr_drbg ); + ret = mbedtls_pk_parse_keyfile(&pk, opt.filename, opt.password, + mbedtls_ctr_drbg_random, &ctr_drbg); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", + (unsigned int) -ret); goto cleanup; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the key */ - mbedtls_printf( " . Key information ...\n" ); + mbedtls_printf(" . Key information ...\n"); #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA ) - { - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( pk ); + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) { + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(pk); - if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 || - ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 || + (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "N: ", &N, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "E: ", &E, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "D: ", &D, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "P: ", &P, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL ) ); - } - else + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("N: ", &N, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("E: ", &E, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("D: ", &D, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("P: ", &P, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q: ", &Q, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("DP: ", &DP, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("QP: ", &QP, 16, NULL)); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "D : ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL ) ); - } - else + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(X): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, + NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Y): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, + NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Z): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, + NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("D : ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL)); + } else #endif { - mbedtls_printf("Do not know how to print key information for this type\n" ); + mbedtls_printf("Do not know how to print key information for this type\n"); goto cleanup; } - } - else if( opt.mode == MODE_PUBLIC ) - { + } else if (opt.mode == MODE_PUBLIC) { /* * 1.1. Load the key */ - mbedtls_printf( "\n . Loading the public key ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the public key ..."); + fflush(stdout); - ret = mbedtls_pk_parse_public_keyfile( &pk, opt.filename ); + ret = mbedtls_pk_parse_public_keyfile(&pk, opt.filename); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", + (unsigned int) -ret); goto cleanup; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " . Key information ...\n" ); + mbedtls_printf(" . Key information ...\n"); #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_RSA ) - { - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( pk ); + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_RSA) { + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(pk); - if( ( ret = mbedtls_rsa_export( rsa, &N, NULL, NULL, - NULL, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(rsa, &N, NULL, NULL, + NULL, &E)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto cleanup; } - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "N: ", &N, 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "E: ", &E, 16, NULL ) ); - } - else + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("N: ", &N, 16, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("E: ", &E, 16, NULL)); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( pk ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ) ); - } - else + if (mbedtls_pk_get_type(&pk) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(pk); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(X): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, + NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Y): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, + NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file("Q(Z): ", + &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, + NULL)); + } else #endif { - mbedtls_printf("Do not know how to print key information for this type\n" ); + mbedtls_printf("Do not know how to print key information for this type\n"); goto cleanup; } - } - else + } else { goto usage; + } exit_code = MBEDTLS_EXIT_SUCCESS; cleanup: #if defined(MBEDTLS_ERROR_C) - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_strerror( ret, buf, sizeof( buf ) ); - mbedtls_printf( " ! Last error was: %s\n", buf ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" ! Last error was: %s\n", buf); } #endif - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_pk_free( &pk ); - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_pk_free(&pk); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c index 589bee9ae..2dbb79efe 100644 --- a/programs/pkey/key_app_writer.c +++ b/programs/pkey/key_app_writer.c @@ -83,12 +83,12 @@ !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_PK_PARSE_C and/or MBEDTLS_PK_WRITE_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_FS_IO not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_PK_PARSE_C and/or MBEDTLS_PK_WRITE_C and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_FS_IO not defined.\n"); + mbedtls_exit(0); } #else @@ -96,8 +96,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { int mode; /* the mode to run the application in */ const char *filename; /* filename of the key file */ int output_mode; /* the output mode to use */ @@ -105,7 +104,7 @@ struct options int output_format; /* the output format to use */ } opt; -static int write_public_key( mbedtls_pk_context *key, const char *output_file ) +static int write_public_key(mbedtls_pk_context *key, const char *output_file) { int ret; FILE *f; @@ -116,38 +115,38 @@ static int write_public_key( mbedtls_pk_context *key, const char *output_file ) memset(output_buf, 0, 16000); #if defined(MBEDTLS_PEM_WRITE_C) - if( opt.output_format == OUTPUT_FORMAT_PEM ) - { - if( ( ret = mbedtls_pk_write_pubkey_pem( key, output_buf, 16000 ) ) != 0 ) - return( ret ); + if (opt.output_format == OUTPUT_FORMAT_PEM) { + if ((ret = mbedtls_pk_write_pubkey_pem(key, output_buf, 16000)) != 0) { + return ret; + } - len = strlen( (char *) output_buf ); - } - else + len = strlen((char *) output_buf); + } else #endif { - if( ( ret = mbedtls_pk_write_pubkey_der( key, output_buf, 16000 ) ) < 0 ) - return( ret ); + if ((ret = mbedtls_pk_write_pubkey_der(key, output_buf, 16000)) < 0) { + return ret; + } len = ret; c = output_buf + sizeof(output_buf) - len; } - if( ( f = fopen( output_file, "w" ) ) == NULL ) - return( -1 ); - - if( fwrite( c, 1, len, f ) != len ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(output_file, "w")) == NULL) { + return -1; } - fclose( f ); + if (fwrite(c, 1, len, f) != len) { + fclose(f); + return -1; + } - return( 0 ); + fclose(f); + + return 0; } -static int write_private_key( mbedtls_pk_context *key, const char *output_file ) +static int write_private_key(mbedtls_pk_context *key, const char *output_file) { int ret; FILE *f; @@ -158,38 +157,38 @@ static int write_private_key( mbedtls_pk_context *key, const char *output_file ) memset(output_buf, 0, 16000); #if defined(MBEDTLS_PEM_WRITE_C) - if( opt.output_format == OUTPUT_FORMAT_PEM ) - { - if( ( ret = mbedtls_pk_write_key_pem( key, output_buf, 16000 ) ) != 0 ) - return( ret ); + if (opt.output_format == OUTPUT_FORMAT_PEM) { + if ((ret = mbedtls_pk_write_key_pem(key, output_buf, 16000)) != 0) { + return ret; + } - len = strlen( (char *) output_buf ); - } - else + len = strlen((char *) output_buf); + } else #endif { - if( ( ret = mbedtls_pk_write_key_der( key, output_buf, 16000 ) ) < 0 ) - return( ret ); + if ((ret = mbedtls_pk_write_key_der(key, output_buf, 16000)) < 0) { + return ret; + } len = ret; c = output_buf + sizeof(output_buf) - len; } - if( ( f = fopen( output_file, "w" ) ) == NULL ) - return( -1 ); - - if( fwrite( c, 1, len, f ) != len ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(output_file, "w")) == NULL) { + return -1; } - fclose( f ); + if (fwrite(c, 1, len, f) != len) { + fclose(f); + return -1; + } - return( 0 ); + fclose(f); + + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -209,22 +208,21 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); - mbedtls_pk_init( &key ); + mbedtls_pk_init(&key); #if defined(MBEDTLS_ERROR_C) - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); #endif - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } @@ -234,218 +232,198 @@ int main( int argc, char *argv[] ) opt.output_file = DFL_OUTPUT_FILENAME; opt.output_format = DFL_OUTPUT_FORMAT; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "mode" ) == 0 ) - { - if( strcmp( q, "private" ) == 0 ) + if (strcmp(p, "mode") == 0) { + if (strcmp(q, "private") == 0) { opt.mode = MODE_PRIVATE; - else if( strcmp( q, "public" ) == 0 ) + } else if (strcmp(q, "public") == 0) { opt.mode = MODE_PUBLIC; - else + } else { goto usage; - } - else if( strcmp( p, "output_mode" ) == 0 ) - { - if( strcmp( q, "private" ) == 0 ) + } + } else if (strcmp(p, "output_mode") == 0) { + if (strcmp(q, "private") == 0) { opt.output_mode = OUTPUT_MODE_PRIVATE; - else if( strcmp( q, "public" ) == 0 ) + } else if (strcmp(q, "public") == 0) { opt.output_mode = OUTPUT_MODE_PUBLIC; - else + } else { goto usage; - } - else if( strcmp( p, "output_format" ) == 0 ) - { + } + } else if (strcmp(p, "output_format") == 0) { #if defined(MBEDTLS_PEM_WRITE_C) - if( strcmp( q, "pem" ) == 0 ) + if (strcmp(q, "pem") == 0) { opt.output_format = OUTPUT_FORMAT_PEM; - else + } else #endif - if( strcmp( q, "der" ) == 0 ) + if (strcmp(q, "der") == 0) { opt.output_format = OUTPUT_FORMAT_DER; - else + } else { goto usage; - } - else if( strcmp( p, "filename" ) == 0 ) + } + } else if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "output_file" ) == 0 ) + } else if (strcmp(p, "output_file") == 0) { opt.output_file = q; - else + } else { goto usage; + } } - if( opt.mode == MODE_NONE && opt.output_mode != OUTPUT_MODE_NONE ) - { - mbedtls_printf( "\nCannot output a key without reading one.\n"); + if (opt.mode == MODE_NONE && opt.output_mode != OUTPUT_MODE_NONE) { + mbedtls_printf("\nCannot output a key without reading one.\n"); goto exit; } - if( opt.mode == MODE_PUBLIC && opt.output_mode == OUTPUT_MODE_PRIVATE ) - { - mbedtls_printf( "\nCannot output a private key from a public key.\n"); + if (opt.mode == MODE_PUBLIC && opt.output_mode == OUTPUT_MODE_PRIVATE) { + mbedtls_printf("\nCannot output a private key from a public key.\n"); goto exit; } - if( opt.mode == MODE_PRIVATE ) - { + if (opt.mode == MODE_PRIVATE) { /* * 1.1. Load the key */ - mbedtls_printf( "\n . Loading the private key ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the private key ..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - ret = mbedtls_pk_parse_keyfile( &key, opt.filename, NULL, - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x", (unsigned int) -ret ); + ret = mbedtls_pk_parse_keyfile(&key, opt.filename, NULL, + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the key */ - mbedtls_printf( " . Key information ...\n" ); + mbedtls_printf(" . Key information ...\n"); #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA ) - { - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key ); + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) { + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key); - if( ( ret = mbedtls_rsa_export ( rsa, &N, &P, &Q, &D, &E ) ) != 0 || - ( ret = mbedtls_rsa_export_crt( rsa, &DP, &DQ, &QP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(rsa, &N, &P, &Q, &D, &E)) != 0 || + (ret = mbedtls_rsa_export_crt(rsa, &DP, &DQ, &QP)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto exit; } - mbedtls_mpi_write_file( "N: ", &N, 16, NULL ); - mbedtls_mpi_write_file( "E: ", &E, 16, NULL ); - mbedtls_mpi_write_file( "D: ", &D, 16, NULL ); - mbedtls_mpi_write_file( "P: ", &P, 16, NULL ); - mbedtls_mpi_write_file( "Q: ", &Q, 16, NULL ); - mbedtls_mpi_write_file( "DP: ", &DP, 16, NULL ); - mbedtls_mpi_write_file( "DQ: ", &DQ, 16, NULL ); - mbedtls_mpi_write_file( "QP: ", &QP, 16, NULL ); - } - else + mbedtls_mpi_write_file("N: ", &N, 16, NULL); + mbedtls_mpi_write_file("E: ", &E, 16, NULL); + mbedtls_mpi_write_file("D: ", &D, 16, NULL); + mbedtls_mpi_write_file("P: ", &P, 16, NULL); + mbedtls_mpi_write_file("Q: ", &Q, 16, NULL); + mbedtls_mpi_write_file("DP: ", &DP, 16, NULL); + mbedtls_mpi_write_file("DQ: ", &DQ, 16, NULL); + mbedtls_mpi_write_file("QP: ", &QP, 16, NULL); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key ); - mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ); - mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ); - mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ); - mbedtls_mpi_write_file( "D : ", &ecp->MBEDTLS_PRIVATE(d) , 16, NULL ); - } - else + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key); + mbedtls_mpi_write_file("Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL); + mbedtls_mpi_write_file("Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL); + mbedtls_mpi_write_file("Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL); + mbedtls_mpi_write_file("D : ", &ecp->MBEDTLS_PRIVATE(d), 16, NULL); + } else #endif - mbedtls_printf("key type not supported yet\n"); + mbedtls_printf("key type not supported yet\n"); - } - else if( opt.mode == MODE_PUBLIC ) - { + } else if (opt.mode == MODE_PUBLIC) { /* * 1.1. Load the key */ - mbedtls_printf( "\n . Loading the public key ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the public key ..."); + fflush(stdout); - ret = mbedtls_pk_parse_public_keyfile( &key, opt.filename ); + ret = mbedtls_pk_parse_public_keyfile(&key, opt.filename); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_key returned -0x%04x", (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_key returned -0x%04x", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the key */ - mbedtls_printf( " . Key information ...\n" ); + mbedtls_printf(" . Key information ...\n"); #if defined(MBEDTLS_RSA_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA ) - { - mbedtls_rsa_context *rsa = mbedtls_pk_rsa( key ); + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) { + mbedtls_rsa_context *rsa = mbedtls_pk_rsa(key); - if( ( ret = mbedtls_rsa_export( rsa, &N, NULL, NULL, - NULL, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(rsa, &N, NULL, NULL, + NULL, &E)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto exit; } - mbedtls_mpi_write_file( "N: ", &N, 16, NULL ); - mbedtls_mpi_write_file( "E: ", &E, 16, NULL ); - } - else + mbedtls_mpi_write_file("N: ", &N, 16, NULL); + mbedtls_mpi_write_file("E: ", &E, 16, NULL); + } else #endif #if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY ) - { - mbedtls_ecp_keypair *ecp = mbedtls_pk_ec( key ); - mbedtls_mpi_write_file( "Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL ); - mbedtls_mpi_write_file( "Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL ); - mbedtls_mpi_write_file( "Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL ); - } - else + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) { + mbedtls_ecp_keypair *ecp = mbedtls_pk_ec(key); + mbedtls_mpi_write_file("Q(X): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(X), 16, NULL); + mbedtls_mpi_write_file("Q(Y): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Y), 16, NULL); + mbedtls_mpi_write_file("Q(Z): ", &ecp->MBEDTLS_PRIVATE(Q).MBEDTLS_PRIVATE(Z), 16, NULL); + } else #endif - mbedtls_printf("key type not supported yet\n"); - } - else + mbedtls_printf("key type not supported yet\n"); + } else { goto usage; - - if( opt.output_mode == OUTPUT_MODE_PUBLIC ) - { - write_public_key( &key, opt.output_file ); } - if( opt.output_mode == OUTPUT_MODE_PRIVATE ) - { - write_private_key( &key, opt.output_file ); + + if (opt.output_mode == OUTPUT_MODE_PUBLIC) { + write_public_key(&key, opt.output_file); + } + if (opt.output_mode == OUTPUT_MODE_PRIVATE) { + write_private_key(&key, opt.output_file); } exit_code = MBEDTLS_EXIT_SUCCESS; exit: - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { + if (exit_code != MBEDTLS_EXIT_SUCCESS) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, sizeof( buf ) ); - mbedtls_printf( " - %s\n", buf ); + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" - %s\n", buf); #else mbedtls_printf("\n"); #endif } - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - mbedtls_pk_free( &key ); + mbedtls_pk_free(&key); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_PK_PARSE_C && MBEDTLS_PK_WRITE_C && MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/mpi_demo.c b/programs/pkey/mpi_demo.c index 4c34b99e7..88d745e92 100644 --- a/programs/pkey/mpi_demo.c +++ b/programs/pkey/mpi_demo.c @@ -28,70 +28,69 @@ #endif #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( void ) +int main(void) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; mbedtls_mpi E, P, Q, N, H, D, X, Y, Z; - mbedtls_mpi_init( &E ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &H ); mbedtls_mpi_init( &D ); mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); - mbedtls_mpi_init( &Z ); + mbedtls_mpi_init(&E); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); mbedtls_mpi_init(&N); + mbedtls_mpi_init(&H); mbedtls_mpi_init(&D); mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); + mbedtls_mpi_init(&Z); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &P, 10, "2789" ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &Q, 10, "3203" ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &E, 10, "257" ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &N, &P, &Q ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&P, 10, "2789")); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&Q, 10, "3203")); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&E, 10, "257")); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&N, &P, &Q)); - mbedtls_printf( "\n Public key:\n\n" ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " N = ", &N, 10, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " E = ", &E, 10, NULL ) ); + mbedtls_printf("\n Public key:\n\n"); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" N = ", &N, 10, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" E = ", &E, 10, NULL)); - mbedtls_printf( "\n Private key:\n\n" ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " P = ", &P, 10, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Q = ", &Q, 10, NULL ) ); + mbedtls_printf("\n Private key:\n\n"); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" P = ", &P, 10, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Q = ", &Q, 10, NULL)); #if defined(MBEDTLS_GENPRIME) - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &P, &P, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_sub_int( &Q, &Q, 1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &H, &P, &Q ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &D, &E, &H ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&P, &P, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&Q, &Q, 1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&H, &P, &Q)); + MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&D, &E, &H)); - mbedtls_mpi_write_file( " D = E^-1 mod (P-1)*(Q-1) = ", - &D, 10, NULL ); + mbedtls_mpi_write_file(" D = E^-1 mod (P-1)*(Q-1) = ", + &D, 10, NULL); #else mbedtls_printf("\nTest skipped (MBEDTLS_GENPRIME not defined).\n\n"); #endif - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &X, 10, "55555" ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &Y, &X, &E, &N, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &Z, &Y, &D, &N, NULL ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&X, 10, "55555")); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&Y, &X, &E, &N, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&Z, &Y, &D, &N, NULL)); - mbedtls_printf( "\n RSA operation:\n\n" ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " X (plaintext) = ", &X, 10, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Y (ciphertext) = X^E mod N = ", &Y, 10, NULL ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_write_file( " Z (decrypted) = Y^D mod N = ", &Z, 10, NULL ) ); - mbedtls_printf( "\n" ); + mbedtls_printf("\n RSA operation:\n\n"); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" X (plaintext) = ", &X, 10, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Y (ciphertext) = X^E mod N = ", &Y, 10, NULL)); + MBEDTLS_MPI_CHK(mbedtls_mpi_write_file(" Z (decrypted) = Y^D mod N = ", &Z, 10, NULL)); + mbedtls_printf("\n"); exit_code = MBEDTLS_EXIT_SUCCESS; cleanup: - mbedtls_mpi_free( &E ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &H ); mbedtls_mpi_free( &D ); mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); - mbedtls_mpi_free( &Z ); + mbedtls_mpi_free(&E); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); mbedtls_mpi_free(&N); + mbedtls_mpi_free(&H); mbedtls_mpi_free(&D); mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); + mbedtls_mpi_free(&Z); - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_printf( "\nAn error occurred.\n" ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_printf("\nAn error occurred.\n"); } - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_FS_IO */ diff --git a/programs/pkey/pk_decrypt.c b/programs/pkey/pk_decrypt.c index 0d8388f2b..88626364e 100644 --- a/programs/pkey/pk_decrypt.c +++ b/programs/pkey/pk_decrypt.c @@ -36,17 +36,17 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PK_PARSE_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_PK_PARSE_C and/or " - "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -61,99 +61,93 @@ int main( int argc, char *argv[] ) const char *pers = "mbedtls_pk_decrypt"; ((void) argv); - mbedtls_pk_init( &pk ); - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_pk_init(&pk); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); - memset(result, 0, sizeof( result ) ); + memset(result, 0, sizeof(result)); - if( argc != 2 ) - { - mbedtls_printf( "usage: mbedtls_pk_decrypt \n" ); + if (argc != 2) { + mbedtls_printf("usage: mbedtls_pk_decrypt \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, - &entropy, (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, + &entropy, (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . Reading private key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "", - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "", + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%04x\n", + (unsigned int) -ret); goto exit; } /* * Extract the RSA encrypted value from the text file */ - if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); + if ((f = fopen("result-enc.txt", "rb")) == NULL) { + mbedtls_printf("\n ! Could not open %s\n\n", "result-enc.txt"); ret = 1; goto exit; } i = 0; - while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 && - i < (int) sizeof( buf ) ) - { + while (fscanf(f, "%02X", (unsigned int *) &c) > 0 && + i < (int) sizeof(buf)) { buf[i++] = (unsigned char) c; } - fclose( f ); + fclose(f); /* * Decrypt the encrypted RSA data and print the result. */ - mbedtls_printf( "\n . Decrypting the encrypted data" ); - fflush( stdout ); + mbedtls_printf("\n . Decrypting the encrypted data"); + fflush(stdout); - if( ( ret = mbedtls_pk_decrypt( &pk, buf, i, result, &olen, sizeof(result), - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_decrypt returned -0x%04x\n", - (unsigned int) -ret ); + if ((ret = mbedtls_pk_decrypt(&pk, buf, i, result, &olen, sizeof(result), + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_decrypt returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . OK\n\n" ); + mbedtls_printf("\n . OK\n\n"); - mbedtls_printf( "The decrypted result is: '%s'\n\n", result ); + mbedtls_printf("The decrypted result is: '%s'\n\n", result); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); + mbedtls_pk_free(&pk); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); #if defined(MBEDTLS_ERROR_C) - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_strerror( ret, (char *) buf, sizeof( buf ) ); - mbedtls_printf( " ! Last error was: %s\n", buf ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_strerror(ret, (char *) buf, sizeof(buf)); + mbedtls_printf(" ! Last error was: %s\n", buf); } #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/pk_encrypt.c b/programs/pkey/pk_encrypt.c index 5d45738dd..eab3f086a 100644 --- a/programs/pkey/pk_encrypt.c +++ b/programs/pkey/pk_encrypt.c @@ -36,17 +36,17 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_PK_PARSE_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_PK_PARSE_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -59,103 +59,96 @@ int main( int argc, char *argv[] ) unsigned char buf[512]; const char *pers = "mbedtls_pk_encrypt"; - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); - mbedtls_pk_init( &pk ); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); + mbedtls_pk_init(&pk); - if( argc != 3 ) - { - mbedtls_printf( "usage: mbedtls_pk_encrypt \n" ); + if (argc != 3) { + mbedtls_printf("usage: mbedtls_pk_encrypt \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, - &entropy, (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, + &entropy, (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . Reading public key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - if( strlen( argv[2] ) > 100 ) - { - mbedtls_printf( " Input data larger than 100 characters.\n\n" ); + if (strlen(argv[2]) > 100) { + mbedtls_printf(" Input data larger than 100 characters.\n\n"); goto exit; } - memcpy( input, argv[2], strlen( argv[2] ) ); + memcpy(input, argv[2], strlen(argv[2])); /* * Calculate the RSA encryption of the hash. */ - mbedtls_printf( "\n . Generating the encrypted value" ); - fflush( stdout ); + mbedtls_printf("\n . Generating the encrypted value"); + fflush(stdout); - if( ( ret = mbedtls_pk_encrypt( &pk, input, strlen( argv[2] ), - buf, &olen, sizeof(buf), - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_encrypt returned -0x%04x\n", - (unsigned int) -ret ); + if ((ret = mbedtls_pk_encrypt(&pk, input, strlen(argv[2]), + buf, &olen, sizeof(buf), + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_encrypt returned -0x%04x\n", + (unsigned int) -ret); goto exit; } /* * Write the signature into result-enc.txt */ - if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create %s\n\n", - "result-enc.txt" ); + if ((f = fopen("result-enc.txt", "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create %s\n\n", + "result-enc.txt"); ret = 1; goto exit; } - for( i = 0; i < olen; i++ ) - { - mbedtls_fprintf( f, "%02X%s", buf[i], - ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); + for (i = 0; i < olen; i++) { + mbedtls_fprintf(f, "%02X%s", buf[i], + (i + 1) % 16 == 0 ? "\r\n" : " "); } - fclose( f ); + fclose(f); - mbedtls_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); + mbedtls_printf("\n . Done (created \"%s\")\n\n", "result-enc.txt"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); - mbedtls_entropy_free( &entropy ); - mbedtls_ctr_drbg_free( &ctr_drbg ); + mbedtls_pk_free(&pk); + mbedtls_entropy_free(&entropy); + mbedtls_ctr_drbg_free(&ctr_drbg); #if defined(MBEDTLS_ERROR_C) - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_strerror( ret, (char *) buf, sizeof( buf ) ); - mbedtls_printf( " ! Last error was: %s\n", buf ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_strerror(ret, (char *) buf, sizeof(buf)); + mbedtls_printf(" ! Last error was: %s\n", buf); } #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_PK_PARSE_C && MBEDTLS_ENTROPY_C && MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/pk_sign.c b/programs/pkey/pk_sign.c index 301edb875..21a75e927 100644 --- a/programs/pkey/pk_sign.c +++ b/programs/pkey/pk_sign.c @@ -25,13 +25,13 @@ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or " - "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or " + "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else @@ -44,7 +44,7 @@ int main( void ) #include #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -58,39 +58,37 @@ int main( int argc, char *argv[] ) const char *pers = "mbedtls_pk_sign"; size_t olen = 0; - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_pk_init( &pk ); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_pk_init(&pk); - if( argc != 3 ) - { - mbedtls_printf( "usage: mbedtls_pk_sign \n" ); + if (argc != 3) { + mbedtls_printf("usage: mbedtls_pk_sign \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . Reading private key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "", - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not parse '%s'\n", argv[1] ); + if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "", + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! Could not parse '%s'\n", argv[1]); goto exit; } @@ -98,63 +96,58 @@ int main( int argc, char *argv[] ) * Compute the SHA-256 hash of the input file, * then calculate the signature of the hash. */ - mbedtls_printf( "\n . Generating the SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Generating the SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[2], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[2], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]); goto exit; } - if( ( ret = mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, 0, - buf, sizeof( buf ), &olen, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_sign returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, 0, + buf, sizeof(buf), &olen, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_sign returned -0x%04x\n", (unsigned int) -ret); goto exit; } /* * Write the signature into .sig */ - mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[2] ); + mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[2]); - if( ( f = fopen( filename, "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create %s\n\n", filename ); + if ((f = fopen(filename, "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create %s\n\n", filename); goto exit; } - if( fwrite( buf, 1, olen, f ) != olen ) - { - mbedtls_printf( "failed\n ! fwrite failed\n\n" ); - fclose( f ); + if (fwrite(buf, 1, olen, f) != olen) { + mbedtls_printf("failed\n ! fwrite failed\n\n"); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename ); + mbedtls_printf("\n . Done (created \"%s\")\n\n", filename); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_pk_free(&pk); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); #if defined(MBEDTLS_ERROR_C) - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_strerror( ret, (char *) buf, sizeof(buf) ); - mbedtls_printf( " ! Last error was: %s\n", buf ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_strerror(ret, (char *) buf, sizeof(buf)); + mbedtls_printf(" ! Last error was: %s\n", buf); } #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && diff --git a/programs/pkey/pk_verify.c b/programs/pkey/pk_verify.c index 6b9645221..b1fd1b646 100644 --- a/programs/pkey/pk_verify.c +++ b/programs/pkey/pk_verify.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_PK_PARSE_C) || \ !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_MD_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_PK_PARSE_C and/or " - "MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_SHA256_C and/or MBEDTLS_PK_PARSE_C and/or " + "MBEDTLS_FS_IO not defined.\n"); + mbedtls_exit(0); } #else @@ -41,7 +41,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -52,81 +52,76 @@ int main( int argc, char *argv[] ) unsigned char buf[MBEDTLS_PK_SIGNATURE_MAX_SIZE]; char filename[512]; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - if( argc != 3 ) - { - mbedtls_printf( "usage: mbedtls_pk_verify \n" ); + if (argc != 3) { + mbedtls_printf("usage: mbedtls_pk_verify \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Reading public key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_public_keyfile returned -0x%04x\n", + (unsigned int) -ret); goto exit; } /* * Extract the signature from the file */ - mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[2] ); + mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[2]); - if( ( f = fopen( filename, "rb" ) ) == NULL ) - { - mbedtls_printf( "\n ! Could not open %s\n\n", filename ); + if ((f = fopen(filename, "rb")) == NULL) { + mbedtls_printf("\n ! Could not open %s\n\n", filename); goto exit; } - i = fread( buf, 1, sizeof(buf), f ); + i = fread(buf, 1, sizeof(buf), f); - fclose( f ); + fclose(f); /* * Compute the SHA-256 hash of the input file and * verify the signature */ - mbedtls_printf( "\n . Verifying the SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Verifying the SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[2], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[2], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]); goto exit; } - if( ( ret = mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, hash, 0, - buf, i ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_verify returned -0x%04x\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, 0, + buf, i)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_verify returned -0x%04x\n", (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . OK (the signature is valid)\n\n" ); + mbedtls_printf("\n . OK (the signature is valid)\n\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); #if defined(MBEDTLS_ERROR_C) - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { - mbedtls_strerror( ret, (char *) buf, sizeof(buf) ); - mbedtls_printf( " ! Last error was: %s\n", buf ); + if (exit_code != MBEDTLS_EXIT_SUCCESS) { + mbedtls_strerror(ret, (char *) buf, sizeof(buf)); + mbedtls_printf(" ! Last error was: %s\n", buf); } #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO */ diff --git a/programs/pkey/rsa_decrypt.c b/programs/pkey/rsa_decrypt.c index 783f3ca54..0462ba697 100644 --- a/programs/pkey/rsa_decrypt.c +++ b/programs/pkey/rsa_decrypt.c @@ -35,17 +35,17 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_FS_IO and/or MBEDTLS_ENTROPY_C and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -61,132 +61,124 @@ int main( int argc, char *argv[] ) const char *pers = "rsa_decrypt"; ((void) argv); - memset(result, 0, sizeof( result ) ); + memset(result, 0, sizeof(result)); - if( argc != 1 ) - { - mbedtls_printf( "usage: rsa_decrypt\n" ); + if (argc != 1) { + mbedtls_printf("usage: rsa_decrypt\n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_rsa_init( &rsa ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_rsa_init(&rsa); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, - &entropy, (const unsigned char *) pers, - strlen( pers ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", - ret ); + ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, + &entropy, (const unsigned char *) pers, + strlen(pers)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", + ret); goto exit; } - mbedtls_printf( "\n . Reading private key from rsa_priv.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from rsa_priv.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_priv.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &DP , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &DQ , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &QP , 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", - ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&DP, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&DQ, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&QP, 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", + ret); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n", + ret); goto exit; } - if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_complete(&rsa)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n", + ret); goto exit; } /* * Extract the RSA encrypted value from the text file */ - if( ( f = fopen( "result-enc.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( "\n ! Could not open %s\n\n", "result-enc.txt" ); + if ((f = fopen("result-enc.txt", "rb")) == NULL) { + mbedtls_printf("\n ! Could not open %s\n\n", "result-enc.txt"); goto exit; } i = 0; - while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 && - i < (int) sizeof( buf ) ) + while (fscanf(f, "%02X", (unsigned int *) &c) > 0 && + i < (int) sizeof(buf)) { buf[i++] = (unsigned char) c; + } - fclose( f ); + fclose(f); - if( i != rsa.MBEDTLS_PRIVATE(len) ) - { - mbedtls_printf( "\n ! Invalid RSA signature format\n\n" ); + if (i != rsa.MBEDTLS_PRIVATE(len)) { + mbedtls_printf("\n ! Invalid RSA signature format\n\n"); goto exit; } /* * Decrypt the encrypted RSA data and print the result. */ - mbedtls_printf( "\n . Decrypting the encrypted data" ); - fflush( stdout ); + mbedtls_printf("\n . Decrypting the encrypted data"); + fflush(stdout); - ret = mbedtls_rsa_pkcs1_decrypt( &rsa, mbedtls_ctr_drbg_random, - &ctr_drbg, &i, - buf, result, 1024 ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_decrypt returned %d\n\n", - ret ); + ret = mbedtls_rsa_pkcs1_decrypt(&rsa, mbedtls_ctr_drbg_random, + &ctr_drbg, &i, + buf, result, 1024); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_decrypt returned %d\n\n", + ret); goto exit; } - mbedtls_printf( "\n . OK\n\n" ); + mbedtls_printf("\n . OK\n\n"); - mbedtls_printf( "The decrypted result is: '%s'\n\n", result ); + mbedtls_printf("The decrypted result is: '%s'\n\n", result); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); - mbedtls_rsa_free( &rsa ); - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); + mbedtls_rsa_free(&rsa); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_FS_IO */ diff --git a/programs/pkey/rsa_encrypt.c b/programs/pkey/rsa_encrypt.c index 777b22e79..2126a9b9b 100644 --- a/programs/pkey/rsa_encrypt.c +++ b/programs/pkey/rsa_encrypt.c @@ -34,17 +34,17 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -58,111 +58,104 @@ int main( int argc, char *argv[] ) const char *pers = "rsa_encrypt"; mbedtls_mpi N, E; - if( argc != 2 ) - { - mbedtls_printf( "usage: rsa_encrypt \n" ); + if (argc != 2) { + mbedtls_printf("usage: rsa_encrypt \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &rsa ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&rsa); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); - ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, - &entropy, (const unsigned char *) pers, - strlen( pers ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", - ret ); + ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, + &entropy, (const unsigned char *) pers, + strlen(pers)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", + ret); goto exit; } - mbedtls_printf( "\n . Reading public key from rsa_pub.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from rsa_pub.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_pub.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - if( ( ret = mbedtls_mpi_read_file( &N, 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &E, 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", - ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", + ret); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - if( ( ret = mbedtls_rsa_import( &rsa, &N, NULL, NULL, NULL, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_import(&rsa, &N, NULL, NULL, NULL, &E)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n", + ret); goto exit; } - if( strlen( argv[1] ) > 100 ) - { - mbedtls_printf( " Input data larger than 100 characters.\n\n" ); + if (strlen(argv[1]) > 100) { + mbedtls_printf(" Input data larger than 100 characters.\n\n"); goto exit; } - memcpy( input, argv[1], strlen( argv[1] ) ); + memcpy(input, argv[1], strlen(argv[1])); /* * Calculate the RSA encryption of the hash. */ - mbedtls_printf( "\n . Generating the RSA encrypted value" ); - fflush( stdout ); + mbedtls_printf("\n . Generating the RSA encrypted value"); + fflush(stdout); - ret = mbedtls_rsa_pkcs1_encrypt( &rsa, mbedtls_ctr_drbg_random, - &ctr_drbg, strlen( argv[1] ), input, buf ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_encrypt returned %d\n\n", - ret ); + ret = mbedtls_rsa_pkcs1_encrypt(&rsa, mbedtls_ctr_drbg_random, + &ctr_drbg, strlen(argv[1]), input, buf); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_encrypt returned %d\n\n", + ret); goto exit; } /* * Write the signature into result-enc.txt */ - if( ( f = fopen( "result-enc.txt", "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create %s\n\n", "result-enc.txt" ); + if ((f = fopen("result-enc.txt", "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create %s\n\n", "result-enc.txt"); goto exit; } - for( i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++ ) - mbedtls_fprintf( f, "%02X%s", buf[i], - ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); + for (i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++) { + mbedtls_fprintf(f, "%02X%s", buf[i], + (i + 1) % 16 == 0 ? "\r\n" : " "); + } - fclose( f ); + fclose(f); - mbedtls_printf( "\n . Done (created \"%s\")\n\n", "result-enc.txt" ); + mbedtls_printf("\n . Done (created \"%s\")\n\n", "result-enc.txt"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); - mbedtls_rsa_free( &rsa ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); + mbedtls_rsa_free(&rsa); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_ENTROPY_C && MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c index 7acda8139..17f6d6591 100644 --- a/programs/pkey/rsa_genkey.c +++ b/programs/pkey/rsa_genkey.c @@ -39,17 +39,17 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_ENTROPY_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_GENPRIME) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_RSA_C and/or MBEDTLS_GENPRIME and/or " - "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_RSA_C and/or MBEDTLS_GENPRIME and/or " + "MBEDTLS_FS_IO and/or MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else -int main( void ) +int main(void) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -61,98 +61,93 @@ int main( void ) FILE *fpriv = NULL; const char *pers = "rsa_genkey"; - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_rsa_init( &rsa ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_rsa_init(&rsa); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE ); - fflush( stdout ); + mbedtls_printf(" ok\n . Generating the RSA key [ %d-bit ]...", KEY_SIZE); + fflush(stdout); - if( ( ret = mbedtls_rsa_gen_key( &rsa, mbedtls_ctr_drbg_random, &ctr_drbg, KEY_SIZE, - EXPONENT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_gen_key returned %d\n\n", ret ); + if ((ret = mbedtls_rsa_gen_key(&rsa, mbedtls_ctr_drbg_random, &ctr_drbg, KEY_SIZE, + EXPONENT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_gen_key returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n . Exporting the public key in rsa_pub.txt...." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Exporting the public key in rsa_pub.txt...."); + fflush(stdout); - if( ( ret = mbedtls_rsa_export ( &rsa, &N, &P, &Q, &D, &E ) ) != 0 || - ( ret = mbedtls_rsa_export_crt( &rsa, &DP, &DQ, &QP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! could not export RSA parameters\n\n" ); + if ((ret = mbedtls_rsa_export(&rsa, &N, &P, &Q, &D, &E)) != 0 || + (ret = mbedtls_rsa_export_crt(&rsa, &DP, &DQ, &QP)) != 0) { + mbedtls_printf(" failed\n ! could not export RSA parameters\n\n"); goto exit; } - if( ( fpub = fopen( "rsa_pub.txt", "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! could not open rsa_pub.txt for writing\n\n" ); + if ((fpub = fopen("rsa_pub.txt", "wb+")) == NULL) { + mbedtls_printf(" failed\n ! could not open rsa_pub.txt for writing\n\n"); goto exit; } - if( ( ret = mbedtls_mpi_write_file( "N = ", &N, 16, fpub ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "E = ", &E, 16, fpub ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_write_file("N = ", &N, 16, fpub)) != 0 || + (ret = mbedtls_mpi_write_file("E = ", &E, 16, fpub)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n . Exporting the private key in rsa_priv.txt..." ); - fflush( stdout ); + mbedtls_printf(" ok\n . Exporting the private key in rsa_priv.txt..."); + fflush(stdout); - if( ( fpriv = fopen( "rsa_priv.txt", "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! could not open rsa_priv.txt for writing\n" ); + if ((fpriv = fopen("rsa_priv.txt", "wb+")) == NULL) { + mbedtls_printf(" failed\n ! could not open rsa_priv.txt for writing\n"); goto exit; } - if( ( ret = mbedtls_mpi_write_file( "N = " , &N , 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "E = " , &E , 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "D = " , &D , 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "P = " , &P , 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "Q = " , &Q , 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "DP = ", &DP, 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "DQ = ", &DQ, 16, fpriv ) ) != 0 || - ( ret = mbedtls_mpi_write_file( "QP = ", &QP, 16, fpriv ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret ); + if ((ret = mbedtls_mpi_write_file("N = ", &N, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("E = ", &E, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("D = ", &D, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("P = ", &P, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("Q = ", &Q, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("DP = ", &DP, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("DQ = ", &DQ, 16, fpriv)) != 0 || + (ret = mbedtls_mpi_write_file("QP = ", &QP, 16, fpriv)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_write_file returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n\n" ); + mbedtls_printf(" ok\n\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - if( fpub != NULL ) - fclose( fpub ); + if (fpub != NULL) { + fclose(fpub); + } - if( fpriv != NULL ) - fclose( fpriv ); + if (fpriv != NULL) { + fclose(fpriv); + } - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); - mbedtls_rsa_free( &rsa ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); + mbedtls_rsa_free(&rsa); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_RSA_C && MBEDTLS_GENPRIME && MBEDTLS_FS_IO && MBEDTLS_CTR_DRBG_C */ diff --git a/programs/pkey/rsa_sign.c b/programs/pkey/rsa_sign.c index f4deab029..a8418d145 100644 --- a/programs/pkey/rsa_sign.c +++ b/programs/pkey/rsa_sign.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_MD_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_MD_C and/or " + "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n"); + mbedtls_exit(0); } #else @@ -40,7 +40,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -52,67 +52,62 @@ int main( int argc, char *argv[] ) char filename[512]; mbedtls_mpi N, P, Q, D, E, DP, DQ, QP; - mbedtls_rsa_init( &rsa ); + mbedtls_rsa_init(&rsa); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &DP ); - mbedtls_mpi_init( &DQ ); mbedtls_mpi_init( &QP ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); + mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - if( argc != 2 ) - { - mbedtls_printf( "usage: rsa_sign \n" ); + if (argc != 2) { + mbedtls_printf("usage: rsa_sign \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Reading private key from rsa_priv.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from rsa_priv.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_priv.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_priv.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_priv.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_priv.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - if( ( ret = mbedtls_mpi_read_file( &N , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &E , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &D , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &P , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &Q , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &DP , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &DQ , 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &QP , 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&N, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&E, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&D, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&P, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&Q, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&DP, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&DQ, 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&QP, 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - if( ( ret = mbedtls_rsa_import( &rsa, &N, &P, &Q, &D, &E ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_import returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_import(&rsa, &N, &P, &Q, &D, &E)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_import returned %d\n\n", + ret); goto exit; } - if( ( ret = mbedtls_rsa_complete( &rsa ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_complete returned %d\n\n", - ret ); + if ((ret = mbedtls_rsa_complete(&rsa)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_complete returned %d\n\n", + ret); goto exit; } - mbedtls_printf( "\n . Checking the private key" ); - fflush( stdout ); - if( ( ret = mbedtls_rsa_check_privkey( &rsa ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_check_privkey failed with -0x%0x\n", (unsigned int) -ret ); + mbedtls_printf("\n . Checking the private key"); + fflush(stdout); + if ((ret = mbedtls_rsa_check_privkey(&rsa)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_check_privkey failed with -0x%0x\n", + (unsigned int) -ret); goto exit; } @@ -120,53 +115,52 @@ int main( int argc, char *argv[] ) * Compute the SHA-256 hash of the input file, * then calculate the RSA signature of the hash. */ - mbedtls_printf( "\n . Generating the RSA/SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Generating the RSA/SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[1], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[1], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[1]); goto exit; } - if( ( ret = mbedtls_rsa_pkcs1_sign( &rsa, NULL, NULL, MBEDTLS_MD_SHA256, - 32, hash, buf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_sign returned -0x%0x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_rsa_pkcs1_sign(&rsa, NULL, NULL, MBEDTLS_MD_SHA256, + 32, hash, buf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_sign returned -0x%0x\n\n", + (unsigned int) -ret); goto exit; } /* * Write the signature into .sig */ - mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[1] ); + mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[1]); - if( ( f = fopen( filename, "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create %s\n\n", argv[1] ); + if ((f = fopen(filename, "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create %s\n\n", argv[1]); goto exit; } - for( i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++ ) - mbedtls_fprintf( f, "%02X%s", buf[i], - ( i + 1 ) % 16 == 0 ? "\r\n" : " " ); + for (i = 0; i < rsa.MBEDTLS_PRIVATE(len); i++) { + mbedtls_fprintf(f, "%02X%s", buf[i], + (i + 1) % 16 == 0 ? "\r\n" : " "); + } - fclose( f ); + fclose(f); - mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename ); + mbedtls_printf("\n . Done (created \"%s\")\n\n", filename); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_rsa_free( &rsa ); - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &DP ); - mbedtls_mpi_free( &DQ ); mbedtls_mpi_free( &QP ); + mbedtls_rsa_free(&rsa); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); mbedtls_mpi_free(&DP); + mbedtls_mpi_free(&DQ); mbedtls_mpi_free(&QP); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && MBEDTLS_FS_IO */ diff --git a/programs/pkey/rsa_sign_pss.c b/programs/pkey/rsa_sign_pss.c index 0cbde0224..19ab962e4 100644 --- a/programs/pkey/rsa_sign_pss.c +++ b/programs/pkey/rsa_sign_pss.c @@ -25,13 +25,13 @@ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or " - "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or " + "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else @@ -45,7 +45,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -59,54 +59,49 @@ int main( int argc, char *argv[] ) const char *pers = "rsa_sign_pss"; size_t olen = 0; - mbedtls_entropy_init( &entropy ); - mbedtls_pk_init( &pk ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_entropy_init(&entropy); + mbedtls_pk_init(&pk); + mbedtls_ctr_drbg_init(&ctr_drbg); - if( argc != 3 ) - { - mbedtls_printf( "usage: rsa_sign_pss \n" ); + if (argc != 3) { + mbedtls_printf("usage: rsa_sign_pss \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( "\n . Reading private key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading private key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_keyfile( &pk, argv[1], "", - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); - mbedtls_printf( " ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret ); + if ((ret = mbedtls_pk_parse_keyfile(&pk, argv[1], "", + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! Could not read key from '%s'\n", argv[1]); + mbedtls_printf(" ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret); goto exit; } - if( !mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) ) - { - mbedtls_printf( " failed\n ! Key is not an RSA key\n" ); + if (!mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA)) { + mbedtls_printf(" failed\n ! Key is not an RSA key\n"); goto exit; } - if( ( ret = mbedtls_rsa_set_padding( mbedtls_pk_rsa( pk ), - MBEDTLS_RSA_PKCS_V21, - MBEDTLS_MD_SHA256 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Padding not supported\n" ); + if ((ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), + MBEDTLS_RSA_PKCS_V21, + MBEDTLS_MD_SHA256)) != 0) { + mbedtls_printf(" failed\n ! Padding not supported\n"); goto exit; } @@ -114,55 +109,51 @@ int main( int argc, char *argv[] ) * Compute the SHA-256 hash of the input file, * then calculate the RSA signature of the hash. */ - mbedtls_printf( "\n . Generating the RSA/SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Generating the RSA/SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[2], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[2], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]); goto exit; } - if( ( ret = mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, 0, - buf, sizeof( buf ), &olen, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_sign returned %d\n\n", ret ); + if ((ret = mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, 0, + buf, sizeof(buf), &olen, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_sign returned %d\n\n", ret); goto exit; } /* * Write the signature into .sig */ - mbedtls_snprintf( filename, 512, "%s.sig", argv[2] ); + mbedtls_snprintf(filename, 512, "%s.sig", argv[2]); - if( ( f = fopen( filename, "wb+" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not create %s\n\n", filename ); + if ((f = fopen(filename, "wb+")) == NULL) { + mbedtls_printf(" failed\n ! Could not create %s\n\n", filename); goto exit; } - if( fwrite( buf, 1, olen, f ) != olen ) - { - mbedtls_printf( "failed\n ! fwrite failed\n\n" ); - fclose( f ); + if (fwrite(buf, 1, olen, f) != olen) { + mbedtls_printf("failed\n ! fwrite failed\n\n"); + fclose(f); goto exit; } - fclose( f ); + fclose(f); - mbedtls_printf( "\n . Done (created \"%s\")\n\n", filename ); + mbedtls_printf("\n . Done (created \"%s\")\n\n", filename); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_pk_free(&pk); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && diff --git a/programs/pkey/rsa_verify.c b/programs/pkey/rsa_verify.c index a3fa6d7d1..9c08435cd 100644 --- a/programs/pkey/rsa_verify.c +++ b/programs/pkey/rsa_verify.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_SHA256_C) || !defined(MBEDTLS_MD_C) || \ !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_MD_C and/or " - "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_MD_C and/or " + "MBEDTLS_SHA256_C and/or MBEDTLS_FS_IO not defined.\n"); + mbedtls_exit(0); } #else @@ -40,7 +40,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -52,62 +52,58 @@ int main( int argc, char *argv[] ) unsigned char buf[MBEDTLS_MPI_MAX_SIZE]; char filename[512]; - mbedtls_rsa_init( &rsa ); + mbedtls_rsa_init(&rsa); - if( argc != 2 ) - { - mbedtls_printf( "usage: rsa_verify \n" ); + if (argc != 2) { + mbedtls_printf("usage: rsa_verify \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Reading public key from rsa_pub.txt" ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from rsa_pub.txt"); + fflush(stdout); - if( ( f = fopen( "rsa_pub.txt", "rb" ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Could not open rsa_pub.txt\n" \ - " ! Please run rsa_genkey first\n\n" ); + if ((f = fopen("rsa_pub.txt", "rb")) == NULL) { + mbedtls_printf(" failed\n ! Could not open rsa_pub.txt\n" \ + " ! Please run rsa_genkey first\n\n"); goto exit; } - if( ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(N), 16, f ) ) != 0 || - ( ret = mbedtls_mpi_read_file( &rsa.MBEDTLS_PRIVATE(E), 16, f ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret ); - fclose( f ); + if ((ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(N), 16, f)) != 0 || + (ret = mbedtls_mpi_read_file(&rsa.MBEDTLS_PRIVATE(E), 16, f)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_mpi_read_file returned %d\n\n", ret); + fclose(f); goto exit; } - rsa.MBEDTLS_PRIVATE(len) = ( mbedtls_mpi_bitlen( &rsa.MBEDTLS_PRIVATE(N) ) + 7 ) >> 3; + rsa.MBEDTLS_PRIVATE(len) = (mbedtls_mpi_bitlen(&rsa.MBEDTLS_PRIVATE(N)) + 7) >> 3; - fclose( f ); + fclose(f); /* * Extract the RSA signature from the text file */ - mbedtls_snprintf( filename, sizeof(filename), "%s.sig", argv[1] ); + mbedtls_snprintf(filename, sizeof(filename), "%s.sig", argv[1]); - if( ( f = fopen( filename, "rb" ) ) == NULL ) - { - mbedtls_printf( "\n ! Could not open %s\n\n", filename ); + if ((f = fopen(filename, "rb")) == NULL) { + mbedtls_printf("\n ! Could not open %s\n\n", filename); goto exit; } i = 0; - while( fscanf( f, "%02X", (unsigned int*) &c ) > 0 && - i < (int) sizeof( buf ) ) + while (fscanf(f, "%02X", (unsigned int *) &c) > 0 && + i < (int) sizeof(buf)) { buf[i++] = (unsigned char) c; + } - fclose( f ); + fclose(f); - if( i != rsa.MBEDTLS_PRIVATE(len) ) - { - mbedtls_printf( "\n ! Invalid RSA signature format\n\n" ); + if (i != rsa.MBEDTLS_PRIVATE(len)) { + mbedtls_printf("\n ! Invalid RSA signature format\n\n"); goto exit; } @@ -115,33 +111,32 @@ int main( int argc, char *argv[] ) * Compute the SHA-256 hash of the input file and * verify the signature */ - mbedtls_printf( "\n . Verifying the RSA/SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Verifying the RSA/SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[1], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[1] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[1], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[1]); goto exit; } - if( ( ret = mbedtls_rsa_pkcs1_verify( &rsa, MBEDTLS_MD_SHA256, - 32, hash, buf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_rsa_pkcs1_verify returned -0x%0x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_rsa_pkcs1_verify(&rsa, MBEDTLS_MD_SHA256, + 32, hash, buf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_rsa_pkcs1_verify returned -0x%0x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( "\n . OK (the signature is valid)\n\n" ); + mbedtls_printf("\n . OK (the signature is valid)\n\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_rsa_free( &rsa ); + mbedtls_rsa_free(&rsa); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && MBEDTLS_FS_IO */ diff --git a/programs/pkey/rsa_verify_pss.c b/programs/pkey/rsa_verify_pss.c index 7dcccda9f..df61e4712 100644 --- a/programs/pkey/rsa_verify_pss.c +++ b/programs/pkey/rsa_verify_pss.c @@ -25,13 +25,13 @@ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_MD_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or " - "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_RSA_C and/or MBEDTLS_SHA256_C and/or " + "MBEDTLS_PK_PARSE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined.\n"); + mbedtls_exit(0); } #else @@ -44,7 +44,7 @@ int main( void ) #include -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int ret = 1; @@ -55,88 +55,81 @@ int main( int argc, char *argv[] ) unsigned char buf[MBEDTLS_MPI_MAX_SIZE]; char filename[512]; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - if( argc != 3 ) - { - mbedtls_printf( "usage: rsa_verify_pss \n" ); + if (argc != 3) { + mbedtls_printf("usage: rsa_verify_pss \n"); #if defined(_WIN32) - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #endif goto exit; } - mbedtls_printf( "\n . Reading public key from '%s'", argv[1] ); - fflush( stdout ); + mbedtls_printf("\n . Reading public key from '%s'", argv[1]); + fflush(stdout); - if( ( ret = mbedtls_pk_parse_public_keyfile( &pk, argv[1] ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not read key from '%s'\n", argv[1] ); - mbedtls_printf( " ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret ); + if ((ret = mbedtls_pk_parse_public_keyfile(&pk, argv[1])) != 0) { + mbedtls_printf(" failed\n ! Could not read key from '%s'\n", argv[1]); + mbedtls_printf(" ! mbedtls_pk_parse_public_keyfile returned %d\n\n", ret); goto exit; } - if( !mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) ) - { - mbedtls_printf( " failed\n ! Key is not an RSA key\n" ); + if (!mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA)) { + mbedtls_printf(" failed\n ! Key is not an RSA key\n"); goto exit; } - if( ( ret = mbedtls_rsa_set_padding( mbedtls_pk_rsa( pk ), - MBEDTLS_RSA_PKCS_V21, - MBEDTLS_MD_SHA256 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Invalid padding\n" ); + if ((ret = mbedtls_rsa_set_padding(mbedtls_pk_rsa(pk), + MBEDTLS_RSA_PKCS_V21, + MBEDTLS_MD_SHA256)) != 0) { + mbedtls_printf(" failed\n ! Invalid padding\n"); goto exit; } /* * Extract the RSA signature from the file */ - mbedtls_snprintf( filename, 512, "%s.sig", argv[2] ); + mbedtls_snprintf(filename, 512, "%s.sig", argv[2]); - if( ( f = fopen( filename, "rb" ) ) == NULL ) - { - mbedtls_printf( "\n ! Could not open %s\n\n", filename ); + if ((f = fopen(filename, "rb")) == NULL) { + mbedtls_printf("\n ! Could not open %s\n\n", filename); goto exit; } - i = fread( buf, 1, MBEDTLS_MPI_MAX_SIZE, f ); + i = fread(buf, 1, MBEDTLS_MPI_MAX_SIZE, f); - fclose( f ); + fclose(f); /* * Compute the SHA-256 hash of the input file and * verify the signature */ - mbedtls_printf( "\n . Verifying the RSA/SHA-256 signature" ); - fflush( stdout ); + mbedtls_printf("\n . Verifying the RSA/SHA-256 signature"); + fflush(stdout); - if( ( ret = mbedtls_md_file( - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ), - argv[2], hash ) ) != 0 ) - { - mbedtls_printf( " failed\n ! Could not open or read %s\n\n", argv[2] ); + if ((ret = mbedtls_md_file( + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256), + argv[2], hash)) != 0) { + mbedtls_printf(" failed\n ! Could not open or read %s\n\n", argv[2]); goto exit; } - if( ( ret = mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, hash, 0, - buf, i ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_verify returned %d\n\n", ret ); + if ((ret = mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, hash, 0, + buf, i)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_verify returned %d\n\n", ret); goto exit; } - mbedtls_printf( "\n . OK (the signature is valid)\n\n" ); + mbedtls_printf("\n . OK (the signature is valid)\n\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_SHA256_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO */ diff --git a/programs/psa/aead_demo.c b/programs/psa/aead_demo.c index 1efd13265..0c2413e61 100644 --- a/programs/psa/aead_demo.c +++ b/programs/psa/aead_demo.c @@ -57,20 +57,20 @@ !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_GCM_C) || \ !defined(MBEDTLS_CHACHAPOLY_C) || \ defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) -int main( void ) +int main(void) { - printf( "MBEDTLS_PSA_CRYPTO_C and/or " - "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or " - "MBEDTLS_CHACHAPOLY_C not defined, and/or " - "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n" ); - return( 0 ); + printf("MBEDTLS_PSA_CRYPTO_C and/or " + "MBEDTLS_AES_C and/or MBEDTLS_GCM_C and/or " + "MBEDTLS_CHACHAPOLY_C not defined, and/or " + "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n"); + return 0; } #else /* The real program starts here. */ const char usage[] = -"Usage: aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]"; + "Usage: aead_demo [aes128-gcm|aes256-gcm|aes128-gcm_8|chachapoly]"; /* Dummy data for encryption: IV/nonce, additional data, 2-part message */ const unsigned char iv1[12] = { 0x00 }; @@ -85,40 +85,41 @@ const unsigned char msg2_part1[] = { 0x13, 0x14 }; const unsigned char msg2_part2[] = { 0x15, 0x16, 0x17 }; /* Maximum total size of the messages */ -#define MSG1_SIZE ( sizeof( msg1_part1 ) + sizeof( msg1_part2 ) ) -#define MSG2_SIZE ( sizeof( msg2_part1 ) + sizeof( msg2_part2 ) ) -#define MSG_MAX_SIZE ( MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE ) +#define MSG1_SIZE (sizeof(msg1_part1) + sizeof(msg1_part2)) +#define MSG2_SIZE (sizeof(msg2_part1) + sizeof(msg2_part2)) +#define MSG_MAX_SIZE (MSG1_SIZE > MSG2_SIZE ? MSG1_SIZE : MSG2_SIZE) /* Dummy key material - never do this in production! * 32-byte is enough to all the key size supported by this program. */ const unsigned char key_bytes[32] = { 0x2a }; /* Print the contents of a buffer in hex */ -void print_buf( const char *title, uint8_t *buf, size_t len ) +void print_buf(const char *title, uint8_t *buf, size_t len) { - printf( "%s:", title ); - for( size_t i = 0; i < len; i++ ) - printf( " %02x", buf[i] ); - printf( "\n" ); + printf("%s:", title); + for (size_t i = 0; i < len; i++) { + printf(" %02x", buf[i]); + } + printf("\n"); } /* Run a PSA function and bail out if it fails. * The symbolic name of the error code can be recovered using: * programs/psa/psa_constant_name status */ -#define PSA_CHECK( expr ) \ +#define PSA_CHECK(expr) \ do \ { \ - status = ( expr ); \ - if( status != PSA_SUCCESS ) \ + status = (expr); \ + if (status != PSA_SUCCESS) \ { \ - printf( "Error %d at line %d: %s\n", \ - (int) status, \ - __LINE__, \ - #expr ); \ + printf("Error %d at line %d: %s\n", \ + (int) status, \ + __LINE__, \ + #expr); \ goto exit; \ } \ } \ - while( 0 ) + while (0) /* * Prepare encryption material: @@ -126,48 +127,48 @@ void print_buf( const char *title, uint8_t *buf, size_t len ) * - set up key * - outputs: key and algorithm, which together hold all the information */ -static psa_status_t aead_prepare( const char *info, - psa_key_id_t *key, - psa_algorithm_t *alg ) +static psa_status_t aead_prepare(const char *info, + psa_key_id_t *key, + psa_algorithm_t *alg) { psa_status_t status; /* Convert arg to alg + key_bits + key_type */ size_t key_bits; psa_key_type_t key_type; - if( strcmp( info, "aes128-gcm" ) == 0 ) { + if (strcmp(info, "aes128-gcm") == 0) { *alg = PSA_ALG_GCM; key_bits = 128; key_type = PSA_KEY_TYPE_AES; - } else if( strcmp( info, "aes256-gcm" ) == 0 ) { + } else if (strcmp(info, "aes256-gcm") == 0) { *alg = PSA_ALG_GCM; key_bits = 256; key_type = PSA_KEY_TYPE_AES; - } else if( strcmp( info, "aes128-gcm_8" ) == 0 ) { + } else if (strcmp(info, "aes128-gcm_8") == 0) { *alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 8); key_bits = 128; key_type = PSA_KEY_TYPE_AES; - } else if( strcmp( info, "chachapoly" ) == 0 ) { + } else if (strcmp(info, "chachapoly") == 0) { *alg = PSA_ALG_CHACHA20_POLY1305; key_bits = 256; key_type = PSA_KEY_TYPE_CHACHA20; } else { - puts( usage ); - return( PSA_ERROR_INVALID_ARGUMENT ); + puts(usage); + return PSA_ERROR_INVALID_ARGUMENT; } /* Prepare key attributes */ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, *alg ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, key_bits ); // optional + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, *alg); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, key_bits); // optional /* Import key */ - PSA_CHECK( psa_import_key( &attributes, key_bytes, key_bits / 8, key ) ); + PSA_CHECK(psa_import_key(&attributes, key_bytes, key_bits / 8, key)); exit: - return( status ); + return status; } /* @@ -176,14 +177,14 @@ exit: * All of this information was present in the command line argument, but his * function demonstrates how each piece can be recovered from (key, alg). */ -static void aead_info( psa_key_id_t key, psa_algorithm_t alg ) +static void aead_info(psa_key_id_t key, psa_algorithm_t alg) { psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT; - (void) psa_get_key_attributes( key, &attr ); - psa_key_type_t key_type = psa_get_key_type( &attr ); - size_t key_bits = psa_get_key_bits( &attr ); - psa_algorithm_t base_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG( alg ); - size_t tag_len = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg ); + (void) psa_get_key_attributes(key, &attr); + psa_key_type_t key_type = psa_get_key_type(&attr); + size_t key_bits = psa_get_key_bits(&attr); + psa_algorithm_t base_alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(alg); + size_t tag_len = PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg); const char *type_str = key_type == PSA_KEY_TYPE_AES ? "AES" : key_type == PSA_KEY_TYPE_CHACHA20 ? "Chacha" @@ -192,102 +193,101 @@ static void aead_info( psa_key_id_t key, psa_algorithm_t alg ) : base_alg == PSA_ALG_CHACHA20_POLY1305 ? "ChachaPoly" : "???"; - printf( "%s, %u, %s, %u\n", - type_str, (unsigned) key_bits, base_str, (unsigned) tag_len ); + printf("%s, %u, %s, %u\n", + type_str, (unsigned) key_bits, base_str, (unsigned) tag_len); } /* * Encrypt a 2-part message. */ -static int aead_encrypt( psa_key_id_t key, psa_algorithm_t alg, - const unsigned char *iv, size_t iv_len, - const unsigned char *ad, size_t ad_len, - const unsigned char *part1, size_t part1_len, - const unsigned char *part2, size_t part2_len ) +static int aead_encrypt(psa_key_id_t key, psa_algorithm_t alg, + const unsigned char *iv, size_t iv_len, + const unsigned char *ad, size_t ad_len, + const unsigned char *part1, size_t part1_len, + const unsigned char *part2, size_t part2_len) { psa_status_t status; size_t olen, olen_tag; unsigned char out[PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(MSG_MAX_SIZE)]; - unsigned char *p = out, *end = out + sizeof( out ); + unsigned char *p = out, *end = out + sizeof(out); unsigned char tag[PSA_AEAD_TAG_MAX_SIZE]; psa_aead_operation_t op = PSA_AEAD_OPERATION_INIT; - PSA_CHECK( psa_aead_encrypt_setup( &op, key, alg ) ); + PSA_CHECK(psa_aead_encrypt_setup(&op, key, alg)); - PSA_CHECK( psa_aead_set_nonce( &op, iv, iv_len ) ); - PSA_CHECK( psa_aead_update_ad( &op, ad, ad_len ) ); - PSA_CHECK( psa_aead_update( &op, part1, part1_len, p, end - p, &olen ) ); + PSA_CHECK(psa_aead_set_nonce(&op, iv, iv_len)); + PSA_CHECK(psa_aead_update_ad(&op, ad, ad_len)); + PSA_CHECK(psa_aead_update(&op, part1, part1_len, p, end - p, &olen)); p += olen; - PSA_CHECK( psa_aead_update( &op, part2, part2_len, p, end - p, &olen ) ); + PSA_CHECK(psa_aead_update(&op, part2, part2_len, p, end - p, &olen)); p += olen; - PSA_CHECK( psa_aead_finish( &op, p, end - p, &olen, - tag, sizeof( tag ), &olen_tag ) ); + PSA_CHECK(psa_aead_finish(&op, p, end - p, &olen, + tag, sizeof(tag), &olen_tag)); p += olen; - memcpy( p, tag, olen_tag ); + memcpy(p, tag, olen_tag); p += olen_tag; olen = p - out; - print_buf( "out", out, olen ); + print_buf("out", out, olen); exit: - psa_aead_abort( &op ); // required on errors, harmless on success - return( status ); + psa_aead_abort(&op); // required on errors, harmless on success + return status; } /* * AEAD demo: set up key/alg, print out info, encrypt messages. */ -static psa_status_t aead_demo( const char *info ) +static psa_status_t aead_demo(const char *info) { psa_status_t status; psa_key_id_t key; psa_algorithm_t alg; - PSA_CHECK( aead_prepare( info, &key, &alg ) ); + PSA_CHECK(aead_prepare(info, &key, &alg)); - aead_info( key, alg ); + aead_info(key, alg); - PSA_CHECK( aead_encrypt( key, alg, - iv1, sizeof( iv1 ), add_data1, sizeof( add_data1 ), - msg1_part1, sizeof( msg1_part1 ), - msg1_part2, sizeof( msg1_part2 ) ) ); - PSA_CHECK( aead_encrypt( key, alg, - iv2, sizeof( iv2 ), add_data2, sizeof( add_data2 ), - msg2_part1, sizeof( msg2_part1 ), - msg2_part2, sizeof( msg2_part2 ) ) ); + PSA_CHECK(aead_encrypt(key, alg, + iv1, sizeof(iv1), add_data1, sizeof(add_data1), + msg1_part1, sizeof(msg1_part1), + msg1_part2, sizeof(msg1_part2))); + PSA_CHECK(aead_encrypt(key, alg, + iv2, sizeof(iv2), add_data2, sizeof(add_data2), + msg2_part1, sizeof(msg2_part1), + msg2_part2, sizeof(msg2_part2))); exit: - psa_destroy_key( key ); + psa_destroy_key(key); - return( status ); + return status; } /* * Main function */ -int main( int argc, char **argv ) +int main(int argc, char **argv) { psa_status_t status = PSA_SUCCESS; /* Check usage */ - if( argc != 2 ) - { - puts( usage ); - return( EXIT_FAILURE ); + if (argc != 2) { + puts(usage); + return EXIT_FAILURE; } /* Initialize the PSA crypto library. */ - PSA_CHECK( psa_crypto_init( ) ); + PSA_CHECK(psa_crypto_init()); /* Run the demo */ - PSA_CHECK( aead_demo( argv[1] ) ); + PSA_CHECK(aead_demo(argv[1])); /* Deinitialize the PSA crypto library. */ - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); exit: - return( status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE ); + return status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE; } #endif diff --git a/programs/psa/crypto_examples.c b/programs/psa/crypto_examples.c index 935d657af..3f109d839 100644 --- a/programs/psa/crypto_examples.c +++ b/programs/psa/crypto_examples.c @@ -20,146 +20,145 @@ #include #include -#define ASSERT( predicate ) \ +#define ASSERT(predicate) \ do \ { \ - if( ! ( predicate ) ) \ + if (!(predicate)) \ { \ - printf( "\tassertion failed at %s:%d - '%s'\r\n", \ - __FILE__, __LINE__, #predicate); \ + printf("\tassertion failed at %s:%d - '%s'\r\n", \ + __FILE__, __LINE__, #predicate); \ goto exit; \ } \ - } while ( 0 ) + } while (0) -#define ASSERT_STATUS( actual, expected ) \ +#define ASSERT_STATUS(actual, expected) \ do \ { \ - if( ( actual ) != ( expected ) ) \ + if ((actual) != (expected)) \ { \ - printf( "\tassertion failed at %s:%d - " \ - "actual:%d expected:%d\r\n", __FILE__, __LINE__, \ - (psa_status_t) actual, (psa_status_t) expected ); \ + printf("\tassertion failed at %s:%d - " \ + "actual:%d expected:%d\r\n", __FILE__, __LINE__, \ + (psa_status_t) actual, (psa_status_t) expected); \ goto exit; \ } \ - } while ( 0 ) + } while (0) #if !defined(MBEDTLS_PSA_CRYPTO_C) || !defined(MBEDTLS_AES_C) || \ !defined(MBEDTLS_CIPHER_MODE_CBC) || !defined(MBEDTLS_CIPHER_MODE_CTR) || \ !defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) || \ defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) -int main( void ) +int main(void) { - printf( "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_AES_C and/or " - "MBEDTLS_CIPHER_MODE_CBC and/or MBEDTLS_CIPHER_MODE_CTR " - "and/or MBEDTLS_CIPHER_MODE_WITH_PADDING " - "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER" - " defined.\r\n" ); - return( 0 ); + printf("MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_AES_C and/or " + "MBEDTLS_CIPHER_MODE_CBC and/or MBEDTLS_CIPHER_MODE_CTR " + "and/or MBEDTLS_CIPHER_MODE_WITH_PADDING " + "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER" + " defined.\r\n"); + return 0; } #else -static psa_status_t cipher_operation( psa_cipher_operation_t *operation, - const uint8_t * input, - size_t input_size, - size_t part_size, - uint8_t * output, - size_t output_size, - size_t *output_len ) +static psa_status_t cipher_operation(psa_cipher_operation_t *operation, + const uint8_t *input, + size_t input_size, + size_t part_size, + uint8_t *output, + size_t output_size, + size_t *output_len) { psa_status_t status; size_t bytes_to_write = 0, bytes_written = 0, len = 0; *output_len = 0; - while( bytes_written != input_size ) - { - bytes_to_write = ( input_size - bytes_written > part_size ? - part_size : - input_size - bytes_written ); + while (bytes_written != input_size) { + bytes_to_write = (input_size - bytes_written > part_size ? + part_size : + input_size - bytes_written); - status = psa_cipher_update( operation, input + bytes_written, - bytes_to_write, output + *output_len, - output_size - *output_len, &len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_cipher_update(operation, input + bytes_written, + bytes_to_write, output + *output_len, + output_size - *output_len, &len); + ASSERT_STATUS(status, PSA_SUCCESS); bytes_written += bytes_to_write; *output_len += len; } - status = psa_cipher_finish( operation, output + *output_len, - output_size - *output_len, &len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_cipher_finish(operation, output + *output_len, + output_size - *output_len, &len); + ASSERT_STATUS(status, PSA_SUCCESS); *output_len += len; exit: - return( status ); + return status; } -static psa_status_t cipher_encrypt( psa_key_id_t key, - psa_algorithm_t alg, - uint8_t * iv, - size_t iv_size, - const uint8_t * input, - size_t input_size, - size_t part_size, - uint8_t * output, - size_t output_size, - size_t *output_len ) +static psa_status_t cipher_encrypt(psa_key_id_t key, + psa_algorithm_t alg, + uint8_t *iv, + size_t iv_size, + const uint8_t *input, + size_t input_size, + size_t part_size, + uint8_t *output, + size_t output_size, + size_t *output_len) { psa_status_t status; psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; size_t iv_len = 0; - memset( &operation, 0, sizeof( operation ) ); - status = psa_cipher_encrypt_setup( &operation, key, alg ); - ASSERT_STATUS( status, PSA_SUCCESS ); + memset(&operation, 0, sizeof(operation)); + status = psa_cipher_encrypt_setup(&operation, key, alg); + ASSERT_STATUS(status, PSA_SUCCESS); - status = psa_cipher_generate_iv( &operation, iv, iv_size, &iv_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_cipher_generate_iv(&operation, iv, iv_size, &iv_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_operation( &operation, input, input_size, part_size, - output, output_size, output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_operation(&operation, input, input_size, part_size, + output, output_size, output_len); + ASSERT_STATUS(status, PSA_SUCCESS); exit: - psa_cipher_abort( &operation ); - return( status ); + psa_cipher_abort(&operation); + return status; } -static psa_status_t cipher_decrypt( psa_key_id_t key, - psa_algorithm_t alg, - const uint8_t * iv, - size_t iv_size, - const uint8_t * input, - size_t input_size, - size_t part_size, - uint8_t * output, - size_t output_size, - size_t *output_len ) +static psa_status_t cipher_decrypt(psa_key_id_t key, + psa_algorithm_t alg, + const uint8_t *iv, + size_t iv_size, + const uint8_t *input, + size_t input_size, + size_t part_size, + uint8_t *output, + size_t output_size, + size_t *output_len) { psa_status_t status; psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; - memset( &operation, 0, sizeof( operation ) ); - status = psa_cipher_decrypt_setup( &operation, key, alg ); - ASSERT_STATUS( status, PSA_SUCCESS ); + memset(&operation, 0, sizeof(operation)); + status = psa_cipher_decrypt_setup(&operation, key, alg); + ASSERT_STATUS(status, PSA_SUCCESS); - status = psa_cipher_set_iv( &operation, iv, iv_size ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_cipher_set_iv(&operation, iv, iv_size); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_operation( &operation, input, input_size, part_size, - output, output_size, output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_operation(&operation, input, input_size, part_size, + output, output_size, output_len); + ASSERT_STATUS(status, PSA_SUCCESS); exit: - psa_cipher_abort( &operation ); - return( status ); + psa_cipher_abort(&operation); + return status; } static psa_status_t -cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block( void ) +cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block(void) { enum { - block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ), + block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES), key_bits = 256, part_size = block_size, }; @@ -174,40 +173,40 @@ cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block( void ) uint8_t encrypt[block_size]; uint8_t decrypt[block_size]; - status = psa_generate_random( input, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_random(input, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_AES ); - psa_set_key_bits( &attributes, key_bits ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_bits(&attributes, key_bits); - status = psa_generate_key( &attributes, &key ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_key(&attributes, &key); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_encrypt( key, alg, iv, sizeof( iv ), - input, sizeof( input ), part_size, - encrypt, sizeof( encrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_encrypt(key, alg, iv, sizeof(iv), + input, sizeof(input), part_size, + encrypt, sizeof(encrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_decrypt( key, alg, iv, sizeof( iv ), - encrypt, output_len, part_size, - decrypt, sizeof( decrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_decrypt(key, alg, iv, sizeof(iv), + encrypt, output_len, part_size, + decrypt, sizeof(decrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = memcmp( input, decrypt, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = memcmp(input, decrypt, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); exit: - psa_destroy_key( key ); - return( status ); + psa_destroy_key(key); + return status; } -static psa_status_t cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi( void ) +static psa_status_t cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi(void) { enum { - block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ), + block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES), key_bits = 256, input_size = 100, part_size = 10, @@ -222,40 +221,40 @@ static psa_status_t cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi( void ) uint8_t iv[block_size], input[input_size], encrypt[input_size + block_size], decrypt[input_size + block_size]; - status = psa_generate_random( input, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_random(input, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_AES ); - psa_set_key_bits( &attributes, key_bits ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_bits(&attributes, key_bits); - status = psa_generate_key( &attributes, &key ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_key(&attributes, &key); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_encrypt( key, alg, iv, sizeof( iv ), - input, sizeof( input ), part_size, - encrypt, sizeof( encrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_encrypt(key, alg, iv, sizeof(iv), + input, sizeof(input), part_size, + encrypt, sizeof(encrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_decrypt( key, alg, iv, sizeof( iv ), - encrypt, output_len, part_size, - decrypt, sizeof( decrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_decrypt(key, alg, iv, sizeof(iv), + encrypt, output_len, part_size, + decrypt, sizeof(decrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = memcmp( input, decrypt, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = memcmp(input, decrypt, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); exit: - psa_destroy_key( key ); - return( status ); + psa_destroy_key(key); + return status; } -static psa_status_t cipher_example_encrypt_decrypt_aes_ctr_multi( void ) +static psa_status_t cipher_example_encrypt_decrypt_aes_ctr_multi(void) { enum { - block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( PSA_KEY_TYPE_AES ), + block_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES), key_bits = 256, input_size = 100, part_size = 10, @@ -269,63 +268,66 @@ static psa_status_t cipher_example_encrypt_decrypt_aes_ctr_multi( void ) uint8_t iv[block_size], input[input_size], encrypt[input_size], decrypt[input_size]; - status = psa_generate_random( input, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_random(input, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_AES ); - psa_set_key_bits( &attributes, key_bits ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_bits(&attributes, key_bits); - status = psa_generate_key( &attributes, &key ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = psa_generate_key(&attributes, &key); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_encrypt( key, alg, iv, sizeof( iv ), - input, sizeof( input ), part_size, - encrypt, sizeof( encrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_encrypt(key, alg, iv, sizeof(iv), + input, sizeof(input), part_size, + encrypt, sizeof(encrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = cipher_decrypt( key, alg, iv, sizeof( iv ), - encrypt, output_len, part_size, - decrypt, sizeof( decrypt ), &output_len ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = cipher_decrypt(key, alg, iv, sizeof(iv), + encrypt, output_len, part_size, + decrypt, sizeof(decrypt), &output_len); + ASSERT_STATUS(status, PSA_SUCCESS); - status = memcmp( input, decrypt, sizeof( input ) ); - ASSERT_STATUS( status, PSA_SUCCESS ); + status = memcmp(input, decrypt, sizeof(input)); + ASSERT_STATUS(status, PSA_SUCCESS); exit: - psa_destroy_key( key ); - return( status ); + psa_destroy_key(key); + return status; } -static void cipher_examples( void ) +static void cipher_examples(void) { psa_status_t status; - printf( "cipher encrypt/decrypt AES CBC no padding:\r\n" ); - status = cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block( ); - if( status == PSA_SUCCESS ) - printf( "\tsuccess!\r\n" ); + printf("cipher encrypt/decrypt AES CBC no padding:\r\n"); + status = cipher_example_encrypt_decrypt_aes_cbc_nopad_1_block(); + if (status == PSA_SUCCESS) { + printf("\tsuccess!\r\n"); + } - printf( "cipher encrypt/decrypt AES CBC PKCS7 multipart:\r\n" ); - status = cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi( ); - if( status == PSA_SUCCESS ) - printf( "\tsuccess!\r\n" ); + printf("cipher encrypt/decrypt AES CBC PKCS7 multipart:\r\n"); + status = cipher_example_encrypt_decrypt_aes_cbc_pkcs7_multi(); + if (status == PSA_SUCCESS) { + printf("\tsuccess!\r\n"); + } - printf( "cipher encrypt/decrypt AES CTR multipart:\r\n" ); - status = cipher_example_encrypt_decrypt_aes_ctr_multi( ); - if( status == PSA_SUCCESS ) - printf( "\tsuccess!\r\n" ); + printf("cipher encrypt/decrypt AES CTR multipart:\r\n"); + status = cipher_example_encrypt_decrypt_aes_ctr_multi(); + if (status == PSA_SUCCESS) { + printf("\tsuccess!\r\n"); + } } -int main( void ) +int main(void) { - ASSERT( psa_crypto_init( ) == PSA_SUCCESS ); - cipher_examples( ); + ASSERT(psa_crypto_init() == PSA_SUCCESS); + cipher_examples(); exit: - mbedtls_psa_crypto_free( ); - return( 0 ); + mbedtls_psa_crypto_free(); + return 0; } #endif /* MBEDTLS_PSA_CRYPTO_C && MBEDTLS_AES_C && MBEDTLS_CIPHER_MODE_CBC && MBEDTLS_CIPHER_MODE_CTR && MBEDTLS_CIPHER_MODE_WITH_PADDING */ diff --git a/programs/psa/hmac_demo.c b/programs/psa/hmac_demo.c index f949a8983..f25cdeb83 100644 --- a/programs/psa/hmac_demo.c +++ b/programs/psa/hmac_demo.c @@ -50,11 +50,11 @@ /* If the build options we need are not enabled, compile a placeholder. */ #if !defined(MBEDTLS_PSA_CRYPTO_C) || \ defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) -int main( void ) +int main(void) { - printf( "MBEDTLS_PSA_CRYPTO_C not defined, " - "and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n" ); - return( 0 ); + printf("MBEDTLS_PSA_CRYPTO_C not defined, " + "and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined\r\n"); + return 0; } #else @@ -71,31 +71,32 @@ const unsigned char msg2_part2[] = { 0x06, 0x06 }; const unsigned char key_bytes[32] = { 0 }; /* Print the contents of a buffer in hex */ -void print_buf( const char *title, uint8_t *buf, size_t len ) +void print_buf(const char *title, uint8_t *buf, size_t len) { - printf( "%s:", title ); - for( size_t i = 0; i < len; i++ ) - printf( " %02x", buf[i] ); - printf( "\n" ); + printf("%s:", title); + for (size_t i = 0; i < len; i++) { + printf(" %02x", buf[i]); + } + printf("\n"); } /* Run a PSA function and bail out if it fails. * The symbolic name of the error code can be recovered using: * programs/psa/psa_constant_name status */ -#define PSA_CHECK( expr ) \ +#define PSA_CHECK(expr) \ do \ { \ - status = ( expr ); \ - if( status != PSA_SUCCESS ) \ + status = (expr); \ + if (status != PSA_SUCCESS) \ { \ - printf( "Error %d at line %d: %s\n", \ - (int) status, \ - __LINE__, \ - #expr ); \ + printf("Error %d at line %d: %s\n", \ + (int) status, \ + __LINE__, \ + #expr); \ goto exit; \ } \ } \ - while( 0 ) + while (0) /* * This function demonstrates computation of the HMAC of two messages using @@ -113,40 +114,41 @@ psa_status_t hmac_demo(void) psa_key_id_t key = 0; /* prepare key */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); - psa_set_key_bits( &attributes, 8 * sizeof( key_bytes ) ); // optional + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); + psa_set_key_bits(&attributes, 8 * sizeof(key_bytes)); // optional - status = psa_import_key( &attributes, - key_bytes, sizeof( key_bytes ), &key ); - if( status != PSA_SUCCESS ) - return( status ); + status = psa_import_key(&attributes, + key_bytes, sizeof(key_bytes), &key); + if (status != PSA_SUCCESS) { + return status; + } /* prepare operation */ psa_mac_operation_t op = PSA_MAC_OPERATION_INIT; size_t out_len = 0; /* compute HMAC(key, msg1_part1 | msg1_part2) */ - PSA_CHECK( psa_mac_sign_setup( &op, key, alg ) ); - PSA_CHECK( psa_mac_update( &op, msg1_part1, sizeof( msg1_part1 ) ) ); - PSA_CHECK( psa_mac_update( &op, msg1_part2, sizeof( msg1_part2 ) ) ); - PSA_CHECK( psa_mac_sign_finish( &op, out, sizeof( out ), &out_len ) ); - print_buf( "msg1", out, out_len ); + PSA_CHECK(psa_mac_sign_setup(&op, key, alg)); + PSA_CHECK(psa_mac_update(&op, msg1_part1, sizeof(msg1_part1))); + PSA_CHECK(psa_mac_update(&op, msg1_part2, sizeof(msg1_part2))); + PSA_CHECK(psa_mac_sign_finish(&op, out, sizeof(out), &out_len)); + print_buf("msg1", out, out_len); /* compute HMAC(key, msg2_part1 | msg2_part2) */ - PSA_CHECK( psa_mac_sign_setup( &op, key, alg ) ); - PSA_CHECK( psa_mac_update( &op, msg2_part1, sizeof( msg2_part1 ) ) ); - PSA_CHECK( psa_mac_update( &op, msg2_part2, sizeof( msg2_part2 ) ) ); - PSA_CHECK( psa_mac_sign_finish( &op, out, sizeof( out ), &out_len ) ); - print_buf( "msg2", out, out_len ); + PSA_CHECK(psa_mac_sign_setup(&op, key, alg)); + PSA_CHECK(psa_mac_update(&op, msg2_part1, sizeof(msg2_part1))); + PSA_CHECK(psa_mac_update(&op, msg2_part2, sizeof(msg2_part2))); + PSA_CHECK(psa_mac_sign_finish(&op, out, sizeof(out), &out_len)); + print_buf("msg2", out, out_len); exit: - psa_mac_abort( &op ); // needed on error, harmless on success - psa_destroy_key( key ); - mbedtls_platform_zeroize( out, sizeof( out ) ); + psa_mac_abort(&op); // needed on error, harmless on success + psa_destroy_key(key); + mbedtls_platform_zeroize(out, sizeof(out)); - return( status ); + return status; } int main(void) @@ -154,16 +156,16 @@ int main(void) psa_status_t status = PSA_SUCCESS; /* Initialize the PSA crypto library. */ - PSA_CHECK( psa_crypto_init( ) ); + PSA_CHECK(psa_crypto_init()); /* Run the demo */ - PSA_CHECK( hmac_demo() ); + PSA_CHECK(hmac_demo()); /* Deinitialize the PSA crypto library. */ - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); exit: - return( status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE ); + return status == PSA_SUCCESS ? EXIT_SUCCESS : EXIT_FAILURE; } #endif diff --git a/programs/psa/key_ladder_demo.c b/programs/psa/key_ladder_demo.c index f40874e1c..f5c31de5d 100644 --- a/programs/psa/key_ladder_demo.c +++ b/programs/psa/key_ladder_demo.c @@ -66,47 +66,47 @@ !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CCM_C) || \ !defined(MBEDTLS_PSA_CRYPTO_C) || !defined(MBEDTLS_FS_IO) || \ defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) -int main( void ) +int main(void) { - printf( "MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or " - "MBEDTLS_AES_C and/or MBEDTLS_CCM_C and/or " - "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_FS_IO " - "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER " - "defined.\n" ); - return( 0 ); + printf("MBEDTLS_SHA256_C and/or MBEDTLS_MD_C and/or " + "MBEDTLS_AES_C and/or MBEDTLS_CCM_C and/or " + "MBEDTLS_PSA_CRYPTO_C and/or MBEDTLS_FS_IO " + "not defined and/or MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER " + "defined.\n"); + return 0; } #else /* The real program starts here. */ /* Run a system function and bail out if it fails. */ -#define SYS_CHECK( expr ) \ +#define SYS_CHECK(expr) \ do \ { \ - if( ! ( expr ) ) \ + if (!(expr)) \ { \ - perror( #expr ); \ + perror( #expr); \ status = DEMO_ERROR; \ goto exit; \ } \ } \ - while( 0 ) + while (0) /* Run a PSA function and bail out if it fails. */ -#define PSA_CHECK( expr ) \ +#define PSA_CHECK(expr) \ do \ { \ - status = ( expr ); \ - if( status != PSA_SUCCESS ) \ + status = (expr); \ + if (status != PSA_SUCCESS) \ { \ - printf( "Error %d at line %d: %s\n", \ - (int) status, \ - __LINE__, \ - #expr ); \ + printf("Error %d at line %d: %s\n", \ + (int) status, \ + __LINE__, \ + #expr); \ goto exit; \ } \ } \ - while( 0 ) + while (0) /* To report operational errors in this program, use an error code that is * different from every PSA error code. */ @@ -116,19 +116,19 @@ int main( void ) #define MAX_LADDER_DEPTH 10 /* Salt to use when deriving an intermediate key. */ -#define DERIVE_KEY_SALT ( (uint8_t *) "key_ladder_demo.derive" ) -#define DERIVE_KEY_SALT_LENGTH ( strlen( (const char*) DERIVE_KEY_SALT ) ) +#define DERIVE_KEY_SALT ((uint8_t *) "key_ladder_demo.derive") +#define DERIVE_KEY_SALT_LENGTH (strlen((const char *) DERIVE_KEY_SALT)) /* Salt to use when deriving a wrapping key. */ -#define WRAPPING_KEY_SALT ( (uint8_t *) "key_ladder_demo.wrap" ) -#define WRAPPING_KEY_SALT_LENGTH ( strlen( (const char*) WRAPPING_KEY_SALT ) ) +#define WRAPPING_KEY_SALT ((uint8_t *) "key_ladder_demo.wrap") +#define WRAPPING_KEY_SALT_LENGTH (strlen((const char *) WRAPPING_KEY_SALT)) /* Size of the key derivation keys (applies both to the master key and * to intermediate keys). */ #define KEY_SIZE_BYTES 40 /* Algorithm for key derivation. */ -#define KDF_ALG PSA_ALG_HKDF( PSA_ALG_SHA_256 ) +#define KDF_ALG PSA_ALG_HKDF(PSA_ALG_SHA_256) /* Type and size of the key used to wrap data. */ #define WRAPPING_KEY_TYPE PSA_KEY_TYPE_AES @@ -145,9 +145,8 @@ int main( void ) * integer sizes and endianness, because the data is meant to be read * back by the same program on the same machine. */ #define WRAPPED_DATA_MAGIC "key_ladder_demo" // including trailing null byte -#define WRAPPED_DATA_MAGIC_LENGTH ( sizeof( WRAPPED_DATA_MAGIC ) ) -typedef struct -{ +#define WRAPPED_DATA_MAGIC_LENGTH (sizeof(WRAPPED_DATA_MAGIC)) +typedef struct { char magic[WRAPPED_DATA_MAGIC_LENGTH]; size_t ad_size; /* Size of the additional data, which is this header. */ size_t payload_size; /* Size of the encrypted data. */ @@ -156,8 +155,7 @@ typedef struct } wrapped_data_header_t; /* The modes that this program can operate in (see usage). */ -enum program_mode -{ +enum program_mode { MODE_GENERATE, MODE_SAVE, MODE_UNWRAP, @@ -166,28 +164,29 @@ enum program_mode /* Save a key to a file. In the real world, you may want to export a derived * key sometimes, to share it with another party. */ -static psa_status_t save_key( psa_key_id_t key, - const char *output_file_name ) +static psa_status_t save_key(psa_key_id_t key, + const char *output_file_name) { psa_status_t status = PSA_SUCCESS; uint8_t key_data[KEY_SIZE_BYTES]; size_t key_size; FILE *key_file = NULL; - PSA_CHECK( psa_export_key( key, - key_data, sizeof( key_data ), - &key_size ) ); - SYS_CHECK( ( key_file = fopen( output_file_name, "wb" ) ) != NULL ); + PSA_CHECK(psa_export_key(key, + key_data, sizeof(key_data), + &key_size)); + SYS_CHECK((key_file = fopen(output_file_name, "wb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( key_file, NULL ); - SYS_CHECK( fwrite( key_data, 1, key_size, key_file ) == key_size ); - SYS_CHECK( fclose( key_file ) == 0 ); + mbedtls_setbuf(key_file, NULL); + SYS_CHECK(fwrite(key_data, 1, key_size, key_file) == key_size); + SYS_CHECK(fclose(key_file) == 0); key_file = NULL; exit: - if( key_file != NULL) - fclose( key_file ); - return( status ); + if (key_file != NULL) { + fclose(key_file); + } + return status; } /* Generate a master key for use in this demo. @@ -195,25 +194,25 @@ exit: * Normally a master key would be non-exportable. For the purpose of this * demo, we want to save it to a file, to avoid relying on the keystore * capability of the PSA crypto library. */ -static psa_status_t generate( const char *key_file_name ) +static psa_status_t generate(const char *key_file_name) { psa_status_t status = PSA_SUCCESS; psa_key_id_t key = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, KDF_ALG ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); - psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( KEY_SIZE_BYTES ) ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, KDF_ALG); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(KEY_SIZE_BYTES)); - PSA_CHECK( psa_generate_key( &attributes, &key ) ); + PSA_CHECK(psa_generate_key(&attributes, &key)); - PSA_CHECK( save_key( key, key_file_name ) ); + PSA_CHECK(save_key(key, key_file_name)); exit: - (void) psa_destroy_key( key ); - return( status ); + (void) psa_destroy_key(key); + return status; } /* Load the master key from a file. @@ -221,10 +220,10 @@ exit: * In the real world, this master key would be stored in an internal memory * and the storage would be managed by the keystore capability of the PSA * crypto library. */ -static psa_status_t import_key_from_file( psa_key_usage_t usage, - psa_algorithm_t alg, - const char *key_file_name, - psa_key_id_t *master_key ) +static psa_status_t import_key_from_file(psa_key_usage_t usage, + psa_algorithm_t alg, + const char *key_file_name, + psa_key_id_t *master_key) { psa_status_t status = PSA_SUCCESS; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -233,38 +232,37 @@ static psa_status_t import_key_from_file( psa_key_usage_t usage, FILE *key_file = NULL; unsigned char extra_byte; - SYS_CHECK( ( key_file = fopen( key_file_name, "rb" ) ) != NULL ); + SYS_CHECK((key_file = fopen(key_file_name, "rb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( key_file, NULL ); - SYS_CHECK( ( key_size = fread( key_data, 1, sizeof( key_data ), - key_file ) ) != 0 ); - if( fread( &extra_byte, 1, 1, key_file ) != 0 ) - { - printf( "Key file too large (max: %u).\n", - (unsigned) sizeof( key_data ) ); + mbedtls_setbuf(key_file, NULL); + SYS_CHECK((key_size = fread(key_data, 1, sizeof(key_data), + key_file)) != 0); + if (fread(&extra_byte, 1, 1, key_file) != 0) { + printf("Key file too large (max: %u).\n", + (unsigned) sizeof(key_data)); status = DEMO_ERROR; goto exit; } - SYS_CHECK( fclose( key_file ) == 0 ); + SYS_CHECK(fclose(key_file) == 0); key_file = NULL; - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); - PSA_CHECK( psa_import_key( &attributes, key_data, key_size, master_key ) ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + PSA_CHECK(psa_import_key(&attributes, key_data, key_size, master_key)); exit: - if( key_file != NULL ) - fclose( key_file ); - mbedtls_platform_zeroize( key_data, sizeof( key_data ) ); - if( status != PSA_SUCCESS ) - { + if (key_file != NULL) { + fclose(key_file); + } + mbedtls_platform_zeroize(key_data, sizeof(key_data)); + if (status != PSA_SUCCESS) { /* If the key creation hasn't happened yet or has failed, * *master_key is null. psa_destroy_key( 0 ) is * guaranteed to do nothing and return PSA_SUCCESS. */ - (void) psa_destroy_key( *master_key ); + (void) psa_destroy_key(*master_key); *master_key = 0; } - return( status ); + return status; } /* Derive the intermediate keys, using the list of labels provided on @@ -272,60 +270,58 @@ exit: * This function destroys the master key. On successful output, *key * is the identifier of the final derived key. */ -static psa_status_t derive_key_ladder( const char *ladder[], - size_t ladder_depth, - psa_key_id_t *key ) +static psa_status_t derive_key_ladder(const char *ladder[], + size_t ladder_depth, + psa_key_id_t *key) { psa_status_t status = PSA_SUCCESS; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; size_t i; - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, KDF_ALG ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); - psa_set_key_bits( &attributes, PSA_BYTES_TO_BITS( KEY_SIZE_BYTES ) ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, KDF_ALG); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + psa_set_key_bits(&attributes, PSA_BYTES_TO_BITS(KEY_SIZE_BYTES)); /* For each label in turn, ... */ - for( i = 0; i < ladder_depth; i++ ) - { + for (i = 0; i < ladder_depth; i++) { /* Start deriving material from the master key (if i=0) or from * the current intermediate key (if i>0). */ - PSA_CHECK( psa_key_derivation_setup( &operation, KDF_ALG ) ); - PSA_CHECK( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_SALT, - DERIVE_KEY_SALT, DERIVE_KEY_SALT_LENGTH ) ); - PSA_CHECK( psa_key_derivation_input_key( - &operation, PSA_KEY_DERIVATION_INPUT_SECRET, - *key ) ); - PSA_CHECK( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_INFO, - (uint8_t*) ladder[i], strlen( ladder[i] ) ) ); + PSA_CHECK(psa_key_derivation_setup(&operation, KDF_ALG)); + PSA_CHECK(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_SALT, + DERIVE_KEY_SALT, DERIVE_KEY_SALT_LENGTH)); + PSA_CHECK(psa_key_derivation_input_key( + &operation, PSA_KEY_DERIVATION_INPUT_SECRET, + *key)); + PSA_CHECK(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_INFO, + (uint8_t *) ladder[i], strlen(ladder[i]))); /* When the parent key is not the master key, destroy it, * since it is no longer needed. */ - PSA_CHECK( psa_destroy_key( *key ) ); + PSA_CHECK(psa_destroy_key(*key)); *key = 0; /* Derive the next intermediate key from the parent key. */ - PSA_CHECK( psa_key_derivation_output_key( &attributes, &operation, - key ) ); - PSA_CHECK( psa_key_derivation_abort( &operation ) ); + PSA_CHECK(psa_key_derivation_output_key(&attributes, &operation, + key)); + PSA_CHECK(psa_key_derivation_abort(&operation)); } exit: - psa_key_derivation_abort( &operation ); - if( status != PSA_SUCCESS ) - { - psa_destroy_key( *key ); + psa_key_derivation_abort(&operation); + if (status != PSA_SUCCESS) { + psa_destroy_key(*key); *key = 0; } - return( status ); + return status; } /* Derive a wrapping key from the last intermediate key. */ -static psa_status_t derive_wrapping_key( psa_key_usage_t usage, - psa_key_id_t derived_key, - psa_key_id_t *wrapping_key ) +static psa_status_t derive_wrapping_key(psa_key_usage_t usage, + psa_key_id_t derived_key, + psa_key_id_t *wrapping_key) { psa_status_t status = PSA_SUCCESS; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -335,33 +331,33 @@ static psa_status_t derive_wrapping_key( psa_key_usage_t usage, /* Set up a key derivation operation from the key derived from * the master key. */ - PSA_CHECK( psa_key_derivation_setup( &operation, KDF_ALG ) ); - PSA_CHECK( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_SALT, - WRAPPING_KEY_SALT, WRAPPING_KEY_SALT_LENGTH ) ); - PSA_CHECK( psa_key_derivation_input_key( - &operation, PSA_KEY_DERIVATION_INPUT_SECRET, - derived_key ) ); - PSA_CHECK( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_INFO, - NULL, 0 ) ); + PSA_CHECK(psa_key_derivation_setup(&operation, KDF_ALG)); + PSA_CHECK(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_SALT, + WRAPPING_KEY_SALT, WRAPPING_KEY_SALT_LENGTH)); + PSA_CHECK(psa_key_derivation_input_key( + &operation, PSA_KEY_DERIVATION_INPUT_SECRET, + derived_key)); + PSA_CHECK(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_INFO, + NULL, 0)); /* Create the wrapping key. */ - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, WRAPPING_ALG ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_AES ); - psa_set_key_bits( &attributes, WRAPPING_KEY_BITS ); - PSA_CHECK( psa_key_derivation_output_key( &attributes, &operation, - wrapping_key ) ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, WRAPPING_ALG); + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + psa_set_key_bits(&attributes, WRAPPING_KEY_BITS); + PSA_CHECK(psa_key_derivation_output_key(&attributes, &operation, + wrapping_key)); exit: - psa_key_derivation_abort( &operation ); - return( status ); + psa_key_derivation_abort(&operation); + return status; } -static psa_status_t wrap_data( const char *input_file_name, - const char *output_file_name, - psa_key_id_t wrapping_key ) +static psa_status_t wrap_data(const char *input_file_name, + const char *output_file_name, + psa_key_id_t wrapping_key) { psa_status_t status; FILE *input_file = NULL; @@ -376,78 +372,79 @@ static psa_status_t wrap_data( const char *input_file_name, wrapped_data_header_t header; /* Find the size of the data to wrap. */ - SYS_CHECK( ( input_file = fopen( input_file_name, "rb" ) ) != NULL ); + SYS_CHECK((input_file = fopen(input_file_name, "rb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( input_file, NULL ); - SYS_CHECK( fseek( input_file, 0, SEEK_END ) == 0 ); - SYS_CHECK( ( input_position = ftell( input_file ) ) != -1 ); + mbedtls_setbuf(input_file, NULL); + SYS_CHECK(fseek(input_file, 0, SEEK_END) == 0); + SYS_CHECK((input_position = ftell(input_file)) != -1); #if LONG_MAX > SIZE_MAX - if( input_position > SIZE_MAX ) - { - printf( "Input file too large.\n" ); + if (input_position > SIZE_MAX) { + printf("Input file too large.\n"); status = DEMO_ERROR; goto exit; } #endif input_size = input_position; - PSA_CHECK( psa_get_key_attributes( wrapping_key, &attributes ) ); - key_type = psa_get_key_type( &attributes ); + PSA_CHECK(psa_get_key_attributes(wrapping_key, &attributes)); + key_type = psa_get_key_type(&attributes); buffer_size = - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, WRAPPING_ALG, input_size ); + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, WRAPPING_ALG, input_size); /* Check for integer overflow. */ - if( buffer_size < input_size ) - { - printf( "Input file too large.\n" ); + if (buffer_size < input_size) { + printf("Input file too large.\n"); status = DEMO_ERROR; goto exit; } /* Load the data to wrap. */ - SYS_CHECK( fseek( input_file, 0, SEEK_SET ) == 0 ); - SYS_CHECK( ( buffer = calloc( 1, buffer_size ) ) != NULL ); - SYS_CHECK( fread( buffer, 1, input_size, input_file ) == input_size ); - SYS_CHECK( fclose( input_file ) == 0 ); + SYS_CHECK(fseek(input_file, 0, SEEK_SET) == 0); + SYS_CHECK((buffer = calloc(1, buffer_size)) != NULL); + SYS_CHECK(fread(buffer, 1, input_size, input_file) == input_size); + SYS_CHECK(fclose(input_file) == 0); input_file = NULL; /* Construct a header. */ - memcpy( &header.magic, WRAPPED_DATA_MAGIC, WRAPPED_DATA_MAGIC_LENGTH ); - header.ad_size = sizeof( header ); + memcpy(&header.magic, WRAPPED_DATA_MAGIC, WRAPPED_DATA_MAGIC_LENGTH); + header.ad_size = sizeof(header); header.payload_size = input_size; /* Wrap the data. */ - PSA_CHECK( psa_generate_random( header.iv, WRAPPING_IV_SIZE ) ); - PSA_CHECK( psa_aead_encrypt( wrapping_key, WRAPPING_ALG, - header.iv, WRAPPING_IV_SIZE, - (uint8_t *) &header, sizeof( header ), - buffer, input_size, - buffer, buffer_size, - &ciphertext_size ) ); + PSA_CHECK(psa_generate_random(header.iv, WRAPPING_IV_SIZE)); + PSA_CHECK(psa_aead_encrypt(wrapping_key, WRAPPING_ALG, + header.iv, WRAPPING_IV_SIZE, + (uint8_t *) &header, sizeof(header), + buffer, input_size, + buffer, buffer_size, + &ciphertext_size)); /* Write the output. */ - SYS_CHECK( ( output_file = fopen( output_file_name, "wb" ) ) != NULL ); + SYS_CHECK((output_file = fopen(output_file_name, "wb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( output_file, NULL ); - SYS_CHECK( fwrite( &header, 1, sizeof( header ), - output_file ) == sizeof( header ) ); - SYS_CHECK( fwrite( buffer, 1, ciphertext_size, - output_file ) == ciphertext_size ); - SYS_CHECK( fclose( output_file ) == 0 ); + mbedtls_setbuf(output_file, NULL); + SYS_CHECK(fwrite(&header, 1, sizeof(header), + output_file) == sizeof(header)); + SYS_CHECK(fwrite(buffer, 1, ciphertext_size, + output_file) == ciphertext_size); + SYS_CHECK(fclose(output_file) == 0); output_file = NULL; exit: - if( input_file != NULL ) - fclose( input_file ); - if( output_file != NULL ) - fclose( output_file ); - if( buffer != NULL ) - mbedtls_platform_zeroize( buffer, buffer_size ); - free( buffer ); - return( status ); + if (input_file != NULL) { + fclose(input_file); + } + if (output_file != NULL) { + fclose(output_file); + } + if (buffer != NULL) { + mbedtls_platform_zeroize(buffer, buffer_size); + } + free(buffer); + return status; } -static psa_status_t unwrap_data( const char *input_file_name, - const char *output_file_name, - psa_key_id_t wrapping_key ) +static psa_status_t unwrap_data(const char *input_file_name, + const char *output_file_name, + psa_key_id_t wrapping_key) { psa_status_t status; FILE *input_file = NULL; @@ -461,128 +458,126 @@ static psa_status_t unwrap_data( const char *input_file_name, unsigned char extra_byte; /* Load and validate the header. */ - SYS_CHECK( ( input_file = fopen( input_file_name, "rb" ) ) != NULL ); + SYS_CHECK((input_file = fopen(input_file_name, "rb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( input_file, NULL ); - SYS_CHECK( fread( &header, 1, sizeof( header ), - input_file ) == sizeof( header ) ); - if( memcmp( &header.magic, WRAPPED_DATA_MAGIC, - WRAPPED_DATA_MAGIC_LENGTH ) != 0 ) - { - printf( "The input does not start with a valid magic header.\n" ); + mbedtls_setbuf(input_file, NULL); + SYS_CHECK(fread(&header, 1, sizeof(header), + input_file) == sizeof(header)); + if (memcmp(&header.magic, WRAPPED_DATA_MAGIC, + WRAPPED_DATA_MAGIC_LENGTH) != 0) { + printf("The input does not start with a valid magic header.\n"); status = DEMO_ERROR; goto exit; } - if( header.ad_size != sizeof( header ) ) - { - printf( "The header size is not correct.\n" ); + if (header.ad_size != sizeof(header)) { + printf("The header size is not correct.\n"); status = DEMO_ERROR; goto exit; } - PSA_CHECK( psa_get_key_attributes( wrapping_key, &attributes) ); - key_type = psa_get_key_type( &attributes); + PSA_CHECK(psa_get_key_attributes(wrapping_key, &attributes)); + key_type = psa_get_key_type(&attributes); ciphertext_size = - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, WRAPPING_ALG, header.payload_size ); + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, WRAPPING_ALG, header.payload_size); /* Check for integer overflow. */ - if( ciphertext_size < header.payload_size ) - { - printf( "Input file too large.\n" ); + if (ciphertext_size < header.payload_size) { + printf("Input file too large.\n"); status = DEMO_ERROR; goto exit; } /* Load the payload data. */ - SYS_CHECK( ( buffer = calloc( 1, ciphertext_size ) ) != NULL ); - SYS_CHECK( fread( buffer, 1, ciphertext_size, - input_file ) == ciphertext_size ); - if( fread( &extra_byte, 1, 1, input_file ) != 0 ) - { - printf( "Extra garbage after ciphertext\n" ); + SYS_CHECK((buffer = calloc(1, ciphertext_size)) != NULL); + SYS_CHECK(fread(buffer, 1, ciphertext_size, + input_file) == ciphertext_size); + if (fread(&extra_byte, 1, 1, input_file) != 0) { + printf("Extra garbage after ciphertext\n"); status = DEMO_ERROR; goto exit; } - SYS_CHECK( fclose( input_file ) == 0 ); + SYS_CHECK(fclose(input_file) == 0); input_file = NULL; /* Unwrap the data. */ - PSA_CHECK( psa_aead_decrypt( wrapping_key, WRAPPING_ALG, - header.iv, WRAPPING_IV_SIZE, - (uint8_t *) &header, sizeof( header ), - buffer, ciphertext_size, - buffer, ciphertext_size, - &plaintext_size ) ); - if( plaintext_size != header.payload_size ) - { - printf( "Incorrect payload size in the header.\n" ); + PSA_CHECK(psa_aead_decrypt(wrapping_key, WRAPPING_ALG, + header.iv, WRAPPING_IV_SIZE, + (uint8_t *) &header, sizeof(header), + buffer, ciphertext_size, + buffer, ciphertext_size, + &plaintext_size)); + if (plaintext_size != header.payload_size) { + printf("Incorrect payload size in the header.\n"); status = DEMO_ERROR; goto exit; } /* Write the output. */ - SYS_CHECK( ( output_file = fopen( output_file_name, "wb" ) ) != NULL ); + SYS_CHECK((output_file = fopen(output_file_name, "wb")) != NULL); /* Ensure no stdio buffering of secrets, as such buffers cannot be wiped. */ - mbedtls_setbuf( output_file, NULL ); - SYS_CHECK( fwrite( buffer, 1, plaintext_size, - output_file ) == plaintext_size ); - SYS_CHECK( fclose( output_file ) == 0 ); + mbedtls_setbuf(output_file, NULL); + SYS_CHECK(fwrite(buffer, 1, plaintext_size, + output_file) == plaintext_size); + SYS_CHECK(fclose(output_file) == 0); output_file = NULL; exit: - if( input_file != NULL ) - fclose( input_file ); - if( output_file != NULL ) - fclose( output_file ); - if( buffer != NULL ) - mbedtls_platform_zeroize( buffer, ciphertext_size ); - free( buffer ); - return( status ); + if (input_file != NULL) { + fclose(input_file); + } + if (output_file != NULL) { + fclose(output_file); + } + if (buffer != NULL) { + mbedtls_platform_zeroize(buffer, ciphertext_size); + } + free(buffer); + return status; } -static psa_status_t run( enum program_mode mode, - const char *key_file_name, - const char *ladder[], size_t ladder_depth, - const char *input_file_name, - const char *output_file_name ) +static psa_status_t run(enum program_mode mode, + const char *key_file_name, + const char *ladder[], size_t ladder_depth, + const char *input_file_name, + const char *output_file_name) { psa_status_t status = PSA_SUCCESS; psa_key_id_t derivation_key = 0; psa_key_id_t wrapping_key = 0; /* Initialize the PSA crypto library. */ - PSA_CHECK( psa_crypto_init( ) ); + PSA_CHECK(psa_crypto_init()); /* Generate mode is unlike the others. Generate the master key and exit. */ - if( mode == MODE_GENERATE ) - return( generate( key_file_name ) ); + if (mode == MODE_GENERATE) { + return generate(key_file_name); + } /* Read the master key. */ - PSA_CHECK( import_key_from_file( PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT, - KDF_ALG, - key_file_name, - &derivation_key ) ); + PSA_CHECK(import_key_from_file(PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_EXPORT, + KDF_ALG, + key_file_name, + &derivation_key)); /* Calculate the derived key for this session. */ - PSA_CHECK( derive_key_ladder( ladder, ladder_depth, - &derivation_key ) ); + PSA_CHECK(derive_key_ladder(ladder, ladder_depth, + &derivation_key)); - switch( mode ) - { + switch (mode) { case MODE_SAVE: - PSA_CHECK( save_key( derivation_key, output_file_name ) ); + PSA_CHECK(save_key(derivation_key, output_file_name)); break; case MODE_UNWRAP: - PSA_CHECK( derive_wrapping_key( PSA_KEY_USAGE_DECRYPT, - derivation_key, - &wrapping_key ) ); - PSA_CHECK( unwrap_data( input_file_name, output_file_name, - wrapping_key ) ); + PSA_CHECK(derive_wrapping_key(PSA_KEY_USAGE_DECRYPT, + derivation_key, + &wrapping_key)); + PSA_CHECK(unwrap_data(input_file_name, output_file_name, + wrapping_key)); break; case MODE_WRAP: - PSA_CHECK( derive_wrapping_key( PSA_KEY_USAGE_ENCRYPT, - derivation_key, - &wrapping_key ) ); - PSA_CHECK( wrap_data( input_file_name, output_file_name, - wrapping_key ) ); + PSA_CHECK(derive_wrapping_key(PSA_KEY_USAGE_ENCRYPT, + derivation_key, + &wrapping_key)); + PSA_CHECK(wrap_data(input_file_name, output_file_name, + wrapping_key)); break; default: /* Unreachable but some compilers don't realize it. */ @@ -593,35 +588,35 @@ exit: /* Destroy any remaining key. Deinitializing the crypto library would do * this anyway since they are volatile keys, but explicitly destroying * keys makes the code easier to reuse. */ - (void) psa_destroy_key( derivation_key ); - (void) psa_destroy_key( wrapping_key ); + (void) psa_destroy_key(derivation_key); + (void) psa_destroy_key(wrapping_key); /* Deinitialize the PSA crypto library. */ - mbedtls_psa_crypto_free( ); - return( status ); + mbedtls_psa_crypto_free(); + return status; } -static void usage( void ) +static void usage(void) { - printf( "Usage: key_ladder_demo MODE [OPTION=VALUE]...\n" ); - printf( "Demonstrate the usage of a key derivation ladder.\n" ); - printf( "\n" ); - printf( "Modes:\n" ); - printf( " generate Generate the master key\n" ); - printf( " save Save the derived key\n" ); - printf( " unwrap Unwrap (decrypt) input with the derived key\n" ); - printf( " wrap Wrap (encrypt) input with the derived key\n" ); - printf( "\n" ); - printf( "Options:\n" ); - printf( " input=FILENAME Input file (required for wrap/unwrap)\n" ); - printf( " master=FILENAME File containing the master key (default: master.key)\n" ); - printf( " output=FILENAME Output file (required for save/wrap/unwrap)\n" ); - printf( " label=TEXT Label for the key derivation.\n" ); - printf( " This may be repeated multiple times.\n" ); - printf( " To get the same key, you must use the same master key\n" ); - printf( " and the same sequence of labels.\n" ); + printf("Usage: key_ladder_demo MODE [OPTION=VALUE]...\n"); + printf("Demonstrate the usage of a key derivation ladder.\n"); + printf("\n"); + printf("Modes:\n"); + printf(" generate Generate the master key\n"); + printf(" save Save the derived key\n"); + printf(" unwrap Unwrap (decrypt) input with the derived key\n"); + printf(" wrap Wrap (encrypt) input with the derived key\n"); + printf("\n"); + printf("Options:\n"); + printf(" input=FILENAME Input file (required for wrap/unwrap)\n"); + printf(" master=FILENAME File containing the master key (default: master.key)\n"); + printf(" output=FILENAME Output file (required for save/wrap/unwrap)\n"); + printf(" label=TEXT Label for the key derivation.\n"); + printf(" This may be repeated multiple times.\n"); + printf(" To get the same key, you must use the same master key\n"); + printf(" and the same sequence of labels.\n"); } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { const char *key_file_name = "master.key"; const char *input_file_name = NULL; @@ -632,86 +627,76 @@ int main( int argc, char *argv[] ) enum program_mode mode; psa_status_t status; - if( argc <= 1 || - strcmp( argv[1], "help" ) == 0 || - strcmp( argv[1], "-help" ) == 0 || - strcmp( argv[1], "--help" ) == 0 ) - { - usage( ); - return( EXIT_SUCCESS ); + if (argc <= 1 || + strcmp(argv[1], "help") == 0 || + strcmp(argv[1], "-help") == 0 || + strcmp(argv[1], "--help") == 0) { + usage(); + return EXIT_SUCCESS; } - for( i = 2; i < argc; i++ ) - { - char *q = strchr( argv[i], '=' ); - if( q == NULL ) - { - printf( "Missing argument to option %s\n", argv[i] ); + for (i = 2; i < argc; i++) { + char *q = strchr(argv[i], '='); + if (q == NULL) { + printf("Missing argument to option %s\n", argv[i]); goto usage_failure; } *q = 0; ++q; - if( strcmp( argv[i], "input" ) == 0 ) + if (strcmp(argv[i], "input") == 0) { input_file_name = q; - else if( strcmp( argv[i], "label" ) == 0 ) - { - if( ladder_depth == MAX_LADDER_DEPTH ) - { - printf( "Maximum ladder depth %u exceeded.\n", - (unsigned) MAX_LADDER_DEPTH ); - return( EXIT_FAILURE ); + } else if (strcmp(argv[i], "label") == 0) { + if (ladder_depth == MAX_LADDER_DEPTH) { + printf("Maximum ladder depth %u exceeded.\n", + (unsigned) MAX_LADDER_DEPTH); + return EXIT_FAILURE; } ladder[ladder_depth] = q; ++ladder_depth; - } - else if( strcmp( argv[i], "master" ) == 0 ) + } else if (strcmp(argv[i], "master") == 0) { key_file_name = q; - else if( strcmp( argv[i], "output" ) == 0 ) + } else if (strcmp(argv[i], "output") == 0) { output_file_name = q; - else - { - printf( "Unknown option: %s\n", argv[i] ); + } else { + printf("Unknown option: %s\n", argv[i]); goto usage_failure; } } - if( strcmp( argv[1], "generate" ) == 0 ) + if (strcmp(argv[1], "generate") == 0) { mode = MODE_GENERATE; - else if( strcmp( argv[1], "save" ) == 0 ) + } else if (strcmp(argv[1], "save") == 0) { mode = MODE_SAVE; - else if( strcmp( argv[1], "unwrap" ) == 0 ) + } else if (strcmp(argv[1], "unwrap") == 0) { mode = MODE_UNWRAP; - else if( strcmp( argv[1], "wrap" ) == 0 ) + } else if (strcmp(argv[1], "wrap") == 0) { mode = MODE_WRAP; - else - { - printf( "Unknown action: %s\n", argv[1] ); + } else { + printf("Unknown action: %s\n", argv[1]); goto usage_failure; } - if( input_file_name == NULL && - ( mode == MODE_WRAP || mode == MODE_UNWRAP ) ) - { - printf( "Required argument missing: input\n" ); - return( DEMO_ERROR ); + if (input_file_name == NULL && + (mode == MODE_WRAP || mode == MODE_UNWRAP)) { + printf("Required argument missing: input\n"); + return DEMO_ERROR; } - if( output_file_name == NULL && - ( mode == MODE_SAVE || mode == MODE_WRAP || mode == MODE_UNWRAP ) ) - { - printf( "Required argument missing: output\n" ); - return( DEMO_ERROR ); + if (output_file_name == NULL && + (mode == MODE_SAVE || mode == MODE_WRAP || mode == MODE_UNWRAP)) { + printf("Required argument missing: output\n"); + return DEMO_ERROR; } - status = run( mode, key_file_name, - ladder, ladder_depth, - input_file_name, output_file_name ); - return( status == PSA_SUCCESS ? - EXIT_SUCCESS : - EXIT_FAILURE ); + status = run(mode, key_file_name, + ladder, ladder_depth, + input_file_name, output_file_name); + return status == PSA_SUCCESS ? + EXIT_SUCCESS : + EXIT_FAILURE; usage_failure: - usage( ); - return( EXIT_FAILURE ); + usage(); + return EXIT_FAILURE; } #endif /* MBEDTLS_SHA256_C && MBEDTLS_MD_C && MBEDTLS_AES_C && MBEDTLS_CCM_C && diff --git a/programs/psa/psa_constant_names.c b/programs/psa/psa_constant_names.c index b5fea04dd..88426854d 100644 --- a/programs/psa/psa_constant_names.c +++ b/programs/psa/psa_constant_names.c @@ -26,29 +26,29 @@ /* This block is present to support Visual Studio builds prior to 2015 */ #if defined(_MSC_VER) && _MSC_VER < 1900 #include -int snprintf( char *s, size_t n, const char *fmt, ... ) +int snprintf(char *s, size_t n, const char *fmt, ...) { int ret; va_list argp; /* Avoid calling the invalid parameter handler by checking ourselves */ - if( s == NULL || n == 0 || fmt == NULL ) - return( -1 ); + if (s == NULL || n == 0 || fmt == NULL) { + return -1; + } - va_start( argp, fmt ); + va_start(argp, fmt); #if defined(_TRUNCATE) && !defined(__MINGW32__) - ret = _vsnprintf_s( s, n, _TRUNCATE, fmt, argp ); + ret = _vsnprintf_s(s, n, _TRUNCATE, fmt, argp); #else - ret = _vsnprintf( s, n, fmt, argp ); - if( ret < 0 || (size_t) ret == n ) - { + ret = _vsnprintf(s, n, fmt, argp); + if (ret < 0 || (size_t) ret == n) { s[n-1] = '\0'; ret = -1; } #endif - va_end( argp ); + va_end(argp); - return( ret ); + return ret; } #endif @@ -69,7 +69,9 @@ static void append_integer(char **buffer, size_t buffer_size, unsigned long value) { size_t n = snprintf(*buffer, buffer_size - *required_size, format, value); - if (n < buffer_size - *required_size) *buffer += n; + if (n < buffer_size - *required_size) { + *buffer += n; + } *required_size += n; } @@ -288,8 +290,7 @@ int main(int argc, char *argv[]) { if (argc <= 1 || !strcmp(argv[1], "help") || - !strcmp(argv[1], "--help")) - { + !strcmp(argv[1], "--help")) { usage(argv[0]); return EXIT_FAILURE; } diff --git a/programs/random/gen_entropy.c b/programs/random/gen_entropy.c index f0ffea2ce..cc3217169 100644 --- a/programs/random/gen_entropy.c +++ b/programs/random/gen_entropy.c @@ -28,15 +28,15 @@ #endif #if !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int i, k, ret = 1; @@ -44,45 +44,44 @@ int main( int argc, char *argv[] ) mbedtls_entropy_context entropy; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; - if( argc < 2 ) - { - mbedtls_fprintf( stderr, "usage: %s \n", argv[0] ); - mbedtls_exit( exit_code ); + if (argc < 2) { + mbedtls_fprintf(stderr, "usage: %s \n", argv[0]); + mbedtls_exit(exit_code); } - if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) - { - mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] ); - mbedtls_exit( exit_code ); + if ((f = fopen(argv[1], "wb+")) == NULL) { + mbedtls_printf("failed to open '%s' for writing.\n", argv[1]); + mbedtls_exit(exit_code); } - mbedtls_entropy_init( &entropy ); + mbedtls_entropy_init(&entropy); - for( i = 0, k = 768; i < k; i++ ) - { - ret = mbedtls_entropy_func( &entropy, buf, sizeof( buf ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_entropy_func returned -%04X\n", - (unsigned int) ret ); + for (i = 0, k = 768; i < k; i++) { + ret = mbedtls_entropy_func(&entropy, buf, sizeof(buf)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_entropy_func returned -%04X\n", + (unsigned int) ret); goto cleanup; } - fwrite( buf, 1, sizeof( buf ), f ); + fwrite(buf, 1, sizeof(buf), f); - mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \ - "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k ); - fflush( stdout ); + mbedtls_printf("Generating %ldkb of data in file '%s'... %04.1f" \ + "%% done\r", + (long) (sizeof(buf) * k / 1024), + argv[1], + (100 * (float) (i + 1)) / k); + fflush(stdout); } exit_code = MBEDTLS_EXIT_SUCCESS; cleanup: - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); - fclose( f ); - mbedtls_entropy_free( &entropy ); + fclose(f); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_ENTROPY_C */ diff --git a/programs/random/gen_random_ctr_drbg.c b/programs/random/gen_random_ctr_drbg.c index 2a3dd54e8..e1db16eeb 100644 --- a/programs/random/gen_random_ctr_drbg.c +++ b/programs/random/gen_random_ctr_drbg.c @@ -22,7 +22,7 @@ #include "mbedtls/platform.h" #if defined(MBEDTLS_CTR_DRBG_C) && defined(MBEDTLS_ENTROPY_C) && \ - defined(MBEDTLS_FS_IO) + defined(MBEDTLS_FS_IO) #include "mbedtls/entropy.h" #include "mbedtls/ctr_drbg.h" @@ -30,16 +30,16 @@ #endif #if !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_ENTROPY_C) || \ - !defined(MBEDTLS_FS_IO) -int main( void ) + !defined(MBEDTLS_FS_IO) +int main(void) { mbedtls_printf("MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { FILE *f; int i, k, ret = 1; @@ -48,63 +48,61 @@ int main( int argc, char *argv[] ) mbedtls_entropy_context entropy; unsigned char buf[1024]; - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_ctr_drbg_init(&ctr_drbg); - if( argc < 2 ) - { - mbedtls_fprintf( stderr, "usage: %s \n", argv[0] ); - mbedtls_exit( exit_code ); + if (argc < 2) { + mbedtls_fprintf(stderr, "usage: %s \n", argv[0]); + mbedtls_exit(exit_code); } - if( ( f = fopen( argv[1], "wb+" ) ) == NULL ) - { - mbedtls_printf( "failed to open '%s' for writing.\n", argv[1] ); - mbedtls_exit( exit_code ); + if ((f = fopen(argv[1], "wb+")) == NULL) { + mbedtls_printf("failed to open '%s' for writing.\n", argv[1]); + mbedtls_exit(exit_code); } - mbedtls_entropy_init( &entropy ); - ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) "RANDOM_GEN", 10 ); - if( ret != 0 ) - { - mbedtls_printf( "failed in mbedtls_ctr_drbg_seed: %d\n", ret ); + mbedtls_entropy_init(&entropy); + ret = mbedtls_ctr_drbg_seed(&ctr_drbg, + mbedtls_entropy_func, + &entropy, + (const unsigned char *) "RANDOM_GEN", + 10); + if (ret != 0) { + mbedtls_printf("failed in mbedtls_ctr_drbg_seed: %d\n", ret); goto cleanup; } - mbedtls_ctr_drbg_set_prediction_resistance( &ctr_drbg, MBEDTLS_CTR_DRBG_PR_OFF ); + mbedtls_ctr_drbg_set_prediction_resistance(&ctr_drbg, MBEDTLS_CTR_DRBG_PR_OFF); #if defined(MBEDTLS_FS_IO) - ret = mbedtls_ctr_drbg_update_seed_file( &ctr_drbg, "seedfile" ); + ret = mbedtls_ctr_drbg_update_seed_file(&ctr_drbg, "seedfile"); - if( ret == MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR ) - { - mbedtls_printf( "Failed to open seedfile. Generating one.\n" ); - ret = mbedtls_ctr_drbg_write_seed_file( &ctr_drbg, "seedfile" ); - if( ret != 0 ) - { - mbedtls_printf( "failed in mbedtls_ctr_drbg_write_seed_file: %d\n", ret ); + if (ret == MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR) { + mbedtls_printf("Failed to open seedfile. Generating one.\n"); + ret = mbedtls_ctr_drbg_write_seed_file(&ctr_drbg, "seedfile"); + if (ret != 0) { + mbedtls_printf("failed in mbedtls_ctr_drbg_write_seed_file: %d\n", ret); goto cleanup; } - } - else if( ret != 0 ) - { - mbedtls_printf( "failed in mbedtls_ctr_drbg_update_seed_file: %d\n", ret ); + } else if (ret != 0) { + mbedtls_printf("failed in mbedtls_ctr_drbg_update_seed_file: %d\n", ret); goto cleanup; } #endif - for( i = 0, k = 768; i < k; i++ ) - { - ret = mbedtls_ctr_drbg_random( &ctr_drbg, buf, sizeof( buf ) ); - if( ret != 0 ) - { + for (i = 0, k = 768; i < k; i++) { + ret = mbedtls_ctr_drbg_random(&ctr_drbg, buf, sizeof(buf)); + if (ret != 0) { mbedtls_printf("failed!\n"); goto cleanup; } - fwrite( buf, 1, sizeof( buf ), f ); + fwrite(buf, 1, sizeof(buf), f); - mbedtls_printf( "Generating %ldkb of data in file '%s'... %04.1f" \ - "%% done\r", (long)(sizeof(buf) * k / 1024), argv[1], (100 * (float) (i + 1)) / k ); - fflush( stdout ); + mbedtls_printf("Generating %ldkb of data in file '%s'... %04.1f" \ + "%% done\r", + (long) (sizeof(buf) * k / 1024), + argv[1], + (100 * (float) (i + 1)) / k); + fflush(stdout); } exit_code = MBEDTLS_EXIT_SUCCESS; @@ -112,10 +110,10 @@ int main( int argc, char *argv[] ) cleanup: mbedtls_printf("\n"); - fclose( f ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + fclose(f); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_CTR_DRBG_C && MBEDTLS_ENTROPY_C */ diff --git a/programs/ssl/dtls_client.c b/programs/ssl/dtls_client.c index d13ea2889..44a135f3e 100644 --- a/programs/ssl/dtls_client.c +++ b/programs/ssl/dtls_client.c @@ -26,14 +26,14 @@ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_PEM_PARSE_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_SSL_CLI_C and/or MBEDTLS_SSL_PROTO_DTLS and/or " - "MBEDTLS_NET_C and/or MBEDTLS_TIMING_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_PEM_PARSE_C not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_SSL_CLI_C and/or MBEDTLS_SSL_PROTO_DTLS and/or " + "MBEDTLS_NET_C and/or MBEDTLS_TIMING_C and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_PEM_PARSE_C not defined.\n"); + mbedtls_exit(0); } #else @@ -68,17 +68,17 @@ int main( void ) #define DEBUG_LEVEL 0 -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret, len; mbedtls_net_context server_fd; @@ -98,221 +98,217 @@ int main( int argc, char *argv[] ) ((void) argv); #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( DEBUG_LEVEL ); + mbedtls_debug_set_threshold(DEBUG_LEVEL); #endif /* * 0. Initialize the RNG and the session data */ - mbedtls_net_init( &server_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_x509_crt_init( &cacert ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&server_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_x509_crt_init(&cacert); + mbedtls_ctr_drbg_init(&ctr_drbg); - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 0. Load certificates */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); - ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret ); + ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); /* * 1. Start the connection */ - mbedtls_printf( " . Connecting to udp/%s/%s...", SERVER_NAME, SERVER_PORT ); - fflush( stdout ); + mbedtls_printf(" . Connecting to udp/%s/%s...", SERVER_NAME, SERVER_PORT); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, SERVER_ADDR, - SERVER_PORT, MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, SERVER_ADDR, + SERVER_PORT, MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Setup stuff */ - mbedtls_printf( " . Setting up the DTLS structure..." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the DTLS structure..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_DATAGRAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } /* OPTIONAL is usually a bad choice for security, but makes interop easier * in this simplified example, in which the ca chain is hardcoded. * Production code should set a proper ca chain and use REQUIRED. */ - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL ); - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); - mbedtls_ssl_conf_read_timeout( &conf, READ_TIMEOUT_MS ); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); + mbedtls_ssl_conf_read_timeout(&conf, READ_TIMEOUT_MS); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_set_hostname( &ssl, SERVER_NAME ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hostname(&ssl, SERVER_NAME)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &server_fd, - mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout ); + mbedtls_ssl_set_bio(&ssl, &server_fd, + mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout); - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 4. Handshake */ - mbedtls_printf( " . Performing the DTLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the DTLS handshake..."); + fflush(stdout); - do ret = mbedtls_ssl_handshake( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_handshake(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 5. Verify the server certificate */ - mbedtls_printf( " . Verifying peer X.509 certificate..." ); + mbedtls_printf(" . Verifying peer X.509 certificate..."); /* In real life, we would have used MBEDTLS_SSL_VERIFY_REQUIRED so that the * handshake would not succeed if the peer's cert is bad. Even if we used * MBEDTLS_SSL_VERIFY_OPTIONAL, we would bail out here if ret != 0 */ - if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 ) - { + if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) { #if !defined(MBEDTLS_X509_REMOVE_INFO) char vrfy_buf[512]; #endif - mbedtls_printf( " failed\n" ); + mbedtls_printf(" failed\n"); #if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); + mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); - mbedtls_printf( "%s\n", vrfy_buf ); + mbedtls_printf("%s\n", vrfy_buf); #endif + } else { + mbedtls_printf(" ok\n"); } - else - mbedtls_printf( " ok\n" ); /* * 6. Write the echo request */ send_request: - mbedtls_printf( " > Write to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write to server:"); + fflush(stdout); - len = sizeof( MESSAGE ) - 1; + len = sizeof(MESSAGE) - 1; - do ret = mbedtls_ssl_write( &ssl, (unsigned char *) MESSAGE, len ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_write(&ssl, (unsigned char *) MESSAGE, len); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto exit; } len = ret; - mbedtls_printf( " %d bytes written\n\n%s\n\n", len, MESSAGE ); + mbedtls_printf(" %d bytes written\n\n%s\n\n", len, MESSAGE); /* * 7. Read the echo response */ - mbedtls_printf( " < Read from server:" ); - fflush( stdout ); + mbedtls_printf(" < Read from server:"); + fflush(stdout); - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); - do ret = mbedtls_ssl_read( &ssl, buf, len ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_read(&ssl, buf, len); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_TIMEOUT: - mbedtls_printf( " timeout\n\n" ); - if( retry_left-- > 0 ) + mbedtls_printf(" timeout\n\n"); + if (retry_left-- > 0) { goto send_request; + } goto exit; case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); ret = 0; goto close_notify; default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret); goto exit; } } len = ret; - mbedtls_printf( " %d bytes read\n\n%s\n\n", len, buf ); + mbedtls_printf(" %d bytes read\n\n%s\n\n", len, buf); /* * 8. Done, cleanly close the connection */ close_notify: - mbedtls_printf( " . Closing the connection..." ); + mbedtls_printf(" . Closing the connection..."); /* No error checking, the connection might be closed already */ - do ret = mbedtls_ssl_close_notify( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_close_notify(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE); ret = 0; - mbedtls_printf( " done\n" ); + mbedtls_printf(" done\n"); /* * 9. Final clean-ups and exit @@ -320,27 +316,27 @@ close_notify: exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf( "Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); - mbedtls_x509_crt_free( &cacert ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_x509_crt_free(&cacert); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); /* Shell can not handle large exit numbers -> 1 for errors */ - if( ret < 0 ) + if (ret < 0) { ret = 1; + } - mbedtls_exit( ret ); + mbedtls_exit(ret); } #endif /* MBEDTLS_SSL_CLI_C && MBEDTLS_SSL_PROTO_DTLS && MBEDTLS_NET_C && MBEDTLS_TIMING_C && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && diff --git a/programs/ssl/dtls_server.c b/programs/ssl/dtls_server.c index 10d82ba87..6f8c8415f 100644 --- a/programs/ssl/dtls_server.c +++ b/programs/ssl/dtls_server.c @@ -36,14 +36,14 @@ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_TIMING_C) -int main( void ) +int main(void) { - printf( "MBEDTLS_SSL_SRV_C and/or MBEDTLS_SSL_PROTO_DTLS and/or " - "MBEDTLS_SSL_COOKIE_C and/or MBEDTLS_NET_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_PEM_PARSE_C and/or MBEDTLS_TIMING_C not defined.\n" ); - mbedtls_exit( 0 ); + printf("MBEDTLS_SSL_SRV_C and/or MBEDTLS_SSL_PROTO_DTLS and/or " + "MBEDTLS_SSL_COOKIE_C and/or MBEDTLS_NET_C and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_PEM_PARSE_C and/or MBEDTLS_TIMING_C not defined.\n"); + mbedtls_exit(0); } #else @@ -75,17 +75,17 @@ int main( void ) #define DEBUG_LEVEL 0 -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -int main( void ) +int main(void) { int ret, len; mbedtls_net_context listen_fd, client_fd; @@ -106,274 +106,265 @@ int main( void ) mbedtls_ssl_cache_context cache; #endif - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_ssl_cookie_init( &cookie_ctx ); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_ssl_cookie_init(&cookie_ctx); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_init( &cache ); + mbedtls_ssl_cache_init(&cache); #endif - mbedtls_x509_crt_init( &srvcert ); - mbedtls_pk_init( &pkey ); - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_x509_crt_init(&srvcert); + mbedtls_pk_init(&pkey); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( DEBUG_LEVEL ); + mbedtls_debug_set_threshold(DEBUG_LEVEL); #endif /* * 1. Seed the RNG */ - printf( " . Seeding the random number generator..." ); - fflush( stdout ); + printf(" . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - printf( " ok\n" ); + printf(" ok\n"); /* * 2. Load the certificates and private RSA key */ - printf( "\n . Loading the server cert. and key..." ); - fflush( stdout ); + printf("\n . Loading the server cert. and key..."); + fflush(stdout); /* * This demonstration program uses embedded test certificates. * Instead, you may want to use mbedtls_x509_crt_parse_file() to read the * server and CA certificates, as well as mbedtls_pk_parse_keyfile(). */ - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ); - if( ret != 0 ) - { - printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len); + if (ret != 0) { + printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret != 0 ) - { - printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret != 0) { + printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, - mbedtls_test_srv_key_len, NULL, 0, mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret ); + ret = mbedtls_pk_parse_key(&pkey, + (const unsigned char *) mbedtls_test_srv_key, + mbedtls_test_srv_key_len, + NULL, + 0, + mbedtls_ctr_drbg_random, + &ctr_drbg); + if (ret != 0) { + printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret); goto exit; } - printf( " ok\n" ); + printf(" ok\n"); /* * 3. Setup the "listening" UDP socket */ - printf( " . Bind on udp/*/4433 ..." ); - fflush( stdout ); + printf(" . Bind on udp/*/4433 ..."); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, BIND_IP, "4433", MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, BIND_IP, "4433", MBEDTLS_NET_PROTO_UDP)) != 0) { + printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - printf( " ok\n" ); + printf(" ok\n"); /* * 4. Setup stuff */ - printf( " . Setting up the DTLS data..." ); - fflush( stdout ); + printf(" . Setting up the DTLS data..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_SERVER, - MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_SERVER, + MBEDTLS_SSL_TRANSPORT_DATAGRAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); - mbedtls_ssl_conf_read_timeout( &conf, READ_TIMEOUT_MS ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); + mbedtls_ssl_conf_read_timeout(&conf, READ_TIMEOUT_MS); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_conf_session_cache( &conf, &cache, + mbedtls_ssl_conf_session_cache(&conf, &cache, mbedtls_ssl_cache_get, - mbedtls_ssl_cache_set ); + mbedtls_ssl_cache_set); #endif - mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL ); - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 ) - { - printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) { + printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_cookie_setup( &cookie_ctx, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - printf( " failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_cookie_setup(&cookie_ctx, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + printf(" failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret); goto exit; } - mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, - &cookie_ctx ); + mbedtls_ssl_conf_dtls_cookies(&conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, + &cookie_ctx); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto exit; } - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); - printf( " ok\n" ); + printf(" ok\n"); reset: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - printf("Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &client_fd ); + mbedtls_net_free(&client_fd); - mbedtls_ssl_session_reset( &ssl ); + mbedtls_ssl_session_reset(&ssl); /* * 3. Wait until a client connects */ - printf( " . Waiting for a remote connection ..." ); - fflush( stdout ); + printf(" . Waiting for a remote connection ..."); + fflush(stdout); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - client_ip, sizeof( client_ip ), &cliip_len ) ) != 0 ) - { - printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + client_ip, sizeof(client_ip), &cliip_len)) != 0) { + printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret); goto exit; } /* For HelloVerifyRequest cookies */ - if( ( ret = mbedtls_ssl_set_client_transport_id( &ssl, - client_ip, cliip_len ) ) != 0 ) - { - printf( " failed\n ! " - "mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_set_client_transport_id(&ssl, + client_ip, cliip_len)) != 0) { + printf(" failed\n ! " + "mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &client_fd, - mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout ); + mbedtls_ssl_set_bio(&ssl, &client_fd, + mbedtls_net_send, mbedtls_net_recv, mbedtls_net_recv_timeout); - printf( " ok\n" ); + printf(" ok\n"); /* * 5. Handshake */ - printf( " . Performing the DTLS handshake..." ); - fflush( stdout ); + printf(" . Performing the DTLS handshake..."); + fflush(stdout); - do ret = mbedtls_ssl_handshake( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_handshake(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED ) - { - printf( " hello verification requested\n" ); + if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) { + printf(" hello verification requested\n"); ret = 0; goto reset; - } - else if( ret != 0 ) - { - printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); + } else if (ret != 0) { + printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret); goto reset; } - printf( " ok\n" ); + printf(" ok\n"); /* * 6. Read the echo Request */ - printf( " < Read from client:" ); - fflush( stdout ); + printf(" < Read from client:"); + fflush(stdout); - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); - do ret = mbedtls_ssl_read( &ssl, buf, len ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_read(&ssl, buf, len); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_TIMEOUT: - printf( " timeout\n\n" ); + printf(" timeout\n\n"); goto reset; case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - printf( " connection was closed gracefully\n" ); + printf(" connection was closed gracefully\n"); ret = 0; goto close_notify; default: - printf( " mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret ); + printf(" mbedtls_ssl_read returned -0x%x\n\n", (unsigned int) -ret); goto reset; } } len = ret; - printf( " %d bytes read\n\n%s\n\n", len, buf ); + printf(" %d bytes read\n\n%s\n\n", len, buf); /* * 7. Write the 200 Response */ - printf( " > Write to client:" ); - fflush( stdout ); + printf(" > Write to client:"); + fflush(stdout); - do ret = mbedtls_ssl_write( &ssl, buf, len ); - while( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_write(&ssl, buf, len); + } while (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); - if( ret < 0 ) - { - printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + if (ret < 0) { + printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto exit; } len = ret; - printf( " %d bytes written\n\n%s\n\n", len, buf ); + printf(" %d bytes written\n\n%s\n\n", len, buf); /* * 8. Done, cleanly close the connection */ close_notify: - printf( " . Closing the connection..." ); + printf(" . Closing the connection..."); /* No error checking, the connection might be closed already */ - do ret = mbedtls_ssl_close_notify( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_close_notify(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE); ret = 0; - printf( " done\n" ); + printf(" done\n"); goto reset; @@ -383,33 +374,33 @@ close_notify: exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - printf( "Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&listen_fd); - mbedtls_x509_crt_free( &srvcert ); - mbedtls_pk_free( &pkey ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_cookie_free( &cookie_ctx ); + mbedtls_x509_crt_free(&srvcert); + mbedtls_pk_free(&pkey); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_cookie_free(&cookie_ctx); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_free( &cache ); + mbedtls_ssl_cache_free(&cache); #endif - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); /* Shell can not handle large exit numbers -> 1 for errors */ - if( ret < 0 ) + if (ret < 0) { ret = 1; + } - mbedtls_exit( ret ); + mbedtls_exit(ret); } #endif /* MBEDTLS_SSL_SRV_C && MBEDTLS_SSL_PROTO_DTLS && MBEDTLS_SSL_COOKIE_C && MBEDTLS_NET_C && MBEDTLS_ENTROPY_C && diff --git a/programs/ssl/mini_client.c b/programs/ssl/mini_client.c index efcf65016..6dbbc6d20 100644 --- a/programs/ssl/mini_client.c +++ b/programs/ssl/mini_client.c @@ -40,12 +40,12 @@ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_SSL_CLI_C) || \ !defined(UNIX) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or UNIX " - "not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_CTR_DRBG_C and/or MBEDTLS_ENTROPY_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_SSL_CLI_C and/or UNIX " + "not defined.\n"); + mbedtls_exit(0); } #else @@ -137,8 +137,7 @@ const unsigned char ca_cert[] = { }; #endif /* MBEDTLS_X509_CRT_PARSE_C */ -enum exit_codes -{ +enum exit_codes { exit_ok = 0, ctr_drbg_seed_failed, ssl_config_defaults_failed, @@ -152,7 +151,7 @@ enum exit_codes }; -int main( void ) +int main(void) { int ret = exit_ok; mbedtls_net_context server_fd; @@ -165,62 +164,57 @@ int main( void ) mbedtls_ctr_drbg_context ctr_drbg; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_ctr_drbg_init(&ctr_drbg); /* * 0. Initialize and setup stuff */ - mbedtls_net_init( &server_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); + mbedtls_net_init(&server_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); #if defined(MBEDTLS_X509_CRT_PARSE_C) - mbedtls_x509_crt_init( &ca ); + mbedtls_x509_crt_init(&ca); #endif - mbedtls_entropy_init( &entropy ); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, strlen( pers ) ) != 0 ) - { + mbedtls_entropy_init(&entropy); + if (mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, strlen(pers)) != 0) { ret = ctr_drbg_seed_failed; goto exit; } - if( mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) != 0 ) - { + if (mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT) != 0) { ret = ssl_config_defaults_failed; goto exit; } - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) - mbedtls_ssl_conf_psk( &conf, psk, sizeof( psk ), - (const unsigned char *) psk_id, sizeof( psk_id ) - 1 ); + mbedtls_ssl_conf_psk(&conf, psk, sizeof(psk), + (const unsigned char *) psk_id, sizeof(psk_id) - 1); #endif #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( mbedtls_x509_crt_parse_der( &ca, ca_cert, sizeof( ca_cert ) ) != 0 ) - { + if (mbedtls_x509_crt_parse_der(&ca, ca_cert, sizeof(ca_cert)) != 0) { ret = x509_crt_parse_failed; goto exit; } - mbedtls_ssl_conf_ca_chain( &conf, &ca, NULL ); - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED ); + mbedtls_ssl_conf_ca_chain(&conf, &ca, NULL); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED); #endif - if( mbedtls_ssl_setup( &ssl, &conf ) != 0 ) - { + if (mbedtls_ssl_setup(&ssl, &conf) != 0) { ret = ssl_setup_failed; goto exit; } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( mbedtls_ssl_set_hostname( &ssl, HOSTNAME ) != 0 ) - { + if (mbedtls_ssl_set_hostname(&ssl, HOSTNAME) != 0) { ret = hostname_failed; goto exit; } @@ -229,7 +223,7 @@ int main( void ) /* * 1. Start the connection */ - memset( &addr, 0, sizeof( addr ) ); + memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; ret = 1; /* for endianness detection */ @@ -237,23 +231,20 @@ int main( void ) addr.sin_addr.s_addr = *((char *) &ret) == ret ? ADDR_LE : ADDR_BE; ret = 0; - if( ( server_fd.fd = socket( AF_INET, SOCK_STREAM, 0 ) ) < 0 ) - { + if ((server_fd.fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ret = socket_failed; goto exit; } - if( connect( server_fd.fd, - (const struct sockaddr *) &addr, sizeof( addr ) ) < 0 ) - { + if (connect(server_fd.fd, + (const struct sockaddr *) &addr, sizeof(addr)) < 0) { ret = connect_failed; goto exit; } - mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL); - if( mbedtls_ssl_handshake( &ssl ) != 0 ) - { + if (mbedtls_ssl_handshake(&ssl) != 0) { ret = ssl_handshake_failed; goto exit; } @@ -261,26 +252,25 @@ int main( void ) /* * 2. Write the GET request and close the connection */ - if( mbedtls_ssl_write( &ssl, (const unsigned char *) GET_REQUEST, - sizeof( GET_REQUEST ) - 1 ) <= 0 ) - { + if (mbedtls_ssl_write(&ssl, (const unsigned char *) GET_REQUEST, + sizeof(GET_REQUEST) - 1) <= 0) { ret = ssl_write_failed; goto exit; } - mbedtls_ssl_close_notify( &ssl ); + mbedtls_ssl_close_notify(&ssl); exit: - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); #if defined(MBEDTLS_X509_CRT_PARSE_C) - mbedtls_x509_crt_free( &ca ); + mbedtls_x509_crt_free(&ca); #endif - mbedtls_exit( ret ); + mbedtls_exit(ret); } #endif diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c index 5025698a8..ea96a4d61 100644 --- a/programs/ssl/ssl_client1.c +++ b/programs/ssl/ssl_client1.c @@ -26,14 +26,14 @@ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_PEM_PARSE_C) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " - "not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " + "not defined.\n"); + mbedtls_exit(0); } #else @@ -54,17 +54,17 @@ int main( void ) #define DEBUG_LEVEL 1 -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -int main( void ) +int main(void) { int ret = 1, len; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -80,220 +80,208 @@ int main( void ) mbedtls_x509_crt cacert; #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( DEBUG_LEVEL ); + mbedtls_debug_set_threshold(DEBUG_LEVEL); #endif /* * 0. Initialize the RNG and the session data */ - mbedtls_net_init( &server_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_x509_crt_init( &cacert ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&server_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_x509_crt_init(&cacert); + mbedtls_ctr_drbg_init(&ctr_drbg); - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 0. Initialize certificates */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); - ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret ); + ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); /* * 1. Start the connection */ - mbedtls_printf( " . Connecting to tcp/%s/%s...", SERVER_NAME, SERVER_PORT ); - fflush( stdout ); + mbedtls_printf(" . Connecting to tcp/%s/%s...", SERVER_NAME, SERVER_PORT); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, SERVER_NAME, - SERVER_PORT, MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, SERVER_NAME, + SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Setup stuff */ - mbedtls_printf( " . Setting up the SSL/TLS structure..." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the SSL/TLS structure..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* OPTIONAL is not optimal for security, * but makes interop easier in this simplified example */ - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL ); - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_set_hostname( &ssl, SERVER_NAME ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hostname(&ssl, SERVER_NAME)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL); /* * 4. Handshake */ - mbedtls_printf( " . Performing the SSL/TLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the SSL/TLS handshake..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 5. Verify the server certificate */ - mbedtls_printf( " . Verifying peer X.509 certificate..." ); + mbedtls_printf(" . Verifying peer X.509 certificate..."); /* In real life, we probably want to bail out when ret != 0 */ - if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 ) - { + if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) { #if !defined(MBEDTLS_X509_REMOVE_INFO) char vrfy_buf[512]; #endif - mbedtls_printf( " failed\n" ); + mbedtls_printf(" failed\n"); #if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); + mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); - mbedtls_printf( "%s\n", vrfy_buf ); + mbedtls_printf("%s\n", vrfy_buf); #endif + } else { + mbedtls_printf(" ok\n"); } - else - mbedtls_printf( " ok\n" ); /* * 3. Write the GET request */ - mbedtls_printf( " > Write to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write to server:"); + fflush(stdout); - len = sprintf( (char *) buf, GET_REQUEST ); + len = sprintf((char *) buf, GET_REQUEST); - while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto exit; } } len = ret; - mbedtls_printf( " %d bytes written\n\n%s", len, (char *) buf ); + mbedtls_printf(" %d bytes written\n\n%s", len, (char *) buf); /* * 7. Read the HTTP response */ - mbedtls_printf( " < Read from server:" ); - fflush( stdout ); + mbedtls_printf(" < Read from server:"); + fflush(stdout); - do - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) { continue; + } - if( ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY ) - break; - - if( ret < 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_ssl_read returned %d\n\n", ret ); + if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) { break; } - if( ret == 0 ) - { - mbedtls_printf( "\n\nEOF\n\n" ); + if (ret < 0) { + mbedtls_printf("failed\n ! mbedtls_ssl_read returned %d\n\n", ret); + break; + } + + if (ret == 0) { + mbedtls_printf("\n\nEOF\n\n"); break; } len = ret; - mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf ); - } - while( 1 ); + mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf); + } while (1); - mbedtls_ssl_close_notify( &ssl ); + mbedtls_ssl_close_notify(&ssl); exit_code = MBEDTLS_EXIT_SUCCESS; exit: #ifdef MBEDTLS_ERROR_C - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { + if (exit_code != MBEDTLS_EXIT_SUCCESS) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); - mbedtls_x509_crt_free( &cacert ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_x509_crt_free(&cacert); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C && diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 304d10c0c..4b3799f93 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -26,16 +26,16 @@ #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) -int main( void ) +int main(void) { - mbedtls_printf( MBEDTLS_SSL_TEST_IMPOSSIBLE ); - mbedtls_exit( 0 ); + mbedtls_printf(MBEDTLS_SSL_TEST_IMPOSSIBLE); + mbedtls_exit(0); } #elif !defined(MBEDTLS_SSL_CLI_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_SSL_CLI_C not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_SSL_CLI_C not defined.\n"); + mbedtls_exit(0); } #else /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_CLI_C */ @@ -127,7 +127,7 @@ int main( void ) #define USAGE_CONTEXT_CRT_CB \ " context_crt_cb=%%d This determines whether the CRT verification callback is bound\n" \ " to the SSL configuration of the SSL context.\n" \ - " Possible values:\n"\ + " Possible values:\n" \ " - 0 (default): Use CRT callback bound to configuration\n" \ " - 1: Use CRT callback bound to SSL context\n" #else @@ -144,8 +144,8 @@ int main( void ) " use \"none\" to skip loading any top-level CAs.\n" \ " crt_file=%%s Your own cert and chain (in bottom to top order, top may be omitted)\n" \ " default: \"\" (pre-loaded)\n" \ - " key_file=%%s default: \"\" (pre-loaded)\n"\ - " key_pwd=%%s Password for key specified by key_file argument\n"\ + " key_file=%%s default: \"\" (pre-loaded)\n" \ + " key_pwd=%%s Password for key specified by key_file argument\n" \ " default: none\n" #else #define USAGE_IO \ @@ -225,7 +225,7 @@ int main( void ) #if defined(MBEDTLS_SSL_DTLS_SRTP) #define USAGE_SRTP \ " use_srtp=%%d default: 0 (disabled)\n" \ - " This cannot be used with eap_tls=1 or "\ + " This cannot be used with eap_tls=1 or " \ " nss_keylog=1\n" \ " srtp_force_profile=%%d default: 0 (all enabled)\n" \ " available profiles:\n" \ @@ -343,7 +343,7 @@ int main( void ) " serialize=%%d default: 0 (do not serialize/deserialize)\n" \ " options: 1 (serialize)\n" \ " 2 (serialize with re-initialization)\n" \ - " context_file=%%s The file path to write a serialized connection\n"\ + " context_file=%%s The file path to write a serialized connection\n" \ " in the form of base64 code (serialize option\n" \ " must be set)\n" \ " default: \"\" (do nothing)\n" \ @@ -387,21 +387,21 @@ int main( void ) " request_page=%%s default: \".\"\n" \ " request_size=%%d default: about 34 (basic request)\n" \ " (minimum: 0, max: " MAX_REQUEST_SIZE_STR ")\n" \ - " If 0, in the first exchange only an empty\n" \ - " application data message is sent followed by\n" \ - " a second non-empty message before attempting\n" \ - " to read a response from the server\n" \ - " debug_level=%%d default: 0 (disabled)\n" \ - " build_version=%%d default: none (disabled)\n" \ - " option: 1 (print build version only and stop)\n" \ - " nbio=%%d default: 0 (blocking I/O)\n" \ - " options: 1 (non-blocking), 2 (added delays)\n" \ - " event=%%d default: 0 (loop)\n" \ - " options: 1 (level-triggered, implies nbio=1),\n" \ - " read_timeout=%%d default: 0 ms (no timeout)\n" \ - " max_resend=%%d default: 0 (no resend on timeout)\n" \ - " skip_close_notify=%%d default: 0 (send close_notify)\n" \ - "\n" \ + " If 0, in the first exchange only an empty\n" \ + " application data message is sent followed by\n" \ + " a second non-empty message before attempting\n" \ + " to read a response from the server\n" \ + " debug_level=%%d default: 0 (disabled)\n" \ + " build_version=%%d default: none (disabled)\n" \ + " option: 1 (print build version only and stop)\n" \ + " nbio=%%d default: 0 (blocking I/O)\n" \ + " options: 1 (non-blocking), 2 (added delays)\n" \ + " event=%%d default: 0 (loop)\n" \ + " options: 1 (level-triggered, implies nbio=1),\n" \ + " read_timeout=%%d default: 0 ms (no timeout)\n" \ + " max_resend=%%d default: 0 (no resend on timeout)\n" \ + " skip_close_notify=%%d default: 0 (send close_notify)\n" \ + "\n" \ USAGE_DTLS \ USAGE_CID \ USAGE_SRTP \ @@ -472,8 +472,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *server_name; /* hostname of the server (client only) */ const char *server_addr; /* address of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ @@ -572,51 +571,53 @@ static unsigned char peer_crt_info[1024]; /* * Enabled if debug_level > 1 in code below */ -static int my_verify( void *data, mbedtls_x509_crt *crt, - int depth, uint32_t *flags ) +static int my_verify(void *data, mbedtls_x509_crt *crt, + int depth, uint32_t *flags) { char buf[1024]; ((void) data); - mbedtls_printf( "\nVerify requested for (Depth %d):\n", depth ); + mbedtls_printf("\nVerify requested for (Depth %d):\n", depth); #if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", crt ); - if( depth == 0 ) - memcpy( peer_crt_info, buf, sizeof( buf ) ); + mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt); + if (depth == 0) { + memcpy(peer_crt_info, buf, sizeof(buf)); + } - if( opt.debug_level == 0 ) - return( 0 ); + if (opt.debug_level == 0) { + return 0; + } - mbedtls_printf( "%s", buf ); + mbedtls_printf("%s", buf); #else ((void) crt); ((void) depth); #endif - if ( ( *flags ) == 0 ) - mbedtls_printf( " This certificate has no flags\n" ); - else - { - x509_crt_verify_info( buf, sizeof( buf ), " ! ", *flags ); - mbedtls_printf( "%s\n", buf ); + if ((*flags) == 0) { + mbedtls_printf(" This certificate has no flags\n"); + } else { + x509_crt_verify_info(buf, sizeof(buf), " ! ", *flags); + mbedtls_printf("%s\n", buf); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -int report_cid_usage( mbedtls_ssl_context *ssl, - const char *additional_description ) +int report_cid_usage(mbedtls_ssl_context *ssl, + const char *additional_description) { int ret; - unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; + unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX]; size_t peer_cid_len; int cid_negotiated; - if( opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( 0 ); + if (opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 0; + } /* Check if the use of a CID has been negotiated, * but don't ask for the CID value and length. @@ -628,116 +629,104 @@ int report_cid_usage( mbedtls_ssl_context *ssl, * * An actual application, however, should use * just one call to mbedtls_ssl_get_peer_cid(). */ - ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated, - NULL, NULL ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", - (unsigned int) -ret ); - return( ret ); + ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated, + NULL, NULL); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", + (unsigned int) -ret); + return ret; } - if( cid_negotiated == MBEDTLS_SSL_CID_DISABLED ) - { - if( opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED ) - { - mbedtls_printf( "(%s) Use of Connection ID was rejected by the server.\n", - additional_description ); + if (cid_negotiated == MBEDTLS_SSL_CID_DISABLED) { + if (opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED) { + mbedtls_printf("(%s) Use of Connection ID was rejected by the server.\n", + additional_description); } - } - else - { - size_t idx=0; - mbedtls_printf( "(%s) Use of Connection ID has been negotiated.\n", - additional_description ); + } else { + size_t idx = 0; + mbedtls_printf("(%s) Use of Connection ID has been negotiated.\n", + additional_description); /* Ask for just the length of the peer's CID. */ - ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated, - NULL, &peer_cid_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", - (unsigned int) -ret ); - return( ret ); + ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated, + NULL, &peer_cid_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", + (unsigned int) -ret); + return ret; } /* Ask for just length + value of the peer's CID. */ - ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated, - peer_cid, &peer_cid_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", - (unsigned int) -ret ); - return( ret ); + ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated, + peer_cid, &peer_cid_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", + (unsigned int) -ret); + return ret; } - mbedtls_printf( "(%s) Peer CID (length %u Bytes): ", - additional_description, - (unsigned) peer_cid_len ); - while( idx < peer_cid_len ) - { - mbedtls_printf( "%02x ", peer_cid[ idx ] ); + mbedtls_printf("(%s) Peer CID (length %u Bytes): ", + additional_description, + (unsigned) peer_cid_len); + while (idx < peer_cid_len) { + mbedtls_printf("%02x ", peer_cid[idx]); idx++; } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ -static int ssl_save_session_serialize( mbedtls_ssl_context *ssl, - unsigned char **session_data, - size_t *session_data_len ) +static int ssl_save_session_serialize(mbedtls_ssl_context *ssl, + unsigned char **session_data, + size_t *session_data_len) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_session exported_session; /* free any previously saved data */ - if( *session_data != NULL ) - { - mbedtls_platform_zeroize( *session_data, *session_data_len ); - mbedtls_free( *session_data ); + if (*session_data != NULL) { + mbedtls_platform_zeroize(*session_data, *session_data_len); + mbedtls_free(*session_data); *session_data = NULL; *session_data_len = 0; } - mbedtls_ssl_session_init( &exported_session ); - ret = mbedtls_ssl_get_session( ssl, &exported_session ); - if( ret != 0 ) - { + mbedtls_ssl_session_init(&exported_session); + ret = mbedtls_ssl_get_session(ssl, &exported_session); + if (ret != 0) { mbedtls_printf( "failed\n ! mbedtls_ssl_get_session() returned -%#02x\n", - (unsigned) -ret ); + (unsigned) -ret); goto exit; } /* get size of the buffer needed */ - mbedtls_ssl_session_save( &exported_session, NULL, 0, session_data_len ); - *session_data = mbedtls_calloc( 1, *session_data_len ); - if( *session_data == NULL ) - { - mbedtls_printf( " failed\n ! alloc %u bytes for session data\n", - (unsigned) *session_data_len ); + mbedtls_ssl_session_save(&exported_session, NULL, 0, session_data_len); + *session_data = mbedtls_calloc(1, *session_data_len); + if (*session_data == NULL) { + mbedtls_printf(" failed\n ! alloc %u bytes for session data\n", + (unsigned) *session_data_len); ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } /* actually save session data */ - if( ( ret = mbedtls_ssl_session_save( &exported_session, - *session_data, *session_data_len, - session_data_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_session_save(&exported_session, + *session_data, *session_data_len, + session_data_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_session_saved returned -0x%04x\n\n", + (unsigned int) -ret); goto exit; } exit: - mbedtls_ssl_session_free( &exported_session ); - return( ret ); + mbedtls_ssl_session_free(&exported_session); + return ret; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 0, len, tail_len, i, written, frags, retry_left; int query_config_ret = 0; @@ -776,7 +765,7 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) unsigned char mki[MBEDTLS_TLS_SRTP_MAX_MKI_LENGTH]; - size_t mki_len=0; + size_t mki_len = 0; #endif const char *pers = "ssl_client2"; @@ -819,12 +808,12 @@ int main( int argc, char *argv[] ) #endif unsigned char eap_tls_keymaterial[16]; unsigned char eap_tls_iv[8]; - const char* eap_tls_label = "client EAP encryption"; + const char *eap_tls_label = "client EAP encryption"; eap_tls_keys eap_tls_keying; -#if defined( MBEDTLS_SSL_DTLS_SRTP ) +#if defined(MBEDTLS_SSL_DTLS_SRTP) /*! master keys and master salt for SRTP generated during handshake */ unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH]; - const char* dtls_srtp_label = "EXTRACTOR-dtls_srtp"; + const char *dtls_srtp_label = "EXTRACTOR-dtls_srtp"; dtls_srtp_keys dtls_srtp_keying; const mbedtls_ssl_srtp_profile default_profiles[] = { MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80, @@ -840,63 +829,62 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); + mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf)); #endif #if defined(MBEDTLS_TEST_HOOKS) - test_hooks_init( ); + test_hooks_init(); #endif /* MBEDTLS_TEST_HOOKS */ /* * Make sure memory references are valid. */ - mbedtls_net_init( &server_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - memset( &saved_session, 0, sizeof( mbedtls_ssl_session ) ); - rng_init( &rng ); + mbedtls_net_init(&server_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + memset(&saved_session, 0, sizeof(mbedtls_ssl_session)); + rng_init(&rng); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - mbedtls_x509_crt_init( &cacert ); - mbedtls_x509_crt_init( &clicert ); - mbedtls_pk_init( &pkey ); + mbedtls_x509_crt_init(&cacert); + mbedtls_x509_crt_init(&clicert); + mbedtls_pk_init(&pkey); #endif #if defined(MBEDTLS_SSL_ALPN) - memset( (void * ) alpn_list, 0, sizeof( alpn_list ) ); + memset((void *) alpn_list, 0, sizeof(alpn_list)); #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) status = psa_crypto_init(); - if( status != PSA_SUCCESS ) - { - mbedtls_fprintf( stderr, "Failed to initialize PSA Crypto implementation: %d\n", - (int) status ); + if (status != PSA_SUCCESS) { + mbedtls_fprintf(stderr, "Failed to initialize PSA Crypto implementation: %d\n", + (int) status); ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; goto exit; } #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - mbedtls_test_enable_insecure_external_rng( ); + mbedtls_test_enable_insecure_external_rng(); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - if( argc == 0 ) - { - usage: - if( ret == 0 ) + if (argc == 0) { +usage: + if (ret == 0) { ret = 1; + } - mbedtls_printf( USAGE1 ); - mbedtls_printf( USAGE2 ); - mbedtls_printf( USAGE3 ); - mbedtls_printf( USAGE4 ); + mbedtls_printf(USAGE1); + mbedtls_printf(USAGE2); + mbedtls_printf(USAGE3); + mbedtls_printf(USAGE4); list = mbedtls_ssl_list_ciphersuites(); - while( *list ) - { - mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name( *list ) ); + while (*list) { + mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name(*list)); list++; - if( !*list ) + if (!*list) { break; - mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) ); + } + mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list)); list++; } mbedtls_printf("\n"); @@ -937,7 +925,7 @@ int main( int argc, char *argv[] ) opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; #endif opt.ec_max_ops = DFL_EC_MAX_OPS; - opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; + opt.force_ciphersuite[0] = DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES; #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -987,157 +975,142 @@ int main( int argc, char *argv[] ) opt.key_opaque_alg1 = DFL_KEY_OPAQUE_ALG; opt.key_opaque_alg2 = DFL_KEY_OPAQUE_ALG; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "server_name" ) == 0 ) + if (strcmp(p, "server_name") == 0) { opt.server_name = q; - else if( strcmp( p, "server_addr" ) == 0 ) + } else if (strcmp(p, "server_addr") == 0) { opt.server_addr = q; - else if( strcmp( p, "server_port" ) == 0 ) + } else if (strcmp(p, "server_port") == 0) { opt.server_port = q; - else if( strcmp( p, "dtls" ) == 0 ) - { - int t = atoi( q ); - if( t == 0 ) + } else if (strcmp(p, "dtls") == 0) { + int t = atoi(q); + if (t == 0) { opt.transport = MBEDTLS_SSL_TRANSPORT_STREAM; - else if( t == 1 ) + } else if (t == 1) { opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM; - else + } else { goto usage; - } - else if( strcmp( p, "debug_level" ) == 0 ) - { - opt.debug_level = atoi( q ); - if( opt.debug_level < 0 || opt.debug_level > 65535 ) + } + } else if (strcmp(p, "debug_level") == 0) { + opt.debug_level = atoi(q); + if (opt.debug_level < 0 || opt.debug_level > 65535) { goto usage; - } - else if( strcmp( p, "build_version" ) == 0 ) - { - if( strcmp( q, "1" ) == 0 ) - { - mbedtls_printf( "build version: %s (build %d)\n", - MBEDTLS_VERSION_STRING_FULL, - MBEDTLS_VERSION_NUMBER ); + } + } else if (strcmp(p, "build_version") == 0) { + if (strcmp(q, "1") == 0) { + mbedtls_printf("build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER); goto exit; } - } - else if( strcmp( p, "context_crt_cb" ) == 0 ) - { - opt.context_crt_cb = atoi( q ); - if( opt.context_crt_cb != 0 && opt.context_crt_cb != 1 ) + } else if (strcmp(p, "context_crt_cb") == 0) { + opt.context_crt_cb = atoi(q); + if (opt.context_crt_cb != 0 && opt.context_crt_cb != 1) { goto usage; - } - else if( strcmp( p, "nbio" ) == 0 ) - { - opt.nbio = atoi( q ); - if( opt.nbio < 0 || opt.nbio > 2 ) + } + } else if (strcmp(p, "nbio") == 0) { + opt.nbio = atoi(q); + if (opt.nbio < 0 || opt.nbio > 2) { goto usage; - } - else if( strcmp( p, "event" ) == 0 ) - { - opt.event = atoi( q ); - if( opt.event < 0 || opt.event > 2 ) + } + } else if (strcmp(p, "event") == 0) { + opt.event = atoi(q); + if (opt.event < 0 || opt.event > 2) { goto usage; - } - else if( strcmp( p, "read_timeout" ) == 0 ) - opt.read_timeout = atoi( q ); - else if( strcmp( p, "max_resend" ) == 0 ) - { - opt.max_resend = atoi( q ); - if( opt.max_resend < 0 ) + } + } else if (strcmp(p, "read_timeout") == 0) { + opt.read_timeout = atoi(q); + } else if (strcmp(p, "max_resend") == 0) { + opt.max_resend = atoi(q); + if (opt.max_resend < 0) { goto usage; - } - else if( strcmp( p, "request_page" ) == 0 ) + } + } else if (strcmp(p, "request_page") == 0) { opt.request_page = q; - else if( strcmp( p, "request_size" ) == 0 ) - { - opt.request_size = atoi( q ); - if( opt.request_size < 0 || - opt.request_size > MAX_REQUEST_SIZE ) + } else if (strcmp(p, "request_size") == 0) { + opt.request_size = atoi(q); + if (opt.request_size < 0 || + opt.request_size > MAX_REQUEST_SIZE) { goto usage; - } - else if( strcmp( p, "ca_file" ) == 0 ) + } + } else if (strcmp(p, "ca_file") == 0) { opt.ca_file = q; - else if( strcmp( p, "ca_path" ) == 0 ) + } else if (strcmp(p, "ca_path") == 0) { opt.ca_path = q; - else if( strcmp( p, "crt_file" ) == 0 ) + } else if (strcmp(p, "crt_file") == 0) { opt.crt_file = q; - else if( strcmp( p, "key_file" ) == 0 ) + } else if (strcmp(p, "key_file") == 0) { opt.key_file = q; - else if( strcmp( p, "key_pwd" ) == 0 ) + } else if (strcmp(p, "key_pwd") == 0) { opt.key_pwd = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - else if( strcmp( p, "key_opaque" ) == 0 ) - opt.key_opaque = atoi( q ); + else if (strcmp(p, "key_opaque") == 0) { + opt.key_opaque = atoi(q); + } #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - else if( strcmp( p, "cid" ) == 0 ) - { - opt.cid_enabled = atoi( q ); - if( opt.cid_enabled != 0 && opt.cid_enabled != 1 ) + else if (strcmp(p, "cid") == 0) { + opt.cid_enabled = atoi(q); + if (opt.cid_enabled != 0 && opt.cid_enabled != 1) { goto usage; - } - else if( strcmp( p, "cid_renego" ) == 0 ) - { - opt.cid_enabled_renego = atoi( q ); - if( opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1 ) + } + } else if (strcmp(p, "cid_renego") == 0) { + opt.cid_enabled_renego = atoi(q); + if (opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1) { goto usage; - } - else if( strcmp( p, "cid_val" ) == 0 ) - { + } + } else if (strcmp(p, "cid_val") == 0) { opt.cid_val = q; - } - else if( strcmp( p, "cid_val_renego" ) == 0 ) - { + } else if (strcmp(p, "cid_val_renego") == 0) { opt.cid_val_renego = q; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - else if( strcmp( p, "psk" ) == 0 ) + else if (strcmp(p, "psk") == 0) { opt.psk = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - else if( strcmp( p, "psk_opaque" ) == 0 ) - opt.psk_opaque = atoi( q ); + else if (strcmp(p, "psk_opaque") == 0) { + opt.psk_opaque = atoi(q); + } #endif #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - else if( strcmp( p, "ca_callback" ) == 0) - opt.ca_callback = atoi( q ); + else if (strcmp(p, "ca_callback") == 0) { + opt.ca_callback = atoi(q); + } #endif - else if( strcmp( p, "psk_identity" ) == 0 ) + else if (strcmp(p, "psk_identity") == 0) { opt.psk_identity = q; - else if( strcmp( p, "ecjpake_pw" ) == 0 ) + } else if (strcmp(p, "ecjpake_pw") == 0) { opt.ecjpake_pw = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) - opt.ecjpake_pw_opaque = atoi( q ); + else if (strcmp(p, "ecjpake_pw_opaque") == 0) { + opt.ecjpake_pw_opaque = atoi(q); + } #endif - else if( strcmp( p, "ec_max_ops" ) == 0 ) - opt.ec_max_ops = atoi( q ); - else if( strcmp( p, "force_ciphersuite" ) == 0 ) - { - opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q ); + else if (strcmp(p, "ec_max_ops") == 0) { + opt.ec_max_ops = atoi(q); + } else if (strcmp(p, "force_ciphersuite") == 0) { + opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q); - if( opt.force_ciphersuite[0] == 0 ) - { + if (opt.force_ciphersuite[0] == 0) { ret = 2; goto usage; } opt.force_ciphersuite[1] = 0; - } - else if( strcmp( p, "renegotiation" ) == 0 ) - { - opt.renegotiation = (atoi( q )) ? - MBEDTLS_SSL_RENEGOTIATION_ENABLED : - MBEDTLS_SSL_RENEGOTIATION_DISABLED; - } - else if( strcmp( p, "allow_legacy" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "renegotiation") == 0) { + opt.renegotiation = (atoi(q)) ? + MBEDTLS_SSL_RENEGOTIATION_ENABLED : + MBEDTLS_SSL_RENEGOTIATION_DISABLED; + } else if (strcmp(p, "allow_legacy") == 0) { + switch (atoi(q)) { case -1: opt.allow_legacy = MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE; break; @@ -1149,59 +1122,47 @@ int main( int argc, char *argv[] ) break; default: goto usage; } - } - else if( strcmp( p, "renegotiate" ) == 0 ) - { - opt.renegotiate = atoi( q ); - if( opt.renegotiate < 0 || opt.renegotiate > 1 ) + } else if (strcmp(p, "renegotiate") == 0) { + opt.renegotiate = atoi(q); + if (opt.renegotiate < 0 || opt.renegotiate > 1) { goto usage; - } - else if( strcmp( p, "exchanges" ) == 0 ) - { - opt.exchanges = atoi( q ); - if( opt.exchanges < 1 ) + } + } else if (strcmp(p, "exchanges") == 0) { + opt.exchanges = atoi(q); + if (opt.exchanges < 1) { goto usage; - } - else if( strcmp( p, "reconnect" ) == 0 ) - { - opt.reconnect = atoi( q ); - if( opt.reconnect < 0 || opt.reconnect > 2 ) + } + } else if (strcmp(p, "reconnect") == 0) { + opt.reconnect = atoi(q); + if (opt.reconnect < 0 || opt.reconnect > 2) { goto usage; - } - else if( strcmp( p, "reco_server_name" ) == 0 ) + } + } else if (strcmp(p, "reco_server_name") == 0) { opt.reco_server_name = q; - else if( strcmp( p, "reco_delay" ) == 0 ) - { - opt.reco_delay = atoi( q ); - if( opt.reco_delay < 0 ) + } else if (strcmp(p, "reco_delay") == 0) { + opt.reco_delay = atoi(q); + if (opt.reco_delay < 0) { goto usage; - } - else if( strcmp( p, "reco_mode" ) == 0 ) - { - opt.reco_mode = atoi( q ); - if( opt.reco_mode < 0 ) + } + } else if (strcmp(p, "reco_mode") == 0) { + opt.reco_mode = atoi(q); + if (opt.reco_mode < 0) { goto usage; - } - else if( strcmp( p, "reconnect_hard" ) == 0 ) - { - opt.reconnect_hard = atoi( q ); - if( opt.reconnect_hard < 0 || opt.reconnect_hard > 1 ) + } + } else if (strcmp(p, "reconnect_hard") == 0) { + opt.reconnect_hard = atoi(q); + if (opt.reconnect_hard < 0 || opt.reconnect_hard > 1) { goto usage; - } - else if( strcmp( p, "tickets" ) == 0 ) - { - opt.tickets = atoi( q ); - if( opt.tickets < 0 ) + } + } else if (strcmp(p, "tickets") == 0) { + opt.tickets = atoi(q); + if (opt.tickets < 0) { goto usage; - } - else if( strcmp( p, "alpn" ) == 0 ) - { + } + } else if (strcmp(p, "alpn") == 0) { opt.alpn_string = q; - } - else if( strcmp( p, "extended_ms" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "extended_ms") == 0) { + switch (atoi(q)) { case 0: opt.extended_ms = MBEDTLS_SSL_EXTENDED_MS_DISABLED; break; @@ -1210,17 +1171,16 @@ int main( int argc, char *argv[] ) break; default: goto usage; } - } - else if( strcmp( p, "curves" ) == 0 ) + } else if (strcmp(p, "curves") == 0) { opt.curves = q; + } #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - else if( strcmp( p, "sig_algs" ) == 0 ) + else if (strcmp(p, "sig_algs") == 0) { opt.sig_algs = q; + } #endif - else if( strcmp( p, "etm" ) == 0 ) - { - switch( atoi( q ) ) - { + else if (strcmp(p, "etm") == 0) { + switch (atoi(q)) { case 0: opt.etm = MBEDTLS_SSL_ETM_DISABLED; break; case 1: opt.etm = MBEDTLS_SSL_ETM_ENABLED; break; default: goto usage; @@ -1229,10 +1189,8 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) #if defined(MBEDTLS_SSL_EARLY_DATA) - else if( strcmp( p, "early_data" ) == 0 ) - { - switch( atoi( q ) ) - { + else if (strcmp(p, "early_data") == 0) { + switch (atoi(q)) { case 0: opt.early_data = MBEDTLS_SSL_EARLY_DATA_DISABLED; break; @@ -1244,390 +1202,337 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_EARLY_DATA */ - else if( strcmp( p, "tls13_kex_modes" ) == 0 ) - { - if( strcmp( q, "psk" ) == 0 ) + else if (strcmp(p, "tls13_kex_modes") == 0) { + if (strcmp(q, "psk") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; - else if( strcmp(q, "psk_ephemeral" ) == 0 ) + } else if (strcmp(q, "psk_ephemeral") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; - else if( strcmp(q, "ephemeral" ) == 0 ) + } else if (strcmp(q, "ephemeral") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; - else if( strcmp(q, "ephemeral_all" ) == 0 ) + } else if (strcmp(q, "ephemeral_all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL; - else if( strcmp( q, "psk_all" ) == 0 ) + } else if (strcmp(q, "psk_all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL; - else if( strcmp( q, "all" ) == 0 ) + } else if (strcmp(q, "all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; - else goto usage; + } else { + goto usage; + } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else if( strcmp( p, "min_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 || - strcmp( q, "dtls12" ) == 0 ) + else if (strcmp(p, "min_version") == 0) { + if (strcmp(q, "tls12") == 0 || + strcmp(q, "dtls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) + else if (strcmp(q, "tls13") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "max_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 || - strcmp( q, "dtls12" ) == 0 ) + } + } else if (strcmp(p, "max_version") == 0) { + if (strcmp(q, "tls12") == 0 || + strcmp(q, "dtls12") == 0) { opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) + else if (strcmp(q, "tls13") == 0) { opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "allow_sha1" ) == 0 ) - { - switch( atoi( q ) ) - { + } + } else if (strcmp(p, "allow_sha1") == 0) { + switch (atoi(q)) { case 0: opt.allow_sha1 = 0; break; case 1: opt.allow_sha1 = 1; break; default: goto usage; } - } - else if( strcmp( p, "force_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 ) - { + } else if (strcmp(p, "force_version") == 0) { + if (strcmp(q, "tls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; - } - else if( strcmp( q, "dtls12" ) == 0 ) - { + } else if (strcmp(q, "dtls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM; } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) - { + else if (strcmp(q, "tls13") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "auth_mode" ) == 0 ) - { - if( strcmp( q, "none" ) == 0 ) + } + } else if (strcmp(p, "auth_mode") == 0) { + if (strcmp(q, "none") == 0) { opt.auth_mode = MBEDTLS_SSL_VERIFY_NONE; - else if( strcmp( q, "optional" ) == 0 ) + } else if (strcmp(q, "optional") == 0) { opt.auth_mode = MBEDTLS_SSL_VERIFY_OPTIONAL; - else if( strcmp( q, "required" ) == 0 ) + } else if (strcmp(q, "required") == 0) { opt.auth_mode = MBEDTLS_SSL_VERIFY_REQUIRED; - else + } else { goto usage; - } - else if( strcmp( p, "max_frag_len" ) == 0 ) - { - if( strcmp( q, "512" ) == 0 ) + } + } else if (strcmp(p, "max_frag_len") == 0) { + if (strcmp(q, "512") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_512; - else if( strcmp( q, "1024" ) == 0 ) + } else if (strcmp(q, "1024") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_1024; - else if( strcmp( q, "2048" ) == 0 ) + } else if (strcmp(q, "2048") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_2048; - else if( strcmp( q, "4096" ) == 0 ) + } else if (strcmp(q, "4096") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_4096; - else + } else { goto usage; - } - else if( strcmp( p, "trunc_hmac" ) == 0 ) - { - switch( atoi( q ) ) - { + } + } else if (strcmp(p, "trunc_hmac") == 0) { + switch (atoi(q)) { case 0: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_DISABLED; break; case 1: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_ENABLED; break; default: goto usage; } - } - else if( strcmp( p, "hs_timeout" ) == 0 ) - { - if( ( p = strchr( q, '-' ) ) == NULL ) - goto usage; - *p++ = '\0'; - opt.hs_to_min = atoi( q ); - opt.hs_to_max = atoi( p ); - if( opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min ) - goto usage; - } - else if( strcmp( p, "mtu" ) == 0 ) - { - opt.dtls_mtu = atoi( q ); - if( opt.dtls_mtu < 0 ) - goto usage; - } - else if( strcmp( p, "dgram_packing" ) == 0 ) - { - opt.dgram_packing = atoi( q ); - if( opt.dgram_packing != 0 && - opt.dgram_packing != 1 ) - { + } else if (strcmp(p, "hs_timeout") == 0) { + if ((p = strchr(q, '-')) == NULL) { goto usage; } - } - else if( strcmp( p, "recsplit" ) == 0 ) - { - opt.recsplit = atoi( q ); - if( opt.recsplit < 0 || opt.recsplit > 1 ) + *p++ = '\0'; + opt.hs_to_min = atoi(q); + opt.hs_to_max = atoi(p); + if (opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min) { goto usage; - } - else if( strcmp( p, "dhmlen" ) == 0 ) - { - opt.dhmlen = atoi( q ); - if( opt.dhmlen < 0 ) + } + } else if (strcmp(p, "mtu") == 0) { + opt.dtls_mtu = atoi(q); + if (opt.dtls_mtu < 0) { goto usage; - } - else if( strcmp( p, "query_config" ) == 0 ) - { + } + } else if (strcmp(p, "dgram_packing") == 0) { + opt.dgram_packing = atoi(q); + if (opt.dgram_packing != 0 && + opt.dgram_packing != 1) { + goto usage; + } + } else if (strcmp(p, "recsplit") == 0) { + opt.recsplit = atoi(q); + if (opt.recsplit < 0 || opt.recsplit > 1) { + goto usage; + } + } else if (strcmp(p, "dhmlen") == 0) { + opt.dhmlen = atoi(q); + if (opt.dhmlen < 0) { + goto usage; + } + } else if (strcmp(p, "query_config") == 0) { opt.query_config_mode = 1; - query_config_ret = query_config( q ); + query_config_ret = query_config(q); goto exit; - } - else if( strcmp( p, "serialize") == 0 ) - { - opt.serialize = atoi( q ); - if( opt.serialize < 0 || opt.serialize > 2) + } else if (strcmp(p, "serialize") == 0) { + opt.serialize = atoi(q); + if (opt.serialize < 0 || opt.serialize > 2) { goto usage; - } - else if( strcmp( p, "context_file") == 0 ) - { + } + } else if (strcmp(p, "context_file") == 0) { opt.context_file = q; - } - else if( strcmp( p, "eap_tls" ) == 0 ) - { - opt.eap_tls = atoi( q ); - if( opt.eap_tls < 0 || opt.eap_tls > 1 ) + } else if (strcmp(p, "eap_tls") == 0) { + opt.eap_tls = atoi(q); + if (opt.eap_tls < 0 || opt.eap_tls > 1) { goto usage; - } - else if( strcmp( p, "reproducible" ) == 0 ) - { + } + } else if (strcmp(p, "reproducible") == 0) { opt.reproducible = 1; - } - else if( strcmp( p, "nss_keylog" ) == 0 ) - { - opt.nss_keylog = atoi( q ); - if( opt.nss_keylog < 0 || opt.nss_keylog > 1 ) + } else if (strcmp(p, "nss_keylog") == 0) { + opt.nss_keylog = atoi(q); + if (opt.nss_keylog < 0 || opt.nss_keylog > 1) { goto usage; - } - else if( strcmp( p, "nss_keylog_file" ) == 0 ) - { + } + } else if (strcmp(p, "nss_keylog_file") == 0) { opt.nss_keylog_file = q; - } - else if( strcmp( p, "skip_close_notify" ) == 0 ) - { - opt.skip_close_notify = atoi( q ); - if( opt.skip_close_notify < 0 || opt.skip_close_notify > 1 ) + } else if (strcmp(p, "skip_close_notify") == 0) { + opt.skip_close_notify = atoi(q); + if (opt.skip_close_notify < 0 || opt.skip_close_notify > 1) { goto usage; - } - else if( strcmp( p, "use_srtp" ) == 0 ) - { - opt.use_srtp = atoi ( q ); - } - else if( strcmp( p, "srtp_force_profile" ) == 0 ) - { - opt.force_srtp_profile = atoi( q ); - } - else if( strcmp( p, "mki" ) == 0 ) - { + } + } else if (strcmp(p, "use_srtp") == 0) { + opt.use_srtp = atoi(q); + } else if (strcmp(p, "srtp_force_profile") == 0) { + opt.force_srtp_profile = atoi(q); + } else if (strcmp(p, "mki") == 0) { opt.mki = q; - } - else if( strcmp( p, "key_opaque_algs" ) == 0 ) - { - if( key_opaque_alg_parse( q, &opt.key_opaque_alg1, - &opt.key_opaque_alg2 ) != 0 ) + } else if (strcmp(p, "key_opaque_algs") == 0) { + if (key_opaque_alg_parse(q, &opt.key_opaque_alg1, + &opt.key_opaque_alg2) != 0) { goto usage; - } - else + } + } else { goto usage; + } } - if( opt.nss_keylog != 0 && opt.eap_tls != 0 ) - { - mbedtls_printf( "Error: eap_tls and nss_keylog options cannot be used together.\n" ); + if (opt.nss_keylog != 0 && opt.eap_tls != 0) { + mbedtls_printf("Error: eap_tls and nss_keylog options cannot be used together.\n"); goto usage; } /* Event-driven IO is incompatible with the above custom * receive and send functions, as the polling builds on * refers to the underlying net_context. */ - if( opt.event == 1 && opt.nbio != 1 ) - { - mbedtls_printf( "Warning: event-driven IO mandates nbio=1 - overwrite\n" ); + if (opt.event == 1 && opt.nbio != 1) { + mbedtls_printf("Warning: event-driven IO mandates nbio=1 - overwrite\n"); opt.nbio = 1; } #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( opt.debug_level ); + mbedtls_debug_set_threshold(opt.debug_level); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) /* * Unhexify the pre-shared key if any is given */ - if( strlen( opt.psk ) ) - { - if( mbedtls_test_unhexify( psk, sizeof( psk ), - opt.psk, &psk_len ) != 0 ) - { - mbedtls_printf( "pre-shared key not valid\n" ); + if (strlen(opt.psk)) { + if (mbedtls_test_unhexify(psk, sizeof(psk), + opt.psk, &psk_len) != 0) { + mbedtls_printf("pre-shared key not valid\n"); goto exit; } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { - if( opt.psk == NULL ) - { - mbedtls_printf( "psk_opaque set but no psk to be imported specified.\n" ); + if (opt.psk_opaque != 0) { + if (opt.psk == NULL) { + mbedtls_printf("psk_opaque set but no psk to be imported specified.\n"); ret = 2; goto usage; } - if( opt.force_ciphersuite[0] <= 0 ) - { - mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" ); + if (opt.force_ciphersuite[0] <= 0) { + mbedtls_printf( + "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n"); ret = 2; goto usage; } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( opt.force_ciphersuite[0] > 0 ) - { + if (opt.force_ciphersuite[0] > 0) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info; ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( opt.force_ciphersuite[0] ); + mbedtls_ssl_ciphersuite_from_id(opt.force_ciphersuite[0]); - if( opt.max_version != -1 && - ciphersuite_info->min_tls_version > opt.max_version ) - { - mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" ); + if (opt.max_version != -1 && + ciphersuite_info->min_tls_version > opt.max_version) { + mbedtls_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } - if( opt.min_version != -1 && - ciphersuite_info->max_tls_version < opt.min_version ) - { - mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" ); + if (opt.min_version != -1 && + ciphersuite_info->max_tls_version < opt.min_version) { + mbedtls_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } /* If the server selects a version that's not supported by * this suite, then there will be no common ciphersuite... */ - if( opt.max_version == -1 || - opt.max_version > ciphersuite_info->max_tls_version ) - { + if (opt.max_version == -1 || + opt.max_version > ciphersuite_info->max_tls_version) { opt.max_version = ciphersuite_info->max_tls_version; } - if( opt.min_version < ciphersuite_info->min_tls_version ) - { + if (opt.min_version < ciphersuite_info->min_tls_version) { opt.min_version = ciphersuite_info->min_tls_version; /* DTLS starts with TLS 1.2 */ - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && - opt.min_version < MBEDTLS_SSL_VERSION_TLS1_2 ) + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM && + opt.min_version < MBEDTLS_SSL_VERSION_TLS1_2) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; + } } #if defined(MBEDTLS_USE_PSA_CRYPTO) -#if defined (MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) - if( opt.psk_opaque != 0 ) - { +#if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) + if (opt.psk_opaque != 0) { /* Determine KDF algorithm the opaque PSK will be used in. */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) + if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) { alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); - else + } else #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ - alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); + alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( mbedtls_test_unhexify( cid, sizeof( cid ), - opt.cid_val, &cid_len ) != 0 ) - { - mbedtls_printf( "CID not valid\n" ); + if (mbedtls_test_unhexify(cid, sizeof(cid), + opt.cid_val, &cid_len) != 0) { + mbedtls_printf("CID not valid\n"); goto exit; } /* Keep CID settings for renegotiation unless * specified otherwise. */ - if( opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO ) + if (opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO) { opt.cid_enabled_renego = opt.cid_enabled; - if( opt.cid_val_renego == DFL_CID_VALUE_RENEGO ) + } + if (opt.cid_val_renego == DFL_CID_VALUE_RENEGO) { opt.cid_val_renego = opt.cid_val; + } - if( mbedtls_test_unhexify( cid_renego, sizeof( cid_renego ), - opt.cid_val_renego, &cid_renego_len ) != 0 ) - { - mbedtls_printf( "CID not valid\n" ); + if (mbedtls_test_unhexify(cid_renego, sizeof(cid_renego), + opt.cid_val_renego, &cid_renego_len) != 0) { + mbedtls_printf("CID not valid\n"); goto exit; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_ECP_C) - if( opt.curves != NULL ) - { + if (opt.curves != NULL) { p = (char *) opt.curves; i = 0; - if( strcmp( p, "none" ) == 0 ) - { + if (strcmp(p, "none") == 0) { group_list[0] = 0; - } - else if( strcmp( p, "default" ) != 0 ) - { + } else if (strcmp(p, "default") != 0) { /* Leave room for a final NULL in curve list */ - while( i < CURVE_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < CURVE_LIST_SIZE - 1 && *p != '\0') { q = p; /* Terminate the current string */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) - *p++ = '\0'; - - if( ( curve_cur = mbedtls_ecp_curve_info_from_name( q ) ) != NULL ) - { - group_list[i++] = curve_cur->tls_id; } - else - { - mbedtls_printf( "unknown curve %s\n", q ); - mbedtls_printf( "supported curves: " ); - for( curve_cur = mbedtls_ecp_curve_list(); + if (*p == ',') { + *p++ = '\0'; + } + + if ((curve_cur = mbedtls_ecp_curve_info_from_name(q)) != NULL) { + group_list[i++] = curve_cur->tls_id; + } else { + mbedtls_printf("unknown curve %s\n", q); + mbedtls_printf("supported curves: "); + for (curve_cur = mbedtls_ecp_curve_list(); curve_cur->grp_id != MBEDTLS_ECP_DP_NONE; - curve_cur++ ) - { - mbedtls_printf( "%s ", curve_cur->name ); + curve_cur++) { + mbedtls_printf("%s ", curve_cur->name); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); goto exit; } } - mbedtls_printf("Number of curves: %d\n", i ); + mbedtls_printf("Number of curves: %d\n", i); - if( i == CURVE_LIST_SIZE - 1 && *p != '\0' ) - { - mbedtls_printf( "curves list too long, maximum %d", - CURVE_LIST_SIZE - 1 ); + if (i == CURVE_LIST_SIZE - 1 && *p != '\0') { + mbedtls_printf("curves list too long, maximum %d", + CURVE_LIST_SIZE - 1); goto exit; } @@ -1637,99 +1542,65 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( opt.sig_algs != NULL ) - { + if (opt.sig_algs != NULL) { p = (char *) opt.sig_algs; i = 0; /* Leave room for a final MBEDTLS_TLS1_3_SIG_NONE in signature algorithm list (sig_alg_list). */ - while( i < SIG_ALG_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < SIG_ALG_LIST_SIZE - 1 && *p != '\0') { q = p; /* Terminate the current string */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) + } + if (*p == ',') { *p++ = '\0'; + } - if( strcmp( q, "rsa_pkcs1_sha256" ) == 0 ) - { + if (strcmp(q, "rsa_pkcs1_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256; - } - else if( strcmp( q, "rsa_pkcs1_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384; - } - else if( strcmp( q, "rsa_pkcs1_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512; - } - else if( strcmp( q, "ecdsa_secp256r1_sha256" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp256r1_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256; - } - else if( strcmp( q, "ecdsa_secp384r1_sha384" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp384r1_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384; - } - else if( strcmp( q, "ecdsa_secp521r1_sha512" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp521r1_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512; - } - else if( strcmp( q, "rsa_pss_rsae_sha256" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256; - } - else if( strcmp( q, "rsa_pss_rsae_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384; - } - else if( strcmp( q, "rsa_pss_rsae_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512; - } - else if( strcmp( q, "ed25519" ) == 0 ) - { + } else if (strcmp(q, "ed25519") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED25519; - } - else if( strcmp( q, "ed448" ) == 0 ) - { + } else if (strcmp(q, "ed448") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED448; - } - else if( strcmp( q, "rsa_pss_pss_sha256" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256; - } - else if( strcmp( q, "rsa_pss_pss_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384; - } - else if( strcmp( q, "rsa_pss_pss_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512; - } - else if( strcmp( q, "rsa_pkcs1_sha1" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha1") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1; - } - else if( strcmp( q, "ecdsa_sha1" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_sha1") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SHA1; - } - else - { + } else { ret = -1; - mbedtls_printf( "unknown signature algorithm \"%s\"\n", q ); + mbedtls_printf("unknown signature algorithm \"%s\"\n", q); mbedtls_print_supported_sig_algs(); goto exit; } } - if( i == ( SIG_ALG_LIST_SIZE - 1 ) && *p != '\0' ) - { - mbedtls_printf( "signature algorithm list too long, maximum %d", - SIG_ALG_LIST_SIZE - 1 ); + if (i == (SIG_ALG_LIST_SIZE - 1) && *p != '\0') { + mbedtls_printf("signature algorithm list too long, maximum %d", + SIG_ALG_LIST_SIZE - 1); goto exit; } @@ -1738,490 +1609,462 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - { + if (opt.alpn_string != NULL) { p = (char *) opt.alpn_string; i = 0; /* Leave room for a final NULL in alpn_list */ - while( i < ALPN_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < ALPN_LIST_SIZE - 1 && *p != '\0') { alpn_list[i++] = p; /* Terminate the current string and move on to next one */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) + } + if (*p == ',') { *p++ = '\0'; + } } } #endif /* MBEDTLS_SSL_ALPN */ - mbedtls_printf( "build version: %s (build %d)\n", - MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); + mbedtls_printf("build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER); /* * 0. Initialize the RNG and the session data */ - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - ret = rng_seed( &rng, opt.reproducible, pers ); - if( ret != 0 ) + ret = rng_seed(&rng, opt.reproducible, pers); + if (ret != 0) { goto exit; - mbedtls_printf( " ok\n" ); + } + mbedtls_printf(" ok\n"); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); - if( strcmp( opt.ca_path, "none" ) == 0 || - strcmp( opt.ca_file, "none" ) == 0 ) - { + if (strcmp(opt.ca_path, "none") == 0 || + strcmp(opt.ca_file, "none") == 0) { ret = 0; - } - else + } else #if defined(MBEDTLS_FS_IO) - if( strlen( opt.ca_path ) ) - ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path ); - else if( strlen( opt.ca_file ) ) - ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file ); - else + if (strlen(opt.ca_path)) { + ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path); + } else if (strlen(opt.ca_file)) { + ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file); + } else #endif { #if defined(MBEDTLS_PEM_PARSE_C) - for( i = 0; mbedtls_test_cas[i] != NULL; i++ ) - { - ret = mbedtls_x509_crt_parse( &cacert, - (const unsigned char *) mbedtls_test_cas[i], - mbedtls_test_cas_len[i] ); - if( ret != 0 ) + for (i = 0; mbedtls_test_cas[i] != NULL; i++) { + ret = mbedtls_x509_crt_parse(&cacert, + (const unsigned char *) mbedtls_test_cas[i], + mbedtls_test_cas_len[i]); + if (ret != 0) { break; + } } #endif /* MBEDTLS_PEM_PARSE_C */ - if( ret == 0 ) - { - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) - { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) + if (ret == 0) { + for (i = 0; mbedtls_test_cas_der[i] != NULL; i++) { + ret = mbedtls_x509_crt_parse_der(&cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i]); + if (ret != 0) { break; + } } } } - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", - (unsigned int) -ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); /* * 1.2. Load own certificate and private key * * (can be skipped if client authentication is not required) */ - mbedtls_printf( " . Loading the client cert. and key..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the client cert. and key..."); + fflush(stdout); - if( strcmp( opt.crt_file, "none" ) == 0 ) + if (strcmp(opt.crt_file, "none") == 0) { ret = 0; - else + } else #if defined(MBEDTLS_FS_IO) - if( strlen( opt.crt_file ) ) - ret = mbedtls_x509_crt_parse_file( &clicert, opt.crt_file ); - else + if (strlen(opt.crt_file)) { + ret = mbedtls_x509_crt_parse_file(&clicert, opt.crt_file); + } else #endif - ret = mbedtls_x509_crt_parse( &clicert, - (const unsigned char *) mbedtls_test_cli_crt, - mbedtls_test_cli_crt_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", - (unsigned int) -ret ); + { ret = mbedtls_x509_crt_parse(&clicert, + (const unsigned char *) mbedtls_test_cli_crt, + mbedtls_test_cli_crt_len); } + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( strcmp( opt.key_file, "none" ) == 0 ) + if (strcmp(opt.key_file, "none") == 0) { ret = 0; - else + } else #if defined(MBEDTLS_FS_IO) - if( strlen( opt.key_file ) ) - ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file, opt.key_pwd, rng_get, &rng ); - else + if (strlen(opt.key_file)) { + ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file, opt.key_pwd, rng_get, &rng); + } else #endif - ret = mbedtls_pk_parse_key( &pkey, - (const unsigned char *) mbedtls_test_cli_key, - mbedtls_test_cli_key_len, NULL, 0, rng_get, &rng ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n", - (unsigned int) -ret ); + { ret = mbedtls_pk_parse_key(&pkey, + (const unsigned char *) mbedtls_test_cli_key, + mbedtls_test_cli_key_len, NULL, 0, rng_get, &rng); } + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.key_opaque != 0 ) - { + if (opt.key_opaque != 0) { psa_algorithm_t psa_alg, psa_alg2 = PSA_ALG_NONE; psa_key_usage_t usage = 0; - if( key_opaque_set_alg_usage( opt.key_opaque_alg1, - opt.key_opaque_alg2, - &psa_alg, &psa_alg2, - &usage, - mbedtls_pk_get_type( &pkey ) ) == 0 ) - { - ret = mbedtls_pk_wrap_as_opaque( &pkey, &key_slot, psa_alg, - usage, psa_alg2 ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! " - "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", - (unsigned int) -ret ); + if (key_opaque_set_alg_usage(opt.key_opaque_alg1, + opt.key_opaque_alg2, + &psa_alg, &psa_alg2, + &usage, + mbedtls_pk_get_type(&pkey)) == 0) { + ret = mbedtls_pk_wrap_as_opaque(&pkey, &key_slot, psa_alg, + usage, psa_alg2); + if (ret != 0) { + mbedtls_printf(" failed\n ! " + "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_printf( " ok (key type: %s)\n", - strlen( opt.key_file ) || strlen( opt.key_opaque_alg1 ) ? - mbedtls_pk_get_name( &pkey ) : "none" ); + mbedtls_printf(" ok (key type: %s)\n", + strlen(opt.key_file) || strlen(opt.key_opaque_alg1) ? + mbedtls_pk_get_name(&pkey) : "none"); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ /* * 2. Setup stuff */ - mbedtls_printf( " . Setting up the SSL/TLS structure..." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the SSL/TLS structure..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - opt.transport, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + opt.transport, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. */ - if( opt.allow_sha1 > 0 ) - { - crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA1 ); - mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test ); - mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); + if (opt.allow_sha1 > 0) { + crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1); + mbedtls_ssl_conf_cert_profile(&conf, &crt_profile_for_test); + mbedtls_ssl_conf_sig_algs(&conf, ssl_sig_algs_for_test); + } + if (opt.context_crt_cb == 0) { + mbedtls_ssl_conf_verify(&conf, my_verify, NULL); } - if( opt.context_crt_cb == 0 ) - mbedtls_ssl_conf_verify( &conf, my_verify, NULL ); - memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); + memset(peer_crt_info, 0, sizeof(peer_crt_info)); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) - { - if( opt.cid_enabled == 1 && + if (opt.cid_enabled == 1 || opt.cid_enabled_renego == 1) { + if (opt.cid_enabled == 1 && opt.cid_enabled_renego == 1 && - cid_len != cid_renego_len ) - { - mbedtls_printf( "CID length must not change during renegotiation\n" ); + cid_len != cid_renego_len) { + mbedtls_printf("CID length must not change during renegotiation\n"); goto usage; } - if( opt.cid_enabled == 1 ) - ret = mbedtls_ssl_conf_cid( &conf, cid_len, - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ); - else - ret = mbedtls_ssl_conf_cid( &conf, cid_renego_len, - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ); + if (opt.cid_enabled == 1) { + ret = mbedtls_ssl_conf_cid(&conf, cid_len, + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE); + } else { + ret = mbedtls_ssl_conf_cid(&conf, cid_renego_len, + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE); + } - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n", - (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n", + (unsigned int) -ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - if( opt.auth_mode != DFL_AUTH_MODE ) - mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); + if (opt.auth_mode != DFL_AUTH_MODE) { + mbedtls_ssl_conf_authmode(&conf, opt.auth_mode); + } #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX ) - mbedtls_ssl_conf_handshake_timeout( &conf, opt.hs_to_min, - opt.hs_to_max ); + if (opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX) { + mbedtls_ssl_conf_handshake_timeout(&conf, opt.hs_to_min, + opt.hs_to_max); + } - if( opt.dgram_packing != DFL_DGRAM_PACKING ) - mbedtls_ssl_set_datagram_packing( &ssl, opt.dgram_packing ); + if (opt.dgram_packing != DFL_DGRAM_PACKING) { + mbedtls_ssl_set_datagram_packing(&ssl, opt.dgram_packing); + } #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - if( ( ret = mbedtls_ssl_conf_max_frag_len( &conf, opt.mfl_code ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", - ret ); + if ((ret = mbedtls_ssl_conf_max_frag_len(&conf, opt.mfl_code)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", + ret); goto exit; } #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) const mbedtls_ssl_srtp_profile forced_profile[] = - { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET }; - if( opt.use_srtp == 1 ) - { - if( opt.force_srtp_profile != 0 ) - { - ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles ( &conf, forced_profile ); - } - else - { - ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles ( &conf, default_profiles ); + { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET }; + if (opt.use_srtp == 1) { + if (opt.force_srtp_profile != 0) { + ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, forced_profile); + } else { + ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, default_profiles); } - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! " - "mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n", - ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! " + "mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n", + ret); goto exit; } - } - else if( opt.force_srtp_profile != 0 ) - { - mbedtls_printf( " failed\n ! must enable use_srtp to force srtp profile\n\n" ); + } else if (opt.force_srtp_profile != 0) { + mbedtls_printf(" failed\n ! must enable use_srtp to force srtp profile\n\n"); goto exit; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - if( opt.extended_ms != DFL_EXTENDED_MS ) - mbedtls_ssl_conf_extended_master_secret( &conf, opt.extended_ms ); + if (opt.extended_ms != DFL_EXTENDED_MS) { + mbedtls_ssl_conf_extended_master_secret(&conf, opt.extended_ms); + } #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( opt.etm != DFL_ETM ) - mbedtls_ssl_conf_encrypt_then_mac( &conf, opt.etm ); + if (opt.etm != DFL_ETM) { + mbedtls_ssl_conf_encrypt_then_mac(&conf, opt.etm); + } #endif #if defined(MBEDTLS_DHM_C) - if( opt.dhmlen != DFL_DHMLEN ) - mbedtls_ssl_conf_dhm_min_bitlen( &conf, opt.dhmlen ); + if (opt.dhmlen != DFL_DHMLEN) { + mbedtls_ssl_conf_dhm_min_bitlen(&conf, opt.dhmlen); + } #endif #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - if( ( ret = mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", - ret ); + if (opt.alpn_string != NULL) { + if ((ret = mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", + ret); goto exit; } + } #endif - if (opt.reproducible) - { + if (opt.reproducible) { #if defined(MBEDTLS_HAVE_TIME) #if defined(MBEDTLS_PLATFORM_TIME_ALT) - mbedtls_platform_set_time( dummy_constant_time ); + mbedtls_platform_set_time(dummy_constant_time); #else - fprintf( stderr, "Warning: reproducible option used without constant time\n" ); + fprintf(stderr, "Warning: reproducible option used without constant time\n"); #endif #endif /* MBEDTLS_HAVE_TIME */ } - mbedtls_ssl_conf_rng( &conf, rng_get, &rng ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, rng_get, &rng); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); - mbedtls_ssl_conf_read_timeout( &conf, opt.read_timeout ); + mbedtls_ssl_conf_read_timeout(&conf, opt.read_timeout); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_conf_session_tickets( &conf, opt.tickets ); + mbedtls_ssl_conf_session_tickets(&conf, opt.tickets); #endif - if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER ) - mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite ); + if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) { + mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite); + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_conf_tls13_key_exchange_modes( &conf, opt.tls13_kex_modes ); + mbedtls_ssl_conf_tls13_key_exchange_modes(&conf, opt.tls13_kex_modes); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( opt.allow_legacy != DFL_ALLOW_LEGACY ) - mbedtls_ssl_conf_legacy_renegotiation( &conf, opt.allow_legacy ); + if (opt.allow_legacy != DFL_ALLOW_LEGACY) { + mbedtls_ssl_conf_legacy_renegotiation(&conf, opt.allow_legacy); + } #if defined(MBEDTLS_SSL_RENEGOTIATION) - mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); + mbedtls_ssl_conf_renegotiation(&conf, opt.renegotiation); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( strcmp( opt.ca_path, "none" ) != 0 && - strcmp( opt.ca_file, "none" ) != 0 ) - { + if (strcmp(opt.ca_path, "none") != 0 && + strcmp(opt.ca_file, "none") != 0) { #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - if( opt.ca_callback != 0 ) - mbedtls_ssl_conf_ca_cb( &conf, ca_callback, &cacert ); - else + if (opt.ca_callback != 0) { + mbedtls_ssl_conf_ca_cb(&conf, ca_callback, &cacert); + } else #endif - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); } - if( strcmp( opt.crt_file, "none" ) != 0 && - strcmp( opt.key_file, "none" ) != 0 ) - { - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &clicert, &pkey ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", - ret ); + if (strcmp(opt.crt_file, "none") != 0 && + strcmp(opt.key_file, "none") != 0) { + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &clicert, &pkey)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", + ret); goto exit; } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECP_C) - if( opt.curves != NULL && - strcmp( opt.curves, "default" ) != 0 ) - { - mbedtls_ssl_conf_groups( &conf, group_list ); + if (opt.curves != NULL && + strcmp(opt.curves, "default") != 0) { + mbedtls_ssl_conf_groups(&conf, group_list); } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( opt.sig_algs != NULL ) - mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); + if (opt.sig_algs != NULL) { + mbedtls_ssl_conf_sig_algs(&conf, sig_alg_list); + } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { + if (opt.psk_opaque != 0) { key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, alg ); - psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, alg); + psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE); - status = psa_import_key( &key_attributes, psk, psk_len, &slot ); - if( status != PSA_SUCCESS ) - { + status = psa_import_key(&key_attributes, psk, psk_len, &slot); + if (status != PSA_SUCCESS) { ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; goto exit; } - if( ( ret = mbedtls_ssl_conf_psk_opaque( &conf, slot, - (const unsigned char *) opt.psk_identity, - strlen( opt.psk_identity ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n", - ret ); + if ((ret = mbedtls_ssl_conf_psk_opaque(&conf, slot, + (const unsigned char *) opt.psk_identity, + strlen(opt.psk_identity))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n", + ret); goto exit; } - } - else + } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( psk_len > 0 ) - { - ret = mbedtls_ssl_conf_psk( &conf, psk, psk_len, - (const unsigned char *) opt.psk_identity, - strlen( opt.psk_identity ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk returned %d\n\n", ret ); + if (psk_len > 0) { + ret = mbedtls_ssl_conf_psk(&conf, psk, psk_len, + (const unsigned char *) opt.psk_identity, + strlen(opt.psk_identity)); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk returned %d\n\n", ret); goto exit; } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ - if( opt.min_version != DFL_MIN_VERSION ) - mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version ); + if (opt.min_version != DFL_MIN_VERSION) { + mbedtls_ssl_conf_min_tls_version(&conf, opt.min_version); + } - if( opt.max_version != DFL_MAX_VERSION ) - mbedtls_ssl_conf_max_tls_version( &conf, opt.max_version ); + if (opt.max_version != DFL_MAX_VERSION) { + mbedtls_ssl_conf_max_tls_version(&conf, opt.max_version); + } #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_tls13_conf_early_data( &conf, opt.early_data ); + mbedtls_ssl_tls13_conf_early_data(&conf, opt.early_data); #endif /* MBEDTLS_SSL_EARLY_DATA */ - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( opt.eap_tls != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, eap_tls_key_derivation, - &eap_tls_keying ); + if (opt.eap_tls != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, eap_tls_key_derivation, + &eap_tls_keying); + } else if (opt.nss_keylog != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, + nss_keylog_export, + NULL); } - else if( opt.nss_keylog != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, - nss_keylog_export, - NULL ); - } -#if defined( MBEDTLS_SSL_DTLS_SRTP ) - else if( opt.use_srtp != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, dtls_srtp_key_derivation, - &dtls_srtp_keying ); +#if defined(MBEDTLS_SSL_DTLS_SRTP) + else if (opt.use_srtp != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, dtls_srtp_key_derivation, + &dtls_srtp_keying); } #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", - ret ); + if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", + ret); goto exit; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) - { + if (opt.ecjpake_pw != DFL_ECJPAKE_PW) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) - { + if (opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); - status = psa_import_key( &attributes, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ), - &ecjpake_pw_slot ); - if( status != PSA_SUCCESS ) - { - mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n", - status ); + status = psa_import_key(&attributes, + (const unsigned char *) opt.ecjpake_pw, + strlen(opt.ecjpake_pw), + &ecjpake_pw_slot); + if (status != PSA_SUCCESS) { + mbedtls_printf(" failed\n ! psa_import_key returned %d\n\n", + status); goto exit; } - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, - ecjpake_pw_slot ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hs_ecjpake_password_opaque(&ssl, + ecjpake_pw_slot)) != 0) { + mbedtls_printf( + " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", + ret); goto exit; } - mbedtls_printf( "using opaque password\n"); - } - else + mbedtls_printf("using opaque password\n"); + } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ { - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hs_ecjpake_password(&ssl, + (const unsigned char *) opt.ecjpake_pw, + strlen(opt.ecjpake_pw))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", + ret); goto exit; } } @@ -2229,329 +2072,307 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( opt.context_crt_cb == 1 ) - mbedtls_ssl_set_verify( &ssl, my_verify, NULL ); + if (opt.context_crt_cb == 1) { + mbedtls_ssl_set_verify(&ssl, my_verify, NULL); + } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ io_ctx.ssl = &ssl; io_ctx.net = &server_fd; - mbedtls_ssl_set_bio( &ssl, &io_ctx, send_cb, recv_cb, - opt.nbio == 0 ? recv_timeout_cb : NULL ); + mbedtls_ssl_set_bio(&ssl, &io_ctx, send_cb, recv_cb, + opt.nbio == 0 ? recv_timeout_cb : NULL); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled, - cid, cid_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n", - ret ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled, + cid, cid_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n", + ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( opt.dtls_mtu != DFL_DTLS_MTU ) - mbedtls_ssl_set_mtu( &ssl, opt.dtls_mtu ); + if (opt.dtls_mtu != DFL_DTLS_MTU) { + mbedtls_ssl_set_mtu(&ssl, opt.dtls_mtu); + } #endif #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif #if defined(MBEDTLS_ECP_RESTARTABLE) - if( opt.ec_max_ops != DFL_EC_MAX_OPS ) - mbedtls_ecp_set_max_ops( opt.ec_max_ops ); + if (opt.ec_max_ops != DFL_EC_MAX_OPS) { + mbedtls_ecp_set_max_ops(opt.ec_max_ops); + } #endif #if defined(MBEDTLS_SSL_DTLS_SRTP) - if( opt.use_srtp != 0 && strlen( opt.mki ) != 0 ) - { - if( mbedtls_test_unhexify( mki, sizeof( mki ), - opt.mki,&mki_len ) != 0 ) - { - mbedtls_printf( "mki value not valid hex\n" ); + if (opt.use_srtp != 0 && strlen(opt.mki) != 0) { + if (mbedtls_test_unhexify(mki, sizeof(mki), + opt.mki, &mki_len) != 0) { + mbedtls_printf("mki value not valid hex\n"); goto exit; } - mbedtls_ssl_conf_srtp_mki_value_supported( &conf, MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED ); - if( ( ret = mbedtls_ssl_dtls_srtp_set_mki_value( &ssl, mki, - (uint16_t) strlen( opt.mki ) / 2 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_dtls_srtp_set_mki_value returned %d\n\n", ret ); + mbedtls_ssl_conf_srtp_mki_value_supported(&conf, MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED); + if ((ret = mbedtls_ssl_dtls_srtp_set_mki_value(&ssl, mki, + (uint16_t) strlen(opt.mki) / 2)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_dtls_srtp_set_mki_value returned %d\n\n", ret); goto exit; } } #endif - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 3. Start the connection */ - if( opt.server_addr == NULL) + if (opt.server_addr == NULL) { opt.server_addr = opt.server_name; + } - mbedtls_printf( " . Connecting to %s/%s/%s...", - opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp", - opt.server_addr, opt.server_port ); - fflush( stdout ); + mbedtls_printf(" . Connecting to %s/%s/%s...", + opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp", + opt.server_addr, opt.server_port); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, - opt.server_addr, opt.server_port, - opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? - MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_net_connect(&server_fd, + opt.server_addr, opt.server_port, + opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? + MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( opt.nbio > 0 ) - ret = mbedtls_net_set_nonblock( &server_fd ); - else - ret = mbedtls_net_set_block( &server_fd ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", - (unsigned int) -ret ); + if (opt.nbio > 0) { + ret = mbedtls_net_set_nonblock(&server_fd); + } else { + ret = mbedtls_net_set_block(&server_fd); + } + if (ret != 0) { + mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 4. Handshake */ - mbedtls_printf( " . Performing the SSL/TLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the SSL/TLS handshake..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && - ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n", - (unsigned int) -ret ); - if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) + ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n", + (unsigned int) -ret); + if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) { mbedtls_printf( " Unable to verify the server's certificate. " - "Either it is invalid,\n" + "Either it is invalid,\n" " or you didn't set ca_file or ca_path " - "to an appropriate value.\n" + "to an appropriate value.\n" " Alternatively, you may want to use " - "auth_mode=optional for testing purposes if " - "not using TLS 1.3.\n" + "auth_mode=optional for testing purposes if " + "not using TLS 1.3.\n" " For TLS 1.3 server, try `ca_path=/etc/ssl/certs/`" - "or other folder that has root certificates\n" ); - mbedtls_printf( "\n" ); + "or other folder that has root certificates\n"); + } + mbedtls_printf("\n"); goto exit; } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { continue; + } #endif /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - ret = idle( &server_fd, &timer, ret ); + ret = idle(&server_fd, &timer, ret); #else - ret = idle( &server_fd, ret ); + ret = idle(&server_fd, ret); #endif - if( ret != 0 ) + if (ret != 0) { goto exit; + } } } { - int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl( &ssl ); + int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl(&ssl); const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( suite_id ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(suite_id); - mbedtls_printf( " ok\n [ Protocol is %s ]\n" - " [ Ciphersuite is %s ]\n" - " [ Key size is %u ]\n", - mbedtls_ssl_get_version( &ssl ), - mbedtls_ssl_ciphersuite_get_name( ciphersuite_info ), - (unsigned int) - mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( ciphersuite_info ) ); + mbedtls_printf(" ok\n [ Protocol is %s ]\n" + " [ Ciphersuite is %s ]\n" + " [ Key size is %u ]\n", + mbedtls_ssl_get_version(&ssl), + mbedtls_ssl_ciphersuite_get_name(ciphersuite_info), + (unsigned int) + mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(ciphersuite_info)); } - if( ( ret = mbedtls_ssl_get_record_expansion( &ssl ) ) >= 0 ) - mbedtls_printf( " [ Record expansion is %d ]\n", ret ); - else - mbedtls_printf( " [ Record expansion is unknown ]\n" ); + if ((ret = mbedtls_ssl_get_record_expansion(&ssl)) >= 0) { + mbedtls_printf(" [ Record expansion is %d ]\n", ret); + } else { + mbedtls_printf(" [ Record expansion is unknown ]\n"); + } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - mbedtls_printf( " [ Maximum incoming record payload length is %u ]\n", - (unsigned int) mbedtls_ssl_get_max_in_record_payload( &ssl ) ); - mbedtls_printf( " [ Maximum outgoing record payload length is %u ]\n", - (unsigned int) mbedtls_ssl_get_max_out_record_payload( &ssl ) ); + mbedtls_printf(" [ Maximum incoming record payload length is %u ]\n", + (unsigned int) mbedtls_ssl_get_max_in_record_payload(&ssl)); + mbedtls_printf(" [ Maximum outgoing record payload length is %u ]\n", + (unsigned int) mbedtls_ssl_get_max_out_record_payload(&ssl)); #endif #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - { - const char *alp = mbedtls_ssl_get_alpn_protocol( &ssl ); - mbedtls_printf( " [ Application Layer Protocol is %s ]\n", - alp ? alp : "(none)" ); + if (opt.alpn_string != NULL) { + const char *alp = mbedtls_ssl_get_alpn_protocol(&ssl); + mbedtls_printf(" [ Application Layer Protocol is %s ]\n", + alp ? alp : "(none)"); } #endif - if( opt.eap_tls != 0 ) - { + if (opt.eap_tls != 0) { size_t j = 0; - if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, - eap_tls_keying.master_secret, - sizeof( eap_tls_keying.master_secret ), - eap_tls_label, - eap_tls_keying.randbytes, - sizeof( eap_tls_keying.randbytes ), - eap_tls_keymaterial, - sizeof( eap_tls_keymaterial ) ) ) - != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, + eap_tls_keying.master_secret, + sizeof(eap_tls_keying.master_secret), + eap_tls_label, + eap_tls_keying.randbytes, + sizeof(eap_tls_keying.randbytes), + eap_tls_keymaterial, + sizeof(eap_tls_keymaterial))) + != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " EAP-TLS key material is:" ); - for( j = 0; j < sizeof( eap_tls_keymaterial ); j++ ) - { - if( j % 8 == 0 ) + mbedtls_printf(" EAP-TLS key material is:"); + for (j = 0; j < sizeof(eap_tls_keymaterial); j++) { + if (j % 8 == 0) { mbedtls_printf("\n "); - mbedtls_printf("%02x ", eap_tls_keymaterial[j] ); + } + mbedtls_printf("%02x ", eap_tls_keymaterial[j]); } mbedtls_printf("\n"); - if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, NULL, 0, - eap_tls_label, - eap_tls_keying.randbytes, - sizeof( eap_tls_keying.randbytes ), - eap_tls_iv, - sizeof( eap_tls_iv ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); - goto exit; - } + if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, NULL, 0, + eap_tls_label, + eap_tls_keying.randbytes, + sizeof(eap_tls_keying.randbytes), + eap_tls_iv, + sizeof(eap_tls_iv))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); + goto exit; + } - mbedtls_printf( " EAP-TLS IV is:" ); - for( j = 0; j < sizeof( eap_tls_iv ); j++ ) - { - if( j % 8 == 0 ) + mbedtls_printf(" EAP-TLS IV is:"); + for (j = 0; j < sizeof(eap_tls_iv); j++) { + if (j % 8 == 0) { mbedtls_printf("\n "); - mbedtls_printf("%02x ", eap_tls_iv[j] ); + } + mbedtls_printf("%02x ", eap_tls_iv[j]); } mbedtls_printf("\n"); } -#if defined( MBEDTLS_SSL_DTLS_SRTP ) - else if( opt.use_srtp != 0 ) - { +#if defined(MBEDTLS_SSL_DTLS_SRTP) + else if (opt.use_srtp != 0) { size_t j = 0; mbedtls_dtls_srtp_info dtls_srtp_negotiation_result; - mbedtls_ssl_get_dtls_srtp_negotiation_result( &ssl, &dtls_srtp_negotiation_result ); + mbedtls_ssl_get_dtls_srtp_negotiation_result(&ssl, &dtls_srtp_negotiation_result); - if( dtls_srtp_negotiation_result.chosen_dtls_srtp_profile - == MBEDTLS_TLS_SRTP_UNSET ) - { - mbedtls_printf( " Unable to negotiate " - "the use of DTLS-SRTP\n" ); - } - else - { - if( ( ret = mbedtls_ssl_tls_prf( dtls_srtp_keying.tls_prf_type, - dtls_srtp_keying.master_secret, - sizeof( dtls_srtp_keying.master_secret ), - dtls_srtp_label, - dtls_srtp_keying.randbytes, - sizeof( dtls_srtp_keying.randbytes ), - dtls_srtp_key_material, - sizeof( dtls_srtp_key_material ) ) ) - != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); + if (dtls_srtp_negotiation_result.chosen_dtls_srtp_profile + == MBEDTLS_TLS_SRTP_UNSET) { + mbedtls_printf(" Unable to negotiate " + "the use of DTLS-SRTP\n"); + } else { + if ((ret = mbedtls_ssl_tls_prf(dtls_srtp_keying.tls_prf_type, + dtls_srtp_keying.master_secret, + sizeof(dtls_srtp_keying.master_secret), + dtls_srtp_label, + dtls_srtp_keying.randbytes, + sizeof(dtls_srtp_keying.randbytes), + dtls_srtp_key_material, + sizeof(dtls_srtp_key_material))) + != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " DTLS-SRTP key material is:" ); - for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ ) - { - if( j % 8 == 0 ) - mbedtls_printf( "\n " ); - mbedtls_printf( "%02x ", dtls_srtp_key_material[j] ); + mbedtls_printf(" DTLS-SRTP key material is:"); + for (j = 0; j < sizeof(dtls_srtp_key_material); j++) { + if (j % 8 == 0) { + mbedtls_printf("\n "); + } + mbedtls_printf("%02x ", dtls_srtp_key_material[j]); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); /* produce a less readable output used to perform automatic checks * - compare client and server output * - interop test with openssl which client produces this kind of output */ - mbedtls_printf( " Keying material: " ); - for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ ) - { - mbedtls_printf( "%02X", dtls_srtp_key_material[j] ); + mbedtls_printf(" Keying material: "); + for (j = 0; j < sizeof(dtls_srtp_key_material); j++) { + mbedtls_printf("%02X", dtls_srtp_key_material[j]); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); - if ( dtls_srtp_negotiation_result.mki_len > 0 ) - { - mbedtls_printf( " DTLS-SRTP mki value: " ); - for( j = 0; j < dtls_srtp_negotiation_result.mki_len; j++ ) - { - mbedtls_printf( "%02X", dtls_srtp_negotiation_result.mki_value[j] ); + if (dtls_srtp_negotiation_result.mki_len > 0) { + mbedtls_printf(" DTLS-SRTP mki value: "); + for (j = 0; j < dtls_srtp_negotiation_result.mki_len; j++) { + mbedtls_printf("%02X", dtls_srtp_negotiation_result.mki_value[j]); } + } else { + mbedtls_printf(" DTLS-SRTP no mki value negotiated"); } - else - { - mbedtls_printf( " DTLS-SRTP no mki value negotiated" ); - } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } } #endif /* MBEDTLS_SSL_DTLS_SRTP */ - if( opt.reconnect != 0 && ssl.tls_version != MBEDTLS_SSL_VERSION_TLS1_3 ) - { - mbedtls_printf(" . Saving session for reuse..." ); - fflush( stdout ); + if (opt.reconnect != 0 && ssl.tls_version != MBEDTLS_SSL_VERSION_TLS1_3) { + mbedtls_printf(" . Saving session for reuse..."); + fflush(stdout); - if( opt.reco_mode == 1 ) - { - if( ( ret = ssl_save_session_serialize( &ssl, - &session_data, &session_data_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", - (unsigned int) -ret ); + if (opt.reco_mode == 1) { + if ((ret = ssl_save_session_serialize(&ssl, + &session_data, &session_data_len)) != 0) { + mbedtls_printf(" failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", + (unsigned int) -ret); goto exit; } - } - else - { - if( ( ret = mbedtls_ssl_get_session( &ssl, &saved_session ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n", - (unsigned int) -ret ); + } else { + if ((ret = mbedtls_ssl_get_session(&ssl, &saved_session)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - if( opt.reco_mode == 1 ) - { - mbedtls_printf( " [ Saved %u bytes of session data]\n", - (unsigned) session_data_len ); + if (opt.reco_mode == 1) { + mbedtls_printf(" [ Saved %u bytes of session data]\n", + (unsigned) session_data_len); } } @@ -2559,89 +2380,85 @@ int main( int argc, char *argv[] ) /* * 5. Verify the server certificate */ - mbedtls_printf( " . Verifying peer X.509 certificate..." ); + mbedtls_printf(" . Verifying peer X.509 certificate..."); - if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 ) - { + if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) { char vrfy_buf[512]; - mbedtls_printf( " failed\n" ); + mbedtls_printf(" failed\n"); - x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), - " ! ", flags ); + x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), + " ! ", flags); - mbedtls_printf( "%s\n", vrfy_buf ); + mbedtls_printf("%s\n", vrfy_buf); + } else { + mbedtls_printf(" ok\n"); } - else - mbedtls_printf( " ok\n" ); #if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_printf( " . Peer certificate information ...\n" ); - mbedtls_printf( "%s\n", peer_crt_info ); + mbedtls_printf(" . Peer certificate information ...\n"); + mbedtls_printf("%s\n", peer_crt_info); #endif /* !MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ret = report_cid_usage( &ssl, "initial handshake" ); - if( ret != 0 ) + ret = report_cid_usage(&ssl, "initial handshake"); + if (ret != 0) { goto exit; + } - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled_renego, - cid_renego, - cid_renego_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n", - ret ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled_renego, + cid_renego, + cid_renego_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n", + ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( opt.renegotiate ) - { + if (opt.renegotiate) { /* * Perform renegotiation (this must be done when the server is waiting * for input from our side). */ - mbedtls_printf( " . Performing renegotiation..." ); - fflush( stdout ); - while( ( ret = mbedtls_ssl_renegotiate( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && + mbedtls_printf(" . Performing renegotiation..."); + fflush(stdout); + while ((ret = mbedtls_ssl_renegotiate(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && - ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", - ret ); + ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { + mbedtls_printf(" failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", + ret); goto exit; } #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { continue; + } #endif /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ret = report_cid_usage( &ssl, "after renegotiation" ); - if( ret != 0 ) + ret = report_cid_usage(&ssl, "after renegotiation"); + if (ret != 0) { goto exit; + } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ /* @@ -2649,120 +2466,111 @@ int main( int argc, char *argv[] ) */ retry_left = opt.max_resend; send_request: - mbedtls_printf( " > Write to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write to server:"); + fflush(stdout); - len = mbedtls_snprintf( (char *) buf, sizeof( buf ) - 1, GET_REQUEST, - opt.request_page ); - tail_len = (int) strlen( GET_REQUEST_END ); + len = mbedtls_snprintf((char *) buf, sizeof(buf) - 1, GET_REQUEST, + opt.request_page); + tail_len = (int) strlen(GET_REQUEST_END); /* Add padding to GET request to reach opt.request_size in length */ - if( opt.request_size != DFL_REQUEST_SIZE && - len + tail_len < opt.request_size ) - { - memset( buf + len, 'A', opt.request_size - len - tail_len ); + if (opt.request_size != DFL_REQUEST_SIZE && + len + tail_len < opt.request_size) { + memset(buf + len, 'A', opt.request_size - len - tail_len); len += opt.request_size - len - tail_len; } - strncpy( (char *) buf + len, GET_REQUEST_END, sizeof( buf ) - len - 1 ); + strncpy((char *) buf + len, GET_REQUEST_END, sizeof(buf) - len - 1); len += tail_len; /* Truncate if request size is smaller than the "natural" size */ - if( opt.request_size != DFL_REQUEST_SIZE && - len > opt.request_size ) - { + if (opt.request_size != DFL_REQUEST_SIZE && + len > opt.request_size) { len = opt.request_size; /* Still end with \r\n unless that's really not possible */ - if( len >= 2 ) buf[len - 2] = '\r'; - if( len >= 1 ) buf[len - 1] = '\n'; + if (len >= 2) { + buf[len - 2] = '\r'; + } + if (len >= 1) { + buf[len - 1] = '\n'; + } } - if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ) - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) { written = 0; frags = 0; - do - { - while( ( ret = mbedtls_ssl_write( &ssl, buf + written, - len - written ) ) < 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && + do { + while ((ret = mbedtls_ssl_write(&ssl, buf + written, + len - written)) < 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && - ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned -0x%x\n\n", - (unsigned int) -ret ); + ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } } frags++; written += ret; - } - while( written < len ); - } - else /* Not stream, so datagram */ - { - while( 1 ) - { - ret = mbedtls_ssl_write( &ssl, buf, len ); + } while (written < len); + } else { /* Not stream, so datagram */ + while (1) { + ret = mbedtls_ssl_write(&ssl, buf, len); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { continue; + } #endif - if( ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { break; + } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } } - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", - ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", + ret); goto exit; } frags = 1; written = ret; - if( written < len ) - { - mbedtls_printf( " warning\n ! request didn't fit into single datagram and " - "was truncated to size %u", (unsigned) written ); + if (written < len) { + mbedtls_printf(" warning\n ! request didn't fit into single datagram and " + "was truncated to size %u", (unsigned) written); } } buf[written] = '\0'; - mbedtls_printf( " %d bytes written in %d fragments\n\n%s\n", - written, frags, (char *) buf ); + mbedtls_printf(" %d bytes written in %d fragments\n\n%s\n", + written, frags, (char *) buf); /* Send a non-empty request if request_size == 0 */ - if ( len == 0 ) - { + if (len == 0) { opt.request_size = DFL_REQUEST_SIZE; goto send_request; } @@ -2774,49 +2582,44 @@ send_request: /* * TLS and DTLS need different reading styles (stream vs datagram) */ - if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ) - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) { #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) int ticket_id = 0; #endif - do - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); + ret = mbedtls_ssl_read(&ssl, buf, len); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { continue; + } #endif - if( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ) - { + if (ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE) { /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } continue; } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); ret = 0; goto close_notify; case 0: case MBEDTLS_ERR_NET_CONN_RESET: - mbedtls_printf( " connection was reset by peer\n" ); + mbedtls_printf(" connection was reset by peer\n"); ret = 0; goto reconnect; @@ -2826,39 +2629,35 @@ send_request: case MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET: /* We were waiting for application data but got * a NewSessionTicket instead. */ - mbedtls_printf( " got new session ticket ( %d ).\n", - ticket_id++ ); - if( opt.reconnect != 0 ) - { - mbedtls_printf(" . Saving session for reuse..." ); - fflush( stdout ); + mbedtls_printf(" got new session ticket ( %d ).\n", + ticket_id++); + if (opt.reconnect != 0) { + mbedtls_printf(" . Saving session for reuse..."); + fflush(stdout); - if( opt.reco_mode == 1 ) - { - if( ( ret = ssl_save_session_serialize( &ssl, - &session_data, &session_data_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", - (unsigned int) -ret ); + if (opt.reco_mode == 1) { + if ((ret = ssl_save_session_serialize(&ssl, + &session_data, + &session_data_len)) != 0) { + mbedtls_printf( + " failed\n ! ssl_save_session_serialize returned -0x%04x\n\n", + (unsigned int) -ret); goto exit; } - } - else - { - if( ( ret = mbedtls_ssl_get_session( &ssl, &saved_session ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n", - (unsigned int) -ret ); + } else { + if ((ret = mbedtls_ssl_get_session(&ssl, &saved_session)) != 0) { + mbedtls_printf( + " failed\n ! mbedtls_ssl_get_session returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - if( opt.reco_mode == 1 ) - { - mbedtls_printf( " [ Saved %u bytes of session data]\n", - (unsigned) session_data_len ); + if (opt.reco_mode == 1) { + mbedtls_printf(" [ Saved %u bytes of session data]\n", + (unsigned) session_data_len); } } continue; @@ -2867,126 +2666,116 @@ send_request: #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", - (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", + (unsigned int) -ret); goto exit; } } len = ret; buf[len] = '\0'; - mbedtls_printf( " < Read from server: %d bytes read\n\n%s", len, (char *) buf ); - fflush( stdout ); + mbedtls_printf(" < Read from server: %d bytes read\n\n%s", len, (char *) buf); + fflush(stdout); /* End of message should be detected according to the syntax of the * application protocol (eg HTTP), just use a dummy test here. */ - if( ret > 0 && buf[len-1] == '\n' ) - { + if (ret > 0 && buf[len-1] == '\n') { ret = 0; break; } - } - while( 1 ); - } - else /* Not stream, so datagram */ - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); + } while (1); + } else { /* Not stream, so datagram */ + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); - while( 1 ) - { - ret = mbedtls_ssl_read( &ssl, buf, len ); + while (1) { + ret = mbedtls_ssl_read(&ssl, buf, len); #if defined(MBEDTLS_ECP_RESTARTABLE) - if( ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) + if (ret == MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { continue; + } #endif - if( ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { break; + } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_TIMEOUT: - mbedtls_printf( " timeout\n" ); - if( retry_left-- > 0 ) + mbedtls_printf(" timeout\n"); + if (retry_left-- > 0) { goto send_request; + } goto exit; case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); ret = 0; goto close_notify; default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret); goto exit; } } len = ret; buf[len] = '\0'; - mbedtls_printf( " < Read from server: %d bytes read\n\n%s", len, (char *) buf ); + mbedtls_printf(" < Read from server: %d bytes read\n\n%s", len, (char *) buf); ret = 0; } /* * 7b. Simulate hard reset and reconnect from same port? */ - if( opt.reconnect_hard != 0 ) - { + if (opt.reconnect_hard != 0) { opt.reconnect_hard = 0; - mbedtls_printf( " . Restarting connection from same port..." ); - fflush( stdout ); + mbedtls_printf(" . Restarting connection from same port..."); + fflush(stdout); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); + memset(peer_crt_info, 0, sizeof(peer_crt_info)); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_session_reset(&ssl)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && - ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", - (unsigned int) -ret ); + ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &server_fd, &timer, ret ); + idle(&server_fd, &timer, ret); #else - idle( &server_fd, ret ); + idle(&server_fd, ret); #endif } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); goto send_request; } @@ -2995,160 +2784,149 @@ send_request: * 7c. Simulate serialize/deserialize and go back to data exchange */ #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( opt.serialize != 0 ) - { + if (opt.serialize != 0) { size_t buf_len; - mbedtls_printf( " . Serializing live connection..." ); + mbedtls_printf(" . Serializing live connection..."); - ret = mbedtls_ssl_context_save( &ssl, NULL, 0, &buf_len ); - if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned " - "-0x%x\n\n", (unsigned int) -ret ); + ret = mbedtls_ssl_context_save(&ssl, NULL, 0, &buf_len); + if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) { + mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - if( ( context_buf = mbedtls_calloc( 1, buf_len ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Couldn't allocate buffer for " - "serialized context" ); + if ((context_buf = mbedtls_calloc(1, buf_len)) == NULL) { + mbedtls_printf(" failed\n ! Couldn't allocate buffer for " + "serialized context"); goto exit; } context_buf_len = buf_len; - if( ( ret = mbedtls_ssl_context_save( &ssl, context_buf, - buf_len, &buf_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_context_save(&ssl, context_buf, + buf_len, &buf_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* Save serialized context to the 'opt.context_file' as a base64 code */ - if( 0 < strlen( opt.context_file ) ) - { + if (0 < strlen(opt.context_file)) { FILE *b64_file; uint8_t *b64_buf; size_t b64_len; - mbedtls_printf( " . Save serialized context to a file... " ); + mbedtls_printf(" . Save serialized context to a file... "); - mbedtls_base64_encode( NULL, 0, &b64_len, context_buf, buf_len ); + mbedtls_base64_encode(NULL, 0, &b64_len, context_buf, buf_len); - if( ( b64_buf = mbedtls_calloc( 1, b64_len ) ) == NULL ) - { - mbedtls_printf( "failed\n ! Couldn't allocate buffer for " - "the base64 code\n" ); + if ((b64_buf = mbedtls_calloc(1, b64_len)) == NULL) { + mbedtls_printf("failed\n ! Couldn't allocate buffer for " + "the base64 code\n"); goto exit; } - if( ( ret = mbedtls_base64_encode( b64_buf, b64_len, &b64_len, - context_buf, buf_len ) ) != 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_base64_encode returned " - "-0x%x\n", (unsigned int) -ret ); - mbedtls_free( b64_buf ); + if ((ret = mbedtls_base64_encode(b64_buf, b64_len, &b64_len, + context_buf, buf_len)) != 0) { + mbedtls_printf("failed\n ! mbedtls_base64_encode returned " + "-0x%x\n", (unsigned int) -ret); + mbedtls_free(b64_buf); goto exit; } - if( ( b64_file = fopen( opt.context_file, "w" ) ) == NULL ) - { - mbedtls_printf( "failed\n ! Cannot open '%s' for writing.\n", - opt.context_file ); - mbedtls_free( b64_buf ); + if ((b64_file = fopen(opt.context_file, "w")) == NULL) { + mbedtls_printf("failed\n ! Cannot open '%s' for writing.\n", + opt.context_file); + mbedtls_free(b64_buf); goto exit; } - if( b64_len != fwrite( b64_buf, 1, b64_len, b64_file ) ) - { - mbedtls_printf( "failed\n ! fwrite(%ld bytes) failed\n", - (long) b64_len ); - mbedtls_free( b64_buf ); - fclose( b64_file ); + if (b64_len != fwrite(b64_buf, 1, b64_len, b64_file)) { + mbedtls_printf("failed\n ! fwrite(%ld bytes) failed\n", + (long) b64_len); + mbedtls_free(b64_buf); + fclose(b64_file); goto exit; } - mbedtls_free( b64_buf ); - fclose( b64_file ); + mbedtls_free(b64_buf); + fclose(b64_file); - mbedtls_printf( "ok\n" ); + mbedtls_printf("ok\n"); } - if( opt.serialize == 1 ) - { + if (opt.serialize == 1) { /* nothing to do here, done by context_save() already */ - mbedtls_printf( " . Context has been reset... ok\n" ); + mbedtls_printf(" . Context has been reset... ok\n"); } - if( opt.serialize == 2 ) - { - mbedtls_printf( " . Freeing and reinitializing context..." ); + if (opt.serialize == 2) { + mbedtls_printf(" . Freeing and reinitializing context..."); - mbedtls_ssl_free( &ssl ); + mbedtls_ssl_free(&ssl); - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_init(&ssl); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - if( opt.nbio == 2 ) - mbedtls_ssl_set_bio( &ssl, &server_fd, delayed_send, - delayed_recv, NULL ); - else - mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, - mbedtls_net_recv, - opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL ); + if (opt.nbio == 2) { + mbedtls_ssl_set_bio(&ssl, &server_fd, delayed_send, + delayed_recv, NULL); + } else { + mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, + mbedtls_net_recv, + opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL); + } #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &ssl, &timer, - mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, + mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif /* MBEDTLS_TIMING_C */ - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - mbedtls_printf( " . Deserializing connection..." ); + mbedtls_printf(" . Deserializing connection..."); - if( ( ret = mbedtls_ssl_context_load( &ssl, context_buf, - buf_len ) ) != 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_ssl_context_load returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_context_load(&ssl, context_buf, + buf_len)) != 0) { + mbedtls_printf("failed\n ! mbedtls_ssl_context_load returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_free( context_buf ); + mbedtls_free(context_buf); context_buf = NULL; context_buf_len = 0; - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ /* * 7d. Continue doing data exchanges? */ - if( --opt.exchanges > 0 ) + if (--opt.exchanges > 0) { goto send_request; + } /* * 8. Done, cleanly close the connection */ close_notify: - mbedtls_printf( " . Closing the connection..." ); - fflush( stdout ); + mbedtls_printf(" . Closing the connection..."); + fflush(stdout); /* * Most of the time sending a close_notify before closing is the right @@ -3162,108 +2940,100 @@ close_notify: * failures in tests that use DTLS and resumption with ssl_server2 in * ssl-opt.sh, avoided by enabling skip_close_notify client-side. */ - if( opt.skip_close_notify == 0 ) - { + if (opt.skip_close_notify == 0) { /* No error checking, the connection might be closed already */ - do ret = mbedtls_ssl_close_notify( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_close_notify(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE); ret = 0; } - mbedtls_printf( " done\n" ); + mbedtls_printf(" done\n"); /* * 9. Reconnect? */ reconnect: - if( opt.reconnect != 0 ) - { + if (opt.reconnect != 0) { --opt.reconnect; - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); #if defined(MBEDTLS_TIMING_C) - if( opt.reco_delay > 0 ) - mbedtls_net_usleep( 1000 * opt.reco_delay ); + if (opt.reco_delay > 0) { + mbedtls_net_usleep(1000 * opt.reco_delay); + } #endif - mbedtls_printf( " . Reconnecting with saved session..." ); + mbedtls_printf(" . Reconnecting with saved session..."); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - memset( peer_crt_info, 0, sizeof( peer_crt_info ) ); + memset(peer_crt_info, 0, sizeof(peer_crt_info)); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - if( ( ret = mbedtls_ssl_session_reset( &ssl ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_session_reset(&ssl)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_session_reset returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( opt.reco_mode == 1 ) - { - if( ( ret = mbedtls_ssl_session_load( &saved_session, - session_data, - session_data_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_session_load returned -0x%x\n\n", - (unsigned int) -ret ); + if (opt.reco_mode == 1) { + if ((ret = mbedtls_ssl_session_load(&saved_session, + session_data, + session_data_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_session_load returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - if( ( ret = mbedtls_ssl_set_session( &ssl, &saved_session ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_session returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_set_session(&ssl, &saved_session)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_session returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } #if defined(MBEDTLS_X509_CRT_PARSE_C) - if( opt.reco_server_name != NULL && - ( ret = mbedtls_ssl_set_hostname( &ssl, - opt.reco_server_name ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", - ret ); + if (opt.reco_server_name != NULL && + (ret = mbedtls_ssl_set_hostname(&ssl, + opt.reco_server_name)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", + ret); goto exit; } #endif - if( ( ret = mbedtls_net_connect( &server_fd, - opt.server_addr, opt.server_port, - opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? - MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_net_connect(&server_fd, + opt.server_addr, opt.server_port, + opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? + MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( opt.nbio > 0 ) - ret = mbedtls_net_set_nonblock( &server_fd ); - else - ret = mbedtls_net_set_block( &server_fd ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", - (unsigned int) -ret ); + if (opt.nbio > 0) { + ret = mbedtls_net_set_nonblock(&server_fd); + } else { + ret = mbedtls_net_set_block(&server_fd); + } + if (ret != 0) { + mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && - ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", - (unsigned int) -ret ); + ret != MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); goto send_request; } @@ -3273,55 +3043,55 @@ reconnect: */ exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf); } #endif - mbedtls_net_free( &server_fd ); + mbedtls_net_free(&server_fd); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ssl_session_free( &saved_session ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ssl_session_free(&saved_session); - if( session_data != NULL ) - mbedtls_platform_zeroize( session_data, session_data_len ); - mbedtls_free( session_data ); + if (session_data != NULL) { + mbedtls_platform_zeroize(session_data, session_data_len); + } + mbedtls_free(session_data); #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( context_buf != NULL ) - mbedtls_platform_zeroize( context_buf, context_buf_len ); - mbedtls_free( context_buf ); + if (context_buf != NULL) { + mbedtls_platform_zeroize(context_buf, context_buf_len); + } + mbedtls_free(context_buf); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - mbedtls_x509_crt_free( &clicert ); - mbedtls_x509_crt_free( &cacert ); - mbedtls_pk_free( &pkey ); + mbedtls_x509_crt_free(&clicert); + mbedtls_x509_crt_free(&cacert); + mbedtls_pk_free(&pkey); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( key_slot ); + psa_destroy_key(key_slot); #endif #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { + if (opt.psk_opaque != 0) { /* This is ok even if the slot hasn't been * initialized (we might have jumed here * immediately because of bad cmd line params, * for example). */ - status = psa_destroy_key( slot ); - if( ( status != PSA_SUCCESS ) && - ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) ) - { - mbedtls_printf( "Failed to destroy key slot %u - error was %d", - (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot ), - (int) status ); - if( ret == 0 ) + status = psa_destroy_key(slot); + if ((status != PSA_SUCCESS) && + (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) { + mbedtls_printf("Failed to destroy key slot %u - error was %d", + (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot), + (int) status); + if (ret == 0) { ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; + } } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && @@ -3333,32 +3103,29 @@ exit: * In case opaque keys it's the user responsibility to keep the key valid * for the duration of the handshake and destroy it at the end */ - if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) ) - { + if ((opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE)) { psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* Verify that the key is still valid before destroying it */ - if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) != - PSA_SUCCESS ) - { - if( ret == 0 ) + if (psa_get_key_attributes(ecjpake_pw_slot, &check_attributes) != + PSA_SUCCESS) { + if (ret == 0) { ret = 1; - mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" ); - } - else - { - psa_destroy_key( ecjpake_pw_slot ); + } + mbedtls_printf("The EC J-PAKE password key has unexpectedly been already destroyed\n"); + } else { + psa_destroy_key(ecjpake_pw_slot); } } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) - const char* message = mbedtls_test_helper_is_psa_leaking(); - if( message ) - { - if( ret == 0 ) + const char *message = mbedtls_test_helper_is_psa_leaking(); + if (message) { + if (ret == 0) { ret = 1; - mbedtls_printf( "PSA memory leak detected: %s\n", message); + } + mbedtls_printf("PSA memory leak detected: %s\n", message); } #endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -3366,19 +3133,19 @@ exit: * resources are freed by rng_free(). */ #if (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) && \ !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); #endif - rng_free( &rng ); + rng_free(&rng); #if defined(MBEDTLS_TEST_HOOKS) - if( test_hooks_failure_detected( ) ) - { - if( ret == 0 ) + if (test_hooks_failure_detected()) { + if (ret == 0) { ret = 1; - mbedtls_printf( "Test hooks detected errors.\n" ); + } + mbedtls_printf("Test hooks detected errors.\n"); } - test_hooks_free( ); + test_hooks_free(); #endif /* MBEDTLS_TEST_HOOKS */ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) @@ -3389,12 +3156,14 @@ exit: #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ // Shell can not handle large exit numbers -> 1 for errors - if( ret < 0 ) + if (ret < 0) { ret = 1; + } - if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) - mbedtls_exit( ret ); - else - mbedtls_exit( query_config_ret ); + if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) { + mbedtls_exit(ret); + } else { + mbedtls_exit(query_config_ret); + } } #endif /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_CLI_C */ diff --git a/programs/ssl/ssl_context_info.c b/programs/ssl/ssl_context_info.c index d0431f241..0ba0d2c04 100644 --- a/programs/ssl/ssl_context_info.c +++ b/programs/ssl/ssl_context_info.c @@ -27,11 +27,11 @@ #if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_ERROR_C) || \ !defined(MBEDTLS_SSL_TLS_C) -int main( void ) +int main(void) { printf("MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_ERROR_C and/or " "MBEDTLS_SSL_TLS_C not defined.\n"); - return( 0 ); + return 0; } #else @@ -62,18 +62,18 @@ int main( void ) /* * Flags copied from the Mbed TLS library. */ -#define SESSION_CONFIG_TIME_BIT ( 1 << 0 ) -#define SESSION_CONFIG_CRT_BIT ( 1 << 1 ) -#define SESSION_CONFIG_CLIENT_TICKET_BIT ( 1 << 2 ) -#define SESSION_CONFIG_MFL_BIT ( 1 << 3 ) -#define SESSION_CONFIG_TRUNC_HMAC_BIT ( 1 << 4 ) -#define SESSION_CONFIG_ETM_BIT ( 1 << 5 ) -#define SESSION_CONFIG_TICKET_BIT ( 1 << 6 ) +#define SESSION_CONFIG_TIME_BIT (1 << 0) +#define SESSION_CONFIG_CRT_BIT (1 << 1) +#define SESSION_CONFIG_CLIENT_TICKET_BIT (1 << 2) +#define SESSION_CONFIG_MFL_BIT (1 << 3) +#define SESSION_CONFIG_TRUNC_HMAC_BIT (1 << 4) +#define SESSION_CONFIG_ETM_BIT (1 << 5) +#define SESSION_CONFIG_TICKET_BIT (1 << 6) -#define CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT ( 1 << 0 ) -#define CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT ( 1 << 1 ) -#define CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT ( 1 << 2 ) -#define CONTEXT_CONFIG_ALPN_BIT ( 1 << 3 ) +#define CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT (1 << 0) +#define CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT (1 << 1) +#define CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT (1 << 2) +#define CONTEXT_CONFIG_ALPN_BIT (1 << 3) #define TRANSFORM_RANDBYTE_LEN 64 @@ -88,28 +88,28 @@ int main( void ) #define MAX_CONTEXT_LEN 875 /* without session data */ #define MAX_SESSION_LEN 109 /* without certificate and ticket data */ -#define MAX_CERTIFICATE_LEN ( ( 1 << 24 ) - 1 ) -#define MAX_TICKET_LEN ( ( 1 << 24 ) - 1 ) +#define MAX_CERTIFICATE_LEN ((1 << 24) - 1) +#define MAX_TICKET_LEN ((1 << 24) - 1) -#define MIN_SERIALIZED_DATA ( MIN_CONTEXT_LEN + MIN_SESSION_LEN ) -#define MAX_SERIALIZED_DATA ( MAX_CONTEXT_LEN + MAX_SESSION_LEN + \ - MAX_CERTIFICATE_LEN + MAX_TICKET_LEN ) +#define MIN_SERIALIZED_DATA (MIN_CONTEXT_LEN + MIN_SESSION_LEN) +#define MAX_SERIALIZED_DATA (MAX_CONTEXT_LEN + MAX_SESSION_LEN + \ + MAX_CERTIFICATE_LEN + MAX_TICKET_LEN) -#define MIN_BASE64_LEN ( MIN_SERIALIZED_DATA * 4 / 3 ) -#define MAX_BASE64_LEN ( MAX_SERIALIZED_DATA * 4 / 3 + 3 ) +#define MIN_BASE64_LEN (MIN_SERIALIZED_DATA * 4 / 3) +#define MAX_BASE64_LEN (MAX_SERIALIZED_DATA * 4 / 3 + 3) /* * A macro that prevents from reading out of the ssl buffer range. */ -#define CHECK_SSL_END( LEN ) \ -do \ -{ \ - if( end - ssl < (int)( LEN ) ) \ - { \ - printf_err( "%s", buf_ln_err ); \ - return; \ - } \ -} while( 0 ) +#define CHECK_SSL_END(LEN) \ + do \ + { \ + if (end - ssl < (int) (LEN)) \ + { \ + printf_err("%s", buf_ln_err); \ + return; \ + } \ + } while (0) /* * Global values @@ -124,17 +124,17 @@ const char buf_ln_err[] = "Buffer does not have enough data to complete the pars /* * Basic printing functions */ -void print_version( ) +void print_version() { - printf( "%s v%d.%d\n", PROG_NAME, VER_MAJOR, VER_MINOR ); + printf("%s v%d.%d\n", PROG_NAME, VER_MAJOR, VER_MINOR); } -void print_usage( ) +void print_usage() { print_version(); - printf( "\nThis program is used to deserialize an Mbed TLS SSL session from the base64 code provided\n" - "in the text file. The program can deserialize many codes from one file, but they must be\n" - "separated, e.g. by a newline.\n\n" ); + printf("\nThis program is used to deserialize an Mbed TLS SSL session from the base64 code provided\n" + "in the text file. The program can deserialize many codes from one file, but they must be\n" + "separated, e.g. by a newline.\n\n"); printf( "Usage:\n" "\t-f path - Path to the file with base64 code\n" @@ -148,32 +148,31 @@ void print_usage( ) "\t--dtls-protocol=0 - Use this option if you know that the Mbed TLS library\n" "\t has been compiled without the MBEDTLS_SSL_PROTO_DTLS flag\n" "\n" - ); + ); } -void printf_dbg( const char *str, ... ) +void printf_dbg(const char *str, ...) { - if( debug ) - { + if (debug) { va_list args; - va_start( args, str ); - printf( "debug: " ); - vprintf( str, args ); - fflush( stdout ); - va_end( args ); + va_start(args, str); + printf("debug: "); + vprintf(str, args); + fflush(stdout); + va_end(args); } } -MBEDTLS_PRINTF_ATTRIBUTE( 1, 2 ) -void printf_err( const char *str, ... ) +MBEDTLS_PRINTF_ATTRIBUTE(1, 2) +void printf_err(const char *str, ...) { va_list args; - va_start( args, str ); - fflush( stdout ); - fprintf( stderr, "ERROR: " ); - vfprintf( stderr, str, args ); - fflush( stderr ); - va_end( args ); + va_start(args, str); + fflush(stdout); + fprintf(stderr, "ERROR: "); + vfprintf(stderr, str, args); + fflush(stderr); + va_end(args); } /* @@ -181,70 +180,51 @@ void printf_err( const char *str, ... ) */ void error_exit() { - if( NULL != b64_file ) - { - fclose( b64_file ); + if (NULL != b64_file) { + fclose(b64_file); } - exit( -1 ); + exit(-1); } /* * This function takes the input arguments of this program */ -void parse_arguments( int argc, char *argv[] ) +void parse_arguments(int argc, char *argv[]) { int i = 1; - if( argc < 2 ) - { + if (argc < 2) { print_usage(); error_exit(); } - while( i < argc ) - { - if( strcmp( argv[i], "-d" ) == 0 ) - { + while (i < argc) { + if (strcmp(argv[i], "-d") == 0) { debug = 1; - } - else if( strcmp( argv[i], "-h" ) == 0 ) - { + } else if (strcmp(argv[i], "-h") == 0) { print_usage(); - } - else if( strcmp( argv[i], "-v" ) == 0 ) - { + } else if (strcmp(argv[i], "-v") == 0) { print_version(); - } - else if( strcmp( argv[i], "-f" ) == 0 ) - { - if( ++i >= argc ) - { - printf_err( "File path is empty\n" ); + } else if (strcmp(argv[i], "-f") == 0) { + if (++i >= argc) { + printf_err("File path is empty\n"); error_exit(); } - if( NULL != b64_file ) - { - printf_err( "Cannot specify more than one file with -f\n" ); - error_exit( ); - } - - if( ( b64_file = fopen( argv[i], "r" )) == NULL ) - { - printf_err( "Cannot find file \"%s\"\n", argv[i] ); + if (NULL != b64_file) { + printf_err("Cannot specify more than one file with -f\n"); error_exit(); } - } - else if( strcmp( argv[i], "--keep-peer-cert=0" ) == 0 ) - { + + if ((b64_file = fopen(argv[i], "r")) == NULL) { + printf_err("Cannot find file \"%s\"\n", argv[i]); + error_exit(); + } + } else if (strcmp(argv[i], "--keep-peer-cert=0") == 0) { conf_keep_peer_certificate = 0; - } - else if( strcmp( argv[i], "--dtls-protocol=0" ) == 0 ) - { + } else if (strcmp(argv[i], "--dtls-protocol=0") == 0) { conf_dtls_proto = 0; - } - else - { + } else { print_usage(); error_exit(); } @@ -256,22 +236,20 @@ void parse_arguments( int argc, char *argv[] ) /* * This function prints base64 code to the stdout */ -void print_b64( const uint8_t *b, size_t len ) +void print_b64(const uint8_t *b, size_t len) { size_t i = 0; const uint8_t *end = b + len; printf("\t"); - while( b < end ) - { - if( ++i > 75 ) - { - printf( "\n\t" ); + while (b < end) { + if (++i > 75) { + printf("\n\t"); i = 0; } - printf( "%c", *b++ ); + printf("%c", *b++); } - printf( "\n" ); - fflush( stdout ); + printf("\n"); + fflush(stdout); } /* @@ -282,25 +260,22 @@ void print_b64( const uint8_t *b, size_t len ) * /p in_line number of bytes in one line * /p prefix prefix for the new lines */ -void print_hex( const uint8_t *b, size_t len, - const size_t in_line, const char *prefix ) +void print_hex(const uint8_t *b, size_t len, + const size_t in_line, const char *prefix) { size_t i = 0; const uint8_t *end = b + len; - if( prefix == NULL ) - { + if (prefix == NULL) { prefix = ""; } - while( b < end ) - { - if( ++i > in_line ) - { - printf( "\n%s", prefix ); + while (b < end) { + if (++i > in_line) { + printf("\n%s", prefix); i = 1; } - printf( "%02X ", (uint8_t) *b++ ); + printf("%02X ", (uint8_t) *b++); } printf("\n"); fflush(stdout); @@ -309,53 +284,48 @@ void print_hex( const uint8_t *b, size_t len, /* * Print the value of time_t in format e.g. 2020-01-23 13:05:59 */ -void print_time( const uint64_t *time ) +void print_time(const uint64_t *time) { #if defined(MBEDTLS_HAVE_TIME) char buf[20]; - struct tm *t = gmtime( (time_t*) time ); + struct tm *t = gmtime((time_t *) time); static const char format[] = "%Y-%m-%d %H:%M:%S"; - if( NULL != t ) - { - strftime( buf, sizeof( buf ), format, t ); - printf( "%s\n", buf ); - } - else - { - printf( "unknown\n" ); + if (NULL != t) { + strftime(buf, sizeof(buf), format, t); + printf("%s\n", buf); + } else { + printf("unknown\n"); } #else (void) time; - printf( "not supported\n" ); + printf("not supported\n"); #endif } /* * Print the input string if the bit is set in the value */ -void print_if_bit( const char *str, int bit, int val ) +void print_if_bit(const char *str, int bit, int val) { - if( bit & val ) - { - printf( "\t%s\n", str ); + if (bit & val) { + printf("\t%s\n", str); } } /* * Return pointer to hardcoded "enabled" or "disabled" depending on the input value */ -const char * get_enabled_str( int is_en ) +const char *get_enabled_str(int is_en) { - return ( is_en ) ? "enabled" : "disabled"; + return (is_en) ? "enabled" : "disabled"; } /* * Return pointer to hardcoded MFL string value depending on the MFL code at the input */ -const char * get_mfl_str( int mfl_code ) +const char *get_mfl_str(int mfl_code) { - switch( mfl_code ) - { + switch (mfl_code) { case MBEDTLS_SSL_MAX_FRAG_LEN_NONE: return "none"; case MBEDTLS_SSL_MAX_FRAG_LEN_512: @@ -386,125 +356,95 @@ const char * get_mfl_str( int mfl_code ) * \retval number of bytes written in to the b64 buffer or 0 in case no more * data was found */ -size_t read_next_b64_code( uint8_t **b64, size_t *max_len ) +size_t read_next_b64_code(uint8_t **b64, size_t *max_len) { int valid_balance = 0; /* balance between valid and invalid characters */ size_t len = 0; char pad = 0; int c = 0; - while( EOF != c ) - { + while (EOF != c) { char c_valid = 0; - c = fgetc( b64_file ); + c = fgetc(b64_file); - if( pad > 0 ) - { - if( c == '=' && pad == 1 ) - { + if (pad > 0) { + if (c == '=' && pad == 1) { c_valid = 1; pad = 2; } - } - else if( ( c >= 'A' && c <= 'Z' ) || - ( c >= 'a' && c <= 'z' ) || - ( c >= '0' && c <= '9' ) || - c == '+' || c == '/' ) - { + } else if ((c >= 'A' && c <= 'Z') || + (c >= 'a' && c <= 'z') || + (c >= '0' && c <= '9') || + c == '+' || c == '/') { c_valid = 1; - } - else if( c == '=' ) - { + } else if (c == '=') { c_valid = 1; pad = 1; - } - else if( c == '-' ) - { + } else if (c == '-') { c = '+'; c_valid = 1; - } - else if( c == '_' ) - { + } else if (c == '_') { c = '/'; c_valid = 1; } - if( c_valid ) - { + if (c_valid) { /* A string of characters that could be a base64 code. */ valid_balance++; - if( len < *max_len ) - { - ( *b64 )[ len++ ] = c; - } - else if( *max_len < MAX_BASE64_LEN ) - { + if (len < *max_len) { + (*b64)[len++] = c; + } else if (*max_len < MAX_BASE64_LEN) { /* Current buffer is too small, but can be resized. */ void *ptr; - size_t new_size = ( MAX_BASE64_LEN - 4096 > *max_len ) ? + size_t new_size = (MAX_BASE64_LEN - 4096 > *max_len) ? *max_len + 4096 : MAX_BASE64_LEN; - ptr = realloc( *b64, new_size ); - if( NULL == ptr ) - { - printf_err( alloc_err ); + ptr = realloc(*b64, new_size); + if (NULL == ptr) { + printf_err(alloc_err); return 0; } *b64 = ptr; *max_len = new_size; - ( *b64 )[ len++ ] = c; - } - else - { + (*b64)[len++] = c; + } else { /* Too much data so it will be treated as invalid */ len++; } - } - else if( len > 0 ) - { + } else if (len > 0) { /* End of a string that could be a base64 code, but need to check * that the length of the characters is correct. */ valid_balance--; - if( len < MIN_CONTEXT_LEN ) - { - printf_dbg( "The code found is too small to be a SSL context.\n" ); + if (len < MIN_CONTEXT_LEN) { + printf_dbg("The code found is too small to be a SSL context.\n"); len = pad = 0; - } - else if( len > *max_len ) - { - printf_err( "The code found is too large by %" MBEDTLS_PRINTF_SIZET " bytes.\n", - len - *max_len ); + } else if (len > *max_len) { + printf_err("The code found is too large by %" MBEDTLS_PRINTF_SIZET " bytes.\n", + len - *max_len); len = pad = 0; - } - else if( len % 4 != 0 ) - { - printf_err( "The length of the base64 code found should be a multiple of 4.\n" ); + } else if (len % 4 != 0) { + printf_err("The length of the base64 code found should be a multiple of 4.\n"); len = pad = 0; - } - else - { + } else { /* Base64 code with valid character length. */ return len; } - } - else - { + } else { valid_balance--; } /* Detection of potentially wrong file format like: binary, zip, ISO, etc. */ - if( valid_balance < -100 ) - { - printf_err( "Too many bad symbols detected. File check aborted.\n" ); + if (valid_balance < -100) { + printf_err("Too many bad symbols detected. File check aborted.\n"); return 0; } } - printf_dbg( "End of file\n" ); + printf_dbg("End of file\n"); return 0; } @@ -515,53 +455,45 @@ size_t read_next_b64_code( uint8_t **b64, size_t *max_len ) * * /p ssl pointer to serialized certificate * /p len number of bytes in the buffer -*/ -void print_deserialized_ssl_cert( const uint8_t *ssl, uint32_t len ) + */ +void print_deserialized_ssl_cert(const uint8_t *ssl, uint32_t len) { enum { STRLEN = 4096 }; mbedtls_x509_crt crt; int ret; char str[STRLEN]; - printf( "\nCertificate:\n" ); + printf("\nCertificate:\n"); - mbedtls_x509_crt_init( &crt ); - ret = mbedtls_x509_crt_parse_der( &crt, ssl, len ); - if( 0 != ret ) - { - mbedtls_strerror( ret, str, STRLEN ); - printf_err( "Invalid format of X.509 - %s\n", str ); - printf( "Cannot deserialize:\n\t" ); - print_hex( ssl, len, 25, "\t" ); - } - else - { + mbedtls_x509_crt_init(&crt); + ret = mbedtls_x509_crt_parse_der(&crt, ssl, len); + if (0 != ret) { + mbedtls_strerror(ret, str, STRLEN); + printf_err("Invalid format of X.509 - %s\n", str); + printf("Cannot deserialize:\n\t"); + print_hex(ssl, len, 25, "\t"); + } else { mbedtls_x509_crt *current = &crt; - while( current != NULL ) - { - ret = mbedtls_x509_crt_info( str, STRLEN, "\t", current ); - if( 0 > ret ) - { - mbedtls_strerror( ret, str, STRLEN ); - printf_err( "Cannot write to the output - %s\n", str ); - } - else - { - printf( "%s", str ); + while (current != NULL) { + ret = mbedtls_x509_crt_info(str, STRLEN, "\t", current); + if (0 > ret) { + mbedtls_strerror(ret, str, STRLEN); + printf_err("Cannot write to the output - %s\n", str); + } else { + printf("%s", str); } current = current->next; - if( current ) - { - printf( "\n" ); + if (current) { + printf("\n"); } } } - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } #endif /* !MBEDTLS_X509_REMOVE_INFO */ @@ -590,226 +522,202 @@ void print_deserialized_ssl_cert( const uint8_t *ssl, uint32_t len ) * /p len number of bytes in the buffer * /p session_cfg_flag session configuration flags */ -void print_deserialized_ssl_session( const uint8_t *ssl, uint32_t len, - int session_cfg_flag ) +void print_deserialized_ssl_session(const uint8_t *ssl, uint32_t len, + int session_cfg_flag) { - const struct mbedtls_ssl_ciphersuite_t * ciphersuite_info; + const struct mbedtls_ssl_ciphersuite_t *ciphersuite_info; int ciphersuite_id; uint32_t cert_len, ticket_len; uint32_t verify_result, ticket_lifetime; const uint8_t *end = ssl + len; - printf( "\nSession info:\n" ); + printf("\nSession info:\n"); - if( session_cfg_flag & SESSION_CONFIG_TIME_BIT ) - { + if (session_cfg_flag & SESSION_CONFIG_TIME_BIT) { uint64_t start; - CHECK_SSL_END( 8 ); - start = ( (uint64_t) ssl[0] << 56 ) | - ( (uint64_t) ssl[1] << 48 ) | - ( (uint64_t) ssl[2] << 40 ) | - ( (uint64_t) ssl[3] << 32 ) | - ( (uint64_t) ssl[4] << 24 ) | - ( (uint64_t) ssl[5] << 16 ) | - ( (uint64_t) ssl[6] << 8 ) | - ( (uint64_t) ssl[7] ); + CHECK_SSL_END(8); + start = ((uint64_t) ssl[0] << 56) | + ((uint64_t) ssl[1] << 48) | + ((uint64_t) ssl[2] << 40) | + ((uint64_t) ssl[3] << 32) | + ((uint64_t) ssl[4] << 24) | + ((uint64_t) ssl[5] << 16) | + ((uint64_t) ssl[6] << 8) | + ((uint64_t) ssl[7]); ssl += 8; - printf( "\tstart time : " ); - print_time( &start ); + printf("\tstart time : "); + print_time(&start); } - CHECK_SSL_END( 2 ); - ciphersuite_id = ( (int) ssl[0] << 8 ) | (int) ssl[1]; - printf_dbg( "Ciphersuite ID: %d\n", ciphersuite_id ); + CHECK_SSL_END(2); + ciphersuite_id = ((int) ssl[0] << 8) | (int) ssl[1]; + printf_dbg("Ciphersuite ID: %d\n", ciphersuite_id); ssl += 2; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); - if( ciphersuite_info == NULL ) - { - printf_err( "Cannot find ciphersuite info\n" ); - } - else - { + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(ciphersuite_id); + if (ciphersuite_info == NULL) { + printf_err("Cannot find ciphersuite info\n"); + } else { const mbedtls_cipher_info_t *cipher_info; #if defined(MBEDTLS_MD_C) const mbedtls_md_info_t *md_info; #endif - printf( "\tciphersuite : %s\n", ciphersuite_info->name ); - printf( "\tcipher flags : 0x%02X\n", ciphersuite_info->flags ); + printf("\tciphersuite : %s\n", ciphersuite_info->name); + printf("\tcipher flags : 0x%02X\n", ciphersuite_info->flags); - cipher_info = mbedtls_cipher_info_from_type( ciphersuite_info->cipher ); - if( cipher_info == NULL ) - { - printf_err( "Cannot find cipher info\n" ); - } - else - { - printf( "\tcipher : %s\n", cipher_info->name ); + cipher_info = mbedtls_cipher_info_from_type(ciphersuite_info->cipher); + if (cipher_info == NULL) { + printf_err("Cannot find cipher info\n"); + } else { + printf("\tcipher : %s\n", cipher_info->name); } #if defined(MBEDTLS_MD_C) - md_info = mbedtls_md_info_from_type( ciphersuite_info->mac ); - if( md_info == NULL ) - { - printf_err( "Cannot find Message-Digest info\n" ); - } - else - { - printf( "\tMessage-Digest : %s\n", mbedtls_md_get_name( md_info ) ); + md_info = mbedtls_md_info_from_type(ciphersuite_info->mac); + if (md_info == NULL) { + printf_err("Cannot find Message-Digest info\n"); + } else { + printf("\tMessage-Digest : %s\n", mbedtls_md_get_name(md_info)); } #endif /* MBEDTLS_MD_C */ } - CHECK_SSL_END( 1 ); - printf( "\tcompression : %s\n", get_enabled_str( *ssl++ ) ); + CHECK_SSL_END(1); + printf("\tcompression : %s\n", get_enabled_str(*ssl++)); /* Note - Here we can get session ID length from serialized data, but we * use hardcoded 32-bytes length. This approach was taken from * 'mbedtls_ssl_session_load()'. */ - CHECK_SSL_END( 1 + 32 ); - printf_dbg( "Session id length: %u\n", (uint32_t) *ssl++ ); - printf( "\tsession ID : "); - print_hex( ssl, 32, 16, "\t " ); + CHECK_SSL_END(1 + 32); + printf_dbg("Session id length: %u\n", (uint32_t) *ssl++); + printf("\tsession ID : "); + print_hex(ssl, 32, 16, "\t "); ssl += 32; - printf( "\tmaster secret : "); - CHECK_SSL_END( 48 ); - print_hex( ssl, 48, 16, "\t " ); + printf("\tmaster secret : "); + CHECK_SSL_END(48); + print_hex(ssl, 48, 16, "\t "); ssl += 48; - CHECK_SSL_END( 4 ); - verify_result = ( (uint32_t) ssl[0] << 24 ) | - ( (uint32_t) ssl[1] << 16 ) | - ( (uint32_t) ssl[2] << 8 ) | - ( (uint32_t) ssl[3] ); + CHECK_SSL_END(4); + verify_result = ((uint32_t) ssl[0] << 24) | + ((uint32_t) ssl[1] << 16) | + ((uint32_t) ssl[2] << 8) | + ((uint32_t) ssl[3]); ssl += 4; - printf( "\tverify result : 0x%08X\n", verify_result ); + printf("\tverify result : 0x%08X\n", verify_result); - if( SESSION_CONFIG_CRT_BIT & session_cfg_flag ) - { - if( conf_keep_peer_certificate ) - { - CHECK_SSL_END( 3 ); - cert_len = ( (uint32_t) ssl[0] << 16 ) | - ( (uint32_t) ssl[1] << 8 ) | - ( (uint32_t) ssl[2] ); + if (SESSION_CONFIG_CRT_BIT & session_cfg_flag) { + if (conf_keep_peer_certificate) { + CHECK_SSL_END(3); + cert_len = ((uint32_t) ssl[0] << 16) | + ((uint32_t) ssl[1] << 8) | + ((uint32_t) ssl[2]); ssl += 3; - printf_dbg( "Certificate length: %u\n", cert_len ); + printf_dbg("Certificate length: %u\n", cert_len); - if( cert_len > 0 ) - { - CHECK_SSL_END( cert_len ); + if (cert_len > 0) { + CHECK_SSL_END(cert_len); #if !defined(MBEDTLS_X509_REMOVE_INFO) - print_deserialized_ssl_cert( ssl, cert_len ); + print_deserialized_ssl_cert(ssl, cert_len); #endif ssl += cert_len; } - } - else - { - printf( "\tPeer digest : " ); + } else { + printf("\tPeer digest : "); - CHECK_SSL_END( 1 ); - switch( (mbedtls_md_type_t) *ssl++ ) - { + CHECK_SSL_END(1); + switch ((mbedtls_md_type_t) *ssl++) { case MBEDTLS_MD_NONE: - printf( "none\n" ); + printf("none\n"); break; case MBEDTLS_MD_MD5: - printf( "MD5\n" ); + printf("MD5\n"); break; case MBEDTLS_MD_SHA1: - printf( "SHA1\n" ); + printf("SHA1\n"); break; case MBEDTLS_MD_SHA224: - printf( "SHA224\n" ); + printf("SHA224\n"); break; case MBEDTLS_MD_SHA256: - printf( "SHA256\n" ); + printf("SHA256\n"); break; case MBEDTLS_MD_SHA384: - printf( "SHA384\n" ); + printf("SHA384\n"); break; case MBEDTLS_MD_SHA512: - printf( "SHA512\n" ); + printf("SHA512\n"); break; case MBEDTLS_MD_RIPEMD160: - printf( "RIPEMD160\n" ); + printf("RIPEMD160\n"); break; default: - printf( "undefined or erroneous\n" ); + printf("undefined or erroneous\n"); break; } - CHECK_SSL_END( 1 ); + CHECK_SSL_END(1); cert_len = (uint32_t) *ssl++; - printf_dbg( "Message-Digest length: %u\n", cert_len ); + printf_dbg("Message-Digest length: %u\n", cert_len); - if( cert_len > 0 ) - { - printf( "\tPeer digest cert : " ); - CHECK_SSL_END( cert_len ); - print_hex( ssl, cert_len, 16, "\t " ); + if (cert_len > 0) { + printf("\tPeer digest cert : "); + CHECK_SSL_END(cert_len); + print_hex(ssl, cert_len, 16, "\t "); ssl += cert_len; } } } - if( SESSION_CONFIG_CLIENT_TICKET_BIT & session_cfg_flag ) - { - printf( "\nTicket:\n" ); + if (SESSION_CONFIG_CLIENT_TICKET_BIT & session_cfg_flag) { + printf("\nTicket:\n"); - CHECK_SSL_END( 3 ); - ticket_len = ( (uint32_t) ssl[0] << 16 ) | - ( (uint32_t) ssl[1] << 8 ) | - ( (uint32_t) ssl[2] ); + CHECK_SSL_END(3); + ticket_len = ((uint32_t) ssl[0] << 16) | + ((uint32_t) ssl[1] << 8) | + ((uint32_t) ssl[2]); ssl += 3; - printf_dbg( "Ticket length: %u\n", ticket_len ); + printf_dbg("Ticket length: %u\n", ticket_len); - if( ticket_len > 0 ) - { - printf( "\t" ); - CHECK_SSL_END( ticket_len ); - print_hex( ssl, ticket_len, 22, "\t" ); + if (ticket_len > 0) { + printf("\t"); + CHECK_SSL_END(ticket_len); + print_hex(ssl, ticket_len, 22, "\t"); ssl += ticket_len; - printf( "\n" ); + printf("\n"); } - CHECK_SSL_END( 4 ); - ticket_lifetime = ( (uint32_t) ssl[0] << 24 ) | - ( (uint32_t) ssl[1] << 16 ) | - ( (uint32_t) ssl[2] << 8 ) | - ( (uint32_t) ssl[3] ); + CHECK_SSL_END(4); + ticket_lifetime = ((uint32_t) ssl[0] << 24) | + ((uint32_t) ssl[1] << 16) | + ((uint32_t) ssl[2] << 8) | + ((uint32_t) ssl[3]); ssl += 4; - printf( "\tlifetime : %u sec.\n", ticket_lifetime ); + printf("\tlifetime : %u sec.\n", ticket_lifetime); } - if( ssl < end ) - { - printf( "\nSession others:\n" ); + if (ssl < end) { + printf("\nSession others:\n"); } - if( SESSION_CONFIG_MFL_BIT & session_cfg_flag ) - { - CHECK_SSL_END( 1 ); - printf( "\tMFL : %s\n", get_mfl_str( *ssl++ ) ); + if (SESSION_CONFIG_MFL_BIT & session_cfg_flag) { + CHECK_SSL_END(1); + printf("\tMFL : %s\n", get_mfl_str(*ssl++)); } - if( SESSION_CONFIG_TRUNC_HMAC_BIT & session_cfg_flag ) - { - CHECK_SSL_END( 1 ); - printf( "\tnegotiate truncated HMAC : %s\n", get_enabled_str( *ssl++ ) ); + if (SESSION_CONFIG_TRUNC_HMAC_BIT & session_cfg_flag) { + CHECK_SSL_END(1); + printf("\tnegotiate truncated HMAC : %s\n", get_enabled_str(*ssl++)); } - if( SESSION_CONFIG_ETM_BIT & session_cfg_flag ) - { - CHECK_SSL_END( 1 ); - printf( "\tEncrypt-then-MAC : %s\n", get_enabled_str( *ssl++ ) ); + if (SESSION_CONFIG_ETM_BIT & session_cfg_flag) { + CHECK_SSL_END(1); + printf("\tEncrypt-then-MAC : %s\n", get_enabled_str(*ssl++)); } - if( 0 != ( end - ssl ) ) - { - printf_err( "%i bytes left to analyze from session\n", (int32_t)( end - ssl ) ); + if (0 != (end - ssl)) { + printf_err("%i bytes left to analyze from session\n", (int32_t) (end - ssl)); } } @@ -846,187 +754,175 @@ void print_deserialized_ssl_session( const uint8_t *ssl, uint32_t len, * /p ssl pointer to serialized session * /p len number of bytes in the buffer */ -void print_deserialized_ssl_context( const uint8_t *ssl, size_t len ) +void print_deserialized_ssl_context(const uint8_t *ssl, size_t len) { const uint8_t *end = ssl + len; uint32_t session_len; int session_cfg_flag; int context_cfg_flag; - printf( "\nMbed TLS version:\n" ); + printf("\nMbed TLS version:\n"); - CHECK_SSL_END( 3 + 2 + 3 ); + CHECK_SSL_END(3 + 2 + 3); - printf( "\tmajor %u\n", (uint32_t) *ssl++ ); - printf( "\tminor %u\n", (uint32_t) *ssl++ ); - printf( "\tpath %u\n", (uint32_t) *ssl++ ); + printf("\tmajor %u\n", (uint32_t) *ssl++); + printf("\tminor %u\n", (uint32_t) *ssl++); + printf("\tpath %u\n", (uint32_t) *ssl++); - printf( "\nEnabled session and context configuration:\n" ); + printf("\nEnabled session and context configuration:\n"); - session_cfg_flag = ( (int) ssl[0] << 8 ) | ( (int) ssl[1] ); + session_cfg_flag = ((int) ssl[0] << 8) | ((int) ssl[1]); ssl += 2; - context_cfg_flag = ( (int) ssl[0] << 16 ) | - ( (int) ssl[1] << 8 ) | - ( (int) ssl[2] ) ; + context_cfg_flag = ((int) ssl[0] << 16) | + ((int) ssl[1] << 8) | + ((int) ssl[2]); ssl += 3; - printf_dbg( "Session config flags 0x%04X\n", session_cfg_flag ); - printf_dbg( "Context config flags 0x%06X\n", context_cfg_flag ); + printf_dbg("Session config flags 0x%04X\n", session_cfg_flag); + printf_dbg("Context config flags 0x%06X\n", context_cfg_flag); - print_if_bit( "MBEDTLS_HAVE_TIME", SESSION_CONFIG_TIME_BIT, session_cfg_flag ); - print_if_bit( "MBEDTLS_X509_CRT_PARSE_C", SESSION_CONFIG_CRT_BIT, session_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", SESSION_CONFIG_MFL_BIT, session_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_ENCRYPT_THEN_MAC", SESSION_CONFIG_ETM_BIT, session_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_SESSION_TICKETS", SESSION_CONFIG_TICKET_BIT, session_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_SESSION_TICKETS and client", SESSION_CONFIG_CLIENT_TICKET_BIT, session_cfg_flag ); + print_if_bit("MBEDTLS_HAVE_TIME", SESSION_CONFIG_TIME_BIT, session_cfg_flag); + print_if_bit("MBEDTLS_X509_CRT_PARSE_C", SESSION_CONFIG_CRT_BIT, session_cfg_flag); + print_if_bit("MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", SESSION_CONFIG_MFL_BIT, session_cfg_flag); + print_if_bit("MBEDTLS_SSL_ENCRYPT_THEN_MAC", SESSION_CONFIG_ETM_BIT, session_cfg_flag); + print_if_bit("MBEDTLS_SSL_SESSION_TICKETS", SESSION_CONFIG_TICKET_BIT, session_cfg_flag); + print_if_bit("MBEDTLS_SSL_SESSION_TICKETS and client", + SESSION_CONFIG_CLIENT_TICKET_BIT, + session_cfg_flag); - print_if_bit( "MBEDTLS_SSL_DTLS_CONNECTION_ID", CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT, context_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_DTLS_ANTI_REPLAY", CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT, context_cfg_flag ); - print_if_bit( "MBEDTLS_SSL_ALPN", CONTEXT_CONFIG_ALPN_BIT, context_cfg_flag ); + print_if_bit("MBEDTLS_SSL_DTLS_CONNECTION_ID", + CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT, + context_cfg_flag); + print_if_bit("MBEDTLS_SSL_DTLS_ANTI_REPLAY", + CONTEXT_CONFIG_DTLS_ANTI_REPLAY_BIT, + context_cfg_flag); + print_if_bit("MBEDTLS_SSL_ALPN", CONTEXT_CONFIG_ALPN_BIT, context_cfg_flag); - CHECK_SSL_END( 4 ); - session_len = ( (uint32_t) ssl[0] << 24 ) | - ( (uint32_t) ssl[1] << 16 ) | - ( (uint32_t) ssl[2] << 8 ) | - ( (uint32_t) ssl[3] ); + CHECK_SSL_END(4); + session_len = ((uint32_t) ssl[0] << 24) | + ((uint32_t) ssl[1] << 16) | + ((uint32_t) ssl[2] << 8) | + ((uint32_t) ssl[3]); ssl += 4; - printf_dbg( "Session length %u\n", session_len ); + printf_dbg("Session length %u\n", session_len); - CHECK_SSL_END( session_len ); - print_deserialized_ssl_session( ssl, session_len, session_cfg_flag ); + CHECK_SSL_END(session_len); + print_deserialized_ssl_session(ssl, session_len, session_cfg_flag); ssl += session_len; - printf( "\nRandom bytes:\n\t"); + printf("\nRandom bytes:\n\t"); - CHECK_SSL_END( TRANSFORM_RANDBYTE_LEN ); - print_hex( ssl, TRANSFORM_RANDBYTE_LEN, 22, "\t" ); + CHECK_SSL_END(TRANSFORM_RANDBYTE_LEN); + print_hex(ssl, TRANSFORM_RANDBYTE_LEN, 22, "\t"); ssl += TRANSFORM_RANDBYTE_LEN; - printf( "\nContext others:\n" ); + printf("\nContext others:\n"); - if( CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT & context_cfg_flag ) - { + if (CONTEXT_CONFIG_DTLS_CONNECTION_ID_BIT & context_cfg_flag) { uint8_t cid_len; - CHECK_SSL_END( 1 ); + CHECK_SSL_END(1); cid_len = *ssl++; - printf_dbg( "In CID length %u\n", (uint32_t) cid_len ); + printf_dbg("In CID length %u\n", (uint32_t) cid_len); - printf( "\tin CID : " ); - if( cid_len > 0 ) - { - CHECK_SSL_END( cid_len ); - print_hex( ssl, cid_len, 20, "\t" ); + printf("\tin CID : "); + if (cid_len > 0) { + CHECK_SSL_END(cid_len); + print_hex(ssl, cid_len, 20, "\t"); ssl += cid_len; - } - else - { - printf( "none\n" ); + } else { + printf("none\n"); } - CHECK_SSL_END( 1 ); + CHECK_SSL_END(1); cid_len = *ssl++; - printf_dbg( "Out CID length %u\n", (uint32_t) cid_len ); + printf_dbg("Out CID length %u\n", (uint32_t) cid_len); - printf( "\tout CID : " ); - if( cid_len > 0 ) - { - CHECK_SSL_END( cid_len ); - print_hex( ssl, cid_len, 20, "\t" ); + printf("\tout CID : "); + if (cid_len > 0) { + CHECK_SSL_END(cid_len); + print_hex(ssl, cid_len, 20, "\t"); ssl += cid_len; - } - else - { - printf( "none\n" ); + } else { + printf("none\n"); } } - if( CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT & context_cfg_flag ) - { + if (CONTEXT_CONFIG_DTLS_BADMAC_LIMIT_BIT & context_cfg_flag) { uint32_t badmac_seen; - CHECK_SSL_END( 4 ); - badmac_seen = ( (uint32_t) ssl[0] << 24 ) | - ( (uint32_t) ssl[1] << 16 ) | - ( (uint32_t) ssl[2] << 8 ) | - ( (uint32_t) ssl[3] ); + CHECK_SSL_END(4); + badmac_seen = ((uint32_t) ssl[0] << 24) | + ((uint32_t) ssl[1] << 16) | + ((uint32_t) ssl[2] << 8) | + ((uint32_t) ssl[3]); ssl += 4; - printf( "\tbad MAC seen number : %u\n", badmac_seen ); + printf("\tbad MAC seen number : %u\n", badmac_seen); /* value 'in_window_top' from mbedtls_ssl_context */ - printf( "\tlast validated record sequence no. : " ); - CHECK_SSL_END( 8 ); - print_hex( ssl, 8, 20, "" ); + printf("\tlast validated record sequence no. : "); + CHECK_SSL_END(8); + print_hex(ssl, 8, 20, ""); ssl += 8; /* value 'in_window' from mbedtls_ssl_context */ - printf( "\tbitmask for replay detection : " ); - CHECK_SSL_END( 8 ); - print_hex( ssl, 8, 20, "" ); + printf("\tbitmask for replay detection : "); + CHECK_SSL_END(8); + print_hex(ssl, 8, 20, ""); ssl += 8; } - if( conf_dtls_proto ) - { - CHECK_SSL_END( 1 ); - printf( "\tDTLS datagram packing : %s\n", - get_enabled_str( ! ( *ssl++ ) ) ); + if (conf_dtls_proto) { + CHECK_SSL_END(1); + printf("\tDTLS datagram packing : %s\n", + get_enabled_str(!(*ssl++))); } /* value 'cur_out_ctr' from mbedtls_ssl_context */ - printf( "\toutgoing record sequence no. : "); - CHECK_SSL_END( 8 ); - print_hex( ssl, 8, 20, "" ); + printf("\toutgoing record sequence no. : "); + CHECK_SSL_END(8); + print_hex(ssl, 8, 20, ""); ssl += 8; - if( conf_dtls_proto ) - { + if (conf_dtls_proto) { uint16_t mtu; - CHECK_SSL_END( 2 ); - mtu = ( ssl[0] << 8 ) | ssl[1]; + CHECK_SSL_END(2); + mtu = (ssl[0] << 8) | ssl[1]; ssl += 2; - printf( "\tMTU : %u\n", mtu ); + printf("\tMTU : %u\n", mtu); } - if( CONTEXT_CONFIG_ALPN_BIT & context_cfg_flag ) - { + if (CONTEXT_CONFIG_ALPN_BIT & context_cfg_flag) { uint8_t alpn_len; - CHECK_SSL_END( 1 ); + CHECK_SSL_END(1); alpn_len = *ssl++; - printf_dbg( "ALPN length %u\n", (uint32_t) alpn_len ); + printf_dbg("ALPN length %u\n", (uint32_t) alpn_len); - printf( "\tALPN negotiation : " ); - CHECK_SSL_END( alpn_len ); - if( alpn_len > 0 ) - { - if( strlen( (const char*) ssl ) == alpn_len ) - { - printf( "%s\n", ssl ); - } - else - { - printf( "\n" ); - printf_err( "\tALPN negotiation is incorrect\n" ); + printf("\tALPN negotiation : "); + CHECK_SSL_END(alpn_len); + if (alpn_len > 0) { + if (strlen((const char *) ssl) == alpn_len) { + printf("%s\n", ssl); + } else { + printf("\n"); + printf_err("\tALPN negotiation is incorrect\n"); } ssl += alpn_len; - } - else - { - printf( "not selected\n" ); + } else { + printf("not selected\n"); } } - if( 0 != ( end - ssl ) ) - { - printf_err( "%i bytes left to analyze from context\n", (int32_t)( end - ssl ) ); + if (0 != (end - ssl)) { + printf_err("%i bytes left to analyze from context\n", (int32_t) (end - ssl)); } - printf( "\n" ); + printf("\n"); } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { enum { SSL_INIT_LEN = 4096 }; @@ -1037,39 +933,33 @@ int main( int argc, char *argv[] ) size_t ssl_max_len = SSL_INIT_LEN; size_t ssl_len = 0; - /* The 'b64_file' is opened when parsing arguments to check that the - * file name is correct */ - parse_arguments( argc, argv ); + /* The 'b64_file' is opened when parsing arguments to check that the + * file name is correct */ + parse_arguments(argc, argv); - if( NULL != b64_file ) - { - b64_buf = malloc( SSL_INIT_LEN ); - ssl_buf = malloc( SSL_INIT_LEN ); + if (NULL != b64_file) { + b64_buf = malloc(SSL_INIT_LEN); + ssl_buf = malloc(SSL_INIT_LEN); - if( NULL == b64_buf || NULL == ssl_buf ) - { - printf_err( alloc_err ); - fclose( b64_file ); + if (NULL == b64_buf || NULL == ssl_buf) { + printf_err(alloc_err); + fclose(b64_file); b64_file = NULL; } } - while( NULL != b64_file ) - { - size_t b64_len = read_next_b64_code( &b64_buf, &b64_max_len ); - if( b64_len > 0) - { + while (NULL != b64_file) { + size_t b64_len = read_next_b64_code(&b64_buf, &b64_max_len); + if (b64_len > 0) { int ret; size_t ssl_required_len = b64_len * 3 / 4 + 1; /* Allocate more memory if necessary. */ - if( ssl_required_len > ssl_max_len ) - { - void *ptr = realloc( ssl_buf, ssl_required_len ); - if( NULL == ptr ) - { - printf_err( alloc_err ); - fclose( b64_file ); + if (ssl_required_len > ssl_max_len) { + void *ptr = realloc(ssl_buf, ssl_required_len); + if (NULL == ptr) { + printf_err(alloc_err); + fclose(b64_file); b64_file = NULL; break; } @@ -1077,45 +967,38 @@ int main( int argc, char *argv[] ) ssl_max_len = ssl_required_len; } - printf( "\nDeserializing number %u:\n", ++b64_counter ); + printf("\nDeserializing number %u:\n", ++b64_counter); - printf( "\nBase64 code:\n" ); - print_b64( b64_buf, b64_len ); + printf("\nBase64 code:\n"); + print_b64(b64_buf, b64_len); - ret = mbedtls_base64_decode( ssl_buf, ssl_max_len, &ssl_len, b64_buf, b64_len ); - if( ret != 0) - { - mbedtls_strerror( ret, (char*) b64_buf, b64_max_len ); - printf_err( "base64 code cannot be decoded - %s\n", b64_buf ); + ret = mbedtls_base64_decode(ssl_buf, ssl_max_len, &ssl_len, b64_buf, b64_len); + if (ret != 0) { + mbedtls_strerror(ret, (char *) b64_buf, b64_max_len); + printf_err("base64 code cannot be decoded - %s\n", b64_buf); continue; } - if( debug ) - { - printf( "\nDecoded data in hex:\n\t"); - print_hex( ssl_buf, ssl_len, 25, "\t" ); + if (debug) { + printf("\nDecoded data in hex:\n\t"); + print_hex(ssl_buf, ssl_len, 25, "\t"); } - print_deserialized_ssl_context( ssl_buf, ssl_len ); + print_deserialized_ssl_context(ssl_buf, ssl_len); - } - else - { - fclose( b64_file ); + } else { + fclose(b64_file); b64_file = NULL; } } - free( b64_buf ); - free( ssl_buf ); + free(b64_buf); + free(ssl_buf); - if( b64_counter > 0 ) - { - printf_dbg( "Finished. Found %u base64 codes\n", b64_counter ); - } - else - { - printf( "Finished. No valid base64 code found\n" ); + if (b64_counter > 0) { + printf_dbg("Finished. Found %u base64 codes\n", b64_counter); + } else { + printf("Finished. No valid base64 code found\n"); } return 0; diff --git a/programs/ssl/ssl_fork_server.c b/programs/ssl/ssl_fork_server.c index 49de984d8..7ee880d38 100644 --- a/programs/ssl/ssl_fork_server.c +++ b/programs/ssl/ssl_fork_server.c @@ -27,24 +27,24 @@ !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ !defined(MBEDTLS_TIMING_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_PEM_PARSE_C) -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { ((void) argc); ((void) argv); mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C " - "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " - "MBEDTLS_TIMING_C and/or MBEDTLS_PEM_PARSE_C not defined.\n"); - mbedtls_exit( 0 ); + "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " + "MBEDTLS_TIMING_C and/or MBEDTLS_PEM_PARSE_C not defined.\n"); + mbedtls_exit(0); } #elif defined(_WIN32) -int main( void ) +int main(void) { mbedtls_printf("_WIN32 defined. This application requires fork() and signals " - "to work correctly.\n"); - mbedtls_exit( 0 ); + "to work correctly.\n"); + mbedtls_exit(0); } #else @@ -71,17 +71,17 @@ int main( void ) #define DEBUG_LEVEL 0 -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -int main( void ) +int main(void) { int ret = 1, len, cnt = 0, pid; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -96,127 +96,118 @@ int main( void ) mbedtls_x509_crt srvcert; mbedtls_pk_context pkey; - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_entropy_init( &entropy ); - mbedtls_pk_init( &pkey ); - mbedtls_x509_crt_init( &srvcert ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_entropy_init(&entropy); + mbedtls_pk_init(&pkey); + mbedtls_x509_crt_init(&srvcert); + mbedtls_ctr_drbg_init(&ctr_drbg); - signal( SIGCHLD, SIG_IGN ); + signal(SIGCHLD, SIG_IGN); /* * 0. Initial seeding of the RNG */ - mbedtls_printf( "\n . Initial seeding of the random generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Initial seeding of the random generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_ctr_drbg_seed returned %d\n\n", ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed! mbedtls_ctr_drbg_seed returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1. Load the certificates and private RSA key */ - mbedtls_printf( " . Loading the server cert. and key..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the server cert. and key..."); + fflush(stdout); /* * This demonstration program uses embedded test certificates. * Instead, you may want to use mbedtls_x509_crt_parse_file() to read the * server and CA certificates, as well as mbedtls_pk_parse_keyfile(). */ - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len); + if (ret != 0) { + mbedtls_printf(" failed! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret != 0) { + mbedtls_printf(" failed! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, - mbedtls_test_srv_key_len, NULL, 0, - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed! mbedtls_pk_parse_key returned %d\n\n", ret ); + ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key, + mbedtls_test_srv_key_len, NULL, 0, + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed! mbedtls_pk_parse_key returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1b. Prepare SSL configuration */ - mbedtls_printf( " . Configuring SSL..." ); - fflush( stdout ); + mbedtls_printf(" . Configuring SSL..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_SERVER, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_SERVER, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); - mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL ); - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) { + mbedtls_printf(" failed! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Setup the listening TCP socket */ - mbedtls_printf( " . Bind on https://localhost:4433/ ..." ); - fflush( stdout ); + mbedtls_printf(" . Bind on https://localhost:4433/ ..."); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - while( 1 ) - { + while (1) { /* * 3. Wait until a client connects */ - mbedtls_net_init( &client_fd ); - mbedtls_ssl_init( &ssl ); + mbedtls_net_init(&client_fd); + mbedtls_ssl_init(&ssl); - mbedtls_printf( " . Waiting for a remote connection ...\n" ); - fflush( stdout ); + mbedtls_printf(" . Waiting for a remote connection ...\n"); + fflush(stdout); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - NULL, 0, NULL ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_net_accept returned %d\n\n", ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + NULL, 0, NULL)) != 0) { + mbedtls_printf(" failed! mbedtls_net_accept returned %d\n\n", ret); goto exit; } @@ -224,113 +215,104 @@ int main( void ) * 3.5. Forking server thread */ - mbedtls_printf( " . Forking to handle connection ..." ); - fflush( stdout ); + mbedtls_printf(" . Forking to handle connection ..."); + fflush(stdout); pid = fork(); - if( pid < 0 ) - { - mbedtls_printf(" failed! fork returned %d\n\n", pid ); + if (pid < 0) { + mbedtls_printf(" failed! fork returned %d\n\n", pid); goto exit; } - if( pid != 0 ) - { - mbedtls_printf( " ok\n" ); - mbedtls_net_close( &client_fd ); + if (pid != 0) { + mbedtls_printf(" ok\n"); + mbedtls_net_close(&client_fd); - if( ( ret = mbedtls_ctr_drbg_reseed( &ctr_drbg, - (const unsigned char *) "parent", - 6 ) ) != 0 ) - { - mbedtls_printf( " failed! mbedtls_ctr_drbg_reseed returned %d\n\n", ret ); + if ((ret = mbedtls_ctr_drbg_reseed(&ctr_drbg, + (const unsigned char *) "parent", + 6)) != 0) { + mbedtls_printf(" failed! mbedtls_ctr_drbg_reseed returned %d\n\n", ret); goto exit; } continue; } - mbedtls_net_close( &listen_fd ); + mbedtls_net_close(&listen_fd); pid = getpid(); /* * 4. Setup stuff */ - mbedtls_printf( "pid %d: Setting up the SSL data.\n", pid ); - fflush( stdout ); + mbedtls_printf("pid %d: Setting up the SSL data.\n", pid); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_reseed( &ctr_drbg, - (const unsigned char *) "child", - 5 ) ) != 0 ) - { + if ((ret = mbedtls_ctr_drbg_reseed(&ctr_drbg, + (const unsigned char *) "child", + 5)) != 0) { mbedtls_printf( - "pid %d: SSL setup failed! mbedtls_ctr_drbg_reseed returned %d\n\n", - pid, ret ); + "pid %d: SSL setup failed! mbedtls_ctr_drbg_reseed returned %d\n\n", + pid, ret); goto exit; } - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { mbedtls_printf( - "pid %d: SSL setup failed! mbedtls_ssl_setup returned %d\n\n", - pid, ret ); + "pid %d: SSL setup failed! mbedtls_ssl_setup returned %d\n\n", + pid, ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL); - mbedtls_printf( "pid %d: SSL setup ok\n", pid ); + mbedtls_printf("pid %d: SSL setup ok\n", pid); /* * 5. Handshake */ - mbedtls_printf( "pid %d: Performing the SSL/TLS handshake.\n", pid ); - fflush( stdout ); + mbedtls_printf("pid %d: Performing the SSL/TLS handshake.\n", pid); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { mbedtls_printf( - "pid %d: SSL handshake failed! mbedtls_ssl_handshake returned %d\n\n", - pid, ret ); + "pid %d: SSL handshake failed! mbedtls_ssl_handshake returned %d\n\n", + pid, ret); goto exit; } } - mbedtls_printf( "pid %d: SSL handshake ok\n", pid ); + mbedtls_printf("pid %d: SSL handshake ok\n", pid); /* * 6. Read the HTTP Request */ - mbedtls_printf( "pid %d: Start reading from client.\n", pid ); - fflush( stdout ); + mbedtls_printf("pid %d: Start reading from client.\n", pid); + fflush(stdout); - do - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) { continue; + } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( "pid %d: connection was closed gracefully\n", pid ); + mbedtls_printf("pid %d: connection was closed gracefully\n", pid); break; case MBEDTLS_ERR_NET_CONN_RESET: - mbedtls_printf( "pid %d: connection was reset by peer\n", pid ); + mbedtls_printf("pid %d: connection was reset by peer\n", pid); break; default: - mbedtls_printf( "pid %d: mbedtls_ssl_read returned %d\n", pid, ret ); + mbedtls_printf("pid %d: mbedtls_ssl_read returned %d\n", pid, ret); break; } @@ -338,65 +320,61 @@ int main( void ) } len = ret; - mbedtls_printf( "pid %d: %d bytes read\n\n%s", pid, len, (char *) buf ); + mbedtls_printf("pid %d: %d bytes read\n\n%s", pid, len, (char *) buf); - if( ret > 0 ) + if (ret > 0) { break; - } - while( 1 ); + } + } while (1); /* * 7. Write the 200 Response */ - mbedtls_printf( "pid %d: Start writing to client.\n", pid ); - fflush( stdout ); + mbedtls_printf("pid %d: Start writing to client.\n", pid); + fflush(stdout); - len = sprintf( (char *) buf, HTTP_RESPONSE, - mbedtls_ssl_get_ciphersuite( &ssl ) ); + len = sprintf((char *) buf, HTTP_RESPONSE, + mbedtls_ssl_get_ciphersuite(&ssl)); - while( cnt++ < 100 ) - { - while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 ) - { - if( ret == MBEDTLS_ERR_NET_CONN_RESET ) - { + while (cnt++ < 100) { + while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) { + if (ret == MBEDTLS_ERR_NET_CONN_RESET) { mbedtls_printf( - "pid %d: Write failed! peer closed the connection\n\n", pid ); + "pid %d: Write failed! peer closed the connection\n\n", pid); goto exit; } - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { mbedtls_printf( - "pid %d: Write failed! mbedtls_ssl_write returned %d\n\n", - pid, ret ); + "pid %d: Write failed! mbedtls_ssl_write returned %d\n\n", + pid, ret); goto exit; } } len = ret; - mbedtls_printf( "pid %d: %d bytes written\n\n%s\n", pid, len, (char *) buf ); + mbedtls_printf("pid %d: %d bytes written\n\n%s\n", pid, len, (char *) buf); - mbedtls_net_usleep( 1000000 ); + mbedtls_net_usleep(1000000); } - mbedtls_ssl_close_notify( &ssl ); + mbedtls_ssl_close_notify(&ssl); goto exit; } exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&listen_fd); - mbedtls_x509_crt_free( &srvcert ); - mbedtls_pk_free( &pkey ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_x509_crt_free(&srvcert); + mbedtls_pk_free(&pkey); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C && diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index 9fb65079e..4e54be885 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -33,14 +33,14 @@ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " - "not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " + "not defined.\n"); + mbedtls_exit(0); } #else @@ -96,7 +96,8 @@ int main( void ) #define USAGE_AUTH \ " authentication=%%d default: 0 (disabled)\n" \ " user_name=%%s default: \"" DFL_USER_NAME "\"\n" \ - " user_pwd=%%s default: \"" DFL_USER_PWD "\"\n" + " user_pwd=%%s default: \"" \ + DFL_USER_PWD "\"\n" #else #define USAGE_AUTH \ " authentication options disabled. (Require MBEDTLS_BASE64_C)\n" @@ -116,9 +117,10 @@ int main( void ) "\n usage: ssl_mail_client param=<>...\n" \ "\n acceptable parameters:\n" \ " server_name=%%s default: " DFL_SERVER_NAME "\n" \ - " server_port=%%d default: " DFL_SERVER_PORT "\n" \ - " debug_level=%%d default: 0 (disabled)\n" \ - " mode=%%d default: 0 (SSL/TLS) (1 for STARTTLS)\n" \ + " server_port=%%d default: " \ + DFL_SERVER_PORT "\n" \ + " debug_level=%%d default: 0 (disabled)\n" \ + " mode=%%d default: 0 (SSL/TLS) (1 for STARTTLS)\n" \ USAGE_AUTH \ " mail_from=%%s default: \"\"\n" \ " mail_to=%%s default: \"\"\n" \ @@ -130,8 +132,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *server_name; /* hostname of the server (client only) */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -147,17 +148,17 @@ struct options int force_ciphersuite[2]; /* protocol/ciphersuite to use, or all */ } opt; -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -static int do_handshake( mbedtls_ssl_context *ssl ) +static int do_handshake(mbedtls_ssl_context *ssl) { int ret; uint32_t flags; @@ -167,75 +168,70 @@ static int do_handshake( mbedtls_ssl_context *ssl ) /* * 4. Handshake */ - mbedtls_printf( " . Performing the SSL/TLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the SSL/TLS handshake..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + while ((ret = mbedtls_ssl_handshake(ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { #if defined(MBEDTLS_ERROR_C) - mbedtls_strerror( ret, (char *) buf, 1024 ); + mbedtls_strerror(ret, (char *) buf, 1024); #endif - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d: %s\n\n", ret, buf ); - return( -1 ); - } - } - - mbedtls_printf( " ok\n [ Ciphersuite is %s ]\n", - mbedtls_ssl_get_ciphersuite( ssl ) ); - - /* - * 5. Verify the server certificate - */ - mbedtls_printf( " . Verifying peer X.509 certificate..." ); - - /* In real life, we probably want to bail out when ret != 0 */ - if( ( flags = mbedtls_ssl_get_verify_result( ssl ) ) != 0 ) - { -#if !defined(MBEDTLS_X509_REMOVE_INFO) - char vrfy_buf[512]; -#endif - - mbedtls_printf( " failed\n" ); - -#if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); - - mbedtls_printf( "%s\n", vrfy_buf ); -#endif - } - else - mbedtls_printf( " ok\n" ); - -#if !defined(MBEDTLS_X509_REMOVE_INFO) - mbedtls_printf( " . Peer certificate information ...\n" ); - mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", - mbedtls_ssl_get_peer_cert( ssl ) ); - mbedtls_printf( "%s\n", buf ); -#endif - - return( 0 ); -} - -static int write_ssl_data( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) -{ - int ret; - - mbedtls_printf("\n%s", buf); - while( len && ( ret = mbedtls_ssl_write( ssl, buf, len ) ) <= 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d: %s\n\n", ret, buf); return -1; } } - return( 0 ); + mbedtls_printf(" ok\n [ Ciphersuite is %s ]\n", + mbedtls_ssl_get_ciphersuite(ssl)); + + /* + * 5. Verify the server certificate + */ + mbedtls_printf(" . Verifying peer X.509 certificate..."); + + /* In real life, we probably want to bail out when ret != 0 */ + if ((flags = mbedtls_ssl_get_verify_result(ssl)) != 0) { +#if !defined(MBEDTLS_X509_REMOVE_INFO) + char vrfy_buf[512]; +#endif + + mbedtls_printf(" failed\n"); + +#if !defined(MBEDTLS_X509_REMOVE_INFO) + mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); + + mbedtls_printf("%s\n", vrfy_buf); +#endif + } else { + mbedtls_printf(" ok\n"); + } + +#if !defined(MBEDTLS_X509_REMOVE_INFO) + mbedtls_printf(" . Peer certificate information ...\n"); + mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", + mbedtls_ssl_get_peer_cert(ssl)); + mbedtls_printf("%s\n", buf); +#endif + + return 0; } -static int write_ssl_and_get_response( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) +static int write_ssl_data(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len) +{ + int ret; + + mbedtls_printf("\n%s", buf); + while (len && (ret = mbedtls_ssl_write(ssl, buf, len)) <= 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); + return -1; + } + } + + return 0; +} + +static int write_ssl_and_get_response(mbedtls_ssl_context *ssl, unsigned char *buf, size_t len) { int ret; unsigned char data[128]; @@ -243,57 +239,52 @@ static int write_ssl_and_get_response( mbedtls_ssl_context *ssl, unsigned char * size_t i, idx = 0; mbedtls_printf("\n%s", buf); - while( len && ( ret = mbedtls_ssl_write( ssl, buf, len ) ) <= 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + while (len && (ret = mbedtls_ssl_write(ssl, buf, len)) <= 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); return -1; } } - do - { - len = sizeof( data ) - 1; - memset( data, 0, sizeof( data ) ); - ret = mbedtls_ssl_read( ssl, data, len ); + do { + len = sizeof(data) - 1; + memset(data, 0, sizeof(data)); + ret = mbedtls_ssl_read(ssl, data, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) { continue; + } - if( ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY ) + if (ret == MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) { return -1; + } - if( ret <= 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_ssl_read returned %d\n\n", ret ); + if (ret <= 0) { + mbedtls_printf("failed\n ! mbedtls_ssl_read returned %d\n\n", ret); return -1; } mbedtls_printf("\n%s", data); len = ret; - for( i = 0; i < len; i++ ) - { - if( data[i] != '\n' ) - { - if( idx < 4 ) - code[ idx++ ] = data[i]; + for (i = 0; i < len; i++) { + if (data[i] != '\n') { + if (idx < 4) { + code[idx++] = data[i]; + } continue; } - if( idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ' ) - { + if (idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ') { code[3] = '\0'; - return atoi( code ); + return atoi(code); } idx = 0; } - } - while( 1 ); + } while (1); } -static int write_and_get_response( mbedtls_net_context *sock_fd, unsigned char *buf, size_t len ) +static int write_and_get_response(mbedtls_net_context *sock_fd, unsigned char *buf, size_t len) { int ret; unsigned char data[128]; @@ -301,49 +292,43 @@ static int write_and_get_response( mbedtls_net_context *sock_fd, unsigned char * size_t i, idx = 0; mbedtls_printf("\n%s", buf); - if( len && ( ret = mbedtls_net_send( sock_fd, buf, len ) ) <= 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_send returned %d\n\n", ret ); - return -1; + if (len && (ret = mbedtls_net_send(sock_fd, buf, len)) <= 0) { + mbedtls_printf(" failed\n ! mbedtls_net_send returned %d\n\n", ret); + return -1; } - do - { - len = sizeof( data ) - 1; - memset( data, 0, sizeof( data ) ); - ret = mbedtls_net_recv( sock_fd, data, len ); + do { + len = sizeof(data) - 1; + memset(data, 0, sizeof(data)); + ret = mbedtls_net_recv(sock_fd, data, len); - if( ret <= 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_net_recv returned %d\n\n", ret ); + if (ret <= 0) { + mbedtls_printf("failed\n ! mbedtls_net_recv returned %d\n\n", ret); return -1; } data[len] = '\0'; mbedtls_printf("\n%s", data); len = ret; - for( i = 0; i < len; i++ ) - { - if( data[i] != '\n' ) - { - if( idx < 4 ) - code[ idx++ ] = data[i]; + for (i = 0; i < len; i++) { + if (data[i] != '\n') { + if (idx < 4) { + code[idx++] = data[i]; + } continue; } - if( idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ' ) - { + if (idx == 4 && code[0] >= '0' && code[0] <= '9' && code[3] == ' ') { code[3] = '\0'; - return atoi( code ); + return atoi(code); } idx = 0; } - } - while( 1 ); + } while (1); } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1, len; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -354,7 +339,7 @@ int main( int argc, char *argv[] ) * "%s\r\n". Hence, the size of buf should be at least the size of base * plus 2 bytes for the \r and \n characters. */ - unsigned char buf[sizeof( base ) + 2]; + unsigned char buf[sizeof(base) + 2]; #else unsigned char buf[1024]; #endif @@ -376,24 +361,22 @@ int main( int argc, char *argv[] ) /* * Make sure memory references are valid in case we exit early. */ - mbedtls_net_init( &server_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - memset( &buf, 0, sizeof( buf ) ); - mbedtls_x509_crt_init( &cacert ); - mbedtls_x509_crt_init( &clicert ); - mbedtls_pk_init( &pkey ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_net_init(&server_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + memset(&buf, 0, sizeof(buf)); + mbedtls_x509_crt_init(&cacert); + mbedtls_x509_crt_init(&clicert); + mbedtls_pk_init(&pkey); + mbedtls_ctr_drbg_init(&ctr_drbg); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); list = mbedtls_ssl_list_ciphersuites(); - while( *list ) - { - mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) ); + while (*list) { + mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list)); list++; } mbedtls_printf("\n"); @@ -412,144 +395,141 @@ int main( int argc, char *argv[] ) opt.ca_file = DFL_CA_FILE; opt.crt_file = DFL_CRT_FILE; opt.key_file = DFL_KEY_FILE; - opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; + opt.force_ciphersuite[0] = DFL_FORCE_CIPHER; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "server_name" ) == 0 ) + if (strcmp(p, "server_name") == 0) { opt.server_name = q; - else if( strcmp( p, "server_port" ) == 0 ) + } else if (strcmp(p, "server_port") == 0) { opt.server_port = q; - else if( strcmp( p, "debug_level" ) == 0 ) - { - opt.debug_level = atoi( q ); - if( opt.debug_level < 0 || opt.debug_level > 65535 ) + } else if (strcmp(p, "debug_level") == 0) { + opt.debug_level = atoi(q); + if (opt.debug_level < 0 || opt.debug_level > 65535) { goto usage; - } - else if( strcmp( p, "authentication" ) == 0 ) - { - opt.authentication = atoi( q ); - if( opt.authentication < 0 || opt.authentication > 1 ) + } + } else if (strcmp(p, "authentication") == 0) { + opt.authentication = atoi(q); + if (opt.authentication < 0 || opt.authentication > 1) { goto usage; - } - else if( strcmp( p, "mode" ) == 0 ) - { - opt.mode = atoi( q ); - if( opt.mode < 0 || opt.mode > 1 ) + } + } else if (strcmp(p, "mode") == 0) { + opt.mode = atoi(q); + if (opt.mode < 0 || opt.mode > 1) { goto usage; - } - else if( strcmp( p, "user_name" ) == 0 ) + } + } else if (strcmp(p, "user_name") == 0) { opt.user_name = q; - else if( strcmp( p, "user_pwd" ) == 0 ) + } else if (strcmp(p, "user_pwd") == 0) { opt.user_pwd = q; - else if( strcmp( p, "mail_from" ) == 0 ) + } else if (strcmp(p, "mail_from") == 0) { opt.mail_from = q; - else if( strcmp( p, "mail_to" ) == 0 ) + } else if (strcmp(p, "mail_to") == 0) { opt.mail_to = q; - else if( strcmp( p, "ca_file" ) == 0 ) + } else if (strcmp(p, "ca_file") == 0) { opt.ca_file = q; - else if( strcmp( p, "crt_file" ) == 0 ) + } else if (strcmp(p, "crt_file") == 0) { opt.crt_file = q; - else if( strcmp( p, "key_file" ) == 0 ) + } else if (strcmp(p, "key_file") == 0) { opt.key_file = q; - else if( strcmp( p, "force_ciphersuite" ) == 0 ) - { + } else if (strcmp(p, "force_ciphersuite") == 0) { opt.force_ciphersuite[0] = -1; - opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q ); + opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q); - if( opt.force_ciphersuite[0] <= 0 ) + if (opt.force_ciphersuite[0] <= 0) { goto usage; + } opt.force_ciphersuite[1] = 0; - } - else + } else { goto usage; + } } /* * 0. Initialize the RNG and the session data */ - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.1. Load the trusted CA */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); #if defined(MBEDTLS_FS_IO) - if( strlen( opt.ca_file ) ) - ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file ); - else + if (strlen(opt.ca_file)) { + ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file); + } else #endif #if defined(MBEDTLS_PEM_PARSE_C) - ret = mbedtls_x509_crt_parse( &cacert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); + ret = mbedtls_x509_crt_parse(&cacert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); #else { mbedtls_printf("MBEDTLS_PEM_PARSE_C not defined."); goto exit; } #endif - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); /* * 1.2. Load own certificate and private key * * (can be skipped if client authentication is not required) */ - mbedtls_printf( " . Loading the client cert. and key..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the client cert. and key..."); + fflush(stdout); #if defined(MBEDTLS_FS_IO) - if( strlen( opt.crt_file ) ) - ret = mbedtls_x509_crt_parse_file( &clicert, opt.crt_file ); - else + if (strlen(opt.crt_file)) { + ret = mbedtls_x509_crt_parse_file(&clicert, opt.crt_file); + } else #endif - ret = mbedtls_x509_crt_parse( &clicert, (const unsigned char *) mbedtls_test_cli_crt, - mbedtls_test_cli_crt_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&clicert, (const unsigned char *) mbedtls_test_cli_crt, + mbedtls_test_cli_crt_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } #if defined(MBEDTLS_FS_IO) - if( strlen( opt.key_file ) ) - { - ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file, "", - mbedtls_ctr_drbg_random, &ctr_drbg ); - } - else + if (strlen(opt.key_file)) { + ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file, "", + mbedtls_ctr_drbg_random, &ctr_drbg); + } else #endif #if defined(MBEDTLS_PEM_PARSE_C) { - ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_cli_key, - mbedtls_test_cli_key_len, NULL, 0, mbedtls_ctr_drbg_random, &ctr_drbg ); + ret = mbedtls_pk_parse_key(&pkey, + (const unsigned char *) mbedtls_test_cli_key, + mbedtls_test_cli_key_len, + NULL, + 0, + mbedtls_ctr_drbg_random, + &ctr_drbg); } #else { @@ -557,286 +537,267 @@ int main( int argc, char *argv[] ) goto exit; } #endif - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Start the connection */ - mbedtls_printf( " . Connecting to tcp/%s/%s...", opt.server_name, - opt.server_port ); - fflush( stdout ); + mbedtls_printf(" . Connecting to tcp/%s/%s...", opt.server_name, + opt.server_port); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, opt.server_name, - opt.server_port, MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, opt.server_name, + opt.server_port, MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 3. Setup stuff */ - mbedtls_printf( " . Setting up the SSL/TLS structure..." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the SSL/TLS structure..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } /* OPTIONAL is not optimal for security, * but makes interop easier in this simplified example */ - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_OPTIONAL ); + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_OPTIONAL); - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); - if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER ) - mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite ); + if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) { + mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite); + } - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &clicert, &pkey ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &clicert, &pkey)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL); - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - if( opt.mode == MODE_SSL_TLS ) - { - if( do_handshake( &ssl ) != 0 ) - goto exit; - - mbedtls_printf( " > Get header from server:" ); - fflush( stdout ); - - ret = write_ssl_and_get_response( &ssl, buf, 0 ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + if (opt.mode == MODE_SSL_TLS) { + if (do_handshake(&ssl) != 0) { goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" > Get header from server:"); + fflush(stdout); - mbedtls_printf( " > Write EHLO to server:" ); - fflush( stdout ); - - gethostname( hostname, 32 ); - len = sprintf( (char *) buf, "EHLO %s\r\n", hostname ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); - goto exit; - } - } - else - { - mbedtls_printf( " > Get header from server:" ); - fflush( stdout ); - - ret = write_and_get_response( &server_fd, buf, 0 ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + ret = write_ssl_and_get_response(&ssl, buf, 0); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write EHLO to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write EHLO to server:"); + fflush(stdout); - gethostname( hostname, 32 ); - len = sprintf( (char *) buf, "EHLO %s\r\n", hostname ); - ret = write_and_get_response( &server_fd, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + gethostname(hostname, 32); + len = sprintf((char *) buf, "EHLO %s\r\n", hostname); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); + goto exit; + } + } else { + mbedtls_printf(" > Get header from server:"); + fflush(stdout); + + ret = write_and_get_response(&server_fd, buf, 0); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write STARTTLS to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write EHLO to server:"); + fflush(stdout); - gethostname( hostname, 32 ); - len = sprintf( (char *) buf, "STARTTLS\r\n" ); - ret = write_and_get_response( &server_fd, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + gethostname(hostname, 32); + len = sprintf((char *) buf, "EHLO %s\r\n", hostname); + ret = write_and_get_response(&server_fd, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - if( do_handshake( &ssl ) != 0 ) + mbedtls_printf(" > Write STARTTLS to server:"); + fflush(stdout); + + gethostname(hostname, 32); + len = sprintf((char *) buf, "STARTTLS\r\n"); + ret = write_and_get_response(&server_fd, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; + } + + mbedtls_printf(" ok\n"); + + if (do_handshake(&ssl) != 0) { + goto exit; + } } #if defined(MBEDTLS_BASE64_C) - if( opt.authentication ) - { - mbedtls_printf( " > Write AUTH LOGIN to server:" ); - fflush( stdout ); + if (opt.authentication) { + mbedtls_printf(" > Write AUTH LOGIN to server:"); + fflush(stdout); - len = sprintf( (char *) buf, "AUTH LOGIN\r\n" ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 399 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "AUTH LOGIN\r\n"); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 399) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write username to server: %s", opt.user_name ); - fflush( stdout ); + mbedtls_printf(" > Write username to server: %s", opt.user_name); + fflush(stdout); - ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_name, - strlen( opt.user_name ) ); + ret = mbedtls_base64_encode(base, sizeof(base), &n, (const unsigned char *) opt.user_name, + strlen(opt.user_name)); - if( ret != 0 ) { - mbedtls_printf( " failed\n ! mbedtls_base64_encode returned %d\n\n", ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_base64_encode returned %d\n\n", ret); goto exit; } - len = sprintf( (char *) buf, "%s\r\n", base ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 300 || ret > 399 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "%s\r\n", base); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 300 || ret > 399) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write password to server: %s", opt.user_pwd ); - fflush( stdout ); + mbedtls_printf(" > Write password to server: %s", opt.user_pwd); + fflush(stdout); - ret = mbedtls_base64_encode( base, sizeof( base ), &n, (const unsigned char *) opt.user_pwd, - strlen( opt.user_pwd ) ); + ret = mbedtls_base64_encode(base, sizeof(base), &n, (const unsigned char *) opt.user_pwd, + strlen(opt.user_pwd)); - if( ret != 0 ) { - mbedtls_printf( " failed\n ! mbedtls_base64_encode returned %d\n\n", ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_base64_encode returned %d\n\n", ret); goto exit; } - len = sprintf( (char *) buf, "%s\r\n", base ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 399 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "%s\r\n", base); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 399) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); } #endif - mbedtls_printf( " > Write MAIL FROM to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write MAIL FROM to server:"); + fflush(stdout); - len = sprintf( (char *) buf, "MAIL FROM:<%s>\r\n", opt.mail_from ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "MAIL FROM:<%s>\r\n", opt.mail_from); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write RCPT TO to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write RCPT TO to server:"); + fflush(stdout); - len = sprintf( (char *) buf, "RCPT TO:<%s>\r\n", opt.mail_to ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "RCPT TO:<%s>\r\n", opt.mail_to); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write DATA to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write DATA to server:"); + fflush(stdout); - len = sprintf( (char *) buf, "DATA\r\n" ); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 300 || ret > 399 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "DATA\r\n"); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 300 || ret > 399) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_printf( " > Write content to server:" ); - fflush( stdout ); + mbedtls_printf(" > Write content to server:"); + fflush(stdout); - len = sprintf( (char *) buf, "From: %s\r\nSubject: mbed TLS Test mail\r\n\r\n" - "This is a simple test mail from the " - "mbed TLS mail client example.\r\n" - "\r\n" - "Enjoy!", opt.mail_from ); - ret = write_ssl_data( &ssl, buf, len ); + len = sprintf((char *) buf, "From: %s\r\nSubject: mbed TLS Test mail\r\n\r\n" + "This is a simple test mail from the " + "mbed TLS mail client example.\r\n" + "\r\n" + "Enjoy!", opt.mail_from); + ret = write_ssl_data(&ssl, buf, len); - len = sprintf( (char *) buf, "\r\n.\r\n"); - ret = write_ssl_and_get_response( &ssl, buf, len ); - if( ret < 200 || ret > 299 ) - { - mbedtls_printf( " failed\n ! server responded with %d\n\n", ret ); + len = sprintf((char *) buf, "\r\n.\r\n"); + ret = write_ssl_and_get_response(&ssl, buf, len); + if (ret < 200 || ret > 299) { + mbedtls_printf(" failed\n ! server responded with %d\n\n", ret); goto exit; } - mbedtls_printf(" ok\n" ); + mbedtls_printf(" ok\n"); - mbedtls_ssl_close_notify( &ssl ); + mbedtls_ssl_close_notify(&ssl); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_net_free( &server_fd ); - mbedtls_x509_crt_free( &clicert ); - mbedtls_x509_crt_free( &cacert ); - mbedtls_pk_free( &pkey ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_net_free(&server_fd); + mbedtls_x509_crt_free(&clicert); + mbedtls_x509_crt_free(&cacert); + mbedtls_pk_free(&pkey); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C ** diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c index b3ec7d699..2b3baffa4 100644 --- a/programs/ssl/ssl_pthread_server.c +++ b/programs/ssl/ssl_pthread_server.c @@ -28,15 +28,15 @@ !defined(MBEDTLS_CTR_DRBG_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \ !defined(MBEDTLS_FS_IO) || !defined(MBEDTLS_THREADING_C) || \ !defined(MBEDTLS_THREADING_PTHREAD) || !defined(MBEDTLS_PEM_PARSE_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C " - "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " - "MBEDTLS_THREADING_C and/or MBEDTLS_THREADING_PTHREAD " - "and/or MBEDTLS_PEM_PARSE_C not defined.\n"); - mbedtls_exit( 0 ); + "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " + "MBEDTLS_THREADING_C and/or MBEDTLS_THREADING_PTHREAD " + "and/or MBEDTLS_PEM_PARSE_C not defined.\n"); + mbedtls_exit(0); } #else @@ -75,20 +75,20 @@ int main( void ) mbedtls_threading_mutex_t debug_mutex; -static void my_mutexed_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_mutexed_debug(void *ctx, int level, + const char *file, int line, + const char *str) { long int thread_id = (long int) pthread_self(); - mbedtls_mutex_lock( &debug_mutex ); + mbedtls_mutex_lock(&debug_mutex); ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: [ #%ld ] %s", - file, line, thread_id, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: [ #%ld ] %s", + file, line, thread_id, str); + fflush((FILE *) ctx); - mbedtls_mutex_unlock( &debug_mutex ); + mbedtls_mutex_unlock(&debug_mutex); } typedef struct { @@ -106,7 +106,7 @@ typedef struct { static thread_info_t base_info; static pthread_info_t threads[MAX_NUM_THREADS]; -static void *handle_ssl_connection( void *data ) +static void *handle_ssl_connection(void *data) { int ret, len; thread_info_t *thread_info = (thread_info_t *) data; @@ -116,190 +116,178 @@ static void *handle_ssl_connection( void *data ) mbedtls_ssl_context ssl; /* Make sure memory references are valid */ - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_init(&ssl); - mbedtls_printf( " [ #%ld ] Setting up SSL/TLS data\n", thread_id ); + mbedtls_printf(" [ #%ld ] Setting up SSL/TLS data\n", thread_id); /* * 4. Get the SSL context ready */ - if( ( ret = mbedtls_ssl_setup( &ssl, thread_info->config ) ) != 0 ) - { - mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_setup returned -0x%04x\n", - thread_id, ( unsigned int ) -ret ); + if ((ret = mbedtls_ssl_setup(&ssl, thread_info->config)) != 0) { + mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_setup returned -0x%04x\n", + thread_id, (unsigned int) -ret); goto thread_exit; } - mbedtls_ssl_set_bio( &ssl, client_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, client_fd, mbedtls_net_send, mbedtls_net_recv, NULL); /* * 5. Handshake */ - mbedtls_printf( " [ #%ld ] Performing the SSL/TLS handshake\n", thread_id ); + mbedtls_printf(" [ #%ld ] Performing the SSL/TLS handshake\n", thread_id); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_handshake returned -0x%04x\n", - thread_id, ( unsigned int ) -ret ); + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_handshake returned -0x%04x\n", + thread_id, (unsigned int) -ret); goto thread_exit; } } - mbedtls_printf( " [ #%ld ] ok\n", thread_id ); + mbedtls_printf(" [ #%ld ] ok\n", thread_id); /* * 6. Read the HTTP Request */ - mbedtls_printf( " [ #%ld ] < Read from client\n", thread_id ); + mbedtls_printf(" [ #%ld ] < Read from client\n", thread_id); - do - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) { continue; + } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " [ #%ld ] connection was closed gracefully\n", - thread_id ); + mbedtls_printf(" [ #%ld ] connection was closed gracefully\n", + thread_id); goto thread_exit; case MBEDTLS_ERR_NET_CONN_RESET: - mbedtls_printf( " [ #%ld ] connection was reset by peer\n", - thread_id ); + mbedtls_printf(" [ #%ld ] connection was reset by peer\n", + thread_id); goto thread_exit; default: - mbedtls_printf( " [ #%ld ] mbedtls_ssl_read returned -0x%04x\n", - thread_id, ( unsigned int ) -ret ); + mbedtls_printf(" [ #%ld ] mbedtls_ssl_read returned -0x%04x\n", + thread_id, (unsigned int) -ret); goto thread_exit; } } len = ret; - mbedtls_printf( " [ #%ld ] %d bytes read\n=====\n%s\n=====\n", - thread_id, len, (char *) buf ); + mbedtls_printf(" [ #%ld ] %d bytes read\n=====\n%s\n=====\n", + thread_id, len, (char *) buf); - if( ret > 0 ) + if (ret > 0) { break; - } - while( 1 ); + } + } while (1); /* * 7. Write the 200 Response */ - mbedtls_printf( " [ #%ld ] > Write to client:\n", thread_id ); + mbedtls_printf(" [ #%ld ] > Write to client:\n", thread_id); - len = sprintf( (char *) buf, HTTP_RESPONSE, - mbedtls_ssl_get_ciphersuite( &ssl ) ); + len = sprintf((char *) buf, HTTP_RESPONSE, + mbedtls_ssl_get_ciphersuite(&ssl)); - while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 ) - { - if( ret == MBEDTLS_ERR_NET_CONN_RESET ) - { - mbedtls_printf( " [ #%ld ] failed: peer closed the connection\n", - thread_id ); + while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) { + if (ret == MBEDTLS_ERR_NET_CONN_RESET) { + mbedtls_printf(" [ #%ld ] failed: peer closed the connection\n", + thread_id); goto thread_exit; } - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_write returned -0x%04x\n", - thread_id, ( unsigned int ) ret ); + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_write returned -0x%04x\n", + thread_id, (unsigned int) ret); goto thread_exit; } } len = ret; - mbedtls_printf( " [ #%ld ] %d bytes written\n=====\n%s\n=====\n", - thread_id, len, (char *) buf ); + mbedtls_printf(" [ #%ld ] %d bytes written\n=====\n%s\n=====\n", + thread_id, len, (char *) buf); - mbedtls_printf( " [ #%ld ] . Closing the connection...", thread_id ); + mbedtls_printf(" [ #%ld ] . Closing the connection...", thread_id); - while( ( ret = mbedtls_ssl_close_notify( &ssl ) ) < 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " [ #%ld ] failed: mbedtls_ssl_close_notify returned -0x%04x\n", - thread_id, ( unsigned int ) ret ); + while ((ret = mbedtls_ssl_close_notify(&ssl)) < 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" [ #%ld ] failed: mbedtls_ssl_close_notify returned -0x%04x\n", + thread_id, (unsigned int) ret); goto thread_exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); ret = 0; thread_exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); + mbedtls_strerror(ret, error_buf, 100); mbedtls_printf(" [ #%ld ] Last error was: -0x%04x - %s\n\n", - thread_id, ( unsigned int ) -ret, error_buf ); + thread_id, (unsigned int) -ret, error_buf); } #endif - mbedtls_net_free( client_fd ); - mbedtls_ssl_free( &ssl ); + mbedtls_net_free(client_fd); + mbedtls_ssl_free(&ssl); thread_info->thread_complete = 1; - return( NULL ); + return NULL; } -static int thread_create( mbedtls_net_context *client_fd ) +static int thread_create(mbedtls_net_context *client_fd) { int ret, i; /* * Find in-active or finished thread slot */ - for( i = 0; i < MAX_NUM_THREADS; i++ ) - { - if( threads[i].active == 0 ) + for (i = 0; i < MAX_NUM_THREADS; i++) { + if (threads[i].active == 0) { break; + } - if( threads[i].data.thread_complete == 1 ) - { - mbedtls_printf( " [ main ] Cleaning up thread %d\n", i ); - pthread_join(threads[i].thread, NULL ); - memset( &threads[i], 0, sizeof(pthread_info_t) ); + if (threads[i].data.thread_complete == 1) { + mbedtls_printf(" [ main ] Cleaning up thread %d\n", i); + pthread_join(threads[i].thread, NULL); + memset(&threads[i], 0, sizeof(pthread_info_t)); break; } } - if( i == MAX_NUM_THREADS ) - return( -1 ); + if (i == MAX_NUM_THREADS) { + return -1; + } /* * Fill thread-info for thread */ - memcpy( &threads[i].data, &base_info, sizeof(base_info) ); + memcpy(&threads[i].data, &base_info, sizeof(base_info)); threads[i].active = 1; - memcpy( &threads[i].data.client_fd, client_fd, sizeof( mbedtls_net_context ) ); + memcpy(&threads[i].data.client_fd, client_fd, sizeof(mbedtls_net_context)); - if( ( ret = pthread_create( &threads[i].thread, NULL, handle_ssl_connection, - &threads[i].data ) ) != 0 ) - { - return( ret ); + if ((ret = pthread_create(&threads[i].thread, NULL, handle_ssl_connection, + &threads[i].data)) != 0) { + return ret; } - return( 0 ); + return 0; } -int main( void ) +int main(void) { int ret; mbedtls_net_context listen_fd, client_fd; @@ -319,167 +307,157 @@ int main( void ) #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); + mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf)); #endif #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_init( &cache ); + mbedtls_ssl_cache_init(&cache); #endif - mbedtls_x509_crt_init( &srvcert ); - mbedtls_x509_crt_init( &cachain ); + mbedtls_x509_crt_init(&srvcert); + mbedtls_x509_crt_init(&cachain); - mbedtls_ssl_config_init( &conf ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - memset( threads, 0, sizeof(threads) ); - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); + mbedtls_ssl_config_init(&conf); + mbedtls_ctr_drbg_init(&ctr_drbg); + memset(threads, 0, sizeof(threads)); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); - mbedtls_mutex_init( &debug_mutex ); + mbedtls_mutex_init(&debug_mutex); base_info.config = &conf; /* * We use only a single entropy source that is used in all the threads. */ - mbedtls_entropy_init( &entropy ); + mbedtls_entropy_init(&entropy); /* * 1a. Seed the random number generator */ - mbedtls_printf( " . Seeding the random number generator..." ); + mbedtls_printf(" . Seeding the random number generator..."); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed: mbedtls_ctr_drbg_seed returned -0x%04x\n", - ( unsigned int ) -ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed: mbedtls_ctr_drbg_seed returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1b. Load the certificates and private RSA key */ - mbedtls_printf( "\n . Loading the server cert. and key..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the server cert. and key..."); + fflush(stdout); /* * This demonstration program uses embedded test certificates. * Instead, you may want to use mbedtls_x509_crt_parse_file() to read the * server and CA certificates, as well as mbedtls_pk_parse_keyfile(). */ - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_x509_crt_parse( &cachain, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&cachain, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - mbedtls_pk_init( &pkey ); - ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, - mbedtls_test_srv_key_len, NULL, 0, - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret ); + mbedtls_pk_init(&pkey); + ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key, + mbedtls_test_srv_key_len, NULL, 0, + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1c. Prepare SSL configuration */ - mbedtls_printf( " . Setting up the SSL data...." ); + mbedtls_printf(" . Setting up the SSL data...."); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_SERVER, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed: mbedtls_ssl_config_defaults returned -0x%04x\n", - ( unsigned int ) -ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_SERVER, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed: mbedtls_ssl_config_defaults returned -0x%04x\n", + (unsigned int) -ret); goto exit; } - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_mutexed_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_mutexed_debug, stdout); /* mbedtls_ssl_cache_get() and mbedtls_ssl_cache_set() are thread-safe if * MBEDTLS_THREADING_C is set. */ #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_conf_session_cache( &conf, &cache, + mbedtls_ssl_conf_session_cache(&conf, &cache, mbedtls_ssl_cache_get, - mbedtls_ssl_cache_set ); + mbedtls_ssl_cache_set); #endif - mbedtls_ssl_conf_ca_chain( &conf, &cachain, NULL ); - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + mbedtls_ssl_conf_ca_chain(&conf, &cachain, NULL); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Setup the listening TCP socket */ - mbedtls_printf( " . Bind on https://localhost:4433/ ..." ); - fflush( stdout ); + mbedtls_printf(" . Bind on https://localhost:4433/ ..."); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); reset: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf( " [ main ] Last error was: -0x%04x - %s\n", ( unsigned int ) -ret, - error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf(" [ main ] Last error was: -0x%04x - %s\n", (unsigned int) -ret, + error_buf); } #endif /* * 3. Wait until a client connects */ - mbedtls_printf( " [ main ] Waiting for a remote connection\n" ); + mbedtls_printf(" [ main ] Waiting for a remote connection\n"); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - NULL, 0, NULL ) ) != 0 ) - { - mbedtls_printf( " [ main ] failed: mbedtls_net_accept returned -0x%04x\n", - ( unsigned int ) ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + NULL, 0, NULL)) != 0) { + mbedtls_printf(" [ main ] failed: mbedtls_net_accept returned -0x%04x\n", + (unsigned int) ret); goto exit; } - mbedtls_printf( " [ main ] ok\n" ); - mbedtls_printf( " [ main ] Creating a new thread\n" ); + mbedtls_printf(" [ main ] ok\n"); + mbedtls_printf(" [ main ] Creating a new thread\n"); - if( ( ret = thread_create( &client_fd ) ) != 0 ) - { - mbedtls_printf( " [ main ] failed: thread_create returned %d\n", ret ); - mbedtls_net_free( &client_fd ); + if ((ret = thread_create(&client_fd)) != 0) { + mbedtls_printf(" [ main ] failed: thread_create returned %d\n", ret); + mbedtls_net_free(&client_fd); goto reset; } @@ -487,24 +465,24 @@ reset: goto reset; exit: - mbedtls_x509_crt_free( &srvcert ); - mbedtls_pk_free( &pkey ); + mbedtls_x509_crt_free(&srvcert); + mbedtls_pk_free(&pkey); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_free( &cache ); + mbedtls_ssl_cache_free(&cache); #endif - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); + mbedtls_ssl_config_free(&conf); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&listen_fd); - mbedtls_mutex_free( &debug_mutex ); + mbedtls_mutex_free(&debug_mutex); #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) mbedtls_memory_buffer_alloc_free(); #endif - mbedtls_exit( ret ); + mbedtls_exit(ret); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c index c9d9df2ef..7dabda8ae 100644 --- a/programs/ssl/ssl_server.c +++ b/programs/ssl/ssl_server.c @@ -26,14 +26,14 @@ !defined(MBEDTLS_SSL_SRV_C) || !defined(MBEDTLS_NET_C) || \ !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C " - "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " - "and/or MBEDTLS_PEM_PARSE_C not defined.\n"); - mbedtls_exit( 0 ); + "and/or MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_SRV_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_CTR_DRBG_C and/or MBEDTLS_X509_CRT_PARSE_C " + "and/or MBEDTLS_PEM_PARSE_C not defined.\n"); + mbedtls_exit(0); } #else @@ -65,17 +65,17 @@ int main( void ) #define DEBUG_LEVEL 0 -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -int main( void ) +int main(void) { int ret, len; mbedtls_net_context listen_fd, client_fd; @@ -92,206 +92,192 @@ int main( void ) mbedtls_ssl_cache_context cache; #endif - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_init( &cache ); + mbedtls_ssl_cache_init(&cache); #endif - mbedtls_x509_crt_init( &srvcert ); - mbedtls_pk_init( &pkey ); - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &ctr_drbg ); + mbedtls_x509_crt_init(&srvcert); + mbedtls_pk_init(&pkey); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&ctr_drbg); #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( DEBUG_LEVEL ); + mbedtls_debug_set_threshold(DEBUG_LEVEL); #endif /* * 1. Seed the RNG */ - mbedtls_printf( " . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf(" . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Load the certificates and private RSA key */ - mbedtls_printf( "\n . Loading the server cert. and key..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the server cert. and key..."); + fflush(stdout); /* * This demonstration program uses embedded test certificates. * Instead, you may want to use mbedtls_x509_crt_parse_file() to read the * server and CA certificates, as well as mbedtls_pk_parse_keyfile(). */ - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_srv_crt, - mbedtls_test_srv_crt_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_srv_crt, + mbedtls_test_srv_crt_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_x509_crt_parse( &srvcert, (const unsigned char *) mbedtls_test_cas_pem, - mbedtls_test_cas_pem_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret ); + ret = mbedtls_x509_crt_parse(&srvcert, (const unsigned char *) mbedtls_test_cas_pem, + mbedtls_test_cas_pem_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned %d\n\n", ret); goto exit; } - ret = mbedtls_pk_parse_key( &pkey, (const unsigned char *) mbedtls_test_srv_key, - mbedtls_test_srv_key_len, NULL, 0, - mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret ); + ret = mbedtls_pk_parse_key(&pkey, (const unsigned char *) mbedtls_test_srv_key, + mbedtls_test_srv_key_len, NULL, 0, + mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 3. Setup the listening TCP socket */ - mbedtls_printf( " . Bind on https://localhost:4433/ ..." ); - fflush( stdout ); + mbedtls_printf(" . Bind on https://localhost:4433/ ..."); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, NULL, "4433", MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 4. Setup stuff */ - mbedtls_printf( " . Setting up the SSL data...." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the SSL data...."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_SERVER, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_SERVER, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_conf_session_cache( &conf, &cache, + mbedtls_ssl_conf_session_cache(&conf, &cache, mbedtls_ssl_cache_get, - mbedtls_ssl_cache_set ); + mbedtls_ssl_cache_set); #endif - mbedtls_ssl_conf_ca_chain( &conf, srvcert.next, NULL ); - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, &pkey ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + mbedtls_ssl_conf_ca_chain(&conf, srvcert.next, NULL); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, &pkey)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); reset: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &client_fd ); + mbedtls_net_free(&client_fd); - mbedtls_ssl_session_reset( &ssl ); + mbedtls_ssl_session_reset(&ssl); /* * 3. Wait until a client connects */ - mbedtls_printf( " . Waiting for a remote connection ..." ); - fflush( stdout ); + mbedtls_printf(" . Waiting for a remote connection ..."); + fflush(stdout); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - NULL, 0, NULL ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + NULL, 0, NULL)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret); goto exit; } - mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send, mbedtls_net_recv, NULL); - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 5. Handshake */ - mbedtls_printf( " . Performing the SSL/TLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the SSL/TLS handshake..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret ); + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret); goto reset; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 6. Read the HTTP Request */ - mbedtls_printf( " < Read from client:" ); - fflush( stdout ); + mbedtls_printf(" < Read from client:"); + fflush(stdout); - do - { - len = sizeof( buf ) - 1; - memset( buf, 0, sizeof( buf ) ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + do { + len = sizeof(buf) - 1; + memset(buf, 0, sizeof(buf)); + ret = mbedtls_ssl_read(&ssl, buf, len); - if( ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (ret == MBEDTLS_ERR_SSL_WANT_READ || ret == MBEDTLS_ERR_SSL_WANT_WRITE) { continue; + } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); break; case MBEDTLS_ERR_NET_CONN_RESET: - mbedtls_printf( " connection was reset by peer\n" ); + mbedtls_printf(" connection was reset by peer\n"); break; default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret); break; } @@ -299,53 +285,48 @@ reset: } len = ret; - mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf ); + mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf); - if( ret > 0 ) + if (ret > 0) { break; - } - while( 1 ); + } + } while (1); /* * 7. Write the 200 Response */ - mbedtls_printf( " > Write to client:" ); - fflush( stdout ); + mbedtls_printf(" > Write to client:"); + fflush(stdout); - len = sprintf( (char *) buf, HTTP_RESPONSE, - mbedtls_ssl_get_ciphersuite( &ssl ) ); + len = sprintf((char *) buf, HTTP_RESPONSE, + mbedtls_ssl_get_ciphersuite(&ssl)); - while( ( ret = mbedtls_ssl_write( &ssl, buf, len ) ) <= 0 ) - { - if( ret == MBEDTLS_ERR_NET_CONN_RESET ) - { - mbedtls_printf( " failed\n ! peer closed the connection\n\n" ); + while ((ret = mbedtls_ssl_write(&ssl, buf, len)) <= 0) { + if (ret == MBEDTLS_ERR_NET_CONN_RESET) { + mbedtls_printf(" failed\n ! peer closed the connection\n\n"); goto reset; } - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto exit; } } len = ret; - mbedtls_printf( " %d bytes written\n\n%s\n", len, (char *) buf ); + mbedtls_printf(" %d bytes written\n\n%s\n", len, (char *) buf); - mbedtls_printf( " . Closing the connection..." ); + mbedtls_printf(" . Closing the connection..."); - while( ( ret = mbedtls_ssl_close_notify( &ssl ) ) < 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_close_notify returned %d\n\n", ret ); + while ((ret = mbedtls_ssl_close_notify(&ssl)) < 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_close_notify returned %d\n\n", ret); goto reset; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); ret = 0; goto reset; @@ -353,28 +334,27 @@ reset: exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&listen_fd); - mbedtls_x509_crt_free( &srvcert ); - mbedtls_pk_free( &pkey ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_x509_crt_free(&srvcert); + mbedtls_pk_free(&pkey); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_free( &cache ); + mbedtls_ssl_cache_free(&cache); #endif - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( ret ); + mbedtls_exit(ret); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_SRV_C && MBEDTLS_NET_C && diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 802beb2f4..90a13eba3 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -22,16 +22,16 @@ #include "ssl_test_lib.h" #if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) -int main( void ) +int main(void) { - mbedtls_printf( MBEDTLS_SSL_TEST_IMPOSSIBLE ); - mbedtls_exit( 0 ); + mbedtls_printf(MBEDTLS_SSL_TEST_IMPOSSIBLE); + mbedtls_exit(0); } #elif !defined(MBEDTLS_SSL_SRV_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_SSL_SRV_C not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_SSL_SRV_C not defined.\n"); + mbedtls_exit(0); } #else /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_SRV_C */ @@ -90,9 +90,9 @@ int main( void ) #define DFL_KEY_FILE2 "" #define DFL_KEY_PWD2 "" #define DFL_ASYNC_OPERATIONS "-" -#define DFL_ASYNC_PRIVATE_DELAY1 ( -1 ) -#define DFL_ASYNC_PRIVATE_DELAY2 ( -1 ) -#define DFL_ASYNC_PRIVATE_ERROR ( 0 ) +#define DFL_ASYNC_PRIVATE_DELAY1 (-1) +#define DFL_ASYNC_PRIVATE_DELAY2 (-1) +#define DFL_ASYNC_PRIVATE_ERROR (0) #define DFL_PSK "" #define DFL_PSK_OPAQUE 0 #define DFL_PSK_LIST_OPAQUE 0 @@ -106,7 +106,7 @@ int main( void ) #define DFL_ALLOW_LEGACY -2 #define DFL_RENEGOTIATE 0 #define DFL_RENEGO_DELAY -2 -#define DFL_RENEGO_PERIOD ( (uint64_t)-1 ) +#define DFL_RENEGO_PERIOD ((uint64_t) -1) #define DFL_EXCHANGES 1 #define DFL_MIN_VERSION -1 #define DFL_MAX_VERSION -1 @@ -158,12 +158,12 @@ int main( void ) #define DFL_KEY_OPAQUE_ALG "none" #define LONG_RESPONSE "

01-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "02-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "03-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "04-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "05-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "06-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ - "07-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah

\r\n" + "02-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ + "03-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ + "04-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ + "05-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ + "06-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah\r\n" \ + "07-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah-blah

\r\n" /* Uncomment LONG_RESPONSE at the end of HTTP_RESPONSE to test sending longer * packets (for fragmentation purposes) */ @@ -189,14 +189,14 @@ int main( void ) " crt_file=%%s Your own cert and chain (in bottom to top order, top may be omitted)\n" \ " default: see note after key_file2\n" \ " key_file=%%s default: see note after key_file2\n" \ - " key_pwd=%%s Password for key specified by key_file argument\n"\ + " key_pwd=%%s Password for key specified by key_file argument\n" \ " default: none\n" \ " crt_file2=%%s Your second cert and chain (in bottom to top order, top may be omitted)\n" \ " default: see note after key_file2\n" \ " key_file2=%%s default: see note below\n" \ " note: if neither crt_file/key_file nor crt_file2/key_file2 are used,\n" \ " preloaded certificate(s) and key(s) are used if available\n" \ - " key_pwd2=%%s Password for key specified by key_file2 argument\n"\ + " key_pwd2=%%s Password for key specified by key_file2 argument\n" \ " default: none\n" \ " dhm_file=%%s File containing Diffie-Hellman parameters\n" \ " default: preloaded parameters\n" @@ -339,8 +339,8 @@ int main( void ) #endif #define USAGE_SNI \ - " sni=%%s name1,cert1,key1,ca1"SNI_CRL",auth1[,...]\n" \ - " default: disabled\n" + " sni=%%s name1,cert1,key1,ca1"SNI_CRL ",auth1[,...]\n" \ + " default: disabled\n" #else #define USAGE_SNI "" #endif /* SNI_OPTION */ @@ -465,7 +465,7 @@ int main( void ) " serialize=%%d default: 0 (do not serialize/deserialize)\n" \ " options: 1 (serialize)\n" \ " 2 (serialize with re-initialization)\n" \ - " context_file=%%s The file path to write a serialized connection\n"\ + " context_file=%%s The file path to write a serialized connection\n" \ " in the form of base64 code (serialize option\n" \ " must be set)\n" \ " default: \"\" (do nothing)\n" \ @@ -511,7 +511,7 @@ int main( void ) " (minimum: 1)\n" \ " response_size=%%d default: about 152 (basic response)\n" \ " (minimum: 0, max: 16384)\n" \ - " increases buffer_size if bigger\n"\ + " increases buffer_size if bigger\n" \ " nbio=%%d default: 0 (blocking I/O)\n" \ " options: 1 (non-blocking), 2 (added delays)\n" \ " event=%%d default: 0 (loop)\n" \ @@ -586,17 +586,17 @@ int main( void ) #define CURVE_LIST_SIZE 20 #define SIG_ALG_LIST_SIZE 5 -#define PUT_UINT64_BE(out_be,in_le,i) \ -{ \ - (out_be)[(i) + 0] = (unsigned char)( ( (in_le) >> 56 ) & 0xFF ); \ - (out_be)[(i) + 1] = (unsigned char)( ( (in_le) >> 48 ) & 0xFF ); \ - (out_be)[(i) + 2] = (unsigned char)( ( (in_le) >> 40 ) & 0xFF ); \ - (out_be)[(i) + 3] = (unsigned char)( ( (in_le) >> 32 ) & 0xFF ); \ - (out_be)[(i) + 4] = (unsigned char)( ( (in_le) >> 24 ) & 0xFF ); \ - (out_be)[(i) + 5] = (unsigned char)( ( (in_le) >> 16 ) & 0xFF ); \ - (out_be)[(i) + 6] = (unsigned char)( ( (in_le) >> 8 ) & 0xFF ); \ - (out_be)[(i) + 7] = (unsigned char)( ( (in_le) >> 0 ) & 0xFF ); \ -} +#define PUT_UINT64_BE(out_be, in_le, i) \ + { \ + (out_be)[(i) + 0] = (unsigned char) (((in_le) >> 56) & 0xFF); \ + (out_be)[(i) + 1] = (unsigned char) (((in_le) >> 48) & 0xFF); \ + (out_be)[(i) + 2] = (unsigned char) (((in_le) >> 40) & 0xFF); \ + (out_be)[(i) + 3] = (unsigned char) (((in_le) >> 32) & 0xFF); \ + (out_be)[(i) + 4] = (unsigned char) (((in_le) >> 24) & 0xFF); \ + (out_be)[(i) + 5] = (unsigned char) (((in_le) >> 16) & 0xFF); \ + (out_be)[(i) + 6] = (unsigned char) (((in_le) >> 8) & 0xFF); \ + (out_be)[(i) + 7] = (unsigned char) (((in_le) >> 0) & 0xFF); \ + } /* This is global so it can be easily accessed by callback functions */ rng_context_t rng; @@ -604,8 +604,7 @@ rng_context_t rng; /* * global options */ -struct options -{ +struct options { const char *server_addr; /* address on which the ssl service runs */ const char *server_port; /* port on which the ssl service runs */ int debug_level; /* level of debugging */ @@ -713,30 +712,33 @@ struct options /* * Return authmode from string, or -1 on error */ -static int get_auth_mode( const char *s ) +static int get_auth_mode(const char *s) { - if( strcmp( s, "none" ) == 0 ) - return( MBEDTLS_SSL_VERIFY_NONE ); - if( strcmp( s, "optional" ) == 0 ) - return( MBEDTLS_SSL_VERIFY_OPTIONAL ); - if( strcmp( s, "required" ) == 0 ) - return( MBEDTLS_SSL_VERIFY_REQUIRED ); + if (strcmp(s, "none") == 0) { + return MBEDTLS_SSL_VERIFY_NONE; + } + if (strcmp(s, "optional") == 0) { + return MBEDTLS_SSL_VERIFY_OPTIONAL; + } + if (strcmp(s, "required") == 0) { + return MBEDTLS_SSL_VERIFY_REQUIRED; + } - return( -1 ); + return -1; } /* * Used by sni_parse and psk_parse to handle comma-separated lists */ -#define GET_ITEM( dst ) \ +#define GET_ITEM(dst) \ do \ { \ (dst) = p; \ - while( *p != ',' ) \ - if( ++p > end ) \ - goto error; \ + while (*p != ',') \ + if (++p > end) \ + goto error; \ *p++ = '\0'; \ - } while( 0 ) + } while (0) #if defined(SNI_OPTION) typedef struct _sni_entry sni_entry; @@ -745,32 +747,31 @@ struct _sni_entry { const char *name; mbedtls_x509_crt *cert; mbedtls_pk_context *key; - mbedtls_x509_crt* ca; - mbedtls_x509_crl* crl; + mbedtls_x509_crt *ca; + mbedtls_x509_crl *crl; int authmode; sni_entry *next; }; -void sni_free( sni_entry *head ) +void sni_free(sni_entry *head) { sni_entry *cur = head, *next; - while( cur != NULL ) - { - mbedtls_x509_crt_free( cur->cert ); - mbedtls_free( cur->cert ); + while (cur != NULL) { + mbedtls_x509_crt_free(cur->cert); + mbedtls_free(cur->cert); - mbedtls_pk_free( cur->key ); - mbedtls_free( cur->key ); + mbedtls_pk_free(cur->key); + mbedtls_free(cur->key); - mbedtls_x509_crt_free( cur->ca ); - mbedtls_free( cur->ca ); + mbedtls_x509_crt_free(cur->ca); + mbedtls_free(cur->ca); #if defined(MBEDTLS_X509_CRL_PARSE_C) - mbedtls_x509_crl_free( cur->crl ); - mbedtls_free( cur->crl ); + mbedtls_x509_crl_free(cur->crl); + mbedtls_free(cur->crl); #endif next = cur->next; - mbedtls_free( cur ); + mbedtls_free(cur); cur = next; } } @@ -782,7 +783,7 @@ void sni_free( sni_entry *head ) * * Modifies the input string! This is not production quality! */ -sni_entry *sni_parse( char *sni_string ) +sni_entry *sni_parse(char *sni_string) { sni_entry *cur = NULL, *new = NULL; char *p = sni_string; @@ -792,87 +793,90 @@ sni_entry *sni_parse( char *sni_string ) char *crl_file; #endif - while( *end != '\0' ) + while (*end != '\0') { ++end; + } *end = ','; - while( p <= end ) - { - if( ( new = mbedtls_calloc( 1, sizeof( sni_entry ) ) ) == NULL ) - { - sni_free( cur ); - return( NULL ); + while (p <= end) { + if ((new = mbedtls_calloc(1, sizeof(sni_entry))) == NULL) { + sni_free(cur); + return NULL; } - GET_ITEM( new->name ); - GET_ITEM( crt_file ); - GET_ITEM( key_file ); - GET_ITEM( ca_file ); + GET_ITEM(new->name); + GET_ITEM(crt_file); + GET_ITEM(key_file); + GET_ITEM(ca_file); #if defined(MBEDTLS_X509_CRL_PARSE_C) - GET_ITEM( crl_file ); + GET_ITEM(crl_file); #endif - GET_ITEM( auth_str ); + GET_ITEM(auth_str); - if( ( new->cert = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ) ) == NULL || - ( new->key = mbedtls_calloc( 1, sizeof( mbedtls_pk_context ) ) ) == NULL ) + if ((new->cert = mbedtls_calloc(1, sizeof(mbedtls_x509_crt))) == NULL || + (new->key = mbedtls_calloc(1, sizeof(mbedtls_pk_context))) == NULL) { goto error; + } - mbedtls_x509_crt_init( new->cert ); - mbedtls_pk_init( new->key ); + mbedtls_x509_crt_init(new->cert); + mbedtls_pk_init(new->key); - if( mbedtls_x509_crt_parse_file( new->cert, crt_file ) != 0 || - mbedtls_pk_parse_keyfile( new->key, key_file, "", rng_get, &rng ) != 0 ) + if (mbedtls_x509_crt_parse_file(new->cert, crt_file) != 0 || + mbedtls_pk_parse_keyfile(new->key, key_file, "", rng_get, &rng) != 0) { goto error; + } - if( strcmp( ca_file, "-" ) != 0 ) - { - if( ( new->ca = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ) ) == NULL ) + if (strcmp(ca_file, "-") != 0) { + if ((new->ca = mbedtls_calloc(1, sizeof(mbedtls_x509_crt))) == NULL) { goto error; + } - mbedtls_x509_crt_init( new->ca ); + mbedtls_x509_crt_init(new->ca); - if( mbedtls_x509_crt_parse_file( new->ca, ca_file ) != 0 ) + if (mbedtls_x509_crt_parse_file(new->ca, ca_file) != 0) { goto error; + } } #if defined(MBEDTLS_X509_CRL_PARSE_C) - if( strcmp( crl_file, "-" ) != 0 ) - { - if( ( new->crl = mbedtls_calloc( 1, sizeof( mbedtls_x509_crl ) ) ) == NULL ) + if (strcmp(crl_file, "-") != 0) { + if ((new->crl = mbedtls_calloc(1, sizeof(mbedtls_x509_crl))) == NULL) { goto error; + } - mbedtls_x509_crl_init( new->crl ); + mbedtls_x509_crl_init(new->crl); - if( mbedtls_x509_crl_parse_file( new->crl, crl_file ) != 0 ) + if (mbedtls_x509_crl_parse_file(new->crl, crl_file) != 0) { goto error; + } } #endif - if( strcmp( auth_str, "-" ) != 0 ) - { - if( ( new->authmode = get_auth_mode( auth_str ) ) < 0 ) + if (strcmp(auth_str, "-") != 0) { + if ((new->authmode = get_auth_mode(auth_str)) < 0) { goto error; - } - else + } + } else { new->authmode = DFL_AUTH_MODE; + } new->next = cur; cur = new; } - return( cur ); + return cur; error: - sni_free( new ); - sni_free( cur ); - return( NULL ); + sni_free(new); + sni_free(cur); + return NULL; } /* * SNI callback. */ -int sni_callback( void *p_info, mbedtls_ssl_context *ssl, - const unsigned char *name, size_t name_len ) +int sni_callback(void *p_info, mbedtls_ssl_context *ssl, + const unsigned char *name, size_t name_len) { const sni_entry *cur = (const sni_entry *) p_info; @@ -884,48 +888,48 @@ int sni_callback( void *p_info, mbedtls_ssl_context *ssl, * Application might choose to save name and name_len in user_data for * later use in certificate selection callback. */ - while( cur != NULL ) - { - if( name_len == strlen( cur->name ) && - memcmp( name, cur->name, name_len ) == 0 ) - { + while (cur != NULL) { + if (name_len == strlen(cur->name) && + memcmp(name, cur->name, name_len) == 0) { void *p; *(const void **)&p = cur; - mbedtls_ssl_set_user_data_p( ssl, p ); - return( 0 ); + mbedtls_ssl_set_user_data_p(ssl, p); + return 0; } cur = cur->next; } - return( -1 ); + return -1; } /* * server certificate selection callback. */ -int cert_callback( mbedtls_ssl_context *ssl ) +int cert_callback(mbedtls_ssl_context *ssl) { - const sni_entry *cur = (sni_entry *) mbedtls_ssl_get_user_data_p( ssl ); - if( cur != NULL ) - { + const sni_entry *cur = (sni_entry *) mbedtls_ssl_get_user_data_p(ssl); + if (cur != NULL) { /*(exercise mbedtls_ssl_get_hs_sni(); not otherwise used here)*/ size_t name_len; - const unsigned char *name = mbedtls_ssl_get_hs_sni( ssl, &name_len ); - if( strlen( cur->name ) != name_len || - memcmp( cur->name, name, name_len ) != 0 ) - return( MBEDTLS_ERR_SSL_DECODE_ERROR ); + const unsigned char *name = mbedtls_ssl_get_hs_sni(ssl, &name_len); + if (strlen(cur->name) != name_len || + memcmp(cur->name, name, name_len) != 0) { + return MBEDTLS_ERR_SSL_DECODE_ERROR; + } - if( cur->ca != NULL ) - mbedtls_ssl_set_hs_ca_chain( ssl, cur->ca, cur->crl ); + if (cur->ca != NULL) { + mbedtls_ssl_set_hs_ca_chain(ssl, cur->ca, cur->crl); + } - if( cur->authmode != DFL_AUTH_MODE ) - mbedtls_ssl_set_hs_authmode( ssl, cur->authmode ); + if (cur->authmode != DFL_AUTH_MODE) { + mbedtls_ssl_set_hs_authmode(ssl, cur->authmode); + } - return( mbedtls_ssl_set_hs_own_cert( ssl, cur->cert, cur->key ) ); + return mbedtls_ssl_set_hs_own_cert(ssl, cur->cert, cur->key); } - return( 0 ); + return 0; } #endif /* SNI_OPTION */ @@ -934,8 +938,7 @@ int cert_callback( mbedtls_ssl_context *ssl ) typedef struct _psk_entry psk_entry; -struct _psk_entry -{ +struct _psk_entry { const char *name; size_t key_len; unsigned char key[MBEDTLS_PSK_MAX_LEN]; @@ -948,30 +951,29 @@ struct _psk_entry /* * Free a list of psk_entry's */ -int psk_free( psk_entry *head ) +int psk_free(psk_entry *head) { psk_entry *next; - while( head != NULL ) - { + while (head != NULL) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status; mbedtls_svc_key_id_t const slot = head->slot; - if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( slot ) != 0 ) - { - status = psa_destroy_key( slot ); - if( status != PSA_SUCCESS ) - return( status ); + if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(slot) != 0) { + status = psa_destroy_key(slot); + if (status != PSA_SUCCESS) { + return status; + } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ next = head->next; - mbedtls_free( head ); + mbedtls_free(head); head = next; } - return( 0 ); + return 0; } /* @@ -980,68 +982,68 @@ int psk_free( psk_entry *head ) * * Modifies the input string! This is not production quality! */ -psk_entry *psk_parse( char *psk_string ) +psk_entry *psk_parse(char *psk_string) { psk_entry *cur = NULL, *new = NULL; char *p = psk_string; char *end = p; char *key_hex; - while( *end != '\0' ) + while (*end != '\0') { ++end; + } *end = ','; - while( p <= end ) - { - if( ( new = mbedtls_calloc( 1, sizeof( psk_entry ) ) ) == NULL ) + while (p <= end) { + if ((new = mbedtls_calloc(1, sizeof(psk_entry))) == NULL) { goto error; + } - memset( new, 0, sizeof( psk_entry ) ); + memset(new, 0, sizeof(psk_entry)); - GET_ITEM( new->name ); - GET_ITEM( key_hex ); + GET_ITEM(new->name); + GET_ITEM(key_hex); - if( mbedtls_test_unhexify( new->key, MBEDTLS_PSK_MAX_LEN, - key_hex, &new->key_len ) != 0 ) + if (mbedtls_test_unhexify(new->key, MBEDTLS_PSK_MAX_LEN, + key_hex, &new->key_len) != 0) { goto error; + } new->next = cur; cur = new; } - return( cur ); + return cur; error: - psk_free( new ); - psk_free( cur ); - return( 0 ); + psk_free(new); + psk_free(cur); + return 0; } /* * PSK callback */ -int psk_callback( void *p_info, mbedtls_ssl_context *ssl, - const unsigned char *name, size_t name_len ) +int psk_callback(void *p_info, mbedtls_ssl_context *ssl, + const unsigned char *name, size_t name_len) { psk_entry *cur = (psk_entry *) p_info; - while( cur != NULL ) - { - if( name_len == strlen( cur->name ) && - memcmp( name, cur->name, name_len ) == 0 ) - { + while (cur != NULL) { + if (name_len == strlen(cur->name) && + memcmp(name, cur->name, name_len) == 0) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( cur->slot ) != 0 ) - return( mbedtls_ssl_set_hs_psk_opaque( ssl, cur->slot ) ); - else + if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(cur->slot) != 0) { + return mbedtls_ssl_set_hs_psk_opaque(ssl, cur->slot); + } else #endif - return( mbedtls_ssl_set_hs_psk( ssl, cur->key, cur->key_len ) ); + return mbedtls_ssl_set_hs_psk(ssl, cur->key, cur->key_len); } cur = cur->next; } - return( -1 ); + return -1; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ @@ -1050,12 +1052,12 @@ static mbedtls_net_context listen_fd, client_fd; /* Interruption handler to ensure clean exit (for valgrind testing) */ #if !defined(_WIN32) static int received_sigterm = 0; -void term_handler( int sig ) +void term_handler(int sig) { ((void) sig); received_sigterm = 1; - mbedtls_net_free( &listen_fd ); /* causes mbedtls_net_accept() to abort */ - mbedtls_net_free( &client_fd ); /* causes net_read() to abort */ + mbedtls_net_free(&listen_fd); /* causes mbedtls_net_accept() to abort */ + mbedtls_net_free(&client_fd); /* causes net_read() to abort */ } #endif @@ -1069,16 +1071,15 @@ void term_handler( int sig ) * - A write, when the SSL output buffer contains some data that has not * been sent over the network yet. * - An asynchronous callback that has not completed yet. */ -static int mbedtls_status_is_ssl_in_progress( int ret ) +static int mbedtls_status_is_ssl_in_progress(int ret) { - return( ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE || - ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ); + return ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE || + ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS; } #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) -typedef struct -{ +typedef struct { mbedtls_x509_crt *cert; /*!< Certificate corresponding to the key */ mbedtls_pk_context *pk; /*!< Private key */ unsigned delay; /*!< Number of resume steps to go through */ @@ -1093,8 +1094,7 @@ typedef enum { #define SSL_ASYNC_INJECT_ERROR_MAX SSL_ASYNC_INJECT_ERROR_RESUME } ssl_async_inject_error_t; -typedef struct -{ +typedef struct { ssl_async_key_slot_t slots[4]; /* key, key2, sni1, sni2 */ size_t slots_used; ssl_async_inject_error_t inject_error; @@ -1102,32 +1102,31 @@ typedef struct void *p_rng; } ssl_async_key_context_t; -int ssl_async_set_key( ssl_async_key_context_t *ctx, - mbedtls_x509_crt *cert, - mbedtls_pk_context *pk, - int pk_take_ownership, - unsigned delay ) +int ssl_async_set_key(ssl_async_key_context_t *ctx, + mbedtls_x509_crt *cert, + mbedtls_pk_context *pk, + int pk_take_ownership, + unsigned delay) { - if( ctx->slots_used >= sizeof( ctx->slots ) / sizeof( *ctx->slots ) ) - return( -1 ); + if (ctx->slots_used >= sizeof(ctx->slots) / sizeof(*ctx->slots)) { + return -1; + } ctx->slots[ctx->slots_used].cert = cert; ctx->slots[ctx->slots_used].pk = pk; ctx->slots[ctx->slots_used].delay = delay; ctx->slots[ctx->slots_used].pk_owned = pk_take_ownership; ++ctx->slots_used; - return( 0 ); + return 0; } #define SSL_ASYNC_INPUT_MAX_SIZE 512 -typedef enum -{ +typedef enum { ASYNC_OP_SIGN, ASYNC_OP_DECRYPT, } ssl_async_operation_type_t; -typedef struct -{ +typedef struct { unsigned slot; ssl_async_operation_type_t operation_type; mbedtls_md_type_t md_alg; @@ -1147,295 +1146,288 @@ static const char *const ssl_async_operation_names[] = "decrypt", }; -static int ssl_async_start( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *cert, - ssl_async_operation_type_t op_type, - mbedtls_md_type_t md_alg, - const unsigned char *input, - size_t input_len ) +static int ssl_async_start(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *cert, + ssl_async_operation_type_t op_type, + mbedtls_md_type_t md_alg, + const unsigned char *input, + size_t input_len) { ssl_async_key_context_t *config_data = - mbedtls_ssl_conf_get_async_config_data( ssl->conf ); + mbedtls_ssl_conf_get_async_config_data(ssl->conf); unsigned slot; ssl_async_operation_context_t *ctx = NULL; const char *op_name = ssl_async_operation_names[op_type]; { char dn[100]; - if( mbedtls_x509_dn_gets( dn, sizeof( dn ), &cert->subject ) > 0 ) - mbedtls_printf( "Async %s callback: looking for DN=%s\n", - op_name, dn ); + if (mbedtls_x509_dn_gets(dn, sizeof(dn), &cert->subject) > 0) { + mbedtls_printf("Async %s callback: looking for DN=%s\n", + op_name, dn); + } } /* Look for a private key that matches the public key in cert. * Since this test code has the private key inside Mbed TLS, * we call mbedtls_pk_check_pair to match a private key with the * public key. */ - for( slot = 0; slot < config_data->slots_used; slot++ ) - { - if( mbedtls_pk_check_pair( &cert->pk, - config_data->slots[slot].pk, - rng_get, &rng ) == 0 ) + for (slot = 0; slot < config_data->slots_used; slot++) { + if (mbedtls_pk_check_pair(&cert->pk, + config_data->slots[slot].pk, + rng_get, &rng) == 0) { break; + } } - if( slot == config_data->slots_used ) - { - mbedtls_printf( "Async %s callback: no key matches this certificate.\n", - op_name ); - return( MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH ); + if (slot == config_data->slots_used) { + mbedtls_printf("Async %s callback: no key matches this certificate.\n", + op_name); + return MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH; } - mbedtls_printf( "Async %s callback: using key slot %u, delay=%u.\n", - op_name, slot, config_data->slots[slot].delay ); + mbedtls_printf("Async %s callback: using key slot %u, delay=%u.\n", + op_name, slot, config_data->slots[slot].delay); - if( config_data->inject_error == SSL_ASYNC_INJECT_ERROR_START ) - { - mbedtls_printf( "Async %s callback: injected error\n", op_name ); - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + if (config_data->inject_error == SSL_ASYNC_INJECT_ERROR_START) { + mbedtls_printf("Async %s callback: injected error\n", op_name); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; } - if( input_len > SSL_ASYNC_INPUT_MAX_SIZE ) - return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + if (input_len > SSL_ASYNC_INPUT_MAX_SIZE) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } - ctx = mbedtls_calloc( 1, sizeof( *ctx ) ); - if( ctx == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); + ctx = mbedtls_calloc(1, sizeof(*ctx)); + if (ctx == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } ctx->slot = slot; ctx->operation_type = op_type; ctx->md_alg = md_alg; - memcpy( ctx->input, input, input_len ); + memcpy(ctx->input, input, input_len); ctx->input_len = input_len; ctx->remaining_delay = config_data->slots[slot].delay; - mbedtls_ssl_set_async_operation_data( ssl, ctx ); + mbedtls_ssl_set_async_operation_data(ssl, ctx); - if( ctx->remaining_delay == 0 ) - return( 0 ); - else - return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ); + if (ctx->remaining_delay == 0) { + return 0; + } else { + return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS; + } } -static int ssl_async_sign( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *cert, - mbedtls_md_type_t md_alg, - const unsigned char *hash, - size_t hash_len ) +static int ssl_async_sign(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *cert, + mbedtls_md_type_t md_alg, + const unsigned char *hash, + size_t hash_len) { - return( ssl_async_start( ssl, cert, - ASYNC_OP_SIGN, md_alg, - hash, hash_len ) ); + return ssl_async_start(ssl, cert, + ASYNC_OP_SIGN, md_alg, + hash, hash_len); } -static int ssl_async_decrypt( mbedtls_ssl_context *ssl, - mbedtls_x509_crt *cert, - const unsigned char *input, - size_t input_len ) +static int ssl_async_decrypt(mbedtls_ssl_context *ssl, + mbedtls_x509_crt *cert, + const unsigned char *input, + size_t input_len) { - return( ssl_async_start( ssl, cert, - ASYNC_OP_DECRYPT, MBEDTLS_MD_NONE, - input, input_len ) ); + return ssl_async_start(ssl, cert, + ASYNC_OP_DECRYPT, MBEDTLS_MD_NONE, + input, input_len); } -static int ssl_async_resume( mbedtls_ssl_context *ssl, - unsigned char *output, - size_t *output_len, - size_t output_size ) +static int ssl_async_resume(mbedtls_ssl_context *ssl, + unsigned char *output, + size_t *output_len, + size_t output_size) { - ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data( ssl ); + ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data(ssl); ssl_async_key_context_t *config_data = - mbedtls_ssl_conf_get_async_config_data( ssl->conf ); + mbedtls_ssl_conf_get_async_config_data(ssl->conf); ssl_async_key_slot_t *key_slot = &config_data->slots[ctx->slot]; int ret; const char *op_name; - if( ctx->remaining_delay > 0 ) - { + if (ctx->remaining_delay > 0) { --ctx->remaining_delay; - mbedtls_printf( "Async resume (slot %u): call %u more times.\n", - ctx->slot, ctx->remaining_delay ); - return( MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS ); + mbedtls_printf("Async resume (slot %u): call %u more times.\n", + ctx->slot, ctx->remaining_delay); + return MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS; } - switch( ctx->operation_type ) - { + switch (ctx->operation_type) { case ASYNC_OP_DECRYPT: - ret = mbedtls_pk_decrypt( key_slot->pk, - ctx->input, ctx->input_len, - output, output_len, output_size, - config_data->f_rng, config_data->p_rng ); + ret = mbedtls_pk_decrypt(key_slot->pk, + ctx->input, ctx->input_len, + output, output_len, output_size, + config_data->f_rng, config_data->p_rng); break; case ASYNC_OP_SIGN: - ret = mbedtls_pk_sign( key_slot->pk, - ctx->md_alg, - ctx->input, ctx->input_len, - output, output_size, output_len, - config_data->f_rng, config_data->p_rng ); + ret = mbedtls_pk_sign(key_slot->pk, + ctx->md_alg, + ctx->input, ctx->input_len, + output, output_size, output_len, + config_data->f_rng, config_data->p_rng); break; default: - mbedtls_printf( "Async resume (slot %u): unknown operation type %ld. This shouldn't happen.\n", - ctx->slot, (long) ctx->operation_type ); - mbedtls_free( ctx ); - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + mbedtls_printf( + "Async resume (slot %u): unknown operation type %ld. This shouldn't happen.\n", + ctx->slot, + (long) ctx->operation_type); + mbedtls_free(ctx); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; break; } op_name = ssl_async_operation_names[ctx->operation_type]; - if( config_data->inject_error == SSL_ASYNC_INJECT_ERROR_RESUME ) - { - mbedtls_printf( "Async resume callback: %s done but injected error\n", - op_name ); - mbedtls_free( ctx ); - return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); + if (config_data->inject_error == SSL_ASYNC_INJECT_ERROR_RESUME) { + mbedtls_printf("Async resume callback: %s done but injected error\n", + op_name); + mbedtls_free(ctx); + return MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE; } - mbedtls_printf( "Async resume (slot %u): %s done, status=%d.\n", - ctx->slot, op_name, ret ); - mbedtls_free( ctx ); - return( ret ); + mbedtls_printf("Async resume (slot %u): %s done, status=%d.\n", + ctx->slot, op_name, ret); + mbedtls_free(ctx); + return ret; } -static void ssl_async_cancel( mbedtls_ssl_context *ssl ) +static void ssl_async_cancel(mbedtls_ssl_context *ssl) { - ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data( ssl ); - mbedtls_printf( "Async cancel callback.\n" ); - mbedtls_free( ctx ); + ssl_async_operation_context_t *ctx = mbedtls_ssl_get_async_operation_data(ssl); + mbedtls_printf("Async cancel callback.\n"); + mbedtls_free(ctx); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) -static psa_status_t psa_setup_psk_key_slot( mbedtls_svc_key_id_t *slot, - psa_algorithm_t alg, - unsigned char *psk, - size_t psk_len ) +static psa_status_t psa_setup_psk_key_slot(mbedtls_svc_key_id_t *slot, + psa_algorithm_t alg, + unsigned char *psk, + size_t psk_len) { psa_status_t status; psa_key_attributes_t key_attributes; key_attributes = psa_key_attributes_init(); - psa_set_key_usage_flags( &key_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &key_attributes, alg ); - psa_set_key_type( &key_attributes, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&key_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&key_attributes, alg); + psa_set_key_type(&key_attributes, PSA_KEY_TYPE_DERIVE); - status = psa_import_key( &key_attributes, psk, psk_len, slot ); - if( status != PSA_SUCCESS ) - { - fprintf( stderr, "IMPORT\n" ); - return( status ); + status = psa_import_key(&key_attributes, psk, psk_len, slot); + if (status != PSA_SUCCESS) { + fprintf(stderr, "IMPORT\n"); + return status; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -int report_cid_usage( mbedtls_ssl_context *ssl, - const char *additional_description ) +int report_cid_usage(mbedtls_ssl_context *ssl, + const char *additional_description) { int ret; - unsigned char peer_cid[ MBEDTLS_SSL_CID_OUT_LEN_MAX ]; + unsigned char peer_cid[MBEDTLS_SSL_CID_OUT_LEN_MAX]; size_t peer_cid_len; int cid_negotiated; - if( opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - return( 0 ); + if (opt.transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + return 0; + } /* Check if the use of a CID has been negotiated */ - ret = mbedtls_ssl_get_peer_cid( ssl, &cid_negotiated, - peer_cid, &peer_cid_len ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", - (unsigned int) -ret ); - return( ret ); + ret = mbedtls_ssl_get_peer_cid(ssl, &cid_negotiated, + peer_cid, &peer_cid_len); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_get_peer_cid returned -0x%x\n\n", + (unsigned int) -ret); + return ret; } - if( cid_negotiated == MBEDTLS_SSL_CID_DISABLED ) - { - if( opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED ) - { - mbedtls_printf( "(%s) Use of Connection ID was not offered by client.\n", - additional_description ); + if (cid_negotiated == MBEDTLS_SSL_CID_DISABLED) { + if (opt.cid_enabled == MBEDTLS_SSL_CID_ENABLED) { + mbedtls_printf("(%s) Use of Connection ID was not offered by client.\n", + additional_description); } - } - else - { - size_t idx=0; - mbedtls_printf( "(%s) Use of Connection ID has been negotiated.\n", - additional_description ); - mbedtls_printf( "(%s) Peer CID (length %u Bytes): ", - additional_description, - (unsigned) peer_cid_len ); - while( idx < peer_cid_len ) - { - mbedtls_printf( "%02x ", peer_cid[ idx ] ); + } else { + size_t idx = 0; + mbedtls_printf("(%s) Use of Connection ID has been negotiated.\n", + additional_description); + mbedtls_printf("(%s) Peer CID (length %u Bytes): ", + additional_description, + (unsigned) peer_cid_len); + while (idx < peer_cid_len) { + mbedtls_printf("%02x ", peer_cid[idx]); idx++; } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) /* Functions for session ticket tests */ -int dummy_ticket_write( void *p_ticket, const mbedtls_ssl_session *session, - unsigned char *start, const unsigned char *end, - size_t *tlen, uint32_t *ticket_lifetime ) +int dummy_ticket_write(void *p_ticket, const mbedtls_ssl_session *session, + unsigned char *start, const unsigned char *end, + size_t *tlen, uint32_t *ticket_lifetime) { int ret; unsigned char *p = start; size_t clear_len; ((void) p_ticket); - if( end - p < 4 ) - { - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + if (end - p < 4) { + return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - *((uint32_t *)p) = 7 * 24 * 3600; + *((uint32_t *) p) = 7 * 24 * 3600; *ticket_lifetime = 7 * 24 * 3600; p += 4; /* Dump session state */ - if( ( ret = mbedtls_ssl_session_save( session, p, end - p, - &clear_len ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_ssl_session_save(session, p, end - p, + &clear_len)) != 0) { + return ret; } *tlen = 4 + clear_len; - return( 0 ); + return 0; } -int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, - unsigned char *buf, size_t len ) +int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session, + unsigned char *buf, size_t len) { int ret; ((void) p_ticket); - if( ( ret = mbedtls_ssl_session_load( session, buf + 4, len - 4 ) ) != 0 ) - return( ret ); + if ((ret = mbedtls_ssl_session_load(session, buf + 4, len - 4)) != 0) { + return ret; + } - switch( opt.dummy_ticket % 7 ) - { + switch (opt.dummy_ticket % 7) { case 1: - return( MBEDTLS_ERR_SSL_INVALID_MAC ); + return MBEDTLS_ERR_SSL_INVALID_MAC; case 2: - return( MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED ); + return MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; case 3: - session->start = mbedtls_time( NULL ) + 10; + session->start = mbedtls_time(NULL) + 10; break; case 4: - session->start = mbedtls_time( NULL ) - 10 - 7 * 24 * 3600; + session->start = mbedtls_time(NULL) - 10 - 7 * 24 * 3600; break; case 5: - session->start = mbedtls_time( NULL ) - 10; + session->start = mbedtls_time(NULL) - 10; break; case 6: - session->start = mbedtls_time( NULL ); + session->start = mbedtls_time(NULL); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) session->ticket_age_add -= 1000; #endif @@ -1444,16 +1436,16 @@ int dummy_ticket_parse( void *p_ticket, mbedtls_ssl_session *session, break; } - return( ret ); + return ret; } #endif /* MBEDTLS_SSL_SESSION_TICKETS && MBEDTLS_HAVE_TIME */ -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 0, len, written, frags, exchanges_left; int query_config_ret = 0; io_ctx_t io_ctx; - unsigned char* buf = 0; + unsigned char *buf = 0; #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t alg = 0; @@ -1509,7 +1501,7 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_ECP_C) uint16_t group_list[CURVE_LIST_SIZE]; - const mbedtls_ecp_curve_info * curve_cur; + const mbedtls_ecp_curve_info *curve_cur; #endif #if defined(MBEDTLS_SSL_ALPN) const char *alpn_list[ALPN_LIST_SIZE]; @@ -1544,109 +1536,108 @@ int main( int argc, char *argv[] ) #endif unsigned char eap_tls_keymaterial[16]; unsigned char eap_tls_iv[8]; - const char* eap_tls_label = "client EAP encryption"; + const char *eap_tls_label = "client EAP encryption"; eap_tls_keys eap_tls_keying; -#if defined( MBEDTLS_SSL_DTLS_SRTP ) +#if defined(MBEDTLS_SSL_DTLS_SRTP) /*! master keys and master salt for SRTP generated during handshake */ - unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH]; - const char* dtls_srtp_label = "EXTRACTOR-dtls_srtp"; - dtls_srtp_keys dtls_srtp_keying; - const mbedtls_ssl_srtp_profile default_profiles[] = { - MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80, - MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32, - MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80, - MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32, - MBEDTLS_TLS_SRTP_UNSET - }; + unsigned char dtls_srtp_key_material[MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH]; + const char *dtls_srtp_label = "EXTRACTOR-dtls_srtp"; + dtls_srtp_keys dtls_srtp_keying; + const mbedtls_ssl_srtp_profile default_profiles[] = { + MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_80, + MBEDTLS_TLS_SRTP_AES128_CM_HMAC_SHA1_32, + MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_80, + MBEDTLS_TLS_SRTP_NULL_HMAC_SHA1_32, + MBEDTLS_TLS_SRTP_UNSET + }; #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if defined(MBEDTLS_SSL_EARLY_DATA) int tls13_early_data_enabled = MBEDTLS_SSL_EARLY_DATA_DISABLED; #endif #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof(alloc_buf) ); + mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf)); #if defined(MBEDTLS_MEMORY_DEBUG) size_t current_heap_memory, peak_heap_memory, heap_blocks; #endif /* MBEDTLS_MEMORY_DEBUG */ #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ #if defined(MBEDTLS_TEST_HOOKS) - test_hooks_init( ); + test_hooks_init(); #endif /* MBEDTLS_TEST_HOOKS */ /* * Make sure memory references are valid in case we exit early. */ - mbedtls_net_init( &client_fd ); - mbedtls_net_init( &listen_fd ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - rng_init( &rng ); + mbedtls_net_init(&client_fd); + mbedtls_net_init(&listen_fd); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + rng_init(&rng); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - mbedtls_x509_crt_init( &cacert ); - mbedtls_x509_crt_init( &srvcert ); - mbedtls_pk_init( &pkey ); - mbedtls_x509_crt_init( &srvcert2 ); - mbedtls_pk_init( &pkey2 ); + mbedtls_x509_crt_init(&cacert); + mbedtls_x509_crt_init(&srvcert); + mbedtls_pk_init(&pkey); + mbedtls_x509_crt_init(&srvcert2); + mbedtls_pk_init(&pkey2); #endif #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - memset( &ssl_async_keys, 0, sizeof( ssl_async_keys ) ); + memset(&ssl_async_keys, 0, sizeof(ssl_async_keys)); #endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) - mbedtls_dhm_init( &dhm ); + mbedtls_dhm_init(&dhm); #endif #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_init( &cache ); + mbedtls_ssl_cache_init(&cache); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - mbedtls_ssl_ticket_init( &ticket_ctx ); + mbedtls_ssl_ticket_init(&ticket_ctx); #endif #if defined(MBEDTLS_SSL_ALPN) - memset( (void *) alpn_list, 0, sizeof( alpn_list ) ); + memset((void *) alpn_list, 0, sizeof(alpn_list)); #endif #if defined(MBEDTLS_SSL_COOKIE_C) - mbedtls_ssl_cookie_init( &cookie_ctx ); + mbedtls_ssl_cookie_init(&cookie_ctx); #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) status = psa_crypto_init(); - if( status != PSA_SUCCESS ) - { - mbedtls_fprintf( stderr, "Failed to initialize PSA Crypto implementation: %d\n", - (int) status ); + if (status != PSA_SUCCESS) { + mbedtls_fprintf(stderr, "Failed to initialize PSA Crypto implementation: %d\n", + (int) status); ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; goto exit; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - mbedtls_test_enable_insecure_external_rng( ); + mbedtls_test_enable_insecure_external_rng(); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ #if !defined(_WIN32) /* Abort cleanly on SIGTERM and SIGINT */ - signal( SIGTERM, term_handler ); - signal( SIGINT, term_handler ); + signal(SIGTERM, term_handler); + signal(SIGINT, term_handler); #endif - if( argc == 0 ) - { - usage: - if( ret == 0 ) + if (argc == 0) { +usage: + if (ret == 0) { ret = 1; + } - mbedtls_printf( USAGE1 ); - mbedtls_printf( USAGE2 ); - mbedtls_printf( USAGE3 ); - mbedtls_printf( USAGE4 ); + mbedtls_printf(USAGE1); + mbedtls_printf(USAGE2); + mbedtls_printf(USAGE3); + mbedtls_printf(USAGE4); list = mbedtls_ssl_list_ciphersuites(); - while( *list ) - { - mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name( *list ) ); + while (*list) { + mbedtls_printf(" %-42s", mbedtls_ssl_get_ciphersuite_name(*list)); list++; - if( !*list ) + if (!*list) { break; - mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name( *list ) ); + } + mbedtls_printf(" %s\n", mbedtls_ssl_get_ciphersuite_name(*list)); list++; } mbedtls_printf("\n"); @@ -1692,7 +1683,7 @@ int main( int argc, char *argv[] ) #if defined(MBEDTLS_USE_PSA_CRYPTO) opt.ecjpake_pw_opaque = DFL_ECJPAKE_PW_OPAQUE; #endif - opt.force_ciphersuite[0]= DFL_FORCE_CIPHER; + opt.force_ciphersuite[0] = DFL_FORCE_CIPHER; #if defined(MBEDTLS_SSL_PROTO_TLS1_3) opt.tls13_kex_modes = DFL_TLS1_3_KEX_MODES; #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -1750,106 +1741,99 @@ int main( int argc, char *argv[] ) opt.key2_opaque_alg1 = DFL_KEY_OPAQUE_ALG; opt.key2_opaque_alg2 = DFL_KEY_OPAQUE_ALG; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "server_port" ) == 0 ) + if (strcmp(p, "server_port") == 0) { opt.server_port = q; - else if( strcmp( p, "server_addr" ) == 0 ) + } else if (strcmp(p, "server_addr") == 0) { opt.server_addr = q; - else if( strcmp( p, "dtls" ) == 0 ) - { - int t = atoi( q ); - if( t == 0 ) + } else if (strcmp(p, "dtls") == 0) { + int t = atoi(q); + if (t == 0) { opt.transport = MBEDTLS_SSL_TRANSPORT_STREAM; - else if( t == 1 ) + } else if (t == 1) { opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM; - else + } else { goto usage; - } - else if( strcmp( p, "debug_level" ) == 0 ) - { - opt.debug_level = atoi( q ); - if( opt.debug_level < 0 || opt.debug_level > 65535 ) + } + } else if (strcmp(p, "debug_level") == 0) { + opt.debug_level = atoi(q); + if (opt.debug_level < 0 || opt.debug_level > 65535) { goto usage; - } - else if( strcmp( p, "build_version" ) == 0 ) - { - if( strcmp( q, "1" ) == 0 ) - { - mbedtls_printf( "build version: %s (build %d)\n", - MBEDTLS_VERSION_STRING_FULL, - MBEDTLS_VERSION_NUMBER ); + } + } else if (strcmp(p, "build_version") == 0) { + if (strcmp(q, "1") == 0) { + mbedtls_printf("build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, + MBEDTLS_VERSION_NUMBER); goto exit; } - } - else if( strcmp( p, "nbio" ) == 0 ) - { - opt.nbio = atoi( q ); - if( opt.nbio < 0 || opt.nbio > 2 ) + } else if (strcmp(p, "nbio") == 0) { + opt.nbio = atoi(q); + if (opt.nbio < 0 || opt.nbio > 2) { goto usage; - } - else if( strcmp( p, "event" ) == 0 ) - { - opt.event = atoi( q ); - if( opt.event < 0 || opt.event > 2 ) + } + } else if (strcmp(p, "event") == 0) { + opt.event = atoi(q); + if (opt.event < 0 || opt.event > 2) { goto usage; - } - else if( strcmp( p, "read_timeout" ) == 0 ) - opt.read_timeout = atoi( q ); - else if( strcmp( p, "buffer_size" ) == 0 ) - { - opt.buffer_size = atoi( q ); - if( opt.buffer_size < 1 ) + } + } else if (strcmp(p, "read_timeout") == 0) { + opt.read_timeout = atoi(q); + } else if (strcmp(p, "buffer_size") == 0) { + opt.buffer_size = atoi(q); + if (opt.buffer_size < 1) { goto usage; - } - else if( strcmp( p, "response_size" ) == 0 ) - { - opt.response_size = atoi( q ); - if( opt.response_size < 0 || opt.response_size > MBEDTLS_SSL_OUT_CONTENT_LEN ) + } + } else if (strcmp(p, "response_size") == 0) { + opt.response_size = atoi(q); + if (opt.response_size < 0 || opt.response_size > MBEDTLS_SSL_OUT_CONTENT_LEN) { goto usage; - if( opt.buffer_size < opt.response_size ) + } + if (opt.buffer_size < opt.response_size) { opt.buffer_size = opt.response_size; - } - else if( strcmp( p, "ca_file" ) == 0 ) + } + } else if (strcmp(p, "ca_file") == 0) { opt.ca_file = q; - else if( strcmp( p, "ca_path" ) == 0 ) + } else if (strcmp(p, "ca_path") == 0) { opt.ca_path = q; - else if( strcmp( p, "crt_file" ) == 0 ) + } else if (strcmp(p, "crt_file") == 0) { opt.crt_file = q; - else if( strcmp( p, "key_file" ) == 0 ) + } else if (strcmp(p, "key_file") == 0) { opt.key_file = q; - else if( strcmp( p, "key_pwd" ) == 0 ) + } else if (strcmp(p, "key_pwd") == 0) { opt.key_pwd = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - else if( strcmp( p, "key_opaque" ) == 0 ) - opt.key_opaque = atoi( q ); + else if (strcmp(p, "key_opaque") == 0) { + opt.key_opaque = atoi(q); + } #endif - else if( strcmp( p, "crt_file2" ) == 0 ) + else if (strcmp(p, "crt_file2") == 0) { opt.crt_file2 = q; - else if( strcmp( p, "key_file2" ) == 0 ) + } else if (strcmp(p, "key_file2") == 0) { opt.key_file2 = q; - else if( strcmp( p, "key_pwd2" ) == 0 ) + } else if (strcmp(p, "key_pwd2") == 0) { opt.key_pwd2 = q; - else if( strcmp( p, "dhm_file" ) == 0 ) + } else if (strcmp(p, "dhm_file") == 0) { opt.dhm_file = q; + } #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - else if( strcmp( p, "async_operations" ) == 0 ) + else if (strcmp(p, "async_operations") == 0) { opt.async_operations = q; - else if( strcmp( p, "async_private_delay1" ) == 0 ) - opt.async_private_delay1 = atoi( q ); - else if( strcmp( p, "async_private_delay2" ) == 0 ) - opt.async_private_delay2 = atoi( q ); - else if( strcmp( p, "async_private_error" ) == 0 ) - { - int n = atoi( q ); - if( n < -SSL_ASYNC_INJECT_ERROR_MAX || - n > SSL_ASYNC_INJECT_ERROR_MAX ) - { + } else if (strcmp(p, "async_private_delay1") == 0) { + opt.async_private_delay1 = atoi(q); + } else if (strcmp(p, "async_private_delay2") == 0) { + opt.async_private_delay2 = atoi(q); + } else if (strcmp(p, "async_private_error") == 0) { + int n = atoi(q); + if (n < -SSL_ASYNC_INJECT_ERROR_MAX || + n > SSL_ASYNC_INJECT_ERROR_MAX) { ret = 2; goto usage; } @@ -1857,89 +1841,82 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - else if( strcmp( p, "cid" ) == 0 ) - { - opt.cid_enabled = atoi( q ); - if( opt.cid_enabled != 0 && opt.cid_enabled != 1 ) + else if (strcmp(p, "cid") == 0) { + opt.cid_enabled = atoi(q); + if (opt.cid_enabled != 0 && opt.cid_enabled != 1) { goto usage; - } - else if( strcmp( p, "cid_renego" ) == 0 ) - { - opt.cid_enabled_renego = atoi( q ); - if( opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1 ) + } + } else if (strcmp(p, "cid_renego") == 0) { + opt.cid_enabled_renego = atoi(q); + if (opt.cid_enabled_renego != 0 && opt.cid_enabled_renego != 1) { goto usage; - } - else if( strcmp( p, "cid_val" ) == 0 ) - { + } + } else if (strcmp(p, "cid_val") == 0) { opt.cid_val = q; - } - else if( strcmp( p, "cid_val_renego" ) == 0 ) - { + } else if (strcmp(p, "cid_val_renego") == 0) { opt.cid_val_renego = q; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - else if( strcmp( p, "psk" ) == 0 ) + else if (strcmp(p, "psk") == 0) { opt.psk = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - else if( strcmp( p, "psk_opaque" ) == 0 ) - opt.psk_opaque = atoi( q ); - else if( strcmp( p, "psk_list_opaque" ) == 0 ) - opt.psk_list_opaque = atoi( q ); + else if (strcmp(p, "psk_opaque") == 0) { + opt.psk_opaque = atoi(q); + } else if (strcmp(p, "psk_list_opaque") == 0) { + opt.psk_list_opaque = atoi(q); + } #endif #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - else if( strcmp( p, "ca_callback" ) == 0) - opt.ca_callback = atoi( q ); + else if (strcmp(p, "ca_callback") == 0) { + opt.ca_callback = atoi(q); + } #endif - else if( strcmp( p, "psk_identity" ) == 0 ) + else if (strcmp(p, "psk_identity") == 0) { opt.psk_identity = q; - else if( strcmp( p, "psk_list" ) == 0 ) + } else if (strcmp(p, "psk_list") == 0) { opt.psk_list = q; - else if( strcmp( p, "ecjpake_pw" ) == 0 ) + } else if (strcmp(p, "ecjpake_pw") == 0) { opt.ecjpake_pw = q; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) - else if( strcmp( p, "ecjpake_pw_opaque" ) == 0 ) - opt.ecjpake_pw_opaque = atoi( q ); + else if (strcmp(p, "ecjpake_pw_opaque") == 0) { + opt.ecjpake_pw_opaque = atoi(q); + } #endif - else if( strcmp( p, "force_ciphersuite" ) == 0 ) - { - opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( q ); + else if (strcmp(p, "force_ciphersuite") == 0) { + opt.force_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(q); - if( opt.force_ciphersuite[0] == 0 ) - { + if (opt.force_ciphersuite[0] == 0) { ret = 2; goto usage; } opt.force_ciphersuite[1] = 0; - } - else if( strcmp( p, "curves" ) == 0 ) + } else if (strcmp(p, "curves") == 0) { opt.curves = q; + } #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - else if( strcmp( p, "sig_algs" ) == 0 ) + else if (strcmp(p, "sig_algs") == 0) { opt.sig_algs = q; + } #endif #if defined(MBEDTLS_SSL_EARLY_DATA) - else if( strcmp( p, "max_early_data_size" ) == 0 ) - { - long long value = atoll( q ); + else if (strcmp(p, "max_early_data_size") == 0) { + long long value = atoll(q); tls13_early_data_enabled = value >= 0 ? MBEDTLS_SSL_EARLY_DATA_ENABLED : - MBEDTLS_SSL_EARLY_DATA_DISABLED; - if( tls13_early_data_enabled ) - { - opt.max_early_data_size = atoi( q ); + MBEDTLS_SSL_EARLY_DATA_DISABLED; + if (tls13_early_data_enabled) { + opt.max_early_data_size = atoi(q); } } #endif /* MBEDTLS_SSL_EARLY_DATA */ - else if( strcmp( p, "renegotiation" ) == 0 ) - { - opt.renegotiation = (atoi( q )) ? - MBEDTLS_SSL_RENEGOTIATION_ENABLED : - MBEDTLS_SSL_RENEGOTIATION_DISABLED; - } - else if( strcmp( p, "allow_legacy" ) == 0 ) - { - switch( atoi( q ) ) - { + else if (strcmp(p, "renegotiation") == 0) { + opt.renegotiation = (atoi(q)) ? + MBEDTLS_SSL_RENEGOTIATION_ENABLED : + MBEDTLS_SSL_RENEGOTIATION_DISABLED; + } else if (strcmp(p, "allow_legacy") == 0) { + switch (atoi(q)) { case -1: opt.allow_legacy = MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE; break; @@ -1951,49 +1928,45 @@ int main( int argc, char *argv[] ) break; default: goto usage; } - } - else if( strcmp( p, "renegotiate" ) == 0 ) - { - opt.renegotiate = atoi( q ); - if( opt.renegotiate < 0 || opt.renegotiate > 1 ) + } else if (strcmp(p, "renegotiate") == 0) { + opt.renegotiate = atoi(q); + if (opt.renegotiate < 0 || opt.renegotiate > 1) { goto usage; - } - else if( strcmp( p, "renego_delay" ) == 0 ) - { - opt.renego_delay = atoi( q ); - } - else if( strcmp( p, "renego_period" ) == 0 ) - { + } + } else if (strcmp(p, "renego_delay") == 0) { + opt.renego_delay = atoi(q); + } else if (strcmp(p, "renego_period") == 0) { #if defined(_MSC_VER) - opt.renego_period = _strtoui64( q, NULL, 10 ); + opt.renego_period = _strtoui64(q, NULL, 10); #else - if( sscanf( q, "%" SCNu64, &opt.renego_period ) != 1 ) + if (sscanf(q, "%" SCNu64, &opt.renego_period) != 1) { goto usage; + } #endif /* _MSC_VER */ - if( opt.renego_period < 2 ) + if (opt.renego_period < 2) { goto usage; - } - else if( strcmp( p, "exchanges" ) == 0 ) - { - opt.exchanges = atoi( q ); - if( opt.exchanges < 0 ) + } + } else if (strcmp(p, "exchanges") == 0) { + opt.exchanges = atoi(q); + if (opt.exchanges < 0) { goto usage; + } } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( p, "tls13_kex_modes" ) == 0 ) - { - if( strcmp( q, "psk" ) == 0 ) + else if (strcmp(p, "tls13_kex_modes") == 0) { + if (strcmp(q, "psk") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; - else if( strcmp(q, "psk_ephemeral" ) == 0 ) + } else if (strcmp(q, "psk_ephemeral") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; - else if( strcmp(q, "ephemeral" ) == 0 ) + } else if (strcmp(q, "ephemeral") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; - else if( strcmp(q, "ephemeral_all" ) == 0 ) + } else if (strcmp(q, "ephemeral_all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ALL; - else if( strcmp( q, "psk_all" ) == 0 ) + } else if (strcmp(q, "psk_all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL; - else if( strcmp( q, "all" ) == 0 ) + } else if (strcmp(q, "all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; + } /* The purpose of `psk_or_ephemeral` is to improve test coverage. That * is not recommended in practice. * `psk_or_ephemeral` exists in theory, we need this mode to test if @@ -2001,115 +1974,100 @@ int main( int argc, char *argv[] ) * should always perform `ephemeral` handshake. `psk` or `psk_ephemeral` * is not expected. */ - else if( strcmp( q, "psk_or_ephemeral" ) == 0 ) + else if (strcmp(q, "psk_or_ephemeral") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL ; - else goto usage; + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; + } else { + goto usage; + } } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else if( strcmp( p, "min_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 || - strcmp( q, "dtls12" ) == 0 ) + else if (strcmp(p, "min_version") == 0) { + if (strcmp(q, "tls12") == 0 || + strcmp(q, "dtls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) + else if (strcmp(q, "tls13") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "max_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 || - strcmp( q, "dtls12" ) == 0 ) + } + } else if (strcmp(p, "max_version") == 0) { + if (strcmp(q, "tls12") == 0 || + strcmp(q, "dtls12") == 0) { opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) + else if (strcmp(q, "tls13") == 0) { opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3; + } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "allow_sha1" ) == 0 ) - { - switch( atoi( q ) ) - { + } + } else if (strcmp(p, "allow_sha1") == 0) { + switch (atoi(q)) { case 0: opt.allow_sha1 = 0; break; case 1: opt.allow_sha1 = 1; break; default: goto usage; } - } - else if( strcmp( p, "force_version" ) == 0 ) - { - if( strcmp( q, "tls12" ) == 0 ) - { + } else if (strcmp(p, "force_version") == 0) { + if (strcmp(q, "tls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; - } - else if( strcmp( q, "dtls12" ) == 0 ) - { + } else if (strcmp(q, "dtls12") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_2; opt.transport = MBEDTLS_SSL_TRANSPORT_DATAGRAM; } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - else if( strcmp( q, "tls13" ) == 0 ) - { + else if (strcmp(q, "tls13") == 0) { opt.min_version = MBEDTLS_SSL_VERSION_TLS1_3; opt.max_version = MBEDTLS_SSL_VERSION_TLS1_3; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - else + else { goto usage; - } - else if( strcmp( p, "auth_mode" ) == 0 ) - { - if( ( opt.auth_mode = get_auth_mode( q ) ) < 0 ) + } + } else if (strcmp(p, "auth_mode") == 0) { + if ((opt.auth_mode = get_auth_mode(q)) < 0) { goto usage; - } - else if( strcmp( p, "cert_req_ca_list" ) == 0 ) - { - opt.cert_req_ca_list = atoi( q ); - if( opt.cert_req_ca_list < 0 || opt.cert_req_ca_list > 3 ) + } + } else if (strcmp(p, "cert_req_ca_list") == 0) { + opt.cert_req_ca_list = atoi(q); + if (opt.cert_req_ca_list < 0 || opt.cert_req_ca_list > 3) { goto usage; - if( opt.cert_req_ca_list > 1 ) - { + } + if (opt.cert_req_ca_list > 1) { opt.cert_req_dn_hint = opt.cert_req_ca_list; opt.cert_req_ca_list = MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED; } - } - else if( strcmp( p, "max_frag_len" ) == 0 ) - { - if( strcmp( q, "512" ) == 0 ) + } else if (strcmp(p, "max_frag_len") == 0) { + if (strcmp(q, "512") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_512; - else if( strcmp( q, "1024" ) == 0 ) + } else if (strcmp(q, "1024") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_1024; - else if( strcmp( q, "2048" ) == 0 ) + } else if (strcmp(q, "2048") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_2048; - else if( strcmp( q, "4096" ) == 0 ) + } else if (strcmp(q, "4096") == 0) { opt.mfl_code = MBEDTLS_SSL_MAX_FRAG_LEN_4096; - else + } else { goto usage; - } - else if( strcmp( p, "alpn" ) == 0 ) - { + } + } else if (strcmp(p, "alpn") == 0) { opt.alpn_string = q; - } - else if( strcmp( p, "trunc_hmac" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "trunc_hmac") == 0) { + switch (atoi(q)) { case 0: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_DISABLED; break; case 1: opt.trunc_hmac = MBEDTLS_SSL_TRUNC_HMAC_ENABLED; break; default: goto usage; } - } - else if( strcmp( p, "extended_ms" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "extended_ms") == 0) { + switch (atoi(q)) { case 0: opt.extended_ms = MBEDTLS_SSL_EXTENDED_MS_DISABLED; break; @@ -2118,190 +2076,152 @@ int main( int argc, char *argv[] ) break; default: goto usage; } - } - else if( strcmp( p, "etm" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "etm") == 0) { + switch (atoi(q)) { case 0: opt.etm = MBEDTLS_SSL_ETM_DISABLED; break; case 1: opt.etm = MBEDTLS_SSL_ETM_ENABLED; break; default: goto usage; } - } - else if( strcmp( p, "tickets" ) == 0 ) - { - opt.tickets = atoi( q ); - if( opt.tickets < 0 ) + } else if (strcmp(p, "tickets") == 0) { + opt.tickets = atoi(q); + if (opt.tickets < 0) { goto usage; - } - else if( strcmp( p, "dummy_ticket" ) == 0 ) - { - opt.dummy_ticket = atoi( q ); - if( opt.dummy_ticket < 0 ) + } + } else if (strcmp(p, "dummy_ticket") == 0) { + opt.dummy_ticket = atoi(q); + if (opt.dummy_ticket < 0) { goto usage; - } - else if( strcmp( p, "ticket_rotate" ) == 0 ) - { - opt.ticket_rotate = atoi( q ); - if( opt.ticket_rotate < 0 || opt.ticket_rotate > 1 ) + } + } else if (strcmp(p, "ticket_rotate") == 0) { + opt.ticket_rotate = atoi(q); + if (opt.ticket_rotate < 0 || opt.ticket_rotate > 1) { goto usage; - } - else if( strcmp( p, "ticket_timeout" ) == 0 ) - { - opt.ticket_timeout = atoi( q ); - if( opt.ticket_timeout < 0 ) + } + } else if (strcmp(p, "ticket_timeout") == 0) { + opt.ticket_timeout = atoi(q); + if (opt.ticket_timeout < 0) { goto usage; - } - else if( strcmp( p, "ticket_aead" ) == 0 ) - { - const mbedtls_cipher_info_t *ci = mbedtls_cipher_info_from_string( q ); + } + } else if (strcmp(p, "ticket_aead") == 0) { + const mbedtls_cipher_info_t *ci = mbedtls_cipher_info_from_string(q); - if( ci == NULL ) + if (ci == NULL) { goto usage; - opt.ticket_aead = mbedtls_cipher_info_get_type( ci ); - } - else if( strcmp( p, "cache_max" ) == 0 ) - { - opt.cache_max = atoi( q ); - if( opt.cache_max < 0 ) - goto usage; - } -#if defined(MBEDTLS_HAVE_TIME) - else if( strcmp( p, "cache_timeout" ) == 0 ) - { - opt.cache_timeout = atoi( q ); - if( opt.cache_timeout < 0 ) - goto usage; - } -#endif - else if( strcmp( p, "cookies" ) == 0 ) - { - opt.cookies = atoi( q ); - if( opt.cookies < -1 || opt.cookies > 1) - goto usage; - } - else if( strcmp( p, "anti_replay" ) == 0 ) - { - opt.anti_replay = atoi( q ); - if( opt.anti_replay < 0 || opt.anti_replay > 1) - goto usage; - } - else if( strcmp( p, "badmac_limit" ) == 0 ) - { - opt.badmac_limit = atoi( q ); - if( opt.badmac_limit < 0 ) - goto usage; - } - else if( strcmp( p, "hs_timeout" ) == 0 ) - { - if( ( p = strchr( q, '-' ) ) == NULL ) - goto usage; - *p++ = '\0'; - opt.hs_to_min = atoi( q ); - opt.hs_to_max = atoi( p ); - if( opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min ) - goto usage; - } - else if( strcmp( p, "mtu" ) == 0 ) - { - opt.dtls_mtu = atoi( q ); - if( opt.dtls_mtu < 0 ) - goto usage; - } - else if( strcmp( p, "dgram_packing" ) == 0 ) - { - opt.dgram_packing = atoi( q ); - if( opt.dgram_packing != 0 && - opt.dgram_packing != 1 ) - { + } + opt.ticket_aead = mbedtls_cipher_info_get_type(ci); + } else if (strcmp(p, "cache_max") == 0) { + opt.cache_max = atoi(q); + if (opt.cache_max < 0) { goto usage; } } - else if( strcmp( p, "sni" ) == 0 ) - { +#if defined(MBEDTLS_HAVE_TIME) + else if (strcmp(p, "cache_timeout") == 0) { + opt.cache_timeout = atoi(q); + if (opt.cache_timeout < 0) { + goto usage; + } + } +#endif + else if (strcmp(p, "cookies") == 0) { + opt.cookies = atoi(q); + if (opt.cookies < -1 || opt.cookies > 1) { + goto usage; + } + } else if (strcmp(p, "anti_replay") == 0) { + opt.anti_replay = atoi(q); + if (opt.anti_replay < 0 || opt.anti_replay > 1) { + goto usage; + } + } else if (strcmp(p, "badmac_limit") == 0) { + opt.badmac_limit = atoi(q); + if (opt.badmac_limit < 0) { + goto usage; + } + } else if (strcmp(p, "hs_timeout") == 0) { + if ((p = strchr(q, '-')) == NULL) { + goto usage; + } + *p++ = '\0'; + opt.hs_to_min = atoi(q); + opt.hs_to_max = atoi(p); + if (opt.hs_to_min == 0 || opt.hs_to_max < opt.hs_to_min) { + goto usage; + } + } else if (strcmp(p, "mtu") == 0) { + opt.dtls_mtu = atoi(q); + if (opt.dtls_mtu < 0) { + goto usage; + } + } else if (strcmp(p, "dgram_packing") == 0) { + opt.dgram_packing = atoi(q); + if (opt.dgram_packing != 0 && + opt.dgram_packing != 1) { + goto usage; + } + } else if (strcmp(p, "sni") == 0) { opt.sni = q; - } - else if( strcmp( p, "query_config" ) == 0 ) - { + } else if (strcmp(p, "query_config") == 0) { opt.query_config_mode = 1; - query_config_ret = query_config( q ); + query_config_ret = query_config(q); goto exit; - } - else if( strcmp( p, "serialize") == 0 ) - { - opt.serialize = atoi( q ); - if( opt.serialize < 0 || opt.serialize > 2) + } else if (strcmp(p, "serialize") == 0) { + opt.serialize = atoi(q); + if (opt.serialize < 0 || opt.serialize > 2) { goto usage; - } - else if( strcmp( p, "context_file") == 0 ) - { + } + } else if (strcmp(p, "context_file") == 0) { opt.context_file = q; - } - else if( strcmp( p, "eap_tls" ) == 0 ) - { - opt.eap_tls = atoi( q ); - if( opt.eap_tls < 0 || opt.eap_tls > 1 ) + } else if (strcmp(p, "eap_tls") == 0) { + opt.eap_tls = atoi(q); + if (opt.eap_tls < 0 || opt.eap_tls > 1) { goto usage; - } - else if( strcmp( p, "reproducible" ) == 0 ) - { + } + } else if (strcmp(p, "reproducible") == 0) { opt.reproducible = 1; - } - else if( strcmp( p, "nss_keylog" ) == 0 ) - { - opt.nss_keylog = atoi( q ); - if( opt.nss_keylog < 0 || opt.nss_keylog > 1 ) + } else if (strcmp(p, "nss_keylog") == 0) { + opt.nss_keylog = atoi(q); + if (opt.nss_keylog < 0 || opt.nss_keylog > 1) { goto usage; - } - else if( strcmp( p, "nss_keylog_file" ) == 0 ) - { + } + } else if (strcmp(p, "nss_keylog_file") == 0) { opt.nss_keylog_file = q; - } - else if( strcmp( p, "use_srtp" ) == 0 ) - { - opt.use_srtp = atoi ( q ); - } - else if( strcmp( p, "srtp_force_profile" ) == 0 ) - { - opt.force_srtp_profile = atoi( q ); - } - else if( strcmp( p, "support_mki" ) == 0 ) - { - opt.support_mki = atoi( q ); - } - else if( strcmp( p, "key_opaque_algs" ) == 0 ) - { - if( key_opaque_alg_parse( q, &opt.key1_opaque_alg1, - &opt.key1_opaque_alg2 ) != 0 ) + } else if (strcmp(p, "use_srtp") == 0) { + opt.use_srtp = atoi(q); + } else if (strcmp(p, "srtp_force_profile") == 0) { + opt.force_srtp_profile = atoi(q); + } else if (strcmp(p, "support_mki") == 0) { + opt.support_mki = atoi(q); + } else if (strcmp(p, "key_opaque_algs") == 0) { + if (key_opaque_alg_parse(q, &opt.key1_opaque_alg1, + &opt.key1_opaque_alg2) != 0) { goto usage; - } - else if( strcmp( p, "key_opaque_algs2" ) == 0 ) - { - if( key_opaque_alg_parse( q, &opt.key2_opaque_alg1, - &opt.key2_opaque_alg2 ) != 0 ) + } + } else if (strcmp(p, "key_opaque_algs2") == 0) { + if (key_opaque_alg_parse(q, &opt.key2_opaque_alg1, + &opt.key2_opaque_alg2) != 0) { goto usage; - } - else + } + } else { goto usage; + } } - if( opt.nss_keylog != 0 && opt.eap_tls != 0 ) - { - mbedtls_printf( "Error: eap_tls and nss_keylog options cannot be used together.\n" ); + if (opt.nss_keylog != 0 && opt.eap_tls != 0) { + mbedtls_printf("Error: eap_tls and nss_keylog options cannot be used together.\n"); goto usage; } /* Event-driven IO is incompatible with the above custom * receive and send functions, as the polling builds on * refers to the underlying net_context. */ - if( opt.event == 1 && opt.nbio != 1 ) - { - mbedtls_printf( "Warning: event-driven IO mandates nbio=1 - overwrite\n" ); + if (opt.event == 1 && opt.nbio != 1) { + mbedtls_printf("Warning: event-driven IO mandates nbio=1 - overwrite\n"); opt.nbio = 1; } #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( opt.debug_level ); + mbedtls_debug_set_threshold(opt.debug_level); #endif /* buf will alternatively contain the input read from the client and the @@ -2309,128 +2229,115 @@ int main( int argc, char *argv[] ) size_t buf_content_size = opt.buffer_size; /* The default response contains the ciphersuite name. Leave enough * room for that plus some margin. */ - if( buf_content_size < strlen( HTTP_RESPONSE ) + 80 ) - { - buf_content_size = strlen( HTTP_RESPONSE ) + 80; + if (buf_content_size < strlen(HTTP_RESPONSE) + 80) { + buf_content_size = strlen(HTTP_RESPONSE) + 80; } - if( opt.response_size != DFL_RESPONSE_SIZE && - buf_content_size < (size_t) opt.response_size ) - { + if (opt.response_size != DFL_RESPONSE_SIZE && + buf_content_size < (size_t) opt.response_size) { buf_content_size = opt.response_size; } - buf = mbedtls_calloc( 1, buf_content_size + 1 ); - if( buf == NULL ) - { - mbedtls_printf( "Could not allocate %lu bytes\n", - (unsigned long) buf_content_size + 1 ); + buf = mbedtls_calloc(1, buf_content_size + 1); + if (buf == NULL) { + mbedtls_printf("Could not allocate %lu bytes\n", + (unsigned long) buf_content_size + 1); ret = 3; goto exit; } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { - if( strlen( opt.psk ) == 0 ) - { - mbedtls_printf( "psk_opaque set but no psk to be imported specified.\n" ); + if (opt.psk_opaque != 0) { + if (strlen(opt.psk) == 0) { + mbedtls_printf("psk_opaque set but no psk to be imported specified.\n"); ret = 2; goto usage; } - if( opt.force_ciphersuite[0] <= 0 ) - { - mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" ); + if (opt.force_ciphersuite[0] <= 0) { + mbedtls_printf( + "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n"); ret = 2; goto usage; } } - if( opt.psk_list_opaque != 0 ) - { - if( opt.psk_list == NULL ) - { - mbedtls_printf( "psk_slot set but no psk to be imported specified.\n" ); + if (opt.psk_list_opaque != 0) { + if (opt.psk_list == NULL) { + mbedtls_printf("psk_slot set but no psk to be imported specified.\n"); ret = 2; goto usage; } - if( opt.force_ciphersuite[0] <= 0 ) - { - mbedtls_printf( "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n" ); + if (opt.force_ciphersuite[0] <= 0) { + mbedtls_printf( + "opaque PSKs are only supported in conjunction with forcing TLS 1.2 and a PSK-only ciphersuite through the 'force_ciphersuite' option.\n"); ret = 2; goto usage; } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( opt.force_ciphersuite[0] > 0 ) - { + if (opt.force_ciphersuite[0] > 0) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info; ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( opt.force_ciphersuite[0] ); + mbedtls_ssl_ciphersuite_from_id(opt.force_ciphersuite[0]); - if( opt.max_version != -1 && - ciphersuite_info->min_tls_version > opt.max_version ) - { - mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" ); + if (opt.max_version != -1 && + ciphersuite_info->min_tls_version > opt.max_version) { + mbedtls_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } - if( opt.min_version != -1 && - ciphersuite_info->max_tls_version < opt.min_version ) - { - mbedtls_printf( "forced ciphersuite not allowed with this protocol version\n" ); + if (opt.min_version != -1 && + ciphersuite_info->max_tls_version < opt.min_version) { + mbedtls_printf("forced ciphersuite not allowed with this protocol version\n"); ret = 2; goto usage; } /* If we select a version that's not supported by * this suite, then there will be no common ciphersuite... */ - if( opt.max_version == -1 || - opt.max_version > ciphersuite_info->max_tls_version ) - { + if (opt.max_version == -1 || + opt.max_version > ciphersuite_info->max_tls_version) { opt.max_version = ciphersuite_info->max_tls_version; } - if( opt.min_version < ciphersuite_info->min_tls_version ) - { + if (opt.min_version < ciphersuite_info->min_tls_version) { opt.min_version = ciphersuite_info->min_tls_version; } #if defined(MBEDTLS_USE_PSA_CRYPTO) #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) - if( opt.psk_opaque != 0 || opt.psk_list_opaque != 0 ) - { + if (opt.psk_opaque != 0 || opt.psk_list_opaque != 0) { /* Determine KDF algorithm the opaque PSK will be used in. */ #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - if( ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) + if (ciphersuite_info->mac == MBEDTLS_MD_SHA384) { alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); - else + } else #endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ - alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); + alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_256); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( mbedtls_test_unhexify( cid, sizeof( cid ), - opt.cid_val, &cid_len ) != 0 ) - { - mbedtls_printf( "CID not valid hex\n" ); + if (mbedtls_test_unhexify(cid, sizeof(cid), + opt.cid_val, &cid_len) != 0) { + mbedtls_printf("CID not valid hex\n"); goto exit; } /* Keep CID settings for renegotiation unless * specified otherwise. */ - if( opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO ) + if (opt.cid_enabled_renego == DFL_CID_ENABLED_RENEGO) { opt.cid_enabled_renego = opt.cid_enabled; - if( opt.cid_val_renego == DFL_CID_VALUE_RENEGO ) + } + if (opt.cid_val_renego == DFL_CID_VALUE_RENEGO) { opt.cid_val_renego = opt.cid_val; + } - if( mbedtls_test_unhexify( cid_renego, sizeof( cid_renego ), - opt.cid_val_renego, &cid_renego_len ) != 0 ) - { - mbedtls_printf( "CID not valid hex\n" ); + if (mbedtls_test_unhexify(cid_renego, sizeof(cid_renego), + opt.cid_val_renego, &cid_renego_len) != 0) { + mbedtls_printf("CID not valid hex\n"); goto exit; } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -2439,71 +2346,60 @@ int main( int argc, char *argv[] ) /* * Unhexify the pre-shared key and parse the list if any given */ - if( mbedtls_test_unhexify( psk, sizeof( psk ), - opt.psk, &psk_len ) != 0 ) - { - mbedtls_printf( "pre-shared key not valid hex\n" ); + if (mbedtls_test_unhexify(psk, sizeof(psk), + opt.psk, &psk_len) != 0) { + mbedtls_printf("pre-shared key not valid hex\n"); goto exit; } - if( opt.psk_list != NULL ) - { - if( ( psk_info = psk_parse( opt.psk_list ) ) == NULL ) - { - mbedtls_printf( "psk_list invalid" ); + if (opt.psk_list != NULL) { + if ((psk_info = psk_parse(opt.psk_list)) == NULL) { + mbedtls_printf("psk_list invalid"); goto exit; } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED */ #if defined(MBEDTLS_ECP_C) - if( opt.curves != NULL ) - { + if (opt.curves != NULL) { p = (char *) opt.curves; i = 0; - if( strcmp( p, "none" ) == 0 ) - { + if (strcmp(p, "none") == 0) { group_list[0] = 0; - } - else if( strcmp( p, "default" ) != 0 ) - { + } else if (strcmp(p, "default") != 0) { /* Leave room for a final NULL in curve list */ - while( i < CURVE_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < CURVE_LIST_SIZE - 1 && *p != '\0') { q = p; /* Terminate the current string */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) - *p++ = '\0'; - - if( ( curve_cur = mbedtls_ecp_curve_info_from_name( q ) ) != NULL ) - { - group_list[i++] = curve_cur->tls_id; } - else - { - mbedtls_printf( "unknown curve %s\n", q ); - mbedtls_printf( "supported curves: " ); - for( curve_cur = mbedtls_ecp_curve_list(); + if (*p == ',') { + *p++ = '\0'; + } + + if ((curve_cur = mbedtls_ecp_curve_info_from_name(q)) != NULL) { + group_list[i++] = curve_cur->tls_id; + } else { + mbedtls_printf("unknown curve %s\n", q); + mbedtls_printf("supported curves: "); + for (curve_cur = mbedtls_ecp_curve_list(); curve_cur->grp_id != MBEDTLS_ECP_DP_NONE; - curve_cur++ ) - { - mbedtls_printf( "%s ", curve_cur->name ); + curve_cur++) { + mbedtls_printf("%s ", curve_cur->name); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); goto exit; } } - mbedtls_printf("Number of curves: %d\n", i ); + mbedtls_printf("Number of curves: %d\n", i); - if( i == CURVE_LIST_SIZE - 1 && *p != '\0' ) - { - mbedtls_printf( "curves list too long, maximum %d", - CURVE_LIST_SIZE - 1 ); + if (i == CURVE_LIST_SIZE - 1 && *p != '\0') { + mbedtls_printf("curves list too long, maximum %d", + CURVE_LIST_SIZE - 1); goto exit; } @@ -2513,99 +2409,65 @@ int main( int argc, char *argv[] ) #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( opt.sig_algs != NULL ) - { + if (opt.sig_algs != NULL) { p = (char *) opt.sig_algs; i = 0; /* Leave room for a final MBEDTLS_TLS1_3_SIG_NONE in signature algorithm list (sig_alg_list). */ - while( i < SIG_ALG_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < SIG_ALG_LIST_SIZE - 1 && *p != '\0') { q = p; /* Terminate the current string */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) + } + if (*p == ',') { *p++ = '\0'; + } - if( strcmp( q, "rsa_pkcs1_sha256" ) == 0 ) - { + if (strcmp(q, "rsa_pkcs1_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA256; - } - else if( strcmp( q, "rsa_pkcs1_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA384; - } - else if( strcmp( q, "rsa_pkcs1_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA512; - } - else if( strcmp( q, "ecdsa_secp256r1_sha256" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp256r1_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP256R1_SHA256; - } - else if( strcmp( q, "ecdsa_secp384r1_sha384" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp384r1_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP384R1_SHA384; - } - else if( strcmp( q, "ecdsa_secp521r1_sha512" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_secp521r1_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SECP521R1_SHA512; - } - else if( strcmp( q, "rsa_pss_rsae_sha256" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256; - } - else if( strcmp( q, "rsa_pss_rsae_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA384; - } - else if( strcmp( q, "rsa_pss_rsae_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_rsae_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA512; - } - else if( strcmp( q, "ed25519" ) == 0 ) - { + } else if (strcmp(q, "ed25519") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED25519; - } - else if( strcmp( q, "ed448" ) == 0 ) - { + } else if (strcmp(q, "ed448") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ED448; - } - else if( strcmp( q, "rsa_pss_pss_sha256" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha256") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA256; - } - else if( strcmp( q, "rsa_pss_pss_sha384" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha384") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA384; - } - else if( strcmp( q, "rsa_pss_pss_sha512" ) == 0 ) - { + } else if (strcmp(q, "rsa_pss_pss_sha512") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PSS_PSS_SHA512; - } - else if( strcmp( q, "rsa_pkcs1_sha1" ) == 0 ) - { + } else if (strcmp(q, "rsa_pkcs1_sha1") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_RSA_PKCS1_SHA1; - } - else if( strcmp( q, "ecdsa_sha1" ) == 0 ) - { + } else if (strcmp(q, "ecdsa_sha1") == 0) { sig_alg_list[i++] = MBEDTLS_TLS1_3_SIG_ECDSA_SHA1; - } - else - { + } else { ret = -1; - mbedtls_printf( "unknown signature algorithm \"%s\"\n", q ); + mbedtls_printf("unknown signature algorithm \"%s\"\n", q); mbedtls_print_supported_sig_algs(); goto exit; } } - if( i == ( SIG_ALG_LIST_SIZE - 1 ) && *p != '\0' ) - { - mbedtls_printf( "signature algorithm list too long, maximum %d", - SIG_ALG_LIST_SIZE - 1 ); + if (i == (SIG_ALG_LIST_SIZE - 1) && *p != '\0') { + mbedtls_printf("signature algorithm list too long, maximum %d", + SIG_ALG_LIST_SIZE - 1); goto exit; } @@ -2614,193 +2476,177 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - { + if (opt.alpn_string != NULL) { p = (char *) opt.alpn_string; i = 0; /* Leave room for a final NULL in alpn_list */ - while( i < ALPN_LIST_SIZE - 1 && *p != '\0' ) - { + while (i < ALPN_LIST_SIZE - 1 && *p != '\0') { alpn_list[i++] = p; /* Terminate the current string and move on to next one */ - while( *p != ',' && *p != '\0' ) + while (*p != ',' && *p != '\0') { p++; - if( *p == ',' ) + } + if (*p == ',') { *p++ = '\0'; + } } } #endif /* MBEDTLS_SSL_ALPN */ - mbedtls_printf( "build version: %s (build %d)\n", - MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER ); + mbedtls_printf("build version: %s (build %d)\n", + MBEDTLS_VERSION_STRING_FULL, MBEDTLS_VERSION_NUMBER); /* * 0. Initialize the RNG and the session data */ - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - ret = rng_seed( &rng, opt.reproducible, pers ); - if( ret != 0 ) + ret = rng_seed(&rng, opt.reproducible, pers); + if (ret != 0) { goto exit; - mbedtls_printf( " ok\n" ); + } + mbedtls_printf(" ok\n"); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) /* * 1.1. Load the trusted CA */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); - if( strcmp( opt.ca_path, "none" ) == 0 || - strcmp( opt.ca_file, "none" ) == 0 ) - { + if (strcmp(opt.ca_path, "none") == 0 || + strcmp(opt.ca_file, "none") == 0) { ret = 0; - } - else + } else #if defined(MBEDTLS_FS_IO) - if( strlen( opt.ca_path ) ) - ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path ); - else if( strlen( opt.ca_file ) ) - ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file ); - else + if (strlen(opt.ca_path)) { + ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path); + } else if (strlen(opt.ca_file)) { + ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file); + } else #endif { #if defined(MBEDTLS_PEM_PARSE_C) - for( i = 0; mbedtls_test_cas[i] != NULL; i++ ) - { - ret = mbedtls_x509_crt_parse( &cacert, - (const unsigned char *) mbedtls_test_cas[i], - mbedtls_test_cas_len[i] ); - if( ret != 0 ) + for (i = 0; mbedtls_test_cas[i] != NULL; i++) { + ret = mbedtls_x509_crt_parse(&cacert, + (const unsigned char *) mbedtls_test_cas[i], + mbedtls_test_cas_len[i]); + if (ret != 0) { break; + } } #endif /* MBEDTLS_PEM_PARSE_C */ - if( ret == 0 ) - { - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) - { - ret = mbedtls_x509_crt_parse_der( &cacert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - if( ret != 0 ) + if (ret == 0) { + for (i = 0; mbedtls_test_cas_der[i] != NULL; i++) { + ret = mbedtls_x509_crt_parse_der(&cacert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i]); + if (ret != 0) { break; + } } } } - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", (unsigned int) -ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); /* * 1.2. Load own certificate and private key */ - mbedtls_printf( " . Loading the server cert. and key..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the server cert. and key..."); + fflush(stdout); #if defined(MBEDTLS_FS_IO) - if( strlen( opt.crt_file ) && strcmp( opt.crt_file, "none" ) != 0 ) - { + if (strlen(opt.crt_file) && strcmp(opt.crt_file, "none") != 0) { key_cert_init++; - if( ( ret = mbedtls_x509_crt_parse_file( &srvcert, opt.crt_file ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_x509_crt_parse_file(&srvcert, opt.crt_file)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - if( strlen( opt.key_file ) && strcmp( opt.key_file, "none" ) != 0 ) - { + if (strlen(opt.key_file) && strcmp(opt.key_file, "none") != 0) { key_cert_init++; - if( ( ret = mbedtls_pk_parse_keyfile( &pkey, opt.key_file, - opt.key_pwd, rng_get, &rng ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned -0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_keyfile(&pkey, opt.key_file, + opt.key_pwd, rng_get, &rng)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - if( key_cert_init == 1 ) - { - mbedtls_printf( " failed\n ! crt_file without key_file or vice-versa\n\n" ); + if (key_cert_init == 1) { + mbedtls_printf(" failed\n ! crt_file without key_file or vice-versa\n\n"); goto exit; } - if( strlen( opt.crt_file2 ) && strcmp( opt.crt_file2, "none" ) != 0 ) - { + if (strlen(opt.crt_file2) && strcmp(opt.crt_file2, "none") != 0) { key_cert_init2++; - if( ( ret = mbedtls_x509_crt_parse_file( &srvcert2, opt.crt_file2 ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file(2) returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_x509_crt_parse_file(&srvcert2, opt.crt_file2)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file(2) returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - if( strlen( opt.key_file2 ) && strcmp( opt.key_file2, "none" ) != 0 ) - { + if (strlen(opt.key_file2) && strcmp(opt.key_file2, "none") != 0) { key_cert_init2++; - if( ( ret = mbedtls_pk_parse_keyfile( &pkey2, opt.key_file2, - opt.key_pwd2, rng_get, &rng ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile(2) returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_keyfile(&pkey2, opt.key_file2, + opt.key_pwd2, rng_get, &rng)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile(2) returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } - if( key_cert_init2 == 1 ) - { - mbedtls_printf( " failed\n ! crt_file2 without key_file2 or vice-versa\n\n" ); + if (key_cert_init2 == 1) { + mbedtls_printf(" failed\n ! crt_file2 without key_file2 or vice-versa\n\n"); goto exit; } #endif - if( key_cert_init == 0 && - strcmp( opt.crt_file, "none" ) != 0 && - strcmp( opt.key_file, "none" ) != 0 && + if (key_cert_init == 0 && + strcmp(opt.crt_file, "none") != 0 && + strcmp(opt.key_file, "none") != 0 && key_cert_init2 == 0 && - strcmp( opt.crt_file2, "none" ) != 0 && - strcmp( opt.key_file2, "none" ) != 0 ) - { + strcmp(opt.crt_file2, "none") != 0 && + strcmp(opt.key_file2, "none") != 0) { #if defined(MBEDTLS_RSA_C) - if( ( ret = mbedtls_x509_crt_parse( &srvcert, - (const unsigned char *) mbedtls_test_srv_crt_rsa, - mbedtls_test_srv_crt_rsa_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_x509_crt_parse(&srvcert, + (const unsigned char *) mbedtls_test_srv_crt_rsa, + mbedtls_test_srv_crt_rsa_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( ( ret = mbedtls_pk_parse_key( &pkey, - (const unsigned char *) mbedtls_test_srv_key_rsa, - mbedtls_test_srv_key_rsa_len, NULL, 0, - rng_get, &rng ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_key(&pkey, + (const unsigned char *) mbedtls_test_srv_key_rsa, + mbedtls_test_srv_key_rsa_len, NULL, 0, + rng_get, &rng)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_key returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } key_cert_init = 2; #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECDSA_C) - if( ( ret = mbedtls_x509_crt_parse( &srvcert2, - (const unsigned char *) mbedtls_test_srv_crt_ec, - mbedtls_test_srv_crt_ec_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! x509_crt_parse2 returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_x509_crt_parse(&srvcert2, + (const unsigned char *) mbedtls_test_srv_crt_ec, + mbedtls_test_srv_crt_ec_len)) != 0) { + mbedtls_printf(" failed\n ! x509_crt_parse2 returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - if( ( ret = mbedtls_pk_parse_key( &pkey2, - (const unsigned char *) mbedtls_test_srv_key_ec, - mbedtls_test_srv_key_ec_len, NULL, 0, - rng_get, &rng ) ) != 0 ) - { - mbedtls_printf( " failed\n ! pk_parse_key2 returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_pk_parse_key(&pkey2, + (const unsigned char *) mbedtls_test_srv_key_ec, + mbedtls_test_srv_key_ec_len, NULL, 0, + rng_get, &rng)) != 0) { + mbedtls_printf(" failed\n ! pk_parse_key2 returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } key_cert_init2 = 2; @@ -2808,25 +2654,22 @@ int main( int argc, char *argv[] ) } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.key_opaque != 0 ) - { + if (opt.key_opaque != 0) { psa_algorithm_t psa_alg, psa_alg2 = PSA_ALG_NONE; psa_key_usage_t psa_usage = 0; - if( key_opaque_set_alg_usage( opt.key1_opaque_alg1, - opt.key1_opaque_alg2, - &psa_alg, &psa_alg2, - &psa_usage, - mbedtls_pk_get_type( &pkey ) ) == 0 ) - { - ret = mbedtls_pk_wrap_as_opaque( &pkey, &key_slot, - psa_alg, psa_usage, psa_alg2 ); + if (key_opaque_set_alg_usage(opt.key1_opaque_alg1, + opt.key1_opaque_alg2, + &psa_alg, &psa_alg2, + &psa_usage, + mbedtls_pk_get_type(&pkey)) == 0) { + ret = mbedtls_pk_wrap_as_opaque(&pkey, &key_slot, + psa_alg, psa_usage, psa_alg2); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! " - "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", - (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! " + "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } @@ -2834,76 +2677,70 @@ int main( int argc, char *argv[] ) psa_alg = PSA_ALG_NONE; psa_alg2 = PSA_ALG_NONE; psa_usage = 0; - if( key_opaque_set_alg_usage( opt.key2_opaque_alg1, - opt.key2_opaque_alg2, - &psa_alg, &psa_alg2, - &psa_usage, - mbedtls_pk_get_type( &pkey2 ) ) == 0 ) - { - ret = mbedtls_pk_wrap_as_opaque( &pkey2, &key_slot2, - psa_alg, psa_usage, psa_alg2 ); + if (key_opaque_set_alg_usage(opt.key2_opaque_alg1, + opt.key2_opaque_alg2, + &psa_alg, &psa_alg2, + &psa_usage, + mbedtls_pk_get_type(&pkey2)) == 0) { + ret = mbedtls_pk_wrap_as_opaque(&pkey2, &key_slot2, + psa_alg, psa_usage, psa_alg2); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! " - "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", - (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! " + "mbedtls_pk_wrap_as_opaque returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_printf( " ok (key types: %s, %s)\n", - key_cert_init ? mbedtls_pk_get_name( &pkey ) : "none", - key_cert_init2 ? mbedtls_pk_get_name( &pkey2 ) : "none" ); + mbedtls_printf(" ok (key types: %s, %s)\n", + key_cert_init ? mbedtls_pk_get_name(&pkey) : "none", + key_cert_init2 ? mbedtls_pk_get_name(&pkey2) : "none"); #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) - if( opt.dhm_file != NULL ) - { - mbedtls_printf( " . Loading DHM parameters..." ); - fflush( stdout ); + if (opt.dhm_file != NULL) { + mbedtls_printf(" . Loading DHM parameters..."); + fflush(stdout); - if( ( ret = mbedtls_dhm_parse_dhmfile( &dhm, opt.dhm_file ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_dhm_parse_dhmfile returned -0x%04X\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_dhm_parse_dhmfile(&dhm, opt.dhm_file)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_dhm_parse_dhmfile returned -0x%04X\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif #if defined(SNI_OPTION) - if( opt.sni != NULL ) - { - mbedtls_printf( " . Setting up SNI information..." ); - fflush( stdout ); + if (opt.sni != NULL) { + mbedtls_printf(" . Setting up SNI information..."); + fflush(stdout); - if( ( sni_info = sni_parse( opt.sni ) ) == NULL ) - { - mbedtls_printf( " failed\n" ); + if ((sni_info = sni_parse(opt.sni)) == NULL) { + mbedtls_printf(" failed\n"); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* SNI_OPTION */ /* * 2. Setup stuff */ - mbedtls_printf( " . Setting up the SSL/TLS structure..." ); - fflush( stdout ); + mbedtls_printf(" . Setting up the SSL/TLS structure..."); + fflush(stdout); - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_SERVER, - opt.transport, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_SERVER, + opt.transport, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } @@ -2911,26 +2748,26 @@ int main( int argc, char *argv[] ) /* The default algorithms profile disables SHA-1, but our tests still rely on it heavily. Hence we allow it here. A real-world server should use the default profile unless there is a good reason not to. */ - if( opt.allow_sha1 > 0 ) - { - crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA1 ); - mbedtls_ssl_conf_cert_profile( &conf, &crt_profile_for_test ); - mbedtls_ssl_conf_sig_algs( &conf, ssl_sig_algs_for_test ); + if (opt.allow_sha1 > 0) { + crt_profile_for_test.allowed_mds |= MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1); + mbedtls_ssl_conf_cert_profile(&conf, &crt_profile_for_test); + mbedtls_ssl_conf_sig_algs(&conf, ssl_sig_algs_for_test); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - if( opt.auth_mode != DFL_AUTH_MODE ) - mbedtls_ssl_conf_authmode( &conf, opt.auth_mode ); + if (opt.auth_mode != DFL_AUTH_MODE) { + mbedtls_ssl_conf_authmode(&conf, opt.auth_mode); + } - if( opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST ) - mbedtls_ssl_conf_cert_req_ca_list( &conf, opt.cert_req_ca_list ); + if (opt.cert_req_ca_list != DFL_CERT_REQ_CA_LIST) { + mbedtls_ssl_conf_cert_req_ca_list(&conf, opt.cert_req_ca_list); + } #if defined(MBEDTLS_SSL_EARLY_DATA) - mbedtls_ssl_tls13_conf_early_data( &conf, tls13_early_data_enabled ); - if( tls13_early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED ) - { + mbedtls_ssl_tls13_conf_early_data(&conf, tls13_early_data_enabled); + if (tls13_early_data_enabled == MBEDTLS_SSL_EARLY_DATA_ENABLED) { mbedtls_ssl_tls13_conf_max_early_data_size( - &conf, opt.max_early_data_size ); + &conf, opt.max_early_data_size); } #endif /* MBEDTLS_SSL_EARLY_DATA */ @@ -2938,178 +2775,172 @@ int main( int argc, char *argv[] ) /* exercise setting DN hints for server certificate request * (Intended for use where the client cert expected has been signed by * a specific CA which is an intermediate in a CA chain, not the root) */ - if( opt.cert_req_dn_hint == 2 && key_cert_init2 ) - mbedtls_ssl_conf_dn_hints( &conf, &srvcert2 ); + if (opt.cert_req_dn_hint == 2 && key_cert_init2) { + mbedtls_ssl_conf_dn_hints(&conf, &srvcert2); + } #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX ) - mbedtls_ssl_conf_handshake_timeout( &conf, opt.hs_to_min, opt.hs_to_max ); + if (opt.hs_to_min != DFL_HS_TO_MIN || opt.hs_to_max != DFL_HS_TO_MAX) { + mbedtls_ssl_conf_handshake_timeout(&conf, opt.hs_to_min, opt.hs_to_max); + } - if( opt.dgram_packing != DFL_DGRAM_PACKING ) - mbedtls_ssl_set_datagram_packing( &ssl, opt.dgram_packing ); + if (opt.dgram_packing != DFL_DGRAM_PACKING) { + mbedtls_ssl_set_datagram_packing(&ssl, opt.dgram_packing); + } #endif /* MBEDTLS_SSL_PROTO_DTLS */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - if( ( ret = mbedtls_ssl_conf_max_frag_len( &conf, opt.mfl_code ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_conf_max_frag_len(&conf, opt.mfl_code)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_max_frag_len returned %d\n\n", ret); goto exit; } #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( opt.cid_enabled == 1 || opt.cid_enabled_renego == 1 ) - { - if( opt.cid_enabled == 1 && + if (opt.cid_enabled == 1 || opt.cid_enabled_renego == 1) { + if (opt.cid_enabled == 1 && opt.cid_enabled_renego == 1 && - cid_len != cid_renego_len ) - { - mbedtls_printf( "CID length must not change during renegotiation\n" ); + cid_len != cid_renego_len) { + mbedtls_printf("CID length must not change during renegotiation\n"); goto usage; } - if( opt.cid_enabled == 1 ) - ret = mbedtls_ssl_conf_cid( &conf, cid_len, - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ); - else - ret = mbedtls_ssl_conf_cid( &conf, cid_renego_len, - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ); + if (opt.cid_enabled == 1) { + ret = mbedtls_ssl_conf_cid(&conf, cid_len, + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE); + } else { + ret = mbedtls_ssl_conf_cid(&conf, cid_renego_len, + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE); + } - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n", - (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_cid_len returned -%#04x\n\n", + (unsigned int) -ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_DTLS_SRTP) - const mbedtls_ssl_srtp_profile forced_profile[] = { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET }; - if( opt.use_srtp == 1 ) - { - if( opt.force_srtp_profile != 0 ) - { - ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles( &conf, forced_profile ); - } - else - { - ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles( &conf, default_profiles ); + const mbedtls_ssl_srtp_profile forced_profile[] = + { opt.force_srtp_profile, MBEDTLS_TLS_SRTP_UNSET }; + if (opt.use_srtp == 1) { + if (opt.force_srtp_profile != 0) { + ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, forced_profile); + } else { + ret = mbedtls_ssl_conf_dtls_srtp_protection_profiles(&conf, default_profiles); } - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n", ret ); + if (ret != 0) { + mbedtls_printf( + " failed\n ! mbedtls_ssl_conf_dtls_srtp_protection_profiles returned %d\n\n", + ret); goto exit; } - mbedtls_ssl_conf_srtp_mki_value_supported( &conf, - opt.support_mki ? - MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED : - MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED ); + mbedtls_ssl_conf_srtp_mki_value_supported(&conf, + opt.support_mki ? + MBEDTLS_SSL_DTLS_SRTP_MKI_SUPPORTED : + MBEDTLS_SSL_DTLS_SRTP_MKI_UNSUPPORTED); - } - else if( opt.force_srtp_profile != 0 ) - { - mbedtls_printf( " failed\n ! must enable use_srtp to force srtp profile\n\n" ); + } else if (opt.force_srtp_profile != 0) { + mbedtls_printf(" failed\n ! must enable use_srtp to force srtp profile\n\n"); goto exit; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - if( opt.extended_ms != DFL_EXTENDED_MS ) - mbedtls_ssl_conf_extended_master_secret( &conf, opt.extended_ms ); + if (opt.extended_ms != DFL_EXTENDED_MS) { + mbedtls_ssl_conf_extended_master_secret(&conf, opt.extended_ms); + } #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - if( opt.etm != DFL_ETM ) - mbedtls_ssl_conf_encrypt_then_mac( &conf, opt.etm ); + if (opt.etm != DFL_ETM) { + mbedtls_ssl_conf_encrypt_then_mac(&conf, opt.etm); + } #endif #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - if( ( ret = mbedtls_ssl_conf_alpn_protocols( &conf, alpn_list ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", ret ); + if (opt.alpn_string != NULL) { + if ((ret = mbedtls_ssl_conf_alpn_protocols(&conf, alpn_list)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_alpn_protocols returned %d\n\n", ret); goto exit; } + } #endif - if (opt.reproducible) - { + if (opt.reproducible) { #if defined(MBEDTLS_HAVE_TIME) #if defined(MBEDTLS_PLATFORM_TIME_ALT) - mbedtls_platform_set_time( dummy_constant_time ); + mbedtls_platform_set_time(dummy_constant_time); #else - fprintf( stderr, "Warning: reproducible option used without constant time\n" ); + fprintf(stderr, "Warning: reproducible option used without constant time\n"); #endif #endif /* MBEDTLS_HAVE_TIME */ } - mbedtls_ssl_conf_rng( &conf, rng_get, &rng ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, rng_get, &rng); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); #if defined(MBEDTLS_SSL_CACHE_C) - if( opt.cache_max != -1 ) - mbedtls_ssl_cache_set_max_entries( &cache, opt.cache_max ); + if (opt.cache_max != -1) { + mbedtls_ssl_cache_set_max_entries(&cache, opt.cache_max); + } #if defined(MBEDTLS_HAVE_TIME) - if( opt.cache_timeout != -1 ) - mbedtls_ssl_cache_set_timeout( &cache, opt.cache_timeout ); + if (opt.cache_timeout != -1) { + mbedtls_ssl_cache_set_timeout(&cache, opt.cache_timeout); + } #endif - mbedtls_ssl_conf_session_cache( &conf, &cache, + mbedtls_ssl_conf_session_cache(&conf, &cache, mbedtls_ssl_cache_get, - mbedtls_ssl_cache_set ); + mbedtls_ssl_cache_set); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - if( opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) - { + if (opt.tickets != MBEDTLS_SSL_SESSION_TICKETS_DISABLED) { #if defined(MBEDTLS_HAVE_TIME) - if( opt.dummy_ticket ) - { - mbedtls_ssl_conf_session_tickets_cb( &conf, - dummy_ticket_write, - dummy_ticket_parse, - NULL ); - } - else + if (opt.dummy_ticket) { + mbedtls_ssl_conf_session_tickets_cb(&conf, + dummy_ticket_write, + dummy_ticket_parse, + NULL); + } else #endif /* MBEDTLS_HAVE_TIME */ { - if( ( ret = mbedtls_ssl_ticket_setup( &ticket_ctx, - rng_get, &rng, - opt.ticket_aead, - opt.ticket_timeout ) ) != 0 ) - { + if ((ret = mbedtls_ssl_ticket_setup(&ticket_ctx, + rng_get, &rng, + opt.ticket_aead, + opt.ticket_timeout)) != 0) { mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_setup returned %d\n\n", - ret ); + ret); goto exit; } - mbedtls_ssl_conf_session_tickets_cb( &conf, - mbedtls_ssl_ticket_write, - mbedtls_ssl_ticket_parse, - &ticket_ctx ); + mbedtls_ssl_conf_session_tickets_cb(&conf, + mbedtls_ssl_ticket_write, + mbedtls_ssl_ticket_parse, + &ticket_ctx); } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_conf_new_session_tickets( &conf, opt.tickets ); + mbedtls_ssl_conf_new_session_tickets(&conf, opt.tickets); #endif /* exercise manual ticket rotation (not required for typical use) * (used for external synchronization of session ticket encryption keys) */ - if( opt.ticket_rotate ) { + if (opt.ticket_rotate) { unsigned char kbuf[MBEDTLS_SSL_TICKET_MAX_KEY_BYTES]; unsigned char name[MBEDTLS_SSL_TICKET_KEY_NAME_BYTES]; - if( ( ret = rng_get( &rng, name, sizeof( name ) ) ) != 0 || - ( ret = rng_get( &rng, kbuf, sizeof( kbuf ) ) ) != 0 || - ( ret = mbedtls_ssl_ticket_rotate( &ticket_ctx, - name, sizeof(name), kbuf, sizeof(kbuf), - opt.ticket_timeout ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_ticket_rotate returned %d\n\n", ret ); + if ((ret = rng_get(&rng, name, sizeof(name))) != 0 || + (ret = rng_get(&rng, kbuf, sizeof(kbuf))) != 0 || + (ret = mbedtls_ssl_ticket_rotate(&ticket_ctx, + name, sizeof(name), kbuf, sizeof(kbuf), + opt.ticket_timeout)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_ticket_rotate returned %d\n\n", ret); goto exit; } } @@ -3117,175 +2948,157 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { #if defined(MBEDTLS_SSL_COOKIE_C) - if( opt.cookies > 0 ) - { - if( ( ret = mbedtls_ssl_cookie_setup( &cookie_ctx, - rng_get, &rng ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret ); + if (opt.cookies > 0) { + if ((ret = mbedtls_ssl_cookie_setup(&cookie_ctx, + rng_get, &rng)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_cookie_setup returned %d\n\n", ret); goto exit; } - mbedtls_ssl_conf_dtls_cookies( &conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, - &cookie_ctx ); - } - else + mbedtls_ssl_conf_dtls_cookies(&conf, mbedtls_ssl_cookie_write, mbedtls_ssl_cookie_check, + &cookie_ctx); + } else #endif /* MBEDTLS_SSL_COOKIE_C */ #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - if( opt.cookies == 0 ) - { - mbedtls_ssl_conf_dtls_cookies( &conf, NULL, NULL, NULL ); - } - else + if (opt.cookies == 0) { + mbedtls_ssl_conf_dtls_cookies(&conf, NULL, NULL, NULL); + } else #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ { ; /* Nothing to do */ } #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) - if( opt.anti_replay != DFL_ANTI_REPLAY ) - mbedtls_ssl_conf_dtls_anti_replay( &conf, opt.anti_replay ); + if (opt.anti_replay != DFL_ANTI_REPLAY) { + mbedtls_ssl_conf_dtls_anti_replay(&conf, opt.anti_replay); + } #endif - if( opt.badmac_limit != DFL_BADMAC_LIMIT ) - mbedtls_ssl_conf_dtls_badmac_limit( &conf, opt.badmac_limit ); + if (opt.badmac_limit != DFL_BADMAC_LIMIT) { + mbedtls_ssl_conf_dtls_badmac_limit(&conf, opt.badmac_limit); + } } #endif /* MBEDTLS_SSL_PROTO_DTLS */ - if( opt.force_ciphersuite[0] != DFL_FORCE_CIPHER ) - mbedtls_ssl_conf_ciphersuites( &conf, opt.force_ciphersuite ); + if (opt.force_ciphersuite[0] != DFL_FORCE_CIPHER) { + mbedtls_ssl_conf_ciphersuites(&conf, opt.force_ciphersuite); + } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - mbedtls_ssl_conf_tls13_key_exchange_modes( &conf, opt.tls13_kex_modes ); + mbedtls_ssl_conf_tls13_key_exchange_modes(&conf, opt.tls13_kex_modes); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ - if( opt.allow_legacy != DFL_ALLOW_LEGACY ) - mbedtls_ssl_conf_legacy_renegotiation( &conf, opt.allow_legacy ); + if (opt.allow_legacy != DFL_ALLOW_LEGACY) { + mbedtls_ssl_conf_legacy_renegotiation(&conf, opt.allow_legacy); + } #if defined(MBEDTLS_SSL_RENEGOTIATION) - mbedtls_ssl_conf_renegotiation( &conf, opt.renegotiation ); + mbedtls_ssl_conf_renegotiation(&conf, opt.renegotiation); - if( opt.renego_delay != DFL_RENEGO_DELAY ) - mbedtls_ssl_conf_renegotiation_enforced( &conf, opt.renego_delay ); + if (opt.renego_delay != DFL_RENEGO_DELAY) { + mbedtls_ssl_conf_renegotiation_enforced(&conf, opt.renego_delay); + } - if( opt.renego_period != DFL_RENEGO_PERIOD ) - { - PUT_UINT64_BE( renego_period, opt.renego_period, 0 ); - mbedtls_ssl_conf_renegotiation_period( &conf, renego_period ); + if (opt.renego_period != DFL_RENEGO_PERIOD) { + PUT_UINT64_BE(renego_period, opt.renego_period, 0); + mbedtls_ssl_conf_renegotiation_period(&conf, renego_period); } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( strcmp( opt.ca_path, "none" ) != 0 && - strcmp( opt.ca_file, "none" ) != 0 ) - { + if (strcmp(opt.ca_path, "none") != 0 && + strcmp(opt.ca_file, "none") != 0) { #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) - if( opt.ca_callback != 0 ) - mbedtls_ssl_conf_ca_cb( &conf, ca_callback, &cacert); - else + if (opt.ca_callback != 0) { + mbedtls_ssl_conf_ca_cb(&conf, ca_callback, &cacert); + } else #endif - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); } - if( key_cert_init ) - { + if (key_cert_init) { mbedtls_pk_context *pk = &pkey; #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( opt.async_private_delay1 >= 0 ) - { - ret = ssl_async_set_key( &ssl_async_keys, &srvcert, pk, 0, - opt.async_private_delay1 ); - if( ret < 0 ) - { - mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n", - ret ); + if (opt.async_private_delay1 >= 0) { + ret = ssl_async_set_key(&ssl_async_keys, &srvcert, pk, 0, + opt.async_private_delay1); + if (ret < 0) { + mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n", + ret); goto exit; } pk = NULL; } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert, pk ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert, pk)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } } - if( key_cert_init2 ) - { + if (key_cert_init2) { mbedtls_pk_context *pk = &pkey2; #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( opt.async_private_delay2 >= 0 ) - { - ret = ssl_async_set_key( &ssl_async_keys, &srvcert2, pk, 0, - opt.async_private_delay2 ); - if( ret < 0 ) - { - mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n", - ret ); + if (opt.async_private_delay2 >= 0) { + ret = ssl_async_set_key(&ssl_async_keys, &srvcert2, pk, 0, + opt.async_private_delay2); + if (ret < 0) { + mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n", + ret); goto exit; } pk = NULL; } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( ( ret = mbedtls_ssl_conf_own_cert( &conf, &srvcert2, pk ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_conf_own_cert(&conf, &srvcert2, pk)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_own_cert returned %d\n\n", ret); goto exit; } } #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( opt.async_operations[0] != '-' ) - { + if (opt.async_operations[0] != '-') { mbedtls_ssl_async_sign_t *sign = NULL; mbedtls_ssl_async_decrypt_t *decrypt = NULL; const char *r; - for( r = opt.async_operations; *r; r++ ) - { - switch( *r ) - { - case 'd': - decrypt = ssl_async_decrypt; - break; - case 's': - sign = ssl_async_sign; - break; + for (r = opt.async_operations; *r; r++) { + switch (*r) { + case 'd': + decrypt = ssl_async_decrypt; + break; + case 's': + sign = ssl_async_sign; + break; } } - ssl_async_keys.inject_error = ( opt.async_private_error < 0 ? - - opt.async_private_error : - opt.async_private_error ); + ssl_async_keys.inject_error = (opt.async_private_error < 0 ? + -opt.async_private_error : + opt.async_private_error); ssl_async_keys.f_rng = rng_get; ssl_async_keys.p_rng = &rng; - mbedtls_ssl_conf_async_private_cb( &conf, - sign, - decrypt, - ssl_async_resume, - ssl_async_cancel, - &ssl_async_keys ); + mbedtls_ssl_conf_async_private_cb(&conf, + sign, + decrypt, + ssl_async_resume, + ssl_async_cancel, + &ssl_async_keys); } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(SNI_OPTION) - if( opt.sni != NULL ) - { - mbedtls_ssl_conf_sni( &conf, sni_callback, sni_info ); - mbedtls_ssl_conf_cert_cb( &conf, cert_callback ); + if (opt.sni != NULL) { + mbedtls_ssl_conf_sni(&conf, sni_callback, sni_info); + mbedtls_ssl_conf_cert_cb(&conf, cert_callback); #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( opt.async_private_delay2 >= 0 ) - { + if (opt.async_private_delay2 >= 0) { sni_entry *cur; - for( cur = sni_info; cur != NULL; cur = cur->next ) - { - ret = ssl_async_set_key( &ssl_async_keys, - cur->cert, cur->key, 1, - opt.async_private_delay2 ); - if( ret < 0 ) - { - mbedtls_printf( " Test error: ssl_async_set_key failed (%d)\n", - ret ); + for (cur = sni_info; cur != NULL; cur = cur->next) { + ret = ssl_async_set_key(&ssl_async_keys, + cur->cert, cur->key, 1, + opt.async_private_delay2); + if (ret < 0) { + mbedtls_printf(" Test error: ssl_async_set_key failed (%d)\n", + ret); goto exit; } cur->key = NULL; @@ -3296,71 +3109,61 @@ int main( int argc, char *argv[] ) #endif #if defined(MBEDTLS_ECP_C) - if( opt.curves != NULL && - strcmp( opt.curves, "default" ) != 0 ) - { - mbedtls_ssl_conf_groups( &conf, group_list ); + if (opt.curves != NULL && + strcmp(opt.curves, "default") != 0) { + mbedtls_ssl_conf_groups(&conf, group_list); } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( opt.sig_algs != NULL ) - mbedtls_ssl_conf_sig_algs( &conf, sig_alg_list ); + if (opt.sig_algs != NULL) { + mbedtls_ssl_conf_sig_algs(&conf, sig_alg_list); + } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) - if( strlen( opt.psk ) != 0 && strlen( opt.psk_identity ) != 0 ) - { + if (strlen(opt.psk) != 0 && strlen(opt.psk_identity) != 0) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { + if (opt.psk_opaque != 0) { /* The algorithm has already been determined earlier. */ - status = psa_setup_psk_key_slot( &psk_slot, alg, psk, psk_len ); - if( status != PSA_SUCCESS ) - { - fprintf( stderr, "SETUP FAIL\n" ); + status = psa_setup_psk_key_slot(&psk_slot, alg, psk, psk_len); + if (status != PSA_SUCCESS) { + fprintf(stderr, "SETUP FAIL\n"); ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; goto exit; } - if( ( ret = mbedtls_ssl_conf_psk_opaque( &conf, psk_slot, - (const unsigned char *) opt.psk_identity, - strlen( opt.psk_identity ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n", - ret ); + if ((ret = mbedtls_ssl_conf_psk_opaque(&conf, psk_slot, + (const unsigned char *) opt.psk_identity, + strlen(opt.psk_identity))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_conf_psk_opaque returned %d\n\n", + ret); goto exit; } - } - else + } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( psk_len > 0 ) - { - ret = mbedtls_ssl_conf_psk( &conf, psk, psk_len, - (const unsigned char *) opt.psk_identity, - strlen( opt.psk_identity ) ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n mbedtls_ssl_conf_psk returned -0x%04X\n\n", (unsigned int) -ret ); + if (psk_len > 0) { + ret = mbedtls_ssl_conf_psk(&conf, psk, psk_len, + (const unsigned char *) opt.psk_identity, + strlen(opt.psk_identity)); + if (ret != 0) { + mbedtls_printf(" failed\n mbedtls_ssl_conf_psk returned -0x%04X\n\n", + (unsigned int) -ret); goto exit; } } } - if( opt.psk_list != NULL ) - { + if (opt.psk_list != NULL) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_list_opaque != 0 ) - { + if (opt.psk_list_opaque != 0) { psk_entry *cur_psk; - for( cur_psk = psk_info; cur_psk != NULL; cur_psk = cur_psk->next ) - { + for (cur_psk = psk_info; cur_psk != NULL; cur_psk = cur_psk->next) { - status = psa_setup_psk_key_slot( &cur_psk->slot, alg, - cur_psk->key, - cur_psk->key_len ); - if( status != PSA_SUCCESS ) - { + status = psa_setup_psk_key_slot(&cur_psk->slot, alg, + cur_psk->key, + cur_psk->key_len); + if (status != PSA_SUCCESS) { ret = MBEDTLS_ERR_SSL_HW_ACCEL_FAILED; goto exit; } @@ -3368,7 +3171,7 @@ int main( int argc, char *argv[] ) } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_ssl_conf_psk_cb( &conf, psk_callback, psk_info ); + mbedtls_ssl_conf_psk_cb(&conf, psk_callback, psk_info); } #endif @@ -3377,213 +3180,201 @@ int main( int argc, char *argv[] ) * Use different group than default DHM group */ #if defined(MBEDTLS_FS_IO) - if( opt.dhm_file != NULL ) - ret = mbedtls_ssl_conf_dh_param_ctx( &conf, &dhm ); + if (opt.dhm_file != NULL) { + ret = mbedtls_ssl_conf_dh_param_ctx(&conf, &dhm); + } #endif - if( ret != 0 ) - { - mbedtls_printf( " failed\n mbedtls_ssl_conf_dh_param returned -0x%04X\n\n", (unsigned int) -ret ); + if (ret != 0) { + mbedtls_printf(" failed\n mbedtls_ssl_conf_dh_param returned -0x%04X\n\n", + (unsigned int) -ret); goto exit; } #endif - if( opt.min_version != DFL_MIN_VERSION ) - mbedtls_ssl_conf_min_tls_version( &conf, opt.min_version ); + if (opt.min_version != DFL_MIN_VERSION) { + mbedtls_ssl_conf_min_tls_version(&conf, opt.min_version); + } - if( opt.max_version != DFL_MIN_VERSION ) - mbedtls_ssl_conf_max_tls_version( &conf, opt.max_version ); + if (opt.max_version != DFL_MIN_VERSION) { + mbedtls_ssl_conf_max_tls_version(&conf, opt.max_version); + } - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned -0x%x\n\n", (unsigned int) -ret); goto exit; } - if( opt.eap_tls != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, eap_tls_key_derivation, - &eap_tls_keying ); + if (opt.eap_tls != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, eap_tls_key_derivation, + &eap_tls_keying); + } else if (opt.nss_keylog != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, + nss_keylog_export, + NULL); } - else if( opt.nss_keylog != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, - nss_keylog_export, - NULL ); - } -#if defined( MBEDTLS_SSL_DTLS_SRTP ) - else if( opt.use_srtp != 0 ) - { - mbedtls_ssl_set_export_keys_cb( &ssl, dtls_srtp_key_derivation, - &dtls_srtp_keying ); +#if defined(MBEDTLS_SSL_DTLS_SRTP) + else if (opt.use_srtp != 0) { + mbedtls_ssl_set_export_keys_cb(&ssl, dtls_srtp_key_derivation, + &dtls_srtp_keying); } #endif /* MBEDTLS_SSL_DTLS_SRTP */ io_ctx.ssl = &ssl; io_ctx.net = &client_fd; - mbedtls_ssl_set_bio( &ssl, &io_ctx, send_cb, recv_cb, - opt.nbio == 0 ? recv_timeout_cb : NULL ); + mbedtls_ssl_set_bio(&ssl, &io_ctx, send_cb, recv_cb, + opt.nbio == 0 ? recv_timeout_cb : NULL); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled, - cid, cid_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n", - ret ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled, + cid, cid_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n", + ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_PROTO_DTLS) - if( opt.dtls_mtu != DFL_DTLS_MTU ) - mbedtls_ssl_set_mtu( &ssl, opt.dtls_mtu ); + if (opt.dtls_mtu != DFL_DTLS_MTU) { + mbedtls_ssl_set_mtu(&ssl, opt.dtls_mtu); + } #endif #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &ssl, &timer, mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 3. Setup the listening TCP socket */ - mbedtls_printf( " . Bind on %s://%s:%s/ ...", - opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp", - opt.server_addr ? opt.server_addr : "*", - opt.server_port ); - fflush( stdout ); + mbedtls_printf(" . Bind on %s://%s:%s/ ...", + opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? "tcp" : "udp", + opt.server_addr ? opt.server_addr : "*", + opt.server_port); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, opt.server_addr, opt.server_port, - opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? - MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_net_bind(&listen_fd, opt.server_addr, opt.server_port, + opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ? + MBEDTLS_NET_PROTO_TCP : MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_bind returned -0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); reset: #if !defined(_WIN32) - if( received_sigterm ) - { - mbedtls_printf( " interrupted by SIGTERM (not in net_accept())\n" ); - if( ret == MBEDTLS_ERR_NET_INVALID_CONTEXT ) + if (received_sigterm) { + mbedtls_printf(" interrupted by SIGTERM (not in net_accept())\n"); + if (ret == MBEDTLS_ERR_NET_INVALID_CONTEXT) { ret = 0; + } goto exit; } #endif - if( ret == MBEDTLS_ERR_SSL_CLIENT_RECONNECT ) - { - mbedtls_printf( " ! Client initiated reconnection from same port\n" ); + if (ret == MBEDTLS_ERR_SSL_CLIENT_RECONNECT) { + mbedtls_printf(" ! Client initiated reconnection from same port\n"); goto handshake; } #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: %d - %s\n\n", ret, error_buf); } #endif - mbedtls_net_free( &client_fd ); + mbedtls_net_free(&client_fd); - mbedtls_ssl_session_reset( &ssl ); + mbedtls_ssl_session_reset(&ssl); /* * 3. Wait until a client connects */ - mbedtls_printf( " . Waiting for a remote connection ..." ); - fflush( stdout ); + mbedtls_printf(" . Waiting for a remote connection ..."); + fflush(stdout); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - client_ip, sizeof( client_ip ), &cliip_len ) ) != 0 ) - { + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + client_ip, sizeof(client_ip), &cliip_len)) != 0) { #if !defined(_WIN32) - if( received_sigterm ) - { - mbedtls_printf( " interrupted by SIGTERM (in net_accept())\n" ); - if( ret == MBEDTLS_ERR_NET_ACCEPT_FAILED ) + if (received_sigterm) { + mbedtls_printf(" interrupted by SIGTERM (in net_accept())\n"); + if (ret == MBEDTLS_ERR_NET_ACCEPT_FAILED) { ret = 0; + } goto exit; } #endif - mbedtls_printf( " failed\n ! mbedtls_net_accept returned -0x%x\n\n", (unsigned int) -ret ); + mbedtls_printf(" failed\n ! mbedtls_net_accept returned -0x%x\n\n", (unsigned int) -ret); goto exit; } - if( opt.nbio > 0 ) - ret = mbedtls_net_set_nonblock( &client_fd ); - else - ret = mbedtls_net_set_block( &client_fd ); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! net_set_(non)block() returned -0x%x\n\n", (unsigned int) -ret ); + if (opt.nbio > 0) { + ret = mbedtls_net_set_nonblock(&client_fd); + } else { + ret = mbedtls_net_set_block(&client_fd); + } + if (ret != 0) { + mbedtls_printf(" failed\n ! net_set_(non)block() returned -0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_ssl_conf_read_timeout( &conf, opt.read_timeout ); + mbedtls_ssl_conf_read_timeout(&conf, opt.read_timeout); #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_set_client_transport_id( &ssl, - client_ip, cliip_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", - (unsigned int) -ret ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_set_client_transport_id(&ssl, + client_ip, cliip_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_client_transport_id() returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - if( opt.ecjpake_pw != DFL_ECJPAKE_PW ) - { + if (opt.ecjpake_pw != DFL_ECJPAKE_PW) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) - { + if (opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); - status = psa_import_key( &attributes, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ), - &ecjpake_pw_slot ); - if( status != PSA_SUCCESS ) - { - mbedtls_printf( " failed\n ! psa_import_key returned %d\n\n", - status ); + status = psa_import_key(&attributes, + (const unsigned char *) opt.ecjpake_pw, + strlen(opt.ecjpake_pw), + &ecjpake_pw_slot); + if (status != PSA_SUCCESS) { + mbedtls_printf(" failed\n ! psa_import_key returned %d\n\n", + status); goto exit; } - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, - ecjpake_pw_slot ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hs_ecjpake_password_opaque(&ssl, + ecjpake_pw_slot)) != 0) { + mbedtls_printf( + " failed\n ! mbedtls_ssl_set_hs_ecjpake_password_opaque returned %d\n\n", + ret); goto exit; } - mbedtls_printf( "using opaque password\n"); - } - else + mbedtls_printf("using opaque password\n"); + } else #endif /* MBEDTLS_USE_PSA_CRYPTO */ { - if( ( ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, - (const unsigned char *) opt.ecjpake_pw, - strlen( opt.ecjpake_pw ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hs_ecjpake_password(&ssl, + (const unsigned char *) opt.ecjpake_pw, + strlen(opt.ecjpake_pw))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hs_ecjpake_password returned %d\n\n", + ret); goto exit; } } @@ -3597,109 +3388,105 @@ reset: * a specific CA which is an intermediate in a CA chain, not the root) * (Additionally, the CA choice would typically be influenced by SNI * if being set per-handshake using mbedtls_ssl_set_hs_dn_hints()) */ - if( opt.cert_req_dn_hint == 3 && key_cert_init2 ) - mbedtls_ssl_set_hs_dn_hints( &ssl, &srvcert2 ); + if (opt.cert_req_dn_hint == 3 && key_cert_init2) { + mbedtls_ssl_set_hs_dn_hints(&ssl, &srvcert2); + } #endif #endif - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 4. Handshake */ handshake: - mbedtls_printf( " . Performing the SSL/TLS handshake..." ); - fflush( stdout ); + mbedtls_printf(" . Performing the SSL/TLS handshake..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS && - ssl_async_keys.inject_error == SSL_ASYNC_INJECT_ERROR_CANCEL ) - { - mbedtls_printf( " cancelling on injected error\n" ); + if (ret == MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS && + ssl_async_keys.inject_error == SSL_ASYNC_INJECT_ERROR_CANCEL) { + mbedtls_printf(" cancelling on injected error\n"); break; } #endif /* MBEDTLS_SSL_ASYNC_PRIVATE */ - if( ! mbedtls_status_is_ssl_in_progress( ret ) ) + if (!mbedtls_status_is_ssl_in_progress(ret)) { break; + } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - ret = idle( &client_fd, &timer, ret ); + ret = idle(&client_fd, &timer, ret); #else - ret = idle( &client_fd, ret ); + ret = idle(&client_fd, ret); #endif - if( ret != 0 ) + if (ret != 0) { goto reset; + } } } - if( ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED ) - { - mbedtls_printf( " hello verification requested\n" ); + if (ret == MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) { + mbedtls_printf(" hello verification requested\n"); ret = 0; goto reset; - } - else if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", (unsigned int) -ret ); + } else if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned -0x%x\n\n", + (unsigned int) -ret); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - if( ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED ) - { + if (ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) { char vrfy_buf[512]; - flags = mbedtls_ssl_get_verify_result( &ssl ); + flags = mbedtls_ssl_get_verify_result(&ssl); - x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); + x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); - mbedtls_printf( "%s\n", vrfy_buf ); + mbedtls_printf("%s\n", vrfy_buf); } #endif #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - if( opt.async_private_error < 0 ) + if (opt.async_private_error < 0) { /* Injected error only the first time round, to test reset */ ssl_async_keys.inject_error = SSL_ASYNC_INJECT_ERROR_NONE; + } #endif goto reset; - } - else /* ret == 0 */ - { - int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl( &ssl ); + } else { /* ret == 0 */ + int suite_id = mbedtls_ssl_get_ciphersuite_id_from_ssl(&ssl); const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( suite_id ); + ciphersuite_info = mbedtls_ssl_ciphersuite_from_id(suite_id); - mbedtls_printf( " ok\n [ Protocol is %s ]\n" - " [ Ciphersuite is %s ]\n" - " [ Key size is %u ]\n", - mbedtls_ssl_get_version( &ssl ), - mbedtls_ssl_ciphersuite_get_name( ciphersuite_info ), - (unsigned int) - mbedtls_ssl_ciphersuite_get_cipher_key_bitlen( ciphersuite_info ) ); + mbedtls_printf(" ok\n [ Protocol is %s ]\n" + " [ Ciphersuite is %s ]\n" + " [ Key size is %u ]\n", + mbedtls_ssl_get_version(&ssl), + mbedtls_ssl_ciphersuite_get_name(ciphersuite_info), + (unsigned int) + mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(ciphersuite_info)); } - if( ( ret = mbedtls_ssl_get_record_expansion( &ssl ) ) >= 0 ) - mbedtls_printf( " [ Record expansion is %d ]\n", ret ); - else - mbedtls_printf( " [ Record expansion is unknown ]\n" ); + if ((ret = mbedtls_ssl_get_record_expansion(&ssl)) >= 0) { + mbedtls_printf(" [ Record expansion is %d ]\n", ret); + } else { + mbedtls_printf(" [ Record expansion is unknown ]\n"); + } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - mbedtls_printf( " [ Maximum incoming record payload length is %u ]\n", - (unsigned int) mbedtls_ssl_get_max_in_record_payload( &ssl ) ); - mbedtls_printf( " [ Maximum outgoing record payload length is %u ]\n", - (unsigned int) mbedtls_ssl_get_max_out_record_payload( &ssl ) ); + mbedtls_printf(" [ Maximum incoming record payload length is %u ]\n", + (unsigned int) mbedtls_ssl_get_max_in_record_payload(&ssl)); + mbedtls_printf(" [ Maximum outgoing record payload length is %u ]\n", + (unsigned int) mbedtls_ssl_get_max_out_record_payload(&ssl)); #endif #if defined(MBEDTLS_SSL_ALPN) - if( opt.alpn_string != NULL ) - { - const char *alp = mbedtls_ssl_get_alpn_protocol( &ssl ); - mbedtls_printf( " [ Application Layer Protocol is %s ]\n", - alp ? alp : "(none)" ); + if (opt.alpn_string != NULL) { + const char *alp = mbedtls_ssl_get_alpn_protocol(&ssl); + mbedtls_printf(" [ Application Layer Protocol is %s ]\n", + alp ? alp : "(none)"); } #endif @@ -3707,300 +3494,271 @@ handshake: /* * 5. Verify the client certificate */ - mbedtls_printf( " . Verifying peer X.509 certificate..." ); + mbedtls_printf(" . Verifying peer X.509 certificate..."); - if( ( flags = mbedtls_ssl_get_verify_result( &ssl ) ) != 0 ) - { + if ((flags = mbedtls_ssl_get_verify_result(&ssl)) != 0) { char vrfy_buf[512]; - mbedtls_printf( " failed\n" ); + mbedtls_printf(" failed\n"); - x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); - mbedtls_printf( "%s\n", vrfy_buf ); + x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); + mbedtls_printf("%s\n", vrfy_buf); + } else { + mbedtls_printf(" ok\n"); } - else - mbedtls_printf( " ok\n" ); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( mbedtls_ssl_get_peer_cert( &ssl ) != NULL ) - { + if (mbedtls_ssl_get_peer_cert(&ssl) != NULL) { char crt_buf[512]; - mbedtls_printf( " . Peer certificate information ...\n" ); - mbedtls_x509_crt_info( crt_buf, sizeof( crt_buf ), " ", - mbedtls_ssl_get_peer_cert( &ssl ) ); - mbedtls_printf( "%s\n", crt_buf ); + mbedtls_printf(" . Peer certificate information ...\n"); + mbedtls_x509_crt_info(crt_buf, sizeof(crt_buf), " ", + mbedtls_ssl_get_peer_cert(&ssl)); + mbedtls_printf("%s\n", crt_buf); } #endif /* MBEDTLS_X509_REMOVE_INFO */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - if( opt.eap_tls != 0 ) - { + if (opt.eap_tls != 0) { size_t j = 0; - if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, - eap_tls_keying.master_secret, - sizeof( eap_tls_keying.master_secret ), - eap_tls_label, - eap_tls_keying.randbytes, - sizeof( eap_tls_keying.randbytes ), - eap_tls_keymaterial, - sizeof( eap_tls_keymaterial ) ) ) - != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); + if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, + eap_tls_keying.master_secret, + sizeof(eap_tls_keying.master_secret), + eap_tls_label, + eap_tls_keying.randbytes, + sizeof(eap_tls_keying.randbytes), + eap_tls_keymaterial, + sizeof(eap_tls_keymaterial))) + != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); goto reset; } - mbedtls_printf( " EAP-TLS key material is:" ); - for( j = 0; j < sizeof( eap_tls_keymaterial ); j++ ) - { - if( j % 8 == 0 ) + mbedtls_printf(" EAP-TLS key material is:"); + for (j = 0; j < sizeof(eap_tls_keymaterial); j++) { + if (j % 8 == 0) { mbedtls_printf("\n "); - mbedtls_printf("%02x ", eap_tls_keymaterial[j] ); + } + mbedtls_printf("%02x ", eap_tls_keymaterial[j]); } mbedtls_printf("\n"); - if( ( ret = mbedtls_ssl_tls_prf( eap_tls_keying.tls_prf_type, NULL, 0, - eap_tls_label, - eap_tls_keying.randbytes, - sizeof( eap_tls_keying.randbytes ), - eap_tls_iv, - sizeof( eap_tls_iv ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); - goto reset; - } + if ((ret = mbedtls_ssl_tls_prf(eap_tls_keying.tls_prf_type, NULL, 0, + eap_tls_label, + eap_tls_keying.randbytes, + sizeof(eap_tls_keying.randbytes), + eap_tls_iv, + sizeof(eap_tls_iv))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); + goto reset; + } - mbedtls_printf( " EAP-TLS IV is:" ); - for( j = 0; j < sizeof( eap_tls_iv ); j++ ) - { - if( j % 8 == 0 ) + mbedtls_printf(" EAP-TLS IV is:"); + for (j = 0; j < sizeof(eap_tls_iv); j++) { + if (j % 8 == 0) { mbedtls_printf("\n "); - mbedtls_printf("%02x ", eap_tls_iv[j] ); + } + mbedtls_printf("%02x ", eap_tls_iv[j]); } mbedtls_printf("\n"); } -#if defined( MBEDTLS_SSL_DTLS_SRTP ) - else if( opt.use_srtp != 0 ) - { +#if defined(MBEDTLS_SSL_DTLS_SRTP) + else if (opt.use_srtp != 0) { size_t j = 0; mbedtls_dtls_srtp_info dtls_srtp_negotiation_result; - mbedtls_ssl_get_dtls_srtp_negotiation_result( &ssl, &dtls_srtp_negotiation_result ); + mbedtls_ssl_get_dtls_srtp_negotiation_result(&ssl, &dtls_srtp_negotiation_result); - if( dtls_srtp_negotiation_result.chosen_dtls_srtp_profile - == MBEDTLS_TLS_SRTP_UNSET ) - { - mbedtls_printf( " Unable to negotiate " - "the use of DTLS-SRTP\n" ); - } - else - { - if( ( ret = mbedtls_ssl_tls_prf( dtls_srtp_keying.tls_prf_type, - dtls_srtp_keying.master_secret, - sizeof( dtls_srtp_keying.master_secret ), - dtls_srtp_label, - dtls_srtp_keying.randbytes, - sizeof( dtls_srtp_keying.randbytes ), - dtls_srtp_key_material, - sizeof( dtls_srtp_key_material ) ) ) - != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", - (unsigned int) -ret ); + if (dtls_srtp_negotiation_result.chosen_dtls_srtp_profile + == MBEDTLS_TLS_SRTP_UNSET) { + mbedtls_printf(" Unable to negotiate " + "the use of DTLS-SRTP\n"); + } else { + if ((ret = mbedtls_ssl_tls_prf(dtls_srtp_keying.tls_prf_type, + dtls_srtp_keying.master_secret, + sizeof(dtls_srtp_keying.master_secret), + dtls_srtp_label, + dtls_srtp_keying.randbytes, + sizeof(dtls_srtp_keying.randbytes), + dtls_srtp_key_material, + sizeof(dtls_srtp_key_material))) + != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_tls_prf returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } - mbedtls_printf( " DTLS-SRTP key material is:" ); - for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ ) - { - if( j % 8 == 0 ) - mbedtls_printf( "\n " ); - mbedtls_printf( "%02x ", dtls_srtp_key_material[j] ); + mbedtls_printf(" DTLS-SRTP key material is:"); + for (j = 0; j < sizeof(dtls_srtp_key_material); j++) { + if (j % 8 == 0) { + mbedtls_printf("\n "); + } + mbedtls_printf("%02x ", dtls_srtp_key_material[j]); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); /* produce a less readable output used to perform automatic checks * - compare client and server output * - interop test with openssl which client produces this kind of output */ - mbedtls_printf( " Keying material: " ); - for( j = 0; j < sizeof( dtls_srtp_key_material ); j++ ) - { - mbedtls_printf( "%02X", dtls_srtp_key_material[j] ); + mbedtls_printf(" Keying material: "); + for (j = 0; j < sizeof(dtls_srtp_key_material); j++) { + mbedtls_printf("%02X", dtls_srtp_key_material[j]); } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); - if ( dtls_srtp_negotiation_result.mki_len > 0 ) - { - mbedtls_printf( " DTLS-SRTP mki value: " ); - for( j = 0; j < dtls_srtp_negotiation_result.mki_len; j++ ) - { - mbedtls_printf( "%02X", dtls_srtp_negotiation_result.mki_value[j] ); + if (dtls_srtp_negotiation_result.mki_len > 0) { + mbedtls_printf(" DTLS-SRTP mki value: "); + for (j = 0; j < dtls_srtp_negotiation_result.mki_len; j++) { + mbedtls_printf("%02X", dtls_srtp_negotiation_result.mki_value[j]); } + } else { + mbedtls_printf(" DTLS-SRTP no mki value negotiated"); } - else - { - mbedtls_printf( " DTLS-SRTP no mki value negotiated" ); - } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } } #endif /* MBEDTLS_SSL_DTLS_SRTP */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ret = report_cid_usage( &ssl, "initial handshake" ); - if( ret != 0 ) + ret = report_cid_usage(&ssl, "initial handshake"); + if (ret != 0) { goto exit; + } - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - if( ( ret = mbedtls_ssl_set_cid( &ssl, opt.cid_enabled_renego, - cid_renego, cid_renego_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_cid returned %d\n\n", - ret ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + if ((ret = mbedtls_ssl_set_cid(&ssl, opt.cid_enabled_renego, + cid_renego, cid_renego_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_cid returned %d\n\n", + ret); goto exit; } } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( ¤t_heap_memory, &heap_blocks ); - mbedtls_memory_buffer_alloc_max_get( &peak_heap_memory, &heap_blocks ); - mbedtls_printf( "Heap memory usage after handshake: %lu bytes. Peak memory usage was %lu\n", - (unsigned long) current_heap_memory, (unsigned long) peak_heap_memory ); + mbedtls_memory_buffer_alloc_cur_get(¤t_heap_memory, &heap_blocks); + mbedtls_memory_buffer_alloc_max_get(&peak_heap_memory, &heap_blocks); + mbedtls_printf("Heap memory usage after handshake: %lu bytes. Peak memory usage was %lu\n", + (unsigned long) current_heap_memory, (unsigned long) peak_heap_memory); #endif /* MBEDTLS_MEMORY_DEBUG */ - if( opt.exchanges == 0 ) + if (opt.exchanges == 0) { goto close_notify; + } exchanges_left = opt.exchanges; data_exchange: /* * 6. Read the HTTP Request */ - mbedtls_printf( " < Read from client:" ); - fflush( stdout ); + mbedtls_printf(" < Read from client:"); + fflush(stdout); /* * TLS and DTLS need different reading styles (stream vs datagram) */ - if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ) - { - do - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) { + do { int terminated = 0; len = opt.buffer_size; - memset( buf, 0, opt.buffer_size ); - ret = mbedtls_ssl_read( &ssl, buf, len ); + memset(buf, 0, opt.buffer_size); + ret = mbedtls_ssl_read(&ssl, buf, len); - if( mbedtls_status_is_ssl_in_progress( ret ) ) - { - if( opt.event == 1 /* level triggered IO */ ) - { + if (mbedtls_status_is_ssl_in_progress(ret)) { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &client_fd, &timer, ret ); + idle(&client_fd, &timer, ret); #else - idle( &client_fd, ret ); + idle(&client_fd, ret); #endif } continue; } - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); goto close_notify; case 0: case MBEDTLS_ERR_NET_CONN_RESET: - mbedtls_printf( " connection was reset by peer\n" ); + mbedtls_printf(" connection was reset by peer\n"); ret = MBEDTLS_ERR_NET_CONN_RESET; goto reset; default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret); goto reset; } } - if( mbedtls_ssl_get_bytes_avail( &ssl ) == 0 ) - { + if (mbedtls_ssl_get_bytes_avail(&ssl) == 0) { len = ret; buf[len] = '\0'; - mbedtls_printf( " %d bytes read\n\n%s\n", len, (char *) buf ); + mbedtls_printf(" %d bytes read\n\n%s\n", len, (char *) buf); /* End of message should be detected according to the syntax of the * application protocol (eg HTTP), just use a dummy test here. */ - if( buf[len - 1] == '\n' ) + if (buf[len - 1] == '\n') { terminated = 1; - } - else - { + } + } else { int extra_len, ori_len; unsigned char *larger_buf; ori_len = ret; - extra_len = (int) mbedtls_ssl_get_bytes_avail( &ssl ); + extra_len = (int) mbedtls_ssl_get_bytes_avail(&ssl); - larger_buf = mbedtls_calloc( 1, ori_len + extra_len + 1 ); - if( larger_buf == NULL ) - { - mbedtls_printf( " ! memory allocation failed\n" ); + larger_buf = mbedtls_calloc(1, ori_len + extra_len + 1); + if (larger_buf == NULL) { + mbedtls_printf(" ! memory allocation failed\n"); ret = 1; goto reset; } - memset( larger_buf, 0, ori_len + extra_len ); - memcpy( larger_buf, buf, ori_len ); + memset(larger_buf, 0, ori_len + extra_len); + memcpy(larger_buf, buf, ori_len); /* This read should never fail and get the whole cached data */ - ret = mbedtls_ssl_read( &ssl, larger_buf + ori_len, extra_len ); - if( ret != extra_len || - mbedtls_ssl_get_bytes_avail( &ssl ) != 0 ) - { - mbedtls_printf( " ! mbedtls_ssl_read failed on cached data\n" ); + ret = mbedtls_ssl_read(&ssl, larger_buf + ori_len, extra_len); + if (ret != extra_len || + mbedtls_ssl_get_bytes_avail(&ssl) != 0) { + mbedtls_printf(" ! mbedtls_ssl_read failed on cached data\n"); ret = 1; goto reset; } larger_buf[ori_len + extra_len] = '\0'; - mbedtls_printf( " %d bytes read (%d + %d)\n\n%s\n", - ori_len + extra_len, ori_len, extra_len, - (char *) larger_buf ); + mbedtls_printf(" %d bytes read (%d + %d)\n\n%s\n", + ori_len + extra_len, ori_len, extra_len, + (char *) larger_buf); /* End of message should be detected according to the syntax of the * application protocol (eg HTTP), just use a dummy test here. */ - if( larger_buf[ori_len + extra_len - 1] == '\n' ) + if (larger_buf[ori_len + extra_len - 1] == '\n') { terminated = 1; + } - mbedtls_free( larger_buf ); + mbedtls_free(larger_buf); } - if( terminated ) - { + if (terminated) { ret = 0; break; } - } - while( 1 ); - } - else /* Not stream, so datagram */ - { + } while (1); + } else { /* Not stream, so datagram */ len = opt.buffer_size; - memset( buf, 0, opt.buffer_size ); + memset(buf, 0, opt.buffer_size); - do - { + do { /* Without the call to `mbedtls_ssl_check_pending`, it might * happen that the client sends application data in the same * datagram as the Finished message concluding the handshake. @@ -4013,43 +3771,39 @@ data_exchange: */ /* For event-driven IO, wait for socket to become available */ - if( mbedtls_ssl_check_pending( &ssl ) == 0 && - opt.event == 1 /* level triggered IO */ ) - { + if (mbedtls_ssl_check_pending(&ssl) == 0 && + opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &client_fd, &timer, MBEDTLS_ERR_SSL_WANT_READ ); + idle(&client_fd, &timer, MBEDTLS_ERR_SSL_WANT_READ); #else - idle( &client_fd, MBEDTLS_ERR_SSL_WANT_READ ); + idle(&client_fd, MBEDTLS_ERR_SSL_WANT_READ); #endif } - ret = mbedtls_ssl_read( &ssl, buf, len ); + ret = mbedtls_ssl_read(&ssl, buf, len); /* Note that even if `mbedtls_ssl_check_pending` returns true, * it can happen that the subsequent call to `mbedtls_ssl_read` * returns `MBEDTLS_ERR_SSL_WANT_READ`, because the pending messages * might be discarded (e.g. because they are retransmissions). */ - } - while( mbedtls_status_is_ssl_in_progress( ret ) ); + } while (mbedtls_status_is_ssl_in_progress(ret)); - if( ret <= 0 ) - { - switch( ret ) - { + if (ret <= 0) { + switch (ret) { case MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY: - mbedtls_printf( " connection was closed gracefully\n" ); + mbedtls_printf(" connection was closed gracefully\n"); ret = 0; goto close_notify; default: - mbedtls_printf( " mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret ); + mbedtls_printf(" mbedtls_ssl_read returned -0x%x\n", (unsigned int) -ret); goto reset; } } len = ret; buf[len] = '\0'; - mbedtls_printf( " %d bytes read\n\n%s", len, (char *) buf ); + mbedtls_printf(" %d bytes read\n\n%s", len, (char *) buf); ret = 0; } @@ -4058,124 +3812,113 @@ data_exchange: * (only on the first exchange, to be able to test retransmission) */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( opt.renegotiate && exchanges_left == opt.exchanges ) - { - mbedtls_printf( " . Requestion renegotiation..." ); - fflush( stdout ); + if (opt.renegotiate && exchanges_left == opt.exchanges) { + mbedtls_printf(" . Requestion renegotiation..."); + fflush(stdout); - while( ( ret = mbedtls_ssl_renegotiate( &ssl ) ) != 0 ) - { - if( ! mbedtls_status_is_ssl_in_progress( ret ) ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", ret ); + while ((ret = mbedtls_ssl_renegotiate(&ssl)) != 0) { + if (!mbedtls_status_is_ssl_in_progress(ret)) { + mbedtls_printf(" failed\n ! mbedtls_ssl_renegotiate returned %d\n\n", ret); goto reset; } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &client_fd, &timer, ret ); + idle(&client_fd, &timer, ret); #else - idle( &client_fd, ret ); + idle(&client_fd, ret); #endif } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ret = report_cid_usage( &ssl, "after renegotiation" ); - if( ret != 0 ) + ret = report_cid_usage(&ssl, "after renegotiation"); + if (ret != 0) { goto exit; + } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ /* * 7. Write the 200 Response */ - mbedtls_printf( " > Write to client:" ); - fflush( stdout ); + mbedtls_printf(" > Write to client:"); + fflush(stdout); /* If the format of the response changes, make sure there is enough * room in buf (buf_content_size calculation above). */ - len = sprintf( (char *) buf, HTTP_RESPONSE, - mbedtls_ssl_get_ciphersuite( &ssl ) ); + len = sprintf((char *) buf, HTTP_RESPONSE, + mbedtls_ssl_get_ciphersuite(&ssl)); /* Add padding to the response to reach opt.response_size in length */ - if( opt.response_size != DFL_RESPONSE_SIZE && - len < opt.response_size ) - { - memset( buf + len, 'B', opt.response_size - len ); + if (opt.response_size != DFL_RESPONSE_SIZE && + len < opt.response_size) { + memset(buf + len, 'B', opt.response_size - len); len += opt.response_size - len; } /* Truncate if response size is smaller than the "natural" size */ - if( opt.response_size != DFL_RESPONSE_SIZE && - len > opt.response_size ) - { + if (opt.response_size != DFL_RESPONSE_SIZE && + len > opt.response_size) { len = opt.response_size; /* Still end with \r\n unless that's really not possible */ - if( len >= 2 ) buf[len - 2] = '\r'; - if( len >= 1 ) buf[len - 1] = '\n'; + if (len >= 2) { + buf[len - 2] = '\r'; + } + if (len >= 1) { + buf[len - 1] = '\n'; + } } - if( opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM ) - { - for( written = 0, frags = 0; written < len; written += ret, frags++ ) - { - while( ( ret = mbedtls_ssl_write( &ssl, buf + written, len - written ) ) - <= 0 ) - { - if( ret == MBEDTLS_ERR_NET_CONN_RESET ) - { - mbedtls_printf( " failed\n ! peer closed the connection\n\n" ); + if (opt.transport == MBEDTLS_SSL_TRANSPORT_STREAM) { + for (written = 0, frags = 0; written < len; written += ret, frags++) { + while ((ret = mbedtls_ssl_write(&ssl, buf + written, len - written)) + <= 0) { + if (ret == MBEDTLS_ERR_NET_CONN_RESET) { + mbedtls_printf(" failed\n ! peer closed the connection\n\n"); goto reset; } - if( ! mbedtls_status_is_ssl_in_progress( ret ) ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + if (!mbedtls_status_is_ssl_in_progress(ret)) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto reset; } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &client_fd, &timer, ret ); + idle(&client_fd, &timer, ret); #else - idle( &client_fd, ret ); + idle(&client_fd, ret); #endif } } } - } - else /* Not stream, so datagram */ - { - while( 1 ) - { - ret = mbedtls_ssl_write( &ssl, buf, len ); + } else { /* Not stream, so datagram */ + while (1) { + ret = mbedtls_ssl_write(&ssl, buf, len); - if( ! mbedtls_status_is_ssl_in_progress( ret ) ) + if (!mbedtls_status_is_ssl_in_progress(ret)) { break; + } /* For event-driven IO, wait for socket to become available */ - if( opt.event == 1 /* level triggered IO */ ) - { + if (opt.event == 1 /* level triggered IO */) { #if defined(MBEDTLS_TIMING_C) - idle( &client_fd, &timer, ret ); + idle(&client_fd, &timer, ret); #else - idle( &client_fd, ret ); + idle(&client_fd, ret); #endif } } - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_write returned %d\n\n", ret ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_write returned %d\n\n", ret); goto reset; } @@ -4184,96 +3927,87 @@ data_exchange: } buf[written] = '\0'; - mbedtls_printf( " %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf ); + mbedtls_printf(" %d bytes written in %d fragments\n\n%s\n", written, frags, (char *) buf); ret = 0; /* * 7b. Simulate serialize/deserialize and go back to data exchange */ #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( opt.serialize != 0 ) - { + if (opt.serialize != 0) { size_t buf_len; - mbedtls_printf( " . Serializing live connection..." ); + mbedtls_printf(" . Serializing live connection..."); - ret = mbedtls_ssl_context_save( &ssl, NULL, 0, &buf_len ); - if( ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned " - "-0x%x\n\n", (unsigned int) -ret ); + ret = mbedtls_ssl_context_save(&ssl, NULL, 0, &buf_len); + if (ret != MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) { + mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - if( ( context_buf = mbedtls_calloc( 1, buf_len ) ) == NULL ) - { - mbedtls_printf( " failed\n ! Couldn't allocate buffer for " - "serialized context" ); + if ((context_buf = mbedtls_calloc(1, buf_len)) == NULL) { + mbedtls_printf(" failed\n ! Couldn't allocate buffer for " + "serialized context"); goto exit; } context_buf_len = buf_len; - if( ( ret = mbedtls_ssl_context_save( &ssl, context_buf, - buf_len, &buf_len ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_context_save returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_context_save(&ssl, context_buf, + buf_len, &buf_len)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_context_save returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* Save serialized context to the 'opt.context_file' as a base64 code */ - if( 0 < strlen( opt.context_file ) ) - { + if (0 < strlen(opt.context_file)) { FILE *b64_file; uint8_t *b64_buf; size_t b64_len; - mbedtls_printf( " . Save serialized context to a file... " ); + mbedtls_printf(" . Save serialized context to a file... "); - mbedtls_base64_encode( NULL, 0, &b64_len, context_buf, buf_len ); + mbedtls_base64_encode(NULL, 0, &b64_len, context_buf, buf_len); - if( ( b64_buf = mbedtls_calloc( 1, b64_len ) ) == NULL ) - { - mbedtls_printf( "failed\n ! Couldn't allocate buffer for " - "the base64 code\n" ); + if ((b64_buf = mbedtls_calloc(1, b64_len)) == NULL) { + mbedtls_printf("failed\n ! Couldn't allocate buffer for " + "the base64 code\n"); goto exit; } - if( ( ret = mbedtls_base64_encode( b64_buf, b64_len, &b64_len, - context_buf, buf_len ) ) != 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_base64_encode returned " - "-0x%x\n", (unsigned int) -ret ); - mbedtls_free( b64_buf ); + if ((ret = mbedtls_base64_encode(b64_buf, b64_len, &b64_len, + context_buf, buf_len)) != 0) { + mbedtls_printf("failed\n ! mbedtls_base64_encode returned " + "-0x%x\n", (unsigned int) -ret); + mbedtls_free(b64_buf); goto exit; } - if( ( b64_file = fopen( opt.context_file, "w" ) ) == NULL ) - { - mbedtls_printf( "failed\n ! Cannot open '%s' for writing.\n", - opt.context_file ); - mbedtls_free( b64_buf ); + if ((b64_file = fopen(opt.context_file, "w")) == NULL) { + mbedtls_printf("failed\n ! Cannot open '%s' for writing.\n", + opt.context_file); + mbedtls_free(b64_buf); goto exit; } - if( b64_len != fwrite( b64_buf, 1, b64_len, b64_file ) ) - { - mbedtls_printf( "failed\n ! fwrite(%ld bytes) failed\n", - (long) b64_len ); - mbedtls_free( b64_buf ); - fclose( b64_file ); + if (b64_len != fwrite(b64_buf, 1, b64_len, b64_file)) { + mbedtls_printf("failed\n ! fwrite(%ld bytes) failed\n", + (long) b64_len); + mbedtls_free(b64_buf); + fclose(b64_file); goto exit; } - mbedtls_free( b64_buf ); - fclose( b64_file ); + mbedtls_free(b64_buf); + fclose(b64_file); - mbedtls_printf( "ok\n" ); + mbedtls_printf("ok\n"); } /* @@ -4283,10 +4017,9 @@ data_exchange: * case you can just reset() it, and then it's ready to receive * serialized data from another connection (or the same here). */ - if( opt.serialize == 1 ) - { + if (opt.serialize == 1) { /* nothing to do here, done by context_save() already */ - mbedtls_printf( " . Context has been reset... ok\n" ); + mbedtls_printf(" . Context has been reset... ok\n"); } /* @@ -4297,18 +4030,16 @@ data_exchange: * teardown/startup code needed - for example, preparing the * ssl_config again (see section 3 "setup stuff" in this file). */ - if( opt.serialize == 2 ) - { - mbedtls_printf( " . Freeing and reinitializing context..." ); + if (opt.serialize == 2) { + mbedtls_printf(" . Freeing and reinitializing context..."); - mbedtls_ssl_free( &ssl ); + mbedtls_ssl_free(&ssl); - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_init(&ssl); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } @@ -4318,60 +4049,62 @@ data_exchange: * if you want to share your set up code between the case of * establishing a new connection and this case. */ - if( opt.nbio == 2 ) - mbedtls_ssl_set_bio( &ssl, &client_fd, delayed_send, - delayed_recv, NULL ); - else - mbedtls_ssl_set_bio( &ssl, &client_fd, mbedtls_net_send, - mbedtls_net_recv, - opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL ); + if (opt.nbio == 2) { + mbedtls_ssl_set_bio(&ssl, &client_fd, delayed_send, + delayed_recv, NULL); + } else { + mbedtls_ssl_set_bio(&ssl, &client_fd, mbedtls_net_send, + mbedtls_net_recv, + opt.nbio == 0 ? mbedtls_net_recv_timeout : NULL); + } #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &ssl, &timer, - mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&ssl, &timer, + mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif /* MBEDTLS_TIMING_C */ - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - mbedtls_printf( " . Deserializing connection..." ); + mbedtls_printf(" . Deserializing connection..."); - if( ( ret = mbedtls_ssl_context_load( &ssl, context_buf, - buf_len ) ) != 0 ) - { - mbedtls_printf( "failed\n ! mbedtls_ssl_context_load returned " - "-0x%x\n\n", (unsigned int) -ret ); + if ((ret = mbedtls_ssl_context_load(&ssl, context_buf, + buf_len)) != 0) { + mbedtls_printf("failed\n ! mbedtls_ssl_context_load returned " + "-0x%x\n\n", (unsigned int) -ret); goto exit; } - mbedtls_free( context_buf ); + mbedtls_free(context_buf); context_buf = NULL; context_buf_len = 0; - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ /* * 7c. Continue doing data exchanges? */ - if( --exchanges_left > 0 ) + if (--exchanges_left > 0) { goto data_exchange; + } /* * 8. Done, cleanly close the connection */ close_notify: - mbedtls_printf( " . Closing the connection..." ); + mbedtls_printf(" . Closing the connection..."); /* No error checking, the connection might be closed already */ - do ret = mbedtls_ssl_close_notify( &ssl ); - while( ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + do { + ret = mbedtls_ssl_close_notify(&ssl); + } while (ret == MBEDTLS_ERR_SSL_WANT_WRITE); ret = 0; - mbedtls_printf( " done\n" ); + mbedtls_printf(" done\n"); goto reset; @@ -4380,75 +4113,73 @@ close_notify: */ exit: #ifdef MBEDTLS_ERROR_C - if( ret != 0 ) - { + if (ret != 0) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: -0x%X - %s\n\n", (unsigned int) -ret, error_buf); } #endif - if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) - { - mbedtls_printf( " . Cleaning up..." ); - fflush( stdout ); + if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) { + mbedtls_printf(" . Cleaning up..."); + fflush(stdout); } - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&listen_fd); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_free( &cache ); + mbedtls_ssl_cache_free(&cache); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_TICKET_C) - mbedtls_ssl_ticket_free( &ticket_ctx ); + mbedtls_ssl_ticket_free(&ticket_ctx); #endif #if defined(MBEDTLS_SSL_COOKIE_C) - mbedtls_ssl_cookie_free( &cookie_ctx ); + mbedtls_ssl_cookie_free(&cookie_ctx); #endif #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( context_buf != NULL ) - mbedtls_platform_zeroize( context_buf, context_buf_len ); - mbedtls_free( context_buf ); + if (context_buf != NULL) { + mbedtls_platform_zeroize(context_buf, context_buf_len); + } + mbedtls_free(context_buf); #endif #if defined(SNI_OPTION) - sni_free( sni_info ); + sni_free(sni_info); #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) - ret = psk_free( psk_info ); - if( ( ret != 0 ) && ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) ) - mbedtls_printf( "Failed to list of opaque PSKs - error was %d\n", ret ); + ret = psk_free(psk_info); + if ((ret != 0) && (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) { + mbedtls_printf("Failed to list of opaque PSKs - error was %d\n", ret); + } #endif #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - mbedtls_x509_crt_free( &cacert ); - mbedtls_x509_crt_free( &srvcert ); - mbedtls_pk_free( &pkey ); - mbedtls_x509_crt_free( &srvcert2 ); - mbedtls_pk_free( &pkey2 ); + mbedtls_x509_crt_free(&cacert); + mbedtls_x509_crt_free(&srvcert); + mbedtls_pk_free(&pkey); + mbedtls_x509_crt_free(&srvcert2); + mbedtls_pk_free(&pkey2); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( key_slot ); - psa_destroy_key( key_slot2 ); + psa_destroy_key(key_slot); + psa_destroy_key(key_slot2); #endif #endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_FS_IO) - mbedtls_dhm_free( &dhm ); + mbedtls_dhm_free(&dhm); #endif #if defined(MBEDTLS_SSL_ASYNC_PRIVATE) - for( i = 0; (size_t) i < ssl_async_keys.slots_used; i++ ) - { - if( ssl_async_keys.slots[i].pk_owned ) - { - mbedtls_pk_free( ssl_async_keys.slots[i].pk ); - mbedtls_free( ssl_async_keys.slots[i].pk ); + for (i = 0; (size_t) i < ssl_async_keys.slots_used; i++) { + if (ssl_async_keys.slots[i].pk_owned) { + mbedtls_pk_free(ssl_async_keys.slots[i].pk); + mbedtls_free(ssl_async_keys.slots[i].pk); ssl_async_keys.slots[i].pk = NULL; } } @@ -4456,19 +4187,17 @@ exit: #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) && \ defined(MBEDTLS_USE_PSA_CRYPTO) - if( opt.psk_opaque != 0 ) - { + if (opt.psk_opaque != 0) { /* This is ok even if the slot hasn't been * initialized (we might have jumed here * immediately because of bad cmd line params, * for example). */ - status = psa_destroy_key( psk_slot ); - if( ( status != PSA_SUCCESS ) && - ( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) ) - { - mbedtls_printf( "Failed to destroy key slot %u - error was %d", - (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID( psk_slot ), - (int) status ); + status = psa_destroy_key(psk_slot); + if ((status != PSA_SUCCESS) && + (opt.query_config_mode == DFL_QUERY_CONFIG_MODE)) { + mbedtls_printf("Failed to destroy key slot %u - error was %d", + (unsigned) MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psk_slot), + (int) status); } } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED && @@ -4480,60 +4209,56 @@ exit: * In case opaque keys it's the user responsibility to keep the key valid * for the duration of the handshake and destroy it at the end */ - if( ( opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE ) ) - { + if ((opt.ecjpake_pw_opaque != DFL_ECJPAKE_PW_OPAQUE)) { psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* Verify that the key is still valid before destroying it */ - if( psa_get_key_attributes( ecjpake_pw_slot, &check_attributes ) != - PSA_SUCCESS ) - { - if( ret == 0 ) + if (psa_get_key_attributes(ecjpake_pw_slot, &check_attributes) != + PSA_SUCCESS) { + if (ret == 0) { ret = 1; - mbedtls_printf( "The EC J-PAKE password key has unexpectedly been already destroyed\n" ); - } - else - { - psa_destroy_key( ecjpake_pw_slot ); + } + mbedtls_printf("The EC J-PAKE password key has unexpectedly been already destroyed\n"); + } else { + psa_destroy_key(ecjpake_pw_slot); } } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED && MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) - const char* message = mbedtls_test_helper_is_psa_leaking(); - if( message ) - { - if( ret == 0 ) + const char *message = mbedtls_test_helper_is_psa_leaking(); + if (message) { + if (ret == 0) { ret = 1; - mbedtls_printf( "PSA memory leak detected: %s\n", message); + } + mbedtls_printf("PSA memory leak detected: %s\n", message); } #endif /* For builds with MBEDTLS_TEST_USE_PSA_CRYPTO_RNG psa crypto * resources are freed by rng_free(). */ -#if ( defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) ) \ +#if (defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3)) \ && !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); #endif - rng_free( &rng ); + rng_free(&rng); - mbedtls_free( buf ); + mbedtls_free(buf); #if defined(MBEDTLS_TEST_HOOKS) /* Let test hooks detect errors such as resource leaks. * Don't do it in query_config mode, because some test code prints * information to stdout and this gets mixed with the regular output. */ - if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) - { - if( test_hooks_failure_detected( ) ) - { - if( ret == 0 ) + if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) { + if (test_hooks_failure_detected()) { + if (ret == 0) { ret = 1; - mbedtls_printf( "Test hooks detected errors.\n" ); + } + mbedtls_printf("Test hooks detected errors.\n"); } } - test_hooks_free( ); + test_hooks_free(); #endif /* MBEDTLS_TEST_HOOKS */ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) @@ -4543,18 +4268,19 @@ exit: mbedtls_memory_buffer_alloc_free(); #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ - if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) - { - mbedtls_printf( " done.\n" ); + if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) { + mbedtls_printf(" done.\n"); } // Shell can not handle large exit numbers -> 1 for errors - if( ret < 0 ) + if (ret < 0) { ret = 1; + } - if( opt.query_config_mode == DFL_QUERY_CONFIG_MODE ) - mbedtls_exit( ret ); - else - mbedtls_exit( query_config_ret ); + if (opt.query_config_mode == DFL_QUERY_CONFIG_MODE) { + mbedtls_exit(ret); + } else { + mbedtls_exit(query_config_ret); + } } #endif /* !MBEDTLS_SSL_TEST_IMPOSSIBLE && MBEDTLS_SSL_SRV_C */ diff --git a/programs/ssl/ssl_test_common_source.c b/programs/ssl/ssl_test_common_source.c index 42d8d1122..9115cd1b4 100644 --- a/programs/ssl/ssl_test_common_source.c +++ b/programs/ssl/ssl_test_common_source.c @@ -24,174 +24,176 @@ * limitations under the License. */ -void eap_tls_key_derivation( void *p_expkey, - mbedtls_ssl_key_export_type secret_type, - const unsigned char *secret, - size_t secret_len, - const unsigned char client_random[32], - const unsigned char server_random[32], - mbedtls_tls_prf_types tls_prf_type ) +void eap_tls_key_derivation(void *p_expkey, + mbedtls_ssl_key_export_type secret_type, + const unsigned char *secret, + size_t secret_len, + const unsigned char client_random[32], + const unsigned char server_random[32], + mbedtls_tls_prf_types tls_prf_type) { - eap_tls_keys *keys = (eap_tls_keys *)p_expkey; + eap_tls_keys *keys = (eap_tls_keys *) p_expkey; /* We're only interested in the TLS 1.2 master secret */ - if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET ) + if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) { return; - if( secret_len != sizeof( keys->master_secret ) ) + } + if (secret_len != sizeof(keys->master_secret)) { return; + } - memcpy( keys->master_secret, secret, sizeof( keys->master_secret ) ); - memcpy( keys->randbytes, client_random, 32 ); - memcpy( keys->randbytes + 32, server_random, 32 ); + memcpy(keys->master_secret, secret, sizeof(keys->master_secret)); + memcpy(keys->randbytes, client_random, 32); + memcpy(keys->randbytes + 32, server_random, 32); keys->tls_prf_type = tls_prf_type; } -void nss_keylog_export( void *p_expkey, - mbedtls_ssl_key_export_type secret_type, - const unsigned char *secret, - size_t secret_len, - const unsigned char client_random[32], - const unsigned char server_random[32], - mbedtls_tls_prf_types tls_prf_type ) +void nss_keylog_export(void *p_expkey, + mbedtls_ssl_key_export_type secret_type, + const unsigned char *secret, + size_t secret_len, + const unsigned char client_random[32], + const unsigned char server_random[32], + mbedtls_tls_prf_types tls_prf_type) { - char nss_keylog_line[ 200 ]; + char nss_keylog_line[200]; size_t const client_random_len = 32; size_t len = 0; size_t j; /* We're only interested in the TLS 1.2 master secret */ - if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET ) + if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) { return; + } ((void) p_expkey); ((void) server_random); ((void) tls_prf_type); - len += sprintf( nss_keylog_line + len, - "%s", "CLIENT_RANDOM " ); + len += sprintf(nss_keylog_line + len, + "%s", "CLIENT_RANDOM "); - for( j = 0; j < client_random_len; j++ ) - { - len += sprintf( nss_keylog_line + len, - "%02x", client_random[j] ); + for (j = 0; j < client_random_len; j++) { + len += sprintf(nss_keylog_line + len, + "%02x", client_random[j]); } - len += sprintf( nss_keylog_line + len, " " ); + len += sprintf(nss_keylog_line + len, " "); - for( j = 0; j < secret_len; j++ ) - { - len += sprintf( nss_keylog_line + len, - "%02x", secret[j] ); + for (j = 0; j < secret_len; j++) { + len += sprintf(nss_keylog_line + len, + "%02x", secret[j]); } - len += sprintf( nss_keylog_line + len, "\n" ); - nss_keylog_line[ len ] = '\0'; + len += sprintf(nss_keylog_line + len, "\n"); + nss_keylog_line[len] = '\0'; - mbedtls_printf( "\n" ); - mbedtls_printf( "---------------- NSS KEYLOG -----------------\n" ); - mbedtls_printf( "%s", nss_keylog_line ); - mbedtls_printf( "---------------------------------------------\n" ); + mbedtls_printf("\n"); + mbedtls_printf("---------------- NSS KEYLOG -----------------\n"); + mbedtls_printf("%s", nss_keylog_line); + mbedtls_printf("---------------------------------------------\n"); - if( opt.nss_keylog_file != NULL ) - { + if (opt.nss_keylog_file != NULL) { FILE *f; - if( ( f = fopen( opt.nss_keylog_file, "a" ) ) == NULL ) - { + if ((f = fopen(opt.nss_keylog_file, "a")) == NULL) { goto exit; } /* Ensure no stdio buffering of secrets, as such buffers cannot be * wiped. */ - mbedtls_setbuf( f, NULL ); + mbedtls_setbuf(f, NULL); - if( fwrite( nss_keylog_line, 1, len, f ) != len ) - { - fclose( f ); + if (fwrite(nss_keylog_line, 1, len, f) != len) { + fclose(f); goto exit; } - fclose( f ); + fclose(f); } exit: - mbedtls_platform_zeroize( nss_keylog_line, - sizeof( nss_keylog_line ) ); + mbedtls_platform_zeroize(nss_keylog_line, + sizeof(nss_keylog_line)); } -#if defined( MBEDTLS_SSL_DTLS_SRTP ) -void dtls_srtp_key_derivation( void *p_expkey, - mbedtls_ssl_key_export_type secret_type, - const unsigned char *secret, - size_t secret_len, - const unsigned char client_random[32], - const unsigned char server_random[32], - mbedtls_tls_prf_types tls_prf_type ) +#if defined(MBEDTLS_SSL_DTLS_SRTP) +void dtls_srtp_key_derivation(void *p_expkey, + mbedtls_ssl_key_export_type secret_type, + const unsigned char *secret, + size_t secret_len, + const unsigned char client_random[32], + const unsigned char server_random[32], + mbedtls_tls_prf_types tls_prf_type) { - dtls_srtp_keys *keys = (dtls_srtp_keys *)p_expkey; + dtls_srtp_keys *keys = (dtls_srtp_keys *) p_expkey; /* We're only interested in the TLS 1.2 master secret */ - if( secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET ) + if (secret_type != MBEDTLS_SSL_KEY_EXPORT_TLS12_MASTER_SECRET) { return; - if( secret_len != sizeof( keys->master_secret ) ) + } + if (secret_len != sizeof(keys->master_secret)) { return; + } - memcpy( keys->master_secret, secret, sizeof( keys->master_secret ) ); - memcpy( keys->randbytes, client_random, 32 ); - memcpy( keys->randbytes + 32, server_random, 32 ); + memcpy(keys->master_secret, secret, sizeof(keys->master_secret)); + memcpy(keys->randbytes, client_random, 32); + memcpy(keys->randbytes + 32, server_random, 32); keys->tls_prf_type = tls_prf_type; } #endif /* MBEDTLS_SSL_DTLS_SRTP */ -int ssl_check_record( mbedtls_ssl_context const *ssl, - unsigned char const *buf, size_t len ) +int ssl_check_record(mbedtls_ssl_context const *ssl, + unsigned char const *buf, size_t len) { int my_ret = 0, ret_cr1, ret_cr2; unsigned char *tmp_buf; /* Record checking may modify the input buffer, * so make a copy. */ - tmp_buf = mbedtls_calloc( 1, len ); - if( tmp_buf == NULL ) - return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); - memcpy( tmp_buf, buf, len ); + tmp_buf = mbedtls_calloc(1, len); + if (tmp_buf == NULL) { + return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } + memcpy(tmp_buf, buf, len); - ret_cr1 = mbedtls_ssl_check_record( ssl, tmp_buf, len ); - if( ret_cr1 != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ) - { + ret_cr1 = mbedtls_ssl_check_record(ssl, tmp_buf, len); + if (ret_cr1 != MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE) { /* Test-only: Make sure that mbedtls_ssl_check_record() * doesn't alter state. */ - memcpy( tmp_buf, buf, len ); /* Restore buffer */ - ret_cr2 = mbedtls_ssl_check_record( ssl, tmp_buf, len ); - if( ret_cr2 != ret_cr1 ) - { - mbedtls_printf( "mbedtls_ssl_check_record() returned inconsistent results.\n" ); + memcpy(tmp_buf, buf, len); /* Restore buffer */ + ret_cr2 = mbedtls_ssl_check_record(ssl, tmp_buf, len); + if (ret_cr2 != ret_cr1) { + mbedtls_printf("mbedtls_ssl_check_record() returned inconsistent results.\n"); my_ret = -1; goto cleanup; } - switch( ret_cr1 ) - { + switch (ret_cr1) { case 0: break; case MBEDTLS_ERR_SSL_INVALID_RECORD: - if( opt.debug_level > 1 ) - mbedtls_printf( "mbedtls_ssl_check_record() detected invalid record.\n" ); + if (opt.debug_level > 1) { + mbedtls_printf("mbedtls_ssl_check_record() detected invalid record.\n"); + } break; case MBEDTLS_ERR_SSL_INVALID_MAC: - if( opt.debug_level > 1 ) - mbedtls_printf( "mbedtls_ssl_check_record() detected unauthentic record.\n" ); + if (opt.debug_level > 1) { + mbedtls_printf("mbedtls_ssl_check_record() detected unauthentic record.\n"); + } break; case MBEDTLS_ERR_SSL_UNEXPECTED_RECORD: - if( opt.debug_level > 1 ) - mbedtls_printf( "mbedtls_ssl_check_record() detected unexpected record.\n" ); + if (opt.debug_level > 1) { + mbedtls_printf("mbedtls_ssl_check_record() detected unexpected record.\n"); + } break; default: - mbedtls_printf( "mbedtls_ssl_check_record() failed fatally with -%#04x.\n", (unsigned int) -ret_cr1 ); + mbedtls_printf("mbedtls_ssl_check_record() failed fatally with -%#04x.\n", + (unsigned int) -ret_cr1); my_ret = -1; goto cleanup; } @@ -200,69 +202,73 @@ int ssl_check_record( mbedtls_ssl_context const *ssl, } cleanup: - mbedtls_free( tmp_buf ); + mbedtls_free(tmp_buf); - return( my_ret ); + return my_ret; } -int recv_cb( void *ctx, unsigned char *buf, size_t len ) +int recv_cb(void *ctx, unsigned char *buf, size_t len) { - io_ctx_t *io_ctx = (io_ctx_t*) ctx; + io_ctx_t *io_ctx = (io_ctx_t *) ctx; size_t recv_len; int ret; - if( opt.nbio == 2 ) - ret = delayed_recv( io_ctx->net, buf, len ); - else - ret = mbedtls_net_recv( io_ctx->net, buf, len ); - if( ret < 0 ) - return( ret ); + if (opt.nbio == 2) { + ret = delayed_recv(io_ctx->net, buf, len); + } else { + ret = mbedtls_net_recv(io_ctx->net, buf, len); + } + if (ret < 0) { + return ret; + } recv_len = (size_t) ret; - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Here's the place to do any datagram/record checking * in between receiving the packet from the underlying * transport and passing it on to the TLS stack. */ - if( ssl_check_record( io_ctx->ssl, buf, recv_len ) != 0 ) - return( -1 ); + if (ssl_check_record(io_ctx->ssl, buf, recv_len) != 0) { + return -1; + } } - return( (int) recv_len ); + return (int) recv_len; } -int recv_timeout_cb( void *ctx, unsigned char *buf, size_t len, - uint32_t timeout ) +int recv_timeout_cb(void *ctx, unsigned char *buf, size_t len, + uint32_t timeout) { - io_ctx_t *io_ctx = (io_ctx_t*) ctx; + io_ctx_t *io_ctx = (io_ctx_t *) ctx; int ret; size_t recv_len; - ret = mbedtls_net_recv_timeout( io_ctx->net, buf, len, timeout ); - if( ret < 0 ) - return( ret ); + ret = mbedtls_net_recv_timeout(io_ctx->net, buf, len, timeout); + if (ret < 0) { + return ret; + } recv_len = (size_t) ret; - if( opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { + if (opt.transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { /* Here's the place to do any datagram/record checking * in between receiving the packet from the underlying * transport and passing it on to the TLS stack. */ - if( ssl_check_record( io_ctx->ssl, buf, recv_len ) != 0 ) - return( -1 ); + if (ssl_check_record(io_ctx->ssl, buf, recv_len) != 0) { + return -1; + } } - return( (int) recv_len ); + return (int) recv_len; } -int send_cb( void *ctx, unsigned char const *buf, size_t len ) +int send_cb(void *ctx, unsigned char const *buf, size_t len) { - io_ctx_t *io_ctx = (io_ctx_t*) ctx; + io_ctx_t *io_ctx = (io_ctx_t *) ctx; - if( opt.nbio == 2 ) - return( delayed_send( io_ctx->net, buf, len ) ); + if (opt.nbio == 2) { + return delayed_send(io_ctx->net, buf, len); + } - return( mbedtls_net_send( io_ctx->net, buf, len ) ); + return mbedtls_net_send(io_ctx->net, buf, len); } #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -276,46 +282,46 @@ int send_cb( void *ctx, unsigned char const *buf, size_t len ) * for its signature in the key exchange message. As Mbed TLS 1.2 does not * support them, the handshake fails. */ -#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA), \ - (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), \ - ( 0x800 | hash ), +#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA), \ + ((hash << 8) | MBEDTLS_SSL_SIG_RSA), \ + (0x800 | hash), #else -#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA), \ - (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), +#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA), \ + ((hash << 8) | MBEDTLS_SSL_SIG_RSA), #endif #elif defined(MBEDTLS_ECDSA_C) -#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_ECDSA), +#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_ECDSA), #elif defined(MBEDTLS_RSA_C) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) /* See above */ -#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), \ - ( 0x800 | hash ), +#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_RSA), \ + (0x800 | hash), #else -#define MBEDTLS_SSL_SIG_ALG( hash ) (( hash << 8 ) | MBEDTLS_SSL_SIG_RSA), +#define MBEDTLS_SSL_SIG_ALG(hash) ((hash << 8) | MBEDTLS_SSL_SIG_RSA), #endif #else -#define MBEDTLS_SSL_SIG_ALG( hash ) +#define MBEDTLS_SSL_SIG_ALG(hash) #endif uint16_t ssl_sig_algs_for_test[] = { #if defined(MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA512 ) + MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA512) #endif #if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA384 ) + MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA384) #endif #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA256 ) + MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA256) #endif #if defined(MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA224 ) + MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA224) #endif #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) MBEDTLS_TLS1_3_SIG_RSA_PSS_RSAE_SHA256, #endif /* MBEDTLS_RSA_C && MBEDTLS_SHA256_C */ #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) /* Allow SHA-1 as we use it extensively in tests. */ - MBEDTLS_SSL_SIG_ALG( MBEDTLS_SSL_HASH_SHA1 ) + MBEDTLS_SSL_SIG_ALG(MBEDTLS_SSL_HASH_SHA1) #endif MBEDTLS_TLS1_3_SIG_NONE }; @@ -325,21 +331,21 @@ uint16_t ssl_sig_algs_for_test[] = { /** Functionally equivalent to mbedtls_x509_crt_verify_info, see that function * for more info. */ -int x509_crt_verify_info( char *buf, size_t size, const char *prefix, - uint32_t flags ) +int x509_crt_verify_info(char *buf, size_t size, const char *prefix, + uint32_t flags) { #if !defined(MBEDTLS_X509_REMOVE_INFO) - return( mbedtls_x509_crt_verify_info( buf, size, prefix, flags ) ); + return mbedtls_x509_crt_verify_info(buf, size, prefix, flags); #else /* !MBEDTLS_X509_REMOVE_INFO */ int ret; char *p = buf; size_t n = size; -#define X509_CRT_ERROR_INFO( err, err_str, info ) \ - if( ( flags & err ) != 0 ) \ +#define X509_CRT_ERROR_INFO(err, err_str, info) \ + if ((flags & err) != 0) \ { \ - ret = mbedtls_snprintf( p, n, "%s%s\n", prefix, info ); \ + ret = mbedtls_snprintf(p, n, "%s%s\n", prefix, info); \ MBEDTLS_X509_SAFE_SNPRINTF; \ flags ^= err; \ } @@ -347,21 +353,20 @@ int x509_crt_verify_info( char *buf, size_t size, const char *prefix, MBEDTLS_X509_CRT_ERROR_INFO_LIST #undef X509_CRT_ERROR_INFO - if( flags != 0 ) - { - ret = mbedtls_snprintf( p, n, "%sUnknown reason " - "(this should not happen)\n", prefix ); + if (flags != 0) { + ret = mbedtls_snprintf(p, n, "%sUnknown reason " + "(this should not happen)\n", prefix); MBEDTLS_X509_SAFE_SNPRINTF; } - return( (int) ( size - n ) ); + return (int) (size - n); #endif /* MBEDTLS_X509_REMOVE_INFO */ } #endif /* MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_print_supported_sig_algs( void ) +void mbedtls_print_supported_sig_algs(void) { - mbedtls_printf( "supported signature algorithms:\n" ); + mbedtls_printf("supported signature algorithms:\n"); mbedtls_printf("\trsa_pkcs1_sha256 "); mbedtls_printf("rsa_pkcs1_sha384 "); mbedtls_printf("rsa_pkcs1_sha512\n"); @@ -378,5 +383,5 @@ void mbedtls_print_supported_sig_algs( void ) mbedtls_printf("ed448 "); mbedtls_printf("rsa_pkcs1_sha1 "); mbedtls_printf("ecdsa_sha1\n"); - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); } diff --git a/programs/ssl/ssl_test_lib.c b/programs/ssl/ssl_test_lib.c index cf810a303..e3e3cac3b 100644 --- a/programs/ssl/ssl_test_lib.c +++ b/programs/ssl/ssl_test_lib.c @@ -30,24 +30,26 @@ #if !defined(MBEDTLS_SSL_TEST_IMPOSSIBLE) -void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { const char *p, *basename; /* Extract basename from file */ - for( p = basename = file; *p != '\0'; p++ ) - if( *p == '/' || *p == '\\' ) + for (p = basename = file; *p != '\0'; p++) { + if (*p == '/' || *p == '\\') { basename = p + 1; + } + } - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: |%d| %s", - basename, line, level, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: |%d| %s", + basename, line, level, str); + fflush((FILE *) ctx); } #if defined(MBEDTLS_HAVE_TIME) -mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ) +mbedtls_time_t dummy_constant_time(mbedtls_time_t *time) { (void) time; return 0x5af2a056; @@ -55,74 +57,72 @@ mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ) #endif #if !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) -static int dummy_entropy( void *data, unsigned char *output, size_t len ) +static int dummy_entropy(void *data, unsigned char *output, size_t len) { size_t i; int ret; (void) data; - ret = mbedtls_entropy_func( data, output, len ); - for( i = 0; i < len; i++ ) - { + ret = mbedtls_entropy_func(data, output, len); + for (i = 0; i < len; i++) { //replace result with pseudo random output[i] = (unsigned char) rand(); } - return( ret ); + return ret; } #endif -void rng_init( rng_context_t *rng ) +void rng_init(rng_context_t *rng) { #if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) (void) rng; - psa_crypto_init( ); + psa_crypto_init(); #else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ #if defined(MBEDTLS_CTR_DRBG_C) - mbedtls_ctr_drbg_init( &rng->drbg ); + mbedtls_ctr_drbg_init(&rng->drbg); #elif defined(MBEDTLS_HMAC_DRBG_C) - mbedtls_hmac_drbg_init( &rng->drbg ); + mbedtls_hmac_drbg_init(&rng->drbg); #else #error "No DRBG available" #endif - mbedtls_entropy_init( &rng->entropy ); + mbedtls_entropy_init(&rng->entropy); #endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ } -int rng_seed( rng_context_t *rng, int reproducible, const char *pers ) +int rng_seed(rng_context_t *rng, int reproducible, const char *pers) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( reproducible ) - { - mbedtls_fprintf( stderr, - "MBEDTLS_USE_PSA_CRYPTO does not support reproducible mode.\n" ); - return( -1 ); + if (reproducible) { + mbedtls_fprintf(stderr, + "MBEDTLS_USE_PSA_CRYPTO does not support reproducible mode.\n"); + return -1; } #endif #if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) /* The PSA crypto RNG does its own seeding. */ (void) rng; (void) pers; - if( reproducible ) - { - mbedtls_fprintf( stderr, - "The PSA RNG does not support reproducible mode.\n" ); - return( -1 ); + if (reproducible) { + mbedtls_fprintf(stderr, + "The PSA RNG does not support reproducible mode.\n"); + return -1; } - return( 0 ); + return 0; #else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ - int ( *f_entropy )( void *, unsigned char *, size_t ) = - ( reproducible ? dummy_entropy : mbedtls_entropy_func ); + int (*f_entropy)(void *, unsigned char *, size_t) = + (reproducible ? dummy_entropy : mbedtls_entropy_func); - if ( reproducible ) - srand( 1 ); + if (reproducible) { + srand(1); + } #if defined(MBEDTLS_CTR_DRBG_C) - int ret = mbedtls_ctr_drbg_seed( &rng->drbg, - f_entropy, &rng->entropy, - (const unsigned char *) pers, - strlen( pers ) ); + int ret = mbedtls_ctr_drbg_seed(&rng->drbg, + f_entropy, &rng->entropy, + (const unsigned char *) pers, + strlen(pers)); #elif defined(MBEDTLS_HMAC_DRBG_C) #if defined(MBEDTLS_SHA256_C) const mbedtls_md_type_t md_type = MBEDTLS_MD_SHA256; @@ -131,61 +131,60 @@ int rng_seed( rng_context_t *rng, int reproducible, const char *pers ) #else #error "No message digest available for HMAC_DRBG" #endif - int ret = mbedtls_hmac_drbg_seed( &rng->drbg, - mbedtls_md_info_from_type( md_type ), - f_entropy, &rng->entropy, - (const unsigned char *) pers, - strlen( pers ) ); + int ret = mbedtls_hmac_drbg_seed(&rng->drbg, + mbedtls_md_info_from_type(md_type), + f_entropy, &rng->entropy, + (const unsigned char *) pers, + strlen(pers)); #else /* !defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_HMAC_DRBG_C) */ #error "No DRBG available" #endif /* !defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_HMAC_DRBG_C) */ - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned -0x%x\n", - (unsigned int) -ret ); - return( ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned -0x%x\n", + (unsigned int) -ret); + return ret; } #endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ - return( 0 ); + return 0; } -void rng_free( rng_context_t *rng ) +void rng_free(rng_context_t *rng) { #if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) (void) rng; /* Deinitialize the PSA crypto subsystem. This deactivates all PSA APIs. * This is ok because none of our applications try to do any crypto after * deinitializing the RNG. */ - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); #else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ #if defined(MBEDTLS_CTR_DRBG_C) - mbedtls_ctr_drbg_free( &rng->drbg ); + mbedtls_ctr_drbg_free(&rng->drbg); #elif defined(MBEDTLS_HMAC_DRBG_C) - mbedtls_hmac_drbg_free( &rng->drbg ); + mbedtls_hmac_drbg_free(&rng->drbg); #else #error "No DRBG available" #endif - mbedtls_entropy_free( &rng->entropy ); + mbedtls_entropy_free(&rng->entropy); #endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ } -int rng_get( void *p_rng, unsigned char *output, size_t output_len ) +int rng_get(void *p_rng, unsigned char *output, size_t output_len) { #if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) (void) p_rng; - return( mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output, output_len ) ); + return mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output, output_len); #else /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ rng_context_t *rng = p_rng; #if defined(MBEDTLS_CTR_DRBG_C) - return( mbedtls_ctr_drbg_random( &rng->drbg, output, output_len ) ); + return mbedtls_ctr_drbg_random(&rng->drbg, output, output_len); #elif defined(MBEDTLS_HMAC_DRBG_C) - return( mbedtls_hmac_drbg_random( &rng->drbg, output, output_len ) ); + return mbedtls_hmac_drbg_random(&rng->drbg, output, output_len); #else #error "No DRBG available" #endif @@ -193,116 +192,93 @@ int rng_get( void *p_rng, unsigned char *output, size_t output_len ) #endif /* !MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ } -int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 ) +int key_opaque_alg_parse(const char *arg, const char **alg1, const char **alg2) { - char* separator; - if( ( separator = strchr( arg, ',' ) ) == NULL ) + char *separator; + if ((separator = strchr(arg, ',')) == NULL) { return 1; + } *separator = '\0'; *alg1 = arg; *alg2 = separator + 1; - if( strcmp( *alg1, "rsa-sign-pkcs1" ) != 0 && - strcmp( *alg1, "rsa-sign-pss" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 && - strcmp( *alg1, "rsa-decrypt" ) != 0 && - strcmp( *alg1, "ecdsa-sign" ) != 0 && - strcmp( *alg1, "ecdh" ) != 0 ) + if (strcmp(*alg1, "rsa-sign-pkcs1") != 0 && + strcmp(*alg1, "rsa-sign-pss") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha256") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha384") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha512") != 0 && + strcmp(*alg1, "rsa-decrypt") != 0 && + strcmp(*alg1, "ecdsa-sign") != 0 && + strcmp(*alg1, "ecdh") != 0) { return 1; + } - if( strcmp( *alg2, "rsa-sign-pkcs1" ) != 0 && - strcmp( *alg2, "rsa-sign-pss" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha256" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha384" ) != 0 && - strcmp( *alg1, "rsa-sign-pss-sha512" ) != 0 && - strcmp( *alg2, "rsa-decrypt" ) != 0 && - strcmp( *alg2, "ecdsa-sign" ) != 0 && - strcmp( *alg2, "ecdh" ) != 0 && - strcmp( *alg2, "none" ) != 0 ) + if (strcmp(*alg2, "rsa-sign-pkcs1") != 0 && + strcmp(*alg2, "rsa-sign-pss") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha256") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha384") != 0 && + strcmp(*alg1, "rsa-sign-pss-sha512") != 0 && + strcmp(*alg2, "rsa-decrypt") != 0 && + strcmp(*alg2, "ecdsa-sign") != 0 && + strcmp(*alg2, "ecdh") != 0 && + strcmp(*alg2, "none") != 0) { return 1; + } return 0; } #if defined(MBEDTLS_USE_PSA_CRYPTO) -int key_opaque_set_alg_usage( const char *alg1, const char *alg2, - psa_algorithm_t *psa_alg1, - psa_algorithm_t *psa_alg2, - psa_key_usage_t *usage, - mbedtls_pk_type_t key_type ) +int key_opaque_set_alg_usage(const char *alg1, const char *alg2, + psa_algorithm_t *psa_alg1, + psa_algorithm_t *psa_alg2, + psa_key_usage_t *usage, + mbedtls_pk_type_t key_type) { - if( strcmp( alg1, "none" ) != 0 ) - { - const char * algs[] = { alg1, alg2 }; + if (strcmp(alg1, "none") != 0) { + const char *algs[] = { alg1, alg2 }; psa_algorithm_t *psa_algs[] = { psa_alg1, psa_alg2 }; - for ( int i = 0; i < 2; i++ ) - { - if( strcmp( algs[i], "rsa-sign-pkcs1" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH ); + for (int i = 0; i < 2; i++) { + if (strcmp(algs[i], "rsa-sign-pkcs1") == 0) { + *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "rsa-sign-pss" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH ); + } else if (strcmp(algs[i], "rsa-sign-pss") == 0) { + *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "rsa-sign-pss-sha256" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_256 ); + } else if (strcmp(algs[i], "rsa-sign-pss-sha256") == 0) { + *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_256); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "rsa-sign-pss-sha384" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_384 ); + } else if (strcmp(algs[i], "rsa-sign-pss-sha384") == 0) { + *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_384); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "rsa-sign-pss-sha512" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_RSA_PSS( PSA_ALG_SHA_512 ); + } else if (strcmp(algs[i], "rsa-sign-pss-sha512") == 0) { + *psa_algs[i] = PSA_ALG_RSA_PSS(PSA_ALG_SHA_512); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "rsa-decrypt" ) == 0 ) - { + } else if (strcmp(algs[i], "rsa-decrypt") == 0) { *psa_algs[i] = PSA_ALG_RSA_PKCS1V15_CRYPT; *usage |= PSA_KEY_USAGE_DECRYPT; - } - else if( strcmp( algs[i], "ecdsa-sign" ) == 0 ) - { - *psa_algs[i] = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ); + } else if (strcmp(algs[i], "ecdsa-sign") == 0) { + *psa_algs[i] = PSA_ALG_ECDSA(PSA_ALG_ANY_HASH); *usage |= PSA_KEY_USAGE_SIGN_HASH; - } - else if( strcmp( algs[i], "ecdh" ) == 0 ) - { + } else if (strcmp(algs[i], "ecdh") == 0) { *psa_algs[i] = PSA_ALG_ECDH; *usage |= PSA_KEY_USAGE_DERIVE; - } - else if( strcmp( algs[i], "none" ) == 0 ) - { + } else if (strcmp(algs[i], "none") == 0) { *psa_algs[i] = PSA_ALG_NONE; } } - } - else - { - if( key_type == MBEDTLS_PK_ECKEY ) - { - *psa_alg1 = PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ); + } else { + if (key_type == MBEDTLS_PK_ECKEY) { + *psa_alg1 = PSA_ALG_ECDSA(PSA_ALG_ANY_HASH); *psa_alg2 = PSA_ALG_ECDH; *usage = PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_DERIVE; - } - else if( key_type == MBEDTLS_PK_RSA ) - { - *psa_alg1 = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_ANY_HASH ); - *psa_alg2 = PSA_ALG_RSA_PSS( PSA_ALG_ANY_HASH ); + } else if (key_type == MBEDTLS_PK_RSA) { + *psa_alg1 = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_ANY_HASH); + *psa_alg2 = PSA_ALG_RSA_PSS(PSA_ALG_ANY_HASH); *usage = PSA_KEY_USAGE_SIGN_HASH; - } - else - { + } else { return 1; } } @@ -312,8 +288,8 @@ int key_opaque_set_alg_usage( const char *alg1, const char *alg2, #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) -int ca_callback( void *data, mbedtls_x509_crt const *child, - mbedtls_x509_crt **candidates ) +int ca_callback(void *data, mbedtls_x509_crt const *child, + mbedtls_x509_crt **candidates) { int ret = 0; mbedtls_x509_crt *ca = (mbedtls_x509_crt *) data; @@ -329,25 +305,21 @@ int ca_callback( void *data, mbedtls_x509_crt const *child, * and parent `Subject` field or matching key identifiers. */ ((void) child); - first = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ); - if( first == NULL ) - { + first = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); + if (first == NULL) { ret = -1; goto exit; } - mbedtls_x509_crt_init( first ); + mbedtls_x509_crt_init(first); - if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 ) - { + if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) { ret = -1; goto exit; } - while( ca->next != NULL ) - { + while (ca->next != NULL) { ca = ca->next; - if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 ) - { + if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) { ret = -1; goto exit; } @@ -355,122 +327,123 @@ int ca_callback( void *data, mbedtls_x509_crt const *child, exit: - if( ret != 0 ) - { - mbedtls_x509_crt_free( first ); - mbedtls_free( first ); + if (ret != 0) { + mbedtls_x509_crt_free(first); + mbedtls_free(first); first = NULL; } *candidates = first; - return( ret ); + return ret; } #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -int delayed_recv( void *ctx, unsigned char *buf, size_t len ) +int delayed_recv(void *ctx, unsigned char *buf, size_t len) { static int first_try = 1; int ret; - if( first_try ) - { + if (first_try) { first_try = 0; - return( MBEDTLS_ERR_SSL_WANT_READ ); + return MBEDTLS_ERR_SSL_WANT_READ; } - ret = mbedtls_net_recv( ctx, buf, len ); - if( ret != MBEDTLS_ERR_SSL_WANT_READ ) + ret = mbedtls_net_recv(ctx, buf, len); + if (ret != MBEDTLS_ERR_SSL_WANT_READ) { first_try = 1; /* Next call will be a new operation */ - return( ret ); + } + return ret; } -int delayed_send( void *ctx, const unsigned char *buf, size_t len ) +int delayed_send(void *ctx, const unsigned char *buf, size_t len) { static int first_try = 1; int ret; - if( first_try ) - { + if (first_try) { first_try = 0; - return( MBEDTLS_ERR_SSL_WANT_WRITE ); + return MBEDTLS_ERR_SSL_WANT_WRITE; } - ret = mbedtls_net_send( ctx, buf, len ); - if( ret != MBEDTLS_ERR_SSL_WANT_WRITE ) + ret = mbedtls_net_send(ctx, buf, len); + if (ret != MBEDTLS_ERR_SSL_WANT_WRITE) { first_try = 1; /* Next call will be a new operation */ - return( ret ); + } + return ret; } #if !defined(MBEDTLS_TIMING_C) -int idle( mbedtls_net_context *fd, - int idle_reason ) +int idle(mbedtls_net_context *fd, + int idle_reason) #else -int idle( mbedtls_net_context *fd, - mbedtls_timing_delay_context *timer, - int idle_reason ) +int idle(mbedtls_net_context *fd, + mbedtls_timing_delay_context *timer, + int idle_reason) #endif { int ret; int poll_type = 0; - if( idle_reason == MBEDTLS_ERR_SSL_WANT_WRITE ) + if (idle_reason == MBEDTLS_ERR_SSL_WANT_WRITE) { poll_type = MBEDTLS_NET_POLL_WRITE; - else if( idle_reason == MBEDTLS_ERR_SSL_WANT_READ ) + } else if (idle_reason == MBEDTLS_ERR_SSL_WANT_READ) { poll_type = MBEDTLS_NET_POLL_READ; + } #if !defined(MBEDTLS_TIMING_C) - else - return( 0 ); + else { + return 0; + } #endif - while( 1 ) - { + while (1) { /* Check if timer has expired */ #if defined(MBEDTLS_TIMING_C) - if( timer != NULL && - mbedtls_timing_get_delay( timer ) == 2 ) - { + if (timer != NULL && + mbedtls_timing_get_delay(timer) == 2) { break; } #endif /* MBEDTLS_TIMING_C */ /* Check if underlying transport became available */ - if( poll_type != 0 ) - { - ret = mbedtls_net_poll( fd, poll_type, 0 ); - if( ret < 0 ) - return( ret ); - if( ret == poll_type ) + if (poll_type != 0) { + ret = mbedtls_net_poll(fd, poll_type, 0); + if (ret < 0) { + return ret; + } + if (ret == poll_type) { break; + } } } - return( 0 ); + return 0; } #if defined(MBEDTLS_TEST_HOOKS) -void test_hooks_init( void ) +void test_hooks_init(void) { - mbedtls_test_info_reset( ); + mbedtls_test_info_reset(); #if defined(MBEDTLS_TEST_MUTEX_USAGE) - mbedtls_test_mutex_usage_init( ); + mbedtls_test_mutex_usage_init(); #endif } -int test_hooks_failure_detected( void ) +int test_hooks_failure_detected(void) { #if defined(MBEDTLS_TEST_MUTEX_USAGE) /* Errors are reported via mbedtls_test_info. */ - mbedtls_test_mutex_usage_check( ); + mbedtls_test_mutex_usage_check(); #endif - if( mbedtls_test_info.result != MBEDTLS_TEST_RESULT_SUCCESS ) - return( 1 ); - return( 0 ); + if (mbedtls_test_info.result != MBEDTLS_TEST_RESULT_SUCCESS) { + return 1; + } + return 0; } -void test_hooks_free( void ) +void test_hooks_free(void) { } diff --git a/programs/ssl/ssl_test_lib.h b/programs/ssl/ssl_test_lib.h index 659b3ab2c..64f557d78 100644 --- a/programs/ssl/ssl_test_lib.h +++ b/programs/ssl/ssl_test_lib.h @@ -26,13 +26,13 @@ #undef HAVE_RNG #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) && \ - ( defined(MBEDTLS_USE_PSA_CRYPTO) || \ - defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) ) + (defined(MBEDTLS_USE_PSA_CRYPTO) || \ + defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG)) #define HAVE_RNG #elif defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_CTR_DRBG_C) #define HAVE_RNG #elif defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_HMAC_DRBG_C) && \ - ( defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA512_C) ) + (defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA512_C)) #define HAVE_RNG #endif @@ -79,14 +79,13 @@ #include "../test/query_config.h" -typedef struct eap_tls_keys -{ +typedef struct eap_tls_keys { unsigned char master_secret[48]; unsigned char randbytes[64]; mbedtls_tls_prf_types tls_prf_type; } eap_tls_keys; -#if defined( MBEDTLS_SSL_DTLS_SRTP ) +#if defined(MBEDTLS_SSL_DTLS_SRTP) /* Supported SRTP mode needs a maximum of : * - 16 bytes for key (AES-128) @@ -95,8 +94,7 @@ typedef struct eap_tls_keys */ #define MBEDTLS_TLS_SRTP_MAX_KEY_MATERIAL_LENGTH 60 -typedef struct dtls_srtp_keys -{ +typedef struct dtls_srtp_keys { unsigned char master_secret[48]; unsigned char randbytes[64]; mbedtls_tls_prf_types tls_prf_type; @@ -104,18 +102,17 @@ typedef struct dtls_srtp_keys #endif /* MBEDTLS_SSL_DTLS_SRTP */ -typedef struct -{ +typedef struct { mbedtls_ssl_context *ssl; mbedtls_net_context *net; } io_ctx_t; -void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ); +void my_debug(void *ctx, int level, + const char *file, int line, + const char *str); #if defined(MBEDTLS_HAVE_TIME) -mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ); +mbedtls_time_t dummy_constant_time(mbedtls_time_t *time); #endif #if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) @@ -145,8 +142,7 @@ mbedtls_time_t dummy_constant_time( mbedtls_time_t* time ); /** A context for random number generation (RNG). */ -typedef struct -{ +typedef struct { #if defined(MBEDTLS_TEST_USE_PSA_CRYPTO_RNG) unsigned char dummy; #else /* MBEDTLS_TEST_USE_PSA_CRYPTO_RNG */ @@ -166,7 +162,7 @@ typedef struct * This function only initializes the memory used by the RNG context. * Before using the RNG, it must be seeded with rng_seed(). */ -void rng_init( rng_context_t *rng ); +void rng_init(rng_context_t *rng); /* Seed the random number generator. * @@ -182,14 +178,14 @@ void rng_init( rng_context_t *rng ); * * return 0 on success, a negative value on error. */ -int rng_seed( rng_context_t *rng, int reproducible, const char *pers ); +int rng_seed(rng_context_t *rng, int reproducible, const char *pers); /** Deinitialize the RNG. Free any embedded resource. * * \param rng The RNG context to deinitialize. It must have been * initialized with rng_init(). */ -void rng_free( rng_context_t *rng ); +void rng_free(rng_context_t *rng); /** Generate random data. * @@ -204,7 +200,7 @@ void rng_free( rng_context_t *rng ); * \return \c 0 on success. * \return An Mbed TLS error code on error. */ -int rng_get( void *p_rng, unsigned char *output, size_t output_len ); +int rng_get(void *p_rng, unsigned char *output, size_t output_len); /** Parse command-line option: key_opaque_algs * @@ -223,7 +219,7 @@ int rng_get( void *p_rng, unsigned char *output, size_t output_len ); * \return \c 0 on success. * \return \c 1 on parse failure. */ -int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 ); +int key_opaque_alg_parse(const char *arg, const char **alg1, const char **alg2); #if defined(MBEDTLS_USE_PSA_CRYPTO) /** Parse given opaque key algorithms to obtain psa algs and usage @@ -241,11 +237,11 @@ int key_opaque_alg_parse( const char *arg, const char **alg1, const char **alg2 * \return \c 0 on success. * \return \c 1 on parse failure. */ -int key_opaque_set_alg_usage( const char *alg1, const char *alg2, - psa_algorithm_t *psa_alg1, - psa_algorithm_t *psa_alg2, - psa_key_usage_t *usage, - mbedtls_pk_type_t key_type ); +int key_opaque_set_alg_usage(const char *alg1, const char *alg2, + psa_algorithm_t *psa_alg1, + psa_algorithm_t *psa_alg2, + psa_key_usage_t *usage, + mbedtls_pk_type_t key_type); #endif /* MBEDTLS_USE_PSA_CRYPTO */ #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) @@ -257,31 +253,31 @@ int key_opaque_set_alg_usage( const char *alg1, const char *alg2, #endif #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) -int ca_callback( void *data, mbedtls_x509_crt const *child, - mbedtls_x509_crt **candidates ); +int ca_callback(void *data, mbedtls_x509_crt const *child, + mbedtls_x509_crt **candidates); #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ /* * Test recv/send functions that make sure each try returns * WANT_READ/WANT_WRITE at least once before succeeding */ -int delayed_recv( void *ctx, unsigned char *buf, size_t len ); -int delayed_send( void *ctx, const unsigned char *buf, size_t len ); +int delayed_recv(void *ctx, unsigned char *buf, size_t len); +int delayed_send(void *ctx, const unsigned char *buf, size_t len); /* * Wait for an event from the underlying transport or the timer * (Used in event-driven IO mode). */ -int idle( mbedtls_net_context *fd, +int idle(mbedtls_net_context *fd, #if defined(MBEDTLS_TIMING_C) - mbedtls_timing_delay_context *timer, + mbedtls_timing_delay_context *timer, #endif - int idle_reason ); + int idle_reason); #if defined(MBEDTLS_TEST_HOOKS) /** Initialize whatever test hooks are enabled by the compile-time * configuration and make sense for the TLS test programs. */ -void test_hooks_init( void ); +void test_hooks_init(void); /** Check if any test hooks detected a problem. * @@ -299,14 +295,14 @@ void test_hooks_init( void ); * \return Nonzero if a problem was detected. * \c 0 if no problem was detected. */ -int test_hooks_failure_detected( void ); +int test_hooks_failure_detected(void); /** Free any resources allocated for the sake of test hooks. * * Call this at the end of the program so that resource leak analyzers * don't complain. */ -void test_hooks_free( void ); +void test_hooks_free(void); #endif /* !MBEDTLS_TEST_HOOKS */ diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c index 8fb0fef56..773c53829 100644 --- a/programs/test/benchmark.c +++ b/programs/test/benchmark.c @@ -24,10 +24,10 @@ #include "mbedtls/platform.h" #if !defined(MBEDTLS_HAVE_TIME) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_HAVE_TIME not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else @@ -72,8 +72,7 @@ int main( void ) #include #include -struct _hr_time -{ +struct _hr_time { LARGE_INTEGER start; }; @@ -85,8 +84,7 @@ struct _hr_time #include #include -struct _hr_time -{ +struct _hr_time { struct timeval start; }; @@ -96,14 +94,14 @@ struct _hr_time #include "mbedtls/memory_buffer_alloc.h" #endif -static void mbedtls_set_alarm( int seconds ); +static void mbedtls_set_alarm(int seconds); /* * For heap usage estimates, we need an estimate of the overhead per allocated * block. ptmalloc2/3 (used in gnu libc for instance) uses 2 size_t per block, * so use that as our baseline. */ -#define MEM_BLOCK_OVERHEAD ( 2 * sizeof( size_t ) ) +#define MEM_BLOCK_OVERHEAD (2 * sizeof(size_t)) /* * Size to use for the alloc buffer if MEMORY_BUFFER_ALLOC_C is defined. @@ -124,45 +122,45 @@ static void mbedtls_set_alarm( int seconds ); #if defined(MBEDTLS_ERROR_C) #define PRINT_ERROR \ - mbedtls_strerror( ret, ( char * )tmp, sizeof( tmp ) ); \ - mbedtls_printf( "FAILED: %s\n", tmp ); + mbedtls_strerror(ret, (char *) tmp, sizeof(tmp)); \ + mbedtls_printf("FAILED: %s\n", tmp); #else #define PRINT_ERROR \ - mbedtls_printf( "FAILED: -0x%04x\n", (unsigned int) -ret ); + mbedtls_printf("FAILED: -0x%04x\n", (unsigned int) -ret); #endif -#define TIME_AND_TSC( TITLE, CODE ) \ -do { \ - unsigned long ii, jj, tsc; \ - int ret = 0; \ +#define TIME_AND_TSC(TITLE, CODE) \ + do { \ + unsigned long ii, jj, tsc; \ + int ret = 0; \ \ - mbedtls_printf( HEADER_FORMAT, TITLE ); \ - fflush( stdout ); \ + mbedtls_printf(HEADER_FORMAT, TITLE); \ + fflush(stdout); \ \ - mbedtls_set_alarm( 1 ); \ - for( ii = 1; ret == 0 && ! mbedtls_timing_alarmed; ii++ ) \ - { \ - ret = CODE; \ - } \ + mbedtls_set_alarm(1); \ + for (ii = 1; ret == 0 && !mbedtls_timing_alarmed; ii++) \ + { \ + ret = CODE; \ + } \ \ - tsc = mbedtls_timing_hardclock(); \ - for( jj = 0; ret == 0 && jj < 1024; jj++ ) \ - { \ - ret = CODE; \ - } \ + tsc = mbedtls_timing_hardclock(); \ + for (jj = 0; ret == 0 && jj < 1024; jj++) \ + { \ + ret = CODE; \ + } \ \ - if( ret != 0 ) \ - { \ - PRINT_ERROR; \ - } \ - else \ - { \ - mbedtls_printf( "%9lu KiB/s, %9lu cycles/byte\n", \ - ii * BUFSIZE / 1024, \ - ( mbedtls_timing_hardclock() - tsc ) \ - / ( jj * BUFSIZE ) ); \ - } \ -} while( 0 ) + if (ret != 0) \ + { \ + PRINT_ERROR; \ + } \ + else \ + { \ + mbedtls_printf("%9lu KiB/s, %9lu cycles/byte\n", \ + ii * BUFSIZE / 1024, \ + (mbedtls_timing_hardclock() - tsc) \ + / (jj * BUFSIZE)); \ + } \ + } while (0) #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && defined(MBEDTLS_MEMORY_DEBUG) @@ -181,127 +179,125 @@ do { \ size_t max_used, max_blocks, max_bytes; \ size_t prv_used, prv_blocks; \ size_t alloc_cnt, free_cnt, prv_alloc, prv_free; \ - mbedtls_memory_buffer_alloc_cur_get( &prv_used, &prv_blocks ); \ - mbedtls_memory_buffer_alloc_max_reset( ); + mbedtls_memory_buffer_alloc_cur_get(&prv_used, &prv_blocks); \ + mbedtls_memory_buffer_alloc_max_reset(); #define MEMORY_MEASURE_RESET \ - mbedtls_memory_buffer_alloc_count_get( &prv_alloc, &prv_free ); + mbedtls_memory_buffer_alloc_count_get(&prv_alloc, &prv_free); -#define MEMORY_MEASURE_PRINT( title_len ) \ - mbedtls_memory_buffer_alloc_max_get( &max_used, &max_blocks ); \ - mbedtls_memory_buffer_alloc_count_get( &alloc_cnt, &free_cnt ); \ +#define MEMORY_MEASURE_PRINT(title_len) \ + mbedtls_memory_buffer_alloc_max_get(&max_used, &max_blocks); \ + mbedtls_memory_buffer_alloc_count_get(&alloc_cnt, &free_cnt); \ ii = TITLE_SPACE > (title_len) ? TITLE_SPACE - (title_len) : 1; \ - while( ii-- ) mbedtls_printf( " " ); \ + while (ii--) mbedtls_printf(" "); \ max_used -= prv_used; \ max_blocks -= prv_blocks; \ max_bytes = max_used + MEM_BLOCK_OVERHEAD * max_blocks; \ - mbedtls_printf( "%6u heap bytes, %6u allocs", \ - (unsigned) max_bytes, \ - (unsigned)( alloc_cnt - prv_alloc ) ); + mbedtls_printf("%6u heap bytes, %6u allocs", \ + (unsigned) max_bytes, \ + (unsigned) (alloc_cnt - prv_alloc)); #else #define MEMORY_MEASURE_INIT #define MEMORY_MEASURE_RESET -#define MEMORY_MEASURE_PRINT( title_len ) +#define MEMORY_MEASURE_PRINT(title_len) #endif -#define TIME_PUBLIC( TITLE, TYPE, CODE ) \ -do { \ - unsigned long ii; \ - int ret; \ - MEMORY_MEASURE_INIT; \ +#define TIME_PUBLIC(TITLE, TYPE, CODE) \ + do { \ + unsigned long ii; \ + int ret; \ + MEMORY_MEASURE_INIT; \ \ - mbedtls_printf( HEADER_FORMAT, TITLE ); \ - fflush( stdout ); \ - mbedtls_set_alarm( 3 ); \ + mbedtls_printf(HEADER_FORMAT, TITLE); \ + fflush(stdout); \ + mbedtls_set_alarm(3); \ \ - ret = 0; \ - for( ii = 1; ! mbedtls_timing_alarmed && ! ret ; ii++ ) \ - { \ - MEMORY_MEASURE_RESET; \ - CODE; \ - } \ + ret = 0; \ + for (ii = 1; !mbedtls_timing_alarmed && !ret; ii++) \ + { \ + MEMORY_MEASURE_RESET; \ + CODE; \ + } \ \ - if( ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ) \ - { \ - mbedtls_printf( "Feature Not Supported. Skipping.\n" ); \ - ret = 0; \ - } \ - else if( ret != 0 ) \ - { \ - PRINT_ERROR; \ - } \ - else \ - { \ - mbedtls_printf( "%6lu " TYPE "/s", ii / 3 ); \ - MEMORY_MEASURE_PRINT( sizeof( TYPE ) + 1 ); \ - mbedtls_printf( "\n" ); \ - } \ -} while( 0 ) + if (ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED) \ + { \ + mbedtls_printf("Feature Not Supported. Skipping.\n"); \ + ret = 0; \ + } \ + else if (ret != 0) \ + { \ + PRINT_ERROR; \ + } \ + else \ + { \ + mbedtls_printf("%6lu " TYPE "/s", ii / 3); \ + MEMORY_MEASURE_PRINT(sizeof(TYPE) + 1); \ + mbedtls_printf("\n"); \ + } \ + } while (0) #if !defined(HAVE_HARDCLOCK) && defined(MBEDTLS_HAVE_ASM) && \ - ( defined(_MSC_VER) && defined(_M_IX86) ) || defined(__WATCOMC__) + (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long tsc; __asm rdtsc - __asm mov [tsc], eax - return( tsc ); + __asm mov[tsc], eax + return tsc; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && ( _MSC_VER && _M_IX86 ) || __WATCOMC__ */ /* some versions of mingw-64 have 32-bit longs even on x84_64 */ #if !defined(HAVE_HARDCLOCK) && defined(MBEDTLS_HAVE_ASM) && \ - defined(__GNUC__) && ( defined(__i386__) || ( \ - ( defined(__amd64__) || defined( __x86_64__) ) && __SIZEOF_LONG__ == 4 ) ) + defined(__GNUC__) && (defined(__i386__) || ( \ + (defined(__amd64__) || defined(__x86_64__)) && __SIZEOF_LONG__ == 4)) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long lo, hi; - asm volatile( "rdtsc" : "=a" (lo), "=d" (hi) ); - return( lo ); + asm volatile ("rdtsc" : "=a" (lo), "=d" (hi)); + return lo; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && __i386__ */ #if !defined(HAVE_HARDCLOCK) && defined(MBEDTLS_HAVE_ASM) && \ - defined(__GNUC__) && ( defined(__amd64__) || defined(__x86_64__) ) + defined(__GNUC__) && (defined(__amd64__) || defined(__x86_64__)) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long lo, hi; - asm volatile( "rdtsc" : "=a" (lo), "=d" (hi) ); - return( lo | ( hi << 32 ) ); + asm volatile ("rdtsc" : "=a" (lo), "=d" (hi)); + return lo | (hi << 32); } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && ( __amd64__ || __x86_64__ ) */ #if !defined(HAVE_HARDCLOCK) && defined(MBEDTLS_HAVE_ASM) && \ - defined(__GNUC__) && ( defined(__powerpc__) || defined(__ppc__) ) + defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long tbl, tbu0, tbu1; - do - { - asm volatile( "mftbu %0" : "=r" (tbu0) ); - asm volatile( "mftb %0" : "=r" (tbl ) ); - asm volatile( "mftbu %0" : "=r" (tbu1) ); - } - while( tbu0 != tbu1 ); + do { + asm volatile ("mftbu %0" : "=r" (tbu0)); + asm volatile ("mftb %0" : "=r" (tbl)); + asm volatile ("mftbu %0" : "=r" (tbu1)); + } while (tbu0 != tbu1); - return( tbl ); + return tbl; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && ( __powerpc__ || __ppc__ ) */ @@ -314,11 +310,11 @@ static unsigned long mbedtls_timing_hardclock( void ) #else #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long tick; - asm volatile( "rdpr %%tick, %0;" : "=&r" (tick) ); - return( tick ); + asm volatile ("rdpr %%tick, %0;" : "=&r" (tick)); + return tick; } #endif /* __OpenBSD__ */ #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && @@ -329,12 +325,12 @@ static unsigned long mbedtls_timing_hardclock( void ) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long tick; - asm volatile( ".byte 0x83, 0x41, 0x00, 0x00" ); - asm volatile( "mov %%g1, %0" : "=r" (tick) ); - return( tick ); + asm volatile (".byte 0x83, 0x41, 0x00, 0x00"); + asm volatile ("mov %%g1, %0" : "=r" (tick)); + return tick; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && __sparc__ && !__sparc64__ */ @@ -344,11 +340,11 @@ static unsigned long mbedtls_timing_hardclock( void ) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long cc; - asm volatile( "rpcc %0" : "=r" (cc) ); - return( cc & 0xFFFFFFFF ); + asm volatile ("rpcc %0" : "=r" (cc)); + return cc & 0xFFFFFFFF; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && __alpha__ */ @@ -358,11 +354,11 @@ static unsigned long mbedtls_timing_hardclock( void ) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { unsigned long itc; - asm volatile( "mov %0 = ar.itc" : "=r" (itc) ); - return( itc ); + asm volatile ("mov %0 = ar.itc" : "=r" (itc)); + return itc; } #endif /* !HAVE_HARDCLOCK && MBEDTLS_HAVE_ASM && __GNUC__ && __ia64__ */ @@ -372,13 +368,13 @@ static unsigned long mbedtls_timing_hardclock( void ) #define HAVE_HARDCLOCK -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { LARGE_INTEGER offset; - QueryPerformanceCounter( &offset ); + QueryPerformanceCounter(&offset); - return( (unsigned long)( offset.QuadPart ) ); + return (unsigned long) (offset.QuadPart); } #endif /* !HAVE_HARDCLOCK && _MSC_VER && !EFIX64 && !EFI32 */ @@ -389,19 +385,18 @@ static unsigned long mbedtls_timing_hardclock( void ) static int hardclock_init = 0; static struct timeval tv_init; -static unsigned long mbedtls_timing_hardclock( void ) +static unsigned long mbedtls_timing_hardclock(void) { struct timeval tv_cur; - if( hardclock_init == 0 ) - { - gettimeofday( &tv_init, NULL ); + if (hardclock_init == 0) { + gettimeofday(&tv_init, NULL); hardclock_init = 1; } - gettimeofday( &tv_cur, NULL ); - return( ( tv_cur.tv_sec - tv_init.tv_sec ) * 1000000U - + ( tv_cur.tv_usec - tv_init.tv_usec ) ); + gettimeofday(&tv_cur, NULL); + return (tv_cur.tv_sec - tv_init.tv_sec) * 1000000U + + (tv_cur.tv_usec - tv_init.tv_usec); } #endif /* !HAVE_HARDCLOCK */ @@ -412,19 +407,18 @@ volatile int mbedtls_timing_alarmed = 0; /* It's OK to use a global because alarm() is supposed to be global anyway */ static DWORD alarmMs; -static void TimerProc( void *TimerContext ) +static void TimerProc(void *TimerContext) { (void) TimerContext; - Sleep( alarmMs ); + Sleep(alarmMs); mbedtls_timing_alarmed = 1; /* _endthread will be called implicitly on return * That ensures execution of thread function's epilogue */ } -static void mbedtls_set_alarm( int seconds ) +static void mbedtls_set_alarm(int seconds) { - if( seconds == 0 ) - { + if (seconds == 0) { /* No need to create a thread for this simple case. * Also, this shorcut is more reliable at least on MinGW32 */ mbedtls_timing_alarmed = 1; @@ -433,24 +427,23 @@ static void mbedtls_set_alarm( int seconds ) mbedtls_timing_alarmed = 0; alarmMs = seconds * 1000; - (void) _beginthread( TimerProc, 0, NULL ); + (void) _beginthread(TimerProc, 0, NULL); } #else /* _WIN32 && !EFIX64 && !EFI32 */ -static void sighandler( int signum ) +static void sighandler(int signum) { mbedtls_timing_alarmed = 1; - signal( signum, sighandler ); + signal(signum, sighandler); } -static void mbedtls_set_alarm( int seconds ) +static void mbedtls_set_alarm(int seconds) { mbedtls_timing_alarmed = 0; - signal( SIGALRM, sighandler ); - alarm( seconds ); - if( seconds == 0 ) - { + signal(SIGALRM, sighandler); + alarm(seconds); + if (seconds == 0) { /* alarm(0) cancelled any previous pending alarm, but the handler won't fire, so raise the flag straight away. */ mbedtls_timing_alarmed = 1; @@ -459,53 +452,53 @@ static void mbedtls_set_alarm( int seconds ) #endif /* _WIN32 && !EFIX64 && !EFI32 */ -static int myrand( void *rng_state, unsigned char *output, size_t len ) +static int myrand(void *rng_state, unsigned char *output, size_t len) { size_t use_len; int rnd; - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - while( len > 0 ) - { + while (len > 0) { use_len = len; - if( use_len > sizeof(int) ) + if (use_len > sizeof(int)) { use_len = sizeof(int); + } rnd = rand(); - memcpy( output, &rnd, use_len ); + memcpy(output, &rnd, use_len); output += use_len; len -= use_len; } - return( 0 ); + return 0; } -#define CHECK_AND_CONTINUE( R ) \ +#define CHECK_AND_CONTINUE(R) \ { \ - int CHECK_AND_CONTINUE_ret = ( R ); \ - if( CHECK_AND_CONTINUE_ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED ) { \ - mbedtls_printf( "Feature not supported. Skipping.\n" ); \ + int CHECK_AND_CONTINUE_ret = (R); \ + if (CHECK_AND_CONTINUE_ret == MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED) { \ + mbedtls_printf("Feature not supported. Skipping.\n"); \ continue; \ } \ - else if( CHECK_AND_CONTINUE_ret != 0 ) { \ - mbedtls_exit( 1 ); \ + else if (CHECK_AND_CONTINUE_ret != 0) { \ + mbedtls_exit(1); \ } \ } #if defined(MBEDTLS_ECP_C) -static int set_ecp_curve( const char *string, mbedtls_ecp_curve_info *curve ) +static int set_ecp_curve(const char *string, mbedtls_ecp_curve_info *curve) { const mbedtls_ecp_curve_info *found = - mbedtls_ecp_curve_info_from_name( string ); - if( found != NULL ) - { + mbedtls_ecp_curve_info_from_name(string); + if (found != NULL) { *curve = *found; - return( 1 ); + return 1; + } else { + return 0; } - else - return( 0 ); } #endif @@ -523,7 +516,7 @@ typedef struct { } todo_list; -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int i; unsigned char tmp[200]; @@ -537,460 +530,447 @@ int main( int argc, char *argv[] ) { MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, { MBEDTLS_ECP_DP_NONE, 0, 0, NULL }, }; - const mbedtls_ecp_curve_info *curve_list = mbedtls_ecp_curve_list( ); + const mbedtls_ecp_curve_info *curve_list = mbedtls_ecp_curve_list(); #endif #if defined(MBEDTLS_ECP_C) (void) curve_list; /* Unused in some configurations where no benchmark uses ECC */ #endif - if( argc <= 1 ) - { - memset( &todo, 1, sizeof( todo ) ); - } - else - { - memset( &todo, 0, sizeof( todo ) ); + if (argc <= 1) { + memset(&todo, 1, sizeof(todo)); + } else { + memset(&todo, 0, sizeof(todo)); - for( i = 1; i < argc; i++ ) - { - if( strcmp( argv[i], "md5" ) == 0 ) + for (i = 1; i < argc; i++) { + if (strcmp(argv[i], "md5") == 0) { todo.md5 = 1; - else if( strcmp( argv[i], "ripemd160" ) == 0 ) + } else if (strcmp(argv[i], "ripemd160") == 0) { todo.ripemd160 = 1; - else if( strcmp( argv[i], "sha1" ) == 0 ) + } else if (strcmp(argv[i], "sha1") == 0) { todo.sha1 = 1; - else if( strcmp( argv[i], "sha256" ) == 0 ) + } else if (strcmp(argv[i], "sha256") == 0) { todo.sha256 = 1; - else if( strcmp( argv[i], "sha512" ) == 0 ) + } else if (strcmp(argv[i], "sha512") == 0) { todo.sha512 = 1; - else if( strcmp( argv[i], "des3" ) == 0 ) + } else if (strcmp(argv[i], "des3") == 0) { todo.des3 = 1; - else if( strcmp( argv[i], "des" ) == 0 ) + } else if (strcmp(argv[i], "des") == 0) { todo.des = 1; - else if( strcmp( argv[i], "aes_cbc" ) == 0 ) + } else if (strcmp(argv[i], "aes_cbc") == 0) { todo.aes_cbc = 1; - else if( strcmp( argv[i], "aes_xts" ) == 0 ) + } else if (strcmp(argv[i], "aes_xts") == 0) { todo.aes_xts = 1; - else if( strcmp( argv[i], "aes_gcm" ) == 0 ) + } else if (strcmp(argv[i], "aes_gcm") == 0) { todo.aes_gcm = 1; - else if( strcmp( argv[i], "aes_ccm" ) == 0 ) + } else if (strcmp(argv[i], "aes_ccm") == 0) { todo.aes_ccm = 1; - else if( strcmp( argv[i], "chachapoly" ) == 0 ) + } else if (strcmp(argv[i], "chachapoly") == 0) { todo.chachapoly = 1; - else if( strcmp( argv[i], "aes_cmac" ) == 0 ) + } else if (strcmp(argv[i], "aes_cmac") == 0) { todo.aes_cmac = 1; - else if( strcmp( argv[i], "des3_cmac" ) == 0 ) + } else if (strcmp(argv[i], "des3_cmac") == 0) { todo.des3_cmac = 1; - else if( strcmp( argv[i], "aria" ) == 0 ) + } else if (strcmp(argv[i], "aria") == 0) { todo.aria = 1; - else if( strcmp( argv[i], "camellia" ) == 0 ) + } else if (strcmp(argv[i], "camellia") == 0) { todo.camellia = 1; - else if( strcmp( argv[i], "chacha20" ) == 0 ) + } else if (strcmp(argv[i], "chacha20") == 0) { todo.chacha20 = 1; - else if( strcmp( argv[i], "poly1305" ) == 0 ) + } else if (strcmp(argv[i], "poly1305") == 0) { todo.poly1305 = 1; - else if( strcmp( argv[i], "ctr_drbg" ) == 0 ) + } else if (strcmp(argv[i], "ctr_drbg") == 0) { todo.ctr_drbg = 1; - else if( strcmp( argv[i], "hmac_drbg" ) == 0 ) + } else if (strcmp(argv[i], "hmac_drbg") == 0) { todo.hmac_drbg = 1; - else if( strcmp( argv[i], "rsa" ) == 0 ) + } else if (strcmp(argv[i], "rsa") == 0) { todo.rsa = 1; - else if( strcmp( argv[i], "dhm" ) == 0 ) + } else if (strcmp(argv[i], "dhm") == 0) { todo.dhm = 1; - else if( strcmp( argv[i], "ecdsa" ) == 0 ) + } else if (strcmp(argv[i], "ecdsa") == 0) { todo.ecdsa = 1; - else if( strcmp( argv[i], "ecdh" ) == 0 ) + } else if (strcmp(argv[i], "ecdh") == 0) { todo.ecdh = 1; + } #if defined(MBEDTLS_ECP_C) - else if( set_ecp_curve( argv[i], single_curve ) ) + else if (set_ecp_curve(argv[i], single_curve)) { curve_list = single_curve; + } #endif - else - { - mbedtls_printf( "Unrecognized option: %s\n", argv[i] ); - mbedtls_printf( "Available options: " OPTIONS ); + else { + mbedtls_printf("Unrecognized option: %s\n", argv[i]); + mbedtls_printf("Available options: " OPTIONS); } } } - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof( alloc_buf ) ); + mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf)); #endif - memset( buf, 0xAA, sizeof( buf ) ); - memset( tmp, 0xBB, sizeof( tmp ) ); + memset(buf, 0xAA, sizeof(buf)); + memset(tmp, 0xBB, sizeof(tmp)); /* Avoid "unused static function" warning in configurations without * symmetric crypto. */ (void) mbedtls_timing_hardclock; #if defined(MBEDTLS_MD5_C) - if( todo.md5 ) - TIME_AND_TSC( "MD5", mbedtls_md5( buf, BUFSIZE, tmp ) ); + if (todo.md5) { + TIME_AND_TSC("MD5", mbedtls_md5(buf, BUFSIZE, tmp)); + } #endif #if defined(MBEDTLS_RIPEMD160_C) - if( todo.ripemd160 ) - TIME_AND_TSC( "RIPEMD160", mbedtls_ripemd160( buf, BUFSIZE, tmp ) ); + if (todo.ripemd160) { + TIME_AND_TSC("RIPEMD160", mbedtls_ripemd160(buf, BUFSIZE, tmp)); + } #endif #if defined(MBEDTLS_SHA1_C) - if( todo.sha1 ) - TIME_AND_TSC( "SHA-1", mbedtls_sha1( buf, BUFSIZE, tmp ) ); + if (todo.sha1) { + TIME_AND_TSC("SHA-1", mbedtls_sha1(buf, BUFSIZE, tmp)); + } #endif #if defined(MBEDTLS_SHA256_C) - if( todo.sha256 ) - TIME_AND_TSC( "SHA-256", mbedtls_sha256( buf, BUFSIZE, tmp, 0 ) ); + if (todo.sha256) { + TIME_AND_TSC("SHA-256", mbedtls_sha256(buf, BUFSIZE, tmp, 0)); + } #endif #if defined(MBEDTLS_SHA512_C) - if( todo.sha512 ) - TIME_AND_TSC( "SHA-512", mbedtls_sha512( buf, BUFSIZE, tmp, 0 ) ); + if (todo.sha512) { + TIME_AND_TSC("SHA-512", mbedtls_sha512(buf, BUFSIZE, tmp, 0)); + } #endif #if defined(MBEDTLS_DES_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( todo.des3 ) - { + if (todo.des3) { mbedtls_des3_context des3; - mbedtls_des3_init( &des3 ); - if( mbedtls_des3_set3key_enc( &des3, tmp ) != 0 ) - mbedtls_exit( 1 ); - TIME_AND_TSC( "3DES", - mbedtls_des3_crypt_cbc( &des3, MBEDTLS_DES_ENCRYPT, BUFSIZE, tmp, buf, buf ) ); - mbedtls_des3_free( &des3 ); + mbedtls_des3_init(&des3); + if (mbedtls_des3_set3key_enc(&des3, tmp) != 0) { + mbedtls_exit(1); + } + TIME_AND_TSC("3DES", + mbedtls_des3_crypt_cbc(&des3, MBEDTLS_DES_ENCRYPT, BUFSIZE, tmp, buf, buf)); + mbedtls_des3_free(&des3); } - if( todo.des ) - { + if (todo.des) { mbedtls_des_context des; - mbedtls_des_init( &des ); - if( mbedtls_des_setkey_enc( &des, tmp ) != 0 ) - mbedtls_exit( 1 ); - TIME_AND_TSC( "DES", - mbedtls_des_crypt_cbc( &des, MBEDTLS_DES_ENCRYPT, BUFSIZE, tmp, buf, buf ) ); - mbedtls_des_free( &des ); + mbedtls_des_init(&des); + if (mbedtls_des_setkey_enc(&des, tmp) != 0) { + mbedtls_exit(1); + } + TIME_AND_TSC("DES", + mbedtls_des_crypt_cbc(&des, MBEDTLS_DES_ENCRYPT, BUFSIZE, tmp, buf, buf)); + mbedtls_des_free(&des); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CMAC_C) - if( todo.des3_cmac ) - { + if (todo.des3_cmac) { unsigned char output[8]; const mbedtls_cipher_info_t *cipher_info; - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); - cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_DES_EDE3_ECB ); + cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_DES_EDE3_ECB); - TIME_AND_TSC( "3DES-CMAC", - mbedtls_cipher_cmac( cipher_info, tmp, 192, buf, - BUFSIZE, output ) ); + TIME_AND_TSC("3DES-CMAC", + mbedtls_cipher_cmac(cipher_info, tmp, 192, buf, + BUFSIZE, output)); } #endif /* MBEDTLS_CMAC_C */ #endif /* MBEDTLS_DES_C */ #if defined(MBEDTLS_AES_C) #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( todo.aes_cbc ) - { + if (todo.aes_cbc) { int keysize; mbedtls_aes_context aes; - mbedtls_aes_init( &aes ); - for( keysize = 128; keysize <= 256; keysize += 64 ) - { - mbedtls_snprintf( title, sizeof( title ), "AES-CBC-%d", keysize ); + mbedtls_aes_init(&aes); + for (keysize = 128; keysize <= 256; keysize += 64) { + mbedtls_snprintf(title, sizeof(title), "AES-CBC-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - CHECK_AND_CONTINUE( mbedtls_aes_setkey_enc( &aes, tmp, keysize ) ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + CHECK_AND_CONTINUE(mbedtls_aes_setkey_enc(&aes, tmp, keysize)); - TIME_AND_TSC( title, - mbedtls_aes_crypt_cbc( &aes, MBEDTLS_AES_ENCRYPT, BUFSIZE, tmp, buf, buf ) ); + TIME_AND_TSC(title, + mbedtls_aes_crypt_cbc(&aes, MBEDTLS_AES_ENCRYPT, BUFSIZE, tmp, buf, buf)); } - mbedtls_aes_free( &aes ); + mbedtls_aes_free(&aes); } #endif #if defined(MBEDTLS_CIPHER_MODE_XTS) - if( todo.aes_xts ) - { + if (todo.aes_xts) { int keysize; mbedtls_aes_xts_context ctx; - mbedtls_aes_xts_init( &ctx ); - for( keysize = 128; keysize <= 256; keysize += 128 ) - { - mbedtls_snprintf( title, sizeof( title ), "AES-XTS-%d", keysize ); + mbedtls_aes_xts_init(&ctx); + for (keysize = 128; keysize <= 256; keysize += 128) { + mbedtls_snprintf(title, sizeof(title), "AES-XTS-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - CHECK_AND_CONTINUE( mbedtls_aes_xts_setkey_enc( &ctx, tmp, keysize * 2 ) ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + CHECK_AND_CONTINUE(mbedtls_aes_xts_setkey_enc(&ctx, tmp, keysize * 2)); - TIME_AND_TSC( title, - mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_ENCRYPT, BUFSIZE, - tmp, buf, buf ) ); + TIME_AND_TSC(title, + mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_ENCRYPT, BUFSIZE, + tmp, buf, buf)); - mbedtls_aes_xts_free( &ctx ); + mbedtls_aes_xts_free(&ctx); } } #endif #if defined(MBEDTLS_GCM_C) - if( todo.aes_gcm ) - { + if (todo.aes_gcm) { int keysize; mbedtls_gcm_context gcm; - mbedtls_gcm_init( &gcm ); - for( keysize = 128; keysize <= 256; keysize += 64 ) - { - mbedtls_snprintf( title, sizeof( title ), "AES-GCM-%d", keysize ); + mbedtls_gcm_init(&gcm); + for (keysize = 128; keysize <= 256; keysize += 64) { + mbedtls_snprintf(title, sizeof(title), "AES-GCM-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - mbedtls_gcm_setkey( &gcm, MBEDTLS_CIPHER_ID_AES, tmp, keysize ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + mbedtls_gcm_setkey(&gcm, MBEDTLS_CIPHER_ID_AES, tmp, keysize); - TIME_AND_TSC( title, - mbedtls_gcm_crypt_and_tag( &gcm, MBEDTLS_GCM_ENCRYPT, BUFSIZE, tmp, - 12, NULL, 0, buf, buf, 16, tmp ) ); + TIME_AND_TSC(title, + mbedtls_gcm_crypt_and_tag(&gcm, MBEDTLS_GCM_ENCRYPT, BUFSIZE, tmp, + 12, NULL, 0, buf, buf, 16, tmp)); - mbedtls_gcm_free( &gcm ); + mbedtls_gcm_free(&gcm); } } #endif #if defined(MBEDTLS_CCM_C) - if( todo.aes_ccm ) - { + if (todo.aes_ccm) { int keysize; mbedtls_ccm_context ccm; - mbedtls_ccm_init( &ccm ); - for( keysize = 128; keysize <= 256; keysize += 64 ) - { - mbedtls_snprintf( title, sizeof( title ), "AES-CCM-%d", keysize ); + mbedtls_ccm_init(&ccm); + for (keysize = 128; keysize <= 256; keysize += 64) { + mbedtls_snprintf(title, sizeof(title), "AES-CCM-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - mbedtls_ccm_setkey( &ccm, MBEDTLS_CIPHER_ID_AES, tmp, keysize ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + mbedtls_ccm_setkey(&ccm, MBEDTLS_CIPHER_ID_AES, tmp, keysize); - TIME_AND_TSC( title, - mbedtls_ccm_encrypt_and_tag( &ccm, BUFSIZE, tmp, - 12, NULL, 0, buf, buf, tmp, 16 ) ); + TIME_AND_TSC(title, + mbedtls_ccm_encrypt_and_tag(&ccm, BUFSIZE, tmp, + 12, NULL, 0, buf, buf, tmp, 16)); - mbedtls_ccm_free( &ccm ); + mbedtls_ccm_free(&ccm); } } #endif #if defined(MBEDTLS_CHACHAPOLY_C) - if( todo.chachapoly ) - { + if (todo.chachapoly) { mbedtls_chachapoly_context chachapoly; - mbedtls_chachapoly_init( &chachapoly ); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); + mbedtls_chachapoly_init(&chachapoly); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); - mbedtls_snprintf( title, sizeof( title ), "ChaCha20-Poly1305" ); + mbedtls_snprintf(title, sizeof(title), "ChaCha20-Poly1305"); - mbedtls_chachapoly_setkey( &chachapoly, tmp ); + mbedtls_chachapoly_setkey(&chachapoly, tmp); - TIME_AND_TSC( title, - mbedtls_chachapoly_encrypt_and_tag( &chachapoly, - BUFSIZE, tmp, NULL, 0, buf, buf, tmp ) ); + TIME_AND_TSC(title, + mbedtls_chachapoly_encrypt_and_tag(&chachapoly, + BUFSIZE, tmp, NULL, 0, buf, buf, tmp)); - mbedtls_chachapoly_free( &chachapoly ); + mbedtls_chachapoly_free(&chachapoly); } #endif #if defined(MBEDTLS_CMAC_C) - if( todo.aes_cmac ) - { + if (todo.aes_cmac) { unsigned char output[16]; const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_type_t cipher_type; int keysize; - for( keysize = 128, cipher_type = MBEDTLS_CIPHER_AES_128_ECB; + for (keysize = 128, cipher_type = MBEDTLS_CIPHER_AES_128_ECB; keysize <= 256; - keysize += 64, cipher_type++ ) - { - mbedtls_snprintf( title, sizeof( title ), "AES-CMAC-%d", keysize ); + keysize += 64, cipher_type++) { + mbedtls_snprintf(title, sizeof(title), "AES-CMAC-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); - cipher_info = mbedtls_cipher_info_from_type( cipher_type ); + cipher_info = mbedtls_cipher_info_from_type(cipher_type); - TIME_AND_TSC( title, - mbedtls_cipher_cmac( cipher_info, tmp, keysize, - buf, BUFSIZE, output ) ); + TIME_AND_TSC(title, + mbedtls_cipher_cmac(cipher_info, tmp, keysize, + buf, BUFSIZE, output)); } - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - TIME_AND_TSC( "AES-CMAC-PRF-128", - mbedtls_aes_cmac_prf_128( tmp, 16, buf, BUFSIZE, - output ) ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + TIME_AND_TSC("AES-CMAC-PRF-128", + mbedtls_aes_cmac_prf_128(tmp, 16, buf, BUFSIZE, + output)); } #endif /* MBEDTLS_CMAC_C */ #endif /* MBEDTLS_AES_C */ #if defined(MBEDTLS_ARIA_C) && defined(MBEDTLS_CIPHER_MODE_CBC) - if( todo.aria ) - { + if (todo.aria) { int keysize; mbedtls_aria_context aria; - mbedtls_aria_init( &aria ); - for( keysize = 128; keysize <= 256; keysize += 64 ) - { - mbedtls_snprintf( title, sizeof( title ), "ARIA-CBC-%d", keysize ); + mbedtls_aria_init(&aria); + for (keysize = 128; keysize <= 256; keysize += 64) { + mbedtls_snprintf(title, sizeof(title), "ARIA-CBC-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - mbedtls_aria_setkey_enc( &aria, tmp, keysize ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + mbedtls_aria_setkey_enc(&aria, tmp, keysize); - TIME_AND_TSC( title, - mbedtls_aria_crypt_cbc( &aria, MBEDTLS_ARIA_ENCRYPT, - BUFSIZE, tmp, buf, buf ) ); + TIME_AND_TSC(title, + mbedtls_aria_crypt_cbc(&aria, MBEDTLS_ARIA_ENCRYPT, + BUFSIZE, tmp, buf, buf)); } - mbedtls_aria_free( &aria ); + mbedtls_aria_free(&aria); } #endif #if defined(MBEDTLS_CAMELLIA_C) && defined(MBEDTLS_CIPHER_MODE_CBC) - if( todo.camellia ) - { + if (todo.camellia) { int keysize; mbedtls_camellia_context camellia; - mbedtls_camellia_init( &camellia ); - for( keysize = 128; keysize <= 256; keysize += 64 ) - { - mbedtls_snprintf( title, sizeof( title ), "CAMELLIA-CBC-%d", keysize ); + mbedtls_camellia_init(&camellia); + for (keysize = 128; keysize <= 256; keysize += 64) { + mbedtls_snprintf(title, sizeof(title), "CAMELLIA-CBC-%d", keysize); - memset( buf, 0, sizeof( buf ) ); - memset( tmp, 0, sizeof( tmp ) ); - mbedtls_camellia_setkey_enc( &camellia, tmp, keysize ); + memset(buf, 0, sizeof(buf)); + memset(tmp, 0, sizeof(tmp)); + mbedtls_camellia_setkey_enc(&camellia, tmp, keysize); - TIME_AND_TSC( title, - mbedtls_camellia_crypt_cbc( &camellia, MBEDTLS_CAMELLIA_ENCRYPT, - BUFSIZE, tmp, buf, buf ) ); + TIME_AND_TSC(title, + mbedtls_camellia_crypt_cbc(&camellia, MBEDTLS_CAMELLIA_ENCRYPT, + BUFSIZE, tmp, buf, buf)); } - mbedtls_camellia_free( &camellia ); + mbedtls_camellia_free(&camellia); } #endif #if defined(MBEDTLS_CHACHA20_C) - if ( todo.chacha20 ) - { - TIME_AND_TSC( "ChaCha20", mbedtls_chacha20_crypt( buf, buf, 0U, BUFSIZE, buf, buf ) ); + if (todo.chacha20) { + TIME_AND_TSC("ChaCha20", mbedtls_chacha20_crypt(buf, buf, 0U, BUFSIZE, buf, buf)); } #endif #if defined(MBEDTLS_POLY1305_C) - if ( todo.poly1305 ) - { - TIME_AND_TSC( "Poly1305", mbedtls_poly1305_mac( buf, buf, BUFSIZE, buf ) ); + if (todo.poly1305) { + TIME_AND_TSC("Poly1305", mbedtls_poly1305_mac(buf, buf, BUFSIZE, buf)); } #endif #if defined(MBEDTLS_CTR_DRBG_C) - if( todo.ctr_drbg ) - { + if (todo.ctr_drbg) { mbedtls_ctr_drbg_context ctr_drbg; - mbedtls_ctr_drbg_init( &ctr_drbg ); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, myrand, NULL, NULL, 0 ) != 0 ) + mbedtls_ctr_drbg_init(&ctr_drbg); + if (mbedtls_ctr_drbg_seed(&ctr_drbg, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - TIME_AND_TSC( "CTR_DRBG (NOPR)", - mbedtls_ctr_drbg_random( &ctr_drbg, buf, BUFSIZE ) ); - mbedtls_ctr_drbg_free( &ctr_drbg ); + } + TIME_AND_TSC("CTR_DRBG (NOPR)", + mbedtls_ctr_drbg_random(&ctr_drbg, buf, BUFSIZE)); + mbedtls_ctr_drbg_free(&ctr_drbg); - mbedtls_ctr_drbg_init( &ctr_drbg ); - if( mbedtls_ctr_drbg_seed( &ctr_drbg, myrand, NULL, NULL, 0 ) != 0 ) + mbedtls_ctr_drbg_init(&ctr_drbg); + if (mbedtls_ctr_drbg_seed(&ctr_drbg, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - mbedtls_ctr_drbg_set_prediction_resistance( &ctr_drbg, MBEDTLS_CTR_DRBG_PR_ON ); - TIME_AND_TSC( "CTR_DRBG (PR)", - mbedtls_ctr_drbg_random( &ctr_drbg, buf, BUFSIZE ) ); - mbedtls_ctr_drbg_free( &ctr_drbg ); + } + mbedtls_ctr_drbg_set_prediction_resistance(&ctr_drbg, MBEDTLS_CTR_DRBG_PR_ON); + TIME_AND_TSC("CTR_DRBG (PR)", + mbedtls_ctr_drbg_random(&ctr_drbg, buf, BUFSIZE)); + mbedtls_ctr_drbg_free(&ctr_drbg); } #endif #if defined(MBEDTLS_HMAC_DRBG_C) && \ - ( defined(MBEDTLS_SHA1_C) || defined(MBEDTLS_SHA256_C) ) - if( todo.hmac_drbg ) - { + (defined(MBEDTLS_SHA1_C) || defined(MBEDTLS_SHA256_C)) + if (todo.hmac_drbg) { mbedtls_hmac_drbg_context hmac_drbg; const mbedtls_md_info_t *md_info; - mbedtls_hmac_drbg_init( &hmac_drbg ); + mbedtls_hmac_drbg_init(&hmac_drbg); #if defined(MBEDTLS_SHA1_C) - if( ( md_info = mbedtls_md_info_from_type( MBEDTLS_MD_SHA1 ) ) == NULL ) + if ((md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA1)) == NULL) { mbedtls_exit(1); + } - if( mbedtls_hmac_drbg_seed( &hmac_drbg, md_info, myrand, NULL, NULL, 0 ) != 0 ) + if (mbedtls_hmac_drbg_seed(&hmac_drbg, md_info, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - TIME_AND_TSC( "HMAC_DRBG SHA-1 (NOPR)", - mbedtls_hmac_drbg_random( &hmac_drbg, buf, BUFSIZE ) ); + } + TIME_AND_TSC("HMAC_DRBG SHA-1 (NOPR)", + mbedtls_hmac_drbg_random(&hmac_drbg, buf, BUFSIZE)); - if( mbedtls_hmac_drbg_seed( &hmac_drbg, md_info, myrand, NULL, NULL, 0 ) != 0 ) + if (mbedtls_hmac_drbg_seed(&hmac_drbg, md_info, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - mbedtls_hmac_drbg_set_prediction_resistance( &hmac_drbg, - MBEDTLS_HMAC_DRBG_PR_ON ); - TIME_AND_TSC( "HMAC_DRBG SHA-1 (PR)", - mbedtls_hmac_drbg_random( &hmac_drbg, buf, BUFSIZE ) ); + } + mbedtls_hmac_drbg_set_prediction_resistance(&hmac_drbg, + MBEDTLS_HMAC_DRBG_PR_ON); + TIME_AND_TSC("HMAC_DRBG SHA-1 (PR)", + mbedtls_hmac_drbg_random(&hmac_drbg, buf, BUFSIZE)); #endif #if defined(MBEDTLS_SHA256_C) - if( ( md_info = mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ) ) == NULL ) + if ((md_info = mbedtls_md_info_from_type(MBEDTLS_MD_SHA256)) == NULL) { mbedtls_exit(1); + } - if( mbedtls_hmac_drbg_seed( &hmac_drbg, md_info, myrand, NULL, NULL, 0 ) != 0 ) + if (mbedtls_hmac_drbg_seed(&hmac_drbg, md_info, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - TIME_AND_TSC( "HMAC_DRBG SHA-256 (NOPR)", - mbedtls_hmac_drbg_random( &hmac_drbg, buf, BUFSIZE ) ); + } + TIME_AND_TSC("HMAC_DRBG SHA-256 (NOPR)", + mbedtls_hmac_drbg_random(&hmac_drbg, buf, BUFSIZE)); - if( mbedtls_hmac_drbg_seed( &hmac_drbg, md_info, myrand, NULL, NULL, 0 ) != 0 ) + if (mbedtls_hmac_drbg_seed(&hmac_drbg, md_info, myrand, NULL, NULL, 0) != 0) { mbedtls_exit(1); - mbedtls_hmac_drbg_set_prediction_resistance( &hmac_drbg, - MBEDTLS_HMAC_DRBG_PR_ON ); - TIME_AND_TSC( "HMAC_DRBG SHA-256 (PR)", - mbedtls_hmac_drbg_random( &hmac_drbg, buf, BUFSIZE ) ); + } + mbedtls_hmac_drbg_set_prediction_resistance(&hmac_drbg, + MBEDTLS_HMAC_DRBG_PR_ON); + TIME_AND_TSC("HMAC_DRBG SHA-256 (PR)", + mbedtls_hmac_drbg_random(&hmac_drbg, buf, BUFSIZE)); #endif - mbedtls_hmac_drbg_free( &hmac_drbg ); + mbedtls_hmac_drbg_free(&hmac_drbg); } #endif /* MBEDTLS_HMAC_DRBG_C && ( MBEDTLS_SHA1_C || MBEDTLS_SHA256_C ) */ #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) - if( todo.rsa ) - { + if (todo.rsa) { int keysize; mbedtls_rsa_context rsa; - for( keysize = 2048; keysize <= 4096; keysize *= 2 ) - { - mbedtls_snprintf( title, sizeof( title ), "RSA-%d", keysize ); + for (keysize = 2048; keysize <= 4096; keysize *= 2) { + mbedtls_snprintf(title, sizeof(title), "RSA-%d", keysize); - mbedtls_rsa_init( &rsa ); - mbedtls_rsa_gen_key( &rsa, myrand, NULL, keysize, 65537 ); + mbedtls_rsa_init(&rsa); + mbedtls_rsa_gen_key(&rsa, myrand, NULL, keysize, 65537); - TIME_PUBLIC( title, " public", - buf[0] = 0; - ret = mbedtls_rsa_public( &rsa, buf, buf ) ); + TIME_PUBLIC(title, " public", + buf[0] = 0; + ret = mbedtls_rsa_public(&rsa, buf, buf)); - TIME_PUBLIC( title, "private", - buf[0] = 0; - ret = mbedtls_rsa_private( &rsa, myrand, NULL, buf, buf ) ); + TIME_PUBLIC(title, "private", + buf[0] = 0; + ret = mbedtls_rsa_private(&rsa, myrand, NULL, buf, buf)); - mbedtls_rsa_free( &rsa ); + mbedtls_rsa_free(&rsa); } } #endif #if defined(MBEDTLS_DHM_C) && defined(MBEDTLS_BIGNUM_C) - if( todo.dhm ) - { + if (todo.dhm) { int dhm_sizes[] = { 2048, 3072 }; static const unsigned char dhm_P_2048[] = MBEDTLS_DHM_RFC3526_MODP_2048_P_BIN; @@ -1002,108 +982,111 @@ int main( int argc, char *argv[] ) MBEDTLS_DHM_RFC3526_MODP_3072_G_BIN; const unsigned char *dhm_P[] = { dhm_P_2048, dhm_P_3072 }; - const size_t dhm_P_size[] = { sizeof( dhm_P_2048 ), - sizeof( dhm_P_3072 ) }; + const size_t dhm_P_size[] = { sizeof(dhm_P_2048), + sizeof(dhm_P_3072) }; const unsigned char *dhm_G[] = { dhm_G_2048, dhm_G_3072 }; - const size_t dhm_G_size[] = { sizeof( dhm_G_2048 ), - sizeof( dhm_G_3072 ) }; + const size_t dhm_G_size[] = { sizeof(dhm_G_2048), + sizeof(dhm_G_3072) }; mbedtls_dhm_context dhm; size_t olen; size_t n; - for( i = 0; (size_t) i < sizeof( dhm_sizes ) / sizeof( dhm_sizes[0] ); i++ ) - { - mbedtls_dhm_init( &dhm ); + for (i = 0; (size_t) i < sizeof(dhm_sizes) / sizeof(dhm_sizes[0]); i++) { + mbedtls_dhm_init(&dhm); - if( mbedtls_mpi_read_binary( &dhm.P, dhm_P[i], - dhm_P_size[i] ) != 0 || - mbedtls_mpi_read_binary( &dhm.G, dhm_G[i], - dhm_G_size[i] ) != 0 ) - { - mbedtls_exit( 1 ); + if (mbedtls_mpi_read_binary(&dhm.P, dhm_P[i], + dhm_P_size[i]) != 0 || + mbedtls_mpi_read_binary(&dhm.G, dhm_G[i], + dhm_G_size[i]) != 0) { + mbedtls_exit(1); } - n = mbedtls_mpi_size( &dhm.P ); - mbedtls_dhm_make_public( &dhm, (int) n, buf, n, myrand, NULL ); - if( mbedtls_mpi_copy( &dhm.GY, &dhm.GX ) != 0 ) - mbedtls_exit( 1 ); + n = mbedtls_mpi_size(&dhm.P); + mbedtls_dhm_make_public(&dhm, (int) n, buf, n, myrand, NULL); + if (mbedtls_mpi_copy(&dhm.GY, &dhm.GX) != 0) { + mbedtls_exit(1); + } - mbedtls_snprintf( title, sizeof( title ), "DHE-%d", dhm_sizes[i] ); - TIME_PUBLIC( title, "handshake", - ret |= mbedtls_dhm_make_public( &dhm, (int) n, buf, n, - myrand, NULL ); - ret |= mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &olen, myrand, NULL ) ); + mbedtls_snprintf(title, sizeof(title), "DHE-%d", dhm_sizes[i]); + TIME_PUBLIC(title, "handshake", + ret |= mbedtls_dhm_make_public(&dhm, (int) n, buf, n, + myrand, NULL); + ret |= + mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &olen, myrand, NULL)); - mbedtls_snprintf( title, sizeof( title ), "DH-%d", dhm_sizes[i] ); - TIME_PUBLIC( title, "handshake", - ret |= mbedtls_dhm_calc_secret( &dhm, buf, sizeof( buf ), &olen, myrand, NULL ) ); + mbedtls_snprintf(title, sizeof(title), "DH-%d", dhm_sizes[i]); + TIME_PUBLIC(title, "handshake", + ret |= + mbedtls_dhm_calc_secret(&dhm, buf, sizeof(buf), &olen, myrand, NULL)); - mbedtls_dhm_free( &dhm ); + mbedtls_dhm_free(&dhm); } } #endif #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_SHA256_C) - if( todo.ecdsa ) - { + if (todo.ecdsa) { mbedtls_ecdsa_context ecdsa; const mbedtls_ecp_curve_info *curve_info; size_t sig_len; - memset( buf, 0x2A, sizeof( buf ) ); + memset(buf, 0x2A, sizeof(buf)); - for( curve_info = curve_list; + for (curve_info = curve_list; curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( ! mbedtls_ecdsa_can_do( curve_info->grp_id ) ) + curve_info++) { + if (!mbedtls_ecdsa_can_do(curve_info->grp_id)) { continue; - - mbedtls_ecdsa_init( &ecdsa ); - - if( mbedtls_ecdsa_genkey( &ecdsa, curve_info->grp_id, myrand, NULL ) != 0 ) - mbedtls_exit( 1 ); - - mbedtls_snprintf( title, sizeof( title ), "ECDSA-%s", - curve_info->name ); - TIME_PUBLIC( title, "sign", - ret = mbedtls_ecdsa_write_signature( &ecdsa, MBEDTLS_MD_SHA256, buf, curve_info->bit_size, - tmp, sizeof( tmp ), &sig_len, myrand, NULL ) ); - - mbedtls_ecdsa_free( &ecdsa ); - } - - for( curve_info = curve_list; - curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( ! mbedtls_ecdsa_can_do( curve_info->grp_id ) ) - continue; - - mbedtls_ecdsa_init( &ecdsa ); - - if( mbedtls_ecdsa_genkey( &ecdsa, curve_info->grp_id, myrand, NULL ) != 0 || - mbedtls_ecdsa_write_signature( &ecdsa, MBEDTLS_MD_SHA256, buf, curve_info->bit_size, - tmp, sizeof( tmp ), &sig_len, myrand, NULL ) != 0 ) - { - mbedtls_exit( 1 ); } - mbedtls_snprintf( title, sizeof( title ), "ECDSA-%s", - curve_info->name ); - TIME_PUBLIC( title, "verify", - ret = mbedtls_ecdsa_read_signature( &ecdsa, buf, curve_info->bit_size, - tmp, sig_len ) ); + mbedtls_ecdsa_init(&ecdsa); - mbedtls_ecdsa_free( &ecdsa ); + if (mbedtls_ecdsa_genkey(&ecdsa, curve_info->grp_id, myrand, NULL) != 0) { + mbedtls_exit(1); + } + + mbedtls_snprintf(title, sizeof(title), "ECDSA-%s", + curve_info->name); + TIME_PUBLIC(title, + "sign", + ret = + mbedtls_ecdsa_write_signature(&ecdsa, MBEDTLS_MD_SHA256, buf, + curve_info->bit_size, + tmp, sizeof(tmp), &sig_len, myrand, + NULL)); + + mbedtls_ecdsa_free(&ecdsa); + } + + for (curve_info = curve_list; + curve_info->grp_id != MBEDTLS_ECP_DP_NONE; + curve_info++) { + if (!mbedtls_ecdsa_can_do(curve_info->grp_id)) { + continue; + } + + mbedtls_ecdsa_init(&ecdsa); + + if (mbedtls_ecdsa_genkey(&ecdsa, curve_info->grp_id, myrand, NULL) != 0 || + mbedtls_ecdsa_write_signature(&ecdsa, MBEDTLS_MD_SHA256, buf, curve_info->bit_size, + tmp, sizeof(tmp), &sig_len, myrand, NULL) != 0) { + mbedtls_exit(1); + } + + mbedtls_snprintf(title, sizeof(title), "ECDSA-%s", + curve_info->name); + TIME_PUBLIC(title, "verify", + ret = mbedtls_ecdsa_read_signature(&ecdsa, buf, curve_info->bit_size, + tmp, sig_len)); + + mbedtls_ecdsa_free(&ecdsa); } } #endif #if defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_ECDH_LEGACY_CONTEXT) - if( todo.ecdh ) - { + if (todo.ecdh) { mbedtls_ecdh_context ecdh; mbedtls_mpi z; const mbedtls_ecp_curve_info montgomery_curve_list[] = { @@ -1120,163 +1103,169 @@ int main( int argc, char *argv[] ) const mbedtls_ecp_curve_info *selected_montgomery_curve_list = montgomery_curve_list; - if( curve_list == (const mbedtls_ecp_curve_info*) &single_curve ) - { + if (curve_list == (const mbedtls_ecp_curve_info *) &single_curve) { mbedtls_ecp_group grp; - mbedtls_ecp_group_init( &grp ); - if( mbedtls_ecp_group_load( &grp, curve_list->grp_id ) != 0 ) - mbedtls_exit( 1 ); - if( mbedtls_ecp_get_type( &grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) + mbedtls_ecp_group_init(&grp); + if (mbedtls_ecp_group_load(&grp, curve_list->grp_id) != 0) { + mbedtls_exit(1); + } + if (mbedtls_ecp_get_type(&grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { selected_montgomery_curve_list = single_curve; - else /* empty list */ + } else { /* empty list */ selected_montgomery_curve_list = single_curve + 1; - mbedtls_ecp_group_free( &grp ); + } + mbedtls_ecp_group_free(&grp); } - for( curve_info = curve_list; + for (curve_info = curve_list; curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) ) + curve_info++) { + if (!mbedtls_ecdh_can_do(curve_info->grp_id)) { continue; + } - mbedtls_ecdh_init( &ecdh ); + mbedtls_ecdh_init(&ecdh); - CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_make_public( &ecdh, &olen, buf, sizeof( buf), - myrand, NULL ) ); - CHECK_AND_CONTINUE( mbedtls_ecp_copy( &ecdh.Qp, &ecdh.Q ) ); + CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id)); + CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL)); + CHECK_AND_CONTINUE(mbedtls_ecp_copy(&ecdh.Qp, &ecdh.Q)); - mbedtls_snprintf( title, sizeof( title ), "ECDHE-%s", - curve_info->name ); - TIME_PUBLIC( title, "handshake", - CHECK_AND_CONTINUE( mbedtls_ecdh_make_public( &ecdh, &olen, buf, sizeof( buf), - myrand, NULL ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ), - myrand, NULL ) ) ); - mbedtls_ecdh_free( &ecdh ); + mbedtls_snprintf(title, sizeof(title), "ECDHE-%s", + curve_info->name); + TIME_PUBLIC(title, "handshake", + CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL)); + CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL))); + mbedtls_ecdh_free(&ecdh); } /* Montgomery curves need to be handled separately */ - for ( curve_info = selected_montgomery_curve_list; - curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - mbedtls_ecdh_init( &ecdh ); - mbedtls_mpi_init( &z ); + for (curve_info = selected_montgomery_curve_list; + curve_info->grp_id != MBEDTLS_ECP_DP_NONE; + curve_info++) { + mbedtls_ecdh_init(&ecdh); + mbedtls_mpi_init(&z); - CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_gen_public( &ecdh.grp, &ecdh.d, &ecdh.Qp, myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id)); + CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Qp, myrand, NULL)); - mbedtls_snprintf( title, sizeof(title), "ECDHE-%s", - curve_info->name ); - TIME_PUBLIC( title, "handshake", - CHECK_AND_CONTINUE( mbedtls_ecdh_gen_public( &ecdh.grp, &ecdh.d, &ecdh.Q, - myrand, NULL ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_compute_shared( &ecdh.grp, &z, &ecdh.Qp, &ecdh.d, - myrand, NULL ) ) ); + mbedtls_snprintf(title, sizeof(title), "ECDHE-%s", + curve_info->name); + TIME_PUBLIC(title, "handshake", + CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Q, + myrand, NULL)); + CHECK_AND_CONTINUE(mbedtls_ecdh_compute_shared(&ecdh.grp, &z, &ecdh.Qp, + &ecdh.d, + myrand, NULL))); - mbedtls_ecdh_free( &ecdh ); - mbedtls_mpi_free( &z ); + mbedtls_ecdh_free(&ecdh); + mbedtls_mpi_free(&z); } - for( curve_info = curve_list; + for (curve_info = curve_list; curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) ) + curve_info++) { + if (!mbedtls_ecdh_can_do(curve_info->grp_id)) { continue; + } - mbedtls_ecdh_init( &ecdh ); + mbedtls_ecdh_init(&ecdh); - CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_make_public( &ecdh, &olen, buf, sizeof( buf), - myrand, NULL ) ); - CHECK_AND_CONTINUE( mbedtls_ecp_copy( &ecdh.Qp, &ecdh.Q ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_make_public( &ecdh, &olen, buf, sizeof( buf), - myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id)); + CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL)); + CHECK_AND_CONTINUE(mbedtls_ecp_copy(&ecdh.Qp, &ecdh.Q)); + CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL)); - mbedtls_snprintf( title, sizeof( title ), "ECDH-%s", - curve_info->name ); - TIME_PUBLIC( title, "handshake", - CHECK_AND_CONTINUE( mbedtls_ecdh_calc_secret( &ecdh, &olen, buf, sizeof( buf ), - myrand, NULL ) ) ); - mbedtls_ecdh_free( &ecdh ); + mbedtls_snprintf(title, sizeof(title), "ECDH-%s", + curve_info->name); + TIME_PUBLIC(title, "handshake", + CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh, &olen, buf, sizeof(buf), + myrand, NULL))); + mbedtls_ecdh_free(&ecdh); } /* Montgomery curves need to be handled separately */ - for ( curve_info = selected_montgomery_curve_list; - curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++) - { - mbedtls_ecdh_init( &ecdh ); - mbedtls_mpi_init( &z ); + for (curve_info = selected_montgomery_curve_list; + curve_info->grp_id != MBEDTLS_ECP_DP_NONE; + curve_info++) { + mbedtls_ecdh_init(&ecdh); + mbedtls_mpi_init(&z); - CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_gen_public( &ecdh.grp, &ecdh.d, &ecdh.Qp, - myrand, NULL ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_gen_public( &ecdh.grp, &ecdh.d, &ecdh.Q, myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id)); + CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Qp, + myrand, NULL)); + CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Q, myrand, NULL)); - mbedtls_snprintf( title, sizeof(title), "ECDH-%s", - curve_info->name ); - TIME_PUBLIC( title, "handshake", - CHECK_AND_CONTINUE( mbedtls_ecdh_compute_shared( &ecdh.grp, &z, &ecdh.Qp, &ecdh.d, - myrand, NULL ) ) ); + mbedtls_snprintf(title, sizeof(title), "ECDH-%s", + curve_info->name); + TIME_PUBLIC(title, "handshake", + CHECK_AND_CONTINUE(mbedtls_ecdh_compute_shared(&ecdh.grp, &z, &ecdh.Qp, + &ecdh.d, + myrand, NULL))); - mbedtls_ecdh_free( &ecdh ); - mbedtls_mpi_free( &z ); + mbedtls_ecdh_free(&ecdh); + mbedtls_mpi_free(&z); } } #endif #if defined(MBEDTLS_ECDH_C) - if( todo.ecdh ) - { + if (todo.ecdh) { mbedtls_ecdh_context ecdh_srv, ecdh_cli; unsigned char buf_srv[BUFSIZE], buf_cli[BUFSIZE]; const mbedtls_ecp_curve_info *curve_info; size_t olen; - for( curve_info = curve_list; - curve_info->grp_id != MBEDTLS_ECP_DP_NONE; - curve_info++ ) - { - if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) ) + for (curve_info = curve_list; + curve_info->grp_id != MBEDTLS_ECP_DP_NONE; + curve_info++) { + if (!mbedtls_ecdh_can_do(curve_info->grp_id)) { continue; + } - mbedtls_ecdh_init( &ecdh_srv ); - mbedtls_ecdh_init( &ecdh_cli ); + mbedtls_ecdh_init(&ecdh_srv); + mbedtls_ecdh_init(&ecdh_cli); - mbedtls_snprintf( title, sizeof( title ), "ECDHE-%s", curve_info->name ); - TIME_PUBLIC( title, "full handshake", - const unsigned char * p_srv = buf_srv; + mbedtls_snprintf(title, sizeof(title), "ECDHE-%s", curve_info->name); + TIME_PUBLIC(title, + "full handshake", + const unsigned char *p_srv = buf_srv; - CHECK_AND_CONTINUE( mbedtls_ecdh_setup( &ecdh_srv, curve_info->grp_id ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_make_params( &ecdh_srv, &olen, buf_srv, sizeof( buf_srv ), myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecdh_setup(&ecdh_srv, curve_info->grp_id)); + CHECK_AND_CONTINUE(mbedtls_ecdh_make_params(&ecdh_srv, &olen, buf_srv, + sizeof(buf_srv), myrand, NULL)); - CHECK_AND_CONTINUE( mbedtls_ecdh_read_params( &ecdh_cli, &p_srv, p_srv + olen ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_make_public( &ecdh_cli, &olen, buf_cli, sizeof( buf_cli ), myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecdh_read_params(&ecdh_cli, &p_srv, + p_srv + olen)); + CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh_cli, &olen, buf_cli, + sizeof(buf_cli), myrand, NULL)); - CHECK_AND_CONTINUE( mbedtls_ecdh_read_public( &ecdh_srv, buf_cli, olen ) ); - CHECK_AND_CONTINUE( mbedtls_ecdh_calc_secret( &ecdh_srv, &olen, buf_srv, sizeof( buf_srv ), myrand, NULL ) ); + CHECK_AND_CONTINUE(mbedtls_ecdh_read_public(&ecdh_srv, buf_cli, olen)); + CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh_srv, &olen, buf_srv, + sizeof(buf_srv), myrand, NULL)); - CHECK_AND_CONTINUE( mbedtls_ecdh_calc_secret( &ecdh_cli, &olen, buf_cli, sizeof( buf_cli ), myrand, NULL ) ); - mbedtls_ecdh_free( &ecdh_cli ); + CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh_cli, &olen, buf_cli, + sizeof(buf_cli), myrand, NULL)); + mbedtls_ecdh_free(&ecdh_cli); - mbedtls_ecdh_free( &ecdh_srv ); - ); + mbedtls_ecdh_free(&ecdh_srv); + ); } } #endif - mbedtls_printf( "\n" ); + mbedtls_printf("\n"); #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) mbedtls_memory_buffer_alloc_free(); #endif - mbedtls_exit( 0 ); + mbedtls_exit(0); } #endif /* MBEDTLS_HAVE_TIME */ diff --git a/programs/test/cmake_package/cmake_package.c b/programs/test/cmake_package/cmake_package.c index 4105d2b35..86e10776c 100644 --- a/programs/test/cmake_package/cmake_package.c +++ b/programs/test/cmake_package/cmake_package.c @@ -31,9 +31,9 @@ int main() /* This version string is 18 bytes long, as advised by version.h. */ char version[18]; - mbedtls_version_get_string_full( version ); + mbedtls_version_get_string_full(version); - mbedtls_printf( "Built against %s\n", version ); + mbedtls_printf("Built against %s\n", version); - return( 0 ); + return 0; } diff --git a/programs/test/cmake_package_install/cmake_package_install.c b/programs/test/cmake_package_install/cmake_package_install.c index 48fb559f6..9aa4c3b1d 100644 --- a/programs/test/cmake_package_install/cmake_package_install.c +++ b/programs/test/cmake_package_install/cmake_package_install.c @@ -32,9 +32,9 @@ int main() /* This version string is 18 bytes long, as advised by version.h. */ char version[18]; - mbedtls_version_get_string_full( version ); + mbedtls_version_get_string_full(version); - mbedtls_printf( "Built against %s\n", version ); + mbedtls_printf("Built against %s\n", version); - return( 0 ); + return 0; } diff --git a/programs/test/cmake_subproject/cmake_subproject.c b/programs/test/cmake_subproject/cmake_subproject.c index b1d005cd7..d56b9a9cb 100644 --- a/programs/test/cmake_subproject/cmake_subproject.c +++ b/programs/test/cmake_subproject/cmake_subproject.c @@ -32,9 +32,9 @@ int main() /* This version string is 18 bytes long, as advised by version.h. */ char version[18]; - mbedtls_version_get_string_full( version ); + mbedtls_version_get_string_full(version); - mbedtls_printf( "Built against %s\n", version ); + mbedtls_printf("Built against %s\n", version); - return( 0 ); + return 0; } diff --git a/programs/test/dlopen.c b/programs/test/dlopen.c index ff61fcde0..2dcda3bb2 100644 --- a/programs/test/dlopen.c +++ b/programs/test/dlopen.c @@ -37,67 +37,68 @@ #include -#define CHECK_DLERROR( function, argument ) \ +#define CHECK_DLERROR(function, argument) \ do \ { \ - char *CHECK_DLERROR_error = dlerror ( ); \ - if( CHECK_DLERROR_error != NULL ) \ + char *CHECK_DLERROR_error = dlerror(); \ + if (CHECK_DLERROR_error != NULL) \ { \ - fprintf( stderr, "Dynamic loading error for %s(%s): %s\n", \ - function, argument, CHECK_DLERROR_error ); \ - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \ + fprintf(stderr, "Dynamic loading error for %s(%s): %s\n", \ + function, argument, CHECK_DLERROR_error); \ + mbedtls_exit(MBEDTLS_EXIT_FAILURE); \ } \ } \ - while( 0 ) + while (0) -int main( void ) +int main(void) { #if defined(MBEDTLS_MD_C) || defined(MBEDTLS_SSL_TLS_C) unsigned n; #endif #if defined(MBEDTLS_SSL_TLS_C) - void *tls_so = dlopen( TLS_SO_FILENAME, RTLD_NOW ); - CHECK_DLERROR( "dlopen", TLS_SO_FILENAME ); - const int *( *ssl_list_ciphersuites )( void ) = - dlsym( tls_so, "mbedtls_ssl_list_ciphersuites" ); - CHECK_DLERROR( "dlsym", "mbedtls_ssl_list_ciphersuites" ); - const int *ciphersuites = ssl_list_ciphersuites( ); - for( n = 0; ciphersuites[n] != 0; n++ ) - /* nothing to do, we're just counting */; - mbedtls_printf( "dlopen(%s): %u ciphersuites\n", - TLS_SO_FILENAME, n ); - dlclose( tls_so ); - CHECK_DLERROR( "dlclose", TLS_SO_FILENAME ); + void *tls_so = dlopen(TLS_SO_FILENAME, RTLD_NOW); + CHECK_DLERROR("dlopen", TLS_SO_FILENAME); + const int *(*ssl_list_ciphersuites)(void) = + dlsym(tls_so, "mbedtls_ssl_list_ciphersuites"); + CHECK_DLERROR("dlsym", "mbedtls_ssl_list_ciphersuites"); + const int *ciphersuites = ssl_list_ciphersuites(); + for (n = 0; ciphersuites[n] != 0; n++) {/* nothing to do, we're just counting */ + ; + } + mbedtls_printf("dlopen(%s): %u ciphersuites\n", + TLS_SO_FILENAME, n); + dlclose(tls_so); + CHECK_DLERROR("dlclose", TLS_SO_FILENAME); #endif /* MBEDTLS_SSL_TLS_C */ #if defined(MBEDTLS_X509_CRT_PARSE_C) - void *x509_so = dlopen( X509_SO_FILENAME, RTLD_NOW ); - CHECK_DLERROR( "dlopen", X509_SO_FILENAME ); + void *x509_so = dlopen(X509_SO_FILENAME, RTLD_NOW); + CHECK_DLERROR("dlopen", X509_SO_FILENAME); const mbedtls_x509_crt_profile *profile = - dlsym( x509_so, "mbedtls_x509_crt_profile_default" ); - CHECK_DLERROR( "dlsym", "mbedtls_x509_crt_profile_default" ); - mbedtls_printf( "dlopen(%s): Allowed md mask: %08x\n", - X509_SO_FILENAME, (unsigned) profile->allowed_mds ); - dlclose( x509_so ); - CHECK_DLERROR( "dlclose", X509_SO_FILENAME ); + dlsym(x509_so, "mbedtls_x509_crt_profile_default"); + CHECK_DLERROR("dlsym", "mbedtls_x509_crt_profile_default"); + mbedtls_printf("dlopen(%s): Allowed md mask: %08x\n", + X509_SO_FILENAME, (unsigned) profile->allowed_mds); + dlclose(x509_so); + CHECK_DLERROR("dlclose", X509_SO_FILENAME); #endif /* MBEDTLS_X509_CRT_PARSE_C */ #if defined(MBEDTLS_MD_C) - void *crypto_so = dlopen( CRYPTO_SO_FILENAME, RTLD_NOW ); - CHECK_DLERROR( "dlopen", CRYPTO_SO_FILENAME ); - const int *( *md_list )( void ) = - dlsym( crypto_so, "mbedtls_md_list" ); - CHECK_DLERROR( "dlsym", "mbedtls_md_list" ); - const int *mds = md_list( ); - for( n = 0; mds[n] != 0; n++ ) - /* nothing to do, we're just counting */; - mbedtls_printf( "dlopen(%s): %u hashes\n", - CRYPTO_SO_FILENAME, n ); - dlclose( crypto_so ); - CHECK_DLERROR( "dlclose", CRYPTO_SO_FILENAME ); + void *crypto_so = dlopen(CRYPTO_SO_FILENAME, RTLD_NOW); + CHECK_DLERROR("dlopen", CRYPTO_SO_FILENAME); + const int *(*md_list)(void) = + dlsym(crypto_so, "mbedtls_md_list"); + CHECK_DLERROR("dlsym", "mbedtls_md_list"); + const int *mds = md_list(); + for (n = 0; mds[n] != 0; n++) {/* nothing to do, we're just counting */ + ; + } + mbedtls_printf("dlopen(%s): %u hashes\n", + CRYPTO_SO_FILENAME, n); + dlclose(crypto_so); + CHECK_DLERROR("dlclose", CRYPTO_SO_FILENAME); #endif /* MBEDTLS_MD_C */ - return( 0 ); + return 0; } - diff --git a/programs/test/query_compile_time_config.c b/programs/test/query_compile_time_config.c index f37973cb2..8f763facd 100644 --- a/programs/test/query_compile_time_config.c +++ b/programs/test/query_compile_time_config.c @@ -36,47 +36,43 @@ #include #include "query_config.h" -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int i; - if ( argc == 1 || strcmp( argv[1], "-h" ) == 0 ) - { - mbedtls_printf( USAGE, argv[0] ); - return( MBEDTLS_EXIT_FAILURE ); + if (argc == 1 || strcmp(argv[1], "-h") == 0) { + mbedtls_printf(USAGE, argv[0]); + return MBEDTLS_EXIT_FAILURE; } - if( strcmp( argv[1], "-l" ) == 0 ) - { + if (strcmp(argv[1], "-l") == 0) { list_config(); - return( 0 ); + return 0; } - if( strcmp( argv[1], "-all" ) == 0 ) - { - for( i = 2; i < argc; i++ ) - { - if( query_config( argv[i] ) != 0 ) - return( 1 ); + if (strcmp(argv[1], "-all") == 0) { + for (i = 2; i < argc; i++) { + if (query_config(argv[i]) != 0) { + return 1; + } } - return( 0 ); + return 0; } - if( strcmp( argv[1], "-any" ) == 0 ) - { - for( i = 2; i < argc; i++ ) - { - if( query_config( argv[i] ) == 0 ) - return( 0 ); + if (strcmp(argv[1], "-any") == 0) { + for (i = 2; i < argc; i++) { + if (query_config(argv[i]) == 0) { + return 0; + } } - return( 1 ); + return 1; } - for( i = 1; i < argc; i++ ) - { - if( query_config( argv[i] ) != 0 ) - return( 1 ); + for (i = 1; i < argc; i++) { + if (query_config(argv[i]) != 0) { + return 1; + } } - return( 0 ); + return 0; } diff --git a/programs/test/query_config.h b/programs/test/query_config.h index 290100f36..ade73d080 100644 --- a/programs/test/query_config.h +++ b/programs/test/query_config.h @@ -33,7 +33,7 @@ * which is automatically generated by * `scripts/generate_query_config.pl`. */ -int query_config( const char *config ); +int query_config(const char *config); /** List all enabled configuration symbols * @@ -41,6 +41,6 @@ int query_config( const char *config ); * which is automatically generated by * `scripts/generate_query_config.pl`. */ -void list_config( void ); +void list_config(void); #endif /* MBEDTLS_PROGRAMS_TEST_QUERY_CONFIG_H */ diff --git a/programs/test/selftest.c b/programs/test/selftest.c index b4701cbe6..b4d7008e6 100644 --- a/programs/test/selftest.c +++ b/programs/test/selftest.c @@ -65,106 +65,101 @@ /* Sanity check for malloc. This is not expected to fail, and is rather * intended to display potentially useful information about the platform, * in particular the behavior of malloc(0). */ -static int calloc_self_test( int verbose ) +static int calloc_self_test(int verbose) { int failures = 0; - void *empty1 = mbedtls_calloc( 0, 1 ); - void *empty2 = mbedtls_calloc( 0, 1 ); - void *buffer1 = mbedtls_calloc( 1, 1 ); - void *buffer2 = mbedtls_calloc( 1, 1 ); + void *empty1 = mbedtls_calloc(0, 1); + void *empty2 = mbedtls_calloc(0, 1); + void *buffer1 = mbedtls_calloc(1, 1); + void *buffer2 = mbedtls_calloc(1, 1); - if( empty1 == NULL && empty2 == NULL ) - { - if( verbose ) - mbedtls_printf( " CALLOC(0): passed (NULL)\n" ); - } - else if( empty1 == NULL || empty2 == NULL ) - { - if( verbose ) - mbedtls_printf( " CALLOC(0): failed (mix of NULL and non-NULL)\n" ); + if (empty1 == NULL && empty2 == NULL) { + if (verbose) { + mbedtls_printf(" CALLOC(0): passed (NULL)\n"); + } + } else if (empty1 == NULL || empty2 == NULL) { + if (verbose) { + mbedtls_printf(" CALLOC(0): failed (mix of NULL and non-NULL)\n"); + } ++failures; - } - else if( empty1 == empty2 ) - { - if( verbose ) - mbedtls_printf( " CALLOC(0): passed (same non-null)\n" ); - } - else - { - if( verbose ) - mbedtls_printf( " CALLOC(0): passed (distinct non-null)\n" ); + } else if (empty1 == empty2) { + if (verbose) { + mbedtls_printf(" CALLOC(0): passed (same non-null)\n"); + } + } else { + if (verbose) { + mbedtls_printf(" CALLOC(0): passed (distinct non-null)\n"); + } } - if( buffer1 == NULL || buffer2 == NULL ) - { - if( verbose ) - mbedtls_printf( " CALLOC(1): failed (NULL)\n" ); + if (buffer1 == NULL || buffer2 == NULL) { + if (verbose) { + mbedtls_printf(" CALLOC(1): failed (NULL)\n"); + } ++failures; - } - else if( buffer1 == buffer2 ) - { - if( verbose ) - mbedtls_printf( " CALLOC(1): failed (same buffer twice)\n" ); + } else if (buffer1 == buffer2) { + if (verbose) { + mbedtls_printf(" CALLOC(1): failed (same buffer twice)\n"); + } ++failures; - } - else - { - if( verbose ) - mbedtls_printf( " CALLOC(1): passed\n" ); + } else { + if (verbose) { + mbedtls_printf(" CALLOC(1): passed\n"); + } } - mbedtls_free( buffer1 ); - buffer1 = mbedtls_calloc( 1, 1 ); - if( buffer1 == NULL ) - { - if( verbose ) - mbedtls_printf( " CALLOC(1 again): failed (NULL)\n" ); + mbedtls_free(buffer1); + buffer1 = mbedtls_calloc(1, 1); + if (buffer1 == NULL) { + if (verbose) { + mbedtls_printf(" CALLOC(1 again): failed (NULL)\n"); + } ++failures; - } - else - { - if( verbose ) - mbedtls_printf( " CALLOC(1 again): passed\n" ); + } else { + if (verbose) { + mbedtls_printf(" CALLOC(1 again): passed\n"); + } } - if( verbose ) - mbedtls_printf( "\n" ); - mbedtls_free( empty1 ); - mbedtls_free( empty2 ); - mbedtls_free( buffer1 ); - mbedtls_free( buffer2 ); - return( failures ); + if (verbose) { + mbedtls_printf("\n"); + } + mbedtls_free(empty1); + mbedtls_free(empty2); + mbedtls_free(buffer1); + mbedtls_free(buffer2); + return failures; } #endif /* MBEDTLS_SELF_TEST */ -static int test_snprintf( size_t n, const char *ref_buf, int ref_ret ) +static int test_snprintf(size_t n, const char *ref_buf, int ref_ret) { int ret; char buf[10] = "xxxxxxxxx"; const char ref[10] = "xxxxxxxxx"; - ret = mbedtls_snprintf( buf, n, "%s", "123" ); - if( ret < 0 || (size_t) ret >= n ) + ret = mbedtls_snprintf(buf, n, "%s", "123"); + if (ret < 0 || (size_t) ret >= n) { ret = -1; - - if( strncmp( ref_buf, buf, sizeof( buf ) ) != 0 || - ref_ret != ret || - memcmp( buf + n, ref + n, sizeof( buf ) - n ) != 0 ) - { - return( 1 ); } - return( 0 ); + if (strncmp(ref_buf, buf, sizeof(buf)) != 0 || + ref_ret != ret || + memcmp(buf + n, ref + n, sizeof(buf) - n) != 0) { + return 1; + } + + return 0; } -static int run_test_snprintf( void ) +static int run_test_snprintf(void) { - return( test_snprintf( 0, "xxxxxxxxx", -1 ) != 0 || - test_snprintf( 1, "", -1 ) != 0 || - test_snprintf( 2, "1", -1 ) != 0 || - test_snprintf( 3, "12", -1 ) != 0 || - test_snprintf( 4, "123", 3 ) != 0 || - test_snprintf( 5, "123", 3 ) != 0 ); + return test_snprintf(0, "xxxxxxxxx", -1) != 0 || + test_snprintf(1, "", -1) != 0 || + test_snprintf(2, "1", -1) != 0 || + test_snprintf(3, "12", -1) != 0 || + test_snprintf(4, "123", 3) != 0 || + test_snprintf(5, "123", 3) != 0; } /* @@ -174,7 +169,7 @@ static int run_test_snprintf( void ) */ #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_ENTROPY_C) #if defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_NO_PLATFORM_ENTROPY) -static void create_entropy_seed_file( void ) +static void create_entropy_seed_file(void) { int result; size_t output_len = 0; @@ -182,151 +177,152 @@ static void create_entropy_seed_file( void ) /* Attempt to read the entropy seed file. If this fails - attempt to write * to the file to ensure one is present. */ - result = mbedtls_platform_std_nv_seed_read( seed_value, - MBEDTLS_ENTROPY_BLOCK_SIZE ); - if( 0 == result ) + result = mbedtls_platform_std_nv_seed_read(seed_value, + MBEDTLS_ENTROPY_BLOCK_SIZE); + if (0 == result) { return; + } - result = mbedtls_platform_entropy_poll( NULL, - seed_value, - MBEDTLS_ENTROPY_BLOCK_SIZE, - &output_len ); - if( 0 != result ) + result = mbedtls_platform_entropy_poll(NULL, + seed_value, + MBEDTLS_ENTROPY_BLOCK_SIZE, + &output_len); + if (0 != result) { return; + } - if( MBEDTLS_ENTROPY_BLOCK_SIZE != output_len ) + if (MBEDTLS_ENTROPY_BLOCK_SIZE != output_len) { return; + } - mbedtls_platform_std_nv_seed_write( seed_value, MBEDTLS_ENTROPY_BLOCK_SIZE ); + mbedtls_platform_std_nv_seed_write(seed_value, MBEDTLS_ENTROPY_BLOCK_SIZE); } #endif -int mbedtls_entropy_self_test_wrapper( int verbose ) +int mbedtls_entropy_self_test_wrapper(int verbose) { #if defined(MBEDTLS_ENTROPY_NV_SEED) && !defined(MBEDTLS_NO_PLATFORM_ENTROPY) - create_entropy_seed_file( ); + create_entropy_seed_file(); #endif - return( mbedtls_entropy_self_test( verbose ) ); + return mbedtls_entropy_self_test(verbose); } #endif #if defined(MBEDTLS_SELF_TEST) #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) -int mbedtls_memory_buffer_alloc_free_and_self_test( int verbose ) +int mbedtls_memory_buffer_alloc_free_and_self_test(int verbose) { - if( verbose != 0 ) - { + if (verbose != 0) { #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_status( ); + mbedtls_memory_buffer_alloc_status(); #endif } - mbedtls_memory_buffer_alloc_free( ); - return( mbedtls_memory_buffer_alloc_self_test( verbose ) ); + mbedtls_memory_buffer_alloc_free(); + return mbedtls_memory_buffer_alloc_self_test(verbose); } #endif -typedef struct -{ +typedef struct { const char *name; - int ( *function )( int ); + int (*function)(int); } selftest_t; const selftest_t selftests[] = { - {"calloc", calloc_self_test}, + { "calloc", calloc_self_test }, #if defined(MBEDTLS_MD5_C) - {"md5", mbedtls_md5_self_test}, + { "md5", mbedtls_md5_self_test }, #endif #if defined(MBEDTLS_RIPEMD160_C) - {"ripemd160", mbedtls_ripemd160_self_test}, + { "ripemd160", mbedtls_ripemd160_self_test }, #endif #if defined(MBEDTLS_SHA1_C) - {"sha1", mbedtls_sha1_self_test}, + { "sha1", mbedtls_sha1_self_test }, #endif #if defined(MBEDTLS_SHA224_C) - {"sha224", mbedtls_sha224_self_test}, + { "sha224", mbedtls_sha224_self_test }, #endif #if defined(MBEDTLS_SHA256_C) - {"sha256", mbedtls_sha256_self_test}, + { "sha256", mbedtls_sha256_self_test }, #endif #if defined(MBEDTLS_SHA384_C) - {"sha384", mbedtls_sha384_self_test}, + { "sha384", mbedtls_sha384_self_test }, #endif #if defined(MBEDTLS_SHA512_C) - {"sha512", mbedtls_sha512_self_test}, + { "sha512", mbedtls_sha512_self_test }, #endif #if defined(MBEDTLS_DES_C) - {"des", mbedtls_des_self_test}, + { "des", mbedtls_des_self_test }, #endif #if defined(MBEDTLS_AES_C) - {"aes", mbedtls_aes_self_test}, + { "aes", mbedtls_aes_self_test }, #endif #if defined(MBEDTLS_GCM_C) && defined(MBEDTLS_AES_C) - {"gcm", mbedtls_gcm_self_test}, + { "gcm", mbedtls_gcm_self_test }, #endif #if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_AES_C) - {"ccm", mbedtls_ccm_self_test}, + { "ccm", mbedtls_ccm_self_test }, #endif #if defined(MBEDTLS_NIST_KW_C) && defined(MBEDTLS_AES_C) - {"nist_kw", mbedtls_nist_kw_self_test}, + { "nist_kw", mbedtls_nist_kw_self_test }, #endif #if defined(MBEDTLS_CMAC_C) - {"cmac", mbedtls_cmac_self_test}, + { "cmac", mbedtls_cmac_self_test }, #endif #if defined(MBEDTLS_CHACHA20_C) - {"chacha20", mbedtls_chacha20_self_test}, + { "chacha20", mbedtls_chacha20_self_test }, #endif #if defined(MBEDTLS_POLY1305_C) - {"poly1305", mbedtls_poly1305_self_test}, + { "poly1305", mbedtls_poly1305_self_test }, #endif #if defined(MBEDTLS_CHACHAPOLY_C) - {"chacha20-poly1305", mbedtls_chachapoly_self_test}, + { "chacha20-poly1305", mbedtls_chachapoly_self_test }, #endif #if defined(MBEDTLS_BASE64_C) - {"base64", mbedtls_base64_self_test}, + { "base64", mbedtls_base64_self_test }, #endif #if defined(MBEDTLS_BIGNUM_C) - {"mpi", mbedtls_mpi_self_test}, + { "mpi", mbedtls_mpi_self_test }, #endif #if defined(MBEDTLS_RSA_C) - {"rsa", mbedtls_rsa_self_test}, + { "rsa", mbedtls_rsa_self_test }, #endif #if defined(MBEDTLS_CAMELLIA_C) - {"camellia", mbedtls_camellia_self_test}, + { "camellia", mbedtls_camellia_self_test }, #endif #if defined(MBEDTLS_ARIA_C) - {"aria", mbedtls_aria_self_test}, + { "aria", mbedtls_aria_self_test }, #endif #if defined(MBEDTLS_CTR_DRBG_C) - {"ctr_drbg", mbedtls_ctr_drbg_self_test}, + { "ctr_drbg", mbedtls_ctr_drbg_self_test }, #endif #if defined(MBEDTLS_HMAC_DRBG_C) - {"hmac_drbg", mbedtls_hmac_drbg_self_test}, + { "hmac_drbg", mbedtls_hmac_drbg_self_test }, #endif #if defined(MBEDTLS_ECP_C) - {"ecp", mbedtls_ecp_self_test}, + { "ecp", mbedtls_ecp_self_test }, #endif #if defined(MBEDTLS_ECJPAKE_C) - {"ecjpake", mbedtls_ecjpake_self_test}, + { "ecjpake", mbedtls_ecjpake_self_test }, #endif #if defined(MBEDTLS_DHM_C) - {"dhm", mbedtls_dhm_self_test}, + { "dhm", mbedtls_dhm_self_test }, #endif #if defined(MBEDTLS_ENTROPY_C) - {"entropy", mbedtls_entropy_self_test_wrapper}, + { "entropy", mbedtls_entropy_self_test_wrapper }, #endif #if defined(MBEDTLS_PKCS5_C) - {"pkcs5", mbedtls_pkcs5_self_test}, + { "pkcs5", mbedtls_pkcs5_self_test }, #endif /* Heap test comes last */ #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - {"memory_buffer_alloc", mbedtls_memory_buffer_alloc_free_and_self_test}, + { "memory_buffer_alloc", mbedtls_memory_buffer_alloc_free_and_self_test }, #endif - {NULL, NULL} + { NULL, NULL } }; #endif /* MBEDTLS_SELF_TEST */ -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { #if defined(MBEDTLS_SELF_TEST) const selftest_t *test; @@ -345,11 +341,10 @@ int main( int argc, char *argv[] ) * of a NULL pointer. We do however use that in our code for initializing * structures, which should work on every modern platform. Let's be sure. */ - memset( &pointer, 0, sizeof( void * ) ); - if( pointer != NULL ) - { - mbedtls_printf( "all-bits-zero is not a NULL pointer\n" ); - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); + memset(&pointer, 0, sizeof(void *)); + if (pointer != NULL) { + mbedtls_printf("all-bits-zero is not a NULL pointer\n"); + mbedtls_exit(MBEDTLS_EXIT_FAILURE); } /* @@ -374,52 +369,52 @@ int main( int argc, char *argv[] ) #define CHECK_PADDING_SIGNED(TYPE, NAME) \ do \ { \ - if( sizeof( TYPE ) == 2 || sizeof( TYPE ) == 4 || \ - sizeof( TYPE ) == 8 ) { \ - if( ( sizeof( TYPE ) == 2 && \ - (int16_t) NAME ## _MAX != 0x7FFF ) || \ - ( sizeof( TYPE ) == 4 && \ - (int32_t) NAME ## _MAX != 0x7FFFFFFF ) || \ - ( sizeof( TYPE ) == 8 && \ - (int64_t) NAME ## _MAX != 0x7FFFFFFFFFFFFFFF ) ) \ + if (sizeof(TYPE) == 2 || sizeof(TYPE) == 4 || \ + sizeof(TYPE) == 8) { \ + if ((sizeof(TYPE) == 2 && \ + (int16_t) NAME ## _MAX != 0x7FFF) || \ + (sizeof(TYPE) == 4 && \ + (int32_t) NAME ## _MAX != 0x7FFFFFFF) || \ + (sizeof(TYPE) == 8 && \ + (int64_t) NAME ## _MAX != 0x7FFFFFFFFFFFFFFF)) \ { \ - mbedtls_printf( "Type '" #TYPE "' has padding bits\n" );\ - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \ + mbedtls_printf("Type '" #TYPE "' has padding bits\n"); \ + mbedtls_exit(MBEDTLS_EXIT_FAILURE); \ } \ } else { \ - mbedtls_printf( "Padding checks only implemented for types of size 2, 4 or 8" \ - " - cannot check type '" #TYPE "' of size %" MBEDTLS_PRINTF_SIZET "\n", \ - sizeof( TYPE ) ); \ - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \ + mbedtls_printf("Padding checks only implemented for types of size 2, 4 or 8" \ + " - cannot check type '" #TYPE "' of size %" MBEDTLS_PRINTF_SIZET "\n", \ + sizeof(TYPE)); \ + mbedtls_exit(MBEDTLS_EXIT_FAILURE); \ } \ - } while( 0 ) + } while (0) #define CHECK_PADDING_UNSIGNED(TYPE, NAME) \ do \ { \ - if( ( sizeof( TYPE ) == 2 && \ - (uint16_t) NAME ## _MAX != 0xFFFF ) || \ - ( sizeof( TYPE ) == 4 && \ - (uint32_t) NAME ## _MAX != 0xFFFFFFFF ) || \ - ( sizeof( TYPE ) == 8 && \ - (uint64_t) NAME ## _MAX != 0xFFFFFFFFFFFFFFFF ) ) \ + if ((sizeof(TYPE) == 2 && \ + (uint16_t) NAME ## _MAX != 0xFFFF) || \ + (sizeof(TYPE) == 4 && \ + (uint32_t) NAME ## _MAX != 0xFFFFFFFF) || \ + (sizeof(TYPE) == 8 && \ + (uint64_t) NAME ## _MAX != 0xFFFFFFFFFFFFFFFF)) \ { \ - mbedtls_printf( "Type '" #TYPE "' has padding bits\n" ); \ - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); \ + mbedtls_printf("Type '" #TYPE "' has padding bits\n"); \ + mbedtls_exit(MBEDTLS_EXIT_FAILURE); \ } \ - } while( 0 ) + } while (0) - CHECK_PADDING_SIGNED( short, SHRT ); - CHECK_PADDING_SIGNED( int, INT ); - CHECK_PADDING_SIGNED( long, LONG ); - CHECK_PADDING_SIGNED( long long, LLONG ); - CHECK_PADDING_SIGNED( ptrdiff_t, PTRDIFF ); + CHECK_PADDING_SIGNED(short, SHRT); + CHECK_PADDING_SIGNED(int, INT); + CHECK_PADDING_SIGNED(long, LONG); + CHECK_PADDING_SIGNED(long long, LLONG); + CHECK_PADDING_SIGNED(ptrdiff_t, PTRDIFF); - CHECK_PADDING_UNSIGNED( unsigned short, USHRT ); - CHECK_PADDING_UNSIGNED( unsigned, UINT ); - CHECK_PADDING_UNSIGNED( unsigned long, ULONG ); - CHECK_PADDING_UNSIGNED( unsigned long long, ULLONG ); - CHECK_PADDING_UNSIGNED( size_t, SIZE ); + CHECK_PADDING_UNSIGNED(unsigned short, USHRT); + CHECK_PADDING_UNSIGNED(unsigned, UINT); + CHECK_PADDING_UNSIGNED(unsigned long, ULONG); + CHECK_PADDING_UNSIGNED(unsigned long long, ULLONG); + CHECK_PADDING_UNSIGNED(size_t, SIZE); #undef CHECK_PADDING_SIGNED #undef CHECK_PADDING_UNSIGNED @@ -427,83 +422,68 @@ int main( int argc, char *argv[] ) /* * Make sure we have a snprintf that correctly zero-terminates */ - if( run_test_snprintf() != 0 ) - { - mbedtls_printf( "the snprintf implementation is broken\n" ); - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); + if (run_test_snprintf() != 0) { + mbedtls_printf("the snprintf implementation is broken\n"); + mbedtls_exit(MBEDTLS_EXIT_FAILURE); } - for( argp = argv + ( argc >= 1 ? 1 : argc ); *argp != NULL; ++argp ) - { - if( strcmp( *argp, "--quiet" ) == 0 || - strcmp( *argp, "-q" ) == 0 ) - { + for (argp = argv + (argc >= 1 ? 1 : argc); *argp != NULL; ++argp) { + if (strcmp(*argp, "--quiet") == 0 || + strcmp(*argp, "-q") == 0) { v = 0; - } - else if( strcmp( *argp, "--exclude" ) == 0 || - strcmp( *argp, "-x" ) == 0 ) - { + } else if (strcmp(*argp, "--exclude") == 0 || + strcmp(*argp, "-x") == 0) { exclude_mode = 1; - } - else + } else { break; + } } - if( v != 0 ) - mbedtls_printf( "\n" ); + if (v != 0) { + mbedtls_printf("\n"); + } #if defined(MBEDTLS_SELF_TEST) #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) - mbedtls_memory_buffer_alloc_init( buf, sizeof(buf) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); #endif - if( *argp != NULL && exclude_mode == 0 ) - { + if (*argp != NULL && exclude_mode == 0) { /* Run the specified tests */ - for( ; *argp != NULL; argp++ ) - { - for( test = selftests; test->name != NULL; test++ ) - { - if( !strcmp( *argp, test->name ) ) - { - if( test->function( v ) != 0 ) - { + for (; *argp != NULL; argp++) { + for (test = selftests; test->name != NULL; test++) { + if (!strcmp(*argp, test->name)) { + if (test->function(v) != 0) { suites_failed++; } suites_tested++; break; } } - if( test->name == NULL ) - { - mbedtls_printf( " Test suite %s not available -> failed\n\n", *argp ); + if (test->name == NULL) { + mbedtls_printf(" Test suite %s not available -> failed\n\n", *argp); suites_failed++; } } - } - else - { + } else { /* Run all the tests except excluded ones */ - for( test = selftests; test->name != NULL; test++ ) - { - if( exclude_mode ) - { + for (test = selftests; test->name != NULL; test++) { + if (exclude_mode) { char **excluded; - for( excluded = argp; *excluded != NULL; ++excluded ) - { - if( !strcmp( *excluded, test->name ) ) + for (excluded = argp; *excluded != NULL; ++excluded) { + if (!strcmp(*excluded, test->name)) { break; + } } - if( *excluded ) - { - if( v ) - mbedtls_printf( " Skip: %s\n", test->name ); + if (*excluded) { + if (v) { + mbedtls_printf(" Skip: %s\n", test->name); + } continue; } } - if( test->function( v ) != 0 ) - { + if (test->function(v) != 0) { suites_failed++; } suites_tested++; @@ -512,25 +492,22 @@ int main( int argc, char *argv[] ) #else (void) exclude_mode; - mbedtls_printf( " MBEDTLS_SELF_TEST not defined.\n" ); + mbedtls_printf(" MBEDTLS_SELF_TEST not defined.\n"); #endif - if( v != 0 ) - { - mbedtls_printf( " Executed %d test suites\n\n", suites_tested ); + if (v != 0) { + mbedtls_printf(" Executed %d test suites\n\n", suites_tested); - if( suites_failed > 0) - { - mbedtls_printf( " [ %d tests FAIL ]\n\n", suites_failed ); - } - else - { - mbedtls_printf( " [ All tests PASS ]\n\n" ); + if (suites_failed > 0) { + mbedtls_printf(" [ %d tests FAIL ]\n\n", suites_failed); + } else { + mbedtls_printf(" [ All tests PASS ]\n\n"); } } - if( suites_failed > 0) - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); + if (suites_failed > 0) { + mbedtls_exit(MBEDTLS_EXIT_FAILURE); + } - mbedtls_exit( MBEDTLS_EXIT_SUCCESS ); + mbedtls_exit(MBEDTLS_EXIT_SUCCESS); } diff --git a/programs/test/udp_proxy.c b/programs/test/udp_proxy.c index ccd130310..ac527f257 100644 --- a/programs/test/udp_proxy.c +++ b/programs/test/udp_proxy.c @@ -46,10 +46,10 @@ #endif /* MBEDTLS_PLATFORM_C */ #if !defined(MBEDTLS_NET_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_NET_C not defined.\n" ); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_NET_C not defined.\n"); + mbedtls_exit(0); } #else @@ -110,20 +110,20 @@ int main( void ) " delay=%%d default: 0 (no delayed packets)\n" \ " delay about 1:N packets randomly\n" \ " delay_ccs=0/1 default: 0 (don't delay ChangeCipherSpec)\n" \ - " delay_cli=%%s Handshake message from client that should be\n"\ + " delay_cli=%%s Handshake message from client that should be\n" \ " delayed. Possible values are 'ClientHello',\n" \ " 'Certificate', 'CertificateVerify', and\n" \ " 'ClientKeyExchange'.\n" \ - " May be used multiple times, even for the same\n"\ - " message, in which case the respective message\n"\ + " May be used multiple times, even for the same\n" \ + " message, in which case the respective message\n" \ " gets delayed multiple times.\n" \ - " delay_srv=%%s Handshake message from server that should be\n"\ - " delayed. Possible values are 'HelloRequest',\n"\ - " 'ServerHello', 'ServerHelloDone', 'Certificate'\n"\ - " 'ServerKeyExchange', 'NewSessionTicket',\n"\ - " 'HelloVerifyRequest' and ''CertificateRequest'.\n"\ - " May be used multiple times, even for the same\n"\ - " message, in which case the respective message\n"\ + " delay_srv=%%s Handshake message from server that should be\n" \ + " delayed. Possible values are 'HelloRequest',\n" \ + " 'ServerHello', 'ServerHelloDone', 'Certificate'\n" \ + " 'ServerKeyExchange', 'NewSessionTicket',\n" \ + " 'HelloVerifyRequest' and ''CertificateRequest'.\n" \ + " May be used multiple times, even for the same\n" \ + " message, in which case the respective message\n" \ " gets delayed multiple times.\n" \ " drop=%%d default: 0 (no dropped packets)\n" \ " drop about 1:N packets randomly\n" \ @@ -147,8 +147,7 @@ int main( void ) #define MAX_DELAYED_HS 10 -static struct options -{ +static struct options { const char *server_addr; /* address to forward packets to */ const char *server_port; /* port to forward packets to */ const char *listen_addr; /* address for accepting client connections */ @@ -157,10 +156,10 @@ static struct options int duplicate; /* duplicate 1 in N packets (none if 0) */ int delay; /* delay 1 packet in N (none if 0) */ int delay_ccs; /* delay ChangeCipherSpec */ - char* delay_cli[MAX_DELAYED_HS]; /* handshake types of messages from + char *delay_cli[MAX_DELAYED_HS]; /* handshake types of messages from * client that should be delayed. */ uint8_t delay_cli_cnt; /* Number of entries in delay_cli. */ - char* delay_srv[MAX_DELAYED_HS]; /* handshake types of messages from + char *delay_srv[MAX_DELAYED_HS]; /* handshake types of messages from * server that should be delayed. */ uint8_t delay_srv_cnt; /* Number of entries in delay_srv. */ int drop; /* drop 1 packet in N (none if 0) */ @@ -175,18 +174,19 @@ static struct options unsigned int seed; /* seed for "random" events */ } opt; -static void exit_usage( const char *name, const char *value ) +static void exit_usage(const char *name, const char *value) { - if( value == NULL ) - mbedtls_printf( " unknown option or missing value: %s\n", name ); - else - mbedtls_printf( " option %s: illegal value: %s\n", name, value ); + if (value == NULL) { + mbedtls_printf(" unknown option or missing value: %s\n", name); + } else { + mbedtls_printf(" option %s: illegal value: %s\n", name, value); + } - mbedtls_printf( USAGE ); - mbedtls_exit( 1 ); + mbedtls_printf(USAGE); + mbedtls_exit(1); } -static void get_options( int argc, char *argv[] ) +static void get_options(int argc, char *argv[]) { int i; char *p, *q; @@ -200,200 +200,184 @@ static void get_options( int argc, char *argv[] ) opt.delay_cli_cnt = 0; opt.delay_srv_cnt = 0; - memset( opt.delay_cli, 0, sizeof( opt.delay_cli ) ); - memset( opt.delay_srv, 0, sizeof( opt.delay_srv ) ); + memset(opt.delay_cli, 0, sizeof(opt.delay_cli)); + memset(opt.delay_srv, 0, sizeof(opt.delay_srv)); - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) - exit_usage( p, NULL ); + if ((q = strchr(p, '=')) == NULL) { + exit_usage(p, NULL); + } *q++ = '\0'; - if( strcmp( p, "server_addr" ) == 0 ) + if (strcmp(p, "server_addr") == 0) { opt.server_addr = q; - else if( strcmp( p, "server_port" ) == 0 ) + } else if (strcmp(p, "server_port") == 0) { opt.server_port = q; - else if( strcmp( p, "listen_addr" ) == 0 ) + } else if (strcmp(p, "listen_addr") == 0) { opt.listen_addr = q; - else if( strcmp( p, "listen_port" ) == 0 ) + } else if (strcmp(p, "listen_port") == 0) { opt.listen_port = q; - else if( strcmp( p, "duplicate" ) == 0 ) - { - opt.duplicate = atoi( q ); - if( opt.duplicate < 0 || opt.duplicate > 20 ) - exit_usage( p, q ); - } - else if( strcmp( p, "delay" ) == 0 ) - { - opt.delay = atoi( q ); - if( opt.delay < 0 || opt.delay > 20 || opt.delay == 1 ) - exit_usage( p, q ); - } - else if( strcmp( p, "delay_ccs" ) == 0 ) - { - opt.delay_ccs = atoi( q ); - if( opt.delay_ccs < 0 || opt.delay_ccs > 1 ) - exit_usage( p, q ); - } - else if( strcmp( p, "delay_cli" ) == 0 || - strcmp( p, "delay_srv" ) == 0 ) - { + } else if (strcmp(p, "duplicate") == 0) { + opt.duplicate = atoi(q); + if (opt.duplicate < 0 || opt.duplicate > 20) { + exit_usage(p, q); + } + } else if (strcmp(p, "delay") == 0) { + opt.delay = atoi(q); + if (opt.delay < 0 || opt.delay > 20 || opt.delay == 1) { + exit_usage(p, q); + } + } else if (strcmp(p, "delay_ccs") == 0) { + opt.delay_ccs = atoi(q); + if (opt.delay_ccs < 0 || opt.delay_ccs > 1) { + exit_usage(p, q); + } + } else if (strcmp(p, "delay_cli") == 0 || + strcmp(p, "delay_srv") == 0) { uint8_t *delay_cnt; char **delay_list; size_t len; char *buf; - if( strcmp( p, "delay_cli" ) == 0 ) - { + if (strcmp(p, "delay_cli") == 0) { delay_cnt = &opt.delay_cli_cnt; delay_list = opt.delay_cli; - } - else - { + } else { delay_cnt = &opt.delay_srv_cnt; delay_list = opt.delay_srv; } - if( *delay_cnt == MAX_DELAYED_HS ) - { - mbedtls_printf( " too many uses of %s: only %d allowed\n", - p, MAX_DELAYED_HS ); - exit_usage( p, NULL ); + if (*delay_cnt == MAX_DELAYED_HS) { + mbedtls_printf(" too many uses of %s: only %d allowed\n", + p, MAX_DELAYED_HS); + exit_usage(p, NULL); } - len = strlen( q ); - buf = mbedtls_calloc( 1, len + 1 ); - if( buf == NULL ) - { - mbedtls_printf( " Allocation failure\n" ); - exit( 1 ); + len = strlen(q); + buf = mbedtls_calloc(1, len + 1); + if (buf == NULL) { + mbedtls_printf(" Allocation failure\n"); + exit(1); } - memcpy( buf, q, len + 1 ); + memcpy(buf, q, len + 1); - delay_list[ (*delay_cnt)++ ] = buf; - } - else if( strcmp( p, "drop" ) == 0 ) - { - opt.drop = atoi( q ); - if( opt.drop < 0 || opt.drop > 20 || opt.drop == 1 ) - exit_usage( p, q ); - } - else if( strcmp( p, "pack" ) == 0 ) - { + delay_list[(*delay_cnt)++] = buf; + } else if (strcmp(p, "drop") == 0) { + opt.drop = atoi(q); + if (opt.drop < 0 || opt.drop > 20 || opt.drop == 1) { + exit_usage(p, q); + } + } else if (strcmp(p, "pack") == 0) { #if defined(MBEDTLS_TIMING_C) - opt.pack = (unsigned) atoi( q ); + opt.pack = (unsigned) atoi(q); #else - mbedtls_printf( " option pack only defined if MBEDTLS_TIMING_C is enabled\n" ); - exit( 1 ); + mbedtls_printf(" option pack only defined if MBEDTLS_TIMING_C is enabled\n"); + exit(1); #endif - } - else if( strcmp( p, "mtu" ) == 0 ) - { - opt.mtu = atoi( q ); - if( opt.mtu < 0 || opt.mtu > MAX_MSG_SIZE ) - exit_usage( p, q ); - } - else if( strcmp( p, "bad_ad" ) == 0 ) - { - opt.bad_ad = atoi( q ); - if( opt.bad_ad < 0 || opt.bad_ad > 1 ) - exit_usage( p, q ); + } else if (strcmp(p, "mtu") == 0) { + opt.mtu = atoi(q); + if (opt.mtu < 0 || opt.mtu > MAX_MSG_SIZE) { + exit_usage(p, q); + } + } else if (strcmp(p, "bad_ad") == 0) { + opt.bad_ad = atoi(q); + if (opt.bad_ad < 0 || opt.bad_ad > 1) { + exit_usage(p, q); + } } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - else if( strcmp( p, "bad_cid" ) == 0 ) - { - opt.bad_cid = (unsigned) atoi( q ); + else if (strcmp(p, "bad_cid") == 0) { + opt.bad_cid = (unsigned) atoi(q); } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - else if( strcmp( p, "protect_hvr" ) == 0 ) - { - opt.protect_hvr = atoi( q ); - if( opt.protect_hvr < 0 || opt.protect_hvr > 1 ) - exit_usage( p, q ); + else if (strcmp(p, "protect_hvr") == 0) { + opt.protect_hvr = atoi(q); + if (opt.protect_hvr < 0 || opt.protect_hvr > 1) { + exit_usage(p, q); + } + } else if (strcmp(p, "protect_len") == 0) { + opt.protect_len = atoi(q); + if (opt.protect_len < 0) { + exit_usage(p, q); + } + } else if (strcmp(p, "inject_clihlo") == 0) { + opt.inject_clihlo = atoi(q); + if (opt.inject_clihlo < 0 || opt.inject_clihlo > 1) { + exit_usage(p, q); + } + } else if (strcmp(p, "seed") == 0) { + opt.seed = atoi(q); + if (opt.seed == 0) { + exit_usage(p, q); + } + } else { + exit_usage(p, NULL); } - else if( strcmp( p, "protect_len" ) == 0 ) - { - opt.protect_len = atoi( q ); - if( opt.protect_len < 0 ) - exit_usage( p, q ); - } - else if( strcmp( p, "inject_clihlo" ) == 0 ) - { - opt.inject_clihlo = atoi( q ); - if( opt.inject_clihlo < 0 || opt.inject_clihlo > 1 ) - exit_usage( p, q ); - } - else if( strcmp( p, "seed" ) == 0 ) - { - opt.seed = atoi( q ); - if( opt.seed == 0 ) - exit_usage( p, q ); - } - else - exit_usage( p, NULL ); } } -static const char *msg_type( unsigned char *msg, size_t len ) +static const char *msg_type(unsigned char *msg, size_t len) { - if( len < 1 ) return( "Invalid" ); - switch( msg[0] ) - { - case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC: return( "ChangeCipherSpec" ); - case MBEDTLS_SSL_MSG_ALERT: return( "Alert" ); - case MBEDTLS_SSL_MSG_APPLICATION_DATA: return( "ApplicationData" ); - case MBEDTLS_SSL_MSG_CID: return( "CID" ); + if (len < 1) { + return "Invalid"; + } + switch (msg[0]) { + case MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC: return "ChangeCipherSpec"; + case MBEDTLS_SSL_MSG_ALERT: return "Alert"; + case MBEDTLS_SSL_MSG_APPLICATION_DATA: return "ApplicationData"; + case MBEDTLS_SSL_MSG_CID: return "CID"; case MBEDTLS_SSL_MSG_HANDSHAKE: break; /* See below */ - default: return( "Unknown" ); + default: return "Unknown"; } - if( len < 13 + 12 ) return( "Invalid handshake" ); + if (len < 13 + 12) { + return "Invalid handshake"; + } /* * Our handshake message are less than 2^16 bytes long, so they should * have 0 as the first byte of length, frag_offset and frag_length. * Otherwise, assume they are encrypted. */ - if( msg[14] || msg[19] || msg[22] ) return( "Encrypted handshake" ); + if (msg[14] || msg[19] || msg[22]) { + return "Encrypted handshake"; + } - switch( msg[13] ) - { - case MBEDTLS_SSL_HS_HELLO_REQUEST: return( "HelloRequest" ); - case MBEDTLS_SSL_HS_CLIENT_HELLO: return( "ClientHello" ); - case MBEDTLS_SSL_HS_SERVER_HELLO: return( "ServerHello" ); - case MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST: return( "HelloVerifyRequest" ); - case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: return( "NewSessionTicket" ); - case MBEDTLS_SSL_HS_CERTIFICATE: return( "Certificate" ); - case MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE: return( "ServerKeyExchange" ); - case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return( "CertificateRequest" ); - case MBEDTLS_SSL_HS_SERVER_HELLO_DONE: return( "ServerHelloDone" ); - case MBEDTLS_SSL_HS_CERTIFICATE_VERIFY: return( "CertificateVerify" ); - case MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE: return( "ClientKeyExchange" ); - case MBEDTLS_SSL_HS_FINISHED: return( "Finished" ); - default: return( "Unknown handshake" ); + switch (msg[13]) { + case MBEDTLS_SSL_HS_HELLO_REQUEST: return "HelloRequest"; + case MBEDTLS_SSL_HS_CLIENT_HELLO: return "ClientHello"; + case MBEDTLS_SSL_HS_SERVER_HELLO: return "ServerHello"; + case MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST: return "HelloVerifyRequest"; + case MBEDTLS_SSL_HS_NEW_SESSION_TICKET: return "NewSessionTicket"; + case MBEDTLS_SSL_HS_CERTIFICATE: return "Certificate"; + case MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE: return "ServerKeyExchange"; + case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST: return "CertificateRequest"; + case MBEDTLS_SSL_HS_SERVER_HELLO_DONE: return "ServerHelloDone"; + case MBEDTLS_SSL_HS_CERTIFICATE_VERIFY: return "CertificateVerify"; + case MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE: return "ClientKeyExchange"; + case MBEDTLS_SSL_HS_FINISHED: return "Finished"; + default: return "Unknown handshake"; } } #if defined(MBEDTLS_TIMING_C) /* Return elapsed time in milliseconds since the first call */ -static unsigned elapsed_time( void ) +static unsigned elapsed_time(void) { static int initialized = 0; static struct mbedtls_timing_hr_time hires; - if( initialized == 0 ) - { - (void) mbedtls_timing_get_timer( &hires, 1 ); + if (initialized == 0) { + (void) mbedtls_timing_get_timer(&hires, 1); initialized = 1; - return( 0 ); + return 0; } - return( mbedtls_timing_get_timer( &hires, 0 ) ); + return mbedtls_timing_get_timer(&hires, 0); } -typedef struct -{ +typedef struct { mbedtls_net_context *ctx; const char *description; @@ -408,102 +392,102 @@ typedef struct static ctx_buffer outbuf[2]; -static int ctx_buffer_flush( ctx_buffer *buf ) +static int ctx_buffer_flush(ctx_buffer *buf) { int ret; - mbedtls_printf( " %05u flush %s: %u bytes, %u datagrams, last %u ms\n", - elapsed_time(), buf->description, - (unsigned) buf->len, buf->num_datagrams, - elapsed_time() - buf->packet_lifetime ); + mbedtls_printf(" %05u flush %s: %u bytes, %u datagrams, last %u ms\n", + elapsed_time(), buf->description, + (unsigned) buf->len, buf->num_datagrams, + elapsed_time() - buf->packet_lifetime); - ret = mbedtls_net_send( buf->ctx, buf->data, buf->len ); + ret = mbedtls_net_send(buf->ctx, buf->data, buf->len); buf->len = 0; buf->num_datagrams = 0; - return( ret ); + return ret; } -static unsigned ctx_buffer_time_remaining( ctx_buffer *buf ) +static unsigned ctx_buffer_time_remaining(ctx_buffer *buf) { unsigned const cur_time = elapsed_time(); - if( buf->num_datagrams == 0 ) - return( (unsigned) -1 ); + if (buf->num_datagrams == 0) { + return (unsigned) -1; + } - if( cur_time - buf->packet_lifetime >= opt.pack ) - return( 0 ); + if (cur_time - buf->packet_lifetime >= opt.pack) { + return 0; + } - return( opt.pack - ( cur_time - buf->packet_lifetime ) ); + return opt.pack - (cur_time - buf->packet_lifetime); } -static int ctx_buffer_append( ctx_buffer *buf, - const unsigned char * data, - size_t len ) +static int ctx_buffer_append(ctx_buffer *buf, + const unsigned char *data, + size_t len) { int ret; - if( len > (size_t) INT_MAX ) - return( -1 ); - - if( len > sizeof( buf->data ) ) - { - mbedtls_printf( " ! buffer size %u too large (max %u)\n", - (unsigned) len, (unsigned) sizeof( buf->data ) ); - return( -1 ); + if (len > (size_t) INT_MAX) { + return -1; } - if( sizeof( buf->data ) - buf->len < len ) - { - if( ( ret = ctx_buffer_flush( buf ) ) <= 0 ) - { - mbedtls_printf( "ctx_buffer_flush failed with -%#04x", (unsigned int) -ret ); - return( ret ); + if (len > sizeof(buf->data)) { + mbedtls_printf(" ! buffer size %u too large (max %u)\n", + (unsigned) len, (unsigned) sizeof(buf->data)); + return -1; + } + + if (sizeof(buf->data) - buf->len < len) { + if ((ret = ctx_buffer_flush(buf)) <= 0) { + mbedtls_printf("ctx_buffer_flush failed with -%#04x", (unsigned int) -ret); + return ret; } } - memcpy( buf->data + buf->len, data, len ); + memcpy(buf->data + buf->len, data, len); buf->len += len; - if( ++buf->num_datagrams == 1 ) + if (++buf->num_datagrams == 1) { buf->packet_lifetime = elapsed_time(); + } - return( (int) len ); + return (int) len; } #endif /* MBEDTLS_TIMING_C */ -static int dispatch_data( mbedtls_net_context *ctx, - const unsigned char * data, - size_t len ) +static int dispatch_data(mbedtls_net_context *ctx, + const unsigned char *data, + size_t len) { int ret; #if defined(MBEDTLS_TIMING_C) ctx_buffer *buf = NULL; - if( opt.pack > 0 ) - { - if( outbuf[0].ctx == ctx ) + if (opt.pack > 0) { + if (outbuf[0].ctx == ctx) { buf = &outbuf[0]; - else if( outbuf[1].ctx == ctx ) + } else if (outbuf[1].ctx == ctx) { buf = &outbuf[1]; + } - if( buf == NULL ) - return( -1 ); + if (buf == NULL) { + return -1; + } - return( ctx_buffer_append( buf, data, len ) ); + return ctx_buffer_append(buf, data, len); } #endif /* MBEDTLS_TIMING_C */ - ret = mbedtls_net_send( ctx, data, len ); - if( ret < 0 ) - { - mbedtls_printf( "net_send returned -%#04x\n", (unsigned int) -ret ); + ret = mbedtls_net_send(ctx, data, len); + if (ret < 0) { + mbedtls_printf("net_send returned -%#04x\n", (unsigned int) -ret); } - return( ret ); + return ret; } -typedef struct -{ +typedef struct { mbedtls_net_context *dst; const char *way; const char *type; @@ -512,25 +496,27 @@ typedef struct } packet; /* Print packet. Outgoing packets come with a reason (forward, dupl, etc.) */ -void print_packet( const packet *p, const char *why ) +void print_packet(const packet *p, const char *why) { #if defined(MBEDTLS_TIMING_C) - if( why == NULL ) - mbedtls_printf( " %05u dispatch %s %s (%u bytes)\n", - elapsed_time(), p->way, p->type, p->len ); - else - mbedtls_printf( " %05u dispatch %s %s (%u bytes): %s\n", - elapsed_time(), p->way, p->type, p->len, why ); + if (why == NULL) { + mbedtls_printf(" %05u dispatch %s %s (%u bytes)\n", + elapsed_time(), p->way, p->type, p->len); + } else { + mbedtls_printf(" %05u dispatch %s %s (%u bytes): %s\n", + elapsed_time(), p->way, p->type, p->len, why); + } #else - if( why == NULL ) - mbedtls_printf( " dispatch %s %s (%u bytes)\n", - p->way, p->type, p->len ); - else - mbedtls_printf( " dispatch %s %s (%u bytes): %s\n", - p->way, p->type, p->len, why ); + if (why == NULL) { + mbedtls_printf(" dispatch %s %s (%u bytes)\n", + p->way, p->type, p->len); + } else { + mbedtls_printf(" dispatch %s %s (%u bytes): %s\n", + p->way, p->type, p->len, why); + } #endif - fflush( stdout ); + fflush(stdout); } /* @@ -554,135 +540,123 @@ typedef enum { static inject_clihlo_state_t inject_clihlo_state; static packet initial_clihlo; -int send_packet( const packet *p, const char *why ) +int send_packet(const packet *p, const char *why) { int ret; mbedtls_net_context *dst = p->dst; /* save initial ClientHello? */ - if( opt.inject_clihlo != 0 && + if (opt.inject_clihlo != 0 && inject_clihlo_state == ICH_INIT && - strcmp( p->type, "ClientHello" ) == 0 ) - { - memcpy( &initial_clihlo, p, sizeof( packet ) ); + strcmp(p->type, "ClientHello") == 0) { + memcpy(&initial_clihlo, p, sizeof(packet)); inject_clihlo_state = ICH_CACHED; } /* insert corrupted CID record? */ - if( opt.bad_cid != 0 && - strcmp( p->type, "CID" ) == 0 && - ( rand() % opt.bad_cid ) == 0 ) - { + if (opt.bad_cid != 0 && + strcmp(p->type, "CID") == 0 && + (rand() % opt.bad_cid) == 0) { unsigned char buf[MAX_MSG_SIZE]; - memcpy( buf, p->buf, p->len ); + memcpy(buf, p->buf, p->len); /* The CID resides at offset 11 in the DTLS record header. */ buf[11] ^= 1; - print_packet( p, "modified CID" ); + print_packet(p, "modified CID"); - if( ( ret = dispatch_data( dst, buf, p->len ) ) <= 0 ) - { - mbedtls_printf( " ! dispatch returned %d\n", ret ); - return( ret ); + if ((ret = dispatch_data(dst, buf, p->len)) <= 0) { + mbedtls_printf(" ! dispatch returned %d\n", ret); + return ret; } } /* insert corrupted ApplicationData record? */ - if( opt.bad_ad && - strcmp( p->type, "ApplicationData" ) == 0 ) - { + if (opt.bad_ad && + strcmp(p->type, "ApplicationData") == 0) { unsigned char buf[MAX_MSG_SIZE]; - memcpy( buf, p->buf, p->len ); + memcpy(buf, p->buf, p->len); - if( p->len <= 13 ) - { - mbedtls_printf( " ! can't corrupt empty AD record" ); - } - else - { + if (p->len <= 13) { + mbedtls_printf(" ! can't corrupt empty AD record"); + } else { ++buf[13]; - print_packet( p, "corrupted" ); + print_packet(p, "corrupted"); } - if( ( ret = dispatch_data( dst, buf, p->len ) ) <= 0 ) - { - mbedtls_printf( " ! dispatch returned %d\n", ret ); - return( ret ); + if ((ret = dispatch_data(dst, buf, p->len)) <= 0) { + mbedtls_printf(" ! dispatch returned %d\n", ret); + return ret; } } - print_packet( p, why ); - if( ( ret = dispatch_data( dst, p->buf, p->len ) ) <= 0 ) - { - mbedtls_printf( " ! dispatch returned %d\n", ret ); - return( ret ); + print_packet(p, why); + if ((ret = dispatch_data(dst, p->buf, p->len)) <= 0) { + mbedtls_printf(" ! dispatch returned %d\n", ret); + return ret; } /* Don't duplicate Application Data, only handshake covered */ - if( opt.duplicate != 0 && - strcmp( p->type, "ApplicationData" ) != 0 && - rand() % opt.duplicate == 0 ) - { - print_packet( p, "duplicated" ); + if (opt.duplicate != 0 && + strcmp(p->type, "ApplicationData") != 0 && + rand() % opt.duplicate == 0) { + print_packet(p, "duplicated"); - if( ( ret = dispatch_data( dst, p->buf, p->len ) ) <= 0 ) - { - mbedtls_printf( " ! dispatch returned %d\n", ret ); - return( ret ); + if ((ret = dispatch_data(dst, p->buf, p->len)) <= 0) { + mbedtls_printf(" ! dispatch returned %d\n", ret); + return ret; } } /* Inject ClientHello after first ApplicationData */ - if( opt.inject_clihlo != 0 && + if (opt.inject_clihlo != 0 && inject_clihlo_state == ICH_CACHED && - strcmp( p->type, "ApplicationData" ) == 0 ) - { - print_packet( &initial_clihlo, "injected" ); + strcmp(p->type, "ApplicationData") == 0) { + print_packet(&initial_clihlo, "injected"); - if( ( ret = dispatch_data( dst, initial_clihlo.buf, - initial_clihlo.len ) ) <= 0 ) - { - mbedtls_printf( " ! dispatch returned %d\n", ret ); - return( ret ); + if ((ret = dispatch_data(dst, initial_clihlo.buf, + initial_clihlo.len)) <= 0) { + mbedtls_printf(" ! dispatch returned %d\n", ret); + return ret; } inject_clihlo_state = ICH_INJECTED; } - return( 0 ); + return 0; } #define MAX_DELAYED_MSG 5 static size_t prev_len; static packet prev[MAX_DELAYED_MSG]; -void clear_pending( void ) +void clear_pending(void) { - memset( &prev, 0, sizeof( prev ) ); + memset(&prev, 0, sizeof(prev)); prev_len = 0; } -void delay_packet( packet *delay ) +void delay_packet(packet *delay) { - if( prev_len == MAX_DELAYED_MSG ) + if (prev_len == MAX_DELAYED_MSG) { return; + } - memcpy( &prev[prev_len++], delay, sizeof( packet ) ); + memcpy(&prev[prev_len++], delay, sizeof(packet)); } int send_delayed() { uint8_t offset; int ret; - for( offset = 0; offset < prev_len; offset++ ) - { - ret = send_packet( &prev[offset], "delayed" ); - if( ret != 0 ) - return( ret ); + for (offset = 0; offset < prev_len; offset++) { + ret = send_packet(&prev[offset], "delayed"); + if (ret != 0) { + return ret; + } } clear_pending(); - return( 0 ); + return 0; } /* @@ -702,108 +676,100 @@ int send_delayed() static unsigned char held[2048] = { 0 }; #define HOLD_MAX 2 -int handle_message( const char *way, - mbedtls_net_context *dst, - mbedtls_net_context *src ) +int handle_message(const char *way, + mbedtls_net_context *dst, + mbedtls_net_context *src) { int ret; packet cur; size_t id; uint8_t delay_idx; - char ** delay_list; + char **delay_list; uint8_t delay_list_len; /* receive packet */ - if( ( ret = mbedtls_net_recv( src, cur.buf, sizeof( cur.buf ) ) ) <= 0 ) - { - mbedtls_printf( " ! mbedtls_net_recv returned %d\n", ret ); - return( ret ); + if ((ret = mbedtls_net_recv(src, cur.buf, sizeof(cur.buf))) <= 0) { + mbedtls_printf(" ! mbedtls_net_recv returned %d\n", ret); + return ret; } cur.len = ret; - cur.type = msg_type( cur.buf, cur.len ); + cur.type = msg_type(cur.buf, cur.len); cur.way = way; cur.dst = dst; - print_packet( &cur, NULL ); + print_packet(&cur, NULL); - id = cur.len % sizeof( held ); + id = cur.len % sizeof(held); - if( strcmp( way, "S <- C" ) == 0 ) - { + if (strcmp(way, "S <- C") == 0) { delay_list = opt.delay_cli; delay_list_len = opt.delay_cli_cnt; - } - else - { + } else { delay_list = opt.delay_srv; delay_list_len = opt.delay_srv_cnt; } /* Check if message type is in the list of messages * that should be delayed */ - for( delay_idx = 0; delay_idx < delay_list_len; delay_idx++ ) - { - if( delay_list[ delay_idx ] == NULL ) + for (delay_idx = 0; delay_idx < delay_list_len; delay_idx++) { + if (delay_list[delay_idx] == NULL) { continue; + } - if( strcmp( delay_list[ delay_idx ], cur.type ) == 0 ) - { + if (strcmp(delay_list[delay_idx], cur.type) == 0) { /* Delay message */ - delay_packet( &cur ); + delay_packet(&cur); /* Remove entry from list */ - mbedtls_free( delay_list[delay_idx] ); + mbedtls_free(delay_list[delay_idx]); delay_list[delay_idx] = NULL; - return( 0 ); + return 0; } } /* do we want to drop, delay, or forward it? */ - if( ( opt.mtu != 0 && - cur.len > (unsigned) opt.mtu ) || - ( opt.drop != 0 && - strcmp( cur.type, "CID" ) != 0 && - strcmp( cur.type, "ApplicationData" ) != 0 && - ! ( opt.protect_hvr && - strcmp( cur.type, "HelloVerifyRequest" ) == 0 ) && - cur.len != (size_t) opt.protect_len && - held[id] < HOLD_MAX && - rand() % opt.drop == 0 ) ) - { + if ((opt.mtu != 0 && + cur.len > (unsigned) opt.mtu) || + (opt.drop != 0 && + strcmp(cur.type, "CID") != 0 && + strcmp(cur.type, "ApplicationData") != 0 && + !(opt.protect_hvr && + strcmp(cur.type, "HelloVerifyRequest") == 0) && + cur.len != (size_t) opt.protect_len && + held[id] < HOLD_MAX && + rand() % opt.drop == 0)) { ++held[id]; - } - else if( ( opt.delay_ccs == 1 && - strcmp( cur.type, "ChangeCipherSpec" ) == 0 ) || - ( opt.delay != 0 && - strcmp( cur.type, "CID" ) != 0 && - strcmp( cur.type, "ApplicationData" ) != 0 && - ! ( opt.protect_hvr && - strcmp( cur.type, "HelloVerifyRequest" ) == 0 ) && - cur.len != (size_t) opt.protect_len && - held[id] < HOLD_MAX && - rand() % opt.delay == 0 ) ) - { + } else if ((opt.delay_ccs == 1 && + strcmp(cur.type, "ChangeCipherSpec") == 0) || + (opt.delay != 0 && + strcmp(cur.type, "CID") != 0 && + strcmp(cur.type, "ApplicationData") != 0 && + !(opt.protect_hvr && + strcmp(cur.type, "HelloVerifyRequest") == 0) && + cur.len != (size_t) opt.protect_len && + held[id] < HOLD_MAX && + rand() % opt.delay == 0)) { ++held[id]; - delay_packet( &cur ); - } - else - { + delay_packet(&cur); + } else { /* forward and possibly duplicate */ - if( ( ret = send_packet( &cur, "forwarded" ) ) != 0 ) - return( ret ); + if ((ret = send_packet(&cur, "forwarded")) != 0) { + return ret; + } /* send previously delayed messages if any */ ret = send_delayed(); - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } } - return( 0 ); + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -811,7 +777,7 @@ int main( int argc, char *argv[] ) mbedtls_net_context listen_fd, client_fd, server_fd; -#if defined( MBEDTLS_TIMING_C ) +#if defined(MBEDTLS_TIMING_C) struct timeval tm; #endif @@ -820,11 +786,11 @@ int main( int argc, char *argv[] ) int nb_fds; fd_set read_fds; - mbedtls_net_init( &listen_fd ); - mbedtls_net_init( &client_fd ); - mbedtls_net_init( &server_fd ); + mbedtls_net_init(&listen_fd); + mbedtls_net_init(&client_fd); + mbedtls_net_init(&server_fd); - get_options( argc, argv ); + get_options(argc, argv); /* * Decisions to drop/delay/duplicate packets are pseudo-random: dropping @@ -834,84 +800,81 @@ int main( int argc, char *argv[] ) * In order to be able to reproduce problems reliably, the seed may be * specified explicitly. */ - if( opt.seed == 0 ) - { + if (opt.seed == 0) { #if defined(MBEDTLS_HAVE_TIME) - opt.seed = (unsigned int) mbedtls_time( NULL ); + opt.seed = (unsigned int) mbedtls_time(NULL); #else opt.seed = 1; #endif /* MBEDTLS_HAVE_TIME */ - mbedtls_printf( " . Pseudo-random seed: %u\n", opt.seed ); + mbedtls_printf(" . Pseudo-random seed: %u\n", opt.seed); } - srand( opt.seed ); + srand(opt.seed); /* * 0. "Connect" to the server */ - mbedtls_printf( " . Connect to server on UDP/%s/%s ...", - opt.server_addr, opt.server_port ); - fflush( stdout ); + mbedtls_printf(" . Connect to server on UDP/%s/%s ...", + opt.server_addr, opt.server_port); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, opt.server_addr, opt.server_port, - MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, opt.server_addr, opt.server_port, + MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1. Setup the "listening" UDP socket */ - mbedtls_printf( " . Bind on UDP/%s/%s ...", - opt.listen_addr, opt.listen_port ); - fflush( stdout ); + mbedtls_printf(" . Bind on UDP/%s/%s ...", + opt.listen_addr, opt.listen_port); + fflush(stdout); - if( ( ret = mbedtls_net_bind( &listen_fd, opt.listen_addr, opt.listen_port, - MBEDTLS_NET_PROTO_UDP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_bind returned %d\n\n", ret ); + if ((ret = mbedtls_net_bind(&listen_fd, opt.listen_addr, opt.listen_port, + MBEDTLS_NET_PROTO_UDP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_bind returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 2. Wait until a client connects */ accept: - mbedtls_net_free( &client_fd ); + mbedtls_net_free(&client_fd); - mbedtls_printf( " . Waiting for a remote connection ..." ); - fflush( stdout ); + mbedtls_printf(" . Waiting for a remote connection ..."); + fflush(stdout); - if( ( ret = mbedtls_net_accept( &listen_fd, &client_fd, - NULL, 0, NULL ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_accept returned %d\n\n", ret ); + if ((ret = mbedtls_net_accept(&listen_fd, &client_fd, + NULL, 0, NULL)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_accept returned %d\n\n", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 3. Forward packets forever (kill the process to terminate it) */ clear_pending(); - memset( held, 0, sizeof( held ) ); + memset(held, 0, sizeof(held)); nb_fds = client_fd.fd; - if( nb_fds < server_fd.fd ) + if (nb_fds < server_fd.fd) { nb_fds = server_fd.fd; - if( nb_fds < listen_fd.fd ) + } + if (nb_fds < listen_fd.fd) { nb_fds = listen_fd.fd; + } ++nb_fds; #if defined(MBEDTLS_TIMING_C) - if( opt.pack > 0 ) - { + if (opt.pack > 0) { outbuf[0].ctx = &server_fd; outbuf[0].description = "S <- C"; outbuf[0].num_datagrams = 0; @@ -924,70 +887,66 @@ accept: } #endif /* MBEDTLS_TIMING_C */ - while( 1 ) - { + while (1) { #if defined(MBEDTLS_TIMING_C) - if( opt.pack > 0 ) - { + if (opt.pack > 0) { unsigned max_wait_server, max_wait_client, max_wait; - max_wait_server = ctx_buffer_time_remaining( &outbuf[0] ); - max_wait_client = ctx_buffer_time_remaining( &outbuf[1] ); + max_wait_server = ctx_buffer_time_remaining(&outbuf[0]); + max_wait_client = ctx_buffer_time_remaining(&outbuf[1]); max_wait = (unsigned) -1; - if( max_wait_server == 0 ) - ctx_buffer_flush( &outbuf[0] ); - else + if (max_wait_server == 0) { + ctx_buffer_flush(&outbuf[0]); + } else { max_wait = max_wait_server; - - if( max_wait_client == 0 ) - ctx_buffer_flush( &outbuf[1] ); - else - { - if( max_wait_client < max_wait ) - max_wait = max_wait_client; } - if( max_wait != (unsigned) -1 ) - { + if (max_wait_client == 0) { + ctx_buffer_flush(&outbuf[1]); + } else { + if (max_wait_client < max_wait) { + max_wait = max_wait_client; + } + } + + if (max_wait != (unsigned) -1) { tm.tv_sec = max_wait / 1000; - tm.tv_usec = ( max_wait % 1000 ) * 1000; + tm.tv_usec = (max_wait % 1000) * 1000; tm_ptr = &tm; - } - else - { + } else { tm_ptr = NULL; } } #endif /* MBEDTLS_TIMING_C */ - FD_ZERO( &read_fds ); - FD_SET( server_fd.fd, &read_fds ); - FD_SET( client_fd.fd, &read_fds ); - FD_SET( listen_fd.fd, &read_fds ); + FD_ZERO(&read_fds); + FD_SET(server_fd.fd, &read_fds); + FD_SET(client_fd.fd, &read_fds); + FD_SET(listen_fd.fd, &read_fds); - if( ( ret = select( nb_fds, &read_fds, NULL, NULL, tm_ptr ) ) < 0 ) - { - perror( "select" ); + if ((ret = select(nb_fds, &read_fds, NULL, NULL, tm_ptr)) < 0) { + perror("select"); goto exit; } - if( FD_ISSET( listen_fd.fd, &read_fds ) ) + if (FD_ISSET(listen_fd.fd, &read_fds)) { goto accept; - - if( FD_ISSET( client_fd.fd, &read_fds ) ) - { - if( ( ret = handle_message( "S <- C", - &server_fd, &client_fd ) ) != 0 ) - goto accept; } - if( FD_ISSET( server_fd.fd, &read_fds ) ) - { - if( ( ret = handle_message( "S -> C", - &client_fd, &server_fd ) ) != 0 ) + if (FD_ISSET(client_fd.fd, &read_fds)) { + if ((ret = handle_message("S <- C", + &server_fd, &client_fd)) != 0) { goto accept; + } + } + + if (FD_ISSET(server_fd.fd, &read_fds)) { + if ((ret = handle_message("S -> C", + &client_fd, &server_fd)) != 0) { + goto accept; + } } } @@ -997,26 +956,24 @@ accept: exit: #ifdef MBEDTLS_ERROR_C - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { + if (exit_code != MBEDTLS_EXIT_SUCCESS) { char error_buf[100]; - mbedtls_strerror( ret, error_buf, 100 ); - mbedtls_printf( "Last error was: -0x%04X - %s\n\n", (unsigned int) -ret, error_buf ); - fflush( stdout ); + mbedtls_strerror(ret, error_buf, 100); + mbedtls_printf("Last error was: -0x%04X - %s\n\n", (unsigned int) -ret, error_buf); + fflush(stdout); } #endif - for( delay_idx = 0; delay_idx < MAX_DELAYED_HS; delay_idx++ ) - { - mbedtls_free( opt.delay_cli[delay_idx] ); - mbedtls_free( opt.delay_srv[delay_idx] ); + for (delay_idx = 0; delay_idx < MAX_DELAYED_HS; delay_idx++) { + mbedtls_free(opt.delay_cli[delay_idx]); + mbedtls_free(opt.delay_srv[delay_idx]); } - mbedtls_net_free( &client_fd ); - mbedtls_net_free( &server_fd ); - mbedtls_net_free( &listen_fd ); + mbedtls_net_free(&client_fd); + mbedtls_net_free(&server_fd); + mbedtls_net_free(&listen_fd); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_NET_C */ diff --git a/programs/test/zeroize.c b/programs/test/zeroize.c index 979b5515f..b7842c4ef 100644 --- a/programs/test/zeroize.c +++ b/programs/test/zeroize.c @@ -35,16 +35,16 @@ #define BUFFER_LEN 1024 -void usage( void ) +void usage(void) { - mbedtls_printf( "Zeroize is a simple program to assist with testing\n" ); - mbedtls_printf( "the mbedtls_platform_zeroize() function by using the\n" ); - mbedtls_printf( "debugger. This program takes a file as input and\n" ); - mbedtls_printf( "prints the first %d characters. Usage:\n\n", BUFFER_LEN ); - mbedtls_printf( " zeroize \n" ); + mbedtls_printf("Zeroize is a simple program to assist with testing\n"); + mbedtls_printf("the mbedtls_platform_zeroize() function by using the\n"); + mbedtls_printf("debugger. This program takes a file as input and\n"); + mbedtls_printf("prints the first %d characters. Usage:\n\n", BUFFER_LEN); + mbedtls_printf(" zeroize \n"); } -int main( int argc, char** argv ) +int main(int argc, char **argv) { int exit_code = MBEDTLS_EXIT_FAILURE; FILE *fp; @@ -53,34 +53,32 @@ int main( int argc, char** argv ) char *end = p + BUFFER_LEN; int c; - if( argc != 2 ) - { - mbedtls_printf( "This program takes exactly 1 argument\n" ); + if (argc != 2) { + mbedtls_printf("This program takes exactly 1 argument\n"); usage(); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } - fp = fopen( argv[1], "r" ); - if( fp == NULL ) - { - mbedtls_printf( "Could not open file '%s'\n", argv[1] ); - mbedtls_exit( exit_code ); + fp = fopen(argv[1], "r"); + if (fp == NULL) { + mbedtls_printf("Could not open file '%s'\n", argv[1]); + mbedtls_exit(exit_code); } - while( ( c = fgetc( fp ) ) != EOF && p < end - 1 ) - *p++ = (char)c; + while ((c = fgetc(fp)) != EOF && p < end - 1) { + *p++ = (char) c; + } *p = '\0'; - if( p - buf != 0 ) - { - mbedtls_printf( "%s\n", buf ); + if (p - buf != 0) { + mbedtls_printf("%s\n", buf); exit_code = MBEDTLS_EXIT_SUCCESS; + } else { + mbedtls_printf("The file is empty!\n"); } - else - mbedtls_printf( "The file is empty!\n" ); - fclose( fp ); - mbedtls_platform_zeroize( buf, sizeof( buf ) ); + fclose(fp); + mbedtls_platform_zeroize(buf, sizeof(buf)); - mbedtls_exit( exit_code ); // GDB_BREAK_HERE -- don't remove this comment! + mbedtls_exit(exit_code); // GDB_BREAK_HERE -- don't remove this comment! } diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c index 7138fa854..4a25f21b7 100644 --- a/programs/util/pem2der.c +++ b/programs/util/pem2der.c @@ -41,10 +41,10 @@ "\n" #if !defined(MBEDTLS_BASE64_C) || !defined(MBEDTLS_FS_IO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BASE64_C and/or MBEDTLS_FS_IO not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else @@ -52,120 +52,127 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *filename; /* filename of the input file */ const char *output_file; /* where to store the output */ } opt; -int convert_pem_to_der( const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen ) +int convert_pem_to_der(const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen) { int ret; const unsigned char *s1, *s2, *end = input + ilen; size_t len = 0; - s1 = (unsigned char *) strstr( (const char *) input, "-----BEGIN" ); - if( s1 == NULL ) - return( -1 ); + s1 = (unsigned char *) strstr((const char *) input, "-----BEGIN"); + if (s1 == NULL) { + return -1; + } - s2 = (unsigned char *) strstr( (const char *) input, "-----END" ); - if( s2 == NULL ) - return( -1 ); + s2 = (unsigned char *) strstr((const char *) input, "-----END"); + if (s2 == NULL) { + return -1; + } s1 += 10; - while( s1 < end && *s1 != '-' ) + while (s1 < end && *s1 != '-') { s1++; - while( s1 < end && *s1 == '-' ) + } + while (s1 < end && *s1 == '-') { s1++; - if( *s1 == '\r' ) s1++; - if( *s1 == '\n' ) s1++; + } + if (*s1 == '\r') { + s1++; + } + if (*s1 == '\n') { + s1++; + } - if( s2 <= s1 || s2 > end ) - return( -1 ); + if (s2 <= s1 || s2 > end) { + return -1; + } - ret = mbedtls_base64_decode( NULL, 0, &len, (const unsigned char *) s1, s2 - s1 ); - if( ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER ) - return( ret ); + ret = mbedtls_base64_decode(NULL, 0, &len, (const unsigned char *) s1, s2 - s1); + if (ret == MBEDTLS_ERR_BASE64_INVALID_CHARACTER) { + return ret; + } - if( len > *olen ) - return( -1 ); + if (len > *olen) { + return -1; + } - if( ( ret = mbedtls_base64_decode( output, len, &len, (const unsigned char *) s1, - s2 - s1 ) ) != 0 ) - { - return( ret ); + if ((ret = mbedtls_base64_decode(output, len, &len, (const unsigned char *) s1, + s2 - s1)) != 0) { + return ret; } *olen = len; - return( 0 ); + return 0; } /* * Load all data from a file into a given buffer. */ -static int load_file( const char *path, unsigned char **buf, size_t *n ) +static int load_file(const char *path, unsigned char **buf, size_t *n) { FILE *f; long size; - if( ( f = fopen( path, "rb" ) ) == NULL ) - return( -1 ); - - fseek( f, 0, SEEK_END ); - if( ( size = ftell( f ) ) == -1 ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(path, "rb")) == NULL) { + return -1; } - fseek( f, 0, SEEK_SET ); + + fseek(f, 0, SEEK_END); + if ((size = ftell(f)) == -1) { + fclose(f); + return -1; + } + fseek(f, 0, SEEK_SET); *n = (size_t) size; - if( *n + 1 == 0 || - ( *buf = mbedtls_calloc( 1, *n + 1 ) ) == NULL ) - { - fclose( f ); - return( -1 ); + if (*n + 1 == 0 || + (*buf = mbedtls_calloc(1, *n + 1)) == NULL) { + fclose(f); + return -1; } - if( fread( *buf, 1, *n, f ) != *n ) - { - fclose( f ); - free( *buf ); + if (fread(*buf, 1, *n, f) != *n) { + fclose(f); + free(*buf); *buf = NULL; - return( -1 ); + return -1; } - fclose( f ); + fclose(f); (*buf)[*n] = '\0'; - return( 0 ); + return 0; } /* * Write buffer to a file */ -static int write_file( const char *path, unsigned char *buf, size_t n ) +static int write_file(const char *path, unsigned char *buf, size_t n) { FILE *f; - if( ( f = fopen( path, "wb" ) ) == NULL ) - return( -1 ); - - if( fwrite( buf, 1, n, f ) != n ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(path, "wb")) == NULL) { + return -1; } - fclose( f ); - return( 0 ); + if (fwrite(buf, 1, n, f) != n) { + fclose(f); + return -1; + } + + fclose(f); + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -179,95 +186,92 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - memset( buf, 0, sizeof(buf) ); - memset( der_buffer, 0, sizeof(der_buffer) ); + memset(buf, 0, sizeof(buf)); + memset(der_buffer, 0, sizeof(der_buffer)); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } opt.filename = DFL_FILENAME; opt.output_file = DFL_OUTPUT_FILENAME; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "filename" ) == 0 ) + if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "output_file" ) == 0 ) + } else if (strcmp(p, "output_file") == 0) { opt.output_file = q; - else + } else { goto usage; + } } /* * 1.1. Load the PEM file */ - mbedtls_printf( "\n . Loading the PEM file ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the PEM file ..."); + fflush(stdout); - ret = load_file( opt.filename, &pem_buffer, &pem_size ); + ret = load_file(opt.filename, &pem_buffer, &pem_size); - if( ret != 0 ) - { + if (ret != 0) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror(ret, buf, 1024); #endif - mbedtls_printf( " failed\n ! load_file returned %d - %s\n\n", ret, buf ); + mbedtls_printf(" failed\n ! load_file returned %d - %s\n\n", ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2. Convert from PEM to DER */ - mbedtls_printf( " . Converting from PEM to DER ..." ); - fflush( stdout ); + mbedtls_printf(" . Converting from PEM to DER ..."); + fflush(stdout); - if( ( ret = convert_pem_to_der( pem_buffer, pem_size, der_buffer, &der_size ) ) != 0 ) - { + if ((ret = convert_pem_to_der(pem_buffer, pem_size, der_buffer, &der_size)) != 0) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror(ret, buf, 1024); #endif - mbedtls_printf( " failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf ); + mbedtls_printf(" failed\n ! convert_pem_to_der %d - %s\n\n", ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.3. Write the DER file */ - mbedtls_printf( " . Writing the DER file ..." ); - fflush( stdout ); + mbedtls_printf(" . Writing the DER file ..."); + fflush(stdout); - ret = write_file( opt.output_file, der_buffer, der_size ); + ret = write_file(opt.output_file, der_buffer, der_size); - if( ret != 0 ) - { + if (ret != 0) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, 1024 ); + mbedtls_strerror(ret, buf, 1024); #endif - mbedtls_printf( " failed\n ! write_file returned %d - %s\n\n", ret, buf ); + mbedtls_printf(" failed\n ! write_file returned %d - %s\n\n", ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - free( pem_buffer ); + free(pem_buffer); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BASE64_C && MBEDTLS_FS_IO */ diff --git a/programs/util/strerror.c b/programs/util/strerror.c index 66052fdab..4bfd8a1c2 100644 --- a/programs/util/strerror.c +++ b/programs/util/strerror.c @@ -34,43 +34,40 @@ "\n where can be a decimal or hexadecimal (starts with 0x or -0x)\n" #if !defined(MBEDTLS_ERROR_C) && !defined(MBEDTLS_ERROR_STRERROR_DUMMY) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_ERROR_C and/or MBEDTLS_ERROR_STRERROR_DUMMY not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_exit(0); } #else -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { long int val; char *end = argv[1]; - if( argc != 2 ) - { - mbedtls_printf( USAGE ); - mbedtls_exit( 0 ); + if (argc != 2) { + mbedtls_printf(USAGE); + mbedtls_exit(0); } - val = strtol( argv[1], &end, 10 ); - if( *end != '\0' ) - { - val = strtol( argv[1], &end, 16 ); - if( *end != '\0' ) - { - mbedtls_printf( USAGE ); - return( 0 ); + val = strtol(argv[1], &end, 10); + if (*end != '\0') { + val = strtol(argv[1], &end, 16); + if (*end != '\0') { + mbedtls_printf(USAGE); + return 0; } } - if( val > 0 ) + if (val > 0) { val = -val; - - if( val != 0 ) - { - char error_buf[200]; - mbedtls_strerror( val, error_buf, 200 ); - mbedtls_printf("Last error was: -0x%04x - %s\n\n", (unsigned int) -val, error_buf ); } - mbedtls_exit( val ); + if (val != 0) { + char error_buf[200]; + mbedtls_strerror(val, error_buf, 200); + mbedtls_printf("Last error was: -0x%04x - %s\n\n", (unsigned int) -val, error_buf); + } + + mbedtls_exit(val); } #endif /* MBEDTLS_ERROR_C */ diff --git a/programs/wince_main.c b/programs/wince_main.c index 851012c13..be98eae5e 100644 --- a/programs/wince_main.c +++ b/programs/wince_main.c @@ -21,23 +21,23 @@ #include -extern int main( int, const char ** ); +extern int main(int, const char **); -int _tmain( int argc, _TCHAR* targv[] ) +int _tmain(int argc, _TCHAR *targv[]) { char **argv; int i; - argv = ( char ** ) calloc( argc, sizeof( char * ) ); + argv = (char **) calloc(argc, sizeof(char *)); - for ( i = 0; i < argc; i++ ) { + for (i = 0; i < argc; i++) { size_t len; - len = _tcslen( targv[i] ) + 1; - argv[i] = ( char * ) calloc( len, sizeof( char ) ); - wcstombs( argv[i], targv[i], len ); + len = _tcslen(targv[i]) + 1; + argv[i] = (char *) calloc(len, sizeof(char)); + wcstombs(argv[i], targv[i], len); } - return main( argc, argv ); + return main(argc, argv); } #endif /* defined(_WIN32_WCE) */ diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index 00d563fc7..61352387e 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -26,14 +26,14 @@ !defined(MBEDTLS_NET_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_X509_REMOVE_INFO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_ENTROPY_C and/or " - "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " - "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_CTR_DRBG_C not defined and/or MBEDTLS_X509_REMOVE_INFO defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_SSL_TLS_C and/or MBEDTLS_SSL_CLI_C and/or " + "MBEDTLS_NET_C and/or MBEDTLS_RSA_C and/or " + "MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_CTR_DRBG_C not defined and/or MBEDTLS_X509_REMOVE_INFO defined.\n"); + mbedtls_exit(0); } #else @@ -86,8 +86,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { int mode; /* the mode to run the application in */ const char *filename; /* filename of the certificate file */ const char *ca_file; /* the file with the CA certificate(s) */ @@ -99,37 +98,36 @@ struct options int permissive; /* permissive parsing */ } opt; -static void my_debug( void *ctx, int level, - const char *file, int line, - const char *str ) +static void my_debug(void *ctx, int level, + const char *file, int line, + const char *str) { ((void) level); - mbedtls_fprintf( (FILE *) ctx, "%s:%04d: %s", file, line, str ); - fflush( (FILE *) ctx ); + mbedtls_fprintf((FILE *) ctx, "%s:%04d: %s", file, line, str); + fflush((FILE *) ctx); } -static int my_verify( void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags ) +static int my_verify(void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags) { char buf[1024]; ((void) data); - mbedtls_printf( "\nVerify requested for (Depth %d):\n", depth ); - mbedtls_x509_crt_info( buf, sizeof( buf ) - 1, "", crt ); - mbedtls_printf( "%s", buf ); + mbedtls_printf("\nVerify requested for (Depth %d):\n", depth); + mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt); + mbedtls_printf("%s", buf); - if ( ( *flags ) == 0 ) - mbedtls_printf( " This certificate has no flags\n" ); - else - { - mbedtls_x509_crt_verify_info( buf, sizeof( buf ), " ! ", *flags ); - mbedtls_printf( "%s\n", buf ); + if ((*flags) == 0) { + mbedtls_printf(" This certificate has no flags\n"); + } else { + mbedtls_x509_crt_verify_info(buf, sizeof(buf), " ! ", *flags); + mbedtls_printf("%s\n", buf); } - return( 0 ); + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -150,23 +148,22 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_net_init( &server_fd ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_x509_crt_init( &cacert ); + mbedtls_net_init(&server_fd); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_x509_crt_init(&cacert); #if defined(MBEDTLS_X509_CRL_PARSE_C) - mbedtls_x509_crl_init( &cacrl ); + mbedtls_x509_crl_init(&cacrl); #else /* Zeroize structure as CRL parsing is not supported and we have to pass it to the verify function */ - memset( &cacrl, 0, sizeof(mbedtls_x509_crl) ); + memset(&cacrl, 0, sizeof(mbedtls_x509_crl)); #endif - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } @@ -180,91 +177,85 @@ int main( int argc, char *argv[] ) opt.debug_level = DFL_DEBUG_LEVEL; opt.permissive = DFL_PERMISSIVE; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - for( j = 0; p + j < q; j++ ) - { - if( argv[i][j] >= 'A' && argv[i][j] <= 'Z' ) + for (j = 0; p + j < q; j++) { + if (argv[i][j] >= 'A' && argv[i][j] <= 'Z') { argv[i][j] |= 0x20; + } } - if( strcmp( p, "mode" ) == 0 ) - { - if( strcmp( q, "file" ) == 0 ) + if (strcmp(p, "mode") == 0) { + if (strcmp(q, "file") == 0) { opt.mode = MODE_FILE; - else if( strcmp( q, "ssl" ) == 0 ) + } else if (strcmp(q, "ssl") == 0) { opt.mode = MODE_SSL; - else + } else { goto usage; - } - else if( strcmp( p, "filename" ) == 0 ) + } + } else if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "ca_file" ) == 0 ) + } else if (strcmp(p, "ca_file") == 0) { opt.ca_file = q; - else if( strcmp( p, "crl_file" ) == 0 ) + } else if (strcmp(p, "crl_file") == 0) { opt.crl_file = q; - else if( strcmp( p, "ca_path" ) == 0 ) + } else if (strcmp(p, "ca_path") == 0) { opt.ca_path = q; - else if( strcmp( p, "server_name" ) == 0 ) + } else if (strcmp(p, "server_name") == 0) { opt.server_name = q; - else if( strcmp( p, "server_port" ) == 0 ) + } else if (strcmp(p, "server_port") == 0) { opt.server_port = q; - else if( strcmp( p, "debug_level" ) == 0 ) - { - opt.debug_level = atoi( q ); - if( opt.debug_level < 0 || opt.debug_level > 65535 ) + } else if (strcmp(p, "debug_level") == 0) { + opt.debug_level = atoi(q); + if (opt.debug_level < 0 || opt.debug_level > 65535) { goto usage; - } - else if( strcmp( p, "permissive" ) == 0 ) - { - opt.permissive = atoi( q ); - if( opt.permissive < 0 || opt.permissive > 1 ) + } + } else if (strcmp(p, "permissive") == 0) { + opt.permissive = atoi(q); + if (opt.permissive < 0 || opt.permissive > 1) { goto usage; - } - else + } + } else { goto usage; + } } /* * 1.1. Load the trusted CA */ - mbedtls_printf( " . Loading the CA root certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the CA root certificate ..."); + fflush(stdout); - if( strlen( opt.ca_path ) ) - { - if( ( ret = mbedtls_x509_crt_parse_path( &cacert, opt.ca_path ) ) < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_path returned -0x%x\n\n", (unsigned int) -ret ); + if (strlen(opt.ca_path)) { + if ((ret = mbedtls_x509_crt_parse_path(&cacert, opt.ca_path)) < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_path returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } verify = 1; - } - else if( strlen( opt.ca_file ) ) - { - if( ( ret = mbedtls_x509_crt_parse_file( &cacert, opt.ca_file ) ) < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n", (unsigned int) -ret ); + } else if (strlen(opt.ca_file)) { + if ((ret = mbedtls_x509_crt_parse_file(&cacert, opt.ca_file)) < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } verify = 1; } - mbedtls_printf( " ok (%d skipped)\n", ret ); + mbedtls_printf(" ok (%d skipped)\n", ret); #if defined(MBEDTLS_X509_CRL_PARSE_C) - if( strlen( opt.crl_file ) ) - { - if( ( ret = mbedtls_x509_crl_parse_file( &cacrl, opt.crl_file ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crl_parse returned -0x%x\n\n", (unsigned int) -ret ); + if (strlen(opt.crl_file)) { + if ((ret = mbedtls_x509_crl_parse_file(&cacrl, opt.crl_file)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crl_parse returned -0x%x\n\n", + (unsigned int) -ret); goto exit; } @@ -272,52 +263,49 @@ int main( int argc, char *argv[] ) } #endif - if( opt.mode == MODE_FILE ) - { + if (opt.mode == MODE_FILE) { mbedtls_x509_crt crt; mbedtls_x509_crt *cur = &crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); /* * 1.1. Load the certificate(s) */ - mbedtls_printf( "\n . Loading the certificate(s) ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the certificate(s) ..."); + fflush(stdout); - ret = mbedtls_x509_crt_parse_file( &crt, opt.filename ); + ret = mbedtls_x509_crt_parse_file(&crt, opt.filename); - if( ret < 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file returned %d\n\n", ret ); - mbedtls_x509_crt_free( &crt ); + if (ret < 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file returned %d\n\n", ret); + mbedtls_x509_crt_free(&crt); goto exit; } - if( opt.permissive == 0 && ret > 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse failed to parse %d certificates\n\n", ret ); - mbedtls_x509_crt_free( &crt ); + if (opt.permissive == 0 && ret > 0) { + mbedtls_printf( + " failed\n ! mbedtls_x509_crt_parse failed to parse %d certificates\n\n", + ret); + mbedtls_x509_crt_free(&crt); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the certificate(s) */ - while( cur != NULL ) - { - mbedtls_printf( " . Peer certificate information ...\n" ); - ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", - cur ); - if( ret == -1 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret ); - mbedtls_x509_crt_free( &crt ); + while (cur != NULL) { + mbedtls_printf(" . Peer certificate information ...\n"); + ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", + cur); + if (ret == -1) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret); + mbedtls_x509_crt_free(&crt); goto exit; } - mbedtls_printf( "%s\n", buf ); + mbedtls_printf("%s\n", buf); cur = cur->next; } @@ -325,156 +313,143 @@ int main( int argc, char *argv[] ) /* * 1.3 Verify the certificate */ - if( verify ) - { - mbedtls_printf( " . Verifying X.509 certificate..." ); + if (verify) { + mbedtls_printf(" . Verifying X.509 certificate..."); - if( ( ret = mbedtls_x509_crt_verify( &crt, &cacert, &cacrl, NULL, &flags, - my_verify, NULL ) ) != 0 ) - { + if ((ret = mbedtls_x509_crt_verify(&crt, &cacert, &cacrl, NULL, &flags, + my_verify, NULL)) != 0) { char vrfy_buf[512]; - mbedtls_printf( " failed\n" ); + mbedtls_printf(" failed\n"); - mbedtls_x509_crt_verify_info( vrfy_buf, sizeof( vrfy_buf ), " ! ", flags ); + mbedtls_x509_crt_verify_info(vrfy_buf, sizeof(vrfy_buf), " ! ", flags); - mbedtls_printf( "%s\n", vrfy_buf ); + mbedtls_printf("%s\n", vrfy_buf); + } else { + mbedtls_printf(" ok\n"); } - else - mbedtls_printf( " ok\n" ); } - mbedtls_x509_crt_free( &crt ); - } - else if( opt.mode == MODE_SSL ) - { + mbedtls_x509_crt_free(&crt); + } else if (opt.mode == MODE_SSL) { /* * 1. Initialize the RNG and the session data */ - mbedtls_printf( "\n . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf("\n . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto ssl_exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); #if defined(MBEDTLS_DEBUG_C) - mbedtls_debug_set_threshold( opt.debug_level ); + mbedtls_debug_set_threshold(opt.debug_level); #endif /* * 2. Start the connection */ - mbedtls_printf( " . SSL connection to tcp/%s/%s...", opt.server_name, - opt.server_port ); - fflush( stdout ); + mbedtls_printf(" . SSL connection to tcp/%s/%s...", opt.server_name, + opt.server_port); + fflush(stdout); - if( ( ret = mbedtls_net_connect( &server_fd, opt.server_name, - opt.server_port, MBEDTLS_NET_PROTO_TCP ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_net_connect returned %d\n\n", ret ); + if ((ret = mbedtls_net_connect(&server_fd, opt.server_name, + opt.server_port, MBEDTLS_NET_PROTO_TCP)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_net_connect returned %d\n\n", ret); goto ssl_exit; } /* * 3. Setup stuff */ - if( ( ret = mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_config_defaults returned %d\n\n", ret); goto exit; } - if( verify ) - { - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_REQUIRED ); - mbedtls_ssl_conf_ca_chain( &conf, &cacert, NULL ); - mbedtls_ssl_conf_verify( &conf, my_verify, NULL ); + if (verify) { + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_REQUIRED); + mbedtls_ssl_conf_ca_chain(&conf, &cacert, NULL); + mbedtls_ssl_conf_verify(&conf, my_verify, NULL); + } else { + mbedtls_ssl_conf_authmode(&conf, MBEDTLS_SSL_VERIFY_NONE); } - else - mbedtls_ssl_conf_authmode( &conf, MBEDTLS_SSL_VERIFY_NONE ); - mbedtls_ssl_conf_rng( &conf, mbedtls_ctr_drbg_random, &ctr_drbg ); - mbedtls_ssl_conf_dbg( &conf, my_debug, stdout ); + mbedtls_ssl_conf_rng(&conf, mbedtls_ctr_drbg_random, &ctr_drbg); + mbedtls_ssl_conf_dbg(&conf, my_debug, stdout); - if( ( ret = mbedtls_ssl_setup( &ssl, &conf ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_setup returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_setup(&ssl, &conf)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_setup returned %d\n\n", ret); goto ssl_exit; } - if( ( ret = mbedtls_ssl_set_hostname( &ssl, opt.server_name ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret ); + if ((ret = mbedtls_ssl_set_hostname(&ssl, opt.server_name)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ssl_set_hostname returned %d\n\n", ret); goto ssl_exit; } - mbedtls_ssl_set_bio( &ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL ); + mbedtls_ssl_set_bio(&ssl, &server_fd, mbedtls_net_send, mbedtls_net_recv, NULL); /* * 4. Handshake */ - while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 ) - { - if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { - mbedtls_printf( " failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret ); + while ((ret = mbedtls_ssl_handshake(&ssl)) != 0) { + if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) { + mbedtls_printf(" failed\n ! mbedtls_ssl_handshake returned %d\n\n", ret); goto ssl_exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 5. Print the certificate */ #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - mbedtls_printf( " . Peer certificate information ... skipped\n" ); + mbedtls_printf(" . Peer certificate information ... skipped\n"); #else - mbedtls_printf( " . Peer certificate information ...\n" ); - ret = mbedtls_x509_crt_info( (char *) buf, sizeof( buf ) - 1, " ", - mbedtls_ssl_get_peer_cert( &ssl ) ); - if( ret == -1 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret ); + mbedtls_printf(" . Peer certificate information ...\n"); + ret = mbedtls_x509_crt_info((char *) buf, sizeof(buf) - 1, " ", + mbedtls_ssl_get_peer_cert(&ssl)); + if (ret == -1) { + mbedtls_printf(" failed\n ! mbedtls_x509_crt_info returned %d\n\n", ret); goto ssl_exit; } - mbedtls_printf( "%s\n", buf ); + mbedtls_printf("%s\n", buf); #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - mbedtls_ssl_close_notify( &ssl ); + mbedtls_ssl_close_notify(&ssl); ssl_exit: - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); - } - else + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); + } else { goto usage; + } exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_net_free( &server_fd ); - mbedtls_x509_crt_free( &cacert ); + mbedtls_net_free(&server_fd); + mbedtls_x509_crt_free(&cacert); #if defined(MBEDTLS_X509_CRL_PARSE_C) - mbedtls_x509_crl_free( &cacrl ); + mbedtls_x509_crl_free(&cacrl); #endif - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_ENTROPY_C && MBEDTLS_SSL_TLS_C && MBEDTLS_SSL_CLI_C && MBEDTLS_NET_C && MBEDTLS_RSA_C && diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 4879583ce..1126e60ae 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -25,13 +25,13 @@ !defined(MBEDTLS_PK_PARSE_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_PEM_WRITE_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_X509_CSR_WRITE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_PK_PARSE_C and/or MBEDTLS_SHA256_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C " - "not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_X509_CSR_WRITE_C and/or MBEDTLS_FS_IO and/or " + "MBEDTLS_PK_PARSE_C and/or MBEDTLS_SHA256_C and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C " + "not defined.\n"); + mbedtls_exit(0); } #else @@ -95,8 +95,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *filename; /* filename of the key file */ const char *password; /* password for the key file */ int debug_level; /* level of debugging */ @@ -109,36 +108,37 @@ struct options mbedtls_md_type_t md_alg; /* Hash algorithm used for signature. */ } opt; -int write_certificate_request( mbedtls_x509write_csr *req, const char *output_file, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int write_certificate_request(mbedtls_x509write_csr *req, const char *output_file, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret; FILE *f; unsigned char output_buf[4096]; size_t len = 0; - memset( output_buf, 0, 4096 ); - if( ( ret = mbedtls_x509write_csr_pem( req, output_buf, 4096, f_rng, p_rng ) ) < 0 ) - return( ret ); - - len = strlen( (char *) output_buf ); - - if( ( f = fopen( output_file, "w" ) ) == NULL ) - return( -1 ); - - if( fwrite( output_buf, 1, len, f ) != len ) - { - fclose( f ); - return( -1 ); + memset(output_buf, 0, 4096); + if ((ret = mbedtls_x509write_csr_pem(req, output_buf, 4096, f_rng, p_rng)) < 0) { + return ret; } - fclose( f ); + len = strlen((char *) output_buf); - return( 0 ); + if ((f = fopen(output_file, "w")) == NULL) { + return -1; + } + + if (fwrite(output_buf, 1, len, f) != len) { + fclose(f); + return -1; + } + + fclose(f); + + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -154,15 +154,14 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_x509write_csr_init( &req ); - mbedtls_pk_init( &key ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - memset( buf, 0, sizeof( buf ) ); + mbedtls_x509write_csr_init(&req); + mbedtls_pk_init(&key); + mbedtls_ctr_drbg_init(&ctr_drbg); + memset(buf, 0, sizeof(buf)); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } @@ -177,210 +176,194 @@ int main( int argc, char *argv[] ) opt.force_ns_cert_type = DFL_FORCE_NS_CERT_TYPE; opt.md_alg = DFL_MD_ALG; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "filename" ) == 0 ) + if (strcmp(p, "filename") == 0) { opt.filename = q; - else if( strcmp( p, "password" ) == 0 ) + } else if (strcmp(p, "password") == 0) { opt.password = q; - else if( strcmp( p, "output_file" ) == 0 ) + } else if (strcmp(p, "output_file") == 0) { opt.output_file = q; - else if( strcmp( p, "debug_level" ) == 0 ) - { - opt.debug_level = atoi( q ); - if( opt.debug_level < 0 || opt.debug_level > 65535 ) - goto usage; - } - else if( strcmp( p, "subject_name" ) == 0 ) - { - opt.subject_name = q; - } - else if( strcmp( p, "md" ) == 0 ) - { - const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_string( q ); - if( md_info == NULL ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "debug_level") == 0) { + opt.debug_level = atoi(q); + if (opt.debug_level < 0 || opt.debug_level > 65535) { goto usage; } - opt.md_alg = mbedtls_md_get_type( md_info ); - } - else if( strcmp( p, "key_usage" ) == 0 ) - { - while( q != NULL ) - { - if( ( r = strchr( q, ',' ) ) != NULL ) + } else if (strcmp(p, "subject_name") == 0) { + opt.subject_name = q; + } else if (strcmp(p, "md") == 0) { + const mbedtls_md_info_t *md_info = + mbedtls_md_info_from_string(q); + if (md_info == NULL) { + mbedtls_printf("Invalid argument for option %s\n", p); + goto usage; + } + opt.md_alg = mbedtls_md_get_type(md_info); + } else if (strcmp(p, "key_usage") == 0) { + while (q != NULL) { + if ((r = strchr(q, ',')) != NULL) { *r++ = '\0'; + } - if( strcmp( q, "digital_signature" ) == 0 ) + if (strcmp(q, "digital_signature") == 0) { opt.key_usage |= MBEDTLS_X509_KU_DIGITAL_SIGNATURE; - else if( strcmp( q, "non_repudiation" ) == 0 ) + } else if (strcmp(q, "non_repudiation") == 0) { opt.key_usage |= MBEDTLS_X509_KU_NON_REPUDIATION; - else if( strcmp( q, "key_encipherment" ) == 0 ) + } else if (strcmp(q, "key_encipherment") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_ENCIPHERMENT; - else if( strcmp( q, "data_encipherment" ) == 0 ) + } else if (strcmp(q, "data_encipherment") == 0) { opt.key_usage |= MBEDTLS_X509_KU_DATA_ENCIPHERMENT; - else if( strcmp( q, "key_agreement" ) == 0 ) + } else if (strcmp(q, "key_agreement") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_AGREEMENT; - else if( strcmp( q, "key_cert_sign" ) == 0 ) + } else if (strcmp(q, "key_cert_sign") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_CERT_SIGN; - else if( strcmp( q, "crl_sign" ) == 0 ) + } else if (strcmp(q, "crl_sign") == 0) { opt.key_usage |= MBEDTLS_X509_KU_CRL_SIGN; - else + } else { goto usage; + } q = r; } - } - else if( strcmp( p, "force_key_usage" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "force_key_usage") == 0) { + switch (atoi(q)) { case 0: opt.force_key_usage = 0; break; case 1: opt.force_key_usage = 1; break; default: goto usage; } - } - else if( strcmp( p, "ns_cert_type" ) == 0 ) - { - while( q != NULL ) - { - if( ( r = strchr( q, ',' ) ) != NULL ) + } else if (strcmp(p, "ns_cert_type") == 0) { + while (q != NULL) { + if ((r = strchr(q, ',')) != NULL) { *r++ = '\0'; + } - if( strcmp( q, "ssl_client" ) == 0 ) + if (strcmp(q, "ssl_client") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT; - else if( strcmp( q, "ssl_server" ) == 0 ) + } else if (strcmp(q, "ssl_server") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER; - else if( strcmp( q, "email" ) == 0 ) + } else if (strcmp(q, "email") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL; - else if( strcmp( q, "object_signing" ) == 0 ) + } else if (strcmp(q, "object_signing") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING; - else if( strcmp( q, "ssl_ca" ) == 0 ) + } else if (strcmp(q, "ssl_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CA; - else if( strcmp( q, "email_ca" ) == 0 ) + } else if (strcmp(q, "email_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA; - else if( strcmp( q, "object_signing_ca" ) == 0 ) + } else if (strcmp(q, "object_signing_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA; - else + } else { goto usage; + } q = r; } - } - else if( strcmp( p, "force_ns_cert_type" ) == 0 ) - { - switch( atoi( q ) ) - { + } else if (strcmp(p, "force_ns_cert_type") == 0) { + switch (atoi(q)) { case 0: opt.force_ns_cert_type = 0; break; case 1: opt.force_ns_cert_type = 1; break; default: goto usage; } - } - else + } else { goto usage; + } } - mbedtls_x509write_csr_set_md_alg( &req, opt.md_alg ); + mbedtls_x509write_csr_set_md_alg(&req, opt.md_alg); - if( opt.key_usage || opt.force_key_usage == 1 ) - mbedtls_x509write_csr_set_key_usage( &req, opt.key_usage ); + if (opt.key_usage || opt.force_key_usage == 1) { + mbedtls_x509write_csr_set_key_usage(&req, opt.key_usage); + } - if( opt.ns_cert_type || opt.force_ns_cert_type == 1 ) - mbedtls_x509write_csr_set_ns_cert_type( &req, opt.ns_cert_type ); + if (opt.ns_cert_type || opt.force_ns_cert_type == 1) { + mbedtls_x509write_csr_set_ns_cert_type(&req, opt.ns_cert_type); + } /* * 0. Seed the PRNG */ - mbedtls_printf( " . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf(" . Seeding the random number generator..."); + fflush(stdout); - mbedtls_entropy_init( &entropy ); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d", ret ); + mbedtls_entropy_init(&entropy); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.0. Check the subject name for validity */ - mbedtls_printf( " . Checking subject name..." ); - fflush( stdout ); + mbedtls_printf(" . Checking subject name..."); + fflush(stdout); - if( ( ret = mbedtls_x509write_csr_set_subject_name( &req, opt.subject_name ) ) != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509write_csr_set_subject_name returned %d", ret ); + if ((ret = mbedtls_x509write_csr_set_subject_name(&req, opt.subject_name)) != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509write_csr_set_subject_name returned %d", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.1. Load the key */ - mbedtls_printf( " . Loading the private key ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the private key ..."); + fflush(stdout); - ret = mbedtls_pk_parse_keyfile( &key, opt.filename, opt.password, - mbedtls_ctr_drbg_random, &ctr_drbg ); + ret = mbedtls_pk_parse_keyfile(&key, opt.filename, opt.password, + mbedtls_ctr_drbg_random, &ctr_drbg); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile returned %d", ret ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile returned %d", ret); goto exit; } - mbedtls_x509write_csr_set_key( &req, &key ); + mbedtls_x509write_csr_set_key(&req, &key); - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2. Writing the request */ - mbedtls_printf( " . Writing the certificate request ..." ); - fflush( stdout ); + mbedtls_printf(" . Writing the certificate request ..."); + fflush(stdout); - if( ( ret = write_certificate_request( &req, opt.output_file, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_printf( " failed\n ! write_certificate_request %d", ret ); + if ((ret = write_certificate_request(&req, opt.output_file, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_printf(" failed\n ! write_certificate_request %d", ret); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - if( exit_code != MBEDTLS_EXIT_SUCCESS ) - { + if (exit_code != MBEDTLS_EXIT_SUCCESS) { #ifdef MBEDTLS_ERROR_C - mbedtls_strerror( ret, buf, sizeof( buf ) ); - mbedtls_printf( " - %s\n", buf ); + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" - %s\n", buf); #else mbedtls_printf("\n"); #endif } - mbedtls_x509write_csr_free( &req ); - mbedtls_pk_free( &key ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_x509write_csr_free(&req); + mbedtls_pk_free(&key); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_X509_CSR_WRITE_C && MBEDTLS_PK_PARSE_C && MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && MBEDTLS_PEM_WRITE_C */ diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index a8910d7f6..3e134dd6a 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -26,13 +26,13 @@ !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_CTR_DRBG_C) || \ !defined(MBEDTLS_ERROR_C) || !defined(MBEDTLS_SHA256_C) || \ !defined(MBEDTLS_PEM_WRITE_C) -int main( void ) +int main(void) { - mbedtls_printf( "MBEDTLS_X509_CRT_WRITE_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " - "MBEDTLS_FS_IO and/or MBEDTLS_SHA256_C and/or " - "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " - "MBEDTLS_ERROR_C not defined.\n"); - mbedtls_exit( 0 ); + mbedtls_printf("MBEDTLS_X509_CRT_WRITE_C and/or MBEDTLS_X509_CRT_PARSE_C and/or " + "MBEDTLS_FS_IO and/or MBEDTLS_SHA256_C and/or " + "MBEDTLS_ENTROPY_C and/or MBEDTLS_CTR_DRBG_C and/or " + "MBEDTLS_ERROR_C not defined.\n"); + mbedtls_exit(0); } #else @@ -49,7 +49,7 @@ int main( void ) #include #define SET_OID(x, oid) \ - do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char*)oid; } while( 0 ) + do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char *) oid; } while (0) #if defined(MBEDTLS_X509_CSR_PARSE_C) #define USAGE_CSR \ @@ -110,8 +110,8 @@ int main( void ) " issuer_pwd=%%s default: (empty)\n" \ " output_file=%%s default: cert.crt\n" \ " serial=%%s default: 1\n" \ - " not_before=%%s default: 20010101000000\n"\ - " not_after=%%s default: 20301231235959\n"\ + " not_before=%%s default: 20010101000000\n" \ + " not_after=%%s default: 20301231235959\n" \ " is_ca=%%d default: 0 (disabled)\n" \ " max_pathlen=%%d default: -1 (none)\n" \ " md=%%s default: SHA256\n" \ @@ -119,16 +119,16 @@ int main( void ) " MD5, RIPEMD160, SHA1,\n" \ " SHA224, SHA256, SHA384, SHA512\n" \ " version=%%d default: 3\n" \ - " Possible values: 1, 2, 3\n"\ + " Possible values: 1, 2, 3\n" \ " subject_identifier=%%s default: 1\n" \ " Possible values: 0, 1\n" \ - " (Considered for v3 only)\n"\ + " (Considered for v3 only)\n" \ " authority_identifier=%%s default: 1\n" \ " Possible values: 0, 1\n" \ - " (Considered for v3 only)\n"\ + " (Considered for v3 only)\n" \ " basic_constraints=%%d default: 1\n" \ " Possible values: 0, 1\n" \ - " (Considered for v3 only)\n"\ + " (Considered for v3 only)\n" \ " key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " digital_signature\n" \ @@ -138,7 +138,7 @@ int main( void ) " key_agreement\n" \ " key_cert_sign\n" \ " crl_sign\n" \ - " (Considered for v3 only)\n"\ + " (Considered for v3 only)\n" \ " ext_key_usage=%%s default: (empty)\n" \ " Comma-separated-list of values:\n" \ " serverAuth\n" \ @@ -163,8 +163,7 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *issuer_crt; /* filename of the issuer certificate */ const char *request_file; /* filename of the certificate request */ const char *subject_key; /* filename of the subject key file */ @@ -191,9 +190,9 @@ struct options int format; /* format */ } opt; -int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +int write_certificate(mbedtls_x509write_cert *crt, const char *output_file, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng) { int ret; FILE *f; @@ -201,48 +200,49 @@ int write_certificate( mbedtls_x509write_cert *crt, const char *output_file, unsigned char *output_start; size_t len = 0; - memset( output_buf, 0, 4096 ); - if ( opt.format == FORMAT_DER ) - { - ret = mbedtls_x509write_crt_der( crt, output_buf, 4096, - f_rng, p_rng ); - if( ret < 0 ) - return( ret ); + memset(output_buf, 0, 4096); + if (opt.format == FORMAT_DER) { + ret = mbedtls_x509write_crt_der(crt, output_buf, 4096, + f_rng, p_rng); + if (ret < 0) { + return ret; + } len = ret; output_start = output_buf + 4096 - len; } else { - ret = mbedtls_x509write_crt_pem( crt, output_buf, 4096, - f_rng, p_rng ); - if( ret < 0 ) - return( ret ); + ret = mbedtls_x509write_crt_pem(crt, output_buf, 4096, + f_rng, p_rng); + if (ret < 0) { + return ret; + } - len = strlen( (char *) output_buf ); + len = strlen((char *) output_buf); output_start = output_buf; } - if( ( f = fopen( output_file, "w" ) ) == NULL ) - return( -1 ); - - if( fwrite( output_start, 1, len, f ) != len ) - { - fclose( f ); - return( -1 ); + if ((f = fopen(output_file, "w")) == NULL) { + return -1; } - fclose( f ); + if (fwrite(output_start, 1, len, f) != len) { + fclose(f); + return -1; + } - return( 0 ); + fclose(f); + + return 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; mbedtls_x509_crt issuer_crt; mbedtls_pk_context loaded_issuer_key, loaded_subject_key; mbedtls_pk_context *issuer_key = &loaded_issuer_key, - *subject_key = &loaded_subject_key; + *subject_key = &loaded_subject_key; char buf[1024]; char issuer_name[256]; int i; @@ -261,22 +261,21 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_x509write_crt_init( &crt ); - mbedtls_pk_init( &loaded_issuer_key ); - mbedtls_pk_init( &loaded_subject_key ); - mbedtls_mpi_init( &serial ); - mbedtls_ctr_drbg_init( &ctr_drbg ); - mbedtls_entropy_init( &entropy ); + mbedtls_x509write_crt_init(&crt); + mbedtls_pk_init(&loaded_issuer_key); + mbedtls_pk_init(&loaded_subject_key); + mbedtls_mpi_init(&serial); + mbedtls_ctr_drbg_init(&ctr_drbg); + mbedtls_entropy_init(&entropy); #if defined(MBEDTLS_X509_CSR_PARSE_C) - mbedtls_x509_csr_init( &csr ); + mbedtls_x509_csr_init(&csr); #endif - mbedtls_x509_crt_init( &issuer_crt ); - memset( buf, 0, sizeof(buf) ); + mbedtls_x509_crt_init(&issuer_crt); + memset(buf, 0, sizeof(buf)); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } @@ -305,182 +304,143 @@ int main( int argc, char *argv[] ) opt.basic_constraints = DFL_CONSTRAINTS; opt.format = DFL_FORMAT; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "request_file" ) == 0 ) + if (strcmp(p, "request_file") == 0) { opt.request_file = q; - else if( strcmp( p, "subject_key" ) == 0 ) + } else if (strcmp(p, "subject_key") == 0) { opt.subject_key = q; - else if( strcmp( p, "issuer_key" ) == 0 ) + } else if (strcmp(p, "issuer_key") == 0) { opt.issuer_key = q; - else if( strcmp( p, "subject_pwd" ) == 0 ) + } else if (strcmp(p, "subject_pwd") == 0) { opt.subject_pwd = q; - else if( strcmp( p, "issuer_pwd" ) == 0 ) + } else if (strcmp(p, "issuer_pwd") == 0) { opt.issuer_pwd = q; - else if( strcmp( p, "issuer_crt" ) == 0 ) + } else if (strcmp(p, "issuer_crt") == 0) { opt.issuer_crt = q; - else if( strcmp( p, "output_file" ) == 0 ) + } else if (strcmp(p, "output_file") == 0) { opt.output_file = q; - else if( strcmp( p, "subject_name" ) == 0 ) - { + } else if (strcmp(p, "subject_name") == 0) { opt.subject_name = q; - } - else if( strcmp( p, "issuer_name" ) == 0 ) - { + } else if (strcmp(p, "issuer_name") == 0) { opt.issuer_name = q; - } - else if( strcmp( p, "not_before" ) == 0 ) - { + } else if (strcmp(p, "not_before") == 0) { opt.not_before = q; - } - else if( strcmp( p, "not_after" ) == 0 ) - { + } else if (strcmp(p, "not_after") == 0) { opt.not_after = q; - } - else if( strcmp( p, "serial" ) == 0 ) - { + } else if (strcmp(p, "serial") == 0) { opt.serial = q; - } - else if( strcmp( p, "authority_identifier" ) == 0 ) - { - opt.authority_identifier = atoi( q ); - if( opt.authority_identifier != 0 && - opt.authority_identifier != 1 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "authority_identifier") == 0) { + opt.authority_identifier = atoi(q); + if (opt.authority_identifier != 0 && + opt.authority_identifier != 1) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "subject_identifier" ) == 0 ) - { - opt.subject_identifier = atoi( q ); - if( opt.subject_identifier != 0 && - opt.subject_identifier != 1 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "subject_identifier") == 0) { + opt.subject_identifier = atoi(q); + if (opt.subject_identifier != 0 && + opt.subject_identifier != 1) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "basic_constraints" ) == 0 ) - { - opt.basic_constraints = atoi( q ); - if( opt.basic_constraints != 0 && - opt.basic_constraints != 1 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "basic_constraints") == 0) { + opt.basic_constraints = atoi(q); + if (opt.basic_constraints != 0 && + opt.basic_constraints != 1) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "md" ) == 0 ) - { + } else if (strcmp(p, "md") == 0) { const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_string( q ); - if( md_info == NULL ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + mbedtls_md_info_from_string(q); + if (md_info == NULL) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - opt.md = mbedtls_md_get_type( md_info ); - } - else if( strcmp( p, "version" ) == 0 ) - { - opt.version = atoi( q ); - if( opt.version < 1 || opt.version > 3 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + opt.md = mbedtls_md_get_type(md_info); + } else if (strcmp(p, "version") == 0) { + opt.version = atoi(q); + if (opt.version < 1 || opt.version > 3) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } opt.version--; - } - else if( strcmp( p, "selfsign" ) == 0 ) - { - opt.selfsign = atoi( q ); - if( opt.selfsign < 0 || opt.selfsign > 1 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "selfsign") == 0) { + opt.selfsign = atoi(q); + if (opt.selfsign < 0 || opt.selfsign > 1) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "is_ca" ) == 0 ) - { - opt.is_ca = atoi( q ); - if( opt.is_ca < 0 || opt.is_ca > 1 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "is_ca") == 0) { + opt.is_ca = atoi(q); + if (opt.is_ca < 0 || opt.is_ca > 1) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "max_pathlen" ) == 0 ) - { - opt.max_pathlen = atoi( q ); - if( opt.max_pathlen < -1 || opt.max_pathlen > 127 ) - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "max_pathlen") == 0) { + opt.max_pathlen = atoi(q); + if (opt.max_pathlen < -1 || opt.max_pathlen > 127) { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else if( strcmp( p, "key_usage" ) == 0 ) - { - while( q != NULL ) - { - if( ( r = strchr( q, ',' ) ) != NULL ) + } else if (strcmp(p, "key_usage") == 0) { + while (q != NULL) { + if ((r = strchr(q, ',')) != NULL) { *r++ = '\0'; + } - if( strcmp( q, "digital_signature" ) == 0 ) + if (strcmp(q, "digital_signature") == 0) { opt.key_usage |= MBEDTLS_X509_KU_DIGITAL_SIGNATURE; - else if( strcmp( q, "non_repudiation" ) == 0 ) + } else if (strcmp(q, "non_repudiation") == 0) { opt.key_usage |= MBEDTLS_X509_KU_NON_REPUDIATION; - else if( strcmp( q, "key_encipherment" ) == 0 ) + } else if (strcmp(q, "key_encipherment") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_ENCIPHERMENT; - else if( strcmp( q, "data_encipherment" ) == 0 ) + } else if (strcmp(q, "data_encipherment") == 0) { opt.key_usage |= MBEDTLS_X509_KU_DATA_ENCIPHERMENT; - else if( strcmp( q, "key_agreement" ) == 0 ) + } else if (strcmp(q, "key_agreement") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_AGREEMENT; - else if( strcmp( q, "key_cert_sign" ) == 0 ) + } else if (strcmp(q, "key_cert_sign") == 0) { opt.key_usage |= MBEDTLS_X509_KU_KEY_CERT_SIGN; - else if( strcmp( q, "crl_sign" ) == 0 ) + } else if (strcmp(q, "crl_sign") == 0) { opt.key_usage |= MBEDTLS_X509_KU_CRL_SIGN; - else - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } q = r; } - } - else if( strcmp( p, "ext_key_usage" ) == 0 ) - { + } else if (strcmp(p, "ext_key_usage") == 0) { mbedtls_asn1_sequence **tail = &opt.ext_key_usage; - while( q != NULL ) - { - if( ( r = strchr( q, ',' ) ) != NULL ) + while (q != NULL) { + if ((r = strchr(q, ',')) != NULL) { *r++ = '\0'; + } - ext_key_usage = mbedtls_calloc( 1, sizeof(mbedtls_asn1_sequence) ); + ext_key_usage = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); ext_key_usage->buf.tag = MBEDTLS_ASN1_OID; - if( strcmp( q, "serverAuth" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH ); - else if( strcmp( q, "clientAuth" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH ); - else if( strcmp( q, "codeSigning" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING ); - else if( strcmp( q, "emailProtection" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION ); - else if( strcmp( q, "timeStamping" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING ); - else if( strcmp( q, "OCSPSigning" ) == 0 ) - SET_OID( ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING ); - else - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + if (strcmp(q, "serverAuth") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_SERVER_AUTH); + } else if (strcmp(q, "clientAuth") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_CLIENT_AUTH); + } else if (strcmp(q, "codeSigning") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_CODE_SIGNING); + } else if (strcmp(q, "emailProtection") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_EMAIL_PROTECTION); + } else if (strcmp(q, "timeStamping") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_TIME_STAMPING); + } else if (strcmp(q, "OCSPSigning") == 0) { + SET_OID(ext_key_usage->buf, MBEDTLS_OID_OCSP_SIGNING); + } else { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } @@ -489,49 +449,45 @@ int main( int argc, char *argv[] ) q = r; } - } - else if( strcmp( p, "ns_cert_type" ) == 0 ) - { - while( q != NULL ) - { - if( ( r = strchr( q, ',' ) ) != NULL ) + } else if (strcmp(p, "ns_cert_type") == 0) { + while (q != NULL) { + if ((r = strchr(q, ',')) != NULL) { *r++ = '\0'; + } - if( strcmp( q, "ssl_client" ) == 0 ) + if (strcmp(q, "ssl_client") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT; - else if( strcmp( q, "ssl_server" ) == 0 ) + } else if (strcmp(q, "ssl_server") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER; - else if( strcmp( q, "email" ) == 0 ) + } else if (strcmp(q, "email") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL; - else if( strcmp( q, "object_signing" ) == 0 ) + } else if (strcmp(q, "object_signing") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING; - else if( strcmp( q, "ssl_ca" ) == 0 ) + } else if (strcmp(q, "ssl_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_SSL_CA; - else if( strcmp( q, "email_ca" ) == 0 ) + } else if (strcmp(q, "email_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA; - else if( strcmp( q, "object_signing_ca" ) == 0 ) + } else if (strcmp(q, "object_signing_ca") == 0) { opt.ns_cert_type |= MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA; - else - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } q = r; } - } - else if( strcmp( p, "format" ) == 0 ) - { - if ( strcmp(q, "der" ) == 0 ) opt.format = FORMAT_DER; - else if ( strcmp(q, "pem" ) == 0 ) opt.format = FORMAT_PEM; - else - { - mbedtls_printf( "Invalid argument for option %s\n", p ); + } else if (strcmp(p, "format") == 0) { + if (strcmp(q, "der") == 0) { + opt.format = FORMAT_DER; + } else if (strcmp(q, "pem") == 0) { + opt.format = FORMAT_PEM; + } else { + mbedtls_printf("Invalid argument for option %s\n", p); goto usage; } - } - else + } else { goto usage; + } } mbedtls_printf("\n"); @@ -539,351 +495,323 @@ int main( int argc, char *argv[] ) /* * 0. Seed the PRNG */ - mbedtls_printf( " . Seeding the random number generator..." ); - fflush( stdout ); + mbedtls_printf(" . Seeding the random number generator..."); + fflush(stdout); - if( ( ret = mbedtls_ctr_drbg_seed( &ctr_drbg, mbedtls_entropy_func, &entropy, - (const unsigned char *) pers, - strlen( pers ) ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n", - ret, buf ); + if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, + (const unsigned char *) pers, + strlen(pers))) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d - %s\n", + ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); // Parse serial to MPI // - mbedtls_printf( " . Reading serial number..." ); - fflush( stdout ); + mbedtls_printf(" . Reading serial number..."); + fflush(stdout); - if( ( ret = mbedtls_mpi_read_string( &serial, 10, opt.serial ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_mpi_read_string " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + if ((ret = mbedtls_mpi_read_string(&serial, 10, opt.serial)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_mpi_read_string " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); // Parse issuer certificate if present // - if( !opt.selfsign && strlen( opt.issuer_crt ) ) - { + if (!opt.selfsign && strlen(opt.issuer_crt)) { /* * 1.0.a. Load the certificates */ - mbedtls_printf( " . Loading the issuer certificate ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the issuer certificate ..."); + fflush(stdout); - if( ( ret = mbedtls_x509_crt_parse_file( &issuer_crt, opt.issuer_crt ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509_crt_parse_file " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + if ((ret = mbedtls_x509_crt_parse_file(&issuer_crt, opt.issuer_crt)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509_crt_parse_file " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - ret = mbedtls_x509_dn_gets( issuer_name, sizeof(issuer_name), - &issuer_crt.subject ); - if( ret < 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509_dn_gets(issuer_name, sizeof(issuer_name), + &issuer_crt.subject); + if (ret < 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } opt.issuer_name = issuer_name; - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #if defined(MBEDTLS_X509_CSR_PARSE_C) // Parse certificate request if present // - if( !opt.selfsign && strlen( opt.request_file ) ) - { + if (!opt.selfsign && strlen(opt.request_file)) { /* * 1.0.b. Load the CSR */ - mbedtls_printf( " . Loading the certificate request ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the certificate request ..."); + fflush(stdout); - if( ( ret = mbedtls_x509_csr_parse_file( &csr, opt.request_file ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + if ((ret = mbedtls_x509_csr_parse_file(&csr, opt.request_file)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509_csr_parse_file " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - ret = mbedtls_x509_dn_gets( subject_name, sizeof(subject_name), - &csr.subject ); - if( ret < 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509_dn_gets " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509_dn_gets(subject_name, sizeof(subject_name), + &csr.subject); + if (ret < 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509_dn_gets " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } opt.subject_name = subject_name; subject_key = &csr.pk; - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_X509_CSR_PARSE_C */ /* * 1.1. Load the keys */ - if( !opt.selfsign && !strlen( opt.request_file ) ) - { - mbedtls_printf( " . Loading the subject key ..." ); - fflush( stdout ); + if (!opt.selfsign && !strlen(opt.request_file)) { + mbedtls_printf(" . Loading the subject key ..."); + fflush(stdout); - ret = mbedtls_pk_parse_keyfile( &loaded_subject_key, opt.subject_key, - opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_pk_parse_keyfile(&loaded_subject_key, opt.subject_key, + opt.subject_pwd, mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - mbedtls_printf( " . Loading the issuer key ..." ); - fflush( stdout ); + mbedtls_printf(" . Loading the issuer key ..."); + fflush(stdout); - ret = mbedtls_pk_parse_keyfile( &loaded_issuer_key, opt.issuer_key, - opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_pk_parse_keyfile " - "returned -x%02x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_pk_parse_keyfile(&loaded_issuer_key, opt.issuer_key, + opt.issuer_pwd, mbedtls_ctr_drbg_random, &ctr_drbg); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_pk_parse_keyfile " + "returned -x%02x - %s\n\n", (unsigned int) -ret, buf); goto exit; } // Check if key and issuer certificate match // - if( strlen( opt.issuer_crt ) ) - { - if( mbedtls_pk_check_pair( &issuer_crt.pk, issuer_key, - mbedtls_ctr_drbg_random, &ctr_drbg ) != 0 ) - { - mbedtls_printf( " failed\n ! issuer_key does not match " - "issuer certificate\n\n" ); + if (strlen(opt.issuer_crt)) { + if (mbedtls_pk_check_pair(&issuer_crt.pk, issuer_key, + mbedtls_ctr_drbg_random, &ctr_drbg) != 0) { + mbedtls_printf(" failed\n ! issuer_key does not match " + "issuer certificate\n\n"); goto exit; } } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - if( opt.selfsign ) - { + if (opt.selfsign) { opt.subject_name = opt.issuer_name; subject_key = issuer_key; } - mbedtls_x509write_crt_set_subject_key( &crt, subject_key ); - mbedtls_x509write_crt_set_issuer_key( &crt, issuer_key ); + mbedtls_x509write_crt_set_subject_key(&crt, subject_key); + mbedtls_x509write_crt_set_issuer_key(&crt, issuer_key); /* * 1.0. Check the names for validity */ - if( ( ret = mbedtls_x509write_crt_set_subject_name( &crt, opt.subject_name ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject_name " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + if ((ret = mbedtls_x509write_crt_set_subject_name(&crt, opt.subject_name)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject_name " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - if( ( ret = mbedtls_x509write_crt_set_issuer_name( &crt, opt.issuer_name ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_issuer_name " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + if ((ret = mbedtls_x509write_crt_set_issuer_name(&crt, opt.issuer_name)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_issuer_name " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " . Setting certificate values ..." ); - fflush( stdout ); + mbedtls_printf(" . Setting certificate values ..."); + fflush(stdout); - mbedtls_x509write_crt_set_version( &crt, opt.version ); - mbedtls_x509write_crt_set_md_alg( &crt, opt.md ); + mbedtls_x509write_crt_set_version(&crt, opt.version); + mbedtls_x509write_crt_set_md_alg(&crt, opt.md); - ret = mbedtls_x509write_crt_set_serial( &crt, &serial ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_serial " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_serial(&crt, &serial); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - ret = mbedtls_x509write_crt_set_validity( &crt, opt.not_before, opt.not_after ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_validity " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_validity(&crt, opt.not_before, opt.not_after); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_validity " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); - if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && - opt.basic_constraints != 0 ) - { - mbedtls_printf( " . Adding the Basic Constraints extension ..." ); - fflush( stdout ); + if (opt.version == MBEDTLS_X509_CRT_VERSION_3 && + opt.basic_constraints != 0) { + mbedtls_printf(" . Adding the Basic Constraints extension ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_basic_constraints( &crt, opt.is_ca, - opt.max_pathlen ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! x509write_crt_set_basic_constraints " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_basic_constraints(&crt, opt.is_ca, + opt.max_pathlen); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! x509write_crt_set_basic_constraints " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #if defined(MBEDTLS_SHA1_C) - if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && - opt.subject_identifier != 0 ) - { - mbedtls_printf( " . Adding the Subject Key Identifier ..." ); - fflush( stdout ); + if (opt.version == MBEDTLS_X509_CRT_VERSION_3 && + opt.subject_identifier != 0) { + mbedtls_printf(" . Adding the Subject Key Identifier ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_subject_key_identifier( &crt ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_subject" - "_key_identifier returned -0x%04x - %s\n\n", - (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_subject_key_identifier(&crt); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_subject" + "_key_identifier returned -0x%04x - %s\n\n", + (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && - opt.authority_identifier != 0 ) - { - mbedtls_printf( " . Adding the Authority Key Identifier ..." ); - fflush( stdout ); + if (opt.version == MBEDTLS_X509_CRT_VERSION_3 && + opt.authority_identifier != 0) { + mbedtls_printf(" . Adding the Authority Key Identifier ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_authority_key_identifier( &crt ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_authority_" - "key_identifier returned -0x%04x - %s\n\n", - (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_authority_key_identifier(&crt); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_authority_" + "key_identifier returned -0x%04x - %s\n\n", + (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } #endif /* MBEDTLS_SHA1_C */ - if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && - opt.key_usage != 0 ) - { - mbedtls_printf( " . Adding the Key Usage extension ..." ); - fflush( stdout ); + if (opt.version == MBEDTLS_X509_CRT_VERSION_3 && + opt.key_usage != 0) { + mbedtls_printf(" . Adding the Key Usage extension ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_key_usage( &crt, opt.key_usage ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_key_usage " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_key_usage(&crt, opt.key_usage); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_key_usage " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - if( opt.ext_key_usage ) - { - mbedtls_printf( " . Adding the Extended Key Usage extension ..." ); - fflush( stdout ); + if (opt.ext_key_usage) { + mbedtls_printf(" . Adding the Extended Key Usage extension ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_ext_key_usage( &crt, opt.ext_key_usage ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_ext_key_usage(&crt, opt.ext_key_usage); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf( + " failed\n ! mbedtls_x509write_crt_set_ext_key_usage returned -0x%02x - %s\n\n", + (unsigned int) -ret, + buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } - if( opt.version == MBEDTLS_X509_CRT_VERSION_3 && - opt.ns_cert_type != 0 ) - { - mbedtls_printf( " . Adding the NS Cert Type extension ..." ); - fflush( stdout ); + if (opt.version == MBEDTLS_X509_CRT_VERSION_3 && + opt.ns_cert_type != 0) { + mbedtls_printf(" . Adding the NS Cert Type extension ..."); + fflush(stdout); - ret = mbedtls_x509write_crt_set_ns_cert_type( &crt, opt.ns_cert_type ); - if( ret != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! mbedtls_x509write_crt_set_ns_cert_type " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf ); + ret = mbedtls_x509write_crt_set_ns_cert_type(&crt, opt.ns_cert_type); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_ns_cert_type " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); } /* * 1.2. Writing the certificate */ - mbedtls_printf( " . Writing the certificate..." ); - fflush( stdout ); + mbedtls_printf(" . Writing the certificate..."); + fflush(stdout); - if( ( ret = write_certificate( &crt, opt.output_file, - mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) - { - mbedtls_strerror( ret, buf, sizeof(buf) ); - mbedtls_printf( " failed\n ! write_certificate -0x%04x - %s\n\n", - (unsigned int) -ret, buf ); + if ((ret = write_certificate(&crt, opt.output_file, + mbedtls_ctr_drbg_random, &ctr_drbg)) != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! write_certificate -0x%04x - %s\n\n", + (unsigned int) -ret, buf); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); exit_code = MBEDTLS_EXIT_SUCCESS; exit: #if defined(MBEDTLS_X509_CSR_PARSE_C) - mbedtls_x509_csr_free( &csr ); + mbedtls_x509_csr_free(&csr); #endif /* MBEDTLS_X509_CSR_PARSE_C */ - mbedtls_x509_crt_free( &issuer_crt ); - mbedtls_x509write_crt_free( &crt ); - mbedtls_pk_free( &loaded_subject_key ); - mbedtls_pk_free( &loaded_issuer_key ); - mbedtls_mpi_free( &serial ); - mbedtls_ctr_drbg_free( &ctr_drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_x509_crt_free(&issuer_crt); + mbedtls_x509write_crt_free(&crt); + mbedtls_pk_free(&loaded_subject_key); + mbedtls_pk_free(&loaded_issuer_key); + mbedtls_mpi_free(&serial); + mbedtls_ctr_drbg_free(&ctr_drbg); + mbedtls_entropy_free(&entropy); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_X509_CRT_WRITE_C && MBEDTLS_X509_CRT_PARSE_C && MBEDTLS_FS_IO && MBEDTLS_ENTROPY_C && MBEDTLS_CTR_DRBG_C && diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c index 28cb99e6e..f06987c1f 100644 --- a/programs/x509/crl_app.c +++ b/programs/x509/crl_app.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CRL_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ defined(MBEDTLS_X509_REMOVE_INFO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_X509_CRL_PARSE_C and/or MBEDTLS_FS_IO not defined and/or " - "MBEDTLS_X509_REMOVE_INFO defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_X509_CRL_PARSE_C and/or MBEDTLS_FS_IO not defined and/or " + "MBEDTLS_X509_REMOVE_INFO defined.\n"); + mbedtls_exit(0); } #else @@ -52,12 +52,11 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *filename; /* filename of the certificate file */ } opt; -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -69,67 +68,65 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_x509_crl_init( &crl ); + mbedtls_x509_crl_init(&crl); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } opt.filename = DFL_FILENAME; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "filename" ) == 0 ) + if (strcmp(p, "filename") == 0) { opt.filename = q; - else + } else { goto usage; + } } /* * 1.1. Load the CRL */ - mbedtls_printf( "\n . Loading the CRL ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the CRL ..."); + fflush(stdout); - ret = mbedtls_x509_crl_parse_file( &crl, opt.filename ); + ret = mbedtls_x509_crl_parse_file(&crl, opt.filename); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crl_parse_file returned %d\n\n", ret ); - mbedtls_x509_crl_free( &crl ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_crl_parse_file returned %d\n\n", ret); + mbedtls_x509_crl_free(&crl); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the CRL */ - mbedtls_printf( " . CRL information ...\n" ); - ret = mbedtls_x509_crl_info( (char *) buf, sizeof( buf ) - 1, " ", &crl ); - if( ret == -1 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_crl_info returned %d\n\n", ret ); - mbedtls_x509_crl_free( &crl ); + mbedtls_printf(" . CRL information ...\n"); + ret = mbedtls_x509_crl_info((char *) buf, sizeof(buf) - 1, " ", &crl); + if (ret == -1) { + mbedtls_printf(" failed\n ! mbedtls_x509_crl_info returned %d\n\n", ret); + mbedtls_x509_crl_free(&crl); goto exit; } - mbedtls_printf( "%s\n", buf ); + mbedtls_printf("%s\n", buf); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_x509_crl_free( &crl ); + mbedtls_x509_crl_free(&crl); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_X509_CRL_PARSE_C && MBEDTLS_FS_IO */ diff --git a/programs/x509/load_roots.c b/programs/x509/load_roots.c index b8b0ecdee..237bd7cab 100644 --- a/programs/x509/load_roots.c +++ b/programs/x509/load_roots.c @@ -50,11 +50,11 @@ #if !defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ !defined(MBEDTLS_TIMING_C) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_X509_CRT_PARSE_C and/or MBEDTLS_FS_IO and/or " - "MBEDTLS_TIMING_C not defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_TIMING_C not defined.\n"); + mbedtls_exit(0); } #else @@ -80,55 +80,51 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char **filenames; /* NULL-terminated list of file names */ unsigned iterations; /* Number of iterations to time */ int prime_cache; /* Prime the disk read cache? */ } opt; -int read_certificates( const char *const *filenames ) +int read_certificates(const char *const *filenames) { mbedtls_x509_crt cas; int ret = 0; const char *const *cur; - mbedtls_x509_crt_init( &cas ); + mbedtls_x509_crt_init(&cas); - for( cur = filenames; *cur != NULL; cur++ ) - { - ret = mbedtls_x509_crt_parse_file( &cas, *cur ); - if( ret != 0 ) - { + for (cur = filenames; *cur != NULL; cur++) { + ret = mbedtls_x509_crt_parse_file(&cas, *cur); + if (ret != 0) { #if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY) char error_message[200]; - mbedtls_strerror( ret, error_message, sizeof( error_message ) ); - printf( "\n%s: -0x%04x (%s)\n", - *cur, (unsigned) -ret, error_message ); + mbedtls_strerror(ret, error_message, sizeof(error_message)); + printf("\n%s: -0x%04x (%s)\n", + *cur, (unsigned) -ret, error_message); #else - printf( "\n%s: -0x%04x\n", - *cur, (unsigned) -ret ); + printf("\n%s: -0x%04x\n", + *cur, (unsigned) -ret); #endif goto exit; } } exit: - mbedtls_x509_crt_free( &cas ); - return( ret == 0 ); + mbedtls_x509_crt_free(&cas); + return ret == 0; } -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int exit_code = MBEDTLS_EXIT_FAILURE; unsigned i, j; struct mbedtls_timing_hr_time timer; unsigned long ms; - if( argc <= 1 ) - { - mbedtls_printf( USAGE ); + if (argc <= 1) { + mbedtls_printf(USAGE); goto exit; } @@ -136,66 +132,61 @@ int main( int argc, char *argv[] ) opt.iterations = DFL_ITERATIONS; opt.prime_cache = DFL_PRIME_CACHE; - for( i = 1; i < (unsigned) argc; i++ ) - { + for (i = 1; i < (unsigned) argc; i++) { char *p = argv[i]; char *q = NULL; - if( strcmp( p, "--" ) == 0 ) + if (strcmp(p, "--") == 0) { break; - if( ( q = strchr( p, '=' ) ) == NULL ) + } + if ((q = strchr(p, '=')) == NULL) { break; + } *q++ = '\0'; - for( j = 0; p + j < q; j++ ) - { - if( argv[i][j] >= 'A' && argv[i][j] <= 'Z' ) + for (j = 0; p + j < q; j++) { + if (argv[i][j] >= 'A' && argv[i][j] <= 'Z') { argv[i][j] |= 0x20; + } } - if( strcmp( p, "iterations" ) == 0 ) - { - opt.iterations = atoi( q ); - } - else if( strcmp( p, "prime" ) == 0 ) - { - opt.iterations = atoi( q ) != 0; - } - else - { - mbedtls_printf( "Unknown option: %s\n", p ); - mbedtls_printf( USAGE ); + if (strcmp(p, "iterations") == 0) { + opt.iterations = atoi(q); + } else if (strcmp(p, "prime") == 0) { + opt.iterations = atoi(q) != 0; + } else { + mbedtls_printf("Unknown option: %s\n", p); + mbedtls_printf(USAGE); goto exit; } } - opt.filenames = (const char**) argv + i; - if( *opt.filenames == 0 ) - { - mbedtls_printf( "Missing list of certificate files to parse\n" ); + opt.filenames = (const char **) argv + i; + if (*opt.filenames == 0) { + mbedtls_printf("Missing list of certificate files to parse\n"); goto exit; } - mbedtls_printf( "Parsing %u certificates", argc - i ); - if( opt.prime_cache ) - { - if( ! read_certificates( opt.filenames ) ) + mbedtls_printf("Parsing %u certificates", argc - i); + if (opt.prime_cache) { + if (!read_certificates(opt.filenames)) { goto exit; - mbedtls_printf( " " ); + } + mbedtls_printf(" "); } - (void) mbedtls_timing_get_timer( &timer, 1 ); - for( i = 1; i <= opt.iterations; i++ ) - { - if( ! read_certificates( opt.filenames ) ) + (void) mbedtls_timing_get_timer(&timer, 1); + for (i = 1; i <= opt.iterations; i++) { + if (!read_certificates(opt.filenames)) { goto exit; - mbedtls_printf( "." ); + } + mbedtls_printf("."); } - ms = mbedtls_timing_get_timer( &timer, 0 ); - mbedtls_printf( "\n%u iterations -> %lu ms\n", opt.iterations, ms ); + ms = mbedtls_timing_get_timer(&timer, 0); + mbedtls_printf("\n%u iterations -> %lu ms\n", opt.iterations, ms); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* necessary configuration */ diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c index dda14e1e3..8cfe4a441 100644 --- a/programs/x509/req_app.c +++ b/programs/x509/req_app.c @@ -24,12 +24,12 @@ #if !defined(MBEDTLS_BIGNUM_C) || !defined(MBEDTLS_RSA_C) || \ !defined(MBEDTLS_X509_CSR_PARSE_C) || !defined(MBEDTLS_FS_IO) || \ defined(MBEDTLS_X509_REMOVE_INFO) -int main( void ) +int main(void) { mbedtls_printf("MBEDTLS_BIGNUM_C and/or MBEDTLS_RSA_C and/or " - "MBEDTLS_X509_CSR_PARSE_C and/or MBEDTLS_FS_IO not defined and/or " - "MBEDTLS_X509_REMOVE_INFO defined.\n"); - mbedtls_exit( 0 ); + "MBEDTLS_X509_CSR_PARSE_C and/or MBEDTLS_FS_IO not defined and/or " + "MBEDTLS_X509_REMOVE_INFO defined.\n"); + mbedtls_exit(0); } #else @@ -52,12 +52,11 @@ int main( void ) /* * global options */ -struct options -{ +struct options { const char *filename; /* filename of the certificate request */ } opt; -int main( int argc, char *argv[] ) +int main(int argc, char *argv[]) { int ret = 1; int exit_code = MBEDTLS_EXIT_FAILURE; @@ -69,67 +68,65 @@ int main( int argc, char *argv[] ) /* * Set to sane values */ - mbedtls_x509_csr_init( &csr ); + mbedtls_x509_csr_init(&csr); - if( argc == 0 ) - { - usage: - mbedtls_printf( USAGE ); + if (argc == 0) { +usage: + mbedtls_printf(USAGE); goto exit; } opt.filename = DFL_FILENAME; - for( i = 1; i < argc; i++ ) - { + for (i = 1; i < argc; i++) { p = argv[i]; - if( ( q = strchr( p, '=' ) ) == NULL ) + if ((q = strchr(p, '=')) == NULL) { goto usage; + } *q++ = '\0'; - if( strcmp( p, "filename" ) == 0 ) + if (strcmp(p, "filename") == 0) { opt.filename = q; - else + } else { goto usage; + } } /* * 1.1. Load the CSR */ - mbedtls_printf( "\n . Loading the CSR ..." ); - fflush( stdout ); + mbedtls_printf("\n . Loading the CSR ..."); + fflush(stdout); - ret = mbedtls_x509_csr_parse_file( &csr, opt.filename ); + ret = mbedtls_x509_csr_parse_file(&csr, opt.filename); - if( ret != 0 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_csr_parse_file returned %d\n\n", ret ); - mbedtls_x509_csr_free( &csr ); + if (ret != 0) { + mbedtls_printf(" failed\n ! mbedtls_x509_csr_parse_file returned %d\n\n", ret); + mbedtls_x509_csr_free(&csr); goto exit; } - mbedtls_printf( " ok\n" ); + mbedtls_printf(" ok\n"); /* * 1.2 Print the CSR */ - mbedtls_printf( " . CSR information ...\n" ); - ret = mbedtls_x509_csr_info( (char *) buf, sizeof( buf ) - 1, " ", &csr ); - if( ret == -1 ) - { - mbedtls_printf( " failed\n ! mbedtls_x509_csr_info returned %d\n\n", ret ); - mbedtls_x509_csr_free( &csr ); + mbedtls_printf(" . CSR information ...\n"); + ret = mbedtls_x509_csr_info((char *) buf, sizeof(buf) - 1, " ", &csr); + if (ret == -1) { + mbedtls_printf(" failed\n ! mbedtls_x509_csr_info returned %d\n\n", ret); + mbedtls_x509_csr_free(&csr); goto exit; } - mbedtls_printf( "%s\n", buf ); + mbedtls_printf("%s\n", buf); exit_code = MBEDTLS_EXIT_SUCCESS; exit: - mbedtls_x509_csr_free( &csr ); + mbedtls_x509_csr_free(&csr); - mbedtls_exit( exit_code ); + mbedtls_exit(exit_code); } #endif /* MBEDTLS_BIGNUM_C && MBEDTLS_RSA_C && MBEDTLS_X509_CSR_PARSE_C && MBEDTLS_FS_IO */ diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt index fc210b908..077500302 100644 --- a/scripts/data_files/error.fmt +++ b/scripts/data_files/error.fmt @@ -32,115 +32,120 @@ HEADER_INCLUDED -const char * mbedtls_high_level_strerr( int error_code ) +const char *mbedtls_high_level_strerr(int error_code) { int high_level_error_code; - if( error_code < 0 ) + if (error_code < 0) { error_code = -error_code; + } /* Extract the high-level part from the error code. */ high_level_error_code = error_code & 0xFF80; - switch( high_level_error_code ) - { - /* Begin Auto-Generated Code. */ -HIGH_LEVEL_CODE_CHECKS + switch (high_level_error_code) { + /* Begin Auto-Generated Code. */ + HIGH_LEVEL_CODE_CHECKS /* End Auto-Generated Code. */ default: break; } - return( NULL ); + return NULL; } -const char * mbedtls_low_level_strerr( int error_code ) +const char *mbedtls_low_level_strerr(int error_code) { int low_level_error_code; - if( error_code < 0 ) + if (error_code < 0) { error_code = -error_code; + } /* Extract the low-level part from the error code. */ low_level_error_code = error_code & ~0xFF80; - switch( low_level_error_code ) - { - /* Begin Auto-Generated Code. */ -LOW_LEVEL_CODE_CHECKS + switch (low_level_error_code) { + /* Begin Auto-Generated Code. */ + LOW_LEVEL_CODE_CHECKS /* End Auto-Generated Code. */ default: break; } - return( NULL ); + return NULL; } -void mbedtls_strerror( int ret, char *buf, size_t buflen ) +void mbedtls_strerror(int ret, char *buf, size_t buflen) { size_t len; int use_ret; - const char * high_level_error_description = NULL; - const char * low_level_error_description = NULL; + const char *high_level_error_description = NULL; + const char *low_level_error_description = NULL; - if( buflen == 0 ) + if (buflen == 0) { return; + } - memset( buf, 0x00, buflen ); + memset(buf, 0x00, buflen); - if( ret < 0 ) + if (ret < 0) { ret = -ret; + } - if( ret & 0xFF80 ) - { + if (ret & 0xFF80) { use_ret = ret & 0xFF80; // Translate high level error code. - high_level_error_description = mbedtls_high_level_strerr( ret ); + high_level_error_description = mbedtls_high_level_strerr(ret); - if( high_level_error_description == NULL ) - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); - else - mbedtls_snprintf( buf, buflen, "%s", high_level_error_description ); + if (high_level_error_description == NULL) { + mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret); + } else { + mbedtls_snprintf(buf, buflen, "%s", high_level_error_description); + } #if defined(MBEDTLS_SSL_TLS_C) // Early return in case of a fatal error - do not try to translate low // level code. - if(use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) + if (use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) { return; + } #endif /* MBEDTLS_SSL_TLS_C */ } use_ret = ret & ~0xFF80; - if( use_ret == 0 ) + if (use_ret == 0) { return; + } // If high level code is present, make a concatenation between both // error strings. // - len = strlen( buf ); + len = strlen(buf); - if( len > 0 ) - { - if( buflen - len < 5 ) + if (len > 0) { + if (buflen - len < 5) { return; + } - mbedtls_snprintf( buf + len, buflen - len, " : " ); + mbedtls_snprintf(buf + len, buflen - len, " : "); buf += len + 3; buflen -= len + 3; } // Translate low level error code. - low_level_error_description = mbedtls_low_level_strerr( ret ); + low_level_error_description = mbedtls_low_level_strerr(ret); - if( low_level_error_description == NULL ) - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); - else - mbedtls_snprintf( buf, buflen, "%s", low_level_error_description ); + if (low_level_error_description == NULL) { + mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret); + } else { + mbedtls_snprintf(buf, buflen, "%s", low_level_error_description); + } } #else /* MBEDTLS_ERROR_C */ @@ -148,18 +153,19 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen ) /* * Provide a dummy implementation when MBEDTLS_ERROR_C is not defined */ -void mbedtls_strerror( int ret, char *buf, size_t buflen ) +void mbedtls_strerror(int ret, char *buf, size_t buflen) { ((void) ret); - if( buflen > 0 ) + if (buflen > 0) { buf[0] = '\0'; + } } #endif /* MBEDTLS_ERROR_C */ #if defined(MBEDTLS_TEST_HOOKS) -void (*mbedtls_test_hook_error_add)( int, int, const char *, int ); +void (*mbedtls_test_hook_error_add)(int, int, const char *, int); #endif #endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */ diff --git a/scripts/data_files/query_config.fmt b/scripts/data_files/query_config.fmt index b5d3eec95..e7e6fc602 100644 --- a/scripts/data_files/query_config.fmt +++ b/scripts/data_files/query_config.fmt @@ -98,11 +98,12 @@ */ #define MACRO_EXPANSION_TO_STR(macro) MACRO_NAME_TO_STR(macro) #define MACRO_NAME_TO_STR(macro) \ - mbedtls_printf( "%s", strlen( #macro "" ) > 0 ? #macro "\n" : "" ) + mbedtls_printf("%s", strlen( #macro "") > 0 ? #macro "\n" : "") #define STRINGIFY(macro) #macro #define OUTPUT_MACRO_NAME_VALUE(macro) mbedtls_printf( #macro "%s\n", \ - ( STRINGIFY(macro) "" )[0] != 0 ? "=" STRINGIFY(macro) : "" ) + (STRINGIFY(macro) "")[0] != 0 ? "=" STRINGIFY( \ + macro) : "") #if defined(_MSC_VER) /* @@ -117,13 +118,13 @@ #pragma warning(disable:4003) #endif /* _MSC_VER */ -int query_config( const char *config ) +int query_config(const char *config) { -CHECK_CONFIG /* If the symbol is not found, return an error */ - return( 1 ); + CHECK_CONFIG /* If the symbol is not found, return an error */ + return 1; } -void list_config( void ) +void list_config(void) { LIST_CONFIG } diff --git a/scripts/data_files/version_features.fmt b/scripts/data_files/version_features.fmt index d4bf77446..d3217a191 100644 --- a/scripts/data_files/version_features.fmt +++ b/scripts/data_files/version_features.fmt @@ -27,28 +27,30 @@ static const char * const features[] = { #if defined(MBEDTLS_VERSION_FEATURES) -FEATURE_DEFINES + FEATURE_DEFINES #endif /* MBEDTLS_VERSION_FEATURES */ NULL }; -int mbedtls_version_check_feature( const char *feature ) +int mbedtls_version_check_feature(const char *feature) { const char * const *idx = features; - if( *idx == NULL ) - return( -2 ); + if (*idx == NULL) { + return -2; + } - if( feature == NULL ) - return( -1 ); + if (feature == NULL) { + return -1; + } - while( *idx != NULL ) - { - if( !strcmp( *idx, feature ) ) - return( 0 ); + while (*idx != NULL) { + if (!strcmp(*idx, feature)) { + return 0; + } idx++; } - return( -1 ); + return -1; } #endif /* MBEDTLS_VERSION_C */ diff --git a/tests/configs/config-wrapper-malloc-0-null.h b/tests/configs/config-wrapper-malloc-0-null.h index b065c2db4..fc649bf14 100644 --- a/tests/configs/config-wrapper-malloc-0-null.h +++ b/tests/configs/config-wrapper-malloc-0-null.h @@ -23,11 +23,12 @@ #include #ifndef MBEDTLS_PLATFORM_STD_CALLOC -static inline void *custom_calloc( size_t nmemb, size_t size ) +static inline void *custom_calloc(size_t nmemb, size_t size) { - if( nmemb == 0 || size == 0 ) - return( NULL ); - return( calloc( nmemb, size ) ); + if (nmemb == 0 || size == 0) { + return NULL; + } + return calloc(nmemb, size); } #define MBEDTLS_PLATFORM_MEMORY diff --git a/tests/include/alt-dummy/aes_alt.h b/tests/include/alt-dummy/aes_alt.h index f226188fd..21d85f1ff 100644 --- a/tests/include/alt-dummy/aes_alt.h +++ b/tests/include/alt-dummy/aes_alt.h @@ -19,16 +19,14 @@ #ifndef AES_ALT_H #define AES_ALT_H -typedef struct mbedtls_aes_context -{ +typedef struct mbedtls_aes_context { int dummy; } mbedtls_aes_context; #if defined(MBEDTLS_CIPHER_MODE_XTS) -typedef struct mbedtls_aes_xts_context -{ +typedef struct mbedtls_aes_xts_context { int dummy; } mbedtls_aes_xts_context; #endif diff --git a/tests/include/alt-dummy/aria_alt.h b/tests/include/alt-dummy/aria_alt.h index 5f2335b8f..aabec9c9f 100644 --- a/tests/include/alt-dummy/aria_alt.h +++ b/tests/include/alt-dummy/aria_alt.h @@ -19,8 +19,7 @@ #ifndef ARIA_ALT_H #define ARIA_ALT_H -typedef struct mbedtls_aria_context -{ +typedef struct mbedtls_aria_context { int dummy; } mbedtls_aria_context; diff --git a/tests/include/alt-dummy/camellia_alt.h b/tests/include/alt-dummy/camellia_alt.h index c23d1b4c0..b42613bc2 100644 --- a/tests/include/alt-dummy/camellia_alt.h +++ b/tests/include/alt-dummy/camellia_alt.h @@ -19,8 +19,7 @@ #ifndef CAMELLIA_ALT_H #define CAMELLIA_ALT_H -typedef struct mbedtls_camellia_context -{ +typedef struct mbedtls_camellia_context { int dummy; } mbedtls_camellia_context; diff --git a/tests/include/alt-dummy/ccm_alt.h b/tests/include/alt-dummy/ccm_alt.h index dcb834ed6..5ec7d4e48 100644 --- a/tests/include/alt-dummy/ccm_alt.h +++ b/tests/include/alt-dummy/ccm_alt.h @@ -19,8 +19,7 @@ #ifndef CCM_ALT_H #define CCM_ALT_H -typedef struct mbedtls_ccm_context -{ +typedef struct mbedtls_ccm_context { int dummy; } mbedtls_ccm_context; diff --git a/tests/include/alt-dummy/chacha20_alt.h b/tests/include/alt-dummy/chacha20_alt.h index 7a5a25cab..a53a33002 100644 --- a/tests/include/alt-dummy/chacha20_alt.h +++ b/tests/include/alt-dummy/chacha20_alt.h @@ -19,8 +19,7 @@ #ifndef CHACHA20_ALT_H #define CHACHA20_ALT_H -typedef struct mbedtls_chacha20_context -{ +typedef struct mbedtls_chacha20_context { int dummy; } mbedtls_chacha20_context; diff --git a/tests/include/alt-dummy/chachapoly_alt.h b/tests/include/alt-dummy/chachapoly_alt.h index 448517d7d..584a42174 100644 --- a/tests/include/alt-dummy/chachapoly_alt.h +++ b/tests/include/alt-dummy/chachapoly_alt.h @@ -21,8 +21,7 @@ #include "mbedtls/chacha20.h" -typedef struct mbedtls_chachapoly_context -{ +typedef struct mbedtls_chachapoly_context { int dummy; } mbedtls_chachapoly_context; diff --git a/tests/include/alt-dummy/cmac_alt.h b/tests/include/alt-dummy/cmac_alt.h index 4c9feee33..13c998d68 100644 --- a/tests/include/alt-dummy/cmac_alt.h +++ b/tests/include/alt-dummy/cmac_alt.h @@ -19,8 +19,7 @@ #ifndef CMAC_ALT_H #define CMAC_ALT_H -struct mbedtls_cmac_context_t -{ +struct mbedtls_cmac_context_t { int dummy; }; diff --git a/tests/include/alt-dummy/des_alt.h b/tests/include/alt-dummy/des_alt.h index e5a0bd3aa..3b8abe493 100644 --- a/tests/include/alt-dummy/des_alt.h +++ b/tests/include/alt-dummy/des_alt.h @@ -20,14 +20,12 @@ #ifndef DES_ALT_H #define DES_ALT_H -typedef struct mbedtls_des_context -{ +typedef struct mbedtls_des_context { int dummy; } mbedtls_des_context; -typedef struct mbedtls_des3_context -{ +typedef struct mbedtls_des3_context { int dummy; } mbedtls_des3_context; diff --git a/tests/include/alt-dummy/dhm_alt.h b/tests/include/alt-dummy/dhm_alt.h index 6289a41db..ccb3bd3c3 100644 --- a/tests/include/alt-dummy/dhm_alt.h +++ b/tests/include/alt-dummy/dhm_alt.h @@ -19,8 +19,7 @@ #ifndef DHM_ALT_H #define DHM_ALT_H -typedef struct mbedtls_dhm_context -{ +typedef struct mbedtls_dhm_context { int dummy; } mbedtls_dhm_context; diff --git a/tests/include/alt-dummy/ecjpake_alt.h b/tests/include/alt-dummy/ecjpake_alt.h index 8de0fcf8e..90c21da8b 100644 --- a/tests/include/alt-dummy/ecjpake_alt.h +++ b/tests/include/alt-dummy/ecjpake_alt.h @@ -19,8 +19,7 @@ #ifndef ECJPAKE_ALT_H #define ECJPAKE_ALT_H -typedef struct mbedtls_ecjpake_context -{ +typedef struct mbedtls_ecjpake_context { int dummy; } mbedtls_ecjpake_context; diff --git a/tests/include/alt-dummy/ecp_alt.h b/tests/include/alt-dummy/ecp_alt.h index d263871c4..56c981095 100644 --- a/tests/include/alt-dummy/ecp_alt.h +++ b/tests/include/alt-dummy/ecp_alt.h @@ -19,8 +19,7 @@ #ifndef ECP_ALT_H #define ECP_ALT_H -typedef struct mbedtls_ecp_group -{ +typedef struct mbedtls_ecp_group { const mbedtls_ecp_group_id id; const mbedtls_mpi P; const mbedtls_mpi A; diff --git a/tests/include/alt-dummy/gcm_alt.h b/tests/include/alt-dummy/gcm_alt.h index 94986ff48..7be5b62f6 100644 --- a/tests/include/alt-dummy/gcm_alt.h +++ b/tests/include/alt-dummy/gcm_alt.h @@ -19,8 +19,7 @@ #ifndef GCM_ALT_H #define GCM_ALT_H -typedef struct mbedtls_gcm_context -{ +typedef struct mbedtls_gcm_context { int dummy; } mbedtls_gcm_context; diff --git a/tests/include/alt-dummy/md5_alt.h b/tests/include/alt-dummy/md5_alt.h index c1191479d..1f3e5ed9b 100644 --- a/tests/include/alt-dummy/md5_alt.h +++ b/tests/include/alt-dummy/md5_alt.h @@ -19,8 +19,7 @@ #ifndef MD5_ALT_H #define MD5_ALT_H -typedef struct mbedtls_md5_context -{ +typedef struct mbedtls_md5_context { int dummy; } mbedtls_md5_context; diff --git a/tests/include/alt-dummy/platform_alt.h b/tests/include/alt-dummy/platform_alt.h index 2bf712de7..836f299c8 100644 --- a/tests/include/alt-dummy/platform_alt.h +++ b/tests/include/alt-dummy/platform_alt.h @@ -19,8 +19,7 @@ #ifndef PLATFORM_ALT_H #define PLATFORM_ALT_H -typedef struct mbedtls_platform_context -{ +typedef struct mbedtls_platform_context { int dummy; } mbedtls_platform_context; diff --git a/tests/include/alt-dummy/poly1305_alt.h b/tests/include/alt-dummy/poly1305_alt.h index b8c12104a..5a8295f16 100644 --- a/tests/include/alt-dummy/poly1305_alt.h +++ b/tests/include/alt-dummy/poly1305_alt.h @@ -19,8 +19,7 @@ #ifndef POLY1305_ALT_H #define POLY1305_ALT_H -typedef struct mbedtls_poly1305_context -{ +typedef struct mbedtls_poly1305_context { int dummy; } mbedtls_poly1305_context; diff --git a/tests/include/alt-dummy/ripemd160_alt.h b/tests/include/alt-dummy/ripemd160_alt.h index 722aeeb5d..ca3b33827 100644 --- a/tests/include/alt-dummy/ripemd160_alt.h +++ b/tests/include/alt-dummy/ripemd160_alt.h @@ -19,8 +19,7 @@ #ifndef RIPEMD160_ALT_H #define RIPEMD160_ALT_H -typedef struct mbedtls_ripemd160_context -{ +typedef struct mbedtls_ripemd160_context { int dummy; } mbedtls_ripemd160_context; diff --git a/tests/include/alt-dummy/rsa_alt.h b/tests/include/alt-dummy/rsa_alt.h index ae80dbaa4..24f672bb3 100644 --- a/tests/include/alt-dummy/rsa_alt.h +++ b/tests/include/alt-dummy/rsa_alt.h @@ -19,8 +19,7 @@ #ifndef RSA_ALT_H #define RSA_ALT_H -typedef struct mbedtls_rsa_context -{ +typedef struct mbedtls_rsa_context { int dummy; } mbedtls_rsa_context; diff --git a/tests/include/alt-dummy/sha1_alt.h b/tests/include/alt-dummy/sha1_alt.h index df2990b5b..36bf71d84 100644 --- a/tests/include/alt-dummy/sha1_alt.h +++ b/tests/include/alt-dummy/sha1_alt.h @@ -19,8 +19,7 @@ #ifndef SHA1_ALT_H #define SHA1_ALT_H -typedef struct mbedtls_sha1_context -{ +typedef struct mbedtls_sha1_context { int dummy; } mbedtls_sha1_context; diff --git a/tests/include/alt-dummy/sha256_alt.h b/tests/include/alt-dummy/sha256_alt.h index 7e501ed91..304734bfc 100644 --- a/tests/include/alt-dummy/sha256_alt.h +++ b/tests/include/alt-dummy/sha256_alt.h @@ -19,8 +19,7 @@ #ifndef SHA256_ALT_H #define SHA256_ALT_H -typedef struct mbedtls_sha256_context -{ +typedef struct mbedtls_sha256_context { int dummy; } mbedtls_sha256_context; diff --git a/tests/include/alt-dummy/sha512_alt.h b/tests/include/alt-dummy/sha512_alt.h index 45c959923..13e58109e 100644 --- a/tests/include/alt-dummy/sha512_alt.h +++ b/tests/include/alt-dummy/sha512_alt.h @@ -19,8 +19,7 @@ #ifndef SHA512_ALT_H #define SHA512_ALT_H -typedef struct mbedtls_sha512_context -{ +typedef struct mbedtls_sha512_context { int dummy; } mbedtls_sha512_context; diff --git a/tests/include/alt-dummy/threading_alt.h b/tests/include/alt-dummy/threading_alt.h index ff2fed5e2..400350686 100644 --- a/tests/include/alt-dummy/threading_alt.h +++ b/tests/include/alt-dummy/threading_alt.h @@ -19,8 +19,7 @@ #ifndef THREADING_ALT_H #define THREADING_ALT_H -typedef struct mbedtls_threading_mutex_t -{ +typedef struct mbedtls_threading_mutex_t { int dummy; } mbedtls_threading_mutex_t; diff --git a/tests/include/alt-dummy/timing_alt.h b/tests/include/alt-dummy/timing_alt.h index f2da154f1..9d4e100ea 100644 --- a/tests/include/alt-dummy/timing_alt.h +++ b/tests/include/alt-dummy/timing_alt.h @@ -19,13 +19,11 @@ #ifndef TIMING_ALT_H #define TIMING_ALT_H -struct mbedtls_timing_hr_time -{ +struct mbedtls_timing_hr_time { int dummy; }; -typedef struct mbedtls_timing_delay_context -{ +typedef struct mbedtls_timing_delay_context { int dummy; } mbedtls_timing_delay_context; diff --git a/tests/include/spe/crypto_spe.h b/tests/include/spe/crypto_spe.h index 1aee8a5f0..a79ce1738 100644 --- a/tests/include/spe/crypto_spe.h +++ b/tests/include/spe/crypto_spe.h @@ -34,110 +34,110 @@ #define PSA_FUNCTION_NAME(x) mbedcrypto__ ## x #define psa_crypto_init \ - PSA_FUNCTION_NAME(psa_crypto_init) + PSA_FUNCTION_NAME(psa_crypto_init) #define psa_key_derivation_get_capacity \ - PSA_FUNCTION_NAME(psa_key_derivation_get_capacity) + PSA_FUNCTION_NAME(psa_key_derivation_get_capacity) #define psa_key_derivation_set_capacity \ - PSA_FUNCTION_NAME(psa_key_derivation_set_capacity) + PSA_FUNCTION_NAME(psa_key_derivation_set_capacity) #define psa_key_derivation_input_bytes \ - PSA_FUNCTION_NAME(psa_key_derivation_input_bytes) + PSA_FUNCTION_NAME(psa_key_derivation_input_bytes) #define psa_key_derivation_output_bytes \ - PSA_FUNCTION_NAME(psa_key_derivation_output_bytes) + PSA_FUNCTION_NAME(psa_key_derivation_output_bytes) #define psa_key_derivation_input_key \ - PSA_FUNCTION_NAME(psa_key_derivation_input_key) + PSA_FUNCTION_NAME(psa_key_derivation_input_key) #define psa_key_derivation_output_key \ - PSA_FUNCTION_NAME(psa_key_derivation_output_key) + PSA_FUNCTION_NAME(psa_key_derivation_output_key) #define psa_key_derivation_setup \ - PSA_FUNCTION_NAME(psa_key_derivation_setup) + PSA_FUNCTION_NAME(psa_key_derivation_setup) #define psa_key_derivation_abort \ - PSA_FUNCTION_NAME(psa_key_derivation_abort) + PSA_FUNCTION_NAME(psa_key_derivation_abort) #define psa_key_derivation_key_agreement \ - PSA_FUNCTION_NAME(psa_key_derivation_key_agreement) + PSA_FUNCTION_NAME(psa_key_derivation_key_agreement) #define psa_raw_key_agreement \ - PSA_FUNCTION_NAME(psa_raw_key_agreement) + PSA_FUNCTION_NAME(psa_raw_key_agreement) #define psa_generate_random \ - PSA_FUNCTION_NAME(psa_generate_random) + PSA_FUNCTION_NAME(psa_generate_random) #define psa_aead_encrypt \ - PSA_FUNCTION_NAME(psa_aead_encrypt) + PSA_FUNCTION_NAME(psa_aead_encrypt) #define psa_aead_decrypt \ - PSA_FUNCTION_NAME(psa_aead_decrypt) + PSA_FUNCTION_NAME(psa_aead_decrypt) #define psa_open_key \ - PSA_FUNCTION_NAME(psa_open_key) + PSA_FUNCTION_NAME(psa_open_key) #define psa_close_key \ - PSA_FUNCTION_NAME(psa_close_key) + PSA_FUNCTION_NAME(psa_close_key) #define psa_import_key \ - PSA_FUNCTION_NAME(psa_import_key) + PSA_FUNCTION_NAME(psa_import_key) #define psa_destroy_key \ - PSA_FUNCTION_NAME(psa_destroy_key) + PSA_FUNCTION_NAME(psa_destroy_key) #define psa_get_key_attributes \ - PSA_FUNCTION_NAME(psa_get_key_attributes) + PSA_FUNCTION_NAME(psa_get_key_attributes) #define psa_reset_key_attributes \ - PSA_FUNCTION_NAME(psa_reset_key_attributes) + PSA_FUNCTION_NAME(psa_reset_key_attributes) #define psa_export_key \ - PSA_FUNCTION_NAME(psa_export_key) + PSA_FUNCTION_NAME(psa_export_key) #define psa_export_public_key \ - PSA_FUNCTION_NAME(psa_export_public_key) + PSA_FUNCTION_NAME(psa_export_public_key) #define psa_purge_key \ - PSA_FUNCTION_NAME(psa_purge_key) + PSA_FUNCTION_NAME(psa_purge_key) #define psa_copy_key \ - PSA_FUNCTION_NAME(psa_copy_key) + PSA_FUNCTION_NAME(psa_copy_key) #define psa_cipher_operation_init \ - PSA_FUNCTION_NAME(psa_cipher_operation_init) + PSA_FUNCTION_NAME(psa_cipher_operation_init) #define psa_cipher_generate_iv \ - PSA_FUNCTION_NAME(psa_cipher_generate_iv) + PSA_FUNCTION_NAME(psa_cipher_generate_iv) #define psa_cipher_set_iv \ - PSA_FUNCTION_NAME(psa_cipher_set_iv) + PSA_FUNCTION_NAME(psa_cipher_set_iv) #define psa_cipher_encrypt_setup \ - PSA_FUNCTION_NAME(psa_cipher_encrypt_setup) + PSA_FUNCTION_NAME(psa_cipher_encrypt_setup) #define psa_cipher_decrypt_setup \ - PSA_FUNCTION_NAME(psa_cipher_decrypt_setup) + PSA_FUNCTION_NAME(psa_cipher_decrypt_setup) #define psa_cipher_update \ - PSA_FUNCTION_NAME(psa_cipher_update) + PSA_FUNCTION_NAME(psa_cipher_update) #define psa_cipher_finish \ - PSA_FUNCTION_NAME(psa_cipher_finish) + PSA_FUNCTION_NAME(psa_cipher_finish) #define psa_cipher_abort \ - PSA_FUNCTION_NAME(psa_cipher_abort) + PSA_FUNCTION_NAME(psa_cipher_abort) #define psa_hash_operation_init \ - PSA_FUNCTION_NAME(psa_hash_operation_init) + PSA_FUNCTION_NAME(psa_hash_operation_init) #define psa_hash_setup \ - PSA_FUNCTION_NAME(psa_hash_setup) + PSA_FUNCTION_NAME(psa_hash_setup) #define psa_hash_update \ - PSA_FUNCTION_NAME(psa_hash_update) + PSA_FUNCTION_NAME(psa_hash_update) #define psa_hash_finish \ - PSA_FUNCTION_NAME(psa_hash_finish) + PSA_FUNCTION_NAME(psa_hash_finish) #define psa_hash_verify \ - PSA_FUNCTION_NAME(psa_hash_verify) + PSA_FUNCTION_NAME(psa_hash_verify) #define psa_hash_abort \ - PSA_FUNCTION_NAME(psa_hash_abort) + PSA_FUNCTION_NAME(psa_hash_abort) #define psa_hash_clone \ - PSA_FUNCTION_NAME(psa_hash_clone) + PSA_FUNCTION_NAME(psa_hash_clone) #define psa_hash_compute \ - PSA_FUNCTION_NAME(psa_hash_compute) + PSA_FUNCTION_NAME(psa_hash_compute) #define psa_hash_compare \ - PSA_FUNCTION_NAME(psa_hash_compare) + PSA_FUNCTION_NAME(psa_hash_compare) #define psa_mac_operation_init \ - PSA_FUNCTION_NAME(psa_mac_operation_init) + PSA_FUNCTION_NAME(psa_mac_operation_init) #define psa_mac_sign_setup \ - PSA_FUNCTION_NAME(psa_mac_sign_setup) + PSA_FUNCTION_NAME(psa_mac_sign_setup) #define psa_mac_verify_setup \ - PSA_FUNCTION_NAME(psa_mac_verify_setup) + PSA_FUNCTION_NAME(psa_mac_verify_setup) #define psa_mac_update \ - PSA_FUNCTION_NAME(psa_mac_update) + PSA_FUNCTION_NAME(psa_mac_update) #define psa_mac_sign_finish \ - PSA_FUNCTION_NAME(psa_mac_sign_finish) + PSA_FUNCTION_NAME(psa_mac_sign_finish) #define psa_mac_verify_finish \ - PSA_FUNCTION_NAME(psa_mac_verify_finish) + PSA_FUNCTION_NAME(psa_mac_verify_finish) #define psa_mac_abort \ - PSA_FUNCTION_NAME(psa_mac_abort) + PSA_FUNCTION_NAME(psa_mac_abort) #define psa_sign_hash \ - PSA_FUNCTION_NAME(psa_sign_hash) + PSA_FUNCTION_NAME(psa_sign_hash) #define psa_verify_hash \ - PSA_FUNCTION_NAME(psa_verify_hash) + PSA_FUNCTION_NAME(psa_verify_hash) #define psa_asymmetric_encrypt \ - PSA_FUNCTION_NAME(psa_asymmetric_encrypt) + PSA_FUNCTION_NAME(psa_asymmetric_encrypt) #define psa_asymmetric_decrypt \ - PSA_FUNCTION_NAME(psa_asymmetric_decrypt) + PSA_FUNCTION_NAME(psa_asymmetric_decrypt) #define psa_generate_key \ - PSA_FUNCTION_NAME(psa_generate_key) + PSA_FUNCTION_NAME(psa_generate_key) #endif /* CRYPTO_SPE_H */ diff --git a/tests/include/test/asn1_helpers.h b/tests/include/test/asn1_helpers.h index 91ae26026..dee3cbda9 100644 --- a/tests/include/test/asn1_helpers.h +++ b/tests/include/test/asn1_helpers.h @@ -43,8 +43,8 @@ * * \return \c 0 if the test failed, otherwise 1. */ -int mbedtls_test_asn1_skip_integer( unsigned char **p, const unsigned char *end, - size_t min_bits, size_t max_bits, - int must_be_odd ); +int mbedtls_test_asn1_skip_integer(unsigned char **p, const unsigned char *end, + size_t min_bits, size_t max_bits, + int must_be_odd); #endif /* ASN1_HELPERS_H */ diff --git a/tests/include/test/bignum_helpers.h b/tests/include/test/bignum_helpers.h index 164017e69..fc97d23ba 100644 --- a/tests/include/test/bignum_helpers.h +++ b/tests/include/test/bignum_helpers.h @@ -52,8 +52,8 @@ * * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ -int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const char *input ); +int mbedtls_test_read_mpi_core(mbedtls_mpi_uint **pX, size_t *plimbs, + const char *input); /** Read a modulus from a hexadecimal string. * @@ -71,16 +71,16 @@ int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, * * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ -int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, - const char *s, - mbedtls_mpi_mod_rep_selector int_rep ); +int mbedtls_test_read_mpi_modulus(mbedtls_mpi_mod_modulus *N, + const char *s, + mbedtls_mpi_mod_rep_selector int_rep); /** Free a modulus and its limbs. * * \param[in] N A modulus structure such that there is no other * reference to `N->p`. */ -void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N ); +void mbedtls_test_mpi_mod_modulus_free_with_limbs(mbedtls_mpi_mod_modulus *N); /** Read an MPI from a hexadecimal string. * @@ -103,7 +103,7 @@ void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N ); * * \return \c 0 on success, an \c MBEDTLS_ERR_MPI_xxx error code otherwise. */ -int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ); +int mbedtls_test_read_mpi(mbedtls_mpi *X, const char *s); /** Nonzero if the current test case had an input parsed with * mbedtls_test_read_mpi() that is a negative 0 (`"-"`, `"-0"`, `"-00"`, etc., diff --git a/tests/include/test/certs.h b/tests/include/test/certs.h index 03f0d03b8..65c55829d 100644 --- a/tests/include/test/certs.h +++ b/tests/include/test/certs.h @@ -33,11 +33,11 @@ extern "C" { /* List of all PEM-encoded CA certificates, terminated by NULL; * PEM encoded if MBEDTLS_PEM_PARSE_C is enabled, DER encoded * otherwise. */ -extern const char * mbedtls_test_cas[]; +extern const char *mbedtls_test_cas[]; extern const size_t mbedtls_test_cas_len[]; /* List of all DER-encoded CA certificates, terminated by NULL */ -extern const unsigned char * mbedtls_test_cas_der[]; +extern const unsigned char *mbedtls_test_cas_der[]; extern const size_t mbedtls_test_cas_der_len[]; #if defined(MBEDTLS_PEM_PARSE_C) @@ -108,9 +108,9 @@ extern const size_t mbedtls_test_ca_crt_rsa_len; /* Config-dependent dispatch between EC and RSA * (RSA if enabled, otherwise EC) */ -extern const char * mbedtls_test_ca_crt; -extern const char * mbedtls_test_ca_key; -extern const char * mbedtls_test_ca_pwd; +extern const char *mbedtls_test_ca_crt; +extern const char *mbedtls_test_ca_key; +extern const char *mbedtls_test_ca_pwd; extern const size_t mbedtls_test_ca_crt_len; extern const size_t mbedtls_test_ca_key_len; extern const size_t mbedtls_test_ca_pwd_len; @@ -177,9 +177,9 @@ extern const size_t mbedtls_test_srv_crt_rsa_len; /* Config-dependent dispatch between EC and RSA * (RSA if enabled, otherwise EC) */ -extern const char * mbedtls_test_srv_crt; -extern const char * mbedtls_test_srv_key; -extern const char * mbedtls_test_srv_pwd; +extern const char *mbedtls_test_srv_crt; +extern const char *mbedtls_test_srv_key; +extern const char *mbedtls_test_srv_pwd; extern const size_t mbedtls_test_srv_crt_len; extern const size_t mbedtls_test_srv_key_len; extern const size_t mbedtls_test_srv_pwd_len; @@ -232,9 +232,9 @@ extern const size_t mbedtls_test_cli_crt_rsa_len; /* Config-dependent dispatch between EC and RSA * (RSA if enabled, otherwise EC) */ -extern const char * mbedtls_test_cli_crt; -extern const char * mbedtls_test_cli_key; -extern const char * mbedtls_test_cli_pwd; +extern const char *mbedtls_test_cli_crt; +extern const char *mbedtls_test_cli_key; +extern const char *mbedtls_test_cli_pwd; extern const size_t mbedtls_test_cli_crt_len; extern const size_t mbedtls_test_cli_key_len; extern const size_t mbedtls_test_cli_pwd_len; diff --git a/tests/include/test/drivers/aead.h b/tests/include/test/drivers/aead.h index 33e1f50cd..037a255ca 100644 --- a/tests/include/test/drivers/aead.h +++ b/tests/include/test/drivers/aead.h @@ -48,10 +48,10 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_AEAD_INIT { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } static inline mbedtls_test_driver_aead_hooks_t - mbedtls_test_driver_aead_hooks_init( void ) +mbedtls_test_driver_aead_hooks_init(void) { const mbedtls_test_driver_aead_hooks_t v = MBEDTLS_TEST_DRIVER_AEAD_INIT; - return( v ); + return v; } extern mbedtls_test_driver_aead_hooks_t mbedtls_test_driver_aead_hooks; @@ -63,7 +63,7 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( 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 ); + uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length); psa_status_t mbedtls_test_transparent_aead_decrypt( const psa_key_attributes_t *attributes, @@ -72,62 +72,62 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( 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 ); + uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length); psa_status_t mbedtls_test_transparent_aead_encrypt_setup( mbedtls_transparent_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_transparent_aead_decrypt_setup( mbedtls_transparent_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_transparent_aead_set_nonce( mbedtls_transparent_test_driver_aead_operation_t *operation, const uint8_t *nonce, - size_t nonce_length ); + size_t nonce_length); psa_status_t mbedtls_test_transparent_aead_set_lengths( mbedtls_transparent_test_driver_aead_operation_t *operation, size_t ad_length, - size_t plaintext_length ); + size_t plaintext_length); psa_status_t mbedtls_test_transparent_aead_update_ad( mbedtls_transparent_test_driver_aead_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t mbedtls_test_transparent_aead_update( - mbedtls_transparent_test_driver_aead_operation_t *operation, - const uint8_t *input, - size_t input_length, - uint8_t *output, - size_t output_size, - size_t *output_length ); + mbedtls_transparent_test_driver_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_test_transparent_aead_finish( - mbedtls_transparent_test_driver_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 ); + mbedtls_transparent_test_driver_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_test_transparent_aead_verify( - mbedtls_transparent_test_driver_aead_operation_t *operation, - uint8_t *plaintext, - size_t plaintext_size, - size_t *plaintext_length, - const uint8_t *tag, - size_t tag_length ); + mbedtls_transparent_test_driver_aead_operation_t *operation, + uint8_t *plaintext, + size_t plaintext_size, + size_t *plaintext_length, + const uint8_t *tag, + size_t tag_length); psa_status_t mbedtls_test_transparent_aead_abort( - mbedtls_transparent_test_driver_aead_operation_t *operation ); + mbedtls_transparent_test_driver_aead_operation_t *operation); #endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_AEAD_H */ diff --git a/tests/include/test/drivers/asymmetric_encryption.h b/tests/include/test/drivers/asymmetric_encryption.h index 595e18d28..c602d2f22 100644 --- a/tests/include/test/drivers/asymmetric_encryption.h +++ b/tests/include/test/drivers/asymmetric_encryption.h @@ -41,11 +41,11 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_ASYMMETRIC_ENCRYPTION_INIT { NULL, 0, PSA_SUCCESS, 0 } static inline mbedtls_test_driver_asymmetric_encryption_hooks_t - mbedtls_test_driver_asymmetric_encryption_hooks_init( void ) +mbedtls_test_driver_asymmetric_encryption_hooks_init(void) { const mbedtls_test_driver_asymmetric_encryption_hooks_t v = MBEDTLS_TEST_DRIVER_ASYMMETRIC_ENCRYPTION_INIT; - return( v ); + return v; } extern mbedtls_test_driver_asymmetric_encryption_hooks_t @@ -55,25 +55,25 @@ psa_status_t mbedtls_test_transparent_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 ); + uint8_t *output, size_t output_size, size_t *output_length); psa_status_t mbedtls_test_opaque_asymmetric_encrypt( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, 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 ); + uint8_t *output, size_t output_size, size_t *output_length); psa_status_t mbedtls_test_transparent_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 ); + uint8_t *output, size_t output_size, size_t *output_length); psa_status_t mbedtls_test_opaque_asymmetric_decrypt( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, 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 ); + uint8_t *output, size_t output_size, size_t *output_length); #endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_ASYMMETRIC_ENCRYPTION_H */ diff --git a/tests/include/test/drivers/cipher.h b/tests/include/test/drivers/cipher.h index 33a5e6657..54c37f748 100644 --- a/tests/include/test/drivers/cipher.h +++ b/tests/include/test/drivers/cipher.h @@ -41,10 +41,10 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_CIPHER_INIT { NULL, 0, PSA_SUCCESS, 0 } static inline mbedtls_test_driver_cipher_hooks_t - mbedtls_test_driver_cipher_hooks_init( void ) +mbedtls_test_driver_cipher_hooks_init(void) { const mbedtls_test_driver_cipher_hooks_t v = MBEDTLS_TEST_DRIVER_CIPHER_INIT; - return( v ); + return v; } extern mbedtls_test_driver_cipher_hooks_t mbedtls_test_driver_cipher_hooks; @@ -77,7 +77,7 @@ psa_status_t mbedtls_test_transparent_cipher_decrypt_setup( psa_algorithm_t alg); psa_status_t mbedtls_test_transparent_cipher_abort( - mbedtls_transparent_test_driver_cipher_operation_t *operation ); + mbedtls_transparent_test_driver_cipher_operation_t *operation); psa_status_t mbedtls_test_transparent_cipher_set_iv( mbedtls_transparent_test_driver_cipher_operation_t *operation, diff --git a/tests/include/test/drivers/hash.h b/tests/include/test/drivers/hash.h index b05fcd79f..f1da8d3e4 100644 --- a/tests/include/test/drivers/hash.h +++ b/tests/include/test/drivers/hash.h @@ -37,10 +37,10 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_HASH_INIT { 0, 0, 0 } static inline mbedtls_test_driver_hash_hooks_t - mbedtls_test_driver_hash_hooks_init( void ) +mbedtls_test_driver_hash_hooks_init(void) { const mbedtls_test_driver_hash_hooks_t v = MBEDTLS_TEST_DRIVER_HASH_INIT; - return( v ); + return v; } extern mbedtls_test_driver_hash_hooks_t mbedtls_test_driver_hash_hooks; @@ -48,29 +48,29 @@ extern mbedtls_test_driver_hash_hooks_t mbedtls_test_driver_hash_hooks; psa_status_t mbedtls_test_transparent_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 ); + uint8_t *hash, size_t hash_size, size_t *hash_length); psa_status_t mbedtls_test_transparent_hash_setup( mbedtls_transparent_test_driver_hash_operation_t *operation, - psa_algorithm_t alg ); + psa_algorithm_t alg); psa_status_t mbedtls_test_transparent_hash_clone( const mbedtls_transparent_test_driver_hash_operation_t *source_operation, - mbedtls_transparent_test_driver_hash_operation_t *target_operation ); + mbedtls_transparent_test_driver_hash_operation_t *target_operation); psa_status_t mbedtls_test_transparent_hash_update( mbedtls_transparent_test_driver_hash_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t mbedtls_test_transparent_hash_finish( mbedtls_transparent_test_driver_hash_operation_t *operation, uint8_t *hash, size_t hash_size, - size_t *hash_length ); + size_t *hash_length); psa_status_t mbedtls_test_transparent_hash_abort( - mbedtls_transparent_test_driver_hash_operation_t *operation ); + mbedtls_transparent_test_driver_hash_operation_t *operation); #endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_HASH_H */ diff --git a/tests/include/test/drivers/key_agreement.h b/tests/include/test/drivers/key_agreement.h index 8f28cefda..aaf74a8c5 100644 --- a/tests/include/test/drivers/key_agreement.h +++ b/tests/include/test/drivers/key_agreement.h @@ -38,11 +38,11 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT { NULL, 0, PSA_SUCCESS, 0 } static inline mbedtls_test_driver_key_agreement_hooks_t - mbedtls_test_driver_key_agreement_hooks_init( void ) +mbedtls_test_driver_key_agreement_hooks_init(void) { const mbedtls_test_driver_key_agreement_hooks_t v = MBEDTLS_TEST_DRIVER_KEY_AGREEMENT_INIT; - return( v ); + return v; } extern mbedtls_test_driver_key_agreement_hooks_t @@ -57,7 +57,7 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ); + size_t *shared_secret_length); psa_status_t mbedtls_test_opaque_key_agreement( const psa_key_attributes_t *attributes, @@ -68,7 +68,7 @@ psa_status_t mbedtls_test_opaque_key_agreement( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ); + size_t *shared_secret_length); #endif /*PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_KEY_AGREEMENT_H */ diff --git a/tests/include/test/drivers/key_management.h b/tests/include/test/drivers/key_management.h index 1f33da1a5..43df0d610 100644 --- a/tests/include/test/drivers/key_management.h +++ b/tests/include/test/drivers/key_management.h @@ -48,11 +48,11 @@ typedef struct { * used as a location of an opaque test drivers. */ #define MBEDTLS_TEST_DRIVER_KEY_MANAGEMENT_INIT { NULL, 0, PSA_SUCCESS, 0, 0x800000 } static inline mbedtls_test_driver_key_management_hooks_t - mbedtls_test_driver_key_management_hooks_init( void ) +mbedtls_test_driver_key_management_hooks_init(void) { const mbedtls_test_driver_key_management_hooks_t v = MBEDTLS_TEST_DRIVER_KEY_MANAGEMENT_INIT; - return( v ); + return v; } /* @@ -63,42 +63,42 @@ static inline mbedtls_test_driver_key_management_hooks_t */ #define PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX 0xBEEFED00U #define PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX_SIZE sizeof( \ - PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX ) + PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX) size_t mbedtls_test_opaque_size_function( const psa_key_type_t key_type, - const size_t key_bits ); + const size_t key_bits); extern mbedtls_test_driver_key_management_hooks_t mbedtls_test_driver_key_management_hooks; -psa_status_t mbedtls_test_transparent_init( void ); -void mbedtls_test_transparent_free( void ); -psa_status_t mbedtls_test_opaque_init( void ); -void mbedtls_test_opaque_free( void ); +psa_status_t mbedtls_test_transparent_init(void); +void mbedtls_test_transparent_free(void); +psa_status_t mbedtls_test_opaque_init(void); +void mbedtls_test_opaque_free(void); psa_status_t mbedtls_test_transparent_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key, size_t key_size, size_t *key_length ); + uint8_t *key, size_t key_size, size_t *key_length); psa_status_t mbedtls_test_opaque_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key, size_t key_size, size_t *key_length ); + uint8_t *key, size_t key_size, size_t *key_length); psa_status_t mbedtls_test_opaque_export_key( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, - uint8_t *data, size_t data_size, size_t *data_length ); + uint8_t *data, size_t data_size, size_t *data_length); psa_status_t mbedtls_test_transparent_export_public_key( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, - uint8_t *data, size_t data_size, size_t *data_length ); + uint8_t *data, size_t data_size, size_t *data_length); psa_status_t mbedtls_test_opaque_export_public_key( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, - uint8_t *data, size_t data_size, size_t *data_length ); + uint8_t *data, size_t data_size, size_t *data_length); psa_status_t mbedtls_test_transparent_import_key( const psa_key_attributes_t *attributes, @@ -121,7 +121,7 @@ psa_status_t mbedtls_test_opaque_import_key( psa_status_t mbedtls_test_opaque_get_builtin_key( psa_drv_slot_number_t slot_number, psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ); + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length); psa_status_t mbedtls_test_opaque_copy_key( psa_key_attributes_t *attributes, diff --git a/tests/include/test/drivers/mac.h b/tests/include/test/drivers/mac.h index 5f6cd38a4..bdc2b705c 100644 --- a/tests/include/test/drivers/mac.h +++ b/tests/include/test/drivers/mac.h @@ -37,10 +37,10 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_MAC_INIT { 0, 0, 0 } static inline mbedtls_test_driver_mac_hooks_t - mbedtls_test_driver_mac_hooks_init( void ) +mbedtls_test_driver_mac_hooks_init(void) { const mbedtls_test_driver_mac_hooks_t v = MBEDTLS_TEST_DRIVER_MAC_INIT; - return( v ); + return v; } extern mbedtls_test_driver_mac_hooks_t mbedtls_test_driver_mac_hooks; @@ -54,40 +54,40 @@ psa_status_t mbedtls_test_transparent_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t mbedtls_test_transparent_mac_sign_setup( mbedtls_transparent_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_transparent_mac_verify_setup( mbedtls_transparent_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_transparent_mac_update( mbedtls_transparent_test_driver_mac_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t mbedtls_test_transparent_mac_sign_finish( mbedtls_transparent_test_driver_mac_operation_t *operation, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t mbedtls_test_transparent_mac_verify_finish( mbedtls_transparent_test_driver_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ); + size_t mac_length); psa_status_t mbedtls_test_transparent_mac_abort( - mbedtls_transparent_test_driver_mac_operation_t *operation ); + mbedtls_transparent_test_driver_mac_operation_t *operation); psa_status_t mbedtls_test_opaque_mac_compute( const psa_key_attributes_t *attributes, @@ -98,40 +98,40 @@ psa_status_t mbedtls_test_opaque_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t mbedtls_test_opaque_mac_sign_setup( mbedtls_opaque_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_opaque_mac_verify_setup( mbedtls_opaque_test_driver_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_algorithm_t alg); psa_status_t mbedtls_test_opaque_mac_update( mbedtls_opaque_test_driver_mac_operation_t *operation, const uint8_t *input, - size_t input_length ); + size_t input_length); psa_status_t mbedtls_test_opaque_mac_sign_finish( mbedtls_opaque_test_driver_mac_operation_t *operation, uint8_t *mac, size_t mac_size, - size_t *mac_length ); + size_t *mac_length); psa_status_t mbedtls_test_opaque_mac_verify_finish( mbedtls_opaque_test_driver_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ); + size_t mac_length); psa_status_t mbedtls_test_opaque_mac_abort( - mbedtls_opaque_test_driver_mac_operation_t *operation ); + mbedtls_opaque_test_driver_mac_operation_t *operation); #endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_MAC_H */ diff --git a/tests/include/test/drivers/signature.h b/tests/include/test/drivers/signature.h index 67f2b29a3..4c56a121c 100644 --- a/tests/include/test/drivers/signature.h +++ b/tests/include/test/drivers/signature.h @@ -38,11 +38,11 @@ typedef struct { #define MBEDTLS_TEST_DRIVER_SIGNATURE_INIT { NULL, 0, PSA_SUCCESS, 0 } static inline mbedtls_test_driver_signature_hooks_t - mbedtls_test_driver_signature_hooks_init( void ) +mbedtls_test_driver_signature_hooks_init(void) { const mbedtls_test_driver_signature_hooks_t v = MBEDTLS_TEST_DRIVER_SIGNATURE_INIT; - return( v ); + return v; } extern mbedtls_test_driver_signature_hooks_t @@ -59,7 +59,7 @@ psa_status_t mbedtls_test_transparent_signature_sign_message( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ); + size_t *signature_length); psa_status_t mbedtls_test_opaque_signature_sign_message( const psa_key_attributes_t *attributes, @@ -70,7 +70,7 @@ psa_status_t mbedtls_test_opaque_signature_sign_message( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ); + size_t *signature_length); psa_status_t mbedtls_test_transparent_signature_verify_message( const psa_key_attributes_t *attributes, @@ -80,7 +80,7 @@ psa_status_t mbedtls_test_transparent_signature_verify_message( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ); + size_t signature_length); psa_status_t mbedtls_test_opaque_signature_verify_message( const psa_key_attributes_t *attributes, @@ -90,35 +90,35 @@ psa_status_t mbedtls_test_opaque_signature_verify_message( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ); + size_t signature_length); psa_status_t mbedtls_test_transparent_signature_sign_hash( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - uint8_t *signature, size_t signature_size, size_t *signature_length ); + uint8_t *signature, size_t signature_size, size_t *signature_length); psa_status_t mbedtls_test_opaque_signature_sign_hash( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - uint8_t *signature, size_t signature_size, size_t *signature_length ); + uint8_t *signature, size_t signature_size, size_t *signature_length); psa_status_t mbedtls_test_transparent_signature_verify_hash( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - const uint8_t *signature, size_t signature_length ); + const uint8_t *signature, size_t signature_length); psa_status_t mbedtls_test_opaque_signature_verify_hash( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - const uint8_t *signature, size_t signature_length ); + const uint8_t *signature, size_t signature_length); #endif /* PSA_CRYPTO_DRIVER_TEST */ #endif /* PSA_CRYPTO_TEST_DRIVERS_SIGNATURE_H */ diff --git a/tests/include/test/fake_external_rng_for_test.h b/tests/include/test/fake_external_rng_for_test.h index 9d56dabf0..01bfb91a4 100644 --- a/tests/include/test/fake_external_rng_for_test.h +++ b/tests/include/test/fake_external_rng_for_test.h @@ -40,13 +40,13 @@ * of the PSA subsystem. You may disable it temporarily to simulate a * depleted entropy source. */ -void mbedtls_test_enable_insecure_external_rng( void ); +void mbedtls_test_enable_insecure_external_rng(void); /** Disable the insecure implementation of mbedtls_psa_external_get_random(). * * See mbedtls_test_enable_insecure_external_rng(). */ -void mbedtls_test_disable_insecure_external_rng( void ); +void mbedtls_test_disable_insecure_external_rng(void); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ #endif /* FAKE_EXTERNAL_RNG_FOR_TEST_H */ diff --git a/tests/include/test/helpers.h b/tests/include/test/helpers.h index b64bfcbce..dd4a6a2b4 100644 --- a/tests/include/test/helpers.h +++ b/tests/include/test/helpers.h @@ -47,21 +47,18 @@ #endif /** The type of test case arguments that contain binary data. */ -typedef struct data_tag -{ - uint8_t * x; +typedef struct data_tag { + uint8_t *x; uint32_t len; } data_t; -typedef enum -{ +typedef enum { MBEDTLS_TEST_RESULT_SUCCESS = 0, MBEDTLS_TEST_RESULT_FAILED, MBEDTLS_TEST_RESULT_SKIPPED } mbedtls_test_result_t; -typedef struct -{ +typedef struct { mbedtls_test_result_t result; const char *test; const char *filename; @@ -76,8 +73,8 @@ typedef struct mbedtls_test_info_t; extern mbedtls_test_info_t mbedtls_test_info; -int mbedtls_test_platform_setup( void ); -void mbedtls_test_platform_teardown( void ); +int mbedtls_test_platform_setup(void); +void mbedtls_test_platform_teardown(void); /** * \brief Record the current test case as a failure. @@ -95,7 +92,7 @@ void mbedtls_test_platform_teardown( void ); * \param line_no Line number where the failure originated. * \param filename Filename where the failure originated. */ -void mbedtls_test_fail( const char *test, int line_no, const char* filename ); +void mbedtls_test_fail(const char *test, int line_no, const char *filename); /** * \brief Record the current test case as skipped. @@ -108,7 +105,7 @@ void mbedtls_test_fail( const char *test, int line_no, const char* filename ); * \param line_no Line number where the test case was skipped. * \param filename Filename where the test case was skipped. */ -void mbedtls_test_skip( const char *test, int line_no, const char* filename ); +void mbedtls_test_skip(const char *test, int line_no, const char *filename); /** * \brief Set the test step number for failure reports. @@ -120,12 +117,12 @@ void mbedtls_test_skip( const char *test, int line_no, const char* filename ); * * \param step The step number to report. */ -void mbedtls_test_set_step( unsigned long step ); +void mbedtls_test_set_step(unsigned long step); /** * \brief Reset mbedtls_test_info to a ready/starting state. */ -void mbedtls_test_info_reset( void ); +void mbedtls_test_info_reset(void); /** * \brief Record the current test case as a failure if two integers @@ -145,8 +142,8 @@ void mbedtls_test_info_reset( void ); * * \return \c 1 if the values are equal, otherwise \c 0. */ -int mbedtls_test_equal( const char *test, int line_no, const char* filename, - unsigned long long value1, unsigned long long value2 ); +int mbedtls_test_equal(const char *test, int line_no, const char *filename, + unsigned long long value1, unsigned long long value2); /** * \brief Record the current test case as a failure based @@ -166,8 +163,8 @@ int mbedtls_test_equal( const char *test, int line_no, const char* filename, * * \return \c 1 if \p value1 <= \p value2, otherwise \c 0. */ -int mbedtls_test_le_u( const char *test, int line_no, const char* filename, - unsigned long long value1, unsigned long long value2 ); +int mbedtls_test_le_u(const char *test, int line_no, const char *filename, + unsigned long long value1, unsigned long long value2); /** * \brief Record the current test case as a failure based @@ -187,8 +184,8 @@ int mbedtls_test_le_u( const char *test, int line_no, const char* filename, * * \return \c 1 if \p value1 <= \p value2, otherwise \c 0. */ -int mbedtls_test_le_s( const char *test, int line_no, const char* filename, - long long value1, long long value2 ); +int mbedtls_test_le_s(const char *test, int line_no, const char *filename, + long long value1, long long value2); /** * \brief This function decodes the hexadecimal representation of @@ -208,12 +205,12 @@ int mbedtls_test_le_s( const char *test, int line_no, const char* filename, * \return \c -1 if the output buffer is too small or the input string * is not a valid hexadecimal representation. */ -int mbedtls_test_unhexify( unsigned char *obuf, size_t obufmax, - const char *ibuf, size_t *len ); +int mbedtls_test_unhexify(unsigned char *obuf, size_t obufmax, + const char *ibuf, size_t *len); -void mbedtls_test_hexify( unsigned char *obuf, - const unsigned char *ibuf, - int len ); +void mbedtls_test_hexify(unsigned char *obuf, + const unsigned char *ibuf, + int len); /** * \brief Convert hexadecimal digit to an integer. @@ -233,7 +230,7 @@ int mbedtls_test_ascii2uc(const char c, unsigned char *uc); * * For convenience, dies if allocation fails. */ -unsigned char *mbedtls_test_zero_alloc( size_t len ); +unsigned char *mbedtls_test_zero_alloc(size_t len); /** * Allocate and fill a buffer from hex data. @@ -245,10 +242,10 @@ unsigned char *mbedtls_test_zero_alloc( size_t len ); * * For convenience, dies if allocation fails. */ -unsigned char *mbedtls_test_unhexify_alloc( const char *ibuf, size_t *olen ); +unsigned char *mbedtls_test_unhexify_alloc(const char *ibuf, size_t *olen); -int mbedtls_test_hexcmp( uint8_t * a, uint8_t * b, - uint32_t a_len, uint32_t b_len ); +int mbedtls_test_hexcmp(uint8_t *a, uint8_t *b, + uint32_t a_len, uint32_t b_len); #if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) #include "test/fake_external_rng_for_test.h" @@ -257,11 +254,11 @@ int mbedtls_test_hexcmp( uint8_t * a, uint8_t * b, #if defined(MBEDTLS_TEST_MUTEX_USAGE) /** Permanently activate the mutex usage verification framework. See * threading_helpers.c for information. */ -void mbedtls_test_mutex_usage_init( void ); +void mbedtls_test_mutex_usage_init(void); /** Call this function after executing a test case to check for mutex usage * errors. */ -void mbedtls_test_mutex_usage_check( void ); +void mbedtls_test_mutex_usage_check(void); #endif /* MBEDTLS_TEST_MUTEX_USAGE */ #if defined(MBEDTLS_TEST_HOOKS) @@ -276,8 +273,8 @@ void mbedtls_test_mutex_usage_check( void ); * * \note If the check fails, fail the test currently being run. */ -void mbedtls_test_err_add_check( int high, int low, - const char *file, int line); +void mbedtls_test_err_add_check(int high, int low, + const char *file, int line); #endif #endif /* TEST_HELPERS_H */ diff --git a/tests/include/test/macros.h b/tests/include/test/macros.h index 695a2433a..83a48cd1e 100644 --- a/tests/include/test/macros.h +++ b/tests/include/test/macros.h @@ -51,14 +51,14 @@ * * \param TEST The test expression to be tested. */ -#define TEST_ASSERT( TEST ) \ +#define TEST_ASSERT(TEST) \ do { \ - if( ! (TEST) ) \ - { \ - mbedtls_test_fail( #TEST, __LINE__, __FILE__ ); \ - goto exit; \ - } \ - } while( 0 ) + if (!(TEST)) \ + { \ + mbedtls_test_fail( #TEST, __LINE__, __FILE__); \ + goto exit; \ + } \ + } while (0) /** Evaluate two integer expressions and fail the test case if they have * different values. @@ -69,12 +69,12 @@ * \param expr1 An integral-typed expression to evaluate. * \param expr2 Another integral-typed expression to evaluate. */ -#define TEST_EQUAL( expr1, expr2 ) \ +#define TEST_EQUAL(expr1, expr2) \ do { \ - if( ! mbedtls_test_equal( #expr1 " == " #expr2, __LINE__, __FILE__, \ - expr1, expr2 ) ) \ - goto exit; \ - } while( 0 ) + if (!mbedtls_test_equal( #expr1 " == " #expr2, __LINE__, __FILE__, \ + expr1, expr2)) \ + goto exit; \ + } while (0) /** Evaluate two unsigned integer expressions and fail the test case * if they are not in increasing order (left <= right). @@ -82,12 +82,12 @@ * \param expr1 An integral-typed expression to evaluate. * \param expr2 Another integral-typed expression to evaluate. */ -#define TEST_LE_U( expr1, expr2 ) \ +#define TEST_LE_U(expr1, expr2) \ do { \ - if( ! mbedtls_test_le_u( #expr1 " <= " #expr2, __LINE__, __FILE__, \ - expr1, expr2 ) ) \ - goto exit; \ - } while( 0 ) + if (!mbedtls_test_le_u( #expr1 " <= " #expr2, __LINE__, __FILE__, \ + expr1, expr2)) \ + goto exit; \ + } while (0) /** Evaluate two signed integer expressions and fail the test case * if they are not in increasing order (left <= right). @@ -95,12 +95,12 @@ * \param expr1 An integral-typed expression to evaluate. * \param expr2 Another integral-typed expression to evaluate. */ -#define TEST_LE_S( expr1, expr2 ) \ +#define TEST_LE_S(expr1, expr2) \ do { \ - if( ! mbedtls_test_le_s( #expr1 " <= " #expr2, __LINE__, __FILE__, \ - expr1, expr2 ) ) \ - goto exit; \ - } while( 0 ) + if (!mbedtls_test_le_s( #expr1 " <= " #expr2, __LINE__, __FILE__, \ + expr1, expr2)) \ + goto exit; \ + } while (0) /** Allocate memory dynamically and fail the test case if this fails. * The allocated memory will be filled with zeros. @@ -122,36 +122,36 @@ * This expression may be evaluated multiple times. * */ -#define ASSERT_ALLOC( pointer, length ) \ +#define ASSERT_ALLOC(pointer, length) \ do \ { \ - TEST_ASSERT( ( pointer ) == NULL ); \ - if( ( length ) != 0 ) \ + TEST_ASSERT((pointer) == NULL); \ + if ((length) != 0) \ { \ - ( pointer ) = mbedtls_calloc( sizeof( *( pointer ) ), \ - ( length ) ); \ - TEST_ASSERT( ( pointer ) != NULL ); \ + (pointer) = mbedtls_calloc(sizeof(*(pointer)), \ + (length)); \ + TEST_ASSERT((pointer) != NULL); \ } \ } \ - while( 0 ) + while (0) /** Allocate memory dynamically. If the allocation fails, skip the test case. * * This macro behaves like #ASSERT_ALLOC, except that if the allocation * fails, it marks the test as skipped rather than failed. */ -#define ASSERT_ALLOC_WEAK( pointer, length ) \ +#define ASSERT_ALLOC_WEAK(pointer, length) \ do \ { \ - TEST_ASSERT( ( pointer ) == NULL ); \ - if( ( length ) != 0 ) \ + TEST_ASSERT((pointer) == NULL); \ + if ((length) != 0) \ { \ - ( pointer ) = mbedtls_calloc( sizeof( *( pointer ) ), \ - ( length ) ); \ - TEST_ASSUME( ( pointer ) != NULL ); \ + (pointer) = mbedtls_calloc(sizeof(*(pointer)), \ + (length)); \ + TEST_ASSUME((pointer) != NULL); \ } \ } \ - while( 0 ) + while (0) /** Compare two buffers and fail the test case if they differ. * @@ -165,14 +165,14 @@ * \param size2 Size of the second buffer in bytes. * This expression may be evaluated multiple times. */ -#define ASSERT_COMPARE( p1, size1, p2, size2 ) \ +#define ASSERT_COMPARE(p1, size1, p2, size2) \ do \ { \ - TEST_ASSERT( ( size1 ) == ( size2 ) ); \ - if( ( size1 ) != 0 ) \ - TEST_ASSERT( memcmp( ( p1 ), ( p2 ), ( size1 ) ) == 0 ); \ + TEST_ASSERT((size1) == (size2)); \ + if ((size1) != 0) \ + TEST_ASSERT(memcmp((p1), (p2), (size1)) == 0); \ } \ - while( 0 ) + while (0) /** * \brief This macro tests the expression passed to it and skips the @@ -180,21 +180,21 @@ * * \param TEST The test expression to be tested. */ -#define TEST_ASSUME( TEST ) \ +#define TEST_ASSUME(TEST) \ do { \ - if( ! (TEST) ) \ + if (!(TEST)) \ { \ - mbedtls_test_skip( #TEST, __LINE__, __FILE__ ); \ + mbedtls_test_skip( #TEST, __LINE__, __FILE__); \ goto exit; \ } \ - } while( 0 ) + } while (0) -#define TEST_HELPER_ASSERT(a) if( !( a ) ) \ -{ \ - mbedtls_fprintf( stderr, "Assertion Failed at %s:%d - %s\n", \ - __FILE__, __LINE__, #a ); \ - mbedtls_exit( 1 ); \ -} +#define TEST_HELPER_ASSERT(a) if (!(a)) \ + { \ + mbedtls_fprintf(stderr, "Assertion Failed at %s:%d - %s\n", \ + __FILE__, __LINE__, #a); \ + mbedtls_exit(1); \ + } /** \def ARRAY_LENGTH * Return the number of elements of a static or stack array. @@ -205,34 +205,34 @@ */ /* A correct implementation of ARRAY_LENGTH, but which silently gives * a nonsensical result if called with a pointer rather than an array. */ -#define ARRAY_LENGTH_UNSAFE( array ) \ - ( sizeof( array ) / sizeof( *( array ) ) ) +#define ARRAY_LENGTH_UNSAFE(array) \ + (sizeof(array) / sizeof(*(array))) #if defined(__GNUC__) /* Test if arg and &(arg)[0] have the same type. This is true if arg is * an array but not if it's a pointer. */ -#define IS_ARRAY_NOT_POINTER( arg ) \ - ( ! __builtin_types_compatible_p( __typeof__( arg ), \ - __typeof__( &( arg )[0] ) ) ) +#define IS_ARRAY_NOT_POINTER(arg) \ + (!__builtin_types_compatible_p(__typeof__(arg), \ + __typeof__(&(arg)[0]))) /* A compile-time constant with the value 0. If `const_expr` is not a * compile-time constant with a nonzero value, cause a compile-time error. */ -#define STATIC_ASSERT_EXPR( const_expr ) \ - ( 0 && sizeof( struct { unsigned int STATIC_ASSERT : 1 - 2 * ! ( const_expr ); } ) ) +#define STATIC_ASSERT_EXPR(const_expr) \ + (0 && sizeof(struct { unsigned int STATIC_ASSERT : 1 - 2 * !(const_expr); })) /* Return the scalar value `value` (possibly promoted). This is a compile-time * constant if `value` is. `condition` must be a compile-time constant. * If `condition` is false, arrange to cause a compile-time error. */ -#define STATIC_ASSERT_THEN_RETURN( condition, value ) \ - ( STATIC_ASSERT_EXPR( condition ) ? 0 : ( value ) ) +#define STATIC_ASSERT_THEN_RETURN(condition, value) \ + (STATIC_ASSERT_EXPR(condition) ? 0 : (value)) -#define ARRAY_LENGTH( array ) \ - ( STATIC_ASSERT_THEN_RETURN( IS_ARRAY_NOT_POINTER( array ), \ - ARRAY_LENGTH_UNSAFE( array ) ) ) +#define ARRAY_LENGTH(array) \ + (STATIC_ASSERT_THEN_RETURN(IS_ARRAY_NOT_POINTER(array), \ + ARRAY_LENGTH_UNSAFE(array))) #else /* If we aren't sure the compiler supports our non-standard tricks, * fall back to the unsafe implementation. */ -#define ARRAY_LENGTH( array ) ARRAY_LENGTH_UNSAFE( array ) +#define ARRAY_LENGTH(array) ARRAY_LENGTH_UNSAFE(array) #endif /** Return the smaller of two values. @@ -242,7 +242,7 @@ * * \return The smaller of \p x and \p y. */ -#define MIN( x, y ) ( ( x ) < ( y ) ? ( x ) : ( y ) ) +#define MIN(x, y) ((x) < (y) ? (x) : (y)) /** Return the larger of two values. * @@ -251,29 +251,29 @@ * * \return The larger of \p x and \p y. */ -#define MAX( x, y ) ( ( x ) > ( y ) ? ( x ) : ( y ) ) +#define MAX(x, y) ((x) > (y) ? (x) : (y)) /* * 32-bit integer manipulation macros (big endian) */ #ifndef GET_UINT32_BE -#define GET_UINT32_BE(n,b,i) \ -{ \ - (n) = ( (uint32_t) (b)[(i) ] << 24 ) \ - | ( (uint32_t) (b)[(i) + 1] << 16 ) \ - | ( (uint32_t) (b)[(i) + 2] << 8 ) \ - | ( (uint32_t) (b)[(i) + 3] ); \ -} +#define GET_UINT32_BE(n, b, i) \ + { \ + (n) = ((uint32_t) (b)[(i)] << 24) \ + | ((uint32_t) (b)[(i) + 1] << 16) \ + | ((uint32_t) (b)[(i) + 2] << 8) \ + | ((uint32_t) (b)[(i) + 3]); \ + } #endif #ifndef PUT_UINT32_BE -#define PUT_UINT32_BE(n,b,i) \ -{ \ - (b)[(i) ] = (unsigned char) ( (n) >> 24 ); \ - (b)[(i) + 1] = (unsigned char) ( (n) >> 16 ); \ - (b)[(i) + 2] = (unsigned char) ( (n) >> 8 ); \ - (b)[(i) + 3] = (unsigned char) ( (n) ); \ -} +#define PUT_UINT32_BE(n, b, i) \ + { \ + (b)[(i)] = (unsigned char) ((n) >> 24); \ + (b)[(i) + 1] = (unsigned char) ((n) >> 16); \ + (b)[(i) + 2] = (unsigned char) ((n) >> 8); \ + (b)[(i) + 3] = (unsigned char) ((n)); \ + } #endif #endif /* TEST_MACROS_H */ diff --git a/tests/include/test/psa_crypto_helpers.h b/tests/include/test/psa_crypto_helpers.h index 354295091..19a0483cc 100644 --- a/tests/include/test/psa_crypto_helpers.h +++ b/tests/include/test/psa_crypto_helpers.h @@ -36,11 +36,11 @@ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) /* Internal function for #TEST_USES_KEY_ID. Return 1 on success, 0 on failure. */ -int mbedtls_test_uses_key_id( mbedtls_svc_key_id_t key_id ); +int mbedtls_test_uses_key_id(mbedtls_svc_key_id_t key_id); /** Destroy persistent keys recorded with #TEST_USES_KEY_ID. */ -void mbedtls_test_psa_purge_key_storage( void ); +void mbedtls_test_psa_purge_key_storage(void); /** Purge the in-memory cache of persistent keys recorded with * #TEST_USES_KEY_ID. @@ -48,7 +48,7 @@ void mbedtls_test_psa_purge_key_storage( void ); * Call this function before calling PSA_DONE() if it's ok for * persistent keys to still exist at this point. */ -void mbedtls_test_psa_purge_key_cache( void ); +void mbedtls_test_psa_purge_key_cache(void); /** \def TEST_USES_KEY_ID * @@ -75,18 +75,18 @@ void mbedtls_test_psa_purge_key_cache( void ); * * \param key_id The PSA key identifier to record. */ -#define TEST_USES_KEY_ID( key_id ) \ - TEST_ASSERT( mbedtls_test_uses_key_id( key_id ) ) +#define TEST_USES_KEY_ID(key_id) \ + TEST_ASSERT(mbedtls_test_uses_key_id(key_id)) #else /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ -#define TEST_USES_KEY_ID( key_id ) ( (void) ( key_id ) ) -#define mbedtls_test_psa_purge_key_storage( ) ( (void) 0 ) -#define mbedtls_test_psa_purge_key_cache( ) ( (void) 0 ) +#define TEST_USES_KEY_ID(key_id) ((void) (key_id)) +#define mbedtls_test_psa_purge_key_storage() ((void) 0) +#define mbedtls_test_psa_purge_key_cache() ((void) 0) #endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ -#define PSA_INIT( ) PSA_ASSERT( psa_crypto_init( ) ) +#define PSA_INIT() PSA_ASSERT(psa_crypto_init()) /** Check for things that have not been cleaned up properly in the * PSA subsystem. @@ -95,7 +95,7 @@ void mbedtls_test_psa_purge_key_cache( void ); * \return A string literal explaining what has not been cleaned up * if applicable. */ -const char *mbedtls_test_helper_is_psa_leaking( void ); +const char *mbedtls_test_helper_is_psa_leaking(void); /** Check that no PSA Crypto key slots are in use. * @@ -104,13 +104,13 @@ const char *mbedtls_test_helper_is_psa_leaking( void ); * `TEST_ASSERT( ! mbedtls_test_helper_is_psa_leaking( ) )` * but with a more informative message. */ -#define ASSERT_PSA_PRISTINE( ) \ +#define ASSERT_PSA_PRISTINE() \ do \ { \ - if( test_fail_if_psa_leaking( __LINE__, __FILE__ ) ) \ - goto exit; \ + if (test_fail_if_psa_leaking(__LINE__, __FILE__)) \ + goto exit; \ } \ - while( 0 ) + while (0) /** Shut down the PSA Crypto subsystem and destroy persistent keys. * Expect a clean shutdown, with no slots in use. @@ -122,14 +122,14 @@ const char *mbedtls_test_helper_is_psa_leaking( void ); * \note Persistent keys must be recorded with #TEST_USES_KEY_ID before * creating them. */ -#define PSA_DONE( ) \ +#define PSA_DONE() \ do \ { \ - test_fail_if_psa_leaking( __LINE__, __FILE__ ); \ - mbedtls_test_psa_purge_key_storage( ); \ - mbedtls_psa_crypto_free( ); \ + test_fail_if_psa_leaking(__LINE__, __FILE__); \ + mbedtls_test_psa_purge_key_storage(); \ + mbedtls_psa_crypto_free(); \ } \ - while( 0 ) + while (0) /** Shut down the PSA Crypto subsystem, allowing persistent keys to survive. * Expect a clean shutdown, with no slots in use. @@ -137,22 +137,22 @@ const char *mbedtls_test_helper_is_psa_leaking( void ); * If some key slots are still in use, record the test case as failed and * jump to the `exit` label. */ -#define PSA_SESSION_DONE( ) \ +#define PSA_SESSION_DONE() \ do \ { \ - mbedtls_test_psa_purge_key_cache( ); \ - ASSERT_PSA_PRISTINE( ); \ - mbedtls_psa_crypto_free( ); \ + mbedtls_test_psa_purge_key_cache(); \ + ASSERT_PSA_PRISTINE(); \ + mbedtls_psa_crypto_free(); \ } \ - while( 0 ) + while (0) #if defined(RECORD_PSA_STATUS_COVERAGE_LOG) -psa_status_t mbedtls_test_record_status( psa_status_t status, - const char *func, - const char *file, int line, - const char *expr ); +psa_status_t mbedtls_test_record_status(psa_status_t status, + const char *func, + const char *file, int line, + const char *expr); /** Return value logging wrapper macro. * @@ -178,8 +178,8 @@ psa_status_t mbedtls_test_record_status( psa_status_t status, * a value of type #psa_status_t. * \return The value of \p expr. */ -#define RECORD_STATUS( string, expr ) \ - mbedtls_test_record_status( ( expr ), string, __FILE__, __LINE__, #expr ) +#define RECORD_STATUS(string, expr) \ + mbedtls_test_record_status((expr), string, __FILE__, __LINE__, #expr) #include "instrument_record_status.h" @@ -191,7 +191,7 @@ psa_status_t mbedtls_test_record_status( psa_status_t status, * permissions of other usage policies * (like PSA_KEY_USAGE_SIGN_HASH involves PSA_KEY_USAGE_SIGN_MESSAGE). */ -psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags ); +psa_key_usage_t mbedtls_test_update_key_usage_flags(psa_key_usage_t usage_flags); /** Skip a test case if the given key is a 192 bits AES key and the AES * implementation is at least partially provided by an accelerator or @@ -220,18 +220,18 @@ psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags #define MBEDTLS_TEST_HAVE_ALT_AES 0 #endif -#define MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_bits ) \ +#define MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_bits) \ do \ { \ - if( ( MBEDTLS_TEST_HAVE_ALT_AES ) && \ - ( ( key_type ) == PSA_KEY_TYPE_AES ) && \ - ( key_bits == 192 ) ) \ + if ((MBEDTLS_TEST_HAVE_ALT_AES) && \ + ((key_type) == PSA_KEY_TYPE_AES) && \ + (key_bits == 192)) \ { \ - mbedtls_test_skip( "AES-192 not supported", __LINE__, __FILE__ ); \ + mbedtls_test_skip("AES-192 not supported", __LINE__, __FILE__); \ goto exit; \ } \ } \ - while( 0 ) + while (0) /** Skip a test case if a GCM operation with a nonce length different from * 12 bytes fails and was performed by an accelerator or alternative @@ -262,30 +262,30 @@ psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags #define MBEDTLS_TEST_HAVE_ALT_GCM 0 #endif -#define MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, \ - nonce_length ) \ +#define MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, \ + nonce_length) \ do \ { \ - if( ( MBEDTLS_TEST_HAVE_ALT_GCM ) && \ - ( PSA_ALG_AEAD_WITH_SHORTENED_TAG( ( alg ) , 0 ) == \ - PSA_ALG_AEAD_WITH_SHORTENED_TAG( PSA_ALG_GCM, 0 ) ) && \ - ( ( nonce_length ) != 12 ) ) \ + if ((MBEDTLS_TEST_HAVE_ALT_GCM) && \ + (PSA_ALG_AEAD_WITH_SHORTENED_TAG((alg), 0) == \ + PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0)) && \ + ((nonce_length) != 12)) \ { \ - mbedtls_test_skip( "GCM with non-12-byte IV is not supported", __LINE__, __FILE__ ); \ + mbedtls_test_skip("GCM with non-12-byte IV is not supported", __LINE__, __FILE__); \ goto exit; \ } \ } \ - while( 0 ) + while (0) #if !defined(MBEDTLS_MD_C) -#define PSA_INIT_IF_NO_MD( ) PSA_INIT( ) -#define PSA_DONE_IF_NO_MD( ) PSA_DONE( ) +#define PSA_INIT_IF_NO_MD() PSA_INIT() +#define PSA_DONE_IF_NO_MD() PSA_DONE() #endif #endif /* MBEDTLS_PSA_CRYPTO_C */ #if defined(MBEDTLS_MD_C) -#define PSA_INIT_IF_NO_MD( ) ( (void) 0 ) -#define PSA_DONE_IF_NO_MD( ) ( (void) 0 ) +#define PSA_INIT_IF_NO_MD() ((void) 0) +#define PSA_DONE_IF_NO_MD() ((void) 0) #endif /** \def USE_PSA_INIT * @@ -303,14 +303,14 @@ psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags * #MBEDTLS_USE_PSA_CRYPTO is disabled. */ #if defined(MBEDTLS_USE_PSA_CRYPTO) || defined(MBEDTLS_SSL_PROTO_TLS1_3) -#define USE_PSA_INIT( ) PSA_INIT( ) -#define USE_PSA_DONE( ) PSA_DONE( ) +#define USE_PSA_INIT() PSA_INIT() +#define USE_PSA_DONE() PSA_DONE() #else /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */ /* Define empty macros so that we can use them in the preamble and teardown * of every test function that uses PSA conditionally based on * MBEDTLS_USE_PSA_CRYPTO. */ -#define USE_PSA_INIT( ) ( (void) 0 ) -#define USE_PSA_DONE( ) ( (void) 0 ) +#define USE_PSA_INIT() ((void) 0) +#define USE_PSA_DONE() ((void) 0) #endif /* !MBEDTLS_USE_PSA_CRYPTO && !MBEDTLS_SSL_PROTO_TLS1_3 */ #endif /* PSA_CRYPTO_HELPERS_H */ diff --git a/tests/include/test/psa_exercise_key.h b/tests/include/test/psa_exercise_key.h index aa0aeb5af..eb69fc661 100644 --- a/tests/include/test/psa_exercise_key.h +++ b/tests/include/test/psa_exercise_key.h @@ -77,7 +77,7 @@ * This is used in some smoke tests. */ #if defined(KNOWN_SUPPORTED_HASH_ALG) && defined(PSA_WANT_ALG_HMAC) -#define KNOWN_SUPPORTED_MAC_ALG ( PSA_ALG_HMAC( KNOWN_SUPPORTED_HASH_ALG ) ) +#define KNOWN_SUPPORTED_MAC_ALG (PSA_ALG_HMAC(KNOWN_SUPPORTED_HASH_ALG)) #define KNOWN_SUPPORTED_MAC_KEY_TYPE PSA_KEY_TYPE_HMAC #elif defined(KNOWN_SUPPORTED_BLOCK_CIPHER) && defined(MBEDTLS_CMAC_C) #define KNOWN_SUPPORTED_MAC_ALG PSA_ALG_CMAC @@ -133,12 +133,12 @@ * \return \c 1 on success, \c 0 on failure. */ int mbedtls_test_psa_setup_key_derivation_wrap( - psa_key_derivation_operation_t* operation, + psa_key_derivation_operation_t *operation, mbedtls_svc_key_id_t key, psa_algorithm_t alg, - const unsigned char* input1, size_t input1_length, - const unsigned char* input2, size_t input2_length, - size_t capacity ); + const unsigned char *input1, size_t input1_length, + const unsigned char *input2, size_t input2_length, + size_t capacity); /** Perform a key agreement using the given key pair against its public key * using psa_raw_key_agreement(). @@ -154,7 +154,7 @@ int mbedtls_test_psa_setup_key_derivation_wrap( */ psa_status_t mbedtls_test_psa_raw_key_agreement_with_self( psa_algorithm_t alg, - mbedtls_svc_key_id_t key ); + mbedtls_svc_key_id_t key); /** Perform a key agreement using the given key pair against its public key * using psa_key_derivation_raw_key(). @@ -173,7 +173,7 @@ psa_status_t mbedtls_test_psa_raw_key_agreement_with_self( */ psa_status_t mbedtls_test_psa_key_agreement_with_self( psa_key_derivation_operation_t *operation, - mbedtls_svc_key_id_t key ); + mbedtls_svc_key_id_t key); /** Perform sanity checks on the given key representation. * @@ -195,7 +195,7 @@ psa_status_t mbedtls_test_psa_key_agreement_with_self( */ int mbedtls_test_psa_exported_key_sanity_check( psa_key_type_t type, size_t bits, - const uint8_t *exported, size_t exported_length ); + const uint8_t *exported, size_t exported_length); /** Do smoke tests on a key. * @@ -224,11 +224,11 @@ int mbedtls_test_psa_exported_key_sanity_check( * \retval 0 The key failed the smoke tests. * \retval 1 The key passed the smoke tests. */ -int mbedtls_test_psa_exercise_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ); +int mbedtls_test_psa_exercise_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg); -psa_key_usage_t mbedtls_test_psa_usage_to_exercise( psa_key_type_t type, - psa_algorithm_t alg ); +psa_key_usage_t mbedtls_test_psa_usage_to_exercise(psa_key_type_t type, + psa_algorithm_t alg); #endif /* PSA_EXERCISE_KEY_H */ diff --git a/tests/include/test/psa_helpers.h b/tests/include/test/psa_helpers.h index f438a71fb..2665fac39 100644 --- a/tests/include/test/psa_helpers.h +++ b/tests/include/test/psa_helpers.h @@ -31,6 +31,6 @@ * to a \c psa_xxx function that returns a value of type * #psa_status_t. */ -#define PSA_ASSERT( expr ) TEST_EQUAL( ( expr ), PSA_SUCCESS ) +#define PSA_ASSERT(expr) TEST_EQUAL((expr), PSA_SUCCESS) #endif /* PSA_HELPERS_H */ diff --git a/tests/include/test/random.h b/tests/include/test/random.h index 58548a2c8..c5572088a 100644 --- a/tests/include/test/random.h +++ b/tests/include/test/random.h @@ -30,12 +30,11 @@ #include #include -typedef struct -{ +typedef struct { unsigned char *buf; /* Pointer to a buffer of length bytes. */ size_t length; /* If fallback_f_rng is NULL, fail after delivering length bytes. */ - int ( *fallback_f_rng )( void*, unsigned char *, size_t ); + int (*fallback_f_rng)(void *, unsigned char *, size_t); void *fallback_p_rng; } mbedtls_test_rnd_buf_info; @@ -46,8 +45,7 @@ typedef struct * Do not forget endianness! * State( v0, v1 ) should be set to zero. */ -typedef struct -{ +typedef struct { uint32_t key[16]; uint32_t v0, v1; } mbedtls_test_rnd_pseudo_info; @@ -61,18 +59,18 @@ typedef struct * * rng_state shall be NULL. */ -int mbedtls_test_rnd_std_rand( void *rng_state, - unsigned char *output, - size_t len ); +int mbedtls_test_rnd_std_rand(void *rng_state, + unsigned char *output, + size_t len); /** * This function only returns zeros. * * \p rng_state shall be \c NULL. */ -int mbedtls_test_rnd_zero_rand( void *rng_state, - unsigned char *output, - size_t len ); +int mbedtls_test_rnd_zero_rand(void *rng_state, + unsigned char *output, + size_t len); /** * This function returns random data based on a buffer it receives. @@ -86,9 +84,9 @@ int mbedtls_test_rnd_zero_rand( void *rng_state, * #mbedtls_test_rnd_buf_info structure if there is one, and * will return #MBEDTLS_ERR_ENTROPY_SOURCE_FAILED otherwise. */ -int mbedtls_test_rnd_buffer_rand( void *rng_state, - unsigned char *output, - size_t len ); +int mbedtls_test_rnd_buffer_rand(void *rng_state, + unsigned char *output, + size_t len); /** * This function returns random based on a pseudo random function. @@ -98,8 +96,8 @@ int mbedtls_test_rnd_buffer_rand( void *rng_state, * * \p rng_state shall be a pointer to a #mbedtls_test_rnd_pseudo_info structure. */ -int mbedtls_test_rnd_pseudo_rand( void *rng_state, - unsigned char *output, - size_t len ); +int mbedtls_test_rnd_pseudo_rand(void *rng_state, + unsigned char *output, + size_t len); #endif /* TEST_RANDOM_H */ diff --git a/tests/src/asn1_helpers.c b/tests/src/asn1_helpers.c index 79aa166ce..aaf7587aa 100644 --- a/tests/src/asn1_helpers.c +++ b/tests/src/asn1_helpers.c @@ -27,48 +27,48 @@ #include -int mbedtls_test_asn1_skip_integer( unsigned char **p, const unsigned char *end, - size_t min_bits, size_t max_bits, - int must_be_odd ) +int mbedtls_test_asn1_skip_integer(unsigned char **p, const unsigned char *end, + size_t min_bits, size_t max_bits, + int must_be_odd) { size_t len; size_t actual_bits; unsigned char msb; - TEST_EQUAL( mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_INTEGER ), - 0 ); + TEST_EQUAL(mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_INTEGER), + 0); /* Check if the retrieved length doesn't extend the actual buffer's size. * It is assumed here, that end >= p, which validates casting to size_t. */ - TEST_ASSERT( len <= (size_t)( end - *p) ); + TEST_ASSERT(len <= (size_t) (end - *p)); /* Tolerate a slight departure from DER encoding: * - 0 may be represented by an empty string or a 1-byte string. * - The sign bit may be used as a value bit. */ - if( ( len == 1 && ( *p )[0] == 0 ) || - ( len > 1 && ( *p )[0] == 0 && ( ( *p )[1] & 0x80 ) != 0 ) ) - { - ++( *p ); + if ((len == 1 && (*p)[0] == 0) || + (len > 1 && (*p)[0] == 0 && ((*p)[1] & 0x80) != 0)) { + ++(*p); --len; } - if( min_bits == 0 && len == 0 ) - return( 1 ); - msb = ( *p )[0]; - TEST_ASSERT( msb != 0 ); - actual_bits = 8 * ( len - 1 ); - while( msb != 0 ) - { + if (min_bits == 0 && len == 0) { + return 1; + } + msb = (*p)[0]; + TEST_ASSERT(msb != 0); + actual_bits = 8 * (len - 1); + while (msb != 0) { msb >>= 1; ++actual_bits; } - TEST_ASSERT( actual_bits >= min_bits ); - TEST_ASSERT( actual_bits <= max_bits ); - if( must_be_odd ) - TEST_ASSERT( ( ( *p )[len-1] & 1 ) != 0 ); + TEST_ASSERT(actual_bits >= min_bits); + TEST_ASSERT(actual_bits <= max_bits); + if (must_be_odd) { + TEST_ASSERT(((*p)[len-1] & 1) != 0); + } *p += len; - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } #endif /* MBEDTLS_ASN1_PARSE_C */ diff --git a/tests/src/bignum_helpers.c b/tests/src/bignum_helpers.c index d6ec9bd3c..4dd37915e 100644 --- a/tests/src/bignum_helpers.c +++ b/tests/src/bignum_helpers.c @@ -38,105 +38,107 @@ #include #include -int mbedtls_test_read_mpi_core( mbedtls_mpi_uint **pX, size_t *plimbs, - const char *input ) +int mbedtls_test_read_mpi_core(mbedtls_mpi_uint **pX, size_t *plimbs, + const char *input) { /* Sanity check */ - if( *pX != NULL ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + if (*pX != NULL) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } - size_t hex_len = strlen( input ); - size_t byte_len = ( hex_len + 1 ) / 2; - *plimbs = CHARS_TO_LIMBS( byte_len ); + size_t hex_len = strlen(input); + size_t byte_len = (hex_len + 1) / 2; + *plimbs = CHARS_TO_LIMBS(byte_len); /* A core bignum is not allowed to be empty. Forbid it as test data, * this way static analyzers have a chance of knowing we don't expect * the bignum functions to support empty inputs. */ - if( *plimbs == 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - - *pX = mbedtls_calloc( *plimbs, sizeof( **pX ) ); - if( *pX == NULL ) - return( MBEDTLS_ERR_MPI_ALLOC_FAILED ); - - unsigned char *byte_start = ( unsigned char * ) *pX; - if( byte_len % sizeof( mbedtls_mpi_uint ) != 0 ) - { - byte_start += sizeof( mbedtls_mpi_uint ) - byte_len % sizeof( mbedtls_mpi_uint ); + if (*plimbs == 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - if( ( hex_len & 1 ) != 0 ) - { + + *pX = mbedtls_calloc(*plimbs, sizeof(**pX)); + if (*pX == NULL) { + return MBEDTLS_ERR_MPI_ALLOC_FAILED; + } + + unsigned char *byte_start = (unsigned char *) *pX; + if (byte_len % sizeof(mbedtls_mpi_uint) != 0) { + byte_start += sizeof(mbedtls_mpi_uint) - byte_len % sizeof(mbedtls_mpi_uint); + } + if ((hex_len & 1) != 0) { /* mbedtls_test_unhexify wants an even number of hex digits */ - TEST_ASSERT( mbedtls_test_ascii2uc( *input, byte_start ) == 0 ); + TEST_ASSERT(mbedtls_test_ascii2uc(*input, byte_start) == 0); ++byte_start; ++input; --byte_len; } - TEST_ASSERT( mbedtls_test_unhexify( byte_start, - byte_len, - input, - &byte_len ) == 0 ); + TEST_ASSERT(mbedtls_test_unhexify(byte_start, + byte_len, + input, + &byte_len) == 0); - mbedtls_mpi_core_bigendian_to_host( *pX, *plimbs ); - return( 0 ); + mbedtls_mpi_core_bigendian_to_host(*pX, *plimbs); + return 0; exit: - mbedtls_free( *pX ); - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + mbedtls_free(*pX); + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } -int mbedtls_test_read_mpi_modulus( mbedtls_mpi_mod_modulus *N, - const char *s, - mbedtls_mpi_mod_rep_selector int_rep ) +int mbedtls_test_read_mpi_modulus(mbedtls_mpi_mod_modulus *N, + const char *s, + mbedtls_mpi_mod_rep_selector int_rep) { mbedtls_mpi_uint *p = NULL; size_t limbs = 0; - if( N->limbs != 0 ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - int ret = mbedtls_test_read_mpi_core( &p, &limbs, s ); - if( ret != 0 ) - return( ret ); - ret = mbedtls_mpi_mod_modulus_setup( N, p, limbs, int_rep ); - if( ret != 0 ) - mbedtls_free( p ); - return( ret ); + if (N->limbs != 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } + int ret = mbedtls_test_read_mpi_core(&p, &limbs, s); + if (ret != 0) { + return ret; + } + ret = mbedtls_mpi_mod_modulus_setup(N, p, limbs, int_rep); + if (ret != 0) { + mbedtls_free(p); + } + return ret; } -void mbedtls_test_mpi_mod_modulus_free_with_limbs( mbedtls_mpi_mod_modulus *N ) +void mbedtls_test_mpi_mod_modulus_free_with_limbs(mbedtls_mpi_mod_modulus *N) { - mbedtls_free( (mbedtls_mpi_uint*) N->p ); - mbedtls_mpi_mod_modulus_free( N ); + mbedtls_free((mbedtls_mpi_uint *) N->p); + mbedtls_mpi_mod_modulus_free(N); } -int mbedtls_test_read_mpi( mbedtls_mpi *X, const char *s ) +int mbedtls_test_read_mpi(mbedtls_mpi *X, const char *s) { int negative = 0; /* Always set the sign bit to -1 if the input has a minus sign, even for 0. * This creates an invalid representation, which mbedtls_mpi_read_string() * avoids but we want to be able to create that in test data. */ - if( s[0] == '-' ) - { + if (s[0] == '-') { ++s; negative = 1; } /* mbedtls_mpi_read_string() currently retains leading zeros. * It always allocates at least one limb for the value 0. */ - if( s[0] == 0 ) - { - mbedtls_mpi_free( X ); - return( 0 ); + if (s[0] == 0) { + mbedtls_mpi_free(X); + return 0; } - int ret = mbedtls_mpi_read_string( X, 16, s ); - if( ret != 0 ) - return( ret ); - if( negative ) - { - if( mbedtls_mpi_cmp_int( X, 0 ) == 0 ) + int ret = mbedtls_mpi_read_string(X, 16, s); + if (ret != 0) { + return ret; + } + if (negative) { + if (mbedtls_mpi_cmp_int(X, 0) == 0) { ++mbedtls_test_case_uses_negative_0; + } X->s = -1; } - return( 0 ); + return 0; } #endif /* MBEDTLS_BIGNUM_C */ - diff --git a/tests/src/certs.c b/tests/src/certs.c index ca03b29d4..1fcdc42c4 100644 --- a/tests/src/certs.c +++ b/tests/src/certs.c @@ -59,50 +59,50 @@ /* This is generated from tests/data_files/test-ca2.crt.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CA_CRT_EC_DER tests/data_files/test-ca2.crt.der */ #define TEST_CA_CRT_EC_DER { \ - 0x30, 0x82, 0x02, 0x04, 0x30, 0x82, 0x01, 0x88, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x09, 0x00, 0xc1, 0x43, 0xe2, 0x7e, 0x62, 0x43, 0xcc, 0xe8, \ - 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, \ - 0x05, 0x00, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, \ - 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, \ - 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x50, \ - 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, 0x73, 0x74, \ - 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, \ - 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, 0x5a, 0x17, \ - 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, \ - 0x30, 0x5a, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, \ - 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, \ - 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x50, \ - 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, 0x73, 0x74, \ - 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, \ - 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, \ - 0x00, 0x22, 0x03, 0x62, 0x00, 0x04, 0xc3, 0xda, 0x2b, 0x34, 0x41, 0x37, \ - 0x58, 0x2f, 0x87, 0x56, 0xfe, 0xfc, 0x89, 0xba, 0x29, 0x43, 0x4b, 0x4e, \ - 0xe0, 0x6e, 0xc3, 0x0e, 0x57, 0x53, 0x33, 0x39, 0x58, 0xd4, 0x52, 0xb4, \ - 0x91, 0x95, 0x39, 0x0b, 0x23, 0xdf, 0x5f, 0x17, 0x24, 0x62, 0x48, 0xfc, \ - 0x1a, 0x95, 0x29, 0xce, 0x2c, 0x2d, 0x87, 0xc2, 0x88, 0x52, 0x80, 0xaf, \ - 0xd6, 0x6a, 0xab, 0x21, 0xdd, 0xb8, 0xd3, 0x1c, 0x6e, 0x58, 0xb8, 0xca, \ - 0xe8, 0xb2, 0x69, 0x8e, 0xf3, 0x41, 0xad, 0x29, 0xc3, 0xb4, 0x5f, 0x75, \ - 0xa7, 0x47, 0x6f, 0xd5, 0x19, 0x29, 0x55, 0x69, 0x9a, 0x53, 0x3b, 0x20, \ - 0xb4, 0x66, 0x16, 0x60, 0x33, 0x1e, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x0c, \ - 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, \ - 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9d, \ - 0x6d, 0x20, 0x24, 0x49, 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, \ - 0x7e, 0x24, 0xc9, 0xdb, 0xfb, 0x36, 0x7c, 0x30, 0x1f, 0x06, 0x03, 0x55, \ - 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, \ - 0x49, 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, \ - 0xdb, 0xfb, 0x36, 0x7c, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ - 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x68, 0x00, 0x30, 0x65, 0x02, \ - 0x30, 0x51, 0xca, 0xae, 0x30, 0x0f, 0xa4, 0x70, 0x74, 0x04, 0xdd, 0x5a, \ - 0x2c, 0x7f, 0x13, 0xc1, 0xc2, 0x77, 0xbe, 0x1d, 0x00, 0xc5, 0xe2, 0x99, \ - 0x8f, 0x7d, 0x26, 0x45, 0xd3, 0x8a, 0x06, 0x68, 0x3f, 0x8c, 0xb4, 0xb7, \ - 0xad, 0x4d, 0xe0, 0xf1, 0x54, 0x01, 0x1e, 0x99, 0xfc, 0xb0, 0xe4, 0xd3, \ - 0x07, 0x02, 0x31, 0x00, 0xdc, 0x4f, 0x3b, 0x90, 0x1e, 0xae, 0x29, 0x99, \ - 0x84, 0x28, 0xcc, 0x7b, 0x47, 0x78, 0x09, 0x31, 0xdf, 0xd6, 0x01, 0x59, \ - 0x30, 0x5e, 0xf4, 0xf8, 0x8a, 0x84, 0x3f, 0xea, 0x39, 0x54, 0x7b, 0x08, \ - 0xa7, 0x60, 0xaa, 0xbd, 0xf9, 0x5b, 0xd1, 0x51, 0x96, 0x14, 0x2e, 0x65, \ - 0xf5, 0xae, 0x1c, 0x42 \ + 0x30, 0x82, 0x02, 0x04, 0x30, 0x82, 0x01, 0x88, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x09, 0x00, 0xc1, 0x43, 0xe2, 0x7e, 0x62, 0x43, 0xcc, 0xe8, \ + 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, \ + 0x05, 0x00, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, \ + 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, \ + 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x50, \ + 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, 0x73, 0x74, \ + 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x39, \ + 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, 0x5a, 0x17, \ + 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, \ + 0x30, 0x5a, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, \ + 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, \ + 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x13, 0x50, \ + 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, 0x73, 0x74, \ + 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, \ + 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, \ + 0x00, 0x22, 0x03, 0x62, 0x00, 0x04, 0xc3, 0xda, 0x2b, 0x34, 0x41, 0x37, \ + 0x58, 0x2f, 0x87, 0x56, 0xfe, 0xfc, 0x89, 0xba, 0x29, 0x43, 0x4b, 0x4e, \ + 0xe0, 0x6e, 0xc3, 0x0e, 0x57, 0x53, 0x33, 0x39, 0x58, 0xd4, 0x52, 0xb4, \ + 0x91, 0x95, 0x39, 0x0b, 0x23, 0xdf, 0x5f, 0x17, 0x24, 0x62, 0x48, 0xfc, \ + 0x1a, 0x95, 0x29, 0xce, 0x2c, 0x2d, 0x87, 0xc2, 0x88, 0x52, 0x80, 0xaf, \ + 0xd6, 0x6a, 0xab, 0x21, 0xdd, 0xb8, 0xd3, 0x1c, 0x6e, 0x58, 0xb8, 0xca, \ + 0xe8, 0xb2, 0x69, 0x8e, 0xf3, 0x41, 0xad, 0x29, 0xc3, 0xb4, 0x5f, 0x75, \ + 0xa7, 0x47, 0x6f, 0xd5, 0x19, 0x29, 0x55, 0x69, 0x9a, 0x53, 0x3b, 0x20, \ + 0xb4, 0x66, 0x16, 0x60, 0x33, 0x1e, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x0c, \ + 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, \ + 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x9d, \ + 0x6d, 0x20, 0x24, 0x49, 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, \ + 0x7e, 0x24, 0xc9, 0xdb, 0xfb, 0x36, 0x7c, 0x30, 0x1f, 0x06, 0x03, 0x55, \ + 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, \ + 0x49, 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, \ + 0xdb, 0xfb, 0x36, 0x7c, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ + 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x68, 0x00, 0x30, 0x65, 0x02, \ + 0x30, 0x51, 0xca, 0xae, 0x30, 0x0f, 0xa4, 0x70, 0x74, 0x04, 0xdd, 0x5a, \ + 0x2c, 0x7f, 0x13, 0xc1, 0xc2, 0x77, 0xbe, 0x1d, 0x00, 0xc5, 0xe2, 0x99, \ + 0x8f, 0x7d, 0x26, 0x45, 0xd3, 0x8a, 0x06, 0x68, 0x3f, 0x8c, 0xb4, 0xb7, \ + 0xad, 0x4d, 0xe0, 0xf1, 0x54, 0x01, 0x1e, 0x99, 0xfc, 0xb0, 0xe4, 0xd3, \ + 0x07, 0x02, 0x31, 0x00, 0xdc, 0x4f, 0x3b, 0x90, 0x1e, 0xae, 0x29, 0x99, \ + 0x84, 0x28, 0xcc, 0x7b, 0x47, 0x78, 0x09, 0x31, 0xdf, 0xd6, 0x01, 0x59, \ + 0x30, 0x5e, 0xf4, 0xf8, 0x8a, 0x84, 0x3f, 0xea, 0x39, 0x54, 0x7b, 0x08, \ + 0xa7, 0x60, 0xaa, 0xbd, 0xf9, 0x5b, 0xd1, 0x51, 0x96, 0x14, 0x2e, 0x65, \ + 0xf5, 0xae, 0x1c, 0x42 \ } /* END FILE */ @@ -125,20 +125,20 @@ /* This is generated from tests/data_files/test-ca2.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CA_KEY_EC_DER tests/data_files/test-ca2.key.der */ #define TEST_CA_KEY_EC_DER { \ - 0x30, 0x81, 0xa4, 0x02, 0x01, 0x01, 0x04, 0x30, 0x83, 0xd9, 0x15, 0x0e, \ - 0xa0, 0x71, 0xf0, 0x57, 0x10, 0x33, 0xa3, 0x38, 0xb8, 0x86, 0xc1, 0xa6, \ - 0x11, 0x5d, 0x6d, 0xb4, 0x03, 0xe1, 0x29, 0x76, 0x45, 0xd7, 0x87, 0x6f, \ - 0x23, 0xab, 0x44, 0x20, 0xea, 0x64, 0x7b, 0x85, 0xb1, 0x76, 0xe7, 0x85, \ - 0x95, 0xaa, 0x74, 0xd6, 0xd1, 0xa4, 0x5e, 0xea, 0xa0, 0x07, 0x06, 0x05, \ - 0x2b, 0x81, 0x04, 0x00, 0x22, 0xa1, 0x64, 0x03, 0x62, 0x00, 0x04, 0xc3, \ - 0xda, 0x2b, 0x34, 0x41, 0x37, 0x58, 0x2f, 0x87, 0x56, 0xfe, 0xfc, 0x89, \ - 0xba, 0x29, 0x43, 0x4b, 0x4e, 0xe0, 0x6e, 0xc3, 0x0e, 0x57, 0x53, 0x33, \ - 0x39, 0x58, 0xd4, 0x52, 0xb4, 0x91, 0x95, 0x39, 0x0b, 0x23, 0xdf, 0x5f, \ - 0x17, 0x24, 0x62, 0x48, 0xfc, 0x1a, 0x95, 0x29, 0xce, 0x2c, 0x2d, 0x87, \ - 0xc2, 0x88, 0x52, 0x80, 0xaf, 0xd6, 0x6a, 0xab, 0x21, 0xdd, 0xb8, 0xd3, \ - 0x1c, 0x6e, 0x58, 0xb8, 0xca, 0xe8, 0xb2, 0x69, 0x8e, 0xf3, 0x41, 0xad, \ - 0x29, 0xc3, 0xb4, 0x5f, 0x75, 0xa7, 0x47, 0x6f, 0xd5, 0x19, 0x29, 0x55, \ - 0x69, 0x9a, 0x53, 0x3b, 0x20, 0xb4, 0x66, 0x16, 0x60, 0x33, 0x1e \ + 0x30, 0x81, 0xa4, 0x02, 0x01, 0x01, 0x04, 0x30, 0x83, 0xd9, 0x15, 0x0e, \ + 0xa0, 0x71, 0xf0, 0x57, 0x10, 0x33, 0xa3, 0x38, 0xb8, 0x86, 0xc1, 0xa6, \ + 0x11, 0x5d, 0x6d, 0xb4, 0x03, 0xe1, 0x29, 0x76, 0x45, 0xd7, 0x87, 0x6f, \ + 0x23, 0xab, 0x44, 0x20, 0xea, 0x64, 0x7b, 0x85, 0xb1, 0x76, 0xe7, 0x85, \ + 0x95, 0xaa, 0x74, 0xd6, 0xd1, 0xa4, 0x5e, 0xea, 0xa0, 0x07, 0x06, 0x05, \ + 0x2b, 0x81, 0x04, 0x00, 0x22, 0xa1, 0x64, 0x03, 0x62, 0x00, 0x04, 0xc3, \ + 0xda, 0x2b, 0x34, 0x41, 0x37, 0x58, 0x2f, 0x87, 0x56, 0xfe, 0xfc, 0x89, \ + 0xba, 0x29, 0x43, 0x4b, 0x4e, 0xe0, 0x6e, 0xc3, 0x0e, 0x57, 0x53, 0x33, \ + 0x39, 0x58, 0xd4, 0x52, 0xb4, 0x91, 0x95, 0x39, 0x0b, 0x23, 0xdf, 0x5f, \ + 0x17, 0x24, 0x62, 0x48, 0xfc, 0x1a, 0x95, 0x29, 0xce, 0x2c, 0x2d, 0x87, \ + 0xc2, 0x88, 0x52, 0x80, 0xaf, 0xd6, 0x6a, 0xab, 0x21, 0xdd, 0xb8, 0xd3, \ + 0x1c, 0x6e, 0x58, 0xb8, 0xca, 0xe8, 0xb2, 0x69, 0x8e, 0xf3, 0x41, 0xad, \ + 0x29, 0xc3, 0xb4, 0x5f, 0x75, 0xa7, 0x47, 0x6f, 0xd5, 0x19, 0x29, 0x55, \ + 0x69, 0x9a, 0x53, 0x3b, 0x20, 0xb4, 0x66, 0x16, 0x60, 0x33, 0x1e \ } /* END FILE */ @@ -171,76 +171,76 @@ * using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CA_CRT_RSA_SHA256_DER tests/data_files/test-ca-sha256.crt.der */ #define TEST_CA_CRT_RSA_SHA256_DER { \ - 0x30, 0x82, 0x03, 0x41, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ - 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ - 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ - 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, \ - 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ - 0x34, 0x30, 0x30, 0x5a, 0x30, 0x3b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ - 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x54, 0x65, \ - 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, \ - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, \ - 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, \ - 0x01, 0x00, 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, \ - 0x86, 0xde, 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, \ - 0x99, 0xd4, 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, \ - 0x9b, 0xc5, 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, \ - 0xc0, 0x8d, 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, \ - 0x93, 0xe8, 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, \ - 0xe7, 0x40, 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, \ - 0xf9, 0x3e, 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, \ - 0x29, 0x00, 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, \ - 0xbd, 0x83, 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, \ - 0x60, 0xc3, 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, \ - 0x32, 0xbe, 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, \ - 0xfb, 0xf5, 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, \ - 0xee, 0xe2, 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, \ - 0x47, 0xb1, 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, \ - 0xf1, 0x79, 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, \ - 0x6f, 0x27, 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, \ - 0xa1, 0x30, 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, \ - 0x28, 0xd1, 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, \ - 0x09, 0xea, 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, \ - 0xc9, 0xab, 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, \ - 0x9e, 0x99, 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, \ - 0x50, 0x30, 0x4e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, \ - 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, \ - 0x04, 0x16, 0x04, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, \ - 0xf6, 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, \ - 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, \ - 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, \ - 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, \ - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, \ - 0x03, 0x82, 0x01, 0x01, 0x00, 0x38, 0xa8, 0x54, 0x82, 0xb6, 0x1d, 0xaa, \ - 0xdb, 0x6b, 0x89, 0x21, 0xd1, 0x38, 0x28, 0x61, 0xc9, 0xb0, 0x98, 0xd5, \ - 0x11, 0xfc, 0x36, 0xff, 0x19, 0xfe, 0x32, 0x44, 0xef, 0x08, 0xc7, 0xf1, \ - 0x56, 0xbb, 0xe6, 0x46, 0xfa, 0x82, 0xb6, 0x31, 0x38, 0xb4, 0xa0, 0xe5, \ - 0xa0, 0xae, 0x0c, 0xc4, 0x53, 0x9e, 0x93, 0x4e, 0xe8, 0x0d, 0x9c, 0x2f, \ - 0xb4, 0x04, 0xfd, 0x8a, 0x39, 0xf5, 0x84, 0x77, 0xed, 0x4c, 0xd4, 0xbb, \ - 0x44, 0x7f, 0x73, 0x77, 0xf7, 0xf1, 0x36, 0x97, 0xdc, 0x1e, 0x73, 0x19, \ - 0x5d, 0x50, 0xb8, 0xc3, 0x80, 0xcd, 0x03, 0x57, 0xd2, 0x00, 0xdb, 0x56, \ - 0xe6, 0xc6, 0x35, 0x24, 0x1e, 0x49, 0x7b, 0xd8, 0xd2, 0x72, 0xbb, 0x0b, \ - 0x49, 0x2f, 0xa6, 0x02, 0x3c, 0xaf, 0xd0, 0xec, 0x37, 0x1d, 0xbd, 0x81, \ - 0x8b, 0x1f, 0x30, 0xbb, 0xbc, 0x4d, 0x36, 0xb5, 0x79, 0x7c, 0x87, 0xfb, \ - 0x51, 0xb9, 0xbe, 0xc2, 0xde, 0x92, 0xa8, 0x40, 0x71, 0xbb, 0x72, 0x9b, \ - 0xf8, 0x47, 0xce, 0x6c, 0x04, 0xf8, 0x86, 0xe7, 0xf7, 0x73, 0x3c, 0xe7, \ - 0x84, 0x7d, 0xc2, 0xd7, 0xb7, 0x9d, 0xe8, 0xd4, 0x9b, 0x5f, 0x0a, 0x17, \ - 0x7d, 0xbc, 0xbb, 0xb2, 0xd5, 0x94, 0x0d, 0xe4, 0x49, 0xbf, 0x4f, 0x11, \ - 0x68, 0x53, 0xb2, 0x91, 0xff, 0xc0, 0x69, 0xee, 0xdb, 0x63, 0x93, 0xcb, \ - 0xc9, 0x35, 0x6b, 0x90, 0x09, 0xe2, 0x90, 0xc9, 0xed, 0x27, 0xd6, 0x08, \ - 0xfa, 0x13, 0x4d, 0x62, 0xdd, 0xe2, 0x9e, 0xaa, 0xb5, 0xd4, 0x0e, 0x5c, \ - 0x37, 0x4f, 0xab, 0x55, 0x3b, 0x2d, 0xf1, 0x42, 0x82, 0xc7, 0x34, 0x38, \ - 0x1a, 0x9b, 0xeb, 0xa1, 0x2c, 0x0f, 0x29, 0x31, 0x64, 0x6c, 0xcc, 0x38, \ - 0xfd, 0xa9, 0xd3, 0xd5, 0xd5, 0x71, 0xaf, 0xf0, 0x6d, 0xc0, 0x97, 0xe2, \ - 0x11, 0x2a, 0x0a, 0xdf, 0xfe, 0x02, 0x79, 0x74, 0x75 \ + 0x30, 0x82, 0x03, 0x41, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ + 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ + 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ + 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, \ + 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ + 0x34, 0x30, 0x30, 0x5a, 0x30, 0x3b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ + 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x54, 0x65, \ + 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, \ + 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, \ + 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, \ + 0x01, 0x00, 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, \ + 0x86, 0xde, 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, \ + 0x99, 0xd4, 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, \ + 0x9b, 0xc5, 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, \ + 0xc0, 0x8d, 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, \ + 0x93, 0xe8, 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, \ + 0xe7, 0x40, 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, \ + 0xf9, 0x3e, 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, \ + 0x29, 0x00, 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, \ + 0xbd, 0x83, 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, \ + 0x60, 0xc3, 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, \ + 0x32, 0xbe, 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, \ + 0xfb, 0xf5, 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, \ + 0xee, 0xe2, 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, \ + 0x47, 0xb1, 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, \ + 0xf1, 0x79, 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, \ + 0x6f, 0x27, 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, \ + 0xa1, 0x30, 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, \ + 0x28, 0xd1, 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, \ + 0x09, 0xea, 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, \ + 0xc9, 0xab, 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, \ + 0x9e, 0x99, 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, \ + 0x50, 0x30, 0x4e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, \ + 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, \ + 0x04, 0x16, 0x04, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, \ + 0xf6, 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, \ + 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, \ + 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, \ + 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, \ + 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, \ + 0x03, 0x82, 0x01, 0x01, 0x00, 0x38, 0xa8, 0x54, 0x82, 0xb6, 0x1d, 0xaa, \ + 0xdb, 0x6b, 0x89, 0x21, 0xd1, 0x38, 0x28, 0x61, 0xc9, 0xb0, 0x98, 0xd5, \ + 0x11, 0xfc, 0x36, 0xff, 0x19, 0xfe, 0x32, 0x44, 0xef, 0x08, 0xc7, 0xf1, \ + 0x56, 0xbb, 0xe6, 0x46, 0xfa, 0x82, 0xb6, 0x31, 0x38, 0xb4, 0xa0, 0xe5, \ + 0xa0, 0xae, 0x0c, 0xc4, 0x53, 0x9e, 0x93, 0x4e, 0xe8, 0x0d, 0x9c, 0x2f, \ + 0xb4, 0x04, 0xfd, 0x8a, 0x39, 0xf5, 0x84, 0x77, 0xed, 0x4c, 0xd4, 0xbb, \ + 0x44, 0x7f, 0x73, 0x77, 0xf7, 0xf1, 0x36, 0x97, 0xdc, 0x1e, 0x73, 0x19, \ + 0x5d, 0x50, 0xb8, 0xc3, 0x80, 0xcd, 0x03, 0x57, 0xd2, 0x00, 0xdb, 0x56, \ + 0xe6, 0xc6, 0x35, 0x24, 0x1e, 0x49, 0x7b, 0xd8, 0xd2, 0x72, 0xbb, 0x0b, \ + 0x49, 0x2f, 0xa6, 0x02, 0x3c, 0xaf, 0xd0, 0xec, 0x37, 0x1d, 0xbd, 0x81, \ + 0x8b, 0x1f, 0x30, 0xbb, 0xbc, 0x4d, 0x36, 0xb5, 0x79, 0x7c, 0x87, 0xfb, \ + 0x51, 0xb9, 0xbe, 0xc2, 0xde, 0x92, 0xa8, 0x40, 0x71, 0xbb, 0x72, 0x9b, \ + 0xf8, 0x47, 0xce, 0x6c, 0x04, 0xf8, 0x86, 0xe7, 0xf7, 0x73, 0x3c, 0xe7, \ + 0x84, 0x7d, 0xc2, 0xd7, 0xb7, 0x9d, 0xe8, 0xd4, 0x9b, 0x5f, 0x0a, 0x17, \ + 0x7d, 0xbc, 0xbb, 0xb2, 0xd5, 0x94, 0x0d, 0xe4, 0x49, 0xbf, 0x4f, 0x11, \ + 0x68, 0x53, 0xb2, 0x91, 0xff, 0xc0, 0x69, 0xee, 0xdb, 0x63, 0x93, 0xcb, \ + 0xc9, 0x35, 0x6b, 0x90, 0x09, 0xe2, 0x90, 0xc9, 0xed, 0x27, 0xd6, 0x08, \ + 0xfa, 0x13, 0x4d, 0x62, 0xdd, 0xe2, 0x9e, 0xaa, 0xb5, 0xd4, 0x0e, 0x5c, \ + 0x37, 0x4f, 0xab, 0x55, 0x3b, 0x2d, 0xf1, 0x42, 0x82, 0xc7, 0x34, 0x38, \ + 0x1a, 0x9b, 0xeb, 0xa1, 0x2c, 0x0f, 0x29, 0x31, 0x64, 0x6c, 0xcc, 0x38, \ + 0xfd, 0xa9, 0xd3, 0xd5, 0xd5, 0x71, 0xaf, 0xf0, 0x6d, 0xc0, 0x97, 0xe2, \ + 0x11, 0x2a, 0x0a, 0xdf, 0xfe, 0x02, 0x79, 0x74, 0x75 \ } /* END FILE */ @@ -272,76 +272,76 @@ /* This is taken from tests/data_files/test-ca-sha1.crt.der. */ /* BEGIN FILE binary macro TEST_CA_CRT_RSA_SHA1_DER tests/data_files/test-ca-sha1.crt.der */ #define TEST_CA_CRT_RSA_SHA1_DER { \ - 0x30, 0x82, 0x03, 0x41, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ - 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ - 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ - 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, \ - 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, \ - 0x34, 0x30, 0x30, 0x5a, 0x30, 0x3b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ - 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x54, 0x65, \ - 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, \ - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, \ - 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, \ - 0x01, 0x00, 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, \ - 0x86, 0xde, 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, \ - 0x99, 0xd4, 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, \ - 0x9b, 0xc5, 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, \ - 0xc0, 0x8d, 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, \ - 0x93, 0xe8, 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, \ - 0xe7, 0x40, 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, \ - 0xf9, 0x3e, 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, \ - 0x29, 0x00, 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, \ - 0xbd, 0x83, 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, \ - 0x60, 0xc3, 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, \ - 0x32, 0xbe, 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, \ - 0xfb, 0xf5, 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, \ - 0xee, 0xe2, 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, \ - 0x47, 0xb1, 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, \ - 0xf1, 0x79, 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, \ - 0x6f, 0x27, 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, \ - 0xa1, 0x30, 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, \ - 0x28, 0xd1, 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, \ - 0x09, 0xea, 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, \ - 0xc9, 0xab, 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, \ - 0x9e, 0x99, 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, \ - 0x50, 0x30, 0x4e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, \ - 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, \ - 0x04, 0x16, 0x04, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, \ - 0xf6, 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, \ - 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, \ - 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, \ - 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, \ - 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, \ - 0x03, 0x82, 0x01, 0x01, 0x00, 0x01, 0x13, 0x73, 0x84, 0x3d, 0xf1, 0x1d, \ - 0xfd, 0xb7, 0x09, 0x5b, 0x96, 0x5d, 0x53, 0x7f, 0xd5, 0x80, 0xf3, 0x52, \ - 0xe2, 0xd3, 0x33, 0x87, 0xc8, 0x27, 0x24, 0xff, 0xd5, 0xd8, 0x57, 0x2f, \ - 0x16, 0xd1, 0xb2, 0x94, 0xca, 0x50, 0xab, 0xa6, 0x27, 0x10, 0x16, 0x08, \ - 0xc8, 0x11, 0xc0, 0x2f, 0x80, 0xd1, 0xbe, 0x53, 0x18, 0xe6, 0xb9, 0xd7, \ - 0x18, 0x1a, 0x77, 0x38, 0x34, 0x7c, 0x32, 0x9a, 0x87, 0x0b, 0xa0, 0x2a, \ - 0xb9, 0x14, 0xc2, 0x2f, 0x38, 0xd2, 0xe7, 0xb8, 0x98, 0x7d, 0xff, 0xff, \ - 0xe1, 0x01, 0x50, 0xa9, 0x6f, 0x67, 0xf7, 0x6c, 0xdc, 0xb6, 0xca, 0x6f, \ - 0x73, 0x39, 0x1a, 0x3c, 0xa8, 0x23, 0xaa, 0x8d, 0x4d, 0xa3, 0x75, 0x2a, \ - 0xd1, 0x76, 0xb3, 0xd7, 0x4a, 0xdc, 0xc7, 0x24, 0xd4, 0x3e, 0xb7, 0xf9, \ - 0xc0, 0xd5, 0x51, 0x67, 0x65, 0x74, 0x2a, 0xf9, 0x65, 0xbc, 0x00, 0x15, \ - 0x4b, 0x36, 0xc8, 0xe2, 0x6a, 0x5d, 0x51, 0x7c, 0xed, 0x8e, 0x14, 0x93, \ - 0x4b, 0x90, 0x36, 0x05, 0xe5, 0x90, 0x00, 0x03, 0xab, 0xd3, 0x3a, 0xb5, \ - 0x17, 0xb4, 0xd2, 0x45, 0x52, 0x69, 0x26, 0xce, 0xe3, 0x98, 0x1d, 0x9a, \ - 0x8b, 0xf8, 0xa0, 0x92, 0x1d, 0x48, 0x02, 0x37, 0x2e, 0xc1, 0x5e, 0x95, \ - 0xc2, 0x53, 0xfe, 0xb1, 0xbc, 0x34, 0x82, 0x34, 0x34, 0x36, 0x91, 0x8c, \ - 0x88, 0x7a, 0x67, 0x97, 0x34, 0x40, 0x8b, 0xfb, 0x48, 0x6e, 0xd3, 0xaf, \ - 0x30, 0x81, 0x8e, 0x05, 0x4d, 0x93, 0x21, 0xf6, 0xb1, 0xff, 0x98, 0xea, \ - 0xd5, 0xa8, 0x14, 0xc7, 0x96, 0x8f, 0x99, 0x3e, 0x53, 0x58, 0x08, 0x89, \ - 0x3c, 0xe3, 0x8f, 0xea, 0x5e, 0x71, 0x5e, 0x70, 0xf0, 0xc5, 0xe6, 0x12, \ - 0x35, 0x6a, 0xa2, 0x5f, 0xd1, 0xb2, 0xba, 0xc0, 0x59, 0x8d, 0xec, 0xda, \ - 0x09, 0xa1, 0xda, 0x6e, 0x30, 0xcb, 0x53, 0x4a, 0x90 \ + 0x30, 0x82, 0x03, 0x41, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x03, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ + 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ + 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ + 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, 0x34, 0x30, 0x30, \ + 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, \ + 0x34, 0x30, 0x30, 0x5a, 0x30, 0x3b, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ + 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x54, 0x65, \ + 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, \ + 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, \ + 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, \ + 0x01, 0x00, 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, \ + 0x86, 0xde, 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, \ + 0x99, 0xd4, 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, \ + 0x9b, 0xc5, 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, \ + 0xc0, 0x8d, 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, \ + 0x93, 0xe8, 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, \ + 0xe7, 0x40, 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, \ + 0xf9, 0x3e, 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, \ + 0x29, 0x00, 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, \ + 0xbd, 0x83, 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, \ + 0x60, 0xc3, 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, \ + 0x32, 0xbe, 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, \ + 0xfb, 0xf5, 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, \ + 0xee, 0xe2, 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, \ + 0x47, 0xb1, 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, \ + 0xf1, 0x79, 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, \ + 0x6f, 0x27, 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, \ + 0xa1, 0x30, 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, \ + 0x28, 0xd1, 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, \ + 0x09, 0xea, 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, \ + 0xc9, 0xab, 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, \ + 0x9e, 0x99, 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, \ + 0x50, 0x30, 0x4e, 0x30, 0x0c, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, \ + 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, \ + 0x04, 0x16, 0x04, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, \ + 0xf6, 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, \ + 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, \ + 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, \ + 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, \ + 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, \ + 0x03, 0x82, 0x01, 0x01, 0x00, 0x01, 0x13, 0x73, 0x84, 0x3d, 0xf1, 0x1d, \ + 0xfd, 0xb7, 0x09, 0x5b, 0x96, 0x5d, 0x53, 0x7f, 0xd5, 0x80, 0xf3, 0x52, \ + 0xe2, 0xd3, 0x33, 0x87, 0xc8, 0x27, 0x24, 0xff, 0xd5, 0xd8, 0x57, 0x2f, \ + 0x16, 0xd1, 0xb2, 0x94, 0xca, 0x50, 0xab, 0xa6, 0x27, 0x10, 0x16, 0x08, \ + 0xc8, 0x11, 0xc0, 0x2f, 0x80, 0xd1, 0xbe, 0x53, 0x18, 0xe6, 0xb9, 0xd7, \ + 0x18, 0x1a, 0x77, 0x38, 0x34, 0x7c, 0x32, 0x9a, 0x87, 0x0b, 0xa0, 0x2a, \ + 0xb9, 0x14, 0xc2, 0x2f, 0x38, 0xd2, 0xe7, 0xb8, 0x98, 0x7d, 0xff, 0xff, \ + 0xe1, 0x01, 0x50, 0xa9, 0x6f, 0x67, 0xf7, 0x6c, 0xdc, 0xb6, 0xca, 0x6f, \ + 0x73, 0x39, 0x1a, 0x3c, 0xa8, 0x23, 0xaa, 0x8d, 0x4d, 0xa3, 0x75, 0x2a, \ + 0xd1, 0x76, 0xb3, 0xd7, 0x4a, 0xdc, 0xc7, 0x24, 0xd4, 0x3e, 0xb7, 0xf9, \ + 0xc0, 0xd5, 0x51, 0x67, 0x65, 0x74, 0x2a, 0xf9, 0x65, 0xbc, 0x00, 0x15, \ + 0x4b, 0x36, 0xc8, 0xe2, 0x6a, 0x5d, 0x51, 0x7c, 0xed, 0x8e, 0x14, 0x93, \ + 0x4b, 0x90, 0x36, 0x05, 0xe5, 0x90, 0x00, 0x03, 0xab, 0xd3, 0x3a, 0xb5, \ + 0x17, 0xb4, 0xd2, 0x45, 0x52, 0x69, 0x26, 0xce, 0xe3, 0x98, 0x1d, 0x9a, \ + 0x8b, 0xf8, 0xa0, 0x92, 0x1d, 0x48, 0x02, 0x37, 0x2e, 0xc1, 0x5e, 0x95, \ + 0xc2, 0x53, 0xfe, 0xb1, 0xbc, 0x34, 0x82, 0x34, 0x34, 0x36, 0x91, 0x8c, \ + 0x88, 0x7a, 0x67, 0x97, 0x34, 0x40, 0x8b, 0xfb, 0x48, 0x6e, 0xd3, 0xaf, \ + 0x30, 0x81, 0x8e, 0x05, 0x4d, 0x93, 0x21, 0xf6, 0xb1, 0xff, 0x98, 0xea, \ + 0xd5, 0xa8, 0x14, 0xc7, 0x96, 0x8f, 0x99, 0x3e, 0x53, 0x58, 0x08, 0x89, \ + 0x3c, 0xe3, 0x8f, 0xea, 0x5e, 0x71, 0x5e, 0x70, 0xf0, 0xc5, 0xe6, 0x12, \ + 0x35, 0x6a, 0xa2, 0x5f, 0xd1, 0xb2, 0xba, 0xc0, 0x59, 0x8d, 0xec, 0xda, \ + 0x09, 0xa1, 0xda, 0x6e, 0x30, 0xcb, 0x53, 0x4a, 0x90 \ } /* END FILE */ @@ -385,106 +385,106 @@ /* This was generated from test-ca.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CA_KEY_RSA_DER tests/data_files/test-ca.key.der */ #define TEST_CA_KEY_RSA_DER { \ - 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ - 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, 0x86, 0xde, \ - 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, 0x99, 0xd4, \ - 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, 0x9b, 0xc5, \ - 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, 0xc0, 0x8d, \ - 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, 0x93, 0xe8, \ - 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, 0xe7, 0x40, \ - 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, 0xf9, 0x3e, \ - 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, 0x29, 0x00, \ - 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, 0xbd, 0x83, \ - 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, 0x60, 0xc3, \ - 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, 0x32, 0xbe, \ - 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, 0xfb, 0xf5, \ - 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, 0xee, 0xe2, \ - 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, 0x47, 0xb1, \ - 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, 0xf1, 0x79, \ - 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, 0x6f, 0x27, \ - 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, 0xa1, 0x30, \ - 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, 0x28, 0xd1, \ - 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, 0x09, 0xea, \ - 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, 0xc9, 0xab, \ - 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, 0x9e, 0x99, \ - 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ - 0x00, 0x3f, 0xf7, 0x07, 0xd3, 0x34, 0x6f, 0xdb, 0xc9, 0x37, 0xb7, 0x84, \ - 0xdc, 0x37, 0x45, 0xe1, 0x63, 0xad, 0xb8, 0xb6, 0x75, 0xb1, 0xc7, 0x35, \ - 0xb4, 0x77, 0x2a, 0x5b, 0x77, 0xf9, 0x7e, 0xe0, 0xc1, 0xa3, 0xd1, 0xb7, \ - 0xcb, 0xa9, 0x5a, 0xc1, 0x87, 0xda, 0x5a, 0xfa, 0x17, 0xe4, 0xd5, 0x38, \ - 0x03, 0xde, 0x68, 0x98, 0x81, 0xec, 0xb5, 0xf2, 0x2a, 0x8d, 0xe9, 0x2c, \ - 0xf3, 0xa6, 0xe5, 0x32, 0x17, 0x7f, 0x33, 0x81, 0xe8, 0x38, 0x72, 0xd5, \ - 0x9c, 0xfa, 0x4e, 0xfb, 0x26, 0xf5, 0x15, 0x0b, 0xaf, 0x84, 0x66, 0xab, \ - 0x02, 0xe0, 0x18, 0xd5, 0x91, 0x7c, 0xd6, 0x8f, 0xc9, 0x4b, 0x76, 0x08, \ - 0x2b, 0x1d, 0x81, 0x68, 0x30, 0xe1, 0xfa, 0x70, 0x6c, 0x13, 0x4e, 0x10, \ - 0x03, 0x35, 0x3e, 0xc5, 0xca, 0x58, 0x20, 0x8a, 0x21, 0x18, 0x38, 0xa0, \ - 0x0f, 0xed, 0xc4, 0xbb, 0x45, 0x6f, 0xf5, 0x84, 0x5b, 0xb0, 0xcf, 0x4e, \ - 0x9d, 0x58, 0x13, 0x6b, 0x35, 0x35, 0x69, 0xa1, 0xd2, 0xc4, 0xf2, 0xc1, \ - 0x48, 0x04, 0x20, 0x51, 0xb9, 0x6b, 0xa4, 0x5d, 0xa5, 0x4b, 0x84, 0x88, \ - 0x43, 0x48, 0x99, 0x2c, 0xbb, 0xa4, 0x97, 0xd6, 0xd6, 0x18, 0xf6, 0xec, \ - 0x5c, 0xd1, 0x31, 0x49, 0xc9, 0xf2, 0x8f, 0x0b, 0x4d, 0xef, 0x09, 0x02, \ - 0xfe, 0x7d, 0xfd, 0xbb, 0xaf, 0x2b, 0x83, 0x94, 0x22, 0xc4, 0xa7, 0x3e, \ - 0x66, 0xf5, 0xe0, 0x57, 0xdc, 0xf2, 0xed, 0x2c, 0x3e, 0x81, 0x74, 0x76, \ - 0x1e, 0x96, 0x6f, 0x74, 0x1e, 0x32, 0x0e, 0x14, 0x31, 0xd0, 0x74, 0xf0, \ - 0xf4, 0x07, 0xbd, 0xc3, 0xd1, 0x22, 0xc2, 0xa8, 0x95, 0x92, 0x06, 0x7f, \ - 0x43, 0x02, 0x91, 0xbc, 0xdd, 0x23, 0x01, 0x89, 0x94, 0x20, 0x44, 0x64, \ - 0xf5, 0x1d, 0x67, 0xd2, 0x8f, 0xe8, 0x69, 0xa5, 0x29, 0x25, 0xe6, 0x50, \ - 0x9c, 0xe3, 0xe9, 0xcb, 0x75, 0x02, 0x81, 0x81, 0x00, 0xe2, 0x29, 0x3e, \ - 0xaa, 0x6b, 0xd5, 0x59, 0x1e, 0x9c, 0xe6, 0x47, 0xd5, 0xb6, 0xd7, 0xe3, \ - 0xf1, 0x8e, 0x9e, 0xe9, 0x83, 0x5f, 0x10, 0x9f, 0x63, 0xec, 0x04, 0x44, \ - 0xcc, 0x3f, 0xf8, 0xd9, 0x3a, 0x17, 0xe0, 0x4f, 0xfe, 0xd8, 0x4d, 0xcd, \ - 0x46, 0x54, 0x74, 0xbf, 0x0a, 0xc4, 0x67, 0x9c, 0xa7, 0xd8, 0x89, 0x65, \ - 0x4c, 0xfd, 0x58, 0x2a, 0x47, 0x0f, 0xf4, 0x37, 0xb6, 0x55, 0xb0, 0x1d, \ - 0xed, 0xa7, 0x39, 0xfc, 0x4f, 0xa3, 0xc4, 0x75, 0x3a, 0xa3, 0x98, 0xa7, \ - 0x45, 0xf5, 0x66, 0xcb, 0x7c, 0x65, 0xfb, 0x80, 0x23, 0xe6, 0xff, 0xfd, \ - 0x99, 0x1f, 0x8e, 0x6b, 0xff, 0x5e, 0x93, 0x66, 0xdf, 0x6c, 0x6f, 0xc3, \ - 0xf6, 0x38, 0x2e, 0xff, 0x69, 0xb5, 0xac, 0xae, 0xbb, 0xc6, 0x71, 0x16, \ - 0x6b, 0xd0, 0xf8, 0x22, 0xd9, 0xf8, 0xa2, 0x72, 0x20, 0xd2, 0xe2, 0x3a, \ - 0x70, 0x4b, 0xde, 0xab, 0x2f, 0x02, 0x81, 0x81, 0x00, 0xda, 0x51, 0x9b, \ - 0xb8, 0xb2, 0x2a, 0x14, 0x75, 0x58, 0x40, 0x8d, 0x27, 0x70, 0xfa, 0x31, \ - 0x48, 0xb0, 0x20, 0x21, 0x34, 0xfa, 0x4c, 0x57, 0xa8, 0x11, 0x88, 0xf3, \ - 0xa7, 0xae, 0x21, 0xe9, 0xb6, 0x2b, 0xd1, 0xcd, 0xa7, 0xf8, 0xd8, 0x0c, \ - 0x8a, 0x76, 0x22, 0x35, 0x44, 0xce, 0x3f, 0x25, 0x29, 0x83, 0x7d, 0x79, \ - 0xa7, 0x31, 0xd6, 0xec, 0xb2, 0xbf, 0xda, 0x34, 0xb6, 0xf6, 0xb2, 0x3b, \ - 0xf3, 0x78, 0x5a, 0x04, 0x83, 0x33, 0x3e, 0xa2, 0xe2, 0x81, 0x82, 0x13, \ - 0xd4, 0x35, 0x17, 0x63, 0x9b, 0x9e, 0xc4, 0x8d, 0x91, 0x4c, 0x03, 0x77, \ - 0xc7, 0x71, 0x5b, 0xee, 0x83, 0x6d, 0xd5, 0x78, 0x88, 0xf6, 0x2c, 0x79, \ - 0xc2, 0x4a, 0xb4, 0x79, 0x90, 0x70, 0xbf, 0xdf, 0x34, 0x56, 0x96, 0x71, \ - 0xe3, 0x0e, 0x68, 0x91, 0xbc, 0xea, 0xcb, 0x33, 0xc0, 0xbe, 0x45, 0xd7, \ - 0xfc, 0x30, 0xfd, 0x01, 0x3b, 0x02, 0x81, 0x81, 0x00, 0xd2, 0x9f, 0x2a, \ - 0xb7, 0x38, 0x19, 0xc7, 0x17, 0x95, 0x73, 0x78, 0xae, 0xf5, 0xcb, 0x75, \ - 0x83, 0x7f, 0x19, 0x4b, 0xcb, 0x86, 0xfb, 0x4a, 0x15, 0x9a, 0xb6, 0x17, \ - 0x04, 0x49, 0x07, 0x8d, 0xf6, 0x66, 0x4a, 0x06, 0xf6, 0x05, 0xa7, 0xdf, \ - 0x66, 0x82, 0x3c, 0xff, 0xb6, 0x1d, 0x57, 0x89, 0x33, 0x5f, 0x9c, 0x05, \ - 0x75, 0x7f, 0xf3, 0x5d, 0xdc, 0x34, 0x65, 0x72, 0x85, 0x22, 0xa4, 0x14, \ - 0x1b, 0x41, 0xc3, 0xe4, 0xd0, 0x9e, 0x69, 0xd5, 0xeb, 0x38, 0x74, 0x70, \ - 0x43, 0xdc, 0xd9, 0x50, 0xe4, 0x97, 0x6d, 0x73, 0xd6, 0xfb, 0xc8, 0xa7, \ - 0xfa, 0xb4, 0xc2, 0xc4, 0x9d, 0x5d, 0x0c, 0xd5, 0x9f, 0x79, 0xb3, 0x54, \ - 0xc2, 0xb7, 0x6c, 0x3d, 0x7d, 0xcb, 0x2d, 0xf8, 0xc4, 0xf3, 0x78, 0x5a, \ - 0x33, 0x2a, 0xb8, 0x0c, 0x6d, 0x06, 0xfa, 0xf2, 0x62, 0xd3, 0x42, 0xd0, \ - 0xbd, 0xc8, 0x4a, 0xa5, 0x0d, 0x02, 0x81, 0x81, 0x00, 0xd4, 0xa9, 0x90, \ - 0x15, 0xde, 0xbf, 0x2c, 0xc4, 0x8d, 0x9d, 0xfb, 0xa1, 0xc2, 0xe4, 0x83, \ - 0xe3, 0x79, 0x65, 0x22, 0xd3, 0xb7, 0x49, 0x6c, 0x4d, 0x94, 0x1f, 0x22, \ - 0xb1, 0x60, 0xe7, 0x3a, 0x00, 0xb1, 0x38, 0xa2, 0xab, 0x0f, 0xb4, 0x6c, \ - 0xaa, 0xe7, 0x9e, 0x34, 0xe3, 0x7c, 0x40, 0x78, 0x53, 0xb2, 0xf9, 0x23, \ - 0xea, 0xa0, 0x9a, 0xea, 0x60, 0xc8, 0x8f, 0xa6, 0xaf, 0xdf, 0x29, 0x09, \ - 0x4b, 0x06, 0x1e, 0x31, 0xad, 0x17, 0xda, 0xd8, 0xd1, 0xe9, 0x33, 0xab, \ - 0x5b, 0x18, 0x08, 0x5b, 0x87, 0xf8, 0xa5, 0x1f, 0xfd, 0xbb, 0xdc, 0xd8, \ - 0xed, 0x97, 0x57, 0xe4, 0xc3, 0x73, 0xd6, 0xf0, 0x9e, 0x01, 0xa6, 0x9b, \ - 0x48, 0x8e, 0x7a, 0xb4, 0xbb, 0xe5, 0x88, 0x91, 0xc5, 0x2a, 0xdf, 0x4b, \ - 0xba, 0xd0, 0x8b, 0x3e, 0x03, 0x97, 0x77, 0x2f, 0x47, 0x7e, 0x51, 0x0c, \ - 0xae, 0x65, 0x8d, 0xde, 0x87, 0x02, 0x81, 0x80, 0x20, 0x24, 0x0f, 0xd2, \ - 0xaf, 0xc2, 0x28, 0x3b, 0x97, 0x20, 0xb2, 0x92, 0x49, 0xeb, 0x09, 0x68, \ - 0x40, 0xb2, 0xbe, 0xd1, 0xc3, 0x83, 0x94, 0x34, 0x38, 0xd6, 0xc9, 0xec, \ - 0x34, 0x09, 0xf9, 0x41, 0x6d, 0x5c, 0x42, 0x94, 0xf7, 0x04, 0xfc, 0x32, \ - 0x39, 0x69, 0xbc, 0x1c, 0xfb, 0x3e, 0x61, 0x98, 0xc0, 0x80, 0xd8, 0x36, \ - 0x47, 0xc3, 0x6d, 0xc2, 0x2e, 0xe7, 0x81, 0x2a, 0x17, 0x34, 0x64, 0x30, \ - 0x4e, 0x96, 0xbb, 0x26, 0x16, 0xb9, 0x41, 0x36, 0xfe, 0x8a, 0xd6, 0x53, \ - 0x7c, 0xaa, 0xec, 0x39, 0x42, 0x50, 0xef, 0xe3, 0xb3, 0x01, 0x28, 0x32, \ - 0xca, 0x6d, 0xf5, 0x9a, 0x1e, 0x9f, 0x37, 0xbe, 0xfe, 0x38, 0x20, 0x22, \ - 0x91, 0x8c, 0xcd, 0x95, 0x02, 0xf2, 0x4d, 0x6f, 0x1a, 0xb4, 0x43, 0xf0, \ - 0x19, 0xdf, 0x65, 0xc0, 0x92, 0xe7, 0x9d, 0x2f, 0x09, 0xe7, 0xec, 0x69, \ - 0xa8, 0xc2, 0x8f, 0x0d \ + 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ + 0xc0, 0xdf, 0x37, 0xfc, 0x17, 0xbb, 0xe0, 0x96, 0x9d, 0x3f, 0x86, 0xde, \ + 0x96, 0x32, 0x7d, 0x44, 0xa5, 0x16, 0xa0, 0xcd, 0x21, 0xf1, 0x99, 0xd4, \ + 0xec, 0xea, 0xcb, 0x7c, 0x18, 0x58, 0x08, 0x94, 0xa5, 0xec, 0x9b, 0xc5, \ + 0x8b, 0xdf, 0x1a, 0x1e, 0x99, 0x38, 0x99, 0x87, 0x1e, 0x7b, 0xc0, 0x8d, \ + 0x39, 0xdf, 0x38, 0x5d, 0x70, 0x78, 0x07, 0xd3, 0x9e, 0xd9, 0x93, 0xe8, \ + 0xb9, 0x72, 0x51, 0xc5, 0xce, 0xa3, 0x30, 0x52, 0xa9, 0xf2, 0xe7, 0x40, \ + 0x70, 0x14, 0xcb, 0x44, 0xa2, 0x72, 0x0b, 0xc2, 0xe5, 0x40, 0xf9, 0x3e, \ + 0xe5, 0xa6, 0x0e, 0xb3, 0xf9, 0xec, 0x4a, 0x63, 0xc0, 0xb8, 0x29, 0x00, \ + 0x74, 0x9c, 0x57, 0x3b, 0xa8, 0xa5, 0x04, 0x90, 0x71, 0xf1, 0xbd, 0x83, \ + 0xd9, 0x3f, 0xd6, 0xa5, 0xe2, 0x3c, 0x2a, 0x8f, 0xef, 0x27, 0x60, 0xc3, \ + 0xc6, 0x9f, 0xcb, 0xba, 0xec, 0x60, 0x7d, 0xb7, 0xe6, 0x84, 0x32, 0xbe, \ + 0x4f, 0xfb, 0x58, 0x26, 0x22, 0x03, 0x5b, 0xd4, 0xb4, 0xd5, 0xfb, 0xf5, \ + 0xe3, 0x96, 0x2e, 0x70, 0xc0, 0xe4, 0x2e, 0xbd, 0xfc, 0x2e, 0xee, 0xe2, \ + 0x41, 0x55, 0xc0, 0x34, 0x2e, 0x7d, 0x24, 0x72, 0x69, 0xcb, 0x47, 0xb1, \ + 0x14, 0x40, 0x83, 0x7d, 0x67, 0xf4, 0x86, 0xf6, 0x31, 0xab, 0xf1, 0x79, \ + 0xa4, 0xb2, 0xb5, 0x2e, 0x12, 0xf9, 0x84, 0x17, 0xf0, 0x62, 0x6f, 0x27, \ + 0x3e, 0x13, 0x58, 0xb1, 0x54, 0x0d, 0x21, 0x9a, 0x73, 0x37, 0xa1, 0x30, \ + 0xcf, 0x6f, 0x92, 0xdc, 0xf6, 0xe9, 0xfc, 0xac, 0xdb, 0x2e, 0x28, 0xd1, \ + 0x7e, 0x02, 0x4b, 0x23, 0xa0, 0x15, 0xf2, 0x38, 0x65, 0x64, 0x09, 0xea, \ + 0x0c, 0x6e, 0x8e, 0x1b, 0x17, 0xa0, 0x71, 0xc8, 0xb3, 0x9b, 0xc9, 0xab, \ + 0xe9, 0xc3, 0xf2, 0xcf, 0x87, 0x96, 0x8f, 0x80, 0x02, 0x32, 0x9e, 0x99, \ + 0x58, 0x6f, 0xa2, 0xd5, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ + 0x00, 0x3f, 0xf7, 0x07, 0xd3, 0x34, 0x6f, 0xdb, 0xc9, 0x37, 0xb7, 0x84, \ + 0xdc, 0x37, 0x45, 0xe1, 0x63, 0xad, 0xb8, 0xb6, 0x75, 0xb1, 0xc7, 0x35, \ + 0xb4, 0x77, 0x2a, 0x5b, 0x77, 0xf9, 0x7e, 0xe0, 0xc1, 0xa3, 0xd1, 0xb7, \ + 0xcb, 0xa9, 0x5a, 0xc1, 0x87, 0xda, 0x5a, 0xfa, 0x17, 0xe4, 0xd5, 0x38, \ + 0x03, 0xde, 0x68, 0x98, 0x81, 0xec, 0xb5, 0xf2, 0x2a, 0x8d, 0xe9, 0x2c, \ + 0xf3, 0xa6, 0xe5, 0x32, 0x17, 0x7f, 0x33, 0x81, 0xe8, 0x38, 0x72, 0xd5, \ + 0x9c, 0xfa, 0x4e, 0xfb, 0x26, 0xf5, 0x15, 0x0b, 0xaf, 0x84, 0x66, 0xab, \ + 0x02, 0xe0, 0x18, 0xd5, 0x91, 0x7c, 0xd6, 0x8f, 0xc9, 0x4b, 0x76, 0x08, \ + 0x2b, 0x1d, 0x81, 0x68, 0x30, 0xe1, 0xfa, 0x70, 0x6c, 0x13, 0x4e, 0x10, \ + 0x03, 0x35, 0x3e, 0xc5, 0xca, 0x58, 0x20, 0x8a, 0x21, 0x18, 0x38, 0xa0, \ + 0x0f, 0xed, 0xc4, 0xbb, 0x45, 0x6f, 0xf5, 0x84, 0x5b, 0xb0, 0xcf, 0x4e, \ + 0x9d, 0x58, 0x13, 0x6b, 0x35, 0x35, 0x69, 0xa1, 0xd2, 0xc4, 0xf2, 0xc1, \ + 0x48, 0x04, 0x20, 0x51, 0xb9, 0x6b, 0xa4, 0x5d, 0xa5, 0x4b, 0x84, 0x88, \ + 0x43, 0x48, 0x99, 0x2c, 0xbb, 0xa4, 0x97, 0xd6, 0xd6, 0x18, 0xf6, 0xec, \ + 0x5c, 0xd1, 0x31, 0x49, 0xc9, 0xf2, 0x8f, 0x0b, 0x4d, 0xef, 0x09, 0x02, \ + 0xfe, 0x7d, 0xfd, 0xbb, 0xaf, 0x2b, 0x83, 0x94, 0x22, 0xc4, 0xa7, 0x3e, \ + 0x66, 0xf5, 0xe0, 0x57, 0xdc, 0xf2, 0xed, 0x2c, 0x3e, 0x81, 0x74, 0x76, \ + 0x1e, 0x96, 0x6f, 0x74, 0x1e, 0x32, 0x0e, 0x14, 0x31, 0xd0, 0x74, 0xf0, \ + 0xf4, 0x07, 0xbd, 0xc3, 0xd1, 0x22, 0xc2, 0xa8, 0x95, 0x92, 0x06, 0x7f, \ + 0x43, 0x02, 0x91, 0xbc, 0xdd, 0x23, 0x01, 0x89, 0x94, 0x20, 0x44, 0x64, \ + 0xf5, 0x1d, 0x67, 0xd2, 0x8f, 0xe8, 0x69, 0xa5, 0x29, 0x25, 0xe6, 0x50, \ + 0x9c, 0xe3, 0xe9, 0xcb, 0x75, 0x02, 0x81, 0x81, 0x00, 0xe2, 0x29, 0x3e, \ + 0xaa, 0x6b, 0xd5, 0x59, 0x1e, 0x9c, 0xe6, 0x47, 0xd5, 0xb6, 0xd7, 0xe3, \ + 0xf1, 0x8e, 0x9e, 0xe9, 0x83, 0x5f, 0x10, 0x9f, 0x63, 0xec, 0x04, 0x44, \ + 0xcc, 0x3f, 0xf8, 0xd9, 0x3a, 0x17, 0xe0, 0x4f, 0xfe, 0xd8, 0x4d, 0xcd, \ + 0x46, 0x54, 0x74, 0xbf, 0x0a, 0xc4, 0x67, 0x9c, 0xa7, 0xd8, 0x89, 0x65, \ + 0x4c, 0xfd, 0x58, 0x2a, 0x47, 0x0f, 0xf4, 0x37, 0xb6, 0x55, 0xb0, 0x1d, \ + 0xed, 0xa7, 0x39, 0xfc, 0x4f, 0xa3, 0xc4, 0x75, 0x3a, 0xa3, 0x98, 0xa7, \ + 0x45, 0xf5, 0x66, 0xcb, 0x7c, 0x65, 0xfb, 0x80, 0x23, 0xe6, 0xff, 0xfd, \ + 0x99, 0x1f, 0x8e, 0x6b, 0xff, 0x5e, 0x93, 0x66, 0xdf, 0x6c, 0x6f, 0xc3, \ + 0xf6, 0x38, 0x2e, 0xff, 0x69, 0xb5, 0xac, 0xae, 0xbb, 0xc6, 0x71, 0x16, \ + 0x6b, 0xd0, 0xf8, 0x22, 0xd9, 0xf8, 0xa2, 0x72, 0x20, 0xd2, 0xe2, 0x3a, \ + 0x70, 0x4b, 0xde, 0xab, 0x2f, 0x02, 0x81, 0x81, 0x00, 0xda, 0x51, 0x9b, \ + 0xb8, 0xb2, 0x2a, 0x14, 0x75, 0x58, 0x40, 0x8d, 0x27, 0x70, 0xfa, 0x31, \ + 0x48, 0xb0, 0x20, 0x21, 0x34, 0xfa, 0x4c, 0x57, 0xa8, 0x11, 0x88, 0xf3, \ + 0xa7, 0xae, 0x21, 0xe9, 0xb6, 0x2b, 0xd1, 0xcd, 0xa7, 0xf8, 0xd8, 0x0c, \ + 0x8a, 0x76, 0x22, 0x35, 0x44, 0xce, 0x3f, 0x25, 0x29, 0x83, 0x7d, 0x79, \ + 0xa7, 0x31, 0xd6, 0xec, 0xb2, 0xbf, 0xda, 0x34, 0xb6, 0xf6, 0xb2, 0x3b, \ + 0xf3, 0x78, 0x5a, 0x04, 0x83, 0x33, 0x3e, 0xa2, 0xe2, 0x81, 0x82, 0x13, \ + 0xd4, 0x35, 0x17, 0x63, 0x9b, 0x9e, 0xc4, 0x8d, 0x91, 0x4c, 0x03, 0x77, \ + 0xc7, 0x71, 0x5b, 0xee, 0x83, 0x6d, 0xd5, 0x78, 0x88, 0xf6, 0x2c, 0x79, \ + 0xc2, 0x4a, 0xb4, 0x79, 0x90, 0x70, 0xbf, 0xdf, 0x34, 0x56, 0x96, 0x71, \ + 0xe3, 0x0e, 0x68, 0x91, 0xbc, 0xea, 0xcb, 0x33, 0xc0, 0xbe, 0x45, 0xd7, \ + 0xfc, 0x30, 0xfd, 0x01, 0x3b, 0x02, 0x81, 0x81, 0x00, 0xd2, 0x9f, 0x2a, \ + 0xb7, 0x38, 0x19, 0xc7, 0x17, 0x95, 0x73, 0x78, 0xae, 0xf5, 0xcb, 0x75, \ + 0x83, 0x7f, 0x19, 0x4b, 0xcb, 0x86, 0xfb, 0x4a, 0x15, 0x9a, 0xb6, 0x17, \ + 0x04, 0x49, 0x07, 0x8d, 0xf6, 0x66, 0x4a, 0x06, 0xf6, 0x05, 0xa7, 0xdf, \ + 0x66, 0x82, 0x3c, 0xff, 0xb6, 0x1d, 0x57, 0x89, 0x33, 0x5f, 0x9c, 0x05, \ + 0x75, 0x7f, 0xf3, 0x5d, 0xdc, 0x34, 0x65, 0x72, 0x85, 0x22, 0xa4, 0x14, \ + 0x1b, 0x41, 0xc3, 0xe4, 0xd0, 0x9e, 0x69, 0xd5, 0xeb, 0x38, 0x74, 0x70, \ + 0x43, 0xdc, 0xd9, 0x50, 0xe4, 0x97, 0x6d, 0x73, 0xd6, 0xfb, 0xc8, 0xa7, \ + 0xfa, 0xb4, 0xc2, 0xc4, 0x9d, 0x5d, 0x0c, 0xd5, 0x9f, 0x79, 0xb3, 0x54, \ + 0xc2, 0xb7, 0x6c, 0x3d, 0x7d, 0xcb, 0x2d, 0xf8, 0xc4, 0xf3, 0x78, 0x5a, \ + 0x33, 0x2a, 0xb8, 0x0c, 0x6d, 0x06, 0xfa, 0xf2, 0x62, 0xd3, 0x42, 0xd0, \ + 0xbd, 0xc8, 0x4a, 0xa5, 0x0d, 0x02, 0x81, 0x81, 0x00, 0xd4, 0xa9, 0x90, \ + 0x15, 0xde, 0xbf, 0x2c, 0xc4, 0x8d, 0x9d, 0xfb, 0xa1, 0xc2, 0xe4, 0x83, \ + 0xe3, 0x79, 0x65, 0x22, 0xd3, 0xb7, 0x49, 0x6c, 0x4d, 0x94, 0x1f, 0x22, \ + 0xb1, 0x60, 0xe7, 0x3a, 0x00, 0xb1, 0x38, 0xa2, 0xab, 0x0f, 0xb4, 0x6c, \ + 0xaa, 0xe7, 0x9e, 0x34, 0xe3, 0x7c, 0x40, 0x78, 0x53, 0xb2, 0xf9, 0x23, \ + 0xea, 0xa0, 0x9a, 0xea, 0x60, 0xc8, 0x8f, 0xa6, 0xaf, 0xdf, 0x29, 0x09, \ + 0x4b, 0x06, 0x1e, 0x31, 0xad, 0x17, 0xda, 0xd8, 0xd1, 0xe9, 0x33, 0xab, \ + 0x5b, 0x18, 0x08, 0x5b, 0x87, 0xf8, 0xa5, 0x1f, 0xfd, 0xbb, 0xdc, 0xd8, \ + 0xed, 0x97, 0x57, 0xe4, 0xc3, 0x73, 0xd6, 0xf0, 0x9e, 0x01, 0xa6, 0x9b, \ + 0x48, 0x8e, 0x7a, 0xb4, 0xbb, 0xe5, 0x88, 0x91, 0xc5, 0x2a, 0xdf, 0x4b, \ + 0xba, 0xd0, 0x8b, 0x3e, 0x03, 0x97, 0x77, 0x2f, 0x47, 0x7e, 0x51, 0x0c, \ + 0xae, 0x65, 0x8d, 0xde, 0x87, 0x02, 0x81, 0x80, 0x20, 0x24, 0x0f, 0xd2, \ + 0xaf, 0xc2, 0x28, 0x3b, 0x97, 0x20, 0xb2, 0x92, 0x49, 0xeb, 0x09, 0x68, \ + 0x40, 0xb2, 0xbe, 0xd1, 0xc3, 0x83, 0x94, 0x34, 0x38, 0xd6, 0xc9, 0xec, \ + 0x34, 0x09, 0xf9, 0x41, 0x6d, 0x5c, 0x42, 0x94, 0xf7, 0x04, 0xfc, 0x32, \ + 0x39, 0x69, 0xbc, 0x1c, 0xfb, 0x3e, 0x61, 0x98, 0xc0, 0x80, 0xd8, 0x36, \ + 0x47, 0xc3, 0x6d, 0xc2, 0x2e, 0xe7, 0x81, 0x2a, 0x17, 0x34, 0x64, 0x30, \ + 0x4e, 0x96, 0xbb, 0x26, 0x16, 0xb9, 0x41, 0x36, 0xfe, 0x8a, 0xd6, 0x53, \ + 0x7c, 0xaa, 0xec, 0x39, 0x42, 0x50, 0xef, 0xe3, 0xb3, 0x01, 0x28, 0x32, \ + 0xca, 0x6d, 0xf5, 0x9a, 0x1e, 0x9f, 0x37, 0xbe, 0xfe, 0x38, 0x20, 0x22, \ + 0x91, 0x8c, 0xcd, 0x95, 0x02, 0xf2, 0x4d, 0x6f, 0x1a, 0xb4, 0x43, 0xf0, \ + 0x19, 0xdf, 0x65, 0xc0, 0x92, 0xe7, 0x9d, 0x2f, 0x09, 0xe7, 0xec, 0x69, \ + 0xa8, 0xc2, 0x8f, 0x0d \ } /* END FILE */ @@ -523,52 +523,52 @@ /* This is generated from tests/data_files/server5.crt.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_SRV_CRT_EC_DER tests/data_files/server5.crt.der */ #define TEST_SRV_CRT_EC_DER { \ - 0x30, 0x82, 0x02, 0x1f, 0x30, 0x82, 0x01, 0xa5, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x09, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ - 0x3d, 0x04, 0x03, 0x02, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, \ - 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, \ - 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x33, 0x30, 0x39, 0x32, 0x34, 0x31, 0x35, 0x35, 0x32, 0x30, 0x34, \ - 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x39, 0x32, 0x32, 0x31, 0x35, 0x35, \ - 0x32, 0x30, 0x34, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, \ - 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x59, \ - 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, \ - 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, \ - 0x04, 0x37, 0xcc, 0x56, 0xd9, 0x76, 0x09, 0x1e, 0x5a, 0x72, 0x3e, 0xc7, \ - 0x59, 0x2d, 0xff, 0x20, 0x6e, 0xee, 0x7c, 0xf9, 0x06, 0x91, 0x74, 0xd0, \ - 0xad, 0x14, 0xb5, 0xf7, 0x68, 0x22, 0x59, 0x62, 0x92, 0x4e, 0xe5, 0x00, \ - 0xd8, 0x23, 0x11, 0xff, 0xea, 0x2f, 0xd2, 0x34, 0x5d, 0x5d, 0x16, 0xbd, \ - 0x8a, 0x88, 0xc2, 0x6b, 0x77, 0x0d, 0x55, 0xcd, 0x8a, 0x2a, 0x0e, 0xfa, \ - 0x01, 0xc8, 0xb4, 0xed, 0xff, 0xa3, 0x81, 0x9d, 0x30, 0x81, 0x9a, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, \ - 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x50, 0x61, 0xa5, \ - 0x8f, 0xd4, 0x07, 0xd9, 0xd7, 0x82, 0x01, 0x0c, 0xe5, 0x65, 0x7f, 0x8c, \ - 0x63, 0x46, 0xa7, 0x13, 0xbe, 0x30, 0x6e, 0x06, 0x03, 0x55, 0x1d, 0x23, \ - 0x04, 0x67, 0x30, 0x65, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, 0x49, 0x01, \ - 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, 0xdb, 0xfb, \ - 0x36, 0x7c, 0xa1, 0x42, 0xa4, 0x40, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, \ - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ - 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, \ - 0x03, 0x13, 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, \ - 0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x82, 0x09, \ - 0x00, 0xc1, 0x43, 0xe2, 0x7e, 0x62, 0x43, 0xcc, 0xe8, 0x30, 0x0a, 0x06, \ - 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x68, 0x00, \ - 0x30, 0x65, 0x02, 0x31, 0x00, 0x9a, 0x2c, 0x5c, 0xd7, 0xa6, 0xdb, 0xa2, \ - 0xe5, 0x64, 0x0d, 0xf0, 0xb9, 0x4e, 0xdd, 0xd7, 0x61, 0xd6, 0x13, 0x31, \ - 0xc7, 0xab, 0x73, 0x80, 0xbb, 0xd3, 0xd3, 0x73, 0x13, 0x54, 0xad, 0x92, \ - 0x0b, 0x5d, 0xab, 0xd0, 0xbc, 0xf7, 0xae, 0x2f, 0xe6, 0xa1, 0x21, 0x29, \ - 0x35, 0x95, 0xaa, 0x3e, 0x39, 0x02, 0x30, 0x21, 0x36, 0x7f, 0x9d, 0xc6, \ - 0x5d, 0xc6, 0x0b, 0xab, 0x27, 0xf2, 0x25, 0x1d, 0x3b, 0xf1, 0xcf, 0xf1, \ - 0x35, 0x25, 0x14, 0xe7, 0xe5, 0xf1, 0x97, 0xb5, 0x59, 0xe3, 0x5e, 0x15, \ - 0x7c, 0x66, 0xb9, 0x90, 0x7b, 0xc7, 0x01, 0x10, 0x4f, 0x73, 0xc6, 0x00, \ - 0x21, 0x52, 0x2a, 0x0e, 0xf1, 0xc7, 0xd5 \ + 0x30, 0x82, 0x02, 0x1f, 0x30, 0x82, 0x01, 0xa5, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x09, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ + 0x3d, 0x04, 0x03, 0x02, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, \ + 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, 0x54, 0x65, \ + 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x33, 0x30, 0x39, 0x32, 0x34, 0x31, 0x35, 0x35, 0x32, 0x30, 0x34, \ + 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x39, 0x32, 0x32, 0x31, 0x35, 0x35, \ + 0x32, 0x30, 0x34, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, \ + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x59, \ + 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, \ + 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, \ + 0x04, 0x37, 0xcc, 0x56, 0xd9, 0x76, 0x09, 0x1e, 0x5a, 0x72, 0x3e, 0xc7, \ + 0x59, 0x2d, 0xff, 0x20, 0x6e, 0xee, 0x7c, 0xf9, 0x06, 0x91, 0x74, 0xd0, \ + 0xad, 0x14, 0xb5, 0xf7, 0x68, 0x22, 0x59, 0x62, 0x92, 0x4e, 0xe5, 0x00, \ + 0xd8, 0x23, 0x11, 0xff, 0xea, 0x2f, 0xd2, 0x34, 0x5d, 0x5d, 0x16, 0xbd, \ + 0x8a, 0x88, 0xc2, 0x6b, 0x77, 0x0d, 0x55, 0xcd, 0x8a, 0x2a, 0x0e, 0xfa, \ + 0x01, 0xc8, 0xb4, 0xed, 0xff, 0xa3, 0x81, 0x9d, 0x30, 0x81, 0x9a, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, \ + 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x50, 0x61, 0xa5, \ + 0x8f, 0xd4, 0x07, 0xd9, 0xd7, 0x82, 0x01, 0x0c, 0xe5, 0x65, 0x7f, 0x8c, \ + 0x63, 0x46, 0xa7, 0x13, 0xbe, 0x30, 0x6e, 0x06, 0x03, 0x55, 0x1d, 0x23, \ + 0x04, 0x67, 0x30, 0x65, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, 0x49, 0x01, \ + 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, 0xdb, 0xfb, \ + 0x36, 0x7c, 0xa1, 0x42, 0xa4, 0x40, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, \ + 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ + 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ + 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, \ + 0x03, 0x13, 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x73, 0x73, 0x6c, 0x20, \ + 0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x82, 0x09, \ + 0x00, 0xc1, 0x43, 0xe2, 0x7e, 0x62, 0x43, 0xcc, 0xe8, 0x30, 0x0a, 0x06, \ + 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x68, 0x00, \ + 0x30, 0x65, 0x02, 0x31, 0x00, 0x9a, 0x2c, 0x5c, 0xd7, 0xa6, 0xdb, 0xa2, \ + 0xe5, 0x64, 0x0d, 0xf0, 0xb9, 0x4e, 0xdd, 0xd7, 0x61, 0xd6, 0x13, 0x31, \ + 0xc7, 0xab, 0x73, 0x80, 0xbb, 0xd3, 0xd3, 0x73, 0x13, 0x54, 0xad, 0x92, \ + 0x0b, 0x5d, 0xab, 0xd0, 0xbc, 0xf7, 0xae, 0x2f, 0xe6, 0xa1, 0x21, 0x29, \ + 0x35, 0x95, 0xaa, 0x3e, 0x39, 0x02, 0x30, 0x21, 0x36, 0x7f, 0x9d, 0xc6, \ + 0x5d, 0xc6, 0x0b, 0xab, 0x27, 0xf2, 0x25, 0x1d, 0x3b, 0xf1, 0xcf, 0xf1, \ + 0x35, 0x25, 0x14, 0xe7, 0xe5, 0xf1, 0x97, 0xb5, 0x59, 0xe3, 0x5e, 0x15, \ + 0x7c, 0x66, 0xb9, 0x90, 0x7b, 0xc7, 0x01, 0x10, 0x4f, 0x73, 0xc6, 0x00, \ + 0x21, 0x52, 0x2a, 0x0e, 0xf1, 0xc7, 0xd5 \ } /* END FILE */ @@ -585,17 +585,17 @@ /* This is generated from tests/data_files/server5.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_SRV_KEY_EC_DER tests/data_files/server5.key.der */ #define TEST_SRV_KEY_EC_DER { \ - 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xf1, 0x2a, 0x13, 0x20, 0x76, \ - 0x02, 0x70, 0xa8, 0x3c, 0xbf, 0xfd, 0x53, 0xf6, 0x03, 0x1e, 0xf7, 0x6a, \ - 0x5d, 0x86, 0xc8, 0xa2, 0x04, 0xf2, 0xc3, 0x0c, 0xa9, 0xeb, 0xf5, 0x1f, \ - 0x0f, 0x0e, 0xa7, 0xa0, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ - 0x03, 0x01, 0x07, 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x37, 0xcc, 0x56, \ - 0xd9, 0x76, 0x09, 0x1e, 0x5a, 0x72, 0x3e, 0xc7, 0x59, 0x2d, 0xff, 0x20, \ - 0x6e, 0xee, 0x7c, 0xf9, 0x06, 0x91, 0x74, 0xd0, 0xad, 0x14, 0xb5, 0xf7, \ - 0x68, 0x22, 0x59, 0x62, 0x92, 0x4e, 0xe5, 0x00, 0xd8, 0x23, 0x11, 0xff, \ - 0xea, 0x2f, 0xd2, 0x34, 0x5d, 0x5d, 0x16, 0xbd, 0x8a, 0x88, 0xc2, 0x6b, \ - 0x77, 0x0d, 0x55, 0xcd, 0x8a, 0x2a, 0x0e, 0xfa, 0x01, 0xc8, 0xb4, 0xed, \ - 0xff \ + 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xf1, 0x2a, 0x13, 0x20, 0x76, \ + 0x02, 0x70, 0xa8, 0x3c, 0xbf, 0xfd, 0x53, 0xf6, 0x03, 0x1e, 0xf7, 0x6a, \ + 0x5d, 0x86, 0xc8, 0xa2, 0x04, 0xf2, 0xc3, 0x0c, 0xa9, 0xeb, 0xf5, 0x1f, \ + 0x0f, 0x0e, 0xa7, 0xa0, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ + 0x03, 0x01, 0x07, 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x37, 0xcc, 0x56, \ + 0xd9, 0x76, 0x09, 0x1e, 0x5a, 0x72, 0x3e, 0xc7, 0x59, 0x2d, 0xff, 0x20, \ + 0x6e, 0xee, 0x7c, 0xf9, 0x06, 0x91, 0x74, 0xd0, 0xad, 0x14, 0xb5, 0xf7, \ + 0x68, 0x22, 0x59, 0x62, 0x92, 0x4e, 0xe5, 0x00, 0xd8, 0x23, 0x11, 0xff, \ + 0xea, 0x2f, 0xd2, 0x34, 0x5d, 0x5d, 0x16, 0xbd, 0x8a, 0x88, 0xc2, 0x6b, \ + 0x77, 0x0d, 0x55, 0xcd, 0x8a, 0x2a, 0x0e, 0xfa, 0x01, 0xc8, 0xb4, 0xed, \ + 0xff \ } /* END FILE */ @@ -627,175 +627,175 @@ /* This is taken from tests/data_files/server2-sha256.crt.der. */ /* BEGIN FILE binary macro TEST_SRV_CRT_RSA_SHA256_DER tests/data_files/server2-sha256.crt.der */ #define TEST_SRV_CRT_RSA_SHA256_DER { \ - 0x30, 0x82, 0x03, 0x37, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ - 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ - 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ - 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ - 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ - 0x34, 0x30, 0x36, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ - 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x82, \ - 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, \ - 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, \ - 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, \ - 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, 0xb8, 0x99, 0xac, 0x0e, 0x78, \ - 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, 0x16, 0xd0, 0x5a, 0xe4, 0xcd, \ - 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, 0x96, 0xa7, 0x52, 0xb4, 0x90, \ - 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, 0xfc, 0xb6, 0x34, 0xac, 0x24, \ - 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, 0xb0, 0x28, 0x7d, 0xa1, 0xda, \ - 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, 0xfe, 0xc1, 0x04, 0x52, 0xb3, \ - 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, 0xd8, 0x90, 0xc1, 0x61, 0xb4, \ - 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, 0xab, 0x74, 0x5e, 0x07, 0x7d, \ - 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, 0xd9, 0x0d, 0x1c, 0x2d, 0x49, \ - 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, 0x0b, 0x8a, 0x4f, 0x69, 0x0c, \ - 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, 0x66, 0x7d, 0xae, 0x54, 0x2b, \ - 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, 0xc3, 0xcd, 0x40, 0x49, 0x08, \ - 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, 0x46, 0xbf, 0xd0, 0xb8, 0xaa, \ - 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, 0x1e, 0x44, 0x18, 0x0f, 0x0f, \ - 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, 0x18, 0xc6, 0x62, 0x2f, 0xc7, \ - 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, 0x27, 0x89, 0x29, 0x01, 0xc5, \ - 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, 0x4a, 0x0e, 0xef, 0xd6, 0xde, \ - 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, 0x7a, 0xc4, 0x02, 0x3c, 0x9a, \ - 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, 0xcb, 0x73, 0x4b, 0x52, 0x96, \ - 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, 0x39, 0x5a, 0xd3, 0x0f, 0xb0, \ - 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, 0x12, 0x01, 0x30, 0x97, 0x02, \ - 0x03, 0x01, 0x00, 0x01, 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, \ - 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa5, 0x05, 0xe8, 0x64, 0xb8, 0xdc, \ - 0xdf, 0x60, 0x0f, 0x50, 0x12, 0x4d, 0x60, 0xa8, 0x64, 0xaf, 0x4d, 0x8b, \ - 0x43, 0x93, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, \ - 0x16, 0x80, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, \ - 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, \ - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, \ - 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x2e, 0x3a, 0xe4, 0x52, 0x61, \ - 0x3e, 0xa7, 0xa5, 0xef, 0x32, 0x67, 0x80, 0x72, 0x07, 0x26, 0xba, 0xa3, \ - 0xff, 0x05, 0x40, 0xc4, 0x60, 0x05, 0x39, 0x31, 0x77, 0xf7, 0xa5, 0xca, \ - 0x01, 0x31, 0x80, 0xa7, 0xe1, 0xd1, 0x0a, 0xa2, 0x7c, 0xd5, 0x1c, 0xba, \ - 0xd0, 0x23, 0x4a, 0xd6, 0x30, 0xf3, 0x93, 0xc7, 0x6f, 0xe8, 0xce, 0x94, \ - 0x1e, 0x84, 0xbb, 0x44, 0x81, 0x62, 0x33, 0xff, 0x6b, 0x5d, 0x00, 0x9b, \ - 0x25, 0xf8, 0x8f, 0x0f, 0x9c, 0x4c, 0x4d, 0xe8, 0xd9, 0xa7, 0x99, 0xf9, \ - 0x51, 0x81, 0xc0, 0x9b, 0x1b, 0x31, 0x0d, 0xa6, 0xb3, 0x7c, 0x0e, 0x45, \ - 0xb8, 0x18, 0x64, 0x7e, 0x89, 0x0a, 0x2b, 0xa8, 0xc3, 0xe0, 0x4a, 0xbd, \ - 0xd4, 0x2f, 0x78, 0xc4, 0x62, 0x9b, 0xe9, 0x7e, 0x3f, 0x56, 0x46, 0x8f, \ - 0x17, 0xb7, 0x2a, 0xa0, 0x10, 0x70, 0xfd, 0xb1, 0xf1, 0x6b, 0x05, 0xdc, \ - 0xd1, 0x41, 0x0f, 0x8e, 0xa6, 0xb2, 0x88, 0x1a, 0x42, 0x61, 0x4f, 0xeb, \ - 0x26, 0x85, 0x59, 0x80, 0xba, 0x85, 0x54, 0xfe, 0xcf, 0xc7, 0x7b, 0x2f, \ - 0x6b, 0x59, 0xce, 0xac, 0xdc, 0x7c, 0xac, 0xf3, 0xc8, 0xd6, 0x12, 0x7e, \ - 0x64, 0xe8, 0x3c, 0x99, 0xa8, 0x8f, 0x4f, 0x11, 0xd9, 0x9c, 0x15, 0x4b, \ - 0x6a, 0x44, 0x92, 0x2d, 0x0c, 0xbf, 0xb1, 0x67, 0x96, 0xc9, 0xac, 0xce, \ - 0xd5, 0x19, 0xeb, 0x6f, 0x18, 0xeb, 0x6e, 0x04, 0x2d, 0x60, 0xac, 0xf4, \ - 0x7b, 0x79, 0xf0, 0x1a, 0x9b, 0xb5, 0xc3, 0x5d, 0xef, 0x7d, 0xc9, 0x05, \ - 0x99, 0x44, 0x81, 0x84, 0x75, 0xc7, 0xec, 0x00, 0x12, 0xfc, 0x7a, 0x4a, \ - 0x0b, 0x82, 0x07, 0xec, 0x6d, 0x86, 0x02, 0x4d, 0xfe, 0x9f, 0xc8, 0x92, \ - 0x48, 0xde, 0xf5, 0xb1, 0x9c, 0xe9, 0xc6, 0x89, 0xd0, 0xc1, 0x56, 0xe8, \ - 0xa4, 0xc6, 0x6a, 0x2e, 0x66, 0xc1, 0x9b, 0xfe, 0xd6, 0x3c, 0xb7 \ + 0x30, 0x82, 0x03, 0x37, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ + 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ + 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ + 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ + 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ + 0x34, 0x30, 0x36, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x82, \ + 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, \ + 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, \ + 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, \ + 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, 0xb8, 0x99, 0xac, 0x0e, 0x78, \ + 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, 0x16, 0xd0, 0x5a, 0xe4, 0xcd, \ + 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, 0x96, 0xa7, 0x52, 0xb4, 0x90, \ + 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, 0xfc, 0xb6, 0x34, 0xac, 0x24, \ + 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, 0xb0, 0x28, 0x7d, 0xa1, 0xda, \ + 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, 0xfe, 0xc1, 0x04, 0x52, 0xb3, \ + 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, 0xd8, 0x90, 0xc1, 0x61, 0xb4, \ + 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, 0xab, 0x74, 0x5e, 0x07, 0x7d, \ + 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, 0xd9, 0x0d, 0x1c, 0x2d, 0x49, \ + 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, 0x0b, 0x8a, 0x4f, 0x69, 0x0c, \ + 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, 0x66, 0x7d, 0xae, 0x54, 0x2b, \ + 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, 0xc3, 0xcd, 0x40, 0x49, 0x08, \ + 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, 0x46, 0xbf, 0xd0, 0xb8, 0xaa, \ + 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, 0x1e, 0x44, 0x18, 0x0f, 0x0f, \ + 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, 0x18, 0xc6, 0x62, 0x2f, 0xc7, \ + 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, 0x27, 0x89, 0x29, 0x01, 0xc5, \ + 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, 0x4a, 0x0e, 0xef, 0xd6, 0xde, \ + 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, 0x7a, 0xc4, 0x02, 0x3c, 0x9a, \ + 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, 0xcb, 0x73, 0x4b, 0x52, 0x96, \ + 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, 0x39, 0x5a, 0xd3, 0x0f, 0xb0, \ + 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, 0x12, 0x01, 0x30, 0x97, 0x02, \ + 0x03, 0x01, 0x00, 0x01, 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, \ + 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa5, 0x05, 0xe8, 0x64, 0xb8, 0xdc, \ + 0xdf, 0x60, 0x0f, 0x50, 0x12, 0x4d, 0x60, 0xa8, 0x64, 0xaf, 0x4d, 0x8b, \ + 0x43, 0x93, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, \ + 0x16, 0x80, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, \ + 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, \ + 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, \ + 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x2e, 0x3a, 0xe4, 0x52, 0x61, \ + 0x3e, 0xa7, 0xa5, 0xef, 0x32, 0x67, 0x80, 0x72, 0x07, 0x26, 0xba, 0xa3, \ + 0xff, 0x05, 0x40, 0xc4, 0x60, 0x05, 0x39, 0x31, 0x77, 0xf7, 0xa5, 0xca, \ + 0x01, 0x31, 0x80, 0xa7, 0xe1, 0xd1, 0x0a, 0xa2, 0x7c, 0xd5, 0x1c, 0xba, \ + 0xd0, 0x23, 0x4a, 0xd6, 0x30, 0xf3, 0x93, 0xc7, 0x6f, 0xe8, 0xce, 0x94, \ + 0x1e, 0x84, 0xbb, 0x44, 0x81, 0x62, 0x33, 0xff, 0x6b, 0x5d, 0x00, 0x9b, \ + 0x25, 0xf8, 0x8f, 0x0f, 0x9c, 0x4c, 0x4d, 0xe8, 0xd9, 0xa7, 0x99, 0xf9, \ + 0x51, 0x81, 0xc0, 0x9b, 0x1b, 0x31, 0x0d, 0xa6, 0xb3, 0x7c, 0x0e, 0x45, \ + 0xb8, 0x18, 0x64, 0x7e, 0x89, 0x0a, 0x2b, 0xa8, 0xc3, 0xe0, 0x4a, 0xbd, \ + 0xd4, 0x2f, 0x78, 0xc4, 0x62, 0x9b, 0xe9, 0x7e, 0x3f, 0x56, 0x46, 0x8f, \ + 0x17, 0xb7, 0x2a, 0xa0, 0x10, 0x70, 0xfd, 0xb1, 0xf1, 0x6b, 0x05, 0xdc, \ + 0xd1, 0x41, 0x0f, 0x8e, 0xa6, 0xb2, 0x88, 0x1a, 0x42, 0x61, 0x4f, 0xeb, \ + 0x26, 0x85, 0x59, 0x80, 0xba, 0x85, 0x54, 0xfe, 0xcf, 0xc7, 0x7b, 0x2f, \ + 0x6b, 0x59, 0xce, 0xac, 0xdc, 0x7c, 0xac, 0xf3, 0xc8, 0xd6, 0x12, 0x7e, \ + 0x64, 0xe8, 0x3c, 0x99, 0xa8, 0x8f, 0x4f, 0x11, 0xd9, 0x9c, 0x15, 0x4b, \ + 0x6a, 0x44, 0x92, 0x2d, 0x0c, 0xbf, 0xb1, 0x67, 0x96, 0xc9, 0xac, 0xce, \ + 0xd5, 0x19, 0xeb, 0x6f, 0x18, 0xeb, 0x6e, 0x04, 0x2d, 0x60, 0xac, 0xf4, \ + 0x7b, 0x79, 0xf0, 0x1a, 0x9b, 0xb5, 0xc3, 0x5d, 0xef, 0x7d, 0xc9, 0x05, \ + 0x99, 0x44, 0x81, 0x84, 0x75, 0xc7, 0xec, 0x00, 0x12, 0xfc, 0x7a, 0x4a, \ + 0x0b, 0x82, 0x07, 0xec, 0x6d, 0x86, 0x02, 0x4d, 0xfe, 0x9f, 0xc8, 0x92, \ + 0x48, 0xde, 0xf5, 0xb1, 0x9c, 0xe9, 0xc6, 0x89, 0xd0, 0xc1, 0x56, 0xe8, \ + 0xa4, 0xc6, 0x6a, 0x2e, 0x66, 0xc1, 0x9b, 0xfe, 0xd6, 0x3c, 0xb7 \ } /* END FILE */ /* This is taken from tests/data_files/server2.crt. */ /* BEGIN FILE string macro TEST_SRV_CRT_RSA_SHA1_PEM tests/data_files/server2.crt */ #define TEST_SRV_CRT_RSA_SHA1_PEM \ -"-----BEGIN CERTIFICATE-----\r\n" \ -"MIIDNzCCAh+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER\r\n" \ -"MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN\r\n" \ -"MTkwMjEwMTQ0NDA2WhcNMjkwMjEwMTQ0NDA2WjA0MQswCQYDVQQGEwJOTDERMA8G\r\n" \ -"A1UECgwIUG9sYXJTU0wxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN\r\n" \ -"AQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZrA545Do8Ss86ExbQWuTN\r\n" \ -"owCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAofaHa6ozmyRyWvP7BBFKz\r\n" \ -"NtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkNHC1JZvdbJXNG6AuKT2kM\r\n" \ -"tQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/0LiqEQMef1aoGh5EGA8P\r\n" \ -"hYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO79bex8cna8cFPXrEAjya\r\n" \ -"HT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIBMJcCAwEAAaNNMEswCQYD\r\n" \ -"VR0TBAIwADAdBgNVHQ4EFgQUpQXoZLjc32APUBJNYKhkr02LQ5MwHwYDVR0jBBgw\r\n" \ -"FoAUtFrkpbPe0lL2udWmlQ/rPrzH/f8wDQYJKoZIhvcNAQEFBQADggEBAJklg3Q4\r\n" \ -"cB7v7BzsxM/vLyKccO6op0/gZzM4ghuLq2Y32kl0sM6kSNUUmduuq3u/+GmUZN2A\r\n" \ -"O/7c+Hw7hDFEIvZk98aBGjCLqn3DmgHIv8ToQ67nellQxx2Uj309PdgjNi/r9HOc\r\n" \ -"KNAYPbBcg6MJGWWj2TI6vNaceios/DhOYx5V0j5nfqSJ/pnU0g9Ign2LAhgYpGJE\r\n" \ -"iEM9wW7hEMkwmk0h/sqZsrJsGH5YsF/VThSq/JVO1e2mZH2vruyZKJVBq+8tDNYp\r\n" \ -"HkK6tSyVYQhzIt3StMJWKMl/o5k2AYz6tSC164+1oG+ML3LWg8XrGKa91H4UOKap\r\n" \ -"Awgk0+4m0T25cNs=\r\n" \ -"-----END CERTIFICATE-----\r\n" + "-----BEGIN CERTIFICATE-----\r\n" \ + "MIIDNzCCAh+gAwIBAgIBAjANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJOTDER\r\n" \ + "MA8GA1UECgwIUG9sYXJTU0wxGTAXBgNVBAMMEFBvbGFyU1NMIFRlc3QgQ0EwHhcN\r\n" \ + "MTkwMjEwMTQ0NDA2WhcNMjkwMjEwMTQ0NDA2WjA0MQswCQYDVQQGEwJOTDERMA8G\r\n" \ + "A1UECgwIUG9sYXJTU0wxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN\r\n" \ + "AQEBBQADggEPADCCAQoCggEBAMFNo93nzR3RBNdJcriZrA545Do8Ss86ExbQWuTN\r\n" \ + "owCIp+4ea5anUrSQ7y1yej4kmvy2NKwk9XfgJmSMnLAofaHa6ozmyRyWvP7BBFKz\r\n" \ + "NtSj+uGxdtiQwWG0ZlI2oiZTqqt0Xgd9GYLbKtgfoNkNHC1JZvdbJXNG6AuKT2kM\r\n" \ + "tQCQ4dqCEGZ9rlQri2V5kaHiYcPNQEkI7mgM8YuG0ka/0LiqEQMef1aoGh5EGA8P\r\n" \ + "hYvai0Re4hjGYi/HZo36Xdh98yeJKQHFkA4/J/EwyEoO79bex8cna8cFPXrEAjya\r\n" \ + "HT4P6DSYW8tzS1KW2BGiLICIaTla0w+w3lkvEcf36hIBMJcCAwEAAaNNMEswCQYD\r\n" \ + "VR0TBAIwADAdBgNVHQ4EFgQUpQXoZLjc32APUBJNYKhkr02LQ5MwHwYDVR0jBBgw\r\n" \ + "FoAUtFrkpbPe0lL2udWmlQ/rPrzH/f8wDQYJKoZIhvcNAQEFBQADggEBAJklg3Q4\r\n" \ + "cB7v7BzsxM/vLyKccO6op0/gZzM4ghuLq2Y32kl0sM6kSNUUmduuq3u/+GmUZN2A\r\n" \ + "O/7c+Hw7hDFEIvZk98aBGjCLqn3DmgHIv8ToQ67nellQxx2Uj309PdgjNi/r9HOc\r\n" \ + "KNAYPbBcg6MJGWWj2TI6vNaceios/DhOYx5V0j5nfqSJ/pnU0g9Ign2LAhgYpGJE\r\n" \ + "iEM9wW7hEMkwmk0h/sqZsrJsGH5YsF/VThSq/JVO1e2mZH2vruyZKJVBq+8tDNYp\r\n" \ + "HkK6tSyVYQhzIt3StMJWKMl/o5k2AYz6tSC164+1oG+ML3LWg8XrGKa91H4UOKap\r\n" \ + "Awgk0+4m0T25cNs=\r\n" \ + "-----END CERTIFICATE-----\r\n" /* END FILE */ /* This is taken from tests/data_files/server2.crt.der. */ /* BEGIN FILE binary macro TEST_SRV_CRT_RSA_SHA1_DER tests/data_files/server2.crt.der */ #define TEST_SRV_CRT_RSA_SHA1_DER { \ - 0x30, 0x82, 0x03, 0x37, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ - 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ - 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ - 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ - 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, \ - 0x34, 0x30, 0x36, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ - 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x82, \ - 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, \ - 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, \ - 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, \ - 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, 0xb8, 0x99, 0xac, 0x0e, 0x78, \ - 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, 0x16, 0xd0, 0x5a, 0xe4, 0xcd, \ - 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, 0x96, 0xa7, 0x52, 0xb4, 0x90, \ - 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, 0xfc, 0xb6, 0x34, 0xac, 0x24, \ - 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, 0xb0, 0x28, 0x7d, 0xa1, 0xda, \ - 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, 0xfe, 0xc1, 0x04, 0x52, 0xb3, \ - 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, 0xd8, 0x90, 0xc1, 0x61, 0xb4, \ - 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, 0xab, 0x74, 0x5e, 0x07, 0x7d, \ - 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, 0xd9, 0x0d, 0x1c, 0x2d, 0x49, \ - 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, 0x0b, 0x8a, 0x4f, 0x69, 0x0c, \ - 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, 0x66, 0x7d, 0xae, 0x54, 0x2b, \ - 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, 0xc3, 0xcd, 0x40, 0x49, 0x08, \ - 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, 0x46, 0xbf, 0xd0, 0xb8, 0xaa, \ - 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, 0x1e, 0x44, 0x18, 0x0f, 0x0f, \ - 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, 0x18, 0xc6, 0x62, 0x2f, 0xc7, \ - 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, 0x27, 0x89, 0x29, 0x01, 0xc5, \ - 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, 0x4a, 0x0e, 0xef, 0xd6, 0xde, \ - 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, 0x7a, 0xc4, 0x02, 0x3c, 0x9a, \ - 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, 0xcb, 0x73, 0x4b, 0x52, 0x96, \ - 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, 0x39, 0x5a, 0xd3, 0x0f, 0xb0, \ - 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, 0x12, 0x01, 0x30, 0x97, 0x02, \ - 0x03, 0x01, 0x00, 0x01, 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, \ - 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa5, 0x05, 0xe8, 0x64, 0xb8, 0xdc, \ - 0xdf, 0x60, 0x0f, 0x50, 0x12, 0x4d, 0x60, 0xa8, 0x64, 0xaf, 0x4d, 0x8b, \ - 0x43, 0x93, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, \ - 0x16, 0x80, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, \ - 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, \ - 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, \ - 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x01, 0x73, 0x0b, 0x4a, 0xc5, \ - 0xcb, 0xa0, 0xde, 0xf1, 0x63, 0x1c, 0x76, 0x04, 0x2b, 0x13, 0x0d, 0xc0, \ - 0x84, 0x11, 0xc5, 0x8f, 0x3a, 0xa7, 0xc5, 0x9c, 0x35, 0x7a, 0x77, 0xb8, \ - 0x20, 0x14, 0x82, 0xee, 0x54, 0xf0, 0xf2, 0xb0, 0x52, 0xcb, 0x78, 0xce, \ - 0x59, 0x07, 0x4f, 0x51, 0x69, 0xfe, 0xd3, 0x2f, 0xe9, 0x09, 0xe7, 0x85, \ - 0x92, 0xd8, 0xba, 0xb1, 0xeb, 0xc5, 0x76, 0x5d, 0x61, 0x2d, 0xe9, 0x86, \ - 0xb5, 0xde, 0x2a, 0xf9, 0x3f, 0x53, 0x28, 0x42, 0x86, 0x83, 0x73, 0x43, \ - 0xe0, 0x04, 0x5f, 0x07, 0x90, 0x14, 0x65, 0x9f, 0x6e, 0x10, 0x7a, 0xbc, \ - 0x58, 0x19, 0x22, 0xc2, 0xeb, 0x39, 0x72, 0x51, 0x92, 0xd7, 0xb4, 0x1d, \ - 0x75, 0x2f, 0xd3, 0x3a, 0x2b, 0x01, 0xe7, 0xdb, 0x50, 0xae, 0xe2, 0xf1, \ - 0xd4, 0x4d, 0x5b, 0x3c, 0xbb, 0x41, 0x2b, 0x2a, 0xa4, 0xe2, 0x4a, 0x02, \ - 0xe5, 0x60, 0x14, 0x2c, 0x9c, 0x1f, 0xa6, 0xcc, 0x06, 0x4b, 0x25, 0x89, \ - 0x4e, 0x96, 0x30, 0x22, 0x9c, 0x5c, 0x58, 0x4d, 0xc3, 0xda, 0xd0, 0x6e, \ - 0x50, 0x1e, 0x8c, 0x65, 0xf5, 0xd9, 0x17, 0x35, 0xa6, 0x58, 0x43, 0xb2, \ - 0x29, 0xb7, 0xa8, 0x5e, 0x35, 0xde, 0xf0, 0x60, 0x42, 0x1a, 0x01, 0xcb, \ - 0xcb, 0x0b, 0xd8, 0x0e, 0xc1, 0x90, 0xdf, 0xa1, 0xd2, 0x1a, 0xd1, 0x2c, \ - 0x02, 0xf4, 0x76, 0x41, 0xa4, 0xcb, 0x4b, 0x15, 0x98, 0x71, 0xf9, 0x35, \ - 0x7d, 0xb0, 0xe7, 0xe2, 0x34, 0x96, 0x91, 0xbe, 0x32, 0x67, 0x2d, 0x6b, \ - 0xd3, 0x55, 0x04, 0x8a, 0x01, 0x50, 0xb4, 0xe3, 0x62, 0x78, 0x6c, 0x11, \ - 0x15, 0xa5, 0x2a, 0x11, 0xc1, 0x49, 0x1c, 0x9b, 0xc4, 0x10, 0x65, 0x60, \ - 0x87, 0xd9, 0x1e, 0x69, 0x59, 0x4e, 0x8f, 0x6b, 0xeb, 0xc1, 0xfe, 0x6b, \ - 0xe2, 0x63, 0x78, 0x95, 0x6e, 0xe0, 0x2d, 0xd7, 0xa7, 0x37, 0xa8 \ + 0x30, 0x82, 0x03, 0x37, 0x30, 0x82, 0x02, 0x1f, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ + 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ + 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ + 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ + 0x5a, 0x17, 0x0d, 0x32, 0x31, 0x30, 0x32, 0x31, 0x32, 0x31, 0x34, 0x34, \ + 0x34, 0x30, 0x36, 0x5a, 0x30, 0x34, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ + 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x30, 0x82, \ + 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, \ + 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, \ + 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, \ + 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, 0xb8, 0x99, 0xac, 0x0e, 0x78, \ + 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, 0x16, 0xd0, 0x5a, 0xe4, 0xcd, \ + 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, 0x96, 0xa7, 0x52, 0xb4, 0x90, \ + 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, 0xfc, 0xb6, 0x34, 0xac, 0x24, \ + 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, 0xb0, 0x28, 0x7d, 0xa1, 0xda, \ + 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, 0xfe, 0xc1, 0x04, 0x52, 0xb3, \ + 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, 0xd8, 0x90, 0xc1, 0x61, 0xb4, \ + 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, 0xab, 0x74, 0x5e, 0x07, 0x7d, \ + 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, 0xd9, 0x0d, 0x1c, 0x2d, 0x49, \ + 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, 0x0b, 0x8a, 0x4f, 0x69, 0x0c, \ + 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, 0x66, 0x7d, 0xae, 0x54, 0x2b, \ + 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, 0xc3, 0xcd, 0x40, 0x49, 0x08, \ + 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, 0x46, 0xbf, 0xd0, 0xb8, 0xaa, \ + 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, 0x1e, 0x44, 0x18, 0x0f, 0x0f, \ + 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, 0x18, 0xc6, 0x62, 0x2f, 0xc7, \ + 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, 0x27, 0x89, 0x29, 0x01, 0xc5, \ + 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, 0x4a, 0x0e, 0xef, 0xd6, 0xde, \ + 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, 0x7a, 0xc4, 0x02, 0x3c, 0x9a, \ + 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, 0xcb, 0x73, 0x4b, 0x52, 0x96, \ + 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, 0x39, 0x5a, 0xd3, 0x0f, 0xb0, \ + 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, 0x12, 0x01, 0x30, 0x97, 0x02, \ + 0x03, 0x01, 0x00, 0x01, 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, \ + 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0xa5, 0x05, 0xe8, 0x64, 0xb8, 0xdc, \ + 0xdf, 0x60, 0x0f, 0x50, 0x12, 0x4d, 0x60, 0xa8, 0x64, 0xaf, 0x4d, 0x8b, \ + 0x43, 0x93, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, \ + 0x16, 0x80, 0x14, 0xb4, 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, \ + 0xb9, 0xd5, 0xa6, 0x95, 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, \ + 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, \ + 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x01, 0x73, 0x0b, 0x4a, 0xc5, \ + 0xcb, 0xa0, 0xde, 0xf1, 0x63, 0x1c, 0x76, 0x04, 0x2b, 0x13, 0x0d, 0xc0, \ + 0x84, 0x11, 0xc5, 0x8f, 0x3a, 0xa7, 0xc5, 0x9c, 0x35, 0x7a, 0x77, 0xb8, \ + 0x20, 0x14, 0x82, 0xee, 0x54, 0xf0, 0xf2, 0xb0, 0x52, 0xcb, 0x78, 0xce, \ + 0x59, 0x07, 0x4f, 0x51, 0x69, 0xfe, 0xd3, 0x2f, 0xe9, 0x09, 0xe7, 0x85, \ + 0x92, 0xd8, 0xba, 0xb1, 0xeb, 0xc5, 0x76, 0x5d, 0x61, 0x2d, 0xe9, 0x86, \ + 0xb5, 0xde, 0x2a, 0xf9, 0x3f, 0x53, 0x28, 0x42, 0x86, 0x83, 0x73, 0x43, \ + 0xe0, 0x04, 0x5f, 0x07, 0x90, 0x14, 0x65, 0x9f, 0x6e, 0x10, 0x7a, 0xbc, \ + 0x58, 0x19, 0x22, 0xc2, 0xeb, 0x39, 0x72, 0x51, 0x92, 0xd7, 0xb4, 0x1d, \ + 0x75, 0x2f, 0xd3, 0x3a, 0x2b, 0x01, 0xe7, 0xdb, 0x50, 0xae, 0xe2, 0xf1, \ + 0xd4, 0x4d, 0x5b, 0x3c, 0xbb, 0x41, 0x2b, 0x2a, 0xa4, 0xe2, 0x4a, 0x02, \ + 0xe5, 0x60, 0x14, 0x2c, 0x9c, 0x1f, 0xa6, 0xcc, 0x06, 0x4b, 0x25, 0x89, \ + 0x4e, 0x96, 0x30, 0x22, 0x9c, 0x5c, 0x58, 0x4d, 0xc3, 0xda, 0xd0, 0x6e, \ + 0x50, 0x1e, 0x8c, 0x65, 0xf5, 0xd9, 0x17, 0x35, 0xa6, 0x58, 0x43, 0xb2, \ + 0x29, 0xb7, 0xa8, 0x5e, 0x35, 0xde, 0xf0, 0x60, 0x42, 0x1a, 0x01, 0xcb, \ + 0xcb, 0x0b, 0xd8, 0x0e, 0xc1, 0x90, 0xdf, 0xa1, 0xd2, 0x1a, 0xd1, 0x2c, \ + 0x02, 0xf4, 0x76, 0x41, 0xa4, 0xcb, 0x4b, 0x15, 0x98, 0x71, 0xf9, 0x35, \ + 0x7d, 0xb0, 0xe7, 0xe2, 0x34, 0x96, 0x91, 0xbe, 0x32, 0x67, 0x2d, 0x6b, \ + 0xd3, 0x55, 0x04, 0x8a, 0x01, 0x50, 0xb4, 0xe3, 0x62, 0x78, 0x6c, 0x11, \ + 0x15, 0xa5, 0x2a, 0x11, 0xc1, 0x49, 0x1c, 0x9b, 0xc4, 0x10, 0x65, 0x60, \ + 0x87, 0xd9, 0x1e, 0x69, 0x59, 0x4e, 0x8f, 0x6b, 0xeb, 0xc1, 0xfe, 0x6b, \ + 0xe2, 0x63, 0x78, 0x95, 0x6e, 0xe0, 0x2d, 0xd7, 0xa7, 0x37, 0xa8 \ } /* END FILE */ @@ -834,106 +834,106 @@ /* This was generated from tests/data_files/server2.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_SRV_KEY_RSA_DER tests/data_files/server2.key.der */ #define TEST_SRV_KEY_RSA_DER { \ - 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ - 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, \ - 0xb8, 0x99, 0xac, 0x0e, 0x78, 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, \ - 0x16, 0xd0, 0x5a, 0xe4, 0xcd, 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, \ - 0x96, 0xa7, 0x52, 0xb4, 0x90, 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, \ - 0xfc, 0xb6, 0x34, 0xac, 0x24, 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, \ - 0xb0, 0x28, 0x7d, 0xa1, 0xda, 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, \ - 0xfe, 0xc1, 0x04, 0x52, 0xb3, 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, \ - 0xd8, 0x90, 0xc1, 0x61, 0xb4, 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, \ - 0xab, 0x74, 0x5e, 0x07, 0x7d, 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, \ - 0xd9, 0x0d, 0x1c, 0x2d, 0x49, 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, \ - 0x0b, 0x8a, 0x4f, 0x69, 0x0c, 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, \ - 0x66, 0x7d, 0xae, 0x54, 0x2b, 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, \ - 0xc3, 0xcd, 0x40, 0x49, 0x08, 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, \ - 0x46, 0xbf, 0xd0, 0xb8, 0xaa, 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, \ - 0x1e, 0x44, 0x18, 0x0f, 0x0f, 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, \ - 0x18, 0xc6, 0x62, 0x2f, 0xc7, 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, \ - 0x27, 0x89, 0x29, 0x01, 0xc5, 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, \ - 0x4a, 0x0e, 0xef, 0xd6, 0xde, 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, \ - 0x7a, 0xc4, 0x02, 0x3c, 0x9a, 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, \ - 0xcb, 0x73, 0x4b, 0x52, 0x96, 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, \ - 0x39, 0x5a, 0xd3, 0x0f, 0xb0, 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, \ - 0x12, 0x01, 0x30, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ - 0x01, 0x00, 0x97, 0x47, 0x44, 0xbc, 0x10, 0x81, 0xc5, 0x18, 0xe4, 0x59, \ - 0xfb, 0xe0, 0x2d, 0x3a, 0x0e, 0x9e, 0x10, 0xdc, 0x43, 0xfb, 0x15, 0x6c, \ - 0xd1, 0xfd, 0x48, 0x78, 0x6c, 0xf9, 0xed, 0x38, 0xe8, 0xdd, 0x09, 0xd7, \ - 0x5f, 0xb5, 0x41, 0x64, 0xd7, 0x63, 0xfa, 0x9d, 0x44, 0x0a, 0xf8, 0x42, \ - 0x13, 0xf1, 0xbb, 0x5e, 0x79, 0x20, 0x53, 0x98, 0x4b, 0x65, 0x7f, 0x86, \ - 0x67, 0x48, 0xe4, 0xcf, 0xfb, 0x6a, 0x24, 0xe2, 0x34, 0xbd, 0x14, 0x9d, \ - 0x2c, 0x16, 0xe2, 0xa4, 0x79, 0xd6, 0xa2, 0xec, 0x81, 0x43, 0x87, 0xbf, \ - 0x03, 0x5c, 0x88, 0x25, 0xd9, 0x41, 0xb6, 0xa5, 0xf1, 0x27, 0x52, 0x84, \ - 0xfe, 0x2b, 0x6e, 0x1d, 0x16, 0xcd, 0x73, 0x88, 0xf8, 0x90, 0xbf, 0x19, \ - 0xfe, 0xbe, 0xa9, 0xbf, 0x09, 0xd3, 0x23, 0x43, 0xd2, 0xc7, 0x61, 0x2a, \ - 0xb3, 0x4e, 0x3c, 0x61, 0xd4, 0xbd, 0xd8, 0xb4, 0xfa, 0xa8, 0x0b, 0xf8, \ - 0x7e, 0x56, 0xcd, 0x0f, 0x13, 0x27, 0xda, 0xe6, 0x3b, 0xb3, 0x8c, 0x9c, \ - 0x4b, 0x84, 0x3c, 0xc3, 0x52, 0x57, 0x9c, 0x27, 0x9a, 0x02, 0x76, 0x26, \ - 0x59, 0x82, 0x39, 0xc3, 0x13, 0xbe, 0x6e, 0xf4, 0x44, 0x2d, 0x1d, 0x8c, \ - 0x73, 0x3e, 0x43, 0x99, 0x59, 0xcb, 0xf2, 0x34, 0x72, 0x9a, 0x5e, 0xa5, \ - 0xeb, 0x9f, 0x36, 0x6d, 0x2b, 0xf9, 0xa2, 0xe7, 0xd1, 0x78, 0x52, 0x1b, \ - 0xc8, 0xf6, 0x5b, 0x41, 0x69, 0x57, 0x81, 0x89, 0xe9, 0xbb, 0xa1, 0xde, \ - 0x19, 0x37, 0x3b, 0x13, 0x5c, 0xca, 0x61, 0x01, 0x86, 0xff, 0xdf, 0x83, \ - 0x41, 0x49, 0x7f, 0xd6, 0xf4, 0x2e, 0x08, 0xfa, 0x90, 0xc2, 0x7c, 0xb4, \ - 0xb5, 0x0a, 0x17, 0xdb, 0x0e, 0x6d, 0x75, 0x8a, 0x5d, 0x31, 0xd5, 0x66, \ - 0xfb, 0x39, 0x0b, 0xb5, 0xb6, 0xa3, 0xcd, 0xd4, 0xef, 0x88, 0x92, 0x5a, \ - 0x4d, 0x6c, 0xcb, 0xea, 0x5b, 0x79, 0x02, 0x81, 0x81, 0x00, 0xdf, 0x3a, \ - 0xf9, 0x25, 0x5e, 0x24, 0x37, 0x26, 0x40, 0x97, 0x2f, 0xe0, 0x4a, 0xba, \ - 0x52, 0x1b, 0x51, 0xaf, 0x84, 0x06, 0x32, 0x24, 0x0c, 0xcf, 0x44, 0xa8, \ - 0x77, 0xa7, 0xad, 0xb5, 0x8c, 0x58, 0xcc, 0xc8, 0x31, 0xb7, 0x0d, 0xbc, \ - 0x08, 0x8a, 0xe0, 0xa6, 0x8c, 0xc2, 0x73, 0xe5, 0x1a, 0x64, 0x92, 0xe8, \ - 0xed, 0x4c, 0x6f, 0x0b, 0xa6, 0xa7, 0xf3, 0x9a, 0xf5, 0x6f, 0x69, 0xca, \ - 0x3c, 0x22, 0xd0, 0x15, 0xa8, 0x20, 0x27, 0x41, 0xf8, 0x43, 0x42, 0x7f, \ - 0xb1, 0x93, 0xa1, 0x04, 0x85, 0xda, 0xa0, 0x1c, 0xd6, 0xc6, 0xf7, 0x8a, \ - 0x9e, 0xea, 0x5c, 0x78, 0xa7, 0x55, 0xc4, 0x6b, 0x05, 0x8b, 0xc0, 0x83, \ - 0xcb, 0xce, 0x83, 0x05, 0xf8, 0xb2, 0x16, 0x2b, 0xdf, 0x06, 0x3f, 0xb8, \ - 0xec, 0x16, 0xda, 0x43, 0x33, 0xc1, 0x8f, 0xb0, 0xb8, 0xac, 0xae, 0xd4, \ - 0x94, 0xb8, 0xda, 0x6f, 0x6a, 0xc3, 0x02, 0x81, 0x81, 0x00, 0xdd, 0xae, \ - 0x00, 0xcd, 0xa0, 0x72, 0x1a, 0x05, 0x8a, 0xee, 0x2f, 0xd4, 0x71, 0x4b, \ - 0xf0, 0x3e, 0xe5, 0xc1, 0xe1, 0x29, 0x8b, 0xa6, 0x67, 0x30, 0x98, 0xe7, \ - 0x12, 0xef, 0xdd, 0x12, 0x01, 0x90, 0x24, 0x58, 0xf0, 0x76, 0x92, 0xe7, \ - 0x3d, 0xbb, 0x23, 0xe1, 0xce, 0xf9, 0xa1, 0xd4, 0x38, 0x1b, 0x3f, 0x20, \ - 0xb3, 0x0f, 0x65, 0x6a, 0x8f, 0x55, 0x57, 0x36, 0xee, 0xb2, 0x84, 0x44, \ - 0xfc, 0x91, 0x88, 0xe1, 0xa4, 0xdd, 0x3b, 0x4a, 0x40, 0x4d, 0x7c, 0x86, \ - 0xed, 0xe1, 0xb5, 0x42, 0xef, 0xb9, 0x61, 0xcd, 0x58, 0x19, 0x77, 0x02, \ - 0xae, 0x58, 0x80, 0xdb, 0x13, 0x3d, 0xc7, 0x1f, 0x9d, 0xed, 0xff, 0xac, \ - 0x98, 0xfc, 0xcd, 0xf9, 0x62, 0x04, 0x83, 0x91, 0x89, 0x0d, 0x86, 0x43, \ - 0x8c, 0x0c, 0xc7, 0x1b, 0x90, 0x4d, 0xbe, 0x2f, 0xc5, 0x7c, 0xcd, 0x42, \ - 0xf5, 0xd3, 0xad, 0x8e, 0xfd, 0x9d, 0x02, 0x81, 0x80, 0x17, 0x4b, 0x79, \ - 0x2a, 0x6c, 0x1b, 0x8d, 0x61, 0xc1, 0x85, 0xc5, 0x6a, 0x3b, 0x82, 0x1c, \ - 0x05, 0x5b, 0xcd, 0xdc, 0x12, 0x25, 0x73, 0x5b, 0x9e, 0xd9, 0x84, 0x57, \ - 0x10, 0x39, 0x71, 0x63, 0x96, 0xf4, 0xaf, 0xc3, 0x78, 0x5d, 0xc7, 0x8c, \ - 0x80, 0xa9, 0x96, 0xd7, 0xc3, 0x87, 0x02, 0x96, 0x71, 0x7e, 0x5f, 0x2e, \ - 0x3c, 0x36, 0xae, 0x59, 0x92, 0xd7, 0x3a, 0x09, 0x78, 0xb9, 0xea, 0x6f, \ - 0xc2, 0x16, 0x42, 0xdc, 0x4b, 0x96, 0xad, 0x2c, 0xb2, 0x20, 0x23, 0x61, \ - 0x2d, 0x8d, 0xb5, 0x02, 0x1e, 0xe1, 0x6c, 0x81, 0x01, 0x3c, 0x5d, 0xcb, \ - 0xdd, 0x9b, 0x0e, 0xc0, 0x2f, 0x94, 0x12, 0xb2, 0xfe, 0x75, 0x75, 0x8b, \ - 0x74, 0x1e, 0x7a, 0x26, 0x0c, 0xb7, 0x81, 0x96, 0x81, 0x79, 0x6e, 0xdb, \ - 0xbc, 0x3a, 0xc4, 0x9e, 0x87, 0x09, 0x6e, 0xa0, 0xa6, 0xec, 0x8b, 0xa4, \ - 0x85, 0x71, 0xce, 0x04, 0xaf, 0x02, 0x81, 0x81, 0x00, 0xc2, 0xa7, 0x47, \ - 0x07, 0x48, 0x6a, 0xc8, 0xd4, 0xb3, 0x20, 0xe1, 0x98, 0xee, 0xff, 0x5a, \ - 0x6f, 0x30, 0x7a, 0xa5, 0x47, 0x40, 0xdc, 0x16, 0x62, 0x42, 0xf1, 0x2c, \ - 0xdc, 0xb8, 0xc7, 0x55, 0xde, 0x07, 0x3c, 0x9d, 0xb1, 0xd0, 0xdf, 0x02, \ - 0x82, 0xb0, 0x48, 0x58, 0xe1, 0x34, 0xab, 0xcf, 0xb4, 0x85, 0x23, 0x26, \ - 0x78, 0x4f, 0x7a, 0x59, 0x6f, 0xfb, 0x8c, 0x3d, 0xdf, 0x3d, 0x6c, 0x02, \ - 0x47, 0x9c, 0xe5, 0x5e, 0x49, 0xf1, 0x05, 0x0b, 0x1f, 0xbf, 0x48, 0x0f, \ - 0xdc, 0x10, 0xb9, 0x3d, 0x1d, 0x10, 0x77, 0x2a, 0x73, 0xf9, 0xdf, 0xbd, \ - 0xcd, 0xf3, 0x1f, 0xeb, 0x6e, 0x64, 0xca, 0x2b, 0x78, 0x4f, 0xf8, 0x73, \ - 0xc2, 0x10, 0xef, 0x79, 0x95, 0x33, 0x1e, 0x79, 0x35, 0x09, 0xff, 0x88, \ - 0x1b, 0xb4, 0x3e, 0x4c, 0xe1, 0x27, 0x2e, 0x75, 0x80, 0x58, 0x11, 0x03, \ - 0x21, 0x23, 0x96, 0x9a, 0xb5, 0x02, 0x81, 0x80, 0x05, 0x12, 0x64, 0x71, \ - 0x83, 0x00, 0x1c, 0xfe, 0xef, 0x83, 0xea, 0xdd, 0x2c, 0xc8, 0x2c, 0x00, \ - 0x62, 0x1e, 0x8f, 0x3a, 0xdb, 0x1c, 0xab, 0xd6, 0x34, 0x8b, 0xd1, 0xb2, \ - 0x5a, 0x4f, 0x3d, 0x37, 0x38, 0x02, 0xe0, 0xd7, 0x70, 0xc1, 0xb0, 0x47, \ - 0xe0, 0x08, 0x1a, 0x84, 0xec, 0x48, 0xc5, 0x7c, 0x76, 0x83, 0x12, 0x67, \ - 0xab, 0x7c, 0x9f, 0x90, 0x97, 0xc8, 0x8f, 0x07, 0xf4, 0xb3, 0x60, 0xf2, \ - 0x3f, 0x49, 0x18, 0xdb, 0x2e, 0x94, 0x6b, 0x53, 0x9e, 0xa2, 0x63, 0xde, \ - 0x63, 0xd9, 0xab, 0x21, 0x2e, 0x2d, 0x0a, 0xe0, 0xd0, 0xe8, 0xba, 0xc4, \ - 0x4c, 0x1e, 0xa5, 0xf5, 0x51, 0xa8, 0xc4, 0x92, 0xf8, 0x7f, 0x21, 0xe7, \ - 0x65, 0xbf, 0x0b, 0xe6, 0x01, 0xaf, 0x9c, 0x1d, 0x5b, 0x6c, 0x3f, 0x1c, \ - 0x2f, 0xa6, 0x0f, 0x68, 0x38, 0x8e, 0x85, 0xc4, 0x6c, 0x78, 0x2f, 0x6f, \ - 0x06, 0x21, 0x2e, 0x56 \ + 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ + 0xc1, 0x4d, 0xa3, 0xdd, 0xe7, 0xcd, 0x1d, 0xd1, 0x04, 0xd7, 0x49, 0x72, \ + 0xb8, 0x99, 0xac, 0x0e, 0x78, 0xe4, 0x3a, 0x3c, 0x4a, 0xcf, 0x3a, 0x13, \ + 0x16, 0xd0, 0x5a, 0xe4, 0xcd, 0xa3, 0x00, 0x88, 0xa7, 0xee, 0x1e, 0x6b, \ + 0x96, 0xa7, 0x52, 0xb4, 0x90, 0xef, 0x2d, 0x72, 0x7a, 0x3e, 0x24, 0x9a, \ + 0xfc, 0xb6, 0x34, 0xac, 0x24, 0xf5, 0x77, 0xe0, 0x26, 0x64, 0x8c, 0x9c, \ + 0xb0, 0x28, 0x7d, 0xa1, 0xda, 0xea, 0x8c, 0xe6, 0xc9, 0x1c, 0x96, 0xbc, \ + 0xfe, 0xc1, 0x04, 0x52, 0xb3, 0x36, 0xd4, 0xa3, 0xfa, 0xe1, 0xb1, 0x76, \ + 0xd8, 0x90, 0xc1, 0x61, 0xb4, 0x66, 0x52, 0x36, 0xa2, 0x26, 0x53, 0xaa, \ + 0xab, 0x74, 0x5e, 0x07, 0x7d, 0x19, 0x82, 0xdb, 0x2a, 0xd8, 0x1f, 0xa0, \ + 0xd9, 0x0d, 0x1c, 0x2d, 0x49, 0x66, 0xf7, 0x5b, 0x25, 0x73, 0x46, 0xe8, \ + 0x0b, 0x8a, 0x4f, 0x69, 0x0c, 0xb5, 0x00, 0x90, 0xe1, 0xda, 0x82, 0x10, \ + 0x66, 0x7d, 0xae, 0x54, 0x2b, 0x8b, 0x65, 0x79, 0x91, 0xa1, 0xe2, 0x61, \ + 0xc3, 0xcd, 0x40, 0x49, 0x08, 0xee, 0x68, 0x0c, 0xf1, 0x8b, 0x86, 0xd2, \ + 0x46, 0xbf, 0xd0, 0xb8, 0xaa, 0x11, 0x03, 0x1e, 0x7f, 0x56, 0xa8, 0x1a, \ + 0x1e, 0x44, 0x18, 0x0f, 0x0f, 0x85, 0x8b, 0xda, 0x8b, 0x44, 0x5e, 0xe2, \ + 0x18, 0xc6, 0x62, 0x2f, 0xc7, 0x66, 0x8d, 0xfa, 0x5d, 0xd8, 0x7d, 0xf3, \ + 0x27, 0x89, 0x29, 0x01, 0xc5, 0x90, 0x0e, 0x3f, 0x27, 0xf1, 0x30, 0xc8, \ + 0x4a, 0x0e, 0xef, 0xd6, 0xde, 0xc7, 0xc7, 0x27, 0x6b, 0xc7, 0x05, 0x3d, \ + 0x7a, 0xc4, 0x02, 0x3c, 0x9a, 0x1d, 0x3e, 0x0f, 0xe8, 0x34, 0x98, 0x5b, \ + 0xcb, 0x73, 0x4b, 0x52, 0x96, 0xd8, 0x11, 0xa2, 0x2c, 0x80, 0x88, 0x69, \ + 0x39, 0x5a, 0xd3, 0x0f, 0xb0, 0xde, 0x59, 0x2f, 0x11, 0xc7, 0xf7, 0xea, \ + 0x12, 0x01, 0x30, 0x97, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ + 0x01, 0x00, 0x97, 0x47, 0x44, 0xbc, 0x10, 0x81, 0xc5, 0x18, 0xe4, 0x59, \ + 0xfb, 0xe0, 0x2d, 0x3a, 0x0e, 0x9e, 0x10, 0xdc, 0x43, 0xfb, 0x15, 0x6c, \ + 0xd1, 0xfd, 0x48, 0x78, 0x6c, 0xf9, 0xed, 0x38, 0xe8, 0xdd, 0x09, 0xd7, \ + 0x5f, 0xb5, 0x41, 0x64, 0xd7, 0x63, 0xfa, 0x9d, 0x44, 0x0a, 0xf8, 0x42, \ + 0x13, 0xf1, 0xbb, 0x5e, 0x79, 0x20, 0x53, 0x98, 0x4b, 0x65, 0x7f, 0x86, \ + 0x67, 0x48, 0xe4, 0xcf, 0xfb, 0x6a, 0x24, 0xe2, 0x34, 0xbd, 0x14, 0x9d, \ + 0x2c, 0x16, 0xe2, 0xa4, 0x79, 0xd6, 0xa2, 0xec, 0x81, 0x43, 0x87, 0xbf, \ + 0x03, 0x5c, 0x88, 0x25, 0xd9, 0x41, 0xb6, 0xa5, 0xf1, 0x27, 0x52, 0x84, \ + 0xfe, 0x2b, 0x6e, 0x1d, 0x16, 0xcd, 0x73, 0x88, 0xf8, 0x90, 0xbf, 0x19, \ + 0xfe, 0xbe, 0xa9, 0xbf, 0x09, 0xd3, 0x23, 0x43, 0xd2, 0xc7, 0x61, 0x2a, \ + 0xb3, 0x4e, 0x3c, 0x61, 0xd4, 0xbd, 0xd8, 0xb4, 0xfa, 0xa8, 0x0b, 0xf8, \ + 0x7e, 0x56, 0xcd, 0x0f, 0x13, 0x27, 0xda, 0xe6, 0x3b, 0xb3, 0x8c, 0x9c, \ + 0x4b, 0x84, 0x3c, 0xc3, 0x52, 0x57, 0x9c, 0x27, 0x9a, 0x02, 0x76, 0x26, \ + 0x59, 0x82, 0x39, 0xc3, 0x13, 0xbe, 0x6e, 0xf4, 0x44, 0x2d, 0x1d, 0x8c, \ + 0x73, 0x3e, 0x43, 0x99, 0x59, 0xcb, 0xf2, 0x34, 0x72, 0x9a, 0x5e, 0xa5, \ + 0xeb, 0x9f, 0x36, 0x6d, 0x2b, 0xf9, 0xa2, 0xe7, 0xd1, 0x78, 0x52, 0x1b, \ + 0xc8, 0xf6, 0x5b, 0x41, 0x69, 0x57, 0x81, 0x89, 0xe9, 0xbb, 0xa1, 0xde, \ + 0x19, 0x37, 0x3b, 0x13, 0x5c, 0xca, 0x61, 0x01, 0x86, 0xff, 0xdf, 0x83, \ + 0x41, 0x49, 0x7f, 0xd6, 0xf4, 0x2e, 0x08, 0xfa, 0x90, 0xc2, 0x7c, 0xb4, \ + 0xb5, 0x0a, 0x17, 0xdb, 0x0e, 0x6d, 0x75, 0x8a, 0x5d, 0x31, 0xd5, 0x66, \ + 0xfb, 0x39, 0x0b, 0xb5, 0xb6, 0xa3, 0xcd, 0xd4, 0xef, 0x88, 0x92, 0x5a, \ + 0x4d, 0x6c, 0xcb, 0xea, 0x5b, 0x79, 0x02, 0x81, 0x81, 0x00, 0xdf, 0x3a, \ + 0xf9, 0x25, 0x5e, 0x24, 0x37, 0x26, 0x40, 0x97, 0x2f, 0xe0, 0x4a, 0xba, \ + 0x52, 0x1b, 0x51, 0xaf, 0x84, 0x06, 0x32, 0x24, 0x0c, 0xcf, 0x44, 0xa8, \ + 0x77, 0xa7, 0xad, 0xb5, 0x8c, 0x58, 0xcc, 0xc8, 0x31, 0xb7, 0x0d, 0xbc, \ + 0x08, 0x8a, 0xe0, 0xa6, 0x8c, 0xc2, 0x73, 0xe5, 0x1a, 0x64, 0x92, 0xe8, \ + 0xed, 0x4c, 0x6f, 0x0b, 0xa6, 0xa7, 0xf3, 0x9a, 0xf5, 0x6f, 0x69, 0xca, \ + 0x3c, 0x22, 0xd0, 0x15, 0xa8, 0x20, 0x27, 0x41, 0xf8, 0x43, 0x42, 0x7f, \ + 0xb1, 0x93, 0xa1, 0x04, 0x85, 0xda, 0xa0, 0x1c, 0xd6, 0xc6, 0xf7, 0x8a, \ + 0x9e, 0xea, 0x5c, 0x78, 0xa7, 0x55, 0xc4, 0x6b, 0x05, 0x8b, 0xc0, 0x83, \ + 0xcb, 0xce, 0x83, 0x05, 0xf8, 0xb2, 0x16, 0x2b, 0xdf, 0x06, 0x3f, 0xb8, \ + 0xec, 0x16, 0xda, 0x43, 0x33, 0xc1, 0x8f, 0xb0, 0xb8, 0xac, 0xae, 0xd4, \ + 0x94, 0xb8, 0xda, 0x6f, 0x6a, 0xc3, 0x02, 0x81, 0x81, 0x00, 0xdd, 0xae, \ + 0x00, 0xcd, 0xa0, 0x72, 0x1a, 0x05, 0x8a, 0xee, 0x2f, 0xd4, 0x71, 0x4b, \ + 0xf0, 0x3e, 0xe5, 0xc1, 0xe1, 0x29, 0x8b, 0xa6, 0x67, 0x30, 0x98, 0xe7, \ + 0x12, 0xef, 0xdd, 0x12, 0x01, 0x90, 0x24, 0x58, 0xf0, 0x76, 0x92, 0xe7, \ + 0x3d, 0xbb, 0x23, 0xe1, 0xce, 0xf9, 0xa1, 0xd4, 0x38, 0x1b, 0x3f, 0x20, \ + 0xb3, 0x0f, 0x65, 0x6a, 0x8f, 0x55, 0x57, 0x36, 0xee, 0xb2, 0x84, 0x44, \ + 0xfc, 0x91, 0x88, 0xe1, 0xa4, 0xdd, 0x3b, 0x4a, 0x40, 0x4d, 0x7c, 0x86, \ + 0xed, 0xe1, 0xb5, 0x42, 0xef, 0xb9, 0x61, 0xcd, 0x58, 0x19, 0x77, 0x02, \ + 0xae, 0x58, 0x80, 0xdb, 0x13, 0x3d, 0xc7, 0x1f, 0x9d, 0xed, 0xff, 0xac, \ + 0x98, 0xfc, 0xcd, 0xf9, 0x62, 0x04, 0x83, 0x91, 0x89, 0x0d, 0x86, 0x43, \ + 0x8c, 0x0c, 0xc7, 0x1b, 0x90, 0x4d, 0xbe, 0x2f, 0xc5, 0x7c, 0xcd, 0x42, \ + 0xf5, 0xd3, 0xad, 0x8e, 0xfd, 0x9d, 0x02, 0x81, 0x80, 0x17, 0x4b, 0x79, \ + 0x2a, 0x6c, 0x1b, 0x8d, 0x61, 0xc1, 0x85, 0xc5, 0x6a, 0x3b, 0x82, 0x1c, \ + 0x05, 0x5b, 0xcd, 0xdc, 0x12, 0x25, 0x73, 0x5b, 0x9e, 0xd9, 0x84, 0x57, \ + 0x10, 0x39, 0x71, 0x63, 0x96, 0xf4, 0xaf, 0xc3, 0x78, 0x5d, 0xc7, 0x8c, \ + 0x80, 0xa9, 0x96, 0xd7, 0xc3, 0x87, 0x02, 0x96, 0x71, 0x7e, 0x5f, 0x2e, \ + 0x3c, 0x36, 0xae, 0x59, 0x92, 0xd7, 0x3a, 0x09, 0x78, 0xb9, 0xea, 0x6f, \ + 0xc2, 0x16, 0x42, 0xdc, 0x4b, 0x96, 0xad, 0x2c, 0xb2, 0x20, 0x23, 0x61, \ + 0x2d, 0x8d, 0xb5, 0x02, 0x1e, 0xe1, 0x6c, 0x81, 0x01, 0x3c, 0x5d, 0xcb, \ + 0xdd, 0x9b, 0x0e, 0xc0, 0x2f, 0x94, 0x12, 0xb2, 0xfe, 0x75, 0x75, 0x8b, \ + 0x74, 0x1e, 0x7a, 0x26, 0x0c, 0xb7, 0x81, 0x96, 0x81, 0x79, 0x6e, 0xdb, \ + 0xbc, 0x3a, 0xc4, 0x9e, 0x87, 0x09, 0x6e, 0xa0, 0xa6, 0xec, 0x8b, 0xa4, \ + 0x85, 0x71, 0xce, 0x04, 0xaf, 0x02, 0x81, 0x81, 0x00, 0xc2, 0xa7, 0x47, \ + 0x07, 0x48, 0x6a, 0xc8, 0xd4, 0xb3, 0x20, 0xe1, 0x98, 0xee, 0xff, 0x5a, \ + 0x6f, 0x30, 0x7a, 0xa5, 0x47, 0x40, 0xdc, 0x16, 0x62, 0x42, 0xf1, 0x2c, \ + 0xdc, 0xb8, 0xc7, 0x55, 0xde, 0x07, 0x3c, 0x9d, 0xb1, 0xd0, 0xdf, 0x02, \ + 0x82, 0xb0, 0x48, 0x58, 0xe1, 0x34, 0xab, 0xcf, 0xb4, 0x85, 0x23, 0x26, \ + 0x78, 0x4f, 0x7a, 0x59, 0x6f, 0xfb, 0x8c, 0x3d, 0xdf, 0x3d, 0x6c, 0x02, \ + 0x47, 0x9c, 0xe5, 0x5e, 0x49, 0xf1, 0x05, 0x0b, 0x1f, 0xbf, 0x48, 0x0f, \ + 0xdc, 0x10, 0xb9, 0x3d, 0x1d, 0x10, 0x77, 0x2a, 0x73, 0xf9, 0xdf, 0xbd, \ + 0xcd, 0xf3, 0x1f, 0xeb, 0x6e, 0x64, 0xca, 0x2b, 0x78, 0x4f, 0xf8, 0x73, \ + 0xc2, 0x10, 0xef, 0x79, 0x95, 0x33, 0x1e, 0x79, 0x35, 0x09, 0xff, 0x88, \ + 0x1b, 0xb4, 0x3e, 0x4c, 0xe1, 0x27, 0x2e, 0x75, 0x80, 0x58, 0x11, 0x03, \ + 0x21, 0x23, 0x96, 0x9a, 0xb5, 0x02, 0x81, 0x80, 0x05, 0x12, 0x64, 0x71, \ + 0x83, 0x00, 0x1c, 0xfe, 0xef, 0x83, 0xea, 0xdd, 0x2c, 0xc8, 0x2c, 0x00, \ + 0x62, 0x1e, 0x8f, 0x3a, 0xdb, 0x1c, 0xab, 0xd6, 0x34, 0x8b, 0xd1, 0xb2, \ + 0x5a, 0x4f, 0x3d, 0x37, 0x38, 0x02, 0xe0, 0xd7, 0x70, 0xc1, 0xb0, 0x47, \ + 0xe0, 0x08, 0x1a, 0x84, 0xec, 0x48, 0xc5, 0x7c, 0x76, 0x83, 0x12, 0x67, \ + 0xab, 0x7c, 0x9f, 0x90, 0x97, 0xc8, 0x8f, 0x07, 0xf4, 0xb3, 0x60, 0xf2, \ + 0x3f, 0x49, 0x18, 0xdb, 0x2e, 0x94, 0x6b, 0x53, 0x9e, 0xa2, 0x63, 0xde, \ + 0x63, 0xd9, 0xab, 0x21, 0x2e, 0x2d, 0x0a, 0xe0, 0xd0, 0xe8, 0xba, 0xc4, \ + 0x4c, 0x1e, 0xa5, 0xf5, 0x51, 0xa8, 0xc4, 0x92, 0xf8, 0x7f, 0x21, 0xe7, \ + 0x65, 0xbf, 0x0b, 0xe6, 0x01, 0xaf, 0x9c, 0x1d, 0x5b, 0x6c, 0x3f, 0x1c, \ + 0x2f, 0xa6, 0x0f, 0x68, 0x38, 0x8e, 0x85, 0xc4, 0x6c, 0x78, 0x2f, 0x6f, \ + 0x06, 0x21, 0x2e, 0x56 \ } /* END FILE */ @@ -971,47 +971,47 @@ /* This is generated from tests/data_files/cli2.crt.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CLI_CRT_EC_DER tests/data_files/cli2.crt.der */ #define TEST_CLI_CRT_EC_DER { \ - 0x30, 0x82, 0x01, 0xdf, 0x30, 0x82, 0x01, 0x63, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x0d, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ - 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, \ - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ - 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, \ - 0x03, 0x0c, 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, \ - 0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, \ - 0x17, 0x0d, 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, \ - 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, \ - 0x34, 0x34, 0x34, 0x30, 0x30, 0x5a, 0x30, 0x41, 0x31, 0x0b, 0x30, 0x09, \ - 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ - 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ - 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, \ - 0x03, 0x0c, 0x16, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, \ - 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, \ - 0x32, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ - 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, \ - 0x03, 0x42, 0x00, 0x04, 0x57, 0xe5, 0xae, 0xb1, 0x73, 0xdf, 0xd3, 0xac, \ - 0xbb, 0x93, 0xb8, 0x81, 0xff, 0x12, 0xae, 0xee, 0xe6, 0x53, 0xac, 0xce, \ - 0x55, 0x53, 0xf6, 0x34, 0x0e, 0xcc, 0x2e, 0xe3, 0x63, 0x25, 0x0b, 0xdf, \ - 0x98, 0xe2, 0xf3, 0x5c, 0x60, 0x36, 0x96, 0xc0, 0xd5, 0x18, 0x14, 0x70, \ - 0xe5, 0x7f, 0x9f, 0xd5, 0x4b, 0x45, 0x18, 0xe5, 0xb0, 0x6c, 0xd5, 0x5c, \ - 0xf8, 0x96, 0x8f, 0x87, 0x70, 0xa3, 0xe4, 0xc7, 0xa3, 0x4d, 0x30, 0x4b, \ - 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, \ - 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7a, 0x00, \ - 0x5f, 0x86, 0x64, 0xfc, 0xe0, 0x5d, 0xe5, 0x11, 0x10, 0x3b, 0xb2, 0xe6, \ - 0x3b, 0xc4, 0x26, 0x3f, 0xcf, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, \ - 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, 0x49, \ - 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, 0xdb, \ - 0xfb, 0x36, 0x7c, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ - 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x68, 0x00, 0x30, 0x65, 0x02, 0x31, \ - 0x00, 0xca, 0xa6, 0x7b, 0x80, 0xca, 0x32, 0x57, 0x54, 0x96, 0x99, 0x43, \ - 0x11, 0x3f, 0x50, 0xe8, 0x4a, 0x6d, 0xad, 0xee, 0xee, 0x51, 0x62, 0xa1, \ - 0xb0, 0xb3, 0x85, 0xfb, 0x33, 0xe4, 0x28, 0x39, 0x5f, 0xce, 0x92, 0x24, \ - 0x25, 0x81, 0x05, 0x81, 0xc9, 0x68, 0x0c, 0x71, 0x98, 0xc3, 0xcd, 0x2e, \ - 0x22, 0x02, 0x30, 0x35, 0xfb, 0x72, 0x3d, 0x7b, 0x1a, 0x6d, 0x3a, 0x8c, \ - 0x33, 0xb8, 0x84, 0x1e, 0x05, 0x69, 0x5f, 0xf1, 0x91, 0xa3, 0x32, 0xa4, \ - 0x95, 0x8f, 0x72, 0x40, 0x8f, 0xf9, 0x7a, 0x80, 0x3a, 0x80, 0x65, 0xbb, \ - 0x63, 0xe8, 0xa6, 0xb8, 0x64, 0x7f, 0xa1, 0xaa, 0x39, 0xc9, 0x23, 0x9b, \ - 0x6b, 0xd5, 0x64 \ + 0x30, 0x82, 0x01, 0xdf, 0x30, 0x82, 0x01, 0x63, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x0d, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, \ + 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x30, 0x3e, 0x31, 0x0b, 0x30, 0x09, \ + 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ + 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ + 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1c, 0x30, 0x1a, 0x06, 0x03, 0x55, 0x04, \ + 0x03, 0x0c, 0x13, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, \ + 0x54, 0x65, 0x73, 0x74, 0x20, 0x45, 0x43, 0x20, 0x43, 0x41, 0x30, 0x1e, \ + 0x17, 0x0d, 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, \ + 0x30, 0x30, 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, \ + 0x34, 0x34, 0x34, 0x30, 0x30, 0x5a, 0x30, 0x41, 0x31, 0x0b, 0x30, 0x09, \ + 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, \ + 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, \ + 0x72, 0x53, 0x53, 0x4c, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x04, \ + 0x03, 0x0c, 0x16, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, \ + 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, \ + 0x32, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ + 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, \ + 0x03, 0x42, 0x00, 0x04, 0x57, 0xe5, 0xae, 0xb1, 0x73, 0xdf, 0xd3, 0xac, \ + 0xbb, 0x93, 0xb8, 0x81, 0xff, 0x12, 0xae, 0xee, 0xe6, 0x53, 0xac, 0xce, \ + 0x55, 0x53, 0xf6, 0x34, 0x0e, 0xcc, 0x2e, 0xe3, 0x63, 0x25, 0x0b, 0xdf, \ + 0x98, 0xe2, 0xf3, 0x5c, 0x60, 0x36, 0x96, 0xc0, 0xd5, 0x18, 0x14, 0x70, \ + 0xe5, 0x7f, 0x9f, 0xd5, 0x4b, 0x45, 0x18, 0xe5, 0xb0, 0x6c, 0xd5, 0x5c, \ + 0xf8, 0x96, 0x8f, 0x87, 0x70, 0xa3, 0xe4, 0xc7, 0xa3, 0x4d, 0x30, 0x4b, \ + 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, \ + 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7a, 0x00, \ + 0x5f, 0x86, 0x64, 0xfc, 0xe0, 0x5d, 0xe5, 0x11, 0x10, 0x3b, 0xb2, 0xe6, \ + 0x3b, 0xc4, 0x26, 0x3f, 0xcf, 0xe2, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, \ + 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x9d, 0x6d, 0x20, 0x24, 0x49, \ + 0x01, 0x3f, 0x2b, 0xcb, 0x78, 0xb5, 0x19, 0xbc, 0x7e, 0x24, 0xc9, 0xdb, \ + 0xfb, 0x36, 0x7c, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ + 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x68, 0x00, 0x30, 0x65, 0x02, 0x31, \ + 0x00, 0xca, 0xa6, 0x7b, 0x80, 0xca, 0x32, 0x57, 0x54, 0x96, 0x99, 0x43, \ + 0x11, 0x3f, 0x50, 0xe8, 0x4a, 0x6d, 0xad, 0xee, 0xee, 0x51, 0x62, 0xa1, \ + 0xb0, 0xb3, 0x85, 0xfb, 0x33, 0xe4, 0x28, 0x39, 0x5f, 0xce, 0x92, 0x24, \ + 0x25, 0x81, 0x05, 0x81, 0xc9, 0x68, 0x0c, 0x71, 0x98, 0xc3, 0xcd, 0x2e, \ + 0x22, 0x02, 0x30, 0x35, 0xfb, 0x72, 0x3d, 0x7b, 0x1a, 0x6d, 0x3a, 0x8c, \ + 0x33, 0xb8, 0x84, 0x1e, 0x05, 0x69, 0x5f, 0xf1, 0x91, 0xa3, 0x32, 0xa4, \ + 0x95, 0x8f, 0x72, 0x40, 0x8f, 0xf9, 0x7a, 0x80, 0x3a, 0x80, 0x65, 0xbb, \ + 0x63, 0xe8, 0xa6, 0xb8, 0x64, 0x7f, 0xa1, 0xaa, 0x39, 0xc9, 0x23, 0x9b, \ + 0x6b, 0xd5, 0x64 \ } /* END FILE */ @@ -1028,17 +1028,17 @@ /* This is generated from tests/data_files/cli2.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CLI_KEY_EC_DER tests/data_files/cli2.key.der */ #define TEST_CLI_KEY_EC_DER { \ - 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xf6, 0xf7, 0x86, 0x64, 0xf1, \ - 0x67, 0x7f, 0xe6, 0x64, 0x8d, 0xef, 0xca, 0x4e, 0xe9, 0xdd, 0x4d, 0xf0, \ - 0x05, 0xff, 0x96, 0x22, 0x8a, 0x7a, 0x84, 0x38, 0x64, 0x17, 0x32, 0x61, \ - 0x98, 0xb7, 0x2a, 0xa0, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ - 0x03, 0x01, 0x07, 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x57, 0xe5, 0xae, \ - 0xb1, 0x73, 0xdf, 0xd3, 0xac, 0xbb, 0x93, 0xb8, 0x81, 0xff, 0x12, 0xae, \ - 0xee, 0xe6, 0x53, 0xac, 0xce, 0x55, 0x53, 0xf6, 0x34, 0x0e, 0xcc, 0x2e, \ - 0xe3, 0x63, 0x25, 0x0b, 0xdf, 0x98, 0xe2, 0xf3, 0x5c, 0x60, 0x36, 0x96, \ - 0xc0, 0xd5, 0x18, 0x14, 0x70, 0xe5, 0x7f, 0x9f, 0xd5, 0x4b, 0x45, 0x18, \ - 0xe5, 0xb0, 0x6c, 0xd5, 0x5c, 0xf8, 0x96, 0x8f, 0x87, 0x70, 0xa3, 0xe4, \ - 0xc7 \ + 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xf6, 0xf7, 0x86, 0x64, 0xf1, \ + 0x67, 0x7f, 0xe6, 0x64, 0x8d, 0xef, 0xca, 0x4e, 0xe9, 0xdd, 0x4d, 0xf0, \ + 0x05, 0xff, 0x96, 0x22, 0x8a, 0x7a, 0x84, 0x38, 0x64, 0x17, 0x32, 0x61, \ + 0x98, 0xb7, 0x2a, 0xa0, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, \ + 0x03, 0x01, 0x07, 0xa1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x57, 0xe5, 0xae, \ + 0xb1, 0x73, 0xdf, 0xd3, 0xac, 0xbb, 0x93, 0xb8, 0x81, 0xff, 0x12, 0xae, \ + 0xee, 0xe6, 0x53, 0xac, 0xce, 0x55, 0x53, 0xf6, 0x34, 0x0e, 0xcc, 0x2e, \ + 0xe3, 0x63, 0x25, 0x0b, 0xdf, 0x98, 0xe2, 0xf3, 0x5c, 0x60, 0x36, 0x96, \ + 0xc0, 0xd5, 0x18, 0x14, 0x70, 0xe5, 0x7f, 0x9f, 0xd5, 0x4b, 0x45, 0x18, \ + 0xe5, 0xb0, 0x6c, 0xd5, 0x5c, 0xf8, 0x96, 0x8f, 0x87, 0x70, 0xa3, 0xe4, \ + 0xc7 \ } /* END FILE */ @@ -1071,76 +1071,76 @@ using `xxd -i.` */ /* BEGIN FILE binary macro TEST_CLI_CRT_RSA_DER tests/data_files/cli-rsa-sha256.crt.der */ #define TEST_CLI_CRT_RSA_DER { \ - 0x30, 0x82, 0x03, 0x3f, 0x30, 0x82, 0x02, 0x27, 0xa0, 0x03, 0x02, 0x01, \ - 0x02, 0x02, 0x01, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ - 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ - 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ - 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ - 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ - 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ - 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ - 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ - 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ - 0x34, 0x30, 0x36, 0x5a, 0x30, 0x3c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ - 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ - 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ - 0x53, 0x4c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ - 0x11, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x6c, \ - 0x69, 0x65, 0x6e, 0x74, 0x20, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, \ - 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, \ - 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, \ - 0x01, 0x01, 0x00, 0xc8, 0x74, 0xc4, 0xcc, 0xb9, 0xf9, 0xb5, 0x79, 0xe9, \ - 0x45, 0xd9, 0x14, 0x60, 0xb0, 0x7d, 0xbb, 0x93, 0xf2, 0x6b, 0x1e, 0x9f, \ - 0x33, 0xad, 0x0d, 0x8f, 0x8a, 0x3c, 0x56, 0x65, 0xe5, 0xdc, 0x44, 0xd9, \ - 0xcc, 0x66, 0x85, 0x07, 0xd5, 0xf8, 0x27, 0xb0, 0x4a, 0x35, 0xd0, 0x63, \ - 0x9e, 0x0a, 0x6e, 0x1b, 0xb7, 0xda, 0xf0, 0x7e, 0xab, 0xee, 0x0c, 0x10, \ - 0x93, 0x86, 0x49, 0x18, 0x34, 0xf3, 0xa8, 0x2a, 0xd2, 0x57, 0xf5, 0x2e, \ - 0xd4, 0x2f, 0x77, 0x29, 0x84, 0x61, 0x4d, 0x82, 0x50, 0x8f, 0xa7, 0x95, \ - 0x48, 0x70, 0xf5, 0x6e, 0x4d, 0xb2, 0xd5, 0x13, 0xc3, 0xd2, 0x1a, 0xed, \ - 0xe6, 0x43, 0xea, 0x42, 0x14, 0xeb, 0x74, 0xea, 0xc0, 0xed, 0x1f, 0xd4, \ - 0x57, 0x4e, 0xa9, 0xf3, 0xa8, 0xed, 0xd2, 0xe0, 0xc1, 0x30, 0x71, 0x30, \ - 0x32, 0x30, 0xd5, 0xd3, 0xf6, 0x08, 0xd0, 0x56, 0x4f, 0x46, 0x8e, 0xf2, \ - 0x5f, 0xf9, 0x3d, 0x67, 0x91, 0x88, 0x30, 0x2e, 0x42, 0xb2, 0xdf, 0x7d, \ - 0xfb, 0xe5, 0x0c, 0x77, 0xff, 0xec, 0x31, 0xc0, 0x78, 0x8f, 0xbf, 0xc2, \ - 0x7f, 0xca, 0xad, 0x6c, 0x21, 0xd6, 0x8d, 0xd9, 0x8b, 0x6a, 0x8e, 0x6f, \ - 0xe0, 0x9b, 0xf8, 0x10, 0x56, 0xcc, 0xb3, 0x8e, 0x13, 0x15, 0xe6, 0x34, \ - 0x04, 0x66, 0xc7, 0xee, 0xf9, 0x36, 0x0e, 0x6a, 0x95, 0xf6, 0x09, 0x9a, \ - 0x06, 0x67, 0xf4, 0x65, 0x71, 0xf8, 0xca, 0xa4, 0xb1, 0x25, 0xe0, 0xfe, \ - 0x3c, 0x8b, 0x35, 0x04, 0x67, 0xba, 0xe0, 0x4f, 0x76, 0x85, 0xfc, 0x7f, \ - 0xfc, 0x36, 0x6b, 0xb5, 0xe9, 0xcd, 0x2d, 0x03, 0x62, 0x4e, 0xb3, 0x3d, \ - 0x00, 0xcf, 0xaf, 0x76, 0xa0, 0x69, 0x56, 0x83, 0x6a, 0xd2, 0xa8, 0xd4, \ - 0xe7, 0x50, 0x71, 0xe6, 0xb5, 0x36, 0x05, 0x77, 0x05, 0x6d, 0x7b, 0xc8, \ - 0xe4, 0xc4, 0xfd, 0x4c, 0xd5, 0x21, 0x5f, 0x02, 0x03, 0x01, 0x00, 0x01, \ - 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, \ - 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, \ - 0x04, 0x14, 0x71, 0xa1, 0x00, 0x73, 0x72, 0x40, 0x2f, 0x54, 0x76, 0x5e, \ - 0x33, 0xfc, 0x52, 0x8f, 0xbc, 0xf1, 0xdd, 0x6b, 0x46, 0x21, 0x30, 0x1f, \ - 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb4, \ - 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, 0xa6, 0x95, \ - 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, \ - 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, \ - 0x01, 0x01, 0x00, 0x5e, 0x27, 0x6f, 0xd5, 0xde, 0x29, 0x2e, 0x50, 0x62, \ - 0x29, 0x61, 0x03, 0xf7, 0x9a, 0xcc, 0xc9, 0xc0, 0x5d, 0x80, 0x37, 0x20, \ - 0xc8, 0xda, 0x89, 0xc5, 0xa9, 0x05, 0x91, 0x17, 0xd1, 0xc8, 0x0d, 0xb2, \ - 0xd6, 0x69, 0x72, 0x4e, 0x7e, 0xee, 0x05, 0x74, 0x64, 0x34, 0xb6, 0x39, \ - 0x64, 0x5c, 0xca, 0xf3, 0x61, 0x82, 0x8e, 0x4d, 0x90, 0xd8, 0xe0, 0xf8, \ - 0x45, 0x94, 0x82, 0x3c, 0x02, 0x49, 0xa8, 0xba, 0x47, 0x1d, 0x4d, 0xf8, \ - 0xb7, 0xbd, 0x5c, 0x89, 0xf7, 0xef, 0xcb, 0x62, 0x8a, 0xf3, 0x56, 0x2f, \ - 0xaf, 0x17, 0x33, 0x46, 0x13, 0x00, 0x13, 0xae, 0x22, 0xfa, 0xa9, 0xda, \ - 0xc8, 0xfd, 0xd3, 0x77, 0x65, 0xee, 0x58, 0x94, 0x74, 0xe4, 0xf5, 0x4f, \ - 0xa1, 0x27, 0xa6, 0xb0, 0xd1, 0x0b, 0xb3, 0xd8, 0x16, 0xb6, 0xd7, 0x67, \ - 0x63, 0x2d, 0xdc, 0x7b, 0xe1, 0x18, 0xd9, 0x8d, 0x27, 0xed, 0x1b, 0x22, \ - 0xef, 0xdf, 0x36, 0x11, 0xe2, 0xc8, 0x00, 0x0e, 0xc7, 0xe9, 0xc6, 0xb8, \ - 0xd8, 0x4b, 0x3f, 0x35, 0x41, 0xff, 0xfc, 0x96, 0x49, 0x4f, 0x7d, 0x8e, \ - 0x3f, 0x47, 0x68, 0x33, 0x17, 0x83, 0x44, 0x0f, 0xaf, 0xa6, 0x59, 0x0a, \ - 0xa9, 0x32, 0xcb, 0x59, 0xfe, 0xdd, 0x5f, 0x6e, 0x8b, 0x22, 0xb8, 0x81, \ - 0x90, 0x16, 0x91, 0x0a, 0x04, 0x79, 0x62, 0xff, 0x4b, 0x04, 0xf1, 0x5c, \ - 0x34, 0xeb, 0x69, 0xce, 0xef, 0xcb, 0x6e, 0xb6, 0x3b, 0x40, 0x55, 0xca, \ - 0x24, 0xc2, 0x3e, 0x25, 0x70, 0xee, 0x74, 0x2b, 0x0e, 0x9f, 0xc2, 0x82, \ - 0x9a, 0x20, 0x38, 0x77, 0xa1, 0x26, 0x8a, 0xca, 0x9f, 0x87, 0x75, 0x77, \ - 0xe3, 0xce, 0x65, 0xec, 0x71, 0x10, 0x35, 0xcb, 0xcb, 0x4f, 0x19, 0x43, \ - 0xeb, 0x30, 0xd0, 0xca, 0x2d, 0x3f, 0xca, 0x46, 0x14, 0x61, 0x99, 0x30, \ - 0x41, 0x32, 0xb5, 0x37, 0x63, 0x6f, 0x97 \ + 0x30, 0x82, 0x03, 0x3f, 0x30, 0x82, 0x02, 0x27, 0xa0, 0x03, 0x02, 0x01, \ + 0x02, 0x02, 0x01, 0x04, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, \ + 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 0x31, 0x0b, 0x30, \ + 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, \ + 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, \ + 0x61, 0x72, 0x53, 0x53, 0x4c, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, \ + 0x04, 0x03, 0x0c, 0x10, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, \ + 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x43, 0x41, 0x30, 0x1e, 0x17, 0x0d, \ + 0x31, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, 0x34, 0x30, 0x36, \ + 0x5a, 0x17, 0x0d, 0x32, 0x39, 0x30, 0x32, 0x31, 0x30, 0x31, 0x34, 0x34, \ + 0x34, 0x30, 0x36, 0x5a, 0x30, 0x3c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, \ + 0x55, 0x04, 0x06, 0x13, 0x02, 0x4e, 0x4c, 0x31, 0x11, 0x30, 0x0f, 0x06, \ + 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x08, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, \ + 0x53, 0x4c, 0x31, 0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, \ + 0x11, 0x50, 0x6f, 0x6c, 0x61, 0x72, 0x53, 0x53, 0x4c, 0x20, 0x43, 0x6c, \ + 0x69, 0x65, 0x6e, 0x74, 0x20, 0x32, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, \ + 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, \ + 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, \ + 0x01, 0x01, 0x00, 0xc8, 0x74, 0xc4, 0xcc, 0xb9, 0xf9, 0xb5, 0x79, 0xe9, \ + 0x45, 0xd9, 0x14, 0x60, 0xb0, 0x7d, 0xbb, 0x93, 0xf2, 0x6b, 0x1e, 0x9f, \ + 0x33, 0xad, 0x0d, 0x8f, 0x8a, 0x3c, 0x56, 0x65, 0xe5, 0xdc, 0x44, 0xd9, \ + 0xcc, 0x66, 0x85, 0x07, 0xd5, 0xf8, 0x27, 0xb0, 0x4a, 0x35, 0xd0, 0x63, \ + 0x9e, 0x0a, 0x6e, 0x1b, 0xb7, 0xda, 0xf0, 0x7e, 0xab, 0xee, 0x0c, 0x10, \ + 0x93, 0x86, 0x49, 0x18, 0x34, 0xf3, 0xa8, 0x2a, 0xd2, 0x57, 0xf5, 0x2e, \ + 0xd4, 0x2f, 0x77, 0x29, 0x84, 0x61, 0x4d, 0x82, 0x50, 0x8f, 0xa7, 0x95, \ + 0x48, 0x70, 0xf5, 0x6e, 0x4d, 0xb2, 0xd5, 0x13, 0xc3, 0xd2, 0x1a, 0xed, \ + 0xe6, 0x43, 0xea, 0x42, 0x14, 0xeb, 0x74, 0xea, 0xc0, 0xed, 0x1f, 0xd4, \ + 0x57, 0x4e, 0xa9, 0xf3, 0xa8, 0xed, 0xd2, 0xe0, 0xc1, 0x30, 0x71, 0x30, \ + 0x32, 0x30, 0xd5, 0xd3, 0xf6, 0x08, 0xd0, 0x56, 0x4f, 0x46, 0x8e, 0xf2, \ + 0x5f, 0xf9, 0x3d, 0x67, 0x91, 0x88, 0x30, 0x2e, 0x42, 0xb2, 0xdf, 0x7d, \ + 0xfb, 0xe5, 0x0c, 0x77, 0xff, 0xec, 0x31, 0xc0, 0x78, 0x8f, 0xbf, 0xc2, \ + 0x7f, 0xca, 0xad, 0x6c, 0x21, 0xd6, 0x8d, 0xd9, 0x8b, 0x6a, 0x8e, 0x6f, \ + 0xe0, 0x9b, 0xf8, 0x10, 0x56, 0xcc, 0xb3, 0x8e, 0x13, 0x15, 0xe6, 0x34, \ + 0x04, 0x66, 0xc7, 0xee, 0xf9, 0x36, 0x0e, 0x6a, 0x95, 0xf6, 0x09, 0x9a, \ + 0x06, 0x67, 0xf4, 0x65, 0x71, 0xf8, 0xca, 0xa4, 0xb1, 0x25, 0xe0, 0xfe, \ + 0x3c, 0x8b, 0x35, 0x04, 0x67, 0xba, 0xe0, 0x4f, 0x76, 0x85, 0xfc, 0x7f, \ + 0xfc, 0x36, 0x6b, 0xb5, 0xe9, 0xcd, 0x2d, 0x03, 0x62, 0x4e, 0xb3, 0x3d, \ + 0x00, 0xcf, 0xaf, 0x76, 0xa0, 0x69, 0x56, 0x83, 0x6a, 0xd2, 0xa8, 0xd4, \ + 0xe7, 0x50, 0x71, 0xe6, 0xb5, 0x36, 0x05, 0x77, 0x05, 0x6d, 0x7b, 0xc8, \ + 0xe4, 0xc4, 0xfd, 0x4c, 0xd5, 0x21, 0x5f, 0x02, 0x03, 0x01, 0x00, 0x01, \ + 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, \ + 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, \ + 0x04, 0x14, 0x71, 0xa1, 0x00, 0x73, 0x72, 0x40, 0x2f, 0x54, 0x76, 0x5e, \ + 0x33, 0xfc, 0x52, 0x8f, 0xbc, 0xf1, 0xdd, 0x6b, 0x46, 0x21, 0x30, 0x1f, \ + 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0xb4, \ + 0x5a, 0xe4, 0xa5, 0xb3, 0xde, 0xd2, 0x52, 0xf6, 0xb9, 0xd5, 0xa6, 0x95, \ + 0x0f, 0xeb, 0x3e, 0xbc, 0xc7, 0xfd, 0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, \ + 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, \ + 0x01, 0x01, 0x00, 0x5e, 0x27, 0x6f, 0xd5, 0xde, 0x29, 0x2e, 0x50, 0x62, \ + 0x29, 0x61, 0x03, 0xf7, 0x9a, 0xcc, 0xc9, 0xc0, 0x5d, 0x80, 0x37, 0x20, \ + 0xc8, 0xda, 0x89, 0xc5, 0xa9, 0x05, 0x91, 0x17, 0xd1, 0xc8, 0x0d, 0xb2, \ + 0xd6, 0x69, 0x72, 0x4e, 0x7e, 0xee, 0x05, 0x74, 0x64, 0x34, 0xb6, 0x39, \ + 0x64, 0x5c, 0xca, 0xf3, 0x61, 0x82, 0x8e, 0x4d, 0x90, 0xd8, 0xe0, 0xf8, \ + 0x45, 0x94, 0x82, 0x3c, 0x02, 0x49, 0xa8, 0xba, 0x47, 0x1d, 0x4d, 0xf8, \ + 0xb7, 0xbd, 0x5c, 0x89, 0xf7, 0xef, 0xcb, 0x62, 0x8a, 0xf3, 0x56, 0x2f, \ + 0xaf, 0x17, 0x33, 0x46, 0x13, 0x00, 0x13, 0xae, 0x22, 0xfa, 0xa9, 0xda, \ + 0xc8, 0xfd, 0xd3, 0x77, 0x65, 0xee, 0x58, 0x94, 0x74, 0xe4, 0xf5, 0x4f, \ + 0xa1, 0x27, 0xa6, 0xb0, 0xd1, 0x0b, 0xb3, 0xd8, 0x16, 0xb6, 0xd7, 0x67, \ + 0x63, 0x2d, 0xdc, 0x7b, 0xe1, 0x18, 0xd9, 0x8d, 0x27, 0xed, 0x1b, 0x22, \ + 0xef, 0xdf, 0x36, 0x11, 0xe2, 0xc8, 0x00, 0x0e, 0xc7, 0xe9, 0xc6, 0xb8, \ + 0xd8, 0x4b, 0x3f, 0x35, 0x41, 0xff, 0xfc, 0x96, 0x49, 0x4f, 0x7d, 0x8e, \ + 0x3f, 0x47, 0x68, 0x33, 0x17, 0x83, 0x44, 0x0f, 0xaf, 0xa6, 0x59, 0x0a, \ + 0xa9, 0x32, 0xcb, 0x59, 0xfe, 0xdd, 0x5f, 0x6e, 0x8b, 0x22, 0xb8, 0x81, \ + 0x90, 0x16, 0x91, 0x0a, 0x04, 0x79, 0x62, 0xff, 0x4b, 0x04, 0xf1, 0x5c, \ + 0x34, 0xeb, 0x69, 0xce, 0xef, 0xcb, 0x6e, 0xb6, 0x3b, 0x40, 0x55, 0xca, \ + 0x24, 0xc2, 0x3e, 0x25, 0x70, 0xee, 0x74, 0x2b, 0x0e, 0x9f, 0xc2, 0x82, \ + 0x9a, 0x20, 0x38, 0x77, 0xa1, 0x26, 0x8a, 0xca, 0x9f, 0x87, 0x75, 0x77, \ + 0xe3, 0xce, 0x65, 0xec, 0x71, 0x10, 0x35, 0xcb, 0xcb, 0x4f, 0x19, 0x43, \ + 0xeb, 0x30, 0xd0, 0xca, 0x2d, 0x3f, 0xca, 0x46, 0x14, 0x61, 0x99, 0x30, \ + 0x41, 0x32, 0xb5, 0x37, 0x63, 0x6f, 0x97 \ } /* END FILE */ @@ -1178,106 +1178,106 @@ /* This was generated from tests/data_files/cli-rsa.key.der using `xxd -i`. */ /* BEGIN FILE binary macro TEST_CLI_KEY_RSA_DER tests/data_files/cli-rsa.key.der */ #define TEST_CLI_KEY_RSA_DER { \ - 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ - 0xc8, 0x74, 0xc4, 0xcc, 0xb9, 0xf9, 0xb5, 0x79, 0xe9, 0x45, 0xd9, 0x14, \ - 0x60, 0xb0, 0x7d, 0xbb, 0x93, 0xf2, 0x6b, 0x1e, 0x9f, 0x33, 0xad, 0x0d, \ - 0x8f, 0x8a, 0x3c, 0x56, 0x65, 0xe5, 0xdc, 0x44, 0xd9, 0xcc, 0x66, 0x85, \ - 0x07, 0xd5, 0xf8, 0x27, 0xb0, 0x4a, 0x35, 0xd0, 0x63, 0x9e, 0x0a, 0x6e, \ - 0x1b, 0xb7, 0xda, 0xf0, 0x7e, 0xab, 0xee, 0x0c, 0x10, 0x93, 0x86, 0x49, \ - 0x18, 0x34, 0xf3, 0xa8, 0x2a, 0xd2, 0x57, 0xf5, 0x2e, 0xd4, 0x2f, 0x77, \ - 0x29, 0x84, 0x61, 0x4d, 0x82, 0x50, 0x8f, 0xa7, 0x95, 0x48, 0x70, 0xf5, \ - 0x6e, 0x4d, 0xb2, 0xd5, 0x13, 0xc3, 0xd2, 0x1a, 0xed, 0xe6, 0x43, 0xea, \ - 0x42, 0x14, 0xeb, 0x74, 0xea, 0xc0, 0xed, 0x1f, 0xd4, 0x57, 0x4e, 0xa9, \ - 0xf3, 0xa8, 0xed, 0xd2, 0xe0, 0xc1, 0x30, 0x71, 0x30, 0x32, 0x30, 0xd5, \ - 0xd3, 0xf6, 0x08, 0xd0, 0x56, 0x4f, 0x46, 0x8e, 0xf2, 0x5f, 0xf9, 0x3d, \ - 0x67, 0x91, 0x88, 0x30, 0x2e, 0x42, 0xb2, 0xdf, 0x7d, 0xfb, 0xe5, 0x0c, \ - 0x77, 0xff, 0xec, 0x31, 0xc0, 0x78, 0x8f, 0xbf, 0xc2, 0x7f, 0xca, 0xad, \ - 0x6c, 0x21, 0xd6, 0x8d, 0xd9, 0x8b, 0x6a, 0x8e, 0x6f, 0xe0, 0x9b, 0xf8, \ - 0x10, 0x56, 0xcc, 0xb3, 0x8e, 0x13, 0x15, 0xe6, 0x34, 0x04, 0x66, 0xc7, \ - 0xee, 0xf9, 0x36, 0x0e, 0x6a, 0x95, 0xf6, 0x09, 0x9a, 0x06, 0x67, 0xf4, \ - 0x65, 0x71, 0xf8, 0xca, 0xa4, 0xb1, 0x25, 0xe0, 0xfe, 0x3c, 0x8b, 0x35, \ - 0x04, 0x67, 0xba, 0xe0, 0x4f, 0x76, 0x85, 0xfc, 0x7f, 0xfc, 0x36, 0x6b, \ - 0xb5, 0xe9, 0xcd, 0x2d, 0x03, 0x62, 0x4e, 0xb3, 0x3d, 0x00, 0xcf, 0xaf, \ - 0x76, 0xa0, 0x69, 0x56, 0x83, 0x6a, 0xd2, 0xa8, 0xd4, 0xe7, 0x50, 0x71, \ - 0xe6, 0xb5, 0x36, 0x05, 0x77, 0x05, 0x6d, 0x7b, 0xc8, 0xe4, 0xc4, 0xfd, \ - 0x4c, 0xd5, 0x21, 0x5f, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ - 0x00, 0x67, 0x4d, 0xb5, 0xf6, 0x03, 0x89, 0xaa, 0x7a, 0x6f, 0x3b, 0x2d, \ - 0xca, 0x10, 0xa2, 0x23, 0xc9, 0xbd, 0x4e, 0xda, 0xe1, 0x67, 0x0e, 0x0c, \ - 0x8a, 0xc6, 0x84, 0x68, 0xdf, 0xe5, 0x97, 0x75, 0xd2, 0x8d, 0xa3, 0x86, \ - 0xd9, 0xdb, 0xd5, 0xeb, 0x13, 0x19, 0x08, 0xc5, 0x7e, 0xe5, 0x37, 0x97, \ - 0x0c, 0x73, 0x80, 0x66, 0x76, 0x35, 0xf1, 0x88, 0xb5, 0xf2, 0xfc, 0xf3, \ - 0xe1, 0x4b, 0x76, 0x4e, 0x73, 0x45, 0xce, 0x2c, 0xc2, 0x10, 0x26, 0x0d, \ - 0x68, 0x0d, 0x9f, 0x49, 0x3d, 0xd6, 0x80, 0x89, 0xe7, 0xc5, 0x49, 0x15, \ - 0xdd, 0x85, 0xc0, 0xc8, 0xfe, 0x82, 0x37, 0x12, 0x5a, 0x0a, 0x6b, 0xf6, \ - 0x68, 0x0d, 0x32, 0x16, 0xbd, 0xa4, 0x15, 0x54, 0x9e, 0x68, 0xa1, 0xad, \ - 0xca, 0x6b, 0xe5, 0x8c, 0xda, 0x76, 0x35, 0x59, 0x2f, 0x9b, 0xb4, 0xe1, \ - 0xf1, 0xf0, 0x50, 0x04, 0xee, 0xc8, 0xec, 0x05, 0xe1, 0xcf, 0x8d, 0xe4, \ - 0xd2, 0x64, 0x7b, 0x5e, 0x63, 0xe0, 0x7b, 0x07, 0xbc, 0x02, 0x96, 0x4e, \ - 0x1b, 0x78, 0x6c, 0xb6, 0x43, 0x9a, 0x32, 0xf6, 0xd6, 0x02, 0xf5, 0x80, \ - 0xcc, 0x26, 0x6e, 0xa5, 0xd0, 0xe3, 0x65, 0x88, 0xce, 0x26, 0xa9, 0x40, \ - 0xe1, 0xe1, 0x00, 0xe0, 0x7f, 0x3f, 0xc3, 0xb1, 0x7c, 0xde, 0xbe, 0x42, \ - 0xba, 0x07, 0x81, 0x13, 0xc2, 0xe0, 0x11, 0x11, 0x23, 0x2c, 0xf8, 0xb2, \ - 0x7a, 0x3a, 0xd4, 0xe4, 0x7d, 0x5f, 0xb9, 0xb1, 0x18, 0xfa, 0x1d, 0x1d, \ - 0x97, 0x91, 0xd9, 0x04, 0x9e, 0xbc, 0xc9, 0xb4, 0xd7, 0x7d, 0x0e, 0x54, \ - 0xf6, 0x8f, 0xd0, 0x28, 0x0d, 0xdd, 0x77, 0x4b, 0x68, 0x04, 0x48, 0x61, \ - 0x75, 0x15, 0x03, 0x1b, 0x35, 0xad, 0x8e, 0xfc, 0x24, 0x11, 0x07, 0xea, \ - 0x17, 0x5a, 0xde, 0x19, 0x68, 0xff, 0xb6, 0x87, 0x7f, 0x80, 0x2a, 0x5f, \ - 0x0c, 0x58, 0xba, 0x5f, 0x41, 0x02, 0x81, 0x81, 0x00, 0xe3, 0x03, 0xaf, \ - 0xfe, 0x98, 0xd2, 0x0b, 0x7b, 0x72, 0xe9, 0x3b, 0x8e, 0xbc, 0xa5, 0xf6, \ - 0xac, 0xe5, 0x22, 0x06, 0xb2, 0xd7, 0x5e, 0xfd, 0x89, 0x4b, 0x16, 0x67, \ - 0x32, 0x83, 0x22, 0x58, 0x8e, 0x62, 0xa4, 0xb4, 0x2d, 0xf9, 0x16, 0x13, \ - 0x54, 0xf6, 0x9f, 0x2f, 0xf9, 0xbb, 0x0e, 0x7e, 0x8c, 0x6f, 0x08, 0xda, \ - 0xc8, 0xe9, 0x1c, 0x66, 0x10, 0x70, 0x93, 0x90, 0x8d, 0xcf, 0x90, 0x3a, \ - 0x43, 0x89, 0x49, 0xeb, 0x83, 0x2a, 0xfe, 0x5a, 0x87, 0xce, 0x74, 0x42, \ - 0x41, 0x0d, 0x8c, 0x73, 0x51, 0xbc, 0x7b, 0x20, 0xc5, 0xfd, 0xf6, 0x0b, \ - 0x65, 0xed, 0xa9, 0x2e, 0xfc, 0x0f, 0xf5, 0x50, 0xf9, 0x8d, 0x37, 0x36, \ - 0x9a, 0x20, 0xdf, 0xc3, 0xe3, 0x27, 0xbc, 0x98, 0x72, 0xc1, 0x14, 0x4b, \ - 0x71, 0xe9, 0x83, 0x14, 0xff, 0x24, 0xe2, 0x14, 0x15, 0xb6, 0x6f, 0x0f, \ - 0x32, 0x9d, 0xd9, 0x98, 0xd1, 0x02, 0x81, 0x81, 0x00, 0xe2, 0x0c, 0xfb, \ - 0xc3, 0x33, 0x9b, 0x47, 0x88, 0x27, 0xf2, 0x26, 0xde, 0xeb, 0x5e, 0xee, \ - 0x40, 0xf6, 0x63, 0x5b, 0x35, 0x23, 0xf5, 0xd5, 0x07, 0x61, 0xdf, 0xa2, \ - 0x9f, 0x58, 0x30, 0x04, 0x22, 0x2b, 0xb4, 0xd9, 0xda, 0x46, 0x7f, 0x48, \ - 0xf5, 0x4f, 0xd0, 0xea, 0xd7, 0xa0, 0x45, 0x8a, 0x62, 0x8b, 0x8c, 0xac, \ - 0x73, 0x5e, 0xfa, 0x36, 0x65, 0x3e, 0xba, 0x6c, 0xba, 0x5e, 0x6b, 0x92, \ - 0x29, 0x5e, 0x6a, 0x0f, 0xd6, 0xd2, 0xa5, 0x95, 0x86, 0xda, 0x72, 0xc5, \ - 0x9e, 0xc9, 0x6b, 0x37, 0x5e, 0x4b, 0x9b, 0x77, 0xe1, 0x67, 0x1a, 0x1e, \ - 0x30, 0xd8, 0x41, 0x68, 0x40, 0xd3, 0x9c, 0xb4, 0xf6, 0xeb, 0x2a, 0x22, \ - 0xdf, 0x78, 0x29, 0xd2, 0x64, 0x92, 0x5b, 0x2f, 0x78, 0x64, 0x4a, 0xa2, \ - 0xa6, 0x6b, 0x3e, 0x50, 0xb1, 0x7a, 0xb1, 0x8d, 0x59, 0xb4, 0x55, 0xba, \ - 0xb6, 0x91, 0x85, 0xa3, 0x2f, 0x02, 0x81, 0x80, 0x10, 0x1e, 0x19, 0xe7, \ - 0xbc, 0x97, 0xe5, 0x22, 0xcd, 0xa4, 0xcb, 0x8a, 0xb5, 0xd0, 0x1e, 0xb4, \ - 0x65, 0xcc, 0x45, 0xa7, 0x7a, 0xed, 0x0e, 0x99, 0x29, 0xd0, 0x9c, 0x61, \ - 0x14, 0xb8, 0x62, 0x8b, 0x31, 0x6b, 0xba, 0x33, 0x2d, 0x65, 0x28, 0xd8, \ - 0x36, 0x6e, 0x54, 0xec, 0xa9, 0x20, 0x3d, 0x51, 0xe1, 0x2c, 0x42, 0xc4, \ - 0x52, 0xf0, 0xa6, 0x3a, 0x72, 0x93, 0xb7, 0x86, 0xa9, 0xfe, 0xf6, 0x74, \ - 0x07, 0x12, 0x4d, 0x7b, 0x51, 0x99, 0x1f, 0x7a, 0x56, 0xe9, 0x20, 0x2f, \ - 0x18, 0x34, 0x29, 0x97, 0xdb, 0x06, 0xee, 0xeb, 0xbf, 0xbd, 0x31, 0x4f, \ - 0xfa, 0x50, 0xb1, 0xba, 0x49, 0xb3, 0xc4, 0x1d, 0x03, 0xae, 0xb0, 0xdc, \ - 0xbe, 0x8a, 0xc4, 0x90, 0xa3, 0x28, 0x9b, 0xb6, 0x42, 0x09, 0x1b, 0xd6, \ - 0x29, 0x9b, 0x19, 0xe9, 0x87, 0x87, 0xd9, 0x9f, 0x35, 0x05, 0xab, 0x91, \ - 0x8f, 0x6d, 0x7c, 0x91, 0x02, 0x81, 0x81, 0x00, 0x94, 0x57, 0xf0, 0xe0, \ - 0x28, 0xfd, 0xbd, 0xf3, 0x9c, 0x43, 0x4d, 0x3e, 0xfd, 0x37, 0x4f, 0x23, \ - 0x52, 0x8d, 0xe1, 0x4c, 0xfe, 0x4c, 0x55, 0x80, 0x82, 0xba, 0x3f, 0xfe, \ - 0x51, 0xe1, 0x30, 0xd5, 0x3b, 0xd9, 0x73, 0x1d, 0xcb, 0x25, 0xbc, 0xbb, \ - 0x3f, 0xa5, 0xda, 0x77, 0xa6, 0xb5, 0xfc, 0x1a, 0xaf, 0x79, 0xa1, 0xb2, \ - 0x14, 0xa2, 0x1f, 0x10, 0x52, 0x1a, 0x05, 0x40, 0x48, 0xb6, 0x4f, 0x34, \ - 0xd6, 0xc0, 0xc3, 0xa4, 0x36, 0x98, 0x73, 0x88, 0x0b, 0xd3, 0x45, 0xdc, \ - 0xee, 0x51, 0x6e, 0x04, 0x73, 0x99, 0x93, 0x12, 0x58, 0x96, 0xcb, 0x39, \ - 0x42, 0xb1, 0xa9, 0xb8, 0xe1, 0x25, 0xf5, 0x9c, 0x14, 0xb7, 0x92, 0x2b, \ - 0x14, 0xb0, 0x5d, 0x61, 0xa2, 0xaa, 0x34, 0x7c, 0xcd, 0x54, 0x2d, 0x69, \ - 0x08, 0xf7, 0xdb, 0xfc, 0x9c, 0x87, 0xe8, 0x3a, 0xf6, 0x1d, 0x4c, 0x6a, \ - 0x83, 0x15, 0x30, 0x01, 0x02, 0x81, 0x81, 0x00, 0x9c, 0x53, 0xa1, 0xb6, \ - 0x2f, 0xc0, 0x06, 0xf5, 0xdf, 0x5c, 0xd1, 0x4a, 0x4e, 0xc8, 0xbd, 0x6d, \ - 0x32, 0xf1, 0x5e, 0xe5, 0x3b, 0x70, 0xd0, 0xa8, 0xe5, 0x41, 0x57, 0x6c, \ - 0x87, 0x53, 0x0f, 0xeb, 0x28, 0xa0, 0x62, 0x8f, 0x43, 0x62, 0xec, 0x2e, \ - 0x6c, 0x71, 0x55, 0x5b, 0x6a, 0xf4, 0x74, 0x14, 0xea, 0x7a, 0x03, 0xf6, \ - 0xfc, 0xa4, 0xce, 0xc4, 0xac, 0xda, 0x1d, 0xf0, 0xb5, 0xa9, 0xfd, 0x11, \ - 0x18, 0x3b, 0x14, 0xa0, 0x90, 0x8d, 0x26, 0xb7, 0x75, 0x73, 0x0a, 0x02, \ - 0x2c, 0x6f, 0x0f, 0xd8, 0x41, 0x78, 0xc3, 0x73, 0x81, 0xac, 0xaa, 0xaf, \ - 0xf2, 0xee, 0x32, 0xb5, 0x8d, 0x05, 0xf9, 0x59, 0x5a, 0x9e, 0x3e, 0x65, \ - 0x9b, 0x74, 0xda, 0xa0, 0x74, 0x95, 0x17, 0x5f, 0x8d, 0x58, 0xfc, 0x8e, \ - 0x4e, 0x2c, 0x1e, 0xbc, 0x81, 0x02, 0x18, 0xac, 0x12, 0xc6, 0xf9, 0x64, \ - 0x8b, 0x87, 0xc3, 0x00 \ + 0x30, 0x82, 0x04, 0xa4, 0x02, 0x01, 0x00, 0x02, 0x82, 0x01, 0x01, 0x00, \ + 0xc8, 0x74, 0xc4, 0xcc, 0xb9, 0xf9, 0xb5, 0x79, 0xe9, 0x45, 0xd9, 0x14, \ + 0x60, 0xb0, 0x7d, 0xbb, 0x93, 0xf2, 0x6b, 0x1e, 0x9f, 0x33, 0xad, 0x0d, \ + 0x8f, 0x8a, 0x3c, 0x56, 0x65, 0xe5, 0xdc, 0x44, 0xd9, 0xcc, 0x66, 0x85, \ + 0x07, 0xd5, 0xf8, 0x27, 0xb0, 0x4a, 0x35, 0xd0, 0x63, 0x9e, 0x0a, 0x6e, \ + 0x1b, 0xb7, 0xda, 0xf0, 0x7e, 0xab, 0xee, 0x0c, 0x10, 0x93, 0x86, 0x49, \ + 0x18, 0x34, 0xf3, 0xa8, 0x2a, 0xd2, 0x57, 0xf5, 0x2e, 0xd4, 0x2f, 0x77, \ + 0x29, 0x84, 0x61, 0x4d, 0x82, 0x50, 0x8f, 0xa7, 0x95, 0x48, 0x70, 0xf5, \ + 0x6e, 0x4d, 0xb2, 0xd5, 0x13, 0xc3, 0xd2, 0x1a, 0xed, 0xe6, 0x43, 0xea, \ + 0x42, 0x14, 0xeb, 0x74, 0xea, 0xc0, 0xed, 0x1f, 0xd4, 0x57, 0x4e, 0xa9, \ + 0xf3, 0xa8, 0xed, 0xd2, 0xe0, 0xc1, 0x30, 0x71, 0x30, 0x32, 0x30, 0xd5, \ + 0xd3, 0xf6, 0x08, 0xd0, 0x56, 0x4f, 0x46, 0x8e, 0xf2, 0x5f, 0xf9, 0x3d, \ + 0x67, 0x91, 0x88, 0x30, 0x2e, 0x42, 0xb2, 0xdf, 0x7d, 0xfb, 0xe5, 0x0c, \ + 0x77, 0xff, 0xec, 0x31, 0xc0, 0x78, 0x8f, 0xbf, 0xc2, 0x7f, 0xca, 0xad, \ + 0x6c, 0x21, 0xd6, 0x8d, 0xd9, 0x8b, 0x6a, 0x8e, 0x6f, 0xe0, 0x9b, 0xf8, \ + 0x10, 0x56, 0xcc, 0xb3, 0x8e, 0x13, 0x15, 0xe6, 0x34, 0x04, 0x66, 0xc7, \ + 0xee, 0xf9, 0x36, 0x0e, 0x6a, 0x95, 0xf6, 0x09, 0x9a, 0x06, 0x67, 0xf4, \ + 0x65, 0x71, 0xf8, 0xca, 0xa4, 0xb1, 0x25, 0xe0, 0xfe, 0x3c, 0x8b, 0x35, \ + 0x04, 0x67, 0xba, 0xe0, 0x4f, 0x76, 0x85, 0xfc, 0x7f, 0xfc, 0x36, 0x6b, \ + 0xb5, 0xe9, 0xcd, 0x2d, 0x03, 0x62, 0x4e, 0xb3, 0x3d, 0x00, 0xcf, 0xaf, \ + 0x76, 0xa0, 0x69, 0x56, 0x83, 0x6a, 0xd2, 0xa8, 0xd4, 0xe7, 0x50, 0x71, \ + 0xe6, 0xb5, 0x36, 0x05, 0x77, 0x05, 0x6d, 0x7b, 0xc8, 0xe4, 0xc4, 0xfd, \ + 0x4c, 0xd5, 0x21, 0x5f, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x82, 0x01, \ + 0x00, 0x67, 0x4d, 0xb5, 0xf6, 0x03, 0x89, 0xaa, 0x7a, 0x6f, 0x3b, 0x2d, \ + 0xca, 0x10, 0xa2, 0x23, 0xc9, 0xbd, 0x4e, 0xda, 0xe1, 0x67, 0x0e, 0x0c, \ + 0x8a, 0xc6, 0x84, 0x68, 0xdf, 0xe5, 0x97, 0x75, 0xd2, 0x8d, 0xa3, 0x86, \ + 0xd9, 0xdb, 0xd5, 0xeb, 0x13, 0x19, 0x08, 0xc5, 0x7e, 0xe5, 0x37, 0x97, \ + 0x0c, 0x73, 0x80, 0x66, 0x76, 0x35, 0xf1, 0x88, 0xb5, 0xf2, 0xfc, 0xf3, \ + 0xe1, 0x4b, 0x76, 0x4e, 0x73, 0x45, 0xce, 0x2c, 0xc2, 0x10, 0x26, 0x0d, \ + 0x68, 0x0d, 0x9f, 0x49, 0x3d, 0xd6, 0x80, 0x89, 0xe7, 0xc5, 0x49, 0x15, \ + 0xdd, 0x85, 0xc0, 0xc8, 0xfe, 0x82, 0x37, 0x12, 0x5a, 0x0a, 0x6b, 0xf6, \ + 0x68, 0x0d, 0x32, 0x16, 0xbd, 0xa4, 0x15, 0x54, 0x9e, 0x68, 0xa1, 0xad, \ + 0xca, 0x6b, 0xe5, 0x8c, 0xda, 0x76, 0x35, 0x59, 0x2f, 0x9b, 0xb4, 0xe1, \ + 0xf1, 0xf0, 0x50, 0x04, 0xee, 0xc8, 0xec, 0x05, 0xe1, 0xcf, 0x8d, 0xe4, \ + 0xd2, 0x64, 0x7b, 0x5e, 0x63, 0xe0, 0x7b, 0x07, 0xbc, 0x02, 0x96, 0x4e, \ + 0x1b, 0x78, 0x6c, 0xb6, 0x43, 0x9a, 0x32, 0xf6, 0xd6, 0x02, 0xf5, 0x80, \ + 0xcc, 0x26, 0x6e, 0xa5, 0xd0, 0xe3, 0x65, 0x88, 0xce, 0x26, 0xa9, 0x40, \ + 0xe1, 0xe1, 0x00, 0xe0, 0x7f, 0x3f, 0xc3, 0xb1, 0x7c, 0xde, 0xbe, 0x42, \ + 0xba, 0x07, 0x81, 0x13, 0xc2, 0xe0, 0x11, 0x11, 0x23, 0x2c, 0xf8, 0xb2, \ + 0x7a, 0x3a, 0xd4, 0xe4, 0x7d, 0x5f, 0xb9, 0xb1, 0x18, 0xfa, 0x1d, 0x1d, \ + 0x97, 0x91, 0xd9, 0x04, 0x9e, 0xbc, 0xc9, 0xb4, 0xd7, 0x7d, 0x0e, 0x54, \ + 0xf6, 0x8f, 0xd0, 0x28, 0x0d, 0xdd, 0x77, 0x4b, 0x68, 0x04, 0x48, 0x61, \ + 0x75, 0x15, 0x03, 0x1b, 0x35, 0xad, 0x8e, 0xfc, 0x24, 0x11, 0x07, 0xea, \ + 0x17, 0x5a, 0xde, 0x19, 0x68, 0xff, 0xb6, 0x87, 0x7f, 0x80, 0x2a, 0x5f, \ + 0x0c, 0x58, 0xba, 0x5f, 0x41, 0x02, 0x81, 0x81, 0x00, 0xe3, 0x03, 0xaf, \ + 0xfe, 0x98, 0xd2, 0x0b, 0x7b, 0x72, 0xe9, 0x3b, 0x8e, 0xbc, 0xa5, 0xf6, \ + 0xac, 0xe5, 0x22, 0x06, 0xb2, 0xd7, 0x5e, 0xfd, 0x89, 0x4b, 0x16, 0x67, \ + 0x32, 0x83, 0x22, 0x58, 0x8e, 0x62, 0xa4, 0xb4, 0x2d, 0xf9, 0x16, 0x13, \ + 0x54, 0xf6, 0x9f, 0x2f, 0xf9, 0xbb, 0x0e, 0x7e, 0x8c, 0x6f, 0x08, 0xda, \ + 0xc8, 0xe9, 0x1c, 0x66, 0x10, 0x70, 0x93, 0x90, 0x8d, 0xcf, 0x90, 0x3a, \ + 0x43, 0x89, 0x49, 0xeb, 0x83, 0x2a, 0xfe, 0x5a, 0x87, 0xce, 0x74, 0x42, \ + 0x41, 0x0d, 0x8c, 0x73, 0x51, 0xbc, 0x7b, 0x20, 0xc5, 0xfd, 0xf6, 0x0b, \ + 0x65, 0xed, 0xa9, 0x2e, 0xfc, 0x0f, 0xf5, 0x50, 0xf9, 0x8d, 0x37, 0x36, \ + 0x9a, 0x20, 0xdf, 0xc3, 0xe3, 0x27, 0xbc, 0x98, 0x72, 0xc1, 0x14, 0x4b, \ + 0x71, 0xe9, 0x83, 0x14, 0xff, 0x24, 0xe2, 0x14, 0x15, 0xb6, 0x6f, 0x0f, \ + 0x32, 0x9d, 0xd9, 0x98, 0xd1, 0x02, 0x81, 0x81, 0x00, 0xe2, 0x0c, 0xfb, \ + 0xc3, 0x33, 0x9b, 0x47, 0x88, 0x27, 0xf2, 0x26, 0xde, 0xeb, 0x5e, 0xee, \ + 0x40, 0xf6, 0x63, 0x5b, 0x35, 0x23, 0xf5, 0xd5, 0x07, 0x61, 0xdf, 0xa2, \ + 0x9f, 0x58, 0x30, 0x04, 0x22, 0x2b, 0xb4, 0xd9, 0xda, 0x46, 0x7f, 0x48, \ + 0xf5, 0x4f, 0xd0, 0xea, 0xd7, 0xa0, 0x45, 0x8a, 0x62, 0x8b, 0x8c, 0xac, \ + 0x73, 0x5e, 0xfa, 0x36, 0x65, 0x3e, 0xba, 0x6c, 0xba, 0x5e, 0x6b, 0x92, \ + 0x29, 0x5e, 0x6a, 0x0f, 0xd6, 0xd2, 0xa5, 0x95, 0x86, 0xda, 0x72, 0xc5, \ + 0x9e, 0xc9, 0x6b, 0x37, 0x5e, 0x4b, 0x9b, 0x77, 0xe1, 0x67, 0x1a, 0x1e, \ + 0x30, 0xd8, 0x41, 0x68, 0x40, 0xd3, 0x9c, 0xb4, 0xf6, 0xeb, 0x2a, 0x22, \ + 0xdf, 0x78, 0x29, 0xd2, 0x64, 0x92, 0x5b, 0x2f, 0x78, 0x64, 0x4a, 0xa2, \ + 0xa6, 0x6b, 0x3e, 0x50, 0xb1, 0x7a, 0xb1, 0x8d, 0x59, 0xb4, 0x55, 0xba, \ + 0xb6, 0x91, 0x85, 0xa3, 0x2f, 0x02, 0x81, 0x80, 0x10, 0x1e, 0x19, 0xe7, \ + 0xbc, 0x97, 0xe5, 0x22, 0xcd, 0xa4, 0xcb, 0x8a, 0xb5, 0xd0, 0x1e, 0xb4, \ + 0x65, 0xcc, 0x45, 0xa7, 0x7a, 0xed, 0x0e, 0x99, 0x29, 0xd0, 0x9c, 0x61, \ + 0x14, 0xb8, 0x62, 0x8b, 0x31, 0x6b, 0xba, 0x33, 0x2d, 0x65, 0x28, 0xd8, \ + 0x36, 0x6e, 0x54, 0xec, 0xa9, 0x20, 0x3d, 0x51, 0xe1, 0x2c, 0x42, 0xc4, \ + 0x52, 0xf0, 0xa6, 0x3a, 0x72, 0x93, 0xb7, 0x86, 0xa9, 0xfe, 0xf6, 0x74, \ + 0x07, 0x12, 0x4d, 0x7b, 0x51, 0x99, 0x1f, 0x7a, 0x56, 0xe9, 0x20, 0x2f, \ + 0x18, 0x34, 0x29, 0x97, 0xdb, 0x06, 0xee, 0xeb, 0xbf, 0xbd, 0x31, 0x4f, \ + 0xfa, 0x50, 0xb1, 0xba, 0x49, 0xb3, 0xc4, 0x1d, 0x03, 0xae, 0xb0, 0xdc, \ + 0xbe, 0x8a, 0xc4, 0x90, 0xa3, 0x28, 0x9b, 0xb6, 0x42, 0x09, 0x1b, 0xd6, \ + 0x29, 0x9b, 0x19, 0xe9, 0x87, 0x87, 0xd9, 0x9f, 0x35, 0x05, 0xab, 0x91, \ + 0x8f, 0x6d, 0x7c, 0x91, 0x02, 0x81, 0x81, 0x00, 0x94, 0x57, 0xf0, 0xe0, \ + 0x28, 0xfd, 0xbd, 0xf3, 0x9c, 0x43, 0x4d, 0x3e, 0xfd, 0x37, 0x4f, 0x23, \ + 0x52, 0x8d, 0xe1, 0x4c, 0xfe, 0x4c, 0x55, 0x80, 0x82, 0xba, 0x3f, 0xfe, \ + 0x51, 0xe1, 0x30, 0xd5, 0x3b, 0xd9, 0x73, 0x1d, 0xcb, 0x25, 0xbc, 0xbb, \ + 0x3f, 0xa5, 0xda, 0x77, 0xa6, 0xb5, 0xfc, 0x1a, 0xaf, 0x79, 0xa1, 0xb2, \ + 0x14, 0xa2, 0x1f, 0x10, 0x52, 0x1a, 0x05, 0x40, 0x48, 0xb6, 0x4f, 0x34, \ + 0xd6, 0xc0, 0xc3, 0xa4, 0x36, 0x98, 0x73, 0x88, 0x0b, 0xd3, 0x45, 0xdc, \ + 0xee, 0x51, 0x6e, 0x04, 0x73, 0x99, 0x93, 0x12, 0x58, 0x96, 0xcb, 0x39, \ + 0x42, 0xb1, 0xa9, 0xb8, 0xe1, 0x25, 0xf5, 0x9c, 0x14, 0xb7, 0x92, 0x2b, \ + 0x14, 0xb0, 0x5d, 0x61, 0xa2, 0xaa, 0x34, 0x7c, 0xcd, 0x54, 0x2d, 0x69, \ + 0x08, 0xf7, 0xdb, 0xfc, 0x9c, 0x87, 0xe8, 0x3a, 0xf6, 0x1d, 0x4c, 0x6a, \ + 0x83, 0x15, 0x30, 0x01, 0x02, 0x81, 0x81, 0x00, 0x9c, 0x53, 0xa1, 0xb6, \ + 0x2f, 0xc0, 0x06, 0xf5, 0xdf, 0x5c, 0xd1, 0x4a, 0x4e, 0xc8, 0xbd, 0x6d, \ + 0x32, 0xf1, 0x5e, 0xe5, 0x3b, 0x70, 0xd0, 0xa8, 0xe5, 0x41, 0x57, 0x6c, \ + 0x87, 0x53, 0x0f, 0xeb, 0x28, 0xa0, 0x62, 0x8f, 0x43, 0x62, 0xec, 0x2e, \ + 0x6c, 0x71, 0x55, 0x5b, 0x6a, 0xf4, 0x74, 0x14, 0xea, 0x7a, 0x03, 0xf6, \ + 0xfc, 0xa4, 0xce, 0xc4, 0xac, 0xda, 0x1d, 0xf0, 0xb5, 0xa9, 0xfd, 0x11, \ + 0x18, 0x3b, 0x14, 0xa0, 0x90, 0x8d, 0x26, 0xb7, 0x75, 0x73, 0x0a, 0x02, \ + 0x2c, 0x6f, 0x0f, 0xd8, 0x41, 0x78, 0xc3, 0x73, 0x81, 0xac, 0xaa, 0xaf, \ + 0xf2, 0xee, 0x32, 0xb5, 0x8d, 0x05, 0xf9, 0x59, 0x5a, 0x9e, 0x3e, 0x65, \ + 0x9b, 0x74, 0xda, 0xa0, 0x74, 0x95, 0x17, 0x5f, 0x8d, 0x58, 0xfc, 0x8e, \ + 0x4e, 0x2c, 0x1e, 0xbc, 0x81, 0x02, 0x18, 0xac, 0x12, 0xc6, 0xf9, 0x64, \ + 0x8b, 0x87, 0xc3, 0x00 \ } /* END FILE */ @@ -1308,32 +1308,32 @@ const unsigned char mbedtls_test_ca_crt_rsa_sha256_der[] = TEST_CA_CRT_RSA_SHA256_DER; const size_t mbedtls_test_ca_crt_ec_pem_len = - sizeof( mbedtls_test_ca_crt_ec_pem ); + sizeof(mbedtls_test_ca_crt_ec_pem); const size_t mbedtls_test_ca_key_ec_pem_len = - sizeof( mbedtls_test_ca_key_ec_pem ); + sizeof(mbedtls_test_ca_key_ec_pem); const size_t mbedtls_test_ca_pwd_ec_pem_len = - sizeof( mbedtls_test_ca_pwd_ec_pem ) - 1; + sizeof(mbedtls_test_ca_pwd_ec_pem) - 1; const size_t mbedtls_test_ca_key_rsa_pem_len = - sizeof( mbedtls_test_ca_key_rsa_pem ); + sizeof(mbedtls_test_ca_key_rsa_pem); const size_t mbedtls_test_ca_pwd_rsa_pem_len = - sizeof( mbedtls_test_ca_pwd_rsa_pem ) - 1; + sizeof(mbedtls_test_ca_pwd_rsa_pem) - 1; const size_t mbedtls_test_ca_crt_rsa_sha1_pem_len = - sizeof( mbedtls_test_ca_crt_rsa_sha1_pem ); + sizeof(mbedtls_test_ca_crt_rsa_sha1_pem); const size_t mbedtls_test_ca_crt_rsa_sha256_pem_len = - sizeof( mbedtls_test_ca_crt_rsa_sha256_pem ); + sizeof(mbedtls_test_ca_crt_rsa_sha256_pem); const size_t mbedtls_test_ca_crt_ec_der_len = - sizeof( mbedtls_test_ca_crt_ec_der ); + sizeof(mbedtls_test_ca_crt_ec_der); const size_t mbedtls_test_ca_key_ec_der_len = - sizeof( mbedtls_test_ca_key_ec_der ); + sizeof(mbedtls_test_ca_key_ec_der); const size_t mbedtls_test_ca_pwd_ec_der_len = 0; const size_t mbedtls_test_ca_key_rsa_der_len = - sizeof( mbedtls_test_ca_key_rsa_der ); + sizeof(mbedtls_test_ca_key_rsa_der); const size_t mbedtls_test_ca_pwd_rsa_der_len = 0; const size_t mbedtls_test_ca_crt_rsa_sha1_der_len = - sizeof( mbedtls_test_ca_crt_rsa_sha1_der ); + sizeof(mbedtls_test_ca_crt_rsa_sha1_der); const size_t mbedtls_test_ca_crt_rsa_sha256_der_len = - sizeof( mbedtls_test_ca_crt_rsa_sha256_der ); + sizeof(mbedtls_test_ca_crt_rsa_sha256_der); /* * Server @@ -1356,32 +1356,32 @@ const unsigned char mbedtls_test_srv_crt_rsa_sha256_der[] = TEST_SRV_CRT_RSA_SHA256_DER; const size_t mbedtls_test_srv_crt_ec_pem_len = - sizeof( mbedtls_test_srv_crt_ec_pem ); + sizeof(mbedtls_test_srv_crt_ec_pem); const size_t mbedtls_test_srv_key_ec_pem_len = - sizeof( mbedtls_test_srv_key_ec_pem ); + sizeof(mbedtls_test_srv_key_ec_pem); const size_t mbedtls_test_srv_pwd_ec_pem_len = - sizeof( mbedtls_test_srv_pwd_ec_pem ) - 1; + sizeof(mbedtls_test_srv_pwd_ec_pem) - 1; const size_t mbedtls_test_srv_key_rsa_pem_len = - sizeof( mbedtls_test_srv_key_rsa_pem ); + sizeof(mbedtls_test_srv_key_rsa_pem); const size_t mbedtls_test_srv_pwd_rsa_pem_len = - sizeof( mbedtls_test_srv_pwd_rsa_pem ) - 1; + sizeof(mbedtls_test_srv_pwd_rsa_pem) - 1; const size_t mbedtls_test_srv_crt_rsa_sha1_pem_len = - sizeof( mbedtls_test_srv_crt_rsa_sha1_pem ); + sizeof(mbedtls_test_srv_crt_rsa_sha1_pem); const size_t mbedtls_test_srv_crt_rsa_sha256_pem_len = - sizeof( mbedtls_test_srv_crt_rsa_sha256_pem ); + sizeof(mbedtls_test_srv_crt_rsa_sha256_pem); const size_t mbedtls_test_srv_crt_ec_der_len = - sizeof( mbedtls_test_srv_crt_ec_der ); + sizeof(mbedtls_test_srv_crt_ec_der); const size_t mbedtls_test_srv_key_ec_der_len = - sizeof( mbedtls_test_srv_key_ec_der ); + sizeof(mbedtls_test_srv_key_ec_der); const size_t mbedtls_test_srv_pwd_ec_der_len = 0; const size_t mbedtls_test_srv_key_rsa_der_len = - sizeof( mbedtls_test_srv_key_rsa_der ); + sizeof(mbedtls_test_srv_key_rsa_der); const size_t mbedtls_test_srv_pwd_rsa_der_len = 0; const size_t mbedtls_test_srv_crt_rsa_sha1_der_len = - sizeof( mbedtls_test_srv_crt_rsa_sha1_der ); + sizeof(mbedtls_test_srv_crt_rsa_sha1_der); const size_t mbedtls_test_srv_crt_rsa_sha256_der_len = - sizeof( mbedtls_test_srv_crt_rsa_sha256_der ); + sizeof(mbedtls_test_srv_crt_rsa_sha256_der); /* * Client @@ -1400,26 +1400,26 @@ const unsigned char mbedtls_test_cli_key_rsa_der[] = TEST_CLI_KEY_RSA_DER; const unsigned char mbedtls_test_cli_crt_rsa_der[] = TEST_CLI_CRT_RSA_DER; const size_t mbedtls_test_cli_crt_ec_pem_len = - sizeof( mbedtls_test_cli_crt_ec_pem ); + sizeof(mbedtls_test_cli_crt_ec_pem); const size_t mbedtls_test_cli_key_ec_pem_len = - sizeof( mbedtls_test_cli_key_ec_pem ); + sizeof(mbedtls_test_cli_key_ec_pem); const size_t mbedtls_test_cli_pwd_ec_pem_len = - sizeof( mbedtls_test_cli_pwd_ec_pem ) - 1; + sizeof(mbedtls_test_cli_pwd_ec_pem) - 1; const size_t mbedtls_test_cli_key_rsa_pem_len = - sizeof( mbedtls_test_cli_key_rsa_pem ); + sizeof(mbedtls_test_cli_key_rsa_pem); const size_t mbedtls_test_cli_pwd_rsa_pem_len = - sizeof( mbedtls_test_cli_pwd_rsa_pem ) - 1; + sizeof(mbedtls_test_cli_pwd_rsa_pem) - 1; const size_t mbedtls_test_cli_crt_rsa_pem_len = - sizeof( mbedtls_test_cli_crt_rsa_pem ); + sizeof(mbedtls_test_cli_crt_rsa_pem); const size_t mbedtls_test_cli_crt_ec_der_len = - sizeof( mbedtls_test_cli_crt_ec_der ); + sizeof(mbedtls_test_cli_crt_ec_der); const size_t mbedtls_test_cli_key_ec_der_len = - sizeof( mbedtls_test_cli_key_ec_der ); + sizeof(mbedtls_test_cli_key_ec_der); const size_t mbedtls_test_cli_key_rsa_der_len = - sizeof( mbedtls_test_cli_key_rsa_der ); + sizeof(mbedtls_test_cli_key_rsa_der); const size_t mbedtls_test_cli_crt_rsa_der_len = - sizeof( mbedtls_test_cli_crt_rsa_der ); + sizeof(mbedtls_test_cli_crt_rsa_der); /* * @@ -1521,47 +1521,47 @@ const char mbedtls_test_cli_pwd_ec[] = TEST_CLI_PWD_EC; const char mbedtls_test_cli_crt_ec[] = TEST_CLI_CRT_EC; const size_t mbedtls_test_ca_key_rsa_len = - sizeof( mbedtls_test_ca_key_rsa ); + sizeof(mbedtls_test_ca_key_rsa); const size_t mbedtls_test_ca_pwd_rsa_len = - sizeof( mbedtls_test_ca_pwd_rsa ) - 1; + sizeof(mbedtls_test_ca_pwd_rsa) - 1; const size_t mbedtls_test_ca_crt_rsa_sha256_len = - sizeof( mbedtls_test_ca_crt_rsa_sha256 ); + sizeof(mbedtls_test_ca_crt_rsa_sha256); const size_t mbedtls_test_ca_crt_rsa_sha1_len = - sizeof( mbedtls_test_ca_crt_rsa_sha1 ); + sizeof(mbedtls_test_ca_crt_rsa_sha1); const size_t mbedtls_test_ca_key_ec_len = - sizeof( mbedtls_test_ca_key_ec ); + sizeof(mbedtls_test_ca_key_ec); const size_t mbedtls_test_ca_pwd_ec_len = - sizeof( mbedtls_test_ca_pwd_ec ) - 1; + sizeof(mbedtls_test_ca_pwd_ec) - 1; const size_t mbedtls_test_ca_crt_ec_len = - sizeof( mbedtls_test_ca_crt_ec ); + sizeof(mbedtls_test_ca_crt_ec); const size_t mbedtls_test_srv_key_rsa_len = - sizeof( mbedtls_test_srv_key_rsa ); + sizeof(mbedtls_test_srv_key_rsa); const size_t mbedtls_test_srv_pwd_rsa_len = - sizeof( mbedtls_test_srv_pwd_rsa ) -1; + sizeof(mbedtls_test_srv_pwd_rsa) -1; const size_t mbedtls_test_srv_crt_rsa_sha256_len = - sizeof( mbedtls_test_srv_crt_rsa_sha256 ); + sizeof(mbedtls_test_srv_crt_rsa_sha256); const size_t mbedtls_test_srv_crt_rsa_sha1_len = - sizeof( mbedtls_test_srv_crt_rsa_sha1 ); + sizeof(mbedtls_test_srv_crt_rsa_sha1); const size_t mbedtls_test_srv_key_ec_len = - sizeof( mbedtls_test_srv_key_ec ); + sizeof(mbedtls_test_srv_key_ec); const size_t mbedtls_test_srv_pwd_ec_len = - sizeof( mbedtls_test_srv_pwd_ec ) - 1; + sizeof(mbedtls_test_srv_pwd_ec) - 1; const size_t mbedtls_test_srv_crt_ec_len = - sizeof( mbedtls_test_srv_crt_ec ); + sizeof(mbedtls_test_srv_crt_ec); const size_t mbedtls_test_cli_key_rsa_len = - sizeof( mbedtls_test_cli_key_rsa ); + sizeof(mbedtls_test_cli_key_rsa); const size_t mbedtls_test_cli_pwd_rsa_len = - sizeof( mbedtls_test_cli_pwd_rsa ) - 1; + sizeof(mbedtls_test_cli_pwd_rsa) - 1; const size_t mbedtls_test_cli_crt_rsa_len = - sizeof( mbedtls_test_cli_crt_rsa ); + sizeof(mbedtls_test_cli_crt_rsa); const size_t mbedtls_test_cli_key_ec_len = - sizeof( mbedtls_test_cli_key_ec ); + sizeof(mbedtls_test_cli_key_ec); const size_t mbedtls_test_cli_pwd_ec_len = - sizeof( mbedtls_test_cli_pwd_ec ) - 1; + sizeof(mbedtls_test_cli_pwd_ec) - 1; const size_t mbedtls_test_cli_crt_ec_len = - sizeof( mbedtls_test_cli_crt_ec ); + sizeof(mbedtls_test_cli_crt_ec); /* * Dispatch between SHA-1 and SHA-256 @@ -1579,9 +1579,9 @@ const char mbedtls_test_ca_crt_rsa[] = TEST_CA_CRT_RSA; const char mbedtls_test_srv_crt_rsa[] = TEST_SRV_CRT_RSA; const size_t mbedtls_test_ca_crt_rsa_len = - sizeof( mbedtls_test_ca_crt_rsa ); + sizeof(mbedtls_test_ca_crt_rsa); const size_t mbedtls_test_srv_crt_rsa_len = - sizeof( mbedtls_test_srv_crt_rsa ); + sizeof(mbedtls_test_srv_crt_rsa); /* * Dispatch between RSA and EC @@ -1644,25 +1644,25 @@ const char *mbedtls_test_cli_pwd = test_cli_pwd; const char *mbedtls_test_cli_crt = test_cli_crt; const size_t mbedtls_test_ca_key_len = - sizeof( test_ca_key ); + sizeof(test_ca_key); const size_t mbedtls_test_ca_pwd_len = - sizeof( test_ca_pwd ) - 1; + sizeof(test_ca_pwd) - 1; const size_t mbedtls_test_ca_crt_len = - sizeof( test_ca_crt ); + sizeof(test_ca_crt); const size_t mbedtls_test_srv_key_len = - sizeof( test_srv_key ); + sizeof(test_srv_key); const size_t mbedtls_test_srv_pwd_len = - sizeof( test_srv_pwd ) - 1; + sizeof(test_srv_pwd) - 1; const size_t mbedtls_test_srv_crt_len = - sizeof( test_srv_crt ); + sizeof(test_srv_crt); const size_t mbedtls_test_cli_key_len = - sizeof( test_cli_key ); + sizeof(test_cli_key); const size_t mbedtls_test_cli_pwd_len = - sizeof( test_cli_pwd ) - 1; + sizeof(test_cli_pwd) - 1; const size_t mbedtls_test_cli_crt_len = - sizeof( test_cli_crt ); + sizeof(test_cli_crt); /* * @@ -1671,7 +1671,7 @@ const size_t mbedtls_test_cli_crt_len = */ /* List of CAs in PEM or DER, depending on config */ -const char * mbedtls_test_cas[] = { +const char *mbedtls_test_cas[] = { #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) mbedtls_test_ca_crt_rsa_sha1, #endif @@ -1685,19 +1685,19 @@ const char * mbedtls_test_cas[] = { }; const size_t mbedtls_test_cas_len[] = { #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - sizeof( mbedtls_test_ca_crt_rsa_sha1 ), + sizeof(mbedtls_test_ca_crt_rsa_sha1), #endif #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - sizeof( mbedtls_test_ca_crt_rsa_sha256 ), + sizeof(mbedtls_test_ca_crt_rsa_sha256), #endif #if defined(MBEDTLS_ECDSA_C) - sizeof( mbedtls_test_ca_crt_ec ), + sizeof(mbedtls_test_ca_crt_ec), #endif 0 }; /* List of all available CA certificates in DER format */ -const unsigned char * mbedtls_test_cas_der[] = { +const unsigned char *mbedtls_test_cas_der[] = { #if defined(MBEDTLS_RSA_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) mbedtls_test_ca_crt_rsa_sha256_der, @@ -1715,14 +1715,14 @@ const unsigned char * mbedtls_test_cas_der[] = { const size_t mbedtls_test_cas_der_len[] = { #if defined(MBEDTLS_RSA_C) #if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - sizeof( mbedtls_test_ca_crt_rsa_sha256_der ), + sizeof(mbedtls_test_ca_crt_rsa_sha256_der), #endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA) - sizeof( mbedtls_test_ca_crt_rsa_sha1_der ), + sizeof(mbedtls_test_ca_crt_rsa_sha1_der), #endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_ECDSA_C) - sizeof( mbedtls_test_ca_crt_ec_der ), + sizeof(mbedtls_test_ca_crt_ec_der), #endif /* MBEDTLS_ECDSA_C */ 0 }; @@ -1742,5 +1742,5 @@ const char mbedtls_test_cas_pem[] = TEST_CA_CRT_EC_PEM #endif /* MBEDTLS_ECDSA_C */ ""; -const size_t mbedtls_test_cas_pem_len = sizeof( mbedtls_test_cas_pem ); +const size_t mbedtls_test_cas_pem_len = sizeof(mbedtls_test_cas_pem); #endif /* MBEDTLS_PEM_PARSE_C */ diff --git a/tests/src/drivers/hash.c b/tests/src/drivers/hash.c index 44e0e8059..7487e8450 100644 --- a/tests/src/drivers/hash.c +++ b/tests/src/drivers/hash.c @@ -34,28 +34,25 @@ mbedtls_test_driver_hash_hooks_t psa_status_t mbedtls_test_transparent_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 ) + uint8_t *hash, size_t hash_size, size_t *hash_length) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_hash_hooks.driver_status = + mbedtls_test_driver_hash_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = libtestdriver1_mbedtls_psa_hash_compute( alg, input, input_length, - hash, hash_size, hash_length ); + hash, hash_size, hash_length); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = mbedtls_psa_hash_compute( alg, input, input_length, - hash, hash_size, hash_length ); + hash, hash_size, hash_length); #else (void) alg; (void) input; @@ -67,29 +64,26 @@ psa_status_t mbedtls_test_transparent_hash_compute( #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } psa_status_t mbedtls_test_transparent_hash_setup( mbedtls_transparent_test_driver_hash_operation_t *operation, - psa_algorithm_t alg ) + psa_algorithm_t alg) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_hash_hooks.driver_status = - libtestdriver1_mbedtls_psa_hash_setup( operation, alg ); + mbedtls_test_driver_hash_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + mbedtls_test_driver_hash_hooks.driver_status = + libtestdriver1_mbedtls_psa_hash_setup(operation, alg); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_psa_hash_setup( operation, alg ); + mbedtls_psa_hash_setup(operation, alg); #else (void) operation; (void) alg; @@ -97,30 +91,27 @@ psa_status_t mbedtls_test_transparent_hash_setup( #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } psa_status_t mbedtls_test_transparent_hash_clone( const mbedtls_transparent_test_driver_hash_operation_t *source_operation, - mbedtls_transparent_test_driver_hash_operation_t *target_operation ) + mbedtls_transparent_test_driver_hash_operation_t *target_operation) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_hash_hooks.driver_status = - libtestdriver1_mbedtls_psa_hash_clone( source_operation, - target_operation ); + mbedtls_test_driver_hash_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + mbedtls_test_driver_hash_hooks.driver_status = + libtestdriver1_mbedtls_psa_hash_clone(source_operation, + target_operation); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_psa_hash_clone( source_operation, target_operation ); + mbedtls_psa_hash_clone(source_operation, target_operation); #else (void) source_operation; (void) target_operation; @@ -128,31 +119,28 @@ psa_status_t mbedtls_test_transparent_hash_clone( #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } psa_status_t mbedtls_test_transparent_hash_update( mbedtls_transparent_test_driver_hash_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_hash_hooks.driver_status = + mbedtls_test_driver_hash_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = libtestdriver1_mbedtls_psa_hash_update( - operation, input, input_length ); + operation, input, input_length); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_psa_hash_update( operation, input, input_length ); + mbedtls_psa_hash_update(operation, input, input_length); #else (void) operation; (void) input; @@ -161,32 +149,29 @@ psa_status_t mbedtls_test_transparent_hash_update( #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } psa_status_t mbedtls_test_transparent_hash_finish( mbedtls_transparent_test_driver_hash_operation_t *operation, uint8_t *hash, size_t hash_size, - size_t *hash_length ) + size_t *hash_length) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_hash_hooks.driver_status = + mbedtls_test_driver_hash_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = libtestdriver1_mbedtls_psa_hash_finish( - operation, hash, hash_size, hash_length ); + operation, hash, hash_size, hash_length); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_psa_hash_finish( operation, hash, hash_size, hash_length ); + mbedtls_psa_hash_finish(operation, hash, hash_size, hash_length); #else (void) operation; (void) hash; @@ -196,34 +181,31 @@ psa_status_t mbedtls_test_transparent_hash_finish( #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } psa_status_t mbedtls_test_transparent_hash_abort( - mbedtls_transparent_test_driver_hash_operation_t *operation ) + mbedtls_transparent_test_driver_hash_operation_t *operation) { mbedtls_test_driver_hash_hooks.hits++; - if( mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_test_driver_hash_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_hash_hooks.driver_status = - libtestdriver1_mbedtls_psa_hash_abort( operation ); + mbedtls_test_driver_hash_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) + mbedtls_test_driver_hash_hooks.driver_status = + libtestdriver1_mbedtls_psa_hash_abort(operation); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) mbedtls_test_driver_hash_hooks.driver_status = - mbedtls_psa_hash_abort( operation ); + mbedtls_psa_hash_abort(operation); #else (void) operation; mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; #endif } - return( mbedtls_test_driver_hash_hooks.driver_status ); + return mbedtls_test_driver_hash_hooks.driver_status; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/platform_builtin_keys.c b/tests/src/drivers/platform_builtin_keys.c index da5865d86..6334a438e 100644 --- a/tests/src/drivers/platform_builtin_keys.c +++ b/tests/src/drivers/platform_builtin_keys.c @@ -29,8 +29,7 @@ #include #endif -typedef struct -{ +typedef struct { psa_key_id_t builtin_key_id; psa_key_lifetime_t lifetime; psa_drv_slot_number_t slot_number; @@ -42,52 +41,50 @@ static const mbedtls_psa_builtin_key_description_t builtin_keys[] = { * ECDSA can be exercised on key ID MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 1. */ { MBEDTLS_PSA_KEY_ID_BUILTIN_MIN - 1, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT }, { MBEDTLS_PSA_KEY_ID_BUILTIN_MIN, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT }, { MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 1, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), - PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT}, + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), + PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT }, { MBEDTLS_PSA_KEY_ID_BUILTIN_MAX - 1, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), - PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT}, + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), + PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT }, { MBEDTLS_PSA_KEY_ID_BUILTIN_MAX, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), - PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT}, + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), + PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT }, { MBEDTLS_PSA_KEY_ID_BUILTIN_MAX + 1, PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( - PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION ), - PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT}, + PSA_KEY_PERSISTENCE_READ_ONLY, PSA_CRYPTO_TEST_DRIVER_LOCATION), + PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT }, #else - {0, 0, 0} + { 0, 0, 0 } #endif }; psa_status_t mbedtls_psa_platform_get_builtin_key( mbedtls_svc_key_id_t key_id, psa_key_lifetime_t *lifetime, - psa_drv_slot_number_t *slot_number ) + psa_drv_slot_number_t *slot_number) { - psa_key_id_t app_key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key_id ); + psa_key_id_t app_key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key_id); const mbedtls_psa_builtin_key_description_t *builtin_key; - for( size_t i = 0; - i < ( sizeof( builtin_keys ) / sizeof( builtin_keys[0] ) ); i++ ) - { + for (size_t i = 0; + i < (sizeof(builtin_keys) / sizeof(builtin_keys[0])); i++) { builtin_key = &builtin_keys[i]; - if( builtin_key->builtin_key_id == app_key_id ) - { + if (builtin_key->builtin_key_id == app_key_id) { *lifetime = builtin_key->lifetime; *slot_number = builtin_key->slot_number; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } } - return( PSA_ERROR_DOES_NOT_EXIST ); + return PSA_ERROR_DOES_NOT_EXIST; } diff --git a/tests/src/drivers/test_driver_aead.c b/tests/src/drivers/test_driver_aead.c index 93a75f68a..4bf2a86e2 100644 --- a/tests/src/drivers/test_driver_aead.c +++ b/tests/src/drivers/test_driver_aead.c @@ -39,28 +39,25 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( 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 ) + uint8_t *ciphertext, size_t ciphertext_size, size_t *ciphertext_length) { mbedtls_test_driver_aead_hooks.hits_encrypt++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_aead_hooks.driver_status = + mbedtls_test_driver_aead_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = libtestdriver1_mbedtls_psa_aead_encrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, + (const libtestdriver1_psa_key_attributes_t *) attributes, key_buffer, key_buffer_size, alg, nonce, nonce_length, additional_data, additional_data_length, plaintext, plaintext_length, - ciphertext, ciphertext_size, ciphertext_length ); + ciphertext, ciphertext_size, ciphertext_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_encrypt( @@ -69,7 +66,7 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( nonce, nonce_length, additional_data, additional_data_length, plaintext, plaintext_length, - ciphertext, ciphertext_size, ciphertext_length ); + ciphertext, ciphertext_size, ciphertext_length); #else (void) attributes; (void) key_buffer; @@ -88,7 +85,7 @@ psa_status_t mbedtls_test_transparent_aead_encrypt( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_decrypt( @@ -98,28 +95,25 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( 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 ) + uint8_t *plaintext, size_t plaintext_size, size_t *plaintext_length) { mbedtls_test_driver_aead_hooks.hits_decrypt++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_aead_hooks.driver_status = + mbedtls_test_driver_aead_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = libtestdriver1_mbedtls_psa_aead_decrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, + (const libtestdriver1_psa_key_attributes_t *) attributes, key_buffer, key_buffer_size, alg, nonce, nonce_length, additional_data, additional_data_length, ciphertext, ciphertext_length, - plaintext, plaintext_size, plaintext_length ); + plaintext, plaintext_size, plaintext_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = mbedtls_psa_aead_decrypt( @@ -128,7 +122,7 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( nonce, nonce_length, additional_data, additional_data_length, ciphertext, ciphertext_length, - plaintext, plaintext_size, plaintext_length ); + plaintext, plaintext_size, plaintext_length); #else (void) attributes; (void) key_buffer; @@ -147,35 +141,33 @@ psa_status_t mbedtls_test_transparent_aead_decrypt( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_encrypt_setup( mbedtls_transparent_test_driver_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_algorithm_t alg) { mbedtls_test_driver_aead_hooks.hits_encrypt_setup++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_encrypt_setup( operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, - key_buffer_size, alg ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_encrypt_setup(operation, + (const libtestdriver1_psa_key_attributes_t + *) attributes, + key_buffer, + key_buffer_size, alg); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_encrypt_setup( operation, attributes, key_buffer, - key_buffer_size, alg ); + mbedtls_psa_aead_encrypt_setup(operation, attributes, key_buffer, + key_buffer_size, alg); #else (void) operation; (void) attributes; @@ -186,34 +178,32 @@ psa_status_t mbedtls_test_transparent_aead_encrypt_setup( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_decrypt_setup( mbedtls_transparent_test_driver_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_algorithm_t alg) { mbedtls_test_driver_aead_hooks.hits_decrypt_setup++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_decrypt_setup( operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, alg ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_decrypt_setup(operation, + (const libtestdriver1_psa_key_attributes_t + *) attributes, + key_buffer, key_buffer_size, alg); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_decrypt_setup( operation, attributes, key_buffer, - key_buffer_size, alg ); + mbedtls_psa_aead_decrypt_setup(operation, attributes, key_buffer, + key_buffer_size, alg); #else (void) operation; (void) attributes; @@ -224,30 +214,27 @@ psa_status_t mbedtls_test_transparent_aead_decrypt_setup( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_set_nonce( mbedtls_transparent_test_driver_aead_operation_t *operation, const uint8_t *nonce, - size_t nonce_length ) + size_t nonce_length) { mbedtls_test_driver_aead_hooks.hits_set_nonce++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_nonce(operation, nonce, nonce_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_set_nonce( operation, nonce, nonce_length ); + mbedtls_psa_aead_set_nonce(operation, nonce, nonce_length); #else (void) operation; (void) nonce; @@ -256,32 +243,29 @@ psa_status_t mbedtls_test_transparent_aead_set_nonce( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_set_lengths( mbedtls_transparent_test_driver_aead_operation_t *operation, size_t ad_length, - size_t plaintext_length ) + size_t plaintext_length) { mbedtls_test_driver_aead_hooks.hits_set_lengths++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_set_lengths( operation, ad_length, - plaintext_length ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_set_lengths(operation, ad_length, + plaintext_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_set_lengths( operation, ad_length, - plaintext_length ); + mbedtls_psa_aead_set_lengths(operation, ad_length, + plaintext_length); #else (void) operation; (void) ad_length; @@ -290,30 +274,27 @@ psa_status_t mbedtls_test_transparent_aead_set_lengths( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_update_ad( mbedtls_transparent_test_driver_aead_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { mbedtls_test_driver_aead_hooks.hits_update_ad++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_update_ad( operation, input, input_length ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update_ad(operation, input, input_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_update_ad( operation, input, input_length ); + mbedtls_psa_aead_update_ad(operation, input, input_length); #else (void) operation; (void) input; @@ -322,36 +303,33 @@ psa_status_t mbedtls_test_transparent_aead_update_ad( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_update( - mbedtls_transparent_test_driver_aead_operation_t *operation, - const uint8_t *input, - size_t input_length, - uint8_t *output, - size_t output_size, - size_t *output_length ) + mbedtls_transparent_test_driver_aead_operation_t *operation, + const uint8_t *input, + size_t input_length, + uint8_t *output, + size_t output_size, + size_t *output_length) { mbedtls_test_driver_aead_hooks.hits_update++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_update( operation, input, - input_length, output, - output_size, output_length ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_update(operation, input, + input_length, output, + output_size, output_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_update( operation, input, input_length, output, - output_size, output_length ); + mbedtls_psa_aead_update(operation, input, input_length, output, + output_size, output_length); #else (void) operation; (void) input; @@ -363,38 +341,35 @@ psa_status_t mbedtls_test_transparent_aead_update( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_finish( - mbedtls_transparent_test_driver_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 ) + mbedtls_transparent_test_driver_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) { - mbedtls_test_driver_aead_hooks.hits_finish++; + mbedtls_test_driver_aead_hooks.hits_finish++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_finish( operation, ciphertext, - ciphertext_size, ciphertext_length, - tag, tag_size, tag_length ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_finish(operation, ciphertext, + ciphertext_size, ciphertext_length, + tag, tag_size, tag_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_finish( operation, ciphertext, ciphertext_size, - ciphertext_length, tag, tag_size, - tag_length ); + mbedtls_psa_aead_finish(operation, ciphertext, ciphertext_size, + ciphertext_length, tag, tag_size, + tag_length); #else (void) operation; (void) ciphertext; @@ -407,48 +382,45 @@ psa_status_t mbedtls_test_transparent_aead_finish( #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_verify( - mbedtls_transparent_test_driver_aead_operation_t *operation, - uint8_t *plaintext, - size_t plaintext_size, - size_t *plaintext_length, - const uint8_t *tag, - size_t tag_length ) + mbedtls_transparent_test_driver_aead_operation_t *operation, + uint8_t *plaintext, + size_t plaintext_size, + size_t *plaintext_length, + const uint8_t *tag, + size_t tag_length) { - mbedtls_test_driver_aead_hooks.hits_verify++; + mbedtls_test_driver_aead_hooks.hits_verify++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { - uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; - size_t check_tag_length = 0; + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_aead_hooks.driver_status = + mbedtls_test_driver_aead_hooks.forced_status; + } else { + uint8_t check_tag[PSA_AEAD_TAG_MAX_SIZE]; + size_t check_tag_length = 0; #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_finish( operation, - plaintext, - plaintext_size, - plaintext_length, - check_tag, - sizeof( check_tag ), - &check_tag_length ); + libtestdriver1_mbedtls_psa_aead_finish(operation, + plaintext, + plaintext_size, + plaintext_length, + check_tag, + sizeof(check_tag), + &check_tag_length); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_finish( operation, - plaintext, - plaintext_size, - plaintext_length, - check_tag, - sizeof( check_tag ), - &check_tag_length ); + mbedtls_test_driver_aead_hooks.driver_status = + mbedtls_psa_aead_finish(operation, + plaintext, + plaintext_size, + plaintext_length, + check_tag, + sizeof(check_tag), + &check_tag_length); #else (void) operation; (void) plaintext; @@ -457,47 +429,44 @@ psa_status_t mbedtls_test_transparent_aead_verify( mbedtls_test_driver_aead_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; #endif - if( mbedtls_test_driver_aead_hooks.driver_status == PSA_SUCCESS ) - { - if( tag_length != check_tag_length || - mbedtls_psa_safer_memcmp( tag, check_tag, tag_length ) - != 0 ) - mbedtls_test_driver_aead_hooks.driver_status = - PSA_ERROR_INVALID_SIGNATURE; - } + if (mbedtls_test_driver_aead_hooks.driver_status == PSA_SUCCESS) { + if (tag_length != check_tag_length || + mbedtls_psa_safer_memcmp(tag, check_tag, tag_length) + != 0) { + mbedtls_test_driver_aead_hooks.driver_status = + PSA_ERROR_INVALID_SIGNATURE; + } + } - mbedtls_platform_zeroize( check_tag, sizeof( check_tag ) ); + mbedtls_platform_zeroize(check_tag, sizeof(check_tag)); } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } psa_status_t mbedtls_test_transparent_aead_abort( - mbedtls_transparent_test_driver_aead_operation_t *operation ) + mbedtls_transparent_test_driver_aead_operation_t *operation) { - mbedtls_test_driver_aead_hooks.hits_abort++; + mbedtls_test_driver_aead_hooks.hits_abort++; - if( mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_test_driver_aead_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + if (mbedtls_test_driver_aead_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_aead_hooks.driver_status = - libtestdriver1_mbedtls_psa_aead_abort( operation ); + mbedtls_test_driver_aead_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_AEAD) + mbedtls_test_driver_aead_hooks.driver_status = + libtestdriver1_mbedtls_psa_aead_abort(operation); #elif defined(MBEDTLS_PSA_BUILTIN_AEAD) mbedtls_test_driver_aead_hooks.driver_status = - mbedtls_psa_aead_abort( operation ); + mbedtls_psa_aead_abort(operation); #else (void) operation; mbedtls_test_driver_aead_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; #endif } - return( mbedtls_test_driver_aead_hooks.driver_status ); + return mbedtls_test_driver_aead_hooks.driver_status; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_asymmetric_encryption.c b/tests/src/drivers/test_driver_asymmetric_encryption.c index 506c29bd0..8c5e207ad 100644 --- a/tests/src/drivers/test_driver_asymmetric_encryption.c +++ b/tests/src/drivers/test_driver_asymmetric_encryption.c @@ -37,82 +37,84 @@ psa_status_t mbedtls_test_transparent_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 ) + uint8_t *output, size_t output_size, size_t *output_length) { mbedtls_test_driver_asymmetric_encryption_hooks.hits++; - if( mbedtls_test_driver_asymmetric_encryption_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (mbedtls_test_driver_asymmetric_encryption_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_asymmetric_encryption_hooks.forced_output, - mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_asymmetric_encryption_hooks.forced_output, + mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length); *output_length = mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length; - return( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status ); + return mbedtls_test_driver_asymmetric_encryption_hooks.forced_status; } - if( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status ); + if (mbedtls_test_driver_asymmetric_encryption_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_asymmetric_encryption_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_asymmetric_encrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - alg, input, input_length, salt, salt_length, - output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_asymmetric_encrypt( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, input, input_length, salt, salt_length, + output, output_size, output_length); #else - return( mbedtls_psa_asymmetric_encrypt( - attributes, key_buffer, key_buffer_size, - alg, input, input_length, salt, salt_length, - output, output_size, output_length ) ); + return mbedtls_psa_asymmetric_encrypt( + attributes, key_buffer, key_buffer_size, + alg, input, input_length, salt, salt_length, + output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_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 ) + uint8_t *output, size_t output_size, size_t *output_length) { mbedtls_test_driver_asymmetric_encryption_hooks.hits++; - if( mbedtls_test_driver_asymmetric_encryption_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (mbedtls_test_driver_asymmetric_encryption_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_asymmetric_encryption_hooks.forced_output, - mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_asymmetric_encryption_hooks.forced_output, + mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length); *output_length = mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length; - return( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status ); + return mbedtls_test_driver_asymmetric_encryption_hooks.forced_status; } - if( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_asymmetric_encryption_hooks.forced_status ); + if (mbedtls_test_driver_asymmetric_encryption_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_asymmetric_encryption_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_asymmetric_decrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - alg, input, input_length, salt, salt_length, - output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_asymmetric_decrypt( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, input, input_length, salt, salt_length, + output, output_size, output_length); #else - return( mbedtls_psa_asymmetric_decrypt( - attributes, key_buffer, key_buffer_size, - alg, input, input_length, salt, salt_length, - output, output_size, output_length ) ); + return mbedtls_psa_asymmetric_decrypt( + attributes, key_buffer, key_buffer_size, + alg, input, input_length, salt, salt_length, + output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } /* @@ -122,7 +124,7 @@ psa_status_t mbedtls_test_opaque_asymmetric_encrypt( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, 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 ) + uint8_t *output, size_t output_size, size_t *output_length) { (void) attributes; (void) key; @@ -135,14 +137,14 @@ psa_status_t mbedtls_test_opaque_asymmetric_encrypt( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_asymmetric_decrypt( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, 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 ) + uint8_t *output, size_t output_size, size_t *output_length) { (void) attributes; (void) key; @@ -155,7 +157,7 @@ psa_status_t mbedtls_test_opaque_asymmetric_decrypt( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_cipher.c b/tests/src/drivers/test_driver_cipher.c index 353640807..f0cb6b262 100644 --- a/tests/src/drivers/test_driver_cipher.c +++ b/tests/src/drivers/test_driver_cipher.c @@ -50,41 +50,42 @@ psa_status_t mbedtls_test_transparent_cipher_encrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ) + size_t *output_length) { mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_cipher_hooks.forced_output_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (mbedtls_test_driver_cipher_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_cipher_hooks.forced_output_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_cipher_hooks.forced_output, - mbedtls_test_driver_cipher_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_cipher_hooks.forced_output, + mbedtls_test_driver_cipher_hooks.forced_output_length); *output_length = mbedtls_test_driver_cipher_hooks.forced_output_length; - return( mbedtls_test_driver_cipher_hooks.forced_status ); + return mbedtls_test_driver_cipher_hooks.forced_status; } - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_encrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - alg, iv, iv_length, input, input_length, - output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_cipher_encrypt( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, iv, iv_length, input, input_length, + output, output_size, output_length); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_encrypt( - attributes, key_buffer, key_buffer_size, - alg, iv, iv_length, input, input_length, - output, output_size, output_length ) ); + return mbedtls_psa_cipher_encrypt( + attributes, key_buffer, key_buffer_size, + alg, iv, iv_length, input, input_length, + output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_decrypt( @@ -96,41 +97,42 @@ psa_status_t mbedtls_test_transparent_cipher_decrypt( size_t input_length, uint8_t *output, size_t output_size, - size_t *output_length ) + size_t *output_length) { - mbedtls_test_driver_cipher_hooks.hits++; + mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_cipher_hooks.forced_output_length ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (mbedtls_test_driver_cipher_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_cipher_hooks.forced_output_length) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_cipher_hooks.forced_output, - mbedtls_test_driver_cipher_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_cipher_hooks.forced_output, + mbedtls_test_driver_cipher_hooks.forced_output_length); *output_length = mbedtls_test_driver_cipher_hooks.forced_output_length; - return( mbedtls_test_driver_cipher_hooks.forced_status ); + return mbedtls_test_driver_cipher_hooks.forced_status; } - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_decrypt( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - alg, input, input_length, - output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_cipher_decrypt( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, input, input_length, + output, output_size, output_length); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_decrypt( - attributes, key_buffer, key_buffer_size, - alg, input, input_length, - output, output_size, output_length ) ); + return mbedtls_psa_cipher_decrypt( + attributes, key_buffer, key_buffer_size, + alg, input, input_length, + output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_encrypt_setup( @@ -145,23 +147,24 @@ psa_status_t mbedtls_test_transparent_cipher_encrypt_setup( * useful for the test suite, since it gives a chance of catching memory * corruption errors should the core not have allocated (enough) memory for * our context struct. */ - memset( operation, 0, sizeof( *operation ) ); + memset(operation, 0, sizeof(*operation)); - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_encrypt_setup( - operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key, key_length, alg ) ); + return libtestdriver1_mbedtls_psa_cipher_encrypt_setup( + operation, + (const libtestdriver1_psa_key_attributes_t *) attributes, + key, key_length, alg); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_encrypt_setup( - operation, attributes, key, key_length, alg ) ); + return mbedtls_psa_cipher_encrypt_setup( + operation, attributes, key, key_length, alg); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_decrypt_setup( @@ -172,21 +175,22 @@ psa_status_t mbedtls_test_transparent_cipher_decrypt_setup( { mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_decrypt_setup( - operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key, key_length, alg ) ); + return libtestdriver1_mbedtls_psa_cipher_decrypt_setup( + operation, + (const libtestdriver1_psa_key_attributes_t *) attributes, + key, key_length, alg); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_decrypt_setup( - operation, attributes, key, key_length, alg ) ); + return mbedtls_psa_cipher_decrypt_setup( + operation, attributes, key, key_length, alg); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_abort( @@ -196,18 +200,18 @@ psa_status_t mbedtls_test_transparent_cipher_abort( #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - libtestdriver1_mbedtls_psa_cipher_abort( operation ); + libtestdriver1_mbedtls_psa_cipher_abort(operation); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - mbedtls_psa_cipher_abort( operation ); + mbedtls_psa_cipher_abort(operation); #endif /* Wiping the entire struct here, instead of member-by-member. This is * useful for the test suite, since it gives a chance of catching memory * corruption errors should the core not have allocated (enough) memory for * our context struct. */ - memset( operation, 0, sizeof( *operation ) ); + memset(operation, 0, sizeof(*operation)); - return( mbedtls_test_driver_cipher_hooks.forced_status ); + return mbedtls_test_driver_cipher_hooks.forced_status; } psa_status_t mbedtls_test_transparent_cipher_set_iv( @@ -217,18 +221,19 @@ psa_status_t mbedtls_test_transparent_cipher_set_iv( { mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_set_iv( - operation, iv, iv_length ) ); + return libtestdriver1_mbedtls_psa_cipher_set_iv( + operation, iv, iv_length); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_set_iv( operation, iv, iv_length ) ); + return mbedtls_psa_cipher_set_iv(operation, iv, iv_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_update( @@ -241,34 +246,35 @@ psa_status_t mbedtls_test_transparent_cipher_update( { mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_cipher_hooks.forced_output_length ) + if (mbedtls_test_driver_cipher_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_cipher_hooks.forced_output_length) { return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_cipher_hooks.forced_output, - mbedtls_test_driver_cipher_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_cipher_hooks.forced_output, + mbedtls_test_driver_cipher_hooks.forced_output_length); *output_length = mbedtls_test_driver_cipher_hooks.forced_output_length; - return( mbedtls_test_driver_cipher_hooks.forced_status ); + return mbedtls_test_driver_cipher_hooks.forced_status; } - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_update( - operation, input, input_length, - output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_cipher_update( + operation, input, input_length, + output, output_size, output_length); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_update( - operation, input, input_length, - output, output_size, output_length ) ); + return mbedtls_psa_cipher_update( + operation, input, input_length, + output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_cipher_finish( @@ -279,32 +285,33 @@ psa_status_t mbedtls_test_transparent_cipher_finish( { mbedtls_test_driver_cipher_hooks.hits++; - if( mbedtls_test_driver_cipher_hooks.forced_output != NULL ) - { - if( output_size < mbedtls_test_driver_cipher_hooks.forced_output_length ) + if (mbedtls_test_driver_cipher_hooks.forced_output != NULL) { + if (output_size < mbedtls_test_driver_cipher_hooks.forced_output_length) { return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( output, - mbedtls_test_driver_cipher_hooks.forced_output, - mbedtls_test_driver_cipher_hooks.forced_output_length ); + memcpy(output, + mbedtls_test_driver_cipher_hooks.forced_output, + mbedtls_test_driver_cipher_hooks.forced_output_length); *output_length = mbedtls_test_driver_cipher_hooks.forced_output_length; - return( mbedtls_test_driver_cipher_hooks.forced_status ); + return mbedtls_test_driver_cipher_hooks.forced_status; } - if( mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_cipher_hooks.forced_status ); + if (mbedtls_test_driver_cipher_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_cipher_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_CIPHER) - return( libtestdriver1_mbedtls_psa_cipher_finish( - operation, output, output_size, output_length ) ); + return libtestdriver1_mbedtls_psa_cipher_finish( + operation, output, output_size, output_length); #elif defined(MBEDTLS_PSA_BUILTIN_CIPHER) - return( mbedtls_psa_cipher_finish( - operation, output, output_size, output_length ) ); + return mbedtls_psa_cipher_finish( + operation, output, output_size, output_length); #endif - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } /* @@ -329,7 +336,7 @@ psa_status_t mbedtls_test_opaque_cipher_encrypt( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_decrypt( @@ -348,7 +355,7 @@ psa_status_t mbedtls_test_opaque_cipher_decrypt( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_encrypt_setup( @@ -362,7 +369,7 @@ psa_status_t mbedtls_test_opaque_cipher_encrypt_setup( (void) key; (void) key_length; (void) alg; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_decrypt_setup( @@ -376,14 +383,14 @@ psa_status_t mbedtls_test_opaque_cipher_decrypt_setup( (void) key; (void) key_length; (void) alg; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_abort( - mbedtls_opaque_test_driver_cipher_operation_t *operation ) + mbedtls_opaque_test_driver_cipher_operation_t *operation) { (void) operation; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_set_iv( @@ -394,7 +401,7 @@ psa_status_t mbedtls_test_opaque_cipher_set_iv( (void) operation; (void) iv; (void) iv_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_update( @@ -411,7 +418,7 @@ psa_status_t mbedtls_test_opaque_cipher_update( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_cipher_finish( @@ -424,6 +431,6 @@ psa_status_t mbedtls_test_opaque_cipher_finish( (void) output; (void) output_size; (void) output_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_key_agreement.c b/tests/src/drivers/test_driver_key_agreement.c index 7c37b0327..d1fd891e7 100644 --- a/tests/src/drivers/test_driver_key_agreement.c +++ b/tests/src/drivers/test_driver_key_agreement.c @@ -47,42 +47,42 @@ psa_status_t mbedtls_test_transparent_key_agreement( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ) + size_t *shared_secret_length) { mbedtls_test_driver_key_agreement_hooks.hits++; - if( mbedtls_test_driver_key_agreement_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_key_agreement_hooks.forced_status ); - - if( mbedtls_test_driver_key_agreement_hooks.forced_output != NULL ) - { - if( mbedtls_test_driver_key_agreement_hooks.forced_output_length > shared_secret_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - - memcpy( shared_secret, mbedtls_test_driver_key_agreement_hooks.forced_output, - mbedtls_test_driver_key_agreement_hooks.forced_output_length ); - *shared_secret_length = mbedtls_test_driver_key_agreement_hooks.forced_output_length; - - return( PSA_SUCCESS ); + if (mbedtls_test_driver_key_agreement_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_key_agreement_hooks.forced_status; } - if( PSA_ALG_IS_ECDH(alg) ) - { + if (mbedtls_test_driver_key_agreement_hooks.forced_output != NULL) { + if (mbedtls_test_driver_key_agreement_hooks.forced_output_length > shared_secret_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + + memcpy(shared_secret, mbedtls_test_driver_key_agreement_hooks.forced_output, + mbedtls_test_driver_key_agreement_hooks.forced_output_length); + *shared_secret_length = mbedtls_test_driver_key_agreement_hooks.forced_output_length; + + return PSA_SUCCESS; + } + + if (PSA_ALG_IS_ECDH(alg)) { #if (defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDH)) - return( libtestdriver1_mbedtls_psa_key_agreement_ecdh( - (const libtestdriver1_psa_key_attributes_t *) attributes, - key_buffer, key_buffer_size, - alg, peer_key, peer_key_length, - shared_secret, shared_secret_size, - shared_secret_length ) ); + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDH)) + return libtestdriver1_mbedtls_psa_key_agreement_ecdh( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, + shared_secret_length); #elif defined(MBEDTLS_PSA_BUILTIN_ALG_ECDH) - return( mbedtls_psa_key_agreement_ecdh( - attributes, - key_buffer, key_buffer_size, - alg, peer_key, peer_key_length, - shared_secret, shared_secret_size, - shared_secret_length ) ); + return mbedtls_psa_key_agreement_ecdh( + attributes, + key_buffer, key_buffer_size, + alg, peer_key, peer_key_length, + shared_secret, shared_secret_size, + shared_secret_length); #else (void) attributes; (void) key_buffer; @@ -92,12 +92,10 @@ psa_status_t mbedtls_test_transparent_key_agreement( (void) shared_secret; (void) shared_secret_size; (void) shared_secret_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; #endif - } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); + } else { + return PSA_ERROR_INVALID_ARGUMENT; } } @@ -111,7 +109,7 @@ psa_status_t mbedtls_test_opaque_key_agreement( size_t peer_key_length, uint8_t *shared_secret, size_t shared_secret_size, - size_t *shared_secret_length ) + size_t *shared_secret_length) { (void) attributes; (void) key_buffer; @@ -122,7 +120,7 @@ psa_status_t mbedtls_test_opaque_key_agreement( (void) shared_secret; (void) shared_secret_size; (void) shared_secret_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_key_management.c b/tests/src/drivers/test_driver_key_management.c index 974d49875..4e340aae6 100644 --- a/tests/src/drivers/test_driver_key_management.c +++ b/tests/src/drivers/test_driver_key_management.c @@ -44,53 +44,54 @@ mbedtls_test_driver_key_management_hooks_t mbedtls_test_driver_key_management_hooks = MBEDTLS_TEST_DRIVER_KEY_MANAGEMENT_INIT; const uint8_t mbedtls_test_driver_aes_key[16] = - { 0x36, 0x77, 0x39, 0x7A, 0x24, 0x43, 0x26, 0x46, - 0x29, 0x4A, 0x40, 0x4E, 0x63, 0x52, 0x66, 0x55 }; +{ 0x36, 0x77, 0x39, 0x7A, 0x24, 0x43, 0x26, 0x46, + 0x29, 0x4A, 0x40, 0x4E, 0x63, 0x52, 0x66, 0x55 }; const uint8_t mbedtls_test_driver_ecdsa_key[32] = - { 0xdc, 0x7d, 0x9d, 0x26, 0xd6, 0x7a, 0x4f, 0x63, - 0x2c, 0x34, 0xc2, 0xdc, 0x0b, 0x69, 0x86, 0x18, - 0x38, 0x82, 0xc2, 0x06, 0xdf, 0x04, 0xcd, 0xb7, - 0xd6, 0x9a, 0xab, 0xe2, 0x8b, 0xe4, 0xf8, 0x1a }; +{ 0xdc, 0x7d, 0x9d, 0x26, 0xd6, 0x7a, 0x4f, 0x63, + 0x2c, 0x34, 0xc2, 0xdc, 0x0b, 0x69, 0x86, 0x18, + 0x38, 0x82, 0xc2, 0x06, 0xdf, 0x04, 0xcd, 0xb7, + 0xd6, 0x9a, 0xab, 0xe2, 0x8b, 0xe4, 0xf8, 0x1a }; const uint8_t mbedtls_test_driver_ecdsa_pubkey[65] = - { 0x04, - 0x85, 0xf6, 0x4d, 0x89, 0xf0, 0x0b, 0xe6, 0x6c, - 0x88, 0xdd, 0x93, 0x7e, 0xfd, 0x6d, 0x7c, 0x44, - 0x56, 0x48, 0xdc, 0xb7, 0x01, 0x15, 0x0b, 0x8a, - 0x95, 0x09, 0x29, 0x58, 0x50, 0xf4, 0x1c, 0x19, - 0x31, 0xe5, 0x71, 0xfb, 0x8f, 0x8c, 0x78, 0x31, - 0x7a, 0x20, 0xb3, 0x80, 0xe8, 0x66, 0x58, 0x4b, - 0xbc, 0x25, 0x16, 0xc3, 0xd2, 0x70, 0x2d, 0x79, - 0x2f, 0x13, 0x1a, 0x92, 0x20, 0x95, 0xfd, 0x6c }; +{ 0x04, + 0x85, 0xf6, 0x4d, 0x89, 0xf0, 0x0b, 0xe6, 0x6c, + 0x88, 0xdd, 0x93, 0x7e, 0xfd, 0x6d, 0x7c, 0x44, + 0x56, 0x48, 0xdc, 0xb7, 0x01, 0x15, 0x0b, 0x8a, + 0x95, 0x09, 0x29, 0x58, 0x50, 0xf4, 0x1c, 0x19, + 0x31, 0xe5, 0x71, 0xfb, 0x8f, 0x8c, 0x78, 0x31, + 0x7a, 0x20, 0xb3, 0x80, 0xe8, 0x66, 0x58, 0x4b, + 0xbc, 0x25, 0x16, 0xc3, 0xd2, 0x70, 0x2d, 0x79, + 0x2f, 0x13, 0x1a, 0x92, 0x20, 0x95, 0xfd, 0x6c }; -psa_status_t mbedtls_test_transparent_init( void ) +psa_status_t mbedtls_test_transparent_init(void) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) - status = libtestdriver1_psa_crypto_init( ); - if( status != PSA_SUCCESS ) - return( status ); + status = libtestdriver1_psa_crypto_init(); + if (status != PSA_SUCCESS) { + return status; + } #endif - (void)status; - return( PSA_SUCCESS ); + (void) status; + return PSA_SUCCESS; } -void mbedtls_test_transparent_free( void ) +void mbedtls_test_transparent_free(void) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) - libtestdriver1_mbedtls_psa_crypto_free( ); + libtestdriver1_mbedtls_psa_crypto_free(); #endif return; } -psa_status_t mbedtls_test_opaque_init( void ) +psa_status_t mbedtls_test_opaque_init(void) { - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -void mbedtls_test_opaque_free( void ) +void mbedtls_test_opaque_free(void) { return; } @@ -102,22 +103,23 @@ void mbedtls_test_opaque_free( void ) * prefixing to the key. */ #define TEST_DRIVER_KEY_CONTEXT_BASE_SIZE \ - PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX_SIZE + PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX_SIZE size_t mbedtls_test_opaque_size_function( const psa_key_type_t key_type, - const size_t key_bits ) + const size_t key_bits) { size_t key_buffer_size = 0; - key_buffer_size = PSA_EXPORT_KEY_OUTPUT_SIZE( key_type, key_bits ); - if( key_buffer_size == 0 ) - return( 0 ); + key_buffer_size = PSA_EXPORT_KEY_OUTPUT_SIZE(key_type, key_bits); + if (key_buffer_size == 0) { + return 0; + } /* Include spacing for base size overhead over the key size * */ key_buffer_size += TEST_DRIVER_KEY_CONTEXT_BASE_SIZE; - return( key_buffer_size ); + return key_buffer_size; } static size_t mbedtls_test_opaque_get_base_size() @@ -138,22 +140,24 @@ static psa_status_t mbedtls_test_opaque_wrap_key( size_t key_length, uint8_t *wrapped_key_buffer, size_t wrapped_key_buffer_size, - size_t *wrapped_key_buffer_length ) + size_t *wrapped_key_buffer_length) { size_t opaque_key_base_size = mbedtls_test_opaque_get_base_size(); uint64_t prefix = PSA_CRYPTO_TEST_DRIVER_OPAQUE_PAD_PREFIX; - if( key_length + opaque_key_base_size > wrapped_key_buffer_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (key_length + opaque_key_base_size > wrapped_key_buffer_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } /* Write in the opaque pad prefix */ - memcpy( wrapped_key_buffer, &prefix, opaque_key_base_size ); + memcpy(wrapped_key_buffer, &prefix, opaque_key_base_size); wrapped_key_buffer += opaque_key_base_size; *wrapped_key_buffer_length = key_length + opaque_key_base_size; - while( key_length-- ) + while (key_length--) { wrapped_key_buffer[key_length] = key[key_length] ^ 0xFF; - return( PSA_SUCCESS ); + } + return PSA_SUCCESS; } /* @@ -177,79 +181,80 @@ static psa_status_t mbedtls_test_opaque_unwrap_key( size_t clear_key_size; /* Check for underflow */ - if( wrapped_key_length < opaque_key_base_size ) - return( PSA_ERROR_DATA_CORRUPT ); + if (wrapped_key_length < opaque_key_base_size) { + return PSA_ERROR_DATA_CORRUPT; + } clear_key_size = wrapped_key_length - opaque_key_base_size; wrapped_key += opaque_key_base_size; - if( clear_key_size > key_buffer_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (clear_key_size > key_buffer_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } *key_buffer_length = clear_key_size; - while( clear_key_size-- ) + while (clear_key_size--) { key_buffer[clear_key_size] = wrapped_key[clear_key_size] ^ 0xFF; - return( PSA_SUCCESS ); + } + return PSA_SUCCESS; } psa_status_t mbedtls_test_transparent_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key, size_t key_size, size_t *key_length ) + uint8_t *key, size_t key_size, size_t *key_length) { ++mbedtls_test_driver_key_management_hooks.hits; - if( mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_key_management_hooks.forced_status ); + if (mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_key_management_hooks.forced_status; + } - if( mbedtls_test_driver_key_management_hooks.forced_output != NULL ) - { - if( mbedtls_test_driver_key_management_hooks.forced_output_length > - key_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - memcpy( key, mbedtls_test_driver_key_management_hooks.forced_output, - mbedtls_test_driver_key_management_hooks.forced_output_length ); + if (mbedtls_test_driver_key_management_hooks.forced_output != NULL) { + if (mbedtls_test_driver_key_management_hooks.forced_output_length > + key_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + memcpy(key, mbedtls_test_driver_key_management_hooks.forced_output, + mbedtls_test_driver_key_management_hooks.forced_output_length); *key_length = mbedtls_test_driver_key_management_hooks.forced_output_length; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } - if( PSA_KEY_TYPE_IS_ECC( psa_get_key_type( attributes ) ) - && PSA_KEY_TYPE_IS_KEY_PAIR( psa_get_key_type( attributes ) ) ) - { + if (PSA_KEY_TYPE_IS_ECC(psa_get_key_type(attributes)) + && PSA_KEY_TYPE_IS_KEY_PAIR(psa_get_key_type(attributes))) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) - return( libtestdriver1_mbedtls_psa_ecp_generate_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key, key_size, key_length ) ); + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) + return libtestdriver1_mbedtls_psa_ecp_generate_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key, key_size, key_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) - return( mbedtls_psa_ecp_generate_key( - attributes, key, key_size, key_length ) ); + return mbedtls_psa_ecp_generate_key( + attributes, key, key_size, key_length); #endif - } - else if( psa_get_key_type( attributes ) == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { + } else if (psa_get_key_type(attributes) == PSA_KEY_TYPE_RSA_KEY_PAIR) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) - return( libtestdriver1_mbedtls_psa_rsa_generate_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key, key_size, key_length ) ); + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) + return libtestdriver1_mbedtls_psa_rsa_generate_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key, key_size, key_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) - return( mbedtls_psa_rsa_generate_key( - attributes, key, key_size, key_length ) ); + return mbedtls_psa_rsa_generate_key( + attributes, key, key_size, key_length); #endif } - (void)attributes; - return( PSA_ERROR_NOT_SUPPORTED ); + (void) attributes; + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_generate_key( const psa_key_attributes_t *attributes, - uint8_t *key, size_t key_size, size_t *key_length ) + uint8_t *key, size_t key_size, size_t *key_length) { (void) attributes; (void) key; (void) key_size; (void) key_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_import_key( @@ -261,62 +266,60 @@ psa_status_t mbedtls_test_transparent_import_key( size_t *key_buffer_length, size_t *bits) { - psa_key_type_t type = psa_get_key_type( attributes ); + psa_key_type_t type = psa_get_key_type(attributes); ++mbedtls_test_driver_key_management_hooks.hits; mbedtls_test_driver_key_management_hooks.location = PSA_KEY_LOCATION_LOCAL_STORAGE; - if( mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_key_management_hooks.forced_status ); + if (mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_key_management_hooks.forced_status; + } - if( PSA_KEY_TYPE_IS_ECC( type ) ) - { + if (PSA_KEY_TYPE_IS_ECC(type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) ) - return( libtestdriver1_mbedtls_psa_ecp_import_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY)) + return libtestdriver1_mbedtls_psa_ecp_import_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, bits); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) - return( mbedtls_psa_ecp_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + return mbedtls_psa_ecp_import_key( + attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, bits); #endif - } - else if( PSA_KEY_TYPE_IS_RSA( type ) ) - { + } else if (PSA_KEY_TYPE_IS_RSA(type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) ) - return( libtestdriver1_mbedtls_psa_rsa_import_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY)) + return libtestdriver1_mbedtls_psa_rsa_import_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, bits); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) - return( mbedtls_psa_rsa_import_key( - attributes, - data, data_length, - key_buffer, key_buffer_size, - key_buffer_length, bits ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + return mbedtls_psa_rsa_import_key( + attributes, + data, data_length, + key_buffer, key_buffer_size, + key_buffer_length, bits); #endif } - (void)data; - (void)data_length; - (void)key_buffer; - (void)key_buffer_size; - (void)key_buffer_length; - (void)bits; - (void)type; + (void) data; + (void) data_length; + (void) key_buffer; + (void) key_buffer_size; + (void) key_buffer_length; + (void) bits; + (void) type; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } @@ -330,7 +333,7 @@ psa_status_t mbedtls_test_opaque_import_key( size_t *bits) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_type_t type = psa_get_key_type( attributes ); + psa_key_type_t type = psa_get_key_type(attributes); /* This buffer will be used as an intermediate placeholder for * the clear key till we wrap it */ uint8_t *key_buffer_temp; @@ -338,331 +341,329 @@ psa_status_t mbedtls_test_opaque_import_key( ++mbedtls_test_driver_key_management_hooks.hits; mbedtls_test_driver_key_management_hooks.location = PSA_CRYPTO_TEST_DRIVER_LOCATION; - if( mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_key_management_hooks.forced_status ); + if (mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_key_management_hooks.forced_status; + } - key_buffer_temp = mbedtls_calloc( 1, key_buffer_size ); - if( key_buffer_temp == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + key_buffer_temp = mbedtls_calloc(1, key_buffer_size); + if (key_buffer_temp == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ) - { - *bits = PSA_BYTES_TO_BITS( data_length ); + if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type)) { + *bits = PSA_BYTES_TO_BITS(data_length); - status = psa_validate_unstructured_key_bit_size( type, - *bits ); - if( status != PSA_SUCCESS ) + status = psa_validate_unstructured_key_bit_size(type, + *bits); + if (status != PSA_SUCCESS) { goto exit; + } - if( data_length > key_buffer_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_length > key_buffer_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } /* Copy the key material accounting for opaque key padding. */ - memcpy( key_buffer_temp, data, data_length ); + memcpy(key_buffer_temp, data, data_length); *key_buffer_length = data_length; - } - else if( PSA_KEY_TYPE_IS_ECC( type ) ) - { + } else if (PSA_KEY_TYPE_IS_ECC(type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) ) + (defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)) status = libtestdriver1_mbedtls_psa_ecp_import_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - data, data_length, - key_buffer_temp, key_buffer_size, - key_buffer_length, bits ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + data, data_length, + key_buffer_temp, key_buffer_size, + key_buffer_length, bits); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) status = mbedtls_psa_ecp_import_key( - attributes, - data, data_length, - key_buffer_temp, key_buffer_size, - key_buffer_length, bits ); + attributes, + data, data_length, + key_buffer_temp, key_buffer_size, + key_buffer_length, bits); #else status = PSA_ERROR_NOT_SUPPORTED; #endif - if( status != PSA_SUCCESS ) - goto exit; - } - else if( PSA_KEY_TYPE_IS_RSA( type ) ) - { + if (status != PSA_SUCCESS) { + goto exit; + } + } else if (PSA_KEY_TYPE_IS_RSA(type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY) ) + (defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)) status = libtestdriver1_mbedtls_psa_rsa_import_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - data, data_length, - key_buffer_temp, key_buffer_size, - key_buffer_length, bits ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + data, data_length, + key_buffer_temp, key_buffer_size, + key_buffer_length, bits); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) status = mbedtls_psa_rsa_import_key( - attributes, - data, data_length, - key_buffer_temp, key_buffer_size, - key_buffer_length, bits ); + attributes, + data, data_length, + key_buffer_temp, key_buffer_size, + key_buffer_length, bits); #else status = PSA_ERROR_NOT_SUPPORTED; #endif - if( status != PSA_SUCCESS ) - goto exit; - } - else - { + if (status != PSA_SUCCESS) { + goto exit; + } + } else { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - status = mbedtls_test_opaque_wrap_key( key_buffer_temp, *key_buffer_length, - key_buffer, key_buffer_size, key_buffer_length ); + status = mbedtls_test_opaque_wrap_key(key_buffer_temp, *key_buffer_length, + key_buffer, key_buffer_size, key_buffer_length); exit: - mbedtls_free( key_buffer_temp ); - return( status ); + mbedtls_free(key_buffer_temp); + return status; } psa_status_t mbedtls_test_opaque_export_key( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, - uint8_t *data, size_t data_size, size_t *data_length ) + uint8_t *data, size_t data_size, size_t *data_length) { - if( key_length == sizeof( psa_drv_slot_number_t ) ) - { + if (key_length == sizeof(psa_drv_slot_number_t)) { /* Assume this is a builtin key based on the key material length. */ - psa_drv_slot_number_t slot_number = *( ( psa_drv_slot_number_t* ) key ); + psa_drv_slot_number_t slot_number = *((psa_drv_slot_number_t *) key); - switch( slot_number ) - { + switch (slot_number) { case PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT: /* This is the ECDSA slot. Verify the key's attributes before * returning the private key. */ - if( psa_get_key_type( attributes ) != - PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ) ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_bits( attributes ) != 256 ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_algorithm( attributes ) != - PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ) ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( ( psa_get_key_usage_flags( attributes ) & - PSA_KEY_USAGE_EXPORT ) == 0 ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (psa_get_key_type(attributes) != + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_bits(attributes) != 256) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_algorithm(attributes) != + PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if ((psa_get_key_usage_flags(attributes) & + PSA_KEY_USAGE_EXPORT) == 0) { + return PSA_ERROR_CORRUPTION_DETECTED; + } - if( data_size < sizeof( mbedtls_test_driver_ecdsa_key ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_size < sizeof(mbedtls_test_driver_ecdsa_key)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( data, mbedtls_test_driver_ecdsa_key, - sizeof( mbedtls_test_driver_ecdsa_key ) ); - *data_length = sizeof( mbedtls_test_driver_ecdsa_key ); - return( PSA_SUCCESS ); + memcpy(data, mbedtls_test_driver_ecdsa_key, + sizeof(mbedtls_test_driver_ecdsa_key)); + *data_length = sizeof(mbedtls_test_driver_ecdsa_key); + return PSA_SUCCESS; case PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT: /* This is the AES slot. Verify the key's attributes before * returning the key. */ - if( psa_get_key_type( attributes ) != PSA_KEY_TYPE_AES ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_bits( attributes ) != 128 ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_algorithm( attributes ) != PSA_ALG_CTR ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( ( psa_get_key_usage_flags( attributes ) & - PSA_KEY_USAGE_EXPORT ) == 0 ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_bits(attributes) != 128) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_algorithm(attributes) != PSA_ALG_CTR) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if ((psa_get_key_usage_flags(attributes) & + PSA_KEY_USAGE_EXPORT) == 0) { + return PSA_ERROR_CORRUPTION_DETECTED; + } - if( data_size < sizeof( mbedtls_test_driver_aes_key ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_size < sizeof(mbedtls_test_driver_aes_key)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( data, mbedtls_test_driver_aes_key, - sizeof( mbedtls_test_driver_aes_key ) ); - *data_length = sizeof( mbedtls_test_driver_aes_key ); - return( PSA_SUCCESS ); + memcpy(data, mbedtls_test_driver_aes_key, + sizeof(mbedtls_test_driver_aes_key)); + *data_length = sizeof(mbedtls_test_driver_aes_key); + return PSA_SUCCESS; default: - return( PSA_ERROR_DOES_NOT_EXIST ); + return PSA_ERROR_DOES_NOT_EXIST; } - } - else - { + } else { /* This buffer will be used as an intermediate placeholder for * the opaque key till we unwrap the key into key_buffer */ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_type_t type = psa_get_key_type( attributes ); + psa_key_type_t type = psa_get_key_type(attributes); - if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) || - PSA_KEY_TYPE_IS_RSA( type ) || - PSA_KEY_TYPE_IS_ECC( type ) ) - { - status = mbedtls_test_opaque_unwrap_key( key, key_length, - data, data_size, data_length ); - return( status ); + if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type) || + PSA_KEY_TYPE_IS_RSA(type) || + PSA_KEY_TYPE_IS_ECC(type)) { + status = mbedtls_test_opaque_unwrap_key(key, key_length, + data, data_size, data_length); + return status; } } - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_export_public_key( 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 ) + uint8_t *data, size_t data_size, size_t *data_length) { ++mbedtls_test_driver_key_management_hooks.hits; - if( mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_key_management_hooks.forced_status ); + if (mbedtls_test_driver_key_management_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_key_management_hooks.forced_status; + } - if( mbedtls_test_driver_key_management_hooks.forced_output != NULL ) - { - if( mbedtls_test_driver_key_management_hooks.forced_output_length > - data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - memcpy( data, mbedtls_test_driver_key_management_hooks.forced_output, - mbedtls_test_driver_key_management_hooks.forced_output_length ); + if (mbedtls_test_driver_key_management_hooks.forced_output != NULL) { + if (mbedtls_test_driver_key_management_hooks.forced_output_length > + data_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + memcpy(data, mbedtls_test_driver_key_management_hooks.forced_output, + mbedtls_test_driver_key_management_hooks.forced_output_length); *data_length = mbedtls_test_driver_key_management_hooks.forced_output_length; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } - psa_key_type_t key_type = psa_get_key_type( attributes ); + psa_key_type_t key_type = psa_get_key_type(attributes); - if( PSA_KEY_TYPE_IS_ECC( key_type ) ) - { + if (PSA_KEY_TYPE_IS_ECC(key_type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) ) - return( libtestdriver1_mbedtls_psa_ecp_export_public_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - data, data_size, data_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY)) + return libtestdriver1_mbedtls_psa_ecp_export_public_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + data, data_size, data_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) - return( mbedtls_psa_ecp_export_public_key( - attributes, - key_buffer, key_buffer_size, - data, data_size, data_length ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + return mbedtls_psa_ecp_export_public_key( + attributes, + key_buffer, key_buffer_size, + data, data_size, data_length); #endif - } - else if( PSA_KEY_TYPE_IS_RSA( key_type ) ) - { + } else if (PSA_KEY_TYPE_IS_RSA(key_type)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) ) - return( libtestdriver1_mbedtls_psa_rsa_export_public_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, - data, data_size, data_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY)) + return libtestdriver1_mbedtls_psa_rsa_export_public_key( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + data, data_size, data_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) - return( mbedtls_psa_rsa_export_public_key( - attributes, - key_buffer, key_buffer_size, - data, data_size, data_length ) ); + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + return mbedtls_psa_rsa_export_public_key( + attributes, + key_buffer, key_buffer_size, + data, data_size, data_length); #endif } - (void)key_buffer; - (void)key_buffer_size; - (void)key_type; + (void) key_buffer; + (void) key_buffer_size; + (void) key_type; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_opaque_export_public_key( const psa_key_attributes_t *attributes, const uint8_t *key, size_t key_length, - uint8_t *data, size_t data_size, size_t *data_length ) + uint8_t *data, size_t data_size, size_t *data_length) { - if( key_length != sizeof( psa_drv_slot_number_t ) ) - { + if (key_length != sizeof(psa_drv_slot_number_t)) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - psa_key_type_t key_type = psa_get_key_type( attributes ); + psa_key_type_t key_type = psa_get_key_type(attributes); uint8_t *key_buffer_temp; - key_buffer_temp = mbedtls_calloc( 1, key_length ); - if( key_buffer_temp == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); + key_buffer_temp = mbedtls_calloc(1, key_length); + if (key_buffer_temp == NULL) { + return PSA_ERROR_INSUFFICIENT_MEMORY; + } - if( PSA_KEY_TYPE_IS_ECC( key_type ) ) - { - status = mbedtls_test_opaque_unwrap_key( key, key_length, - key_buffer_temp, key_length, data_length ); - if( status == PSA_SUCCESS ) - { + if (PSA_KEY_TYPE_IS_ECC(key_type)) { + status = mbedtls_test_opaque_unwrap_key(key, key_length, + key_buffer_temp, key_length, data_length); + if (status == PSA_SUCCESS) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY) ) + (defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR) || \ + defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY)) status = libtestdriver1_mbedtls_psa_ecp_export_public_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer_temp, *data_length, - data, data_size, data_length ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer_temp, *data_length, + data, data_size, data_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_ECC_PUBLIC_KEY) status = mbedtls_psa_ecp_export_public_key( - attributes, - key_buffer_temp, *data_length, - data, data_size, data_length ); + attributes, + key_buffer_temp, *data_length, + data, data_size, data_length); #else status = PSA_ERROR_NOT_SUPPORTED; #endif } - } - else if( PSA_KEY_TYPE_IS_RSA( key_type ) ) - { - status = mbedtls_test_opaque_unwrap_key( key, key_length, - key_buffer_temp, key_length, data_length ); - if( status == PSA_SUCCESS ) - { + } else if (PSA_KEY_TYPE_IS_RSA(key_type)) { + status = mbedtls_test_opaque_unwrap_key(key, key_length, + key_buffer_temp, key_length, data_length); + if (status == PSA_SUCCESS) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY) ) + (defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_KEY_PAIR) || \ + defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_RSA_PUBLIC_KEY)) status = libtestdriver1_mbedtls_psa_rsa_export_public_key( - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer_temp, *data_length, - data, data_size, data_length ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer_temp, *data_length, + data, data_size, data_length); #elif defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_KEY_PAIR) || \ - defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) + defined(MBEDTLS_PSA_BUILTIN_KEY_TYPE_RSA_PUBLIC_KEY) status = mbedtls_psa_rsa_export_public_key( - attributes, - key_buffer_temp, *data_length, - data, data_size, data_length ); + attributes, + key_buffer_temp, *data_length, + data, data_size, data_length); #else status = PSA_ERROR_NOT_SUPPORTED; #endif } - } - else - { + } else { status = PSA_ERROR_NOT_SUPPORTED; - (void)key; - (void)key_type; + (void) key; + (void) key_type; } - mbedtls_free( key_buffer_temp ); - return( status ); + mbedtls_free(key_buffer_temp); + return status; } /* Assume this is a builtin key based on the key material length. */ - psa_drv_slot_number_t slot_number = *( ( psa_drv_slot_number_t* ) key ); - switch( slot_number ) - { + psa_drv_slot_number_t slot_number = *((psa_drv_slot_number_t *) key); + switch (slot_number) { case PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT: /* This is the ECDSA slot. Verify the key's attributes before * returning the public key. */ - if( psa_get_key_type( attributes ) != - PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ) ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_bits( attributes ) != 256 ) - return( PSA_ERROR_CORRUPTION_DETECTED ); - if( psa_get_key_algorithm( attributes ) != - PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ) ) - return( PSA_ERROR_CORRUPTION_DETECTED ); + if (psa_get_key_type(attributes) != + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_bits(attributes) != 256) { + return PSA_ERROR_CORRUPTION_DETECTED; + } + if (psa_get_key_algorithm(attributes) != + PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)) { + return PSA_ERROR_CORRUPTION_DETECTED; + } - if( data_size < sizeof( mbedtls_test_driver_ecdsa_pubkey ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (data_size < sizeof(mbedtls_test_driver_ecdsa_pubkey)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( data, mbedtls_test_driver_ecdsa_pubkey, - sizeof( mbedtls_test_driver_ecdsa_pubkey ) ); - *data_length = sizeof( mbedtls_test_driver_ecdsa_pubkey ); - return( PSA_SUCCESS ); + memcpy(data, mbedtls_test_driver_ecdsa_pubkey, + sizeof(mbedtls_test_driver_ecdsa_pubkey)); + *data_length = sizeof(mbedtls_test_driver_ecdsa_pubkey); + return PSA_SUCCESS; default: - return( PSA_ERROR_DOES_NOT_EXIST ); + return PSA_ERROR_DOES_NOT_EXIST; } } @@ -679,49 +680,50 @@ psa_status_t mbedtls_test_opaque_export_public_key( psa_status_t mbedtls_test_opaque_get_builtin_key( psa_drv_slot_number_t slot_number, psa_key_attributes_t *attributes, - uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length ) + uint8_t *key_buffer, size_t key_buffer_size, size_t *key_buffer_length) { - switch( slot_number ) - { + switch (slot_number) { case PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT: - psa_set_key_type( attributes, PSA_KEY_TYPE_AES ); - psa_set_key_bits( attributes, 128 ); + psa_set_key_type(attributes, PSA_KEY_TYPE_AES); + psa_set_key_bits(attributes, 128); psa_set_key_usage_flags( attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | - PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( attributes, PSA_ALG_CTR ); + PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(attributes, PSA_ALG_CTR); - if( key_buffer_size < sizeof( psa_drv_slot_number_t ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (key_buffer_size < sizeof(psa_drv_slot_number_t)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - *( (psa_drv_slot_number_t*) key_buffer ) = + *((psa_drv_slot_number_t *) key_buffer) = PSA_CRYPTO_TEST_DRIVER_BUILTIN_AES_KEY_SLOT; - *key_buffer_length = sizeof( psa_drv_slot_number_t ); - return( PSA_SUCCESS ); + *key_buffer_length = sizeof(psa_drv_slot_number_t); + return PSA_SUCCESS; case PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT: psa_set_key_type( attributes, - PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ) ); - psa_set_key_bits( attributes, 256 ); + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); + psa_set_key_bits(attributes, 256); psa_set_key_usage_flags( attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | - PSA_KEY_USAGE_EXPORT ); + PSA_KEY_USAGE_EXPORT); psa_set_key_algorithm( - attributes, PSA_ALG_ECDSA( PSA_ALG_ANY_HASH ) ); + attributes, PSA_ALG_ECDSA(PSA_ALG_ANY_HASH)); - if( key_buffer_size < sizeof( psa_drv_slot_number_t ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (key_buffer_size < sizeof(psa_drv_slot_number_t)) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - *( (psa_drv_slot_number_t*) key_buffer ) = + *((psa_drv_slot_number_t *) key_buffer) = PSA_CRYPTO_TEST_DRIVER_BUILTIN_ECDSA_KEY_SLOT; - *key_buffer_length = sizeof( psa_drv_slot_number_t ); - return( PSA_SUCCESS ); + *key_buffer_length = sizeof(psa_drv_slot_number_t); + return PSA_SUCCESS; default: - return( PSA_ERROR_DOES_NOT_EXIST ); + return PSA_ERROR_DOES_NOT_EXIST; } } @@ -736,13 +738,14 @@ psa_status_t mbedtls_test_opaque_copy_key( * copied keys. This could change when the opaque test driver is extended * to support SE with storage, or to emulate an SE without storage but * still holding some slot references */ - if( source_key_length > key_buffer_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (source_key_length > key_buffer_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( key_buffer, source_key, source_key_length ); + memcpy(key_buffer, source_key, source_key_length); *key_buffer_length = source_key_length; - (void)attributes; - return( PSA_SUCCESS ); + (void) attributes; + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_mac.c b/tests/src/drivers/test_driver_mac.c index f909785df..ea09cf43f 100644 --- a/tests/src/drivers/test_driver_mac.c +++ b/tests/src/drivers/test_driver_mac.c @@ -40,31 +40,28 @@ psa_status_t mbedtls_test_transparent_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ) + size_t *mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_compute( - (const libtestdriver1_psa_key_attributes_t *)attributes, + (const libtestdriver1_psa_key_attributes_t *) attributes, key_buffer, key_buffer_size, alg, input, input_length, - mac, mac_size, mac_length ); + mac, mac_size, mac_length); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_compute( attributes, key_buffer, key_buffer_size, alg, input, input_length, - mac, mac_size, mac_length ); + mac, mac_size, mac_length); #else (void) attributes; (void) key_buffer; @@ -79,7 +76,7 @@ psa_status_t mbedtls_test_transparent_mac_compute( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_sign_setup( @@ -87,28 +84,25 @@ psa_status_t mbedtls_test_transparent_mac_sign_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_sign_setup( operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, alg ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, alg); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_sign_setup( - operation, attributes, key_buffer, key_buffer_size, alg ); + operation, attributes, key_buffer, key_buffer_size, alg); #else (void) operation; (void) attributes; @@ -119,7 +113,7 @@ psa_status_t mbedtls_test_transparent_mac_sign_setup( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_verify_setup( @@ -127,28 +121,25 @@ psa_status_t mbedtls_test_transparent_mac_verify_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_verify_setup( operation, - (const libtestdriver1_psa_key_attributes_t *)attributes, - key_buffer, key_buffer_size, alg ); + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, alg); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_verify_setup( - operation, attributes, key_buffer, key_buffer_size, alg ); + operation, attributes, key_buffer, key_buffer_size, alg); #else (void) operation; (void) attributes; @@ -159,32 +150,29 @@ psa_status_t mbedtls_test_transparent_mac_verify_setup( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_update( mbedtls_transparent_test_driver_mac_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_update( - operation, input, input_length ); + operation, input, input_length); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_update( - operation, input, input_length ); + operation, input, input_length); #else (void) operation; (void) input; @@ -193,33 +181,30 @@ psa_status_t mbedtls_test_transparent_mac_update( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_sign_finish( mbedtls_transparent_test_driver_mac_operation_t *operation, uint8_t *mac, size_t mac_size, - size_t *mac_length ) + size_t *mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_sign_finish( - operation, mac, mac_size, mac_length ); + operation, mac, mac_size, mac_length); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_sign_finish( - operation, mac, mac_size, mac_length ); + operation, mac, mac_size, mac_length); #else (void) operation; (void) mac; @@ -229,32 +214,29 @@ psa_status_t mbedtls_test_transparent_mac_sign_finish( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_verify_finish( mbedtls_transparent_test_driver_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ) + size_t mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = libtestdriver1_mbedtls_psa_mac_verify_finish( - operation, mac, mac_length ); + operation, mac, mac_length); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = mbedtls_psa_mac_verify_finish( - operation, mac, mac_length ); + operation, mac, mac_length); #else (void) operation; (void) mac; @@ -263,35 +245,32 @@ psa_status_t mbedtls_test_transparent_mac_verify_finish( #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_transparent_mac_abort( - mbedtls_transparent_test_driver_mac_operation_t *operation ) + mbedtls_transparent_test_driver_mac_operation_t *operation) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { -#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { mbedtls_test_driver_mac_hooks.driver_status = - libtestdriver1_mbedtls_psa_mac_abort( operation ); + mbedtls_test_driver_mac_hooks.forced_status; + } else { +#if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_MAC) + mbedtls_test_driver_mac_hooks.driver_status = + libtestdriver1_mbedtls_psa_mac_abort(operation); #elif defined(MBEDTLS_PSA_BUILTIN_MAC) mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_psa_mac_abort( operation ); + mbedtls_psa_mac_abort(operation); #else (void) operation; mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; #endif } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_compute( @@ -303,17 +282,14 @@ psa_status_t mbedtls_test_opaque_mac_compute( size_t input_length, uint8_t *mac, size_t mac_size, - size_t *mac_length ) + size_t *mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) attributes; (void) key_buffer; (void) key_buffer_size; @@ -326,7 +302,7 @@ psa_status_t mbedtls_test_opaque_mac_compute( mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_sign_setup( @@ -334,17 +310,14 @@ psa_status_t mbedtls_test_opaque_mac_sign_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; (void) attributes; (void) key_buffer; @@ -353,7 +326,7 @@ psa_status_t mbedtls_test_opaque_mac_sign_setup( mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_verify_setup( @@ -361,17 +334,14 @@ psa_status_t mbedtls_test_opaque_mac_verify_setup( const psa_key_attributes_t *attributes, const uint8_t *key_buffer, size_t key_buffer_size, - psa_algorithm_t alg ) + psa_algorithm_t alg) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; (void) attributes; (void) key_buffer; @@ -380,47 +350,41 @@ psa_status_t mbedtls_test_opaque_mac_verify_setup( mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_update( mbedtls_opaque_test_driver_mac_operation_t *operation, const uint8_t *input, - size_t input_length ) + size_t input_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; (void) input; (void) input_length; mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_sign_finish( mbedtls_opaque_test_driver_mac_operation_t *operation, uint8_t *mac, size_t mac_size, - size_t *mac_length ) + size_t *mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; (void) mac; (void) mac_size; @@ -428,49 +392,43 @@ psa_status_t mbedtls_test_opaque_mac_sign_finish( mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_verify_finish( mbedtls_opaque_test_driver_mac_operation_t *operation, const uint8_t *mac, - size_t mac_length ) + size_t mac_length) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; (void) mac; (void) mac_length; mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } psa_status_t mbedtls_test_opaque_mac_abort( - mbedtls_opaque_test_driver_mac_operation_t *operation ) + mbedtls_opaque_test_driver_mac_operation_t *operation) { mbedtls_test_driver_mac_hooks.hits++; - if( mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS ) - { - mbedtls_test_driver_mac_hooks.driver_status = - mbedtls_test_driver_mac_hooks.forced_status; - } - else - { + if (mbedtls_test_driver_mac_hooks.forced_status != PSA_SUCCESS) { + mbedtls_test_driver_mac_hooks.driver_status = + mbedtls_test_driver_mac_hooks.forced_status; + } else { (void) operation; mbedtls_test_driver_mac_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED; } - return( mbedtls_test_driver_mac_hooks.driver_status ); + return mbedtls_test_driver_mac_hooks.driver_status; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/drivers/test_driver_signature.c b/tests/src/drivers/test_driver_signature.c index ef6d135eb..11815b03f 100644 --- a/tests/src/drivers/test_driver_signature.c +++ b/tests/src/drivers/test_driver_signature.c @@ -60,72 +60,63 @@ psa_status_t sign_hash( size_t hash_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ) + size_t *signature_length) { - if( attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) || - PSA_ALG_IS_RSA_PSS( alg) ) - { + if (attributes->core.type == PSA_KEY_TYPE_RSA_KEY_PAIR) { + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || + PSA_ALG_IS_RSA_PSS(alg)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) ) - return( libtestdriver1_mbedtls_psa_rsa_sign_hash( - (const libtestdriver1_psa_key_attributes_t *) attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS)) + return libtestdriver1_mbedtls_psa_rsa_sign_hash( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #elif defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - return( mbedtls_psa_rsa_sign_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) + return mbedtls_psa_rsa_sign_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #endif + } else { + return PSA_ERROR_INVALID_ARGUMENT; } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } - } - else if( PSA_KEY_TYPE_IS_ECC( attributes->core.type ) ) - { - if( PSA_ALG_IS_ECDSA( alg ) ) - { + } else if (PSA_KEY_TYPE_IS_ECC(attributes->core.type)) { + if (PSA_ALG_IS_ECDSA(alg)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) ) - return( libtestdriver1_mbedtls_psa_ecdsa_sign_hash( - (const libtestdriver1_psa_key_attributes_t *) attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA)) + return libtestdriver1_mbedtls_psa_ecdsa_sign_hash( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #elif defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - return( mbedtls_psa_ecdsa_sign_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) + return mbedtls_psa_ecdsa_sign_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); #endif - } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); + } else { + return PSA_ERROR_INVALID_ARGUMENT; } } - (void)attributes; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)hash; - (void)hash_length; - (void)signature; - (void)signature_size; - (void)signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + (void) hash; + (void) hash_length; + (void) signature; + (void) signature_size; + (void) signature_length; + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t verify_hash( @@ -136,71 +127,62 @@ psa_status_t verify_hash( const uint8_t *hash, size_t hash_length, const uint8_t *signature, - size_t signature_length ) + size_t signature_length) { - if( PSA_KEY_TYPE_IS_RSA( attributes->core.type ) ) - { - if( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) || - PSA_ALG_IS_RSA_PSS( alg) ) - { + if (PSA_KEY_TYPE_IS_RSA(attributes->core.type)) { + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg) || + PSA_ALG_IS_RSA_PSS(alg)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) ) - return( libtestdriver1_mbedtls_psa_rsa_verify_hash( - (const libtestdriver1_psa_key_attributes_t *) attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS)) + return libtestdriver1_mbedtls_psa_rsa_verify_hash( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #elif defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PKCS1V15_SIGN) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - return( mbedtls_psa_rsa_verify_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) + return mbedtls_psa_rsa_verify_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #endif + } else { + return PSA_ERROR_INVALID_ARGUMENT; } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); - } - } - else if( PSA_KEY_TYPE_IS_ECC( attributes->core.type ) ) - { - if( PSA_ALG_IS_ECDSA( alg ) ) - { + } else if (PSA_KEY_TYPE_IS_ECC(attributes->core.type)) { + if (PSA_ALG_IS_ECDSA(alg)) { #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ - ( defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) ) - return( libtestdriver1_mbedtls_psa_ecdsa_verify_hash( - (const libtestdriver1_psa_key_attributes_t *) attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + (defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ + defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA)) + return libtestdriver1_mbedtls_psa_ecdsa_verify_hash( + (const libtestdriver1_psa_key_attributes_t *) attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #elif defined(MBEDTLS_PSA_BUILTIN_ALG_ECDSA) || \ - defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - return( mbedtls_psa_ecdsa_verify_hash( - attributes, - key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) + return mbedtls_psa_ecdsa_verify_hash( + attributes, + key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); #endif - } - else - { - return( PSA_ERROR_INVALID_ARGUMENT ); + } else { + return PSA_ERROR_INVALID_ARGUMENT; } } - (void)attributes; - (void)key_buffer; - (void)key_buffer_size; - (void)alg; - (void)hash; - (void)hash_length; - (void)signature; - (void)signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + (void) attributes; + (void) key_buffer; + (void) key_buffer_size; + (void) alg; + (void) hash; + (void) hash_length; + (void) signature; + (void) signature_length; + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_signature_sign_message( @@ -212,7 +194,7 @@ psa_status_t mbedtls_test_transparent_signature_sign_message( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ) + size_t *signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t hash_length; @@ -220,41 +202,43 @@ psa_status_t mbedtls_test_transparent_signature_sign_message( ++mbedtls_test_driver_signature_sign_hooks.hits; - if( mbedtls_test_driver_signature_sign_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_signature_sign_hooks.forced_status ); + if (mbedtls_test_driver_signature_sign_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_signature_sign_hooks.forced_status; + } - if( mbedtls_test_driver_signature_sign_hooks.forced_output != NULL ) - { - if( mbedtls_test_driver_signature_sign_hooks.forced_output_length > signature_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + if (mbedtls_test_driver_signature_sign_hooks.forced_output != NULL) { + if (mbedtls_test_driver_signature_sign_hooks.forced_output_length > signature_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } - memcpy( signature, mbedtls_test_driver_signature_sign_hooks.forced_output, - mbedtls_test_driver_signature_sign_hooks.forced_output_length ); + memcpy(signature, mbedtls_test_driver_signature_sign_hooks.forced_output, + mbedtls_test_driver_signature_sign_hooks.forced_output_length); *signature_length = mbedtls_test_driver_signature_sign_hooks.forced_output_length; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) status = libtestdriver1_mbedtls_psa_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), input, input_length, + hash, sizeof(hash), &hash_length); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) status = mbedtls_psa_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), input, input_length, + hash, sizeof(hash), &hash_length); #else (void) input; (void) input_length; status = PSA_ERROR_NOT_SUPPORTED; #endif - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return status; + } - return( sign_hash( attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + return sign_hash(attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); } psa_status_t mbedtls_test_opaque_signature_sign_message( @@ -266,7 +250,7 @@ psa_status_t mbedtls_test_opaque_signature_sign_message( size_t input_length, uint8_t *signature, size_t signature_size, - size_t *signature_length ) + size_t *signature_length) { (void) attributes; (void) key; @@ -278,7 +262,7 @@ psa_status_t mbedtls_test_opaque_signature_sign_message( (void) signature_size; (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_signature_verify_message( @@ -289,7 +273,7 @@ psa_status_t mbedtls_test_transparent_signature_verify_message( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ) + size_t signature_length) { psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; size_t hash_length; @@ -297,29 +281,31 @@ psa_status_t mbedtls_test_transparent_signature_verify_message( ++mbedtls_test_driver_signature_verify_hooks.hits; - if( mbedtls_test_driver_signature_verify_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_signature_verify_hooks.forced_status ); + if (mbedtls_test_driver_signature_verify_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_signature_verify_hooks.forced_status; + } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \ defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH) status = libtestdriver1_mbedtls_psa_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), input, input_length, + hash, sizeof(hash), &hash_length); #elif defined(MBEDTLS_PSA_BUILTIN_HASH) status = mbedtls_psa_hash_compute( - PSA_ALG_SIGN_GET_HASH( alg ), input, input_length, - hash, sizeof( hash ), &hash_length ); + PSA_ALG_SIGN_GET_HASH(alg), input, input_length, + hash, sizeof(hash), &hash_length); #else (void) input; (void) input_length; status = PSA_ERROR_NOT_SUPPORTED; #endif - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { return status; + } - return( verify_hash( attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ) ); + return verify_hash(attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); } psa_status_t mbedtls_test_opaque_signature_verify_message( @@ -330,7 +316,7 @@ psa_status_t mbedtls_test_opaque_signature_verify_message( const uint8_t *input, size_t input_length, const uint8_t *signature, - size_t signature_length ) + size_t signature_length) { (void) attributes; (void) key; @@ -341,7 +327,7 @@ psa_status_t mbedtls_test_opaque_signature_verify_message( (void) signature; (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_signature_sign_hash( @@ -349,26 +335,27 @@ psa_status_t mbedtls_test_transparent_signature_sign_hash( 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 ) + uint8_t *signature, size_t signature_size, size_t *signature_length) { ++mbedtls_test_driver_signature_sign_hooks.hits; - if( mbedtls_test_driver_signature_sign_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_signature_sign_hooks.forced_status ); - - if( mbedtls_test_driver_signature_sign_hooks.forced_output != NULL ) - { - if( mbedtls_test_driver_signature_sign_hooks.forced_output_length > signature_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - memcpy( signature, mbedtls_test_driver_signature_sign_hooks.forced_output, - mbedtls_test_driver_signature_sign_hooks.forced_output_length ); - *signature_length = mbedtls_test_driver_signature_sign_hooks.forced_output_length; - return( PSA_SUCCESS ); + if (mbedtls_test_driver_signature_sign_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_signature_sign_hooks.forced_status; } - return( sign_hash( attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_size, signature_length ) ); + if (mbedtls_test_driver_signature_sign_hooks.forced_output != NULL) { + if (mbedtls_test_driver_signature_sign_hooks.forced_output_length > signature_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } + memcpy(signature, mbedtls_test_driver_signature_sign_hooks.forced_output, + mbedtls_test_driver_signature_sign_hooks.forced_output_length); + *signature_length = mbedtls_test_driver_signature_sign_hooks.forced_output_length; + return PSA_SUCCESS; + } + + return sign_hash(attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_size, signature_length); } psa_status_t mbedtls_test_opaque_signature_sign_hash( @@ -376,7 +363,7 @@ psa_status_t mbedtls_test_opaque_signature_sign_hash( const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - uint8_t *signature, size_t signature_size, size_t *signature_length ) + uint8_t *signature, size_t signature_size, size_t *signature_length) { (void) attributes; (void) key; @@ -388,7 +375,7 @@ psa_status_t mbedtls_test_opaque_signature_sign_hash( (void) signature_size; (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } psa_status_t mbedtls_test_transparent_signature_verify_hash( @@ -396,16 +383,17 @@ psa_status_t mbedtls_test_transparent_signature_verify_hash( 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 ) + const uint8_t *signature, size_t signature_length) { ++mbedtls_test_driver_signature_verify_hooks.hits; - if( mbedtls_test_driver_signature_verify_hooks.forced_status != PSA_SUCCESS ) - return( mbedtls_test_driver_signature_verify_hooks.forced_status ); + if (mbedtls_test_driver_signature_verify_hooks.forced_status != PSA_SUCCESS) { + return mbedtls_test_driver_signature_verify_hooks.forced_status; + } - return verify_hash( attributes, key_buffer, key_buffer_size, - alg, hash, hash_length, - signature, signature_length ); + return verify_hash(attributes, key_buffer, key_buffer_size, + alg, hash, hash_length, + signature, signature_length); } psa_status_t mbedtls_test_opaque_signature_verify_hash( @@ -413,7 +401,7 @@ psa_status_t mbedtls_test_opaque_signature_verify_hash( const uint8_t *key, size_t key_length, psa_algorithm_t alg, const uint8_t *hash, size_t hash_length, - const uint8_t *signature, size_t signature_length ) + const uint8_t *signature, size_t signature_length) { (void) attributes; (void) key; @@ -423,7 +411,7 @@ psa_status_t mbedtls_test_opaque_signature_verify_hash( (void) hash_length; (void) signature; (void) signature_length; - return( PSA_ERROR_NOT_SUPPORTED ); + return PSA_ERROR_NOT_SUPPORTED; } #endif /* MBEDTLS_PSA_CRYPTO_DRIVERS && PSA_CRYPTO_DRIVER_TEST */ diff --git a/tests/src/fake_external_rng_for_test.c b/tests/src/fake_external_rng_for_test.c index 9c2195bf0..89af7d34f 100644 --- a/tests/src/fake_external_rng_for_test.c +++ b/tests/src/fake_external_rng_for_test.c @@ -28,29 +28,30 @@ static int test_insecure_external_rng_enabled = 0; -void mbedtls_test_enable_insecure_external_rng( void ) +void mbedtls_test_enable_insecure_external_rng(void) { test_insecure_external_rng_enabled = 1; } -void mbedtls_test_disable_insecure_external_rng( void ) +void mbedtls_test_disable_insecure_external_rng(void) { test_insecure_external_rng_enabled = 0; } psa_status_t mbedtls_psa_external_get_random( mbedtls_psa_external_random_context_t *context, - uint8_t *output, size_t output_size, size_t *output_length ) + uint8_t *output, size_t output_size, size_t *output_length) { (void) context; - if( !test_insecure_external_rng_enabled ) - return( PSA_ERROR_INSUFFICIENT_ENTROPY ); + if (!test_insecure_external_rng_enabled) { + return PSA_ERROR_INSUFFICIENT_ENTROPY; + } /* This implementation is for test purposes only! * Use the libc non-cryptographic random generator. */ - mbedtls_test_rnd_std_rand( NULL, output, output_size ); + mbedtls_test_rnd_std_rand(NULL, output, output_size); *output_length = output_size; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ diff --git a/tests/src/helpers.c b/tests/src/helpers.c index be5c465fd..30fd362c0 100644 --- a/tests/src/helpers.c +++ b/tests/src/helpers.c @@ -32,40 +32,40 @@ mbedtls_test_info_t mbedtls_test_info; /*----------------------------------------------------------------------------*/ /* Helper Functions */ -int mbedtls_test_platform_setup( void ) +int mbedtls_test_platform_setup(void) { int ret = 0; #if defined(MBEDTLS_PLATFORM_C) - ret = mbedtls_platform_setup( &platform_ctx ); + ret = mbedtls_platform_setup(&platform_ctx); #endif /* MBEDTLS_PLATFORM_C */ - return( ret ); + return ret; } -void mbedtls_test_platform_teardown( void ) +void mbedtls_test_platform_teardown(void) { #if defined(MBEDTLS_PLATFORM_C) - mbedtls_platform_teardown( &platform_ctx ); + mbedtls_platform_teardown(&platform_ctx); #endif /* MBEDTLS_PLATFORM_C */ } int mbedtls_test_ascii2uc(const char c, unsigned char *uc) { - if( ( c >= '0' ) && ( c <= '9' ) ) + if ((c >= '0') && (c <= '9')) { *uc = c - '0'; - else if( ( c >= 'a' ) && ( c <= 'f' ) ) + } else if ((c >= 'a') && (c <= 'f')) { *uc = c - 'a' + 10; - else if( ( c >= 'A' ) && ( c <= 'F' ) ) + } else if ((c >= 'A') && (c <= 'F')) { *uc = c - 'A' + 10; - else - return( -1 ); + } else { + return -1; + } - return( 0 ); + return 0; } -void mbedtls_test_fail( const char *test, int line_no, const char* filename ) +void mbedtls_test_fail(const char *test, int line_no, const char *filename) { - if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) - { + if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED) { /* We've already recorded the test as having failed. Don't * overwrite any previous information about the failure. */ return; @@ -76,7 +76,7 @@ void mbedtls_test_fail( const char *test, int line_no, const char* filename ) mbedtls_test_info.filename = filename; } -void mbedtls_test_skip( const char *test, int line_no, const char* filename ) +void mbedtls_test_skip(const char *test, int line_no, const char *filename) { mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SKIPPED; mbedtls_test_info.test = test; @@ -84,7 +84,7 @@ void mbedtls_test_skip( const char *test, int line_no, const char* filename ) mbedtls_test_info.filename = filename; } -void mbedtls_test_set_step( unsigned long step ) +void mbedtls_test_set_step(unsigned long step) { mbedtls_test_info.step = step; } @@ -93,201 +93,205 @@ void mbedtls_test_set_step( unsigned long step ) unsigned mbedtls_test_case_uses_negative_0 = 0; #endif -void mbedtls_test_info_reset( void ) +void mbedtls_test_info_reset(void) { mbedtls_test_info.result = MBEDTLS_TEST_RESULT_SUCCESS; - mbedtls_test_info.step = (unsigned long)( -1 ); + mbedtls_test_info.step = (unsigned long) (-1); mbedtls_test_info.test = 0; mbedtls_test_info.line_no = 0; mbedtls_test_info.filename = 0; - memset( mbedtls_test_info.line1, 0, sizeof( mbedtls_test_info.line1 ) ); - memset( mbedtls_test_info.line2, 0, sizeof( mbedtls_test_info.line2 ) ); + memset(mbedtls_test_info.line1, 0, sizeof(mbedtls_test_info.line1)); + memset(mbedtls_test_info.line2, 0, sizeof(mbedtls_test_info.line2)); #if defined(MBEDTLS_BIGNUM_C) mbedtls_test_case_uses_negative_0 = 0; #endif } -int mbedtls_test_equal( const char *test, int line_no, const char* filename, - unsigned long long value1, unsigned long long value2 ) +int mbedtls_test_equal(const char *test, int line_no, const char *filename, + unsigned long long value1, unsigned long long value2) { - TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); - TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + TEST_CF_PUBLIC(&value1, sizeof(value1)); + TEST_CF_PUBLIC(&value2, sizeof(value2)); - if( value1 == value2 ) - return( 1 ); + if (value1 == value2) { + return 1; + } - if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) - { + if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED) { /* We've already recorded the test as having failed. Don't * overwrite any previous information about the failure. */ - return( 0 ); + return 0; } - mbedtls_test_fail( test, line_no, filename ); - (void) mbedtls_snprintf( mbedtls_test_info.line1, - sizeof( mbedtls_test_info.line1 ), - "lhs = 0x%016llx = %lld", - value1, (long long) value1 ); - (void) mbedtls_snprintf( mbedtls_test_info.line2, - sizeof( mbedtls_test_info.line2 ), - "rhs = 0x%016llx = %lld", - value2, (long long) value2 ); - return( 0 ); + mbedtls_test_fail(test, line_no, filename); + (void) mbedtls_snprintf(mbedtls_test_info.line1, + sizeof(mbedtls_test_info.line1), + "lhs = 0x%016llx = %lld", + value1, (long long) value1); + (void) mbedtls_snprintf(mbedtls_test_info.line2, + sizeof(mbedtls_test_info.line2), + "rhs = 0x%016llx = %lld", + value2, (long long) value2); + return 0; } -int mbedtls_test_le_u( const char *test, int line_no, const char* filename, - unsigned long long value1, unsigned long long value2 ) +int mbedtls_test_le_u(const char *test, int line_no, const char *filename, + unsigned long long value1, unsigned long long value2) { - TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); - TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + TEST_CF_PUBLIC(&value1, sizeof(value1)); + TEST_CF_PUBLIC(&value2, sizeof(value2)); - if( value1 <= value2 ) - return( 1 ); + if (value1 <= value2) { + return 1; + } - if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) - { + if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED) { /* We've already recorded the test as having failed. Don't * overwrite any previous information about the failure. */ - return( 0 ); + return 0; } - mbedtls_test_fail( test, line_no, filename ); - (void) mbedtls_snprintf( mbedtls_test_info.line1, - sizeof( mbedtls_test_info.line1 ), - "lhs = 0x%016llx = %llu", - value1, value1 ); - (void) mbedtls_snprintf( mbedtls_test_info.line2, - sizeof( mbedtls_test_info.line2 ), - "rhs = 0x%016llx = %llu", - value2, value2 ); - return( 0 ); + mbedtls_test_fail(test, line_no, filename); + (void) mbedtls_snprintf(mbedtls_test_info.line1, + sizeof(mbedtls_test_info.line1), + "lhs = 0x%016llx = %llu", + value1, value1); + (void) mbedtls_snprintf(mbedtls_test_info.line2, + sizeof(mbedtls_test_info.line2), + "rhs = 0x%016llx = %llu", + value2, value2); + return 0; } -int mbedtls_test_le_s( const char *test, int line_no, const char* filename, - long long value1, long long value2 ) +int mbedtls_test_le_s(const char *test, int line_no, const char *filename, + long long value1, long long value2) { - TEST_CF_PUBLIC( &value1, sizeof( value1 ) ); - TEST_CF_PUBLIC( &value2, sizeof( value2 ) ); + TEST_CF_PUBLIC(&value1, sizeof(value1)); + TEST_CF_PUBLIC(&value2, sizeof(value2)); - if( value1 <= value2 ) - return( 1 ); + if (value1 <= value2) { + return 1; + } - if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ) - { + if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED) { /* We've already recorded the test as having failed. Don't * overwrite any previous information about the failure. */ - return( 0 ); + return 0; } - mbedtls_test_fail( test, line_no, filename ); - (void) mbedtls_snprintf( mbedtls_test_info.line1, - sizeof( mbedtls_test_info.line1 ), - "lhs = 0x%016llx = %lld", - (unsigned long long) value1, value1 ); - (void) mbedtls_snprintf( mbedtls_test_info.line2, - sizeof( mbedtls_test_info.line2 ), - "rhs = 0x%016llx = %lld", - (unsigned long long) value2, value2 ); - return( 0 ); + mbedtls_test_fail(test, line_no, filename); + (void) mbedtls_snprintf(mbedtls_test_info.line1, + sizeof(mbedtls_test_info.line1), + "lhs = 0x%016llx = %lld", + (unsigned long long) value1, value1); + (void) mbedtls_snprintf(mbedtls_test_info.line2, + sizeof(mbedtls_test_info.line2), + "rhs = 0x%016llx = %lld", + (unsigned long long) value2, value2); + return 0; } -int mbedtls_test_unhexify( unsigned char *obuf, - size_t obufmax, - const char *ibuf, - size_t *len ) +int mbedtls_test_unhexify(unsigned char *obuf, + size_t obufmax, + const char *ibuf, + size_t *len) { unsigned char uc, uc2; - *len = strlen( ibuf ); + *len = strlen(ibuf); /* Must be even number of bytes. */ - if ( ( *len ) & 1 ) - return( -1 ); + if ((*len) & 1) { + return -1; + } *len /= 2; - if ( (*len) > obufmax ) - return( -1 ); - - while( *ibuf != 0 ) - { - if ( mbedtls_test_ascii2uc( *(ibuf++), &uc ) != 0 ) - return( -1 ); - - if ( mbedtls_test_ascii2uc( *(ibuf++), &uc2 ) != 0 ) - return( -1 ); - - *(obuf++) = ( uc << 4 ) | uc2; + if ((*len) > obufmax) { + return -1; } - return( 0 ); + while (*ibuf != 0) { + if (mbedtls_test_ascii2uc(*(ibuf++), &uc) != 0) { + return -1; + } + + if (mbedtls_test_ascii2uc(*(ibuf++), &uc2) != 0) { + return -1; + } + + *(obuf++) = (uc << 4) | uc2; + } + + return 0; } -void mbedtls_test_hexify( unsigned char *obuf, - const unsigned char *ibuf, - int len ) +void mbedtls_test_hexify(unsigned char *obuf, + const unsigned char *ibuf, + int len) { unsigned char l, h; - while( len != 0 ) - { + while (len != 0) { h = *ibuf / 16; l = *ibuf % 16; - if( h < 10 ) + if (h < 10) { *obuf++ = '0' + h; - else + } else { *obuf++ = 'a' + h - 10; + } - if( l < 10 ) + if (l < 10) { *obuf++ = '0' + l; - else + } else { *obuf++ = 'a' + l - 10; + } ++ibuf; len--; } } -unsigned char *mbedtls_test_zero_alloc( size_t len ) +unsigned char *mbedtls_test_zero_alloc(size_t len) { void *p; - size_t actual_len = ( len != 0 ) ? len : 1; + size_t actual_len = (len != 0) ? len : 1; - p = mbedtls_calloc( 1, actual_len ); - TEST_HELPER_ASSERT( p != NULL ); + p = mbedtls_calloc(1, actual_len); + TEST_HELPER_ASSERT(p != NULL); - memset( p, 0x00, actual_len ); + memset(p, 0x00, actual_len); - return( p ); + return p; } -unsigned char *mbedtls_test_unhexify_alloc( const char *ibuf, size_t *olen ) +unsigned char *mbedtls_test_unhexify_alloc(const char *ibuf, size_t *olen) { unsigned char *obuf; size_t len; - *olen = strlen( ibuf ) / 2; + *olen = strlen(ibuf) / 2; - if( *olen == 0 ) - return( mbedtls_test_zero_alloc( *olen ) ); + if (*olen == 0) { + return mbedtls_test_zero_alloc(*olen); + } - obuf = mbedtls_calloc( 1, *olen ); - TEST_HELPER_ASSERT( obuf != NULL ); - TEST_HELPER_ASSERT( mbedtls_test_unhexify( obuf, *olen, ibuf, &len ) == 0 ); + obuf = mbedtls_calloc(1, *olen); + TEST_HELPER_ASSERT(obuf != NULL); + TEST_HELPER_ASSERT(mbedtls_test_unhexify(obuf, *olen, ibuf, &len) == 0); - return( obuf ); + return obuf; } -int mbedtls_test_hexcmp( uint8_t * a, uint8_t * b, - uint32_t a_len, uint32_t b_len ) +int mbedtls_test_hexcmp(uint8_t *a, uint8_t *b, + uint32_t a_len, uint32_t b_len) { int ret = 0; uint32_t i = 0; - if( a_len != b_len ) - return( -1 ); + if (a_len != b_len) { + return -1; + } - for( i = 0; i < a_len; i++ ) - { - if( a[i] != b[i] ) - { + for (i = 0; i < a_len; i++) { + if (a[i] != b[i]) { ret = -1; break; } @@ -296,8 +300,8 @@ int mbedtls_test_hexcmp( uint8_t * a, uint8_t * b, } #if defined(MBEDTLS_TEST_HOOKS) -void mbedtls_test_err_add_check( int high, int low, - const char *file, int line ) +void mbedtls_test_err_add_check(int high, int low, + const char *file, int line) { /* Error codes are always negative (a value of zero is a success) however * their positive opposites can be easier to understand. The following @@ -311,42 +315,33 @@ void mbedtls_test_err_add_check( int high, int low, * and module-dependent error code (bits 7..11)). * l = low level error code. */ - if ( high > -0x1000 && high != 0 ) - /* high < 0001000000000000 - * No high level module ID bits are set. - */ - { - mbedtls_test_fail( "'high' is not a high-level error code", - line, file ); - } - else if ( high < -0x7F80 ) - /* high > 0111111110000000 - * Error code is greater than the largest allowed high level module ID. - */ - { - mbedtls_test_fail( "'high' error code is greater than 15 bits", - line, file ); - } - else if ( ( high & 0x7F ) != 0 ) - /* high & 0000000001111111 - * Error code contains low level error code bits. - */ - { - mbedtls_test_fail( "'high' contains a low-level error code", - line, file ); - } - else if ( low < -0x007F ) - /* low > 0000000001111111 - * Error code contains high or module level error code bits. - */ - { - mbedtls_test_fail( "'low' error code is greater than 7 bits", - line, file ); - } - else if ( low > 0 ) - { - mbedtls_test_fail( "'low' error code is greater than zero", - line, file ); + if (high > -0x1000 && high != 0) { + /* high < 0001000000000000 + * No high level module ID bits are set. + */ + mbedtls_test_fail("'high' is not a high-level error code", + line, file); + } else if (high < -0x7F80) { + /* high > 0111111110000000 + * Error code is greater than the largest allowed high level module ID. + */ + mbedtls_test_fail("'high' error code is greater than 15 bits", + line, file); + } else if ((high & 0x7F) != 0) { + /* high & 0000000001111111 + * Error code contains low level error code bits. + */ + mbedtls_test_fail("'high' contains a low-level error code", + line, file); + } else if (low < -0x007F) { + /* low > 0000000001111111 + * Error code contains high or module level error code bits. + */ + mbedtls_test_fail("'low' error code is greater than 7 bits", + line, file); + } else if (low > 0) { + mbedtls_test_fail("'low' error code is greater than zero", + line, file); } } #endif /* MBEDTLS_TEST_HOOKS */ diff --git a/tests/src/psa_crypto_helpers.c b/tests/src/psa_crypto_helpers.c index 299b6d125..06274d388 100644 --- a/tests/src/psa_crypto_helpers.c +++ b/tests/src/psa_crypto_helpers.c @@ -36,96 +36,106 @@ static mbedtls_svc_key_id_t key_ids_used_in_test[9]; static size_t num_key_ids_used; -int mbedtls_test_uses_key_id( mbedtls_svc_key_id_t key_id ) +int mbedtls_test_uses_key_id(mbedtls_svc_key_id_t key_id) { size_t i; - if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key_id ) > - PSA_MAX_PERSISTENT_KEY_IDENTIFIER ) - { + if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key_id) > + PSA_MAX_PERSISTENT_KEY_IDENTIFIER) { /* Don't touch key id values that designate non-key files. */ - return( 1 ); + return 1; } - for( i = 0; i < num_key_ids_used ; i++ ) - { - if( mbedtls_svc_key_id_equal( key_id, key_ids_used_in_test[i] ) ) - return( 1 ); + for (i = 0; i < num_key_ids_used; i++) { + if (mbedtls_svc_key_id_equal(key_id, key_ids_used_in_test[i])) { + return 1; + } + } + if (num_key_ids_used == ARRAY_LENGTH(key_ids_used_in_test)) { + return 0; } - if( num_key_ids_used == ARRAY_LENGTH( key_ids_used_in_test ) ) - return( 0 ); key_ids_used_in_test[num_key_ids_used] = key_id; ++num_key_ids_used; - return( 1 ); + return 1; } -void mbedtls_test_psa_purge_key_storage( void ) +void mbedtls_test_psa_purge_key_storage(void) { size_t i; - for( i = 0; i < num_key_ids_used; i++ ) - psa_destroy_persistent_key( key_ids_used_in_test[i] ); + for (i = 0; i < num_key_ids_used; i++) { + psa_destroy_persistent_key(key_ids_used_in_test[i]); + } num_key_ids_used = 0; } -void mbedtls_test_psa_purge_key_cache( void ) +void mbedtls_test_psa_purge_key_cache(void) { size_t i; - for( i = 0; i < num_key_ids_used; i++ ) - psa_purge_key( key_ids_used_in_test[i] ); + for (i = 0; i < num_key_ids_used; i++) { + psa_purge_key(key_ids_used_in_test[i]); + } } #endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ -const char *mbedtls_test_helper_is_psa_leaking( void ) +const char *mbedtls_test_helper_is_psa_leaking(void) { mbedtls_psa_stats_t stats; - mbedtls_psa_get_stats( &stats ); + mbedtls_psa_get_stats(&stats); - if( stats.volatile_slots != 0 ) - return( "A volatile slot has not been closed properly." ); - if( stats.persistent_slots != 0 ) - return( "A persistent slot has not been closed properly." ); - if( stats.external_slots != 0 ) - return( "An external slot has not been closed properly." ); - if( stats.half_filled_slots != 0 ) - return( "A half-filled slot has not been cleared properly." ); - if( stats.locked_slots != 0 ) - return( "Some slots are still marked as locked." ); + if (stats.volatile_slots != 0) { + return "A volatile slot has not been closed properly."; + } + if (stats.persistent_slots != 0) { + return "A persistent slot has not been closed properly."; + } + if (stats.external_slots != 0) { + return "An external slot has not been closed properly."; + } + if (stats.half_filled_slots != 0) { + return "A half-filled slot has not been cleared properly."; + } + if (stats.locked_slots != 0) { + return "Some slots are still marked as locked."; + } - return( NULL ); + return NULL; } #if defined(RECORD_PSA_STATUS_COVERAGE_LOG) /** Name of the file where return statuses are logged by #RECORD_STATUS. */ #define STATUS_LOG_FILE_NAME "statuses.log" -psa_status_t mbedtls_test_record_status( psa_status_t status, - const char *func, - const char *file, int line, - const char *expr ) +psa_status_t mbedtls_test_record_status(psa_status_t status, + const char *func, + const char *file, int line, + const char *expr) { /* We open the log file on first use. * We never close the log file, so the record_status feature is not * compatible with resource leak detectors such as Asan. */ static FILE *log; - if( log == NULL ) - log = fopen( STATUS_LOG_FILE_NAME, "a" ); - fprintf( log, "%d:%s:%s:%d:%s\n", (int) status, func, file, line, expr ); - return( status ); + if (log == NULL) { + log = fopen(STATUS_LOG_FILE_NAME, "a"); + } + fprintf(log, "%d:%s:%s:%d:%s\n", (int) status, func, file, line, expr); + return status; } #endif /* defined(RECORD_PSA_STATUS_COVERAGE_LOG) */ -psa_key_usage_t mbedtls_test_update_key_usage_flags( psa_key_usage_t usage_flags ) +psa_key_usage_t mbedtls_test_update_key_usage_flags(psa_key_usage_t usage_flags) { psa_key_usage_t updated_usage = usage_flags; - if( usage_flags & PSA_KEY_USAGE_SIGN_HASH ) + if (usage_flags & PSA_KEY_USAGE_SIGN_HASH) { updated_usage |= PSA_KEY_USAGE_SIGN_MESSAGE; + } - if( usage_flags & PSA_KEY_USAGE_VERIFY_HASH ) + if (usage_flags & PSA_KEY_USAGE_VERIFY_HASH) { updated_usage |= PSA_KEY_USAGE_VERIFY_MESSAGE; + } - return( updated_usage ); + return updated_usage; } #endif /* MBEDTLS_PSA_CRYPTO_C */ diff --git a/tests/src/psa_exercise_key.c b/tests/src/psa_exercise_key.c index 08c3b4685..ecd1ec4cd 100644 --- a/tests/src/psa_exercise_key.c +++ b/tests/src/psa_exercise_key.c @@ -33,14 +33,14 @@ #include #if defined(MBEDTLS_PSA_CRYPTO_SE_C) -static int lifetime_is_dynamic_secure_element( psa_key_lifetime_t lifetime ) +static int lifetime_is_dynamic_secure_element(psa_key_lifetime_t lifetime) { - return( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) != - PSA_KEY_LOCATION_LOCAL_STORAGE ); + return PSA_KEY_LIFETIME_GET_LOCATION(lifetime) != + PSA_KEY_LOCATION_LOCAL_STORAGE; } #endif -static int check_key_attributes_sanity( mbedtls_svc_key_id_t key ) +static int check_key_attributes_sanity(mbedtls_svc_key_id_t key) { int ok = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -49,58 +49,54 @@ static int check_key_attributes_sanity( mbedtls_svc_key_id_t key ) psa_key_type_t type; size_t bits; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - lifetime = psa_get_key_lifetime( &attributes ); - id = psa_get_key_id( &attributes ); - type = psa_get_key_type( &attributes ); - bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + lifetime = psa_get_key_lifetime(&attributes); + id = psa_get_key_id(&attributes); + type = psa_get_key_type(&attributes); + bits = psa_get_key_bits(&attributes); /* Persistence */ - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { TEST_ASSERT( - ( PSA_KEY_ID_VOLATILE_MIN <= - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) ) && - ( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) <= - PSA_KEY_ID_VOLATILE_MAX ) ); - } - else - { + (PSA_KEY_ID_VOLATILE_MIN <= + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id)) && + (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id) <= + PSA_KEY_ID_VOLATILE_MAX)); + } else { TEST_ASSERT( - ( PSA_KEY_ID_USER_MIN <= MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) ) && - ( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( id ) <= PSA_KEY_ID_USER_MAX ) ); + (PSA_KEY_ID_USER_MIN <= MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id)) && + (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(id) <= PSA_KEY_ID_USER_MAX)); } #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* randomly-generated 64-bit constant, should never appear in test data */ psa_key_slot_number_t slot_number = 0xec94d4a5058a1a21; - psa_status_t status = psa_get_key_slot_number( &attributes, &slot_number ); - if( lifetime_is_dynamic_secure_element( lifetime ) ) - { + psa_status_t status = psa_get_key_slot_number(&attributes, &slot_number); + if (lifetime_is_dynamic_secure_element(lifetime)) { /* Mbed Crypto currently always exposes the slot number to * applications. This is not mandated by the PSA specification * and may change in future versions. */ - TEST_EQUAL( status, 0 ); - TEST_ASSERT( slot_number != 0xec94d4a5058a1a21 ); - } - else - { - TEST_EQUAL( status, PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(status, 0); + TEST_ASSERT(slot_number != 0xec94d4a5058a1a21); + } else { + TEST_EQUAL(status, PSA_ERROR_INVALID_ARGUMENT); } #endif /* Type and size */ - TEST_ASSERT( type != 0 ); - TEST_ASSERT( bits != 0 ); - TEST_ASSERT( bits <= PSA_MAX_KEY_BITS ); - if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ) - TEST_ASSERT( bits % 8 == 0 ); + TEST_ASSERT(type != 0); + TEST_ASSERT(bits != 0); + TEST_ASSERT(bits <= PSA_MAX_KEY_BITS); + if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type)) { + TEST_ASSERT(bits % 8 == 0); + } /* MAX macros concerning specific key types */ - if( PSA_KEY_TYPE_IS_ECC( type ) ) - TEST_ASSERT( bits <= PSA_VENDOR_ECC_MAX_CURVE_BITS ); - else if( PSA_KEY_TYPE_IS_RSA( type ) ) - TEST_ASSERT( bits <= PSA_VENDOR_RSA_MAX_KEY_BITS ); - TEST_ASSERT( PSA_BLOCK_CIPHER_BLOCK_LENGTH( type ) <= PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE ); + if (PSA_KEY_TYPE_IS_ECC(type)) { + TEST_ASSERT(bits <= PSA_VENDOR_ECC_MAX_CURVE_BITS); + } else if (PSA_KEY_TYPE_IS_RSA(type)) { + TEST_ASSERT(bits <= PSA_VENDOR_RSA_MAX_KEY_BITS); + } + TEST_ASSERT(PSA_BLOCK_CIPHER_BLOCK_LENGTH(type) <= PSA_BLOCK_CIPHER_BLOCK_MAX_SIZE); ok = 1; @@ -109,410 +105,389 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - return( ok ); + return ok; } -static int exercise_mac_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_mac_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; const unsigned char input[] = "foo"; - unsigned char mac[PSA_MAC_MAX_SIZE] = {0}; - size_t mac_length = sizeof( mac ); + unsigned char mac[PSA_MAC_MAX_SIZE] = { 0 }; + size_t mac_length = sizeof(mac); /* Convert wildcard algorithm to exercisable algorithm */ - if( alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG ) - { - alg = PSA_ALG_TRUNCATED_MAC( alg, PSA_MAC_TRUNCATED_LENGTH( alg ) ); + if (alg & PSA_ALG_MAC_AT_LEAST_THIS_LENGTH_FLAG) { + alg = PSA_ALG_TRUNCATED_MAC(alg, PSA_MAC_TRUNCATED_LENGTH(alg)); } - if( usage & PSA_KEY_USAGE_SIGN_HASH ) - { - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input, sizeof( input ) ) ); - PSA_ASSERT( psa_mac_sign_finish( &operation, - mac, sizeof( mac ), - &mac_length ) ); + if (usage & PSA_KEY_USAGE_SIGN_HASH) { + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input, sizeof(input))); + PSA_ASSERT(psa_mac_sign_finish(&operation, + mac, sizeof(mac), + &mac_length)); } - if( usage & PSA_KEY_USAGE_VERIFY_HASH ) - { + if (usage & PSA_KEY_USAGE_VERIFY_HASH) { psa_status_t verify_status = - ( usage & PSA_KEY_USAGE_SIGN_HASH ? - PSA_SUCCESS : - PSA_ERROR_INVALID_SIGNATURE ); - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input, sizeof( input ) ) ); - TEST_EQUAL( psa_mac_verify_finish( &operation, mac, mac_length ), - verify_status ); + (usage & PSA_KEY_USAGE_SIGN_HASH ? + PSA_SUCCESS : + PSA_ERROR_INVALID_SIGNATURE); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input, sizeof(input))); + TEST_EQUAL(psa_mac_verify_finish(&operation, mac, mac_length), + verify_status); } - return( 1 ); + return 1; exit: - psa_mac_abort( &operation ); - return( 0 ); + psa_mac_abort(&operation); + return 0; } -static int exercise_cipher_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_cipher_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; - unsigned char iv[PSA_CIPHER_IV_MAX_SIZE] = {0}; + unsigned char iv[PSA_CIPHER_IV_MAX_SIZE] = { 0 }; size_t iv_length; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t key_type; const unsigned char plaintext[16] = "Hello, world..."; unsigned char ciphertext[32] = "(wabblewebblewibblewobblewubble)"; - size_t ciphertext_length = sizeof( ciphertext ); - unsigned char decrypted[sizeof( ciphertext )]; + size_t ciphertext_length = sizeof(ciphertext); + unsigned char decrypted[sizeof(ciphertext)]; size_t part_length; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_type = psa_get_key_type( &attributes ); - iv_length = PSA_CIPHER_IV_LENGTH( key_type, alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_type = psa_get_key_type(&attributes); + iv_length = PSA_CIPHER_IV_LENGTH(key_type, alg); - if( usage & PSA_KEY_USAGE_ENCRYPT ) - { - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - if( iv_length != 0 ) - { - PSA_ASSERT( psa_cipher_generate_iv( &operation, - iv, sizeof( iv ), - &iv_length ) ); + if (usage & PSA_KEY_USAGE_ENCRYPT) { + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + if (iv_length != 0) { + PSA_ASSERT(psa_cipher_generate_iv(&operation, + iv, sizeof(iv), + &iv_length)); } - PSA_ASSERT( psa_cipher_update( &operation, - plaintext, sizeof( plaintext ), - ciphertext, sizeof( ciphertext ), - &ciphertext_length ) ); - PSA_ASSERT( psa_cipher_finish( &operation, - ciphertext + ciphertext_length, - sizeof( ciphertext ) - ciphertext_length, - &part_length ) ); + PSA_ASSERT(psa_cipher_update(&operation, + plaintext, sizeof(plaintext), + ciphertext, sizeof(ciphertext), + &ciphertext_length)); + PSA_ASSERT(psa_cipher_finish(&operation, + ciphertext + ciphertext_length, + sizeof(ciphertext) - ciphertext_length, + &part_length)); ciphertext_length += part_length; } - if( usage & PSA_KEY_USAGE_DECRYPT ) - { + if (usage & PSA_KEY_USAGE_DECRYPT) { psa_status_t status; int maybe_invalid_padding = 0; - if( ! ( usage & PSA_KEY_USAGE_ENCRYPT ) ) - { - maybe_invalid_padding = ! PSA_ALG_IS_STREAM_CIPHER( alg ); + if (!(usage & PSA_KEY_USAGE_ENCRYPT)) { + maybe_invalid_padding = !PSA_ALG_IS_STREAM_CIPHER(alg); } - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); - if( iv_length != 0 ) - { - PSA_ASSERT( psa_cipher_set_iv( &operation, - iv, iv_length ) ); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); + if (iv_length != 0) { + PSA_ASSERT(psa_cipher_set_iv(&operation, + iv, iv_length)); } - PSA_ASSERT( psa_cipher_update( &operation, - ciphertext, ciphertext_length, - decrypted, sizeof( decrypted ), - &part_length ) ); - status = psa_cipher_finish( &operation, - decrypted + part_length, - sizeof( decrypted ) - part_length, - &part_length ); + PSA_ASSERT(psa_cipher_update(&operation, + ciphertext, ciphertext_length, + decrypted, sizeof(decrypted), + &part_length)); + status = psa_cipher_finish(&operation, + decrypted + part_length, + sizeof(decrypted) - part_length, + &part_length); /* For a stream cipher, all inputs are valid. For a block cipher, * if the input is some arbitrary data rather than an actual - ciphertext, a padding error is likely. */ - if( maybe_invalid_padding ) - TEST_ASSERT( status == PSA_SUCCESS || - status == PSA_ERROR_INVALID_PADDING ); - else - PSA_ASSERT( status ); + ciphertext, a padding error is likely. */ + if (maybe_invalid_padding) { + TEST_ASSERT(status == PSA_SUCCESS || + status == PSA_ERROR_INVALID_PADDING); + } else { + PSA_ASSERT(status); + } } - return( 1 ); + return 1; exit: - psa_cipher_abort( &operation ); - psa_reset_key_attributes( &attributes ); - return( 0 ); + psa_cipher_abort(&operation); + psa_reset_key_attributes(&attributes); + return 0; } -static int exercise_aead_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_aead_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { - unsigned char nonce[PSA_AEAD_NONCE_MAX_SIZE] = {0}; + unsigned char nonce[PSA_AEAD_NONCE_MAX_SIZE] = { 0 }; size_t nonce_length; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t key_type; unsigned char plaintext[16] = "Hello, world..."; unsigned char ciphertext[48] = "(wabblewebblewibblewobblewubble)"; - size_t ciphertext_length = sizeof( ciphertext ); - size_t plaintext_length = sizeof( ciphertext ); + size_t ciphertext_length = sizeof(ciphertext); + size_t plaintext_length = sizeof(ciphertext); /* Convert wildcard algorithm to exercisable algorithm */ - if( alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG ) - { - alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, PSA_ALG_AEAD_GET_TAG_LENGTH( alg ) ); + if (alg & PSA_ALG_AEAD_AT_LEAST_THIS_LENGTH_FLAG) { + alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, PSA_ALG_AEAD_GET_TAG_LENGTH(alg)); } - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_type = psa_get_key_type( &attributes ); - nonce_length = PSA_AEAD_NONCE_LENGTH( key_type, alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_type = psa_get_key_type(&attributes); + nonce_length = PSA_AEAD_NONCE_LENGTH(key_type, alg); - if( usage & PSA_KEY_USAGE_ENCRYPT ) - { - PSA_ASSERT( psa_aead_encrypt( key, alg, - nonce, nonce_length, - NULL, 0, - plaintext, sizeof( plaintext ), - ciphertext, sizeof( ciphertext ), - &ciphertext_length ) ); + if (usage & PSA_KEY_USAGE_ENCRYPT) { + PSA_ASSERT(psa_aead_encrypt(key, alg, + nonce, nonce_length, + NULL, 0, + plaintext, sizeof(plaintext), + ciphertext, sizeof(ciphertext), + &ciphertext_length)); } - if( usage & PSA_KEY_USAGE_DECRYPT ) - { + if (usage & PSA_KEY_USAGE_DECRYPT) { psa_status_t verify_status = - ( usage & PSA_KEY_USAGE_ENCRYPT ? - PSA_SUCCESS : - PSA_ERROR_INVALID_SIGNATURE ); - TEST_EQUAL( psa_aead_decrypt( key, alg, - nonce, nonce_length, - NULL, 0, - ciphertext, ciphertext_length, - plaintext, sizeof( plaintext ), - &plaintext_length ), - verify_status ); + (usage & PSA_KEY_USAGE_ENCRYPT ? + PSA_SUCCESS : + PSA_ERROR_INVALID_SIGNATURE); + TEST_EQUAL(psa_aead_decrypt(key, alg, + nonce, nonce_length, + NULL, 0, + ciphertext, ciphertext_length, + plaintext, sizeof(plaintext), + &plaintext_length), + verify_status); } - return( 1 ); + return 1; exit: - psa_reset_key_attributes( &attributes ); - return( 0 ); + psa_reset_key_attributes(&attributes); + return 0; } -static int can_sign_or_verify_message( psa_key_usage_t usage, - psa_algorithm_t alg ) +static int can_sign_or_verify_message(psa_key_usage_t usage, + psa_algorithm_t alg) { /* Sign-the-unspecified-hash algorithms can only be used with * {sign,verify}_hash, not with {sign,verify}_message. */ - if( alg == PSA_ALG_ECDSA_ANY || alg == PSA_ALG_RSA_PKCS1V15_SIGN_RAW ) - return( 0 ); - return( usage & ( PSA_KEY_USAGE_SIGN_MESSAGE | - PSA_KEY_USAGE_VERIFY_MESSAGE ) ); + if (alg == PSA_ALG_ECDSA_ANY || alg == PSA_ALG_RSA_PKCS1V15_SIGN_RAW) { + return 0; + } + return usage & (PSA_KEY_USAGE_SIGN_MESSAGE | + PSA_KEY_USAGE_VERIFY_MESSAGE); } -static int exercise_signature_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_signature_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { - if( usage & ( PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH ) ) - { - unsigned char payload[PSA_HASH_MAX_SIZE] = {1}; + if (usage & (PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH)) { + unsigned char payload[PSA_HASH_MAX_SIZE] = { 1 }; size_t payload_length = 16; - unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = {0}; - size_t signature_length = sizeof( signature ); - psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH( alg ); + unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = { 0 }; + size_t signature_length = sizeof(signature); + psa_algorithm_t hash_alg = PSA_ALG_SIGN_GET_HASH(alg); /* If the policy allows signing with any hash, just pick one. */ - if( PSA_ALG_IS_SIGN_HASH( alg ) && hash_alg == PSA_ALG_ANY_HASH ) - { + if (PSA_ALG_IS_SIGN_HASH(alg) && hash_alg == PSA_ALG_ANY_HASH) { #if defined(KNOWN_SUPPORTED_HASH_ALG) hash_alg = KNOWN_SUPPORTED_HASH_ALG; alg ^= PSA_ALG_ANY_HASH ^ hash_alg; #else - TEST_ASSERT( ! "No hash algorithm for hash-and-sign testing" ); + TEST_ASSERT(!"No hash algorithm for hash-and-sign testing"); #endif } /* Some algorithms require the payload to have the size of * the hash encoded in the algorithm. Use this input size * even for algorithms that allow other input sizes. */ - if( hash_alg != 0 ) - payload_length = PSA_HASH_LENGTH( hash_alg ); + if (hash_alg != 0) { + payload_length = PSA_HASH_LENGTH(hash_alg); + } - if( usage & PSA_KEY_USAGE_SIGN_HASH ) - { - PSA_ASSERT( psa_sign_hash( key, alg, + if (usage & PSA_KEY_USAGE_SIGN_HASH) { + PSA_ASSERT(psa_sign_hash(key, alg, + payload, payload_length, + signature, sizeof(signature), + &signature_length)); + } + + if (usage & PSA_KEY_USAGE_VERIFY_HASH) { + psa_status_t verify_status = + (usage & PSA_KEY_USAGE_SIGN_HASH ? + PSA_SUCCESS : + PSA_ERROR_INVALID_SIGNATURE); + TEST_EQUAL(psa_verify_hash(key, alg, payload, payload_length, - signature, sizeof( signature ), - &signature_length ) ); - } - - if( usage & PSA_KEY_USAGE_VERIFY_HASH ) - { - psa_status_t verify_status = - ( usage & PSA_KEY_USAGE_SIGN_HASH ? - PSA_SUCCESS : - PSA_ERROR_INVALID_SIGNATURE ); - TEST_EQUAL( psa_verify_hash( key, alg, - payload, payload_length, - signature, signature_length ), - verify_status ); + signature, signature_length), + verify_status); } } - if( can_sign_or_verify_message( usage, alg ) ) - { + if (can_sign_or_verify_message(usage, alg)) { unsigned char message[256] = "Hello, world..."; - unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = {0}; + unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = { 0 }; size_t message_length = 16; - size_t signature_length = sizeof( signature ); + size_t signature_length = sizeof(signature); - if( usage & PSA_KEY_USAGE_SIGN_MESSAGE ) - { - PSA_ASSERT( psa_sign_message( key, alg, - message, message_length, - signature, sizeof( signature ), - &signature_length ) ); + if (usage & PSA_KEY_USAGE_SIGN_MESSAGE) { + PSA_ASSERT(psa_sign_message(key, alg, + message, message_length, + signature, sizeof(signature), + &signature_length)); } - if( usage & PSA_KEY_USAGE_VERIFY_MESSAGE ) - { + if (usage & PSA_KEY_USAGE_VERIFY_MESSAGE) { psa_status_t verify_status = - ( usage & PSA_KEY_USAGE_SIGN_MESSAGE ? - PSA_SUCCESS : - PSA_ERROR_INVALID_SIGNATURE ); - TEST_EQUAL( psa_verify_message( key, alg, - message, message_length, - signature, signature_length ), - verify_status ); + (usage & PSA_KEY_USAGE_SIGN_MESSAGE ? + PSA_SUCCESS : + PSA_ERROR_INVALID_SIGNATURE); + TEST_EQUAL(psa_verify_message(key, alg, + message, message_length, + signature, signature_length), + verify_status); } } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } -static int exercise_asymmetric_encryption_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_asymmetric_encryption_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { unsigned char plaintext[256] = "Hello, world..."; unsigned char ciphertext[256] = "(wabblewebblewibblewobblewubble)"; - size_t ciphertext_length = sizeof( ciphertext ); + size_t ciphertext_length = sizeof(ciphertext); size_t plaintext_length = 16; - if( usage & PSA_KEY_USAGE_ENCRYPT ) - { - PSA_ASSERT( psa_asymmetric_encrypt( key, alg, - plaintext, plaintext_length, - NULL, 0, - ciphertext, sizeof( ciphertext ), - &ciphertext_length ) ); + if (usage & PSA_KEY_USAGE_ENCRYPT) { + PSA_ASSERT(psa_asymmetric_encrypt(key, alg, + plaintext, plaintext_length, + NULL, 0, + ciphertext, sizeof(ciphertext), + &ciphertext_length)); } - if( usage & PSA_KEY_USAGE_DECRYPT ) - { + if (usage & PSA_KEY_USAGE_DECRYPT) { psa_status_t status = - psa_asymmetric_decrypt( key, alg, - ciphertext, ciphertext_length, - NULL, 0, - plaintext, sizeof( plaintext ), - &plaintext_length ); - TEST_ASSERT( status == PSA_SUCCESS || - ( ( usage & PSA_KEY_USAGE_ENCRYPT ) == 0 && - ( status == PSA_ERROR_INVALID_ARGUMENT || - status == PSA_ERROR_INVALID_PADDING ) ) ); + psa_asymmetric_decrypt(key, alg, + ciphertext, ciphertext_length, + NULL, 0, + plaintext, sizeof(plaintext), + &plaintext_length); + TEST_ASSERT(status == PSA_SUCCESS || + ((usage & PSA_KEY_USAGE_ENCRYPT) == 0 && + (status == PSA_ERROR_INVALID_ARGUMENT || + status == PSA_ERROR_INVALID_PADDING))); } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } int mbedtls_test_psa_setup_key_derivation_wrap( - psa_key_derivation_operation_t* operation, + psa_key_derivation_operation_t *operation, mbedtls_svc_key_id_t key, psa_algorithm_t alg, - const unsigned char* input1, size_t input1_length, - const unsigned char* input2, size_t input2_length, - size_t capacity ) + const unsigned char *input1, size_t input1_length, + const unsigned char *input2, size_t input2_length, + size_t capacity) { - PSA_ASSERT( psa_key_derivation_setup( operation, alg ) ); - if( PSA_ALG_IS_HKDF( alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( operation, - PSA_KEY_DERIVATION_INPUT_SALT, - input1, input1_length ) ); - PSA_ASSERT( psa_key_derivation_input_key( operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key ) ); - PSA_ASSERT( psa_key_derivation_input_bytes( operation, - PSA_KEY_DERIVATION_INPUT_INFO, - input2, - input2_length ) ); - } - else if( PSA_ALG_IS_TLS12_PRF( alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( operation, - PSA_KEY_DERIVATION_INPUT_SEED, - input1, input1_length ) ); - PSA_ASSERT( psa_key_derivation_input_key( operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key ) ); - PSA_ASSERT( psa_key_derivation_input_bytes( operation, - PSA_KEY_DERIVATION_INPUT_LABEL, - input2, input2_length ) ); - } - else - { - TEST_ASSERT( ! "Key derivation algorithm not supported" ); + PSA_ASSERT(psa_key_derivation_setup(operation, alg)); + if (PSA_ALG_IS_HKDF(alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes(operation, + PSA_KEY_DERIVATION_INPUT_SALT, + input1, input1_length)); + PSA_ASSERT(psa_key_derivation_input_key(operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key)); + PSA_ASSERT(psa_key_derivation_input_bytes(operation, + PSA_KEY_DERIVATION_INPUT_INFO, + input2, + input2_length)); + } else if (PSA_ALG_IS_TLS12_PRF(alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes(operation, + PSA_KEY_DERIVATION_INPUT_SEED, + input1, input1_length)); + PSA_ASSERT(psa_key_derivation_input_key(operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key)); + PSA_ASSERT(psa_key_derivation_input_bytes(operation, + PSA_KEY_DERIVATION_INPUT_LABEL, + input2, input2_length)); + } else { + TEST_ASSERT(!"Key derivation algorithm not supported"); } - if( capacity != SIZE_MAX ) - PSA_ASSERT( psa_key_derivation_set_capacity( operation, capacity ) ); + if (capacity != SIZE_MAX) { + PSA_ASSERT(psa_key_derivation_set_capacity(operation, capacity)); + } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } -static int exercise_key_derivation_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_key_derivation_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; unsigned char input1[] = "Input 1"; - size_t input1_length = sizeof( input1 ); + size_t input1_length = sizeof(input1); unsigned char input2[] = "Input 2"; - size_t input2_length = sizeof( input2 ); + size_t input2_length = sizeof(input2); unsigned char output[1]; - size_t capacity = sizeof( output ); + size_t capacity = sizeof(output); - if( usage & PSA_KEY_USAGE_DERIVE ) - { - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg, - input1, input1_length, - input2, input2_length, - capacity ) ) + if (usage & PSA_KEY_USAGE_DERIVE) { + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, key, alg, + input1, input1_length, + input2, input2_length, + capacity)) { goto exit; + } - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output, - capacity ) ); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output, + capacity)); + PSA_ASSERT(psa_key_derivation_abort(&operation)); } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } /* We need two keys to exercise key agreement. Exercise the * private key against its own public key. */ psa_status_t mbedtls_test_psa_key_agreement_with_self( psa_key_derivation_operation_t *operation, - mbedtls_svc_key_id_t key ) + mbedtls_svc_key_id_t key) { psa_key_type_t private_key_type; psa_key_type_t public_key_type; @@ -525,34 +500,34 @@ psa_status_t mbedtls_test_psa_key_agreement_with_self( psa_status_t status = PSA_ERROR_GENERIC_ERROR; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - private_key_type = psa_get_key_type( &attributes ); - key_bits = psa_get_key_bits( &attributes ); - public_key_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( private_key_type ); - public_key_length = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( public_key_type, key_bits ); - ASSERT_ALLOC( public_key, public_key_length ); - PSA_ASSERT( psa_export_public_key( key, public_key, public_key_length, - &public_key_length ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + private_key_type = psa_get_key_type(&attributes); + key_bits = psa_get_key_bits(&attributes); + public_key_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(private_key_type); + public_key_length = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(public_key_type, key_bits); + ASSERT_ALLOC(public_key, public_key_length); + PSA_ASSERT(psa_export_public_key(key, public_key, public_key_length, + &public_key_length)); status = psa_key_derivation_key_agreement( operation, PSA_KEY_DERIVATION_INPUT_SECRET, key, - public_key, public_key_length ); + public_key, public_key_length); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( public_key ); - return( status ); + mbedtls_free(public_key); + return status; } /* We need two keys to exercise key agreement. Exercise the * private key against its own public key. */ psa_status_t mbedtls_test_psa_raw_key_agreement_with_self( psa_algorithm_t alg, - mbedtls_svc_key_id_t key ) + mbedtls_svc_key_id_t key) { psa_key_type_t private_key_type; psa_key_type_t public_key_type; @@ -567,26 +542,25 @@ psa_status_t mbedtls_test_psa_raw_key_agreement_with_self( psa_status_t status = PSA_ERROR_GENERIC_ERROR; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - private_key_type = psa_get_key_type( &attributes ); - key_bits = psa_get_key_bits( &attributes ); - public_key_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( private_key_type ); - public_key_length = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( public_key_type, key_bits ); - ASSERT_ALLOC( public_key, public_key_length ); - PSA_ASSERT( psa_export_public_key( key, - public_key, public_key_length, - &public_key_length ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + private_key_type = psa_get_key_type(&attributes); + key_bits = psa_get_key_bits(&attributes); + public_key_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(private_key_type); + public_key_length = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(public_key_type, key_bits); + ASSERT_ALLOC(public_key, public_key_length); + PSA_ASSERT(psa_export_public_key(key, + public_key, public_key_length, + &public_key_length)); - status = psa_raw_key_agreement( alg, key, - public_key, public_key_length, - output, sizeof( output ), &output_length ); - if ( status == PSA_SUCCESS ) - { - TEST_ASSERT( output_length <= - PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( private_key_type, - key_bits ) ); - TEST_ASSERT( output_length <= - PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ); + status = psa_raw_key_agreement(alg, key, + public_key, public_key_length, + output, sizeof(output), &output_length); + if (status == PSA_SUCCESS) { + TEST_ASSERT(output_length <= + PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(private_key_type, + key_bits)); + TEST_ASSERT(output_length <= + PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE); } exit: @@ -594,119 +568,112 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( public_key ); - return( status ); + mbedtls_free(public_key); + return status; } -static int exercise_raw_key_agreement_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_raw_key_agreement_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { int ok = 0; - if( usage & PSA_KEY_USAGE_DERIVE ) - { + if (usage & PSA_KEY_USAGE_DERIVE) { /* We need two keys to exercise key agreement. Exercise the * private key against its own public key. */ - PSA_ASSERT( mbedtls_test_psa_raw_key_agreement_with_self( alg, key ) ); + PSA_ASSERT(mbedtls_test_psa_raw_key_agreement_with_self(alg, key)); } ok = 1; exit: - return( ok ); + return ok; } -static int exercise_key_agreement_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +static int exercise_key_agreement_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; unsigned char input[1] = { 0 }; unsigned char output[1]; int ok = 0; - psa_algorithm_t kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF( alg ); + psa_algorithm_t kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg); psa_status_t expected_key_agreement_status = PSA_SUCCESS; - if( usage & PSA_KEY_USAGE_DERIVE ) - { + if (usage & PSA_KEY_USAGE_DERIVE) { /* We need two keys to exercise key agreement. Exercise the * private key against its own public key. */ - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_SEED, - input, sizeof( input ) ) ); + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); + if (PSA_ALG_IS_TLS12_PRF(kdf_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_SEED, + input, sizeof(input))); } - if( PSA_ALG_IS_HKDF_EXTRACT( kdf_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_SALT, - input, sizeof( input ) ) ); + if (PSA_ALG_IS_HKDF_EXTRACT(kdf_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_SALT, + input, sizeof(input))); } /* For HKDF_EXPAND input secret may fail as secret size may not match to expected PRK size. In practice it means that key bits must match hash length. Otherwise test should fail with INVALID_ARGUMENT. */ - if( PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) ) - { + if (PSA_ALG_IS_HKDF_EXPAND(kdf_alg)) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - size_t key_bits = psa_get_key_bits( &attributes ); - psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH( kdf_alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + size_t key_bits = psa_get_key_bits(&attributes); + psa_algorithm_t hash_alg = PSA_ALG_HKDF_GET_HASH(kdf_alg); - if( PSA_BITS_TO_BYTES( key_bits ) != PSA_HASH_LENGTH( hash_alg ) ) + if (PSA_BITS_TO_BYTES(key_bits) != PSA_HASH_LENGTH(hash_alg)) { expected_key_agreement_status = PSA_ERROR_INVALID_ARGUMENT; + } } - TEST_EQUAL( mbedtls_test_psa_key_agreement_with_self( &operation, key ), - expected_key_agreement_status ); + TEST_EQUAL(mbedtls_test_psa_key_agreement_with_self(&operation, key), + expected_key_agreement_status); - if( expected_key_agreement_status != PSA_SUCCESS ) - return( 1 ); + if (expected_key_agreement_status != PSA_SUCCESS) { + return 1; + } - if( PSA_ALG_IS_TLS12_PRF( kdf_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( kdf_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_LABEL, - input, sizeof( input ) ) ); + if (PSA_ALG_IS_TLS12_PRF(kdf_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(kdf_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_LABEL, + input, sizeof(input))); + } else if (PSA_ALG_IS_HKDF(kdf_alg) || PSA_ALG_IS_HKDF_EXPAND(kdf_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_INFO, + input, sizeof(input))); } - else if( PSA_ALG_IS_HKDF( kdf_alg ) || PSA_ALG_IS_HKDF_EXPAND( kdf_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_INFO, - input, sizeof( input ) ) ); - } - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output, - sizeof( output ) ) ); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output, + sizeof(output))); + PSA_ASSERT(psa_key_derivation_abort(&operation)); } ok = 1; exit: - return( ok ); + return ok; } int mbedtls_test_psa_exported_key_sanity_check( psa_key_type_t type, size_t bits, - const uint8_t *exported, size_t exported_length ) + const uint8_t *exported, size_t exported_length) { - TEST_ASSERT( exported_length <= PSA_EXPORT_KEY_OUTPUT_SIZE( type, bits ) ); + TEST_ASSERT(exported_length <= PSA_EXPORT_KEY_OUTPUT_SIZE(type, bits)); - if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ) - TEST_EQUAL( exported_length, PSA_BITS_TO_BYTES( bits ) ); - else + if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type)) { + TEST_EQUAL(exported_length, PSA_BITS_TO_BYTES(bits)); + } else #if defined(MBEDTLS_ASN1_PARSE_C) - if( type == PSA_KEY_TYPE_RSA_KEY_PAIR ) - { - uint8_t *p = (uint8_t*) exported; + if (type == PSA_KEY_TYPE_RSA_KEY_PAIR) { + uint8_t *p = (uint8_t *) exported; const uint8_t *end = exported + exported_length; size_t len; /* RSAPrivateKey ::= SEQUENCE { @@ -721,140 +688,139 @@ int mbedtls_test_psa_exported_key_sanity_check( * coefficient INTEGER, -- (inverse of q) mod p * } */ - TEST_EQUAL( mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_SEQUENCE | - MBEDTLS_ASN1_CONSTRUCTED ), 0 ); - TEST_EQUAL( len, end - p ); - if( ! mbedtls_test_asn1_skip_integer( &p, end, 0, 0, 0 ) ) + TEST_EQUAL(mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_SEQUENCE | + MBEDTLS_ASN1_CONSTRUCTED), 0); + TEST_EQUAL(len, end - p); + if (!mbedtls_test_asn1_skip_integer(&p, end, 0, 0, 0)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, bits, bits, 1 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, bits, bits, 1)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, 2, bits, 1 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, 2, bits, 1)) { goto exit; + } /* Require d to be at least half the size of n. */ - if( ! mbedtls_test_asn1_skip_integer( &p, end, bits / 2, bits, 1 ) ) + if (!mbedtls_test_asn1_skip_integer(&p, end, bits / 2, bits, 1)) { goto exit; + } /* Require p and q to be at most half the size of n, rounded up. */ - if( ! mbedtls_test_asn1_skip_integer( &p, end, bits / 2, bits / 2 + 1, 1 ) ) + if (!mbedtls_test_asn1_skip_integer(&p, end, bits / 2, bits / 2 + 1, 1)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, bits / 2, bits / 2 + 1, 1 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, bits / 2, bits / 2 + 1, 1)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, 1, bits / 2 + 1, 0 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, 1, bits / 2 + 1, 0)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, 1, bits / 2 + 1, 0 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, 1, bits / 2 + 1, 0)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, 1, bits / 2 + 1, 0 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, 1, bits / 2 + 1, 0)) { goto exit; - TEST_EQUAL( p - end, 0 ); + } + TEST_EQUAL(p - end, 0); - TEST_ASSERT( exported_length <= PSA_EXPORT_KEY_PAIR_MAX_SIZE ); - } - else + TEST_ASSERT(exported_length <= PSA_EXPORT_KEY_PAIR_MAX_SIZE); + } else #endif /* MBEDTLS_ASN1_PARSE_C */ #if defined(MBEDTLS_ECP_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) - { + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { /* Just the secret value */ - TEST_EQUAL( exported_length, PSA_BITS_TO_BYTES( bits ) ); + TEST_EQUAL(exported_length, PSA_BITS_TO_BYTES(bits)); - TEST_ASSERT( exported_length <= PSA_EXPORT_KEY_PAIR_MAX_SIZE ); - } - else + TEST_ASSERT(exported_length <= PSA_EXPORT_KEY_PAIR_MAX_SIZE); + } else #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_ASN1_PARSE_C) - if( type == PSA_KEY_TYPE_RSA_PUBLIC_KEY ) - { - uint8_t *p = (uint8_t*) exported; + if (type == PSA_KEY_TYPE_RSA_PUBLIC_KEY) { + uint8_t *p = (uint8_t *) exported; const uint8_t *end = exported + exported_length; size_t len; /* RSAPublicKey ::= SEQUENCE { * modulus INTEGER, -- n * publicExponent INTEGER } -- e */ - TEST_EQUAL( mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_SEQUENCE | - MBEDTLS_ASN1_CONSTRUCTED ), - 0 ); - TEST_EQUAL( len, end - p ); - if( ! mbedtls_test_asn1_skip_integer( &p, end, bits, bits, 1 ) ) + TEST_EQUAL(mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_SEQUENCE | + MBEDTLS_ASN1_CONSTRUCTED), + 0); + TEST_EQUAL(len, end - p); + if (!mbedtls_test_asn1_skip_integer(&p, end, bits, bits, 1)) { goto exit; - if( ! mbedtls_test_asn1_skip_integer( &p, end, 2, bits, 1 ) ) + } + if (!mbedtls_test_asn1_skip_integer(&p, end, 2, bits, 1)) { goto exit; - TEST_EQUAL( p - end, 0 ); + } + TEST_EQUAL(p - end, 0); - TEST_ASSERT( exported_length <= - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( type, bits ) ); - TEST_ASSERT( exported_length <= - PSA_EXPORT_PUBLIC_KEY_MAX_SIZE ); - } - else + TEST_ASSERT(exported_length <= + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(type, bits)); + TEST_ASSERT(exported_length <= + PSA_EXPORT_PUBLIC_KEY_MAX_SIZE); + } else #endif /* MBEDTLS_ASN1_PARSE_C */ #if defined(MBEDTLS_ECP_C) - if( PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( type ) ) - { + if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type)) { - TEST_ASSERT( exported_length <= - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( type, bits ) ); - TEST_ASSERT( exported_length <= - PSA_EXPORT_PUBLIC_KEY_MAX_SIZE ); + TEST_ASSERT(exported_length <= + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(type, bits)); + TEST_ASSERT(exported_length <= + PSA_EXPORT_PUBLIC_KEY_MAX_SIZE); - if( PSA_KEY_TYPE_ECC_GET_FAMILY( type ) == PSA_ECC_FAMILY_MONTGOMERY ) - { + if (PSA_KEY_TYPE_ECC_GET_FAMILY(type) == PSA_ECC_FAMILY_MONTGOMERY) { /* The representation of an ECC Montgomery public key is * the raw compressed point */ - TEST_EQUAL( PSA_BITS_TO_BYTES( bits ), exported_length ); - } - else - { + TEST_EQUAL(PSA_BITS_TO_BYTES(bits), exported_length); + } else { /* The representation of an ECC Weierstrass public key is: * - The byte 0x04; * - `x_P` as a `ceiling(m/8)`-byte string, big-endian; * - `y_P` as a `ceiling(m/8)`-byte string, big-endian; * - where m is the bit size associated with the curve. */ - TEST_EQUAL( 1 + 2 * PSA_BITS_TO_BYTES( bits ), exported_length ); - TEST_EQUAL( exported[0], 4 ); + TEST_EQUAL(1 + 2 * PSA_BITS_TO_BYTES(bits), exported_length); + TEST_EQUAL(exported[0], 4); } - } - else + } else #endif /* MBEDTLS_ECP_C */ { (void) exported; - TEST_ASSERT( ! "Sanity check not implemented for this key type" ); + TEST_ASSERT(!"Sanity check not implemented for this key type"); } #if defined(MBEDTLS_DES_C) - if( type == PSA_KEY_TYPE_DES ) - { + if (type == PSA_KEY_TYPE_DES) { /* Check the parity bits. */ unsigned i; - for( i = 0; i < bits / 8; i++ ) - { + for (i = 0; i < bits / 8; i++) { unsigned bit_count = 0; unsigned m; - for( m = 1; m <= 0x100; m <<= 1 ) - { - if( exported[i] & m ) + for (m = 1; m <= 0x100; m <<= 1) { + if (exported[i] & m) { ++bit_count; + } } - TEST_ASSERT( bit_count % 2 != 0 ); + TEST_ASSERT(bit_count % 2 != 0); } } #endif - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } -static int exercise_export_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage ) +static int exercise_export_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *exported = NULL; @@ -862,42 +828,41 @@ static int exercise_export_key( mbedtls_svc_key_id_t key, size_t exported_length = 0; int ok = 0; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); exported_size = PSA_EXPORT_KEY_OUTPUT_SIZE( - psa_get_key_type( &attributes ), - psa_get_key_bits( &attributes ) ); - ASSERT_ALLOC( exported, exported_size ); + psa_get_key_type(&attributes), + psa_get_key_bits(&attributes)); + ASSERT_ALLOC(exported, exported_size); - if( ( usage & PSA_KEY_USAGE_EXPORT ) == 0 && - ! PSA_KEY_TYPE_IS_PUBLIC_KEY( psa_get_key_type( &attributes ) ) ) - { - TEST_EQUAL( psa_export_key( key, exported, - exported_size, &exported_length ), - PSA_ERROR_NOT_PERMITTED ); + if ((usage & PSA_KEY_USAGE_EXPORT) == 0 && + !PSA_KEY_TYPE_IS_PUBLIC_KEY(psa_get_key_type(&attributes))) { + TEST_EQUAL(psa_export_key(key, exported, + exported_size, &exported_length), + PSA_ERROR_NOT_PERMITTED); ok = 1; goto exit; } - PSA_ASSERT( psa_export_key( key, - exported, exported_size, - &exported_length ) ); + PSA_ASSERT(psa_export_key(key, + exported, exported_size, + &exported_length)); ok = mbedtls_test_psa_exported_key_sanity_check( - psa_get_key_type( &attributes ), psa_get_key_bits( &attributes ), - exported, exported_length ); + psa_get_key_type(&attributes), psa_get_key_bits(&attributes), + exported, exported_length); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( exported ); - return( ok ); + mbedtls_free(exported); + return ok; } -static int exercise_export_public_key( mbedtls_svc_key_id_t key ) +static int exercise_export_public_key(mbedtls_svc_key_id_t key) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t public_type; @@ -906,119 +871,113 @@ static int exercise_export_public_key( mbedtls_svc_key_id_t key ) size_t exported_length = 0; int ok = 0; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - if( ! PSA_KEY_TYPE_IS_ASYMMETRIC( psa_get_key_type( &attributes ) ) ) - { + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + if (!PSA_KEY_TYPE_IS_ASYMMETRIC(psa_get_key_type(&attributes))) { exported_size = PSA_EXPORT_KEY_OUTPUT_SIZE( - psa_get_key_type( &attributes ), - psa_get_key_bits( &attributes ) ); - ASSERT_ALLOC( exported, exported_size ); + psa_get_key_type(&attributes), + psa_get_key_bits(&attributes)); + ASSERT_ALLOC(exported, exported_size); - TEST_EQUAL( psa_export_public_key( key, exported, - exported_size, &exported_length ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_export_public_key(key, exported, + exported_size, &exported_length), + PSA_ERROR_INVALID_ARGUMENT); ok = 1; goto exit; } public_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( - psa_get_key_type( &attributes ) ); - exported_size = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( public_type, - psa_get_key_bits( &attributes ) ); - ASSERT_ALLOC( exported, exported_size ); + psa_get_key_type(&attributes)); + exported_size = PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(public_type, + psa_get_key_bits(&attributes)); + ASSERT_ALLOC(exported, exported_size); - PSA_ASSERT( psa_export_public_key( key, - exported, exported_size, - &exported_length ) ); + PSA_ASSERT(psa_export_public_key(key, + exported, exported_size, + &exported_length)); ok = mbedtls_test_psa_exported_key_sanity_check( - public_type, psa_get_key_bits( &attributes ), - exported, exported_length ); + public_type, psa_get_key_bits(&attributes), + exported, exported_length); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( exported ); - return( ok ); + mbedtls_free(exported); + return ok; } -int mbedtls_test_psa_exercise_key( mbedtls_svc_key_id_t key, - psa_key_usage_t usage, - psa_algorithm_t alg ) +int mbedtls_test_psa_exercise_key(mbedtls_svc_key_id_t key, + psa_key_usage_t usage, + psa_algorithm_t alg) { int ok = 0; - if( ! check_key_attributes_sanity( key ) ) - return( 0 ); + if (!check_key_attributes_sanity(key)) { + return 0; + } - if( alg == 0 ) + if (alg == 0) { ok = 1; /* If no algorithm, do nothing (used for raw data "keys"). */ - else if( PSA_ALG_IS_MAC( alg ) ) - ok = exercise_mac_key( key, usage, alg ); - else if( PSA_ALG_IS_CIPHER( alg ) ) - ok = exercise_cipher_key( key, usage, alg ); - else if( PSA_ALG_IS_AEAD( alg ) ) - ok = exercise_aead_key( key, usage, alg ); - else if( PSA_ALG_IS_SIGN( alg ) ) - ok = exercise_signature_key( key, usage, alg ); - else if( PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ) - ok = exercise_asymmetric_encryption_key( key, usage, alg ); - else if( PSA_ALG_IS_KEY_DERIVATION( alg ) ) - ok = exercise_key_derivation_key( key, usage, alg ); - else if( PSA_ALG_IS_RAW_KEY_AGREEMENT( alg ) ) - ok = exercise_raw_key_agreement_key( key, usage, alg ); - else if( PSA_ALG_IS_KEY_AGREEMENT( alg ) ) - ok = exercise_key_agreement_key( key, usage, alg ); - else - TEST_ASSERT( ! "No code to exercise this category of algorithm" ); + } else if (PSA_ALG_IS_MAC(alg)) { + ok = exercise_mac_key(key, usage, alg); + } else if (PSA_ALG_IS_CIPHER(alg)) { + ok = exercise_cipher_key(key, usage, alg); + } else if (PSA_ALG_IS_AEAD(alg)) { + ok = exercise_aead_key(key, usage, alg); + } else if (PSA_ALG_IS_SIGN(alg)) { + ok = exercise_signature_key(key, usage, alg); + } else if (PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)) { + ok = exercise_asymmetric_encryption_key(key, usage, alg); + } else if (PSA_ALG_IS_KEY_DERIVATION(alg)) { + ok = exercise_key_derivation_key(key, usage, alg); + } else if (PSA_ALG_IS_RAW_KEY_AGREEMENT(alg)) { + ok = exercise_raw_key_agreement_key(key, usage, alg); + } else if (PSA_ALG_IS_KEY_AGREEMENT(alg)) { + ok = exercise_key_agreement_key(key, usage, alg); + } else { + TEST_ASSERT(!"No code to exercise this category of algorithm"); + } - ok = ok && exercise_export_key( key, usage ); - ok = ok && exercise_export_public_key( key ); + ok = ok && exercise_export_key(key, usage); + ok = ok && exercise_export_public_key(key); exit: - return( ok ); + return ok; } -psa_key_usage_t mbedtls_test_psa_usage_to_exercise( psa_key_type_t type, - psa_algorithm_t alg ) +psa_key_usage_t mbedtls_test_psa_usage_to_exercise(psa_key_type_t type, + psa_algorithm_t alg) { - if( PSA_ALG_IS_MAC( alg ) || PSA_ALG_IS_SIGN( alg ) ) - { - if( PSA_ALG_IS_SIGN_HASH( alg ) ) - { - if( PSA_ALG_SIGN_GET_HASH( alg ) ) - return( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ? - PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE: - PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | - PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE ); + if (PSA_ALG_IS_MAC(alg) || PSA_ALG_IS_SIGN(alg)) { + if (PSA_ALG_IS_SIGN_HASH(alg)) { + if (PSA_ALG_SIGN_GET_HASH(alg)) { + return PSA_KEY_TYPE_IS_PUBLIC_KEY(type) ? + PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_VERIFY_MESSAGE : + PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | + PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE; + } + } else if (PSA_ALG_IS_SIGN_MESSAGE(alg)) { + return PSA_KEY_TYPE_IS_PUBLIC_KEY(type) ? + PSA_KEY_USAGE_VERIFY_MESSAGE : + PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE; } - else if( PSA_ALG_IS_SIGN_MESSAGE( alg) ) - return( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ? - PSA_KEY_USAGE_VERIFY_MESSAGE : - PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE ); - return( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ? - PSA_KEY_USAGE_VERIFY_HASH : - PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH ); - } - else if( PSA_ALG_IS_CIPHER( alg ) || PSA_ALG_IS_AEAD( alg ) || - PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ) - { - return( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ? - PSA_KEY_USAGE_ENCRYPT : - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - } - else if( PSA_ALG_IS_KEY_DERIVATION( alg ) || - PSA_ALG_IS_KEY_AGREEMENT( alg ) ) - { - return( PSA_KEY_USAGE_DERIVE ); - } - else - { - return( 0 ); + return PSA_KEY_TYPE_IS_PUBLIC_KEY(type) ? + PSA_KEY_USAGE_VERIFY_HASH : + PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH; + } else if (PSA_ALG_IS_CIPHER(alg) || PSA_ALG_IS_AEAD(alg) || + PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)) { + return PSA_KEY_TYPE_IS_PUBLIC_KEY(type) ? + PSA_KEY_USAGE_ENCRYPT : + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT; + } else if (PSA_ALG_IS_KEY_DERIVATION(alg) || + PSA_ALG_IS_KEY_AGREEMENT(alg)) { + return PSA_KEY_USAGE_DERIVE; + } else { + return 0; } } diff --git a/tests/src/random.c b/tests/src/random.c index 7f3f40166..e74e68954 100644 --- a/tests/src/random.c +++ b/tests/src/random.c @@ -37,109 +37,111 @@ #include -int mbedtls_test_rnd_std_rand( void *rng_state, - unsigned char *output, - size_t len ) +int mbedtls_test_rnd_std_rand(void *rng_state, + unsigned char *output, + size_t len) { #if !defined(__OpenBSD__) && !defined(__NetBSD__) size_t i; - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - for( i = 0; i < len; ++i ) + for (i = 0; i < len; ++i) { output[i] = rand(); + } #else - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - arc4random_buf( output, len ); + arc4random_buf(output, len); #endif /* !OpenBSD && !NetBSD */ - return( 0 ); + return 0; } -int mbedtls_test_rnd_zero_rand( void *rng_state, - unsigned char *output, - size_t len ) +int mbedtls_test_rnd_zero_rand(void *rng_state, + unsigned char *output, + size_t len) { - if( rng_state != NULL ) + if (rng_state != NULL) { rng_state = NULL; + } - memset( output, 0, len ); + memset(output, 0, len); - return( 0 ); + return 0; } -int mbedtls_test_rnd_buffer_rand( void *rng_state, - unsigned char *output, - size_t len ) +int mbedtls_test_rnd_buffer_rand(void *rng_state, + unsigned char *output, + size_t len) { mbedtls_test_rnd_buf_info *info = (mbedtls_test_rnd_buf_info *) rng_state; size_t use_len; - if( rng_state == NULL ) - return( mbedtls_test_rnd_std_rand( NULL, output, len ) ); + if (rng_state == NULL) { + return mbedtls_test_rnd_std_rand(NULL, output, len); + } use_len = len; - if( len > info->length ) + if (len > info->length) { use_len = info->length; + } - if( use_len ) - { - memcpy( output, info->buf, use_len ); + if (use_len) { + memcpy(output, info->buf, use_len); info->buf += use_len; info->length -= use_len; } - if( len - use_len > 0 ) - { - if( info->fallback_f_rng != NULL ) - { - return( info->fallback_f_rng( info->fallback_p_rng, - output + use_len, - len - use_len ) ); + if (len - use_len > 0) { + if (info->fallback_f_rng != NULL) { + return info->fallback_f_rng(info->fallback_p_rng, + output + use_len, + len - use_len); + } else { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - else - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); } - return( 0 ); + return 0; } -int mbedtls_test_rnd_pseudo_rand( void *rng_state, - unsigned char *output, - size_t len ) +int mbedtls_test_rnd_pseudo_rand(void *rng_state, + unsigned char *output, + size_t len) { mbedtls_test_rnd_pseudo_info *info = (mbedtls_test_rnd_pseudo_info *) rng_state; - uint32_t i, *k, sum, delta=0x9E3779B9; + uint32_t i, *k, sum, delta = 0x9E3779B9; unsigned char result[4], *out = output; - if( rng_state == NULL ) - return( mbedtls_test_rnd_std_rand( NULL, output, len ) ); + if (rng_state == NULL) { + return mbedtls_test_rnd_std_rand(NULL, output, len); + } k = info->key; - while( len > 0 ) - { - size_t use_len = ( len > 4 ) ? 4 : len; + while (len > 0) { + size_t use_len = (len > 4) ? 4 : len; sum = 0; - for( i = 0; i < 32; i++ ) - { - info->v0 += ( ( ( info->v1 << 4 ) ^ ( info->v1 >> 5 ) ) - + info->v1 ) ^ ( sum + k[sum & 3] ); + for (i = 0; i < 32; i++) { + info->v0 += (((info->v1 << 4) ^ (info->v1 >> 5)) + + info->v1) ^ (sum + k[sum & 3]); sum += delta; - info->v1 += ( ( ( info->v0 << 4 ) ^ ( info->v0 >> 5 ) ) - + info->v0 ) ^ ( sum + k[( sum>>11 ) & 3] ); + info->v1 += (((info->v0 << 4) ^ (info->v0 >> 5)) + + info->v0) ^ (sum + k[(sum>>11) & 3]); } - PUT_UINT32_BE( info->v0, result, 0 ); - memcpy( out, result, use_len ); + PUT_UINT32_BE(info->v0, result, 0); + memcpy(out, result, use_len); len -= use_len; out += 4; } - return( 0 ); + return 0; } diff --git a/tests/src/threading_helpers.c b/tests/src/threading_helpers.c index ca91b7933..ae6e59072 100644 --- a/tests/src/threading_helpers.c +++ b/tests/src/threading_helpers.c @@ -70,8 +70,7 @@ * indicate the exact location of the problematic call. To locate the error, * use a debugger and set a breakpoint on mbedtls_test_mutex_usage_error(). */ -enum value_of_mutex_is_valid_field -{ +enum value_of_mutex_is_valid_field { /* Potential values for the is_valid field of mbedtls_threading_mutex_t. * Note that MUTEX_FREED must be 0 and MUTEX_IDLE must be 1 for * compatibility with threading_mutex_init_pthread() and @@ -82,12 +81,11 @@ enum value_of_mutex_is_valid_field MUTEX_LOCKED = 2, //!< Set by our lock }; -typedef struct -{ - void (*init)( mbedtls_threading_mutex_t * ); - void (*free)( mbedtls_threading_mutex_t * ); - int (*lock)( mbedtls_threading_mutex_t * ); - int (*unlock)( mbedtls_threading_mutex_t * ); +typedef struct { + void (*init)(mbedtls_threading_mutex_t *); + void (*free)(mbedtls_threading_mutex_t *); + int (*lock)(mbedtls_threading_mutex_t *); + int (*unlock)(mbedtls_threading_mutex_t *); } mutex_functions_t; static mutex_functions_t mutex_functions; @@ -98,94 +96,96 @@ static mutex_functions_t mutex_functions; */ static int live_mutexes; -static void mbedtls_test_mutex_usage_error( mbedtls_threading_mutex_t *mutex, - const char *msg ) +static void mbedtls_test_mutex_usage_error(mbedtls_threading_mutex_t *mutex, + const char *msg) { (void) mutex; - if( mbedtls_test_info.mutex_usage_error == NULL ) + if (mbedtls_test_info.mutex_usage_error == NULL) { mbedtls_test_info.mutex_usage_error = msg; - mbedtls_fprintf( stdout, "[mutex: %s] ", msg ); + } + mbedtls_fprintf(stdout, "[mutex: %s] ", msg); /* Don't mark the test as failed yet. This way, if the test fails later * for a functional reason, the test framework will report the message * and location for this functional reason. If the test passes, * mbedtls_test_mutex_usage_check() will mark it as failed. */ } -static void mbedtls_test_wrap_mutex_init( mbedtls_threading_mutex_t *mutex ) +static void mbedtls_test_wrap_mutex_init(mbedtls_threading_mutex_t *mutex) { - mutex_functions.init( mutex ); - if( mutex->is_valid ) + mutex_functions.init(mutex); + if (mutex->is_valid) { ++live_mutexes; + } } -static void mbedtls_test_wrap_mutex_free( mbedtls_threading_mutex_t *mutex ) +static void mbedtls_test_wrap_mutex_free(mbedtls_threading_mutex_t *mutex) { - switch( mutex->is_valid ) - { + switch (mutex->is_valid) { case MUTEX_FREED: - mbedtls_test_mutex_usage_error( mutex, "free without init or double free" ); + mbedtls_test_mutex_usage_error(mutex, "free without init or double free"); break; case MUTEX_IDLE: /* Do nothing. The underlying free function will reset is_valid * to 0. */ break; case MUTEX_LOCKED: - mbedtls_test_mutex_usage_error( mutex, "free without unlock" ); + mbedtls_test_mutex_usage_error(mutex, "free without unlock"); break; default: - mbedtls_test_mutex_usage_error( mutex, "corrupted state" ); + mbedtls_test_mutex_usage_error(mutex, "corrupted state"); break; } - if( mutex->is_valid ) + if (mutex->is_valid) { --live_mutexes; - mutex_functions.free( mutex ); + } + mutex_functions.free(mutex); } -static int mbedtls_test_wrap_mutex_lock( mbedtls_threading_mutex_t *mutex ) +static int mbedtls_test_wrap_mutex_lock(mbedtls_threading_mutex_t *mutex) { - int ret = mutex_functions.lock( mutex ); - switch( mutex->is_valid ) - { + int ret = mutex_functions.lock(mutex); + switch (mutex->is_valid) { case MUTEX_FREED: - mbedtls_test_mutex_usage_error( mutex, "lock without init" ); + mbedtls_test_mutex_usage_error(mutex, "lock without init"); break; case MUTEX_IDLE: - if( ret == 0 ) + if (ret == 0) { mutex->is_valid = 2; + } break; case MUTEX_LOCKED: - mbedtls_test_mutex_usage_error( mutex, "double lock" ); + mbedtls_test_mutex_usage_error(mutex, "double lock"); break; default: - mbedtls_test_mutex_usage_error( mutex, "corrupted state" ); + mbedtls_test_mutex_usage_error(mutex, "corrupted state"); break; } - return( ret ); + return ret; } -static int mbedtls_test_wrap_mutex_unlock( mbedtls_threading_mutex_t *mutex ) +static int mbedtls_test_wrap_mutex_unlock(mbedtls_threading_mutex_t *mutex) { - int ret = mutex_functions.unlock( mutex ); - switch( mutex->is_valid ) - { + int ret = mutex_functions.unlock(mutex); + switch (mutex->is_valid) { case MUTEX_FREED: - mbedtls_test_mutex_usage_error( mutex, "unlock without init" ); + mbedtls_test_mutex_usage_error(mutex, "unlock without init"); break; case MUTEX_IDLE: - mbedtls_test_mutex_usage_error( mutex, "unlock without lock" ); + mbedtls_test_mutex_usage_error(mutex, "unlock without lock"); break; case MUTEX_LOCKED: - if( ret == 0 ) + if (ret == 0) { mutex->is_valid = MUTEX_IDLE; + } break; default: - mbedtls_test_mutex_usage_error( mutex, "corrupted state" ); + mbedtls_test_mutex_usage_error(mutex, "corrupted state"); break; } - return( ret ); + return ret; } -void mbedtls_test_mutex_usage_init( void ) +void mbedtls_test_mutex_usage_init(void) { mutex_functions.init = mbedtls_mutex_init; mutex_functions.free = mbedtls_mutex_free; @@ -197,25 +197,24 @@ void mbedtls_test_mutex_usage_init( void ) mbedtls_mutex_unlock = &mbedtls_test_wrap_mutex_unlock; } -void mbedtls_test_mutex_usage_check( void ) +void mbedtls_test_mutex_usage_check(void) { - if( live_mutexes != 0 ) - { + if (live_mutexes != 0) { /* A positive number (more init than free) means that a mutex resource * is leaking (on platforms where a mutex consumes more than the * mbedtls_threading_mutex_t object itself). The rare case of a * negative number means a missing init somewhere. */ - mbedtls_fprintf( stdout, "[mutex: %d leaked] ", live_mutexes ); + mbedtls_fprintf(stdout, "[mutex: %d leaked] ", live_mutexes); live_mutexes = 0; - if( mbedtls_test_info.mutex_usage_error == NULL ) + if (mbedtls_test_info.mutex_usage_error == NULL) { mbedtls_test_info.mutex_usage_error = "missing free"; + } } - if( mbedtls_test_info.mutex_usage_error != NULL && - mbedtls_test_info.result != MBEDTLS_TEST_RESULT_FAILED ) - { + if (mbedtls_test_info.mutex_usage_error != NULL && + mbedtls_test_info.result != MBEDTLS_TEST_RESULT_FAILED) { /* Functionally, the test passed. But there was a mutex usage error, * so mark the test as failed after all. */ - mbedtls_test_fail( "Mutex usage error", __LINE__, __FILE__ ); + mbedtls_test_fail("Mutex usage error", __LINE__, __FILE__); } mbedtls_test_info.mutex_usage_error = NULL; } diff --git a/tests/suites/helpers.function b/tests/suites/helpers.function index 82495644e..313459e4f 100644 --- a/tests/suites/helpers.function +++ b/tests/suites/helpers.function @@ -10,7 +10,7 @@ #include -#if defined (MBEDTLS_ERROR_C) +#if defined(MBEDTLS_ERROR_C) #include "mbedtls/error.h" #endif #include "mbedtls/platform.h" @@ -66,9 +66,9 @@ typedef UINT32 uint32_t; /* Indicates whether we expect mbedtls_entropy_init * to initialize some strong entropy source. */ #if !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) && \ - ( !defined(MBEDTLS_NO_PLATFORM_ENTROPY) || \ - defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \ - defined(ENTROPY_NV_SEED) ) + (!defined(MBEDTLS_NO_PLATFORM_ENTROPY) || \ + defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \ + defined(ENTROPY_NV_SEED)) #define ENTROPY_HAVE_STRONG #endif @@ -83,65 +83,60 @@ typedef UINT32 uint32_t; * * \return 0 if the key store is empty, 1 otherwise. */ -int test_fail_if_psa_leaking( int line_no, const char *filename ) +int test_fail_if_psa_leaking(int line_no, const char *filename) { - const char *msg = mbedtls_test_helper_is_psa_leaking( ); - if( msg == NULL ) + const char *msg = mbedtls_test_helper_is_psa_leaking(); + if (msg == NULL) { return 0; - else - { - mbedtls_test_fail( msg, line_no, filename ); + } else { + mbedtls_test_fail(msg, line_no, filename); return 1; } } #endif /* defined(MBEDTLS_PSA_CRYPTO_C) */ #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) -static int redirect_output( FILE* out_stream, const char* path ) +static int redirect_output(FILE *out_stream, const char *path) { int out_fd, dup_fd; - FILE* path_stream; + FILE *path_stream; - out_fd = fileno( out_stream ); - dup_fd = dup( out_fd ); + out_fd = fileno(out_stream); + dup_fd = dup(out_fd); - if( dup_fd == -1 ) - { - return( -1 ); + if (dup_fd == -1) { + return -1; } - path_stream = fopen( path, "w" ); - if( path_stream == NULL ) - { - close( dup_fd ); - return( -1 ); + path_stream = fopen(path, "w"); + if (path_stream == NULL) { + close(dup_fd); + return -1; } - fflush( out_stream ); - if( dup2( fileno( path_stream ), out_fd ) == -1 ) - { - close( dup_fd ); - fclose( path_stream ); - return( -1 ); + fflush(out_stream); + if (dup2(fileno(path_stream), out_fd) == -1) { + close(dup_fd); + fclose(path_stream); + return -1; } - fclose( path_stream ); - return( dup_fd ); + fclose(path_stream); + return dup_fd; } -static int restore_output( FILE* out_stream, int dup_fd ) +static int restore_output(FILE *out_stream, int dup_fd) { - int out_fd = fileno( out_stream ); + int out_fd = fileno(out_stream); - fflush( out_stream ); - if( dup2( dup_fd, out_fd ) == -1 ) - { - close( out_fd ); - close( dup_fd ); - return( -1 ); + fflush(out_stream); + if (dup2(dup_fd, out_fd) == -1) { + close(out_fd); + close(dup_fd); + return -1; } - close( dup_fd ); - return( 0 ); + close(dup_fd); + return 0; } #endif /* __unix__ || __APPLE__ __MACH__ */ diff --git a/tests/suites/host_test.function b/tests/suites/host_test.function index bb0682283..475a9c835 100644 --- a/tests/suites/host_test.function +++ b/tests/suites/host_test.function @@ -8,20 +8,19 @@ * * \return 0 if success else 1 */ -int verify_string( char **str ) +int verify_string(char **str) { - if( ( *str )[0] != '"' || - ( *str )[strlen( *str ) - 1] != '"' ) - { - mbedtls_fprintf( stderr, - "Expected string (with \"\") for parameter and got: %s\n", *str ); - return( -1 ); + if ((*str)[0] != '"' || + (*str)[strlen(*str) - 1] != '"') { + mbedtls_fprintf(stderr, + "Expected string (with \"\") for parameter and got: %s\n", *str); + return -1; } - ( *str )++; - ( *str )[strlen( *str ) - 1] = '\0'; + (*str)++; + (*str)[strlen(*str) - 1] = '\0'; - return( 0 ); + return 0; } /** @@ -33,50 +32,46 @@ int verify_string( char **str ) * * \return 0 if success else 1 */ -int verify_int( char *str, int32_t *value ) +int verify_int(char *str, int32_t *value) { size_t i; int minus = 0; int digits = 1; int hex = 0; - for( i = 0; i < strlen( str ); i++ ) - { - if( i == 0 && str[i] == '-' ) - { + for (i = 0; i < strlen(str); i++) { + if (i == 0 && str[i] == '-') { minus = 1; continue; } - if( ( ( minus && i == 2 ) || ( !minus && i == 1 ) ) && - str[i - 1] == '0' && ( str[i] == 'x' || str[i] == 'X' ) ) - { + if (((minus && i == 2) || (!minus && i == 1)) && + str[i - 1] == '0' && (str[i] == 'x' || str[i] == 'X')) { hex = 1; continue; } - if( ! ( ( str[i] >= '0' && str[i] <= '9' ) || - ( hex && ( ( str[i] >= 'a' && str[i] <= 'f' ) || - ( str[i] >= 'A' && str[i] <= 'F' ) ) ) ) ) - { + if (!((str[i] >= '0' && str[i] <= '9') || + (hex && ((str[i] >= 'a' && str[i] <= 'f') || + (str[i] >= 'A' && str[i] <= 'F'))))) { digits = 0; break; } } - if( digits ) - { - if( hex ) - *value = strtol( str, NULL, 16 ); - else - *value = strtol( str, NULL, 10 ); + if (digits) { + if (hex) { + *value = strtol(str, NULL, 16); + } else { + *value = strtol(str, NULL, 10); + } - return( 0 ); + return 0; } - mbedtls_fprintf( stderr, - "Expected integer for parameter and got: %s\n", str ); - return( KEY_VALUE_MAPPING_NOT_FOUND ); + mbedtls_fprintf(stderr, + "Expected integer for parameter and got: %s\n", str); + return KEY_VALUE_MAPPING_NOT_FOUND; } @@ -107,44 +102,45 @@ int verify_int( char *str, int32_t *value ) * * \return 0 if success else -1 */ -int get_line( FILE *f, char *buf, size_t len ) +int get_line(FILE *f, char *buf, size_t len) { char *ret; int i = 0, str_len = 0, has_string = 0; /* Read until we get a valid line */ - do - { - ret = fgets( buf, len, f ); - if( ret == NULL ) - return( -1 ); + do { + ret = fgets(buf, len, f); + if (ret == NULL) { + return -1; + } - str_len = strlen( buf ); + str_len = strlen(buf); /* Skip empty line and comment */ - if ( str_len == 0 || buf[0] == '#' ) + if (str_len == 0 || buf[0] == '#') { continue; + } has_string = 0; - for ( i = 0; i < str_len; i++ ) - { + for (i = 0; i < str_len; i++) { char c = buf[i]; - if ( c != ' ' && c != '\t' && c != '\n' && - c != '\v' && c != '\f' && c != '\r' ) - { + if (c != ' ' && c != '\t' && c != '\n' && + c != '\v' && c != '\f' && c != '\r') { has_string = 1; break; } } - } while( !has_string ); + } while (!has_string); /* Strip new line and carriage return */ - ret = buf + strlen( buf ); - if( ret-- > buf && *ret == '\n' ) + ret = buf + strlen(buf); + if (ret-- > buf && *ret == '\n') { *ret = '\0'; - if( ret-- > buf && *ret == '\r' ) + } + if (ret-- > buf && *ret == '\r') { *ret = '\0'; + } - return( 0 ); + return 0; } /** @@ -157,8 +153,8 @@ int get_line( FILE *f, char *buf, size_t len ) * * \return Count of strings found. */ -static int parse_arguments( char *buf, size_t len, char **params, - size_t params_len ) +static int parse_arguments(char *buf, size_t len, char **params, + size_t params_len) { size_t cnt = 0, i; char *cur = buf; @@ -166,20 +162,16 @@ static int parse_arguments( char *buf, size_t len, char **params, params[cnt++] = cur; - while( *p != '\0' && p < ( buf + len ) ) - { - if( *p == '\\' ) - { + while (*p != '\0' && p < (buf + len)) { + if (*p == '\\') { p++; p++; continue; } - if( *p == ':' ) - { - if( p + 1 < buf + len ) - { + if (*p == ':') { + if (p + 1 < buf + len) { cur = p + 1; - TEST_HELPER_ASSERT( cnt < params_len ); + TEST_HELPER_ASSERT(cnt < params_len); params[cnt++] = cur; } *p = '\0'; @@ -189,35 +181,28 @@ static int parse_arguments( char *buf, size_t len, char **params, } /* Replace newlines, question marks and colons in strings */ - for( i = 0; i < cnt; i++ ) - { + for (i = 0; i < cnt; i++) { p = params[i]; q = params[i]; - while( *p != '\0' ) - { - if( *p == '\\' && *( p + 1 ) == 'n' ) - { + while (*p != '\0') { + if (*p == '\\' && *(p + 1) == 'n') { p += 2; - *( q++ ) = '\n'; - } - else if( *p == '\\' && *( p + 1 ) == ':' ) - { + *(q++) = '\n'; + } else if (*p == '\\' && *(p + 1) == ':') { p += 2; - *( q++ ) = ':'; - } - else if( *p == '\\' && *( p + 1 ) == '?' ) - { + *(q++) = ':'; + } else if (*p == '\\' && *(p + 1) == '?') { p += 2; - *( q++ ) = '?'; + *(q++) = '?'; + } else { + *(q++) = *(p++); } - else - *( q++ ) = *( p++ ); } *q = '\0'; } - return( cnt ); + return cnt; } /** @@ -238,81 +223,59 @@ static int parse_arguments( char *buf, size_t len, char **params, * * \return 0 for success else 1 */ -static int convert_params( size_t cnt , char ** params , int32_t * int_params_store ) +static int convert_params(size_t cnt, char **params, int32_t *int_params_store) { - char ** cur = params; - char ** out = params; + char **cur = params; + char **out = params; int ret = DISPATCH_TEST_SUCCESS; - while ( cur < params + cnt ) - { - char * type = *cur++; - char * val = *cur++; + while (cur < params + cnt) { + char *type = *cur++; + char *val = *cur++; - if ( strcmp( type, "char*" ) == 0 ) - { - if ( verify_string( &val ) == 0 ) - { - *out++ = val; - } - else - { - ret = ( DISPATCH_INVALID_TEST_DATA ); + if (strcmp(type, "char*") == 0) { + if (verify_string(&val) == 0) { + *out++ = val; + } else { + ret = (DISPATCH_INVALID_TEST_DATA); break; } - } - else if ( strcmp( type, "int" ) == 0 ) - { - if ( verify_int( val, int_params_store ) == 0 ) - { - *out++ = (char *) int_params_store++; - } - else - { - ret = ( DISPATCH_INVALID_TEST_DATA ); + } else if (strcmp(type, "int") == 0) { + if (verify_int(val, int_params_store) == 0) { + *out++ = (char *) int_params_store++; + } else { + ret = (DISPATCH_INVALID_TEST_DATA); break; } - } - else if ( strcmp( type, "hex" ) == 0 ) - { - if ( verify_string( &val ) == 0 ) - { + } else if (strcmp(type, "hex") == 0) { + if (verify_string(&val) == 0) { size_t len; TEST_HELPER_ASSERT( - mbedtls_test_unhexify( (unsigned char *) val, strlen( val ), - val, &len ) == 0 ); + mbedtls_test_unhexify((unsigned char *) val, strlen(val), + val, &len) == 0); *int_params_store = len; *out++ = val; - *out++ = (char *)(int_params_store++); - } - else - { - ret = ( DISPATCH_INVALID_TEST_DATA ); + *out++ = (char *) (int_params_store++); + } else { + ret = (DISPATCH_INVALID_TEST_DATA); break; } - } - else if ( strcmp( type, "exp" ) == 0 ) - { - int exp_id = strtol( val, NULL, 10 ); - if ( get_expression ( exp_id, int_params_store ) == 0 ) - { - *out++ = (char *)int_params_store++; + } else if (strcmp(type, "exp") == 0) { + int exp_id = strtol(val, NULL, 10); + if (get_expression(exp_id, int_params_store) == 0) { + *out++ = (char *) int_params_store++; + } else { + ret = (DISPATCH_INVALID_TEST_DATA); + break; } - else - { - ret = ( DISPATCH_INVALID_TEST_DATA ); - break; - } - } - else - { - ret = ( DISPATCH_INVALID_TEST_DATA ); - break; + } else { + ret = (DISPATCH_INVALID_TEST_DATA); + break; } } - return( ret ); + return ret; } /** @@ -335,26 +298,27 @@ static int convert_params( size_t cnt , char ** params , int32_t * int_params_st #if defined(__GNUC__) __attribute__((__noinline__)) #endif -static int test_snprintf( size_t n, const char *ref_buf, int ref_ret ) +static int test_snprintf(size_t n, const char *ref_buf, int ref_ret) { int ret; char buf[10] = "xxxxxxxxx"; const char ref[10] = "xxxxxxxxx"; - if( n >= sizeof( buf ) ) - return( -1 ); - ret = mbedtls_snprintf( buf, n, "%s", "123" ); - if( ret < 0 || (size_t) ret >= n ) + if (n >= sizeof(buf)) { + return -1; + } + ret = mbedtls_snprintf(buf, n, "%s", "123"); + if (ret < 0 || (size_t) ret >= n) { ret = -1; - - if( strncmp( ref_buf, buf, sizeof( buf ) ) != 0 || - ref_ret != ret || - memcmp( buf + n, ref + n, sizeof( buf ) - n ) != 0 ) - { - return( 1 ); } - return( 0 ); + if (strncmp(ref_buf, buf, sizeof(buf)) != 0 || + ref_ret != ret || + memcmp(buf + n, ref + n, sizeof(buf) - n) != 0) { + return 1; + } + + return 0; } /** @@ -362,14 +326,14 @@ static int test_snprintf( size_t n, const char *ref_buf, int ref_ret ) * * \return 0 for success else 1 */ -static int run_test_snprintf( void ) +static int run_test_snprintf(void) { - return( test_snprintf( 0, "xxxxxxxxx", -1 ) != 0 || - test_snprintf( 1, "", -1 ) != 0 || - test_snprintf( 2, "1", -1 ) != 0 || - test_snprintf( 3, "12", -1 ) != 0 || - test_snprintf( 4, "123", 3 ) != 0 || - test_snprintf( 5, "123", 3 ) != 0 ); + return test_snprintf(0, "xxxxxxxxx", -1) != 0 || + test_snprintf(1, "", -1) != 0 || + test_snprintf(2, "1", -1) != 0 || + test_snprintf(3, "12", -1) != 0 || + test_snprintf(4, "123", 3) != 0 || + test_snprintf(5, "123", 3) != 0; } /** \brief Write the description of the test case to the outcome CSV file. @@ -379,43 +343,44 @@ static int run_test_snprintf( void ) * \param argv0 The test suite name. * \param test_case The test case description. */ -static void write_outcome_entry( FILE *outcome_file, - const char *argv0, - const char *test_case ) +static void write_outcome_entry(FILE *outcome_file, + const char *argv0, + const char *test_case) { /* The non-varying fields are initialized on first use. */ static const char *platform = NULL; static const char *configuration = NULL; static const char *test_suite = NULL; - if( outcome_file == NULL ) + if (outcome_file == NULL) { return; + } - if( platform == NULL ) - { - platform = getenv( "MBEDTLS_TEST_PLATFORM" ); - if( platform == NULL ) + if (platform == NULL) { + platform = getenv("MBEDTLS_TEST_PLATFORM"); + if (platform == NULL) { platform = "unknown"; + } } - if( configuration == NULL ) - { - configuration = getenv( "MBEDTLS_TEST_CONFIGURATION" ); - if( configuration == NULL ) + if (configuration == NULL) { + configuration = getenv("MBEDTLS_TEST_CONFIGURATION"); + if (configuration == NULL) { configuration = "unknown"; + } } - if( test_suite == NULL ) - { - test_suite = strrchr( argv0, '/' ); - if( test_suite != NULL ) + if (test_suite == NULL) { + test_suite = strrchr(argv0, '/'); + if (test_suite != NULL) { test_suite += 1; // skip the '/' - else + } else { test_suite = argv0; + } } /* Write the beginning of the outcome line. * Ignore errors: writing the outcome file is on a best-effort basis. */ - mbedtls_fprintf( outcome_file, "%s;%s;%s;%s;", - platform, configuration, test_suite, test_case ); + mbedtls_fprintf(outcome_file, "%s;%s;%s;%s;", + platform, configuration, test_suite, test_case); } /** \brief Write the result of the test case to the outcome CSV file. @@ -429,65 +394,63 @@ static void write_outcome_entry( FILE *outcome_file, * \param ret The test dispatch status (DISPATCH_xxx). * \param info A pointer to the test info structure. */ -static void write_outcome_result( FILE *outcome_file, - size_t unmet_dep_count, - int unmet_dependencies[], - int missing_unmet_dependencies, - int ret, - const mbedtls_test_info_t *info ) +static void write_outcome_result(FILE *outcome_file, + size_t unmet_dep_count, + int unmet_dependencies[], + int missing_unmet_dependencies, + int ret, + const mbedtls_test_info_t *info) { - if( outcome_file == NULL ) + if (outcome_file == NULL) { return; + } /* Write the end of the outcome line. * Ignore errors: writing the outcome file is on a best-effort basis. */ - switch( ret ) - { + switch (ret) { case DISPATCH_TEST_SUCCESS: - if( unmet_dep_count > 0 ) - { + if (unmet_dep_count > 0) { size_t i; - mbedtls_fprintf( outcome_file, "SKIP" ); - for( i = 0; i < unmet_dep_count; i++ ) - { - mbedtls_fprintf( outcome_file, "%c%d", - i == 0 ? ';' : ':', - unmet_dependencies[i] ); + mbedtls_fprintf(outcome_file, "SKIP"); + for (i = 0; i < unmet_dep_count; i++) { + mbedtls_fprintf(outcome_file, "%c%d", + i == 0 ? ';' : ':', + unmet_dependencies[i]); + } + if (missing_unmet_dependencies) { + mbedtls_fprintf(outcome_file, ":..."); } - if( missing_unmet_dependencies ) - mbedtls_fprintf( outcome_file, ":..." ); break; } - switch( info->result ) - { + switch (info->result) { case MBEDTLS_TEST_RESULT_SUCCESS: - mbedtls_fprintf( outcome_file, "PASS;" ); + mbedtls_fprintf(outcome_file, "PASS;"); break; case MBEDTLS_TEST_RESULT_SKIPPED: - mbedtls_fprintf( outcome_file, "SKIP;Runtime skip" ); + mbedtls_fprintf(outcome_file, "SKIP;Runtime skip"); break; default: - mbedtls_fprintf( outcome_file, "FAIL;%s:%d:%s", - info->filename, info->line_no, - info->test ); + mbedtls_fprintf(outcome_file, "FAIL;%s:%d:%s", + info->filename, info->line_no, + info->test); break; } break; case DISPATCH_TEST_FN_NOT_FOUND: - mbedtls_fprintf( outcome_file, "FAIL;Test function not found" ); + mbedtls_fprintf(outcome_file, "FAIL;Test function not found"); break; case DISPATCH_INVALID_TEST_DATA: - mbedtls_fprintf( outcome_file, "FAIL;Invalid test data" ); + mbedtls_fprintf(outcome_file, "FAIL;Invalid test data"); break; case DISPATCH_UNSUPPORTED_SUITE: - mbedtls_fprintf( outcome_file, "SKIP;Unsupported suite" ); + mbedtls_fprintf(outcome_file, "SKIP;Unsupported suite"); break; default: - mbedtls_fprintf( outcome_file, "FAIL;Unknown cause" ); + mbedtls_fprintf(outcome_file, "FAIL;Unknown cause"); break; } - mbedtls_fprintf( outcome_file, "\n" ); - fflush( outcome_file ); + mbedtls_fprintf(outcome_file, "\n"); + fflush(outcome_file); } /** @@ -500,7 +463,7 @@ static void write_outcome_result( FILE *outcome_file, * * \return Program exit status. */ -int execute_tests( int argc , const char ** argv ) +int execute_tests(int argc, const char **argv) { /* Local Configurations and options */ const char *default_filename = "DATA_FILE"; @@ -525,17 +488,17 @@ int execute_tests( int argc , const char ** argv ) #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) int stdout_fd = -1; #endif /* __unix__ || __APPLE__ __MACH__ */ - const char *outcome_file_name = getenv( "MBEDTLS_TEST_OUTCOME_FILE" ); + const char *outcome_file_name = getenv("MBEDTLS_TEST_OUTCOME_FILE"); FILE *outcome_file = NULL; #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ !defined(TEST_SUITE_MEMORY_BUFFER_ALLOC) unsigned char alloc_buf[1000000]; - mbedtls_memory_buffer_alloc_init( alloc_buf, sizeof( alloc_buf ) ); + mbedtls_memory_buffer_alloc_init(alloc_buf, sizeof(alloc_buf)); #endif #if defined(MBEDTLS_TEST_MUTEX_USAGE) - mbedtls_test_mutex_usage_init( ); + mbedtls_test_mutex_usage_init(); #endif /* @@ -543,52 +506,42 @@ int execute_tests( int argc , const char ** argv ) * of a NULL pointer. We do however use that in our code for initializing * structures, which should work on every modern platform. Let's be sure. */ - memset( &pointer, 0, sizeof( void * ) ); - if( pointer != NULL ) - { - mbedtls_fprintf( stderr, "all-bits-zero is not a NULL pointer\n" ); - return( 1 ); + memset(&pointer, 0, sizeof(void *)); + if (pointer != NULL) { + mbedtls_fprintf(stderr, "all-bits-zero is not a NULL pointer\n"); + return 1; } /* * Make sure we have a snprintf that correctly zero-terminates */ - if( run_test_snprintf() != 0 ) - { - mbedtls_fprintf( stderr, "the snprintf implementation is broken\n" ); - return( 1 ); + if (run_test_snprintf() != 0) { + mbedtls_fprintf(stderr, "the snprintf implementation is broken\n"); + return 1; } - if( outcome_file_name != NULL && *outcome_file_name != '\0' ) - { - outcome_file = fopen( outcome_file_name, "a" ); - if( outcome_file == NULL ) - { - mbedtls_fprintf( stderr, "Unable to open outcome file. Continuing anyway.\n" ); + if (outcome_file_name != NULL && *outcome_file_name != '\0') { + outcome_file = fopen(outcome_file_name, "a"); + if (outcome_file == NULL) { + mbedtls_fprintf(stderr, "Unable to open outcome file. Continuing anyway.\n"); } } - while( arg_index < argc ) - { + while (arg_index < argc) { next_arg = argv[arg_index]; - if( strcmp( next_arg, "--verbose" ) == 0 || - strcmp( next_arg, "-v" ) == 0 ) - { + if (strcmp(next_arg, "--verbose") == 0 || + strcmp(next_arg, "-v") == 0) { option_verbose = 1; - } - else if( strcmp(next_arg, "--help" ) == 0 || - strcmp(next_arg, "-h" ) == 0 ) - { - mbedtls_fprintf( stdout, USAGE ); - mbedtls_exit( EXIT_SUCCESS ); - } - else - { + } else if (strcmp(next_arg, "--help") == 0 || + strcmp(next_arg, "-h") == 0) { + mbedtls_fprintf(stdout, USAGE); + mbedtls_exit(EXIT_SUCCESS); + } else { /* Not an option, therefore treat all further arguments as the file * list. */ - test_files = &argv[ arg_index ]; + test_files = &argv[arg_index]; testfile_count = argc - arg_index; break; } @@ -597,226 +550,204 @@ int execute_tests( int argc , const char ** argv ) } /* If no files were specified, assume a default */ - if ( test_files == NULL || testfile_count == 0 ) - { + if (test_files == NULL || testfile_count == 0) { test_files = &default_filename; testfile_count = 1; } /* Initialize the struct that holds information about the last test */ - mbedtls_test_info_reset( ); + mbedtls_test_info_reset(); /* Now begin to execute the tests in the testfiles */ - for ( testfile_index = 0; - testfile_index < testfile_count; - testfile_index++ ) - { + for (testfile_index = 0; + testfile_index < testfile_count; + testfile_index++) { size_t unmet_dep_count = 0; int unmet_dependencies[20]; int missing_unmet_dependencies = 0; - test_filename = test_files[ testfile_index ]; + test_filename = test_files[testfile_index]; - file = fopen( test_filename, "r" ); - if( file == NULL ) - { - mbedtls_fprintf( stderr, "Failed to open test file: %s\n", - test_filename ); - if( outcome_file != NULL ) - fclose( outcome_file ); - return( 1 ); + file = fopen(test_filename, "r"); + if (file == NULL) { + mbedtls_fprintf(stderr, "Failed to open test file: %s\n", + test_filename); + if (outcome_file != NULL) { + fclose(outcome_file); + } + return 1; } - while( !feof( file ) ) - { - if( unmet_dep_count > 0 ) - { - mbedtls_fprintf( stderr, - "FATAL: Dep count larger than zero at start of loop\n" ); - mbedtls_exit( MBEDTLS_EXIT_FAILURE ); + while (!feof(file)) { + if (unmet_dep_count > 0) { + mbedtls_fprintf(stderr, + "FATAL: Dep count larger than zero at start of loop\n"); + mbedtls_exit(MBEDTLS_EXIT_FAILURE); } unmet_dep_count = 0; missing_unmet_dependencies = 0; - if( ( ret = get_line( file, buf, sizeof(buf) ) ) != 0 ) + if ((ret = get_line(file, buf, sizeof(buf))) != 0) { break; - mbedtls_fprintf( stdout, "%s%.66s", - mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ? - "\n" : "", buf ); - mbedtls_fprintf( stdout, " " ); - for( i = strlen( buf ) + 1; i < 67; i++ ) - mbedtls_fprintf( stdout, "." ); - mbedtls_fprintf( stdout, " " ); - fflush( stdout ); - write_outcome_entry( outcome_file, argv[0], buf ); + } + mbedtls_fprintf(stdout, "%s%.66s", + mbedtls_test_info.result == MBEDTLS_TEST_RESULT_FAILED ? + "\n" : "", buf); + mbedtls_fprintf(stdout, " "); + for (i = strlen(buf) + 1; i < 67; i++) { + mbedtls_fprintf(stdout, "."); + } + mbedtls_fprintf(stdout, " "); + fflush(stdout); + write_outcome_entry(outcome_file, argv[0], buf); total_tests++; - if( ( ret = get_line( file, buf, sizeof( buf ) ) ) != 0 ) + if ((ret = get_line(file, buf, sizeof(buf))) != 0) { break; - cnt = parse_arguments( buf, strlen( buf ), params, - sizeof( params ) / sizeof( params[0] ) ); + } + cnt = parse_arguments(buf, strlen(buf), params, + sizeof(params) / sizeof(params[0])); - if( strcmp( params[0], "depends_on" ) == 0 ) - { - for( i = 1; i < cnt; i++ ) - { - int dep_id = strtol( params[i], NULL, 10 ); - if( dep_check( dep_id ) != DEPENDENCY_SUPPORTED ) - { - if( unmet_dep_count < - ARRAY_LENGTH( unmet_dependencies ) ) - { + if (strcmp(params[0], "depends_on") == 0) { + for (i = 1; i < cnt; i++) { + int dep_id = strtol(params[i], NULL, 10); + if (dep_check(dep_id) != DEPENDENCY_SUPPORTED) { + if (unmet_dep_count < + ARRAY_LENGTH(unmet_dependencies)) { unmet_dependencies[unmet_dep_count] = dep_id; unmet_dep_count++; - } - else - { + } else { missing_unmet_dependencies = 1; } } } - if( ( ret = get_line( file, buf, sizeof( buf ) ) ) != 0 ) + if ((ret = get_line(file, buf, sizeof(buf))) != 0) { break; - cnt = parse_arguments( buf, strlen( buf ), params, - sizeof( params ) / sizeof( params[0] ) ); + } + cnt = parse_arguments(buf, strlen(buf), params, + sizeof(params) / sizeof(params[0])); } // If there are no unmet dependencies execute the test - if( unmet_dep_count == 0 ) - { - mbedtls_test_info_reset( ); + if (unmet_dep_count == 0) { + mbedtls_test_info_reset(); #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) /* Suppress all output from the library unless we're verbose * mode */ - if( !option_verbose ) - { - stdout_fd = redirect_output( stdout, "/dev/null" ); - if( stdout_fd == -1 ) - { + if (!option_verbose) { + stdout_fd = redirect_output(stdout, "/dev/null"); + if (stdout_fd == -1) { /* Redirection has failed with no stdout so exit */ - exit( 1 ); + exit(1); } } #endif /* __unix__ || __APPLE__ __MACH__ */ - function_id = strtoul( params[0], NULL, 10 ); - if ( (ret = check_test( function_id )) == DISPATCH_TEST_SUCCESS ) - { - ret = convert_params( cnt - 1, params + 1, int_params ); - if ( DISPATCH_TEST_SUCCESS == ret ) - { - ret = dispatch_test( function_id, (void **)( params + 1 ) ); + function_id = strtoul(params[0], NULL, 10); + if ((ret = check_test(function_id)) == DISPATCH_TEST_SUCCESS) { + ret = convert_params(cnt - 1, params + 1, int_params); + if (DISPATCH_TEST_SUCCESS == ret) { + ret = dispatch_test(function_id, (void **) (params + 1)); } } #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) - if( !option_verbose && restore_output( stdout, stdout_fd ) ) - { - /* Redirection has failed with no stdout so exit */ - exit( 1 ); + if (!option_verbose && restore_output(stdout, stdout_fd)) { + /* Redirection has failed with no stdout so exit */ + exit(1); } #endif /* __unix__ || __APPLE__ __MACH__ */ } - write_outcome_result( outcome_file, - unmet_dep_count, unmet_dependencies, - missing_unmet_dependencies, - ret, &mbedtls_test_info ); - if( unmet_dep_count > 0 || ret == DISPATCH_UNSUPPORTED_SUITE ) - { + write_outcome_result(outcome_file, + unmet_dep_count, unmet_dependencies, + missing_unmet_dependencies, + ret, &mbedtls_test_info); + if (unmet_dep_count > 0 || ret == DISPATCH_UNSUPPORTED_SUITE) { total_skipped++; - mbedtls_fprintf( stdout, "----" ); + mbedtls_fprintf(stdout, "----"); - if( 1 == option_verbose && ret == DISPATCH_UNSUPPORTED_SUITE ) - { - mbedtls_fprintf( stdout, "\n Test Suite not enabled" ); + if (1 == option_verbose && ret == DISPATCH_UNSUPPORTED_SUITE) { + mbedtls_fprintf(stdout, "\n Test Suite not enabled"); } - if( 1 == option_verbose && unmet_dep_count > 0 ) - { - mbedtls_fprintf( stdout, "\n Unmet dependencies: " ); - for( i = 0; i < unmet_dep_count; i++ ) - { - mbedtls_fprintf( stdout, "%d ", - unmet_dependencies[i] ); + if (1 == option_verbose && unmet_dep_count > 0) { + mbedtls_fprintf(stdout, "\n Unmet dependencies: "); + for (i = 0; i < unmet_dep_count; i++) { + mbedtls_fprintf(stdout, "%d ", + unmet_dependencies[i]); + } + if (missing_unmet_dependencies) { + mbedtls_fprintf(stdout, "..."); } - if( missing_unmet_dependencies ) - mbedtls_fprintf( stdout, "..." ); } - mbedtls_fprintf( stdout, "\n" ); - fflush( stdout ); + mbedtls_fprintf(stdout, "\n"); + fflush(stdout); unmet_dep_count = 0; missing_unmet_dependencies = 0; - } - else if( ret == DISPATCH_TEST_SUCCESS ) - { - if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_SUCCESS ) - { - mbedtls_fprintf( stdout, "PASS\n" ); - } - else if( mbedtls_test_info.result == MBEDTLS_TEST_RESULT_SKIPPED ) - { - mbedtls_fprintf( stdout, "----\n" ); + } else if (ret == DISPATCH_TEST_SUCCESS) { + if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_SUCCESS) { + mbedtls_fprintf(stdout, "PASS\n"); + } else if (mbedtls_test_info.result == MBEDTLS_TEST_RESULT_SKIPPED) { + mbedtls_fprintf(stdout, "----\n"); total_skipped++; - } - else - { + } else { total_errors++; - mbedtls_fprintf( stdout, "FAILED\n" ); - mbedtls_fprintf( stdout, " %s\n at ", - mbedtls_test_info.test ); - if( mbedtls_test_info.step != (unsigned long)( -1 ) ) - { - mbedtls_fprintf( stdout, "step %lu, ", - mbedtls_test_info.step ); + mbedtls_fprintf(stdout, "FAILED\n"); + mbedtls_fprintf(stdout, " %s\n at ", + mbedtls_test_info.test); + if (mbedtls_test_info.step != (unsigned long) (-1)) { + mbedtls_fprintf(stdout, "step %lu, ", + mbedtls_test_info.step); + } + mbedtls_fprintf(stdout, "line %d, %s", + mbedtls_test_info.line_no, + mbedtls_test_info.filename); + if (mbedtls_test_info.line1[0] != 0) { + mbedtls_fprintf(stdout, "\n %s", + mbedtls_test_info.line1); + } + if (mbedtls_test_info.line2[0] != 0) { + mbedtls_fprintf(stdout, "\n %s", + mbedtls_test_info.line2); } - mbedtls_fprintf( stdout, "line %d, %s", - mbedtls_test_info.line_no, - mbedtls_test_info.filename ); - if( mbedtls_test_info.line1[0] != 0 ) - mbedtls_fprintf( stdout, "\n %s", - mbedtls_test_info.line1 ); - if( mbedtls_test_info.line2[0] != 0 ) - mbedtls_fprintf( stdout, "\n %s", - mbedtls_test_info.line2 ); } - fflush( stdout ); - } - else if( ret == DISPATCH_INVALID_TEST_DATA ) - { - mbedtls_fprintf( stderr, "FAILED: FATAL PARSE ERROR\n" ); - fclose( file ); - mbedtls_exit( 2 ); - } - else if( ret == DISPATCH_TEST_FN_NOT_FOUND ) - { - mbedtls_fprintf( stderr, "FAILED: FATAL TEST FUNCTION NOT FOUND\n" ); - fclose( file ); - mbedtls_exit( 2 ); - } - else + fflush(stdout); + } else if (ret == DISPATCH_INVALID_TEST_DATA) { + mbedtls_fprintf(stderr, "FAILED: FATAL PARSE ERROR\n"); + fclose(file); + mbedtls_exit(2); + } else if (ret == DISPATCH_TEST_FN_NOT_FOUND) { + mbedtls_fprintf(stderr, "FAILED: FATAL TEST FUNCTION NOT FOUND\n"); + fclose(file); + mbedtls_exit(2); + } else { total_errors++; + } } - fclose( file ); + fclose(file); } - if( outcome_file != NULL ) - fclose( outcome_file ); + if (outcome_file != NULL) { + fclose(outcome_file); + } - mbedtls_fprintf( stdout, "\n----------------------------------------------------------------------------\n\n"); - if( total_errors == 0 ) - mbedtls_fprintf( stdout, "PASSED" ); - else - mbedtls_fprintf( stdout, "FAILED" ); + mbedtls_fprintf(stdout, + "\n----------------------------------------------------------------------------\n\n"); + if (total_errors == 0) { + mbedtls_fprintf(stdout, "PASSED"); + } else { + mbedtls_fprintf(stdout, "FAILED"); + } - mbedtls_fprintf( stdout, " (%u / %u tests (%u skipped))\n", - total_tests - total_errors, total_tests, total_skipped ); + mbedtls_fprintf(stdout, " (%u / %u tests (%u skipped))\n", + total_tests - total_errors, total_tests, total_skipped); #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \ !defined(TEST_SUITE_MEMORY_BUFFER_ALLOC) @@ -826,5 +757,5 @@ int execute_tests( int argc , const char ** argv ) mbedtls_memory_buffer_alloc_free(); #endif - return( total_errors != 0 ); + return total_errors != 0; } diff --git a/tests/suites/main_test.function b/tests/suites/main_test.function index 48003d4f2..11a009afe 100644 --- a/tests/suites/main_test.function +++ b/tests/suites/main_test.function @@ -69,24 +69,23 @@ __MBEDTLS_TEST_TEMPLATE__FUNCTIONS_CODE * * \return 0 if exp_id is found. 1 otherwise. */ -int get_expression( int32_t exp_id, int32_t * out_value ) +int get_expression(int32_t exp_id, int32_t *out_value) { int ret = KEY_VALUE_MAPPING_FOUND; (void) exp_id; (void) out_value; - switch( exp_id ) - { -__MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE + switch (exp_id) { + __MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE #line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: - { - ret = KEY_VALUE_MAPPING_NOT_FOUND; - } - break; + { + ret = KEY_VALUE_MAPPING_NOT_FOUND; + } + break; } - return( ret ); + return ret; } @@ -101,20 +100,19 @@ __MBEDTLS_TEST_TEMPLATE__EXPRESSION_CODE * * \return DEPENDENCY_SUPPORTED if set else DEPENDENCY_NOT_SUPPORTED */ -int dep_check( int dep_id ) +int dep_check(int dep_id) { int ret = DEPENDENCY_NOT_SUPPORTED; (void) dep_id; - switch( dep_id ) - { -__MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE + switch (dep_id) { + __MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE #line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" default: break; } - return( ret ); + return ret; } @@ -131,7 +129,7 @@ __MBEDTLS_TEST_TEMPLATE__DEP_CHECK_CODE * dereferences. Each wrapper function hard-codes the * number and types of the parameters. */ -typedef void (*TestWrapper_t)( void **param_array ); +typedef void (*TestWrapper_t)(void **param_array); /** @@ -142,7 +140,7 @@ typedef void (*TestWrapper_t)( void **param_array ); */ TestWrapper_t test_funcs[] = { -__MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE + __MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE #line __MBEDTLS_TEST_TEMPLATE__LINE_NO "suites/main_test.function" }; @@ -157,35 +155,31 @@ __MBEDTLS_TEST_TEMPLATE__DISPATCH_CODE * DISPATCH_TEST_FN_NOT_FOUND if not found * DISPATCH_UNSUPPORTED_SUITE if not compile time enabled. */ -int dispatch_test( size_t func_idx, void ** params ) +int dispatch_test(size_t func_idx, void **params) { int ret = DISPATCH_TEST_SUCCESS; TestWrapper_t fp = NULL; - if ( func_idx < (int)( sizeof( test_funcs ) / sizeof( TestWrapper_t ) ) ) - { + if (func_idx < (int) (sizeof(test_funcs) / sizeof(TestWrapper_t))) { fp = test_funcs[func_idx]; - if ( fp ) - { + if (fp) { #if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) - mbedtls_test_enable_insecure_external_rng( ); + mbedtls_test_enable_insecure_external_rng(); #endif - fp( params ); + fp(params); #if defined(MBEDTLS_TEST_MUTEX_USAGE) - mbedtls_test_mutex_usage_check( ); + mbedtls_test_mutex_usage_check(); #endif /* MBEDTLS_TEST_MUTEX_USAGE */ - } - else + } else { ret = DISPATCH_UNSUPPORTED_SUITE; - } - else - { + } + } else { ret = DISPATCH_TEST_FN_NOT_FOUND; } - return( ret ); + return ret; } @@ -199,23 +193,21 @@ int dispatch_test( size_t func_idx, void ** params ) * DISPATCH_TEST_FN_NOT_FOUND if not found * DISPATCH_UNSUPPORTED_SUITE if not compile time enabled. */ -int check_test( size_t func_idx ) +int check_test(size_t func_idx) { int ret = DISPATCH_TEST_SUCCESS; TestWrapper_t fp = NULL; - if ( func_idx < (int)( sizeof(test_funcs)/sizeof( TestWrapper_t ) ) ) - { + if (func_idx < (int) (sizeof(test_funcs)/sizeof(TestWrapper_t))) { fp = test_funcs[func_idx]; - if ( fp == NULL ) + if (fp == NULL) { ret = DISPATCH_UNSUPPORTED_SUITE; - } - else - { + } + } else { ret = DISPATCH_TEST_FN_NOT_FOUND; } - return( ret ); + return ret; } @@ -235,10 +227,10 @@ __MBEDTLS_TEST_TEMPLATE__PLATFORM_CODE * * \return Exit code. */ -int main( int argc, const char *argv[] ) +int main(int argc, const char *argv[]) { #if defined(MBEDTLS_TEST_HOOKS) - extern void (*mbedtls_test_hook_test_fail)( const char * test, int line, const char * file ); + extern void (*mbedtls_test_hook_test_fail)(const char *test, int line, const char *file); mbedtls_test_hook_test_fail = &mbedtls_test_fail; #if defined(MBEDTLS_ERROR_C) mbedtls_test_hook_error_add = &mbedtls_test_err_add_check; @@ -246,15 +238,14 @@ int main( int argc, const char *argv[] ) #endif int ret = mbedtls_test_platform_setup(); - if( ret != 0 ) - { - mbedtls_fprintf( stderr, - "FATAL: Failed to initialize platform - error %d\n", - ret ); - return( -1 ); + if (ret != 0) { + mbedtls_fprintf(stderr, + "FATAL: Failed to initialize platform - error %d\n", + ret); + return -1; } - ret = execute_tests( argc, argv ); + ret = execute_tests(argc, argv); mbedtls_test_platform_teardown(); - return( ret ); + return ret; } diff --git a/tests/suites/test_suite_aes.function b/tests/suites/test_suite_aes.function index 6a87d4294..d95503ad8 100644 --- a/tests/suites/test_suite_aes.function +++ b/tests/suites/test_suite_aes.function @@ -8,107 +8,105 @@ */ /* BEGIN_CASE */ -void aes_encrypt_ecb( data_t * key_str, data_t * src_str, - data_t * dst, int setkey_result ) +void aes_encrypt_ecb(data_t *key_str, data_t *src_str, + data_t *dst, int setkey_result) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); - if( setkey_result == 0 ) - { - TEST_ASSERT( mbedtls_aes_crypt_ecb( &ctx, MBEDTLS_AES_ENCRYPT, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == setkey_result); + if (setkey_result == 0) { + TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx, MBEDTLS_AES_ENCRYPT, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); } exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void aes_decrypt_ecb( data_t * key_str, data_t * src_str, - data_t * dst, int setkey_result ) +void aes_decrypt_ecb(data_t *key_str, data_t *src_str, + data_t *dst, int setkey_result) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); - if( setkey_result == 0 ) - { - TEST_ASSERT( mbedtls_aes_crypt_ecb( &ctx, MBEDTLS_AES_DECRYPT, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_dec(&ctx, key_str->x, key_str->len * 8) == setkey_result); + if (setkey_result == 0) { + TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx, MBEDTLS_AES_DECRYPT, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); } exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void aes_encrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, - int cbc_result ) +void aes_encrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, + int cbc_result) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cbc( &ctx, MBEDTLS_AES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); - if( cbc_result == 0 ) - { + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cbc(&ctx, MBEDTLS_AES_ENCRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, - src_str->len, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, + src_str->len, dst->len) == 0); } exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void aes_decrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, - int cbc_result ) +void aes_decrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, + int cbc_result) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cbc( &ctx, MBEDTLS_AES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); - if( cbc_result == 0) - { + TEST_ASSERT(mbedtls_aes_setkey_dec(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cbc(&ctx, MBEDTLS_AES_DECRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, - src_str->len, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, + src_str->len, dst->len) == 0); } exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_XTS */ -void aes_encrypt_xts( char *hex_key_string, char *hex_data_unit_string, - char *hex_src_string, char *hex_dst_string ) +void aes_encrypt_xts(char *hex_key_string, char *hex_data_unit_string, + char *hex_src_string, char *hex_dst_string) { enum { AES_BLOCK_SIZE = 16 }; unsigned char *data_unit = NULL; @@ -119,40 +117,40 @@ void aes_encrypt_xts( char *hex_key_string, char *hex_data_unit_string, mbedtls_aes_xts_context ctx; size_t key_len, src_len, dst_len, data_unit_len; - mbedtls_aes_xts_init( &ctx ); + mbedtls_aes_xts_init(&ctx); - data_unit = mbedtls_test_unhexify_alloc( hex_data_unit_string, - &data_unit_len ); - TEST_ASSERT( data_unit_len == AES_BLOCK_SIZE ); + data_unit = mbedtls_test_unhexify_alloc(hex_data_unit_string, + &data_unit_len); + TEST_ASSERT(data_unit_len == AES_BLOCK_SIZE); - key = mbedtls_test_unhexify_alloc( hex_key_string, &key_len ); - TEST_ASSERT( key_len % 2 == 0 ); + key = mbedtls_test_unhexify_alloc(hex_key_string, &key_len); + TEST_ASSERT(key_len % 2 == 0); - src = mbedtls_test_unhexify_alloc( hex_src_string, &src_len ); - dst = mbedtls_test_unhexify_alloc( hex_dst_string, &dst_len ); - TEST_ASSERT( src_len == dst_len ); + src = mbedtls_test_unhexify_alloc(hex_src_string, &src_len); + dst = mbedtls_test_unhexify_alloc(hex_dst_string, &dst_len); + TEST_ASSERT(src_len == dst_len); - output = mbedtls_test_zero_alloc( dst_len ); + output = mbedtls_test_zero_alloc(dst_len); - TEST_ASSERT( mbedtls_aes_xts_setkey_enc( &ctx, key, key_len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_ENCRYPT, src_len, - data_unit, src, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_xts_setkey_enc(&ctx, key, key_len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_ENCRYPT, src_len, + data_unit, src, output) == 0); - TEST_ASSERT( memcmp( output, dst, dst_len ) == 0 ); + TEST_ASSERT(memcmp(output, dst, dst_len) == 0); exit: - mbedtls_aes_xts_free( &ctx ); - mbedtls_free( data_unit ); - mbedtls_free( key ); - mbedtls_free( src ); - mbedtls_free( dst ); - mbedtls_free( output ); + mbedtls_aes_xts_free(&ctx); + mbedtls_free(data_unit); + mbedtls_free(key); + mbedtls_free(src); + mbedtls_free(dst); + mbedtls_free(output); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_XTS */ -void aes_decrypt_xts( char *hex_key_string, char *hex_data_unit_string, - char *hex_dst_string, char *hex_src_string ) +void aes_decrypt_xts(char *hex_key_string, char *hex_data_unit_string, + char *hex_dst_string, char *hex_src_string) { enum { AES_BLOCK_SIZE = 16 }; unsigned char *data_unit = NULL; @@ -163,39 +161,39 @@ void aes_decrypt_xts( char *hex_key_string, char *hex_data_unit_string, mbedtls_aes_xts_context ctx; size_t key_len, src_len, dst_len, data_unit_len; - mbedtls_aes_xts_init( &ctx ); + mbedtls_aes_xts_init(&ctx); - data_unit = mbedtls_test_unhexify_alloc( hex_data_unit_string, - &data_unit_len ); - TEST_ASSERT( data_unit_len == AES_BLOCK_SIZE ); + data_unit = mbedtls_test_unhexify_alloc(hex_data_unit_string, + &data_unit_len); + TEST_ASSERT(data_unit_len == AES_BLOCK_SIZE); - key = mbedtls_test_unhexify_alloc( hex_key_string, &key_len ); - TEST_ASSERT( key_len % 2 == 0 ); + key = mbedtls_test_unhexify_alloc(hex_key_string, &key_len); + TEST_ASSERT(key_len % 2 == 0); - src = mbedtls_test_unhexify_alloc( hex_src_string, &src_len ); - dst = mbedtls_test_unhexify_alloc( hex_dst_string, &dst_len ); - TEST_ASSERT( src_len == dst_len ); + src = mbedtls_test_unhexify_alloc(hex_src_string, &src_len); + dst = mbedtls_test_unhexify_alloc(hex_dst_string, &dst_len); + TEST_ASSERT(src_len == dst_len); - output = mbedtls_test_zero_alloc( dst_len ); + output = mbedtls_test_zero_alloc(dst_len); - TEST_ASSERT( mbedtls_aes_xts_setkey_dec( &ctx, key, key_len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_DECRYPT, src_len, - data_unit, src, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_xts_setkey_dec(&ctx, key, key_len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_DECRYPT, src_len, + data_unit, src, output) == 0); - TEST_ASSERT( memcmp( output, dst, dst_len ) == 0 ); + TEST_ASSERT(memcmp(output, dst, dst_len) == 0); exit: - mbedtls_aes_xts_free( &ctx ); - mbedtls_free( data_unit ); - mbedtls_free( key ); - mbedtls_free( src ); - mbedtls_free( dst ); - mbedtls_free( output ); + mbedtls_aes_xts_free(&ctx); + mbedtls_free(data_unit); + mbedtls_free(key); + mbedtls_free(src); + mbedtls_free(dst); + mbedtls_free(output); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_XTS */ -void aes_crypt_xts_size( int size, int retval ) +void aes_crypt_xts_size(int size, int retval) { mbedtls_aes_xts_context ctx; const unsigned char src[16] = { 0 }; @@ -203,201 +201,206 @@ void aes_crypt_xts_size( int size, int retval ) unsigned char data_unit[16]; size_t length = size; - mbedtls_aes_xts_init( &ctx ); - memset( data_unit, 0x00, sizeof( data_unit ) ); + mbedtls_aes_xts_init(&ctx); + memset(data_unit, 0x00, sizeof(data_unit)); - TEST_ASSERT( mbedtls_aes_crypt_xts( &ctx, MBEDTLS_AES_ENCRYPT, length, data_unit, src, output ) == retval ); + TEST_ASSERT(mbedtls_aes_crypt_xts(&ctx, MBEDTLS_AES_ENCRYPT, length, data_unit, src, + output) == retval); exit: - mbedtls_aes_xts_free( &ctx ); + mbedtls_aes_xts_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_XTS */ -void aes_crypt_xts_keysize( int size, int retval ) +void aes_crypt_xts_keysize(int size, int retval) { mbedtls_aes_xts_context ctx; const unsigned char key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; size_t key_len = size; - mbedtls_aes_xts_init( &ctx ); + mbedtls_aes_xts_init(&ctx); - TEST_ASSERT( mbedtls_aes_xts_setkey_enc( &ctx, key, key_len * 8 ) == retval ); - TEST_ASSERT( mbedtls_aes_xts_setkey_dec( &ctx, key, key_len * 8 ) == retval ); + TEST_ASSERT(mbedtls_aes_xts_setkey_enc(&ctx, key, key_len * 8) == retval); + TEST_ASSERT(mbedtls_aes_xts_setkey_dec(&ctx, key, key_len * 8) == retval); exit: - mbedtls_aes_xts_free( &ctx ); + mbedtls_aes_xts_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aes_encrypt_cfb128( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst ) +void aes_encrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_aes_context ctx; size_t iv_offset = 0; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cfb128( &ctx, MBEDTLS_AES_ENCRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cfb128(&ctx, MBEDTLS_AES_ENCRYPT, 16, &iv_offset, iv_str->x, + src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aes_decrypt_cfb128( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst ) +void aes_decrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_aes_context ctx; size_t iv_offset = 0; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cfb128( &ctx, MBEDTLS_AES_DECRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cfb128(&ctx, MBEDTLS_AES_DECRYPT, 16, &iv_offset, iv_str->x, + src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aes_encrypt_cfb8( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst ) +void aes_encrypt_cfb8(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cfb8( &ctx, MBEDTLS_AES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cfb8(&ctx, MBEDTLS_AES_ENCRYPT, src_str->len, iv_str->x, + src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, - src_str->len, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, + src_str->len, dst->len) == 0); exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aes_decrypt_cfb8( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst ) +void aes_decrypt_cfb8(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_aes_context ctx; memset(output, 0x00, 100); - mbedtls_aes_init( &ctx ); + mbedtls_aes_init(&ctx); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_cfb8( &ctx, MBEDTLS_AES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_cfb8(&ctx, MBEDTLS_AES_DECRYPT, src_str->len, iv_str->x, + src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, - src_str->len, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, + src_str->len, dst->len) == 0); exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_OFB */ -void aes_encrypt_ofb( int fragment_size, data_t *key_str, - data_t *iv_str, data_t *src_str, - data_t *expected_output ) +void aes_encrypt_ofb(int fragment_size, data_t *key_str, + data_t *iv_str, data_t *src_str, + data_t *expected_output) { unsigned char output[32]; mbedtls_aes_context ctx; size_t iv_offset = 0; int in_buffer_len; - unsigned char* src_str_next; + unsigned char *src_str_next; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aes_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aes_init(&ctx); - TEST_ASSERT( (size_t)fragment_size < sizeof( output ) ); + TEST_ASSERT((size_t) fragment_size < sizeof(output)); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx, key_str->x, - key_str->len * 8 ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx, key_str->x, + key_str->len * 8) == 0); in_buffer_len = src_str->len; src_str_next = src_str->x; - while( in_buffer_len > 0 ) - { - TEST_ASSERT( mbedtls_aes_crypt_ofb( &ctx, fragment_size, &iv_offset, - iv_str->x, src_str_next, output ) == 0 ); + while (in_buffer_len > 0) { + TEST_ASSERT(mbedtls_aes_crypt_ofb(&ctx, fragment_size, &iv_offset, + iv_str->x, src_str_next, output) == 0); - TEST_ASSERT( memcmp( output, expected_output->x, fragment_size ) == 0 ); + TEST_ASSERT(memcmp(output, expected_output->x, fragment_size) == 0); in_buffer_len -= fragment_size; expected_output->x += fragment_size; src_str_next += fragment_size; - if( in_buffer_len < fragment_size ) + if (in_buffer_len < fragment_size) { fragment_size = in_buffer_len; + } } exit: - mbedtls_aes_free( &ctx ); + mbedtls_aes_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void aes_invalid_mode( ) +void aes_invalid_mode() { mbedtls_aes_context aes_ctx; const unsigned char in[16] = { 0 }; unsigned char out[16]; const int invalid_mode = 42; - TEST_EQUAL( MBEDTLS_ERR_AES_BAD_INPUT_DATA, - mbedtls_aes_crypt_ecb( &aes_ctx, invalid_mode, in, out ) ); + TEST_EQUAL(MBEDTLS_ERR_AES_BAD_INPUT_DATA, + mbedtls_aes_crypt_ecb(&aes_ctx, invalid_mode, in, out)); #if defined(MBEDTLS_CIPHER_MODE_CBC) - TEST_EQUAL( MBEDTLS_ERR_AES_BAD_INPUT_DATA, - mbedtls_aes_crypt_cbc( &aes_ctx, invalid_mode, 16, - out, in, out ) ); + TEST_EQUAL(MBEDTLS_ERR_AES_BAD_INPUT_DATA, + mbedtls_aes_crypt_cbc(&aes_ctx, invalid_mode, 16, + out, in, out)); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_XTS) mbedtls_aes_xts_context xts_ctx; - TEST_EQUAL( MBEDTLS_ERR_AES_BAD_INPUT_DATA, - mbedtls_aes_crypt_xts( &xts_ctx, invalid_mode, 16, - in, in, out ) ); + TEST_EQUAL(MBEDTLS_ERR_AES_BAD_INPUT_DATA, + mbedtls_aes_crypt_xts(&xts_ctx, invalid_mode, 16, + in, in, out)); #endif /* MBEDTLS_CIPHER_MODE_XTS */ #if defined(MBEDTLS_CIPHER_MODE_CFB) size_t size; - TEST_EQUAL( MBEDTLS_ERR_AES_BAD_INPUT_DATA, - mbedtls_aes_crypt_cfb128( &aes_ctx, invalid_mode, 16, - &size, out, in, out ) ); - TEST_EQUAL( MBEDTLS_ERR_AES_BAD_INPUT_DATA, - mbedtls_aes_crypt_cfb8( &aes_ctx, invalid_mode, 16, - out, in, out ) ); + TEST_EQUAL(MBEDTLS_ERR_AES_BAD_INPUT_DATA, + mbedtls_aes_crypt_cfb128(&aes_ctx, invalid_mode, 16, + &size, out, in, out)); + TEST_EQUAL(MBEDTLS_ERR_AES_BAD_INPUT_DATA, + mbedtls_aes_crypt_cfb8(&aes_ctx, invalid_mode, 16, + out, in, out)); #endif /* MBEDTLS_CIPHER_MODE_CFB */ } /* END_CASE */ /* BEGIN_CASE */ -void aes_misc_params( ) +void aes_misc_params() { #if defined(MBEDTLS_CIPHER_MODE_CBC) || \ defined(MBEDTLS_CIPHER_MODE_XTS) || \ @@ -409,7 +412,7 @@ void aes_misc_params( ) #if defined(MBEDTLS_CIPHER_MODE_CBC) || \ defined(MBEDTLS_CIPHER_MODE_CFB) || \ defined(MBEDTLS_CIPHER_MODE_OFB) -mbedtls_aes_context aes_ctx; + mbedtls_aes_context aes_ctx; #endif #if defined(MBEDTLS_CIPHER_MODE_XTS) mbedtls_aes_xts_context xts_ctx; @@ -420,38 +423,38 @@ mbedtls_aes_context aes_ctx; #endif #if defined(MBEDTLS_CIPHER_MODE_CBC) - TEST_ASSERT( mbedtls_aes_crypt_cbc( &aes_ctx, MBEDTLS_AES_ENCRYPT, - 15, - out, in, out ) - == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); - TEST_ASSERT( mbedtls_aes_crypt_cbc( &aes_ctx, MBEDTLS_AES_ENCRYPT, - 17, - out, in, out ) - == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); + TEST_ASSERT(mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_ENCRYPT, + 15, + out, in, out) + == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH); + TEST_ASSERT(mbedtls_aes_crypt_cbc(&aes_ctx, MBEDTLS_AES_ENCRYPT, + 17, + out, in, out) + == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH); #endif #if defined(MBEDTLS_CIPHER_MODE_XTS) - TEST_ASSERT( mbedtls_aes_crypt_xts( &xts_ctx, MBEDTLS_AES_ENCRYPT, - 15, - in, in, out ) - == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); - TEST_ASSERT( mbedtls_aes_crypt_xts( &xts_ctx, MBEDTLS_AES_ENCRYPT, - (1 << 24) + 1, - in, in, out ) - == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH ); + TEST_ASSERT(mbedtls_aes_crypt_xts(&xts_ctx, MBEDTLS_AES_ENCRYPT, + 15, + in, in, out) + == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH); + TEST_ASSERT(mbedtls_aes_crypt_xts(&xts_ctx, MBEDTLS_AES_ENCRYPT, + (1 << 24) + 1, + in, in, out) + == MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH); #endif #if defined(MBEDTLS_CIPHER_MODE_CFB) size = 16; - TEST_ASSERT( mbedtls_aes_crypt_cfb128( &aes_ctx, MBEDTLS_AES_ENCRYPT, 16, - &size, out, in, out ) - == MBEDTLS_ERR_AES_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_aes_crypt_cfb128(&aes_ctx, MBEDTLS_AES_ENCRYPT, 16, + &size, out, in, out) + == MBEDTLS_ERR_AES_BAD_INPUT_DATA); #endif #if defined(MBEDTLS_CIPHER_MODE_OFB) size = 16; - TEST_ASSERT( mbedtls_aes_crypt_ofb( &aes_ctx, 16, &size, out, in, out ) - == MBEDTLS_ERR_AES_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_aes_crypt_ofb(&aes_ctx, 16, &size, out, in, out) + == MBEDTLS_ERR_AES_BAD_INPUT_DATA); #endif /* @@ -459,44 +462,44 @@ mbedtls_aes_context aes_ctx; * when all the conditions above will be not define in a specific * choice of features. */ - TEST_ASSERT( 1 ); + TEST_ASSERT(1); /* TODO: It will be removed when the whole test will be reworked */ } /* END_CASE */ /* BEGIN_CASE */ -void aes_ecb_copy_context( data_t * key_str, data_t * src_str ) +void aes_ecb_copy_context(data_t *key_str, data_t *src_str) { unsigned char output1[16], output2[16], plain[16]; mbedtls_aes_context ctx1, ctx2, ctx3; // Set key and encrypt with original context - mbedtls_aes_init( &ctx1 ); - TEST_ASSERT( mbedtls_aes_setkey_enc( &ctx1, key_str->x, - key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_ecb( &ctx1, MBEDTLS_AES_ENCRYPT, - src_str->x, output1 ) == 0 ); + mbedtls_aes_init(&ctx1); + TEST_ASSERT(mbedtls_aes_setkey_enc(&ctx1, key_str->x, + key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx1, MBEDTLS_AES_ENCRYPT, + src_str->x, output1) == 0); ctx2 = ctx1; - TEST_ASSERT( mbedtls_aes_setkey_dec( &ctx1, key_str->x, - key_str->len * 8 ) == 0 ); + TEST_ASSERT(mbedtls_aes_setkey_dec(&ctx1, key_str->x, + key_str->len * 8) == 0); ctx3 = ctx1; - memset( &ctx1, 0, sizeof( ctx1 ) ); + memset(&ctx1, 0, sizeof(ctx1)); // Encrypt and decrypt with copied context - TEST_ASSERT( mbedtls_aes_crypt_ecb( &ctx2, MBEDTLS_AES_ENCRYPT, - src_str->x, output2 ) == 0 ); - TEST_ASSERT( mbedtls_aes_crypt_ecb( &ctx3, MBEDTLS_AES_DECRYPT, - output1, plain ) == 0 ); + TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx2, MBEDTLS_AES_ENCRYPT, + src_str->x, output2) == 0); + TEST_ASSERT(mbedtls_aes_crypt_ecb(&ctx3, MBEDTLS_AES_DECRYPT, + output1, plain) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output1, output2, 16, 16 ) == 0 ); - TEST_ASSERT( mbedtls_test_hexcmp( src_str->x, plain, src_str->len, 16 ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output1, output2, 16, 16) == 0); + TEST_ASSERT(mbedtls_test_hexcmp(src_str->x, plain, src_str->len, 16) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void aes_selftest( ) +void aes_selftest() { - TEST_ASSERT( mbedtls_aes_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_aes_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index 06c566888..6c98f233a 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -11,20 +11,19 @@ /* * Convert a string of the form "abcd" (case-insensitive) to a uint64_t. */ -int parse_hex_string( char* hex_string, uint64_t *result ) +int parse_hex_string(char *hex_string, uint64_t *result) { uint8_t raw[8]; size_t olen; - if ( mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0 ) return 0; + if (mbedtls_test_unhexify(raw, sizeof(raw), hex_string, &olen) != 0) { + return 0; + } *result = 0; - for ( size_t i = 0; i < olen; i++ ) - { - if ( MBEDTLS_IS_BIG_ENDIAN ) { - *result |= ((uint64_t)raw[i]) << ( i * 8 ); - } - else - { - *result |= ((uint64_t)raw[i]) << ( (olen - i - 1) * 8 ); + for (size_t i = 0; i < olen; i++) { + if (MBEDTLS_IS_BIG_ENDIAN) { + *result |= ((uint64_t) raw[i]) << (i * 8); + } else { + *result |= ((uint64_t) raw[i]) << ((olen - i - 1) * 8); } } return 1; @@ -33,53 +32,51 @@ int parse_hex_string( char* hex_string, uint64_t *result ) /* END_HEADER */ /* BEGIN_CASE */ -void mbedtls_unaligned_access( int size, int offset ) +void mbedtls_unaligned_access(int size, int offset) { /* Define 64-bit aligned raw byte array */ uint64_t raw[2]; /* Populate with known data */ uint8_t *x = (uint8_t *) raw; - for ( size_t i = 0; i < sizeof(raw); i++ ) - x[i] = (uint8_t)i; + for (size_t i = 0; i < sizeof(raw); i++) { + x[i] = (uint8_t) i; + } - TEST_ASSERT( size == 16 || size == 32 || size == 64 ); + TEST_ASSERT(size == 16 || size == 32 || size == 64); uint64_t r = 0; - switch ( size ) - { + switch (size) { case 16: - r = mbedtls_get_unaligned_uint16( x + offset ); + r = mbedtls_get_unaligned_uint16(x + offset); break; case 32: - r = mbedtls_get_unaligned_uint32( x + offset ); + r = mbedtls_get_unaligned_uint32(x + offset); break; case 64: - r = mbedtls_get_unaligned_uint64( x + offset ); + r = mbedtls_get_unaligned_uint64(x + offset); break; } /* Generate expected result */ uint64_t expected = 0; - for ( uint8_t i = 0; i < 8; i++ ) - { + for (uint8_t i = 0; i < 8; i++) { uint8_t shift; - if ( MBEDTLS_IS_BIG_ENDIAN ) - { + if (MBEDTLS_IS_BIG_ENDIAN) { /* - * Similar to little-endian case described below, but the shift needs - * to be inverted - */ - shift = 7 - ( i * 8 ); + * Similar to little-endian case described below, but the shift needs + * to be inverted + */ + shift = 7 - (i * 8); } else { /* example for offset == 1: - * expected = (( 1 + 0 ) << (0 * 8)) | (( 1 + 1 ) << (1 * 8)) | (( 1 + 2 ) << (2 * 8))) - * = (1 << 0) | (2 << 8) | (3 << 16) ... - * = 0x0807060504030201 - * x = { 0, 1, 2, 3, ... } - * ie expected is the value that would be read from x on a LE system, when - * byte swapping is not performed - */ + * expected = (( 1 + 0 ) << (0 * 8)) | (( 1 + 1 ) << (1 * 8)) | (( 1 + 2 ) << (2 * 8))) + * = (1 << 0) | (2 << 8) | (3 << 16) ... + * = 0x0807060504030201 + * x = { 0, 1, 2, 3, ... } + * ie expected is the value that would be read from x on a LE system, when + * byte swapping is not performed + */ shift = i * 8; } uint64_t b = offset + i; @@ -87,8 +84,7 @@ void mbedtls_unaligned_access( int size, int offset ) } /* Mask out excess bits from expected result */ - switch ( size ) - { + switch (size) { case 16: expected &= 0xffff; break; @@ -97,88 +93,82 @@ void mbedtls_unaligned_access( int size, int offset ) break; } - TEST_EQUAL( r, expected ); + TEST_EQUAL(r, expected); /* Write sentinel to the part of the array we will testing writing to */ - for ( size_t i = 0; i < (size_t) ( size / 8 ); i++ ) - { + for (size_t i = 0; i < (size_t) (size / 8); i++) { x[i + offset] = 0xff; } /* - * Write back to the array with mbedtls_put_unaligned_uint16 and validate - * that the array is unchanged as a result. - */ - switch ( size ) - { + * Write back to the array with mbedtls_put_unaligned_uint16 and validate + * that the array is unchanged as a result. + */ + switch (size) { case 16: - mbedtls_put_unaligned_uint16( x + offset, r ); + mbedtls_put_unaligned_uint16(x + offset, r); break; case 32: - mbedtls_put_unaligned_uint32( x + offset, r ); + mbedtls_put_unaligned_uint32(x + offset, r); break; case 64: - mbedtls_put_unaligned_uint64( x + offset, r ); + mbedtls_put_unaligned_uint64(x + offset, r); break; } - for ( size_t i = 0; i < sizeof(x); i++ ) - { - TEST_EQUAL( x[i], (uint8_t)i ); + for (size_t i = 0; i < sizeof(x); i++) { + TEST_EQUAL(x[i], (uint8_t) i); } } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_byteswap( char* input_str, int size, char *expected_str ) +void mbedtls_byteswap(char *input_str, int size, char *expected_str) { uint64_t input, expected; - TEST_ASSERT( parse_hex_string( input_str, &input ) ); - TEST_ASSERT( parse_hex_string( expected_str, &expected ) ); + TEST_ASSERT(parse_hex_string(input_str, &input)); + TEST_ASSERT(parse_hex_string(expected_str, &expected)); /* Check against expected result */ uint64_t r = 0; - switch ( size ) - { + switch (size) { case 16: - r = MBEDTLS_BSWAP16( input ); + r = MBEDTLS_BSWAP16(input); break; case 32: - r = MBEDTLS_BSWAP32( input ); + r = MBEDTLS_BSWAP32(input); break; case 64: - r = MBEDTLS_BSWAP64( input ); + r = MBEDTLS_BSWAP64(input); break; default: - TEST_ASSERT( ! "size must be 16, 32 or 64" ); + TEST_ASSERT(!"size must be 16, 32 or 64"); } - TEST_EQUAL( r, expected ); + TEST_EQUAL(r, expected); /* * Check byte by byte by extracting bytes from opposite ends of * input and r. */ - for ( size_t i = 0; i < (size_t)( size / 8 ); i++ ) - { + for (size_t i = 0; i < (size_t) (size / 8); i++) { size_t s1 = i * 8; - size_t s2 = ( ( size / 8 - 1 ) - i ) * 8; - uint64_t a = ( input & ( (uint64_t)0xff << s1 ) ) >> s1; - uint64_t b = ( r & ( (uint64_t)0xff << s2 ) ) >> s2; - TEST_EQUAL( a, b ); + size_t s2 = ((size / 8 - 1) - i) * 8; + uint64_t a = (input & ((uint64_t) 0xff << s1)) >> s1; + uint64_t b = (r & ((uint64_t) 0xff << s2)) >> s2; + TEST_EQUAL(a, b); } /* Check BSWAP(BSWAP(x)) == x */ - switch ( size ) - { + switch (size) { case 16: - r = MBEDTLS_BSWAP16( r ); - TEST_EQUAL( r, input & 0xffff ); + r = MBEDTLS_BSWAP16(r); + TEST_EQUAL(r, input & 0xffff); break; case 32: - r = MBEDTLS_BSWAP32( r ); - TEST_EQUAL( r, input & 0xffffffff ); + r = MBEDTLS_BSWAP32(r); + TEST_EQUAL(r, input & 0xffffffff); break; case 64: - r = MBEDTLS_BSWAP64( r ); - TEST_EQUAL( r, input ); + r = MBEDTLS_BSWAP64(r); + TEST_EQUAL(r, input); break; } } @@ -189,199 +179,184 @@ void get_byte() { uint8_t data[16]; - for ( size_t i = 0; i < sizeof(data); i++ ) + for (size_t i = 0; i < sizeof(data); i++) { data[i] = (uint8_t) i; + } uint64_t u64 = 0x0706050403020100; - for ( size_t b = 0; b < 8 ; b++ ) - { + for (size_t b = 0; b < 8; b++) { uint8_t expected = b; uint8_t actual = b + 1; - switch ( b ) - { + switch (b) { case 0: - actual = MBEDTLS_BYTE_0( u64 ); + actual = MBEDTLS_BYTE_0(u64); break; case 1: - actual = MBEDTLS_BYTE_1( u64 ); + actual = MBEDTLS_BYTE_1(u64); break; case 2: - actual = MBEDTLS_BYTE_2( u64 ); + actual = MBEDTLS_BYTE_2(u64); break; case 3: - actual = MBEDTLS_BYTE_3( u64 ); + actual = MBEDTLS_BYTE_3(u64); break; case 4: - actual = MBEDTLS_BYTE_4( u64 ); + actual = MBEDTLS_BYTE_4(u64); break; case 5: - actual = MBEDTLS_BYTE_5( u64 ); + actual = MBEDTLS_BYTE_5(u64); break; case 6: - actual = MBEDTLS_BYTE_6( u64 ); + actual = MBEDTLS_BYTE_6(u64); break; case 7: - actual = MBEDTLS_BYTE_7( u64 ); + actual = MBEDTLS_BYTE_7(u64); break; } - TEST_EQUAL( actual, expected ); + TEST_EQUAL(actual, expected); } uint32_t u32 = 0x03020100; - for ( size_t b = 0; b < 4 ; b++ ) - { + for (size_t b = 0; b < 4; b++) { uint8_t expected = b; uint8_t actual = b + 1; - switch ( b ) - { + switch (b) { case 0: - actual = MBEDTLS_BYTE_0( u32 ); + actual = MBEDTLS_BYTE_0(u32); break; case 1: - actual = MBEDTLS_BYTE_1( u32 ); + actual = MBEDTLS_BYTE_1(u32); break; case 2: - actual = MBEDTLS_BYTE_2( u32 ); + actual = MBEDTLS_BYTE_2(u32); break; case 3: - actual = MBEDTLS_BYTE_3( u32 ); + actual = MBEDTLS_BYTE_3(u32); break; } - TEST_EQUAL( actual, expected ); + TEST_EQUAL(actual, expected); } uint16_t u16 = 0x0100; - for ( size_t b = 0; b < 2 ; b++ ) - { + for (size_t b = 0; b < 2; b++) { uint8_t expected = b; uint8_t actual = b + 1; - switch ( b ) - { + switch (b) { case 0: - actual = MBEDTLS_BYTE_0( u16 ); + actual = MBEDTLS_BYTE_0(u16); break; case 1: - actual = MBEDTLS_BYTE_1( u16 ); + actual = MBEDTLS_BYTE_1(u16); break; } - TEST_EQUAL( actual, expected ); + TEST_EQUAL(actual, expected); } uint8_t u8 = 0x01; - uint8_t actual = MBEDTLS_BYTE_0( u8 ); - TEST_EQUAL( actual, u8 ); + uint8_t actual = MBEDTLS_BYTE_0(u8); + TEST_EQUAL(actual, u8); } /* END_CASE */ /* BEGIN_CASE */ -void unaligned_access_endian_aware(int size, int offset, int big_endian ) +void unaligned_access_endian_aware(int size, int offset, int big_endian) { - TEST_ASSERT( size == 16 || size == 24 || size == 32 || size == 64 ); - TEST_ASSERT( offset >= 0 && offset < 8 ); + TEST_ASSERT(size == 16 || size == 24 || size == 32 || size == 64); + TEST_ASSERT(offset >= 0 && offset < 8); /* Define 64-bit aligned raw byte array */ uint64_t raw[2]; /* Populate with known data: x == { 0, 1, 2, ... } */ uint8_t *x = (uint8_t *) raw; - for ( size_t i = 0; i < sizeof(raw); i++ ) + for (size_t i = 0; i < sizeof(raw); i++) { x[i] = (uint8_t) i; + } uint64_t read = 0; - if ( big_endian ) - { - switch ( size ) - { + if (big_endian) { + switch (size) { case 16: - read = MBEDTLS_GET_UINT16_BE( x, offset ); + read = MBEDTLS_GET_UINT16_BE(x, offset); break; case 24: - read = MBEDTLS_GET_UINT24_BE( x, offset ); + read = MBEDTLS_GET_UINT24_BE(x, offset); break; case 32: - read = MBEDTLS_GET_UINT32_BE( x, offset ); + read = MBEDTLS_GET_UINT32_BE(x, offset); break; case 64: - read = MBEDTLS_GET_UINT64_BE( x, offset ); + read = MBEDTLS_GET_UINT64_BE(x, offset); break; } - } - else - { - switch ( size ) - { + } else { + switch (size) { case 16: - read = MBEDTLS_GET_UINT16_LE( x, offset ); + read = MBEDTLS_GET_UINT16_LE(x, offset); break; case 24: - read = MBEDTLS_GET_UINT24_LE( x, offset ); + read = MBEDTLS_GET_UINT24_LE(x, offset); break; case 32: - read = MBEDTLS_GET_UINT32_LE( x, offset ); + read = MBEDTLS_GET_UINT32_LE(x, offset); break; case 64: - read = MBEDTLS_GET_UINT64_LE( x, offset ); + read = MBEDTLS_GET_UINT64_LE(x, offset); break; } } /* Build up expected value byte by byte, in either big or little endian format */ uint64_t expected = 0; - for ( size_t i = 0; i < (size_t)(size / 8); i++ ) - { + for (size_t i = 0; i < (size_t) (size / 8); i++) { uint64_t b = x[i + offset]; uint8_t shift = (big_endian) ? (8 * ((size / 8 - 1) - i)) : (8 * i); expected |= b << shift; } /* Verify read */ - TEST_EQUAL( read, expected ); + TEST_EQUAL(read, expected); /* Test writing back to memory. First write sentiel */ - for ( size_t i = 0; i < (size_t)(size / 8); i++ ) - { + for (size_t i = 0; i < (size_t) (size / 8); i++) { x[i + offset] = 0xff; } /* Overwrite sentinel with endian-aware write macro */ - if ( big_endian ) - { - switch ( size ) - { + if (big_endian) { + switch (size) { case 16: - MBEDTLS_PUT_UINT16_BE( read, x, offset ); + MBEDTLS_PUT_UINT16_BE(read, x, offset); break; case 24: - MBEDTLS_PUT_UINT24_BE( read, x, offset ); + MBEDTLS_PUT_UINT24_BE(read, x, offset); break; case 32: - MBEDTLS_PUT_UINT32_BE( read, x, offset ); + MBEDTLS_PUT_UINT32_BE(read, x, offset); break; case 64: - MBEDTLS_PUT_UINT64_BE( read, x, offset ); + MBEDTLS_PUT_UINT64_BE(read, x, offset); break; } - } - else - { - switch ( size ) - { + } else { + switch (size) { case 16: - MBEDTLS_PUT_UINT16_LE( read, x, offset ); + MBEDTLS_PUT_UINT16_LE(read, x, offset); break; - case 24: - MBEDTLS_PUT_UINT24_LE( read, x, offset ); + case 24: + MBEDTLS_PUT_UINT24_LE(read, x, offset); break; case 32: - MBEDTLS_PUT_UINT32_LE( read, x, offset ); + MBEDTLS_PUT_UINT32_LE(read, x, offset); break; case 64: - MBEDTLS_PUT_UINT64_LE( read, x, offset ); + MBEDTLS_PUT_UINT64_LE(read, x, offset); break; } } /* Verify write - check memory is correct */ - for ( size_t i = 0; i < sizeof(raw); i++ ) - TEST_EQUAL( x[i], (uint8_t) i ); + for (size_t i = 0; i < sizeof(raw); i++) { + TEST_EQUAL(x[i], (uint8_t) i); + } } /* END_CASE */ @@ -389,19 +364,16 @@ void unaligned_access_endian_aware(int size, int offset, int big_endian ) void mbedtls_is_big_endian() { uint16_t check = 0x1234; - uint8_t* p = (uint8_t*) ✓ + uint8_t *p = (uint8_t *) ✓ - if ( MBEDTLS_IS_BIG_ENDIAN ) - { + if (MBEDTLS_IS_BIG_ENDIAN) { /* Big-endian: data stored MSB first, i.e. p == { 0x12, 0x34 } */ - TEST_EQUAL( p[0], 0x12 ); - TEST_EQUAL( p[1], 0x34 ); - } - else - { + TEST_EQUAL(p[0], 0x12); + TEST_EQUAL(p[1], 0x34); + } else { /* Little-endian: data stored LSB first, i.e. p == { 0x34, 0x12 } */ - TEST_EQUAL( p[0], 0x34 ); - TEST_EQUAL( p[1], 0x12 ); + TEST_EQUAL(p[0], 0x34); + TEST_EQUAL(p[1], 0x12); } } /* END_CASE */ diff --git a/tests/suites/test_suite_aria.function b/tests/suites/test_suite_aria.function index ad7c773dc..9e4db2cb6 100644 --- a/tests/suites/test_suite_aria.function +++ b/tests/suites/test_suite_aria.function @@ -6,9 +6,9 @@ #define ARIA_MAX_DATASIZE 160 /* Maximum sizes of hexified things */ -#define ARIA_MAX_KEY_STR ( 2 * MBEDTLS_ARIA_MAX_KEYSIZE + 1 ) -#define ARIA_BLOCK_STR ( 2 * MBEDTLS_ARIA_BLOCKSIZE + 1 ) -#define ARIA_MAX_DATA_STR ( 2 * ARIA_MAX_DATASIZE + 1 ) +#define ARIA_MAX_KEY_STR (2 * MBEDTLS_ARIA_MAX_KEYSIZE + 1) +#define ARIA_BLOCK_STR (2 * MBEDTLS_ARIA_BLOCKSIZE + 1) +#define ARIA_MAX_DATA_STR (2 * ARIA_MAX_DATASIZE + 1) /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -17,7 +17,7 @@ */ /* BEGIN_CASE depends_on:NOT_DEFINED */ -void aria_invalid_param( ) +void aria_invalid_param() { mbedtls_aria_context ctx; unsigned char input[MBEDTLS_ARIA_BLOCKSIZE] = { 0 }; @@ -32,24 +32,24 @@ void aria_invalid_param( ) ((void) output); #if defined(MBEDTLS_CIPHER_MODE_CBC) - TEST_EQUAL( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, - mbedtls_aria_crypt_cbc( &ctx, - 42 /* invalid mode */, - sizeof( input ), - iv, - input, - output ) ); + TEST_EQUAL(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, + mbedtls_aria_crypt_cbc(&ctx, + 42 /* invalid mode */, + sizeof(input), + iv, + input, + output)); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) - TEST_EQUAL( MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, - mbedtls_aria_crypt_cfb128( &ctx, - 42, /* invalid mode */ - sizeof( input ), - &iv_off, - iv, - input, - output ) ); + TEST_EQUAL(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA, + mbedtls_aria_crypt_cfb128(&ctx, + 42, /* invalid mode */ + sizeof(input), + &iv_off, + iv, + input, + output)); #endif /* MBEDTLS_CIPHER_MODE_CFB */ exit: @@ -59,224 +59,218 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void aria_encrypt_ecb( data_t *key_str, data_t *src_str, - data_t *expected_output, int setkey_result ) +void aria_encrypt_ecb(data_t *key_str, data_t *src_str, + data_t *expected_output, int setkey_result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; size_t i; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - TEST_ASSERT( mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) - == setkey_result ); - if( setkey_result == 0 ) - { - for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE ) - { - TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i, - output + i ) == 0 ); + TEST_ASSERT(mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8) + == setkey_result); + if (setkey_result == 0) { + for (i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE) { + TEST_ASSERT(mbedtls_aria_crypt_ecb(&ctx, src_str->x + i, + output + i) == 0); } - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); } exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void aria_decrypt_ecb( data_t *key_str, data_t *src_str, - data_t *expected_output, int setkey_result ) +void aria_decrypt_ecb(data_t *key_str, data_t *src_str, + data_t *expected_output, int setkey_result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; size_t i; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - TEST_ASSERT( mbedtls_aria_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) - == setkey_result ); - if( setkey_result == 0 ) - { - for( i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE ) - { - TEST_ASSERT( mbedtls_aria_crypt_ecb( &ctx, src_str->x + i, - output + i ) == 0 ); + TEST_ASSERT(mbedtls_aria_setkey_dec(&ctx, key_str->x, key_str->len * 8) + == setkey_result); + if (setkey_result == 0) { + for (i = 0; i < src_str->len; i += MBEDTLS_ARIA_BLOCKSIZE) { + TEST_ASSERT(mbedtls_aria_crypt_ecb(&ctx, src_str->x + i, + output + i) == 0); } - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); } exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void aria_encrypt_cbc( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int cbc_result ) +void aria_encrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int cbc_result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_ENCRYPT, - src_str->len, iv_str->x, src_str->x, - output ) == cbc_result ); - if( cbc_result == 0 ) - { - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_cbc(&ctx, MBEDTLS_ARIA_ENCRYPT, + src_str->len, iv_str->x, src_str->x, + output) == cbc_result); + if (cbc_result == 0) { + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); } exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void aria_decrypt_cbc( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int cbc_result ) +void aria_decrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int cbc_result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_dec( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_cbc( &ctx, MBEDTLS_ARIA_DECRYPT, - src_str->len, iv_str->x, src_str->x, - output ) == cbc_result ); - if( cbc_result == 0 ) - { - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + mbedtls_aria_setkey_dec(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_cbc(&ctx, MBEDTLS_ARIA_DECRYPT, + src_str->len, iv_str->x, src_str->x, + output) == cbc_result); + if (cbc_result == 0) { + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); } exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aria_encrypt_cfb128( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int result ) +void aria_encrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; size_t iv_offset = 0; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_ENCRYPT, - src_str->len, &iv_offset, - iv_str->x, src_str->x, output ) - == result ); + mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_ENCRYPT, + src_str->len, &iv_offset, + iv_str->x, src_str->x, output) + == result); - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void aria_decrypt_cfb128( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int result ) +void aria_decrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int result) { unsigned char output[ARIA_MAX_DATASIZE]; mbedtls_aria_context ctx; size_t iv_offset = 0; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_cfb128( &ctx, MBEDTLS_ARIA_DECRYPT, - src_str->len, &iv_offset, - iv_str->x, src_str->x, output ) - == result ); + mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_cfb128(&ctx, MBEDTLS_ARIA_DECRYPT, + src_str->len, &iv_offset, + iv_str->x, src_str->x, output) + == result); - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */ -void aria_encrypt_ctr( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int result ) +void aria_encrypt_ctr(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int result) { unsigned char output[ARIA_MAX_DATASIZE]; unsigned char blk[MBEDTLS_ARIA_BLOCKSIZE]; mbedtls_aria_context ctx; size_t iv_offset = 0; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_ctr( &ctx, src_str->len, &iv_offset, - iv_str->x, blk, src_str->x, output ) - == result ); + mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_ctr(&ctx, src_str->len, &iv_offset, + iv_str->x, blk, src_str->x, output) + == result); - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CTR */ -void aria_decrypt_ctr( data_t *key_str, data_t *iv_str, - data_t *src_str, data_t *expected_output, - int result ) +void aria_decrypt_ctr(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *expected_output, + int result) { unsigned char output[ARIA_MAX_DATASIZE]; unsigned char blk[MBEDTLS_ARIA_BLOCKSIZE]; mbedtls_aria_context ctx; size_t iv_offset = 0; - memset( output, 0x00, sizeof( output ) ); - mbedtls_aria_init( &ctx ); + memset(output, 0x00, sizeof(output)); + mbedtls_aria_init(&ctx); - mbedtls_aria_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_aria_crypt_ctr( &ctx, src_str->len, &iv_offset, - iv_str->x, blk, src_str->x, output ) - == result ); + mbedtls_aria_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_aria_crypt_ctr(&ctx, src_str->len, &iv_offset, + iv_str->x, blk, src_str->x, output) + == result); - ASSERT_COMPARE( output, expected_output->len, - expected_output->x, expected_output->len ); + ASSERT_COMPARE(output, expected_output->len, + expected_output->x, expected_output->len); exit: - mbedtls_aria_free( &ctx ); + mbedtls_aria_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void aria_selftest() { - TEST_ASSERT( mbedtls_aria_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_aria_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_asn1parse.function b/tests/suites/test_suite_asn1parse.function index 62669b35f..e1a26b732 100644 --- a/tests/suites/test_suite_asn1parse.function +++ b/tests/suites/test_suite_asn1parse.function @@ -16,8 +16,8 @@ * should not be checked. */ #define UNPREDICTABLE_RESULT 0x5552 -static int nested_parse( unsigned char **const p, - const unsigned char *const end ) +static int nested_parse(unsigned char **const p, + const unsigned char *const end) { int ret; size_t len = 0; @@ -28,31 +28,32 @@ static int nested_parse( unsigned char **const p, /* First get the length, skipping over the tag. */ content_start = start + 1; - ret = mbedtls_asn1_get_len( &content_start, end, &len ); - TEST_ASSERT( content_start <= end ); - if( ret != 0 ) - return( ret ); + ret = mbedtls_asn1_get_len(&content_start, end, &len); + TEST_ASSERT(content_start <= end); + if (ret != 0) { + return ret; + } /* Since we have a valid element start (tag and length), retrieve and * check the tag. */ tag = start[0]; - TEST_EQUAL( mbedtls_asn1_get_tag( p, end, &len2, tag ^ 1 ), - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ); + TEST_EQUAL(mbedtls_asn1_get_tag(p, end, &len2, tag ^ 1), + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); *p = start; - TEST_EQUAL( mbedtls_asn1_get_tag( p, end, &len2, tag ), 0 ); - TEST_EQUAL( len, len2 ); - TEST_ASSERT( *p == content_start ); + TEST_EQUAL(mbedtls_asn1_get_tag(p, end, &len2, tag), 0); + TEST_EQUAL(len, len2); + TEST_ASSERT(*p == content_start); *p = content_start; - switch( tag & 0x1f ) - { + switch (tag & 0x1f) { case MBEDTLS_ASN1_BOOLEAN: { int val = -257; *p = start; - ret = mbedtls_asn1_get_bool( p, end, &val ); - if( ret == 0 ) - TEST_ASSERT( val == 0 || val == 1 ); + ret = mbedtls_asn1_get_bool(p, end, &val); + if (ret == 0) { + TEST_ASSERT(val == 0 || val == 1); + } break; } @@ -60,23 +61,22 @@ static int nested_parse( unsigned char **const p, { #if defined(MBEDTLS_BIGNUM_C) mbedtls_mpi mpi; - mbedtls_mpi_init( &mpi ); + mbedtls_mpi_init(&mpi); *p = start; - ret = mbedtls_asn1_get_mpi( p, end, &mpi ); - mbedtls_mpi_free( &mpi ); + ret = mbedtls_asn1_get_mpi(p, end, &mpi); + mbedtls_mpi_free(&mpi); #else *p = start + 1; - ret = mbedtls_asn1_get_len( p, end, &len ); + ret = mbedtls_asn1_get_len(p, end, &len); *p += len; #endif /* If we're sure that the number fits in an int, also * call mbedtls_asn1_get_int(). */ - if( ret == 0 && len < sizeof( int ) ) - { + if (ret == 0 && len < sizeof(int)) { int val = -257; unsigned char *q = start; - ret = mbedtls_asn1_get_int( &q, end, &val ); - TEST_ASSERT( *p == q ); + ret = mbedtls_asn1_get_int(&q, end, &val); + TEST_ASSERT(*p == q); } break; } @@ -85,14 +85,15 @@ static int nested_parse( unsigned char **const p, { mbedtls_asn1_bitstring bs; *p = start; - ret = mbedtls_asn1_get_bitstring( p, end, &bs ); + ret = mbedtls_asn1_get_bitstring(p, end, &bs); break; } case MBEDTLS_ASN1_SEQUENCE: { - while( *p <= end && *p < content_start + len && ret == 0 ) - ret = nested_parse( p, content_start + len ); + while (*p <= end && *p < content_start + len && ret == 0) { + ret = nested_parse(p, content_start + len); + } break; } @@ -111,18 +112,18 @@ static int nested_parse( unsigned char **const p, default: /* No further testing implemented for this tag. */ *p += len; - return( 0 ); + return 0; } - TEST_ASSERT( *p <= end ); - return( ret ); + TEST_ASSERT(*p <= end); + return ret; exit: - return( ERR_PARSE_INCONSISTENCY ); + return ERR_PARSE_INCONSISTENCY; } -int get_len_step( const data_t *input, size_t buffer_size, - size_t actual_length ) +int get_len_step(const data_t *input, size_t buffer_size, + size_t actual_length) { unsigned char *buf = NULL; unsigned char *p = NULL; @@ -130,53 +131,43 @@ int get_len_step( const data_t *input, size_t buffer_size, size_t parsed_length; int ret; - mbedtls_test_set_step( buffer_size ); + mbedtls_test_set_step(buffer_size); /* Allocate a new buffer of exactly the length to parse each time. * This gives memory sanitizers a chance to catch buffer overreads. */ - if( buffer_size == 0 ) - { - ASSERT_ALLOC( buf, 1 ); + if (buffer_size == 0) { + ASSERT_ALLOC(buf, 1); end = buf + 1; p = end; - } - else - { - ASSERT_ALLOC_WEAK( buf, buffer_size ); - if( buffer_size > input->len ) - { - memcpy( buf, input->x, input->len ); - memset( buf + input->len, 'A', buffer_size - input->len ); - } - else - { - memcpy( buf, input->x, buffer_size ); + } else { + ASSERT_ALLOC_WEAK(buf, buffer_size); + if (buffer_size > input->len) { + memcpy(buf, input->x, input->len); + memset(buf + input->len, 'A', buffer_size - input->len); + } else { + memcpy(buf, input->x, buffer_size); } p = buf; end = buf + buffer_size; } - ret = mbedtls_asn1_get_len( &p, end, &parsed_length ); + ret = mbedtls_asn1_get_len(&p, end, &parsed_length); - if( buffer_size >= input->len + actual_length ) - { - TEST_EQUAL( ret, 0 ); - TEST_ASSERT( p == buf + input->len ); - TEST_EQUAL( parsed_length, actual_length ); + if (buffer_size >= input->len + actual_length) { + TEST_EQUAL(ret, 0); + TEST_ASSERT(p == buf + input->len); + TEST_EQUAL(parsed_length, actual_length); + } else { + TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA); } - else - { - TEST_EQUAL( ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA ); - } - mbedtls_free( buf ); - return( 1 ); + mbedtls_free(buf); + return 1; exit: - mbedtls_free( buf ); - return( 0 ); + mbedtls_free(buf); + return 0; } -typedef struct -{ +typedef struct { const unsigned char *input_start; const char *description; } traverse_state_t; @@ -188,38 +179,40 @@ typedef struct #define RET_TRAVERSE_ERROR 2 -static int traverse_callback( void *ctx, int tag, - unsigned char *content, size_t len ) +static int traverse_callback(void *ctx, int tag, + unsigned char *content, size_t len) { traverse_state_t *state = ctx; size_t offset; const char *rest = state->description; unsigned long n; - TEST_ASSERT( content > state->input_start ); + TEST_ASSERT(content > state->input_start); offset = content - state->input_start; - mbedtls_test_set_step( offset ); + mbedtls_test_set_step(offset); - if( *rest == 0 ) - return( RET_TRAVERSE_STOP ); - n = strtoul( rest, (char **) &rest, 0 ); - TEST_EQUAL( n, offset ); - TEST_EQUAL( *rest, ',' ); + if (*rest == 0) { + return RET_TRAVERSE_STOP; + } + n = strtoul(rest, (char **) &rest, 0); + TEST_EQUAL(n, offset); + TEST_EQUAL(*rest, ','); ++rest; - n = strtoul( rest, (char **) &rest, 0 ); - TEST_EQUAL( n, (unsigned) tag ); - TEST_EQUAL( *rest, ',' ); + n = strtoul(rest, (char **) &rest, 0); + TEST_EQUAL(n, (unsigned) tag); + TEST_EQUAL(*rest, ','); ++rest; - n = strtoul( rest, (char **) &rest, 0 ); - TEST_EQUAL( n, len ); - if( *rest == ',' ) + n = strtoul(rest, (char **) &rest, 0); + TEST_EQUAL(n, len); + if (*rest == ',') { ++rest; + } state->description = rest; - return( 0 ); + return 0; exit: - return( RET_TRAVERSE_ERROR ); + return RET_TRAVERSE_ERROR; } /* END_HEADER */ @@ -230,9 +223,9 @@ exit: */ /* BEGIN_CASE */ -void parse_prefixes( const data_t *input, - int full_result, - int overfull_result ) +void parse_prefixes(const data_t *input, + int full_result, + int overfull_result) { /* full_result: expected result from parsing the given string. */ /* overfull_result: expected_result from parsing the given string plus @@ -250,45 +243,42 @@ void parse_prefixes( const data_t *input, * we wouldn't know what to parse the input as. * Also test the input followed by an extra byte. */ - for( buffer_size = 1; buffer_size <= input->len + 1; buffer_size++ ) - { - mbedtls_test_set_step( buffer_size ); + for (buffer_size = 1; buffer_size <= input->len + 1; buffer_size++) { + mbedtls_test_set_step(buffer_size); /* Allocate a new buffer of exactly the length to parse each time. * This gives memory sanitizers a chance to catch buffer overreads. */ - ASSERT_ALLOC( buf, buffer_size ); - memcpy( buf, input->x, buffer_size ); + ASSERT_ALLOC(buf, buffer_size); + memcpy(buf, input->x, buffer_size); p = buf; - ret = nested_parse( &p, buf + buffer_size ); + ret = nested_parse(&p, buf + buffer_size); - if( ret == ERR_PARSE_INCONSISTENCY ) + if (ret == ERR_PARSE_INCONSISTENCY) { goto exit; - if( buffer_size < input->len ) - { - TEST_EQUAL( ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA ); } - else if( buffer_size == input->len ) - { - TEST_EQUAL( ret, full_result ); + if (buffer_size < input->len) { + TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_OUT_OF_DATA); + } else if (buffer_size == input->len) { + TEST_EQUAL(ret, full_result); + } else { /* ( buffer_size > input->len ) */ + if (overfull_result != UNPREDICTABLE_RESULT) { + TEST_EQUAL(ret, overfull_result); + } } - else /* ( buffer_size > input->len ) */ - { - if( overfull_result != UNPREDICTABLE_RESULT ) - TEST_EQUAL( ret, overfull_result ); + if (ret == 0) { + TEST_ASSERT(p == buf + input->len); } - if( ret == 0 ) - TEST_ASSERT( p == buf + input->len ); - mbedtls_free( buf ); + mbedtls_free(buf); buf = NULL; } exit: - mbedtls_free( buf ); + mbedtls_free(buf); } /* END_CASE */ /* BEGIN_CASE */ -void get_len( const data_t *input, int actual_length_arg ) +void get_len(const data_t *input, int actual_length_arg) { size_t actual_length = actual_length_arg; size_t buffer_size; @@ -299,37 +289,38 @@ void get_len( const data_t *input, int actual_length_arg ) * the payload is truncated more than one byte away from either end, * and we only test the empty string on a 1-byte input. */ - for( buffer_size = 1; buffer_size <= input->len + 1; buffer_size++ ) - { - if( ! get_len_step( input, buffer_size, actual_length ) ) + for (buffer_size = 1; buffer_size <= input->len + 1; buffer_size++) { + if (!get_len_step(input, buffer_size, actual_length)) { goto exit; + } } - if( ! get_len_step( input, input->len + actual_length - 1, actual_length ) ) + if (!get_len_step(input, input->len + actual_length - 1, actual_length)) { goto exit; - if( ! get_len_step( input, input->len + actual_length, actual_length ) ) + } + if (!get_len_step(input, input->len + actual_length, actual_length)) { goto exit; + } } /* END_CASE */ /* BEGIN_CASE */ -void get_boolean( const data_t *input, - int expected_value, int expected_result ) +void get_boolean(const data_t *input, + int expected_value, int expected_result) { unsigned char *p = input->x; int val; int ret; - ret = mbedtls_asn1_get_bool( &p, input->x + input->len, &val ); - TEST_EQUAL( ret, expected_result ); - if( expected_result == 0 ) - { - TEST_EQUAL( val, expected_value ); - TEST_ASSERT( p == input->x + input->len ); + ret = mbedtls_asn1_get_bool(&p, input->x + input->len, &val); + TEST_EQUAL(ret, expected_result); + if (expected_result == 0) { + TEST_EQUAL(val, expected_value); + TEST_ASSERT(p == input->x + input->len); } } /* END_CASE */ /* BEGIN_CASE */ -void empty_integer( const data_t *input ) +void empty_integer(const data_t *input) { unsigned char *p; #if defined(MBEDTLS_BIGNUM_C) @@ -338,34 +329,34 @@ void empty_integer( const data_t *input ) int val; #if defined(MBEDTLS_BIGNUM_C) - mbedtls_mpi_init( & actual_mpi ); + mbedtls_mpi_init(&actual_mpi); #endif /* An INTEGER with no content is not valid. */ p = input->x; - TEST_EQUAL( mbedtls_asn1_get_int( &p, input->x + input->len, &val ), - MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + TEST_EQUAL(mbedtls_asn1_get_int(&p, input->x + input->len, &val), + MBEDTLS_ERR_ASN1_INVALID_LENGTH); #if defined(MBEDTLS_BIGNUM_C) /* INTEGERs are sometimes abused as bitstrings, so the library accepts * an INTEGER with empty content and gives it the value 0. */ p = input->x; - TEST_EQUAL( mbedtls_asn1_get_mpi( &p, input->x + input->len, &actual_mpi ), - 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &actual_mpi, 0 ), 0 ); + TEST_EQUAL(mbedtls_asn1_get_mpi(&p, input->x + input->len, &actual_mpi), + 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&actual_mpi, 0), 0); #endif exit: #if defined(MBEDTLS_BIGNUM_C) - mbedtls_mpi_free( &actual_mpi ); + mbedtls_mpi_free(&actual_mpi); #endif - /*empty cleanup in some configurations*/ ; + /*empty cleanup in some configurations*/; } /* END_CASE */ /* BEGIN_CASE */ -void get_integer( const data_t *input, - const char *expected_hex, int expected_result ) +void get_integer(const data_t *input, + const char *expected_hex, int expected_result) { unsigned char *p; #if defined(MBEDTLS_BIGNUM_C) @@ -380,26 +371,24 @@ void get_integer( const data_t *input, int ret; #if defined(MBEDTLS_BIGNUM_C) - mbedtls_mpi_init( &expected_mpi ); - mbedtls_mpi_init( &actual_mpi ); - mbedtls_mpi_init( &complement ); + mbedtls_mpi_init(&expected_mpi); + mbedtls_mpi_init(&actual_mpi); + mbedtls_mpi_init(&complement); #endif errno = 0; - expected_value = strtol( expected_hex, NULL, 16 ); - if( expected_result == 0 && - ( errno == ERANGE + expected_value = strtol(expected_hex, NULL, 16); + if (expected_result == 0 && + (errno == ERANGE #if LONG_MAX > INT_MAX - || expected_value > INT_MAX || expected_value < INT_MIN + || expected_value > INT_MAX || expected_value < INT_MIN #endif - ) ) - { + )) { /* The library returns the dubious error code INVALID_LENGTH * for integers that are out of range. */ expected_result_for_int = MBEDTLS_ERR_ASN1_INVALID_LENGTH; } - if( expected_result == 0 && expected_value < 0 ) - { + if (expected_result == 0 && expected_value < 0) { /* The library does not support negative INTEGERs and * returns the dubious error code INVALID_LENGTH. * Test that we preserve the historical behavior. If we @@ -408,34 +397,28 @@ void get_integer( const data_t *input, } p = input->x; - ret = mbedtls_asn1_get_int( &p, input->x + input->len, &val ); - TEST_EQUAL( ret, expected_result_for_int ); - if( ret == 0 ) - { - TEST_EQUAL( val, expected_value ); - TEST_ASSERT( p == input->x + input->len ); + ret = mbedtls_asn1_get_int(&p, input->x + input->len, &val); + TEST_EQUAL(ret, expected_result_for_int); + if (ret == 0) { + TEST_EQUAL(val, expected_value); + TEST_ASSERT(p == input->x + input->len); } #if defined(MBEDTLS_BIGNUM_C) - ret = mbedtls_test_read_mpi( &expected_mpi, expected_hex ); - TEST_ASSERT( ret == 0 || ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - if( ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA ) - { + ret = mbedtls_test_read_mpi(&expected_mpi, expected_hex); + TEST_ASSERT(ret == 0 || ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA); + if (ret == MBEDTLS_ERR_MPI_BAD_INPUT_DATA) { /* The data overflows the maximum MPI size. */ expected_result_for_mpi = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } p = input->x; - ret = mbedtls_asn1_get_mpi( &p, input->x + input->len, &actual_mpi ); - TEST_EQUAL( ret, expected_result_for_mpi ); - if( ret == 0 ) - { - if( expected_value >= 0 ) - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &actual_mpi, - &expected_mpi ) == 0 ); - } - else - { + ret = mbedtls_asn1_get_mpi(&p, input->x + input->len, &actual_mpi); + TEST_EQUAL(ret, expected_result_for_mpi); + if (ret == 0) { + if (expected_value >= 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&actual_mpi, + &expected_mpi) == 0); + } else { /* The library ignores the sign bit in ASN.1 INTEGERs * (which makes sense insofar as INTEGERs are sometimes * abused as bit strings), so the result of parsing them @@ -448,32 +431,32 @@ void get_integer( const data_t *input, * negative INTEGERs, we'll fix this test code. */ unsigned char *q = input->x + 1; size_t len; - TEST_ASSERT( mbedtls_asn1_get_len( &q, input->x + input->len, - &len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_lset( &complement, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &complement, len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_mpi( &complement, &complement, - &expected_mpi ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &complement, - &actual_mpi ) == 0 ); + TEST_ASSERT(mbedtls_asn1_get_len(&q, input->x + input->len, + &len) == 0); + TEST_ASSERT(mbedtls_mpi_lset(&complement, 1) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&complement, len * 8) == 0); + TEST_ASSERT(mbedtls_mpi_add_mpi(&complement, &complement, + &expected_mpi) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&complement, + &actual_mpi) == 0); } - TEST_ASSERT( p == input->x + input->len ); + TEST_ASSERT(p == input->x + input->len); } #endif exit: #if defined(MBEDTLS_BIGNUM_C) - mbedtls_mpi_free( &expected_mpi ); - mbedtls_mpi_free( &actual_mpi ); - mbedtls_mpi_free( &complement ); + mbedtls_mpi_free(&expected_mpi); + mbedtls_mpi_free(&actual_mpi); + mbedtls_mpi_free(&complement); #endif - /*empty cleanup in some configurations*/ ; + /*empty cleanup in some configurations*/; } /* END_CASE */ /* BEGIN_CASE */ -void get_enum( const data_t *input, - const char *expected_hex, int expected_result ) +void get_enum(const data_t *input, + const char *expected_hex, int expected_result) { unsigned char *p; long expected_value; @@ -482,20 +465,18 @@ void get_enum( const data_t *input, int ret; errno = 0; - expected_value = strtol( expected_hex, NULL, 16 ); - if( expected_result == 0 && - ( errno == ERANGE + expected_value = strtol(expected_hex, NULL, 16); + if (expected_result == 0 && + (errno == ERANGE #if LONG_MAX > INT_MAX - || expected_value > INT_MAX || expected_value < INT_MIN + || expected_value > INT_MAX || expected_value < INT_MIN #endif - ) ) - { + )) { /* The library returns the dubious error code INVALID_LENGTH * for integers that are out of range. */ expected_result_for_enum = MBEDTLS_ERR_ASN1_INVALID_LENGTH; } - if( expected_result == 0 && expected_value < 0 ) - { + if (expected_result == 0 && expected_value < 0) { /* The library does not support negative INTEGERs and * returns the dubious error code INVALID_LENGTH. * Test that we preserve the historical behavior. If we @@ -504,18 +485,17 @@ void get_enum( const data_t *input, } p = input->x; - ret = mbedtls_asn1_get_enum( &p, input->x + input->len, &val ); - TEST_EQUAL( ret, expected_result_for_enum ); - if( ret == 0 ) - { - TEST_EQUAL( val, expected_value ); - TEST_ASSERT( p == input->x + input->len ); + ret = mbedtls_asn1_get_enum(&p, input->x + input->len, &val); + TEST_EQUAL(ret, expected_result_for_enum); + if (ret == 0) { + TEST_EQUAL(val, expected_value); + TEST_ASSERT(p == input->x + input->len); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */ -void get_mpi_too_large( ) +void get_mpi_too_large() { unsigned char *buf = NULL; unsigned char *p; @@ -524,63 +504,62 @@ void get_mpi_too_large( ) MBEDTLS_MPI_MAX_LIMBS * sizeof(mbedtls_mpi_uint) + 1; size_t size = too_many_octets + 6; - mbedtls_mpi_init( &actual_mpi ); + mbedtls_mpi_init(&actual_mpi); - ASSERT_ALLOC( buf, size ); + ASSERT_ALLOC(buf, size); buf[0] = 0x02; /* tag: INTEGER */ buf[1] = 0x84; /* 4-octet length */ - buf[2] = ( too_many_octets >> 24 ) & 0xff; - buf[3] = ( too_many_octets >> 16 ) & 0xff; - buf[4] = ( too_many_octets >> 8 ) & 0xff; + buf[2] = (too_many_octets >> 24) & 0xff; + buf[3] = (too_many_octets >> 16) & 0xff; + buf[4] = (too_many_octets >> 8) & 0xff; buf[5] = too_many_octets & 0xff; buf[6] = 0x01; /* most significant octet */ p = buf; - TEST_EQUAL( mbedtls_asn1_get_mpi( &p, buf + size, &actual_mpi ), - MBEDTLS_ERR_MPI_ALLOC_FAILED ); + TEST_EQUAL(mbedtls_asn1_get_mpi(&p, buf + size, &actual_mpi), + MBEDTLS_ERR_MPI_ALLOC_FAILED); exit: - mbedtls_mpi_free( &actual_mpi ); - mbedtls_free( buf ); + mbedtls_mpi_free(&actual_mpi); + mbedtls_free(buf); } /* END_CASE */ /* BEGIN_CASE */ -void get_bitstring( const data_t *input, - int expected_length, int expected_unused_bits, - int expected_result, int expected_result_null ) +void get_bitstring(const data_t *input, + int expected_length, int expected_unused_bits, + int expected_result, int expected_result_null) { mbedtls_asn1_bitstring bs = { 0xdead, 0x21, NULL }; unsigned char *p = input->x; - TEST_EQUAL( mbedtls_asn1_get_bitstring( &p, input->x + input->len, &bs ), - expected_result ); - if( expected_result == 0 ) - { - TEST_EQUAL( bs.len, (size_t) expected_length ); - TEST_EQUAL( bs.unused_bits, expected_unused_bits ); - TEST_ASSERT( bs.p != NULL ); - TEST_EQUAL( bs.p - input->x + bs.len, input->len ); - TEST_ASSERT( p == input->x + input->len ); + TEST_EQUAL(mbedtls_asn1_get_bitstring(&p, input->x + input->len, &bs), + expected_result); + if (expected_result == 0) { + TEST_EQUAL(bs.len, (size_t) expected_length); + TEST_EQUAL(bs.unused_bits, expected_unused_bits); + TEST_ASSERT(bs.p != NULL); + TEST_EQUAL(bs.p - input->x + bs.len, input->len); + TEST_ASSERT(p == input->x + input->len); } p = input->x; - TEST_EQUAL( mbedtls_asn1_get_bitstring_null( &p, input->x + input->len, - &bs.len ), - expected_result_null ); - if( expected_result_null == 0 ) - { - TEST_EQUAL( bs.len, (size_t) expected_length ); - if( expected_result == 0 ) - TEST_ASSERT( p == input->x + input->len - bs.len ); + TEST_EQUAL(mbedtls_asn1_get_bitstring_null(&p, input->x + input->len, + &bs.len), + expected_result_null); + if (expected_result_null == 0) { + TEST_EQUAL(bs.len, (size_t) expected_length); + if (expected_result == 0) { + TEST_ASSERT(p == input->x + input->len - bs.len); + } } } /* END_CASE */ /* BEGIN_CASE */ -void get_sequence_of( const data_t *input, int tag, - const char *description, - int expected_result ) +void get_sequence_of(const data_t *input, int tag, + const char *description, + int expected_result) { /* The description string is a comma-separated list of integers. * For each element in the SEQUENCE in input, description contains @@ -596,53 +575,49 @@ void get_sequence_of( const data_t *input, int tag, unsigned long n; unsigned int step = 0; - TEST_EQUAL( mbedtls_asn1_get_sequence_of( &p, input->x + input->len, - &head, tag ), - expected_result ); - if( expected_result == 0 ) - { - TEST_ASSERT( p == input->x + input->len ); + TEST_EQUAL(mbedtls_asn1_get_sequence_of(&p, input->x + input->len, + &head, tag), + expected_result); + if (expected_result == 0) { + TEST_ASSERT(p == input->x + input->len); - if( ! *rest ) - { - TEST_EQUAL( head.buf.tag, 0 ); - TEST_ASSERT( head.buf.p == NULL ); - TEST_EQUAL( head.buf.len, 0 ); - TEST_ASSERT( head.next == NULL ); - } - else - { + if (!*rest) { + TEST_EQUAL(head.buf.tag, 0); + TEST_ASSERT(head.buf.p == NULL); + TEST_EQUAL(head.buf.len, 0); + TEST_ASSERT(head.next == NULL); + } else { cur = &head; - while( *rest ) - { - mbedtls_test_set_step( step ); - TEST_ASSERT( cur != NULL ); - TEST_EQUAL( cur->buf.tag, tag ); - n = strtoul( rest, (char **) &rest, 0 ); - TEST_EQUAL( n, (size_t)( cur->buf.p - input->x ) ); + while (*rest) { + mbedtls_test_set_step(step); + TEST_ASSERT(cur != NULL); + TEST_EQUAL(cur->buf.tag, tag); + n = strtoul(rest, (char **) &rest, 0); + TEST_EQUAL(n, (size_t) (cur->buf.p - input->x)); ++rest; - n = strtoul( rest, (char **) &rest, 0 ); - TEST_EQUAL( n, cur->buf.len ); - if( *rest ) + n = strtoul(rest, (char **) &rest, 0); + TEST_EQUAL(n, cur->buf.len); + if (*rest) { ++rest; + } cur = cur->next; ++step; } - TEST_ASSERT( cur == NULL ); + TEST_ASSERT(cur == NULL); } } exit: - mbedtls_asn1_sequence_free( head.next ); + mbedtls_asn1_sequence_free(head.next); } /* END_CASE */ /* BEGIN_CASE */ -void traverse_sequence_of( const data_t *input, - int tag_must_mask, int tag_must_val, - int tag_may_mask, int tag_may_val, - const char *description, - int expected_result ) +void traverse_sequence_of(const data_t *input, + int tag_must_mask, int tag_must_val, + int tag_may_mask, int tag_may_val, + const char *description, + int expected_result) { /* The description string is a comma-separated list of integers. * For each element in the SEQUENCE in input, description contains @@ -652,144 +627,148 @@ void traverse_sequence_of( const data_t *input, * "offset1,tag1,length1,..." */ unsigned char *p = input->x; - traverse_state_t traverse_state = {input->x, description}; + traverse_state_t traverse_state = { input->x, description }; int ret; - ret = mbedtls_asn1_traverse_sequence_of( &p, input->x + input->len, - (uint8_t) tag_must_mask, (uint8_t) tag_must_val, - (uint8_t) tag_may_mask, (uint8_t) tag_may_val, - traverse_callback, &traverse_state ); - if( ret == RET_TRAVERSE_ERROR ) + ret = mbedtls_asn1_traverse_sequence_of(&p, input->x + input->len, + (uint8_t) tag_must_mask, (uint8_t) tag_must_val, + (uint8_t) tag_may_mask, (uint8_t) tag_may_val, + traverse_callback, &traverse_state); + if (ret == RET_TRAVERSE_ERROR) { goto exit; - TEST_EQUAL( ret, expected_result ); - TEST_EQUAL( *traverse_state.description, 0 ); + } + TEST_EQUAL(ret, expected_result); + TEST_EQUAL(*traverse_state.description, 0); } /* END_CASE */ /* BEGIN_CASE */ -void get_alg( const data_t *input, - int oid_offset, int oid_length, - int params_tag, int params_offset, int params_length, - int total_length, - int expected_result ) +void get_alg(const data_t *input, + int oid_offset, int oid_length, + int params_tag, int params_offset, int params_length, + int total_length, + int expected_result) { mbedtls_asn1_buf oid = { -1, 0, NULL }; mbedtls_asn1_buf params = { -1, 0, NULL }; unsigned char *p = input->x; int ret; - TEST_EQUAL( mbedtls_asn1_get_alg( &p, input->x + input->len, - &oid, ¶ms ), - expected_result ); - if( expected_result == 0 ) - { - TEST_EQUAL( oid.tag, MBEDTLS_ASN1_OID ); - TEST_EQUAL( oid.p - input->x, oid_offset ); - TEST_EQUAL( oid.len, (size_t) oid_length ); - TEST_EQUAL( params.tag, params_tag ); - if( params_offset != 0 ) - TEST_EQUAL( params.p - input->x, params_offset ); - else - TEST_ASSERT( params.p == NULL ); - TEST_EQUAL( params.len, (size_t) params_length ); - TEST_EQUAL( p - input->x, total_length ); + TEST_EQUAL(mbedtls_asn1_get_alg(&p, input->x + input->len, + &oid, ¶ms), + expected_result); + if (expected_result == 0) { + TEST_EQUAL(oid.tag, MBEDTLS_ASN1_OID); + TEST_EQUAL(oid.p - input->x, oid_offset); + TEST_EQUAL(oid.len, (size_t) oid_length); + TEST_EQUAL(params.tag, params_tag); + if (params_offset != 0) { + TEST_EQUAL(params.p - input->x, params_offset); + } else { + TEST_ASSERT(params.p == NULL); + } + TEST_EQUAL(params.len, (size_t) params_length); + TEST_EQUAL(p - input->x, total_length); } - ret = mbedtls_asn1_get_alg_null( &p, input->x + input->len, &oid ); - if( expected_result == 0 && params_offset == 0 ) - { - TEST_EQUAL( oid.tag, MBEDTLS_ASN1_OID ); - TEST_EQUAL( oid.p - input->x, oid_offset ); - TEST_EQUAL( oid.len, (size_t) oid_length ); - TEST_EQUAL( p - input->x, total_length ); + ret = mbedtls_asn1_get_alg_null(&p, input->x + input->len, &oid); + if (expected_result == 0 && params_offset == 0) { + TEST_EQUAL(oid.tag, MBEDTLS_ASN1_OID); + TEST_EQUAL(oid.p - input->x, oid_offset); + TEST_EQUAL(oid.len, (size_t) oid_length); + TEST_EQUAL(p - input->x, total_length); + } else { + TEST_ASSERT(ret != 0); } - else - TEST_ASSERT( ret != 0 ); } /* END_CASE */ /* BEGIN_CASE */ -void find_named_data( data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, - data_t *needle, int from, int position ) +void find_named_data(data_t *oid0, data_t *oid1, data_t *oid2, data_t *oid3, + data_t *needle, int from, int position) { - mbedtls_asn1_named_data nd[] ={ - { {0x06, oid0->len, oid0->x}, {0, 0, NULL}, NULL, 0 }, - { {0x06, oid1->len, oid1->x}, {0, 0, NULL}, NULL, 0 }, - { {0x06, oid2->len, oid2->x}, {0, 0, NULL}, NULL, 0 }, - { {0x06, oid3->len, oid3->x}, {0, 0, NULL}, NULL, 0 }, + mbedtls_asn1_named_data nd[] = { + { { 0x06, oid0->len, oid0->x }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, oid1->len, oid1->x }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, oid2->len, oid2->x }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, oid3->len, oid3->x }, { 0, 0, NULL }, NULL, 0 }, }; - mbedtls_asn1_named_data *pointers[ARRAY_LENGTH( nd ) + 1]; + mbedtls_asn1_named_data *pointers[ARRAY_LENGTH(nd) + 1]; size_t i; const mbedtls_asn1_named_data *found; - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) + for (i = 0; i < ARRAY_LENGTH(nd); i++) { pointers[i] = &nd[i]; - pointers[ARRAY_LENGTH( nd )] = NULL; - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) + } + pointers[ARRAY_LENGTH(nd)] = NULL; + for (i = 0; i < ARRAY_LENGTH(nd); i++) { nd[i].next = pointers[i+1]; + } - found = mbedtls_asn1_find_named_data( (const mbedtls_asn1_named_data*) pointers[from], - (const char *) needle->x, - needle->len ); - TEST_ASSERT( found == pointers[position] ); + found = mbedtls_asn1_find_named_data((const mbedtls_asn1_named_data *) pointers[from], + (const char *) needle->x, + needle->len); + TEST_ASSERT(found == pointers[position]); } /* END_CASE */ /* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ -void free_named_data_null( ) +void free_named_data_null() { - mbedtls_asn1_free_named_data( NULL ); + mbedtls_asn1_free_named_data(NULL); goto exit; /* Silence unused label warning */ } /* END_CASE */ /* BEGIN_CASE depends_on:!MBEDTLS_DEPRECATED_REMOVED:!MBEDTLS_DEPRECATED_WARNING */ -void free_named_data( int with_oid, int with_val, int with_next ) +void free_named_data(int with_oid, int with_val, int with_next) { mbedtls_asn1_named_data next = - { {0x06, 0, NULL}, {0, 0xcafe, NULL}, NULL, 0 }; + { { 0x06, 0, NULL }, { 0, 0xcafe, NULL }, NULL, 0 }; mbedtls_asn1_named_data head = - { {0x06, 0, NULL}, {0, 0, NULL}, NULL, 0 }; + { { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 }; - if( with_oid ) - ASSERT_ALLOC( head.oid.p, 1 ); - if( with_val ) - ASSERT_ALLOC( head.val.p, 1 ); - if( with_next ) + if (with_oid) { + ASSERT_ALLOC(head.oid.p, 1); + } + if (with_val) { + ASSERT_ALLOC(head.val.p, 1); + } + if (with_next) { head.next = &next; + } - mbedtls_asn1_free_named_data( &head ); - TEST_ASSERT( head.oid.p == NULL ); - TEST_ASSERT( head.val.p == NULL ); - TEST_ASSERT( head.next == NULL ); - TEST_ASSERT( next.val.len == 0xcafe ); + mbedtls_asn1_free_named_data(&head); + TEST_ASSERT(head.oid.p == NULL); + TEST_ASSERT(head.val.p == NULL); + TEST_ASSERT(head.next == NULL); + TEST_ASSERT(next.val.len == 0xcafe); exit: - mbedtls_free( head.oid.p ); - mbedtls_free( head.val.p ); + mbedtls_free(head.oid.p); + mbedtls_free(head.val.p); } /* END_CASE */ /* BEGIN_CASE */ -void free_named_data_list( int length ) +void free_named_data_list(int length) { mbedtls_asn1_named_data *head = NULL; int i; - for( i = 0; i < length; i++ ) - { + for (i = 0; i < length; i++) { mbedtls_asn1_named_data *new = NULL; - ASSERT_ALLOC( new, 1 ); + ASSERT_ALLOC(new, 1); new->next = head; head = new; } - mbedtls_asn1_free_named_data_list( &head ); - TEST_ASSERT( head == NULL ); + mbedtls_asn1_free_named_data_list(&head); + TEST_ASSERT(head == NULL); /* Most of the point of the test is that it doesn't leak memory. * So this test is only really useful under a memory leak detection * framework. */ exit: - mbedtls_asn1_free_named_data_list( &head ); + mbedtls_asn1_free_named_data_list(&head); } /* END_CASE */ diff --git a/tests/suites/test_suite_asn1write.function b/tests/suites/test_suite_asn1write.function index 4ed8644f0..ce0d0f388 100644 --- a/tests/suites/test_suite_asn1write.function +++ b/tests/suites/test_suite_asn1write.function @@ -4,8 +4,7 @@ #define GUARD_LEN 4 #define GUARD_VAL 0x2a -typedef struct -{ +typedef struct { unsigned char *output; unsigned char *start; unsigned char *end; @@ -13,41 +12,38 @@ typedef struct size_t size; } generic_write_data_t; -int generic_write_start_step( generic_write_data_t *data ) +int generic_write_start_step(generic_write_data_t *data) { - mbedtls_test_set_step( data->size ); - mbedtls_free( data->output ); + mbedtls_test_set_step(data->size); + mbedtls_free(data->output); data->output = NULL; - ASSERT_ALLOC( data->output, data->size == 0 ? 1 : data->size ); + ASSERT_ALLOC(data->output, data->size == 0 ? 1 : data->size); data->end = data->output + data->size; data->p = data->end; data->start = data->end - data->size; - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } -int generic_write_finish_step( generic_write_data_t *data, - const data_t *expected, int ret ) +int generic_write_finish_step(generic_write_data_t *data, + const data_t *expected, int ret) { int ok = 0; - if( data->size < expected->len ) - { - TEST_EQUAL( ret, MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); - } - else - { - TEST_EQUAL( ret, data->end - data->p ); - TEST_ASSERT( data->p >= data->start ); - TEST_ASSERT( data->p <= data->end ); - ASSERT_COMPARE( data->p, (size_t)( data->end - data->p ), - expected->x, expected->len ); + if (data->size < expected->len) { + TEST_EQUAL(ret, MBEDTLS_ERR_ASN1_BUF_TOO_SMALL); + } else { + TEST_EQUAL(ret, data->end - data->p); + TEST_ASSERT(data->p >= data->start); + TEST_ASSERT(data->p <= data->end); + ASSERT_COMPARE(data->p, (size_t) (data->end - data->p), + expected->x, expected->len); } ok = 1; exit: - return( ok ); + return ok; } /* END_HEADER */ @@ -58,206 +54,209 @@ exit: */ /* BEGIN_CASE */ -void mbedtls_asn1_write_null( data_t *expected ) +void mbedtls_asn1_write_null(data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = mbedtls_asn1_write_null( &data.p, data.start ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = mbedtls_asn1_write_null(&data.p, data.start); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } /* There's no parsing function for NULL. */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_asn1_write_bool( int val, data_t *expected ) +void mbedtls_asn1_write_bool(int val, data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = mbedtls_asn1_write_bool( &data.p, data.start, val ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = mbedtls_asn1_write_bool(&data.p, data.start, val); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) - if( ret >= 0 ) - { + if (ret >= 0) { int read = 0xdeadbeef; - TEST_EQUAL( mbedtls_asn1_get_bool( &data.p, data.end, &read ), 0 ); - TEST_EQUAL( val, read ); + TEST_EQUAL(mbedtls_asn1_get_bool(&data.p, data.end, &read), 0); + TEST_EQUAL(val, read); } #endif /* MBEDTLS_ASN1_PARSE_C */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_asn1_write_int( int val, data_t *expected ) +void mbedtls_asn1_write_int(int val, data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = mbedtls_asn1_write_int( &data.p, data.start, val ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = mbedtls_asn1_write_int(&data.p, data.start, val); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) - if( ret >= 0 ) - { + if (ret >= 0) { int read = 0xdeadbeef; - TEST_EQUAL( mbedtls_asn1_get_int( &data.p, data.end, &read ), 0 ); - TEST_EQUAL( val, read ); + TEST_EQUAL(mbedtls_asn1_get_int(&data.p, data.end, &read), 0); + TEST_EQUAL(val, read); } #endif /* MBEDTLS_ASN1_PARSE_C */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_asn1_write_enum( int val, data_t *expected ) +void mbedtls_asn1_write_enum(int val, data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = mbedtls_asn1_write_enum( &data.p, data.start, val ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = mbedtls_asn1_write_enum(&data.p, data.start, val); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) - if( ret >= 0 ) - { + if (ret >= 0) { int read = 0xdeadbeef; - TEST_EQUAL( mbedtls_asn1_get_enum( &data.p, data.end, &read ), 0 ); - TEST_EQUAL( val, read ); + TEST_EQUAL(mbedtls_asn1_get_enum(&data.p, data.end, &read), 0); + TEST_EQUAL(val, read); } #endif /* MBEDTLS_ASN1_PARSE_C */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */ -void mbedtls_asn1_write_mpi( data_t *val, data_t *expected ) +void mbedtls_asn1_write_mpi(data_t *val, data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; mbedtls_mpi mpi, read; int ret; - mbedtls_mpi_init( &mpi ); - mbedtls_mpi_init( &read ); - TEST_ASSERT( mbedtls_mpi_read_binary( &mpi, val->x, val->len ) == 0 ); + mbedtls_mpi_init(&mpi); + mbedtls_mpi_init(&read); + TEST_ASSERT(mbedtls_mpi_read_binary(&mpi, val->x, val->len) == 0); - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = mbedtls_asn1_write_mpi( &data.p, data.start, &mpi ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = mbedtls_asn1_write_mpi(&data.p, data.start, &mpi); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) - if( ret >= 0 ) - { - TEST_EQUAL( mbedtls_asn1_get_mpi( &data.p, data.end, &read ), 0 ); - TEST_EQUAL( 0, mbedtls_mpi_cmp_mpi( &mpi, &read ) ); + if (ret >= 0) { + TEST_EQUAL(mbedtls_asn1_get_mpi(&data.p, data.end, &read), 0); + TEST_EQUAL(0, mbedtls_mpi_cmp_mpi(&mpi, &read)); } #endif /* MBEDTLS_ASN1_PARSE_C */ /* Skip some intermediate lengths, they're boring. */ - if( expected->len > 10 && data.size == 8 ) + if (expected->len > 10 && data.size == 8) { data.size = expected->len - 2; + } } exit: - mbedtls_mpi_free( &mpi ); - mbedtls_mpi_free( &read ); - mbedtls_free( data.output ); + mbedtls_mpi_free(&mpi); + mbedtls_mpi_free(&read); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_asn1_write_string( int tag, data_t *content, data_t *expected ) +void mbedtls_asn1_write_string(int tag, data_t *content, data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - switch( tag ) - { + } + switch (tag) { case MBEDTLS_ASN1_OCTET_STRING: ret = mbedtls_asn1_write_octet_string( - &data.p, data.start, content->x, content->len ); + &data.p, data.start, content->x, content->len); break; case MBEDTLS_ASN1_OID: ret = mbedtls_asn1_write_oid( &data.p, data.start, - (const char *) content->x, content->len ); + (const char *) content->x, content->len); break; case MBEDTLS_ASN1_UTF8_STRING: ret = mbedtls_asn1_write_utf8_string( &data.p, data.start, - (const char *) content->x, content->len ); + (const char *) content->x, content->len); break; case MBEDTLS_ASN1_PRINTABLE_STRING: ret = mbedtls_asn1_write_printable_string( &data.p, data.start, - (const char *) content->x, content->len ); + (const char *) content->x, content->len); break; case MBEDTLS_ASN1_IA5_STRING: ret = mbedtls_asn1_write_ia5_string( &data.p, data.start, - (const char *) content->x, content->len ); + (const char *) content->x, content->len); break; default: ret = mbedtls_asn1_write_tagged_string( &data.p, data.start, tag, - (const char *) content->x, content->len ); + (const char *) content->x, content->len); } - if( ! generic_write_finish_step( &data, expected, ret ) ) + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } /* There's no parsing function for octet or character strings. */ /* Skip some intermediate lengths, they're boring. */ - if( expected->len > 10 && data.size == 8 ) + if (expected->len > 10 && data.size == 8) { data.size = expected->len - 2; + } } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_asn1_write_algorithm_identifier( data_t *oid, - int par_len, - data_t *expected ) +void mbedtls_asn1_write_algorithm_identifier(data_t *oid, + int par_len, + data_t *expected) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; @@ -265,29 +264,30 @@ void mbedtls_asn1_write_algorithm_identifier( data_t *oid, unsigned char *buf_complete = NULL; #endif /* MBEDTLS_ASN1_PARSE_C */ - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; + } ret = mbedtls_asn1_write_algorithm_identifier( &data.p, data.start, - (const char *) oid->x, oid->len, par_len ); + (const char *) oid->x, oid->len, par_len); /* If params_len != 0, mbedtls_asn1_write_algorithm_identifier() * assumes that the parameters are already present in the buffer * and returns a length that accounts for this, but our test * data omits the parameters. */ - if( ret >= 0 ) + if (ret >= 0) { ret -= par_len; - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) /* Only do a parse-back test if the parameters aren't too large for * a small-heap environment. The boundary is somewhat arbitrary. */ - if( ret >= 0 && par_len <= 1234 ) - { - mbedtls_asn1_buf alg = {0, 0, NULL}; - mbedtls_asn1_buf params = {0, 0, NULL}; + if (ret >= 0 && par_len <= 1234) { + mbedtls_asn1_buf alg = { 0, 0, NULL }; + mbedtls_asn1_buf params = { 0, 0, NULL }; /* The writing function doesn't write the parameters unless * they're null: it only takes their length as input. But the * parsing function requires the parameters to be present. @@ -296,59 +296,52 @@ void mbedtls_asn1_write_algorithm_identifier( data_t *oid, size_t len_complete = data_len + par_len; unsigned char expected_params_tag; size_t expected_params_len; - ASSERT_ALLOC( buf_complete, len_complete ); + ASSERT_ALLOC(buf_complete, len_complete); unsigned char *end_complete = buf_complete + len_complete; - memcpy( buf_complete, data.p, data_len ); - if( par_len == 0 ) - { + memcpy(buf_complete, data.p, data_len); + if (par_len == 0) { /* mbedtls_asn1_write_algorithm_identifier() wrote a NULL */ expected_params_tag = 0x05; expected_params_len = 0; - } - else if( par_len >= 2 && par_len < 2 + 128 ) - { + } else if (par_len >= 2 && par_len < 2 + 128) { /* Write an OCTET STRING with a short length encoding */ expected_params_tag = buf_complete[data_len] = 0x04; expected_params_len = par_len - 2; buf_complete[data_len + 1] = (unsigned char) expected_params_len; - } - else if( par_len >= 4 + 128 && par_len < 3 + 256 * 256 ) - { + } else if (par_len >= 4 + 128 && par_len < 3 + 256 * 256) { /* Write an OCTET STRING with a two-byte length encoding */ expected_params_tag = buf_complete[data_len] = 0x04; expected_params_len = par_len - 4; buf_complete[data_len + 1] = 0x82; - buf_complete[data_len + 2] = (unsigned char) ( expected_params_len >> 8 ); - buf_complete[data_len + 3] = (unsigned char) ( expected_params_len ); - } - else - { - TEST_ASSERT( ! "Bad test data: invalid length of ASN.1 element" ); + buf_complete[data_len + 2] = (unsigned char) (expected_params_len >> 8); + buf_complete[data_len + 3] = (unsigned char) (expected_params_len); + } else { + TEST_ASSERT(!"Bad test data: invalid length of ASN.1 element"); } unsigned char *p = buf_complete; - TEST_EQUAL( mbedtls_asn1_get_alg( &p, end_complete, - &alg, ¶ms ), 0 ); - TEST_EQUAL( alg.tag, MBEDTLS_ASN1_OID ); - ASSERT_COMPARE( alg.p, alg.len, oid->x, oid->len ); - TEST_EQUAL( params.tag, expected_params_tag ); - TEST_EQUAL( params.len, expected_params_len ); - mbedtls_free( buf_complete ); + TEST_EQUAL(mbedtls_asn1_get_alg(&p, end_complete, + &alg, ¶ms), 0); + TEST_EQUAL(alg.tag, MBEDTLS_ASN1_OID); + ASSERT_COMPARE(alg.p, alg.len, oid->x, oid->len); + TEST_EQUAL(params.tag, expected_params_tag); + TEST_EQUAL(params.len, expected_params_len); + mbedtls_free(buf_complete); buf_complete = NULL; } #endif /* MBEDTLS_ASN1_PARSE_C */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); #if defined(MBEDTLS_ASN1_PARSE_C) - mbedtls_free( buf_complete ); + mbedtls_free(buf_complete); #endif /* MBEDTLS_ASN1_PARSE_C */ } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */ -void mbedtls_asn1_write_len( int len, data_t * asn1, int buf_len, - int result ) +void mbedtls_asn1_write_len(int len, data_t *asn1, int buf_len, + int result) { int ret; unsigned char buf[150]; @@ -356,260 +349,253 @@ void mbedtls_asn1_write_len( int len, data_t * asn1, int buf_len, size_t i; size_t read_len; - memset( buf, GUARD_VAL, sizeof( buf ) ); + memset(buf, GUARD_VAL, sizeof(buf)); p = buf + GUARD_LEN + buf_len; - ret = mbedtls_asn1_write_len( &p, buf + GUARD_LEN, (size_t) len ); + ret = mbedtls_asn1_write_len(&p, buf + GUARD_LEN, (size_t) len); - TEST_ASSERT( ret == result ); + TEST_ASSERT(ret == result); /* Check for buffer overwrite on both sides */ - for( i = 0; i < GUARD_LEN; i++ ) - { - TEST_ASSERT( buf[i] == GUARD_VAL ); - TEST_ASSERT( buf[GUARD_LEN + buf_len + i] == GUARD_VAL ); + for (i = 0; i < GUARD_LEN; i++) { + TEST_ASSERT(buf[i] == GUARD_VAL); + TEST_ASSERT(buf[GUARD_LEN + buf_len + i] == GUARD_VAL); } - if( result >= 0 ) - { - TEST_ASSERT( p + asn1->len == buf + GUARD_LEN + buf_len ); + if (result >= 0) { + TEST_ASSERT(p + asn1->len == buf + GUARD_LEN + buf_len); - TEST_ASSERT( memcmp( p, asn1->x, asn1->len ) == 0 ); + TEST_ASSERT(memcmp(p, asn1->x, asn1->len) == 0); /* Read back with mbedtls_asn1_get_len() to check */ - ret = mbedtls_asn1_get_len( &p, buf + GUARD_LEN + buf_len, &read_len ); + ret = mbedtls_asn1_get_len(&p, buf + GUARD_LEN + buf_len, &read_len); - if( len == 0 ) - { - TEST_ASSERT( ret == 0 ); - } - else - { + if (len == 0) { + TEST_ASSERT(ret == 0); + } else { /* Return will be MBEDTLS_ERR_ASN1_OUT_OF_DATA because the rest of * the buffer is missing */ - TEST_ASSERT( ret == MBEDTLS_ERR_ASN1_OUT_OF_DATA ); + TEST_ASSERT(ret == MBEDTLS_ERR_ASN1_OUT_OF_DATA); } - TEST_ASSERT( read_len == (size_t) len ); - TEST_ASSERT( p == buf + GUARD_LEN + buf_len ); + TEST_ASSERT(read_len == (size_t) len); + TEST_ASSERT(p == buf + GUARD_LEN + buf_len); } } /* END_CASE */ /* BEGIN_CASE */ -void test_asn1_write_bitstrings( data_t *bitstring, int bits, - data_t *expected, int is_named ) +void test_asn1_write_bitstrings(data_t *bitstring, int bits, + data_t *expected, int is_named) { generic_write_data_t data = { NULL, NULL, NULL, NULL, 0 }; int ret; - int ( *func )( unsigned char **p, const unsigned char *start, - const unsigned char *buf, size_t bits ) = - ( is_named ? mbedtls_asn1_write_named_bitstring : - mbedtls_asn1_write_bitstring ); + int (*func)(unsigned char **p, const unsigned char *start, + const unsigned char *buf, size_t bits) = + (is_named ? mbedtls_asn1_write_named_bitstring : + mbedtls_asn1_write_bitstring); #if defined(MBEDTLS_ASN1_PARSE_C) unsigned char *masked_bitstring = NULL; #endif /* MBEDTLS_ASN1_PARSE_C */ /* The API expects `bitstring->x` to contain `bits` bits. */ - size_t byte_length = ( bits + 7 ) / 8; - TEST_ASSERT( bitstring->len >= byte_length ); + size_t byte_length = (bits + 7) / 8; + TEST_ASSERT(bitstring->len >= byte_length); #if defined(MBEDTLS_ASN1_PARSE_C) - ASSERT_ALLOC( masked_bitstring, byte_length ); - if( byte_length != 0 ) - { - memcpy( masked_bitstring, bitstring->x, byte_length ); - if( bits % 8 != 0 ) - masked_bitstring[byte_length - 1] &= ~( 0xff >> ( bits % 8 ) ); + ASSERT_ALLOC(masked_bitstring, byte_length); + if (byte_length != 0) { + memcpy(masked_bitstring, bitstring->x, byte_length); + if (bits % 8 != 0) { + masked_bitstring[byte_length - 1] &= ~(0xff >> (bits % 8)); + } } size_t value_bits = bits; - if( is_named ) - { + if (is_named) { /* In a named bit string, all trailing 0 bits are removed. */ - while( byte_length > 0 && masked_bitstring[byte_length - 1] == 0 ) + while (byte_length > 0 && masked_bitstring[byte_length - 1] == 0) { --byte_length; + } value_bits = 8 * byte_length; - if( byte_length > 0 ) - { + if (byte_length > 0) { unsigned char last_byte = masked_bitstring[byte_length - 1]; - for( unsigned b = 1; b < 0xff && ( last_byte & b ) == 0; b <<= 1 ) + for (unsigned b = 1; b < 0xff && (last_byte & b) == 0; b <<= 1) { --value_bits; + } } } #endif /* MBEDTLS_ASN1_PARSE_C */ - for( data.size = 0; data.size <= expected->len + 1; data.size++ ) - { - if( ! generic_write_start_step( &data ) ) + for (data.size = 0; data.size <= expected->len + 1; data.size++) { + if (!generic_write_start_step(&data)) { goto exit; - ret = ( *func )( &data.p, data.start, bitstring->x, bits ); - if( ! generic_write_finish_step( &data, expected, ret ) ) + } + ret = (*func)(&data.p, data.start, bitstring->x, bits); + if (!generic_write_finish_step(&data, expected, ret)) { goto exit; + } #if defined(MBEDTLS_ASN1_PARSE_C) - if( ret >= 0 ) - { - mbedtls_asn1_bitstring read = {0, 0, NULL}; - TEST_EQUAL( mbedtls_asn1_get_bitstring( &data.p, data.end, - &read ), 0 ); - ASSERT_COMPARE( read.p, read.len, - masked_bitstring, byte_length ); - TEST_EQUAL( read.unused_bits, 8 * byte_length - value_bits ); + if (ret >= 0) { + mbedtls_asn1_bitstring read = { 0, 0, NULL }; + TEST_EQUAL(mbedtls_asn1_get_bitstring(&data.p, data.end, + &read), 0); + ASSERT_COMPARE(read.p, read.len, + masked_bitstring, byte_length); + TEST_EQUAL(read.unused_bits, 8 * byte_length - value_bits); } #endif /* MBEDTLS_ASN1_PARSE_C */ } exit: - mbedtls_free( data.output ); + mbedtls_free(data.output); #if defined(MBEDTLS_ASN1_PARSE_C) - mbedtls_free( masked_bitstring ); + mbedtls_free(masked_bitstring); #endif /* MBEDTLS_ASN1_PARSE_C */ } /* END_CASE */ /* BEGIN_CASE */ -void store_named_data_find( data_t *oid0, data_t *oid1, - data_t *oid2, data_t *oid3, - data_t *needle, int from, int position ) +void store_named_data_find(data_t *oid0, data_t *oid1, + data_t *oid2, data_t *oid3, + data_t *needle, int from, int position) { - data_t *oid[4] = {oid0, oid1, oid2, oid3}; - mbedtls_asn1_named_data nd[] ={ - { {0x06, 0, NULL}, {0, 0, NULL}, NULL, 0 }, - { {0x06, 0, NULL}, {0, 0, NULL}, NULL, 0 }, - { {0x06, 0, NULL}, {0, 0, NULL}, NULL, 0 }, - { {0x06, 0, NULL}, {0, 0, NULL}, NULL, 0 }, + data_t *oid[4] = { oid0, oid1, oid2, oid3 }; + mbedtls_asn1_named_data nd[] = { + { { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 }, + { { 0x06, 0, NULL }, { 0, 0, NULL }, NULL, 0 }, }; - mbedtls_asn1_named_data *pointers[ARRAY_LENGTH( nd ) + 1]; + mbedtls_asn1_named_data *pointers[ARRAY_LENGTH(nd) + 1]; size_t i; mbedtls_asn1_named_data *head = NULL; mbedtls_asn1_named_data *found = NULL; - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) + for (i = 0; i < ARRAY_LENGTH(nd); i++) { pointers[i] = &nd[i]; - pointers[ARRAY_LENGTH( nd )] = NULL; - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) - { - ASSERT_ALLOC( nd[i].oid.p, oid[i]->len ); - memcpy( nd[i].oid.p, oid[i]->x, oid[i]->len ); + } + pointers[ARRAY_LENGTH(nd)] = NULL; + for (i = 0; i < ARRAY_LENGTH(nd); i++) { + ASSERT_ALLOC(nd[i].oid.p, oid[i]->len); + memcpy(nd[i].oid.p, oid[i]->x, oid[i]->len); nd[i].oid.len = oid[i]->len; nd[i].next = pointers[i+1]; } head = pointers[from]; - found = mbedtls_asn1_store_named_data( &head, - (const char *) needle->x, - needle->len, - NULL, 0 ); + found = mbedtls_asn1_store_named_data(&head, + (const char *) needle->x, + needle->len, + NULL, 0); /* In any case, the existing list structure must be unchanged. */ - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) - TEST_ASSERT( nd[i].next == pointers[i+1] ); - - if( position >= 0 ) - { - /* position should have been found and modified. */ - TEST_ASSERT( head == pointers[from] ); - TEST_ASSERT( found == pointers[position] ); + for (i = 0; i < ARRAY_LENGTH(nd); i++) { + TEST_ASSERT(nd[i].next == pointers[i+1]); } - else - { + + if (position >= 0) { + /* position should have been found and modified. */ + TEST_ASSERT(head == pointers[from]); + TEST_ASSERT(found == pointers[position]); + } else { /* A new entry should have been created. */ - TEST_ASSERT( found == head ); - TEST_ASSERT( head->next == pointers[from] ); - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) - TEST_ASSERT( found != &nd[i] ); + TEST_ASSERT(found == head); + TEST_ASSERT(head->next == pointers[from]); + for (i = 0; i < ARRAY_LENGTH(nd); i++) { + TEST_ASSERT(found != &nd[i]); + } } exit: - if( found != NULL && found == head && found != pointers[from] ) - { - mbedtls_free( found->oid.p ); - mbedtls_free( found ); + if (found != NULL && found == head && found != pointers[from]) { + mbedtls_free(found->oid.p); + mbedtls_free(found); + } + for (i = 0; i < ARRAY_LENGTH(nd); i++) { + mbedtls_free(nd[i].oid.p); } - for( i = 0; i < ARRAY_LENGTH( nd ); i++ ) - mbedtls_free( nd[i].oid.p ); } /* END_CASE */ /* BEGIN_CASE */ -void store_named_data_val_found( int old_len, int new_len ) +void store_named_data_val_found(int old_len, int new_len) { mbedtls_asn1_named_data nd = - { {0x06, 3, (unsigned char *) "OID"}, {0, 0, NULL}, NULL, 0 }; + { { 0x06, 3, (unsigned char *) "OID" }, { 0, 0, NULL }, NULL, 0 }; mbedtls_asn1_named_data *head = &nd; mbedtls_asn1_named_data *found = NULL; unsigned char *old_val = NULL; unsigned char *new_val = (unsigned char *) "new value"; - if( old_len != 0 ) - { - ASSERT_ALLOC( nd.val.p, (size_t) old_len ); + if (old_len != 0) { + ASSERT_ALLOC(nd.val.p, (size_t) old_len); old_val = nd.val.p; nd.val.len = old_len; - memset( old_val, 'x', old_len ); + memset(old_val, 'x', old_len); } - if( new_len <= 0 ) - { - new_len = - new_len; + if (new_len <= 0) { + new_len = -new_len; new_val = NULL; } - found = mbedtls_asn1_store_named_data( &head, "OID", 3, - new_val, new_len ); - TEST_ASSERT( head == &nd ); - TEST_ASSERT( found == head ); + found = mbedtls_asn1_store_named_data(&head, "OID", 3, + new_val, new_len); + TEST_ASSERT(head == &nd); + TEST_ASSERT(found == head); - if( new_val != NULL) - ASSERT_COMPARE( found->val.p, found->val.len, - new_val, (size_t) new_len ); - if( new_len == 0) - TEST_ASSERT( found->val.p == NULL ); - else if( new_len == old_len ) - TEST_ASSERT( found->val.p == old_val ); - else - TEST_ASSERT( found->val.p != old_val ); + if (new_val != NULL) { + ASSERT_COMPARE(found->val.p, found->val.len, + new_val, (size_t) new_len); + } + if (new_len == 0) { + TEST_ASSERT(found->val.p == NULL); + } else if (new_len == old_len) { + TEST_ASSERT(found->val.p == old_val); + } else { + TEST_ASSERT(found->val.p != old_val); + } exit: - mbedtls_free( nd.val.p ); + mbedtls_free(nd.val.p); } /* END_CASE */ /* BEGIN_CASE */ -void store_named_data_val_new( int new_len, int set_new_val ) +void store_named_data_val_new(int new_len, int set_new_val) { mbedtls_asn1_named_data *head = NULL; mbedtls_asn1_named_data *found = NULL; const unsigned char *oid = (unsigned char *) "OID"; - size_t oid_len = strlen( (const char *) oid ); + size_t oid_len = strlen((const char *) oid); const unsigned char *new_val = (unsigned char *) "new value"; - if( set_new_val == 0 ) + if (set_new_val == 0) { new_val = NULL; + } - found = mbedtls_asn1_store_named_data( &head, - (const char *) oid, oid_len, - new_val, (size_t) new_len ); - TEST_ASSERT( found != NULL ); - TEST_ASSERT( found == head ); - TEST_ASSERT( found->oid.p != oid ); - ASSERT_COMPARE( found->oid.p, found->oid.len, oid, oid_len ); - if( new_len == 0 ) - TEST_ASSERT( found->val.p == NULL ); - else if( new_val == NULL ) - TEST_ASSERT( found->val.p != NULL ); - else - { - TEST_ASSERT( found->val.p != new_val ); - ASSERT_COMPARE( found->val.p, found->val.len, - new_val, (size_t) new_len ); + found = mbedtls_asn1_store_named_data(&head, + (const char *) oid, oid_len, + new_val, (size_t) new_len); + TEST_ASSERT(found != NULL); + TEST_ASSERT(found == head); + TEST_ASSERT(found->oid.p != oid); + ASSERT_COMPARE(found->oid.p, found->oid.len, oid, oid_len); + if (new_len == 0) { + TEST_ASSERT(found->val.p == NULL); + } else if (new_val == NULL) { + TEST_ASSERT(found->val.p != NULL); + } else { + TEST_ASSERT(found->val.p != new_val); + ASSERT_COMPARE(found->val.p, found->val.len, + new_val, (size_t) new_len); } exit: - if( found != NULL ) - { - mbedtls_free( found->oid.p ); - mbedtls_free( found->val.p ); + if (found != NULL) { + mbedtls_free(found->oid.p); + mbedtls_free(found->val.p); } - mbedtls_free( found ); + mbedtls_free(found); } /* END_CASE */ diff --git a/tests/suites/test_suite_base64.function b/tests/suites/test_suite_base64.function index 7baa3d501..ce6bd42b7 100644 --- a/tests/suites/test_suite_base64.function +++ b/tests/suites/test_suite_base64.function @@ -17,67 +17,66 @@ static const char base64_digits[] = */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ -void mask_of_range( int low_arg, int high_arg ) +void mask_of_range(int low_arg, int high_arg) { unsigned char low = low_arg, high = high_arg; unsigned c; - for( c = 0; c <= 0xff; c++ ) - { - mbedtls_test_set_step( c ); - TEST_CF_SECRET( &c, sizeof( c ) ); - unsigned char m = mbedtls_ct_uchar_mask_of_range( low, high, c ); - TEST_CF_PUBLIC( &c, sizeof( c ) ); - TEST_CF_PUBLIC( &m, sizeof( m ) ); - if( low <= c && c <= high ) - TEST_EQUAL( m, 0xff ); - else - TEST_EQUAL( m, 0 ); + for (c = 0; c <= 0xff; c++) { + mbedtls_test_set_step(c); + TEST_CF_SECRET(&c, sizeof(c)); + unsigned char m = mbedtls_ct_uchar_mask_of_range(low, high, c); + TEST_CF_PUBLIC(&c, sizeof(c)); + TEST_CF_PUBLIC(&m, sizeof(m)); + if (low <= c && c <= high) { + TEST_EQUAL(m, 0xff); + } else { + TEST_EQUAL(m, 0); + } } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ -void enc_chars( ) +void enc_chars() { - for( unsigned value = 0; value < 64; value++ ) - { - mbedtls_test_set_step( value ); - TEST_CF_SECRET( &value, sizeof( value ) ); - unsigned char digit = mbedtls_ct_base64_enc_char( value ); - TEST_CF_PUBLIC( &value, sizeof( value ) ); - TEST_CF_PUBLIC( &digit, sizeof( digit ) ); - TEST_EQUAL( digit, base64_digits[value] ); + for (unsigned value = 0; value < 64; value++) { + mbedtls_test_set_step(value); + TEST_CF_SECRET(&value, sizeof(value)); + unsigned char digit = mbedtls_ct_base64_enc_char(value); + TEST_CF_PUBLIC(&value, sizeof(value)); + TEST_CF_PUBLIC(&digit, sizeof(digit)); + TEST_EQUAL(digit, base64_digits[value]); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ -void dec_chars( ) +void dec_chars() { char *p; signed char expected; - for( unsigned c = 0; c <= 0xff; c++ ) - { - mbedtls_test_set_step( c ); + for (unsigned c = 0; c <= 0xff; c++) { + mbedtls_test_set_step(c); /* base64_digits is 0-terminated. sizeof()-1 excludes the trailing 0. */ - p = memchr( base64_digits, c, sizeof( base64_digits ) - 1 ); - if( p == NULL ) + p = memchr(base64_digits, c, sizeof(base64_digits) - 1); + if (p == NULL) { expected = -1; - else + } else { expected = p - base64_digits; - TEST_CF_SECRET( &c, sizeof( c ) ); - signed char actual = mbedtls_ct_base64_dec_value( c ); - TEST_CF_PUBLIC( &c, sizeof( c ) ); - TEST_CF_PUBLIC( &actual, sizeof( actual ) ); - TEST_EQUAL( actual, expected ); + } + TEST_CF_SECRET(&c, sizeof(c)); + signed char actual = mbedtls_ct_base64_dec_value(c); + TEST_CF_PUBLIC(&c, sizeof(c)); + TEST_CF_PUBLIC(&actual, sizeof(actual)); + TEST_EQUAL(actual, expected); } } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_base64_encode( char * src_string, char * dst_string, - int dst_buf_size, int result ) +void mbedtls_base64_encode(char *src_string, char *dst_string, + int dst_buf_size, int result) { unsigned char src_str[1000]; unsigned char dst_str[1000]; @@ -86,26 +85,25 @@ void mbedtls_base64_encode( char * src_string, char * dst_string, memset(src_str, 0x00, 1000); memset(dst_str, 0x00, 1000); - strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 ); - src_len = strlen( (char *) src_str ); + strncpy((char *) src_str, src_string, sizeof(src_str) - 1); + src_len = strlen((char *) src_str); - TEST_CF_SECRET( src_str, sizeof( src_str ) ); - TEST_ASSERT( mbedtls_base64_encode( dst_str, dst_buf_size, &len, src_str, src_len) == result ); - TEST_CF_PUBLIC( src_str, sizeof( src_str ) ); + TEST_CF_SECRET(src_str, sizeof(src_str)); + TEST_ASSERT(mbedtls_base64_encode(dst_str, dst_buf_size, &len, src_str, src_len) == result); + TEST_CF_PUBLIC(src_str, sizeof(src_str)); /* dest_str will have had tainted data copied to it, prevent the TEST_ASSERT below from triggering CF failures by unmarking it. */ - TEST_CF_PUBLIC( dst_str, len ); + TEST_CF_PUBLIC(dst_str, len); - if( result == 0 ) - { - TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 ); + if (result == 0) { + TEST_ASSERT(strcmp((char *) dst_str, dst_string) == 0); } } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_base64_decode( char * src_string, char * dst_string, int result ) +void mbedtls_base64_decode(char *src_string, char *dst_string, int result) { unsigned char src_str[1000]; unsigned char dst_str[1000]; @@ -115,77 +113,73 @@ void mbedtls_base64_decode( char * src_string, char * dst_string, int result ) memset(src_str, 0x00, 1000); memset(dst_str, 0x00, 1000); - strncpy( (char *) src_str, src_string, sizeof(src_str) - 1 ); - res = mbedtls_base64_decode( dst_str, sizeof( dst_str ), &len, src_str, strlen( (char *) src_str ) ); - TEST_ASSERT( res == result ); - if( result == 0 ) - { - TEST_ASSERT( strcmp( (char *) dst_str, dst_string ) == 0 ); + strncpy((char *) src_str, src_string, sizeof(src_str) - 1); + res = mbedtls_base64_decode(dst_str, sizeof(dst_str), &len, src_str, strlen((char *) src_str)); + TEST_ASSERT(res == result); + if (result == 0) { + TEST_ASSERT(strcmp((char *) dst_str, dst_string) == 0); } } /* END_CASE */ /* BEGIN_CASE */ -void base64_encode_hex( data_t * src, char * dst, int dst_buf_size, - int result ) +void base64_encode_hex(data_t *src, char *dst, int dst_buf_size, + int result) { unsigned char *res = NULL; size_t len; - res = mbedtls_test_zero_alloc( dst_buf_size ); + res = mbedtls_test_zero_alloc(dst_buf_size); - TEST_CF_SECRET( src->x, src->len ); - TEST_ASSERT( mbedtls_base64_encode( res, dst_buf_size, &len, src->x, src->len ) == result ); - TEST_CF_PUBLIC( src->x, src->len ); + TEST_CF_SECRET(src->x, src->len); + TEST_ASSERT(mbedtls_base64_encode(res, dst_buf_size, &len, src->x, src->len) == result); + TEST_CF_PUBLIC(src->x, src->len); /* res will have had tainted data copied to it, prevent the TEST_ASSERT below from triggering CF failures by unmarking it. */ - TEST_CF_PUBLIC( res, len ); + TEST_CF_PUBLIC(res, len); - if( result == 0 ) - { - TEST_ASSERT( len == strlen( dst ) ); - TEST_ASSERT( memcmp( dst, res, len ) == 0 ); + if (result == 0) { + TEST_ASSERT(len == strlen(dst)); + TEST_ASSERT(memcmp(dst, res, len) == 0); } exit: - mbedtls_free( res ); + mbedtls_free(res); } /* END_CASE */ /* BEGIN_CASE */ -void base64_decode_hex( char * src, data_t * dst, int dst_buf_size, - int result ) +void base64_decode_hex(char *src, data_t *dst, int dst_buf_size, + int result) { unsigned char *res = NULL; size_t len; - res = mbedtls_test_zero_alloc( dst_buf_size ); + res = mbedtls_test_zero_alloc(dst_buf_size); - TEST_ASSERT( mbedtls_base64_decode( res, dst_buf_size, &len, (unsigned char *) src, - strlen( src ) ) == result ); - if( result == 0 ) - { - TEST_ASSERT( len == dst->len ); - TEST_ASSERT( memcmp( dst->x, res, len ) == 0 ); + TEST_ASSERT(mbedtls_base64_decode(res, dst_buf_size, &len, (unsigned char *) src, + strlen(src)) == result); + if (result == 0) { + TEST_ASSERT(len == dst->len); + TEST_ASSERT(memcmp(dst->x, res, len) == 0); } exit: - mbedtls_free( res ); + mbedtls_free(res); } /* END_CASE */ /* BEGIN_CASE */ -void base64_decode_hex_src( data_t * src, char * dst_ref, int result ) +void base64_decode_hex_src(data_t *src, char *dst_ref, int result) { unsigned char dst[1000] = { 0 }; size_t len; - TEST_ASSERT( mbedtls_base64_decode( dst, sizeof( dst ), &len, src->x, src->len ) == result ); - if( result == 0 ) - { - TEST_ASSERT( len == strlen( dst_ref ) ); - TEST_ASSERT( memcmp( dst, dst_ref, len ) == 0 ); + TEST_ASSERT(mbedtls_base64_decode(dst, sizeof(dst), &len, src->x, src->len) == result); + if (result == 0) { + TEST_ASSERT(len == strlen(dst_ref)); + TEST_ASSERT(memcmp(dst, dst_ref, len) == 0); } exit: @@ -194,8 +188,8 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void base64_selftest( ) +void base64_selftest() { - TEST_ASSERT( mbedtls_base64_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_base64_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum.function b/tests/suites/test_suite_bignum.function index 01af2ffc0..cefbfc37f 100644 --- a/tests/suites/test_suite_bignum.function +++ b/tests/suites/test_suite_bignum.function @@ -12,28 +12,27 @@ /* Check the validity of the sign bit in an MPI object. Reject representations * that are not supported by the rest of the library and indicate a bug when * constructing the value. */ -static int sign_is_valid( const mbedtls_mpi *X ) +static int sign_is_valid(const mbedtls_mpi *X) { /* Only +1 and -1 are valid sign bits, not e.g. 0 */ - if( X->s != 1 && X->s != -1 ) - return( 0 ); + if (X->s != 1 && X->s != -1) { + return 0; + } /* The value 0 must be represented with the sign +1. A "negative zero" * with s=-1 is an invalid representation. Forbid that. As an exception, * we sometimes test the robustness of library functions when given * a negative zero input. If a test case has a negative zero as input, * we don't mind if the function has a negative zero output. */ - if( ! mbedtls_test_case_uses_negative_0 && - mbedtls_mpi_bitlen( X ) == 0 && X->s != 1 ) - { - return( 0 ); + if (!mbedtls_test_case_uses_negative_0 && + mbedtls_mpi_bitlen(X) == 0 && X->s != 1) { + return 0; } - return( 1 ); + return 1; } -typedef struct mbedtls_test_mpi_random -{ +typedef struct mbedtls_test_mpi_random { data_t *data; size_t pos; size_t chunk_len; @@ -45,49 +44,49 @@ typedef struct mbedtls_test_mpi_random * test) are stored in the data member of the state structure. Each number is in * the format that mbedtls_mpi_read_string understands and is chunk_len long. */ -int mbedtls_test_mpi_miller_rabin_determinizer( void* state, - unsigned char* buf, - size_t len ) +int mbedtls_test_mpi_miller_rabin_determinizer(void *state, + unsigned char *buf, + size_t len) { - mbedtls_test_mpi_random *random = (mbedtls_test_mpi_random*) state; + mbedtls_test_mpi_random *random = (mbedtls_test_mpi_random *) state; - if( random == NULL || random->data->x == NULL || buf == NULL ) - return( -1 ); - - if( random->pos + random->chunk_len > random->data->len - || random->chunk_len > len ) - { - return( -1 ); + if (random == NULL || random->data->x == NULL || buf == NULL) { + return -1; } - memset( buf, 0, len ); + if (random->pos + random->chunk_len > random->data->len + || random->chunk_len > len) { + return -1; + } + + memset(buf, 0, len); /* The witness is written to the end of the buffer, since the buffer is * used as big endian, unsigned binary data in mbedtls_mpi_read_binary. * Writing the witness to the start of the buffer would result in the * buffer being 'witness 000...000', which would be treated as * witness * 2^n for some n. */ - memcpy( buf + len - random->chunk_len, &random->data->x[random->pos], - random->chunk_len ); + memcpy(buf + len - random->chunk_len, &random->data->x[random->pos], + random->chunk_len); random->pos += random->chunk_len; - return( 0 ); + return 0; } /* Random generator that is told how many bytes to return. */ -static int f_rng_bytes_left( void *state, unsigned char *buf, size_t len ) +static int f_rng_bytes_left(void *state, unsigned char *buf, size_t len) { size_t *bytes_left = state; size_t i; - for( i = 0; i < len; i++ ) - { - if( *bytes_left == 0 ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + for (i = 0; i < len; i++) { + if (*bytes_left == 0) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } buf[i] = *bytes_left & 0xff; - --( *bytes_left ); + --(*bytes_left); } - return( 0 ); + return 0; } /* END_HEADER */ @@ -98,158 +97,156 @@ static int f_rng_bytes_left( void *state, unsigned char *buf, size_t len ) */ /* BEGIN_CASE */ -void mpi_null( ) +void mpi_null() { mbedtls_mpi X, Y, Z; - mbedtls_mpi_init( &X ); - mbedtls_mpi_init( &Y ); - mbedtls_mpi_init( &Z ); + mbedtls_mpi_init(&X); + mbedtls_mpi_init(&Y); + mbedtls_mpi_init(&Z); - TEST_ASSERT( mbedtls_mpi_get_bit( &X, 42 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_lsb( &X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_bitlen( &X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_size( &X ) == 0 ); + TEST_ASSERT(mbedtls_mpi_get_bit(&X, 42) == 0); + TEST_ASSERT(mbedtls_mpi_lsb(&X) == 0); + TEST_ASSERT(mbedtls_mpi_bitlen(&X) == 0); + TEST_ASSERT(mbedtls_mpi_size(&X) == 0); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_read_write_string( int radix_X, char * input_X, int radix_A, - char * input_A, int output_size, int result_read, - int result_write ) +void mpi_read_write_string(int radix_X, char *input_X, int radix_A, + char *input_A, int output_size, int result_read, + int result_write) { mbedtls_mpi X; char str[1000]; size_t len; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - memset( str, '!', sizeof( str ) ); + memset(str, '!', sizeof(str)); - TEST_ASSERT( mbedtls_mpi_read_string( &X, radix_X, input_X ) == result_read ); - if( result_read == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_write_string( &X, radix_A, str, output_size, &len ) == result_write ); - if( result_write == 0 ) - { - TEST_ASSERT( strcasecmp( str, input_A ) == 0 ); - TEST_ASSERT( str[len] == '!' ); + TEST_ASSERT(mbedtls_mpi_read_string(&X, radix_X, input_X) == result_read); + if (result_read == 0) { + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_write_string(&X, radix_A, str, output_size, &len) == result_write); + if (result_write == 0) { + TEST_ASSERT(strcasecmp(str, input_A) == 0); + TEST_ASSERT(str[len] == '!'); } } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_read_binary( data_t * buf, char * input_A ) +void mpi_read_binary(data_t *buf, char *input_A) { mbedtls_mpi X; char str[1000]; size_t len; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_mpi_read_binary( &X, buf->x, buf->len ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_write_string( &X, 16, str, sizeof( str ), &len ) == 0 ); - TEST_ASSERT( strcmp( (char *) str, input_A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&X, buf->x, buf->len) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_write_string(&X, 16, str, sizeof(str), &len) == 0); + TEST_ASSERT(strcmp((char *) str, input_A) == 0); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_read_binary_le( data_t * buf, char * input_A ) +void mpi_read_binary_le(data_t *buf, char *input_A) { mbedtls_mpi X; char str[1000]; size_t len; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_mpi_read_binary_le( &X, buf->x, buf->len ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_write_string( &X, 16, str, sizeof( str ), &len ) == 0 ); - TEST_ASSERT( strcmp( (char *) str, input_A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary_le(&X, buf->x, buf->len) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_write_string(&X, 16, str, sizeof(str), &len) == 0); + TEST_ASSERT(strcmp((char *) str, input_A) == 0); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_write_binary( char * input_X, data_t * input_A, - int output_size, int result ) +void mpi_write_binary(char *input_X, data_t *input_A, + int output_size, int result) { mbedtls_mpi X; unsigned char buf[1000]; size_t buflen; - memset( buf, 0x00, 1000 ); + memset(buf, 0x00, 1000); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); - buflen = mbedtls_mpi_size( &X ); - if( buflen > (size_t) output_size ) + buflen = mbedtls_mpi_size(&X); + if (buflen > (size_t) output_size) { buflen = (size_t) output_size; + } - TEST_ASSERT( mbedtls_mpi_write_binary( &X, buf, buflen ) == result ); - if( result == 0) - { + TEST_ASSERT(mbedtls_mpi_write_binary(&X, buf, buflen) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( buf, input_A->x, - buflen, input_A->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(buf, input_A->x, + buflen, input_A->len) == 0); } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_write_binary_le( char * input_X, data_t * input_A, - int output_size, int result ) +void mpi_write_binary_le(char *input_X, data_t *input_A, + int output_size, int result) { mbedtls_mpi X; unsigned char buf[1000]; size_t buflen; - memset( buf, 0x00, 1000 ); + memset(buf, 0x00, 1000); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); - buflen = mbedtls_mpi_size( &X ); - if( buflen > (size_t) output_size ) + buflen = mbedtls_mpi_size(&X); + if (buflen > (size_t) output_size) { buflen = (size_t) output_size; + } - TEST_ASSERT( mbedtls_mpi_write_binary_le( &X, buf, buflen ) == result ); - if( result == 0) - { + TEST_ASSERT(mbedtls_mpi_write_binary_le(&X, buf, buflen) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( buf, input_A->x, - buflen, input_A->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(buf, input_A->x, + buflen, input_A->len) == 0); } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void mpi_read_file( char * input_file, data_t * input_A, int result ) +void mpi_read_file(char *input_file, data_t *input_A, int result) { mbedtls_mpi X; unsigned char buf[1000]; @@ -257,678 +254,677 @@ void mpi_read_file( char * input_file, data_t * input_A, int result ) FILE *file; int ret; - memset( buf, 0x00, 1000 ); + memset(buf, 0x00, 1000); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - file = fopen( input_file, "r" ); - TEST_ASSERT( file != NULL ); - ret = mbedtls_mpi_read_file( &X, 16, file ); + file = fopen(input_file, "r"); + TEST_ASSERT(file != NULL); + ret = mbedtls_mpi_read_file(&X, 16, file); fclose(file); - TEST_ASSERT( ret == result ); + TEST_ASSERT(ret == result); - if( result == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - buflen = mbedtls_mpi_size( &X ); - TEST_ASSERT( mbedtls_mpi_write_binary( &X, buf, buflen ) == 0 ); + if (result == 0) { + TEST_ASSERT(sign_is_valid(&X)); + buflen = mbedtls_mpi_size(&X); + TEST_ASSERT(mbedtls_mpi_write_binary(&X, buf, buflen) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( buf, input_A->x, - buflen, input_A->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(buf, input_A->x, + buflen, input_A->len) == 0); } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void mpi_write_file( char * input_X, char * output_file ) +void mpi_write_file(char *input_X, char *output_file) { mbedtls_mpi X, Y; FILE *file_out, *file_in; int ret; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); - file_out = fopen( output_file, "w" ); - TEST_ASSERT( file_out != NULL ); - ret = mbedtls_mpi_write_file( NULL, &X, 16, file_out ); + file_out = fopen(output_file, "w"); + TEST_ASSERT(file_out != NULL); + ret = mbedtls_mpi_write_file(NULL, &X, 16, file_out); fclose(file_out); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - file_in = fopen( output_file, "r" ); - TEST_ASSERT( file_in != NULL ); - ret = mbedtls_mpi_read_file( &Y, 16, file_in ); + file_in = fopen(output_file, "r"); + TEST_ASSERT(file_in != NULL); + ret = mbedtls_mpi_read_file(&Y, 16, file_in); fclose(file_in); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &Y ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &Y) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_get_bit( char * input_X, int pos, int val ) +void mpi_get_bit(char *input_X, int pos, int val) { mbedtls_mpi X; - mbedtls_mpi_init( &X ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_get_bit( &X, pos ) == val ); + mbedtls_mpi_init(&X); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_get_bit(&X, pos) == val); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_set_bit( char * input_X, int pos, int val, - char * output_Y, int result ) +void mpi_set_bit(char *input_X, int pos, int val, + char *output_Y, int result) { mbedtls_mpi X, Y; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, output_Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_set_bit( &X, pos, val ) == result ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, output_Y) == 0); + TEST_ASSERT(mbedtls_mpi_set_bit(&X, pos, val) == result); - if( result == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &Y ) == 0 ); + if (result == 0) { + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &Y) == 0); } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_lsb( char * input_X, int nr_bits ) +void mpi_lsb(char *input_X, int nr_bits) { mbedtls_mpi X; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_lsb( &X ) == (size_t) nr_bits ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_lsb(&X) == (size_t) nr_bits); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_bitlen( char * input_X, int nr_bits ) +void mpi_bitlen(char *input_X, int nr_bits) { mbedtls_mpi X; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_bitlen( &X ) == (size_t) nr_bits ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_bitlen(&X) == (size_t) nr_bits); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_gcd( char * input_X, char * input_Y, - char * input_A ) +void mpi_gcd(char *input_X, char *input_Y, + char *input_A) { mbedtls_mpi A, X, Y, Z; - mbedtls_mpi_init( &A ); mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); + mbedtls_mpi_init(&A); mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_gcd( &Z, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_gcd(&Z, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); exit: - mbedtls_mpi_free( &A ); mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); + mbedtls_mpi_free(&A); mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_cmp_int( int input_X, int input_A, int result_CMP ) +void mpi_cmp_int(int input_X, int input_A, int result_CMP) { mbedtls_mpi X; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_mpi_lset( &X, input_X ) == 0); - TEST_ASSERT( mbedtls_mpi_cmp_int( &X, input_A ) == result_CMP); + TEST_ASSERT(mbedtls_mpi_lset(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_int(&X, input_A) == result_CMP); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_cmp_mpi( char * input_X, char * input_Y, - int input_A ) +void mpi_cmp_mpi(char *input_X, char *input_Y, + int input_A) { mbedtls_mpi X, Y; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &Y ) == input_A ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &Y) == input_A); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_lt_mpi_ct( int size_X, char * input_X, - int size_Y, char * input_Y, - int input_ret, int input_err ) +void mpi_lt_mpi_ct(int size_X, char *input_X, + int size_Y, char *input_Y, + int input_ret, int input_err) { unsigned ret = -1; unsigned input_uret = input_ret; mbedtls_mpi X, Y; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); - TEST_ASSERT( mbedtls_mpi_grow( &X, size_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_grow( &Y, size_Y ) == 0 ); + TEST_ASSERT(mbedtls_mpi_grow(&X, size_X) == 0); + TEST_ASSERT(mbedtls_mpi_grow(&Y, size_Y) == 0); - TEST_ASSERT( mbedtls_mpi_lt_mpi_ct( &X, &Y, &ret ) == input_err ); - if( input_err == 0 ) - TEST_ASSERT( ret == input_uret ); + TEST_ASSERT(mbedtls_mpi_lt_mpi_ct(&X, &Y, &ret) == input_err); + if (input_err == 0) { + TEST_ASSERT(ret == input_uret); + } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_cmp_abs( char * input_X, char * input_Y, - int input_A ) +void mpi_cmp_abs(char *input_X, char *input_Y, + int input_A) { mbedtls_mpi X, Y; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_abs( &X, &Y ) == input_A ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_abs(&X, &Y) == input_A); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_copy( char *src_hex, char *dst_hex ) +void mpi_copy(char *src_hex, char *dst_hex) { mbedtls_mpi src, dst, ref; - mbedtls_mpi_init( &src ); - mbedtls_mpi_init( &dst ); - mbedtls_mpi_init( &ref ); + mbedtls_mpi_init(&src); + mbedtls_mpi_init(&dst); + mbedtls_mpi_init(&ref); - TEST_ASSERT( mbedtls_test_read_mpi( &src, src_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &ref, dst_hex ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&src, src_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&ref, dst_hex) == 0); /* mbedtls_mpi_copy() */ - TEST_ASSERT( mbedtls_test_read_mpi( &dst, dst_hex ) == 0 ); - TEST_ASSERT( mbedtls_mpi_copy( &dst, &src ) == 0 ); - TEST_ASSERT( sign_is_valid( &dst ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &dst, &src ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&dst, dst_hex) == 0); + TEST_ASSERT(mbedtls_mpi_copy(&dst, &src) == 0); + TEST_ASSERT(sign_is_valid(&dst)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&dst, &src) == 0); /* mbedtls_mpi_safe_cond_assign(), assignment done */ - mbedtls_mpi_free( &dst ); - TEST_ASSERT( mbedtls_test_read_mpi( &dst, dst_hex ) == 0 ); - TEST_ASSERT( mbedtls_mpi_safe_cond_assign( &dst, &src, 1 ) == 0 ); - TEST_ASSERT( sign_is_valid( &dst ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &dst, &src ) == 0 ); + mbedtls_mpi_free(&dst); + TEST_ASSERT(mbedtls_test_read_mpi(&dst, dst_hex) == 0); + TEST_ASSERT(mbedtls_mpi_safe_cond_assign(&dst, &src, 1) == 0); + TEST_ASSERT(sign_is_valid(&dst)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&dst, &src) == 0); /* mbedtls_mpi_safe_cond_assign(), assignment not done */ - mbedtls_mpi_free( &dst ); - TEST_ASSERT( mbedtls_test_read_mpi( &dst, dst_hex ) == 0 ); - TEST_ASSERT( mbedtls_mpi_safe_cond_assign( &dst, &src, 0 ) == 0 ); - TEST_ASSERT( sign_is_valid( &dst ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &dst, &ref ) == 0 ); + mbedtls_mpi_free(&dst); + TEST_ASSERT(mbedtls_test_read_mpi(&dst, dst_hex) == 0); + TEST_ASSERT(mbedtls_mpi_safe_cond_assign(&dst, &src, 0) == 0); + TEST_ASSERT(sign_is_valid(&dst)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&dst, &ref) == 0); exit: - mbedtls_mpi_free( &src ); - mbedtls_mpi_free( &dst ); - mbedtls_mpi_free( &ref ); + mbedtls_mpi_free(&src); + mbedtls_mpi_free(&dst); + mbedtls_mpi_free(&ref); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_copy_self( char *input_X ) +void mpi_copy_self(char *input_X) { mbedtls_mpi X, A; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&A); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_copy( &X, &X ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_copy(&X, &X) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_X ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_X) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); exit: - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&A); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_swap( char *X_hex, char *Y_hex ) +void mpi_swap(char *X_hex, char *Y_hex) { mbedtls_mpi X, Y, X0, Y0; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); - mbedtls_mpi_init( &X0 ); mbedtls_mpi_init( &Y0 ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); + mbedtls_mpi_init(&X0); mbedtls_mpi_init(&Y0); - TEST_ASSERT( mbedtls_test_read_mpi( &X0, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y0, Y_hex ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X0, X_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y0, Y_hex) == 0); /* mbedtls_mpi_swap() */ - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); - mbedtls_mpi_swap( &X, &Y ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &Y0 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &X0 ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, X_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, Y_hex) == 0); + mbedtls_mpi_swap(&X, &Y); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &Y0) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &X0) == 0); /* mbedtls_mpi_safe_cond_swap(), swap done */ - mbedtls_mpi_free( &X ); - mbedtls_mpi_free( &Y ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); - TEST_ASSERT( mbedtls_mpi_safe_cond_swap( &X, &Y, 1 ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &Y0 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &X0 ) == 0 ); + mbedtls_mpi_free(&X); + mbedtls_mpi_free(&Y); + TEST_ASSERT(mbedtls_test_read_mpi(&X, X_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, Y_hex) == 0); + TEST_ASSERT(mbedtls_mpi_safe_cond_swap(&X, &Y, 1) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &Y0) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &X0) == 0); /* mbedtls_mpi_safe_cond_swap(), swap not done */ - mbedtls_mpi_free( &X ); - mbedtls_mpi_free( &Y ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, Y_hex ) == 0 ); - TEST_ASSERT( mbedtls_mpi_safe_cond_swap( &X, &Y, 0 ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &X0 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &Y0 ) == 0 ); + mbedtls_mpi_free(&X); + mbedtls_mpi_free(&Y); + TEST_ASSERT(mbedtls_test_read_mpi(&X, X_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, Y_hex) == 0); + TEST_ASSERT(mbedtls_mpi_safe_cond_swap(&X, &Y, 0) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &X0) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &Y0) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); - mbedtls_mpi_free( &X0 ); mbedtls_mpi_free( &Y0 ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); + mbedtls_mpi_free(&X0); mbedtls_mpi_free(&Y0); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_swap_self( char *X_hex ) +void mpi_swap_self(char *X_hex) { mbedtls_mpi X, X0; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &X0 ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&X0); - TEST_ASSERT( mbedtls_test_read_mpi( &X, X_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X0, X_hex ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, X_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&X0, X_hex) == 0); - mbedtls_mpi_swap( &X, &X ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &X0 ) == 0 ); + mbedtls_mpi_swap(&X, &X); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &X0) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &X0 ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&X0); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_shrink( int before, int used, int min, int after ) +void mpi_shrink(int before, int used, int min, int after) { mbedtls_mpi X; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_mpi_grow( &X, before ) == 0 ); - if( used > 0 ) - { - size_t used_bit_count = used * 8 * sizeof( mbedtls_mpi_uint ); - TEST_ASSERT( mbedtls_mpi_set_bit( &X, used_bit_count - 1, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_grow(&X, before) == 0); + if (used > 0) { + size_t used_bit_count = used * 8 * sizeof(mbedtls_mpi_uint); + TEST_ASSERT(mbedtls_mpi_set_bit(&X, used_bit_count - 1, 1) == 0); } - TEST_EQUAL( X.n, (size_t) before ); - TEST_ASSERT( mbedtls_mpi_shrink( &X, min ) == 0 ); - TEST_EQUAL( X.n, (size_t) after ); + TEST_EQUAL(X.n, (size_t) before); + TEST_ASSERT(mbedtls_mpi_shrink(&X, min) == 0); + TEST_EQUAL(X.n, (size_t) after); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_add_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_add_mpi(char *input_X, char *input_Y, + char *input_A) { mbedtls_mpi X, Y, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_mpi( &Z, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_add_mpi(&Z, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); /* result == first operand */ - TEST_ASSERT( mbedtls_mpi_add_mpi( &X, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_mpi_add_mpi(&X, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); /* result == second operand */ - TEST_ASSERT( mbedtls_mpi_add_mpi( &Y, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_add_mpi(&Y, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_add_mpi_inplace( char * input_X, char * input_A ) +void mpi_add_mpi_inplace(char *input_X, char *input_A) { mbedtls_mpi X, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_sub_abs( &X, &X, &X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &X, 0 ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_sub_abs(&X, &X, &X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_int(&X, 0) == 0); + TEST_ASSERT(sign_is_valid(&X)); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_abs( &X, &X, &X ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_add_abs(&X, &X, &X) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_mpi( &X, &X, &X ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_mpi_add_mpi(&X, &X, &X) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_add_abs( char * input_X, char * input_Y, - char * input_A ) +void mpi_add_abs(char *input_X, char *input_Y, + char *input_A) { mbedtls_mpi X, Y, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_abs( &Z, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_add_abs(&Z, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); /* result == first operand */ - TEST_ASSERT( mbedtls_mpi_add_abs( &X, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_mpi_add_abs(&X, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); /* result == second operand */ - TEST_ASSERT( mbedtls_mpi_add_abs( &Y, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_add_abs(&Y, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_add_int( char * input_X, int input_Y, - char * input_A ) +void mpi_add_int(char *input_X, int input_Y, + char *input_A) { mbedtls_mpi X, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_add_int( &Z, &X, input_Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_add_int(&Z, &X, input_Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_sub_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_sub_mpi(char *input_X, char *input_Y, + char *input_A) { mbedtls_mpi X, Y, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_sub_mpi( &Z, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_sub_mpi(&Z, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); /* result == first operand */ - TEST_ASSERT( mbedtls_mpi_sub_mpi( &X, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_mpi_sub_mpi(&X, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); /* result == second operand */ - TEST_ASSERT( mbedtls_mpi_sub_mpi( &Y, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Y ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_sub_mpi(&Y, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Y)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_sub_abs( char * input_X, char * input_Y, - char * input_A, int sub_result ) +void mpi_sub_abs(char *input_X, char *input_Y, + char *input_A, int sub_result) { mbedtls_mpi X, Y, Z, A; int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); - res = mbedtls_mpi_sub_abs( &Z, &X, &Y ); - TEST_ASSERT( res == sub_result ); - TEST_ASSERT( sign_is_valid( &Z ) ); - if( res == 0 ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + res = mbedtls_mpi_sub_abs(&Z, &X, &Y); + TEST_ASSERT(res == sub_result); + TEST_ASSERT(sign_is_valid(&Z)); + if (res == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); + } /* result == first operand */ - TEST_ASSERT( mbedtls_mpi_sub_abs( &X, &X, &Y ) == sub_result ); - TEST_ASSERT( sign_is_valid( &X ) ); - if( sub_result == 0 ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_mpi_sub_abs(&X, &X, &Y) == sub_result); + TEST_ASSERT(sign_is_valid(&X)); + if (sub_result == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); + } + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); /* result == second operand */ - TEST_ASSERT( mbedtls_mpi_sub_abs( &Y, &X, &Y ) == sub_result ); - TEST_ASSERT( sign_is_valid( &Y ) ); - if( sub_result == 0 ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Y, &A ) == 0 ); + TEST_ASSERT(mbedtls_mpi_sub_abs(&Y, &X, &Y) == sub_result); + TEST_ASSERT(sign_is_valid(&Y)); + if (sub_result == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Y, &A) == 0); + } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_sub_int( char * input_X, int input_Y, - char * input_A ) +void mpi_sub_int(char *input_X, int input_Y, + char *input_A) { mbedtls_mpi X, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_sub_int( &Z, &X, input_Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_sub_int(&Z, &X, input_Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mul_mpi( char * input_X, char * input_Y, - char * input_A ) +void mpi_mul_mpi(char *input_X, char *input_Y, + char *input_A) { mbedtls_mpi X, Y, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_mul_mpi( &Z, &X, &Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_mul_mpi(&Z, &X, &Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mul_int( char * input_X, int input_Y, - char * input_A, char * result_comparison ) +void mpi_mul_int(char *input_X, int input_Y, + char *input_A, char *result_comparison) { mbedtls_mpi X, Z, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_mul_int( &Z, &X, input_Y ) == 0 ); - TEST_ASSERT( sign_is_valid( &Z ) ); - if( strcmp( result_comparison, "==" ) == 0 ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); - else if( strcmp( result_comparison, "!=" ) == 0 ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) != 0 ); - else - TEST_ASSERT( "unknown operator" == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_mul_int(&Z, &X, input_Y) == 0); + TEST_ASSERT(sign_is_valid(&Z)); + if (strcmp(result_comparison, "==") == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); + } else if (strcmp(result_comparison, "!=") == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) != 0); + } else { + TEST_ASSERT("unknown operator" == 0); + } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_div_mpi( char * input_X, char * input_Y, - char * input_A, char * input_B, - int div_result ) +void mpi_div_mpi(char *input_X, char *input_Y, + char *input_A, char *input_B, + int div_result) { mbedtls_mpi X, Y, Q, R, A, B; int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &R ); - mbedtls_mpi_init( &A ); mbedtls_mpi_init( &B ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Q); mbedtls_mpi_init(&R); + mbedtls_mpi_init(&A); mbedtls_mpi_init(&B); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &B, input_B ) == 0 ); - res = mbedtls_mpi_div_mpi( &Q, &R, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Q ) ); - TEST_ASSERT( sign_is_valid( &R ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Q, &A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&B, input_B) == 0); + res = mbedtls_mpi_div_mpi(&Q, &R, &X, &Y); + TEST_ASSERT(res == div_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Q)); + TEST_ASSERT(sign_is_valid(&R)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Q, &A) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &B) == 0); } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &R ); - mbedtls_mpi_free( &A ); mbedtls_mpi_free( &B ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Q); mbedtls_mpi_free(&R); + mbedtls_mpi_free(&A); mbedtls_mpi_free(&B); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_div_int( char * input_X, int input_Y, - char * input_A, char * input_B, - int div_result ) +void mpi_div_int(char *input_X, int input_Y, + char *input_A, char *input_B, + int div_result) { mbedtls_mpi X, Q, R, A, B; int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &R ); mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Q); mbedtls_mpi_init(&R); mbedtls_mpi_init(&A); + mbedtls_mpi_init(&B); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &B, input_B ) == 0 ); - res = mbedtls_mpi_div_int( &Q, &R, &X, input_Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Q ) ); - TEST_ASSERT( sign_is_valid( &R ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Q, &A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&B, input_B) == 0); + res = mbedtls_mpi_div_int(&Q, &R, &X, input_Y); + TEST_ASSERT(res == div_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Q)); + TEST_ASSERT(sign_is_valid(&R)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Q, &A) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &B) == 0); } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &R ); mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Q); mbedtls_mpi_free(&R); mbedtls_mpi_free(&A); + mbedtls_mpi_free(&B); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_mpi( char * input_X, char * input_Y, - char * input_A, int div_result ) +void mpi_mod_mpi(char *input_X, char *input_Y, + char *input_A, int div_result) { mbedtls_mpi X, Y, A; int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_mod_mpi( &X, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + res = mbedtls_mpi_mod_mpi(&X, &X, &Y); + TEST_ASSERT(res == div_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_int( char * input_X, char * input_Y, - char * input_A, int mod_result ) +void mpi_mod_int(char *input_X, char *input_Y, + char *input_A, int mod_result) { mbedtls_mpi X; mbedtls_mpi Y; @@ -936,18 +932,18 @@ void mpi_mod_int( char * input_X, char * input_Y, int res; mbedtls_mpi_uint r; - mbedtls_mpi_init( &X ); - mbedtls_mpi_init( &Y ); - mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); + mbedtls_mpi_init(&Y); + mbedtls_mpi_init(&A); /* We use MPIs to read Y and A since the test framework limits us to * ints, so we can't have 64-bit values */ - TEST_EQUAL( mbedtls_test_read_mpi( &X, input_X ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &Y, input_Y ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &A, input_A ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&X, input_X), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&Y, input_Y), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&A, input_A), 0); - TEST_EQUAL( Y.n, 1 ); - TEST_EQUAL( A.n, 1 ); + TEST_EQUAL(Y.n, 1); + TEST_EQUAL(A.n, 1); /* Convert the MPIs for Y and A to (signed) mbedtls_mpi_sints */ @@ -958,301 +954,297 @@ void mpi_mod_int( char * input_X, char * input_Y, * easy to test for, and this helps guard against human error. */ mbedtls_mpi_sint y = (mbedtls_mpi_sint) Y.p[0]; - TEST_ASSERT( y >= 0 ); /* If y < 0 here, we can't make negative y */ - if( Y.s == -1 ) + TEST_ASSERT(y >= 0); /* If y < 0 here, we can't make negative y */ + if (Y.s == -1) { y = -y; + } mbedtls_mpi_sint a = (mbedtls_mpi_sint) A.p[0]; - TEST_ASSERT( a >= 0 ); /* Same goes for a */ - if( A.s == -1 ) + TEST_ASSERT(a >= 0); /* Same goes for a */ + if (A.s == -1) { a = -a; + } - res = mbedtls_mpi_mod_int( &r, &X, y ); - TEST_EQUAL( res, mod_result ); - if( res == 0 ) - { - TEST_EQUAL( r, a ); + res = mbedtls_mpi_mod_int(&r, &X, y); + TEST_EQUAL(res, mod_result); + if (res == 0) { + TEST_EQUAL(r, a); } exit: - mbedtls_mpi_free( &X ); - mbedtls_mpi_free( &Y ); - mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); + mbedtls_mpi_free(&Y); + mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_exp_mod( char * input_A, char * input_E, - char * input_N, char * input_X, - int exp_result ) +void mpi_exp_mod(char *input_A, char *input_E, + char *input_N, char *input_X, + int exp_result) { mbedtls_mpi A, E, N, RR, Z, X; int res; - mbedtls_mpi_init( &A ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&A); mbedtls_mpi_init(&E); mbedtls_mpi_init(&N); + mbedtls_mpi_init(&RR); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); - res = mbedtls_mpi_exp_mod( &Z, &A, &E, &N, NULL ); - TEST_ASSERT( res == exp_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &X ) == 0 ); + res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, NULL); + TEST_ASSERT(res == exp_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &X) == 0); } /* Now test again with the speed-up parameter supplied as an output. */ - res = mbedtls_mpi_exp_mod( &Z, &A, &E, &N, &RR ); - TEST_ASSERT( res == exp_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &X ) == 0 ); + res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR); + TEST_ASSERT(res == exp_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &X) == 0); } /* Now test again with the speed-up parameter supplied in calculated form. */ - res = mbedtls_mpi_exp_mod( &Z, &A, &E, &N, &RR ); - TEST_ASSERT( res == exp_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &X ) == 0 ); + res = mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR); + TEST_ASSERT(res == exp_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &X) == 0); } exit: - mbedtls_mpi_free( &A ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&A); mbedtls_mpi_free(&E); mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_exp_mod_size( int A_bytes, int E_bytes, int N_bytes, - char * input_RR, int exp_result ) +void mpi_exp_mod_size(int A_bytes, int E_bytes, int N_bytes, + char *input_RR, int exp_result) { mbedtls_mpi A, E, N, RR, Z; - mbedtls_mpi_init( &A ); mbedtls_mpi_init( &E ); mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); mbedtls_mpi_init( &Z ); + mbedtls_mpi_init(&A); mbedtls_mpi_init(&E); mbedtls_mpi_init(&N); + mbedtls_mpi_init(&RR); mbedtls_mpi_init(&Z); /* Set A to 2^(A_bytes - 1) + 1 */ - TEST_ASSERT( mbedtls_mpi_lset( &A, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &A, ( A_bytes * 8 ) - 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_set_bit( &A, 0, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&A, 1) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&A, (A_bytes * 8) - 1) == 0); + TEST_ASSERT(mbedtls_mpi_set_bit(&A, 0, 1) == 0); /* Set E to 2^(E_bytes - 1) + 1 */ - TEST_ASSERT( mbedtls_mpi_lset( &E, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &E, ( E_bytes * 8 ) - 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_set_bit( &E, 0, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&E, 1) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&E, (E_bytes * 8) - 1) == 0); + TEST_ASSERT(mbedtls_mpi_set_bit(&E, 0, 1) == 0); /* Set N to 2^(N_bytes - 1) + 1 */ - TEST_ASSERT( mbedtls_mpi_lset( &N, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &N, ( N_bytes * 8 ) - 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_set_bit( &N, 0, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&N, 1) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&N, (N_bytes * 8) - 1) == 0); + TEST_ASSERT(mbedtls_mpi_set_bit(&N, 0, 1) == 0); - if( strlen( input_RR ) ) - TEST_ASSERT( mbedtls_test_read_mpi( &RR, input_RR ) == 0 ); + if (strlen(input_RR)) { + TEST_ASSERT(mbedtls_test_read_mpi(&RR, input_RR) == 0); + } - TEST_ASSERT( mbedtls_mpi_exp_mod( &Z, &A, &E, &N, &RR ) == exp_result ); + TEST_ASSERT(mbedtls_mpi_exp_mod(&Z, &A, &E, &N, &RR) == exp_result); exit: - mbedtls_mpi_free( &A ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); mbedtls_mpi_free( &Z ); + mbedtls_mpi_free(&A); mbedtls_mpi_free(&E); mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); mbedtls_mpi_free(&Z); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_inv_mod( char * input_X, char * input_Y, - char * input_A, int div_result ) +void mpi_inv_mod(char *input_X, char *input_Y, + char *input_A, int div_result) { mbedtls_mpi X, Y, Z, A; int res; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, input_Y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - res = mbedtls_mpi_inv_mod( &Z, &X, &Y ); - TEST_ASSERT( res == div_result ); - if( res == 0 ) - { - TEST_ASSERT( sign_is_valid( &Z ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Z, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, input_Y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + res = mbedtls_mpi_inv_mod(&Z, &X, &Y); + TEST_ASSERT(res == div_result); + if (res == 0) { + TEST_ASSERT(sign_is_valid(&Z)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Z, &A) == 0); } exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mpi_is_prime( char * input_X, int div_result ) +void mpi_is_prime(char *input_X, int div_result) { mbedtls_mpi X; int res; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - res = mbedtls_mpi_is_prime_ext( &X, 40, mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( res == div_result ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + res = mbedtls_mpi_is_prime_ext(&X, 40, mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(res == div_result); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mpi_is_prime_det( data_t * input_X, data_t * witnesses, - int chunk_len, int rounds ) +void mpi_is_prime_det(data_t *input_X, data_t *witnesses, + int chunk_len, int rounds) { mbedtls_mpi X; int res; mbedtls_test_mpi_random rand; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); rand.data = witnesses; rand.pos = 0; rand.chunk_len = chunk_len; - TEST_ASSERT( mbedtls_mpi_read_binary( &X, input_X->x, input_X->len ) == 0 ); - res = mbedtls_mpi_is_prime_ext( &X, rounds - 1, - mbedtls_test_mpi_miller_rabin_determinizer, - &rand ); - TEST_ASSERT( res == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&X, input_X->x, input_X->len) == 0); + res = mbedtls_mpi_is_prime_ext(&X, rounds - 1, + mbedtls_test_mpi_miller_rabin_determinizer, + &rand); + TEST_ASSERT(res == 0); rand.data = witnesses; rand.pos = 0; rand.chunk_len = chunk_len; - res = mbedtls_mpi_is_prime_ext( &X, rounds, - mbedtls_test_mpi_miller_rabin_determinizer, - &rand ); - TEST_ASSERT( res == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); + res = mbedtls_mpi_is_prime_ext(&X, rounds, + mbedtls_test_mpi_miller_rabin_determinizer, + &rand); + TEST_ASSERT(res == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE); exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_GENPRIME */ -void mpi_gen_prime( int bits, int flags, int ref_ret ) +void mpi_gen_prime(int bits, int flags, int ref_ret) { mbedtls_mpi X; int my_ret; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - my_ret = mbedtls_mpi_gen_prime( &X, bits, flags, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( my_ret == ref_ret ); + my_ret = mbedtls_mpi_gen_prime(&X, bits, flags, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(my_ret == ref_ret); - if( ref_ret == 0 ) - { - size_t actual_bits = mbedtls_mpi_bitlen( &X ); + if (ref_ret == 0) { + size_t actual_bits = mbedtls_mpi_bitlen(&X); - TEST_ASSERT( actual_bits >= (size_t) bits ); - TEST_ASSERT( actual_bits <= (size_t) bits + 1 ); - TEST_ASSERT( sign_is_valid( &X ) ); + TEST_ASSERT(actual_bits >= (size_t) bits); + TEST_ASSERT(actual_bits <= (size_t) bits + 1); + TEST_ASSERT(sign_is_valid(&X)); - TEST_ASSERT( mbedtls_mpi_is_prime_ext( &X, 40, - mbedtls_test_rnd_std_rand, - NULL ) == 0 ); - if( flags & MBEDTLS_MPI_GEN_PRIME_FLAG_DH ) - { + TEST_ASSERT(mbedtls_mpi_is_prime_ext(&X, 40, + mbedtls_test_rnd_std_rand, + NULL) == 0); + if (flags & MBEDTLS_MPI_GEN_PRIME_FLAG_DH) { /* X = ( X - 1 ) / 2 */ - TEST_ASSERT( mbedtls_mpi_shift_r( &X, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_is_prime_ext( &X, 40, - mbedtls_test_rnd_std_rand, - NULL ) == 0 ); + TEST_ASSERT(mbedtls_mpi_shift_r(&X, 1) == 0); + TEST_ASSERT(mbedtls_mpi_is_prime_ext(&X, 40, + mbedtls_test_rnd_std_rand, + NULL) == 0); } } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_shift_l( char * input_X, int shift_X, - char * input_A ) +void mpi_shift_l(char *input_X, int shift_X, + char *input_A) { mbedtls_mpi X, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &X, shift_X ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&X, shift_X) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_shift_r( char * input_X, int shift_X, - char * input_A ) +void mpi_shift_r(char *input_X, int shift_X, + char *input_A) { mbedtls_mpi X, A; - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &A ); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&A); - TEST_ASSERT( mbedtls_test_read_mpi( &X, input_X ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &A, input_A ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_r( &X, shift_X ) == 0 ); - TEST_ASSERT( sign_is_valid( &X ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &X, &A ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, input_X) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&A, input_A) == 0); + TEST_ASSERT(mbedtls_mpi_shift_r(&X, shift_X) == 0); + TEST_ASSERT(sign_is_valid(&X)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&X, &A) == 0); exit: - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &A ); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_fill_random( int wanted_bytes, int rng_bytes, - int before, int expected_ret ) +void mpi_fill_random(int wanted_bytes, int rng_bytes, + int before, int expected_ret) { mbedtls_mpi X; int ret; size_t bytes_left = rng_bytes; - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&X); - if( before != 0 ) - { + if (before != 0) { /* Set X to sign(before) * 2^(|before|-1) */ - TEST_ASSERT( mbedtls_mpi_lset( &X, before > 0 ? 1 : -1 ) == 0 ); - if( before < 0 ) - before = - before; - TEST_ASSERT( mbedtls_mpi_shift_l( &X, before - 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&X, before > 0 ? 1 : -1) == 0); + if (before < 0) { + before = -before; + } + TEST_ASSERT(mbedtls_mpi_shift_l(&X, before - 1) == 0); } - ret = mbedtls_mpi_fill_random( &X, wanted_bytes, - f_rng_bytes_left, &bytes_left ); - TEST_ASSERT( ret == expected_ret ); + ret = mbedtls_mpi_fill_random(&X, wanted_bytes, + f_rng_bytes_left, &bytes_left); + TEST_ASSERT(ret == expected_ret); - if( expected_ret == 0 ) - { + if (expected_ret == 0) { /* mbedtls_mpi_fill_random is documented to use bytes from the RNG * as a big-endian representation of the number. We know when * our RNG function returns null bytes, so we know how many * leading zero bytes the number has. */ size_t leading_zeros = 0; - if( wanted_bytes > 0 && rng_bytes % 256 == 0 ) + if (wanted_bytes > 0 && rng_bytes % 256 == 0) { leading_zeros = 1; - TEST_ASSERT( mbedtls_mpi_size( &X ) + leading_zeros == - (size_t) wanted_bytes ); - TEST_ASSERT( (int) bytes_left == rng_bytes - wanted_bytes ); - TEST_ASSERT( sign_is_valid( &X ) ); + } + TEST_ASSERT(mbedtls_mpi_size(&X) + leading_zeros == + (size_t) wanted_bytes); + TEST_ASSERT((int) bytes_left == rng_bytes - wanted_bytes); + TEST_ASSERT(sign_is_valid(&X)); } exit: - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void most_negative_mpi_sint( ) +void most_negative_mpi_sint() { /* Ad hoc tests for n = -p = -2^(biL-1) as a mbedtls_mpi_sint. We * guarantee that mbedtls_mpi_sint is a two's complement type, so this @@ -1270,133 +1262,133 @@ void most_negative_mpi_sint( ) */ mbedtls_mpi A, R, X; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &R ); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&A); + mbedtls_mpi_init(&R); + mbedtls_mpi_init(&X); - mbedtls_mpi_uint most_positive_plus_1 = (mbedtls_mpi_uint) 1 << ( biL - 1 ); + mbedtls_mpi_uint most_positive_plus_1 = (mbedtls_mpi_uint) 1 << (biL - 1); const mbedtls_mpi_sint most_positive = most_positive_plus_1 - 1; - const mbedtls_mpi_sint most_negative = - most_positive - 1; - TEST_EQUAL( (mbedtls_mpi_uint) most_negative, - (mbedtls_mpi_uint) 1 << ( biL - 1 ) ); - TEST_EQUAL( (mbedtls_mpi_uint) most_negative << 1, 0 ); + const mbedtls_mpi_sint most_negative = -most_positive - 1; + TEST_EQUAL((mbedtls_mpi_uint) most_negative, + (mbedtls_mpi_uint) 1 << (biL - 1)); + TEST_EQUAL((mbedtls_mpi_uint) most_negative << 1, 0); /* Test mbedtls_mpi_lset() */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); - TEST_EQUAL( A.s, -1 ); - TEST_EQUAL( A.n, 1 ); - TEST_EQUAL( A.p[0], most_positive_plus_1 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_negative), 0); + TEST_EQUAL(A.s, -1); + TEST_EQUAL(A.n, 1); + TEST_EQUAL(A.p[0], most_positive_plus_1); /* Test mbedtls_mpi_cmp_int(): -p == -p */ - TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), 0 ); + TEST_EQUAL(mbedtls_mpi_cmp_int(&A, most_negative), 0); /* Test mbedtls_mpi_cmp_int(): -(p+1) < -p */ A.p[0] = most_positive_plus_1 + 1; - TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), -1 ); + TEST_EQUAL(mbedtls_mpi_cmp_int(&A, most_negative), -1); /* Test mbedtls_mpi_cmp_int(): -(p-1) > -p */ A.p[0] = most_positive_plus_1 - 1; - TEST_EQUAL( mbedtls_mpi_cmp_int( &A, most_negative ), 1 ); + TEST_EQUAL(mbedtls_mpi_cmp_int(&A, most_negative), 1); /* Test mbedtls_mpi_add_int(): (p-1) + (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); - TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -1 ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_positive), 0); + TEST_EQUAL(mbedtls_mpi_add_int(&X, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, -1), 0); /* Test mbedtls_mpi_add_int(): (0) + (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, 0 ), 0 ); - TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, most_negative ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, 0), 0); + TEST_EQUAL(mbedtls_mpi_add_int(&X, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, most_negative), 0); /* Test mbedtls_mpi_add_int(): (-p) + (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_add_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( X.s, -1 ); - TEST_EQUAL( X.n, 2 ); - TEST_EQUAL( X.p[0], 0 ); - TEST_EQUAL( X.p[1], 1 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_add_int(&X, &A, most_negative), 0); + TEST_EQUAL(X.s, -1); + TEST_EQUAL(X.n, 2); + TEST_EQUAL(X.p[0], 0); + TEST_EQUAL(X.p[1], 1); /* Test mbedtls_mpi_sub_int(): (p) - (-p) */ - mbedtls_mpi_free( &X ); - TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); - TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( X.s, 1 ); - TEST_EQUAL( X.n, 1 ); - TEST_EQUAL( X.p[0], ~(mbedtls_mpi_uint)0 ); + mbedtls_mpi_free(&X); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_positive), 0); + TEST_EQUAL(mbedtls_mpi_sub_int(&X, &A, most_negative), 0); + TEST_EQUAL(X.s, 1); + TEST_EQUAL(X.n, 1); + TEST_EQUAL(X.p[0], ~(mbedtls_mpi_uint) 0); /* Test mbedtls_mpi_sub_int(): (0) - (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, 0 ), 0 ); - TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( X.s, 1 ); - TEST_EQUAL( X.n, 1 ); - TEST_EQUAL( X.p[0], most_positive_plus_1 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, 0), 0); + TEST_EQUAL(mbedtls_mpi_sub_int(&X, &A, most_negative), 0); + TEST_EQUAL(X.s, 1); + TEST_EQUAL(X.n, 1); + TEST_EQUAL(X.p[0], most_positive_plus_1); /* Test mbedtls_mpi_sub_int(): (-p) - (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_sub_int( &X, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_sub_int(&X, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 0), 0); /* Test mbedtls_mpi_div_int(): (-p+1) / (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, -most_positive ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, -most_positive ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, -most_positive), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 0), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, -most_positive), 0); /* Test mbedtls_mpi_div_int(): (-p) / (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 1), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, 0), 0); /* Test mbedtls_mpi_div_int(): (-2*p) / (-p) */ - TEST_EQUAL( mbedtls_mpi_shift_l( &A, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 2 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_shift_l(&A, 1), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 2), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, 0), 0); /* Test mbedtls_mpi_div_int(): (-2*p+1) / (-p) */ - TEST_EQUAL( mbedtls_mpi_add_int( &A, &A, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, -most_positive ), 0 ); + TEST_EQUAL(mbedtls_mpi_add_int(&A, &A, 1), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 1), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, -most_positive), 0); /* Test mbedtls_mpi_div_int(): (p-1) / (-p) */ - TEST_EQUAL( mbedtls_mpi_lset( &A, most_positive ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, 0 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, most_positive ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&A, most_positive), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, 0), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, most_positive), 0); /* Test mbedtls_mpi_div_int(): (p) / (-p) */ - TEST_EQUAL( mbedtls_mpi_add_int( &A, &A, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_add_int(&A, &A, 1), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, -1), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, 0), 0); /* Test mbedtls_mpi_div_int(): (2*p) / (-p) */ - TEST_EQUAL( mbedtls_mpi_shift_l( &A, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &X, &R, &A, most_negative ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &X, -2 ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_int( &R, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_shift_l(&A, 1), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&X, &R, &A, most_negative), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&X, -2), 0); + TEST_EQUAL(mbedtls_mpi_cmp_int(&R, 0), 0); /* Test mbedtls_mpi_mod_int(): never valid */ - TEST_EQUAL( mbedtls_mpi_mod_int( X.p, &A, most_negative ), - MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); + TEST_EQUAL(mbedtls_mpi_mod_int(X.p, &A, most_negative), + MBEDTLS_ERR_MPI_NEGATIVE_VALUE); /* Test mbedtls_mpi_random(): never valid */ - TEST_EQUAL( mbedtls_mpi_random( &X, most_negative, &A, - mbedtls_test_rnd_std_rand, NULL ), - MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_mpi_random(&X, most_negative, &A, + mbedtls_test_rnd_std_rand, NULL), + MBEDTLS_ERR_MPI_BAD_INPUT_DATA); exit: - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &R ); - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&A); + mbedtls_mpi_free(&R); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void mpi_selftest( ) +void mpi_selftest() { - TEST_ASSERT( mbedtls_mpi_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum_core.function b/tests/suites/test_suite_bignum_core.function index 47f9013eb..408eb0be4 100644 --- a/tests/suites/test_suite_bignum_core.function +++ b/tests/suites/test_suite_bignum_core.function @@ -16,16 +16,16 @@ * * \return 1 if mbedtls_mpi_core_add() passes this test, otherwise 0. */ -static int mpi_core_verify_add( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - size_t limbs, - mbedtls_mpi_uint *S, - int carry, - mbedtls_mpi_uint *X ) +static int mpi_core_verify_add(mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X) { int ret = 0; - size_t bytes = limbs * sizeof( *A ); + size_t bytes = limbs * sizeof(*A); /* The test cases have A <= B to avoid repetition, so we test A + B then, * if A != B, B + A. If A == B, we can test when A and B are aliased */ @@ -33,49 +33,46 @@ static int mpi_core_verify_add( mbedtls_mpi_uint *A, /* A + B */ /* A + B => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, A, B, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + B; alias output and first operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, B, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, A, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, X, B, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + B; alias output and second operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, B, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, A, X, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); - if ( memcmp( A, B, bytes ) == 0 ) - { + if (memcmp(A, B, bytes) == 0) { /* A == B, so test where A and B are aliased */ /* A + A => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, A, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, A, A, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + A, output aliased to both operands => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } - else - { + memcpy(X, A, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, X, X, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); + } else { /* A != B, so test B + A */ /* B + A => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, B, A, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); /* B + A; alias output and first operand => correct result and carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, X, A, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, B, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, X, A, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); /* B + A; alias output and second operand => correct result and carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_add( X, B, X, limbs ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, A, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_add(X, B, X, limbs)); + ASSERT_COMPARE(X, bytes, S, bytes); } ret = 1; @@ -95,16 +92,16 @@ exit: * * \return 1 if mbedtls_mpi_core_add_if() passes this test, otherwise 0. */ -static int mpi_core_verify_add_if( mbedtls_mpi_uint *A, - mbedtls_mpi_uint *B, - size_t limbs, - mbedtls_mpi_uint *S, - int carry, - mbedtls_mpi_uint *X ) +static int mpi_core_verify_add_if(mbedtls_mpi_uint *A, + mbedtls_mpi_uint *B, + size_t limbs, + mbedtls_mpi_uint *S, + int carry, + mbedtls_mpi_uint *X) { int ret = 0; - size_t bytes = limbs * sizeof( *A ); + size_t bytes = limbs * sizeof(*A); /* The test cases have A <= B to avoid repetition, so we test A + B then, * if A != B, B + A. If A == B, we can test when A and B are aliased */ @@ -112,39 +109,36 @@ static int mpi_core_verify_add_if( mbedtls_mpi_uint *A, /* A + B */ /* cond = 0 => X unchanged, no carry */ - memcpy( X, A, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, B, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, A, bytes ); + memcpy(X, A, bytes); + TEST_EQUAL(0, mbedtls_mpi_core_add_if(X, B, limbs, 0)); + ASSERT_COMPARE(X, bytes, A, bytes); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, B, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + TEST_EQUAL(carry, mbedtls_mpi_core_add_if(X, B, limbs, 1)); + ASSERT_COMPARE(X, bytes, S, bytes); - if ( memcmp( A, B, bytes ) == 0 ) - { + if (memcmp(A, B, bytes) == 0) { /* A == B, so test where A and B are aliased */ /* cond = 0 => X unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, X, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); + memcpy(X, B, bytes); + TEST_EQUAL(0, mbedtls_mpi_core_add_if(X, X, limbs, 0)); + ASSERT_COMPARE(X, bytes, B, bytes); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, X, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } - else - { + TEST_EQUAL(carry, mbedtls_mpi_core_add_if(X, X, limbs, 1)); + ASSERT_COMPARE(X, bytes, S, bytes); + } else { /* A != B, so test B + A */ /* cond = 0 => d unchanged, no carry */ - memcpy( X, B, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_core_add_if( X, A, limbs, 0 ) ); - ASSERT_COMPARE( X, bytes, B, bytes ); + memcpy(X, B, bytes); + TEST_EQUAL(0, mbedtls_mpi_core_add_if(X, A, limbs, 0)); + ASSERT_COMPARE(X, bytes, B, bytes); /* cond = 1 => correct result and carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_add_if( X, A, limbs, 1 ) ); - ASSERT_COMPARE( X, bytes, S, bytes ); + TEST_EQUAL(carry, mbedtls_mpi_core_add_if(X, A, limbs, 1)); + ASSERT_COMPARE(X, bytes, S, bytes); } ret = 1; @@ -166,25 +160,25 @@ void mpi_core_io_null() mbedtls_mpi_uint X = 0; int ret; - ret = mbedtls_mpi_core_read_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_read_be(&X, 1, NULL, 0); + TEST_EQUAL(ret, 0); + ret = mbedtls_mpi_core_write_be(&X, 1, NULL, 0); + TEST_EQUAL(ret, 0); - ret = mbedtls_mpi_core_read_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_be( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_read_be(NULL, 0, NULL, 0); + TEST_EQUAL(ret, 0); + ret = mbedtls_mpi_core_write_be(NULL, 0, NULL, 0); + TEST_EQUAL(ret, 0); - ret = mbedtls_mpi_core_read_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( &X, 1, NULL, 0 ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_read_le(&X, 1, NULL, 0); + TEST_EQUAL(ret, 0); + ret = mbedtls_mpi_core_write_le(&X, 1, NULL, 0); + TEST_EQUAL(ret, 0); - ret = mbedtls_mpi_core_read_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); - ret = mbedtls_mpi_core_write_le( NULL, 0, NULL, 0 ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_mpi_core_read_le(NULL, 0, NULL, 0); + TEST_EQUAL(ret, 0); + ret = mbedtls_mpi_core_write_le(NULL, 0, NULL, 0); + TEST_EQUAL(ret, 0); exit: ; @@ -192,54 +186,53 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_io_be( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) +void mpi_core_io_be(data_t *input, int nb_int, int nx_32_int, int iret, + int oret) { - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); + if (iret != 0) { + TEST_ASSERT(oret == 0); + } - TEST_LE_S( 0, nb_int ); + TEST_LE_S(0, nb_int); size_t nb = nb_int; unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); + TEST_LE_U(nb, sizeof(buf)); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) + TEST_LE_S(0, nx_32_int); + if (sizeof(mbedtls_mpi_uint) == 8) { nx = nx_32_int / 2 + nx_32_int % 2; - else + } else { nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_be( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_be( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); } - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { + mbedtls_mpi_uint X[sizeof(buf) / sizeof(mbedtls_mpi_uint)]; + TEST_LE_U(nx, sizeof(X) / sizeof(X[0])); + + int ret = mbedtls_mpi_core_read_be(X, nx, input->x, input->len); + TEST_EQUAL(ret, iret); + + if (iret == 0) { + ret = mbedtls_mpi_core_write_be(X, nx, buf, nb); + TEST_EQUAL(ret, oret); + } + + if ((iret == 0) && (oret == 0)) { + if (nb > input->len) { size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { + TEST_ASSERT(memcmp(buf + nb - input->len, input->x, input->len) == 0); + for (size_t i = 0; i < leading_zeroes; i++) { + TEST_EQUAL(buf[i], 0); + } + } else { size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); + TEST_ASSERT(memcmp(input->x + input->len - nb, buf, nb) == 0); + for (size_t i = 0; i < leading_zeroes; i++) { + TEST_EQUAL(input->x[i], 0); + } } } @@ -249,52 +242,51 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_io_le( data_t *input, int nb_int, int nx_32_int, int iret, - int oret ) +void mpi_core_io_le(data_t *input, int nb_int, int nx_32_int, int iret, + int oret) { - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); + if (iret != 0) { + TEST_ASSERT(oret == 0); + } - TEST_LE_S( 0, nb_int ); + TEST_LE_S(0, nb_int); size_t nb = nb_int; unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); + TEST_LE_U(nb, sizeof(buf)); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) + TEST_LE_S(0, nx_32_int); + if (sizeof(mbedtls_mpi_uint) == 8) { nx = nx_32_int / 2 + nx_32_int % 2; - else + } else { nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int ret = mbedtls_mpi_core_read_le( X, nx, input->x, input->len ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - ret = mbedtls_mpi_core_write_le( X, nx, buf, nb ); - TEST_EQUAL( ret, oret ); } - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); + mbedtls_mpi_uint X[sizeof(buf) / sizeof(mbedtls_mpi_uint)]; + TEST_LE_U(nx, sizeof(X) / sizeof(X[0])); + + int ret = mbedtls_mpi_core_read_le(X, nx, input->x, input->len); + TEST_EQUAL(ret, iret); + + if (iret == 0) { + ret = mbedtls_mpi_core_write_le(X, nx, buf, nb); + TEST_EQUAL(ret, oret); + } + + if ((iret == 0) && (oret == 0)) { + if (nb > input->len) { + TEST_ASSERT(memcmp(buf, input->x, input->len) == 0); + for (size_t i = input->len; i < nb; i++) { + TEST_EQUAL(buf[i], 0); + } + } else { + TEST_ASSERT(memcmp(input->x, buf, nb) == 0); + for (size_t i = nb; i < input->len; i++) { + TEST_EQUAL(input->x[i], 0); + } } } @@ -304,21 +296,21 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_bitlen( char *input_X, int nr_bits ) +void mpi_core_bitlen(char *input_X, int nr_bits) { mbedtls_mpi_uint *X = NULL; size_t limbs; - TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs, input_X ), 0 ); - TEST_EQUAL( mbedtls_mpi_core_bitlen( X, limbs ), nr_bits ); + TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs, input_X), 0); + TEST_EQUAL(mbedtls_mpi_core_bitlen(X, limbs), nr_bits); exit: - mbedtls_free( X ); + mbedtls_free(X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) +void mpi_core_lt_ct(char *input_X, char *input_Y, int exp_ret) { mbedtls_mpi_uint *X = NULL; size_t X_limbs; @@ -326,138 +318,132 @@ void mpi_core_lt_ct( char *input_X, char *input_Y, int exp_ret ) size_t Y_limbs; int ret; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &Y_limbs, input_Y ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&Y, &Y_limbs, input_Y)); /* We need two same-length limb arrays */ - TEST_EQUAL( X_limbs, Y_limbs ); + TEST_EQUAL(X_limbs, Y_limbs); - TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); - TEST_CF_SECRET( Y, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET(X, X_limbs * sizeof(mbedtls_mpi_uint)); + TEST_CF_SECRET(Y, X_limbs * sizeof(mbedtls_mpi_uint)); - ret = mbedtls_mpi_core_lt_ct( X, Y, X_limbs ); - TEST_EQUAL( ret, exp_ret ); + ret = mbedtls_mpi_core_lt_ct(X, Y, X_limbs); + TEST_EQUAL(ret, exp_ret); exit: - mbedtls_free( X ); - mbedtls_free( Y ); + mbedtls_free(X); + mbedtls_free(Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_uint_le_mpi( char *input_A ) +void mpi_core_uint_le_mpi(char *input_A) { mbedtls_mpi_uint *A = NULL; size_t A_limbs = 0; - TEST_EQUAL( mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &A_limbs, input_A), 0); int is_large = 0; /* nonzero limbs beyond the lowest-order one? */ - for( size_t i = 1; i < A_limbs; i++ ) - { - if( A[i] != 0 ) - { + for (size_t i = 1; i < A_limbs; i++) { + if (A[i] != 0) { is_large = 1; break; } } - TEST_CF_SECRET( A, A_limbs * sizeof( *A ) ); + TEST_CF_SECRET(A, A_limbs * sizeof(*A)); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( 0, A, A_limbs ), 1 ); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0], A, A_limbs ), 1 ); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi(0, A, A_limbs), 1); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi(A[0], A, A_limbs), 1); - if( is_large ) - { - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0] + 1, - A, A_limbs ), 1 ); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ) >> 1, - A, A_limbs ), 1 ); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ), - A, A_limbs ), 1 ); - } - else - { - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( A[0] + 1, - A, A_limbs ), - A[0] + 1 <= A[0] ); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ) >> 1, - A, A_limbs ), - (mbedtls_mpi_uint)( -1 ) >> 1 <= A[0] ); - TEST_EQUAL( mbedtls_mpi_core_uint_le_mpi( (mbedtls_mpi_uint)( -1 ), - A, A_limbs ), - (mbedtls_mpi_uint)( -1 ) <= A[0] ); + if (is_large) { + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi(A[0] + 1, + A, A_limbs), 1); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi((mbedtls_mpi_uint) (-1) >> 1, + A, A_limbs), 1); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi((mbedtls_mpi_uint) (-1), + A, A_limbs), 1); + } else { + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi(A[0] + 1, + A, A_limbs), + A[0] + 1 <= A[0]); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi((mbedtls_mpi_uint) (-1) >> 1, + A, A_limbs), + (mbedtls_mpi_uint) (-1) >> 1 <= A[0]); + TEST_EQUAL(mbedtls_mpi_core_uint_le_mpi((mbedtls_mpi_uint) (-1), + A, A_limbs), + (mbedtls_mpi_uint) (-1) <= A[0]); } exit: - mbedtls_free( A ); + mbedtls_free(A); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_assign( char * input_X, - char * input_Y, - int input_bytes ) +void mpi_core_cond_assign(char *input_X, + char *input_Y, + int input_bytes) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs_X; size_t limbs_Y; - TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&Y, &limbs_Y, input_Y), 0); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS(input_bytes); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + size_t copy_bytes = copy_limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); + TEST_EQUAL(limbs_X, limbs_Y); + TEST_ASSERT(copy_limbs <= limbs); /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 0 ); + mbedtls_mpi_core_cond_assign(X, Y, copy_limbs, 0); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + TEST_ASSERT(memcmp(X, Y, bytes) != 0); /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_core_cond_assign( X, Y, copy_limbs, 1 ); + mbedtls_mpi_core_cond_assign(X, Y, copy_limbs, 1); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + if (copy_limbs < limbs) { + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); - ASSERT_COMPARE( X, copy_bytes, Y, copy_bytes ); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + ASSERT_COMPARE(X, copy_bytes, Y, copy_bytes); + TEST_ASSERT(memcmp(X, Y, bytes) != 0); + } else { + ASSERT_COMPARE(X, bytes, Y, bytes); } - else - ASSERT_COMPARE( X, bytes, Y, bytes ); exit: - mbedtls_free( X ); - mbedtls_free( Y ); + mbedtls_free(X); + mbedtls_free(Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_cond_swap( char * input_X, - char * input_Y, - int input_bytes ) +void mpi_core_cond_swap(char *input_X, + char *input_Y, + int input_bytes) { mbedtls_mpi_uint *tmp_X = NULL; mbedtls_mpi_uint *tmp_Y = NULL; @@ -466,92 +452,89 @@ void mpi_core_cond_swap( char * input_X, size_t limbs_X; size_t limbs_Y; - TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_X, &limbs_X, input_X ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &tmp_Y, &limbs_Y, input_Y ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_core(&tmp_X, &limbs_X, input_X), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&tmp_Y, &limbs_Y, input_Y), 0); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS(input_bytes); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + size_t copy_bytes = copy_limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); + TEST_EQUAL(limbs_X, limbs_Y); + TEST_ASSERT(copy_limbs <= limbs); - ASSERT_ALLOC( X, limbs ); - memcpy( X, tmp_X, bytes ); + ASSERT_ALLOC(X, limbs); + memcpy(X, tmp_X, bytes); - ASSERT_ALLOC( Y, limbs ); - memcpy( Y, tmp_Y, bytes ); + ASSERT_ALLOC(Y, limbs); + memcpy(Y, tmp_Y, bytes); /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 0 ); + mbedtls_mpi_core_cond_swap(X, Y, copy_limbs, 0); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); - ASSERT_COMPARE( X, bytes, tmp_X, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_Y, bytes ); + ASSERT_COMPARE(X, bytes, tmp_X, bytes); + ASSERT_COMPARE(Y, bytes, tmp_Y, bytes); /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_core_cond_swap( X, Y, copy_limbs, 1 ); + mbedtls_mpi_core_cond_swap(X, Y, copy_limbs, 1); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs < limbs ) - { - ASSERT_COMPARE( X, copy_bytes, tmp_Y, copy_bytes ); - ASSERT_COMPARE( Y, copy_bytes, tmp_X, copy_bytes ); - TEST_ASSERT( memcmp( X, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( X, tmp_Y, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_X, bytes ) != 0 ); - TEST_ASSERT( memcmp( Y, tmp_Y, bytes ) != 0 ); - } - else - { - ASSERT_COMPARE( X, bytes, tmp_Y, bytes ); - ASSERT_COMPARE( Y, bytes, tmp_X, bytes ); + if (copy_limbs < limbs) { + ASSERT_COMPARE(X, copy_bytes, tmp_Y, copy_bytes); + ASSERT_COMPARE(Y, copy_bytes, tmp_X, copy_bytes); + TEST_ASSERT(memcmp(X, tmp_X, bytes) != 0); + TEST_ASSERT(memcmp(X, tmp_Y, bytes) != 0); + TEST_ASSERT(memcmp(Y, tmp_X, bytes) != 0); + TEST_ASSERT(memcmp(Y, tmp_Y, bytes) != 0); + } else { + ASSERT_COMPARE(X, bytes, tmp_Y, bytes); + ASSERT_COMPARE(Y, bytes, tmp_X, bytes); } exit: - mbedtls_free( tmp_X ); - mbedtls_free( tmp_Y ); - mbedtls_free( X ); - mbedtls_free( Y ); + mbedtls_free(tmp_X); + mbedtls_free(tmp_Y); + mbedtls_free(X); + mbedtls_free(Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_shift_r( char *input, int count, char *result ) +void mpi_core_shift_r(char *input, int count, char *result) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; size_t limbs, n; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &limbs, input ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &Y, &n, result ) ); - TEST_EQUAL( limbs, n ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &limbs, input)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&Y, &n, result)); + TEST_EQUAL(limbs, n); - mbedtls_mpi_core_shift_r( X, limbs, count ); - ASSERT_COMPARE( X, limbs * ciL, Y, limbs * ciL ); + mbedtls_mpi_core_shift_r(X, limbs, count); + ASSERT_COMPARE(X, limbs * ciL, Y, limbs * ciL); exit: - mbedtls_free( X ); - mbedtls_free( Y ); + mbedtls_free(X); + mbedtls_free(Y); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_add_and_add_if( char * input_A, char * input_B, - char * input_S, int carry ) +void mpi_core_add_and_add_if(char *input_A, char *input_B, + char *input_S, int carry) { mbedtls_mpi_uint *A = NULL; /* first value to add */ mbedtls_mpi_uint *B = NULL; /* second value to add */ @@ -559,31 +542,31 @@ void mpi_core_add_and_add_if( char * input_A, char * input_B, mbedtls_mpi_uint *X = NULL; /* destination - the in/out first operand */ size_t A_limbs, B_limbs, S_limbs; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &S, &S_limbs, input_S ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&B, &B_limbs, input_B)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&S, &S_limbs, input_S)); /* add and add_if expect all operands to be the same length */ - TEST_EQUAL( A_limbs, B_limbs ); - TEST_EQUAL( A_limbs, S_limbs ); + TEST_EQUAL(A_limbs, B_limbs); + TEST_EQUAL(A_limbs, S_limbs); size_t limbs = A_limbs; - ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC(X, limbs); - TEST_ASSERT( mpi_core_verify_add( A, B, limbs, S, carry, X ) ); - TEST_ASSERT( mpi_core_verify_add_if( A, B, limbs, S, carry, X ) ); + TEST_ASSERT(mpi_core_verify_add(A, B, limbs, S, carry, X)); + TEST_ASSERT(mpi_core_verify_add_if(A, B, limbs, S, carry, X)); exit: - mbedtls_free( A ); - mbedtls_free( B ); - mbedtls_free( S ); - mbedtls_free( X ); + mbedtls_free(A); + mbedtls_free(B); + mbedtls_free(S); + mbedtls_free(X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_sub( char * input_A, char * input_B, - char * input_X, int carry ) +void mpi_core_sub(char *input_A, char *input_B, + char *input_X, int carry) { mbedtls_mpi A, B, X; mbedtls_mpi_uint *a = NULL; @@ -591,87 +574,86 @@ void mpi_core_sub( char * input_A, char * input_B, mbedtls_mpi_uint *x = NULL; /* expected */ mbedtls_mpi_uint *r = NULL; /* result */ - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&A); + mbedtls_mpi_init(&B); + mbedtls_mpi_init(&X); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&A, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&B, input_B)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&X, input_X)); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, X.s ); + TEST_EQUAL(1, A.s); + TEST_EQUAL(1, B.s); + TEST_EQUAL(1, X.s); /* Get the number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); + size_t limbs = MAX(A.n, B.n); size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X.n, limbs ); + TEST_LE_U(X.n, limbs); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( b, bytes ); - ASSERT_ALLOC( x, bytes ); - ASSERT_ALLOC( r, bytes ); + ASSERT_ALLOC(a, bytes); + ASSERT_ALLOC(b, bytes); + ASSERT_ALLOC(x, bytes); + ASSERT_ALLOC(r, bytes); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_sub()) are little endian, we can just * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()) */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( b, B.p, B.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X.p, X.n * sizeof(mbedtls_mpi_uint) ); + memcpy(a, A.p, A.n * sizeof(mbedtls_mpi_uint)); + memcpy(b, B.p, B.n * sizeof(mbedtls_mpi_uint)); + memcpy(x, X.p, X.n * sizeof(mbedtls_mpi_uint)); /* 1a) r = a - b => we should get the correct carry */ - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, b, limbs ) ); + TEST_EQUAL(carry, mbedtls_mpi_core_sub(r, a, b, limbs)); /* 1b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); + ASSERT_COMPARE(r, bytes, x, bytes); /* 2 and 3 test "r may be aliased to a or b" */ /* 2a) r = a; r -= b => we should get the correct carry (use r to avoid clobbering a) */ - memcpy( r, a, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, b, limbs ) ); + memcpy(r, a, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_sub(r, r, b, limbs)); /* 2b) r -= b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); + ASSERT_COMPARE(r, bytes, x, bytes); /* 3a) r = b; r = a - r => we should get the correct carry (use r to avoid clobbering b) */ - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, a, r, limbs ) ); + memcpy(r, b, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_sub(r, a, r, limbs)); /* 3b) r = a - b => we should get the correct result */ - ASSERT_COMPARE( r, bytes, x, bytes ); + ASSERT_COMPARE(r, bytes, x, bytes); /* 4 tests "r may be aliased to [...] both" */ - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { - memcpy( r, b, bytes ); - TEST_EQUAL( carry, mbedtls_mpi_core_sub( r, r, r, limbs ) ); - ASSERT_COMPARE( r, bytes, x, bytes ); + if (A.n == B.n && memcmp(A.p, B.p, bytes) == 0) { + memcpy(r, b, bytes); + TEST_EQUAL(carry, mbedtls_mpi_core_sub(r, r, r, limbs)); + ASSERT_COMPARE(r, bytes, x, bytes); } exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( x ); - mbedtls_free( r ); + mbedtls_free(a); + mbedtls_free(b); + mbedtls_free(x); + mbedtls_free(r); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&A); + mbedtls_mpi_free(&B); + mbedtls_mpi_free(&X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_mla( char * input_A, char * input_B, char * input_S, - char * input_X4, char * input_cy4, - char * input_X8, char * input_cy8 ) +void mpi_core_mla(char *input_A, char *input_B, char *input_S, + char *input_X4, char *input_cy4, + char *input_X8, char *input_cy8) { /* We are testing A += B * s; A, B are MPIs, s is a scalar. * @@ -685,98 +667,97 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S, mbedtls_mpi_uint *a = NULL; mbedtls_mpi_uint *x = NULL; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &S ); - mbedtls_mpi_init( &X4 ); - mbedtls_mpi_init( &X8 ); - mbedtls_mpi_init( &cy4 ); - mbedtls_mpi_init( &cy8 ); + mbedtls_mpi_init(&A); + mbedtls_mpi_init(&B); + mbedtls_mpi_init(&S); + mbedtls_mpi_init(&X4); + mbedtls_mpi_init(&X8); + mbedtls_mpi_init(&cy4); + mbedtls_mpi_init(&cy8); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &S, input_S ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy4, input_cy4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &cy8, input_cy8 ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&A, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&B, input_B)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&S, input_S)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&X4, input_X4)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&cy4, input_cy4)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&X8, input_X8)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&cy8, input_cy8)); /* The MPI encoding of scalar s must be only 1 limb */ - TEST_EQUAL( 1, S.n ); + TEST_EQUAL(1, S.n); /* We only need to work with X4 or X8, and cy4 or cy8, depending on sizeof(mbedtls_mpi_uint) */ - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; - mbedtls_mpi *cy = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &cy4 : &cy8; + mbedtls_mpi *X = (sizeof(mbedtls_mpi_uint) == 4) ? &X4 : &X8; + mbedtls_mpi *cy = (sizeof(mbedtls_mpi_uint) == 4) ? &cy4 : &cy8; /* The carry should only have one limb */ - TEST_EQUAL( 1, cy->n ); + TEST_EQUAL(1, cy->n); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, S.s ); - TEST_EQUAL( 1, X->s ); - TEST_EQUAL( 1, cy->s ); + TEST_EQUAL(1, A.s); + TEST_EQUAL(1, B.s); + TEST_EQUAL(1, S.s); + TEST_EQUAL(1, X->s); + TEST_EQUAL(1, cy->s); /* Get the (max) number of limbs we will need */ - size_t limbs = MAX( A.n, B.n ); + size_t limbs = MAX(A.n, B.n); size_t bytes = limbs * sizeof(mbedtls_mpi_uint); /* The result shouldn't have more limbs than the longest input */ - TEST_LE_U( X->n, limbs ); + TEST_LE_U(X->n, limbs); /* Now let's get arrays of mbedtls_mpi_uints, rather than MPI structures */ /* ASSERT_ALLOC() uses calloc() under the hood, so these do get zeroed */ - ASSERT_ALLOC( a, bytes ); - ASSERT_ALLOC( x, bytes ); + ASSERT_ALLOC(a, bytes); + ASSERT_ALLOC(x, bytes); /* Populate the arrays. As the mbedtls_mpi_uint[]s in mbedtls_mpis (and as * processed by mbedtls_mpi_core_mla()) are little endian, we can just * copy what we have as long as MSBs are 0 (which they are from ASSERT_ALLOC()). */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - memcpy( x, X->p, X->n * sizeof(mbedtls_mpi_uint) ); + memcpy(a, A.p, A.n * sizeof(mbedtls_mpi_uint)); + memcpy(x, X->p, X->n * sizeof(mbedtls_mpi_uint)); /* 1a) A += B * s => we should get the correct carry */ - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, B.p, B.n, *S.p ), *cy->p ); + TEST_EQUAL(mbedtls_mpi_core_mla(a, limbs, B.p, B.n, *S.p), *cy->p); /* 1b) A += B * s => we should get the correct result */ - ASSERT_COMPARE( a, bytes, x, bytes ); + ASSERT_COMPARE(a, bytes, x, bytes); - if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 ) - { + if (A.n == B.n && memcmp(A.p, B.p, bytes) == 0) { /* Check when A and B are aliased */ - memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) ); - TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p ); - ASSERT_COMPARE( a, bytes, x, bytes ); + memcpy(a, A.p, A.n * sizeof(mbedtls_mpi_uint)); + TEST_EQUAL(mbedtls_mpi_core_mla(a, limbs, a, limbs, *S.p), *cy->p); + ASSERT_COMPARE(a, bytes, x, bytes); } exit: - mbedtls_free( a ); - mbedtls_free( x ); + mbedtls_free(a); + mbedtls_free(x); - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &S ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &cy4 ); - mbedtls_mpi_free( &cy8 ); + mbedtls_mpi_free(&A); + mbedtls_mpi_free(&B); + mbedtls_mpi_free(&S); + mbedtls_mpi_free(&X4); + mbedtls_mpi_free(&X8); + mbedtls_mpi_free(&cy4); + mbedtls_mpi_free(&cy8); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_montg_init( char * input_N, char * input_mm ) +void mpi_montg_init(char *input_N, char *input_mm) { mbedtls_mpi N, mm; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &mm ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&mm); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &mm, input_mm ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&N, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&mm, input_mm)); /* The MPI encoding of mm should be 1 limb (sizeof(mbedtls_mpi_uint) == 8) or * 2 limbs (sizeof(mbedtls_mpi_uint) == 4). @@ -784,244 +765,240 @@ void mpi_montg_init( char * input_N, char * input_mm ) * The data file contains the expected result for sizeof(mbedtls_mpi_uint) == 8; * for sizeof(mbedtls_mpi_uint) == 4 it's just the LSW of this. */ - TEST_ASSERT( mm.n == 1 || mm.n == 2 ); + TEST_ASSERT(mm.n == 1 || mm.n == 2); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, mm.s ); + TEST_EQUAL(1, N.s); + TEST_EQUAL(1, mm.s); /* mbedtls_mpi_core_montmul_init() only returns a result, no error possible */ - mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init( N.p ); + mbedtls_mpi_uint result = mbedtls_mpi_core_montmul_init(N.p); /* Check we got the correct result */ - TEST_EQUAL( result, mm.p[0] ); + TEST_EQUAL(result, mm.p[0]); exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &mm ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&mm); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_montmul( int limbs_AN4, int limbs_B4, - int limbs_AN8, int limbs_B8, - char * input_A, - char * input_B, - char * input_N, - char * input_X4, - char * input_X8 ) +void mpi_core_montmul(int limbs_AN4, int limbs_B4, + int limbs_AN8, int limbs_B8, + char *input_A, + char *input_B, + char *input_N, + char *input_X4, + char *input_X8) { mbedtls_mpi A, B, N, X4, X8, T, R; - mbedtls_mpi_init( &A ); - mbedtls_mpi_init( &B ); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &X4 ); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ - mbedtls_mpi_init( &X8 ); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ - mbedtls_mpi_init( &T ); - mbedtls_mpi_init( &R ); /* for the result */ + mbedtls_mpi_init(&A); + mbedtls_mpi_init(&B); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&X4); /* expected result, sizeof(mbedtls_mpi_uint) == 4 */ + mbedtls_mpi_init(&X8); /* expected result, sizeof(mbedtls_mpi_uint) == 8 */ + mbedtls_mpi_init(&T); + mbedtls_mpi_init(&R); /* for the result */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &A, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &B, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X4, input_X4 ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &X8, input_X8 ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&A, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&B, input_B)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&N, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&X4, input_X4)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&X8, input_X8)); - mbedtls_mpi *X = ( sizeof(mbedtls_mpi_uint) == 4 ) ? &X4 : &X8; + mbedtls_mpi *X = (sizeof(mbedtls_mpi_uint) == 4) ? &X4 : &X8; - int limbs_AN = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_AN4 : limbs_AN8; - int limbs_B = ( sizeof(mbedtls_mpi_uint) == 4 ) ? limbs_B4 : limbs_B8; + int limbs_AN = (sizeof(mbedtls_mpi_uint) == 4) ? limbs_AN4 : limbs_AN8; + int limbs_B = (sizeof(mbedtls_mpi_uint) == 4) ? limbs_B4 : limbs_B8; - TEST_LE_U( A.n, (size_t)limbs_AN ); - TEST_LE_U( X->n, (size_t)limbs_AN ); - TEST_LE_U( B.n, (size_t)limbs_B ); - TEST_LE_U( limbs_B, limbs_AN ); + TEST_LE_U(A.n, (size_t) limbs_AN); + TEST_LE_U(X->n, (size_t) limbs_AN); + TEST_LE_U(B.n, (size_t) limbs_B); + TEST_LE_U(limbs_B, limbs_AN); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, A.s ); - TEST_EQUAL( 1, B.s ); - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, X->s ); + TEST_EQUAL(1, A.s); + TEST_EQUAL(1, B.s); + TEST_EQUAL(1, N.s); + TEST_EQUAL(1, X->s); - TEST_EQUAL( 0, mbedtls_mpi_grow( &A, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &N, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( X, limbs_AN ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &B, limbs_B ) ); + TEST_EQUAL(0, mbedtls_mpi_grow(&A, limbs_AN)); + TEST_EQUAL(0, mbedtls_mpi_grow(&N, limbs_AN)); + TEST_EQUAL(0, mbedtls_mpi_grow(X, limbs_AN)); + TEST_EQUAL(0, mbedtls_mpi_grow(&B, limbs_B)); - size_t working_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs_AN ); - TEST_EQUAL( working_limbs, limbs_AN * 2 + 1 ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &T, working_limbs ) ); + size_t working_limbs = mbedtls_mpi_core_montmul_working_limbs(limbs_AN); + TEST_EQUAL(working_limbs, limbs_AN * 2 + 1); + TEST_EQUAL(0, mbedtls_mpi_grow(&T, working_limbs)); /* Calculate the Montgomery constant (this is unit tested separately) */ - mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init( N.p ); + mbedtls_mpi_uint mm = mbedtls_mpi_core_montmul_init(N.p); - TEST_EQUAL( 0, mbedtls_mpi_grow( &R, limbs_AN ) ); /* ensure it's got the right number of limbs */ + TEST_EQUAL(0, mbedtls_mpi_grow(&R, limbs_AN)); /* ensure it's got the right number of limbs */ - mbedtls_mpi_core_montmul( R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); + mbedtls_mpi_core_montmul(R.p, A.p, B.p, B.n, N.p, N.n, mm, T.p); size_t bytes = N.n * sizeof(mbedtls_mpi_uint); - ASSERT_COMPARE( R.p, bytes, X->p, bytes ); + ASSERT_COMPARE(R.p, bytes, X->p, bytes); /* The output (R, above) may be aliased to A - use R to save the value of A */ - memcpy( R.p, A.p, bytes ); + memcpy(R.p, A.p, bytes); - mbedtls_mpi_core_montmul( A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( A.p, bytes, X->p, bytes ); + mbedtls_mpi_core_montmul(A.p, A.p, B.p, B.n, N.p, N.n, mm, T.p); + ASSERT_COMPARE(A.p, bytes, X->p, bytes); - memcpy( A.p, R.p, bytes ); /* restore A */ + memcpy(A.p, R.p, bytes); /* restore A */ /* The output may be aliased to N - use R to save the value of N */ - memcpy( R.p, N.p, bytes ); + memcpy(R.p, N.p, bytes); - mbedtls_mpi_core_montmul( N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( N.p, bytes, X->p, bytes ); + mbedtls_mpi_core_montmul(N.p, A.p, B.p, B.n, N.p, N.n, mm, T.p); + ASSERT_COMPARE(N.p, bytes, X->p, bytes); - memcpy( N.p, R.p, bytes ); + memcpy(N.p, R.p, bytes); - if (limbs_AN == limbs_B) - { + if (limbs_AN == limbs_B) { /* Test when A aliased to B (requires A == B on input values) */ - if ( memcmp( A.p, B.p, bytes ) == 0 ) - { + if (memcmp(A.p, B.p, bytes) == 0) { /* Test with A aliased to B and output, since this is permitted - * don't bother with yet another test with only A and B aliased */ - mbedtls_mpi_core_montmul( B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + mbedtls_mpi_core_montmul(B.p, B.p, B.p, B.n, N.p, N.n, mm, T.p); + ASSERT_COMPARE(B.p, bytes, X->p, bytes); - memcpy( B.p, A.p, bytes ); /* restore B from equal value A */ + memcpy(B.p, A.p, bytes); /* restore B from equal value A */ } /* The output may be aliased to B - last test, so we don't save B */ - mbedtls_mpi_core_montmul( B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p ); - ASSERT_COMPARE( B.p, bytes, X->p, bytes ); + mbedtls_mpi_core_montmul(B.p, A.p, B.p, B.n, N.p, N.n, mm, T.p); + ASSERT_COMPARE(B.p, bytes, X->p, bytes); } exit: - mbedtls_mpi_free( &A ); - mbedtls_mpi_free( &B ); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &X4 ); - mbedtls_mpi_free( &X8 ); - mbedtls_mpi_free( &T ); - mbedtls_mpi_free( &R ); + mbedtls_mpi_free(&A); + mbedtls_mpi_free(&B); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&X4); + mbedtls_mpi_free(&X8); + mbedtls_mpi_free(&T); + mbedtls_mpi_free(&R); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe_neg( ) +void mpi_core_get_mont_r2_unsafe_neg() { mbedtls_mpi N, RR; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - const char * n = "7ffffffffffffff1"; + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&RR); + const char *n = "7ffffffffffffff1"; /* Test for zero divisor */ - TEST_EQUAL( MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO, + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N)); /* Test for negative input */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, n ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&N, n)); N.s = -1; - TEST_EQUAL( MBEDTLS_ERR_MPI_NEGATIVE_VALUE, - mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_NEGATIVE_VALUE, + mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N)); N.s = 1; exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_get_mont_r2_unsafe( char * input_N, - char * input_RR_X4, - char * input_RR_X8 ) +void mpi_core_get_mont_r2_unsafe(char *input_N, + char *input_RR_X4, + char *input_RR_X8) { mbedtls_mpi N, RR, RR_REF; /* Select the appropriate output */ - char * input_rr = ( sizeof(mbedtls_mpi_uint) == 4 ) ? input_RR_X4: input_RR_X8; + char *input_rr = (sizeof(mbedtls_mpi_uint) == 4) ? input_RR_X4 : input_RR_X8; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &RR ); - mbedtls_mpi_init( &RR_REF ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&RR); + mbedtls_mpi_init(&RR_REF); /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi( &N, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &RR_REF, input_rr ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&N, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi(&RR_REF, input_rr)); /* All of the inputs are +ve (or zero) */ - TEST_EQUAL( 1, N.s ); - TEST_EQUAL( 1, RR_REF.s ); + TEST_EQUAL(1, N.s); + TEST_EQUAL(1, RR_REF.s); /* Test valid input */ - TEST_EQUAL( 0, mbedtls_mpi_core_get_mont_r2_unsafe( &RR, &N ) ); + TEST_EQUAL(0, mbedtls_mpi_core_get_mont_r2_unsafe(&RR, &N)); /* Test that the moduli is odd */ - TEST_EQUAL( N.p[0] ^ 1, N.p[0] - 1 ); + TEST_EQUAL(N.p[0] ^ 1, N.p[0] - 1); - /* Output is +ve (or zero) */ - TEST_EQUAL( 1, RR_REF.s ); + /* Output is +ve (or zero) */ + TEST_EQUAL(1, RR_REF.s); /* rr is updated to a valid pointer */ - TEST_ASSERT( RR.p != NULL ); + TEST_ASSERT(RR.p != NULL); /* Calculated rr matches expected value */ - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &RR, &RR_REF ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&RR, &RR_REF) == 0); exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &RR ); - mbedtls_mpi_free( &RR_REF ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&RR); + mbedtls_mpi_free(&RR_REF); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ -void mpi_core_ct_uint_table_lookup( int bitlen, int window_size ) +void mpi_core_ct_uint_table_lookup(int bitlen, int window_size) { - size_t limbs = BITS_TO_LIMBS( bitlen ); - size_t count = ( (size_t) 1 ) << window_size; + size_t limbs = BITS_TO_LIMBS(bitlen); + size_t count = ((size_t) 1) << window_size; mbedtls_mpi_uint *table = NULL; mbedtls_mpi_uint *dest = NULL; - ASSERT_ALLOC( table, limbs * count ); - ASSERT_ALLOC( dest, limbs ); + ASSERT_ALLOC(table, limbs * count); + ASSERT_ALLOC(dest, limbs); /* * Fill the table with a unique counter so that differences are easily * detected. (And have their relationship to the index relatively non-trivial just * to be sure.) */ - for( size_t i = 0; i < count * limbs; i++ ) - { + for (size_t i = 0; i < count * limbs; i++) { table[i] = ~i - 1; } - for( size_t i = 0; i < count; i++ ) - { + for (size_t i = 0; i < count; i++) { mbedtls_mpi_uint *current = table + i * limbs; - memset( dest, 0x00, limbs * sizeof( *dest ) ); + memset(dest, 0x00, limbs * sizeof(*dest)); /* * We shouldn't leak anything through timing. * We need to set these in every loop as we need to make the loop * variable public for the loop head and the buffers for comparison. */ - TEST_CF_SECRET( &i, sizeof( i ) ); - TEST_CF_SECRET( dest, limbs * sizeof( *dest ) ); - TEST_CF_SECRET( table, count * limbs * sizeof( *table ) ); + TEST_CF_SECRET(&i, sizeof(i)); + TEST_CF_SECRET(dest, limbs * sizeof(*dest)); + TEST_CF_SECRET(table, count * limbs * sizeof(*table)); - mbedtls_mpi_core_ct_uint_table_lookup( dest, table, limbs, count, i ); + mbedtls_mpi_core_ct_uint_table_lookup(dest, table, limbs, count, i); - TEST_CF_PUBLIC( dest, limbs * sizeof( *dest ) ); - TEST_CF_PUBLIC( table, count * limbs * sizeof( *table ) ); - ASSERT_COMPARE( dest, limbs * sizeof( *dest ), - current, limbs * sizeof( *current ) ); - TEST_CF_PUBLIC( &i, sizeof( i ) ); + TEST_CF_PUBLIC(dest, limbs * sizeof(*dest)); + TEST_CF_PUBLIC(table, count * limbs * sizeof(*table)); + ASSERT_COMPARE(dest, limbs * sizeof(*dest), + current, limbs * sizeof(*current)); + TEST_CF_PUBLIC(&i, sizeof(i)); } exit: @@ -1031,63 +1008,60 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_fill_random( int wanted_bytes_arg, int extra_rng_bytes, - int extra_limbs, int before, int expected_ret ) +void mpi_core_fill_random(int wanted_bytes_arg, int extra_rng_bytes, + int extra_limbs, int before, int expected_ret) { size_t wanted_bytes = wanted_bytes_arg; mbedtls_mpi_uint *X = NULL; - size_t X_limbs = CHARS_TO_LIMBS( wanted_bytes ) + extra_limbs; + size_t X_limbs = CHARS_TO_LIMBS(wanted_bytes) + extra_limbs; size_t rng_bytes = wanted_bytes + extra_rng_bytes; unsigned char *rnd_data = NULL; - mbedtls_test_rnd_buf_info rnd_info = {NULL, rng_bytes, NULL, NULL}; + mbedtls_test_rnd_buf_info rnd_info = { NULL, rng_bytes, NULL, NULL }; int ret; /* Prepare an RNG with known output, limited to rng_bytes. */ - ASSERT_ALLOC( rnd_data, rng_bytes ); - TEST_EQUAL( 0, mbedtls_test_rnd_std_rand( NULL, rnd_data, rng_bytes ) ); + ASSERT_ALLOC(rnd_data, rng_bytes); + TEST_EQUAL(0, mbedtls_test_rnd_std_rand(NULL, rnd_data, rng_bytes)); rnd_info.buf = rnd_data; /* Allocate an MPI with room for wanted_bytes plus extra_limbs. * extra_limbs may be negative but the total limb count must be positive. * Fill the MPI with the byte value in before. */ - TEST_LE_U( 1, X_limbs ); - ASSERT_ALLOC( X, X_limbs ); - memset( X, before, X_limbs * sizeof( *X ) ); + TEST_LE_U(1, X_limbs); + ASSERT_ALLOC(X, X_limbs); + memset(X, before, X_limbs * sizeof(*X)); - ret = mbedtls_mpi_core_fill_random( X, X_limbs, wanted_bytes, - mbedtls_test_rnd_buffer_rand, - &rnd_info ); - TEST_EQUAL( expected_ret, ret ); + ret = mbedtls_mpi_core_fill_random(X, X_limbs, wanted_bytes, + mbedtls_test_rnd_buffer_rand, + &rnd_info); + TEST_EQUAL(expected_ret, ret); - if( expected_ret == 0 ) - { + if (expected_ret == 0) { /* mbedtls_mpi_core_fill_random is documented to use bytes from the * RNG as a big-endian representation of the number. We used an RNG * with known output, so check that the output contains the * expected value. Bytes above wanted_bytes must be zero. */ - for( size_t i = 0; i < wanted_bytes; i++ ) - { - mbedtls_test_set_step( i ); - TEST_EQUAL( GET_BYTE( X, i ), rnd_data[wanted_bytes - 1 - i] ); + for (size_t i = 0; i < wanted_bytes; i++) { + mbedtls_test_set_step(i); + TEST_EQUAL(GET_BYTE(X, i), rnd_data[wanted_bytes - 1 - i]); } - for( size_t i = wanted_bytes; i < X_limbs * ciL; i++ ) - { - mbedtls_test_set_step( i ); - TEST_EQUAL( GET_BYTE( X, i ), 0 ); + for (size_t i = wanted_bytes; i < X_limbs * ciL; i++) { + mbedtls_test_set_step(i); + TEST_EQUAL(GET_BYTE(X, i), 0); } } exit: - mbedtls_free( rnd_data ); - mbedtls_free( X ); + mbedtls_free(rnd_data); + mbedtls_free(X); } /* END_CASE */ /* BEGIN MERGE SLOT 1 */ /* BEGIN_CASE */ -void mpi_core_exp_mod( char * input_N, char * input_A, - char * input_E, char * input_X ) +void mpi_core_exp_mod(char *input_N, char *input_A, + char *input_E, char *input_X) { mbedtls_mpi_uint *A = NULL; mbedtls_mpi_uint *E = NULL; @@ -1099,29 +1073,29 @@ void mpi_core_exp_mod( char * input_N, char * input_A, mbedtls_mpi_uint *T = NULL; /* Legacy MPIs for computing R2 */ mbedtls_mpi N_mpi; - mbedtls_mpi_init( &N_mpi ); + mbedtls_mpi_init(&N_mpi); mbedtls_mpi R2_mpi; - mbedtls_mpi_init( &R2_mpi ); + mbedtls_mpi_init(&R2_mpi); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &E, &E_limbs, input_E ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &N_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); - ASSERT_ALLOC( Y, N_limbs ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&E, &E_limbs, input_E)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &N_limbs, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); + ASSERT_ALLOC(Y, N_limbs); - TEST_EQUAL( A_limbs, N_limbs ); - TEST_EQUAL( X_limbs, N_limbs ); + TEST_EQUAL(A_limbs, N_limbs); + TEST_EQUAL(X_limbs, N_limbs); - TEST_EQUAL( 0, mbedtls_mpi_grow( &N_mpi, N_limbs ) ); - memcpy( N_mpi.p, N, N_limbs * sizeof( *N ) ); + TEST_EQUAL(0, mbedtls_mpi_grow(&N_mpi, N_limbs)); + memcpy(N_mpi.p, N, N_limbs * sizeof(*N)); N_mpi.n = N_limbs; - TEST_EQUAL( 0, - mbedtls_mpi_core_get_mont_r2_unsafe( &R2_mpi, &N_mpi ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &R2_mpi, N_limbs ) ); + TEST_EQUAL(0, + mbedtls_mpi_core_get_mont_r2_unsafe(&R2_mpi, &N_mpi)); + TEST_EQUAL(0, mbedtls_mpi_grow(&R2_mpi, N_limbs)); R2 = R2_mpi.p; - size_t working_limbs = mbedtls_mpi_core_exp_mod_working_limbs( N_limbs, - E_limbs ); + size_t working_limbs = mbedtls_mpi_core_exp_mod_working_limbs(N_limbs, + E_limbs); /* No point exactly duplicating the code in mbedtls_mpi_core_exp_mod_working_limbs() * to see if the output is correct, but we can check that it's in a @@ -1132,34 +1106,34 @@ void mpi_core_exp_mod( char * input_N, char * input_A, size_t min_expected_working_limbs = 1 + N_limbs * 4; size_t max_expected_working_limbs = 1 + N_limbs * 67; - TEST_LE_U( min_expected_working_limbs, working_limbs ); - TEST_LE_U( working_limbs, max_expected_working_limbs ); + TEST_LE_U(min_expected_working_limbs, working_limbs); + TEST_LE_U(working_limbs, max_expected_working_limbs); /* Should also be at least mbedtls_mpi_core_montmul_working_limbs() */ - TEST_LE_U( mbedtls_mpi_core_montmul_working_limbs( N_limbs ), - working_limbs ); + TEST_LE_U(mbedtls_mpi_core_montmul_working_limbs(N_limbs), + working_limbs); - ASSERT_ALLOC( T, working_limbs ); + ASSERT_ALLOC(T, working_limbs); - mbedtls_mpi_core_exp_mod( Y, A, N, N_limbs, E, E_limbs, R2, T ); + mbedtls_mpi_core_exp_mod(Y, A, N, N_limbs, E, E_limbs, R2, T); - TEST_EQUAL( 0, memcmp( X, Y, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + TEST_EQUAL(0, memcmp(X, Y, N_limbs * sizeof(mbedtls_mpi_uint))); /* Check when output aliased to input */ - mbedtls_mpi_core_exp_mod( A, A, N, N_limbs, E, E_limbs, R2, T ); + mbedtls_mpi_core_exp_mod(A, A, N, N_limbs, E, E_limbs, R2, T); - TEST_EQUAL( 0, memcmp( X, A, N_limbs * sizeof( mbedtls_mpi_uint ) ) ); + TEST_EQUAL(0, memcmp(X, A, N_limbs * sizeof(mbedtls_mpi_uint))); exit: - mbedtls_free( T ); - mbedtls_free( A ); - mbedtls_free( E ); - mbedtls_free( N ); - mbedtls_free( X ); - mbedtls_free( Y ); - mbedtls_mpi_free( &N_mpi ); - mbedtls_mpi_free( &R2_mpi ); + mbedtls_free(T); + mbedtls_free(A); + mbedtls_free(E); + mbedtls_free(N); + mbedtls_free(X); + mbedtls_free(Y); + mbedtls_mpi_free(&N_mpi); + mbedtls_mpi_free(&R2_mpi); // R2 doesn't need to be freed as it is only aliasing R2_mpi } /* END_CASE */ @@ -1173,8 +1147,8 @@ exit: /* BEGIN MERGE SLOT 3 */ /* BEGIN_CASE */ -void mpi_core_sub_int( char * input_A, char * input_B, - char * input_X, int borrow ) +void mpi_core_sub_int(char *input_A, char *input_B, + char *input_X, int borrow) { /* We are testing A - b, where A is an MPI and b is a scalar, expecting * result X with borrow borrow. However, for ease of handling we encode b @@ -1186,54 +1160,54 @@ void mpi_core_sub_int( char * input_A, char * input_B, mbedtls_mpi_uint *R = NULL; size_t A_limbs, B_limbs, X_limbs; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &B, &B_limbs, input_B ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&B, &B_limbs, input_B)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); /* The MPI encoding of scalar b must be only 1 limb */ - TEST_EQUAL( B_limbs, 1 ); + TEST_EQUAL(B_limbs, 1); /* The subtraction is fixed-width, so A and X must have the same number of limbs */ - TEST_EQUAL( A_limbs, X_limbs ); + TEST_EQUAL(A_limbs, X_limbs); size_t limbs = A_limbs; - ASSERT_ALLOC( R, limbs ); + ASSERT_ALLOC(R, limbs); -#define TEST_COMPARE_CORE_MPIS( A, B, limbs ) \ - ASSERT_COMPARE( A, (limbs) * sizeof(mbedtls_mpi_uint), B, (limbs) * sizeof(mbedtls_mpi_uint) ) +#define TEST_COMPARE_CORE_MPIS(A, B, limbs) \ + ASSERT_COMPARE(A, (limbs) * sizeof(mbedtls_mpi_uint), B, (limbs) * sizeof(mbedtls_mpi_uint)) /* 1. R = A - b. Result and borrow should be correct */ - TEST_EQUAL( mbedtls_mpi_core_sub_int( R, A, B[0], limbs ), borrow ); - TEST_COMPARE_CORE_MPIS( R, X, limbs ); + TEST_EQUAL(mbedtls_mpi_core_sub_int(R, A, B[0], limbs), borrow); + TEST_COMPARE_CORE_MPIS(R, X, limbs); /* 2. A = A - b. Result and borrow should be correct */ - TEST_EQUAL( mbedtls_mpi_core_sub_int( A, A, B[0], limbs ), borrow ); - TEST_COMPARE_CORE_MPIS( A, X, limbs ); + TEST_EQUAL(mbedtls_mpi_core_sub_int(A, A, B[0], limbs), borrow); + TEST_COMPARE_CORE_MPIS(A, X, limbs); exit: - mbedtls_free( A ); - mbedtls_free( B ); - mbedtls_free( X ); - mbedtls_free( R ); + mbedtls_free(A); + mbedtls_free(B); + mbedtls_free(X); + mbedtls_free(R); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_core_check_zero_ct( char *input_X, int expected_is_zero ) +void mpi_core_check_zero_ct(char *input_X, int expected_is_zero) { mbedtls_mpi_uint *X = NULL; size_t X_limbs; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); - TEST_CF_SECRET( X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_CF_SECRET(X, X_limbs * sizeof(mbedtls_mpi_uint)); - mbedtls_mpi_uint check = mbedtls_mpi_core_check_zero_ct( X, X_limbs ); + mbedtls_mpi_uint check = mbedtls_mpi_core_check_zero_ct(X, X_limbs); int is_zero = (check == 0); - TEST_EQUAL( is_zero, expected_is_zero ); + TEST_EQUAL(is_zero, expected_is_zero); exit: - mbedtls_free( X ); + mbedtls_free(X); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function index 8ab8ccf32..ded4c0cb4 100644 --- a/tests/suites/test_suite_bignum_mod.function +++ b/tests/suites/test_suite_bignum_mod.function @@ -6,45 +6,46 @@ #include "constant_time_internal.h" #include "test/constant_flow.h" -#define TEST_COMPARE_MPI_RESIDUES( a, b ) \ - ASSERT_COMPARE( (a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \ - (b).p, (b).limbs * sizeof(mbedtls_mpi_uint) ) +#define TEST_COMPARE_MPI_RESIDUES(a, b) \ + ASSERT_COMPARE((a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \ + (b).p, (b).limbs * sizeof(mbedtls_mpi_uint)) -static int test_read_modulus( mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_mod_rep_selector int_rep, - char *input ) +static int test_read_modulus(mbedtls_mpi_mod_modulus *m, + mbedtls_mpi_mod_rep_selector int_rep, + char *input) { mbedtls_mpi_uint *p = NULL; size_t limbs; - int ret = mbedtls_test_read_mpi_core( &p, &limbs, input ); - if( ret != 0 ) - return( ret ); + int ret = mbedtls_test_read_mpi_core(&p, &limbs, input); + if (ret != 0) { + return ret; + } - return( mbedtls_mpi_mod_modulus_setup( m, p, limbs, int_rep ) ); + return mbedtls_mpi_mod_modulus_setup(m, p, limbs, int_rep); } -static int test_read_residue( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - char *input, - int skip_limbs_and_value_checks ) +static int test_read_residue(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *m, + char *input, + int skip_limbs_and_value_checks) { mbedtls_mpi_uint *p = NULL; size_t limbs; - int ret = mbedtls_test_read_mpi_core( &p, &limbs, input ); - if( ret != 0 ) - return( ret ); + int ret = mbedtls_test_read_mpi_core(&p, &limbs, input); + if (ret != 0) { + return ret; + } - if( skip_limbs_and_value_checks ) - { + if (skip_limbs_and_value_checks) { r->p = p; r->limbs = limbs; - return( 0 ); + return 0; } /* mbedtls_mpi_mod_residue_setup() checks limbs, and that value < m */ - return( mbedtls_mpi_mod_residue_setup( r, m, p, limbs ) ); + return mbedtls_mpi_mod_residue_setup(r, m, p, limbs); } /* END_HEADER */ @@ -54,44 +55,42 @@ static int test_read_residue( mbedtls_mpi_mod_residue *r, */ /* BEGIN_CASE */ -void mpi_mod_setup( int int_rep, int iret ) +void mpi_mod_setup(int int_rep, int iret) { #define MLIMBS 8 mbedtls_mpi_uint mp[MLIMBS]; mbedtls_mpi_mod_modulus m; int ret; - memset( mp, 0xFF, sizeof(mp) ); + memset(mp, 0xFF, sizeof(mp)); - mbedtls_mpi_mod_modulus_init( &m ); - ret = mbedtls_mpi_mod_modulus_setup( &m, mp, MLIMBS, int_rep ); - TEST_EQUAL( ret, iret ); + mbedtls_mpi_mod_modulus_init(&m); + ret = mbedtls_mpi_mod_modulus_setup(&m, mp, MLIMBS, int_rep); + TEST_EQUAL(ret, iret); /* Only test if the constants have been set-up */ - if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - { + if (ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { /* Test that the consts have been calculated */ - TEST_ASSERT( m.rep.mont.rr != NULL ); - TEST_ASSERT( m.rep.mont.mm != 0 ); + TEST_ASSERT(m.rep.mont.rr != NULL); + TEST_ASSERT(m.rep.mont.mm != 0); } /* Address sanitiser should catch if we try to free mp */ - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free(&m); /* Make sure that the modulus doesn't have reference to mp anymore */ - TEST_ASSERT( m.p != mp ); + TEST_ASSERT(m.p != mp); /* Only test if the constants have been set-up */ - if ( ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - { + if (ret == 0 && int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { /* Verify the data and pointers allocated have been properly wiped */ - TEST_ASSERT( m.rep.mont.rr == NULL ); - TEST_ASSERT( m.rep.mont.mm == 0 ); + TEST_ASSERT(m.rep.mont.rr == NULL); + TEST_ASSERT(m.rep.mont.mm == 0); } exit: /* It should be safe to call an mbedtls free several times */ - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free(&m); #undef MLIMBS } @@ -104,10 +103,10 @@ exit: /* BEGIN MERGE SLOT 2 */ /* BEGIN_CASE */ -void mpi_mod_mul( char * input_A, - char * input_B, - char * input_N, - char * result ) +void mpi_mod_mul(char *input_A, + char *input_B, + char *input_N, + char *result) { mbedtls_mpi_uint *X = NULL; @@ -117,85 +116,82 @@ void mpi_mod_mul( char * input_A, mbedtls_mpi_mod_residue rX = { NULL, 0 }; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), - 0 ); + TEST_EQUAL(test_read_modulus(&m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N), + 0); - TEST_EQUAL( test_read_residue( &rA, &m, input_A, 0 ), 0 ); - TEST_EQUAL( test_read_residue( &rB, &m, input_B, 0 ), 0 ); - TEST_EQUAL( test_read_residue( &rR, &m, result, 0 ), 0 ); + TEST_EQUAL(test_read_residue(&rA, &m, input_A, 0), 0); + TEST_EQUAL(test_read_residue(&rB, &m, input_B, 0), 0); + TEST_EQUAL(test_read_residue(&rR, &m, result, 0), 0); const size_t limbs = m.limbs; - const size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); + const size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( rA.limbs, limbs ); - TEST_EQUAL( rB.limbs, limbs ); - TEST_EQUAL( rR.limbs, limbs ); + TEST_EQUAL(rA.limbs, limbs); + TEST_EQUAL(rB.limbs, limbs); + TEST_EQUAL(rR.limbs, limbs); - ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC(X, limbs); - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rX, &m, X, limbs), 0); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* alias X to A */ - memcpy( rX.p, rA.p, bytes ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rB, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + memcpy(rX.p, rA.p, bytes); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rB, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* alias X to B */ - memcpy( rX.p, rB.p, bytes ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rX, &m ), 0); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + memcpy(rX.p, rB.p, bytes); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rX, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* A == B: alias A and B */ - if( memcmp( rA.p, rB.p, bytes ) == 0 ) - { - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + if (memcmp(rA.p, rB.p, bytes) == 0) { + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rA, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* X, A, B all aliased together */ - memcpy( rX.p, rA.p, bytes ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rX, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + memcpy(rX.p, rA.p, bytes); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rX, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); } - /* A != B: test B * A */ - else - { - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + else { + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rB, &rA, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* B * A: alias X to A */ - memcpy( rX.p, rA.p, bytes ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rB, &rX, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + memcpy(rX.p, rA.p, bytes); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rB, &rX, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); /* B + A: alias X to B */ - memcpy( rX.p, rB.p, bytes ); - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rX, &rA, &m ), 0 ); - ASSERT_COMPARE( rX.p, bytes, rR.p, bytes ); + memcpy(rX.p, rB.p, bytes); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rX, &rA, &m), 0); + ASSERT_COMPARE(rX.p, bytes, rR.p, bytes); } exit: - mbedtls_free( rA.p ); - mbedtls_free( rB.p ); - mbedtls_free( rR.p ); - mbedtls_free( X ); - mbedtls_free( (mbedtls_mpi_uint *) m.p ); + mbedtls_free(rA.p); + mbedtls_free(rB.p); + mbedtls_free(rR.p); + mbedtls_free(X); + mbedtls_free((mbedtls_mpi_uint *) m.p); - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free(&m); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_mul_neg( char * input_A, - char * input_B, - char * input_N, - char * result, - int exp_ret ) +void mpi_mod_mul_neg(char *input_A, + char *input_B, + char *input_N, + char *result, + int exp_ret) { mbedtls_mpi_uint *X = NULL; @@ -205,40 +201,40 @@ void mpi_mod_mul_neg( char * input_A, mbedtls_mpi_mod_residue rX = { NULL, 0 }; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); mbedtls_mpi_mod_modulus fake_m; - mbedtls_mpi_mod_modulus_init( &fake_m ); + mbedtls_mpi_mod_modulus_init(&fake_m); - TEST_EQUAL( test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ), - 0 ); + TEST_EQUAL(test_read_modulus(&m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N), + 0); - TEST_EQUAL( test_read_residue( &rA, &m, input_A, 1 ), 0 ); - TEST_EQUAL( test_read_residue( &rB, &m, input_B, 1 ), 0 ); - TEST_EQUAL( test_read_residue( &rR, &m, result, 1 ), 0 ); + TEST_EQUAL(test_read_residue(&rA, &m, input_A, 1), 0); + TEST_EQUAL(test_read_residue(&rB, &m, input_B, 1), 0); + TEST_EQUAL(test_read_residue(&rR, &m, result, 1), 0); const size_t limbs = m.limbs; - ASSERT_ALLOC( X, limbs ); + ASSERT_ALLOC(X, limbs); - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &rX, &m, X, limbs ), 0 ); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&rX, &m, X, limbs), 0); rX.limbs = rR.limbs; - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &m ), exp_ret ); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &m), exp_ret); /* Check when m is not initialized */ - TEST_EQUAL( mbedtls_mpi_mod_mul( &rX, &rA, &rB, &fake_m ), - MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_mpi_mod_mul(&rX, &rA, &rB, &fake_m), + MBEDTLS_ERR_MPI_BAD_INPUT_DATA); exit: - mbedtls_free( rA.p ); - mbedtls_free( rB.p ); - mbedtls_free( rR.p ); - mbedtls_free( X ); - mbedtls_free( (mbedtls_mpi_uint *) m.p ); + mbedtls_free(rA.p); + mbedtls_free(rB.p); + mbedtls_free(rR.p); + mbedtls_free(X); + mbedtls_free((mbedtls_mpi_uint *) m.p); - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_mpi_mod_modulus_free( &fake_m ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_mpi_mod_modulus_free(&fake_m); } /* END_CASE */ @@ -246,9 +242,9 @@ exit: /* BEGIN MERGE SLOT 3 */ /* BEGIN_CASE */ -void mpi_mod_sub( char * input_N, - char * input_A, char * input_B, - char * input_D, int expected_ret ) +void mpi_mod_sub(char *input_N, + char *input_A, char *input_B, + char *input_D, int expected_ret) { mbedtls_mpi_mod_residue a = { NULL, 0 }; mbedtls_mpi_mod_residue b = { NULL, 0 }; @@ -257,45 +253,43 @@ void mpi_mod_sub( char * input_N, mbedtls_mpi_uint *X_raw = NULL; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL( 0, - test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + TEST_EQUAL(0, + test_read_modulus(&m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N)); /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &d, &m, input_D, expected_ret != 0 ) ); + TEST_EQUAL(0, test_read_residue(&a, &m, input_A, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&b, &m, input_B, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&d, &m, input_D, expected_ret != 0)); size_t limbs = m.limbs; - size_t bytes = limbs * sizeof( *X_raw ); + size_t bytes = limbs * sizeof(*X_raw); - if( expected_ret == 0 ) - { + if (expected_ret == 0) { /* Negative test with too many limbs in output */ - ASSERT_ALLOC( X_raw, limbs + 1 ); + ASSERT_ALLOC(X_raw, limbs + 1); x.p = X_raw; x.limbs = limbs + 1; - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_sub(&x, &a, &b, &m)); - mbedtls_free( X_raw ); + mbedtls_free(X_raw); X_raw = NULL; /* Negative test with too few limbs in output */ - if( limbs > 1 ) - { - ASSERT_ALLOC( X_raw, limbs - 1 ); + if (limbs > 1) { + ASSERT_ALLOC(X_raw, limbs - 1); x.p = X_raw; x.limbs = limbs - 1; - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_sub(&x, &a, &b, &m)); - mbedtls_free( X_raw ); + mbedtls_free(X_raw); X_raw = NULL; } @@ -303,56 +297,56 @@ void mpi_mod_sub( char * input_N, * manually-written test cases with expected_ret != 0. */ } - ASSERT_ALLOC( X_raw, limbs ); + ASSERT_ALLOC(X_raw, limbs); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &m, X_raw, limbs)); /* a - b => Correct result, or expected error */ - TEST_EQUAL( expected_ret, mbedtls_mpi_mod_sub( &x, &a, &b, &m ) ); - if( expected_ret != 0 ) + TEST_EQUAL(expected_ret, mbedtls_mpi_mod_sub(&x, &a, &b, &m)); + if (expected_ret != 0) { goto exit; + } - TEST_COMPARE_MPI_RESIDUES( x, d ); + TEST_COMPARE_MPI_RESIDUES(x, d); /* a - b: alias x to a => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &x, &b, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, d ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &x, &b, &m)); + TEST_COMPARE_MPI_RESIDUES(x, d); /* a - b: alias x to b => Correct result */ - memcpy( x.p, b.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &a, &x, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, d ); + memcpy(x.p, b.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &a, &x, &m)); + TEST_COMPARE_MPI_RESIDUES(x, d); - if ( memcmp( a.p, b.p, bytes ) == 0 ) - { + if (memcmp(a.p, b.p, bytes) == 0) { /* a == b: alias a and b */ /* a - a => Correct result */ - TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &a, &a, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, d ); + TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &a, &a, &m)); + TEST_COMPARE_MPI_RESIDUES(x, d); /* a - a: x, a, b all aliased together => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_sub( &x, &x, &x, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, d ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_sub(&x, &x, &x, &m)); + TEST_COMPARE_MPI_RESIDUES(x, d); } exit: - mbedtls_free( (void *)m.p ); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free((void *) m.p); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ + mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free( a.p ); - mbedtls_free( b.p ); - mbedtls_free( d.p ); - mbedtls_free( X_raw ); + mbedtls_free(a.p); + mbedtls_free(b.p); + mbedtls_free(d.p); + mbedtls_free(X_raw); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_inv_mont( char * input_N, - char * input_A, char * input_I, - int expected_ret ) +void mpi_mod_inv_mont(char *input_N, + char *input_A, char *input_I, + int expected_ret) { mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */ mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */ @@ -360,49 +354,48 @@ void mpi_mod_inv_mont( char * input_N, mbedtls_mpi_uint *X_raw = NULL; mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); - TEST_EQUAL( 0, - test_read_modulus( &N, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + TEST_EQUAL(0, + test_read_modulus(&N, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N)); /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &N, input_A, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &i, &N, input_I, expected_ret != 0 ) ); + TEST_EQUAL(0, test_read_residue(&a, &N, input_A, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&i, &N, input_I, expected_ret != 0)); size_t limbs = N.limbs; - size_t bytes = limbs * sizeof( *X_raw ); + size_t bytes = limbs * sizeof(*X_raw); - ASSERT_ALLOC( X_raw, limbs ); + ASSERT_ALLOC(X_raw, limbs); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &N, X_raw, limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &N, X_raw, limbs)); - TEST_EQUAL( expected_ret, mbedtls_mpi_mod_inv( &x, &a, &N ) ); - if( expected_ret == 0 ) - { - TEST_COMPARE_MPI_RESIDUES( x, i ); + TEST_EQUAL(expected_ret, mbedtls_mpi_mod_inv(&x, &a, &N)); + if (expected_ret == 0) { + TEST_COMPARE_MPI_RESIDUES(x, i); /* a^-1: alias x to a => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_inv( &x, &x, &N ) ); - TEST_COMPARE_MPI_RESIDUES( x, i ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_inv(&x, &x, &N)); + TEST_COMPARE_MPI_RESIDUES(x, i); } exit: - mbedtls_free( (void *)N.p ); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ - mbedtls_mpi_mod_modulus_free( &N ); + mbedtls_free((void *) N.p); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ + mbedtls_mpi_mod_modulus_free(&N); - mbedtls_free( a.p ); - mbedtls_free( i.p ); - mbedtls_free( X_raw ); + mbedtls_free(a.p); + mbedtls_free(i.p); + mbedtls_free(X_raw); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_inv_non_mont( char * input_N, - char * input_A, char * input_I, - int expected_ret ) +void mpi_mod_inv_non_mont(char *input_N, + char *input_A, char *input_I, + int expected_ret) { mbedtls_mpi_mod_residue a = { NULL, 0 }; /* argument */ mbedtls_mpi_mod_residue i = { NULL, 0 }; /* expected inverse wrt N */ @@ -410,42 +403,41 @@ void mpi_mod_inv_non_mont( char * input_N, mbedtls_mpi_uint *X_raw = NULL; mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); - TEST_EQUAL( 0, - test_read_modulus( &N, MBEDTLS_MPI_MOD_REP_OPT_RED, input_N ) ); + TEST_EQUAL(0, + test_read_modulus(&N, MBEDTLS_MPI_MOD_REP_OPT_RED, input_N)); /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &N, input_A, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &i, &N, input_I, expected_ret != 0 ) ); + TEST_EQUAL(0, test_read_residue(&a, &N, input_A, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&i, &N, input_I, expected_ret != 0)); size_t limbs = N.limbs; - size_t bytes = limbs * sizeof( *X_raw ); + size_t bytes = limbs * sizeof(*X_raw); - ASSERT_ALLOC( X_raw, limbs ); + ASSERT_ALLOC(X_raw, limbs); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &N, X_raw, limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &N, X_raw, limbs)); - TEST_EQUAL( expected_ret, mbedtls_mpi_mod_inv( &x, &a, &N ) ); - if( expected_ret == 0 ) - { - TEST_COMPARE_MPI_RESIDUES( x, i ); + TEST_EQUAL(expected_ret, mbedtls_mpi_mod_inv(&x, &a, &N)); + if (expected_ret == 0) { + TEST_COMPARE_MPI_RESIDUES(x, i); /* a^-1: alias x to a => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_inv( &x, &x, &N ) ); - TEST_COMPARE_MPI_RESIDUES( x, i ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_inv(&x, &x, &N)); + TEST_COMPARE_MPI_RESIDUES(x, i); } exit: - mbedtls_free( (void *)N.p ); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ - mbedtls_mpi_mod_modulus_free( &N ); + mbedtls_free((void *) N.p); /* mbedtls_mpi_mod_modulus_free() sets N.p = NULL */ + mbedtls_mpi_mod_modulus_free(&N); - mbedtls_free( a.p ); - mbedtls_free( i.p ); - mbedtls_free( X_raw ); + mbedtls_free(a.p); + mbedtls_free(i.p); + mbedtls_free(X_raw); } /* END_CASE */ /* END MERGE SLOT 3 */ @@ -456,9 +448,9 @@ exit: /* BEGIN MERGE SLOT 5 */ /* BEGIN_CASE */ -void mpi_mod_add( char * input_N, - char * input_A, char * input_B, - char * input_S, int expected_ret ) +void mpi_mod_add(char *input_N, + char *input_A, char *input_B, + char *input_S, int expected_ret) { mbedtls_mpi_mod_residue a = { NULL, 0 }; mbedtls_mpi_mod_residue b = { NULL, 0 }; @@ -467,45 +459,43 @@ void mpi_mod_add( char * input_N, mbedtls_mpi_uint *X_raw = NULL; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL( 0, - test_read_modulus( &m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N ) ); + TEST_EQUAL(0, + test_read_modulus(&m, MBEDTLS_MPI_MOD_REP_MONTGOMERY, input_N)); /* test_read_residue() normally checks that inputs have the same number of * limbs as the modulus. For negative testing we can ask it to skip this * with a non-zero final parameter. */ - TEST_EQUAL( 0, test_read_residue( &a, &m, input_A, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &b, &m, input_B, expected_ret != 0 ) ); - TEST_EQUAL( 0, test_read_residue( &s, &m, input_S, expected_ret != 0 ) ); + TEST_EQUAL(0, test_read_residue(&a, &m, input_A, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&b, &m, input_B, expected_ret != 0)); + TEST_EQUAL(0, test_read_residue(&s, &m, input_S, expected_ret != 0)); size_t limbs = m.limbs; - size_t bytes = limbs * sizeof( *X_raw ); + size_t bytes = limbs * sizeof(*X_raw); - if( expected_ret == 0 ) - { + if (expected_ret == 0) { /* Negative test with too many limbs in output */ - ASSERT_ALLOC( X_raw, limbs + 1 ); + ASSERT_ALLOC(X_raw, limbs + 1); x.p = X_raw; x.limbs = limbs + 1; - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_add(&x, &a, &b, &m)); - mbedtls_free( X_raw ); + mbedtls_free(X_raw); X_raw = NULL; /* Negative test with too few limbs in output */ - if( limbs > 1 ) - { - ASSERT_ALLOC( X_raw, limbs - 1 ); + if (limbs > 1) { + ASSERT_ALLOC(X_raw, limbs - 1); x.p = X_raw; x.limbs = limbs - 1; - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_add(&x, &a, &b, &m)); - mbedtls_free( X_raw ); + mbedtls_free(X_raw); X_raw = NULL; } @@ -514,49 +504,49 @@ void mpi_mod_add( char * input_N, } /* Allocate correct number of limbs for X_raw */ - ASSERT_ALLOC( X_raw, limbs ); + ASSERT_ALLOC(X_raw, limbs); - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &x, &m, X_raw, limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&x, &m, X_raw, limbs)); /* A + B => Correct result or expected error */ - TEST_EQUAL( expected_ret, mbedtls_mpi_mod_add( &x, &a, &b, &m ) ); - if( expected_ret != 0 ) + TEST_EQUAL(expected_ret, mbedtls_mpi_mod_add(&x, &a, &b, &m)); + if (expected_ret != 0) { goto exit; + } - TEST_COMPARE_MPI_RESIDUES( x, s ); + TEST_COMPARE_MPI_RESIDUES(x, s); /* a + b: alias x to a => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &b, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &x, &b, &m)); + TEST_COMPARE_MPI_RESIDUES(x, s); /* a + b: alias x to b => Correct result */ - memcpy( x.p, b.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &a, &x, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); + memcpy(x.p, b.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &a, &x, &m)); + TEST_COMPARE_MPI_RESIDUES(x, s); - if ( memcmp( a.p, b.p, bytes ) == 0 ) - { + if (memcmp(a.p, b.p, bytes) == 0) { /* a == b: alias a and b */ /* a + a => Correct result */ - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &a, &a, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); + TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &a, &a, &m)); + TEST_COMPARE_MPI_RESIDUES(x, s); /* a + a: x, a, b all aliased together => Correct result */ - memcpy( x.p, a.p, bytes ); - TEST_EQUAL( 0, mbedtls_mpi_mod_add( &x, &x, &x, &m ) ); - TEST_COMPARE_MPI_RESIDUES( x, s ); + memcpy(x.p, a.p, bytes); + TEST_EQUAL(0, mbedtls_mpi_mod_add(&x, &x, &x, &m)); + TEST_COMPARE_MPI_RESIDUES(x, s); } exit: - mbedtls_free( (void *)m.p ); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_free((void *) m.p); /* mbedtls_mpi_mod_modulus_free() sets m.p = NULL */ + mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free( a.p ); - mbedtls_free( b.p ); - mbedtls_free( s.p ); - mbedtls_free( X_raw ); + mbedtls_free(a.p); + mbedtls_free(b.p); + mbedtls_free(s.p); + mbedtls_free(X_raw); } /* END_CASE */ /* END MERGE SLOT 5 */ @@ -567,7 +557,7 @@ exit: /* BEGIN MERGE SLOT 7 */ /* BEGIN_CASE */ -void mpi_residue_setup( char * input_N, char * input_R, int ret ) +void mpi_residue_setup(char *input_N, char *input_R, int ret) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; @@ -575,32 +565,31 @@ void mpi_residue_setup( char * input_N, char * input_R, int ret ) mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_residue r; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); /* Allocate the memory for intermediate data structures */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &R, &r_limbs, input_R ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&R, &r_limbs, input_R)); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); - TEST_EQUAL( ret, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); + TEST_EQUAL(ret, mbedtls_mpi_mod_residue_setup(&r, &m, R, r_limbs)); - if ( ret == 0 ) - { - TEST_EQUAL( r.limbs, r_limbs ); - TEST_ASSERT( r.p == R ); + if (ret == 0) { + TEST_EQUAL(r.limbs, r_limbs); + TEST_ASSERT(r.p == R); } exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( N ); - mbedtls_free( R ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); + mbedtls_free(R); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) +void mpi_mod_io_neg(char *input_N, data_t *buf, int ret) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; @@ -609,68 +598,69 @@ void mpi_mod_io_neg( char * input_N, data_t * buf, int ret ) mbedtls_mpi_mod_residue r = { NULL, 0 }; mbedtls_mpi_mod_ext_rep endian = MBEDTLS_MPI_MOD_EXT_REP_LE; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); size_t n_limbs; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); size_t r_limbs = n_limbs; - ASSERT_ALLOC( R, r_limbs ); + ASSERT_ALLOC(R, r_limbs); /* modulus->p == NULL || residue->p == NULL ( m has not been set-up ) */ - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian)); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian)); /* Set up modulus and test with residue->p == NULL */ - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian)); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian)); /* Do the rest of the tests with a residue set up with the input data */ - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R , r_limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r, &m, R, r_limbs)); /* Fail for r_limbs < m->limbs */ r.limbs--; - TEST_ASSERT( r.limbs < m.limbs ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + TEST_ASSERT(r.limbs < m.limbs); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian)); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian)); r.limbs++; /* Fail for r_limbs > m->limbs */ m.limbs--; - TEST_ASSERT( r.limbs > m.limbs ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); - TEST_EQUAL( MBEDTLS_ERR_MPI_BAD_INPUT_DATA, - mbedtls_mpi_mod_write( &r, &m, buf->x, buf->len, endian ) ); + TEST_ASSERT(r.limbs > m.limbs); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian)); + TEST_EQUAL(MBEDTLS_ERR_MPI_BAD_INPUT_DATA, + mbedtls_mpi_mod_write(&r, &m, buf->x, buf->len, endian)); m.limbs++; /* Test the read */ - TEST_EQUAL( ret, mbedtls_mpi_mod_read( &r, &m, buf->x, buf->len, endian ) ); + TEST_EQUAL(ret, mbedtls_mpi_mod_read(&r, &m, buf->x, buf->len, endian)); /* Test write overflow only when the representation is large and read is successful */ - if ( r.limbs > 1 && ret == 0 ) - TEST_EQUAL( MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, - mbedtls_mpi_mod_write( &r, &m, buf->x, 1, endian ) ); + if (r.limbs > 1 && ret == 0) { + TEST_EQUAL(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL, + mbedtls_mpi_mod_write(&r, &m, buf->x, 1, endian)); + } exit: - mbedtls_mpi_mod_residue_release( &r ); - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( N ); - mbedtls_free( R ); + mbedtls_mpi_mod_residue_release(&r); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); + mbedtls_free(R); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_io( char * input_N, data_t * input_A, int endian ) +void mpi_mod_io(char *input_N, data_t *input_A, int endian) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *R = NULL; @@ -682,96 +672,94 @@ void mpi_mod_io( char * input_N, data_t * input_A, int endian ) mbedtls_mpi_mod_residue r_copy; size_t n_limbs, n_bytes, a_bytes; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - n_bytes = n_limbs * sizeof( mbedtls_mpi_uint ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); + n_bytes = n_limbs * sizeof(mbedtls_mpi_uint); a_bytes = input_A->len; /* Allocate the memory for intermediate data structures */ - ASSERT_ALLOC( R, n_bytes ); - ASSERT_ALLOC( R_COPY, n_bytes ); + ASSERT_ALLOC(R, n_bytes); + ASSERT_ALLOC(R_COPY, n_bytes); /* Test that input's size is not greater to modulo's */ - TEST_LE_U( a_bytes, n_bytes ); + TEST_LE_U(a_bytes, n_bytes); /* Init Structures */ - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); /* Enforcing p_limbs >= m->limbs */ - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r, &m, R, n_limbs ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r, &m, R, n_limbs)); - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r, &m, input_A->x, input_A->len, - endian ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_read(&r, &m, input_A->x, input_A->len, + endian)); /* Read a copy for checking that writing didn't change the value of r */ - TEST_EQUAL( 0, mbedtls_mpi_mod_residue_setup( &r_copy, &m, - R_COPY, n_limbs ) ); - TEST_EQUAL( 0, mbedtls_mpi_mod_read( &r_copy, &m, input_A->x, input_A->len, - endian ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_residue_setup(&r_copy, &m, + R_COPY, n_limbs)); + TEST_EQUAL(0, mbedtls_mpi_mod_read(&r_copy, &m, input_A->x, input_A->len, + endian)); /* Get number of bytes without leading zeroes */ size_t a_bytes_trimmed = a_bytes; - while( a_bytes_trimmed > 0 ) - { - unsigned char* r_byte_array = (unsigned char*) r.p; - if( r_byte_array[--a_bytes_trimmed] != 0 ) + while (a_bytes_trimmed > 0) { + unsigned char *r_byte_array = (unsigned char *) r.p; + if (r_byte_array[--a_bytes_trimmed] != 0) { break; + } } a_bytes_trimmed++; /* Test write with three output buffer sizes: tight, same as input and * longer than the input */ size_t obuf_sizes[3]; - const size_t obuf_sizes_len = sizeof( obuf_sizes ) / sizeof( obuf_sizes[0] ); + const size_t obuf_sizes_len = sizeof(obuf_sizes) / sizeof(obuf_sizes[0]); obuf_sizes[0] = a_bytes_trimmed; obuf_sizes[1] = a_bytes; obuf_sizes[2] = a_bytes + 8; - for( size_t i = 0; i < obuf_sizes_len; i++ ) - { - ASSERT_ALLOC( obuf, obuf_sizes[i] ); - TEST_EQUAL( 0, mbedtls_mpi_mod_write( &r, &m, obuf, obuf_sizes[i], endian ) ); + for (size_t i = 0; i < obuf_sizes_len; i++) { + ASSERT_ALLOC(obuf, obuf_sizes[i]); + TEST_EQUAL(0, mbedtls_mpi_mod_write(&r, &m, obuf, obuf_sizes[i], endian)); /* Make sure that writing didn't corrupt the value of r */ - ASSERT_COMPARE( r.p, r.limbs, r_copy.p, r_copy.limbs ); + ASSERT_COMPARE(r.p, r.limbs, r_copy.p, r_copy.limbs); /* Set up reference output for checking the result */ - ASSERT_ALLOC( ref_buf, obuf_sizes[i] ); - switch( endian ) - { + ASSERT_ALLOC(ref_buf, obuf_sizes[i]); + switch (endian) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - memcpy( ref_buf, input_A->x, a_bytes_trimmed ); + memcpy(ref_buf, input_A->x, a_bytes_trimmed); break; case MBEDTLS_MPI_MOD_EXT_REP_BE: - { - size_t a_offset = input_A->len - a_bytes_trimmed; - size_t ref_offset = obuf_sizes[i] - a_bytes_trimmed; - memcpy( ref_buf + ref_offset, input_A->x + a_offset, - a_bytes_trimmed ); - } - break; + { + size_t a_offset = input_A->len - a_bytes_trimmed; + size_t ref_offset = obuf_sizes[i] - a_bytes_trimmed; + memcpy(ref_buf + ref_offset, input_A->x + a_offset, + a_bytes_trimmed); + } + break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); } /* Check the result */ - ASSERT_COMPARE( obuf, obuf_sizes[i], ref_buf, obuf_sizes[i] ); + ASSERT_COMPARE(obuf, obuf_sizes[i], ref_buf, obuf_sizes[i]); - mbedtls_free( ref_buf ); + mbedtls_free(ref_buf); ref_buf = NULL; - mbedtls_free( obuf ); + mbedtls_free(obuf); obuf = NULL; } exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( N ); - mbedtls_free( R ); - mbedtls_free( R_COPY ); - mbedtls_free( obuf ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); + mbedtls_free(R); + mbedtls_free(R_COPY); + mbedtls_free(obuf); } /* END_CASE */ /* END MERGE SLOT 7 */ diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 4a658e1d5..9310b0e65 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -14,105 +14,103 @@ */ /* BEGIN_CASE */ -void mpi_mod_raw_io( data_t *input, int nb_int, int nx_32_int, - int iendian, int iret, int oret ) +void mpi_mod_raw_io(data_t *input, int nb_int, int nx_32_int, + int iendian, int iret, int oret) { mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); - if( iret != 0 ) - TEST_ASSERT( oret == 0 ); + if (iret != 0) { + TEST_ASSERT(oret == 0); + } - TEST_LE_S( 0, nb_int ); + TEST_LE_S(0, nb_int); size_t nb = nb_int; unsigned char buf[1024]; - TEST_LE_U( nb, sizeof( buf ) ); + TEST_LE_U(nb, sizeof(buf)); /* nx_32_int is the number of 32 bit limbs, if we have 64 bit limbs we need * to halve the number of limbs to have the same size. */ size_t nx; - TEST_LE_S( 0, nx_32_int ); - if( sizeof( mbedtls_mpi_uint ) == 8 ) + TEST_LE_S(0, nx_32_int); + if (sizeof(mbedtls_mpi_uint) == 8) { nx = nx_32_int / 2 + nx_32_int % 2; - else + } else { nx = nx_32_int; - - mbedtls_mpi_uint X[sizeof( buf ) / sizeof( mbedtls_mpi_uint )]; - TEST_LE_U( nx, sizeof( X ) / sizeof( X[0] ) ); - - int endian; - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID ) - endian = MBEDTLS_MPI_MOD_EXT_REP_LE; - else - endian = iendian; - - mbedtls_mpi_uint init[sizeof( X ) / sizeof( X[0] )]; - memset( init, 0xFF, sizeof( init ) ); - int ret = mbedtls_mpi_mod_modulus_setup( &m, init, nx, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ); - TEST_EQUAL( ret, 0 ); - - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0 ) - endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_read( X, &m, input->x, input->len, endian ); - TEST_EQUAL( ret, iret ); - - if( iret == 0 ) - { - if( iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0 ) - endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; - - ret = mbedtls_mpi_mod_raw_write( X, &m, buf, nb, endian ); - TEST_EQUAL( ret, oret ); } - if( ( iret == 0 ) && ( oret == 0 ) ) - { - if( nb > input->len ) - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = nb - input->len; - TEST_ASSERT( memcmp( buf + nb - input->len, input->x, input->len ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( buf[i], 0 ); - } - else - { - TEST_ASSERT( memcmp( buf, input->x, input->len ) == 0 ); - for( size_t i = input->len; i < nb; i++ ) - TEST_EQUAL( buf[i], 0 ); - } + mbedtls_mpi_uint X[sizeof(buf) / sizeof(mbedtls_mpi_uint)]; + TEST_LE_U(nx, sizeof(X) / sizeof(X[0])); + + int endian; + if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID) { + endian = MBEDTLS_MPI_MOD_EXT_REP_LE; + } else { + endian = iendian; + } + + mbedtls_mpi_uint init[sizeof(X) / sizeof(X[0])]; + memset(init, 0xFF, sizeof(init)); + int ret = mbedtls_mpi_mod_modulus_setup(&m, init, nx, + MBEDTLS_MPI_MOD_REP_MONTGOMERY); + TEST_EQUAL(ret, 0); + + if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && iret != 0) { + endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; + } + + ret = mbedtls_mpi_mod_raw_read(X, &m, input->x, input->len, endian); + TEST_EQUAL(ret, iret); + + if (iret == 0) { + if (iendian == MBEDTLS_MPI_MOD_EXT_REP_INVALID && oret != 0) { + endian = MBEDTLS_MPI_MOD_EXT_REP_INVALID; } - else - { - if( endian == MBEDTLS_MPI_MOD_EXT_REP_BE ) - { - size_t leading_zeroes = input->len - nb; - TEST_ASSERT( memcmp( input->x + input->len - nb, buf, nb ) == 0 ); - for( size_t i = 0; i < leading_zeroes; i++ ) - TEST_EQUAL( input->x[i], 0 ); + + ret = mbedtls_mpi_mod_raw_write(X, &m, buf, nb, endian); + TEST_EQUAL(ret, oret); + } + + if ((iret == 0) && (oret == 0)) { + if (nb > input->len) { + if (endian == MBEDTLS_MPI_MOD_EXT_REP_BE) { + size_t leading_zeroes = nb - input->len; + TEST_ASSERT(memcmp(buf + nb - input->len, input->x, input->len) == 0); + for (size_t i = 0; i < leading_zeroes; i++) { + TEST_EQUAL(buf[i], 0); + } + } else { + TEST_ASSERT(memcmp(buf, input->x, input->len) == 0); + for (size_t i = input->len; i < nb; i++) { + TEST_EQUAL(buf[i], 0); + } } - else - { - TEST_ASSERT( memcmp( input->x, buf, nb ) == 0 ); - for( size_t i = nb; i < input->len; i++ ) - TEST_EQUAL( input->x[i], 0 ); + } else { + if (endian == MBEDTLS_MPI_MOD_EXT_REP_BE) { + size_t leading_zeroes = input->len - nb; + TEST_ASSERT(memcmp(input->x + input->len - nb, buf, nb) == 0); + for (size_t i = 0; i < leading_zeroes; i++) { + TEST_EQUAL(input->x[i], 0); + } + } else { + TEST_ASSERT(memcmp(input->x, buf, nb) == 0); + for (size_t i = nb; i < input->len; i++) { + TEST_EQUAL(input->x[i], 0); + } } } } exit: - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free(&m); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_cond_assign( char * input_X, - char * input_Y, - int input_bytes ) +void mpi_mod_raw_cond_assign(char *input_X, + char *input_Y, + int input_bytes) { mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *Y = NULL; @@ -121,68 +119,67 @@ void mpi_mod_raw_cond_assign( char * input_X, size_t limbs_Y; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL( mbedtls_test_read_mpi_core( &X, &limbs_X, input_X ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi_core( &Y, &limbs_Y, input_Y ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&Y, &limbs_Y, input_Y), 0); size_t limbs = limbs_X; - size_t copy_limbs = CHARS_TO_LIMBS( input_bytes ); - size_t bytes = limbs * sizeof( mbedtls_mpi_uint ); - size_t copy_bytes = copy_limbs * sizeof( mbedtls_mpi_uint ); + size_t copy_limbs = CHARS_TO_LIMBS(input_bytes); + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + size_t copy_bytes = copy_limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( limbs_X, limbs_Y ); - TEST_ASSERT( copy_limbs <= limbs ); + TEST_EQUAL(limbs_X, limbs_Y); + TEST_ASSERT(copy_limbs <= limbs); - ASSERT_ALLOC( buff_m, copy_limbs ); - memset( buff_m, 0xFF, copy_limbs ); - TEST_EQUAL( mbedtls_mpi_mod_modulus_setup( - &m, buff_m, copy_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ), 0 ); + ASSERT_ALLOC(buff_m, copy_limbs); + memset(buff_m, 0xFF, copy_limbs); + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( + &m, buff_m, copy_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); /* condition is false */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 0 ); + mbedtls_mpi_mod_raw_cond_assign(X, Y, &m, 0); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); - TEST_ASSERT( memcmp( X, Y, bytes ) != 0 ); + TEST_ASSERT(memcmp(X, Y, bytes) != 0); /* condition is true */ - TEST_CF_SECRET( X, bytes ); - TEST_CF_SECRET( Y, bytes ); + TEST_CF_SECRET(X, bytes); + TEST_CF_SECRET(Y, bytes); - mbedtls_mpi_mod_raw_cond_assign( X, Y, &m, 1 ); + mbedtls_mpi_mod_raw_cond_assign(X, Y, &m, 1); - TEST_CF_PUBLIC( X, bytes ); - TEST_CF_PUBLIC( Y, bytes ); + TEST_CF_PUBLIC(X, bytes); + TEST_CF_PUBLIC(Y, bytes); /* Check if the given length is copied even it is smaller than the length of the given MPIs. */ - if( copy_limbs Correct result */ - mbedtls_mpi_mod_raw_add( X, A, B, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + mbedtls_mpi_mod_raw_add(X, A, B, &m); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + B: alias X to A => Correct result */ - memcpy( X, A, bytes ); - mbedtls_mpi_mod_raw_add( X, X, B, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, A, bytes); + mbedtls_mpi_mod_raw_add(X, X, B, &m); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + B: alias X to B => Correct result */ - memcpy( X, B, bytes ); - mbedtls_mpi_mod_raw_add( X, A, X, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, B, bytes); + mbedtls_mpi_mod_raw_add(X, A, X, &m); + ASSERT_COMPARE(X, bytes, S, bytes); - if ( memcmp(A, B, bytes ) == 0 ) - { + if (memcmp(A, B, bytes) == 0) { /* A == B: alias A and B */ /* A + A => Correct result */ - mbedtls_mpi_mod_raw_add( X, A, A, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + mbedtls_mpi_mod_raw_add(X, A, A, &m); + ASSERT_COMPARE(X, bytes, S, bytes); /* A + A: X, A, B all aliased together => Correct result */ - memcpy( X, A, bytes ); - mbedtls_mpi_mod_raw_add( X, X, X, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); - } - else - { + memcpy(X, A, bytes); + mbedtls_mpi_mod_raw_add(X, X, X, &m); + ASSERT_COMPARE(X, bytes, S, bytes); + } else { /* A != B: test B + A */ /* B + A => Correct result */ - mbedtls_mpi_mod_raw_add( X, B, A, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + mbedtls_mpi_mod_raw_add(X, B, A, &m); + ASSERT_COMPARE(X, bytes, S, bytes); /* B + A: alias X to A => Correct result */ - memcpy( X, A, bytes ); - mbedtls_mpi_mod_raw_add( X, B, X, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, A, bytes); + mbedtls_mpi_mod_raw_add(X, B, X, &m); + ASSERT_COMPARE(X, bytes, S, bytes); /* B + A: alias X to B => Correct result */ - memcpy( X, B, bytes ); - mbedtls_mpi_mod_raw_add( X, X, A, &m ); - ASSERT_COMPARE( X, bytes, S, bytes ); + memcpy(X, B, bytes); + mbedtls_mpi_mod_raw_add(X, X, A, &m); + ASSERT_COMPARE(X, bytes, S, bytes); } exit: - mbedtls_mpi_mod_modulus_free( &m ); + mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free( A ); - mbedtls_free( B ); - mbedtls_free( S ); - mbedtls_free( N ); - mbedtls_free( X ); + mbedtls_free(A); + mbedtls_free(B); + mbedtls_free(S); + mbedtls_free(N); + mbedtls_free(X); } /* END_CASE */ /* END MERGE SLOT 5 */ /* BEGIN MERGE SLOT 6 */ /* BEGIN_CASE */ -void mpi_mod_raw_canonical_to_modulus_rep( const char *input_N, int rep, - const char *input_A, - const char *input_X ) +void mpi_mod_raw_canonical_to_modulus_rep(const char *input_N, int rep, + const char *input_A, + const char *input_X) { mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); mbedtls_mpi_uint *A = NULL; size_t A_limbs = 0;; mbedtls_mpi_uint *X = NULL; size_t X_limbs = 0; - TEST_EQUAL( 0, mbedtls_test_read_mpi_modulus( &N, input_N, rep ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_modulus(&N, input_N, rep)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); - TEST_EQUAL( 0, mbedtls_mpi_mod_raw_canonical_to_modulus_rep( A, &N ) ); - ASSERT_COMPARE( A, A_limbs * sizeof( mbedtls_mpi_uint ), - X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_raw_canonical_to_modulus_rep(A, &N)); + ASSERT_COMPARE(A, A_limbs * sizeof(mbedtls_mpi_uint), + X, X_limbs * sizeof(mbedtls_mpi_uint)); exit: - mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); - mbedtls_free( A ); - mbedtls_free( X ); + mbedtls_test_mpi_mod_modulus_free_with_limbs(&N); + mbedtls_free(A); + mbedtls_free(X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_modulus_to_canonical_rep( const char *input_N, int rep, - const char *input_A, - const char *input_X ) +void mpi_mod_raw_modulus_to_canonical_rep(const char *input_N, int rep, + const char *input_A, + const char *input_X) { mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); mbedtls_mpi_uint *A = NULL; size_t A_limbs = 0; mbedtls_mpi_uint *X = NULL; size_t X_limbs = 0; - TEST_EQUAL( 0, mbedtls_test_read_mpi_modulus( &N, input_N, rep ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &A_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &X_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_modulus(&N, input_N, rep)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &A_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &X_limbs, input_X)); - TEST_EQUAL( 0, mbedtls_mpi_mod_raw_modulus_to_canonical_rep( A, &N ) ); - ASSERT_COMPARE( A, A_limbs * sizeof( mbedtls_mpi_uint ), - X, X_limbs * sizeof( mbedtls_mpi_uint ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_raw_modulus_to_canonical_rep(A, &N)); + ASSERT_COMPARE(A, A_limbs * sizeof(mbedtls_mpi_uint), + X, X_limbs * sizeof(mbedtls_mpi_uint)); exit: - mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); - mbedtls_free( A ); - mbedtls_free( X ); + mbedtls_test_mpi_mod_modulus_free_with_limbs(&N); + mbedtls_free(A); + mbedtls_free(X); } /* END_CASE */ /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ /* BEGIN_CASE */ -void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) +void mpi_mod_raw_to_mont_rep(char *input_N, char *input_A, char *input_X) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; @@ -686,12 +673,12 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) size_t n_limbs, a_limbs, x_limbs; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X)); /* Number to convert must have same number of limbs as modulus */ TEST_EQUAL(a_limbs, n_limbs); @@ -703,45 +690,45 @@ void mpi_mod_raw_to_mont_rep( char * input_N, char * input_A, char * input_X ) size_t limbs = n_limbs; size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); /* 1. Test low-level function first */ /* It has separate output, and requires temporary working storage */ - size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs ); - ASSERT_ALLOC( T, temp_limbs ); - ASSERT_ALLOC( R, limbs ); - mbedtls_mpi_core_to_mont_rep( R, A, N, n_limbs, - m.rep.mont.mm, m.rep.mont.rr, T ); + size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs(limbs); + ASSERT_ALLOC(T, temp_limbs); + ASSERT_ALLOC(R, limbs); + mbedtls_mpi_core_to_mont_rep(R, A, N, n_limbs, + m.rep.mont.mm, m.rep.mont.rr, T); /* Test that the low-level function gives the required value */ - ASSERT_COMPARE( R, bytes, X, bytes ); + ASSERT_COMPARE(R, bytes, X, bytes); /* Test when output is aliased to input */ - memcpy( R, A, bytes ); - mbedtls_mpi_core_to_mont_rep( R, R, N, n_limbs, - m.rep.mont.mm, m.rep.mont.rr, T ); - ASSERT_COMPARE( R, bytes, X, bytes ); + memcpy(R, A, bytes); + mbedtls_mpi_core_to_mont_rep(R, R, N, n_limbs, + m.rep.mont.mm, m.rep.mont.rr, T); + ASSERT_COMPARE(R, bytes, X, bytes); /* 2. Test higher-level cannonical to Montgomery conversion */ - TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep( A, &m ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_raw_to_mont_rep(A, &m)); /* The result matches expected value */ - ASSERT_COMPARE( A, bytes, X, bytes ); + ASSERT_COMPARE(A, bytes, X, bytes); exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( T ); - mbedtls_free( N ); - mbedtls_free( A ); - mbedtls_free( R ); - mbedtls_free( X ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(T); + mbedtls_free(N); + mbedtls_free(A); + mbedtls_free(R); + mbedtls_free(X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) +void mpi_mod_raw_from_mont_rep(char *input_N, char *input_A, char *input_X) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; @@ -751,12 +738,12 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) size_t n_limbs, a_limbs, x_limbs; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X)); /* Number to convert must have same number of limbs as modulus */ TEST_EQUAL(a_limbs, n_limbs); @@ -768,45 +755,45 @@ void mpi_mod_raw_from_mont_rep( char * input_N, char * input_A, char * input_X ) size_t limbs = n_limbs; size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); /* 1. Test low-level function first */ /* It has separate output, and requires temporary working storage */ - size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs( limbs ); - ASSERT_ALLOC( T, temp_limbs ); - ASSERT_ALLOC( R, limbs ); - mbedtls_mpi_core_from_mont_rep( R, A, N, n_limbs, - m.rep.mont.mm, T ); + size_t temp_limbs = mbedtls_mpi_core_montmul_working_limbs(limbs); + ASSERT_ALLOC(T, temp_limbs); + ASSERT_ALLOC(R, limbs); + mbedtls_mpi_core_from_mont_rep(R, A, N, n_limbs, + m.rep.mont.mm, T); /* Test that the low-level function gives the required value */ - ASSERT_COMPARE( R, bytes, X, bytes ); + ASSERT_COMPARE(R, bytes, X, bytes); /* Test when output is aliased to input */ - memcpy( R, A, bytes ); - mbedtls_mpi_core_from_mont_rep( R, R, N, n_limbs, - m.rep.mont.mm, T ); - ASSERT_COMPARE( R, bytes, X, bytes ); + memcpy(R, A, bytes); + mbedtls_mpi_core_from_mont_rep(R, R, N, n_limbs, + m.rep.mont.mm, T); + ASSERT_COMPARE(R, bytes, X, bytes); /* 2. Test higher-level Montgomery to cannonical conversion */ - TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep( A, &m ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_raw_from_mont_rep(A, &m)); /* The result matches expected value */ - ASSERT_COMPARE( A, bytes, X, bytes ); + ASSERT_COMPARE(A, bytes, X, bytes); exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( T ); - mbedtls_free( N ); - mbedtls_free( A ); - mbedtls_free( R ); - mbedtls_free( X ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(T); + mbedtls_free(N); + mbedtls_free(A); + mbedtls_free(R); + mbedtls_free(X); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_raw_neg( char * input_N, char * input_A, char * input_X ) +void mpi_mod_raw_neg(char *input_N, char *input_A, char *input_X) { mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *A = NULL; @@ -816,45 +803,45 @@ void mpi_mod_raw_neg( char * input_N, char * input_A, char * input_X ) size_t n_limbs, a_limbs, x_limbs, bytes; mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init( &m ); + mbedtls_mpi_mod_modulus_init(&m); /* Read inputs */ - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &N, &n_limbs, input_N ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &A, &a_limbs, input_A ) ); - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &X, &x_limbs, input_X ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&N, &n_limbs, input_N)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&A, &a_limbs, input_A)); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&X, &x_limbs, input_X)); - TEST_EQUAL( a_limbs, n_limbs ); - TEST_EQUAL( x_limbs, n_limbs ); - bytes = n_limbs * sizeof( mbedtls_mpi_uint ); + TEST_EQUAL(a_limbs, n_limbs); + TEST_EQUAL(x_limbs, n_limbs); + bytes = n_limbs * sizeof(mbedtls_mpi_uint); - ASSERT_ALLOC( R, n_limbs ); - ASSERT_ALLOC( Z, n_limbs ); + ASSERT_ALLOC(R, n_limbs); + ASSERT_ALLOC(Z, n_limbs); - TEST_EQUAL( 0, mbedtls_mpi_mod_modulus_setup( &m, N, n_limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY ) ); + TEST_EQUAL(0, mbedtls_mpi_mod_modulus_setup(&m, N, n_limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY)); /* Neg( A == 0 ) => Zero result */ - mbedtls_mpi_mod_raw_neg( R, Z, &m ); - ASSERT_COMPARE( R, bytes, Z, bytes ); + mbedtls_mpi_mod_raw_neg(R, Z, &m); + ASSERT_COMPARE(R, bytes, Z, bytes); /* Neg( A == N ) => Zero result */ - mbedtls_mpi_mod_raw_neg( R, N, &m ); - ASSERT_COMPARE( R, bytes, Z, bytes ); + mbedtls_mpi_mod_raw_neg(R, N, &m); + ASSERT_COMPARE(R, bytes, Z, bytes); /* Neg( A ) => Correct result */ - mbedtls_mpi_mod_raw_neg( R, A, &m ); - ASSERT_COMPARE( R, bytes, X, bytes ); + mbedtls_mpi_mod_raw_neg(R, A, &m); + ASSERT_COMPARE(R, bytes, X, bytes); /* Neg( A ): alias A to R => Correct result */ - mbedtls_mpi_mod_raw_neg( A, A, &m ); - ASSERT_COMPARE( A, bytes, X, bytes ); + mbedtls_mpi_mod_raw_neg(A, A, &m); + ASSERT_COMPARE(A, bytes, X, bytes); exit: - mbedtls_mpi_mod_modulus_free( &m ); - mbedtls_free( N ); - mbedtls_free( A ); - mbedtls_free( X ); - mbedtls_free( R ); - mbedtls_free( Z ); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); + mbedtls_free(A); + mbedtls_free(X); + mbedtls_free(R); + mbedtls_free(Z); } /* END_CASE */ diff --git a/tests/suites/test_suite_bignum_random.function b/tests/suites/test_suite_bignum_random.function index 470914890..e4db3d7ac 100644 --- a/tests/suites/test_suite_bignum_random.function +++ b/tests/suites/test_suite_bignum_random.function @@ -44,19 +44,20 @@ #include "constant_time_internal.h" /* This test suite only manipulates non-negative bignums. */ -static int sign_is_valid( const mbedtls_mpi *X ) +static int sign_is_valid(const mbedtls_mpi *X) { - return( X->s == 1 ); + return X->s == 1; } /* A common initializer for test functions that should generate the same * sequences for reproducibility and good coverage. */ const mbedtls_test_rnd_pseudo_info rnd_pseudo_seed = { /* 16-word key */ - {'T', 'h', 'i', 's', ' ', 'i', 's', ' ', - 'a', ' ', 's', 'e', 'e', 'd', '!', 0}, + { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', + 'a', ' ', 's', 'e', 'e', 'd', '!', 0 }, /* 2-word initial state, should be zero */ - 0, 0}; + 0, 0 +}; /* Test whether bytes represents (in big-endian base 256) a number b that * is significantly above a power of 2. That is, b must not have a long run @@ -69,37 +70,39 @@ const mbedtls_test_rnd_pseudo_info rnd_pseudo_seed = { * number is above some threshold A. The threshold value is heuristic and * based on the needs of mpi_random_many(). */ -static int is_significantly_above_a_power_of_2( data_t *bytes ) +static int is_significantly_above_a_power_of_2(data_t *bytes) { const uint8_t *p = bytes->x; size_t len = bytes->len; unsigned x; /* Skip leading null bytes */ - while( len > 0 && p[0] == 0 ) - { + while (len > 0 && p[0] == 0) { ++p; --len; } /* 0 is not significantly above a power of 2 */ - if( len == 0 ) - return( 0 ); + if (len == 0) { + return 0; + } /* Extract the (up to) 2 most significant bytes */ - if( len == 1 ) + if (len == 1) { x = p[0]; - else - x = ( p[0] << 8 ) | p[1]; + } else { + x = (p[0] << 8) | p[1]; + } /* Shift the most significant bit of x to position 8 and mask it out */ - while( ( x & 0xfe00 ) != 0 ) + while ((x & 0xfe00) != 0) { x >>= 1; + } x &= 0x00ff; /* At this point, x = floor((b - 2^n) / 2^(n-8)). b is significantly above * a power of 2 iff x is significantly above 0 compared to 2^8. * Testing x >= 2^4 amounts to picking A = 1/16 in the function * description above. */ - return( x >= 0x10 ); + return x >= 0x10; } /* END_HEADER */ @@ -110,7 +113,7 @@ static int is_significantly_above_a_power_of_2( data_t *bytes ) */ /* BEGIN_CASE */ -void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) +void mpi_core_random_basic(int min, char *bound_bytes, int expected_ret) { /* Same RNG as in mpi_random_values */ mbedtls_test_rnd_pseudo_info rnd = rnd_pseudo_seed; @@ -119,151 +122,148 @@ void mpi_core_random_basic( int min, char *bound_bytes, int expected_ret ) mbedtls_mpi_uint *upper_bound = NULL; mbedtls_mpi_uint *result = NULL; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, - bound_bytes ) ); - ASSERT_ALLOC( lower_bound, limbs ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&upper_bound, &limbs, + bound_bytes)); + ASSERT_ALLOC(lower_bound, limbs); lower_bound[0] = min; - ASSERT_ALLOC( result, limbs ); + ASSERT_ALLOC(result, limbs); - TEST_EQUAL( expected_ret, - mbedtls_mpi_core_random( result, min, upper_bound, limbs, - mbedtls_test_rnd_pseudo_rand, &rnd ) ); + TEST_EQUAL(expected_ret, + mbedtls_mpi_core_random(result, min, upper_bound, limbs, + mbedtls_test_rnd_pseudo_rand, &rnd)); - if( expected_ret == 0 ) - { - TEST_EQUAL( 0, mbedtls_mpi_core_lt_ct( result, lower_bound, limbs ) ); - TEST_EQUAL( 1, mbedtls_mpi_core_lt_ct( result, upper_bound, limbs ) ); + if (expected_ret == 0) { + TEST_EQUAL(0, mbedtls_mpi_core_lt_ct(result, lower_bound, limbs)); + TEST_EQUAL(1, mbedtls_mpi_core_lt_ct(result, upper_bound, limbs)); } exit: - mbedtls_free( lower_bound ); - mbedtls_free( upper_bound ); - mbedtls_free( result ); + mbedtls_free(lower_bound); + mbedtls_free(upper_bound); + mbedtls_free(result); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_legacy_random_values( int min, char *max_hex ) +void mpi_legacy_random_values(int min, char *max_hex) { /* Same RNG as in mpi_core_random_basic */ mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed; mbedtls_test_rnd_pseudo_info rnd_legacy; - memcpy( &rnd_legacy, &rnd_core, sizeof( rnd_core ) ); + memcpy(&rnd_legacy, &rnd_core, sizeof(rnd_core)); mbedtls_mpi max_legacy; - mbedtls_mpi_init( &max_legacy ); + mbedtls_mpi_init(&max_legacy); mbedtls_mpi_uint *R_core = NULL; mbedtls_mpi R_legacy; - mbedtls_mpi_init( &R_legacy ); + mbedtls_mpi_init(&R_legacy); - TEST_EQUAL( 0, mbedtls_test_read_mpi( &max_legacy, max_hex ) ); + TEST_EQUAL(0, mbedtls_test_read_mpi(&max_legacy, max_hex)); size_t limbs = max_legacy.n; - ASSERT_ALLOC( R_core, limbs ); + ASSERT_ALLOC(R_core, limbs); /* Call the legacy function and the core function with the same random * stream. */ - int core_ret = mbedtls_mpi_core_random( R_core, min, max_legacy.p, limbs, - mbedtls_test_rnd_pseudo_rand, - &rnd_core ); - int legacy_ret = mbedtls_mpi_random( &R_legacy, min, &max_legacy, - mbedtls_test_rnd_pseudo_rand, - &rnd_legacy ); + int core_ret = mbedtls_mpi_core_random(R_core, min, max_legacy.p, limbs, + mbedtls_test_rnd_pseudo_rand, + &rnd_core); + int legacy_ret = mbedtls_mpi_random(&R_legacy, min, &max_legacy, + mbedtls_test_rnd_pseudo_rand, + &rnd_legacy); /* They must return the same status, and, on success, output the * same number, with the same limb count. */ - TEST_EQUAL( core_ret, legacy_ret ); - if( core_ret == 0 ) - { - ASSERT_COMPARE( R_core, limbs * ciL, - R_legacy.p, R_legacy.n * ciL ); + TEST_EQUAL(core_ret, legacy_ret); + if (core_ret == 0) { + ASSERT_COMPARE(R_core, limbs * ciL, + R_legacy.p, R_legacy.n * ciL); } /* Also check that they have consumed the RNG in the same way. */ /* This may theoretically fail on rare platforms with padding in * the structure! If this is a problem in practice, change to a * field-by-field comparison. */ - ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), - &rnd_legacy, sizeof( rnd_legacy ) ); + ASSERT_COMPARE(&rnd_core, sizeof(rnd_core), + &rnd_legacy, sizeof(rnd_legacy)); exit: - mbedtls_mpi_free( &max_legacy ); - mbedtls_free( R_core ); - mbedtls_mpi_free( &R_legacy ); + mbedtls_mpi_free(&max_legacy); + mbedtls_free(R_core); + mbedtls_mpi_free(&R_legacy); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_random_values( int min, char *max_hex, int rep ) +void mpi_mod_random_values(int min, char *max_hex, int rep) { /* Same RNG as in mpi_core_random_basic */ mbedtls_test_rnd_pseudo_info rnd_core = rnd_pseudo_seed; mbedtls_test_rnd_pseudo_info rnd_mod_raw; - memcpy( &rnd_mod_raw, &rnd_core, sizeof( rnd_core ) ); + memcpy(&rnd_mod_raw, &rnd_core, sizeof(rnd_core)); mbedtls_test_rnd_pseudo_info rnd_mod; - memcpy( &rnd_mod, &rnd_core, sizeof( rnd_core ) ); + memcpy(&rnd_mod, &rnd_core, sizeof(rnd_core)); mbedtls_mpi_uint *R_core = NULL; mbedtls_mpi_uint *R_mod_raw = NULL; mbedtls_mpi_uint *R_mod_digits = NULL; mbedtls_mpi_mod_residue R_mod; mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); - TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, max_hex, rep ), 0 ); - ASSERT_ALLOC( R_core, N.limbs ); - ASSERT_ALLOC( R_mod_raw, N.limbs ); - ASSERT_ALLOC( R_mod_digits, N.limbs ); - TEST_EQUAL( mbedtls_mpi_mod_residue_setup( &R_mod, &N, - R_mod_digits, N.limbs ), - 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_modulus(&N, max_hex, rep), 0); + ASSERT_ALLOC(R_core, N.limbs); + ASSERT_ALLOC(R_mod_raw, N.limbs); + ASSERT_ALLOC(R_mod_digits, N.limbs); + TEST_EQUAL(mbedtls_mpi_mod_residue_setup(&R_mod, &N, + R_mod_digits, N.limbs), + 0); /* Call the core and mod random() functions with the same random stream. */ - int core_ret = mbedtls_mpi_core_random( R_core, - min, N.p, N.limbs, - mbedtls_test_rnd_pseudo_rand, - &rnd_core ); - int mod_raw_ret = mbedtls_mpi_mod_raw_random( R_mod_raw, - min, &N, - mbedtls_test_rnd_pseudo_rand, - &rnd_mod_raw ); - int mod_ret = mbedtls_mpi_mod_random( &R_mod, - min, &N, - mbedtls_test_rnd_pseudo_rand, - &rnd_mod ); + int core_ret = mbedtls_mpi_core_random(R_core, + min, N.p, N.limbs, + mbedtls_test_rnd_pseudo_rand, + &rnd_core); + int mod_raw_ret = mbedtls_mpi_mod_raw_random(R_mod_raw, + min, &N, + mbedtls_test_rnd_pseudo_rand, + &rnd_mod_raw); + int mod_ret = mbedtls_mpi_mod_random(&R_mod, + min, &N, + mbedtls_test_rnd_pseudo_rand, + &rnd_mod); /* They must return the same status, and, on success, output the * same number, with the same limb count. */ - TEST_EQUAL( core_ret, mod_raw_ret ); - TEST_EQUAL( core_ret, mod_ret ); - if( core_ret == 0 ) - { - TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_raw, &N ), - 0 ); - ASSERT_COMPARE( R_core, N.limbs * ciL, - R_mod_raw, N.limbs * ciL ); - TEST_EQUAL( mbedtls_mpi_mod_raw_modulus_to_canonical_rep( R_mod_digits, &N ), - 0 ); - ASSERT_COMPARE( R_core, N.limbs * ciL, - R_mod_digits, N.limbs * ciL ); + TEST_EQUAL(core_ret, mod_raw_ret); + TEST_EQUAL(core_ret, mod_ret); + if (core_ret == 0) { + TEST_EQUAL(mbedtls_mpi_mod_raw_modulus_to_canonical_rep(R_mod_raw, &N), + 0); + ASSERT_COMPARE(R_core, N.limbs * ciL, + R_mod_raw, N.limbs * ciL); + TEST_EQUAL(mbedtls_mpi_mod_raw_modulus_to_canonical_rep(R_mod_digits, &N), + 0); + ASSERT_COMPARE(R_core, N.limbs * ciL, + R_mod_digits, N.limbs * ciL); } /* Also check that they have consumed the RNG in the same way. */ /* This may theoretically fail on rare platforms with padding in * the structure! If this is a problem in practice, change to a * field-by-field comparison. */ - ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), - &rnd_mod_raw, sizeof( rnd_mod_raw ) ); - ASSERT_COMPARE( &rnd_core, sizeof( rnd_core ), - &rnd_mod, sizeof( rnd_mod ) ); + ASSERT_COMPARE(&rnd_core, sizeof(rnd_core), + &rnd_mod_raw, sizeof(rnd_mod_raw)); + ASSERT_COMPARE(&rnd_core, sizeof(rnd_core), + &rnd_mod, sizeof(rnd_mod)); exit: - mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); - mbedtls_free( R_core ); - mbedtls_free( R_mod_raw ); - mbedtls_free( R_mod_digits ); + mbedtls_test_mpi_mod_modulus_free_with_limbs(&N); + mbedtls_free(R_core); + mbedtls_free(R_mod_raw); + mbedtls_free(R_mod_digits); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_random_many( int min, char *bound_hex, int iterations ) +void mpi_random_many(int min, char *bound_hex, int iterations) { /* Generate numbers in the range 1..bound-1. Do it iterations times. * This function assumes that the value of bound is at least 2 and @@ -271,7 +271,7 @@ void mpi_random_many( int min, char *bound_hex, int iterations ) * effectively never occurs. */ - data_t bound_bytes = {NULL, 0}; + data_t bound_bytes = { NULL, 0 }; mbedtls_mpi_uint *upper_bound = NULL; size_t limbs; size_t n_bits; @@ -285,79 +285,68 @@ void mpi_random_many( int min, char *bound_hex, int iterations ) int full_stats; size_t i; - TEST_EQUAL( 0, mbedtls_test_read_mpi_core( &upper_bound, &limbs, - bound_hex ) ); - ASSERT_ALLOC( result, limbs ); + TEST_EQUAL(0, mbedtls_test_read_mpi_core(&upper_bound, &limbs, + bound_hex)); + ASSERT_ALLOC(result, limbs); - n_bits = mbedtls_mpi_core_bitlen( upper_bound, limbs ); + n_bits = mbedtls_mpi_core_bitlen(upper_bound, limbs); /* Consider a bound "small" if it's less than 2^5. This value is chosen * to be small enough that the probability of missing one value is * negligible given the number of iterations. It must be less than * 256 because some of the code below assumes that "small" values * fit in a byte. */ - if( n_bits <= 5 ) - { + if (n_bits <= 5) { full_stats = 1; stats_len = (uint8_t) upper_bound[0]; - } - else - { + } else { full_stats = 0; stats_len = n_bits; } - ASSERT_ALLOC( stats, stats_len ); + ASSERT_ALLOC(stats, stats_len); - for( i = 0; i < (size_t) iterations; i++ ) - { - mbedtls_test_set_step( i ); - TEST_EQUAL( 0, mbedtls_mpi_core_random( result, - min, upper_bound, limbs, - mbedtls_test_rnd_std_rand, NULL ) ); + for (i = 0; i < (size_t) iterations; i++) { + mbedtls_test_set_step(i); + TEST_EQUAL(0, mbedtls_mpi_core_random(result, + min, upper_bound, limbs, + mbedtls_test_rnd_std_rand, NULL)); /* Temporarily use a legacy MPI for analysis, because the * necessary auxiliary functions don't exist yet in core. */ - mbedtls_mpi B = {1, limbs, upper_bound}; - mbedtls_mpi R = {1, limbs, result}; + mbedtls_mpi B = { 1, limbs, upper_bound }; + mbedtls_mpi R = { 1, limbs, result }; - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &B ) < 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &R, min ) >= 0 ); - if( full_stats ) - { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &B) < 0); + TEST_ASSERT(mbedtls_mpi_cmp_int(&R, min) >= 0); + if (full_stats) { uint8_t value; - TEST_EQUAL( 0, mbedtls_mpi_write_binary( &R, &value, 1 ) ); - TEST_ASSERT( value < stats_len ); + TEST_EQUAL(0, mbedtls_mpi_write_binary(&R, &value, 1)); + TEST_ASSERT(value < stats_len); ++stats[value]; - } - else - { - for( b = 0; b < n_bits; b++ ) - stats[b] += mbedtls_mpi_get_bit( &R, b ); + } else { + for (b = 0; b < n_bits; b++) { + stats[b] += mbedtls_mpi_get_bit(&R, b); + } } } - if( full_stats ) - { - for( b = min; b < stats_len; b++ ) - { - mbedtls_test_set_step( 1000000 + b ); + if (full_stats) { + for (b = min; b < stats_len; b++) { + mbedtls_test_set_step(1000000 + b); /* Assert that each value has been reached at least once. * This is almost guaranteed if the iteration count is large * enough. This is a very crude way of checking the distribution. */ - TEST_ASSERT( stats[b] > 0 ); + TEST_ASSERT(stats[b] > 0); } - } - else - { - bound_bytes.len = limbs * sizeof( mbedtls_mpi_uint ); - ASSERT_ALLOC( bound_bytes.x, bound_bytes.len ); - mbedtls_mpi_core_write_be( upper_bound, limbs, - bound_bytes.x, bound_bytes.len ); + } else { + bound_bytes.len = limbs * sizeof(mbedtls_mpi_uint); + ASSERT_ALLOC(bound_bytes.x, bound_bytes.len); + mbedtls_mpi_core_write_be(upper_bound, limbs, + bound_bytes.x, bound_bytes.len); int statistically_safe_all_the_way = - is_significantly_above_a_power_of_2( &bound_bytes ); - for( b = 0; b < n_bits; b++ ) - { - mbedtls_test_set_step( 1000000 + b ); + is_significantly_above_a_power_of_2(&bound_bytes); + for (b = 0; b < n_bits; b++) { + mbedtls_test_set_step(1000000 + b); /* Assert that each bit has been set in at least one result and * clear in at least one result. Provided that iterations is not * too small, it would be extremely unlikely for this not to be @@ -366,131 +355,127 @@ void mpi_random_many( int min, char *bound_hex, int iterations ) * As an exception, the top bit may legitimately never be set * if bound is a power of 2 or only slightly above. */ - if( statistically_safe_all_the_way || b != n_bits - 1 ) - { - TEST_ASSERT( stats[b] > 0 ); + if (statistically_safe_all_the_way || b != n_bits - 1) { + TEST_ASSERT(stats[b] > 0); } - TEST_ASSERT( stats[b] < (size_t) iterations ); + TEST_ASSERT(stats[b] < (size_t) iterations); } } exit: - mbedtls_free( bound_bytes.x ); - mbedtls_free( upper_bound ); - mbedtls_free( result ); - mbedtls_free( stats ); + mbedtls_free(bound_bytes.x); + mbedtls_free(upper_bound); + mbedtls_free(result); + mbedtls_free(stats); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_random_sizes( int min, data_t *bound_bytes, int nlimbs, int before ) +void mpi_random_sizes(int min, data_t *bound_bytes, int nlimbs, int before) { mbedtls_mpi upper_bound; mbedtls_mpi result; - mbedtls_mpi_init( &upper_bound ); - mbedtls_mpi_init( &result ); + mbedtls_mpi_init(&upper_bound); + mbedtls_mpi_init(&result); - if( before != 0 ) - { + if (before != 0) { /* Set result to sign(before) * 2^(|before|-1) */ - TEST_ASSERT( mbedtls_mpi_lset( &result, before > 0 ? 1 : -1 ) == 0 ); - if( before < 0 ) - before = - before; - TEST_ASSERT( mbedtls_mpi_shift_l( &result, before - 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&result, before > 0 ? 1 : -1) == 0); + if (before < 0) { + before = -before; + } + TEST_ASSERT(mbedtls_mpi_shift_l(&result, before - 1) == 0); } - TEST_EQUAL( 0, mbedtls_mpi_grow( &result, nlimbs ) ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, - bound_bytes->x, bound_bytes->len ) ); - TEST_EQUAL( 0, mbedtls_mpi_random( &result, min, &upper_bound, - mbedtls_test_rnd_std_rand, NULL ) ); - TEST_ASSERT( sign_is_valid( &result ) ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &result, &upper_bound ) < 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &result, min ) >= 0 ); + TEST_EQUAL(0, mbedtls_mpi_grow(&result, nlimbs)); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&upper_bound, + bound_bytes->x, bound_bytes->len)); + TEST_EQUAL(0, mbedtls_mpi_random(&result, min, &upper_bound, + mbedtls_test_rnd_std_rand, NULL)); + TEST_ASSERT(sign_is_valid(&result)); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&result, &upper_bound) < 0); + TEST_ASSERT(mbedtls_mpi_cmp_int(&result, min) >= 0); exit: - mbedtls_mpi_free( &upper_bound ); - mbedtls_mpi_free( &result ); + mbedtls_mpi_free(&upper_bound); + mbedtls_mpi_free(&result); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_mod_random_validation( int min, char *bound_hex, - int result_limbs_delta, - int expected_ret ) +void mpi_mod_random_validation(int min, char *bound_hex, + int result_limbs_delta, + int expected_ret) { mbedtls_mpi_uint *result_digits = NULL; mbedtls_mpi_mod_modulus N; - mbedtls_mpi_mod_modulus_init( &N ); + mbedtls_mpi_mod_modulus_init(&N); - TEST_EQUAL( mbedtls_test_read_mpi_modulus( &N, bound_hex, - MBEDTLS_MPI_MOD_REP_OPT_RED ), - 0 ); + TEST_EQUAL(mbedtls_test_read_mpi_modulus(&N, bound_hex, + MBEDTLS_MPI_MOD_REP_OPT_RED), + 0); size_t result_limbs = N.limbs + result_limbs_delta; - ASSERT_ALLOC( result_digits, result_limbs ); + ASSERT_ALLOC(result_digits, result_limbs); /* Build a reside that might not match the modulus, to test that * the library function rejects that as expected. */ - mbedtls_mpi_mod_residue result = {result_digits, result_limbs}; + mbedtls_mpi_mod_residue result = { result_digits, result_limbs }; - TEST_EQUAL( mbedtls_mpi_mod_random( &result, min, &N, - mbedtls_test_rnd_std_rand, NULL ), - expected_ret ); - if( expected_ret == 0 ) - { + TEST_EQUAL(mbedtls_mpi_mod_random(&result, min, &N, + mbedtls_test_rnd_std_rand, NULL), + expected_ret); + if (expected_ret == 0) { /* Success should only be expected when the result has the same * size as the modulus, otherwise it's a mistake in the test data. */ - TEST_EQUAL( result_limbs, N.limbs ); + TEST_EQUAL(result_limbs, N.limbs); /* Sanity check: check that the result is in range */ - TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), - 1 ); + TEST_EQUAL(mbedtls_mpi_core_lt_ct(result_digits, N.p, N.limbs), + 1); /* Check result >= min (changes result) */ - TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result_digits, min, - result_limbs ), - 0 ); + TEST_EQUAL(mbedtls_mpi_core_sub_int(result_digits, result_digits, min, + result_limbs), + 0); } /* When the result has the right number of limbs, also test mod_raw * (for which this is an unchecked precondition). */ - if( result_limbs_delta == 0 ) - { - TEST_EQUAL( mbedtls_mpi_mod_raw_random( result_digits, min, &N, - mbedtls_test_rnd_std_rand, NULL ), - expected_ret ); - if( expected_ret == 0 ) - { - TEST_EQUAL( mbedtls_mpi_core_lt_ct( result_digits, N.p, N.limbs ), - 1 ); - TEST_EQUAL( mbedtls_mpi_core_sub_int( result_digits, result.p, min, - result_limbs ), - 0 ); + if (result_limbs_delta == 0) { + TEST_EQUAL(mbedtls_mpi_mod_raw_random(result_digits, min, &N, + mbedtls_test_rnd_std_rand, NULL), + expected_ret); + if (expected_ret == 0) { + TEST_EQUAL(mbedtls_mpi_core_lt_ct(result_digits, N.p, N.limbs), + 1); + TEST_EQUAL(mbedtls_mpi_core_sub_int(result_digits, result.p, min, + result_limbs), + 0); } } exit: - mbedtls_test_mpi_mod_modulus_free_with_limbs( &N ); - mbedtls_free( result_digits ); + mbedtls_test_mpi_mod_modulus_free_with_limbs(&N); + mbedtls_free(result_digits); } /* END_CASE */ /* BEGIN_CASE */ -void mpi_random_fail( int min, data_t *bound_bytes, int expected_ret ) +void mpi_random_fail(int min, data_t *bound_bytes, int expected_ret) { mbedtls_mpi upper_bound; mbedtls_mpi result; int actual_ret; - mbedtls_mpi_init( &upper_bound ); - mbedtls_mpi_init( &result ); + mbedtls_mpi_init(&upper_bound); + mbedtls_mpi_init(&result); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &upper_bound, - bound_bytes->x, bound_bytes->len ) ); - actual_ret = mbedtls_mpi_random( &result, min, &upper_bound, - mbedtls_test_rnd_std_rand, NULL ); - TEST_EQUAL( expected_ret, actual_ret ); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&upper_bound, + bound_bytes->x, bound_bytes->len)); + actual_ret = mbedtls_mpi_random(&result, min, &upper_bound, + mbedtls_test_rnd_std_rand, NULL); + TEST_EQUAL(expected_ret, actual_ret); exit: - mbedtls_mpi_free( &upper_bound ); - mbedtls_mpi_free( &result ); + mbedtls_mpi_free(&upper_bound); + mbedtls_mpi_free(&result); } /* END_CASE */ diff --git a/tests/suites/test_suite_camellia.function b/tests/suites/test_suite_camellia.function index 3d318c861..1cef97a9f 100644 --- a/tests/suites/test_suite_camellia.function +++ b/tests/suites/test_suite_camellia.function @@ -8,7 +8,7 @@ */ /* BEGIN_CASE */ -void camellia_invalid_param( ) +void camellia_invalid_param() { mbedtls_camellia_context ctx; unsigned char buf[16] = { 0 }; @@ -16,26 +16,26 @@ void camellia_invalid_param( ) size_t off; ((void) off); - TEST_EQUAL( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, - mbedtls_camellia_crypt_ecb( &ctx, - invalid_mode, - buf, buf ) ); + TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, + mbedtls_camellia_crypt_ecb(&ctx, + invalid_mode, + buf, buf)); #if defined(MBEDTLS_CIPHER_MODE_CBC) - TEST_EQUAL( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, - mbedtls_camellia_crypt_cbc( &ctx, - invalid_mode, - sizeof( buf ), - buf, buf, buf ) ); + TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, + mbedtls_camellia_crypt_cbc(&ctx, + invalid_mode, + sizeof(buf), + buf, buf, buf)); #endif /* MBEDTLS_CIPHER_MODE_CBC */ #if defined(MBEDTLS_CIPHER_MODE_CFB) - TEST_EQUAL( MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, - mbedtls_camellia_crypt_cfb128( &ctx, - invalid_mode, - sizeof( buf ), - &off, buf, - buf, buf ) ); + TEST_EQUAL(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA, + mbedtls_camellia_crypt_cfb128(&ctx, + invalid_mode, + sizeof(buf), + &off, buf, + buf, buf)); #endif /* MBEDTLS_CIPHER_MODE_CFB */ exit: @@ -44,152 +44,154 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void camellia_encrypt_ecb( data_t * key_str, data_t * src_str, - data_t * dst, int setkey_result ) +void camellia_encrypt_ecb(data_t *key_str, data_t *src_str, + data_t *dst, int setkey_result) { unsigned char output[100]; mbedtls_camellia_context ctx; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - TEST_ASSERT( mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); - if( setkey_result == 0 ) - { - TEST_ASSERT( mbedtls_camellia_crypt_ecb( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8) == setkey_result); + if (setkey_result == 0) { + TEST_ASSERT(mbedtls_camellia_crypt_ecb(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->x, + output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); } exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void camellia_decrypt_ecb( data_t * key_str, data_t * src_str, - data_t * dst, int setkey_result ) +void camellia_decrypt_ecb(data_t *key_str, data_t *src_str, + data_t *dst, int setkey_result) { unsigned char output[100]; mbedtls_camellia_context ctx; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - TEST_ASSERT( mbedtls_camellia_setkey_dec( &ctx, key_str->x, key_str->len * 8 ) == setkey_result ); - if( setkey_result == 0 ) - { - TEST_ASSERT( mbedtls_camellia_crypt_ecb( &ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_camellia_setkey_dec(&ctx, key_str->x, key_str->len * 8) == setkey_result); + if (setkey_result == 0) { + TEST_ASSERT(mbedtls_camellia_crypt_ecb(&ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->x, + output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); } exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void camellia_encrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, int cbc_result ) +void camellia_encrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, int cbc_result) { unsigned char output[100]; mbedtls_camellia_context ctx; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_camellia_crypt_cbc( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->len, iv_str->x, src_str->x, output) == cbc_result ); - if( cbc_result == 0 ) - { + mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_camellia_crypt_cbc(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, - dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len, + dst->len) == 0); } exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void camellia_decrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, - int cbc_result ) +void camellia_decrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, + int cbc_result) { unsigned char output[100]; mbedtls_camellia_context ctx; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - mbedtls_camellia_setkey_dec( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_camellia_crypt_cbc( &ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); - if( cbc_result == 0 ) - { + mbedtls_camellia_setkey_dec(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_camellia_crypt_cbc(&ctx, MBEDTLS_CAMELLIA_DECRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, - dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len, + dst->len) == 0); } exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void camellia_encrypt_cfb128( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst ) +void camellia_encrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_camellia_context ctx; size_t iv_offset = 0; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_camellia_crypt_cfb128( &ctx, MBEDTLS_CAMELLIA_ENCRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); + mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_camellia_crypt_cfb128(&ctx, MBEDTLS_CAMELLIA_ENCRYPT, 16, &iv_offset, + iv_str->x, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CFB */ -void camellia_decrypt_cfb128( data_t * key_str, data_t * iv_str, - data_t * src_str, - data_t * dst ) +void camellia_decrypt_cfb128(data_t *key_str, data_t *iv_str, + data_t *src_str, + data_t *dst) { unsigned char output[100]; mbedtls_camellia_context ctx; size_t iv_offset = 0; memset(output, 0x00, 100); - mbedtls_camellia_init( &ctx ); + mbedtls_camellia_init(&ctx); - mbedtls_camellia_setkey_enc( &ctx, key_str->x, key_str->len * 8 ); - TEST_ASSERT( mbedtls_camellia_crypt_cfb128( &ctx, MBEDTLS_CAMELLIA_DECRYPT, 16, &iv_offset, iv_str->x, src_str->x, output ) == 0 ); + mbedtls_camellia_setkey_enc(&ctx, key_str->x, key_str->len * 8); + TEST_ASSERT(mbedtls_camellia_crypt_cfb128(&ctx, MBEDTLS_CAMELLIA_DECRYPT, 16, &iv_offset, + iv_str->x, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 16, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 16, dst->len) == 0); exit: - mbedtls_camellia_free( &ctx ); + mbedtls_camellia_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void camellia_selftest( ) +void camellia_selftest() { - TEST_ASSERT( mbedtls_camellia_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_camellia_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_ccm.function b/tests/suites/test_suite_ccm.function index a7ba0dea2..8c5e6abb5 100644 --- a/tests/suites/test_suite_ccm.function +++ b/tests/suites/test_suite_ccm.function @@ -4,15 +4,15 @@ /* Use the multipart interface to process the encrypted data in two parts * and check that the output matches the expected output. * The context must have been set up with the key. */ -static int check_multipart( mbedtls_ccm_context *ctx, - int mode, - const data_t *iv, - const data_t *add, - const data_t *input, - const data_t *expected_output, - const data_t *tag, - size_t n1, - size_t n1_add) +static int check_multipart(mbedtls_ccm_context *ctx, + int mode, + const data_t *iv, + const data_t *add, + const data_t *input, + const data_t *expected_output, + const data_t *tag, + size_t n1, + size_t n1_add) { int ok = 0; uint8_t *output = NULL; @@ -21,43 +21,43 @@ static int check_multipart( mbedtls_ccm_context *ctx, size_t olen; /* Sanity checks on the test data */ - TEST_ASSERT( n1 <= input->len ); - TEST_ASSERT( n1_add <= add->len ); - TEST_EQUAL( input->len, expected_output->len ); - TEST_EQUAL( 0, mbedtls_ccm_starts( ctx, mode, iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( ctx, add->len, input->len, tag->len ) ); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( ctx, add->x, n1_add) ); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( ctx, add->x + n1_add, n2_add ) ); + TEST_ASSERT(n1 <= input->len); + TEST_ASSERT(n1_add <= add->len); + TEST_EQUAL(input->len, expected_output->len); + TEST_EQUAL(0, mbedtls_ccm_starts(ctx, mode, iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(ctx, add->len, input->len, tag->len)); + TEST_EQUAL(0, mbedtls_ccm_update_ad(ctx, add->x, n1_add)); + TEST_EQUAL(0, mbedtls_ccm_update_ad(ctx, add->x + n1_add, n2_add)); /* Allocate a tight buffer for each update call. This way, if the function * tries to write beyond the advertised required buffer size, this will * count as an overflow for memory sanitizers and static checkers. */ - ASSERT_ALLOC( output, n1 ); + ASSERT_ALLOC(output, n1); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_ccm_update( ctx, input->x, n1, output, n1, &olen ) ); - TEST_EQUAL( n1, olen ); - ASSERT_COMPARE( output, olen, expected_output->x, n1 ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_ccm_update(ctx, input->x, n1, output, n1, &olen)); + TEST_EQUAL(n1, olen); + ASSERT_COMPARE(output, olen, expected_output->x, n1); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, n2 ); + ASSERT_ALLOC(output, n2); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_ccm_update( ctx, input->x + n1, n2, output, n2, &olen ) ); - TEST_EQUAL( n2, olen ); - ASSERT_COMPARE( output, olen, expected_output->x + n1, n2 ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_ccm_update(ctx, input->x + n1, n2, output, n2, &olen)); + TEST_EQUAL(n2, olen); + ASSERT_COMPARE(output, olen, expected_output->x + n1, n2); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_ccm_finish( ctx, output, tag->len ) ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_ccm_finish(ctx, output, tag->len)); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); + mbedtls_free(output); output = NULL; ok = 1; exit: - mbedtls_free( output ); - return( ok ); + mbedtls_free(output); + return ok; } /* END_HEADER */ @@ -67,34 +67,34 @@ exit: */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_AES_C */ -void mbedtls_ccm_self_test( ) +void mbedtls_ccm_self_test() { - TEST_ASSERT( mbedtls_ccm_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_ccm_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ccm_setkey( int cipher_id, int key_size, int result ) +void mbedtls_ccm_setkey(int cipher_id, int key_size, int result) { mbedtls_ccm_context ctx; unsigned char key[32]; int ret; - mbedtls_ccm_init( &ctx ); + mbedtls_ccm_init(&ctx); - memset( key, 0x2A, sizeof( key ) ); - TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) ); + memset(key, 0x2A, sizeof(key)); + TEST_ASSERT((unsigned) key_size <= 8 * sizeof(key)); - ret = mbedtls_ccm_setkey( &ctx, cipher_id, key, key_size ); - TEST_ASSERT( ret == result ); + ret = mbedtls_ccm_setkey(&ctx, cipher_id, key, key_size); + TEST_ASSERT(ret == result); exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void ccm_lengths( int msg_len, int iv_len, int add_len, int tag_len, int res ) +void ccm_lengths(int msg_len, int iv_len, int add_len, int tag_len, int res) { mbedtls_ccm_context ctx; unsigned char key[16]; @@ -105,38 +105,39 @@ void ccm_lengths( int msg_len, int iv_len, int add_len, int tag_len, int res ) unsigned char tag[18]; int decrypt_ret; - mbedtls_ccm_init( &ctx ); + mbedtls_ccm_init(&ctx); - ASSERT_ALLOC_WEAK( add, add_len ); - memset( key, 0, sizeof( key ) ); - memset( msg, 0, sizeof( msg ) ); - memset( iv, 0, sizeof( iv ) ); - memset( out, 0, sizeof( out ) ); - memset( tag, 0, sizeof( tag ) ); + ASSERT_ALLOC_WEAK(add, add_len); + memset(key, 0, sizeof(key)); + memset(msg, 0, sizeof(msg)); + memset(iv, 0, sizeof(iv)); + memset(out, 0, sizeof(out)); + memset(tag, 0, sizeof(tag)); - TEST_ASSERT( mbedtls_ccm_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - key, 8 * sizeof( key ) ) == 0 ); + TEST_ASSERT(mbedtls_ccm_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + key, 8 * sizeof(key)) == 0); - TEST_ASSERT( mbedtls_ccm_encrypt_and_tag( &ctx, msg_len, iv, iv_len, add, add_len, - msg, out, tag, tag_len ) == res ); + TEST_ASSERT(mbedtls_ccm_encrypt_and_tag(&ctx, msg_len, iv, iv_len, add, add_len, + msg, out, tag, tag_len) == res); - decrypt_ret = mbedtls_ccm_auth_decrypt( &ctx, msg_len, iv, iv_len, add, add_len, - msg, out, tag, tag_len ); + decrypt_ret = mbedtls_ccm_auth_decrypt(&ctx, msg_len, iv, iv_len, add, add_len, + msg, out, tag, tag_len); - if( res == 0 ) - TEST_ASSERT( decrypt_ret == MBEDTLS_ERR_CCM_AUTH_FAILED ); - else - TEST_ASSERT( decrypt_ret == res ); + if (res == 0) { + TEST_ASSERT(decrypt_ret == MBEDTLS_ERR_CCM_AUTH_FAILED); + } else { + TEST_ASSERT(decrypt_ret == res); + } exit: - mbedtls_free( add ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(add); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void ccm_star_lengths( int msg_len, int iv_len, int add_len, int tag_len, - int res ) +void ccm_star_lengths(int msg_len, int iv_len, int add_len, int tag_len, + int res) { mbedtls_ccm_context ctx; unsigned char key[16]; @@ -147,268 +148,269 @@ void ccm_star_lengths( int msg_len, int iv_len, int add_len, int tag_len, unsigned char tag[18]; int decrypt_ret; - mbedtls_ccm_init( &ctx ); + mbedtls_ccm_init(&ctx); - memset( key, 0, sizeof( key ) ); - memset( msg, 0, sizeof( msg ) ); - memset( iv, 0, sizeof( iv ) ); - memset( add, 0, sizeof( add ) ); - memset( out, 0, sizeof( out ) ); - memset( tag, 0, sizeof( tag ) ); + memset(key, 0, sizeof(key)); + memset(msg, 0, sizeof(msg)); + memset(iv, 0, sizeof(iv)); + memset(add, 0, sizeof(add)); + memset(out, 0, sizeof(out)); + memset(tag, 0, sizeof(tag)); - TEST_ASSERT( mbedtls_ccm_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - key, 8 * sizeof( key ) ) == 0 ); + TEST_ASSERT(mbedtls_ccm_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + key, 8 * sizeof(key)) == 0); - TEST_ASSERT( mbedtls_ccm_star_encrypt_and_tag( &ctx, msg_len, iv, iv_len, - add, add_len, msg, out, tag, tag_len ) == res ); + TEST_ASSERT(mbedtls_ccm_star_encrypt_and_tag(&ctx, msg_len, iv, iv_len, + add, add_len, msg, out, tag, tag_len) == res); - decrypt_ret = mbedtls_ccm_star_auth_decrypt( &ctx, msg_len, iv, iv_len, add, - add_len, msg, out, tag, tag_len ); + decrypt_ret = mbedtls_ccm_star_auth_decrypt(&ctx, msg_len, iv, iv_len, add, + add_len, msg, out, tag, tag_len); - if( res == 0 && tag_len != 0 ) - TEST_ASSERT( decrypt_ret == MBEDTLS_ERR_CCM_AUTH_FAILED ); - else - TEST_ASSERT( decrypt_ret == res ); + if (res == 0 && tag_len != 0) { + TEST_ASSERT(decrypt_ret == MBEDTLS_ERR_CCM_AUTH_FAILED); + } else { + TEST_ASSERT(decrypt_ret == res); + } exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ccm_encrypt_and_tag( int cipher_id, data_t * key, - data_t * msg, data_t * iv, - data_t * add, data_t * result ) +void mbedtls_ccm_encrypt_and_tag(int cipher_id, data_t *key, + data_t *msg, data_t *iv, + data_t *add, data_t *result) { mbedtls_ccm_context ctx; size_t n1, n1_add; - uint8_t* io_msg_buf = NULL; - uint8_t* tag_buf = NULL; + uint8_t *io_msg_buf = NULL; + uint8_t *tag_buf = NULL; const size_t expected_tag_len = result->len - msg->len; - const uint8_t* expected_tag = result->x + msg->len; + const uint8_t *expected_tag = result->x + msg->len; /* Prepare input/output message buffer */ - ASSERT_ALLOC( io_msg_buf, msg->len ); - if( msg->len != 0 ) - memcpy( io_msg_buf, msg->x, msg->len ); + ASSERT_ALLOC(io_msg_buf, msg->len); + if (msg->len != 0) { + memcpy(io_msg_buf, msg->x, msg->len); + } /* Prepare tag buffer */ - ASSERT_ALLOC( tag_buf, expected_tag_len ); + ASSERT_ALLOC(tag_buf, expected_tag_len); - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); /* Test with input == output */ - TEST_EQUAL( mbedtls_ccm_encrypt_and_tag( &ctx, msg->len, iv->x, iv->len, add->x, add->len, - io_msg_buf, io_msg_buf, tag_buf, expected_tag_len ), 0); + TEST_EQUAL(mbedtls_ccm_encrypt_and_tag(&ctx, msg->len, iv->x, iv->len, add->x, add->len, + io_msg_buf, io_msg_buf, tag_buf, expected_tag_len), 0); - ASSERT_COMPARE( io_msg_buf, msg->len, result->x, msg->len ); - ASSERT_COMPARE( tag_buf, expected_tag_len, expected_tag, expected_tag_len ); + ASSERT_COMPARE(io_msg_buf, msg->len, result->x, msg->len); + ASSERT_COMPARE(tag_buf, expected_tag_len, expected_tag, expected_tag_len); /* Prepare data_t structures for multipart testing */ const data_t encrypted_expected = { .x = result->x, .len = msg->len }; - const data_t tag_expected = { .x = (uint8_t*) expected_tag, /* cast to conform with data_t x type */ + const data_t tag_expected = { .x = (uint8_t *) expected_tag, /* cast to conform with data_t x type */ .len = expected_tag_len }; - for( n1 = 0; n1 <= msg->len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_CCM_ENCRYPT, - iv, add, msg, - &encrypted_expected, - &tag_expected, - n1, n1_add ) ) + for (n1 = 0; n1 <= msg->len; n1 += 1) { + for (n1_add = 0; n1_add <= add->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_CCM_ENCRYPT, + iv, add, msg, + &encrypted_expected, + &tag_expected, + n1, n1_add)) { goto exit; - } - } - -exit: - mbedtls_ccm_free( &ctx ); - mbedtls_free( io_msg_buf ); - mbedtls_free( tag_buf ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mbedtls_ccm_star_no_tag( int cipher_id, int mode, data_t * key, - data_t * msg, data_t * iv, data_t * result ) -{ - mbedtls_ccm_context ctx; - uint8_t *output = NULL; - size_t olen; - - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, 0, msg->len, 0 ) ); - - ASSERT_ALLOC( output, msg->len ); - TEST_EQUAL( 0, mbedtls_ccm_update( &ctx, msg->x, msg->len, output, msg->len, &olen ) ); - TEST_EQUAL( result->len, olen ); - ASSERT_COMPARE( output, olen, result->x, result->len ); - - TEST_EQUAL( 0, mbedtls_ccm_finish( &ctx, NULL, 0 ) ); -exit: - mbedtls_free(output); - mbedtls_ccm_free( &ctx ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mbedtls_ccm_auth_decrypt( int cipher_id, data_t * key, - data_t * msg, data_t * iv, - data_t * add, int expected_tag_len, int result, - data_t * expected_msg ) -{ - mbedtls_ccm_context ctx; - size_t n1, n1_add; - - const size_t expected_msg_len = msg->len - expected_tag_len; - const uint8_t* expected_tag = msg->x + expected_msg_len; - - /* Prepare input/output message buffer */ - uint8_t* io_msg_buf = NULL; - ASSERT_ALLOC( io_msg_buf, expected_msg_len ); - if( expected_msg_len ) - memcpy( io_msg_buf, msg->x, expected_msg_len ); - - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - /* Test with input == output */ - TEST_EQUAL( mbedtls_ccm_auth_decrypt( &ctx, expected_msg_len, iv->x, iv->len, add->x, add->len, - io_msg_buf, io_msg_buf, expected_tag, expected_tag_len ), result ); - - if( result == 0 ) - { - ASSERT_COMPARE( io_msg_buf, expected_msg_len, expected_msg->x, expected_msg_len ); - - /* Prepare data_t structures for multipart testing */ - const data_t encrypted = { .x = msg->x, - .len = expected_msg_len }; - - const data_t tag_expected = { .x = (uint8_t*) expected_tag, - .len = expected_tag_len }; - - for( n1 = 0; n1 <= expected_msg_len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_CCM_DECRYPT, - iv, add, &encrypted, - expected_msg, - &tag_expected, - n1, n1_add ) ) - goto exit; - } - } - } - else - { - size_t i; - - for( i = 0; i < expected_msg_len; i++ ) - TEST_EQUAL( io_msg_buf[i], 0 ); - } - -exit: - mbedtls_free(io_msg_buf); - mbedtls_ccm_free( &ctx ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void mbedtls_ccm_star_encrypt_and_tag( int cipher_id, - data_t *key, data_t *msg, - data_t *source_address, data_t *frame_counter, - int sec_level, data_t *add, - data_t *expected_result, int output_ret ) -{ - unsigned char iv[13]; - mbedtls_ccm_context ctx; - size_t iv_len, expected_tag_len; - size_t n1, n1_add; - uint8_t* io_msg_buf = NULL; - uint8_t* tag_buf = NULL; - - const uint8_t* expected_tag = expected_result->x + msg->len; - - /* Calculate tag length */ - if( sec_level % 4 == 0) - expected_tag_len = 0; - else - expected_tag_len = 1 << ( sec_level % 4 + 1); - - /* Prepare input/output message buffer */ - ASSERT_ALLOC( io_msg_buf, msg->len ); - if( msg->len ) - memcpy( io_msg_buf, msg->x, msg->len ); - - /* Prepare tag buffer */ - if( expected_tag_len == 0 ) - ASSERT_ALLOC( tag_buf, 16 ); - else - ASSERT_ALLOC( tag_buf, expected_tag_len ); - - /* Calculate iv */ - TEST_ASSERT( source_address->len == 8 ); - TEST_ASSERT( frame_counter->len == 4 ); - memcpy( iv, source_address->x, source_address->len ); - memcpy( iv + source_address->len, frame_counter->x, frame_counter->len ); - iv[source_address->len + frame_counter->len] = sec_level; - iv_len = sizeof( iv ); - - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, - key->x, key->len * 8 ), 0 ); - /* Test with input == output */ - TEST_EQUAL( mbedtls_ccm_star_encrypt_and_tag( &ctx, msg->len, iv, iv_len, - add->x, add->len, io_msg_buf, - io_msg_buf, tag_buf, expected_tag_len), output_ret ); - - ASSERT_COMPARE( io_msg_buf, msg->len, expected_result->x, msg->len ); - ASSERT_COMPARE( tag_buf, expected_tag_len, expected_tag, expected_tag_len ); - - if( output_ret == 0 ) - { - const data_t iv_data = { .x = iv, - .len = iv_len }; - - const data_t encrypted_expected = { .x = expected_result->x, - .len = msg->len }; - const data_t tag_expected = { .x = (uint8_t*)expected_tag, - .len = expected_tag_len }; - - for( n1 = 0; n1 <= msg->len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_CCM_STAR_ENCRYPT, - &iv_data, add, msg, - &encrypted_expected, - &tag_expected, - n1, n1_add ) ) - goto exit; } } } exit: - mbedtls_ccm_free( &ctx ); - mbedtls_free( io_msg_buf ); - mbedtls_free( tag_buf ); + mbedtls_ccm_free(&ctx); + mbedtls_free(io_msg_buf); + mbedtls_free(tag_buf); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ccm_star_auth_decrypt( int cipher_id, - data_t *key, data_t *msg, - data_t *source_address, data_t *frame_counter, - int sec_level, data_t *add, - data_t *expected_result, int output_ret ) +void mbedtls_ccm_star_no_tag(int cipher_id, int mode, data_t *key, + data_t *msg, data_t *iv, data_t *result) +{ + mbedtls_ccm_context ctx; + uint8_t *output = NULL; + size_t olen; + + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, 0, msg->len, 0)); + + ASSERT_ALLOC(output, msg->len); + TEST_EQUAL(0, mbedtls_ccm_update(&ctx, msg->x, msg->len, output, msg->len, &olen)); + TEST_EQUAL(result->len, olen); + ASSERT_COMPARE(output, olen, result->x, result->len); + + TEST_EQUAL(0, mbedtls_ccm_finish(&ctx, NULL, 0)); +exit: + mbedtls_free(output); + mbedtls_ccm_free(&ctx); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_ccm_auth_decrypt(int cipher_id, data_t *key, + data_t *msg, data_t *iv, + data_t *add, int expected_tag_len, int result, + data_t *expected_msg) +{ + mbedtls_ccm_context ctx; + size_t n1, n1_add; + + const size_t expected_msg_len = msg->len - expected_tag_len; + const uint8_t *expected_tag = msg->x + expected_msg_len; + + /* Prepare input/output message buffer */ + uint8_t *io_msg_buf = NULL; + ASSERT_ALLOC(io_msg_buf, expected_msg_len); + if (expected_msg_len) { + memcpy(io_msg_buf, msg->x, expected_msg_len); + } + + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + /* Test with input == output */ + TEST_EQUAL(mbedtls_ccm_auth_decrypt(&ctx, expected_msg_len, iv->x, iv->len, add->x, add->len, + io_msg_buf, io_msg_buf, expected_tag, expected_tag_len), + result); + + if (result == 0) { + ASSERT_COMPARE(io_msg_buf, expected_msg_len, expected_msg->x, expected_msg_len); + + /* Prepare data_t structures for multipart testing */ + const data_t encrypted = { .x = msg->x, + .len = expected_msg_len }; + + const data_t tag_expected = { .x = (uint8_t *) expected_tag, + .len = expected_tag_len }; + + for (n1 = 0; n1 <= expected_msg_len; n1 += 1) { + for (n1_add = 0; n1_add <= add->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_CCM_DECRYPT, + iv, add, &encrypted, + expected_msg, + &tag_expected, + n1, n1_add)) { + goto exit; + } + } + } + } else { + size_t i; + + for (i = 0; i < expected_msg_len; i++) { + TEST_EQUAL(io_msg_buf[i], 0); + } + } + +exit: + mbedtls_free(io_msg_buf); + mbedtls_ccm_free(&ctx); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_ccm_star_encrypt_and_tag(int cipher_id, + data_t *key, data_t *msg, + data_t *source_address, data_t *frame_counter, + int sec_level, data_t *add, + data_t *expected_result, int output_ret) +{ + unsigned char iv[13]; + mbedtls_ccm_context ctx; + size_t iv_len, expected_tag_len; + size_t n1, n1_add; + uint8_t *io_msg_buf = NULL; + uint8_t *tag_buf = NULL; + + const uint8_t *expected_tag = expected_result->x + msg->len; + + /* Calculate tag length */ + if (sec_level % 4 == 0) { + expected_tag_len = 0; + } else { + expected_tag_len = 1 << (sec_level % 4 + 1); + } + + /* Prepare input/output message buffer */ + ASSERT_ALLOC(io_msg_buf, msg->len); + if (msg->len) { + memcpy(io_msg_buf, msg->x, msg->len); + } + + /* Prepare tag buffer */ + if (expected_tag_len == 0) { + ASSERT_ALLOC(tag_buf, 16); + } else { + ASSERT_ALLOC(tag_buf, expected_tag_len); + } + + /* Calculate iv */ + TEST_ASSERT(source_address->len == 8); + TEST_ASSERT(frame_counter->len == 4); + memcpy(iv, source_address->x, source_address->len); + memcpy(iv + source_address->len, frame_counter->x, frame_counter->len); + iv[source_address->len + frame_counter->len] = sec_level; + iv_len = sizeof(iv); + + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, + key->x, key->len * 8), 0); + /* Test with input == output */ + TEST_EQUAL(mbedtls_ccm_star_encrypt_and_tag(&ctx, msg->len, iv, iv_len, + add->x, add->len, io_msg_buf, + io_msg_buf, tag_buf, expected_tag_len), output_ret); + + ASSERT_COMPARE(io_msg_buf, msg->len, expected_result->x, msg->len); + ASSERT_COMPARE(tag_buf, expected_tag_len, expected_tag, expected_tag_len); + + if (output_ret == 0) { + const data_t iv_data = { .x = iv, + .len = iv_len }; + + const data_t encrypted_expected = { .x = expected_result->x, + .len = msg->len }; + const data_t tag_expected = { .x = (uint8_t *) expected_tag, + .len = expected_tag_len }; + + for (n1 = 0; n1 <= msg->len; n1 += 1) { + for (n1_add = 0; n1_add <= add->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_CCM_STAR_ENCRYPT, + &iv_data, add, msg, + &encrypted_expected, + &tag_expected, + n1, n1_add)) { + goto exit; + } + } + } + } + +exit: + mbedtls_ccm_free(&ctx); + mbedtls_free(io_msg_buf); + mbedtls_free(tag_buf); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_ccm_star_auth_decrypt(int cipher_id, + data_t *key, data_t *msg, + data_t *source_address, data_t *frame_counter, + int sec_level, data_t *add, + data_t *expected_result, int output_ret) { unsigned char iv[13]; mbedtls_ccm_context ctx; @@ -416,428 +418,429 @@ void mbedtls_ccm_star_auth_decrypt( int cipher_id, size_t n1, n1_add; /* Calculate tag length */ - if( sec_level % 4 == 0) + if (sec_level % 4 == 0) { expected_tag_len = 0; - else - expected_tag_len = 1 << ( sec_level % 4 + 1); + } else { + expected_tag_len = 1 << (sec_level % 4 + 1); + } const size_t expected_msg_len = msg->len - expected_tag_len; - const uint8_t* expected_tag = msg->x + expected_msg_len; + const uint8_t *expected_tag = msg->x + expected_msg_len; /* Prepare input/output message buffer */ - uint8_t* io_msg_buf = NULL; - ASSERT_ALLOC( io_msg_buf, expected_msg_len ); - if( expected_msg_len ) - memcpy( io_msg_buf, msg->x, expected_msg_len ); + uint8_t *io_msg_buf = NULL; + ASSERT_ALLOC(io_msg_buf, expected_msg_len); + if (expected_msg_len) { + memcpy(io_msg_buf, msg->x, expected_msg_len); + } /* Calculate iv */ - memset( iv, 0x00, sizeof( iv ) ); - TEST_ASSERT( source_address->len == 8 ); - TEST_ASSERT( frame_counter->len == 4 ); - memcpy( iv, source_address->x, source_address->len ); - memcpy( iv + source_address->len, frame_counter->x, frame_counter->len ); + memset(iv, 0x00, sizeof(iv)); + TEST_ASSERT(source_address->len == 8); + TEST_ASSERT(frame_counter->len == 4); + memcpy(iv, source_address->x, source_address->len); + memcpy(iv + source_address->len, frame_counter->x, frame_counter->len); iv[source_address->len + frame_counter->len] = sec_level; - iv_len = sizeof( iv ); + iv_len = sizeof(iv); - mbedtls_ccm_init( &ctx ); - TEST_ASSERT( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ) == 0 ); + mbedtls_ccm_init(&ctx); + TEST_ASSERT(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8) == 0); /* Test with input == output */ - TEST_EQUAL( mbedtls_ccm_star_auth_decrypt( &ctx, expected_msg_len, iv, iv_len, - add->x, add->len, io_msg_buf, io_msg_buf, - expected_tag, expected_tag_len ), output_ret ); + TEST_EQUAL(mbedtls_ccm_star_auth_decrypt(&ctx, expected_msg_len, iv, iv_len, + add->x, add->len, io_msg_buf, io_msg_buf, + expected_tag, expected_tag_len), output_ret); - ASSERT_COMPARE( io_msg_buf, expected_msg_len, expected_result->x, expected_msg_len ); + ASSERT_COMPARE(io_msg_buf, expected_msg_len, expected_result->x, expected_msg_len); - if( output_ret == 0 ) - { + if (output_ret == 0) { const data_t iv_data = { .x = iv, .len = iv_len }; const data_t encrypted = { .x = msg->x, - .len = expected_msg_len} ; + .len = expected_msg_len }; - const data_t tag_expected = { .x = (uint8_t*) expected_tag, + const data_t tag_expected = { .x = (uint8_t *) expected_tag, .len = expected_tag_len }; - for( n1 = 0; n1 <= expected_msg_len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_CCM_STAR_DECRYPT, - &iv_data, add, &encrypted, - expected_result, - &tag_expected, - n1, n1_add ) ) + for (n1 = 0; n1 <= expected_msg_len; n1 += 1) { + for (n1_add = 0; n1_add <= add->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_CCM_STAR_DECRYPT, + &iv_data, add, &encrypted, + expected_result, + &tag_expected, + n1, n1_add)) { goto exit; - } + } + } } } exit: - mbedtls_ccm_free( &ctx ); - mbedtls_free( io_msg_buf ); + mbedtls_ccm_free(&ctx); + mbedtls_free(io_msg_buf); } /* END_CASE */ /* Skip auth data, provide full text */ /* BEGIN_CASE */ -void mbedtls_ccm_skip_ad( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * result, data_t * tag ) +void mbedtls_ccm_skip_ad(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *result, data_t *tag) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; /* Sanity checks on the test data */ - TEST_EQUAL( msg->len, result->len ); + TEST_EQUAL(msg->len, result->len); - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, 0, msg->len, tag->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, 0, msg->len, tag->len)); - ASSERT_ALLOC( output, result->len ); + ASSERT_ALLOC(output, result->len); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_ccm_update( &ctx, msg->x, msg->len, output, result->len, &olen ) ); - TEST_EQUAL( result->len, olen ); - ASSERT_COMPARE( output, olen, result->x, result->len ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_ccm_update(&ctx, msg->x, msg->len, output, result->len, &olen)); + TEST_EQUAL(result->len, olen); + ASSERT_COMPARE(output, olen, result->x, result->len); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_ccm_finish( &ctx, output, tag->len ) ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_ccm_finish(&ctx, output, tag->len)); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); + mbedtls_free(output); output = NULL; exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide auth data, skip full text */ /* BEGIN_CASE */ -void mbedtls_ccm_skip_update( int cipher_id, int mode, - data_t * key, data_t * iv, data_t* add, - data_t * tag ) +void mbedtls_ccm_skip_update(int cipher_id, int mode, + data_t *key, data_t *iv, data_t *add, + data_t *tag) { mbedtls_ccm_context ctx; uint8_t *output = NULL; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 0, tag->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, 0, tag->len)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_ccm_finish( &ctx, output, tag->len ) ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_ccm_finish(&ctx, output, tag->len)); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); + mbedtls_free(output); output = NULL; exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide too much auth data */ /* BEGIN_CASE */ -void mbedtls_ccm_overflow_ad( int cipher_id, int mode, - data_t * key, data_t * iv, - data_t * add ) +void mbedtls_ccm_overflow_ad(int cipher_id, int mode, + data_t *key, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for msg length and tag length. They are not a part of this test // subtract 1 from configured auth data length to provoke an overflow - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len - 1, 16, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len - 1, 16, 16)); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide unexpected auth data */ /* BEGIN_CASE */ -void mbedtls_ccm_unexpected_ad( int cipher_id, int mode, - data_t * key, data_t * iv, - data_t * add ) +void mbedtls_ccm_unexpected_ad(int cipher_id, int mode, + data_t *key, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for msg length and tag length. They are not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, 0, 16, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, 0, 16, 16)); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide unexpected plaintext/ciphertext data */ /* BEGIN_CASE */ -void mbedtls_ccm_unexpected_text( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * add ) +void mbedtls_ccm_unexpected_text(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded value for tag length. It is not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 0, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, 0, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, msg->len ); + ASSERT_ALLOC(output, msg->len); olen = 0xdeadbeef; - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update( &ctx, msg->x, msg->len, output, msg->len, &olen ) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, + mbedtls_ccm_update(&ctx, msg->x, msg->len, output, msg->len, &olen)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide incomplete auth data and finish */ /* BEGIN_CASE */ -void mbedtls_ccm_incomplete_ad( int cipher_id, int mode, - data_t * key, data_t * iv, data_t* add ) +void mbedtls_ccm_incomplete_ad(int cipher_id, int mode, + data_t *key, data_t *iv, data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for msg length and tag length. They are not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 0, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, 0, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len - 1) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len - 1)); - ASSERT_ALLOC( output, 16 ); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish( &ctx, output, 16 ) ); + ASSERT_ALLOC(output, 16); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish(&ctx, output, 16)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide complete auth data on first update_ad. * Provide unexpected auth data on second update_ad */ /* BEGIN_CASE */ -void mbedtls_ccm_full_ad_and_overflow( int cipher_id, int mode, - data_t * key, data_t * iv, - data_t * add ) +void mbedtls_ccm_full_ad_and_overflow(int cipher_id, int mode, + data_t *key, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for msg length and tag length. They are not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 16, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, 16, 16)); // pass full auth data - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); // pass 1 extra byte - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad( &ctx, add->x, 1) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad(&ctx, add->x, 1)); exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide incomplete auth data on first update_ad. * Provide too much auth data on second update_ad */ /* BEGIN_CASE */ -void mbedtls_ccm_incomplete_ad_and_overflow( int cipher_id, int mode, - data_t * key, data_t * iv, - data_t * add ) +void mbedtls_ccm_incomplete_ad_and_overflow(int cipher_id, int mode, + data_t *key, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t add_second_buffer[2]; - add_second_buffer[0] = add->x[ add->len - 1 ]; + add_second_buffer[0] = add->x[add->len - 1]; add_second_buffer[1] = 0xAB; // some magic value - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for msg length and tag length. They are not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, 16, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, 16, 16)); // pass incomplete auth data - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len - 1) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len - 1)); // pass 2 extra bytes (1 missing byte from previous incomplete pass, and 1 unexpected byte) - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad( &ctx, add_second_buffer, 2) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_update_ad(&ctx, add_second_buffer, 2)); exit: - mbedtls_ccm_free( &ctx ); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide too much plaintext/ciphertext */ /* BEGIN_CASE */ -void mbedtls_ccm_overflow_update( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * add ) +void mbedtls_ccm_overflow_update(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded value for tag length. It is a not a part of this test // subtract 1 from configured msg length to provoke an overflow - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, msg->len - 1, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, msg->len - 1, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, msg->len ); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, \ - mbedtls_ccm_update( &ctx, msg->x, msg->len, output, msg->len, &olen ) ); + ASSERT_ALLOC(output, msg->len); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, \ + mbedtls_ccm_update(&ctx, msg->x, msg->len, output, msg->len, &olen)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide incomplete plaintext/ciphertext and finish */ /* BEGIN_CASE */ -void mbedtls_ccm_incomplete_update( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * add ) +void mbedtls_ccm_incomplete_update(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded value for tag length. It is not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, msg->len, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, msg->len, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, msg->len ); + ASSERT_ALLOC(output, msg->len); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_ccm_update( &ctx, msg->x, msg->len - 1, output, msg->len, &olen ) ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_ccm_update(&ctx, msg->x, msg->len - 1, output, msg->len, &olen)); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, 16 ); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish( &ctx, output, 16 ) ); + ASSERT_ALLOC(output, 16); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish(&ctx, output, 16)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide full plaintext/ciphertext of first update * Provide unexpected plaintext/ciphertext on second update */ /* BEGIN_CASE */ -void mbedtls_ccm_full_update_and_overflow( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * add ) +void mbedtls_ccm_full_update_and_overflow(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded value for tag length. It is a not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, msg->len, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, msg->len, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, msg->len ); + ASSERT_ALLOC(output, msg->len); // pass full text - TEST_EQUAL( 0, mbedtls_ccm_update( &ctx, msg->x, msg->len, output, msg->len, &olen ) ); + TEST_EQUAL(0, mbedtls_ccm_update(&ctx, msg->x, msg->len, output, msg->len, &olen)); // pass 1 extra byte - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, \ - mbedtls_ccm_update( &ctx, msg->x, 1, output, 1, &olen ) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, \ + mbedtls_ccm_update(&ctx, msg->x, 1, output, 1, &olen)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Provide incomplete plaintext/ciphertext of first update * Provide too much plaintext/ciphertext on second update */ /* BEGIN_CASE */ -void mbedtls_ccm_incomplete_update_overflow( int cipher_id, int mode, - data_t * key, data_t * msg, data_t * iv, - data_t * add ) +void mbedtls_ccm_incomplete_update_overflow(int cipher_id, int mode, + data_t *key, data_t *msg, data_t *iv, + data_t *add) { mbedtls_ccm_context ctx; uint8_t *output = NULL; size_t olen; uint8_t msg_second_buffer[2]; - msg_second_buffer[0] = msg->x[ msg->len - 1 ]; + msg_second_buffer[0] = msg->x[msg->len - 1]; msg_second_buffer[1] = 0xAB; // some magic value - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded value for tag length. It is a not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, add->len, msg->len, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, add->len, msg->len, 16)); - TEST_EQUAL( 0, mbedtls_ccm_update_ad( &ctx, add->x, add->len) ); + TEST_EQUAL(0, mbedtls_ccm_update_ad(&ctx, add->x, add->len)); - ASSERT_ALLOC( output, msg->len + 1 ); + ASSERT_ALLOC(output, msg->len + 1); // pass incomplete text - TEST_EQUAL( 0, mbedtls_ccm_update( &ctx, msg->x, msg->len - 1, output, msg->len + 1, &olen ) ); + TEST_EQUAL(0, mbedtls_ccm_update(&ctx, msg->x, msg->len - 1, output, msg->len + 1, &olen)); // pass 2 extra bytes (1 missing byte from previous incomplete pass, and 1 unexpected byte) - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, \ - mbedtls_ccm_update( &ctx, msg_second_buffer, 2, output + msg->len - 1, 2, &olen ) ); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, \ + mbedtls_ccm_update(&ctx, msg_second_buffer, 2, output + msg->len - 1, 2, &olen)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ /* Finish without passing any auth data or plaintext/ciphertext input */ /* BEGIN_CASE */ -void mbedtls_ccm_instant_finish( int cipher_id, int mode, - data_t * key, data_t * iv ) +void mbedtls_ccm_instant_finish(int cipher_id, int mode, + data_t *key, data_t *iv) { mbedtls_ccm_context ctx; uint8_t *output = NULL; - mbedtls_ccm_init( &ctx ); - TEST_EQUAL( mbedtls_ccm_setkey( &ctx, cipher_id, key->x, key->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_ccm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_ccm_init(&ctx); + TEST_EQUAL(mbedtls_ccm_setkey(&ctx, cipher_id, key->x, key->len * 8), 0); + TEST_EQUAL(0, mbedtls_ccm_starts(&ctx, mode, iv->x, iv->len)); // use hardcoded values for add length, msg length and tag length. // They are not a part of this test - TEST_EQUAL( 0, mbedtls_ccm_set_lengths( &ctx, 16, 16, 16 ) ); + TEST_EQUAL(0, mbedtls_ccm_set_lengths(&ctx, 16, 16, 16)); - ASSERT_ALLOC( output, 16 ); - TEST_EQUAL( MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish( &ctx, output, 16 ) ); + ASSERT_ALLOC(output, 16); + TEST_EQUAL(MBEDTLS_ERR_CCM_BAD_INPUT, mbedtls_ccm_finish(&ctx, output, 16)); exit: - mbedtls_free( output ); - mbedtls_ccm_free( &ctx ); + mbedtls_free(output); + mbedtls_ccm_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_chacha20.function b/tests/suites/test_suite_chacha20.function index 9afadb773..1a7e6768e 100644 --- a/tests/suites/test_suite_chacha20.function +++ b/tests/suites/test_suite_chacha20.function @@ -8,43 +8,44 @@ */ /* BEGIN_CASE */ -void chacha20_crypt( data_t *key_str, - data_t *nonce_str, - int counter, - data_t *src_str, - data_t *expected_output_str ) +void chacha20_crypt(data_t *key_str, + data_t *nonce_str, + int counter, + data_t *src_str, + data_t *expected_output_str) { unsigned char output[375]; mbedtls_chacha20_context ctx; - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( src_str->len == expected_output_str->len ); - TEST_ASSERT( key_str->len == 32U ); - TEST_ASSERT( nonce_str->len == 12U ); + TEST_ASSERT(src_str->len == expected_output_str->len); + TEST_ASSERT(key_str->len == 32U); + TEST_ASSERT(nonce_str->len == 12U); /* * Test the integrated API */ - TEST_ASSERT( mbedtls_chacha20_crypt( key_str->x, nonce_str->x, counter, src_str->len, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_chacha20_crypt(key_str->x, nonce_str->x, counter, src_str->len, src_str->x, + output) == 0); - ASSERT_COMPARE( output, expected_output_str->len, - expected_output_str->x, expected_output_str->len ); + ASSERT_COMPARE(output, expected_output_str->len, + expected_output_str->x, expected_output_str->len); /* * Test the streaming API */ - mbedtls_chacha20_init( &ctx ); + mbedtls_chacha20_init(&ctx); - TEST_ASSERT( mbedtls_chacha20_setkey( &ctx, key_str->x ) == 0 ); + TEST_ASSERT(mbedtls_chacha20_setkey(&ctx, key_str->x) == 0); - TEST_ASSERT( mbedtls_chacha20_starts( &ctx, nonce_str->x, counter ) == 0 ); + TEST_ASSERT(mbedtls_chacha20_starts(&ctx, nonce_str->x, counter) == 0); - memset( output, 0x00, sizeof( output ) ); - TEST_ASSERT( mbedtls_chacha20_update( &ctx, src_str->len, src_str->x, output ) == 0 ); + memset(output, 0x00, sizeof(output)); + TEST_ASSERT(mbedtls_chacha20_update(&ctx, src_str->len, src_str->x, output) == 0); - ASSERT_COMPARE( output, expected_output_str->len, - expected_output_str->x, expected_output_str->len ); + ASSERT_COMPARE(output, expected_output_str->len, + expected_output_str->x, expected_output_str->len); /* * Test the streaming API again, piecewise @@ -52,23 +53,23 @@ void chacha20_crypt( data_t *key_str, /* Don't free/init the context nor set the key again, * in order to test that starts() does the right thing. */ - TEST_ASSERT( mbedtls_chacha20_starts( &ctx, nonce_str->x, counter ) == 0 ); + TEST_ASSERT(mbedtls_chacha20_starts(&ctx, nonce_str->x, counter) == 0); - memset( output, 0x00, sizeof( output ) ); - TEST_ASSERT( mbedtls_chacha20_update( &ctx, 1, src_str->x, output ) == 0 ); - TEST_ASSERT( mbedtls_chacha20_update( &ctx, src_str->len - 1, - src_str->x + 1, output + 1 ) == 0 ); + memset(output, 0x00, sizeof(output)); + TEST_ASSERT(mbedtls_chacha20_update(&ctx, 1, src_str->x, output) == 0); + TEST_ASSERT(mbedtls_chacha20_update(&ctx, src_str->len - 1, + src_str->x + 1, output + 1) == 0); - ASSERT_COMPARE( output, expected_output_str->len, - expected_output_str->x, expected_output_str->len ); + ASSERT_COMPARE(output, expected_output_str->len, + expected_output_str->x, expected_output_str->len); - mbedtls_chacha20_free( &ctx ); + mbedtls_chacha20_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void chacha20_self_test() { - TEST_ASSERT( mbedtls_chacha20_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_chacha20_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_chachapoly.function b/tests/suites/test_suite_chachapoly.function index 2e1e7b2dc..4f1a34e04 100644 --- a/tests/suites/test_suite_chachapoly.function +++ b/tests/suites/test_suite_chachapoly.function @@ -8,61 +8,71 @@ */ /* BEGIN_CASE */ -void mbedtls_chachapoly_enc( data_t *key_str, data_t *nonce_str, data_t *aad_str, data_t *input_str, data_t *output_str, data_t *mac_str ) +void mbedtls_chachapoly_enc(data_t *key_str, + data_t *nonce_str, + data_t *aad_str, + data_t *input_str, + data_t *output_str, + data_t *mac_str) { unsigned char output[265]; unsigned char mac[16]; /* size set by the standard */ mbedtls_chachapoly_context ctx; - TEST_ASSERT( key_str->len == 32 ); - TEST_ASSERT( nonce_str->len == 12 ); - TEST_ASSERT( mac_str->len == 16 ); + TEST_ASSERT(key_str->len == 32); + TEST_ASSERT(nonce_str->len == 12); + TEST_ASSERT(mac_str->len == 16); - mbedtls_chachapoly_init( &ctx ); + mbedtls_chachapoly_init(&ctx); - TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key_str->x ) == 0 ); + TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key_str->x) == 0); - TEST_ASSERT( mbedtls_chachapoly_encrypt_and_tag( &ctx, - input_str->len, nonce_str->x, - aad_str->x, aad_str->len, - input_str->x, output, mac ) == 0 ); + TEST_ASSERT(mbedtls_chachapoly_encrypt_and_tag(&ctx, + input_str->len, nonce_str->x, + aad_str->x, aad_str->len, + input_str->x, output, mac) == 0); - TEST_ASSERT( memcmp( output_str->x, output, output_str->len ) == 0 ); - TEST_ASSERT( memcmp( mac_str->x, mac, 16U ) == 0 ); + TEST_ASSERT(memcmp(output_str->x, output, output_str->len) == 0); + TEST_ASSERT(memcmp(mac_str->x, mac, 16U) == 0); exit: - mbedtls_chachapoly_free( &ctx ); + mbedtls_chachapoly_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_chachapoly_dec( data_t *key_str, data_t *nonce_str, data_t *aad_str, data_t *input_str, data_t *output_str, data_t *mac_str, int ret_exp ) +void mbedtls_chachapoly_dec(data_t *key_str, + data_t *nonce_str, + data_t *aad_str, + data_t *input_str, + data_t *output_str, + data_t *mac_str, + int ret_exp) { unsigned char output[265]; int ret; mbedtls_chachapoly_context ctx; - TEST_ASSERT( key_str->len == 32 ); - TEST_ASSERT( nonce_str->len == 12 ); - TEST_ASSERT( mac_str->len == 16 ); + TEST_ASSERT(key_str->len == 32); + TEST_ASSERT(nonce_str->len == 12); + TEST_ASSERT(mac_str->len == 16); - mbedtls_chachapoly_init( &ctx ); + mbedtls_chachapoly_init(&ctx); - TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key_str->x ) == 0 ); + TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key_str->x) == 0); - ret = mbedtls_chachapoly_auth_decrypt( &ctx, - input_str->len, nonce_str->x, - aad_str->x, aad_str->len, - mac_str->x, input_str->x, output ); + ret = mbedtls_chachapoly_auth_decrypt(&ctx, + input_str->len, nonce_str->x, + aad_str->x, aad_str->len, + mac_str->x, input_str->x, output); - TEST_ASSERT( ret == ret_exp ); - if( ret_exp == 0 ) - { - TEST_ASSERT( memcmp( output_str->x, output, output_str->len ) == 0 ); + TEST_ASSERT(ret == ret_exp); + if (ret_exp == 0) { + TEST_ASSERT(memcmp(output_str->x, output, output_str->len) == 0); } exit: - mbedtls_chachapoly_free( &ctx ); + mbedtls_chachapoly_free(&ctx); } /* END_CASE */ @@ -75,80 +85,80 @@ void chachapoly_state() unsigned char input[1]; unsigned char output[1]; unsigned char mac[16]; - size_t input_len = sizeof( input ); - size_t aad_len = sizeof( aad ); + size_t input_len = sizeof(input); + size_t aad_len = sizeof(aad); mbedtls_chachapoly_context ctx; - memset( key, 0x00, sizeof( key ) ); - memset( nonce, 0x00, sizeof( nonce ) ); - memset( aad, 0x00, sizeof( aad ) ); - memset( input, 0x00, sizeof( input ) ); - memset( output, 0x00, sizeof( output ) ); - memset( mac, 0x00, sizeof( mac ) ); + memset(key, 0x00, sizeof(key)); + memset(nonce, 0x00, sizeof(nonce)); + memset(aad, 0x00, sizeof(aad)); + memset(input, 0x00, sizeof(input)); + memset(output, 0x00, sizeof(output)); + memset(mac, 0x00, sizeof(mac)); /* Initial state: finish, update, update_aad forbidden */ - mbedtls_chachapoly_init( &ctx ); + mbedtls_chachapoly_init(&ctx); - TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); - TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); + TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); /* Still initial state: finish, update, update_aad forbidden */ - TEST_ASSERT( mbedtls_chachapoly_setkey( &ctx, key ) - == 0 ); + TEST_ASSERT(mbedtls_chachapoly_setkey(&ctx, key) + == 0); - TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); - TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); + TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); /* Starts -> finish OK */ - TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac ) - == 0 ); + TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT) + == 0); + TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac) + == 0); /* After finish: update, update_aad forbidden */ - TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); /* Starts -> update* OK */ - TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_update( &ctx, input_len, input, output ) - == 0 ); + TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT) + == 0); + TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output) + == 0); + TEST_ASSERT(mbedtls_chachapoly_update(&ctx, input_len, input, output) + == 0); /* After update: update_aad forbidden */ - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE ); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == MBEDTLS_ERR_CHACHAPOLY_BAD_STATE); /* Starts -> update_aad* -> finish OK */ - TEST_ASSERT( mbedtls_chachapoly_starts( &ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_update_aad( &ctx, aad, aad_len ) - == 0 ); - TEST_ASSERT( mbedtls_chachapoly_finish( &ctx, mac ) - == 0 ); + TEST_ASSERT(mbedtls_chachapoly_starts(&ctx, nonce, MBEDTLS_CHACHAPOLY_ENCRYPT) + == 0); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == 0); + TEST_ASSERT(mbedtls_chachapoly_update_aad(&ctx, aad, aad_len) + == 0); + TEST_ASSERT(mbedtls_chachapoly_finish(&ctx, mac) + == 0); exit: - mbedtls_chachapoly_free( &ctx ); + mbedtls_chachapoly_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void chachapoly_selftest() { - TEST_ASSERT( mbedtls_chachapoly_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_chachapoly_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_cipher.function b/tests/suites/test_suite_cipher.function index ff936dfba..f8420458f 100644 --- a/tests/suites/test_suite_cipher.function +++ b/tests/suites/test_suite_cipher.function @@ -12,92 +12,74 @@ /* Check the internal consistency of a cipher info structure, and * check it against mbedtls_cipher_info_from_xxx(). */ -static int check_cipher_info( mbedtls_cipher_type_t type, - const mbedtls_cipher_info_t *info ) +static int check_cipher_info(mbedtls_cipher_type_t type, + const mbedtls_cipher_info_t *info) { size_t key_bitlen, block_size, iv_size; - TEST_ASSERT( info != NULL ); - TEST_EQUAL( type, mbedtls_cipher_info_get_type( info ) ); - TEST_EQUAL( type, info->type ); - TEST_ASSERT( mbedtls_cipher_info_from_type( type ) == info ); + TEST_ASSERT(info != NULL); + TEST_EQUAL(type, mbedtls_cipher_info_get_type(info)); + TEST_EQUAL(type, info->type); + TEST_ASSERT(mbedtls_cipher_info_from_type(type) == info); - TEST_EQUAL( info->mode, mbedtls_cipher_info_get_mode( info ) ); + TEST_EQUAL(info->mode, mbedtls_cipher_info_get_mode(info)); /* Insist that get_name() return the string from the structure and * not a copy. A copy would have an unknown storage duration. */ - TEST_ASSERT( mbedtls_cipher_info_get_name( info ) == info->name ); - TEST_ASSERT( mbedtls_cipher_info_from_string( info->name ) == info ); + TEST_ASSERT(mbedtls_cipher_info_get_name(info) == info->name); + TEST_ASSERT(mbedtls_cipher_info_from_string(info->name) == info); - key_bitlen = mbedtls_cipher_info_get_key_bitlen( info ); - block_size = mbedtls_cipher_info_get_block_size( info ); - iv_size = mbedtls_cipher_info_get_iv_size( info ); - if( info->type == MBEDTLS_CIPHER_NULL ) - { - TEST_ASSERT( key_bitlen == 0 ); - TEST_ASSERT( block_size == 1 ); - TEST_ASSERT( iv_size == 0 ); - } - else if( info->mode == MBEDTLS_MODE_XTS ) - { - TEST_ASSERT( key_bitlen == 256 || - key_bitlen == 384 || - key_bitlen == 512 ); - } - else if( ! strncmp( info->name, "DES-EDE3-", 9 ) ) - { - TEST_ASSERT( key_bitlen == 192 ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_key_bitlen( info ) ); - TEST_ASSERT( block_size == 8 ); - } - else if( ! strncmp( info->name, "DES-EDE-", 8 ) ) - { - TEST_ASSERT( key_bitlen == 128 ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_key_bitlen( info ) ); - TEST_ASSERT( block_size == 8 ); - } - else if( ! strncmp( info->name, "DES-", 4 ) ) - { - TEST_ASSERT( key_bitlen == 64 ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_key_bitlen( info ) ); - TEST_ASSERT( block_size == 8 ); - } - else if( ! strncmp( info->name, "AES", 3 ) ) - { - TEST_ASSERT( key_bitlen == 128 || - key_bitlen == 192 || - key_bitlen == 256 ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_key_bitlen( info ) ); - TEST_ASSERT( block_size == 16 ); - } - else - { - TEST_ASSERT( key_bitlen == 128 || - key_bitlen == 192 || - key_bitlen == 256 ); + key_bitlen = mbedtls_cipher_info_get_key_bitlen(info); + block_size = mbedtls_cipher_info_get_block_size(info); + iv_size = mbedtls_cipher_info_get_iv_size(info); + if (info->type == MBEDTLS_CIPHER_NULL) { + TEST_ASSERT(key_bitlen == 0); + TEST_ASSERT(block_size == 1); + TEST_ASSERT(iv_size == 0); + } else if (info->mode == MBEDTLS_MODE_XTS) { + TEST_ASSERT(key_bitlen == 256 || + key_bitlen == 384 || + key_bitlen == 512); + } else if (!strncmp(info->name, "DES-EDE3-", 9)) { + TEST_ASSERT(key_bitlen == 192); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_key_bitlen(info)); + TEST_ASSERT(block_size == 8); + } else if (!strncmp(info->name, "DES-EDE-", 8)) { + TEST_ASSERT(key_bitlen == 128); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_key_bitlen(info)); + TEST_ASSERT(block_size == 8); + } else if (!strncmp(info->name, "DES-", 4)) { + TEST_ASSERT(key_bitlen == 64); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_key_bitlen(info)); + TEST_ASSERT(block_size == 8); + } else if (!strncmp(info->name, "AES", 3)) { + TEST_ASSERT(key_bitlen == 128 || + key_bitlen == 192 || + key_bitlen == 256); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_key_bitlen(info)); + TEST_ASSERT(block_size == 16); + } else { + TEST_ASSERT(key_bitlen == 128 || + key_bitlen == 192 || + key_bitlen == 256); } - if( strstr( info->name, "-ECB" ) != NULL ) - { - TEST_ASSERT( iv_size == 0 ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_iv_size( info ) ); - } - else if( strstr( info->name, "-CBC" ) != NULL || - strstr( info->name, "-CTR" ) != NULL ) - { - TEST_ASSERT( iv_size == block_size ); - TEST_ASSERT( ! mbedtls_cipher_info_has_variable_iv_size( info ) ); - } - else if( strstr( info->name, "-GCM" ) != NULL ) - { - TEST_ASSERT( iv_size == block_size - 4 ); - TEST_ASSERT( mbedtls_cipher_info_has_variable_iv_size( info ) ); + if (strstr(info->name, "-ECB") != NULL) { + TEST_ASSERT(iv_size == 0); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_iv_size(info)); + } else if (strstr(info->name, "-CBC") != NULL || + strstr(info->name, "-CTR") != NULL) { + TEST_ASSERT(iv_size == block_size); + TEST_ASSERT(!mbedtls_cipher_info_has_variable_iv_size(info)); + } else if (strstr(info->name, "-GCM") != NULL) { + TEST_ASSERT(iv_size == block_size - 4); + TEST_ASSERT(mbedtls_cipher_info_has_variable_iv_size(info)); } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } #if defined(MBEDTLS_CIPHER_AUTH_CRYPT) @@ -110,35 +92,33 @@ exit: * individual ciphers, and it doesn't work with the PSA wrappers. So don't do * it, and instead start with a fresh context. */ -static int cipher_reset_key( mbedtls_cipher_context_t *ctx, int cipher_id, - int use_psa, size_t tag_len, const data_t *key, int direction ) +static int cipher_reset_key(mbedtls_cipher_context_t *ctx, int cipher_id, + int use_psa, size_t tag_len, const data_t *key, int direction) { - mbedtls_cipher_free( ctx ); - mbedtls_cipher_init( ctx ); + mbedtls_cipher_free(ctx); + mbedtls_cipher_init(ctx); #if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; (void) tag_len; #else - if( use_psa == 1 ) - { - TEST_ASSERT( 0 == mbedtls_cipher_setup_psa( ctx, - mbedtls_cipher_info_from_type( cipher_id ), - tag_len ) ); - } - else + if (use_psa == 1) { + TEST_ASSERT(0 == mbedtls_cipher_setup_psa(ctx, + mbedtls_cipher_info_from_type(cipher_id), + tag_len)); + } else #endif /* !MBEDTLS_USE_PSA_CRYPTO || !MBEDTLS_TEST_DEPRECATED */ { - TEST_ASSERT( 0 == mbedtls_cipher_setup( ctx, - mbedtls_cipher_info_from_type( cipher_id ) ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(ctx, + mbedtls_cipher_info_from_type(cipher_id))); } - TEST_ASSERT( 0 == mbedtls_cipher_setkey( ctx, key->x, 8 * key->len, - direction ) ); - return( 1 ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(ctx, key->x, 8 * key->len, + direction)); + return 1; exit: - return( 0 ); + return 0; } /* @@ -146,11 +126,13 @@ exit: * return 1 if it is, * 0 if it isn't. */ -int buffer_is_all_zero( const uint8_t *buf, size_t size ) +int buffer_is_all_zero(const uint8_t *buf, size_t size) { - for( size_t i = 0; i < size; i++ ) - if( buf[i] != 0 ) + for (size_t i = 0; i < size; i++) { + if (buf[i] != 0) { return 0; + } + } return 1; } #endif /* MBEDTLS_CIPHER_AUTH_CRYPT */ @@ -163,23 +145,23 @@ int buffer_is_all_zero( const uint8_t *buf, size_t size ) */ /* BEGIN_CASE */ -void mbedtls_cipher_list( ) +void mbedtls_cipher_list() { const int *cipher_type; - for( cipher_type = mbedtls_cipher_list(); *cipher_type != 0; cipher_type++ ) - { + for (cipher_type = mbedtls_cipher_list(); *cipher_type != 0; cipher_type++) { const mbedtls_cipher_info_t *info = - mbedtls_cipher_info_from_type( *cipher_type ); - mbedtls_test_set_step( *cipher_type ); - if( ! check_cipher_info( *cipher_type, info ) ) + mbedtls_cipher_info_from_type(*cipher_type); + mbedtls_test_set_step(*cipher_type); + if (!check_cipher_info(*cipher_type, info)) { goto exit; + } } } /* END_CASE */ /* BEGIN_CASE */ -void cipher_invalid_param_unconditional( ) +void cipher_invalid_param_unconditional() { mbedtls_cipher_context_t valid_ctx; mbedtls_cipher_context_t invalid_ctx; @@ -189,120 +171,120 @@ void cipher_invalid_param_unconditional( ) int valid_size = sizeof(valid_buffer); int valid_bitlen = valid_size * 8; const mbedtls_cipher_info_t *valid_info = mbedtls_cipher_info_from_type( - *( mbedtls_cipher_list() ) ); + *(mbedtls_cipher_list())); size_t size_t_var; - (void)valid_mode; /* In some configurations this is unused */ + (void) valid_mode; /* In some configurations this is unused */ - mbedtls_cipher_init( &valid_ctx ); - mbedtls_cipher_init( &invalid_ctx ); + mbedtls_cipher_init(&valid_ctx); + mbedtls_cipher_init(&invalid_ctx); - TEST_ASSERT( mbedtls_cipher_setup( &valid_ctx, valid_info ) == 0 ); + TEST_ASSERT(mbedtls_cipher_setup(&valid_ctx, valid_info) == 0); /* mbedtls_cipher_setup() */ - TEST_ASSERT( mbedtls_cipher_setup( &valid_ctx, NULL ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_setup(&valid_ctx, NULL) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); /* mbedtls_cipher_get_block_size() */ - TEST_ASSERT( mbedtls_cipher_get_block_size( &invalid_ctx ) == 0 ); + TEST_ASSERT(mbedtls_cipher_get_block_size(&invalid_ctx) == 0); /* mbedtls_cipher_get_cipher_mode() */ - TEST_ASSERT( mbedtls_cipher_get_cipher_mode( &invalid_ctx ) == - MBEDTLS_MODE_NONE ); + TEST_ASSERT(mbedtls_cipher_get_cipher_mode(&invalid_ctx) == + MBEDTLS_MODE_NONE); /* mbedtls_cipher_get_iv_size() */ - TEST_ASSERT( mbedtls_cipher_get_iv_size( &invalid_ctx ) == 0 ); + TEST_ASSERT(mbedtls_cipher_get_iv_size(&invalid_ctx) == 0); /* mbedtls_cipher_get_type() */ TEST_ASSERT( - mbedtls_cipher_get_type( &invalid_ctx ) == + mbedtls_cipher_get_type(&invalid_ctx) == MBEDTLS_CIPHER_NONE); /* mbedtls_cipher_get_name() */ - TEST_ASSERT( mbedtls_cipher_get_name( &invalid_ctx ) == 0 ); + TEST_ASSERT(mbedtls_cipher_get_name(&invalid_ctx) == 0); /* mbedtls_cipher_get_key_bitlen() */ - TEST_ASSERT( mbedtls_cipher_get_key_bitlen( &invalid_ctx ) == - MBEDTLS_KEY_LENGTH_NONE ); + TEST_ASSERT(mbedtls_cipher_get_key_bitlen(&invalid_ctx) == + MBEDTLS_KEY_LENGTH_NONE); /* mbedtls_cipher_get_operation() */ - TEST_ASSERT( mbedtls_cipher_get_operation( &invalid_ctx ) == - MBEDTLS_OPERATION_NONE ); + TEST_ASSERT(mbedtls_cipher_get_operation(&invalid_ctx) == + MBEDTLS_OPERATION_NONE); /* mbedtls_cipher_setkey() */ TEST_ASSERT( - mbedtls_cipher_setkey( &invalid_ctx, - valid_buffer, - valid_bitlen, - valid_operation ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_setkey(&invalid_ctx, + valid_buffer, + valid_bitlen, + valid_operation) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); /* mbedtls_cipher_set_iv() */ TEST_ASSERT( - mbedtls_cipher_set_iv( &invalid_ctx, - valid_buffer, - valid_size ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_set_iv(&invalid_ctx, + valid_buffer, + valid_size) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); /* mbedtls_cipher_reset() */ - TEST_ASSERT( mbedtls_cipher_reset( &invalid_ctx ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_reset(&invalid_ctx) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) /* mbedtls_cipher_update_ad() */ TEST_ASSERT( - mbedtls_cipher_update_ad( &invalid_ctx, - valid_buffer, - valid_size ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_update_ad(&invalid_ctx, + valid_buffer, + valid_size) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #endif /* defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) */ #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) /* mbedtls_cipher_set_padding_mode() */ - TEST_ASSERT( mbedtls_cipher_set_padding_mode( &invalid_ctx, valid_mode ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_set_padding_mode(&invalid_ctx, valid_mode) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #endif /* mbedtls_cipher_update() */ TEST_ASSERT( - mbedtls_cipher_update( &invalid_ctx, - valid_buffer, - valid_size, - valid_buffer, - &size_t_var ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_update(&invalid_ctx, + valid_buffer, + valid_size, + valid_buffer, + &size_t_var) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); /* mbedtls_cipher_finish() */ TEST_ASSERT( - mbedtls_cipher_finish( &invalid_ctx, - valid_buffer, - &size_t_var ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_finish(&invalid_ctx, + valid_buffer, + &size_t_var) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) /* mbedtls_cipher_write_tag() */ TEST_ASSERT( - mbedtls_cipher_write_tag( &invalid_ctx, - valid_buffer, - valid_size ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_write_tag(&invalid_ctx, + valid_buffer, + valid_size) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); /* mbedtls_cipher_check_tag() */ TEST_ASSERT( - mbedtls_cipher_check_tag( &invalid_ctx, - valid_buffer, - valid_size ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + mbedtls_cipher_check_tag(&invalid_ctx, + valid_buffer, + valid_size) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #endif /* defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) */ exit: - mbedtls_cipher_free( &invalid_ctx ); - mbedtls_cipher_free( &valid_ctx ); + mbedtls_cipher_free(&invalid_ctx); + mbedtls_cipher_free(&valid_ctx); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_invalid_param_conditional( ) +void cipher_invalid_param_conditional() { mbedtls_cipher_context_t valid_ctx; @@ -313,10 +295,10 @@ void cipher_invalid_param_conditional( ) TEST_EQUAL( MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA, - mbedtls_cipher_setkey( &valid_ctx, - valid_buffer, - valid_bitlen, - invalid_operation ) ); + mbedtls_cipher_setkey(&valid_ctx, + valid_buffer, + valid_bitlen, + invalid_operation)); exit: ; @@ -324,57 +306,57 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void cipher_special_behaviours( ) +void cipher_special_behaviours() { const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_context_t ctx; unsigned char input[32]; unsigned char output[32]; -#if defined (MBEDTLS_CIPHER_MODE_CBC) +#if defined(MBEDTLS_CIPHER_MODE_CBC) unsigned char iv[32]; #endif size_t olen = 0; - mbedtls_cipher_init( &ctx ); - memset( input, 0, sizeof( input ) ); - memset( output, 0, sizeof( output ) ); + mbedtls_cipher_init(&ctx); + memset(input, 0, sizeof(input)); + memset(output, 0, sizeof(output)); #if defined(MBEDTLS_CIPHER_MODE_CBC) - memset( iv, 0, sizeof( iv ) ); + memset(iv, 0, sizeof(iv)); /* Check and get info structures */ - cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_CBC ); - TEST_ASSERT( NULL != cipher_info ); + cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_CBC); + TEST_ASSERT(NULL != cipher_info); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, cipher_info)); /* IV too big */ - TEST_ASSERT( mbedtls_cipher_set_iv( &ctx, iv, MBEDTLS_MAX_IV_LENGTH + 1 ) - == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE ); + TEST_ASSERT(mbedtls_cipher_set_iv(&ctx, iv, MBEDTLS_MAX_IV_LENGTH + 1) + == MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE); /* IV too small */ - TEST_ASSERT( mbedtls_cipher_set_iv( &ctx, iv, 0 ) - == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_set_iv(&ctx, iv, 0) + == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - mbedtls_cipher_free( &ctx ); - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_free(&ctx); + mbedtls_cipher_init(&ctx); #endif /* MBEDTLS_CIPHER_MODE_CBC */ - cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_ECB ); - TEST_ASSERT( NULL != cipher_info ); + cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB); + TEST_ASSERT(NULL != cipher_info); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, cipher_info)); /* Update ECB with partial block */ - TEST_ASSERT( mbedtls_cipher_update( &ctx, input, 1, output, &olen ) - == MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED ); + TEST_ASSERT(mbedtls_cipher_update(&ctx, input, 1, output, &olen) + == MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, - int length_val, int pad_mode ) +void enc_dec_buf(int cipher_id, char *cipher_string, int key_len, + int length_val, int pad_mode) { size_t length = length_val, outlen, total_len, i, block_size, iv_len; unsigned char key[64]; @@ -392,30 +374,29 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, /* * Prepare contexts */ - mbedtls_cipher_init( &ctx_dec ); - mbedtls_cipher_init( &ctx_enc ); + mbedtls_cipher_init(&ctx_dec); + mbedtls_cipher_init(&ctx_enc); - memset( key, 0x2a, sizeof( key ) ); + memset(key, 0x2a, sizeof(key)); /* Check and get info structures */ - cipher_info = mbedtls_cipher_info_from_type( cipher_id ); - TEST_ASSERT( NULL != cipher_info ); - TEST_ASSERT( mbedtls_cipher_info_from_string( cipher_string ) == cipher_info ); - TEST_ASSERT( strcmp( mbedtls_cipher_info_get_name( cipher_info ), - cipher_string ) == 0 ); + cipher_info = mbedtls_cipher_info_from_type(cipher_id); + TEST_ASSERT(NULL != cipher_info); + TEST_ASSERT(mbedtls_cipher_info_from_string(cipher_string) == cipher_info); + TEST_ASSERT(strcmp(mbedtls_cipher_info_get_name(cipher_info), + cipher_string) == 0); /* Initialise enc and dec contexts */ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_dec, cipher_info ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_enc, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_dec, cipher_info)); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_enc, cipher_info)); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx_dec, key, key_len, MBEDTLS_DECRYPT ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx_enc, key, key_len, MBEDTLS_ENCRYPT ) ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx_dec, key, key_len, MBEDTLS_DECRYPT)); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx_enc, key, key_len, MBEDTLS_ENCRYPT)); #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) - if( -1 != pad_mode ) - { - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx_dec, pad_mode ) ); - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx_enc, pad_mode ) ); + if (-1 != pad_mode) { + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx_dec, pad_mode)); + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx_enc, pad_mode)); } #else (void) pad_mode; @@ -424,97 +405,97 @@ void enc_dec_buf( int cipher_id, char * cipher_string, int key_len, /* * Do a few encode/decode cycles */ - for( i = 0; i < 3; i++ ) - { - memset( iv , 0x00 + i, sizeof( iv ) ); - memset( ad, 0x10 + i, sizeof( ad ) ); - memset( inbuf, 0x20 + i, sizeof( inbuf ) ); + for (i = 0; i < 3; i++) { + memset(iv, 0x00 + i, sizeof(iv)); + memset(ad, 0x10 + i, sizeof(ad)); + memset(inbuf, 0x20 + i, sizeof(inbuf)); - memset( encbuf, 0, sizeof( encbuf ) ); - memset( decbuf, 0, sizeof( decbuf ) ); - memset( tag, 0, sizeof( tag ) ); + memset(encbuf, 0, sizeof(encbuf)); + memset(decbuf, 0, sizeof(decbuf)); + memset(tag, 0, sizeof(tag)); - if( NULL != strstr( cipher_info->name, "CCM*-NO-TAG") ) - iv_len = 13; /* For CCM, IV length is expected to be between 7 and 13 bytes. - * For CCM*-NO-TAG, IV length must be exactly 13 bytes long. */ - else if( cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) - iv_len = 12; - else - iv_len = sizeof(iv); + if (NULL != strstr(cipher_info->name, "CCM*-NO-TAG")) { + iv_len = 13; /* For CCM, IV length is expected to be between 7 and 13 bytes. + * For CCM*-NO-TAG, IV length must be exactly 13 bytes long. */ + } else if (cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) { + iv_len = 12; + } else { + iv_len = sizeof(iv); + } - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx_dec, iv, iv_len ) ); - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx_enc, iv, iv_len ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx_dec, iv, iv_len)); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx_enc, iv, iv_len)); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_dec ) ); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_enc ) ); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx_dec)); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx_enc)); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? - 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; + int expected = (cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? + 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, ad, sizeof(ad) - i ) ); - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_enc, ad, sizeof(ad) - i ) ); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx_dec, ad, sizeof(ad) - i)); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx_enc, ad, sizeof(ad) - i)); #endif - block_size = mbedtls_cipher_get_block_size( &ctx_enc ); - TEST_ASSERT( block_size != 0 ); + block_size = mbedtls_cipher_get_block_size(&ctx_enc); + TEST_ASSERT(block_size != 0); - /* encode length number of bytes from inbuf */ - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_enc, inbuf, length, encbuf, &outlen ) ); - total_len = outlen; + /* encode length number of bytes from inbuf */ + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx_enc, inbuf, length, encbuf, &outlen)); + total_len = outlen; - TEST_ASSERT( total_len == length || - ( total_len % block_size == 0 && - total_len < length && - total_len + block_size > length ) ); + TEST_ASSERT(total_len == length || + (total_len % block_size == 0 && + total_len < length && + total_len + block_size > length)); - TEST_ASSERT( 0 == mbedtls_cipher_finish( &ctx_enc, encbuf + outlen, &outlen ) ); - total_len += outlen; + TEST_ASSERT(0 == mbedtls_cipher_finish(&ctx_enc, encbuf + outlen, &outlen)); + total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_EQUAL( expected, mbedtls_cipher_write_tag( &ctx_enc, tag, sizeof(tag) ) ); + TEST_EQUAL(expected, mbedtls_cipher_write_tag(&ctx_enc, tag, sizeof(tag))); #endif - TEST_ASSERT( total_len == length || - ( total_len % block_size == 0 && - total_len > length && - total_len <= length + block_size ) ); + TEST_ASSERT(total_len == length || + (total_len % block_size == 0 && + total_len > length && + total_len <= length + block_size)); - /* decode the previously encoded string */ - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_dec, encbuf, total_len, decbuf, &outlen ) ); - total_len = outlen; + /* decode the previously encoded string */ + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx_dec, encbuf, total_len, decbuf, &outlen)); + total_len = outlen; - TEST_ASSERT( total_len == length || - ( total_len % block_size == 0 && - total_len < length && - total_len + block_size >= length ) ); + TEST_ASSERT(total_len == length || + (total_len % block_size == 0 && + total_len < length && + total_len + block_size >= length)); - TEST_ASSERT( 0 == mbedtls_cipher_finish( &ctx_dec, decbuf + outlen, &outlen ) ); - total_len += outlen; + TEST_ASSERT(0 == mbedtls_cipher_finish(&ctx_dec, decbuf + outlen, &outlen)); + total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - TEST_EQUAL( expected, mbedtls_cipher_check_tag( &ctx_dec, tag, sizeof(tag) ) ); + TEST_EQUAL(expected, mbedtls_cipher_check_tag(&ctx_dec, tag, sizeof(tag))); #endif - /* check result */ - TEST_ASSERT( total_len == length ); - TEST_ASSERT( 0 == memcmp(inbuf, decbuf, length) ); + /* check result */ + TEST_ASSERT(total_len == length); + TEST_ASSERT(0 == memcmp(inbuf, decbuf, length)); } /* * Done */ exit: - mbedtls_cipher_free( &ctx_dec ); - mbedtls_cipher_free( &ctx_enc ); + mbedtls_cipher_free(&ctx_dec); + mbedtls_cipher_free(&ctx_enc); } /* END_CASE */ /* BEGIN_CASE */ -void enc_fail( int cipher_id, int pad_mode, int key_len, int length_val, - int ret ) +void enc_fail(int cipher_id, int pad_mode, int key_len, int length_val, + int ret) { size_t length = length_val; unsigned char key[32]; @@ -528,50 +509,50 @@ void enc_fail( int cipher_id, int pad_mode, int key_len, int length_val, size_t outlen = 0; - memset( key, 0, 32 ); - memset( iv , 0, 16 ); + memset(key, 0, 32); + memset(iv, 0, 16); - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - memset( inbuf, 5, 64 ); - memset( encbuf, 0, 64 ); + memset(inbuf, 5, 64); + memset(encbuf, 0, 64); /* Check and get info structures */ - cipher_info = mbedtls_cipher_info_from_type( cipher_id ); - TEST_ASSERT( NULL != cipher_info ); + cipher_info = mbedtls_cipher_info_from_type(cipher_id); + TEST_ASSERT(NULL != cipher_info); /* Initialise context */ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, cipher_info ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx, key, key_len, MBEDTLS_ENCRYPT ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, cipher_info)); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx, key, key_len, MBEDTLS_ENCRYPT)); #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx, pad_mode ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx, pad_mode)); #else (void) pad_mode; #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx, iv, 16 ) ); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx, iv, 16)); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx)); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + int expected = (cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, NULL, 0 ) ); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx, NULL, 0)); #endif /* encode length number of bytes from inbuf */ - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx, inbuf, length, encbuf, &outlen ) ); - TEST_ASSERT( ret == mbedtls_cipher_finish( &ctx, encbuf + outlen, &outlen ) ); + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx, inbuf, length, encbuf, &outlen)); + TEST_ASSERT(ret == mbedtls_cipher_finish(&ctx, encbuf + outlen, &outlen)); /* done */ exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void dec_empty_buf( int cipher, - int expected_update_ret, - int expected_finish_ret ) +void dec_empty_buf(int cipher, + int expected_update_ret, + int expected_finish_ret) { unsigned char key[32]; @@ -586,53 +567,53 @@ void dec_empty_buf( int cipher, size_t outlen = 0; - memset( key, 0, 32 ); + memset(key, 0, 32); - mbedtls_cipher_init( &ctx_dec ); + mbedtls_cipher_init(&ctx_dec); - memset( encbuf, 0, 64 ); - memset( decbuf, 0, 64 ); + memset(encbuf, 0, 64); + memset(decbuf, 0, 64); /* Initialise context */ - cipher_info = mbedtls_cipher_info_from_type( cipher ); - TEST_ASSERT( NULL != cipher_info); + cipher_info = mbedtls_cipher_info_from_type(cipher); + TEST_ASSERT(NULL != cipher_info); - if( cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) + if (cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) { iv_len = 12; + } - ASSERT_ALLOC( iv, iv_len ); - memset( iv , 0, iv_len ); + ASSERT_ALLOC(iv, iv_len); + memset(iv, 0, iv_len); - TEST_ASSERT( sizeof(key) * 8 >= cipher_info->key_bitlen ); + TEST_ASSERT(sizeof(key) * 8 >= cipher_info->key_bitlen); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_dec, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_dec, cipher_info)); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx_dec, - key, cipher_info->key_bitlen, - MBEDTLS_DECRYPT ) ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx_dec, + key, cipher_info->key_bitlen, + MBEDTLS_DECRYPT)); - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx_dec, iv, iv_len ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx_dec, iv, iv_len)); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_dec ) ); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx_dec)); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + int expected = (cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx_dec, NULL, 0)); #endif /* decode 0-byte string */ - TEST_ASSERT( expected_update_ret == - mbedtls_cipher_update( &ctx_dec, encbuf, 0, decbuf, &outlen ) ); - TEST_ASSERT( 0 == outlen ); + TEST_ASSERT(expected_update_ret == + mbedtls_cipher_update(&ctx_dec, encbuf, 0, decbuf, &outlen)); + TEST_ASSERT(0 == outlen); - if ( expected_finish_ret == 0 && - ( cipher_info->mode == MBEDTLS_MODE_CBC || - cipher_info->mode == MBEDTLS_MODE_ECB ) ) - { + if (expected_finish_ret == 0 && + (cipher_info->mode == MBEDTLS_MODE_CBC || + cipher_info->mode == MBEDTLS_MODE_ECB)) { /* Non-CBC and non-ECB ciphers are OK with decrypting empty buffers and * return success, not MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED, when * decrypting an empty buffer. @@ -641,21 +622,21 @@ void dec_empty_buf( int cipher, expected_finish_ret = MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED; } - TEST_ASSERT( expected_finish_ret == mbedtls_cipher_finish( - &ctx_dec, decbuf + outlen, &outlen ) ); - TEST_ASSERT( 0 == outlen ); + TEST_ASSERT(expected_finish_ret == mbedtls_cipher_finish( + &ctx_dec, decbuf + outlen, &outlen)); + TEST_ASSERT(0 == outlen); exit: - mbedtls_free( iv ); - mbedtls_cipher_free( &ctx_dec ); + mbedtls_free(iv); + mbedtls_cipher_free(&ctx_dec); } /* END_CASE */ /* BEGIN_CASE */ -void enc_dec_buf_multipart( int cipher_id, int key_len, int first_length_val, - int second_length_val, int pad_mode, - int first_encrypt_output_len, int second_encrypt_output_len, - int first_decrypt_output_len, int second_decrypt_output_len ) +void enc_dec_buf_multipart(int cipher_id, int key_len, int first_length_val, + int second_length_val, int pad_mode, + int first_encrypt_output_len, int second_encrypt_output_len, + int first_decrypt_output_len, int second_decrypt_output_len) { size_t first_length = first_length_val; size_t second_length = second_length_val; @@ -676,122 +657,128 @@ void enc_dec_buf_multipart( int cipher_id, int key_len, int first_length_val, size_t outlen = 0; size_t totaloutlen = 0; - memset( key, 0, 32 ); - memset( iv , 0, 16 ); + memset(key, 0, 32); + memset(iv, 0, 16); - mbedtls_cipher_init( &ctx_dec ); - mbedtls_cipher_init( &ctx_enc ); + mbedtls_cipher_init(&ctx_dec); + mbedtls_cipher_init(&ctx_enc); - memset( inbuf, 5, 64 ); - memset( encbuf, 0, 64 ); - memset( decbuf, 0, 64 ); + memset(inbuf, 5, 64); + memset(encbuf, 0, 64); + memset(decbuf, 0, 64); /* Initialise enc and dec contexts */ - cipher_info = mbedtls_cipher_info_from_type( cipher_id ); - TEST_ASSERT( NULL != cipher_info); + cipher_info = mbedtls_cipher_info_from_type(cipher_id); + TEST_ASSERT(NULL != cipher_info); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_dec, cipher_info ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_enc, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_dec, cipher_info)); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_enc, cipher_info)); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx_dec, key, key_len, MBEDTLS_DECRYPT ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx_enc, key, key_len, MBEDTLS_ENCRYPT ) ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx_dec, key, key_len, MBEDTLS_DECRYPT)); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx_enc, key, key_len, MBEDTLS_ENCRYPT)); #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) - if( -1 != pad_mode ) - { - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx_dec, pad_mode ) ); - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx_enc, pad_mode ) ); + if (-1 != pad_mode) { + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx_dec, pad_mode)); + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx_enc, pad_mode)); } #else (void) pad_mode; #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ - if( NULL != strstr( cipher_info->name, "CCM*-NO-TAG") ) + if (NULL != strstr(cipher_info->name, "CCM*-NO-TAG")) { iv_len = 13; /* For CCM, IV length is expected to be between 7 and 13 bytes. * For CCM*-NO-TAG, IV length must be exactly 13 bytes long. */ - else if( cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) + } else if (cipher_info->type == MBEDTLS_CIPHER_CHACHA20 || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) { iv_len = 12; - else + } else { iv_len = sizeof(iv); + } - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx_dec, iv, iv_len ) ); - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx_enc, iv, iv_len ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx_dec, iv, iv_len)); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx_enc, iv, iv_len)); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_dec ) ); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx_enc ) ); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx_dec)); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx_enc)); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int expected = ( cipher_info->mode == MBEDTLS_MODE_GCM || - cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + int expected = (cipher_info->mode == MBEDTLS_MODE_GCM || + cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_dec, NULL, 0 ) ); - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx_enc, NULL, 0 ) ); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx_dec, NULL, 0)); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx_enc, NULL, 0)); #endif - block_size = mbedtls_cipher_get_block_size( &ctx_enc ); - TEST_ASSERT( block_size != 0 ); + block_size = mbedtls_cipher_get_block_size(&ctx_enc); + TEST_ASSERT(block_size != 0); /* encode length number of bytes from inbuf */ - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_enc, inbuf, first_length, encbuf, &outlen ) ); - TEST_ASSERT( (size_t)first_encrypt_output_len == outlen ); + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx_enc, inbuf, first_length, encbuf, &outlen)); + TEST_ASSERT((size_t) first_encrypt_output_len == outlen); totaloutlen = outlen; - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_enc, inbuf + first_length, second_length, encbuf + totaloutlen, &outlen ) ); - TEST_ASSERT( (size_t)second_encrypt_output_len == outlen ); + TEST_ASSERT(0 == + mbedtls_cipher_update(&ctx_enc, inbuf + first_length, second_length, + encbuf + totaloutlen, + &outlen)); + TEST_ASSERT((size_t) second_encrypt_output_len == outlen); totaloutlen += outlen; - TEST_ASSERT( totaloutlen == length || - ( totaloutlen % block_size == 0 && - totaloutlen < length && - totaloutlen + block_size > length ) ); + TEST_ASSERT(totaloutlen == length || + (totaloutlen % block_size == 0 && + totaloutlen < length && + totaloutlen + block_size > length)); - TEST_ASSERT( 0 == mbedtls_cipher_finish( &ctx_enc, encbuf + totaloutlen, &outlen ) ); + TEST_ASSERT(0 == mbedtls_cipher_finish(&ctx_enc, encbuf + totaloutlen, &outlen)); totaloutlen += outlen; - TEST_ASSERT( totaloutlen == length || - ( totaloutlen % block_size == 0 && - totaloutlen > length && - totaloutlen <= length + block_size ) ); + TEST_ASSERT(totaloutlen == length || + (totaloutlen % block_size == 0 && + totaloutlen > length && + totaloutlen <= length + block_size)); /* decode the previously encoded string */ second_length = totaloutlen - first_length; - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_dec, encbuf, first_length, decbuf, &outlen ) ); - TEST_ASSERT( (size_t)first_decrypt_output_len == outlen ); + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx_dec, encbuf, first_length, decbuf, &outlen)); + TEST_ASSERT((size_t) first_decrypt_output_len == outlen); totaloutlen = outlen; - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx_dec, encbuf + first_length, second_length, decbuf + totaloutlen, &outlen ) ); - TEST_ASSERT( (size_t)second_decrypt_output_len == outlen ); + TEST_ASSERT(0 == + mbedtls_cipher_update(&ctx_dec, encbuf + first_length, second_length, + decbuf + totaloutlen, + &outlen)); + TEST_ASSERT((size_t) second_decrypt_output_len == outlen); totaloutlen += outlen; - TEST_ASSERT( totaloutlen == length || - ( totaloutlen % block_size == 0 && - totaloutlen < length && - totaloutlen + block_size >= length ) ); + TEST_ASSERT(totaloutlen == length || + (totaloutlen % block_size == 0 && + totaloutlen < length && + totaloutlen + block_size >= length)); - TEST_ASSERT( 0 == mbedtls_cipher_finish( &ctx_dec, decbuf + totaloutlen, &outlen ) ); + TEST_ASSERT(0 == mbedtls_cipher_finish(&ctx_dec, decbuf + totaloutlen, &outlen)); totaloutlen += outlen; - TEST_ASSERT( totaloutlen == length ); + TEST_ASSERT(totaloutlen == length); - TEST_ASSERT( 0 == memcmp(inbuf, decbuf, length) ); + TEST_ASSERT(0 == memcmp(inbuf, decbuf, length)); exit: - mbedtls_cipher_free( &ctx_dec ); - mbedtls_cipher_free( &ctx_enc ); + mbedtls_cipher_free(&ctx_dec); + mbedtls_cipher_free(&ctx_enc); } /* END_CASE */ /* BEGIN_CASE */ -void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, - data_t * iv, data_t * cipher, - data_t * clear, data_t * ad, data_t * tag, - int finish_result, int tag_result ) +void decrypt_test_vec(int cipher_id, int pad_mode, data_t *key, + data_t *iv, data_t *cipher, + data_t *clear, data_t *ad, data_t *tag, + int finish_result, int tag_result) { unsigned char output[265]; mbedtls_cipher_context_t ctx; size_t outlen, total_len; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); #if !defined(MBEDTLS_GCM_C) && !defined(MBEDTLS_CHACHAPOLY_C) ((void) ad); @@ -799,56 +786,56 @@ void decrypt_test_vec( int cipher_id, int pad_mode, data_t * key, #endif /* Prepare context */ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, - mbedtls_cipher_info_from_type( cipher_id ) ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx, key->x, 8 * key->len, MBEDTLS_DECRYPT ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, + mbedtls_cipher_info_from_type(cipher_id))); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx, key->x, 8 * key->len, MBEDTLS_DECRYPT)); #if defined(MBEDTLS_CIPHER_MODE_WITH_PADDING) - if( pad_mode != -1 ) - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx, pad_mode ) ); + if (pad_mode != -1) { + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx, pad_mode)); + } #else (void) pad_mode; #endif /* MBEDTLS_CIPHER_MODE_WITH_PADDING */ - TEST_ASSERT( 0 == mbedtls_cipher_set_iv( &ctx, iv->x, iv->len ) ); - TEST_ASSERT( 0 == mbedtls_cipher_reset( &ctx ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_iv(&ctx, iv->x, iv->len)); + TEST_ASSERT(0 == mbedtls_cipher_reset(&ctx)); #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || - ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + int expected = (ctx.cipher_info->mode == MBEDTLS_MODE_GCM || + ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? 0 : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( expected, mbedtls_cipher_update_ad( &ctx, ad->x, ad->len ) ); + TEST_EQUAL(expected, mbedtls_cipher_update_ad(&ctx, ad->x, ad->len)); #endif /* decode buffer and check tag->x */ total_len = 0; - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx, cipher->x, cipher->len, output, &outlen ) ); + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx, cipher->x, cipher->len, output, &outlen)); total_len += outlen; - TEST_ASSERT( finish_result == mbedtls_cipher_finish( &ctx, output + outlen, - &outlen ) ); + TEST_ASSERT(finish_result == mbedtls_cipher_finish(&ctx, output + outlen, + &outlen)); total_len += outlen; #if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CHACHAPOLY_C) - int tag_expected = ( ctx.cipher_info->mode == MBEDTLS_MODE_GCM || - ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305 ) ? + int tag_expected = (ctx.cipher_info->mode == MBEDTLS_MODE_GCM || + ctx.cipher_info->type == MBEDTLS_CIPHER_CHACHA20_POLY1305) ? tag_result : MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE; - TEST_EQUAL( tag_expected, mbedtls_cipher_check_tag( &ctx, tag->x, tag->len ) ); + TEST_EQUAL(tag_expected, mbedtls_cipher_check_tag(&ctx, tag->x, tag->len)); #endif /* check plaintext only if everything went fine */ - if( 0 == finish_result && 0 == tag_result ) - { - TEST_ASSERT( total_len == clear->len ); - TEST_ASSERT( 0 == memcmp( output, clear->x, clear->len ) ); + if (0 == finish_result && 0 == tag_result) { + TEST_ASSERT(total_len == clear->len); + TEST_ASSERT(0 == memcmp(output, clear->x, clear->len)); } exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_AUTH_CRYPT */ -void auth_crypt_tv( int cipher_id, data_t * key, data_t * iv, - data_t * ad, data_t * cipher, data_t * tag, - char * result, data_t * clear, int use_psa ) +void auth_crypt_tv(int cipher_id, data_t *key, data_t *iv, + data_t *ad, data_t *cipher, data_t *tag, + char *result, data_t *clear, int use_psa) { /* * Take an AEAD ciphertext + tag and perform a pair @@ -873,19 +860,23 @@ void auth_crypt_tv( int cipher_id, data_t * key, data_t * iv, /* Null pointers are documented as valid for inputs of length 0. * The test framework passes non-null pointers, so set them to NULL. * key, cipher and tag can't be empty. */ - if( iv->len == 0 ) + if (iv->len == 0) { iv->x = NULL; - if( ad->len == 0 ) + } + if (ad->len == 0) { ad->x = NULL; - if( clear->len == 0 ) + } + if (clear->len == 0) { clear->x = NULL; + } - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); /* Initialize PSA Crypto */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( use_psa == 1 ) - PSA_ASSERT( psa_crypto_init( ) ); + if (use_psa == 1) { + PSA_ASSERT(psa_crypto_init()); + } #else (void) use_psa; #endif @@ -904,277 +895,276 @@ void auth_crypt_tv( int cipher_id, data_t * key, data_t * iv, /* * Prepare context for decryption */ - if( ! cipher_reset_key( &ctx, cipher_id, use_psa, tag->len, key, - MBEDTLS_DECRYPT ) ) + if (!cipher_reset_key(&ctx, cipher_id, use_psa, tag->len, key, + MBEDTLS_DECRYPT)) { goto exit; + } /* * prepare buffer for decryption * (we need the tag appended to the ciphertext) */ cipher_plus_tag_len = cipher->len + tag->len; - ASSERT_ALLOC( cipher_plus_tag, cipher_plus_tag_len ); - memcpy( cipher_plus_tag, cipher->x, cipher->len ); - memcpy( cipher_plus_tag + cipher->len, tag->x, tag->len ); + ASSERT_ALLOC(cipher_plus_tag, cipher_plus_tag_len); + memcpy(cipher_plus_tag, cipher->x, cipher->len); + memcpy(cipher_plus_tag + cipher->len, tag->x, tag->len); /* * Compute length of output buffer according to the documentation */ - if( using_nist_kw ) + if (using_nist_kw) { decrypt_buf_len = cipher_plus_tag_len - 8; - else + } else { decrypt_buf_len = cipher_plus_tag_len - tag->len; + } /* * Try decrypting to a buffer that's 1B too small */ - if( decrypt_buf_len != 0 ) - { - ASSERT_ALLOC( decrypt_buf, decrypt_buf_len - 1 ); + if (decrypt_buf_len != 0) { + ASSERT_ALLOC(decrypt_buf, decrypt_buf_len - 1); outlen = 0; - ret = mbedtls_cipher_auth_decrypt_ext( &ctx, iv->x, iv->len, - ad->x, ad->len, cipher_plus_tag, cipher_plus_tag_len, - decrypt_buf, decrypt_buf_len - 1, &outlen, tag->len ); - TEST_ASSERT( ret == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + ret = mbedtls_cipher_auth_decrypt_ext(&ctx, iv->x, iv->len, + ad->x, ad->len, cipher_plus_tag, cipher_plus_tag_len, + decrypt_buf, decrypt_buf_len - 1, &outlen, tag->len); + TEST_ASSERT(ret == MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - mbedtls_free( decrypt_buf ); + mbedtls_free(decrypt_buf); decrypt_buf = NULL; } /* * Authenticate and decrypt, and check result */ - ASSERT_ALLOC( decrypt_buf, decrypt_buf_len ); + ASSERT_ALLOC(decrypt_buf, decrypt_buf_len); outlen = 0; - ret = mbedtls_cipher_auth_decrypt_ext( &ctx, iv->x, iv->len, - ad->x, ad->len, cipher_plus_tag, cipher_plus_tag_len, - decrypt_buf, decrypt_buf_len, &outlen, tag->len ); + ret = mbedtls_cipher_auth_decrypt_ext(&ctx, iv->x, iv->len, + ad->x, ad->len, cipher_plus_tag, cipher_plus_tag_len, + decrypt_buf, decrypt_buf_len, &outlen, tag->len); - if( strcmp( result, "FAIL" ) == 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED ); - TEST_ASSERT( buffer_is_all_zero( decrypt_buf, decrypt_buf_len ) ); - } - else - { - TEST_ASSERT( ret == 0 ); - ASSERT_COMPARE( decrypt_buf, outlen, clear->x, clear->len ); + if (strcmp(result, "FAIL") == 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED); + TEST_ASSERT(buffer_is_all_zero(decrypt_buf, decrypt_buf_len)); + } else { + TEST_ASSERT(ret == 0); + ASSERT_COMPARE(decrypt_buf, outlen, clear->x, clear->len); } - mbedtls_free( decrypt_buf ); + mbedtls_free(decrypt_buf); decrypt_buf = NULL; /* * Encrypt back if test data was authentic */ - if( strcmp( result, "FAIL" ) != 0 ) - { + if (strcmp(result, "FAIL") != 0) { /* prepare context for encryption */ - if( ! cipher_reset_key( &ctx, cipher_id, use_psa, tag->len, key, - MBEDTLS_ENCRYPT ) ) + if (!cipher_reset_key(&ctx, cipher_id, use_psa, tag->len, key, + MBEDTLS_ENCRYPT)) { goto exit; + } /* * Compute size of output buffer according to documentation */ - if( using_nist_kw ) - { + if (using_nist_kw) { encrypt_buf_len = clear->len + 8; - if( using_nist_kw_padding && encrypt_buf_len % 8 != 0 ) + if (using_nist_kw_padding && encrypt_buf_len % 8 != 0) { encrypt_buf_len += 8 - encrypt_buf_len % 8; - } - else - { + } + } else { encrypt_buf_len = clear->len + tag->len; } /* * Try encrypting with an output buffer that's 1B too small */ - ASSERT_ALLOC( encrypt_buf, encrypt_buf_len - 1 ); + ASSERT_ALLOC(encrypt_buf, encrypt_buf_len - 1); outlen = 0; - ret = mbedtls_cipher_auth_encrypt_ext( &ctx, iv->x, iv->len, - ad->x, ad->len, clear->x, clear->len, - encrypt_buf, encrypt_buf_len - 1, &outlen, tag->len ); - TEST_ASSERT( ret != 0 ); + ret = mbedtls_cipher_auth_encrypt_ext(&ctx, iv->x, iv->len, + ad->x, ad->len, clear->x, clear->len, + encrypt_buf, encrypt_buf_len - 1, &outlen, tag->len); + TEST_ASSERT(ret != 0); - mbedtls_free( encrypt_buf ); + mbedtls_free(encrypt_buf); encrypt_buf = NULL; /* * Encrypt and check the result */ - ASSERT_ALLOC( encrypt_buf, encrypt_buf_len ); + ASSERT_ALLOC(encrypt_buf, encrypt_buf_len); outlen = 0; - ret = mbedtls_cipher_auth_encrypt_ext( &ctx, iv->x, iv->len, - ad->x, ad->len, clear->x, clear->len, - encrypt_buf, encrypt_buf_len, &outlen, tag->len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_cipher_auth_encrypt_ext(&ctx, iv->x, iv->len, + ad->x, ad->len, clear->x, clear->len, + encrypt_buf, encrypt_buf_len, &outlen, tag->len); + TEST_ASSERT(ret == 0); - TEST_ASSERT( outlen == cipher->len + tag->len ); - TEST_ASSERT( memcmp( encrypt_buf, cipher->x, cipher->len ) == 0 ); - TEST_ASSERT( memcmp( encrypt_buf + cipher->len, - tag->x, tag->len ) == 0 ); + TEST_ASSERT(outlen == cipher->len + tag->len); + TEST_ASSERT(memcmp(encrypt_buf, cipher->x, cipher->len) == 0); + TEST_ASSERT(memcmp(encrypt_buf + cipher->len, + tag->x, tag->len) == 0); - mbedtls_free( encrypt_buf ); + mbedtls_free(encrypt_buf); encrypt_buf = NULL; } exit: - mbedtls_cipher_free( &ctx ); - mbedtls_free( decrypt_buf ); - mbedtls_free( encrypt_buf ); - mbedtls_free( cipher_plus_tag ); + mbedtls_cipher_free(&ctx); + mbedtls_free(decrypt_buf); + mbedtls_free(encrypt_buf); + mbedtls_free(cipher_plus_tag); #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( use_psa == 1 ) - PSA_DONE( ); + if (use_psa == 1) { + PSA_DONE(); + } #endif /* MBEDTLS_USE_PSA_CRYPTO */ } /* END_CASE */ /* BEGIN_CASE */ -void test_vec_ecb( int cipher_id, int operation, data_t * key, - data_t * input, data_t * result, int finish_result - ) +void test_vec_ecb(int cipher_id, int operation, data_t *key, + data_t *input, data_t *result, int finish_result + ) { mbedtls_cipher_context_t ctx; unsigned char output[32]; size_t outlen; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); /* Prepare context */ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, - mbedtls_cipher_info_from_type( cipher_id ) ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, + mbedtls_cipher_info_from_type(cipher_id))); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx, key->x, 8 * key->len, operation ) ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx, key->x, 8 * key->len, operation)); - TEST_ASSERT( 0 == mbedtls_cipher_update( &ctx, input->x, - mbedtls_cipher_get_block_size( &ctx ), - output, &outlen ) ); - TEST_ASSERT( outlen == mbedtls_cipher_get_block_size( &ctx ) ); - TEST_ASSERT( finish_result == mbedtls_cipher_finish( &ctx, output + outlen, - &outlen ) ); - TEST_ASSERT( 0 == outlen ); + TEST_ASSERT(0 == mbedtls_cipher_update(&ctx, input->x, + mbedtls_cipher_get_block_size(&ctx), + output, &outlen)); + TEST_ASSERT(outlen == mbedtls_cipher_get_block_size(&ctx)); + TEST_ASSERT(finish_result == mbedtls_cipher_finish(&ctx, output + outlen, + &outlen)); + TEST_ASSERT(0 == outlen); /* check plaintext only if everything went fine */ - if( 0 == finish_result ) - TEST_ASSERT( 0 == memcmp( output, result->x, - mbedtls_cipher_get_block_size( &ctx ) ) ); + if (0 == finish_result) { + TEST_ASSERT(0 == memcmp(output, result->x, + mbedtls_cipher_get_block_size(&ctx))); + } exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_WITH_PADDING */ -void test_vec_crypt( int cipher_id, int operation, data_t *key, - data_t *iv, data_t *input, data_t *result, - int finish_result, int use_psa ) +void test_vec_crypt(int cipher_id, int operation, data_t *key, + data_t *iv, data_t *input, data_t *result, + int finish_result, int use_psa) { mbedtls_cipher_context_t ctx; unsigned char output[32]; size_t outlen; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); /* Prepare context */ #if !defined(MBEDTLS_USE_PSA_CRYPTO) || !defined(MBEDTLS_TEST_DEPRECATED) (void) use_psa; #else - if( use_psa == 1 ) - { - PSA_ASSERT( psa_crypto_init( ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setup_psa( &ctx, - mbedtls_cipher_info_from_type( cipher_id ), 0 ) ); - } - else + if (use_psa == 1) { + PSA_ASSERT(psa_crypto_init()); + TEST_ASSERT(0 == mbedtls_cipher_setup_psa(&ctx, + mbedtls_cipher_info_from_type(cipher_id), 0)); + } else #endif /* !MBEDTLS_USE_PSA_CRYPTO || !MBEDTLS_TEST_DEPRECATED*/ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, - mbedtls_cipher_info_from_type( cipher_id ) ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, + mbedtls_cipher_info_from_type(cipher_id))); - TEST_ASSERT( 0 == mbedtls_cipher_setkey( &ctx, key->x, 8 * key->len, operation ) ); - if( MBEDTLS_MODE_CBC == ctx.cipher_info->mode ) - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx, MBEDTLS_PADDING_NONE ) ); + TEST_ASSERT(0 == mbedtls_cipher_setkey(&ctx, key->x, 8 * key->len, operation)); + if (MBEDTLS_MODE_CBC == ctx.cipher_info->mode) { + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx, MBEDTLS_PADDING_NONE)); + } - TEST_ASSERT( finish_result == mbedtls_cipher_crypt( &ctx, iv->len ? iv->x : NULL, - iv->len, input->x, input->len, - output, &outlen ) ); - TEST_ASSERT( result->len == outlen ); + TEST_ASSERT(finish_result == mbedtls_cipher_crypt(&ctx, iv->len ? iv->x : NULL, + iv->len, input->x, input->len, + output, &outlen)); + TEST_ASSERT(result->len == outlen); /* check plaintext only if everything went fine */ - if( 0 == finish_result ) - TEST_ASSERT( 0 == memcmp( output, result->x, outlen ) ); + if (0 == finish_result) { + TEST_ASSERT(0 == memcmp(output, result->x, outlen)); + } exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); #if defined(MBEDTLS_USE_PSA_CRYPTO) && defined(MBEDTLS_TEST_DEPRECATED) - PSA_DONE( ); + PSA_DONE(); #endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_TEST_DEPRECATED */ } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_WITH_PADDING */ -void set_padding( int cipher_id, int pad_mode, int ret ) +void set_padding(int cipher_id, int pad_mode, int ret) { const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_context_t ctx; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); - cipher_info = mbedtls_cipher_info_from_type( cipher_id ); - TEST_ASSERT( NULL != cipher_info ); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx, cipher_info ) ); + cipher_info = mbedtls_cipher_info_from_type(cipher_id); + TEST_ASSERT(NULL != cipher_info); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx, cipher_info)); - TEST_ASSERT( ret == mbedtls_cipher_set_padding_mode( &ctx, pad_mode ) ); + TEST_ASSERT(ret == mbedtls_cipher_set_padding_mode(&ctx, pad_mode)); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void check_padding( int pad_mode, data_t * input, int ret, int dlen_check - ) +void check_padding(int pad_mode, data_t *input, int ret, int dlen_check + ) { mbedtls_cipher_info_t cipher_info; mbedtls_cipher_context_t ctx; size_t dlen; /* build a fake context just for getting access to get_padding */ - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); cipher_info.mode = MBEDTLS_MODE_CBC; ctx.cipher_info = &cipher_info; - TEST_ASSERT( 0 == mbedtls_cipher_set_padding_mode( &ctx, pad_mode ) ); + TEST_ASSERT(0 == mbedtls_cipher_set_padding_mode(&ctx, pad_mode)); - TEST_ASSERT( ret == ctx.get_padding( input->x, input->len, &dlen ) ); - if( 0 == ret ) - TEST_ASSERT( dlen == (size_t) dlen_check ); + TEST_ASSERT(ret == ctx.get_padding(input->x, input->len, &dlen)); + if (0 == ret) { + TEST_ASSERT(dlen == (size_t) dlen_check); + } } /* END_CASE */ /* BEGIN_CASE */ -void iv_len_validity( int cipher_id, char * cipher_string, - int iv_len_val, int ret ) +void iv_len_validity(int cipher_id, char *cipher_string, + int iv_len_val, int ret) { size_t iv_len = iv_len_val; unsigned char iv[16]; /* Initialise iv buffer */ - memset( iv, 0, sizeof( iv ) ); + memset(iv, 0, sizeof(iv)); const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_context_t ctx_dec; @@ -1183,25 +1173,25 @@ void iv_len_validity( int cipher_id, char * cipher_string, /* * Prepare contexts */ - mbedtls_cipher_init( &ctx_dec ); - mbedtls_cipher_init( &ctx_enc ); + mbedtls_cipher_init(&ctx_dec); + mbedtls_cipher_init(&ctx_enc); /* Check and get info structures */ - cipher_info = mbedtls_cipher_info_from_type( cipher_id ); - TEST_ASSERT( NULL != cipher_info ); - TEST_ASSERT( mbedtls_cipher_info_from_string( cipher_string ) == cipher_info ); - TEST_ASSERT( strcmp( mbedtls_cipher_info_get_name( cipher_info ), - cipher_string ) == 0 ); + cipher_info = mbedtls_cipher_info_from_type(cipher_id); + TEST_ASSERT(NULL != cipher_info); + TEST_ASSERT(mbedtls_cipher_info_from_string(cipher_string) == cipher_info); + TEST_ASSERT(strcmp(mbedtls_cipher_info_get_name(cipher_info), + cipher_string) == 0); /* Initialise enc and dec contexts */ - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_dec, cipher_info ) ); - TEST_ASSERT( 0 == mbedtls_cipher_setup( &ctx_enc, cipher_info ) ); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_dec, cipher_info)); + TEST_ASSERT(0 == mbedtls_cipher_setup(&ctx_enc, cipher_info)); - TEST_ASSERT( ret == mbedtls_cipher_set_iv( &ctx_dec, iv, iv_len ) ); - TEST_ASSERT( ret == mbedtls_cipher_set_iv( &ctx_enc, iv, iv_len ) ); + TEST_ASSERT(ret == mbedtls_cipher_set_iv(&ctx_dec, iv, iv_len)); + TEST_ASSERT(ret == mbedtls_cipher_set_iv(&ctx_enc, iv, iv_len)); exit: - mbedtls_cipher_free( &ctx_dec ); - mbedtls_cipher_free( &ctx_enc ); + mbedtls_cipher_free(&ctx_dec); + mbedtls_cipher_free(&ctx_enc); } /* END_CASE */ diff --git a/tests/suites/test_suite_cmac.function b/tests/suites/test_suite_cmac.function index c3d7da43d..9624e8fea 100644 --- a/tests/suites/test_suite_cmac.function +++ b/tests/suites/test_suite_cmac.function @@ -9,14 +9,14 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void mbedtls_cmac_self_test( ) +void mbedtls_cmac_self_test() { - TEST_ASSERT( mbedtls_cmac_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_cmac_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_cmac_null_args( ) +void mbedtls_cmac_null_args() { mbedtls_cipher_context_t ctx; const mbedtls_cipher_info_t *cipher_info; @@ -24,108 +24,108 @@ void mbedtls_cmac_null_args( ) unsigned char test_data[MBEDTLS_CIPHER_BLKSIZE_MAX]; unsigned char test_output[MBEDTLS_CIPHER_BLKSIZE_MAX]; - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); /* Test NULL cipher info */ - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, test_data, 16 ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, test_data, 16) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - cipher_info = mbedtls_cipher_info_from_type( MBEDTLS_CIPHER_AES_128_ECB ); - TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 ); + cipher_info = mbedtls_cipher_info_from_type(MBEDTLS_CIPHER_AES_128_ECB); + TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0); - TEST_ASSERT( mbedtls_cipher_cmac_starts( NULL, test_key, 128 ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_starts(NULL, test_key, 128) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx, NULL, 128 ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx, NULL, 128) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_update( NULL, test_data, 16 ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_update(NULL, test_data, 16) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, NULL, 16 ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, NULL, 16) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_finish( NULL, test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_finish(NULL, test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, NULL ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, NULL) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac_reset( NULL ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac_reset(NULL) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac( NULL, - test_key, 128, - test_data, 16, - test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac(NULL, + test_key, 128, + test_data, 16, + test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac( cipher_info, - NULL, 128, - test_data, 16, - test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac(cipher_info, + NULL, 128, + test_data, 16, + test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac( cipher_info, - test_key, 128, - NULL, 16, - test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac(cipher_info, + test_key, 128, + NULL, 16, + test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_cipher_cmac( cipher_info, - test_key, 128, - test_data, 16, - NULL ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_cipher_cmac(cipher_info, + test_key, 128, + test_data, 16, + NULL) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #if defined(MBEDTLS_AES_C) - TEST_ASSERT( mbedtls_aes_cmac_prf_128( NULL, 16, - test_data, 16, - test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_aes_cmac_prf_128(NULL, 16, + test_data, 16, + test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_aes_cmac_prf_128( test_key, 16, - NULL, 16, - test_output ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_aes_cmac_prf_128(test_key, 16, + NULL, 16, + test_output) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_aes_cmac_prf_128( test_key, 16, - test_data, 16, - NULL ) == - MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_aes_cmac_prf_128(test_key, 16, + test_data, 16, + NULL) == + MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA); #endif exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_cmac_setkey( int cipher_type, int key_size, int result ) +void mbedtls_cmac_setkey(int cipher_type, int key_size, int result) { const mbedtls_cipher_info_t *cipher_info; unsigned char key[32]; unsigned char buf[16]; unsigned char tmp[16]; - memset( key, 0x2A, sizeof( key ) ); - TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) ); + memset(key, 0x2A, sizeof(key)); + TEST_ASSERT((unsigned) key_size <= 8 * sizeof(key)); - TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) ) - != NULL ); + TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type)) + != NULL); - memset( buf, 0x2A, sizeof( buf ) ); - TEST_ASSERT( ( result == mbedtls_cipher_cmac( cipher_info, key, key_size, - buf, 16, tmp ) ) != 0 ); + memset(buf, 0x2A, sizeof(buf)); + TEST_ASSERT((result == mbedtls_cipher_cmac(cipher_info, key, key_size, + buf, 16, tmp)) != 0); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_cmac_multiple_blocks( int cipher_type, data_t * key, - int keybits, int block_size, - data_t * block1, int block1_len, - data_t * block2, int block2_len, - data_t * block3, int block3_len, - data_t * block4, int block4_len, - data_t * expected_result ) +void mbedtls_cmac_multiple_blocks(int cipher_type, data_t *key, + int keybits, int block_size, + data_t *block1, int block1_len, + data_t *block2, int block2_len, + data_t *block3, int block3_len, + data_t *block4, int block4_len, + data_t *expected_result) { const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_context_t ctx; @@ -133,74 +133,78 @@ void mbedtls_cmac_multiple_blocks( int cipher_type, data_t * key, /* Convert the test parameters to binary data */ - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); /* Validate the test inputs */ - TEST_ASSERT( block1_len <= 100 ); - TEST_ASSERT( block2_len <= 100 ); - TEST_ASSERT( block3_len <= 100 ); - TEST_ASSERT( block4_len <= 100 ); + TEST_ASSERT(block1_len <= 100); + TEST_ASSERT(block2_len <= 100); + TEST_ASSERT(block3_len <= 100); + TEST_ASSERT(block4_len <= 100); /* Set up */ - TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) ) - != NULL ); + TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type)) + != NULL); - TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 ); + TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0); - TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx, - (const unsigned char*)key->x, - keybits ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx, + (const unsigned char *) key->x, + keybits) == 0); /* Multiple partial and complete blocks. A negative length means skip the * update operation */ - if( block1_len >= 0) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block1->x, - block1_len ) == 0); + if (block1_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block1->x, + block1_len) == 0); + } - if( block2_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block2->x, - block2_len ) == 0); + if (block2_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block2->x, + block2_len) == 0); + } - if( block3_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block3->x, - block3_len ) == 0); + if (block3_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block3->x, + block3_len) == 0); + } - if( block4_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block4->x, - block4_len ) == 0); + if (block4_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block4->x, + block4_len) == 0); + } - TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0); - TEST_ASSERT( memcmp( output, expected_result->x, block_size ) == 0 ); + TEST_ASSERT(memcmp(output, expected_result->x, block_size) == 0); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_cmac_multiple_operations_same_key( int cipher_type, - data_t * key, int keybits, - int block_size, - data_t * block_a1, - int block_a1_len, - data_t * block_a2, - int block_a2_len, - data_t * block_a3, - int block_a3_len, - data_t * expected_result_a, - data_t * block_b1, - int block_b1_len, - data_t * block_b2, - int block_b2_len, - data_t * block_b3, - int block_b3_len, - data_t * expected_result_b - ) +void mbedtls_cmac_multiple_operations_same_key(int cipher_type, + data_t *key, int keybits, + int block_size, + data_t *block_a1, + int block_a1_len, + data_t *block_a2, + int block_a2_len, + data_t *block_a3, + int block_a3_len, + data_t *expected_result_a, + data_t *block_b1, + int block_b1_len, + data_t *block_b2, + int block_b2_len, + data_t *block_b3, + int block_b3_len, + data_t *expected_result_b + ) { const mbedtls_cipher_info_t *cipher_info; mbedtls_cipher_context_t ctx; @@ -210,77 +214,82 @@ void mbedtls_cmac_multiple_operations_same_key( int cipher_type, - mbedtls_cipher_init( &ctx ); + mbedtls_cipher_init(&ctx); /* Validate the test inputs */ - TEST_ASSERT( block_a1_len <= 100 ); - TEST_ASSERT( block_a2_len <= 100 ); - TEST_ASSERT( block_a3_len <= 100 ); + TEST_ASSERT(block_a1_len <= 100); + TEST_ASSERT(block_a2_len <= 100); + TEST_ASSERT(block_a3_len <= 100); - TEST_ASSERT( block_b1_len <= 100 ); - TEST_ASSERT( block_b2_len <= 100 ); - TEST_ASSERT( block_b3_len <= 100 ); + TEST_ASSERT(block_b1_len <= 100); + TEST_ASSERT(block_b2_len <= 100); + TEST_ASSERT(block_b3_len <= 100); /* Set up */ - TEST_ASSERT( ( cipher_info = mbedtls_cipher_info_from_type( cipher_type ) ) - != NULL ); + TEST_ASSERT((cipher_info = mbedtls_cipher_info_from_type(cipher_type)) + != NULL); - TEST_ASSERT( mbedtls_cipher_setup( &ctx, cipher_info ) == 0 ); + TEST_ASSERT(mbedtls_cipher_setup(&ctx, cipher_info) == 0); - TEST_ASSERT( mbedtls_cipher_cmac_starts( &ctx, - (const unsigned char*)key->x, - keybits ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_starts(&ctx, + (const unsigned char *) key->x, + keybits) == 0); /* Sequence A */ /* Multiple partial and complete blocks. A negative length means skip the * update operation */ - if( block_a1_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_a1->x, - block_a1_len ) == 0); + if (block_a1_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_a1->x, + block_a1_len) == 0); + } - if( block_a2_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_a2->x, - block_a2_len ) == 0); + if (block_a2_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_a2->x, + block_a2_len) == 0); + } - if( block_a3_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_a3->x, - block_a3_len ) == 0); + if (block_a3_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_a3->x, + block_a3_len) == 0); + } - TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0); - TEST_ASSERT( memcmp( output, expected_result_a->x, block_size ) == 0 ); + TEST_ASSERT(memcmp(output, expected_result_a->x, block_size) == 0); - TEST_ASSERT( mbedtls_cipher_cmac_reset( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_reset(&ctx) == 0); /* Sequence B */ /* Multiple partial and complete blocks. A negative length means skip the * update operation */ - if( block_b1_len >= 0) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_b1->x, - block_b1_len ) == 0); + if (block_b1_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_b1->x, + block_b1_len) == 0); + } - if( block_b2_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_b2->x, - block_b2_len ) == 0); + if (block_b2_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_b2->x, + block_b2_len) == 0); + } - if( block_b3_len >= 0 ) - TEST_ASSERT( mbedtls_cipher_cmac_update( &ctx, - (unsigned char*)block_b3->x, - block_b3_len ) == 0); + if (block_b3_len >= 0) { + TEST_ASSERT(mbedtls_cipher_cmac_update(&ctx, + (unsigned char *) block_b3->x, + block_b3_len) == 0); + } - TEST_ASSERT( mbedtls_cipher_cmac_finish( &ctx, output ) == 0 ); + TEST_ASSERT(mbedtls_cipher_cmac_finish(&ctx, output) == 0); - TEST_ASSERT( memcmp( output, expected_result_b->x, block_size ) == 0 ); + TEST_ASSERT(memcmp(output, expected_result_b->x, block_size) == 0); exit: - mbedtls_cipher_free( &ctx ); + mbedtls_cipher_free(&ctx); } /* END_CASE */ - diff --git a/tests/suites/test_suite_common.function b/tests/suites/test_suite_common.function index 4444a52ce..dd0b2d540 100644 --- a/tests/suites/test_suite_common.function +++ b/tests/suites/test_suite_common.function @@ -1,10 +1,9 @@ /* BEGIN_HEADER */ #include "../library/common.h" -void fill_arrays( unsigned char *a, unsigned char *b, unsigned char *r1, unsigned char *r2, size_t n ) +void fill_arrays(unsigned char *a, unsigned char *b, unsigned char *r1, unsigned char *r2, size_t n) { - for ( size_t i = 0; i < n; i++ ) - { + for (size_t i = 0; i < n; i++) { a[i] = (unsigned char) i * 3; b[i] = (unsigned char) i * 3 + 1; r1[i] = (unsigned char) i * 3 + 2; @@ -14,77 +13,70 @@ void fill_arrays( unsigned char *a, unsigned char *b, unsigned char *r1, unsigne /* END_HEADER */ /* BEGIN_CASE */ -void mbedtls_xor( int len ) +void mbedtls_xor(int len) { size_t n = (size_t) len; unsigned char *a = NULL, *b = NULL, *r1 = NULL, *r2 = NULL; - ASSERT_ALLOC( a, n + 1 ); - ASSERT_ALLOC( b, n + 1 ); - ASSERT_ALLOC( r1, n + 1 ); - ASSERT_ALLOC( r2, n + 1 ); + ASSERT_ALLOC(a, n + 1); + ASSERT_ALLOC(b, n + 1); + ASSERT_ALLOC(r1, n + 1); + ASSERT_ALLOC(r2, n + 1); /* Test non-overlapping */ - fill_arrays( a, b, r1, r2, n ); - for ( size_t i = 0; i < n; i++ ) - { + fill_arrays(a, b, r1, r2, n); + for (size_t i = 0; i < n; i++) { r1[i] = a[i] ^ b[i]; } - mbedtls_xor( r2, a, b, n ); - ASSERT_COMPARE( r1, n, r2, n ); + mbedtls_xor(r2, a, b, n); + ASSERT_COMPARE(r1, n, r2, n); /* Test r == a */ - fill_arrays( a, b, r1, r2, n ); - for ( size_t i = 0; i < n; i++ ) - { + fill_arrays(a, b, r1, r2, n); + for (size_t i = 0; i < n; i++) { r1[i] = r1[i] ^ b[i]; } - mbedtls_xor( r2, r2, b, n ); - ASSERT_COMPARE( r1, n, r2, n ); + mbedtls_xor(r2, r2, b, n); + ASSERT_COMPARE(r1, n, r2, n); /* Test r == b */ - fill_arrays( a, b, r1, r2, n ); - for ( size_t i = 0; i < n; i++ ) - { + fill_arrays(a, b, r1, r2, n); + for (size_t i = 0; i < n; i++) { r1[i] = a[i] ^ r1[i]; } - mbedtls_xor( r2, a, r2, n ); - ASSERT_COMPARE( r1, n, r2, n ); + mbedtls_xor(r2, a, r2, n); + ASSERT_COMPARE(r1, n, r2, n); /* Test a == b */ - fill_arrays( a, b, r1, r2, n ); - for ( size_t i = 0; i < n; i++ ) - { + fill_arrays(a, b, r1, r2, n); + for (size_t i = 0; i < n; i++) { r1[i] = a[i] ^ a[i]; } - mbedtls_xor( r2, a, a, n ); - ASSERT_COMPARE( r1, n, r2, n ); + mbedtls_xor(r2, a, a, n); + ASSERT_COMPARE(r1, n, r2, n); /* Test a == b == r */ - fill_arrays( a, b, r1, r2, n ); - for ( size_t i = 0; i < n; i++ ) - { + fill_arrays(a, b, r1, r2, n); + for (size_t i = 0; i < n; i++) { r1[i] = r1[i] ^ r1[i]; } - mbedtls_xor( r2, r2, r2, n ); - ASSERT_COMPARE( r1, n, r2, n ); + mbedtls_xor(r2, r2, r2, n); + ASSERT_COMPARE(r1, n, r2, n); /* Test non-word-aligned buffers, for all combinations of alignedness */ - for ( int i = 0; i < 7; i++ ) - { + for (int i = 0; i < 7; i++) { int r_off = i & 1, a_off = (i & 2) >> 1, b_off = (i & 4) >> 2; - fill_arrays( a, b, r1, r2, n + 1 ); + fill_arrays(a, b, r1, r2, n + 1); - for ( size_t j = 0; j < n; j++ ) - { + for (size_t j = 0; j < n; j++) { r1[j + r_off] = a[j + a_off] ^ b[j + b_off]; } - mbedtls_xor( r2 + r_off, a + a_off, b + b_off, n ); - ASSERT_COMPARE( r1 + r_off, n, r2 + r_off, n ); + mbedtls_xor(r2 + r_off, a + a_off, b + b_off, n); + ASSERT_COMPARE(r1 + r_off, n, r2 + r_off, n); } exit: - mbedtls_free( a ); - mbedtls_free( b ); - mbedtls_free( r1 ); - mbedtls_free( r2 ); + mbedtls_free(a); + mbedtls_free(b); + mbedtls_free(r1); + mbedtls_free(r2); } /* END_CASE */ diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function index a3673b717..a40149ab4 100644 --- a/tests/suites/test_suite_constant_time.function +++ b/tests/suites/test_suite_constant_time.function @@ -16,34 +16,33 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ -void ssl_cf_memcpy_offset( int offset_min, int offset_max, int len ) +void ssl_cf_memcpy_offset(int offset_min, int offset_max, int len) { unsigned char *dst = NULL; unsigned char *src = NULL; size_t src_len = offset_max + len; size_t secret; - ASSERT_ALLOC( dst, len ); - ASSERT_ALLOC( src, src_len ); + ASSERT_ALLOC(dst, len); + ASSERT_ALLOC(src, src_len); /* Fill src in a way that we can detect if we copied the right bytes */ - mbedtls_test_rnd_std_rand( NULL, src, src_len ); + mbedtls_test_rnd_std_rand(NULL, src, src_len); - for( secret = offset_min; secret <= (size_t) offset_max; secret++ ) - { - mbedtls_test_set_step( (int) secret ); + for (secret = offset_min; secret <= (size_t) offset_max; secret++) { + mbedtls_test_set_step((int) secret); - TEST_CF_SECRET( &secret, sizeof( secret ) ); - mbedtls_ct_memcpy_offset( dst, src, secret, - offset_min, offset_max, len ); - TEST_CF_PUBLIC( &secret, sizeof( secret ) ); - TEST_CF_PUBLIC( dst, len ); + TEST_CF_SECRET(&secret, sizeof(secret)); + mbedtls_ct_memcpy_offset(dst, src, secret, + offset_min, offset_max, len); + TEST_CF_PUBLIC(&secret, sizeof(secret)); + TEST_CF_PUBLIC(dst, len); - ASSERT_COMPARE( dst, len, src + secret, len ); + ASSERT_COMPARE(dst, len, src + secret, len); } exit: - mbedtls_free( dst ); - mbedtls_free( src ); + mbedtls_free(dst); + mbedtls_free(src); } /* END_CASE */ diff --git a/tests/suites/test_suite_constant_time_hmac.function b/tests/suites/test_suite_constant_time_hmac.function index f8c1bfc0c..8ba6ff477 100644 --- a/tests/suites/test_suite_constant_time_hmac.function +++ b/tests/suites/test_suite_constant_time_hmac.function @@ -10,7 +10,7 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ -void ssl_cf_hmac( int hash ) +void ssl_cf_hmac(int hash) { /* * Test the function mbedtls_ct_hmac() against a reference @@ -34,47 +34,47 @@ void ssl_cf_hmac( int hash ) unsigned char *out = NULL; unsigned char rec_num = 0; - USE_PSA_INIT( ); + USE_PSA_INIT(); #if defined(MBEDTLS_USE_PSA_CRYPTO) - alg = PSA_ALG_HMAC( mbedtls_hash_info_psa_from_md( hash ) ); + alg = PSA_ALG_HMAC(mbedtls_hash_info_psa_from_md(hash)); - out_len = PSA_HASH_LENGTH( alg ); - block_size = PSA_HASH_BLOCK_LENGTH( alg ); + out_len = PSA_HASH_LENGTH(alg); + block_size = PSA_HASH_BLOCK_LENGTH(alg); /* mbedtls_ct_hmac() requires the key to be exportable */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT | - PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, PSA_ALG_HMAC( alg ) ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT | + PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, PSA_ALG_HMAC(alg)); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); #else - mbedtls_md_init( &ctx ); - mbedtls_md_init( &ref_ctx ); + mbedtls_md_init(&ctx); + mbedtls_md_init(&ref_ctx); - md_info = mbedtls_md_info_from_type( hash ); - TEST_ASSERT( md_info != NULL ); - out_len = mbedtls_md_get_size( md_info ); - TEST_ASSERT( out_len != 0 ); + md_info = mbedtls_md_info_from_type(hash); + TEST_ASSERT(md_info != NULL); + out_len = mbedtls_md_get_size(md_info); + TEST_ASSERT(out_len != 0); block_size = hash == MBEDTLS_MD_SHA384 ? 128 : 64; #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* Use allocated out buffer to catch overwrites */ - ASSERT_ALLOC( out, out_len ); + ASSERT_ALLOC(out, out_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) /* Set up dummy key */ - memset( ref_out, 42, sizeof( ref_out ) ); - TEST_EQUAL( PSA_SUCCESS, psa_import_key( &attributes, - ref_out, out_len, - &key ) ); + memset(ref_out, 42, sizeof(ref_out)); + TEST_EQUAL(PSA_SUCCESS, psa_import_key(&attributes, + ref_out, out_len, + &key)); #else /* Set up contexts with the given hash and a dummy key */ - TEST_EQUAL( 0, mbedtls_md_setup( &ctx, md_info, 1 ) ); - TEST_EQUAL( 0, mbedtls_md_setup( &ref_ctx, md_info, 1 ) ); - memset( ref_out, 42, sizeof( ref_out ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ctx, ref_out, out_len ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_starts( &ref_ctx, ref_out, out_len ) ); - memset( ref_out, 0, sizeof( ref_out ) ); + TEST_EQUAL(0, mbedtls_md_setup(&ctx, md_info, 1)); + TEST_EQUAL(0, mbedtls_md_setup(&ref_ctx, md_info, 1)); + memset(ref_out, 42, sizeof(ref_out)); + TEST_EQUAL(0, mbedtls_md_hmac_starts(&ctx, ref_out, out_len)); + TEST_EQUAL(0, mbedtls_md_hmac_starts(&ref_ctx, ref_out, out_len)); + memset(ref_out, 0, sizeof(ref_out)); #endif /* @@ -82,79 +82,78 @@ void ssl_cf_hmac( int hash ) * max_in_len and min_in_len is at most 255, and make sure they both vary * by at least one block size. */ - for( max_in_len = 0; max_in_len <= 255 + block_size; max_in_len++ ) - { - mbedtls_test_set_step( max_in_len * 10000 ); + for (max_in_len = 0; max_in_len <= 255 + block_size; max_in_len++) { + mbedtls_test_set_step(max_in_len * 10000); /* Use allocated in buffer to catch overreads */ - ASSERT_ALLOC( data, max_in_len ); + ASSERT_ALLOC(data, max_in_len); min_in_len = max_in_len > 255 ? max_in_len - 255 : 0; - for( in_len = min_in_len; in_len <= max_in_len; in_len++ ) - { - mbedtls_test_set_step( max_in_len * 10000 + in_len ); + for (in_len = min_in_len; in_len <= max_in_len; in_len++) { + mbedtls_test_set_step(max_in_len * 10000 + in_len); /* Set up dummy data and add_data */ rec_num++; - memset( add_data, rec_num, sizeof( add_data ) ); - for( i = 0; i < in_len; i++ ) - data[i] = ( i & 0xff ) ^ rec_num; + memset(add_data, rec_num, sizeof(add_data)); + for (i = 0; i < in_len; i++) { + data[i] = (i & 0xff) ^ rec_num; + } /* Get the function's result */ - TEST_CF_SECRET( &in_len, sizeof( in_len ) ); + TEST_CF_SECRET(&in_len, sizeof(in_len)); #if defined(MBEDTLS_USE_PSA_CRYPTO) - TEST_EQUAL( 0, mbedtls_ct_hmac( key, PSA_ALG_HMAC( alg ), - add_data, sizeof( add_data ), - data, in_len, - min_in_len, max_in_len, - out ) ); + TEST_EQUAL(0, mbedtls_ct_hmac(key, PSA_ALG_HMAC(alg), + add_data, sizeof(add_data), + data, in_len, + min_in_len, max_in_len, + out)); #else - TEST_EQUAL( 0, mbedtls_ct_hmac( &ctx, add_data, sizeof( add_data ), - data, in_len, - min_in_len, max_in_len, - out ) ); + TEST_EQUAL(0, mbedtls_ct_hmac(&ctx, add_data, sizeof(add_data), + data, in_len, + min_in_len, max_in_len, + out)); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - TEST_CF_PUBLIC( &in_len, sizeof( in_len ) ); - TEST_CF_PUBLIC( out, out_len ); + TEST_CF_PUBLIC(&in_len, sizeof(in_len)); + TEST_CF_PUBLIC(out, out_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_setup( &operation, - key, alg ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, add_data, - sizeof( add_data ) ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, - data, in_len ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_verify_finish( &operation, - out, out_len ) ); + TEST_EQUAL(PSA_SUCCESS, psa_mac_verify_setup(&operation, + key, alg)); + TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation, add_data, + sizeof(add_data))); + TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation, + data, in_len)); + TEST_EQUAL(PSA_SUCCESS, psa_mac_verify_finish(&operation, + out, out_len)); #else /* Compute the reference result */ - TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, add_data, - sizeof( add_data ) ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_update( &ref_ctx, data, in_len ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_finish( &ref_ctx, ref_out ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_reset( &ref_ctx ) ); + TEST_EQUAL(0, mbedtls_md_hmac_update(&ref_ctx, add_data, + sizeof(add_data))); + TEST_EQUAL(0, mbedtls_md_hmac_update(&ref_ctx, data, in_len)); + TEST_EQUAL(0, mbedtls_md_hmac_finish(&ref_ctx, ref_out)); + TEST_EQUAL(0, mbedtls_md_hmac_reset(&ref_ctx)); /* Compare */ - ASSERT_COMPARE( out, out_len, ref_out, out_len ); + ASSERT_COMPARE(out, out_len, ref_out, out_len); #endif /* MBEDTLS_USE_PSA_CRYPTO */ } - mbedtls_free( data ); + mbedtls_free(data); data = NULL; } exit: #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_mac_abort( &operation ); - psa_destroy_key( key ); + psa_mac_abort(&operation); + psa_destroy_key(key); #else - mbedtls_md_free( &ref_ctx ); - mbedtls_md_free( &ctx ); + mbedtls_md_free(&ref_ctx); + mbedtls_md_free(&ctx); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_free( data ); - mbedtls_free( out ); + mbedtls_free(data); + mbedtls_free(out); - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_ctr_drbg.function b/tests/suites/test_suite_ctr_drbg.function index a46f21c1f..85c00ebae 100644 --- a/tests/suites/test_suite_ctr_drbg.function +++ b/tests/suites/test_suite_ctr_drbg.function @@ -4,8 +4,7 @@ #include "string.h" /* Modes for ctr_drbg_validate */ -enum reseed_mode -{ +enum reseed_mode { RESEED_NEVER, /* never reseed */ RESEED_FIRST, /* instantiate, reseed, generate, generate */ RESEED_SECOND, /* instantiate, generate, reseed, generate */ @@ -14,83 +13,83 @@ enum reseed_mode static size_t test_offset_idx = 0; static size_t test_max_idx = 0; -static int mbedtls_test_entropy_func( void *data, unsigned char *buf, size_t len ) +static int mbedtls_test_entropy_func(void *data, unsigned char *buf, size_t len) { const unsigned char *p = (unsigned char *) data; - if( test_offset_idx + len > test_max_idx ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); - memcpy( buf, p + test_offset_idx, len ); + if (test_offset_idx + len > test_max_idx) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } + memcpy(buf, p + test_offset_idx, len); test_offset_idx += len; - return( 0 ); + return 0; } -static void ctr_drbg_validate_internal( int reseed_mode, data_t * nonce, - int entropy_len_arg, data_t * entropy, - data_t * reseed, - data_t * add1, data_t * add2, - data_t * result ) +static void ctr_drbg_validate_internal(int reseed_mode, data_t *nonce, + int entropy_len_arg, data_t *entropy, + data_t *reseed, + data_t *add1, data_t *add2, + data_t *result) { mbedtls_ctr_drbg_context ctx; unsigned char buf[64]; size_t entropy_chunk_len = (size_t) entropy_len_arg; - TEST_ASSERT( entropy_chunk_len <= sizeof( buf ) ); + TEST_ASSERT(entropy_chunk_len <= sizeof(buf)); test_offset_idx = 0; - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); test_max_idx = entropy->len; /* CTR_DRBG_Instantiate(entropy[:entropy->len], nonce, perso, ) * where nonce||perso = nonce[nonce->len] */ - mbedtls_ctr_drbg_set_entropy_len( &ctx, entropy_chunk_len ); - mbedtls_ctr_drbg_set_nonce_len( &ctx, 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_seed( - &ctx, - mbedtls_test_entropy_func, entropy->x, - nonce->x, nonce->len ) == 0 ); - if( reseed_mode == RESEED_ALWAYS ) + mbedtls_ctr_drbg_set_entropy_len(&ctx, entropy_chunk_len); + mbedtls_ctr_drbg_set_nonce_len(&ctx, 0); + TEST_ASSERT(mbedtls_ctr_drbg_seed( + &ctx, + mbedtls_test_entropy_func, entropy->x, + nonce->x, nonce->len) == 0); + if (reseed_mode == RESEED_ALWAYS) { mbedtls_ctr_drbg_set_prediction_resistance( &ctx, - MBEDTLS_CTR_DRBG_PR_ON ); + MBEDTLS_CTR_DRBG_PR_ON); + } - if( reseed_mode == RESEED_FIRST ) - { + if (reseed_mode == RESEED_FIRST) { /* CTR_DRBG_Reseed(entropy[idx:idx+entropy->len], * reseed[:reseed->len]) */ - TEST_ASSERT( mbedtls_ctr_drbg_reseed( - &ctx, - reseed->x, reseed->len ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_reseed( + &ctx, + reseed->x, reseed->len) == 0); } /* CTR_DRBG_Generate(result->len * 8 bits, add1[:add1->len]) -> buf */ /* Then reseed if prediction resistance is enabled. */ - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( - &ctx, - buf, result->len, - add1->x, add1->len ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add( + &ctx, + buf, result->len, + add1->x, add1->len) == 0); - if( reseed_mode == RESEED_SECOND ) - { + if (reseed_mode == RESEED_SECOND) { /* CTR_DRBG_Reseed(entropy[idx:idx+entropy->len], * reseed[:reseed->len]) */ - TEST_ASSERT( mbedtls_ctr_drbg_reseed( - &ctx, - reseed->x, reseed->len ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_reseed( + &ctx, + reseed->x, reseed->len) == 0); } /* CTR_DRBG_Generate(result->len * 8 bits, add2->x[:add2->len]) -> buf */ /* Then reseed if prediction resistance is enabled. */ - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( - &ctx, - buf, result->len, - add2->x, add2->len ) == 0 ); - TEST_ASSERT( memcmp( buf, result->x, result->len ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add( + &ctx, + buf, result->len, + add2->x, add2->len) == 0); + TEST_ASSERT(memcmp(buf, result->x, result->len) == 0); exit: - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); } /* END_HEADER */ @@ -101,127 +100,127 @@ exit: */ /* BEGIN_CASE */ -void ctr_drbg_special_behaviours( ) +void ctr_drbg_special_behaviours() { mbedtls_ctr_drbg_context ctx; unsigned char output[512]; unsigned char additional[512]; - mbedtls_ctr_drbg_init( &ctx ); - memset( output, 0, sizeof( output ) ); - memset( additional, 0, sizeof( additional ) ); + mbedtls_ctr_drbg_init(&ctx); + memset(output, 0, sizeof(output)); + memset(additional, 0, sizeof(additional)); - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, - output, MBEDTLS_CTR_DRBG_MAX_REQUEST + 1, - additional, 16 ) == - MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG ); - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, - output, 16, - additional, MBEDTLS_CTR_DRBG_MAX_INPUT + 1 ) == - MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, + output, MBEDTLS_CTR_DRBG_MAX_REQUEST + 1, + additional, 16) == + MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, + output, 16, + additional, MBEDTLS_CTR_DRBG_MAX_INPUT + 1) == + MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG); - TEST_ASSERT( mbedtls_ctr_drbg_reseed( &ctx, additional, - MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + 1 ) == - MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, additional, + MBEDTLS_CTR_DRBG_MAX_SEED_INPUT + 1) == + MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG); - mbedtls_ctr_drbg_set_entropy_len( &ctx, ~0 ); - TEST_ASSERT( mbedtls_ctr_drbg_reseed( &ctx, additional, - MBEDTLS_CTR_DRBG_MAX_SEED_INPUT ) == - MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG ); + mbedtls_ctr_drbg_set_entropy_len(&ctx, ~0); + TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, additional, + MBEDTLS_CTR_DRBG_MAX_SEED_INPUT) == + MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG); exit: - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_validate_no_reseed( data_t * add_init, data_t * entropy, - data_t * add1, data_t * add2, - data_t * result_string ) +void ctr_drbg_validate_no_reseed(data_t *add_init, data_t *entropy, + data_t *add1, data_t *add2, + data_t *result_string) { data_t empty = { 0, 0 }; - ctr_drbg_validate_internal( RESEED_NEVER, add_init, - entropy->len, entropy, - &empty, add1, add2, - result_string ); + ctr_drbg_validate_internal(RESEED_NEVER, add_init, + entropy->len, entropy, + &empty, add1, add2, + result_string); goto exit; // goto is needed to avoid warning ( no test assertions in func) } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_validate_pr( data_t * add_init, data_t * entropy, - data_t * add1, data_t * add2, - data_t * result_string ) +void ctr_drbg_validate_pr(data_t *add_init, data_t *entropy, + data_t *add1, data_t *add2, + data_t *result_string) { data_t empty = { 0, 0 }; - ctr_drbg_validate_internal( RESEED_ALWAYS, add_init, - entropy->len / 3, entropy, - &empty, add1, add2, - result_string ); + ctr_drbg_validate_internal(RESEED_ALWAYS, add_init, + entropy->len / 3, entropy, + &empty, add1, add2, + result_string); goto exit; // goto is needed to avoid warning ( no test assertions in func) } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_validate_reseed_between( data_t * add_init, data_t * entropy, - data_t * add1, data_t * add_reseed, - data_t * add2, data_t * result_string ) +void ctr_drbg_validate_reseed_between(data_t *add_init, data_t *entropy, + data_t *add1, data_t *add_reseed, + data_t *add2, data_t *result_string) { - ctr_drbg_validate_internal( RESEED_SECOND, add_init, - entropy->len / 2, entropy, - add_reseed, add1, add2, - result_string ); + ctr_drbg_validate_internal(RESEED_SECOND, add_init, + entropy->len / 2, entropy, + add_reseed, add1, add2, + result_string); goto exit; // goto is needed to avoid warning ( no test assertions in func) } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_validate_reseed_first( data_t * add_init, data_t * entropy, - data_t * add1, data_t * add_reseed, - data_t * add2, data_t * result_string ) +void ctr_drbg_validate_reseed_first(data_t *add_init, data_t *entropy, + data_t *add1, data_t *add_reseed, + data_t *add2, data_t *result_string) { - ctr_drbg_validate_internal( RESEED_FIRST, add_init, - entropy->len / 2, entropy, - add_reseed, add1, add2, - result_string ); + ctr_drbg_validate_internal(RESEED_FIRST, add_init, + entropy->len / 2, entropy, + add_reseed, add1, add2, + result_string); goto exit; // goto is needed to avoid warning ( no test assertions in func) } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_entropy_strength( int expected_bit_strength ) +void ctr_drbg_entropy_strength(int expected_bit_strength) { unsigned char entropy[/*initial entropy*/ MBEDTLS_CTR_DRBG_ENTROPY_LEN + - /*nonce*/ MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN + - /*reseed*/ MBEDTLS_CTR_DRBG_ENTROPY_LEN]; + /*nonce*/ MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN + + /*reseed*/ MBEDTLS_CTR_DRBG_ENTROPY_LEN]; mbedtls_ctr_drbg_context ctx; size_t last_idx; size_t byte_strength = expected_bit_strength / 8; - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); test_offset_idx = 0; - test_max_idx = sizeof( entropy ); - memset( entropy, 0, sizeof( entropy ) ); + test_max_idx = sizeof(entropy); + memset(entropy, 0, sizeof(entropy)); /* The initial seeding must grab at least byte_strength bytes of entropy * for the entropy input and byte_strength/2 bytes for a nonce. */ - TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctx, - mbedtls_test_entropy_func, entropy, - NULL, 0 ) == 0 ); - TEST_ASSERT( test_offset_idx >= ( byte_strength * 3 + 1 ) / 2 ); + TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx, + mbedtls_test_entropy_func, entropy, + NULL, 0) == 0); + TEST_ASSERT(test_offset_idx >= (byte_strength * 3 + 1) / 2); last_idx = test_offset_idx; /* A reseed must grab at least byte_strength bytes of entropy. */ - TEST_ASSERT( mbedtls_ctr_drbg_reseed( &ctx, NULL, 0 ) == 0 ); - TEST_ASSERT( test_offset_idx - last_idx >= byte_strength ); + TEST_ASSERT(mbedtls_ctr_drbg_reseed(&ctx, NULL, 0) == 0); + TEST_ASSERT(test_offset_idx - last_idx >= byte_strength); exit: - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void ctr_drbg_entropy_usage( int entropy_nonce_len ) +void ctr_drbg_entropy_usage(int entropy_nonce_len) { unsigned char out[16]; unsigned char add[16]; @@ -230,109 +229,109 @@ void ctr_drbg_entropy_usage( int entropy_nonce_len ) size_t i, reps = 10; size_t expected_idx = 0; - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); test_offset_idx = 0; - test_max_idx = sizeof( entropy ); - memset( entropy, 0, sizeof( entropy ) ); - memset( out, 0, sizeof( out ) ); - memset( add, 0, sizeof( add ) ); + test_max_idx = sizeof(entropy); + memset(entropy, 0, sizeof(entropy)); + memset(out, 0, sizeof(out)); + memset(add, 0, sizeof(add)); - if( entropy_nonce_len >= 0 ) - TEST_ASSERT( mbedtls_ctr_drbg_set_nonce_len( &ctx, entropy_nonce_len ) == 0 ); + if (entropy_nonce_len >= 0) { + TEST_ASSERT(mbedtls_ctr_drbg_set_nonce_len(&ctx, entropy_nonce_len) == 0); + } /* Set reseed interval before seed */ - mbedtls_ctr_drbg_set_reseed_interval( &ctx, 2 * reps ); + mbedtls_ctr_drbg_set_reseed_interval(&ctx, 2 * reps); /* Init must use entropy */ - TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctx, mbedtls_test_entropy_func, entropy, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_entropy_func, entropy, NULL, 0) == 0); expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN; - if( entropy_nonce_len >= 0 ) + if (entropy_nonce_len >= 0) { expected_idx += entropy_nonce_len; - else + } else { expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_NONCE_LEN; - TEST_EQUAL( test_offset_idx, expected_idx ); + } + TEST_EQUAL(test_offset_idx, expected_idx); /* By default, PR is off, and reseed interval was set to * 2 * reps so the next few calls should not use entropy */ - for( i = 0; i < reps; i++ ) - { - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) - 4 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, out, sizeof( out ) - 4, - add, sizeof( add ) ) == 0 ); + for (i = 0; i < reps; i++) { + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out) - 4) == 0); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, out, sizeof(out) - 4, + add, sizeof(add)) == 0); } - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); /* While at it, make sure we didn't write past the requested length */ - TEST_ASSERT( out[sizeof( out ) - 4] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 3] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 2] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 1] == 0 ); + TEST_ASSERT(out[sizeof(out) - 4] == 0); + TEST_ASSERT(out[sizeof(out) - 3] == 0); + TEST_ASSERT(out[sizeof(out) - 2] == 0); + TEST_ASSERT(out[sizeof(out) - 1] == 0); /* There have been 2 * reps calls to random. The next call should reseed */ - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0); expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN; - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); /* Set reseed interval after seed */ - mbedtls_ctr_drbg_set_reseed_interval( &ctx, 4 * reps + 1 ); + mbedtls_ctr_drbg_set_reseed_interval(&ctx, 4 * reps + 1); /* The next few calls should not reseed */ - for( i = 0; i < (2 * reps); i++ ) - { - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_random_with_add( &ctx, out, sizeof( out ) , - add, sizeof( add ) ) == 0 ); + for (i = 0; i < (2 * reps); i++) { + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0); + TEST_ASSERT(mbedtls_ctr_drbg_random_with_add(&ctx, out, sizeof(out), + add, sizeof(add)) == 0); } - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); /* Call update with too much data (sizeof entropy > MAX(_SEED)_INPUT). * Make sure it's detected as an error and doesn't cause memory * corruption. */ - TEST_ASSERT( mbedtls_ctr_drbg_update( - &ctx, entropy, sizeof( entropy ) ) != 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_update( + &ctx, entropy, sizeof(entropy)) != 0); /* Now enable PR, so the next few calls should all reseed */ - mbedtls_ctr_drbg_set_prediction_resistance( &ctx, MBEDTLS_CTR_DRBG_PR_ON ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_ON); + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0); expected_idx += MBEDTLS_CTR_DRBG_ENTROPY_LEN; - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); /* Finally, check setting entropy_len */ - mbedtls_ctr_drbg_set_entropy_len( &ctx, 42 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_ctr_drbg_set_entropy_len(&ctx, 42); + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0); expected_idx += 42; - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); - mbedtls_ctr_drbg_set_entropy_len( &ctx, 13 ); - TEST_ASSERT( mbedtls_ctr_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_ctr_drbg_set_entropy_len(&ctx, 13); + TEST_ASSERT(mbedtls_ctr_drbg_random(&ctx, out, sizeof(out)) == 0); expected_idx += 13; - TEST_EQUAL( test_offset_idx, expected_idx ); + TEST_EQUAL(test_offset_idx, expected_idx); exit: - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void ctr_drbg_seed_file( char * path, int ret ) +void ctr_drbg_seed_file(char *path, int ret) { mbedtls_ctr_drbg_context ctx; - mbedtls_ctr_drbg_init( &ctx ); + mbedtls_ctr_drbg_init(&ctx); - TEST_ASSERT( mbedtls_ctr_drbg_seed( &ctx, mbedtls_test_rnd_std_rand, - NULL, NULL, 0 ) == 0 ); - TEST_ASSERT( mbedtls_ctr_drbg_write_seed_file( &ctx, path ) == ret ); - TEST_ASSERT( mbedtls_ctr_drbg_update_seed_file( &ctx, path ) == ret ); + TEST_ASSERT(mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_rnd_std_rand, + NULL, NULL, 0) == 0); + TEST_ASSERT(mbedtls_ctr_drbg_write_seed_file(&ctx, path) == ret); + TEST_ASSERT(mbedtls_ctr_drbg_update_seed_file(&ctx, path) == ret); exit: - mbedtls_ctr_drbg_free( &ctx ); + mbedtls_ctr_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void ctr_drbg_selftest( ) +void ctr_drbg_selftest() { - TEST_ASSERT( mbedtls_ctr_drbg_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_ctr_drbg_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_debug.function b/tests/suites/test_suite_debug.function index 85544b560..6a3ca331a 100644 --- a/tests/suites/test_suite_debug.function +++ b/tests/suites/test_suite_debug.function @@ -3,8 +3,7 @@ #include "string.h" #include "mbedtls/legacy_or_psa.h" -struct buffer_data -{ +struct buffer_data { char buf[2000]; char *ptr; }; @@ -15,29 +14,32 @@ void string_debug(void *data, int level, const char *file, int line, const char char *p = buffer->ptr; ((void) level); - memcpy( p, file, strlen( file ) ); - p += strlen( file ); + memcpy(p, file, strlen(file)); + p += strlen(file); *p++ = '('; - *p++ = '0' + ( line / 1000 ) % 10; - *p++ = '0' + ( line / 100 ) % 10; - *p++ = '0' + ( line / 10 ) % 10; - *p++ = '0' + ( line / 1 ) % 10; + *p++ = '0' + (line / 1000) % 10; + *p++ = '0' + (line / 100) % 10; + *p++ = '0' + (line / 10) % 10; + *p++ = '0' + (line / 1) % 10; *p++ = ')'; *p++ = ':'; *p++ = ' '; #if defined(MBEDTLS_THREADING_C) /* Skip "thread ID" (up to the first space) as it is not predictable */ - while( *str++ != ' ' ); + while (*str++ != ' ') { + ; + } #endif - memcpy( p, str, strlen( str ) ); - p += strlen( str ); + memcpy(p, str, strlen(str)); + p += strlen(str); /* Detect if debug messages output partial lines and mark them */ - if( p[-1] != '\n' ) + if (p[-1] != '\n') { *p++ = '*'; + } buffer->ptr = p; } @@ -49,173 +51,173 @@ void string_debug(void *data, int level, const char *file, int line, const char */ /* BEGIN_CASE */ -void debug_print_msg_threshold( int threshold, int level, char * file, - int line, char * result_str ) +void debug_print_msg_threshold(int threshold, int level, char *file, + int line, char *result_str) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; struct buffer_data buffer; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - memset( buffer.buf, 0, 2000 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + memset(buffer.buf, 0, 2000); buffer.ptr = buffer.buf; - mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); + mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); - mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer); + mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - mbedtls_debug_set_threshold( threshold ); + mbedtls_debug_set_threshold(threshold); - mbedtls_debug_print_msg( &ssl, level, file, line, - "Text message, 2 == %d", 2 ); + mbedtls_debug_print_msg(&ssl, level, file, line, + "Text message, 2 == %d", 2); - TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buffer.buf, result_str) == 0); exit: - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_debug_print_ret( char * file, int line, char * text, int value, - char * result_str ) +void mbedtls_debug_print_ret(char *file, int line, char *text, int value, + char *result_str) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; struct buffer_data buffer; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - memset( buffer.buf, 0, 2000 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + memset(buffer.buf, 0, 2000); buffer.ptr = buffer.buf; - mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); + mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); - mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer); + mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - mbedtls_debug_print_ret( &ssl, 0, file, line, text, value); + mbedtls_debug_print_ret(&ssl, 0, file, line, text, value); - TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buffer.buf, result_str) == 0); exit: - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_debug_print_buf( char * file, int line, char * text, - data_t * data, char * result_str ) +void mbedtls_debug_print_buf(char *file, int line, char *text, + data_t *data, char *result_str) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; struct buffer_data buffer; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - memset( buffer.buf, 0, 2000 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + memset(buffer.buf, 0, 2000); buffer.ptr = buffer.buf; - mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); + mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); - mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer); + mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - mbedtls_debug_print_buf( &ssl, 0, file, line, text, data->x, data->len ); + mbedtls_debug_print_buf(&ssl, 0, file, line, text, data->x, data->len); - TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buffer.buf, result_str) == 0); exit: - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_debug_print_crt( char * crt_file, char * file, int line, - char * prefix, char * result_str ) +void mbedtls_debug_print_crt(char *crt_file, char *file, int line, + char *prefix, char *result_str) { mbedtls_x509_crt crt; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; struct buffer_data buffer; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_x509_crt_init( &crt ); - memset( buffer.buf, 0, 2000 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_x509_crt_init(&crt); + memset(buffer.buf, 0, 2000); buffer.ptr = buffer.buf; - mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); + mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); - mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer); + mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - mbedtls_debug_print_crt( &ssl, 0, file, line, prefix, &crt); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + mbedtls_debug_print_crt(&ssl, 0, file, line, prefix, &crt); - TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buffer.buf, result_str) == 0); exit: - mbedtls_x509_crt_free( &crt ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_x509_crt_free(&crt); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_BIGNUM_C */ -void mbedtls_debug_print_mpi( char * value, char * file, int line, - char * prefix, char * result_str ) +void mbedtls_debug_print_mpi(char *value, char *file, int line, + char *prefix, char *result_str) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; struct buffer_data buffer; mbedtls_mpi val; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - mbedtls_mpi_init( &val ); - memset( buffer.buf, 0, 2000 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + mbedtls_mpi_init(&val); + memset(buffer.buf, 0, 2000); buffer.ptr = buffer.buf; - mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); + mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); - mbedtls_ssl_conf_dbg( &conf, string_debug, &buffer); + mbedtls_ssl_conf_dbg(&conf, string_debug, &buffer); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &val, value ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&val, value) == 0); - mbedtls_debug_print_mpi( &ssl, 0, file, line, prefix, &val); + mbedtls_debug_print_mpi(&ssl, 0, file, line, prefix, &val); - TEST_ASSERT( strcmp( buffer.buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buffer.buf, result_str) == 0); exit: - mbedtls_mpi_free( &val ); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_mpi_free(&val); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ diff --git a/tests/suites/test_suite_des.function b/tests/suites/test_suite_des.function index 7256fb537..b846d777a 100644 --- a/tests/suites/test_suite_des.function +++ b/tests/suites/test_suite_des.function @@ -8,269 +8,273 @@ */ /* BEGIN_CASE */ -void des_check_weak( data_t * key, int ret ) +void des_check_weak(data_t *key, int ret) { - TEST_ASSERT( mbedtls_des_key_check_weak( key->x ) == ret ); + TEST_ASSERT(mbedtls_des_key_check_weak(key->x) == ret); } /* END_CASE */ /* BEGIN_CASE */ -void des_encrypt_ecb( data_t * key_str, data_t * src_str, data_t * dst ) +void des_encrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_des_context ctx; memset(output, 0x00, 100); - mbedtls_des_init( &ctx ); + mbedtls_des_init(&ctx); - TEST_ASSERT( mbedtls_des_setkey_enc( &ctx, key_str->x ) == 0 ); - TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_des_setkey_enc(&ctx, key_str->x) == 0); + TEST_ASSERT(mbedtls_des_crypt_ecb(&ctx, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); exit: - mbedtls_des_free( &ctx ); + mbedtls_des_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void des_decrypt_ecb( data_t * key_str, data_t * src_str, data_t * dst ) +void des_decrypt_ecb(data_t *key_str, data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_des_context ctx; memset(output, 0x00, 100); - mbedtls_des_init( &ctx ); + mbedtls_des_init(&ctx); - TEST_ASSERT( mbedtls_des_setkey_dec( &ctx, key_str->x ) == 0 ); - TEST_ASSERT( mbedtls_des_crypt_ecb( &ctx, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_des_setkey_dec(&ctx, key_str->x) == 0); + TEST_ASSERT(mbedtls_des_crypt_ecb(&ctx, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); exit: - mbedtls_des_free( &ctx ); + mbedtls_des_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void des_encrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, int cbc_result ) +void des_encrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, int cbc_result) { unsigned char output[100]; mbedtls_des_context ctx; memset(output, 0x00, 100); - mbedtls_des_init( &ctx ); + mbedtls_des_init(&ctx); - TEST_ASSERT( mbedtls_des_setkey_enc( &ctx, key_str->x ) == 0 ); - TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); - if( cbc_result == 0 ) - { + TEST_ASSERT(mbedtls_des_setkey_enc(&ctx, key_str->x) == 0); + TEST_ASSERT(mbedtls_des_crypt_cbc(&ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, - dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len, + dst->len) == 0); } exit: - mbedtls_des_free( &ctx ); + mbedtls_des_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void des_decrypt_cbc( data_t * key_str, data_t * iv_str, - data_t * src_str, data_t * dst, - int cbc_result ) +void des_decrypt_cbc(data_t *key_str, data_t *iv_str, + data_t *src_str, data_t *dst, + int cbc_result) { unsigned char output[100]; mbedtls_des_context ctx; memset(output, 0x00, 100); - mbedtls_des_init( &ctx ); + mbedtls_des_init(&ctx); - TEST_ASSERT( mbedtls_des_setkey_dec( &ctx, key_str->x ) == 0 ); - TEST_ASSERT( mbedtls_des_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); - if( cbc_result == 0 ) - { + TEST_ASSERT(mbedtls_des_setkey_dec(&ctx, key_str->x) == 0); + TEST_ASSERT(mbedtls_des_crypt_cbc(&ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, - dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len, + dst->len) == 0); } exit: - mbedtls_des_free( &ctx ); + mbedtls_des_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void des3_encrypt_ecb( int key_count, data_t * key_str, - data_t * src_str, data_t * dst ) +void des3_encrypt_ecb(int key_count, data_t *key_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_des3_context ctx; memset(output, 0x00, 100); - mbedtls_des3_init( &ctx ); + mbedtls_des3_init(&ctx); - if( key_count == 2 ) - TEST_ASSERT( mbedtls_des3_set2key_enc( &ctx, key_str->x ) == 0 ); - else if( key_count == 3 ) - TEST_ASSERT( mbedtls_des3_set3key_enc( &ctx, key_str->x ) == 0 ); - else - TEST_ASSERT( 0 ); + if (key_count == 2) { + TEST_ASSERT(mbedtls_des3_set2key_enc(&ctx, key_str->x) == 0); + } else if (key_count == 3) { + TEST_ASSERT(mbedtls_des3_set3key_enc(&ctx, key_str->x) == 0); + } else { + TEST_ASSERT(0); + } - TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_des3_crypt_ecb(&ctx, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); exit: - mbedtls_des3_free( &ctx ); + mbedtls_des3_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void des3_decrypt_ecb( int key_count, data_t * key_str, - data_t * src_str, data_t * dst ) +void des3_decrypt_ecb(int key_count, data_t *key_str, + data_t *src_str, data_t *dst) { unsigned char output[100]; mbedtls_des3_context ctx; memset(output, 0x00, 100); - mbedtls_des3_init( &ctx ); + mbedtls_des3_init(&ctx); - if( key_count == 2 ) - TEST_ASSERT( mbedtls_des3_set2key_dec( &ctx, key_str->x ) == 0 ); - else if( key_count == 3 ) - TEST_ASSERT( mbedtls_des3_set3key_dec( &ctx, key_str->x ) == 0 ); - else - TEST_ASSERT( 0 ); + if (key_count == 2) { + TEST_ASSERT(mbedtls_des3_set2key_dec(&ctx, key_str->x) == 0); + } else if (key_count == 3) { + TEST_ASSERT(mbedtls_des3_set3key_dec(&ctx, key_str->x) == 0); + } else { + TEST_ASSERT(0); + } - TEST_ASSERT( mbedtls_des3_crypt_ecb( &ctx, src_str->x, output ) == 0 ); + TEST_ASSERT(mbedtls_des3_crypt_ecb(&ctx, src_str->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, 8, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, 8, dst->len) == 0); exit: - mbedtls_des3_free( &ctx ); + mbedtls_des3_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void des3_encrypt_cbc( int key_count, data_t * key_str, - data_t * iv_str, data_t * src_str, - data_t * dst, int cbc_result ) +void des3_encrypt_cbc(int key_count, data_t *key_str, + data_t *iv_str, data_t *src_str, + data_t *dst, int cbc_result) { unsigned char output[100]; mbedtls_des3_context ctx; memset(output, 0x00, 100); - mbedtls_des3_init( &ctx ); + mbedtls_des3_init(&ctx); - if( key_count == 2 ) - TEST_ASSERT( mbedtls_des3_set2key_enc( &ctx, key_str->x ) == 0 ); - else if( key_count == 3 ) - TEST_ASSERT( mbedtls_des3_set3key_enc( &ctx, key_str->x ) == 0 ); - else - TEST_ASSERT( 0 ); + if (key_count == 2) { + TEST_ASSERT(mbedtls_des3_set2key_enc(&ctx, key_str->x) == 0); + } else if (key_count == 3) { + TEST_ASSERT(mbedtls_des3_set3key_enc(&ctx, key_str->x) == 0); + } else { + TEST_ASSERT(0); + } - TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); + TEST_ASSERT(mbedtls_des3_crypt_cbc(&ctx, MBEDTLS_DES_ENCRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); - if( cbc_result == 0 ) - { + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, - src_str->len, dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, + src_str->len, dst->len) == 0); } exit: - mbedtls_des3_free( &ctx ); + mbedtls_des3_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC */ -void des3_decrypt_cbc( int key_count, data_t * key_str, - data_t * iv_str, data_t * src_str, - data_t * dst, int cbc_result ) +void des3_decrypt_cbc(int key_count, data_t *key_str, + data_t *iv_str, data_t *src_str, + data_t *dst, int cbc_result) { unsigned char output[100]; mbedtls_des3_context ctx; memset(output, 0x00, 100); - mbedtls_des3_init( &ctx ); + mbedtls_des3_init(&ctx); - if( key_count == 2 ) - TEST_ASSERT( mbedtls_des3_set2key_dec( &ctx, key_str->x ) == 0 ); - else if( key_count == 3 ) - TEST_ASSERT( mbedtls_des3_set3key_dec( &ctx, key_str->x ) == 0 ); - else - TEST_ASSERT( 0 ); + if (key_count == 2) { + TEST_ASSERT(mbedtls_des3_set2key_dec(&ctx, key_str->x) == 0); + } else if (key_count == 3) { + TEST_ASSERT(mbedtls_des3_set3key_dec(&ctx, key_str->x) == 0); + } else { + TEST_ASSERT(0); + } - TEST_ASSERT( mbedtls_des3_crypt_cbc( &ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, src_str->x, output ) == cbc_result ); + TEST_ASSERT(mbedtls_des3_crypt_cbc(&ctx, MBEDTLS_DES_DECRYPT, src_str->len, iv_str->x, + src_str->x, output) == cbc_result); - if( cbc_result == 0 ) - { + if (cbc_result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, dst->x, src_str->len, - dst->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, dst->x, src_str->len, + dst->len) == 0); } exit: - mbedtls_des3_free( &ctx ); + mbedtls_des3_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void des_key_parity_run( ) +void des_key_parity_run() { int i, j, cnt; unsigned char key[MBEDTLS_DES_KEY_SIZE]; unsigned int parity; - memset( key, 0, MBEDTLS_DES_KEY_SIZE ); + memset(key, 0, MBEDTLS_DES_KEY_SIZE); cnt = 0; // Iterate through all possible byte values // - for( i = 0; i < 32; i++ ) - { - for( j = 0; j < 8; j++ ) + for (i = 0; i < 32; i++) { + for (j = 0; j < 8; j++) { key[j] = cnt++; + } // Set the key parity according to the table // - mbedtls_des_key_set_parity( key ); + mbedtls_des_key_set_parity(key); // Check the parity with a function // - for( j = 0; j < 8; j++ ) - { - parity = key[j] ^ ( key[j] >> 4 ); + for (j = 0; j < 8; j++) { + parity = key[j] ^ (key[j] >> 4); parity = parity ^ - ( parity >> 1 ) ^ - ( parity >> 2 ) ^ - ( parity >> 3 ); + (parity >> 1) ^ + (parity >> 2) ^ + (parity >> 3); parity &= 1; - if( parity != 1 ) - TEST_ASSERT( 0 ); + if (parity != 1) { + TEST_ASSERT(0); + } } // Check the parity with the table // - TEST_ASSERT( mbedtls_des_key_check_key_parity( key ) == 0 ); + TEST_ASSERT(mbedtls_des_key_check_key_parity(key) == 0); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void des_selftest( ) +void des_selftest() { - TEST_ASSERT( mbedtls_des_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_des_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_dhm.function b/tests/suites/test_suite_dhm.function index d74c24dd0..e6f75de77 100644 --- a/tests/suites/test_suite_dhm.function +++ b/tests/suites/test_suite_dhm.function @@ -1,83 +1,86 @@ /* BEGIN_HEADER */ #include "mbedtls/dhm.h" -int check_get_value( const mbedtls_dhm_context *ctx, - mbedtls_dhm_parameter param, - const mbedtls_mpi *expected ) +int check_get_value(const mbedtls_dhm_context *ctx, + mbedtls_dhm_parameter param, + const mbedtls_mpi *expected) { mbedtls_mpi actual; int ok = 0; - mbedtls_mpi_init( &actual ); + mbedtls_mpi_init(&actual); - TEST_ASSERT( mbedtls_dhm_get_value( ctx, param, &actual ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &actual, expected ) == 0 ); + TEST_ASSERT(mbedtls_dhm_get_value(ctx, param, &actual) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&actual, expected) == 0); ok = 1; exit: - mbedtls_mpi_free( &actual ); - return( ok ); + mbedtls_mpi_free(&actual); + return ok; } /* Sanity checks on a Diffie-Hellman parameter: check the length-value * syntax and check that the value is the expected one (taken from the * DHM context by the caller). */ -static int check_dhm_param_output( const mbedtls_mpi *expected, - const unsigned char *buffer, - size_t size, - size_t *offset ) +static int check_dhm_param_output(const mbedtls_mpi *expected, + const unsigned char *buffer, + size_t size, + size_t *offset) { size_t n; mbedtls_mpi actual; int ok = 0; - mbedtls_mpi_init( &actual ); + mbedtls_mpi_init(&actual); ++mbedtls_test_info.step; - TEST_ASSERT( size >= *offset + 2 ); - n = ( buffer[*offset] << 8 ) | buffer[*offset + 1]; + TEST_ASSERT(size >= *offset + 2); + n = (buffer[*offset] << 8) | buffer[*offset + 1]; *offset += 2; /* The DHM param output from Mbed TLS has leading zeros stripped, as * permitted but not required by RFC 5246 \S4.4. */ - TEST_EQUAL( n, mbedtls_mpi_size( expected ) ); - TEST_ASSERT( size >= *offset + n ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &actual, buffer + *offset, n ) ); - TEST_EQUAL( 0, mbedtls_mpi_cmp_mpi( expected, &actual ) ); + TEST_EQUAL(n, mbedtls_mpi_size(expected)); + TEST_ASSERT(size >= *offset + n); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&actual, buffer + *offset, n)); + TEST_EQUAL(0, mbedtls_mpi_cmp_mpi(expected, &actual)); *offset += n; ok = 1; exit: - mbedtls_mpi_free( &actual ); - return( ok ); + mbedtls_mpi_free(&actual); + return ok; } /* Sanity checks on Diffie-Hellman parameters: syntax, range, and comparison * against the context. */ -static int check_dhm_params( const mbedtls_dhm_context *ctx, - size_t x_size, - const unsigned char *ske, size_t ske_len ) +static int check_dhm_params(const mbedtls_dhm_context *ctx, + size_t x_size, + const unsigned char *ske, size_t ske_len) { size_t offset = 0; /* Check that ctx->X and ctx->GX are within range. */ - TEST_ASSERT( mbedtls_mpi_cmp_int( &ctx->X, 1 ) > 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->P ) < 0 ); - TEST_ASSERT( mbedtls_mpi_size( &ctx->X ) <= x_size ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &ctx->GX, 1 ) > 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &ctx->GX, &ctx->P ) < 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_int(&ctx->X, 1) > 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&ctx->X, &ctx->P) < 0); + TEST_ASSERT(mbedtls_mpi_size(&ctx->X) <= x_size); + TEST_ASSERT(mbedtls_mpi_cmp_int(&ctx->GX, 1) > 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&ctx->GX, &ctx->P) < 0); /* Check ske: it must contain P, G and G^X, each prefixed with a * 2-byte size. */ - if( !check_dhm_param_output( &ctx->P, ske, ske_len, &offset ) ) + if (!check_dhm_param_output(&ctx->P, ske, ske_len, &offset)) { goto exit; - if( !check_dhm_param_output( &ctx->G, ske, ske_len, &offset ) ) + } + if (!check_dhm_param_output(&ctx->G, ske, ske_len, &offset)) { goto exit; - if( !check_dhm_param_output( &ctx->GX, ske, ske_len, &offset ) ) + } + if (!check_dhm_param_output(&ctx->GX, ske, ske_len, &offset)) { goto exit; - TEST_EQUAL( offset, ske_len ); + } + TEST_EQUAL(offset, ske_len); - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } /* END_HEADER */ @@ -88,8 +91,8 @@ exit: */ /* BEGIN_CASE */ -void dhm_do_dhm( char *input_P, int x_size, - char *input_G, int result ) +void dhm_do_dhm(char *input_P, int x_size, + char *input_G, int result) { mbedtls_dhm_context ctx_srv; mbedtls_dhm_context ctx_cli; @@ -105,84 +108,85 @@ void dhm_do_dhm( char *input_P, int x_size, int i; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_dhm_init( &ctx_srv ); - mbedtls_dhm_init( &ctx_cli ); - memset( ske, 0x00, 1000 ); - memset( pub_cli, 0x00, 1000 ); - memset( sec_srv, 0x00, 1000 ); - memset( sec_cli, 0x00, 1000 ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_dhm_init(&ctx_srv); + mbedtls_dhm_init(&ctx_cli); + memset(ske, 0x00, 1000); + memset(pub_cli, 0x00, 1000); + memset(sec_srv, 0x00, 1000); + memset(sec_cli, 0x00, 1000); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); /* * Set params */ - TEST_ASSERT( mbedtls_test_read_mpi( &ctx_srv.P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &ctx_srv.G, input_G ) == 0 ); - pub_cli_len = mbedtls_mpi_size( &ctx_srv.P ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_P, &ctx_srv.P ) ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_G, &ctx_srv.G ) ); + TEST_ASSERT(mbedtls_test_read_mpi(&ctx_srv.P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&ctx_srv.G, input_G) == 0); + pub_cli_len = mbedtls_mpi_size(&ctx_srv.P); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_P, &ctx_srv.P)); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_G, &ctx_srv.G)); /* * First key exchange */ - mbedtls_test_set_step( 10 ); - TEST_ASSERT( mbedtls_dhm_make_params( &ctx_srv, x_size, ske, &ske_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == result ); - if ( result != 0 ) + mbedtls_test_set_step(10); + TEST_ASSERT(mbedtls_dhm_make_params(&ctx_srv, x_size, ske, &ske_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == result); + if (result != 0) { goto exit; - if( !check_dhm_params( &ctx_srv, x_size, ske, ske_len ) ) + } + if (!check_dhm_params(&ctx_srv, x_size, ske, ske_len)) { goto exit; + } ske[ske_len++] = 0; ske[ske_len++] = 0; - TEST_ASSERT( mbedtls_dhm_read_params( &ctx_cli, &p, ske + ske_len ) == 0 ); + TEST_ASSERT(mbedtls_dhm_read_params(&ctx_cli, &p, ske + ske_len) == 0); /* The domain parameters must be the same on both side. */ - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_P, &ctx_srv.P ) ); - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_G, &ctx_srv.G ) ); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_P, &ctx_srv.P)); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_G, &ctx_srv.G)); - TEST_ASSERT( mbedtls_dhm_make_public( &ctx_cli, x_size, pub_cli, pub_cli_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_dhm_read_public( &ctx_srv, pub_cli, pub_cli_len ) == 0 ); + TEST_ASSERT(mbedtls_dhm_make_public(&ctx_cli, x_size, pub_cli, pub_cli_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_dhm_read_public(&ctx_srv, pub_cli, pub_cli_len) == 0); - TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, sizeof( sec_srv ), - &sec_srv_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_cli, sec_cli, sizeof( sec_cli ), - &sec_cli_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv, sizeof(sec_srv), + &sec_srv_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_cli, sec_cli, sizeof(sec_cli), + &sec_cli_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( sec_srv_len == sec_cli_len ); - TEST_ASSERT( sec_srv_len != 0 ); - TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 ); + TEST_ASSERT(sec_srv_len == sec_cli_len); + TEST_ASSERT(sec_srv_len != 0); + TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0); /* Internal value checks */ - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_X, &ctx_cli.X ) ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_X, &ctx_srv.X ) ); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_X, &ctx_cli.X)); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_X, &ctx_srv.X)); /* Cross-checks */ - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_GX, &ctx_srv.GY ) ); - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_GY, &ctx_srv.GX ) ); - TEST_ASSERT( check_get_value( &ctx_cli, MBEDTLS_DHM_PARAM_K, &ctx_srv.K ) ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_GX, &ctx_cli.GY ) ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_GY, &ctx_cli.GX ) ); - TEST_ASSERT( check_get_value( &ctx_srv, MBEDTLS_DHM_PARAM_K, &ctx_cli.K ) ); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_GX, &ctx_srv.GY)); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_GY, &ctx_srv.GX)); + TEST_ASSERT(check_get_value(&ctx_cli, MBEDTLS_DHM_PARAM_K, &ctx_srv.K)); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_GX, &ctx_cli.GY)); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_GY, &ctx_cli.GX)); + TEST_ASSERT(check_get_value(&ctx_srv, MBEDTLS_DHM_PARAM_K, &ctx_cli.K)); /* Re-do calc_secret on server a few times to test update of blinding values */ - for( i = 0; i < 3; i++ ) - { - mbedtls_test_set_step( 20 + i ); + for (i = 0; i < 3; i++) { + mbedtls_test_set_step(20 + i); sec_srv_len = 1000; - TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, - sizeof( sec_srv ), &sec_srv_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv, + sizeof(sec_srv), &sec_srv_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( sec_srv_len == sec_cli_len ); - TEST_ASSERT( sec_srv_len != 0 ); - TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 ); + TEST_ASSERT(sec_srv_len == sec_cli_len); + TEST_ASSERT(sec_srv_len != 0); + TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0); } /* @@ -190,98 +194,99 @@ void dhm_do_dhm( char *input_P, int x_size, */ p = ske; - mbedtls_test_set_step( 30 ); - TEST_ASSERT( mbedtls_dhm_make_params( &ctx_srv, x_size, ske, &ske_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - if( !check_dhm_params( &ctx_srv, x_size, ske, ske_len ) ) + mbedtls_test_set_step(30); + TEST_ASSERT(mbedtls_dhm_make_params(&ctx_srv, x_size, ske, &ske_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + if (!check_dhm_params(&ctx_srv, x_size, ske, ske_len)) { goto exit; + } ske[ske_len++] = 0; ske[ske_len++] = 0; - TEST_ASSERT( mbedtls_dhm_read_params( &ctx_cli, &p, ske + ske_len ) == 0 ); + TEST_ASSERT(mbedtls_dhm_read_params(&ctx_cli, &p, ske + ske_len) == 0); - TEST_ASSERT( mbedtls_dhm_make_public( &ctx_cli, x_size, pub_cli, pub_cli_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_dhm_read_public( &ctx_srv, pub_cli, pub_cli_len ) == 0 ); + TEST_ASSERT(mbedtls_dhm_make_public(&ctx_cli, x_size, pub_cli, pub_cli_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_dhm_read_public(&ctx_srv, pub_cli, pub_cli_len) == 0); - TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_srv, sec_srv, sizeof( sec_srv ), - &sec_srv_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_dhm_calc_secret( &ctx_cli, sec_cli, sizeof( sec_cli ), - &sec_cli_len, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_srv, sec_srv, sizeof(sec_srv), + &sec_srv_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_dhm_calc_secret(&ctx_cli, sec_cli, sizeof(sec_cli), + &sec_cli_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( sec_srv_len == sec_cli_len ); - TEST_ASSERT( sec_srv_len != 0 ); - TEST_ASSERT( memcmp( sec_srv, sec_cli, sec_srv_len ) == 0 ); + TEST_ASSERT(sec_srv_len == sec_cli_len); + TEST_ASSERT(sec_srv_len != 0); + TEST_ASSERT(memcmp(sec_srv, sec_cli, sec_srv_len) == 0); exit: - mbedtls_dhm_free( &ctx_srv ); - mbedtls_dhm_free( &ctx_cli ); + mbedtls_dhm_free(&ctx_srv); + mbedtls_dhm_free(&ctx_cli); } /* END_CASE */ /* BEGIN_CASE */ -void dhm_make_public( int P_bytes, char *input_G, int result ) +void dhm_make_public(int P_bytes, char *input_G, int result) { mbedtls_mpi P, G; mbedtls_dhm_context ctx; unsigned char output[MBEDTLS_MPI_MAX_SIZE]; - mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &G ); - mbedtls_dhm_init( &ctx ); + mbedtls_mpi_init(&P); + mbedtls_mpi_init(&G); + mbedtls_dhm_init(&ctx); - TEST_ASSERT( mbedtls_mpi_lset( &P, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_shift_l( &P, ( P_bytes * 8 ) - 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_set_bit( &P, 0, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_lset(&P, 1) == 0); + TEST_ASSERT(mbedtls_mpi_shift_l(&P, (P_bytes * 8) - 1) == 0); + TEST_ASSERT(mbedtls_mpi_set_bit(&P, 0, 1) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &G, input_G ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&G, input_G) == 0); - TEST_ASSERT( mbedtls_dhm_set_group( &ctx, &P, &G ) == 0 ); - TEST_ASSERT( mbedtls_dhm_make_public( &ctx, (int) mbedtls_mpi_size( &P ), - output, sizeof(output), - &mbedtls_test_rnd_pseudo_rand, - NULL ) == result ); + TEST_ASSERT(mbedtls_dhm_set_group(&ctx, &P, &G) == 0); + TEST_ASSERT(mbedtls_dhm_make_public(&ctx, (int) mbedtls_mpi_size(&P), + output, sizeof(output), + &mbedtls_test_rnd_pseudo_rand, + NULL) == result); exit: - mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &G ); - mbedtls_dhm_free( &ctx ); + mbedtls_mpi_free(&P); + mbedtls_mpi_free(&G); + mbedtls_dhm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void dhm_file( char * filename, char * p, char * g, int len ) +void dhm_file(char *filename, char *p, char *g, int len) { mbedtls_dhm_context ctx; mbedtls_mpi P, G; - mbedtls_dhm_init( &ctx ); - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &G ); + mbedtls_dhm_init(&ctx); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&G); - TEST_ASSERT( mbedtls_test_read_mpi( &P, p ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &G, g ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, p) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&G, g) == 0); - TEST_ASSERT( mbedtls_dhm_parse_dhmfile( &ctx, filename ) == 0 ); + TEST_ASSERT(mbedtls_dhm_parse_dhmfile(&ctx, filename) == 0); - TEST_EQUAL( mbedtls_dhm_get_len( &ctx ), (size_t) len ); - TEST_EQUAL( mbedtls_dhm_get_bitlen( &ctx ), mbedtls_mpi_bitlen( &P ) ); - TEST_ASSERT( check_get_value( &ctx, MBEDTLS_DHM_PARAM_P, &P ) ); - TEST_ASSERT( check_get_value( &ctx, MBEDTLS_DHM_PARAM_G, &G ) ); + TEST_EQUAL(mbedtls_dhm_get_len(&ctx), (size_t) len); + TEST_EQUAL(mbedtls_dhm_get_bitlen(&ctx), mbedtls_mpi_bitlen(&P)); + TEST_ASSERT(check_get_value(&ctx, MBEDTLS_DHM_PARAM_P, &P)); + TEST_ASSERT(check_get_value(&ctx, MBEDTLS_DHM_PARAM_G, &G)); exit: - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &G ); - mbedtls_dhm_free( &ctx ); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&G); + mbedtls_dhm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void dhm_selftest( ) +void dhm_selftest() { - TEST_ASSERT( mbedtls_dhm_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_dhm_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_ecdh.function b/tests/suites/test_suite_ecdh.function index 515a974c6..cc193dacc 100644 --- a/tests/suites/test_suite_ecdh.function +++ b/tests/suites/test_suite_ecdh.function @@ -1,39 +1,39 @@ /* BEGIN_HEADER */ #include "mbedtls/ecdh.h" -static int load_public_key( int grp_id, data_t *point, - mbedtls_ecp_keypair *ecp ) +static int load_public_key(int grp_id, data_t *point, + mbedtls_ecp_keypair *ecp) { int ok = 0; - TEST_ASSERT( mbedtls_ecp_group_load( &ecp->grp, grp_id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_binary( &ecp->grp, - &ecp->Q, - point->x, - point->len ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &ecp->grp, - &ecp->Q ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&ecp->grp, grp_id) == 0); + TEST_ASSERT(mbedtls_ecp_point_read_binary(&ecp->grp, + &ecp->Q, + point->x, + point->len) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&ecp->grp, + &ecp->Q) == 0); ok = 1; exit: - return( ok ); + return ok; } -static int load_private_key( int grp_id, data_t *private_key, - mbedtls_ecp_keypair *ecp, - mbedtls_test_rnd_pseudo_info *rnd_info ) +static int load_private_key(int grp_id, data_t *private_key, + mbedtls_ecp_keypair *ecp, + mbedtls_test_rnd_pseudo_info *rnd_info) { int ok = 0; - TEST_ASSERT( mbedtls_ecp_read_key( grp_id, ecp, - private_key->x, - private_key->len ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_privkey( &ecp->grp, &ecp->d ) == 0 ); + TEST_ASSERT(mbedtls_ecp_read_key(grp_id, ecp, + private_key->x, + private_key->len) == 0); + TEST_ASSERT(mbedtls_ecp_check_privkey(&ecp->grp, &ecp->d) == 0); /* Calculate the public key from the private key. */ - TEST_ASSERT( mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, - &ecp->grp.G, - &mbedtls_test_rnd_pseudo_rand, - rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&ecp->grp, &ecp->Q, &ecp->d, + &ecp->grp.G, + &mbedtls_test_rnd_pseudo_rand, + rnd_info) == 0); ok = 1; exit: - return( ok ); + return ok; } /* END_HEADER */ @@ -44,18 +44,18 @@ exit: */ /* BEGIN_CASE */ -void ecdh_invalid_param( ) +void ecdh_invalid_param() { mbedtls_ecdh_context ctx; mbedtls_ecp_keypair kp; int invalid_side = 42; - mbedtls_ecdh_init( &ctx ); - mbedtls_ecp_keypair_init( &kp ); + mbedtls_ecdh_init(&ctx); + mbedtls_ecp_keypair_init(&kp); - TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, - mbedtls_ecdh_get_params( &ctx, &kp, - invalid_side ) ); + TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA, + mbedtls_ecdh_get_params(&ctx, &kp, + invalid_side)); exit: return; @@ -63,48 +63,48 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void ecdh_primitive_random( int id ) +void ecdh_primitive_random(int id) { mbedtls_ecp_group grp; mbedtls_ecp_point qA, qB; mbedtls_mpi dA, dB, zA, zB; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &qA ); mbedtls_ecp_point_init( &qB ); - mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &dB ); - mbedtls_mpi_init( &zA ); mbedtls_mpi_init( &zB ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&qA); mbedtls_ecp_point_init(&qB); + mbedtls_mpi_init(&dA); mbedtls_mpi_init(&dB); + mbedtls_mpi_init(&zA); mbedtls_mpi_init(&zB); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dA, &qA, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dB, &qB, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zA, &qB, &dA, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zB, &qA, &dB, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dA, &qA, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dB, &qB, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zA, &qB, &dA, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zB, &qA, &dB, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zA, &zB ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zA, &zB) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &qA ); mbedtls_ecp_point_free( &qB ); - mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &dB ); - mbedtls_mpi_free( &zA ); mbedtls_mpi_free( &zB ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&qA); mbedtls_ecp_point_free(&qB); + mbedtls_mpi_free(&dA); mbedtls_mpi_free(&dB); + mbedtls_mpi_free(&zA); mbedtls_mpi_free(&zB); } /* END_CASE */ /* BEGIN_CASE */ -void ecdh_primitive_testvec( int id, data_t * rnd_buf_A, char * xA_str, - char * yA_str, data_t * rnd_buf_B, - char * xB_str, char * yB_str, char * z_str ) +void ecdh_primitive_testvec(int id, data_t *rnd_buf_A, char *xA_str, + char *yA_str, data_t *rnd_buf_B, + char *xB_str, char *yB_str, char *z_str) { mbedtls_ecp_group grp; mbedtls_ecp_point qA, qB; @@ -112,13 +112,13 @@ void ecdh_primitive_testvec( int id, data_t * rnd_buf_A, char * xA_str, mbedtls_test_rnd_buf_info rnd_info_A, rnd_info_B; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &qA ); mbedtls_ecp_point_init( &qB ); - mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &dB ); - mbedtls_mpi_init( &zA ); mbedtls_mpi_init( &zB ); mbedtls_mpi_init( &check ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&qA); mbedtls_ecp_point_init(&qB); + mbedtls_mpi_init(&dA); mbedtls_mpi_init(&dB); + mbedtls_mpi_init(&zA); mbedtls_mpi_init(&zB); mbedtls_mpi_init(&check); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); rnd_info_A.buf = rnd_buf_A->x; rnd_info_A.length = rnd_buf_A->len; @@ -126,14 +126,14 @@ void ecdh_primitive_testvec( int id, data_t * rnd_buf_A, char * xA_str, rnd_info_A.fallback_p_rng = NULL; /* Fix rnd_buf_A->x by shifting it left if necessary */ - if( grp.nbits % 8 != 0 ) - { - unsigned char shift = 8 - ( grp.nbits % 8 ); + if (grp.nbits % 8 != 0) { + unsigned char shift = 8 - (grp.nbits % 8); size_t i; - for( i = 0; i < rnd_info_A.length - 1; i++ ) + for (i = 0; i < rnd_info_A.length - 1; i++) { rnd_buf_A->x[i] = rnd_buf_A->x[i] << shift - | rnd_buf_A->x[i+1] >> ( 8 - shift ); + | rnd_buf_A->x[i+1] >> (8 - shift); + } rnd_buf_A->x[rnd_info_A.length-1] <<= shift; } @@ -144,56 +144,56 @@ void ecdh_primitive_testvec( int id, data_t * rnd_buf_A, char * xA_str, rnd_info_B.fallback_p_rng = NULL; /* Fix rnd_buf_B->x by shifting it left if necessary */ - if( grp.nbits % 8 != 0 ) - { - unsigned char shift = 8 - ( grp.nbits % 8 ); + if (grp.nbits % 8 != 0) { + unsigned char shift = 8 - (grp.nbits % 8); size_t i; - for( i = 0; i < rnd_info_B.length - 1; i++ ) + for (i = 0; i < rnd_info_B.length - 1; i++) { rnd_buf_B->x[i] = rnd_buf_B->x[i] << shift - | rnd_buf_B->x[i+1] >> ( 8 - shift ); + | rnd_buf_B->x[i+1] >> (8 - shift); + } rnd_buf_B->x[rnd_info_B.length-1] <<= shift; } - TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dA, &qA, - mbedtls_test_rnd_buffer_rand, - &rnd_info_A ) == 0 ); - TEST_ASSERT( ! mbedtls_ecp_is_zero( &qA ) ); - TEST_ASSERT( mbedtls_test_read_mpi( &check, xA_str ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qA.X, &check ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &check, yA_str ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qA.Y, &check ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dA, &qA, + mbedtls_test_rnd_buffer_rand, + &rnd_info_A) == 0); + TEST_ASSERT(!mbedtls_ecp_is_zero(&qA)); + TEST_ASSERT(mbedtls_test_read_mpi(&check, xA_str) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qA.X, &check) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&check, yA_str) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qA.Y, &check) == 0); - TEST_ASSERT( mbedtls_ecdh_gen_public( &grp, &dB, &qB, - mbedtls_test_rnd_buffer_rand, - &rnd_info_B ) == 0 ); - TEST_ASSERT( ! mbedtls_ecp_is_zero( &qB ) ); - TEST_ASSERT( mbedtls_test_read_mpi( &check, xB_str ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qB.X, &check ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &check, yB_str ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &qB.Y, &check ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_gen_public(&grp, &dB, &qB, + mbedtls_test_rnd_buffer_rand, + &rnd_info_B) == 0); + TEST_ASSERT(!mbedtls_ecp_is_zero(&qB)); + TEST_ASSERT(mbedtls_test_read_mpi(&check, xB_str) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qB.X, &check) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&check, yB_str) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&qB.Y, &check) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &check, z_str ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zA, &qB, &dA, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zA, &check ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_compute_shared( &grp, &zB, &qA, &dB, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &zB, &check ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&check, z_str) == 0); + TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zA, &qB, &dA, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zA, &check) == 0); + TEST_ASSERT(mbedtls_ecdh_compute_shared(&grp, &zB, &qA, &dB, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&zB, &check) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &qA ); mbedtls_ecp_point_free( &qB ); - mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &dB ); - mbedtls_mpi_free( &zA ); mbedtls_mpi_free( &zB ); mbedtls_mpi_free( &check ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&qA); mbedtls_ecp_point_free(&qB); + mbedtls_mpi_free(&dA); mbedtls_mpi_free(&dB); + mbedtls_mpi_free(&zA); mbedtls_mpi_free(&zB); mbedtls_mpi_free(&check); } /* END_CASE */ /* BEGIN_CASE */ -void ecdh_exchange( int id ) +void ecdh_exchange(int id) { mbedtls_ecdh_context srv, cli; unsigned char buf[1000]; @@ -203,42 +203,42 @@ void ecdh_exchange( int id ) unsigned char res_buf[1000]; size_t res_len; - mbedtls_ecdh_init( &srv ); - mbedtls_ecdh_init( &cli ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecdh_init(&srv); + mbedtls_ecdh_init(&cli); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecdh_setup( &srv, id ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_setup(&srv, id) == 0); - memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; - TEST_ASSERT( mbedtls_ecdh_make_params( &srv, &len, buf, 1000, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_read_params( &cli, &vbuf, buf + len ) == 0 ); + memset(buf, 0x00, sizeof(buf)); vbuf = buf; + TEST_ASSERT(mbedtls_ecdh_make_params(&srv, &len, buf, 1000, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_read_params(&cli, &vbuf, buf + len) == 0); - memset( buf, 0x00, sizeof( buf ) ); - TEST_ASSERT( mbedtls_ecdh_make_public( &cli, &len, buf, 1000, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_read_public( &srv, buf, len ) == 0 ); + memset(buf, 0x00, sizeof(buf)); + TEST_ASSERT(mbedtls_ecdh_make_public(&cli, &len, buf, 1000, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_read_public(&srv, buf, len) == 0); - TEST_ASSERT( mbedtls_ecdh_calc_secret( &srv, &len, buf, 1000, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_calc_secret( &cli, &res_len, res_buf, 1000, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( len == res_len ); - TEST_ASSERT( memcmp( buf, res_buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_calc_secret(&srv, &len, buf, 1000, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdh_calc_secret(&cli, &res_len, res_buf, 1000, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(len == res_len); + TEST_ASSERT(memcmp(buf, res_buf, len) == 0); exit: - mbedtls_ecdh_free( &srv ); - mbedtls_ecdh_free( &cli ); + mbedtls_ecdh_free(&srv); + mbedtls_ecdh_free(&cli); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */ -void ecdh_restart( int id, data_t *dA, data_t *dB, data_t *z, - int enable, int max_ops, int min_restart, int max_restart ) +void ecdh_restart(int id, data_t *dA, data_t *dB, data_t *z, + int enable, int max_ops, int min_restart, int max_restart) { int ret; mbedtls_ecdh_context srv, cli; @@ -250,10 +250,10 @@ void ecdh_restart( int id, data_t *dA, data_t *dB, data_t *z, int cnt_restart; mbedtls_ecp_group grp; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecdh_init( &srv ); - mbedtls_ecdh_init( &cli ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecdh_init(&srv); + mbedtls_ecdh_init(&cli); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); rnd_info_A.fallback_f_rng = mbedtls_test_rnd_std_rand; rnd_info_A.fallback_p_rng = NULL; @@ -267,109 +267,108 @@ void ecdh_restart( int id, data_t *dA, data_t *dB, data_t *z, /* The ECDH context is not guaranteed to have an mbedtls_ecp_group structure * in every configuration, therefore we load it separately. */ - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); /* Otherwise we would have to fix the random buffer, * as in ecdh_primitive_testvec. */ - TEST_ASSERT( grp.nbits % 8 == 0 ); + TEST_ASSERT(grp.nbits % 8 == 0); - TEST_ASSERT( mbedtls_ecdh_setup( &srv, id ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_setup(&srv, id) == 0); /* set up restart parameters */ - mbedtls_ecp_set_max_ops( max_ops ); + mbedtls_ecp_set_max_ops(max_ops); - if( enable ) - { - mbedtls_ecdh_enable_restart( &srv ); - mbedtls_ecdh_enable_restart( &cli ); + if (enable) { + mbedtls_ecdh_enable_restart(&srv); + mbedtls_ecdh_enable_restart(&cli); } /* server writes its parameters */ - memset( buf, 0x00, sizeof( buf ) ); + memset(buf, 0x00, sizeof(buf)); len = 0; cnt_restart = 0; do { - ret = mbedtls_ecdh_make_params( &srv, &len, buf, sizeof( buf ), - mbedtls_test_rnd_buffer_rand, - &rnd_info_A ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdh_make_params(&srv, &len, buf, sizeof(buf), + mbedtls_test_rnd_buffer_rand, + &rnd_info_A); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); /* client read server params */ vbuf = buf; - TEST_ASSERT( mbedtls_ecdh_read_params( &cli, &vbuf, buf + len ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_read_params(&cli, &vbuf, buf + len) == 0); /* client writes its key share */ - memset( buf, 0x00, sizeof( buf ) ); + memset(buf, 0x00, sizeof(buf)); len = 0; cnt_restart = 0; do { - ret = mbedtls_ecdh_make_public( &cli, &len, buf, sizeof( buf ), - mbedtls_test_rnd_buffer_rand, - &rnd_info_B ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdh_make_public(&cli, &len, buf, sizeof(buf), + mbedtls_test_rnd_buffer_rand, + &rnd_info_B); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); /* server reads client key share */ - TEST_ASSERT( mbedtls_ecdh_read_public( &srv, buf, len ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_read_public(&srv, buf, len) == 0); /* server computes shared secret */ - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); len = 0; cnt_restart = 0; do { - ret = mbedtls_ecdh_calc_secret( &srv, &len, buf, sizeof( buf ), - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdh_calc_secret(&srv, &len, buf, sizeof(buf), + &mbedtls_test_rnd_pseudo_rand, + &rnd_info); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); - TEST_ASSERT( len == z->len ); - TEST_ASSERT( memcmp( buf, z->x, len ) == 0 ); + TEST_ASSERT(len == z->len); + TEST_ASSERT(memcmp(buf, z->x, len) == 0); /* client computes shared secret */ - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); len = 0; cnt_restart = 0; do { - ret = mbedtls_ecdh_calc_secret( &cli, &len, buf, sizeof( buf ), - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdh_calc_secret(&cli, &len, buf, sizeof(buf), + &mbedtls_test_rnd_pseudo_rand, + &rnd_info); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); - TEST_ASSERT( len == z->len ); - TEST_ASSERT( memcmp( buf, z->x, len ) == 0 ); + TEST_ASSERT(len == z->len); + TEST_ASSERT(memcmp(buf, z->x, len) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecdh_free( &srv ); - mbedtls_ecdh_free( &cli ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecdh_free(&srv); + mbedtls_ecdh_free(&cli); } /* END_CASE */ /* BEGIN_CASE */ -void ecdh_exchange_calc_secret( int grp_id, - data_t *our_private_key, - data_t *their_point, - int ours_first, - data_t *expected ) +void ecdh_exchange_calc_secret(int grp_id, + data_t *our_private_key, + data_t *their_point, + int ours_first, + data_t *expected) { mbedtls_test_rnd_pseudo_info rnd_info; mbedtls_ecp_keypair our_key; @@ -378,92 +377,90 @@ void ecdh_exchange_calc_secret( int grp_id, unsigned char shared_secret[MBEDTLS_ECP_MAX_BYTES]; size_t shared_secret_length = 0; - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - mbedtls_ecdh_init( &ecdh ); - mbedtls_ecp_keypair_init( &our_key ); - mbedtls_ecp_keypair_init( &their_key ); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + mbedtls_ecdh_init(&ecdh); + mbedtls_ecp_keypair_init(&our_key); + mbedtls_ecp_keypair_init(&their_key); - if( ! load_private_key( grp_id, our_private_key, &our_key, &rnd_info ) ) + if (!load_private_key(grp_id, our_private_key, &our_key, &rnd_info)) { goto exit; - if( ! load_public_key( grp_id, their_point, &their_key ) ) + } + if (!load_public_key(grp_id, their_point, &their_key)) { goto exit; + } /* Import the keys to the ECDH calculation. */ - if( ours_first ) - { - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 ); - } - else - { - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 ); + if (ours_first) { + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0); + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0); + } else { + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0); + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0); } /* Perform the ECDH calculation. */ - TEST_ASSERT( mbedtls_ecdh_calc_secret( - &ecdh, - &shared_secret_length, - shared_secret, sizeof( shared_secret ), - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( shared_secret_length == expected->len ); - TEST_ASSERT( memcmp( expected->x, shared_secret, - shared_secret_length ) == 0 ); + TEST_ASSERT(mbedtls_ecdh_calc_secret( + &ecdh, + &shared_secret_length, + shared_secret, sizeof(shared_secret), + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(shared_secret_length == expected->len); + TEST_ASSERT(memcmp(expected->x, shared_secret, + shared_secret_length) == 0); exit: - mbedtls_ecdh_free( &ecdh ); - mbedtls_ecp_keypair_free( &our_key ); - mbedtls_ecp_keypair_free( &their_key ); + mbedtls_ecdh_free(&ecdh); + mbedtls_ecp_keypair_free(&our_key); + mbedtls_ecp_keypair_free(&their_key); } /* END_CASE */ /* BEGIN_CASE */ -void ecdh_exchange_get_params_fail( int our_grp_id, - data_t *our_private_key, - int their_grp_id, - data_t *their_point, - int ours_first, - int expected_ret ) +void ecdh_exchange_get_params_fail(int our_grp_id, + data_t *our_private_key, + int their_grp_id, + data_t *their_point, + int ours_first, + int expected_ret) { mbedtls_test_rnd_pseudo_info rnd_info; mbedtls_ecp_keypair our_key; mbedtls_ecp_keypair their_key; mbedtls_ecdh_context ecdh; - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - mbedtls_ecdh_init( &ecdh ); - mbedtls_ecp_keypair_init( &our_key ); - mbedtls_ecp_keypair_init( &their_key ); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + mbedtls_ecdh_init(&ecdh); + mbedtls_ecp_keypair_init(&our_key); + mbedtls_ecp_keypair_init(&their_key); - if( ! load_private_key( our_grp_id, our_private_key, &our_key, &rnd_info ) ) + if (!load_private_key(our_grp_id, our_private_key, &our_key, &rnd_info)) { goto exit; - if( ! load_public_key( their_grp_id, their_point, &their_key ) ) - goto exit; - - if( ours_first ) - { - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &our_key, MBEDTLS_ECDH_OURS ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == - expected_ret ); } - else - { - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &their_key, MBEDTLS_ECDH_THEIRS ) == 0 ); - TEST_ASSERT( mbedtls_ecdh_get_params( - &ecdh, &our_key, MBEDTLS_ECDH_OURS ) == - expected_ret ); + if (!load_public_key(their_grp_id, their_point, &their_key)) { + goto exit; + } + + if (ours_first) { + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &our_key, MBEDTLS_ECDH_OURS) == 0); + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == + expected_ret); + } else { + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &their_key, MBEDTLS_ECDH_THEIRS) == 0); + TEST_ASSERT(mbedtls_ecdh_get_params( + &ecdh, &our_key, MBEDTLS_ECDH_OURS) == + expected_ret); } exit: - mbedtls_ecdh_free( &ecdh ); - mbedtls_ecp_keypair_free( &our_key ); - mbedtls_ecp_keypair_free( &their_key ); + mbedtls_ecdh_free(&ecdh); + mbedtls_ecp_keypair_free(&our_key); + mbedtls_ecp_keypair_free(&their_key); } /* END_CASE */ diff --git a/tests/suites/test_suite_ecdsa.function b/tests/suites/test_suite_ecdsa.function index 0e2ac92c7..539c39d43 100644 --- a/tests/suites/test_suite_ecdsa.function +++ b/tests/suites/test_suite_ecdsa.function @@ -2,8 +2,8 @@ #include "mbedtls/ecdsa.h" #include "hash_info.h" #include "mbedtls/legacy_or_psa.h" -#if ( defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_SHA256_C) ) || \ - ( !defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA) ) +#if (defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_SHA256_C)) || \ + (!defined(MBEDTLS_ECDSA_DETERMINISTIC) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_LOWLEVEL_OR_PSA)) #define MBEDTLS_HAS_ALG_SHA_256_VIA_MD_IF_DETERMINISTIC #endif /* END_HEADER */ @@ -14,7 +14,7 @@ */ /* BEGIN_CASE */ -void ecdsa_prim_zero( int id ) +void ecdsa_prim_zero(int id) { mbedtls_ecp_group grp; mbedtls_ecp_point Q; @@ -22,31 +22,31 @@ void ecdsa_prim_zero( int id ) mbedtls_test_rnd_pseudo_info rnd_info; unsigned char buf[MBEDTLS_HASH_MAX_SIZE]; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &Q ); - mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( buf, 0, sizeof( buf ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&Q); + mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(buf, 0, sizeof(buf)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_gen_keypair( &grp, &d, &Q, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_ecp_gen_keypair(&grp, &d, &Q, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( mbedtls_ecdsa_sign( &grp, &r, &s, &d, buf, sizeof( buf ), - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdsa_verify( &grp, buf, sizeof( buf ), &Q, &r, &s ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, buf, sizeof(buf), + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdsa_verify(&grp, buf, sizeof(buf), &Q, &r, &s) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &Q ); - mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&Q); + mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s); } /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_prim_random( int id ) +void ecdsa_prim_random(int id) { mbedtls_ecp_group grp; mbedtls_ecp_point Q; @@ -54,184 +54,183 @@ void ecdsa_prim_random( int id ) mbedtls_test_rnd_pseudo_info rnd_info; unsigned char buf[MBEDTLS_HASH_MAX_SIZE]; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &Q ); - mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( buf, 0, sizeof( buf ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&Q); + mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(buf, 0, sizeof(buf)); /* prepare material for signature */ - TEST_ASSERT( mbedtls_test_rnd_pseudo_rand( &rnd_info, - buf, sizeof( buf ) ) == 0 ); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_gen_keypair( &grp, &d, &Q, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_test_rnd_pseudo_rand(&rnd_info, + buf, sizeof(buf)) == 0); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_ecp_gen_keypair(&grp, &d, &Q, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( mbedtls_ecdsa_sign( &grp, &r, &s, &d, buf, sizeof( buf ), - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdsa_verify( &grp, buf, sizeof( buf ), &Q, &r, &s ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, buf, sizeof(buf), + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdsa_verify(&grp, buf, sizeof(buf), &Q, &r, &s) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &Q ); - mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&Q); + mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s); } /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_prim_test_vectors( int id, char * d_str, char * xQ_str, - char * yQ_str, data_t * rnd_buf, - data_t * hash, char * r_str, char * s_str, - int result ) +void ecdsa_prim_test_vectors(int id, char *d_str, char *xQ_str, + char *yQ_str, data_t *rnd_buf, + data_t *hash, char *r_str, char *s_str, + int result) { mbedtls_ecp_group grp; mbedtls_ecp_point Q; mbedtls_mpi d, r, s, r_check, s_check, zero; mbedtls_test_rnd_buf_info rnd_info; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &Q ); - mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s ); - mbedtls_mpi_init( &r_check ); mbedtls_mpi_init( &s_check ); - mbedtls_mpi_init( &zero ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&Q); + mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); + mbedtls_mpi_init(&r_check); mbedtls_mpi_init(&s_check); + mbedtls_mpi_init(&zero); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_string( &Q, 16, xQ_str, yQ_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &d, d_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &r_check, r_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &s_check, s_str ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_ecp_point_read_string(&Q, 16, xQ_str, yQ_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&d, d_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&r_check, r_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&s_check, s_str) == 0); rnd_info.fallback_f_rng = mbedtls_test_rnd_std_rand; rnd_info.fallback_p_rng = NULL; rnd_info.buf = rnd_buf->x; rnd_info.length = rnd_buf->len; /* Fix rnd_buf->x by shifting it left if necessary */ - if( grp.nbits % 8 != 0 ) - { - unsigned char shift = 8 - ( grp.nbits % 8 ); + if (grp.nbits % 8 != 0) { + unsigned char shift = 8 - (grp.nbits % 8); size_t i; - for( i = 0; i < rnd_info.length - 1; i++ ) - rnd_buf->x[i] = rnd_buf->x[i] << shift | rnd_buf->x[i+1] >> ( 8 - shift ); + for (i = 0; i < rnd_info.length - 1; i++) { + rnd_buf->x[i] = rnd_buf->x[i] << shift | rnd_buf->x[i+1] >> (8 - shift); + } rnd_buf->x[rnd_info.length-1] <<= shift; } - TEST_ASSERT( mbedtls_ecdsa_sign( &grp, &r, &s, &d, hash->x, hash->len, - mbedtls_test_rnd_buffer_rand, &rnd_info ) == result ); + TEST_ASSERT(mbedtls_ecdsa_sign(&grp, &r, &s, &d, hash->x, hash->len, + mbedtls_test_rnd_buffer_rand, &rnd_info) == result); - if ( result == 0) - { + if (result == 0) { /* Check we generated the expected values */ - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &r, &r_check ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &s, &s_check ), 0 ); + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&r, &r_check), 0); + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&s, &s_check), 0); /* Valid signature */ - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, - &Q, &r_check, &s_check ), 0 ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, + &Q, &r_check, &s_check), 0); /* Invalid signature: wrong public key (G instead of Q) */ - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, - &grp.G, &r_check, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, + &grp.G, &r_check, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); /* Invalid signatures: r or s or both one off */ - TEST_EQUAL( mbedtls_mpi_sub_int( &r, &r_check, 1 ), 0 ); - TEST_EQUAL( mbedtls_mpi_add_int( &s, &s_check, 1 ), 0 ); + TEST_EQUAL(mbedtls_mpi_sub_int(&r, &r_check, 1), 0); + TEST_EQUAL(mbedtls_mpi_add_int(&s, &s_check, 1), 0); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r_check, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); /* Invalid signatures: r, s or both (CVE-2022-21449) are zero */ - TEST_EQUAL( mbedtls_mpi_lset( &zero, 0 ), 0 ); + TEST_EQUAL(mbedtls_mpi_lset(&zero, 0), 0); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &zero, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r_check, &zero ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &zero, &zero ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &zero, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r_check, &zero), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &zero, &zero), MBEDTLS_ERR_ECP_VERIFY_FAILED); /* Invalid signatures: r, s or both are == N */ - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &grp.N, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r_check, &grp.N ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &grp.N, &grp.N ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &grp.N, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r_check, &grp.N), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &grp.N, &grp.N), MBEDTLS_ERR_ECP_VERIFY_FAILED); /* Invalid signatures: r, s or both are negative */ - TEST_EQUAL( mbedtls_mpi_sub_mpi( &r, &r_check, &grp.N ), 0 ); - TEST_EQUAL( mbedtls_mpi_sub_mpi( &s, &s_check, &grp.N ), 0 ); + TEST_EQUAL(mbedtls_mpi_sub_mpi(&r, &r_check, &grp.N), 0); + TEST_EQUAL(mbedtls_mpi_sub_mpi(&s, &s_check, &grp.N), 0); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r_check, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); /* Invalid signatures: r or s or both are > N */ - TEST_EQUAL( mbedtls_mpi_add_mpi( &r, &r_check, &grp.N ), 0 ); - TEST_EQUAL( mbedtls_mpi_add_mpi( &s, &s_check, &grp.N ), 0 ); + TEST_EQUAL(mbedtls_mpi_add_mpi(&r, &r_check, &grp.N), 0); + TEST_EQUAL(mbedtls_mpi_add_mpi(&s, &s_check, &grp.N), 0); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s_check ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r_check, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); - TEST_EQUAL( mbedtls_ecdsa_verify( &grp, hash->x, hash->len, &Q, - &r, &s ), MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s_check), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r_check, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); + TEST_EQUAL(mbedtls_ecdsa_verify(&grp, hash->x, hash->len, &Q, + &r, &s), MBEDTLS_ERR_ECP_VERIFY_FAILED); } exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &Q ); - mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s ); - mbedtls_mpi_free( &r_check ); mbedtls_mpi_free( &s_check ); - mbedtls_mpi_free( &zero ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&Q); + mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s); + mbedtls_mpi_free(&r_check); mbedtls_mpi_free(&s_check); + mbedtls_mpi_free(&zero); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECDSA_DETERMINISTIC */ -void ecdsa_det_test_vectors( int id, char * d_str, int md_alg, data_t * hash, - char * r_str, char * s_str ) +void ecdsa_det_test_vectors(int id, char *d_str, int md_alg, data_t *hash, + char *r_str, char *s_str) { mbedtls_ecp_group grp; mbedtls_mpi d, r, s, r_check, s_check; - mbedtls_ecp_group_init( &grp ); - mbedtls_mpi_init( &d ); mbedtls_mpi_init( &r ); mbedtls_mpi_init( &s ); - mbedtls_mpi_init( &r_check ); mbedtls_mpi_init( &s_check ); + mbedtls_ecp_group_init(&grp); + mbedtls_mpi_init(&d); mbedtls_mpi_init(&r); mbedtls_mpi_init(&s); + mbedtls_mpi_init(&r_check); mbedtls_mpi_init(&s_check); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &d, d_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &r_check, r_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &s_check, s_str ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&d, d_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&r_check, r_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&s_check, s_str) == 0); TEST_ASSERT( - mbedtls_ecdsa_sign_det_ext( &grp, &r, &s, &d, - hash->x, hash->len, md_alg, - mbedtls_test_rnd_std_rand, - NULL ) - == 0 ); + mbedtls_ecdsa_sign_det_ext(&grp, &r, &s, &d, + hash->x, hash->len, md_alg, + mbedtls_test_rnd_std_rand, + NULL) + == 0); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &r, &r_check ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &s, &s_check ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&r, &r_check) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&s, &s_check) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_mpi_free( &d ); mbedtls_mpi_free( &r ); mbedtls_mpi_free( &s ); - mbedtls_mpi_free( &r_check ); mbedtls_mpi_free( &s_check ); + mbedtls_ecp_group_free(&grp); + mbedtls_mpi_free(&d); mbedtls_mpi_free(&r); mbedtls_mpi_free(&s); + mbedtls_mpi_free(&r_check); mbedtls_mpi_free(&s_check); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_IF_DETERMINISTIC */ -void ecdsa_write_read_zero( int id ) +void ecdsa_write_read_zero(int id) { mbedtls_ecdsa_context ctx; mbedtls_test_rnd_pseudo_info rnd_info; @@ -239,59 +238,61 @@ void ecdsa_write_read_zero( int id ) unsigned char sig[200]; size_t sig_len, i; - mbedtls_ecdsa_init( &ctx ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( hash, 0, sizeof( hash ) ); - memset( sig, 0x2a, sizeof( sig ) ); + mbedtls_ecdsa_init(&ctx); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(hash, 0, sizeof(hash)); + memset(sig, 0x2a, sizeof(sig)); /* generate signing key */ - TEST_ASSERT( mbedtls_ecdsa_genkey( &ctx, id, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_genkey(&ctx, id, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); /* generate and write signature, then read and verify it */ - TEST_ASSERT( mbedtls_ecdsa_write_signature( &ctx, MBEDTLS_MD_SHA256, - hash, sizeof( hash ), - sig, sizeof( sig ), &sig_len, &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_write_signature(&ctx, MBEDTLS_MD_SHA256, + hash, sizeof(hash), + sig, sizeof(sig), &sig_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == 0); /* check we didn't write past the announced length */ - for( i = sig_len; i < sizeof( sig ); i++ ) - TEST_ASSERT( sig[i] == 0x2a ); + for (i = sig_len; i < sizeof(sig); i++) { + TEST_ASSERT(sig[i] == 0x2a); + } /* try verification with invalid length */ - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len - 1 ) != 0 ); - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len + 1 ) != 0 ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len - 1) != 0); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len + 1) != 0); /* try invalid sequence tag */ sig[0]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) != 0 ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) != 0); sig[0]--; /* try modifying r */ sig[10]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig[10]--; /* try modifying s */ sig[sig_len - 1]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig[sig_len - 1]--; exit: - mbedtls_ecdsa_free( &ctx ); + mbedtls_ecdsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_IF_DETERMINISTIC */ -void ecdsa_write_read_random( int id ) +void ecdsa_write_read_random(int id) { mbedtls_ecdsa_context ctx; mbedtls_test_rnd_pseudo_info rnd_info; @@ -299,127 +300,132 @@ void ecdsa_write_read_random( int id ) unsigned char sig[200]; size_t sig_len, i; - mbedtls_ecdsa_init( &ctx ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( hash, 0, sizeof( hash ) ); - memset( sig, 0x2a, sizeof( sig ) ); + mbedtls_ecdsa_init(&ctx); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(hash, 0, sizeof(hash)); + memset(sig, 0x2a, sizeof(sig)); /* prepare material for signature */ - TEST_ASSERT( mbedtls_test_rnd_pseudo_rand( &rnd_info, - hash, sizeof( hash ) ) == 0 ); + TEST_ASSERT(mbedtls_test_rnd_pseudo_rand(&rnd_info, + hash, sizeof(hash)) == 0); /* generate signing key */ - TEST_ASSERT( mbedtls_ecdsa_genkey( &ctx, id, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_genkey(&ctx, id, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); /* generate and write signature, then read and verify it */ - TEST_ASSERT( mbedtls_ecdsa_write_signature( &ctx, MBEDTLS_MD_SHA256, - hash, sizeof( hash ), - sig, sizeof( sig ), &sig_len, &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == 0 ); + TEST_ASSERT(mbedtls_ecdsa_write_signature(&ctx, MBEDTLS_MD_SHA256, + hash, sizeof(hash), + sig, sizeof(sig), &sig_len, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == 0); /* check we didn't write past the announced length */ - for( i = sig_len; i < sizeof( sig ); i++ ) - TEST_ASSERT( sig[i] == 0x2a ); + for (i = sig_len; i < sizeof(sig); i++) { + TEST_ASSERT(sig[i] == 0x2a); + } /* try verification with invalid length */ - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len - 1 ) != 0 ); - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len + 1 ) != 0 ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len - 1) != 0); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len + 1) != 0); /* try invalid sequence tag */ sig[0]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) != 0 ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) != 0); sig[0]--; /* try modifying r */ sig[10]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig[10]--; /* try modifying s */ sig[sig_len - 1]++; - TEST_ASSERT( mbedtls_ecdsa_read_signature( &ctx, hash, sizeof( hash ), - sig, sig_len ) == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + TEST_ASSERT(mbedtls_ecdsa_read_signature(&ctx, hash, sizeof(hash), + sig, sig_len) == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig[sig_len - 1]--; exit: - mbedtls_ecdsa_free( &ctx ); + mbedtls_ecdsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */ -void ecdsa_read_restart( int id, data_t *pk, data_t *hash, data_t *sig, - int max_ops, int min_restart, int max_restart ) +void ecdsa_read_restart(int id, data_t *pk, data_t *hash, data_t *sig, + int max_ops, int min_restart, int max_restart) { mbedtls_ecdsa_context ctx; mbedtls_ecdsa_restart_ctx rs_ctx; int ret, cnt_restart; - mbedtls_ecdsa_init( &ctx ); - mbedtls_ecdsa_restart_init( &rs_ctx ); + mbedtls_ecdsa_init(&ctx); + mbedtls_ecdsa_restart_init(&rs_ctx); - TEST_ASSERT( mbedtls_ecp_group_load( &ctx.grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_binary( &ctx.grp, &ctx.Q, - pk->x, pk->len ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&ctx.grp, id) == 0); + TEST_ASSERT(mbedtls_ecp_point_read_binary(&ctx.grp, &ctx.Q, + pk->x, pk->len) == 0); - mbedtls_ecp_set_max_ops( max_ops ); + mbedtls_ecp_set_max_ops(max_ops); cnt_restart = 0; do { - ret = mbedtls_ecdsa_read_signature_restartable( &ctx, - hash->x, hash->len, sig->x, sig->len, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdsa_read_signature_restartable(&ctx, + hash->x, hash->len, sig->x, sig->len, + &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); /* try modifying r */ - TEST_ASSERT( sig->len > 10 ); + TEST_ASSERT(sig->len > 10); sig->x[10]++; do { - ret = mbedtls_ecdsa_read_signature_restartable( &ctx, - hash->x, hash->len, sig->x, sig->len, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + ret = mbedtls_ecdsa_read_signature_restartable(&ctx, + hash->x, hash->len, sig->x, sig->len, + &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig->x[10]--; /* try modifying s */ sig->x[sig->len - 1]++; do { - ret = mbedtls_ecdsa_read_signature_restartable( &ctx, - hash->x, hash->len, sig->x, sig->len, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_VERIFY_FAILED ); + ret = mbedtls_ecdsa_read_signature_restartable(&ctx, + hash->x, hash->len, sig->x, sig->len, + &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_VERIFY_FAILED); sig->x[sig->len - 1]--; /* Do we leak memory when aborting an operation? * This test only makes sense when we actually restart */ - if( min_restart > 0 ) - { - ret = mbedtls_ecdsa_read_signature_restartable( &ctx, - hash->x, hash->len, sig->x, sig->len, &rs_ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + if (min_restart > 0) { + ret = mbedtls_ecdsa_read_signature_restartable(&ctx, + hash->x, hash->len, sig->x, sig->len, + &rs_ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); } exit: - mbedtls_ecdsa_free( &ctx ); - mbedtls_ecdsa_restart_free( &rs_ctx ); + mbedtls_ecdsa_free(&ctx); + mbedtls_ecdsa_restart_free(&rs_ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECDSA_DETERMINISTIC */ -void ecdsa_write_restart( int id, char *d_str, int md_alg, - data_t *hash, data_t *sig_check, - int max_ops, int min_restart, int max_restart ) +void ecdsa_write_restart(int id, char *d_str, int md_alg, + data_t *hash, data_t *sig_check, + int max_ops, int min_restart, int max_restart) { int ret, cnt_restart; mbedtls_ecdsa_restart_ctx rs_ctx; @@ -427,79 +433,92 @@ void ecdsa_write_restart( int id, char *d_str, int md_alg, unsigned char sig[MBEDTLS_ECDSA_MAX_LEN]; size_t slen; - mbedtls_ecdsa_restart_init( &rs_ctx ); - mbedtls_ecdsa_init( &ctx ); - memset( sig, 0, sizeof( sig ) ); + mbedtls_ecdsa_restart_init(&rs_ctx); + mbedtls_ecdsa_init(&ctx); + memset(sig, 0, sizeof(sig)); - TEST_ASSERT( mbedtls_ecp_group_load( &ctx.grp, id ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.d, d_str ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&ctx.grp, id) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.d, d_str) == 0); - mbedtls_ecp_set_max_ops( max_ops ); + mbedtls_ecp_set_max_ops(max_ops); - slen = sizeof( sig ); + slen = sizeof(sig); cnt_restart = 0; do { - ret = mbedtls_ecdsa_write_signature_restartable( &ctx, - md_alg, hash->x, hash->len, sig, sizeof( sig ), &slen, - mbedtls_test_rnd_std_rand, NULL, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_ecdsa_write_signature_restartable(&ctx, + md_alg, + hash->x, + hash->len, + sig, + sizeof(sig), + &slen, + mbedtls_test_rnd_std_rand, + NULL, + &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( slen == sig_check->len ); - TEST_ASSERT( memcmp( sig, sig_check->x, slen ) == 0 ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(slen == sig_check->len); + TEST_ASSERT(memcmp(sig, sig_check->x, slen) == 0); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); /* Do we leak memory when aborting an operation? * This test only makes sense when we actually restart */ - if( min_restart > 0 ) - { - ret = mbedtls_ecdsa_write_signature_restartable( &ctx, - md_alg, hash->x, hash->len, sig, sizeof( sig ), &slen, - mbedtls_test_rnd_std_rand, NULL, &rs_ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + if (min_restart > 0) { + ret = mbedtls_ecdsa_write_signature_restartable(&ctx, + md_alg, + hash->x, + hash->len, + sig, + sizeof(sig), + &slen, + mbedtls_test_rnd_std_rand, + NULL, + &rs_ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); } exit: - mbedtls_ecdsa_restart_free( &rs_ctx ); - mbedtls_ecdsa_free( &ctx ); + mbedtls_ecdsa_restart_free(&rs_ctx); + mbedtls_ecdsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void ecdsa_verify( int grp_id, char * x, char * y, char * r, char * s, data_t * content, int expected ) +void ecdsa_verify(int grp_id, char *x, char *y, char *r, char *s, data_t *content, int expected) { mbedtls_ecdsa_context ctx; mbedtls_mpi sig_r, sig_s; - mbedtls_ecdsa_init( &ctx ); - mbedtls_mpi_init( &sig_r ); - mbedtls_mpi_init( &sig_s ); + mbedtls_ecdsa_init(&ctx); + mbedtls_mpi_init(&sig_r); + mbedtls_mpi_init(&sig_s); /* Prepare ECP group context */ - TEST_EQUAL( mbedtls_ecp_group_load( &ctx.grp, grp_id ), 0 ); + TEST_EQUAL(mbedtls_ecp_group_load(&ctx.grp, grp_id), 0); /* Prepare public key */ - TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.X, x ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &ctx.Q.Y, y ), 0 ); - TEST_EQUAL( mbedtls_mpi_lset( &ctx.Q.Z, 1 ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&ctx.Q.X, x), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&ctx.Q.Y, y), 0); + TEST_EQUAL(mbedtls_mpi_lset(&ctx.Q.Z, 1), 0); /* Prepare signature R & S */ - TEST_EQUAL( mbedtls_test_read_mpi( &sig_r, r ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &sig_s, s ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&sig_r, r), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&sig_s, s), 0); /* Test whether public key has expected validity */ - TEST_EQUAL( mbedtls_ecp_check_pubkey( &ctx.grp, &ctx.Q ), - expected == MBEDTLS_ERR_ECP_INVALID_KEY ? MBEDTLS_ERR_ECP_INVALID_KEY : 0 ); + TEST_EQUAL(mbedtls_ecp_check_pubkey(&ctx.grp, &ctx.Q), + expected == MBEDTLS_ERR_ECP_INVALID_KEY ? MBEDTLS_ERR_ECP_INVALID_KEY : 0); /* Verification */ - int result = mbedtls_ecdsa_verify( &ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s ); + int result = mbedtls_ecdsa_verify(&ctx.grp, content->x, content->len, &ctx.Q, &sig_r, &sig_s); - TEST_EQUAL( result, expected ); + TEST_EQUAL(result, expected); exit: - mbedtls_ecdsa_free( &ctx ); - mbedtls_mpi_free( &sig_r ); - mbedtls_mpi_free( &sig_s ); + mbedtls_ecdsa_free(&ctx); + mbedtls_mpi_free(&sig_r); + mbedtls_mpi_free(&sig_s); } /* END_CASE */ diff --git a/tests/suites/test_suite_ecjpake.function b/tests/suites/test_suite_ecjpake.function index d90a5869e..d5c0f07d4 100644 --- a/tests/suites/test_suite_ecjpake.function +++ b/tests/suites/test_suite_ecjpake.function @@ -64,33 +64,33 @@ static const unsigned char ecjpake_test_X4[] = { }; /* Load my private and public keys, and peer's public keys */ -static int ecjpake_test_load( mbedtls_ecjpake_context *ctx, - const unsigned char *xm1, size_t len_xm1, - const unsigned char *xm2, size_t len_xm2, - const unsigned char *Xm1, size_t len_Xm1, - const unsigned char *Xm2, size_t len_Xm2, - const unsigned char *Xp1, size_t len_Xp1, - const unsigned char *Xp2, size_t len_Xp2 ) +static int ecjpake_test_load(mbedtls_ecjpake_context *ctx, + const unsigned char *xm1, size_t len_xm1, + const unsigned char *xm2, size_t len_xm2, + const unsigned char *Xm1, size_t len_Xm1, + const unsigned char *Xm2, size_t len_Xm2, + const unsigned char *Xp1, size_t len_Xp1, + const unsigned char *Xp2, size_t len_Xp2) { int ret; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm1, xm1, len_xm1 ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &ctx->xm2, xm2, len_xm2 ) ); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm1, xm1, len_xm1)); + MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&ctx->xm2, xm2, len_xm2)); - MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, - &ctx->Xm1, Xm1, len_Xm1 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, - &ctx->Xm2, Xm2, len_Xm2 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, - &ctx->Xp1, Xp1, len_Xp1 ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_point_read_binary( &ctx->grp, - &ctx->Xp2, Xp2, len_Xp2 ) ); + MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp, + &ctx->Xm1, Xm1, len_Xm1)); + MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp, + &ctx->Xm2, Xm2, len_Xm2)); + MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp, + &ctx->Xp1, Xp1, len_Xp1)); + MBEDTLS_MPI_CHK(mbedtls_ecp_point_read_binary(&ctx->grp, + &ctx->Xp2, Xp2, len_Xp2)); cleanup: - return( ret ); + return ret; } -#define ADD_SIZE( x ) x, sizeof( x ) +#define ADD_SIZE(x) x, sizeof(x) #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA */ /* END_HEADER */ @@ -100,121 +100,125 @@ cleanup: */ /* BEGIN_CASE */ -void ecjpake_invalid_param( ) +void ecjpake_invalid_param() { mbedtls_ecjpake_context ctx; unsigned char buf[42] = { 0 }; - size_t const len = sizeof( buf ); + size_t const len = sizeof(buf); mbedtls_ecjpake_role invalid_role = (mbedtls_ecjpake_role) 42; mbedtls_md_type_t valid_md = MBEDTLS_MD_SHA256; mbedtls_ecp_group_id valid_group = MBEDTLS_ECP_DP_SECP256R1; - mbedtls_ecjpake_init( &ctx ); + mbedtls_ecjpake_init(&ctx); - TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, - mbedtls_ecjpake_setup( &ctx, - invalid_role, - valid_md, - valid_group, - buf, len ) ); + TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA, + mbedtls_ecjpake_setup(&ctx, + invalid_role, + valid_md, + valid_group, + buf, len)); exit: return; } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void ecjpake_selftest( ) +void ecjpake_selftest() { - TEST_ASSERT( mbedtls_ecjpake_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA */ -void read_bad_md( data_t *msg ) +void read_bad_md(data_t *msg) { mbedtls_ecjpake_context corrupt_ctx; - const unsigned char * pw = NULL; + const unsigned char *pw = NULL; const size_t pw_len = 0; int any_role = MBEDTLS_ECJPAKE_CLIENT; - mbedtls_ecjpake_init( &corrupt_ctx ); - TEST_ASSERT( mbedtls_ecjpake_setup( &corrupt_ctx, any_role, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); + mbedtls_ecjpake_init(&corrupt_ctx); + TEST_ASSERT(mbedtls_ecjpake_setup(&corrupt_ctx, any_role, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, + pw_len) == 0); corrupt_ctx.md_type = MBEDTLS_MD_NONE; - TEST_EQUAL( mbedtls_ecjpake_read_round_one( &corrupt_ctx, msg->x, - msg->len ), MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_ecjpake_read_round_one(&corrupt_ctx, msg->x, + msg->len), MBEDTLS_ERR_MD_BAD_INPUT_DATA); exit: - mbedtls_ecjpake_free( &corrupt_ctx ); + mbedtls_ecjpake_free(&corrupt_ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA */ -void read_round_one( int role, data_t * msg, int ref_ret ) +void read_round_one(int role, data_t *msg, int ref_ret) { mbedtls_ecjpake_context ctx; - const unsigned char * pw = NULL; + const unsigned char *pw = NULL; const size_t pw_len = 0; - mbedtls_ecjpake_init( &ctx ); + mbedtls_ecjpake_init(&ctx); - TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, role, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, role, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, + pw_len) == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_one( &ctx, msg->x, msg->len ) == ref_ret ); + TEST_ASSERT(mbedtls_ecjpake_read_round_one(&ctx, msg->x, msg->len) == ref_ret); exit: - mbedtls_ecjpake_free( &ctx ); + mbedtls_ecjpake_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA */ -void read_round_two_cli( data_t * msg, int ref_ret ) +void read_round_two_cli(data_t *msg, int ref_ret) { mbedtls_ecjpake_context ctx; - const unsigned char * pw = NULL; + const unsigned char *pw = NULL; const size_t pw_len = 0; - mbedtls_ecjpake_init( &ctx ); + mbedtls_ecjpake_init(&ctx); - TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_CLIENT, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, MBEDTLS_ECJPAKE_CLIENT, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, + pw_len) == 0); - TEST_ASSERT( ecjpake_test_load( &ctx, - ADD_SIZE( ecjpake_test_x1 ), ADD_SIZE( ecjpake_test_x2 ), - ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ), - ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ) ) - == 0 ); + TEST_ASSERT(ecjpake_test_load(&ctx, + ADD_SIZE(ecjpake_test_x1), ADD_SIZE(ecjpake_test_x2), + ADD_SIZE(ecjpake_test_X1), ADD_SIZE(ecjpake_test_X2), + ADD_SIZE(ecjpake_test_X3), ADD_SIZE(ecjpake_test_X4)) + == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg->x, msg->len ) == ref_ret ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&ctx, msg->x, msg->len) == ref_ret); exit: - mbedtls_ecjpake_free( &ctx ); + mbedtls_ecjpake_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA */ -void read_round_two_srv( data_t * msg, int ref_ret ) +void read_round_two_srv(data_t *msg, int ref_ret) { mbedtls_ecjpake_context ctx; - const unsigned char * pw = NULL; + const unsigned char *pw = NULL; const size_t pw_len = 0; - mbedtls_ecjpake_init( &ctx ); + mbedtls_ecjpake_init(&ctx); - TEST_ASSERT( mbedtls_ecjpake_setup( &ctx, MBEDTLS_ECJPAKE_SERVER, - MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, pw_len ) == 0 ); + TEST_ASSERT(mbedtls_ecjpake_setup(&ctx, MBEDTLS_ECJPAKE_SERVER, + MBEDTLS_MD_SHA256, MBEDTLS_ECP_DP_SECP256R1, pw, + pw_len) == 0); - TEST_ASSERT( ecjpake_test_load( &ctx, - ADD_SIZE( ecjpake_test_x3 ), ADD_SIZE( ecjpake_test_x4 ), - ADD_SIZE( ecjpake_test_X3 ), ADD_SIZE( ecjpake_test_X4 ), - ADD_SIZE( ecjpake_test_X1 ), ADD_SIZE( ecjpake_test_X2 ) ) - == 0 ); + TEST_ASSERT(ecjpake_test_load(&ctx, + ADD_SIZE(ecjpake_test_x3), ADD_SIZE(ecjpake_test_x4), + ADD_SIZE(ecjpake_test_X3), ADD_SIZE(ecjpake_test_X4), + ADD_SIZE(ecjpake_test_X1), ADD_SIZE(ecjpake_test_X2)) + == 0); - TEST_ASSERT( mbedtls_ecjpake_read_round_two( &ctx, msg->x, msg->len ) == ref_ret ); + TEST_ASSERT(mbedtls_ecjpake_read_round_two(&ctx, msg->x, msg->len) == ref_ret); exit: - mbedtls_ecjpake_free( &ctx ); + mbedtls_ecjpake_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 96b9f4032..394253de5 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -6,52 +6,67 @@ #include "ecp_invasive.h" #if defined(MBEDTLS_TEST_HOOKS) && \ - ( defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) ) + (defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)) #define HAVE_FIX_NEGATIVE #endif #define ECP_PF_UNKNOWN -1 -#define ECP_PT_RESET( x ) \ - mbedtls_ecp_point_free( x ); \ - mbedtls_ecp_point_init( x ); +#define ECP_PT_RESET(x) \ + mbedtls_ecp_point_free(x); \ + mbedtls_ecp_point_init(x); /* Auxiliary function to compare two mbedtls_ecp_group objects. */ -inline static int mbedtls_ecp_group_cmp( mbedtls_ecp_group *grp1, - mbedtls_ecp_group *grp2 ) +inline static int mbedtls_ecp_group_cmp(mbedtls_ecp_group *grp1, + mbedtls_ecp_group *grp2) { - if( mbedtls_mpi_cmp_mpi( &grp1->P, &grp2->P ) != 0 ) + if (mbedtls_mpi_cmp_mpi(&grp1->P, &grp2->P) != 0) { return 1; - if( mbedtls_mpi_cmp_mpi( &grp1->A, &grp2->A ) != 0 ) + } + if (mbedtls_mpi_cmp_mpi(&grp1->A, &grp2->A) != 0) { return 1; - if( mbedtls_mpi_cmp_mpi( &grp1->B, &grp2->B ) != 0 ) + } + if (mbedtls_mpi_cmp_mpi(&grp1->B, &grp2->B) != 0) { return 1; - if( mbedtls_mpi_cmp_mpi( &grp1->N, &grp2->N ) != 0 ) + } + if (mbedtls_mpi_cmp_mpi(&grp1->N, &grp2->N) != 0) { return 1; - if( mbedtls_ecp_point_cmp( &grp1->G, &grp2->G ) != 0 ) + } + if (mbedtls_ecp_point_cmp(&grp1->G, &grp2->G) != 0) { return 1; - if( grp1->id != grp2->id ) + } + if (grp1->id != grp2->id) { return 1; - if( grp1->pbits != grp2->pbits ) + } + if (grp1->pbits != grp2->pbits) { return 1; - if( grp1->nbits != grp2->nbits ) + } + if (grp1->nbits != grp2->nbits) { return 1; - if( grp1->h != grp2->h ) + } + if (grp1->h != grp2->h) { return 1; - if( grp1->modp != grp2->modp ) + } + if (grp1->modp != grp2->modp) { return 1; - if( grp1->t_pre != grp2->t_pre ) + } + if (grp1->t_pre != grp2->t_pre) { return 1; - if( grp1->t_post != grp2->t_post ) + } + if (grp1->t_post != grp2->t_post) { return 1; - if( grp1->t_data != grp2->t_data ) + } + if (grp1->t_data != grp2->t_data) { return 1; - if( grp1->T_size != grp2->T_size ) + } + if (grp1->T_size != grp2->T_size) { return 1; - if( grp1->T != grp2->T ) + } + if (grp1->T != grp2->T) { return 1; + } return 0; } @@ -64,7 +79,7 @@ inline static int mbedtls_ecp_group_cmp( mbedtls_ecp_group *grp1, */ /* BEGIN_CASE */ -void ecp_invalid_param( ) +void ecp_invalid_param() { mbedtls_ecp_group grp; mbedtls_ecp_point P; @@ -72,20 +87,20 @@ void ecp_invalid_param( ) size_t olen; unsigned char buf[42] = { 0 }; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &P ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&P); - TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, - mbedtls_ecp_point_write_binary( &grp, &P, - invalid_fmt, - &olen, - buf, sizeof( buf ) ) ); - TEST_EQUAL( MBEDTLS_ERR_ECP_BAD_INPUT_DATA, - mbedtls_ecp_tls_write_point( &grp, &P, - invalid_fmt, - &olen, - buf, - sizeof( buf ) ) ); + TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA, + mbedtls_ecp_point_write_binary(&grp, &P, + invalid_fmt, + &olen, + buf, sizeof(buf))); + TEST_EQUAL(MBEDTLS_ERR_ECP_BAD_INPUT_DATA, + mbedtls_ecp_tls_write_point(&grp, &P, + invalid_fmt, + &olen, + buf, + sizeof(buf))); exit: return; @@ -93,55 +108,55 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_curve_info( int id, int tls_id, int size, char * name ) +void mbedtls_ecp_curve_info(int id, int tls_id, int size, char *name) { const mbedtls_ecp_curve_info *by_id, *by_tls, *by_name; - by_id = mbedtls_ecp_curve_info_from_grp_id( id ); - by_tls = mbedtls_ecp_curve_info_from_tls_id( tls_id ); - by_name = mbedtls_ecp_curve_info_from_name( name ); - TEST_ASSERT( by_id != NULL ); - TEST_ASSERT( by_tls != NULL ); - TEST_ASSERT( by_name != NULL ); + by_id = mbedtls_ecp_curve_info_from_grp_id(id); + by_tls = mbedtls_ecp_curve_info_from_tls_id(tls_id); + by_name = mbedtls_ecp_curve_info_from_name(name); + TEST_ASSERT(by_id != NULL); + TEST_ASSERT(by_tls != NULL); + TEST_ASSERT(by_name != NULL); - TEST_ASSERT( by_id == by_tls ); - TEST_ASSERT( by_id == by_name ); + TEST_ASSERT(by_id == by_tls); + TEST_ASSERT(by_id == by_name); - TEST_ASSERT( by_id->bit_size == size ); - TEST_ASSERT( size <= MBEDTLS_ECP_MAX_BITS ); - TEST_ASSERT( size <= MBEDTLS_ECP_MAX_BYTES * 8 ); + TEST_ASSERT(by_id->bit_size == size); + TEST_ASSERT(size <= MBEDTLS_ECP_MAX_BITS); + TEST_ASSERT(size <= MBEDTLS_ECP_MAX_BYTES * 8); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_check_pub( int grp_id, char * x_hex, char * y_hex, char * z_hex, - int ret ) +void ecp_check_pub(int grp_id, char *x_hex, char *y_hex, char *z_hex, + int ret) { mbedtls_ecp_group grp; mbedtls_ecp_point P; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &P ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&P); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, grp_id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, grp_id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &P.X, x_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &P.Y, y_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &P.Z, z_hex ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P.X, x_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&P.Y, y_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&P.Z, z_hex) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &P ) == ret ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &P) == ret); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &P ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&P); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE */ -void ecp_test_vect_restart( int id, - char *dA_str, char *xA_str, char *yA_str, - char *dB_str, char *xZ_str, char *yZ_str, - int max_ops, int min_restarts, int max_restarts ) +void ecp_test_vect_restart(int id, + char *dA_str, char *xA_str, char *yA_str, + char *dB_str, char *xZ_str, char *yZ_str, + int max_ops, int min_restarts, int max_restarts) { /* * Test for early restart. Based on test vectors like ecp_test_vect(), @@ -169,79 +184,78 @@ void ecp_test_vect_restart( int id, int ret; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_restart_init( &ctx ); - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &R ); mbedtls_ecp_point_init( &P ); - mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &xA ); mbedtls_mpi_init( &yA ); - mbedtls_mpi_init( &dB ); mbedtls_mpi_init( &xZ ); mbedtls_mpi_init( &yZ ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_restart_init(&ctx); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&R); mbedtls_ecp_point_init(&P); + mbedtls_mpi_init(&dA); mbedtls_mpi_init(&xA); mbedtls_mpi_init(&yA); + mbedtls_mpi_init(&dB); mbedtls_mpi_init(&xZ); mbedtls_mpi_init(&yZ); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &dA, dA_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xA, xA_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yA, yA_str ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&dA, dA_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xA, xA_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yA, yA_str) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &dB, dB_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xZ, xZ_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yZ, yZ_str ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&dB, dB_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xZ, xZ_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yZ, yZ_str) == 0); - mbedtls_ecp_set_max_ops( (unsigned) max_ops ); + mbedtls_ecp_set_max_ops((unsigned) max_ops); /* Base point case */ cnt_restarts = 0; do { - ECP_PT_RESET( &R ); - ret = mbedtls_ecp_mul_restartable( &grp, &R, &dA, &grp.G, - &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts ); + ECP_PT_RESET(&R); + ret = mbedtls_ecp_mul_restartable(&grp, &R, &dA, &grp.G, + &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xA ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yA ) == 0 ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xA) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yA) == 0); - TEST_ASSERT( cnt_restarts >= min_restarts ); - TEST_ASSERT( cnt_restarts <= max_restarts ); + TEST_ASSERT(cnt_restarts >= min_restarts); + TEST_ASSERT(cnt_restarts <= max_restarts); /* Non-base point case */ - mbedtls_ecp_copy( &P, &R ); + mbedtls_ecp_copy(&P, &R); cnt_restarts = 0; do { - ECP_PT_RESET( &R ); - ret = mbedtls_ecp_mul_restartable( &grp, &R, &dB, &P, - &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts ); + ECP_PT_RESET(&R); + ret = mbedtls_ecp_mul_restartable(&grp, &R, &dB, &P, + &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xZ ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yZ ) == 0 ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xZ) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yZ) == 0); - TEST_ASSERT( cnt_restarts >= min_restarts ); - TEST_ASSERT( cnt_restarts <= max_restarts ); + TEST_ASSERT(cnt_restarts >= min_restarts); + TEST_ASSERT(cnt_restarts <= max_restarts); /* Do we leak memory when aborting an operation? * This test only makes sense when we actually restart */ - if( min_restarts > 0 ) - { - ret = mbedtls_ecp_mul_restartable( &grp, &R, &dB, &P, - &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + if (min_restarts > 0) { + ret = mbedtls_ecp_mul_restartable(&grp, &R, &dB, &P, + &mbedtls_test_rnd_pseudo_rand, &rnd_info, &ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); } exit: - mbedtls_ecp_restart_free( &ctx ); - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &R ); mbedtls_ecp_point_free( &P ); - mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &xA ); mbedtls_mpi_free( &yA ); - mbedtls_mpi_free( &dB ); mbedtls_mpi_free( &xZ ); mbedtls_mpi_free( &yZ ); + mbedtls_ecp_restart_free(&ctx); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&R); mbedtls_ecp_point_free(&P); + mbedtls_mpi_free(&dA); mbedtls_mpi_free(&xA); mbedtls_mpi_free(&yA); + mbedtls_mpi_free(&dB); mbedtls_mpi_free(&xZ); mbedtls_mpi_free(&yZ); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -void ecp_muladd_restart( int id, char *xR_str, char *yR_str, - char *u1_str, char *u2_str, - char *xQ_str, char *yQ_str, - int max_ops, int min_restarts, int max_restarts ) +void ecp_muladd_restart(int id, char *xR_str, char *yR_str, + char *u1_str, char *u2_str, + char *xQ_str, char *yQ_str, + int max_ops, int min_restarts, int max_restarts) { /* * Compute R = u1 * G + u2 * Q @@ -256,250 +270,248 @@ void ecp_muladd_restart( int id, char *xR_str, char *yR_str, int cnt_restarts; int ret; - mbedtls_ecp_restart_init( &ctx ); - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &R ); - mbedtls_ecp_point_init( &Q ); - mbedtls_mpi_init( &u1 ); mbedtls_mpi_init( &u2 ); - mbedtls_mpi_init( &xR ); mbedtls_mpi_init( &yR ); + mbedtls_ecp_restart_init(&ctx); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&R); + mbedtls_ecp_point_init(&Q); + mbedtls_mpi_init(&u1); mbedtls_mpi_init(&u2); + mbedtls_mpi_init(&xR); mbedtls_mpi_init(&yR); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &u1, u1_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &u2, u2_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xR, xR_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yR, yR_str ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&u1, u1_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&u2, u2_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xR, xR_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yR, yR_str) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &Q.X, xQ_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q.Y, yQ_str ) == 0 ); - TEST_ASSERT( mbedtls_mpi_lset( &Q.Z, 1 ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&Q.X, xQ_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q.Y, yQ_str) == 0); + TEST_ASSERT(mbedtls_mpi_lset(&Q.Z, 1) == 0); - mbedtls_ecp_set_max_ops( (unsigned) max_ops ); + mbedtls_ecp_set_max_ops((unsigned) max_ops); cnt_restarts = 0; do { - ECP_PT_RESET( &R ); - ret = mbedtls_ecp_muladd_restartable( &grp, &R, - &u1, &grp.G, &u2, &Q, &ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts ); + ECP_PT_RESET(&R); + ret = mbedtls_ecp_muladd_restartable(&grp, &R, + &u1, &grp.G, &u2, &Q, &ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restarts); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xR ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yR ) == 0 ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xR) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yR) == 0); - TEST_ASSERT( cnt_restarts >= min_restarts ); - TEST_ASSERT( cnt_restarts <= max_restarts ); + TEST_ASSERT(cnt_restarts >= min_restarts); + TEST_ASSERT(cnt_restarts <= max_restarts); /* Do we leak memory when aborting an operation? * This test only makes sense when we actually restart */ - if( min_restarts > 0 ) - { - ret = mbedtls_ecp_muladd_restartable( &grp, &R, - &u1, &grp.G, &u2, &Q, &ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + if (min_restarts > 0) { + ret = mbedtls_ecp_muladd_restartable(&grp, &R, + &u1, &grp.G, &u2, &Q, &ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); } exit: - mbedtls_ecp_restart_free( &ctx ); - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &R ); - mbedtls_ecp_point_free( &Q ); - mbedtls_mpi_free( &u1 ); mbedtls_mpi_free( &u2 ); - mbedtls_mpi_free( &xR ); mbedtls_mpi_free( &yR ); + mbedtls_ecp_restart_free(&ctx); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&R); + mbedtls_ecp_point_free(&Q); + mbedtls_mpi_free(&u1); mbedtls_mpi_free(&u2); + mbedtls_mpi_free(&xR); mbedtls_mpi_free(&yR); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_test_vect( int id, char * dA_str, char * xA_str, char * yA_str, - char * dB_str, char * xB_str, char * yB_str, - char * xZ_str, char * yZ_str ) +void ecp_test_vect(int id, char *dA_str, char *xA_str, char *yA_str, + char *dB_str, char *xB_str, char *yB_str, + char *xZ_str, char *yZ_str) { mbedtls_ecp_group grp; mbedtls_ecp_point R; mbedtls_mpi dA, xA, yA, dB, xB, yB, xZ, yZ; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &R ); - mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &xA ); mbedtls_mpi_init( &yA ); mbedtls_mpi_init( &dB ); - mbedtls_mpi_init( &xB ); mbedtls_mpi_init( &yB ); mbedtls_mpi_init( &xZ ); mbedtls_mpi_init( &yZ ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&R); + mbedtls_mpi_init(&dA); mbedtls_mpi_init(&xA); mbedtls_mpi_init(&yA); mbedtls_mpi_init(&dB); + mbedtls_mpi_init(&xB); mbedtls_mpi_init(&yB); mbedtls_mpi_init(&xZ); mbedtls_mpi_init(&yZ); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &grp.G ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &grp.G) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &dA, dA_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xA, xA_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yA, yA_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &dB, dB_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xB, xB_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yB, yB_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xZ, xZ_str ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &yZ, yZ_str ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&dA, dA_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xA, xA_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yA, yA_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&dB, dB_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xB, xB_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yB, yB_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xZ, xZ_str) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&yZ, yZ_str) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dA, &grp.G, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xA ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yA ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dB, &R, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xZ ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yZ ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dA, &grp.G, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xA) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yA) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dB, &R, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xZ) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yZ) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dB, &grp.G, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xB ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yB ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dA, &R, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xZ ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.Y, &yZ ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dB, &grp.G, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xB) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yB) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dA, &R, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xZ) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.Y, &yZ) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &R ); - mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &xA ); mbedtls_mpi_free( &yA ); mbedtls_mpi_free( &dB ); - mbedtls_mpi_free( &xB ); mbedtls_mpi_free( &yB ); mbedtls_mpi_free( &xZ ); mbedtls_mpi_free( &yZ ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&R); + mbedtls_mpi_free(&dA); mbedtls_mpi_free(&xA); mbedtls_mpi_free(&yA); mbedtls_mpi_free(&dB); + mbedtls_mpi_free(&xB); mbedtls_mpi_free(&yB); mbedtls_mpi_free(&xZ); mbedtls_mpi_free(&yZ); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_test_vec_x( int id, char * dA_hex, char * xA_hex, char * dB_hex, - char * xB_hex, char * xS_hex ) +void ecp_test_vec_x(int id, char *dA_hex, char *xA_hex, char *dB_hex, + char *xB_hex, char *xS_hex) { mbedtls_ecp_group grp; mbedtls_ecp_point R; mbedtls_mpi dA, xA, dB, xB, xS; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &R ); - mbedtls_mpi_init( &dA ); mbedtls_mpi_init( &xA ); - mbedtls_mpi_init( &dB ); mbedtls_mpi_init( &xB ); - mbedtls_mpi_init( &xS ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&R); + mbedtls_mpi_init(&dA); mbedtls_mpi_init(&xA); + mbedtls_mpi_init(&dB); mbedtls_mpi_init(&xB); + mbedtls_mpi_init(&xS); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &grp.G ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &grp.G) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &dA, dA_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &dB, dB_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xA, xA_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xB, xB_hex ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &xS, xS_hex ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&dA, dA_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&dB, dB_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xA, xA_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xB, xB_hex) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&xS, xS_hex) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dA, &grp.G, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xA ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dA, &grp.G, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xA) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dB, &R, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xS ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dB, &R, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xS) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dB, &grp.G, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xB ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dB, &grp.G, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xB) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &dA, &R, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &R ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R.X, &xS ) == 0 ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &dA, &R, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == 0); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &R) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R.X, &xS) == 0); exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &R ); - mbedtls_mpi_free( &dA ); mbedtls_mpi_free( &xA ); - mbedtls_mpi_free( &dB ); mbedtls_mpi_free( &xB ); - mbedtls_mpi_free( &xS ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&R); + mbedtls_mpi_free(&dA); mbedtls_mpi_free(&xA); + mbedtls_mpi_free(&dB); mbedtls_mpi_free(&xB); + mbedtls_mpi_free(&xS); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_test_mul( int id, data_t * n_hex, - data_t * Px_hex, data_t * Py_hex, data_t * Pz_hex, - data_t * nPx_hex, data_t * nPy_hex, data_t * nPz_hex, - int expected_ret ) +void ecp_test_mul(int id, data_t *n_hex, + data_t *Px_hex, data_t *Py_hex, data_t *Pz_hex, + data_t *nPx_hex, data_t *nPy_hex, data_t *nPz_hex, + int expected_ret) { mbedtls_ecp_group grp; mbedtls_ecp_point P, nP, R; mbedtls_mpi n; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &R ); - mbedtls_ecp_point_init( &P ); mbedtls_ecp_point_init( &nP ); - mbedtls_mpi_init( &n ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&R); + mbedtls_ecp_point_init(&P); mbedtls_ecp_point_init(&nP); + mbedtls_mpi_init(&n); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &grp.G ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &grp.G) == 0); - TEST_ASSERT( mbedtls_mpi_read_binary( &n, n_hex->x, n_hex->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&n, n_hex->x, n_hex->len) == 0); - TEST_ASSERT( mbedtls_mpi_read_binary( &P.X, Px_hex->x, Px_hex->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &P.Y, Py_hex->x, Py_hex->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &P.Z, Pz_hex->x, Pz_hex->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &nP.X, nPx_hex->x, nPx_hex->len ) - == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &nP.Y, nPy_hex->x, nPy_hex->len ) - == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &nP.Z, nPz_hex->x, nPz_hex->len ) - == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&P.X, Px_hex->x, Px_hex->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&P.Y, Py_hex->x, Py_hex->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&P.Z, Pz_hex->x, Pz_hex->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&nP.X, nPx_hex->x, nPx_hex->len) + == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&nP.Y, nPy_hex->x, nPy_hex->len) + == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&nP.Z, nPz_hex->x, nPz_hex->len) + == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &R, &n, &P, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) - == expected_ret ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &R, &n, &P, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) + == expected_ret); - if( expected_ret == 0 ) - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &nP.X, &R.X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &nP.Y, &R.Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &nP.Z, &R.Z ) == 0 ); + if (expected_ret == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&nP.X, &R.X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&nP.Y, &R.Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&nP.Z, &R.Z) == 0); } exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &R ); - mbedtls_ecp_point_free( &P ); mbedtls_ecp_point_free( &nP ); - mbedtls_mpi_free( &n ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&R); + mbedtls_ecp_point_free(&P); mbedtls_ecp_point_free(&nP); + mbedtls_mpi_free(&n); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_test_mul_rng( int id, data_t * d_hex) +void ecp_test_mul_rng(int id, data_t *d_hex) { mbedtls_ecp_group grp; mbedtls_mpi d; mbedtls_ecp_point Q; - mbedtls_ecp_group_init( &grp ); mbedtls_mpi_init( &d ); - mbedtls_ecp_point_init( &Q ); + mbedtls_ecp_group_init(&grp); mbedtls_mpi_init(&d); + mbedtls_ecp_point_init(&Q); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &grp.G ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &grp.G) == 0); - TEST_ASSERT( mbedtls_mpi_read_binary( &d, d_hex->x, d_hex->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&d, d_hex->x, d_hex->len) == 0); - TEST_ASSERT( mbedtls_ecp_mul( &grp, &Q, &d, &grp.G, - &mbedtls_test_rnd_zero_rand, NULL ) - == MBEDTLS_ERR_ECP_RANDOM_FAILED ); + TEST_ASSERT(mbedtls_ecp_mul(&grp, &Q, &d, &grp.G, + &mbedtls_test_rnd_zero_rand, NULL) + == MBEDTLS_ERR_ECP_RANDOM_FAILED); exit: - mbedtls_ecp_group_free( &grp ); mbedtls_mpi_free( &d ); - mbedtls_ecp_point_free( &Q ); + mbedtls_ecp_group_free(&grp); mbedtls_mpi_free(&d); + mbedtls_ecp_point_free(&Q); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -void ecp_muladd( int id, - data_t *u1_bin, data_t *P1_bin, - data_t *u2_bin, data_t *P2_bin, - data_t *expected_result ) +void ecp_muladd(int id, + data_t *u1_bin, data_t *P1_bin, + data_t *u2_bin, data_t *P2_bin, + data_t *expected_result) { /* Compute R = u1 * P1 + u2 * P2 */ mbedtls_ecp_group grp; @@ -508,165 +520,159 @@ void ecp_muladd( int id, uint8_t actual_result[MBEDTLS_ECP_MAX_PT_LEN]; size_t len; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &P1 ); - mbedtls_ecp_point_init( &P2 ); - mbedtls_ecp_point_init( &R ); - mbedtls_mpi_init( &u1 ); - mbedtls_mpi_init( &u2 ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&P1); + mbedtls_ecp_point_init(&P2); + mbedtls_ecp_point_init(&R); + mbedtls_mpi_init(&u1); + mbedtls_mpi_init(&u2); - TEST_EQUAL( 0, mbedtls_ecp_group_load( &grp, id ) ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &u1, u1_bin->x, u1_bin->len ) ); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &u2, u2_bin->x, u2_bin->len ) ); - TEST_EQUAL( 0, mbedtls_ecp_point_read_binary( &grp, &P1, - P1_bin->x, P1_bin->len ) ); - TEST_EQUAL( 0, mbedtls_ecp_point_read_binary( &grp, &P2, - P2_bin->x, P2_bin->len ) ); + TEST_EQUAL(0, mbedtls_ecp_group_load(&grp, id)); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&u1, u1_bin->x, u1_bin->len)); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&u2, u2_bin->x, u2_bin->len)); + TEST_EQUAL(0, mbedtls_ecp_point_read_binary(&grp, &P1, + P1_bin->x, P1_bin->len)); + TEST_EQUAL(0, mbedtls_ecp_point_read_binary(&grp, &P2, + P2_bin->x, P2_bin->len)); - TEST_EQUAL( 0, mbedtls_ecp_muladd( &grp, &R, &u1, &P1, &u2, &P2 ) ); - TEST_EQUAL( 0, mbedtls_ecp_point_write_binary( - &grp, &R, MBEDTLS_ECP_PF_UNCOMPRESSED, - &len, actual_result, sizeof( actual_result ) ) ); - TEST_ASSERT( len <= MBEDTLS_ECP_MAX_PT_LEN ); + TEST_EQUAL(0, mbedtls_ecp_muladd(&grp, &R, &u1, &P1, &u2, &P2)); + TEST_EQUAL(0, mbedtls_ecp_point_write_binary( + &grp, &R, MBEDTLS_ECP_PF_UNCOMPRESSED, + &len, actual_result, sizeof(actual_result))); + TEST_ASSERT(len <= MBEDTLS_ECP_MAX_PT_LEN); - ASSERT_COMPARE( expected_result->x, expected_result->len, - actual_result, len ); + ASSERT_COMPARE(expected_result->x, expected_result->len, + actual_result, len); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &P1 ); - mbedtls_ecp_point_free( &P2 ); - mbedtls_ecp_point_free( &R ); - mbedtls_mpi_free( &u1 ); - mbedtls_mpi_free( &u2 ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&P1); + mbedtls_ecp_point_free(&P2); + mbedtls_ecp_point_free(&R); + mbedtls_mpi_free(&u1); + mbedtls_mpi_free(&u2); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_fast_mod( int id, char * N_str ) +void ecp_fast_mod(int id, char *N_str) { mbedtls_ecp_group grp; mbedtls_mpi N, R; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &R ); - mbedtls_ecp_group_init( &grp ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&R); + mbedtls_ecp_group_init(&grp); - TEST_ASSERT( mbedtls_test_read_mpi( &N, N_str ) == 0 ); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( grp.modp != NULL ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, N_str) == 0); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(grp.modp != NULL); /* * Store correct result before we touch N */ - TEST_ASSERT( mbedtls_mpi_mod_mpi( &R, &N, &grp.P ) == 0 ); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&R, &N, &grp.P) == 0); - TEST_ASSERT( grp.modp( &N ) == 0 ); - TEST_ASSERT( mbedtls_mpi_bitlen( &N ) <= grp.pbits + 3 ); + TEST_ASSERT(grp.modp(&N) == 0); + TEST_ASSERT(mbedtls_mpi_bitlen(&N) <= grp.pbits + 3); /* * Use mod rather than addition/subtraction in case previous test fails */ - TEST_ASSERT( mbedtls_mpi_mod_mpi( &N, &N, &grp.P ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &N, &R ) == 0 ); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&N, &N, &grp.P) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&N, &R) == 0); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &R ); - mbedtls_ecp_group_free( &grp ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&R); + mbedtls_ecp_group_free(&grp); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_write_binary( int id, char * x, char * y, char * z, int format, - data_t * out, int blen, int ret ) +void ecp_write_binary(int id, char *x, char *y, char *z, int format, + data_t *out, int blen, int ret) { mbedtls_ecp_group grp; mbedtls_ecp_point P; unsigned char buf[256]; size_t olen; - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &P ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&P); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &P.X, x ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &P.Y, y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &P.Z, z ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P.X, x) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&P.Y, y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&P.Z, z) == 0); - TEST_ASSERT( mbedtls_ecp_point_write_binary( &grp, &P, format, - &olen, buf, blen ) == ret ); + TEST_ASSERT(mbedtls_ecp_point_write_binary(&grp, &P, format, + &olen, buf, blen) == ret); - if( ret == 0 ) - { - TEST_ASSERT( olen <= MBEDTLS_ECP_MAX_PT_LEN ); - TEST_ASSERT( mbedtls_test_hexcmp( buf, out->x, olen, out->len ) == 0 ); + if (ret == 0) { + TEST_ASSERT(olen <= MBEDTLS_ECP_MAX_PT_LEN); + TEST_ASSERT(mbedtls_test_hexcmp(buf, out->x, olen, out->len) == 0); } exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &P ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&P); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_read_binary( int id, data_t * buf, char * x, char * y, char * z, - int ret ) +void ecp_read_binary(int id, data_t *buf, char *x, char *y, char *z, + int ret) { mbedtls_ecp_group grp; mbedtls_ecp_point P; mbedtls_mpi X, Y, Z; - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &P ); - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&P); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &X, x ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Z, z ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, x) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Z, z) == 0); - TEST_ASSERT( mbedtls_ecp_point_read_binary( &grp, &P, buf->x, buf->len ) == ret ); + TEST_ASSERT(mbedtls_ecp_point_read_binary(&grp, &P, buf->x, buf->len) == ret); - if( ret == 0 ) - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.X, &X ) == 0 ); - if( mbedtls_ecp_get_type( &grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { - TEST_ASSERT( mbedtls_mpi_cmp_int( &Y, 0 ) == 0 ); - TEST_ASSERT( P.Y.p == NULL ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &Z, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_int( &P.Z, 1 ) == 0 ); - } - else - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Y, &Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Z, &Z ) == 0 ); + if (ret == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.X, &X) == 0); + if (mbedtls_ecp_get_type(&grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) { + TEST_ASSERT(mbedtls_mpi_cmp_int(&Y, 0) == 0); + TEST_ASSERT(P.Y.p == NULL); + TEST_ASSERT(mbedtls_mpi_cmp_int(&Z, 1) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_int(&P.Z, 1) == 0); + } else { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.Y, &Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.Z, &Z) == 0); - if( buf->x[0] == 0x04 && + if (buf->x[0] == 0x04 && /* (reading compressed format supported only for * Short Weierstrass curves with prime p where p = 3 mod 4) */ id != MBEDTLS_ECP_DP_SECP224R1 && - id != MBEDTLS_ECP_DP_SECP224K1 ) - { + id != MBEDTLS_ECP_DP_SECP224K1) { /* re-encode in compressed format and test read again */ - mbedtls_mpi_free( &P.Y ); - buf->x[0] = 0x02 + mbedtls_mpi_get_bit( &Y, 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_binary( &grp, &P, buf->x, buf->len/2+1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Y, &Y ) == 0 ); + mbedtls_mpi_free(&P.Y); + buf->x[0] = 0x02 + mbedtls_mpi_get_bit(&Y, 0); + TEST_ASSERT(mbedtls_ecp_point_read_binary(&grp, &P, buf->x, buf->len/2+1) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.Y, &Y) == 0); } } } exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &P ); - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&P); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_tls_read_point( int id, data_t * buf, char * x, char * y, - char * z, int ret ) +void mbedtls_ecp_tls_read_point(int id, data_t *buf, char *x, char *y, + char *z, int ret) { mbedtls_ecp_group grp; mbedtls_ecp_point P; @@ -674,33 +680,32 @@ void mbedtls_ecp_tls_read_point( int id, data_t * buf, char * x, char * y, const unsigned char *vbuf = buf->x; - mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &P ); - mbedtls_mpi_init( &X ); mbedtls_mpi_init( &Y ); mbedtls_mpi_init( &Z ); + mbedtls_ecp_group_init(&grp); mbedtls_ecp_point_init(&P); + mbedtls_mpi_init(&X); mbedtls_mpi_init(&Y); mbedtls_mpi_init(&Z); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &X, x ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Y, y ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Z, z ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&X, x) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Y, y) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Z, z) == 0); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &P, &vbuf, buf->len ) == ret ); + TEST_ASSERT(mbedtls_ecp_tls_read_point(&grp, &P, &vbuf, buf->len) == ret); - if( ret == 0 ) - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.X, &X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Y, &Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P.Z, &Z ) == 0 ); - TEST_ASSERT( (uint32_t)( vbuf - buf->x ) == buf->len ); + if (ret == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.X, &X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.Y, &Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P.Z, &Z) == 0); + TEST_ASSERT((uint32_t) (vbuf - buf->x) == buf->len); } exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &P ); - mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &Z ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_point_free(&P); + mbedtls_mpi_free(&X); mbedtls_mpi_free(&Y); mbedtls_mpi_free(&Z); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_tls_write_read_point( int id ) +void ecp_tls_write_read_point(int id) { mbedtls_ecp_group grp; mbedtls_ecp_point pt; @@ -708,77 +713,76 @@ void ecp_tls_write_read_point( int id ) const unsigned char *vbuf; size_t olen; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &pt ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&pt); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; - TEST_ASSERT( mbedtls_ecp_tls_write_point( &grp, &grp.G, - MBEDTLS_ECP_PF_COMPRESSED, &olen, buf, 256 ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.X, &pt.X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Y, &pt.Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Z, &pt.Z ) == 0 ); - TEST_ASSERT( vbuf == buf + olen ); + memset(buf, 0x00, sizeof(buf)); vbuf = buf; + TEST_ASSERT(mbedtls_ecp_tls_write_point(&grp, &grp.G, + MBEDTLS_ECP_PF_COMPRESSED, &olen, buf, 256) == 0); + TEST_ASSERT(mbedtls_ecp_tls_read_point(&grp, &pt, &vbuf, olen) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.X, &pt.X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.Y, &pt.Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.Z, &pt.Z) == 0); + TEST_ASSERT(vbuf == buf + olen); - memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; - TEST_ASSERT( mbedtls_ecp_tls_write_point( &grp, &grp.G, - MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, buf, 256 ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.X, &pt.X ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Y, &pt.Y ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.G.Z, &pt.Z ) == 0 ); - TEST_ASSERT( vbuf == buf + olen ); + memset(buf, 0x00, sizeof(buf)); vbuf = buf; + TEST_ASSERT(mbedtls_ecp_tls_write_point(&grp, &grp.G, + MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, buf, 256) == 0); + TEST_ASSERT(mbedtls_ecp_tls_read_point(&grp, &pt, &vbuf, olen) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.X, &pt.X) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.Y, &pt.Y) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.G.Z, &pt.Z) == 0); + TEST_ASSERT(vbuf == buf + olen); - memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; - TEST_ASSERT( mbedtls_ecp_set_zero( &pt ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_write_point( &grp, &pt, - MBEDTLS_ECP_PF_COMPRESSED, &olen, buf, 256 ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) == 0 ); - TEST_ASSERT( mbedtls_ecp_is_zero( &pt ) ); - TEST_ASSERT( vbuf == buf + olen ); + memset(buf, 0x00, sizeof(buf)); vbuf = buf; + TEST_ASSERT(mbedtls_ecp_set_zero(&pt) == 0); + TEST_ASSERT(mbedtls_ecp_tls_write_point(&grp, &pt, + MBEDTLS_ECP_PF_COMPRESSED, &olen, buf, 256) == 0); + TEST_ASSERT(mbedtls_ecp_tls_read_point(&grp, &pt, &vbuf, olen) == 0); + TEST_ASSERT(mbedtls_ecp_is_zero(&pt)); + TEST_ASSERT(vbuf == buf + olen); - memset( buf, 0x00, sizeof( buf ) ); vbuf = buf; - TEST_ASSERT( mbedtls_ecp_set_zero( &pt ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_write_point( &grp, &pt, - MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, buf, 256 ) == 0 ); - TEST_ASSERT( mbedtls_ecp_tls_read_point( &grp, &pt, &vbuf, olen ) == 0 ); - TEST_ASSERT( mbedtls_ecp_is_zero( &pt ) ); - TEST_ASSERT( vbuf == buf + olen ); + memset(buf, 0x00, sizeof(buf)); vbuf = buf; + TEST_ASSERT(mbedtls_ecp_set_zero(&pt) == 0); + TEST_ASSERT(mbedtls_ecp_tls_write_point(&grp, &pt, + MBEDTLS_ECP_PF_UNCOMPRESSED, &olen, buf, 256) == 0); + TEST_ASSERT(mbedtls_ecp_tls_read_point(&grp, &pt, &vbuf, olen) == 0); + TEST_ASSERT(mbedtls_ecp_is_zero(&pt)); + TEST_ASSERT(vbuf == buf + olen); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &pt ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&pt); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_tls_read_group( data_t * buf, int result, int bits, - int record_len ) +void mbedtls_ecp_tls_read_group(data_t *buf, int result, int bits, + int record_len) { mbedtls_ecp_group grp; const unsigned char *vbuf = buf->x; int ret; - mbedtls_ecp_group_init( &grp ); + mbedtls_ecp_group_init(&grp); - ret = mbedtls_ecp_tls_read_group( &grp, &vbuf, buf->len ); + ret = mbedtls_ecp_tls_read_group(&grp, &vbuf, buf->len); - TEST_ASSERT( ret == result ); - if( ret == 0) - { - TEST_ASSERT( mbedtls_mpi_bitlen( &grp.P ) == (size_t) bits ); - TEST_ASSERT( vbuf - buf->x == record_len); + TEST_ASSERT(ret == result); + if (ret == 0) { + TEST_ASSERT(mbedtls_mpi_bitlen(&grp.P) == (size_t) bits); + TEST_ASSERT(vbuf - buf->x == record_len); } exit: - mbedtls_ecp_group_free( &grp ); + mbedtls_ecp_group_free(&grp); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_tls_write_read_group( int id ) +void ecp_tls_write_read_group(int id) { mbedtls_ecp_group grp1, grp2; unsigned char buf[10]; @@ -786,33 +790,32 @@ void ecp_tls_write_read_group( int id ) size_t len; int ret; - mbedtls_ecp_group_init( &grp1 ); - mbedtls_ecp_group_init( &grp2 ); - memset( buf, 0x00, sizeof( buf ) ); + mbedtls_ecp_group_init(&grp1); + mbedtls_ecp_group_init(&grp2); + memset(buf, 0x00, sizeof(buf)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp1, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp1, id) == 0); - TEST_ASSERT( mbedtls_ecp_tls_write_group( &grp1, &len, buf, 10 ) == 0 ); - ret = mbedtls_ecp_tls_read_group( &grp2, &vbuf, len ); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(mbedtls_ecp_tls_write_group(&grp1, &len, buf, 10) == 0); + ret = mbedtls_ecp_tls_read_group(&grp2, &vbuf, len); + TEST_ASSERT(ret == 0); - if( ret == 0 ) - { - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp1.N, &grp2.N ) == 0 ); - TEST_ASSERT( grp1.id == grp2.id ); + if (ret == 0) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp1.N, &grp2.N) == 0); + TEST_ASSERT(grp1.id == grp2.id); } exit: - mbedtls_ecp_group_free( &grp1 ); - mbedtls_ecp_group_free( &grp2 ); + mbedtls_ecp_group_free(&grp1); + mbedtls_ecp_group_free(&grp2); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECDH_C:MBEDTLS_ECDSA_C */ -void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, - char* P, char* A, char* B, - char* G_x, char* G_y, char* N, - int tls_id ) +void mbedtls_ecp_group_metadata(int id, int bit_size, int crv_type, + char *P, char *A, char *B, + char *G_x, char *G_y, char *N, + int tls_id) { mbedtls_ecp_group grp, grp_read, grp_cpy; const mbedtls_ecp_group_id *g_id; @@ -825,319 +828,320 @@ void mbedtls_ecp_group_metadata( int id, int bit_size, int crv_type, const unsigned char *vbuf = buf; size_t olen; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_group_init( &grp_read ); - mbedtls_ecp_group_init( &grp_cpy ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_group_init(&grp_read); + mbedtls_ecp_group_init(&grp_cpy); - mbedtls_mpi_init( &exp_P ); - mbedtls_mpi_init( &exp_A ); - mbedtls_mpi_init( &exp_B ); - mbedtls_mpi_init( &exp_G_x ); - mbedtls_mpi_init( &exp_G_y ); - mbedtls_mpi_init( &exp_N ); + mbedtls_mpi_init(&exp_P); + mbedtls_mpi_init(&exp_A); + mbedtls_mpi_init(&exp_B); + mbedtls_mpi_init(&exp_G_x); + mbedtls_mpi_init(&exp_G_y); + mbedtls_mpi_init(&exp_N); // Read expected parameters - TEST_EQUAL( mbedtls_test_read_mpi( &exp_P, P ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &exp_A, A ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &exp_G_x, G_x ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &exp_N, N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &exp_B, B ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &exp_G_y, G_y ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_P, P), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_A, A), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_G_x, G_x), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_N, N), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_B, B), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&exp_G_y, G_y), 0); // Convert exp_A to internal representation (A+2)/4 - if( crv_type == MBEDTLS_ECP_TYPE_MONTGOMERY ) - { - TEST_EQUAL( mbedtls_mpi_add_int( &exp_A, &exp_A, 2 ), 0 ); - TEST_EQUAL( mbedtls_mpi_div_int( &exp_A, NULL, &exp_A, 4 ), 0 ); + if (crv_type == MBEDTLS_ECP_TYPE_MONTGOMERY) { + TEST_EQUAL(mbedtls_mpi_add_int(&exp_A, &exp_A, 2), 0); + TEST_EQUAL(mbedtls_mpi_div_int(&exp_A, NULL, &exp_A, 4), 0); } // Load group - TEST_EQUAL( mbedtls_ecp_group_load( &grp, id ), 0 ); + TEST_EQUAL(mbedtls_ecp_group_load(&grp, id), 0); // Compare group with expected parameters // A is NULL for SECPxxxR1 curves // B and G_y are NULL for curve25519 and curve448 - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_P, &grp.P ), 0 ); - if( *A != 0 ) - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_A, &grp.A ), 0 ); - if( *B != 0 ) - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_B, &grp.B ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_G_x, &grp.G.X ), 0 ); - if( *G_y != 0 ) - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_G_y, &grp.G.Y ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &exp_N, &grp.N ), 0 ); + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_P, &grp.P), 0); + if (*A != 0) { + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_A, &grp.A), 0); + } + if (*B != 0) { + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_B, &grp.B), 0); + } + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_G_x, &grp.G.X), 0); + if (*G_y != 0) { + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_G_y, &grp.G.Y), 0); + } + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&exp_N, &grp.N), 0); // Load curve info and compare with known values - crv = mbedtls_ecp_curve_info_from_grp_id( id ); - TEST_EQUAL( crv->grp_id, id ); - TEST_EQUAL( crv->bit_size, bit_size ); - TEST_EQUAL( crv->tls_id, tls_id ); + crv = mbedtls_ecp_curve_info_from_grp_id(id); + TEST_EQUAL(crv->grp_id, id); + TEST_EQUAL(crv->bit_size, bit_size); + TEST_EQUAL(crv->tls_id, tls_id); // Load curve from TLS ID and name, and compare IDs - crv_tls_id = mbedtls_ecp_curve_info_from_tls_id( crv->tls_id ); - crv_name = mbedtls_ecp_curve_info_from_name( crv->name ); - TEST_EQUAL( crv_tls_id->grp_id, id ); - TEST_EQUAL( crv_name->grp_id, id ); + crv_tls_id = mbedtls_ecp_curve_info_from_tls_id(crv->tls_id); + crv_name = mbedtls_ecp_curve_info_from_name(crv->name); + TEST_EQUAL(crv_tls_id->grp_id, id); + TEST_EQUAL(crv_name->grp_id, id); // Validate write_group against test data - TEST_EQUAL( mbedtls_ecp_tls_write_group( &grp, &olen, - buf, sizeof( buf ) ), - 0 ); - TEST_EQUAL( mbedtls_test_hexcmp( buf, ecparameters, olen, - sizeof( ecparameters ) ), - 0 ); + TEST_EQUAL(mbedtls_ecp_tls_write_group(&grp, &olen, + buf, sizeof(buf)), + 0); + TEST_EQUAL(mbedtls_test_hexcmp(buf, ecparameters, olen, + sizeof(ecparameters)), + 0); // Read group from buffer and compare with expected ID - TEST_EQUAL( mbedtls_ecp_tls_read_group_id( &read_g_id, &vbuf, olen ), - 0 ); - TEST_EQUAL( read_g_id, id ); + TEST_EQUAL(mbedtls_ecp_tls_read_group_id(&read_g_id, &vbuf, olen), + 0); + TEST_EQUAL(read_g_id, id); vbuf = buf; - TEST_EQUAL( mbedtls_ecp_tls_read_group( &grp_read, &vbuf, olen ), - 0 ); - TEST_EQUAL( grp_read.id, id ); + TEST_EQUAL(mbedtls_ecp_tls_read_group(&grp_read, &vbuf, olen), + 0); + TEST_EQUAL(grp_read.id, id); // Check curve type, and if it can be used for ECDH/ECDSA - TEST_EQUAL( mbedtls_ecp_get_type( &grp ), crv_type ); - TEST_EQUAL( mbedtls_ecdh_can_do( id ), 1 ); - TEST_EQUAL( mbedtls_ecdsa_can_do( id ), - crv_type == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ); + TEST_EQUAL(mbedtls_ecp_get_type(&grp), crv_type); + TEST_EQUAL(mbedtls_ecdh_can_do(id), 1); + TEST_EQUAL(mbedtls_ecdsa_can_do(id), + crv_type == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS); // Copy group and compare with original - TEST_EQUAL( mbedtls_ecp_group_copy( &grp_cpy, &grp ), 0 ); - TEST_EQUAL( mbedtls_ecp_group_cmp( &grp, &grp_cpy ), 0 ); + TEST_EQUAL(mbedtls_ecp_group_copy(&grp_cpy, &grp), 0); + TEST_EQUAL(mbedtls_ecp_group_cmp(&grp, &grp_cpy), 0); // Check curve is in curve list and group ID list - for( crv = mbedtls_ecp_curve_list( ); - crv->grp_id != MBEDTLS_ECP_DP_NONE && - crv->grp_id != (unsigned) id; - crv++ ); - TEST_EQUAL( crv->grp_id, id ); - for( g_id = mbedtls_ecp_grp_id_list( ); + for (crv = mbedtls_ecp_curve_list(); + crv->grp_id != MBEDTLS_ECP_DP_NONE && + crv->grp_id != (unsigned) id; + crv++) { + ; + } + TEST_EQUAL(crv->grp_id, id); + for (g_id = mbedtls_ecp_grp_id_list(); *g_id != MBEDTLS_ECP_DP_NONE && *g_id != (unsigned) id; - g_id++ ); - TEST_EQUAL( *g_id, (unsigned) id ); + g_id++) { + ; + } + TEST_EQUAL(*g_id, (unsigned) id); exit: - mbedtls_ecp_group_free( &grp ); mbedtls_ecp_group_free( &grp_cpy ); - mbedtls_ecp_group_free( &grp_read ); - mbedtls_mpi_free( &exp_P ); mbedtls_mpi_free( &exp_A ); - mbedtls_mpi_free( &exp_B ); mbedtls_mpi_free( &exp_G_x ); - mbedtls_mpi_free( &exp_G_y ); mbedtls_mpi_free( &exp_N ); + mbedtls_ecp_group_free(&grp); mbedtls_ecp_group_free(&grp_cpy); + mbedtls_ecp_group_free(&grp_read); + mbedtls_mpi_free(&exp_P); mbedtls_mpi_free(&exp_A); + mbedtls_mpi_free(&exp_B); mbedtls_mpi_free(&exp_G_x); + mbedtls_mpi_free(&exp_G_y); mbedtls_mpi_free(&exp_N); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_check_privkey( int id, char * key_hex, int ret ) +void mbedtls_ecp_check_privkey(int id, char *key_hex, int ret) { mbedtls_ecp_group grp; mbedtls_mpi d; - mbedtls_ecp_group_init( &grp ); - mbedtls_mpi_init( &d ); + mbedtls_ecp_group_init(&grp); + mbedtls_mpi_init(&d); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &d, key_hex ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&d, key_hex) == 0); - TEST_ASSERT( mbedtls_ecp_check_privkey( &grp, &d ) == ret ); + TEST_ASSERT(mbedtls_ecp_check_privkey(&grp, &d) == ret); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_mpi_free( &d ); + mbedtls_ecp_group_free(&grp); + mbedtls_mpi_free(&d); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_check_pub_priv( int id_pub, char * Qx_pub, char * Qy_pub, - int id, char * d, char * Qx, char * Qy, - int ret ) +void mbedtls_ecp_check_pub_priv(int id_pub, char *Qx_pub, char *Qy_pub, + int id, char *d, char *Qx, char *Qy, + int ret) { mbedtls_ecp_keypair pub, prv; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_keypair_init( &pub ); - mbedtls_ecp_keypair_init( &prv ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_keypair_init(&pub); + mbedtls_ecp_keypair_init(&prv); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - if( id_pub != MBEDTLS_ECP_DP_NONE ) - TEST_ASSERT( mbedtls_ecp_group_load( &pub.grp, id_pub ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_string( &pub.Q, 16, Qx_pub, Qy_pub ) == 0 ); + if (id_pub != MBEDTLS_ECP_DP_NONE) { + TEST_ASSERT(mbedtls_ecp_group_load(&pub.grp, id_pub) == 0); + } + TEST_ASSERT(mbedtls_ecp_point_read_string(&pub.Q, 16, Qx_pub, Qy_pub) == 0); - if( id != MBEDTLS_ECP_DP_NONE ) - TEST_ASSERT( mbedtls_ecp_group_load( &prv.grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_string( &prv.Q, 16, Qx, Qy ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &prv.d, d ) == 0 ); + if (id != MBEDTLS_ECP_DP_NONE) { + TEST_ASSERT(mbedtls_ecp_group_load(&prv.grp, id) == 0); + } + TEST_ASSERT(mbedtls_ecp_point_read_string(&prv.Q, 16, Qx, Qy) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&prv.d, d) == 0); - TEST_ASSERT( mbedtls_ecp_check_pub_priv( &pub, &prv, - &mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); + TEST_ASSERT(mbedtls_ecp_check_pub_priv(&pub, &prv, + &mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); exit: - mbedtls_ecp_keypair_free( &pub ); - mbedtls_ecp_keypair_free( &prv ); + mbedtls_ecp_keypair_free(&pub); + mbedtls_ecp_keypair_free(&prv); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_gen_keypair( int id ) +void mbedtls_ecp_gen_keypair(int id) { mbedtls_ecp_group grp; mbedtls_ecp_point Q; mbedtls_mpi d; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &Q ); - mbedtls_mpi_init( &d ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&Q); + mbedtls_mpi_init(&d); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); - TEST_ASSERT( mbedtls_ecp_gen_keypair( &grp, &d, &Q, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecp_gen_keypair(&grp, &d, &Q, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &grp, &Q ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_privkey( &grp, &d ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&grp, &Q) == 0); + TEST_ASSERT(mbedtls_ecp_check_privkey(&grp, &d) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &Q ); - mbedtls_mpi_free( &d ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&Q); + mbedtls_mpi_free(&d); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_gen_key( int id ) +void mbedtls_ecp_gen_key(int id) { mbedtls_ecp_keypair key; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_ecp_keypair_init( &key ); - memset( &rnd_info, 0x00, sizeof( mbedtls_test_rnd_pseudo_info ) ); + mbedtls_ecp_keypair_init(&key); + memset(&rnd_info, 0x00, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_ecp_gen_key( id, &key, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info ) == 0 ); + TEST_ASSERT(mbedtls_ecp_gen_key(id, &key, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info) == 0); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &key.grp, &key.Q ) == 0 ); - TEST_ASSERT( mbedtls_ecp_check_privkey( &key.grp, &key.d ) == 0 ); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&key.grp, &key.Q) == 0); + TEST_ASSERT(mbedtls_ecp_check_privkey(&key.grp, &key.d) == 0); exit: - mbedtls_ecp_keypair_free( &key ); + mbedtls_ecp_keypair_free(&key); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_ecp_read_key( int grp_id, data_t* in_key, int expected, int canonical ) +void mbedtls_ecp_read_key(int grp_id, data_t *in_key, int expected, int canonical) { int ret = 0; mbedtls_ecp_keypair key; mbedtls_ecp_keypair key2; - mbedtls_ecp_keypair_init( &key ); - mbedtls_ecp_keypair_init( &key2 ); + mbedtls_ecp_keypair_init(&key); + mbedtls_ecp_keypair_init(&key2); - ret = mbedtls_ecp_read_key( grp_id, &key, in_key->x, in_key->len ); - TEST_ASSERT( ret == expected ); + ret = mbedtls_ecp_read_key(grp_id, &key, in_key->x, in_key->len); + TEST_ASSERT(ret == expected); - if( expected == 0 ) - { - ret = mbedtls_ecp_check_privkey( &key.grp, &key.d ); - TEST_ASSERT( ret == 0 ); + if (expected == 0) { + ret = mbedtls_ecp_check_privkey(&key.grp, &key.d); + TEST_ASSERT(ret == 0); - if( canonical ) - { + if (canonical) { unsigned char buf[MBEDTLS_ECP_MAX_BYTES]; - ret = mbedtls_ecp_write_key( &key, buf, in_key->len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ecp_write_key(&key, buf, in_key->len); + TEST_ASSERT(ret == 0); - ASSERT_COMPARE( in_key->x, in_key->len, - buf, in_key->len ); - } - else - { + ASSERT_COMPARE(in_key->x, in_key->len, + buf, in_key->len); + } else { unsigned char export1[MBEDTLS_ECP_MAX_BYTES]; unsigned char export2[MBEDTLS_ECP_MAX_BYTES]; - ret = mbedtls_ecp_write_key( &key, export1, in_key->len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ecp_write_key(&key, export1, in_key->len); + TEST_ASSERT(ret == 0); - ret = mbedtls_ecp_read_key( grp_id, &key2, export1, in_key->len ); - TEST_ASSERT( ret == expected ); + ret = mbedtls_ecp_read_key(grp_id, &key2, export1, in_key->len); + TEST_ASSERT(ret == expected); - ret = mbedtls_ecp_write_key( &key2, export2, in_key->len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ecp_write_key(&key2, export2, in_key->len); + TEST_ASSERT(ret == 0); - ASSERT_COMPARE( export1, in_key->len, - export2, in_key->len ); + ASSERT_COMPARE(export1, in_key->len, + export2, in_key->len); } } exit: - mbedtls_ecp_keypair_free( &key ); - mbedtls_ecp_keypair_free( &key2 ); + mbedtls_ecp_keypair_free(&key); + mbedtls_ecp_keypair_free(&key2); } /* END_CASE */ /* BEGIN_CASE depends_on:HAVE_FIX_NEGATIVE */ -void fix_negative( data_t *N_bin, int c, int bits ) +void fix_negative(data_t *N_bin, int c, int bits) { mbedtls_mpi C, M, N; - mbedtls_mpi_init( &C ); - mbedtls_mpi_init( &M ); - mbedtls_mpi_init( &N ); + mbedtls_mpi_init(&C); + mbedtls_mpi_init(&M); + mbedtls_mpi_init(&N); /* C = - c * 2^bits (positive since c is negative) */ - TEST_EQUAL( 0, mbedtls_mpi_lset( &C, -c ) ); - TEST_EQUAL( 0, mbedtls_mpi_shift_l( &C, bits ) ); + TEST_EQUAL(0, mbedtls_mpi_lset(&C, -c)); + TEST_EQUAL(0, mbedtls_mpi_shift_l(&C, bits)); - TEST_EQUAL( 0, mbedtls_mpi_read_binary( &N, N_bin->x, N_bin->len ) ); - TEST_EQUAL( 0, mbedtls_mpi_grow( &N, C.n ) ); + TEST_EQUAL(0, mbedtls_mpi_read_binary(&N, N_bin->x, N_bin->len)); + TEST_EQUAL(0, mbedtls_mpi_grow(&N, C.n)); /* M = N - C = - ( C - N ) (expected result of fix_negative) */ - TEST_EQUAL( 0, mbedtls_mpi_sub_mpi( &M, &N, &C ) ); + TEST_EQUAL(0, mbedtls_mpi_sub_mpi(&M, &N, &C)); - mbedtls_ecp_fix_negative( &N, c, bits ); + mbedtls_ecp_fix_negative(&N, c, bits); - TEST_EQUAL( 0, mbedtls_mpi_cmp_mpi( &N, &M ) ); + TEST_EQUAL(0, mbedtls_mpi_cmp_mpi(&N, &M)); exit: - mbedtls_mpi_free( &C ); - mbedtls_mpi_free( &M ); - mbedtls_mpi_free( &N ); + mbedtls_mpi_free(&C); + mbedtls_mpi_free(&M); + mbedtls_mpi_free(&N); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_ECP_MONTGOMERY_ENABLED */ -void genkey_mx_known_answer( int bits, data_t *seed, data_t *expected ) +void genkey_mx_known_answer(int bits, data_t *seed, data_t *expected) { mbedtls_test_rnd_buf_info rnd_info; mbedtls_mpi d; int ret; uint8_t *actual = NULL; - mbedtls_mpi_init( &d ); + mbedtls_mpi_init(&d); rnd_info.buf = seed->x; rnd_info.length = seed->len; rnd_info.fallback_f_rng = NULL; rnd_info.fallback_p_rng = NULL; - ASSERT_ALLOC( actual, expected->len ); + ASSERT_ALLOC(actual, expected->len); - ret = mbedtls_ecp_gen_privkey_mx( bits, &d, - mbedtls_test_rnd_buffer_rand, &rnd_info ); + ret = mbedtls_ecp_gen_privkey_mx(bits, &d, + mbedtls_test_rnd_buffer_rand, &rnd_info); - if( expected->len == 0 ) - { + if (expected->len == 0) { /* Expecting an error (happens if there isn't enough randomness) */ - TEST_ASSERT( ret != 0 ); - } - else - { - TEST_EQUAL( ret, 0 ); - TEST_EQUAL( (size_t) bits + 1, mbedtls_mpi_bitlen( &d ) ); - TEST_EQUAL( 0, mbedtls_mpi_write_binary( &d, actual, expected->len ) ); + TEST_ASSERT(ret != 0); + } else { + TEST_EQUAL(ret, 0); + TEST_EQUAL((size_t) bits + 1, mbedtls_mpi_bitlen(&d)); + TEST_EQUAL(0, mbedtls_mpi_write_binary(&d, actual, expected->len)); /* Test the exact result. This assumes that the output of the * RNG is used in a specific way, which is overly constraining. * The advantage is that it's easier to test the expected properties @@ -1148,146 +1152,146 @@ void genkey_mx_known_answer( int bits, data_t *seed, data_t *expected ) * (can be enforced by checking these bits). * - Other bits must be random (by testing with different RNG outputs, * we validate that those bits are indeed influenced by the RNG). */ - ASSERT_COMPARE( expected->x, expected->len, - actual, expected->len ); + ASSERT_COMPARE(expected->x, expected->len, + actual, expected->len); } exit: - mbedtls_free( actual ); - mbedtls_mpi_free( &d ); + mbedtls_free(actual); + mbedtls_mpi_free(&d); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_set_zero( int id, data_t * P_bin ) +void ecp_set_zero(int id, data_t *P_bin) { mbedtls_ecp_group grp; mbedtls_ecp_point pt, zero_pt, nonzero_pt; - mbedtls_ecp_group_init( &grp ); - mbedtls_ecp_point_init( &pt ); - mbedtls_ecp_point_init( &zero_pt ); - mbedtls_ecp_point_init( &nonzero_pt ); + mbedtls_ecp_group_init(&grp); + mbedtls_ecp_point_init(&pt); + mbedtls_ecp_point_init(&zero_pt); + mbedtls_ecp_point_init(&nonzero_pt); // Set zero and non-zero points for comparison - TEST_EQUAL( mbedtls_ecp_set_zero( &zero_pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_group_load( &grp, id ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_read_binary( &grp, &nonzero_pt, - P_bin->x, P_bin->len ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &zero_pt ), 1 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &nonzero_pt ), 0 ); + TEST_EQUAL(mbedtls_ecp_set_zero(&zero_pt), 0); + TEST_EQUAL(mbedtls_ecp_group_load(&grp, id), 0); + TEST_EQUAL(mbedtls_ecp_point_read_binary(&grp, &nonzero_pt, + P_bin->x, P_bin->len), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&zero_pt), 1); + TEST_EQUAL(mbedtls_ecp_is_zero(&nonzero_pt), 0); // Test initialized point - TEST_EQUAL( mbedtls_ecp_set_zero( &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &pt ), 1 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &zero_pt, &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &nonzero_pt, &zero_pt ), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_ecp_set_zero(&pt), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&pt), 1); + TEST_EQUAL(mbedtls_ecp_point_cmp(&zero_pt, &pt), 0); + TEST_EQUAL(mbedtls_ecp_point_cmp(&nonzero_pt, &zero_pt), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); // Test zeroed point - TEST_EQUAL( mbedtls_ecp_set_zero( &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &pt ), 1 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &zero_pt, &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &nonzero_pt, &pt ), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_ecp_set_zero(&pt), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&pt), 1); + TEST_EQUAL(mbedtls_ecp_point_cmp(&zero_pt, &pt), 0); + TEST_EQUAL(mbedtls_ecp_point_cmp(&nonzero_pt, &pt), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); // Set point to non-zero value - TEST_EQUAL( mbedtls_ecp_point_read_binary( &grp, &pt, - P_bin->x, P_bin->len ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &zero_pt, &pt ), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &nonzero_pt, &pt), 0 ); + TEST_EQUAL(mbedtls_ecp_point_read_binary(&grp, &pt, + P_bin->x, P_bin->len), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&pt), 0); + TEST_EQUAL(mbedtls_ecp_point_cmp(&zero_pt, &pt), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); + TEST_EQUAL(mbedtls_ecp_point_cmp(&nonzero_pt, &pt), 0); // Test non-zero point - TEST_EQUAL( mbedtls_ecp_set_zero( &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &pt ), 1 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &zero_pt, &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &nonzero_pt, &pt ), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_ecp_set_zero(&pt), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&pt), 1); + TEST_EQUAL(mbedtls_ecp_point_cmp(&zero_pt, &pt), 0); + TEST_EQUAL(mbedtls_ecp_point_cmp(&nonzero_pt, &pt), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); // Test freed non-zero point - TEST_EQUAL( mbedtls_ecp_point_read_binary( &grp, &pt, - P_bin->x, P_bin->len ), 0 ); - mbedtls_ecp_point_free( &pt ); - TEST_EQUAL( mbedtls_ecp_set_zero( &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_is_zero( &pt ), 1 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &zero_pt, &pt ), 0 ); - TEST_EQUAL( mbedtls_ecp_point_cmp( &nonzero_pt, &pt), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_ecp_point_read_binary(&grp, &pt, + P_bin->x, P_bin->len), 0); + mbedtls_ecp_point_free(&pt); + TEST_EQUAL(mbedtls_ecp_set_zero(&pt), 0); + TEST_EQUAL(mbedtls_ecp_is_zero(&pt), 1); + TEST_EQUAL(mbedtls_ecp_point_cmp(&zero_pt, &pt), 0); + TEST_EQUAL(mbedtls_ecp_point_cmp(&nonzero_pt, &pt), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_ecp_point_free( &pt ); - mbedtls_ecp_point_free( &zero_pt ); - mbedtls_ecp_point_free( &nonzero_pt ); + mbedtls_ecp_group_free(&grp); + mbedtls_ecp_point_free(&pt); + mbedtls_ecp_point_free(&zero_pt); + mbedtls_ecp_point_free(&nonzero_pt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void ecp_selftest( ) +void ecp_selftest() { - TEST_ASSERT( mbedtls_ecp_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_ecp_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_export( int id, char * Qx, char * Qy,char * d, int expected_ret, int invalid_grp ) +void ecp_export(int id, char *Qx, char *Qy, char *d, int expected_ret, int invalid_grp) { mbedtls_ecp_keypair key; mbedtls_ecp_group export_grp; mbedtls_mpi export_d; mbedtls_ecp_point export_Q; - mbedtls_ecp_group_init( &export_grp ); - mbedtls_ecp_group_init( &key.grp ); - mbedtls_mpi_init( &export_d ); - mbedtls_ecp_point_init( &export_Q ); + mbedtls_ecp_group_init(&export_grp); + mbedtls_ecp_group_init(&key.grp); + mbedtls_mpi_init(&export_d); + mbedtls_ecp_point_init(&export_Q); - mbedtls_ecp_keypair_init( &key ); - if( invalid_grp == 0 ) - TEST_ASSERT( mbedtls_ecp_group_load( &key.grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_string( &key.Q, 16, Qx, Qy ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &key.d, d ) == 0 ); + mbedtls_ecp_keypair_init(&key); + if (invalid_grp == 0) { + TEST_ASSERT(mbedtls_ecp_group_load(&key.grp, id) == 0); + } + TEST_ASSERT(mbedtls_ecp_point_read_string(&key.Q, 16, Qx, Qy) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&key.d, d) == 0); - TEST_EQUAL( mbedtls_ecp_export( &key, &export_grp, - &export_d, &export_Q ), expected_ret ); + TEST_EQUAL(mbedtls_ecp_export(&key, &export_grp, + &export_d, &export_Q), expected_ret); - if( expected_ret == 0 ) - { - TEST_EQUAL( mbedtls_ecp_point_cmp( &key.Q, &export_Q ), 0 ); - TEST_EQUAL( mbedtls_mpi_cmp_mpi( &key.d, &export_d ), 0 ); - TEST_EQUAL( mbedtls_ecp_group_cmp( &key.grp, &export_grp ), 0 ); + if (expected_ret == 0) { + TEST_EQUAL(mbedtls_ecp_point_cmp(&key.Q, &export_Q), 0); + TEST_EQUAL(mbedtls_mpi_cmp_mpi(&key.d, &export_d), 0); + TEST_EQUAL(mbedtls_ecp_group_cmp(&key.grp, &export_grp), 0); } exit: - mbedtls_ecp_keypair_free( &key ); - mbedtls_ecp_group_free( &export_grp ); - mbedtls_mpi_free( &export_d ); - mbedtls_ecp_point_free( &export_Q ); + mbedtls_ecp_keypair_free(&key); + mbedtls_ecp_group_free(&export_grp); + mbedtls_mpi_free(&export_d); + mbedtls_ecp_point_free(&export_Q); } /* END_CASE */ /* BEGIN_CASE */ -void ecp_check_order( int id, char * expected_order_hex ) +void ecp_check_order(int id, char *expected_order_hex) { mbedtls_ecp_group grp; mbedtls_mpi expected_n; - mbedtls_ecp_group_init( &grp ); - mbedtls_mpi_init( &expected_n ); + mbedtls_ecp_group_init(&grp); + mbedtls_mpi_init(&expected_n); - TEST_ASSERT( mbedtls_ecp_group_load( &grp, id ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &expected_n, expected_order_hex ) == 0); + TEST_ASSERT(mbedtls_ecp_group_load(&grp, id) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&expected_n, expected_order_hex) == 0); // check sign bits are well-formed (i.e. 1 or -1) - see #5810 - TEST_ASSERT( grp.N.s == -1 || grp.N.s == 1); - TEST_ASSERT( expected_n.s == -1 || expected_n.s == 1); + TEST_ASSERT(grp.N.s == -1 || grp.N.s == 1); + TEST_ASSERT(expected_n.s == -1 || expected_n.s == 1); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &grp.N, &expected_n ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&grp.N, &expected_n) == 0); exit: - mbedtls_ecp_group_free( &grp ); - mbedtls_mpi_free( &expected_n ); + mbedtls_ecp_group_free(&grp); + mbedtls_mpi_free(&expected_n); } /* END_CASE */ diff --git a/tests/suites/test_suite_entropy.function b/tests/suites/test_suite_entropy.function index c26f4f866..c36d2c83e 100644 --- a/tests/suites/test_suite_entropy.function +++ b/tests/suites/test_suite_entropy.function @@ -4,15 +4,13 @@ #include "mbedtls/md.h" #include "string.h" -typedef enum -{ +typedef enum { DUMMY_CONSTANT_LENGTH, /* Output context->length bytes */ DUMMY_REQUESTED_LENGTH, /* Output whatever length was requested */ DUMMY_FAIL, /* Return an error code */ } entropy_dummy_instruction; -typedef struct -{ +typedef struct { entropy_dummy_instruction instruction; size_t length; /* Length to return for DUMMY_CONSTANT_LENGTH */ size_t calls; /* Incremented at each call */ @@ -24,14 +22,13 @@ typedef struct * If data is NULL, write exactly the requested length. * Otherwise, write the length indicated by data or error if negative */ -static int entropy_dummy_source( void *arg, unsigned char *output, - size_t len, size_t *olen ) +static int entropy_dummy_source(void *arg, unsigned char *output, + size_t len, size_t *olen) { entropy_dummy_context *context = arg; ++context->calls; - switch( context->instruction ) - { + switch (context->instruction) { case DUMMY_CONSTANT_LENGTH: *olen = context->length; break; @@ -39,11 +36,11 @@ static int entropy_dummy_source( void *arg, unsigned char *output, *olen = len; break; case DUMMY_FAIL: - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; } - memset( output, 0x2a, *olen ); - return( 0 ); + memset(output, 0x2a, *olen); + return 0; } /* @@ -57,7 +54,7 @@ static int entropy_dummy_source( void *arg, unsigned char *output, * This might break memory checks in the future if sources need 'free-ing' then * as well. */ -static void entropy_clear_sources( mbedtls_entropy_context *ctx ) +static void entropy_clear_sources(mbedtls_entropy_context *ctx) { ctx->source_count = 0; } @@ -68,63 +65,71 @@ static void entropy_clear_sources( mbedtls_entropy_context *ctx ) */ static unsigned char buffer_seed[MBEDTLS_ENTROPY_BLOCK_SIZE]; -int buffer_nv_seed_read( unsigned char *buf, size_t buf_len ) +int buffer_nv_seed_read(unsigned char *buf, size_t buf_len) { - if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - memcpy( buf, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ); - return( 0 ); + memcpy(buf, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE); + return 0; } -int buffer_nv_seed_write( unsigned char *buf, size_t buf_len ) +int buffer_nv_seed_write(unsigned char *buf, size_t buf_len) { - if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - memcpy( buffer_seed, buf, MBEDTLS_ENTROPY_BLOCK_SIZE ); - return( 0 ); + memcpy(buffer_seed, buf, MBEDTLS_ENTROPY_BLOCK_SIZE); + return 0; } /* * NV seed read/write helpers that fill the base seedfile */ -static int write_nv_seed( unsigned char *buf, size_t buf_len ) +static int write_nv_seed(unsigned char *buf, size_t buf_len) { FILE *f; - if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - if( ( f = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w" ) ) == NULL ) - return( -1 ); + if ((f = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "w")) == NULL) { + return -1; + } - if( fwrite( buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f ) != - MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (fwrite(buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f) != + MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - fclose( f ); + fclose(f); - return( 0 ); + return 0; } -int read_nv_seed( unsigned char *buf, size_t buf_len ) +int read_nv_seed(unsigned char *buf, size_t buf_len) { FILE *f; - if( buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (buf_len != MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - if( ( f = fopen( MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb" ) ) == NULL ) - return( -1 ); + if ((f = fopen(MBEDTLS_PLATFORM_STD_NV_SEED_FILE, "rb")) == NULL) { + return -1; + } - if( fread( buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f ) != - MBEDTLS_ENTROPY_BLOCK_SIZE ) - return( -1 ); + if (fread(buf, 1, MBEDTLS_ENTROPY_BLOCK_SIZE, f) != + MBEDTLS_ENTROPY_BLOCK_SIZE) { + return -1; + } - fclose( f ); + fclose(f); - return( 0 ); + return 0; } #endif /* MBEDTLS_ENTROPY_NV_SEED */ /* END_HEADER */ @@ -135,7 +140,7 @@ int read_nv_seed( unsigned char *buf, size_t buf_len ) */ /* BEGIN_CASE */ -void entropy_init_free( int reinit ) +void entropy_init_free(int reinit) { mbedtls_entropy_context ctx; @@ -143,12 +148,13 @@ void entropy_init_free( int reinit ) * to call mbedtls_entropy_free() unconditionally on an error path without * checking whether it has already been called in the success path. */ - mbedtls_entropy_init( &ctx ); - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_init(&ctx); + mbedtls_entropy_free(&ctx); - if( reinit ) - mbedtls_entropy_init( &ctx ); - mbedtls_entropy_free( &ctx ); + if (reinit) { + mbedtls_entropy_init(&ctx); + } + mbedtls_entropy_free(&ctx); /* This test case always succeeds, functionally speaking. A plausible * bug might trigger an invalid pointer dereference or a memory leak. */ @@ -157,189 +163,190 @@ void entropy_init_free( int reinit ) /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */ -void entropy_seed_file( char * path, int ret ) +void entropy_seed_file(char *path, int ret) { mbedtls_entropy_context ctx; - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); - TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, path ) == ret ); - TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, path ) == ret ); + TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, path) == ret); + TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, path) == ret); exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */ -void entropy_write_base_seed_file( int ret ) +void entropy_write_base_seed_file(int ret) { mbedtls_entropy_context ctx; - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); - TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE ) == ret ); - TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE ) == ret ); + TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE) == ret); + TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, MBEDTLS_PLATFORM_STD_NV_SEED_FILE) == ret); exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void entropy_no_sources( ) +void entropy_no_sources() { mbedtls_entropy_context ctx; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; - mbedtls_entropy_init( &ctx ); - entropy_clear_sources( &ctx ); - TEST_EQUAL( mbedtls_entropy_func( &ctx, buf, sizeof( buf ) ), - MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED ); + mbedtls_entropy_init(&ctx); + entropy_clear_sources(&ctx); + TEST_EQUAL(mbedtls_entropy_func(&ctx, buf, sizeof(buf)), + MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED); exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void entropy_too_many_sources( ) +void entropy_too_many_sources() { mbedtls_entropy_context ctx; size_t i; - entropy_dummy_context dummy = {DUMMY_REQUESTED_LENGTH, 0, 0}; + entropy_dummy_context dummy = { DUMMY_REQUESTED_LENGTH, 0, 0 }; - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); /* * It's hard to tell precisely when the error will occur, * since we don't know how many sources were automatically added. */ - for( i = 0; i < MBEDTLS_ENTROPY_MAX_SOURCES; i++ ) - (void) mbedtls_entropy_add_source( &ctx, entropy_dummy_source, &dummy, - 16, MBEDTLS_ENTROPY_SOURCE_WEAK ); + for (i = 0; i < MBEDTLS_ENTROPY_MAX_SOURCES; i++) { + (void) mbedtls_entropy_add_source(&ctx, entropy_dummy_source, &dummy, + 16, MBEDTLS_ENTROPY_SOURCE_WEAK); + } - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, &dummy, - 16, MBEDTLS_ENTROPY_SOURCE_WEAK ) - == MBEDTLS_ERR_ENTROPY_MAX_SOURCES ); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, &dummy, + 16, MBEDTLS_ENTROPY_SOURCE_WEAK) + == MBEDTLS_ERR_ENTROPY_MAX_SOURCES); exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:ENTROPY_HAVE_STRONG */ -void entropy_func_len( int len, int ret ) +void entropy_func_len(int len, int ret) { mbedtls_entropy_context ctx; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE + 10] = { 0 }; unsigned char acc[MBEDTLS_ENTROPY_BLOCK_SIZE + 10] = { 0 }; size_t i, j; - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); /* * See comments in mbedtls_entropy_self_test() */ - for( i = 0; i < 8; i++ ) - { - TEST_ASSERT( mbedtls_entropy_func( &ctx, buf, len ) == ret ); - for( j = 0; j < sizeof( buf ); j++ ) + for (i = 0; i < 8; i++) { + TEST_ASSERT(mbedtls_entropy_func(&ctx, buf, len) == ret); + for (j = 0; j < sizeof(buf); j++) { acc[j] |= buf[j]; + } } - if( ret == 0 ) - for( j = 0; j < (size_t) len; j++ ) - TEST_ASSERT( acc[j] != 0 ); + if (ret == 0) { + for (j = 0; j < (size_t) len; j++) { + TEST_ASSERT(acc[j] != 0); + } + } - for( j = len; j < sizeof( buf ); j++ ) - TEST_ASSERT( acc[j] == 0 ); + for (j = len; j < sizeof(buf); j++) { + TEST_ASSERT(acc[j] == 0); + } exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void entropy_source_fail( char * path ) +void entropy_source_fail(char *path) { mbedtls_entropy_context ctx; unsigned char buf[16]; - entropy_dummy_context dummy = {DUMMY_FAIL, 0, 0}; + entropy_dummy_context dummy = { DUMMY_FAIL, 0, 0 }; - mbedtls_entropy_init( &ctx ); + mbedtls_entropy_init(&ctx); - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, - &dummy, 16, - MBEDTLS_ENTROPY_SOURCE_WEAK ) - == 0 ); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, + &dummy, 16, + MBEDTLS_ENTROPY_SOURCE_WEAK) + == 0); - TEST_ASSERT( mbedtls_entropy_func( &ctx, buf, sizeof( buf ) ) - == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); - TEST_ASSERT( mbedtls_entropy_gather( &ctx ) - == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + TEST_ASSERT(mbedtls_entropy_func(&ctx, buf, sizeof(buf)) + == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED); + TEST_ASSERT(mbedtls_entropy_gather(&ctx) + == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED); #if defined(MBEDTLS_FS_IO) && defined(MBEDTLS_ENTROPY_NV_SEED) - TEST_ASSERT( mbedtls_entropy_write_seed_file( &ctx, path ) - == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); - TEST_ASSERT( mbedtls_entropy_update_seed_file( &ctx, path ) - == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + TEST_ASSERT(mbedtls_entropy_write_seed_file(&ctx, path) + == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED); + TEST_ASSERT(mbedtls_entropy_update_seed_file(&ctx, path) + == MBEDTLS_ERR_ENTROPY_SOURCE_FAILED); #else ((void) path); #endif exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void entropy_threshold( int threshold, int chunk_size, int result ) +void entropy_threshold(int threshold, int chunk_size, int result) { mbedtls_entropy_context ctx; entropy_dummy_context strong = - {DUMMY_CONSTANT_LENGTH, MBEDTLS_ENTROPY_BLOCK_SIZE, 0}; - entropy_dummy_context weak = {DUMMY_CONSTANT_LENGTH, chunk_size, 0}; + { DUMMY_CONSTANT_LENGTH, MBEDTLS_ENTROPY_BLOCK_SIZE, 0 }; + entropy_dummy_context weak = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 }; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE] = { 0 }; int ret; - mbedtls_entropy_init( &ctx ); - entropy_clear_sources( &ctx ); + mbedtls_entropy_init(&ctx); + entropy_clear_sources(&ctx); /* Set strong source that reaches its threshold immediately and * a weak source whose threshold is a test parameter. */ - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, - &strong, 1, - MBEDTLS_ENTROPY_SOURCE_STRONG ) == 0 ); - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, - &weak, threshold, - MBEDTLS_ENTROPY_SOURCE_WEAK ) == 0 ); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, + &strong, 1, + MBEDTLS_ENTROPY_SOURCE_STRONG) == 0); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, + &weak, threshold, + MBEDTLS_ENTROPY_SOURCE_WEAK) == 0); - ret = mbedtls_entropy_func( &ctx, buf, sizeof( buf ) ); + ret = mbedtls_entropy_func(&ctx, buf, sizeof(buf)); - if( result >= 0 ) - { - TEST_ASSERT( ret == 0 ); + if (result >= 0) { + TEST_ASSERT(ret == 0); #if defined(MBEDTLS_ENTROPY_NV_SEED) /* If the NV seed functionality is enabled, there are two entropy * updates: before and after updating the NV seed. */ result *= 2; #endif - TEST_ASSERT( weak.calls == (size_t) result ); - } - else - { - TEST_ASSERT( ret == result ); + TEST_ASSERT(weak.calls == (size_t) result); + } else { + TEST_ASSERT(ret == result); } exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void entropy_calls( int strength1, int strength2, - int threshold, int chunk_size, - int result ) +void entropy_calls(int strength1, int strength2, + int threshold, int chunk_size, + int result) { /* * if result >= 0: result = expected number of calls to source 1 @@ -347,101 +354,98 @@ void entropy_calls( int strength1, int strength2, */ mbedtls_entropy_context ctx; - entropy_dummy_context dummy1 = {DUMMY_CONSTANT_LENGTH, chunk_size, 0}; - entropy_dummy_context dummy2 = {DUMMY_CONSTANT_LENGTH, chunk_size, 0}; + entropy_dummy_context dummy1 = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 }; + entropy_dummy_context dummy2 = { DUMMY_CONSTANT_LENGTH, chunk_size, 0 }; unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE] = { 0 }; int ret; - mbedtls_entropy_init( &ctx ); - entropy_clear_sources( &ctx ); + mbedtls_entropy_init(&ctx); + entropy_clear_sources(&ctx); - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, - &dummy1, threshold, - strength1 ) == 0 ); - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, entropy_dummy_source, - &dummy2, threshold, - strength2 ) == 0 ); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, + &dummy1, threshold, + strength1) == 0); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, entropy_dummy_source, + &dummy2, threshold, + strength2) == 0); - ret = mbedtls_entropy_func( &ctx, buf, sizeof( buf ) ); + ret = mbedtls_entropy_func(&ctx, buf, sizeof(buf)); - if( result >= 0 ) - { - TEST_ASSERT( ret == 0 ); + if (result >= 0) { + TEST_ASSERT(ret == 0); #if defined(MBEDTLS_ENTROPY_NV_SEED) /* If the NV seed functionality is enabled, there are two entropy * updates: before and after updating the NV seed. */ result *= 2; #endif - TEST_ASSERT( dummy1.calls == (size_t) result ); - } - else - { - TEST_ASSERT( ret == result ); + TEST_ASSERT(dummy1.calls == (size_t) result); + } else { + TEST_ASSERT(ret == result); } exit: - mbedtls_entropy_free( &ctx ); + mbedtls_entropy_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO */ -void nv_seed_file_create( ) +void nv_seed_file_create() { unsigned char buf[MBEDTLS_ENTROPY_BLOCK_SIZE]; - memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); - TEST_ASSERT( write_nv_seed( buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(write_nv_seed(buf, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_FS_IO:MBEDTLS_PLATFORM_NV_SEED_ALT */ -void entropy_nv_seed_std_io( ) +void entropy_nv_seed_std_io() { unsigned char io_seed[MBEDTLS_ENTROPY_BLOCK_SIZE]; unsigned char check_seed[MBEDTLS_ENTROPY_BLOCK_SIZE]; - memset( io_seed, 1, MBEDTLS_ENTROPY_BLOCK_SIZE ); - memset( check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(io_seed, 1, MBEDTLS_ENTROPY_BLOCK_SIZE); + memset(check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); - mbedtls_platform_set_nv_seed( mbedtls_platform_std_nv_seed_read, - mbedtls_platform_std_nv_seed_write ); + mbedtls_platform_set_nv_seed(mbedtls_platform_std_nv_seed_read, + mbedtls_platform_std_nv_seed_write); /* Check if platform NV read and write manipulate the same data */ - TEST_ASSERT( write_nv_seed( io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); - TEST_ASSERT( mbedtls_nv_seed_read( check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == - MBEDTLS_ENTROPY_BLOCK_SIZE ); + TEST_ASSERT(write_nv_seed(io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); + TEST_ASSERT(mbedtls_nv_seed_read(check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == + MBEDTLS_ENTROPY_BLOCK_SIZE); - TEST_ASSERT( memcmp( io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(memcmp(io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); - memset( check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(check_seed, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); /* Check if platform NV write and raw read manipulate the same data */ - TEST_ASSERT( mbedtls_nv_seed_write( io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == - MBEDTLS_ENTROPY_BLOCK_SIZE ); - TEST_ASSERT( read_nv_seed( check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(mbedtls_nv_seed_write(io_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == + MBEDTLS_ENTROPY_BLOCK_SIZE); + TEST_ASSERT(read_nv_seed(check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); - TEST_ASSERT( memcmp( io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(memcmp(io_seed, check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_MD_C:MBEDTLS_ENTROPY_NV_SEED:MBEDTLS_PLATFORM_NV_SEED_ALT */ -void entropy_nv_seed( data_t * read_seed ) +void entropy_nv_seed(data_t *read_seed) { #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_type( MBEDTLS_MD_SHA512 ); + mbedtls_md_info_from_type(MBEDTLS_MD_SHA512); #elif defined(MBEDTLS_ENTROPY_SHA256_ACCUMULATOR) const mbedtls_md_info_t *md_info = - mbedtls_md_info_from_type( MBEDTLS_MD_SHA256 ); + mbedtls_md_info_from_type(MBEDTLS_MD_SHA256); #else #error "Unsupported entropy accumulator" #endif mbedtls_md_context_t accumulator; mbedtls_entropy_context ctx; - int (*original_mbedtls_nv_seed_read)( unsigned char *buf, size_t buf_len ) = + int (*original_mbedtls_nv_seed_read)(unsigned char *buf, size_t buf_len) = mbedtls_nv_seed_read; - int (*original_mbedtls_nv_seed_write)( unsigned char *buf, size_t buf_len ) = + int (*original_mbedtls_nv_seed_write)(unsigned char *buf, size_t buf_len) = mbedtls_nv_seed_write; unsigned char header[2]; @@ -451,80 +455,80 @@ void entropy_nv_seed( data_t * read_seed ) unsigned char check_seed[MBEDTLS_ENTROPY_BLOCK_SIZE]; unsigned char check_entropy[MBEDTLS_ENTROPY_BLOCK_SIZE]; - memset( entropy, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); - memset( buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); - memset( empty, 0, MBEDTLS_ENTROPY_BLOCK_SIZE ); - memset( check_seed, 2, MBEDTLS_ENTROPY_BLOCK_SIZE ); - memset( check_entropy, 3, MBEDTLS_ENTROPY_BLOCK_SIZE ); + memset(entropy, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); + memset(buf, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); + memset(empty, 0, MBEDTLS_ENTROPY_BLOCK_SIZE); + memset(check_seed, 2, MBEDTLS_ENTROPY_BLOCK_SIZE); + memset(check_entropy, 3, MBEDTLS_ENTROPY_BLOCK_SIZE); // Make sure we read/write NV seed from our buffers - mbedtls_platform_set_nv_seed( buffer_nv_seed_read, buffer_nv_seed_write ); + mbedtls_platform_set_nv_seed(buffer_nv_seed_read, buffer_nv_seed_write); - mbedtls_md_init( &accumulator ); - mbedtls_entropy_init( &ctx ); - entropy_clear_sources( &ctx ); + mbedtls_md_init(&accumulator); + mbedtls_entropy_init(&ctx); + entropy_clear_sources(&ctx); - TEST_ASSERT( mbedtls_entropy_add_source( &ctx, mbedtls_nv_seed_poll, NULL, - MBEDTLS_ENTROPY_BLOCK_SIZE, - MBEDTLS_ENTROPY_SOURCE_STRONG ) == 0 ); + TEST_ASSERT(mbedtls_entropy_add_source(&ctx, mbedtls_nv_seed_poll, NULL, + MBEDTLS_ENTROPY_BLOCK_SIZE, + MBEDTLS_ENTROPY_SOURCE_STRONG) == 0); // Set the initial NV seed to read - TEST_ASSERT( read_seed->len >= MBEDTLS_ENTROPY_BLOCK_SIZE ); - memcpy( buffer_seed, read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE ); + TEST_ASSERT(read_seed->len >= MBEDTLS_ENTROPY_BLOCK_SIZE); + memcpy(buffer_seed, read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE); // Do an entropy run - TEST_ASSERT( mbedtls_entropy_func( &ctx, entropy, sizeof( entropy ) ) == 0 ); + TEST_ASSERT(mbedtls_entropy_func(&ctx, entropy, sizeof(entropy)) == 0); // Determine what should have happened with manual entropy internal logic // Init accumulator header[1] = MBEDTLS_ENTROPY_BLOCK_SIZE; - TEST_ASSERT( mbedtls_md_setup( &accumulator, md_info, 0 ) == 0 ); + TEST_ASSERT(mbedtls_md_setup(&accumulator, md_info, 0) == 0); // First run for updating write_seed header[0] = 0; - TEST_ASSERT( mbedtls_md_starts( &accumulator ) == 0 ); - TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 ); - TEST_ASSERT( mbedtls_md_update( &accumulator, - read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); - TEST_ASSERT( mbedtls_md_finish( &accumulator, buf ) == 0 ); + TEST_ASSERT(mbedtls_md_starts(&accumulator) == 0); + TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0); + TEST_ASSERT(mbedtls_md_update(&accumulator, + read_seed->x, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); + TEST_ASSERT(mbedtls_md_finish(&accumulator, buf) == 0); - TEST_ASSERT( mbedtls_md_starts( &accumulator ) == 0 ); - TEST_ASSERT( mbedtls_md_update( &accumulator, - buf, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(mbedtls_md_starts(&accumulator) == 0); + TEST_ASSERT(mbedtls_md_update(&accumulator, + buf, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); - TEST_ASSERT( mbedtls_md( md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE, - check_seed ) == 0 ); + TEST_ASSERT(mbedtls_md(md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE, + check_seed) == 0); // Second run for actual entropy (triggers mbedtls_entropy_update_nv_seed) header[0] = MBEDTLS_ENTROPY_SOURCE_MANUAL; - TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 ); - TEST_ASSERT( mbedtls_md_update( &accumulator, - empty, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0); + TEST_ASSERT(mbedtls_md_update(&accumulator, + empty, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); header[0] = 0; - TEST_ASSERT( mbedtls_md_update( &accumulator, header, 2 ) == 0 ); - TEST_ASSERT( mbedtls_md_update( &accumulator, - check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); - TEST_ASSERT( mbedtls_md_finish( &accumulator, buf ) == 0 ); + TEST_ASSERT(mbedtls_md_update(&accumulator, header, 2) == 0); + TEST_ASSERT(mbedtls_md_update(&accumulator, + check_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); + TEST_ASSERT(mbedtls_md_finish(&accumulator, buf) == 0); - TEST_ASSERT( mbedtls_md( md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE, - check_entropy ) == 0 ); + TEST_ASSERT(mbedtls_md(md_info, buf, MBEDTLS_ENTROPY_BLOCK_SIZE, + check_entropy) == 0); // Check result of both NV file and entropy received with the manual calculations - TEST_ASSERT( memcmp( check_seed, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); - TEST_ASSERT( memcmp( check_entropy, entropy, MBEDTLS_ENTROPY_BLOCK_SIZE ) == 0 ); + TEST_ASSERT(memcmp(check_seed, buffer_seed, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); + TEST_ASSERT(memcmp(check_entropy, entropy, MBEDTLS_ENTROPY_BLOCK_SIZE) == 0); exit: - mbedtls_md_free( &accumulator ); - mbedtls_entropy_free( &ctx ); + mbedtls_md_free(&accumulator); + mbedtls_entropy_free(&ctx); mbedtls_nv_seed_read = original_mbedtls_nv_seed_read; mbedtls_nv_seed_write = original_mbedtls_nv_seed_write; } /* END_CASE */ /* BEGIN_CASE depends_on:ENTROPY_HAVE_STRONG:MBEDTLS_SELF_TEST */ -void entropy_selftest( int result ) +void entropy_selftest(int result) { - TEST_ASSERT( mbedtls_entropy_self_test( 1 ) == result ); + TEST_ASSERT(mbedtls_entropy_self_test(1) == result); } /* END_CASE */ diff --git a/tests/suites/test_suite_error.function b/tests/suites/test_suite_error.function index 68831ce51..4c38ab05f 100644 --- a/tests/suites/test_suite_error.function +++ b/tests/suites/test_suite_error.function @@ -8,14 +8,14 @@ */ /* BEGIN_CASE */ -void error_strerror( int code, char * result_str ) +void error_strerror(int code, char *result_str) { char buf[500]; - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - mbedtls_strerror( code, buf, 500 ); + mbedtls_strerror(code, buf, 500); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function index eb2ced34a..fd68abf4f 100644 --- a/tests/suites/test_suite_gcm.function +++ b/tests/suites/test_suite_gcm.function @@ -4,15 +4,15 @@ /* Use the multipart interface to process the encrypted data in two parts * and check that the output matches the expected output. * The context must have been set up with the key. */ -static int check_multipart( mbedtls_gcm_context *ctx, - int mode, - const data_t *iv, - const data_t *add, - const data_t *input, - const data_t *expected_output, - const data_t *tag, - size_t n1, - size_t n1_add) +static int check_multipart(mbedtls_gcm_context *ctx, + int mode, + const data_t *iv, + const data_t *add, + const data_t *input, + const data_t *expected_output, + const data_t *tag, + size_t n1, + size_t n1_add) { int ok = 0; uint8_t *output = NULL; @@ -21,91 +21,90 @@ static int check_multipart( mbedtls_gcm_context *ctx, size_t olen; /* Sanity checks on the test data */ - TEST_ASSERT( n1 <= input->len ); - TEST_ASSERT( n1_add <= add->len ); - TEST_EQUAL( input->len, expected_output->len ); + TEST_ASSERT(n1 <= input->len); + TEST_ASSERT(n1_add <= add->len); + TEST_EQUAL(input->len, expected_output->len); - TEST_EQUAL( 0, mbedtls_gcm_starts( ctx, mode, - iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_gcm_update_ad( ctx, add->x, n1_add ) ); - TEST_EQUAL( 0, mbedtls_gcm_update_ad( ctx, add->x + n1_add, n2_add ) ); + TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode, + iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x, n1_add)); + TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x + n1_add, n2_add)); /* Allocate a tight buffer for each update call. This way, if the function * tries to write beyond the advertised required buffer size, this will * count as an overflow for memory sanitizers and static checkers. */ - ASSERT_ALLOC( output, n1 ); + ASSERT_ALLOC(output, n1); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_gcm_update( ctx, input->x, n1, output, n1, &olen ) ); - TEST_EQUAL( n1, olen ); - ASSERT_COMPARE( output, olen, expected_output->x, n1 ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x, n1, output, n1, &olen)); + TEST_EQUAL(n1, olen); + ASSERT_COMPARE(output, olen, expected_output->x, n1); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, n2 ); + ASSERT_ALLOC(output, n2); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_gcm_update( ctx, input->x + n1, n2, output, n2, &olen ) ); - TEST_EQUAL( n2, olen ); - ASSERT_COMPARE( output, olen, expected_output->x + n1, n2 ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x + n1, n2, output, n2, &olen)); + TEST_EQUAL(n2, olen); + ASSERT_COMPARE(output, olen, expected_output->x + n1, n2); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_gcm_finish( ctx, NULL, 0, &olen, output, tag->len ) ); - TEST_EQUAL( 0, olen ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len)); + TEST_EQUAL(0, olen); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); + mbedtls_free(output); output = NULL; ok = 1; exit: - mbedtls_free( output ); - return( ok ); + mbedtls_free(output); + return ok; } -static void check_cipher_with_empty_ad( mbedtls_gcm_context *ctx, - int mode, - const data_t *iv, - const data_t *input, - const data_t *expected_output, - const data_t *tag, - size_t ad_update_count) +static void check_cipher_with_empty_ad(mbedtls_gcm_context *ctx, + int mode, + const data_t *iv, + const data_t *input, + const data_t *expected_output, + const data_t *tag, + size_t ad_update_count) { size_t n; uint8_t *output = NULL; size_t olen; /* Sanity checks on the test data */ - TEST_EQUAL( input->len, expected_output->len ); + TEST_EQUAL(input->len, expected_output->len); - TEST_EQUAL( 0, mbedtls_gcm_starts( ctx, mode, - iv->x, iv->len ) ); + TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode, + iv->x, iv->len)); - for( n = 0; n < ad_update_count; n++ ) - { - TEST_EQUAL( 0, mbedtls_gcm_update_ad( ctx, NULL, 0 ) ); + for (n = 0; n < ad_update_count; n++) { + TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, NULL, 0)); } /* Allocate a tight buffer for each update call. This way, if the function * tries to write beyond the advertised required buffer size, this will * count as an overflow for memory sanitizers and static checkers. */ - ASSERT_ALLOC( output, input->len ); + ASSERT_ALLOC(output, input->len); olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_gcm_update( ctx, input->x, input->len, output, input->len, &olen ) ); - TEST_EQUAL( input->len, olen ); - ASSERT_COMPARE( output, olen, expected_output->x, input->len ); - mbedtls_free( output ); + TEST_EQUAL(0, mbedtls_gcm_update(ctx, input->x, input->len, output, input->len, &olen)); + TEST_EQUAL(input->len, olen); + ASSERT_COMPARE(output, olen, expected_output->x, input->len); + mbedtls_free(output); output = NULL; - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_gcm_finish( ctx, NULL, 0, &olen, output, tag->len ) ); - TEST_EQUAL( 0, olen ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len)); + TEST_EQUAL(0, olen); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); exit: - mbedtls_free( output ); + mbedtls_free(output); } -static void check_empty_cipher_with_ad( mbedtls_gcm_context *ctx, +static void check_empty_cipher_with_ad(mbedtls_gcm_context *ctx, int mode, const data_t *iv, const data_t *add, @@ -114,45 +113,44 @@ static void check_empty_cipher_with_ad( mbedtls_gcm_context *ctx, { size_t olen; size_t n; - uint8_t* output_tag = NULL; + uint8_t *output_tag = NULL; - TEST_EQUAL( 0, mbedtls_gcm_starts( ctx, mode, iv->x, iv->len ) ); - TEST_EQUAL( 0, mbedtls_gcm_update_ad( ctx, add->x, add->len ) ); + TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode, iv->x, iv->len)); + TEST_EQUAL(0, mbedtls_gcm_update_ad(ctx, add->x, add->len)); - for( n = 0; n < cipher_update_count; n++ ) - { + for (n = 0; n < cipher_update_count; n++) { olen = 0xdeadbeef; - TEST_EQUAL( 0, mbedtls_gcm_update( ctx, NULL, 0, NULL, 0, &olen ) ); - TEST_EQUAL( 0, olen ); + TEST_EQUAL(0, mbedtls_gcm_update(ctx, NULL, 0, NULL, 0, &olen)); + TEST_EQUAL(0, olen); } - ASSERT_ALLOC( output_tag, tag->len ); - TEST_EQUAL( 0, mbedtls_gcm_finish( ctx, NULL, 0, &olen, - output_tag, tag->len ) ); - TEST_EQUAL( 0, olen ); - ASSERT_COMPARE( output_tag, tag->len, tag->x, tag->len ); + ASSERT_ALLOC(output_tag, tag->len); + TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, + output_tag, tag->len)); + TEST_EQUAL(0, olen); + ASSERT_COMPARE(output_tag, tag->len, tag->x, tag->len); exit: - mbedtls_free( output_tag ); + mbedtls_free(output_tag); } -static void check_no_cipher_no_ad( mbedtls_gcm_context *ctx, - int mode, - const data_t *iv, - const data_t *tag ) +static void check_no_cipher_no_ad(mbedtls_gcm_context *ctx, + int mode, + const data_t *iv, + const data_t *tag) { uint8_t *output = NULL; size_t olen = 0; - TEST_EQUAL( 0, mbedtls_gcm_starts( ctx, mode, - iv->x, iv->len ) ); - ASSERT_ALLOC( output, tag->len ); - TEST_EQUAL( 0, mbedtls_gcm_finish( ctx, NULL, 0, &olen, output, tag->len ) ); - TEST_EQUAL( 0, olen ); - ASSERT_COMPARE( output, tag->len, tag->x, tag->len ); + TEST_EQUAL(0, mbedtls_gcm_starts(ctx, mode, + iv->x, iv->len)); + ASSERT_ALLOC(output, tag->len); + TEST_EQUAL(0, mbedtls_gcm_finish(ctx, NULL, 0, &olen, output, tag->len)); + TEST_EQUAL(0, olen); + ASSERT_COMPARE(output, tag->len, tag->x, tag->len); exit: - mbedtls_free( output ); + mbedtls_free(output); } /* END_HEADER */ @@ -163,36 +161,37 @@ exit: */ /* BEGIN_CASE */ -void gcm_bad_parameters( int cipher_id, int direction, - data_t *key_str, data_t *src_str, - data_t *iv_str, data_t *add_str, - int tag_len_bits, int gcm_result ) +void gcm_bad_parameters(int cipher_id, int direction, + data_t *key_str, data_t *src_str, + data_t *iv_str, data_t *add_str, + int tag_len_bits, int gcm_result) { unsigned char output[128]; unsigned char tag_output[16]; mbedtls_gcm_context ctx; size_t tag_len = tag_len_bits / 8; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - memset( output, 0x00, sizeof( output ) ); - memset( tag_output, 0x00, sizeof( tag_output ) ); + memset(output, 0x00, sizeof(output)); + memset(tag_output, 0x00, sizeof(tag_output)); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - TEST_ASSERT( mbedtls_gcm_crypt_and_tag( &ctx, direction, src_str->len, iv_str->x, iv_str->len, - add_str->x, add_str->len, src_str->x, output, tag_len, tag_output ) == gcm_result ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + TEST_ASSERT(mbedtls_gcm_crypt_and_tag(&ctx, direction, src_str->len, iv_str->x, iv_str->len, + add_str->x, add_str->len, src_str->x, output, tag_len, + tag_output) == gcm_result); exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_encrypt_and_tag( int cipher_id, data_t * key_str, - data_t * src_str, data_t * iv_str, - data_t * add_str, data_t * dst, - int tag_len_bits, data_t * tag, - int init_result ) +void gcm_encrypt_and_tag(int cipher_id, data_t *key_str, + data_t *src_str, data_t *iv_str, + data_t *add_str, data_t *dst, + int tag_len_bits, data_t *tag, + int init_result) { unsigned char output[128]; unsigned char tag_output[16]; @@ -201,45 +200,45 @@ void gcm_encrypt_and_tag( int cipher_id, data_t * key_str, size_t n1; size_t n1_add; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); memset(output, 0x00, 128); memset(tag_output, 0x00, 16); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == init_result ); - if( init_result == 0 ) - { - TEST_ASSERT( mbedtls_gcm_crypt_and_tag( &ctx, MBEDTLS_GCM_ENCRYPT, src_str->len, iv_str->x, iv_str->len, add_str->x, add_str->len, src_str->x, output, tag_len, tag_output ) == 0 ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == init_result); + if (init_result == 0) { + TEST_ASSERT(mbedtls_gcm_crypt_and_tag(&ctx, MBEDTLS_GCM_ENCRYPT, src_str->len, iv_str->x, + iv_str->len, add_str->x, add_str->len, src_str->x, + output, tag_len, tag_output) == 0); - ASSERT_COMPARE( output, src_str->len, dst->x, dst->len ); - ASSERT_COMPARE( tag_output, tag_len, tag->x, tag->len ); + ASSERT_COMPARE(output, src_str->len, dst->x, dst->len); + ASSERT_COMPARE(tag_output, tag_len, tag->x, tag->len); - for( n1 = 0; n1 <= src_str->len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add_str->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_GCM_ENCRYPT, - iv_str, add_str, src_str, - dst, tag, - n1, n1_add ) ) + for (n1 = 0; n1 <= src_str->len; n1 += 1) { + for (n1_add = 0; n1_add <= add_str->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_GCM_ENCRYPT, + iv_str, add_str, src_str, + dst, tag, + n1, n1_add)) { goto exit; + } } } } exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_decrypt_and_verify( int cipher_id, data_t * key_str, - data_t * src_str, data_t * iv_str, - data_t * add_str, int tag_len_bits, - data_t * tag_str, char * result, - data_t * pt_result, int init_result ) +void gcm_decrypt_and_verify(int cipher_id, data_t *key_str, + data_t *src_str, data_t *iv_str, + data_t *add_str, int tag_len_bits, + data_t *tag_str, char *result, + data_t *pt_result, int init_result) { unsigned char output[128]; mbedtls_gcm_context ctx; @@ -248,215 +247,220 @@ void gcm_decrypt_and_verify( int cipher_id, data_t * key_str, size_t n1; size_t n1_add; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); memset(output, 0x00, 128); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == init_result ); - if( init_result == 0 ) - { - ret = mbedtls_gcm_auth_decrypt( &ctx, src_str->len, iv_str->x, iv_str->len, add_str->x, add_str->len, tag_str->x, tag_len, src_str->x, output ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == init_result); + if (init_result == 0) { + ret = mbedtls_gcm_auth_decrypt(&ctx, + src_str->len, + iv_str->x, + iv_str->len, + add_str->x, + add_str->len, + tag_str->x, + tag_len, + src_str->x, + output); - if( strcmp( "FAIL", result ) == 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_GCM_AUTH_FAILED ); - } - else - { - TEST_ASSERT( ret == 0 ); - ASSERT_COMPARE( output, src_str->len, pt_result->x, pt_result->len ); + if (strcmp("FAIL", result) == 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_GCM_AUTH_FAILED); + } else { + TEST_ASSERT(ret == 0); + ASSERT_COMPARE(output, src_str->len, pt_result->x, pt_result->len); - for( n1 = 0; n1 <= src_str->len; n1 += 1 ) - { - for( n1_add = 0; n1_add <= add_str->len; n1_add += 1 ) - { - mbedtls_test_set_step( n1 * 10000 + n1_add ); - if( !check_multipart( &ctx, MBEDTLS_GCM_DECRYPT, - iv_str, add_str, src_str, - pt_result, tag_str, - n1, n1_add ) ) + for (n1 = 0; n1 <= src_str->len; n1 += 1) { + for (n1_add = 0; n1_add <= add_str->len; n1_add += 1) { + mbedtls_test_set_step(n1 * 10000 + n1_add); + if (!check_multipart(&ctx, MBEDTLS_GCM_DECRYPT, + iv_str, add_str, src_str, + pt_result, tag_str, + n1, n1_add)) { goto exit; + } } } } } exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_decrypt_and_verify_empty_cipher( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * add_str, - data_t * tag_str, - int cipher_update_calls ) +void gcm_decrypt_and_verify_empty_cipher(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *add_str, + data_t *tag_str, + int cipher_update_calls) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_empty_cipher_with_ad( &ctx, MBEDTLS_GCM_DECRYPT, - iv_str, add_str, tag_str, - cipher_update_calls ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_empty_cipher_with_ad(&ctx, MBEDTLS_GCM_DECRYPT, + iv_str, add_str, tag_str, + cipher_update_calls); - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_decrypt_and_verify_empty_ad( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * src_str, - data_t * tag_str, - data_t * pt_result, - int ad_update_calls ) +void gcm_decrypt_and_verify_empty_ad(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *src_str, + data_t *tag_str, + data_t *pt_result, + int ad_update_calls) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_cipher_with_empty_ad( &ctx, MBEDTLS_GCM_DECRYPT, - iv_str, src_str, pt_result, tag_str, - ad_update_calls ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_cipher_with_empty_ad(&ctx, MBEDTLS_GCM_DECRYPT, + iv_str, src_str, pt_result, tag_str, + ad_update_calls); - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_decrypt_and_verify_no_ad_no_cipher( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * tag_str ) +void gcm_decrypt_and_verify_no_ad_no_cipher(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *tag_str) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_no_cipher_no_ad( &ctx, MBEDTLS_GCM_DECRYPT, - iv_str, tag_str ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_no_cipher_no_ad(&ctx, MBEDTLS_GCM_DECRYPT, + iv_str, tag_str); - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_encrypt_and_tag_empty_cipher( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * add_str, - data_t * tag_str, - int cipher_update_calls ) +void gcm_encrypt_and_tag_empty_cipher(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *add_str, + data_t *tag_str, + int cipher_update_calls) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_empty_cipher_with_ad( &ctx, MBEDTLS_GCM_ENCRYPT, - iv_str, add_str, tag_str, - cipher_update_calls ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_empty_cipher_with_ad(&ctx, MBEDTLS_GCM_ENCRYPT, + iv_str, add_str, tag_str, + cipher_update_calls); exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_encrypt_and_tag_empty_ad( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * src_str, - data_t * dst, - data_t * tag_str, - int ad_update_calls ) +void gcm_encrypt_and_tag_empty_ad(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *src_str, + data_t *dst, + data_t *tag_str, + int ad_update_calls) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_cipher_with_empty_ad( &ctx, MBEDTLS_GCM_ENCRYPT, - iv_str, src_str, dst, tag_str, - ad_update_calls ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_cipher_with_empty_ad(&ctx, MBEDTLS_GCM_ENCRYPT, + iv_str, src_str, dst, tag_str, + ad_update_calls); exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_encrypt_and_verify_no_ad_no_cipher( int cipher_id, - data_t * key_str, - data_t * iv_str, - data_t * tag_str ) +void gcm_encrypt_and_verify_no_ad_no_cipher(int cipher_id, + data_t *key_str, + data_t *iv_str, + data_t *tag_str) { mbedtls_gcm_context ctx; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); - TEST_ASSERT( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ) == 0 ); - check_no_cipher_no_ad( &ctx, MBEDTLS_GCM_ENCRYPT, - iv_str, tag_str ); + TEST_ASSERT(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8) == 0); + check_no_cipher_no_ad(&ctx, MBEDTLS_GCM_ENCRYPT, + iv_str, tag_str); - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_invalid_param( ) +void gcm_invalid_param() { mbedtls_gcm_context ctx; unsigned char valid_buffer[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; mbedtls_cipher_id_t valid_cipher = MBEDTLS_CIPHER_ID_AES; int invalid_bitlen = 1; - mbedtls_gcm_init( &ctx ); + mbedtls_gcm_init(&ctx); /* mbedtls_gcm_setkey */ TEST_EQUAL( MBEDTLS_ERR_GCM_BAD_INPUT, - mbedtls_gcm_setkey( &ctx, valid_cipher, valid_buffer, invalid_bitlen ) ); + mbedtls_gcm_setkey(&ctx, valid_cipher, valid_buffer, invalid_bitlen)); exit: - mbedtls_gcm_free( &ctx ); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void gcm_update_output_buffer_too_small( int cipher_id, int mode, - data_t * key_str, const data_t *input, - const data_t *iv ) +void gcm_update_output_buffer_too_small(int cipher_id, int mode, + data_t *key_str, const data_t *input, + const data_t *iv) { mbedtls_gcm_context ctx; uint8_t *output = NULL; size_t olen = 0; size_t output_len = input->len - 1; - mbedtls_gcm_init( &ctx ); - TEST_EQUAL( mbedtls_gcm_setkey( &ctx, cipher_id, key_str->x, key_str->len * 8 ), 0 ); - TEST_EQUAL( 0, mbedtls_gcm_starts( &ctx, mode, iv->x, iv->len ) ); + mbedtls_gcm_init(&ctx); + TEST_EQUAL(mbedtls_gcm_setkey(&ctx, cipher_id, key_str->x, key_str->len * 8), 0); + TEST_EQUAL(0, mbedtls_gcm_starts(&ctx, mode, iv->x, iv->len)); - ASSERT_ALLOC( output, output_len ); - TEST_EQUAL( MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL, mbedtls_gcm_update( &ctx, input->x, input->len, output, output_len, &olen ) ); + ASSERT_ALLOC(output, output_len); + TEST_EQUAL(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL, + mbedtls_gcm_update(&ctx, input->x, input->len, output, output_len, &olen)); exit: - mbedtls_free( output ); - mbedtls_gcm_free( &ctx ); + mbedtls_free(output); + mbedtls_gcm_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_AES_C */ -void gcm_selftest( ) +void gcm_selftest() { - TEST_ASSERT( mbedtls_gcm_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_gcm_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_hkdf.function b/tests/suites/test_suite_hkdf.function index 1ad6f3d4f..21e4439d9 100644 --- a/tests/suites/test_suite_hkdf.function +++ b/tests/suites/test_suite_hkdf.function @@ -9,47 +9,47 @@ */ /* BEGIN_CASE */ -void test_hkdf( int md_alg, data_t *ikm, data_t *salt, data_t *info, - data_t *expected_okm ) +void test_hkdf(int md_alg, data_t *ikm, data_t *salt, data_t *info, + data_t *expected_okm) { int ret; unsigned char okm[128] = { '\0' }; - const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md != NULL ); + const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md != NULL); - TEST_ASSERT( expected_okm->len <= sizeof( okm ) ); + TEST_ASSERT(expected_okm->len <= sizeof(okm)); - ret = mbedtls_hkdf( md, salt->x, salt->len, ikm->x, ikm->len, - info->x, info->len, okm, expected_okm->len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_hkdf(md, salt->x, salt->len, ikm->x, ikm->len, + info->x, info->len, okm, expected_okm->len); + TEST_ASSERT(ret == 0); - ASSERT_COMPARE( okm , expected_okm->len, - expected_okm->x, expected_okm->len ); + ASSERT_COMPARE(okm, expected_okm->len, + expected_okm->x, expected_okm->len); } /* END_CASE */ /* BEGIN_CASE */ -void test_hkdf_extract( int md_alg, - data_t *ikm, - data_t *salt, - data_t *prk ) +void test_hkdf_extract(int md_alg, + data_t *ikm, + data_t *salt, + data_t *prk) { int ret; unsigned char *output_prk = NULL; size_t output_prk_len; - const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md != NULL ); + const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md != NULL); - output_prk_len = mbedtls_md_get_size( md ); - ASSERT_ALLOC( output_prk, output_prk_len ); + output_prk_len = mbedtls_md_get_size(md); + ASSERT_ALLOC(output_prk, output_prk_len); - ret = mbedtls_hkdf_extract( md, salt->x, salt->len, - ikm->x, ikm->len, output_prk ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_hkdf_extract(md, salt->x, salt->len, + ikm->x, ikm->len, output_prk); + TEST_ASSERT(ret == 0); - ASSERT_COMPARE( output_prk, output_prk_len, prk->x, prk->len ); + ASSERT_COMPARE(output_prk, output_prk_len, prk->x, prk->len); exit: mbedtls_free(output_prk); @@ -57,28 +57,28 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void test_hkdf_expand( int md_alg, - data_t *info, - data_t *prk, - data_t *okm ) +void test_hkdf_expand(int md_alg, + data_t *info, + data_t *prk, + data_t *okm) { enum { OKM_LEN = 1024 }; int ret; unsigned char *output_okm = NULL; - const mbedtls_md_info_t *md = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md != NULL ); + const mbedtls_md_info_t *md = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md != NULL); - ASSERT_ALLOC( output_okm, OKM_LEN ); + ASSERT_ALLOC(output_okm, OKM_LEN); - TEST_ASSERT( prk->len == mbedtls_md_get_size( md ) ); - TEST_ASSERT( okm->len < OKM_LEN ); + TEST_ASSERT(prk->len == mbedtls_md_get_size(md)); + TEST_ASSERT(okm->len < OKM_LEN); - ret = mbedtls_hkdf_expand( md, prk->x, prk->len, - info->x, info->len, - output_okm, OKM_LEN ); - TEST_ASSERT( ret == 0 ); - ASSERT_COMPARE( output_okm, okm->len, okm->x, okm->len ); + ret = mbedtls_hkdf_expand(md, prk->x, prk->len, + info->x, info->len, + output_okm, OKM_LEN); + TEST_ASSERT(ret == 0); + ASSERT_COMPARE(output_okm, okm->len, okm->x, okm->len); exit: mbedtls_free(output_okm); @@ -86,7 +86,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void test_hkdf_extract_ret( int hash_len, int ret ) +void test_hkdf_extract_ret(int hash_len, int ret) { int output_ret; unsigned char *salt = NULL; @@ -95,17 +95,17 @@ void test_hkdf_extract_ret( int hash_len, int ret ) size_t salt_len, ikm_len; struct mbedtls_md_info_t fake_md_info; - memset( &fake_md_info, 0, sizeof( fake_md_info ) ); + memset(&fake_md_info, 0, sizeof(fake_md_info)); fake_md_info.type = MBEDTLS_MD_NONE; fake_md_info.size = hash_len; - ASSERT_ALLOC( prk, MBEDTLS_MD_MAX_SIZE); + ASSERT_ALLOC(prk, MBEDTLS_MD_MAX_SIZE); salt_len = 0; ikm_len = 0; - output_ret = mbedtls_hkdf_extract( &fake_md_info, salt, salt_len, - ikm, ikm_len, prk ); - TEST_ASSERT( output_ret == ret ); + output_ret = mbedtls_hkdf_extract(&fake_md_info, salt, salt_len, + ikm, ikm_len, prk); + TEST_ASSERT(output_ret == ret); exit: mbedtls_free(prk); @@ -113,7 +113,7 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void test_hkdf_expand_ret( int hash_len, int prk_len, int okm_len, int ret ) +void test_hkdf_expand_ret(int hash_len, int prk_len, int okm_len, int ret) { int output_ret; unsigned char *info = NULL; @@ -122,21 +122,23 @@ void test_hkdf_expand_ret( int hash_len, int prk_len, int okm_len, int ret ) size_t info_len; struct mbedtls_md_info_t fake_md_info; - memset( &fake_md_info, 0, sizeof( fake_md_info ) ); + memset(&fake_md_info, 0, sizeof(fake_md_info)); fake_md_info.type = MBEDTLS_MD_NONE; fake_md_info.size = hash_len; info_len = 0; - if (prk_len > 0) - ASSERT_ALLOC( prk, prk_len ); + if (prk_len > 0) { + ASSERT_ALLOC(prk, prk_len); + } - if (okm_len > 0) - ASSERT_ALLOC( okm, okm_len ); + if (okm_len > 0) { + ASSERT_ALLOC(okm, okm_len); + } - output_ret = mbedtls_hkdf_expand( &fake_md_info, prk, prk_len, - info, info_len, okm, okm_len ); - TEST_ASSERT( output_ret == ret ); + output_ret = mbedtls_hkdf_expand(&fake_md_info, prk, prk_len, + info, info_len, okm, okm_len); + TEST_ASSERT(output_ret == ret); exit: mbedtls_free(prk); diff --git a/tests/suites/test_suite_hmac_drbg.function b/tests/suites/test_suite_hmac_drbg.function index b83d760d2..830155a32 100644 --- a/tests/suites/test_suite_hmac_drbg.function +++ b/tests/suites/test_suite_hmac_drbg.function @@ -2,25 +2,25 @@ #include "mbedtls/hmac_drbg.h" #include "string.h" -typedef struct -{ +typedef struct { unsigned char *p; size_t len; } entropy_ctx; -static int mbedtls_test_entropy_func( void *data, unsigned char *buf, size_t len ) +static int mbedtls_test_entropy_func(void *data, unsigned char *buf, size_t len) { entropy_ctx *ctx = (entropy_ctx *) data; - if( len > ctx->len ) - return( -1 ); + if (len > ctx->len) { + return -1; + } - memcpy( buf, ctx->p, len ); + memcpy(buf, ctx->p, len); ctx->p += len; ctx->len -= len; - return( 0 ); + return 0; } /* END_HEADER */ @@ -30,7 +30,7 @@ static int mbedtls_test_entropy_func( void *data, unsigned char *buf, size_t len */ /* BEGIN_CASE */ -void hmac_drbg_entropy_usage( int md_alg ) +void hmac_drbg_entropy_usage(int md_alg) { unsigned char out[16]; unsigned char buf[1024]; @@ -41,112 +41,111 @@ void hmac_drbg_entropy_usage( int md_alg ) size_t default_entropy_len; size_t expected_consumed_entropy = 0; - mbedtls_hmac_drbg_init( &ctx ); - memset( buf, 0, sizeof( buf ) ); - memset( out, 0, sizeof( out ) ); + mbedtls_hmac_drbg_init(&ctx); + memset(buf, 0, sizeof(buf)); + memset(out, 0, sizeof(out)); - entropy.len = sizeof( buf ); + entropy.len = sizeof(buf); entropy.p = buf; - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); - if( mbedtls_md_get_size( md_info ) <= 20 ) + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); + if (mbedtls_md_get_size(md_info) <= 20) { default_entropy_len = 16; - else if( mbedtls_md_get_size( md_info ) <= 28 ) + } else if (mbedtls_md_get_size(md_info) <= 28) { default_entropy_len = 24; - else + } else { default_entropy_len = 32; + } /* Set reseed interval before seed */ - mbedtls_hmac_drbg_set_reseed_interval( &ctx, 2 * reps ); + mbedtls_hmac_drbg_set_reseed_interval(&ctx, 2 * reps); /* Init must use entropy */ - TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &entropy, - NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &entropy, + NULL, 0) == 0); /* default_entropy_len of entropy, plus half as much for the nonce */ expected_consumed_entropy += default_entropy_len * 3 / 2; - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); /* By default, PR is off, and reseed interval was set to * 2 * reps so the next few calls should not use entropy */ - for( i = 0; i < reps; i++ ) - { - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) - 4 ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, out, sizeof( out ) - 4, - buf, 16 ) == 0 ); + for (i = 0; i < reps; i++) { + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out) - 4) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, out, sizeof(out) - 4, + buf, 16) == 0); } - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); /* While at it, make sure we didn't write past the requested length */ - TEST_ASSERT( out[sizeof( out ) - 4] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 3] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 2] == 0 ); - TEST_ASSERT( out[sizeof( out ) - 1] == 0 ); + TEST_ASSERT(out[sizeof(out) - 4] == 0); + TEST_ASSERT(out[sizeof(out) - 3] == 0); + TEST_ASSERT(out[sizeof(out) - 2] == 0); + TEST_ASSERT(out[sizeof(out) - 1] == 0); /* There have been 2 * reps calls to random. The next call should reseed */ - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); expected_consumed_entropy += default_entropy_len; - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); /* Set reseed interval after seed */ - mbedtls_hmac_drbg_set_reseed_interval( &ctx, 4 * reps + 1); + mbedtls_hmac_drbg_set_reseed_interval(&ctx, 4 * reps + 1); /* The new few calls should not reseed */ - for( i = 0; i < (2 * reps); i++ ) - { - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, out, sizeof( out ) , - buf, 16 ) == 0 ); + for (i = 0; i < (2 * reps); i++) { + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, out, sizeof(out), + buf, 16) == 0); } - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); /* Now enable PR, so the next few calls should all reseed */ - mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON ); - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON); + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); expected_consumed_entropy += default_entropy_len; - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); /* Finally, check setting entropy_len */ - mbedtls_hmac_drbg_set_entropy_len( &ctx, 42 ); - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_hmac_drbg_set_entropy_len(&ctx, 42); + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); expected_consumed_entropy += 42; - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); - mbedtls_hmac_drbg_set_entropy_len( &ctx, 13 ); - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + mbedtls_hmac_drbg_set_entropy_len(&ctx, 13); + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); expected_consumed_entropy += 13; - TEST_EQUAL( sizeof( buf ) - entropy.len, expected_consumed_entropy ); + TEST_EQUAL(sizeof(buf) - entropy.len, expected_consumed_entropy); exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void hmac_drbg_seed_file( int md_alg, char * path, int ret ) +void hmac_drbg_seed_file(int md_alg, char *path, int ret) { const mbedtls_md_info_t *md_info; mbedtls_hmac_drbg_context ctx; - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, - mbedtls_test_rnd_std_rand, NULL, - NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, + mbedtls_test_rnd_std_rand, NULL, + NULL, 0) == 0); - TEST_ASSERT( mbedtls_hmac_drbg_write_seed_file( &ctx, path ) == ret ); - TEST_ASSERT( mbedtls_hmac_drbg_update_seed_file( &ctx, path ) == ret ); + TEST_ASSERT(mbedtls_hmac_drbg_write_seed_file(&ctx, path) == ret); + TEST_ASSERT(mbedtls_hmac_drbg_update_seed_file(&ctx, path) == ret); exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void hmac_drbg_buf( int md_alg ) +void hmac_drbg_buf(int md_alg) { unsigned char out[16]; unsigned char buf[100]; @@ -154,30 +153,31 @@ void hmac_drbg_buf( int md_alg ) mbedtls_hmac_drbg_context ctx; size_t i; - mbedtls_hmac_drbg_init( &ctx ); - memset( buf, 0, sizeof( buf ) ); - memset( out, 0, sizeof( out ) ); + mbedtls_hmac_drbg_init(&ctx); + memset(buf, 0, sizeof(buf)); + memset(out, 0, sizeof(out)); - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); - TEST_ASSERT( mbedtls_hmac_drbg_seed_buf( &ctx, md_info, buf, sizeof( buf ) ) == 0 ); + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); + TEST_ASSERT(mbedtls_hmac_drbg_seed_buf(&ctx, md_info, buf, sizeof(buf)) == 0); /* Make sure it never tries to reseed (would segfault otherwise) */ - mbedtls_hmac_drbg_set_reseed_interval( &ctx, 3 ); - mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON ); + mbedtls_hmac_drbg_set_reseed_interval(&ctx, 3); + mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON); - for( i = 0; i < 30; i++ ) - TEST_ASSERT( mbedtls_hmac_drbg_random( &ctx, out, sizeof( out ) ) == 0 ); + for (i = 0; i < 30; i++) { + TEST_ASSERT(mbedtls_hmac_drbg_random(&ctx, out, sizeof(out)) == 0); + } exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void hmac_drbg_no_reseed( int md_alg, data_t * entropy, - data_t * custom, data_t * add1, - data_t * add2, data_t * output ) +void hmac_drbg_no_reseed(int md_alg, data_t *entropy, + data_t *custom, data_t *add1, + data_t *add2, data_t *output) { unsigned char data[1024]; unsigned char my_output[512]; @@ -185,111 +185,111 @@ void hmac_drbg_no_reseed( int md_alg, data_t * entropy, const mbedtls_md_info_t *md_info; mbedtls_hmac_drbg_context ctx; - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); p_entropy.p = entropy->x; p_entropy.len = entropy->len; - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); /* Test the simplified buffer-based variant */ - memcpy( data, entropy->x, p_entropy.len ); - memcpy( data + p_entropy.len, custom->x, custom->len ); - TEST_ASSERT( mbedtls_hmac_drbg_seed_buf( &ctx, md_info, - data, p_entropy.len + custom->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add1->x, add1->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add2->x, add2->len ) == 0 ); + memcpy(data, entropy->x, p_entropy.len); + memcpy(data + p_entropy.len, custom->x, custom->len); + TEST_ASSERT(mbedtls_hmac_drbg_seed_buf(&ctx, md_info, + data, p_entropy.len + custom->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add1->x, add1->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add2->x, add2->len) == 0); /* Reset context for second run */ - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); - TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 ); + TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0); /* And now the normal entropy-based variant */ - TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy, - custom->x, custom->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add1->x, add1->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add2->x, add2->len ) == 0 ); - TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy, + custom->x, custom->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add1->x, add1->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add2->x, add2->len) == 0); + TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0); exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void hmac_drbg_nopr( int md_alg, data_t * entropy, data_t * custom, - data_t * add1, data_t * add2, data_t * add3, - data_t * output ) +void hmac_drbg_nopr(int md_alg, data_t *entropy, data_t *custom, + data_t *add1, data_t *add2, data_t *add3, + data_t *output) { unsigned char my_output[512]; entropy_ctx p_entropy; const mbedtls_md_info_t *md_info; mbedtls_hmac_drbg_context ctx; - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); p_entropy.p = entropy->x; p_entropy.len = entropy->len; - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy, - custom->x, custom->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_reseed( &ctx, add1->x, add1->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add2->x, add2->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add3->x, add3->len ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy, + custom->x, custom->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_reseed(&ctx, add1->x, add1->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add2->x, add2->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add3->x, add3->len) == 0); - TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 ); + TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0); exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void hmac_drbg_pr( int md_alg, data_t * entropy, data_t * custom, - data_t * add1, data_t * add2, data_t * output ) +void hmac_drbg_pr(int md_alg, data_t *entropy, data_t *custom, + data_t *add1, data_t *add2, data_t *output) { unsigned char my_output[512]; entropy_ctx p_entropy; const mbedtls_md_info_t *md_info; mbedtls_hmac_drbg_context ctx; - mbedtls_hmac_drbg_init( &ctx ); + mbedtls_hmac_drbg_init(&ctx); p_entropy.p = entropy->x; p_entropy.len = entropy->len; - md_info = mbedtls_md_info_from_type( md_alg ); - TEST_ASSERT( md_info != NULL ); + md_info = mbedtls_md_info_from_type(md_alg); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT( mbedtls_hmac_drbg_seed( &ctx, md_info, mbedtls_test_entropy_func, &p_entropy, - custom->x, custom->len ) == 0 ); - mbedtls_hmac_drbg_set_prediction_resistance( &ctx, MBEDTLS_HMAC_DRBG_PR_ON ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add1->x, add1->len ) == 0 ); - TEST_ASSERT( mbedtls_hmac_drbg_random_with_add( &ctx, my_output, output->len, - add2->x, add2->len ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_seed(&ctx, md_info, mbedtls_test_entropy_func, &p_entropy, + custom->x, custom->len) == 0); + mbedtls_hmac_drbg_set_prediction_resistance(&ctx, MBEDTLS_HMAC_DRBG_PR_ON); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add1->x, add1->len) == 0); + TEST_ASSERT(mbedtls_hmac_drbg_random_with_add(&ctx, my_output, output->len, + add2->x, add2->len) == 0); - TEST_ASSERT( memcmp( my_output, output->x, output->len ) == 0 ); + TEST_ASSERT(memcmp(my_output, output->x, output->len) == 0); exit: - mbedtls_hmac_drbg_free( &ctx ); + mbedtls_hmac_drbg_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void hmac_drbg_selftest( ) +void hmac_drbg_selftest() { - TEST_ASSERT( mbedtls_hmac_drbg_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_hmac_drbg_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_lmots.function b/tests/suites/test_suite_lmots.function index fd6a89f2c..8f06ee5a4 100644 --- a/tests/suites/test_suite_lmots.function +++ b/tests/suites/test_suite_lmots.function @@ -3,21 +3,20 @@ #include "mbedtls/lms.h" #if defined(MBEDTLS_TEST_HOOKS) -int check_lmots_private_key_for_leak(unsigned char * sig) +int check_lmots_private_key_for_leak(unsigned char *sig) { size_t idx; - for( idx = MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(MBEDTLS_LMOTS_SHA256_N32_W8); + for (idx = MBEDTLS_LMOTS_SIG_SIGNATURE_OFFSET(MBEDTLS_LMOTS_SHA256_N32_W8); idx < MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); - idx++ ) - { - TEST_EQUAL( sig[idx], 0x7E ); + idx++) { + TEST_EQUAL(sig[idx], 0x7E); } - return( 0 ); + return 0; exit: - return( -1 ); + return -1; } #endif /* defined(MBEDTLS_TEST_HOOKS) */ @@ -29,201 +28,201 @@ exit: */ /* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ -void lmots_sign_verify_test ( data_t *msg, data_t *key_id, int leaf_id, - data_t *seed ) +void lmots_sign_verify_test(data_t *msg, data_t *key_id, int leaf_id, + data_t *seed) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_public_init( &pub_ctx ); - mbedtls_lmots_private_init( &priv_ctx ); + mbedtls_lmots_public_init(&pub_ctx); + mbedtls_lmots_private_init(&priv_ctx); - TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); - TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof(sig), NULL ), 0 ); - TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)), 0 ); + TEST_EQUAL(mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len), 0); + TEST_EQUAL(mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0); + TEST_EQUAL(mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL), 0); + TEST_EQUAL(mbedtls_lmots_verify(&pub_ctx, msg->x, msg->len, sig, sizeof(sig)), 0); exit: - mbedtls_lmots_public_free( &pub_ctx ); - mbedtls_lmots_private_free( &priv_ctx ); + mbedtls_lmots_public_free(&pub_ctx); + mbedtls_lmots_private_free(&priv_ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ -void lmots_sign_verify_null_msg_test ( data_t *key_id, int leaf_id, data_t *seed ) +void lmots_sign_verify_null_msg_test(data_t *key_id, int leaf_id, data_t *seed) { mbedtls_lmots_public_t pub_ctx; mbedtls_lmots_private_t priv_ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_public_init( &pub_ctx ); - mbedtls_lmots_private_init( &priv_ctx ); + mbedtls_lmots_public_init(&pub_ctx); + mbedtls_lmots_private_init(&priv_ctx); - TEST_EQUAL( mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, seed->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0 ); - TEST_EQUAL( mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, - NULL, 0, sig, sizeof(sig), NULL ), 0 ); - TEST_EQUAL( mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)), 0 ); + TEST_EQUAL(mbedtls_lmots_generate_private_key(&priv_ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, seed->len), 0); + TEST_EQUAL(mbedtls_lmots_calculate_public_key(&pub_ctx, &priv_ctx), 0); + TEST_EQUAL(mbedtls_lmots_sign(&priv_ctx, &mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), NULL), 0); + TEST_EQUAL(mbedtls_lmots_verify(&pub_ctx, NULL, 0, sig, sizeof(sig)), 0); exit: - mbedtls_lmots_public_free( &pub_ctx ); - mbedtls_lmots_private_free( &priv_ctx ); + mbedtls_lmots_public_free(&pub_ctx); + mbedtls_lmots_private_free(&priv_ctx); } /* END_CASE */ /* BEGIN_CASE */ -void lmots_verify_test ( data_t *msg, data_t *sig, data_t *pub_key, - int expected_rc ) +void lmots_verify_test(data_t *msg, data_t *sig, data_t *pub_key, + int expected_rc) { mbedtls_lmots_public_t ctx; unsigned int size; unsigned char *tmp_sig = NULL; - mbedtls_lmots_public_init( &ctx ); + mbedtls_lmots_public_init(&ctx); - TEST_EQUAL(mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); + TEST_EQUAL(mbedtls_lmots_import_public_key(&ctx, pub_key->x, pub_key->len), 0); - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig->x, sig->len), expected_rc); /* Test negative cases if the input data is valid */ - if( expected_rc == 0 ) - { - if( msg->len >= 1 ) - { + if (expected_rc == 0) { + if (msg->len >= 1) { /* Altering first message byte must cause verification failure */ msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); msg->x[0] ^= 1; /* Altering last message byte must cause verification failure */ msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); msg->x[msg->len - 1] ^= 1; } /* Altering first signature byte must cause verification failure */ sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[0] ^= 1; /* Altering last signature byte must cause verification failure */ sig->x[sig->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[sig->len - 1] ^= 1; /* Signatures of all sizes must not verify, whether shorter or longer */ - for( size = 0; size < sig->len; size++ ) { - if( size == sig->len ) + for (size = 0; size < sig->len; size++) { + if (size == sig->len) { continue; + } - ASSERT_ALLOC( tmp_sig, size ); - if( tmp_sig != NULL ) - memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + ASSERT_ALLOC(tmp_sig, size); + if (tmp_sig != NULL) { + memcpy(tmp_sig, sig->x, MIN(size, sig->len)); + } - TEST_EQUAL(mbedtls_lmots_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + TEST_EQUAL(mbedtls_lmots_verify(&ctx, msg->x, msg->len, tmp_sig, size), MBEDTLS_ERR_LMS_VERIFY_FAILED); - mbedtls_free( tmp_sig ); + mbedtls_free(tmp_sig); tmp_sig = NULL; } } exit: - mbedtls_free( tmp_sig ); - mbedtls_lmots_public_free( &ctx ); + mbedtls_free(tmp_sig); + mbedtls_lmots_public_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void lmots_import_export_test ( data_t * pub_key, int expected_import_rc ) +void lmots_import_export_test(data_t *pub_key, int expected_import_rc) { mbedtls_lmots_public_t ctx; unsigned char *exported_pub_key = NULL; size_t exported_pub_key_buf_size; size_t exported_pub_key_size; - mbedtls_lmots_public_init( &ctx ); - TEST_EQUAL( mbedtls_lmots_import_public_key( &ctx, pub_key->x, pub_key->len ), - expected_import_rc ); + mbedtls_lmots_public_init(&ctx); + TEST_EQUAL(mbedtls_lmots_import_public_key(&ctx, pub_key->x, pub_key->len), + expected_import_rc); - if( expected_import_rc == 0 ) - { + if (expected_import_rc == 0) { exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8); - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + TEST_EQUAL(mbedtls_lmots_export_public_key(&ctx, exported_pub_key, exported_pub_key_buf_size, - &exported_pub_key_size ), 0 ); + &exported_pub_key_size), 0); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_size ); + TEST_EQUAL(exported_pub_key_size, + MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)); + ASSERT_COMPARE(pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size); mbedtls_free(exported_pub_key); exported_pub_key = NULL; /* Export into too-small buffer should fail */ exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) - 1; - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), - MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL(mbedtls_lmots_export_public_key(&ctx, exported_pub_key, + exported_pub_key_buf_size, NULL), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL); mbedtls_free(exported_pub_key); exported_pub_key = NULL; /* Export into too-large buffer should succeed */ exported_pub_key_buf_size = MBEDTLS_LMOTS_PUBLIC_KEY_LEN(MBEDTLS_LMOTS_SHA256_N32_W8) + 1; - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lmots_export_public_key( &ctx, exported_pub_key, + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL(mbedtls_lmots_export_public_key(&ctx, exported_pub_key, exported_pub_key_buf_size, - &exported_pub_key_size ), - 0 ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_size ); + &exported_pub_key_size), + 0); + ASSERT_COMPARE(pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } exit: - mbedtls_lmots_public_free( &ctx ); - mbedtls_free( exported_pub_key ); + mbedtls_lmots_public_free(&ctx); + mbedtls_free(exported_pub_key); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ -void lmots_reuse_test ( data_t *msg, data_t *key_id, int leaf_id, data_t *seed ) +void lmots_reuse_test(data_t *msg, data_t *key_id, int leaf_id, data_t *seed) { mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lmots_private_init( &ctx ); - TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); + mbedtls_lmots_private_init(&ctx); + TEST_EQUAL(mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len), 0); + TEST_EQUAL(mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL), 0); /* Running another sign operation should fail, since the key should now have * been erased. */ - TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ), MBEDTLS_ERR_LMS_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL), + MBEDTLS_ERR_LMS_BAD_INPUT_DATA); exit: - mbedtls_lmots_private_free( &ctx ); + mbedtls_lmots_private_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_LMS_PRIVATE */ -void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, - data_t *seed ) +void lmots_signature_leak_test(data_t *msg, data_t *key_id, int leaf_id, + data_t *seed) { mbedtls_lmots_private_t ctx; unsigned char sig[MBEDTLS_LMOTS_SIG_LEN(MBEDTLS_LMOTS_SHA256_N32_W8)]; @@ -231,17 +230,17 @@ void lmots_signature_leak_test ( data_t *msg, data_t *key_id, int leaf_id, mbedtls_lmots_sign_private_key_invalidated_hook = &check_lmots_private_key_for_leak; /* Fill with recognisable pattern */ - memset( sig, 0x7E, sizeof( sig ) ); + memset(sig, 0x7E, sizeof(sig)); - mbedtls_lmots_private_init( &ctx ); - TEST_EQUAL( mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, - key_id->x, leaf_id, seed->x, - seed->len ), 0 ); - TEST_EQUAL( mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), NULL ), 0 ); + mbedtls_lmots_private_init(&ctx); + TEST_EQUAL(mbedtls_lmots_generate_private_key(&ctx, MBEDTLS_LMOTS_SHA256_N32_W8, + key_id->x, leaf_id, seed->x, + seed->len), 0); + TEST_EQUAL(mbedtls_lmots_sign(&ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), NULL), 0); exit: - mbedtls_lmots_private_free( &ctx ); + mbedtls_lmots_private_free(&ctx); mbedtls_lmots_sign_private_key_invalidated_hook = NULL; } /* END_CASE */ diff --git a/tests/suites/test_suite_lms.function b/tests/suites/test_suite_lms.function index c5c8aa4b9..bfc3e062b 100644 --- a/tests/suites/test_suite_lms.function +++ b/tests/suites/test_suite_lms.function @@ -9,142 +9,141 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ -void lms_sign_verify_test ( data_t *msg, data_t *seed ) +void lms_sign_verify_test(data_t *msg, data_t *seed) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lms_public_init( &pub_ctx ); - mbedtls_lms_private_init( &priv_ctx ); + mbedtls_lms_public_init(&pub_ctx); + mbedtls_lms_private_init(&priv_ctx); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, - MBEDTLS_LMOTS_SHA256_N32_W8, - mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ), 0 ); + TEST_EQUAL(mbedtls_lms_generate_private_key(&priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len), 0); - TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); + TEST_EQUAL(mbedtls_lms_calculate_public_key(&pub_ctx, &priv_ctx), 0); - TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, - msg->x, msg->len, sig, sizeof( sig ), - NULL ), 0 ); + TEST_EQUAL(mbedtls_lms_sign(&priv_ctx, mbedtls_test_rnd_std_rand, NULL, + msg->x, msg->len, sig, sizeof(sig), + NULL), 0); - TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, msg->x, msg->len, sig, - sizeof( sig ) ), 0 ); + TEST_EQUAL(mbedtls_lms_verify(&pub_ctx, msg->x, msg->len, sig, + sizeof(sig)), 0); exit: - mbedtls_lms_public_free( &pub_ctx ); - mbedtls_lms_private_free( &priv_ctx ); + mbedtls_lms_public_free(&pub_ctx); + mbedtls_lms_private_free(&priv_ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_LMS_PRIVATE */ -void lms_sign_verify_null_msg_test( data_t *seed ) +void lms_sign_verify_null_msg_test(data_t *seed) { mbedtls_lms_public_t pub_ctx; mbedtls_lms_private_t priv_ctx; unsigned char sig[MBEDTLS_LMS_SIG_LEN(MBEDTLS_LMS_SHA256_M32_H10, MBEDTLS_LMOTS_SHA256_N32_W8)]; - mbedtls_lms_public_init( &pub_ctx ); - mbedtls_lms_private_init( &priv_ctx ); + mbedtls_lms_public_init(&pub_ctx); + mbedtls_lms_private_init(&priv_ctx); /* Allocation failure isn't a test failure, since it likely just means * there's not enough memory to run the test. */ - TEST_EQUAL( mbedtls_lms_generate_private_key( &priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, - MBEDTLS_LMOTS_SHA256_N32_W8, - mbedtls_test_rnd_std_rand, NULL, - seed->x, seed->len ), 0 ); + TEST_EQUAL(mbedtls_lms_generate_private_key(&priv_ctx, MBEDTLS_LMS_SHA256_M32_H10, + MBEDTLS_LMOTS_SHA256_N32_W8, + mbedtls_test_rnd_std_rand, NULL, + seed->x, seed->len), 0); - TEST_EQUAL( mbedtls_lms_calculate_public_key( &pub_ctx, &priv_ctx ), 0 ); + TEST_EQUAL(mbedtls_lms_calculate_public_key(&pub_ctx, &priv_ctx), 0); - TEST_EQUAL( mbedtls_lms_sign( &priv_ctx, mbedtls_test_rnd_std_rand, NULL, - NULL, 0, sig, sizeof( sig ), - NULL ), 0 ); + TEST_EQUAL(mbedtls_lms_sign(&priv_ctx, mbedtls_test_rnd_std_rand, NULL, + NULL, 0, sig, sizeof(sig), + NULL), 0); - TEST_EQUAL( mbedtls_lms_verify( &pub_ctx, NULL, 0, sig, - sizeof( sig ) ), 0 ); + TEST_EQUAL(mbedtls_lms_verify(&pub_ctx, NULL, 0, sig, + sizeof(sig)), 0); exit: - mbedtls_lms_public_free( &pub_ctx ); - mbedtls_lms_private_free( &priv_ctx ); + mbedtls_lms_public_free(&pub_ctx); + mbedtls_lms_private_free(&priv_ctx); } /* END_CASE */ /* BEGIN_CASE */ -void lms_verify_test ( data_t * msg, data_t * sig, data_t * pub_key, - int expected_rc ) +void lms_verify_test(data_t *msg, data_t *sig, data_t *pub_key, + int expected_rc) { mbedtls_lms_public_t ctx; unsigned int size; unsigned char *tmp_sig = NULL; - mbedtls_lms_public_init( &ctx); + mbedtls_lms_public_init(&ctx); - TEST_EQUAL(mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), 0); + TEST_EQUAL(mbedtls_lms_import_public_key(&ctx, pub_key->x, pub_key->len), 0); - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), expected_rc); + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, sig->x, sig->len), expected_rc); /* Test negative cases if the input data is valid */ - if( expected_rc == 0 ) - { - if( msg->len >= 1 ) - { + if (expected_rc == 0) { + if (msg->len >= 1) { /* Altering first message byte must cause verification failure */ msg->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); msg->x[0] ^= 1; /* Altering last message byte must cause verification failure */ msg->x[msg->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); msg->x[msg->len - 1] ^= 1; } - if( sig->len >= 1 ) - { + if (sig->len >= 1) { /* Altering first signature byte must cause verification failure */ sig->x[0] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[0] ^= 1; /* Altering last signature byte must cause verification failure */ sig->x[sig->len - 1] ^= 1; - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, sig->x, sig->len ), + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, sig->x, sig->len), MBEDTLS_ERR_LMS_VERIFY_FAILED); sig->x[sig->len - 1] ^= 1; } /* Signatures of all sizes must not verify, whether shorter or longer */ - for( size = 0; size < sig->len; size++ ) { - if( size == sig->len ) + for (size = 0; size < sig->len; size++) { + if (size == sig->len) { continue; + } - ASSERT_ALLOC( tmp_sig, size ); - if( tmp_sig != NULL ) - memcpy( tmp_sig, sig->x, MIN(size, sig->len) ); + ASSERT_ALLOC(tmp_sig, size); + if (tmp_sig != NULL) { + memcpy(tmp_sig, sig->x, MIN(size, sig->len)); + } - TEST_EQUAL(mbedtls_lms_verify( &ctx, msg->x, msg->len, tmp_sig, size ), + TEST_EQUAL(mbedtls_lms_verify(&ctx, msg->x, msg->len, tmp_sig, size), MBEDTLS_ERR_LMS_VERIFY_FAILED); - mbedtls_free( tmp_sig ); + mbedtls_free(tmp_sig); tmp_sig = NULL; } } exit: - mbedtls_free( tmp_sig ); - mbedtls_lms_public_free( &ctx ); + mbedtls_free(tmp_sig); + mbedtls_lms_public_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) +void lms_import_export_test(data_t *pub_key, int expected_import_rc) { mbedtls_lms_public_t ctx; size_t exported_pub_key_buf_size = 0; @@ -152,50 +151,48 @@ void lms_import_export_test ( data_t * pub_key, int expected_import_rc ) unsigned char *exported_pub_key = NULL; mbedtls_lms_public_init(&ctx); - TEST_EQUAL( mbedtls_lms_import_public_key( &ctx, pub_key->x, pub_key->len ), - expected_import_rc ); + TEST_EQUAL(mbedtls_lms_import_public_key(&ctx, pub_key->x, pub_key->len), + expected_import_rc); - if( expected_import_rc == 0 ) - { + if (expected_import_rc == 0) { exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10); - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size ); + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, - &exported_pub_key_size ), 0 ); + TEST_EQUAL(mbedtls_lms_export_public_key(&ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size), 0); - TEST_EQUAL( exported_pub_key_size, - MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10 ) ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_size ); + TEST_EQUAL(exported_pub_key_size, + MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10)); + ASSERT_COMPARE(pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size); mbedtls_free(exported_pub_key); exported_pub_key = NULL; /* Export into too-small buffer should fail */ exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) - 1; - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, NULL ), - MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL ); + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL(mbedtls_lms_export_public_key(&ctx, exported_pub_key, + exported_pub_key_buf_size, NULL), + MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL); mbedtls_free(exported_pub_key); exported_pub_key = NULL; /* Export into too-large buffer should succeed */ exported_pub_key_buf_size = MBEDTLS_LMS_PUBLIC_KEY_LEN(MBEDTLS_LMS_SHA256_M32_H10) + 1; - ASSERT_ALLOC( exported_pub_key, exported_pub_key_buf_size); - TEST_EQUAL( mbedtls_lms_export_public_key( &ctx, exported_pub_key, - exported_pub_key_buf_size, - &exported_pub_key_size ), - 0 ); - ASSERT_COMPARE( pub_key->x, pub_key->len, - exported_pub_key, exported_pub_key_size ); + ASSERT_ALLOC(exported_pub_key, exported_pub_key_buf_size); + TEST_EQUAL(mbedtls_lms_export_public_key(&ctx, exported_pub_key, + exported_pub_key_buf_size, + &exported_pub_key_size), + 0); + ASSERT_COMPARE(pub_key->x, pub_key->len, + exported_pub_key, exported_pub_key_size); mbedtls_free(exported_pub_key); exported_pub_key = NULL; } exit: - mbedtls_free( exported_pub_key ); - mbedtls_lms_public_free( &ctx ); + mbedtls_free(exported_pub_key); + mbedtls_lms_public_free(&ctx); } /* END_CASE */ - diff --git a/tests/suites/test_suite_md.function b/tests/suites/test_suite_md.function index 602afa403..be1eab06f 100644 --- a/tests/suites/test_suite_md.function +++ b/tests/suites/test_suite_md.function @@ -8,15 +8,15 @@ */ /* BEGIN_CASE */ -void mbedtls_md_process( ) +void mbedtls_md_process() { const int *md_type_ptr; const mbedtls_md_info_t *info; mbedtls_md_context_t ctx; unsigned char buf[150]; - mbedtls_md_init( &ctx ); - memset( buf, 0, sizeof( buf ) ); + mbedtls_md_init(&ctx); + memset(buf, 0, sizeof(buf)); /* * Very minimal testing of mbedtls_md_process, just make sure the various @@ -26,161 +26,162 @@ void mbedtls_md_process( ) * * Also tests that mbedtls_md_list() only returns valid MDs. */ - for( md_type_ptr = mbedtls_md_list(); *md_type_ptr != 0; md_type_ptr++ ) - { - info = mbedtls_md_info_from_type( *md_type_ptr ); - TEST_ASSERT( info != NULL ); - TEST_ASSERT( mbedtls_md_setup( &ctx, info, 0 ) == 0 ); - TEST_ASSERT( mbedtls_md_starts( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_md_process( &ctx, buf ) == 0 ); - mbedtls_md_free( &ctx ); + for (md_type_ptr = mbedtls_md_list(); *md_type_ptr != 0; md_type_ptr++) { + info = mbedtls_md_info_from_type(*md_type_ptr); + TEST_ASSERT(info != NULL); + TEST_ASSERT(mbedtls_md_setup(&ctx, info, 0) == 0); + TEST_ASSERT(mbedtls_md_starts(&ctx) == 0); + TEST_ASSERT(mbedtls_md_process(&ctx, buf) == 0); + mbedtls_md_free(&ctx); } exit: - mbedtls_md_free( &ctx ); + mbedtls_md_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void md_null_args( ) +void md_null_args() { mbedtls_md_context_t ctx; - const mbedtls_md_info_t *info = mbedtls_md_info_from_type( *( mbedtls_md_list() ) ); + const mbedtls_md_info_t *info = mbedtls_md_info_from_type(*(mbedtls_md_list())); unsigned char buf[1] = { 0 }; - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); - TEST_ASSERT( mbedtls_md_get_size( NULL ) == 0 ); - TEST_ASSERT( mbedtls_md_get_type( NULL ) == MBEDTLS_MD_NONE ); - TEST_ASSERT( mbedtls_md_get_name( NULL ) == NULL ); + TEST_ASSERT(mbedtls_md_get_size(NULL) == 0); + TEST_ASSERT(mbedtls_md_get_type(NULL) == MBEDTLS_MD_NONE); + TEST_ASSERT(mbedtls_md_get_name(NULL) == NULL); - TEST_ASSERT( mbedtls_md_info_from_string( NULL ) == NULL ); - TEST_ASSERT( mbedtls_md_info_from_ctx( NULL ) == NULL ); - TEST_ASSERT( mbedtls_md_info_from_ctx( &ctx ) == NULL ); + TEST_ASSERT(mbedtls_md_info_from_string(NULL) == NULL); + TEST_ASSERT(mbedtls_md_info_from_ctx(NULL) == NULL); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx) == NULL); - TEST_ASSERT( mbedtls_md_setup( &ctx, NULL, 0 ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_setup( NULL, info, 0 ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_setup(&ctx, NULL, 0) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_setup(NULL, info, 0) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_starts( NULL ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_starts( &ctx ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_starts(NULL) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_starts(&ctx) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_update( NULL, buf, 1 ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_update( &ctx, buf, 1 ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_update(NULL, buf, 1) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_update(&ctx, buf, 1) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_finish( NULL, buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_finish( &ctx, buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_finish(NULL, buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_finish(&ctx, buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md( NULL, buf, 1, buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md(NULL, buf, 1, buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); #if defined(MBEDTLS_FS_IO) - TEST_ASSERT( mbedtls_md_file( NULL, "", buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_file(NULL, "", buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); #endif - TEST_ASSERT( mbedtls_md_hmac_starts( NULL, buf, 1 ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_hmac_starts( &ctx, buf, 1 ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_hmac_starts(NULL, buf, 1) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_hmac_starts(&ctx, buf, 1) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_hmac_update( NULL, buf, 1 ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_hmac_update( &ctx, buf, 1 ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_hmac_update(NULL, buf, 1) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_hmac_update(&ctx, buf, 1) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_hmac_finish( NULL, buf ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_hmac_finish( &ctx, buf ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_hmac_finish(NULL, buf) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_hmac_finish(&ctx, buf) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_hmac_reset( NULL ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_hmac_reset( &ctx ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_hmac_reset(NULL) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_hmac_reset(&ctx) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_hmac( NULL, buf, 1, buf, 1, buf ) - == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_hmac(NULL, buf, 1, buf, 1, buf) + == MBEDTLS_ERR_MD_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_md_process( NULL, buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); - TEST_ASSERT( mbedtls_md_process( &ctx, buf ) == MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_md_process(NULL, buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); + TEST_ASSERT(mbedtls_md_process(&ctx, buf) == MBEDTLS_ERR_MD_BAD_INPUT_DATA); /* Ok, this is not NULL arg but NULL return... */ - TEST_ASSERT( mbedtls_md_info_from_type( MBEDTLS_MD_NONE ) == NULL ); - TEST_ASSERT( mbedtls_md_info_from_string( "no such md" ) == NULL ); + TEST_ASSERT(mbedtls_md_info_from_type(MBEDTLS_MD_NONE) == NULL); + TEST_ASSERT(mbedtls_md_info_from_string("no such md") == NULL); } /* END_CASE */ /* BEGIN_CASE */ -void md_info( int md_type, char * md_name, int md_size ) +void md_info(int md_type, char *md_name, int md_size) { const mbedtls_md_info_t *md_info; const int *md_type_ptr; int found; - md_info = mbedtls_md_info_from_type( md_type ); - TEST_ASSERT( md_info != NULL ); - TEST_ASSERT( md_info == mbedtls_md_info_from_string( md_name ) ); + md_info = mbedtls_md_info_from_type(md_type); + TEST_ASSERT(md_info != NULL); + TEST_ASSERT(md_info == mbedtls_md_info_from_string(md_name)); - TEST_ASSERT( mbedtls_md_get_type( md_info ) == (mbedtls_md_type_t) md_type ); - TEST_ASSERT( mbedtls_md_get_size( md_info ) == (unsigned char) md_size ); - TEST_ASSERT( strcmp( mbedtls_md_get_name( md_info ), md_name ) == 0 ); + TEST_ASSERT(mbedtls_md_get_type(md_info) == (mbedtls_md_type_t) md_type); + TEST_ASSERT(mbedtls_md_get_size(md_info) == (unsigned char) md_size); + TEST_ASSERT(strcmp(mbedtls_md_get_name(md_info), md_name) == 0); found = 0; - for( md_type_ptr = mbedtls_md_list(); *md_type_ptr != 0; md_type_ptr++ ) - if( *md_type_ptr == md_type ) + for (md_type_ptr = mbedtls_md_list(); *md_type_ptr != 0; md_type_ptr++) { + if (*md_type_ptr == md_type) { found = 1; - TEST_ASSERT( found == 1 ); + } + } + TEST_ASSERT(found == 1); } /* END_CASE */ /* BEGIN_CASE */ -void md_text( char * text_md_name, char * text_src_string, - data_t * hash ) +void md_text(char *text_md_name, char *text_src_string, + data_t *hash) { char md_name[100]; unsigned char src_str[1000]; unsigned char output[100]; const mbedtls_md_info_t *md_info = NULL; - memset( md_name, 0x00, 100 ); - memset( src_str, 0x00, 1000 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(src_str, 0x00, 1000); + memset(output, 0x00, 100); - strncpy( (char *) src_str, text_src_string, sizeof( src_str ) - 1 ); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); + strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); md_info = mbedtls_md_info_from_string(md_name); - TEST_ASSERT( md_info != NULL ); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT ( 0 == mbedtls_md( md_info, src_str, strlen( (char *) src_str ), output ) ); + TEST_ASSERT(0 == mbedtls_md(md_info, src_str, strlen((char *) src_str), output)); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void md_hex( char * text_md_name, data_t * src_str, data_t * hash ) +void md_hex(char *text_md_name, data_t *src_str, data_t *hash) { char md_name[100]; unsigned char output[100]; const mbedtls_md_info_t *md_info = NULL; - memset( md_name, 0x00, 100 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(output, 0x00, 100); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); - md_info = mbedtls_md_info_from_string( md_name ); - TEST_ASSERT( md_info != NULL ); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); + md_info = mbedtls_md_info_from_string(md_name); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT ( 0 == mbedtls_md( md_info, src_str->x, src_str->len, output ) ); + TEST_ASSERT(0 == mbedtls_md(md_info, src_str->x, src_str->len, output)); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void md_text_multi( char * text_md_name, char * text_src_string, - data_t * hash ) +void md_text_multi(char *text_md_name, char *text_src_string, + data_t *hash) { char md_name[100]; unsigned char src_str[1000]; @@ -190,53 +191,53 @@ void md_text_multi( char * text_md_name, char * text_src_string, const mbedtls_md_info_t *md_info = NULL; mbedtls_md_context_t ctx, ctx_copy; - mbedtls_md_init( &ctx ); - mbedtls_md_init( &ctx_copy ); + mbedtls_md_init(&ctx); + mbedtls_md_init(&ctx_copy); - memset( md_name, 0x00, 100 ); - memset( src_str, 0x00, 1000 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(src_str, 0x00, 1000); + memset(output, 0x00, 100); - strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 ); - strncpy( (char *) md_name, text_md_name, sizeof(md_name) - 1 ); - len = strlen( (char *) src_str ); + strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); + len = strlen((char *) src_str); halfway = len / 2; md_info = mbedtls_md_info_from_string(md_name); - TEST_ASSERT( md_info != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx, md_info, 0 ) ); - TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx_copy, md_info, 0 ) ); - TEST_ASSERT ( mbedtls_md_info_from_ctx( &ctx ) == md_info ); - TEST_ASSERT ( mbedtls_md_info_from_ctx( &ctx_copy ) == md_info ); + TEST_ASSERT(md_info != NULL); + TEST_ASSERT(0 == mbedtls_md_setup(&ctx, md_info, 0)); + TEST_ASSERT(0 == mbedtls_md_setup(&ctx_copy, md_info, 0)); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx) == md_info); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx_copy) == md_info); - TEST_ASSERT ( 0 == mbedtls_md_starts( &ctx ) ); - TEST_ASSERT ( ctx.md_ctx != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str, halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_clone( &ctx_copy, &ctx ) ); + TEST_ASSERT(0 == mbedtls_md_starts(&ctx)); + TEST_ASSERT(ctx.md_ctx != NULL); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str, halfway)); + TEST_ASSERT(0 == mbedtls_md_clone(&ctx_copy, &ctx)); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str + halfway, len - halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx, output ) ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len) == 0 ); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str + halfway, len - halfway)); + TEST_ASSERT(0 == mbedtls_md_finish(&ctx, output)); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); /* Test clone */ - memset( output, 0x00, 100 ); + memset(output, 0x00, 100); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx_copy, src_str + halfway, len - halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx_copy, output ) ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src_str + halfway, len - halfway)); + TEST_ASSERT(0 == mbedtls_md_finish(&ctx_copy, output)); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); exit: - mbedtls_md_free( &ctx ); - mbedtls_md_free( &ctx_copy ); + mbedtls_md_free(&ctx); + mbedtls_md_free(&ctx_copy); } /* END_CASE */ /* BEGIN_CASE */ -void md_hex_multi( char * text_md_name, data_t * src_str, data_t * hash ) +void md_hex_multi(char *text_md_name, data_t *src_str, data_t *hash) { char md_name[100]; unsigned char output[100]; @@ -244,75 +245,76 @@ void md_hex_multi( char * text_md_name, data_t * src_str, data_t * hash ) mbedtls_md_context_t ctx, ctx_copy; int halfway; - mbedtls_md_init( &ctx ); - mbedtls_md_init( &ctx_copy ); + mbedtls_md_init(&ctx); + mbedtls_md_init(&ctx_copy); - memset( md_name, 0x00, 100 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(output, 0x00, 100); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); md_info = mbedtls_md_info_from_string(md_name); - TEST_ASSERT( md_info != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx, md_info, 0 ) ); - TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx_copy, md_info, 0 ) ); - TEST_ASSERT ( mbedtls_md_info_from_ctx( &ctx ) == md_info ); - TEST_ASSERT ( mbedtls_md_info_from_ctx( &ctx_copy ) == md_info ); + TEST_ASSERT(md_info != NULL); + TEST_ASSERT(0 == mbedtls_md_setup(&ctx, md_info, 0)); + TEST_ASSERT(0 == mbedtls_md_setup(&ctx_copy, md_info, 0)); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx) == md_info); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx_copy) == md_info); halfway = src_str->len / 2; - TEST_ASSERT ( 0 == mbedtls_md_starts( &ctx ) ); - TEST_ASSERT ( ctx.md_ctx != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str->x, halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_clone( &ctx_copy, &ctx ) ); + TEST_ASSERT(0 == mbedtls_md_starts(&ctx)); + TEST_ASSERT(ctx.md_ctx != NULL); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str->x, halfway)); + TEST_ASSERT(0 == mbedtls_md_clone(&ctx_copy, &ctx)); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx, src_str->x + halfway, src_str->len - halfway) ); - TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx, output ) ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(0 == mbedtls_md_update(&ctx, src_str->x + halfway, src_str->len - halfway)); + TEST_ASSERT(0 == mbedtls_md_finish(&ctx, output)); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); /* Test clone */ - memset( output, 0x00, 100 ); + memset(output, 0x00, 100); - TEST_ASSERT ( 0 == mbedtls_md_update( &ctx_copy, src_str->x + halfway, src_str->len - halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_finish( &ctx_copy, output ) ); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(0 == mbedtls_md_update(&ctx_copy, src_str->x + halfway, src_str->len - halfway)); + TEST_ASSERT(0 == mbedtls_md_finish(&ctx_copy, output)); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); exit: - mbedtls_md_free( &ctx ); - mbedtls_md_free( &ctx_copy ); + mbedtls_md_free(&ctx); + mbedtls_md_free(&ctx_copy); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_md_hmac( char * text_md_name, int trunc_size, - data_t * key_str, data_t * src_str, - data_t * hash ) +void mbedtls_md_hmac(char *text_md_name, int trunc_size, + data_t *key_str, data_t *src_str, + data_t *hash) { char md_name[100]; unsigned char output[100]; const mbedtls_md_info_t *md_info = NULL; - memset( md_name, 0x00, 100 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(output, 0x00, 100); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); - md_info = mbedtls_md_info_from_string( md_name ); - TEST_ASSERT( md_info != NULL ); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); + md_info = mbedtls_md_info_from_string(md_name); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT ( mbedtls_md_hmac( md_info, key_str->x, key_str->len, src_str->x, src_str->len, output ) == 0 ); + TEST_ASSERT(mbedtls_md_hmac(md_info, key_str->x, key_str->len, src_str->x, src_str->len, + output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - trunc_size, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + trunc_size, hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void md_hmac_multi( char * text_md_name, int trunc_size, data_t * key_str, - data_t * src_str, data_t * hash ) +void md_hmac_multi(char *text_md_name, int trunc_size, data_t *key_str, + data_t *src_str, data_t *hash) { char md_name[100]; unsigned char output[100]; @@ -320,63 +322,63 @@ void md_hmac_multi( char * text_md_name, int trunc_size, data_t * key_str, mbedtls_md_context_t ctx; int halfway; - mbedtls_md_init( &ctx ); + mbedtls_md_init(&ctx); - memset( md_name, 0x00, 100 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(output, 0x00, 100); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); - md_info = mbedtls_md_info_from_string( md_name ); - TEST_ASSERT( md_info != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_setup( &ctx, md_info, 1 ) ); - TEST_ASSERT ( mbedtls_md_info_from_ctx( &ctx ) == md_info ); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); + md_info = mbedtls_md_info_from_string(md_name); + TEST_ASSERT(md_info != NULL); + TEST_ASSERT(0 == mbedtls_md_setup(&ctx, md_info, 1)); + TEST_ASSERT(mbedtls_md_info_from_ctx(&ctx) == md_info); halfway = src_str->len / 2; - TEST_ASSERT ( 0 == mbedtls_md_hmac_starts( &ctx, key_str->x, key_str->len ) ); - TEST_ASSERT ( ctx.md_ctx != NULL ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_update( &ctx, src_str->x, halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_update( &ctx, src_str->x + halfway, src_str->len - halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_finish( &ctx, output ) ); + TEST_ASSERT(0 == mbedtls_md_hmac_starts(&ctx, key_str->x, key_str->len)); + TEST_ASSERT(ctx.md_ctx != NULL); + TEST_ASSERT(0 == mbedtls_md_hmac_update(&ctx, src_str->x, halfway)); + TEST_ASSERT(0 == mbedtls_md_hmac_update(&ctx, src_str->x + halfway, src_str->len - halfway)); + TEST_ASSERT(0 == mbedtls_md_hmac_finish(&ctx, output)); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - trunc_size, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + trunc_size, hash->len) == 0); /* Test again, for reset() */ - memset( output, 0x00, 100 ); + memset(output, 0x00, 100); - TEST_ASSERT ( 0 == mbedtls_md_hmac_reset( &ctx ) ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_update( &ctx, src_str->x, halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_update( &ctx, src_str->x + halfway, src_str->len - halfway ) ); - TEST_ASSERT ( 0 == mbedtls_md_hmac_finish( &ctx, output ) ); + TEST_ASSERT(0 == mbedtls_md_hmac_reset(&ctx)); + TEST_ASSERT(0 == mbedtls_md_hmac_update(&ctx, src_str->x, halfway)); + TEST_ASSERT(0 == mbedtls_md_hmac_update(&ctx, src_str->x + halfway, src_str->len - halfway)); + TEST_ASSERT(0 == mbedtls_md_hmac_finish(&ctx, output)); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - trunc_size, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + trunc_size, hash->len) == 0); exit: - mbedtls_md_free( &ctx ); + mbedtls_md_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void mbedtls_md_file( char * text_md_name, char * filename, - data_t * hash ) +void mbedtls_md_file(char *text_md_name, char *filename, + data_t *hash) { char md_name[100]; unsigned char output[100]; const mbedtls_md_info_t *md_info = NULL; - memset( md_name, 0x00, 100 ); - memset( output, 0x00, 100 ); + memset(md_name, 0x00, 100); + memset(output, 0x00, 100); - strncpy( (char *) md_name, text_md_name, sizeof( md_name ) - 1 ); - md_info = mbedtls_md_info_from_string( md_name ); - TEST_ASSERT( md_info != NULL ); + strncpy((char *) md_name, text_md_name, sizeof(md_name) - 1); + md_info = mbedtls_md_info_from_string(md_name); + TEST_ASSERT(md_info != NULL); - TEST_ASSERT( mbedtls_md_file( md_info, filename, output ) == 0 ); + TEST_ASSERT(mbedtls_md_file(md_info, filename, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - mbedtls_md_get_size( md_info ), - hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + mbedtls_md_get_size(md_info), + hash->len) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_mdx.function b/tests/suites/test_suite_mdx.function index 73f91231c..93f41014a 100644 --- a/tests/suites/test_suite_mdx.function +++ b/tests/suites/test_suite_mdx.function @@ -4,27 +4,27 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_MD5_C */ -void md5_text( char * text_src_string, data_t * hash ) +void md5_text(char *text_src_string, data_t *hash) { int ret; unsigned char src_str[100]; unsigned char output[16]; - memset( src_str, 0x00, sizeof src_str ); - memset( output, 0x00, sizeof output ); + memset(src_str, 0x00, sizeof src_str); + memset(output, 0x00, sizeof output); - strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 ); + strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); - ret = mbedtls_md5( src_str, strlen( (char *) src_str ), output ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_md5(src_str, strlen((char *) src_str), output); + TEST_ASSERT(ret == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - sizeof output, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + sizeof output, hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RIPEMD160_C */ -void ripemd160_text( char * text_src_string, data_t * hash ) +void ripemd160_text(char *text_src_string, data_t *hash) { int ret; unsigned char src_str[100]; @@ -33,26 +33,26 @@ void ripemd160_text( char * text_src_string, data_t * hash ) memset(src_str, 0x00, sizeof src_str); memset(output, 0x00, sizeof output); - strncpy( (char *) src_str, text_src_string, sizeof(src_str) - 1 ); + strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); - ret = mbedtls_ripemd160( src_str, strlen( (char *) src_str ), output ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ripemd160(src_str, strlen((char *) src_str), output); + TEST_ASSERT(ret == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, - sizeof output, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, + sizeof output, hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_MD5_C:MBEDTLS_SELF_TEST */ -void md5_selftest( ) +void md5_selftest() { - TEST_ASSERT( mbedtls_md5_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_md5_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RIPEMD160_C:MBEDTLS_SELF_TEST */ -void ripemd160_selftest( ) +void ripemd160_selftest() { - TEST_ASSERT( mbedtls_ripemd160_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_ripemd160_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_memory_buffer_alloc.function b/tests/suites/test_suite_memory_buffer_alloc.function index cc884c28e..2b81097a5 100644 --- a/tests/suites/test_suite_memory_buffer_alloc.function +++ b/tests/suites/test_suite_memory_buffer_alloc.function @@ -10,34 +10,36 @@ */ /* BEGIN_SUITE_HELPERS */ -static int check_pointer( void *p ) +static int check_pointer(void *p) { - if( p == NULL ) - return( -1 ); + if (p == NULL) { + return -1; + } - if( (size_t) p % MBEDTLS_MEMORY_ALIGN_MULTIPLE != 0 ) - return( -1 ); + if ((size_t) p % MBEDTLS_MEMORY_ALIGN_MULTIPLE != 0) { + return -1; + } - return( 0 ); + return 0; } /* END_SUITE_HELPERS */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void mbedtls_memory_buffer_alloc_self_test( ) +void mbedtls_memory_buffer_alloc_self_test() { - TEST_ASSERT( mbedtls_memory_buffer_alloc_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void memory_buffer_alloc_free_alloc( int a_bytes, int b_bytes, int c_bytes, - int d_bytes, int free_a, int free_b, - int free_c, int free_d, int e_bytes, - int f_bytes ) +void memory_buffer_alloc_free_alloc(int a_bytes, int b_bytes, int c_bytes, + int d_bytes, int free_a, int free_b, + int free_c, int free_d, int e_bytes, + int f_bytes) { unsigned char buf[1024]; unsigned char *ptr_a = NULL, *ptr_b = NULL, *ptr_c = NULL, *ptr_d = NULL, - *ptr_e = NULL, *ptr_f = NULL; + *ptr_e = NULL, *ptr_f = NULL; #if defined(MBEDTLS_MEMORY_DEBUG) size_t reported_blocks; @@ -45,98 +47,88 @@ void memory_buffer_alloc_free_alloc( int a_bytes, int b_bytes, int c_bytes, #endif size_t allocated_bytes = 0; - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); - mbedtls_memory_buffer_set_verify( MBEDTLS_MEMORY_VERIFY_ALWAYS ); + mbedtls_memory_buffer_set_verify(MBEDTLS_MEMORY_VERIFY_ALWAYS); - if( a_bytes > 0 ) - { - ptr_a = mbedtls_calloc( a_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_a ) == 0 ); + if (a_bytes > 0) { + ptr_a = mbedtls_calloc(a_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_a) == 0); allocated_bytes += a_bytes * sizeof(char); } - if( b_bytes > 0 ) - { - ptr_b = mbedtls_calloc( b_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_b ) == 0 ); + if (b_bytes > 0) { + ptr_b = mbedtls_calloc(b_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_b) == 0); allocated_bytes += b_bytes * sizeof(char); } - if( c_bytes > 0 ) - { - ptr_c = mbedtls_calloc( c_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_c ) == 0 ); + if (c_bytes > 0) { + ptr_c = mbedtls_calloc(c_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_c) == 0); allocated_bytes += c_bytes * sizeof(char); } - if( d_bytes > 0 ) - { - ptr_d = mbedtls_calloc( d_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_d ) == 0 ); + if (d_bytes > 0) { + ptr_d = mbedtls_calloc(d_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_d) == 0); allocated_bytes += d_bytes * sizeof(char); } #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( &reported_bytes, &reported_blocks ); - TEST_ASSERT( reported_bytes == allocated_bytes ); + mbedtls_memory_buffer_alloc_cur_get(&reported_bytes, &reported_blocks); + TEST_ASSERT(reported_bytes == allocated_bytes); #endif - if( free_a ) - { - mbedtls_free( ptr_a ); + if (free_a) { + mbedtls_free(ptr_a); ptr_a = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); allocated_bytes -= a_bytes * sizeof(char); } - if( free_b ) - { - mbedtls_free( ptr_b ); + if (free_b) { + mbedtls_free(ptr_b); ptr_b = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); allocated_bytes -= b_bytes * sizeof(char); } - if( free_c ) - { - mbedtls_free( ptr_c ); + if (free_c) { + mbedtls_free(ptr_c); ptr_c = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); allocated_bytes -= c_bytes * sizeof(char); } - if( free_d ) - { - mbedtls_free( ptr_d ); + if (free_d) { + mbedtls_free(ptr_d); ptr_d = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); allocated_bytes -= d_bytes * sizeof(char); } #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( &reported_bytes, &reported_blocks ); - TEST_ASSERT( reported_bytes == allocated_bytes ); + mbedtls_memory_buffer_alloc_cur_get(&reported_bytes, &reported_blocks); + TEST_ASSERT(reported_bytes == allocated_bytes); #endif - if( e_bytes > 0 ) - { - ptr_e = mbedtls_calloc( e_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_e ) == 0 ); + if (e_bytes > 0) { + ptr_e = mbedtls_calloc(e_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_e) == 0); } - if( f_bytes > 0 ) - { - ptr_f = mbedtls_calloc( f_bytes, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_f ) == 0 ); + if (f_bytes > 0) { + ptr_f = mbedtls_calloc(f_bytes, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_f) == 0); } /* Once blocks are reallocated, the block allocated to the memory request @@ -144,61 +136,55 @@ void memory_buffer_alloc_free_alloc( int a_bytes, int b_bytes, int c_bytes, * bytes, and makes it hard to know what the reported size will be, so * we don't check the size after blocks have been reallocated. */ - if( ptr_a != NULL ) - { - mbedtls_free( ptr_a ); + if (ptr_a != NULL) { + mbedtls_free(ptr_a); ptr_a = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } - if( ptr_b != NULL ) - { - mbedtls_free( ptr_b ); + if (ptr_b != NULL) { + mbedtls_free(ptr_b); ptr_b = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } - if( ptr_c != NULL ) - { - mbedtls_free( ptr_c ); + if (ptr_c != NULL) { + mbedtls_free(ptr_c); ptr_c = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } - if( ptr_d != NULL ) - { - mbedtls_free( ptr_d ); + if (ptr_d != NULL) { + mbedtls_free(ptr_d); ptr_d = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } - if( ptr_e != NULL ) - { - mbedtls_free( ptr_e ); + if (ptr_e != NULL) { + mbedtls_free(ptr_e); ptr_e = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } - if( ptr_f != NULL ) - { - mbedtls_free( ptr_f ); + if (ptr_f != NULL) { + mbedtls_free(ptr_f); ptr_f = NULL; } #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( &reported_bytes, &reported_blocks ); - TEST_ASSERT( reported_bytes == 0 ); + mbedtls_memory_buffer_alloc_cur_get(&reported_bytes, &reported_blocks); + TEST_ASSERT(reported_bytes == 0); #endif - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); exit: - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); } /* END_CASE */ /* BEGIN_CASE */ -void memory_buffer_alloc_oom_test( ) +void memory_buffer_alloc_oom_test() { unsigned char buf[1024]; unsigned char *ptr_a = NULL, *ptr_b = NULL, *ptr_c = NULL; @@ -206,71 +192,70 @@ void memory_buffer_alloc_oom_test( ) size_t reported_blocks, reported_bytes; #endif - (void)ptr_c; + (void) ptr_c; - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); - mbedtls_memory_buffer_set_verify( MBEDTLS_MEMORY_VERIFY_ALWAYS ); + mbedtls_memory_buffer_set_verify(MBEDTLS_MEMORY_VERIFY_ALWAYS); - ptr_a = mbedtls_calloc( 432, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_a ) == 0 ); + ptr_a = mbedtls_calloc(432, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_a) == 0); - ptr_b = mbedtls_calloc( 432, sizeof(char) ); - TEST_ASSERT( check_pointer( ptr_b ) == 0 ); + ptr_b = mbedtls_calloc(432, sizeof(char)); + TEST_ASSERT(check_pointer(ptr_b) == 0); - ptr_c = mbedtls_calloc( 431, sizeof(char) ); - TEST_ASSERT( ptr_c == NULL ); + ptr_c = mbedtls_calloc(431, sizeof(char)); + TEST_ASSERT(ptr_c == NULL); #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( &reported_bytes, &reported_blocks ); - TEST_ASSERT( reported_bytes >= 864 && reported_bytes <= sizeof(buf) ); + mbedtls_memory_buffer_alloc_cur_get(&reported_bytes, &reported_blocks); + TEST_ASSERT(reported_bytes >= 864 && reported_bytes <= sizeof(buf)); #endif - mbedtls_free( ptr_a ); + mbedtls_free(ptr_a); ptr_a = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); - mbedtls_free( ptr_b ); + mbedtls_free(ptr_b); ptr_b = NULL; - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); #if defined(MBEDTLS_MEMORY_DEBUG) - mbedtls_memory_buffer_alloc_cur_get( &reported_bytes, &reported_blocks ); - TEST_ASSERT( reported_bytes == 0 ); + mbedtls_memory_buffer_alloc_cur_get(&reported_bytes, &reported_blocks); + TEST_ASSERT(reported_bytes == 0); #endif - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); exit: - mbedtls_memory_buffer_alloc_free( ); + mbedtls_memory_buffer_alloc_free(); } /* END_CASE */ /* BEGIN_CASE */ -void memory_buffer_heap_too_small( ) +void memory_buffer_heap_too_small() { unsigned char buf[1]; - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); /* With MBEDTLS_MEMORY_DEBUG enabled, this prints a message * "FATAL: verification of first header failed". */ - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() != 0 ); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() != 0); } /* END_CASE */ /* BEGIN_CASE */ -void memory_buffer_underalloc( ) +void memory_buffer_underalloc() { unsigned char buf[100]; size_t i; - mbedtls_memory_buffer_alloc_init( buf, sizeof( buf ) ); - for( i = 1; i < MBEDTLS_MEMORY_ALIGN_MULTIPLE; i++ ) - { - TEST_ASSERT( mbedtls_calloc( 1, - (size_t)-( MBEDTLS_MEMORY_ALIGN_MULTIPLE - i ) ) == NULL ); - TEST_ASSERT( mbedtls_memory_buffer_alloc_verify() == 0 ); + mbedtls_memory_buffer_alloc_init(buf, sizeof(buf)); + for (i = 1; i < MBEDTLS_MEMORY_ALIGN_MULTIPLE; i++) { + TEST_ASSERT(mbedtls_calloc(1, + (size_t) -(MBEDTLS_MEMORY_ALIGN_MULTIPLE - i)) == NULL); + TEST_ASSERT(mbedtls_memory_buffer_alloc_verify() == 0); } exit: diff --git a/tests/suites/test_suite_mps.function b/tests/suites/test_suite_mps.function index ec1122ae4..6d9a8a81a 100644 --- a/tests/suites/test_suite_mps.function +++ b/tests/suites/test_suite_mps.function @@ -25,7 +25,7 @@ */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_no_pausing_single_step_single_round( int with_acc ) +void mbedtls_mps_reader_no_pausing_single_step_single_round(int with_acc) { /* This test exercises the most basic use of the MPS reader: * - The 'producing' layer provides a buffer @@ -46,29 +46,31 @@ void mbedtls_mps_reader_no_pausing_single_step_single_round( int with_acc ) unsigned char *tmp; int paused; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - if( with_acc == 0 ) - mbedtls_mps_reader_init( &rd, NULL, 0 ); - else - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + if (with_acc == 0) { + mbedtls_mps_reader_init(&rd, NULL, 0); + } else { + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + } + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ /* Consume exactly what's available */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 100, bufA, 100 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 100, bufA, 100); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, &paused ) == 0 ); - TEST_ASSERT( paused == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, &paused) == 0); + TEST_ASSERT(paused == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_no_pausing_single_step_multiple_rounds( int with_acc ) +void mbedtls_mps_reader_no_pausing_single_step_multiple_rounds(int with_acc) { /* This test exercises multiple rounds of the basic use of the MPS reader: * - The 'producing' layer provides a buffer @@ -89,37 +91,40 @@ void mbedtls_mps_reader_no_pausing_single_step_multiple_rounds( int with_acc ) unsigned char acc[10]; unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - if( with_acc == 0 ) - mbedtls_mps_reader_init( &rd, NULL, 0 ); - else - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + if (with_acc == 0) { + mbedtls_mps_reader_init(&rd, NULL, 0); + } else { + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + } + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ /* Consume exactly what's available */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 100, bufA, 100 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 100, bufA, 100); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, sizeof( bufB ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, sizeof(bufB)) == 0); /* Consumption */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 100, bufB, 100 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 100, bufB, 100); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_no_pausing_multiple_steps_single_round( int with_acc ) +void mbedtls_mps_reader_no_pausing_multiple_steps_single_round(int with_acc) { /* This test exercises one round of the following: * - The 'producing' layer provides a buffer @@ -144,31 +149,33 @@ void mbedtls_mps_reader_no_pausing_multiple_steps_single_round( int with_acc ) unsigned char *tmp; mbedtls_mps_size_t tmp_len; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - if( with_acc == 0 ) - mbedtls_mps_reader_init( &rd, NULL, 0 ); - else - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + if (with_acc == 0) { + mbedtls_mps_reader_init(&rd, NULL, 0); + } else { + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + } + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, buf, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 70, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 70, buf + 10, 70 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 30, &tmp, &tmp_len ) == 0 ); - ASSERT_COMPARE( tmp, tmp_len, buf + 80, 20 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, buf, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 70, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 70, buf + 10, 70); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 30, &tmp, &tmp_len) == 0); + ASSERT_COMPARE(tmp, tmp_len, buf + 80, 20); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_no_pausing_multiple_steps_multiple_rounds( int with_acc ) +void mbedtls_mps_reader_no_pausing_multiple_steps_multiple_rounds(int with_acc) { /* This test exercises one round of fetching a buffer in multiple chunks * and passing it back to the producer afterwards, followed by another @@ -179,35 +186,38 @@ void mbedtls_mps_reader_no_pausing_multiple_steps_multiple_rounds( int with_acc unsigned char *tmp; mbedtls_mps_size_t tmp_len; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - if( with_acc == 0 ) - mbedtls_mps_reader_init( &rd, NULL, 0 ); - else - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + if (with_acc == 0) { + mbedtls_mps_reader_init(&rd, NULL, 0); + } else { + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + } + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 70, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 70, bufA + 10, 70 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 30, &tmp, &tmp_len ) == 0 ); - ASSERT_COMPARE( tmp, tmp_len, bufA + 80, 20 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 70, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 70, bufA + 10, 70); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 30, &tmp, &tmp_len) == 0); + ASSERT_COMPARE(tmp, tmp_len, bufA + 80, 20); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, sizeof( bufB ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, sizeof(bufB)) == 0); /* Consumption */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 100, bufB, 100 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 100, bufB, 100); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ @@ -224,22 +234,23 @@ void mbedtls_mps_reader_pausing_needed_disabled() unsigned char buf[100]; unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, NULL, 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + mbedtls_mps_reader_init(&rd, NULL, 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf, 50 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf, 50); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_NEED_ACCUMULATOR); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ @@ -264,28 +275,29 @@ void mbedtls_mps_reader_pausing_needed_buffer_too_small() mbedtls_mps_reader rd; mbedtls_mps_size_t tmp_len; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf, 50 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, buf + 50, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf, 50); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, buf + 50, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, &tmp_len ) == 0 ); - ASSERT_COMPARE( tmp, tmp_len, buf + 50, 50 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, &tmp_len) == 0); + ASSERT_COMPARE(tmp, tmp_len, buf + 50, 50); - mbedtls_mps_reader_free( &rd ); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ @@ -304,28 +316,29 @@ void mbedtls_mps_reader_reclaim_overflow() unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf, 50 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf, 50); /* Excess request */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, (mbedtls_mps_size_t) -1, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, (mbedtls_mps_size_t) -1, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Wrapup (lower layer) */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL); - mbedtls_mps_reader_free( &rd ); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_pausing( int option ) +void mbedtls_mps_reader_pausing(int option) { /* This test exercises the behaviour of the reader when the * accumulator is used to fulfill a consumer's request. @@ -349,108 +362,108 @@ void mbedtls_mps_reader_pausing( int option ) unsigned char acc[40]; int paused; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ /* Ask for more than what's available. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 80, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 80, bufA, 80 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - switch( option ) - { + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 80, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 80, bufA, 80); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + switch (option) { case 0: /* Single uncommitted fetch at pausing */ case 1: - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); break; default: /* Multiple uncommitted fetches at pausing */ break; } - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, &paused ) == 0 ); - TEST_ASSERT( paused == 1 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, sizeof( bufB ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, &paused) == 0); + TEST_ASSERT(paused == 1); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, sizeof(bufB)) == 0); /* Consumption */ - switch( option ) - { + switch (option) { case 0: /* Single fetch at pausing, re-fetch with commit. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); break; case 1: /* Single fetch at pausing, re-fetch without commit. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); break; case 2: /* Multiple fetches at pausing, repeat without commit. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); break; case 3: /* Multiple fetches at pausing, repeat with commit 1. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); break; case 4: /* Multiple fetches at pausing, repeat with commit 2. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); break; case 5: /* Multiple fetches at pausing, repeat with commit 3. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); } /* In all cases, fetch the rest of the second buffer. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 90, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 90, bufB + 10, 90 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 90, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 90, bufB + 10, 90); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_pausing_multiple_feeds( int option ) +void mbedtls_mps_reader_pausing_multiple_feeds(int option) { /* This test exercises the behaviour of the MPS reader * in the following situation: @@ -471,93 +484,91 @@ void mbedtls_mps_reader_pausing_multiple_feeds( int option ) unsigned char acc[70]; mbedtls_mps_reader rd; mbedtls_mps_size_t fetch_len; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ /* Ask for more than what's available. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 80, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 80, bufA, 80 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 80, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 80, bufA, 80); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* 20 left, ask for 70 -> 50 overhead */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 70, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 70, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - switch( option ) - { + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + switch (option) { case 0: /* 10 + 10 + 80 byte feed */ - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, 10 ) == - MBEDTLS_ERR_MPS_READER_NEED_MORE ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + 10, 10 ) == - MBEDTLS_ERR_MPS_READER_NEED_MORE ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + 20, 80 ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, 10) == + MBEDTLS_ERR_MPS_READER_NEED_MORE); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + 10, 10) == + MBEDTLS_ERR_MPS_READER_NEED_MORE); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + 20, 80) == 0); break; case 1: /* 50 x 1byte */ - for( size_t num_feed = 0; num_feed < 49; num_feed++ ) - { - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + num_feed, 1 ) == - MBEDTLS_ERR_MPS_READER_NEED_MORE ); + for (size_t num_feed = 0; num_feed < 49; num_feed++) { + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + num_feed, 1) == + MBEDTLS_ERR_MPS_READER_NEED_MORE); } - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + 49, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + 49, 1) == 0); break; case 2: /* 49 x 1byte + 51bytes */ - for( size_t num_feed = 0; num_feed < 49; num_feed++ ) - { - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + num_feed, 1 ) == - MBEDTLS_ERR_MPS_READER_NEED_MORE ); + for (size_t num_feed = 0; num_feed < 49; num_feed++) { + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + num_feed, 1) == + MBEDTLS_ERR_MPS_READER_NEED_MORE); } - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB + 49, 51 ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB + 49, 51) == 0); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } /* Consumption */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 70, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 20, bufA + 80, 20 ); - ASSERT_COMPARE( tmp + 20, 50, bufB, 50 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 1000, &tmp, &fetch_len ) == 0 ); - switch( option ) - { + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 70, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 20, bufA + 80, 20); + ASSERT_COMPARE(tmp + 20, 50, bufB, 50); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 1000, &tmp, &fetch_len) == 0); + switch (option) { case 0: - TEST_ASSERT( fetch_len == 50 ); + TEST_ASSERT(fetch_len == 50); break; case 1: - TEST_ASSERT( fetch_len == 0 ); + TEST_ASSERT(fetch_len == 0); break; case 2: - TEST_ASSERT( fetch_len == 50 ); + TEST_ASSERT(fetch_len == 50); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_reclaim_data_left( int option ) +void mbedtls_mps_reader_reclaim_data_left(int option) { /* This test exercises the behaviour of the MPS reader when a * call to mbedtls_mps_reader_reclaim() is made before all data @@ -566,53 +577,53 @@ void mbedtls_mps_reader_reclaim_data_left( int option ) unsigned char buf[100]; unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, NULL, 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + mbedtls_mps_reader_init(&rd, NULL, 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - switch( option ) - { + switch (option) { case 0: /* Fetch (but not commit) the entire buffer. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, sizeof( buf ), &tmp, NULL ) - == 0 ); - ASSERT_COMPARE( tmp, 100, buf, 100 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, sizeof(buf), &tmp, NULL) + == 0); + ASSERT_COMPARE(tmp, 100, buf, 100); break; case 1: /* Fetch (but not commit) parts of the buffer. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, sizeof( buf ) / 2, - &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, sizeof( buf ) / 2, buf, sizeof( buf ) / 2 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, sizeof(buf) / 2, + &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, sizeof(buf) / 2, buf, sizeof(buf) / 2); break; case 2: /* Fetch and commit parts of the buffer, then * fetch but not commit the rest of the buffer. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, sizeof( buf ) / 2, - &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, sizeof( buf ) / 2, buf, sizeof( buf ) / 2 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, sizeof( buf ) / 2, - &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, sizeof( buf ) / 2, - buf + sizeof( buf ) / 2, - sizeof( buf ) / 2 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, sizeof(buf) / 2, + &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, sizeof(buf) / 2, buf, sizeof(buf) / 2); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, sizeof(buf) / 2, + &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, sizeof(buf) / 2, + buf + sizeof(buf) / 2, + sizeof(buf) / 2); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_DATA_LEFT ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_DATA_LEFT); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ @@ -626,33 +637,34 @@ void mbedtls_mps_reader_reclaim_data_left_retry() unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, NULL, 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + mbedtls_mps_reader_init(&rd, NULL, 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf, 50 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf + 50, 50 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf, 50); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf + 50, 50); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_DATA_LEFT ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_DATA_LEFT); /* Consumption */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 50, buf + 50, 50 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 50, buf + 50, 50); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_mps_reader_multiple_pausing( int option ) +void mbedtls_mps_reader_multiple_pausing(int option) { /* This test exercises the behaviour of the MPS reader * in the following situation: @@ -670,126 +682,128 @@ void mbedtls_mps_reader_multiple_pausing( int option ) unsigned char acc[50]; mbedtls_mps_size_t tmp_len; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); - for( size_t i=0; (unsigned) i < sizeof( bufC ); i++ ) - bufC[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufC); i++) { + bufC[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ /* Ask for more than what's available. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 80, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 80, bufA, 80 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 80, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 80, bufA, 80); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, sizeof( bufB ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, sizeof(bufB)) == 0); - switch( option ) - { + switch (option) { case 0: /* Fetch same chunks, commit afterwards, and * then exceed bounds of new buffer; accumulator * large enough. */ /* Consume */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, &tmp_len ) == 0 ); - ASSERT_COMPARE( tmp, tmp_len, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, &tmp_len) == 0); + ASSERT_COMPARE(tmp, tmp_len, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Prepare */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufC, sizeof( bufC ) ) == 0 );; + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufC, sizeof(bufC)) == 0);; /* Consume */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufB + 10, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufC, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufB + 10, 10); + ASSERT_COMPARE(tmp + 10, 10, bufC, 10); break; case 1: /* Fetch same chunks, commit afterwards, and * then exceed bounds of new buffer; accumulator * not large enough. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 51, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 51, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Prepare */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL); break; case 2: /* Fetch same chunks, don't commit afterwards, and * then exceed bounds of new buffer; accumulator * large enough. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Prepare */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufC, sizeof( bufC ) ) == 0 );; + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufC, sizeof(bufC)) == 0);; /* Consume */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 50, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 20, bufA + 80, 20 ); - ASSERT_COMPARE( tmp + 20, 20, bufB, 20 ); - ASSERT_COMPARE( tmp + 40, 10, bufC, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 50, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 20, bufA + 80, 20); + ASSERT_COMPARE(tmp + 20, 20, bufB, 20); + ASSERT_COMPARE(tmp + 40, 10, bufC, 10); break; case 3: /* Fetch same chunks, don't commit afterwards, and * then exceed bounds of new buffer; accumulator * not large enough. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 80, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 10, bufA + 90, 10 ); - ASSERT_COMPARE( tmp + 10, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 21, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 80, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 10, bufA + 90, 10); + ASSERT_COMPARE(tmp + 10, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 21, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Prepare */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == - MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == + MBEDTLS_ERR_MPS_READER_ACCUMULATOR_TOO_SMALL); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } - mbedtls_mps_reader_free( &rd ); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER:MBEDTLS_MPS_STATE_VALIDATION */ -void mbedtls_mps_reader_random_usage( int num_out_chunks, - int max_chunk_size, - int max_request, - int acc_size ) +void mbedtls_mps_reader_random_usage(int num_out_chunks, + int max_chunk_size, + int max_request, + int acc_size) { /* Randomly pass a reader object back and forth between lower and @@ -829,130 +843,108 @@ void mbedtls_mps_reader_random_usage( int num_out_chunks, * returning the reader to the upper layer. */ mbedtls_mps_reader rd; - if( acc_size > 0 ) - { - ASSERT_ALLOC( acc, acc_size ); + if (acc_size > 0) { + ASSERT_ALLOC(acc, acc_size); } /* This probably needs to be changed because we want * our tests to be deterministic. */ // srand( time( NULL ) ); - ASSERT_ALLOC( outgoing, num_out_chunks * max_chunk_size ); - ASSERT_ALLOC( incoming, num_out_chunks * max_chunk_size ); + ASSERT_ALLOC(outgoing, num_out_chunks * max_chunk_size); + ASSERT_ALLOC(incoming, num_out_chunks * max_chunk_size); - mbedtls_mps_reader_init( &rd, acc, acc_size ); + mbedtls_mps_reader_init(&rd, acc, acc_size); cur_out_chunk = 0; in_commit = 0; in_fetch = 0; out_pos = 0; - while( cur_out_chunk < (unsigned) num_out_chunks ) - { - if( mode == 0 ) - { + while (cur_out_chunk < (unsigned) num_out_chunks) { + if (mode == 0) { /* Choose randomly between reclaim and feed */ rand_op = rand() % 2; - if( rand_op == 0 ) - { + if (rand_op == 0) { /* Reclaim */ - ret = mbedtls_mps_reader_reclaim( &rd, NULL ); + ret = mbedtls_mps_reader_reclaim(&rd, NULL); - if( ret == 0 ) - { - TEST_ASSERT( cur_chunk != NULL ); - mbedtls_free( cur_chunk ); + if (ret == 0) { + TEST_ASSERT(cur_chunk != NULL); + mbedtls_free(cur_chunk); cur_chunk = NULL; } reclaimed = 1; - } - else - { + } else { /* Feed reader with a random chunk */ unsigned char *tmp = NULL; size_t tmp_size; - if( cur_out_chunk == (unsigned) num_out_chunks ) + if (cur_out_chunk == (unsigned) num_out_chunks) { continue; + } - tmp_size = ( rand() % max_chunk_size ) + 1; - ASSERT_ALLOC( tmp, tmp_size ); + tmp_size = (rand() % max_chunk_size) + 1; + ASSERT_ALLOC(tmp, tmp_size); - TEST_ASSERT( mbedtls_test_rnd_std_rand( NULL, tmp, tmp_size ) == 0 ); - ret = mbedtls_mps_reader_feed( &rd, tmp, tmp_size ); + TEST_ASSERT(mbedtls_test_rnd_std_rand(NULL, tmp, tmp_size) == 0); + ret = mbedtls_mps_reader_feed(&rd, tmp, tmp_size); - if( ret == 0 || ret == MBEDTLS_ERR_MPS_READER_NEED_MORE ) - { + if (ret == 0 || ret == MBEDTLS_ERR_MPS_READER_NEED_MORE) { cur_out_chunk++; - memcpy( outgoing + out_pos, tmp, tmp_size ); + memcpy(outgoing + out_pos, tmp, tmp_size); out_pos += tmp_size; } - if( ret == 0 ) - { - TEST_ASSERT( cur_chunk == NULL ); + if (ret == 0) { + TEST_ASSERT(cur_chunk == NULL); cur_chunk = tmp; - } - else - { - mbedtls_free( tmp ); + } else { + mbedtls_free(tmp); } } /* Randomly switch to consumption mode if reclaim * was called at least once. */ - if( reclaimed == 1 && rand() % 3 == 0 ) - { + if (reclaimed == 1 && rand() % 3 == 0) { in_fetch = 0; mode = 1; } - } - else - { + } else { /* Choose randomly between get tolerating fewer data, * get not tolerating fewer data, and commit. */ rand_op = rand() % 3; - if( rand_op == 0 || rand_op == 1 ) - { + if (rand_op == 0 || rand_op == 1) { mbedtls_mps_size_t get_size, real_size; unsigned char *chunk_get; - get_size = ( rand() % max_request ) + 1; - if( rand_op == 0 ) - { - ret = mbedtls_mps_reader_get( &rd, get_size, &chunk_get, - &real_size ); - } - else - { + get_size = (rand() % max_request) + 1; + if (rand_op == 0) { + ret = mbedtls_mps_reader_get(&rd, get_size, &chunk_get, + &real_size); + } else { real_size = get_size; - ret = mbedtls_mps_reader_get( &rd, get_size, &chunk_get, NULL ); + ret = mbedtls_mps_reader_get(&rd, get_size, &chunk_get, NULL); } /* Check if output is in accordance with what was written */ - if( ret == 0 ) - { - memcpy( incoming + in_commit + in_fetch, - chunk_get, real_size ); - TEST_ASSERT( memcmp( incoming + in_commit + in_fetch, - outgoing + in_commit + in_fetch, - real_size ) == 0 ); + if (ret == 0) { + memcpy(incoming + in_commit + in_fetch, + chunk_get, real_size); + TEST_ASSERT(memcmp(incoming + in_commit + in_fetch, + outgoing + in_commit + in_fetch, + real_size) == 0); in_fetch += real_size; } - } - else if( rand_op == 2 ) /* Commit */ - { - ret = mbedtls_mps_reader_commit( &rd ); - if( ret == 0 ) - { + } else if (rand_op == 2) { /* Commit */ + ret = mbedtls_mps_reader_commit(&rd); + if (ret == 0) { in_commit += in_fetch; in_fetch = 0; } } /* Randomly switch back to preparation */ - if( rand() % 3 == 0 ) - { + if (rand() % 3 == 0) { reclaimed = 0; mode = 0; } @@ -960,16 +952,16 @@ void mbedtls_mps_reader_random_usage( int num_out_chunks, } /* Cleanup */ - mbedtls_mps_reader_free( &rd ); - mbedtls_free( incoming ); - mbedtls_free( outgoing ); - mbedtls_free( acc ); - mbedtls_free( cur_chunk ); + mbedtls_mps_reader_free(&rd); + mbedtls_free(incoming); + mbedtls_free(outgoing); + mbedtls_free(acc); + mbedtls_free(cur_chunk); } /* END_CASE */ /* BEGIN_CASE depends_on:TEST_SUITE_MPS_READER */ -void mbedtls_reader_inconsistent_usage( int option ) +void mbedtls_reader_inconsistent_usage(int option) { /* This test exercises the behaviour of the MPS reader * in the following situation: @@ -989,130 +981,130 @@ void mbedtls_reader_inconsistent_usage( int option ) unsigned char acc[40]; mbedtls_mps_reader rd; int success = 0; - for( size_t i=0; (unsigned) i < sizeof( bufA ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(bufA); i++) { bufA[i] = (unsigned char) i; - for( size_t i=0; (unsigned) i < sizeof( bufB ); i++ ) - bufB[i] = ~ ((unsigned char) i); + } + for (size_t i = 0; (unsigned) i < sizeof(bufB); i++) { + bufB[i] = ~((unsigned char) i); + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, acc, sizeof( acc ) ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufA, sizeof( bufA ) ) == 0 ); + mbedtls_mps_reader_init(&rd, acc, sizeof(acc)); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufA, sizeof(bufA)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 80, &tmp, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 20, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_OUT_OF_DATA ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 80, &tmp, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 20, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_OUT_OF_DATA); /* Preparation */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, bufB, sizeof( bufB ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, bufB, sizeof(bufB)) == 0); /* Consumption */ - switch( option ) - { + switch (option) { case 0: /* Ask for buffered data in a single chunk, no commit */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 30, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 20, bufA + 80, 20 ); - ASSERT_COMPARE( tmp + 20, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 30, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 20, bufA + 80, 20); + ASSERT_COMPARE(tmp + 20, 10, bufB, 10); success = 1; break; case 1: /* Ask for buffered data in a single chunk, with commit */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 30, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 20, bufA + 80, 20 ); - ASSERT_COMPARE( tmp + 20, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 30, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 20, bufA + 80, 20); + ASSERT_COMPARE(tmp + 20, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); success = 1; break; case 2: /* Ask for more than was requested when pausing, #1 */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 31, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 31, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS); break; case 3: /* Ask for more than was requested when pausing #2 */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, (mbedtls_mps_size_t) -1, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, (mbedtls_mps_size_t) -1, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS); break; case 4: /* Asking for buffered data in different * chunks than before CAN fail. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 15, bufA + 80, 15 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 10, &tmp, NULL ) == - MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 15, bufA + 80, 15); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 10, &tmp, NULL) == + MBEDTLS_ERR_MPS_READER_INCONSISTENT_REQUESTS); break; case 5: /* Asking for buffered data different chunks * than before NEED NOT fail - no commits */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 15, bufA + 80, 15 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 5, bufA + 95, 5 ); - ASSERT_COMPARE( tmp + 5, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 15, bufA + 80, 15); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 5, bufA + 95, 5); + ASSERT_COMPARE(tmp + 5, 10, bufB, 10); success = 1; break; case 6: /* Asking for buffered data different chunks * than before NEED NOT fail - intermediate commit */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 15, bufA + 80, 15 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 5, bufA + 95, 5 ); - ASSERT_COMPARE( tmp + 5, 10, bufB, 10 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 15, bufA + 80, 15); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 5, bufA + 95, 5); + ASSERT_COMPARE(tmp + 5, 10, bufB, 10); success = 1; break; case 7: /* Asking for buffered data different chunks * than before NEED NOT fail - end commit */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 15, bufA + 80, 15 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 5, bufA + 95, 5 ); - ASSERT_COMPARE( tmp + 5, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 15, bufA + 80, 15); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 5, bufA + 95, 5); + ASSERT_COMPARE(tmp + 5, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); success = 1; break; case 8: /* Asking for buffered data different chunks * than before NEED NOT fail - intermediate & end commit */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 15, bufA + 80, 15 ); - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 15, &tmp, NULL ) == 0 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); - ASSERT_COMPARE( tmp, 5, bufA + 95, 5 ); - ASSERT_COMPARE( tmp + 5, 10, bufB, 10 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 15, bufA + 80, 15); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 15, &tmp, NULL) == 0); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); + ASSERT_COMPARE(tmp, 5, bufA + 95, 5); + ASSERT_COMPARE(tmp + 5, 10, bufB, 10); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); success = 1; break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } - if( success == 1 ) - { + if (success == 1) { /* In all succeeding cases, fetch the rest of the second buffer. */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 90, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 90, bufB + 10, 90 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 90, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 90, bufB + 10, 90); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); } /* Wrapup */ - mbedtls_mps_reader_free( &rd ); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ @@ -1124,25 +1116,26 @@ void mbedtls_mps_reader_feed_empty() unsigned char buf[100]; unsigned char *tmp; mbedtls_mps_reader rd; - for( size_t i=0; (unsigned) i < sizeof( buf ); i++ ) + for (size_t i = 0; (unsigned) i < sizeof(buf); i++) { buf[i] = (unsigned char) i; + } /* Preparation (lower layer) */ - mbedtls_mps_reader_init( &rd, NULL, 0 ); + mbedtls_mps_reader_init(&rd, NULL, 0); - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, NULL, sizeof( buf ) ) == - MBEDTLS_ERR_MPS_READER_INVALID_ARG ); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, NULL, sizeof(buf)) == + MBEDTLS_ERR_MPS_READER_INVALID_ARG); /* Subsequent feed-calls should still succeed. */ - TEST_ASSERT( mbedtls_mps_reader_feed( &rd, buf, sizeof( buf ) ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_feed(&rd, buf, sizeof(buf)) == 0); /* Consumption (upper layer) */ - TEST_ASSERT( mbedtls_mps_reader_get( &rd, 100, &tmp, NULL ) == 0 ); - ASSERT_COMPARE( tmp, 100, buf, 100 ); - TEST_ASSERT( mbedtls_mps_reader_commit( &rd ) == 0 ); + TEST_ASSERT(mbedtls_mps_reader_get(&rd, 100, &tmp, NULL) == 0); + ASSERT_COMPARE(tmp, 100, buf, 100); + TEST_ASSERT(mbedtls_mps_reader_commit(&rd) == 0); /* Wrapup */ - TEST_ASSERT( mbedtls_mps_reader_reclaim( &rd, NULL ) == 0 ); - mbedtls_mps_reader_free( &rd ); + TEST_ASSERT(mbedtls_mps_reader_reclaim(&rd, NULL) == 0); + mbedtls_mps_reader_free(&rd); } /* END_CASE */ diff --git a/tests/suites/test_suite_net.function b/tests/suites/test_suite_net.function index 08d48b322..fa09f5a64 100644 --- a/tests/suites/test_suite_net.function +++ b/tests/suites/test_suite_net.function @@ -30,19 +30,18 @@ * * \return \c 0 on success, a negative error code on error. */ -static int open_file_on_fd( mbedtls_net_context *ctx, int wanted_fd ) +static int open_file_on_fd(mbedtls_net_context *ctx, int wanted_fd) { - int got_fd = open( "/dev/null", O_RDONLY ); - TEST_ASSERT( got_fd >= 0 ); - if( got_fd != wanted_fd ) - { - TEST_ASSERT( dup2( got_fd, wanted_fd ) >= 0 ); - TEST_ASSERT( close( got_fd ) >= 0 ); + int got_fd = open("/dev/null", O_RDONLY); + TEST_ASSERT(got_fd >= 0); + if (got_fd != wanted_fd) { + TEST_ASSERT(dup2(got_fd, wanted_fd) >= 0); + TEST_ASSERT(close(got_fd) >= 0); } ctx->fd = wanted_fd; - return( 0 ); + return 0; exit: - return( -1 ); + return -1; } #endif /* MBEDTLS_PLATFORM_IS_UNIXLIKE */ @@ -54,16 +53,17 @@ exit: */ /* BEGIN_CASE */ -void context_init_free( int reinit ) +void context_init_free(int reinit) { mbedtls_net_context ctx; - mbedtls_net_init( &ctx ); - mbedtls_net_free( &ctx ); + mbedtls_net_init(&ctx); + mbedtls_net_free(&ctx); - if( reinit ) - mbedtls_net_init( &ctx ); - mbedtls_net_free( &ctx ); + if (reinit) { + mbedtls_net_init(&ctx); + } + mbedtls_net_free(&ctx); /* This test case always succeeds, functionally speaking. A plausible * bug might trigger an invalid pointer dereference or a memory leak. */ @@ -72,7 +72,7 @@ void context_init_free( int reinit ) /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PLATFORM_IS_UNIXLIKE */ -void poll_beyond_fd_setsize( ) +void poll_beyond_fd_setsize() { /* Test that mbedtls_net_poll does not misbehave when given a file * descriptor greater or equal to FD_SETSIZE. This code is specific to @@ -85,7 +85,7 @@ void poll_beyond_fd_setsize( ) mbedtls_net_context ctx; uint8_t buf[1]; - mbedtls_net_init( &ctx ); + mbedtls_net_init(&ctx); /* On many systems, by default, the maximum permitted file descriptor * number is less than FD_SETSIZE. If so, raise the limit if @@ -99,17 +99,16 @@ void poll_beyond_fd_setsize( ) * might do); but we don't do such things in our test code, so the unit * test will run if it can. */ - TEST_ASSERT( getrlimit( RLIMIT_NOFILE, &rlim_nofile ) == 0 ); - if( rlim_nofile.rlim_cur < FD_SETSIZE + 1 ) - { + TEST_ASSERT(getrlimit(RLIMIT_NOFILE, &rlim_nofile) == 0); + if (rlim_nofile.rlim_cur < FD_SETSIZE + 1) { rlim_t old_rlim_cur = rlim_nofile.rlim_cur; rlim_nofile.rlim_cur = FD_SETSIZE + 1; - TEST_ASSUME( setrlimit( RLIMIT_NOFILE, &rlim_nofile ) == 0 ); + TEST_ASSUME(setrlimit(RLIMIT_NOFILE, &rlim_nofile) == 0); rlim_nofile.rlim_cur = old_rlim_cur; restore_rlim_nofile = 1; } - TEST_ASSERT( open_file_on_fd( &ctx, FD_SETSIZE ) == 0 ); + TEST_ASSERT(open_file_on_fd(&ctx, FD_SETSIZE) == 0); /* In principle, mbedtls_net_poll() with valid arguments should succeed. * However, we know that on Unix-like platforms (and others), this function @@ -122,16 +121,17 @@ void poll_beyond_fd_setsize( ) * is problematic on the particular platform where the code is running, * a memory sanitizer such as UBSan should catch it. */ - ret = mbedtls_net_poll( &ctx, MBEDTLS_NET_POLL_READ, 0 ); - TEST_EQUAL( ret, MBEDTLS_ERR_NET_POLL_FAILED ); + ret = mbedtls_net_poll(&ctx, MBEDTLS_NET_POLL_READ, 0); + TEST_EQUAL(ret, MBEDTLS_ERR_NET_POLL_FAILED); /* mbedtls_net_recv_timeout() uses select() and fd_set in the same way. */ - ret = mbedtls_net_recv_timeout( &ctx, buf, sizeof( buf ), 0 ); - TEST_EQUAL( ret, MBEDTLS_ERR_NET_POLL_FAILED ); + ret = mbedtls_net_recv_timeout(&ctx, buf, sizeof(buf), 0); + TEST_EQUAL(ret, MBEDTLS_ERR_NET_POLL_FAILED); exit: - mbedtls_net_free( &ctx ); - if( restore_rlim_nofile ) - setrlimit( RLIMIT_NOFILE, &rlim_nofile ); + mbedtls_net_free(&ctx); + if (restore_rlim_nofile) { + setrlimit(RLIMIT_NOFILE, &rlim_nofile); + } } /* END_CASE */ diff --git a/tests/suites/test_suite_nist_kw.function b/tests/suites/test_suite_nist_kw.function index 6a810520f..f2b794441 100644 --- a/tests/suites/test_suite_nist_kw.function +++ b/tests/suites/test_suite_nist_kw.function @@ -8,14 +8,14 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST:MBEDTLS_AES_C */ -void mbedtls_nist_kw_self_test( ) +void mbedtls_nist_kw_self_test() { - TEST_ASSERT( mbedtls_nist_kw_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void mbedtls_nist_kw_mix_contexts( ) +void mbedtls_nist_kw_mix_contexts() { mbedtls_nist_kw_context ctx1, ctx2; unsigned char key[16]; @@ -24,129 +24,126 @@ void mbedtls_nist_kw_mix_contexts( ) unsigned char ciphertext2[40]; size_t output_len, i; - memset( plaintext, 0, sizeof( plaintext ) ); - memset( ciphertext1, 0, sizeof( ciphertext1 ) ); - memset( ciphertext2, 0, sizeof( ciphertext2 ) ); - memset( key, 0, sizeof( key ) ); + memset(plaintext, 0, sizeof(plaintext)); + memset(ciphertext1, 0, sizeof(ciphertext1)); + memset(ciphertext2, 0, sizeof(ciphertext2)); + memset(key, 0, sizeof(key)); /* * 1. Check wrap and unwrap with two separate contexts */ - mbedtls_nist_kw_init( &ctx1 ); - mbedtls_nist_kw_init( &ctx2 ); + mbedtls_nist_kw_init(&ctx1); + mbedtls_nist_kw_init(&ctx2); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx1, - MBEDTLS_CIPHER_ID_AES, - key, sizeof( key ) * 8, - 1 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx1, + MBEDTLS_CIPHER_ID_AES, + key, sizeof(key) * 8, + 1) == 0); - TEST_ASSERT( mbedtls_nist_kw_wrap( &ctx1, MBEDTLS_KW_MODE_KW, - plaintext, sizeof( plaintext ), - ciphertext1, &output_len, - sizeof( ciphertext1 ) ) == 0 ); - TEST_ASSERT( output_len == sizeof( ciphertext1 ) ); + TEST_ASSERT(mbedtls_nist_kw_wrap(&ctx1, MBEDTLS_KW_MODE_KW, + plaintext, sizeof(plaintext), + ciphertext1, &output_len, + sizeof(ciphertext1)) == 0); + TEST_ASSERT(output_len == sizeof(ciphertext1)); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx2, - MBEDTLS_CIPHER_ID_AES, - key, sizeof( key ) * 8, - 0 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx2, + MBEDTLS_CIPHER_ID_AES, + key, sizeof(key) * 8, + 0) == 0); - TEST_ASSERT( mbedtls_nist_kw_unwrap( &ctx2, MBEDTLS_KW_MODE_KW, - ciphertext1, output_len, - plaintext, &output_len, - sizeof( plaintext ) ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_unwrap(&ctx2, MBEDTLS_KW_MODE_KW, + ciphertext1, output_len, + plaintext, &output_len, + sizeof(plaintext)) == 0); - TEST_ASSERT( output_len == sizeof( plaintext ) ); - for( i = 0; i < sizeof( plaintext ); i++ ) - { - TEST_ASSERT( plaintext[i] == 0 ); + TEST_ASSERT(output_len == sizeof(plaintext)); + for (i = 0; i < sizeof(plaintext); i++) { + TEST_ASSERT(plaintext[i] == 0); } - mbedtls_nist_kw_free( &ctx1 ); - mbedtls_nist_kw_free( &ctx2 ); + mbedtls_nist_kw_free(&ctx1); + mbedtls_nist_kw_free(&ctx2); /* * 2. Check wrapping with two modes, on same context */ - mbedtls_nist_kw_init( &ctx1 ); - mbedtls_nist_kw_init( &ctx2 ); - output_len = sizeof( ciphertext1 ); + mbedtls_nist_kw_init(&ctx1); + mbedtls_nist_kw_init(&ctx2); + output_len = sizeof(ciphertext1); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx1, - MBEDTLS_CIPHER_ID_AES, - key, sizeof( key ) * 8, - 1 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx1, + MBEDTLS_CIPHER_ID_AES, + key, sizeof(key) * 8, + 1) == 0); - TEST_ASSERT( mbedtls_nist_kw_wrap( &ctx1, MBEDTLS_KW_MODE_KW, - plaintext, sizeof( plaintext ), - ciphertext1, &output_len, - sizeof( ciphertext1 ) ) == 0 ); - TEST_ASSERT( output_len == sizeof( ciphertext1 ) ); + TEST_ASSERT(mbedtls_nist_kw_wrap(&ctx1, MBEDTLS_KW_MODE_KW, + plaintext, sizeof(plaintext), + ciphertext1, &output_len, + sizeof(ciphertext1)) == 0); + TEST_ASSERT(output_len == sizeof(ciphertext1)); - TEST_ASSERT( mbedtls_nist_kw_wrap( &ctx1, MBEDTLS_KW_MODE_KWP, - plaintext, sizeof( plaintext ), - ciphertext2, &output_len, - sizeof( ciphertext2 ) ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_wrap(&ctx1, MBEDTLS_KW_MODE_KWP, + plaintext, sizeof(plaintext), + ciphertext2, &output_len, + sizeof(ciphertext2)) == 0); - TEST_ASSERT( output_len == sizeof( ciphertext2 ) ); + TEST_ASSERT(output_len == sizeof(ciphertext2)); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx2, - MBEDTLS_CIPHER_ID_AES, - key, sizeof( key ) * 8, - 0 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx2, + MBEDTLS_CIPHER_ID_AES, + key, sizeof(key) * 8, + 0) == 0); - TEST_ASSERT( mbedtls_nist_kw_unwrap( &ctx2, MBEDTLS_KW_MODE_KW, - ciphertext1, sizeof( ciphertext1 ), - plaintext, &output_len, - sizeof( plaintext ) ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_unwrap(&ctx2, MBEDTLS_KW_MODE_KW, + ciphertext1, sizeof(ciphertext1), + plaintext, &output_len, + sizeof(plaintext)) == 0); - TEST_ASSERT( output_len == sizeof( plaintext ) ); + TEST_ASSERT(output_len == sizeof(plaintext)); - for( i = 0; i < sizeof( plaintext ); i++ ) - { - TEST_ASSERT( plaintext[i] == 0 ); + for (i = 0; i < sizeof(plaintext); i++) { + TEST_ASSERT(plaintext[i] == 0); } - TEST_ASSERT( mbedtls_nist_kw_unwrap( &ctx2, MBEDTLS_KW_MODE_KWP, - ciphertext2, sizeof( ciphertext2 ), - plaintext, &output_len, - sizeof( plaintext ) ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_unwrap(&ctx2, MBEDTLS_KW_MODE_KWP, + ciphertext2, sizeof(ciphertext2), + plaintext, &output_len, + sizeof(plaintext)) == 0); - TEST_ASSERT( output_len == sizeof( plaintext ) ); + TEST_ASSERT(output_len == sizeof(plaintext)); - for( i = 0; i < sizeof( plaintext ); i++ ) - { - TEST_ASSERT( plaintext[i] == 0 ); + for (i = 0; i < sizeof(plaintext); i++) { + TEST_ASSERT(plaintext[i] == 0); } exit: - mbedtls_nist_kw_free( &ctx1 ); - mbedtls_nist_kw_free( &ctx2 ); + mbedtls_nist_kw_free(&ctx1); + mbedtls_nist_kw_free(&ctx2); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_nist_kw_setkey( int cipher_id, int key_size, - int is_wrap, int result ) +void mbedtls_nist_kw_setkey(int cipher_id, int key_size, + int is_wrap, int result) { mbedtls_nist_kw_context ctx; unsigned char key[32]; int ret; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - memset( key, 0x2A, sizeof( key ) ); - TEST_ASSERT( (unsigned) key_size <= 8 * sizeof( key ) ); + memset(key, 0x2A, sizeof(key)); + TEST_ASSERT((unsigned) key_size <= 8 * sizeof(key)); - ret = mbedtls_nist_kw_setkey( &ctx, cipher_id, key, key_size, is_wrap ); - TEST_ASSERT( ret == result ); + ret = mbedtls_nist_kw_setkey(&ctx, cipher_id, key, key_size, is_wrap); + TEST_ASSERT(ret == result); exit: - mbedtls_nist_kw_free( &ctx ); + mbedtls_nist_kw_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void nist_kw_plaintext_lengths( int in_len, int out_len, int mode, int res ) +void nist_kw_plaintext_lengths(int in_len, int out_len, int mode, int res) { mbedtls_nist_kw_context ctx; unsigned char key[16]; @@ -154,50 +151,46 @@ void nist_kw_plaintext_lengths( int in_len, int out_len, int mode, int res ) unsigned char *ciphertext = NULL; size_t output_len = out_len; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - memset( key, 0, sizeof( key ) ); + memset(key, 0, sizeof(key)); - if( in_len != 0 ) - { - plaintext = mbedtls_calloc( 1, in_len ); - TEST_ASSERT( plaintext != NULL ); + if (in_len != 0) { + plaintext = mbedtls_calloc(1, in_len); + TEST_ASSERT(plaintext != NULL); } - if( out_len != 0 ) - { - ciphertext = mbedtls_calloc( 1, output_len ); - TEST_ASSERT( ciphertext != NULL ); + if (out_len != 0) { + ciphertext = mbedtls_calloc(1, output_len); + TEST_ASSERT(ciphertext != NULL); } - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - key, 8 * sizeof( key ), 1 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + key, 8 * sizeof(key), 1) == 0); - TEST_ASSERT( mbedtls_nist_kw_wrap( &ctx, mode, plaintext, in_len, - ciphertext, &output_len, - output_len ) == res ); - if( res == 0 ) - { - if( mode == MBEDTLS_KW_MODE_KWP ) - TEST_ASSERT( output_len == (size_t) in_len + 8 - - ( in_len % 8 ) + 8 ); - else - TEST_ASSERT( output_len == (size_t) in_len + 8 ); - } - else - { - TEST_ASSERT( output_len == 0 ); + TEST_ASSERT(mbedtls_nist_kw_wrap(&ctx, mode, plaintext, in_len, + ciphertext, &output_len, + output_len) == res); + if (res == 0) { + if (mode == MBEDTLS_KW_MODE_KWP) { + TEST_ASSERT(output_len == (size_t) in_len + 8 - + (in_len % 8) + 8); + } else { + TEST_ASSERT(output_len == (size_t) in_len + 8); + } + } else { + TEST_ASSERT(output_len == 0); } exit: - mbedtls_free( ciphertext ); - mbedtls_free( plaintext ); - mbedtls_nist_kw_free( &ctx ); + mbedtls_free(ciphertext); + mbedtls_free(plaintext); + mbedtls_nist_kw_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_AES_C */ -void nist_kw_ciphertext_lengths( int in_len, int out_len, int mode, int res ) +void nist_kw_ciphertext_lengths(int in_len, int out_len, int mode, int res) { mbedtls_nist_kw_context ctx; unsigned char key[16]; @@ -206,111 +199,105 @@ void nist_kw_ciphertext_lengths( int in_len, int out_len, int mode, int res ) int unwrap_ret; size_t output_len = out_len; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - memset( key, 0, sizeof( key ) ); + memset(key, 0, sizeof(key)); - if( out_len != 0 ) - { - plaintext = mbedtls_calloc( 1, output_len ); - TEST_ASSERT( plaintext != NULL ); + if (out_len != 0) { + plaintext = mbedtls_calloc(1, output_len); + TEST_ASSERT(plaintext != NULL); } - if( in_len != 0 ) - { - ciphertext = mbedtls_calloc( 1, in_len ); - TEST_ASSERT( ciphertext != NULL ); + if (in_len != 0) { + ciphertext = mbedtls_calloc(1, in_len); + TEST_ASSERT(ciphertext != NULL); } - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx, MBEDTLS_CIPHER_ID_AES, - key, 8 * sizeof( key ), 0 ) == 0 ); - unwrap_ret = mbedtls_nist_kw_unwrap( &ctx, mode, ciphertext, in_len, - plaintext, &output_len, - output_len ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, + key, 8 * sizeof(key), 0) == 0); + unwrap_ret = mbedtls_nist_kw_unwrap(&ctx, mode, ciphertext, in_len, + plaintext, &output_len, + output_len); - if( res == 0 ) - TEST_ASSERT( unwrap_ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED ); - else - TEST_ASSERT( unwrap_ret == res ); + if (res == 0) { + TEST_ASSERT(unwrap_ret == MBEDTLS_ERR_CIPHER_AUTH_FAILED); + } else { + TEST_ASSERT(unwrap_ret == res); + } - TEST_ASSERT( output_len == 0 ); + TEST_ASSERT(output_len == 0); exit: - mbedtls_free( ciphertext ); - mbedtls_free( plaintext ); - mbedtls_nist_kw_free( &ctx ); + mbedtls_free(ciphertext); + mbedtls_free(plaintext); + mbedtls_nist_kw_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_nist_kw_wrap( int cipher_id, int mode, data_t *key, data_t *msg, - data_t *expected_result ) +void mbedtls_nist_kw_wrap(int cipher_id, int mode, data_t *key, data_t *msg, + data_t *expected_result) { unsigned char result[528]; mbedtls_nist_kw_context ctx; size_t result_len, i, padlen; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - memset( result, '+', sizeof( result ) ); + memset(result, '+', sizeof(result)); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx, cipher_id, - key->x, key->len * 8, 1 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx, cipher_id, + key->x, key->len * 8, 1) == 0); /* Test with input == output */ - TEST_ASSERT( mbedtls_nist_kw_wrap( &ctx, mode, msg->x, msg->len, - result, &result_len, sizeof( result ) ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_wrap(&ctx, mode, msg->x, msg->len, + result, &result_len, sizeof(result)) == 0); - TEST_ASSERT( result_len == expected_result->len ); + TEST_ASSERT(result_len == expected_result->len); - TEST_ASSERT( memcmp( expected_result->x, result, result_len ) == 0 ); + TEST_ASSERT(memcmp(expected_result->x, result, result_len) == 0); - padlen = ( msg->len % 8 != 0 ) ? 8 - (msg->len % 8 ) : 0; + padlen = (msg->len % 8 != 0) ? 8 - (msg->len % 8) : 0; /* Check that the function didn't write beyond the end of the buffer. */ - for( i = msg->len + 8 + padlen; i < sizeof( result ); i++ ) - { - TEST_ASSERT( result[i] == '+' ); + for (i = msg->len + 8 + padlen; i < sizeof(result); i++) { + TEST_ASSERT(result[i] == '+'); } exit: - mbedtls_nist_kw_free( &ctx ); + mbedtls_nist_kw_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_nist_kw_unwrap( int cipher_id, int mode, data_t *key, data_t *msg, - data_t *expected_result, int expected_ret ) +void mbedtls_nist_kw_unwrap(int cipher_id, int mode, data_t *key, data_t *msg, + data_t *expected_result, int expected_ret) { unsigned char result[528]; mbedtls_nist_kw_context ctx; size_t result_len, i; - mbedtls_nist_kw_init( &ctx ); + mbedtls_nist_kw_init(&ctx); - memset( result, '+', sizeof( result ) ); + memset(result, '+', sizeof(result)); - TEST_ASSERT( mbedtls_nist_kw_setkey( &ctx, cipher_id, - key->x, key->len * 8, 0 ) == 0 ); + TEST_ASSERT(mbedtls_nist_kw_setkey(&ctx, cipher_id, + key->x, key->len * 8, 0) == 0); /* Test with input == output */ - TEST_ASSERT( mbedtls_nist_kw_unwrap( &ctx, mode, msg->x, msg->len, - result, &result_len, sizeof( result ) ) == expected_ret ); - if( expected_ret == 0 ) - { - TEST_ASSERT( result_len == expected_result->len ); - TEST_ASSERT( memcmp( expected_result->x, result, result_len ) == 0 ); - } - else - { - TEST_ASSERT( result_len == 0 ); + TEST_ASSERT(mbedtls_nist_kw_unwrap(&ctx, mode, msg->x, msg->len, + result, &result_len, sizeof(result)) == expected_ret); + if (expected_ret == 0) { + TEST_ASSERT(result_len == expected_result->len); + TEST_ASSERT(memcmp(expected_result->x, result, result_len) == 0); + } else { + TEST_ASSERT(result_len == 0); } /* Check that the function didn't write beyond the end of the buffer. */ - for( i = msg->len - 8; i < sizeof( result ); i++ ) - { - TEST_ASSERT( result[i] == '+' ); + for (i = msg->len - 8; i < sizeof(result); i++) { + TEST_ASSERT(result[i] == '+'); } exit: - mbedtls_nist_kw_free( &ctx ); + mbedtls_nist_kw_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_oid.function b/tests/suites/test_suite_oid.function index b06f52410..687b2168a 100644 --- a/tests/suites/test_suite_oid.function +++ b/tests/suites/test_suite_oid.function @@ -12,7 +12,7 @@ */ /* BEGIN_CASE */ -void oid_get_certificate_policies( data_t *oid, char *result_str ) +void oid_get_certificate_policies(data_t *oid, char *result_str) { mbedtls_asn1_buf asn1_buf = { 0, 0, NULL }; int ret; @@ -22,21 +22,18 @@ void oid_get_certificate_policies( data_t *oid, char *result_str ) asn1_buf.p = oid->x; asn1_buf.len = oid->len; - ret = mbedtls_oid_get_certificate_policies( &asn1_buf, &desc ); - if( strlen( result_str ) == 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND ); - } - else - { - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( strcmp( ( char* )desc, result_str ) == 0 ); + ret = mbedtls_oid_get_certificate_policies(&asn1_buf, &desc); + if (strlen(result_str) == 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND); + } else { + TEST_ASSERT(ret == 0); + TEST_ASSERT(strcmp((char *) desc, result_str) == 0); } } /* END_CASE */ /* BEGIN_CASE */ -void oid_get_extended_key_usage( data_t *oid, char *result_str ) +void oid_get_extended_key_usage(data_t *oid, char *result_str) { mbedtls_asn1_buf asn1_buf = { 0, 0, NULL }; int ret; @@ -46,21 +43,18 @@ void oid_get_extended_key_usage( data_t *oid, char *result_str ) asn1_buf.p = oid->x; asn1_buf.len = oid->len; - ret = mbedtls_oid_get_extended_key_usage( &asn1_buf, &desc ); - if( strlen( result_str ) == 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND ); - } - else - { - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( strcmp( ( char * )desc, result_str ) == 0 ); + ret = mbedtls_oid_get_extended_key_usage(&asn1_buf, &desc); + if (strlen(result_str) == 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND); + } else { + TEST_ASSERT(ret == 0); + TEST_ASSERT(strcmp((char *) desc, result_str) == 0); } } /* END_CASE */ /* BEGIN_CASE */ -void oid_get_x509_extension( data_t *oid, int exp_type ) +void oid_get_x509_extension(data_t *oid, int exp_type) { mbedtls_asn1_buf ext_oid = { 0, 0, NULL }; int ret; @@ -70,21 +64,18 @@ void oid_get_x509_extension( data_t *oid, int exp_type ) ext_oid.p = oid->x; ext_oid.len = oid->len; - ret = mbedtls_oid_get_x509_ext_type( &ext_oid, &ext_type ); - if( exp_type == 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND ); - } - else - { - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( ext_type == exp_type ); + ret = mbedtls_oid_get_x509_ext_type(&ext_oid, &ext_type); + if (exp_type == 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND); + } else { + TEST_ASSERT(ret == 0); + TEST_ASSERT(ext_type == exp_type); } } /* END_CASE */ /* BEGIN_CASE */ -void oid_get_md_alg_id( data_t *oid, int exp_md_id ) +void oid_get_md_alg_id(data_t *oid, int exp_md_id) { mbedtls_asn1_buf md_oid = { 0, 0, NULL }; int ret; @@ -94,17 +85,14 @@ void oid_get_md_alg_id( data_t *oid, int exp_md_id ) md_oid.p = oid->x; md_oid.len = oid->len; - ret = mbedtls_oid_get_md_alg( &md_oid, &md_id ); + ret = mbedtls_oid_get_md_alg(&md_oid, &md_id); - if( exp_md_id < 0 ) - { - TEST_ASSERT( ret == MBEDTLS_ERR_OID_NOT_FOUND ); - TEST_ASSERT( md_id == 0); - } - else - { - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( (mbedtls_md_type_t)exp_md_id == md_id ); + if (exp_md_id < 0) { + TEST_ASSERT(ret == MBEDTLS_ERR_OID_NOT_FOUND); + TEST_ASSERT(md_id == 0); + } else { + TEST_ASSERT(ret == 0); + TEST_ASSERT((mbedtls_md_type_t) exp_md_id == md_id); } } /* END_CASE */ diff --git a/tests/suites/test_suite_pem.function b/tests/suites/test_suite_pem.function index 632824727..25b66f8b6 100644 --- a/tests/suites/test_suite_pem.function +++ b/tests/suites/test_suite_pem.function @@ -8,56 +8,57 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */ -void mbedtls_pem_write_buffer( char * start, char * end, data_t * buf, - char * result_str ) +void mbedtls_pem_write_buffer(char *start, char *end, data_t *buf, + char *result_str) { unsigned char *check_buf = NULL; int ret; size_t olen = 0, olen2 = 0; - ret = mbedtls_pem_write_buffer( start, end, buf->x, buf->len, NULL, 0, &olen ); - TEST_ASSERT( ret == MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + ret = mbedtls_pem_write_buffer(start, end, buf->x, buf->len, NULL, 0, &olen); + TEST_ASSERT(ret == MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL); - check_buf = (unsigned char *) mbedtls_calloc( 1, olen ); - TEST_ASSERT( check_buf != NULL ); + check_buf = (unsigned char *) mbedtls_calloc(1, olen); + TEST_ASSERT(check_buf != NULL); - ret = mbedtls_pem_write_buffer( start, end, buf->x, buf->len, check_buf, olen, &olen2 ); + ret = mbedtls_pem_write_buffer(start, end, buf->x, buf->len, check_buf, olen, &olen2); - TEST_ASSERT( olen2 <= olen ); - TEST_ASSERT( olen > strlen( (char*) result_str ) ); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( strncmp( (char *) check_buf, (char *) result_str, olen ) == 0 ); + TEST_ASSERT(olen2 <= olen); + TEST_ASSERT(olen > strlen((char *) result_str)); + TEST_ASSERT(ret == 0); + TEST_ASSERT(strncmp((char *) check_buf, (char *) result_str, olen) == 0); exit: - mbedtls_free( check_buf ); + mbedtls_free(check_buf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_PARSE_C */ -void mbedtls_pem_read_buffer( char *header, char *footer, char *data, - char *pwd, int res, data_t *out ) +void mbedtls_pem_read_buffer(char *header, char *footer, char *data, + char *pwd, int res, data_t *out) { mbedtls_pem_context ctx; int ret; size_t use_len = 0; - size_t pwd_len = strlen( pwd ); + size_t pwd_len = strlen(pwd); const unsigned char *buf; - mbedtls_pem_init( &ctx ); + mbedtls_pem_init(&ctx); - ret = mbedtls_pem_read_buffer( &ctx, header, footer, (unsigned char *)data, - (unsigned char *)pwd, pwd_len, &use_len ); - TEST_ASSERT( ret == res ); - if( ret != 0 ) + ret = mbedtls_pem_read_buffer(&ctx, header, footer, (unsigned char *) data, + (unsigned char *) pwd, pwd_len, &use_len); + TEST_ASSERT(ret == res); + if (ret != 0) { goto exit; + } use_len = 0; - buf = mbedtls_pem_get_buffer( &ctx, &use_len ); - TEST_EQUAL( use_len, out->len ); - TEST_ASSERT( memcmp( out->x, buf, out->len ) == 0 ); + buf = mbedtls_pem_get_buffer(&ctx, &use_len); + TEST_EQUAL(use_len, out->len); + TEST_ASSERT(memcmp(out->x, buf, out->len) == 0); exit: - mbedtls_pem_free( &ctx ); + mbedtls_pem_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index beb3e7c68..13b5162f0 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -32,59 +32,60 @@ * generation function. * \return -1 if the key type is not recognized. */ -static int pk_genkey( mbedtls_pk_context *pk, int parameter ) +static int pk_genkey(mbedtls_pk_context *pk, int parameter) { ((void) pk); (void) parameter; #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) - if( mbedtls_pk_get_type( pk ) == MBEDTLS_PK_RSA ) - return mbedtls_rsa_gen_key( mbedtls_pk_rsa( *pk ), - mbedtls_test_rnd_std_rand, NULL, - parameter, 3 ); -#endif -#if defined(MBEDTLS_ECP_C) - if( mbedtls_pk_get_type( pk ) == MBEDTLS_PK_ECKEY || - mbedtls_pk_get_type( pk ) == MBEDTLS_PK_ECKEY_DH || - mbedtls_pk_get_type( pk ) == MBEDTLS_PK_ECDSA ) - { - int ret; - if( ( ret = mbedtls_ecp_group_load( &mbedtls_pk_ec( *pk )->grp, - parameter ) ) != 0 ) - return( ret ); - - return mbedtls_ecp_gen_keypair( &mbedtls_pk_ec( *pk )->grp, - &mbedtls_pk_ec( *pk )->d, - &mbedtls_pk_ec( *pk )->Q, - mbedtls_test_rnd_std_rand, NULL ); + if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_RSA) { + return mbedtls_rsa_gen_key(mbedtls_pk_rsa(*pk), + mbedtls_test_rnd_std_rand, NULL, + parameter, 3); } #endif - return( -1 ); +#if defined(MBEDTLS_ECP_C) + if (mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECKEY || + mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECKEY_DH || + mbedtls_pk_get_type(pk) == MBEDTLS_PK_ECDSA) { + int ret; + if ((ret = mbedtls_ecp_group_load(&mbedtls_pk_ec(*pk)->grp, + parameter)) != 0) { + return ret; + } + + return mbedtls_ecp_gen_keypair(&mbedtls_pk_ec(*pk)->grp, + &mbedtls_pk_ec(*pk)->d, + &mbedtls_pk_ec(*pk)->Q, + mbedtls_test_rnd_std_rand, NULL); + } +#endif + return -1; } #if defined(MBEDTLS_RSA_C) -int mbedtls_rsa_decrypt_func( void *ctx, size_t *olen, - const unsigned char *input, unsigned char *output, - size_t output_max_len ) +int mbedtls_rsa_decrypt_func(void *ctx, size_t *olen, + const unsigned char *input, unsigned char *output, + size_t output_max_len) { - return( mbedtls_rsa_pkcs1_decrypt( (mbedtls_rsa_context *) ctx, - mbedtls_test_rnd_std_rand, NULL, - olen, input, output, output_max_len ) ); + return mbedtls_rsa_pkcs1_decrypt((mbedtls_rsa_context *) ctx, + mbedtls_test_rnd_std_rand, NULL, + olen, input, output, output_max_len); } -int mbedtls_rsa_sign_func( void *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_md_type_t md_alg, unsigned int hashlen, - const unsigned char *hash, unsigned char *sig ) +int mbedtls_rsa_sign_func(void *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, unsigned int hashlen, + const unsigned char *hash, unsigned char *sig) { ((void) f_rng); ((void) p_rng); - return( mbedtls_rsa_pkcs1_sign( (mbedtls_rsa_context *) ctx, - mbedtls_test_rnd_std_rand, NULL, - md_alg, hashlen, hash, sig ) ); + return mbedtls_rsa_pkcs1_sign((mbedtls_rsa_context *) ctx, + mbedtls_test_rnd_std_rand, NULL, + md_alg, hashlen, hash, sig); } -size_t mbedtls_rsa_key_len_func( void *ctx ) +size_t mbedtls_rsa_key_len_func(void *ctx) { - return( ((const mbedtls_rsa_context *) ctx)->len ); + return ((const mbedtls_rsa_context *) ctx)->len; } #endif /* MBEDTLS_RSA_C */ @@ -95,43 +96,43 @@ size_t mbedtls_rsa_key_len_func( void *ctx ) * or 0 if the key generation failed. * The key uses NIST P-256 and is usable for signing with SHA-256. */ -mbedtls_svc_key_id_t pk_psa_genkey_ecc( void ) +mbedtls_svc_key_id_t pk_psa_genkey_ecc(void) { mbedtls_svc_key_id_t key; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; const psa_key_type_t type = - PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ); + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1); const size_t bits = 256; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256) ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, PSA_ALG_ECDSA(PSA_ALG_SHA_256)); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + PSA_ASSERT(psa_generate_key(&attributes, &key)); exit: - return( key ); + return key; } /* * Generate an RSA key using PSA and return the key identifier of that key, * or 0 if the key generation failed. */ -mbedtls_svc_key_id_t pk_psa_genkey_rsa( void ) +mbedtls_svc_key_id_t pk_psa_genkey_rsa(void) { mbedtls_svc_key_id_t key; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; const psa_key_type_t type = PSA_KEY_TYPE_RSA_KEY_PAIR; const size_t bits = 1024; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, PSA_ALG_RSA_PKCS1V15_SIGN_RAW ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, PSA_ALG_RSA_PKCS1V15_SIGN_RAW); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + PSA_ASSERT(psa_generate_key(&attributes, &key)); exit: - return( key ); + return key; } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* END_HEADER */ @@ -142,7 +143,7 @@ exit: */ /* BEGIN_CASE depends_on:MBEDTLS_USE_PSA_CRYPTO */ -void pk_psa_utils( int key_is_rsa ) +void pk_psa_utils(int key_is_rsa) { mbedtls_pk_context pk, pk2; mbedtls_svc_key_id_t key; @@ -156,146 +157,140 @@ void pk_psa_utils( int key_is_rsa ) size_t len; mbedtls_pk_debug_item dbg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - mbedtls_pk_init( &pk ); - mbedtls_pk_init( &pk2 ); + mbedtls_pk_init(&pk); + mbedtls_pk_init(&pk2); - TEST_ASSERT( psa_crypto_init( ) == PSA_SUCCESS ); + TEST_ASSERT(psa_crypto_init() == PSA_SUCCESS); - TEST_ASSERT( mbedtls_pk_setup_opaque( &pk, MBEDTLS_SVC_KEY_ID_INIT ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_setup_opaque(&pk, MBEDTLS_SVC_KEY_ID_INIT) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); - mbedtls_pk_free( &pk ); - mbedtls_pk_init( &pk ); + mbedtls_pk_free(&pk); + mbedtls_pk_init(&pk); - if( key_is_rsa ) - { + if (key_is_rsa) { bitlen = 1024; /* hardcoded in genkey() */ key = pk_psa_genkey_rsa(); - } - else - { + } else { bitlen = 256; /* hardcoded in genkey() */ key = pk_psa_genkey_ecc(); } - if( mbedtls_svc_key_id_is_null( key ) ) + if (mbedtls_svc_key_id_is_null(key)) { goto exit; - - TEST_ASSERT( mbedtls_pk_setup_opaque( &pk, key ) == 0 ); - - TEST_ASSERT( mbedtls_pk_get_type( &pk ) == MBEDTLS_PK_OPAQUE ); - TEST_ASSERT( strcmp( mbedtls_pk_get_name( &pk), name ) == 0 ); - - TEST_ASSERT( mbedtls_pk_get_bitlen( &pk ) == bitlen ); - TEST_ASSERT( mbedtls_pk_get_len( &pk ) == bitlen / 8 ); - - if( key_is_rsa ) - { - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_ECKEY ) == 0 ); - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_ECDSA ) == 0 ); - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) == 1 ); } - else - { - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_ECKEY ) == 1 ); - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_ECDSA ) == 1 ); - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_RSA ) == 0 ); + + TEST_ASSERT(mbedtls_pk_setup_opaque(&pk, key) == 0); + + TEST_ASSERT(mbedtls_pk_get_type(&pk) == MBEDTLS_PK_OPAQUE); + TEST_ASSERT(strcmp(mbedtls_pk_get_name(&pk), name) == 0); + + TEST_ASSERT(mbedtls_pk_get_bitlen(&pk) == bitlen); + TEST_ASSERT(mbedtls_pk_get_len(&pk) == bitlen / 8); + + if (key_is_rsa) { + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECKEY) == 0); + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA) == 0); + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA) == 1); + } else { + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECKEY) == 1); + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA) == 1); + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_RSA) == 0); } /* unsupported operations: verify, decrypt, encrypt */ - TEST_ASSERT( mbedtls_pk_verify( &pk, md_alg, - b1, sizeof( b1), b2, sizeof( b2 ) ) - == MBEDTLS_ERR_PK_TYPE_MISMATCH ); - if( key_is_rsa == 0 ) - { - TEST_ASSERT( mbedtls_pk_decrypt( &pk, b1, sizeof( b1 ), - b2, &len, sizeof( b2 ), - NULL, NULL ) - == MBEDTLS_ERR_PK_TYPE_MISMATCH ); + TEST_ASSERT(mbedtls_pk_verify(&pk, md_alg, + b1, sizeof(b1), b2, sizeof(b2)) + == MBEDTLS_ERR_PK_TYPE_MISMATCH); + if (key_is_rsa == 0) { + TEST_ASSERT(mbedtls_pk_decrypt(&pk, b1, sizeof(b1), + b2, &len, sizeof(b2), + NULL, NULL) + == MBEDTLS_ERR_PK_TYPE_MISMATCH); } - TEST_ASSERT( mbedtls_pk_encrypt( &pk, b1, sizeof( b1 ), - b2, &len, sizeof( b2 ), - NULL, NULL ) - == MBEDTLS_ERR_PK_TYPE_MISMATCH ); + TEST_ASSERT(mbedtls_pk_encrypt(&pk, b1, sizeof(b1), + b2, &len, sizeof(b2), + NULL, NULL) + == MBEDTLS_ERR_PK_TYPE_MISMATCH); /* unsupported functions: check_pair, debug */ - if( key_is_rsa ) - TEST_ASSERT( mbedtls_pk_setup( &pk2, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - else - TEST_ASSERT( mbedtls_pk_setup( &pk2, - mbedtls_pk_info_from_type( MBEDTLS_PK_ECKEY ) ) == 0 ); - TEST_ASSERT( mbedtls_pk_check_pair( &pk, &pk2, - mbedtls_test_rnd_std_rand, NULL ) - == MBEDTLS_ERR_PK_TYPE_MISMATCH ); - TEST_ASSERT( mbedtls_pk_debug( &pk, &dbg ) - == MBEDTLS_ERR_PK_TYPE_MISMATCH ); + if (key_is_rsa) { + TEST_ASSERT(mbedtls_pk_setup(&pk2, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + } else { + TEST_ASSERT(mbedtls_pk_setup(&pk2, + mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY)) == 0); + } + TEST_ASSERT(mbedtls_pk_check_pair(&pk, &pk2, + mbedtls_test_rnd_std_rand, NULL) + == MBEDTLS_ERR_PK_TYPE_MISMATCH); + TEST_ASSERT(mbedtls_pk_debug(&pk, &dbg) + == MBEDTLS_ERR_PK_TYPE_MISMATCH); /* test that freeing the context does not destroy the key */ - mbedtls_pk_free( &pk ); - TEST_ASSERT( PSA_SUCCESS == psa_get_key_attributes( key, &attributes ) ); - TEST_ASSERT( PSA_SUCCESS == psa_destroy_key( key ) ); + mbedtls_pk_free(&pk); + TEST_ASSERT(PSA_SUCCESS == psa_get_key_attributes(key, &attributes)); + TEST_ASSERT(PSA_SUCCESS == psa_destroy_key(key)); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_pk_free( &pk ); /* redundant except upon error */ - mbedtls_pk_free( &pk2 ); - USE_PSA_DONE( ); + mbedtls_pk_free(&pk); /* redundant except upon error */ + mbedtls_pk_free(&pk2); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_USE_PSA_CRYPTO */ -void pk_can_do_ext( int opaque_key, int key_type, int key_usage, int key_alg, - int key_alg2, int parameter, int alg_check, int usage_check, - int result ) +void pk_can_do_ext(int opaque_key, int key_type, int key_usage, int key_alg, + int key_alg2, int parameter, int alg_check, int usage_check, + int result) { mbedtls_pk_context pk; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - if( opaque_key == 1 ) - { - psa_set_key_usage_flags( &attributes, key_usage ); - psa_set_key_algorithm( &attributes, key_alg ); - if( key_alg2 != 0 ) - psa_set_key_enrollment_algorithm( &attributes, key_alg2 ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, parameter ); + if (opaque_key == 1) { + psa_set_key_usage_flags(&attributes, key_usage); + psa_set_key_algorithm(&attributes, key_alg); + if (key_alg2 != 0) { + psa_set_key_enrollment_algorithm(&attributes, key_alg2); + } + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, parameter); - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); + PSA_ASSERT(psa_generate_key(&attributes, &key)); - if( mbedtls_svc_key_id_is_null( key ) ) + if (mbedtls_svc_key_id_is_null(key)) { goto exit; + } - TEST_EQUAL( mbedtls_pk_setup_opaque( &pk, key ), 0 ); + TEST_EQUAL(mbedtls_pk_setup_opaque(&pk, key), 0); - TEST_EQUAL( mbedtls_pk_get_type( &pk ), MBEDTLS_PK_OPAQUE ); - } - else - { - TEST_EQUAL( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( key_type ) ), 0 ); - TEST_EQUAL( pk_genkey( &pk, parameter ), 0 ); - TEST_EQUAL( mbedtls_pk_get_type( &pk ), key_type ); + TEST_EQUAL(mbedtls_pk_get_type(&pk), MBEDTLS_PK_OPAQUE); + } else { + TEST_EQUAL(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(key_type)), 0); + TEST_EQUAL(pk_genkey(&pk, parameter), 0); + TEST_EQUAL(mbedtls_pk_get_type(&pk), key_type); } - TEST_EQUAL( mbedtls_pk_can_do_ext( &pk, alg_check, usage_check ), result ); + TEST_EQUAL(mbedtls_pk_can_do_ext(&pk, alg_check, usage_check), result); exit: - psa_reset_key_attributes( &attributes ); - PSA_ASSERT( psa_destroy_key( key ) ); - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + psa_reset_key_attributes(&attributes); + PSA_ASSERT(psa_destroy_key(key)); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ @@ -305,228 +300,227 @@ void pk_invalid_param() mbedtls_pk_context ctx; mbedtls_pk_type_t pk_type = 0; unsigned char buf[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; - size_t buf_size = sizeof( buf ); + size_t buf_size = sizeof(buf); - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_verify_restartable( &ctx, MBEDTLS_MD_NONE, - NULL, buf_size, - buf, buf_size, - NULL ) ); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_verify_restartable( &ctx, MBEDTLS_MD_SHA256, - NULL, 0, - buf, buf_size, - NULL ) ); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_verify_ext( pk_type, NULL, - &ctx, MBEDTLS_MD_NONE, - NULL, buf_size, - buf, buf_size ) ); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_verify_ext( pk_type, NULL, - &ctx, MBEDTLS_MD_SHA256, - NULL, 0, - buf, buf_size ) ); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_sign_restartable( &ctx, MBEDTLS_MD_NONE, + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_restartable(&ctx, MBEDTLS_MD_NONE, NULL, buf_size, - buf, buf_size, &buf_size, - NULL, NULL, - NULL ) ); - TEST_EQUAL( MBEDTLS_ERR_PK_BAD_INPUT_DATA, - mbedtls_pk_sign_restartable( &ctx, MBEDTLS_MD_SHA256, + buf, buf_size, + NULL)); + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_restartable(&ctx, MBEDTLS_MD_SHA256, NULL, 0, - buf, buf_size, &buf_size, - NULL, NULL, - NULL ) ); + buf, buf_size, + NULL)); + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_ext(pk_type, NULL, + &ctx, MBEDTLS_MD_NONE, + NULL, buf_size, + buf, buf_size)); + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_verify_ext(pk_type, NULL, + &ctx, MBEDTLS_MD_SHA256, + NULL, 0, + buf, buf_size)); + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_sign_restartable(&ctx, MBEDTLS_MD_NONE, + NULL, buf_size, + buf, buf_size, &buf_size, + NULL, NULL, + NULL)); + TEST_EQUAL(MBEDTLS_ERR_PK_BAD_INPUT_DATA, + mbedtls_pk_sign_restartable(&ctx, MBEDTLS_MD_SHA256, + NULL, 0, + buf, buf_size, &buf_size, + NULL, NULL, + NULL)); exit: - mbedtls_pk_free( &ctx ); + mbedtls_pk_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void valid_parameters( ) +void valid_parameters() { mbedtls_pk_context pk; unsigned char buf[1]; size_t len; void *options = NULL; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_setup( &pk, NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_setup(&pk, NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); /* In informational functions, we accept NULL where a context pointer * is expected because that's what the library has done forever. * We do not document that NULL is accepted, so we may wish to change * the behavior in a future version. */ - TEST_ASSERT( mbedtls_pk_get_bitlen( NULL ) == 0 ); - TEST_ASSERT( mbedtls_pk_get_len( NULL ) == 0 ); - TEST_ASSERT( mbedtls_pk_can_do( NULL, MBEDTLS_PK_NONE ) == 0 ); + TEST_ASSERT(mbedtls_pk_get_bitlen(NULL) == 0); + TEST_ASSERT(mbedtls_pk_get_len(NULL) == 0); + TEST_ASSERT(mbedtls_pk_can_do(NULL, MBEDTLS_PK_NONE) == 0); - TEST_ASSERT( mbedtls_pk_sign_restartable( &pk, + TEST_ASSERT(mbedtls_pk_sign_restartable(&pk, + MBEDTLS_MD_NONE, + NULL, 0, + buf, sizeof(buf), &len, + mbedtls_test_rnd_std_rand, NULL, + NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); + + TEST_ASSERT(mbedtls_pk_sign_restartable(&pk, + MBEDTLS_MD_NONE, + NULL, 0, + buf, sizeof(buf), &len, + mbedtls_test_rnd_std_rand, NULL, + NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); + + TEST_ASSERT(mbedtls_pk_sign(&pk, + MBEDTLS_MD_NONE, + NULL, 0, + buf, sizeof(buf), &len, + mbedtls_test_rnd_std_rand, NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); + + TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_NONE, NULL, 0, - buf, sizeof( buf ), &len, - mbedtls_test_rnd_std_rand, NULL, - NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + buf, sizeof(buf), + NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_pk_sign_restartable( &pk, - MBEDTLS_MD_NONE, - NULL, 0, - buf, sizeof( buf ), &len, - mbedtls_test_rnd_std_rand, NULL, - NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - - TEST_ASSERT( mbedtls_pk_sign( &pk, + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_NONE, NULL, 0, - buf, sizeof( buf ), &len, - mbedtls_test_rnd_std_rand, NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + buf, sizeof(buf)) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, - MBEDTLS_MD_NONE, - NULL, 0, - buf, sizeof( buf ), - NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_verify_ext(MBEDTLS_PK_NONE, options, + &pk, + MBEDTLS_MD_NONE, + NULL, 0, + buf, sizeof(buf)) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_pk_verify( &pk, - MBEDTLS_MD_NONE, - NULL, 0, - buf, sizeof( buf ) ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_encrypt(&pk, + NULL, 0, + NULL, &len, 0, + mbedtls_test_rnd_std_rand, NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_pk_verify_ext( MBEDTLS_PK_NONE, options, - &pk, - MBEDTLS_MD_NONE, - NULL, 0, - buf, sizeof( buf ) ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - - TEST_ASSERT( mbedtls_pk_encrypt( &pk, - NULL, 0, - NULL, &len, 0, - mbedtls_test_rnd_std_rand, NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); - - TEST_ASSERT( mbedtls_pk_decrypt( &pk, - NULL, 0, - NULL, &len, 0, - mbedtls_test_rnd_std_rand, NULL ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_decrypt(&pk, + NULL, 0, + NULL, &len, 0, + mbedtls_test_rnd_std_rand, NULL) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); #if defined(MBEDTLS_PK_PARSE_C) - TEST_ASSERT( mbedtls_pk_parse_key( &pk, NULL, 0, NULL, 1, - mbedtls_test_rnd_std_rand, NULL ) == - MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + TEST_ASSERT(mbedtls_pk_parse_key(&pk, NULL, 0, NULL, 1, + mbedtls_test_rnd_std_rand, NULL) == + MBEDTLS_ERR_PK_KEY_INVALID_FORMAT); - TEST_ASSERT( mbedtls_pk_parse_public_key( &pk, NULL, 0 ) == - MBEDTLS_ERR_PK_KEY_INVALID_FORMAT ); + TEST_ASSERT(mbedtls_pk_parse_public_key(&pk, NULL, 0) == + MBEDTLS_ERR_PK_KEY_INVALID_FORMAT); #endif /* MBEDTLS_PK_PARSE_C */ } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PK_WRITE_C */ -void valid_parameters_pkwrite( data_t *key_data ) +void valid_parameters_pkwrite(data_t *key_data) { mbedtls_pk_context pk; /* For the write tests to be effective, we need a valid key pair. */ - mbedtls_pk_init( &pk ); - TEST_ASSERT( mbedtls_pk_parse_key( &pk, - key_data->x, key_data->len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); + mbedtls_pk_init(&pk); + TEST_ASSERT(mbedtls_pk_parse_key(&pk, + key_data->x, key_data->len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL) == 0); - TEST_ASSERT( mbedtls_pk_write_key_der( &pk, NULL, 0 ) == - MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + TEST_ASSERT(mbedtls_pk_write_key_der(&pk, NULL, 0) == + MBEDTLS_ERR_ASN1_BUF_TOO_SMALL); - TEST_ASSERT( mbedtls_pk_write_pubkey_der( &pk, NULL, 0 ) == - MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + TEST_ASSERT(mbedtls_pk_write_pubkey_der(&pk, NULL, 0) == + MBEDTLS_ERR_ASN1_BUF_TOO_SMALL); #if defined(MBEDTLS_PEM_WRITE_C) - TEST_ASSERT( mbedtls_pk_write_key_pem( &pk, NULL, 0 ) == - MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + TEST_ASSERT(mbedtls_pk_write_key_pem(&pk, NULL, 0) == + MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL); - TEST_ASSERT( mbedtls_pk_write_pubkey_pem( &pk, NULL, 0 ) == - MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); + TEST_ASSERT(mbedtls_pk_write_pubkey_pem(&pk, NULL, 0) == + MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL); #endif /* MBEDTLS_PEM_WRITE_C */ exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); } /* END_CASE */ /* BEGIN_CASE */ -void pk_utils( int type, int parameter, int bitlen, int len, char * name ) +void pk_utils(int type, int parameter, int bitlen, int len, char *name) { mbedtls_pk_context pk; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( type ) ) == 0 ); - TEST_ASSERT( pk_genkey( &pk, parameter ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0); + TEST_ASSERT(pk_genkey(&pk, parameter) == 0); - TEST_ASSERT( (int) mbedtls_pk_get_type( &pk ) == type ); - TEST_ASSERT( mbedtls_pk_can_do( &pk, type ) ); - TEST_ASSERT( mbedtls_pk_get_bitlen( &pk ) == (unsigned) bitlen ); - TEST_ASSERT( mbedtls_pk_get_len( &pk ) == (unsigned) len ); - TEST_ASSERT( strcmp( mbedtls_pk_get_name( &pk), name ) == 0 ); + TEST_ASSERT((int) mbedtls_pk_get_type(&pk) == type); + TEST_ASSERT(mbedtls_pk_can_do(&pk, type)); + TEST_ASSERT(mbedtls_pk_get_bitlen(&pk) == (unsigned) bitlen); + TEST_ASSERT(mbedtls_pk_get_len(&pk) == (unsigned) len); + TEST_ASSERT(strcmp(mbedtls_pk_get_name(&pk), name) == 0); exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PK_PARSE_C:MBEDTLS_FS_IO */ -void mbedtls_pk_check_pair( char * pub_file, char * prv_file, int ret ) +void mbedtls_pk_check_pair(char *pub_file, char *prv_file, int ret) { mbedtls_pk_context pub, prv, alt; USE_PSA_INIT(); - mbedtls_pk_init( &pub ); - mbedtls_pk_init( &prv ); - mbedtls_pk_init( &alt ); + mbedtls_pk_init(&pub); + mbedtls_pk_init(&prv); + mbedtls_pk_init(&alt); - TEST_ASSERT( mbedtls_pk_parse_public_keyfile( &pub, pub_file ) == 0 ); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &prv, prv_file, NULL, - mbedtls_test_rnd_std_rand, NULL ) - == 0 ); + TEST_ASSERT(mbedtls_pk_parse_public_keyfile(&pub, pub_file) == 0); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&prv, prv_file, NULL, + mbedtls_test_rnd_std_rand, NULL) + == 0); - TEST_ASSERT( mbedtls_pk_check_pair( &pub, &prv, - mbedtls_test_rnd_std_rand, NULL ) - == ret ); + TEST_ASSERT(mbedtls_pk_check_pair(&pub, &prv, + mbedtls_test_rnd_std_rand, NULL) + == ret); #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_RSA_ALT_SUPPORT) - if( mbedtls_pk_get_type( &prv ) == MBEDTLS_PK_RSA ) - { - TEST_ASSERT( mbedtls_pk_setup_rsa_alt( &alt, mbedtls_pk_rsa( prv ), - mbedtls_rsa_decrypt_func, mbedtls_rsa_sign_func, - mbedtls_rsa_key_len_func ) == 0 ); - TEST_ASSERT( mbedtls_pk_check_pair( &pub, &alt, - mbedtls_test_rnd_std_rand, NULL ) - == ret ); + if (mbedtls_pk_get_type(&prv) == MBEDTLS_PK_RSA) { + TEST_ASSERT(mbedtls_pk_setup_rsa_alt(&alt, mbedtls_pk_rsa(prv), + mbedtls_rsa_decrypt_func, mbedtls_rsa_sign_func, + mbedtls_rsa_key_len_func) == 0); + TEST_ASSERT(mbedtls_pk_check_pair(&pub, &alt, + mbedtls_test_rnd_std_rand, NULL) + == ret); } #endif - mbedtls_pk_free( &pub ); - mbedtls_pk_free( &prv ); - mbedtls_pk_free( &alt ); + mbedtls_pk_free(&pub); + mbedtls_pk_free(&prv); + mbedtls_pk_free(&alt); USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C */ -void pk_rsa_verify_test_vec( data_t * message_str, int digest, int mod, - char * input_N, char * input_E, - data_t * result_str, int result ) +void pk_rsa_verify_test_vec(data_t *message_str, int digest, int mod, + char *input_N, char *input_E, + data_t *result_str, int result) { mbedtls_rsa_context *rsa; mbedtls_pk_context pk; @@ -535,45 +529,46 @@ void pk_rsa_verify_test_vec( data_t * message_str, int digest, int mod, mbedtls_pk_restart_ctx ctx; rs_ctx = &ctx; - mbedtls_pk_restart_init( rs_ctx ); + mbedtls_pk_restart_init(rs_ctx); // this setting would ensure restart would happen if ECC was used - mbedtls_ecp_set_max_ops( 1 ); + mbedtls_ecp_set_max_ops(1); #endif USE_PSA_INIT(); - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - rsa = mbedtls_pk_rsa( pk ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + rsa = mbedtls_pk_rsa(pk); rsa->len = mod / 8; - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->E, input_E) == 0); - TEST_ASSERT( mbedtls_pk_verify( &pk, digest, message_str->x, 0, - result_str->x, mbedtls_pk_get_len( &pk ) ) == result ); + TEST_ASSERT(mbedtls_pk_verify(&pk, digest, message_str->x, 0, + result_str->x, mbedtls_pk_get_len(&pk)) == result); - TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, digest, message_str->x, 0, - result_str->x, mbedtls_pk_get_len( &pk ), rs_ctx ) == result ); + TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, digest, message_str->x, 0, + result_str->x, mbedtls_pk_get_len( + &pk), rs_ctx) == result); exit: #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - mbedtls_pk_restart_free( rs_ctx ); + mbedtls_pk_restart_free(rs_ctx); #endif - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C */ -void pk_rsa_verify_ext_test_vec( data_t * message_str, int digest, - int mod, char * input_N, - char * input_E, data_t * result_str, - int pk_type, int mgf1_hash_id, - int salt_len, int sig_len, - int result ) +void pk_rsa_verify_ext_test_vec(data_t *message_str, int digest, + int mod, char *input_N, + char *input_E, data_t *result_str, + int pk_type, int mgf1_hash_id, + int salt_len, int sig_len, + int result) { mbedtls_rsa_context *rsa; mbedtls_pk_context pk; @@ -581,36 +576,32 @@ void pk_rsa_verify_ext_test_vec( data_t * message_str, int digest, void *options; int ret; - USE_PSA_INIT( ); - mbedtls_pk_init( &pk ); + USE_PSA_INIT(); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - rsa = mbedtls_pk_rsa( pk ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + rsa = mbedtls_pk_rsa(pk); rsa->len = mod / 8; - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->E, input_E) == 0); - if( mgf1_hash_id < 0 ) - { + if (mgf1_hash_id < 0) { options = NULL; - } - else - { + } else { options = &pss_opts; pss_opts.mgf1_hash_id = mgf1_hash_id; pss_opts.expected_salt_len = salt_len; } - ret = mbedtls_pk_verify_ext( pk_type, options, &pk, - digest, message_str->x, message_str->len, - result_str->x, sig_len ); + ret = mbedtls_pk_verify_ext(pk_type, options, &pk, + digest, message_str->x, message_str->len, + result_str->x, sig_len); #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( result == MBEDTLS_ERR_RSA_INVALID_PADDING ) - { + if (result == MBEDTLS_ERR_RSA_INVALID_PADDING) { /* Mbed TLS distinguishes "invalid padding" from "valid padding but * the rest of the signature is invalid". This has little use in * practice and PSA doesn't report this distinction. @@ -620,54 +611,53 @@ void pk_rsa_verify_ext_test_vec( data_t * message_str, int digest, * PSA or the Mbed TLS API, depending on the PSS options used. * So, it may return either INVALID_PADDING or INVALID_SIGNATURE. */ - TEST_ASSERT( ret == result || ret == MBEDTLS_ERR_RSA_VERIFY_FAILED ); - } - else + TEST_ASSERT(ret == result || ret == MBEDTLS_ERR_RSA_VERIFY_FAILED); + } else #endif { - TEST_EQUAL( ret, result ); + TEST_EQUAL(ret, result); } exit: - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECDSA_C */ -void pk_ec_test_vec( int type, int id, data_t * key, data_t * hash, - data_t * sig, int ret ) +void pk_ec_test_vec(int type, int id, data_t *key, data_t *hash, + data_t *sig, int ret) { mbedtls_pk_context pk; mbedtls_ecp_keypair *eckey; - mbedtls_pk_init( &pk ); - USE_PSA_INIT( ); + mbedtls_pk_init(&pk); + USE_PSA_INIT(); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( type ) ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0); - TEST_ASSERT( mbedtls_pk_can_do( &pk, MBEDTLS_PK_ECDSA ) ); - eckey = mbedtls_pk_ec( pk ); + TEST_ASSERT(mbedtls_pk_can_do(&pk, MBEDTLS_PK_ECDSA)); + eckey = mbedtls_pk_ec(pk); - TEST_ASSERT( mbedtls_ecp_group_load( &eckey->grp, id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_binary( &eckey->grp, &eckey->Q, - key->x, key->len ) == 0 ); + TEST_ASSERT(mbedtls_ecp_group_load(&eckey->grp, id) == 0); + TEST_ASSERT(mbedtls_ecp_point_read_binary(&eckey->grp, &eckey->Q, + key->x, key->len) == 0); // MBEDTLS_MD_NONE is used since it will be ignored. - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_NONE, - hash->x, hash->len, sig->x, sig->len ) == ret ); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_NONE, + hash->x, hash->len, sig->x, sig->len) == ret); exit: - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC */ -void pk_sign_verify_restart( int pk_type, int grp_id, char *d_str, - char *QX_str, char *QY_str, - int md_alg, data_t *hash, data_t *sig_check, - int max_ops, int min_restart, int max_restart ) +void pk_sign_verify_restart(int pk_type, int grp_id, char *d_str, + char *QX_str, char *QY_str, + int md_alg, data_t *hash, data_t *sig_check, + int max_ops, int min_restart, int max_restart) { int ret, cnt_restart; mbedtls_pk_restart_ctx rs_ctx; @@ -677,174 +667,173 @@ void pk_sign_verify_restart( int pk_type, int grp_id, char *d_str, USE_PSA_INIT(); - mbedtls_pk_restart_init( &rs_ctx ); - mbedtls_pk_init( &prv ); - mbedtls_pk_init( &pub ); - memset( sig, 0, sizeof( sig ) ); + mbedtls_pk_restart_init(&rs_ctx); + mbedtls_pk_init(&prv); + mbedtls_pk_init(&pub); + memset(sig, 0, sizeof(sig)); - TEST_ASSERT( mbedtls_pk_setup( &prv, mbedtls_pk_info_from_type( pk_type ) ) == 0 ); - TEST_ASSERT( mbedtls_ecp_group_load( &mbedtls_pk_ec( prv )->grp, grp_id ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &mbedtls_pk_ec( prv )->d, d_str ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&prv, mbedtls_pk_info_from_type(pk_type)) == 0); + TEST_ASSERT(mbedtls_ecp_group_load(&mbedtls_pk_ec(prv)->grp, grp_id) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&mbedtls_pk_ec(prv)->d, d_str) == 0); - TEST_ASSERT( mbedtls_pk_setup( &pub, mbedtls_pk_info_from_type( pk_type ) ) == 0 ); - TEST_ASSERT( mbedtls_ecp_group_load( &mbedtls_pk_ec( pub )->grp, grp_id ) == 0 ); - TEST_ASSERT( mbedtls_ecp_point_read_string( &mbedtls_pk_ec( pub )->Q, 16, QX_str, QY_str ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pub, mbedtls_pk_info_from_type(pk_type)) == 0); + TEST_ASSERT(mbedtls_ecp_group_load(&mbedtls_pk_ec(pub)->grp, grp_id) == 0); + TEST_ASSERT(mbedtls_ecp_point_read_string(&mbedtls_pk_ec(pub)->Q, 16, QX_str, QY_str) == 0); - mbedtls_ecp_set_max_ops( max_ops ); + mbedtls_ecp_set_max_ops(max_ops); - slen = sizeof( sig ); + slen = sizeof(sig); cnt_restart = 0; do { - ret = mbedtls_pk_sign_restartable( &prv, md_alg, hash->x, hash->len, - sig, sizeof( sig ), &slen, - mbedtls_test_rnd_std_rand, NULL, - &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_pk_sign_restartable(&prv, md_alg, hash->x, hash->len, + sig, sizeof(sig), &slen, + mbedtls_test_rnd_std_rand, NULL, + &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( slen == sig_check->len ); - TEST_ASSERT( memcmp( sig, sig_check->x, slen ) == 0 ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(slen == sig_check->len); + TEST_ASSERT(memcmp(sig, sig_check->x, slen) == 0); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); cnt_restart = 0; do { - ret = mbedtls_pk_verify_restartable( &pub, md_alg, - hash->x, hash->len, sig, slen, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_pk_verify_restartable(&pub, md_alg, + hash->x, hash->len, sig, slen, &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(ret == 0); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); sig[0]++; do { - ret = mbedtls_pk_verify_restartable( &pub, md_alg, - hash->x, hash->len, sig, slen, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); - TEST_ASSERT( ret != 0 ); + ret = mbedtls_pk_verify_restartable(&pub, md_alg, + hash->x, hash->len, sig, slen, &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS); + TEST_ASSERT(ret != 0); sig[0]--; /* Do we leak memory when aborting? try verify then sign * This test only makes sense when we actually restart */ - if( min_restart > 0 ) - { - ret = mbedtls_pk_verify_restartable( &pub, md_alg, - hash->x, hash->len, sig, slen, &rs_ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); - mbedtls_pk_restart_free( &rs_ctx ); + if (min_restart > 0) { + ret = mbedtls_pk_verify_restartable(&pub, md_alg, + hash->x, hash->len, sig, slen, &rs_ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); + mbedtls_pk_restart_free(&rs_ctx); - slen = sizeof( sig ); - ret = mbedtls_pk_sign_restartable( &prv, md_alg, hash->x, hash->len, - sig, sizeof sig, &slen, - mbedtls_test_rnd_std_rand, NULL, - &rs_ctx ); - TEST_ASSERT( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + slen = sizeof(sig); + ret = mbedtls_pk_sign_restartable(&prv, md_alg, hash->x, hash->len, + sig, sizeof sig, &slen, + mbedtls_test_rnd_std_rand, NULL, + &rs_ctx); + TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); } exit: - mbedtls_pk_restart_free( &rs_ctx ); - mbedtls_pk_free( &prv ); - mbedtls_pk_free( &pub ); + mbedtls_pk_restart_free(&rs_ctx); + mbedtls_pk_free(&prv); + mbedtls_pk_free(&pub); USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void pk_sign_verify( int type, int parameter, int sign_ret, int verify_ret ) +void pk_sign_verify(int type, int parameter, int sign_ret, int verify_ret) { mbedtls_pk_context pk; size_t sig_len; unsigned char hash[32]; // Hard-coded for SHA256 - size_t hash_len = sizeof( hash ); + size_t hash_len = sizeof(hash); unsigned char sig[MBEDTLS_PK_SIGNATURE_MAX_SIZE]; void *rs_ctx = NULL; #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) mbedtls_pk_restart_ctx ctx; rs_ctx = &ctx; - mbedtls_pk_restart_init( rs_ctx ); + mbedtls_pk_restart_init(rs_ctx); /* This value is large enough that the operation will complete in one run. * See comments at the top of ecp_test_vect_restart in * test_suite_ecp.function for estimates of operation counts. */ - mbedtls_ecp_set_max_ops( 42000 ); + mbedtls_ecp_set_max_ops(42000); #endif - mbedtls_pk_init( &pk ); - USE_PSA_INIT( ); + mbedtls_pk_init(&pk); + USE_PSA_INIT(); - memset( hash, 0x2a, sizeof hash ); - memset( sig, 0, sizeof sig ); + memset(hash, 0x2a, sizeof hash); + memset(sig, 0, sizeof sig); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( type ) ) == 0 ); - TEST_ASSERT( pk_genkey( &pk, parameter ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0); + TEST_ASSERT(pk_genkey(&pk, parameter) == 0); - TEST_ASSERT( mbedtls_pk_sign_restartable( &pk, MBEDTLS_MD_SHA256, - hash, hash_len, - sig, sizeof sig, &sig_len, - mbedtls_test_rnd_std_rand, NULL, - rs_ctx ) == sign_ret ); - if( sign_ret == 0 ) - TEST_ASSERT( sig_len <= MBEDTLS_PK_SIGNATURE_MAX_SIZE ); - else + TEST_ASSERT(mbedtls_pk_sign_restartable(&pk, MBEDTLS_MD_SHA256, + hash, hash_len, + sig, sizeof sig, &sig_len, + mbedtls_test_rnd_std_rand, NULL, + rs_ctx) == sign_ret); + if (sign_ret == 0) { + TEST_ASSERT(sig_len <= MBEDTLS_PK_SIGNATURE_MAX_SIZE); + } else { sig_len = MBEDTLS_PK_SIGNATURE_MAX_SIZE; + } - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, - hash, hash_len, sig, sig_len ) == verify_ret ); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, + hash, hash_len, sig, sig_len) == verify_ret); - if( verify_ret == 0 ) - { + if (verify_ret == 0) { hash[0]++; - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, - hash, hash_len, sig, sig_len ) != 0 ); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, + hash, hash_len, sig, sig_len) != 0); hash[0]--; sig[0]++; - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, - hash, hash_len, sig, sig_len ) != 0 ); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, + hash, hash_len, sig, sig_len) != 0); sig[0]--; } - TEST_ASSERT( mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, hash, hash_len, - sig, sizeof sig, &sig_len, - mbedtls_test_rnd_std_rand, - NULL ) == sign_ret ); - if( sign_ret == 0 ) - TEST_ASSERT( sig_len <= MBEDTLS_PK_SIGNATURE_MAX_SIZE ); - else + TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, hash_len, + sig, sizeof sig, &sig_len, + mbedtls_test_rnd_std_rand, + NULL) == sign_ret); + if (sign_ret == 0) { + TEST_ASSERT(sig_len <= MBEDTLS_PK_SIGNATURE_MAX_SIZE); + } else { sig_len = MBEDTLS_PK_SIGNATURE_MAX_SIZE; + } - TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, MBEDTLS_MD_SHA256, - hash, hash_len, sig, sig_len, rs_ctx ) == verify_ret ); + TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256, + hash, hash_len, sig, sig_len, rs_ctx) == verify_ret); - if( verify_ret == 0 ) - { + if (verify_ret == 0) { hash[0]++; - TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len, rs_ctx ) != 0 ); + TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256, + hash, sizeof hash, sig, sig_len, rs_ctx) != 0); hash[0]--; sig[0]++; - TEST_ASSERT( mbedtls_pk_verify_restartable( &pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len, rs_ctx ) != 0 ); + TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256, + hash, sizeof hash, sig, sig_len, rs_ctx) != 0); sig[0]--; } exit: #if defined(MBEDTLS_ECDSA_C) && defined(MBEDTLS_ECP_RESTARTABLE) - mbedtls_pk_restart_free( rs_ctx ); + mbedtls_pk_restart_free(rs_ctx); #endif - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C */ -void pk_rsa_encrypt_decrypt_test( data_t * message, int mod, - char * input_P, char * input_Q, - char * input_N, char * input_E, - int ret ) +void pk_rsa_encrypt_decrypt_test(data_t *message, int mod, + char *input_P, char *input_Q, + char *input_N, char *input_E, + int ret) { unsigned char output[300], result[300]; mbedtls_test_rnd_pseudo_info rnd_info; @@ -853,75 +842,74 @@ void pk_rsa_encrypt_decrypt_test( data_t * message, int mod, mbedtls_pk_context pk; size_t olen, rlen; - mbedtls_pk_init( &pk ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_pk_init(&pk); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( output, 0, sizeof( output ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(output, 0, sizeof(output)); - USE_PSA_INIT( ); + USE_PSA_INIT(); /* encryption test */ /* init pk-rsa context */ - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - rsa = mbedtls_pk_rsa( pk ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + rsa = mbedtls_pk_rsa(pk); /* load public key */ rsa->len = mod / 8; - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &rsa->E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&rsa->E, input_E) == 0); - TEST_ASSERT( mbedtls_pk_encrypt( &pk, message->x, message->len, - output, &olen, sizeof( output ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); + TEST_ASSERT(mbedtls_pk_encrypt(&pk, message->x, message->len, + output, &olen, sizeof(output), + mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); /* decryption test */ - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); /* init pk-rsa context */ - mbedtls_pk_free( &pk ); - TEST_ASSERT( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - rsa = mbedtls_pk_rsa( pk ); + mbedtls_pk_free(&pk); + TEST_ASSERT(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + rsa = mbedtls_pk_rsa(pk); /* load public key */ - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); /* load private key */ - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( rsa, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( rsa ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( rsa ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_rsa_import(rsa, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(rsa) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(rsa) == 0); - memset( result, 0, sizeof( result ) ); + memset(result, 0, sizeof(result)); rlen = 0; - TEST_ASSERT( mbedtls_pk_decrypt( &pk, output, olen, - result, &rlen, sizeof( result ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); - if( ret == 0 ) - { - TEST_ASSERT( rlen == message->len ); - TEST_ASSERT( memcmp( result, message->x, rlen ) == 0 ); + TEST_ASSERT(mbedtls_pk_decrypt(&pk, output, olen, + result, &rlen, sizeof(result), + mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); + if (ret == 0) { + TEST_ASSERT(rlen == message->len); + TEST_ASSERT(memcmp(result, message->x, rlen) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C */ -void pk_rsa_decrypt_test_vec( data_t * cipher, int mod, - char * input_P, char * input_Q, - char * input_N, char * input_E, - data_t * clear, int ret ) +void pk_rsa_decrypt_test_vec(data_t *cipher, int mod, + char *input_P, char *input_Q, + char *input_N, char *input_E, + data_t *clear, int ret) { unsigned char output[256]; mbedtls_test_rnd_pseudo_info rnd_info; @@ -930,55 +918,54 @@ void pk_rsa_decrypt_test_vec( data_t * cipher, int mod, mbedtls_pk_context pk; size_t olen; - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_pk_init( &pk ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_pk_init(&pk); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); /* init pk-rsa context */ - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - rsa = mbedtls_pk_rsa( pk ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + rsa = mbedtls_pk_rsa(pk); /* load public key */ - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); /* load private key */ - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( rsa, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( rsa ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( rsa ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_rsa_import(rsa, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(rsa) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(rsa) == 0); /* decryption test */ - memset( output, 0, sizeof( output ) ); + memset(output, 0, sizeof(output)); olen = 0; - TEST_ASSERT( mbedtls_pk_decrypt( &pk, cipher->x, cipher->len, - output, &olen, sizeof( output ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); - if( ret == 0 ) - { - TEST_ASSERT( olen == clear->len ); - TEST_ASSERT( memcmp( output, clear->x, olen ) == 0 ); + TEST_ASSERT(mbedtls_pk_decrypt(&pk, cipher->x, cipher->len, + output, &olen, sizeof(output), + mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); + if (ret == 0) { + TEST_ASSERT(olen == clear->len); + TEST_ASSERT(memcmp(output, clear->x, olen) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C:MBEDTLS_USE_PSA_CRYPTO */ -void pk_wrap_rsa_decrypt_test_vec( data_t * cipher, int mod, - char * input_P, char * input_Q, - char * input_N, char * input_E, - data_t * clear, int ret ) +void pk_wrap_rsa_decrypt_test_vec(data_t *cipher, int mod, + char *input_P, char *input_Q, + char *input_N, char *input_E, + data_t *clear, int ret) { unsigned char output[256]; mbedtls_test_rnd_pseudo_info rnd_info; @@ -988,60 +975,59 @@ void pk_wrap_rsa_decrypt_test_vec( data_t * cipher, int mod, mbedtls_svc_key_id_t key_id; size_t olen; - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_pk_init( &pk ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_pk_init(&pk); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); /* init pk-rsa context */ - TEST_EQUAL( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ), 0 ); - rsa = mbedtls_pk_rsa( pk ); + TEST_EQUAL(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)), 0); + rsa = mbedtls_pk_rsa(pk); /* load public key */ - TEST_EQUAL( mbedtls_test_read_mpi( &N, input_N ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &E, input_E ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&N, input_N), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&E, input_E), 0); /* load private key */ - TEST_EQUAL( mbedtls_test_read_mpi( &P, input_P ), 0 ); - TEST_EQUAL( mbedtls_test_read_mpi( &Q, input_Q ), 0 ); - TEST_EQUAL( mbedtls_rsa_import( rsa, &N, &P, &Q, NULL, &E ), 0 ); - TEST_EQUAL( mbedtls_rsa_get_len( rsa ), (size_t) ( mod / 8 ) ); - TEST_EQUAL( mbedtls_rsa_complete( rsa ), 0 ); + TEST_EQUAL(mbedtls_test_read_mpi(&P, input_P), 0); + TEST_EQUAL(mbedtls_test_read_mpi(&Q, input_Q), 0); + TEST_EQUAL(mbedtls_rsa_import(rsa, &N, &P, &Q, NULL, &E), 0); + TEST_EQUAL(mbedtls_rsa_get_len(rsa), (size_t) (mod / 8)); + TEST_EQUAL(mbedtls_rsa_complete(rsa), 0); /* Turn PK context into an opaque one. */ - TEST_EQUAL( mbedtls_pk_wrap_as_opaque( &pk, &key_id, - PSA_ALG_RSA_PKCS1V15_CRYPT, - PSA_KEY_USAGE_DECRYPT, - PSA_ALG_NONE ), 0 ); + TEST_EQUAL(mbedtls_pk_wrap_as_opaque(&pk, &key_id, + PSA_ALG_RSA_PKCS1V15_CRYPT, + PSA_KEY_USAGE_DECRYPT, + PSA_ALG_NONE), 0); /* decryption test */ - memset( output, 0, sizeof( output ) ); + memset(output, 0, sizeof(output)); olen = 0; - TEST_EQUAL( mbedtls_pk_decrypt( &pk, cipher->x, cipher->len, - output, &olen, sizeof( output ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ), ret ); - if( ret == 0 ) - { - TEST_EQUAL( olen, clear->len ); - TEST_EQUAL( memcmp( output, clear->x, olen ), 0 ); + TEST_EQUAL(mbedtls_pk_decrypt(&pk, cipher->x, cipher->len, + output, &olen, sizeof(output), + mbedtls_test_rnd_pseudo_rand, &rnd_info), ret); + if (ret == 0) { + TEST_EQUAL(olen, clear->len); + TEST_EQUAL(memcmp(output, clear->x, olen), 0); } - TEST_EQUAL( PSA_SUCCESS, psa_destroy_key( key_id ) ); + TEST_EQUAL(PSA_SUCCESS, psa_destroy_key(key_id)); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void pk_ec_nocrypt( int type ) +void pk_ec_nocrypt(int type) { mbedtls_pk_context pk; unsigned char output[100]; @@ -1050,66 +1036,67 @@ void pk_ec_nocrypt( int type ) size_t olen = 0; int ret = MBEDTLS_ERR_PK_TYPE_MISMATCH; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); - memset( output, 0, sizeof( output ) ); - memset( input, 0, sizeof( input ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); + memset(output, 0, sizeof(output)); + memset(input, 0, sizeof(input)); - TEST_ASSERT( mbedtls_pk_setup( &pk, mbedtls_pk_info_from_type( type ) ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0); - TEST_ASSERT( mbedtls_pk_encrypt( &pk, input, sizeof( input ), - output, &olen, sizeof( output ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); + TEST_ASSERT(mbedtls_pk_encrypt(&pk, input, sizeof(input), + output, &olen, sizeof(output), + mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); - TEST_ASSERT( mbedtls_pk_decrypt( &pk, input, sizeof( input ), - output, &olen, sizeof( output ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ) == ret ); + TEST_ASSERT(mbedtls_pk_decrypt(&pk, input, sizeof(input), + output, &olen, sizeof(output), + mbedtls_test_rnd_pseudo_rand, &rnd_info) == ret); exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C */ -void pk_rsa_overflow( ) +void pk_rsa_overflow() { mbedtls_pk_context pk; size_t hash_len = SIZE_MAX, sig_len = SIZE_MAX; unsigned char hash[50], sig[100]; - if( SIZE_MAX <= UINT_MAX ) + if (SIZE_MAX <= UINT_MAX) { return; + } - memset( hash, 0x2a, sizeof hash ); - memset( sig, 0, sizeof sig ); + memset(hash, 0x2a, sizeof hash); + memset(sig, 0, sizeof sig); - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); #if defined(MBEDTLS_PKCS1_V21) - TEST_ASSERT( mbedtls_pk_verify_ext( MBEDTLS_PK_RSASSA_PSS, NULL, &pk, - MBEDTLS_MD_NONE, hash, hash_len, sig, sig_len ) == - MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_verify_ext(MBEDTLS_PK_RSASSA_PSS, NULL, &pk, + MBEDTLS_MD_NONE, hash, hash_len, sig, sig_len) == + MBEDTLS_ERR_PK_BAD_INPUT_DATA); #endif /* MBEDTLS_PKCS1_V21 */ - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_NONE, hash, hash_len, - sig, sig_len ) == MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_NONE, hash, hash_len, + sig, sig_len) == MBEDTLS_ERR_PK_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_pk_sign( &pk, MBEDTLS_MD_NONE, hash, hash_len, - sig, sizeof sig, &sig_len, - mbedtls_test_rnd_std_rand, NULL ) - == MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_NONE, hash, hash_len, + sig, sizeof sig, &sig_len, + mbedtls_test_rnd_std_rand, NULL) + == MBEDTLS_ERR_PK_BAD_INPUT_DATA); exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C:MBEDTLS_PK_RSA_ALT_SUPPORT */ -void pk_rsa_alt( ) +void pk_rsa_alt() { /* * An rsa_alt context can only do private operations (decrypt, sign). @@ -1124,79 +1111,80 @@ void pk_rsa_alt( ) size_t sig_len, ciph_len, test_len; int ret = MBEDTLS_ERR_PK_TYPE_MISMATCH; - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_rsa_init( &raw ); - mbedtls_pk_init( &rsa ); mbedtls_pk_init( &alt ); + mbedtls_rsa_init(&raw); + mbedtls_pk_init(&rsa); mbedtls_pk_init(&alt); - memset( hash, 0x2a, sizeof hash ); - memset( sig, 0, sizeof sig ); - memset( msg, 0x2a, sizeof msg ); - memset( ciph, 0, sizeof ciph ); - memset( test, 0, sizeof test ); + memset(hash, 0x2a, sizeof hash); + memset(sig, 0, sizeof sig); + memset(msg, 0x2a, sizeof msg); + memset(ciph, 0, sizeof ciph); + memset(test, 0, sizeof test); /* Initialize PK RSA context with random key */ - TEST_ASSERT( mbedtls_pk_setup( &rsa, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - TEST_ASSERT( pk_genkey( &rsa, RSA_KEY_SIZE ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&rsa, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + TEST_ASSERT(pk_genkey(&rsa, RSA_KEY_SIZE) == 0); /* Extract key to the raw rsa context */ - TEST_ASSERT( mbedtls_rsa_copy( &raw, mbedtls_pk_rsa( rsa ) ) == 0 ); + TEST_ASSERT(mbedtls_rsa_copy(&raw, mbedtls_pk_rsa(rsa)) == 0); /* Initialize PK RSA_ALT context */ - TEST_ASSERT( mbedtls_pk_setup_rsa_alt( &alt, (void *) &raw, - mbedtls_rsa_decrypt_func, mbedtls_rsa_sign_func, mbedtls_rsa_key_len_func ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup_rsa_alt(&alt, (void *) &raw, + mbedtls_rsa_decrypt_func, mbedtls_rsa_sign_func, + mbedtls_rsa_key_len_func) == 0); /* Test administrative functions */ - TEST_ASSERT( mbedtls_pk_can_do( &alt, MBEDTLS_PK_RSA ) ); - TEST_ASSERT( mbedtls_pk_get_bitlen( &alt ) == RSA_KEY_SIZE ); - TEST_ASSERT( mbedtls_pk_get_len( &alt ) == RSA_KEY_LEN ); - TEST_ASSERT( mbedtls_pk_get_type( &alt ) == MBEDTLS_PK_RSA_ALT ); - TEST_ASSERT( strcmp( mbedtls_pk_get_name( &alt ), "RSA-alt" ) == 0 ); + TEST_ASSERT(mbedtls_pk_can_do(&alt, MBEDTLS_PK_RSA)); + TEST_ASSERT(mbedtls_pk_get_bitlen(&alt) == RSA_KEY_SIZE); + TEST_ASSERT(mbedtls_pk_get_len(&alt) == RSA_KEY_LEN); + TEST_ASSERT(mbedtls_pk_get_type(&alt) == MBEDTLS_PK_RSA_ALT); + TEST_ASSERT(strcmp(mbedtls_pk_get_name(&alt), "RSA-alt") == 0); /* Test signature */ #if SIZE_MAX > UINT_MAX - TEST_ASSERT( mbedtls_pk_sign( &alt, MBEDTLS_MD_NONE, hash, SIZE_MAX, - sig, sizeof sig, &sig_len, - mbedtls_test_rnd_std_rand, NULL ) - == MBEDTLS_ERR_PK_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_pk_sign(&alt, MBEDTLS_MD_NONE, hash, SIZE_MAX, + sig, sizeof sig, &sig_len, + mbedtls_test_rnd_std_rand, NULL) + == MBEDTLS_ERR_PK_BAD_INPUT_DATA); #endif /* SIZE_MAX > UINT_MAX */ - TEST_ASSERT( mbedtls_pk_sign( &alt, MBEDTLS_MD_NONE, hash, sizeof hash, - sig, sizeof sig, &sig_len, - mbedtls_test_rnd_std_rand, NULL ) - == 0 ); - TEST_ASSERT( sig_len == RSA_KEY_LEN ); - TEST_ASSERT( mbedtls_pk_verify( &rsa, MBEDTLS_MD_NONE, - hash, sizeof hash, sig, sig_len ) == 0 ); + TEST_ASSERT(mbedtls_pk_sign(&alt, MBEDTLS_MD_NONE, hash, sizeof hash, + sig, sizeof sig, &sig_len, + mbedtls_test_rnd_std_rand, NULL) + == 0); + TEST_ASSERT(sig_len == RSA_KEY_LEN); + TEST_ASSERT(mbedtls_pk_verify(&rsa, MBEDTLS_MD_NONE, + hash, sizeof hash, sig, sig_len) == 0); /* Test decrypt */ - TEST_ASSERT( mbedtls_pk_encrypt( &rsa, msg, sizeof msg, - ciph, &ciph_len, sizeof ciph, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); - TEST_ASSERT( mbedtls_pk_decrypt( &alt, ciph, ciph_len, - test, &test_len, sizeof test, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); - TEST_ASSERT( test_len == sizeof msg ); - TEST_ASSERT( memcmp( test, msg, test_len ) == 0 ); + TEST_ASSERT(mbedtls_pk_encrypt(&rsa, msg, sizeof msg, + ciph, &ciph_len, sizeof ciph, + mbedtls_test_rnd_std_rand, NULL) == 0); + TEST_ASSERT(mbedtls_pk_decrypt(&alt, ciph, ciph_len, + test, &test_len, sizeof test, + mbedtls_test_rnd_std_rand, NULL) == 0); + TEST_ASSERT(test_len == sizeof msg); + TEST_ASSERT(memcmp(test, msg, test_len) == 0); /* Test forbidden operations */ - TEST_ASSERT( mbedtls_pk_encrypt( &alt, msg, sizeof msg, - ciph, &ciph_len, sizeof ciph, - mbedtls_test_rnd_std_rand, NULL ) == ret ); - TEST_ASSERT( mbedtls_pk_verify( &alt, MBEDTLS_MD_NONE, - hash, sizeof hash, sig, sig_len ) == ret ); - TEST_ASSERT( mbedtls_pk_debug( &alt, dbg_items ) == ret ); + TEST_ASSERT(mbedtls_pk_encrypt(&alt, msg, sizeof msg, + ciph, &ciph_len, sizeof ciph, + mbedtls_test_rnd_std_rand, NULL) == ret); + TEST_ASSERT(mbedtls_pk_verify(&alt, MBEDTLS_MD_NONE, + hash, sizeof hash, sig, sig_len) == ret); + TEST_ASSERT(mbedtls_pk_debug(&alt, dbg_items) == ret); exit: - mbedtls_rsa_free( &raw ); - mbedtls_pk_free( &rsa ); mbedtls_pk_free( &alt ); - USE_PSA_DONE( ); + mbedtls_rsa_free(&raw); + mbedtls_pk_free(&rsa); mbedtls_pk_free(&alt); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO */ -void pk_psa_sign( int parameter_arg, - int psa_type_arg, int expected_bits_arg ) +void pk_psa_sign(int parameter_arg, + int psa_type_arg, int expected_bits_arg) { mbedtls_pk_context pk; unsigned char hash[32]; @@ -1220,144 +1208,139 @@ void pk_psa_sign( int parameter_arg, * - parse it to a PK context and verify the signature this way */ - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) - if( PSA_KEY_TYPE_IS_RSA( psa_type_arg ) ) - { + if (PSA_KEY_TYPE_IS_RSA(psa_type_arg)) { /* Create legacy RSA public/private key in PK context. */ - mbedtls_pk_init( &pk ); - TEST_ASSERT( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( MBEDTLS_PK_RSA ) ) == 0 ); - TEST_ASSERT( mbedtls_rsa_gen_key( mbedtls_pk_rsa( pk ), - mbedtls_test_rnd_std_rand, NULL, - parameter_arg, 3 ) == 0 ); - alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN( PSA_ALG_SHA_256 ); - } - else + mbedtls_pk_init(&pk); + TEST_ASSERT(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(MBEDTLS_PK_RSA)) == 0); + TEST_ASSERT(mbedtls_rsa_gen_key(mbedtls_pk_rsa(pk), + mbedtls_test_rnd_std_rand, NULL, + parameter_arg, 3) == 0); + alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN(PSA_ALG_SHA_256); + } else #endif /* MBEDTLS_RSA_C && MBEDTLS_GENPRIME */ #if defined(MBEDTLS_ECDSA_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( psa_type_arg ) ) - { + if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(psa_type_arg)) { mbedtls_ecp_group_id grpid = parameter_arg; /* Create legacy EC public/private key in PK context. */ - mbedtls_pk_init( &pk ); - TEST_ASSERT( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( MBEDTLS_PK_ECKEY ) ) == 0 ); - TEST_ASSERT( mbedtls_ecp_gen_key( grpid, - (mbedtls_ecp_keypair*) pk.pk_ctx, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); - alg_psa = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); - } - else + mbedtls_pk_init(&pk); + TEST_ASSERT(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(MBEDTLS_PK_ECKEY)) == 0); + TEST_ASSERT(mbedtls_ecp_gen_key(grpid, + (mbedtls_ecp_keypair *) pk.pk_ctx, + mbedtls_test_rnd_std_rand, NULL) == 0); + alg_psa = PSA_ALG_ECDSA(PSA_ALG_SHA_256); + } else #endif /* MBEDTLS_ECDSA_C */ { (void) parameter_arg; - TEST_ASSUME( ! "Opaque PK key not supported in this configuration" ); + TEST_ASSUME(!"Opaque PK key not supported in this configuration"); } /* Export underlying public key for re-importing in a legacy context. */ - ret = mbedtls_pk_write_pubkey_der( &pk, pkey_legacy, - sizeof( pkey_legacy ) ); - TEST_ASSERT( ret >= 0 ); + ret = mbedtls_pk_write_pubkey_der(&pk, pkey_legacy, + sizeof(pkey_legacy)); + TEST_ASSERT(ret >= 0); klen_legacy = (size_t) ret; /* mbedtls_pk_write_pubkey_der() writes backwards in the data buffer. */ - pkey_legacy_start = pkey_legacy + sizeof( pkey_legacy ) - klen_legacy; + pkey_legacy_start = pkey_legacy + sizeof(pkey_legacy) - klen_legacy; /* Turn PK context into an opaque one. */ - TEST_ASSERT( mbedtls_pk_wrap_as_opaque( &pk, &key_id, alg_psa, - PSA_KEY_USAGE_SIGN_HASH, - PSA_ALG_NONE ) == 0 ); + TEST_ASSERT(mbedtls_pk_wrap_as_opaque(&pk, &key_id, alg_psa, + PSA_KEY_USAGE_SIGN_HASH, + PSA_ALG_NONE) == 0); - PSA_ASSERT( psa_get_key_attributes( key_id, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), expected_type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), expected_bits ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - PSA_KEY_LIFETIME_VOLATILE ); + PSA_ASSERT(psa_get_key_attributes(key_id, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), expected_type); + TEST_EQUAL(psa_get_key_bits(&attributes), expected_bits); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + PSA_KEY_LIFETIME_VOLATILE); - memset( hash, 0x2a, sizeof hash ); - memset( sig, 0, sizeof sig ); + memset(hash, 0x2a, sizeof hash); + memset(sig, 0, sizeof sig); - TEST_ASSERT( mbedtls_pk_sign( &pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sizeof sig, &sig_len, - NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, + hash, sizeof hash, sig, sizeof sig, &sig_len, + NULL, NULL) == 0); /* Export underlying public key for re-importing in a psa context. */ - ret = mbedtls_pk_write_pubkey_der( &pk, pkey_psa, - sizeof( pkey_psa ) ); - TEST_ASSERT( ret >= 0 ); + ret = mbedtls_pk_write_pubkey_der(&pk, pkey_psa, + sizeof(pkey_psa)); + TEST_ASSERT(ret >= 0); klen_psa = (size_t) ret; /* mbedtls_pk_write_pubkey_der() writes backwards in the data buffer. */ - pkey_psa_start = pkey_psa + sizeof( pkey_psa ) - klen_psa; + pkey_psa_start = pkey_psa + sizeof(pkey_psa) - klen_psa; - TEST_ASSERT( klen_psa == klen_legacy ); - TEST_ASSERT( memcmp( pkey_psa_start, pkey_legacy_start, klen_psa ) == 0 ); + TEST_ASSERT(klen_psa == klen_legacy); + TEST_ASSERT(memcmp(pkey_psa_start, pkey_legacy_start, klen_psa) == 0); - mbedtls_pk_free( &pk ); - TEST_ASSERT( PSA_SUCCESS == psa_destroy_key( key_id ) ); + mbedtls_pk_free(&pk); + TEST_ASSERT(PSA_SUCCESS == psa_destroy_key(key_id)); - mbedtls_pk_init( &pk ); - TEST_ASSERT( mbedtls_pk_parse_public_key( &pk, pkey_legacy_start, - klen_legacy ) == 0 ); - TEST_ASSERT( mbedtls_pk_verify( &pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len ) == 0 ); + mbedtls_pk_init(&pk); + TEST_ASSERT(mbedtls_pk_parse_public_key(&pk, pkey_legacy_start, + klen_legacy) == 0); + TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, + hash, sizeof hash, sig, sig_len) == 0); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_pk_free( &pk ); - USE_PSA_DONE( ); + mbedtls_pk_free(&pk); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_GENPRIME */ -void pk_psa_sign_ext( int pk_type, int parameter, int key_pk_type, int md_alg ) +void pk_psa_sign_ext(int pk_type, int parameter, int key_pk_type, int md_alg) { /* See the description of pk_genkey() for the description of the `parameter` argument. */ mbedtls_pk_context pk; size_t sig_len; unsigned char sig[MBEDTLS_PK_SIGNATURE_MAX_SIZE]; unsigned char hash[PSA_HASH_MAX_SIZE]; - size_t hash_len = mbedtls_hash_info_get_size( md_alg ); + size_t hash_len = mbedtls_hash_info_get_size(md_alg); void const *options = NULL; mbedtls_pk_rsassa_pss_options rsassa_pss_options; - memset( hash, 0x2a, sizeof( hash ) ); - memset( sig, 0, sizeof( sig ) ); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); PSA_INIT(); - TEST_ASSERT( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( pk_type ) ) == 0 ); + TEST_ASSERT(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(pk_type)) == 0); - TEST_ASSERT( pk_genkey( &pk, parameter ) == 0 ); + TEST_ASSERT(pk_genkey(&pk, parameter) == 0); - TEST_ASSERT( mbedtls_pk_sign_ext( key_pk_type, &pk, md_alg, hash, hash_len, - sig, sizeof( sig ), &sig_len, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); + TEST_ASSERT(mbedtls_pk_sign_ext(key_pk_type, &pk, md_alg, hash, hash_len, + sig, sizeof(sig), &sig_len, + mbedtls_test_rnd_std_rand, NULL) == 0); - if( key_pk_type == MBEDTLS_PK_RSASSA_PSS ) - { + if (key_pk_type == MBEDTLS_PK_RSASSA_PSS) { rsassa_pss_options.mgf1_hash_id = md_alg; - TEST_ASSERT( hash_len != 0 ); + TEST_ASSERT(hash_len != 0); rsassa_pss_options.expected_salt_len = hash_len; - options = (const void*) &rsassa_pss_options; + options = (const void *) &rsassa_pss_options; } - TEST_ASSERT( mbedtls_pk_verify_ext( key_pk_type, options, &pk, md_alg, - hash, hash_len, sig, sig_len ) == 0 ); + TEST_ASSERT(mbedtls_pk_verify_ext(key_pk_type, options, &pk, md_alg, + hash, hash_len, sig, sig_len) == 0); exit: - PSA_DONE( ); - mbedtls_pk_free( &pk ); + PSA_DONE(); + mbedtls_pk_free(&pk); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C:MBEDTLS_GENPRIME:MBEDTLS_USE_PSA_CRYPTO */ -void pk_psa_wrap_sign_ext( int pk_type, int parameter, int key_pk_type, int md_alg ) +void pk_psa_wrap_sign_ext(int pk_type, int parameter, int key_pk_type, int md_alg) { /* See the description of mbedtls_rsa_gen_key() for the description of the `parameter` argument. */ mbedtls_pk_context pk; @@ -1367,69 +1350,69 @@ void pk_psa_wrap_sign_ext( int pk_type, int parameter, int key_pk_type, int md_a unsigned char pkey[PSA_EXPORT_PUBLIC_KEY_MAX_SIZE]; unsigned char *pkey_start; unsigned char hash[PSA_HASH_MAX_SIZE]; - psa_algorithm_t psa_md_alg = mbedtls_hash_info_psa_from_md( md_alg ); + psa_algorithm_t psa_md_alg = mbedtls_hash_info_psa_from_md(md_alg); psa_algorithm_t psa_alg; - size_t hash_len = PSA_HASH_LENGTH( psa_md_alg ); + size_t hash_len = PSA_HASH_LENGTH(psa_md_alg); void const *options = NULL; mbedtls_pk_rsassa_pss_options rsassa_pss_options; int ret; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); PSA_INIT(); /* Create legacy RSA public/private key in PK context. */ - mbedtls_pk_init( &pk ); - TEST_EQUAL( mbedtls_pk_setup( &pk, - mbedtls_pk_info_from_type( pk_type ) ), 0 ); - TEST_EQUAL( mbedtls_rsa_gen_key( mbedtls_pk_rsa( pk ), - mbedtls_test_rnd_std_rand, NULL, - parameter, 3 ), 0 ); + mbedtls_pk_init(&pk); + TEST_EQUAL(mbedtls_pk_setup(&pk, + mbedtls_pk_info_from_type(pk_type)), 0); + TEST_EQUAL(mbedtls_rsa_gen_key(mbedtls_pk_rsa(pk), + mbedtls_test_rnd_std_rand, NULL, + parameter, 3), 0); /* Export underlying public key for re-importing in a legacy context. */ - ret = mbedtls_pk_write_pubkey_der( &pk, pkey, sizeof( pkey ) ); - TEST_ASSERT( ret >= 0 ); + ret = mbedtls_pk_write_pubkey_der(&pk, pkey, sizeof(pkey)); + TEST_ASSERT(ret >= 0); pkey_len = (size_t) ret; /* mbedtls_pk_write_pubkey_der() writes backwards in the data buffer. */ - pkey_start = pkey + sizeof( pkey ) - pkey_len; + pkey_start = pkey + sizeof(pkey) - pkey_len; - if( key_pk_type == MBEDTLS_PK_RSA ) - psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN( psa_md_alg ); - else if( key_pk_type == MBEDTLS_PK_RSASSA_PSS ) - psa_alg = PSA_ALG_RSA_PSS( psa_md_alg ); - else - TEST_ASSUME( ! "PK key type not supported in this configuration" ); + if (key_pk_type == MBEDTLS_PK_RSA) { + psa_alg = PSA_ALG_RSA_PKCS1V15_SIGN(psa_md_alg); + } else if (key_pk_type == MBEDTLS_PK_RSASSA_PSS) { + psa_alg = PSA_ALG_RSA_PSS(psa_md_alg); + } else { + TEST_ASSUME(!"PK key type not supported in this configuration"); + } /* Turn PK context into an opaque one. */ - TEST_EQUAL( mbedtls_pk_wrap_as_opaque( &pk, &key_id, psa_alg, - PSA_KEY_USAGE_SIGN_HASH, - PSA_ALG_NONE ), 0 ); + TEST_EQUAL(mbedtls_pk_wrap_as_opaque(&pk, &key_id, psa_alg, + PSA_KEY_USAGE_SIGN_HASH, + PSA_ALG_NONE), 0); - memset( hash, 0x2a, sizeof( hash ) ); - memset( sig, 0, sizeof( sig ) ); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); - TEST_EQUAL( mbedtls_pk_sign_ext( key_pk_type, &pk, md_alg, hash, hash_len, - sig, sizeof( sig ), &sig_len, - mbedtls_test_rnd_std_rand, NULL ), 0 ); + TEST_EQUAL(mbedtls_pk_sign_ext(key_pk_type, &pk, md_alg, hash, hash_len, + sig, sizeof(sig), &sig_len, + mbedtls_test_rnd_std_rand, NULL), 0); - mbedtls_pk_free( &pk ); - TEST_EQUAL( PSA_SUCCESS, psa_destroy_key( key_id ) ); + mbedtls_pk_free(&pk); + TEST_EQUAL(PSA_SUCCESS, psa_destroy_key(key_id)); - mbedtls_pk_init( &pk ); - TEST_EQUAL( mbedtls_pk_parse_public_key( &pk, pkey_start, pkey_len ), 0 ); + mbedtls_pk_init(&pk); + TEST_EQUAL(mbedtls_pk_parse_public_key(&pk, pkey_start, pkey_len), 0); - if( key_pk_type == MBEDTLS_PK_RSASSA_PSS ) - { + if (key_pk_type == MBEDTLS_PK_RSASSA_PSS) { rsassa_pss_options.mgf1_hash_id = md_alg; - TEST_ASSERT( hash_len != 0 ); + TEST_ASSERT(hash_len != 0); rsassa_pss_options.expected_salt_len = hash_len; - options = (const void*) &rsassa_pss_options; + options = (const void *) &rsassa_pss_options; } - TEST_EQUAL( mbedtls_pk_verify_ext( key_pk_type, options, &pk, md_alg, - hash, hash_len, sig, sig_len ), 0 ); + TEST_EQUAL(mbedtls_pk_verify_ext(key_pk_type, options, &pk, md_alg, + hash, hash_len, sig, sig_len), 0); exit: - mbedtls_pk_free( &pk ); - PSA_DONE( ); + mbedtls_pk_free(&pk); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkcs12.function b/tests/suites/test_suite_pkcs12.function index 3fad814a5..ab51e02fa 100644 --- a/tests/suites/test_suite_pkcs12.function +++ b/tests/suites/test_suite_pkcs12.function @@ -4,10 +4,9 @@ #include "mbedtls/legacy_or_psa.h" -typedef enum -{ - USE_NULL_INPUT = 0, - USE_GIVEN_INPUT = 1, +typedef enum { + USE_NULL_INPUT = 0, + USE_GIVEN_INPUT = 1, } input_usage_method_t; /* END_HEADER */ @@ -18,34 +17,36 @@ typedef enum */ /* BEGIN_CASE */ -void pkcs12_derive_key( int md_type, int key_size_arg, - data_t *password_arg, int password_usage, - data_t *salt_arg, int salt_usage, - int iterations, - data_t* expected_output, int expected_status ) +void pkcs12_derive_key(int md_type, int key_size_arg, + data_t *password_arg, int password_usage, + data_t *salt_arg, int salt_usage, + int iterations, + data_t *expected_output, int expected_status) { - unsigned char *output_data = NULL; + unsigned char *output_data = NULL; - unsigned char *password = NULL; - size_t password_len = 0; - unsigned char *salt = NULL; - size_t salt_len = 0; - size_t key_size = key_size_arg; + unsigned char *password = NULL; + size_t password_len = 0; + unsigned char *salt = NULL; + size_t salt_len = 0; + size_t key_size = key_size_arg; - if( password_usage == USE_GIVEN_INPUT ) - password = password_arg->x; + if (password_usage == USE_GIVEN_INPUT) { + password = password_arg->x; + } - password_len = password_arg->len; + password_len = password_arg->len; - if( salt_usage == USE_GIVEN_INPUT ) - salt = salt_arg->x; + if (salt_usage == USE_GIVEN_INPUT) { + salt = salt_arg->x; + } - salt_len = salt_arg->len; + salt_len = salt_arg->len; - ASSERT_ALLOC( output_data, key_size ); + ASSERT_ALLOC(output_data, key_size); - int ret = mbedtls_pkcs12_derivation( output_data, + int ret = mbedtls_pkcs12_derivation(output_data, key_size, password, password_len, @@ -53,18 +54,17 @@ void pkcs12_derive_key( int md_type, int key_size_arg, salt_len, md_type, MBEDTLS_PKCS12_DERIVE_KEY, - iterations ); + iterations); - TEST_EQUAL( ret, expected_status ); + TEST_EQUAL(ret, expected_status); - if( expected_status == 0 ) - { - ASSERT_COMPARE( expected_output->x, expected_output->len, - output_data, key_size ); - } + if (expected_status == 0) { + ASSERT_COMPARE(expected_output->x, expected_output->len, + output_data, key_size); + } exit: - mbedtls_free( output_data ); + mbedtls_free(output_data); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkcs1_v15.function b/tests/suites/test_suite_pkcs1_v15.function index 0fad7c600..d0ea23cdb 100644 --- a/tests/suites/test_suite_pkcs1_v15.function +++ b/tests/suites/test_suite_pkcs1_v15.function @@ -11,10 +11,10 @@ */ /* BEGIN_CASE */ -void pkcs1_rsaes_v15_encrypt( int mod, char * input_N, - char * input_E, int hash, - data_t * message_str, data_t * rnd_buf, - data_t * result_str, int result ) +void pkcs1_rsaes_v15_encrypt(int mod, char *input_N, + char *input_E, int hash, + data_t *message_str, data_t *rnd_buf, + data_t *result_str, int result) { unsigned char output[128]; mbedtls_rsa_context ctx; @@ -26,43 +26,43 @@ void pkcs1_rsaes_v15_encrypt( int mod, char * input_N, info.buf = rnd_buf->x; info.length = rnd_buf->len; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V15, hash ) == 0 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V15, hash) == 0); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - if( message_str->len == 0 ) + if (message_str->len == 0) { message_str->x = NULL; - TEST_ASSERT( mbedtls_rsa_pkcs1_encrypt( &ctx, - &mbedtls_test_rnd_buffer_rand, - &info, message_str->len, - message_str->x, - output ) == result ); + } + TEST_ASSERT(mbedtls_rsa_pkcs1_encrypt(&ctx, + &mbedtls_test_rnd_buffer_rand, + &info, message_str->len, + message_str->x, + output) == result); - if( result == 0 ) - { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + if (result == 0) { + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsaes_v15_decrypt( int mod, char * input_P, char * input_Q, - char * input_N, char * input_E, int hash, - data_t * result_str, char * seed, - data_t * message_str, int result ) +void pkcs1_rsaes_v15_decrypt(int mod, char *input_P, char *input_Q, + char *input_N, char *input_E, int hash, + data_t *result_str, char *seed, + data_t *message_str, int result) { unsigned char output[128]; mbedtls_rsa_context ctx; @@ -71,60 +71,56 @@ void pkcs1_rsaes_v15_decrypt( int mod, char * input_P, char * input_Q, mbedtls_mpi N, P, Q, E; ((void) seed); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V15, hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V15, hash) == 0); - memset( output, 0x00, sizeof( output ) ); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(output, 0x00, sizeof(output)); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - if( result_str->len == 0 ) - { - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, - &output_len, message_str->x, - NULL, 0 ) == result ); - } - else - { - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, - &output_len, message_str->x, - output, 1000 ) == result ); - if( result == 0 ) - { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - output_len, - result_str->len) == 0 ); + if (result_str->len == 0) { + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, + &output_len, message_str->x, + NULL, 0) == result); + } else { + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, + &output_len, message_str->x, + output, 1000) == result); + if (result == 0) { + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + output_len, + result_str->len) == 0); } } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_v15_decode( data_t *input, - int expected_plaintext_length_arg, - int output_size_arg, - int expected_result ) +void pkcs1_v15_decode(data_t *input, + int expected_plaintext_length_arg, + int output_size_arg, + int expected_result) { size_t expected_plaintext_length = expected_plaintext_length_arg; size_t output_size = output_size_arg; @@ -194,43 +190,40 @@ void pkcs1_v15_decode( data_t *input, unsigned char final[128]; size_t output_length = 0x7EA0; - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); - mbedtls_mpi_init( &Nmpi ); mbedtls_mpi_init( &Empi ); - mbedtls_mpi_init( &Pmpi ); mbedtls_mpi_init( &Qmpi ); - mbedtls_rsa_init( &ctx ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); + mbedtls_mpi_init(&Nmpi); mbedtls_mpi_init(&Empi); + mbedtls_mpi_init(&Pmpi); mbedtls_mpi_init(&Qmpi); + mbedtls_rsa_init(&ctx); - TEST_ASSERT( mbedtls_mpi_read_binary( &Nmpi, N, sizeof( N ) ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &Empi, E, sizeof( E ) ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &Pmpi, P, sizeof( P ) ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &Qmpi, Q, sizeof( Q ) ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&Nmpi, N, sizeof(N)) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&Empi, E, sizeof(E)) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&Pmpi, P, sizeof(P)) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&Qmpi, Q, sizeof(Q)) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &Nmpi, &Pmpi, &Qmpi, - NULL, &Empi ) == 0 ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &Nmpi, &Pmpi, &Qmpi, + NULL, &Empi) == 0); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); - TEST_ASSERT( input->len <= sizeof( N ) ); - memcpy( original, input->x, input->len ); - memset( original + input->len, 'd', sizeof( original ) - input->len ); - TEST_ASSERT( mbedtls_rsa_public( &ctx, original, intermediate ) == 0 ); + TEST_ASSERT(input->len <= sizeof(N)); + memcpy(original, input->x, input->len); + memset(original + input->len, 'd', sizeof(original) - input->len); + TEST_ASSERT(mbedtls_rsa_public(&ctx, original, intermediate) == 0); - memcpy( final, default_content, sizeof( final ) ); - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, &output_length, - intermediate, final, - output_size ) == expected_result ); - if( expected_result == 0 ) - { - TEST_ASSERT( output_length == expected_plaintext_length ); - TEST_ASSERT( memcmp( original + sizeof( N ) - output_length, - final, - output_length ) == 0 ); - } - else if( expected_result == MBEDTLS_ERR_RSA_INVALID_PADDING || - expected_result == MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE ) - { + memcpy(final, default_content, sizeof(final)); + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, &output_length, + intermediate, final, + output_size) == expected_result); + if (expected_result == 0) { + TEST_ASSERT(output_length == expected_plaintext_length); + TEST_ASSERT(memcmp(original + sizeof(N) - output_length, + final, + output_length) == 0); + } else if (expected_result == MBEDTLS_ERR_RSA_INVALID_PADDING || + expected_result == MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE) { size_t max_payload_length = - output_size > sizeof( N ) - 11 ? sizeof( N ) - 11 : output_size; + output_size > sizeof(N) - 11 ? sizeof(N) - 11 : output_size; size_t i; size_t count = 0; @@ -239,34 +232,36 @@ void pkcs1_v15_decode( data_t *input, * implementation currently does. Alternative implementations * may produce different output, so we only perform these precise * checks when using the default implementation. */ - TEST_ASSERT( output_length == max_payload_length ); - for( i = 0; i < max_payload_length; i++ ) - TEST_ASSERT( final[i] == 0 ); + TEST_ASSERT(output_length == max_payload_length); + for (i = 0; i < max_payload_length; i++) { + TEST_ASSERT(final[i] == 0); + } #endif /* Even in alternative implementations, the outputs must have * changed, otherwise it indicates at least a timing vulnerability * because no write to the outputs is performed in the bad case. */ - TEST_ASSERT( output_length != 0x7EA0 ); - for( i = 0; i < max_payload_length; i++ ) - count += ( final[i] == default_content[i] ); + TEST_ASSERT(output_length != 0x7EA0); + for (i = 0; i < max_payload_length; i++) { + count += (final[i] == default_content[i]); + } /* If more than 16 bytes are unchanged in final, that's evidence * that final wasn't overwritten. */ - TEST_ASSERT( count < 16 ); + TEST_ASSERT(count < 16); } exit: - mbedtls_mpi_free( &Nmpi ); mbedtls_mpi_free( &Empi ); - mbedtls_mpi_free( &Pmpi ); mbedtls_mpi_free( &Qmpi ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&Nmpi); mbedtls_mpi_free(&Empi); + mbedtls_mpi_free(&Pmpi); mbedtls_mpi_free(&Qmpi); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsassa_v15_sign( int mod, char * input_P, - char * input_Q, char * input_N, - char * input_E, int digest, int hash, - data_t * message_str, data_t * rnd_buf, - data_t * result_str, int result ) +void pkcs1_rsassa_v15_sign(int mod, char *input_P, + char *input_Q, char *input_N, + char *input_E, int digest, int hash, + data_t *message_str, data_t *rnd_buf, + data_t *result_str, int result) { unsigned char output[128]; mbedtls_rsa_context ctx; @@ -278,66 +273,66 @@ void pkcs1_rsassa_v15_sign( int mod, char * input_P, info.buf = rnd_buf->x; info.length = rnd_buf->len; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V15, hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V15, hash) == 0); - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_sign( - &ctx, &mbedtls_test_rnd_buffer_rand, &info, - digest, message_str->len, message_str->x, - output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_pkcs1_sign( + &ctx, &mbedtls_test_rnd_buffer_rand, &info, + digest, message_str->len, message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsassa_v15_verify( int mod, char * input_N, char * input_E, - int digest, int hash, data_t * message_str, - char * salt, data_t * result_str, int result ) +void pkcs1_rsassa_v15_verify(int mod, char *input_N, char *input_E, + int digest, int hash, data_t *message_str, + char *salt, data_t *result_str, int result) { mbedtls_rsa_context ctx; mbedtls_mpi N, E; ((void) salt); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V15, hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V15, hash) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_verify( &ctx, digest, message_str->len, message_str->x, result_str->x ) == result ); + TEST_ASSERT(mbedtls_rsa_pkcs1_verify(&ctx, digest, message_str->len, message_str->x, + result_str->x) == result); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkcs1_v21.function b/tests/suites/test_suite_pkcs1_v21.function index 593c047f2..376c752f4 100644 --- a/tests/suites/test_suite_pkcs1_v21.function +++ b/tests/suites/test_suite_pkcs1_v21.function @@ -9,9 +9,9 @@ */ /* BEGIN_CASE */ -void pkcs1_rsaes_oaep_encrypt( int mod, data_t * input_N, data_t * input_E, - int hash, data_t * message_str, data_t * rnd_buf, - data_t * result_str, int result ) +void pkcs1_rsaes_oaep_encrypt(int mod, data_t *input_N, data_t *input_E, + int hash, data_t *message_str, data_t *rnd_buf, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx; @@ -23,41 +23,41 @@ void pkcs1_rsaes_oaep_encrypt( int mod, data_t * input_N, data_t * input_E, info.buf = rnd_buf->x; info.length = rnd_buf->len; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, hash ) == 0 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, hash) == 0); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_mpi_read_binary( &N, input_N->x, input_N->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &E, input_E->x, input_E->len ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, input_N->x, input_N->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&E, input_E->x, input_E->len) == 0); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - if( message_str->len == 0 ) + if (message_str->len == 0) { message_str->x = NULL; - TEST_ASSERT( mbedtls_rsa_pkcs1_encrypt( &ctx, - &mbedtls_test_rnd_buffer_rand, - &info, message_str->len, - message_str->x, - output ) == result ); - if( result == 0 ) - { - ASSERT_COMPARE( output, ctx.len, result_str->x, result_str->len ); + } + TEST_ASSERT(mbedtls_rsa_pkcs1_encrypt(&ctx, + &mbedtls_test_rnd_buffer_rand, + &info, message_str->len, + message_str->x, + output) == result); + if (result == 0) { + ASSERT_COMPARE(output, ctx.len, result_str->x, result_str->len); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsaes_oaep_decrypt( int mod, data_t * input_P, data_t * input_Q, - data_t * input_N, data_t * input_E, int hash, - data_t * result_str, char * seed, data_t * message_str, - int result ) +void pkcs1_rsaes_oaep_decrypt(int mod, data_t *input_P, data_t *input_Q, + data_t *input_N, data_t *input_E, int hash, + data_t *result_str, char *seed, data_t *message_str, + int result) { unsigned char output[64]; mbedtls_rsa_context ctx; @@ -66,61 +66,57 @@ void pkcs1_rsaes_oaep_decrypt( int mod, data_t * input_P, data_t * input_Q, mbedtls_mpi N, P, Q, E; ((void) seed); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, hash ) == 0 ); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, hash) == 0); - memset( output, 0x00, sizeof( output ) ); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(output, 0x00, sizeof(output)); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_mpi_read_binary( &P, input_P->x, input_P->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &Q, input_Q->x, input_Q->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &N, input_N->x, input_N->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &E, input_E->x, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&P, input_P->x, input_P->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&Q, input_Q->x, input_Q->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, input_N->x, input_N->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&E, input_E->x, input_E->len) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - if( result_str->len == 0 ) - { - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, - &output_len, message_str->x, - NULL, 0 ) == result ); - } - else - { - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, - &output_len, message_str->x, - output, - sizeof( output ) ) == result ); - if( result == 0 ) - { - ASSERT_COMPARE( output, output_len, result_str->x, result_str->len ); + if (result_str->len == 0) { + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, + &output_len, message_str->x, + NULL, 0) == result); + } else { + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, + &output_len, message_str->x, + output, + sizeof(output)) == result); + if (result == 0) { + ASSERT_COMPARE(output, output_len, result_str->x, result_str->len); } } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsassa_pss_sign( int mod, data_t * input_P, data_t * input_Q, - data_t * input_N, data_t * input_E, int digest, - int hash, data_t * hash_digest, data_t * rnd_buf, - data_t * result_str, int fixed_salt_length, - int result ) +void pkcs1_rsassa_pss_sign(int mod, data_t *input_P, data_t *input_Q, + data_t *input_N, data_t *input_E, int digest, + int hash, data_t *hash_digest, data_t *rnd_buf, + data_t *result_str, int fixed_salt_length, + int result) { unsigned char output[512]; mbedtls_rsa_context ctx; @@ -132,118 +128,116 @@ void pkcs1_rsassa_pss_sign( int mod, data_t * input_P, data_t * input_Q, info.buf = rnd_buf->x; info.length = rnd_buf->len; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, hash) == 0); - memset( output, 0x00, sizeof( output ) ); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_mpi_read_binary( &P, input_P->x, input_P->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &Q, input_Q->x, input_Q->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &N, input_N->x, input_N->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &E, input_E->x, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&P, input_P->x, input_P->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&Q, input_Q->x, input_Q->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, input_N->x, input_N->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&E, input_E->x, input_E->len) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - if (fixed_salt_length == MBEDTLS_RSA_SALT_LEN_ANY) - { - TEST_ASSERT( mbedtls_rsa_pkcs1_sign( - &ctx, &mbedtls_test_rnd_buffer_rand, &info, - digest, hash_digest->len, hash_digest->x, output ) == result ); - if( result == 0 ) - { - ASSERT_COMPARE( output, ctx.len, result_str->x, result_str->len ); + if (fixed_salt_length == MBEDTLS_RSA_SALT_LEN_ANY) { + TEST_ASSERT(mbedtls_rsa_pkcs1_sign( + &ctx, &mbedtls_test_rnd_buffer_rand, &info, + digest, hash_digest->len, hash_digest->x, output) == result); + if (result == 0) { + ASSERT_COMPARE(output, ctx.len, result_str->x, result_str->len); } info.buf = rnd_buf->x; info.length = rnd_buf->len; } - TEST_ASSERT( mbedtls_rsa_rsassa_pss_sign_ext( - &ctx, &mbedtls_test_rnd_buffer_rand, &info, - digest, hash_digest->len, hash_digest->x, - fixed_salt_length, output ) == result ); - if( result == 0 ) - { - ASSERT_COMPARE( output, ctx.len, result_str->x, result_str->len ); + TEST_ASSERT(mbedtls_rsa_rsassa_pss_sign_ext( + &ctx, &mbedtls_test_rnd_buffer_rand, &info, + digest, hash_digest->len, hash_digest->x, + fixed_salt_length, output) == result); + if (result == 0) { + ASSERT_COMPARE(output, ctx.len, result_str->x, result_str->len); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsassa_pss_verify( int mod, data_t * input_N, data_t * input_E, - int digest, int hash, data_t * hash_digest, - char * salt, data_t * result_str, int result ) +void pkcs1_rsassa_pss_verify(int mod, data_t *input_N, data_t *input_E, + int digest, int hash, data_t *hash_digest, + char *salt, data_t *result_str, int result) { mbedtls_rsa_context ctx; mbedtls_mpi N, E; ((void) salt); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, hash) == 0); - TEST_ASSERT( mbedtls_mpi_read_binary( &N, input_N->x, input_N->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &E, input_E->x, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, input_N->x, input_N->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&E, input_E->x, input_E->len) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_verify( &ctx, digest, hash_digest->len, hash_digest->x, result_str->x ) == result ); + TEST_ASSERT(mbedtls_rsa_pkcs1_verify(&ctx, digest, hash_digest->len, hash_digest->x, + result_str->x) == result); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pkcs1_rsassa_pss_verify_ext( int mod, data_t * input_N, data_t * input_E, - int msg_digest_id, int ctx_hash, - int mgf_hash, int salt_len, - data_t * hash_digest, - data_t * result_str, int result_simple, - int result_full ) +void pkcs1_rsassa_pss_verify_ext(int mod, data_t *input_N, data_t *input_E, + int msg_digest_id, int ctx_hash, + int mgf_hash, int salt_len, + data_t *hash_digest, + data_t *result_str, int result_simple, + int result_full) { mbedtls_rsa_context ctx; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, ctx_hash ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, ctx_hash) == 0); - TEST_ASSERT( mbedtls_mpi_read_binary( &N, input_N->x, input_N->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &E, input_E->x, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, input_N->x, input_N->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&E, input_E->x, input_E->len) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( ( mod + 7 ) / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) ((mod + 7) / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_verify( &ctx, msg_digest_id, - hash_digest->len, hash_digest->x, - result_str->x ) == result_simple ); + TEST_ASSERT(mbedtls_rsa_pkcs1_verify(&ctx, msg_digest_id, + hash_digest->len, hash_digest->x, + result_str->x) == result_simple); - TEST_ASSERT( mbedtls_rsa_rsassa_pss_verify_ext( &ctx, msg_digest_id, hash_digest->len, - hash_digest->x, mgf_hash, salt_len, - result_str->x ) == result_full ); + TEST_ASSERT(mbedtls_rsa_rsassa_pss_verify_ext(&ctx, msg_digest_id, hash_digest->len, + hash_digest->x, mgf_hash, salt_len, + result_str->x) == result_full); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkcs5.function b/tests/suites/test_suite_pkcs5.function index 7b7ed3d01..fd731e99f 100644 --- a/tests/suites/test_suite_pkcs5.function +++ b/tests/suites/test_suite_pkcs5.function @@ -9,25 +9,25 @@ */ /* BEGIN_CASE */ -void pbkdf2_hmac( int hash, data_t * pw_str, data_t * salt_str, - int it_cnt, int key_len, data_t * result_key_string ) +void pbkdf2_hmac(int hash, data_t *pw_str, data_t *salt_str, + int it_cnt, int key_len, data_t *result_key_string) { unsigned char key[100]; PSA_INIT_IF_NO_MD(); - TEST_ASSERT( mbedtls_pkcs5_pbkdf2_hmac_ext( hash, pw_str->x, pw_str->len, - salt_str->x, salt_str->len, - it_cnt, key_len, key ) == 0 ); + TEST_ASSERT(mbedtls_pkcs5_pbkdf2_hmac_ext(hash, pw_str->x, pw_str->len, + salt_str->x, salt_str->len, + it_cnt, key_len, key) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( key, result_key_string->x, - key_len, result_key_string->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(key, result_key_string->x, + key_len, result_key_string->len) == 0); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ASN1_PARSE_C */ -void mbedtls_pkcs5_pbes2( int params_tag, data_t *params_hex, data_t *pw, - data_t *data, int ref_ret, data_t *ref_out ) +void mbedtls_pkcs5_pbes2(int params_tag, data_t *params_hex, data_t *pw, + data_t *data, int ref_ret, data_t *ref_out) { int my_ret; mbedtls_asn1_buf params; @@ -39,24 +39,25 @@ void mbedtls_pkcs5_pbes2( int params_tag, data_t *params_hex, data_t *pw, params.p = params_hex->x; params.len = params_hex->len; - my_out = mbedtls_test_zero_alloc( ref_out->len ); + my_out = mbedtls_test_zero_alloc(ref_out->len); - my_ret = mbedtls_pkcs5_pbes2( ¶ms, MBEDTLS_PKCS5_DECRYPT, - pw->x, pw->len, data->x, data->len, my_out ); - TEST_ASSERT( my_ret == ref_ret ); + my_ret = mbedtls_pkcs5_pbes2(¶ms, MBEDTLS_PKCS5_DECRYPT, + pw->x, pw->len, data->x, data->len, my_out); + TEST_ASSERT(my_ret == ref_ret); - if( ref_ret == 0 ) - TEST_ASSERT( memcmp( my_out, ref_out->x, ref_out->len ) == 0 ); + if (ref_ret == 0) { + TEST_ASSERT(memcmp(my_out, ref_out->x, ref_out->len) == 0); + } exit: - mbedtls_free( my_out ); + mbedtls_free(my_out); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void pkcs5_selftest( ) +void pkcs5_selftest() { - TEST_ASSERT( mbedtls_pkcs5_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_pkcs5_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkcs7.function b/tests/suites/test_suite_pkcs7.function index 3d7dec686..4fc416ae7 100644 --- a/tests/suites/test_suite_pkcs7.function +++ b/tests/suites/test_suite_pkcs7.function @@ -15,7 +15,7 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO */ -void pkcs7_parse( char *pkcs7_file, int res_expect ) +void pkcs7_parse(char *pkcs7_file, int res_expect) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -23,22 +23,23 @@ void pkcs7_parse( char *pkcs7_file, int res_expect ) mbedtls_pkcs7 pkcs7; - mbedtls_pkcs7_init( &pkcs7 ); + mbedtls_pkcs7_init(&pkcs7); - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_EQUAL( res, 0 ); + res = mbedtls_pk_load_file(pkcs7_file, &pkcs7_buf, &buflen); + TEST_EQUAL(res, 0); - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_EQUAL( res, res_expect ); + res = mbedtls_pkcs7_parse_der(&pkcs7, pkcs7_buf, buflen); + TEST_EQUAL(res, res_expect); exit: - mbedtls_free( pkcs7_buf ); - mbedtls_pkcs7_free( &pkcs7 ); + mbedtls_free(pkcs7_buf); + mbedtls_pkcs7_free(&pkcs7); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_hash_alg, int res_expect ) +void pkcs7_verify(char *pkcs7_file, char *crt, char *filetobesigned, int do_hash_alg, + int res_expect) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -54,63 +55,65 @@ void pkcs7_verify( char *pkcs7_file, char *crt, char *filetobesigned, int do_has mbedtls_pkcs7 pkcs7; mbedtls_x509_crt x509; - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509 ); + mbedtls_pkcs7_init(&pkcs7); + mbedtls_x509_crt_init(&x509); USE_PSA_INIT(); - res = mbedtls_x509_crt_parse_file( &x509, crt ); - TEST_EQUAL( res, 0 ); + res = mbedtls_x509_crt_parse_file(&x509, crt); + TEST_EQUAL(res, 0); - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_EQUAL( res, 0 ); + res = mbedtls_pk_load_file(pkcs7_file, &pkcs7_buf, &buflen); + TEST_EQUAL(res, 0); - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_EQUAL( res, MBEDTLS_PKCS7_SIGNED_DATA ); + res = mbedtls_pkcs7_parse_der(&pkcs7, pkcs7_buf, buflen); + TEST_EQUAL(res, MBEDTLS_PKCS7_SIGNED_DATA); - res = stat( filetobesigned, &st ); - TEST_EQUAL( res, 0 ); + res = stat(filetobesigned, &st); + TEST_EQUAL(res, 0); - file = fopen( filetobesigned, "rb" ); - TEST_ASSERT( file != NULL ); + file = fopen(filetobesigned, "rb"); + TEST_ASSERT(file != NULL); datalen = st.st_size; - ASSERT_ALLOC( data, datalen ); - TEST_ASSERT( data != NULL ); + ASSERT_ALLOC(data, datalen); + TEST_ASSERT(data != NULL); - buflen = fread( (void *)data , sizeof( unsigned char ), datalen, file ); - TEST_EQUAL( buflen, datalen ); - fclose( file ); + buflen = fread((void *) data, sizeof(unsigned char), datalen, file); + TEST_EQUAL(buflen, datalen); + fclose(file); - if( do_hash_alg ) - { - res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); - TEST_EQUAL( res, 0 ); - TEST_EQUAL( md_alg, (mbedtls_md_type_t) do_hash_alg ); - md_info = mbedtls_md_info_from_type( md_alg ); + if (do_hash_alg) { + res = mbedtls_oid_get_md_alg(&pkcs7.signed_data.digest_alg_identifiers, &md_alg); + TEST_EQUAL(res, 0); + TEST_EQUAL(md_alg, (mbedtls_md_type_t) do_hash_alg); + md_info = mbedtls_md_info_from_type(md_alg); - res = mbedtls_md( md_info, data, datalen, hash ); - TEST_EQUAL( res, 0 ); + res = mbedtls_md(md_info, data, datalen, hash); + TEST_EQUAL(res, 0); - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509, hash, sizeof(hash) ); + res = mbedtls_pkcs7_signed_hash_verify(&pkcs7, &x509, hash, sizeof(hash)); + } else { + res = mbedtls_pkcs7_signed_data_verify(&pkcs7, &x509, data, datalen); } - else - { - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509, data, datalen ); - } - TEST_EQUAL( res, res_expect ); + TEST_EQUAL(res, res_expect); exit: - mbedtls_x509_crt_free( &x509 ); - mbedtls_free( data ); - mbedtls_pkcs7_free( &pkcs7 ); - mbedtls_free( pkcs7_buf ); + mbedtls_x509_crt_free(&x509); + mbedtls_free(data); + mbedtls_pkcs7_free(&pkcs7); + mbedtls_free(pkcs7_buf); USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C */ -void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, char *filetobesigned, int do_hash_alg, int res_expect ) +void pkcs7_verify_multiple_signers(char *pkcs7_file, + char *crt1, + char *crt2, + char *filetobesigned, + int do_hash_alg, + int res_expect) { unsigned char *pkcs7_buf = NULL; size_t buflen; @@ -127,68 +130,65 @@ void pkcs7_verify_multiple_signers( char *pkcs7_file, char *crt1, char *crt2, ch mbedtls_x509_crt x509_1; mbedtls_x509_crt x509_2; - mbedtls_pkcs7_init( &pkcs7 ); - mbedtls_x509_crt_init( &x509_1 ); - mbedtls_x509_crt_init( &x509_2 ); + mbedtls_pkcs7_init(&pkcs7); + mbedtls_x509_crt_init(&x509_1); + mbedtls_x509_crt_init(&x509_2); USE_PSA_INIT(); - res = mbedtls_pk_load_file( pkcs7_file, &pkcs7_buf, &buflen ); - TEST_EQUAL( res, 0 ); + res = mbedtls_pk_load_file(pkcs7_file, &pkcs7_buf, &buflen); + TEST_EQUAL(res, 0); - res = mbedtls_pkcs7_parse_der( &pkcs7, pkcs7_buf, buflen ); - TEST_EQUAL( res, MBEDTLS_PKCS7_SIGNED_DATA ); + res = mbedtls_pkcs7_parse_der(&pkcs7, pkcs7_buf, buflen); + TEST_EQUAL(res, MBEDTLS_PKCS7_SIGNED_DATA); - TEST_EQUAL( pkcs7.signed_data.no_of_signers, 2 ); + TEST_EQUAL(pkcs7.signed_data.no_of_signers, 2); - res = mbedtls_x509_crt_parse_file( &x509_1, crt1 ); - TEST_EQUAL( res, 0 ); + res = mbedtls_x509_crt_parse_file(&x509_1, crt1); + TEST_EQUAL(res, 0); - res = mbedtls_x509_crt_parse_file( &x509_2, crt2 ); - TEST_EQUAL( res, 0 ); + res = mbedtls_x509_crt_parse_file(&x509_2, crt2); + TEST_EQUAL(res, 0); - res = stat( filetobesigned, &st ); - TEST_EQUAL( res, 0 ); + res = stat(filetobesigned, &st); + TEST_EQUAL(res, 0); - file = fopen( filetobesigned, "rb" ); - TEST_ASSERT( file != NULL ); + file = fopen(filetobesigned, "rb"); + TEST_ASSERT(file != NULL); datalen = st.st_size; - ASSERT_ALLOC( data, datalen ); - buflen = fread( ( void * )data , sizeof( unsigned char ), datalen, file ); - TEST_EQUAL( buflen, datalen ); + ASSERT_ALLOC(data, datalen); + buflen = fread((void *) data, sizeof(unsigned char), datalen, file); + TEST_EQUAL(buflen, datalen); - fclose( file ); + fclose(file); - if( do_hash_alg ) - { - res = mbedtls_oid_get_md_alg( &pkcs7.signed_data.digest_alg_identifiers, &md_alg ); - TEST_EQUAL( res, 0 ); - TEST_EQUAL( md_alg, MBEDTLS_MD_SHA256 ); + if (do_hash_alg) { + res = mbedtls_oid_get_md_alg(&pkcs7.signed_data.digest_alg_identifiers, &md_alg); + TEST_EQUAL(res, 0); + TEST_EQUAL(md_alg, MBEDTLS_MD_SHA256); - md_info = mbedtls_md_info_from_type( md_alg ); + md_info = mbedtls_md_info_from_type(md_alg); - res = mbedtls_md( md_info, data, datalen, hash ); - TEST_EQUAL( res, 0 ); + res = mbedtls_md(md_info, data, datalen, hash); + TEST_EQUAL(res, 0); - res = mbedtls_pkcs7_signed_hash_verify( &pkcs7, &x509_1, hash, sizeof(hash) ); - TEST_EQUAL( res, res_expect ); - } - else - { - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_1, data, datalen ); - TEST_EQUAL( res, res_expect ); + res = mbedtls_pkcs7_signed_hash_verify(&pkcs7, &x509_1, hash, sizeof(hash)); + TEST_EQUAL(res, res_expect); + } else { + res = mbedtls_pkcs7_signed_data_verify(&pkcs7, &x509_1, data, datalen); + TEST_EQUAL(res, res_expect); } - res = mbedtls_pkcs7_signed_data_verify( &pkcs7, &x509_2, data, datalen ); - TEST_EQUAL( res, res_expect ); + res = mbedtls_pkcs7_signed_data_verify(&pkcs7, &x509_2, data, datalen); + TEST_EQUAL(res, res_expect); exit: - mbedtls_x509_crt_free( &x509_1 ); - mbedtls_x509_crt_free( &x509_2 ); - mbedtls_pkcs7_free( &pkcs7 ); - mbedtls_free( data ); - mbedtls_free( pkcs7_buf ); + mbedtls_x509_crt_free(&x509_1); + mbedtls_x509_crt_free(&x509_2); + mbedtls_pkcs7_free(&pkcs7); + mbedtls_free(data); + mbedtls_free(pkcs7_buf); USE_PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkparse.function b/tests/suites/test_suite_pkparse.function index c5e60ee38..ff19981e0 100644 --- a/tests/suites/test_suite_pkparse.function +++ b/tests/suites/test_suite_pkparse.function @@ -11,126 +11,123 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C:MBEDTLS_FS_IO */ -void pk_parse_keyfile_rsa( char * key_file, char * password, int result ) +void pk_parse_keyfile_rsa(char *key_file, char *password, int result) { mbedtls_pk_context ctx; int res; char *pwd = password; PSA_INIT_IF_NO_MD(); - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); - if( strcmp( pwd, "NULL" ) == 0 ) + if (strcmp(pwd, "NULL") == 0) { pwd = NULL; + } - res = mbedtls_pk_parse_keyfile( &ctx, key_file, pwd, - mbedtls_test_rnd_std_rand, NULL ); + res = mbedtls_pk_parse_keyfile(&ctx, key_file, pwd, + mbedtls_test_rnd_std_rand, NULL); - TEST_ASSERT( res == result ); + TEST_ASSERT(res == result); - if( res == 0 ) - { + if (res == 0) { mbedtls_rsa_context *rsa; - TEST_ASSERT( mbedtls_pk_can_do( &ctx, MBEDTLS_PK_RSA ) ); - rsa = mbedtls_pk_rsa( ctx ); - TEST_ASSERT( mbedtls_rsa_check_privkey( rsa ) == 0 ); + TEST_ASSERT(mbedtls_pk_can_do(&ctx, MBEDTLS_PK_RSA)); + rsa = mbedtls_pk_rsa(ctx); + TEST_ASSERT(mbedtls_rsa_check_privkey(rsa) == 0); } exit: - mbedtls_pk_free( &ctx ); + mbedtls_pk_free(&ctx); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_RSA_C:MBEDTLS_FS_IO */ -void pk_parse_public_keyfile_rsa( char * key_file, int result ) +void pk_parse_public_keyfile_rsa(char *key_file, int result) { mbedtls_pk_context ctx; int res; PSA_INIT_IF_NO_MD(); - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); - res = mbedtls_pk_parse_public_keyfile( &ctx, key_file ); + res = mbedtls_pk_parse_public_keyfile(&ctx, key_file); - TEST_ASSERT( res == result ); + TEST_ASSERT(res == result); - if( res == 0 ) - { + if (res == 0) { mbedtls_rsa_context *rsa; - TEST_ASSERT( mbedtls_pk_can_do( &ctx, MBEDTLS_PK_RSA ) ); - rsa = mbedtls_pk_rsa( ctx ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( rsa ) == 0 ); + TEST_ASSERT(mbedtls_pk_can_do(&ctx, MBEDTLS_PK_RSA)); + rsa = mbedtls_pk_rsa(ctx); + TEST_ASSERT(mbedtls_rsa_check_pubkey(rsa) == 0); } exit: - mbedtls_pk_free( &ctx ); + mbedtls_pk_free(&ctx); PSA_DONE_IF_NO_MD(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_ECP_C */ -void pk_parse_public_keyfile_ec( char * key_file, int result ) +void pk_parse_public_keyfile_ec(char *key_file, int result) { mbedtls_pk_context ctx; int res; - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); - res = mbedtls_pk_parse_public_keyfile( &ctx, key_file ); + res = mbedtls_pk_parse_public_keyfile(&ctx, key_file); - TEST_ASSERT( res == result ); + TEST_ASSERT(res == result); - if( res == 0 ) - { + if (res == 0) { mbedtls_ecp_keypair *eckey; - TEST_ASSERT( mbedtls_pk_can_do( &ctx, MBEDTLS_PK_ECKEY ) ); - eckey = mbedtls_pk_ec( ctx ); - TEST_ASSERT( mbedtls_ecp_check_pubkey( &eckey->grp, &eckey->Q ) == 0 ); + TEST_ASSERT(mbedtls_pk_can_do(&ctx, MBEDTLS_PK_ECKEY)); + eckey = mbedtls_pk_ec(ctx); + TEST_ASSERT(mbedtls_ecp_check_pubkey(&eckey->grp, &eckey->Q) == 0); } exit: - mbedtls_pk_free( &ctx ); + mbedtls_pk_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_ECP_C */ -void pk_parse_keyfile_ec( char * key_file, char * password, int result ) +void pk_parse_keyfile_ec(char *key_file, char *password, int result) { mbedtls_pk_context ctx; int res; - mbedtls_pk_init( &ctx ); + mbedtls_pk_init(&ctx); - res = mbedtls_pk_parse_keyfile( &ctx, key_file, password, - mbedtls_test_rnd_std_rand, NULL ); + res = mbedtls_pk_parse_keyfile(&ctx, key_file, password, + mbedtls_test_rnd_std_rand, NULL); - TEST_ASSERT( res == result ); + TEST_ASSERT(res == result); - if( res == 0 ) - { + if (res == 0) { mbedtls_ecp_keypair *eckey; - TEST_ASSERT( mbedtls_pk_can_do( &ctx, MBEDTLS_PK_ECKEY ) ); - eckey = mbedtls_pk_ec( ctx ); - TEST_ASSERT( mbedtls_ecp_check_privkey( &eckey->grp, &eckey->d ) == 0 ); + TEST_ASSERT(mbedtls_pk_can_do(&ctx, MBEDTLS_PK_ECKEY)); + eckey = mbedtls_pk_ec(ctx); + TEST_ASSERT(mbedtls_ecp_check_privkey(&eckey->grp, &eckey->d) == 0); } exit: - mbedtls_pk_free( &ctx ); + mbedtls_pk_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void pk_parse_key( data_t * buf, int result ) +void pk_parse_key(data_t *buf, int result) { mbedtls_pk_context pk; - mbedtls_pk_init( &pk ); + mbedtls_pk_init(&pk); - TEST_ASSERT( mbedtls_pk_parse_key( &pk, buf->x, buf->len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ) == result ); + TEST_ASSERT(mbedtls_pk_parse_key(&pk, buf->x, buf->len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL) == result); exit: - mbedtls_pk_free( &pk ); + mbedtls_pk_free(&pk); } /* END_CASE */ diff --git a/tests/suites/test_suite_pkwrite.function b/tests/suites/test_suite_pkwrite.function index d1e029abb..7e8a32d34 100644 --- a/tests/suites/test_suite_pkwrite.function +++ b/tests/suites/test_suite_pkwrite.function @@ -10,7 +10,7 @@ */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */ -void pk_write_pubkey_check( char * key_file ) +void pk_write_pubkey_check(char *key_file) { mbedtls_pk_context key; unsigned char buf[5000]; @@ -19,38 +19,37 @@ void pk_write_pubkey_check( char * key_file ) FILE *f; size_t ilen, pem_len, buf_index; - memset( buf, 0, sizeof( buf ) ); - memset( check_buf, 0, sizeof( check_buf ) ); + memset(buf, 0, sizeof(buf)); + memset(check_buf, 0, sizeof(check_buf)); - mbedtls_pk_init( &key ); - TEST_ASSERT( mbedtls_pk_parse_public_keyfile( &key, key_file ) == 0 ); + mbedtls_pk_init(&key); + TEST_ASSERT(mbedtls_pk_parse_public_keyfile(&key, key_file) == 0); - ret = mbedtls_pk_write_pubkey_pem( &key, buf, sizeof( buf )); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_pk_write_pubkey_pem(&key, buf, sizeof(buf)); + TEST_ASSERT(ret == 0); - pem_len = strlen( (char *) buf ); + pem_len = strlen((char *) buf); // check that the rest of the buffer remains clear - for( buf_index = pem_len; buf_index < sizeof( buf ); ++buf_index ) - { - TEST_ASSERT( buf[buf_index] == 0 ); + for (buf_index = pem_len; buf_index < sizeof(buf); ++buf_index) { + TEST_ASSERT(buf[buf_index] == 0); } - f = fopen( key_file, "r" ); - TEST_ASSERT( f != NULL ); - ilen = fread( check_buf, 1, sizeof( check_buf ), f ); - fclose( f ); + f = fopen(key_file, "r"); + TEST_ASSERT(f != NULL); + ilen = fread(check_buf, 1, sizeof(check_buf), f); + fclose(f); - TEST_ASSERT( ilen == pem_len ); - TEST_ASSERT( memcmp( (char *) buf, (char *) check_buf, ilen ) == 0 ); + TEST_ASSERT(ilen == pem_len); + TEST_ASSERT(memcmp((char *) buf, (char *) check_buf, ilen) == 0); exit: - mbedtls_pk_free( &key ); + mbedtls_pk_free(&key); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C */ -void pk_write_key_check( char * key_file ) +void pk_write_key_check(char *key_file) { mbedtls_pk_context key; unsigned char buf[5000]; @@ -59,33 +58,32 @@ void pk_write_key_check( char * key_file ) FILE *f; size_t ilen, pem_len, buf_index; - memset( buf, 0, sizeof( buf ) ); - memset( check_buf, 0, sizeof( check_buf ) ); + memset(buf, 0, sizeof(buf)); + memset(check_buf, 0, sizeof(check_buf)); - mbedtls_pk_init( &key ); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &key, key_file, NULL, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); + mbedtls_pk_init(&key); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&key, key_file, NULL, + mbedtls_test_rnd_std_rand, NULL) == 0); - ret = mbedtls_pk_write_key_pem( &key, buf, sizeof( buf )); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_pk_write_key_pem(&key, buf, sizeof(buf)); + TEST_ASSERT(ret == 0); - pem_len = strlen( (char *) buf ); + pem_len = strlen((char *) buf); // check that the rest of the buffer remains clear - for( buf_index = pem_len; buf_index < sizeof( buf ); ++buf_index ) - { - TEST_ASSERT( buf[buf_index] == 0 ); + for (buf_index = pem_len; buf_index < sizeof(buf); ++buf_index) { + TEST_ASSERT(buf[buf_index] == 0); } - f = fopen( key_file, "r" ); - TEST_ASSERT( f != NULL ); - ilen = fread( check_buf, 1, sizeof( check_buf ), f ); - fclose( f ); + f = fopen(key_file, "r"); + TEST_ASSERT(f != NULL); + ilen = fread(check_buf, 1, sizeof(check_buf), f); + fclose(f); - TEST_ASSERT( ilen == strlen( (char *) buf ) ); - TEST_ASSERT( memcmp( (char *) buf, (char *) check_buf, ilen ) == 0 ); + TEST_ASSERT(ilen == strlen((char *) buf)); + TEST_ASSERT(memcmp((char *) buf, (char *) check_buf, ilen) == 0); exit: - mbedtls_pk_free( &key ); + mbedtls_pk_free(&key); } /* END_CASE */ diff --git a/tests/suites/test_suite_poly1305.function b/tests/suites/test_suite_poly1305.function index 59e927734..fffa89f6f 100644 --- a/tests/suites/test_suite_poly1305.function +++ b/tests/suites/test_suite_poly1305.function @@ -9,35 +9,35 @@ */ /* BEGIN_CASE */ -void mbedtls_poly1305( data_t *key, data_t *expected_mac, data_t *src_str ) +void mbedtls_poly1305(data_t *key, data_t *expected_mac, data_t *src_str) { unsigned char mac[16]; /* size set by the standard */ mbedtls_poly1305_context ctx; - memset( mac, 0x00, sizeof( mac ) ); + memset(mac, 0x00, sizeof(mac)); /* * Test the integrated API */ - TEST_ASSERT( mbedtls_poly1305_mac( key->x, src_str->x, - src_str->len, mac ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_mac(key->x, src_str->x, + src_str->len, mac) == 0); - ASSERT_COMPARE( mac, expected_mac->len, - expected_mac->x, expected_mac->len ); + ASSERT_COMPARE(mac, expected_mac->len, + expected_mac->x, expected_mac->len); /* * Test the streaming API */ - mbedtls_poly1305_init( &ctx ); + mbedtls_poly1305_init(&ctx); - TEST_ASSERT( mbedtls_poly1305_starts( &ctx, key->x ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_starts(&ctx, key->x) == 0); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x, src_str->len ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x, src_str->len) == 0); - TEST_ASSERT( mbedtls_poly1305_finish( &ctx, mac ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_finish(&ctx, mac) == 0); - ASSERT_COMPARE( mac, expected_mac->len, - expected_mac->x, expected_mac->len ); + ASSERT_COMPARE(mac, expected_mac->len, + expected_mac->x, expected_mac->len); /* * Test the streaming API again, piecewise @@ -45,43 +45,41 @@ void mbedtls_poly1305( data_t *key, data_t *expected_mac, data_t *src_str ) /* Don't free/init the context, in order to test that starts() does the * right thing. */ - if( src_str->len >= 1 ) - { - TEST_ASSERT( mbedtls_poly1305_starts( &ctx, key->x ) == 0 ); + if (src_str->len >= 1) { + TEST_ASSERT(mbedtls_poly1305_starts(&ctx, key->x) == 0); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x, 1 ) == 0 ); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x + 1, src_str->len - 1 ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x, 1) == 0); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x + 1, src_str->len - 1) == 0); - TEST_ASSERT( mbedtls_poly1305_finish( &ctx, mac ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_finish(&ctx, mac) == 0); - ASSERT_COMPARE( mac, expected_mac->len, - expected_mac->x, expected_mac->len ); + ASSERT_COMPARE(mac, expected_mac->len, + expected_mac->x, expected_mac->len); } /* * Again with more pieces */ - if( src_str->len >= 2 ) - { - TEST_ASSERT( mbedtls_poly1305_starts( &ctx, key->x ) == 0 ); + if (src_str->len >= 2) { + TEST_ASSERT(mbedtls_poly1305_starts(&ctx, key->x) == 0); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x, 1 ) == 0 ); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x + 1, 1 ) == 0 ); - TEST_ASSERT( mbedtls_poly1305_update( &ctx, src_str->x + 2, src_str->len - 2 ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x, 1) == 0); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x + 1, 1) == 0); + TEST_ASSERT(mbedtls_poly1305_update(&ctx, src_str->x + 2, src_str->len - 2) == 0); - TEST_ASSERT( mbedtls_poly1305_finish( &ctx, mac ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_finish(&ctx, mac) == 0); - ASSERT_COMPARE( mac, expected_mac->len, - expected_mac->x, expected_mac->len ); + ASSERT_COMPARE(mac, expected_mac->len, + expected_mac->x, expected_mac->len); } - mbedtls_poly1305_free( &ctx ); + mbedtls_poly1305_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ void poly1305_selftest() { - TEST_ASSERT( mbedtls_poly1305_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_poly1305_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto.function b/tests/suites/test_suite_psa_crypto.function index b236ea8f8..5e46ca0ab 100644 --- a/tests/suites/test_suite_psa_crypto.function +++ b/tests/suites/test_suite_psa_crypto.function @@ -29,24 +29,25 @@ /* Assert that an operation is (not) active. * This serves as a proxy for checking if the operation is aborted. */ -#define ASSERT_OPERATION_IS_ACTIVE( operation ) TEST_ASSERT( operation.id != 0 ) -#define ASSERT_OPERATION_IS_INACTIVE( operation ) TEST_ASSERT( operation.id == 0 ) +#define ASSERT_OPERATION_IS_ACTIVE(operation) TEST_ASSERT(operation.id != 0) +#define ASSERT_OPERATION_IS_INACTIVE(operation) TEST_ASSERT(operation.id == 0) #if defined(PSA_WANT_ALG_JPAKE) -int ecjpake_operation_setup( psa_pake_operation_t *operation, - psa_pake_cipher_suite_t *cipher_suite, - psa_pake_role_t role, - mbedtls_svc_key_id_t key, - size_t key_available ) +int ecjpake_operation_setup(psa_pake_operation_t *operation, + psa_pake_cipher_suite_t *cipher_suite, + psa_pake_role_t role, + mbedtls_svc_key_id_t key, + size_t key_available) { - PSA_ASSERT( psa_pake_abort( operation ) ); + PSA_ASSERT(psa_pake_abort(operation)); - PSA_ASSERT( psa_pake_setup( operation, cipher_suite ) ); + PSA_ASSERT(psa_pake_setup(operation, cipher_suite)); - PSA_ASSERT( psa_pake_set_role( operation, role) ); + PSA_ASSERT(psa_pake_set_role(operation, role)); - if( key_available ) - PSA_ASSERT( psa_pake_set_password_key( operation, key ) ); + if (key_available) { + PSA_ASSERT(psa_pake_set_password_key(operation, key)); + } return 0; exit: return 1; @@ -67,50 +68,54 @@ static const size_t INVALID_EXPORT_LENGTH = ~0U; * \return 1 if the buffer is all-bits-zero. * \return 0 if there is at least one nonzero byte. */ -static int mem_is_char( void *buffer, unsigned char c, size_t size ) +static int mem_is_char(void *buffer, unsigned char c, size_t size) { size_t i; - for( i = 0; i < size; i++ ) - { - if( ( (unsigned char *) buffer )[i] != c ) - return( 0 ); + for (i = 0; i < size; i++) { + if (((unsigned char *) buffer)[i] != c) { + return 0; + } } - return( 1 ); + return 1; } #if defined(MBEDTLS_ASN1_WRITE_C) /* Write the ASN.1 INTEGER with the value 2^(bits-1)+x backwards from *p. */ -static int asn1_write_10x( unsigned char **p, - unsigned char *start, - size_t bits, - unsigned char x ) +static int asn1_write_10x(unsigned char **p, + unsigned char *start, + size_t bits, + unsigned char x) { int ret; int len = bits / 8 + 1; - if( bits == 0 ) - return( MBEDTLS_ERR_ASN1_INVALID_DATA ); - if( bits <= 8 && x >= 1 << ( bits - 1 ) ) - return( MBEDTLS_ERR_ASN1_INVALID_DATA ); - if( *p < start || *p - start < (ptrdiff_t) len ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + if (bits == 0) { + return MBEDTLS_ERR_ASN1_INVALID_DATA; + } + if (bits <= 8 && x >= 1 << (bits - 1)) { + return MBEDTLS_ERR_ASN1_INVALID_DATA; + } + if (*p < start || *p - start < (ptrdiff_t) len) { + return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL; + } *p -= len; - ( *p )[len-1] = x; - if( bits % 8 == 0 ) - ( *p )[1] |= 1; - else - ( *p )[0] |= 1 << ( bits % 8 ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, start, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, start, - MBEDTLS_ASN1_INTEGER ) ); - return( len ); + (*p)[len-1] = x; + if (bits % 8 == 0) { + (*p)[1] |= 1; + } else { + (*p)[0] |= 1 << (bits % 8); + } + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, start, len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, start, + MBEDTLS_ASN1_INTEGER)); + return len; } -static int construct_fake_rsa_key( unsigned char *buffer, - size_t buffer_size, - unsigned char **p, - size_t bits, - int keypair ) +static int construct_fake_rsa_key(unsigned char *buffer, + size_t buffer_size, + unsigned char **p, + size_t bits, + int keypair) { - size_t half_bits = ( bits + 1 ) / 2; + size_t half_bits = (bits + 1) / 2; int ret; int len = 0; /* Construct something that looks like a DER encoding of @@ -131,134 +136,132 @@ static int construct_fake_rsa_key( unsigned char *buffer, * version, modulus and publicExponent. */ *p = buffer + buffer_size; - if( keypair ) - { - MBEDTLS_ASN1_CHK_ADD( len, /* pq */ - asn1_write_10x( p, buffer, half_bits, 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* dq */ - asn1_write_10x( p, buffer, half_bits, 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* dp */ - asn1_write_10x( p, buffer, half_bits, 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* q */ - asn1_write_10x( p, buffer, half_bits, 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* p != q to pass mbedtls sanity checks */ - asn1_write_10x( p, buffer, half_bits, 3 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* d */ - asn1_write_10x( p, buffer, bits, 1 ) ); + if (keypair) { + MBEDTLS_ASN1_CHK_ADD(len, /* pq */ + asn1_write_10x(p, buffer, half_bits, 1)); + MBEDTLS_ASN1_CHK_ADD(len, /* dq */ + asn1_write_10x(p, buffer, half_bits, 1)); + MBEDTLS_ASN1_CHK_ADD(len, /* dp */ + asn1_write_10x(p, buffer, half_bits, 1)); + MBEDTLS_ASN1_CHK_ADD(len, /* q */ + asn1_write_10x(p, buffer, half_bits, 1)); + MBEDTLS_ASN1_CHK_ADD(len, /* p != q to pass mbedtls sanity checks */ + asn1_write_10x(p, buffer, half_bits, 3)); + MBEDTLS_ASN1_CHK_ADD(len, /* d */ + asn1_write_10x(p, buffer, bits, 1)); } - MBEDTLS_ASN1_CHK_ADD( len, /* e = 65537 */ - asn1_write_10x( p, buffer, 17, 1 ) ); - MBEDTLS_ASN1_CHK_ADD( len, /* n */ - asn1_write_10x( p, buffer, bits, 1 ) ); - if( keypair ) - MBEDTLS_ASN1_CHK_ADD( len, /* version = 0 */ - mbedtls_asn1_write_int( p, buffer, 0 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( p, buffer, len ) ); + MBEDTLS_ASN1_CHK_ADD(len, /* e = 65537 */ + asn1_write_10x(p, buffer, 17, 1)); + MBEDTLS_ASN1_CHK_ADD(len, /* n */ + asn1_write_10x(p, buffer, bits, 1)); + if (keypair) { + MBEDTLS_ASN1_CHK_ADD(len, /* version = 0 */ + mbedtls_asn1_write_int(p, buffer, 0)); + } + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(p, buffer, len)); { const unsigned char tag = MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE; - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( p, buffer, tag ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(p, buffer, tag)); } - return( len ); + return len; } #endif /* MBEDTLS_ASN1_WRITE_C */ -int exercise_mac_setup( psa_key_type_t key_type, - const unsigned char *key_bytes, - size_t key_length, - psa_algorithm_t alg, - psa_mac_operation_t *operation, - psa_status_t *status ) +int exercise_mac_setup(psa_key_type_t key_type, + const unsigned char *key_bytes, + size_t key_length, + psa_algorithm_t alg, + psa_mac_operation_t *operation, + psa_status_t *status) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_bytes, key_length, &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_bytes, key_length, &key)); - *status = psa_mac_sign_setup( operation, key, alg ); + *status = psa_mac_sign_setup(operation, key, alg); /* Whether setup succeeded or failed, abort must succeed. */ - PSA_ASSERT( psa_mac_abort( operation ) ); + PSA_ASSERT(psa_mac_abort(operation)); /* If setup failed, reproduce the failure, so that the caller can * test the resulting state of the operation object. */ - if( *status != PSA_SUCCESS ) - { - TEST_EQUAL( psa_mac_sign_setup( operation, key, alg ), *status ); + if (*status != PSA_SUCCESS) { + TEST_EQUAL(psa_mac_sign_setup(operation, key, alg), *status); } - psa_destroy_key( key ); - return( 1 ); + psa_destroy_key(key); + return 1; exit: - psa_destroy_key( key ); - return( 0 ); + psa_destroy_key(key); + return 0; } -int exercise_cipher_setup( psa_key_type_t key_type, - const unsigned char *key_bytes, - size_t key_length, - psa_algorithm_t alg, - psa_cipher_operation_t *operation, - psa_status_t *status ) +int exercise_cipher_setup(psa_key_type_t key_type, + const unsigned char *key_bytes, + size_t key_length, + psa_algorithm_t alg, + psa_cipher_operation_t *operation, + psa_status_t *status) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_bytes, key_length, &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_bytes, key_length, &key)); - *status = psa_cipher_encrypt_setup( operation, key, alg ); + *status = psa_cipher_encrypt_setup(operation, key, alg); /* Whether setup succeeded or failed, abort must succeed. */ - PSA_ASSERT( psa_cipher_abort( operation ) ); + PSA_ASSERT(psa_cipher_abort(operation)); /* If setup failed, reproduce the failure, so that the caller can * test the resulting state of the operation object. */ - if( *status != PSA_SUCCESS ) - { - TEST_EQUAL( psa_cipher_encrypt_setup( operation, key, alg ), - *status ); + if (*status != PSA_SUCCESS) { + TEST_EQUAL(psa_cipher_encrypt_setup(operation, key, alg), + *status); } - psa_destroy_key( key ); - return( 1 ); + psa_destroy_key(key); + return 1; exit: - psa_destroy_key( key ); - return( 0 ); + psa_destroy_key(key); + return 0; } -static int test_operations_on_invalid_key( mbedtls_svc_key_id_t key ) +static int test_operations_on_invalid_key(mbedtls_svc_key_id_t key) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 1, 0x6964 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(1, 0x6964); uint8_t buffer[1]; size_t length; int ok = 0; - psa_set_key_id( &attributes, key_id ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, PSA_ALG_CTR ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_AES ); - TEST_EQUAL( psa_get_key_attributes( key, &attributes ), - PSA_ERROR_INVALID_HANDLE ); + psa_set_key_id(&attributes, key_id); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, PSA_ALG_CTR); + psa_set_key_type(&attributes, PSA_KEY_TYPE_AES); + TEST_EQUAL(psa_get_key_attributes(key, &attributes), + PSA_ERROR_INVALID_HANDLE); TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( psa_get_key_id( &attributes ) ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psa_get_key_id(&attributes)), 0); TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( psa_get_key_id( &attributes ) ), 0 ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_type( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_bits( &attributes ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(psa_get_key_id(&attributes)), 0); + TEST_EQUAL(psa_get_key_lifetime(&attributes), 0); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), 0); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); + TEST_EQUAL(psa_get_key_type(&attributes), 0); + TEST_EQUAL(psa_get_key_bits(&attributes), 0); - TEST_EQUAL( psa_export_key( key, buffer, sizeof( buffer ), &length ), - PSA_ERROR_INVALID_HANDLE ); - TEST_EQUAL( psa_export_public_key( key, - buffer, sizeof( buffer ), &length ), - PSA_ERROR_INVALID_HANDLE ); + TEST_EQUAL(psa_export_key(key, buffer, sizeof(buffer), &length), + PSA_ERROR_INVALID_HANDLE); + TEST_EQUAL(psa_export_public_key(key, + buffer, sizeof(buffer), &length), + PSA_ERROR_INVALID_HANDLE); ok = 1; @@ -267,34 +270,34 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - return( ok ); + return ok; } /* Assert that a key isn't reported as having a slot number. */ #if defined(MBEDTLS_PSA_CRYPTO_SE_C) -#define ASSERT_NO_SLOT_NUMBER( attributes ) \ +#define ASSERT_NO_SLOT_NUMBER(attributes) \ do \ { \ psa_key_slot_number_t ASSERT_NO_SLOT_NUMBER_slot_number; \ - TEST_EQUAL( psa_get_key_slot_number( \ - attributes, \ - &ASSERT_NO_SLOT_NUMBER_slot_number ), \ - PSA_ERROR_INVALID_ARGUMENT ); \ + TEST_EQUAL(psa_get_key_slot_number( \ + attributes, \ + &ASSERT_NO_SLOT_NUMBER_slot_number), \ + PSA_ERROR_INVALID_ARGUMENT); \ } \ - while( 0 ) + while (0) #else /* MBEDTLS_PSA_CRYPTO_SE_C */ -#define ASSERT_NO_SLOT_NUMBER( attributes ) \ - ( (void) 0 ) +#define ASSERT_NO_SLOT_NUMBER(attributes) \ + ((void) 0) #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ /* An overapproximation of the amount of storage needed for a key of the * given type and with the given content. The API doesn't make it easy * to find a good value for the size. The current implementation doesn't * care about the value anyway. */ -#define KEY_BITS_FROM_DATA( type, data ) \ - ( data )->len +#define KEY_BITS_FROM_DATA(type, data) \ + (data)->len typedef enum { IMPORT_KEY = 0, @@ -302,15 +305,13 @@ typedef enum { DERIVE_KEY = 2 } generate_method; -typedef enum -{ +typedef enum { DO_NOT_SET_LENGTHS = 0, SET_LENGTHS_BEFORE_NONCE = 1, SET_LENGTHS_AFTER_NONCE = 2 } set_lengths_method_t; -typedef enum -{ +typedef enum { USE_NULL_TAG = 0, USE_GIVEN_TAG = 1, } tag_usage_method_t; @@ -339,17 +340,17 @@ typedef enum * with normal length chunks. * \return int Zero on failure, non-zero on success. */ -static int aead_multipart_internal_func( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - int ad_part_len_arg, - data_t *input_data, - int data_part_len_arg, - set_lengths_method_t set_lengths_method, - data_t *expected_output, - int is_encrypt, - int do_zero_parts ) +static int aead_multipart_internal_func(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + int ad_part_len_arg, + data_t *input_data, + int data_part_len_arg, + set_lengths_method_t set_lengths_method, + data_t *expected_output, + int is_encrypt, + int do_zero_parts) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -378,238 +379,209 @@ static int aead_multipart_internal_func( int key_type_arg, data_t *key_data, int test_ok = 0; size_t part_count = 0; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - if( is_encrypt ) - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - else - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); - - tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg ); - - if( is_encrypt ) - { - /* Tag gets written at end of buffer. */ - output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, - ( input_data->len + - tag_length ) ); - data_true_size = input_data->len; + if (is_encrypt) { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + } else { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); } - else - { - output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, - ( input_data->len - - tag_length ) ); + + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); + + tag_length = PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg); + + if (is_encrypt) { + /* Tag gets written at end of buffer. */ + output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, + (input_data->len + + tag_length)); + data_true_size = input_data->len; + } else { + output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, + (input_data->len - + tag_length)); /* Do not want to attempt to decrypt tag. */ data_true_size = input_data->len - tag_length; } - ASSERT_ALLOC( output_data, output_size ); + ASSERT_ALLOC(output_data, output_size); - if( is_encrypt ) - { - final_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg ); - TEST_LE_U( final_output_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE ); - } - else - { - final_output_size = PSA_AEAD_VERIFY_OUTPUT_SIZE( key_type, alg ); - TEST_LE_U( final_output_size, PSA_AEAD_VERIFY_OUTPUT_MAX_SIZE ); + if (is_encrypt) { + final_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg); + TEST_LE_U(final_output_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE); + } else { + final_output_size = PSA_AEAD_VERIFY_OUTPUT_SIZE(key_type, alg); + TEST_LE_U(final_output_size, PSA_AEAD_VERIFY_OUTPUT_MAX_SIZE); } - ASSERT_ALLOC( final_data, final_output_size ); + ASSERT_ALLOC(final_data, final_output_size); - if( is_encrypt ) - status = psa_aead_encrypt_setup( &operation, key, alg ); - else - status = psa_aead_decrypt_setup( &operation, key, alg ); + if (is_encrypt) { + status = psa_aead_encrypt_setup(&operation, key, alg); + } else { + status = psa_aead_decrypt_setup(&operation, key, alg); + } /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - PSA_ASSERT( status ); + PSA_ASSERT(status); - if( set_lengths_method == DO_NOT_SET_LENGTHS ) - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); - else if( set_lengths_method == SET_LENGTHS_BEFORE_NONCE ) - { - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - data_true_size ) ); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); - } - else if( set_lengths_method == SET_LENGTHS_AFTER_NONCE ) - { - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + if (set_lengths_method == DO_NOT_SET_LENGTHS) { + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); + } else if (set_lengths_method == SET_LENGTHS_BEFORE_NONCE) { + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + data_true_size)); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); + } else if (set_lengths_method == SET_LENGTHS_AFTER_NONCE) { + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - data_true_size ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + data_true_size)); } - if( ad_part_len_arg != -1 ) - { + if (ad_part_len_arg != -1) { /* Pass additional data in parts */ ad_part_len = (size_t) ad_part_len_arg; - for( part_offset = 0, part_count = 0; + for (part_offset = 0, part_count = 0; part_offset < additional_data->len; - part_offset += part_length, part_count++ ) - { - if( do_zero_parts && ( part_count & 0x01 ) ) - { + part_offset += part_length, part_count++) { + if (do_zero_parts && (part_count & 0x01)) { part_length = 0; - } - else if( additional_data->len - part_offset < ad_part_len ) - { + } else if (additional_data->len - part_offset < ad_part_len) { part_length = additional_data->len - part_offset; - } - else - { + } else { part_length = ad_part_len; } - PSA_ASSERT( psa_aead_update_ad( &operation, - additional_data->x + part_offset, - part_length ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, + additional_data->x + part_offset, + part_length)); } - } - else - { + } else { /* Pass additional data in one go. */ - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); } - if( data_part_len_arg != -1 ) - { + if (data_part_len_arg != -1) { /* Pass data in parts */ - data_part_len = ( size_t ) data_part_len_arg; - part_data_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, - ( size_t ) data_part_len ); + data_part_len = (size_t) data_part_len_arg; + part_data_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, + (size_t) data_part_len); - ASSERT_ALLOC( part_data, part_data_size ); + ASSERT_ALLOC(part_data, part_data_size); - for( part_offset = 0, part_count = 0; + for (part_offset = 0, part_count = 0; part_offset < data_true_size; - part_offset += part_length, part_count++ ) - { - if( do_zero_parts && ( part_count & 0x01 ) ) - { + part_offset += part_length, part_count++) { + if (do_zero_parts && (part_count & 0x01)) { part_length = 0; - } - else if( ( data_true_size - part_offset ) < data_part_len ) - { - part_length = ( data_true_size - part_offset ); - } - else - { + } else if ((data_true_size - part_offset) < data_part_len) { + part_length = (data_true_size - part_offset); + } else { part_length = data_part_len; } - PSA_ASSERT( psa_aead_update( &operation, - ( input_data->x + part_offset ), - part_length, part_data, - part_data_size, - &output_part_length ) ); + PSA_ASSERT(psa_aead_update(&operation, + (input_data->x + part_offset), + part_length, part_data, + part_data_size, + &output_part_length)); - if( output_data && output_part_length ) - { - memcpy( ( output_data + output_length ), part_data, - output_part_length ); + if (output_data && output_part_length) { + memcpy((output_data + output_length), part_data, + output_part_length); } output_length += output_part_length; } - } - else - { + } else { /* Pass all data in one go. */ - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - data_true_size, output_data, - output_size, &output_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + data_true_size, output_data, + output_size, &output_length)); } - if( is_encrypt ) - PSA_ASSERT( psa_aead_finish( &operation, final_data, - final_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ) ); - else - { - PSA_ASSERT( psa_aead_verify( &operation, final_data, - final_output_size, - &output_part_length, - ( input_data->x + data_true_size ), - tag_length ) ); + if (is_encrypt) { + PSA_ASSERT(psa_aead_finish(&operation, final_data, + final_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size)); + } else { + PSA_ASSERT(psa_aead_verify(&operation, final_data, + final_output_size, + &output_part_length, + (input_data->x + data_true_size), + tag_length)); } - if( output_data && output_part_length ) - memcpy( ( output_data + output_length ), final_data, - output_part_length ); + if (output_data && output_part_length) { + memcpy((output_data + output_length), final_data, + output_part_length); + } output_length += output_part_length; /* For all currently defined algorithms, PSA_AEAD_xxx_OUTPUT_SIZE * should be exact.*/ - if( is_encrypt ) - { - TEST_EQUAL( tag_length, tag_size ); + if (is_encrypt) { + TEST_EQUAL(tag_length, tag_size); - if( output_data && tag_length ) - memcpy( ( output_data + output_length ), tag_buffer, - tag_length ); + if (output_data && tag_length) { + memcpy((output_data + output_length), tag_buffer, + tag_length); + } output_length += tag_length; - TEST_EQUAL( output_length, - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, alg, - input_data->len ) ); - TEST_LE_U( output_length, - PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); - } - else - { - TEST_EQUAL( output_length, - PSA_AEAD_DECRYPT_OUTPUT_SIZE( key_type, alg, - input_data->len ) ); - TEST_LE_U( output_length, - PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); + TEST_EQUAL(output_length, + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, + input_data->len)); + TEST_LE_U(output_length, + PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(input_data->len)); + } else { + TEST_EQUAL(output_length, + PSA_AEAD_DECRYPT_OUTPUT_SIZE(key_type, alg, + input_data->len)); + TEST_LE_U(output_length, + PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE(input_data->len)); } - ASSERT_COMPARE( expected_output->x, expected_output->len, - output_data, output_length ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + output_data, output_length); test_ok = 1; exit: - psa_destroy_key( key ); - psa_aead_abort( &operation ); - mbedtls_free( output_data ); - mbedtls_free( part_data ); - mbedtls_free( final_data ); - PSA_DONE( ); + psa_destroy_key(key); + psa_aead_abort(&operation); + mbedtls_free(output_data); + mbedtls_free(part_data); + mbedtls_free(final_data); + PSA_DONE(); - return( test_ok ); + return test_ok; } /*! @@ -627,13 +599,13 @@ exit: * with normal length chunks. * \return int Zero on failure, non-zero on success. */ -static int mac_multipart_internal_func( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *input_data, - int data_part_len_arg, - data_t *expected_output, - int is_verify, - int do_zero_parts ) +static int mac_multipart_internal_func(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *input_data, + int data_part_len_arg, + data_t *expected_output, + int is_verify, + int do_zero_parts) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -650,90 +622,80 @@ static int mac_multipart_internal_func( int key_type_arg, data_t *key_data, int test_ok = 0; size_t part_count = 0; - PSA_INIT( ); + PSA_INIT(); - if( is_verify ) - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - else - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); + if (is_verify) { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + } else { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + } - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - if( is_verify ) - status = psa_mac_verify_setup( &operation, key, alg ); - else - status = psa_mac_sign_setup( &operation, key, alg ); + if (is_verify) { + status = psa_mac_verify_setup(&operation, key, alg); + } else { + status = psa_mac_sign_setup(&operation, key, alg); + } - PSA_ASSERT( status ); + PSA_ASSERT(status); - if( data_part_len_arg != -1 ) - { + if (data_part_len_arg != -1) { /* Pass data in parts */ - data_part_len = ( size_t ) data_part_len_arg; + data_part_len = (size_t) data_part_len_arg; - for( part_offset = 0, part_count = 0; + for (part_offset = 0, part_count = 0; part_offset < input_data->len; - part_offset += part_length, part_count++ ) - { - if( do_zero_parts && ( part_count & 0x01 ) ) - { + part_offset += part_length, part_count++) { + if (do_zero_parts && (part_count & 0x01)) { part_length = 0; - } - else if( ( input_data->len - part_offset ) < data_part_len ) - { - part_length = ( input_data->len - part_offset ); - } - else - { + } else if ((input_data->len - part_offset) < data_part_len) { + part_length = (input_data->len - part_offset); + } else { part_length = data_part_len; } - PSA_ASSERT( psa_mac_update( &operation, - ( input_data->x + part_offset ), - part_length ) ); + PSA_ASSERT(psa_mac_update(&operation, + (input_data->x + part_offset), + part_length)); } - } - else - { + } else { /* Pass all data in one go. */ - PSA_ASSERT( psa_mac_update( &operation, input_data->x, - input_data->len ) ); + PSA_ASSERT(psa_mac_update(&operation, input_data->x, + input_data->len)); } - if( is_verify ) - { - PSA_ASSERT( psa_mac_verify_finish( &operation, expected_output->x, - expected_output->len ) ); - } - else - { - PSA_ASSERT( psa_mac_sign_finish( &operation, mac, - PSA_MAC_MAX_SIZE, &mac_len ) ); + if (is_verify) { + PSA_ASSERT(psa_mac_verify_finish(&operation, expected_output->x, + expected_output->len)); + } else { + PSA_ASSERT(psa_mac_sign_finish(&operation, mac, + PSA_MAC_MAX_SIZE, &mac_len)); - ASSERT_COMPARE( expected_output->x, expected_output->len, - mac, mac_len ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + mac, mac_len); } test_ok = 1; exit: - psa_destroy_key( key ); - psa_mac_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + psa_mac_abort(&operation); + PSA_DONE(); - return( test_ok ); + return test_ok; } #if defined(PSA_WANT_ALG_JPAKE) -static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, - psa_pake_operation_t *server, - psa_pake_operation_t *client, - int client_input_first, - int round, int inject_error ) +static void ecjpake_do_round(psa_algorithm_t alg, unsigned int primitive, + psa_pake_operation_t *server, + psa_pake_operation_t *client, + int client_input_first, + int round, int inject_error) { unsigned char *buffer0 = NULL, *buffer1 = NULL; size_t buffer_length = ( @@ -766,52 +728,50 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, psa_status_t expected_status = PSA_SUCCESS; psa_status_t status; - ASSERT_ALLOC( buffer0, buffer_length ); - ASSERT_ALLOC( buffer1, buffer_length ); + ASSERT_ALLOC(buffer0, buffer_length); + ASSERT_ALLOC(buffer1, buffer_length); - switch( round ) - { + switch (round) { case 1: /* Server first round Output */ - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g1_len ) ); - TEST_EQUAL( s_g1_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g1_len)); + TEST_EQUAL(s_g1_len, expected_size_key_share); s_g1_off = buffer0_off; buffer0_off += s_g1_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pk_len ) ); - TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pk_len)); + TEST_EQUAL(s_x1_pk_len, expected_size_zk_public); s_x1_pk_off = buffer0_off; buffer0_off += s_x1_pk_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pr_len ) ); - TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pr_len)); + TEST_LE_U(s_x1_pr_len, max_expected_size_zk_proof); s_x1_pr_off = buffer0_off; buffer0_off += s_x1_pr_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g2_len ) ); - TEST_EQUAL( s_g2_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g2_len)); + TEST_EQUAL(s_g2_len, expected_size_key_share); s_g2_off = buffer0_off; buffer0_off += s_g2_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pk_len ) ); - TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pk_len)); + TEST_EQUAL(s_x2_pk_len, expected_size_zk_public); s_x2_pk_off = buffer0_off; buffer0_off += s_x2_pk_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pr_len ) ); - TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pr_len)); + TEST_LE_U(s_x2_pr_len, max_expected_size_zk_proof); s_x2_pr_off = buffer0_off; buffer0_off += s_x2_pr_len; - if( inject_error == 1 ) - { + if (inject_error == 1) { buffer0[s_x1_pr_off + 8] ^= 1; buffer0[s_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; @@ -825,297 +785,246 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, * as an error. */ - if( client_input_first == 1 ) - { + if (client_input_first == 1) { /* Client first round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 1 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 1) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } } /* Client first round Output */ - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g1_len ) ); - TEST_EQUAL( c_g1_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g1_len)); + TEST_EQUAL(c_g1_len, expected_size_key_share); c_g1_off = buffer1_off; buffer1_off += c_g1_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pk_len ) ); - TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pk_len)); + TEST_EQUAL(c_x1_pk_len, expected_size_zk_public); c_x1_pk_off = buffer1_off; buffer1_off += c_x1_pk_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pr_len ) ); - TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pr_len)); + TEST_LE_U(c_x1_pr_len, max_expected_size_zk_proof); c_x1_pr_off = buffer1_off; buffer1_off += c_x1_pr_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g2_len ) ); - TEST_EQUAL( c_g2_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g2_len)); + TEST_EQUAL(c_g2_len, expected_size_key_share); c_g2_off = buffer1_off; buffer1_off += c_g2_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pk_len ) ); - TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pk_len)); + TEST_EQUAL(c_x2_pk_len, expected_size_zk_public); c_x2_pk_off = buffer1_off; buffer1_off += c_x2_pk_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pr_len ) ); - TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pr_len)); + TEST_LE_U(c_x2_pr_len, max_expected_size_zk_proof); c_x2_pr_off = buffer1_off; buffer1_off += c_x2_pr_len; - if( client_input_first == 0 ) - { + if (client_input_first == 0) { /* Client first round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ); - if( inject_error == 1 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len); + if (inject_error == 1 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 1 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 1) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } } - if( inject_error == 2 ) - { + if (inject_error == 2) { buffer1[c_x1_pr_off + 12] ^= 1; buffer1[c_x2_pr_off + 7] ^= 1; expected_status = PSA_ERROR_DATA_INVALID; } /* Server first round Input */ - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g1_off, c_g1_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x1_pk_off, c_x1_pk_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x1_pr_off, c_x1_pr_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g2_off, c_g2_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2_pk_off, c_x2_pk_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2_pr_off, c_x2_pr_len ); - if( inject_error == 2 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len); + if (inject_error == 2 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 2 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 2) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } break; @@ -1123,204 +1032,178 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, /* Server second round Output */ buffer0_off = 0; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_a_len ) ); - TEST_EQUAL( s_a_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_a_len)); + TEST_EQUAL(s_a_len, expected_size_key_share); s_a_off = buffer0_off; buffer0_off += s_a_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pk_len ) ); - TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pk_len)); + TEST_EQUAL(s_x2s_pk_len, expected_size_zk_public); s_x2s_pk_off = buffer0_off; buffer0_off += s_x2s_pk_len; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pr_len ) ); - TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pr_len)); + TEST_LE_U(s_x2s_pr_len, max_expected_size_zk_proof); s_x2s_pr_off = buffer0_off; buffer0_off += s_x2s_pr_len; - if( inject_error == 3 ) - { + if (inject_error == 3) { buffer0[s_x2s_pk_off + 12] += 0x33; expected_status = PSA_ERROR_DATA_INVALID; } - if( client_input_first == 1 ) - { + if (client_input_first == 1) { /* Client second round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 3 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 3) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } } /* Client second round Output */ buffer1_off = 0; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_a_len ) ); - TEST_EQUAL( c_a_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_a_len)); + TEST_EQUAL(c_a_len, expected_size_key_share); c_a_off = buffer1_off; buffer1_off += c_a_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pk_len ) ); - TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pk_len)); + TEST_EQUAL(c_x2s_pk_len, expected_size_zk_public); c_x2s_pk_off = buffer1_off; buffer1_off += c_x2s_pk_len; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pr_len ) ); - TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pr_len)); + TEST_LE_U(c_x2s_pr_len, max_expected_size_zk_proof); c_x2s_pr_off = buffer1_off; buffer1_off += c_x2s_pr_len; - if( client_input_first == 0 ) - { + if (client_input_first == 0) { /* Client second round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ); - if( inject_error == 3 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len); + if (inject_error == 3 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 3 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 3) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } } - if( inject_error == 4 ) - { + if (inject_error == 4) { buffer1[c_x2s_pk_off + 7] += 0x28; expected_status = PSA_ERROR_DATA_INVALID; } /* Server second round Input */ - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_a_off, c_a_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len); + if (inject_error == 4 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2s_pk_off, c_x2s_pk_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len); + if (inject_error == 4 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2s_pr_off, c_x2s_pr_len ); - if( inject_error == 4 && status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_status ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len); + if (inject_error == 4 && status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); break; - } - else - { - TEST_EQUAL( status, PSA_SUCCESS ); + } else { + TEST_EQUAL(status, PSA_SUCCESS); } /* Error didn't trigger, make test fail */ - if( inject_error == 4 ) - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if (inject_error == 4) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); + } break; } exit: - mbedtls_free( buffer0 ); - mbedtls_free( buffer1 ); + mbedtls_free(buffer0); + mbedtls_free(buffer1); } #endif /* PSA_WANT_ALG_JPAKE */ -typedef enum -{ +typedef enum { INJECT_ERR_NONE = 0, INJECT_ERR_UNINITIALIZED_ACCESS, INJECT_ERR_DUPLICATE_SETUP, @@ -1345,7 +1228,7 @@ typedef enum */ /* BEGIN_CASE */ -void static_checks( ) +void static_checks() { size_t max_truncated_mac_size = PSA_ALG_MAC_TRUNCATION_MASK >> PSA_MAC_TRUNCATION_OFFSET; @@ -1353,14 +1236,14 @@ void static_checks( ) /* Check that the length for a truncated MAC always fits in the algorithm * encoding. The shifted mask is the maximum truncated value. The * untruncated algorithm may be one byte larger. */ - TEST_LE_U( PSA_MAC_MAX_SIZE, 1 + max_truncated_mac_size ); + TEST_LE_U(PSA_MAC_MAX_SIZE, 1 + max_truncated_mac_size); } /* END_CASE */ /* BEGIN_CASE */ -void import_with_policy( int type_arg, - int usage_arg, int alg_arg, - int expected_status_arg ) +void import_with_policy(int type_arg, + int usage_arg, int alg_arg, + int expected_status_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1369,48 +1252,49 @@ void import_with_policy( int type_arg, psa_key_usage_t usage = usage_arg; psa_algorithm_t alg = alg_arg; psa_status_t expected_status = expected_status_arg; - const uint8_t key_material[16] = {0}; + const uint8_t key_material[16] = { 0 }; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_type( &attributes, type ); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type(&attributes, type); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); - status = psa_import_key( &attributes, - key_material, sizeof( key_material ), - &key ); - TEST_EQUAL( status, expected_status ); - if( status != PSA_SUCCESS ) + status = psa_import_key(&attributes, + key_material, sizeof(key_material), + &key); + TEST_EQUAL(status, expected_status); + if (status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), type ); - TEST_EQUAL( psa_get_key_usage_flags( &got_attributes ), - mbedtls_test_update_key_usage_flags( usage ) ); - TEST_EQUAL( psa_get_key_algorithm( &got_attributes ), alg ); - ASSERT_NO_SLOT_NUMBER( &got_attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), type); + TEST_EQUAL(psa_get_key_usage_flags(&got_attributes), + mbedtls_test_update_key_usage_flags(usage)); + TEST_EQUAL(psa_get_key_algorithm(&got_attributes), alg); + ASSERT_NO_SLOT_NUMBER(&got_attributes); - PSA_ASSERT( psa_destroy_key( key ) ); - test_operations_on_invalid_key( key ); + PSA_ASSERT(psa_destroy_key(key)); + test_operations_on_invalid_key(key); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void import_with_data( data_t *data, int type_arg, - int attr_bits_arg, - int expected_status_arg ) +void import_with_data(data_t *data, int type_arg, + int attr_bits_arg, + int expected_status_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1420,41 +1304,43 @@ void import_with_data( data_t *data, int type_arg, psa_status_t expected_status = expected_status_arg; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, attr_bits ); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, attr_bits); - status = psa_import_key( &attributes, data->x, data->len, &key ); - TEST_EQUAL( status, expected_status ); - if( status != PSA_SUCCESS ) + status = psa_import_key(&attributes, data->x, data->len, &key); + TEST_EQUAL(status, expected_status); + if (status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), type ); - if( attr_bits != 0 ) - TEST_EQUAL( attr_bits, psa_get_key_bits( &got_attributes ) ); - ASSERT_NO_SLOT_NUMBER( &got_attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), type); + if (attr_bits != 0) { + TEST_EQUAL(attr_bits, psa_get_key_bits(&got_attributes)); + } + ASSERT_NO_SLOT_NUMBER(&got_attributes); - PSA_ASSERT( psa_destroy_key( key ) ); - test_operations_on_invalid_key( key ); + PSA_ASSERT(psa_destroy_key(key)); + test_operations_on_invalid_key(key); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ /* Construct and attempt to import a large unstructured key. */ -void import_large_key( int type_arg, int byte_size_arg, - int expected_status_arg ) +void import_large_key(int type_arg, int byte_size_arg, + int expected_status_arg) { psa_key_type_t type = type_arg; size_t byte_size = byte_size_arg; @@ -1468,31 +1354,32 @@ void import_large_key( int type_arg, int byte_size_arg, /* Skip the test case if the target running the test cannot * accommodate large keys due to heap size constraints */ - ASSERT_ALLOC_WEAK( buffer, buffer_size ); - memset( buffer, 'K', byte_size ); + ASSERT_ALLOC_WEAK(buffer, buffer_size); + memset(buffer, 'K', byte_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Try importing the key */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, type ); - status = psa_import_key( &attributes, buffer, byte_size, &key ); - TEST_ASSUME( status != PSA_ERROR_INSUFFICIENT_MEMORY ); - TEST_EQUAL( status, expected_status ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, type); + status = psa_import_key(&attributes, buffer, byte_size, &key); + TEST_ASSUME(status != PSA_ERROR_INSUFFICIENT_MEMORY); + TEST_EQUAL(status, expected_status); - if( status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), - PSA_BYTES_TO_BITS( byte_size ) ); - ASSERT_NO_SLOT_NUMBER( &attributes ); - memset( buffer, 0, byte_size + 1 ); - PSA_ASSERT( psa_export_key( key, buffer, byte_size, &n ) ); - for( n = 0; n < byte_size; n++ ) - TEST_EQUAL( buffer[n], 'K' ); - for( n = byte_size; n < buffer_size; n++ ) - TEST_EQUAL( buffer[n], 0 ); + if (status == PSA_SUCCESS) { + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_bits(&attributes), + PSA_BYTES_TO_BITS(byte_size)); + ASSERT_NO_SLOT_NUMBER(&attributes); + memset(buffer, 0, byte_size + 1); + PSA_ASSERT(psa_export_key(key, buffer, byte_size, &n)); + for (n = 0; n < byte_size; n++) { + TEST_EQUAL(buffer[n], 'K'); + } + for (n = byte_size; n < buffer_size; n++) { + TEST_EQUAL(buffer[n], 0); + } } exit: @@ -1500,11 +1387,11 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( buffer ); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(buffer); } /* END_CASE */ @@ -1512,7 +1399,7 @@ exit: /* Import an RSA key with a valid structure (but not valid numbers * inside, beyond having sensible size and parity). This is expected to * fail for large keys. */ -void import_rsa_made_up( int bits_arg, int keypair, int expected_status_arg ) +void import_rsa_made_up(int bits_arg, int keypair, int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; size_t bits = bits_arg; @@ -1521,44 +1408,45 @@ void import_rsa_made_up( int bits_arg, int keypair, int expected_status_arg ) psa_key_type_t type = keypair ? PSA_KEY_TYPE_RSA_KEY_PAIR : PSA_KEY_TYPE_RSA_PUBLIC_KEY; size_t buffer_size = /* Slight overapproximations */ - keypair ? bits * 9 / 16 + 80 : bits / 8 + 20; + keypair ? bits * 9 / 16 + 80 : bits / 8 + 20; unsigned char *buffer = NULL; unsigned char *p; int ret; size_t length; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_ALLOC( buffer, buffer_size ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_ALLOC(buffer, buffer_size); - TEST_ASSERT( ( ret = construct_fake_rsa_key( buffer, buffer_size, &p, - bits, keypair ) ) >= 0 ); + TEST_ASSERT((ret = construct_fake_rsa_key(buffer, buffer_size, &p, + bits, keypair)) >= 0); length = ret; /* Try importing the key */ - psa_set_key_type( &attributes, type ); - status = psa_import_key( &attributes, p, length, &key ); - TEST_EQUAL( status, expected_status ); + psa_set_key_type(&attributes, type); + status = psa_import_key(&attributes, p, length, &key); + TEST_EQUAL(status, expected_status); - if( status == PSA_SUCCESS ) - PSA_ASSERT( psa_destroy_key( key ) ); + if (status == PSA_SUCCESS) { + PSA_ASSERT(psa_destroy_key(key)); + } exit: - mbedtls_free( buffer ); - PSA_DONE( ); + mbedtls_free(buffer); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void import_export( data_t *data, - int type_arg, - int usage_arg, int alg_arg, - int lifetime_arg, - int expected_bits, - int export_size_delta, - int expected_export_status_arg, - /*whether reexport must give the original input exactly*/ - int canonical_input ) +void import_export(data_t *data, + int type_arg, + int usage_arg, int alg_arg, + int lifetime_arg, + int expected_bits, + int export_size_delta, + int expected_export_status_arg, + /*whether reexport must give the original input exactly*/ + int canonical_input) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t type = type_arg; @@ -1575,40 +1463,40 @@ void import_export( data_t *data, psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; export_size = (ptrdiff_t) data->len + export_size_delta; - ASSERT_ALLOC( exported, export_size ); - if( ! canonical_input ) - ASSERT_ALLOC( reexported, export_size ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(exported, export_size); + if (!canonical_input) { + ASSERT_ALLOC(reexported, export_size); + } + PSA_ASSERT(psa_crypto_init()); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, usage_arg ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, usage_arg); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); /* Import the key */ - PSA_ASSERT( psa_import_key( &attributes, data->x, data->len, &key ) ); + PSA_ASSERT(psa_import_key(&attributes, data->x, data->len, &key)); /* Test the key information */ - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &got_attributes ), (size_t) expected_bits ); - ASSERT_NO_SLOT_NUMBER( &got_attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), type); + TEST_EQUAL(psa_get_key_bits(&got_attributes), (size_t) expected_bits); + ASSERT_NO_SLOT_NUMBER(&got_attributes); /* Export the key */ - status = psa_export_key( key, exported, export_size, &exported_length ); - TEST_EQUAL( status, expected_export_status ); + status = psa_export_key(key, exported, export_size, &exported_length); + TEST_EQUAL(status, expected_export_status); /* The exported length must be set by psa_export_key() to a value between 0 * and export_size. On errors, the exported length must be 0. */ - TEST_ASSERT( exported_length != INVALID_EXPORT_LENGTH ); - TEST_ASSERT( status == PSA_SUCCESS || exported_length == 0 ); - TEST_LE_U( exported_length, export_size ); + TEST_ASSERT(exported_length != INVALID_EXPORT_LENGTH); + TEST_ASSERT(status == PSA_SUCCESS || exported_length == 0); + TEST_LE_U(exported_length, export_size); - TEST_ASSERT( mem_is_char( exported + exported_length, 0, - export_size - exported_length ) ); - if( status != PSA_SUCCESS ) - { - TEST_EQUAL( exported_length, 0 ); + TEST_ASSERT(mem_is_char(exported + exported_length, 0, + export_size - exported_length)); + if (status != PSA_SUCCESS) { + TEST_EQUAL(exported_length, 0); goto destroy; } @@ -1616,58 +1504,57 @@ void import_export( data_t *data, * this validates the canonical representations. For canonical inputs, * this doesn't directly validate the implementation, but it still helps * by cross-validating the test data with the sanity check code. */ - if( !psa_key_lifetime_is_external( lifetime ) ) - { - if( ! mbedtls_test_psa_exercise_key( key, usage_arg, 0 ) ) + if (!psa_key_lifetime_is_external(lifetime)) { + if (!mbedtls_test_psa_exercise_key(key, usage_arg, 0)) { goto exit; + } } - if( canonical_input ) - ASSERT_COMPARE( data->x, data->len, exported, exported_length ); - else - { + if (canonical_input) { + ASSERT_COMPARE(data->x, data->len, exported, exported_length); + } else { mbedtls_svc_key_id_t key2 = MBEDTLS_SVC_KEY_ID_INIT; - PSA_ASSERT( psa_import_key( &attributes, exported, exported_length, - &key2 ) ); - PSA_ASSERT( psa_export_key( key2, - reexported, - export_size, - &reexported_length ) ); - ASSERT_COMPARE( exported, exported_length, - reexported, reexported_length ); - PSA_ASSERT( psa_destroy_key( key2 ) ); + PSA_ASSERT(psa_import_key(&attributes, exported, exported_length, + &key2)); + PSA_ASSERT(psa_export_key(key2, + reexported, + export_size, + &reexported_length)); + ASSERT_COMPARE(exported, exported_length, + reexported, reexported_length); + PSA_ASSERT(psa_destroy_key(key2)); } - TEST_LE_U( exported_length, - PSA_EXPORT_KEY_OUTPUT_SIZE( type, - psa_get_key_bits( &got_attributes ) ) ); - TEST_LE_U( exported_length, PSA_EXPORT_KEY_PAIR_MAX_SIZE ); + TEST_LE_U(exported_length, + PSA_EXPORT_KEY_OUTPUT_SIZE(type, + psa_get_key_bits(&got_attributes))); + TEST_LE_U(exported_length, PSA_EXPORT_KEY_PAIR_MAX_SIZE); destroy: /* Destroy the key */ - PSA_ASSERT( psa_destroy_key( key ) ); - test_operations_on_invalid_key( key ); + PSA_ASSERT(psa_destroy_key(key)); + test_operations_on_invalid_key(key); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); - psa_destroy_key( key ) ; - mbedtls_free( exported ); - mbedtls_free( reexported ); - PSA_DONE( ); + psa_reset_key_attributes(&got_attributes); + psa_destroy_key(key); + mbedtls_free(exported); + mbedtls_free(reexported); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void import_export_public_key( data_t *data, - int type_arg, // key pair or public key - int alg_arg, - int lifetime_arg, - int export_size_delta, - int expected_export_status_arg, - data_t *expected_public_key ) +void import_export_public_key(data_t *data, + int type_arg, // key pair or public key + int alg_arg, + int lifetime_arg, + int export_size_delta, + int expected_export_status_arg, + data_t *expected_public_key) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t type = type_arg; @@ -1680,103 +1567,103 @@ void import_export_public_key( data_t *data, size_t exported_length = INVALID_EXPORT_LENGTH; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); /* Import the key */ - PSA_ASSERT( psa_import_key( &attributes, data->x, data->len, &key ) ); + PSA_ASSERT(psa_import_key(&attributes, data->x, data->len, &key)); /* Export the public key */ - ASSERT_ALLOC( exported, export_size ); - status = psa_export_public_key( key, - exported, export_size, - &exported_length ); - TEST_EQUAL( status, expected_export_status ); - if( status == PSA_SUCCESS ) - { - psa_key_type_t public_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( type ); + ASSERT_ALLOC(exported, export_size); + status = psa_export_public_key(key, + exported, export_size, + &exported_length); + TEST_EQUAL(status, expected_export_status); + if (status == PSA_SUCCESS) { + psa_key_type_t public_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type); size_t bits; - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - bits = psa_get_key_bits( &attributes ); - TEST_LE_U( expected_public_key->len, - PSA_EXPORT_KEY_OUTPUT_SIZE( public_type, bits ) ); - TEST_LE_U( expected_public_key->len, - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( public_type, bits ) ); - TEST_LE_U( expected_public_key->len, - PSA_EXPORT_PUBLIC_KEY_MAX_SIZE ); - ASSERT_COMPARE( expected_public_key->x, expected_public_key->len, - exported, exported_length ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + bits = psa_get_key_bits(&attributes); + TEST_LE_U(expected_public_key->len, + PSA_EXPORT_KEY_OUTPUT_SIZE(public_type, bits)); + TEST_LE_U(expected_public_key->len, + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(public_type, bits)); + TEST_LE_U(expected_public_key->len, + PSA_EXPORT_PUBLIC_KEY_MAX_SIZE); + ASSERT_COMPARE(expected_public_key->x, expected_public_key->len, + exported, exported_length); } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( exported ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(exported); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void import_and_exercise_key( data_t *data, - int type_arg, - int bits_arg, - int alg_arg ) +void import_and_exercise_key(data_t *data, + int type_arg, + int bits_arg, + int alg_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t type = type_arg; size_t bits = bits_arg; psa_algorithm_t alg = alg_arg; - psa_key_usage_t usage = mbedtls_test_psa_usage_to_exercise( type, alg ); + psa_key_usage_t usage = mbedtls_test_psa_usage_to_exercise(type, alg); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); /* Import the key */ - PSA_ASSERT( psa_import_key( &attributes, data->x, data->len, &key ) ); + PSA_ASSERT(psa_import_key(&attributes, data->x, data->len, &key)); /* Test the key information */ - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &got_attributes ), bits ); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), type); + TEST_EQUAL(psa_get_key_bits(&got_attributes), bits); /* Do something with the key according to its type and permitted usage. */ - if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) ) + if (!mbedtls_test_psa_exercise_key(key, usage, alg)) { goto exit; + } - PSA_ASSERT( psa_destroy_key( key ) ); - test_operations_on_invalid_key( key ); + PSA_ASSERT(psa_destroy_key(key)); + test_operations_on_invalid_key(key); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void effective_key_attributes( int type_arg, int expected_type_arg, - int bits_arg, int expected_bits_arg, - int usage_arg, int expected_usage_arg, - int alg_arg, int expected_alg_arg ) +void effective_key_attributes(int type_arg, int expected_type_arg, + int bits_arg, int expected_bits_arg, + int usage_arg, int expected_usage_arg, + int alg_arg, int expected_alg_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = type_arg; @@ -1789,89 +1676,89 @@ void effective_key_attributes( int type_arg, int expected_type_arg, psa_key_usage_t expected_usage = expected_usage_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, bits ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, bits); - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); - psa_reset_key_attributes( &attributes ); + PSA_ASSERT(psa_generate_key(&attributes, &key)); + psa_reset_key_attributes(&attributes); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), expected_key_type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), expected_bits ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), expected_usage ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), expected_alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), expected_key_type); + TEST_EQUAL(psa_get_key_bits(&attributes), expected_bits); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), expected_usage); + TEST_EQUAL(psa_get_key_algorithm(&attributes), expected_alg); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void check_key_policy( int type_arg, int bits_arg, - int usage_arg, int alg_arg ) +void check_key_policy(int type_arg, int bits_arg, + int usage_arg, int alg_arg) { - test_effective_key_attributes( type_arg, type_arg, bits_arg, bits_arg, - usage_arg, - mbedtls_test_update_key_usage_flags( usage_arg ), - alg_arg, alg_arg ); + test_effective_key_attributes(type_arg, type_arg, bits_arg, bits_arg, + usage_arg, + mbedtls_test_update_key_usage_flags(usage_arg), + alg_arg, alg_arg); goto exit; } /* END_CASE */ /* BEGIN_CASE */ -void key_attributes_init( ) +void key_attributes_init() { /* Test each valid way of initializing the object, except for `= {0}`, as * Clang 5 complains when `-Wmissing-field-initializers` is used, even * though it's OK by the C standard. We could test for this, but we'd need * to suppress the Clang warning for the test. */ - psa_key_attributes_t func = psa_key_attributes_init( ); + psa_key_attributes_t func = psa_key_attributes_init(); psa_key_attributes_t init = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t zero; - memset( &zero, 0, sizeof( zero ) ); + memset(&zero, 0, sizeof(zero)); - TEST_EQUAL( psa_get_key_lifetime( &func ), PSA_KEY_LIFETIME_VOLATILE ); - TEST_EQUAL( psa_get_key_lifetime( &init ), PSA_KEY_LIFETIME_VOLATILE ); - TEST_EQUAL( psa_get_key_lifetime( &zero ), PSA_KEY_LIFETIME_VOLATILE ); + TEST_EQUAL(psa_get_key_lifetime(&func), PSA_KEY_LIFETIME_VOLATILE); + TEST_EQUAL(psa_get_key_lifetime(&init), PSA_KEY_LIFETIME_VOLATILE); + TEST_EQUAL(psa_get_key_lifetime(&zero), PSA_KEY_LIFETIME_VOLATILE); - TEST_EQUAL( psa_get_key_type( &func ), 0 ); - TEST_EQUAL( psa_get_key_type( &init ), 0 ); - TEST_EQUAL( psa_get_key_type( &zero ), 0 ); + TEST_EQUAL(psa_get_key_type(&func), 0); + TEST_EQUAL(psa_get_key_type(&init), 0); + TEST_EQUAL(psa_get_key_type(&zero), 0); - TEST_EQUAL( psa_get_key_bits( &func ), 0 ); - TEST_EQUAL( psa_get_key_bits( &init ), 0 ); - TEST_EQUAL( psa_get_key_bits( &zero ), 0 ); + TEST_EQUAL(psa_get_key_bits(&func), 0); + TEST_EQUAL(psa_get_key_bits(&init), 0); + TEST_EQUAL(psa_get_key_bits(&zero), 0); - TEST_EQUAL( psa_get_key_usage_flags( &func ), 0 ); - TEST_EQUAL( psa_get_key_usage_flags( &init ), 0 ); - TEST_EQUAL( psa_get_key_usage_flags( &zero ), 0 ); + TEST_EQUAL(psa_get_key_usage_flags(&func), 0); + TEST_EQUAL(psa_get_key_usage_flags(&init), 0); + TEST_EQUAL(psa_get_key_usage_flags(&zero), 0); - TEST_EQUAL( psa_get_key_algorithm( &func ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &init ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &zero ), 0 ); + TEST_EQUAL(psa_get_key_algorithm(&func), 0); + TEST_EQUAL(psa_get_key_algorithm(&init), 0); + TEST_EQUAL(psa_get_key_algorithm(&zero), 0); } /* END_CASE */ /* BEGIN_CASE */ -void mac_key_policy( int policy_usage_arg, - int policy_alg_arg, - int key_type_arg, - data_t *key_data, - int exercise_alg_arg, - int expected_status_sign_arg, - int expected_status_verify_arg ) +void mac_key_policy(int policy_usage_arg, + int policy_alg_arg, + int key_type_arg, + data_t *key_data, + int exercise_alg_arg, + int expected_status_sign_arg, + int expected_status_verify_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1885,99 +1772,93 @@ void mac_key_policy( int policy_usage_arg, psa_status_t expected_status_verify = expected_status_verify_arg; unsigned char mac[PSA_MAC_MAX_SIZE]; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - mbedtls_test_update_key_usage_flags( policy_usage ) ); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + mbedtls_test_update_key_usage_flags(policy_usage)); - status = psa_mac_sign_setup( &operation, key, exercise_alg ); - TEST_EQUAL( status, expected_status_sign ); + status = psa_mac_sign_setup(&operation, key, exercise_alg); + TEST_EQUAL(status, expected_status_sign); /* Calculate the MAC, one-shot case. */ - uint8_t input[128] = {0}; + uint8_t input[128] = { 0 }; size_t mac_len; - TEST_EQUAL( psa_mac_compute( key, exercise_alg, - input, 128, - mac, PSA_MAC_MAX_SIZE, &mac_len ), - expected_status_sign ); + TEST_EQUAL(psa_mac_compute(key, exercise_alg, + input, 128, + mac, PSA_MAC_MAX_SIZE, &mac_len), + expected_status_sign); /* Calculate the MAC, multi-part case. */ - PSA_ASSERT( psa_mac_abort( &operation ) ); - status = psa_mac_sign_setup( &operation, key, exercise_alg ); - if( status == PSA_SUCCESS ) - { - status = psa_mac_update( &operation, input, 128 ); - if( status == PSA_SUCCESS ) - TEST_EQUAL( psa_mac_sign_finish( &operation, mac, PSA_MAC_MAX_SIZE, - &mac_len ), - expected_status_sign ); - else - TEST_EQUAL( status, expected_status_sign ); + PSA_ASSERT(psa_mac_abort(&operation)); + status = psa_mac_sign_setup(&operation, key, exercise_alg); + if (status == PSA_SUCCESS) { + status = psa_mac_update(&operation, input, 128); + if (status == PSA_SUCCESS) { + TEST_EQUAL(psa_mac_sign_finish(&operation, mac, PSA_MAC_MAX_SIZE, + &mac_len), + expected_status_sign); + } else { + TEST_EQUAL(status, expected_status_sign); + } + } else { + TEST_EQUAL(status, expected_status_sign); } - else - { - TEST_EQUAL( status, expected_status_sign ); - } - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_abort(&operation)); /* Verify correct MAC, one-shot case. */ - status = psa_mac_verify( key, exercise_alg, input, 128, - mac, mac_len ); + status = psa_mac_verify(key, exercise_alg, input, 128, + mac, mac_len); - if( expected_status_sign != PSA_SUCCESS && expected_status_verify == PSA_SUCCESS ) - TEST_EQUAL( status, PSA_ERROR_INVALID_SIGNATURE ); - else - TEST_EQUAL( status, expected_status_verify ); + if (expected_status_sign != PSA_SUCCESS && expected_status_verify == PSA_SUCCESS) { + TEST_EQUAL(status, PSA_ERROR_INVALID_SIGNATURE); + } else { + TEST_EQUAL(status, expected_status_verify); + } /* Verify correct MAC, multi-part case. */ - status = psa_mac_verify_setup( &operation, key, exercise_alg ); - if( status == PSA_SUCCESS ) - { - status = psa_mac_update( &operation, input, 128 ); - if( status == PSA_SUCCESS ) - { - status = psa_mac_verify_finish( &operation, mac, mac_len ); - if( expected_status_sign != PSA_SUCCESS && expected_status_verify == PSA_SUCCESS ) - TEST_EQUAL( status, PSA_ERROR_INVALID_SIGNATURE ); - else - TEST_EQUAL( status, expected_status_verify ); + status = psa_mac_verify_setup(&operation, key, exercise_alg); + if (status == PSA_SUCCESS) { + status = psa_mac_update(&operation, input, 128); + if (status == PSA_SUCCESS) { + status = psa_mac_verify_finish(&operation, mac, mac_len); + if (expected_status_sign != PSA_SUCCESS && expected_status_verify == PSA_SUCCESS) { + TEST_EQUAL(status, PSA_ERROR_INVALID_SIGNATURE); + } else { + TEST_EQUAL(status, expected_status_verify); + } + } else { + TEST_EQUAL(status, expected_status_verify); } - else - { - TEST_EQUAL( status, expected_status_verify ); - } - } - else - { - TEST_EQUAL( status, expected_status_verify ); + } else { + TEST_EQUAL(status, expected_status_verify); } - psa_mac_abort( &operation ); + psa_mac_abort(&operation); - memset( mac, 0, sizeof( mac ) ); - status = psa_mac_verify_setup( &operation, key, exercise_alg ); - TEST_EQUAL( status, expected_status_verify ); + memset(mac, 0, sizeof(mac)); + status = psa_mac_verify_setup(&operation, key, exercise_alg); + TEST_EQUAL(status, expected_status_verify); exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_key_policy( int policy_usage_arg, - int policy_alg, - int key_type, - data_t *key_data, - int exercise_alg ) +void cipher_key_policy(int policy_usage_arg, + int policy_alg, + int key_type, + data_t *key_data, + int exercise_alg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1990,81 +1871,85 @@ void cipher_key_policy( int policy_usage_arg, uint8_t *input = NULL; psa_status_t status; - input_buffer_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH( exercise_alg ); - output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, exercise_alg, - input_buffer_size ); + input_buffer_size = PSA_BLOCK_CIPHER_BLOCK_LENGTH(exercise_alg); + output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, exercise_alg, + input_buffer_size); - ASSERT_ALLOC( input, input_buffer_size ); - ASSERT_ALLOC( output, output_buffer_size ); + ASSERT_ALLOC(input, input_buffer_size); + ASSERT_ALLOC(output, output_buffer_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Check if no key usage flag implication is done */ - TEST_EQUAL( policy_usage, - mbedtls_test_update_key_usage_flags( policy_usage ) ); + TEST_EQUAL(policy_usage, + mbedtls_test_update_key_usage_flags(policy_usage)); /* Encrypt check, one-shot */ - status = psa_cipher_encrypt( key, exercise_alg, input, input_buffer_size, - output, output_buffer_size, - &output_length); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_ENCRYPT ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_cipher_encrypt(key, exercise_alg, input, input_buffer_size, + output, output_buffer_size, + &output_length); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_ENCRYPT) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } /* Encrypt check, multi-part */ - status = psa_cipher_encrypt_setup( &operation, key, exercise_alg ); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_ENCRYPT ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); - psa_cipher_abort( &operation ); + status = psa_cipher_encrypt_setup(&operation, key, exercise_alg); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_ENCRYPT) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } + psa_cipher_abort(&operation); /* Decrypt check, one-shot */ - status = psa_cipher_decrypt( key, exercise_alg, output, output_buffer_size, - input, input_buffer_size, - &output_length); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_DECRYPT ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_cipher_decrypt(key, exercise_alg, output, output_buffer_size, + input, input_buffer_size, + &output_length); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_DECRYPT) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } /* Decrypt check, multi-part */ - status = psa_cipher_decrypt_setup( &operation, key, exercise_alg ); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_DECRYPT ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_cipher_decrypt_setup(&operation, key, exercise_alg); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_DECRYPT) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } exit: - psa_cipher_abort( &operation ); - mbedtls_free( input ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(input); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_key_policy( int policy_usage_arg, - int policy_alg, - int key_type, - data_t *key_data, - int nonce_length_arg, - int tag_length_arg, - int exercise_alg, - int expected_status_arg ) +void aead_key_policy(int policy_usage_arg, + int policy_alg, + int key_type, + data_t *key_data, + int nonce_length_arg, + int tag_length_arg, + int exercise_alg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2072,83 +1957,87 @@ void aead_key_policy( int policy_usage_arg, psa_key_usage_t policy_usage = policy_usage_arg; psa_status_t status; psa_status_t expected_status = expected_status_arg; - unsigned char nonce[16] = {0}; + unsigned char nonce[16] = { 0 }; size_t nonce_length = nonce_length_arg; unsigned char tag[16]; size_t tag_length = tag_length_arg; size_t output_length; - TEST_LE_U( nonce_length, sizeof( nonce ) ); - TEST_LE_U( tag_length, sizeof( tag ) ); + TEST_LE_U(nonce_length, sizeof(nonce)); + TEST_LE_U(tag_length, sizeof(tag)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Check if no key usage implication is done */ - TEST_EQUAL( policy_usage, - mbedtls_test_update_key_usage_flags( policy_usage ) ); + TEST_EQUAL(policy_usage, + mbedtls_test_update_key_usage_flags(policy_usage)); /* Encrypt check, one-shot */ - status = psa_aead_encrypt( key, exercise_alg, - nonce, nonce_length, - NULL, 0, - NULL, 0, - tag, tag_length, - &output_length ); - if( ( policy_usage & PSA_KEY_USAGE_ENCRYPT ) != 0 ) - TEST_EQUAL( status, expected_status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_aead_encrypt(key, exercise_alg, + nonce, nonce_length, + NULL, 0, + NULL, 0, + tag, tag_length, + &output_length); + if ((policy_usage & PSA_KEY_USAGE_ENCRYPT) != 0) { + TEST_EQUAL(status, expected_status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } /* Encrypt check, multi-part */ - status = psa_aead_encrypt_setup( &operation, key, exercise_alg ); - if( ( policy_usage & PSA_KEY_USAGE_ENCRYPT ) != 0 ) - TEST_EQUAL( status, expected_status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_aead_encrypt_setup(&operation, key, exercise_alg); + if ((policy_usage & PSA_KEY_USAGE_ENCRYPT) != 0) { + TEST_EQUAL(status, expected_status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } /* Decrypt check, one-shot */ - memset( tag, 0, sizeof( tag ) ); - status = psa_aead_decrypt( key, exercise_alg, - nonce, nonce_length, - NULL, 0, - tag, tag_length, - NULL, 0, - &output_length ); - if( ( policy_usage & PSA_KEY_USAGE_DECRYPT ) == 0 ) - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); - else if( expected_status == PSA_SUCCESS ) - TEST_EQUAL( status, PSA_ERROR_INVALID_SIGNATURE ); - else - TEST_EQUAL( status, expected_status ); + memset(tag, 0, sizeof(tag)); + status = psa_aead_decrypt(key, exercise_alg, + nonce, nonce_length, + NULL, 0, + tag, tag_length, + NULL, 0, + &output_length); + if ((policy_usage & PSA_KEY_USAGE_DECRYPT) == 0) { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } else if (expected_status == PSA_SUCCESS) { + TEST_EQUAL(status, PSA_ERROR_INVALID_SIGNATURE); + } else { + TEST_EQUAL(status, expected_status); + } /* Decrypt check, multi-part */ - PSA_ASSERT( psa_aead_abort( &operation ) ); - status = psa_aead_decrypt_setup( &operation, key, exercise_alg ); - if( ( policy_usage & PSA_KEY_USAGE_DECRYPT ) == 0 ) - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); - else - TEST_EQUAL( status, expected_status ); + PSA_ASSERT(psa_aead_abort(&operation)); + status = psa_aead_decrypt_setup(&operation, key, exercise_alg); + if ((policy_usage & PSA_KEY_USAGE_DECRYPT) == 0) { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } else { + TEST_EQUAL(status, expected_status); + } exit: - PSA_ASSERT( psa_aead_abort( &operation ) ); - psa_destroy_key( key ); - PSA_DONE( ); + PSA_ASSERT(psa_aead_abort(&operation)); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encryption_key_policy( int policy_usage_arg, - int policy_alg, - int key_type, - data_t *key_data, - int exercise_alg ) +void asymmetric_encryption_key_policy(int policy_usage_arg, + int policy_alg, + int key_type, + data_t *key_data, + int exercise_alg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2159,204 +2048,210 @@ void asymmetric_encryption_key_policy( int policy_usage_arg, unsigned char *buffer = NULL; size_t output_length; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Check if no key usage implication is done */ - TEST_EQUAL( policy_usage, - mbedtls_test_update_key_usage_flags( policy_usage ) ); + TEST_EQUAL(policy_usage, + mbedtls_test_update_key_usage_flags(policy_usage)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); - buffer_length = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, - exercise_alg ); - ASSERT_ALLOC( buffer, buffer_length ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); + buffer_length = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, + exercise_alg); + ASSERT_ALLOC(buffer, buffer_length); - status = psa_asymmetric_encrypt( key, exercise_alg, - NULL, 0, - NULL, 0, - buffer, buffer_length, - &output_length ); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_ENCRYPT ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_asymmetric_encrypt(key, exercise_alg, + NULL, 0, + NULL, 0, + buffer, buffer_length, + &output_length); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_ENCRYPT) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } - if( buffer_length != 0 ) - memset( buffer, 0, buffer_length ); - status = psa_asymmetric_decrypt( key, exercise_alg, - buffer, buffer_length, - NULL, 0, - buffer, buffer_length, - &output_length ); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_DECRYPT ) != 0 ) - TEST_EQUAL( status, PSA_ERROR_INVALID_PADDING ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + if (buffer_length != 0) { + memset(buffer, 0, buffer_length); + } + status = psa_asymmetric_decrypt(key, exercise_alg, + buffer, buffer_length, + NULL, 0, + buffer, buffer_length, + &output_length); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_DECRYPT) != 0) { + TEST_EQUAL(status, PSA_ERROR_INVALID_PADDING); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( buffer ); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(buffer); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_signature_key_policy( int policy_usage_arg, - int policy_alg, - int key_type, - data_t *key_data, - int exercise_alg, - int payload_length_arg, - int expected_usage_arg ) +void asymmetric_signature_key_policy(int policy_usage_arg, + int policy_alg, + int key_type, + data_t *key_data, + int exercise_alg, + int payload_length_arg, + int expected_usage_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_usage_t policy_usage = policy_usage_arg; psa_key_usage_t expected_usage = expected_usage_arg; psa_status_t status; - unsigned char payload[PSA_HASH_MAX_SIZE] = {1}; + unsigned char payload[PSA_HASH_MAX_SIZE] = { 1 }; /* If `payload_length_arg > 0`, `exercise_alg` is supposed to be * compatible with the policy and `payload_length_arg` is supposed to be * a valid input length to sign. If `payload_length_arg <= 0`, * `exercise_alg` is supposed to be forbidden by the policy. */ int compatible_alg = payload_length_arg > 0; size_t payload_length = compatible_alg ? payload_length_arg : 0; - unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = {0}; + unsigned char signature[PSA_SIGNATURE_MAX_SIZE] = { 0 }; size_t signature_length; /* Check if all implicit usage flags are deployed in the expected usage flags. */ - TEST_EQUAL( expected_usage, - mbedtls_test_update_key_usage_flags( policy_usage ) ); + TEST_EQUAL(expected_usage, + mbedtls_test_update_key_usage_flags(policy_usage)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), expected_usage ); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), expected_usage); - status = psa_sign_hash( key, exercise_alg, - payload, payload_length, - signature, sizeof( signature ), - &signature_length ); - if( compatible_alg && ( expected_usage & PSA_KEY_USAGE_SIGN_HASH ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = psa_sign_hash(key, exercise_alg, + payload, payload_length, + signature, sizeof(signature), + &signature_length); + if (compatible_alg && (expected_usage & PSA_KEY_USAGE_SIGN_HASH) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } - memset( signature, 0, sizeof( signature ) ); - status = psa_verify_hash( key, exercise_alg, - payload, payload_length, - signature, sizeof( signature ) ); - if( compatible_alg && ( expected_usage & PSA_KEY_USAGE_VERIFY_HASH ) != 0 ) - TEST_EQUAL( status, PSA_ERROR_INVALID_SIGNATURE ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + memset(signature, 0, sizeof(signature)); + status = psa_verify_hash(key, exercise_alg, + payload, payload_length, + signature, sizeof(signature)); + if (compatible_alg && (expected_usage & PSA_KEY_USAGE_VERIFY_HASH) != 0) { + TEST_EQUAL(status, PSA_ERROR_INVALID_SIGNATURE); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } - if( PSA_ALG_IS_SIGN_HASH( exercise_alg ) && - PSA_ALG_IS_HASH( PSA_ALG_SIGN_GET_HASH( exercise_alg ) ) ) - { - status = psa_sign_message( key, exercise_alg, - payload, payload_length, - signature, sizeof( signature ), - &signature_length ); - if( compatible_alg && ( expected_usage & PSA_KEY_USAGE_SIGN_MESSAGE ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + if (PSA_ALG_IS_SIGN_HASH(exercise_alg) && + PSA_ALG_IS_HASH(PSA_ALG_SIGN_GET_HASH(exercise_alg))) { + status = psa_sign_message(key, exercise_alg, + payload, payload_length, + signature, sizeof(signature), + &signature_length); + if (compatible_alg && (expected_usage & PSA_KEY_USAGE_SIGN_MESSAGE) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } - memset( signature, 0, sizeof( signature ) ); - status = psa_verify_message( key, exercise_alg, - payload, payload_length, - signature, sizeof( signature ) ); - if( compatible_alg && ( expected_usage & PSA_KEY_USAGE_VERIFY_MESSAGE ) != 0 ) - TEST_EQUAL( status, PSA_ERROR_INVALID_SIGNATURE ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + memset(signature, 0, sizeof(signature)); + status = psa_verify_message(key, exercise_alg, + payload, payload_length, + signature, sizeof(signature)); + if (compatible_alg && (expected_usage & PSA_KEY_USAGE_VERIFY_MESSAGE) != 0) { + TEST_EQUAL(status, PSA_ERROR_INVALID_SIGNATURE); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } } exit: - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_key_policy( int policy_usage, - int policy_alg, - int key_type, - data_t *key_data, - int exercise_alg ) +void derive_key_policy(int policy_usage, + int policy_alg, + int key_type, + data_t *key_data, + int exercise_alg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_key_derivation_setup( &operation, exercise_alg ) ); + PSA_ASSERT(psa_key_derivation_setup(&operation, exercise_alg)); - if( PSA_ALG_IS_TLS12_PRF( exercise_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( exercise_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); + if (PSA_ALG_IS_TLS12_PRF(exercise_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(exercise_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t *) "", 0)); } - status = psa_key_derivation_input_key( &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key ); + status = psa_key_derivation_input_key(&operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key); - if( policy_alg == exercise_alg && - ( policy_usage & PSA_KEY_USAGE_DERIVE ) != 0 ) - PSA_ASSERT( status ); - else - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + if (policy_alg == exercise_alg && + (policy_usage & PSA_KEY_USAGE_DERIVE) != 0) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); + } exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void agreement_key_policy( int policy_usage, - int policy_alg, - int key_type_arg, - data_t *key_data, - int exercise_alg, - int expected_status_arg ) +void agreement_key_policy(int policy_usage, + int policy_alg, + int key_type_arg, + data_t *key_data, + int exercise_alg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2365,30 +2260,30 @@ void agreement_key_policy( int policy_usage, psa_status_t status; psa_status_t expected_status = expected_status_arg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_key_derivation_setup( &operation, exercise_alg ) ); - status = mbedtls_test_psa_key_agreement_with_self( &operation, key ); + PSA_ASSERT(psa_key_derivation_setup(&operation, exercise_alg)); + status = mbedtls_test_psa_key_agreement_with_self(&operation, key); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_policy_alg2( int key_type_arg, data_t *key_data, - int usage_arg, int alg_arg, int alg2_arg ) +void key_policy_alg2(int key_type_arg, data_t *key_data, + int usage_arg, int alg_arg, int alg2_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -2398,46 +2293,48 @@ void key_policy_alg2( int key_type_arg, data_t *key_data, psa_algorithm_t alg = alg_arg; psa_algorithm_t alg2 = alg2_arg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_enrollment_algorithm( &attributes, alg2 ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_enrollment_algorithm(&attributes, alg2); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Update the usage flags to obtain implicit usage flags */ - usage = mbedtls_test_update_key_usage_flags( usage ); - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_usage_flags( &got_attributes ), usage ); - TEST_EQUAL( psa_get_key_algorithm( &got_attributes ), alg ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &got_attributes ), alg2 ); + usage = mbedtls_test_update_key_usage_flags(usage); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_usage_flags(&got_attributes), usage); + TEST_EQUAL(psa_get_key_algorithm(&got_attributes), alg); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&got_attributes), alg2); - if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) ) + if (!mbedtls_test_psa_exercise_key(key, usage, alg)) { goto exit; - if( ! mbedtls_test_psa_exercise_key( key, usage, alg2 ) ) + } + if (!mbedtls_test_psa_exercise_key(key, usage, alg2)) { goto exit; + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void raw_agreement_key_policy( int policy_usage, - int policy_alg, - int key_type_arg, - data_t *key_data, - int exercise_alg, - int expected_status_arg ) +void raw_agreement_key_policy(int policy_usage, + int policy_alg, + int key_type_arg, + data_t *key_data, + int exercise_alg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2446,37 +2343,37 @@ void raw_agreement_key_policy( int policy_usage, psa_status_t status; psa_status_t expected_status = expected_status_arg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, policy_usage ); - psa_set_key_algorithm( &attributes, policy_alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, policy_usage); + psa_set_key_algorithm(&attributes, policy_alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - status = mbedtls_test_psa_raw_key_agreement_with_self( exercise_alg, key ); + status = mbedtls_test_psa_raw_key_agreement_with_self(exercise_alg, key); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void copy_success( int source_usage_arg, - int source_alg_arg, int source_alg2_arg, - unsigned int source_lifetime_arg, - int type_arg, data_t *material, - int copy_attributes, - int target_usage_arg, - int target_alg_arg, int target_alg2_arg, - unsigned int target_lifetime_arg, - int expected_usage_arg, - int expected_alg_arg, int expected_alg2_arg ) +void copy_success(int source_usage_arg, + int source_alg_arg, int source_alg2_arg, + unsigned int source_lifetime_arg, + int type_arg, data_t *material, + int copy_attributes, + int target_usage_arg, + int target_alg_arg, int target_alg2_arg, + unsigned int target_lifetime_arg, + int expected_usage_arg, + int expected_alg_arg, int expected_alg2_arg) { psa_key_attributes_t source_attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t target_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -2489,168 +2386,170 @@ void copy_success( int source_usage_arg, mbedtls_svc_key_id_t target_key = MBEDTLS_SVC_KEY_ID_INIT; uint8_t *export_buffer = NULL; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Prepare the source key. */ - psa_set_key_usage_flags( &source_attributes, source_usage_arg ); - psa_set_key_algorithm( &source_attributes, source_alg_arg ); - psa_set_key_enrollment_algorithm( &source_attributes, source_alg2_arg ); - psa_set_key_type( &source_attributes, type_arg ); - psa_set_key_lifetime( &source_attributes, source_lifetime); - PSA_ASSERT( psa_import_key( &source_attributes, - material->x, material->len, - &source_key ) ); - PSA_ASSERT( psa_get_key_attributes( source_key, &source_attributes ) ); + psa_set_key_usage_flags(&source_attributes, source_usage_arg); + psa_set_key_algorithm(&source_attributes, source_alg_arg); + psa_set_key_enrollment_algorithm(&source_attributes, source_alg2_arg); + psa_set_key_type(&source_attributes, type_arg); + psa_set_key_lifetime(&source_attributes, source_lifetime); + PSA_ASSERT(psa_import_key(&source_attributes, + material->x, material->len, + &source_key)); + PSA_ASSERT(psa_get_key_attributes(source_key, &source_attributes)); /* Prepare the target attributes. */ - if( copy_attributes ) - { + if (copy_attributes) { target_attributes = source_attributes; } - psa_set_key_lifetime( &target_attributes, target_lifetime); + psa_set_key_lifetime(&target_attributes, target_lifetime); - if( target_usage_arg != -1 ) - psa_set_key_usage_flags( &target_attributes, target_usage_arg ); - if( target_alg_arg != -1 ) - psa_set_key_algorithm( &target_attributes, target_alg_arg ); - if( target_alg2_arg != -1 ) - psa_set_key_enrollment_algorithm( &target_attributes, target_alg2_arg ); + if (target_usage_arg != -1) { + psa_set_key_usage_flags(&target_attributes, target_usage_arg); + } + if (target_alg_arg != -1) { + psa_set_key_algorithm(&target_attributes, target_alg_arg); + } + if (target_alg2_arg != -1) { + psa_set_key_enrollment_algorithm(&target_attributes, target_alg2_arg); + } /* Copy the key. */ - PSA_ASSERT( psa_copy_key( source_key, - &target_attributes, &target_key ) ); + PSA_ASSERT(psa_copy_key(source_key, + &target_attributes, &target_key)); /* Destroy the source to ensure that this doesn't affect the target. */ - PSA_ASSERT( psa_destroy_key( source_key ) ); + PSA_ASSERT(psa_destroy_key(source_key)); /* Test that the target slot has the expected content and policy. */ - PSA_ASSERT( psa_get_key_attributes( target_key, &target_attributes ) ); - TEST_EQUAL( psa_get_key_type( &source_attributes ), - psa_get_key_type( &target_attributes ) ); - TEST_EQUAL( psa_get_key_bits( &source_attributes ), - psa_get_key_bits( &target_attributes ) ); - TEST_EQUAL( expected_usage, psa_get_key_usage_flags( &target_attributes ) ); - TEST_EQUAL( expected_alg, psa_get_key_algorithm( &target_attributes ) ); - TEST_EQUAL( expected_alg2, - psa_get_key_enrollment_algorithm( &target_attributes ) ); - if( expected_usage & PSA_KEY_USAGE_EXPORT ) - { + PSA_ASSERT(psa_get_key_attributes(target_key, &target_attributes)); + TEST_EQUAL(psa_get_key_type(&source_attributes), + psa_get_key_type(&target_attributes)); + TEST_EQUAL(psa_get_key_bits(&source_attributes), + psa_get_key_bits(&target_attributes)); + TEST_EQUAL(expected_usage, psa_get_key_usage_flags(&target_attributes)); + TEST_EQUAL(expected_alg, psa_get_key_algorithm(&target_attributes)); + TEST_EQUAL(expected_alg2, + psa_get_key_enrollment_algorithm(&target_attributes)); + if (expected_usage & PSA_KEY_USAGE_EXPORT) { size_t length; - ASSERT_ALLOC( export_buffer, material->len ); - PSA_ASSERT( psa_export_key( target_key, export_buffer, - material->len, &length ) ); - ASSERT_COMPARE( material->x, material->len, - export_buffer, length ); + ASSERT_ALLOC(export_buffer, material->len); + PSA_ASSERT(psa_export_key(target_key, export_buffer, + material->len, &length)); + ASSERT_COMPARE(material->x, material->len, + export_buffer, length); } - if( !psa_key_lifetime_is_external( target_lifetime ) ) - { - if( ! mbedtls_test_psa_exercise_key( target_key, expected_usage, expected_alg ) ) + if (!psa_key_lifetime_is_external(target_lifetime)) { + if (!mbedtls_test_psa_exercise_key(target_key, expected_usage, expected_alg)) { goto exit; - if( ! mbedtls_test_psa_exercise_key( target_key, expected_usage, expected_alg2 ) ) + } + if (!mbedtls_test_psa_exercise_key(target_key, expected_usage, expected_alg2)) { goto exit; + } } - PSA_ASSERT( psa_destroy_key( target_key ) ); + PSA_ASSERT(psa_destroy_key(target_key)); exit: /* * Source and target key attributes may have been returned by * psa_get_key_attributes() thus reset them as required. */ - psa_reset_key_attributes( &source_attributes ); - psa_reset_key_attributes( &target_attributes ); + psa_reset_key_attributes(&source_attributes); + psa_reset_key_attributes(&target_attributes); - PSA_DONE( ); - mbedtls_free( export_buffer ); + PSA_DONE(); + mbedtls_free(export_buffer); } /* END_CASE */ /* BEGIN_CASE */ -void copy_fail( int source_usage_arg, - int source_alg_arg, int source_alg2_arg, - int source_lifetime_arg, - int type_arg, data_t *material, - int target_type_arg, int target_bits_arg, - int target_usage_arg, - int target_alg_arg, int target_alg2_arg, - int target_id_arg, int target_lifetime_arg, - int expected_status_arg ) +void copy_fail(int source_usage_arg, + int source_alg_arg, int source_alg2_arg, + int source_lifetime_arg, + int type_arg, data_t *material, + int target_type_arg, int target_bits_arg, + int target_usage_arg, + int target_alg_arg, int target_alg2_arg, + int target_id_arg, int target_lifetime_arg, + int expected_status_arg) { psa_key_attributes_t source_attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t target_attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t source_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t target_key = MBEDTLS_SVC_KEY_ID_INIT; - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 1, target_id_arg ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(1, target_id_arg); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Prepare the source key. */ - psa_set_key_usage_flags( &source_attributes, source_usage_arg ); - psa_set_key_algorithm( &source_attributes, source_alg_arg ); - psa_set_key_enrollment_algorithm( &source_attributes, source_alg2_arg ); - psa_set_key_type( &source_attributes, type_arg ); - psa_set_key_lifetime( &source_attributes, source_lifetime_arg ); - PSA_ASSERT( psa_import_key( &source_attributes, - material->x, material->len, - &source_key ) ); + psa_set_key_usage_flags(&source_attributes, source_usage_arg); + psa_set_key_algorithm(&source_attributes, source_alg_arg); + psa_set_key_enrollment_algorithm(&source_attributes, source_alg2_arg); + psa_set_key_type(&source_attributes, type_arg); + psa_set_key_lifetime(&source_attributes, source_lifetime_arg); + PSA_ASSERT(psa_import_key(&source_attributes, + material->x, material->len, + &source_key)); /* Prepare the target attributes. */ - psa_set_key_id( &target_attributes, key_id ); - psa_set_key_lifetime( &target_attributes, target_lifetime_arg ); - psa_set_key_type( &target_attributes, target_type_arg ); - psa_set_key_bits( &target_attributes, target_bits_arg ); - psa_set_key_usage_flags( &target_attributes, target_usage_arg ); - psa_set_key_algorithm( &target_attributes, target_alg_arg ); - psa_set_key_enrollment_algorithm( &target_attributes, target_alg2_arg ); + psa_set_key_id(&target_attributes, key_id); + psa_set_key_lifetime(&target_attributes, target_lifetime_arg); + psa_set_key_type(&target_attributes, target_type_arg); + psa_set_key_bits(&target_attributes, target_bits_arg); + psa_set_key_usage_flags(&target_attributes, target_usage_arg); + psa_set_key_algorithm(&target_attributes, target_alg_arg); + psa_set_key_enrollment_algorithm(&target_attributes, target_alg2_arg); /* Try to copy the key. */ - TEST_EQUAL( psa_copy_key( source_key, - &target_attributes, &target_key ), - expected_status_arg ); + TEST_EQUAL(psa_copy_key(source_key, + &target_attributes, &target_key), + expected_status_arg); - PSA_ASSERT( psa_destroy_key( source_key ) ); + PSA_ASSERT(psa_destroy_key(source_key)); exit: - psa_reset_key_attributes( &source_attributes ); - psa_reset_key_attributes( &target_attributes ); - PSA_DONE( ); + psa_reset_key_attributes(&source_attributes); + psa_reset_key_attributes(&target_attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_operation_init( ) +void hash_operation_init() { const uint8_t input[1] = { 0 }; /* Test each valid way of initializing the object, except for `= {0}`, as * Clang 5 complains when `-Wmissing-field-initializers` is used, even * though it's OK by the C standard. We could test for this, but we'd need * to suppress the Clang warning for the test. */ - psa_hash_operation_t func = psa_hash_operation_init( ); + psa_hash_operation_t func = psa_hash_operation_init(); psa_hash_operation_t init = PSA_HASH_OPERATION_INIT; psa_hash_operation_t zero; - memset( &zero, 0, sizeof( zero ) ); + memset(&zero, 0, sizeof(zero)); /* A freshly-initialized hash operation should not be usable. */ - TEST_EQUAL( psa_hash_update( &func, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_hash_update( &init, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_hash_update( &zero, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_hash_update(&func, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_hash_update(&init, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_hash_update(&zero, input, sizeof(input)), + PSA_ERROR_BAD_STATE); /* A default hash operation should be abortable without error. */ - PSA_ASSERT( psa_hash_abort( &func ) ); - PSA_ASSERT( psa_hash_abort( &init ) ); - PSA_ASSERT( psa_hash_abort( &zero ) ); + PSA_ASSERT(psa_hash_abort(&func)); + PSA_ASSERT(psa_hash_abort(&init)); + PSA_ASSERT(psa_hash_abort(&zero)); } /* END_CASE */ /* BEGIN_CASE */ -void hash_setup( int alg_arg, - int expected_status_arg ) +void hash_setup(int alg_arg, + int expected_status_arg) { psa_algorithm_t alg = alg_arg; uint8_t *output = NULL; @@ -2660,43 +2559,44 @@ void hash_setup( int alg_arg, psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Hash Setup, one-shot */ - output_size = PSA_HASH_LENGTH( alg ); - ASSERT_ALLOC( output, output_size ); + output_size = PSA_HASH_LENGTH(alg); + ASSERT_ALLOC(output, output_size); - status = psa_hash_compute( alg, NULL, 0, - output, output_size, &output_length ); - TEST_EQUAL( status, expected_status ); + status = psa_hash_compute(alg, NULL, 0, + output, output_size, &output_length); + TEST_EQUAL(status, expected_status); /* Hash Setup, multi-part */ - status = psa_hash_setup( &operation, alg ); - TEST_EQUAL( status, expected_status ); + status = psa_hash_setup(&operation, alg); + TEST_EQUAL(status, expected_status); /* Whether setup succeeded or failed, abort must succeed. */ - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_abort(&operation)); /* If setup failed, reproduce the failure, so as to * test the resulting state of the operation object. */ - if( status != PSA_SUCCESS ) - TEST_EQUAL( psa_hash_setup( &operation, alg ), status ); + if (status != PSA_SUCCESS) { + TEST_EQUAL(psa_hash_setup(&operation, alg), status); + } /* Now the operation object should be reusable. */ #if defined(KNOWN_SUPPORTED_HASH_ALG) - PSA_ASSERT( psa_hash_setup( &operation, KNOWN_SUPPORTED_HASH_ALG ) ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, KNOWN_SUPPORTED_HASH_ALG)); + PSA_ASSERT(psa_hash_abort(&operation)); #endif exit: - mbedtls_free( output ); - PSA_DONE( ); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_compute_fail( int alg_arg, data_t *input, - int output_size_arg, int expected_status_arg ) +void hash_compute_fail(int alg_arg, data_t *input, + int output_size_arg, int expected_status_arg) { psa_algorithm_t alg = alg_arg; uint8_t *output = NULL; @@ -2706,94 +2606,83 @@ void hash_compute_fail( int alg_arg, data_t *input, psa_status_t expected_status = expected_status_arg; psa_status_t status; - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Hash Compute, one-shot */ - status = psa_hash_compute( alg, input->x, input->len, - output, output_size, &output_length ); - TEST_EQUAL( status, expected_status ); - TEST_LE_U( output_length, output_size ); + status = psa_hash_compute(alg, input->x, input->len, + output, output_size, &output_length); + TEST_EQUAL(status, expected_status); + TEST_LE_U(output_length, output_size); /* Hash Compute, multi-part */ - status = psa_hash_setup( &operation, alg ); - if( status == PSA_SUCCESS ) - { - status = psa_hash_update( &operation, input->x, input->len ); - if( status == PSA_SUCCESS ) - { - status = psa_hash_finish( &operation, output, output_size, - &output_length ); - if( status == PSA_SUCCESS ) - TEST_LE_U( output_length, output_size ); - else - TEST_EQUAL( status, expected_status ); + status = psa_hash_setup(&operation, alg); + if (status == PSA_SUCCESS) { + status = psa_hash_update(&operation, input->x, input->len); + if (status == PSA_SUCCESS) { + status = psa_hash_finish(&operation, output, output_size, + &output_length); + if (status == PSA_SUCCESS) { + TEST_LE_U(output_length, output_size); + } else { + TEST_EQUAL(status, expected_status); + } + } else { + TEST_EQUAL(status, expected_status); } - else - { - TEST_EQUAL( status, expected_status ); - } - } - else - { - TEST_EQUAL( status, expected_status ); + } else { + TEST_EQUAL(status, expected_status); } exit: - PSA_ASSERT( psa_hash_abort( &operation ) ); - mbedtls_free( output ); - PSA_DONE( ); + PSA_ASSERT(psa_hash_abort(&operation)); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_compare_fail( int alg_arg, data_t *input, - data_t *reference_hash, - int expected_status_arg ) +void hash_compare_fail(int alg_arg, data_t *input, + data_t *reference_hash, + int expected_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t expected_status = expected_status_arg; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Hash Compare, one-shot */ - status = psa_hash_compare( alg, input->x, input->len, - reference_hash->x, reference_hash->len ); - TEST_EQUAL( status, expected_status ); + status = psa_hash_compare(alg, input->x, input->len, + reference_hash->x, reference_hash->len); + TEST_EQUAL(status, expected_status); /* Hash Compare, multi-part */ - status = psa_hash_setup( &operation, alg ); - if( status == PSA_SUCCESS ) - { - status = psa_hash_update( &operation, input->x, input->len ); - if( status == PSA_SUCCESS ) - { - status = psa_hash_verify( &operation, reference_hash->x, - reference_hash->len ); - TEST_EQUAL( status, expected_status ); + status = psa_hash_setup(&operation, alg); + if (status == PSA_SUCCESS) { + status = psa_hash_update(&operation, input->x, input->len); + if (status == PSA_SUCCESS) { + status = psa_hash_verify(&operation, reference_hash->x, + reference_hash->len); + TEST_EQUAL(status, expected_status); + } else { + TEST_EQUAL(status, expected_status); } - else - { - TEST_EQUAL( status, expected_status ); - } - } - else - { - TEST_EQUAL( status, expected_status ); + } else { + TEST_EQUAL(status, expected_status); } exit: - PSA_ASSERT( psa_hash_abort( &operation ) ); - PSA_DONE( ); + PSA_ASSERT(psa_hash_abort(&operation)); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_compute_compare( int alg_arg, data_t *input, - data_t *expected_output ) +void hash_compute_compare(int alg_arg, data_t *input, + data_t *expected_output) { psa_algorithm_t alg = alg_arg; uint8_t output[PSA_HASH_MAX_SIZE + 1]; @@ -2801,103 +2690,102 @@ void hash_compute_compare( int alg_arg, data_t *input, psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; size_t i; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Compute with tight buffer, one-shot */ - PSA_ASSERT( psa_hash_compute( alg, input->x, input->len, - output, PSA_HASH_LENGTH( alg ), - &output_length ) ); - TEST_EQUAL( output_length, PSA_HASH_LENGTH( alg ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); + PSA_ASSERT(psa_hash_compute(alg, input->x, input->len, + output, PSA_HASH_LENGTH(alg), + &output_length)); + TEST_EQUAL(output_length, PSA_HASH_LENGTH(alg)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); /* Compute with tight buffer, multi-part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - PSA_ASSERT( psa_hash_finish( &operation, output, - PSA_HASH_LENGTH( alg ), - &output_length ) ); - TEST_EQUAL( output_length, PSA_HASH_LENGTH( alg ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + PSA_ASSERT(psa_hash_finish(&operation, output, + PSA_HASH_LENGTH(alg), + &output_length)); + TEST_EQUAL(output_length, PSA_HASH_LENGTH(alg)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); /* Compute with larger buffer, one-shot */ - PSA_ASSERT( psa_hash_compute( alg, input->x, input->len, - output, sizeof( output ), - &output_length ) ); - TEST_EQUAL( output_length, PSA_HASH_LENGTH( alg ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); + PSA_ASSERT(psa_hash_compute(alg, input->x, input->len, + output, sizeof(output), + &output_length)); + TEST_EQUAL(output_length, PSA_HASH_LENGTH(alg)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); /* Compute with larger buffer, multi-part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - PSA_ASSERT( psa_hash_finish( &operation, output, - sizeof( output ), &output_length ) ); - TEST_EQUAL( output_length, PSA_HASH_LENGTH( alg ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + PSA_ASSERT(psa_hash_finish(&operation, output, + sizeof(output), &output_length)); + TEST_EQUAL(output_length, PSA_HASH_LENGTH(alg)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); /* Compare with correct hash, one-shot */ - PSA_ASSERT( psa_hash_compare( alg, input->x, input->len, - output, output_length ) ); + PSA_ASSERT(psa_hash_compare(alg, input->x, input->len, + output, output_length)); /* Compare with correct hash, multi-part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - PSA_ASSERT( psa_hash_verify( &operation, output, - output_length ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + PSA_ASSERT(psa_hash_verify(&operation, output, + output_length)); /* Compare with trailing garbage, one-shot */ - TEST_EQUAL( psa_hash_compare( alg, input->x, input->len, - output, output_length + 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_hash_compare(alg, input->x, input->len, + output, output_length + 1), + PSA_ERROR_INVALID_SIGNATURE); /* Compare with trailing garbage, multi-part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - TEST_EQUAL( psa_hash_verify( &operation, output, output_length + 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + TEST_EQUAL(psa_hash_verify(&operation, output, output_length + 1), + PSA_ERROR_INVALID_SIGNATURE); /* Compare with truncated hash, one-shot */ - TEST_EQUAL( psa_hash_compare( alg, input->x, input->len, - output, output_length - 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_hash_compare(alg, input->x, input->len, + output, output_length - 1), + PSA_ERROR_INVALID_SIGNATURE); /* Compare with truncated hash, multi-part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - TEST_EQUAL( psa_hash_verify( &operation, output, output_length - 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + TEST_EQUAL(psa_hash_verify(&operation, output, output_length - 1), + PSA_ERROR_INVALID_SIGNATURE); /* Compare with corrupted value */ - for( i = 0; i < output_length; i++ ) - { - mbedtls_test_set_step( i ); + for (i = 0; i < output_length; i++) { + mbedtls_test_set_step(i); output[i] ^= 1; /* One-shot */ - TEST_EQUAL( psa_hash_compare( alg, input->x, input->len, - output, output_length ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_hash_compare(alg, input->x, input->len, + output, output_length), + PSA_ERROR_INVALID_SIGNATURE); /* Multi-Part */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - TEST_EQUAL( psa_hash_verify( &operation, output, output_length ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + TEST_EQUAL(psa_hash_verify(&operation, output, output_length), + PSA_ERROR_INVALID_SIGNATURE); output[i] ^= 1; } exit: - PSA_ASSERT( psa_hash_abort( &operation ) ); - PSA_DONE( ); + PSA_ASSERT(psa_hash_abort(&operation)); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256 */ -void hash_bad_order( ) +void hash_bad_order() { psa_algorithm_t alg = PSA_ALG_SHA_256; unsigned char input[] = ""; @@ -2905,103 +2793,104 @@ void hash_bad_order( ) const unsigned char valid_hash[] = { 0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, - 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55 }; + 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55 + }; unsigned char hash[sizeof(valid_hash)] = { 0 }; size_t hash_len; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Call setup twice in a row. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_hash_setup( &operation, alg ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_hash_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_hash_setup(&operation, alg), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_hash_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call update without calling setup beforehand. */ - TEST_EQUAL( psa_hash_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + TEST_EQUAL(psa_hash_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Check that update calls abort on error. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); operation.id = UINT_MAX; - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_hash_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_hash_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_hash_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_hash_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call update after finish. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ) ); - TEST_EQUAL( psa_hash_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len)); + TEST_EQUAL(psa_hash_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call verify without calling setup beforehand. */ - TEST_EQUAL( psa_hash_verify( &operation, - valid_hash, sizeof( valid_hash ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + TEST_EQUAL(psa_hash_verify(&operation, + valid_hash, sizeof(valid_hash)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call verify after finish. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ) ); - TEST_EQUAL( psa_hash_verify( &operation, - valid_hash, sizeof( valid_hash ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len)); + TEST_EQUAL(psa_hash_verify(&operation, + valid_hash, sizeof(valid_hash)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call verify twice in a row. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - PSA_ASSERT( psa_hash_verify( &operation, - valid_hash, sizeof( valid_hash ) ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - TEST_EQUAL( psa_hash_verify( &operation, - valid_hash, sizeof( valid_hash ) ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + PSA_ASSERT(psa_hash_verify(&operation, + valid_hash, sizeof(valid_hash))); + ASSERT_OPERATION_IS_INACTIVE(operation); + TEST_EQUAL(psa_hash_verify(&operation, + valid_hash, sizeof(valid_hash)), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call finish without calling setup beforehand. */ - TEST_EQUAL( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + TEST_EQUAL(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call finish twice in a row. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ) ); - TEST_EQUAL( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len)); + TEST_EQUAL(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); /* Call finish after calling verify. */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_verify( &operation, - valid_hash, sizeof( valid_hash ) ) ); - TEST_EQUAL( psa_hash_finish( &operation, - hash, sizeof( hash ), &hash_len ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_hash_abort( &operation ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_verify(&operation, + valid_hash, sizeof(valid_hash))); + TEST_EQUAL(psa_hash_finish(&operation, + hash, sizeof(hash), &hash_len), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_hash_abort(&operation)); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256 */ -void hash_verify_bad_args( ) +void hash_verify_bad_args() { psa_algorithm_t alg = PSA_ALG_SHA_256; /* SHA-256 hash of an empty string with 2 extra bytes (0xaa and 0xbb) @@ -3009,60 +2898,61 @@ void hash_verify_bad_args( ) unsigned char hash[] = { 0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, - 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55, 0xaa, 0xbb }; - size_t expected_size = PSA_HASH_LENGTH( alg ); + 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55, 0xaa, 0xbb + }; + size_t expected_size = PSA_HASH_LENGTH(alg); psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* psa_hash_verify with a smaller hash than expected */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_hash_verify( &operation, hash, expected_size - 1 ), - PSA_ERROR_INVALID_SIGNATURE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_hash_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_hash_verify(&operation, hash, expected_size - 1), + PSA_ERROR_INVALID_SIGNATURE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_hash_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* psa_hash_verify with a non-matching hash */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( psa_hash_verify( &operation, hash + 1, expected_size ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + TEST_EQUAL(psa_hash_verify(&operation, hash + 1, expected_size), + PSA_ERROR_INVALID_SIGNATURE); /* psa_hash_verify with a hash longer than expected */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( psa_hash_verify( &operation, hash, sizeof( hash ) ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + TEST_EQUAL(psa_hash_verify(&operation, hash, sizeof(hash)), + PSA_ERROR_INVALID_SIGNATURE); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256 */ -void hash_finish_bad_args( ) +void hash_finish_bad_args() { psa_algorithm_t alg = PSA_ALG_SHA_256; unsigned char hash[PSA_HASH_MAX_SIZE]; - size_t expected_size = PSA_HASH_LENGTH( alg ); + size_t expected_size = PSA_HASH_LENGTH(alg); psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; size_t hash_len; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* psa_hash_finish with a smaller hash buffer than expected */ - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( psa_hash_finish( &operation, - hash, expected_size - 1, &hash_len ), - PSA_ERROR_BUFFER_TOO_SMALL ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + TEST_EQUAL(psa_hash_finish(&operation, + hash, expected_size - 1, &hash_len), + PSA_ERROR_BUFFER_TOO_SMALL); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256 */ -void hash_clone_source_state( ) +void hash_clone_source_state() { psa_algorithm_t alg = PSA_ALG_SHA_256; unsigned char hash[PSA_HASH_MAX_SIZE]; @@ -3073,41 +2963,41 @@ void hash_clone_source_state( ) psa_hash_operation_t op_aborted = PSA_HASH_OPERATION_INIT; size_t hash_len; - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_hash_setup( &op_source, alg ) ); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_hash_setup(&op_source, alg)); - PSA_ASSERT( psa_hash_setup( &op_setup, alg ) ); - PSA_ASSERT( psa_hash_setup( &op_finished, alg ) ); - PSA_ASSERT( psa_hash_finish( &op_finished, - hash, sizeof( hash ), &hash_len ) ); - PSA_ASSERT( psa_hash_setup( &op_aborted, alg ) ); - PSA_ASSERT( psa_hash_abort( &op_aborted ) ); + PSA_ASSERT(psa_hash_setup(&op_setup, alg)); + PSA_ASSERT(psa_hash_setup(&op_finished, alg)); + PSA_ASSERT(psa_hash_finish(&op_finished, + hash, sizeof(hash), &hash_len)); + PSA_ASSERT(psa_hash_setup(&op_aborted, alg)); + PSA_ASSERT(psa_hash_abort(&op_aborted)); - TEST_EQUAL( psa_hash_clone( &op_source, &op_setup ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_hash_clone(&op_source, &op_setup), + PSA_ERROR_BAD_STATE); - PSA_ASSERT( psa_hash_clone( &op_source, &op_init ) ); - PSA_ASSERT( psa_hash_finish( &op_init, - hash, sizeof( hash ), &hash_len ) ); - PSA_ASSERT( psa_hash_clone( &op_source, &op_finished ) ); - PSA_ASSERT( psa_hash_finish( &op_finished, - hash, sizeof( hash ), &hash_len ) ); - PSA_ASSERT( psa_hash_clone( &op_source, &op_aborted ) ); - PSA_ASSERT( psa_hash_finish( &op_aborted, - hash, sizeof( hash ), &hash_len ) ); + PSA_ASSERT(psa_hash_clone(&op_source, &op_init)); + PSA_ASSERT(psa_hash_finish(&op_init, + hash, sizeof(hash), &hash_len)); + PSA_ASSERT(psa_hash_clone(&op_source, &op_finished)); + PSA_ASSERT(psa_hash_finish(&op_finished, + hash, sizeof(hash), &hash_len)); + PSA_ASSERT(psa_hash_clone(&op_source, &op_aborted)); + PSA_ASSERT(psa_hash_finish(&op_aborted, + hash, sizeof(hash), &hash_len)); exit: - psa_hash_abort( &op_source ); - psa_hash_abort( &op_init ); - psa_hash_abort( &op_setup ); - psa_hash_abort( &op_finished ); - psa_hash_abort( &op_aborted ); - PSA_DONE( ); + psa_hash_abort(&op_source); + psa_hash_abort(&op_init); + psa_hash_abort(&op_setup); + psa_hash_abort(&op_finished); + psa_hash_abort(&op_aborted); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256 */ -void hash_clone_target_state( ) +void hash_clone_target_state() { psa_algorithm_t alg = PSA_ALG_SHA_256; unsigned char hash[PSA_HASH_MAX_SIZE]; @@ -3118,37 +3008,37 @@ void hash_clone_target_state( ) psa_hash_operation_t op_target = PSA_HASH_OPERATION_INIT; size_t hash_len; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_hash_setup( &op_setup, alg ) ); - PSA_ASSERT( psa_hash_setup( &op_finished, alg ) ); - PSA_ASSERT( psa_hash_finish( &op_finished, - hash, sizeof( hash ), &hash_len ) ); - PSA_ASSERT( psa_hash_setup( &op_aborted, alg ) ); - PSA_ASSERT( psa_hash_abort( &op_aborted ) ); + PSA_ASSERT(psa_hash_setup(&op_setup, alg)); + PSA_ASSERT(psa_hash_setup(&op_finished, alg)); + PSA_ASSERT(psa_hash_finish(&op_finished, + hash, sizeof(hash), &hash_len)); + PSA_ASSERT(psa_hash_setup(&op_aborted, alg)); + PSA_ASSERT(psa_hash_abort(&op_aborted)); - PSA_ASSERT( psa_hash_clone( &op_setup, &op_target ) ); - PSA_ASSERT( psa_hash_finish( &op_target, - hash, sizeof( hash ), &hash_len ) ); + PSA_ASSERT(psa_hash_clone(&op_setup, &op_target)); + PSA_ASSERT(psa_hash_finish(&op_target, + hash, sizeof(hash), &hash_len)); - TEST_EQUAL( psa_hash_clone( &op_init, &op_target ), PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_hash_clone( &op_finished, &op_target ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_hash_clone( &op_aborted, &op_target ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_hash_clone(&op_init, &op_target), PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_hash_clone(&op_finished, &op_target), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_hash_clone(&op_aborted, &op_target), + PSA_ERROR_BAD_STATE); exit: - psa_hash_abort( &op_target ); - psa_hash_abort( &op_init ); - psa_hash_abort( &op_setup ); - psa_hash_abort( &op_finished ); - psa_hash_abort( &op_aborted ); - PSA_DONE( ); + psa_hash_abort(&op_target); + psa_hash_abort(&op_init); + psa_hash_abort(&op_setup); + psa_hash_abort(&op_finished); + psa_hash_abort(&op_aborted); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_operation_init( ) +void mac_operation_init() { const uint8_t input[1] = { 0 }; @@ -3156,35 +3046,35 @@ void mac_operation_init( ) * Clang 5 complains when `-Wmissing-field-initializers` is used, even * though it's OK by the C standard. We could test for this, but we'd need * to suppress the Clang warning for the test. */ - psa_mac_operation_t func = psa_mac_operation_init( ); + psa_mac_operation_t func = psa_mac_operation_init(); psa_mac_operation_t init = PSA_MAC_OPERATION_INIT; psa_mac_operation_t zero; - memset( &zero, 0, sizeof( zero ) ); + memset(&zero, 0, sizeof(zero)); /* A freshly-initialized MAC operation should not be usable. */ - TEST_EQUAL( psa_mac_update( &func, - input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_mac_update( &init, - input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_mac_update( &zero, - input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_mac_update(&func, + input, sizeof(input)), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_mac_update(&init, + input, sizeof(input)), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_mac_update(&zero, + input, sizeof(input)), + PSA_ERROR_BAD_STATE); /* A default MAC operation should be abortable without error. */ - PSA_ASSERT( psa_mac_abort( &func ) ); - PSA_ASSERT( psa_mac_abort( &init ) ); - PSA_ASSERT( psa_mac_abort( &zero ) ); + PSA_ASSERT(psa_mac_abort(&func)); + PSA_ASSERT(psa_mac_abort(&init)); + PSA_ASSERT(psa_mac_abort(&zero)); } /* END_CASE */ /* BEGIN_CASE */ -void mac_setup( int key_type_arg, - data_t *key, - int alg_arg, - int expected_status_arg ) +void mac_setup(int key_type_arg, + data_t *key, + int alg_arg, + int expected_status_arg) { psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; @@ -3195,31 +3085,33 @@ void mac_setup( int key_type_arg, const uint8_t smoke_test_key_data[16] = "kkkkkkkkkkkkkkkk"; #endif - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - if( ! exercise_mac_setup( key_type, key->x, key->len, alg, - &operation, &status ) ) + if (!exercise_mac_setup(key_type, key->x, key->len, alg, + &operation, &status)) { goto exit; - TEST_EQUAL( status, expected_status ); + } + TEST_EQUAL(status, expected_status); /* The operation object should be reusable. */ #if defined(KNOWN_SUPPORTED_MAC_ALG) - if( ! exercise_mac_setup( KNOWN_SUPPORTED_MAC_KEY_TYPE, - smoke_test_key_data, - sizeof( smoke_test_key_data ), - KNOWN_SUPPORTED_MAC_ALG, - &operation, &status ) ) + if (!exercise_mac_setup(KNOWN_SUPPORTED_MAC_KEY_TYPE, + smoke_test_key_data, + sizeof(smoke_test_key_data), + KNOWN_SUPPORTED_MAC_ALG, + &operation, &status)) { goto exit; - TEST_EQUAL( status, PSA_SUCCESS ); + } + TEST_EQUAL(status, PSA_SUCCESS); #endif exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_HMAC:PSA_WANT_ALG_HMAC:PSA_WANT_ALG_SHA_256 */ -void mac_bad_order( ) +void mac_bad_order() { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = PSA_KEY_TYPE_HMAC; @@ -3227,7 +3119,8 @@ void mac_bad_order( ) const uint8_t key_data[] = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa }; + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa + }; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; uint8_t sign_mac[PSA_MAC_MAX_SIZE + 10] = { 0 }; @@ -3236,144 +3129,146 @@ void mac_bad_order( ) const uint8_t verify_mac[] = { 0x74, 0x65, 0x93, 0x8c, 0xeb, 0x1d, 0xb3, 0x76, 0x5a, 0x38, 0xe7, 0xdd, 0x85, 0xc5, 0xad, 0x4f, 0x07, 0xe7, 0xd5, 0xb2, 0x64, 0xf0, 0x1a, 0x1a, - 0x2c, 0xf9, 0x18, 0xca, 0x59, 0x7e, 0x5d, 0xf6 }; + 0x2c, 0xf9, 0x18, 0xca, 0x59, 0x7e, 0x5d, 0xf6 + }; - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data, sizeof( key_data ), - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data, sizeof(key_data), + &key)); /* Call update without calling setup beforehand. */ - TEST_EQUAL( psa_mac_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + TEST_EQUAL(psa_mac_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call sign finish without calling setup beforehand. */ - TEST_EQUAL( psa_mac_sign_finish( &operation, sign_mac, sizeof( sign_mac ), - &sign_mac_length), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + TEST_EQUAL(psa_mac_sign_finish(&operation, sign_mac, sizeof(sign_mac), + &sign_mac_length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call verify finish without calling setup beforehand. */ - TEST_EQUAL( psa_mac_verify_finish( &operation, - verify_mac, sizeof( verify_mac ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + TEST_EQUAL(psa_mac_verify_finish(&operation, + verify_mac, sizeof(verify_mac)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call setup twice in a row. */ - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_mac_sign_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_mac_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_mac_sign_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_mac_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call update after sign finish. */ - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - PSA_ASSERT( psa_mac_sign_finish( &operation, - sign_mac, sizeof( sign_mac ), - &sign_mac_length ) ); - TEST_EQUAL( psa_mac_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + PSA_ASSERT(psa_mac_sign_finish(&operation, + sign_mac, sizeof(sign_mac), + &sign_mac_length)); + TEST_EQUAL(psa_mac_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call update after verify finish. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - PSA_ASSERT( psa_mac_verify_finish( &operation, - verify_mac, sizeof( verify_mac ) ) ); - TEST_EQUAL( psa_mac_update( &operation, input, sizeof( input ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + PSA_ASSERT(psa_mac_verify_finish(&operation, + verify_mac, sizeof(verify_mac))); + TEST_EQUAL(psa_mac_update(&operation, input, sizeof(input)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call sign finish twice in a row. */ - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - PSA_ASSERT( psa_mac_sign_finish( &operation, - sign_mac, sizeof( sign_mac ), - &sign_mac_length ) ); - TEST_EQUAL( psa_mac_sign_finish( &operation, - sign_mac, sizeof( sign_mac ), - &sign_mac_length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + PSA_ASSERT(psa_mac_sign_finish(&operation, + sign_mac, sizeof(sign_mac), + &sign_mac_length)); + TEST_EQUAL(psa_mac_sign_finish(&operation, + sign_mac, sizeof(sign_mac), + &sign_mac_length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Call verify finish twice in a row. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - PSA_ASSERT( psa_mac_verify_finish( &operation, - verify_mac, sizeof( verify_mac ) ) ); - TEST_EQUAL( psa_mac_verify_finish( &operation, - verify_mac, sizeof( verify_mac ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + PSA_ASSERT(psa_mac_verify_finish(&operation, + verify_mac, sizeof(verify_mac))); + TEST_EQUAL(psa_mac_verify_finish(&operation, + verify_mac, sizeof(verify_mac)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_mac_abort(&operation)); /* Setup sign but try verify. */ - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_mac_verify_finish( &operation, - verify_mac, sizeof( verify_mac ) ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_mac_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_mac_verify_finish(&operation, + verify_mac, sizeof(verify_mac)), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_mac_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Setup verify but try sign. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, input, sizeof( input ) ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_mac_sign_finish( &operation, - sign_mac, sizeof( sign_mac ), - &sign_mac_length ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_mac_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, input, sizeof(input))); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_mac_sign_finish(&operation, + sign_mac, sizeof(sign_mac), + &sign_mac_length), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_mac_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_destroy_key(key)); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_sign_verify_multi( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - int is_verify, - data_t *expected_mac ) +void mac_sign_verify_multi(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + int is_verify, + data_t *expected_mac) { size_t data_part_len = 0; - for( data_part_len = 1; data_part_len <= input->len; data_part_len++ ) - { + for (data_part_len = 1; data_part_len <= input->len; data_part_len++) { /* Split data into length(data_part_len) parts. */ - mbedtls_test_set_step( 2000 + data_part_len ); + mbedtls_test_set_step(2000 + data_part_len); - if( mac_multipart_internal_func( key_type_arg, key_data, - alg_arg, - input, data_part_len, - expected_mac, - is_verify, 0 ) == 0 ) + if (mac_multipart_internal_func(key_type_arg, key_data, + alg_arg, + input, data_part_len, + expected_mac, + is_verify, 0) == 0) { break; + } /* length(0) part, length(data_part_len) part, length(0) part... */ - mbedtls_test_set_step( 3000 + data_part_len ); + mbedtls_test_set_step(3000 + data_part_len); - if( mac_multipart_internal_func( key_type_arg, key_data, - alg_arg, - input, data_part_len, - expected_mac, - is_verify, 1 ) == 0 ) + if (mac_multipart_internal_func(key_type_arg, key_data, + alg_arg, + input, data_part_len, + expected_mac, + is_verify, 1) == 0) { break; + } } /* Goto is required to silence warnings about unused labels, as we @@ -3383,11 +3278,11 @@ void mac_sign_verify_multi( int key_type_arg, /* END_CASE */ /* BEGIN_CASE */ -void mac_sign( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac ) +void mac_sign(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -3396,7 +3291,7 @@ void mac_sign( int key_type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *actual_mac = NULL; size_t mac_buffer_size = - PSA_MAC_LENGTH( key_type, PSA_BYTES_TO_BITS( key_data->len ), alg ); + PSA_MAC_LENGTH(key_type, PSA_BYTES_TO_BITS(key_data->len), alg); size_t mac_length = 0; const size_t output_sizes_to_test[] = { 0, @@ -3406,76 +3301,74 @@ void mac_sign( int key_type_arg, expected_mac->len + 1, }; - TEST_LE_U( mac_buffer_size, PSA_MAC_MAX_SIZE ); + TEST_LE_U(mac_buffer_size, PSA_MAC_MAX_SIZE); /* We expect PSA_MAC_LENGTH to be exact. */ - TEST_ASSERT( expected_mac->len == mac_buffer_size ); + TEST_ASSERT(expected_mac->len == mac_buffer_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - for( size_t i = 0; i < ARRAY_LENGTH( output_sizes_to_test ); i++ ) - { + for (size_t i = 0; i < ARRAY_LENGTH(output_sizes_to_test); i++) { const size_t output_size = output_sizes_to_test[i]; psa_status_t expected_status = - ( output_size >= expected_mac->len ? PSA_SUCCESS : - PSA_ERROR_BUFFER_TOO_SMALL ); + (output_size >= expected_mac->len ? PSA_SUCCESS : + PSA_ERROR_BUFFER_TOO_SMALL); - mbedtls_test_set_step( output_size ); - ASSERT_ALLOC( actual_mac, output_size ); + mbedtls_test_set_step(output_size); + ASSERT_ALLOC(actual_mac, output_size); /* Calculate the MAC, one-shot case. */ - TEST_EQUAL( psa_mac_compute( key, alg, - input->x, input->len, - actual_mac, output_size, &mac_length ), - expected_status ); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_mac->x, expected_mac->len, - actual_mac, mac_length ); + TEST_EQUAL(psa_mac_compute(key, alg, + input->x, input->len, + actual_mac, output_size, &mac_length), + expected_status); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_mac->x, expected_mac->len, + actual_mac, mac_length); } - if( output_size > 0 ) - memset( actual_mac, 0, output_size ); + if (output_size > 0) { + memset(actual_mac, 0, output_size); + } /* Calculate the MAC, multi-part case. */ - PSA_ASSERT( psa_mac_sign_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input->x, input->len ) ); - TEST_EQUAL( psa_mac_sign_finish( &operation, - actual_mac, output_size, - &mac_length ), - expected_status ); - PSA_ASSERT( psa_mac_abort( &operation ) ); + PSA_ASSERT(psa_mac_sign_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input->x, input->len)); + TEST_EQUAL(psa_mac_sign_finish(&operation, + actual_mac, output_size, + &mac_length), + expected_status); + PSA_ASSERT(psa_mac_abort(&operation)); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_mac->x, expected_mac->len, - actual_mac, mac_length ); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_mac->x, expected_mac->len, + actual_mac, mac_length); } - mbedtls_free( actual_mac ); + mbedtls_free(actual_mac); actual_mac = NULL; } exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( actual_mac ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(actual_mac); } /* END_CASE */ /* BEGIN_CASE */ -void mac_verify( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac ) +void mac_verify(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -3484,93 +3377,92 @@ void mac_verify( int key_type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *perturbed_mac = NULL; - TEST_LE_U( expected_mac->len, PSA_MAC_MAX_SIZE ); + TEST_LE_U(expected_mac->len, PSA_MAC_MAX_SIZE); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Verify correct MAC, one-shot case. */ - PSA_ASSERT( psa_mac_verify( key, alg, input->x, input->len, - expected_mac->x, expected_mac->len ) ); + PSA_ASSERT(psa_mac_verify(key, alg, input->x, input->len, + expected_mac->x, expected_mac->len)); /* Verify correct MAC, multi-part case. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input->x, input->len ) ); - PSA_ASSERT( psa_mac_verify_finish( &operation, - expected_mac->x, - expected_mac->len ) ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input->x, input->len)); + PSA_ASSERT(psa_mac_verify_finish(&operation, + expected_mac->x, + expected_mac->len)); /* Test a MAC that's too short, one-shot case. */ - TEST_EQUAL( psa_mac_verify( key, alg, - input->x, input->len, - expected_mac->x, - expected_mac->len - 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_mac_verify(key, alg, + input->x, input->len, + expected_mac->x, + expected_mac->len - 1), + PSA_ERROR_INVALID_SIGNATURE); /* Test a MAC that's too short, multi-part case. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input->x, input->len ) ); - TEST_EQUAL( psa_mac_verify_finish( &operation, - expected_mac->x, - expected_mac->len - 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input->x, input->len)); + TEST_EQUAL(psa_mac_verify_finish(&operation, + expected_mac->x, + expected_mac->len - 1), + PSA_ERROR_INVALID_SIGNATURE); /* Test a MAC that's too long, one-shot case. */ - ASSERT_ALLOC( perturbed_mac, expected_mac->len + 1 ); - memcpy( perturbed_mac, expected_mac->x, expected_mac->len ); - TEST_EQUAL( psa_mac_verify( key, alg, - input->x, input->len, - perturbed_mac, expected_mac->len + 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + ASSERT_ALLOC(perturbed_mac, expected_mac->len + 1); + memcpy(perturbed_mac, expected_mac->x, expected_mac->len); + TEST_EQUAL(psa_mac_verify(key, alg, + input->x, input->len, + perturbed_mac, expected_mac->len + 1), + PSA_ERROR_INVALID_SIGNATURE); /* Test a MAC that's too long, multi-part case. */ - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input->x, input->len ) ); - TEST_EQUAL( psa_mac_verify_finish( &operation, - perturbed_mac, - expected_mac->len + 1 ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input->x, input->len)); + TEST_EQUAL(psa_mac_verify_finish(&operation, + perturbed_mac, + expected_mac->len + 1), + PSA_ERROR_INVALID_SIGNATURE); /* Test changing one byte. */ - for( size_t i = 0; i < expected_mac->len; i++ ) - { - mbedtls_test_set_step( i ); + for (size_t i = 0; i < expected_mac->len; i++) { + mbedtls_test_set_step(i); perturbed_mac[i] ^= 1; - TEST_EQUAL( psa_mac_verify( key, alg, - input->x, input->len, - perturbed_mac, expected_mac->len ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_mac_verify(key, alg, + input->x, input->len, + perturbed_mac, expected_mac->len), + PSA_ERROR_INVALID_SIGNATURE); - PSA_ASSERT( psa_mac_verify_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_mac_update( &operation, - input->x, input->len ) ); - TEST_EQUAL( psa_mac_verify_finish( &operation, - perturbed_mac, - expected_mac->len ), - PSA_ERROR_INVALID_SIGNATURE ); + PSA_ASSERT(psa_mac_verify_setup(&operation, key, alg)); + PSA_ASSERT(psa_mac_update(&operation, + input->x, input->len)); + TEST_EQUAL(psa_mac_verify_finish(&operation, + perturbed_mac, + expected_mac->len), + PSA_ERROR_INVALID_SIGNATURE); perturbed_mac[i] ^= 1; } exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( perturbed_mac ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(perturbed_mac); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_operation_init( ) +void cipher_operation_init() { const uint8_t input[1] = { 0 }; unsigned char output[1] = { 0 }; @@ -3579,41 +3471,41 @@ void cipher_operation_init( ) * Clang 5 complains when `-Wmissing-field-initializers` is used, even * though it's OK by the C standard. We could test for this, but we'd need * to suppress the Clang warning for the test. */ - psa_cipher_operation_t func = psa_cipher_operation_init( ); + psa_cipher_operation_t func = psa_cipher_operation_init(); psa_cipher_operation_t init = PSA_CIPHER_OPERATION_INIT; psa_cipher_operation_t zero; - memset( &zero, 0, sizeof( zero ) ); + memset(&zero, 0, sizeof(zero)); /* A freshly-initialized cipher operation should not be usable. */ - TEST_EQUAL( psa_cipher_update( &func, - input, sizeof( input ), - output, sizeof( output ), - &output_length ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_cipher_update( &init, - input, sizeof( input ), - output, sizeof( output ), - &output_length ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_cipher_update( &zero, - input, sizeof( input ), - output, sizeof( output ), - &output_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_cipher_update(&func, + input, sizeof(input), + output, sizeof(output), + &output_length), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_cipher_update(&init, + input, sizeof(input), + output, sizeof(output), + &output_length), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_cipher_update(&zero, + input, sizeof(input), + output, sizeof(output), + &output_length), + PSA_ERROR_BAD_STATE); /* A default cipher operation should be abortable without error. */ - PSA_ASSERT( psa_cipher_abort( &func ) ); - PSA_ASSERT( psa_cipher_abort( &init ) ); - PSA_ASSERT( psa_cipher_abort( &zero ) ); + PSA_ASSERT(psa_cipher_abort(&func)); + PSA_ASSERT(psa_cipher_abort(&init)); + PSA_ASSERT(psa_cipher_abort(&zero)); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_setup( int key_type_arg, - data_t *key, - int alg_arg, - int expected_status_arg ) +void cipher_setup(int key_type_arg, + data_t *key, + int alg_arg, + int expected_status_arg) { psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; @@ -3624,32 +3516,34 @@ void cipher_setup( int key_type_arg, const uint8_t smoke_test_key_data[16] = "kkkkkkkkkkkkkkkk"; #endif - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - if( ! exercise_cipher_setup( key_type, key->x, key->len, alg, - &operation, &status ) ) + if (!exercise_cipher_setup(key_type, key->x, key->len, alg, + &operation, &status)) { goto exit; - TEST_EQUAL( status, expected_status ); + } + TEST_EQUAL(status, expected_status); /* The operation object should be reusable. */ #if defined(KNOWN_SUPPORTED_CIPHER_ALG) - if( ! exercise_cipher_setup( KNOWN_SUPPORTED_CIPHER_KEY_TYPE, - smoke_test_key_data, - sizeof( smoke_test_key_data ), - KNOWN_SUPPORTED_CIPHER_ALG, - &operation, &status ) ) + if (!exercise_cipher_setup(KNOWN_SUPPORTED_CIPHER_KEY_TYPE, + smoke_test_key_data, + sizeof(smoke_test_key_data), + KNOWN_SUPPORTED_CIPHER_ALG, + &operation, &status)) { goto exit; - TEST_EQUAL( status, PSA_SUCCESS ); + } + TEST_EQUAL(status, PSA_SUCCESS); #endif exit: - psa_cipher_abort( &operation ); - PSA_DONE( ); + psa_cipher_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CBC_PKCS7 */ -void cipher_bad_order( ) +void cipher_bad_order() { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = PSA_KEY_TYPE_AES; @@ -3659,180 +3553,182 @@ void cipher_bad_order( ) unsigned char iv[PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES)] = { 0 }; const uint8_t key_data[] = { 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, - 0xaa, 0xaa, 0xaa, 0xaa }; + 0xaa, 0xaa, 0xaa, 0xaa + }; const uint8_t text[] = { 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, - 0xbb, 0xbb, 0xbb, 0xbb }; + 0xbb, 0xbb, 0xbb, 0xbb + }; uint8_t buffer[PSA_BLOCK_CIPHER_BLOCK_LENGTH(PSA_KEY_TYPE_AES)] = { 0 }; size_t length = 0; - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_data, sizeof( key_data ), - &key ) ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_data, sizeof(key_data), + &key)); /* Call encrypt setup twice in a row. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_encrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_encrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call decrypt setup twice in a row. */ - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_decrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_decrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Generate an IV without calling setup beforehand. */ - TEST_EQUAL( psa_cipher_generate_iv( &operation, - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + TEST_EQUAL(psa_cipher_generate_iv(&operation, + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Generate an IV twice in a row. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_generate_iv( &operation, - buffer, sizeof( buffer ), - &length ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_generate_iv( &operation, - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_generate_iv(&operation, + buffer, sizeof(buffer), + &length)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_generate_iv(&operation, + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Generate an IV after it's already set. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ) ); - TEST_EQUAL( psa_cipher_generate_iv( &operation, - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_set_iv(&operation, + iv, sizeof(iv))); + TEST_EQUAL(psa_cipher_generate_iv(&operation, + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Set an IV without calling setup beforehand. */ - TEST_EQUAL( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + TEST_EQUAL(psa_cipher_set_iv(&operation, + iv, sizeof(iv)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Set an IV after it's already set. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_set_iv(&operation, + iv, sizeof(iv))); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_set_iv(&operation, + iv, sizeof(iv)), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Set an IV after it's already generated. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_generate_iv( &operation, - buffer, sizeof( buffer ), - &length ) ); - TEST_EQUAL( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_generate_iv(&operation, + buffer, sizeof(buffer), + &length)); + TEST_EQUAL(psa_cipher_set_iv(&operation, + iv, sizeof(iv)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Call update without calling setup beforehand. */ - TEST_EQUAL( psa_cipher_update( &operation, - text, sizeof( text ), - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + TEST_EQUAL(psa_cipher_update(&operation, + text, sizeof(text), + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Call update without an IV where an IV is required. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_update( &operation, - text, sizeof( text ), - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_update(&operation, + text, sizeof(text), + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call update after finish. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ) ); - PSA_ASSERT( psa_cipher_finish( &operation, - buffer, sizeof( buffer ), &length ) ); - TEST_EQUAL( psa_cipher_update( &operation, - text, sizeof( text ), - buffer, sizeof( buffer ), - &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_set_iv(&operation, + iv, sizeof(iv))); + PSA_ASSERT(psa_cipher_finish(&operation, + buffer, sizeof(buffer), &length)); + TEST_EQUAL(psa_cipher_update(&operation, + text, sizeof(text), + buffer, sizeof(buffer), + &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Call finish without calling setup beforehand. */ - TEST_EQUAL( psa_cipher_finish( &operation, - buffer, sizeof( buffer ), &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + TEST_EQUAL(psa_cipher_finish(&operation, + buffer, sizeof(buffer), &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); /* Call finish without an IV where an IV is required. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); /* Not calling update means we are encrypting an empty buffer, which is OK * for cipher modes with padding. */ - ASSERT_OPERATION_IS_ACTIVE( operation ); - TEST_EQUAL( psa_cipher_finish( &operation, - buffer, sizeof( buffer ), &length ), - PSA_ERROR_BAD_STATE ); - ASSERT_OPERATION_IS_INACTIVE( operation ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_OPERATION_IS_INACTIVE( operation ); + ASSERT_OPERATION_IS_ACTIVE(operation); + TEST_EQUAL(psa_cipher_finish(&operation, + buffer, sizeof(buffer), &length), + PSA_ERROR_BAD_STATE); + ASSERT_OPERATION_IS_INACTIVE(operation); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_OPERATION_IS_INACTIVE(operation); /* Call finish twice in a row. */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_set_iv( &operation, - iv, sizeof( iv ) ) ); - PSA_ASSERT( psa_cipher_finish( &operation, - buffer, sizeof( buffer ), &length ) ); - TEST_EQUAL( psa_cipher_finish( &operation, - buffer, sizeof( buffer ), &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_abort( &operation ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_set_iv(&operation, + iv, sizeof(iv))); + PSA_ASSERT(psa_cipher_finish(&operation, + buffer, sizeof(buffer), &length)); + TEST_EQUAL(psa_cipher_finish(&operation, + buffer, sizeof(buffer), &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_abort(&operation)); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_destroy_key(key)); exit: - psa_cipher_abort( &operation ); - PSA_DONE( ); + psa_cipher_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_fail( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *input, - int expected_status_arg ) +void cipher_encrypt_fail(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *input, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_status_t status; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; psa_status_t expected_status = expected_status_arg; - unsigned char iv[PSA_CIPHER_IV_MAX_SIZE] = {0}; + unsigned char iv[PSA_CIPHER_IV_MAX_SIZE] = { 0 }; size_t iv_size = PSA_CIPHER_IV_MAX_SIZE; size_t iv_length = 0; unsigned char *output = NULL; @@ -3842,74 +3738,66 @@ void cipher_encrypt_fail( int alg_arg, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - if ( PSA_ERROR_BAD_STATE != expected_status ) - { - PSA_ASSERT( psa_crypto_init( ) ); + if (PSA_ERROR_BAD_STATE != expected_status) { + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, - input->len ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, + input->len); + ASSERT_ALLOC(output, output_buffer_size); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); } /* Encrypt, one-shot */ - status = psa_cipher_encrypt( key, alg, input->x, input->len, output, - output_buffer_size, &output_length ); + status = psa_cipher_encrypt(key, alg, input->x, input->len, output, + output_buffer_size, &output_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); /* Encrypt, multi-part */ - status = psa_cipher_encrypt_setup( &operation, key, alg ); - if( status == PSA_SUCCESS ) - { - if( alg != PSA_ALG_ECB_NO_PADDING ) - { - PSA_ASSERT( psa_cipher_generate_iv( &operation, - iv, iv_size, - &iv_length ) ); + status = psa_cipher_encrypt_setup(&operation, key, alg); + if (status == PSA_SUCCESS) { + if (alg != PSA_ALG_ECB_NO_PADDING) { + PSA_ASSERT(psa_cipher_generate_iv(&operation, + iv, iv_size, + &iv_length)); } - status = psa_cipher_update( &operation, input->x, input->len, - output, output_buffer_size, - &function_output_length ); - if( status == PSA_SUCCESS ) - { + status = psa_cipher_update(&operation, input->x, input->len, + output, output_buffer_size, + &function_output_length); + if (status == PSA_SUCCESS) { output_length += function_output_length; - status = psa_cipher_finish( &operation, output + output_length, - output_buffer_size - output_length, - &function_output_length ); + status = psa_cipher_finish(&operation, output + output_length, + output_buffer_size - output_length, + &function_output_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); + } else { + TEST_EQUAL(status, expected_status); } - else - { - TEST_EQUAL( status, expected_status ); - } - } - else - { - TEST_EQUAL( status, expected_status ); + } else { + TEST_EQUAL(status, expected_status); } exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_validate_iv_length( int alg, int key_type, data_t* key_data, - data_t *input, int iv_length, - int expected_result ) +void cipher_encrypt_validate_iv_length(int alg, int key_type, data_t *key_data, + data_t *input, int iv_length, + int expected_result) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; @@ -3917,32 +3805,32 @@ void cipher_encrypt_validate_iv_length( int alg, int key_type, data_t* key_data, size_t output_buffer_size = 0; unsigned char *output = NULL; - output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len); + ASSERT_ALLOC(output, output_buffer_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( expected_result, psa_cipher_set_iv( &operation, output, - iv_length ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + TEST_EQUAL(expected_result, psa_cipher_set_iv(&operation, output, + iv_length)); exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_alg_without_iv( int alg_arg, int key_type_arg, data_t *key_data, - data_t *plaintext, data_t *ciphertext ) +void cipher_alg_without_iv(int alg_arg, int key_type_arg, data_t *key_data, + data_t *plaintext, data_t *ciphertext) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -3954,111 +3842,111 @@ void cipher_alg_without_iv( int alg_arg, int key_type_arg, data_t *key_data, size_t output_length, length; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Validate size macros */ - TEST_LE_U( ciphertext->len, - PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, plaintext->len ) ); - TEST_LE_U( PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, plaintext->len ), - PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( plaintext->len ) ); - TEST_LE_U( plaintext->len, - PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, ciphertext->len ) ); - TEST_LE_U( PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, ciphertext->len ), - PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( ciphertext->len ) ); + TEST_LE_U(ciphertext->len, + PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, plaintext->len)); + TEST_LE_U(PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, plaintext->len), + PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE(plaintext->len)); + TEST_LE_U(plaintext->len, + PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, ciphertext->len)); + TEST_LE_U(PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, ciphertext->len), + PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE(ciphertext->len)); /* Set up key and output buffer */ - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, - plaintext->len ); - ASSERT_ALLOC( output, output_buffer_size ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + output_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, + plaintext->len); + ASSERT_ALLOC(output, output_buffer_size); /* set_iv() is not allowed */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( psa_cipher_set_iv( &operation, iv, sizeof( iv ) ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( psa_cipher_set_iv( &operation, iv, sizeof( iv ) ), - PSA_ERROR_BAD_STATE ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + TEST_EQUAL(psa_cipher_set_iv(&operation, iv, sizeof(iv)), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); + TEST_EQUAL(psa_cipher_set_iv(&operation, iv, sizeof(iv)), + PSA_ERROR_BAD_STATE); /* generate_iv() is not allowed */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( psa_cipher_generate_iv( &operation, iv, sizeof( iv ), - &length ), - PSA_ERROR_BAD_STATE ); - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( psa_cipher_generate_iv( &operation, iv, sizeof( iv ), - &length ), - PSA_ERROR_BAD_STATE ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + TEST_EQUAL(psa_cipher_generate_iv(&operation, iv, sizeof(iv), + &length), + PSA_ERROR_BAD_STATE); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); + TEST_EQUAL(psa_cipher_generate_iv(&operation, iv, sizeof(iv), + &length), + PSA_ERROR_BAD_STATE); /* Multipart encryption */ - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); output_length = 0; length = ~0; - PSA_ASSERT( psa_cipher_update( &operation, - plaintext->x, plaintext->len, - output, output_buffer_size, - &length ) ); - TEST_LE_U( length, output_buffer_size ); + PSA_ASSERT(psa_cipher_update(&operation, + plaintext->x, plaintext->len, + output, output_buffer_size, + &length)); + TEST_LE_U(length, output_buffer_size); output_length += length; - PSA_ASSERT( psa_cipher_finish( &operation, - mbedtls_buffer_offset( output, output_length ), - output_buffer_size - output_length, - &length ) ); + PSA_ASSERT(psa_cipher_finish(&operation, + mbedtls_buffer_offset(output, output_length), + output_buffer_size - output_length, + &length)); output_length += length; - ASSERT_COMPARE( ciphertext->x, ciphertext->len, - output, output_length ); + ASSERT_COMPARE(ciphertext->x, ciphertext->len, + output, output_length); /* Multipart encryption */ - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); output_length = 0; length = ~0; - PSA_ASSERT( psa_cipher_update( &operation, - ciphertext->x, ciphertext->len, - output, output_buffer_size, - &length ) ); - TEST_LE_U( length, output_buffer_size ); + PSA_ASSERT(psa_cipher_update(&operation, + ciphertext->x, ciphertext->len, + output, output_buffer_size, + &length)); + TEST_LE_U(length, output_buffer_size); output_length += length; - PSA_ASSERT( psa_cipher_finish( &operation, - mbedtls_buffer_offset( output, output_length ), - output_buffer_size - output_length, - &length ) ); + PSA_ASSERT(psa_cipher_finish(&operation, + mbedtls_buffer_offset(output, output_length), + output_buffer_size - output_length, + &length)); output_length += length; - ASSERT_COMPARE( plaintext->x, plaintext->len, - output, output_length ); + ASSERT_COMPARE(plaintext->x, plaintext->len, + output, output_length); /* One-shot encryption */ output_length = ~0; - PSA_ASSERT( psa_cipher_encrypt( key, alg, plaintext->x, plaintext->len, - output, output_buffer_size, - &output_length ) ); - ASSERT_COMPARE( ciphertext->x, ciphertext->len, - output, output_length ); + PSA_ASSERT(psa_cipher_encrypt(key, alg, plaintext->x, plaintext->len, + output, output_buffer_size, + &output_length)); + ASSERT_COMPARE(ciphertext->x, ciphertext->len, + output, output_length); /* One-shot decryption */ output_length = ~0; - PSA_ASSERT( psa_cipher_decrypt( key, alg, ciphertext->x, ciphertext->len, - output, output_buffer_size, - &output_length ) ); - ASSERT_COMPARE( plaintext->x, plaintext->len, - output, output_length ); + PSA_ASSERT(psa_cipher_decrypt(key, alg, ciphertext->x, ciphertext->len, + output, output_buffer_size, + &output_length)); + ASSERT_COMPARE(plaintext->x, plaintext->len, + output, output_length); exit: - PSA_ASSERT( psa_cipher_abort( &operation ) ); - mbedtls_free( output ); - psa_cipher_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + PSA_ASSERT(psa_cipher_abort(&operation)); + mbedtls_free(output); + psa_cipher_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_bad_key( int alg_arg, int key_type_arg, data_t *key_data ) +void cipher_bad_key(int alg_arg, int key_type_arg, data_t *key_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -4067,46 +3955,46 @@ void cipher_bad_key( int alg_arg, int key_type_arg, data_t *key_data ) psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); /* Usage of either of these two size macros would cause divide by zero * with incorrect key types previously. Input length should be irrelevant * here. */ - TEST_EQUAL( PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, 16 ), - 0 ); - TEST_EQUAL( PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, 16 ), 0 ); + TEST_EQUAL(PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, 16), + 0); + TEST_EQUAL(PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, 16), 0); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Should fail due to invalid alg type (to support invalid key type). * Encrypt or decrypt will end up in the same place. */ - status = psa_cipher_encrypt_setup( &operation, key, alg ); + status = psa_cipher_encrypt_setup(&operation, key, alg); - TEST_EQUAL( status, PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(status, PSA_ERROR_INVALID_ARGUMENT); exit: - psa_cipher_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_validation( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *input ) +void cipher_encrypt_validation(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *input) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; - size_t iv_size = PSA_CIPHER_IV_LENGTH ( key_type, alg ); + size_t iv_size = PSA_CIPHER_IV_LENGTH(key_type, alg); unsigned char *output1 = NULL; size_t output1_buffer_size = 0; size_t output1_length = 0; @@ -4117,74 +4005,74 @@ void cipher_encrypt_validation( int alg_arg, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ); - output2_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) + - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ); - ASSERT_ALLOC( output1, output1_buffer_size ); - ASSERT_ALLOC( output2, output2_buffer_size ); + output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len); + output2_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input->len) + + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg); + ASSERT_ALLOC(output1, output1_buffer_size); + ASSERT_ALLOC(output2, output2_buffer_size); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* The one-shot cipher encryption uses generated iv so validating the output is not possible. Validating with multipart encryption. */ - PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, output1, - output1_buffer_size, &output1_length ) ); - TEST_LE_U( output1_length, - PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) ); - TEST_LE_U( output1_length, - PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) ); + PSA_ASSERT(psa_cipher_encrypt(key, alg, input->x, input->len, output1, + output1_buffer_size, &output1_length)); + TEST_LE_U(output1_length, + PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len)); + TEST_LE_U(output1_length, + PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE(input->len)); - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - PSA_ASSERT( psa_cipher_set_iv( &operation, output1, iv_size ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + PSA_ASSERT(psa_cipher_set_iv(&operation, output1, iv_size)); - PSA_ASSERT( psa_cipher_update( &operation, - input->x, input->len, - output2, output2_buffer_size, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len ) ); + PSA_ASSERT(psa_cipher_update(&operation, + input->x, input->len, + output2, output2_buffer_size, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input->len)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(input->len)); output2_length += function_output_length; - PSA_ASSERT( psa_cipher_finish( &operation, - output2 + output2_length, - output2_buffer_size - output2_length, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE ); + PSA_ASSERT(psa_cipher_finish(&operation, + output2 + output2_length, + output2_buffer_size - output2_length, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE); output2_length += function_output_length; - PSA_ASSERT( psa_cipher_abort( &operation ) ); - ASSERT_COMPARE( output1 + iv_size, output1_length - iv_size, - output2, output2_length ); + PSA_ASSERT(psa_cipher_abort(&operation)); + ASSERT_COMPARE(output1 + iv_size, output1_length - iv_size, + output2, output2_length); exit: - psa_cipher_abort( &operation ); - mbedtls_free( output1 ); - mbedtls_free( output2 ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output1); + mbedtls_free(output2); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_multipart( int alg_arg, int key_type_arg, - data_t *key_data, data_t *iv, - data_t *input, - int first_part_size_arg, - int output1_length_arg, int output2_length_arg, - data_t *expected_output, - int expected_status_arg ) +void cipher_encrypt_multipart(int alg_arg, int key_type_arg, + data_t *key_data, data_t *iv, + data_t *input, + int first_part_size_arg, + int output1_length_arg, int output2_length_arg, + data_t *expected_output, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4201,92 +4089,89 @@ void cipher_encrypt_multipart( int alg_arg, int key_type_arg, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); - if( iv->len > 0 ) - { - PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) ); + if (iv->len > 0) { + PSA_ASSERT(psa_cipher_set_iv(&operation, iv->x, iv->len)); } - output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) + - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input->len) + + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg); + ASSERT_ALLOC(output, output_buffer_size); - TEST_LE_U( first_part_size, input->len ); - PSA_ASSERT( psa_cipher_update( &operation, input->x, first_part_size, - output, output_buffer_size, - &function_output_length ) ); - TEST_ASSERT( function_output_length == output1_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( first_part_size) ); + TEST_LE_U(first_part_size, input->len); + PSA_ASSERT(psa_cipher_update(&operation, input->x, first_part_size, + output, output_buffer_size, + &function_output_length)); + TEST_ASSERT(function_output_length == output1_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(first_part_size)); total_output_length += function_output_length; - if( first_part_size < input->len ) - { - PSA_ASSERT( psa_cipher_update( &operation, - input->x + first_part_size, - input->len - first_part_size, - ( output_buffer_size == 0 ? NULL : - output + total_output_length ), - output_buffer_size - total_output_length, - &function_output_length ) ); - TEST_ASSERT( function_output_length == output2_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, - alg, - input->len - first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len ) ); + if (first_part_size < input->len) { + PSA_ASSERT(psa_cipher_update(&operation, + input->x + first_part_size, + input->len - first_part_size, + (output_buffer_size == 0 ? NULL : + output + total_output_length), + output_buffer_size - total_output_length, + &function_output_length)); + TEST_ASSERT(function_output_length == output2_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, + alg, + input->len - first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(input->len)); total_output_length += function_output_length; } - status = psa_cipher_finish( &operation, - ( output_buffer_size == 0 ? NULL : - output + total_output_length ), - output_buffer_size - total_output_length, - &function_output_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE ); + status = psa_cipher_finish(&operation, + (output_buffer_size == 0 ? NULL : + output + total_output_length), + output_buffer_size - total_output_length, + &function_output_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE); total_output_length += function_output_length; - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_cipher_abort( &operation ) ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_cipher_abort(&operation)); - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, total_output_length ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, total_output_length); } exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_decrypt_multipart( int alg_arg, int key_type_arg, - data_t *key_data, data_t *iv, - data_t *input, - int first_part_size_arg, - int output1_length_arg, int output2_length_arg, - data_t *expected_output, - int expected_status_arg ) +void cipher_decrypt_multipart(int alg_arg, int key_type_arg, + data_t *key_data, data_t *iv, + data_t *input, + int first_part_size_arg, + int output1_length_arg, int output2_length_arg, + data_t *expected_output, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4303,92 +4188,89 @@ void cipher_decrypt_multipart( int alg_arg, int key_type_arg, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); - if( iv->len > 0 ) - { - PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) ); + if (iv->len > 0) { + PSA_ASSERT(psa_cipher_set_iv(&operation, iv->x, iv->len)); } - output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) + - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input->len) + + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg); + ASSERT_ALLOC(output, output_buffer_size); - TEST_LE_U( first_part_size, input->len ); - PSA_ASSERT( psa_cipher_update( &operation, - input->x, first_part_size, - output, output_buffer_size, - &function_output_length ) ); - TEST_ASSERT( function_output_length == output1_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( first_part_size ) ); + TEST_LE_U(first_part_size, input->len); + PSA_ASSERT(psa_cipher_update(&operation, + input->x, first_part_size, + output, output_buffer_size, + &function_output_length)); + TEST_ASSERT(function_output_length == output1_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(first_part_size)); total_output_length += function_output_length; - if( first_part_size < input->len ) - { - PSA_ASSERT( psa_cipher_update( &operation, - input->x + first_part_size, - input->len - first_part_size, - ( output_buffer_size == 0 ? NULL : - output + total_output_length ), - output_buffer_size - total_output_length, - &function_output_length ) ); - TEST_ASSERT( function_output_length == output2_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, - alg, - input->len - first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len ) ); + if (first_part_size < input->len) { + PSA_ASSERT(psa_cipher_update(&operation, + input->x + first_part_size, + input->len - first_part_size, + (output_buffer_size == 0 ? NULL : + output + total_output_length), + output_buffer_size - total_output_length, + &function_output_length)); + TEST_ASSERT(function_output_length == output2_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, + alg, + input->len - first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(input->len)); total_output_length += function_output_length; } - status = psa_cipher_finish( &operation, - ( output_buffer_size == 0 ? NULL : - output + total_output_length ), - output_buffer_size - total_output_length, - &function_output_length ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE ); + status = psa_cipher_finish(&operation, + (output_buffer_size == 0 ? NULL : + output + total_output_length), + output_buffer_size - total_output_length, + &function_output_length); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE); total_output_length += function_output_length; - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_cipher_abort( &operation ) ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_cipher_abort(&operation)); - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, total_output_length ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, total_output_length); } exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_decrypt_fail( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *iv, - data_t *input_arg, - int expected_status_arg ) +void cipher_decrypt_fail(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *iv, + data_t *input_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_status_t status; @@ -4405,101 +4287,90 @@ void cipher_decrypt_fail( int alg_arg, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - if ( PSA_ERROR_BAD_STATE != expected_status ) - { - PSA_ASSERT( psa_crypto_init( ) ); + if (PSA_ERROR_BAD_STATE != expected_status) { + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); } /* Allocate input buffer and copy the iv and the plaintext */ - input_buffer_size = ( (size_t) input_arg->len + (size_t) iv->len ); - if ( input_buffer_size > 0 ) - { - ASSERT_ALLOC( input, input_buffer_size ); - memcpy( input, iv->x, iv->len ); - memcpy( input + iv->len, input_arg->x, input_arg->len ); + input_buffer_size = ((size_t) input_arg->len + (size_t) iv->len); + if (input_buffer_size > 0) { + ASSERT_ALLOC(input, input_buffer_size); + memcpy(input, iv->x, iv->len); + memcpy(input + iv->len, input_arg->x, input_arg->len); } - output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, input_buffer_size); + ASSERT_ALLOC(output, output_buffer_size); /* Decrypt, one-short */ - status = psa_cipher_decrypt( key, alg, input, input_buffer_size, output, - output_buffer_size, &output_length ); - TEST_EQUAL( status, expected_status ); + status = psa_cipher_decrypt(key, alg, input, input_buffer_size, output, + output_buffer_size, &output_length); + TEST_EQUAL(status, expected_status); /* Decrypt, multi-part */ - status = psa_cipher_decrypt_setup( &operation, key, alg ); - if( status == PSA_SUCCESS ) - { - output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, - input_arg->len ) + - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ); - ASSERT_ALLOC( output_multi, output_buffer_size ); + status = psa_cipher_decrypt_setup(&operation, key, alg); + if (status == PSA_SUCCESS) { + output_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, + input_arg->len) + + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg); + ASSERT_ALLOC(output_multi, output_buffer_size); - if( iv->len > 0 ) - { - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); + if (iv->len > 0) { + status = psa_cipher_set_iv(&operation, iv->x, iv->len); - if( status != PSA_SUCCESS ) - TEST_EQUAL( status, expected_status ); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_status); + } } - if( status == PSA_SUCCESS ) - { - status = psa_cipher_update( &operation, - input_arg->x, input_arg->len, - output_multi, output_buffer_size, - &function_output_length ); - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { + status = psa_cipher_update(&operation, + input_arg->x, input_arg->len, + output_multi, output_buffer_size, + &function_output_length); + if (status == PSA_SUCCESS) { output_length = function_output_length; - status = psa_cipher_finish( &operation, - output_multi + output_length, - output_buffer_size - output_length, - &function_output_length ); + status = psa_cipher_finish(&operation, + output_multi + output_length, + output_buffer_size - output_length, + &function_output_length); - TEST_EQUAL( status, expected_status ); - } - else - { - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); + } else { + TEST_EQUAL(status, expected_status); } + } else { + TEST_EQUAL(status, expected_status); } - else - { - TEST_EQUAL( status, expected_status ); - } - } - else - { - TEST_EQUAL( status, expected_status ); + } else { + TEST_EQUAL(status, expected_status); } exit: - psa_cipher_abort( &operation ); - mbedtls_free( input ); - mbedtls_free( output ); - mbedtls_free( output_multi ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(input); + mbedtls_free(output); + mbedtls_free(output_multi); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_decrypt( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *iv, - data_t *input_arg, - data_t *expected_output ) +void cipher_decrypt(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *iv, + data_t *input_arg, + data_t *expected_output) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4511,49 +4382,48 @@ void cipher_decrypt( int alg_arg, size_t output_length = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); /* Allocate input buffer and copy the iv and the plaintext */ - input_buffer_size = ( (size_t) input_arg->len + (size_t) iv->len ); - if ( input_buffer_size > 0 ) - { - ASSERT_ALLOC( input, input_buffer_size ); - memcpy( input, iv->x, iv->len ); - memcpy( input + iv->len, input_arg->x, input_arg->len ); + input_buffer_size = ((size_t) input_arg->len + (size_t) iv->len); + if (input_buffer_size > 0) { + ASSERT_ALLOC(input, input_buffer_size); + memcpy(input, iv->x, iv->len); + memcpy(input + iv->len, input_arg->x, input_arg->len); } - output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, input_buffer_size); + ASSERT_ALLOC(output, output_buffer_size); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_decrypt( key, alg, input, input_buffer_size, output, - output_buffer_size, &output_length ) ); - TEST_LE_U( output_length, - PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size ) ); - TEST_LE_U( output_length, - PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( input_buffer_size ) ); + PSA_ASSERT(psa_cipher_decrypt(key, alg, input, input_buffer_size, output, + output_buffer_size, &output_length)); + TEST_LE_U(output_length, + PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, input_buffer_size)); + TEST_LE_U(output_length, + PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE(input_buffer_size)); - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, output_length ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, output_length); exit: - mbedtls_free( input ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(input); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_verify_output( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *input ) +void cipher_verify_output(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *input) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4566,58 +4436,58 @@ void cipher_verify_output( int alg_arg, size_t output2_length = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - output1_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ); - ASSERT_ALLOC( output1, output1_size ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + output1_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len); + ASSERT_ALLOC(output1, output1_size); - PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, - output1, output1_size, - &output1_length ) ); - TEST_LE_U( output1_length, - PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ) ); - TEST_LE_U( output1_length, - PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) ); + PSA_ASSERT(psa_cipher_encrypt(key, alg, input->x, input->len, + output1, output1_size, + &output1_length)); + TEST_LE_U(output1_length, + PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len)); + TEST_LE_U(output1_length, + PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE(input->len)); output2_size = output1_length; - ASSERT_ALLOC( output2, output2_size ); + ASSERT_ALLOC(output2, output2_size); - PSA_ASSERT( psa_cipher_decrypt( key, alg, output1, output1_length, - output2, output2_size, - &output2_length ) ); - TEST_LE_U( output2_length, - PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, output1_length ) ); - TEST_LE_U( output2_length, - PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( output1_length ) ); + PSA_ASSERT(psa_cipher_decrypt(key, alg, output1, output1_length, + output2, output2_size, + &output2_length)); + TEST_LE_U(output2_length, + PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, output1_length)); + TEST_LE_U(output2_length, + PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE(output1_length)); - ASSERT_COMPARE( input->x, input->len, output2, output2_length ); + ASSERT_COMPARE(input->x, input->len, output2, output2_length); exit: - mbedtls_free( output1 ); - mbedtls_free( output2 ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(output1); + mbedtls_free(output2); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_verify_output_multipart( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *input, - int first_part_size_arg ) +void cipher_verify_output_multipart(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *input, + int first_part_size_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; size_t first_part_size = first_part_size_arg; - unsigned char iv[16] = {0}; + unsigned char iv[16] = { 0 }; size_t iv_size = 16; size_t iv_length = 0; unsigned char *output1 = NULL; @@ -4631,132 +4501,130 @@ void cipher_verify_output_multipart( int alg_arg, psa_cipher_operation_t operation2 = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_encrypt_setup( &operation1, key, alg ) ); - PSA_ASSERT( psa_cipher_decrypt_setup( &operation2, key, alg ) ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation1, key, alg)); + PSA_ASSERT(psa_cipher_decrypt_setup(&operation2, key, alg)); - if( alg != PSA_ALG_ECB_NO_PADDING ) - { - PSA_ASSERT( psa_cipher_generate_iv( &operation1, - iv, iv_size, - &iv_length ) ); + if (alg != PSA_ALG_ECB_NO_PADDING) { + PSA_ASSERT(psa_cipher_generate_iv(&operation1, + iv, iv_size, + &iv_length)); } - output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ); - TEST_LE_U( output1_buffer_size, - PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE( input->len ) ); - ASSERT_ALLOC( output1, output1_buffer_size ); + output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len); + TEST_LE_U(output1_buffer_size, + PSA_CIPHER_ENCRYPT_OUTPUT_MAX_SIZE(input->len)); + ASSERT_ALLOC(output1, output1_buffer_size); - TEST_LE_U( first_part_size, input->len ); + TEST_LE_U(first_part_size, input->len); - PSA_ASSERT( psa_cipher_update( &operation1, input->x, first_part_size, - output1, output1_buffer_size, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( first_part_size ) ); + PSA_ASSERT(psa_cipher_update(&operation1, input->x, first_part_size, + output1, output1_buffer_size, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(first_part_size)); output1_length += function_output_length; - PSA_ASSERT( psa_cipher_update( &operation1, - input->x + first_part_size, - input->len - first_part_size, - output1, output1_buffer_size, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, - alg, - input->len - first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( input->len - first_part_size ) ); + PSA_ASSERT(psa_cipher_update(&operation1, + input->x + first_part_size, + input->len - first_part_size, + output1, output1_buffer_size, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, + alg, + input->len - first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(input->len - first_part_size)); output1_length += function_output_length; - PSA_ASSERT( psa_cipher_finish( &operation1, - output1 + output1_length, - output1_buffer_size - output1_length, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE ); + PSA_ASSERT(psa_cipher_finish(&operation1, + output1 + output1_length, + output1_buffer_size - output1_length, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE); output1_length += function_output_length; - PSA_ASSERT( psa_cipher_abort( &operation1 ) ); + PSA_ASSERT(psa_cipher_abort(&operation1)); output2_buffer_size = output1_length; - TEST_LE_U( output2_buffer_size, - PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, output1_length ) ); - TEST_LE_U( output2_buffer_size, - PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE( output1_length ) ); - ASSERT_ALLOC( output2, output2_buffer_size ); + TEST_LE_U(output2_buffer_size, + PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, output1_length)); + TEST_LE_U(output2_buffer_size, + PSA_CIPHER_DECRYPT_OUTPUT_MAX_SIZE(output1_length)); + ASSERT_ALLOC(output2, output2_buffer_size); - if( iv_length > 0 ) - { - PSA_ASSERT( psa_cipher_set_iv( &operation2, - iv, iv_length ) ); + if (iv_length > 0) { + PSA_ASSERT(psa_cipher_set_iv(&operation2, + iv, iv_length)); } - PSA_ASSERT( psa_cipher_update( &operation2, output1, first_part_size, - output2, output2_buffer_size, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( first_part_size ) ); + PSA_ASSERT(psa_cipher_update(&operation2, output1, first_part_size, + output2, output2_buffer_size, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(first_part_size)); output2_length += function_output_length; - PSA_ASSERT( psa_cipher_update( &operation2, - output1 + first_part_size, - output1_length - first_part_size, - output2, output2_buffer_size, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, - alg, - output1_length - first_part_size ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE( output1_length - first_part_size ) ); + PSA_ASSERT(psa_cipher_update(&operation2, + output1 + first_part_size, + output1_length - first_part_size, + output2, output2_buffer_size, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, + alg, + output1_length - first_part_size)); + TEST_LE_U(function_output_length, + PSA_CIPHER_UPDATE_OUTPUT_MAX_SIZE(output1_length - first_part_size)); output2_length += function_output_length; - PSA_ASSERT( psa_cipher_finish( &operation2, - output2 + output2_length, - output2_buffer_size - output2_length, - &function_output_length ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ) ); - TEST_LE_U( function_output_length, - PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE ); + PSA_ASSERT(psa_cipher_finish(&operation2, + output2 + output2_length, + output2_buffer_size - output2_length, + &function_output_length)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg)); + TEST_LE_U(function_output_length, + PSA_CIPHER_FINISH_OUTPUT_MAX_SIZE); output2_length += function_output_length; - PSA_ASSERT( psa_cipher_abort( &operation2 ) ); + PSA_ASSERT(psa_cipher_abort(&operation2)); - ASSERT_COMPARE( input->x, input->len, output2, output2_length ); + ASSERT_COMPARE(input->x, input->len, output2, output2_length); exit: - psa_cipher_abort( &operation1 ); - psa_cipher_abort( &operation2 ); - mbedtls_free( output1 ); - mbedtls_free( output2 ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation1); + psa_cipher_abort(&operation2); + mbedtls_free(output1); + mbedtls_free(output2); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_encrypt_decrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - int expected_result_arg ) +void aead_encrypt_decrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + int expected_result_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4771,90 +4639,87 @@ void aead_encrypt_decrypt( int key_type_arg, data_t *key_data, psa_status_t expected_result = expected_result_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len + PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); + output_size = input_data->len + PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); /* For all currently defined algorithms, PSA_AEAD_ENCRYPT_OUTPUT_SIZE * should be exact. */ - if( expected_result != PSA_ERROR_INVALID_ARGUMENT && - expected_result != PSA_ERROR_NOT_SUPPORTED ) - { - TEST_EQUAL( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, alg, input_data->len ) ); - TEST_LE_U( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); + if (expected_result != PSA_ERROR_INVALID_ARGUMENT && + expected_result != PSA_ERROR_NOT_SUPPORTED) { + TEST_EQUAL(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_data->len)); + TEST_LE_U(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(input_data->len)); } - ASSERT_ALLOC( output_data, output_size ); + ASSERT_ALLOC(output_data, output_size); - status = psa_aead_encrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, - additional_data->len, - input_data->x, input_data->len, - output_data, output_size, - &output_length ); + status = psa_aead_encrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, + additional_data->len, + input_data->x, input_data->len, + output_data, output_size, + &output_length); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - TEST_EQUAL( status, expected_result ); + TEST_EQUAL(status, expected_result); - if( PSA_SUCCESS == expected_result ) - { - ASSERT_ALLOC( output_data2, output_length ); + if (PSA_SUCCESS == expected_result) { + ASSERT_ALLOC(output_data2, output_length); /* For all currently defined algorithms, PSA_AEAD_DECRYPT_OUTPUT_SIZE * should be exact. */ - TEST_EQUAL( input_data->len, - PSA_AEAD_DECRYPT_OUTPUT_SIZE( key_type, alg, output_length ) ); + TEST_EQUAL(input_data->len, + PSA_AEAD_DECRYPT_OUTPUT_SIZE(key_type, alg, output_length)); - TEST_LE_U( input_data->len, - PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE( output_length ) ); + TEST_LE_U(input_data->len, + PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE(output_length)); - TEST_EQUAL( psa_aead_decrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, - additional_data->len, - output_data, output_length, - output_data2, output_length, - &output_length2 ), - expected_result ); + TEST_EQUAL(psa_aead_decrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, + additional_data->len, + output_data, output_length, + output_data2, output_length, + &output_length2), + expected_result); - ASSERT_COMPARE( input_data->x, input_data->len, - output_data2, output_length2 ); + ASSERT_COMPARE(input_data->x, input_data->len, + output_data2, output_length2); } exit: - psa_destroy_key( key ); - mbedtls_free( output_data ); - mbedtls_free( output_data2 ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output_data); + mbedtls_free(output_data2); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_encrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *expected_result ) +void aead_encrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *expected_result) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4866,62 +4731,61 @@ void aead_encrypt( int key_type_arg, data_t *key_data, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t status = PSA_ERROR_GENERIC_ERROR; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len + PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); + output_size = input_data->len + PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); /* For all currently defined algorithms, PSA_AEAD_ENCRYPT_OUTPUT_SIZE * should be exact. */ - TEST_EQUAL( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, alg, input_data->len ) ); - TEST_LE_U( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); - ASSERT_ALLOC( output_data, output_size ); + TEST_EQUAL(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_data->len)); + TEST_LE_U(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(input_data->len)); + ASSERT_ALLOC(output_data, output_size); - status = psa_aead_encrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, additional_data->len, - input_data->x, input_data->len, - output_data, output_size, - &output_length ); + status = psa_aead_encrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, additional_data->len, + input_data->x, input_data->len, + output_data, output_size, + &output_length); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - PSA_ASSERT( status ); - ASSERT_COMPARE( expected_result->x, expected_result->len, - output_data, output_length ); + PSA_ASSERT(status); + ASSERT_COMPARE(expected_result->x, expected_result->len, + output_data, output_length); exit: - psa_destroy_key( key ); - mbedtls_free( output_data ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output_data); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_decrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *expected_data, - int expected_result_arg ) +void aead_decrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *expected_data, + int expected_result_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -4934,144 +4798,145 @@ void aead_decrypt( int key_type_arg, data_t *key_data, psa_status_t expected_result = expected_result_arg; psa_status_t status = PSA_ERROR_GENERIC_ERROR; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len - PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); - if( expected_result != PSA_ERROR_INVALID_ARGUMENT && - expected_result != PSA_ERROR_NOT_SUPPORTED ) - { + output_size = input_data->len - PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); + if (expected_result != PSA_ERROR_INVALID_ARGUMENT && + expected_result != PSA_ERROR_NOT_SUPPORTED) { /* For all currently defined algorithms, PSA_AEAD_DECRYPT_OUTPUT_SIZE * should be exact. */ - TEST_EQUAL( output_size, - PSA_AEAD_DECRYPT_OUTPUT_SIZE( key_type, alg, input_data->len ) ); - TEST_LE_U( output_size, - PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); + TEST_EQUAL(output_size, + PSA_AEAD_DECRYPT_OUTPUT_SIZE(key_type, alg, input_data->len)); + TEST_LE_U(output_size, + PSA_AEAD_DECRYPT_OUTPUT_MAX_SIZE(input_data->len)); } - ASSERT_ALLOC( output_data, output_size ); + ASSERT_ALLOC(output_data, output_size); - status = psa_aead_decrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, - additional_data->len, - input_data->x, input_data->len, - output_data, output_size, - &output_length ); + status = psa_aead_decrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, + additional_data->len, + input_data->x, input_data->len, + output_data, output_size, + &output_length); /* If the operation is not supported, just skip and not fail in case the * decryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - TEST_EQUAL( status, expected_result ); + TEST_EQUAL(status, expected_result); - if( expected_result == PSA_SUCCESS ) - ASSERT_COMPARE( expected_data->x, expected_data->len, - output_data, output_length ); + if (expected_result == PSA_SUCCESS) { + ASSERT_COMPARE(expected_data->x, expected_data->len, + output_data, output_length); + } exit: - psa_destroy_key( key ); - mbedtls_free( output_data ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output_data); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_encrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - int do_set_lengths, - data_t *expected_output ) +void aead_multipart_encrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + int do_set_lengths, + data_t *expected_output) { size_t ad_part_len = 0; size_t data_part_len = 0; set_lengths_method_t set_lengths_method = DO_NOT_SET_LENGTHS; - for( ad_part_len = 1; ad_part_len <= additional_data->len; ad_part_len++ ) - { - mbedtls_test_set_step( ad_part_len ); + for (ad_part_len = 1; ad_part_len <= additional_data->len; ad_part_len++) { + mbedtls_test_set_step(ad_part_len); - if( do_set_lengths ) - { - if( ad_part_len & 0x01 ) + if (do_set_lengths) { + if (ad_part_len & 0x01) { set_lengths_method = SET_LENGTHS_AFTER_NONCE; - else + } else { set_lengths_method = SET_LENGTHS_BEFORE_NONCE; + } } /* Split ad into length(ad_part_len) parts. */ - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, - ad_part_len, - input_data, -1, - set_lengths_method, - expected_output, - 1, 0 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, + ad_part_len, + input_data, -1, + set_lengths_method, + expected_output, + 1, 0)) { break; - - /* length(0) part, length(ad_part_len) part, length(0) part... */ - mbedtls_test_set_step( 1000 + ad_part_len ); - - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, - ad_part_len, - input_data, -1, - set_lengths_method, - expected_output, - 1, 1 ) ) - break; - } - - for( data_part_len = 1; data_part_len <= input_data->len; data_part_len++ ) - { - /* Split data into length(data_part_len) parts. */ - mbedtls_test_set_step( 2000 + data_part_len ); - - if( do_set_lengths ) - { - if( data_part_len & 0x01 ) - set_lengths_method = SET_LENGTHS_AFTER_NONCE; - else - set_lengths_method = SET_LENGTHS_BEFORE_NONCE; } - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, -1, - input_data, data_part_len, - set_lengths_method, - expected_output, - 1, 0 ) ) + /* length(0) part, length(ad_part_len) part, length(0) part... */ + mbedtls_test_set_step(1000 + ad_part_len); + + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, + ad_part_len, + input_data, -1, + set_lengths_method, + expected_output, + 1, 1)) { break; + } + } + + for (data_part_len = 1; data_part_len <= input_data->len; data_part_len++) { + /* Split data into length(data_part_len) parts. */ + mbedtls_test_set_step(2000 + data_part_len); + + if (do_set_lengths) { + if (data_part_len & 0x01) { + set_lengths_method = SET_LENGTHS_AFTER_NONCE; + } else { + set_lengths_method = SET_LENGTHS_BEFORE_NONCE; + } + } + + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, -1, + input_data, data_part_len, + set_lengths_method, + expected_output, + 1, 0)) { + break; + } /* length(0) part, length(data_part_len) part, length(0) part... */ - mbedtls_test_set_step( 3000 + data_part_len ); + mbedtls_test_set_step(3000 + data_part_len); - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, -1, - input_data, data_part_len, - set_lengths_method, - expected_output, - 1, 1 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, -1, + input_data, data_part_len, + set_lengths_method, + expected_output, + 1, 1)) { break; + } } /* Goto is required to silence warnings about unused labels, as we @@ -5081,88 +4946,90 @@ void aead_multipart_encrypt( int key_type_arg, data_t *key_data, /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_decrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - int do_set_lengths, - data_t *expected_output ) +void aead_multipart_decrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + int do_set_lengths, + data_t *expected_output) { size_t ad_part_len = 0; size_t data_part_len = 0; set_lengths_method_t set_lengths_method = DO_NOT_SET_LENGTHS; - for( ad_part_len = 1; ad_part_len <= additional_data->len; ad_part_len++ ) - { + for (ad_part_len = 1; ad_part_len <= additional_data->len; ad_part_len++) { /* Split ad into length(ad_part_len) parts. */ - mbedtls_test_set_step( ad_part_len ); + mbedtls_test_set_step(ad_part_len); - if( do_set_lengths ) - { - if( ad_part_len & 0x01 ) + if (do_set_lengths) { + if (ad_part_len & 0x01) { set_lengths_method = SET_LENGTHS_AFTER_NONCE; - else + } else { set_lengths_method = SET_LENGTHS_BEFORE_NONCE; + } } - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, - ad_part_len, - input_data, -1, - set_lengths_method, - expected_output, - 0, 0 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, + ad_part_len, + input_data, -1, + set_lengths_method, + expected_output, + 0, 0)) { break; + } /* length(0) part, length(ad_part_len) part, length(0) part... */ - mbedtls_test_set_step( 1000 + ad_part_len ); + mbedtls_test_set_step(1000 + ad_part_len); - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, - ad_part_len, - input_data, -1, - set_lengths_method, - expected_output, - 0, 1 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, + ad_part_len, + input_data, -1, + set_lengths_method, + expected_output, + 0, 1)) { break; + } } - for( data_part_len = 1; data_part_len <= input_data->len; data_part_len++ ) - { + for (data_part_len = 1; data_part_len <= input_data->len; data_part_len++) { /* Split data into length(data_part_len) parts. */ - mbedtls_test_set_step( 2000 + data_part_len ); + mbedtls_test_set_step(2000 + data_part_len); - if( do_set_lengths ) - { - if( data_part_len & 0x01 ) + if (do_set_lengths) { + if (data_part_len & 0x01) { set_lengths_method = SET_LENGTHS_AFTER_NONCE; - else + } else { set_lengths_method = SET_LENGTHS_BEFORE_NONCE; + } } - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, -1, - input_data, data_part_len, - set_lengths_method, - expected_output, - 0, 0 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, -1, + input_data, data_part_len, + set_lengths_method, + expected_output, + 0, 0)) { break; + } /* length(0) part, length(data_part_len) part, length(0) part... */ - mbedtls_test_set_step( 3000 + data_part_len ); + mbedtls_test_set_step(3000 + data_part_len); - if( !aead_multipart_internal_func( key_type_arg, key_data, - alg_arg, nonce, - additional_data, -1, - input_data, data_part_len, - set_lengths_method, - expected_output, - 0, 1 ) ) + if (!aead_multipart_internal_func(key_type_arg, key_data, + alg_arg, nonce, + additional_data, -1, + input_data, data_part_len, + set_lengths_method, + expected_output, + 0, 1)) { break; + } } /* Goto is required to silence warnings about unused labels, as we @@ -5172,13 +5039,13 @@ void aead_multipart_decrypt( int key_type_arg, data_t *key_data, /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_generate_nonce( int key_type_arg, data_t *key_data, - int alg_arg, - int nonce_length, - int expected_nonce_length_arg, - data_t *additional_data, - data_t *input_data, - int expected_status_arg ) +void aead_multipart_generate_nonce(int key_type_arg, data_t *key_data, + int alg_arg, + int nonce_length, + int expected_nonce_length_arg, + data_t *additional_data, + data_t *input_data, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -5199,89 +5066,88 @@ void aead_multipart_generate_nonce( int key_type_arg, data_t *key_data, size_t tag_length = 0; uint8_t tag_buffer[PSA_AEAD_TAG_MAX_SIZE]; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( & attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( & attributes, alg ); - psa_set_key_type( & attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); - output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len ); + output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_data->len); - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); - ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg ); + ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg); - TEST_LE_U( ciphertext_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE ); + TEST_LE_U(ciphertext_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE); - ASSERT_ALLOC( ciphertext, ciphertext_size ); + ASSERT_ALLOC(ciphertext, ciphertext_size); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce_length ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce_length); } - PSA_ASSERT( status ); + PSA_ASSERT(status); - status = psa_aead_generate_nonce( &operation, nonce_buffer, - nonce_length, - &actual_nonce_length ); + status = psa_aead_generate_nonce(&operation, nonce_buffer, + nonce_length, + &actual_nonce_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - TEST_EQUAL( actual_nonce_length, expected_nonce_length ); + TEST_EQUAL(actual_nonce_length, expected_nonce_length); - if( expected_status == PSA_SUCCESS ) - TEST_EQUAL( actual_nonce_length, PSA_AEAD_NONCE_LENGTH( key_type, - alg ) ); + if (expected_status == PSA_SUCCESS) { + TEST_EQUAL(actual_nonce_length, PSA_AEAD_NONCE_LENGTH(key_type, + alg)); + } - TEST_LE_U( actual_nonce_length, PSA_AEAD_NONCE_MAX_SIZE ); + TEST_LE_U(actual_nonce_length, PSA_AEAD_NONCE_MAX_SIZE); - if( expected_status == PSA_SUCCESS ) - { + if (expected_status == PSA_SUCCESS) { /* Ensure we can still complete operation. */ - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - PSA_ASSERT( psa_aead_update( &operation, input_data->x, input_data->len, - output, output_size, - &ciphertext_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, input_data->len, + output, output_size, + &ciphertext_length)); - PSA_ASSERT( psa_aead_finish( &operation, ciphertext, ciphertext_size, - &ciphertext_length, tag_buffer, - PSA_AEAD_TAG_MAX_SIZE, &tag_length ) ); + PSA_ASSERT(psa_aead_finish(&operation, ciphertext, ciphertext_size, + &ciphertext_length, tag_buffer, + PSA_AEAD_TAG_MAX_SIZE, &tag_length)); } exit: - psa_destroy_key( key ); - mbedtls_free( output ); - mbedtls_free( ciphertext ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + mbedtls_free(ciphertext); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_set_nonce( int key_type_arg, data_t *key_data, - int alg_arg, - int nonce_length_arg, - int set_lengths_method_arg, - data_t *additional_data, - data_t *input_data, - int expected_status_arg ) +void aead_multipart_set_nonce(int key_type_arg, data_t *key_data, + int alg_arg, + int nonce_length_arg, + int set_lengths_method_arg, + data_t *additional_data, + data_t *input_data, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -5303,116 +5169,108 @@ void aead_multipart_set_nonce( int key_type_arg, data_t *key_data, size_t index = 0; set_lengths_method_t set_lengths_method = set_lengths_method_arg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); - output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len ); + output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_data->len); - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); - ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg ); + ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg); - TEST_LE_U( ciphertext_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE ); + TEST_LE_U(ciphertext_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE); - ASSERT_ALLOC( ciphertext, ciphertext_size ); + ASSERT_ALLOC(ciphertext, ciphertext_size); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce_length_arg ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce_length_arg); } - PSA_ASSERT( status ); + PSA_ASSERT(status); /* -1 == zero length and valid buffer, 0 = zero length and NULL buffer. */ - if( nonce_length_arg == -1 ) - { - /* Arbitrary size buffer, to test zero length valid buffer. */ - ASSERT_ALLOC( nonce_buffer, 4 ); - nonce_length = 0; - } - else - { + if (nonce_length_arg == -1) { + /* Arbitrary size buffer, to test zero length valid buffer. */ + ASSERT_ALLOC(nonce_buffer, 4); + nonce_length = 0; + } else { /* If length is zero, then this will return NULL. */ - nonce_length = ( size_t ) nonce_length_arg; - ASSERT_ALLOC( nonce_buffer, nonce_length ); + nonce_length = (size_t) nonce_length_arg; + ASSERT_ALLOC(nonce_buffer, nonce_length); - if( nonce_buffer ) - { - for( index = 0; index < nonce_length - 1; ++index ) - { + if (nonce_buffer) { + for (index = 0; index < nonce_length - 1; ++index) { nonce_buffer[index] = 'a' + index; } } } - if( set_lengths_method == SET_LENGTHS_BEFORE_NONCE ) - { - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + if (set_lengths_method == SET_LENGTHS_BEFORE_NONCE) { + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); } - status = psa_aead_set_nonce( &operation, nonce_buffer, nonce_length ); + status = psa_aead_set_nonce(&operation, nonce_buffer, nonce_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { - if( set_lengths_method == SET_LENGTHS_AFTER_NONCE ) - { - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + if (expected_status == PSA_SUCCESS) { + if (set_lengths_method == SET_LENGTHS_AFTER_NONCE) { + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); } - if( operation.alg == PSA_ALG_CCM && set_lengths_method == DO_NOT_SET_LENGTHS ) + if (operation.alg == PSA_ALG_CCM && set_lengths_method == DO_NOT_SET_LENGTHS) { expected_status = PSA_ERROR_BAD_STATE; + } /* Ensure we can still complete operation, unless it's CCM and we didn't set lengths. */ - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - expected_status ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + expected_status); - TEST_EQUAL( psa_aead_update( &operation, input_data->x, input_data->len, - output, output_size, - &ciphertext_length ), - expected_status ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, input_data->len, + output, output_size, + &ciphertext_length), + expected_status); - TEST_EQUAL( psa_aead_finish( &operation, ciphertext, ciphertext_size, - &ciphertext_length, tag_buffer, - PSA_AEAD_TAG_MAX_SIZE, &tag_length ), - expected_status ); + TEST_EQUAL(psa_aead_finish(&operation, ciphertext, ciphertext_size, + &ciphertext_length, tag_buffer, + PSA_AEAD_TAG_MAX_SIZE, &tag_length), + expected_status); } exit: - psa_destroy_key( key ); - mbedtls_free( output ); - mbedtls_free( ciphertext ); - mbedtls_free( nonce_buffer ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + mbedtls_free(ciphertext); + mbedtls_free(nonce_buffer); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_update_buffer_test( int key_type_arg, data_t *key_data, +void aead_multipart_update_buffer_test(int key_type_arg, data_t *key_data, int alg_arg, int output_size_arg, data_t *nonce, data_t *additional_data, data_t *input_data, - int expected_status_arg ) + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -5430,75 +5288,73 @@ void aead_multipart_update_buffer_test( int key_type_arg, data_t *key_data, size_t tag_length = 0; uint8_t tag_buffer[PSA_AEAD_TAG_MAX_SIZE]; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); - ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg ); + ciphertext_size = PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg); - ASSERT_ALLOC( ciphertext, ciphertext_size ); + ASSERT_ALLOC(ciphertext, ciphertext_size); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - PSA_ASSERT( status ); + PSA_ASSERT(status); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - status = psa_aead_update( &operation, input_data->x, input_data->len, - output, output_size, &ciphertext_length ); + status = psa_aead_update(&operation, input_data->x, input_data->len, + output, output_size, &ciphertext_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { + if (expected_status == PSA_SUCCESS) { /* Ensure we can still complete operation. */ - PSA_ASSERT( psa_aead_finish( &operation, ciphertext, ciphertext_size, - &ciphertext_length, tag_buffer, - PSA_AEAD_TAG_MAX_SIZE, &tag_length ) ); + PSA_ASSERT(psa_aead_finish(&operation, ciphertext, ciphertext_size, + &ciphertext_length, tag_buffer, + PSA_AEAD_TAG_MAX_SIZE, &tag_length)); } exit: - psa_destroy_key( key ); - mbedtls_free( output ); - mbedtls_free( ciphertext ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + mbedtls_free(ciphertext); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_finish_buffer_test( int key_type_arg, data_t *key_data, - int alg_arg, - int finish_ciphertext_size_arg, - int tag_size_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - int expected_status_arg ) +void aead_multipart_finish_buffer_test(int key_type_arg, data_t *key_data, + int alg_arg, + int finish_ciphertext_size_arg, + int tag_size_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; @@ -5513,81 +5369,80 @@ void aead_multipart_finish_buffer_test( int key_type_arg, data_t *key_data, unsigned char *tag_buffer = NULL; size_t ciphertext_size = 0; size_t ciphertext_length = 0; - size_t finish_ciphertext_size = ( size_t ) finish_ciphertext_size_arg; - size_t tag_size = ( size_t ) tag_size_arg; + size_t finish_ciphertext_size = (size_t) finish_ciphertext_size_arg; + size_t tag_size = (size_t) tag_size_arg; size_t tag_length = 0; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); - ciphertext_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len ); + ciphertext_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_data->len); - ASSERT_ALLOC( ciphertext, ciphertext_size ); + ASSERT_ALLOC(ciphertext, ciphertext_size); - ASSERT_ALLOC( finish_ciphertext, finish_ciphertext_size ); + ASSERT_ALLOC(finish_ciphertext, finish_ciphertext_size); - ASSERT_ALLOC( tag_buffer, tag_size ); + ASSERT_ALLOC(tag_buffer, tag_size); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - PSA_ASSERT( status ); + PSA_ASSERT(status); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - PSA_ASSERT( psa_aead_update( &operation, input_data->x, input_data->len, - ciphertext, ciphertext_size, &ciphertext_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, input_data->len, + ciphertext, ciphertext_size, &ciphertext_length)); /* Ensure we can still complete operation. */ - status = psa_aead_finish( &operation, finish_ciphertext, - finish_ciphertext_size, - &ciphertext_length, tag_buffer, - tag_size, &tag_length ); + status = psa_aead_finish(&operation, finish_ciphertext, + finish_ciphertext_size, + &ciphertext_length, tag_buffer, + tag_size, &tag_length); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); exit: - psa_destroy_key( key ); - mbedtls_free( ciphertext ); - mbedtls_free( finish_ciphertext ); - mbedtls_free( tag_buffer ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(ciphertext); + mbedtls_free(finish_ciphertext); + mbedtls_free(tag_buffer); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_verify( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *tag, - int tag_usage_arg, - int expected_setup_status_arg, - int expected_status_arg ) +void aead_multipart_verify(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *tag, + int tag_usage_arg, + int expected_setup_status_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -5606,82 +5461,81 @@ void aead_multipart_verify( int key_type_arg, data_t *key_data, unsigned char *tag_buffer = NULL; size_t tag_size = 0; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); - plaintext_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, - input_data->len ); + plaintext_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, + input_data->len); - ASSERT_ALLOC( plaintext, plaintext_size ); + ASSERT_ALLOC(plaintext, plaintext_size); - verify_plaintext_size = PSA_AEAD_VERIFY_OUTPUT_SIZE( key_type, alg ); + verify_plaintext_size = PSA_AEAD_VERIFY_OUTPUT_SIZE(key_type, alg); - ASSERT_ALLOC( finish_plaintext, verify_plaintext_size ); + ASSERT_ALLOC(finish_plaintext, verify_plaintext_size); - status = psa_aead_decrypt_setup( &operation, key, alg ); + status = psa_aead_decrypt_setup(&operation, key, alg); /* If the operation is not supported, just skip and not fail in case the * encryption involves a common limitation of cryptography hardwares and * an alternative implementation. */ - if( status == PSA_ERROR_NOT_SUPPORTED ) - { - MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192( key_type, key_data->len * 8 ); - MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE( alg, nonce->len ); + if (status == PSA_ERROR_NOT_SUPPORTED) { + MBEDTLS_TEST_PSA_SKIP_IF_ALT_AES_192(key_type, key_data->len * 8); + MBEDTLS_TEST_PSA_SKIP_IF_ALT_GCM_NOT_12BYTES_NONCE(alg, nonce->len); } - TEST_EQUAL( status, expected_setup_status ); + TEST_EQUAL(status, expected_setup_status); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( status ); + PSA_ASSERT(status); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - status = psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ); - PSA_ASSERT( status ); + status = psa_aead_set_lengths(&operation, additional_data->len, + input_data->len); + PSA_ASSERT(status); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - input_data->len, - plaintext, plaintext_size, - &plaintext_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + input_data->len, + plaintext, plaintext_size, + &plaintext_length)); - if( tag_usage == USE_GIVEN_TAG ) - { + if (tag_usage == USE_GIVEN_TAG) { tag_buffer = tag->x; tag_size = tag->len; } - status = psa_aead_verify( &operation, finish_plaintext, - verify_plaintext_size, - &plaintext_length, - tag_buffer, tag_size ); + status = psa_aead_verify(&operation, finish_plaintext, + verify_plaintext_size, + &plaintext_length, + tag_buffer, tag_size); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); exit: - psa_destroy_key( key ); - mbedtls_free( plaintext ); - mbedtls_free( finish_plaintext ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(plaintext); + mbedtls_free(finish_plaintext); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_setup( int key_type_arg, data_t *key_data, - int alg_arg, int expected_status_arg ) +void aead_multipart_setup(int key_type_arg, data_t *key_data, + int alg_arg, int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -5691,39 +5545,39 @@ void aead_multipart_setup( int key_type_arg, data_t *key_data, psa_status_t status = PSA_ERROR_GENERIC_ERROR; psa_status_t expected_status = expected_status_arg; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); - status = psa_aead_decrypt_setup( &operation, key, alg ); + status = psa_aead_decrypt_setup(&operation, key, alg); - TEST_EQUAL(status, expected_status ); + TEST_EQUAL(status, expected_status); exit: - psa_destroy_key( key ); - psa_aead_abort( &operation ); - PSA_DONE( ); + psa_destroy_key(key); + psa_aead_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_multipart_state_test( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data ) +void aead_multipart_state_test(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -5743,833 +5597,790 @@ void aead_multipart_state_test( int key_type_arg, data_t *key_data, size_t output_part_length = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( & attributes, - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( & attributes, alg ); - psa_set_key_type( & attributes, key_type ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - tag_length = PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg ); + tag_length = PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg); - TEST_LE_U( tag_length, PSA_AEAD_TAG_MAX_SIZE ); + TEST_LE_U(tag_length, PSA_AEAD_TAG_MAX_SIZE); - output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE( key_type, alg, input_data->len ); + output_size = PSA_AEAD_UPDATE_OUTPUT_SIZE(key_type, alg, input_data->len); - ASSERT_ALLOC( output_data, output_size ); + ASSERT_ALLOC(output_data, output_size); - finish_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE( key_type, alg ); + finish_output_size = PSA_AEAD_FINISH_OUTPUT_SIZE(key_type, alg); - TEST_LE_U( finish_output_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE ); + TEST_LE_U(finish_output_size, PSA_AEAD_FINISH_OUTPUT_MAX_SIZE); - ASSERT_ALLOC( final_data, finish_output_size ); + ASSERT_ALLOC(final_data, finish_output_size); /* Test all operations error without calling setup first. */ - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - TEST_EQUAL( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - TEST_EQUAL( psa_aead_verify( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, - tag_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_verify(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, + tag_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for double setups. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_encrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_encrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_decrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_decrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_decrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_decrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_encrypt_setup( &operation, key, alg ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_encrypt_setup(&operation, key, alg), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for not setting a nonce. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_verify( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, - tag_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_verify(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, + tag_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for double setting nonce. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for double generating nonce. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for generate nonce then set and vice versa */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for generating nonce after calling set lengths */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for generating nonce after calling set lengths with UINT32_MAX ad_data length */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ) ); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len)); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for generating nonce after calling set lengths with SIZE_MAX ad_data length */ #if SIZE_MAX > UINT32_MAX - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - if( operation.alg == PSA_ALG_CCM || operation.alg == PSA_ALG_GCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, SIZE_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, SIZE_MAX, - input_data->len ) ); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + if (operation.alg == PSA_ALG_CCM || operation.alg == PSA_ALG_GCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, SIZE_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, SIZE_MAX, + input_data->len)); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); #endif /* Test for calling set lengths with a UINT32_MAX ad_data length, after generating nonce */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ) ); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ /* Test for setting nonce after calling set lengths */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting nonce after calling set lengths with UINT32_MAX ad_data length */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ) ); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len)); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting nonce after calling set lengths with SIZE_MAX ad_data length */ #if SIZE_MAX > UINT32_MAX - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - if( operation.alg == PSA_ALG_CCM || operation.alg == PSA_ALG_GCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, SIZE_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, SIZE_MAX, - input_data->len ) ); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + if (operation.alg == PSA_ALG_CCM || operation.alg == PSA_ALG_GCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, SIZE_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, SIZE_MAX, + input_data->len)); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); #endif /* Test for calling set lengths with an ad_data length of UINT32_MAX, after setting nonce */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); - } - else - { - PSA_ASSERT( psa_aead_set_lengths( &operation, UINT32_MAX, - input_data->len ) ); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len), + PSA_ERROR_INVALID_ARGUMENT); + } else { + PSA_ASSERT(psa_aead_set_lengths(&operation, UINT32_MAX, + input_data->len)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting nonce after calling set lengths with plaintext length of SIZE_MAX */ #if SIZE_MAX > UINT32_MAX - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - if( operation.alg == PSA_ALG_GCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - SIZE_MAX ), - PSA_ERROR_INVALID_ARGUMENT ); - TEST_EQUAL( psa_aead_set_nonce( &operation, nonce->x, nonce->len ), - PSA_ERROR_BAD_STATE ); - } - else if ( operation.alg != PSA_ALG_CCM ) - { - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - SIZE_MAX ) ); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + if (operation.alg == PSA_ALG_GCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + SIZE_MAX), + PSA_ERROR_INVALID_ARGUMENT); + TEST_EQUAL(psa_aead_set_nonce(&operation, nonce->x, nonce->len), + PSA_ERROR_BAD_STATE); + } else if (operation.alg != PSA_ALG_CCM) { + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + SIZE_MAX)); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for calling set lengths with a plaintext length of SIZE_MAX, after setting nonce */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg == PSA_ALG_GCM ) - { - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - SIZE_MAX ), - PSA_ERROR_INVALID_ARGUMENT ); - } - else if ( operation.alg != PSA_ALG_CCM ) - { - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - SIZE_MAX ) ); + if (operation.alg == PSA_ALG_GCM) { + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + SIZE_MAX), + PSA_ERROR_INVALID_ARGUMENT); + } else if (operation.alg != PSA_ALG_CCM) { + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + SIZE_MAX)); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); #endif /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for generating nonce in decrypt setup. */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - TEST_EQUAL( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting lengths twice. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting lengths after setting nonce + already starting data. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg == PSA_ALG_CCM ) - { + if (operation.alg == PSA_ALG_CCM) { - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); + + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - else - { - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); - - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); - } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_BAD_STATE ); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length)); + + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - else - { - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ) ); - - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); - } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg == PSA_ALG_CCM ) - { - PSA_ASSERT( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ) ); + if (operation.alg == PSA_ALG_CCM) { + PSA_ASSERT(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size)); + } else { + PSA_ASSERT(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size)); + + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - else - { - PSA_ASSERT( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ) ); - - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); - } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for setting lengths after generating nonce + already starting data. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); - if( operation.alg == PSA_ALG_CCM ) - { + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); + if (operation.alg == PSA_ALG_CCM) { - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); + + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - else - { - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); - - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); - } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); - if( operation.alg == PSA_ALG_CCM ) - { - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_BAD_STATE ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); + if (operation.alg == PSA_ALG_CCM) { + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_BAD_STATE); + } else { + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length)); + + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - else - { - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ) ); - - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); - } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_generate_nonce( &operation, nonce_buffer, - PSA_AEAD_NONCE_MAX_SIZE, - &nonce_length ) ); - if( operation.alg == PSA_ALG_CCM ) - { - PSA_ASSERT( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ) ); - } - else - { - PSA_ASSERT( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ) ); + PSA_ASSERT(psa_aead_generate_nonce(&operation, nonce_buffer, + PSA_AEAD_NONCE_MAX_SIZE, + &nonce_length)); + if (operation.alg == PSA_ALG_CCM) { + PSA_ASSERT(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size)); + } else { + PSA_ASSERT(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size)); - TEST_EQUAL( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len), + PSA_ERROR_BAD_STATE); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for not sending any additional data or data after setting non zero * lengths for them. (encrypt) */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - TEST_EQUAL( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for not sending any additional data or data after setting non-zero * lengths for them. (decrypt) */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - TEST_EQUAL( psa_aead_verify( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, - tag_length ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_verify(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, + tag_length), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for not sending any additional data after setting a non-zero length * for it. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for not sending any data after setting a non-zero length for it.*/ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - TEST_EQUAL( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for sending too much additional data after setting lengths. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, 0, 0 ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, 0, 0)); - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - 1 ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + 1), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test for sending too much data after setting lengths. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, 0, 0 ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, 0, 0)); - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* ------------------------------------------------------- */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length)); - TEST_EQUAL( psa_aead_update( &operation, input_data->x, - 1, output_data, - output_size, &output_length ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_aead_update(&operation, input_data->x, + 1, output_data, + output_size, &output_length), + PSA_ERROR_INVALID_ARGUMENT); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test sending additional data after data. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - if( operation.alg != PSA_ALG_CCM ) - { - PSA_ASSERT( psa_aead_update( &operation, input_data->x, - input_data->len, output_data, - output_size, &output_length ) ); + if (operation.alg != PSA_ALG_CCM) { + PSA_ASSERT(psa_aead_update(&operation, input_data->x, + input_data->len, output_data, + output_size, &output_length)); - TEST_EQUAL( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len), + PSA_ERROR_BAD_STATE); } - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test calling finish on decryption. */ - PSA_ASSERT( psa_aead_decrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_decrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - TEST_EQUAL( psa_aead_finish( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, tag_length, - &tag_size ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_finish(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, tag_length, + &tag_size), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); /* Test calling verify on encryption. */ - PSA_ASSERT( psa_aead_encrypt_setup( &operation, key, alg ) ); + PSA_ASSERT(psa_aead_encrypt_setup(&operation, key, alg)); - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - TEST_EQUAL( psa_aead_verify( &operation, final_data, - finish_output_size, - &output_part_length, - tag_buffer, - tag_length ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_aead_verify(&operation, final_data, + finish_output_size, + &output_part_length, + tag_buffer, + tag_length), + PSA_ERROR_BAD_STATE); - psa_aead_abort( &operation ); + psa_aead_abort(&operation); exit: - psa_destroy_key( key ); - psa_aead_abort( &operation ); - mbedtls_free( output_data ); - mbedtls_free( final_data ); - PSA_DONE( ); + psa_destroy_key(key); + psa_aead_abort(&operation); + mbedtls_free(output_data); + mbedtls_free(final_data); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void signature_size( int type_arg, - int bits, - int alg_arg, - int expected_size_arg ) +void signature_size(int type_arg, + int bits, + int alg_arg, + int expected_size_arg) { psa_key_type_t type = type_arg; psa_algorithm_t alg = alg_arg; - size_t actual_size = PSA_SIGN_OUTPUT_SIZE( type, bits, alg ); + size_t actual_size = PSA_SIGN_OUTPUT_SIZE(type, bits, alg); - TEST_EQUAL( actual_size, (size_t) expected_size_arg ); + TEST_EQUAL(actual_size, (size_t) expected_size_arg); exit: ; @@ -6577,9 +6388,9 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void sign_hash_deterministic( int key_type_arg, data_t *key_data, - int alg_arg, data_t *input_data, - data_t *output_data ) +void sign_hash_deterministic(int key_type_arg, data_t *key_data, + int alg_arg, data_t *input_data, + data_t *output_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -6590,51 +6401,51 @@ void sign_hash_deterministic( int key_type_arg, data_t *key_data, size_t signature_length = 0xdeadbeef; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); /* Allocate a buffer which has the size advertised by the * library. */ - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, - key_bits, alg ); - TEST_ASSERT( signature_size != 0 ); - TEST_LE_U( signature_size, PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, + key_bits, alg); + TEST_ASSERT(signature_size != 0); + TEST_LE_U(signature_size, PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); /* Perform the signature. */ - PSA_ASSERT( psa_sign_hash( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ) ); + PSA_ASSERT(psa_sign_hash(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length)); /* Verify that the signature is what is expected. */ - ASSERT_COMPARE( output_data->x, output_data->len, - signature, signature_length ); + ASSERT_COMPARE(output_data->x, output_data->len, + signature, signature_length); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_hash_fail( int key_type_arg, data_t *key_data, - int alg_arg, data_t *input_data, - int signature_size_arg, int expected_status_arg ) +void sign_hash_fail(int key_type_arg, data_t *key_data, + int alg_arg, data_t *input_data, + int signature_size_arg, int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -6646,39 +6457,39 @@ void sign_hash_fail( int key_type_arg, data_t *key_data, size_t signature_length = 0xdeadbeef; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - ASSERT_ALLOC( signature, signature_size ); + ASSERT_ALLOC(signature, signature_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - actual_status = psa_sign_hash( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ); - TEST_EQUAL( actual_status, expected_status ); + actual_status = psa_sign_hash(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length); + TEST_EQUAL(actual_status, expected_status); /* The value of *signature_length is unspecified on error, but * whatever it is, it should be less than signature_size, so that * if the caller tries to read *signature_length bytes without * checking the error code then they don't overflow a buffer. */ - TEST_LE_U( signature_length, signature_size ); + TEST_LE_U(signature_length, signature_size); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_verify_hash( int key_type_arg, data_t *key_data, - int alg_arg, data_t *input_data ) +void sign_verify_hash(int key_type_arg, data_t *key_data, + int alg_arg, data_t *input_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -6689,49 +6500,48 @@ void sign_verify_hash( int key_type_arg, data_t *key_data, size_t signature_length = 0xdeadbeef; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); /* Allocate a buffer which has the size advertised by the * library. */ - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, - key_bits, alg ); - TEST_ASSERT( signature_size != 0 ); - TEST_LE_U( signature_size, PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, + key_bits, alg); + TEST_ASSERT(signature_size != 0); + TEST_LE_U(signature_size, PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); /* Perform the signature. */ - PSA_ASSERT( psa_sign_hash( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ) ); + PSA_ASSERT(psa_sign_hash(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length)); /* Check that the signature length looks sensible. */ - TEST_LE_U( signature_length, signature_size ); - TEST_ASSERT( signature_length > 0 ); + TEST_LE_U(signature_length, signature_size); + TEST_ASSERT(signature_length > 0); /* Use the library to verify that the signature is correct. */ - PSA_ASSERT( psa_verify_hash( key, alg, - input_data->x, input_data->len, - signature, signature_length ) ); + PSA_ASSERT(psa_verify_hash(key, alg, + input_data->x, input_data->len, + signature, signature_length)); - if( input_data->len != 0 ) - { + if (input_data->len != 0) { /* Flip a bit in the input and verify that the signature is now * detected as invalid. Flip a bit at the beginning, not at the end, * because ECDSA may ignore the last few bits of the input. */ input_data->x[0] ^= 1; - TEST_EQUAL( psa_verify_hash( key, alg, - input_data->x, input_data->len, - signature, signature_length ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_verify_hash(key, alg, + input_data->x, input_data->len, + signature, signature_length), + PSA_ERROR_INVALID_SIGNATURE); } exit: @@ -6739,51 +6549,51 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void verify_hash( int key_type_arg, data_t *key_data, - int alg_arg, data_t *hash_data, - data_t *signature_data ) +void verify_hash(int key_type_arg, data_t *key_data, + int alg_arg, data_t *hash_data, + data_t *signature_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - TEST_LE_U( signature_data->len, PSA_SIGNATURE_MAX_SIZE ); + TEST_LE_U(signature_data->len, PSA_SIGNATURE_MAX_SIZE); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_verify_hash( key, alg, - hash_data->x, hash_data->len, - signature_data->x, signature_data->len ) ); + PSA_ASSERT(psa_verify_hash(key, alg, + hash_data->x, hash_data->len, + signature_data->x, signature_data->len)); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void verify_hash_fail( int key_type_arg, data_t *key_data, - int alg_arg, data_t *hash_data, - data_t *signature_data, - int expected_status_arg ) +void verify_hash_fail(int key_type_arg, data_t *key_data, + int alg_arg, data_t *hash_data, + data_t *signature_data, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -6792,33 +6602,33 @@ void verify_hash_fail( int key_type_arg, data_t *key_data, psa_status_t expected_status = expected_status_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - actual_status = psa_verify_hash( key, alg, - hash_data->x, hash_data->len, - signature_data->x, signature_data->len ); - TEST_EQUAL( actual_status, expected_status ); + actual_status = psa_verify_hash(key, alg, + hash_data->x, hash_data->len, + signature_data->x, signature_data->len); + TEST_EQUAL(actual_status, expected_status); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_message_deterministic( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *output_data ) +void sign_message_deterministic(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + data_t *output_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -6829,231 +6639,230 @@ void sign_message_deterministic( int key_type_arg, size_t signature_length = 0xdeadbeef; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_ASSERT( signature_size != 0 ); - TEST_LE_U( signature_size, PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_ASSERT(signature_size != 0); + TEST_LE_U(signature_size, PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); - PSA_ASSERT( psa_sign_message( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ) ); + PSA_ASSERT(psa_sign_message(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length)); - ASSERT_COMPARE( output_data->x, output_data->len, - signature, signature_length ); + ASSERT_COMPARE(output_data->x, output_data->len, + signature, signature_length); exit: - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_message_fail( int key_type_arg, +void sign_message_fail(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + int signature_size_arg, + int expected_status_arg) +{ + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_type_t key_type = key_type_arg; + psa_algorithm_t alg = alg_arg; + size_t signature_size = signature_size_arg; + psa_status_t actual_status; + psa_status_t expected_status = expected_status_arg; + unsigned char *signature = NULL; + size_t signature_length = 0xdeadbeef; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + ASSERT_ALLOC(signature, signature_size); + + PSA_ASSERT(psa_crypto_init()); + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + + actual_status = psa_sign_message(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length); + TEST_EQUAL(actual_status, expected_status); + /* The value of *signature_length is unspecified on error, but + * whatever it is, it should be less than signature_size, so that + * if the caller tries to read *signature_length bytes without + * checking the error code then they don't overflow a buffer. */ + TEST_LE_U(signature_length, signature_size); + +exit: + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void sign_verify_message(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data) +{ + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_type_t key_type = key_type_arg; + psa_algorithm_t alg = alg_arg; + size_t key_bits; + unsigned char *signature = NULL; + size_t signature_size; + size_t signature_length = 0xdeadbeef; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + PSA_ASSERT(psa_crypto_init()); + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE | + PSA_KEY_USAGE_VERIFY_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); + + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_ASSERT(signature_size != 0); + TEST_LE_U(signature_size, PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); + + PSA_ASSERT(psa_sign_message(key, alg, + input_data->x, input_data->len, + signature, signature_size, + &signature_length)); + TEST_LE_U(signature_length, signature_size); + TEST_ASSERT(signature_length > 0); + + PSA_ASSERT(psa_verify_message(key, alg, + input_data->x, input_data->len, + signature, signature_length)); + + if (input_data->len != 0) { + /* Flip a bit in the input and verify that the signature is now + * detected as invalid. Flip a bit at the beginning, not at the end, + * because ECDSA may ignore the last few bits of the input. */ + input_data->x[0] ^= 1; + TEST_EQUAL(psa_verify_message(key, alg, + input_data->x, input_data->len, + signature, signature_length), + PSA_ERROR_INVALID_SIGNATURE); + } + +exit: + psa_reset_key_attributes(&attributes); + + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void verify_message(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + data_t *signature_data) +{ + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_type_t key_type = key_type_arg; + psa_algorithm_t alg = alg_arg; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + TEST_LE_U(signature_data->len, PSA_SIGNATURE_MAX_SIZE); + + PSA_ASSERT(psa_crypto_init()); + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + + PSA_ASSERT(psa_verify_message(key, alg, + input_data->x, input_data->len, + signature_data->x, signature_data->len)); + +exit: + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void verify_message_fail(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *hash_data, + data_t *signature_data, + int expected_status_arg) +{ + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_type_t key_type = key_type_arg; + psa_algorithm_t alg = alg_arg; + psa_status_t actual_status; + psa_status_t expected_status = expected_status_arg; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + + PSA_ASSERT(psa_crypto_init()); + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + + actual_status = psa_verify_message(key, alg, + hash_data->x, hash_data->len, + signature_data->x, + signature_data->len); + TEST_EQUAL(actual_status, expected_status); + +exit: + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void asymmetric_encrypt(int key_type_arg, data_t *key_data, int alg_arg, data_t *input_data, - int signature_size_arg, - int expected_status_arg ) -{ - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_type_t key_type = key_type_arg; - psa_algorithm_t alg = alg_arg; - size_t signature_size = signature_size_arg; - psa_status_t actual_status; - psa_status_t expected_status = expected_status_arg; - unsigned char *signature = NULL; - size_t signature_length = 0xdeadbeef; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - - ASSERT_ALLOC( signature, signature_size ); - - PSA_ASSERT( psa_crypto_init( ) ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - - actual_status = psa_sign_message( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ); - TEST_EQUAL( actual_status, expected_status ); - /* The value of *signature_length is unspecified on error, but - * whatever it is, it should be less than signature_size, so that - * if the caller tries to read *signature_length bytes without - * checking the error code then they don't overflow a buffer. */ - TEST_LE_U( signature_length, signature_size ); - -exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void sign_verify_message( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data ) -{ - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_type_t key_type = key_type_arg; - psa_algorithm_t alg = alg_arg; - size_t key_bits; - unsigned char *signature = NULL; - size_t signature_size; - size_t signature_length = 0xdeadbeef; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - - PSA_ASSERT( psa_crypto_init( ) ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE | - PSA_KEY_USAGE_VERIFY_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); - - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_ASSERT( signature_size != 0 ); - TEST_LE_U( signature_size, PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); - - PSA_ASSERT( psa_sign_message( key, alg, - input_data->x, input_data->len, - signature, signature_size, - &signature_length ) ); - TEST_LE_U( signature_length, signature_size ); - TEST_ASSERT( signature_length > 0 ); - - PSA_ASSERT( psa_verify_message( key, alg, - input_data->x, input_data->len, - signature, signature_length ) ); - - if( input_data->len != 0 ) - { - /* Flip a bit in the input and verify that the signature is now - * detected as invalid. Flip a bit at the beginning, not at the end, - * because ECDSA may ignore the last few bits of the input. */ - input_data->x[0] ^= 1; - TEST_EQUAL( psa_verify_message( key, alg, - input_data->x, input_data->len, - signature, signature_length ), - PSA_ERROR_INVALID_SIGNATURE ); - } - -exit: - psa_reset_key_attributes( &attributes ); - - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void verify_message( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *signature_data ) -{ - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_type_t key_type = key_type_arg; - psa_algorithm_t alg = alg_arg; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - - TEST_LE_U( signature_data->len, PSA_SIGNATURE_MAX_SIZE ); - - PSA_ASSERT( psa_crypto_init( ) ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - - PSA_ASSERT( psa_verify_message( key, alg, - input_data->x, input_data->len, - signature_data->x, signature_data->len ) ); - -exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void verify_message_fail( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *hash_data, - data_t *signature_data, - int expected_status_arg ) -{ - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_type_t key_type = key_type_arg; - psa_algorithm_t alg = alg_arg; - psa_status_t actual_status; - psa_status_t expected_status = expected_status_arg; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - - PSA_ASSERT( psa_crypto_init( ) ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - - actual_status = psa_verify_message( key, alg, - hash_data->x, hash_data->len, - signature_data->x, - signature_data->len ); - TEST_EQUAL( actual_status, expected_status ); - -exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void asymmetric_encrypt( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *label, - int expected_output_length_arg, - int expected_status_arg ) + data_t *label, + int expected_output_length_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -7067,46 +6876,46 @@ void asymmetric_encrypt( int key_type_arg, psa_status_t expected_status = expected_status_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Import the key */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Determine the maximum output length */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_LE_U( output_size, PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output, output_size ); + output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_LE_U(output_size, PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output, output_size); /* Encrypt the input */ - actual_status = psa_asymmetric_encrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ); - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( output_length, expected_output_length ); + actual_status = psa_asymmetric_encrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length); + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(output_length, expected_output_length); /* If the label is empty, the test framework puts a non-null pointer * in label->x. Test that a null pointer works as well. */ - if( label->len == 0 ) - { + if (label->len == 0) { output_length = ~0; - if( output_size != 0 ) - memset( output, 0, output_size ); - actual_status = psa_asymmetric_encrypt( key, alg, - input_data->x, input_data->len, - NULL, label->len, - output, output_size, - &output_length ); - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( output_length, expected_output_length ); + if (output_size != 0) { + memset(output, 0, output_size); + } + actual_status = psa_asymmetric_encrypt(key, alg, + input_data->x, input_data->len, + NULL, label->len, + output, output_size, + &output_length); + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(output_length, expected_output_length); } exit: @@ -7114,20 +6923,20 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( output ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encrypt_decrypt( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *label ) +void asymmetric_encrypt_decrypt(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + data_t *label) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -7141,70 +6950,70 @@ void asymmetric_encrypt_decrypt( int key_type_arg, size_t output2_length = ~0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Determine the maximum ciphertext length */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_LE_U( output_size, PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output, output_size ); + output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_LE_U(output_size, PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output, output_size); output2_size = input_data->len; - TEST_LE_U( output2_size, - PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE( key_type, key_bits, alg ) ); - TEST_LE_U( output2_size, PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output2, output2_size ); + TEST_LE_U(output2_size, + PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE(key_type, key_bits, alg)); + TEST_LE_U(output2_size, PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output2, output2_size); /* We test encryption by checking that encrypt-then-decrypt gives back * the original plaintext because of the non-optional random * part of encryption process which prevents using fixed vectors. */ - PSA_ASSERT( psa_asymmetric_encrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ) ); + PSA_ASSERT(psa_asymmetric_encrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length)); /* We don't know what ciphertext length to expect, but check that * it looks sensible. */ - TEST_LE_U( output_length, output_size ); + TEST_LE_U(output_length, output_size); - PSA_ASSERT( psa_asymmetric_decrypt( key, alg, - output, output_length, - label->x, label->len, - output2, output2_size, - &output2_length ) ); - ASSERT_COMPARE( input_data->x, input_data->len, - output2, output2_length ); + PSA_ASSERT(psa_asymmetric_decrypt(key, alg, + output, output_length, + label->x, label->len, + output2, output2_size, + &output2_length)); + ASSERT_COMPARE(input_data->x, input_data->len, + output2, output2_length); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( output ); - mbedtls_free( output2 ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + mbedtls_free(output2); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_decrypt( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *label, - data_t *expected_data ) +void asymmetric_decrypt(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + data_t *label, + data_t *expected_data) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -7215,65 +7024,65 @@ void asymmetric_decrypt( int key_type_arg, size_t output_length = ~0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); /* Determine the maximum ciphertext length */ - output_size = PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_LE_U( output_size, PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output, output_size ); + output_size = PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_LE_U(output_size, PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output, output_size); - PSA_ASSERT( psa_asymmetric_decrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, - output_size, - &output_length ) ); - ASSERT_COMPARE( expected_data->x, expected_data->len, - output, output_length ); + PSA_ASSERT(psa_asymmetric_decrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, + output_size, + &output_length)); + ASSERT_COMPARE(expected_data->x, expected_data->len, + output, output_length); /* If the label is empty, the test framework puts a non-null pointer * in label->x. Test that a null pointer works as well. */ - if( label->len == 0 ) - { + if (label->len == 0) { output_length = ~0; - if( output_size != 0 ) - memset( output, 0, output_size ); - PSA_ASSERT( psa_asymmetric_decrypt( key, alg, - input_data->x, input_data->len, - NULL, label->len, - output, - output_size, - &output_length ) ); - ASSERT_COMPARE( expected_data->x, expected_data->len, - output, output_length ); + if (output_size != 0) { + memset(output, 0, output_size); + } + PSA_ASSERT(psa_asymmetric_decrypt(key, alg, + input_data->x, input_data->len, + NULL, label->len, + output, + output_size, + &output_length)); + ASSERT_COMPARE(expected_data->x, expected_data->len, + output, output_length); } exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( output ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_decrypt_fail( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input_data, - data_t *label, - int output_size_arg, - int expected_status_arg ) +void asymmetric_decrypt_fail(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input_data, + data_t *label, + int output_size_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -7285,135 +7094,135 @@ void asymmetric_decrypt_fail( int key_type_arg, psa_status_t expected_status = expected_status_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - actual_status = psa_asymmetric_decrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ); - TEST_EQUAL( actual_status, expected_status ); - TEST_LE_U( output_length, output_size ); + actual_status = psa_asymmetric_decrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length); + TEST_EQUAL(actual_status, expected_status); + TEST_LE_U(output_length, output_size); /* If the label is empty, the test framework puts a non-null pointer * in label->x. Test that a null pointer works as well. */ - if( label->len == 0 ) - { + if (label->len == 0) { output_length = ~0; - if( output_size != 0 ) - memset( output, 0, output_size ); - actual_status = psa_asymmetric_decrypt( key, alg, - input_data->x, input_data->len, - NULL, label->len, - output, output_size, - &output_length ); - TEST_EQUAL( actual_status, expected_status ); - TEST_LE_U( output_length, output_size ); + if (output_size != 0) { + memset(output, 0, output_size); + } + actual_status = psa_asymmetric_decrypt(key, alg, + input_data->x, input_data->len, + NULL, label->len, + output, output_size, + &output_length); + TEST_EQUAL(actual_status, expected_status); + TEST_LE_U(output_length, output_size); } exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( output ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_derivation_init( ) +void key_derivation_init() { /* Test each valid way of initializing the object, except for `= {0}`, as * Clang 5 complains when `-Wmissing-field-initializers` is used, even * though it's OK by the C standard. We could test for this, but we'd need * to suppress the Clang warning for the test. */ size_t capacity; - psa_key_derivation_operation_t func = psa_key_derivation_operation_init( ); + psa_key_derivation_operation_t func = psa_key_derivation_operation_init(); psa_key_derivation_operation_t init = PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t zero; - memset( &zero, 0, sizeof( zero ) ); + memset(&zero, 0, sizeof(zero)); /* A default operation should not be able to report its capacity. */ - TEST_EQUAL( psa_key_derivation_get_capacity( &func, &capacity ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_key_derivation_get_capacity( &init, &capacity ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_key_derivation_get_capacity( &zero, &capacity ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_key_derivation_get_capacity(&func, &capacity), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_key_derivation_get_capacity(&init, &capacity), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_key_derivation_get_capacity(&zero, &capacity), + PSA_ERROR_BAD_STATE); /* A default operation should be abortable without error. */ - PSA_ASSERT( psa_key_derivation_abort(&func) ); - PSA_ASSERT( psa_key_derivation_abort(&init) ); - PSA_ASSERT( psa_key_derivation_abort(&zero) ); + PSA_ASSERT(psa_key_derivation_abort(&func)); + PSA_ASSERT(psa_key_derivation_abort(&init)); + PSA_ASSERT(psa_key_derivation_abort(&zero)); } /* END_CASE */ /* BEGIN_CASE */ -void derive_setup( int alg_arg, int expected_status_arg ) +void derive_setup(int alg_arg, int expected_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t expected_status = expected_status_arg; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - TEST_EQUAL( psa_key_derivation_setup( &operation, alg ), - expected_status ); + TEST_EQUAL(psa_key_derivation_setup(&operation, alg), + expected_status); exit: - psa_key_derivation_abort( &operation ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_set_capacity( int alg_arg, int capacity_arg, - int expected_status_arg ) +void derive_set_capacity(int alg_arg, int capacity_arg, + int expected_status_arg) { psa_algorithm_t alg = alg_arg; size_t capacity = capacity_arg; psa_status_t expected_status = expected_status_arg; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); - TEST_EQUAL( psa_key_derivation_set_capacity( &operation, capacity ), - expected_status ); + TEST_EQUAL(psa_key_derivation_set_capacity(&operation, capacity), + expected_status); exit: - psa_key_derivation_abort( &operation ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_input( int alg_arg, - int step_arg1, int key_type_arg1, data_t *input1, - int expected_status_arg1, - int step_arg2, int key_type_arg2, data_t *input2, - int expected_status_arg2, - int step_arg3, int key_type_arg3, data_t *input3, - int expected_status_arg3, - int output_key_type_arg, int expected_output_status_arg ) +void derive_input(int alg_arg, + int step_arg1, int key_type_arg1, data_t *input1, + int expected_status_arg1, + int step_arg2, int key_type_arg2, data_t *input2, + int expected_status_arg2, + int step_arg3, int key_type_arg3, data_t *input3, + int expected_status_arg3, + int output_key_type_arg, int expected_output_status_arg) { psa_algorithm_t alg = alg_arg; - psa_key_derivation_step_t steps[] = {step_arg1, step_arg2, step_arg3}; - psa_key_type_t key_types[] = {key_type_arg1, key_type_arg2, key_type_arg3}; - psa_status_t expected_statuses[] = {expected_status_arg1, - expected_status_arg2, - expected_status_arg3}; - data_t *inputs[] = {input1, input2, input3}; + psa_key_derivation_step_t steps[] = { step_arg1, step_arg2, step_arg3 }; + psa_key_type_t key_types[] = { key_type_arg1, key_type_arg2, key_type_arg3 }; + psa_status_t expected_statuses[] = { expected_status_arg1, + expected_status_arg2, + expected_status_arg3 }; + data_t *inputs[] = { input1, input2, input3 }; mbedtls_svc_key_id_t keys[] = { MBEDTLS_SVC_KEY_ID_INIT, MBEDTLS_SVC_KEY_ID_INIT, MBEDTLS_SVC_KEY_ID_INIT }; @@ -7425,187 +7234,177 @@ void derive_input( int alg_arg, psa_status_t expected_output_status = expected_output_status_arg; psa_status_t actual_output_status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); - for( i = 0; i < ARRAY_LENGTH( steps ); i++ ) - { - mbedtls_test_set_step( i ); - if( steps[i] == 0 ) - { + for (i = 0; i < ARRAY_LENGTH(steps); i++) { + mbedtls_test_set_step(i); + if (steps[i] == 0) { /* Skip this step */ - } - else if( key_types[i] != PSA_KEY_TYPE_NONE ) - { - psa_set_key_type( &attributes, key_types[i] ); - PSA_ASSERT( psa_import_key( &attributes, - inputs[i]->x, inputs[i]->len, - &keys[i] ) ); - if( PSA_KEY_TYPE_IS_KEY_PAIR( key_types[i] ) && - steps[i] == PSA_KEY_DERIVATION_INPUT_SECRET ) - { + } else if (key_types[i] != PSA_KEY_TYPE_NONE) { + psa_set_key_type(&attributes, key_types[i]); + PSA_ASSERT(psa_import_key(&attributes, + inputs[i]->x, inputs[i]->len, + &keys[i])); + if (PSA_KEY_TYPE_IS_KEY_PAIR(key_types[i]) && + steps[i] == PSA_KEY_DERIVATION_INPUT_SECRET) { // When taking a private key as secret input, use key agreement // to add the shared secret to the derivation - TEST_EQUAL( mbedtls_test_psa_key_agreement_with_self( - &operation, keys[i] ), - expected_statuses[i] ); + TEST_EQUAL(mbedtls_test_psa_key_agreement_with_self( + &operation, keys[i]), + expected_statuses[i]); + } else { + TEST_EQUAL(psa_key_derivation_input_key(&operation, steps[i], + keys[i]), + expected_statuses[i]); } - else - { - TEST_EQUAL( psa_key_derivation_input_key( &operation, steps[i], - keys[i] ), - expected_statuses[i] ); - } - } - else - { - TEST_EQUAL( psa_key_derivation_input_bytes( - &operation, steps[i], - inputs[i]->x, inputs[i]->len ), - expected_statuses[i] ); + } else { + TEST_EQUAL(psa_key_derivation_input_bytes( + &operation, steps[i], + inputs[i]->x, inputs[i]->len), + expected_statuses[i]); } } - if( output_key_type != PSA_KEY_TYPE_NONE ) - { - psa_reset_key_attributes( &attributes ); - psa_set_key_type( &attributes, output_key_type ); - psa_set_key_bits( &attributes, 8 ); + if (output_key_type != PSA_KEY_TYPE_NONE) { + psa_reset_key_attributes(&attributes); + psa_set_key_type(&attributes, output_key_type); + psa_set_key_bits(&attributes, 8); actual_output_status = - psa_key_derivation_output_key( &attributes, &operation, - &output_key ); - } - else - { + psa_key_derivation_output_key(&attributes, &operation, + &output_key); + } else { uint8_t buffer[1]; actual_output_status = - psa_key_derivation_output_bytes( &operation, - buffer, sizeof( buffer ) ); + psa_key_derivation_output_bytes(&operation, + buffer, sizeof(buffer)); } - TEST_EQUAL( actual_output_status, expected_output_status ); + TEST_EQUAL(actual_output_status, expected_output_status); exit: - psa_key_derivation_abort( &operation ); - for( i = 0; i < ARRAY_LENGTH( keys ); i++ ) - psa_destroy_key( keys[i] ); - psa_destroy_key( output_key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + for (i = 0; i < ARRAY_LENGTH(keys); i++) { + psa_destroy_key(keys[i]); + } + psa_destroy_key(output_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_over_capacity( int alg_arg ) +void derive_over_capacity(int alg_arg) { psa_algorithm_t alg = alg_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; size_t key_type = PSA_KEY_TYPE_DERIVE; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; unsigned char input1[] = "Input 1"; - size_t input1_length = sizeof( input1 ); + size_t input1_length = sizeof(input1); unsigned char input2[] = "Input 2"; - size_t input2_length = sizeof( input2 ); + size_t input2_length = sizeof(input2); uint8_t buffer[42]; - size_t capacity = sizeof( buffer ); + size_t capacity = sizeof(buffer); const uint8_t key_data[22] = { 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, - 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b}; + 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b }; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, - key_data, sizeof( key_data ), - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, + key_data, sizeof(key_data), + &key)); /* valid key derivation */ - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg, - input1, input1_length, - input2, input2_length, - capacity ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, key, alg, + input1, input1_length, + input2, input2_length, + capacity)) { goto exit; + } /* state of operation shouldn't allow additional generation */ - TEST_EQUAL( psa_key_derivation_setup( &operation, alg ), - PSA_ERROR_BAD_STATE ); + TEST_EQUAL(psa_key_derivation_setup(&operation, alg), + PSA_ERROR_BAD_STATE); - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, buffer, capacity ) ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, buffer, capacity)); - TEST_EQUAL( psa_key_derivation_output_bytes( &operation, buffer, capacity ), - PSA_ERROR_INSUFFICIENT_DATA ); + TEST_EQUAL(psa_key_derivation_output_bytes(&operation, buffer, capacity), + PSA_ERROR_INSUFFICIENT_DATA); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_actions_without_setup( ) +void derive_actions_without_setup() { uint8_t output_buffer[16]; size_t buffer_size = 16; size_t capacity = 0; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - TEST_ASSERT( psa_key_derivation_output_bytes( &operation, - output_buffer, buffer_size ) - == PSA_ERROR_BAD_STATE ); + TEST_ASSERT(psa_key_derivation_output_bytes(&operation, + output_buffer, buffer_size) + == PSA_ERROR_BAD_STATE); - TEST_ASSERT( psa_key_derivation_get_capacity( &operation, &capacity ) - == PSA_ERROR_BAD_STATE ); + TEST_ASSERT(psa_key_derivation_get_capacity(&operation, &capacity) + == PSA_ERROR_BAD_STATE); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_abort(&operation)); - TEST_ASSERT( psa_key_derivation_output_bytes( &operation, - output_buffer, buffer_size ) - == PSA_ERROR_BAD_STATE ); + TEST_ASSERT(psa_key_derivation_output_bytes(&operation, + output_buffer, buffer_size) + == PSA_ERROR_BAD_STATE); - TEST_ASSERT( psa_key_derivation_get_capacity( &operation, &capacity ) - == PSA_ERROR_BAD_STATE ); + TEST_ASSERT(psa_key_derivation_get_capacity(&operation, &capacity) + == PSA_ERROR_BAD_STATE); exit: - psa_key_derivation_abort( &operation ); + psa_key_derivation_abort(&operation); } /* END_CASE */ /* BEGIN_CASE */ -void derive_output( int alg_arg, - int step1_arg, data_t *input1, int expected_status_arg1, - int step2_arg, data_t *input2, int expected_status_arg2, - int step3_arg, data_t *input3, int expected_status_arg3, - int step4_arg, data_t *input4, int expected_status_arg4, - data_t *key_agreement_peer_key, - int requested_capacity_arg, - data_t *expected_output1, - data_t *expected_output2, - int other_key_input_type, - int key_input_type, - int derive_type ) +void derive_output(int alg_arg, + int step1_arg, data_t *input1, int expected_status_arg1, + int step2_arg, data_t *input2, int expected_status_arg2, + int step3_arg, data_t *input3, int expected_status_arg3, + int step4_arg, data_t *input4, int expected_status_arg4, + data_t *key_agreement_peer_key, + int requested_capacity_arg, + data_t *expected_output1, + data_t *expected_output2, + int other_key_input_type, + int key_input_type, + int derive_type) { psa_algorithm_t alg = alg_arg; - psa_key_derivation_step_t steps[] = {step1_arg, step2_arg, step3_arg, step4_arg}; - data_t *inputs[] = {input1, input2, input3, input4}; - mbedtls_svc_key_id_t keys[] = {MBEDTLS_SVC_KEY_ID_INIT, - MBEDTLS_SVC_KEY_ID_INIT, - MBEDTLS_SVC_KEY_ID_INIT, - MBEDTLS_SVC_KEY_ID_INIT}; - psa_status_t statuses[] = {expected_status_arg1, expected_status_arg2, - expected_status_arg3, expected_status_arg4}; + psa_key_derivation_step_t steps[] = { step1_arg, step2_arg, step3_arg, step4_arg }; + data_t *inputs[] = { input1, input2, input3, input4 }; + mbedtls_svc_key_id_t keys[] = { MBEDTLS_SVC_KEY_ID_INIT, + MBEDTLS_SVC_KEY_ID_INIT, + MBEDTLS_SVC_KEY_ID_INIT, + MBEDTLS_SVC_KEY_ID_INIT }; + psa_status_t statuses[] = { expected_status_arg1, expected_status_arg2, + expected_status_arg3, expected_status_arg4 }; size_t requested_capacity = requested_capacity_arg; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; uint8_t *expected_outputs[2] = - {expected_output1->x, expected_output2->x}; + { expected_output1->x, expected_output2->x }; size_t output_sizes[2] = - {expected_output1->len, expected_output2->len}; + { expected_output1->len, expected_output2->len }; size_t output_buffer_size = 0; uint8_t *output_buffer = NULL; size_t expected_capacity; @@ -7618,201 +7417,198 @@ void derive_output( int alg_arg, psa_status_t status; size_t i; - for( i = 0; i < ARRAY_LENGTH( expected_outputs ); i++ ) - { - if( output_sizes[i] > output_buffer_size ) + for (i = 0; i < ARRAY_LENGTH(expected_outputs); i++) { + if (output_sizes[i] > output_buffer_size) { output_buffer_size = output_sizes[i]; - if( output_sizes[i] == 0 ) + } + if (output_sizes[i] == 0) { expected_outputs[i] = NULL; + } } - ASSERT_ALLOC( output_buffer, output_buffer_size ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(output_buffer, output_buffer_size); + PSA_ASSERT(psa_crypto_init()); /* Extraction phase. */ - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - PSA_ASSERT( psa_key_derivation_set_capacity( &operation, - requested_capacity ) ); - for( i = 0; i < ARRAY_LENGTH( steps ); i++ ) - { - switch( steps[i] ) - { + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); + PSA_ASSERT(psa_key_derivation_set_capacity(&operation, + requested_capacity)); + for (i = 0; i < ARRAY_LENGTH(steps); i++) { + switch (steps[i]) { case 0: break; case PSA_KEY_DERIVATION_INPUT_SECRET: - switch( key_input_type ) - { + switch (key_input_type) { case 0: // input bytes - TEST_EQUAL( psa_key_derivation_input_bytes( - &operation, steps[i], - inputs[i]->x, inputs[i]->len ), - statuses[i] ); + TEST_EQUAL(psa_key_derivation_input_bytes( + &operation, steps[i], + inputs[i]->x, inputs[i]->len), + statuses[i]); - if( statuses[i] != PSA_SUCCESS ) + if (statuses[i] != PSA_SUCCESS) { goto exit; + } break; case 1: // input key - psa_set_key_usage_flags( &attributes1, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes1, alg ); - psa_set_key_type( &attributes1, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&attributes1, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes1, alg); + psa_set_key_type(&attributes1, PSA_KEY_TYPE_DERIVE); - PSA_ASSERT( psa_import_key( &attributes1, - inputs[i]->x, inputs[i]->len, - &keys[i] ) ); + PSA_ASSERT(psa_import_key(&attributes1, + inputs[i]->x, inputs[i]->len, + &keys[i])); - if( PSA_ALG_IS_TLS12_PSK_TO_MS( alg ) ) - { - PSA_ASSERT( psa_get_key_attributes( keys[i], &attributes1 ) ); - TEST_LE_U( PSA_BITS_TO_BYTES( psa_get_key_bits( &attributes1 ) ), - PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE ); + if (PSA_ALG_IS_TLS12_PSK_TO_MS(alg)) { + PSA_ASSERT(psa_get_key_attributes(keys[i], &attributes1)); + TEST_LE_U(PSA_BITS_TO_BYTES(psa_get_key_bits(&attributes1)), + PSA_TLS12_PSK_TO_MS_PSK_MAX_SIZE); } - PSA_ASSERT( psa_key_derivation_input_key( &operation, - steps[i], - keys[i] ) ); + PSA_ASSERT(psa_key_derivation_input_key(&operation, + steps[i], + keys[i])); break; default: - TEST_ASSERT( ! "default case not supported" ); + TEST_ASSERT(!"default case not supported"); break; } break; case PSA_KEY_DERIVATION_INPUT_OTHER_SECRET: - switch( other_key_input_type ) - { + switch (other_key_input_type) { case 0: // input bytes - TEST_EQUAL( psa_key_derivation_input_bytes( &operation, - steps[i], - inputs[i]->x, - inputs[i]->len ), - statuses[i] ); + TEST_EQUAL(psa_key_derivation_input_bytes(&operation, + steps[i], + inputs[i]->x, + inputs[i]->len), + statuses[i]); break; case 1: // input key, type DERIVE case 11: // input key, type RAW - psa_set_key_usage_flags( &attributes2, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes2, alg ); - psa_set_key_type( &attributes2, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&attributes2, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes2, alg); + psa_set_key_type(&attributes2, PSA_KEY_TYPE_DERIVE); // other secret of type RAW_DATA passed with input_key - if( other_key_input_type == 11 ) - psa_set_key_type( &attributes2, PSA_KEY_TYPE_RAW_DATA ); + if (other_key_input_type == 11) { + psa_set_key_type(&attributes2, PSA_KEY_TYPE_RAW_DATA); + } - PSA_ASSERT( psa_import_key( &attributes2, - inputs[i]->x, inputs[i]->len, - &keys[i] ) ); + PSA_ASSERT(psa_import_key(&attributes2, + inputs[i]->x, inputs[i]->len, + &keys[i])); - TEST_EQUAL( psa_key_derivation_input_key( &operation, - steps[i], - keys[i] ), - statuses[i] ); + TEST_EQUAL(psa_key_derivation_input_key(&operation, + steps[i], + keys[i]), + statuses[i]); break; case 2: // key agreement - psa_set_key_usage_flags( &attributes3, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes3, alg ); - psa_set_key_type( &attributes3, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1) ); + psa_set_key_usage_flags(&attributes3, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes3, alg); + psa_set_key_type(&attributes3, + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); - PSA_ASSERT( psa_import_key( &attributes3, - inputs[i]->x, inputs[i]->len, - &keys[i] ) ); + PSA_ASSERT(psa_import_key(&attributes3, + inputs[i]->x, inputs[i]->len, + &keys[i])); - TEST_EQUAL( psa_key_derivation_key_agreement( - &operation, - PSA_KEY_DERIVATION_INPUT_OTHER_SECRET, - keys[i], key_agreement_peer_key->x, - key_agreement_peer_key->len ), statuses[i] ); + TEST_EQUAL(psa_key_derivation_key_agreement( + &operation, + PSA_KEY_DERIVATION_INPUT_OTHER_SECRET, + keys[i], key_agreement_peer_key->x, + key_agreement_peer_key->len), statuses[i]); break; default: - TEST_ASSERT( ! "default case not supported" ); + TEST_ASSERT(!"default case not supported"); break; } - if( statuses[i] != PSA_SUCCESS ) + if (statuses[i] != PSA_SUCCESS) { goto exit; + } break; default: - TEST_EQUAL( psa_key_derivation_input_bytes( - &operation, steps[i], - inputs[i]->x, inputs[i]->len ), statuses[i] ); + TEST_EQUAL(psa_key_derivation_input_bytes( + &operation, steps[i], + inputs[i]->x, inputs[i]->len), statuses[i]); - if( statuses[i] != PSA_SUCCESS ) + if (statuses[i] != PSA_SUCCESS) { goto exit; + } break; } } - PSA_ASSERT( psa_key_derivation_get_capacity( &operation, - ¤t_capacity ) ); - TEST_EQUAL( current_capacity, requested_capacity ); + PSA_ASSERT(psa_key_derivation_get_capacity(&operation, + ¤t_capacity)); + TEST_EQUAL(current_capacity, requested_capacity); expected_capacity = requested_capacity; - if( derive_type == 1 ) // output key - { + if (derive_type == 1) { // output key psa_status_t expected_status = PSA_ERROR_NOT_PERMITTED; /* For output key derivation secret must be provided using input key, otherwise operation is not permitted. */ - if( key_input_type == 1 ) + if (key_input_type == 1) { expected_status = PSA_SUCCESS; + } - psa_set_key_usage_flags( &attributes4, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes4, alg ); - psa_set_key_type( &attributes4, PSA_KEY_TYPE_DERIVE ); - psa_set_key_bits( &attributes4, PSA_BYTES_TO_BITS( requested_capacity ) ); + psa_set_key_usage_flags(&attributes4, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes4, alg); + psa_set_key_type(&attributes4, PSA_KEY_TYPE_DERIVE); + psa_set_key_bits(&attributes4, PSA_BYTES_TO_BITS(requested_capacity)); - TEST_EQUAL( psa_key_derivation_output_key( &attributes4, &operation, - &derived_key ), expected_status ); - } - else // output bytes - { + TEST_EQUAL(psa_key_derivation_output_key(&attributes4, &operation, + &derived_key), expected_status); + } else { // output bytes /* Expansion phase. */ - for( i = 0; i < ARRAY_LENGTH( expected_outputs ); i++ ) - { + for (i = 0; i < ARRAY_LENGTH(expected_outputs); i++) { /* Read some bytes. */ - status = psa_key_derivation_output_bytes( &operation, - output_buffer, output_sizes[i] ); - if( expected_capacity == 0 && output_sizes[i] == 0 ) - { + status = psa_key_derivation_output_bytes(&operation, + output_buffer, output_sizes[i]); + if (expected_capacity == 0 && output_sizes[i] == 0) { /* Reading 0 bytes when 0 bytes are available can go either way. */ - TEST_ASSERT( status == PSA_SUCCESS || - status == PSA_ERROR_INSUFFICIENT_DATA ); + TEST_ASSERT(status == PSA_SUCCESS || + status == PSA_ERROR_INSUFFICIENT_DATA); continue; - } - else if( expected_capacity == 0 || - output_sizes[i] > expected_capacity ) - { + } else if (expected_capacity == 0 || + output_sizes[i] > expected_capacity) { /* Capacity exceeded. */ - TEST_EQUAL( status, PSA_ERROR_INSUFFICIENT_DATA ); + TEST_EQUAL(status, PSA_ERROR_INSUFFICIENT_DATA); expected_capacity = 0; continue; } /* Success. Check the read data. */ - PSA_ASSERT( status ); - if( output_sizes[i] != 0 ) - ASSERT_COMPARE( output_buffer, output_sizes[i], - expected_outputs[i], output_sizes[i] ); + PSA_ASSERT(status); + if (output_sizes[i] != 0) { + ASSERT_COMPARE(output_buffer, output_sizes[i], + expected_outputs[i], output_sizes[i]); + } /* Check the operation status. */ expected_capacity -= output_sizes[i]; - PSA_ASSERT( psa_key_derivation_get_capacity( &operation, - ¤t_capacity ) ); - TEST_EQUAL( expected_capacity, current_capacity ); + PSA_ASSERT(psa_key_derivation_get_capacity(&operation, + ¤t_capacity)); + TEST_EQUAL(expected_capacity, current_capacity); } } - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_abort(&operation)); exit: - mbedtls_free( output_buffer ); - psa_key_derivation_abort( &operation ); - for( i = 0; i < ARRAY_LENGTH( keys ); i++ ) - psa_destroy_key( keys[i] ); - psa_destroy_key( derived_key ); - PSA_DONE( ); + mbedtls_free(output_buffer); + psa_key_derivation_abort(&operation); + for (i = 0; i < ARRAY_LENGTH(keys); i++) { + psa_destroy_key(keys[i]); + } + psa_destroy_key(derived_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_full( int alg_arg, - data_t *key_data, - data_t *input1, - data_t *input2, - int requested_capacity_arg ) +void derive_full(int alg_arg, + data_t *key_data, + data_t *input1, + data_t *input2, + int requested_capacity_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -7823,59 +7619,60 @@ void derive_full( int alg_arg, size_t current_capacity; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, key, alg, - input1->x, input1->len, - input2->x, input2->len, - requested_capacity ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, key, alg, + input1->x, input1->len, + input2->x, input2->len, + requested_capacity)) { goto exit; + } - PSA_ASSERT( psa_key_derivation_get_capacity( &operation, - ¤t_capacity ) ); - TEST_EQUAL( current_capacity, expected_capacity ); + PSA_ASSERT(psa_key_derivation_get_capacity(&operation, + ¤t_capacity)); + TEST_EQUAL(current_capacity, expected_capacity); /* Expansion phase. */ - while( current_capacity > 0 ) - { - size_t read_size = sizeof( output_buffer ); - if( read_size > current_capacity ) + while (current_capacity > 0) { + size_t read_size = sizeof(output_buffer); + if (read_size > current_capacity) { read_size = current_capacity; - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output_buffer, - read_size ) ); + } + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output_buffer, + read_size)); expected_capacity -= read_size; - PSA_ASSERT( psa_key_derivation_get_capacity( &operation, - ¤t_capacity ) ); - TEST_EQUAL( current_capacity, expected_capacity ); + PSA_ASSERT(psa_key_derivation_get_capacity(&operation, + ¤t_capacity)); + TEST_EQUAL(current_capacity, expected_capacity); } /* Check that the operation refuses to go over capacity. */ - TEST_EQUAL( psa_key_derivation_output_bytes( &operation, output_buffer, 1 ), - PSA_ERROR_INSUFFICIENT_DATA ); + TEST_EQUAL(psa_key_derivation_output_bytes(&operation, output_buffer, 1), + PSA_ERROR_INSUFFICIENT_DATA); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_abort(&operation)); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_SHA_256:MBEDTLS_PSA_BUILTIN_ALG_TLS12_PSK_TO_MS */ -void derive_ecjpake_to_pms( data_t *input, int expected_input_status_arg, - int derivation_step, - int capacity, int expected_capacity_status_arg, - data_t *expected_output, - int expected_output_status_arg ) +void derive_ecjpake_to_pms(data_t *input, int expected_input_status_arg, + int derivation_step, + int capacity, int expected_capacity_status_arg, + data_t *expected_output, + int expected_output_status_arg) { psa_algorithm_t alg = PSA_ALG_TLS12_ECJPAKE_TO_PMS; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; @@ -7886,44 +7683,46 @@ void derive_ecjpake_to_pms( data_t *input, int expected_input_status_arg, psa_status_t expected_capacity_status = (psa_status_t) expected_capacity_status_arg; psa_status_t expected_output_status = (psa_status_t) expected_output_status_arg; - ASSERT_ALLOC( output_buffer, expected_output->len ); - PSA_ASSERT( psa_crypto_init() ); + ASSERT_ALLOC(output_buffer, expected_output->len); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - TEST_EQUAL( psa_key_derivation_set_capacity( &operation, capacity ), - expected_capacity_status); + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); + TEST_EQUAL(psa_key_derivation_set_capacity(&operation, capacity), + expected_capacity_status); - TEST_EQUAL( psa_key_derivation_input_bytes( &operation, - step, input->x, input->len ), - expected_input_status ); + TEST_EQUAL(psa_key_derivation_input_bytes(&operation, + step, input->x, input->len), + expected_input_status); - if( ( (psa_status_t) expected_input_status ) != PSA_SUCCESS ) + if (((psa_status_t) expected_input_status) != PSA_SUCCESS) { goto exit; + } - status = psa_key_derivation_output_bytes( &operation, output_buffer, - expected_output->len ); + status = psa_key_derivation_output_bytes(&operation, output_buffer, + expected_output->len); - TEST_EQUAL( status, expected_output_status ); - if( expected_output->len != 0 && expected_output_status == PSA_SUCCESS ) - ASSERT_COMPARE( output_buffer, expected_output->len, expected_output->x, - expected_output->len ); + TEST_EQUAL(status, expected_output_status); + if (expected_output->len != 0 && expected_output_status == PSA_SUCCESS) { + ASSERT_COMPARE(output_buffer, expected_output->len, expected_output->x, + expected_output->len); + } exit: - mbedtls_free( output_buffer ); - psa_key_derivation_abort( &operation ); + mbedtls_free(output_buffer); + psa_key_derivation_abort(&operation); PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_key_exercise( int alg_arg, - data_t *key_data, - data_t *input1, - data_t *input2, - int derived_type_arg, - int derived_bits_arg, - int derived_usage_arg, - int derived_alg_arg ) +void derive_key_exercise(int alg_arg, + data_t *key_data, + data_t *input1, + data_t *input2, + int derived_type_arg, + int derived_bits_arg, + int derived_usage_arg, + int derived_alg_arg) { mbedtls_svc_key_id_t base_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t derived_key = MBEDTLS_SVC_KEY_ID_INIT; @@ -7932,63 +7731,65 @@ void derive_key_exercise( int alg_arg, size_t derived_bits = derived_bits_arg; psa_key_usage_t derived_usage = derived_usage_arg; psa_algorithm_t derived_alg = derived_alg_arg; - size_t capacity = PSA_BITS_TO_BYTES( derived_bits ); + size_t capacity = PSA_BITS_TO_BYTES(derived_bits); psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &base_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &base_key)); /* Derive a key. */ - if ( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, - input1->x, input1->len, - input2->x, input2->len, - capacity ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, base_key, alg, + input1->x, input1->len, + input2->x, input2->len, + capacity)) { goto exit; + } - psa_set_key_usage_flags( &attributes, derived_usage ); - psa_set_key_algorithm( &attributes, derived_alg ); - psa_set_key_type( &attributes, derived_type ); - psa_set_key_bits( &attributes, derived_bits ); - PSA_ASSERT( psa_key_derivation_output_key( &attributes, &operation, - &derived_key ) ); + psa_set_key_usage_flags(&attributes, derived_usage); + psa_set_key_algorithm(&attributes, derived_alg); + psa_set_key_type(&attributes, derived_type); + psa_set_key_bits(&attributes, derived_bits); + PSA_ASSERT(psa_key_derivation_output_key(&attributes, &operation, + &derived_key)); /* Test the key information */ - PSA_ASSERT( psa_get_key_attributes( derived_key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), derived_type ); - TEST_EQUAL( psa_get_key_bits( &got_attributes ), derived_bits ); + PSA_ASSERT(psa_get_key_attributes(derived_key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), derived_type); + TEST_EQUAL(psa_get_key_bits(&got_attributes), derived_bits); /* Exercise the derived key. */ - if( ! mbedtls_test_psa_exercise_key( derived_key, derived_usage, derived_alg ) ) + if (!mbedtls_test_psa_exercise_key(derived_key, derived_usage, derived_alg)) { goto exit; + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_key_derivation_abort( &operation ); - psa_destroy_key( base_key ); - psa_destroy_key( derived_key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(base_key); + psa_destroy_key(derived_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_key_export( int alg_arg, - data_t *key_data, - data_t *input1, - data_t *input2, - int bytes1_arg, - int bytes2_arg ) +void derive_key_export(int alg_arg, + data_t *key_data, + data_t *input1, + data_t *input2, + int bytes1_arg, + int bytes2_arg) { mbedtls_svc_key_id_t base_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t derived_key = MBEDTLS_SVC_KEY_ID_INIT; @@ -8003,75 +7804,77 @@ void derive_key_export( int alg_arg, psa_key_attributes_t derived_attributes = PSA_KEY_ATTRIBUTES_INIT; size_t length; - ASSERT_ALLOC( output_buffer, capacity ); - ASSERT_ALLOC( export_buffer, capacity ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(output_buffer, capacity); + ASSERT_ALLOC(export_buffer, capacity); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &base_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &base_attributes, alg ); - psa_set_key_type( &base_attributes, PSA_KEY_TYPE_DERIVE ); - PSA_ASSERT( psa_import_key( &base_attributes, key_data->x, key_data->len, - &base_key ) ); + psa_set_key_usage_flags(&base_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&base_attributes, alg); + psa_set_key_type(&base_attributes, PSA_KEY_TYPE_DERIVE); + PSA_ASSERT(psa_import_key(&base_attributes, key_data->x, key_data->len, + &base_key)); /* Derive some material and output it. */ - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, - input1->x, input1->len, - input2->x, input2->len, - capacity ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, base_key, alg, + input1->x, input1->len, + input2->x, input2->len, + capacity)) { goto exit; + } - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output_buffer, - capacity ) ); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output_buffer, + capacity)); + PSA_ASSERT(psa_key_derivation_abort(&operation)); /* Derive the same output again, but this time store it in key objects. */ - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, - input1->x, input1->len, - input2->x, input2->len, - capacity ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, base_key, alg, + input1->x, input1->len, + input2->x, input2->len, + capacity)) { goto exit; + } - psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &derived_attributes, 0 ); - psa_set_key_type( &derived_attributes, PSA_KEY_TYPE_RAW_DATA ); - psa_set_key_bits( &derived_attributes, PSA_BYTES_TO_BITS( bytes1 ) ); - PSA_ASSERT( psa_key_derivation_output_key( &derived_attributes, &operation, - &derived_key ) ); - PSA_ASSERT( psa_export_key( derived_key, - export_buffer, bytes1, - &length ) ); - TEST_EQUAL( length, bytes1 ); - PSA_ASSERT( psa_destroy_key( derived_key ) ); - psa_set_key_bits( &derived_attributes, PSA_BYTES_TO_BITS( bytes2 ) ); - PSA_ASSERT( psa_key_derivation_output_key( &derived_attributes, &operation, - &derived_key ) ); - PSA_ASSERT( psa_export_key( derived_key, - export_buffer + bytes1, bytes2, - &length ) ); - TEST_EQUAL( length, bytes2 ); + psa_set_key_usage_flags(&derived_attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&derived_attributes, 0); + psa_set_key_type(&derived_attributes, PSA_KEY_TYPE_RAW_DATA); + psa_set_key_bits(&derived_attributes, PSA_BYTES_TO_BITS(bytes1)); + PSA_ASSERT(psa_key_derivation_output_key(&derived_attributes, &operation, + &derived_key)); + PSA_ASSERT(psa_export_key(derived_key, + export_buffer, bytes1, + &length)); + TEST_EQUAL(length, bytes1); + PSA_ASSERT(psa_destroy_key(derived_key)); + psa_set_key_bits(&derived_attributes, PSA_BYTES_TO_BITS(bytes2)); + PSA_ASSERT(psa_key_derivation_output_key(&derived_attributes, &operation, + &derived_key)); + PSA_ASSERT(psa_export_key(derived_key, + export_buffer + bytes1, bytes2, + &length)); + TEST_EQUAL(length, bytes2); /* Compare the outputs from the two runs. */ - ASSERT_COMPARE( output_buffer, bytes1 + bytes2, - export_buffer, capacity ); + ASSERT_COMPARE(output_buffer, bytes1 + bytes2, + export_buffer, capacity); exit: - mbedtls_free( output_buffer ); - mbedtls_free( export_buffer ); - psa_key_derivation_abort( &operation ); - psa_destroy_key( base_key ); - psa_destroy_key( derived_key ); - PSA_DONE( ); + mbedtls_free(output_buffer); + mbedtls_free(export_buffer); + psa_key_derivation_abort(&operation); + psa_destroy_key(base_key); + psa_destroy_key(derived_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_key_type( int alg_arg, - data_t *key_data, - data_t *input1, - data_t *input2, - int key_type_arg, int bits_arg, - data_t *expected_export ) +void derive_key_type(int alg_arg, + data_t *key_data, + data_t *input1, + data_t *input2, + int key_type_arg, int bits_arg, + data_t *expected_export) { mbedtls_svc_key_id_t base_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t derived_key = MBEDTLS_SVC_KEY_ID_INIT; @@ -8080,56 +7883,57 @@ void derive_key_type( int alg_arg, const size_t bits = bits_arg; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; const size_t export_buffer_size = - PSA_EXPORT_KEY_OUTPUT_SIZE( key_type, bits ); + PSA_EXPORT_KEY_OUTPUT_SIZE(key_type, bits); uint8_t *export_buffer = NULL; psa_key_attributes_t base_attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t derived_attributes = PSA_KEY_ATTRIBUTES_INIT; size_t export_length; - ASSERT_ALLOC( export_buffer, export_buffer_size ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(export_buffer, export_buffer_size); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &base_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &base_attributes, alg ); - psa_set_key_type( &base_attributes, PSA_KEY_TYPE_DERIVE ); - PSA_ASSERT( psa_import_key( &base_attributes, key_data->x, key_data->len, - &base_key ) ); + psa_set_key_usage_flags(&base_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&base_attributes, alg); + psa_set_key_type(&base_attributes, PSA_KEY_TYPE_DERIVE); + PSA_ASSERT(psa_import_key(&base_attributes, key_data->x, key_data->len, + &base_key)); - if( mbedtls_test_psa_setup_key_derivation_wrap( + if (mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, input1->x, input1->len, input2->x, input2->len, - PSA_KEY_DERIVATION_UNLIMITED_CAPACITY ) == 0 ) + PSA_KEY_DERIVATION_UNLIMITED_CAPACITY) == 0) { goto exit; + } - psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &derived_attributes, 0 ); - psa_set_key_type( &derived_attributes, key_type ); - psa_set_key_bits( &derived_attributes, bits ); - PSA_ASSERT( psa_key_derivation_output_key( &derived_attributes, &operation, - &derived_key ) ); + psa_set_key_usage_flags(&derived_attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&derived_attributes, 0); + psa_set_key_type(&derived_attributes, key_type); + psa_set_key_bits(&derived_attributes, bits); + PSA_ASSERT(psa_key_derivation_output_key(&derived_attributes, &operation, + &derived_key)); - PSA_ASSERT( psa_export_key( derived_key, - export_buffer, export_buffer_size, - &export_length ) ); - ASSERT_COMPARE( export_buffer, export_length, - expected_export->x, expected_export->len ); + PSA_ASSERT(psa_export_key(derived_key, + export_buffer, export_buffer_size, + &export_length)); + ASSERT_COMPARE(export_buffer, export_length, + expected_export->x, expected_export->len); exit: - mbedtls_free( export_buffer ); - psa_key_derivation_abort( &operation ); - psa_destroy_key( base_key ); - psa_destroy_key( derived_key ); - PSA_DONE( ); + mbedtls_free(export_buffer); + psa_key_derivation_abort(&operation); + psa_destroy_key(base_key); + psa_destroy_key(derived_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void derive_key( int alg_arg, - data_t *key_data, data_t *input1, data_t *input2, - int type_arg, int bits_arg, - int expected_status_arg, - int is_large_output ) +void derive_key(int alg_arg, + data_t *key_data, data_t *input1, data_t *input2, + int type_arg, int bits_arg, + int expected_status_arg, + int is_large_output) { mbedtls_svc_key_id_t base_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t derived_key = MBEDTLS_SVC_KEY_ID_INIT; @@ -8141,46 +7945,48 @@ void derive_key( int alg_arg, psa_key_attributes_t base_attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t derived_attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &base_attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &base_attributes, alg ); - psa_set_key_type( &base_attributes, PSA_KEY_TYPE_DERIVE ); - PSA_ASSERT( psa_import_key( &base_attributes, key_data->x, key_data->len, - &base_key ) ); + psa_set_key_usage_flags(&base_attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&base_attributes, alg); + psa_set_key_type(&base_attributes, PSA_KEY_TYPE_DERIVE); + PSA_ASSERT(psa_import_key(&base_attributes, key_data->x, key_data->len, + &base_key)); - if( !mbedtls_test_psa_setup_key_derivation_wrap( &operation, base_key, alg, - input1->x, input1->len, - input2->x, input2->len, - SIZE_MAX ) ) + if (!mbedtls_test_psa_setup_key_derivation_wrap(&operation, base_key, alg, + input1->x, input1->len, + input2->x, input2->len, + SIZE_MAX)) { goto exit; + } - psa_set_key_usage_flags( &derived_attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &derived_attributes, 0 ); - psa_set_key_type( &derived_attributes, type ); - psa_set_key_bits( &derived_attributes, bits ); + psa_set_key_usage_flags(&derived_attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&derived_attributes, 0); + psa_set_key_type(&derived_attributes, type); + psa_set_key_bits(&derived_attributes, bits); psa_status_t status = - psa_key_derivation_output_key( &derived_attributes, - &operation, - &derived_key ); - if( is_large_output > 0 ) - TEST_ASSUME( status != PSA_ERROR_INSUFFICIENT_MEMORY ); - TEST_EQUAL( status, expected_status ); + psa_key_derivation_output_key(&derived_attributes, + &operation, + &derived_key); + if (is_large_output > 0) { + TEST_ASSUME(status != PSA_ERROR_INSUFFICIENT_MEMORY); + } + TEST_EQUAL(status, expected_status); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( base_key ); - psa_destroy_key( derived_key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(base_key); + psa_destroy_key(derived_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement_setup( int alg_arg, - int our_key_type_arg, int our_key_alg_arg, - data_t *our_key_data, data_t *peer_key_data, - int expected_status_arg ) +void key_agreement_setup(int alg_arg, + int our_key_type_arg, int our_key_alg_arg, + data_t *our_key_data, data_t *peer_key_data, + int expected_status_arg) { mbedtls_svc_key_id_t our_key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -8191,45 +7997,42 @@ void key_agreement_setup( int alg_arg, psa_status_t expected_status = expected_status_arg; psa_status_t status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, our_key_alg ); - psa_set_key_type( &attributes, our_key_type ); - PSA_ASSERT( psa_import_key( &attributes, - our_key_data->x, our_key_data->len, - &our_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, our_key_alg); + psa_set_key_type(&attributes, our_key_type); + PSA_ASSERT(psa_import_key(&attributes, + our_key_data->x, our_key_data->len, + &our_key)); /* The tests currently include inputs that should fail at either step. * Test cases that fail at the setup step should be changed to call * key_derivation_setup instead, and this function should be renamed * to key_agreement_fail. */ - status = psa_key_derivation_setup( &operation, alg ); - if( status == PSA_SUCCESS ) - { - TEST_EQUAL( psa_key_derivation_key_agreement( - &operation, PSA_KEY_DERIVATION_INPUT_SECRET, - our_key, - peer_key_data->x, peer_key_data->len ), - expected_status ); - } - else - { - TEST_ASSERT( status == expected_status ); + status = psa_key_derivation_setup(&operation, alg); + if (status == PSA_SUCCESS) { + TEST_EQUAL(psa_key_derivation_key_agreement( + &operation, PSA_KEY_DERIVATION_INPUT_SECRET, + our_key, + peer_key_data->x, peer_key_data->len), + expected_status); + } else { + TEST_ASSERT(status == expected_status); } exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( our_key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(our_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void raw_key_agreement( int alg_arg, - int our_key_type_arg, data_t *our_key_data, - data_t *peer_key_data, - data_t *expected_output ) +void raw_key_agreement(int alg_arg, + int our_key_type_arg, data_t *our_key_data, + data_t *peer_key_data, + data_t *expected_output) { mbedtls_svc_key_id_t our_key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -8239,72 +8042,72 @@ void raw_key_agreement( int alg_arg, size_t output_length = ~0; size_t key_bits; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, our_key_type ); - PSA_ASSERT( psa_import_key( &attributes, - our_key_data->x, our_key_data->len, - &our_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, our_key_type); + PSA_ASSERT(psa_import_key(&attributes, + our_key_data->x, our_key_data->len, + &our_key)); - PSA_ASSERT( psa_get_key_attributes( our_key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(our_key, &attributes)); + key_bits = psa_get_key_bits(&attributes); /* Validate size macros */ - TEST_LE_U( expected_output->len, - PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ) ); - TEST_LE_U( PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ), - PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ); + TEST_LE_U(expected_output->len, + PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(our_key_type, key_bits)); + TEST_LE_U(PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(our_key_type, key_bits), + PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE); /* Good case with exact output size */ - ASSERT_ALLOC( output, expected_output->len ); - PSA_ASSERT( psa_raw_key_agreement( alg, our_key, - peer_key_data->x, peer_key_data->len, - output, expected_output->len, - &output_length ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, expected_output->len); + PSA_ASSERT(psa_raw_key_agreement(alg, our_key, + peer_key_data->x, peer_key_data->len, + output, expected_output->len, + &output_length)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); + mbedtls_free(output); output = NULL; output_length = ~0; /* Larger buffer */ - ASSERT_ALLOC( output, expected_output->len + 1 ); - PSA_ASSERT( psa_raw_key_agreement( alg, our_key, - peer_key_data->x, peer_key_data->len, - output, expected_output->len + 1, - &output_length ) ); - ASSERT_COMPARE( output, output_length, - expected_output->x, expected_output->len ); - mbedtls_free( output ); + ASSERT_ALLOC(output, expected_output->len + 1); + PSA_ASSERT(psa_raw_key_agreement(alg, our_key, + peer_key_data->x, peer_key_data->len, + output, expected_output->len + 1, + &output_length)); + ASSERT_COMPARE(output, output_length, + expected_output->x, expected_output->len); + mbedtls_free(output); output = NULL; output_length = ~0; /* Buffer too small */ - ASSERT_ALLOC( output, expected_output->len - 1 ); - TEST_EQUAL( psa_raw_key_agreement( alg, our_key, - peer_key_data->x, peer_key_data->len, - output, expected_output->len - 1, - &output_length ), - PSA_ERROR_BUFFER_TOO_SMALL ); + ASSERT_ALLOC(output, expected_output->len - 1); + TEST_EQUAL(psa_raw_key_agreement(alg, our_key, + peer_key_data->x, peer_key_data->len, + output, expected_output->len - 1, + &output_length), + PSA_ERROR_BUFFER_TOO_SMALL); /* Not required by the spec, but good robustness */ - TEST_LE_U( output_length, expected_output->len - 1 ); - mbedtls_free( output ); + TEST_LE_U(output_length, expected_output->len - 1); + mbedtls_free(output); output = NULL; exit: - mbedtls_free( output ); - psa_destroy_key( our_key ); - PSA_DONE( ); + mbedtls_free(output); + psa_destroy_key(our_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement_capacity( int alg_arg, - int our_key_type_arg, data_t *our_key_data, - data_t *peer_key_data, - int expected_capacity_arg ) +void key_agreement_capacity(int alg_arg, + int our_key_type_arg, data_t *our_key_data, + data_t *peer_key_data, + int expected_capacity_arg) { mbedtls_svc_key_id_t our_key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -8314,57 +8117,55 @@ void key_agreement_capacity( int alg_arg, size_t actual_capacity; unsigned char output[16]; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, our_key_type ); - PSA_ASSERT( psa_import_key( &attributes, - our_key_data->x, our_key_data->len, - &our_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, our_key_type); + PSA_ASSERT(psa_import_key(&attributes, + our_key_data->x, our_key_data->len, + &our_key)); - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - PSA_ASSERT( psa_key_derivation_key_agreement( - &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, our_key, - peer_key_data->x, peer_key_data->len ) ); - if( PSA_ALG_IS_HKDF( PSA_ALG_KEY_AGREEMENT_GET_KDF( alg ) ) ) - { + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); + PSA_ASSERT(psa_key_derivation_key_agreement( + &operation, + PSA_KEY_DERIVATION_INPUT_SECRET, our_key, + peer_key_data->x, peer_key_data->len)); + if (PSA_ALG_IS_HKDF(PSA_ALG_KEY_AGREEMENT_GET_KDF(alg))) { /* The test data is for info="" */ - PSA_ASSERT( psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_INFO, - NULL, 0 ) ); + PSA_ASSERT(psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_INFO, + NULL, 0)); } /* Test the advertised capacity. */ - PSA_ASSERT( psa_key_derivation_get_capacity( - &operation, &actual_capacity ) ); - TEST_EQUAL( actual_capacity, (size_t) expected_capacity_arg ); + PSA_ASSERT(psa_key_derivation_get_capacity( + &operation, &actual_capacity)); + TEST_EQUAL(actual_capacity, (size_t) expected_capacity_arg); /* Test the actual capacity by reading the output. */ - while( actual_capacity > sizeof( output ) ) - { - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output, sizeof( output ) ) ); - actual_capacity -= sizeof( output ); + while (actual_capacity > sizeof(output)) { + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output, sizeof(output))); + actual_capacity -= sizeof(output); } - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - output, actual_capacity ) ); - TEST_EQUAL( psa_key_derivation_output_bytes( &operation, output, 1 ), - PSA_ERROR_INSUFFICIENT_DATA ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + output, actual_capacity)); + TEST_EQUAL(psa_key_derivation_output_bytes(&operation, output, 1), + PSA_ERROR_INSUFFICIENT_DATA); exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( our_key ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(our_key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement_output( int alg_arg, - int our_key_type_arg, data_t *our_key_data, - data_t *peer_key_data, - data_t *expected_output1, data_t *expected_output2 ) +void key_agreement_output(int alg_arg, + int our_key_type_arg, data_t *our_key_data, + data_t *peer_key_data, + data_t *expected_output1, data_t *expected_output2) { mbedtls_svc_key_id_t our_key = MBEDTLS_SVC_KEY_ID_INIT; psa_algorithm_t alg = alg_arg; @@ -8373,55 +8174,53 @@ void key_agreement_output( int alg_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *actual_output = NULL; - ASSERT_ALLOC( actual_output, MAX( expected_output1->len, - expected_output2->len ) ); + ASSERT_ALLOC(actual_output, MAX(expected_output1->len, + expected_output2->len)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, our_key_type ); - PSA_ASSERT( psa_import_key( &attributes, - our_key_data->x, our_key_data->len, - &our_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, our_key_type); + PSA_ASSERT(psa_import_key(&attributes, + our_key_data->x, our_key_data->len, + &our_key)); - PSA_ASSERT( psa_key_derivation_setup( &operation, alg ) ); - PSA_ASSERT( psa_key_derivation_key_agreement( - &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, our_key, - peer_key_data->x, peer_key_data->len ) ); - if( PSA_ALG_IS_HKDF( PSA_ALG_KEY_AGREEMENT_GET_KDF( alg ) ) ) - { + PSA_ASSERT(psa_key_derivation_setup(&operation, alg)); + PSA_ASSERT(psa_key_derivation_key_agreement( + &operation, + PSA_KEY_DERIVATION_INPUT_SECRET, our_key, + peer_key_data->x, peer_key_data->len)); + if (PSA_ALG_IS_HKDF(PSA_ALG_KEY_AGREEMENT_GET_KDF(alg))) { /* The test data is for info="" */ - PSA_ASSERT( psa_key_derivation_input_bytes( &operation, - PSA_KEY_DERIVATION_INPUT_INFO, - NULL, 0 ) ); + PSA_ASSERT(psa_key_derivation_input_bytes(&operation, + PSA_KEY_DERIVATION_INPUT_INFO, + NULL, 0)); } - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - actual_output, - expected_output1->len ) ); - ASSERT_COMPARE( actual_output, expected_output1->len, - expected_output1->x, expected_output1->len ); - if( expected_output2->len != 0 ) - { - PSA_ASSERT( psa_key_derivation_output_bytes( &operation, - actual_output, - expected_output2->len ) ); - ASSERT_COMPARE( actual_output, expected_output2->len, - expected_output2->x, expected_output2->len ); + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + actual_output, + expected_output1->len)); + ASSERT_COMPARE(actual_output, expected_output1->len, + expected_output1->x, expected_output1->len); + if (expected_output2->len != 0) { + PSA_ASSERT(psa_key_derivation_output_bytes(&operation, + actual_output, + expected_output2->len)); + ASSERT_COMPARE(actual_output, expected_output2->len, + expected_output2->x, expected_output2->len); } exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( our_key ); - PSA_DONE( ); - mbedtls_free( actual_output ); + psa_key_derivation_abort(&operation); + psa_destroy_key(our_key); + PSA_DONE(); + mbedtls_free(actual_output); } /* END_CASE */ /* BEGIN_CASE */ -void generate_random( int bytes_arg ) +void generate_random(int bytes_arg) { size_t bytes = bytes_arg; unsigned char *output = NULL; @@ -8429,51 +8228,50 @@ void generate_random( int bytes_arg ) size_t i; unsigned run; - TEST_ASSERT( bytes_arg >= 0 ); + TEST_ASSERT(bytes_arg >= 0); - ASSERT_ALLOC( output, bytes ); - ASSERT_ALLOC( changed, bytes ); + ASSERT_ALLOC(output, bytes); + ASSERT_ALLOC(changed, bytes); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Run several times, to ensure that every output byte will be * nonzero at least once with overwhelming probability * (2^(-8*number_of_runs)). */ - for( run = 0; run < 10; run++ ) - { - if( bytes != 0 ) - memset( output, 0, bytes ); - PSA_ASSERT( psa_generate_random( output, bytes ) ); + for (run = 0; run < 10; run++) { + if (bytes != 0) { + memset(output, 0, bytes); + } + PSA_ASSERT(psa_generate_random(output, bytes)); - for( i = 0; i < bytes; i++ ) - { - if( output[i] != 0 ) + for (i = 0; i < bytes; i++) { + if (output[i] != 0) { ++changed[i]; + } } } /* Check that every byte was changed to nonzero at least once. This * validates that psa_generate_random is overwriting every byte of * the output buffer. */ - for( i = 0; i < bytes; i++ ) - { - TEST_ASSERT( changed[i] != 0 ); + for (i = 0; i < bytes; i++) { + TEST_ASSERT(changed[i] != 0); } exit: - PSA_DONE( ); - mbedtls_free( output ); - mbedtls_free( changed ); + PSA_DONE(); + mbedtls_free(output); + mbedtls_free(changed); } /* END_CASE */ /* BEGIN_CASE */ -void generate_key( int type_arg, - int bits_arg, - int usage_arg, - int alg_arg, - int expected_status_arg, - int is_large_key ) +void generate_key(int type_arg, + int bits_arg, + int usage_arg, + int alg_arg, + int expected_status_arg, + int is_large_key) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t type = type_arg; @@ -8484,47 +8282,50 @@ void generate_key( int type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t got_attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); /* Generate a key */ - psa_status_t status = psa_generate_key( &attributes, &key ); + psa_status_t status = psa_generate_key(&attributes, &key); - if( is_large_key > 0 ) - TEST_ASSUME( status != PSA_ERROR_INSUFFICIENT_MEMORY ); - TEST_EQUAL( status , expected_status ); - if( expected_status != PSA_SUCCESS ) + if (is_large_key > 0) { + TEST_ASSUME(status != PSA_ERROR_INSUFFICIENT_MEMORY); + } + TEST_EQUAL(status, expected_status); + if (expected_status != PSA_SUCCESS) { goto exit; + } /* Test the key information */ - PSA_ASSERT( psa_get_key_attributes( key, &got_attributes ) ); - TEST_EQUAL( psa_get_key_type( &got_attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &got_attributes ), bits ); + PSA_ASSERT(psa_get_key_attributes(key, &got_attributes)); + TEST_EQUAL(psa_get_key_type(&got_attributes), type); + TEST_EQUAL(psa_get_key_bits(&got_attributes), bits); /* Do something with the key according to its type and permitted usage. */ - if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) ) + if (!mbedtls_test_psa_exercise_key(key, usage, alg)) { goto exit; + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &got_attributes ); + psa_reset_key_attributes(&got_attributes); - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_KEY_TYPE_RSA_KEY_PAIR:PSA_WANT_ALG_RSA_PKCS1V15_CRYPT:PSA_WANT_ALG_RSA_PKCS1V15_SIGN:MBEDTLS_GENPRIME */ -void generate_key_rsa( int bits_arg, - data_t *e_arg, - int expected_status_arg ) +void generate_key_rsa(int bits_arg, + data_t *e_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t type = PSA_KEY_TYPE_RSA_KEY_PAIR; @@ -8535,56 +8336,58 @@ void generate_key_rsa( int bits_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *exported = NULL; size_t exported_size = - PSA_EXPORT_KEY_OUTPUT_SIZE( PSA_KEY_TYPE_RSA_PUBLIC_KEY, bits ); + PSA_EXPORT_KEY_OUTPUT_SIZE(PSA_KEY_TYPE_RSA_PUBLIC_KEY, bits); size_t exported_length = SIZE_MAX; uint8_t *e_read_buffer = NULL; int is_default_public_exponent = 0; - size_t e_read_size = PSA_KEY_DOMAIN_PARAMETERS_SIZE( type, bits ); + size_t e_read_size = PSA_KEY_DOMAIN_PARAMETERS_SIZE(type, bits); size_t e_read_length = SIZE_MAX; - if( e_arg->len == 0 || - ( e_arg->len == 3 && - e_arg->x[0] == 1 && e_arg->x[1] == 0 && e_arg->x[2] == 1 ) ) - { + if (e_arg->len == 0 || + (e_arg->len == 3 && + e_arg->x[0] == 1 && e_arg->x[1] == 0 && e_arg->x[2] == 1)) { is_default_public_exponent = 1; e_read_size = 0; } - ASSERT_ALLOC( e_read_buffer, e_read_size ); - ASSERT_ALLOC( exported, exported_size ); + ASSERT_ALLOC(e_read_buffer, e_read_size); + ASSERT_ALLOC(exported, exported_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_set_key_domain_parameters( &attributes, type, - e_arg->x, e_arg->len ) ); - psa_set_key_bits( &attributes, bits ); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_set_key_domain_parameters(&attributes, type, + e_arg->x, e_arg->len)); + psa_set_key_bits(&attributes, bits); /* Generate a key */ - TEST_EQUAL( psa_generate_key( &attributes, &key ), expected_status ); - if( expected_status != PSA_SUCCESS ) + TEST_EQUAL(psa_generate_key(&attributes, &key), expected_status); + if (expected_status != PSA_SUCCESS) { goto exit; + } /* Test the key information */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), bits ); - PSA_ASSERT( psa_get_key_domain_parameters( &attributes, - e_read_buffer, e_read_size, - &e_read_length ) ); - if( is_default_public_exponent ) - TEST_EQUAL( e_read_length, 0 ); - else - ASSERT_COMPARE( e_read_buffer, e_read_length, e_arg->x, e_arg->len ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_bits(&attributes), bits); + PSA_ASSERT(psa_get_key_domain_parameters(&attributes, + e_read_buffer, e_read_size, + &e_read_length)); + if (is_default_public_exponent) { + TEST_EQUAL(e_read_length, 0); + } else { + ASSERT_COMPARE(e_read_buffer, e_read_length, e_arg->x, e_arg->len); + } /* Do something with the key according to its type and permitted usage. */ - if( ! mbedtls_test_psa_exercise_key( key, usage, alg ) ) + if (!mbedtls_test_psa_exercise_key(key, usage, alg)) { goto exit; + } /* Export the key and check the public exponent. */ - PSA_ASSERT( psa_export_public_key( key, - exported, exported_size, - &exported_length ) ); + PSA_ASSERT(psa_export_public_key(key, + exported, exported_size, + &exported_length)); { uint8_t *p = exported; uint8_t *end = exported + exported_length; @@ -8593,26 +8396,24 @@ void generate_key_rsa( int bits_arg, * modulus INTEGER, -- n * publicExponent INTEGER } -- e */ - TEST_EQUAL( 0, mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_SEQUENCE | - MBEDTLS_ASN1_CONSTRUCTED ) ); - TEST_ASSERT( mbedtls_test_asn1_skip_integer( &p, end, bits, bits, 1 ) ); - TEST_EQUAL( 0, mbedtls_asn1_get_tag( &p, end, &len, - MBEDTLS_ASN1_INTEGER ) ); - if( len >= 1 && p[0] == 0 ) - { + TEST_EQUAL(0, mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_SEQUENCE | + MBEDTLS_ASN1_CONSTRUCTED)); + TEST_ASSERT(mbedtls_test_asn1_skip_integer(&p, end, bits, bits, 1)); + TEST_EQUAL(0, mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_INTEGER)); + if (len >= 1 && p[0] == 0) { ++p; --len; } - if( e_arg->len == 0 ) - { - TEST_EQUAL( len, 3 ); - TEST_EQUAL( p[0], 1 ); - TEST_EQUAL( p[1], 0 ); - TEST_EQUAL( p[2], 1 ); + if (e_arg->len == 0) { + TEST_EQUAL(len, 3); + TEST_EQUAL(p[0], 1); + TEST_EQUAL(p[1], 0); + TEST_EQUAL(p[2], 1); + } else { + ASSERT_COMPARE(p, len, e_arg->x, e_arg->len); } - else - ASSERT_COMPARE( p, len, e_arg->x, e_arg->len ); } exit: @@ -8620,22 +8421,22 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() or * set by psa_set_key_domain_parameters() thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( e_read_buffer ); - mbedtls_free( exported ); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(e_read_buffer); + mbedtls_free(exported); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C */ -void persistent_key_load_key_from_storage( data_t *data, - int type_arg, int bits_arg, - int usage_flags_arg, int alg_arg, - int generation_method ) +void persistent_key_load_key_from_storage(data_t *data, + int type_arg, int bits_arg, + int usage_flags_arg, int alg_arg, + int generation_method) { - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 1, 1 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(1, 1); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t base_key = MBEDTLS_SVC_KEY_ID_INIT; @@ -8646,140 +8447,138 @@ void persistent_key_load_key_from_storage( data_t *data, psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; unsigned char *first_export = NULL; unsigned char *second_export = NULL; - size_t export_size = PSA_EXPORT_KEY_OUTPUT_SIZE( type, bits ); + size_t export_size = PSA_EXPORT_KEY_OUTPUT_SIZE(type, bits); size_t first_exported_length; size_t second_exported_length; - if( usage_flags & PSA_KEY_USAGE_EXPORT ) - { - ASSERT_ALLOC( first_export, export_size ); - ASSERT_ALLOC( second_export, export_size ); + if (usage_flags & PSA_KEY_USAGE_EXPORT) { + ASSERT_ALLOC(first_export, export_size); + ASSERT_ALLOC(second_export, export_size); } - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, key_id ); - psa_set_key_usage_flags( &attributes, usage_flags ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); + psa_set_key_id(&attributes, key_id); + psa_set_key_usage_flags(&attributes, usage_flags); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); - switch( generation_method ) - { + switch (generation_method) { case IMPORT_KEY: /* Import the key */ - PSA_ASSERT( psa_import_key( &attributes, data->x, data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, data->x, data->len, + &key)); break; case GENERATE_KEY: /* Generate a key */ - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); + PSA_ASSERT(psa_generate_key(&attributes, &key)); break; case DERIVE_KEY: #if defined(PSA_WANT_ALG_HKDF) && defined(PSA_WANT_ALG_SHA_256) - { - /* Create base key */ - psa_algorithm_t derive_alg = PSA_ALG_HKDF( PSA_ALG_SHA_256 ); - psa_key_attributes_t base_attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_usage_flags( &base_attributes, - PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &base_attributes, derive_alg ); - psa_set_key_type( &base_attributes, PSA_KEY_TYPE_DERIVE ); - PSA_ASSERT( psa_import_key( &base_attributes, - data->x, data->len, - &base_key ) ); - /* Derive a key. */ - PSA_ASSERT( psa_key_derivation_setup( &operation, derive_alg ) ); - PSA_ASSERT( psa_key_derivation_input_key( - &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, base_key ) ); - PSA_ASSERT( psa_key_derivation_input_bytes( - &operation, PSA_KEY_DERIVATION_INPUT_INFO, - NULL, 0 ) ); - PSA_ASSERT( psa_key_derivation_output_key( &attributes, - &operation, - &key ) ); - PSA_ASSERT( psa_key_derivation_abort( &operation ) ); - PSA_ASSERT( psa_destroy_key( base_key ) ); - base_key = MBEDTLS_SVC_KEY_ID_INIT; - } + { + /* Create base key */ + psa_algorithm_t derive_alg = PSA_ALG_HKDF(PSA_ALG_SHA_256); + psa_key_attributes_t base_attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_set_key_usage_flags(&base_attributes, + PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&base_attributes, derive_alg); + psa_set_key_type(&base_attributes, PSA_KEY_TYPE_DERIVE); + PSA_ASSERT(psa_import_key(&base_attributes, + data->x, data->len, + &base_key)); + /* Derive a key. */ + PSA_ASSERT(psa_key_derivation_setup(&operation, derive_alg)); + PSA_ASSERT(psa_key_derivation_input_key( + &operation, + PSA_KEY_DERIVATION_INPUT_SECRET, base_key)); + PSA_ASSERT(psa_key_derivation_input_bytes( + &operation, PSA_KEY_DERIVATION_INPUT_INFO, + NULL, 0)); + PSA_ASSERT(psa_key_derivation_output_key(&attributes, + &operation, + &key)); + PSA_ASSERT(psa_key_derivation_abort(&operation)); + PSA_ASSERT(psa_destroy_key(base_key)); + base_key = MBEDTLS_SVC_KEY_ID_INIT; + } #else - TEST_ASSUME( ! "KDF not supported in this configuration" ); + TEST_ASSUME(!"KDF not supported in this configuration"); #endif break; default: - TEST_ASSERT( ! "generation_method not implemented in test" ); + TEST_ASSERT(!"generation_method not implemented in test"); break; } - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); /* Export the key if permitted by the key policy. */ - if( usage_flags & PSA_KEY_USAGE_EXPORT ) - { - PSA_ASSERT( psa_export_key( key, - first_export, export_size, - &first_exported_length ) ); - if( generation_method == IMPORT_KEY ) - ASSERT_COMPARE( data->x, data->len, - first_export, first_exported_length ); + if (usage_flags & PSA_KEY_USAGE_EXPORT) { + PSA_ASSERT(psa_export_key(key, + first_export, export_size, + &first_exported_length)); + if (generation_method == IMPORT_KEY) { + ASSERT_COMPARE(data->x, data->len, + first_export, first_exported_length); + } } /* Shutdown and restart */ - PSA_ASSERT( psa_purge_key( key ) ); + PSA_ASSERT(psa_purge_key(key)); PSA_DONE(); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); /* Check key slot still contains key data */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), key_id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - PSA_KEY_LIFETIME_PERSISTENT ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), bits ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - mbedtls_test_update_key_usage_flags( usage_flags ) ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), key_id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + PSA_KEY_LIFETIME_PERSISTENT); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_bits(&attributes), bits); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + mbedtls_test_update_key_usage_flags(usage_flags)); + TEST_EQUAL(psa_get_key_algorithm(&attributes), alg); /* Export the key again if permitted by the key policy. */ - if( usage_flags & PSA_KEY_USAGE_EXPORT ) - { - PSA_ASSERT( psa_export_key( key, - second_export, export_size, - &second_exported_length ) ); - ASSERT_COMPARE( first_export, first_exported_length, - second_export, second_exported_length ); + if (usage_flags & PSA_KEY_USAGE_EXPORT) { + PSA_ASSERT(psa_export_key(key, + second_export, export_size, + &second_exported_length)); + ASSERT_COMPARE(first_export, first_exported_length, + second_export, second_exported_length); } /* Do something with the key according to its type and permitted usage. */ - if( ! mbedtls_test_psa_exercise_key( key, usage_flags, alg ) ) + if (!mbedtls_test_psa_exercise_key(key, usage_flags, alg)) { goto exit; + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( first_export ); - mbedtls_free( second_export ); - psa_key_derivation_abort( &operation ); - psa_destroy_key( base_key ); - psa_destroy_key( key ); + mbedtls_free(first_export); + mbedtls_free(second_export); + psa_key_derivation_abort(&operation); + psa_destroy_key(base_key); + psa_destroy_key(key); PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, - int primitive_arg, int hash_arg, int role_arg, - int test_input, data_t *pw_data, - int inj_err_type_arg, - int expected_error_arg) +void ecjpake_setup(int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, + int primitive_arg, int hash_arg, int role_arg, + int test_input, data_t *pw_data, + int inj_err_type_arg, + int expected_error_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); @@ -8797,237 +8596,213 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, unsigned char *output_buffer = NULL; size_t output_len = 0; - PSA_INIT( ); + PSA_INIT(); size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, - PSA_PAKE_STEP_KEY_SHARE); - ASSERT_ALLOC( output_buffer, buf_size ); + PSA_PAKE_STEP_KEY_SHARE); + ASSERT_ALLOC(output_buffer, buf_size); - if( pw_data->len > 0 ) - { - psa_set_key_usage_flags( &attributes, key_usage_pw ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type_pw ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); + if (pw_data->len > 0) { + psa_set_key_usage_flags(&attributes, key_usage_pw); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type_pw); + PSA_ASSERT(psa_import_key(&attributes, pw_data->x, pw_data->len, + &key)); } - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); - PSA_ASSERT( psa_pake_abort( &operation ) ); + PSA_ASSERT(psa_pake_abort(&operation)); - if ( inj_err_type == INJECT_ERR_UNINITIALIZED_ACCESS ) - { - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_set_password_key( &operation, key ), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_set_role( &operation, role ), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - NULL, 0, NULL ), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), - expected_error ); - PSA_ASSERT( psa_pake_abort( &operation ) ); + if (inj_err_type == INJECT_ERR_UNINITIALIZED_ACCESS) { + TEST_EQUAL(psa_pake_set_user(&operation, NULL, 0), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); + TEST_EQUAL(psa_pake_set_peer(&operation, NULL, 0), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); + TEST_EQUAL(psa_pake_set_password_key(&operation, key), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); + TEST_EQUAL(psa_pake_set_role(&operation, role), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0, NULL), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_KEY_SHARE, NULL, 0), + expected_error); + PSA_ASSERT(psa_pake_abort(&operation)); goto exit; } - status = psa_pake_setup( &operation, &cipher_suite ); - if (status != PSA_SUCCESS) - { - TEST_EQUAL( status, expected_error ); + status = psa_pake_setup(&operation, &cipher_suite); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_error); goto exit; } - if( inj_err_type == INJECT_ERR_DUPLICATE_SETUP ) - { - TEST_EQUAL( psa_pake_setup( &operation, &cipher_suite ), - expected_error ); + if (inj_err_type == INJECT_ERR_DUPLICATE_SETUP) { + TEST_EQUAL(psa_pake_setup(&operation, &cipher_suite), + expected_error); goto exit; } - status = psa_pake_set_role( &operation, role); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error ); + status = psa_pake_set_role(&operation, role); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_error); goto exit; } - if( pw_data->len > 0 ) - { - status = psa_pake_set_password_key( &operation, key ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error ); + if (pw_data->len > 0) { + status = psa_pake_set_password_key(&operation, key); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_error); goto exit; } } - if ( inj_err_type == INJECT_ERR_INVALID_USER ) - { - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_ERR_INVALID_USER) { + TEST_EQUAL(psa_pake_set_user(&operation, NULL, 0), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_ERR_INVALID_PEER ) - { - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_ERR_INVALID_PEER) { + TEST_EQUAL(psa_pake_set_peer(&operation, NULL, 0), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_ERR_SET_USER ) - { + if (inj_err_type == INJECT_ERR_SET_USER) { const uint8_t unsupported_id[] = "abcd"; - TEST_EQUAL( psa_pake_set_user( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); + TEST_EQUAL(psa_pake_set_user(&operation, unsupported_id, 4), + PSA_ERROR_NOT_SUPPORTED); goto exit; } - if ( inj_err_type == INJECT_ERR_SET_PEER ) - { + if (inj_err_type == INJECT_ERR_SET_PEER) { const uint8_t unsupported_id[] = "abcd"; - TEST_EQUAL( psa_pake_set_peer( &operation, unsupported_id, 4 ), - PSA_ERROR_NOT_SUPPORTED ); + TEST_EQUAL(psa_pake_set_peer(&operation, unsupported_id, 4), + PSA_ERROR_NOT_SUPPORTED); goto exit; } - const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_KEY_SHARE ); - const size_t size_zk_public = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_ZK_PUBLIC ); - const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_ZK_PROOF ); + const size_t size_key_share = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_KEY_SHARE); + const size_t size_zk_public = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_ZK_PUBLIC); + const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_ZK_PROOF); - if ( test_input ) - { - if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), - PSA_ERROR_INVALID_ARGUMENT ); + if (test_input) { + if (inj_err_type == INJECT_EMPTY_IO_BUFFER) { + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PROOF, NULL, 0), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_UNKNOWN_STEP ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, size_zk_proof ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_UNKNOWN_STEP) { + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, size_zk_proof), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, size_zk_proof ), - PSA_ERROR_BAD_STATE ); + if (inj_err_type == INJECT_INVALID_FIRST_STEP) { + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, size_zk_proof), + PSA_ERROR_BAD_STATE); goto exit; } - status = psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, size_key_share ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error); + status = psa_pake_input(&operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, size_key_share); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_error); goto exit; } - if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) - { - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_WRONG_BUFFER_SIZE) { + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) - { + if (inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE) { // Just trigger any kind of error. We don't care about the result here - psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public ), - PSA_ERROR_BAD_STATE ); + psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1); + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public), + PSA_ERROR_BAD_STATE); goto exit; } } else { - if ( inj_err_type == INJECT_EMPTY_IO_BUFFER ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - NULL, 0, NULL ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_EMPTY_IO_BUFFER) { + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PROOF, + NULL, 0, NULL), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_UNKNOWN_STEP ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, buf_size, &output_len ), - PSA_ERROR_INVALID_ARGUMENT ); + if (inj_err_type == INJECT_UNKNOWN_STEP) { + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, buf_size, &output_len), + PSA_ERROR_INVALID_ARGUMENT); goto exit; } - if ( inj_err_type == INJECT_INVALID_FIRST_STEP ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PROOF, - output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); + if (inj_err_type == INJECT_INVALID_FIRST_STEP) { + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PROOF, + output_buffer, buf_size, &output_len), + PSA_ERROR_BAD_STATE); goto exit; } - status = psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - output_buffer, buf_size, &output_len ); - if ( status != PSA_SUCCESS ) - { - TEST_EQUAL( status, expected_error); + status = psa_pake_output(&operation, PSA_PAKE_STEP_KEY_SHARE, + output_buffer, buf_size, &output_len); + if (status != PSA_SUCCESS) { + TEST_EQUAL(status, expected_error); goto exit; } - TEST_ASSERT( output_len > 0 ); + TEST_ASSERT(output_len > 0); - if ( inj_err_type == INJECT_WRONG_BUFFER_SIZE ) - { - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ), - PSA_ERROR_BUFFER_TOO_SMALL ); + if (inj_err_type == INJECT_WRONG_BUFFER_SIZE) { + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len), + PSA_ERROR_BUFFER_TOO_SMALL); goto exit; } - if ( inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE ) - { + if (inj_err_type == INJECT_VALID_OPERATION_AFTER_FAILURE) { // Just trigger any kind of error. We don't care about the result here - psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, buf_size, &output_len ), - PSA_ERROR_BAD_STATE ); + psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len); + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len), + PSA_ERROR_BAD_STATE); goto exit; } } exit: - PSA_ASSERT( psa_destroy_key( key ) ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - mbedtls_free( output_buffer ); - PSA_DONE( ); + PSA_ASSERT(psa_destroy_key(key)); + PSA_ASSERT(psa_pake_abort(&operation)); + mbedtls_free(output_buffer); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, - int client_input_first, int inject_error, - data_t *pw_data ) +void ecjpake_rounds_inject(int alg_arg, int primitive_arg, int hash_arg, + int client_input_first, int inject_error, + data_t *pw_data) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -9037,49 +8812,50 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); + PSA_ASSERT(psa_import_key(&attributes, pw_data->x, pw_data->len, + &key)); - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive_arg); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); - PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); - PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + PSA_ASSERT(psa_pake_setup(&server, &cipher_suite)); + PSA_ASSERT(psa_pake_setup(&client, &cipher_suite)); - PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); - PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + PSA_ASSERT(psa_pake_set_role(&server, PSA_PAKE_ROLE_SERVER)); + PSA_ASSERT(psa_pake_set_role(&client, PSA_PAKE_ROLE_CLIENT)); - PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); - PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + PSA_ASSERT(psa_pake_set_password_key(&server, key)); + PSA_ASSERT(psa_pake_set_password_key(&client, key)); - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, inject_error ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, 1, inject_error); - if( inject_error == 1 || inject_error == 2 ) + if (inject_error == 1 || inject_error == 2) { goto exit; + } - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, inject_error ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, 2, inject_error); exit: - psa_destroy_key( key ); - psa_pake_abort( &server ); - psa_pake_abort( &client ); - PSA_DONE( ); + psa_destroy_key(key); + psa_pake_abort(&server); + psa_pake_abort(&client); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, - int derive_alg_arg, data_t *pw_data, - int client_input_first, int inj_err_type_arg ) +void ecjpake_rounds(int alg_arg, int primitive_arg, int hash_arg, + int derive_alg_arg, data_t *pw_data, + int client_input_first, int inj_err_type_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -9090,126 +8866,123 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_derivation_operation_t server_derive = - PSA_KEY_DERIVATION_OPERATION_INIT; + PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t client_derive = - PSA_KEY_DERIVATION_OPERATION_INIT; + PSA_KEY_DERIVATION_OPERATION_INIT; ecjpake_injected_failure_t inj_err_type = inj_err_type_arg; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); + PSA_ASSERT(psa_import_key(&attributes, pw_data->x, pw_data->len, + &key)); - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive_arg); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); /* Get shared key */ - PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); - PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); + PSA_ASSERT(psa_key_derivation_setup(&server_derive, derive_alg)); + PSA_ASSERT(psa_key_derivation_setup(&client_derive, derive_alg)); - if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); - PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); + if (PSA_ALG_IS_TLS12_PRF(derive_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(derive_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes(&server_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t *) "", 0)); + PSA_ASSERT(psa_key_derivation_input_bytes(&client_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t *) "", 0)); } - PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); - PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + PSA_ASSERT(psa_pake_setup(&server, &cipher_suite)); + PSA_ASSERT(psa_pake_setup(&client, &cipher_suite)); - PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); - PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + PSA_ASSERT(psa_pake_set_role(&server, PSA_PAKE_ROLE_SERVER)); + PSA_ASSERT(psa_pake_set_role(&client, PSA_PAKE_ROLE_CLIENT)); - PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); - PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + PSA_ASSERT(psa_pake_set_password_key(&server, key)); + PSA_ASSERT(psa_pake_set_password_key(&client, key)); - if( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1 ) - { - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); + if (inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_1) { + TEST_EQUAL(psa_pake_get_implicit_key(&server, &server_derive), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_pake_get_implicit_key(&client, &client_derive), + PSA_ERROR_BAD_STATE); goto exit; } /* First round */ - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 1, 0 ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, 1, 0); - if ( inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_2 ) - { - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); + if (inj_err_type == INJECT_ANTICIPATE_KEY_DERIVATION_2) { + TEST_EQUAL(psa_pake_get_implicit_key(&server, &server_derive), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_pake_get_implicit_key(&client, &client_derive), + PSA_ERROR_BAD_STATE); goto exit; } /* Second round */ - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, 2, 0 ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, 2, 0); - PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); - PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); + PSA_ASSERT(psa_pake_get_implicit_key(&server, &server_derive)); + PSA_ASSERT(psa_pake_get_implicit_key(&client, &client_derive)); exit: - psa_key_derivation_abort( &server_derive ); - psa_key_derivation_abort( &client_derive ); - psa_destroy_key( key ); - psa_pake_abort( &server ); - psa_pake_abort( &client ); - PSA_DONE( ); + psa_key_derivation_abort(&server_derive); + psa_key_derivation_abort(&client_derive); + psa_destroy_key(key); + psa_pake_abort(&server); + psa_pake_abort(&client); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void ecjpake_size_macros( ) +void ecjpake_size_macros() { const psa_algorithm_t alg = PSA_ALG_JPAKE; const size_t bits = 256; const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( - PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits ); + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits); const psa_key_type_t key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( - PSA_ECC_FAMILY_SECP_R1 ); + PSA_ECC_FAMILY_SECP_R1); // https://armmbed.github.io/mbed-crypto/1.1_PAKE_Extension.0-bet.0/html/pake.html#pake-step-types /* The output for KEY_SHARE and ZK_PUBLIC is the same as a public key */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(key_type, bits)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(key_type, bits)); /* The output for ZK_PROOF is the same bitsize as the curve */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_BITS_TO_BYTES( bits ) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_BITS_TO_BYTES(bits)); /* Input sizes are the same as output sizes */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF)); /* These inequalities will always hold even when other PAKEs are added */ - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_INPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_INPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_MAX_SIZE); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_attributes.function b/tests/suites/test_suite_psa_crypto_attributes.function index ce34fae74..c933cb724 100644 --- a/tests/suites/test_suite_psa_crypto_attributes.function +++ b/tests/suites/test_suite_psa_crypto_attributes.function @@ -8,12 +8,12 @@ */ /* BEGIN_CASE */ -void attributes_set_get( int owner_id_arg, int id_arg, int lifetime_arg, - int usage_flags_arg, int alg_arg, - int type_arg, int bits_arg ) +void attributes_set_get(int owner_id_arg, int id_arg, int lifetime_arg, + int usage_flags_arg, int alg_arg, + int type_arg, int bits_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( owner_id_arg, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(owner_id_arg, id_arg); psa_key_lifetime_t lifetime = lifetime_arg; psa_key_usage_t usage_flags = usage_flags_arg; psa_algorithm_t alg = alg_arg; @@ -21,109 +21,112 @@ void attributes_set_get( int owner_id_arg, int id_arg, int lifetime_arg, size_t bits = bits_arg; TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( psa_get_key_id( &attributes ) ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psa_get_key_id(&attributes)), 0); TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( psa_get_key_id( &attributes ) ), 0 ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_type( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_bits( &attributes ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(psa_get_key_id(&attributes)), 0); + TEST_EQUAL(psa_get_key_lifetime(&attributes), 0); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), 0); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); + TEST_EQUAL(psa_get_key_type(&attributes), 0); + TEST_EQUAL(psa_get_key_bits(&attributes), 0); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, usage_flags ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, usage_flags); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), lifetime ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), usage_flags ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), alg ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), bits ); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), lifetime); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), usage_flags); + TEST_EQUAL(psa_get_key_algorithm(&attributes), alg); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_bits(&attributes), bits); - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( psa_get_key_id( &attributes ) ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(psa_get_key_id(&attributes)), 0); TEST_EQUAL( - MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( psa_get_key_id( &attributes ) ), 0 ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_type( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_bits( &attributes ), 0 ); + MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(psa_get_key_id(&attributes)), 0); + TEST_EQUAL(psa_get_key_lifetime(&attributes), 0); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), 0); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); + TEST_EQUAL(psa_get_key_type(&attributes), 0); + TEST_EQUAL(psa_get_key_bits(&attributes), 0); } /* END_CASE */ /* BEGIN_CASE */ -void persistence_attributes( int id1_arg, int owner_id1_arg, int lifetime_arg, - int id2_arg, int owner_id2_arg, - int expected_id_arg, int expected_owner_id_arg, - int expected_lifetime_arg ) +void persistence_attributes(int id1_arg, int owner_id1_arg, int lifetime_arg, + int id2_arg, int owner_id2_arg, + int expected_id_arg, int expected_owner_id_arg, + int expected_lifetime_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t id1 = - mbedtls_svc_key_id_make( owner_id1_arg, id1_arg ); + mbedtls_svc_key_id_make(owner_id1_arg, id1_arg); psa_key_lifetime_t lifetime = lifetime_arg; mbedtls_svc_key_id_t id2 = - mbedtls_svc_key_id_make( owner_id2_arg, id2_arg ); + mbedtls_svc_key_id_make(owner_id2_arg, id2_arg); mbedtls_svc_key_id_t expected_id = - mbedtls_svc_key_id_make( expected_owner_id_arg, expected_id_arg ); + mbedtls_svc_key_id_make(expected_owner_id_arg, expected_id_arg); psa_key_lifetime_t expected_lifetime = expected_lifetime_arg; - if( id1_arg != -1 ) - psa_set_key_id( &attributes, id1 ); - if( lifetime_arg != -1 ) - psa_set_key_lifetime( &attributes, lifetime ); - if( id2_arg != -1 ) - psa_set_key_id( &attributes, id2 ); + if (id1_arg != -1) { + psa_set_key_id(&attributes, id1); + } + if (lifetime_arg != -1) { + psa_set_key_lifetime(&attributes, lifetime); + } + if (id2_arg != -1) { + psa_set_key_id(&attributes, id2); + } - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), expected_id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), expected_lifetime ); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), expected_id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), expected_lifetime); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_SE_C */ -void slot_number_attribute( ) +void slot_number_attribute() { psa_key_slot_number_t slot_number = 0xdeadbeef; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; /* Initially, there is no slot number. */ - TEST_EQUAL( psa_get_key_slot_number( &attributes, &slot_number ), - PSA_ERROR_INVALID_ARGUMENT ); + TEST_EQUAL(psa_get_key_slot_number(&attributes, &slot_number), + PSA_ERROR_INVALID_ARGUMENT); /* Test setting a slot number. */ - psa_set_key_slot_number( &attributes, 0 ); - PSA_ASSERT( psa_get_key_slot_number( &attributes, &slot_number ) ); - TEST_EQUAL( slot_number, 0 ); + psa_set_key_slot_number(&attributes, 0); + PSA_ASSERT(psa_get_key_slot_number(&attributes, &slot_number)); + TEST_EQUAL(slot_number, 0); /* Test changing the slot number. */ - psa_set_key_slot_number( &attributes, 42 ); - PSA_ASSERT( psa_get_key_slot_number( &attributes, &slot_number ) ); - TEST_EQUAL( slot_number, 42 ); + psa_set_key_slot_number(&attributes, 42); + PSA_ASSERT(psa_get_key_slot_number(&attributes, &slot_number)); + TEST_EQUAL(slot_number, 42); /* Test clearing the slot number. */ - psa_clear_key_slot_number( &attributes ); - TEST_EQUAL( psa_get_key_slot_number( &attributes, &slot_number ), - PSA_ERROR_INVALID_ARGUMENT ); + psa_clear_key_slot_number(&attributes); + TEST_EQUAL(psa_get_key_slot_number(&attributes, &slot_number), + PSA_ERROR_INVALID_ARGUMENT); /* Clearing again should have no effect. */ - psa_clear_key_slot_number( &attributes ); - TEST_EQUAL( psa_get_key_slot_number( &attributes, &slot_number ), - PSA_ERROR_INVALID_ARGUMENT ); + psa_clear_key_slot_number(&attributes); + TEST_EQUAL(psa_get_key_slot_number(&attributes, &slot_number), + PSA_ERROR_INVALID_ARGUMENT); /* Test that reset clears the slot number. */ - psa_set_key_slot_number( &attributes, 42 ); - PSA_ASSERT( psa_get_key_slot_number( &attributes, &slot_number ) ); - TEST_EQUAL( slot_number, 42 ); - psa_reset_key_attributes( &attributes ); - TEST_EQUAL( psa_get_key_slot_number( &attributes, &slot_number ), - PSA_ERROR_INVALID_ARGUMENT ); + psa_set_key_slot_number(&attributes, 42); + PSA_ASSERT(psa_get_key_slot_number(&attributes, &slot_number)); + TEST_EQUAL(slot_number, 42); + psa_reset_key_attributes(&attributes); + TEST_EQUAL(psa_get_key_slot_number(&attributes, &slot_number), + PSA_ERROR_INVALID_ARGUMENT); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_driver_wrappers.function b/tests/suites/test_suite_psa_crypto_driver_wrappers.function index b713cb284..8bb3e35f6 100644 --- a/tests/suites/test_suite_psa_crypto_driver_wrappers.function +++ b/tests/suites/test_suite_psa_crypto_driver_wrappers.function @@ -15,49 +15,44 @@ static int sanity_check_rsa_encryption_result( psa_algorithm_t alg, const data_t *modulus, const data_t *private_exponent, const data_t *input_data, - uint8_t *buf, size_t length ) + uint8_t *buf, size_t length) { #if defined(MBEDTLS_BIGNUM_C) mbedtls_mpi N, D, C, X; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &D ); - mbedtls_mpi_init( &C ); - mbedtls_mpi_init( &X ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&D); + mbedtls_mpi_init(&C); + mbedtls_mpi_init(&X); #endif /* MBEDTLS_BIGNUM_C */ int ok = 0; - TEST_ASSERT( length == modulus->len ); + TEST_ASSERT(length == modulus->len); #if defined(MBEDTLS_BIGNUM_C) /* Perform the private key operation */ - TEST_ASSERT( mbedtls_mpi_read_binary( &N, modulus->x, modulus->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &D, - private_exponent->x, - private_exponent->len ) == 0 ); - TEST_ASSERT( mbedtls_mpi_read_binary( &C, buf, length ) == 0 ); - TEST_ASSERT( mbedtls_mpi_exp_mod( &X, &C, &D, &N, NULL ) == 0 ); + TEST_ASSERT(mbedtls_mpi_read_binary(&N, modulus->x, modulus->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&D, + private_exponent->x, + private_exponent->len) == 0); + TEST_ASSERT(mbedtls_mpi_read_binary(&C, buf, length) == 0); + TEST_ASSERT(mbedtls_mpi_exp_mod(&X, &C, &D, &N, NULL) == 0); /* Sanity checks on the padded plaintext */ - TEST_ASSERT( mbedtls_mpi_write_binary( &X, buf, length ) == 0 ); + TEST_ASSERT(mbedtls_mpi_write_binary(&X, buf, length) == 0); - if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) - { - TEST_ASSERT( length > input_data->len + 2 ); - TEST_EQUAL( buf[0], 0x00 ); - TEST_EQUAL( buf[1], 0x02 ); - TEST_EQUAL( buf[length - input_data->len - 1], 0x00 ); - ASSERT_COMPARE( buf + length - input_data->len, input_data->len, - input_data->x, input_data->len ); - } - else if( PSA_ALG_IS_RSA_OAEP( alg ) ) - { - TEST_EQUAL( buf[0], 0x00 ); + if (alg == PSA_ALG_RSA_PKCS1V15_CRYPT) { + TEST_ASSERT(length > input_data->len + 2); + TEST_EQUAL(buf[0], 0x00); + TEST_EQUAL(buf[1], 0x02); + TEST_EQUAL(buf[length - input_data->len - 1], 0x00); + ASSERT_COMPARE(buf + length - input_data->len, input_data->len, + input_data->x, input_data->len); + } else if (PSA_ALG_IS_RSA_OAEP(alg)) { + TEST_EQUAL(buf[0], 0x00); /* The rest is too hard to check */ - } - else - { - TEST_ASSERT( ! "Encryption result sanity check not implemented for RSA algorithm" ); + } else { + TEST_ASSERT(!"Encryption result sanity check not implemented for RSA algorithm"); } #endif /* MBEDTLS_BIGNUM_C */ @@ -65,12 +60,12 @@ static int sanity_check_rsa_encryption_result( exit: #if defined(MBEDTLS_BIGNUM_C) - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &D ); - mbedtls_mpi_free( &C ); - mbedtls_mpi_free( &X ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&D); + mbedtls_mpi_free(&C); + mbedtls_mpi_free(&X); #endif /* MBEDTLS_BIGNUM_C */ - return( ok ); + return ok; } #endif /* END_HEADER */ @@ -81,14 +76,14 @@ exit: */ /* BEGIN_CASE */ -void sign_hash( int key_type_arg, - int alg_arg, - int force_status_arg, - data_t *key_input, - data_t *data_input, - data_t *expected_output, - int fake_output, - int expected_status_arg ) +void sign_hash(int key_type_arg, + int alg_arg, + int force_status_arg, + data_t *key_input, + data_t *data_input, + data_t *expected_output, + int fake_output, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; @@ -104,18 +99,17 @@ void sign_hash( int key_type_arg, mbedtls_test_driver_signature_sign_hooks = mbedtls_test_driver_signature_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_type( &attributes, - key_type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_type(&attributes, + key_type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); mbedtls_test_driver_signature_sign_hooks.forced_status = force_status; - if( fake_output == 1 ) - { + if (fake_output == 1) { mbedtls_test_driver_signature_sign_hooks.forced_output = expected_output->x; mbedtls_test_driver_signature_sign_hooks.forced_output_length = @@ -124,104 +118,100 @@ void sign_hash( int key_type_arg, /* Allocate a buffer which has the size advertized by the * library. */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg); - TEST_ASSERT( signature_size != 0 ); - TEST_ASSERT( signature_size <= PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); + TEST_ASSERT(signature_size != 0); + TEST_ASSERT(signature_size <= PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); - actual_status = psa_sign_hash( key, alg, - data_input->x, data_input->len, - signature, signature_size, - &signature_length ); - TEST_EQUAL( actual_status, expected_status ); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( signature, signature_length, - expected_output->x, expected_output->len ); + actual_status = psa_sign_hash(key, alg, + data_input->x, data_input->len, + signature, signature_size, + &signature_length); + TEST_EQUAL(actual_status, expected_status); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(signature, signature_length, + expected_output->x, expected_output->len); } - TEST_EQUAL( mbedtls_test_driver_signature_sign_hooks.hits, 1 ); + TEST_EQUAL(mbedtls_test_driver_signature_sign_hooks.hits, 1); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); mbedtls_test_driver_signature_sign_hooks = mbedtls_test_driver_signature_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void verify_hash( int key_type_arg, - int key_type_public_arg, +void verify_hash(int key_type_arg, + int key_type_public_arg, + int alg_arg, + int force_status_arg, + int register_public_key, + data_t *key_input, + data_t *data_input, + data_t *signature_input, + int expected_status_arg) +{ + psa_status_t force_status = force_status_arg; + psa_status_t expected_status = expected_status_arg; + psa_algorithm_t alg = alg_arg; + psa_key_type_t key_type = key_type_arg; + psa_key_type_t key_type_public = key_type_public_arg; + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + psa_status_t actual_status; + mbedtls_test_driver_signature_verify_hooks = + mbedtls_test_driver_signature_hooks_init(); + + PSA_ASSERT(psa_crypto_init()); + if (register_public_key) { + psa_set_key_type(&attributes, key_type_public); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); + } else { + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); + } + + mbedtls_test_driver_signature_verify_hooks.forced_status = force_status; + + actual_status = psa_verify_hash(key, alg, + data_input->x, data_input->len, + signature_input->x, signature_input->len); + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(mbedtls_test_driver_signature_verify_hooks.hits, 1); + +exit: + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_test_driver_signature_verify_hooks = + mbedtls_test_driver_signature_hooks_init(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void sign_message(int key_type_arg, int alg_arg, int force_status_arg, - int register_public_key, data_t *key_input, data_t *data_input, - data_t *signature_input, - int expected_status_arg ) -{ - psa_status_t force_status = force_status_arg; - psa_status_t expected_status = expected_status_arg; - psa_algorithm_t alg = alg_arg; - psa_key_type_t key_type = key_type_arg; - psa_key_type_t key_type_public = key_type_public_arg; - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_status_t actual_status; - mbedtls_test_driver_signature_verify_hooks = - mbedtls_test_driver_signature_hooks_init(); - - PSA_ASSERT( psa_crypto_init( ) ); - if( register_public_key ) - { - psa_set_key_type( &attributes, key_type_public ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); - } - else - { - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); - } - - mbedtls_test_driver_signature_verify_hooks.forced_status = force_status; - - actual_status = psa_verify_hash( key, alg, - data_input->x, data_input->len, - signature_input->x, signature_input->len ); - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( mbedtls_test_driver_signature_verify_hooks.hits, 1 ); - -exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_test_driver_signature_verify_hooks = - mbedtls_test_driver_signature_hooks_init(); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void sign_message( int key_type_arg, - int alg_arg, - int force_status_arg, - data_t *key_input, - data_t *data_input, - data_t *expected_output, - int fake_output, - int expected_status_arg ) + data_t *expected_output, + int fake_output, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; @@ -237,17 +227,16 @@ void sign_message( int key_type_arg, mbedtls_test_driver_signature_sign_hooks = mbedtls_test_driver_signature_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); mbedtls_test_driver_signature_sign_hooks.forced_status = force_status; - if( fake_output == 1 ) - { + if (fake_output == 1) { mbedtls_test_driver_signature_sign_hooks.forced_output = expected_output->x; mbedtls_test_driver_signature_sign_hooks.forced_output_length = @@ -256,48 +245,47 @@ void sign_message( int key_type_arg, /* Allocate a buffer which has the size advertized by the * library. */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); - signature_size = PSA_SIGN_OUTPUT_SIZE( key_type, key_bits, alg ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); + signature_size = PSA_SIGN_OUTPUT_SIZE(key_type, key_bits, alg); - TEST_ASSERT( signature_size != 0 ); - TEST_ASSERT( signature_size <= PSA_SIGNATURE_MAX_SIZE ); - ASSERT_ALLOC( signature, signature_size ); + TEST_ASSERT(signature_size != 0); + TEST_ASSERT(signature_size <= PSA_SIGNATURE_MAX_SIZE); + ASSERT_ALLOC(signature, signature_size); - actual_status = psa_sign_message( key, alg, - data_input->x, data_input->len, - signature, signature_size, - &signature_length ); - TEST_EQUAL( actual_status, expected_status ); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( signature, signature_length, - expected_output->x, expected_output->len ); + actual_status = psa_sign_message(key, alg, + data_input->x, data_input->len, + signature, signature_size, + &signature_length); + TEST_EQUAL(actual_status, expected_status); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(signature, signature_length, + expected_output->x, expected_output->len); } /* In the builtin algorithm the driver is called twice. */ - TEST_EQUAL( mbedtls_test_driver_signature_sign_hooks.hits, - force_status == PSA_ERROR_NOT_SUPPORTED ? 2 : 1 ); + TEST_EQUAL(mbedtls_test_driver_signature_sign_hooks.hits, + force_status == PSA_ERROR_NOT_SUPPORTED ? 2 : 1); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - mbedtls_free( signature ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + mbedtls_free(signature); + PSA_DONE(); mbedtls_test_driver_signature_sign_hooks = mbedtls_test_driver_signature_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void verify_message( int key_type_arg, - int key_type_public_arg, - int alg_arg, - int force_status_arg, - int register_public_key, - data_t *key_input, - data_t *data_input, - data_t *signature_input, - int expected_status_arg ) +void verify_message(int key_type_arg, + int key_type_public_arg, + int alg_arg, + int force_status_arg, + int register_public_key, + data_t *key_input, + data_t *data_input, + data_t *signature_input, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; @@ -310,131 +298,123 @@ void verify_message( int key_type_arg, mbedtls_test_driver_signature_verify_hooks = mbedtls_test_driver_signature_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); - if( register_public_key ) - { - psa_set_key_type( &attributes, key_type_public ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); - } - else - { - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_MESSAGE ); - psa_set_key_algorithm( &attributes, alg ); - psa_import_key( &attributes, - key_input->x, key_input->len, - &key ); + PSA_ASSERT(psa_crypto_init()); + if (register_public_key) { + psa_set_key_type(&attributes, key_type_public); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); + } else { + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_MESSAGE); + psa_set_key_algorithm(&attributes, alg); + psa_import_key(&attributes, + key_input->x, key_input->len, + &key); } mbedtls_test_driver_signature_verify_hooks.forced_status = force_status; - actual_status = psa_verify_message( key, alg, - data_input->x, data_input->len, - signature_input->x, signature_input->len ); - TEST_EQUAL( actual_status, expected_status ); + actual_status = psa_verify_message(key, alg, + data_input->x, data_input->len, + signature_input->x, signature_input->len); + TEST_EQUAL(actual_status, expected_status); /* In the builtin algorithm the driver is called twice. */ - TEST_EQUAL( mbedtls_test_driver_signature_verify_hooks.hits, - force_status == PSA_ERROR_NOT_SUPPORTED ? 2 : 1 ); + TEST_EQUAL(mbedtls_test_driver_signature_verify_hooks.hits, + force_status == PSA_ERROR_NOT_SUPPORTED ? 2 : 1); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_signature_verify_hooks = mbedtls_test_driver_signature_hooks_init(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 */ -void generate_key( int force_status_arg, - data_t *fake_output, - int expected_status_arg ) +void generate_key(int force_status_arg, + data_t *fake_output, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_algorithm_t alg = PSA_ALG_ECDSA( PSA_ALG_SHA_256 ); + psa_algorithm_t alg = PSA_ALG_ECDSA(PSA_ALG_SHA_256); const uint8_t *expected_output = NULL; size_t expected_output_length = 0; psa_status_t actual_status; - uint8_t actual_output[PSA_KEY_EXPORT_ECC_KEY_PAIR_MAX_SIZE(256)] = {0}; + uint8_t actual_output[PSA_KEY_EXPORT_ECC_KEY_PAIR_MAX_SIZE(256)] = { 0 }; size_t actual_output_length; mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); - psa_set_key_type( &attributes, - PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ) ); - psa_set_key_bits( &attributes, 256 ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type(&attributes, + PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)); + psa_set_key_bits(&attributes, 256); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, alg); - if( fake_output->len > 0 ) - { + if (fake_output->len > 0) { expected_output = mbedtls_test_driver_key_management_hooks.forced_output = - fake_output->x; + fake_output->x; expected_output_length = mbedtls_test_driver_key_management_hooks.forced_output_length = - fake_output->len; + fake_output->len; } mbedtls_test_driver_key_management_hooks.hits = 0; mbedtls_test_driver_key_management_hooks.forced_status = force_status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - actual_status = psa_generate_key( &attributes, &key ); - TEST_EQUAL( mbedtls_test_driver_key_management_hooks.hits, 1 ); - TEST_EQUAL( actual_status, expected_status ); + actual_status = psa_generate_key(&attributes, &key); + TEST_EQUAL(mbedtls_test_driver_key_management_hooks.hits, 1); + TEST_EQUAL(actual_status, expected_status); - if( actual_status == PSA_SUCCESS ) - { - psa_export_key( key, actual_output, sizeof(actual_output), &actual_output_length ); + if (actual_status == PSA_SUCCESS) { + psa_export_key(key, actual_output, sizeof(actual_output), &actual_output_length); - if( fake_output->len > 0 ) - { - ASSERT_COMPARE( actual_output, actual_output_length, - expected_output, expected_output_length ); - } - else - { + if (fake_output->len > 0) { + ASSERT_COMPARE(actual_output, actual_output_length, + expected_output, expected_output_length); + } else { size_t zeroes = 0; - for( size_t i = 0; i < sizeof(actual_output); i++ ) - { - if( actual_output[i] == 0) + for (size_t i = 0; i < sizeof(actual_output); i++) { + if (actual_output[i] == 0) { zeroes++; + } } - TEST_ASSERT( zeroes != sizeof(actual_output) ); + TEST_ASSERT(zeroes != sizeof(actual_output)); } } exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void validate_key( int force_status_arg, - int location, - int owner_id_arg, - int id_arg, - int key_type_arg, - data_t *key_input, - int expected_status_arg ) +void validate_key(int force_status_arg, + int location, + int owner_id_arg, + int id_arg, + int key_type_arg, + data_t *key_input, + int expected_status_arg) { psa_key_lifetime_t lifetime = - PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ - PSA_KEY_PERSISTENCE_DEFAULT, location); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( owner_id_arg, id_arg ); + PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ + PSA_KEY_PERSISTENCE_DEFAULT, location); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(owner_id_arg, id_arg); psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; @@ -444,38 +424,38 @@ void validate_key( int force_status_arg, mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); - psa_set_key_id( &attributes, id ); - psa_set_key_type( &attributes, - key_type ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_bits( &attributes, 0 ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); + psa_set_key_id(&attributes, id); + psa_set_key_type(&attributes, + key_type); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_bits(&attributes, 0); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); mbedtls_test_driver_key_management_hooks.forced_status = force_status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - actual_status = psa_import_key( &attributes, key_input->x, key_input->len, &key ); - TEST_EQUAL( mbedtls_test_driver_key_management_hooks.hits, 1 ); - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( mbedtls_test_driver_key_management_hooks.location, location ); + actual_status = psa_import_key(&attributes, key_input->x, key_input->len, &key); + TEST_EQUAL(mbedtls_test_driver_key_management_hooks.hits, 1); + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(mbedtls_test_driver_key_management_hooks.location, location); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void export_key( int force_status_arg, - data_t *fake_output, - int key_in_type_arg, - data_t *key_in, - int key_out_type_arg, - data_t *expected_output, - int expected_status_arg ) +void export_key(int force_status_arg, + data_t *fake_output, + int key_in_type_arg, + data_t *key_in, + int key_out_type_arg, + data_t *expected_output, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; @@ -486,30 +466,27 @@ void export_key( int force_status_arg, const uint8_t *expected_output_ptr = NULL; size_t expected_output_length = 0; psa_status_t actual_status; - uint8_t actual_output[PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(256)] = {0}; + uint8_t actual_output[PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(256)] = { 0 }; size_t actual_output_length; mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); - psa_set_key_type( &attributes, input_key_type ); - psa_set_key_bits( &attributes, 256 ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); + psa_set_key_type(&attributes, input_key_type); + psa_set_key_bits(&attributes, 256); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_import_key( &attributes, key_in->x, key_in->len, &handle ) ); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_import_key(&attributes, key_in->x, key_in->len, &handle)); - if( fake_output->len > 0 ) - { + if (fake_output->len > 0) { expected_output_ptr = mbedtls_test_driver_key_management_hooks.forced_output = - fake_output->x; + fake_output->x; expected_output_length = mbedtls_test_driver_key_management_hooks.forced_output_length = - fake_output->len; - } - else - { + fake_output->len; + } else { expected_output_ptr = expected_output->x; expected_output_length = expected_output->len; } @@ -517,39 +494,46 @@ void export_key( int force_status_arg, mbedtls_test_driver_key_management_hooks.hits = 0; mbedtls_test_driver_key_management_hooks.forced_status = force_status; - if( PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( output_key_type ) ) - actual_status = psa_export_public_key( handle, actual_output, sizeof(actual_output), &actual_output_length ); - else - actual_status = psa_export_key( handle, actual_output, sizeof(actual_output), &actual_output_length ); - TEST_EQUAL( actual_status, expected_status ); + if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(output_key_type)) { + actual_status = psa_export_public_key(handle, + actual_output, + sizeof(actual_output), + &actual_output_length); + } else { + actual_status = psa_export_key(handle, + actual_output, + sizeof(actual_output), + &actual_output_length); + } + TEST_EQUAL(actual_status, expected_status); - if( PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( output_key_type ) && - !PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( input_key_type ) ) - TEST_EQUAL( mbedtls_test_driver_key_management_hooks.hits, 1 ); + if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(output_key_type) && + !PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(input_key_type)) { + TEST_EQUAL(mbedtls_test_driver_key_management_hooks.hits, 1); + } - if( actual_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( actual_output, actual_output_length, - expected_output_ptr, expected_output_length ); + if (actual_status == PSA_SUCCESS) { + ASSERT_COMPARE(actual_output, actual_output_length, + expected_output_ptr, expected_output_length); } exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( handle ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(handle); + PSA_DONE(); mbedtls_test_driver_key_management_hooks = mbedtls_test_driver_key_management_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement( int alg_arg, - int force_status_arg, - int our_key_type_arg, - data_t *our_key_data, - data_t *peer_key_data, - data_t *expected_output, - data_t* fake_output, - int expected_status_arg ) +void key_agreement(int alg_arg, + int force_status_arg, + int our_key_type_arg, + data_t *our_key_data, + data_t *peer_key_data, + data_t *expected_output, + data_t *fake_output, + int expected_status_arg) { psa_status_t force_status = force_status_arg; psa_status_t expected_status = expected_status_arg; @@ -566,35 +550,32 @@ void key_agreement( int alg_arg, mbedtls_test_driver_key_agreement_hooks = mbedtls_test_driver_key_agreement_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, our_key_type ); - PSA_ASSERT( psa_import_key( &attributes, - our_key_data->x, our_key_data->len, - &our_key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, our_key_type); + PSA_ASSERT(psa_import_key(&attributes, + our_key_data->x, our_key_data->len, + &our_key)); - PSA_ASSERT( psa_get_key_attributes( our_key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(our_key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - TEST_LE_U( expected_output->len, - PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ) ); - TEST_LE_U( PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE( our_key_type, key_bits ), - PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE ); + TEST_LE_U(expected_output->len, + PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(our_key_type, key_bits)); + TEST_LE_U(PSA_RAW_KEY_AGREEMENT_OUTPUT_SIZE(our_key_type, key_bits), + PSA_RAW_KEY_AGREEMENT_OUTPUT_MAX_SIZE); - if( fake_output->len > 0 ) - { + if (fake_output->len > 0) { expected_output_ptr = mbedtls_test_driver_key_agreement_hooks.forced_output = - fake_output->x; + fake_output->x; expected_output_length = mbedtls_test_driver_key_agreement_hooks.forced_output_length = - fake_output->len; - } - else - { + fake_output->len; + } else { expected_output_ptr = expected_output->x; expected_output_length = expected_output->len; } @@ -602,27 +583,26 @@ void key_agreement( int alg_arg, mbedtls_test_driver_key_agreement_hooks.hits = 0; mbedtls_test_driver_key_agreement_hooks.forced_status = force_status; - ASSERT_ALLOC( actual_output, expected_output->len ); - actual_status = psa_raw_key_agreement( alg, our_key, - peer_key_data->x, peer_key_data->len, - actual_output, expected_output->len, - &actual_output_length ) ; - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( mbedtls_test_driver_key_agreement_hooks.hits, 1 ); + ASSERT_ALLOC(actual_output, expected_output->len); + actual_status = psa_raw_key_agreement(alg, our_key, + peer_key_data->x, peer_key_data->len, + actual_output, expected_output->len, + &actual_output_length); + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(mbedtls_test_driver_key_agreement_hooks.hits, 1); - if( actual_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( actual_output, actual_output_length, - expected_output_ptr, expected_output_length); + if (actual_status == PSA_SUCCESS) { + ASSERT_COMPARE(actual_output, actual_output_length, + expected_output_ptr, expected_output_length); } - mbedtls_free( actual_output ); + mbedtls_free(actual_output); actual_output = NULL; actual_output_length = ~0; exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( our_key ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(our_key); + PSA_DONE(); mbedtls_test_driver_key_agreement_hooks = mbedtls_test_driver_key_agreement_hooks_init(); } @@ -630,15 +610,15 @@ exit: /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_validation( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *input ) +void cipher_encrypt_validation(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *input) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; - size_t iv_size = PSA_CIPHER_IV_LENGTH ( key_type, alg ); + size_t iv_size = PSA_CIPHER_IV_LENGTH(key_type, alg); unsigned char *output1 = NULL; size_t output1_buffer_size = 0; size_t output1_length = 0; @@ -650,81 +630,81 @@ void cipher_encrypt_validation( int alg_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE( key_type, alg, input->len ); - output2_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE( key_type, alg, input->len ) + - PSA_CIPHER_FINISH_OUTPUT_SIZE( key_type, alg ); - ASSERT_ALLOC( output1, output1_buffer_size ); - ASSERT_ALLOC( output2, output2_buffer_size ); + output1_buffer_size = PSA_CIPHER_ENCRYPT_OUTPUT_SIZE(key_type, alg, input->len); + output2_buffer_size = PSA_CIPHER_UPDATE_OUTPUT_SIZE(key_type, alg, input->len) + + PSA_CIPHER_FINISH_OUTPUT_SIZE(key_type, alg); + ASSERT_ALLOC(output1, output1_buffer_size); + ASSERT_ALLOC(output2, output2_buffer_size); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_encrypt( key, alg, input->x, input->len, output1, - output1_buffer_size, &output1_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + PSA_ASSERT(psa_cipher_encrypt(key, alg, input->x, input->len, output1, + output1_buffer_size, &output1_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - PSA_ASSERT( psa_cipher_set_iv( &operation, output1, iv_size ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + PSA_ASSERT(psa_cipher_set_iv(&operation, output1, iv_size)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - PSA_ASSERT( psa_cipher_update( &operation, - input->x, input->len, - output2, output2_buffer_size, - &function_output_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + PSA_ASSERT(psa_cipher_update(&operation, + input->x, input->len, + output2, output2_buffer_size, + &function_output_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; output2_length += function_output_length; - PSA_ASSERT( psa_cipher_finish( &operation, - output2 + output2_length, - output2_buffer_size - output2_length, - &function_output_length ) ); + PSA_ASSERT(psa_cipher_finish(&operation, + output2 + output2_length, + output2_buffer_size - output2_length, + &function_output_length)); /* Finish will have called abort as well, so expecting two hits here */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 2 ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 2); mbedtls_test_driver_cipher_hooks.hits = 0; output2_length += function_output_length; - PSA_ASSERT( psa_cipher_abort( &operation ) ); + PSA_ASSERT(psa_cipher_abort(&operation)); // driver function should've been called as part of the finish() core routine - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - ASSERT_COMPARE( output1 + iv_size, output1_length - iv_size, - output2, output2_length ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + ASSERT_COMPARE(output1 + iv_size, output1_length - iv_size, + output2, output2_length); exit: - psa_cipher_abort( &operation ); - mbedtls_free( output1 ); - mbedtls_free( output2 ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output1); + mbedtls_free(output2); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_encrypt_multipart( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *iv, - data_t *input, - int first_part_size_arg, - int output1_length_arg, - int output2_length_arg, - data_t *expected_output, - int mock_output_arg, - int force_status_arg, - int expected_status_arg ) +void cipher_encrypt_multipart(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *iv, + data_t *input, + int first_part_size_arg, + int output1_length_arg, + int output2_length_arg, + data_t *expected_output, + int mock_output_arg, + int force_status_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -746,247 +726,239 @@ void cipher_encrypt_multipart( int alg_arg, /* Test operation initialization */ mbedtls_psa_cipher_operation_t mbedtls_operation = - MBEDTLS_PSA_CIPHER_OPERATION_INIT; + MBEDTLS_PSA_CIPHER_OPERATION_INIT; mbedtls_transparent_test_driver_cipher_operation_t transparent_operation = - MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; + MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; mbedtls_opaque_test_driver_cipher_operation_t opaque_operation = - MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; + MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; operation.ctx.mbedtls_ctx = mbedtls_operation; operation.ctx.transparent_test_driver_ctx = transparent_operation; operation.ctx.opaque_test_driver_ctx = opaque_operation; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_cipher_encrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + PSA_ASSERT(psa_cipher_encrypt_setup(&operation, key, alg)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 1 : 0 ) ); + PSA_ASSERT(psa_cipher_set_iv(&operation, iv->x, iv->len)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 1 : 0)); mbedtls_test_driver_cipher_hooks.hits = 0; - output_buffer_size = ( (size_t) input->len + - PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ) ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = ((size_t) input->len + + PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type)); + ASSERT_ALLOC(output, output_buffer_size); - if( mock_output_arg ) - { + if (mock_output_arg) { mbedtls_test_driver_cipher_hooks.forced_output = expected_output->x; mbedtls_test_driver_cipher_hooks.forced_output_length = expected_output->len; } - TEST_ASSERT( first_part_size <= input->len ); - PSA_ASSERT( psa_cipher_update( &operation, input->x, first_part_size, - output, output_buffer_size, - &function_output_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 1 : 0 ) ); + TEST_ASSERT(first_part_size <= input->len); + PSA_ASSERT(psa_cipher_update(&operation, input->x, first_part_size, + output, output_buffer_size, + &function_output_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 1 : 0)); mbedtls_test_driver_cipher_hooks.hits = 0; - TEST_ASSERT( function_output_length == output1_length ); + TEST_ASSERT(function_output_length == output1_length); total_output_length += function_output_length; - if( first_part_size < input->len ) - { - PSA_ASSERT( psa_cipher_update( &operation, - input->x + first_part_size, - input->len - first_part_size, - output + total_output_length, - output_buffer_size - total_output_length, - &function_output_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + if (first_part_size < input->len) { + PSA_ASSERT(psa_cipher_update(&operation, + input->x + first_part_size, + input->len - first_part_size, + output + total_output_length, + output_buffer_size - total_output_length, + &function_output_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - TEST_ASSERT( function_output_length == output2_length ); + TEST_ASSERT(function_output_length == output2_length); total_output_length += function_output_length; } - if( mock_output_arg ) - { + if (mock_output_arg) { mbedtls_test_driver_cipher_hooks.forced_output = NULL; mbedtls_test_driver_cipher_hooks.forced_output_length = 0; } - status = psa_cipher_finish( &operation, - output + total_output_length, - output_buffer_size - total_output_length, - &function_output_length ); - /* Finish will have called abort as well, so expecting two hits here */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 2 : 0 ) ); - mbedtls_test_driver_cipher_hooks.hits = 0 ; - total_output_length += function_output_length; - TEST_EQUAL( status, expected_status ); - - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_cipher_abort( &operation ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, total_output_length ); - } - -exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void cipher_decrypt_multipart( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *iv, - data_t *input, - int first_part_size_arg, - int output1_length_arg, - int output2_length_arg, - data_t *expected_output, - int mock_output_arg, - int force_status_arg, - int expected_status_arg ) -{ - mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; - psa_key_type_t key_type = key_type_arg; - psa_algorithm_t alg = alg_arg; - psa_status_t status; - psa_status_t expected_status = expected_status_arg; - psa_status_t force_status = force_status_arg; - size_t first_part_size = first_part_size_arg; - size_t output1_length = output1_length_arg; - size_t output2_length = output2_length_arg; - unsigned char *output = NULL; - size_t output_buffer_size = 0; - size_t function_output_length = 0; - size_t total_output_length = 0; - psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; - psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); - mbedtls_test_driver_cipher_hooks.forced_status = force_status; - - /* Test operation initialization */ - mbedtls_psa_cipher_operation_t mbedtls_operation = - MBEDTLS_PSA_CIPHER_OPERATION_INIT; - - mbedtls_transparent_test_driver_cipher_operation_t transparent_operation = - MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; - - mbedtls_opaque_test_driver_cipher_operation_t opaque_operation = - MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; - - operation.ctx.mbedtls_ctx = mbedtls_operation; - operation.ctx.transparent_test_driver_ctx = transparent_operation; - operation.ctx.opaque_test_driver_ctx = opaque_operation; - - PSA_ASSERT( psa_crypto_init( ) ); - - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); - - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - - PSA_ASSERT( psa_cipher_decrypt_setup( &operation, key, alg ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - mbedtls_test_driver_cipher_hooks.hits = 0; - - PSA_ASSERT( psa_cipher_set_iv( &operation, iv->x, iv->len ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 1 : 0 ) ); - mbedtls_test_driver_cipher_hooks.hits = 0; - - output_buffer_size = ( (size_t) input->len + - PSA_BLOCK_CIPHER_BLOCK_LENGTH( key_type ) ); - ASSERT_ALLOC( output, output_buffer_size ); - - if( mock_output_arg ) - { - mbedtls_test_driver_cipher_hooks.forced_output = expected_output->x; - mbedtls_test_driver_cipher_hooks.forced_output_length = expected_output->len; - } - - TEST_ASSERT( first_part_size <= input->len ); - PSA_ASSERT( psa_cipher_update( &operation, - input->x, first_part_size, - output, output_buffer_size, - &function_output_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 1 : 0 ) ); - mbedtls_test_driver_cipher_hooks.hits = 0; - - TEST_ASSERT( function_output_length == output1_length ); - total_output_length += function_output_length; - - if( first_part_size < input->len ) - { - PSA_ASSERT( psa_cipher_update( &operation, - input->x + first_part_size, - input->len - first_part_size, - output + total_output_length, - output_buffer_size - total_output_length, - &function_output_length ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 1 : 0 ) ); - mbedtls_test_driver_cipher_hooks.hits = 0; - - TEST_ASSERT( function_output_length == output2_length ); - total_output_length += function_output_length; - } - - if( mock_output_arg ) - { - mbedtls_test_driver_cipher_hooks.forced_output = NULL; - mbedtls_test_driver_cipher_hooks.forced_output_length = 0; - } - - status = psa_cipher_finish( &operation, + status = psa_cipher_finish(&operation, output + total_output_length, output_buffer_size - total_output_length, - &function_output_length ); + &function_output_length); /* Finish will have called abort as well, so expecting two hits here */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, ( force_status == PSA_SUCCESS ? 2 : 0 ) ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 2 : 0)); mbedtls_test_driver_cipher_hooks.hits = 0; total_output_length += function_output_length; - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_cipher_abort( &operation ) ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_cipher_abort(&operation)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, total_output_length ); + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, total_output_length); } exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_decrypt( int alg_arg, - int key_type_arg, - data_t *key_data, - data_t *iv, - data_t *input_arg, - data_t *expected_output, - int mock_output_arg, - int force_status_arg, - int expected_status_arg ) +void cipher_decrypt_multipart(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *iv, + data_t *input, + int first_part_size_arg, + int output1_length_arg, + int output2_length_arg, + data_t *expected_output, + int mock_output_arg, + int force_status_arg, + int expected_status_arg) +{ + mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; + psa_key_type_t key_type = key_type_arg; + psa_algorithm_t alg = alg_arg; + psa_status_t status; + psa_status_t expected_status = expected_status_arg; + psa_status_t force_status = force_status_arg; + size_t first_part_size = first_part_size_arg; + size_t output1_length = output1_length_arg; + size_t output2_length = output2_length_arg; + unsigned char *output = NULL; + size_t output_buffer_size = 0; + size_t function_output_length = 0; + size_t total_output_length = 0; + psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; + psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; + mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); + mbedtls_test_driver_cipher_hooks.forced_status = force_status; + + /* Test operation initialization */ + mbedtls_psa_cipher_operation_t mbedtls_operation = + MBEDTLS_PSA_CIPHER_OPERATION_INIT; + + mbedtls_transparent_test_driver_cipher_operation_t transparent_operation = + MBEDTLS_TRANSPARENT_TEST_DRIVER_CIPHER_OPERATION_INIT; + + mbedtls_opaque_test_driver_cipher_operation_t opaque_operation = + MBEDTLS_OPAQUE_TEST_DRIVER_CIPHER_OPERATION_INIT; + + operation.ctx.mbedtls_ctx = mbedtls_operation; + operation.ctx.transparent_test_driver_ctx = transparent_operation; + operation.ctx.opaque_test_driver_ctx = opaque_operation; + + PSA_ASSERT(psa_crypto_init()); + + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); + + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + + PSA_ASSERT(psa_cipher_decrypt_setup(&operation, key, alg)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + mbedtls_test_driver_cipher_hooks.hits = 0; + + PSA_ASSERT(psa_cipher_set_iv(&operation, iv->x, iv->len)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 1 : 0)); + mbedtls_test_driver_cipher_hooks.hits = 0; + + output_buffer_size = ((size_t) input->len + + PSA_BLOCK_CIPHER_BLOCK_LENGTH(key_type)); + ASSERT_ALLOC(output, output_buffer_size); + + if (mock_output_arg) { + mbedtls_test_driver_cipher_hooks.forced_output = expected_output->x; + mbedtls_test_driver_cipher_hooks.forced_output_length = expected_output->len; + } + + TEST_ASSERT(first_part_size <= input->len); + PSA_ASSERT(psa_cipher_update(&operation, + input->x, first_part_size, + output, output_buffer_size, + &function_output_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 1 : 0)); + mbedtls_test_driver_cipher_hooks.hits = 0; + + TEST_ASSERT(function_output_length == output1_length); + total_output_length += function_output_length; + + if (first_part_size < input->len) { + PSA_ASSERT(psa_cipher_update(&operation, + input->x + first_part_size, + input->len - first_part_size, + output + total_output_length, + output_buffer_size - total_output_length, + &function_output_length)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 1 : 0)); + mbedtls_test_driver_cipher_hooks.hits = 0; + + TEST_ASSERT(function_output_length == output2_length); + total_output_length += function_output_length; + } + + if (mock_output_arg) { + mbedtls_test_driver_cipher_hooks.forced_output = NULL; + mbedtls_test_driver_cipher_hooks.forced_output_length = 0; + } + + status = psa_cipher_finish(&operation, + output + total_output_length, + output_buffer_size - total_output_length, + &function_output_length); + /* Finish will have called abort as well, so expecting two hits here */ + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, (force_status == PSA_SUCCESS ? 2 : 0)); + mbedtls_test_driver_cipher_hooks.hits = 0; + total_output_length += function_output_length; + TEST_EQUAL(status, expected_status); + + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_cipher_abort(&operation)); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, total_output_length); + } + +exit: + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void cipher_decrypt(int alg_arg, + int key_type_arg, + data_t *key_data, + data_t *iv, + data_t *input_arg, + data_t *expected_output, + int mock_output_arg, + int force_status_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_status_t status; @@ -1003,59 +975,56 @@ void cipher_decrypt( int alg_arg, mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); mbedtls_test_driver_cipher_hooks.forced_status = force_status; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); /* Allocate input buffer and copy the iv and the plaintext */ - input_buffer_size = ( (size_t) input_arg->len + (size_t) iv->len ); - if ( input_buffer_size > 0 ) - { - ASSERT_ALLOC( input, input_buffer_size ); - memcpy( input, iv->x, iv->len ); - memcpy( input + iv->len, input_arg->x, input_arg->len ); + input_buffer_size = ((size_t) input_arg->len + (size_t) iv->len); + if (input_buffer_size > 0) { + ASSERT_ALLOC(input, input_buffer_size); + memcpy(input, iv->x, iv->len); + memcpy(input + iv->len, input_arg->x, input_arg->len); } - output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE( key_type, alg, input_buffer_size ); - ASSERT_ALLOC( output, output_buffer_size ); + output_buffer_size = PSA_CIPHER_DECRYPT_OUTPUT_SIZE(key_type, alg, input_buffer_size); + ASSERT_ALLOC(output, output_buffer_size); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - if( mock_output_arg ) - { + if (mock_output_arg) { mbedtls_test_driver_cipher_hooks.forced_output = expected_output->x; mbedtls_test_driver_cipher_hooks.forced_output_length = expected_output->len; } - status = psa_cipher_decrypt( key, alg, input, input_buffer_size, output, - output_buffer_size, &output_length ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); + status = psa_cipher_decrypt(key, alg, input, input_buffer_size, output, + output_buffer_size, &output_length); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); mbedtls_test_driver_cipher_hooks.hits = 0; - TEST_EQUAL( status, expected_status ); + TEST_EQUAL(status, expected_status); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_output->x, expected_output->len, - output, output_length ); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_output->x, expected_output->len, + output, output_length); } exit: - mbedtls_free( input ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(input); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_entry_points( int alg_arg, int key_type_arg, - data_t *key_data, data_t *iv, - data_t *input ) +void cipher_entry_points(int alg_arg, int key_type_arg, + data_t *key_data, data_t *iv, + data_t *input) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_status_t status; @@ -1068,17 +1037,17 @@ void cipher_entry_points( int alg_arg, int key_type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); - ASSERT_ALLOC( output, input->len + 16 ); + ASSERT_ALLOC(output, input->len + 16); output_buffer_size = input->len + 16; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* * Test encrypt failure @@ -1087,195 +1056,195 @@ void cipher_entry_points( int alg_arg, int key_type_arg, */ status = psa_cipher_encrypt( key, alg, input->x, input->len, - output, output_buffer_size, &function_output_length ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, PSA_SUCCESS ); + output, output_buffer_size, &function_output_length); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, PSA_SUCCESS); mbedtls_test_driver_cipher_hooks.hits = 0; mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; /* Set the output buffer in a given state. */ - for( size_t i = 0; i < output_buffer_size; i++ ) + for (size_t i = 0; i < output_buffer_size; i++) { output[i] = 0xa5; + } status = psa_cipher_encrypt( key, alg, input->x, input->len, - output, output_buffer_size, &function_output_length ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, PSA_ERROR_GENERIC_ERROR ); + output, output_buffer_size, &function_output_length); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, PSA_ERROR_GENERIC_ERROR); /* * Check that the output buffer is still in the same state. * This will fail if the output buffer is used by the core to pass the IV * it generated to the driver (and is not restored). */ - for( size_t i = 0; i < output_buffer_size; i++ ) - { - TEST_EQUAL( output[i], 0xa5 ); + for (size_t i = 0; i < output_buffer_size; i++) { + TEST_EQUAL(output[i], 0xa5); } mbedtls_test_driver_cipher_hooks.hits = 0; /* Test setup call, encrypt */ mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; - status = psa_cipher_encrypt_setup( &operation, key, alg ); + status = psa_cipher_encrypt_setup(&operation, key, alg); /* When setup fails, it shouldn't call any further entry points */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); + status = psa_cipher_set_iv(&operation, iv->x, iv->len); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); /* Test setup call failure, decrypt */ - status = psa_cipher_decrypt_setup( &operation, key, alg ); + status = psa_cipher_decrypt_setup(&operation, key, alg); /* When setup fails, it shouldn't call any further entry points */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); + status = psa_cipher_set_iv(&operation, iv->x, iv->len); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); /* Test IV setting failure */ mbedtls_test_driver_cipher_hooks.forced_status = PSA_SUCCESS; - status = psa_cipher_encrypt_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_encrypt_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); + status = psa_cipher_set_iv(&operation, iv->x, iv->len); /* When setting the IV fails, it should call abort too */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 2 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 2); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); /* Failure should prevent further operations from executing on the driver */ mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - psa_cipher_abort( &operation ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + psa_cipher_abort(&operation); /* Test IV generation failure */ mbedtls_test_driver_cipher_hooks.forced_status = PSA_SUCCESS; - status = psa_cipher_encrypt_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_encrypt_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; /* Set the output buffer in a given state. */ - for( size_t i = 0; i < 16; i++ ) + for (size_t i = 0; i < 16; i++) { output[i] = 0xa5; + } - status = psa_cipher_generate_iv( &operation, output, 16, &function_output_length ); + status = psa_cipher_generate_iv(&operation, output, 16, &function_output_length); /* When generating the IV fails, it should call abort too */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 2 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 2); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); /* * Check that the output buffer is still in the same state. * This will fail if the output buffer is used by the core to pass the IV * it generated to the driver (and is not restored). */ - for( size_t i = 0; i < 16; i++ ) - { - TEST_EQUAL( output[i], 0xa5 ); + for (size_t i = 0; i < 16; i++) { + TEST_EQUAL(output[i], 0xa5); } /* Failure should prevent further operations from executing on the driver */ mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - psa_cipher_abort( &operation ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + psa_cipher_abort(&operation); /* Test update failure */ mbedtls_test_driver_cipher_hooks.forced_status = PSA_SUCCESS; - status = psa_cipher_encrypt_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_encrypt_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_set_iv(&operation, iv->x, iv->len); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); /* When the update call fails, it should call abort too */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 2 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 2); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); /* Failure should prevent further operations from executing on the driver */ mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - psa_cipher_abort( &operation ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + psa_cipher_abort(&operation); /* Test finish failure */ mbedtls_test_driver_cipher_hooks.forced_status = PSA_SUCCESS; - status = psa_cipher_encrypt_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_encrypt_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_set_iv( &operation, iv->x, iv->len ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_set_iv(&operation, iv->x, iv->len); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 1 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 1); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); mbedtls_test_driver_cipher_hooks.hits = 0; mbedtls_test_driver_cipher_hooks.forced_status = PSA_ERROR_GENERIC_ERROR; - status = psa_cipher_finish( &operation, - output + function_output_length, - output_buffer_size - function_output_length, - &function_output_length ); + status = psa_cipher_finish(&operation, + output + function_output_length, + output_buffer_size - function_output_length, + &function_output_length); /* When the finish call fails, it should call abort too */ - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 2 ); - TEST_EQUAL( status, mbedtls_test_driver_cipher_hooks.forced_status ); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 2); + TEST_EQUAL(status, mbedtls_test_driver_cipher_hooks.forced_status); /* Failure should prevent further operations from executing on the driver */ mbedtls_test_driver_cipher_hooks.hits = 0; - status = psa_cipher_update( &operation, - input->x, input->len, - output, output_buffer_size, - &function_output_length ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_cipher_hooks.hits, 0 ); - psa_cipher_abort( &operation ); + status = psa_cipher_update(&operation, + input->x, input->len, + output, output_buffer_size, + &function_output_length); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_cipher_hooks.hits, 0); + psa_cipher_abort(&operation); exit: - psa_cipher_abort( &operation ); - mbedtls_free( output ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_cipher_abort(&operation); + mbedtls_free(output); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_cipher_hooks = mbedtls_test_driver_cipher_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_encrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *expected_result, - int forced_status_arg ) +void aead_encrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *expected_result, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1289,62 +1258,61 @@ void aead_encrypt( int key_type_arg, data_t *key_data, psa_status_t status = PSA_ERROR_GENERIC_ERROR; mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len + PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); + output_size = input_data->len + PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); /* For all currently defined algorithms, PSA_AEAD_ENCRYPT_OUTPUT_SIZE * should be exact. */ - TEST_EQUAL( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, alg, input_data->len ) ); - TEST_ASSERT( output_size <= - PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); - ASSERT_ALLOC( output_data, output_size ); + TEST_EQUAL(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_data->len)); + TEST_ASSERT(output_size <= + PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(input_data->len)); + ASSERT_ALLOC(output_data, output_size); mbedtls_test_driver_aead_hooks.forced_status = forced_status; - status = psa_aead_encrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, additional_data->len, - input_data->x, input_data->len, - output_data, output_size, - &output_length ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_encrypt, 1 ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.driver_status, forced_status ); + status = psa_aead_encrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, additional_data->len, + input_data->x, input_data->len, + output_data, output_size, + &output_length); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_encrypt, 1); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.driver_status, forced_status); - TEST_EQUAL( status, ( forced_status == PSA_ERROR_NOT_SUPPORTED ) ? - PSA_SUCCESS : forced_status ); + TEST_EQUAL(status, (forced_status == PSA_ERROR_NOT_SUPPORTED) ? + PSA_SUCCESS : forced_status); - if( status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_result->x, expected_result->len, - output_data, output_length ); + if (status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_result->x, expected_result->len, + output_data, output_length); } exit: - psa_destroy_key( key ); - mbedtls_free( output_data ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output_data); + PSA_DONE(); mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_decrypt( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *expected_data, - int forced_status_arg ) +void aead_decrypt(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *expected_data, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1358,56 +1326,55 @@ void aead_decrypt( int key_type_arg, data_t *key_data, psa_status_t status = PSA_ERROR_GENERIC_ERROR; mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len - PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); - ASSERT_ALLOC( output_data, output_size ); + output_size = input_data->len - PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); + ASSERT_ALLOC(output_data, output_size); mbedtls_test_driver_aead_hooks.forced_status = forced_status; - status = psa_aead_decrypt( key, alg, - nonce->x, nonce->len, - additional_data->x, - additional_data->len, - input_data->x, input_data->len, - output_data, output_size, - &output_length ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_decrypt, 1 ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.driver_status, forced_status ); + status = psa_aead_decrypt(key, alg, + nonce->x, nonce->len, + additional_data->x, + additional_data->len, + input_data->x, input_data->len, + output_data, output_size, + &output_length); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_decrypt, 1); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.driver_status, forced_status); - TEST_EQUAL( status, ( forced_status == PSA_ERROR_NOT_SUPPORTED ) ? - PSA_SUCCESS : forced_status ); + TEST_EQUAL(status, (forced_status == PSA_ERROR_NOT_SUPPORTED) ? + PSA_SUCCESS : forced_status); - if( status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_data->x, expected_data->len, - output_data, output_length ); + if (status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_data->x, expected_data->len, + output_data, output_length); } exit: - psa_destroy_key( key ); - mbedtls_free( output_data ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output_data); + PSA_DONE(); mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_sign( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac, - int forced_status_arg ) +void mac_sign(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1416,74 +1383,72 @@ void mac_sign( int key_type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *actual_mac = NULL; size_t mac_buffer_size = - PSA_MAC_LENGTH( key_type, PSA_BYTES_TO_BITS( key_data->len ), alg ); + PSA_MAC_LENGTH(key_type, PSA_BYTES_TO_BITS(key_data->len), alg); size_t mac_length = 0; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t forced_status = forced_status_arg; mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); - TEST_ASSERT( mac_buffer_size <= PSA_MAC_MAX_SIZE ); + TEST_ASSERT(mac_buffer_size <= PSA_MAC_MAX_SIZE); /* We expect PSA_MAC_LENGTH to be exact. */ - TEST_ASSERT( expected_mac->len == mac_buffer_size ); + TEST_ASSERT(expected_mac->len == mac_buffer_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - ASSERT_ALLOC( actual_mac, mac_buffer_size ); + ASSERT_ALLOC(actual_mac, mac_buffer_size); mbedtls_test_driver_mac_hooks.forced_status = forced_status; /* * Calculate the MAC, one-shot case. */ - status = psa_mac_compute( key, alg, - input->x, input->len, - actual_mac, mac_buffer_size, - &mac_length ); + status = psa_mac_compute(key, alg, + input->x, input->len, + actual_mac, mac_buffer_size, + &mac_length); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); - } - else - TEST_EQUAL( forced_status, status ); - - PSA_ASSERT( psa_mac_abort( &operation ) ); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - - if( forced_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_mac->x, expected_mac->len, - actual_mac, mac_length ); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(forced_status, status); } - mbedtls_free( actual_mac ); + PSA_ASSERT(psa_mac_abort(&operation)); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + + if (forced_status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_mac->x, expected_mac->len, + actual_mac, mac_length); + } + + mbedtls_free(actual_mac); actual_mac = NULL; exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( actual_mac ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(actual_mac); mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_sign_multipart( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac, - int fragments_count, - int forced_status_arg ) +void mac_sign_multipart(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac, + int fragments_count, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1492,117 +1457,115 @@ void mac_sign_multipart( int key_type_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t *actual_mac = NULL; size_t mac_buffer_size = - PSA_MAC_LENGTH( key_type, PSA_BYTES_TO_BITS( key_data->len ), alg ); + PSA_MAC_LENGTH(key_type, PSA_BYTES_TO_BITS(key_data->len), alg); size_t mac_length = 0; psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_status_t forced_status = forced_status_arg; uint8_t *input_x = input->x; mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); - TEST_ASSERT( mac_buffer_size <= PSA_MAC_MAX_SIZE ); + TEST_ASSERT(mac_buffer_size <= PSA_MAC_MAX_SIZE); /* We expect PSA_MAC_LENGTH to be exact. */ - TEST_ASSERT( expected_mac->len == mac_buffer_size ); + TEST_ASSERT(expected_mac->len == mac_buffer_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - ASSERT_ALLOC( actual_mac, mac_buffer_size ); + ASSERT_ALLOC(actual_mac, mac_buffer_size); mbedtls_test_driver_mac_hooks.forced_status = forced_status; /* * Calculate the MAC, multipart case. */ - status = psa_mac_sign_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); + status = psa_mac_sign_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); - } - else - TEST_EQUAL( forced_status, status ); - - if ( fragments_count ) - { - TEST_ASSERT( ( input->len / fragments_count ) > 0 ); + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(forced_status, status); } - for ( int i = 0; i < fragments_count; i++) - { + if (fragments_count) { + TEST_ASSERT((input->len / fragments_count) > 0); + } + + for (int i = 0; i < fragments_count; i++) { int fragment_size = input->len / fragments_count; - if ( i == fragments_count - 1 ) - fragment_size += ( input->len % fragments_count ); - - status = psa_mac_update( &operation, - input_x, fragment_size ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 2 + i ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); + if (i == fragments_count - 1) { + fragment_size += (input->len % fragments_count); + } + + status = psa_mac_update(&operation, + input_x, fragment_size); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 2 + i); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + } + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(PSA_ERROR_BAD_STATE, status); } - else - TEST_EQUAL( PSA_ERROR_BAD_STATE, status ); input_x += fragment_size; } - status = psa_mac_sign_finish( &operation, - actual_mac, mac_buffer_size, - &mac_length ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); - } - else - TEST_EQUAL( PSA_ERROR_BAD_STATE, status ); - - PSA_ASSERT( psa_mac_abort( &operation ) ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - - if( forced_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( expected_mac->x, expected_mac->len, - actual_mac, mac_length ); + status = psa_mac_sign_finish(&operation, + actual_mac, mac_buffer_size, + &mac_length); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); } - mbedtls_free( actual_mac ); + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(PSA_ERROR_BAD_STATE, status); + } + + PSA_ASSERT(psa_mac_abort(&operation)); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + } + + if (forced_status == PSA_SUCCESS) { + ASSERT_COMPARE(expected_mac->x, expected_mac->len, + actual_mac, mac_length); + } + + mbedtls_free(actual_mac); actual_mac = NULL; exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( actual_mac ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(actual_mac); mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_verify( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac, - int forced_status_arg ) +void mac_verify(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1613,52 +1576,51 @@ void mac_verify( int key_type_arg, psa_status_t forced_status = forced_status_arg; mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); - TEST_ASSERT( expected_mac->len <= PSA_MAC_MAX_SIZE ); + TEST_ASSERT(expected_mac->len <= PSA_MAC_MAX_SIZE); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); mbedtls_test_driver_mac_hooks.forced_status = forced_status; /* * Verify the MAC, one-shot case. */ - status = psa_mac_verify( key, alg, - input->x, input->len, - expected_mac->x, expected_mac->len ); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); + status = psa_mac_verify(key, alg, + input->x, input->len, + expected_mac->x, expected_mac->len); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(forced_status, status); } - else - TEST_EQUAL( forced_status, status ); - PSA_ASSERT( psa_mac_abort( &operation ) ); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); + PSA_ASSERT(psa_mac_abort(&operation)); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_verify_multipart( int key_type_arg, - data_t *key_data, - int alg_arg, - data_t *input, - data_t *expected_mac, - int fragments_count, - int forced_status_arg ) +void mac_verify_multipart(int key_type_arg, + data_t *key_data, + int alg_arg, + data_t *input, + data_t *expected_mac, + int fragments_count, + int forced_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -1670,99 +1632,98 @@ void mac_verify_multipart( int key_type_arg, uint8_t *input_x = input->x; mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); - TEST_ASSERT( expected_mac->len <= PSA_MAC_MAX_SIZE ); + TEST_ASSERT(expected_mac->len <= PSA_MAC_MAX_SIZE); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); mbedtls_test_driver_mac_hooks.forced_status = forced_status; /* * Verify the MAC, multi-part case. */ - status = psa_mac_verify_setup( &operation, key, alg ); - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); + status = psa_mac_verify_setup(&operation, key, alg); + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); - } - else - TEST_EQUAL( forced_status, status ); - - if ( fragments_count ) - { - TEST_ASSERT( ( input->len / fragments_count ) > 0 ); + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(forced_status, status); } - for ( int i = 0; i < fragments_count; i++) - { + if (fragments_count) { + TEST_ASSERT((input->len / fragments_count) > 0); + } + + for (int i = 0; i < fragments_count; i++) { int fragment_size = input->len / fragments_count; - if ( i == fragments_count - 1 ) - fragment_size += ( input->len % fragments_count ); - - status = psa_mac_update( &operation, - input_x, fragment_size ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 2 + i ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); + if (i == fragments_count - 1) { + fragment_size += (input->len % fragments_count); + } + + status = psa_mac_update(&operation, + input_x, fragment_size); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 2 + i); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + } + + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(PSA_ERROR_BAD_STATE, status); } - else - TEST_EQUAL( PSA_ERROR_BAD_STATE, status ); input_x += fragment_size; } - status = psa_mac_verify_finish( &operation, - expected_mac->x, - expected_mac->len ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); - - if( forced_status == PSA_SUCCESS || - forced_status == PSA_ERROR_NOT_SUPPORTED ) - { - PSA_ASSERT( status ); + status = psa_mac_verify_finish(&operation, + expected_mac->x, + expected_mac->len); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + } + + if (forced_status == PSA_SUCCESS || + forced_status == PSA_ERROR_NOT_SUPPORTED) { + PSA_ASSERT(status); + } else { + TEST_EQUAL(PSA_ERROR_BAD_STATE, status); } - else - TEST_EQUAL( PSA_ERROR_BAD_STATE, status ); - PSA_ASSERT( psa_mac_abort( &operation ) ); - if( forced_status == PSA_SUCCESS ) - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count ); - else - TEST_EQUAL( mbedtls_test_driver_mac_hooks.hits, 1 ); + PSA_ASSERT(psa_mac_abort(&operation)); + if (forced_status == PSA_SUCCESS) { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 3 + fragments_count); + } else { + TEST_EQUAL(mbedtls_test_driver_mac_hooks.hits, 1); + } exit: - psa_mac_abort( &operation ); - psa_destroy_key( key ); - PSA_DONE( ); + psa_mac_abort(&operation); + psa_destroy_key(key); + PSA_DONE(); mbedtls_test_driver_mac_hooks = mbedtls_test_driver_mac_hooks_init(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_CRYPTO_DRIVER_TEST:MBEDTLS_PSA_CRYPTO_DRIVERS:MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ -void builtin_key_export( int builtin_key_id_arg, - int builtin_key_type_arg, - int builtin_key_bits_arg, - int builtin_key_algorithm_arg, - data_t *expected_output, - int expected_status_arg ) +void builtin_key_export(int builtin_key_id_arg, + int builtin_key_type_arg, + int builtin_key_bits_arg, + int builtin_key_algorithm_arg, + data_t *expected_output, + int expected_status_arg) { psa_key_id_t builtin_key_id = (psa_key_id_t) builtin_key_id_arg; psa_key_type_t builtin_key_type = (psa_key_type_t) builtin_key_type_arg; @@ -1771,51 +1732,49 @@ void builtin_key_export( int builtin_key_id_arg, psa_status_t expected_status = expected_status_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make( 0, builtin_key_id ); - uint8_t* output_buffer = NULL; + mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make(0, builtin_key_id); + uint8_t *output_buffer = NULL; size_t output_size = 0; psa_status_t actual_status; - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_ALLOC( output_buffer, expected_output->len ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_ALLOC(output_buffer, expected_output->len); - actual_status = psa_export_key( key, output_buffer, expected_output->len, &output_size ); + actual_status = psa_export_key(key, output_buffer, expected_output->len, &output_size); - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( actual_status ); - TEST_EQUAL( output_size, expected_output->len ); - ASSERT_COMPARE( output_buffer, output_size, - expected_output->x, expected_output->len ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(actual_status); + TEST_EQUAL(output_size, expected_output->len); + ASSERT_COMPARE(output_buffer, output_size, + expected_output->x, expected_output->len); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_bits( &attributes ), builtin_key_bits ); - TEST_EQUAL( psa_get_key_type( &attributes ), builtin_key_type ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), builtin_key_alg ); - } - else - { - if( actual_status != expected_status ) - fprintf( stderr, "Expected %d but got %d\n", expected_status, actual_status ); - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( output_size, 0 ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_bits(&attributes), builtin_key_bits); + TEST_EQUAL(psa_get_key_type(&attributes), builtin_key_type); + TEST_EQUAL(psa_get_key_algorithm(&attributes), builtin_key_alg); + } else { + if (actual_status != expected_status) { + fprintf(stderr, "Expected %d but got %d\n", expected_status, actual_status); + } + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(output_size, 0); } exit: - mbedtls_free( output_buffer ); - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(output_buffer); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_CRYPTO_DRIVER_TEST:MBEDTLS_PSA_CRYPTO_DRIVERS:MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */ -void builtin_pubkey_export( int builtin_key_id_arg, - int builtin_key_type_arg, - int builtin_key_bits_arg, - int builtin_key_algorithm_arg, - data_t *expected_output, - int expected_status_arg ) +void builtin_pubkey_export(int builtin_key_id_arg, + int builtin_key_type_arg, + int builtin_key_bits_arg, + int builtin_key_algorithm_arg, + data_t *expected_output, + int expected_status_arg) { psa_key_id_t builtin_key_id = (psa_key_id_t) builtin_key_id_arg; psa_key_type_t builtin_key_type = (psa_key_type_t) builtin_key_type_arg; @@ -1824,47 +1783,44 @@ void builtin_pubkey_export( int builtin_key_id_arg, psa_status_t expected_status = expected_status_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make( 0, builtin_key_id ); - uint8_t* output_buffer = NULL; + mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make(0, builtin_key_id); + uint8_t *output_buffer = NULL; size_t output_size = 0; psa_status_t actual_status; - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_ALLOC( output_buffer, expected_output->len ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_ALLOC(output_buffer, expected_output->len); - actual_status = psa_export_public_key( key, output_buffer, expected_output->len, &output_size ); + actual_status = psa_export_public_key(key, output_buffer, expected_output->len, &output_size); - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( actual_status ); - TEST_EQUAL( output_size, expected_output->len ); - ASSERT_COMPARE( output_buffer, output_size, - expected_output->x, expected_output->len ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(actual_status); + TEST_EQUAL(output_size, expected_output->len); + ASSERT_COMPARE(output_buffer, output_size, + expected_output->x, expected_output->len); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_bits( &attributes ), builtin_key_bits ); - TEST_EQUAL( psa_get_key_type( &attributes ), builtin_key_type ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), builtin_key_alg ); - } - else - { - TEST_EQUAL( actual_status, expected_status ); - TEST_EQUAL( output_size, 0 ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_bits(&attributes), builtin_key_bits); + TEST_EQUAL(psa_get_key_type(&attributes), builtin_key_type); + TEST_EQUAL(psa_get_key_algorithm(&attributes), builtin_key_alg); + } else { + TEST_EQUAL(actual_status, expected_status); + TEST_EQUAL(output_size, 0); } exit: - mbedtls_free( output_buffer ); - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key ); - PSA_DONE( ); + mbedtls_free(output_buffer); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_compute( int alg_arg, - data_t *input, data_t *hash, - int forced_status_arg, - int expected_status_arg ) +void hash_compute(int alg_arg, + data_t *input, data_t *hash, + int forced_status_arg, + int expected_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t forced_status = forced_status_arg; @@ -1875,79 +1831,77 @@ void hash_compute( int alg_arg, mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); mbedtls_test_driver_hash_hooks.forced_status = forced_status; - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_ALLOC( output, PSA_HASH_LENGTH( alg ) ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_ALLOC(output, PSA_HASH_LENGTH(alg)); - TEST_EQUAL( psa_hash_compute( alg, input->x, input->len, - output, PSA_HASH_LENGTH( alg ), - &output_length ), expected_status ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); + TEST_EQUAL(psa_hash_compute(alg, input->x, input->len, + output, PSA_HASH_LENGTH(alg), + &output_length), expected_status); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); - if( expected_status == PSA_SUCCESS ) - { - ASSERT_COMPARE( output, output_length, hash->x, hash->len ); + if (expected_status == PSA_SUCCESS) { + ASSERT_COMPARE(output, output_length, hash->x, hash->len); } exit: - mbedtls_free( output ); - PSA_DONE( ); + mbedtls_free(output); + PSA_DONE(); mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_multipart_setup( int alg_arg, +void hash_multipart_setup(int alg_arg, + data_t *input, data_t *hash, + int forced_status_arg, + int expected_status_arg) +{ + psa_algorithm_t alg = alg_arg; + psa_status_t forced_status = forced_status_arg; + psa_status_t expected_status = expected_status_arg; + unsigned char *output = NULL; + psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; + size_t output_length; + + mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); + ASSERT_ALLOC(output, PSA_HASH_LENGTH(alg)); + + PSA_ASSERT(psa_crypto_init()); + + mbedtls_test_driver_hash_hooks.forced_status = forced_status; + TEST_EQUAL(psa_hash_setup(&operation, alg), expected_status); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); + + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, + forced_status == PSA_ERROR_NOT_SUPPORTED ? 1 : 2); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); + + PSA_ASSERT(psa_hash_finish(&operation, + output, PSA_HASH_LENGTH(alg), + &output_length)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, + forced_status == PSA_ERROR_NOT_SUPPORTED ? 1 : 4); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); + + ASSERT_COMPARE(output, output_length, hash->x, hash->len); + } + +exit: + psa_hash_abort(&operation); + mbedtls_free(output); + PSA_DONE(); + mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void hash_multipart_update(int alg_arg, data_t *input, data_t *hash, - int forced_status_arg, - int expected_status_arg ) -{ - psa_algorithm_t alg = alg_arg; - psa_status_t forced_status = forced_status_arg; - psa_status_t expected_status = expected_status_arg; - unsigned char *output = NULL; - psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - size_t output_length; - - mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - ASSERT_ALLOC( output, PSA_HASH_LENGTH( alg ) ); - - PSA_ASSERT( psa_crypto_init( ) ); - - mbedtls_test_driver_hash_hooks.forced_status = forced_status; - TEST_EQUAL( psa_hash_setup( &operation, alg ), expected_status ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); - - if( expected_status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, - forced_status == PSA_ERROR_NOT_SUPPORTED ? 1 : 2 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); - - PSA_ASSERT( psa_hash_finish( &operation, - output, PSA_HASH_LENGTH( alg ), - &output_length ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, - forced_status == PSA_ERROR_NOT_SUPPORTED ? 1 : 4 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); - - ASSERT_COMPARE( output, output_length, hash->x, hash->len ); - } - -exit: - psa_hash_abort( &operation ); - mbedtls_free( output ); - PSA_DONE( ); - mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void hash_multipart_update( int alg_arg, - data_t *input, data_t *hash, - int forced_status_arg ) + int forced_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t forced_status = forced_status_arg; @@ -1956,54 +1910,53 @@ void hash_multipart_update( int alg_arg, size_t output_length; mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - ASSERT_ALLOC( output, PSA_HASH_LENGTH( alg ) ); + ASSERT_ALLOC(output, PSA_HASH_LENGTH(alg)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* * Update inactive operation, the driver shouldn't be called. */ - TEST_EQUAL( psa_hash_update( &operation, input->x, input->len ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 0 ); + TEST_EQUAL(psa_hash_update(&operation, input->x, input->len), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 0); - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); mbedtls_test_driver_hash_hooks.forced_status = forced_status; - TEST_EQUAL( psa_hash_update( &operation, input->x, input->len ), - forced_status ); + TEST_EQUAL(psa_hash_update(&operation, input->x, input->len), + forced_status); /* One or two more calls to the driver interface: update or update + abort */ - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, - forced_status == PSA_SUCCESS ? 2 : 3 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, + forced_status == PSA_SUCCESS ? 2 : 3); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); - if( forced_status == PSA_SUCCESS ) - { + if (forced_status == PSA_SUCCESS) { mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - PSA_ASSERT( psa_hash_finish( &operation, - output, PSA_HASH_LENGTH( alg ), - &output_length ) ); + PSA_ASSERT(psa_hash_finish(&operation, + output, PSA_HASH_LENGTH(alg), + &output_length)); /* Two calls to the driver interface: update + abort */ - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 2 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 2); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); - ASSERT_COMPARE( output, output_length, hash->x, hash->len ); + ASSERT_COMPARE(output, output_length, hash->x, hash->len); } exit: - psa_hash_abort( &operation ); - mbedtls_free( output ); - PSA_DONE( ); + psa_hash_abort(&operation); + mbedtls_free(output); + PSA_DONE(); mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_multipart_finish( int alg_arg, - data_t *input, data_t *hash, - int forced_status_arg ) +void hash_multipart_finish(int alg_arg, + data_t *input, data_t *hash, + int forced_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t forced_status = forced_status_arg; @@ -2012,50 +1965,51 @@ void hash_multipart_finish( int alg_arg, size_t output_length; mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - ASSERT_ALLOC( output, PSA_HASH_LENGTH( alg ) ); + ASSERT_ALLOC(output, PSA_HASH_LENGTH(alg)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* * Finish inactive operation, the driver shouldn't be called. */ - TEST_EQUAL( psa_hash_finish( &operation, output, PSA_HASH_LENGTH( alg ), - &output_length ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 0 ); + TEST_EQUAL(psa_hash_finish(&operation, output, PSA_HASH_LENGTH(alg), + &output_length), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 0); - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); - PSA_ASSERT( psa_hash_update( &operation, input->x, input->len ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 2 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_update(&operation, input->x, input->len)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 2); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); mbedtls_test_driver_hash_hooks.forced_status = forced_status; - TEST_EQUAL( psa_hash_finish( &operation, - output, PSA_HASH_LENGTH( alg ), - &output_length ), - forced_status ); + TEST_EQUAL(psa_hash_finish(&operation, + output, PSA_HASH_LENGTH(alg), + &output_length), + forced_status); /* Two more calls to the driver interface: finish + abort */ - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 4 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 4); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); - if( forced_status == PSA_SUCCESS ) - ASSERT_COMPARE( output, output_length, hash->x, hash->len ); + if (forced_status == PSA_SUCCESS) { + ASSERT_COMPARE(output, output_length, hash->x, hash->len); + } exit: - psa_hash_abort( &operation ); - mbedtls_free( output ); - PSA_DONE( ); + psa_hash_abort(&operation); + mbedtls_free(output); + PSA_DONE(); mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_clone( int alg_arg, - data_t *input, data_t *hash, - int forced_status_arg ) +void hash_clone(int alg_arg, + data_t *input, data_t *hash, + int forced_status_arg) { psa_algorithm_t alg = alg_arg; psa_status_t forced_status = forced_status_arg; @@ -2065,65 +2019,64 @@ void hash_clone( int alg_arg, size_t output_length; mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - ASSERT_ALLOC( output, PSA_HASH_LENGTH( alg ) ); + ASSERT_ALLOC(output, PSA_HASH_LENGTH(alg)); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* * Clone inactive operation, the driver shouldn't be called. */ - TEST_EQUAL( psa_hash_clone( &source_operation, &target_operation ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 0 ); + TEST_EQUAL(psa_hash_clone(&source_operation, &target_operation), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 0); - PSA_ASSERT( psa_hash_setup( &source_operation, alg ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_setup(&source_operation, alg)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); mbedtls_test_driver_hash_hooks.forced_status = forced_status; - TEST_EQUAL( psa_hash_clone( &source_operation, &target_operation ), - forced_status ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, - forced_status == PSA_SUCCESS ? 2 : 3 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, forced_status ); + TEST_EQUAL(psa_hash_clone(&source_operation, &target_operation), + forced_status); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, + forced_status == PSA_SUCCESS ? 2 : 3); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, forced_status); - if( forced_status == PSA_SUCCESS ) - { + if (forced_status == PSA_SUCCESS) { mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); - PSA_ASSERT( psa_hash_update( &target_operation, - input->x, input->len ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 1 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_update(&target_operation, + input->x, input->len)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 1); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); - PSA_ASSERT( psa_hash_finish( &target_operation, - output, PSA_HASH_LENGTH( alg ), - &output_length ) ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.hits, 3 ); - TEST_EQUAL( mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS ); + PSA_ASSERT(psa_hash_finish(&target_operation, + output, PSA_HASH_LENGTH(alg), + &output_length)); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.hits, 3); + TEST_EQUAL(mbedtls_test_driver_hash_hooks.driver_status, PSA_SUCCESS); - ASSERT_COMPARE( output, output_length, hash->x, hash->len ); + ASSERT_COMPARE(output, output_length, hash->x, hash->len); } exit: - psa_hash_abort( &source_operation ); - psa_hash_abort( &target_operation ); - mbedtls_free( output ); - PSA_DONE( ); + psa_hash_abort(&source_operation); + psa_hash_abort(&target_operation); + mbedtls_free(output); + PSA_DONE(); mbedtls_test_driver_hash_hooks = mbedtls_test_driver_hash_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encrypt_decrypt( int alg_arg, - data_t *key_data, - data_t *input_data, - data_t *label, - data_t *fake_output_encrypt, - data_t *fake_output_decrypt, - int forced_status_encrypt_arg, - int forced_status_decrypt_arg, - int expected_status_encrypt_arg, - int expected_status_decrypt_arg ) +void asymmetric_encrypt_decrypt(int alg_arg, + data_t *key_data, + data_t *input_data, + data_t *label, + data_t *fake_output_encrypt, + data_t *fake_output_decrypt, + int forced_status_encrypt_arg, + int forced_status_decrypt_arg, + int expected_status_encrypt_arg, + int expected_status_decrypt_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = PSA_KEY_TYPE_RSA_KEY_PAIR; @@ -2141,91 +2094,83 @@ void asymmetric_encrypt_decrypt( int alg_arg, psa_status_t expected_status_decrypt = expected_status_decrypt_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); mbedtls_test_driver_asymmetric_encryption_hooks = mbedtls_test_driver_asymmetric_encryption_hooks_init(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); /* Determine the maximum ciphertext length */ - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); mbedtls_test_driver_asymmetric_encryption_hooks.forced_status = forced_status_encrypt; - if ( fake_output_encrypt->len > 0 ) - { + if (fake_output_encrypt->len > 0) { mbedtls_test_driver_asymmetric_encryption_hooks.forced_output = fake_output_encrypt->x; mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length = fake_output_encrypt->len; output_size = fake_output_encrypt->len; - ASSERT_ALLOC( output, output_size ); - } - else - { - output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, alg ); - TEST_ASSERT( output_size <= PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); + } else { + output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg); + TEST_ASSERT(output_size <= PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output, output_size); } /* We test encryption by checking that encrypt-then-decrypt gives back * the original plaintext because of the non-optional random * part of encryption process which prevents using fixed vectors. */ - TEST_EQUAL( psa_asymmetric_encrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ), expected_status_encrypt ); + TEST_EQUAL(psa_asymmetric_encrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length), expected_status_encrypt); /* We don't know what ciphertext length to expect, but check that * it looks sensible. */ - TEST_ASSERT( output_length <= output_size ); + TEST_ASSERT(output_length <= output_size); - if ( expected_status_encrypt == PSA_SUCCESS ) - { - if ( fake_output_encrypt->len > 0 ) - ASSERT_COMPARE( fake_output_encrypt->x, fake_output_encrypt->len, - output, output_length ); - else - { + if (expected_status_encrypt == PSA_SUCCESS) { + if (fake_output_encrypt->len > 0) { + ASSERT_COMPARE(fake_output_encrypt->x, fake_output_encrypt->len, + output, output_length); + } else { mbedtls_test_driver_asymmetric_encryption_hooks.forced_status = forced_status_decrypt; - if ( fake_output_decrypt->len > 0 ) - { + if (fake_output_decrypt->len > 0) { mbedtls_test_driver_asymmetric_encryption_hooks.forced_output = fake_output_decrypt->x; mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length = fake_output_decrypt->len; output2_size = fake_output_decrypt->len; - ASSERT_ALLOC( output2, output2_size ); - } - else - { + ASSERT_ALLOC(output2, output2_size); + } else { output2_size = input_data->len; - TEST_ASSERT( output2_size <= - PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE( key_type, key_bits, alg ) ); - TEST_ASSERT( output2_size <= PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE ); - ASSERT_ALLOC( output2, output2_size ); + TEST_ASSERT(output2_size <= + PSA_ASYMMETRIC_DECRYPT_OUTPUT_SIZE(key_type, key_bits, alg)); + TEST_ASSERT(output2_size <= PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE); + ASSERT_ALLOC(output2, output2_size); } - TEST_EQUAL( psa_asymmetric_decrypt( key, alg, - output, output_length, - label->x, label->len, - output2, output2_size, - &output2_length ), expected_status_decrypt ); - if ( expected_status_decrypt == PSA_SUCCESS ) - { - if ( fake_output_decrypt->len > 0 ) - ASSERT_COMPARE( fake_output_decrypt->x, fake_output_decrypt->len, - output2, output2_length ); - else - ASSERT_COMPARE( input_data->x, input_data->len, - output2, output2_length ); + TEST_EQUAL(psa_asymmetric_decrypt(key, alg, + output, output_length, + label->x, label->len, + output2, output2_size, + &output2_length), expected_status_decrypt); + if (expected_status_decrypt == PSA_SUCCESS) { + if (fake_output_decrypt->len > 0) { + ASSERT_COMPARE(fake_output_decrypt->x, fake_output_decrypt->len, + output2, output2_length); + } else { + ASSERT_COMPARE(input_data->x, input_data->len, + output2, output2_length); + } } } } @@ -2235,24 +2180,24 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( output ); - mbedtls_free( output2 ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + mbedtls_free(output2); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_decrypt( int alg_arg, - data_t *key_data, - data_t *input_data, - data_t *label, - data_t *expected_output_data, - data_t *fake_output_decrypt, - int forced_status_decrypt_arg, - int expected_status_decrypt_arg ) +void asymmetric_decrypt(int alg_arg, + data_t *key_data, + data_t *input_data, + data_t *label, + data_t *expected_output_data, + data_t *fake_output_decrypt, + int forced_status_decrypt_arg, + int expected_status_decrypt_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = PSA_KEY_TYPE_RSA_KEY_PAIR; @@ -2264,69 +2209,65 @@ void asymmetric_decrypt( int alg_arg, psa_status_t expected_status_decrypt = expected_status_decrypt_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); mbedtls_test_driver_asymmetric_encryption_hooks = mbedtls_test_driver_asymmetric_encryption_hooks_init(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); mbedtls_test_driver_asymmetric_encryption_hooks.forced_status = forced_status_decrypt; - if ( fake_output_decrypt->len > 0 ) - { + if (fake_output_decrypt->len > 0) { mbedtls_test_driver_asymmetric_encryption_hooks.forced_output = fake_output_decrypt->x; mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length = fake_output_decrypt->len; output_size = fake_output_decrypt->len; - ASSERT_ALLOC( output, output_size ); - } - else - { + ASSERT_ALLOC(output, output_size); + } else { output_size = expected_output_data->len; - ASSERT_ALLOC( output, expected_output_data->len ); + ASSERT_ALLOC(output, expected_output_data->len); } - TEST_EQUAL( psa_asymmetric_decrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ), expected_status_decrypt ); - if ( expected_status_decrypt == PSA_SUCCESS ) - { - TEST_EQUAL( output_length, expected_output_data->len ); - ASSERT_COMPARE( expected_output_data->x, expected_output_data->len, - output, output_length ); + TEST_EQUAL(psa_asymmetric_decrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length), expected_status_decrypt); + if (expected_status_decrypt == PSA_SUCCESS) { + TEST_EQUAL(output_length, expected_output_data->len); + ASSERT_COMPARE(expected_output_data->x, expected_output_data->len, + output, output_length); } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( output ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encrypt( int alg_arg, - data_t *key_data, - data_t *modulus, - data_t *private_exponent, - data_t *input_data, - data_t *label, - data_t *fake_output_encrypt, - int forced_status_encrypt_arg, - int expected_status_encrypt_arg ) +void asymmetric_encrypt(int alg_arg, + data_t *key_data, + data_t *modulus, + data_t *private_exponent, + data_t *input_data, + data_t *label, + data_t *fake_output_encrypt, + int forced_status_encrypt_arg, + int expected_status_encrypt_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = PSA_KEY_TYPE_RSA_PUBLIC_KEY; @@ -2338,69 +2279,61 @@ void asymmetric_encrypt( int alg_arg, psa_status_t expected_status_encrypt = expected_status_encrypt_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); mbedtls_test_driver_asymmetric_encryption_hooks = mbedtls_test_driver_asymmetric_encryption_hooks_init(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - size_t key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + size_t key_bits = psa_get_key_bits(&attributes); mbedtls_test_driver_asymmetric_encryption_hooks.forced_status = forced_status_encrypt; - if ( fake_output_encrypt->len > 0 ) - { + if (fake_output_encrypt->len > 0) { mbedtls_test_driver_asymmetric_encryption_hooks.forced_output = fake_output_encrypt->x; mbedtls_test_driver_asymmetric_encryption_hooks.forced_output_length = fake_output_encrypt->len; output_size = fake_output_encrypt->len; - ASSERT_ALLOC( output, output_size ); - } - else - { - output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE( key_type, key_bits, alg ); - ASSERT_ALLOC( output, output_size ); + ASSERT_ALLOC(output, output_size); + } else { + output_size = PSA_ASYMMETRIC_ENCRYPT_OUTPUT_SIZE(key_type, key_bits, alg); + ASSERT_ALLOC(output, output_size); } - TEST_EQUAL( psa_asymmetric_encrypt( key, alg, - input_data->x, input_data->len, - label->x, label->len, - output, output_size, - &output_length ), expected_status_encrypt ); - if ( expected_status_encrypt == PSA_SUCCESS ) - { - if( fake_output_encrypt->len > 0 ) - { - TEST_EQUAL( fake_output_encrypt->len, output_length ); - ASSERT_COMPARE( fake_output_encrypt->x, fake_output_encrypt->len, - output, output_length ); - } - else - { + TEST_EQUAL(psa_asymmetric_encrypt(key, alg, + input_data->x, input_data->len, + label->x, label->len, + output, output_size, + &output_length), expected_status_encrypt); + if (expected_status_encrypt == PSA_SUCCESS) { + if (fake_output_encrypt->len > 0) { + TEST_EQUAL(fake_output_encrypt->len, output_length); + ASSERT_COMPARE(fake_output_encrypt->x, fake_output_encrypt->len, + output, output_length); + } else { /* Perform sanity checks on the output */ #if PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY - if( PSA_KEY_TYPE_IS_RSA( key_type ) ) - { - if( ! sanity_check_rsa_encryption_result( + if (PSA_KEY_TYPE_IS_RSA(key_type)) { + if (!sanity_check_rsa_encryption_result( alg, modulus, private_exponent, input_data, - output, output_length ) ) + output, output_length)) { goto exit; - } - else + } + } else #endif { (void) modulus; (void) private_exponent; - TEST_ASSERT( ! "Encryption sanity checks not implemented for this key type" ); + TEST_ASSERT(!"Encryption sanity checks not implemented for this key type"); } } } @@ -2409,24 +2342,24 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( key ); - mbedtls_free( output ); - PSA_DONE( ); + psa_destroy_key(key); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_encrypt_setup( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_data, - data_t *expected_ciphertext, - data_t *expected_tag, - int forced_status_arg, - int expected_status_arg ) +void aead_encrypt_setup(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_data, + data_t *expected_ciphertext, + data_t *expected_tag, + int forced_status_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -2447,104 +2380,103 @@ void aead_encrypt_setup( int key_type_arg, data_t *key_data, mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); - PSA_INIT( ); + PSA_INIT(); mbedtls_test_driver_aead_hooks.forced_status = forced_status; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - key_bits = psa_get_key_bits( &attributes ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + key_bits = psa_get_key_bits(&attributes); - output_size = input_data->len + PSA_AEAD_TAG_LENGTH( key_type, key_bits, - alg ); + output_size = input_data->len + PSA_AEAD_TAG_LENGTH(key_type, key_bits, + alg); /* For all currently defined algorithms, PSA_AEAD_ENCRYPT_OUTPUT_SIZE * should be exact. */ - TEST_EQUAL( output_size, - PSA_AEAD_ENCRYPT_OUTPUT_SIZE( key_type, alg, input_data->len ) ); - TEST_ASSERT( output_size <= - PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE( input_data->len ) ); - ASSERT_ALLOC( output_data, output_size ); + TEST_EQUAL(output_size, + PSA_AEAD_ENCRYPT_OUTPUT_SIZE(key_type, alg, input_data->len)); + TEST_ASSERT(output_size <= + PSA_AEAD_ENCRYPT_OUTPUT_MAX_SIZE(input_data->len)); + ASSERT_ALLOC(output_data, output_size); - status = psa_aead_encrypt_setup( &operation, key, alg ); + status = psa_aead_encrypt_setup(&operation, key, alg); - TEST_EQUAL( status, expected_status ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_encrypt_setup, 1 ); + TEST_EQUAL(status, expected_status); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_encrypt_setup, 1); - if( status == PSA_SUCCESS ) - { + if (status == PSA_SUCCESS) { /* Set the nonce. */ - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_set_nonce, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_set_nonce, + forced_status == PSA_SUCCESS ? 1 : 0); /* Check hooks hits and * set length (additional data and data to encrypt) */ - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_data->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_data->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_set_lengths, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_set_lengths, + forced_status == PSA_SUCCESS ? 1 : 0); /* Pass the additional data */ - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_update_ad, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_update_ad, + forced_status == PSA_SUCCESS ? 1 : 0); /* Pass the data to encrypt */ - PSA_ASSERT( psa_aead_update( &operation, input_data->x, input_data->len, - output_data, output_size, &output_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_data->x, input_data->len, + output_data, output_size, &output_length)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_update, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_update, + forced_status == PSA_SUCCESS ? 1 : 0); /* Finish the encryption operation */ - PSA_ASSERT( psa_aead_finish( &operation, output_data + output_length, - output_size - output_length, - &finish_output_length, tag_buffer, - PSA_AEAD_TAG_MAX_SIZE, &tag_length ) ); + PSA_ASSERT(psa_aead_finish(&operation, output_data + output_length, + output_size - output_length, + &finish_output_length, tag_buffer, + PSA_AEAD_TAG_MAX_SIZE, &tag_length)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_finish, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_finish, + forced_status == PSA_SUCCESS ? 1 : 0); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_abort, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_abort, + forced_status == PSA_SUCCESS ? 1 : 0); /* Compare output_data and expected_ciphertext */ - ASSERT_COMPARE( expected_ciphertext->x, expected_ciphertext->len, - output_data, output_length + finish_output_length ); + ASSERT_COMPARE(expected_ciphertext->x, expected_ciphertext->len, + output_data, output_length + finish_output_length); /* Compare tag and expected_tag */ - ASSERT_COMPARE( expected_tag->x, expected_tag->len, tag_buffer, tag_length ); + ASSERT_COMPARE(expected_tag->x, expected_tag->len, tag_buffer, tag_length); } exit: /* Cleanup */ - PSA_ASSERT( psa_destroy_key( key ) ); - mbedtls_free( output_data ); - PSA_DONE( ); + PSA_ASSERT(psa_destroy_key(key)); + mbedtls_free(output_data); + PSA_DONE(); mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_decrypt_setup( int key_type_arg, data_t *key_data, - int alg_arg, - data_t *nonce, - data_t *additional_data, - data_t *input_ciphertext, - data_t *input_tag, - data_t *expected_result, - int forced_status_arg, - int expected_status_arg ) +void aead_decrypt_setup(int key_type_arg, data_t *key_data, + int alg_arg, + data_t *nonce, + data_t *additional_data, + data_t *input_ciphertext, + data_t *input_tag, + data_t *expected_result, + int forced_status_arg, + int expected_status_arg) { mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t key_type = key_type_arg; @@ -2561,78 +2493,77 @@ void aead_decrypt_setup( int key_type_arg, data_t *key_data, psa_aead_operation_t operation = psa_aead_operation_init(); mbedtls_test_driver_aead_hooks = mbedtls_test_driver_aead_hooks_init(); - PSA_INIT( ); + PSA_INIT(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); output_size = input_ciphertext->len; - ASSERT_ALLOC( output_data, output_size ); + ASSERT_ALLOC(output_data, output_size); mbedtls_test_driver_aead_hooks.forced_status = forced_status; - status = psa_aead_decrypt_setup( &operation, key, alg ); + status = psa_aead_decrypt_setup(&operation, key, alg); - TEST_EQUAL( status, ( forced_status == PSA_ERROR_NOT_SUPPORTED ) ? - PSA_SUCCESS : forced_status ); + TEST_EQUAL(status, (forced_status == PSA_ERROR_NOT_SUPPORTED) ? + PSA_SUCCESS : forced_status); - TEST_EQUAL( status, expected_status ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_decrypt_setup, 1 ); + TEST_EQUAL(status, expected_status); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_decrypt_setup, 1); - if( status == PSA_SUCCESS ) - { - PSA_ASSERT( psa_aead_set_nonce( &operation, nonce->x, nonce->len ) ); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_set_nonce, - forced_status == PSA_SUCCESS ? 1 : 0 ); + if (status == PSA_SUCCESS) { + PSA_ASSERT(psa_aead_set_nonce(&operation, nonce->x, nonce->len)); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_set_nonce, + forced_status == PSA_SUCCESS ? 1 : 0); - PSA_ASSERT( psa_aead_set_lengths( &operation, additional_data->len, - input_ciphertext->len ) ); + PSA_ASSERT(psa_aead_set_lengths(&operation, additional_data->len, + input_ciphertext->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_set_lengths, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_set_lengths, + forced_status == PSA_SUCCESS ? 1 : 0); - PSA_ASSERT( psa_aead_update_ad( &operation, additional_data->x, - additional_data->len ) ); + PSA_ASSERT(psa_aead_update_ad(&operation, additional_data->x, + additional_data->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_update_ad, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_update_ad, + forced_status == PSA_SUCCESS ? 1 : 0); - PSA_ASSERT( psa_aead_update( &operation, input_ciphertext->x, - input_ciphertext->len, output_data, - output_size, &output_length ) ); + PSA_ASSERT(psa_aead_update(&operation, input_ciphertext->x, + input_ciphertext->len, output_data, + output_size, &output_length)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_update, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_update, + forced_status == PSA_SUCCESS ? 1 : 0); /* Offset applied to output_data in order to handle cases where verify() * outputs further data */ - PSA_ASSERT( psa_aead_verify( &operation, output_data + output_length, - output_size - output_length, - &verify_output_length, input_tag->x, - input_tag->len ) ); + PSA_ASSERT(psa_aead_verify(&operation, output_data + output_length, + output_size - output_length, + &verify_output_length, input_tag->x, + input_tag->len)); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_verify, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_verify, + forced_status == PSA_SUCCESS ? 1 : 0); /* Since this is a decryption operation, * finish should never be hit */ - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_finish, 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_finish, 0); - TEST_EQUAL( mbedtls_test_driver_aead_hooks.hits_abort, - forced_status == PSA_SUCCESS ? 1 : 0 ); + TEST_EQUAL(mbedtls_test_driver_aead_hooks.hits_abort, + forced_status == PSA_SUCCESS ? 1 : 0); - ASSERT_COMPARE( expected_result->x, expected_result->len, - output_data, output_length + verify_output_length ); + ASSERT_COMPARE(expected_result->x, expected_result->len, + output_data, output_length + verify_output_length); } exit: - PSA_ASSERT( psa_destroy_key( key ) ); - mbedtls_free( output_data ); - PSA_DONE( ); + PSA_ASSERT(psa_destroy_key(key)); + mbedtls_free(output_data); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_entropy.function b/tests/suites/test_suite_psa_crypto_entropy.function index 0a2623f58..1bb9efb9c 100644 --- a/tests/suites/test_suite_psa_crypto_entropy.function +++ b/tests/suites/test_suite_psa_crypto_entropy.function @@ -8,7 +8,8 @@ #include "entropy_poll.h" /* Calculating the minimum allowed entropy size in bytes */ -#define MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE MAX(MBEDTLS_ENTROPY_MIN_PLATFORM, MBEDTLS_ENTROPY_BLOCK_SIZE) +#define MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE MAX(MBEDTLS_ENTROPY_MIN_PLATFORM, \ + MBEDTLS_ENTROPY_BLOCK_SIZE) #if defined(MBEDTLS_PSA_INJECT_ENTROPY) @@ -22,15 +23,16 @@ * to do this (it would be a security risk if such a function was ever * accessible in production), implement this functionality in a white-box * manner. */ -psa_status_t remove_seed_file( void ) +psa_status_t remove_seed_file(void) { #if defined(MBEDTLS_PSA_ITS_FILE_C) - if( remove( "00000000ffffff52.psa_its" ) == 0 ) - return( PSA_SUCCESS ); - else - return( PSA_ERROR_DOES_NOT_EXIST ); + if (remove("00000000ffffff52.psa_its") == 0) { + return PSA_SUCCESS; + } else { + return PSA_ERROR_DOES_NOT_EXIST; + } #else - return( psa_its_remove( PSA_CRYPTO_ITS_RANDOM_SEED_UID ) ); + return psa_its_remove(PSA_CRYPTO_ITS_RANDOM_SEED_UID); #endif } @@ -39,44 +41,44 @@ psa_status_t remove_seed_file( void ) /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void external_rng_failure_generate( ) +void external_rng_failure_generate() { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_type( &attributes, PSA_KEY_TYPE_DERIVE ); - psa_set_key_bits( &attributes, 128 ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_DERIVE); + psa_set_key_bits(&attributes, 128); mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; uint8_t output[1]; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_generate_random( output, sizeof( output ) ) ); - PSA_ASSERT( psa_generate_key( &attributes, &key ) ); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_generate_random(output, sizeof(output))); + PSA_ASSERT(psa_generate_key(&attributes, &key)); + PSA_ASSERT(psa_destroy_key(key)); - mbedtls_test_disable_insecure_external_rng( ); - TEST_EQUAL( PSA_ERROR_INSUFFICIENT_ENTROPY, - psa_generate_random( output, sizeof( output ) ) ); - TEST_EQUAL( PSA_ERROR_INSUFFICIENT_ENTROPY, - psa_generate_key( &attributes, &key ) ); + mbedtls_test_disable_insecure_external_rng(); + TEST_EQUAL(PSA_ERROR_INSUFFICIENT_ENTROPY, + psa_generate_random(output, sizeof(output))); + TEST_EQUAL(PSA_ERROR_INSUFFICIENT_ENTROPY, + psa_generate_key(&attributes, &key)); exit: - psa_destroy_key( key ); - PSA_DONE( ); + psa_destroy_key(key); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void external_rng_failure_sign( int key_type, data_t *key_data, int alg, - int input_size_arg ) +void external_rng_failure_sign(int key_type, data_t *key_data, int alg, + int input_size_arg) { /* This test case is only expected to pass if the signature mechanism * requires randomness, either because it is a randomized signature * or because the implementation uses blinding. */ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; size_t input_size = input_size_arg; uint8_t *input = NULL; @@ -84,43 +86,43 @@ void external_rng_failure_sign( int key_type, data_t *key_data, int alg, size_t signature_size = PSA_SIGNATURE_MAX_SIZE; size_t signature_length; - ASSERT_ALLOC( input, input_size ); - ASSERT_ALLOC( signature, signature_size ); + ASSERT_ALLOC(input, input_size); + ASSERT_ALLOC(signature, signature_size); - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - PSA_ASSERT( psa_sign_hash( key, alg, - input, input_size, - signature, signature_size, - &signature_length ) ); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + PSA_ASSERT(psa_sign_hash(key, alg, + input, input_size, + signature, signature_size, + &signature_length)); + PSA_ASSERT(psa_destroy_key(key)); - mbedtls_test_disable_insecure_external_rng( ); + mbedtls_test_disable_insecure_external_rng(); /* Import the key again, because for RSA Mbed TLS caches blinding values * in the key object and this could perturb the test. */ - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - TEST_EQUAL( PSA_ERROR_INSUFFICIENT_ENTROPY, - psa_sign_hash( key, alg, - input, input_size, - signature, signature_size, - &signature_length ) ); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + TEST_EQUAL(PSA_ERROR_INSUFFICIENT_ENTROPY, + psa_sign_hash(key, alg, + input, input_size, + signature, signature_size, + &signature_length)); + PSA_ASSERT(psa_destroy_key(key)); exit: - psa_destroy_key( key ); - PSA_DONE( ); - mbedtls_free( input ); - mbedtls_free( signature ); + psa_destroy_key(key); + PSA_DONE(); + mbedtls_free(input); + mbedtls_free(signature); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_INJECT_ENTROPY */ -void validate_entropy_seed_injection( int seed_length_a, - int expected_status_a, - int seed_length_b, - int expected_status_b ) +void validate_entropy_seed_injection(int seed_length_a, + int expected_status_a, + int seed_length_b, + int expected_status_b) { psa_status_t status; uint8_t output[32] = { 0 }; @@ -128,68 +130,63 @@ void validate_entropy_seed_injection( int seed_length_a, uint8_t *seed = NULL; int i; int seed_size; - if( seed_length_a > seed_length_b ) - { + if (seed_length_a > seed_length_b) { seed_size = seed_length_a; - } - else - { + } else { seed_size = seed_length_b; } - ASSERT_ALLOC( seed, seed_size ); + ASSERT_ALLOC(seed, seed_size); /* fill seed with some data */ - for( i = 0; i < seed_size; ++i ) - { + for (i = 0; i < seed_size; ++i) { seed[i] = i; } - status = remove_seed_file( ); - TEST_ASSERT( ( status == PSA_SUCCESS ) || - ( status == PSA_ERROR_DOES_NOT_EXIST ) ); - status = mbedtls_psa_inject_entropy( seed, seed_length_a ); - TEST_EQUAL( status, expected_status_a ); - status = mbedtls_psa_inject_entropy( seed, seed_length_b ); - TEST_EQUAL( status, expected_status_b ); - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_generate_random( output, - sizeof( output ) ) ); - TEST_ASSERT( memcmp( output, zeros, sizeof( output ) ) != 0 ); + status = remove_seed_file(); + TEST_ASSERT((status == PSA_SUCCESS) || + (status == PSA_ERROR_DOES_NOT_EXIST)); + status = mbedtls_psa_inject_entropy(seed, seed_length_a); + TEST_EQUAL(status, expected_status_a); + status = mbedtls_psa_inject_entropy(seed, seed_length_b); + TEST_EQUAL(status, expected_status_b); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_generate_random(output, + sizeof(output))); + TEST_ASSERT(memcmp(output, zeros, sizeof(output)) != 0); exit: - mbedtls_free( seed ); - remove_seed_file( ); - PSA_DONE( ); + mbedtls_free(seed); + remove_seed_file(); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_INJECT_ENTROPY */ -void run_entropy_inject_with_crypto_init( ) +void run_entropy_inject_with_crypto_init() { psa_status_t status; size_t i; uint8_t seed[MBEDTLS_PSA_INJECT_ENTROPY_MIN_SIZE] = { 0 }; /* fill seed with some data */ - for( i = 0; i < sizeof( seed ); ++i ) - { + for (i = 0; i < sizeof(seed); ++i) { seed[i] = i; } - status = remove_seed_file( ); - TEST_ASSERT( ( status == PSA_SUCCESS ) || - ( status == PSA_ERROR_DOES_NOT_EXIST ) ); - status = mbedtls_psa_inject_entropy( seed, sizeof( seed ) ); - PSA_ASSERT( status ); - status = remove_seed_file( ); - TEST_EQUAL( status, PSA_SUCCESS ); - status = psa_crypto_init( ); - TEST_EQUAL( status, PSA_ERROR_INSUFFICIENT_ENTROPY ); - status = mbedtls_psa_inject_entropy( seed, sizeof( seed ) ); - PSA_ASSERT( status ); - status = psa_crypto_init( ); - PSA_ASSERT( status ); - PSA_DONE( ); + status = remove_seed_file(); + TEST_ASSERT((status == PSA_SUCCESS) || + (status == PSA_ERROR_DOES_NOT_EXIST)); + status = mbedtls_psa_inject_entropy(seed, sizeof(seed)); + PSA_ASSERT(status); + status = remove_seed_file(); + TEST_EQUAL(status, PSA_SUCCESS); + status = psa_crypto_init(); + TEST_EQUAL(status, PSA_ERROR_INSUFFICIENT_ENTROPY); + status = mbedtls_psa_inject_entropy(seed, sizeof(seed)); + PSA_ASSERT(status); + status = psa_crypto_init(); + PSA_ASSERT(status); + PSA_DONE(); /* The seed is written by nv_seed callback functions therefore the injection will fail */ - status = mbedtls_psa_inject_entropy( seed, sizeof( seed ) ); - TEST_EQUAL( status, PSA_ERROR_NOT_PERMITTED ); + status = mbedtls_psa_inject_entropy(seed, sizeof(seed)); + TEST_EQUAL(status, PSA_ERROR_NOT_PERMITTED); exit: - remove_seed_file( ); - PSA_DONE( ); + remove_seed_file(); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_generate_key.function b/tests/suites/test_suite_psa_crypto_generate_key.function index 6dc604350..366e09b01 100644 --- a/tests/suites/test_suite_psa_crypto_generate_key.function +++ b/tests/suites/test_suite_psa_crypto_generate_key.function @@ -3,7 +3,7 @@ #include "psa/crypto.h" #include "test/psa_crypto_helpers.h" -#define INVALID_KEY_ID mbedtls_svc_key_id_make( 0, 0xfedcba98 ) +#define INVALID_KEY_ID mbedtls_svc_key_id_make(0, 0xfedcba98) /* END_HEADER */ @@ -13,7 +13,7 @@ */ /* BEGIN_CASE */ -void generate_key( int key_type_arg, int bits_arg, int expected_status_arg) +void generate_key(int key_type_arg, int bits_arg, int expected_status_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = INVALID_KEY_ID; @@ -23,27 +23,26 @@ void generate_key( int key_type_arg, int bits_arg, int expected_status_arg) size_t bits = bits_arg; psa_status_t expected_status = expected_status_arg; - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, bits ); - TEST_EQUAL( psa_generate_key( &attributes, &key_id ), - expected_status ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, bits); + TEST_EQUAL(psa_generate_key(&attributes, &key_id), + expected_status); // Verify attributes of the created key on success - if ( expected_status == PSA_SUCCESS ) - { + if (expected_status == PSA_SUCCESS) { psa_reset_key_attributes(&attributes); - PSA_ASSERT( psa_get_key_attributes( key_id, &attributes ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), PSA_KEY_LIFETIME_VOLATILE ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_type( &attributes ), key_type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), bits ); + PSA_ASSERT(psa_get_key_attributes(key_id, &attributes)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), PSA_KEY_LIFETIME_VOLATILE); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), 0); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); + TEST_EQUAL(psa_get_key_type(&attributes), key_type); + TEST_EQUAL(psa_get_key_bits(&attributes), bits); } exit: psa_reset_key_attributes(&attributes); - psa_destroy_key( key_id ); - PSA_DONE( ); + psa_destroy_key(key_id); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_hash.function b/tests/suites/test_suite_psa_crypto_hash.function index b0da2bf30..f12541d68 100644 --- a/tests/suites/test_suite_psa_crypto_hash.function +++ b/tests/suites/test_suite_psa_crypto_hash.function @@ -10,54 +10,54 @@ */ /* BEGIN_CASE */ -void hash_finish( int alg_arg, data_t *input, data_t *expected_hash ) +void hash_finish(int alg_arg, data_t *input, data_t *expected_hash) { psa_algorithm_t alg = alg_arg; unsigned char actual_hash[PSA_HASH_MAX_SIZE]; size_t actual_hash_length; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, - input->x, input->len ) ); - PSA_ASSERT( psa_hash_finish( &operation, - actual_hash, sizeof( actual_hash ), - &actual_hash_length ) ); - ASSERT_COMPARE( expected_hash->x, expected_hash->len, - actual_hash, actual_hash_length ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, + input->x, input->len)); + PSA_ASSERT(psa_hash_finish(&operation, + actual_hash, sizeof(actual_hash), + &actual_hash_length)); + ASSERT_COMPARE(expected_hash->x, expected_hash->len, + actual_hash, actual_hash_length); exit: - psa_hash_abort( &operation ); - PSA_DONE( ); + psa_hash_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_verify( int alg_arg, data_t *input, data_t *expected_hash ) +void hash_verify(int alg_arg, data_t *input, data_t *expected_hash) { psa_algorithm_t alg = alg_arg; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); - PSA_ASSERT( psa_hash_update( &operation, - input->x, - input->len ) ); - PSA_ASSERT( psa_hash_verify( &operation, - expected_hash->x, - expected_hash->len ) ); + PSA_ASSERT(psa_hash_setup(&operation, alg)); + PSA_ASSERT(psa_hash_update(&operation, + input->x, + input->len)); + PSA_ASSERT(psa_hash_verify(&operation, + expected_hash->x, + expected_hash->len)); exit: - psa_hash_abort( &operation ); - PSA_DONE( ); + psa_hash_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void hash_multi_part( int alg_arg, data_t *input, data_t *expected_hash ) +void hash_multi_part(int alg_arg, data_t *input, data_t *expected_hash) { psa_algorithm_t alg = alg_arg; unsigned char actual_hash[PSA_HASH_MAX_SIZE]; @@ -66,37 +66,36 @@ void hash_multi_part( int alg_arg, data_t *input, data_t *expected_hash ) psa_hash_operation_t operation2 = PSA_HASH_OPERATION_INIT; uint32_t len = 0; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - do - { - memset( actual_hash, 0, sizeof( actual_hash ) ); - PSA_ASSERT( psa_hash_setup( &operation, alg ) ); + do { + memset(actual_hash, 0, sizeof(actual_hash)); + PSA_ASSERT(psa_hash_setup(&operation, alg)); - PSA_ASSERT( psa_hash_update( &operation, - input->x, len ) ); - PSA_ASSERT( psa_hash_clone( &operation, &operation2 ) ); - PSA_ASSERT( psa_hash_update( &operation, - input->x + len, input->len - len ) ); - PSA_ASSERT( psa_hash_update( &operation2, - input->x + len, input->len - len ) ); + PSA_ASSERT(psa_hash_update(&operation, + input->x, len)); + PSA_ASSERT(psa_hash_clone(&operation, &operation2)); + PSA_ASSERT(psa_hash_update(&operation, + input->x + len, input->len - len)); + PSA_ASSERT(psa_hash_update(&operation2, + input->x + len, input->len - len)); - PSA_ASSERT( psa_hash_finish( &operation, - actual_hash, sizeof( actual_hash ), - &actual_hash_length ) ); - ASSERT_COMPARE( expected_hash->x, expected_hash->len, - actual_hash, actual_hash_length ); + PSA_ASSERT(psa_hash_finish(&operation, + actual_hash, sizeof(actual_hash), + &actual_hash_length)); + ASSERT_COMPARE(expected_hash->x, expected_hash->len, + actual_hash, actual_hash_length); - PSA_ASSERT( psa_hash_finish( &operation2, - actual_hash, sizeof( actual_hash ), - &actual_hash_length ) ); - ASSERT_COMPARE( expected_hash->x, expected_hash->len, - actual_hash, actual_hash_length ); - } while( len++ != input->len ); + PSA_ASSERT(psa_hash_finish(&operation2, + actual_hash, sizeof(actual_hash), + &actual_hash_length)); + ASSERT_COMPARE(expected_hash->x, expected_hash->len, + actual_hash, actual_hash_length); + } while (len++ != input->len); exit: - psa_hash_abort( &operation ); - psa_hash_abort( &operation2 ); - PSA_DONE( ); + psa_hash_abort(&operation); + psa_hash_abort(&operation2); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_init.function b/tests/suites/test_suite_psa_crypto_init.function index 9f72b47a4..f0b98e7fd 100644 --- a/tests/suites/test_suite_psa_crypto_init.function +++ b/tests/suites/test_suite_psa_crypto_init.function @@ -17,7 +17,7 @@ * half the entropy length. For SHA-256, SHA-384 or SHA-512, the * entropy length is 256 per the documentation of mbedtls_hmac_drbg_seed(), * and PSA crypto doesn't support other hashes for HMAC_DRBG. */ -#define ENTROPY_NONCE_LEN ( 256 / 2 ) +#define ENTROPY_NONCE_LEN (256 / 2) #else /* PSA crypto uses the CTR_DRBG module. In some configurations, it needs * to read from the entropy source twice: once for the initial entropy @@ -28,28 +28,29 @@ #if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) -typedef struct -{ +typedef struct { size_t threshold; /* Minimum bytes to make mbedtls_entropy_func happy */ size_t max_steps; size_t *length_sequence; size_t step; } fake_entropy_state_t; -static int fake_entropy_source( void *state_arg, - unsigned char *output, size_t len, - size_t *olen ) +static int fake_entropy_source(void *state_arg, + unsigned char *output, size_t len, + size_t *olen) { fake_entropy_state_t *state = state_arg; size_t i; - if( state->step >= state->max_steps ) - return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + if (state->step >= state->max_steps) { + return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED; + } - *olen = MIN( len, state->length_sequence[state->step] ); - for( i = 0; i < *olen; i++ ) + *olen = MIN(len, state->length_sequence[state->step]); + for (i = 0; i < *olen; i++) { output[i] = i; + } ++state->step; - return( 0 ); + return 0; } #define ENTROPY_SOURCE_PLATFORM 0x00000001 @@ -63,54 +64,54 @@ static fake_entropy_state_t fake_entropy_state; /* This is a modified version of mbedtls_entropy_init() from entropy.c * which chooses entropy sources dynamically. */ -static void custom_entropy_init( mbedtls_entropy_context *ctx ) +static void custom_entropy_init(mbedtls_entropy_context *ctx) { ctx->source_count = 0; - memset( ctx->source, 0, sizeof( ctx->source ) ); + memset(ctx->source, 0, sizeof(ctx->source)); #if defined(MBEDTLS_THREADING_C) - mbedtls_mutex_init( &ctx->mutex ); + mbedtls_mutex_init(&ctx->mutex); #endif ctx->accumulator_started = 0; #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR) - mbedtls_sha512_init( &ctx->accumulator ); + mbedtls_sha512_init(&ctx->accumulator); #else - mbedtls_sha256_init( &ctx->accumulator ); + mbedtls_sha256_init(&ctx->accumulator); #endif #if !defined(MBEDTLS_NO_PLATFORM_ENTROPY) - if( custom_entropy_sources_mask & ENTROPY_SOURCE_PLATFORM ) - mbedtls_entropy_add_source( ctx, mbedtls_platform_entropy_poll, NULL, - MBEDTLS_ENTROPY_MIN_PLATFORM, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + if (custom_entropy_sources_mask & ENTROPY_SOURCE_PLATFORM) { + mbedtls_entropy_add_source(ctx, mbedtls_platform_entropy_poll, NULL, + MBEDTLS_ENTROPY_MIN_PLATFORM, + MBEDTLS_ENTROPY_SOURCE_STRONG); + } #endif #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) - if( custom_entropy_sources_mask & ENTROPY_SOURCE_HARDWARE ) - mbedtls_entropy_add_source( ctx, mbedtls_hardware_poll, NULL, - MBEDTLS_ENTROPY_MIN_HARDWARE, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + if (custom_entropy_sources_mask & ENTROPY_SOURCE_HARDWARE) { + mbedtls_entropy_add_source(ctx, mbedtls_hardware_poll, NULL, + MBEDTLS_ENTROPY_MIN_HARDWARE, + MBEDTLS_ENTROPY_SOURCE_STRONG); + } #endif #if defined(MBEDTLS_ENTROPY_NV_SEED) - if( custom_entropy_sources_mask & ENTROPY_SOURCE_NV_SEED ) - { - mbedtls_entropy_add_source( ctx, mbedtls_nv_seed_poll, NULL, - MBEDTLS_ENTROPY_BLOCK_SIZE, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + if (custom_entropy_sources_mask & ENTROPY_SOURCE_NV_SEED) { + mbedtls_entropy_add_source(ctx, mbedtls_nv_seed_poll, NULL, + MBEDTLS_ENTROPY_BLOCK_SIZE, + MBEDTLS_ENTROPY_SOURCE_STRONG); ctx->initial_entropy_run = 0; - } - else - { + } else { /* Skip the NV seed even though it's compiled in. */ ctx->initial_entropy_run = 1; } #endif - if( custom_entropy_sources_mask & ENTROPY_SOURCE_FAKE ) - mbedtls_entropy_add_source( ctx, - fake_entropy_source, &fake_entropy_state, - fake_entropy_state.threshold, - MBEDTLS_ENTROPY_SOURCE_STRONG ); + if (custom_entropy_sources_mask & ENTROPY_SOURCE_FAKE) { + mbedtls_entropy_add_source(ctx, + fake_entropy_source, &fake_entropy_state, + fake_entropy_state.threshold, + MBEDTLS_ENTROPY_SOURCE_STRONG); + } } #endif /* !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) */ @@ -123,109 +124,106 @@ static void custom_entropy_init( mbedtls_entropy_context *ctx ) */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void create_nv_seed( ) +void create_nv_seed() { static unsigned char seed[ENTROPY_MIN_NV_SEED_SIZE]; - TEST_ASSERT( mbedtls_nv_seed_write( seed, sizeof( seed ) ) >= 0 ); + TEST_ASSERT(mbedtls_nv_seed_write(seed, sizeof(seed)) >= 0); } /* END_CASE */ /* BEGIN_CASE */ -void init_deinit( int count ) +void init_deinit(int count) { psa_status_t status; int i; - for( i = 0; i < count; i++ ) - { - status = psa_crypto_init( ); - PSA_ASSERT( status ); - status = psa_crypto_init( ); - PSA_ASSERT( status ); - PSA_DONE( ); + for (i = 0; i < count; i++) { + status = psa_crypto_init(); + PSA_ASSERT(status); + status = psa_crypto_init(); + PSA_ASSERT(status); + PSA_DONE(); } } /* END_CASE */ /* BEGIN_CASE */ -void deinit_without_init( int count ) +void deinit_without_init(int count) { int i; - for( i = 0; i < count; i++ ) - { - PSA_ASSERT( psa_crypto_init( ) ); - PSA_DONE( ); + for (i = 0; i < count; i++) { + PSA_ASSERT(psa_crypto_init()); + PSA_DONE(); } - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void validate_module_init_generate_random( int count ) +void validate_module_init_generate_random(int count) { psa_status_t status; uint8_t random[10] = { 0 }; int i; - for( i = 0; i < count; i++ ) - { - status = psa_crypto_init( ); - PSA_ASSERT( status ); - PSA_DONE( ); + for (i = 0; i < count; i++) { + status = psa_crypto_init(); + PSA_ASSERT(status); + PSA_DONE(); } - status = psa_generate_random( random, sizeof( random ) ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); + status = psa_generate_random(random, sizeof(random)); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); } /* END_CASE */ /* BEGIN_CASE */ -void validate_module_init_key_based( int count ) +void validate_module_init_key_based(int count) { psa_status_t status; uint8_t data[10] = { 0 }; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make( 0xdead, 0xdead ); + mbedtls_svc_key_id_t key = mbedtls_svc_key_id_make(0xdead, 0xdead); int i; - for( i = 0; i < count; i++ ) - { - status = psa_crypto_init( ); - PSA_ASSERT( status ); - PSA_DONE( ); + for (i = 0; i < count; i++) { + status = psa_crypto_init(); + PSA_ASSERT(status); + PSA_DONE(); } - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - status = psa_import_key( &attributes, data, sizeof( data ), &key ); - TEST_EQUAL( status, PSA_ERROR_BAD_STATE ); - TEST_ASSERT( mbedtls_svc_key_id_is_null( key ) ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + status = psa_import_key(&attributes, data, sizeof(data), &key); + TEST_EQUAL(status, PSA_ERROR_BAD_STATE); + TEST_ASSERT(mbedtls_svc_key_id_is_null(key)); } /* END_CASE */ /* BEGIN_CASE depends_on:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void custom_entropy_sources( int sources_arg, int expected_init_status_arg ) +void custom_entropy_sources(int sources_arg, int expected_init_status_arg) { psa_status_t expected_init_status = expected_init_status_arg; uint8_t random[10] = { 0 }; custom_entropy_sources_mask = sources_arg; - PSA_ASSERT( mbedtls_psa_crypto_configure_entropy_sources( - custom_entropy_init, mbedtls_entropy_free ) ); + PSA_ASSERT(mbedtls_psa_crypto_configure_entropy_sources( + custom_entropy_init, mbedtls_entropy_free)); - TEST_EQUAL( psa_crypto_init( ), expected_init_status ); - if( expected_init_status != PSA_SUCCESS ) + TEST_EQUAL(psa_crypto_init(), expected_init_status); + if (expected_init_status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( psa_generate_random( random, sizeof( random ) ) ); + PSA_ASSERT(psa_generate_random(random, sizeof(random))); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void fake_entropy_source( int threshold, - int amount1, - int amount2, - int amount3, - int amount4, - int expected_init_status_arg ) +void fake_entropy_source(int threshold, + int amount1, + int amount2, + int amount3, + int amount4, + int expected_init_status_arg) { psa_status_t expected_init_status = expected_init_status_arg; uint8_t random[10] = { 0 }; @@ -234,55 +232,61 @@ void fake_entropy_source( int threshold, fake_entropy_state.threshold = threshold; fake_entropy_state.step = 0; fake_entropy_state.max_steps = 0; - if( amount1 >= 0 ) + if (amount1 >= 0) { lengths[fake_entropy_state.max_steps++] = amount1; - if( amount2 >= 0 ) + } + if (amount2 >= 0) { lengths[fake_entropy_state.max_steps++] = amount2; - if( amount3 >= 0 ) + } + if (amount3 >= 0) { lengths[fake_entropy_state.max_steps++] = amount3; - if( amount4 >= 0 ) + } + if (amount4 >= 0) { lengths[fake_entropy_state.max_steps++] = amount4; + } fake_entropy_state.length_sequence = lengths; custom_entropy_sources_mask = ENTROPY_SOURCE_FAKE; - PSA_ASSERT( mbedtls_psa_crypto_configure_entropy_sources( - custom_entropy_init, mbedtls_entropy_free ) ); + PSA_ASSERT(mbedtls_psa_crypto_configure_entropy_sources( + custom_entropy_init, mbedtls_entropy_free)); - TEST_EQUAL( psa_crypto_init( ), expected_init_status ); - if( expected_init_status != PSA_SUCCESS ) + TEST_EQUAL(psa_crypto_init(), expected_init_status); + if (expected_init_status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( psa_generate_random( random, sizeof( random ) ) ); + PSA_ASSERT(psa_generate_random(random, sizeof(random))); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_NV_SEED:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void entropy_from_nv_seed( int seed_size_arg, - int expected_init_status_arg ) +void entropy_from_nv_seed(int seed_size_arg, + int expected_init_status_arg) { psa_status_t expected_init_status = expected_init_status_arg; uint8_t random[10] = { 0 }; uint8_t *seed = NULL; size_t seed_size = seed_size_arg; - ASSERT_ALLOC( seed, seed_size ); - TEST_ASSERT( mbedtls_nv_seed_write( seed, seed_size ) >= 0 ); + ASSERT_ALLOC(seed, seed_size); + TEST_ASSERT(mbedtls_nv_seed_write(seed, seed_size) >= 0); custom_entropy_sources_mask = ENTROPY_SOURCE_NV_SEED; - PSA_ASSERT( mbedtls_psa_crypto_configure_entropy_sources( - custom_entropy_init, mbedtls_entropy_free ) ); + PSA_ASSERT(mbedtls_psa_crypto_configure_entropy_sources( + custom_entropy_init, mbedtls_entropy_free)); - TEST_EQUAL( psa_crypto_init( ), expected_init_status ); - if( expected_init_status != PSA_SUCCESS ) + TEST_EQUAL(psa_crypto_init(), expected_init_status); + if (expected_init_status != PSA_SUCCESS) { goto exit; + } - PSA_ASSERT( psa_generate_random( random, sizeof( random ) ) ); + PSA_ASSERT(psa_generate_random(random, sizeof(random))); exit: - mbedtls_free( seed ); - PSA_DONE( ); + mbedtls_free(seed); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_metadata.function b/tests/suites/test_suite_psa_crypto_metadata.function index 643a92f5e..b28ed2a75 100644 --- a/tests/suites/test_suite_psa_crypto_metadata.function +++ b/tests/suites/test_suite_psa_crypto_metadata.function @@ -16,58 +16,58 @@ * category test macros, which are hard-coded in each * category-specific function. The name of the flag is the name of the * classification macro without the PSA_ prefix. */ -#define ALG_IS_VENDOR_DEFINED ( 1u << 0 ) -#define ALG_IS_HMAC ( 1u << 1 ) -#define ALG_IS_BLOCK_CIPHER_MAC ( 1u << 2 ) -#define ALG_IS_STREAM_CIPHER ( 1u << 3 ) -#define ALG_IS_RSA_PKCS1V15_SIGN ( 1u << 4 ) -#define ALG_IS_RSA_PSS ( 1u << 5 ) -#define ALG_IS_RSA_PSS_ANY_SALT ( 1u << 6 ) -#define ALG_IS_RSA_PSS_STANDARD_SALT ( 1u << 7 ) -#define ALG_IS_DSA ( 1u << 8 ) -#define ALG_DSA_IS_DETERMINISTIC ( 1u << 9 ) -#define ALG_IS_DETERMINISTIC_DSA ( 1u << 10 ) -#define ALG_IS_RANDOMIZED_DSA ( 1u << 11 ) -#define ALG_IS_ECDSA ( 1u << 12 ) -#define ALG_ECDSA_IS_DETERMINISTIC ( 1u << 13 ) -#define ALG_IS_DETERMINISTIC_ECDSA ( 1u << 14 ) -#define ALG_IS_RANDOMIZED_ECDSA ( 1u << 15 ) -#define ALG_IS_HASH_EDDSA ( 1u << 16 ) -#define ALG_IS_SIGN_HASH ( 1u << 17 ) -#define ALG_IS_HASH_AND_SIGN ( 1u << 18 ) -#define ALG_IS_RSA_OAEP ( 1u << 19 ) -#define ALG_IS_HKDF ( 1u << 20 ) -#define ALG_IS_HKDF_EXTRACT ( 1u << 21 ) -#define ALG_IS_HKDF_EXPAND ( 1u << 22 ) -#define ALG_IS_FFDH ( 1u << 23 ) -#define ALG_IS_ECDH ( 1u << 24 ) -#define ALG_IS_WILDCARD ( 1u << 25 ) -#define ALG_IS_RAW_KEY_AGREEMENT ( 1u << 26 ) -#define ALG_IS_AEAD_ON_BLOCK_CIPHER ( 1u << 27 ) -#define ALG_IS_TLS12_PRF ( 1u << 28 ) -#define ALG_IS_TLS12_PSK_TO_MS ( 1u << 29 ) -#define ALG_FLAG_MASK_PLUS_ONE ( 1u << 30 ) /* must be last! */ +#define ALG_IS_VENDOR_DEFINED (1u << 0) +#define ALG_IS_HMAC (1u << 1) +#define ALG_IS_BLOCK_CIPHER_MAC (1u << 2) +#define ALG_IS_STREAM_CIPHER (1u << 3) +#define ALG_IS_RSA_PKCS1V15_SIGN (1u << 4) +#define ALG_IS_RSA_PSS (1u << 5) +#define ALG_IS_RSA_PSS_ANY_SALT (1u << 6) +#define ALG_IS_RSA_PSS_STANDARD_SALT (1u << 7) +#define ALG_IS_DSA (1u << 8) +#define ALG_DSA_IS_DETERMINISTIC (1u << 9) +#define ALG_IS_DETERMINISTIC_DSA (1u << 10) +#define ALG_IS_RANDOMIZED_DSA (1u << 11) +#define ALG_IS_ECDSA (1u << 12) +#define ALG_ECDSA_IS_DETERMINISTIC (1u << 13) +#define ALG_IS_DETERMINISTIC_ECDSA (1u << 14) +#define ALG_IS_RANDOMIZED_ECDSA (1u << 15) +#define ALG_IS_HASH_EDDSA (1u << 16) +#define ALG_IS_SIGN_HASH (1u << 17) +#define ALG_IS_HASH_AND_SIGN (1u << 18) +#define ALG_IS_RSA_OAEP (1u << 19) +#define ALG_IS_HKDF (1u << 20) +#define ALG_IS_HKDF_EXTRACT (1u << 21) +#define ALG_IS_HKDF_EXPAND (1u << 22) +#define ALG_IS_FFDH (1u << 23) +#define ALG_IS_ECDH (1u << 24) +#define ALG_IS_WILDCARD (1u << 25) +#define ALG_IS_RAW_KEY_AGREEMENT (1u << 26) +#define ALG_IS_AEAD_ON_BLOCK_CIPHER (1u << 27) +#define ALG_IS_TLS12_PRF (1u << 28) +#define ALG_IS_TLS12_PSK_TO_MS (1u << 29) +#define ALG_FLAG_MASK_PLUS_ONE (1u << 30) /* must be last! */ /* Flags for key type classification macros. There is a flag for every * key type classification macro PSA_KEY_TYPE_IS_xxx except for some that * are tested as derived from other macros. The name of the flag is * the name of the classification macro without the PSA_ prefix. */ -#define KEY_TYPE_IS_VENDOR_DEFINED ( 1u << 0 ) -#define KEY_TYPE_IS_UNSTRUCTURED ( 1u << 1 ) -#define KEY_TYPE_IS_PUBLIC_KEY ( 1u << 2 ) -#define KEY_TYPE_IS_KEY_PAIR ( 1u << 3 ) -#define KEY_TYPE_IS_RSA ( 1u << 4 ) -#define KEY_TYPE_IS_DSA ( 1u << 5 ) -#define KEY_TYPE_IS_ECC ( 1u << 6 ) -#define KEY_TYPE_IS_DH ( 1u << 7 ) -#define KEY_TYPE_FLAG_MASK_PLUS_ONE ( 1u << 8 ) /* must be last! */ +#define KEY_TYPE_IS_VENDOR_DEFINED (1u << 0) +#define KEY_TYPE_IS_UNSTRUCTURED (1u << 1) +#define KEY_TYPE_IS_PUBLIC_KEY (1u << 2) +#define KEY_TYPE_IS_KEY_PAIR (1u << 3) +#define KEY_TYPE_IS_RSA (1u << 4) +#define KEY_TYPE_IS_DSA (1u << 5) +#define KEY_TYPE_IS_ECC (1u << 6) +#define KEY_TYPE_IS_DH (1u << 7) +#define KEY_TYPE_FLAG_MASK_PLUS_ONE (1u << 8) /* must be last! */ /* Flags for lifetime classification macros. There is a flag for every * lifetime classification macro PSA_KEY_LIFETIME_IS_xxx. The name of the * flag is the name of the classification macro without the PSA_ prefix. */ -#define KEY_LIFETIME_IS_VOLATILE ( 1u << 0 ) -#define KEY_LIFETIME_IS_READ_ONLY ( 1u << 1 ) -#define KEY_LIFETIME_FLAG_MASK_PLUS_ONE ( 1u << 2 ) /* must be last! */ +#define KEY_LIFETIME_IS_VOLATILE (1u << 0) +#define KEY_LIFETIME_IS_READ_ONLY (1u << 1) +#define KEY_LIFETIME_FLAG_MASK_PLUS_ONE (1u << 2) /* must be last! */ /* Check that in the value of flags, the bit flag (which should be a macro * expanding to a number of the form 1 << k) is set if and only if @@ -80,19 +80,19 @@ * Unconditionally mask flag into the ambient variable * classification_flags_tested. */ -#define TEST_CLASSIFICATION_MACRO( cond, flag, alg, flags ) \ +#define TEST_CLASSIFICATION_MACRO(cond, flag, alg, flags) \ do \ { \ - if( cond ) \ + if (cond) \ { \ - if( ( flags ) & ( flag ) ) \ - TEST_ASSERT( PSA_##flag( alg ) ); \ + if ((flags) & (flag)) \ + TEST_ASSERT(PSA_##flag(alg)); \ else \ - TEST_ASSERT( ! PSA_##flag( alg ) ); \ + TEST_ASSERT(!PSA_##flag(alg)); \ } \ - classification_flags_tested |= ( flag ); \ + classification_flags_tested |= (flag); \ } \ - while( 0 ) + while (0) /* Check the parity of value. * @@ -106,138 +106,138 @@ * The expected parity is even so that 0 is considered a valid encoding. * * Return a nonzero value if value has even parity and 0 otherwise. */ -int has_even_parity( uint32_t value ) +int has_even_parity(uint32_t value) { value ^= value >> 16; value ^= value >> 8; value ^= value >> 4; - return( 0x9669 & 1 << ( value & 0xf ) ); + return 0x9669 & 1 << (value & 0xf); } -#define TEST_PARITY( value ) \ - TEST_ASSERT( has_even_parity( value ) ) +#define TEST_PARITY(value) \ + TEST_ASSERT(has_even_parity(value)) -void algorithm_classification( psa_algorithm_t alg, unsigned flags ) +void algorithm_classification(psa_algorithm_t alg, unsigned flags) { unsigned classification_flags_tested = 0; - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_VENDOR_DEFINED, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HMAC, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_BLOCK_CIPHER_MAC, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_STREAM_CIPHER, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RSA_PKCS1V15_SIGN, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RSA_PSS, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RSA_PSS_ANY_SALT, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RSA_PSS_STANDARD_SALT, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_DSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( PSA_ALG_IS_DSA( alg ), - ALG_DSA_IS_DETERMINISTIC, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_DETERMINISTIC_DSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RANDOMIZED_DSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_ECDSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( PSA_ALG_IS_ECDSA( alg ), - ALG_ECDSA_IS_DETERMINISTIC, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_DETERMINISTIC_ECDSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RANDOMIZED_ECDSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HASH_EDDSA, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_SIGN_HASH, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HASH_AND_SIGN, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RSA_OAEP, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HKDF, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HKDF_EXTRACT, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_HKDF_EXPAND, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_WILDCARD, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_ECDH, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_FFDH, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_RAW_KEY_AGREEMENT, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_AEAD_ON_BLOCK_CIPHER, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_TLS12_PRF, alg, flags ); - TEST_CLASSIFICATION_MACRO( 1, ALG_IS_TLS12_PSK_TO_MS, alg, flags ); - TEST_EQUAL( classification_flags_tested, ALG_FLAG_MASK_PLUS_ONE - 1 ); -exit: ; + TEST_CLASSIFICATION_MACRO(1, ALG_IS_VENDOR_DEFINED, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HMAC, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_BLOCK_CIPHER_MAC, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_STREAM_CIPHER, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RSA_PKCS1V15_SIGN, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RSA_PSS, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RSA_PSS_ANY_SALT, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RSA_PSS_STANDARD_SALT, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_DSA, alg, flags); + TEST_CLASSIFICATION_MACRO(PSA_ALG_IS_DSA(alg), + ALG_DSA_IS_DETERMINISTIC, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_DETERMINISTIC_DSA, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RANDOMIZED_DSA, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_ECDSA, alg, flags); + TEST_CLASSIFICATION_MACRO(PSA_ALG_IS_ECDSA(alg), + ALG_ECDSA_IS_DETERMINISTIC, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_DETERMINISTIC_ECDSA, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RANDOMIZED_ECDSA, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HASH_EDDSA, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_SIGN_HASH, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HASH_AND_SIGN, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RSA_OAEP, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HKDF, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HKDF_EXTRACT, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_HKDF_EXPAND, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_WILDCARD, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_ECDH, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_FFDH, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_RAW_KEY_AGREEMENT, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_AEAD_ON_BLOCK_CIPHER, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_TLS12_PRF, alg, flags); + TEST_CLASSIFICATION_MACRO(1, ALG_IS_TLS12_PSK_TO_MS, alg, flags); + TEST_EQUAL(classification_flags_tested, ALG_FLAG_MASK_PLUS_ONE - 1); +exit:; } -void key_type_classification( psa_key_type_t type, unsigned flags ) +void key_type_classification(psa_key_type_t type, unsigned flags) { unsigned classification_flags_tested = 0; /* Macros tested based on the test case parameter */ - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_VENDOR_DEFINED, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_UNSTRUCTURED, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_PUBLIC_KEY, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_KEY_PAIR, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_RSA, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_DSA, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_ECC, type, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_TYPE_IS_DH, type, flags ); - TEST_EQUAL( classification_flags_tested, KEY_TYPE_FLAG_MASK_PLUS_ONE - 1 ); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_VENDOR_DEFINED, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_UNSTRUCTURED, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_PUBLIC_KEY, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_KEY_PAIR, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_RSA, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_DSA, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_ECC, type, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_TYPE_IS_DH, type, flags); + TEST_EQUAL(classification_flags_tested, KEY_TYPE_FLAG_MASK_PLUS_ONE - 1); /* Macros with derived semantics */ - TEST_EQUAL( PSA_KEY_TYPE_IS_ASYMMETRIC( type ), - ( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) || - PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) ); - TEST_EQUAL( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ), - ( PSA_KEY_TYPE_IS_ECC( type ) && - PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) ); - TEST_EQUAL( PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( type ), - ( PSA_KEY_TYPE_IS_ECC( type ) && - PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) ); - TEST_EQUAL( PSA_KEY_TYPE_IS_DH_KEY_PAIR( type ), - ( PSA_KEY_TYPE_IS_DH( type ) && - PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) ); - TEST_EQUAL( PSA_KEY_TYPE_IS_DH_PUBLIC_KEY( type ), - ( PSA_KEY_TYPE_IS_DH( type ) && - PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) ); + TEST_EQUAL(PSA_KEY_TYPE_IS_ASYMMETRIC(type), + (PSA_KEY_TYPE_IS_PUBLIC_KEY(type) || + PSA_KEY_TYPE_IS_KEY_PAIR(type))); + TEST_EQUAL(PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type), + (PSA_KEY_TYPE_IS_ECC(type) && + PSA_KEY_TYPE_IS_KEY_PAIR(type))); + TEST_EQUAL(PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type), + (PSA_KEY_TYPE_IS_ECC(type) && + PSA_KEY_TYPE_IS_PUBLIC_KEY(type))); + TEST_EQUAL(PSA_KEY_TYPE_IS_DH_KEY_PAIR(type), + (PSA_KEY_TYPE_IS_DH(type) && + PSA_KEY_TYPE_IS_KEY_PAIR(type))); + TEST_EQUAL(PSA_KEY_TYPE_IS_DH_PUBLIC_KEY(type), + (PSA_KEY_TYPE_IS_DH(type) && + PSA_KEY_TYPE_IS_PUBLIC_KEY(type))); - TEST_PARITY( type ); + TEST_PARITY(type); -exit: ; +exit:; } -void mac_algorithm_core( psa_algorithm_t alg, int classification_flags, - psa_key_type_t key_type, size_t key_bits, - size_t length ) +void mac_algorithm_core(psa_algorithm_t alg, int classification_flags, + psa_key_type_t key_type, size_t key_bits, + size_t length) { /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); /* Length */ - TEST_EQUAL( length, PSA_MAC_LENGTH( key_type, key_bits, alg ) ); + TEST_EQUAL(length, PSA_MAC_LENGTH(key_type, key_bits, alg)); #if defined(MBEDTLS_TEST_HOOKS) && defined(MBEDTLS_PSA_CRYPTO_C) - PSA_ASSERT( psa_mac_key_can_do( alg, key_type ) ); + PSA_ASSERT(psa_mac_key_can_do(alg, key_type)); #endif -exit: ; +exit:; } -void aead_algorithm_core( psa_algorithm_t alg, int classification_flags, - psa_key_type_t key_type, size_t key_bits, - size_t tag_length ) +void aead_algorithm_core(psa_algorithm_t alg, int classification_flags, + psa_key_type_t key_type, size_t key_bits, + size_t tag_length) { /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); /* Tag length */ - TEST_EQUAL( tag_length, PSA_AEAD_TAG_LENGTH( key_type, key_bits, alg ) ); + TEST_EQUAL(tag_length, PSA_AEAD_TAG_LENGTH(key_type, key_bits, alg)); -exit: ; +exit:; } /* END_HEADER */ @@ -248,53 +248,53 @@ exit: ; */ /* BEGIN_CASE */ -void hash_algorithm( int alg_arg, int length_arg ) +void hash_algorithm(int alg_arg, int length_arg) { psa_algorithm_t alg = alg_arg; size_t length = length_arg; - psa_algorithm_t hmac_alg = PSA_ALG_HMAC( alg ); - psa_algorithm_t rsa_pkcs1v15_sign_alg = PSA_ALG_RSA_PKCS1V15_SIGN( alg ); - psa_algorithm_t rsa_pss_alg = PSA_ALG_RSA_PSS( alg ); - psa_algorithm_t dsa_alg = PSA_ALG_DSA( alg ); - psa_algorithm_t deterministic_dsa_alg = PSA_ALG_DETERMINISTIC_DSA( alg ); - psa_algorithm_t ecdsa_alg = PSA_ALG_ECDSA( alg ); - psa_algorithm_t deterministic_ecdsa_alg = PSA_ALG_DETERMINISTIC_ECDSA( alg ); - psa_algorithm_t rsa_oaep_alg = PSA_ALG_RSA_OAEP( alg ); - psa_algorithm_t hkdf_alg = PSA_ALG_HKDF( alg ); + psa_algorithm_t hmac_alg = PSA_ALG_HMAC(alg); + psa_algorithm_t rsa_pkcs1v15_sign_alg = PSA_ALG_RSA_PKCS1V15_SIGN(alg); + psa_algorithm_t rsa_pss_alg = PSA_ALG_RSA_PSS(alg); + psa_algorithm_t dsa_alg = PSA_ALG_DSA(alg); + psa_algorithm_t deterministic_dsa_alg = PSA_ALG_DETERMINISTIC_DSA(alg); + psa_algorithm_t ecdsa_alg = PSA_ALG_ECDSA(alg); + psa_algorithm_t deterministic_ecdsa_alg = PSA_ALG_DETERMINISTIC_ECDSA(alg); + psa_algorithm_t rsa_oaep_alg = PSA_ALG_RSA_OAEP(alg); + psa_algorithm_t hkdf_alg = PSA_ALG_HKDF(alg); /* Algorithm classification */ - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, 0 ); + TEST_ASSERT(PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, 0); /* Dependent algorithms */ - TEST_EQUAL( PSA_ALG_HMAC_GET_HASH( hmac_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( rsa_pkcs1v15_sign_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( rsa_pss_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( dsa_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( deterministic_dsa_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( ecdsa_alg ), alg ); - TEST_EQUAL( PSA_ALG_SIGN_GET_HASH( deterministic_ecdsa_alg ), alg ); - TEST_EQUAL( PSA_ALG_RSA_OAEP_GET_HASH( rsa_oaep_alg ), alg ); - TEST_EQUAL( PSA_ALG_HKDF_GET_HASH( hkdf_alg ), alg ); + TEST_EQUAL(PSA_ALG_HMAC_GET_HASH(hmac_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(rsa_pkcs1v15_sign_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(rsa_pss_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(dsa_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(deterministic_dsa_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(ecdsa_alg), alg); + TEST_EQUAL(PSA_ALG_SIGN_GET_HASH(deterministic_ecdsa_alg), alg); + TEST_EQUAL(PSA_ALG_RSA_OAEP_GET_HASH(rsa_oaep_alg), alg); + TEST_EQUAL(PSA_ALG_HKDF_GET_HASH(hkdf_alg), alg); /* Hash length */ - TEST_EQUAL( length, PSA_HASH_LENGTH( alg ) ); - TEST_ASSERT( length <= PSA_HASH_MAX_SIZE ); + TEST_EQUAL(length, PSA_HASH_LENGTH(alg)); + TEST_ASSERT(length <= PSA_HASH_MAX_SIZE); } /* END_CASE */ /* BEGIN_CASE */ -void mac_algorithm( int alg_arg, int classification_flags, - int length_arg, - int key_type_arg, int key_bits_arg ) +void mac_algorithm(int alg_arg, int classification_flags, + int length_arg, + int key_type_arg, int key_bits_arg) { psa_algorithm_t alg = alg_arg; size_t length = length_arg; @@ -302,128 +302,125 @@ void mac_algorithm( int alg_arg, int classification_flags, size_t key_type = key_type_arg; size_t key_bits = key_bits_arg; - mac_algorithm_core( alg, classification_flags, - key_type, key_bits, length ); - TEST_EQUAL( PSA_ALG_FULL_LENGTH_MAC( alg ), alg ); - TEST_ASSERT( length <= PSA_MAC_MAX_SIZE ); + mac_algorithm_core(alg, classification_flags, + key_type, key_bits, length); + TEST_EQUAL(PSA_ALG_FULL_LENGTH_MAC(alg), alg); + TEST_ASSERT(length <= PSA_MAC_MAX_SIZE); /* Truncated versions */ - for( n = 1; n <= length; n++ ) - { - psa_algorithm_t truncated_alg = PSA_ALG_TRUNCATED_MAC( alg, n ); - mac_algorithm_core( truncated_alg, classification_flags, - key_type, key_bits, n ); - TEST_EQUAL( PSA_ALG_FULL_LENGTH_MAC( truncated_alg ), alg ); + for (n = 1; n <= length; n++) { + psa_algorithm_t truncated_alg = PSA_ALG_TRUNCATED_MAC(alg, n); + mac_algorithm_core(truncated_alg, classification_flags, + key_type, key_bits, n); + TEST_EQUAL(PSA_ALG_FULL_LENGTH_MAC(truncated_alg), alg); /* Check that calling PSA_ALG_TRUNCATED_MAC twice gives the length * of the outer truncation (even if the outer length is smaller than * the inner length). */ - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( truncated_alg, 1 ), - PSA_ALG_TRUNCATED_MAC( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( truncated_alg, length - 1 ), - PSA_ALG_TRUNCATED_MAC( alg, length - 1) ); - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( truncated_alg, length ), - PSA_ALG_TRUNCATED_MAC( alg, length ) ); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC(truncated_alg, 1), + PSA_ALG_TRUNCATED_MAC(alg, 1)); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC(truncated_alg, length - 1), + PSA_ALG_TRUNCATED_MAC(alg, length - 1)); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC(truncated_alg, length), + PSA_ALG_TRUNCATED_MAC(alg, length)); /* Check that calling PSA_ALG_TRUNCATED_MAC on an algorithm * earlier constructed with PSA_ALG_AT_LEAST_THIS_LENGTH_MAC gives the * length of the outer truncation (even if the outer length is smaller * than the inner length). */ - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( truncated_alg, n ), 1 ), - PSA_ALG_TRUNCATED_MAC( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( truncated_alg, n ), length - 1 ), - PSA_ALG_TRUNCATED_MAC( alg, length - 1) ); - TEST_EQUAL( PSA_ALG_TRUNCATED_MAC( - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( truncated_alg, n ), length ), - PSA_ALG_TRUNCATED_MAC( alg, length ) ); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC( + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(truncated_alg, n), 1), + PSA_ALG_TRUNCATED_MAC(alg, 1)); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC( + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(truncated_alg, n), length - 1), + PSA_ALG_TRUNCATED_MAC(alg, length - 1)); + TEST_EQUAL(PSA_ALG_TRUNCATED_MAC( + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(truncated_alg, n), length), + PSA_ALG_TRUNCATED_MAC(alg, length)); } /* At-leat-this-length versions */ - for( n = 1; n <= length; n++ ) - { - psa_algorithm_t policy_alg = PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, n ); - mac_algorithm_core( policy_alg, classification_flags | ALG_IS_WILDCARD, - key_type, key_bits, n ); - TEST_EQUAL( PSA_ALG_FULL_LENGTH_MAC( policy_alg ), alg ); + for (n = 1; n <= length; n++) { + psa_algorithm_t policy_alg = PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, n); + mac_algorithm_core(policy_alg, classification_flags | ALG_IS_WILDCARD, + key_type, key_bits, n); + TEST_EQUAL(PSA_ALG_FULL_LENGTH_MAC(policy_alg), alg); /* Check that calling PSA_ALG_AT_LEAST_THIS_LENGTH_MAC twice gives the * length of the outer truncation (even if the outer length is smaller * than the inner length). */ - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( policy_alg, 1 ), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( policy_alg, length - 1 ), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, length - 1) ); - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( policy_alg, length ), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, length ) ); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(policy_alg, 1), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, 1)); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(policy_alg, length - 1), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, length - 1)); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(policy_alg, length), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, length)); /* Check that calling PSA_ALG_AT_LEAST_THIS_LENGTH_MAC on an algorithm * earlier constructed with PSA_ALG_TRUNCATED_MAC gives the length of * the outer truncation (even if the outer length is smaller than the * inner length). */ - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( - PSA_ALG_TRUNCATED_MAC( policy_alg, n ), 1), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( - PSA_ALG_TRUNCATED_MAC( policy_alg, n ), length - 1 ), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, length - 1) ); - TEST_EQUAL( PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( - PSA_ALG_TRUNCATED_MAC( policy_alg, n ), length ), - PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( alg, length ) ); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( + PSA_ALG_TRUNCATED_MAC(policy_alg, n), 1), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, 1)); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( + PSA_ALG_TRUNCATED_MAC(policy_alg, n), length - 1), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, length - 1)); + TEST_EQUAL(PSA_ALG_AT_LEAST_THIS_LENGTH_MAC( + PSA_ALG_TRUNCATED_MAC(policy_alg, n), length), + PSA_ALG_AT_LEAST_THIS_LENGTH_MAC(alg, length)); } } /* END_CASE */ /* BEGIN_CASE */ -void hmac_algorithm( int alg_arg, - int length_arg, - int block_size_arg ) +void hmac_algorithm(int alg_arg, + int length_arg, + int block_size_arg) { psa_algorithm_t alg = alg_arg; - psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH( alg ); + psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(alg); size_t block_size = block_size_arg; size_t length = length_arg; size_t n; - TEST_ASSERT( PSA_ALG_IS_HASH( hash_alg ) ); - TEST_EQUAL( PSA_ALG_HMAC( hash_alg ), alg ); + TEST_ASSERT(PSA_ALG_IS_HASH(hash_alg)); + TEST_EQUAL(PSA_ALG_HMAC(hash_alg), alg); - TEST_ASSERT( block_size == PSA_HASH_BLOCK_LENGTH( alg ) ); - TEST_ASSERT( block_size <= PSA_HMAC_MAX_HASH_BLOCK_SIZE ); + TEST_ASSERT(block_size == PSA_HASH_BLOCK_LENGTH(alg)); + TEST_ASSERT(block_size <= PSA_HMAC_MAX_HASH_BLOCK_SIZE); - test_mac_algorithm( alg_arg, ALG_IS_HMAC, length, - PSA_KEY_TYPE_HMAC, PSA_BYTES_TO_BITS( length ) ); + test_mac_algorithm(alg_arg, ALG_IS_HMAC, length, + PSA_KEY_TYPE_HMAC, PSA_BYTES_TO_BITS(length)); - for( n = 1; n <= length; n++ ) - { - psa_algorithm_t truncated_alg = PSA_ALG_TRUNCATED_MAC( alg, n ); - TEST_EQUAL( PSA_ALG_HMAC_GET_HASH( truncated_alg ), hash_alg ); + for (n = 1; n <= length; n++) { + psa_algorithm_t truncated_alg = PSA_ALG_TRUNCATED_MAC(alg, n); + TEST_EQUAL(PSA_ALG_HMAC_GET_HASH(truncated_alg), hash_alg); } } /* END_CASE */ /* BEGIN_CASE */ -void cipher_algorithm( int alg_arg, int classification_flags ) +void cipher_algorithm(int alg_arg, int classification_flags) { psa_algorithm_t alg = alg_arg; /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); } /* END_CASE */ /* BEGIN_CASE */ -void aead_algorithm( int alg_arg, int classification_flags, - int tag_length_arg, - int key_type_arg, int key_bits_arg ) +void aead_algorithm(int alg_arg, int classification_flags, + int tag_length_arg, + int key_type_arg, int key_bits_arg) { psa_algorithm_t alg = alg_arg; size_t tag_length = tag_length_arg; @@ -431,103 +428,102 @@ void aead_algorithm( int alg_arg, int classification_flags, psa_key_type_t key_type = key_type_arg; size_t key_bits = key_bits_arg; - aead_algorithm_core( alg, classification_flags, - key_type, key_bits, tag_length ); + aead_algorithm_core(alg, classification_flags, + key_type, key_bits, tag_length); /* Truncated versions */ - for( n = 1; n <= tag_length; n++ ) - { - psa_algorithm_t truncated_alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, n ); - aead_algorithm_core( truncated_alg, classification_flags, - key_type, key_bits, n ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG( truncated_alg ), - alg ); + for (n = 1; n <= tag_length; n++) { + psa_algorithm_t truncated_alg = PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, n); + aead_algorithm_core(truncated_alg, classification_flags, + key_type, key_bits, n); + TEST_EQUAL(PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(truncated_alg), + alg); /* Check that calling PSA_ALG_AEAD_WITH_SHORTENED_TAG twice gives * the length of the outer truncation (even if the outer length is * smaller than the inner length). */ - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( truncated_alg, 1 ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( truncated_alg, tag_length - 1 ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, tag_length - 1) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( truncated_alg, tag_length ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, tag_length ) ); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG(truncated_alg, 1), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG(truncated_alg, tag_length - 1), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, tag_length - 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG(truncated_alg, tag_length), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, tag_length)); /* Check that calling PSA_ALG_AEAD_WITH_SHORTENED_TAG on an algorithm * earlier constructed with PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG * gives the length of the outer truncation (even if the outer length is * smaller than the inner length). */ - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( truncated_alg, n ), 1 ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( truncated_alg, n ), tag_length - 1 ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, tag_length - 1) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_SHORTENED_TAG( - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( truncated_alg, n ), tag_length ), - PSA_ALG_AEAD_WITH_SHORTENED_TAG( alg, tag_length ) ); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG( + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(truncated_alg, n), 1), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG( + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(truncated_alg, + n), tag_length - 1), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, tag_length - 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_SHORTENED_TAG( + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(truncated_alg, n), tag_length), + PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, tag_length)); } /* At-leat-this-length versions */ - for( n = 1; n <= tag_length; n++ ) - { - psa_algorithm_t policy_alg = PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, n ); - aead_algorithm_core( policy_alg, classification_flags | ALG_IS_WILDCARD, - key_type, key_bits, n ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG( policy_alg ), - alg ); + for (n = 1; n <= tag_length; n++) { + psa_algorithm_t policy_alg = PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, n); + aead_algorithm_core(policy_alg, classification_flags | ALG_IS_WILDCARD, + key_type, key_bits, n); + TEST_EQUAL(PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(policy_alg), + alg); /* Check that calling PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG twice * gives the length of the outer truncation (even if the outer length is * smaller than the inner length). */ - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( policy_alg, 1 ), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( policy_alg, tag_length - 1 ), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, tag_length - 1) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( policy_alg, tag_length ), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, tag_length ) ); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(policy_alg, 1), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(policy_alg, tag_length - 1), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, tag_length - 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(policy_alg, tag_length), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, tag_length)); /* Check that calling PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG on an * algorithm earlier constructed with PSA_ALG_AEAD_WITH_SHORTENED_TAG * gives the length of the outer truncation (even if the outer length is * smaller than the inner length). */ - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( - PSA_ALG_AEAD_WITH_SHORTENED_TAG( policy_alg, n ), 1), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, 1 ) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( - PSA_ALG_AEAD_WITH_SHORTENED_TAG( policy_alg, n ), tag_length - 1 ), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, tag_length - 1) ); - TEST_EQUAL( PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( - PSA_ALG_AEAD_WITH_SHORTENED_TAG( policy_alg, n ), tag_length ), - PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( alg, tag_length ) ); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( + PSA_ALG_AEAD_WITH_SHORTENED_TAG(policy_alg, n), 1), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( + PSA_ALG_AEAD_WITH_SHORTENED_TAG(policy_alg, n), tag_length - 1), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, tag_length - 1)); + TEST_EQUAL(PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG( + PSA_ALG_AEAD_WITH_SHORTENED_TAG(policy_alg, n), tag_length), + PSA_ALG_AEAD_WITH_AT_LEAST_THIS_LENGTH_TAG(alg, tag_length)); } } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_signature_algorithm( int alg_arg, int classification_flags ) +void asymmetric_signature_algorithm(int alg_arg, int classification_flags) { psa_algorithm_t alg = alg_arg; /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_signature_wildcard( int alg_arg, int classification_flags ) +void asymmetric_signature_wildcard(int alg_arg, int classification_flags) { classification_flags |= ALG_IS_WILDCARD; classification_flags |= ALG_IS_SIGN_HASH; classification_flags |= ALG_IS_HASH_AND_SIGN; - test_asymmetric_signature_algorithm( alg_arg, classification_flags ); + test_asymmetric_signature_algorithm(alg_arg, classification_flags); /* Any failure of this test function comes from * asymmetric_signature_algorithm. Pacify -Werror=unused-label. */ goto exit; @@ -535,196 +531,194 @@ void asymmetric_signature_wildcard( int alg_arg, int classification_flags ) /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encryption_algorithm( int alg_arg, int classification_flags ) +void asymmetric_encryption_algorithm(int alg_arg, int classification_flags) { psa_algorithm_t alg = alg_arg; /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); } /* END_CASE */ /* BEGIN_CASE */ -void key_derivation_algorithm( int alg_arg, int classification_flags ) +void key_derivation_algorithm(int alg_arg, int classification_flags) { psa_algorithm_t alg = alg_arg; - psa_algorithm_t ecdh_alg = PSA_ALG_KEY_AGREEMENT( PSA_ALG_ECDH, alg ); - psa_algorithm_t ffdh_alg = PSA_ALG_KEY_AGREEMENT( PSA_ALG_FFDH, alg ); + psa_algorithm_t ecdh_alg = PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, alg); + psa_algorithm_t ffdh_alg = PSA_ALG_KEY_AGREEMENT(PSA_ALG_FFDH, alg); /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); /* Check combinations with key agreements */ - TEST_ASSERT( PSA_ALG_IS_KEY_AGREEMENT( ecdh_alg ) ); - TEST_ASSERT( PSA_ALG_IS_KEY_AGREEMENT( ffdh_alg ) ); - TEST_EQUAL( PSA_ALG_KEY_AGREEMENT_GET_KDF( ecdh_alg ), alg ); - TEST_EQUAL( PSA_ALG_KEY_AGREEMENT_GET_KDF( ffdh_alg ), alg ); + TEST_ASSERT(PSA_ALG_IS_KEY_AGREEMENT(ecdh_alg)); + TEST_ASSERT(PSA_ALG_IS_KEY_AGREEMENT(ffdh_alg)); + TEST_EQUAL(PSA_ALG_KEY_AGREEMENT_GET_KDF(ecdh_alg), alg); + TEST_EQUAL(PSA_ALG_KEY_AGREEMENT_GET_KDF(ffdh_alg), alg); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement_algorithm( int alg_arg, int classification_flags, - int ka_alg_arg, int kdf_alg_arg ) +void key_agreement_algorithm(int alg_arg, int classification_flags, + int ka_alg_arg, int kdf_alg_arg) { psa_algorithm_t alg = alg_arg; - psa_algorithm_t actual_ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE( alg ); + psa_algorithm_t actual_ka_alg = PSA_ALG_KEY_AGREEMENT_GET_BASE(alg); psa_algorithm_t expected_ka_alg = ka_alg_arg; - psa_algorithm_t actual_kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF( alg ); + psa_algorithm_t actual_kdf_alg = PSA_ALG_KEY_AGREEMENT_GET_KDF(alg); psa_algorithm_t expected_kdf_alg = kdf_alg_arg; /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_PAKE( alg ) ); - algorithm_classification( alg, classification_flags ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(!PSA_ALG_IS_PAKE(alg)); + algorithm_classification(alg, classification_flags); /* Shared secret derivation properties */ - TEST_EQUAL( actual_ka_alg, expected_ka_alg ); - TEST_EQUAL( actual_kdf_alg, expected_kdf_alg ); + TEST_EQUAL(actual_ka_alg, expected_ka_alg); + TEST_EQUAL(actual_kdf_alg, expected_kdf_alg); } /* END_CASE */ /* BEGIN_CASE */ -void pake_algorithm( int alg_arg ) +void pake_algorithm(int alg_arg) { psa_algorithm_t alg = alg_arg; /* Algorithm classification */ - TEST_ASSERT( ! PSA_ALG_IS_HASH( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_MAC( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_CIPHER( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_AEAD( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_SIGN( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_ASYMMETRIC_ENCRYPTION( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_AGREEMENT( alg ) ); - TEST_ASSERT( ! PSA_ALG_IS_KEY_DERIVATION( alg ) ); - TEST_ASSERT( PSA_ALG_IS_PAKE( alg ) ); + TEST_ASSERT(!PSA_ALG_IS_HASH(alg)); + TEST_ASSERT(!PSA_ALG_IS_MAC(alg)); + TEST_ASSERT(!PSA_ALG_IS_CIPHER(alg)); + TEST_ASSERT(!PSA_ALG_IS_AEAD(alg)); + TEST_ASSERT(!PSA_ALG_IS_SIGN(alg)); + TEST_ASSERT(!PSA_ALG_IS_ASYMMETRIC_ENCRYPTION(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_AGREEMENT(alg)); + TEST_ASSERT(!PSA_ALG_IS_KEY_DERIVATION(alg)); + TEST_ASSERT(PSA_ALG_IS_PAKE(alg)); } /* END_CASE */ /* BEGIN_CASE */ -void key_type( int type_arg, int classification_flags ) +void key_type(int type_arg, int classification_flags) { psa_key_type_t type = type_arg; - key_type_classification( type, classification_flags ); + key_type_classification(type, classification_flags); /* For asymmetric types, check the corresponding pair/public type */ - if( classification_flags & KEY_TYPE_IS_PUBLIC_KEY ) - { - psa_key_type_t pair_type = PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY( type ); - TEST_EQUAL( PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( pair_type ), type ); - key_type_classification( pair_type, - ( classification_flags - & ~KEY_TYPE_IS_PUBLIC_KEY ) - | KEY_TYPE_IS_KEY_PAIR ); - TEST_EQUAL( PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( type ), type ); + if (classification_flags & KEY_TYPE_IS_PUBLIC_KEY) { + psa_key_type_t pair_type = PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY(type); + TEST_EQUAL(PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(pair_type), type); + key_type_classification(pair_type, + (classification_flags + & ~KEY_TYPE_IS_PUBLIC_KEY) + | KEY_TYPE_IS_KEY_PAIR); + TEST_EQUAL(PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type), type); } - if( classification_flags & KEY_TYPE_IS_KEY_PAIR ) - { - psa_key_type_t public_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( type ); - TEST_EQUAL( PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY( public_type ), type ); - key_type_classification( public_type, - ( classification_flags - & ~KEY_TYPE_IS_KEY_PAIR ) - | KEY_TYPE_IS_PUBLIC_KEY ); - TEST_EQUAL( PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY( type ), type ); + if (classification_flags & KEY_TYPE_IS_KEY_PAIR) { + psa_key_type_t public_type = PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type); + TEST_EQUAL(PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY(public_type), type); + key_type_classification(public_type, + (classification_flags + & ~KEY_TYPE_IS_KEY_PAIR) + | KEY_TYPE_IS_PUBLIC_KEY); + TEST_EQUAL(PSA_KEY_TYPE_KEY_PAIR_OF_PUBLIC_KEY(type), type); } } /* END_CASE */ /* BEGIN_CASE */ -void block_cipher_key_type( int type_arg, int block_size_arg ) +void block_cipher_key_type(int type_arg, int block_size_arg) { psa_key_type_t type = type_arg; size_t block_size = block_size_arg; - test_key_type( type_arg, KEY_TYPE_IS_UNSTRUCTURED ); + test_key_type(type_arg, KEY_TYPE_IS_UNSTRUCTURED); - TEST_EQUAL( type & PSA_KEY_TYPE_CATEGORY_MASK, - PSA_KEY_TYPE_CATEGORY_SYMMETRIC ); - TEST_EQUAL( PSA_BLOCK_CIPHER_BLOCK_LENGTH( type ), block_size ); + TEST_EQUAL(type & PSA_KEY_TYPE_CATEGORY_MASK, + PSA_KEY_TYPE_CATEGORY_SYMMETRIC); + TEST_EQUAL(PSA_BLOCK_CIPHER_BLOCK_LENGTH(type), block_size); /* Check that the block size is a power of 2. This is required, at least, - for PSA_ROUND_UP_TO_MULTIPLE(block_size, length) in crypto_sizes.h. */ - TEST_ASSERT( ( ( block_size - 1 ) & block_size ) == 0 ); + for PSA_ROUND_UP_TO_MULTIPLE(block_size, length) in crypto_sizes.h. */ + TEST_ASSERT(((block_size - 1) & block_size) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void stream_cipher_key_type( int type_arg ) +void stream_cipher_key_type(int type_arg) { psa_key_type_t type = type_arg; - test_key_type( type_arg, KEY_TYPE_IS_UNSTRUCTURED ); + test_key_type(type_arg, KEY_TYPE_IS_UNSTRUCTURED); - TEST_EQUAL( type & PSA_KEY_TYPE_CATEGORY_MASK, - PSA_KEY_TYPE_CATEGORY_SYMMETRIC ); - TEST_EQUAL( PSA_BLOCK_CIPHER_BLOCK_LENGTH( type ), 1 ); + TEST_EQUAL(type & PSA_KEY_TYPE_CATEGORY_MASK, + PSA_KEY_TYPE_CATEGORY_SYMMETRIC); + TEST_EQUAL(PSA_BLOCK_CIPHER_BLOCK_LENGTH(type), 1); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_KEY_TYPE_ECC_PUBLIC_KEY:PSA_KEY_TYPE_ECC_KEY_PAIR */ -void ecc_key_family( int curve_arg ) +void ecc_key_family(int curve_arg) { psa_ecc_family_t curve = curve_arg; - psa_key_type_t public_type = PSA_KEY_TYPE_ECC_PUBLIC_KEY( curve ); - psa_key_type_t pair_type = PSA_KEY_TYPE_ECC_KEY_PAIR( curve ); + psa_key_type_t public_type = PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve); + psa_key_type_t pair_type = PSA_KEY_TYPE_ECC_KEY_PAIR(curve); - TEST_PARITY( curve ); + TEST_PARITY(curve); - test_key_type( public_type, KEY_TYPE_IS_ECC | KEY_TYPE_IS_PUBLIC_KEY ); - test_key_type( pair_type, KEY_TYPE_IS_ECC | KEY_TYPE_IS_KEY_PAIR ); + test_key_type(public_type, KEY_TYPE_IS_ECC | KEY_TYPE_IS_PUBLIC_KEY); + test_key_type(pair_type, KEY_TYPE_IS_ECC | KEY_TYPE_IS_KEY_PAIR); - TEST_EQUAL( PSA_KEY_TYPE_ECC_GET_FAMILY( public_type ), curve ); - TEST_EQUAL( PSA_KEY_TYPE_ECC_GET_FAMILY( pair_type ), curve ); + TEST_EQUAL(PSA_KEY_TYPE_ECC_GET_FAMILY(public_type), curve); + TEST_EQUAL(PSA_KEY_TYPE_ECC_GET_FAMILY(pair_type), curve); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_DHM_C */ -void dh_key_family( int group_arg ) +void dh_key_family(int group_arg) { psa_dh_family_t group = group_arg; - psa_key_type_t public_type = PSA_KEY_TYPE_DH_PUBLIC_KEY( group ); - psa_key_type_t pair_type = PSA_KEY_TYPE_DH_KEY_PAIR( group ); + psa_key_type_t public_type = PSA_KEY_TYPE_DH_PUBLIC_KEY(group); + psa_key_type_t pair_type = PSA_KEY_TYPE_DH_KEY_PAIR(group); - TEST_PARITY( group ); + TEST_PARITY(group); - test_key_type( public_type, KEY_TYPE_IS_DH | KEY_TYPE_IS_PUBLIC_KEY ); - test_key_type( pair_type, KEY_TYPE_IS_DH | KEY_TYPE_IS_KEY_PAIR ); + test_key_type(public_type, KEY_TYPE_IS_DH | KEY_TYPE_IS_PUBLIC_KEY); + test_key_type(pair_type, KEY_TYPE_IS_DH | KEY_TYPE_IS_KEY_PAIR); - TEST_EQUAL( PSA_KEY_TYPE_DH_GET_FAMILY( public_type ), group ); - TEST_EQUAL( PSA_KEY_TYPE_DH_GET_FAMILY( pair_type ), group ); + TEST_EQUAL(PSA_KEY_TYPE_DH_GET_FAMILY(public_type), group); + TEST_EQUAL(PSA_KEY_TYPE_DH_GET_FAMILY(pair_type), group); } /* END_CASE */ /* BEGIN_CASE */ -void lifetime( int lifetime_arg, int classification_flags, - int persistence_arg, int location_arg ) +void lifetime(int lifetime_arg, int classification_flags, + int persistence_arg, int location_arg) { psa_key_lifetime_t lifetime = lifetime_arg; psa_key_persistence_t persistence = persistence_arg; @@ -732,12 +726,12 @@ void lifetime( int lifetime_arg, int classification_flags, unsigned flags = classification_flags; unsigned classification_flags_tested = 0; - TEST_CLASSIFICATION_MACRO( 1, KEY_LIFETIME_IS_VOLATILE, lifetime, flags ); - TEST_CLASSIFICATION_MACRO( 1, KEY_LIFETIME_IS_READ_ONLY, lifetime, flags ); - TEST_EQUAL( classification_flags_tested, - KEY_LIFETIME_FLAG_MASK_PLUS_ONE - 1 ); + TEST_CLASSIFICATION_MACRO(1, KEY_LIFETIME_IS_VOLATILE, lifetime, flags); + TEST_CLASSIFICATION_MACRO(1, KEY_LIFETIME_IS_READ_ONLY, lifetime, flags); + TEST_EQUAL(classification_flags_tested, + KEY_LIFETIME_FLAG_MASK_PLUS_ONE - 1); - TEST_EQUAL( PSA_KEY_LIFETIME_GET_PERSISTENCE( lifetime ), persistence ); - TEST_EQUAL( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ), location ); + TEST_EQUAL(PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime), persistence); + TEST_EQUAL(PSA_KEY_LIFETIME_GET_LOCATION(lifetime), location); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_not_supported.function b/tests/suites/test_suite_psa_crypto_not_supported.function index e3253d840..e5e66f482 100644 --- a/tests/suites/test_suite_psa_crypto_not_supported.function +++ b/tests/suites/test_suite_psa_crypto_not_supported.function @@ -3,7 +3,7 @@ #include "psa/crypto.h" #include "test/psa_crypto_helpers.h" -#define INVALID_KEY_ID mbedtls_svc_key_id_make( 0, 0xfedcba98 ) +#define INVALID_KEY_ID mbedtls_svc_key_id_make(0, 0xfedcba98) /* END_HEADER */ @@ -13,40 +13,40 @@ */ /* BEGIN_CASE */ -void import_not_supported( int key_type, data_t *key_material ) +void import_not_supported(int key_type, data_t *key_material) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = INVALID_KEY_ID; - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_type( &attributes, key_type ); - TEST_EQUAL( psa_import_key( &attributes, - key_material->x, key_material->len, - &key_id ), - PSA_ERROR_NOT_SUPPORTED ); - TEST_ASSERT( mbedtls_svc_key_id_equal( key_id, MBEDTLS_SVC_KEY_ID_INIT ) ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_type(&attributes, key_type); + TEST_EQUAL(psa_import_key(&attributes, + key_material->x, key_material->len, + &key_id), + PSA_ERROR_NOT_SUPPORTED); + TEST_ASSERT(mbedtls_svc_key_id_equal(key_id, MBEDTLS_SVC_KEY_ID_INIT)); exit: - psa_destroy_key( key_id ); - PSA_DONE( ); + psa_destroy_key(key_id); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void generate_not_supported( int key_type, int bits ) +void generate_not_supported(int key_type, int bits) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = INVALID_KEY_ID; - PSA_ASSERT( psa_crypto_init( ) ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, bits ); - TEST_EQUAL( psa_generate_key( &attributes, &key_id ), - PSA_ERROR_NOT_SUPPORTED ); - TEST_ASSERT( mbedtls_svc_key_id_equal( key_id, MBEDTLS_SVC_KEY_ID_INIT ) ); + PSA_ASSERT(psa_crypto_init()); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, bits); + TEST_EQUAL(psa_generate_key(&attributes, &key_id), + PSA_ERROR_NOT_SUPPORTED); + TEST_ASSERT(mbedtls_svc_key_id_equal(key_id, MBEDTLS_SVC_KEY_ID_INIT)); exit: - psa_destroy_key( key_id ); - PSA_DONE( ); + psa_destroy_key(key_id); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_op_fail.function b/tests/suites/test_suite_psa_crypto_op_fail.function index 8b50f1029..046e3c3a0 100644 --- a/tests/suites/test_suite_psa_crypto_op_fail.function +++ b/tests/suites/test_suite_psa_crypto_op_fail.function @@ -3,19 +3,18 @@ #include "psa/crypto.h" #include "test/psa_crypto_helpers.h" -static int test_equal_status( const char *test, - int line_no, const char* filename, - psa_status_t value1, - psa_status_t value2 ) +static int test_equal_status(const char *test, + int line_no, const char *filename, + psa_status_t value1, + psa_status_t value2) { - if( ( value1 == PSA_ERROR_INVALID_ARGUMENT && - value2 == PSA_ERROR_NOT_SUPPORTED ) || - ( value1 == PSA_ERROR_NOT_SUPPORTED && - value2 == PSA_ERROR_INVALID_ARGUMENT ) ) - { - return( 1 ); + if ((value1 == PSA_ERROR_INVALID_ARGUMENT && + value2 == PSA_ERROR_NOT_SUPPORTED) || + (value1 == PSA_ERROR_NOT_SUPPORTED && + value2 == PSA_ERROR_INVALID_ARGUMENT)) { + return 1; } - return( mbedtls_test_equal( test, line_no, filename, value1, value2 ) ); + return mbedtls_test_equal(test, line_no, filename, value1, value2); } /** Like #TEST_EQUAL, but expects #psa_status_t values and treats @@ -28,12 +27,12 @@ static int test_equal_status( const char *test, * run, it would be better to clarify the expectations and reconcile the * library and the test case generator. */ -#define TEST_STATUS( expr1, expr2 ) \ +#define TEST_STATUS(expr1, expr2) \ do { \ - if( ! test_equal_status( #expr1 " == " #expr2, __LINE__, __FILE__, \ - expr1, expr2 ) ) \ - goto exit; \ - } while( 0 ) + if (!test_equal_status( #expr1 " == " #expr2, __LINE__, __FILE__, \ + expr1, expr2)) \ + goto exit; \ + } while (0) /* END_HEADER */ @@ -43,35 +42,35 @@ static int test_equal_status( const char *test, */ /* BEGIN_CASE */ -void hash_fail( int alg_arg, int expected_status_arg ) +void hash_fail(int alg_arg, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_algorithm_t alg = alg_arg; psa_hash_operation_t operation = PSA_HASH_OPERATION_INIT; - uint8_t input[1] = {'A'}; - uint8_t output[PSA_HASH_MAX_SIZE] = {0}; + uint8_t input[1] = { 'A' }; + uint8_t output[PSA_HASH_MAX_SIZE] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - TEST_EQUAL( expected_status, - psa_hash_setup( &operation, alg ) ); - TEST_EQUAL( expected_status, - psa_hash_compute( alg, input, sizeof( input ), - output, sizeof( output ), &length ) ); - TEST_EQUAL( expected_status, - psa_hash_compare( alg, input, sizeof( input ), - output, sizeof( output ) ) ); + TEST_EQUAL(expected_status, + psa_hash_setup(&operation, alg)); + TEST_EQUAL(expected_status, + psa_hash_compute(alg, input, sizeof(input), + output, sizeof(output), &length)); + TEST_EQUAL(expected_status, + psa_hash_compare(alg, input, sizeof(input), + output, sizeof(output))); exit: - psa_hash_abort( &operation ); - PSA_DONE( ); + psa_hash_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void mac_fail( int key_type_arg, data_t *key_data, - int alg_arg, int expected_status_arg ) +void mac_fail(int key_type_arg, data_t *key_data, + int alg_arg, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; @@ -79,45 +78,45 @@ void mac_fail( int key_type_arg, data_t *key_data, psa_mac_operation_t operation = PSA_MAC_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; - uint8_t input[1] = {'A'}; - uint8_t output[PSA_MAC_MAX_SIZE] = {0}; + uint8_t input[1] = { 'A' }; + uint8_t output[PSA_MAC_MAX_SIZE] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_SIGN_HASH | - PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_SIGN_HASH | + PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); - TEST_STATUS( expected_status, - psa_mac_sign_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_mac_verify_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_mac_compute( key_id, alg, - input, sizeof( input ), - output, sizeof( output ), &length ) ); - TEST_STATUS( expected_status, - psa_mac_verify( key_id, alg, - input, sizeof( input ), - output, sizeof( output ) ) ); + TEST_STATUS(expected_status, + psa_mac_sign_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_mac_verify_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_mac_compute(key_id, alg, + input, sizeof(input), + output, sizeof(output), &length)); + TEST_STATUS(expected_status, + psa_mac_verify(key_id, alg, + input, sizeof(input), + output, sizeof(output))); exit: - psa_mac_abort( &operation ); - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_mac_abort(&operation); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void cipher_fail( int key_type_arg, data_t *key_data, - int alg_arg, int expected_status_arg ) +void cipher_fail(int key_type_arg, data_t *key_data, + int alg_arg, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; @@ -125,45 +124,45 @@ void cipher_fail( int key_type_arg, data_t *key_data, psa_cipher_operation_t operation = PSA_CIPHER_OPERATION_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; - uint8_t input[1] = {'A'}; - uint8_t output[64] = {0}; + uint8_t input[1] = { 'A' }; + uint8_t output[64] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | - PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | + PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); - TEST_STATUS( expected_status, - psa_cipher_encrypt_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_cipher_decrypt_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_cipher_encrypt( key_id, alg, - input, sizeof( input ), - output, sizeof( output ), &length ) ); - TEST_STATUS( expected_status, - psa_cipher_decrypt( key_id, alg, - input, sizeof( input ), - output, sizeof( output ), &length ) ); + TEST_STATUS(expected_status, + psa_cipher_encrypt_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_cipher_decrypt_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_cipher_encrypt(key_id, alg, + input, sizeof(input), + output, sizeof(output), &length)); + TEST_STATUS(expected_status, + psa_cipher_decrypt(key_id, alg, + input, sizeof(input), + output, sizeof(output), &length)); exit: - psa_cipher_abort( &operation ); - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_cipher_abort(&operation); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void aead_fail( int key_type_arg, data_t *key_data, - int alg_arg, int expected_status_arg ) +void aead_fail(int key_type_arg, data_t *key_data, + int alg_arg, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; @@ -172,219 +171,217 @@ void aead_fail( int key_type_arg, data_t *key_data, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; uint8_t input[16] = "ABCDEFGHIJKLMNO"; - uint8_t output[64] = {0}; + uint8_t output[64] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | - PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | + PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); - TEST_STATUS( expected_status, - psa_aead_encrypt_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_aead_decrypt_setup( &operation, key_id, alg ) ); - TEST_STATUS( expected_status, - psa_aead_encrypt( key_id, alg, - input, sizeof( input ), - NULL, 0, input, sizeof( input ), - output, sizeof( output ), &length ) ); - TEST_STATUS( expected_status, - psa_aead_decrypt( key_id, alg, - input, sizeof( input ), - NULL, 0, input, sizeof( input ), - output, sizeof( output ), &length ) ); + TEST_STATUS(expected_status, + psa_aead_encrypt_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_aead_decrypt_setup(&operation, key_id, alg)); + TEST_STATUS(expected_status, + psa_aead_encrypt(key_id, alg, + input, sizeof(input), + NULL, 0, input, sizeof(input), + output, sizeof(output), &length)); + TEST_STATUS(expected_status, + psa_aead_decrypt(key_id, alg, + input, sizeof(input), + NULL, 0, input, sizeof(input), + output, sizeof(output), &length)); exit: - psa_aead_abort( &operation ); - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_aead_abort(&operation); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_fail( int key_type_arg, data_t *key_data, - int alg_arg, int private_only, - int expected_status_arg ) +void sign_fail(int key_type_arg, data_t *key_data, + int alg_arg, int private_only, + int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; - uint8_t input[1] = {'A'}; - uint8_t output[PSA_SIGNATURE_MAX_SIZE] = {0}; + uint8_t input[1] = { 'A' }; + uint8_t output[PSA_SIGNATURE_MAX_SIZE] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_SIGN_HASH | - PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_SIGN_HASH | + PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); - TEST_STATUS( expected_status, - psa_sign_hash( key_id, alg, - input, sizeof( input ), - output, sizeof( output ), &length ) ); - if( ! private_only ) - { + TEST_STATUS(expected_status, + psa_sign_hash(key_id, alg, + input, sizeof(input), + output, sizeof(output), &length)); + if (!private_only) { /* Determine a plausible signature size to avoid an INVALID_SIGNATURE * error based on this. */ - PSA_ASSERT( psa_get_key_attributes( key_id, &attributes ) ); - size_t key_bits = psa_get_key_bits( &attributes ); - size_t output_length = sizeof( output ); - if( PSA_KEY_TYPE_IS_RSA( key_type ) ) - output_length = PSA_BITS_TO_BYTES( key_bits ); - else if( PSA_KEY_TYPE_IS_ECC( key_type ) ) - output_length = 2 * PSA_BITS_TO_BYTES( key_bits ); - TEST_ASSERT( output_length <= sizeof( output ) ); - TEST_STATUS( expected_status, - psa_verify_hash( key_id, alg, - input, sizeof( input ), - output, output_length ) ); + PSA_ASSERT(psa_get_key_attributes(key_id, &attributes)); + size_t key_bits = psa_get_key_bits(&attributes); + size_t output_length = sizeof(output); + if (PSA_KEY_TYPE_IS_RSA(key_type)) { + output_length = PSA_BITS_TO_BYTES(key_bits); + } else if (PSA_KEY_TYPE_IS_ECC(key_type)) { + output_length = 2 * PSA_BITS_TO_BYTES(key_bits); + } + TEST_ASSERT(output_length <= sizeof(output)); + TEST_STATUS(expected_status, + psa_verify_hash(key_id, alg, + input, sizeof(input), + output, output_length)); } exit: - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void asymmetric_encryption_fail( int key_type_arg, data_t *key_data, - int alg_arg, int private_only, - int expected_status_arg ) +void asymmetric_encryption_fail(int key_type_arg, data_t *key_data, + int alg_arg, int private_only, + int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; - uint8_t plaintext[PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE] = {0}; - uint8_t ciphertext[PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE] = {0}; + uint8_t plaintext[PSA_ASYMMETRIC_DECRYPT_OUTPUT_MAX_SIZE] = { 0 }; + uint8_t ciphertext[PSA_ASYMMETRIC_ENCRYPT_OUTPUT_MAX_SIZE] = { 0 }; size_t length = SIZE_MAX; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_ENCRYPT | - PSA_KEY_USAGE_DECRYPT ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_ENCRYPT | + PSA_KEY_USAGE_DECRYPT); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); - if( ! private_only ) - { - TEST_STATUS( expected_status, - psa_asymmetric_encrypt( key_id, alg, - plaintext, 1, - NULL, 0, - ciphertext, sizeof( ciphertext ), - &length ) ); + if (!private_only) { + TEST_STATUS(expected_status, + psa_asymmetric_encrypt(key_id, alg, + plaintext, 1, + NULL, 0, + ciphertext, sizeof(ciphertext), + &length)); } - TEST_STATUS( expected_status, - psa_asymmetric_decrypt( key_id, alg, - ciphertext, sizeof( ciphertext ), - NULL, 0, - plaintext, sizeof( plaintext ), - &length ) ); + TEST_STATUS(expected_status, + psa_asymmetric_decrypt(key_id, alg, + ciphertext, sizeof(ciphertext), + NULL, 0, + plaintext, sizeof(plaintext), + &length)); exit: - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_derivation_fail( int alg_arg, int expected_status_arg ) +void key_derivation_fail(int alg_arg, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_algorithm_t alg = alg_arg; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - PSA_INIT( ); + PSA_INIT(); - TEST_EQUAL( expected_status, - psa_key_derivation_setup( &operation, alg ) ); + TEST_EQUAL(expected_status, + psa_key_derivation_setup(&operation, alg)); exit: - psa_key_derivation_abort( &operation ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_agreement_fail( int key_type_arg, data_t *key_data, - int alg_arg, int private_only, - int expected_status_arg ) +void key_agreement_fail(int key_type_arg, data_t *key_data, + int alg_arg, int private_only, + int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_key_type_t key_type = key_type_arg; psa_algorithm_t alg = alg_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; - uint8_t public_key[PSA_EXPORT_PUBLIC_KEY_MAX_SIZE] = {0}; + uint8_t public_key[PSA_EXPORT_PUBLIC_KEY_MAX_SIZE] = { 0 }; size_t public_key_length = SIZE_MAX; - uint8_t output[PSA_SIGNATURE_MAX_SIZE] = {0}; + uint8_t output[PSA_SIGNATURE_MAX_SIZE] = { 0 }; size_t length = SIZE_MAX; psa_key_derivation_operation_t operation = PSA_KEY_DERIVATION_OPERATION_INIT; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_type( &attributes, key_type ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - PSA_ASSERT( psa_import_key( &attributes, - key_data->x, key_data->len, - &key_id ) ); - if( PSA_KEY_TYPE_IS_KEY_PAIR( key_type ) || - PSA_KEY_TYPE_IS_PUBLIC_KEY( key_type ) ) - { - PSA_ASSERT( psa_export_public_key( key_id, - public_key, sizeof( public_key ), - &public_key_length ) ); + psa_set_key_type(&attributes, key_type); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + PSA_ASSERT(psa_import_key(&attributes, + key_data->x, key_data->len, + &key_id)); + if (PSA_KEY_TYPE_IS_KEY_PAIR(key_type) || + PSA_KEY_TYPE_IS_PUBLIC_KEY(key_type)) { + PSA_ASSERT(psa_export_public_key(key_id, + public_key, sizeof(public_key), + &public_key_length)); } - TEST_STATUS( expected_status, - psa_raw_key_agreement( alg, key_id, - public_key, public_key_length, - output, sizeof( output ), &length ) ); + TEST_STATUS(expected_status, + psa_raw_key_agreement(alg, key_id, + public_key, public_key_length, + output, sizeof(output), &length)); #if defined(PSA_WANT_ALG_HKDF) && defined(PSA_WANT_ALG_SHA_256) - PSA_ASSERT( psa_key_derivation_setup( &operation, - PSA_ALG_HKDF( PSA_ALG_SHA_256 ) ) ); - TEST_STATUS( expected_status, - psa_key_derivation_key_agreement( - &operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key_id, - public_key, public_key_length ) ); + PSA_ASSERT(psa_key_derivation_setup(&operation, + PSA_ALG_HKDF(PSA_ALG_SHA_256))); + TEST_STATUS(expected_status, + psa_key_derivation_key_agreement( + &operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key_id, + public_key, public_key_length)); #endif /* There are no public-key operations. */ (void) private_only; exit: - psa_key_derivation_abort( &operation ); - psa_destroy_key( key_id ); - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_key_derivation_abort(&operation); + psa_destroy_key(key_id); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_pake.function b/tests/suites/test_suite_psa_crypto_pake.function index 4f000c13a..4dffa3b9d 100644 --- a/tests/suites/test_suite_psa_crypto_pake.function +++ b/tests/suites/test_suite_psa_crypto_pake.function @@ -3,8 +3,7 @@ #include "psa/crypto.h" -typedef enum -{ +typedef enum { ERR_NONE = 0, /* errors forced internally in the code */ ERR_INJECT_UNINITIALIZED_ACCESS, @@ -46,8 +45,7 @@ typedef enum ERR_IN_OUTPUT, } ecjpake_error_stage_t; -typedef enum -{ +typedef enum { PAKE_ROUND_ONE, PAKE_ROUND_TWO } pake_round_t; @@ -57,37 +55,37 @@ typedef enum * Offset 7 is arbitrary, but chosen because it's "in the middle" of the part * we're corrupting. */ -#define DO_ROUND_CONDITIONAL_INJECT( this_stage, buf ) \ - if ( this_stage == err_stage ) \ +#define DO_ROUND_CONDITIONAL_INJECT(this_stage, buf) \ + if (this_stage == err_stage) \ { \ - *( buf + 7) ^= 1; \ + *(buf + 7) ^= 1; \ } -#define DO_ROUND_UPDATE_OFFSETS( main_buf_offset, step_offset, step_size ) \ +#define DO_ROUND_UPDATE_OFFSETS(main_buf_offset, step_offset, step_size) \ { \ step_offset = main_buf_offset; \ main_buf_offset += step_size; \ } -#define DO_ROUND_CHECK_FAILURE( ) \ - if( err_stage != ERR_NONE && status != PSA_SUCCESS ) \ +#define DO_ROUND_CHECK_FAILURE() \ + if (err_stage != ERR_NONE && status != PSA_SUCCESS) \ { \ - TEST_EQUAL( status, expected_error_arg ); \ + TEST_EQUAL(status, expected_error_arg); \ break; \ } \ else \ { \ - TEST_EQUAL( status, PSA_SUCCESS ); \ + TEST_EQUAL(status, PSA_SUCCESS); \ } #if defined(PSA_WANT_ALG_JPAKE) -static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, - psa_pake_operation_t *server, - psa_pake_operation_t *client, - int client_input_first, - pake_round_t round, - ecjpake_error_stage_t err_stage, - int expected_error_arg ) +static void ecjpake_do_round(psa_algorithm_t alg, unsigned int primitive, + psa_pake_operation_t *server, + psa_pake_operation_t *client, + int client_input_first, + pake_round_t round, + ecjpake_error_stage_t err_stage, + int expected_error_arg) { unsigned char *buffer0 = NULL, *buffer1 = NULL; size_t buffer_length = ( @@ -119,66 +117,65 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, size_t c_x1_pr_off, c_x2_pr_off, c_x2s_pr_off; psa_status_t status; - ASSERT_ALLOC( buffer0, buffer_length ); - ASSERT_ALLOC( buffer1, buffer_length ); + ASSERT_ALLOC(buffer0, buffer_length); + ASSERT_ALLOC(buffer1, buffer_length); - switch( round ) - { + switch (round) { case PAKE_ROUND_ONE: /* Server first round Output */ - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g1_len ) ); - TEST_EQUAL( s_g1_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g1_len)); + TEST_EQUAL(s_g1_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_g1_off, s_g1_len ); + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_g1_off, s_g1_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pk_len ) ); - TEST_EQUAL( s_x1_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pk_len)); + TEST_EQUAL(s_x1_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x1_pk_off, s_x1_pk_len ); + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART1, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x1_pk_off, s_x1_pk_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x1_pr_len ) ); - TEST_LE_U( s_x1_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x1_pr_len)); + TEST_LE_U(s_x1_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x1_pr_off, s_x1_pr_len ); + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART1, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x1_pr_off, s_x1_pr_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_g2_len ) ); - TEST_EQUAL( s_g2_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_g2_len)); + TEST_EQUAL(s_g2_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_g2_off, s_g2_len ); + ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART2, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_g2_off, s_g2_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pk_len ) ); - TEST_EQUAL( s_x2_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pk_len)); + TEST_EQUAL(s_x2_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2_pk_off, s_x2_pk_len ); + ERR_INJECT_ROUND1_SERVER_ZK_PUBLIC_PART2, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x2_pk_off, s_x2_pk_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2_pr_len ) ); - TEST_LE_U( s_x2_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2_pr_len)); + TEST_LE_U(s_x2_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2_pr_off, s_x2_pr_len ); + ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x2_pr_off, s_x2_pr_len); /* * When injecting errors in inputs, the implementation is @@ -187,171 +184,169 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, * sequence, if no error appears then, this will be treated * as an error. */ - if( client_input_first == 1 ) - { + if (client_input_first == 1) { /* Client first round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1 ) && - ( err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2 ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1) && + (err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } } /* Client first round Output */ - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g1_len ) ); - TEST_EQUAL( c_g1_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g1_len)); + TEST_EQUAL(c_g1_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_g1_off, c_g1_len ); + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_g1_off, c_g1_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pk_len ) ); - TEST_EQUAL( c_x1_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pk_len)); + TEST_EQUAL(c_x1_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x1_pk_off, c_x1_pk_len ); + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART1, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x1_pk_off, c_x1_pk_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x1_pr_len ) ); - TEST_LE_U( c_x1_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x1_pr_len)); + TEST_LE_U(c_x1_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x1_pr_off, c_x1_pr_len ); + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART1, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x1_pr_off, c_x1_pr_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_g2_len ) ); - TEST_EQUAL( c_g2_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_g2_len)); + TEST_EQUAL(c_g2_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_g2_off, c_g2_len ); + ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART2, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_g2_off, c_g2_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pk_len ) ); - TEST_EQUAL( c_x2_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pk_len)); + TEST_EQUAL(c_x2_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2_pk_off, c_x2_pk_len ); + ERR_INJECT_ROUND1_CLIENT_ZK_PUBLIC_PART2, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x2_pk_off, c_x2_pk_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2_pr_len ) ); - TEST_LE_U( c_x2_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2_pr_len)); + TEST_LE_U(c_x2_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2_pr_off, buffer1_off ); + ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x2_pr_off, buffer1_off); - if( client_input_first == 0 ) - { + if (client_input_first == 0) { /* Client first round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g1_off, s_g1_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g1_off, s_g1_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x1_pk_off, - s_x1_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x1_pk_off, + s_x1_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x1_pr_off, - s_x1_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x1_pr_off, + s_x1_pr_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_g2_off, - s_g2_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_g2_off, + s_g2_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2_pk_off, - s_x2_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2_pk_off, + s_x2_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2_pr_off, - s_x2_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2_pr_off, + s_x2_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1 ) && - ( err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2 ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND1_SERVER_KEY_SHARE_PART1) && + (err_stage <= ERR_INJECT_ROUND1_SERVER_ZK_PROOF_PART2)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } } /* Server first round Input */ - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g1_off, c_g1_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g1_off, c_g1_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x1_pk_off, c_x1_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x1_pk_off, c_x1_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x1_pr_off, c_x1_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x1_pr_off, c_x1_pr_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_g2_off, c_g2_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_g2_off, c_g2_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2_pk_off, c_x2_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2_pk_off, c_x2_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2_pr_off, c_x2_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2_pr_off, c_x2_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1 ) && - ( err_stage <= ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2 ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND1_CLIENT_KEY_SHARE_PART1) && + (err_stage <= ERR_INJECT_ROUND1_CLIENT_ZK_PROOF_PART2)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } break; @@ -360,131 +355,129 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, /* Server second round Output */ buffer0_off = 0; - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_a_len ) ); - TEST_EQUAL( s_a_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_a_len)); + TEST_EQUAL(s_a_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_SERVER_KEY_SHARE, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_a_off, s_a_len ); + ERR_INJECT_ROUND2_SERVER_KEY_SHARE, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_a_off, s_a_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pk_len ) ); - TEST_EQUAL( s_x2s_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pk_len)); + TEST_EQUAL(s_x2s_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2s_pk_off, s_x2s_pk_len ); + ERR_INJECT_ROUND2_SERVER_ZK_PUBLIC, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x2s_pk_off, s_x2s_pk_len); - PSA_ASSERT( psa_pake_output( server, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + buffer0_off, - 512 - buffer0_off, &s_x2s_pr_len ) ); - TEST_LE_U( s_x2s_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(server, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + buffer0_off, + 512 - buffer0_off, &s_x2s_pr_len)); + TEST_LE_U(s_x2s_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_SERVER_ZK_PROOF, - buffer0 + buffer0_off ); - DO_ROUND_UPDATE_OFFSETS( buffer0_off, s_x2s_pr_off, s_x2s_pr_len ); + ERR_INJECT_ROUND2_SERVER_ZK_PROOF, + buffer0 + buffer0_off); + DO_ROUND_UPDATE_OFFSETS(buffer0_off, s_x2s_pr_off, s_x2s_pr_len); - if( client_input_first == 1 ) - { + if (client_input_first == 1) { /* Client second round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE ) && - ( err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE) && + (err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } } /* Client second round Output */ buffer1_off = 0; - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_a_len ) ); - TEST_EQUAL( c_a_len, expected_size_key_share ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_a_len)); + TEST_EQUAL(c_a_len, expected_size_key_share); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_CLIENT_KEY_SHARE, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_a_off, c_a_len ); + ERR_INJECT_ROUND2_CLIENT_KEY_SHARE, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_a_off, c_a_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pk_len ) ); - TEST_EQUAL( c_x2s_pk_len, expected_size_zk_public ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pk_len)); + TEST_EQUAL(c_x2s_pk_len, expected_size_zk_public); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2s_pk_off, c_x2s_pk_len ); + ERR_INJECT_ROUND2_CLIENT_ZK_PUBLIC, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x2s_pk_off, c_x2s_pk_len); - PSA_ASSERT( psa_pake_output( client, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + buffer1_off, - 512 - buffer1_off, &c_x2s_pr_len ) ); - TEST_LE_U( c_x2s_pr_len, max_expected_size_zk_proof ); + PSA_ASSERT(psa_pake_output(client, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + buffer1_off, + 512 - buffer1_off, &c_x2s_pr_len)); + TEST_LE_U(c_x2s_pr_len, max_expected_size_zk_proof); DO_ROUND_CONDITIONAL_INJECT( - ERR_INJECT_ROUND2_CLIENT_ZK_PROOF, - buffer1 + buffer1_off ); - DO_ROUND_UPDATE_OFFSETS( buffer1_off, c_x2s_pr_off, c_x2s_pr_len ); + ERR_INJECT_ROUND2_CLIENT_ZK_PROOF, + buffer1 + buffer1_off); + DO_ROUND_UPDATE_OFFSETS(buffer1_off, c_x2s_pr_off, c_x2s_pr_len); - if( client_input_first == 0 ) - { + if (client_input_first == 0) { /* Client second round Input */ - status = psa_pake_input( client, PSA_PAKE_STEP_KEY_SHARE, - buffer0 + s_a_off, s_a_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_KEY_SHARE, + buffer0 + s_a_off, s_a_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PUBLIC, - buffer0 + s_x2s_pk_off, - s_x2s_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PUBLIC, + buffer0 + s_x2s_pk_off, + s_x2s_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( client, PSA_PAKE_STEP_ZK_PROOF, - buffer0 + s_x2s_pr_off, - s_x2s_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(client, PSA_PAKE_STEP_ZK_PROOF, + buffer0 + s_x2s_pr_off, + s_x2s_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE ) && - ( err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND2_SERVER_KEY_SHARE) && + (err_stage <= ERR_INJECT_ROUND2_SERVER_ZK_PROOF)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } } /* Server second round Input */ - status = psa_pake_input( server, PSA_PAKE_STEP_KEY_SHARE, - buffer1 + c_a_off, c_a_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_KEY_SHARE, + buffer1 + c_a_off, c_a_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PUBLIC, - buffer1 + c_x2s_pk_off, c_x2s_pk_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PUBLIC, + buffer1 + c_x2s_pk_off, c_x2s_pk_len); + DO_ROUND_CHECK_FAILURE(); - status = psa_pake_input( server, PSA_PAKE_STEP_ZK_PROOF, - buffer1 + c_x2s_pr_off, c_x2s_pr_len ); - DO_ROUND_CHECK_FAILURE( ); + status = psa_pake_input(server, PSA_PAKE_STEP_ZK_PROOF, + buffer1 + c_x2s_pr_off, c_x2s_pr_len); + DO_ROUND_CHECK_FAILURE(); /* Error didn't trigger, make test fail */ - if( ( err_stage >= ERR_INJECT_ROUND2_CLIENT_KEY_SHARE ) && - ( err_stage <= ERR_INJECT_ROUND2_CLIENT_ZK_PROOF ) ) - { - TEST_ASSERT( ! "One of the last psa_pake_input() calls should have returned the expected error." ); + if ((err_stage >= ERR_INJECT_ROUND2_CLIENT_KEY_SHARE) && + (err_stage <= ERR_INJECT_ROUND2_CLIENT_ZK_PROOF)) { + TEST_ASSERT( + !"One of the last psa_pake_input() calls should have returned the expected error."); } break; @@ -492,8 +485,8 @@ static void ecjpake_do_round( psa_algorithm_t alg, unsigned int primitive, } exit: - mbedtls_free( buffer0 ); - mbedtls_free( buffer1 ); + mbedtls_free(buffer0); + mbedtls_free(buffer1); } #endif /* PSA_WANT_ALG_JPAKE */ @@ -507,15 +500,15 @@ exit: * - terminated with failure otherwise (either no error was expected at this * stage or a different error code was expected) */ -#define SETUP_ALWAYS_CHECK_STEP( test_function, this_check_err_stage ) \ +#define SETUP_ALWAYS_CHECK_STEP(test_function, this_check_err_stage) \ status = test_function; \ - if( err_stage != this_check_err_stage ) \ + if (err_stage != this_check_err_stage) \ { \ - PSA_ASSERT( status ); \ + PSA_ASSERT(status); \ } \ else \ { \ - TEST_EQUAL( status, expected_error ); \ + TEST_EQUAL(status, expected_error); \ goto exit; \ } @@ -529,10 +522,10 @@ exit: * The test succeeds if the returned error is exactly the expected one, * otherwise it fails. */ -#define SETUP_CONDITIONAL_CHECK_STEP( test_function, this_check_err_stage ) \ - if( err_stage == this_check_err_stage ) \ +#define SETUP_CONDITIONAL_CHECK_STEP(test_function, this_check_err_stage) \ + if (err_stage == this_check_err_stage) \ { \ - TEST_EQUAL( test_function, expected_error ); \ + TEST_EQUAL(test_function, expected_error); \ goto exit; \ } /* END_HEADER */ @@ -543,11 +536,11 @@ exit: */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, - int primitive_arg, int hash_arg, int role_arg, - int test_input, - int err_stage_arg, - int expected_error_arg) +void ecjpake_setup(int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, + int primitive_arg, int hash_arg, int role_arg, + int test_input, + int err_stage_arg, + int expected_error_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t operation = psa_pake_operation_init(); @@ -567,161 +560,159 @@ void ecjpake_setup( int alg_arg, int key_type_pw_arg, int key_usage_pw_arg, const uint8_t unsupp_id[] = "abcd"; const uint8_t password[] = "abcd"; psa_key_derivation_operation_t key_derivation = - PSA_KEY_DERIVATION_OPERATION_INIT; + PSA_KEY_DERIVATION_OPERATION_INIT; - PSA_INIT( ); + PSA_INIT(); - size_t buf_size = PSA_PAKE_OUTPUT_SIZE( alg, primitive_arg, - PSA_PAKE_STEP_KEY_SHARE ); - ASSERT_ALLOC( output_buffer, buf_size ); + size_t buf_size = PSA_PAKE_OUTPUT_SIZE(alg, primitive_arg, + PSA_PAKE_STEP_KEY_SHARE); + ASSERT_ALLOC(output_buffer, buf_size); - psa_set_key_usage_flags( &attributes, key_usage_pw ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type_pw ); - PSA_ASSERT( psa_import_key( &attributes, password, sizeof( password ), - &key ) ); + psa_set_key_usage_flags(&attributes, key_usage_pw); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type_pw); + PSA_ASSERT(psa_import_key(&attributes, password, sizeof(password), + &key)); - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); - PSA_ASSERT( psa_pake_abort( &operation ) ); + PSA_ASSERT(psa_pake_abort(&operation)); - if ( err_stage == ERR_INJECT_UNINITIALIZED_ACCESS ) - { - TEST_EQUAL( psa_pake_set_user( &operation, NULL, 0 ), - expected_error ); - TEST_EQUAL( psa_pake_set_peer( &operation, NULL, 0 ), - expected_error ); - TEST_EQUAL( psa_pake_set_password_key( &operation, key ), - expected_error ); - TEST_EQUAL( psa_pake_set_role( &operation, role ), - expected_error ); - TEST_EQUAL( psa_pake_output( &operation, PSA_PAKE_STEP_KEY_SHARE, - NULL, 0, NULL ), - expected_error ); - TEST_EQUAL( psa_pake_input( &operation, PSA_PAKE_STEP_KEY_SHARE, - NULL, 0 ), - expected_error ); - TEST_EQUAL( psa_pake_get_implicit_key( &operation, &key_derivation ), - expected_error ); + if (err_stage == ERR_INJECT_UNINITIALIZED_ACCESS) { + TEST_EQUAL(psa_pake_set_user(&operation, NULL, 0), + expected_error); + TEST_EQUAL(psa_pake_set_peer(&operation, NULL, 0), + expected_error); + TEST_EQUAL(psa_pake_set_password_key(&operation, key), + expected_error); + TEST_EQUAL(psa_pake_set_role(&operation, role), + expected_error); + TEST_EQUAL(psa_pake_output(&operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0, NULL), + expected_error); + TEST_EQUAL(psa_pake_input(&operation, PSA_PAKE_STEP_KEY_SHARE, + NULL, 0), + expected_error); + TEST_EQUAL(psa_pake_get_implicit_key(&operation, &key_derivation), + expected_error); goto exit; } - SETUP_ALWAYS_CHECK_STEP( psa_pake_setup( &operation, &cipher_suite ), - ERR_IN_SETUP ); + SETUP_ALWAYS_CHECK_STEP(psa_pake_setup(&operation, &cipher_suite), + ERR_IN_SETUP); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_setup( &operation, &cipher_suite ), - ERR_INJECT_DUPLICATE_SETUP); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_setup(&operation, &cipher_suite), + ERR_INJECT_DUPLICATE_SETUP); - SETUP_ALWAYS_CHECK_STEP( psa_pake_set_role( &operation, role), - ERR_IN_SET_ROLE ); + SETUP_ALWAYS_CHECK_STEP(psa_pake_set_role(&operation, role), + ERR_IN_SET_ROLE); - SETUP_ALWAYS_CHECK_STEP( psa_pake_set_password_key( &operation, key ), - ERR_IN_SET_PASSWORD_KEY ); + SETUP_ALWAYS_CHECK_STEP(psa_pake_set_password_key(&operation, key), + ERR_IN_SET_PASSWORD_KEY); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_user( &operation, NULL, 0 ), - ERR_INJECT_INVALID_USER ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_set_user(&operation, NULL, 0), + ERR_INJECT_INVALID_USER); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_peer( &operation, NULL, 0 ), - ERR_INJECT_INVALID_PEER ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_set_peer(&operation, NULL, 0), + ERR_INJECT_INVALID_PEER); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_user( &operation, unsupp_id, 4 ), - ERR_INJECT_SET_USER ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_set_user(&operation, unsupp_id, 4), + ERR_INJECT_SET_USER); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_set_peer( &operation, unsupp_id, 4 ), - ERR_INJECT_SET_PEER ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_set_peer(&operation, unsupp_id, 4), + ERR_INJECT_SET_PEER); - const size_t size_key_share = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_KEY_SHARE ); - const size_t size_zk_public = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_ZK_PUBLIC ); - const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE( alg, primitive, - PSA_PAKE_STEP_ZK_PROOF ); + const size_t size_key_share = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_KEY_SHARE); + const size_t size_zk_public = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_ZK_PUBLIC); + const size_t size_zk_proof = PSA_PAKE_INPUT_SIZE(alg, primitive, + PSA_PAKE_STEP_ZK_PROOF); - if ( test_input ) - { - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, - PSA_PAKE_STEP_ZK_PROOF, NULL, 0 ), - ERR_INJECT_EMPTY_IO_BUFFER ); + if (test_input) { + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_input(&operation, + PSA_PAKE_STEP_ZK_PROOF, NULL, 0), + ERR_INJECT_EMPTY_IO_BUFFER); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, - PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, size_zk_proof ), - ERR_INJECT_UNKNOWN_STEP ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_input(&operation, + PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, size_zk_proof), + ERR_INJECT_UNKNOWN_STEP); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, - PSA_PAKE_STEP_ZK_PROOF, - output_buffer, size_zk_proof ), - ERR_INJECT_INVALID_FIRST_STEP ) + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_input(&operation, + PSA_PAKE_STEP_ZK_PROOF, + output_buffer, size_zk_proof), + ERR_INJECT_INVALID_FIRST_STEP) - SETUP_ALWAYS_CHECK_STEP( psa_pake_input( &operation, - PSA_PAKE_STEP_KEY_SHARE, - output_buffer, size_key_share ), - ERR_IN_INPUT ); + SETUP_ALWAYS_CHECK_STEP(psa_pake_input(&operation, + PSA_PAKE_STEP_KEY_SHARE, + output_buffer, size_key_share), + ERR_IN_INPUT); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_input( &operation, - PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ), - ERR_INJECT_WRONG_BUFFER_SIZE ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_input(&operation, + PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1), + ERR_INJECT_WRONG_BUFFER_SIZE); SETUP_CONDITIONAL_CHECK_STEP( - ( psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public + 1 ), - psa_pake_input( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public ) ), - ERR_INJECT_VALID_OPERATION_AFTER_FAILURE ); + (psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public + 1), + psa_pake_input(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public)), + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE); } else { - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, - PSA_PAKE_STEP_ZK_PROOF, - NULL, 0, NULL ), - ERR_INJECT_EMPTY_IO_BUFFER ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_output(&operation, + PSA_PAKE_STEP_ZK_PROOF, + NULL, 0, NULL), + ERR_INJECT_EMPTY_IO_BUFFER); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, - PSA_PAKE_STEP_ZK_PROOF + 10, - output_buffer, buf_size, &output_len ), - ERR_INJECT_UNKNOWN_STEP ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_output(&operation, + PSA_PAKE_STEP_ZK_PROOF + 10, + output_buffer, buf_size, &output_len), + ERR_INJECT_UNKNOWN_STEP); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, - PSA_PAKE_STEP_ZK_PROOF, - output_buffer, buf_size, &output_len ), - ERR_INJECT_INVALID_FIRST_STEP ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_output(&operation, + PSA_PAKE_STEP_ZK_PROOF, + output_buffer, buf_size, &output_len), + ERR_INJECT_INVALID_FIRST_STEP); - SETUP_ALWAYS_CHECK_STEP( psa_pake_output( &operation, - PSA_PAKE_STEP_KEY_SHARE, - output_buffer, buf_size, &output_len ), - ERR_IN_OUTPUT ); + SETUP_ALWAYS_CHECK_STEP(psa_pake_output(&operation, + PSA_PAKE_STEP_KEY_SHARE, + output_buffer, buf_size, &output_len), + ERR_IN_OUTPUT); - TEST_ASSERT( output_len > 0 ); + TEST_ASSERT(output_len > 0); - SETUP_CONDITIONAL_CHECK_STEP( psa_pake_output( &operation, - PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, - &output_len ), - ERR_INJECT_WRONG_BUFFER_SIZE ); + SETUP_CONDITIONAL_CHECK_STEP(psa_pake_output(&operation, + PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, + &output_len), + ERR_INJECT_WRONG_BUFFER_SIZE); SETUP_CONDITIONAL_CHECK_STEP( - ( psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, size_zk_public - 1, &output_len ), - psa_pake_output( &operation, PSA_PAKE_STEP_ZK_PUBLIC, - output_buffer, buf_size, &output_len ) ), - ERR_INJECT_VALID_OPERATION_AFTER_FAILURE ); + (psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, size_zk_public - 1, &output_len), + psa_pake_output(&operation, PSA_PAKE_STEP_ZK_PUBLIC, + output_buffer, buf_size, &output_len)), + ERR_INJECT_VALID_OPERATION_AFTER_FAILURE); } exit: - PSA_ASSERT( psa_destroy_key( key ) ); - PSA_ASSERT( psa_pake_abort( &operation ) ); - mbedtls_free( output_buffer ); - PSA_DONE( ); + PSA_ASSERT(psa_destroy_key(key)); + PSA_ASSERT(psa_pake_abort(&operation)); + mbedtls_free(output_buffer); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, - int client_input_first, - data_t *pw_data, - int err_stage_arg, - int expected_error_arg ) +void ecjpake_rounds_inject(int alg_arg, int primitive_arg, int hash_arg, + int client_input_first, + data_t *pw_data, + int err_stage_arg, + int expected_error_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -732,51 +723,52 @@ void ecjpake_rounds_inject( int alg_arg, int primitive_arg, int hash_arg, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; ecjpake_error_stage_t err_stage = err_stage_arg; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); + PSA_ASSERT(psa_import_key(&attributes, pw_data->x, pw_data->len, + &key)); - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive_arg); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); - PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); - PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + PSA_ASSERT(psa_pake_setup(&server, &cipher_suite)); + PSA_ASSERT(psa_pake_setup(&client, &cipher_suite)); - PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); - PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + PSA_ASSERT(psa_pake_set_role(&server, PSA_PAKE_ROLE_SERVER)); + PSA_ASSERT(psa_pake_set_role(&client, PSA_PAKE_ROLE_CLIENT)); - PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); - PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + PSA_ASSERT(psa_pake_set_password_key(&server, key)); + PSA_ASSERT(psa_pake_set_password_key(&client, key)); - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, PAKE_ROUND_ONE, - err_stage, expected_error_arg ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, PAKE_ROUND_ONE, + err_stage, expected_error_arg); - if( err_stage != ERR_NONE ) + if (err_stage != ERR_NONE) { goto exit; + } - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, PAKE_ROUND_TWO, - err_stage, expected_error_arg ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, PAKE_ROUND_TWO, + err_stage, expected_error_arg); exit: - psa_destroy_key( key ); - psa_pake_abort( &server ); - psa_pake_abort( &client ); - PSA_DONE( ); + psa_destroy_key(key); + psa_pake_abort(&server); + psa_pake_abort(&client); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:PSA_WANT_ALG_JPAKE */ -void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, - int derive_alg_arg, data_t *pw_data, - int client_input_first, int destroy_key, - int err_stage_arg ) +void ecjpake_rounds(int alg_arg, int primitive_arg, int hash_arg, + int derive_alg_arg, data_t *pw_data, + int client_input_first, int destroy_key, + int err_stage_arg) { psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init(); psa_pake_operation_t server = psa_pake_operation_init(); @@ -787,131 +779,129 @@ void ecjpake_rounds( int alg_arg, int primitive_arg, int hash_arg, mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_derivation_operation_t server_derive = - PSA_KEY_DERIVATION_OPERATION_INIT; + PSA_KEY_DERIVATION_OPERATION_INIT; psa_key_derivation_operation_t client_derive = - PSA_KEY_DERIVATION_OPERATION_INIT; + PSA_KEY_DERIVATION_OPERATION_INIT; ecjpake_error_stage_t err_stage = err_stage_arg; - PSA_INIT( ); + PSA_INIT(); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); - PSA_ASSERT( psa_import_key( &attributes, pw_data->x, pw_data->len, - &key ) ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); + PSA_ASSERT(psa_import_key(&attributes, pw_data->x, pw_data->len, + &key)); - psa_pake_cs_set_algorithm( &cipher_suite, alg ); - psa_pake_cs_set_primitive( &cipher_suite, primitive_arg ); - psa_pake_cs_set_hash( &cipher_suite, hash_alg ); + psa_pake_cs_set_algorithm(&cipher_suite, alg); + psa_pake_cs_set_primitive(&cipher_suite, primitive_arg); + psa_pake_cs_set_hash(&cipher_suite, hash_alg); /* Get shared key */ - PSA_ASSERT( psa_key_derivation_setup( &server_derive, derive_alg ) ); - PSA_ASSERT( psa_key_derivation_setup( &client_derive, derive_alg ) ); + PSA_ASSERT(psa_key_derivation_setup(&server_derive, derive_alg)); + PSA_ASSERT(psa_key_derivation_setup(&client_derive, derive_alg)); - if( PSA_ALG_IS_TLS12_PRF( derive_alg ) || - PSA_ALG_IS_TLS12_PSK_TO_MS( derive_alg ) ) - { - PSA_ASSERT( psa_key_derivation_input_bytes( &server_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); - PSA_ASSERT( psa_key_derivation_input_bytes( &client_derive, - PSA_KEY_DERIVATION_INPUT_SEED, - (const uint8_t*) "", 0) ); + if (PSA_ALG_IS_TLS12_PRF(derive_alg) || + PSA_ALG_IS_TLS12_PSK_TO_MS(derive_alg)) { + PSA_ASSERT(psa_key_derivation_input_bytes(&server_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t *) "", 0)); + PSA_ASSERT(psa_key_derivation_input_bytes(&client_derive, + PSA_KEY_DERIVATION_INPUT_SEED, + (const uint8_t *) "", 0)); } - PSA_ASSERT( psa_pake_setup( &server, &cipher_suite ) ); - PSA_ASSERT( psa_pake_setup( &client, &cipher_suite ) ); + PSA_ASSERT(psa_pake_setup(&server, &cipher_suite)); + PSA_ASSERT(psa_pake_setup(&client, &cipher_suite)); - PSA_ASSERT( psa_pake_set_role( &server, PSA_PAKE_ROLE_SERVER ) ); - PSA_ASSERT( psa_pake_set_role( &client, PSA_PAKE_ROLE_CLIENT ) ); + PSA_ASSERT(psa_pake_set_role(&server, PSA_PAKE_ROLE_SERVER)); + PSA_ASSERT(psa_pake_set_role(&client, PSA_PAKE_ROLE_CLIENT)); - PSA_ASSERT( psa_pake_set_password_key( &server, key ) ); - PSA_ASSERT( psa_pake_set_password_key( &client, key ) ); + PSA_ASSERT(psa_pake_set_password_key(&server, key)); + PSA_ASSERT(psa_pake_set_password_key(&client, key)); - if( destroy_key == 1 ) - psa_destroy_key( key ); + if (destroy_key == 1) { + psa_destroy_key(key); + } - if( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1 ) - { - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); + if (err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_1) { + TEST_EQUAL(psa_pake_get_implicit_key(&server, &server_derive), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_pake_get_implicit_key(&client, &client_derive), + PSA_ERROR_BAD_STATE); goto exit; } /* First round */ - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, PAKE_ROUND_ONE, - ERR_NONE, PSA_SUCCESS ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, PAKE_ROUND_ONE, + ERR_NONE, PSA_SUCCESS); - if ( err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2 ) - { - TEST_EQUAL( psa_pake_get_implicit_key( &server, &server_derive ), - PSA_ERROR_BAD_STATE ); - TEST_EQUAL( psa_pake_get_implicit_key( &client, &client_derive ), - PSA_ERROR_BAD_STATE ); + if (err_stage == ERR_INJECT_ANTICIPATE_KEY_DERIVATION_2) { + TEST_EQUAL(psa_pake_get_implicit_key(&server, &server_derive), + PSA_ERROR_BAD_STATE); + TEST_EQUAL(psa_pake_get_implicit_key(&client, &client_derive), + PSA_ERROR_BAD_STATE); goto exit; } /* Second round */ - ecjpake_do_round( alg, primitive_arg, &server, &client, - client_input_first, PAKE_ROUND_TWO, - ERR_NONE, PSA_SUCCESS ); + ecjpake_do_round(alg, primitive_arg, &server, &client, + client_input_first, PAKE_ROUND_TWO, + ERR_NONE, PSA_SUCCESS); - PSA_ASSERT( psa_pake_get_implicit_key( &server, &server_derive ) ); - PSA_ASSERT( psa_pake_get_implicit_key( &client, &client_derive ) ); + PSA_ASSERT(psa_pake_get_implicit_key(&server, &server_derive)); + PSA_ASSERT(psa_pake_get_implicit_key(&client, &client_derive)); exit: - psa_key_derivation_abort( &server_derive ); - psa_key_derivation_abort( &client_derive ); - psa_destroy_key( key ); - psa_pake_abort( &server ); - psa_pake_abort( &client ); - PSA_DONE( ); + psa_key_derivation_abort(&server_derive); + psa_key_derivation_abort(&client_derive); + psa_destroy_key(key); + psa_pake_abort(&server); + psa_pake_abort(&client); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void ecjpake_size_macros( ) +void ecjpake_size_macros() { const psa_algorithm_t alg = PSA_ALG_JPAKE; const size_t bits = 256; const psa_pake_primitive_t prim = PSA_PAKE_PRIMITIVE( - PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits ); + PSA_PAKE_PRIMITIVE_TYPE_ECC, PSA_ECC_FAMILY_SECP_R1, bits); const psa_key_type_t key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( - PSA_ECC_FAMILY_SECP_R1 ); + PSA_ECC_FAMILY_SECP_R1); // https://armmbed.github.io/mbed-crypto/1.1_PAKE_Extension.0-bet.0/html/pake.html#pake-step-types /* The output for KEY_SHARE and ZK_PUBLIC is the same as a public key */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE( key_type, bits ) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(key_type, bits)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_EXPORT_PUBLIC_KEY_OUTPUT_SIZE(key_type, bits)); /* The output for ZK_PROOF is the same bitsize as the curve */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_BITS_TO_BYTES( bits ) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_BITS_TO_BYTES(bits)); /* Input sizes are the same as output sizes */ - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC) ); - TEST_EQUAL( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF) ); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC)); + TEST_EQUAL(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF)); /* These inequalities will always hold even when other PAKEs are added */ - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_OUTPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), - PSA_PAKE_INPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), - PSA_PAKE_INPUT_MAX_SIZE ); - TEST_LE_U( PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), - PSA_PAKE_INPUT_MAX_SIZE ); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_OUTPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_OUTPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_KEY_SHARE), + PSA_PAKE_INPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PUBLIC), + PSA_PAKE_INPUT_MAX_SIZE); + TEST_LE_U(PSA_PAKE_INPUT_SIZE(alg, prim, PSA_PAKE_STEP_ZK_PROOF), + PSA_PAKE_INPUT_MAX_SIZE); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_persistent_key.function b/tests/suites/test_suite_psa_crypto_persistent_key.function index bb8792313..23535df32 100644 --- a/tests/suites/test_suite_psa_crypto_persistent_key.function +++ b/tests/suites/test_suite_psa_crypto_persistent_key.function @@ -20,7 +20,7 @@ #include "mbedtls/md.h" #define PSA_KEY_STORAGE_MAGIC_HEADER "PSA\0KEY" -#define PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH ( sizeof( PSA_KEY_STORAGE_MAGIC_HEADER ) ) +#define PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH (sizeof(PSA_KEY_STORAGE_MAGIC_HEADER)) /* Enforce the storage format for keys. The storage format is not a public * documented interface, but it must be preserved between versions so that @@ -29,9 +29,9 @@ typedef struct { uint8_t magic[PSA_KEY_STORAGE_MAGIC_HEADER_LENGTH]; uint8_t version[4]; - uint8_t lifetime[sizeof( psa_key_lifetime_t )]; + uint8_t lifetime[sizeof(psa_key_lifetime_t)]; uint8_t type[4]; - uint8_t policy[sizeof( psa_key_policy_t )]; + uint8_t policy[sizeof(psa_key_policy_t)]; uint8_t data_len[4]; uint8_t key_data[]; } psa_persistent_key_storage_format; @@ -44,223 +44,222 @@ typedef struct { */ /* BEGIN_CASE */ -void format_storage_data_check( data_t *key_data, - data_t *expected_file_data, - int key_lifetime, int key_type, int key_bits, - int key_usage, int key_alg, int key_alg2 ) +void format_storage_data_check(data_t *key_data, + data_t *expected_file_data, + int key_lifetime, int key_type, int key_bits, + int key_usage, int key_alg, int key_alg2) { uint8_t *file_data = NULL; size_t file_data_length = - key_data->len + sizeof( psa_persistent_key_storage_format ); + key_data->len + sizeof(psa_persistent_key_storage_format); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - psa_set_key_lifetime( &attributes, key_lifetime ); - psa_set_key_type( &attributes, key_type ); - psa_set_key_bits( &attributes, key_bits ); - psa_set_key_usage_flags( &attributes, key_usage ); - psa_set_key_algorithm( &attributes, key_alg ); - psa_set_key_enrollment_algorithm( &attributes, key_alg2 ); + psa_set_key_lifetime(&attributes, key_lifetime); + psa_set_key_type(&attributes, key_type); + psa_set_key_bits(&attributes, key_bits); + psa_set_key_usage_flags(&attributes, key_usage); + psa_set_key_algorithm(&attributes, key_alg); + psa_set_key_enrollment_algorithm(&attributes, key_alg2); - ASSERT_ALLOC( file_data, file_data_length ); - psa_format_key_data_for_storage( key_data->x, key_data->len, - &attributes.core, - file_data ); + ASSERT_ALLOC(file_data, file_data_length); + psa_format_key_data_for_storage(key_data->x, key_data->len, + &attributes.core, + file_data); - ASSERT_COMPARE( expected_file_data->x, expected_file_data->len, - file_data, file_data_length ); + ASSERT_COMPARE(expected_file_data->x, expected_file_data->len, + file_data, file_data_length); exit: - mbedtls_free( file_data ); + mbedtls_free(file_data); } /* END_CASE */ /* BEGIN_CASE */ -void parse_storage_data_check( data_t *file_data, - data_t *expected_key_data, - int expected_key_lifetime, - int expected_key_type, - int expected_key_bits, - int expected_key_usage, - int expected_key_alg, - int expected_key_alg2, - int expected_status ) +void parse_storage_data_check(data_t *file_data, + data_t *expected_key_data, + int expected_key_lifetime, + int expected_key_type, + int expected_key_bits, + int expected_key_usage, + int expected_key_alg, + int expected_key_alg2, + int expected_status) { uint8_t *key_data = NULL; size_t key_data_length = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t status; - status = psa_parse_key_data_from_storage( file_data->x, file_data->len, - &key_data, &key_data_length, - &attributes.core ); + status = psa_parse_key_data_from_storage(file_data->x, file_data->len, + &key_data, &key_data_length, + &attributes.core); - TEST_EQUAL( status, expected_status ); - if( status != PSA_SUCCESS ) + TEST_EQUAL(status, expected_status); + if (status != PSA_SUCCESS) { goto exit; + } - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - (psa_key_type_t) expected_key_lifetime ); - TEST_EQUAL( psa_get_key_type( &attributes ), - (psa_key_type_t) expected_key_type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), - (psa_key_bits_t) expected_key_bits ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - (uint32_t) expected_key_usage ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), - (uint32_t) expected_key_alg ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &attributes ), - (uint32_t) expected_key_alg2 ); - ASSERT_COMPARE( expected_key_data->x, expected_key_data->len, - key_data, key_data_length ); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + (psa_key_type_t) expected_key_lifetime); + TEST_EQUAL(psa_get_key_type(&attributes), + (psa_key_type_t) expected_key_type); + TEST_EQUAL(psa_get_key_bits(&attributes), + (psa_key_bits_t) expected_key_bits); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + (uint32_t) expected_key_usage); + TEST_EQUAL(psa_get_key_algorithm(&attributes), + (uint32_t) expected_key_alg); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&attributes), + (uint32_t) expected_key_alg2); + ASSERT_COMPARE(expected_key_data->x, expected_key_data->len, + key_data, key_data_length); exit: - mbedtls_free( key_data ); + mbedtls_free(key_data); } /* END_CASE */ /* BEGIN_CASE */ -void save_large_persistent_key( int data_length_arg, int expected_status ) +void save_large_persistent_key(int data_length_arg, int expected_status) { - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 1, 42 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(1, 42); uint8_t *data = NULL; size_t data_length = data_length_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - ASSERT_ALLOC( data, data_length ); + ASSERT_ALLOC(data, data_length); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); - TEST_EQUAL( psa_import_key( &attributes, data, data_length, &key_id ), - expected_status ); + TEST_EQUAL(psa_import_key(&attributes, data, data_length, &key_id), + expected_status); - if( expected_status == PSA_SUCCESS ) - PSA_ASSERT( psa_destroy_key( key_id ) ); + if (expected_status == PSA_SUCCESS) { + PSA_ASSERT(psa_destroy_key(key_id)); + } exit: - mbedtls_free( data ); + mbedtls_free(data); PSA_DONE(); - psa_destroy_persistent_key( key_id ); + psa_destroy_persistent_key(key_id); } /* END_CASE */ /* BEGIN_CASE */ -void persistent_key_destroy( int owner_id_arg, int key_id_arg, int restart, - int first_type_arg, data_t *first_data, - int second_type_arg, data_t *second_data ) +void persistent_key_destroy(int owner_id_arg, int key_id_arg, int restart, + int first_type_arg, data_t *first_data, + int second_type_arg, data_t *second_data) { mbedtls_svc_key_id_t key_id = - mbedtls_svc_key_id_make( owner_id_arg, key_id_arg ); + mbedtls_svc_key_id_make(owner_id_arg, key_id_arg); mbedtls_svc_key_id_t returned_key_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_type_t first_type = (psa_key_type_t) first_type_arg; psa_key_type_t second_type = (psa_key_type_t) second_type_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, first_type ); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, first_type); - PSA_ASSERT( psa_import_key( &attributes, first_data->x, first_data->len, - &returned_key_id ) ); + PSA_ASSERT(psa_import_key(&attributes, first_data->x, first_data->len, + &returned_key_id)); - if( restart ) - { - psa_close_key( key_id ); + if (restart) { + psa_close_key(key_id); PSA_DONE(); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); } - TEST_EQUAL( psa_is_key_present_in_storage( key_id ), 1 ); + TEST_EQUAL(psa_is_key_present_in_storage(key_id), 1); /* Destroy the key */ - PSA_ASSERT( psa_destroy_key( key_id ) ); + PSA_ASSERT(psa_destroy_key(key_id)); /* Check key slot storage is removed */ - TEST_EQUAL( psa_is_key_present_in_storage( key_id ), 0 ); + TEST_EQUAL(psa_is_key_present_in_storage(key_id), 0); /* Shutdown and restart */ PSA_DONE(); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); /* Create another key in the same slot */ - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, second_type ); - PSA_ASSERT( psa_import_key( &attributes, second_data->x, second_data->len, - &returned_key_id ) ); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, second_type); + PSA_ASSERT(psa_import_key(&attributes, second_data->x, second_data->len, + &returned_key_id)); - PSA_ASSERT( psa_destroy_key( key_id ) ); + PSA_ASSERT(psa_destroy_key(key_id)); exit: PSA_DONE(); - psa_destroy_persistent_key( key_id ); + psa_destroy_persistent_key(key_id); } /* END_CASE */ /* BEGIN_CASE */ -void persistent_key_import( int owner_id_arg, int key_id_arg, int type_arg, - data_t *data, int restart, int expected_status ) +void persistent_key_import(int owner_id_arg, int key_id_arg, int type_arg, + data_t *data, int restart, int expected_status) { mbedtls_svc_key_id_t key_id = - mbedtls_svc_key_id_make( owner_id_arg, key_id_arg ); + mbedtls_svc_key_id_make(owner_id_arg, key_id_arg); mbedtls_svc_key_id_t returned_key_id; psa_key_type_t type = (psa_key_type_t) type_arg; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, type ); - TEST_EQUAL( psa_import_key( &attributes, data->x, data->len, &returned_key_id ), - expected_status ); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, type); + TEST_EQUAL(psa_import_key(&attributes, data->x, data->len, &returned_key_id), + expected_status); - if( expected_status != PSA_SUCCESS ) - { - TEST_ASSERT( mbedtls_svc_key_id_is_null( returned_key_id ) ); - TEST_EQUAL( psa_is_key_present_in_storage( key_id ), 0 ); + if (expected_status != PSA_SUCCESS) { + TEST_ASSERT(mbedtls_svc_key_id_is_null(returned_key_id)); + TEST_EQUAL(psa_is_key_present_in_storage(key_id), 0); goto exit; } - TEST_ASSERT( mbedtls_svc_key_id_equal( returned_key_id, key_id ) ); + TEST_ASSERT(mbedtls_svc_key_id_equal(returned_key_id, key_id)); - if( restart ) - { - PSA_ASSERT( psa_purge_key( key_id ) ); + if (restart) { + PSA_ASSERT(psa_purge_key(key_id)); PSA_DONE(); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); } - psa_reset_key_attributes( &attributes ); - PSA_ASSERT( psa_get_key_attributes( key_id, &attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( psa_get_key_id( &attributes ), - key_id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - PSA_KEY_LIFETIME_PERSISTENT ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), 0 ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); + psa_reset_key_attributes(&attributes); + PSA_ASSERT(psa_get_key_attributes(key_id, &attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal(psa_get_key_id(&attributes), + key_id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + PSA_KEY_LIFETIME_PERSISTENT); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), 0); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); - PSA_ASSERT( psa_destroy_key( key_id ) ); + PSA_ASSERT(psa_destroy_key(key_id)); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_persistent_key( key_id ); + psa_destroy_persistent_key(key_id); PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void import_export_persistent_key( data_t *data, int type_arg, - int expected_bits, - int restart, int key_not_exist ) +void import_export_persistent_key(data_t *data, int type_arg, + int expected_bits, + int restart, int key_not_exist) { - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 1, 42 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(1, 42); psa_key_type_t type = (psa_key_type_t) type_arg; mbedtls_svc_key_id_t returned_key_id = MBEDTLS_SVC_KEY_ID_INIT; unsigned char *exported = NULL; @@ -268,78 +267,76 @@ void import_export_persistent_key( data_t *data, int type_arg, size_t exported_length; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - ASSERT_ALLOC( exported, export_size ); + ASSERT_ALLOC(exported, export_size); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, type ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, type); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); /* Import the key */ - PSA_ASSERT( psa_import_key( &attributes, data->x, data->len, - &returned_key_id ) ); + PSA_ASSERT(psa_import_key(&attributes, data->x, data->len, + &returned_key_id)); - if( restart ) - { - PSA_ASSERT( psa_purge_key( key_id ) ); + if (restart) { + PSA_ASSERT(psa_purge_key(key_id)); PSA_DONE(); - PSA_ASSERT( psa_crypto_init() ); + PSA_ASSERT(psa_crypto_init()); } /* Test the key information */ - psa_reset_key_attributes( &attributes ); - PSA_ASSERT( psa_get_key_attributes( key_id, &attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), key_id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - PSA_KEY_LIFETIME_PERSISTENT ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - TEST_EQUAL( psa_get_key_bits( &attributes ), (size_t) expected_bits ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), PSA_KEY_USAGE_EXPORT ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); + psa_reset_key_attributes(&attributes); + PSA_ASSERT(psa_get_key_attributes(key_id, &attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), key_id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + PSA_KEY_LIFETIME_PERSISTENT); + TEST_EQUAL(psa_get_key_type(&attributes), type); + TEST_EQUAL(psa_get_key_bits(&attributes), (size_t) expected_bits); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), PSA_KEY_USAGE_EXPORT); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); - TEST_EQUAL( psa_is_key_present_in_storage( key_id ), 1 ); + TEST_EQUAL(psa_is_key_present_in_storage(key_id), 1); - if( key_not_exist ) - { - psa_destroy_persistent_key( key_id ); + if (key_not_exist) { + psa_destroy_persistent_key(key_id); } /* Export the key */ - PSA_ASSERT( psa_export_key( key_id, exported, export_size, - &exported_length ) ); + PSA_ASSERT(psa_export_key(key_id, exported, export_size, + &exported_length)); - ASSERT_COMPARE( data->x, data->len, exported, exported_length ); + ASSERT_COMPARE(data->x, data->len, exported, exported_length); /* Destroy the key */ - PSA_ASSERT( psa_destroy_key( key_id ) ); - TEST_EQUAL( psa_is_key_present_in_storage( key_id ), 0 ); + PSA_ASSERT(psa_destroy_key(key_id)); + TEST_EQUAL(psa_is_key_present_in_storage(key_id), 0); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - mbedtls_free( exported ); - PSA_DONE( ); - psa_destroy_persistent_key( key_id ); + mbedtls_free(exported); + PSA_DONE(); + psa_destroy_persistent_key(key_id); } /* END_CASE */ /* BEGIN_CASE */ -void destroy_nonexistent( int id_arg, int expected_status_arg ) +void destroy_nonexistent(int id_arg, int expected_status_arg) { - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, id_arg); psa_status_t expected_status = expected_status_arg; - PSA_INIT( ); + PSA_INIT(); - TEST_EQUAL( expected_status, psa_destroy_key( id ) ); + TEST_EQUAL(expected_status, psa_destroy_key(id)); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_se_driver_hal.function b/tests/suites/test_suite_psa_crypto_se_driver_hal.function index 9f684913d..5c9437159 100644 --- a/tests/suites/test_suite_psa_crypto_se_driver_hal.function +++ b/tests/suites/test_suite_psa_crypto_se_driver_hal.function @@ -24,16 +24,16 @@ /** The location and lifetime used for tests that use a single driver. */ #define TEST_DRIVER_LOCATION 1 #define TEST_SE_PERSISTENT_LIFETIME \ - ( PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ - PSA_KEY_PERSISTENCE_DEFAULT, TEST_DRIVER_LOCATION ) ) + (PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ + PSA_KEY_PERSISTENCE_DEFAULT, TEST_DRIVER_LOCATION)) #define TEST_SE_VOLATILE_LIFETIME \ - ( PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ - PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION ) ) + (PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ + PSA_KEY_PERSISTENCE_VOLATILE, TEST_DRIVER_LOCATION)) /** The driver detected a condition that shouldn't happen. * This is probably a bug in the library. */ -#define PSA_ERROR_DETECTED_BY_DRIVER ((psa_status_t)( -500 )) +#define PSA_ERROR_DETECTED_BY_DRIVER ((psa_status_t) (-500)) /** Like #TEST_ASSERT for use in a driver method, with no cleanup. * @@ -41,14 +41,14 @@ * * Use this macro to assert on guarantees provided by the core. */ -#define DRIVER_ASSERT_RETURN( TEST ) \ +#define DRIVER_ASSERT_RETURN(TEST) \ do { \ - if( ! (TEST) ) \ - { \ - mbedtls_test_fail( #TEST, __LINE__, __FILE__ ); \ - return( PSA_ERROR_DETECTED_BY_DRIVER ); \ - } \ - } while( 0 ) + if (!(TEST)) \ + { \ + mbedtls_test_fail( #TEST, __LINE__, __FILE__); \ + return PSA_ERROR_DETECTED_BY_DRIVER; \ + } \ + } while (0) /** Like #TEST_ASSERT for use in a driver method, with cleanup. * @@ -57,15 +57,15 @@ * * Use this macro to assert on guarantees provided by the core. */ -#define DRIVER_ASSERT( TEST ) \ +#define DRIVER_ASSERT(TEST) \ do { \ - if( ! (TEST) ) \ - { \ - mbedtls_test_fail( #TEST, __LINE__, __FILE__ ); \ - status = PSA_ERROR_DETECTED_BY_DRIVER; \ - goto exit; \ - } \ - } while( 0 ) + if (!(TEST)) \ + { \ + mbedtls_test_fail( #TEST, __LINE__, __FILE__); \ + status = PSA_ERROR_DETECTED_BY_DRIVER; \ + goto exit; \ + } \ + } while (0) /** Like #PSA_ASSERT for a PSA API call that calls a driver underneath. * @@ -78,17 +78,17 @@ * case, the test driver code is expected to have called mbedtls_test_fail() * already, so we make sure not to overwrite the failure information. */ -#define PSA_ASSERT_VIA_DRIVER( expr, expected_status ) \ +#define PSA_ASSERT_VIA_DRIVER(expr, expected_status) \ do { \ - psa_status_t PSA_ASSERT_VIA_DRIVER_status = ( expr ); \ - if( PSA_ASSERT_VIA_DRIVER_status == PSA_ERROR_DETECTED_BY_DRIVER ) \ - goto exit; \ - if( PSA_ASSERT_VIA_DRIVER_status != ( expected_status ) ) \ + psa_status_t PSA_ASSERT_VIA_DRIVER_status = (expr); \ + if (PSA_ASSERT_VIA_DRIVER_status == PSA_ERROR_DETECTED_BY_DRIVER) \ + goto exit; \ + if (PSA_ASSERT_VIA_DRIVER_status != (expected_status)) \ { \ - mbedtls_test_fail( #expr, __LINE__, __FILE__ ); \ + mbedtls_test_fail( #expr, __LINE__, __FILE__); \ goto exit; \ } \ - } while( 0 ) + } while (0) @@ -97,20 +97,21 @@ /****************************************************************/ /* Return the exact bit size given a curve family and a byte length. */ -static size_t ecc_curve_bits( psa_ecc_family_t curve, size_t data_length ) +static size_t ecc_curve_bits(psa_ecc_family_t curve, size_t data_length) { - switch( curve ) - { + switch (curve) { case PSA_ECC_FAMILY_SECP_R1: - if( data_length == PSA_BYTES_TO_BITS( 521 ) ) - return( 521 ); + if (data_length == PSA_BYTES_TO_BITS(521)) { + return 521; + } break; case PSA_ECC_FAMILY_MONTGOMERY: - if( data_length == PSA_BYTES_TO_BITS( 255 ) ) - return( 255 ); + if (data_length == PSA_BYTES_TO_BITS(255)) { + return 255; + } } /* If not listed above, assume a multiple of 8 bits. */ - return( PSA_BYTES_TO_BITS( data_length ) ); + return PSA_BYTES_TO_BITS(data_length); } @@ -118,8 +119,7 @@ static size_t ecc_curve_bits( psa_ecc_family_t curve, size_t data_length ) /* Miscellaneous driver methods */ /****************************************************************/ -typedef struct -{ +typedef struct { psa_key_slot_number_t slot_number; psa_key_creation_method_t method; psa_status_t status; @@ -132,51 +132,53 @@ static psa_status_t validate_slot_number_as_directed( void *persistent_data, const psa_key_attributes_t *attributes, psa_key_creation_method_t method, - psa_key_slot_number_t slot_number ) + psa_key_slot_number_t slot_number) { (void) context; (void) persistent_data; (void) attributes; - DRIVER_ASSERT_RETURN( slot_number == - validate_slot_number_directions.slot_number ); - DRIVER_ASSERT_RETURN( method == - validate_slot_number_directions.method ); - return( validate_slot_number_directions.status ); + DRIVER_ASSERT_RETURN(slot_number == + validate_slot_number_directions.slot_number); + DRIVER_ASSERT_RETURN(method == + validate_slot_number_directions.method); + return validate_slot_number_directions.status; } /* Allocate slot numbers with a monotonic counter. */ static psa_key_slot_number_t shadow_counter; -static void counter_reset( void ) +static void counter_reset(void) { shadow_counter = 0; } -static psa_status_t counter_allocate( psa_drv_se_context_t *context, - void *persistent_data, - const psa_key_attributes_t *attributes, - psa_key_creation_method_t method, - psa_key_slot_number_t *slot_number ) +static psa_status_t counter_allocate(psa_drv_se_context_t *context, + void *persistent_data, + const psa_key_attributes_t *attributes, + psa_key_creation_method_t method, + psa_key_slot_number_t *slot_number) { psa_key_slot_number_t *p_counter = persistent_data; (void) attributes; (void) method; - if( context->persistent_data_size != sizeof( psa_key_slot_number_t ) ) - return( PSA_ERROR_DETECTED_BY_DRIVER ); + if (context->persistent_data_size != sizeof(psa_key_slot_number_t)) { + return PSA_ERROR_DETECTED_BY_DRIVER; + } ++*p_counter; - if( *p_counter == 0 ) - return( PSA_ERROR_INSUFFICIENT_STORAGE ); + if (*p_counter == 0) { + return PSA_ERROR_INSUFFICIENT_STORAGE; + } shadow_counter = *p_counter; *slot_number = *p_counter; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /* Null import: do nothing, but pretend it worked. */ #if defined(AT_LEAST_ONE_BUILTIN_KDF) -static psa_status_t null_import( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - const psa_key_attributes_t *attributes, - const uint8_t *data, - size_t data_length, - size_t *bits ) +static psa_status_t null_import(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + const psa_key_attributes_t *attributes, + const uint8_t *data, + size_t data_length, + size_t *bits) { (void) context; (void) slot_number; @@ -184,44 +186,43 @@ static psa_status_t null_import( psa_drv_se_context_t *context, (void) data; /* We're supposed to return a key size. Return one that's correct for * plain data keys. */ - *bits = PSA_BYTES_TO_BITS( data_length ); - return( PSA_SUCCESS ); + *bits = PSA_BYTES_TO_BITS(data_length); + return PSA_SUCCESS; } #endif /* AT_LEAST_ONE_BUILTIN_KDF */ /* Null generate: do nothing, but pretend it worked. */ #if defined(AT_LEAST_ONE_BUILTIN_KDF) -static psa_status_t null_generate( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - const psa_key_attributes_t *attributes, - uint8_t *pubkey, - size_t pubkey_size, - size_t *pubkey_length ) +static psa_status_t null_generate(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + const psa_key_attributes_t *attributes, + uint8_t *pubkey, + size_t pubkey_size, + size_t *pubkey_length) { (void) context; (void) slot_number; (void) attributes; - DRIVER_ASSERT_RETURN( *pubkey_length == 0 ); - if( ! PSA_KEY_TYPE_IS_KEY_PAIR( psa_get_key_type( attributes ) ) ) - { - DRIVER_ASSERT_RETURN( pubkey == NULL ); - DRIVER_ASSERT_RETURN( pubkey_size == 0 ); + DRIVER_ASSERT_RETURN(*pubkey_length == 0); + if (!PSA_KEY_TYPE_IS_KEY_PAIR(psa_get_key_type(attributes))) { + DRIVER_ASSERT_RETURN(pubkey == NULL); + DRIVER_ASSERT_RETURN(pubkey_size == 0); } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } #endif /* AT_LEAST_ONE_BUILTIN_KDF */ /* Null destroy: do nothing, but pretend it worked. */ -static psa_status_t null_destroy( psa_drv_se_context_t *context, - void *persistent_data, - psa_key_slot_number_t slot_number ) +static psa_status_t null_destroy(psa_drv_se_context_t *context, + void *persistent_data, + psa_key_slot_number_t slot_number) { (void) context; (void) persistent_data; (void) slot_number; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } @@ -231,8 +232,7 @@ static psa_status_t null_destroy( psa_drv_se_context_t *context, /****************************************************************/ #define RAM_MAX_KEY_SIZE 64 -typedef struct -{ +typedef struct { psa_key_lifetime_t lifetime; psa_key_type_t type; size_t bits; @@ -248,9 +248,9 @@ static ram_slot_usage_t ram_shadow_slot_usage; static uint8_t ram_min_slot = 0; -static void ram_slots_reset( void ) +static void ram_slots_reset(void) { - memset( ram_slots, 0, sizeof( ram_slots ) ); + memset(ram_slots, 0, sizeof(ram_slots)); ram_min_slot = 0; ram_shadow_slot_usage = 0; } @@ -263,168 +263,165 @@ static void ram_slots_reset( void ) * in the test case function's cleanup code) and it might be wrong * (if slot_number is invalid). */ -static psa_status_t ram_create_common( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - const psa_key_attributes_t *attributes, - size_t required_storage ) +static psa_status_t ram_create_common(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + const psa_key_attributes_t *attributes, + size_t required_storage) { (void) context; - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); - ram_slots[slot_number].lifetime = psa_get_key_lifetime( attributes ); - ram_slots[slot_number].type = psa_get_key_type( attributes ); - ram_slots[slot_number].bits = psa_get_key_bits( attributes ); + ram_slots[slot_number].lifetime = psa_get_key_lifetime(attributes); + ram_slots[slot_number].type = psa_get_key_type(attributes); + ram_slots[slot_number].bits = psa_get_key_bits(attributes); - if( required_storage > sizeof( ram_slots[slot_number].content ) ) - { - memset( &ram_slots[slot_number], 0, sizeof( ram_slots[slot_number] ) ); - return( PSA_ERROR_INSUFFICIENT_STORAGE ); + if (required_storage > sizeof(ram_slots[slot_number].content)) { + memset(&ram_slots[slot_number], 0, sizeof(ram_slots[slot_number])); + return PSA_ERROR_INSUFFICIENT_STORAGE; } - return( PSA_SUCCESS ); + return PSA_SUCCESS; } /* This function does everything except actually generating key material. * After calling it, you must copy the desired key material to * ram_slots[slot_number].content. */ -static psa_status_t ram_fake_generate( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - const psa_key_attributes_t *attributes, - uint8_t *pubkey, - size_t pubkey_size, - size_t *pubkey_length ) +static psa_status_t ram_fake_generate(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + const psa_key_attributes_t *attributes, + uint8_t *pubkey, + size_t pubkey_size, + size_t *pubkey_length) { psa_status_t status; size_t required_storage = - PSA_EXPORT_KEY_OUTPUT_SIZE( psa_get_key_type( attributes ), - psa_get_key_bits( attributes ) ); + PSA_EXPORT_KEY_OUTPUT_SIZE(psa_get_key_type(attributes), + psa_get_key_bits(attributes)); - DRIVER_ASSERT_RETURN( *pubkey_length == 0 ); - if( ! PSA_KEY_TYPE_IS_KEY_PAIR( psa_get_key_type( attributes ) ) ) - { - DRIVER_ASSERT_RETURN( pubkey == NULL ); - DRIVER_ASSERT_RETURN( pubkey_size == 0 ); + DRIVER_ASSERT_RETURN(*pubkey_length == 0); + if (!PSA_KEY_TYPE_IS_KEY_PAIR(psa_get_key_type(attributes))) { + DRIVER_ASSERT_RETURN(pubkey == NULL); + DRIVER_ASSERT_RETURN(pubkey_size == 0); } - status = ram_create_common( context, slot_number, attributes, - required_storage ); - return( status ); + status = ram_create_common(context, slot_number, attributes, + required_storage); + return status; } -static psa_status_t ram_import( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - const psa_key_attributes_t *attributes, - const uint8_t *data, - size_t data_length, - size_t *bits ) +static psa_status_t ram_import(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + const psa_key_attributes_t *attributes, + const uint8_t *data, + size_t data_length, + size_t *bits) { - psa_key_type_t type = psa_get_key_type( attributes ); - psa_status_t status = ram_create_common( context, slot_number, attributes, - data_length ); - if( status != PSA_SUCCESS ) - return( status ); + psa_key_type_t type = psa_get_key_type(attributes); + psa_status_t status = ram_create_common(context, slot_number, attributes, + data_length); + if (status != PSA_SUCCESS) { + return status; + } /* The RAM driver only works for certain key types: raw keys, * and ECC key pairs. This is true in particular of the bit-size * calculation here. */ - if( PSA_KEY_TYPE_IS_UNSTRUCTURED( type ) ) - *bits = PSA_BYTES_TO_BITS( data_length ); - else if ( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( type ) ) - { - *bits = ecc_curve_bits( PSA_KEY_TYPE_ECC_GET_FAMILY( type ), data_length ); - if( *bits == 0 ) - return( PSA_ERROR_DETECTED_BY_DRIVER ); - } - else - { - memset( &ram_slots[slot_number], 0, sizeof( ram_slots[slot_number] ) ); - return( PSA_ERROR_NOT_SUPPORTED ); + if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type)) { + *bits = PSA_BYTES_TO_BITS(data_length); + } else if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) { + *bits = ecc_curve_bits(PSA_KEY_TYPE_ECC_GET_FAMILY(type), data_length); + if (*bits == 0) { + return PSA_ERROR_DETECTED_BY_DRIVER; + } + } else { + memset(&ram_slots[slot_number], 0, sizeof(ram_slots[slot_number])); + return PSA_ERROR_NOT_SUPPORTED; } ram_slots[slot_number].bits = *bits; - memcpy( ram_slots[slot_number].content, data, data_length ); + memcpy(ram_slots[slot_number].content, data, data_length); - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t ram_export( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - uint8_t *data, - size_t data_size, - size_t *data_length ) +static psa_status_t ram_export(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + uint8_t *data, + size_t data_size, + size_t *data_length) { size_t actual_size; (void) context; - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); - actual_size = PSA_BITS_TO_BYTES( ram_slots[slot_number].bits ); - if( actual_size > data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); + actual_size = PSA_BITS_TO_BYTES(ram_slots[slot_number].bits); + if (actual_size > data_size) { + return PSA_ERROR_BUFFER_TOO_SMALL; + } *data_length = actual_size; - memcpy( data, ram_slots[slot_number].content, actual_size ); - return( PSA_SUCCESS ); + memcpy(data, ram_slots[slot_number].content, actual_size); + return PSA_SUCCESS; } -static psa_status_t ram_export_public( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - uint8_t *data, - size_t data_size, - size_t *data_length ) +static psa_status_t ram_export_public(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + uint8_t *data, + size_t data_size, + size_t *data_length) { psa_status_t status; mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; (void) context; - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); DRIVER_ASSERT_RETURN( - PSA_KEY_TYPE_IS_KEY_PAIR( ram_slots[slot_number].type ) ); + PSA_KEY_TYPE_IS_KEY_PAIR(ram_slots[slot_number].type)); - psa_set_key_type( &attributes, ram_slots[slot_number].type ); - status = psa_import_key( &attributes, - ram_slots[slot_number].content, - PSA_BITS_TO_BYTES( ram_slots[slot_number].bits ), - &key ); - if( status != PSA_SUCCESS ) - return( status ); - status = psa_export_public_key( key, data, data_size, data_length ); - psa_destroy_key( key ); - return( PSA_SUCCESS ); + psa_set_key_type(&attributes, ram_slots[slot_number].type); + status = psa_import_key(&attributes, + ram_slots[slot_number].content, + PSA_BITS_TO_BYTES(ram_slots[slot_number].bits), + &key); + if (status != PSA_SUCCESS) { + return status; + } + status = psa_export_public_key(key, data, data_size, data_length); + psa_destroy_key(key); + return PSA_SUCCESS; } -static psa_status_t ram_destroy( psa_drv_se_context_t *context, - void *persistent_data, - psa_key_slot_number_t slot_number ) +static psa_status_t ram_destroy(psa_drv_se_context_t *context, + void *persistent_data, + psa_key_slot_number_t slot_number) { ram_slot_usage_t *slot_usage = persistent_data; - DRIVER_ASSERT_RETURN( context->persistent_data_size == sizeof( ram_slot_usage_t ) ); - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); - memset( &ram_slots[slot_number], 0, sizeof( ram_slots[slot_number] ) ); - *slot_usage &= ~(ram_slot_usage_t)( 1 << slot_number ); + DRIVER_ASSERT_RETURN(context->persistent_data_size == sizeof(ram_slot_usage_t)); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); + memset(&ram_slots[slot_number], 0, sizeof(ram_slots[slot_number])); + *slot_usage &= ~(ram_slot_usage_t) (1 << slot_number); ram_shadow_slot_usage = *slot_usage; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } -static psa_status_t ram_allocate( psa_drv_se_context_t *context, - void *persistent_data, - const psa_key_attributes_t *attributes, - psa_key_creation_method_t method, - psa_key_slot_number_t *slot_number ) +static psa_status_t ram_allocate(psa_drv_se_context_t *context, + void *persistent_data, + const psa_key_attributes_t *attributes, + psa_key_creation_method_t method, + psa_key_slot_number_t *slot_number) { ram_slot_usage_t *slot_usage = persistent_data; (void) attributes; (void) method; - DRIVER_ASSERT_RETURN( context->persistent_data_size == sizeof( ram_slot_usage_t ) ); - for( *slot_number = ram_min_slot; - *slot_number < ARRAY_LENGTH( ram_slots ); - ++( *slot_number ) ) - { - if( ! ( *slot_usage & 1 << *slot_number ) ) - { + DRIVER_ASSERT_RETURN(context->persistent_data_size == sizeof(ram_slot_usage_t)); + for (*slot_number = ram_min_slot; + *slot_number < ARRAY_LENGTH(ram_slots); + ++(*slot_number)) { + if (!(*slot_usage & 1 << *slot_number)) { ram_shadow_slot_usage = *slot_usage; - return( PSA_SUCCESS ); + return PSA_SUCCESS; } } - return( PSA_ERROR_INSUFFICIENT_STORAGE ); + return PSA_ERROR_INSUFFICIENT_STORAGE; } static psa_status_t ram_validate_slot_number( @@ -432,25 +429,26 @@ static psa_status_t ram_validate_slot_number( void *persistent_data, const psa_key_attributes_t *attributes, psa_key_creation_method_t method, - psa_key_slot_number_t slot_number ) + psa_key_slot_number_t slot_number) { (void) context; (void) persistent_data; (void) attributes; (void) method; - if( slot_number >= ARRAY_LENGTH( ram_slots ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - return( PSA_SUCCESS ); + if (slot_number >= ARRAY_LENGTH(ram_slots)) { + return PSA_ERROR_INVALID_ARGUMENT; + } + return PSA_SUCCESS; } -static psa_status_t ram_sign( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - psa_algorithm_t alg, - const uint8_t *hash, - size_t hash_length, - uint8_t *signature, - size_t signature_size, - size_t *signature_length ) +static psa_status_t ram_sign(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + psa_algorithm_t alg, + const uint8_t *hash, + size_t hash_length, + uint8_t *signature, + size_t signature_size, + size_t *signature_length) { ram_slot_t *slot; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -458,32 +456,32 @@ static psa_status_t ram_sign( psa_drv_se_context_t *context, psa_status_t status = PSA_ERROR_GENERIC_ERROR; (void) context; - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); slot = &ram_slots[slot_number]; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, slot->type ); - DRIVER_ASSERT( psa_import_key( &attributes, - slot->content, - PSA_BITS_TO_BYTES( slot->bits ), - &key ) == PSA_SUCCESS ); - status = psa_sign_hash( key, alg, - hash, hash_length, - signature, signature_size, signature_length ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, slot->type); + DRIVER_ASSERT(psa_import_key(&attributes, + slot->content, + PSA_BITS_TO_BYTES(slot->bits), + &key) == PSA_SUCCESS); + status = psa_sign_hash(key, alg, + hash, hash_length, + signature, signature_size, signature_length); exit: - psa_destroy_key( key ); - return( status ); + psa_destroy_key(key); + return status; } -static psa_status_t ram_verify( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - psa_algorithm_t alg, - const uint8_t *hash, - size_t hash_length, - const uint8_t *signature, - size_t signature_length ) +static psa_status_t ram_verify(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + psa_algorithm_t alg, + const uint8_t *hash, + size_t hash_length, + const uint8_t *signature, + size_t signature_length) { ram_slot_t *slot; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -491,24 +489,24 @@ static psa_status_t ram_verify( psa_drv_se_context_t *context, psa_status_t status = PSA_ERROR_GENERIC_ERROR; (void) context; - DRIVER_ASSERT_RETURN( slot_number < ARRAY_LENGTH( ram_slots ) ); + DRIVER_ASSERT_RETURN(slot_number < ARRAY_LENGTH(ram_slots)); slot = &ram_slots[slot_number]; - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, slot->type ); - DRIVER_ASSERT( psa_import_key( &attributes, - slot->content, - PSA_BITS_TO_BYTES( slot->bits ), - &key ) == - PSA_SUCCESS ); - status = psa_verify_hash( key, alg, - hash, hash_length, - signature, signature_length ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, slot->type); + DRIVER_ASSERT(psa_import_key(&attributes, + slot->content, + PSA_BITS_TO_BYTES(slot->bits), + &key) == + PSA_SUCCESS); + status = psa_verify_hash(key, alg, + hash, hash_length, + signature, signature_length); exit: - psa_destroy_key( key ); - return( status ); + psa_destroy_key(key); + return status; } @@ -516,8 +514,7 @@ exit: /* Other test helper functions */ /****************************************************************/ -typedef enum -{ +typedef enum { SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION, SIGN_IN_DRIVER_AND_PARALLEL_CREATION, SIGN_IN_DRIVER_THEN_EXPORT_PUBLIC, @@ -527,54 +524,49 @@ typedef enum * are consistent with the attributes used when creating the key. */ static int check_key_attributes( mbedtls_svc_key_id_t key, - const psa_key_attributes_t *reference_attributes ) + const psa_key_attributes_t *reference_attributes) { int ok = 0; psa_key_attributes_t actual_attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_ASSERT( psa_get_key_attributes( key, &actual_attributes ) ); + PSA_ASSERT(psa_get_key_attributes(key, &actual_attributes)); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &actual_attributes ), - psa_get_key_id( reference_attributes ) ) ); - TEST_EQUAL( psa_get_key_lifetime( &actual_attributes ), - psa_get_key_lifetime( reference_attributes ) ); - TEST_EQUAL( psa_get_key_type( &actual_attributes ), - psa_get_key_type( reference_attributes ) ); - TEST_EQUAL( psa_get_key_usage_flags( &actual_attributes ), - psa_get_key_usage_flags( reference_attributes ) ); - TEST_EQUAL( psa_get_key_algorithm( &actual_attributes ), - psa_get_key_algorithm( reference_attributes ) ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &actual_attributes ), - psa_get_key_enrollment_algorithm( reference_attributes ) ); - if( psa_get_key_bits( reference_attributes ) != 0 ) - { - TEST_EQUAL( psa_get_key_bits( &actual_attributes ), - psa_get_key_bits( reference_attributes ) ); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&actual_attributes), + psa_get_key_id(reference_attributes))); + TEST_EQUAL(psa_get_key_lifetime(&actual_attributes), + psa_get_key_lifetime(reference_attributes)); + TEST_EQUAL(psa_get_key_type(&actual_attributes), + psa_get_key_type(reference_attributes)); + TEST_EQUAL(psa_get_key_usage_flags(&actual_attributes), + psa_get_key_usage_flags(reference_attributes)); + TEST_EQUAL(psa_get_key_algorithm(&actual_attributes), + psa_get_key_algorithm(reference_attributes)); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&actual_attributes), + psa_get_key_enrollment_algorithm(reference_attributes)); + if (psa_get_key_bits(reference_attributes) != 0) { + TEST_EQUAL(psa_get_key_bits(&actual_attributes), + psa_get_key_bits(reference_attributes)); } { psa_key_slot_number_t actual_slot_number = 0xdeadbeef; psa_key_slot_number_t desired_slot_number = 0xb90cc011; psa_key_lifetime_t lifetime = - psa_get_key_lifetime( &actual_attributes ); - psa_status_t status = psa_get_key_slot_number( &actual_attributes, - &actual_slot_number ); - if( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) < MIN_DRIVER_LOCATION ) - { + psa_get_key_lifetime(&actual_attributes); + psa_status_t status = psa_get_key_slot_number(&actual_attributes, + &actual_slot_number); + if (PSA_KEY_LIFETIME_GET_LOCATION(lifetime) < MIN_DRIVER_LOCATION) { /* The key is not in a secure element. */ - TEST_EQUAL( status, PSA_ERROR_INVALID_ARGUMENT ); - } - else - { + TEST_EQUAL(status, PSA_ERROR_INVALID_ARGUMENT); + } else { /* The key is in a secure element. If it had been created * in a specific slot, check that it is reported there. */ - PSA_ASSERT( status ); - status = psa_get_key_slot_number( reference_attributes, - &desired_slot_number ); - if( status == PSA_SUCCESS ) - { - TEST_EQUAL( desired_slot_number, actual_slot_number ); + PSA_ASSERT(status); + status = psa_get_key_slot_number(reference_attributes, + &desired_slot_number); + if (status == PSA_SUCCESS) { + TEST_EQUAL(desired_slot_number, actual_slot_number); } } } @@ -585,65 +577,65 @@ exit: * Actual key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &actual_attributes ); + psa_reset_key_attributes(&actual_attributes); - return( ok ); + return ok; } /* Get the file UID corresponding to the specified location. * If this changes, the storage format version must change. * See psa_get_se_driver_its_file_uid() in psa_crypto_se.c. */ -psa_storage_uid_t file_uid_for_location( psa_key_location_t location ) +psa_storage_uid_t file_uid_for_location(psa_key_location_t location) { - if( location > PSA_MAX_SE_LOCATION ) - return( 0 ); - return( 0xfffffe00 + location ); + if (location > PSA_MAX_SE_LOCATION) { + return 0; + } + return 0xfffffe00 + location; } /* Check that the persistent data of a driver has its expected content. */ -static int check_persistent_data( psa_key_location_t location, - const void *expected_data, - size_t size ) +static int check_persistent_data(psa_key_location_t location, + const void *expected_data, + size_t size) { - psa_storage_uid_t uid = file_uid_for_location( location ); + psa_storage_uid_t uid = file_uid_for_location(location); struct psa_storage_info_t info; uint8_t *loaded = NULL; int ok = 0; - PSA_ASSERT( psa_its_get_info( uid, &info ) ); - ASSERT_ALLOC( loaded, info.size ); - PSA_ASSERT( psa_its_get( uid, 0, info.size, loaded, NULL ) ); - ASSERT_COMPARE( expected_data, size, loaded, info.size ); + PSA_ASSERT(psa_its_get_info(uid, &info)); + ASSERT_ALLOC(loaded, info.size); + PSA_ASSERT(psa_its_get(uid, 0, info.size, loaded, NULL)); + ASSERT_COMPARE(expected_data, size, loaded, info.size); ok = 1; exit: - mbedtls_free( loaded ); - return( ok ); + mbedtls_free(loaded); + return ok; } /* Check that no persistent data exists for the given location. */ -static int check_no_persistent_data( psa_key_location_t location ) +static int check_no_persistent_data(psa_key_location_t location) { - psa_storage_uid_t uid = file_uid_for_location( location ); + psa_storage_uid_t uid = file_uid_for_location(location); struct psa_storage_info_t info; int ok = 0; - TEST_EQUAL( psa_its_get_info( uid, &info ), PSA_ERROR_DOES_NOT_EXIST ); + TEST_EQUAL(psa_its_get_info(uid, &info), PSA_ERROR_DOES_NOT_EXIST); ok = 1; exit: - return( ok ); + return ok; } /* Check that a function's return status is "smoke-free", i.e. that * it's an acceptable error code when calling an API function that operates * on a key with potentially bogus parameters. */ #if defined(AT_LEAST_ONE_BUILTIN_KDF) -static int is_status_smoke_free( psa_status_t status ) +static int is_status_smoke_free(psa_status_t status) { - switch( status ) - { + switch (status) { case PSA_SUCCESS: case PSA_ERROR_NOT_SUPPORTED: case PSA_ERROR_NOT_PERMITTED: @@ -651,22 +643,22 @@ static int is_status_smoke_free( psa_status_t status ) case PSA_ERROR_INVALID_ARGUMENT: case PSA_ERROR_INVALID_SIGNATURE: case PSA_ERROR_INVALID_PADDING: - return( 1 ); + return 1; default: - return( 0 ); + return 0; } } #endif /* AT_LEAST_ONE_BUILTIN_KDF */ -#define SMOKE_ASSERT( expr ) \ - TEST_ASSERT( is_status_smoke_free( expr ) ) +#define SMOKE_ASSERT(expr) \ + TEST_ASSERT(is_status_smoke_free(expr)) /* Smoke test a key. There are mostly no wrong answers here since we pass * mostly bogus parameters: the goal is to ensure that there is no memory * corruption or crash. This test function is most useful when run under * an environment with sanity checks such as ASan or MSan. */ #if defined(AT_LEAST_ONE_BUILTIN_KDF) -static int smoke_test_key( mbedtls_svc_key_id_t key ) +static int smoke_test_key(mbedtls_svc_key_id_t key) { int ok = 0; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -678,88 +670,88 @@ static int smoke_test_key( mbedtls_svc_key_id_t key ) size_t length; mbedtls_svc_key_id_t key2 = MBEDTLS_SVC_KEY_ID_INIT; - SMOKE_ASSERT( psa_get_key_attributes( key, &attributes ) ); + SMOKE_ASSERT(psa_get_key_attributes(key, &attributes)); - SMOKE_ASSERT( psa_export_key( key, - buffer, sizeof( buffer ), &length ) ); - SMOKE_ASSERT( psa_export_public_key( key, - buffer, sizeof( buffer ), &length ) ); + SMOKE_ASSERT(psa_export_key(key, + buffer, sizeof(buffer), &length)); + SMOKE_ASSERT(psa_export_public_key(key, + buffer, sizeof(buffer), &length)); - SMOKE_ASSERT( psa_copy_key( key, &attributes, &key2 ) ); - if( ! mbedtls_svc_key_id_is_null( key2 ) ) - PSA_ASSERT( psa_destroy_key( key2 ) ); + SMOKE_ASSERT(psa_copy_key(key, &attributes, &key2)); + if (!mbedtls_svc_key_id_is_null(key2)) { + PSA_ASSERT(psa_destroy_key(key2)); + } - SMOKE_ASSERT( psa_mac_sign_setup( &mac_operation, key, PSA_ALG_CMAC ) ); - PSA_ASSERT( psa_mac_abort( &mac_operation ) ); - SMOKE_ASSERT( psa_mac_verify_setup( &mac_operation, key, - PSA_ALG_HMAC( PSA_ALG_SHA_256 ) ) ); - PSA_ASSERT( psa_mac_abort( &mac_operation ) ); + SMOKE_ASSERT(psa_mac_sign_setup(&mac_operation, key, PSA_ALG_CMAC)); + PSA_ASSERT(psa_mac_abort(&mac_operation)); + SMOKE_ASSERT(psa_mac_verify_setup(&mac_operation, key, + PSA_ALG_HMAC(PSA_ALG_SHA_256))); + PSA_ASSERT(psa_mac_abort(&mac_operation)); - SMOKE_ASSERT( psa_cipher_encrypt_setup( &cipher_operation, key, - PSA_ALG_CTR ) ); - PSA_ASSERT( psa_cipher_abort( &cipher_operation ) ); - SMOKE_ASSERT( psa_cipher_decrypt_setup( &cipher_operation, key, - PSA_ALG_CTR ) ); - PSA_ASSERT( psa_cipher_abort( &cipher_operation ) ); + SMOKE_ASSERT(psa_cipher_encrypt_setup(&cipher_operation, key, + PSA_ALG_CTR)); + PSA_ASSERT(psa_cipher_abort(&cipher_operation)); + SMOKE_ASSERT(psa_cipher_decrypt_setup(&cipher_operation, key, + PSA_ALG_CTR)); + PSA_ASSERT(psa_cipher_abort(&cipher_operation)); - SMOKE_ASSERT( psa_aead_encrypt( key, PSA_ALG_CCM, - buffer, sizeof( buffer ), - NULL, 0, - buffer, sizeof( buffer), - buffer, sizeof( buffer), &length ) ); - SMOKE_ASSERT( psa_aead_decrypt( key, PSA_ALG_CCM, - buffer, sizeof( buffer ), - NULL, 0, - buffer, sizeof( buffer), - buffer, sizeof( buffer), &length ) ); + SMOKE_ASSERT(psa_aead_encrypt(key, PSA_ALG_CCM, + buffer, sizeof(buffer), + NULL, 0, + buffer, sizeof(buffer), + buffer, sizeof(buffer), &length)); + SMOKE_ASSERT(psa_aead_decrypt(key, PSA_ALG_CCM, + buffer, sizeof(buffer), + NULL, 0, + buffer, sizeof(buffer), + buffer, sizeof(buffer), &length)); - SMOKE_ASSERT( psa_sign_hash( key, PSA_ALG_ECDSA_ANY, + SMOKE_ASSERT(psa_sign_hash(key, PSA_ALG_ECDSA_ANY, + buffer, 32, + buffer, sizeof(buffer), &length)); + SMOKE_ASSERT(psa_verify_hash(key, PSA_ALG_ECDSA_ANY, buffer, 32, - buffer, sizeof( buffer ), &length ) ); - SMOKE_ASSERT( psa_verify_hash( key, PSA_ALG_ECDSA_ANY, - buffer, 32, - buffer, sizeof( buffer ) ) ); + buffer, sizeof(buffer))); - SMOKE_ASSERT( psa_asymmetric_encrypt( key, PSA_ALG_RSA_PKCS1V15_CRYPT, - buffer, 10, NULL, 0, - buffer, sizeof( buffer ), &length ) ); - SMOKE_ASSERT( psa_asymmetric_decrypt( key, PSA_ALG_RSA_PKCS1V15_CRYPT, - buffer, sizeof( buffer ), NULL, 0, - buffer, sizeof( buffer ), &length ) ); + SMOKE_ASSERT(psa_asymmetric_encrypt(key, PSA_ALG_RSA_PKCS1V15_CRYPT, + buffer, 10, NULL, 0, + buffer, sizeof(buffer), &length)); + SMOKE_ASSERT(psa_asymmetric_decrypt(key, PSA_ALG_RSA_PKCS1V15_CRYPT, + buffer, sizeof(buffer), NULL, 0, + buffer, sizeof(buffer), &length)); #if defined(MBEDTLS_SHA256_C) /* Try the key in a plain key derivation. */ - PSA_ASSERT( psa_key_derivation_setup( &derivation_operation, - PSA_ALG_HKDF( PSA_ALG_SHA_256 ) ) ); - PSA_ASSERT( psa_key_derivation_input_bytes( &derivation_operation, - PSA_KEY_DERIVATION_INPUT_SALT, - NULL, 0 ) ); - SMOKE_ASSERT( psa_key_derivation_input_key( &derivation_operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key ) ); - PSA_ASSERT( psa_key_derivation_abort( &derivation_operation ) ); + PSA_ASSERT(psa_key_derivation_setup(&derivation_operation, + PSA_ALG_HKDF(PSA_ALG_SHA_256))); + PSA_ASSERT(psa_key_derivation_input_bytes(&derivation_operation, + PSA_KEY_DERIVATION_INPUT_SALT, + NULL, 0)); + SMOKE_ASSERT(psa_key_derivation_input_key(&derivation_operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key)); + PSA_ASSERT(psa_key_derivation_abort(&derivation_operation)); /* If the key is asymmetric, try it in a key agreement, both as * part of a derivation operation and standalone. */ - if( psa_export_public_key( key, buffer, sizeof( buffer ), &length ) == - PSA_SUCCESS ) - { + if (psa_export_public_key(key, buffer, sizeof(buffer), &length) == + PSA_SUCCESS) { psa_algorithm_t alg = - PSA_ALG_KEY_AGREEMENT( PSA_ALG_ECDH, - PSA_ALG_HKDF( PSA_ALG_SHA_256 ) ); - PSA_ASSERT( psa_key_derivation_setup( &derivation_operation, alg ) ); - PSA_ASSERT( psa_key_derivation_input_bytes( - &derivation_operation, PSA_KEY_DERIVATION_INPUT_SALT, - NULL, 0 ) ); - SMOKE_ASSERT( psa_key_derivation_key_agreement( - &derivation_operation, - PSA_KEY_DERIVATION_INPUT_SECRET, - key, buffer, length ) ); - PSA_ASSERT( psa_key_derivation_abort( &derivation_operation ) ); + PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, + PSA_ALG_HKDF(PSA_ALG_SHA_256)); + PSA_ASSERT(psa_key_derivation_setup(&derivation_operation, alg)); + PSA_ASSERT(psa_key_derivation_input_bytes( + &derivation_operation, PSA_KEY_DERIVATION_INPUT_SALT, + NULL, 0)); + SMOKE_ASSERT(psa_key_derivation_key_agreement( + &derivation_operation, + PSA_KEY_DERIVATION_INPUT_SECRET, + key, buffer, length)); + PSA_ASSERT(psa_key_derivation_abort(&derivation_operation)); - SMOKE_ASSERT( psa_raw_key_agreement( - alg, key, buffer, length, - buffer, sizeof( buffer ), &length ) ); + SMOKE_ASSERT(psa_raw_key_agreement( + alg, key, buffer, length, + buffer, sizeof(buffer), &length)); } #endif /* MBEDTLS_SHA256_C */ @@ -770,23 +762,24 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - return( ok ); + return ok; } #endif /* AT_LEAST_ONE_BUILTIN_KDF */ -static void psa_purge_storage( void ) +static void psa_purge_storage(void) { /* The generic code in mbedtls_test_psa_purge_key_storage() * (which is called by PSA_DONE()) doesn't take care of things that are * specific to dynamic secure elements. */ psa_key_location_t location; /* Purge the transaction file. */ - psa_crypto_stop_transaction( ); + psa_crypto_stop_transaction(); /* Purge driver persistent data. */ - for( location = 0; location < PSA_MAX_SE_LOCATION; location++ ) - psa_destroy_se_persistent_data( location ); + for (location = 0; location < PSA_MAX_SE_LOCATION; location++) { + psa_destroy_se_persistent_data(location); + } } /* END_HEADER */ @@ -797,205 +790,207 @@ static void psa_purge_storage( void ) */ /* BEGIN_CASE */ -void register_one( int location, int version, int expected_status_arg ) +void register_one(int location, int version, int expected_status_arg) { psa_status_t expected_status = expected_status_arg; psa_drv_se_t driver; - memset( &driver, 0, sizeof( driver ) ); + memset(&driver, 0, sizeof(driver)); driver.hal_version = version; - TEST_EQUAL( psa_register_se_driver( location, &driver ), - expected_status ); + TEST_EQUAL(psa_register_se_driver(location, &driver), + expected_status); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void register_twice( int count ) +void register_twice(int count) { psa_drv_se_t driver; psa_key_location_t location; psa_key_location_t max = MIN_DRIVER_LOCATION + count; - memset( &driver, 0, sizeof( driver ) ); + memset(&driver, 0, sizeof(driver)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; - for( location = MIN_DRIVER_LOCATION; location < max; location++ ) - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - for( location = MIN_DRIVER_LOCATION; location < max; location++ ) - TEST_EQUAL( psa_register_se_driver( location, &driver ), - PSA_ERROR_ALREADY_EXISTS ); + for (location = MIN_DRIVER_LOCATION; location < max; location++) { + PSA_ASSERT(psa_register_se_driver(location, &driver)); + } + for (location = MIN_DRIVER_LOCATION; location < max; location++) { + TEST_EQUAL(psa_register_se_driver(location, &driver), + PSA_ERROR_ALREADY_EXISTS); + } - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void register_max( ) +void register_max() { psa_drv_se_t driver; psa_key_location_t location; psa_key_location_t max = MIN_DRIVER_LOCATION + PSA_MAX_SE_DRIVERS; - memset( &driver, 0, sizeof( driver ) ); + memset(&driver, 0, sizeof(driver)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; - for( location = MIN_DRIVER_LOCATION; location < max; location++ ) - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); + for (location = MIN_DRIVER_LOCATION; location < max; location++) { + PSA_ASSERT(psa_register_se_driver(location, &driver)); + } - TEST_EQUAL( psa_register_se_driver( location, &driver ), - PSA_ERROR_INSUFFICIENT_MEMORY ); + TEST_EQUAL(psa_register_se_driver(location, &driver), + PSA_ERROR_INSUFFICIENT_MEMORY); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_creation_import_export( int lifetime_arg, int min_slot, int restart ) +void key_creation_import_export(int lifetime_arg, int min_slot, int restart) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = (psa_key_lifetime_t) lifetime_arg; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_handle_t handle; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; - uint8_t exported[sizeof( key_material )]; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; + uint8_t exported[sizeof(key_material)]; size_t exported_length; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; - driver.persistent_data_size = sizeof( ram_slot_usage_t ); + driver.persistent_data_size = sizeof(ram_slot_usage_t); key_management.p_allocate = ram_allocate; key_management.p_import = ram_import; key_management.p_destroy = ram_destroy; key_management.p_export = ram_export; ram_min_slot = min_slot; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); /* Create a key. */ - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { /* For volatile keys, check no persistent data was created */ - if( ! check_no_persistent_data( location ) ) + if (!check_no_persistent_data(location)) { goto exit; - } - else - { + } + } else { /* For persistent keys, check persistent data */ - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; + } } /* Test that the key was created in the expected slot. */ - TEST_EQUAL( ram_slots[min_slot].type, PSA_KEY_TYPE_RAW_DATA ); + TEST_EQUAL(ram_slots[min_slot].type, PSA_KEY_TYPE_RAW_DATA); /* Maybe restart, to check that the information is saved correctly. */ - if( restart ) - { - mbedtls_psa_crypto_free( ); - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + if (restart) { + mbedtls_psa_crypto_free(); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { /* Check that the PSA core has no knowledge of the volatile key */ - TEST_ASSERT( psa_open_key( returned_id, &handle ) == - PSA_ERROR_DOES_NOT_EXIST ); + TEST_ASSERT(psa_open_key(returned_id, &handle) == + PSA_ERROR_DOES_NOT_EXIST); /* Drop data from our mockup driver */ ram_slots_reset(); ram_min_slot = min_slot; /* Re-import key */ - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); - } - else - { + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); + } else { /* Check the persistent key file */ - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; + } } } /* Test that the key was created in the expected slot. */ - TEST_EQUAL( ram_slots[min_slot].type, PSA_KEY_TYPE_RAW_DATA ); + TEST_EQUAL(ram_slots[min_slot].type, PSA_KEY_TYPE_RAW_DATA); /* Test the key attributes, including the reported slot number. */ - psa_set_key_bits( &attributes, - PSA_BYTES_TO_BITS( sizeof( key_material ) ) ); - psa_set_key_slot_number( &attributes, min_slot ); + psa_set_key_bits(&attributes, + PSA_BYTES_TO_BITS(sizeof(key_material))); + psa_set_key_slot_number(&attributes, min_slot); - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { attributes.core.id = returned_id; - else - psa_set_key_id( &attributes, returned_id ); + } else { + psa_set_key_id(&attributes, returned_id); + } - if( ! check_key_attributes( returned_id, &attributes ) ) + if (!check_key_attributes(returned_id, &attributes)) { goto exit; + } /* Test the key data. */ - PSA_ASSERT( psa_export_key( returned_id, - exported, sizeof( exported ), - &exported_length ) ); - ASSERT_COMPARE( key_material, sizeof( key_material ), - exported, exported_length ); + PSA_ASSERT(psa_export_key(returned_id, + exported, sizeof(exported), + &exported_length)); + ASSERT_COMPARE(key_material, sizeof(key_material), + exported, exported_length); - PSA_ASSERT( psa_destroy_key( returned_id ) ); - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + PSA_ASSERT(psa_destroy_key(returned_id)); + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; - TEST_EQUAL( psa_open_key( returned_id, &handle ), - PSA_ERROR_DOES_NOT_EXIST ); + } + TEST_EQUAL(psa_open_key(returned_id, &handle), + PSA_ERROR_DOES_NOT_EXIST); /* Test that the key has been erased from the designated slot. */ - TEST_EQUAL( ram_slots[min_slot].type, 0 ); + TEST_EQUAL(ram_slots[min_slot].type, 0); exit: - PSA_DONE( ); - ram_slots_reset( ); - psa_purge_storage( ); + PSA_DONE(); + ram_slots_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE */ -void key_creation_in_chosen_slot( int slot_arg, - int restart, - int expected_status_arg ) +void key_creation_in_chosen_slot(int slot_arg, + int restart, + int expected_status_arg) { psa_key_slot_number_t wanted_slot = slot_arg; psa_status_t expected_status = expected_status_arg; @@ -1003,200 +998,208 @@ void key_creation_in_chosen_slot( int slot_arg, psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_handle_t handle; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; - driver.persistent_data_size = sizeof( ram_slot_usage_t ); + driver.persistent_data_size = sizeof(ram_slot_usage_t); key_management.p_validate_slot_number = ram_validate_slot_number; key_management.p_import = ram_import; key_management.p_destroy = ram_destroy; key_management.p_export = ram_export; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); /* Create a key. */ - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - psa_set_key_slot_number( &attributes, wanted_slot ); - status = psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ); - TEST_EQUAL( status, expected_status ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + psa_set_key_slot_number(&attributes, wanted_slot); + status = psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id); + TEST_EQUAL(status, expected_status); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + } + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; + } /* Maybe restart, to check that the information is saved correctly. */ - if( restart ) - { - mbedtls_psa_crypto_free( ); - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + if (restart) { + mbedtls_psa_crypto_free(); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; + } } /* Test that the key was created in the expected slot. */ - TEST_EQUAL( ram_slots[wanted_slot].type, PSA_KEY_TYPE_RAW_DATA ); + TEST_EQUAL(ram_slots[wanted_slot].type, PSA_KEY_TYPE_RAW_DATA); /* Test that the key is reported with the correct attributes, * including the expected slot. */ - PSA_ASSERT( psa_get_key_attributes( id, &attributes ) ); + PSA_ASSERT(psa_get_key_attributes(id, &attributes)); - PSA_ASSERT( psa_destroy_key( id ) ); - if( ! check_persistent_data( location, - &ram_shadow_slot_usage, - sizeof( ram_shadow_slot_usage ) ) ) + PSA_ASSERT(psa_destroy_key(id)); + if (!check_persistent_data(location, + &ram_shadow_slot_usage, + sizeof(ram_shadow_slot_usage))) { goto exit; - TEST_EQUAL( psa_open_key( id, &handle ), PSA_ERROR_DOES_NOT_EXIST ); + } + TEST_EQUAL(psa_open_key(id, &handle), PSA_ERROR_DOES_NOT_EXIST); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - PSA_DONE( ); - ram_slots_reset( ); - psa_purge_storage( ); + PSA_DONE(); + ram_slots_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE depends_on:AT_LEAST_ONE_BUILTIN_KDF */ -void import_key_smoke( int type_arg, int alg_arg, - data_t *key_material ) +void import_key_smoke(int type_arg, int alg_arg, + data_t *key_material) { psa_key_type_t type = type_arg; psa_algorithm_t alg = alg_arg; psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_handle_t handle; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; - driver.persistent_data_size = sizeof( psa_key_slot_number_t ); + driver.persistent_data_size = sizeof(psa_key_slot_number_t); key_management.p_allocate = counter_allocate; key_management.p_import = null_import; key_management.p_destroy = null_destroy; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); /* Create a key. */ - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | - PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - PSA_ASSERT( psa_import_key( &attributes, - key_material->x, key_material->len, - &returned_id ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | + PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + PSA_ASSERT(psa_import_key(&attributes, + key_material->x, key_material->len, + &returned_id)); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; + } /* Do stuff with the key. */ - if( ! smoke_test_key( id ) ) + if (!smoke_test_key(id)) { goto exit; + } /* Restart and try again. */ - mbedtls_psa_crypto_free( ); - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + mbedtls_psa_crypto_free(); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; - if( ! smoke_test_key( id ) ) + } + if (!smoke_test_key(id)) { goto exit; + } /* We're done. */ - PSA_ASSERT( psa_destroy_key( id ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + PSA_ASSERT(psa_destroy_key(id)); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; - TEST_EQUAL( psa_open_key( id, &handle ), PSA_ERROR_DOES_NOT_EXIST ); + } + TEST_EQUAL(psa_open_key(id, &handle), PSA_ERROR_DOES_NOT_EXIST); exit: - PSA_DONE( ); - counter_reset( ); - psa_purge_storage( ); + PSA_DONE(); + counter_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE */ -void generate_key_not_supported( int type_arg, int bits_arg ) +void generate_key_not_supported(int type_arg, int bits_arg) { psa_key_type_t type = type_arg; size_t bits = bits_arg; psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; - driver.persistent_data_size = sizeof( psa_key_slot_number_t ); + driver.persistent_data_size = sizeof(psa_key_slot_number_t); key_management.p_allocate = counter_allocate; /* No p_generate method */ - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - TEST_EQUAL( psa_generate_key( &attributes, &returned_id ), - PSA_ERROR_NOT_SUPPORTED ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + TEST_EQUAL(psa_generate_key(&attributes, &returned_id), + PSA_ERROR_NOT_SUPPORTED); exit: - PSA_DONE( ); - counter_reset( ); - psa_purge_storage( ); + PSA_DONE(); + counter_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE depends_on:AT_LEAST_ONE_BUILTIN_KDF */ -void generate_key_smoke( int type_arg, int bits_arg, int alg_arg ) +void generate_key_smoke(int type_arg, int bits_arg, int alg_arg) { psa_key_type_t type = type_arg; psa_key_bits_t bits = bits_arg; @@ -1204,88 +1207,93 @@ void generate_key_smoke( int type_arg, int bits_arg, int alg_arg ) psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_handle_t handle; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; - driver.persistent_data_size = sizeof( psa_key_slot_number_t ); + driver.persistent_data_size = sizeof(psa_key_slot_number_t); key_management.p_allocate = counter_allocate; key_management.p_generate = null_generate; key_management.p_destroy = null_destroy; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); /* Create a key. */ - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | - PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | - PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - PSA_ASSERT( psa_generate_key( &attributes, &returned_id ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | + PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT | + PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + PSA_ASSERT(psa_generate_key(&attributes, &returned_id)); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; + } /* Do stuff with the key. */ - if( ! smoke_test_key( id ) ) + if (!smoke_test_key(id)) { goto exit; + } /* Restart and try again. */ - mbedtls_psa_crypto_free( ); - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + mbedtls_psa_crypto_free(); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; - if( ! smoke_test_key( id ) ) + } + if (!smoke_test_key(id)) { goto exit; + } /* We're done. */ - PSA_ASSERT( psa_destroy_key( id ) ); - if( ! check_persistent_data( location, - &shadow_counter, sizeof( shadow_counter ) ) ) + PSA_ASSERT(psa_destroy_key(id)); + if (!check_persistent_data(location, + &shadow_counter, sizeof(shadow_counter))) { goto exit; - TEST_EQUAL( psa_open_key( id, &handle ), PSA_ERROR_DOES_NOT_EXIST ); + } + TEST_EQUAL(psa_open_key(id, &handle), PSA_ERROR_DOES_NOT_EXIST); exit: - PSA_DONE( ); - counter_reset( ); - psa_purge_storage( ); + PSA_DONE(); + counter_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE */ -void sign_verify( int flow, - int type_arg, int alg_arg, - int bits_arg, data_t *key_material, - data_t *input ) +void sign_verify(int flow, + int type_arg, int alg_arg, + int bits_arg, data_t *key_material, + data_t *input) { psa_key_type_t type = type_arg; psa_algorithm_t alg = alg_arg; size_t bits = bits_arg; /* Pass bits=0 to import, bits>0 to fake-generate */ - int generating = ( bits != 0 ); + int generating = (bits != 0); psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_drv_se_asymmetric_t asymmetric; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; mbedtls_svc_key_id_t sw_key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t sw_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -1293,23 +1301,23 @@ void sign_verify( int flow, uint8_t signature[PSA_SIGNATURE_MAX_SIZE]; size_t signature_length; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); - memset( &asymmetric, 0, sizeof( asymmetric ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); + memset(&asymmetric, 0, sizeof(asymmetric)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; driver.asymmetric = &asymmetric; - driver.persistent_data_size = sizeof( ram_slot_usage_t ); + driver.persistent_data_size = sizeof(ram_slot_usage_t); key_management.p_allocate = ram_allocate; key_management.p_destroy = ram_destroy; - if( generating ) + if (generating) { key_management.p_generate = ram_fake_generate; - else + } else { key_management.p_import = ram_import; - switch( flow ) - { + } + switch (flow) { case SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION: break; case SIGN_IN_DRIVER_AND_PARALLEL_CREATION: @@ -1320,208 +1328,206 @@ void sign_verify( int flow, key_management.p_export_public = ram_export_public; break; default: - TEST_ASSERT( ! "unsupported flow (should be SIGN_IN_xxx)" ); + TEST_ASSERT(!"unsupported flow (should be SIGN_IN_xxx)"); break; } asymmetric.p_verify = ram_verify; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); /* Prepare to create two keys with the same key material: a transparent * key, and one that goes through the driver. */ - psa_set_key_usage_flags( &sw_attributes, - PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &sw_attributes, alg ); - psa_set_key_type( &sw_attributes, type ); + psa_set_key_usage_flags(&sw_attributes, + PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&sw_attributes, alg); + psa_set_key_type(&sw_attributes, type); drv_attributes = sw_attributes; - psa_set_key_id( &drv_attributes, id ); - psa_set_key_lifetime( &drv_attributes, lifetime ); + psa_set_key_id(&drv_attributes, id); + psa_set_key_lifetime(&drv_attributes, lifetime); /* Create the key in the driver. */ - if( generating ) - { - psa_set_key_bits( &drv_attributes, bits ); - PSA_ASSERT( psa_generate_key( &drv_attributes, &returned_id ) ); + if (generating) { + psa_set_key_bits(&drv_attributes, bits); + PSA_ASSERT(psa_generate_key(&drv_attributes, &returned_id)); /* Since we called a generate method that does not actually * generate material, store the desired result of generation in * the mock secure element storage. */ - PSA_ASSERT( psa_get_key_attributes( id, &drv_attributes ) ); - TEST_EQUAL( key_material->len, PSA_BITS_TO_BYTES( bits ) ); - memcpy( ram_slots[ram_min_slot].content, key_material->x, - key_material->len ); - } - else - { - PSA_ASSERT( psa_import_key( &drv_attributes, - key_material->x, key_material->len, - &returned_id ) ); + PSA_ASSERT(psa_get_key_attributes(id, &drv_attributes)); + TEST_EQUAL(key_material->len, PSA_BITS_TO_BYTES(bits)); + memcpy(ram_slots[ram_min_slot].content, key_material->x, + key_material->len); + } else { + PSA_ASSERT(psa_import_key(&drv_attributes, + key_material->x, key_material->len, + &returned_id)); } /* Either import the same key in software, or export the driver's * public key and import that. */ - switch( flow ) - { + switch (flow) { case SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION: case SIGN_IN_DRIVER_AND_PARALLEL_CREATION: - PSA_ASSERT( psa_import_key( &sw_attributes, - key_material->x, key_material->len, - &sw_key ) ); + PSA_ASSERT(psa_import_key(&sw_attributes, + key_material->x, key_material->len, + &sw_key)); break; case SIGN_IN_DRIVER_THEN_EXPORT_PUBLIC: { - uint8_t public_key[PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE( PSA_VENDOR_ECC_MAX_CURVE_BITS )]; + uint8_t public_key[PSA_KEY_EXPORT_ECC_PUBLIC_KEY_MAX_SIZE(PSA_VENDOR_ECC_MAX_CURVE_BITS) + ]; size_t public_key_length; - PSA_ASSERT( psa_export_public_key( id, - public_key, sizeof( public_key ), - &public_key_length ) ); - psa_set_key_type( &sw_attributes, - PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR( type ) ); - PSA_ASSERT( psa_import_key( &sw_attributes, - public_key, public_key_length, - &sw_key ) ); + PSA_ASSERT(psa_export_public_key(id, + public_key, sizeof(public_key), + &public_key_length)); + psa_set_key_type(&sw_attributes, + PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type)); + PSA_ASSERT(psa_import_key(&sw_attributes, + public_key, public_key_length, + &sw_key)); break; } } /* Sign with the chosen key. */ - switch( flow ) - { + switch (flow) { case SIGN_IN_DRIVER_AND_PARALLEL_CREATION: case SIGN_IN_DRIVER_THEN_EXPORT_PUBLIC: PSA_ASSERT_VIA_DRIVER( - psa_sign_hash( id, alg, - input->x, input->len, - signature, sizeof( signature ), - &signature_length ), - PSA_SUCCESS ); + psa_sign_hash(id, alg, + input->x, input->len, + signature, sizeof(signature), + &signature_length), + PSA_SUCCESS); break; case SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION: - PSA_ASSERT( psa_sign_hash( sw_key, alg, - input->x, input->len, - signature, sizeof( signature ), - &signature_length ) ); + PSA_ASSERT(psa_sign_hash(sw_key, alg, + input->x, input->len, + signature, sizeof(signature), + &signature_length)); break; } /* Verify with both keys. */ - PSA_ASSERT( psa_verify_hash( sw_key, alg, - input->x, input->len, - signature, signature_length ) ); + PSA_ASSERT(psa_verify_hash(sw_key, alg, + input->x, input->len, + signature, signature_length)); PSA_ASSERT_VIA_DRIVER( - psa_verify_hash( id, alg, - input->x, input->len, - signature, signature_length ), - PSA_SUCCESS ); + psa_verify_hash(id, alg, + input->x, input->len, + signature, signature_length), + PSA_SUCCESS); /* Change the signature and verify again. */ signature[0] ^= 1; - TEST_EQUAL( psa_verify_hash( sw_key, alg, - input->x, input->len, - signature, signature_length ), - PSA_ERROR_INVALID_SIGNATURE ); + TEST_EQUAL(psa_verify_hash(sw_key, alg, + input->x, input->len, + signature, signature_length), + PSA_ERROR_INVALID_SIGNATURE); PSA_ASSERT_VIA_DRIVER( - psa_verify_hash( id, alg, - input->x, input->len, - signature, signature_length ), - PSA_ERROR_INVALID_SIGNATURE ); + psa_verify_hash(id, alg, + input->x, input->len, + signature, signature_length), + PSA_ERROR_INVALID_SIGNATURE); exit: /* * Driver key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &drv_attributes ); + psa_reset_key_attributes(&drv_attributes); - psa_destroy_key( id ); - psa_destroy_key( sw_key ); - PSA_DONE( ); - ram_slots_reset( ); - psa_purge_storage( ); + psa_destroy_key(id); + psa_destroy_key(sw_key); + PSA_DONE(); + ram_slots_reset(); + psa_purge_storage(); } /* END_CASE */ /* BEGIN_CASE */ -void register_key_smoke_test( int lifetime_arg, - int owner_id_arg, - int id_arg, - int validate, - int expected_status_arg ) +void register_key_smoke_test(int lifetime_arg, + int owner_id_arg, + int id_arg, + int validate, + int expected_status_arg) { psa_key_lifetime_t lifetime = lifetime_arg; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); psa_status_t expected_status = expected_status_arg; psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( owner_id_arg, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(owner_id_arg, id_arg); psa_key_handle_t handle; size_t bit_size = 48; psa_key_slot_number_t wanted_slot = 0x123456789; psa_status_t status; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - memset( &driver, 0, sizeof( driver ) ); + memset(&driver, 0, sizeof(driver)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; - memset( &key_management, 0, sizeof( key_management ) ); + memset(&key_management, 0, sizeof(key_management)); driver.key_management = &key_management; key_management.p_destroy = null_destroy; - if( validate >= 0 ) - { + if (validate >= 0) { key_management.p_validate_slot_number = validate_slot_number_as_directed; validate_slot_number_directions.slot_number = wanted_slot; validate_slot_number_directions.method = PSA_KEY_CREATION_REGISTER; validate_slot_number_directions.status = - ( validate > 0 ? PSA_SUCCESS : PSA_ERROR_NOT_PERMITTED ); + (validate > 0 ? PSA_SUCCESS : PSA_ERROR_NOT_PERMITTED); } - mbedtls_test_set_step( 1 ); - PSA_ASSERT( psa_register_se_driver( MIN_DRIVER_LOCATION, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + mbedtls_test_set_step(1); + PSA_ASSERT(psa_register_se_driver(MIN_DRIVER_LOCATION, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - psa_set_key_bits( &attributes, bit_size ); - psa_set_key_slot_number( &attributes, wanted_slot ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + psa_set_key_bits(&attributes, bit_size); + psa_set_key_slot_number(&attributes, wanted_slot); - status = mbedtls_psa_register_se_key( &attributes ); - TEST_EQUAL( status, expected_status ); + status = mbedtls_psa_register_se_key(&attributes); + TEST_EQUAL(status, expected_status); - if( status != PSA_SUCCESS ) + if (status != PSA_SUCCESS) { goto exit; + } /* Test that the key exists and has the expected attributes. */ - if( ! check_key_attributes( id, &attributes ) ) + if (!check_key_attributes(id, &attributes)) { goto exit; + } #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) mbedtls_svc_key_id_t invalid_id = - mbedtls_svc_key_id_make( owner_id_arg + 1, id_arg ); - TEST_EQUAL( psa_open_key( invalid_id, &handle ), PSA_ERROR_DOES_NOT_EXIST ); + mbedtls_svc_key_id_make(owner_id_arg + 1, id_arg); + TEST_EQUAL(psa_open_key(invalid_id, &handle), PSA_ERROR_DOES_NOT_EXIST); #endif - PSA_ASSERT( psa_purge_key( id ) ); + PSA_ASSERT(psa_purge_key(id)); /* Restart and try again. */ - mbedtls_test_set_step( 2 ); - PSA_SESSION_DONE( ); - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); - if( ! check_key_attributes( id, &attributes ) ) + mbedtls_test_set_step(2); + PSA_SESSION_DONE(); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); + if (!check_key_attributes(id, &attributes)) { goto exit; + } /* This time, destroy the key. */ - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_EQUAL( psa_open_key( id, &handle ), PSA_ERROR_DOES_NOT_EXIST ); + PSA_ASSERT(psa_destroy_key(id)); + TEST_EQUAL(psa_open_key(id, &handle), PSA_ERROR_DOES_NOT_EXIST); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( id ); - PSA_DONE( ); - psa_purge_storage( ); - memset( &validate_slot_number_directions, 0, - sizeof( validate_slot_number_directions ) ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(id); + PSA_DONE(); + psa_purge_storage(); + memset(&validate_slot_number_directions, 0, + sizeof(validate_slot_number_directions)); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function b/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function index 12c58ebbb..6f28f93e5 100644 --- a/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function +++ b/tests/suites/test_suite_psa_crypto_se_driver_hal_mocks.function @@ -7,18 +7,16 @@ /** The location and lifetime used for tests that use a single driver. */ #define TEST_DRIVER_LOCATION 1 #define TEST_SE_PERSISTENT_LIFETIME \ - ( PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ - PSA_KEY_PERSISTENCE_DEFAULT, TEST_DRIVER_LOCATION ) ) + (PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION( \ + PSA_KEY_PERSISTENCE_DEFAULT, TEST_DRIVER_LOCATION)) -static struct -{ +static struct { uint16_t called; psa_key_location_t location; psa_status_t return_value; } mock_init_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t key_slot; psa_key_attributes_t attributes; @@ -26,8 +24,7 @@ static struct psa_status_t return_value; } mock_generate_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t key_slot; psa_key_attributes_t attributes; @@ -36,24 +33,21 @@ static struct psa_status_t return_value; } mock_import_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t slot_number; size_t data_size; psa_status_t return_value; } mock_export_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t slot_number; size_t data_size; psa_status_t return_value; } mock_export_public_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t key_slot; psa_algorithm_t alg; @@ -62,8 +56,7 @@ static struct psa_status_t return_value; } mock_sign_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t key_slot; psa_algorithm_t alg; @@ -72,21 +65,19 @@ static struct psa_status_t return_value; } mock_verify_data; -static struct -{ +static struct { uint16_t called; psa_status_t return_value; } mock_allocate_data; -static struct -{ +static struct { uint16_t called; psa_key_slot_number_t slot_number; psa_status_t return_value; } mock_destroy_data; #define MAX_KEY_ID_FOR_TEST 10 -static void psa_purge_storage( void ) +static void psa_purge_storage(void) { psa_key_id_t id; psa_key_location_t location; @@ -94,48 +85,50 @@ static void psa_purge_storage( void ) /* The tests may have potentially created key ids from 1 to * MAX_KEY_ID_FOR_TEST. In addition, run the destroy function on key id * 0, which file-based storage uses as a temporary file. */ - for( id = 0; id <= MAX_KEY_ID_FOR_TEST; id++ ) - psa_destroy_persistent_key( mbedtls_svc_key_id_make( 1, id ) ); + for (id = 0; id <= MAX_KEY_ID_FOR_TEST; id++) { + psa_destroy_persistent_key(mbedtls_svc_key_id_make(1, id)); + } /* Purge the transaction file. */ - psa_crypto_stop_transaction( ); + psa_crypto_stop_transaction(); /* Purge driver persistent data. */ - for( location = 0; location < PSA_MAX_SE_LOCATION; location++ ) - psa_destroy_se_persistent_data( location ); + for (location = 0; location < PSA_MAX_SE_LOCATION; location++) { + psa_destroy_se_persistent_data(location); + } } -static void mock_teardown( void ) +static void mock_teardown(void) { - memset( &mock_init_data, 0, sizeof( mock_init_data ) ); - memset( &mock_import_data, 0, sizeof( mock_import_data ) ); - memset( &mock_export_data, 0, sizeof( mock_export_data ) ); - memset( &mock_export_public_data, 0, sizeof( mock_export_public_data ) ); - memset( &mock_sign_data, 0, sizeof( mock_sign_data ) ); - memset( &mock_verify_data, 0, sizeof( mock_verify_data ) ); - memset( &mock_allocate_data, 0, sizeof( mock_allocate_data ) ); - memset( &mock_destroy_data, 0, sizeof( mock_destroy_data ) ); - memset( &mock_generate_data, 0, sizeof( mock_generate_data ) ); - psa_purge_storage( ); + memset(&mock_init_data, 0, sizeof(mock_init_data)); + memset(&mock_import_data, 0, sizeof(mock_import_data)); + memset(&mock_export_data, 0, sizeof(mock_export_data)); + memset(&mock_export_public_data, 0, sizeof(mock_export_public_data)); + memset(&mock_sign_data, 0, sizeof(mock_sign_data)); + memset(&mock_verify_data, 0, sizeof(mock_verify_data)); + memset(&mock_allocate_data, 0, sizeof(mock_allocate_data)); + memset(&mock_destroy_data, 0, sizeof(mock_destroy_data)); + memset(&mock_generate_data, 0, sizeof(mock_generate_data)); + psa_purge_storage(); } -static psa_status_t mock_init( psa_drv_se_context_t *drv_context, - void *persistent_data, - psa_key_location_t location ) +static psa_status_t mock_init(psa_drv_se_context_t *drv_context, + void *persistent_data, + psa_key_location_t location) { (void) drv_context; (void) persistent_data; mock_init_data.called++; mock_init_data.location = location; - return( mock_init_data.return_value ); + return mock_init_data.return_value; } -static psa_status_t mock_generate( psa_drv_se_context_t *drv_context, - psa_key_slot_number_t key_slot, - const psa_key_attributes_t *attributes, - uint8_t *pubkey, - size_t pubkey_size, - size_t *pubkey_length ) +static psa_status_t mock_generate(psa_drv_se_context_t *drv_context, + psa_key_slot_number_t key_slot, + const psa_key_attributes_t *attributes, + uint8_t *pubkey, + size_t pubkey_size, + size_t *pubkey_length) { (void) drv_context; (void) pubkey; @@ -146,15 +139,15 @@ static psa_status_t mock_generate( psa_drv_se_context_t *drv_context, mock_generate_data.attributes = *attributes; mock_generate_data.pubkey_size = pubkey_size; - return( mock_generate_data.return_value ); + return mock_generate_data.return_value; } -static psa_status_t mock_import( psa_drv_se_context_t *drv_context, - psa_key_slot_number_t key_slot, - const psa_key_attributes_t *attributes, - const uint8_t *data, - size_t data_length, - size_t *bits ) +static psa_status_t mock_import(psa_drv_se_context_t *drv_context, + psa_key_slot_number_t key_slot, + const psa_key_attributes_t *attributes, + const uint8_t *data, + size_t data_length, + size_t *bits) { (void) drv_context; (void) data; @@ -166,14 +159,14 @@ static psa_status_t mock_import( psa_drv_se_context_t *drv_context, mock_import_data.attributes = *attributes; mock_import_data.data_length = data_length; - return( mock_import_data.return_value ); + return mock_import_data.return_value; } -psa_status_t mock_export( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - uint8_t *p_data, - size_t data_size, - size_t *p_data_length ) +psa_status_t mock_export(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + uint8_t *p_data, + size_t data_size, + size_t *p_data_length) { (void) context; (void) p_data; @@ -183,14 +176,14 @@ psa_status_t mock_export( psa_drv_se_context_t *context, mock_export_data.slot_number = slot_number; mock_export_data.data_size = data_size; - return( mock_export_data.return_value ); + return mock_export_data.return_value; } -psa_status_t mock_export_public( psa_drv_se_context_t *context, - psa_key_slot_number_t slot_number, - uint8_t *p_data, - size_t data_size, - size_t *p_data_length ) +psa_status_t mock_export_public(psa_drv_se_context_t *context, + psa_key_slot_number_t slot_number, + uint8_t *p_data, + size_t data_size, + size_t *p_data_length) { (void) context; (void) p_data; @@ -200,17 +193,17 @@ psa_status_t mock_export_public( psa_drv_se_context_t *context, mock_export_public_data.slot_number = slot_number; mock_export_public_data.data_size = data_size; - return( mock_export_public_data.return_value ); + return mock_export_public_data.return_value; } -psa_status_t mock_sign( psa_drv_se_context_t *context, - psa_key_slot_number_t key_slot, - psa_algorithm_t alg, - const uint8_t *p_hash, - size_t hash_length, - uint8_t *p_signature, - size_t signature_size, - size_t *p_signature_length ) +psa_status_t mock_sign(psa_drv_se_context_t *context, + psa_key_slot_number_t key_slot, + psa_algorithm_t alg, + const uint8_t *p_hash, + size_t hash_length, + uint8_t *p_signature, + size_t signature_size, + size_t *p_signature_length) { (void) context; (void) p_hash; @@ -226,13 +219,13 @@ psa_status_t mock_sign( psa_drv_se_context_t *context, return mock_sign_data.return_value; } -psa_status_t mock_verify( psa_drv_se_context_t *context, - psa_key_slot_number_t key_slot, - psa_algorithm_t alg, - const uint8_t *p_hash, - size_t hash_length, - const uint8_t *p_signature, - size_t signature_length ) +psa_status_t mock_verify(psa_drv_se_context_t *context, + psa_key_slot_number_t key_slot, + psa_algorithm_t alg, + const uint8_t *p_hash, + size_t hash_length, + const uint8_t *p_signature, + size_t signature_length) { (void) context; (void) p_hash; @@ -247,11 +240,11 @@ psa_status_t mock_verify( psa_drv_se_context_t *context, return mock_verify_data.return_value; } -psa_status_t mock_allocate( psa_drv_se_context_t *drv_context, - void *persistent_data, - const psa_key_attributes_t *attributes, - psa_key_creation_method_t method, - psa_key_slot_number_t *key_slot ) +psa_status_t mock_allocate(psa_drv_se_context_t *drv_context, + void *persistent_data, + const psa_key_attributes_t *attributes, + psa_key_creation_method_t method, + psa_key_slot_number_t *key_slot) { (void) drv_context; (void) persistent_data; @@ -262,12 +255,12 @@ psa_status_t mock_allocate( psa_drv_se_context_t *drv_context, mock_allocate_data.called++; *key_slot = 0; - return( mock_allocate_data.return_value ); + return mock_allocate_data.return_value; } -psa_status_t mock_destroy( psa_drv_se_context_t *context, - void *persistent_data, - psa_key_slot_number_t slot_number ) +psa_status_t mock_destroy(psa_drv_se_context_t *context, + void *persistent_data, + psa_key_slot_number_t slot_number) { (void) context; (void) persistent_data; @@ -275,7 +268,7 @@ psa_status_t mock_destroy( psa_drv_se_context_t *context, mock_destroy_data.called++; mock_destroy_data.slot_number = slot_number; - return( mock_destroy_data.return_value ); + return mock_destroy_data.return_value; } /* END_HEADER */ @@ -286,11 +279,11 @@ psa_status_t mock_destroy( psa_drv_se_context_t *context, */ /* BEGIN_CASE */ -void mock_init( int location_arg, - int expected_register_status_arg, - int driver_status_arg, - int expected_psa_status_arg, - int expected_called ) +void mock_init(int location_arg, + int expected_register_status_arg, + int driver_status_arg, + int expected_psa_status_arg, + int expected_called) { psa_key_location_t location = location_arg; psa_status_t expected_register_status = expected_register_status_arg; @@ -304,112 +297,110 @@ void mock_init( int location_arg, mock_init_data.return_value = driver_status; - TEST_EQUAL( psa_register_se_driver( location, &driver ), - expected_register_status ); + TEST_EQUAL(psa_register_se_driver(location, &driver), + expected_register_status); psa_crypto_init_called = 1; - TEST_EQUAL( psa_crypto_init( ), expected_psa_status ); + TEST_EQUAL(psa_crypto_init(), expected_psa_status); - TEST_EQUAL( mock_init_data.called, expected_called ); - if( expected_called ) - TEST_EQUAL( mock_init_data.location, location ); + TEST_EQUAL(mock_init_data.called, expected_called); + if (expected_called) { + TEST_EQUAL(mock_init_data.location, location); + } exit: - if( psa_crypto_init_called ) - PSA_DONE( ); - mock_teardown( ); + if (psa_crypto_init_called) { + PSA_DONE(); + } + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_import( int mock_alloc_return_value, - int mock_import_return_value, - int bits, - int expected_result ) +void mock_import(int mock_alloc_return_value, + int mock_import_return_value, + int bits, + int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; mock_allocate_data.return_value = mock_alloc_return_value; mock_import_data.return_value = mock_import_return_value; mock_import_data.bits = bits; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; key_management.p_import = mock_import; key_management.p_destroy = mock_destroy; key_management.p_allocate = mock_allocate; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - TEST_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) == expected_result ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + TEST_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id) == expected_result); - TEST_ASSERT( mock_allocate_data.called == 1 ); - TEST_ASSERT( mock_import_data.called == - ( mock_alloc_return_value == PSA_SUCCESS? 1 : 0 ) ); + TEST_ASSERT(mock_allocate_data.called == 1); + TEST_ASSERT(mock_import_data.called == + (mock_alloc_return_value == PSA_SUCCESS ? 1 : 0)); - if( mock_alloc_return_value == PSA_SUCCESS ) - { - TEST_ASSERT( mbedtls_svc_key_id_equal( - mock_import_data.attributes.core.id, id ) ); - } - else - { - TEST_ASSERT( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( - mock_import_data.attributes.core.id ) == 0 ); - TEST_ASSERT( MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( - mock_import_data.attributes.core.id ) == 0 ); + if (mock_alloc_return_value == PSA_SUCCESS) { + TEST_ASSERT(mbedtls_svc_key_id_equal( + mock_import_data.attributes.core.id, id)); + } else { + TEST_ASSERT(MBEDTLS_SVC_KEY_ID_GET_KEY_ID( + mock_import_data.attributes.core.id) == 0); + TEST_ASSERT(MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( + mock_import_data.attributes.core.id) == 0); } - TEST_ASSERT( mock_import_data.attributes.core.lifetime == - ( mock_alloc_return_value == PSA_SUCCESS? lifetime : 0 ) ); - TEST_ASSERT( mock_import_data.attributes.core.policy.usage == - ( mock_alloc_return_value == PSA_SUCCESS? PSA_KEY_USAGE_EXPORT : 0 ) ); - TEST_ASSERT( mock_import_data.attributes.core.type == - ( mock_alloc_return_value == PSA_SUCCESS? PSA_KEY_TYPE_RAW_DATA : 0 ) ); + TEST_ASSERT(mock_import_data.attributes.core.lifetime == + (mock_alloc_return_value == PSA_SUCCESS ? lifetime : 0)); + TEST_ASSERT(mock_import_data.attributes.core.policy.usage == + (mock_alloc_return_value == PSA_SUCCESS ? PSA_KEY_USAGE_EXPORT : 0)); + TEST_ASSERT(mock_import_data.attributes.core.type == + (mock_alloc_return_value == PSA_SUCCESS ? PSA_KEY_TYPE_RAW_DATA : 0)); - if( expected_result == PSA_SUCCESS ) - { - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_ASSERT( mock_destroy_data.called == 1 ); + if (expected_result == PSA_SUCCESS) { + PSA_ASSERT(psa_destroy_key(id)); + TEST_ASSERT(mock_destroy_data.called == 1); } exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_export( int mock_export_return_value, int expected_result ) +void mock_export(int mock_export_return_value, int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; - uint8_t exported[sizeof( key_material )]; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; + uint8_t exported[sizeof(key_material)]; size_t exported_length; mock_export_data.return_value = mock_export_return_value; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; driver.p_init = mock_init; @@ -418,119 +409,115 @@ void mock_export( int mock_export_return_value, int expected_result ) key_management.p_destroy = mock_destroy; key_management.p_allocate = mock_allocate; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); - TEST_ASSERT( psa_export_key( id, - exported, sizeof( exported ), - &exported_length ) == expected_result ); + TEST_ASSERT(psa_export_key(id, + exported, sizeof(exported), + &exported_length) == expected_result); - TEST_ASSERT( mock_export_data.called == 1 ); + TEST_ASSERT(mock_export_data.called == 1); - PSA_ASSERT( psa_destroy_key( id ) ); + PSA_ASSERT(psa_destroy_key(id)); - TEST_ASSERT( mock_destroy_data.called == 1 ); + TEST_ASSERT(mock_destroy_data.called == 1); exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_generate( int mock_alloc_return_value, - int mock_generate_return_value, - int expected_result ) +void mock_generate(int mock_alloc_return_value, + int mock_generate_return_value, + int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; mock_allocate_data.return_value = mock_alloc_return_value; mock_generate_data.return_value = mock_generate_return_value; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; key_management.p_generate = mock_generate; key_management.p_destroy = mock_destroy; key_management.p_allocate = mock_allocate; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - psa_set_key_bits( &attributes, 8 ); - TEST_ASSERT( psa_generate_key( &attributes, &returned_id) == expected_result ); - TEST_ASSERT( mock_allocate_data.called == 1 ); - TEST_ASSERT( mock_generate_data.called == - ( mock_alloc_return_value == PSA_SUCCESS? 1 : 0 ) ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + psa_set_key_bits(&attributes, 8); + TEST_ASSERT(psa_generate_key(&attributes, &returned_id) == expected_result); + TEST_ASSERT(mock_allocate_data.called == 1); + TEST_ASSERT(mock_generate_data.called == + (mock_alloc_return_value == PSA_SUCCESS ? 1 : 0)); - if( mock_alloc_return_value == PSA_SUCCESS ) - { - TEST_ASSERT( mbedtls_svc_key_id_equal( - mock_generate_data.attributes.core.id, id ) ); - } - else - { - TEST_ASSERT( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( - mock_generate_data.attributes.core.id ) == 0 ); - TEST_ASSERT( MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( - mock_generate_data.attributes.core.id ) == 0 ); + if (mock_alloc_return_value == PSA_SUCCESS) { + TEST_ASSERT(mbedtls_svc_key_id_equal( + mock_generate_data.attributes.core.id, id)); + } else { + TEST_ASSERT(MBEDTLS_SVC_KEY_ID_GET_KEY_ID( + mock_generate_data.attributes.core.id) == 0); + TEST_ASSERT(MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( + mock_generate_data.attributes.core.id) == 0); } - TEST_ASSERT( mock_generate_data.attributes.core.lifetime == - ( mock_alloc_return_value == PSA_SUCCESS? lifetime : 0 ) ); - TEST_ASSERT( mock_generate_data.attributes.core.policy.usage == - ( mock_alloc_return_value == PSA_SUCCESS? PSA_KEY_USAGE_EXPORT : 0 ) ); - TEST_ASSERT( mock_generate_data.attributes.core.type == - ( mock_alloc_return_value == PSA_SUCCESS? PSA_KEY_TYPE_RAW_DATA : 0 ) ); + TEST_ASSERT(mock_generate_data.attributes.core.lifetime == + (mock_alloc_return_value == PSA_SUCCESS ? lifetime : 0)); + TEST_ASSERT(mock_generate_data.attributes.core.policy.usage == + (mock_alloc_return_value == PSA_SUCCESS ? PSA_KEY_USAGE_EXPORT : 0)); + TEST_ASSERT(mock_generate_data.attributes.core.type == + (mock_alloc_return_value == PSA_SUCCESS ? PSA_KEY_TYPE_RAW_DATA : 0)); - if( expected_result == PSA_SUCCESS ) - { - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_ASSERT( mock_destroy_data.called == 1 ); + if (expected_result == PSA_SUCCESS) { + PSA_ASSERT(psa_destroy_key(id)); + TEST_ASSERT(mock_destroy_data.called == 1); } exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_export_public( int mock_export_public_return_value, - int expected_result ) +void mock_export_public(int mock_export_public_return_value, + int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; - uint8_t exported[sizeof( key_material )]; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; + uint8_t exported[sizeof(key_material)]; size_t exported_length; mock_export_public_data.return_value = mock_export_public_return_value; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; driver.key_management = &key_management; key_management.p_import = mock_import; @@ -538,52 +525,52 @@ void mock_export_public( int mock_export_public_return_value, key_management.p_destroy = mock_destroy; key_management.p_allocate = mock_allocate; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_PUBLIC_KEY); - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); - TEST_ASSERT( psa_export_public_key( id, exported, sizeof(exported), - &exported_length ) == expected_result ); - TEST_ASSERT( mock_export_public_data.called == 1 ); + TEST_ASSERT(psa_export_public_key(id, exported, sizeof(exported), + &exported_length) == expected_result); + TEST_ASSERT(mock_export_public_data.called == 1); - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_ASSERT( mock_destroy_data.called == 1 ); + PSA_ASSERT(psa_destroy_key(id)); + TEST_ASSERT(mock_destroy_data.called == 1); exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_sign( int mock_sign_return_value, int expected_result ) +void mock_sign(int mock_sign_return_value, int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_drv_se_asymmetric_t asymmetric; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; psa_algorithm_t algorithm = PSA_ALG_ECDSA(PSA_ALG_SHA_256); - const uint8_t hash[1] = {'H'}; - uint8_t signature[1] = {'S'}; + const uint8_t hash[1] = { 'H' }; + uint8_t signature[1] = { 'S' }; size_t signature_length; mock_sign_data.return_value = mock_sign_return_value; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); - memset( &asymmetric, 0, sizeof( asymmetric ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); + memset(&asymmetric, 0, sizeof(asymmetric)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; @@ -595,55 +582,55 @@ void mock_sign( int mock_sign_return_value, int expected_result ) driver.asymmetric = &asymmetric; asymmetric.p_sign = mock_sign; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, algorithm ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RSA_KEY_PAIR ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, algorithm); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RSA_KEY_PAIR); - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); - TEST_ASSERT( psa_sign_hash( id, algorithm, - hash, sizeof( hash ), - signature, sizeof( signature ), - &signature_length) - == expected_result ); - TEST_ASSERT( mock_sign_data.called == 1 ); + TEST_ASSERT(psa_sign_hash(id, algorithm, + hash, sizeof(hash), + signature, sizeof(signature), + &signature_length) + == expected_result); + TEST_ASSERT(mock_sign_data.called == 1); - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_ASSERT( mock_destroy_data.called == 1 ); + PSA_ASSERT(psa_destroy_key(id)); + TEST_ASSERT(mock_destroy_data.called == 1); exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ /* BEGIN_CASE */ -void mock_verify( int mock_verify_return_value, int expected_result ) +void mock_verify(int mock_verify_return_value, int expected_result) { psa_drv_se_t driver; psa_drv_se_key_management_t key_management; psa_drv_se_asymmetric_t asymmetric; psa_key_lifetime_t lifetime = TEST_SE_PERSISTENT_LIFETIME; - psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, 1 ); + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, 1); mbedtls_svc_key_id_t returned_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - const uint8_t key_material[3] = {0xfa, 0xca, 0xde}; + const uint8_t key_material[3] = { 0xfa, 0xca, 0xde }; psa_algorithm_t algorithm = PSA_ALG_ECDSA(PSA_ALG_SHA_256); - const uint8_t hash[1] = {'H'}; - const uint8_t signature[1] = {'S'}; + const uint8_t hash[1] = { 'H' }; + const uint8_t signature[1] = { 'S' }; mock_verify_data.return_value = mock_verify_return_value; - memset( &driver, 0, sizeof( driver ) ); - memset( &key_management, 0, sizeof( key_management ) ); - memset( &asymmetric, 0, sizeof( asymmetric ) ); + memset(&driver, 0, sizeof(driver)); + memset(&key_management, 0, sizeof(key_management)); + memset(&asymmetric, 0, sizeof(asymmetric)); driver.hal_version = PSA_DRV_SE_HAL_VERSION; @@ -655,30 +642,30 @@ void mock_verify( int mock_verify_return_value, int expected_result ) driver.asymmetric = &asymmetric; asymmetric.p_verify = mock_verify; - PSA_ASSERT( psa_register_se_driver( location, &driver ) ); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_register_se_driver(location, &driver)); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); - psa_set_key_algorithm( &attributes, algorithm ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + psa_set_key_algorithm(&attributes, algorithm); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); - PSA_ASSERT( psa_import_key( &attributes, - key_material, sizeof( key_material ), - &returned_id ) ); + PSA_ASSERT(psa_import_key(&attributes, + key_material, sizeof(key_material), + &returned_id)); - TEST_ASSERT( psa_verify_hash( id, algorithm, - hash, sizeof( hash ), - signature, sizeof( signature ) ) - == expected_result ); - TEST_ASSERT( mock_verify_data.called == 1 ); + TEST_ASSERT(psa_verify_hash(id, algorithm, + hash, sizeof(hash), + signature, sizeof(signature)) + == expected_result); + TEST_ASSERT(mock_verify_data.called == 1); - PSA_ASSERT( psa_destroy_key( id ) ); - TEST_ASSERT( mock_destroy_data.called == 1 ); + PSA_ASSERT(psa_destroy_key(id)); + TEST_ASSERT(mock_destroy_data.called == 1); exit: - PSA_DONE( ); - mock_teardown( ); + PSA_DONE(); + mock_teardown(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_slot_management.function b/tests/suites/test_suite_psa_crypto_slot_management.function index d57766319..e3bb0d34f 100644 --- a/tests/suites/test_suite_psa_crypto_slot_management.function +++ b/tests/suites/test_suite_psa_crypto_slot_management.function @@ -4,8 +4,7 @@ #include "psa_crypto_slot_management.h" #include "psa_crypto_storage.h" -typedef enum -{ +typedef enum { /**< Close key(s) */ INVALIDATE_BY_CLOSING, @@ -28,15 +27,13 @@ typedef enum INVALIDATE_BY_PURGING_WITH_SHUTDOWN, } invalidate_method_t; -typedef enum -{ +typedef enum { KEEP_OPEN, CLOSE_BEFORE, CLOSE_AFTER, } reopen_policy_t; -typedef enum -{ +typedef enum { INVALID_HANDLE_0, INVALID_HANDLE_UNOPENED, INVALID_HANDLE_CLOSED, @@ -46,61 +43,59 @@ typedef enum /** Apply \p invalidate_method to invalidate the specified key: * close it, destroy it, or do nothing; */ -static int invalidate_key( invalidate_method_t invalidate_method, - mbedtls_svc_key_id_t key ) +static int invalidate_key(invalidate_method_t invalidate_method, + mbedtls_svc_key_id_t key) { - switch( invalidate_method ) - { + switch (invalidate_method) { /* Closing the key invalidate only volatile keys, not persistent ones. */ case INVALIDATE_BY_CLOSING: case INVALIDATE_BY_CLOSING_WITH_SHUTDOWN: - PSA_ASSERT( psa_close_key( key ) ); + PSA_ASSERT(psa_close_key(key)); break; case INVALIDATE_BY_DESTROYING: case INVALIDATE_BY_DESTROYING_WITH_SHUTDOWN: - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_destroy_key(key)); break; /* Purging the key just purges RAM data of persistent keys. */ case INVALIDATE_BY_PURGING: case INVALIDATE_BY_PURGING_WITH_SHUTDOWN: - PSA_ASSERT( psa_purge_key( key ) ); + PSA_ASSERT(psa_purge_key(key)); break; case INVALIDATE_BY_SHUTDOWN: break; } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } /** Restart the PSA subsystem if \p invalidate_method says so. */ -static int invalidate_psa( invalidate_method_t invalidate_method ) +static int invalidate_psa(invalidate_method_t invalidate_method) { - switch( invalidate_method ) - { + switch (invalidate_method) { case INVALIDATE_BY_CLOSING: case INVALIDATE_BY_DESTROYING: case INVALIDATE_BY_PURGING: - return( 1 ); + return 1; case INVALIDATE_BY_CLOSING_WITH_SHUTDOWN: case INVALIDATE_BY_DESTROYING_WITH_SHUTDOWN: case INVALIDATE_BY_PURGING_WITH_SHUTDOWN: /* All keys must have been closed. */ - PSA_SESSION_DONE( ); + PSA_SESSION_DONE(); break; case INVALIDATE_BY_SHUTDOWN: /* Some keys may remain behind, and we're testing that this * properly closes them. */ - mbedtls_psa_crypto_free( ); + mbedtls_psa_crypto_free(); break; } - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_PSA_PRISTINE( ); - return( 1 ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_PSA_PRISTINE(); + return 1; exit: - return( 0 ); + return 0; } /* END_HEADER */ @@ -111,10 +106,10 @@ exit: */ /* BEGIN_CASE */ -void transient_slot_lifecycle( int owner_id_arg, - int usage_arg, int alg_arg, - int type_arg, data_t *key_data, - int invalidate_method_arg ) +void transient_slot_lifecycle(int owner_id_arg, + int usage_arg, int alg_arg, + int type_arg, data_t *key_data, + int invalidate_method_arg) { psa_algorithm_t alg = alg_arg; psa_key_usage_t usage_flags = usage_arg; @@ -123,40 +118,40 @@ void transient_slot_lifecycle( int owner_id_arg, mbedtls_svc_key_id_t key = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_test_set_step( 1 ); - PSA_ASSERT( psa_crypto_init( ) ); + mbedtls_test_set_step(1); + PSA_ASSERT(psa_crypto_init()); /* Import a key. */ #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) mbedtls_key_owner_id_t owner_id = owner_id_arg; - mbedtls_set_key_owner_id( &attributes, owner_id ); + mbedtls_set_key_owner_id(&attributes, owner_id); #else - (void)owner_id_arg; + (void) owner_id_arg; #endif - psa_set_key_usage_flags( &attributes, usage_flags ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, type ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &key ) ); - TEST_ASSERT( ! mbedtls_svc_key_id_is_null( key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - psa_reset_key_attributes( &attributes ); + psa_set_key_usage_flags(&attributes, usage_flags); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, type); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &key)); + TEST_ASSERT(!mbedtls_svc_key_id_is_null(key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), type); + psa_reset_key_attributes(&attributes); #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) { psa_key_handle_t handle; mbedtls_svc_key_id_t key_with_invalid_owner = - mbedtls_svc_key_id_make( owner_id + 1, - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( key ) ); + mbedtls_svc_key_id_make(owner_id + 1, + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key)); - TEST_ASSERT( mbedtls_key_owner_id_equal( - owner_id, - MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( key ) ) ); - TEST_EQUAL( psa_open_key( key_with_invalid_owner, &handle ), - PSA_ERROR_DOES_NOT_EXIST ); + TEST_ASSERT(mbedtls_key_owner_id_equal( + owner_id, + MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(key))); + TEST_EQUAL(psa_open_key(key_with_invalid_owner, &handle), + PSA_ERROR_DOES_NOT_EXIST); } #endif @@ -164,42 +159,44 @@ void transient_slot_lifecycle( int owner_id_arg, * Purge the key and make sure that it is still valid, as purging a * volatile key shouldn't invalidate/destroy it. */ - PSA_ASSERT( psa_purge_key( key ) ); - PSA_ASSERT( psa_get_key_attributes( key, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); - psa_reset_key_attributes( &attributes ); + PSA_ASSERT(psa_purge_key(key)); + PSA_ASSERT(psa_get_key_attributes(key, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), type); + psa_reset_key_attributes(&attributes); /* Do something that invalidates the key. */ - mbedtls_test_set_step( 2 ); - if( ! invalidate_key( invalidate_method, key ) ) + mbedtls_test_set_step(2); + if (!invalidate_key(invalidate_method, key)) { goto exit; - if( ! invalidate_psa( invalidate_method ) ) + } + if (!invalidate_psa(invalidate_method)) { goto exit; + } /* Test that the key is now invalid. */ - TEST_EQUAL( psa_get_key_attributes( key, &attributes ), - PSA_ERROR_INVALID_HANDLE ); - TEST_EQUAL( psa_close_key( key ), PSA_ERROR_INVALID_HANDLE ); + TEST_EQUAL(psa_get_key_attributes(key, &attributes), + PSA_ERROR_INVALID_HANDLE); + TEST_EQUAL(psa_close_key(key), PSA_ERROR_INVALID_HANDLE); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C */ -void persistent_slot_lifecycle( int lifetime_arg, int owner_id_arg, int id_arg, - int usage_arg, int alg_arg, int alg2_arg, - int type_arg, data_t *key_data, - int invalidate_method_arg ) +void persistent_slot_lifecycle(int lifetime_arg, int owner_id_arg, int id_arg, + int usage_arg, int alg_arg, int alg2_arg, + int type_arg, data_t *key_data, + int invalidate_method_arg) { psa_key_lifetime_t lifetime = lifetime_arg; - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( owner_id_arg, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(owner_id_arg, id_arg); psa_algorithm_t alg = alg_arg; psa_algorithm_t alg2 = alg2_arg; psa_key_usage_t usage_flags = usage_arg; @@ -214,112 +211,110 @@ void persistent_slot_lifecycle( int lifetime_arg, int owner_id_arg, int id_arg, #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) mbedtls_svc_key_id_t wrong_owner_id = - mbedtls_svc_key_id_make( owner_id_arg + 1, id_arg ); + mbedtls_svc_key_id_make(owner_id_arg + 1, id_arg); mbedtls_svc_key_id_t invalid_svc_key_id = MBEDTLS_SVC_KEY_ID_INIT; #endif - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - mbedtls_test_set_step( 1 ); - PSA_ASSERT( psa_crypto_init( ) ); + mbedtls_test_set_step(1); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_type( &attributes, type ); - psa_set_key_usage_flags( &attributes, usage_flags ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_enrollment_algorithm( &attributes, alg2 ); - PSA_ASSERT( psa_import_key( &attributes, key_data->x, key_data->len, - &returned_id ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( id, returned_id ) ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_type(&attributes, type); + psa_set_key_usage_flags(&attributes, usage_flags); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_enrollment_algorithm(&attributes, alg2); + PSA_ASSERT(psa_import_key(&attributes, key_data->x, key_data->len, + &returned_id)); + TEST_ASSERT(mbedtls_svc_key_id_equal(id, returned_id)); #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - TEST_EQUAL( psa_open_key( wrong_owner_id, &invalid_svc_key_id ), - PSA_ERROR_DOES_NOT_EXIST ); + TEST_EQUAL(psa_open_key(wrong_owner_id, &invalid_svc_key_id), + PSA_ERROR_DOES_NOT_EXIST); #endif - PSA_ASSERT( psa_get_key_attributes( id, &attributes ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), lifetime ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), id ) ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - mbedtls_test_update_key_usage_flags( usage_flags ) ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), alg ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &attributes ), alg2 ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); + PSA_ASSERT(psa_get_key_attributes(id, &attributes)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), lifetime); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), id)); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + mbedtls_test_update_key_usage_flags(usage_flags)); + TEST_EQUAL(psa_get_key_algorithm(&attributes), alg); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&attributes), alg2); + TEST_EQUAL(psa_get_key_type(&attributes), type); /* Close the key and then open it. */ - PSA_ASSERT( psa_close_key( id ) ); + PSA_ASSERT(psa_close_key(id)); #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - TEST_EQUAL( psa_open_key( wrong_owner_id, &invalid_svc_key_id ), - PSA_ERROR_DOES_NOT_EXIST ); + TEST_EQUAL(psa_open_key(wrong_owner_id, &invalid_svc_key_id), + PSA_ERROR_DOES_NOT_EXIST); #endif - PSA_ASSERT( psa_open_key( id, &handle ) ); - TEST_ASSERT( ! psa_key_handle_is_null( handle ) ); - PSA_ASSERT( psa_get_key_attributes( handle, &attributes ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), lifetime ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), id ) ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - mbedtls_test_update_key_usage_flags( usage_flags ) ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), alg ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &attributes ), alg2 ); - TEST_EQUAL( psa_get_key_type( &attributes ), type ); + PSA_ASSERT(psa_open_key(id, &handle)); + TEST_ASSERT(!psa_key_handle_is_null(handle)); + PSA_ASSERT(psa_get_key_attributes(handle, &attributes)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), lifetime); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), id)); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + mbedtls_test_update_key_usage_flags(usage_flags)); + TEST_EQUAL(psa_get_key_algorithm(&attributes), alg); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&attributes), alg2); + TEST_EQUAL(psa_get_key_type(&attributes), type); /* * Do something that wipes key data in volatile memory or destroy the * key. */ - mbedtls_test_set_step( 2 ); - if( ! invalidate_key( invalidate_method, id ) ) + mbedtls_test_set_step(2); + if (!invalidate_key(invalidate_method, id)) { goto exit; - if( ! invalidate_psa( invalidate_method ) ) + } + if (!invalidate_psa(invalidate_method)) { goto exit; + } /* Try to reaccess the key. If we destroyed it, check that it doesn't * exist. Otherwise check that it still exists and has the expected * content. */ - switch( invalidate_method ) - { + switch (invalidate_method) { case INVALIDATE_BY_CLOSING: case INVALIDATE_BY_CLOSING_WITH_SHUTDOWN: case INVALIDATE_BY_PURGING: case INVALIDATE_BY_PURGING_WITH_SHUTDOWN: case INVALIDATE_BY_SHUTDOWN: - PSA_ASSERT( psa_open_key( id, &handle ) ); - PSA_ASSERT( psa_get_key_attributes( id, &read_attributes ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), - psa_get_key_lifetime( &read_attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), - psa_get_key_id( &read_attributes ) ) ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), - mbedtls_test_update_key_usage_flags( usage_flags ) ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), - psa_get_key_algorithm( &read_attributes ) ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( &attributes ), - psa_get_key_enrollment_algorithm( &read_attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), - psa_get_key_type( &read_attributes ) ); - TEST_EQUAL( psa_get_key_bits( &attributes ), - psa_get_key_bits( &read_attributes ) ); - ASSERT_ALLOC( reexported, key_data->len ); - if( usage_flags & PSA_KEY_USAGE_EXPORT ) - { - PSA_ASSERT( psa_export_key( id, reexported, key_data->len, - &reexported_length ) ); - ASSERT_COMPARE( key_data->x, key_data->len, - reexported, reexported_length ); + PSA_ASSERT(psa_open_key(id, &handle)); + PSA_ASSERT(psa_get_key_attributes(id, &read_attributes)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), + psa_get_key_lifetime(&read_attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), + psa_get_key_id(&read_attributes))); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), + mbedtls_test_update_key_usage_flags(usage_flags)); + TEST_EQUAL(psa_get_key_algorithm(&attributes), + psa_get_key_algorithm(&read_attributes)); + TEST_EQUAL(psa_get_key_enrollment_algorithm(&attributes), + psa_get_key_enrollment_algorithm(&read_attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), + psa_get_key_type(&read_attributes)); + TEST_EQUAL(psa_get_key_bits(&attributes), + psa_get_key_bits(&read_attributes)); + ASSERT_ALLOC(reexported, key_data->len); + if (usage_flags & PSA_KEY_USAGE_EXPORT) { + PSA_ASSERT(psa_export_key(id, reexported, key_data->len, + &reexported_length)); + ASSERT_COMPARE(key_data->x, key_data->len, + reexported, reexported_length); + } else { + TEST_EQUAL(psa_export_key(id, reexported, + key_data->len, &reexported_length), + PSA_ERROR_NOT_PERMITTED); } - else - { - TEST_EQUAL( psa_export_key( id, reexported, - key_data->len, &reexported_length ), - PSA_ERROR_NOT_PERMITTED ); - } - PSA_ASSERT( psa_close_key( handle ) ); + PSA_ASSERT(psa_close_key(handle)); break; case INVALIDATE_BY_DESTROYING: @@ -328,11 +323,11 @@ void persistent_slot_lifecycle( int lifetime_arg, int owner_id_arg, int id_arg, * Test that the key handle and identifier are now not referring to an * existing key. */ - TEST_EQUAL( psa_get_key_attributes( handle, &read_attributes ), - PSA_ERROR_INVALID_HANDLE ); - TEST_EQUAL( psa_close_key( handle ), PSA_ERROR_INVALID_HANDLE ); - TEST_EQUAL( psa_get_key_attributes( id, &read_attributes ), - PSA_ERROR_INVALID_HANDLE ); + TEST_EQUAL(psa_get_key_attributes(handle, &read_attributes), + PSA_ERROR_INVALID_HANDLE); + TEST_EQUAL(psa_close_key(handle), PSA_ERROR_INVALID_HANDLE); + TEST_EQUAL(psa_get_key_attributes(id, &read_attributes), + PSA_ERROR_INVALID_HANDLE); break; } @@ -341,158 +336,159 @@ exit: * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); - psa_reset_key_attributes( &read_attributes ); + psa_reset_key_attributes(&attributes); + psa_reset_key_attributes(&read_attributes); - PSA_DONE( ); - mbedtls_free( reexported ); + PSA_DONE(); + mbedtls_free(reexported); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C */ -void create_existent( int lifetime_arg, int owner_id_arg, int id_arg, - int reopen_policy_arg ) +void create_existent(int lifetime_arg, int owner_id_arg, int id_arg, + int reopen_policy_arg) { psa_key_lifetime_t lifetime = lifetime_arg; - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( owner_id_arg, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(owner_id_arg, id_arg); mbedtls_svc_key_id_t returned_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t type1 = PSA_KEY_TYPE_RAW_DATA; const uint8_t material1[5] = "a key"; const uint8_t material2[5] = "b key"; - size_t bits1 = PSA_BYTES_TO_BITS( sizeof( material1 ) ); - uint8_t reexported[sizeof( material1 )]; + size_t bits1 = PSA_BYTES_TO_BITS(sizeof(material1)); + uint8_t reexported[sizeof(material1)]; size_t reexported_length; reopen_policy_t reopen_policy = reopen_policy_arg; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Create a key. */ - psa_set_key_id( &attributes, id ); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_type( &attributes, type1 ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, 0 ); - PSA_ASSERT( psa_import_key( &attributes, material1, sizeof( material1 ), - &returned_id ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( id, returned_id ) ); + psa_set_key_id(&attributes, id); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_type(&attributes, type1); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, 0); + PSA_ASSERT(psa_import_key(&attributes, material1, sizeof(material1), + &returned_id)); + TEST_ASSERT(mbedtls_svc_key_id_equal(id, returned_id)); - if( reopen_policy == CLOSE_BEFORE ) - PSA_ASSERT( psa_close_key( id ) ); + if (reopen_policy == CLOSE_BEFORE) { + PSA_ASSERT(psa_close_key(id)); + } /* Attempt to create a new key in the same slot. */ - TEST_EQUAL( psa_import_key( &attributes, material2, sizeof( material2 ), - &returned_id ), - PSA_ERROR_ALREADY_EXISTS ); - TEST_ASSERT( mbedtls_svc_key_id_is_null( returned_id ) ); + TEST_EQUAL(psa_import_key(&attributes, material2, sizeof(material2), + &returned_id), + PSA_ERROR_ALREADY_EXISTS); + TEST_ASSERT(mbedtls_svc_key_id_is_null(returned_id)); - if( reopen_policy == CLOSE_AFTER ) - PSA_ASSERT( psa_close_key( id ) ); + if (reopen_policy == CLOSE_AFTER) { + PSA_ASSERT(psa_close_key(id)); + } /* Check that the original key hasn't changed. */ - psa_reset_key_attributes( &attributes ); - PSA_ASSERT( psa_get_key_attributes( id, &attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes ), id ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes ), lifetime ); - TEST_EQUAL( psa_get_key_type( &attributes ), type1 ); - TEST_EQUAL( psa_get_key_bits( &attributes ), bits1 ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes ), PSA_KEY_USAGE_EXPORT ); - TEST_EQUAL( psa_get_key_algorithm( &attributes ), 0 ); + psa_reset_key_attributes(&attributes); + PSA_ASSERT(psa_get_key_attributes(id, &attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes), id)); + TEST_EQUAL(psa_get_key_lifetime(&attributes), lifetime); + TEST_EQUAL(psa_get_key_type(&attributes), type1); + TEST_EQUAL(psa_get_key_bits(&attributes), bits1); + TEST_EQUAL(psa_get_key_usage_flags(&attributes), PSA_KEY_USAGE_EXPORT); + TEST_EQUAL(psa_get_key_algorithm(&attributes), 0); - PSA_ASSERT( psa_export_key( id, - reexported, sizeof( reexported ), - &reexported_length ) ); - ASSERT_COMPARE( material1, sizeof( material1 ), - reexported, reexported_length ); + PSA_ASSERT(psa_export_key(id, + reexported, sizeof(reexported), + &reexported_length)); + ASSERT_COMPARE(material1, sizeof(material1), + reexported, reexported_length); - PSA_ASSERT( psa_close_key( id ) ); + PSA_ASSERT(psa_close_key(id)); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void open_fail( int id_arg, - int expected_status_arg ) +void open_fail(int id_arg, + int expected_status_arg) { - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, id_arg); psa_status_t expected_status = expected_status_arg; - psa_key_handle_t handle = mbedtls_svc_key_id_make( 0xdead, 0xdead ); + psa_key_handle_t handle = mbedtls_svc_key_id_make(0xdead, 0xdead); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - TEST_EQUAL( psa_open_key( id, &handle ), expected_status ); - TEST_ASSERT( psa_key_handle_is_null( handle ) ); + TEST_EQUAL(psa_open_key(id, &handle), expected_status); + TEST_ASSERT(psa_key_handle_is_null(handle)); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void create_fail( int lifetime_arg, int id_arg, - int expected_status_arg ) +void create_fail(int lifetime_arg, int id_arg, + int expected_status_arg) { psa_key_lifetime_t lifetime = lifetime_arg; - mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make( 1, id_arg ); + mbedtls_svc_key_id_t id = mbedtls_svc_key_id_make(1, id_arg); psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_status_t expected_status = expected_status_arg; mbedtls_svc_key_id_t returned_id = - mbedtls_svc_key_id_make( 0xdead, 0xdead ); - uint8_t material[1] = {'k'}; + mbedtls_svc_key_id_make(0xdead, 0xdead); + uint8_t material[1] = { 'k' }; - TEST_USES_KEY_ID( id ); + TEST_USES_KEY_ID(id); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_lifetime( &attributes, lifetime ); - if( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) - { + psa_set_key_lifetime(&attributes, lifetime); + if (PSA_KEY_LIFETIME_IS_VOLATILE(lifetime)) { /* * Not possible to set a key identifier different from 0 through * PSA key attributes APIs thus accessing to the attributes * directly. */ attributes.core.id = id; + } else { + psa_set_key_id(&attributes, id); } - else - psa_set_key_id( &attributes, id ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - TEST_EQUAL( psa_import_key( &attributes, material, sizeof( material ), - &returned_id ), - expected_status ); - TEST_ASSERT( mbedtls_svc_key_id_is_null( returned_id ) ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + TEST_EQUAL(psa_import_key(&attributes, material, sizeof(material), + &returned_id), + expected_status); + TEST_ASSERT(mbedtls_svc_key_id_is_null(returned_id)); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void copy_across_lifetimes( int source_lifetime_arg, int source_owner_id_arg, - int source_id_arg, int source_usage_arg, - int source_alg_arg, int source_alg2_arg, - int type_arg, data_t *material, - int target_lifetime_arg, int target_owner_id_arg, - int target_id_arg, int target_usage_arg, - int target_alg_arg, int target_alg2_arg, - int expected_usage_arg, - int expected_alg_arg, int expected_alg2_arg ) +void copy_across_lifetimes(int source_lifetime_arg, int source_owner_id_arg, + int source_id_arg, int source_usage_arg, + int source_alg_arg, int source_alg2_arg, + int type_arg, data_t *material, + int target_lifetime_arg, int target_owner_id_arg, + int target_id_arg, int target_usage_arg, + int target_alg_arg, int target_alg2_arg, + int expected_usage_arg, + int expected_alg_arg, int expected_alg2_arg) { psa_key_lifetime_t source_lifetime = source_lifetime_arg; mbedtls_svc_key_id_t source_id = - mbedtls_svc_key_id_make( source_owner_id_arg, source_id_arg ); + mbedtls_svc_key_id_make(source_owner_id_arg, source_id_arg); psa_key_usage_t source_usage = source_usage_arg; psa_algorithm_t source_alg = source_alg_arg; psa_key_attributes_t source_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -500,7 +496,7 @@ void copy_across_lifetimes( int source_lifetime_arg, int source_owner_id_arg, mbedtls_svc_key_id_t returned_source_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_lifetime_t target_lifetime = target_lifetime_arg; mbedtls_svc_key_id_t target_id = - mbedtls_svc_key_id_make( target_owner_id_arg, target_id_arg ); + mbedtls_svc_key_id_make(target_owner_id_arg, target_id_arg); psa_key_usage_t target_usage = target_usage_arg; psa_algorithm_t target_alg = target_alg_arg; psa_key_attributes_t target_attributes = PSA_KEY_ATTRIBUTES_INIT; @@ -511,127 +507,120 @@ void copy_across_lifetimes( int source_lifetime_arg, int source_owner_id_arg, psa_algorithm_t expected_alg2 = expected_alg2_arg; uint8_t *export_buffer = NULL; - TEST_USES_KEY_ID( source_id ); - TEST_USES_KEY_ID( target_id ); + TEST_USES_KEY_ID(source_id); + TEST_USES_KEY_ID(target_id); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Populate the source slot. */ - psa_set_key_id( &source_attributes, source_id ); - psa_set_key_lifetime( &source_attributes, source_lifetime ); + psa_set_key_id(&source_attributes, source_id); + psa_set_key_lifetime(&source_attributes, source_lifetime); - psa_set_key_type( &source_attributes, source_type ); - psa_set_key_usage_flags( &source_attributes, source_usage ); - psa_set_key_algorithm( &source_attributes, source_alg ); - psa_set_key_enrollment_algorithm( &source_attributes, source_alg2_arg ); - PSA_ASSERT( psa_import_key( &source_attributes, - material->x, material->len, - &returned_source_id ) ); + psa_set_key_type(&source_attributes, source_type); + psa_set_key_usage_flags(&source_attributes, source_usage); + psa_set_key_algorithm(&source_attributes, source_alg); + psa_set_key_enrollment_algorithm(&source_attributes, source_alg2_arg); + PSA_ASSERT(psa_import_key(&source_attributes, + material->x, material->len, + &returned_source_id)); /* Update the attributes with the bit size. */ - PSA_ASSERT( psa_get_key_attributes( returned_source_id, - &source_attributes ) ); + PSA_ASSERT(psa_get_key_attributes(returned_source_id, + &source_attributes)); /* Prepare the target slot. */ - psa_set_key_id( &target_attributes, target_id ); - psa_set_key_lifetime( &target_attributes, target_lifetime ); + psa_set_key_id(&target_attributes, target_id); + psa_set_key_lifetime(&target_attributes, target_lifetime); - psa_set_key_usage_flags( &target_attributes, target_usage ); - psa_set_key_algorithm( &target_attributes, target_alg ); - psa_set_key_enrollment_algorithm( &target_attributes, target_alg2_arg ); + psa_set_key_usage_flags(&target_attributes, target_usage); + psa_set_key_algorithm(&target_attributes, target_alg); + psa_set_key_enrollment_algorithm(&target_attributes, target_alg2_arg); /* Copy the key. */ - PSA_ASSERT( psa_copy_key( returned_source_id, - &target_attributes, &returned_target_id ) ); + PSA_ASSERT(psa_copy_key(returned_source_id, + &target_attributes, &returned_target_id)); /* Destroy the source to ensure that this doesn't affect the target. */ - PSA_ASSERT( psa_destroy_key( returned_source_id ) ); + PSA_ASSERT(psa_destroy_key(returned_source_id)); /* If the target key is persistent, restart the system to make * sure that the material is still alive. */ - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( target_lifetime ) ) - { - mbedtls_psa_crypto_free( ); - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_open_key( target_id, &target_handle ) ); + if (!PSA_KEY_LIFETIME_IS_VOLATILE(target_lifetime)) { + mbedtls_psa_crypto_free(); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_open_key(target_id, &target_handle)); } /* Test that the target slot has the expected content. */ - psa_reset_key_attributes( &target_attributes ); - PSA_ASSERT( psa_get_key_attributes( returned_target_id, - &target_attributes ) ); + psa_reset_key_attributes(&target_attributes); + PSA_ASSERT(psa_get_key_attributes(returned_target_id, + &target_attributes)); - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( target_lifetime ) ) - { - TEST_ASSERT( mbedtls_svc_key_id_equal( - target_id, psa_get_key_id( &target_attributes ) ) ); - } - else - { + if (!PSA_KEY_LIFETIME_IS_VOLATILE(target_lifetime)) { + TEST_ASSERT(mbedtls_svc_key_id_equal( + target_id, psa_get_key_id(&target_attributes))); + } else { #if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) - TEST_EQUAL( MBEDTLS_SVC_KEY_ID_GET_OWNER_ID( returned_target_id ), - target_owner_id_arg ); + TEST_EQUAL(MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(returned_target_id), + target_owner_id_arg); #endif } - TEST_EQUAL( target_lifetime, psa_get_key_lifetime( &target_attributes ) ); - TEST_EQUAL( source_type, psa_get_key_type( &target_attributes ) ); - TEST_EQUAL( psa_get_key_bits( &source_attributes ), - psa_get_key_bits( &target_attributes ) ); - TEST_EQUAL( expected_usage, psa_get_key_usage_flags( &target_attributes ) ); - TEST_EQUAL( expected_alg, psa_get_key_algorithm( &target_attributes ) ); - TEST_EQUAL( expected_alg2, - psa_get_key_enrollment_algorithm( &target_attributes ) ); - if( expected_usage & PSA_KEY_USAGE_EXPORT ) - { + TEST_EQUAL(target_lifetime, psa_get_key_lifetime(&target_attributes)); + TEST_EQUAL(source_type, psa_get_key_type(&target_attributes)); + TEST_EQUAL(psa_get_key_bits(&source_attributes), + psa_get_key_bits(&target_attributes)); + TEST_EQUAL(expected_usage, psa_get_key_usage_flags(&target_attributes)); + TEST_EQUAL(expected_alg, psa_get_key_algorithm(&target_attributes)); + TEST_EQUAL(expected_alg2, + psa_get_key_enrollment_algorithm(&target_attributes)); + if (expected_usage & PSA_KEY_USAGE_EXPORT) { size_t length; - ASSERT_ALLOC( export_buffer, material->len ); - PSA_ASSERT( psa_export_key( returned_target_id, export_buffer, - material->len, &length ) ); - ASSERT_COMPARE( material->x, material->len, - export_buffer, length ); - } - else - { + ASSERT_ALLOC(export_buffer, material->len); + PSA_ASSERT(psa_export_key(returned_target_id, export_buffer, + material->len, &length)); + ASSERT_COMPARE(material->x, material->len, + export_buffer, length); + } else { size_t length; /* Check that the key is actually non-exportable. */ - TEST_EQUAL( psa_export_key( returned_target_id, export_buffer, - material->len, &length ), - PSA_ERROR_NOT_PERMITTED ); + TEST_EQUAL(psa_export_key(returned_target_id, export_buffer, + material->len, &length), + PSA_ERROR_NOT_PERMITTED); } - PSA_ASSERT( psa_destroy_key( returned_target_id ) ); + PSA_ASSERT(psa_destroy_key(returned_target_id)); exit: /* * Source and target key attributes may have been returned by * psa_get_key_attributes() thus reset them as required. */ - psa_reset_key_attributes( &source_attributes ); - psa_reset_key_attributes( &target_attributes ); + psa_reset_key_attributes(&source_attributes); + psa_reset_key_attributes(&target_attributes); - PSA_DONE( ); - mbedtls_free( export_buffer ); + PSA_DONE(); + mbedtls_free(export_buffer); } /* END_CASE */ /* BEGIN_CASE */ -void copy_to_occupied( int source_lifetime_arg, int source_id_arg, - int source_usage_arg, int source_alg_arg, - int source_type_arg, data_t *source_material, - int target_lifetime_arg, int target_id_arg, - int target_usage_arg, int target_alg_arg, - int target_type_arg, data_t *target_material ) +void copy_to_occupied(int source_lifetime_arg, int source_id_arg, + int source_usage_arg, int source_alg_arg, + int source_type_arg, data_t *source_material, + int target_lifetime_arg, int target_id_arg, + int target_usage_arg, int target_alg_arg, + int target_type_arg, data_t *target_material) { psa_key_lifetime_t source_lifetime = source_lifetime_arg; mbedtls_svc_key_id_t source_id = - mbedtls_svc_key_id_make( 1, source_id_arg ); + mbedtls_svc_key_id_make(1, source_id_arg); psa_key_usage_t source_usage = source_usage_arg; psa_algorithm_t source_alg = source_alg_arg; psa_key_type_t source_type = source_type_arg; mbedtls_svc_key_id_t returned_source_id = MBEDTLS_SVC_KEY_ID_INIT; psa_key_lifetime_t target_lifetime = target_lifetime_arg; mbedtls_svc_key_id_t target_id = - mbedtls_svc_key_id_make( 1, target_id_arg ); + mbedtls_svc_key_id_make(1, target_id_arg); psa_key_usage_t target_usage = target_usage_arg; psa_algorithm_t target_alg = target_alg_arg; psa_key_type_t target_type = target_type_arg; @@ -642,96 +631,92 @@ void copy_to_occupied( int source_lifetime_arg, int source_id_arg, psa_key_attributes_t attributes1 = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t attributes2 = PSA_KEY_ATTRIBUTES_INIT; - TEST_USES_KEY_ID( source_id ); - TEST_USES_KEY_ID( target_id ); + TEST_USES_KEY_ID(source_id); + TEST_USES_KEY_ID(target_id); - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Populate the source slot. */ - if( ! PSA_KEY_LIFETIME_IS_VOLATILE( source_lifetime ) ) - { - psa_set_key_id( &attributes, source_id ); - psa_set_key_lifetime( &attributes, source_lifetime ); + if (!PSA_KEY_LIFETIME_IS_VOLATILE(source_lifetime)) { + psa_set_key_id(&attributes, source_id); + psa_set_key_lifetime(&attributes, source_lifetime); } - psa_set_key_type( &attributes, source_type ); - psa_set_key_usage_flags( &attributes, source_usage ); - psa_set_key_algorithm( &attributes, source_alg ); - PSA_ASSERT( psa_import_key( &attributes, - source_material->x, source_material->len, - &returned_source_id ) ); + psa_set_key_type(&attributes, source_type); + psa_set_key_usage_flags(&attributes, source_usage); + psa_set_key_algorithm(&attributes, source_alg); + PSA_ASSERT(psa_import_key(&attributes, + source_material->x, source_material->len, + &returned_source_id)); /* Populate the target slot. */ - if( mbedtls_svc_key_id_equal( target_id, source_id ) ) - { + if (mbedtls_svc_key_id_equal(target_id, source_id)) { returned_target_id = returned_source_id; - } - else - { - psa_set_key_id( &attributes1, target_id ); - psa_set_key_lifetime( &attributes1, target_lifetime ); - psa_set_key_type( &attributes1, target_type ); - psa_set_key_usage_flags( &attributes1, target_usage ); - psa_set_key_algorithm( &attributes1, target_alg ); - PSA_ASSERT( psa_import_key( &attributes1, - target_material->x, target_material->len, - &returned_target_id ) ); + } else { + psa_set_key_id(&attributes1, target_id); + psa_set_key_lifetime(&attributes1, target_lifetime); + psa_set_key_type(&attributes1, target_type); + psa_set_key_usage_flags(&attributes1, target_usage); + psa_set_key_algorithm(&attributes1, target_alg); + PSA_ASSERT(psa_import_key(&attributes1, + target_material->x, target_material->len, + &returned_target_id)); } - PSA_ASSERT( psa_get_key_attributes( returned_target_id, &attributes1 ) ); + PSA_ASSERT(psa_get_key_attributes(returned_target_id, &attributes1)); /* Make a copy attempt. */ - psa_set_key_id( &attributes, target_id ); - psa_set_key_lifetime( &attributes, target_lifetime ); - TEST_EQUAL( psa_copy_key( returned_source_id, - &attributes, &new_key ), - PSA_ERROR_ALREADY_EXISTS ); - TEST_ASSERT( mbedtls_svc_key_id_is_null( new_key ) ); + psa_set_key_id(&attributes, target_id); + psa_set_key_lifetime(&attributes, target_lifetime); + TEST_EQUAL(psa_copy_key(returned_source_id, + &attributes, &new_key), + PSA_ERROR_ALREADY_EXISTS); + TEST_ASSERT(mbedtls_svc_key_id_is_null(new_key)); /* Test that the target slot is unaffected. */ - PSA_ASSERT( psa_get_key_attributes( returned_target_id, &attributes2 ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( - psa_get_key_id( &attributes1 ), - psa_get_key_id( &attributes2 ) ) ); - TEST_EQUAL( psa_get_key_lifetime( &attributes1 ), - psa_get_key_lifetime( &attributes2 ) ); - TEST_EQUAL( psa_get_key_type( &attributes1 ), - psa_get_key_type( &attributes2 ) ); - TEST_EQUAL( psa_get_key_bits( &attributes1 ), - psa_get_key_bits( &attributes2 ) ); - TEST_EQUAL( psa_get_key_usage_flags( &attributes1 ), - psa_get_key_usage_flags( &attributes2 ) ); - TEST_EQUAL( psa_get_key_algorithm( &attributes1 ), - psa_get_key_algorithm( &attributes2 ) ); - if( target_usage & PSA_KEY_USAGE_EXPORT ) - { + PSA_ASSERT(psa_get_key_attributes(returned_target_id, &attributes2)); + TEST_ASSERT(mbedtls_svc_key_id_equal( + psa_get_key_id(&attributes1), + psa_get_key_id(&attributes2))); + TEST_EQUAL(psa_get_key_lifetime(&attributes1), + psa_get_key_lifetime(&attributes2)); + TEST_EQUAL(psa_get_key_type(&attributes1), + psa_get_key_type(&attributes2)); + TEST_EQUAL(psa_get_key_bits(&attributes1), + psa_get_key_bits(&attributes2)); + TEST_EQUAL(psa_get_key_usage_flags(&attributes1), + psa_get_key_usage_flags(&attributes2)); + TEST_EQUAL(psa_get_key_algorithm(&attributes1), + psa_get_key_algorithm(&attributes2)); + if (target_usage & PSA_KEY_USAGE_EXPORT) { size_t length; - ASSERT_ALLOC( export_buffer, target_material->len ); - PSA_ASSERT( psa_export_key( returned_target_id, export_buffer, - target_material->len, &length ) ); - ASSERT_COMPARE( target_material->x, target_material->len, - export_buffer, length ); + ASSERT_ALLOC(export_buffer, target_material->len); + PSA_ASSERT(psa_export_key(returned_target_id, export_buffer, + target_material->len, &length)); + ASSERT_COMPARE(target_material->x, target_material->len, + export_buffer, length); } - PSA_ASSERT( psa_destroy_key( returned_source_id ) ); - if( ! mbedtls_svc_key_id_equal( target_id, source_id ) ) - PSA_ASSERT( psa_destroy_key( returned_target_id ) ); + PSA_ASSERT(psa_destroy_key(returned_source_id)); + if (!mbedtls_svc_key_id_equal(target_id, source_id)) { + PSA_ASSERT(psa_destroy_key(returned_target_id)); + } exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes1 ); - psa_reset_key_attributes( &attributes2 ); + psa_reset_key_attributes(&attributes1); + psa_reset_key_attributes(&attributes2); - PSA_DONE( ); - mbedtls_free( export_buffer ); + PSA_DONE(); + mbedtls_free(export_buffer); } /* END_CASE */ /* BEGIN_CASE */ -void invalid_handle( int handle_construction, - int close_status_arg ) +void invalid_handle(int handle_construction, + int close_status_arg) { psa_key_handle_t valid_handle = PSA_KEY_HANDLE_INIT; psa_key_handle_t invalid_handle = PSA_KEY_HANDLE_INIT; @@ -740,20 +725,19 @@ void invalid_handle( int handle_construction, psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; uint8_t material[1] = "a"; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); /* Allocate a handle and store a key in it. */ - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); - psa_set_key_usage_flags( &attributes, 0 ); - psa_set_key_algorithm( &attributes, 0 ); - PSA_ASSERT( psa_import_key( &attributes, - material, sizeof( material ), - &valid_handle ) ); - TEST_ASSERT( ! psa_key_handle_is_null( valid_handle ) ); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); + psa_set_key_usage_flags(&attributes, 0); + psa_set_key_algorithm(&attributes, 0); + PSA_ASSERT(psa_import_key(&attributes, + material, sizeof(material), + &valid_handle)); + TEST_ASSERT(!psa_key_handle_is_null(valid_handle)); /* Construct an invalid handle as specified in the test case data. */ - switch( handle_construction ) - { + switch (handle_construction) { case INVALID_HANDLE_0: invalid_handle = PSA_KEY_HANDLE_INIT; break; @@ -770,129 +754,129 @@ void invalid_handle( int handle_construction, * unopened and thus invalid identifier. */ - if( MBEDTLS_SVC_KEY_ID_GET_KEY_ID( valid_handle ) == - PSA_KEY_ID_VOLATILE_MIN ) + if (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(valid_handle) == + PSA_KEY_ID_VOLATILE_MIN) { key_id = PSA_KEY_ID_VOLATILE_MIN + 1; - else - key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID( valid_handle ) - 1; + } else { + key_id = MBEDTLS_SVC_KEY_ID_GET_KEY_ID(valid_handle) - 1; + } invalid_handle = - mbedtls_svc_key_id_make( 0, key_id ); + mbedtls_svc_key_id_make(0, key_id); break; case INVALID_HANDLE_CLOSED: - PSA_ASSERT( psa_import_key( &attributes, - material, sizeof( material ), - &invalid_handle ) ); - PSA_ASSERT( psa_destroy_key( invalid_handle ) ); + PSA_ASSERT(psa_import_key(&attributes, + material, sizeof(material), + &invalid_handle)); + PSA_ASSERT(psa_destroy_key(invalid_handle)); break; case INVALID_HANDLE_HUGE: invalid_handle = - mbedtls_svc_key_id_make( 0, PSA_KEY_ID_VENDOR_MAX + 1 ); + mbedtls_svc_key_id_make(0, PSA_KEY_ID_VENDOR_MAX + 1); break; default: - TEST_ASSERT( ! "unknown handle construction" ); + TEST_ASSERT(!"unknown handle construction"); } /* Attempt to use the invalid handle. */ - TEST_EQUAL( psa_get_key_attributes( invalid_handle, &attributes ), - PSA_ERROR_INVALID_HANDLE ); - TEST_EQUAL( psa_close_key( invalid_handle ), close_status ); - TEST_EQUAL( psa_destroy_key( invalid_handle ), close_status ); + TEST_EQUAL(psa_get_key_attributes(invalid_handle, &attributes), + PSA_ERROR_INVALID_HANDLE); + TEST_EQUAL(psa_close_key(invalid_handle), close_status); + TEST_EQUAL(psa_destroy_key(invalid_handle), close_status); /* After all this, check that the original handle is intact. */ - PSA_ASSERT( psa_get_key_attributes( valid_handle, &attributes ) ); - TEST_EQUAL( psa_get_key_type( &attributes ), PSA_KEY_TYPE_RAW_DATA ); - TEST_EQUAL( psa_get_key_bits( &attributes ), - PSA_BYTES_TO_BITS( sizeof( material ) ) ); - PSA_ASSERT( psa_close_key( valid_handle ) ); + PSA_ASSERT(psa_get_key_attributes(valid_handle, &attributes)); + TEST_EQUAL(psa_get_key_type(&attributes), PSA_KEY_TYPE_RAW_DATA); + TEST_EQUAL(psa_get_key_bits(&attributes), + PSA_BYTES_TO_BITS(sizeof(material))); + PSA_ASSERT(psa_close_key(valid_handle)); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void many_transient_keys( int max_keys_arg ) +void many_transient_keys(int max_keys_arg) { mbedtls_svc_key_id_t *keys = NULL; size_t max_keys = max_keys_arg; size_t i, j; psa_status_t status; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - uint8_t exported[sizeof( size_t )]; + uint8_t exported[sizeof(size_t)]; size_t exported_length; - ASSERT_ALLOC( keys, max_keys ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(keys, max_keys); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, 0 ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, 0); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); - for( i = 0; i < max_keys; i++ ) - { - status = psa_import_key( &attributes, - (uint8_t *) &i, sizeof( i ), - &keys[i] ); - if( status == PSA_ERROR_INSUFFICIENT_MEMORY ) + for (i = 0; i < max_keys; i++) { + status = psa_import_key(&attributes, + (uint8_t *) &i, sizeof(i), + &keys[i]); + if (status == PSA_ERROR_INSUFFICIENT_MEMORY) { break; - PSA_ASSERT( status ); - TEST_ASSERT( ! mbedtls_svc_key_id_is_null( keys[i] ) ); - for( j = 0; j < i; j++ ) - TEST_ASSERT( ! mbedtls_svc_key_id_equal( keys[i], keys[j] ) ); + } + PSA_ASSERT(status); + TEST_ASSERT(!mbedtls_svc_key_id_is_null(keys[i])); + for (j = 0; j < i; j++) { + TEST_ASSERT(!mbedtls_svc_key_id_equal(keys[i], keys[j])); + } } max_keys = i; - for( i = 1; i < max_keys; i++ ) - { - PSA_ASSERT( psa_close_key( keys[i - 1] ) ); - PSA_ASSERT( psa_export_key( keys[i], - exported, sizeof( exported ), - &exported_length ) ); - ASSERT_COMPARE( exported, exported_length, - (uint8_t *) &i, sizeof( i ) ); + for (i = 1; i < max_keys; i++) { + PSA_ASSERT(psa_close_key(keys[i - 1])); + PSA_ASSERT(psa_export_key(keys[i], + exported, sizeof(exported), + &exported_length)); + ASSERT_COMPARE(exported, exported_length, + (uint8_t *) &i, sizeof(i)); } - PSA_ASSERT( psa_close_key( keys[i - 1] ) ); + PSA_ASSERT(psa_close_key(keys[i - 1])); exit: - PSA_DONE( ); - mbedtls_free( keys ); + PSA_DONE(); + mbedtls_free(keys); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C */ -void key_slot_eviction_to_import_new_key( int lifetime_arg ) +void key_slot_eviction_to_import_new_key(int lifetime_arg) { - psa_key_lifetime_t lifetime = (psa_key_lifetime_t)lifetime_arg; + psa_key_lifetime_t lifetime = (psa_key_lifetime_t) lifetime_arg; size_t i; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - uint8_t exported[sizeof( size_t )]; + uint8_t exported[sizeof(size_t)]; size_t exported_length; mbedtls_svc_key_id_t key, returned_key_id; - PSA_ASSERT( psa_crypto_init( ) ); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT ); - psa_set_key_algorithm( &attributes, 0 ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT); + psa_set_key_algorithm(&attributes, 0); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); /* * Create MBEDTLS_PSA_KEY_SLOT_COUNT persistent keys. */ - for( i = 0; i < MBEDTLS_PSA_KEY_SLOT_COUNT; i++ ) - { - key = mbedtls_svc_key_id_make( i, i + 1 ); - psa_set_key_id( &attributes, key ); - PSA_ASSERT( psa_import_key( &attributes, - (uint8_t *) &i, sizeof( i ), - &returned_key_id ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( returned_key_id, key ) ); + for (i = 0; i < MBEDTLS_PSA_KEY_SLOT_COUNT; i++) { + key = mbedtls_svc_key_id_make(i, i + 1); + psa_set_key_id(&attributes, key); + PSA_ASSERT(psa_import_key(&attributes, + (uint8_t *) &i, sizeof(i), + &returned_key_id)); + TEST_ASSERT(mbedtls_svc_key_id_equal(returned_key_id, key)); } /* @@ -902,18 +886,19 @@ void key_slot_eviction_to_import_new_key( int lifetime_arg ) * description in RAM. */ i = MBEDTLS_PSA_KEY_SLOT_COUNT; - key = mbedtls_svc_key_id_make( i, i + 1 ); - psa_set_key_id( &attributes, key ); - psa_set_key_lifetime( &attributes, lifetime ); + key = mbedtls_svc_key_id_make(i, i + 1); + psa_set_key_id(&attributes, key); + psa_set_key_lifetime(&attributes, lifetime); - PSA_ASSERT( psa_import_key( &attributes, - (uint8_t *) &i, sizeof( i ), - &returned_key_id ) ); - if( lifetime != PSA_KEY_LIFETIME_VOLATILE ) - TEST_ASSERT( mbedtls_svc_key_id_equal( returned_key_id, key ) ); - else - TEST_ASSERT( psa_key_id_is_volatile( - MBEDTLS_SVC_KEY_ID_GET_KEY_ID( returned_key_id ) ) ); + PSA_ASSERT(psa_import_key(&attributes, + (uint8_t *) &i, sizeof(i), + &returned_key_id)); + if (lifetime != PSA_KEY_LIFETIME_VOLATILE) { + TEST_ASSERT(mbedtls_svc_key_id_equal(returned_key_id, key)); + } else { + TEST_ASSERT(psa_key_id_is_volatile( + MBEDTLS_SVC_KEY_ID_GET_KEY_ID(returned_key_id))); + } /* * Check that we can export all ( MBEDTLS_PSA_KEY_SLOT_COUNT + 1 ) keys, @@ -922,120 +907,118 @@ void key_slot_eviction_to_import_new_key( int lifetime_arg ) * slots when creating the last key is restored in a RAM slot to export * its value. */ - for( i = 0; i <= MBEDTLS_PSA_KEY_SLOT_COUNT; i++ ) - { - if( i < MBEDTLS_PSA_KEY_SLOT_COUNT ) - key = mbedtls_svc_key_id_make( i, i + 1 ); - else + for (i = 0; i <= MBEDTLS_PSA_KEY_SLOT_COUNT; i++) { + if (i < MBEDTLS_PSA_KEY_SLOT_COUNT) { + key = mbedtls_svc_key_id_make(i, i + 1); + } else { key = returned_key_id; + } - PSA_ASSERT( psa_export_key( key, - exported, sizeof( exported ), - &exported_length ) ); - ASSERT_COMPARE( exported, exported_length, - (uint8_t *) &i, sizeof( i ) ); - PSA_ASSERT( psa_destroy_key( key ) ); + PSA_ASSERT(psa_export_key(key, + exported, sizeof(exported), + &exported_length)); + ASSERT_COMPARE(exported, exported_length, + (uint8_t *) &i, sizeof(i)); + PSA_ASSERT(psa_destroy_key(key)); } exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C */ -void non_reusable_key_slots_integrity_in_case_of_key_slot_starvation( ) +void non_reusable_key_slots_integrity_in_case_of_key_slot_starvation() { psa_status_t status; size_t i; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - uint8_t exported[sizeof( size_t )]; + uint8_t exported[sizeof(size_t)]; size_t exported_length; mbedtls_svc_key_id_t persistent_key = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t persistent_key2 = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t returned_key_id = MBEDTLS_SVC_KEY_ID_INIT; mbedtls_svc_key_id_t *keys = NULL; - TEST_ASSERT( MBEDTLS_PSA_KEY_SLOT_COUNT >= 1 ); + TEST_ASSERT(MBEDTLS_PSA_KEY_SLOT_COUNT >= 1); - ASSERT_ALLOC( keys, MBEDTLS_PSA_KEY_SLOT_COUNT ); - PSA_ASSERT( psa_crypto_init( ) ); + ASSERT_ALLOC(keys, MBEDTLS_PSA_KEY_SLOT_COUNT); + PSA_ASSERT(psa_crypto_init()); - psa_set_key_usage_flags( &attributes, - PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY ); - psa_set_key_algorithm( &attributes, 0 ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_RAW_DATA ); + psa_set_key_usage_flags(&attributes, + PSA_KEY_USAGE_EXPORT | PSA_KEY_USAGE_COPY); + psa_set_key_algorithm(&attributes, 0); + psa_set_key_type(&attributes, PSA_KEY_TYPE_RAW_DATA); /* * Create a persistent key */ - persistent_key = mbedtls_svc_key_id_make( 0x100, 0x205 ); - psa_set_key_id( &attributes, persistent_key ); - PSA_ASSERT( psa_import_key( &attributes, - (uint8_t *) &persistent_key, - sizeof( persistent_key ), - &returned_key_id ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( returned_key_id, persistent_key ) ); + persistent_key = mbedtls_svc_key_id_make(0x100, 0x205); + psa_set_key_id(&attributes, persistent_key); + PSA_ASSERT(psa_import_key(&attributes, + (uint8_t *) &persistent_key, + sizeof(persistent_key), + &returned_key_id)); + TEST_ASSERT(mbedtls_svc_key_id_equal(returned_key_id, persistent_key)); /* * Create MBEDTLS_PSA_KEY_SLOT_COUNT volatile keys */ - psa_set_key_lifetime( &attributes, PSA_KEY_LIFETIME_VOLATILE ); - for( i = 0; i < MBEDTLS_PSA_KEY_SLOT_COUNT; i++ ) - { - PSA_ASSERT( psa_import_key( &attributes, - (uint8_t *) &i, sizeof( i ), - &keys[i]) ); + psa_set_key_lifetime(&attributes, PSA_KEY_LIFETIME_VOLATILE); + for (i = 0; i < MBEDTLS_PSA_KEY_SLOT_COUNT; i++) { + PSA_ASSERT(psa_import_key(&attributes, + (uint8_t *) &i, sizeof(i), + &keys[i])); } - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); /* * Check that we cannot access the persistent key as all slots are * occupied by volatile keys and the implementation needs to load the * persistent key description in a slot to be able to access it. */ - status = psa_get_key_attributes( persistent_key, &attributes ); - TEST_EQUAL( status, PSA_ERROR_INSUFFICIENT_MEMORY ); + status = psa_get_key_attributes(persistent_key, &attributes); + TEST_EQUAL(status, PSA_ERROR_INSUFFICIENT_MEMORY); /* * Check we can export the volatile key created last and that it has the * expected value. Then, destroy it. */ - PSA_ASSERT( psa_export_key( keys[MBEDTLS_PSA_KEY_SLOT_COUNT - 1], - exported, sizeof( exported ), - &exported_length ) ); + PSA_ASSERT(psa_export_key(keys[MBEDTLS_PSA_KEY_SLOT_COUNT - 1], + exported, sizeof(exported), + &exported_length)); i = MBEDTLS_PSA_KEY_SLOT_COUNT - 1; - ASSERT_COMPARE( exported, exported_length, (uint8_t *) &i, sizeof( i ) ); - PSA_ASSERT( psa_destroy_key( keys[MBEDTLS_PSA_KEY_SLOT_COUNT - 1] ) ); + ASSERT_COMPARE(exported, exported_length, (uint8_t *) &i, sizeof(i)); + PSA_ASSERT(psa_destroy_key(keys[MBEDTLS_PSA_KEY_SLOT_COUNT - 1])); /* * Check that we can now access the persistent key again. */ - PSA_ASSERT( psa_get_key_attributes( persistent_key, &attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( attributes.core.id, - persistent_key ) ); + PSA_ASSERT(psa_get_key_attributes(persistent_key, &attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal(attributes.core.id, + persistent_key)); /* * Check that we cannot copy the persistent key as all slots are occupied * by the persistent key and the volatile keys and the slot containing the * persistent key cannot be reclaimed as it contains the key to copy. */ - persistent_key2 = mbedtls_svc_key_id_make( 0x100, 0x204 ); - psa_set_key_id( &attributes, persistent_key2 ); - status = psa_copy_key( persistent_key, &attributes, &returned_key_id ); - TEST_EQUAL( status, PSA_ERROR_INSUFFICIENT_MEMORY ); + persistent_key2 = mbedtls_svc_key_id_make(0x100, 0x204); + psa_set_key_id(&attributes, persistent_key2); + status = psa_copy_key(persistent_key, &attributes, &returned_key_id); + TEST_EQUAL(status, PSA_ERROR_INSUFFICIENT_MEMORY); /* * Check we can export the remaining volatile keys and that they have the * expected values. */ - for( i = 0; i < ( MBEDTLS_PSA_KEY_SLOT_COUNT - 1 ); i++ ) - { - PSA_ASSERT( psa_export_key( keys[i], - exported, sizeof( exported ), - &exported_length ) ); - ASSERT_COMPARE( exported, exported_length, - (uint8_t *) &i, sizeof( i ) ); - PSA_ASSERT( psa_destroy_key( keys[i] ) ); + for (i = 0; i < (MBEDTLS_PSA_KEY_SLOT_COUNT - 1); i++) { + PSA_ASSERT(psa_export_key(keys[i], + exported, sizeof(exported), + &exported_length)); + ASSERT_COMPARE(exported, exported_length, + (uint8_t *) &i, sizeof(i)); + PSA_ASSERT(psa_destroy_key(keys[i])); } /* @@ -1043,19 +1026,19 @@ void non_reusable_key_slots_integrity_in_case_of_key_slot_starvation( ) * value. */ - PSA_ASSERT( psa_export_key( persistent_key, exported, sizeof( exported ), - &exported_length ) ); - ASSERT_COMPARE( exported, exported_length, - (uint8_t *) &persistent_key, sizeof( persistent_key ) ); + PSA_ASSERT(psa_export_key(persistent_key, exported, sizeof(exported), + &exported_length)); + ASSERT_COMPARE(exported, exported_length, + (uint8_t *) &persistent_key, sizeof(persistent_key)); exit: /* * Key attributes may have been returned by psa_get_key_attributes() * thus reset them as required. */ - psa_reset_key_attributes( &attributes ); + psa_reset_key_attributes(&attributes); - psa_destroy_key( persistent_key ); - PSA_DONE( ); - mbedtls_free( keys ); + psa_destroy_key(persistent_key); + PSA_DONE(); + mbedtls_free(keys); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_crypto_storage_format.function b/tests/suites/test_suite_psa_crypto_storage_format.function index 1fd267a6c..8434fc1c6 100644 --- a/tests/suites/test_suite_psa_crypto_storage_format.function +++ b/tests/suites/test_suite_psa_crypto_storage_format.function @@ -16,10 +16,10 @@ * On error, including if the key representation in storage differs, * mark the test case as failed and return 0. On success, return 1. */ -static int test_written_key( const psa_key_attributes_t *attributes, - const data_t *material, - psa_storage_uid_t uid, - const data_t *expected_representation ) +static int test_written_key(const psa_key_attributes_t *attributes, + const data_t *material, + psa_storage_uid_t uid, + const data_t *expected_representation) { mbedtls_svc_key_id_t created_key_id = MBEDTLS_SVC_KEY_ID_INIT; uint8_t *actual_representation = NULL; @@ -28,132 +28,144 @@ static int test_written_key( const psa_key_attributes_t *attributes, int ok = 0; /* Create a key with the given parameters. */ - PSA_ASSERT( psa_import_key( attributes, material->x, material->len, - &created_key_id ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( psa_get_key_id( attributes ), - created_key_id ) ); + PSA_ASSERT(psa_import_key(attributes, material->x, material->len, + &created_key_id)); + TEST_ASSERT(mbedtls_svc_key_id_equal(psa_get_key_id(attributes), + created_key_id)); /* Check that the key is represented as expected. */ - PSA_ASSERT( psa_its_get_info( uid, &storage_info ) ); - TEST_EQUAL( storage_info.size, expected_representation->len ); - ASSERT_ALLOC( actual_representation, storage_info.size ); - PSA_ASSERT( psa_its_get( uid, 0, storage_info.size, - actual_representation, &length ) ); - ASSERT_COMPARE( expected_representation->x, expected_representation->len, - actual_representation, length ); + PSA_ASSERT(psa_its_get_info(uid, &storage_info)); + TEST_EQUAL(storage_info.size, expected_representation->len); + ASSERT_ALLOC(actual_representation, storage_info.size); + PSA_ASSERT(psa_its_get(uid, 0, storage_info.size, + actual_representation, &length)); + ASSERT_COMPARE(expected_representation->x, expected_representation->len, + actual_representation, length); ok = 1; exit: - mbedtls_free( actual_representation ); - return( ok ); + mbedtls_free(actual_representation); + return ok; } /** Check if a key is exportable. */ -static int can_export( const psa_key_attributes_t *attributes ) +static int can_export(const psa_key_attributes_t *attributes) { - if( psa_get_key_usage_flags( attributes ) & PSA_KEY_USAGE_EXPORT ) - return( 1 ); - else if( PSA_KEY_TYPE_IS_PUBLIC_KEY( psa_get_key_type( attributes ) ) ) - return( 1 ); - else - return( 0 ); + if (psa_get_key_usage_flags(attributes) & PSA_KEY_USAGE_EXPORT) { + return 1; + } else if (PSA_KEY_TYPE_IS_PUBLIC_KEY(psa_get_key_type(attributes))) { + return 1; + } else { + return 0; + } } #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) -static int is_accelerated_rsa( psa_algorithm_t alg ) +static int is_accelerated_rsa(psa_algorithm_t alg) { #if defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PKCS1V15_SIGN) - if ( PSA_ALG_IS_RSA_PKCS1V15_SIGN( alg ) ) - return( 1 ); + if (PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_ACCEL_ALG_RSA_PSS) - if( PSA_ALG_IS_RSA_PSS( alg ) ) - return( 1 ); + if (PSA_ALG_IS_RSA_PSS(alg)) { + return 1; + } #endif #if defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP) - if( PSA_ALG_IS_RSA_OAEP( alg ) ) - return( 1 ); + if (PSA_ALG_IS_RSA_OAEP(alg)) { + return 1; + } #endif (void) alg; - return( 0 ); + return 0; } /* Whether the algorithm is implemented as a builtin, i.e. not accelerated, * and calls mbedtls_md() functions that require the hash algorithm to * also be built-in. */ -static int is_builtin_calling_md( psa_algorithm_t alg ) +static int is_builtin_calling_md(psa_algorithm_t alg) { #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_PSS) - if( PSA_ALG_IS_RSA_PSS( alg ) ) + if (PSA_ALG_IS_RSA_PSS(alg)) #if defined(MBEDTLS_MD_C) - return( 1 ); + { return 1; } #else - return( 0 ); + { return 0; } #endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_RSA_OAEP) - if( PSA_ALG_IS_RSA_OAEP( alg ) ) + if (PSA_ALG_IS_RSA_OAEP(alg)) #if defined(MBEDTLS_MD_C) - return( 1 ); + { return 1; } #else - return( 0 ); + { return 0; } #endif #endif #if defined(MBEDTLS_PSA_BUILTIN_ALG_DETERMINISTIC_ECDSA) - if( PSA_ALG_IS_DETERMINISTIC_ECDSA( alg ) ) - return( 1 ); + if (PSA_ALG_IS_DETERMINISTIC_ECDSA(alg)) { + return 1; + } #endif (void) alg; - return( 0 ); + return 0; } -static int has_builtin_hash( psa_algorithm_t alg ) +static int has_builtin_hash(psa_algorithm_t alg) { #if !defined(MBEDTLS_MD5_C) - if( alg == PSA_ALG_MD5 ) - return( 0 ); + if (alg == PSA_ALG_MD5) { + return 0; + } #endif #if !defined(MBEDTLS_RIPEMD160_C) - if( alg == PSA_ALG_RIPEMD160 ) - return( 0 ); + if (alg == PSA_ALG_RIPEMD160) { + return 0; + } #endif #if !defined(MBEDTLS_SHA1_C) - if( alg == PSA_ALG_SHA_1 ) - return( 0 ); + if (alg == PSA_ALG_SHA_1) { + return 0; + } #endif #if !defined(MBEDTLS_SHA224_C) - if( alg == PSA_ALG_SHA_224 ) - return( 0 ); + if (alg == PSA_ALG_SHA_224) { + return 0; + } #endif #if !defined(MBEDTLS_SHA256_C) - if( alg == PSA_ALG_SHA_256 ) - return( 0 ); + if (alg == PSA_ALG_SHA_256) { + return 0; + } #endif #if !defined(MBEDTLS_SHA384_C) - if( alg == PSA_ALG_SHA_384 ) - return( 0 ); + if (alg == PSA_ALG_SHA_384) { + return 0; + } #endif #if !defined(MBEDTLS_SHA512_C) - if( alg == PSA_ALG_SHA_512 ) - return( 0 ); + if (alg == PSA_ALG_SHA_512) { + return 0; + } #endif (void) alg; - return( 1 ); + return 1; } #endif /* Mbed TLS doesn't support certain combinations of key type and algorithm * in certain configurations. */ -static int can_exercise( const psa_key_attributes_t *attributes ) +static int can_exercise(const psa_key_attributes_t *attributes) { - psa_key_type_t key_type = psa_get_key_type( attributes ); - psa_algorithm_t alg = psa_get_key_algorithm( attributes ); + psa_key_type_t key_type = psa_get_key_type(attributes); + psa_algorithm_t alg = psa_get_key_algorithm(attributes); psa_algorithm_t hash_alg = - PSA_ALG_IS_HASH_AND_SIGN( alg ) ? PSA_ALG_SIGN_GET_HASH( alg ) : - PSA_ALG_IS_RSA_OAEP( alg ) ? PSA_ALG_RSA_OAEP_GET_HASH( alg ) : + PSA_ALG_IS_HASH_AND_SIGN(alg) ? PSA_ALG_SIGN_GET_HASH(alg) : + PSA_ALG_IS_RSA_OAEP(alg) ? PSA_ALG_RSA_OAEP_GET_HASH(alg) : PSA_ALG_NONE; - psa_key_usage_t usage = psa_get_key_usage_flags( attributes ); + psa_key_usage_t usage = psa_get_key_usage_flags(attributes); #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) /* We test some configurations using drivers where the driver doesn't @@ -167,32 +179,28 @@ static int can_exercise( const psa_key_attributes_t *attributes ) * affected. All RSA signatures are affected except raw PKCS#1v1.5. * OAEP is also affected. */ - if( PSA_ALG_IS_DETERMINISTIC_ECDSA( alg ) && - ! ( usage & ( PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE ) ) ) - { + if (PSA_ALG_IS_DETERMINISTIC_ECDSA(alg) && + !(usage & (PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_SIGN_MESSAGE))) { /* Verification only. Verification doesn't use the hash algorithm. */ - return( 1 ); + return 1; } #if defined(MBEDTLS_PSA_ACCEL_ALG_DETERMINISTIC_ECDSA) - if( PSA_ALG_IS_DETERMINISTIC_ECDSA( alg ) && - ( hash_alg == PSA_ALG_MD5 || - hash_alg == PSA_ALG_RIPEMD160 || - hash_alg == PSA_ALG_SHA_1 ) ) - { - return( 0 ); + if (PSA_ALG_IS_DETERMINISTIC_ECDSA(alg) && + (hash_alg == PSA_ALG_MD5 || + hash_alg == PSA_ALG_RIPEMD160 || + hash_alg == PSA_ALG_SHA_1)) { + return 0; } #endif - if( is_accelerated_rsa( alg ) && - ( hash_alg == PSA_ALG_RIPEMD160 || hash_alg == PSA_ALG_SHA_384 ) ) - { - return( 0 ); + if (is_accelerated_rsa(alg) && + (hash_alg == PSA_ALG_RIPEMD160 || hash_alg == PSA_ALG_SHA_384)) { + return 0; } #if defined(MBEDTLS_PSA_ACCEL_ALG_RSA_OAEP) - if( PSA_ALG_IS_RSA_OAEP( alg ) && - ( hash_alg == PSA_ALG_RIPEMD160 || hash_alg == PSA_ALG_SHA_384 ) ) - { - return( 0 ); + if (PSA_ALG_IS_RSA_OAEP(alg) && + (hash_alg == PSA_ALG_RIPEMD160 || hash_alg == PSA_ALG_SHA_384)) { + return 0; } #endif @@ -200,9 +208,8 @@ static int can_exercise( const psa_key_attributes_t *attributes ) * hash internally only dispatch to the internal md module, not to * PSA. Until this is supported, don't try to actually perform * operations when the operation is built-in and the hash isn't. */ - if( is_builtin_calling_md( alg ) && ! has_builtin_hash( hash_alg ) ) - { - return( 0 ); + if (is_builtin_calling_md(alg) && !has_builtin_hash(hash_alg)) { + return 0; } #endif /* MBEDTLS_TEST_LIBTESTDRIVER1 */ @@ -210,7 +217,7 @@ static int can_exercise( const psa_key_attributes_t *attributes ) (void) alg; (void) hash_alg; (void) usage; - return( 1 ); + return 1; } /** Write a key with the given representation to storage, then check @@ -219,78 +226,73 @@ static int can_exercise( const psa_key_attributes_t *attributes ) * On error, including if the key representation in storage differs, * mark the test case as failed and return 0. On success, return 1. */ -static int test_read_key( const psa_key_attributes_t *expected_attributes, - const data_t *expected_material, - psa_storage_uid_t uid, - const data_t *representation, - int flags ) +static int test_read_key(const psa_key_attributes_t *expected_attributes, + const data_t *expected_material, + psa_storage_uid_t uid, + const data_t *representation, + int flags) { psa_key_attributes_t actual_attributes = PSA_KEY_ATTRIBUTES_INIT; - mbedtls_svc_key_id_t key_id = psa_get_key_id( expected_attributes ); + mbedtls_svc_key_id_t key_id = psa_get_key_id(expected_attributes); struct psa_storage_info_t storage_info; int ok = 0; uint8_t *exported_material = NULL; size_t length; /* Prime the storage with a key file. */ - PSA_ASSERT( psa_its_set( uid, representation->len, representation->x, 0 ) ); + PSA_ASSERT(psa_its_set(uid, representation->len, representation->x, 0)); /* Check that the injected key exists and looks as expected. */ - PSA_ASSERT( psa_get_key_attributes( key_id, &actual_attributes ) ); - TEST_ASSERT( mbedtls_svc_key_id_equal( key_id, - psa_get_key_id( &actual_attributes ) ) ); - TEST_EQUAL( psa_get_key_lifetime( expected_attributes ), - psa_get_key_lifetime( &actual_attributes ) ); - TEST_EQUAL( psa_get_key_type( expected_attributes ), - psa_get_key_type( &actual_attributes ) ); - TEST_EQUAL( psa_get_key_bits( expected_attributes ), - psa_get_key_bits( &actual_attributes ) ); - TEST_EQUAL( psa_get_key_usage_flags( expected_attributes ), - psa_get_key_usage_flags( &actual_attributes ) ); - TEST_EQUAL( psa_get_key_algorithm( expected_attributes ), - psa_get_key_algorithm( &actual_attributes ) ); - TEST_EQUAL( psa_get_key_enrollment_algorithm( expected_attributes ), - psa_get_key_enrollment_algorithm( &actual_attributes ) ); - if( can_export( expected_attributes ) ) - { - ASSERT_ALLOC( exported_material, expected_material->len ); - PSA_ASSERT( psa_export_key( key_id, - exported_material, expected_material->len, - &length ) ); - ASSERT_COMPARE( expected_material->x, expected_material->len, - exported_material, length ); + PSA_ASSERT(psa_get_key_attributes(key_id, &actual_attributes)); + TEST_ASSERT(mbedtls_svc_key_id_equal(key_id, + psa_get_key_id(&actual_attributes))); + TEST_EQUAL(psa_get_key_lifetime(expected_attributes), + psa_get_key_lifetime(&actual_attributes)); + TEST_EQUAL(psa_get_key_type(expected_attributes), + psa_get_key_type(&actual_attributes)); + TEST_EQUAL(psa_get_key_bits(expected_attributes), + psa_get_key_bits(&actual_attributes)); + TEST_EQUAL(psa_get_key_usage_flags(expected_attributes), + psa_get_key_usage_flags(&actual_attributes)); + TEST_EQUAL(psa_get_key_algorithm(expected_attributes), + psa_get_key_algorithm(&actual_attributes)); + TEST_EQUAL(psa_get_key_enrollment_algorithm(expected_attributes), + psa_get_key_enrollment_algorithm(&actual_attributes)); + if (can_export(expected_attributes)) { + ASSERT_ALLOC(exported_material, expected_material->len); + PSA_ASSERT(psa_export_key(key_id, + exported_material, expected_material->len, + &length)); + ASSERT_COMPARE(expected_material->x, expected_material->len, + exported_material, length); } - if( ( flags & TEST_FLAG_EXERCISE ) && can_exercise( &actual_attributes ) ) - { - TEST_ASSERT( mbedtls_test_psa_exercise_key( - key_id, - psa_get_key_usage_flags( expected_attributes ), - psa_get_key_algorithm( expected_attributes ) ) ); + if ((flags & TEST_FLAG_EXERCISE) && can_exercise(&actual_attributes)) { + TEST_ASSERT(mbedtls_test_psa_exercise_key( + key_id, + psa_get_key_usage_flags(expected_attributes), + psa_get_key_algorithm(expected_attributes))); } - if( flags & TEST_FLAG_READ_ONLY ) - { + if (flags & TEST_FLAG_READ_ONLY) { /* Read-only keys cannot be removed through the API. * The key will be removed through ITS in the cleanup code below. */ - TEST_EQUAL( PSA_ERROR_NOT_PERMITTED, psa_destroy_key( key_id ) ); - } - else - { + TEST_EQUAL(PSA_ERROR_NOT_PERMITTED, psa_destroy_key(key_id)); + } else { /* Destroy the key. Confirm through direct access to the storage. */ - PSA_ASSERT( psa_destroy_key( key_id ) ); - TEST_EQUAL( PSA_ERROR_DOES_NOT_EXIST, - psa_its_get_info( uid, &storage_info ) ); + PSA_ASSERT(psa_destroy_key(key_id)); + TEST_EQUAL(PSA_ERROR_DOES_NOT_EXIST, + psa_its_get_info(uid, &storage_info)); } ok = 1; exit: - psa_reset_key_attributes( &actual_attributes ); - psa_its_remove( uid ); - mbedtls_free( exported_material ); - return( ok ); + psa_reset_key_attributes(&actual_attributes); + psa_its_remove(uid); + mbedtls_free(exported_material); + return ok; } /* END_HEADER */ @@ -301,10 +303,10 @@ exit: */ /* BEGIN_CASE */ -void key_storage_save( int lifetime_arg, int type_arg, int bits_arg, - int usage_arg, int alg_arg, int alg2_arg, - data_t *material, - data_t *representation ) +void key_storage_save(int lifetime_arg, int type_arg, int bits_arg, + int usage_arg, int alg_arg, int alg2_arg, + data_t *material, + data_t *representation) { /* Forward compatibility: save a key in the current format and * check that it has the expected format so that future versions @@ -316,40 +318,40 @@ void key_storage_save( int lifetime_arg, int type_arg, int bits_arg, psa_key_usage_t usage = usage_arg; psa_algorithm_t alg = alg_arg; psa_algorithm_t alg2 = alg2_arg; - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 0, 1 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(0, 1); psa_storage_uid_t uid = 1; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_INIT( ); - TEST_USES_KEY_ID( key_id ); + PSA_INIT(); + TEST_USES_KEY_ID(key_id); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_enrollment_algorithm( &attributes, alg2 ); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_enrollment_algorithm(&attributes, alg2); /* This is the current storage format. Test that we know exactly how * the key is stored. The stability of the test data in future * versions of Mbed TLS will guarantee that future versions * can read back what this version wrote. */ - TEST_ASSERT( test_written_key( &attributes, material, - uid, representation ) ); + TEST_ASSERT(test_written_key(&attributes, material, + uid, representation)); exit: - psa_reset_key_attributes( &attributes ); - psa_destroy_key( key_id ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + psa_destroy_key(key_id); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void key_storage_read( int lifetime_arg, int type_arg, int bits_arg, - int usage_arg, int alg_arg, int alg2_arg, - data_t *material, - data_t *representation, int flags ) +void key_storage_read(int lifetime_arg, int type_arg, int bits_arg, + int usage_arg, int alg_arg, int alg2_arg, + data_t *material, + data_t *representation, int flags) { /* Backward compatibility: read a key in the format of a past version * and check that this version can use it. */ @@ -360,29 +362,29 @@ void key_storage_read( int lifetime_arg, int type_arg, int bits_arg, psa_key_usage_t usage = usage_arg; psa_algorithm_t alg = alg_arg; psa_algorithm_t alg2 = alg2_arg; - mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make( 0, 1 ); + mbedtls_svc_key_id_t key_id = mbedtls_svc_key_id_make(0, 1); psa_storage_uid_t uid = 1; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; - PSA_INIT( ); - TEST_USES_KEY_ID( key_id ); + PSA_INIT(); + TEST_USES_KEY_ID(key_id); - psa_set_key_lifetime( &attributes, lifetime ); - psa_set_key_id( &attributes, key_id ); - psa_set_key_type( &attributes, type ); - psa_set_key_bits( &attributes, bits ); - psa_set_key_usage_flags( &attributes, usage ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_enrollment_algorithm( &attributes, alg2 ); + psa_set_key_lifetime(&attributes, lifetime); + psa_set_key_id(&attributes, key_id); + psa_set_key_type(&attributes, type); + psa_set_key_bits(&attributes, bits); + psa_set_key_usage_flags(&attributes, usage); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_enrollment_algorithm(&attributes, alg2); /* Test that we can use a key with the given representation. This * guarantees backward compatibility with keys that were stored by * past versions of Mbed TLS. */ - TEST_ASSERT( test_read_key( &attributes, material, - uid, representation, flags ) ); + TEST_ASSERT(test_read_key(&attributes, material, + uid, representation, flags)); exit: - psa_reset_key_attributes( &attributes ); - PSA_DONE( ); + psa_reset_key_attributes(&attributes); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_psa_its.function b/tests/suites/test_suite_psa_its.function index 12878b533..7864b9c88 100644 --- a/tests/suites/test_suite_psa_its.function +++ b/tests/suites/test_suite_psa_its.function @@ -20,23 +20,23 @@ #define PSA_ITS_STORAGE_FILENAME_PATTERN "%08lx%08lx" #define PSA_ITS_STORAGE_SUFFIX ".psa_its" #define PSA_ITS_STORAGE_FILENAME_LENGTH \ - ( sizeof( PSA_ITS_STORAGE_PREFIX ) - 1 + /*prefix without terminating 0*/ \ - 16 + /*UID (64-bit number in hex)*/ \ - 16 + /*UID (64-bit number in hex)*/ \ - sizeof( PSA_ITS_STORAGE_SUFFIX ) - 1 + /*suffix without terminating 0*/ \ - 1 /*terminating null byte*/ ) + (sizeof(PSA_ITS_STORAGE_PREFIX) - 1 + /*prefix without terminating 0*/ \ + 16 + /*UID (64-bit number in hex)*/ \ + 16 + /*UID (64-bit number in hex)*/ \ + sizeof(PSA_ITS_STORAGE_SUFFIX) - 1 + /*suffix without terminating 0*/ \ + 1 /*terminating null byte*/) #define PSA_ITS_STORAGE_TEMP \ PSA_ITS_STORAGE_PREFIX "tempfile" PSA_ITS_STORAGE_SUFFIX -static void psa_its_fill_filename( psa_storage_uid_t uid, char *filename ) +static void psa_its_fill_filename(psa_storage_uid_t uid, char *filename) { /* Break up the UID into two 32-bit pieces so as not to rely on * long long support in snprintf. */ - mbedtls_snprintf( filename, PSA_ITS_STORAGE_FILENAME_LENGTH, - "%s" PSA_ITS_STORAGE_FILENAME_PATTERN "%s", - PSA_ITS_STORAGE_PREFIX, - (unsigned long) ( uid >> 32 ), - (unsigned long) ( uid & 0xffffffff ), - PSA_ITS_STORAGE_SUFFIX ); + mbedtls_snprintf(filename, PSA_ITS_STORAGE_FILENAME_LENGTH, + "%s" PSA_ITS_STORAGE_FILENAME_PATTERN "%s", + PSA_ITS_STORAGE_PREFIX, + (unsigned long) (uid >> 32), + (unsigned long) (uid & 0xffffffff), + PSA_ITS_STORAGE_SUFFIX); } /* Maximum uid used by the test, recorded so that cleanup() can delete @@ -44,7 +44,7 @@ static void psa_its_fill_filename( psa_storage_uid_t uid, char *filename ) * need to and should not be taken into account for uid_max. */ static psa_storage_uid_t uid_max = 0; -static void cleanup( void ) +static void cleanup(void) { /* Call remove() on all the files that a test might have created. * We ignore the error if the file exists but remove() fails because @@ -55,25 +55,25 @@ static void cleanup( void ) * test case. */ char filename[PSA_ITS_STORAGE_FILENAME_LENGTH]; psa_storage_uid_t uid; - for( uid = 0; uid < uid_max; uid++ ) - { - psa_its_fill_filename( uid, filename ); - (void) remove( filename ); + for (uid = 0; uid < uid_max; uid++) { + psa_its_fill_filename(uid, filename); + (void) remove(filename); } - psa_its_fill_filename( (psa_storage_uid_t)( -1 ), filename ); - (void) remove( filename ); - (void) remove( PSA_ITS_STORAGE_TEMP ); + psa_its_fill_filename((psa_storage_uid_t) (-1), filename); + (void) remove(filename); + (void) remove(PSA_ITS_STORAGE_TEMP); uid_max = 0; } -static psa_status_t psa_its_set_wrap( psa_storage_uid_t uid, - uint32_t data_length, - const void *p_data, - psa_storage_create_flags_t create_flags ) +static psa_status_t psa_its_set_wrap(psa_storage_uid_t uid, + uint32_t data_length, + const void *p_data, + psa_storage_create_flags_t create_flags) { - if( uid_max != (psa_storage_uid_t)( -1 ) && uid_max < uid ) + if (uid_max != (psa_storage_uid_t) (-1) && uid_max < uid) { uid_max = uid; - return( psa_its_set( uid, data_length, p_data, create_flags ) ); + } + return psa_its_set(uid, data_length, p_data, create_flags); } /* END_HEADER */ @@ -84,7 +84,7 @@ static psa_status_t psa_its_set_wrap( psa_storage_uid_t uid, */ /* BEGIN_CASE */ -void set_get_remove( int uid_arg, int flags_arg, data_t *data ) +void set_get_remove(int uid_arg, int flags_arg, data_t *data) { psa_storage_uid_t uid = uid_arg; uint32_t flags = flags_arg; @@ -92,28 +92,28 @@ void set_get_remove( int uid_arg, int flags_arg, data_t *data ) unsigned char *buffer = NULL; size_t ret_len = 0; - ASSERT_ALLOC( buffer, data->len ); + ASSERT_ALLOC(buffer, data->len); - PSA_ASSERT( psa_its_set_wrap( uid, data->len, data->x, flags ) ); + PSA_ASSERT(psa_its_set_wrap(uid, data->len, data->x, flags)); - PSA_ASSERT( psa_its_get_info( uid, &info ) ); - TEST_ASSERT( info.size == data->len ); - TEST_ASSERT( info.flags == flags ); - PSA_ASSERT( psa_its_get( uid, 0, data->len, buffer, &ret_len ) ); - ASSERT_COMPARE( data->x, data->len, buffer, ret_len ); + PSA_ASSERT(psa_its_get_info(uid, &info)); + TEST_ASSERT(info.size == data->len); + TEST_ASSERT(info.flags == flags); + PSA_ASSERT(psa_its_get(uid, 0, data->len, buffer, &ret_len)); + ASSERT_COMPARE(data->x, data->len, buffer, ret_len); - PSA_ASSERT( psa_its_remove( uid ) ); + PSA_ASSERT(psa_its_remove(uid)); exit: - mbedtls_free( buffer ); - cleanup( ); + mbedtls_free(buffer); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void set_overwrite( int uid_arg, - int flags1_arg, data_t *data1, - int flags2_arg, data_t *data2 ) +void set_overwrite(int uid_arg, + int flags1_arg, data_t *data1, + int flags2_arg, data_t *data2) { psa_storage_uid_t uid = uid_arg; uint32_t flags1 = flags1_arg; @@ -122,33 +122,33 @@ void set_overwrite( int uid_arg, unsigned char *buffer = NULL; size_t ret_len = 0; - ASSERT_ALLOC( buffer, MAX( data1->len, data2->len ) ); + ASSERT_ALLOC(buffer, MAX(data1->len, data2->len)); - PSA_ASSERT( psa_its_set_wrap( uid, data1->len, data1->x, flags1 ) ); - PSA_ASSERT( psa_its_get_info( uid, &info ) ); - TEST_ASSERT( info.size == data1->len ); - TEST_ASSERT( info.flags == flags1 ); - PSA_ASSERT( psa_its_get( uid, 0, data1->len, buffer, &ret_len ) ); - ASSERT_COMPARE( data1->x, data1->len, buffer, ret_len ); + PSA_ASSERT(psa_its_set_wrap(uid, data1->len, data1->x, flags1)); + PSA_ASSERT(psa_its_get_info(uid, &info)); + TEST_ASSERT(info.size == data1->len); + TEST_ASSERT(info.flags == flags1); + PSA_ASSERT(psa_its_get(uid, 0, data1->len, buffer, &ret_len)); + ASSERT_COMPARE(data1->x, data1->len, buffer, ret_len); - PSA_ASSERT( psa_its_set_wrap( uid, data2->len, data2->x, flags2 ) ); - PSA_ASSERT( psa_its_get_info( uid, &info ) ); - TEST_ASSERT( info.size == data2->len ); - TEST_ASSERT( info.flags == flags2 ); + PSA_ASSERT(psa_its_set_wrap(uid, data2->len, data2->x, flags2)); + PSA_ASSERT(psa_its_get_info(uid, &info)); + TEST_ASSERT(info.size == data2->len); + TEST_ASSERT(info.flags == flags2); ret_len = 0; - PSA_ASSERT( psa_its_get( uid, 0, data2->len, buffer, &ret_len ) ); - ASSERT_COMPARE( data2->x, data2->len, buffer, ret_len ); + PSA_ASSERT(psa_its_get(uid, 0, data2->len, buffer, &ret_len)); + ASSERT_COMPARE(data2->x, data2->len, buffer, ret_len); - PSA_ASSERT( psa_its_remove( uid ) ); + PSA_ASSERT(psa_its_remove(uid)); exit: - mbedtls_free( buffer ); - cleanup( ); + mbedtls_free(buffer); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void set_multiple( int first_id, int count ) +void set_multiple(int first_id, int count) { psa_storage_uid_t uid0 = first_id; psa_storage_uid_t uid; @@ -156,58 +156,55 @@ void set_multiple( int first_id, int count ) char retrieved[40]; size_t ret_len = 0; - memset( stored, '.', sizeof( stored ) ); - for( uid = uid0; uid < uid0 + count; uid++ ) - { - mbedtls_snprintf( stored, sizeof( stored ), - "Content of file 0x%08lx", (unsigned long) uid ); - PSA_ASSERT( psa_its_set_wrap( uid, sizeof( stored ), stored, 0 ) ); + memset(stored, '.', sizeof(stored)); + for (uid = uid0; uid < uid0 + count; uid++) { + mbedtls_snprintf(stored, sizeof(stored), + "Content of file 0x%08lx", (unsigned long) uid); + PSA_ASSERT(psa_its_set_wrap(uid, sizeof(stored), stored, 0)); } - for( uid = uid0; uid < uid0 + count; uid++ ) - { - mbedtls_snprintf( stored, sizeof( stored ), - "Content of file 0x%08lx", (unsigned long) uid ); - PSA_ASSERT( psa_its_get( uid, 0, sizeof( stored ), retrieved, &ret_len ) ); - ASSERT_COMPARE( retrieved, ret_len, - stored, sizeof( stored ) ); - PSA_ASSERT( psa_its_remove( uid ) ); - TEST_ASSERT( psa_its_get( uid, 0, 0, NULL, NULL ) == - PSA_ERROR_DOES_NOT_EXIST ); + for (uid = uid0; uid < uid0 + count; uid++) { + mbedtls_snprintf(stored, sizeof(stored), + "Content of file 0x%08lx", (unsigned long) uid); + PSA_ASSERT(psa_its_get(uid, 0, sizeof(stored), retrieved, &ret_len)); + ASSERT_COMPARE(retrieved, ret_len, + stored, sizeof(stored)); + PSA_ASSERT(psa_its_remove(uid)); + TEST_ASSERT(psa_its_get(uid, 0, 0, NULL, NULL) == + PSA_ERROR_DOES_NOT_EXIST); } exit: - cleanup( ); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void nonexistent( int uid_arg, int create_and_remove ) +void nonexistent(int uid_arg, int create_and_remove) { psa_storage_uid_t uid = uid_arg; struct psa_storage_info_t info; - if( create_and_remove ) - { - PSA_ASSERT( psa_its_set_wrap( uid, 0, NULL, 0 ) ); - PSA_ASSERT( psa_its_remove( uid ) ); + if (create_and_remove) { + PSA_ASSERT(psa_its_set_wrap(uid, 0, NULL, 0)); + PSA_ASSERT(psa_its_remove(uid)); } - TEST_ASSERT( psa_its_remove( uid ) == PSA_ERROR_DOES_NOT_EXIST ); - TEST_ASSERT( psa_its_get_info( uid, &info ) == - PSA_ERROR_DOES_NOT_EXIST ); - TEST_ASSERT( psa_its_get( uid, 0, 0, NULL, NULL ) == - PSA_ERROR_DOES_NOT_EXIST ); + TEST_ASSERT(psa_its_remove(uid) == PSA_ERROR_DOES_NOT_EXIST); + TEST_ASSERT(psa_its_get_info(uid, &info) == + PSA_ERROR_DOES_NOT_EXIST); + TEST_ASSERT(psa_its_get(uid, 0, 0, NULL, NULL) == + PSA_ERROR_DOES_NOT_EXIST); exit: - cleanup( ); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void get_at( int uid_arg, data_t *data, - int offset, int length_arg, - int expected_status ) +void get_at(int uid_arg, data_t *data, + int offset, int length_arg, + int expected_status) { psa_storage_uid_t uid = uid_arg; unsigned char *buffer = NULL; @@ -217,31 +214,33 @@ void get_at( int uid_arg, data_t *data, size_t i; size_t ret_len = 0; - ASSERT_ALLOC( buffer, length + 16 ); + ASSERT_ALLOC(buffer, length + 16); trailer = buffer + length; - memset( trailer, '-', 16 ); + memset(trailer, '-', 16); - PSA_ASSERT( psa_its_set_wrap( uid, data->len, data->x, 0 ) ); + PSA_ASSERT(psa_its_set_wrap(uid, data->len, data->x, 0)); - status = psa_its_get( uid, offset, length_arg, buffer, &ret_len ); - TEST_ASSERT( status == (psa_status_t) expected_status ); - if( status == PSA_SUCCESS ) - ASSERT_COMPARE( data->x + offset, (size_t) length_arg, - buffer, ret_len ); - for( i = 0; i < 16; i++ ) - TEST_ASSERT( trailer[i] == '-' ); - PSA_ASSERT( psa_its_remove( uid ) ); + status = psa_its_get(uid, offset, length_arg, buffer, &ret_len); + TEST_ASSERT(status == (psa_status_t) expected_status); + if (status == PSA_SUCCESS) { + ASSERT_COMPARE(data->x + offset, (size_t) length_arg, + buffer, ret_len); + } + for (i = 0; i < 16; i++) { + TEST_ASSERT(trailer[i] == '-'); + } + PSA_ASSERT(psa_its_remove(uid)); exit: - mbedtls_free( buffer ); - cleanup( ); + mbedtls_free(buffer); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void get_fail( int uid_arg, data_t *data, - int overwrite_magic, int cut_header, - int expected_status ) +void get_fail(int uid_arg, data_t *data, + int overwrite_magic, int cut_header, + int expected_status) { psa_storage_uid_t uid = uid_arg; unsigned char *buffer = NULL; @@ -252,54 +251,53 @@ void get_fail( int uid_arg, data_t *data, FILE *stream = NULL; char bad_char = 'X'; - PSA_ASSERT( psa_its_set_wrap( uid, data->len, data->x, 0 ) ); + PSA_ASSERT(psa_its_set_wrap(uid, data->len, data->x, 0)); - psa_its_fill_filename( uid, filename ); - stream = fopen( filename, "rb+" ); - TEST_ASSERT( NULL != stream ); - if( 0 != overwrite_magic ) - { + psa_its_fill_filename(uid, filename); + stream = fopen(filename, "rb+"); + TEST_ASSERT(NULL != stream); + if (0 != overwrite_magic) { /* Overwrite the 1st byte of the file, the ITS magic number */ - TEST_ASSERT( fseek( stream, 0, SEEK_SET ) == 0 ); - n = fwrite( &bad_char, 1, 1, stream ); - TEST_ASSERT( 1 == n ); + TEST_ASSERT(fseek(stream, 0, SEEK_SET) == 0); + n = fwrite(&bad_char, 1, 1, stream); + TEST_ASSERT(1 == n); } - if( 0 != cut_header ) - { + if (0 != cut_header) { /* Reopen file and truncate it to 0 byte by specifying the 'w' flag */ - stream = freopen( filename, "wb", stream ); - TEST_ASSERT( NULL != stream ); + stream = freopen(filename, "wb", stream); + TEST_ASSERT(NULL != stream); } - fclose( stream ); + fclose(stream); stream = NULL; - status = psa_its_get( uid, 0, 0, buffer, &ret_len ); - TEST_ASSERT( status == (psa_status_t) expected_status ); - TEST_ASSERT( 0 == ret_len ); - PSA_ASSERT( psa_its_remove( uid ) ); + status = psa_its_get(uid, 0, 0, buffer, &ret_len); + TEST_ASSERT(status == (psa_status_t) expected_status); + TEST_ASSERT(0 == ret_len); + PSA_ASSERT(psa_its_remove(uid)); /* Check if the file is really deleted. */ - stream = fopen( filename, "rb" ); - TEST_ASSERT( NULL == stream ); + stream = fopen(filename, "rb"); + TEST_ASSERT(NULL == stream); exit: - if( stream != NULL ) - fclose( stream ); + if (stream != NULL) { + fclose(stream); + } - mbedtls_free( buffer ); - cleanup( ); + mbedtls_free(buffer); + cleanup(); } /* END_CASE */ /* BEGIN_CASE */ -void set_fail( int uid_arg, data_t *data, - int expected_status ) +void set_fail(int uid_arg, data_t *data, + int expected_status) { psa_storage_uid_t uid = uid_arg; - TEST_ASSERT( psa_its_set_wrap( uid, data->len, data->x, 0 ) == - (psa_status_t) expected_status ); + TEST_ASSERT(psa_its_set_wrap(uid, data->len, data->x, 0) == + (psa_status_t) expected_status); - exit: - cleanup( ); +exit: + cleanup(); } /* END_CASE */ diff --git a/tests/suites/test_suite_random.function b/tests/suites/test_suite_random.function index c532c8a3b..3026bae0e 100644 --- a/tests/suites/test_suite_random.function +++ b/tests/suites/test_suite_random.function @@ -19,7 +19,7 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_C:MBEDTLS_CTR_DRBG_C */ -void random_twice_with_ctr_drbg( ) +void random_twice_with_ctr_drbg() { mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context drbg; @@ -27,176 +27,176 @@ void random_twice_with_ctr_drbg( ) unsigned char output2[OUTPUT_SIZE]; /* First round */ - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &drbg ); - TEST_EQUAL( 0, mbedtls_ctr_drbg_seed( &drbg, - mbedtls_entropy_func, &entropy, - NULL, 0 ) ); - TEST_EQUAL( 0, mbedtls_ctr_drbg_random( &drbg, - output1, sizeof( output1 ) ) ); - mbedtls_ctr_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&drbg); + TEST_EQUAL(0, mbedtls_ctr_drbg_seed(&drbg, + mbedtls_entropy_func, &entropy, + NULL, 0)); + TEST_EQUAL(0, mbedtls_ctr_drbg_random(&drbg, + output1, sizeof(output1))); + mbedtls_ctr_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); /* Second round */ - mbedtls_entropy_init( &entropy ); - mbedtls_ctr_drbg_init( &drbg ); - TEST_EQUAL( 0, mbedtls_ctr_drbg_seed( &drbg, - mbedtls_entropy_func, &entropy, - NULL, 0 ) ); - TEST_EQUAL( 0, mbedtls_ctr_drbg_random( &drbg, - output2, sizeof( output2 ) ) ); - mbedtls_ctr_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_entropy_init(&entropy); + mbedtls_ctr_drbg_init(&drbg); + TEST_EQUAL(0, mbedtls_ctr_drbg_seed(&drbg, + mbedtls_entropy_func, &entropy, + NULL, 0)); + TEST_EQUAL(0, mbedtls_ctr_drbg_random(&drbg, + output2, sizeof(output2))); + mbedtls_ctr_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); /* The two rounds must generate different random data. */ - TEST_ASSERT( memcmp( output1, output2, OUTPUT_SIZE ) != 0 ); + TEST_ASSERT(memcmp(output1, output2, OUTPUT_SIZE) != 0); exit: - mbedtls_ctr_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_ctr_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_ENTROPY_C:MBEDTLS_HMAC_DRBG_C */ -void random_twice_with_hmac_drbg( int md_type ) +void random_twice_with_hmac_drbg(int md_type) { mbedtls_entropy_context entropy; mbedtls_hmac_drbg_context drbg; unsigned char output1[OUTPUT_SIZE]; unsigned char output2[OUTPUT_SIZE]; - const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type( md_type ); + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type(md_type); /* First round */ - mbedtls_entropy_init( &entropy ); - mbedtls_hmac_drbg_init( &drbg ); - TEST_EQUAL( 0, mbedtls_hmac_drbg_seed( &drbg, md_info, - mbedtls_entropy_func, &entropy, - NULL, 0 ) ); - TEST_EQUAL( 0, mbedtls_hmac_drbg_random( &drbg, - output1, sizeof( output1 ) ) ); - mbedtls_hmac_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_entropy_init(&entropy); + mbedtls_hmac_drbg_init(&drbg); + TEST_EQUAL(0, mbedtls_hmac_drbg_seed(&drbg, md_info, + mbedtls_entropy_func, &entropy, + NULL, 0)); + TEST_EQUAL(0, mbedtls_hmac_drbg_random(&drbg, + output1, sizeof(output1))); + mbedtls_hmac_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); /* Second round */ - mbedtls_entropy_init( &entropy ); - mbedtls_hmac_drbg_init( &drbg ); - TEST_EQUAL( 0, mbedtls_hmac_drbg_seed( &drbg, md_info, - mbedtls_entropy_func, &entropy, - NULL, 0 ) ); - TEST_EQUAL( 0, mbedtls_hmac_drbg_random( &drbg, - output2, sizeof( output2 ) ) ); - mbedtls_hmac_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_entropy_init(&entropy); + mbedtls_hmac_drbg_init(&drbg); + TEST_EQUAL(0, mbedtls_hmac_drbg_seed(&drbg, md_info, + mbedtls_entropy_func, &entropy, + NULL, 0)); + TEST_EQUAL(0, mbedtls_hmac_drbg_random(&drbg, + output2, sizeof(output2))); + mbedtls_hmac_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); /* The two rounds must generate different random data. */ - TEST_ASSERT( memcmp( output1, output2, OUTPUT_SIZE ) != 0 ); + TEST_ASSERT(memcmp(output1, output2, OUTPUT_SIZE) != 0); exit: - mbedtls_hmac_drbg_free( &drbg ); - mbedtls_entropy_free( &entropy ); + mbedtls_hmac_drbg_free(&drbg); + mbedtls_entropy_free(&entropy); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void random_twice_with_psa_from_classic( ) +void random_twice_with_psa_from_classic() { unsigned char output1[OUTPUT_SIZE]; unsigned char output2[OUTPUT_SIZE]; /* First round */ - PSA_ASSERT( psa_crypto_init( ) ); - TEST_EQUAL( 0, mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output1, sizeof( output1 ) ) ); - PSA_DONE( ); + PSA_ASSERT(psa_crypto_init()); + TEST_EQUAL(0, mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output1, sizeof(output1))); + PSA_DONE(); /* Second round */ - PSA_ASSERT( psa_crypto_init( ) ); - TEST_EQUAL( 0, mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output2, sizeof( output2 ) ) ); - PSA_DONE( ); + PSA_ASSERT(psa_crypto_init()); + TEST_EQUAL(0, mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output2, sizeof(output2))); + PSA_DONE(); /* The two rounds must generate different random data. */ - TEST_ASSERT( memcmp( output1, output2, OUTPUT_SIZE ) != 0 ); + TEST_ASSERT(memcmp(output1, output2, OUTPUT_SIZE) != 0); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C:!MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ -void random_twice_with_psa_from_psa( ) +void random_twice_with_psa_from_psa() { unsigned char output1[OUTPUT_SIZE]; unsigned char output2[OUTPUT_SIZE]; /* First round */ - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_generate_random( output1, sizeof( output1 ) ) ); - PSA_DONE( ); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_generate_random(output1, sizeof(output1))); + PSA_DONE(); /* Second round */ - PSA_ASSERT( psa_crypto_init( ) ); - PSA_ASSERT( psa_generate_random( output2, sizeof( output2 ) ) ); - PSA_DONE( ); + PSA_ASSERT(psa_crypto_init()); + PSA_ASSERT(psa_generate_random(output2, sizeof(output2))); + PSA_DONE(); /* The two rounds must generate different random data. */ - TEST_ASSERT( memcmp( output1, output2, OUTPUT_SIZE ) != 0 ); + TEST_ASSERT(memcmp(output1, output2, OUTPUT_SIZE) != 0); exit: - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C */ -void mbedtls_psa_get_random_no_init( ) +void mbedtls_psa_get_random_no_init() { unsigned char output[1]; - TEST_ASSERT( mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output, sizeof( output ) ) != 0 ); + TEST_ASSERT(mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output, sizeof(output)) != 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C */ -void mbedtls_psa_get_random_length( int n ) +void mbedtls_psa_get_random_length(int n) { unsigned char *output = NULL; - PSA_ASSERT( psa_crypto_init( ) ); - ASSERT_ALLOC( output, n ); + PSA_ASSERT(psa_crypto_init()); + ASSERT_ALLOC(output, n); - TEST_EQUAL( 0, mbedtls_psa_get_random( MBEDTLS_PSA_RANDOM_STATE, - output, n ) ); + TEST_EQUAL(0, mbedtls_psa_get_random(MBEDTLS_PSA_RANDOM_STATE, + output, n)); exit: - mbedtls_free( output ); - PSA_DONE( ); + mbedtls_free(output); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PSA_CRYPTO_C:MBEDTLS_ECDSA_C */ -void mbedtls_psa_get_random_ecdsa_sign( int curve ) +void mbedtls_psa_get_random_ecdsa_sign(int curve) { mbedtls_ecp_group grp; mbedtls_mpi d, r, s; unsigned char buf[] = "This is not a hash."; - mbedtls_ecp_group_init( &grp ); - mbedtls_mpi_init( &d ); - mbedtls_mpi_init( &r ); - mbedtls_mpi_init( &s ); + mbedtls_ecp_group_init(&grp); + mbedtls_mpi_init(&d); + mbedtls_mpi_init(&r); + mbedtls_mpi_init(&s); - TEST_EQUAL( 0, mbedtls_mpi_lset( &d, 123456789 ) ); - TEST_EQUAL( 0, mbedtls_ecp_group_load( &grp, curve ) ); - PSA_ASSERT( psa_crypto_init( ) ); - TEST_EQUAL( 0, mbedtls_ecdsa_sign( &grp, &r, &s, &d, - buf, sizeof( buf ), - mbedtls_psa_get_random, - MBEDTLS_PSA_RANDOM_STATE ) ); + TEST_EQUAL(0, mbedtls_mpi_lset(&d, 123456789)); + TEST_EQUAL(0, mbedtls_ecp_group_load(&grp, curve)); + PSA_ASSERT(psa_crypto_init()); + TEST_EQUAL(0, mbedtls_ecdsa_sign(&grp, &r, &s, &d, + buf, sizeof(buf), + mbedtls_psa_get_random, + MBEDTLS_PSA_RANDOM_STATE)); exit: - mbedtls_mpi_free( &d ); - mbedtls_mpi_free( &r ); - mbedtls_mpi_free( &s ); - mbedtls_ecp_group_free( &grp ); - PSA_DONE( ); + mbedtls_mpi_free(&d); + mbedtls_mpi_free(&r); + mbedtls_mpi_free(&s); + mbedtls_ecp_group_free(&grp); + PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_rsa.function b/tests/suites/test_suite_rsa.function index 65731ed93..a2fe6c8ac 100644 --- a/tests/suites/test_suite_rsa.function +++ b/tests/suites/test_suite_rsa.function @@ -11,131 +11,131 @@ */ /* BEGIN_CASE */ -void rsa_invalid_param( ) +void rsa_invalid_param() { mbedtls_rsa_context ctx; const int invalid_padding = 42; const int invalid_hash_id = 0xff; - unsigned char buf[] = {0x00,0x01,0x02,0x03,0x04,0x05}; - size_t buf_len = sizeof( buf ); + unsigned char buf[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 }; + size_t buf_len = sizeof(buf); - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); - TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, - invalid_padding, - MBEDTLS_MD_NONE ), - MBEDTLS_ERR_RSA_INVALID_PADDING ); + TEST_EQUAL(mbedtls_rsa_set_padding(&ctx, + invalid_padding, + MBEDTLS_MD_NONE), + MBEDTLS_ERR_RSA_INVALID_PADDING); - TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, - invalid_hash_id ), - MBEDTLS_ERR_RSA_INVALID_PADDING ); + TEST_EQUAL(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, + invalid_hash_id), + MBEDTLS_ERR_RSA_INVALID_PADDING); - TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL, - NULL, MBEDTLS_MD_NONE, - buf_len, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_pkcs1_sign(&ctx, NULL, + NULL, MBEDTLS_MD_NONE, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_pkcs1_sign(&ctx, NULL, - NULL, MBEDTLS_MD_SHA256, - 0, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_pkcs1_sign(&ctx, NULL, + NULL, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_NONE, - buf_len, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_NONE, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_SHA256, - 0, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); #if !defined(MBEDTLS_PKCS1_V15) - TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V15, - MBEDTLS_MD_NONE ), - MBEDTLS_ERR_RSA_INVALID_PADDING ); + TEST_EQUAL(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V15, + MBEDTLS_MD_NONE), + MBEDTLS_ERR_RSA_INVALID_PADDING); #endif #if defined(MBEDTLS_PKCS1_V15) - TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, - NULL, MBEDTLS_MD_NONE, - buf_len, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, + NULL, MBEDTLS_MD_NONE, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, - NULL, MBEDTLS_MD_SHA256, - 0, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pkcs1_v15_sign(&ctx, NULL, + NULL, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_NONE, - buf_len, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_NONE, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_SHA256, - 0, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pkcs1_v15_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); #endif #if !defined(MBEDTLS_PKCS1_V21) - TEST_EQUAL( mbedtls_rsa_set_padding( &ctx, - MBEDTLS_RSA_PKCS_V21, - MBEDTLS_MD_NONE ), - MBEDTLS_ERR_RSA_INVALID_PADDING ); + TEST_EQUAL(mbedtls_rsa_set_padding(&ctx, + MBEDTLS_RSA_PKCS_V21, + MBEDTLS_MD_NONE), + MBEDTLS_ERR_RSA_INVALID_PADDING); #endif #if defined(MBEDTLS_PKCS1_V21) - TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, - MBEDTLS_MD_NONE, buf_len, - NULL, buf_len, - buf ), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, + MBEDTLS_MD_NONE, buf_len, + NULL, buf_len, + buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, - MBEDTLS_MD_SHA256, 0, - NULL, buf_len, - buf ), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_sign_ext(&ctx, NULL, NULL, + MBEDTLS_MD_SHA256, 0, + NULL, buf_len, + buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_NONE, - buf_len, NULL, - MBEDTLS_MD_NONE, - buf_len, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_NONE, + buf_len, NULL, + MBEDTLS_MD_NONE, + buf_len, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_SHA256, - 0, NULL, - MBEDTLS_MD_NONE, - buf_len, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_verify_ext(&ctx, MBEDTLS_MD_SHA256, + 0, NULL, + MBEDTLS_MD_NONE, + buf_len, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_NONE, - buf_len, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_NONE, + buf_len, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); - TEST_EQUAL( mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_SHA256, - 0, - NULL, buf), - MBEDTLS_ERR_RSA_BAD_INPUT_DATA ); + TEST_EQUAL(mbedtls_rsa_rsassa_pss_verify(&ctx, MBEDTLS_MD_SHA256, + 0, + NULL, buf), + MBEDTLS_ERR_RSA_BAD_INPUT_DATA); #endif exit: - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_init_free( int reinit ) +void rsa_init_free(int reinit) { mbedtls_rsa_context ctx; @@ -144,12 +144,13 @@ void rsa_init_free( int reinit ) * unconditionally on an error path without checking whether it has * already been called in the success path. */ - mbedtls_rsa_init( &ctx ); - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_init(&ctx); + mbedtls_rsa_free(&ctx); - if( reinit ) - mbedtls_rsa_init( &ctx ); - mbedtls_rsa_free( &ctx ); + if (reinit) { + mbedtls_rsa_init(&ctx); + } + mbedtls_rsa_free(&ctx); /* This test case always succeeds, functionally speaking. A plausible * bug might trigger an invalid pointer dereference or a memory leak. */ @@ -158,257 +159,256 @@ void rsa_init_free( int reinit ) /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_pkcs1_sign( data_t * message_str, int padding_mode, - int digest, int mod, char * input_P, - char * input_Q, char * input_N, char * input_E, - data_t * result_str, int result ) +void mbedtls_rsa_pkcs1_sign(data_t *message_str, int padding_mode, + int digest, int mod, char *input_P, + char *input_Q, char *input_N, char *input_E, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx; mbedtls_mpi N, P, Q, E; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx,padding_mode, - MBEDTLS_MD_NONE ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); - memset( output, 0x00, sizeof( output ) ); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(output, 0x00, sizeof(output)); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_sign( - &ctx, &mbedtls_test_rnd_pseudo_rand, &rnd_info, - digest, message_str->len, message_str->x, - output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_pkcs1_sign( + &ctx, &mbedtls_test_rnd_pseudo_rand, &rnd_info, + digest, message_str->len, message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_pkcs1_verify( data_t * message_str, int padding_mode, - int digest, int mod, - char * input_N, char * input_E, - data_t * result_str, int result ) +void mbedtls_rsa_pkcs1_verify(data_t *message_str, int padding_mode, + int digest, int mod, + char *input_N, char *input_E, + data_t *result_str, int result) { mbedtls_rsa_context ctx; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_verify( &ctx, digest, message_str->len, message_str->x, result_str->x ) == result ); + TEST_ASSERT(mbedtls_rsa_pkcs1_verify(&ctx, digest, message_str->len, message_str->x, + result_str->x) == result); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_pkcs1_sign_raw( data_t * hash_result, - int padding_mode, int mod, - char * input_P, char * input_Q, - char * input_N, char * input_E, - data_t * result_str ) +void rsa_pkcs1_sign_raw(data_t *hash_result, + int padding_mode, int mod, + char *input_P, char *input_Q, + char *input_N, char *input_E, + data_t *result_str) { unsigned char output[256]; mbedtls_rsa_context ctx; mbedtls_mpi N, P, Q, E; mbedtls_test_rnd_pseudo_info rnd_info; - mbedtls_rsa_init( &ctx ); - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_rsa_init(&ctx); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); - memset( output, 0x00, sizeof( output ) ); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(output, 0x00, sizeof(output)); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_sign( &ctx, &mbedtls_test_rnd_pseudo_rand, - &rnd_info, MBEDTLS_MD_NONE, - hash_result->len, - hash_result->x, output ) == 0 ); + TEST_ASSERT(mbedtls_rsa_pkcs1_sign(&ctx, &mbedtls_test_rnd_pseudo_rand, + &rnd_info, MBEDTLS_MD_NONE, + hash_result->len, + hash_result->x, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_pkcs1_verify_raw( data_t * hash_result, - int padding_mode, int mod, - char * input_N, char * input_E, - data_t * result_str, int correct ) +void rsa_pkcs1_verify_raw(data_t *hash_result, + int padding_mode, int mod, + char *input_N, char *input_E, + data_t *result_str, int correct) { unsigned char output[256]; mbedtls_rsa_context ctx; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_verify( &ctx, MBEDTLS_MD_NONE, hash_result->len, hash_result->x, result_str->x ) == correct ); + TEST_ASSERT(mbedtls_rsa_pkcs1_verify(&ctx, MBEDTLS_MD_NONE, hash_result->len, hash_result->x, + result_str->x) == correct); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_pkcs1_encrypt( data_t * message_str, int padding_mode, - int mod, char * input_N, char * input_E, - data_t * result_str, int result ) +void mbedtls_rsa_pkcs1_encrypt(data_t *message_str, int padding_mode, + int mod, char *input_N, char *input_E, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx; mbedtls_test_rnd_pseudo_info rnd_info; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_encrypt( &ctx, - &mbedtls_test_rnd_pseudo_rand, - &rnd_info, message_str->len, - message_str->x, - output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_pkcs1_encrypt(&ctx, + &mbedtls_test_rnd_pseudo_rand, + &rnd_info, message_str->len, + message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_pkcs1_encrypt_bad_rng( data_t * message_str, int padding_mode, - int mod, char * input_N, char * input_E, - data_t * result_str, int result ) +void rsa_pkcs1_encrypt_bad_rng(data_t *message_str, int padding_mode, + int mod, char *input_N, char *input_E, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_pkcs1_encrypt( &ctx, &mbedtls_test_rnd_zero_rand, - NULL, message_str->len, - message_str->x, - output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_pkcs1_encrypt(&ctx, &mbedtls_test_rnd_zero_rand, + NULL, message_str->len, + message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_pkcs1_decrypt( data_t * message_str, int padding_mode, - int mod, char * input_P, - char * input_Q, char * input_N, - char * input_E, int max_output, - data_t * result_str, int result ) +void mbedtls_rsa_pkcs1_decrypt(data_t *message_str, int padding_mode, + int mod, char *input_P, + char *input_Q, char *input_N, + char *input_E, int max_output, + data_t *result_str, int result) { unsigned char output[32]; mbedtls_rsa_context ctx; @@ -416,109 +416,106 @@ void mbedtls_rsa_pkcs1_decrypt( data_t * message_str, int padding_mode, mbedtls_test_rnd_pseudo_info rnd_info; mbedtls_mpi N, P, Q, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); - mbedtls_rsa_init( &ctx ); - TEST_ASSERT( mbedtls_rsa_set_padding( &ctx, padding_mode, - MBEDTLS_MD_NONE ) == 0 ); + mbedtls_rsa_init(&ctx); + TEST_ASSERT(mbedtls_rsa_set_padding(&ctx, padding_mode, + MBEDTLS_MD_NONE) == 0); - memset( output, 0x00, sizeof( output ) ); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(output, 0x00, sizeof(output)); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); output_len = 0; - TEST_ASSERT( mbedtls_rsa_pkcs1_decrypt( &ctx, mbedtls_test_rnd_pseudo_rand, - &rnd_info, - &output_len, message_str->x, output, - max_output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_pkcs1_decrypt(&ctx, mbedtls_test_rnd_pseudo_rand, + &rnd_info, + &output_len, message_str->x, output, + max_output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - output_len, - result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + output_len, + result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_public( data_t * message_str, int mod, - char * input_N, char * input_E, - data_t * result_str, int result ) +void mbedtls_rsa_public(data_t *message_str, int mod, + char *input_N, char *input_E, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx, ctx2; /* Also test mbedtls_rsa_copy() while at it */ mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - mbedtls_rsa_init( &ctx2 ); - memset( output, 0x00, sizeof( output ) ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + mbedtls_rsa_init(&ctx2); + memset(output, 0x00, sizeof(output)); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); /* Check test data consistency */ - TEST_ASSERT( message_str->len == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == 0 ); + TEST_ASSERT(message_str->len == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == 0); - TEST_ASSERT( mbedtls_rsa_public( &ctx, message_str->x, output ) == result ); - if( result == 0 ) - { + TEST_ASSERT(mbedtls_rsa_public(&ctx, message_str->x, output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } /* And now with the copy */ - TEST_ASSERT( mbedtls_rsa_copy( &ctx2, &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_copy(&ctx2, &ctx) == 0); /* clear the original to be sure */ - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx2 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx2) == 0); - memset( output, 0x00, sizeof( output ) ); - TEST_ASSERT( mbedtls_rsa_public( &ctx2, message_str->x, output ) == result ); - if( result == 0 ) - { + memset(output, 0x00, sizeof(output)); + TEST_ASSERT(mbedtls_rsa_public(&ctx2, message_str->x, output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); - mbedtls_rsa_free( &ctx2 ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); + mbedtls_rsa_free(&ctx2); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_private( data_t * message_str, int mod, - char * input_P, char * input_Q, - char * input_N, char * input_E, - data_t * result_str, int result ) +void mbedtls_rsa_private(data_t *message_str, int mod, + char *input_P, char *input_Q, + char *input_N, char *input_E, + data_t *result_str, int result) { unsigned char output[256]; mbedtls_rsa_context ctx, ctx2; /* Also test mbedtls_rsa_copy() while at it */ @@ -526,149 +523,136 @@ void mbedtls_rsa_private( data_t * message_str, int mod, mbedtls_test_rnd_pseudo_info rnd_info; int i; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &P ); - mbedtls_mpi_init( &Q ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); - mbedtls_rsa_init( &ctx2 ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&P); + mbedtls_mpi_init(&Q); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); + mbedtls_rsa_init(&ctx2); - memset( &rnd_info, 0, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0, sizeof(mbedtls_test_rnd_pseudo_info)); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, &P, &Q, NULL, &E ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, &P, &Q, NULL, &E) == 0); /* Check test data consistency */ - TEST_ASSERT( message_str->len == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_get_len( &ctx ) == (size_t) ( mod / 8 ) ); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); + TEST_ASSERT(message_str->len == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_get_len(&ctx) == (size_t) (mod / 8)); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); /* repeat three times to test updating of blinding values */ - for( i = 0; i < 3; i++ ) - { - memset( output, 0x00, sizeof( output ) ); - TEST_ASSERT( mbedtls_rsa_private( &ctx, mbedtls_test_rnd_pseudo_rand, - &rnd_info, message_str->x, - output ) == result ); - if( result == 0 ) - { + for (i = 0; i < 3; i++) { + memset(output, 0x00, sizeof(output)); + TEST_ASSERT(mbedtls_rsa_private(&ctx, mbedtls_test_rnd_pseudo_rand, + &rnd_info, message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx.len, - result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx.len, + result_str->len) == 0); } } /* And now one more time with the copy */ - TEST_ASSERT( mbedtls_rsa_copy( &ctx2, &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_copy(&ctx2, &ctx) == 0); /* clear the original to be sure */ - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx2 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx2) == 0); - memset( output, 0x00, sizeof( output ) ); - TEST_ASSERT( mbedtls_rsa_private( &ctx2, mbedtls_test_rnd_pseudo_rand, - &rnd_info, message_str->x, - output ) == result ); - if( result == 0 ) - { + memset(output, 0x00, sizeof(output)); + TEST_ASSERT(mbedtls_rsa_private(&ctx2, mbedtls_test_rnd_pseudo_rand, + &rnd_info, message_str->x, + output) == result); + if (result == 0) { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - ctx2.len, - result_str->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + ctx2.len, + result_str->len) == 0); } exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &P ); - mbedtls_mpi_free( &Q ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&P); + mbedtls_mpi_free(&Q); mbedtls_mpi_free(&E); - mbedtls_rsa_free( &ctx ); mbedtls_rsa_free( &ctx2 ); + mbedtls_rsa_free(&ctx); mbedtls_rsa_free(&ctx2); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_check_privkey_null( ) +void rsa_check_privkey_null() { mbedtls_rsa_context ctx; - memset( &ctx, 0x00, sizeof( mbedtls_rsa_context ) ); + memset(&ctx, 0x00, sizeof(mbedtls_rsa_context)); - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == MBEDTLS_ERR_RSA_KEY_CHECK_FAILED ); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == MBEDTLS_ERR_RSA_KEY_CHECK_FAILED); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_check_pubkey( char * input_N, char * input_E, int result ) +void mbedtls_rsa_check_pubkey(char *input_N, char *input_E, int result) { mbedtls_rsa_context ctx; mbedtls_mpi N, E; - mbedtls_mpi_init( &N ); mbedtls_mpi_init( &E ); - mbedtls_rsa_init( &ctx ); + mbedtls_mpi_init(&N); mbedtls_mpi_init(&E); + mbedtls_rsa_init(&ctx); - if( strlen( input_N ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); + if (strlen(input_N)) { + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); } - if( strlen( input_E ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + if (strlen(input_E)) { + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); } - TEST_ASSERT( mbedtls_rsa_import( &ctx, &N, NULL, NULL, NULL, &E ) == 0 ); - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == result ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, &N, NULL, NULL, NULL, &E) == 0); + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == result); exit: - mbedtls_mpi_free( &N ); mbedtls_mpi_free( &E ); - mbedtls_rsa_free( &ctx ); + mbedtls_mpi_free(&N); mbedtls_mpi_free(&E); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_check_privkey( int mod, char * input_P, char * input_Q, - char * input_N, char * input_E, char * input_D, - char * input_DP, char * input_DQ, char * input_QP, - int result ) +void mbedtls_rsa_check_privkey(int mod, char *input_P, char *input_Q, + char *input_N, char *input_E, char *input_D, + char *input_DP, char *input_DQ, char *input_QP, + int result) { mbedtls_rsa_context ctx; - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); ctx.len = mod / 8; - if( strlen( input_P ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.P, input_P ) == 0 ); + if (strlen(input_P)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.P, input_P) == 0); } - if( strlen( input_Q ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.Q, input_Q ) == 0 ); + if (strlen(input_Q)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.Q, input_Q) == 0); } - if( strlen( input_N ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.N, input_N ) == 0 ); + if (strlen(input_N)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.N, input_N) == 0); } - if( strlen( input_E ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.E, input_E ) == 0 ); + if (strlen(input_E)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.E, input_E) == 0); } - if( strlen( input_D ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.D, input_D ) == 0 ); + if (strlen(input_D)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.D, input_D) == 0); } #if !defined(MBEDTLS_RSA_NO_CRT) - if( strlen( input_DP ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.DP, input_DP ) == 0 ); + if (strlen(input_DP)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.DP, input_DP) == 0); } - if( strlen( input_DQ ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.DQ, input_DQ ) == 0 ); + if (strlen(input_DQ)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.DQ, input_DQ) == 0); } - if( strlen( input_QP ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &ctx.QP, input_QP ) == 0 ); + if (strlen(input_QP)) { + TEST_ASSERT(mbedtls_test_read_mpi(&ctx.QP, input_QP) == 0); } #else ((void) input_DP); @@ -676,68 +660,58 @@ void mbedtls_rsa_check_privkey( int mod, char * input_P, char * input_Q, ((void) input_QP); #endif - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == result ); + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == result); exit: - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void rsa_check_pubpriv( int mod, char * input_Npub, char * input_Epub, - char * input_P, char * input_Q, char * input_N, - char * input_E, char * input_D, char * input_DP, - char * input_DQ, char * input_QP, int result ) +void rsa_check_pubpriv(int mod, char *input_Npub, char *input_Epub, + char *input_P, char *input_Q, char *input_N, + char *input_E, char *input_D, char *input_DP, + char *input_DQ, char *input_QP, int result) { mbedtls_rsa_context pub, prv; - mbedtls_rsa_init( &pub ); - mbedtls_rsa_init( &prv ); + mbedtls_rsa_init(&pub); + mbedtls_rsa_init(&prv); pub.len = mod / 8; prv.len = mod / 8; - if( strlen( input_Npub ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &pub.N, input_Npub ) == 0 ); + if (strlen(input_Npub)) { + TEST_ASSERT(mbedtls_test_read_mpi(&pub.N, input_Npub) == 0); } - if( strlen( input_Epub ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &pub.E, input_Epub ) == 0 ); + if (strlen(input_Epub)) { + TEST_ASSERT(mbedtls_test_read_mpi(&pub.E, input_Epub) == 0); } - if( strlen( input_P ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.P, input_P ) == 0 ); + if (strlen(input_P)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.P, input_P) == 0); } - if( strlen( input_Q ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.Q, input_Q ) == 0 ); + if (strlen(input_Q)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.Q, input_Q) == 0); } - if( strlen( input_N ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.N, input_N ) == 0 ); + if (strlen(input_N)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.N, input_N) == 0); } - if( strlen( input_E ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.E, input_E ) == 0 ); + if (strlen(input_E)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.E, input_E) == 0); } - if( strlen( input_D ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.D, input_D ) == 0 ); + if (strlen(input_D)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.D, input_D) == 0); } #if !defined(MBEDTLS_RSA_NO_CRT) - if( strlen( input_DP ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.DP, input_DP ) == 0 ); + if (strlen(input_DP)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.DP, input_DP) == 0); } - if( strlen( input_DQ ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.DQ, input_DQ ) == 0 ); + if (strlen(input_DQ)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.DQ, input_DQ) == 0); } - if( strlen( input_QP ) ) - { - TEST_ASSERT( mbedtls_test_read_mpi( &prv.QP, input_QP ) == 0 ); + if (strlen(input_QP)) { + TEST_ASSERT(mbedtls_test_read_mpi(&prv.QP, input_QP) == 0); } #else ((void) input_DP); @@ -745,145 +719,143 @@ void rsa_check_pubpriv( int mod, char * input_Npub, char * input_Epub, ((void) input_QP); #endif - TEST_ASSERT( mbedtls_rsa_check_pub_priv( &pub, &prv ) == result ); + TEST_ASSERT(mbedtls_rsa_check_pub_priv(&pub, &prv) == result); exit: - mbedtls_rsa_free( &pub ); - mbedtls_rsa_free( &prv ); + mbedtls_rsa_free(&pub); + mbedtls_rsa_free(&prv); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_gen_key( int nrbits, int exponent, int result) +void mbedtls_rsa_gen_key(int nrbits, int exponent, int result) { mbedtls_rsa_context ctx; - mbedtls_rsa_init ( &ctx ); + mbedtls_rsa_init(&ctx); /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_rsa_gen_key( &ctx, mbedtls_test_rnd_std_rand, NULL, nrbits, exponent ) == result ); - if( result == 0 ) - { - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &ctx.P, &ctx.Q ) > 0 ); + TEST_ASSERT(mbedtls_rsa_gen_key(&ctx, mbedtls_test_rnd_std_rand, NULL, nrbits, + exponent) == result); + if (result == 0) { + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&ctx.P, &ctx.Q) > 0); } exit: - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_deduce_primes( char *input_N, - char *input_D, - char *input_E, - char *output_P, - char *output_Q, - int corrupt, int result ) +void mbedtls_rsa_deduce_primes(char *input_N, + char *input_D, + char *input_E, + char *output_P, + char *output_Q, + int corrupt, int result) { mbedtls_mpi N, P, Pp, Q, Qp, D, E; - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &Pp ); mbedtls_mpi_init( &Qp ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&Pp); mbedtls_mpi_init(&Qp); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &D, input_D ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Qp, output_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Pp, output_Q ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&D, input_D) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Qp, output_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Pp, output_Q) == 0); - if( corrupt ) - TEST_ASSERT( mbedtls_mpi_add_int( &D, &D, 2 ) == 0 ); + if (corrupt) { + TEST_ASSERT(mbedtls_mpi_add_int(&D, &D, 2) == 0); + } /* Try to deduce P, Q from N, D, E only. */ - TEST_ASSERT( mbedtls_rsa_deduce_primes( &N, &D, &E, &P, &Q ) == result ); + TEST_ASSERT(mbedtls_rsa_deduce_primes(&N, &D, &E, &P, &Q) == result); - if( !corrupt ) - { + if (!corrupt) { /* Check if (P,Q) = (Pp, Qp) or (P,Q) = (Qp, Pp) */ - TEST_ASSERT( ( mbedtls_mpi_cmp_mpi( &P, &Pp ) == 0 && mbedtls_mpi_cmp_mpi( &Q, &Qp ) == 0 ) || - ( mbedtls_mpi_cmp_mpi( &P, &Qp ) == 0 && mbedtls_mpi_cmp_mpi( &Q, &Pp ) == 0 ) ); + TEST_ASSERT((mbedtls_mpi_cmp_mpi(&P, &Pp) == 0 && mbedtls_mpi_cmp_mpi(&Q, &Qp) == 0) || + (mbedtls_mpi_cmp_mpi(&P, &Qp) == 0 && mbedtls_mpi_cmp_mpi(&Q, &Pp) == 0)); } exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &Pp ); mbedtls_mpi_free( &Qp ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&Pp); mbedtls_mpi_free(&Qp); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_deduce_private_exponent( char *input_P, - char *input_Q, - char *input_E, - char *output_D, - int corrupt, int result ) +void mbedtls_rsa_deduce_private_exponent(char *input_P, + char *input_Q, + char *input_E, + char *output_D, + int corrupt, int result) { mbedtls_mpi P, Q, D, Dp, E, R, Rp; - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &Dp ); - mbedtls_mpi_init( &E ); - mbedtls_mpi_init( &R ); mbedtls_mpi_init( &Rp ); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&Dp); + mbedtls_mpi_init(&E); + mbedtls_mpi_init(&R); mbedtls_mpi_init(&Rp); - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - TEST_ASSERT( mbedtls_test_read_mpi( &Dp, output_D ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + TEST_ASSERT(mbedtls_test_read_mpi(&Dp, output_D) == 0); - if( corrupt ) - { + if (corrupt) { /* Make E even */ - TEST_ASSERT( mbedtls_mpi_set_bit( &E, 0, 0 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_set_bit(&E, 0, 0) == 0); } /* Try to deduce D from N, P, Q, E. */ - TEST_ASSERT( mbedtls_rsa_deduce_private_exponent( &P, &Q, - &E, &D ) == result ); + TEST_ASSERT(mbedtls_rsa_deduce_private_exponent(&P, &Q, + &E, &D) == result); - if( !corrupt ) - { + if (!corrupt) { /* * Check that D and Dp agree modulo LCM(P-1, Q-1). */ /* Replace P,Q by P-1, Q-1 */ - TEST_ASSERT( mbedtls_mpi_sub_int( &P, &P, 1 ) == 0 ); - TEST_ASSERT( mbedtls_mpi_sub_int( &Q, &Q, 1 ) == 0 ); + TEST_ASSERT(mbedtls_mpi_sub_int(&P, &P, 1) == 0); + TEST_ASSERT(mbedtls_mpi_sub_int(&Q, &Q, 1) == 0); /* Check D == Dp modulo P-1 */ - TEST_ASSERT( mbedtls_mpi_mod_mpi( &R, &D, &P ) == 0 ); - TEST_ASSERT( mbedtls_mpi_mod_mpi( &Rp, &Dp, &P ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &Rp ) == 0 ); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&R, &D, &P) == 0); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&Rp, &Dp, &P) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &Rp) == 0); /* Check D == Dp modulo Q-1 */ - TEST_ASSERT( mbedtls_mpi_mod_mpi( &R, &D, &Q ) == 0 ); - TEST_ASSERT( mbedtls_mpi_mod_mpi( &Rp, &Dp, &Q ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &R, &Rp ) == 0 ); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&R, &D, &Q) == 0); + TEST_ASSERT(mbedtls_mpi_mod_mpi(&Rp, &Dp, &Q) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&R, &Rp) == 0); } exit: - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &Dp ); - mbedtls_mpi_free( &E ); - mbedtls_mpi_free( &R ); mbedtls_mpi_free( &Rp ); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&Dp); + mbedtls_mpi_free(&E); + mbedtls_mpi_free(&R); mbedtls_mpi_free(&Rp); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_import( char *input_N, - char *input_P, - char *input_Q, - char *input_D, - char *input_E, - int successive, - int is_priv, - int res_check, - int res_complete ) +void mbedtls_rsa_import(char *input_N, + char *input_P, + char *input_Q, + char *input_D, + char *input_E, + int successive, + int is_priv, + int res_check, + int res_complete) { mbedtls_mpi N, P, Q, D, E; mbedtls_rsa_context ctx; @@ -893,136 +865,139 @@ void mbedtls_rsa_import( char *input_N, unsigned char *buf_enc = NULL; unsigned char *buf_dec = NULL; - const int have_N = ( strlen( input_N ) > 0 ); - const int have_P = ( strlen( input_P ) > 0 ); - const int have_Q = ( strlen( input_Q ) > 0 ); - const int have_D = ( strlen( input_D ) > 0 ); - const int have_E = ( strlen( input_E ) > 0 ); + const int have_N = (strlen(input_N) > 0); + const int have_P = (strlen(input_P) > 0); + const int have_Q = (strlen(input_Q) > 0); + const int have_D = (strlen(input_D) > 0); + const int have_E = (strlen(input_E) > 0); - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); - if( have_N ) - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); - - if( have_P ) - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); - - if( have_Q ) - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); - - if( have_D ) - TEST_ASSERT( mbedtls_test_read_mpi( &D, input_D ) == 0 ); - - if( have_E ) - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); - - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_import( &ctx, - have_N ? &N : NULL, - have_P ? &P : NULL, - have_Q ? &Q : NULL, - have_D ? &D : NULL, - have_E ? &E : NULL ) == 0 ); + if (have_N) { + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); } - else - { + + if (have_P) { + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + } + + if (have_Q) { + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + } + + if (have_D) { + TEST_ASSERT(mbedtls_test_read_mpi(&D, input_D) == 0); + } + + if (have_E) { + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + } + + if (!successive) { + TEST_ASSERT(mbedtls_rsa_import(&ctx, + have_N ? &N : NULL, + have_P ? &P : NULL, + have_Q ? &Q : NULL, + have_D ? &D : NULL, + have_E ? &E : NULL) == 0); + } else { /* Import N, P, Q, D, E separately. * This should make no functional difference. */ - TEST_ASSERT( mbedtls_rsa_import( &ctx, - have_N ? &N : NULL, - NULL, NULL, NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + have_N ? &N : NULL, + NULL, NULL, NULL, NULL) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, - NULL, - have_P ? &P : NULL, - NULL, NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + NULL, + have_P ? &P : NULL, + NULL, NULL, NULL) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, - NULL, NULL, - have_Q ? &Q : NULL, - NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + NULL, NULL, + have_Q ? &Q : NULL, + NULL, NULL) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, - NULL, NULL, NULL, - have_D ? &D : NULL, - NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + NULL, NULL, NULL, + have_D ? &D : NULL, + NULL) == 0); - TEST_ASSERT( mbedtls_rsa_import( &ctx, - NULL, NULL, NULL, NULL, - have_E ? &E : NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + NULL, NULL, NULL, NULL, + have_E ? &E : NULL) == 0); } - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == res_complete ); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == res_complete); /* On expected success, perform some public and private * key operations to check if the key is working properly. */ - if( res_complete == 0 ) - { - if( is_priv ) - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == res_check ); - else - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == res_check ); + if (res_complete == 0) { + if (is_priv) { + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == res_check); + } else { + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == res_check); + } - if( res_check != 0 ) + if (res_check != 0) { goto exit; + } - buf_orig = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - buf_enc = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - buf_dec = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - if( buf_orig == NULL || buf_enc == NULL || buf_dec == NULL ) + buf_orig = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + buf_enc = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + buf_dec = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + if (buf_orig == NULL || buf_enc == NULL || buf_dec == NULL) { goto exit; + } /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_test_rnd_std_rand( NULL, - buf_orig, mbedtls_rsa_get_len( &ctx ) ) == 0 ); + TEST_ASSERT(mbedtls_test_rnd_std_rand(NULL, + buf_orig, mbedtls_rsa_get_len(&ctx)) == 0); /* Make sure the number we're generating is smaller than the modulus */ buf_orig[0] = 0x00; - TEST_ASSERT( mbedtls_rsa_public( &ctx, buf_orig, buf_enc ) == 0 ); + TEST_ASSERT(mbedtls_rsa_public(&ctx, buf_orig, buf_enc) == 0); - if( is_priv ) - { + if (is_priv) { /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_rsa_private( &ctx, mbedtls_test_rnd_std_rand, - NULL, buf_enc, - buf_dec ) == 0 ); + TEST_ASSERT(mbedtls_rsa_private(&ctx, mbedtls_test_rnd_std_rand, + NULL, buf_enc, + buf_dec) == 0); - TEST_ASSERT( memcmp( buf_orig, buf_dec, - mbedtls_rsa_get_len( &ctx ) ) == 0 ); + TEST_ASSERT(memcmp(buf_orig, buf_dec, + mbedtls_rsa_get_len(&ctx)) == 0); } } exit: - mbedtls_free( buf_orig ); - mbedtls_free( buf_enc ); - mbedtls_free( buf_dec ); + mbedtls_free(buf_orig); + mbedtls_free(buf_enc); + mbedtls_free(buf_dec); - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_export( char *input_N, - char *input_P, - char *input_Q, - char *input_D, - char *input_E, - int is_priv, - int successive ) +void mbedtls_rsa_export(char *input_N, + char *input_P, + char *input_Q, + char *input_D, + char *input_E, + int is_priv, + int successive) { /* Original MPI's with which we set up the RSA context */ mbedtls_mpi N, P, Q, D, E; @@ -1030,173 +1005,179 @@ void mbedtls_rsa_export( char *input_N, /* Exported MPI's */ mbedtls_mpi Ne, Pe, Qe, De, Ee; - const int have_N = ( strlen( input_N ) > 0 ); - const int have_P = ( strlen( input_P ) > 0 ); - const int have_Q = ( strlen( input_Q ) > 0 ); - const int have_D = ( strlen( input_D ) > 0 ); - const int have_E = ( strlen( input_E ) > 0 ); + const int have_N = (strlen(input_N) > 0); + const int have_P = (strlen(input_P) > 0); + const int have_Q = (strlen(input_Q) > 0); + const int have_D = (strlen(input_D) > 0); + const int have_E = (strlen(input_E) > 0); mbedtls_rsa_context ctx; - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); - mbedtls_mpi_init( &Ne ); - mbedtls_mpi_init( &Pe ); mbedtls_mpi_init( &Qe ); - mbedtls_mpi_init( &De ); mbedtls_mpi_init( &Ee ); + mbedtls_mpi_init(&Ne); + mbedtls_mpi_init(&Pe); mbedtls_mpi_init(&Qe); + mbedtls_mpi_init(&De); mbedtls_mpi_init(&Ee); /* Setup RSA context */ - if( have_N ) - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); + if (have_N) { + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + } - if( have_P ) - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); + if (have_P) { + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + } - if( have_Q ) - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); + if (have_Q) { + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + } - if( have_D ) - TEST_ASSERT( mbedtls_test_read_mpi( &D, input_D ) == 0 ); + if (have_D) { + TEST_ASSERT(mbedtls_test_read_mpi(&D, input_D) == 0); + } - if( have_E ) - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + if (have_E) { + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + } - TEST_ASSERT( mbedtls_rsa_import( &ctx, - strlen( input_N ) ? &N : NULL, - strlen( input_P ) ? &P : NULL, - strlen( input_Q ) ? &Q : NULL, - strlen( input_D ) ? &D : NULL, - strlen( input_E ) ? &E : NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import(&ctx, + strlen(input_N) ? &N : NULL, + strlen(input_P) ? &P : NULL, + strlen(input_Q) ? &Q : NULL, + strlen(input_D) ? &D : NULL, + strlen(input_E) ? &E : NULL) == 0); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); /* * Export parameters and compare to original ones. */ /* N and E must always be present. */ - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_export( &ctx, &Ne, NULL, NULL, NULL, &Ee ) == 0 ); + if (!successive) { + TEST_ASSERT(mbedtls_rsa_export(&ctx, &Ne, NULL, NULL, NULL, &Ee) == 0); + } else { + TEST_ASSERT(mbedtls_rsa_export(&ctx, &Ne, NULL, NULL, NULL, NULL) == 0); + TEST_ASSERT(mbedtls_rsa_export(&ctx, NULL, NULL, NULL, NULL, &Ee) == 0); } - else - { - TEST_ASSERT( mbedtls_rsa_export( &ctx, &Ne, NULL, NULL, NULL, NULL ) == 0 ); - TEST_ASSERT( mbedtls_rsa_export( &ctx, NULL, NULL, NULL, NULL, &Ee ) == 0 ); - } - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &N, &Ne ) == 0 ); - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &E, &Ee ) == 0 ); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&N, &Ne) == 0); + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&E, &Ee) == 0); /* If we were providing enough information to setup a complete private context, * we expect to be able to export all core parameters. */ - if( is_priv ) - { - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_export( &ctx, NULL, &Pe, &Qe, - &De, NULL ) == 0 ); - } - else - { - TEST_ASSERT( mbedtls_rsa_export( &ctx, NULL, &Pe, NULL, - NULL, NULL ) == 0 ); - TEST_ASSERT( mbedtls_rsa_export( &ctx, NULL, NULL, &Qe, - NULL, NULL ) == 0 ); - TEST_ASSERT( mbedtls_rsa_export( &ctx, NULL, NULL, NULL, - &De, NULL ) == 0 ); + if (is_priv) { + if (!successive) { + TEST_ASSERT(mbedtls_rsa_export(&ctx, NULL, &Pe, &Qe, + &De, NULL) == 0); + } else { + TEST_ASSERT(mbedtls_rsa_export(&ctx, NULL, &Pe, NULL, + NULL, NULL) == 0); + TEST_ASSERT(mbedtls_rsa_export(&ctx, NULL, NULL, &Qe, + NULL, NULL) == 0); + TEST_ASSERT(mbedtls_rsa_export(&ctx, NULL, NULL, NULL, + &De, NULL) == 0); } - if( have_P ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &P, &Pe ) == 0 ); + if (have_P) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&P, &Pe) == 0); + } - if( have_Q ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &Q, &Qe ) == 0 ); + if (have_Q) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&Q, &Qe) == 0); + } - if( have_D ) - TEST_ASSERT( mbedtls_mpi_cmp_mpi( &D, &De ) == 0 ); + if (have_D) { + TEST_ASSERT(mbedtls_mpi_cmp_mpi(&D, &De) == 0); + } /* While at it, perform a sanity check */ - TEST_ASSERT( mbedtls_rsa_validate_params( &Ne, &Pe, &Qe, &De, &Ee, - NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_rsa_validate_params(&Ne, &Pe, &Qe, &De, &Ee, + NULL, NULL) == 0); } exit: - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); - mbedtls_mpi_free( &Ne ); - mbedtls_mpi_free( &Pe ); mbedtls_mpi_free( &Qe ); - mbedtls_mpi_free( &De ); mbedtls_mpi_free( &Ee ); + mbedtls_mpi_free(&Ne); + mbedtls_mpi_free(&Pe); mbedtls_mpi_free(&Qe); + mbedtls_mpi_free(&De); mbedtls_mpi_free(&Ee); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_validate_params( char *input_N, - char *input_P, - char *input_Q, - char *input_D, - char *input_E, - int prng, int result ) +void mbedtls_rsa_validate_params(char *input_N, + char *input_P, + char *input_Q, + char *input_D, + char *input_E, + int prng, int result) { /* Original MPI's with which we set up the RSA context */ mbedtls_mpi N, P, Q, D, E; - const int have_N = ( strlen( input_N ) > 0 ); - const int have_P = ( strlen( input_P ) > 0 ); - const int have_Q = ( strlen( input_Q ) > 0 ); - const int have_D = ( strlen( input_D ) > 0 ); - const int have_E = ( strlen( input_E ) > 0 ); + const int have_N = (strlen(input_N) > 0); + const int have_P = (strlen(input_P) > 0); + const int have_Q = (strlen(input_Q) > 0); + const int have_D = (strlen(input_D) > 0); + const int have_E = (strlen(input_E) > 0); - mbedtls_mpi_init( &N ); - mbedtls_mpi_init( &P ); mbedtls_mpi_init( &Q ); - mbedtls_mpi_init( &D ); mbedtls_mpi_init( &E ); + mbedtls_mpi_init(&N); + mbedtls_mpi_init(&P); mbedtls_mpi_init(&Q); + mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); - if( have_N ) - TEST_ASSERT( mbedtls_test_read_mpi( &N, input_N ) == 0 ); + if (have_N) { + TEST_ASSERT(mbedtls_test_read_mpi(&N, input_N) == 0); + } - if( have_P ) - TEST_ASSERT( mbedtls_test_read_mpi( &P, input_P ) == 0 ); + if (have_P) { + TEST_ASSERT(mbedtls_test_read_mpi(&P, input_P) == 0); + } - if( have_Q ) - TEST_ASSERT( mbedtls_test_read_mpi( &Q, input_Q ) == 0 ); + if (have_Q) { + TEST_ASSERT(mbedtls_test_read_mpi(&Q, input_Q) == 0); + } - if( have_D ) - TEST_ASSERT( mbedtls_test_read_mpi( &D, input_D ) == 0 ); + if (have_D) { + TEST_ASSERT(mbedtls_test_read_mpi(&D, input_D) == 0); + } - if( have_E ) - TEST_ASSERT( mbedtls_test_read_mpi( &E, input_E ) == 0 ); + if (have_E) { + TEST_ASSERT(mbedtls_test_read_mpi(&E, input_E) == 0); + } /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_rsa_validate_params( have_N ? &N : NULL, - have_P ? &P : NULL, - have_Q ? &Q : NULL, - have_D ? &D : NULL, - have_E ? &E : NULL, - prng ? mbedtls_test_rnd_std_rand : NULL, - prng ? NULL : NULL ) == result ); + TEST_ASSERT(mbedtls_rsa_validate_params(have_N ? &N : NULL, + have_P ? &P : NULL, + have_Q ? &Q : NULL, + have_D ? &D : NULL, + have_E ? &E : NULL, + prng ? mbedtls_test_rnd_std_rand : NULL, + prng ? NULL : NULL) == result); exit: - mbedtls_mpi_free( &N ); - mbedtls_mpi_free( &P ); mbedtls_mpi_free( &Q ); - mbedtls_mpi_free( &D ); mbedtls_mpi_free( &E ); + mbedtls_mpi_free(&N); + mbedtls_mpi_free(&P); mbedtls_mpi_free(&Q); + mbedtls_mpi_free(&D); mbedtls_mpi_free(&E); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_export_raw( data_t *input_N, data_t *input_P, - data_t *input_Q, data_t *input_D, - data_t *input_E, int is_priv, - int successive ) +void mbedtls_rsa_export_raw(data_t *input_N, data_t *input_P, + data_t *input_Q, data_t *input_D, + data_t *input_E, int is_priv, + int successive) { /* Exported buffers */ unsigned char bufNe[256]; @@ -1207,94 +1188,90 @@ void mbedtls_rsa_export_raw( data_t *input_N, data_t *input_P, mbedtls_rsa_context ctx; - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); /* Setup RSA context */ - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - input_N->len ? input_N->x : NULL, input_N->len, - input_P->len ? input_P->x : NULL, input_P->len, - input_Q->len ? input_Q->x : NULL, input_Q->len, - input_D->len ? input_D->x : NULL, input_D->len, - input_E->len ? input_E->x : NULL, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + input_N->len ? input_N->x : NULL, input_N->len, + input_P->len ? input_P->x : NULL, input_P->len, + input_Q->len ? input_Q->x : NULL, input_Q->len, + input_D->len ? input_D->x : NULL, input_D->len, + input_E->len ? input_E->x : NULL, input_E->len) == 0); - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == 0 ); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == 0); /* * Export parameters and compare to original ones. */ /* N and E must always be present. */ - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, bufNe, input_N->len, - NULL, 0, NULL, 0, NULL, 0, - bufEe, input_E->len ) == 0 ); + if (!successive) { + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, bufNe, input_N->len, + NULL, 0, NULL, 0, NULL, 0, + bufEe, input_E->len) == 0); + } else { + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, bufNe, input_N->len, + NULL, 0, NULL, 0, NULL, 0, + NULL, 0) == 0); + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, NULL, 0, + NULL, 0, NULL, 0, NULL, 0, + bufEe, input_E->len) == 0); } - else - { - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, bufNe, input_N->len, - NULL, 0, NULL, 0, NULL, 0, - NULL, 0 ) == 0 ); - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, NULL, 0, - NULL, 0, NULL, 0, NULL, 0, - bufEe, input_E->len ) == 0 ); - } - TEST_ASSERT( memcmp( input_N->x, bufNe, input_N->len ) == 0 ); - TEST_ASSERT( memcmp( input_E->x, bufEe, input_E->len ) == 0 ); + TEST_ASSERT(memcmp(input_N->x, bufNe, input_N->len) == 0); + TEST_ASSERT(memcmp(input_E->x, bufEe, input_E->len) == 0); /* If we were providing enough information to setup a complete private context, * we expect to be able to export all core parameters. */ - if( is_priv ) - { - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, NULL, 0, - bufPe, input_P->len ? input_P->len : sizeof( bufPe ), - bufQe, input_Q->len ? input_Q->len : sizeof( bufQe ), - bufDe, input_D->len ? input_D->len : sizeof( bufDe ), - NULL, 0 ) == 0 ); - } - else - { - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, NULL, 0, - bufPe, input_P->len ? input_P->len : sizeof( bufPe ), - NULL, 0, NULL, 0, - NULL, 0 ) == 0 ); + if (is_priv) { + if (!successive) { + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, NULL, 0, + bufPe, input_P->len ? input_P->len : sizeof(bufPe), + bufQe, input_Q->len ? input_Q->len : sizeof(bufQe), + bufDe, input_D->len ? input_D->len : sizeof(bufDe), + NULL, 0) == 0); + } else { + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, NULL, 0, + bufPe, input_P->len ? input_P->len : sizeof(bufPe), + NULL, 0, NULL, 0, + NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, NULL, 0, NULL, 0, - bufQe, input_Q->len ? input_Q->len : sizeof( bufQe ), - NULL, 0, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, NULL, 0, NULL, 0, + bufQe, input_Q->len ? input_Q->len : sizeof(bufQe), + NULL, 0, NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_export_raw( &ctx, NULL, 0, NULL, 0, NULL, 0, - bufDe, input_D->len ? input_D->len : sizeof( bufDe ), - NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_export_raw(&ctx, NULL, 0, NULL, 0, NULL, 0, + bufDe, input_D->len ? input_D->len : sizeof(bufDe), + NULL, 0) == 0); } - if( input_P->len ) - TEST_ASSERT( memcmp( input_P->x, bufPe, input_P->len ) == 0 ); + if (input_P->len) { + TEST_ASSERT(memcmp(input_P->x, bufPe, input_P->len) == 0); + } - if( input_Q->len ) - TEST_ASSERT( memcmp( input_Q->x, bufQe, input_Q->len ) == 0 ); + if (input_Q->len) { + TEST_ASSERT(memcmp(input_Q->x, bufQe, input_Q->len) == 0); + } - if( input_D->len ) - TEST_ASSERT( memcmp( input_D->x, bufDe, input_D->len ) == 0 ); + if (input_D->len) { + TEST_ASSERT(memcmp(input_D->x, bufDe, input_D->len) == 0); + } } exit: - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE */ -void mbedtls_rsa_import_raw( data_t *input_N, - data_t *input_P, data_t *input_Q, - data_t *input_D, data_t *input_E, - int successive, - int is_priv, - int res_check, - int res_complete ) +void mbedtls_rsa_import_raw(data_t *input_N, + data_t *input_P, data_t *input_Q, + data_t *input_D, data_t *input_E, + int successive, + int is_priv, + int res_check, + int res_complete) { /* Buffers used for encryption-decryption test */ unsigned char *buf_orig = NULL; @@ -1303,102 +1280,102 @@ void mbedtls_rsa_import_raw( data_t *input_N, mbedtls_rsa_context ctx; - mbedtls_rsa_init( &ctx ); + mbedtls_rsa_init(&ctx); - if( !successive ) - { - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - ( input_N->len > 0 ) ? input_N->x : NULL, input_N->len, - ( input_P->len > 0 ) ? input_P->x : NULL, input_P->len, - ( input_Q->len > 0 ) ? input_Q->x : NULL, input_Q->len, - ( input_D->len > 0 ) ? input_D->x : NULL, input_D->len, - ( input_E->len > 0 ) ? input_E->x : NULL, input_E->len ) == 0 ); - } - else - { + if (!successive) { + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + (input_N->len > 0) ? input_N->x : NULL, input_N->len, + (input_P->len > 0) ? input_P->x : NULL, input_P->len, + (input_Q->len > 0) ? input_Q->x : NULL, input_Q->len, + (input_D->len > 0) ? input_D->x : NULL, input_D->len, + (input_E->len > 0) ? input_E->x : NULL, + input_E->len) == 0); + } else { /* Import N, P, Q, D, E separately. * This should make no functional difference. */ - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - ( input_N->len > 0 ) ? input_N->x : NULL, input_N->len, - NULL, 0, NULL, 0, NULL, 0, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + (input_N->len > 0) ? input_N->x : NULL, input_N->len, + NULL, 0, NULL, 0, NULL, 0, NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - NULL, 0, - ( input_P->len > 0 ) ? input_P->x : NULL, input_P->len, - NULL, 0, NULL, 0, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + NULL, 0, + (input_P->len > 0) ? input_P->x : NULL, input_P->len, + NULL, 0, NULL, 0, NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - NULL, 0, NULL, 0, - ( input_Q->len > 0 ) ? input_Q->x : NULL, input_Q->len, - NULL, 0, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + NULL, 0, NULL, 0, + (input_Q->len > 0) ? input_Q->x : NULL, input_Q->len, + NULL, 0, NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - NULL, 0, NULL, 0, NULL, 0, - ( input_D->len > 0 ) ? input_D->x : NULL, input_D->len, - NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + NULL, 0, NULL, 0, NULL, 0, + (input_D->len > 0) ? input_D->x : NULL, input_D->len, + NULL, 0) == 0); - TEST_ASSERT( mbedtls_rsa_import_raw( &ctx, - NULL, 0, NULL, 0, NULL, 0, NULL, 0, - ( input_E->len > 0 ) ? input_E->x : NULL, input_E->len ) == 0 ); + TEST_ASSERT(mbedtls_rsa_import_raw(&ctx, + NULL, 0, NULL, 0, NULL, 0, NULL, 0, + (input_E->len > 0) ? input_E->x : NULL, + input_E->len) == 0); } - TEST_ASSERT( mbedtls_rsa_complete( &ctx ) == res_complete ); + TEST_ASSERT(mbedtls_rsa_complete(&ctx) == res_complete); /* On expected success, perform some public and private * key operations to check if the key is working properly. */ - if( res_complete == 0 ) - { - if( is_priv ) - TEST_ASSERT( mbedtls_rsa_check_privkey( &ctx ) == res_check ); - else - TEST_ASSERT( mbedtls_rsa_check_pubkey( &ctx ) == res_check ); + if (res_complete == 0) { + if (is_priv) { + TEST_ASSERT(mbedtls_rsa_check_privkey(&ctx) == res_check); + } else { + TEST_ASSERT(mbedtls_rsa_check_pubkey(&ctx) == res_check); + } - if( res_check != 0 ) + if (res_check != 0) { goto exit; + } - buf_orig = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - buf_enc = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - buf_dec = mbedtls_calloc( 1, mbedtls_rsa_get_len( &ctx ) ); - if( buf_orig == NULL || buf_enc == NULL || buf_dec == NULL ) + buf_orig = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + buf_enc = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + buf_dec = mbedtls_calloc(1, mbedtls_rsa_get_len(&ctx)); + if (buf_orig == NULL || buf_enc == NULL || buf_dec == NULL) { goto exit; + } /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_test_rnd_std_rand( NULL, - buf_orig, mbedtls_rsa_get_len( &ctx ) ) == 0 ); + TEST_ASSERT(mbedtls_test_rnd_std_rand(NULL, + buf_orig, mbedtls_rsa_get_len(&ctx)) == 0); /* Make sure the number we're generating is smaller than the modulus */ buf_orig[0] = 0x00; - TEST_ASSERT( mbedtls_rsa_public( &ctx, buf_orig, buf_enc ) == 0 ); + TEST_ASSERT(mbedtls_rsa_public(&ctx, buf_orig, buf_enc) == 0); - if( is_priv ) - { + if (is_priv) { /* This test uses an insecure RNG, suitable only for testing. * In production, always use a cryptographically strong RNG! */ - TEST_ASSERT( mbedtls_rsa_private( &ctx, mbedtls_test_rnd_std_rand, - NULL, buf_enc, - buf_dec ) == 0 ); + TEST_ASSERT(mbedtls_rsa_private(&ctx, mbedtls_test_rnd_std_rand, + NULL, buf_enc, + buf_dec) == 0); - TEST_ASSERT( memcmp( buf_orig, buf_dec, - mbedtls_rsa_get_len( &ctx ) ) == 0 ); + TEST_ASSERT(memcmp(buf_orig, buf_dec, + mbedtls_rsa_get_len(&ctx)) == 0); } } exit: - mbedtls_free( buf_orig ); - mbedtls_free( buf_enc ); - mbedtls_free( buf_dec ); + mbedtls_free(buf_orig); + mbedtls_free(buf_enc); + mbedtls_free(buf_dec); - mbedtls_rsa_free( &ctx ); + mbedtls_rsa_free(&ctx); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SELF_TEST */ -void rsa_selftest( ) +void rsa_selftest() { - TEST_ASSERT( mbedtls_rsa_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_rsa_self_test(1) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_shax.function b/tests/suites/test_suite_shax.function index 79afe015d..60dd3c873 100644 --- a/tests/suites/test_suite_shax.function +++ b/tests/suites/test_suite_shax.function @@ -5,33 +5,33 @@ /* END_HEADER */ /* BEGIN_CASE depends_on:MBEDTLS_SHA1_C */ -void mbedtls_sha1( data_t * src_str, data_t * hash ) +void mbedtls_sha1(data_t *src_str, data_t *hash) { unsigned char output[41]; memset(output, 0x00, 41); - TEST_ASSERT( mbedtls_sha1( src_str->x, src_str->len, output ) == 0 ); + TEST_ASSERT(mbedtls_sha1(src_str->x, src_str->len, output) == 0); - TEST_ASSERT( mbedtls_test_hexcmp( output, hash->x, 20, hash->len ) == 0 ); + TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, 20, hash->len) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ -void sha256_invalid_param( ) +void sha256_invalid_param() { mbedtls_sha256_context ctx; unsigned char buf[64] = { 0 }; - size_t const buflen = sizeof( buf ); + size_t const buflen = sizeof(buf); int invalid_type = 42; - TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, - mbedtls_sha256_starts( &ctx, invalid_type ) ); + TEST_EQUAL(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, + mbedtls_sha256_starts(&ctx, invalid_type)); - TEST_EQUAL( MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, - mbedtls_sha256( buf, buflen, - buf, invalid_type ) ); + TEST_EQUAL(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA, + mbedtls_sha256(buf, buflen, + buf, invalid_type)); exit: return; @@ -39,47 +39,47 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA224_C */ -void sha224( data_t * src_str, data_t * hash ) +void sha224(data_t *src_str, data_t *hash) { unsigned char output[57]; memset(output, 0x00, 57); - TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 1 ), 0 ); + TEST_EQUAL(mbedtls_sha256(src_str->x, src_str->len, output, 1), 0); - TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 28, hash->len ), 0 ); + TEST_EQUAL(mbedtls_test_hexcmp(output, hash->x, 28, hash->len), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA256_C */ -void mbedtls_sha256( data_t * src_str, data_t * hash ) +void mbedtls_sha256(data_t *src_str, data_t *hash) { unsigned char output[65]; memset(output, 0x00, 65); - TEST_EQUAL( mbedtls_sha256( src_str->x, src_str->len, output, 0 ), 0 ); + TEST_EQUAL(mbedtls_sha256(src_str->x, src_str->len, output, 0), 0); - TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 32, hash->len ), 0 ); + TEST_EQUAL(mbedtls_test_hexcmp(output, hash->x, 32, hash->len), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ -void sha512_invalid_param( ) +void sha512_invalid_param() { mbedtls_sha512_context ctx; unsigned char buf[64] = { 0 }; - size_t const buflen = sizeof( buf ); + size_t const buflen = sizeof(buf); int invalid_type = 42; - TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, - mbedtls_sha512_starts( &ctx, invalid_type ) ); + TEST_EQUAL(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, + mbedtls_sha512_starts(&ctx, invalid_type)); - TEST_EQUAL( MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, - mbedtls_sha512( buf, buflen, - buf, invalid_type ) ); + TEST_EQUAL(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA, + mbedtls_sha512(buf, buflen, + buf, invalid_type)); exit: return; @@ -87,64 +87,64 @@ exit: /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA384_C */ -void sha384( data_t * src_str, data_t * hash ) +void sha384(data_t *src_str, data_t *hash) { unsigned char output[97]; memset(output, 0x00, 97); - TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 1 ), 0 ); + TEST_EQUAL(mbedtls_sha512(src_str->x, src_str->len, output, 1), 0); - TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 48, hash->len ), 0 ); + TEST_EQUAL(mbedtls_test_hexcmp(output, hash->x, 48, hash->len), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA512_C */ -void mbedtls_sha512( data_t * src_str, data_t * hash ) +void mbedtls_sha512(data_t *src_str, data_t *hash) { unsigned char output[129]; memset(output, 0x00, 129); - TEST_EQUAL( mbedtls_sha512( src_str->x, src_str->len, output, 0 ), 0 ); + TEST_EQUAL(mbedtls_sha512(src_str->x, src_str->len, output, 0), 0); - TEST_EQUAL( mbedtls_test_hexcmp( output, hash->x, 64, hash->len ), 0 ); + TEST_EQUAL(mbedtls_test_hexcmp(output, hash->x, 64, hash->len), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA1_C:MBEDTLS_SELF_TEST */ -void sha1_selftest( ) +void sha1_selftest() { - TEST_ASSERT( mbedtls_sha1_self_test( 1 ) == 0 ); + TEST_ASSERT(mbedtls_sha1_self_test(1) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA224_C:MBEDTLS_SELF_TEST */ -void sha224_selftest( ) +void sha224_selftest() { - TEST_EQUAL( mbedtls_sha224_self_test( 1 ), 0 ); + TEST_EQUAL(mbedtls_sha224_self_test(1), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA256_C:MBEDTLS_SELF_TEST */ -void sha256_selftest( ) +void sha256_selftest() { - TEST_EQUAL( mbedtls_sha256_self_test( 1 ), 0 ); + TEST_EQUAL(mbedtls_sha256_self_test(1), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA384_C:MBEDTLS_SELF_TEST */ -void sha384_selftest( ) +void sha384_selftest() { - TEST_EQUAL( mbedtls_sha384_self_test( 1 ), 0 ); + TEST_EQUAL(mbedtls_sha384_self_test(1), 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SHA512_C:MBEDTLS_SELF_TEST */ -void sha512_selftest( ) +void sha512_selftest() { - TEST_EQUAL( mbedtls_sha512_self_test( 1 ), 0 ); + TEST_EQUAL(mbedtls_sha512_self_test(1), 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index b0b9136cb..15ec5bea1 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -17,27 +17,26 @@ #include #include -enum -{ -#define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ - tls13_label_ ## name, -MBEDTLS_SSL_TLS1_3_LABEL_LIST +enum { +#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ + tls13_label_ ## name, + MBEDTLS_SSL_TLS1_3_LABEL_LIST #undef MBEDTLS_SSL_TLS1_3_LABEL }; -typedef struct log_pattern -{ +typedef struct log_pattern { const char *pattern; size_t counter; } log_pattern; #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) static int rng_seed = 0xBEEF; -static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) +static int rng_get(void *p_rng, unsigned char *output, size_t output_len) { (void) p_rng; - for( size_t i = 0; i < output_len; i++ ) + for (size_t i = 0; i < output_len; i++) { output[i] = rand(); + } return 0; } @@ -48,9 +47,9 @@ static int rng_get( void *p_rng, unsigned char *output, size_t output_len ) * this case, it will count the instances of a log_pattern in the received * logged messages. */ -void log_analyzer( void *ctx, int level, - const char *file, int line, - const char *str ) +void log_analyzer(void *ctx, int level, + const char *file, int line, + const char *str) { log_pattern *p = (log_pattern *) ctx; @@ -58,16 +57,14 @@ void log_analyzer( void *ctx, int level, (void) line; (void) file; - if( NULL != p && + if (NULL != p && NULL != p->pattern && - NULL != strstr( str, p->pattern ) ) - { + NULL != strstr(str, p->pattern)) { p->counter++; } } -typedef struct handshake_test_options -{ +typedef struct handshake_test_options { const char *cipher; mbedtls_ssl_protocol_version client_min_version; mbedtls_ssl_protocol_version client_max_version; @@ -101,10 +98,10 @@ typedef struct handshake_test_options #endif } handshake_test_options; -void init_handshake_options( handshake_test_options *opts ) +void init_handshake_options(handshake_test_options *opts) { #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) - srand( rng_seed ); + srand(rng_seed); rng_seed += 0xD0; #endif opts->cipher = ""; @@ -137,18 +134,18 @@ void init_handshake_options( handshake_test_options *opts ) opts->resize_buffers = 1; #if defined(MBEDTLS_SSL_CACHE_C) opts->cache = NULL; - ASSERT_ALLOC( opts->cache, 1 ); - mbedtls_ssl_cache_init( opts->cache ); + ASSERT_ALLOC(opts->cache, 1); + mbedtls_ssl_cache_init(opts->cache); exit: return; #endif } -void free_handshake_options( handshake_test_options *opts ) +void free_handshake_options(handshake_test_options *opts) { #if defined(MBEDTLS_SSL_CACHE_C) - mbedtls_ssl_cache_free( opts->cache ); - mbedtls_free( opts->cache ); + mbedtls_ssl_cache_free(opts->cache); + mbedtls_free(opts->cache); #else (void) opts; #endif @@ -157,16 +154,16 @@ void free_handshake_options( handshake_test_options *opts ) #if defined(MBEDTLS_TEST_HOOKS) static void set_chk_buf_ptr_args( mbedtls_ssl_chk_buf_ptr_args *args, - unsigned char *cur, unsigned char *end, size_t need ) + unsigned char *cur, unsigned char *end, size_t need) { args->cur = cur; args->end = end; args->need = need; } -static void reset_chk_buf_ptr_args( mbedtls_ssl_chk_buf_ptr_args *args ) +static void reset_chk_buf_ptr_args(mbedtls_ssl_chk_buf_ptr_args *args) { - memset( args, 0, sizeof( *args ) ); + memset(args, 0, sizeof(*args)); } #endif /* MBEDTLS_TEST_HOOKS */ @@ -174,8 +171,7 @@ static void reset_chk_buf_ptr_args( mbedtls_ssl_chk_buf_ptr_args *args ) * Buffer structure for custom I/O callbacks. */ -typedef struct mbedtls_test_buffer -{ +typedef struct mbedtls_test_buffer { size_t start; size_t content_length; size_t capacity; @@ -186,32 +182,34 @@ typedef struct mbedtls_test_buffer * Initialises \p buf. After calling this function it is safe to call * `mbedtls_test_buffer_free()` on \p buf. */ -void mbedtls_test_buffer_init( mbedtls_test_buffer *buf ) +void mbedtls_test_buffer_init(mbedtls_test_buffer *buf) { - memset( buf, 0, sizeof( *buf ) ); + memset(buf, 0, sizeof(*buf)); } /* * Sets up \p buf. After calling this function it is safe to call * `mbedtls_test_buffer_put()` and `mbedtls_test_buffer_get()` on \p buf. */ -int mbedtls_test_buffer_setup( mbedtls_test_buffer *buf, size_t capacity ) +int mbedtls_test_buffer_setup(mbedtls_test_buffer *buf, size_t capacity) { - buf->buffer = (unsigned char*) mbedtls_calloc( capacity, - sizeof(unsigned char) ); - if( NULL == buf->buffer ) + buf->buffer = (unsigned char *) mbedtls_calloc(capacity, + sizeof(unsigned char)); + if (NULL == buf->buffer) { return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } buf->capacity = capacity; return 0; } -void mbedtls_test_buffer_free( mbedtls_test_buffer *buf ) +void mbedtls_test_buffer_free(mbedtls_test_buffer *buf) { - if( buf->buffer != NULL ) - mbedtls_free( buf->buffer ); + if (buf->buffer != NULL) { + mbedtls_free(buf->buffer); + } - memset( buf, 0, sizeof( *buf ) ); + memset(buf, 0, sizeof(*buf)); } /* @@ -225,49 +223,44 @@ void mbedtls_test_buffer_free( mbedtls_test_buffer *buf ) * \retval -1, if \p buf is NULL, it hasn't been set up or \p input_len is not * zero and \p input is NULL. */ -int mbedtls_test_buffer_put( mbedtls_test_buffer *buf, - const unsigned char *input, size_t input_len ) +int mbedtls_test_buffer_put(mbedtls_test_buffer *buf, + const unsigned char *input, size_t input_len) { size_t overflow = 0; - if( ( buf == NULL ) || ( buf->buffer == NULL ) ) + if ((buf == NULL) || (buf->buffer == NULL)) { return -1; + } /* Reduce input_len to a number that fits in the buffer. */ - if ( ( buf->content_length + input_len ) > buf->capacity ) - { + if ((buf->content_length + input_len) > buf->capacity) { input_len = buf->capacity - buf->content_length; } - if( input == NULL ) - { - return ( input_len == 0 ) ? 0 : -1; + if (input == NULL) { + return (input_len == 0) ? 0 : -1; } - /* Check if the buffer has not come full circle and free space is not in - * the middle */ - if( buf->start + buf->content_length < buf->capacity ) - { + /* Check if the buffer has not come full circle and free space is not in + * the middle */ + if (buf->start + buf->content_length < buf->capacity) { /* Calculate the number of bytes that need to be placed at lower memory - * address */ - if( buf->start + buf->content_length + input_len - > buf->capacity ) - { - overflow = ( buf->start + buf->content_length + input_len ) - % buf->capacity; + * address */ + if (buf->start + buf->content_length + input_len + > buf->capacity) { + overflow = (buf->start + buf->content_length + input_len) + % buf->capacity; } - memcpy( buf->buffer + buf->start + buf->content_length, input, - input_len - overflow ); - memcpy( buf->buffer, input + input_len - overflow, overflow ); + memcpy(buf->buffer + buf->start + buf->content_length, input, + input_len - overflow); + memcpy(buf->buffer, input + input_len - overflow, overflow); - } - else - { + } else { /* The buffer has come full circle and free space is in the middle */ - memcpy( buf->buffer + buf->start + buf->content_length - buf->capacity, - input, input_len ); + memcpy(buf->buffer + buf->start + buf->content_length - buf->capacity, + input, input_len); } buf->content_length += input_len; @@ -286,35 +279,36 @@ int mbedtls_test_buffer_put( mbedtls_test_buffer *buf, * \retval 0 <= value < \p output_len, if the data is not available. * \retval -1, if \buf is NULL or it hasn't been set up. */ -int mbedtls_test_buffer_get( mbedtls_test_buffer *buf, - unsigned char* output, size_t output_len ) +int mbedtls_test_buffer_get(mbedtls_test_buffer *buf, + unsigned char *output, size_t output_len) { size_t overflow = 0; - if( ( buf == NULL ) || ( buf->buffer == NULL ) ) + if ((buf == NULL) || (buf->buffer == NULL)) { return -1; + } - if( output == NULL && output_len == 0 ) + if (output == NULL && output_len == 0) { return 0; + } - if( buf->content_length < output_len ) + if (buf->content_length < output_len) { output_len = buf->content_length; + } /* Calculate the number of bytes that need to be drawn from lower memory * address */ - if( buf->start + output_len > buf->capacity ) - { - overflow = ( buf->start + output_len ) % buf->capacity; + if (buf->start + output_len > buf->capacity) { + overflow = (buf->start + output_len) % buf->capacity; } - if( output != NULL ) - { - memcpy( output, buf->buffer + buf->start, output_len - overflow ); - memcpy( output + output_len - overflow, buf->buffer, overflow ); + if (output != NULL) { + memcpy(output, buf->buffer + buf->start, output_len - overflow); + memcpy(output + output_len - overflow, buf->buffer, overflow); } buf->content_length -= output_len; - buf->start = ( buf->start + output_len ) % buf->capacity; + buf->start = (buf->start + output_len) % buf->capacity; return output_len; } @@ -328,8 +322,7 @@ int mbedtls_test_buffer_get( mbedtls_test_buffer *buf, /* * Context for a message metadata queue (fifo) that is on top of the ring buffer. */ -typedef struct mbedtls_test_message_queue -{ +typedef struct mbedtls_test_message_queue { size_t *messages; int pos; int num; @@ -345,12 +338,13 @@ typedef struct mbedtls_test_message_queue * \retval 0, if a metadata queue of a given length can be allocated. * \retval MBEDTLS_ERR_SSL_ALLOC_FAILED, if allocation failed. */ -int mbedtls_test_message_queue_setup( mbedtls_test_message_queue *queue, - size_t capacity ) +int mbedtls_test_message_queue_setup(mbedtls_test_message_queue *queue, + size_t capacity) { - queue->messages = (size_t*) mbedtls_calloc( capacity, sizeof(size_t) ); - if( NULL == queue->messages ) + queue->messages = (size_t *) mbedtls_calloc(capacity, sizeof(size_t)); + if (NULL == queue->messages) { return MBEDTLS_ERR_SSL_ALLOC_FAILED; + } queue->capacity = capacity; queue->pos = 0; @@ -359,15 +353,17 @@ int mbedtls_test_message_queue_setup( mbedtls_test_message_queue *queue, return 0; } -void mbedtls_test_message_queue_free( mbedtls_test_message_queue *queue ) +void mbedtls_test_message_queue_free(mbedtls_test_message_queue *queue) { - if( queue == NULL ) + if (queue == NULL) { return; + } - if( queue->messages != NULL ) - mbedtls_free( queue->messages ); + if (queue->messages != NULL) { + mbedtls_free(queue->messages); + } - memset( queue, 0, sizeof( *queue ) ); + memset(queue, 0, sizeof(*queue)); } /* @@ -378,17 +374,19 @@ void mbedtls_test_message_queue_free( mbedtls_test_message_queue *queue ) * \retval MBEDTLS_ERR_SSL_WANT_WRITE, if the queue is full. * \retval \p len, if the push was successful. */ -int mbedtls_test_message_queue_push_info( mbedtls_test_message_queue *queue, - size_t len ) +int mbedtls_test_message_queue_push_info(mbedtls_test_message_queue *queue, + size_t len) { int place; - if( queue == NULL ) + if (queue == NULL) { return MBEDTLS_TEST_ERROR_ARG_NULL; + } - if( queue->num >= queue->capacity ) + if (queue->num >= queue->capacity) { return MBEDTLS_ERR_SSL_WANT_WRITE; + } - place = ( queue->pos + queue->num ) % queue->capacity; + place = (queue->pos + queue->num) % queue->capacity; queue->messages[place] = len; queue->num++; return len; @@ -404,24 +402,27 @@ int mbedtls_test_message_queue_push_info( mbedtls_test_message_queue *queue, * \retval message length, if the pop was successful, up to the given \p buf_len. */ -int mbedtls_test_message_queue_pop_info( mbedtls_test_message_queue *queue, - size_t buf_len ) +int mbedtls_test_message_queue_pop_info(mbedtls_test_message_queue *queue, + size_t buf_len) { size_t message_length; - if( queue == NULL ) + if (queue == NULL) { return MBEDTLS_TEST_ERROR_ARG_NULL; - if( queue->num == 0 ) + } + if (queue->num == 0) { return MBEDTLS_ERR_SSL_WANT_READ; + } message_length = queue->messages[queue->pos]; queue->messages[queue->pos] = 0; queue->num--; queue->pos++; queue->pos %= queue->capacity; - if( queue->pos < 0 ) + if (queue->pos < 0) { queue->pos += queue->capacity; + } - return ( message_length > buf_len ) ? buf_len : message_length; + return (message_length > buf_len) ? buf_len : message_length; } /* @@ -436,16 +437,18 @@ int mbedtls_test_message_queue_pop_info( mbedtls_test_message_queue *queue, * set to the full message length so that the * caller knows what portion of the message can be dropped. */ -int mbedtls_test_message_queue_peek_info( mbedtls_test_message_queue *queue, - size_t buf_len, size_t* msg_len ) +int mbedtls_test_message_queue_peek_info(mbedtls_test_message_queue *queue, + size_t buf_len, size_t *msg_len) { - if( queue == NULL || msg_len == NULL ) + if (queue == NULL || msg_len == NULL) { return MBEDTLS_TEST_ERROR_ARG_NULL; - if( queue->num == 0 ) + } + if (queue->num == 0) { return MBEDTLS_ERR_SSL_WANT_READ; + } *msg_len = queue->messages[queue->pos]; - return ( *msg_len > buf_len ) ? MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED : 0; + return (*msg_len > buf_len) ? MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED : 0; } /* * Context for the I/O callbacks simulating network connection. @@ -453,8 +456,7 @@ int mbedtls_test_message_queue_peek_info( mbedtls_test_message_queue *queue, #define MBEDTLS_MOCK_SOCKET_CONNECTED 1 -typedef struct mbedtls_mock_socket -{ +typedef struct mbedtls_mock_socket { int status; mbedtls_test_buffer *input; mbedtls_test_buffer *output; @@ -464,9 +466,9 @@ typedef struct mbedtls_mock_socket /* * Setup and teardown functions for mock sockets. */ -void mbedtls_mock_socket_init( mbedtls_mock_socket *socket ) +void mbedtls_mock_socket_init(mbedtls_mock_socket *socket) { - memset( socket, 0, sizeof( *socket ) ); + memset(socket, 0, sizeof(*socket)); } /* @@ -482,27 +484,27 @@ void mbedtls_mock_socket_init( mbedtls_mock_socket *socket ) * phenomenon that when closing a UDP connection the peer is not aware of the * connection having been closed. */ -void mbedtls_mock_socket_close( mbedtls_mock_socket* socket ) +void mbedtls_mock_socket_close(mbedtls_mock_socket *socket) { - if( socket == NULL ) + if (socket == NULL) { return; - - if( socket->input != NULL ) - { - mbedtls_test_buffer_free( socket->input ); - mbedtls_free( socket->input ); } - if( socket->output != NULL ) - { - mbedtls_test_buffer_free( socket->output ); - mbedtls_free( socket->output ); + if (socket->input != NULL) { + mbedtls_test_buffer_free(socket->input); + mbedtls_free(socket->input); } - if( socket->peer != NULL ) - memset( socket->peer, 0, sizeof( *socket->peer ) ); + if (socket->output != NULL) { + mbedtls_test_buffer_free(socket->output); + mbedtls_free(socket->output); + } - memset( socket, 0, sizeof( *socket ) ); + if (socket->peer != NULL) { + memset(socket->peer, 0, sizeof(*socket->peer)); + } + + memset(socket, 0, sizeof(*socket)); } /* @@ -515,35 +517,31 @@ void mbedtls_mock_socket_close( mbedtls_mock_socket* socket ) * the correct value allows for simulation of MTU, sanity testing the mock * implementation and mocking TCP connections with lower memory cost. */ -int mbedtls_mock_socket_connect( mbedtls_mock_socket* peer1, - mbedtls_mock_socket* peer2, - size_t bufsize ) +int mbedtls_mock_socket_connect(mbedtls_mock_socket *peer1, + mbedtls_mock_socket *peer2, + size_t bufsize) { int ret = -1; peer1->output = - (mbedtls_test_buffer*) mbedtls_calloc( 1, sizeof(mbedtls_test_buffer) ); - if( peer1->output == NULL ) - { + (mbedtls_test_buffer *) mbedtls_calloc(1, sizeof(mbedtls_test_buffer)); + if (peer1->output == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } - mbedtls_test_buffer_init( peer1->output ); - if( 0 != ( ret = mbedtls_test_buffer_setup( peer1->output, bufsize ) ) ) - { + mbedtls_test_buffer_init(peer1->output); + if (0 != (ret = mbedtls_test_buffer_setup(peer1->output, bufsize))) { goto exit; } peer2->output = - (mbedtls_test_buffer*) mbedtls_calloc( 1, sizeof(mbedtls_test_buffer) ); - if( peer2->output == NULL ) - { + (mbedtls_test_buffer *) mbedtls_calloc(1, sizeof(mbedtls_test_buffer)); + if (peer2->output == NULL) { ret = MBEDTLS_ERR_SSL_ALLOC_FAILED; goto exit; } - mbedtls_test_buffer_init( peer2->output ); - if( 0 != ( ret = mbedtls_test_buffer_setup( peer2->output, bufsize ) ) ) - { + mbedtls_test_buffer_init(peer2->output); + if (0 != (ret = mbedtls_test_buffer_setup(peer2->output, bufsize))) { goto exit; } @@ -557,10 +555,9 @@ int mbedtls_mock_socket_connect( mbedtls_mock_socket* peer1, exit: - if( ret != 0 ) - { - mbedtls_mock_socket_close( peer1 ); - mbedtls_mock_socket_close( peer2 ); + if (ret != 0) { + mbedtls_mock_socket_close(peer1); + mbedtls_mock_socket_close(peer2); } return ret; @@ -570,58 +567,60 @@ exit: * Callbacks for simulating blocking I/O over connection-oriented transport. */ -int mbedtls_mock_tcp_send_b( void *ctx, const unsigned char *buf, size_t len ) +int mbedtls_mock_tcp_send_b(void *ctx, const unsigned char *buf, size_t len) { - mbedtls_mock_socket *socket = (mbedtls_mock_socket*) ctx; + mbedtls_mock_socket *socket = (mbedtls_mock_socket *) ctx; - if( socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED ) + if (socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED) { return -1; + } - return mbedtls_test_buffer_put( socket->output, buf, len ); + return mbedtls_test_buffer_put(socket->output, buf, len); } -int mbedtls_mock_tcp_recv_b( void *ctx, unsigned char *buf, size_t len ) +int mbedtls_mock_tcp_recv_b(void *ctx, unsigned char *buf, size_t len) { - mbedtls_mock_socket *socket = (mbedtls_mock_socket*) ctx; + mbedtls_mock_socket *socket = (mbedtls_mock_socket *) ctx; - if( socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED ) + if (socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED) { return -1; + } - return mbedtls_test_buffer_get( socket->input, buf, len ); + return mbedtls_test_buffer_get(socket->input, buf, len); } /* * Callbacks for simulating non-blocking I/O over connection-oriented transport. */ -int mbedtls_mock_tcp_send_nb( void *ctx, const unsigned char *buf, size_t len ) +int mbedtls_mock_tcp_send_nb(void *ctx, const unsigned char *buf, size_t len) { - mbedtls_mock_socket *socket = (mbedtls_mock_socket*) ctx; + mbedtls_mock_socket *socket = (mbedtls_mock_socket *) ctx; - if( socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED ) + if (socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED) { return -1; + } - if( socket->output->capacity == socket->output->content_length ) - { + if (socket->output->capacity == socket->output->content_length) { return MBEDTLS_ERR_SSL_WANT_WRITE; } - return mbedtls_test_buffer_put( socket->output, buf, len ); + return mbedtls_test_buffer_put(socket->output, buf, len); } -int mbedtls_mock_tcp_recv_nb( void *ctx, unsigned char *buf, size_t len ) +int mbedtls_mock_tcp_recv_nb(void *ctx, unsigned char *buf, size_t len) { - mbedtls_mock_socket *socket = (mbedtls_mock_socket*) ctx; + mbedtls_mock_socket *socket = (mbedtls_mock_socket *) ctx; - if( socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED ) + if (socket == NULL || socket->status != MBEDTLS_MOCK_SOCKET_CONNECTED) { return -1; + } - if( socket->input->content_length == 0 ) - { + if (socket->input->content_length == 0) { return MBEDTLS_ERR_SSL_WANT_READ; } - return mbedtls_test_buffer_get( socket->input, buf, len ); + return mbedtls_test_buffer_get(socket->input, buf, len); } /* Errors used in the message socket mocks */ @@ -637,14 +636,13 @@ int mbedtls_mock_tcp_recv_nb( void *ctx, unsigned char *buf, size_t len ) * considered as an owner of the input queue only, which is initialized and * freed in the respective setup and free calls. */ -typedef struct mbedtls_test_message_socket_context -{ - mbedtls_test_message_queue* queue_input; - mbedtls_test_message_queue* queue_output; - mbedtls_mock_socket* socket; +typedef struct mbedtls_test_message_socket_context { + mbedtls_test_message_queue *queue_input; + mbedtls_test_message_queue *queue_output; + mbedtls_mock_socket *socket; } mbedtls_test_message_socket_context; -void mbedtls_message_socket_init( mbedtls_test_message_socket_context *ctx ) +void mbedtls_message_socket_init(mbedtls_test_message_socket_context *ctx) { ctx->queue_input = NULL; ctx->queue_output = NULL; @@ -660,19 +658,20 @@ void mbedtls_message_socket_init( mbedtls_test_message_socket_context *ctx ) * \retval MBEDTLS_ERR_SSL_ALLOC_FAILED, if allocation of a message * queue failed. */ -int mbedtls_message_socket_setup( mbedtls_test_message_queue* queue_input, - mbedtls_test_message_queue* queue_output, - size_t queue_capacity, - mbedtls_mock_socket* socket, - mbedtls_test_message_socket_context* ctx ) +int mbedtls_message_socket_setup(mbedtls_test_message_queue *queue_input, + mbedtls_test_message_queue *queue_output, + size_t queue_capacity, + mbedtls_mock_socket *socket, + mbedtls_test_message_socket_context *ctx) { - int ret = mbedtls_test_message_queue_setup( queue_input, queue_capacity ); - if( ret != 0 ) + int ret = mbedtls_test_message_queue_setup(queue_input, queue_capacity); + if (ret != 0) { return ret; + } ctx->queue_input = queue_input; ctx->queue_output = queue_output; ctx->socket = socket; - mbedtls_mock_socket_init( socket ); + mbedtls_mock_socket_init(socket); return 0; } @@ -681,14 +680,15 @@ int mbedtls_message_socket_setup( mbedtls_test_message_queue* queue_input, * Close a given message socket context, along with the socket itself. Free the * memory allocated by the input queue. */ -void mbedtls_message_socket_close( mbedtls_test_message_socket_context* ctx ) +void mbedtls_message_socket_close(mbedtls_test_message_socket_context *ctx) { - if( ctx == NULL ) + if (ctx == NULL) { return; + } - mbedtls_test_message_queue_free( ctx->queue_input ); - mbedtls_mock_socket_close( ctx->socket ); - memset( ctx, 0, sizeof( *ctx ) ); + mbedtls_test_message_queue_free(ctx->queue_input); + mbedtls_mock_socket_close(ctx->socket); + memset(ctx, 0, sizeof(*ctx)); } /* @@ -703,28 +703,29 @@ void mbedtls_message_socket_close( mbedtls_test_message_socket_context* ctx ) * This function will also return any error from * mbedtls_test_message_queue_push_info. */ -int mbedtls_mock_tcp_send_msg( void *ctx, const unsigned char *buf, size_t len ) +int mbedtls_mock_tcp_send_msg(void *ctx, const unsigned char *buf, size_t len) { - mbedtls_test_message_queue* queue; - mbedtls_mock_socket* socket; - mbedtls_test_message_socket_context *context = (mbedtls_test_message_socket_context*) ctx; + mbedtls_test_message_queue *queue; + mbedtls_mock_socket *socket; + mbedtls_test_message_socket_context *context = (mbedtls_test_message_socket_context *) ctx; - if( context == NULL || context->socket == NULL - || context->queue_output == NULL ) - { + if (context == NULL || context->socket == NULL + || context->queue_output == NULL) { return MBEDTLS_TEST_ERROR_CONTEXT_ERROR; } queue = context->queue_output; socket = context->socket; - if( queue->num >= queue->capacity ) + if (queue->num >= queue->capacity) { return MBEDTLS_ERR_SSL_WANT_WRITE; + } - if( mbedtls_mock_tcp_send_b( socket, buf, len ) != (int) len ) + if (mbedtls_mock_tcp_send_b(socket, buf, len) != (int) len) { return MBEDTLS_TEST_ERROR_SEND_FAILED; + } - return mbedtls_test_message_queue_push_info( queue, len ); + return mbedtls_test_message_queue_push_info(queue, len); } /* @@ -739,18 +740,17 @@ int mbedtls_mock_tcp_send_msg( void *ctx, const unsigned char *buf, size_t len ) * This function will also return any error other than * MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED from mbedtls_test_message_queue_peek_info. */ -int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) +int mbedtls_mock_tcp_recv_msg(void *ctx, unsigned char *buf, size_t buf_len) { - mbedtls_test_message_queue* queue; - mbedtls_mock_socket* socket; - mbedtls_test_message_socket_context *context = (mbedtls_test_message_socket_context*) ctx; + mbedtls_test_message_queue *queue; + mbedtls_mock_socket *socket; + mbedtls_test_message_socket_context *context = (mbedtls_test_message_socket_context *) ctx; size_t drop_len = 0; size_t msg_len; int ret; - if( context == NULL || context->socket == NULL - || context->queue_input == NULL ) - { + if (context == NULL || context->socket == NULL + || context->queue_input == NULL) { return MBEDTLS_TEST_ERROR_CONTEXT_ERROR; } @@ -759,33 +759,30 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) /* Peek first, so that in case of a socket error the data remains in * the queue. */ - ret = mbedtls_test_message_queue_peek_info( queue, buf_len, &msg_len ); - if( ret == MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED ) - { + ret = mbedtls_test_message_queue_peek_info(queue, buf_len, &msg_len); + if (ret == MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED) { /* Calculate how much to drop */ drop_len = msg_len - buf_len; /* Set the requested message len to be buffer length */ msg_len = buf_len; - } else if( ret != 0 ) - { + } else if (ret != 0) { return ret; } - if( mbedtls_mock_tcp_recv_b( socket, buf, msg_len ) != (int) msg_len ) + if (mbedtls_mock_tcp_recv_b(socket, buf, msg_len) != (int) msg_len) { return MBEDTLS_TEST_ERROR_RECV_FAILED; + } - if( ret == MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED ) - { + if (ret == MBEDTLS_TEST_ERROR_MESSAGE_TRUNCATED) { /* Drop the remaining part of the message */ - if( mbedtls_mock_tcp_recv_b( socket, NULL, drop_len ) != (int) drop_len ) - { - /* Inconsistent state - part of the message was read, - * and a part couldn't. Not much we can do here, but it should not - * happen in test environment, unless forced manually. */ + if (mbedtls_mock_tcp_recv_b(socket, NULL, drop_len) != (int) drop_len) { + /* Inconsistent state - part of the message was read, + * and a part couldn't. Not much we can do here, but it should not + * happen in test environment, unless forced manually. */ } } - mbedtls_test_message_queue_pop_info( queue, buf_len ); + mbedtls_test_message_queue_pop_info(queue, buf_len); return msg_len; } @@ -795,18 +792,16 @@ int mbedtls_mock_tcp_recv_msg( void *ctx, unsigned char *buf, size_t buf_len ) /* * Structure with endpoint's certificates for SSL communication tests. */ -typedef struct mbedtls_endpoint_certificate -{ - mbedtls_x509_crt* ca_cert; - mbedtls_x509_crt* cert; - mbedtls_pk_context* pkey; +typedef struct mbedtls_endpoint_certificate { + mbedtls_x509_crt *ca_cert; + mbedtls_x509_crt *cert; + mbedtls_pk_context *pkey; } mbedtls_endpoint_certificate; /* * Endpoint structure for SSL communication tests. */ -typedef struct mbedtls_endpoint -{ +typedef struct mbedtls_endpoint { const char *name; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; @@ -817,34 +812,29 @@ typedef struct mbedtls_endpoint /* * Deinitializes certificates from endpoint represented by \p ep. */ -void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) +void mbedtls_endpoint_certificate_free(mbedtls_endpoint *ep) { - mbedtls_endpoint_certificate *cert = &( ep->cert ); - if( cert != NULL ) - { - if( cert->ca_cert != NULL ) - { - mbedtls_x509_crt_free( cert->ca_cert ); - mbedtls_free( cert->ca_cert ); + mbedtls_endpoint_certificate *cert = &(ep->cert); + if (cert != NULL) { + if (cert->ca_cert != NULL) { + mbedtls_x509_crt_free(cert->ca_cert); + mbedtls_free(cert->ca_cert); cert->ca_cert = NULL; } - if( cert->cert != NULL ) - { - mbedtls_x509_crt_free( cert->cert ); - mbedtls_free( cert->cert ); + if (cert->cert != NULL) { + mbedtls_x509_crt_free(cert->cert); + mbedtls_free(cert->cert); cert->cert = NULL; } - if( cert->pkey != NULL ) - { + if (cert->pkey != NULL) { #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( mbedtls_pk_get_type( cert->pkey ) == MBEDTLS_PK_OPAQUE ) - { + if (mbedtls_pk_get_type(cert->pkey) == MBEDTLS_PK_OPAQUE) { mbedtls_svc_key_id_t *key_slot = cert->pkey->pk_ctx; - psa_destroy_key( *key_slot ); + psa_destroy_key(*key_slot); } #endif - mbedtls_pk_free( cert->pkey ); - mbedtls_free( cert->pkey ); + mbedtls_pk_free(cert->pkey); + mbedtls_free(cert->pkey); cert->pkey = NULL; } } @@ -856,9 +846,9 @@ void mbedtls_endpoint_certificate_free( mbedtls_endpoint *ep ) * * \retval 0 on success, otherwise error code. */ -int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, - int opaque_alg, int opaque_alg2, - int opaque_usage ) +int mbedtls_endpoint_certificate_init(mbedtls_endpoint *ep, int pk_alg, + int opaque_alg, int opaque_alg2, + int opaque_usage) { int i = 0; int ret = -1; @@ -867,97 +857,85 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, mbedtls_svc_key_id_t key_slot = MBEDTLS_SVC_KEY_ID_INIT; #endif - if( ep == NULL ) - { + if (ep == NULL) { return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } - cert = &( ep->cert ); - ASSERT_ALLOC( cert->ca_cert, 1 ); - ASSERT_ALLOC( cert->cert, 1 ); - ASSERT_ALLOC( cert->pkey, 1 ); + cert = &(ep->cert); + ASSERT_ALLOC(cert->ca_cert, 1); + ASSERT_ALLOC(cert->cert, 1); + ASSERT_ALLOC(cert->pkey, 1); - mbedtls_x509_crt_init( cert->ca_cert ); - mbedtls_x509_crt_init( cert->cert ); - mbedtls_pk_init( cert->pkey ); + mbedtls_x509_crt_init(cert->ca_cert); + mbedtls_x509_crt_init(cert->cert); + mbedtls_pk_init(cert->pkey); /* Load the trusted CA */ - for( i = 0; mbedtls_test_cas_der[i] != NULL; i++ ) - { - ret = mbedtls_x509_crt_parse_der( cert->ca_cert, - (const unsigned char *) mbedtls_test_cas_der[i], - mbedtls_test_cas_der_len[i] ); - TEST_ASSERT( ret == 0 ); + for (i = 0; mbedtls_test_cas_der[i] != NULL; i++) { + ret = mbedtls_x509_crt_parse_der(cert->ca_cert, + (const unsigned char *) mbedtls_test_cas_der[i], + mbedtls_test_cas_der_len[i]); + TEST_ASSERT(ret == 0); } /* Load own certificate and private key */ - if( ep->conf.endpoint == MBEDTLS_SSL_IS_SERVER ) - { - if( pk_alg == MBEDTLS_PK_RSA ) - { - ret = mbedtls_x509_crt_parse( cert->cert, - (const unsigned char*) mbedtls_test_srv_crt_rsa_sha256_der, - mbedtls_test_srv_crt_rsa_sha256_der_len ); - TEST_ASSERT( ret == 0 ); + if (ep->conf.endpoint == MBEDTLS_SSL_IS_SERVER) { + if (pk_alg == MBEDTLS_PK_RSA) { + ret = mbedtls_x509_crt_parse(cert->cert, + (const unsigned char *) mbedtls_test_srv_crt_rsa_sha256_der, + mbedtls_test_srv_crt_rsa_sha256_der_len); + TEST_ASSERT(ret == 0); - ret = mbedtls_pk_parse_key( cert->pkey, - (const unsigned char*) mbedtls_test_srv_key_rsa_der, - mbedtls_test_srv_key_rsa_der_len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_pk_parse_key(cert->pkey, + (const unsigned char *) mbedtls_test_srv_key_rsa_der, + mbedtls_test_srv_key_rsa_der_len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(ret == 0); + } else { + ret = mbedtls_x509_crt_parse(cert->cert, + (const unsigned char *) mbedtls_test_srv_crt_ec_der, + mbedtls_test_srv_crt_ec_der_len); + TEST_ASSERT(ret == 0); + + ret = mbedtls_pk_parse_key(cert->pkey, + (const unsigned char *) mbedtls_test_srv_key_ec_der, + mbedtls_test_srv_key_ec_der_len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(ret == 0); } - else - { - ret = mbedtls_x509_crt_parse( cert->cert, - (const unsigned char*) mbedtls_test_srv_crt_ec_der, - mbedtls_test_srv_crt_ec_der_len ); - TEST_ASSERT( ret == 0 ); + } else { + if (pk_alg == MBEDTLS_PK_RSA) { + ret = mbedtls_x509_crt_parse(cert->cert, + (const unsigned char *) mbedtls_test_cli_crt_rsa_der, + mbedtls_test_cli_crt_rsa_der_len); + TEST_ASSERT(ret == 0); - ret = mbedtls_pk_parse_key( cert->pkey, - (const unsigned char*) mbedtls_test_srv_key_ec_der, - mbedtls_test_srv_key_ec_der_len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( ret == 0 ); - } - } - else - { - if( pk_alg == MBEDTLS_PK_RSA ) - { - ret = mbedtls_x509_crt_parse( cert->cert, - (const unsigned char *) mbedtls_test_cli_crt_rsa_der, - mbedtls_test_cli_crt_rsa_der_len ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_pk_parse_key(cert->pkey, + (const unsigned char *) mbedtls_test_cli_key_rsa_der, + mbedtls_test_cli_key_rsa_der_len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(ret == 0); + } else { + ret = mbedtls_x509_crt_parse(cert->cert, + (const unsigned char *) mbedtls_test_cli_crt_ec_der, + mbedtls_test_cli_crt_ec_len); + TEST_ASSERT(ret == 0); - ret = mbedtls_pk_parse_key( cert->pkey, - (const unsigned char *) mbedtls_test_cli_key_rsa_der, - mbedtls_test_cli_key_rsa_der_len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( ret == 0 ); - } - else - { - ret = mbedtls_x509_crt_parse( cert->cert, - (const unsigned char *) mbedtls_test_cli_crt_ec_der, - mbedtls_test_cli_crt_ec_len ); - TEST_ASSERT( ret == 0 ); - - ret = mbedtls_pk_parse_key( cert->pkey, - (const unsigned char *) mbedtls_test_cli_key_ec_der, - mbedtls_test_cli_key_ec_der_len, NULL, 0, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_pk_parse_key(cert->pkey, + (const unsigned char *) mbedtls_test_cli_key_ec_der, + mbedtls_test_cli_key_ec_der_len, NULL, 0, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(ret == 0); } } #if defined(MBEDTLS_USE_PSA_CRYPTO) - if( opaque_alg != 0 ) - { - TEST_EQUAL( mbedtls_pk_wrap_as_opaque( cert->pkey, &key_slot, - opaque_alg, opaque_usage, - opaque_alg2 ), 0 ); + if (opaque_alg != 0) { + TEST_EQUAL(mbedtls_pk_wrap_as_opaque(cert->pkey, &key_slot, + opaque_alg, opaque_usage, + opaque_alg2), 0); } #else (void) opaque_alg; @@ -965,25 +943,24 @@ int mbedtls_endpoint_certificate_init( mbedtls_endpoint *ep, int pk_alg, (void) opaque_usage; #endif - mbedtls_ssl_conf_ca_chain( &( ep->conf ), cert->ca_cert, NULL ); + mbedtls_ssl_conf_ca_chain(&(ep->conf), cert->ca_cert, NULL); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, - cert->pkey ); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( ep->conf.key_cert != NULL ); + ret = mbedtls_ssl_conf_own_cert(&(ep->conf), cert->cert, + cert->pkey); + TEST_ASSERT(ret == 0); + TEST_ASSERT(ep->conf.key_cert != NULL); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), NULL, NULL ); - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( ep->conf.key_cert == NULL ); + ret = mbedtls_ssl_conf_own_cert(&(ep->conf), NULL, NULL); + TEST_ASSERT(ret == 0); + TEST_ASSERT(ep->conf.key_cert == NULL); - ret = mbedtls_ssl_conf_own_cert( &( ep->conf ), cert->cert, - cert->pkey ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ssl_conf_own_cert(&(ep->conf), cert->cert, + cert->pkey); + TEST_ASSERT(ret == 0); exit: - if( ret != 0 ) - { - mbedtls_endpoint_certificate_free( ep ); + if (ret != 0) { + mbedtls_endpoint_certificate_free(ep); } return ret; @@ -1003,107 +980,104 @@ exit: * * \retval 0 on success, otherwise error code. */ -int mbedtls_endpoint_init( mbedtls_endpoint *ep, int endpoint_type, - handshake_test_options *options, - mbedtls_test_message_socket_context *dtls_context, - mbedtls_test_message_queue *input_queue, - mbedtls_test_message_queue *output_queue, - uint16_t* group_list ) +int mbedtls_endpoint_init(mbedtls_endpoint *ep, int endpoint_type, + handshake_test_options *options, + mbedtls_test_message_socket_context *dtls_context, + mbedtls_test_message_queue *input_queue, + mbedtls_test_message_queue *output_queue, + uint16_t *group_list) { int ret = -1; uintptr_t user_data_n; - if( dtls_context != NULL && ( input_queue == NULL || output_queue == NULL ) ) + if (dtls_context != NULL && (input_queue == NULL || output_queue == NULL)) { return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; - - if( ep == NULL ) - return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; - - memset( ep, 0, sizeof( *ep ) ); - - ep->name = ( endpoint_type == MBEDTLS_SSL_IS_SERVER ) ? "Server" : "Client"; - - mbedtls_ssl_init( &( ep->ssl ) ); - mbedtls_ssl_config_init( &( ep->conf ) ); - mbedtls_ssl_conf_rng( &( ep->conf ), rng_get, NULL ); - - TEST_ASSERT( mbedtls_ssl_conf_get_user_data_p( &ep->conf ) == NULL ); - TEST_EQUAL( mbedtls_ssl_conf_get_user_data_n( &ep->conf ), 0 ); - TEST_ASSERT( mbedtls_ssl_get_user_data_p( &ep->ssl ) == NULL ); - TEST_EQUAL( mbedtls_ssl_get_user_data_n( &ep->ssl ), 0 ); - - (void) mbedtls_test_rnd_std_rand( NULL, - (void*) &user_data_n, - sizeof( user_data_n ) ); - mbedtls_ssl_conf_set_user_data_n( &ep->conf, user_data_n ); - mbedtls_ssl_set_user_data_n( &ep->ssl, user_data_n ); - - if( dtls_context != NULL ) - { - TEST_ASSERT( mbedtls_message_socket_setup( input_queue, output_queue, - 100, &( ep->socket ), - dtls_context ) == 0 ); } - else - { - mbedtls_mock_socket_init( &( ep->socket ) ); + + if (ep == NULL) { + return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; + } + + memset(ep, 0, sizeof(*ep)); + + ep->name = (endpoint_type == MBEDTLS_SSL_IS_SERVER) ? "Server" : "Client"; + + mbedtls_ssl_init(&(ep->ssl)); + mbedtls_ssl_config_init(&(ep->conf)); + mbedtls_ssl_conf_rng(&(ep->conf), rng_get, NULL); + + TEST_ASSERT(mbedtls_ssl_conf_get_user_data_p(&ep->conf) == NULL); + TEST_EQUAL(mbedtls_ssl_conf_get_user_data_n(&ep->conf), 0); + TEST_ASSERT(mbedtls_ssl_get_user_data_p(&ep->ssl) == NULL); + TEST_EQUAL(mbedtls_ssl_get_user_data_n(&ep->ssl), 0); + + (void) mbedtls_test_rnd_std_rand(NULL, + (void *) &user_data_n, + sizeof(user_data_n)); + mbedtls_ssl_conf_set_user_data_n(&ep->conf, user_data_n); + mbedtls_ssl_set_user_data_n(&ep->ssl, user_data_n); + + if (dtls_context != NULL) { + TEST_ASSERT(mbedtls_message_socket_setup(input_queue, output_queue, + 100, &(ep->socket), + dtls_context) == 0); + } else { + mbedtls_mock_socket_init(&(ep->socket)); } /* Non-blocking callbacks without timeout */ - if( dtls_context != NULL ) - { - mbedtls_ssl_set_bio( &( ep->ssl ), dtls_context, - mbedtls_mock_tcp_send_msg, - mbedtls_mock_tcp_recv_msg, - NULL ); - } - else - { - mbedtls_ssl_set_bio( &( ep->ssl ), &( ep->socket ), - mbedtls_mock_tcp_send_nb, - mbedtls_mock_tcp_recv_nb, - NULL ); + if (dtls_context != NULL) { + mbedtls_ssl_set_bio(&(ep->ssl), dtls_context, + mbedtls_mock_tcp_send_msg, + mbedtls_mock_tcp_recv_msg, + NULL); + } else { + mbedtls_ssl_set_bio(&(ep->ssl), &(ep->socket), + mbedtls_mock_tcp_send_nb, + mbedtls_mock_tcp_recv_nb, + NULL); } - ret = mbedtls_ssl_config_defaults( &( ep->conf ), endpoint_type, - ( dtls_context != NULL ) ? - MBEDTLS_SSL_TRANSPORT_DATAGRAM : - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ssl_config_defaults(&(ep->conf), endpoint_type, + (dtls_context != NULL) ? + MBEDTLS_SSL_TRANSPORT_DATAGRAM : + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT); + TEST_ASSERT(ret == 0); - if( group_list != NULL ) - mbedtls_ssl_conf_groups( &(ep->conf), group_list ); + if (group_list != NULL) { + mbedtls_ssl_conf_groups(&(ep->conf), group_list); + } - mbedtls_ssl_conf_authmode( &( ep->conf ), MBEDTLS_SSL_VERIFY_REQUIRED ); + mbedtls_ssl_conf_authmode(&(ep->conf), MBEDTLS_SSL_VERIFY_REQUIRED); #if defined(MBEDTLS_SSL_CACHE_C) && defined(MBEDTLS_SSL_SRV_C) - if( endpoint_type == MBEDTLS_SSL_IS_SERVER && options->cache != NULL ) - { - mbedtls_ssl_conf_session_cache( &( ep->conf ), options->cache, - mbedtls_ssl_cache_get, - mbedtls_ssl_cache_set ); + if (endpoint_type == MBEDTLS_SSL_IS_SERVER && options->cache != NULL) { + mbedtls_ssl_conf_session_cache(&(ep->conf), options->cache, + mbedtls_ssl_cache_get, + mbedtls_ssl_cache_set); } #endif - ret = mbedtls_ssl_setup( &( ep->ssl ), &( ep->conf ) ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ssl_setup(&(ep->ssl), &(ep->conf)); + TEST_ASSERT(ret == 0); #if defined(MBEDTLS_SSL_PROTO_DTLS) && defined(MBEDTLS_SSL_SRV_C) - if( endpoint_type == MBEDTLS_SSL_IS_SERVER && dtls_context != NULL ) - mbedtls_ssl_conf_dtls_cookies( &( ep->conf ), NULL, NULL, NULL ); + if (endpoint_type == MBEDTLS_SSL_IS_SERVER && dtls_context != NULL) { + mbedtls_ssl_conf_dtls_cookies(&(ep->conf), NULL, NULL, NULL); + } #endif - ret = mbedtls_endpoint_certificate_init( ep, options->pk_alg, - options->opaque_alg, - options->opaque_alg2, - options->opaque_usage ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_endpoint_certificate_init(ep, options->pk_alg, + options->opaque_alg, + options->opaque_alg2, + options->opaque_usage); + TEST_ASSERT(ret == 0); - TEST_EQUAL( mbedtls_ssl_conf_get_user_data_n( &ep->conf ), user_data_n ); - mbedtls_ssl_conf_set_user_data_p( &ep->conf, ep ); - TEST_EQUAL( mbedtls_ssl_get_user_data_n( &ep->ssl ), user_data_n ); - mbedtls_ssl_set_user_data_p( &ep->ssl, ep ); + TEST_EQUAL(mbedtls_ssl_conf_get_user_data_n(&ep->conf), user_data_n); + mbedtls_ssl_conf_set_user_data_p(&ep->conf, ep); + TEST_EQUAL(mbedtls_ssl_get_user_data_n(&ep->ssl), user_data_n); + mbedtls_ssl_set_user_data_p(&ep->ssl, ep); exit: return ret; @@ -1112,21 +1086,18 @@ exit: /* * Deinitializes endpoint represented by \p ep. */ -void mbedtls_endpoint_free( mbedtls_endpoint *ep, - mbedtls_test_message_socket_context *context ) +void mbedtls_endpoint_free(mbedtls_endpoint *ep, + mbedtls_test_message_socket_context *context) { - mbedtls_endpoint_certificate_free( ep ); + mbedtls_endpoint_certificate_free(ep); - mbedtls_ssl_free( &( ep->ssl ) ); - mbedtls_ssl_config_free( &( ep->conf ) ); + mbedtls_ssl_free(&(ep->ssl)); + mbedtls_ssl_config_free(&(ep->conf)); - if( context != NULL ) - { - mbedtls_message_socket_close( context ); - } - else - { - mbedtls_mock_socket_close( &( ep->socket ) ); + if (context != NULL) { + mbedtls_message_socket_close(context); + } else { + mbedtls_mock_socket_close(&(ep->socket)); } } @@ -1137,45 +1108,40 @@ void mbedtls_endpoint_free( mbedtls_endpoint *ep, * * \retval 0 on success, otherwise error code. */ -int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, - mbedtls_ssl_context *second_ssl, - int state ) +int mbedtls_move_handshake_to_state(mbedtls_ssl_context *ssl, + mbedtls_ssl_context *second_ssl, + int state) { enum { BUFFSIZE = 1024 }; int max_steps = 1000; int ret = 0; - if( ssl == NULL || second_ssl == NULL ) - { + if (ssl == NULL || second_ssl == NULL) { return MBEDTLS_ERR_SSL_BAD_INPUT_DATA; } /* Perform communication via connected sockets */ - while( ( ssl->state != state ) && ( --max_steps >= 0 ) ) - { + while ((ssl->state != state) && (--max_steps >= 0)) { /* If /p second_ssl ends the handshake procedure before /p ssl then * there is no need to call the next step */ - if( !mbedtls_ssl_is_handshake_over( second_ssl ) ) - { - ret = mbedtls_ssl_handshake_step( second_ssl ); - if( ret != 0 && ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + if (!mbedtls_ssl_is_handshake_over(second_ssl)) { + ret = mbedtls_ssl_handshake_step(second_ssl); + if (ret != 0 && ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { return ret; } } /* We only care about the \p ssl state and returns, so we call it last, * to leave the iteration as soon as the state is as expected. */ - ret = mbedtls_ssl_handshake_step( ssl ); - if( ret != 0 && ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ) - { + ret = mbedtls_ssl_handshake_step(ssl); + if (ret != 0 && ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE) { return ret; } } - return ( max_steps >= 0 ) ? ret : -1; + return (max_steps >= 0) ? ret : -1; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -1183,38 +1149,32 @@ int mbedtls_move_handshake_to_state( mbedtls_ssl_context *ssl, /* * Write application data. Increase write counter if necessary. */ -int mbedtls_ssl_write_fragment( mbedtls_ssl_context *ssl, unsigned char *buf, - int buf_len, int *written, - const int expected_fragments ) +int mbedtls_ssl_write_fragment(mbedtls_ssl_context *ssl, unsigned char *buf, + int buf_len, int *written, + const int expected_fragments) { - int ret = mbedtls_ssl_write( ssl, buf + *written, buf_len - *written ); - if( ret > 0 ) - { + int ret = mbedtls_ssl_write(ssl, buf + *written, buf_len - *written); + if (ret > 0) { *written += ret; } - if( expected_fragments == 0 ) - { + if (expected_fragments == 0) { /* Used for DTLS and the message size larger than MFL. In that case * the message can not be fragmented and the library should return * MBEDTLS_ERR_SSL_BAD_INPUT_DATA error. This error must be returned * to prevent a dead loop inside mbedtls_exchange_data(). */ return ret; - } - else if( expected_fragments == 1 ) - { + } else if (expected_fragments == 1) { /* Used for TLS/DTLS and the message size lower than MFL */ - TEST_ASSERT( ret == buf_len || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); - } - else - { + TEST_ASSERT(ret == buf_len || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); + } else { /* Used for TLS and the message size larger than MFL */ - TEST_ASSERT( expected_fragments > 1 ); - TEST_ASSERT( ( ret >= 0 && ret <= buf_len ) || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + TEST_ASSERT(expected_fragments > 1); + TEST_ASSERT((ret >= 0 && ret <= buf_len) || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); } return 0; @@ -1227,33 +1187,27 @@ exit: /* * Read application data and increase read counter and fragments counter if necessary. */ -int mbedtls_ssl_read_fragment( mbedtls_ssl_context *ssl, unsigned char *buf, - int buf_len, int *read, - int *fragments, const int expected_fragments ) +int mbedtls_ssl_read_fragment(mbedtls_ssl_context *ssl, unsigned char *buf, + int buf_len, int *read, + int *fragments, const int expected_fragments) { - int ret = mbedtls_ssl_read( ssl, buf + *read, buf_len - *read ); - if( ret > 0 ) - { - ( *fragments )++; + int ret = mbedtls_ssl_read(ssl, buf + *read, buf_len - *read); + if (ret > 0) { + (*fragments)++; *read += ret; } - if( expected_fragments == 0 ) - { - TEST_ASSERT( ret == 0 ); - } - else if( expected_fragments == 1 ) - { - TEST_ASSERT( ret == buf_len || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); - } - else - { - TEST_ASSERT( expected_fragments > 1 ); - TEST_ASSERT( ( ret >= 0 && ret <= buf_len ) || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + if (expected_fragments == 0) { + TEST_ASSERT(ret == 0); + } else if (expected_fragments == 1) { + TEST_ASSERT(ret == buf_len || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); + } else { + TEST_ASSERT(expected_fragments > 1); + TEST_ASSERT((ret >= 0 && ret <= buf_len) || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); } return 0; @@ -1269,54 +1223,52 @@ exit: * and version. */ -#define CHK( x ) \ +#define CHK(x) \ do \ { \ - if( !( x ) ) \ + if (!(x)) \ { \ ret = -1; \ goto cleanup; \ } \ - } while( 0 ) + } while (0) -void set_ciphersuite( mbedtls_ssl_config *conf, const char *cipher, - int* forced_ciphersuite ) +void set_ciphersuite(mbedtls_ssl_config *conf, const char *cipher, + int *forced_ciphersuite) { const mbedtls_ssl_ciphersuite_t *ciphersuite_info; - forced_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id( cipher ); + forced_ciphersuite[0] = mbedtls_ssl_get_ciphersuite_id(cipher); forced_ciphersuite[1] = 0; ciphersuite_info = - mbedtls_ssl_ciphersuite_from_id( forced_ciphersuite[0] ); + mbedtls_ssl_ciphersuite_from_id(forced_ciphersuite[0]); - TEST_ASSERT( ciphersuite_info != NULL ); - TEST_ASSERT( ciphersuite_info->min_tls_version <= conf->max_tls_version ); - TEST_ASSERT( ciphersuite_info->max_tls_version >= conf->min_tls_version ); + TEST_ASSERT(ciphersuite_info != NULL); + TEST_ASSERT(ciphersuite_info->min_tls_version <= conf->max_tls_version); + TEST_ASSERT(ciphersuite_info->max_tls_version >= conf->min_tls_version); - if( conf->max_tls_version > ciphersuite_info->max_tls_version ) - { + if (conf->max_tls_version > ciphersuite_info->max_tls_version) { conf->max_tls_version = ciphersuite_info->max_tls_version; } - if( conf->min_tls_version < ciphersuite_info->min_tls_version ) - { + if (conf->min_tls_version < ciphersuite_info->min_tls_version) { conf->min_tls_version = ciphersuite_info->min_tls_version; } - mbedtls_ssl_conf_ciphersuites( conf, forced_ciphersuite ); + mbedtls_ssl_conf_ciphersuites(conf, forced_ciphersuite); exit: return; } -int psk_dummy_callback( void *p_info, mbedtls_ssl_context *ssl, - const unsigned char *name, size_t name_len ) +int psk_dummy_callback(void *p_info, mbedtls_ssl_context *ssl, + const unsigned char *name, size_t name_len) { (void) p_info; (void) ssl; (void) name; (void) name_len; - return ( 0 ); + return 0; } #if MBEDTLS_SSL_CID_OUT_LEN_MAX > MBEDTLS_SSL_CID_IN_LEN_MAX @@ -1327,55 +1279,59 @@ int psk_dummy_callback( void *p_info, mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_AES_C) -static int psa_cipher_encrypt_helper( mbedtls_ssl_transform *transform, - const unsigned char *iv, size_t iv_len, - const unsigned char *input, size_t ilen, - unsigned char *output, size_t *olen ) +static int psa_cipher_encrypt_helper(mbedtls_ssl_transform *transform, + const unsigned char *iv, size_t iv_len, + const unsigned char *input, size_t ilen, + unsigned char *output, size_t *olen) { #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; psa_cipher_operation_t cipher_op = PSA_CIPHER_OPERATION_INIT; size_t part_len; - status = psa_cipher_encrypt_setup( &cipher_op, - transform->psa_key_enc, transform->psa_alg ); + status = psa_cipher_encrypt_setup(&cipher_op, + transform->psa_key_enc, transform->psa_alg); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } - status = psa_cipher_set_iv( &cipher_op, iv, iv_len ); + status = psa_cipher_set_iv(&cipher_op, iv, iv_len); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } - status = psa_cipher_update( &cipher_op, - input, ilen, output, ilen, olen ); + status = psa_cipher_update(&cipher_op, + input, ilen, output, ilen, olen); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } - status = psa_cipher_finish( &cipher_op, - output + *olen, ilen - *olen, &part_len ); + status = psa_cipher_finish(&cipher_op, + output + *olen, ilen - *olen, &part_len); - if( status != PSA_SUCCESS ) - return( psa_ssl_status_to_mbedtls( status ) ); + if (status != PSA_SUCCESS) { + return psa_ssl_status_to_mbedtls(status); + } *olen += part_len; - return( 0 ); + return 0; #else - return mbedtls_cipher_crypt( &transform->cipher_ctx_enc, - iv, iv_len, input, ilen, output, olen ); + return mbedtls_cipher_crypt(&transform->cipher_ctx_enc, + iv, iv_len, input, ilen, output, olen); #endif /* MBEDTLS_USE_PSA_CRYPTO */ } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_CIPHER_MODE_CBC && MBEDTLS_AES_C */ -static int build_transforms( mbedtls_ssl_transform *t_in, - mbedtls_ssl_transform *t_out, - int cipher_type, int hash_id, - int etm, int tag_mode, - mbedtls_ssl_protocol_version tls_version, - size_t cid0_len, - size_t cid1_len ) +static int build_transforms(mbedtls_ssl_transform *t_in, + mbedtls_ssl_transform *t_out, + int cipher_type, int hash_id, + int etm, int tag_mode, + mbedtls_ssl_protocol_version tls_version, + size_t cid0_len, + size_t cid1_len) { mbedtls_cipher_info_t const *cipher_info; int ret = 0; @@ -1394,11 +1350,11 @@ static int build_transforms( mbedtls_ssl_transform *t_in, unsigned char iv_enc[16], iv_dec[16]; #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - unsigned char cid0[ SSL_CID_LEN_MIN ]; - unsigned char cid1[ SSL_CID_LEN_MIN ]; + unsigned char cid0[SSL_CID_LEN_MIN]; + unsigned char cid1[SSL_CID_LEN_MIN]; - mbedtls_test_rnd_std_rand( NULL, cid0, sizeof( cid0 ) ); - mbedtls_test_rnd_std_rand( NULL, cid1, sizeof( cid1 ) ); + mbedtls_test_rnd_std_rand(NULL, cid0, sizeof(cid0)); + mbedtls_test_rnd_std_rand(NULL, cid1, sizeof(cid1)); #else ((void) cid0_len); ((void) cid1_len); @@ -1407,123 +1363,122 @@ static int build_transforms( mbedtls_ssl_transform *t_in, maclen = 0; /* Pick cipher */ - cipher_info = mbedtls_cipher_info_from_type( cipher_type ); - CHK( cipher_info != NULL ); - CHK( cipher_info->iv_size <= 16 ); - CHK( cipher_info->key_bitlen % 8 == 0 ); + cipher_info = mbedtls_cipher_info_from_type(cipher_type); + CHK(cipher_info != NULL); + CHK(cipher_info->iv_size <= 16); + CHK(cipher_info->key_bitlen % 8 == 0); /* Pick keys */ keylen = cipher_info->key_bitlen / 8; /* Allocate `keylen + 1` bytes to ensure that we get * a non-NULL pointers from `mbedtls_calloc` even if * `keylen == 0` in the case of the NULL cipher. */ - CHK( ( key0 = mbedtls_calloc( 1, keylen + 1 ) ) != NULL ); - CHK( ( key1 = mbedtls_calloc( 1, keylen + 1 ) ) != NULL ); - memset( key0, 0x1, keylen ); - memset( key1, 0x2, keylen ); + CHK((key0 = mbedtls_calloc(1, keylen + 1)) != NULL); + CHK((key1 = mbedtls_calloc(1, keylen + 1)) != NULL); + memset(key0, 0x1, keylen); + memset(key1, 0x2, keylen); #if !defined(MBEDTLS_USE_PSA_CRYPTO) /* Setup cipher contexts */ - CHK( mbedtls_cipher_setup( &t_in->cipher_ctx_enc, cipher_info ) == 0 ); - CHK( mbedtls_cipher_setup( &t_in->cipher_ctx_dec, cipher_info ) == 0 ); - CHK( mbedtls_cipher_setup( &t_out->cipher_ctx_enc, cipher_info ) == 0 ); - CHK( mbedtls_cipher_setup( &t_out->cipher_ctx_dec, cipher_info ) == 0 ); + CHK(mbedtls_cipher_setup(&t_in->cipher_ctx_enc, cipher_info) == 0); + CHK(mbedtls_cipher_setup(&t_in->cipher_ctx_dec, cipher_info) == 0); + CHK(mbedtls_cipher_setup(&t_out->cipher_ctx_enc, cipher_info) == 0); + CHK(mbedtls_cipher_setup(&t_out->cipher_ctx_dec, cipher_info) == 0); #if defined(MBEDTLS_CIPHER_MODE_CBC) - if( cipher_info->mode == MBEDTLS_MODE_CBC ) - { - CHK( mbedtls_cipher_set_padding_mode( &t_in->cipher_ctx_enc, - MBEDTLS_PADDING_NONE ) == 0 ); - CHK( mbedtls_cipher_set_padding_mode( &t_in->cipher_ctx_dec, - MBEDTLS_PADDING_NONE ) == 0 ); - CHK( mbedtls_cipher_set_padding_mode( &t_out->cipher_ctx_enc, - MBEDTLS_PADDING_NONE ) == 0 ); - CHK( mbedtls_cipher_set_padding_mode( &t_out->cipher_ctx_dec, - MBEDTLS_PADDING_NONE ) == 0 ); + if (cipher_info->mode == MBEDTLS_MODE_CBC) { + CHK(mbedtls_cipher_set_padding_mode(&t_in->cipher_ctx_enc, + MBEDTLS_PADDING_NONE) == 0); + CHK(mbedtls_cipher_set_padding_mode(&t_in->cipher_ctx_dec, + MBEDTLS_PADDING_NONE) == 0); + CHK(mbedtls_cipher_set_padding_mode(&t_out->cipher_ctx_enc, + MBEDTLS_PADDING_NONE) == 0); + CHK(mbedtls_cipher_set_padding_mode(&t_out->cipher_ctx_dec, + MBEDTLS_PADDING_NONE) == 0); } #endif /* MBEDTLS_CIPHER_MODE_CBC */ - CHK( mbedtls_cipher_setkey( &t_in->cipher_ctx_enc, key0, - keylen << 3, MBEDTLS_ENCRYPT ) == 0 ); - CHK( mbedtls_cipher_setkey( &t_in->cipher_ctx_dec, key1, - keylen << 3, MBEDTLS_DECRYPT ) == 0 ); - CHK( mbedtls_cipher_setkey( &t_out->cipher_ctx_enc, key1, - keylen << 3, MBEDTLS_ENCRYPT ) == 0 ); - CHK( mbedtls_cipher_setkey( &t_out->cipher_ctx_dec, key0, - keylen << 3, MBEDTLS_DECRYPT ) == 0 ); + CHK(mbedtls_cipher_setkey(&t_in->cipher_ctx_enc, key0, + keylen << 3, MBEDTLS_ENCRYPT) == 0); + CHK(mbedtls_cipher_setkey(&t_in->cipher_ctx_dec, key1, + keylen << 3, MBEDTLS_DECRYPT) == 0); + CHK(mbedtls_cipher_setkey(&t_out->cipher_ctx_enc, key1, + keylen << 3, MBEDTLS_ENCRYPT) == 0); + CHK(mbedtls_cipher_setkey(&t_out->cipher_ctx_dec, key0, + keylen << 3, MBEDTLS_DECRYPT) == 0); #endif /* Setup MAC contexts */ #if defined(MBEDTLS_SSL_SOME_SUITES_USE_MAC) - if( cipher_info->mode == MBEDTLS_MODE_CBC || - cipher_info->mode == MBEDTLS_MODE_STREAM ) - { + if (cipher_info->mode == MBEDTLS_MODE_CBC || + cipher_info->mode == MBEDTLS_MODE_STREAM) { #if !defined(MBEDTLS_USE_PSA_CRYPTO) - mbedtls_md_info_t const *md_info = mbedtls_md_info_from_type( hash_id ); - CHK( md_info != NULL ); + mbedtls_md_info_t const *md_info = mbedtls_md_info_from_type(hash_id); + CHK(md_info != NULL); #endif - maclen = mbedtls_hash_info_get_size( hash_id ); - CHK( maclen != 0 ); + maclen = mbedtls_hash_info_get_size(hash_id); + CHK(maclen != 0); /* Pick hash keys */ - CHK( ( md0 = mbedtls_calloc( 1, maclen ) ) != NULL ); - CHK( ( md1 = mbedtls_calloc( 1, maclen ) ) != NULL ); - memset( md0, 0x5, maclen ); - memset( md1, 0x6, maclen ); + CHK((md0 = mbedtls_calloc(1, maclen)) != NULL); + CHK((md1 = mbedtls_calloc(1, maclen)) != NULL); + memset(md0, 0x5, maclen); + memset(md1, 0x6, maclen); #if defined(MBEDTLS_USE_PSA_CRYPTO) - alg = mbedtls_hash_info_psa_from_md( hash_id ); + alg = mbedtls_hash_info_psa_from_md(hash_id); - CHK( alg != 0 ); + CHK(alg != 0); - t_out->psa_mac_alg = PSA_ALG_HMAC( alg ); - t_in->psa_mac_alg = PSA_ALG_HMAC( alg ); + t_out->psa_mac_alg = PSA_ALG_HMAC(alg); + t_in->psa_mac_alg = PSA_ALG_HMAC(alg); t_in->psa_mac_enc = MBEDTLS_SVC_KEY_ID_INIT; t_out->psa_mac_enc = MBEDTLS_SVC_KEY_ID_INIT; t_in->psa_mac_dec = MBEDTLS_SVC_KEY_ID_INIT; t_out->psa_mac_dec = MBEDTLS_SVC_KEY_ID_INIT; - psa_reset_key_attributes( &attributes ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_MESSAGE ); - psa_set_key_algorithm( &attributes, PSA_ALG_HMAC( alg ) ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_HMAC ); + psa_reset_key_attributes(&attributes); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_MESSAGE); + psa_set_key_algorithm(&attributes, PSA_ALG_HMAC(alg)); + psa_set_key_type(&attributes, PSA_KEY_TYPE_HMAC); - CHK( psa_import_key( &attributes, - md0, maclen, - &t_in->psa_mac_enc ) == PSA_SUCCESS ); + CHK(psa_import_key(&attributes, + md0, maclen, + &t_in->psa_mac_enc) == PSA_SUCCESS); - CHK( psa_import_key( &attributes, - md1, maclen, - &t_out->psa_mac_enc ) == PSA_SUCCESS ); + CHK(psa_import_key(&attributes, + md1, maclen, + &t_out->psa_mac_enc) == PSA_SUCCESS); - if( cipher_info->mode == MBEDTLS_MODE_STREAM || - etm == MBEDTLS_SSL_ETM_DISABLED ) + if (cipher_info->mode == MBEDTLS_MODE_STREAM || + etm == MBEDTLS_SSL_ETM_DISABLED) { /* mbedtls_ct_hmac() requires the key to be exportable */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_EXPORT | - PSA_KEY_USAGE_VERIFY_HASH ); - else - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_VERIFY_HASH ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_EXPORT | + PSA_KEY_USAGE_VERIFY_HASH); + } else { + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_VERIFY_HASH); + } - CHK( psa_import_key( &attributes, - md1, maclen, - &t_in->psa_mac_dec ) == PSA_SUCCESS ); + CHK(psa_import_key(&attributes, + md1, maclen, + &t_in->psa_mac_dec) == PSA_SUCCESS); - CHK( psa_import_key( &attributes, - md0, maclen, - &t_out->psa_mac_dec ) == PSA_SUCCESS ); + CHK(psa_import_key(&attributes, + md0, maclen, + &t_out->psa_mac_dec) == PSA_SUCCESS); #else - CHK( mbedtls_md_setup( &t_out->md_ctx_enc, md_info, 1 ) == 0 ); - CHK( mbedtls_md_setup( &t_out->md_ctx_dec, md_info, 1 ) == 0 ); - CHK( mbedtls_md_setup( &t_in->md_ctx_enc, md_info, 1 ) == 0 ); - CHK( mbedtls_md_setup( &t_in->md_ctx_dec, md_info, 1 ) == 0 ); + CHK(mbedtls_md_setup(&t_out->md_ctx_enc, md_info, 1) == 0); + CHK(mbedtls_md_setup(&t_out->md_ctx_dec, md_info, 1) == 0); + CHK(mbedtls_md_setup(&t_in->md_ctx_enc, md_info, 1) == 0); + CHK(mbedtls_md_setup(&t_in->md_ctx_dec, md_info, 1) == 0); - CHK( mbedtls_md_hmac_starts( &t_in->md_ctx_enc, - md0, maclen ) == 0 ); - CHK( mbedtls_md_hmac_starts( &t_in->md_ctx_dec, - md1, maclen ) == 0 ); - CHK( mbedtls_md_hmac_starts( &t_out->md_ctx_enc, - md1, maclen ) == 0 ); - CHK( mbedtls_md_hmac_starts( &t_out->md_ctx_dec, - md0, maclen ) == 0 ); + CHK(mbedtls_md_hmac_starts(&t_in->md_ctx_enc, + md0, maclen) == 0); + CHK(mbedtls_md_hmac_starts(&t_in->md_ctx_dec, + md1, maclen) == 0); + CHK(mbedtls_md_hmac_starts(&t_out->md_ctx_enc, + md1, maclen) == 0); + CHK(mbedtls_md_hmac_starts(&t_out->md_ctx_dec, + md0, maclen) == 0); #endif } #else @@ -1534,8 +1489,8 @@ static int build_transforms( mbedtls_ssl_transform *t_in, /* Pick IV's (regardless of whether they * are being used by the transform). */ ivlen = cipher_info->iv_size; - memset( iv_enc, 0x3, sizeof( iv_enc ) ); - memset( iv_dec, 0x4, sizeof( iv_dec ) ); + memset(iv_enc, 0x3, sizeof(iv_enc)); + memset(iv_dec, 0x4, sizeof(iv_dec)); /* * Setup transforms @@ -1554,17 +1509,14 @@ static int build_transforms( mbedtls_ssl_transform *t_in, t_out->ivlen = ivlen; t_in->ivlen = ivlen; - switch( cipher_info->mode ) - { + switch (cipher_info->mode) { case MBEDTLS_MODE_GCM: case MBEDTLS_MODE_CCM: #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { t_out->fixed_ivlen = 12; t_in->fixed_ivlen = 12; - } - else + } else #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ { t_out->fixed_ivlen = 4; @@ -1572,8 +1524,7 @@ static int build_transforms( mbedtls_ssl_transform *t_in, } t_out->maclen = 0; t_in->maclen = 0; - switch( tag_mode ) - { + switch (tag_mode) { case 0: /* Full tag */ t_out->taglen = 16; t_in->taglen = 16; @@ -1593,8 +1544,7 @@ static int build_transforms( mbedtls_ssl_transform *t_in, t_in->fixed_ivlen = 12; t_out->maclen = 0; t_in->maclen = 0; - switch( tag_mode ) - { + switch (tag_mode) { case 0: /* Full tag */ t_out->taglen = 16; t_in->taglen = 16; @@ -1615,8 +1565,7 @@ static int build_transforms( mbedtls_ssl_transform *t_in, t_in->fixed_ivlen = 0; /* redundant, must be 0 */ t_out->taglen = 0; t_in->taglen = 0; - switch( tag_mode ) - { + switch (tag_mode) { case 0: /* Full tag */ t_out->maclen = maclen; t_in->maclen = maclen; @@ -1634,89 +1583,83 @@ static int build_transforms( mbedtls_ssl_transform *t_in, /* Setup IV's */ - memcpy( &t_in->iv_dec, iv_dec, sizeof( iv_dec ) ); - memcpy( &t_in->iv_enc, iv_enc, sizeof( iv_enc ) ); - memcpy( &t_out->iv_dec, iv_enc, sizeof( iv_enc ) ); - memcpy( &t_out->iv_enc, iv_dec, sizeof( iv_dec ) ); + memcpy(&t_in->iv_dec, iv_dec, sizeof(iv_dec)); + memcpy(&t_in->iv_enc, iv_enc, sizeof(iv_enc)); + memcpy(&t_out->iv_dec, iv_enc, sizeof(iv_enc)); + memcpy(&t_out->iv_enc, iv_dec, sizeof(iv_dec)); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* Add CID */ - memcpy( &t_in->in_cid, cid0, cid0_len ); - memcpy( &t_in->out_cid, cid1, cid1_len ); + memcpy(&t_in->in_cid, cid0, cid0_len); + memcpy(&t_in->out_cid, cid1, cid1_len); t_in->in_cid_len = cid0_len; t_in->out_cid_len = cid1_len; - memcpy( &t_out->in_cid, cid1, cid1_len ); - memcpy( &t_out->out_cid, cid0, cid0_len ); + memcpy(&t_out->in_cid, cid1, cid1_len); + memcpy(&t_out->out_cid, cid0, cid0_len); t_out->in_cid_len = cid1_len; t_out->out_cid_len = cid0_len; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - status = mbedtls_ssl_cipher_to_psa( cipher_type, - t_in->taglen, - &alg, - &key_type, - &key_bits ); + status = mbedtls_ssl_cipher_to_psa(cipher_type, + t_in->taglen, + &alg, + &key_type, + &key_bits); - if ( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } t_in->psa_alg = alg; t_out->psa_alg = alg; - if ( alg != MBEDTLS_SSL_NULL_CIPHER ) - { - psa_reset_key_attributes( &attributes ); - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_ENCRYPT ); - psa_set_key_algorithm( &attributes, alg ); - psa_set_key_type( &attributes, key_type ); + if (alg != MBEDTLS_SSL_NULL_CIPHER) { + psa_reset_key_attributes(&attributes); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT); + psa_set_key_algorithm(&attributes, alg); + psa_set_key_type(&attributes, key_type); - status = psa_import_key( &attributes, - key0, - PSA_BITS_TO_BYTES( key_bits ), - &t_in->psa_key_enc ); + status = psa_import_key(&attributes, + key0, + PSA_BITS_TO_BYTES(key_bits), + &t_in->psa_key_enc); - if ( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } - status = psa_import_key( &attributes, - key1, - PSA_BITS_TO_BYTES( key_bits ), - &t_out->psa_key_enc ); + status = psa_import_key(&attributes, + key1, + PSA_BITS_TO_BYTES(key_bits), + &t_out->psa_key_enc); - if ( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DECRYPT ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT); - status = psa_import_key( &attributes, - key1, - PSA_BITS_TO_BYTES( key_bits ), - &t_in->psa_key_dec ); + status = psa_import_key(&attributes, + key1, + PSA_BITS_TO_BYTES(key_bits), + &t_in->psa_key_dec); - if ( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } - status = psa_import_key( &attributes, - key0, - PSA_BITS_TO_BYTES( key_bits ), - &t_out->psa_key_dec ); + status = psa_import_key(&attributes, + key0, + PSA_BITS_TO_BYTES(key_bits), + &t_out->psa_key_dec); - if ( status != PSA_SUCCESS ) - { - ret = psa_ssl_status_to_mbedtls( status ); + if (status != PSA_SUCCESS) { + ret = psa_ssl_status_to_mbedtls(status); goto cleanup; } } @@ -1724,82 +1667,85 @@ static int build_transforms( mbedtls_ssl_transform *t_in, cleanup: - mbedtls_free( key0 ); - mbedtls_free( key1 ); + mbedtls_free(key0); + mbedtls_free(key1); - mbedtls_free( md0 ); - mbedtls_free( md1 ); + mbedtls_free(md0); + mbedtls_free(md1); - return( ret ); + return ret; } /* * Populate a session structure for serialization tests. * Choose dummy values, mostly non-0 to distinguish from the init default. */ -static int ssl_tls12_populate_session( mbedtls_ssl_session *session, - int ticket_len, - const char *crt_file ) +static int ssl_tls12_populate_session(mbedtls_ssl_session *session, + int ticket_len, + const char *crt_file) { #if defined(MBEDTLS_HAVE_TIME) - session->start = mbedtls_time( NULL ) - 42; + session->start = mbedtls_time(NULL) - 42; #endif session->tls_version = MBEDTLS_SSL_VERSION_TLS1_2; session->ciphersuite = 0xabcd; - session->id_len = sizeof( session->id ); - memset( session->id, 66, session->id_len ); - memset( session->master, 17, sizeof( session->master ) ); + session->id_len = sizeof(session->id); + memset(session->id, 66, session->id_len); + memset(session->master, 17, sizeof(session->master)); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) && defined(MBEDTLS_FS_IO) - if( crt_file != NULL && strlen( crt_file ) != 0 ) - { + if (crt_file != NULL && strlen(crt_file) != 0) { mbedtls_x509_crt tmp_crt; int ret; - mbedtls_x509_crt_init( &tmp_crt ); - ret = mbedtls_x509_crt_parse_file( &tmp_crt, crt_file ); - if( ret != 0 ) - return( ret ); + mbedtls_x509_crt_init(&tmp_crt); + ret = mbedtls_x509_crt_parse_file(&tmp_crt, crt_file); + if (ret != 0) { + return ret; + } #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) /* Move temporary CRT. */ - session->peer_cert = mbedtls_calloc( 1, sizeof( *session->peer_cert ) ); - if( session->peer_cert == NULL ) - return( -1 ); + session->peer_cert = mbedtls_calloc(1, sizeof(*session->peer_cert)); + if (session->peer_cert == NULL) { + return -1; + } *session->peer_cert = tmp_crt; - memset( &tmp_crt, 0, sizeof( tmp_crt ) ); + memset(&tmp_crt, 0, sizeof(tmp_crt)); #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ /* Calculate digest of temporary CRT. */ session->peer_cert_digest = - mbedtls_calloc( 1, MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN ); - if( session->peer_cert_digest == NULL ) - return( -1 ); + mbedtls_calloc(1, MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN); + if (session->peer_cert_digest == NULL) { + return -1; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_algorithm_t psa_alg = mbedtls_hash_info_psa_from_md( - MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE ); + MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE); size_t hash_size = 0; - psa_status_t status = psa_hash_compute( psa_alg, tmp_crt.raw.p, - tmp_crt.raw.len, - session->peer_cert_digest, - MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN, - &hash_size); - ret = psa_ssl_status_to_mbedtls( status ); + psa_status_t status = psa_hash_compute(psa_alg, tmp_crt.raw.p, + tmp_crt.raw.len, + session->peer_cert_digest, + MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN, + &hash_size); + ret = psa_ssl_status_to_mbedtls(status); #else - ret = mbedtls_md( mbedtls_md_info_from_type( - MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE ), - tmp_crt.raw.p, tmp_crt.raw.len, - session->peer_cert_digest ); + ret = mbedtls_md(mbedtls_md_info_from_type( + MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE), + tmp_crt.raw.p, tmp_crt.raw.len, + session->peer_cert_digest); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( ret != 0 ) - return( ret ); + if (ret != 0) { + return ret; + } session->peer_cert_digest_type = MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_TYPE; session->peer_cert_digest_len = MBEDTLS_SSL_PEER_CERT_DIGEST_DFL_LEN; #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - mbedtls_x509_crt_free( &tmp_crt ); + mbedtls_x509_crt_free(&tmp_crt); } #else /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED && MBEDTLS_FS_IO */ (void) crt_file; @@ -1807,12 +1753,12 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, session->verify_result = 0xdeadbeef; #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( ticket_len != 0 ) - { - session->ticket = mbedtls_calloc( 1, ticket_len ); - if( session->ticket == NULL ) - return( -1 ); - memset( session->ticket, 33, ticket_len ); + if (ticket_len != 0) { + session->ticket = mbedtls_calloc(1, ticket_len); + if (session->ticket == NULL) { + return -1; + } + memset(session->ticket, 33, ticket_len); } session->ticket_len = ticket_len; session->ticket_lifetime = 86401; @@ -1827,52 +1773,50 @@ static int ssl_tls12_populate_session( mbedtls_ssl_session *session, session->encrypt_then_mac = 1; #endif - return( 0 ); + return 0; } #if defined(MBEDTLS_SSL_PROTO_TLS1_3) -static int ssl_tls13_populate_session( mbedtls_ssl_session *session, - int ticket_len, - int endpoint_type ) +static int ssl_tls13_populate_session(mbedtls_ssl_session *session, + int ticket_len, + int endpoint_type) { ((void) ticket_len); session->tls_version = MBEDTLS_SSL_VERSION_TLS1_3; session->endpoint = endpoint_type == MBEDTLS_SSL_IS_CLIENT ? - MBEDTLS_SSL_IS_CLIENT : MBEDTLS_SSL_IS_SERVER; + MBEDTLS_SSL_IS_CLIENT : MBEDTLS_SSL_IS_SERVER; session->ciphersuite = 0xabcd; session->ticket_age_add = 0x87654321; session->ticket_flags = 0x7; session->resumption_key_len = 32; - memset( session->resumption_key, 0x99, sizeof( session->resumption_key ) ); + memset(session->resumption_key, 0x99, sizeof(session->resumption_key)); #if defined(MBEDTLS_HAVE_TIME) - if( session->endpoint == MBEDTLS_SSL_IS_SERVER ) - { - session->start = mbedtls_time( NULL ) - 42; + if (session->endpoint == MBEDTLS_SSL_IS_SERVER) { + session->start = mbedtls_time(NULL) - 42; } #endif #if defined(MBEDTLS_SSL_CLI_C) - if( session->endpoint == MBEDTLS_SSL_IS_CLIENT ) - { + if (session->endpoint == MBEDTLS_SSL_IS_CLIENT) { #if defined(MBEDTLS_HAVE_TIME) - session->ticket_received = mbedtls_time( NULL ) - 40; + session->ticket_received = mbedtls_time(NULL) - 40; #endif session->ticket_lifetime = 0xfedcba98; session->ticket_len = ticket_len; - if( ticket_len != 0 ) - { - session->ticket = mbedtls_calloc( 1, ticket_len ); - if( session->ticket == NULL ) - return( -1 ); - memset( session->ticket, 33, ticket_len ); + if (ticket_len != 0) { + session->ticket = mbedtls_calloc(1, ticket_len); + if (session->ticket == NULL) { + return -1; + } + memset(session->ticket, 33, ticket_len); } } #endif /* MBEDTLS_SSL_CLI_C */ - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ @@ -1896,22 +1840,21 @@ static int ssl_tls13_populate_session( mbedtls_ssl_session *session, * * \retval 0 on success, otherwise error code. */ -int mbedtls_exchange_data( mbedtls_ssl_context *ssl_1, - int msg_len_1, const int expected_fragments_1, - mbedtls_ssl_context *ssl_2, - int msg_len_2, const int expected_fragments_2 ) +int mbedtls_exchange_data(mbedtls_ssl_context *ssl_1, + int msg_len_1, const int expected_fragments_1, + mbedtls_ssl_context *ssl_2, + int msg_len_2, const int expected_fragments_2) { - unsigned char *msg_buf_1 = malloc( msg_len_1 ); - unsigned char *msg_buf_2 = malloc( msg_len_2 ); - unsigned char *in_buf_1 = malloc( msg_len_2 ); - unsigned char *in_buf_2 = malloc( msg_len_1 ); + unsigned char *msg_buf_1 = malloc(msg_len_1); + unsigned char *msg_buf_2 = malloc(msg_len_2); + unsigned char *in_buf_1 = malloc(msg_len_2); + unsigned char *in_buf_2 = malloc(msg_len_1); int msg_type, ret = -1; /* Perform this test with two message types. At first use a message * consisting of only 0x00 for the client and only 0xFF for the server. * At the second time use message with generated data */ - for( msg_type = 0; msg_type < 2; msg_type++ ) - { + for (msg_type = 0; msg_type < 2; msg_type++) { int written_1 = 0; int written_2 = 0; int read_1 = 0; @@ -1919,99 +1862,83 @@ int mbedtls_exchange_data( mbedtls_ssl_context *ssl_1, int fragments_1 = 0; int fragments_2 = 0; - if( msg_type == 0 ) - { - memset( msg_buf_1, 0x00, msg_len_1 ); - memset( msg_buf_2, 0xff, msg_len_2 ); - } - else - { + if (msg_type == 0) { + memset(msg_buf_1, 0x00, msg_len_1); + memset(msg_buf_2, 0xff, msg_len_2); + } else { int i, j = 0; - for( i = 0; i < msg_len_1; i++ ) - { + for (i = 0; i < msg_len_1; i++) { msg_buf_1[i] = j++ & 0xFF; } - for( i = 0; i < msg_len_2; i++ ) - { - msg_buf_2[i] = ( j -= 5 ) & 0xFF; + for (i = 0; i < msg_len_2; i++) { + msg_buf_2[i] = (j -= 5) & 0xFF; } } - while( read_1 < msg_len_2 || read_2 < msg_len_1 ) - { + while (read_1 < msg_len_2 || read_2 < msg_len_1) { /* ssl_1 sending */ - if( msg_len_1 > written_1 ) - { - ret = mbedtls_ssl_write_fragment( ssl_1, msg_buf_1, - msg_len_1, &written_1, - expected_fragments_1 ); - if( expected_fragments_1 == 0 ) - { + if (msg_len_1 > written_1) { + ret = mbedtls_ssl_write_fragment(ssl_1, msg_buf_1, + msg_len_1, &written_1, + expected_fragments_1); + if (expected_fragments_1 == 0) { /* This error is expected when the message is too large and * cannot be fragmented */ - TEST_ASSERT( ret == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(ret == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); msg_len_1 = 0; - } - else - { - TEST_ASSERT( ret == 0 ); + } else { + TEST_ASSERT(ret == 0); } } /* ssl_2 sending */ - if( msg_len_2 > written_2 ) - { - ret = mbedtls_ssl_write_fragment( ssl_2, msg_buf_2, - msg_len_2, &written_2, - expected_fragments_2 ); - if( expected_fragments_2 == 0 ) - { + if (msg_len_2 > written_2) { + ret = mbedtls_ssl_write_fragment(ssl_2, msg_buf_2, + msg_len_2, &written_2, + expected_fragments_2); + if (expected_fragments_2 == 0) { /* This error is expected when the message is too large and * cannot be fragmented */ - TEST_ASSERT( ret == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(ret == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); msg_len_2 = 0; - } - else - { - TEST_ASSERT( ret == 0 ); + } else { + TEST_ASSERT(ret == 0); } } /* ssl_1 reading */ - if( read_1 < msg_len_2 ) - { - ret = mbedtls_ssl_read_fragment( ssl_1, in_buf_1, - msg_len_2, &read_1, - &fragments_2, - expected_fragments_2 ); - TEST_ASSERT( ret == 0 ); + if (read_1 < msg_len_2) { + ret = mbedtls_ssl_read_fragment(ssl_1, in_buf_1, + msg_len_2, &read_1, + &fragments_2, + expected_fragments_2); + TEST_ASSERT(ret == 0); } /* ssl_2 reading */ - if( read_2 < msg_len_1 ) - { - ret = mbedtls_ssl_read_fragment( ssl_2, in_buf_2, - msg_len_1, &read_2, - &fragments_1, - expected_fragments_1 ); - TEST_ASSERT( ret == 0 ); + if (read_2 < msg_len_1) { + ret = mbedtls_ssl_read_fragment(ssl_2, in_buf_2, + msg_len_1, &read_2, + &fragments_1, + expected_fragments_1); + TEST_ASSERT(ret == 0); } } ret = -1; - TEST_ASSERT( 0 == memcmp( msg_buf_1, in_buf_2, msg_len_1 ) ); - TEST_ASSERT( 0 == memcmp( msg_buf_2, in_buf_1, msg_len_2 ) ); - TEST_ASSERT( fragments_1 == expected_fragments_1 ); - TEST_ASSERT( fragments_2 == expected_fragments_2 ); + TEST_ASSERT(0 == memcmp(msg_buf_1, in_buf_2, msg_len_1)); + TEST_ASSERT(0 == memcmp(msg_buf_2, in_buf_1, msg_len_2)); + TEST_ASSERT(fragments_1 == expected_fragments_1); + TEST_ASSERT(fragments_2 == expected_fragments_2); } ret = 0; exit: - free( msg_buf_1 ); - free( in_buf_1 ); - free( msg_buf_2 ); - free( in_buf_2 ); + free(msg_buf_1); + free(in_buf_1); + free(msg_buf_2); + free(in_buf_2); return ret; } @@ -2022,55 +1949,53 @@ exit: * * \retval 0 on success, otherwise error code. */ -int exchange_data( mbedtls_ssl_context *ssl_1, - mbedtls_ssl_context *ssl_2 ) +int exchange_data(mbedtls_ssl_context *ssl_1, + mbedtls_ssl_context *ssl_2) { - return mbedtls_exchange_data( ssl_1, 256, 1, - ssl_2, 256, 1 ); + return mbedtls_exchange_data(ssl_1, 256, 1, + ssl_2, 256, 1); } #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) -static int check_ssl_version( mbedtls_ssl_protocol_version expected_negotiated_version, - const mbedtls_ssl_context *ssl ) +static int check_ssl_version(mbedtls_ssl_protocol_version expected_negotiated_version, + const mbedtls_ssl_context *ssl) { - const char *version_string = mbedtls_ssl_get_version( ssl ); + const char *version_string = mbedtls_ssl_get_version(ssl); mbedtls_ssl_protocol_version version_number = - mbedtls_ssl_get_version_number( ssl ); + mbedtls_ssl_get_version_number(ssl); - TEST_EQUAL( ssl->tls_version, expected_negotiated_version ); + TEST_EQUAL(ssl->tls_version, expected_negotiated_version); - if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) - { - TEST_EQUAL( version_string[0], 'D' ); + if (ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM) { + TEST_EQUAL(version_string[0], 'D'); ++version_string; } - switch( expected_negotiated_version ) - { + switch (expected_negotiated_version) { case MBEDTLS_SSL_VERSION_TLS1_2: - TEST_EQUAL( version_number, MBEDTLS_SSL_VERSION_TLS1_2 ); - TEST_ASSERT( strcmp( version_string, "TLSv1.2" ) == 0 ); + TEST_EQUAL(version_number, MBEDTLS_SSL_VERSION_TLS1_2); + TEST_ASSERT(strcmp(version_string, "TLSv1.2") == 0); break; case MBEDTLS_SSL_VERSION_TLS1_3: - TEST_EQUAL( version_number, MBEDTLS_SSL_VERSION_TLS1_3 ); - TEST_ASSERT( strcmp( version_string, "TLSv1.3" ) == 0 ); + TEST_EQUAL(version_number, MBEDTLS_SSL_VERSION_TLS1_3); + TEST_ASSERT(strcmp(version_string, "TLSv1.3") == 0); break; default: - TEST_ASSERT( ! "Version check not implemented for this protocol version" ); + TEST_ASSERT(!"Version check not implemented for this protocol version"); } - return( 1 ); + return 1; exit: - return( 0 ); + return 0; } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) -void perform_handshake( handshake_test_options *options ) +void perform_handshake(handshake_test_options *options) { /* forced_ciphersuite needs to last until the end of the handshake */ int forced_ciphersuite[2]; @@ -2091,381 +2016,355 @@ void perform_handshake( handshake_test_options *options ) #endif int expected_handshake_result = options->expected_handshake_result; - USE_PSA_INIT( ); - mbedtls_platform_zeroize( &client, sizeof(client) ); - mbedtls_platform_zeroize( &server, sizeof(server) ); + USE_PSA_INIT(); + mbedtls_platform_zeroize(&client, sizeof(client)); + mbedtls_platform_zeroize(&server, sizeof(server)); mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); /* Client side */ - if( options->dtls != 0 ) - { - TEST_ASSERT( mbedtls_endpoint_init( &client, MBEDTLS_SSL_IS_CLIENT, - options, &client_context, - &client_queue, - &server_queue, NULL ) == 0 ); + if (options->dtls != 0) { + TEST_ASSERT(mbedtls_endpoint_init(&client, MBEDTLS_SSL_IS_CLIENT, + options, &client_context, + &client_queue, + &server_queue, NULL) == 0); #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &client.ssl, &timer_client, - mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&client.ssl, &timer_client, + mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif - } - else - { - TEST_ASSERT( mbedtls_endpoint_init( &client, MBEDTLS_SSL_IS_CLIENT, - options, NULL, NULL, - NULL, NULL ) == 0 ); + } else { + TEST_ASSERT(mbedtls_endpoint_init(&client, MBEDTLS_SSL_IS_CLIENT, + options, NULL, NULL, + NULL, NULL) == 0); } - if( options->client_min_version != MBEDTLS_SSL_VERSION_UNKNOWN ) - { - mbedtls_ssl_conf_min_tls_version( &client.conf, - options->client_min_version ); + if (options->client_min_version != MBEDTLS_SSL_VERSION_UNKNOWN) { + mbedtls_ssl_conf_min_tls_version(&client.conf, + options->client_min_version); } - if( options->client_max_version != MBEDTLS_SSL_VERSION_UNKNOWN ) - { - mbedtls_ssl_conf_max_tls_version( &client.conf, - options->client_max_version ); + if (options->client_max_version != MBEDTLS_SSL_VERSION_UNKNOWN) { + mbedtls_ssl_conf_max_tls_version(&client.conf, + options->client_max_version); } - if( strlen( options->cipher ) > 0 ) - { - set_ciphersuite( &client.conf, options->cipher, forced_ciphersuite ); + if (strlen(options->cipher) > 0) { + set_ciphersuite(&client.conf, options->cipher, forced_ciphersuite); } -#if defined (MBEDTLS_DEBUG_C) - if( options->cli_log_fun ) - { - mbedtls_debug_set_threshold( 4 ); - mbedtls_ssl_conf_dbg( &client.conf, options->cli_log_fun, - options->cli_log_obj ); +#if defined(MBEDTLS_DEBUG_C) + if (options->cli_log_fun) { + mbedtls_debug_set_threshold(4); + mbedtls_ssl_conf_dbg(&client.conf, options->cli_log_fun, + options->cli_log_obj); } #endif /* Server side */ - if( options->dtls != 0 ) - { - TEST_ASSERT( mbedtls_endpoint_init( &server, MBEDTLS_SSL_IS_SERVER, - options, &server_context, - &server_queue, - &client_queue, NULL ) == 0 ); + if (options->dtls != 0) { + TEST_ASSERT(mbedtls_endpoint_init(&server, MBEDTLS_SSL_IS_SERVER, + options, &server_context, + &server_queue, + &client_queue, NULL) == 0); #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &server.ssl, &timer_server, - mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&server.ssl, &timer_server, + mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif - } - else - { - TEST_ASSERT( mbedtls_endpoint_init( &server, MBEDTLS_SSL_IS_SERVER, - options, NULL, NULL, NULL, - NULL ) == 0 ); + } else { + TEST_ASSERT(mbedtls_endpoint_init(&server, MBEDTLS_SSL_IS_SERVER, + options, NULL, NULL, NULL, + NULL) == 0); } - mbedtls_ssl_conf_authmode( &server.conf, options->srv_auth_mode ); + mbedtls_ssl_conf_authmode(&server.conf, options->srv_auth_mode); - if( options->server_min_version != MBEDTLS_SSL_VERSION_UNKNOWN ) - { - mbedtls_ssl_conf_min_tls_version( &server.conf, - options->server_min_version ); + if (options->server_min_version != MBEDTLS_SSL_VERSION_UNKNOWN) { + mbedtls_ssl_conf_min_tls_version(&server.conf, + options->server_min_version); } - if( options->server_max_version != MBEDTLS_SSL_VERSION_UNKNOWN ) - { - mbedtls_ssl_conf_max_tls_version( &server.conf, - options->server_max_version ); + if (options->server_max_version != MBEDTLS_SSL_VERSION_UNKNOWN) { + mbedtls_ssl_conf_max_tls_version(&server.conf, + options->server_max_version); } #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - TEST_ASSERT( mbedtls_ssl_conf_max_frag_len( &(server.conf), - (unsigned char) options->mfl ) == 0 ); - TEST_ASSERT( mbedtls_ssl_conf_max_frag_len( &(client.conf), - (unsigned char) options->mfl ) == 0 ); + TEST_ASSERT(mbedtls_ssl_conf_max_frag_len(&(server.conf), + (unsigned char) options->mfl) == 0); + TEST_ASSERT(mbedtls_ssl_conf_max_frag_len(&(client.conf), + (unsigned char) options->mfl) == 0); #else - TEST_ASSERT( MBEDTLS_SSL_MAX_FRAG_LEN_NONE == options->mfl ); + TEST_ASSERT(MBEDTLS_SSL_MAX_FRAG_LEN_NONE == options->mfl); #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED) - if( options->psk_str != NULL && options->psk_str->len > 0 ) - { - TEST_ASSERT( mbedtls_ssl_conf_psk( &client.conf, options->psk_str->x, - options->psk_str->len, - (const unsigned char *) psk_identity, - strlen( psk_identity ) ) == 0 ); + if (options->psk_str != NULL && options->psk_str->len > 0) { + TEST_ASSERT(mbedtls_ssl_conf_psk(&client.conf, options->psk_str->x, + options->psk_str->len, + (const unsigned char *) psk_identity, + strlen(psk_identity)) == 0); - TEST_ASSERT( mbedtls_ssl_conf_psk( &server.conf, options->psk_str->x, - options->psk_str->len, - (const unsigned char *) psk_identity, - strlen( psk_identity ) ) == 0 ); + TEST_ASSERT(mbedtls_ssl_conf_psk(&server.conf, options->psk_str->x, + options->psk_str->len, + (const unsigned char *) psk_identity, + strlen(psk_identity)) == 0); #if defined(MBEDTLS_SSL_SRV_C) - mbedtls_ssl_conf_psk_cb( &server.conf, psk_dummy_callback, NULL ); + mbedtls_ssl_conf_psk_cb(&server.conf, psk_dummy_callback, NULL); #endif } #endif #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( options->renegotiate ) - { - mbedtls_ssl_conf_renegotiation( &(server.conf), - MBEDTLS_SSL_RENEGOTIATION_ENABLED ); - mbedtls_ssl_conf_renegotiation( &(client.conf), - MBEDTLS_SSL_RENEGOTIATION_ENABLED ); + if (options->renegotiate) { + mbedtls_ssl_conf_renegotiation(&(server.conf), + MBEDTLS_SSL_RENEGOTIATION_ENABLED); + mbedtls_ssl_conf_renegotiation(&(client.conf), + MBEDTLS_SSL_RENEGOTIATION_ENABLED); - mbedtls_ssl_conf_legacy_renegotiation( &(server.conf), - options->legacy_renegotiation ); - mbedtls_ssl_conf_legacy_renegotiation( &(client.conf), - options->legacy_renegotiation ); + mbedtls_ssl_conf_legacy_renegotiation(&(server.conf), + options->legacy_renegotiation); + mbedtls_ssl_conf_legacy_renegotiation(&(client.conf), + options->legacy_renegotiation); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ -#if defined (MBEDTLS_DEBUG_C) - if( options->srv_log_fun ) - { - mbedtls_debug_set_threshold( 4 ); - mbedtls_ssl_conf_dbg( &server.conf, options->srv_log_fun, - options->srv_log_obj ); +#if defined(MBEDTLS_DEBUG_C) + if (options->srv_log_fun) { + mbedtls_debug_set_threshold(4); + mbedtls_ssl_conf_dbg(&server.conf, options->srv_log_fun, + options->srv_log_obj); } #endif - TEST_ASSERT( mbedtls_mock_socket_connect( &(client.socket), - &(server.socket), - BUFFSIZE ) == 0 ); + TEST_ASSERT(mbedtls_mock_socket_connect(&(client.socket), + &(server.socket), + BUFFSIZE) == 0); #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - if( options->resize_buffers != 0 ) - { + if (options->resize_buffers != 0) { /* Ensure that the buffer sizes are appropriate before resizes */ - TEST_ASSERT( client.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN ); - TEST_ASSERT( client.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN ); - TEST_ASSERT( server.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN ); - TEST_ASSERT( server.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN ); + TEST_ASSERT(client.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN); + TEST_ASSERT(client.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN); + TEST_ASSERT(server.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN); + TEST_ASSERT(server.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN); } #endif - if( options->expected_negotiated_version == MBEDTLS_SSL_VERSION_UNKNOWN ) - { + if (options->expected_negotiated_version == MBEDTLS_SSL_VERSION_UNKNOWN) { expected_handshake_result = MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION; } - TEST_ASSERT( mbedtls_move_handshake_to_state( &(client.ssl), - &(server.ssl), - MBEDTLS_SSL_HANDSHAKE_OVER ) - == expected_handshake_result ); + TEST_ASSERT(mbedtls_move_handshake_to_state(&(client.ssl), + &(server.ssl), + MBEDTLS_SSL_HANDSHAKE_OVER) + == expected_handshake_result); - if( expected_handshake_result != 0 ) - { + if (expected_handshake_result != 0) { /* Connection will have failed by this point, skip to cleanup */ goto exit; } - TEST_ASSERT( mbedtls_ssl_is_handshake_over( &client.ssl ) == 1 ); + TEST_ASSERT(mbedtls_ssl_is_handshake_over(&client.ssl) == 1); /* Make sure server state is moved to HANDSHAKE_OVER also. */ - TEST_EQUAL( mbedtls_move_handshake_to_state( &(server.ssl), - &(client.ssl), - MBEDTLS_SSL_HANDSHAKE_OVER ), 0 ); + TEST_EQUAL(mbedtls_move_handshake_to_state(&(server.ssl), + &(client.ssl), + MBEDTLS_SSL_HANDSHAKE_OVER), 0); - TEST_ASSERT( mbedtls_ssl_is_handshake_over( &server.ssl ) == 1 ); + TEST_ASSERT(mbedtls_ssl_is_handshake_over(&server.ssl) == 1); /* Check that both sides have negotiated the expected version. */ - mbedtls_test_set_step( 0 ); - if( ! check_ssl_version( options->expected_negotiated_version, - &client.ssl ) ) + mbedtls_test_set_step(0); + if (!check_ssl_version(options->expected_negotiated_version, + &client.ssl)) { goto exit; + } - mbedtls_test_set_step( 1 ); - if( ! check_ssl_version( options->expected_negotiated_version, - &server.ssl ) ) + mbedtls_test_set_step(1); + if (!check_ssl_version(options->expected_negotiated_version, + &server.ssl)) { goto exit; + } - if( options->expected_ciphersuite != 0 ) - { - TEST_EQUAL( server.ssl.session->ciphersuite, - options->expected_ciphersuite ); + if (options->expected_ciphersuite != 0) { + TEST_EQUAL(server.ssl.session->ciphersuite, + options->expected_ciphersuite); } #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - if( options->resize_buffers != 0 ) - { + if (options->resize_buffers != 0) { /* A server, when using DTLS, might delay a buffer resize to happen * after it receives a message, so we force it. */ - TEST_ASSERT( exchange_data( &(client.ssl), &(server.ssl) ) == 0 ); + TEST_ASSERT(exchange_data(&(client.ssl), &(server.ssl)) == 0); - TEST_ASSERT( client.ssl.out_buf_len == - mbedtls_ssl_get_output_buflen( &client.ssl ) ); - TEST_ASSERT( client.ssl.in_buf_len == - mbedtls_ssl_get_input_buflen( &client.ssl ) ); - TEST_ASSERT( server.ssl.out_buf_len == - mbedtls_ssl_get_output_buflen( &server.ssl ) ); - TEST_ASSERT( server.ssl.in_buf_len == - mbedtls_ssl_get_input_buflen( &server.ssl ) ); + TEST_ASSERT(client.ssl.out_buf_len == + mbedtls_ssl_get_output_buflen(&client.ssl)); + TEST_ASSERT(client.ssl.in_buf_len == + mbedtls_ssl_get_input_buflen(&client.ssl)); + TEST_ASSERT(server.ssl.out_buf_len == + mbedtls_ssl_get_output_buflen(&server.ssl)); + TEST_ASSERT(server.ssl.in_buf_len == + mbedtls_ssl_get_input_buflen(&server.ssl)); } #endif - if( options->cli_msg_len != 0 || options->srv_msg_len != 0 ) - { + if (options->cli_msg_len != 0 || options->srv_msg_len != 0) { /* Start data exchanging test */ - TEST_ASSERT( mbedtls_exchange_data( &(client.ssl), options->cli_msg_len, - options->expected_cli_fragments, - &(server.ssl), options->srv_msg_len, - options->expected_srv_fragments ) - == 0 ); + TEST_ASSERT(mbedtls_exchange_data(&(client.ssl), options->cli_msg_len, + options->expected_cli_fragments, + &(server.ssl), options->srv_msg_len, + options->expected_srv_fragments) + == 0); } #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( options->serialize == 1 ) - { - TEST_ASSERT( options->dtls == 1 ); + if (options->serialize == 1) { + TEST_ASSERT(options->dtls == 1); - TEST_ASSERT( mbedtls_ssl_context_save( &(server.ssl), NULL, - 0, &context_buf_len ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + TEST_ASSERT(mbedtls_ssl_context_save(&(server.ssl), NULL, + 0, &context_buf_len) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); - context_buf = mbedtls_calloc( 1, context_buf_len ); - TEST_ASSERT( context_buf != NULL ); + context_buf = mbedtls_calloc(1, context_buf_len); + TEST_ASSERT(context_buf != NULL); - TEST_ASSERT( mbedtls_ssl_context_save( &(server.ssl), context_buf, - context_buf_len, - &context_buf_len ) == 0 ); + TEST_ASSERT(mbedtls_ssl_context_save(&(server.ssl), context_buf, + context_buf_len, + &context_buf_len) == 0); - mbedtls_ssl_free( &(server.ssl) ); - mbedtls_ssl_init( &(server.ssl) ); + mbedtls_ssl_free(&(server.ssl)); + mbedtls_ssl_init(&(server.ssl)); - TEST_ASSERT( mbedtls_ssl_setup( &(server.ssl), &(server.conf) ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&(server.ssl), &(server.conf)) == 0); - mbedtls_ssl_set_bio( &( server.ssl ), &server_context, - mbedtls_mock_tcp_send_msg, - mbedtls_mock_tcp_recv_msg, - NULL ); + mbedtls_ssl_set_bio(&(server.ssl), &server_context, + mbedtls_mock_tcp_send_msg, + mbedtls_mock_tcp_recv_msg, + NULL); - mbedtls_ssl_set_user_data_p( &server.ssl, &server ); + mbedtls_ssl_set_user_data_p(&server.ssl, &server); #if defined(MBEDTLS_TIMING_C) - mbedtls_ssl_set_timer_cb( &server.ssl, &timer_server, - mbedtls_timing_set_delay, - mbedtls_timing_get_delay ); + mbedtls_ssl_set_timer_cb(&server.ssl, &timer_server, + mbedtls_timing_set_delay, + mbedtls_timing_get_delay); #endif #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - if( options->resize_buffers != 0 ) - { + if (options->resize_buffers != 0) { /* Ensure that the buffer sizes are appropriate before resizes */ - TEST_ASSERT( server.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN ); - TEST_ASSERT( server.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN ); + TEST_ASSERT(server.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN); + TEST_ASSERT(server.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN); } #endif - TEST_ASSERT( mbedtls_ssl_context_load( &( server.ssl ), context_buf, - context_buf_len ) == 0 ); + TEST_ASSERT(mbedtls_ssl_context_load(&(server.ssl), context_buf, + context_buf_len) == 0); #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) /* Validate buffer sizes after context deserialization */ - if( options->resize_buffers != 0 ) - { - TEST_ASSERT( server.ssl.out_buf_len == - mbedtls_ssl_get_output_buflen( &server.ssl ) ); - TEST_ASSERT( server.ssl.in_buf_len == - mbedtls_ssl_get_input_buflen( &server.ssl ) ); + if (options->resize_buffers != 0) { + TEST_ASSERT(server.ssl.out_buf_len == + mbedtls_ssl_get_output_buflen(&server.ssl)); + TEST_ASSERT(server.ssl.in_buf_len == + mbedtls_ssl_get_input_buflen(&server.ssl)); } #endif /* Retest writing/reading */ - if( options->cli_msg_len != 0 || options->srv_msg_len != 0 ) - { - TEST_ASSERT( mbedtls_exchange_data( &(client.ssl), - options->cli_msg_len, - options->expected_cli_fragments, - &(server.ssl), - options->srv_msg_len, - options->expected_srv_fragments ) - == 0 ); + if (options->cli_msg_len != 0 || options->srv_msg_len != 0) { + TEST_ASSERT(mbedtls_exchange_data(&(client.ssl), + options->cli_msg_len, + options->expected_cli_fragments, + &(server.ssl), + options->srv_msg_len, + options->expected_srv_fragments) + == 0); } } #endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - if( options->renegotiate ) - { + if (options->renegotiate) { /* Start test with renegotiation */ - TEST_ASSERT( server.ssl.renego_status == - MBEDTLS_SSL_INITIAL_HANDSHAKE ); - TEST_ASSERT( client.ssl.renego_status == - MBEDTLS_SSL_INITIAL_HANDSHAKE ); + TEST_ASSERT(server.ssl.renego_status == + MBEDTLS_SSL_INITIAL_HANDSHAKE); + TEST_ASSERT(client.ssl.renego_status == + MBEDTLS_SSL_INITIAL_HANDSHAKE); /* After calling this function for the server, it only sends a handshake * request. All renegotiation should happen during data exchanging */ - TEST_ASSERT( mbedtls_ssl_renegotiate( &(server.ssl) ) == 0 ); - TEST_ASSERT( server.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_PENDING ); - TEST_ASSERT( client.ssl.renego_status == - MBEDTLS_SSL_INITIAL_HANDSHAKE ); + TEST_ASSERT(mbedtls_ssl_renegotiate(&(server.ssl)) == 0); + TEST_ASSERT(server.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_PENDING); + TEST_ASSERT(client.ssl.renego_status == + MBEDTLS_SSL_INITIAL_HANDSHAKE); - TEST_ASSERT( exchange_data( &(client.ssl), &(server.ssl) ) == 0 ); - TEST_ASSERT( server.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_DONE ); - TEST_ASSERT( client.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_DONE ); + TEST_ASSERT(exchange_data(&(client.ssl), &(server.ssl)) == 0); + TEST_ASSERT(server.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_DONE); + TEST_ASSERT(client.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_DONE); /* After calling mbedtls_ssl_renegotiate for the client all renegotiation * should happen inside this function. However in this test, we cannot * perform simultaneous communication between client and server so this * function will return waiting error on the socket. All rest of * renegotiation should happen during data exchanging */ - ret = mbedtls_ssl_renegotiate( &(client.ssl) ); + ret = mbedtls_ssl_renegotiate(&(client.ssl)); #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - if( options->resize_buffers != 0 ) - { + if (options->resize_buffers != 0) { /* Ensure that the buffer sizes are appropriate before resizes */ - TEST_ASSERT( client.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN ); - TEST_ASSERT( client.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN ); + TEST_ASSERT(client.ssl.out_buf_len == MBEDTLS_SSL_OUT_BUFFER_LEN); + TEST_ASSERT(client.ssl.in_buf_len == MBEDTLS_SSL_IN_BUFFER_LEN); } #endif - TEST_ASSERT( ret == 0 || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); - TEST_ASSERT( server.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_DONE ); - TEST_ASSERT( client.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ); + TEST_ASSERT(ret == 0 || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); + TEST_ASSERT(server.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_DONE); + TEST_ASSERT(client.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS); - TEST_ASSERT( exchange_data( &(client.ssl), &(server.ssl) ) == 0 ); - TEST_ASSERT( server.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_DONE ); - TEST_ASSERT( client.ssl.renego_status == - MBEDTLS_SSL_RENEGOTIATION_DONE ); + TEST_ASSERT(exchange_data(&(client.ssl), &(server.ssl)) == 0); + TEST_ASSERT(server.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_DONE); + TEST_ASSERT(client.ssl.renego_status == + MBEDTLS_SSL_RENEGOTIATION_DONE); #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) /* Validate buffer sizes after renegotiation */ - if( options->resize_buffers != 0 ) - { - TEST_ASSERT( client.ssl.out_buf_len == - mbedtls_ssl_get_output_buflen( &client.ssl ) ); - TEST_ASSERT( client.ssl.in_buf_len == - mbedtls_ssl_get_input_buflen( &client.ssl ) ); - TEST_ASSERT( server.ssl.out_buf_len == - mbedtls_ssl_get_output_buflen( &server.ssl ) ); - TEST_ASSERT( server.ssl.in_buf_len == - mbedtls_ssl_get_input_buflen( &server.ssl ) ); + if (options->resize_buffers != 0) { + TEST_ASSERT(client.ssl.out_buf_len == + mbedtls_ssl_get_output_buflen(&client.ssl)); + TEST_ASSERT(client.ssl.in_buf_len == + mbedtls_ssl_get_input_buflen(&client.ssl)); + TEST_ASSERT(server.ssl.out_buf_len == + mbedtls_ssl_get_output_buflen(&server.ssl)); + TEST_ASSERT(server.ssl.in_buf_len == + mbedtls_ssl_get_input_buflen(&server.ssl)); } #endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ } #endif /* MBEDTLS_SSL_RENEGOTIATION */ - TEST_ASSERT( mbedtls_ssl_conf_get_user_data_p( &client.conf ) == &client ); - TEST_ASSERT( mbedtls_ssl_get_user_data_p( &client.ssl ) == &client ); - TEST_ASSERT( mbedtls_ssl_conf_get_user_data_p( &server.conf ) == &server ); - TEST_ASSERT( mbedtls_ssl_get_user_data_p( &server.ssl ) == &server ); + TEST_ASSERT(mbedtls_ssl_conf_get_user_data_p(&client.conf) == &client); + TEST_ASSERT(mbedtls_ssl_get_user_data_p(&client.ssl) == &client); + TEST_ASSERT(mbedtls_ssl_conf_get_user_data_p(&server.conf) == &server); + TEST_ASSERT(mbedtls_ssl_get_user_data_p(&server.ssl) == &server); exit: - mbedtls_endpoint_free( &client, options->dtls != 0 ? &client_context : NULL ); - mbedtls_endpoint_free( &server, options->dtls != 0 ? &server_context : NULL ); -#if defined (MBEDTLS_DEBUG_C) - if( options->cli_log_fun || options->srv_log_fun ) - { - mbedtls_debug_set_threshold( 0 ); + mbedtls_endpoint_free(&client, options->dtls != 0 ? &client_context : NULL); + mbedtls_endpoint_free(&server, options->dtls != 0 ? &server_context : NULL); +#if defined(MBEDTLS_DEBUG_C) + if (options->cli_log_fun || options->srv_log_fun) { + mbedtls_debug_set_threshold(0); } #endif #if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) - if( context_buf != NULL ) - mbedtls_free( context_buf ); + if (context_buf != NULL) { + mbedtls_free(context_buf); + } #endif - USE_PSA_DONE( ); + USE_PSA_DONE(); } #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ @@ -2483,7 +2382,7 @@ exit: */ int tweak_tls13_certificate_msg_vector_len( unsigned char *buf, unsigned char **end, int tweak, - int *expected_result, mbedtls_ssl_chk_buf_ptr_args *args ) + int *expected_result, mbedtls_ssl_chk_buf_ptr_args *args) { /* * The definition of the tweaks assume that the certificate list contains only @@ -2506,115 +2405,115 @@ int tweak_tls13_certificate_msg_vector_len( unsigned char *p_certificate_list_len = buf + 1 + certificate_request_context_len; unsigned char *certificate_list = p_certificate_list_len + 3; - size_t certificate_list_len = MBEDTLS_GET_UINT24_BE( p_certificate_list_len, 0 ); + size_t certificate_list_len = MBEDTLS_GET_UINT24_BE(p_certificate_list_len, 0); unsigned char *p_cert_data_len = certificate_list; unsigned char *cert_data = p_cert_data_len + 3; - size_t cert_data_len = MBEDTLS_GET_UINT24_BE( p_cert_data_len, 0 ); + size_t cert_data_len = MBEDTLS_GET_UINT24_BE(p_cert_data_len, 0); unsigned char *p_extensions_len = cert_data + cert_data_len; unsigned char *extensions = p_extensions_len + 2; - size_t extensions_len = MBEDTLS_GET_UINT16_BE( p_extensions_len, 0 ); + size_t extensions_len = MBEDTLS_GET_UINT16_BE(p_extensions_len, 0); *expected_result = MBEDTLS_ERR_SSL_DECODE_ERROR; - switch( tweak ) - { + switch (tweak) { case 1: - /* Failure when checking if the certificate request context length and - * certificate list length can be read - */ - *end = buf + 3; - set_chk_buf_ptr_args( args, buf, *end, 4 ); - break; + /* Failure when checking if the certificate request context length and + * certificate list length can be read + */ + *end = buf + 3; + set_chk_buf_ptr_args(args, buf, *end, 4); + break; case 2: - /* Invalid certificate request context length. - */ - *p_certificate_request_context_len = - certificate_request_context_len + 1; - reset_chk_buf_ptr_args( args ); - break; + /* Invalid certificate request context length. + */ + *p_certificate_request_context_len = + certificate_request_context_len + 1; + reset_chk_buf_ptr_args(args); + break; case 3: - /* Failure when checking if certificate_list data can be read. */ - MBEDTLS_PUT_UINT24_BE( certificate_list_len + 1, - p_certificate_list_len, 0 ); - set_chk_buf_ptr_args( args, certificate_list, *end, - certificate_list_len + 1 ); - break; + /* Failure when checking if certificate_list data can be read. */ + MBEDTLS_PUT_UINT24_BE(certificate_list_len + 1, + p_certificate_list_len, 0); + set_chk_buf_ptr_args(args, certificate_list, *end, + certificate_list_len + 1); + break; case 4: - /* Failure when checking if the cert_data length can be read. */ - MBEDTLS_PUT_UINT24_BE( 2, p_certificate_list_len, 0 ); - set_chk_buf_ptr_args( args, p_cert_data_len, certificate_list + 2, 3 ); - break; + /* Failure when checking if the cert_data length can be read. */ + MBEDTLS_PUT_UINT24_BE(2, p_certificate_list_len, 0); + set_chk_buf_ptr_args(args, p_cert_data_len, certificate_list + 2, 3); + break; case 5: - /* Failure when checking if cert_data data can be read. */ - MBEDTLS_PUT_UINT24_BE( certificate_list_len - 3 + 1, - p_cert_data_len, 0 ); - set_chk_buf_ptr_args( args, cert_data, - certificate_list + certificate_list_len, - certificate_list_len - 3 + 1 ); - break; + /* Failure when checking if cert_data data can be read. */ + MBEDTLS_PUT_UINT24_BE(certificate_list_len - 3 + 1, + p_cert_data_len, 0); + set_chk_buf_ptr_args(args, cert_data, + certificate_list + certificate_list_len, + certificate_list_len - 3 + 1); + break; case 6: - /* Failure when checking if the extensions length can be read. */ - MBEDTLS_PUT_UINT24_BE( certificate_list_len - extensions_len - 1, - p_certificate_list_len, 0 ); - set_chk_buf_ptr_args( args, p_extensions_len, - certificate_list + certificate_list_len - extensions_len - 1, 2 ); - break; + /* Failure when checking if the extensions length can be read. */ + MBEDTLS_PUT_UINT24_BE(certificate_list_len - extensions_len - 1, + p_certificate_list_len, 0); + set_chk_buf_ptr_args(args, p_extensions_len, + certificate_list + certificate_list_len - extensions_len - 1, 2); + break; case 7: - /* Failure when checking if extensions data can be read. */ - MBEDTLS_PUT_UINT16_BE( extensions_len + 1, p_extensions_len, 0 ); + /* Failure when checking if extensions data can be read. */ + MBEDTLS_PUT_UINT16_BE(extensions_len + 1, p_extensions_len, 0); - set_chk_buf_ptr_args( args, extensions, - certificate_list + certificate_list_len, extensions_len + 1 ); - break; + set_chk_buf_ptr_args(args, extensions, + certificate_list + certificate_list_len, extensions_len + 1); + break; default: - return( -1 ); + return -1; } - return( 0 ); + return 0; } #endif /* MBEDTLS_TEST_HOOKS */ #define ECJPAKE_TEST_PWD "bla" -#if defined( MBEDTLS_USE_PSA_CRYPTO ) -#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \ - ret = ( use_opaque_arg ) ? \ - mbedtls_ssl_set_hs_ecjpake_password_opaque( &ssl, pwd_slot ) : \ - mbedtls_ssl_set_hs_ecjpake_password( &ssl, pwd_string, pwd_len ); \ - TEST_EQUAL( ret, exp_ret_val ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) +#define ECJPAKE_TEST_SET_PASSWORD(exp_ret_val) \ + ret = (use_opaque_arg) ? \ + mbedtls_ssl_set_hs_ecjpake_password_opaque(&ssl, pwd_slot) : \ + mbedtls_ssl_set_hs_ecjpake_password(&ssl, pwd_string, pwd_len); \ + TEST_EQUAL(ret, exp_ret_val) #else -#define ECJPAKE_TEST_SET_PASSWORD( exp_ret_val ) \ - ret = mbedtls_ssl_set_hs_ecjpake_password( &ssl, \ - pwd_string, pwd_len ); \ - TEST_EQUAL( ret, exp_ret_val ) +#define ECJPAKE_TEST_SET_PASSWORD(exp_ret_val) \ + ret = mbedtls_ssl_set_hs_ecjpake_password(&ssl, \ + pwd_string, pwd_len); \ + TEST_EQUAL(ret, exp_ret_val) #endif -#define TEST_AVAILABLE_ECC( tls_id_, group_id_, psa_family_, psa_bits_ ) \ - TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_id_ ), \ - group_id_ ); \ - TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( group_id_ ), \ - tls_id_ ); \ - TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id_, \ - &psa_family, &psa_bits), PSA_SUCCESS ); \ - TEST_EQUAL( psa_family_, psa_family ); \ - TEST_EQUAL( psa_bits_, psa_bits ); +#define TEST_AVAILABLE_ECC(tls_id_, group_id_, psa_family_, psa_bits_) \ + TEST_EQUAL(mbedtls_ssl_get_ecp_group_id_from_tls_id(tls_id_), \ + group_id_); \ + TEST_EQUAL(mbedtls_ssl_get_tls_id_from_ecp_group_id(group_id_), \ + tls_id_); \ + TEST_EQUAL(mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id_, \ + &psa_family, &psa_bits), PSA_SUCCESS); \ + TEST_EQUAL(psa_family_, psa_family); \ + TEST_EQUAL(psa_bits_, psa_bits); -#define TEST_UNAVAILABLE_ECC( tls_id_, group_id_, psa_family_, psa_bits_ ) \ - TEST_EQUAL( mbedtls_ssl_get_ecp_group_id_from_tls_id( tls_id_ ), \ - MBEDTLS_ECP_DP_NONE ); \ - TEST_EQUAL( mbedtls_ssl_get_tls_id_from_ecp_group_id( group_id_ ), \ - 0 ); \ - TEST_EQUAL( mbedtls_ssl_get_psa_curve_info_from_tls_id( tls_id_, \ - &psa_family, &psa_bits), PSA_ERROR_NOT_SUPPORTED ); +#define TEST_UNAVAILABLE_ECC(tls_id_, group_id_, psa_family_, psa_bits_) \ + TEST_EQUAL(mbedtls_ssl_get_ecp_group_id_from_tls_id(tls_id_), \ + MBEDTLS_ECP_DP_NONE); \ + TEST_EQUAL(mbedtls_ssl_get_tls_id_from_ecp_group_id(group_id_), \ + 0); \ + TEST_EQUAL(mbedtls_ssl_get_psa_curve_info_from_tls_id(tls_id_, \ + &psa_family, &psa_bits), \ + PSA_ERROR_NOT_SUPPORTED); /* END_HEADER */ @@ -2631,56 +2530,56 @@ void test_callback_buffer_sanity() unsigned char input[MSGLEN]; unsigned char output[MSGLEN]; - memset( input, 0, sizeof(input) ); + memset(input, 0, sizeof(input)); /* Make sure calling put and get on NULL buffer results in error. */ - TEST_ASSERT( mbedtls_test_buffer_put( NULL, input, sizeof( input ) ) - == -1 ); - TEST_ASSERT( mbedtls_test_buffer_get( NULL, output, sizeof( output ) ) - == -1 ); - TEST_ASSERT( mbedtls_test_buffer_put( NULL, NULL, sizeof( input ) ) == -1 ); + TEST_ASSERT(mbedtls_test_buffer_put(NULL, input, sizeof(input)) + == -1); + TEST_ASSERT(mbedtls_test_buffer_get(NULL, output, sizeof(output)) + == -1); + TEST_ASSERT(mbedtls_test_buffer_put(NULL, NULL, sizeof(input)) == -1); - TEST_ASSERT( mbedtls_test_buffer_put( NULL, NULL, 0 ) == -1 ); - TEST_ASSERT( mbedtls_test_buffer_get( NULL, NULL, 0 ) == -1 ); + TEST_ASSERT(mbedtls_test_buffer_put(NULL, NULL, 0) == -1); + TEST_ASSERT(mbedtls_test_buffer_get(NULL, NULL, 0) == -1); /* Make sure calling put and get on a buffer that hasn't been set up results * in error. */ - mbedtls_test_buffer_init( &buf ); + mbedtls_test_buffer_init(&buf); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, input, sizeof( input ) ) == -1 ); - TEST_ASSERT( mbedtls_test_buffer_get( &buf, output, sizeof( output ) ) - == -1 ); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, NULL, sizeof( input ) ) == -1 ); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, input, sizeof(input)) == -1); + TEST_ASSERT(mbedtls_test_buffer_get(&buf, output, sizeof(output)) + == -1); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, NULL, sizeof(input)) == -1); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, NULL, 0 ) == -1 ); - TEST_ASSERT( mbedtls_test_buffer_get( &buf, NULL, 0 ) == -1 ); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, NULL, 0) == -1); + TEST_ASSERT(mbedtls_test_buffer_get(&buf, NULL, 0) == -1); /* Make sure calling put and get on NULL input only results in * error if the length is not zero, and that a NULL output is valid for data * dropping. */ - TEST_ASSERT( mbedtls_test_buffer_setup( &buf, sizeof( input ) ) == 0 ); + TEST_ASSERT(mbedtls_test_buffer_setup(&buf, sizeof(input)) == 0); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, NULL, sizeof( input ) ) == -1 ); - TEST_ASSERT( mbedtls_test_buffer_get( &buf, NULL, sizeof( output ) ) - == 0 ); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, NULL, 0 ) == 0 ); - TEST_ASSERT( mbedtls_test_buffer_get( &buf, NULL, 0 ) == 0 ); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, NULL, sizeof(input)) == -1); + TEST_ASSERT(mbedtls_test_buffer_get(&buf, NULL, sizeof(output)) + == 0); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, NULL, 0) == 0); + TEST_ASSERT(mbedtls_test_buffer_get(&buf, NULL, 0) == 0); /* Make sure calling put several times in the row is safe */ - TEST_ASSERT( mbedtls_test_buffer_put( &buf, input, sizeof( input ) ) - == sizeof( input ) ); - TEST_ASSERT( mbedtls_test_buffer_get( &buf, output, 2 ) == 2 ); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, input, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, input, 2 ) == 1 ); - TEST_ASSERT( mbedtls_test_buffer_put( &buf, input, 2 ) == 0 ); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, input, sizeof(input)) + == sizeof(input)); + TEST_ASSERT(mbedtls_test_buffer_get(&buf, output, 2) == 2); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, input, 1) == 1); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, input, 2) == 1); + TEST_ASSERT(mbedtls_test_buffer_put(&buf, input, 2) == 0); exit: - mbedtls_test_buffer_free( &buf ); + mbedtls_test_buffer_free(&buf); } /* END_CASE */ @@ -2698,9 +2597,9 @@ exit: */ /* BEGIN_CASE */ -void test_callback_buffer( int size, int put1, int put1_ret, - int get1, int get1_ret, int put2, int put2_ret, - int get2, int get2_ret ) +void test_callback_buffer(int size, int put1, int put1_ret, + int get1, int get1_ret, int put2, int put2_ret, + int get2, int get2_ret) { enum { ROUNDS = 2 }; size_t put[ROUNDS]; @@ -2708,96 +2607,91 @@ void test_callback_buffer( int size, int put1, int put1_ret, size_t get[ROUNDS]; int get_ret[ROUNDS]; mbedtls_test_buffer buf; - unsigned char* input = NULL; + unsigned char *input = NULL; size_t input_len; - unsigned char* output = NULL; + unsigned char *output = NULL; size_t output_len; size_t i, j, written, read; - mbedtls_test_buffer_init( &buf ); - TEST_ASSERT( mbedtls_test_buffer_setup( &buf, size ) == 0 ); + mbedtls_test_buffer_init(&buf); + TEST_ASSERT(mbedtls_test_buffer_setup(&buf, size) == 0); /* Check the sanity of input parameters and initialise local variables. That * is, ensure that the amount of data is not negative and that we are not * expecting more to put or get than we actually asked for. */ - TEST_ASSERT( put1 >= 0 ); + TEST_ASSERT(put1 >= 0); put[0] = put1; put_ret[0] = put1_ret; - TEST_ASSERT( put1_ret <= put1 ); - TEST_ASSERT( put2 >= 0 ); + TEST_ASSERT(put1_ret <= put1); + TEST_ASSERT(put2 >= 0); put[1] = put2; put_ret[1] = put2_ret; - TEST_ASSERT( put2_ret <= put2 ); + TEST_ASSERT(put2_ret <= put2); - TEST_ASSERT( get1 >= 0 ); + TEST_ASSERT(get1 >= 0); get[0] = get1; get_ret[0] = get1_ret; - TEST_ASSERT( get1_ret <= get1 ); - TEST_ASSERT( get2 >= 0 ); + TEST_ASSERT(get1_ret <= get1); + TEST_ASSERT(get2 >= 0); get[1] = get2; get_ret[1] = get2_ret; - TEST_ASSERT( get2_ret <= get2 ); + TEST_ASSERT(get2_ret <= get2); input_len = 0; /* Calculate actual input and output lengths */ - for( j = 0; j < ROUNDS; j++ ) - { - if( put_ret[j] > 0 ) - { + for (j = 0; j < ROUNDS; j++) { + if (put_ret[j] > 0) { input_len += put_ret[j]; } } /* In order to always have a valid pointer we always allocate at least 1 * byte. */ - if( input_len == 0 ) + if (input_len == 0) { input_len = 1; - ASSERT_ALLOC( input, input_len ); + } + ASSERT_ALLOC(input, input_len); output_len = 0; - for( j = 0; j < ROUNDS; j++ ) - { - if( get_ret[j] > 0 ) - { + for (j = 0; j < ROUNDS; j++) { + if (get_ret[j] > 0) { output_len += get_ret[j]; } } - TEST_ASSERT( output_len <= input_len ); + TEST_ASSERT(output_len <= input_len); /* In order to always have a valid pointer we always allocate at least 1 * byte. */ - if( output_len == 0 ) + if (output_len == 0) { output_len = 1; - ASSERT_ALLOC( output, output_len ); + } + ASSERT_ALLOC(output, output_len); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < input_len; i++ ) - { + for (i = 0; i < input_len; i++) { input[i] = i & 0xFF; } written = read = 0; - for( j = 0; j < ROUNDS; j++ ) - { - TEST_ASSERT( put_ret[j] == mbedtls_test_buffer_put( &buf, - input + written, put[j] ) ); + for (j = 0; j < ROUNDS; j++) { + TEST_ASSERT(put_ret[j] == mbedtls_test_buffer_put(&buf, + input + written, put[j])); written += put_ret[j]; - TEST_ASSERT( get_ret[j] == mbedtls_test_buffer_get( &buf, - output + read, get[j] ) ); + TEST_ASSERT(get_ret[j] == mbedtls_test_buffer_get(&buf, + output + read, get[j])); read += get_ret[j]; - TEST_ASSERT( read <= written ); - if( get_ret[j] > 0 ) - { - TEST_ASSERT( memcmp( output + read - get_ret[j], - input + read - get_ret[j], get_ret[j] ) - == 0 ); + TEST_ASSERT(read <= written); + if (get_ret[j] > 0) { + TEST_ASSERT(memcmp(output + read - get_ret[j], + input + read - get_ret[j], get_ret[j]) + == 0); } } exit: - mbedtls_free( input ); - mbedtls_free( output ); - mbedtls_test_buffer_free( &buf ); + mbedtls_free(input); + mbedtls_free(output); + mbedtls_test_buffer_free(&buf); } /* END_CASE */ @@ -2807,30 +2701,30 @@ exit: */ /* BEGIN_CASE */ -void ssl_mock_sanity( ) +void ssl_mock_sanity() { enum { MSGLEN = 105 }; unsigned char message[MSGLEN] = { 0 }; unsigned char received[MSGLEN] = { 0 }; mbedtls_mock_socket socket; - mbedtls_mock_socket_init( &socket ); - TEST_ASSERT( mbedtls_mock_tcp_send_b( &socket, message, MSGLEN ) < 0 ); - mbedtls_mock_socket_close( &socket ); - mbedtls_mock_socket_init( &socket ); - TEST_ASSERT( mbedtls_mock_tcp_recv_b( &socket, received, MSGLEN ) < 0 ); - mbedtls_mock_socket_close( &socket ); + mbedtls_mock_socket_init(&socket); + TEST_ASSERT(mbedtls_mock_tcp_send_b(&socket, message, MSGLEN) < 0); + mbedtls_mock_socket_close(&socket); + mbedtls_mock_socket_init(&socket); + TEST_ASSERT(mbedtls_mock_tcp_recv_b(&socket, received, MSGLEN) < 0); + mbedtls_mock_socket_close(&socket); - mbedtls_mock_socket_init( &socket ); - TEST_ASSERT( mbedtls_mock_tcp_send_nb( &socket, message, MSGLEN ) < 0 ); - mbedtls_mock_socket_close( &socket ); - mbedtls_mock_socket_init( &socket ); - TEST_ASSERT( mbedtls_mock_tcp_recv_nb( &socket, received, MSGLEN ) < 0 ); - mbedtls_mock_socket_close( &socket ); + mbedtls_mock_socket_init(&socket); + TEST_ASSERT(mbedtls_mock_tcp_send_nb(&socket, message, MSGLEN) < 0); + mbedtls_mock_socket_close(&socket); + mbedtls_mock_socket_init(&socket); + TEST_ASSERT(mbedtls_mock_tcp_recv_nb(&socket, received, MSGLEN) < 0); + mbedtls_mock_socket_close(&socket); exit: - mbedtls_mock_socket_close( &socket ); + mbedtls_mock_socket_close(&socket); } /* END_CASE */ @@ -2840,7 +2734,7 @@ exit: */ /* BEGIN_CASE */ -void ssl_mock_tcp( int blocking ) +void ssl_mock_tcp(int blocking) { enum { MSGLEN = 105 }; enum { BUFLEN = MSGLEN / 5 }; @@ -2854,94 +2748,76 @@ void ssl_mock_tcp( int blocking ) mbedtls_ssl_recv_t *recv; unsigned i; - if( blocking == 0 ) - { + if (blocking == 0) { send = mbedtls_mock_tcp_send_nb; recv = mbedtls_mock_tcp_recv_nb; - } - else - { + } else { send = mbedtls_mock_tcp_send_b; recv = mbedtls_mock_tcp_recv_b; } - mbedtls_mock_socket_init( &client ); - mbedtls_mock_socket_init( &server ); + mbedtls_mock_socket_init(&client); + mbedtls_mock_socket_init(&server); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } /* Make sure that sending a message takes a few iterations. */ - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, BUFLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, BUFLEN)); /* Send the message to the server */ send_ret = recv_ret = 1; written = read = 0; - while( send_ret != 0 || recv_ret != 0 ) - { - send_ret = send( &client, message + written, MSGLEN - written ); + while (send_ret != 0 || recv_ret != 0) { + send_ret = send(&client, message + written, MSGLEN - written); - TEST_ASSERT( send_ret >= 0 ); - TEST_ASSERT( send_ret <= BUFLEN ); + TEST_ASSERT(send_ret >= 0); + TEST_ASSERT(send_ret <= BUFLEN); written += send_ret; /* If the buffer is full we can test blocking and non-blocking send */ - if ( send_ret == BUFLEN ) - { - int blocking_ret = send( &client, message , 1 ); - if ( blocking ) - { - TEST_ASSERT( blocking_ret == 0 ); - } - else - { - TEST_ASSERT( blocking_ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + if (send_ret == BUFLEN) { + int blocking_ret = send(&client, message, 1); + if (blocking) { + TEST_ASSERT(blocking_ret == 0); + } else { + TEST_ASSERT(blocking_ret == MBEDTLS_ERR_SSL_WANT_WRITE); } } - recv_ret = recv( &server, received + read, MSGLEN - read ); + recv_ret = recv(&server, received + read, MSGLEN - read); /* The result depends on whether any data was sent */ - if ( send_ret > 0 ) - { - TEST_ASSERT( recv_ret > 0 ); - TEST_ASSERT( recv_ret <= BUFLEN ); + if (send_ret > 0) { + TEST_ASSERT(recv_ret > 0); + TEST_ASSERT(recv_ret <= BUFLEN); read += recv_ret; - } - else if( blocking ) - { - TEST_ASSERT( recv_ret == 0 ); - } - else - { - TEST_ASSERT( recv_ret == MBEDTLS_ERR_SSL_WANT_READ ); + } else if (blocking) { + TEST_ASSERT(recv_ret == 0); + } else { + TEST_ASSERT(recv_ret == MBEDTLS_ERR_SSL_WANT_READ); recv_ret = 0; } /* If the buffer is empty we can test blocking and non-blocking read */ - if ( recv_ret == BUFLEN ) - { - int blocking_ret = recv( &server, received, 1 ); - if ( blocking ) - { - TEST_ASSERT( blocking_ret == 0 ); - } - else - { - TEST_ASSERT( blocking_ret == MBEDTLS_ERR_SSL_WANT_READ ); + if (recv_ret == BUFLEN) { + int blocking_ret = recv(&server, received, 1); + if (blocking) { + TEST_ASSERT(blocking_ret == 0); + } else { + TEST_ASSERT(blocking_ret == MBEDTLS_ERR_SSL_WANT_READ); } } } - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); exit: - mbedtls_mock_socket_close( &client ); - mbedtls_mock_socket_close( &server ); + mbedtls_mock_socket_close(&client); + mbedtls_mock_socket_close(&server); } /* END_CASE */ @@ -2952,7 +2828,7 @@ exit: */ /* BEGIN_CASE */ -void ssl_mock_tcp_interleaving( int blocking ) +void ssl_mock_tcp_interleaving(int blocking) { enum { ROUNDS = 2 }; enum { MSGLEN = 105 }; @@ -2969,305 +2845,283 @@ void ssl_mock_tcp_interleaving( int blocking ) mbedtls_ssl_send_t *send; mbedtls_ssl_recv_t *recv; - if( blocking == 0 ) - { + if (blocking == 0) { send = mbedtls_mock_tcp_send_nb; recv = mbedtls_mock_tcp_recv_nb; - } - else - { + } else { send = mbedtls_mock_tcp_send_b; recv = mbedtls_mock_tcp_recv_b; } - mbedtls_mock_socket_init( &client ); - mbedtls_mock_socket_init( &server ); + mbedtls_mock_socket_init(&client); + mbedtls_mock_socket_init(&server); /* Fill up the buffers with structured data so that unwanted changes * can be detected */ - for( i = 0; i < ROUNDS; i++ ) - { - for( j = 0; j < MSGLEN; j++ ) - { - message[i][j] = ( i * MSGLEN + j ) & 0xFF; + for (i = 0; i < ROUNDS; i++) { + for (j = 0; j < MSGLEN; j++) { + message[i][j] = (i * MSGLEN + j) & 0xFF; } } /* Make sure that sending a message takes a few iterations. */ - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, BUFLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, BUFLEN)); /* Send the message from both sides, interleaving. */ progress = 1; - for( i = 0; i < ROUNDS; i++ ) - { + for (i = 0; i < ROUNDS; i++) { written[i] = 0; read[i] = 0; } /* This loop does not stop as long as there was a successful write or read * of at least one byte on either side. */ - while( progress != 0 ) - { + while (progress != 0) { mbedtls_mock_socket *socket; - for( i = 0; i < ROUNDS; i++ ) - { + for (i = 0; i < ROUNDS; i++) { /* First sending is from the client */ - socket = ( i % 2 == 0 ) ? ( &client ) : ( &server ); + socket = (i % 2 == 0) ? (&client) : (&server); - send_ret[i] = send( socket, message[i] + written[i], - MSGLEN - written[i] ); - TEST_ASSERT( send_ret[i] >= 0 ); - TEST_ASSERT( send_ret[i] <= BUFLEN ); + send_ret[i] = send(socket, message[i] + written[i], + MSGLEN - written[i]); + TEST_ASSERT(send_ret[i] >= 0); + TEST_ASSERT(send_ret[i] <= BUFLEN); written[i] += send_ret[i]; /* If the buffer is full we can test blocking and non-blocking * send */ - if ( send_ret[i] == BUFLEN ) - { - int blocking_ret = send( socket, message[i] , 1 ); - if ( blocking ) - { - TEST_ASSERT( blocking_ret == 0 ); - } - else - { - TEST_ASSERT( blocking_ret == MBEDTLS_ERR_SSL_WANT_WRITE ); + if (send_ret[i] == BUFLEN) { + int blocking_ret = send(socket, message[i], 1); + if (blocking) { + TEST_ASSERT(blocking_ret == 0); + } else { + TEST_ASSERT(blocking_ret == MBEDTLS_ERR_SSL_WANT_WRITE); } } } - for( i = 0; i < ROUNDS; i++ ) - { + for (i = 0; i < ROUNDS; i++) { /* First receiving is from the server */ - socket = ( i % 2 == 0 ) ? ( &server ) : ( &client ); + socket = (i % 2 == 0) ? (&server) : (&client); - recv_ret[i] = recv( socket, received[i] + read[i], - MSGLEN - read[i] ); + recv_ret[i] = recv(socket, received[i] + read[i], + MSGLEN - read[i]); /* The result depends on whether any data was sent */ - if ( send_ret[i] > 0 ) - { - TEST_ASSERT( recv_ret[i] > 0 ); - TEST_ASSERT( recv_ret[i] <= BUFLEN ); + if (send_ret[i] > 0) { + TEST_ASSERT(recv_ret[i] > 0); + TEST_ASSERT(recv_ret[i] <= BUFLEN); read[i] += recv_ret[i]; - } - else if( blocking ) - { - TEST_ASSERT( recv_ret[i] == 0 ); - } - else - { - TEST_ASSERT( recv_ret[i] == MBEDTLS_ERR_SSL_WANT_READ ); + } else if (blocking) { + TEST_ASSERT(recv_ret[i] == 0); + } else { + TEST_ASSERT(recv_ret[i] == MBEDTLS_ERR_SSL_WANT_READ); recv_ret[i] = 0; } /* If the buffer is empty we can test blocking and non-blocking * read */ - if ( recv_ret[i] == BUFLEN ) - { - int blocking_ret = recv( socket, received[i], 1 ); - if ( blocking ) - { - TEST_ASSERT( blocking_ret == 0 ); - } - else - { - TEST_ASSERT( blocking_ret == MBEDTLS_ERR_SSL_WANT_READ ); + if (recv_ret[i] == BUFLEN) { + int blocking_ret = recv(socket, received[i], 1); + if (blocking) { + TEST_ASSERT(blocking_ret == 0); + } else { + TEST_ASSERT(blocking_ret == MBEDTLS_ERR_SSL_WANT_READ); } } } progress = 0; - for( i = 0; i < ROUNDS; i++ ) - { + for (i = 0; i < ROUNDS; i++) { progress += send_ret[i] + recv_ret[i]; } } - for( i = 0; i < ROUNDS; i++ ) - TEST_ASSERT( memcmp( message[i], received[i], MSGLEN ) == 0 ); + for (i = 0; i < ROUNDS; i++) { + TEST_ASSERT(memcmp(message[i], received[i], MSGLEN) == 0); + } exit: - mbedtls_mock_socket_close( &client ); - mbedtls_mock_socket_close( &server ); + mbedtls_mock_socket_close(&client); + mbedtls_mock_socket_close(&server); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_queue_sanity( ) +void ssl_message_queue_sanity() { mbedtls_test_message_queue queue; /* Trying to push/pull to an empty queue */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( NULL, 1 ) - == MBEDTLS_TEST_ERROR_ARG_NULL ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( NULL, 1 ) - == MBEDTLS_TEST_ERROR_ARG_NULL ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(NULL, 1) + == MBEDTLS_TEST_ERROR_ARG_NULL); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(NULL, 1) + == MBEDTLS_TEST_ERROR_ARG_NULL); - TEST_ASSERT( mbedtls_test_message_queue_setup( &queue, 3 ) == 0 ); - TEST_ASSERT( queue.capacity == 3 ); - TEST_ASSERT( queue.num == 0 ); + TEST_ASSERT(mbedtls_test_message_queue_setup(&queue, 3) == 0); + TEST_ASSERT(queue.capacity == 3); + TEST_ASSERT(queue.num == 0); exit: - mbedtls_test_message_queue_free( &queue ); + mbedtls_test_message_queue_free(&queue); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_queue_basic( ) +void ssl_message_queue_basic() { mbedtls_test_message_queue queue; - TEST_ASSERT( mbedtls_test_message_queue_setup( &queue, 3 ) == 0 ); + TEST_ASSERT(mbedtls_test_message_queue_setup(&queue, 3) == 0); /* Sanity test - 3 pushes and 3 pops with sufficient space */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); - TEST_ASSERT( queue.capacity == 3 ); - TEST_ASSERT( queue.num == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); - TEST_ASSERT( queue.capacity == 3 ); - TEST_ASSERT( queue.num == 2 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 2 ) == 2 ); - TEST_ASSERT( queue.capacity == 3 ); - TEST_ASSERT( queue.num == 3 ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); + TEST_ASSERT(queue.capacity == 3); + TEST_ASSERT(queue.num == 1); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); + TEST_ASSERT(queue.capacity == 3); + TEST_ASSERT(queue.num == 2); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 2) == 2); + TEST_ASSERT(queue.capacity == 3); + TEST_ASSERT(queue.num == 3); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 2 ) == 2 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 2) == 2); exit: - mbedtls_test_message_queue_free( &queue ); + mbedtls_test_message_queue_free(&queue); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_queue_overflow_underflow( ) +void ssl_message_queue_overflow_underflow() { mbedtls_test_message_queue queue; - TEST_ASSERT( mbedtls_test_message_queue_setup( &queue, 3 ) == 0 ); + TEST_ASSERT(mbedtls_test_message_queue_setup(&queue, 3) == 0); /* 4 pushes (last one with an error), 4 pops (last one with an error) */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 2 ) == 2 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 3 ) - == MBEDTLS_ERR_SSL_WANT_WRITE ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 2) == 2); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 3) + == MBEDTLS_ERR_SSL_WANT_WRITE); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 2 ) == 2 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 2) == 2); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) - == MBEDTLS_ERR_SSL_WANT_READ ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) + == MBEDTLS_ERR_SSL_WANT_READ); exit: - mbedtls_test_message_queue_free( &queue ); + mbedtls_test_message_queue_free(&queue); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_queue_interleaved( ) +void ssl_message_queue_interleaved() { mbedtls_test_message_queue queue; - TEST_ASSERT( mbedtls_test_message_queue_setup( &queue, 3 ) == 0 ); + TEST_ASSERT(mbedtls_test_message_queue_setup(&queue, 3) == 0); /* Interleaved test - [2 pushes, 1 pop] twice, and then two pops * (to wrap around the buffer) */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 1 ) == 1 ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 1) == 1); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 2 ) == 2 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 3 ) == 3 ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 2) == 2); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 3) == 3); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 1 ) == 1 ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 2 ) == 2 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 1) == 1); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 2) == 2); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 5 ) == 5 ); - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, 8 ) == 8 ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 5) == 5); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, 8) == 8); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 3 ) == 3 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 3) == 3); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 5 ) == 5 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 5) == 5); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, 8 ) == 8 ); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, 8) == 8); exit: - mbedtls_test_message_queue_free( &queue ); + mbedtls_test_message_queue_free(&queue); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_queue_insufficient_buffer( ) +void ssl_message_queue_insufficient_buffer() { mbedtls_test_message_queue queue; size_t message_len = 10; size_t buffer_len = 5; - TEST_ASSERT( mbedtls_test_message_queue_setup( &queue, 1 ) == 0 ); + TEST_ASSERT(mbedtls_test_message_queue_setup(&queue, 1) == 0); /* Popping without a sufficient buffer */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( &queue, message_len ) - == (int) message_len ); - TEST_ASSERT( mbedtls_test_message_queue_pop_info( &queue, buffer_len ) - == (int) buffer_len ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&queue, message_len) + == (int) message_len); + TEST_ASSERT(mbedtls_test_message_queue_pop_info(&queue, buffer_len) + == (int) buffer_len); exit: - mbedtls_test_message_queue_free( &queue ); + mbedtls_test_message_queue_free(&queue); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_uninitialized( ) +void ssl_message_mock_uninitialized() { enum { MSGLEN = 10 }; - unsigned char message[MSGLEN] = {0}, received[MSGLEN]; + unsigned char message[MSGLEN] = { 0 }, received[MSGLEN]; mbedtls_mock_socket client, server; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); /* Send with a NULL context */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( NULL, message, MSGLEN ) - == MBEDTLS_TEST_ERROR_CONTEXT_ERROR ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(NULL, message, MSGLEN) + == MBEDTLS_TEST_ERROR_CONTEXT_ERROR); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( NULL, message, MSGLEN ) - == MBEDTLS_TEST_ERROR_CONTEXT_ERROR ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(NULL, message, MSGLEN) + == MBEDTLS_TEST_ERROR_CONTEXT_ERROR); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 1, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 1, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 1, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 1, + &client, + &client_context) == 0); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, MSGLEN ) - == MBEDTLS_TEST_ERROR_SEND_FAILED ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, MSGLEN) + == MBEDTLS_TEST_ERROR_SEND_FAILED); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_READ ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_ERR_SSL_WANT_READ); /* Push directly to a queue to later simulate a disconnected behavior */ - TEST_ASSERT( mbedtls_test_message_queue_push_info( &server_queue, MSGLEN ) - == MSGLEN ); + TEST_ASSERT(mbedtls_test_message_queue_push_info(&server_queue, MSGLEN) + == MSGLEN); /* Test if there's an error when trying to read from a disconnected * socket */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_TEST_ERROR_RECV_FAILED ); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_TEST_ERROR_RECV_FAILED); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_basic( ) +void ssl_message_mock_basic() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3275,54 +3129,53 @@ void ssl_message_mock_basic( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 1, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 1, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 1, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 1, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN)); /* Send the message to the server */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); /* Read from the server */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); - memset( received, 0, MSGLEN ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); + memset(received, 0, MSGLEN); /* Send the message to the client */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &server_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&server_context, message, + MSGLEN) == MSGLEN); /* Read from the client */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &client_context, received, MSGLEN ) - == MSGLEN ); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&client_context, received, MSGLEN) + == MSGLEN); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_queue_overflow_underflow( ) +void ssl_message_mock_queue_overflow_underflow() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3330,57 +3183,56 @@ void ssl_message_mock_queue_overflow_underflow( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 2, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 2, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 2, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 2, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN*2 ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN*2)); /* Send three message to the server, last one with an error */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN - 1 ) == MSGLEN - 1 ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN - 1) == MSGLEN - 1); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_WRITE ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) + == MBEDTLS_ERR_SSL_WANT_WRITE); /* Read three messages from the server, last one with an error */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, - MSGLEN - 1 ) == MSGLEN - 1 ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, + MSGLEN - 1) == MSGLEN - 1); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_READ ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_ERR_SSL_WANT_READ); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_socket_overflow( ) +void ssl_message_mock_socket_overflow() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3388,48 +3240,47 @@ void ssl_message_mock_socket_overflow( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 2, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 2, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 2, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 2, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN)); /* Send two message to the server, second one with an error */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) - == MBEDTLS_TEST_ERROR_SEND_FAILED ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) + == MBEDTLS_TEST_ERROR_SEND_FAILED); /* Read the only message from the server */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_truncated( ) +void ssl_message_mock_truncated() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3437,58 +3288,57 @@ void ssl_message_mock_truncated( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 2, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 2, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 2, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 2, + &client, + &client_context) == 0); - memset( received, 0, MSGLEN ); + memset(received, 0, MSGLEN); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - 2 * MSGLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + 2 * MSGLEN)); /* Send two messages to the server, the second one small enough to fit in the * receiver's buffer. */ - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN / 2 ) == MSGLEN / 2 ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN / 2) == MSGLEN / 2); /* Read a truncated message from the server */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN/2 ) - == MSGLEN/2 ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN/2) + == MSGLEN/2); /* Test that the first half of the message is valid, and second one isn't */ - TEST_ASSERT( memcmp( message, received, MSGLEN/2 ) == 0 ); - TEST_ASSERT( memcmp( message + MSGLEN/2, received + MSGLEN/2, MSGLEN/2 ) - != 0 ); - memset( received, 0, MSGLEN ); + TEST_ASSERT(memcmp(message, received, MSGLEN/2) == 0); + TEST_ASSERT(memcmp(message + MSGLEN/2, received + MSGLEN/2, MSGLEN/2) + != 0); + memset(received, 0, MSGLEN); /* Read a full message from the server */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN/2 ) - == MSGLEN / 2 ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN/2) + == MSGLEN / 2); /* Test that the first half of the message is valid */ - TEST_ASSERT( memcmp( message, received, MSGLEN/2 ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN/2) == 0); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_socket_read_error( ) +void ssl_message_mock_socket_read_error() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3496,53 +3346,52 @@ void ssl_message_mock_socket_read_error( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 1, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 1, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 1, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 1, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN)); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); /* Force a read error by disconnecting the socket by hand */ server.status = 0; - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_TEST_ERROR_RECV_FAILED ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_TEST_ERROR_RECV_FAILED); /* Return to a valid state */ server.status = MBEDTLS_MOCK_SOCKET_CONNECTED; - memset( received, 0, sizeof( received ) ); + memset(received, 0, sizeof(received)); /* Test that even though the server tried to read once disconnected, the * continuity is preserved */ - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_interleaved_one_way( ) +void ssl_message_mock_interleaved_one_way() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3550,59 +3399,56 @@ void ssl_message_mock_interleaved_one_way( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 3, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 3, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 3, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 3, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN*3 ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN*3)); /* Interleaved test - [2 sends, 1 read] twice, and then two reads * (to wrap around the buffer) */ - for( i = 0; i < 2; i++ ) - { - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + for (i = 0; i < 2; i++) { + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, - MSGLEN ) == MSGLEN ); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); - memset( received, 0, sizeof( received ) ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, + MSGLEN) == MSGLEN); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); + memset(received, 0, sizeof(received)); } - for( i = 0; i < 2; i++ ) - { - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, - MSGLEN ) == MSGLEN ); + for (i = 0; i < 2; i++) { + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, + MSGLEN) == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); } - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_READ ); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_ERR_SSL_WANT_READ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_message_mock_interleaved_two_ways( ) +void ssl_message_mock_interleaved_two_ways() { enum { MSGLEN = 10 }; unsigned char message[MSGLEN], received[MSGLEN]; @@ -3610,132 +3456,128 @@ void ssl_message_mock_interleaved_two_ways( ) unsigned i; mbedtls_test_message_queue server_queue, client_queue; mbedtls_test_message_socket_context server_context, client_context; - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_message_socket_setup( &server_queue, &client_queue, 3, - &server, - &server_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&server_queue, &client_queue, 3, + &server, + &server_context) == 0); - TEST_ASSERT( mbedtls_message_socket_setup( &client_queue, &server_queue, 3, - &client, - &client_context ) == 0 ); + TEST_ASSERT(mbedtls_message_socket_setup(&client_queue, &server_queue, 3, + &client, + &client_context) == 0); /* Fill up the buffer with structured data so that unwanted changes * can be detected */ - for( i = 0; i < MSGLEN; i++ ) - { + for (i = 0; i < MSGLEN; i++) { message[i] = i & 0xFF; } - TEST_ASSERT( 0 == mbedtls_mock_socket_connect( &client, &server, - MSGLEN*3 ) ); + TEST_ASSERT(0 == mbedtls_mock_socket_connect(&client, &server, + MSGLEN*3)); /* Interleaved test - [2 sends, 1 read] twice, both ways, and then two reads * (to wrap around the buffer) both ways. */ - for( i = 0; i < 2; i++ ) - { - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + for (i = 0; i < 2; i++) { + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &client_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&client_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &server_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&server_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_send_msg( &server_context, message, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_send_msg(&server_context, message, + MSGLEN) == MSGLEN); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, + MSGLEN) == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - memset( received, 0, sizeof( received ) ); + memset(received, 0, sizeof(received)); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &client_context, received, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&client_context, received, + MSGLEN) == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); - memset( received, 0, sizeof( received ) ); + memset(received, 0, sizeof(received)); } - for( i = 0; i < 2; i++ ) - { - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, - MSGLEN ) == MSGLEN ); + for (i = 0; i < 2; i++) { + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, + MSGLEN) == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); - memset( received, 0, sizeof( received ) ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); + memset(received, 0, sizeof(received)); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &client_context, received, - MSGLEN ) == MSGLEN ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&client_context, received, + MSGLEN) == MSGLEN); - TEST_ASSERT( memcmp( message, received, MSGLEN ) == 0 ); - memset( received, 0, sizeof( received ) ); + TEST_ASSERT(memcmp(message, received, MSGLEN) == 0); + memset(received, 0, sizeof(received)); } - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &server_context, received, MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_READ ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&server_context, received, MSGLEN) + == MBEDTLS_ERR_SSL_WANT_READ); - TEST_ASSERT( mbedtls_mock_tcp_recv_msg( &client_context, received, MSGLEN ) - == MBEDTLS_ERR_SSL_WANT_READ ); - exit: - mbedtls_message_socket_close( &server_context ); - mbedtls_message_socket_close( &client_context ); + TEST_ASSERT(mbedtls_mock_tcp_recv_msg(&client_context, received, MSGLEN) + == MBEDTLS_ERR_SSL_WANT_READ); +exit: + mbedtls_message_socket_close(&server_context); + mbedtls_message_socket_close(&client_context); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_DTLS_ANTI_REPLAY */ -void ssl_dtls_replay( data_t * prevs, data_t * new, int ret ) +void ssl_dtls_replay(data_t *prevs, data_t *new, int ret) { uint32_t len = 0; mbedtls_ssl_context ssl; mbedtls_ssl_config conf; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); - TEST_ASSERT( mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) == 0 ); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_DATAGRAM, + MBEDTLS_SSL_PRESET_DEFAULT) == 0); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); /* Read previous record numbers */ - for( len = 0; len < prevs->len; len += 6 ) - { - memcpy( ssl.in_ctr + 2, prevs->x + len, 6 ); - mbedtls_ssl_dtls_replay_update( &ssl ); + for (len = 0; len < prevs->len; len += 6) { + memcpy(ssl.in_ctr + 2, prevs->x + len, 6); + mbedtls_ssl_dtls_replay_update(&ssl); } /* Check new number */ - memcpy( ssl.in_ctr + 2, new->x, 6 ); - TEST_ASSERT( mbedtls_ssl_dtls_replay_check( &ssl ) == ret ); + memcpy(ssl.in_ctr + 2, new->x, 6); + TEST_ASSERT(mbedtls_ssl_dtls_replay_check(&ssl) == ret); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ -void ssl_set_hostname_twice( char *hostname0, char *hostname1 ) +void ssl_set_hostname_twice(char *hostname0, char *hostname1) { mbedtls_ssl_context ssl; - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_init(&ssl); - TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname0 ) == 0 ); - TEST_ASSERT( mbedtls_ssl_set_hostname( &ssl, hostname1 ) == 0 ); + TEST_ASSERT(mbedtls_ssl_set_hostname(&ssl, hostname0) == 0); + TEST_ASSERT(mbedtls_ssl_set_hostname(&ssl, hostname1) == 0); - mbedtls_ssl_free( &ssl ); + mbedtls_ssl_free(&ssl); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_crypt_record( int cipher_type, int hash_id, - int etm, int tag_mode, int ver, - int cid0_len, int cid1_len ) +void ssl_crypt_record(int cipher_type, int hash_id, + int etm, int tag_mode, int ver, + int cid0_len, int cid1_len) { /* * Test several record encryptions and decryptions @@ -3752,31 +3594,27 @@ void ssl_crypt_record( int cipher_type, int hash_id, size_t const buflen = 512; mbedtls_record rec, rec_backup; - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_transform_init( &t0 ); - mbedtls_ssl_transform_init( &t1 ); - ret = build_transforms( &t0, &t1, cipher_type, hash_id, - etm, tag_mode, ver, - (size_t) cid0_len, - (size_t) cid1_len ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_transform_init(&t0); + mbedtls_ssl_transform_init(&t1); + ret = build_transforms(&t0, &t1, cipher_type, hash_id, + etm, tag_mode, ver, + (size_t) cid0_len, + (size_t) cid1_len); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - TEST_ASSERT( ( buf = mbedtls_calloc( 1, buflen ) ) != NULL ); + TEST_ASSERT((buf = mbedtls_calloc(1, buflen)) != NULL); - while( num_records-- > 0 ) - { + while (num_records-- > 0) { mbedtls_ssl_transform *t_dec, *t_enc; /* Take turns in who's sending and who's receiving. */ - if( num_records % 3 == 0 ) - { + if (num_records % 3 == 0) { t_dec = &t0; t_enc = &t1; - } - else - { + } else { t_dec = &t1; t_enc = &t0; } @@ -3793,7 +3631,7 @@ void ssl_crypt_record( int cipher_type, int hash_id, * type is sensible. */ - memset( rec.ctr, num_records, sizeof( rec.ctr ) ); + memset(rec.ctr, num_records, sizeof(rec.ctr)); rec.type = 42; rec.ver[0] = num_records; rec.ver[1] = num_records; @@ -3808,72 +3646,69 @@ void ssl_crypt_record( int cipher_type, int hash_id, * paddings. */ rec.data_len = 1 + num_records; - memset( rec.buf + rec.data_offset, 42, rec.data_len ); + memset(rec.buf + rec.data_offset, 42, rec.data_len); /* Make a copy for later comparison */ rec_backup = rec; /* Encrypt record */ - ret = mbedtls_ssl_encrypt_buf( &ssl, t_enc, &rec, - mbedtls_test_rnd_std_rand, NULL ); - TEST_ASSERT( ret == 0 || ret == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); - if( ret != 0 ) - { + ret = mbedtls_ssl_encrypt_buf(&ssl, t_enc, &rec, + mbedtls_test_rnd_std_rand, NULL); + TEST_ASSERT(ret == 0 || ret == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); + if (ret != 0) { continue; } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( rec.cid_len != 0 ) - { + if (rec.cid_len != 0) { /* DTLS 1.2 + CID hides the real content type and * uses a special CID content type in the protected * record. Double-check this. */ - TEST_ASSERT( rec.type == MBEDTLS_SSL_MSG_CID ); + TEST_ASSERT(rec.type == MBEDTLS_SSL_MSG_CID); } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( t_enc->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (t_enc->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* TLS 1.3 hides the real content type and * always uses Application Data as the content type * for protected records. Double-check this. */ - TEST_ASSERT( rec.type == MBEDTLS_SSL_MSG_APPLICATION_DATA ); + TEST_ASSERT(rec.type == MBEDTLS_SSL_MSG_APPLICATION_DATA); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /* Decrypt record with t_dec */ - ret = mbedtls_ssl_decrypt_buf( &ssl, t_dec, &rec ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_ssl_decrypt_buf(&ssl, t_dec, &rec); + TEST_ASSERT(ret == 0); /* Compare results */ - TEST_ASSERT( rec.type == rec_backup.type ); - TEST_ASSERT( memcmp( rec.ctr, rec_backup.ctr, 8 ) == 0 ); - TEST_ASSERT( rec.ver[0] == rec_backup.ver[0] ); - TEST_ASSERT( rec.ver[1] == rec_backup.ver[1] ); - TEST_ASSERT( rec.data_len == rec_backup.data_len ); - TEST_ASSERT( rec.data_offset == rec_backup.data_offset ); - TEST_ASSERT( memcmp( rec.buf + rec.data_offset, - rec_backup.buf + rec_backup.data_offset, - rec.data_len ) == 0 ); + TEST_ASSERT(rec.type == rec_backup.type); + TEST_ASSERT(memcmp(rec.ctr, rec_backup.ctr, 8) == 0); + TEST_ASSERT(rec.ver[0] == rec_backup.ver[0]); + TEST_ASSERT(rec.ver[1] == rec_backup.ver[1]); + TEST_ASSERT(rec.data_len == rec_backup.data_len); + TEST_ASSERT(rec.data_offset == rec_backup.data_offset); + TEST_ASSERT(memcmp(rec.buf + rec.data_offset, + rec_backup.buf + rec_backup.data_offset, + rec.data_len) == 0); } exit: /* Cleanup */ - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_transform_free( &t0 ); - mbedtls_ssl_transform_free( &t1 ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_transform_free(&t0); + mbedtls_ssl_transform_free(&t1); - mbedtls_free( buf ); - USE_PSA_DONE( ); + mbedtls_free(buf); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_crypt_record_small( int cipher_type, int hash_id, - int etm, int tag_mode, int ver, - int cid0_len, int cid1_len ) +void ssl_crypt_record_small(int cipher_type, int hash_id, + int etm, int tag_mode, int ver, + int cid0_len, int cid1_len) { /* * Test pairs of encryption and decryption with an increasing @@ -3913,30 +3748,28 @@ void ssl_crypt_record_small( int cipher_type, int hash_id, int seen_success; /* Indicates if in the current mode we've * already seen a successful test. */ - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_transform_init( &t0 ); - mbedtls_ssl_transform_init( &t1 ); - ret = build_transforms( &t0, &t1, cipher_type, hash_id, - etm, tag_mode, ver, - (size_t) cid0_len, - (size_t) cid1_len ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_transform_init(&t0); + mbedtls_ssl_transform_init(&t1); + ret = build_transforms(&t0, &t1, cipher_type, hash_id, + etm, tag_mode, ver, + (size_t) cid0_len, + (size_t) cid1_len); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - TEST_ASSERT( ( buf = mbedtls_calloc( 1, buflen ) ) != NULL ); + TEST_ASSERT((buf = mbedtls_calloc(1, buflen)) != NULL); - for( mode=1; mode <= 3; mode++ ) - { + for (mode = 1; mode <= 3; mode++) { seen_success = 0; - for( offset=0; offset <= threshold; offset++ ) - { + for (offset = 0; offset <= threshold; offset++) { mbedtls_ssl_transform *t_dec, *t_enc; t_dec = &t0; t_enc = &t1; - memset( rec.ctr, offset, sizeof( rec.ctr ) ); + memset(rec.ctr, offset, sizeof(rec.ctr)); rec.type = 42; rec.ver[0] = offset; rec.ver[1] = offset; @@ -3946,8 +3779,7 @@ void ssl_crypt_record_small( int cipher_type, int hash_id, rec.cid_len = 0; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - switch( mode ) - { + switch (mode) { case 1: /* Space in the beginning */ rec.data_offset = offset; rec.data_len = buflen - offset - default_post_padding; @@ -3964,86 +3796,83 @@ void ssl_crypt_record_small( int cipher_type, int hash_id, break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } - memset( rec.buf + rec.data_offset, 42, rec.data_len ); + memset(rec.buf + rec.data_offset, 42, rec.data_len); /* Make a copy for later comparison */ rec_backup = rec; /* Encrypt record */ - ret = mbedtls_ssl_encrypt_buf( &ssl, t_enc, &rec, - mbedtls_test_rnd_std_rand, NULL ); + ret = mbedtls_ssl_encrypt_buf(&ssl, t_enc, &rec, + mbedtls_test_rnd_std_rand, NULL); - if( ( mode == 1 || mode == 2 ) && seen_success ) - { - TEST_ASSERT( ret == 0 ); - } - else - { - TEST_ASSERT( ret == 0 || ret == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); - if( ret == 0 ) + if ((mode == 1 || mode == 2) && seen_success) { + TEST_ASSERT(ret == 0); + } else { + TEST_ASSERT(ret == 0 || ret == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); + if (ret == 0) { seen_success = 1; + } } - if( ret != 0 ) + if (ret != 0) { continue; + } #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - if( rec.cid_len != 0 ) - { + if (rec.cid_len != 0) { /* DTLS 1.2 + CID hides the real content type and * uses a special CID content type in the protected * record. Double-check this. */ - TEST_ASSERT( rec.type == MBEDTLS_SSL_MSG_CID ); + TEST_ASSERT(rec.type == MBEDTLS_SSL_MSG_CID); } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( t_enc->tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { + if (t_enc->tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { /* TLS 1.3 hides the real content type and * always uses Application Data as the content type * for protected records. Double-check this. */ - TEST_ASSERT( rec.type == MBEDTLS_SSL_MSG_APPLICATION_DATA ); + TEST_ASSERT(rec.type == MBEDTLS_SSL_MSG_APPLICATION_DATA); } #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ /* Decrypt record with t_dec */ - TEST_ASSERT( mbedtls_ssl_decrypt_buf( &ssl, t_dec, &rec ) == 0 ); + TEST_ASSERT(mbedtls_ssl_decrypt_buf(&ssl, t_dec, &rec) == 0); /* Compare results */ - TEST_ASSERT( rec.type == rec_backup.type ); - TEST_ASSERT( memcmp( rec.ctr, rec_backup.ctr, 8 ) == 0 ); - TEST_ASSERT( rec.ver[0] == rec_backup.ver[0] ); - TEST_ASSERT( rec.ver[1] == rec_backup.ver[1] ); - TEST_ASSERT( rec.data_len == rec_backup.data_len ); - TEST_ASSERT( rec.data_offset == rec_backup.data_offset ); - TEST_ASSERT( memcmp( rec.buf + rec.data_offset, - rec_backup.buf + rec_backup.data_offset, - rec.data_len ) == 0 ); + TEST_ASSERT(rec.type == rec_backup.type); + TEST_ASSERT(memcmp(rec.ctr, rec_backup.ctr, 8) == 0); + TEST_ASSERT(rec.ver[0] == rec_backup.ver[0]); + TEST_ASSERT(rec.ver[1] == rec_backup.ver[1]); + TEST_ASSERT(rec.data_len == rec_backup.data_len); + TEST_ASSERT(rec.data_offset == rec_backup.data_offset); + TEST_ASSERT(memcmp(rec.buf + rec.data_offset, + rec_backup.buf + rec_backup.data_offset, + rec.data_len) == 0); } - TEST_ASSERT( seen_success == 1 ); + TEST_ASSERT(seen_success == 1); } exit: /* Cleanup */ - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_transform_free( &t0 ); - mbedtls_ssl_transform_free( &t1 ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_transform_free(&t0); + mbedtls_ssl_transform_free(&t1); - mbedtls_free( buf ); - USE_PSA_DONE( ); + mbedtls_free(buf); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_SSL_PROTO_TLS1_2 */ -void ssl_decrypt_non_etm_cbc( int cipher_type, int hash_id, int trunc_hmac, - int length_selector ) +void ssl_decrypt_non_etm_cbc(int cipher_type, int hash_id, int trunc_hmac, + int length_selector) { /* * Test record decryption for CBC without EtM, focused on the verification @@ -4080,57 +3909,55 @@ void ssl_decrypt_non_etm_cbc( int cipher_type, int hash_id, int trunc_hmac, int ret; const unsigned char pad_max_len = 255; /* Per the standard */ - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_transform_init( &t0 ); - mbedtls_ssl_transform_init( &t1 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_transform_init(&t0); + mbedtls_ssl_transform_init(&t1); /* Set up transforms with dummy keys */ - ret = build_transforms( &t0, &t1, cipher_type, hash_id, - 0, trunc_hmac, - MBEDTLS_SSL_VERSION_TLS1_2, - 0 , 0 ); + ret = build_transforms(&t0, &t1, cipher_type, hash_id, + 0, trunc_hmac, + MBEDTLS_SSL_VERSION_TLS1_2, + 0, 0); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); /* Determine padding/plaintext length */ - TEST_ASSERT( length_selector >= -2 && length_selector <= 255 ); + TEST_ASSERT(length_selector >= -2 && length_selector <= 255); block_size = t0.ivlen; - if( length_selector < 0 ) - { + if (length_selector < 0) { plaintext_len = 0; /* Minimal padding * The +1 is for the padding_length byte, not counted in padlen. */ - padlen = block_size - ( t0.maclen + 1 ) % block_size; + padlen = block_size - (t0.maclen + 1) % block_size; /* Maximal padding? */ - if( length_selector == -2 ) - padlen += block_size * ( ( pad_max_len - padlen ) / block_size ); - } - else - { + if (length_selector == -2) { + padlen += block_size * ((pad_max_len - padlen) / block_size); + } + } else { padlen = length_selector; /* Minimal non-zero plaintext_length giving desired padding. * The +1 is for the padding_length byte, not counted in padlen. */ - plaintext_len = block_size - ( padlen + t0.maclen + 1 ) % block_size; + plaintext_len = block_size - (padlen + t0.maclen + 1) % block_size; } /* Prepare a buffer for record data */ buflen = block_size - + plaintext_len - + t0.maclen - + padlen + 1; - ASSERT_ALLOC( buf, buflen ); - ASSERT_ALLOC( buf_save, buflen ); + + plaintext_len + + t0.maclen + + padlen + 1; + ASSERT_ALLOC(buf, buflen); + ASSERT_ALLOC(buf_save, buflen); /* Prepare a dummy record header */ - memset( rec.ctr, 0, sizeof( rec.ctr ) ); + memset(rec.ctr, 0, sizeof(rec.ctr)); rec.type = MBEDTLS_SSL_MSG_APPLICATION_DATA; - mbedtls_ssl_write_version( rec.ver, MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_VERSION_TLS1_2 ); + mbedtls_ssl_write_version(rec.ver, MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_VERSION_TLS1_2); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) rec.cid_len = 0; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ @@ -4140,19 +3967,19 @@ void ssl_decrypt_non_etm_cbc( int cipher_type, int hash_id, int trunc_hmac, rec.buf_len = buflen; rec.data_offset = block_size; rec.data_len = plaintext_len; - memset( rec.buf + rec.data_offset, 42, rec.data_len ); + memset(rec.buf + rec.data_offset, 42, rec.data_len); /* Serialized version of record header for MAC purposes */ - memcpy( add_data, rec.ctr, 8 ); + memcpy(add_data, rec.ctr, 8); add_data[8] = rec.type; add_data[9] = rec.ver[0]; add_data[10] = rec.ver[1]; - add_data[11] = ( rec.data_len >> 8 ) & 0xff; - add_data[12] = ( rec.data_len >> 0 ) & 0xff; + add_data[11] = (rec.data_len >> 8) & 0xff; + add_data[12] = (rec.data_len >> 0) & 0xff; /* Set dummy IV */ - memset( t0.iv_enc, 0x55, t0.ivlen ); - memcpy( rec.buf, t0.iv_enc, t0.ivlen ); + memset(t0.iv_enc, 0x55, t0.ivlen); + memcpy(rec.buf, t0.iv_enc, t0.ivlen); /* * Prepare a pre-encryption record (with MAC and padding), and save it. @@ -4160,73 +3987,72 @@ void ssl_decrypt_non_etm_cbc( int cipher_type, int hash_id, int trunc_hmac, /* MAC with additional data */ #if defined(MBEDTLS_USE_PSA_CRYPTO) - TEST_EQUAL( PSA_SUCCESS, psa_mac_sign_setup( &operation, - t0.psa_mac_enc, - t0.psa_mac_alg ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, add_data, 13 ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_update( &operation, - rec.buf + rec.data_offset, - rec.data_len ) ); - TEST_EQUAL( PSA_SUCCESS, psa_mac_sign_finish( &operation, - mac, sizeof(mac), - &sign_mac_length ) ); -#else - TEST_EQUAL( 0, mbedtls_md_hmac_update( &t0.md_ctx_enc, add_data, 13 ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_update( &t0.md_ctx_enc, + TEST_EQUAL(PSA_SUCCESS, psa_mac_sign_setup(&operation, + t0.psa_mac_enc, + t0.psa_mac_alg)); + TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation, add_data, 13)); + TEST_EQUAL(PSA_SUCCESS, psa_mac_update(&operation, rec.buf + rec.data_offset, - rec.data_len ) ); - TEST_EQUAL( 0, mbedtls_md_hmac_finish( &t0.md_ctx_enc, mac ) ); + rec.data_len)); + TEST_EQUAL(PSA_SUCCESS, psa_mac_sign_finish(&operation, + mac, sizeof(mac), + &sign_mac_length)); +#else + TEST_EQUAL(0, mbedtls_md_hmac_update(&t0.md_ctx_enc, add_data, 13)); + TEST_EQUAL(0, mbedtls_md_hmac_update(&t0.md_ctx_enc, + rec.buf + rec.data_offset, + rec.data_len)); + TEST_EQUAL(0, mbedtls_md_hmac_finish(&t0.md_ctx_enc, mac)); #endif - memcpy( rec.buf + rec.data_offset + rec.data_len, mac, t0.maclen ); + memcpy(rec.buf + rec.data_offset + rec.data_len, mac, t0.maclen); rec.data_len += t0.maclen; /* Pad */ - memset( rec.buf + rec.data_offset + rec.data_len, padlen, padlen + 1 ); + memset(rec.buf + rec.data_offset + rec.data_len, padlen, padlen + 1); rec.data_len += padlen + 1; /* Save correct pre-encryption record */ rec_save = rec; rec_save.buf = buf_save; - memcpy( buf_save, buf, buflen ); + memcpy(buf_save, buf, buflen); /* * Encrypt and decrypt the correct record, expecting success */ - TEST_EQUAL( 0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, - rec.buf + rec.data_offset, rec.data_len, - rec.buf + rec.data_offset, &olen ) ); + TEST_EQUAL(0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, + rec.buf + rec.data_offset, rec.data_len, + rec.buf + rec.data_offset, &olen)); rec.data_offset -= t0.ivlen; rec.data_len += t0.ivlen; - TEST_EQUAL( 0, mbedtls_ssl_decrypt_buf( &ssl, &t1, &rec ) ); + TEST_EQUAL(0, mbedtls_ssl_decrypt_buf(&ssl, &t1, &rec)); /* * Modify each byte of the pre-encryption record before encrypting and * decrypting it, expecting failure every time. */ - for( i = block_size; i < buflen; i++ ) - { - mbedtls_test_set_step( i ); + for (i = block_size; i < buflen; i++) { + mbedtls_test_set_step(i); /* Restore correct pre-encryption record */ rec = rec_save; rec.buf = buf; - memcpy( buf, buf_save, buflen ); + memcpy(buf, buf_save, buflen); /* Corrupt one byte of the data (could be plaintext, MAC or padding) */ rec.buf[i] ^= 0x01; /* Encrypt */ - TEST_EQUAL( 0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, - rec.buf + rec.data_offset, rec.data_len, - rec.buf + rec.data_offset, &olen ) ); + TEST_EQUAL(0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, + rec.buf + rec.data_offset, rec.data_len, + rec.buf + rec.data_offset, &olen)); rec.data_offset -= t0.ivlen; rec.data_len += t0.ivlen; /* Decrypt and expect failure */ - TEST_EQUAL( MBEDTLS_ERR_SSL_INVALID_MAC, - mbedtls_ssl_decrypt_buf( &ssl, &t1, &rec ) ); + TEST_EQUAL(MBEDTLS_ERR_SSL_INVALID_MAC, + mbedtls_ssl_decrypt_buf(&ssl, &t1, &rec)); } /* @@ -4241,353 +4067,352 @@ void ssl_decrypt_non_etm_cbc( int cipher_type, int hash_id, int trunc_hmac, * (Start the loop with correct padding, just to double-check that record * saving did work, and that we're overwriting the correct bytes.) */ - for( i = padlen; i <= pad_max_len; i++ ) - { - mbedtls_test_set_step( i ); + for (i = padlen; i <= pad_max_len; i++) { + mbedtls_test_set_step(i); /* Restore correct pre-encryption record */ rec = rec_save; rec.buf = buf; - memcpy( buf, buf_save, buflen ); + memcpy(buf, buf_save, buflen); /* Set padding bytes to new value */ - memset( buf + buflen - padlen - 1, i, padlen + 1 ); + memset(buf + buflen - padlen - 1, i, padlen + 1); /* Encrypt */ - TEST_EQUAL( 0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, - rec.buf + rec.data_offset, rec.data_len, - rec.buf + rec.data_offset, &olen ) ); + TEST_EQUAL(0, psa_cipher_encrypt_helper(&t0, t0.iv_enc, t0.ivlen, + rec.buf + rec.data_offset, rec.data_len, + rec.buf + rec.data_offset, &olen)); rec.data_offset -= t0.ivlen; rec.data_len += t0.ivlen; /* Decrypt and expect failure except the first time */ - exp_ret = ( i == padlen ) ? 0 : MBEDTLS_ERR_SSL_INVALID_MAC; - TEST_EQUAL( exp_ret, mbedtls_ssl_decrypt_buf( &ssl, &t1, &rec ) ); + exp_ret = (i == padlen) ? 0 : MBEDTLS_ERR_SSL_INVALID_MAC; + TEST_EQUAL(exp_ret, mbedtls_ssl_decrypt_buf(&ssl, &t1, &rec)); } exit: - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_transform_free( &t0 ); - mbedtls_ssl_transform_free( &t1 ); - mbedtls_free( buf ); - mbedtls_free( buf_save ); - USE_PSA_DONE( ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_transform_free(&t0); + mbedtls_ssl_transform_free(&t1); + mbedtls_free(buf); + mbedtls_free(buf_save); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_hkdf_expand_label( int hash_alg, - data_t *secret, - int label_idx, - data_t *ctx, - int desired_length, - data_t *expected ) +void ssl_tls13_hkdf_expand_label(int hash_alg, + data_t *secret, + int label_idx, + data_t *ctx, + int desired_length, + data_t *expected) { - unsigned char dst[ 100 ]; + unsigned char dst[100]; unsigned char const *lbl = NULL; size_t lbl_len; -#define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ - if( label_idx == (int) tls13_label_ ## name ) \ +#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ + if (label_idx == (int) tls13_label_ ## name) \ { \ lbl = mbedtls_ssl_tls13_labels.name; \ - lbl_len = sizeof( mbedtls_ssl_tls13_labels.name ); \ + lbl_len = sizeof(mbedtls_ssl_tls13_labels.name); \ } -MBEDTLS_SSL_TLS1_3_LABEL_LIST + MBEDTLS_SSL_TLS1_3_LABEL_LIST #undef MBEDTLS_SSL_TLS1_3_LABEL - TEST_ASSERT( lbl != NULL ); + TEST_ASSERT(lbl != NULL); /* Check sanity of test parameters. */ - TEST_ASSERT( (size_t) desired_length <= sizeof(dst) ); - TEST_ASSERT( (size_t) desired_length == expected->len ); + TEST_ASSERT((size_t) desired_length <= sizeof(dst)); + TEST_ASSERT((size_t) desired_length == expected->len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_hkdf_expand_label( - (psa_algorithm_t) hash_alg, - secret->x, secret->len, - lbl, lbl_len, - ctx->x, ctx->len, - dst, desired_length ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_hkdf_expand_label( + (psa_algorithm_t) hash_alg, + secret->x, secret->len, + lbl, lbl_len, + ctx->x, ctx->len, + dst, desired_length) == 0); - ASSERT_COMPARE( dst, (size_t) desired_length, - expected->x, (size_t) expected->len ); + ASSERT_COMPARE(dst, (size_t) desired_length, + expected->x, (size_t) expected->len); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_traffic_key_generation( int hash_alg, - data_t *server_secret, - data_t *client_secret, - int desired_iv_len, - int desired_key_len, - data_t *expected_server_write_key, - data_t *expected_server_write_iv, - data_t *expected_client_write_key, - data_t *expected_client_write_iv ) +void ssl_tls13_traffic_key_generation(int hash_alg, + data_t *server_secret, + data_t *client_secret, + int desired_iv_len, + int desired_key_len, + data_t *expected_server_write_key, + data_t *expected_server_write_iv, + data_t *expected_client_write_key, + data_t *expected_client_write_iv) { mbedtls_ssl_key_set keys; /* Check sanity of test parameters. */ - TEST_ASSERT( client_secret->len == server_secret->len ); - TEST_ASSERT( expected_client_write_iv->len == expected_server_write_iv->len && - expected_client_write_iv->len == (size_t) desired_iv_len ); - TEST_ASSERT( expected_client_write_key->len == expected_server_write_key->len && - expected_client_write_key->len == (size_t) desired_key_len ); + TEST_ASSERT(client_secret->len == server_secret->len); + TEST_ASSERT(expected_client_write_iv->len == expected_server_write_iv->len && + expected_client_write_iv->len == (size_t) desired_iv_len); + TEST_ASSERT(expected_client_write_key->len == expected_server_write_key->len && + expected_client_write_key->len == (size_t) desired_key_len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_make_traffic_keys( - (psa_algorithm_t) hash_alg, - client_secret->x, - server_secret->x, - client_secret->len /* == server_secret->len */, - desired_key_len, desired_iv_len, - &keys ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_make_traffic_keys( + (psa_algorithm_t) hash_alg, + client_secret->x, + server_secret->x, + client_secret->len /* == server_secret->len */, + desired_key_len, desired_iv_len, + &keys) == 0); - ASSERT_COMPARE( keys.client_write_key, - keys.key_len, - expected_client_write_key->x, - (size_t) desired_key_len ); - ASSERT_COMPARE( keys.server_write_key, - keys.key_len, - expected_server_write_key->x, - (size_t) desired_key_len ); - ASSERT_COMPARE( keys.client_write_iv, - keys.iv_len, - expected_client_write_iv->x, - (size_t) desired_iv_len ); - ASSERT_COMPARE( keys.server_write_iv, - keys.iv_len, - expected_server_write_iv->x, - (size_t) desired_iv_len ); + ASSERT_COMPARE(keys.client_write_key, + keys.key_len, + expected_client_write_key->x, + (size_t) desired_key_len); + ASSERT_COMPARE(keys.server_write_key, + keys.key_len, + expected_server_write_key->x, + (size_t) desired_key_len); + ASSERT_COMPARE(keys.client_write_iv, + keys.iv_len, + expected_client_write_iv->x, + (size_t) desired_iv_len); + ASSERT_COMPARE(keys.server_write_iv, + keys.iv_len, + expected_server_write_iv->x, + (size_t) desired_iv_len); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_derive_secret( int hash_alg, - data_t *secret, - int label_idx, - data_t *ctx, - int desired_length, - int already_hashed, - data_t *expected ) +void ssl_tls13_derive_secret(int hash_alg, + data_t *secret, + int label_idx, + data_t *ctx, + int desired_length, + int already_hashed, + data_t *expected) { - unsigned char dst[ 100 ]; + unsigned char dst[100]; unsigned char const *lbl = NULL; size_t lbl_len; -#define MBEDTLS_SSL_TLS1_3_LABEL( name, string ) \ - if( label_idx == (int) tls13_label_ ## name ) \ +#define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ + if (label_idx == (int) tls13_label_ ## name) \ { \ lbl = mbedtls_ssl_tls13_labels.name; \ - lbl_len = sizeof( mbedtls_ssl_tls13_labels.name ); \ + lbl_len = sizeof(mbedtls_ssl_tls13_labels.name); \ } -MBEDTLS_SSL_TLS1_3_LABEL_LIST + MBEDTLS_SSL_TLS1_3_LABEL_LIST #undef MBEDTLS_SSL_TLS1_3_LABEL - TEST_ASSERT( lbl != NULL ); + TEST_ASSERT(lbl != NULL); /* Check sanity of test parameters. */ - TEST_ASSERT( (size_t) desired_length <= sizeof(dst) ); - TEST_ASSERT( (size_t) desired_length == expected->len ); + TEST_ASSERT((size_t) desired_length <= sizeof(dst)); + TEST_ASSERT((size_t) desired_length == expected->len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_derive_secret( - (psa_algorithm_t) hash_alg, - secret->x, secret->len, - lbl, lbl_len, - ctx->x, ctx->len, - already_hashed, - dst, desired_length ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_derive_secret( + (psa_algorithm_t) hash_alg, + secret->x, secret->len, + lbl, lbl_len, + ctx->x, ctx->len, + already_hashed, + dst, desired_length) == 0); - ASSERT_COMPARE( dst, desired_length, - expected->x, desired_length ); + ASSERT_COMPARE(dst, desired_length, + expected->x, desired_length); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_derive_early_secrets( int hash_alg, - data_t *secret, - data_t *transcript, - data_t *traffic_expected, - data_t *exporter_expected ) +void ssl_tls13_derive_early_secrets(int hash_alg, + data_t *secret, + data_t *transcript, + data_t *traffic_expected, + data_t *exporter_expected) { mbedtls_ssl_tls13_early_secrets secrets; /* Double-check that we've passed sane parameters. */ psa_algorithm_t alg = (psa_algorithm_t) hash_alg; - size_t const hash_len = PSA_HASH_LENGTH( alg ); - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) && - secret->len == hash_len && - transcript->len == hash_len && - traffic_expected->len == hash_len && - exporter_expected->len == hash_len ); + size_t const hash_len = PSA_HASH_LENGTH(alg); + TEST_ASSERT(PSA_ALG_IS_HASH(alg) && + secret->len == hash_len && + transcript->len == hash_len && + traffic_expected->len == hash_len && + exporter_expected->len == hash_len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_derive_early_secrets( - alg, secret->x, transcript->x, transcript->len, - &secrets ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_derive_early_secrets( + alg, secret->x, transcript->x, transcript->len, + &secrets) == 0); - ASSERT_COMPARE( secrets.client_early_traffic_secret, hash_len, - traffic_expected->x, traffic_expected->len ); - ASSERT_COMPARE( secrets.early_exporter_master_secret, hash_len, - exporter_expected->x, exporter_expected->len ); + ASSERT_COMPARE(secrets.client_early_traffic_secret, hash_len, + traffic_expected->x, traffic_expected->len); + ASSERT_COMPARE(secrets.early_exporter_master_secret, hash_len, + exporter_expected->x, exporter_expected->len); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_derive_handshake_secrets( int hash_alg, - data_t *secret, - data_t *transcript, - data_t *client_expected, - data_t *server_expected ) +void ssl_tls13_derive_handshake_secrets(int hash_alg, + data_t *secret, + data_t *transcript, + data_t *client_expected, + data_t *server_expected) { mbedtls_ssl_tls13_handshake_secrets secrets; /* Double-check that we've passed sane parameters. */ psa_algorithm_t alg = (psa_algorithm_t) hash_alg; - size_t const hash_len = PSA_HASH_LENGTH( alg ); - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) && - secret->len == hash_len && - transcript->len == hash_len && - client_expected->len == hash_len && - server_expected->len == hash_len ); + size_t const hash_len = PSA_HASH_LENGTH(alg); + TEST_ASSERT(PSA_ALG_IS_HASH(alg) && + secret->len == hash_len && + transcript->len == hash_len && + client_expected->len == hash_len && + server_expected->len == hash_len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_derive_handshake_secrets( - alg, secret->x, transcript->x, transcript->len, - &secrets ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_derive_handshake_secrets( + alg, secret->x, transcript->x, transcript->len, + &secrets) == 0); - ASSERT_COMPARE( secrets.client_handshake_traffic_secret, hash_len, - client_expected->x, client_expected->len ); - ASSERT_COMPARE( secrets.server_handshake_traffic_secret, hash_len, - server_expected->x, server_expected->len ); + ASSERT_COMPARE(secrets.client_handshake_traffic_secret, hash_len, + client_expected->x, client_expected->len); + ASSERT_COMPARE(secrets.server_handshake_traffic_secret, hash_len, + server_expected->x, server_expected->len); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_derive_application_secrets( int hash_alg, - data_t *secret, - data_t *transcript, - data_t *client_expected, - data_t *server_expected, - data_t *exporter_expected ) -{ - mbedtls_ssl_tls13_application_secrets secrets; - - /* Double-check that we've passed sane parameters. */ - psa_algorithm_t alg = (psa_algorithm_t) hash_alg; - size_t const hash_len = PSA_HASH_LENGTH( alg ); - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) && - secret->len == hash_len && - transcript->len == hash_len && - client_expected->len == hash_len && - server_expected->len == hash_len && - exporter_expected->len == hash_len ); - - PSA_INIT( ); - - TEST_ASSERT( mbedtls_ssl_tls13_derive_application_secrets( - alg, secret->x, transcript->x, transcript->len, - &secrets ) == 0 ); - - ASSERT_COMPARE( secrets.client_application_traffic_secret_N, hash_len, - client_expected->x, client_expected->len ); - ASSERT_COMPARE( secrets.server_application_traffic_secret_N, hash_len, - server_expected->x, server_expected->len ); - ASSERT_COMPARE( secrets.exporter_master_secret, hash_len, - exporter_expected->x, exporter_expected->len ); - - PSA_DONE( ); -} -/* END_CASE */ - -/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_derive_resumption_secrets( int hash_alg, +void ssl_tls13_derive_application_secrets(int hash_alg, data_t *secret, data_t *transcript, - data_t *resumption_expected ) + data_t *client_expected, + data_t *server_expected, + data_t *exporter_expected) { mbedtls_ssl_tls13_application_secrets secrets; /* Double-check that we've passed sane parameters. */ psa_algorithm_t alg = (psa_algorithm_t) hash_alg; - size_t const hash_len = PSA_HASH_LENGTH( alg ); - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) && - secret->len == hash_len && - transcript->len == hash_len && - resumption_expected->len == hash_len ); + size_t const hash_len = PSA_HASH_LENGTH(alg); + TEST_ASSERT(PSA_ALG_IS_HASH(alg) && + secret->len == hash_len && + transcript->len == hash_len && + client_expected->len == hash_len && + server_expected->len == hash_len && + exporter_expected->len == hash_len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_derive_resumption_master_secret( - alg, secret->x, transcript->x, transcript->len, - &secrets ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_derive_application_secrets( + alg, secret->x, transcript->x, transcript->len, + &secrets) == 0); - ASSERT_COMPARE( secrets.resumption_master_secret, hash_len, - resumption_expected->x, resumption_expected->len ); + ASSERT_COMPARE(secrets.client_application_traffic_secret_N, hash_len, + client_expected->x, client_expected->len); + ASSERT_COMPARE(secrets.server_application_traffic_secret_N, hash_len, + server_expected->x, server_expected->len); + ASSERT_COMPARE(secrets.exporter_master_secret, hash_len, + exporter_expected->x, exporter_expected->len); - PSA_DONE( ); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_create_psk_binder( int hash_alg, - data_t *psk, - int psk_type, - data_t *transcript, - data_t *binder_expected ) +void ssl_tls13_derive_resumption_secrets(int hash_alg, + data_t *secret, + data_t *transcript, + data_t *resumption_expected) { - unsigned char binder[ MBEDTLS_HASH_MAX_SIZE ]; + mbedtls_ssl_tls13_application_secrets secrets; /* Double-check that we've passed sane parameters. */ psa_algorithm_t alg = (psa_algorithm_t) hash_alg; - size_t const hash_len = PSA_HASH_LENGTH( alg ); - TEST_ASSERT( PSA_ALG_IS_HASH( alg ) && - transcript->len == hash_len && - binder_expected->len == hash_len ); + size_t const hash_len = PSA_HASH_LENGTH(alg); + TEST_ASSERT(PSA_ALG_IS_HASH(alg) && + secret->len == hash_len && + transcript->len == hash_len && + resumption_expected->len == hash_len); - PSA_INIT( ); + PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_create_psk_binder( - NULL, /* SSL context for debugging only */ - alg, - psk->x, psk->len, - psk_type, - transcript->x, - binder ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_derive_resumption_master_secret( + alg, secret->x, transcript->x, transcript->len, + &secrets) == 0); - ASSERT_COMPARE( binder, hash_len, - binder_expected->x, binder_expected->len ); + ASSERT_COMPARE(secrets.resumption_master_secret, hash_len, + resumption_expected->x, resumption_expected->len); - PSA_DONE( ); + PSA_DONE(); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ +void ssl_tls13_create_psk_binder(int hash_alg, + data_t *psk, + int psk_type, + data_t *transcript, + data_t *binder_expected) +{ + unsigned char binder[MBEDTLS_HASH_MAX_SIZE]; + + /* Double-check that we've passed sane parameters. */ + psa_algorithm_t alg = (psa_algorithm_t) hash_alg; + size_t const hash_len = PSA_HASH_LENGTH(alg); + TEST_ASSERT(PSA_ALG_IS_HASH(alg) && + transcript->len == hash_len && + binder_expected->len == hash_len); + + PSA_INIT(); + + TEST_ASSERT(mbedtls_ssl_tls13_create_psk_binder( + NULL, /* SSL context for debugging only */ + alg, + psk->x, psk->len, + psk_type, + transcript->x, + binder) == 0); + + ASSERT_COMPARE(binder, hash_len, + binder_expected->x, binder_expected->len); + + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void ssl_tls13_record_protection( int ciphersuite, - int endpoint, - int ctr, - int padding_used, - data_t *server_write_key, - data_t *server_write_iv, - data_t *client_write_key, - data_t *client_write_iv, - data_t *plaintext, - data_t *ciphertext ) +void ssl_tls13_record_protection(int ciphersuite, + int endpoint, + int ctr, + int padding_used, + data_t *server_write_key, + data_t *server_write_iv, + data_t *client_write_key, + data_t *client_write_iv, + data_t *plaintext, + data_t *ciphertext) { mbedtls_ssl_key_set keys; mbedtls_ssl_transform transform_send; @@ -4597,140 +4422,141 @@ void ssl_tls13_record_protection( int ciphersuite, size_t buf_len; int other_endpoint; - USE_PSA_INIT( ); + USE_PSA_INIT(); - TEST_ASSERT( endpoint == MBEDTLS_SSL_IS_CLIENT || - endpoint == MBEDTLS_SSL_IS_SERVER ); + TEST_ASSERT(endpoint == MBEDTLS_SSL_IS_CLIENT || + endpoint == MBEDTLS_SSL_IS_SERVER); - if( endpoint == MBEDTLS_SSL_IS_SERVER ) + if (endpoint == MBEDTLS_SSL_IS_SERVER) { other_endpoint = MBEDTLS_SSL_IS_CLIENT; - if( endpoint == MBEDTLS_SSL_IS_CLIENT ) + } + if (endpoint == MBEDTLS_SSL_IS_CLIENT) { other_endpoint = MBEDTLS_SSL_IS_SERVER; + } - TEST_ASSERT( server_write_key->len == client_write_key->len ); - TEST_ASSERT( server_write_iv->len == client_write_iv->len ); + TEST_ASSERT(server_write_key->len == client_write_key->len); + TEST_ASSERT(server_write_iv->len == client_write_iv->len); - memcpy( keys.client_write_key, - client_write_key->x, client_write_key->len ); - memcpy( keys.client_write_iv, - client_write_iv->x, client_write_iv->len ); - memcpy( keys.server_write_key, - server_write_key->x, server_write_key->len ); - memcpy( keys.server_write_iv, - server_write_iv->x, server_write_iv->len ); + memcpy(keys.client_write_key, + client_write_key->x, client_write_key->len); + memcpy(keys.client_write_iv, + client_write_iv->x, client_write_iv->len); + memcpy(keys.server_write_key, + server_write_key->x, server_write_key->len); + memcpy(keys.server_write_iv, + server_write_iv->x, server_write_iv->len); keys.key_len = server_write_key->len; keys.iv_len = server_write_iv->len; - mbedtls_ssl_transform_init( &transform_recv ); - mbedtls_ssl_transform_init( &transform_send ); + mbedtls_ssl_transform_init(&transform_recv); + mbedtls_ssl_transform_init(&transform_send); - TEST_ASSERT( mbedtls_ssl_tls13_populate_transform( - &transform_send, endpoint, - ciphersuite, &keys, NULL ) == 0 ); - TEST_ASSERT( mbedtls_ssl_tls13_populate_transform( - &transform_recv, other_endpoint, - ciphersuite, &keys, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_populate_transform( + &transform_send, endpoint, + ciphersuite, &keys, NULL) == 0); + TEST_ASSERT(mbedtls_ssl_tls13_populate_transform( + &transform_recv, other_endpoint, + ciphersuite, &keys, NULL) == 0); /* Make sure we have enough space in the buffer even if * we use more padding than the KAT. */ buf_len = ciphertext->len + MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY; - ASSERT_ALLOC( buf, buf_len ); + ASSERT_ALLOC(buf, buf_len); rec.type = MBEDTLS_SSL_MSG_APPLICATION_DATA; /* TLS 1.3 uses the version identifier from TLS 1.2 on the wire. */ - mbedtls_ssl_write_version( rec.ver, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_VERSION_TLS1_2 ); + mbedtls_ssl_write_version(rec.ver, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_VERSION_TLS1_2); /* Copy plaintext into record structure */ rec.buf = buf; rec.buf_len = buf_len; rec.data_offset = 0; - TEST_ASSERT( plaintext->len <= ciphertext->len ); - memcpy( rec.buf + rec.data_offset, plaintext->x, plaintext->len ); + TEST_ASSERT(plaintext->len <= ciphertext->len); + memcpy(rec.buf + rec.data_offset, plaintext->x, plaintext->len); rec.data_len = plaintext->len; #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) rec.cid_len = 0; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ - memset( &rec.ctr[0], 0, 8 ); + memset(&rec.ctr[0], 0, 8); rec.ctr[7] = ctr; - TEST_ASSERT( mbedtls_ssl_encrypt_buf( NULL, &transform_send, &rec, - NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_ssl_encrypt_buf(NULL, &transform_send, &rec, + NULL, NULL) == 0); - if( padding_used == MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY ) - { - ASSERT_COMPARE( rec.buf + rec.data_offset, rec.data_len, - ciphertext->x, ciphertext->len ); + if (padding_used == MBEDTLS_SSL_CID_TLS1_3_PADDING_GRANULARITY) { + ASSERT_COMPARE(rec.buf + rec.data_offset, rec.data_len, + ciphertext->x, ciphertext->len); } - TEST_ASSERT( mbedtls_ssl_decrypt_buf( NULL, &transform_recv, &rec ) == 0 ); - ASSERT_COMPARE( rec.buf + rec.data_offset, rec.data_len, - plaintext->x, plaintext->len ); + TEST_ASSERT(mbedtls_ssl_decrypt_buf(NULL, &transform_recv, &rec) == 0); + ASSERT_COMPARE(rec.buf + rec.data_offset, rec.data_len, + plaintext->x, plaintext->len); - mbedtls_free( buf ); - mbedtls_ssl_transform_free( &transform_send ); - mbedtls_ssl_transform_free( &transform_recv ); - USE_PSA_DONE( ); + mbedtls_free(buf); + mbedtls_ssl_transform_free(&transform_send); + mbedtls_ssl_transform_free(&transform_recv); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_3 */ -void ssl_tls13_key_evolution( int hash_alg, - data_t *secret, - data_t *input, - data_t *expected ) +void ssl_tls13_key_evolution(int hash_alg, + data_t *secret, + data_t *input, + data_t *expected) { - unsigned char secret_new[ MBEDTLS_HASH_MAX_SIZE ]; + unsigned char secret_new[MBEDTLS_HASH_MAX_SIZE]; PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls13_evolve_secret( - (psa_algorithm_t) hash_alg, - secret->len ? secret->x : NULL, - input->len ? input->x : NULL, input->len, - secret_new ) == 0 ); + TEST_ASSERT(mbedtls_ssl_tls13_evolve_secret( + (psa_algorithm_t) hash_alg, + secret->len ? secret->x : NULL, + input->len ? input->x : NULL, input->len, + secret_new) == 0); - ASSERT_COMPARE( secret_new, (size_t) expected->len, - expected->x, (size_t) expected->len ); + ASSERT_COMPARE(secret_new, (size_t) expected->len, + expected->x, (size_t) expected->len); PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_PROTO_TLS1_2 */ -void ssl_tls_prf( int type, data_t * secret, data_t * random, - char *label, data_t *result_str, int exp_ret ) +void ssl_tls_prf(int type, data_t *secret, data_t *random, + char *label, data_t *result_str, int exp_ret) { unsigned char *output; - output = mbedtls_calloc( 1, result_str->len ); - if( output == NULL ) + output = mbedtls_calloc(1, result_str->len); + if (output == NULL) { goto exit; + } - USE_PSA_INIT( ); + USE_PSA_INIT(); - TEST_ASSERT( mbedtls_ssl_tls_prf( type, secret->x, secret->len, - label, random->x, random->len, - output, result_str->len ) == exp_ret ); + TEST_ASSERT(mbedtls_ssl_tls_prf(type, secret->x, secret->len, + label, random->x, random->len, + output, result_str->len) == exp_ret); - if( exp_ret == 0 ) - { - TEST_ASSERT( mbedtls_test_hexcmp( output, result_str->x, - result_str->len, result_str->len ) == 0 ); + if (exp_ret == 0) { + TEST_ASSERT(mbedtls_test_hexcmp(output, result_str->x, + result_str->len, result_str->len) == 0); } exit: - mbedtls_free( output ); - USE_PSA_DONE( ); + mbedtls_free(output); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_serialize_session_save_load( int ticket_len, char *crt_file, - int endpoint_type, int tls_version ) +void ssl_serialize_session_save_load(int ticket_len, char *crt_file, + int endpoint_type, int tls_version) { mbedtls_ssl_session original, restored; unsigned char *buf = NULL; @@ -4740,139 +4566,128 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, * Test that a save-load pair is the identity */ - mbedtls_ssl_session_init( &original ); - mbedtls_ssl_session_init( &restored ); + mbedtls_ssl_session_init(&original); + mbedtls_ssl_session_init(&restored); /* Prepare a dummy session to work on */ ((void) endpoint_type); ((void) tls_version); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - TEST_ASSERT( ssl_tls13_populate_session( - &original, 0, endpoint_type ) == 0 ); - } - else + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(ssl_tls13_populate_session( + &original, 0, endpoint_type) == 0); + } else #endif { - TEST_ASSERT( ssl_tls12_populate_session( - &original, ticket_len, crt_file ) == 0 ); + TEST_ASSERT(ssl_tls12_populate_session( + &original, ticket_len, crt_file) == 0); } /* Serialize it */ - TEST_ASSERT( mbedtls_ssl_session_save( &original, NULL, 0, &len ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); - TEST_ASSERT( ( buf = mbedtls_calloc( 1, len ) ) != NULL ); - TEST_ASSERT( mbedtls_ssl_session_save( &original, buf, len, &len ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_session_save(&original, NULL, 0, &len) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); + TEST_ASSERT((buf = mbedtls_calloc(1, len)) != NULL); + TEST_ASSERT(mbedtls_ssl_session_save(&original, buf, len, &len) + == 0); /* Restore session from serialized data */ - TEST_ASSERT( mbedtls_ssl_session_load( &restored, buf, len) == 0 ); + TEST_ASSERT(mbedtls_ssl_session_load(&restored, buf, len) == 0); /* * Make sure both session structures are identical */ #if defined(MBEDTLS_HAVE_TIME) - TEST_ASSERT( original.start == restored.start ); + TEST_ASSERT(original.start == restored.start); #endif - TEST_ASSERT( original.tls_version == restored.tls_version ); - TEST_ASSERT( original.ciphersuite == restored.ciphersuite ); + TEST_ASSERT(original.tls_version == restored.tls_version); + TEST_ASSERT(original.ciphersuite == restored.ciphersuite); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_2 ) - { - TEST_ASSERT( original.id_len == restored.id_len ); - TEST_ASSERT( memcmp( original.id, - restored.id, sizeof( original.id ) ) == 0 ); - TEST_ASSERT( memcmp( original.master, - restored.master, sizeof( original.master ) ) == 0 ); + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_2) { + TEST_ASSERT(original.id_len == restored.id_len); + TEST_ASSERT(memcmp(original.id, + restored.id, sizeof(original.id)) == 0); + TEST_ASSERT(memcmp(original.master, + restored.master, sizeof(original.master)) == 0); #if defined(MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED) #if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) - TEST_ASSERT( ( original.peer_cert == NULL ) == - ( restored.peer_cert == NULL ) ); - if( original.peer_cert != NULL ) - { - TEST_ASSERT( original.peer_cert->raw.len == - restored.peer_cert->raw.len ); - TEST_ASSERT( memcmp( original.peer_cert->raw.p, - restored.peer_cert->raw.p, - original.peer_cert->raw.len ) == 0 ); + TEST_ASSERT((original.peer_cert == NULL) == + (restored.peer_cert == NULL)); + if (original.peer_cert != NULL) { + TEST_ASSERT(original.peer_cert->raw.len == + restored.peer_cert->raw.len); + TEST_ASSERT(memcmp(original.peer_cert->raw.p, + restored.peer_cert->raw.p, + original.peer_cert->raw.len) == 0); } #else /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ - TEST_ASSERT( original.peer_cert_digest_type == - restored.peer_cert_digest_type ); - TEST_ASSERT( original.peer_cert_digest_len == - restored.peer_cert_digest_len ); - TEST_ASSERT( ( original.peer_cert_digest == NULL ) == - ( restored.peer_cert_digest == NULL ) ); - if( original.peer_cert_digest != NULL ) - { - TEST_ASSERT( memcmp( original.peer_cert_digest, - restored.peer_cert_digest, - original.peer_cert_digest_len ) == 0 ); + TEST_ASSERT(original.peer_cert_digest_type == + restored.peer_cert_digest_type); + TEST_ASSERT(original.peer_cert_digest_len == + restored.peer_cert_digest_len); + TEST_ASSERT((original.peer_cert_digest == NULL) == + (restored.peer_cert_digest == NULL)); + if (original.peer_cert_digest != NULL) { + TEST_ASSERT(memcmp(original.peer_cert_digest, + restored.peer_cert_digest, + original.peer_cert_digest_len) == 0); } #endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */ #endif /* MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED */ - TEST_ASSERT( original.verify_result == restored.verify_result ); + TEST_ASSERT(original.verify_result == restored.verify_result); #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - TEST_ASSERT( original.mfl_code == restored.mfl_code ); + TEST_ASSERT(original.mfl_code == restored.mfl_code); #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - TEST_ASSERT( original.encrypt_then_mac == restored.encrypt_then_mac ); + TEST_ASSERT(original.encrypt_then_mac == restored.encrypt_then_mac); #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - TEST_ASSERT( original.ticket_len == restored.ticket_len ); - if( original.ticket_len != 0 ) - { - TEST_ASSERT( original.ticket != NULL ); - TEST_ASSERT( restored.ticket != NULL ); - TEST_ASSERT( memcmp( original.ticket, - restored.ticket, original.ticket_len ) == 0 ); + TEST_ASSERT(original.ticket_len == restored.ticket_len); + if (original.ticket_len != 0) { + TEST_ASSERT(original.ticket != NULL); + TEST_ASSERT(restored.ticket != NULL); + TEST_ASSERT(memcmp(original.ticket, + restored.ticket, original.ticket_len) == 0); } - TEST_ASSERT( original.ticket_lifetime == restored.ticket_lifetime ); + TEST_ASSERT(original.ticket_lifetime == restored.ticket_lifetime); #endif } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if( tls_version == MBEDTLS_SSL_VERSION_TLS1_3 ) - { - TEST_ASSERT( original.endpoint == restored.endpoint ); - TEST_ASSERT( original.ciphersuite == restored.ciphersuite ); - TEST_ASSERT( original.ticket_age_add == restored.ticket_age_add ); - TEST_ASSERT( original.ticket_flags == restored.ticket_flags ); - TEST_ASSERT( original.resumption_key_len == restored.resumption_key_len ); - if( original.resumption_key_len != 0 ) - { - TEST_ASSERT( original.resumption_key != NULL ); - TEST_ASSERT( restored.resumption_key != NULL ); - TEST_ASSERT( memcmp( original.resumption_key, - restored.resumption_key, - original.resumption_key_len ) == 0 ); + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(original.endpoint == restored.endpoint); + TEST_ASSERT(original.ciphersuite == restored.ciphersuite); + TEST_ASSERT(original.ticket_age_add == restored.ticket_age_add); + TEST_ASSERT(original.ticket_flags == restored.ticket_flags); + TEST_ASSERT(original.resumption_key_len == restored.resumption_key_len); + if (original.resumption_key_len != 0) { + TEST_ASSERT(original.resumption_key != NULL); + TEST_ASSERT(restored.resumption_key != NULL); + TEST_ASSERT(memcmp(original.resumption_key, + restored.resumption_key, + original.resumption_key_len) == 0); } #if defined(MBEDTLS_HAVE_TIME) && defined(MBEDTLS_SSL_SRV_C) - if( endpoint_type == MBEDTLS_SSL_IS_SERVER ) - { - TEST_ASSERT( original.start == restored.start ); + if (endpoint_type == MBEDTLS_SSL_IS_SERVER) { + TEST_ASSERT(original.start == restored.start); } #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_SSL_CLI_C) - if( endpoint_type == MBEDTLS_SSL_IS_CLIENT) - { + if (endpoint_type == MBEDTLS_SSL_IS_CLIENT) { #if defined(MBEDTLS_HAVE_TIME) - TEST_ASSERT( original.ticket_received == restored.ticket_received ); + TEST_ASSERT(original.ticket_received == restored.ticket_received); #endif - TEST_ASSERT( original.ticket_lifetime == restored.ticket_lifetime ); - TEST_ASSERT( original.ticket_len == restored.ticket_len ); - if( original.ticket_len != 0 ) - { - TEST_ASSERT( original.ticket != NULL ); - TEST_ASSERT( restored.ticket != NULL ); - TEST_ASSERT( memcmp( original.ticket, - restored.ticket, - original.ticket_len ) == 0 ); + TEST_ASSERT(original.ticket_lifetime == restored.ticket_lifetime); + TEST_ASSERT(original.ticket_len == restored.ticket_len); + if (original.ticket_len != 0) { + TEST_ASSERT(original.ticket != NULL); + TEST_ASSERT(restored.ticket != NULL); + TEST_ASSERT(memcmp(original.ticket, + restored.ticket, + original.ticket_len) == 0); } } @@ -4881,15 +4696,15 @@ void ssl_serialize_session_save_load( int ticket_len, char *crt_file, #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ exit: - mbedtls_ssl_session_free( &original ); - mbedtls_ssl_session_free( &restored ); - mbedtls_free( buf ); + mbedtls_ssl_session_free(&original); + mbedtls_ssl_session_free(&restored); + mbedtls_free(buf); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_serialize_session_load_save( int ticket_len, char *crt_file, - int endpoint_type, int tls_version ) +void ssl_serialize_session_load_save(int ticket_len, char *crt_file, + int endpoint_type, int tls_version) { mbedtls_ssl_session session; unsigned char *buf1 = NULL, *buf2 = NULL; @@ -4899,61 +4714,59 @@ void ssl_serialize_session_load_save( int ticket_len, char *crt_file, * Test that a load-save pair is the identity */ - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); /* Prepare a dummy session to work on */ ((void) endpoint_type); ((void) tls_version); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if(tls_version == MBEDTLS_SSL_VERSION_TLS1_3) - { - TEST_ASSERT( ssl_tls13_populate_session( - &session, 0, endpoint_type ) == 0 ); - } - else + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(ssl_tls13_populate_session( + &session, 0, endpoint_type) == 0); + } else #endif { - TEST_ASSERT( ssl_tls12_populate_session( - &session, ticket_len, crt_file ) == 0 ); + TEST_ASSERT(ssl_tls12_populate_session( + &session, ticket_len, crt_file) == 0); } /* Get desired buffer size for serializing */ - TEST_ASSERT( mbedtls_ssl_session_save( &session, NULL, 0, &len0 ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + TEST_ASSERT(mbedtls_ssl_session_save(&session, NULL, 0, &len0) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); /* Allocate first buffer */ - buf1 = mbedtls_calloc( 1, len0 ); - TEST_ASSERT( buf1 != NULL ); + buf1 = mbedtls_calloc(1, len0); + TEST_ASSERT(buf1 != NULL); /* Serialize to buffer and free live session */ - TEST_ASSERT( mbedtls_ssl_session_save( &session, buf1, len0, &len1 ) - == 0 ); - TEST_ASSERT( len0 == len1 ); - mbedtls_ssl_session_free( &session ); + TEST_ASSERT(mbedtls_ssl_session_save(&session, buf1, len0, &len1) + == 0); + TEST_ASSERT(len0 == len1); + mbedtls_ssl_session_free(&session); /* Restore session from serialized data */ - TEST_ASSERT( mbedtls_ssl_session_load( &session, buf1, len1 ) == 0 ); + TEST_ASSERT(mbedtls_ssl_session_load(&session, buf1, len1) == 0); /* Allocate second buffer and serialize to it */ - buf2 = mbedtls_calloc( 1, len0 ); - TEST_ASSERT( buf2 != NULL ); - TEST_ASSERT( mbedtls_ssl_session_save( &session, buf2, len0, &len2 ) - == 0 ); + buf2 = mbedtls_calloc(1, len0); + TEST_ASSERT(buf2 != NULL); + TEST_ASSERT(mbedtls_ssl_session_save(&session, buf2, len0, &len2) + == 0); /* Make sure both serialized versions are identical */ - TEST_ASSERT( len1 == len2 ); - TEST_ASSERT( memcmp( buf1, buf2, len1 ) == 0 ); + TEST_ASSERT(len1 == len2); + TEST_ASSERT(memcmp(buf1, buf2, len1) == 0); exit: - mbedtls_ssl_session_free( &session ); - mbedtls_free( buf1 ); - mbedtls_free( buf2 ); + mbedtls_ssl_session_free(&session); + mbedtls_free(buf1); + mbedtls_free(buf2); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_serialize_session_save_buf_size( int ticket_len, char *crt_file, - int endpoint_type, int tls_version ) +void ssl_serialize_session_save_buf_size(int ticket_len, char *crt_file, + int endpoint_type, int tls_version) { mbedtls_ssl_session session; unsigned char *buf = NULL; @@ -4963,47 +4776,44 @@ void ssl_serialize_session_save_buf_size( int ticket_len, char *crt_file, * Test that session_save() fails cleanly on small buffers */ - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); /* Prepare dummy session and get serialized size */ ((void) endpoint_type); ((void) tls_version); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if(tls_version == MBEDTLS_SSL_VERSION_TLS1_3) - { - TEST_ASSERT( ssl_tls13_populate_session( - &session, 0, endpoint_type ) == 0 ); - } - else + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(ssl_tls13_populate_session( + &session, 0, endpoint_type) == 0); + } else #endif { - TEST_ASSERT( ssl_tls12_populate_session( - &session, ticket_len, crt_file ) == 0 ); + TEST_ASSERT(ssl_tls12_populate_session( + &session, ticket_len, crt_file) == 0); } - TEST_ASSERT( mbedtls_ssl_session_save( &session, NULL, 0, &good_len ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + TEST_ASSERT(mbedtls_ssl_session_save(&session, NULL, 0, &good_len) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); /* Try all possible bad lengths */ - for( bad_len = 1; bad_len < good_len; bad_len++ ) - { + for (bad_len = 1; bad_len < good_len; bad_len++) { /* Allocate exact size so that asan/valgrind can detect any overwrite */ - mbedtls_free( buf ); - TEST_ASSERT( ( buf = mbedtls_calloc( 1, bad_len ) ) != NULL ); - TEST_ASSERT( mbedtls_ssl_session_save( &session, buf, bad_len, - &test_len ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); - TEST_ASSERT( test_len == good_len ); + mbedtls_free(buf); + TEST_ASSERT((buf = mbedtls_calloc(1, bad_len)) != NULL); + TEST_ASSERT(mbedtls_ssl_session_save(&session, buf, bad_len, + &test_len) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); + TEST_ASSERT(test_len == good_len); } exit: - mbedtls_ssl_session_free( &session ); - mbedtls_free( buf ); + mbedtls_ssl_session_free(&session); + mbedtls_free(buf); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_serialize_session_load_buf_size( int ticket_len, char *crt_file, - int endpoint_type, int tls_version ) +void ssl_serialize_session_load_buf_size(int ticket_len, char *crt_file, + int endpoint_type, int tls_version) { mbedtls_ssl_session session; unsigned char *good_buf = NULL, *bad_buf = NULL; @@ -5013,59 +4823,56 @@ void ssl_serialize_session_load_buf_size( int ticket_len, char *crt_file, * Test that session_load() fails cleanly on small buffers */ - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); /* Prepare serialized session data */ ((void) endpoint_type); ((void) tls_version); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if(tls_version == MBEDTLS_SSL_VERSION_TLS1_3) - { - TEST_ASSERT( ssl_tls13_populate_session( - &session, 0, endpoint_type ) == 0 ); - } - else + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(ssl_tls13_populate_session( + &session, 0, endpoint_type) == 0); + } else #endif { - TEST_ASSERT( ssl_tls12_populate_session( - &session, ticket_len, crt_file ) == 0 ); + TEST_ASSERT(ssl_tls12_populate_session( + &session, ticket_len, crt_file) == 0); } - TEST_ASSERT( mbedtls_ssl_session_save( &session, NULL, 0, &good_len ) - == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); - TEST_ASSERT( ( good_buf = mbedtls_calloc( 1, good_len ) ) != NULL ); - TEST_ASSERT( mbedtls_ssl_session_save( &session, good_buf, good_len, - &good_len ) == 0 ); - mbedtls_ssl_session_free( &session ); + TEST_ASSERT(mbedtls_ssl_session_save(&session, NULL, 0, &good_len) + == MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL); + TEST_ASSERT((good_buf = mbedtls_calloc(1, good_len)) != NULL); + TEST_ASSERT(mbedtls_ssl_session_save(&session, good_buf, good_len, + &good_len) == 0); + mbedtls_ssl_session_free(&session); /* Try all possible bad lengths */ - for( bad_len = 0; bad_len < good_len; bad_len++ ) - { + for (bad_len = 0; bad_len < good_len; bad_len++) { /* Allocate exact size so that asan/valgrind can detect any overread */ - mbedtls_free( bad_buf ); - bad_buf = mbedtls_calloc( 1, bad_len ? bad_len : 1 ); - TEST_ASSERT( bad_buf != NULL ); - memcpy( bad_buf, good_buf, bad_len ); + mbedtls_free(bad_buf); + bad_buf = mbedtls_calloc(1, bad_len ? bad_len : 1); + TEST_ASSERT(bad_buf != NULL); + memcpy(bad_buf, good_buf, bad_len); - TEST_ASSERT( mbedtls_ssl_session_load( &session, bad_buf, bad_len ) - == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_ssl_session_load(&session, bad_buf, bad_len) + == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); } exit: - mbedtls_ssl_session_free( &session ); - mbedtls_free( good_buf ); - mbedtls_free( bad_buf ); + mbedtls_ssl_session_free(&session); + mbedtls_free(good_buf); + mbedtls_free(bad_buf); } /* END_CASE */ /* BEGIN_CASE */ -void ssl_session_serialize_version_check( int corrupt_major, - int corrupt_minor, - int corrupt_patch, - int corrupt_config, - int endpoint_type, - int tls_version ) +void ssl_session_serialize_version_check(int corrupt_major, + int corrupt_minor, + int corrupt_patch, + int corrupt_config, + int endpoint_type, + int tls_version) { - unsigned char serialized_session[ 2048 ]; + unsigned char serialized_session[2048]; size_t serialized_session_len; unsigned cur_byte; mbedtls_ssl_session session; @@ -5075,56 +4882,53 @@ void ssl_session_serialize_version_check( int corrupt_major, corrupt_config == 1, corrupt_config == 1 }; - mbedtls_ssl_session_init( &session ); + mbedtls_ssl_session_init(&session); ((void) endpoint_type); ((void) tls_version); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) - if(tls_version == MBEDTLS_SSL_VERSION_TLS1_3) - { - TEST_ASSERT( ssl_tls13_populate_session( - &session, 0, endpoint_type ) == 0 ); - } - else + if (tls_version == MBEDTLS_SSL_VERSION_TLS1_3) { + TEST_ASSERT(ssl_tls13_populate_session( + &session, 0, endpoint_type) == 0); + } else #endif - TEST_ASSERT( ssl_tls12_populate_session( &session, 0, NULL ) == 0 ); + TEST_ASSERT(ssl_tls12_populate_session(&session, 0, NULL) == 0); /* Infer length of serialized session. */ - TEST_ASSERT( mbedtls_ssl_session_save( &session, - serialized_session, - sizeof( serialized_session ), - &serialized_session_len ) == 0 ); + TEST_ASSERT(mbedtls_ssl_session_save(&session, + serialized_session, + sizeof(serialized_session), + &serialized_session_len) == 0); - mbedtls_ssl_session_free( &session ); + mbedtls_ssl_session_free(&session); /* Without any modification, we should be able to successfully * de-serialize the session - double-check that. */ - TEST_ASSERT( mbedtls_ssl_session_load( &session, - serialized_session, - serialized_session_len ) == 0 ); - mbedtls_ssl_session_free( &session ); + TEST_ASSERT(mbedtls_ssl_session_load(&session, + serialized_session, + serialized_session_len) == 0); + mbedtls_ssl_session_free(&session); /* Go through the bytes in the serialized session header and * corrupt them bit-by-bit. */ - for( cur_byte = 0; cur_byte < sizeof( should_corrupt_byte ); cur_byte++ ) - { + for (cur_byte = 0; cur_byte < sizeof(should_corrupt_byte); cur_byte++) { int cur_bit; - unsigned char * const byte = &serialized_session[ cur_byte ]; + unsigned char * const byte = &serialized_session[cur_byte]; - if( should_corrupt_byte[ cur_byte ] == 0 ) + if (should_corrupt_byte[cur_byte] == 0) { continue; + } - for( cur_bit = 0; cur_bit < CHAR_BIT; cur_bit++ ) - { + for (cur_bit = 0; cur_bit < CHAR_BIT; cur_bit++) { unsigned char const corrupted_bit = 0x1u << cur_bit; /* Modify a single bit in the serialized session. */ *byte ^= corrupted_bit; /* Attempt to deserialize */ - TEST_ASSERT( mbedtls_ssl_session_load( &session, - serialized_session, - serialized_session_len ) == - MBEDTLS_ERR_SSL_VERSION_MISMATCH ); + TEST_ASSERT(mbedtls_ssl_session_load(&session, + serialized_session, + serialized_session_len) == + MBEDTLS_ERR_SSL_VERSION_MISMATCH); /* Undo the change */ *byte ^= corrupted_bit; @@ -5135,29 +4939,29 @@ void ssl_session_serialize_version_check( int corrupt_major, /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void mbedtls_endpoint_sanity( int endpoint_type ) +void mbedtls_endpoint_sanity(int endpoint_type) { enum { BUFFSIZE = 1024 }; mbedtls_endpoint ep; int ret = -1; handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.pk_alg = MBEDTLS_PK_RSA; - ret = mbedtls_endpoint_init( NULL, endpoint_type, &options, - NULL, NULL, NULL, NULL ); - TEST_ASSERT( MBEDTLS_ERR_SSL_BAD_INPUT_DATA == ret ); + ret = mbedtls_endpoint_init(NULL, endpoint_type, &options, + NULL, NULL, NULL, NULL); + TEST_ASSERT(MBEDTLS_ERR_SSL_BAD_INPUT_DATA == ret); - ret = mbedtls_endpoint_certificate_init( NULL, options.pk_alg, 0, 0, 0 ); - TEST_ASSERT( MBEDTLS_ERR_SSL_BAD_INPUT_DATA == ret ); + ret = mbedtls_endpoint_certificate_init(NULL, options.pk_alg, 0, 0, 0); + TEST_ASSERT(MBEDTLS_ERR_SSL_BAD_INPUT_DATA == ret); - ret = mbedtls_endpoint_init( &ep, endpoint_type, &options, - NULL, NULL, NULL, NULL ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_endpoint_init(&ep, endpoint_type, &options, + NULL, NULL, NULL, NULL); + TEST_ASSERT(ret == 0); exit: - mbedtls_endpoint_free( &ep, NULL ); - free_handshake_options( &options ); + mbedtls_endpoint_free(&ep, NULL); + free_handshake_options(&options); } /* END_CASE */ @@ -5168,62 +4972,59 @@ void move_handshake_to_state(int endpoint_type, int state, int need_pass) mbedtls_endpoint base_ep, second_ep; int ret = -1; handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.pk_alg = MBEDTLS_PK_RSA; - USE_PSA_INIT( ); - mbedtls_platform_zeroize( &base_ep, sizeof(base_ep) ); - mbedtls_platform_zeroize( &second_ep, sizeof(second_ep) ); + USE_PSA_INIT(); + mbedtls_platform_zeroize(&base_ep, sizeof(base_ep)); + mbedtls_platform_zeroize(&second_ep, sizeof(second_ep)); - ret = mbedtls_endpoint_init( &base_ep, endpoint_type, &options, - NULL, NULL, NULL, NULL ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_endpoint_init(&base_ep, endpoint_type, &options, + NULL, NULL, NULL, NULL); + TEST_ASSERT(ret == 0); - ret = mbedtls_endpoint_init( &second_ep, - ( endpoint_type == MBEDTLS_SSL_IS_SERVER ) ? - MBEDTLS_SSL_IS_CLIENT : MBEDTLS_SSL_IS_SERVER, - &options, NULL, NULL, NULL, NULL ); + ret = mbedtls_endpoint_init(&second_ep, + (endpoint_type == MBEDTLS_SSL_IS_SERVER) ? + MBEDTLS_SSL_IS_CLIENT : MBEDTLS_SSL_IS_SERVER, + &options, NULL, NULL, NULL, NULL); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - ret = mbedtls_mock_socket_connect( &(base_ep.socket), - &(second_ep.socket), - BUFFSIZE ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_mock_socket_connect(&(base_ep.socket), + &(second_ep.socket), + BUFFSIZE); + TEST_ASSERT(ret == 0); - ret = mbedtls_move_handshake_to_state( &(base_ep.ssl), - &(second_ep.ssl), - state ); - if( need_pass ) - { - TEST_ASSERT( ret == 0 || - ret == MBEDTLS_ERR_SSL_WANT_READ || - ret == MBEDTLS_ERR_SSL_WANT_WRITE ); - TEST_ASSERT( base_ep.ssl.state == state ); - } - else - { - TEST_ASSERT( ret != 0 && - ret != MBEDTLS_ERR_SSL_WANT_READ && - ret != MBEDTLS_ERR_SSL_WANT_WRITE ); - TEST_ASSERT( base_ep.ssl.state != state ); + ret = mbedtls_move_handshake_to_state(&(base_ep.ssl), + &(second_ep.ssl), + state); + if (need_pass) { + TEST_ASSERT(ret == 0 || + ret == MBEDTLS_ERR_SSL_WANT_READ || + ret == MBEDTLS_ERR_SSL_WANT_WRITE); + TEST_ASSERT(base_ep.ssl.state == state); + } else { + TEST_ASSERT(ret != 0 && + ret != MBEDTLS_ERR_SSL_WANT_READ && + ret != MBEDTLS_ERR_SSL_WANT_WRITE); + TEST_ASSERT(base_ep.ssl.state != state); } exit: - free_handshake_options( &options ); - mbedtls_endpoint_free( &base_ep, NULL ); - mbedtls_endpoint_free( &second_ep, NULL ); - USE_PSA_DONE( ); + free_handshake_options(&options); + mbedtls_endpoint_free(&base_ep, NULL); + mbedtls_endpoint_free(&second_ep, NULL); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ -void handshake_version( int dtls, int client_min_version, int client_max_version, - int server_min_version, int server_max_version, - int expected_negotiated_version ) +void handshake_version(int dtls, int client_min_version, int client_max_version, + int server_min_version, int server_max_version, + int expected_negotiated_version) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.client_min_version = client_min_version; options.client_max_version = client_max_version; @@ -5232,41 +5033,41 @@ void handshake_version( int dtls, int client_min_version, int client_max_version options.expected_negotiated_version = expected_negotiated_version; options.dtls = dtls; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void handshake_psk_cipher( char* cipher, int pk_alg, data_t *psk_str, int dtls ) +void handshake_psk_cipher(char *cipher, int pk_alg, data_t *psk_str, int dtls) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.cipher = cipher; options.dtls = dtls; options.psk_str = psk_str; options.pk_alg = pk_alg; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void handshake_cipher( char* cipher, int pk_alg, int dtls ) +void handshake_cipher(char *cipher, int pk_alg, int dtls) { - test_handshake_psk_cipher( cipher, pk_alg, NULL, dtls ); + test_handshake_psk_cipher(cipher, pk_alg, NULL, dtls); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; @@ -5274,13 +5075,13 @@ void handshake_cipher( char* cipher, int pk_alg, int dtls ) /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, - int psa_alg, int psa_alg2, int psa_usage, - int expected_handshake_result, - int expected_ciphersuite ) +void handshake_ciphersuite_select(char *cipher, int pk_alg, data_t *psk_str, + int psa_alg, int psa_alg2, int psa_usage, + int expected_handshake_result, + int expected_ciphersuite) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.cipher = cipher; options.psk_str = psk_str; @@ -5290,23 +5091,23 @@ void handshake_ciphersuite_select( char* cipher, int pk_alg, data_t *psk_str, options.opaque_usage = psa_usage; options.expected_handshake_result = expected_handshake_result; options.expected_ciphersuite = expected_ciphersuite; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void app_data( int mfl, int cli_msg_len, int srv_msg_len, - int expected_cli_fragments, - int expected_srv_fragments, int dtls ) +void app_data(int mfl, int cli_msg_len, int srv_msg_len, + int expected_cli_fragments, + int expected_srv_fragments, int dtls) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.mfl = mfl; options.cli_msg_len = cli_msg_len; @@ -5314,62 +5115,64 @@ void app_data( int mfl, int cli_msg_len, int srv_msg_len, options.expected_cli_fragments = expected_cli_fragments; options.expected_srv_fragments = expected_srv_fragments; options.dtls = dtls; -#if ! defined(MBEDTLS_SSL_PROTO_TLS1_2) +#if !defined(MBEDTLS_SSL_PROTO_TLS1_2) options.expected_negotiated_version = MBEDTLS_SSL_VERSION_TLS1_3; #endif - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ -void app_data_tls( int mfl, int cli_msg_len, int srv_msg_len, - int expected_cli_fragments, - int expected_srv_fragments ) +void app_data_tls(int mfl, int cli_msg_len, int srv_msg_len, + int expected_cli_fragments, + int expected_srv_fragments) { - test_app_data( mfl, cli_msg_len, srv_msg_len, expected_cli_fragments, - expected_srv_fragments, 0 ); + test_app_data(mfl, cli_msg_len, srv_msg_len, expected_cli_fragments, + expected_srv_fragments, 0); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void app_data_dtls( int mfl, int cli_msg_len, int srv_msg_len, - int expected_cli_fragments, - int expected_srv_fragments ) +void app_data_dtls(int mfl, int cli_msg_len, int srv_msg_len, + int expected_cli_fragments, + int expected_srv_fragments) { - test_app_data( mfl, cli_msg_len, srv_msg_len, expected_cli_fragments, - expected_srv_fragments, 1 ); + test_app_data(mfl, cli_msg_len, srv_msg_len, expected_cli_fragments, + expected_srv_fragments, 1); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void handshake_serialization( ) +void handshake_serialization() { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.serialize = 1; options.dtls = 1; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) +void handshake_fragmentation(int mfl, + int expected_srv_hs_fragmentation, + int expected_cli_hs_fragmentation) { handshake_test_options options; log_pattern srv_pattern, cli_pattern; @@ -5378,7 +5181,7 @@ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int ex srv_pattern.counter = 0; cli_pattern.counter = 0; - init_handshake_options( &options ); + init_handshake_options(&options); options.dtls = 1; options.mfl = mfl; /* Set cipher to one using CBC so that record splitting can be tested */ @@ -5389,49 +5192,47 @@ void handshake_fragmentation( int mfl, int expected_srv_hs_fragmentation, int ex options.srv_log_fun = log_analyzer; options.cli_log_fun = log_analyzer; - perform_handshake( &options ); + perform_handshake(&options); /* Test if the server received a fragmented handshake */ - if( expected_srv_hs_fragmentation ) - { - TEST_ASSERT( srv_pattern.counter >= 1 ); + if (expected_srv_hs_fragmentation) { + TEST_ASSERT(srv_pattern.counter >= 1); } /* Test if the client received a fragmented handshake */ - if( expected_cli_hs_fragmentation ) - { - TEST_ASSERT( cli_pattern.counter >= 1 ); + if (expected_cli_hs_fragmentation) { + TEST_ASSERT(cli_pattern.counter >= 1); } exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void renegotiation( int legacy_renegotiation ) +void renegotiation(int legacy_renegotiation) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.renegotiate = 1; options.legacy_renegotiation = legacy_renegotiation; options.dtls = 1; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, - int serialize, int dtls, char *cipher ) +void resize_buffers(int mfl, int renegotiation, int legacy_renegotiation, + int serialize, int dtls, char *cipher) { handshake_test_options options; - init_handshake_options( &options ); + init_handshake_options(&options); options.mfl = mfl; options.cipher = cipher; @@ -5441,20 +5242,20 @@ void resize_buffers( int mfl, int renegotiation, int legacy_renegotiation, options.dtls = dtls; options.resize_buffers = 1; - perform_handshake( &options ); + perform_handshake(&options); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; exit: - free_handshake_options( &options ); + free_handshake_options(&options); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void resize_buffers_serialize_mfl( int mfl ) +void resize_buffers_serialize_mfl(int mfl) { - test_resize_buffers( mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, - (char *) "" ); + test_resize_buffers(mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, + (char *) ""); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; @@ -5462,10 +5263,10 @@ void resize_buffers_serialize_mfl( int mfl ) /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void resize_buffers_renegotiate_mfl( int mfl, int legacy_renegotiation, - char *cipher ) +void resize_buffers_renegotiate_mfl(int mfl, int legacy_renegotiation, + char *cipher) { - test_resize_buffers( mfl, 1, legacy_renegotiation, 0, 1, cipher ); + test_resize_buffers(mfl, 1, legacy_renegotiation, 0, 1, cipher); /* The goto below is used to avoid an "unused label" warning.*/ goto exit; @@ -5483,27 +5284,27 @@ void test_multiple_psks() mbedtls_ssl_config conf; - USE_PSA_INIT( ); - mbedtls_ssl_config_init( &conf ); + USE_PSA_INIT(); + mbedtls_ssl_config_init(&conf); - TEST_ASSERT( mbedtls_ssl_conf_psk( &conf, - psk0, sizeof( psk0 ), - psk0_identity, sizeof( psk0_identity ) ) == 0 ); - TEST_ASSERT( mbedtls_ssl_conf_psk( &conf, - psk1, sizeof( psk1 ), - psk1_identity, sizeof( psk1_identity ) ) == - MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + TEST_ASSERT(mbedtls_ssl_conf_psk(&conf, + psk0, sizeof(psk0), + psk0_identity, sizeof(psk0_identity)) == 0); + TEST_ASSERT(mbedtls_ssl_conf_psk(&conf, + psk1, sizeof(psk1), + psk1_identity, sizeof(psk1_identity)) == + MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE); exit: - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_config_free(&conf); - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_PSK_ENABLED:MBEDTLS_USE_PSA_CRYPTO */ -void test_multiple_psks_opaque( int mode ) +void test_multiple_psks_opaque(int mode) { /* * Mode 0: Raw PSK, then opaque PSK @@ -5514,95 +5315,98 @@ void test_multiple_psks_opaque( int mode ) unsigned char psk0_raw[10] = { 0 }; unsigned char psk0_raw_identity[] = { 'f', 'o', 'o' }; - mbedtls_svc_key_id_t psk0_opaque = mbedtls_svc_key_id_make( 0x1, (psa_key_id_t) 1 ); + mbedtls_svc_key_id_t psk0_opaque = mbedtls_svc_key_id_make(0x1, (psa_key_id_t) 1); unsigned char psk0_opaque_identity[] = { 'f', 'o', 'o' }; unsigned char psk1_raw[10] = { 0 }; unsigned char psk1_raw_identity[] = { 'b', 'a', 'r' }; - mbedtls_svc_key_id_t psk1_opaque = mbedtls_svc_key_id_make( 0x1, (psa_key_id_t) 2 ); + mbedtls_svc_key_id_t psk1_opaque = mbedtls_svc_key_id_make(0x1, (psa_key_id_t) 2); unsigned char psk1_opaque_identity[] = { 'b', 'a', 'r' }; mbedtls_ssl_config conf; - USE_PSA_INIT( ); - mbedtls_ssl_config_init( &conf ); + USE_PSA_INIT(); + mbedtls_ssl_config_init(&conf); - switch( mode ) - { + switch (mode) { case 0: - TEST_ASSERT( mbedtls_ssl_conf_psk( &conf, - psk0_raw, sizeof( psk0_raw ), - psk0_raw_identity, sizeof( psk0_raw_identity ) ) - == 0 ); - TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf, - psk1_opaque, - psk1_opaque_identity, sizeof( psk1_opaque_identity ) ) - == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + TEST_ASSERT(mbedtls_ssl_conf_psk(&conf, + psk0_raw, sizeof(psk0_raw), + psk0_raw_identity, sizeof(psk0_raw_identity)) + == 0); + TEST_ASSERT(mbedtls_ssl_conf_psk_opaque(&conf, + psk1_opaque, + psk1_opaque_identity, + sizeof(psk1_opaque_identity)) + == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE); break; case 1: - TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf, - psk0_opaque, - psk0_opaque_identity, sizeof( psk0_opaque_identity ) ) - == 0 ); - TEST_ASSERT( mbedtls_ssl_conf_psk( &conf, - psk1_raw, sizeof( psk1_raw ), - psk1_raw_identity, sizeof( psk1_raw_identity ) ) - == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + TEST_ASSERT(mbedtls_ssl_conf_psk_opaque(&conf, + psk0_opaque, + psk0_opaque_identity, + sizeof(psk0_opaque_identity)) + == 0); + TEST_ASSERT(mbedtls_ssl_conf_psk(&conf, + psk1_raw, sizeof(psk1_raw), + psk1_raw_identity, sizeof(psk1_raw_identity)) + == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE); break; case 2: - TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf, - psk0_opaque, - psk0_opaque_identity, sizeof( psk0_opaque_identity ) ) - == 0 ); - TEST_ASSERT( mbedtls_ssl_conf_psk_opaque( &conf, - psk1_opaque, - psk1_opaque_identity, sizeof( psk1_opaque_identity ) ) - == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); + TEST_ASSERT(mbedtls_ssl_conf_psk_opaque(&conf, + psk0_opaque, + psk0_opaque_identity, + sizeof(psk0_opaque_identity)) + == 0); + TEST_ASSERT(mbedtls_ssl_conf_psk_opaque(&conf, + psk1_opaque, + psk1_opaque_identity, + sizeof(psk1_opaque_identity)) + == MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE); break; default: - TEST_ASSERT( 0 ); + TEST_ASSERT(0); break; } exit: - mbedtls_ssl_config_free( &conf ); - USE_PSA_DONE( ); + mbedtls_ssl_config_free(&conf); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void conf_version( int endpoint, int transport, - int min_tls_version, int max_tls_version, - int expected_ssl_setup_result ) +void conf_version(int endpoint, int transport, + int min_tls_version, int max_tls_version, + int expected_ssl_setup_result) { mbedtls_ssl_config conf; mbedtls_ssl_context ssl; - mbedtls_ssl_config_init( &conf ); - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_config_init(&conf); + mbedtls_ssl_init(&ssl); - mbedtls_ssl_conf_endpoint( &conf, endpoint ); - mbedtls_ssl_conf_transport( &conf, transport ); - mbedtls_ssl_conf_min_tls_version( &conf, min_tls_version ); - mbedtls_ssl_conf_max_tls_version( &conf, max_tls_version ); + mbedtls_ssl_conf_endpoint(&conf, endpoint); + mbedtls_ssl_conf_transport(&conf, transport); + mbedtls_ssl_conf_min_tls_version(&conf, min_tls_version); + mbedtls_ssl_conf_max_tls_version(&conf, max_tls_version); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == expected_ssl_setup_result ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == expected_ssl_setup_result); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ @@ -5620,30 +5424,32 @@ void conf_curve() MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; mbedtls_ssl_config conf; - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_config_init(&conf); #if defined(MBEDTLS_SSL_PROTO_TLS1_2) - mbedtls_ssl_conf_max_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_2 ); - mbedtls_ssl_conf_min_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_2 ); + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + mbedtls_ssl_conf_min_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); #else - mbedtls_ssl_conf_max_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_3 ); - mbedtls_ssl_conf_min_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_3 ); + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_3); + mbedtls_ssl_conf_min_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_3); #endif - mbedtls_ssl_conf_curves( &conf, curve_list ); + mbedtls_ssl_conf_curves(&conf, curve_list); mbedtls_ssl_context ssl; - mbedtls_ssl_init( &ssl ); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + mbedtls_ssl_init(&ssl); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - TEST_ASSERT( ssl.handshake != NULL && ssl.handshake->group_list != NULL ); - TEST_ASSERT( ssl.conf != NULL && ssl.conf->group_list == NULL ); + TEST_ASSERT(ssl.handshake != NULL && ssl.handshake->group_list != NULL); + TEST_ASSERT(ssl.conf != NULL && ssl.conf->group_list == NULL); - TEST_EQUAL( ssl.handshake->group_list[ARRAY_LENGTH( iana_tls_group_list ) - 1], MBEDTLS_SSL_IANA_TLS_GROUP_NONE ); + TEST_EQUAL(ssl.handshake->group_list[ARRAY_LENGTH(iana_tls_group_list) - 1], + MBEDTLS_SSL_IANA_TLS_GROUP_NONE); - for( size_t i = 0; i < ARRAY_LENGTH( iana_tls_group_list ); i++ ) - TEST_EQUAL( iana_tls_group_list[i], ssl.handshake->group_list[i] ); + for (size_t i = 0; i < ARRAY_LENGTH(iana_tls_group_list); i++) { + TEST_EQUAL(iana_tls_group_list[i], ssl.handshake->group_list[i]); + } - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ @@ -5651,36 +5457,38 @@ void conf_curve() void conf_group() { uint16_t iana_tls_group_list[] = { MBEDTLS_SSL_IANA_TLS_GROUP_SECP192R1, - MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1, - MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, - MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; + MBEDTLS_SSL_IANA_TLS_GROUP_SECP224R1, + MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, + MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; mbedtls_ssl_config conf; - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_config_init(&conf); - mbedtls_ssl_conf_max_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_2 ); - mbedtls_ssl_conf_min_tls_version( &conf, MBEDTLS_SSL_VERSION_TLS1_2 ); + mbedtls_ssl_conf_max_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); + mbedtls_ssl_conf_min_tls_version(&conf, MBEDTLS_SSL_VERSION_TLS1_2); - mbedtls_ssl_conf_groups( &conf, iana_tls_group_list ); + mbedtls_ssl_conf_groups(&conf, iana_tls_group_list); mbedtls_ssl_context ssl; - mbedtls_ssl_init( &ssl ); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + mbedtls_ssl_init(&ssl); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); - TEST_ASSERT( ssl.conf != NULL && ssl.conf->group_list != NULL ); + TEST_ASSERT(ssl.conf != NULL && ssl.conf->group_list != NULL); - TEST_EQUAL( ssl.conf->group_list[ARRAY_LENGTH( iana_tls_group_list ) - 1], MBEDTLS_SSL_IANA_TLS_GROUP_NONE ); + TEST_EQUAL(ssl.conf->group_list[ARRAY_LENGTH(iana_tls_group_list) - 1], + MBEDTLS_SSL_IANA_TLS_GROUP_NONE); - for( size_t i = 0; i < ARRAY_LENGTH( iana_tls_group_list ); i++ ) - TEST_EQUAL( iana_tls_group_list[i], ssl.conf->group_list[i] ); + for (size_t i = 0; i < ARRAY_LENGTH(iana_tls_group_list); i++) { + TEST_EQUAL(iana_tls_group_list[i], ssl.conf->group_list[i]); + } - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_CACHE_C:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_DEBUG_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void force_bad_session_id_len( ) +void force_bad_session_id_len() { enum { BUFFSIZE = 1024 }; handshake_test_options options; @@ -5690,103 +5498,102 @@ void force_bad_session_id_len( ) srv_pattern.pattern = cli_pattern.pattern = "cache did not store session"; srv_pattern.counter = 0; - init_handshake_options( &options ); + init_handshake_options(&options); options.srv_log_obj = &srv_pattern; options.srv_log_fun = log_analyzer; - USE_PSA_INIT( ); - mbedtls_platform_zeroize( &client, sizeof(client) ); - mbedtls_platform_zeroize( &server, sizeof(server) ); + USE_PSA_INIT(); + mbedtls_platform_zeroize(&client, sizeof(client)); + mbedtls_platform_zeroize(&server, sizeof(server)); - mbedtls_message_socket_init( &server_context ); - mbedtls_message_socket_init( &client_context ); + mbedtls_message_socket_init(&server_context); + mbedtls_message_socket_init(&client_context); - TEST_ASSERT( mbedtls_endpoint_init( &client, MBEDTLS_SSL_IS_CLIENT, - &options, NULL, NULL, - NULL, NULL ) == 0 ); + TEST_ASSERT(mbedtls_endpoint_init(&client, MBEDTLS_SSL_IS_CLIENT, + &options, NULL, NULL, + NULL, NULL) == 0); - TEST_ASSERT( mbedtls_endpoint_init( &server, MBEDTLS_SSL_IS_SERVER, - &options, NULL, NULL, NULL, - NULL ) == 0 ); + TEST_ASSERT(mbedtls_endpoint_init(&server, MBEDTLS_SSL_IS_SERVER, + &options, NULL, NULL, NULL, + NULL) == 0); - mbedtls_debug_set_threshold( 1 ); - mbedtls_ssl_conf_dbg( &server.conf, options.srv_log_fun, - options.srv_log_obj ); + mbedtls_debug_set_threshold(1); + mbedtls_ssl_conf_dbg(&server.conf, options.srv_log_fun, + options.srv_log_obj); - TEST_ASSERT( mbedtls_mock_socket_connect( &(client.socket), - &(server.socket), - BUFFSIZE ) == 0 ); + TEST_ASSERT(mbedtls_mock_socket_connect(&(client.socket), + &(server.socket), + BUFFSIZE) == 0); - TEST_ASSERT( mbedtls_move_handshake_to_state( &(client.ssl), - &(server.ssl), - MBEDTLS_SSL_HANDSHAKE_WRAPUP ) - == 0 ); + TEST_ASSERT(mbedtls_move_handshake_to_state(&(client.ssl), + &(server.ssl), + MBEDTLS_SSL_HANDSHAKE_WRAPUP) + == 0); /* Force a bad session_id_len that will be read by the server in * mbedtls_ssl_cache_set. */ server.ssl.session_negotiate->id_len = 33; - if( options.cli_msg_len != 0 || options.srv_msg_len != 0 ) - { + if (options.cli_msg_len != 0 || options.srv_msg_len != 0) { /* Start data exchanging test */ - TEST_ASSERT( mbedtls_exchange_data( &(client.ssl), options.cli_msg_len, - options.expected_cli_fragments, - &(server.ssl), options.srv_msg_len, - options.expected_srv_fragments ) - == 0 ); + TEST_ASSERT(mbedtls_exchange_data(&(client.ssl), options.cli_msg_len, + options.expected_cli_fragments, + &(server.ssl), options.srv_msg_len, + options.expected_srv_fragments) + == 0); } /* Make sure that the cache did not store the session */ - TEST_EQUAL( srv_pattern.counter, 1 ); + TEST_EQUAL(srv_pattern.counter, 1); exit: - mbedtls_endpoint_free( &client, NULL ); - mbedtls_endpoint_free( &server, NULL ); - free_handshake_options( &options ); - mbedtls_debug_set_threshold( 0 ); - USE_PSA_DONE( ); + mbedtls_endpoint_free(&client, NULL); + mbedtls_endpoint_free(&server, NULL); + free_handshake_options(&options); + mbedtls_debug_set_threshold(0); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE:MBEDTLS_TEST_HOOKS */ -void cookie_parsing( data_t *cookie, int exp_ret ) +void cookie_parsing(data_t *cookie, int exp_ret) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; size_t len; - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); - TEST_EQUAL( mbedtls_ssl_config_defaults( &conf, MBEDTLS_SSL_IS_SERVER, - MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ), - 0 ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); + TEST_EQUAL(mbedtls_ssl_config_defaults(&conf, MBEDTLS_SSL_IS_SERVER, + MBEDTLS_SSL_TRANSPORT_DATAGRAM, + MBEDTLS_SSL_PRESET_DEFAULT), + 0); - TEST_EQUAL( mbedtls_ssl_setup( &ssl, &conf ), 0 ); - TEST_EQUAL( mbedtls_ssl_check_dtls_clihlo_cookie( &ssl, ssl.cli_id, - ssl.cli_id_len, - cookie->x, cookie->len, - ssl.out_buf, - MBEDTLS_SSL_OUT_CONTENT_LEN, - &len ), - exp_ret ); + TEST_EQUAL(mbedtls_ssl_setup(&ssl, &conf), 0); + TEST_EQUAL(mbedtls_ssl_check_dtls_clihlo_cookie(&ssl, ssl.cli_id, + ssl.cli_id_len, + cookie->x, cookie->len, + ssl.out_buf, + MBEDTLS_SSL_OUT_CONTENT_LEN, + &len), + exp_ret); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TIMING_C:MBEDTLS_HAVE_TIME */ -void timing_final_delay_accessor( ) +void timing_final_delay_accessor() { mbedtls_timing_delay_context delay_context; - mbedtls_timing_set_delay( &delay_context, 50, 100 ); + mbedtls_timing_set_delay(&delay_context, 50, 100); - TEST_ASSERT( mbedtls_timing_get_final_delay( &delay_context ) == 100 ); + TEST_ASSERT(mbedtls_timing_get_final_delay(&delay_context) == 100); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_DTLS_CONNECTION_ID */ -void cid_sanity( ) +void cid_sanity() { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; @@ -5796,78 +5603,78 @@ void cid_sanity( ) int cid_enabled; size_t own_cid_len; - mbedtls_test_rnd_std_rand( NULL, own_cid, sizeof( own_cid ) ); + mbedtls_test_rnd_std_rand(NULL, own_cid, sizeof(own_cid)); - mbedtls_ssl_init( &ssl ); - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_init(&ssl); + mbedtls_ssl_config_init(&conf); - TEST_ASSERT( mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT) + == 0); - TEST_ASSERT( mbedtls_ssl_setup( &ssl, &conf ) == 0 ); + TEST_ASSERT(mbedtls_ssl_setup(&ssl, &conf) == 0); /* Can't use CID functions with stream transport. */ - TEST_ASSERT( mbedtls_ssl_set_cid( &ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, - sizeof( own_cid ) ) - == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_ssl_set_cid(&ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, + sizeof(own_cid)) + == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_ssl_get_own_cid( &ssl, &cid_enabled, test_cid, - &own_cid_len ) - == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_ssl_get_own_cid(&ssl, &cid_enabled, test_cid, + &own_cid_len) + == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_DATAGRAM, - MBEDTLS_SSL_PRESET_DEFAULT ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_DATAGRAM, + MBEDTLS_SSL_PRESET_DEFAULT) + == 0); /* Attempt to set config cid size too big. */ - TEST_ASSERT( mbedtls_ssl_conf_cid( &conf, MBEDTLS_SSL_CID_IN_LEN_MAX + 1, - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ) - == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_ssl_conf_cid(&conf, MBEDTLS_SSL_CID_IN_LEN_MAX + 1, + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE) + == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_ssl_conf_cid( &conf, sizeof( own_cid ), - MBEDTLS_SSL_UNEXPECTED_CID_IGNORE ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_conf_cid(&conf, sizeof(own_cid), + MBEDTLS_SSL_UNEXPECTED_CID_IGNORE) + == 0); /* Attempt to set CID length not matching config. */ - TEST_ASSERT( mbedtls_ssl_set_cid( &ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, - MBEDTLS_SSL_CID_IN_LEN_MAX - 1 ) - == MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + TEST_ASSERT(mbedtls_ssl_set_cid(&ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, + MBEDTLS_SSL_CID_IN_LEN_MAX - 1) + == MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - TEST_ASSERT( mbedtls_ssl_set_cid( &ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, - sizeof( own_cid ) ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_set_cid(&ssl, MBEDTLS_SSL_CID_ENABLED, own_cid, + sizeof(own_cid)) + == 0); /* Test we get back what we put in. */ - TEST_ASSERT( mbedtls_ssl_get_own_cid( &ssl, &cid_enabled, test_cid, - &own_cid_len ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_get_own_cid(&ssl, &cid_enabled, test_cid, + &own_cid_len) + == 0); - TEST_EQUAL( cid_enabled, MBEDTLS_SSL_CID_ENABLED ); - ASSERT_COMPARE( own_cid, own_cid_len, test_cid, own_cid_len ); + TEST_EQUAL(cid_enabled, MBEDTLS_SSL_CID_ENABLED); + ASSERT_COMPARE(own_cid, own_cid_len, test_cid, own_cid_len); /* Test disabling works. */ - TEST_ASSERT( mbedtls_ssl_set_cid( &ssl, MBEDTLS_SSL_CID_DISABLED, NULL, - 0 ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_set_cid(&ssl, MBEDTLS_SSL_CID_DISABLED, NULL, + 0) + == 0); - TEST_ASSERT( mbedtls_ssl_get_own_cid( &ssl, &cid_enabled, test_cid, - &own_cid_len ) - == 0 ); + TEST_ASSERT(mbedtls_ssl_get_own_cid(&ssl, &cid_enabled, test_cid, + &own_cid_len) + == 0); - TEST_EQUAL( cid_enabled, MBEDTLS_SSL_CID_DISABLED ); + TEST_EQUAL(cid_enabled, MBEDTLS_SSL_CID_DISABLED); - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_USE_PSA_CRYPTO:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECDSA_C */ -void raw_key_agreement_fail( int bad_server_ecdhe_key ) +void raw_key_agreement_fail(int bad_server_ecdhe_key) { enum { BUFFSIZE = 17000 }; mbedtls_endpoint client, server; @@ -5877,68 +5684,68 @@ void raw_key_agreement_fail( int bad_server_ecdhe_key ) uint16_t iana_tls_group_list[] = { MBEDTLS_SSL_IANA_TLS_GROUP_SECP256R1, MBEDTLS_SSL_IANA_TLS_GROUP_NONE }; - USE_PSA_INIT( ); - mbedtls_platform_zeroize( &client, sizeof(client) ); - mbedtls_platform_zeroize( &server, sizeof(server) ); + USE_PSA_INIT(); + mbedtls_platform_zeroize(&client, sizeof(client)); + mbedtls_platform_zeroize(&server, sizeof(server)); - init_handshake_options( &options ); + init_handshake_options(&options); options.pk_alg = MBEDTLS_PK_ECDSA; /* Client side, force SECP256R1 to make one key bitflip fail * the raw key agreement. Flipping the first byte makes the * required 0x04 identifier invalid. */ - TEST_EQUAL( mbedtls_endpoint_init( &client, MBEDTLS_SSL_IS_CLIENT, - &options, NULL, NULL, - NULL, iana_tls_group_list ), 0 ); + TEST_EQUAL(mbedtls_endpoint_init(&client, MBEDTLS_SSL_IS_CLIENT, + &options, NULL, NULL, + NULL, iana_tls_group_list), 0); /* Server side */ - TEST_EQUAL( mbedtls_endpoint_init( &server, MBEDTLS_SSL_IS_SERVER, - &options, NULL, NULL, - NULL, NULL ), 0 ); + TEST_EQUAL(mbedtls_endpoint_init(&server, MBEDTLS_SSL_IS_SERVER, + &options, NULL, NULL, + NULL, NULL), 0); - TEST_EQUAL( mbedtls_mock_socket_connect( &(client.socket), - &(server.socket), - BUFFSIZE ), 0 ); + TEST_EQUAL(mbedtls_mock_socket_connect(&(client.socket), + &(server.socket), + BUFFSIZE), 0); - TEST_EQUAL( mbedtls_move_handshake_to_state( &(client.ssl), - &(server.ssl), - MBEDTLS_SSL_CLIENT_KEY_EXCHANGE ) - , 0 ); + TEST_EQUAL(mbedtls_move_handshake_to_state(&(client.ssl), + &(server.ssl), + MBEDTLS_SSL_CLIENT_KEY_EXCHANGE) + , 0); - mbedtls_psa_get_stats( &stats ); + mbedtls_psa_get_stats(&stats); /* Save the number of slots in use up to this point. * With PSA, one can be used for the ECDH private key. */ free_slots_before = stats.empty_slots; - if( bad_server_ecdhe_key ) - { + if (bad_server_ecdhe_key) { /* Force a simulated bitflip in the server key. to make the * raw key agreement in ssl_write_client_key_exchange fail. */ (client.ssl).handshake->ecdh_psa_peerkey[0] ^= 0x02; } - TEST_EQUAL( mbedtls_move_handshake_to_state( &(client.ssl), - &(server.ssl), - MBEDTLS_SSL_HANDSHAKE_OVER ), - bad_server_ecdhe_key ? MBEDTLS_ERR_SSL_HW_ACCEL_FAILED : 0 ); + TEST_EQUAL(mbedtls_move_handshake_to_state(&(client.ssl), + &(server.ssl), + MBEDTLS_SSL_HANDSHAKE_OVER), + bad_server_ecdhe_key ? MBEDTLS_ERR_SSL_HW_ACCEL_FAILED : 0); - mbedtls_psa_get_stats( &stats ); + mbedtls_psa_get_stats(&stats); /* Make sure that the key slot is already destroyed in case of failure, * without waiting to close the connection. */ - if( bad_server_ecdhe_key ) - TEST_EQUAL( free_slots_before, stats.empty_slots ); + if (bad_server_ecdhe_key) { + TEST_EQUAL(free_slots_before, stats.empty_slots); + } exit: - mbedtls_endpoint_free( &client, NULL ); - mbedtls_endpoint_free( &server, NULL ); - free_handshake_options( &options ); + mbedtls_endpoint_free(&client, NULL); + mbedtls_endpoint_free(&server, NULL); + free_handshake_options(&options); - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_CLI_C:MBEDTLS_SSL_SRV_C:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_ECP_DP_SECP384R1_ENABLED */ -void tls13_server_certificate_msg_invalid_vector_len( ) +void tls13_server_certificate_msg_invalid_vector_len() { int ret = -1; mbedtls_endpoint client_ep, server_ep; @@ -5953,47 +5760,46 @@ void tls13_server_certificate_msg_invalid_vector_len( ) /* * Test set-up */ - USE_PSA_INIT( ); - mbedtls_platform_zeroize( &client_ep, sizeof(client_ep) ); - mbedtls_platform_zeroize( &server_ep, sizeof(server_ep) ); + USE_PSA_INIT(); + mbedtls_platform_zeroize(&client_ep, sizeof(client_ep)); + mbedtls_platform_zeroize(&server_ep, sizeof(server_ep)); - init_handshake_options( &client_options ); + init_handshake_options(&client_options); client_options.pk_alg = MBEDTLS_PK_ECDSA; - ret = mbedtls_endpoint_init( &client_ep, MBEDTLS_SSL_IS_CLIENT, - &client_options, NULL, NULL, NULL, NULL ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_endpoint_init(&client_ep, MBEDTLS_SSL_IS_CLIENT, + &client_options, NULL, NULL, NULL, NULL); + TEST_EQUAL(ret, 0); - init_handshake_options( &server_options ); + init_handshake_options(&server_options); server_options.pk_alg = MBEDTLS_PK_ECDSA; - ret = mbedtls_endpoint_init( &server_ep, MBEDTLS_SSL_IS_SERVER, - &server_options, NULL, NULL, NULL, NULL ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_endpoint_init(&server_ep, MBEDTLS_SSL_IS_SERVER, + &server_options, NULL, NULL, NULL, NULL); + TEST_EQUAL(ret, 0); - ret = mbedtls_mock_socket_connect( &(client_ep.socket), - &(server_ep.socket), 1024 ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_mock_socket_connect(&(client_ep.socket), + &(server_ep.socket), 1024); + TEST_EQUAL(ret, 0); - while( 1 ) - { - mbedtls_test_set_step( ++step ); + while (1) { + mbedtls_test_set_step(++step); - ret = mbedtls_move_handshake_to_state( &(server_ep.ssl), - &(client_ep.ssl), - MBEDTLS_SSL_CERTIFICATE_VERIFY ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_move_handshake_to_state(&(server_ep.ssl), + &(client_ep.ssl), + MBEDTLS_SSL_CERTIFICATE_VERIFY); + TEST_EQUAL(ret, 0); - ret = mbedtls_ssl_flush_output( &(server_ep.ssl) ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_ssl_flush_output(&(server_ep.ssl)); + TEST_EQUAL(ret, 0); - ret = mbedtls_move_handshake_to_state( &(client_ep.ssl), - &(server_ep.ssl), - MBEDTLS_SSL_SERVER_CERTIFICATE ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_move_handshake_to_state(&(client_ep.ssl), + &(server_ep.ssl), + MBEDTLS_SSL_SERVER_CERTIFICATE); + TEST_EQUAL(ret, 0); - ret = mbedtls_ssl_tls13_fetch_handshake_msg( &(client_ep.ssl), - MBEDTLS_SSL_HS_CERTIFICATE, - &buf, &buf_len ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_ssl_tls13_fetch_handshake_msg(&(client_ep.ssl), + MBEDTLS_SSL_HS_CERTIFICATE, + &buf, &buf_len); + TEST_EQUAL(ret, 0); end = buf + buf_len; @@ -6002,192 +5808,191 @@ void tls13_server_certificate_msg_invalid_vector_len( ) */ ret = tweak_tls13_certificate_msg_vector_len( - buf, &end, step, &expected_result, &expected_chk_buf_ptr_args ); + buf, &end, step, &expected_result, &expected_chk_buf_ptr_args); - if( ret != 0 ) + if (ret != 0) { break; + } - ret = mbedtls_ssl_tls13_parse_certificate( &(client_ep.ssl), buf, end ); - TEST_EQUAL( ret, expected_result ); + ret = mbedtls_ssl_tls13_parse_certificate(&(client_ep.ssl), buf, end); + TEST_EQUAL(ret, expected_result); - TEST_ASSERT( mbedtls_ssl_cmp_chk_buf_ptr_fail_args( - &expected_chk_buf_ptr_args ) == 0 ); + TEST_ASSERT(mbedtls_ssl_cmp_chk_buf_ptr_fail_args( + &expected_chk_buf_ptr_args) == 0); - mbedtls_ssl_reset_chk_buf_ptr_fail_args( ); + mbedtls_ssl_reset_chk_buf_ptr_fail_args(); - ret = mbedtls_ssl_session_reset( &(client_ep.ssl) ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_ssl_session_reset(&(client_ep.ssl)); + TEST_EQUAL(ret, 0); - ret = mbedtls_ssl_session_reset( &(server_ep.ssl) ); - TEST_EQUAL( ret, 0 ); + ret = mbedtls_ssl_session_reset(&(server_ep.ssl)); + TEST_EQUAL(ret, 0); } exit: - mbedtls_ssl_reset_chk_buf_ptr_fail_args( ); - mbedtls_endpoint_free( &client_ep, NULL ); - mbedtls_endpoint_free( &server_ep, NULL ); - free_handshake_options( &client_options ); - free_handshake_options( &server_options ); - USE_PSA_DONE( ); + mbedtls_ssl_reset_chk_buf_ptr_fail_args(); + mbedtls_endpoint_free(&client_ep, NULL); + mbedtls_endpoint_free(&server_ep, NULL); + free_handshake_options(&client_options); + free_handshake_options(&server_options); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ -void ssl_ecjpake_set_password( int use_opaque_arg ) +void ssl_ecjpake_set_password(int use_opaque_arg) { mbedtls_ssl_context ssl; mbedtls_ssl_config conf; -#if defined( MBEDTLS_USE_PSA_CRYPTO ) +#if defined(MBEDTLS_USE_PSA_CRYPTO) mbedtls_svc_key_id_t pwd_slot = MBEDTLS_SVC_KEY_ID_INIT; #else /* MBEDTLS_USE_PSA_CRYPTO */ (void) use_opaque_arg; #endif /* MBEDTLS_USE_PSA_CRYPTO */ - unsigned char pwd_string[ sizeof(ECJPAKE_TEST_PWD) ] = ""; + unsigned char pwd_string[sizeof(ECJPAKE_TEST_PWD)] = ""; size_t pwd_len = 0; int ret; - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_ssl_init( &ssl ); + mbedtls_ssl_init(&ssl); /* test with uninitalized SSL context */ - ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ECJPAKE_TEST_SET_PASSWORD(MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - mbedtls_ssl_config_init( &conf ); + mbedtls_ssl_config_init(&conf); - TEST_EQUAL( mbedtls_ssl_config_defaults( &conf, - MBEDTLS_SSL_IS_CLIENT, - MBEDTLS_SSL_TRANSPORT_STREAM, - MBEDTLS_SSL_PRESET_DEFAULT ), 0 ); + TEST_EQUAL(mbedtls_ssl_config_defaults(&conf, + MBEDTLS_SSL_IS_CLIENT, + MBEDTLS_SSL_TRANSPORT_STREAM, + MBEDTLS_SSL_PRESET_DEFAULT), 0); - TEST_EQUAL( mbedtls_ssl_setup( &ssl, &conf ), 0 ); + TEST_EQUAL(mbedtls_ssl_setup(&ssl, &conf), 0); /* test with empty password or unitialized password key (depending on use_opaque_arg) */ - ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); + ECJPAKE_TEST_SET_PASSWORD(MBEDTLS_ERR_SSL_BAD_INPUT_DATA); - pwd_len = strlen( ECJPAKE_TEST_PWD ); - memcpy( pwd_string, ECJPAKE_TEST_PWD, pwd_len ); + pwd_len = strlen(ECJPAKE_TEST_PWD); + memcpy(pwd_string, ECJPAKE_TEST_PWD, pwd_len); -#if defined( MBEDTLS_USE_PSA_CRYPTO ) - if( use_opaque_arg ) - { +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if (use_opaque_arg) { psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_attributes_t check_attributes = PSA_KEY_ATTRIBUTES_INIT; /* First try with an invalid usage */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); - psa_set_key_algorithm( &attributes, PSA_ALG_JPAKE ); - psa_set_key_type( &attributes, PSA_KEY_TYPE_PASSWORD ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_SIGN_HASH); + psa_set_key_algorithm(&attributes, PSA_ALG_JPAKE); + psa_set_key_type(&attributes, PSA_KEY_TYPE_PASSWORD); - PSA_ASSERT( psa_import_key( &attributes, pwd_string, - pwd_len, &pwd_slot ) ); + PSA_ASSERT(psa_import_key(&attributes, pwd_string, + pwd_len, &pwd_slot)); - ECJPAKE_TEST_SET_PASSWORD( MBEDTLS_ERR_SSL_HW_ACCEL_FAILED ); + ECJPAKE_TEST_SET_PASSWORD(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED); /* check that the opaque key is still valid after failure */ - TEST_EQUAL( psa_get_key_attributes( pwd_slot, &check_attributes ), - PSA_SUCCESS ); + TEST_EQUAL(psa_get_key_attributes(pwd_slot, &check_attributes), + PSA_SUCCESS); - psa_destroy_key( pwd_slot ); + psa_destroy_key(pwd_slot); /* Then set the correct usage */ - psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_DERIVE ); + psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DERIVE); - PSA_ASSERT( psa_import_key( &attributes, pwd_string, - pwd_len, &pwd_slot ) ); + PSA_ASSERT(psa_import_key(&attributes, pwd_string, + pwd_len, &pwd_slot)); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ /* final check which should work without errors */ - ECJPAKE_TEST_SET_PASSWORD( 0 ); + ECJPAKE_TEST_SET_PASSWORD(0); -#if defined( MBEDTLS_USE_PSA_CRYPTO ) - if( use_opaque_arg ) - { - psa_destroy_key( pwd_slot ); +#if defined(MBEDTLS_USE_PSA_CRYPTO) + if (use_opaque_arg) { + psa_destroy_key(pwd_slot); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - mbedtls_ssl_free( &ssl ); - mbedtls_ssl_config_free( &conf ); + mbedtls_ssl_free(&ssl); + mbedtls_ssl_config_free(&conf); - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE */ -void elliptic_curve_get_properties( ) +void elliptic_curve_get_properties() { psa_ecc_family_t psa_family; size_t psa_bits; - USE_PSA_INIT( ); + USE_PSA_INIT(); -#if defined( MBEDTLS_ECP_DP_SECP521R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_521) - TEST_AVAILABLE_ECC( 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521 ); +#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_521) + TEST_AVAILABLE_ECC(25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521); #else - TEST_UNAVAILABLE_ECC( 25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521 ); + TEST_UNAVAILABLE_ECC(25, MBEDTLS_ECP_DP_SECP521R1, PSA_ECC_FAMILY_SECP_R1, 521); #endif -#if defined( MBEDTLS_ECP_DP_BP512R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) - TEST_AVAILABLE_ECC( 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 ); +#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_512) + TEST_AVAILABLE_ECC(28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512); #else - TEST_UNAVAILABLE_ECC( 28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512 ); + TEST_UNAVAILABLE_ECC(28, MBEDTLS_ECP_DP_BP512R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 512); #endif -#if defined( MBEDTLS_ECP_DP_SECP384R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_384) - TEST_AVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); +#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_384) + TEST_AVAILABLE_ECC(24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384); #else - TEST_UNAVAILABLE_ECC( 24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384 ); + TEST_UNAVAILABLE_ECC(24, MBEDTLS_ECP_DP_SECP384R1, PSA_ECC_FAMILY_SECP_R1, 384); #endif -#if defined( MBEDTLS_ECP_DP_BP384R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) - TEST_AVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); +#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_384) + TEST_AVAILABLE_ECC(27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384); #else - TEST_UNAVAILABLE_ECC( 27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384 ); + TEST_UNAVAILABLE_ECC(27, MBEDTLS_ECP_DP_BP384R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 384); #endif -#if defined( MBEDTLS_ECP_DP_SECP256R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_256) - TEST_AVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); +#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_256) + TEST_AVAILABLE_ECC(23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256); #else - TEST_UNAVAILABLE_ECC( 23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256 ); + TEST_UNAVAILABLE_ECC(23, MBEDTLS_ECP_DP_SECP256R1, PSA_ECC_FAMILY_SECP_R1, 256); #endif -#if defined( MBEDTLS_ECP_DP_SECP256K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_256) - TEST_AVAILABLE_ECC( 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 ); +#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_256) + TEST_AVAILABLE_ECC(22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256); #else - TEST_UNAVAILABLE_ECC( 22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256 ); + TEST_UNAVAILABLE_ECC(22, MBEDTLS_ECP_DP_SECP256K1, PSA_ECC_FAMILY_SECP_K1, 256); #endif -#if defined( MBEDTLS_ECP_DP_BP256R1_ENABLED ) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) - TEST_AVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); +#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || defined(PSA_WANT_ECC_BRAINPOOL_P_R1_256) + TEST_AVAILABLE_ECC(26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256); #else - TEST_UNAVAILABLE_ECC( 26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256 ); + TEST_UNAVAILABLE_ECC(26, MBEDTLS_ECP_DP_BP256R1, PSA_ECC_FAMILY_BRAINPOOL_P_R1, 256); #endif -#if defined( MBEDTLS_ECP_DP_SECP224R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_224) - TEST_AVAILABLE_ECC( 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224 ); +#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_224) + TEST_AVAILABLE_ECC(21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224); #else - TEST_UNAVAILABLE_ECC( 21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224 ); + TEST_UNAVAILABLE_ECC(21, MBEDTLS_ECP_DP_SECP224R1, PSA_ECC_FAMILY_SECP_R1, 224); #endif -#if defined( MBEDTLS_ECP_DP_SECP224K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_224) - TEST_AVAILABLE_ECC( 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224 ); +#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_224) + TEST_AVAILABLE_ECC(20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224); #else - TEST_UNAVAILABLE_ECC( 20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224 ); + TEST_UNAVAILABLE_ECC(20, MBEDTLS_ECP_DP_SECP224K1, PSA_ECC_FAMILY_SECP_K1, 224); #endif -#if defined( MBEDTLS_ECP_DP_SECP192R1_ENABLED ) || defined(PSA_WANT_ECC_SECP_R1_192) - TEST_AVAILABLE_ECC( 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192 ); +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || defined(PSA_WANT_ECC_SECP_R1_192) + TEST_AVAILABLE_ECC(19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192); #else - TEST_UNAVAILABLE_ECC( 19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192 ); + TEST_UNAVAILABLE_ECC(19, MBEDTLS_ECP_DP_SECP192R1, PSA_ECC_FAMILY_SECP_R1, 192); #endif -#if defined( MBEDTLS_ECP_DP_SECP192K1_ENABLED ) || defined(PSA_WANT_ECC_SECP_K1_192) - TEST_AVAILABLE_ECC( 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 ); +#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || defined(PSA_WANT_ECC_SECP_K1_192) + TEST_AVAILABLE_ECC(18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192); #else - TEST_UNAVAILABLE_ECC( 18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192 ); + TEST_UNAVAILABLE_ECC(18, MBEDTLS_ECP_DP_SECP192K1, PSA_ECC_FAMILY_SECP_K1, 192); #endif -#if defined( MBEDTLS_ECP_DP_CURVE25519_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_255) - TEST_AVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255 ); +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_255) + TEST_AVAILABLE_ECC(29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255); #else - TEST_UNAVAILABLE_ECC( 29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255 ); + TEST_UNAVAILABLE_ECC(29, MBEDTLS_ECP_DP_CURVE25519, PSA_ECC_FAMILY_MONTGOMERY, 255); #endif -#if defined( MBEDTLS_ECP_DP_CURVE448_ENABLED ) || defined(PSA_WANT_ECC_MONTGOMERY_448) - TEST_AVAILABLE_ECC( 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 ); +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) || defined(PSA_WANT_ECC_MONTGOMERY_448) + TEST_AVAILABLE_ECC(30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448); #else - TEST_UNAVAILABLE_ECC( 30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448 ); + TEST_UNAVAILABLE_ECC(30, MBEDTLS_ECP_DP_CURVE448, PSA_ECC_FAMILY_MONTGOMERY, 448); #endif - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ diff --git a/tests/suites/test_suite_timing.function b/tests/suites/test_suite_timing.function index 3483d85f3..821ebd678 100644 --- a/tests/suites/test_suite_timing.function +++ b/tests/suites/test_suite_timing.function @@ -17,32 +17,29 @@ */ /* BEGIN_CASE */ -void timing_get_timer( ) +void timing_get_timer() { struct mbedtls_timing_hr_time time; - (void) mbedtls_timing_get_timer( &time, 1 ); - (void) mbedtls_timing_get_timer( &time, 0 ); + (void) mbedtls_timing_get_timer(&time, 1); + (void) mbedtls_timing_get_timer(&time, 0); /* This goto is added to avoid warnings from the generated code. */ goto exit; } /* END_CASE */ /* BEGIN_CASE */ -void timing_delay( int fin_ms ) +void timing_delay(int fin_ms) { mbedtls_timing_delay_context ctx; int result; - if( fin_ms == 0 ) - { - mbedtls_timing_set_delay( &ctx, 0, 0 ); - result = mbedtls_timing_get_delay( &ctx ); - TEST_ASSERT( result == -1 ); - } - else - { - mbedtls_timing_set_delay( &ctx, fin_ms / 2, fin_ms ); - result = mbedtls_timing_get_delay( &ctx ); - TEST_ASSERT( result >= 0 && result <= 2 ); + if (fin_ms == 0) { + mbedtls_timing_set_delay(&ctx, 0, 0); + result = mbedtls_timing_get_delay(&ctx); + TEST_ASSERT(result == -1); + } else { + mbedtls_timing_set_delay(&ctx, fin_ms / 2, fin_ms); + result = mbedtls_timing_get_delay(&ctx); + TEST_ASSERT(result >= 0 && result <= 2); } } /* END_CASE */ diff --git a/tests/suites/test_suite_version.function b/tests/suites/test_suite_version.function index 7d59794bd..981f8ab85 100644 --- a/tests/suites/test_suite_version.function +++ b/tests/suites/test_suite_version.function @@ -8,34 +8,34 @@ */ /* BEGIN_CASE */ -void check_compiletime_version( char * version_str ) +void check_compiletime_version(char *version_str) { char build_str[100]; char build_str_full[100]; unsigned int build_int; - memset( build_str, 0, 100 ); - memset( build_str_full, 0, 100 ); + memset(build_str, 0, 100); + memset(build_str_full, 0, 100); - mbedtls_snprintf( build_str, 100, "%d.%d.%d", MBEDTLS_VERSION_MAJOR, - MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH ); + mbedtls_snprintf(build_str, 100, "%d.%d.%d", MBEDTLS_VERSION_MAJOR, + MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH); - mbedtls_snprintf( build_str_full, 100, "mbed TLS %d.%d.%d", MBEDTLS_VERSION_MAJOR, - MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH ); + mbedtls_snprintf(build_str_full, 100, "mbed TLS %d.%d.%d", MBEDTLS_VERSION_MAJOR, + MBEDTLS_VERSION_MINOR, MBEDTLS_VERSION_PATCH); build_int = MBEDTLS_VERSION_MAJOR << 24 | - MBEDTLS_VERSION_MINOR << 16 | - MBEDTLS_VERSION_PATCH << 8; + MBEDTLS_VERSION_MINOR << 16 | + MBEDTLS_VERSION_PATCH << 8; - TEST_ASSERT( build_int == MBEDTLS_VERSION_NUMBER ); - TEST_ASSERT( strcmp( build_str, MBEDTLS_VERSION_STRING ) == 0 ); - TEST_ASSERT( strcmp( build_str_full, MBEDTLS_VERSION_STRING_FULL ) == 0 ); - TEST_ASSERT( strcmp( version_str, MBEDTLS_VERSION_STRING ) == 0 ); + TEST_ASSERT(build_int == MBEDTLS_VERSION_NUMBER); + TEST_ASSERT(strcmp(build_str, MBEDTLS_VERSION_STRING) == 0); + TEST_ASSERT(strcmp(build_str_full, MBEDTLS_VERSION_STRING_FULL) == 0); + TEST_ASSERT(strcmp(version_str, MBEDTLS_VERSION_STRING) == 0); } /* END_CASE */ /* BEGIN_CASE */ -void check_runtime_version( char * version_str ) +void check_runtime_version(char *version_str) { char build_str[100]; char get_str[100]; @@ -43,31 +43,31 @@ void check_runtime_version( char * version_str ) char get_str_full[100]; unsigned int get_int; - memset( build_str, 0, 100 ); - memset( get_str, 0, 100 ); - memset( build_str_full, 0, 100 ); - memset( get_str_full, 0, 100 ); + memset(build_str, 0, 100); + memset(get_str, 0, 100); + memset(build_str_full, 0, 100); + memset(get_str_full, 0, 100); get_int = mbedtls_version_get_number(); - mbedtls_version_get_string( get_str ); - mbedtls_version_get_string_full( get_str_full ); + mbedtls_version_get_string(get_str); + mbedtls_version_get_string_full(get_str_full); - mbedtls_snprintf( build_str, 100, "%u.%u.%u", - (get_int >> 24) & 0xFF, - (get_int >> 16) & 0xFF, - (get_int >> 8) & 0xFF ); - mbedtls_snprintf( build_str_full, 100, "mbed TLS %s", version_str ); + mbedtls_snprintf(build_str, 100, "%u.%u.%u", + (get_int >> 24) & 0xFF, + (get_int >> 16) & 0xFF, + (get_int >> 8) & 0xFF); + mbedtls_snprintf(build_str_full, 100, "mbed TLS %s", version_str); - TEST_ASSERT( strcmp( build_str, version_str ) == 0 ); - TEST_ASSERT( strcmp( build_str_full, get_str_full ) == 0 ); - TEST_ASSERT( strcmp( version_str, get_str ) == 0 ); + TEST_ASSERT(strcmp(build_str, version_str) == 0); + TEST_ASSERT(strcmp(build_str_full, get_str_full) == 0); + TEST_ASSERT(strcmp(version_str, get_str) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_VERSION_FEATURES */ -void check_feature( char *feature, int result ) +void check_feature(char *feature, int result) { - int check = mbedtls_version_check_feature( feature ); - TEST_ASSERT( check == result ); + int check = mbedtls_version_check_feature(feature); + TEST_ASSERT(check == result); } /* END_CASE */ diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 388d45e45..5d896bf73 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -14,8 +14,8 @@ #if MBEDTLS_X509_MAX_INTERMEDIATE_CA > 19 #error "The value of MBEDTLS_X509_MAX_INTERMEDIATE_C is larger \ -than the current threshold 19. To test larger values, please \ -adapt the script tests/data_files/dir-max/long.sh." + than the current threshold 19. To test larger values, please \ + adapt the script tests/data_files/dir-max/long.sh." #endif /* Test-only profile allowing all digests, PK algorithms, and curves. */ @@ -31,12 +31,12 @@ const mbedtls_x509_crt_profile profile_all = profile. */ const mbedtls_x509_crt_profile compat_profile = { - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA1 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_RIPEMD160 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA224 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA256 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA384 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA512 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA1) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_RIPEMD160) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA224) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512), 0xFFFFFFFF, /* Any PK alg */ 0xFFFFFFFF, /* Any curve */ 1024, @@ -44,23 +44,23 @@ const mbedtls_x509_crt_profile compat_profile = const mbedtls_x509_crt_profile profile_rsa3072 = { - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA256 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA384 ) | - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA512 ), - MBEDTLS_X509_ID_FLAG( MBEDTLS_PK_RSA ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA256) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA384) | + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512), + MBEDTLS_X509_ID_FLAG(MBEDTLS_PK_RSA), 0, 3072, }; const mbedtls_x509_crt_profile profile_sha512 = { - MBEDTLS_X509_ID_FLAG( MBEDTLS_MD_SHA512 ), + MBEDTLS_X509_ID_FLAG(MBEDTLS_MD_SHA512), 0xFFFFFFFF, /* Any PK alg */ 0xFFFFFFFF, /* Any curve */ 1024, }; -int verify_none( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags ) +int verify_none(void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags) { ((void) data); ((void) crt); @@ -70,7 +70,7 @@ int verify_none( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint3 return 0; } -int verify_all( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags ) +int verify_all(void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags) { ((void) data); ((void) crt); @@ -81,7 +81,7 @@ int verify_all( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32 } #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) -int ca_callback_fail( void *data, mbedtls_x509_crt const *child, mbedtls_x509_crt **candidates ) +int ca_callback_fail(void *data, mbedtls_x509_crt const *child, mbedtls_x509_crt **candidates) { ((void) data); ((void) child); @@ -90,8 +90,8 @@ int ca_callback_fail( void *data, mbedtls_x509_crt const *child, mbedtls_x509_cr return -1; } #if defined(MBEDTLS_X509_CRT_PARSE_C) -int ca_callback( void *data, mbedtls_x509_crt const *child, - mbedtls_x509_crt **candidates ) +int ca_callback(void *data, mbedtls_x509_crt const *child, + mbedtls_x509_crt **candidates) { int ret = 0; mbedtls_x509_crt *ca = (mbedtls_x509_crt *) data; @@ -107,25 +107,21 @@ int ca_callback( void *data, mbedtls_x509_crt const *child, * and parent `Subject` field. */ ((void) child); - first = mbedtls_calloc( 1, sizeof( mbedtls_x509_crt ) ); - if( first == NULL ) - { + first = mbedtls_calloc(1, sizeof(mbedtls_x509_crt)); + if (first == NULL) { ret = -1; goto exit; } - mbedtls_x509_crt_init( first ); + mbedtls_x509_crt_init(first); - if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 ) - { + if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) { ret = -1; goto exit; } - while( ca->next != NULL ) - { + while (ca->next != NULL) { ca = ca->next; - if( mbedtls_x509_crt_parse_der( first, ca->raw.p, ca->raw.len ) != 0 ) - { + if (mbedtls_x509_crt_parse_der(first, ca->raw.p, ca->raw.len) != 0) { ret = -1; goto exit; } @@ -133,20 +129,19 @@ int ca_callback( void *data, mbedtls_x509_crt const *child, exit: - if( ret != 0 ) - { - mbedtls_x509_crt_free( first ); - mbedtls_free( first ); + if (ret != 0) { + mbedtls_x509_crt_free(first); + mbedtls_free(first); first = NULL; } *candidates = first; - return( ret ); + return ret; } #endif /* MBEDTLS_X509_CRT_PARSE_C */ #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -int verify_fatal( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags ) +int verify_fatal(void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags) { int *levels = (int *) data; @@ -154,13 +149,12 @@ int verify_fatal( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint ((void) certificate_depth); /* Simulate a fatal error in the callback */ - if( *levels & ( 1 << certificate_depth ) ) - { - *flags |= ( 1 << certificate_depth ); - return( -1 - certificate_depth ); + if (*levels & (1 << certificate_depth)) { + *flags |= (1 << certificate_depth); + return -1 - certificate_depth; } - return( 0 ); + return 0; } /* strsep() not available on Windows */ @@ -169,28 +163,27 @@ char *mystrsep(char **stringp, const char *delim) const char *p; char *ret = *stringp; - if( *stringp == NULL ) - return( NULL ); + if (*stringp == NULL) { + return NULL; + } - for( ; ; (*stringp)++ ) - { - if( **stringp == '\0' ) - { + for (;; (*stringp)++) { + if (**stringp == '\0') { *stringp = NULL; goto done; } - for( p = delim; *p != '\0'; p++ ) - if( **stringp == *p ) - { + for (p = delim; *p != '\0'; p++) { + if (**stringp == *p) { **stringp = '\0'; (*stringp)++; goto done; } + } } done: - return( ret ); + return ret; } #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -199,195 +192,204 @@ typedef struct { char *p; } verify_print_context; -void verify_print_init( verify_print_context *ctx ) +void verify_print_init(verify_print_context *ctx) { - memset( ctx, 0, sizeof( verify_print_context ) ); + memset(ctx, 0, sizeof(verify_print_context)); ctx->p = ctx->buf; } -int verify_print( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags ) +int verify_print(void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32_t *flags) { int ret; verify_print_context *ctx = (verify_print_context *) data; char *p = ctx->p; - size_t n = ctx->buf + sizeof( ctx->buf ) - ctx->p; + size_t n = ctx->buf + sizeof(ctx->buf) - ctx->p; ((void) flags); - ret = mbedtls_snprintf( p, n, "depth %d - serial ", certificate_depth ); + ret = mbedtls_snprintf(p, n, "depth %d - serial ", certificate_depth); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_serial_gets( p, n, &crt->serial ); + ret = mbedtls_x509_serial_gets(p, n, &crt->serial); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " - subject " ); + ret = mbedtls_snprintf(p, n, " - subject "); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_x509_dn_gets( p, n, &crt->subject ); + ret = mbedtls_x509_dn_gets(p, n, &crt->subject); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " - flags 0x%08x\n", *flags ); + ret = mbedtls_snprintf(p, n, " - flags 0x%08x\n", *flags); MBEDTLS_X509_SAFE_SNPRINTF; ctx->p = p; - return( 0 ); + return 0; } -int verify_parse_san( mbedtls_x509_subject_alternative_name *san, - char **buf, size_t *size ) +int verify_parse_san(mbedtls_x509_subject_alternative_name *san, + char **buf, size_t *size) { int ret; size_t i; char *p = *buf; size_t n = *size; - ret = mbedtls_snprintf( p, n, "type : %d", san->type ); + ret = mbedtls_snprintf(p, n, "type : %d", san->type); MBEDTLS_X509_SAFE_SNPRINTF; - switch( san->type ) - { - case( MBEDTLS_X509_SAN_OTHER_NAME ): - ret = mbedtls_snprintf( p, n, "\notherName :"); + switch (san->type) { + case (MBEDTLS_X509_SAN_OTHER_NAME): + ret = mbedtls_snprintf(p, n, "\notherName :"); MBEDTLS_X509_SAFE_SNPRINTF; - if( MBEDTLS_OID_CMP( MBEDTLS_OID_ON_HW_MODULE_NAME, - &san->san.other_name.value.hardware_module_name.oid ) != 0 ) - { - ret = mbedtls_snprintf( p, n, " hardware module name :" ); + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, + &san->san.other_name.value.hardware_module_name.oid) != 0) { + ret = mbedtls_snprintf(p, n, " hardware module name :"); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, " hardware type : " ); + ret = mbedtls_snprintf(p, n, " hardware type : "); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_oid_get_numeric_string( p, n, - &san->san.other_name.value.hardware_module_name.oid ); + ret = mbedtls_oid_get_numeric_string(p, + n, + &san->san.other_name.value.hardware_module_name.oid); MBEDTLS_X509_SAFE_SNPRINTF; - ret = mbedtls_snprintf( p, n, ", hardware serial number : " ); + ret = mbedtls_snprintf(p, n, ", hardware serial number : "); MBEDTLS_X509_SAFE_SNPRINTF; - for( i = 0; i < san->san.other_name.value.hardware_module_name.val.len; i++ ) - { - ret = mbedtls_snprintf( p, n, "%02X", san->san.other_name.value.hardware_module_name.val.p[i] ); + for (i = 0; i < san->san.other_name.value.hardware_module_name.val.len; i++) { + ret = mbedtls_snprintf(p, + n, + "%02X", + san->san.other_name.value.hardware_module_name.val.p[i]); MBEDTLS_X509_SAFE_SNPRINTF; } } - break;/* MBEDTLS_OID_ON_HW_MODULE_NAME */ - case( MBEDTLS_X509_SAN_DNS_NAME ): - ret = mbedtls_snprintf( p, n, "\ndNSName : " ); + break;/* MBEDTLS_OID_ON_HW_MODULE_NAME */ + case (MBEDTLS_X509_SAN_DNS_NAME): + ret = mbedtls_snprintf(p, n, "\ndNSName : "); MBEDTLS_X509_SAFE_SNPRINTF; - if( san->san.unstructured_name.len >= n ) - { + if (san->san.unstructured_name.len >= n) { *p = '\0'; - return( MBEDTLS_ERR_X509_BUFFER_TOO_SMALL ); + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; } n -= san->san.unstructured_name.len; - for( i = 0; i < san->san.unstructured_name.len; i++ ) + for (i = 0; i < san->san.unstructured_name.len; i++) { *p++ = san->san.unstructured_name.p[i]; - break;/* MBEDTLS_X509_SAN_DNS_NAME */ + } + break;/* MBEDTLS_X509_SAN_DNS_NAME */ default: - /* - * Should not happen. - */ - return( -1 ); + /* + * Should not happen. + */ + return -1; } - ret = mbedtls_snprintf( p, n, "\n" ); + ret = mbedtls_snprintf(p, n, "\n"); MBEDTLS_X509_SAFE_SNPRINTF; *size = n; *buf = p; - return( 0 ); + return 0; } -int parse_crt_ext_cb( void *p_ctx, mbedtls_x509_crt const *crt, mbedtls_x509_buf const *oid, - int critical, const unsigned char *cp, const unsigned char *end ) +int parse_crt_ext_cb(void *p_ctx, mbedtls_x509_crt const *crt, mbedtls_x509_buf const *oid, + int critical, const unsigned char *cp, const unsigned char *end) { - ( void ) crt; - ( void ) critical; - mbedtls_x509_buf *new_oid = (mbedtls_x509_buf *)p_ctx; - if( oid->tag == MBEDTLS_ASN1_OID && - MBEDTLS_OID_CMP( MBEDTLS_OID_CERTIFICATE_POLICIES, oid ) == 0 ) - { + (void) crt; + (void) critical; + mbedtls_x509_buf *new_oid = (mbedtls_x509_buf *) p_ctx; + if (oid->tag == MBEDTLS_ASN1_OID && + MBEDTLS_OID_CMP(MBEDTLS_OID_CERTIFICATE_POLICIES, oid) == 0) { /* Handle unknown certificate policy */ int ret, parse_ret = 0; size_t len; - unsigned char **p = (unsigned char **)&cp; + unsigned char **p = (unsigned char **) &cp; /* Get main sequence tag */ - ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ); - if( ret != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE); + if (ret != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } - if( *p + len != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } /* * Cannot be an empty sequence. */ - if( len == 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (len == 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - while( *p < end ) - { + while (*p < end) { const unsigned char *policy_end; /* * Get the policy sequence */ - if( ( ret = mbedtls_asn1_get_tag( p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != + 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } policy_end = *p + len; - if( ( ret = mbedtls_asn1_get_tag( p, policy_end, &len, - MBEDTLS_ASN1_OID ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + if ((ret = mbedtls_asn1_get_tag(p, policy_end, &len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* * Recognize exclusively the policy with OID 1 */ - if( len != 1 || *p[0] != 1 ) + if (len != 1 || *p[0] != 1) { parse_ret = MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; + } *p += len; - /* - * If there is an optional qualifier, then *p < policy_end - * Check the Qualifier len to verify it doesn't exceed policy_end. - */ - if( *p < policy_end ) - { - if( ( ret = mbedtls_asn1_get_tag( p, policy_end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) != 0 ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret ) ); + /* + * If there is an optional qualifier, then *p < policy_end + * Check the Qualifier len to verify it doesn't exceed policy_end. + */ + if (*p < policy_end) { + if ((ret = mbedtls_asn1_get_tag(p, policy_end, &len, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } /* * Skip the optional policy qualifiers. */ *p += len; } - if( *p != policy_end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != policy_end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } } - if( *p != end ) - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ) ); + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } - return( parse_ret ); + return parse_ret; + } else if (new_oid != NULL && new_oid->tag == oid->tag && new_oid->len == oid->len && + memcmp(new_oid->p, oid->p, oid->len) == 0) { + return 0; + } else { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); } - else if( new_oid != NULL && new_oid->tag == oid->tag && new_oid->len == oid->len && - memcmp( new_oid->p, oid->p, oid->len ) == 0 ) - return( 0 ); - else - return( MBEDTLS_ERROR_ADD( MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG ) ); } #endif /* MBEDTLS_X509_CRT_PARSE_C */ /* END_HEADER */ @@ -398,23 +400,23 @@ int parse_crt_ext_cb( void *p_ctx, mbedtls_x509_crt const *crt, mbedtls_x509_buf */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void x509_accessor_ext_types( int ext_type, int has_ext_type ) +void x509_accessor_ext_types(int ext_type, int has_ext_type) { mbedtls_x509_crt crt; int expected_result = ext_type & has_ext_type; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); crt.ext_types = ext_type; - TEST_ASSERT( mbedtls_x509_crt_has_ext_type( &crt, has_ext_type ) == expected_result ); + TEST_ASSERT(mbedtls_x509_crt_has_ext_type(&crt, has_ext_type) == expected_result); - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void x509_parse_san( char * crt_file, char * result_str ) +void x509_parse_san(char *crt_file, char *result_str) { int ret; mbedtls_x509_crt crt; @@ -422,142 +424,141 @@ void x509_parse_san( char * crt_file, char * result_str ) mbedtls_x509_sequence *cur = NULL; char buf[2000]; char *p = buf; - size_t n = sizeof( buf ); + size_t n = sizeof(buf); - mbedtls_x509_crt_init( &crt ); - memset( buf, 0, 2000 ); + mbedtls_x509_crt_init(&crt); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); - if( crt.ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME ) - { + if (crt.ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) { cur = &crt.subject_alt_names; - while( cur != NULL ) - { - ret = mbedtls_x509_parse_subject_alt_name( &cur->buf, &san ); - TEST_ASSERT( ret == 0 || ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE ); + while (cur != NULL) { + ret = mbedtls_x509_parse_subject_alt_name(&cur->buf, &san); + TEST_ASSERT(ret == 0 || ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE); /* * If san type not supported, ignore. */ - if( ret == 0) - TEST_ASSERT( verify_parse_san( &san, &p, &n ) == 0 ); + if (ret == 0) { + TEST_ASSERT(verify_parse_san(&san, &p, &n) == 0); + } cur = cur->next; } } - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:!MBEDTLS_X509_REMOVE_INFO:MBEDTLS_X509_CRT_PARSE_C */ -void x509_cert_info( char * crt_file, char * result_str ) +void x509_cert_info(char *crt_file, char *result_str) { mbedtls_x509_crt crt; char buf[2000]; int res; - mbedtls_x509_crt_init( &crt ); - memset( buf, 0, 2000 ); + mbedtls_x509_crt_init(&crt); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - res = mbedtls_x509_crt_info( buf, 2000, "", &crt ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + res = mbedtls_x509_crt_info(buf, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRL_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_crl_info( char * crl_file, char * result_str ) +void mbedtls_x509_crl_info(char *crl_file, char *result_str) { mbedtls_x509_crl crl; char buf[2000]; int res; - mbedtls_x509_crl_init( &crl ); - memset( buf, 0, 2000 ); + mbedtls_x509_crl_init(&crl); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crl_parse_file( &crl, crl_file ) == 0 ); - res = mbedtls_x509_crl_info( buf, 2000, "", &crl ); + TEST_ASSERT(mbedtls_x509_crl_parse_file(&crl, crl_file) == 0); + res = mbedtls_x509_crl_info(buf, 2000, "", &crl); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); exit: - mbedtls_x509_crl_free( &crl ); + mbedtls_x509_crl_free(&crl); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRL_PARSE_C */ -void mbedtls_x509_crl_parse( char * crl_file, int result ) +void mbedtls_x509_crl_parse(char *crl_file, int result) { mbedtls_x509_crl crl; char buf[2000]; - mbedtls_x509_crl_init( &crl ); - memset( buf, 0, 2000 ); + mbedtls_x509_crl_init(&crl); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crl_parse_file( &crl, crl_file ) == result ); + TEST_ASSERT(mbedtls_x509_crl_parse_file(&crl, crl_file) == result); exit: - mbedtls_x509_crl_free( &crl ); + mbedtls_x509_crl_free(&crl); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CSR_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_csr_info( char * csr_file, char * result_str ) +void mbedtls_x509_csr_info(char *csr_file, char *result_str) { mbedtls_x509_csr csr; char buf[2000]; int res; - mbedtls_x509_csr_init( &csr ); - memset( buf, 0, 2000 ); + mbedtls_x509_csr_init(&csr); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_csr_parse_file( &csr, csr_file ) == 0 ); - res = mbedtls_x509_csr_info( buf, 2000, "", &csr ); + TEST_ASSERT(mbedtls_x509_csr_parse_file(&csr, csr_file) == 0); + res = mbedtls_x509_csr_info(buf, 2000, "", &csr); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); exit: - mbedtls_x509_csr_free( &csr ); + mbedtls_x509_csr_free(&csr); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void x509_verify_info( int flags, char * prefix, char * result_str ) +void x509_verify_info(int flags, char *prefix, char *result_str) { char buf[2000]; int res; - memset( buf, 0, sizeof( buf ) ); + memset(buf, 0, sizeof(buf)); - res = mbedtls_x509_crt_verify_info( buf, sizeof( buf ), prefix, flags ); + res = mbedtls_x509_crt_verify_info(buf, sizeof(buf), prefix, flags); - TEST_ASSERT( res >= 0 ); + TEST_ASSERT(res >= 0); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_X509_CRL_PARSE_C:MBEDTLS_ECP_RESTARTABLE:MBEDTLS_ECDSA_C */ -void x509_verify_restart( char *crt_file, char *ca_file, - int result, int flags_result, - int max_ops, int min_restart, int max_restart ) +void x509_verify_restart(char *crt_file, char *ca_file, + int result, int flags_result, + int max_ops, int min_restart, int max_restart) { int ret, cnt_restart; mbedtls_x509_crt_restart_ctx rs_ctx; @@ -575,49 +576,49 @@ void x509_verify_restart( char *crt_file, char *ca_file, * - x509_verify() for server10 -> int-ca3 -> int-ca2: ~ 25500 */ - mbedtls_x509_crt_restart_init( &rs_ctx ); - mbedtls_x509_crt_init( &crt ); - mbedtls_x509_crt_init( &ca ); + mbedtls_x509_crt_restart_init(&rs_ctx); + mbedtls_x509_crt_init(&crt); + mbedtls_x509_crt_init(&ca); - USE_PSA_INIT( ); + USE_PSA_INIT(); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &ca, ca_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&ca, ca_file) == 0); - mbedtls_ecp_set_max_ops( max_ops ); + mbedtls_ecp_set_max_ops(max_ops); cnt_restart = 0; do { - ret = mbedtls_x509_crt_verify_restartable( &crt, &ca, NULL, - &mbedtls_x509_crt_profile_default, NULL, &flags, - NULL, NULL, &rs_ctx ); - } while( ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart ); + ret = mbedtls_x509_crt_verify_restartable(&crt, &ca, NULL, + &mbedtls_x509_crt_profile_default, NULL, &flags, + NULL, NULL, &rs_ctx); + } while (ret == MBEDTLS_ERR_ECP_IN_PROGRESS && ++cnt_restart); - TEST_ASSERT( ret == result ); - TEST_ASSERT( flags == (uint32_t) flags_result ); + TEST_ASSERT(ret == result); + TEST_ASSERT(flags == (uint32_t) flags_result); - TEST_ASSERT( cnt_restart >= min_restart ); - TEST_ASSERT( cnt_restart <= max_restart ); + TEST_ASSERT(cnt_restart >= min_restart); + TEST_ASSERT(cnt_restart <= max_restart); /* Do we leak memory when aborting? */ - ret = mbedtls_x509_crt_verify_restartable( &crt, &ca, NULL, - &mbedtls_x509_crt_profile_default, NULL, &flags, - NULL, NULL, &rs_ctx ); - TEST_ASSERT( ret == result || ret == MBEDTLS_ERR_ECP_IN_PROGRESS ); + ret = mbedtls_x509_crt_verify_restartable(&crt, &ca, NULL, + &mbedtls_x509_crt_profile_default, NULL, &flags, + NULL, NULL, &rs_ctx); + TEST_ASSERT(ret == result || ret == MBEDTLS_ERR_ECP_IN_PROGRESS); exit: - mbedtls_x509_crt_restart_free( &rs_ctx ); - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_free( &ca ); - USE_PSA_DONE( ); + mbedtls_x509_crt_restart_free(&rs_ctx); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_free(&ca); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_X509_CRL_PARSE_C */ -void x509_verify( char *crt_file, char *ca_file, char *crl_file, - char *cn_name_str, int result, int flags_result, - char *profile_str, - char *verify_callback ) +void x509_verify(char *crt_file, char *ca_file, char *crl_file, + char *cn_name_str, int result, int flags_result, + char *profile_str, + char *verify_callback) { mbedtls_x509_crt crt; mbedtls_x509_crt ca; @@ -625,103 +626,120 @@ void x509_verify( char *crt_file, char *ca_file, char *crl_file, uint32_t flags = 0; int res; int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *) = NULL; - char * cn_name = NULL; + char *cn_name = NULL; const mbedtls_x509_crt_profile *profile; - mbedtls_x509_crt_init( &crt ); - mbedtls_x509_crt_init( &ca ); - mbedtls_x509_crl_init( &crl ); + mbedtls_x509_crt_init(&crt); + mbedtls_x509_crt_init(&ca); + mbedtls_x509_crl_init(&crl); - USE_PSA_INIT( ); + USE_PSA_INIT(); - if( strcmp( cn_name_str, "NULL" ) != 0 ) + if (strcmp(cn_name_str, "NULL") != 0) { cn_name = cn_name_str; + } - if( strcmp( profile_str, "" ) == 0 ) + if (strcmp(profile_str, "") == 0) { profile = &mbedtls_x509_crt_profile_default; - else if( strcmp( profile_str, "next" ) == 0 ) + } else if (strcmp(profile_str, "next") == 0) { profile = &mbedtls_x509_crt_profile_next; - else if( strcmp( profile_str, "suite_b" ) == 0 ) + } else if (strcmp(profile_str, "suite_b") == 0) { profile = &mbedtls_x509_crt_profile_suiteb; - else if( strcmp( profile_str, "compat" ) == 0 ) + } else if (strcmp(profile_str, "compat") == 0) { profile = &compat_profile; - else if( strcmp( profile_str, "all" ) == 0 ) + } else if (strcmp(profile_str, "all") == 0) { profile = &profile_all; - else - TEST_ASSERT( "Unknown algorithm profile" == 0 ); + } else { + TEST_ASSERT("Unknown algorithm profile" == 0); + } - if( strcmp( verify_callback, "NULL" ) == 0 ) + if (strcmp(verify_callback, "NULL") == 0) { f_vrfy = NULL; - else if( strcmp( verify_callback, "verify_none" ) == 0 ) + } else if (strcmp(verify_callback, "verify_none") == 0) { f_vrfy = verify_none; - else if( strcmp( verify_callback, "verify_all" ) == 0 ) + } else if (strcmp(verify_callback, "verify_all") == 0) { f_vrfy = verify_all; - else - TEST_ASSERT( "No known verify callback selected" == 0 ); + } else { + TEST_ASSERT("No known verify callback selected" == 0); + } - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &ca, ca_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crl_parse_file( &crl, crl_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&ca, ca_file) == 0); + TEST_ASSERT(mbedtls_x509_crl_parse_file(&crl, crl_file) == 0); - res = mbedtls_x509_crt_verify_with_profile( &crt, &ca, &crl, profile, cn_name, &flags, f_vrfy, NULL ); + res = mbedtls_x509_crt_verify_with_profile(&crt, + &ca, + &crl, + profile, + cn_name, + &flags, + f_vrfy, + NULL); - TEST_EQUAL( res, result ); - TEST_EQUAL( flags, (uint32_t) flags_result ); + TEST_EQUAL(res, result); + TEST_EQUAL(flags, (uint32_t) flags_result); #if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK) /* CRLs aren't supported with CA callbacks, so skip the CA callback * version of the test if CRLs are in use. */ - if( crl_file == NULL || strcmp( crl_file, "" ) == 0 ) - { + if (crl_file == NULL || strcmp(crl_file, "") == 0) { flags = 0; - res = mbedtls_x509_crt_verify_with_ca_cb( &crt, ca_callback, &ca, profile, cn_name, &flags, f_vrfy, NULL ); + res = mbedtls_x509_crt_verify_with_ca_cb(&crt, + ca_callback, + &ca, + profile, + cn_name, + &flags, + f_vrfy, + NULL); - TEST_ASSERT( res == ( result ) ); - TEST_ASSERT( flags == (uint32_t)( flags_result ) ); + TEST_ASSERT(res == (result)); + TEST_ASSERT(flags == (uint32_t) (flags_result)); } #endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ exit: - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_free( &ca ); - mbedtls_x509_crl_free( &crl ); - USE_PSA_DONE( ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_free(&ca); + mbedtls_x509_crl_free(&crl); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_X509_CRL_PARSE_C:MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */ -void x509_verify_ca_cb_failure( char *crt_file, char *ca_file, char *name, - int exp_ret ) +void x509_verify_ca_cb_failure(char *crt_file, char *ca_file, char *name, + int exp_ret) { int ret; mbedtls_x509_crt crt; mbedtls_x509_crt ca; uint32_t flags = 0; - mbedtls_x509_crt_init( &crt ); - mbedtls_x509_crt_init( &ca ); + mbedtls_x509_crt_init(&crt); + mbedtls_x509_crt_init(&ca); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &ca, ca_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&ca, ca_file) == 0); - if( strcmp( name, "NULL" ) == 0 ) + if (strcmp(name, "NULL") == 0) { name = NULL; + } - ret = mbedtls_x509_crt_verify_with_ca_cb( &crt, ca_callback_fail, &ca, - &compat_profile, name, &flags, - NULL, NULL ); + ret = mbedtls_x509_crt_verify_with_ca_cb(&crt, ca_callback_fail, &ca, + &compat_profile, name, &flags, + NULL, NULL); - TEST_ASSERT( ret == exp_ret ); - TEST_ASSERT( flags == (uint32_t)( -1 ) ); + TEST_ASSERT(ret == exp_ret); + TEST_ASSERT(flags == (uint32_t) (-1)); exit: - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_free( &ca ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_free(&ca); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void x509_verify_callback( char *crt_file, char *ca_file, char *name, - int exp_ret, char *exp_vrfy_out ) +void x509_verify_callback(char *crt_file, char *ca_file, char *name, + int exp_ret, char *exp_vrfy_out) { int ret; mbedtls_x509_crt crt; @@ -729,94 +747,96 @@ void x509_verify_callback( char *crt_file, char *ca_file, char *name, uint32_t flags = 0; verify_print_context vrfy_ctx; - mbedtls_x509_crt_init( &crt ); - mbedtls_x509_crt_init( &ca ); - verify_print_init( &vrfy_ctx ); + mbedtls_x509_crt_init(&crt); + mbedtls_x509_crt_init(&ca); + verify_print_init(&vrfy_ctx); - USE_PSA_INIT( ); + USE_PSA_INIT(); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &ca, ca_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&ca, ca_file) == 0); - if( strcmp( name, "NULL" ) == 0 ) + if (strcmp(name, "NULL") == 0) { name = NULL; + } - ret = mbedtls_x509_crt_verify_with_profile( &crt, &ca, NULL, - &compat_profile, - name, &flags, - verify_print, &vrfy_ctx ); + ret = mbedtls_x509_crt_verify_with_profile(&crt, &ca, NULL, + &compat_profile, + name, &flags, + verify_print, &vrfy_ctx); - TEST_ASSERT( ret == exp_ret ); - TEST_ASSERT( strcmp( vrfy_ctx.buf, exp_vrfy_out ) == 0 ); + TEST_ASSERT(ret == exp_ret); + TEST_ASSERT(strcmp(vrfy_ctx.buf, exp_vrfy_out) == 0); exit: - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_free( &ca ); - USE_PSA_DONE( ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_free(&ca); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_dn_gets_subject_replace( char * crt_file, char * new_subject_ou, char * result_str, int ret ) +void mbedtls_x509_dn_gets_subject_replace(char *crt_file, + char *new_subject_ou, + char *result_str, + int ret) { mbedtls_x509_crt crt; char buf[2000]; int res = 0; - mbedtls_x509_crt_init( &crt ); - memset( buf, 0, 2000 ); + mbedtls_x509_crt_init(&crt); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); crt.subject.next->val.p = (unsigned char *) new_subject_ou; - crt.subject.next->val.len = strlen( new_subject_ou ); + crt.subject.next->val.len = strlen(new_subject_ou); - res = mbedtls_x509_dn_gets( buf, 2000, &crt.subject ); + res = mbedtls_x509_dn_gets(buf, 2000, &crt.subject); - if ( ret != 0 ) - { - TEST_ASSERT( res == ret ); - } - else - { - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + if (ret != 0) { + TEST_ASSERT(res == ret); + } else { + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); + TEST_ASSERT(strcmp(buf, result_str) == 0); } exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_dn_gets( char * crt_file, char * entity, char * result_str ) +void mbedtls_x509_dn_gets(char *crt_file, char *entity, char *result_str) { mbedtls_x509_crt crt; char buf[2000]; int res = 0; - mbedtls_x509_crt_init( &crt ); - memset( buf, 0, 2000 ); + mbedtls_x509_crt_init(&crt); + memset(buf, 0, 2000); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); - if( strcmp( entity, "subject" ) == 0 ) - res = mbedtls_x509_dn_gets( buf, 2000, &crt.subject ); - else if( strcmp( entity, "issuer" ) == 0 ) - res = mbedtls_x509_dn_gets( buf, 2000, &crt.issuer ); - else - TEST_ASSERT( "Unknown entity" == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); + if (strcmp(entity, "subject") == 0) { + res = mbedtls_x509_dn_gets(buf, 2000, &crt.subject); + } else if (strcmp(entity, "issuer") == 0) { + res = mbedtls_x509_dn_gets(buf, 2000, &crt.issuer); + } else { + TEST_ASSERT("Unknown entity" == 0); + } - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( buf, result_str ) == 0 ); + TEST_ASSERT(strcmp(buf, result_str) == 0); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) +void mbedtls_x509_get_name(char *rdn_sequence, int exp_ret) { unsigned char *name; unsigned char *p; @@ -824,23 +844,28 @@ void mbedtls_x509_get_name( char * rdn_sequence, int exp_ret ) mbedtls_x509_name head; int ret; - memset( &head, 0, sizeof( head ) ); + memset(&head, 0, sizeof(head)); - name = mbedtls_test_unhexify_alloc( rdn_sequence, &name_len ); + name = mbedtls_test_unhexify_alloc(rdn_sequence, &name_len); p = name; - ret = mbedtls_x509_get_name( &p, ( name + name_len ), &head ); - if( ret == 0 ) - mbedtls_asn1_free_named_data_list_shallow( head.next ); + ret = mbedtls_x509_get_name(&p, (name + name_len), &head); + if (ret == 0) { + mbedtls_asn1_free_named_data_list_shallow(head.next); + } - TEST_EQUAL( ret, exp_ret ); + TEST_EQUAL(ret, exp_ret); - mbedtls_free( name ); + mbedtls_free(name); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CREATE_C:MBEDTLS_X509_USE_C:MBEDTLS_X509_CRT_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected_oids, int exp_count, char * exp_dn_gets ) +void mbedtls_x509_dn_get_next(char *name_str, + int next_merged, + char *expected_oids, + int exp_count, + char *exp_dn_gets) { int ret = 0, i; size_t len = 0, out_size; @@ -850,26 +875,25 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected unsigned char buf[80], *out = NULL, *c; const char *short_name; - memset( &parsed, 0, sizeof( parsed ) ); - memset( buf, 0, sizeof( buf ) ); - c = buf + sizeof( buf ); + memset(&parsed, 0, sizeof(parsed)); + memset(buf, 0, sizeof(buf)); + c = buf + sizeof(buf); // Additional size required for trailing space - out_size = strlen( expected_oids ) + 2; - ASSERT_ALLOC( out, out_size ); + out_size = strlen(expected_oids) + 2; + ASSERT_ALLOC(out, out_size); - TEST_EQUAL( mbedtls_x509_string_to_names( &names, name_str ), 0 ); + TEST_EQUAL(mbedtls_x509_string_to_names(&names, name_str), 0); - ret = mbedtls_x509_write_names( &c, buf, names ); - TEST_LE_S( 0, ret ); + ret = mbedtls_x509_write_names(&c, buf, names); + TEST_LE_S(0, ret); - TEST_EQUAL( mbedtls_asn1_get_tag( &c, buf + sizeof( buf ), &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ), 0 ); - TEST_EQUAL( mbedtls_x509_get_name( &c, buf + sizeof( buf ), &parsed ), 0 ); + TEST_EQUAL(mbedtls_asn1_get_tag(&c, buf + sizeof(buf), &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE), 0); + TEST_EQUAL(mbedtls_x509_get_name(&c, buf + sizeof(buf), &parsed), 0); // Iterate over names and set next_merged nodes parsed_cur = &parsed; - for( ; next_merged != 0 && parsed_cur != NULL; next_merged = next_merged >> 1 ) - { + for (; next_merged != 0 && parsed_cur != NULL; next_merged = next_merged >> 1) { parsed_cur->next_merged = next_merged & 0x01; parsed_cur = parsed_cur->next; } @@ -877,90 +901,91 @@ void mbedtls_x509_dn_get_next( char * name_str, int next_merged, char * expected // Iterate over RDN nodes and print OID of first element to buffer parsed_cur = &parsed; len = 0; - for( i = 0; parsed_cur != NULL; i++ ) - { - TEST_EQUAL( mbedtls_oid_get_attr_short_name( &parsed_cur->oid, - &short_name ), 0 ); - len += mbedtls_snprintf( (char*) out + len, out_size - len, "%s ", short_name ); - parsed_cur = mbedtls_x509_dn_get_next( parsed_cur ); + for (i = 0; parsed_cur != NULL; i++) { + TEST_EQUAL(mbedtls_oid_get_attr_short_name(&parsed_cur->oid, + &short_name), 0); + len += mbedtls_snprintf((char *) out + len, out_size - len, "%s ", short_name); + parsed_cur = mbedtls_x509_dn_get_next(parsed_cur); } out[len-1] = 0; - TEST_EQUAL( exp_count, i ); - TEST_EQUAL( strcmp( (char *) out, expected_oids ), 0 ); - mbedtls_free( out ); + TEST_EQUAL(exp_count, i); + TEST_EQUAL(strcmp((char *) out, expected_oids), 0); + mbedtls_free(out); out = NULL; - out_size = strlen( exp_dn_gets ) + 1; - ASSERT_ALLOC( out, out_size ); + out_size = strlen(exp_dn_gets) + 1; + ASSERT_ALLOC(out, out_size); - TEST_LE_S( 0, mbedtls_x509_dn_gets( (char *) out, out_size, &parsed ) ); - TEST_EQUAL( strcmp( (char *) out, exp_dn_gets ), 0 ); + TEST_LE_S(0, mbedtls_x509_dn_gets((char *) out, out_size, &parsed)); + TEST_EQUAL(strcmp((char *) out, exp_dn_gets), 0); exit: - mbedtls_free( out ); - mbedtls_asn1_free_named_data_list( &names ); - mbedtls_asn1_free_named_data_list_shallow( parsed.next ); + mbedtls_free(out); + mbedtls_asn1_free_named_data_list(&names); + mbedtls_asn1_free_named_data_list_shallow(parsed.next); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_time_is_past( char * crt_file, char * entity, int result ) +void mbedtls_x509_time_is_past(char *crt_file, char *entity, int result) { mbedtls_x509_crt crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); - if( strcmp( entity, "valid_from" ) == 0 ) - TEST_ASSERT( mbedtls_x509_time_is_past( &crt.valid_from ) == result ); - else if( strcmp( entity, "valid_to" ) == 0 ) - TEST_ASSERT( mbedtls_x509_time_is_past( &crt.valid_to ) == result ); - else - TEST_ASSERT( "Unknown entity" == 0 ); + if (strcmp(entity, "valid_from") == 0) { + TEST_ASSERT(mbedtls_x509_time_is_past(&crt.valid_from) == result); + } else if (strcmp(entity, "valid_to") == 0) { + TEST_ASSERT(mbedtls_x509_time_is_past(&crt.valid_to) == result); + } else { + TEST_ASSERT("Unknown entity" == 0); + } exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_time_is_future( char * crt_file, char * entity, int result ) +void mbedtls_x509_time_is_future(char *crt_file, char *entity, int result) { mbedtls_x509_crt crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); - if( strcmp( entity, "valid_from" ) == 0 ) - TEST_ASSERT( mbedtls_x509_time_is_future( &crt.valid_from ) == result ); - else if( strcmp( entity, "valid_to" ) == 0 ) - TEST_ASSERT( mbedtls_x509_time_is_future( &crt.valid_to ) == result ); - else - TEST_ASSERT( "Unknown entity" == 0 ); + if (strcmp(entity, "valid_from") == 0) { + TEST_ASSERT(mbedtls_x509_time_is_future(&crt.valid_from) == result); + } else if (strcmp(entity, "valid_to") == 0) { + TEST_ASSERT(mbedtls_x509_time_is_future(&crt.valid_to) == result); + } else { + TEST_ASSERT("Unknown entity" == 0); + } exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_FS_IO */ -void x509parse_crt_file( char * crt_file, int result ) +void x509parse_crt_file(char *crt_file, int result) { mbedtls_x509_crt crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == result ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == result); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void x509parse_crt( data_t * buf, char * result_str, int result ) +void x509parse_crt(data_t *buf, char *result_str, int result) { mbedtls_x509_crt crt; #if !defined(MBEDTLS_X509_REMOVE_INFO) @@ -970,80 +995,78 @@ void x509parse_crt( data_t * buf, char * result_str, int result ) ((void) result_str); #endif - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der( &crt, buf->x, buf->len ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der(&crt, buf->x, buf->len) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + if ((result) == 0) { + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } - memset( output, 0, 2000 ); + memset(output, 0, 2000); #endif - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der_nocopy( &crt, buf->x, buf->len ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der_nocopy(&crt, buf->x, buf->len) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - memset( output, 0, 2000 ); + if ((result) == 0) { + memset(output, 0, 2000); - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } - memset( output, 0, 2000 ); + memset(output, 0, 2000); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der_with_ext_cb( &crt, buf->x, buf->len, 0, NULL, NULL ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der_with_ext_cb(&crt, buf->x, buf->len, 0, NULL, + NULL) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); + if ((result) == 0) { + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } - memset( output, 0, 2000 ); + memset(output, 0, 2000); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der_with_ext_cb( &crt, buf->x, buf->len, 1, NULL, NULL ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der_with_ext_cb(&crt, buf->x, buf->len, 1, NULL, + NULL) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); + if ((result) == 0) { + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } #endif /* !MBEDTLS_X509_REMOVE_INFO */ exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C */ -void x509parse_crt_cb( data_t * buf, char * result_str, int result ) +void x509parse_crt_cb(data_t *buf, char *result_str, int result) { mbedtls_x509_crt crt; mbedtls_x509_buf oid; @@ -1057,122 +1080,122 @@ void x509parse_crt_cb( data_t * buf, char * result_str, int result ) oid.tag = MBEDTLS_ASN1_OID; oid.len = MBEDTLS_OID_SIZE(MBEDTLS_OID_PKIX "\x01\x1F"); - oid.p = (unsigned char *)MBEDTLS_OID_PKIX "\x01\x1F"; + oid.p = (unsigned char *) MBEDTLS_OID_PKIX "\x01\x1F"; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der_with_ext_cb( &crt, buf->x, buf->len, 0, parse_crt_ext_cb, &oid ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der_with_ext_cb(&crt, buf->x, buf->len, 0, parse_crt_ext_cb, + &oid) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); + if ((result) == 0) { + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } - memset( output, 0, 2000 ); + memset(output, 0, 2000); #endif /* !MBEDTLS_X509_REMOVE_INFO */ - mbedtls_x509_crt_free( &crt ); - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_free(&crt); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_der_with_ext_cb( &crt, buf->x, buf->len, 1, parse_crt_ext_cb, &oid ) == ( result ) ); + TEST_ASSERT(mbedtls_x509_crt_parse_der_with_ext_cb(&crt, buf->x, buf->len, 1, parse_crt_ext_cb, + &oid) == (result)); #if !defined(MBEDTLS_X509_REMOVE_INFO) - if( ( result ) == 0 ) - { - res = mbedtls_x509_crt_info( (char *) output, 2000, "", &crt ); + if ((result) == 0) { + res = mbedtls_x509_crt_info((char *) output, 2000, "", &crt); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } #endif /* !MBEDTLS_X509_REMOVE_INFO */ exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRL_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void x509parse_crl( data_t * buf, char * result_str, int result ) +void x509parse_crl(data_t *buf, char *result_str, int result) { mbedtls_x509_crl crl; unsigned char output[2000]; int res; - mbedtls_x509_crl_init( &crl ); - memset( output, 0, 2000 ); + mbedtls_x509_crl_init(&crl); + memset(output, 0, 2000); - TEST_ASSERT( mbedtls_x509_crl_parse( &crl, buf->x, buf->len ) == ( result ) ); - if( ( result ) == 0 ) - { - res = mbedtls_x509_crl_info( (char *) output, 2000, "", &crl ); + TEST_ASSERT(mbedtls_x509_crl_parse(&crl, buf->x, buf->len) == (result)); + if ((result) == 0) { + res = mbedtls_x509_crl_info((char *) output, 2000, "", &crl); - TEST_ASSERT( res != -1 ); - TEST_ASSERT( res != -2 ); + TEST_ASSERT(res != -1); + TEST_ASSERT(res != -2); - TEST_ASSERT( strcmp( (char *) output, result_str ) == 0 ); + TEST_ASSERT(strcmp((char *) output, result_str) == 0); } exit: - mbedtls_x509_crl_free( &crl ); + mbedtls_x509_crl_free(&crl); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CSR_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ -void mbedtls_x509_csr_parse( data_t * csr_der, char * ref_out, int ref_ret ) +void mbedtls_x509_csr_parse(data_t *csr_der, char *ref_out, int ref_ret) { mbedtls_x509_csr csr; char my_out[1000]; int my_ret; - mbedtls_x509_csr_init( &csr ); - memset( my_out, 0, sizeof( my_out ) ); + mbedtls_x509_csr_init(&csr); + memset(my_out, 0, sizeof(my_out)); - my_ret = mbedtls_x509_csr_parse_der( &csr, csr_der->x, csr_der->len ); - TEST_ASSERT( my_ret == ref_ret ); + my_ret = mbedtls_x509_csr_parse_der(&csr, csr_der->x, csr_der->len); + TEST_ASSERT(my_ret == ref_ret); - if( ref_ret == 0 ) - { - size_t my_out_len = mbedtls_x509_csr_info( my_out, sizeof( my_out ), "", &csr ); - TEST_ASSERT( my_out_len == strlen( ref_out ) ); - TEST_ASSERT( strcmp( my_out, ref_out ) == 0 ); + if (ref_ret == 0) { + size_t my_out_len = mbedtls_x509_csr_info(my_out, sizeof(my_out), "", &csr); + TEST_ASSERT(my_out_len == strlen(ref_out)); + TEST_ASSERT(strcmp(my_out, ref_out) == 0); } exit: - mbedtls_x509_csr_free( &csr ); + mbedtls_x509_csr_free(&csr); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_crt_parse_path( char * crt_path, int ret, int nb_crt ) +void mbedtls_x509_crt_parse_path(char *crt_path, int ret, int nb_crt) { mbedtls_x509_crt chain, *cur; int i; - mbedtls_x509_crt_init( &chain ); + mbedtls_x509_crt_init(&chain); - TEST_ASSERT( mbedtls_x509_crt_parse_path( &chain, crt_path ) == ret ); + TEST_ASSERT(mbedtls_x509_crt_parse_path(&chain, crt_path) == ret); /* Check how many certs we got */ - for( i = 0, cur = &chain; cur != NULL; cur = cur->next ) - if( cur->raw.p != NULL ) + for (i = 0, cur = &chain; cur != NULL; cur = cur->next) { + if (cur->raw.p != NULL) { i++; + } + } - TEST_ASSERT( i == nb_crt ); + TEST_ASSERT(i == nb_crt); exit: - mbedtls_x509_crt_free( &chain ); + mbedtls_x509_crt_free(&chain); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_crt_verify_max( char *ca_file, char *chain_dir, int nb_int, - int ret_chk, int flags_chk ) +void mbedtls_x509_crt_verify_max(char *ca_file, char *chain_dir, int nb_int, + int ret_chk, int flags_chk) { char file_buf[128]; int ret; @@ -1184,80 +1207,82 @@ void mbedtls_x509_crt_verify_max( char *ca_file, char *chain_dir, int nb_int, * with NN.crt signed by NN-1.crt */ - mbedtls_x509_crt_init( &trusted ); - mbedtls_x509_crt_init( &chain ); + mbedtls_x509_crt_init(&trusted); + mbedtls_x509_crt_init(&chain); - USE_PSA_INIT( ); + USE_PSA_INIT(); /* Load trusted root */ - TEST_ASSERT( mbedtls_x509_crt_parse_file( &trusted, ca_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&trusted, ca_file) == 0); /* Load a chain with nb_int intermediates (from 01 to nb_int), * plus one "end-entity" cert (nb_int + 1) */ - ret = mbedtls_snprintf( file_buf, sizeof file_buf, "%s/c%02d.pem", chain_dir, - nb_int + 1 ); - TEST_ASSERT( ret > 0 && (size_t) ret < sizeof file_buf ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &chain, file_buf ) == 0 ); + ret = mbedtls_snprintf(file_buf, sizeof file_buf, "%s/c%02d.pem", chain_dir, + nb_int + 1); + TEST_ASSERT(ret > 0 && (size_t) ret < sizeof file_buf); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&chain, file_buf) == 0); /* Try to verify that chain */ - ret = mbedtls_x509_crt_verify( &chain, &trusted, NULL, NULL, &flags, - NULL, NULL ); - TEST_ASSERT( ret == ret_chk ); - TEST_ASSERT( flags == (uint32_t) flags_chk ); + ret = mbedtls_x509_crt_verify(&chain, &trusted, NULL, NULL, &flags, + NULL, NULL); + TEST_ASSERT(ret == ret_chk); + TEST_ASSERT(flags == (uint32_t) flags_chk); exit: - mbedtls_x509_crt_free( &chain ); - mbedtls_x509_crt_free( &trusted ); - USE_PSA_DONE( ); + mbedtls_x509_crt_free(&chain); + mbedtls_x509_crt_free(&trusted); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void mbedtls_x509_crt_verify_chain( char *chain_paths, char *trusted_ca, - int flags_result, int result, - char *profile_name, int vrfy_fatal_lvls ) +void mbedtls_x509_crt_verify_chain(char *chain_paths, char *trusted_ca, + int flags_result, int result, + char *profile_name, int vrfy_fatal_lvls) { - char* act; + char *act; uint32_t flags; int res; mbedtls_x509_crt trusted, chain; const mbedtls_x509_crt_profile *profile = NULL; - mbedtls_x509_crt_init( &chain ); - mbedtls_x509_crt_init( &trusted ); + mbedtls_x509_crt_init(&chain); + mbedtls_x509_crt_init(&trusted); - USE_PSA_INIT( ); + USE_PSA_INIT(); - while( ( act = mystrsep( &chain_paths, " " ) ) != NULL ) - TEST_ASSERT( mbedtls_x509_crt_parse_file( &chain, act ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &trusted, trusted_ca ) == 0 ); + while ((act = mystrsep(&chain_paths, " ")) != NULL) { + TEST_ASSERT(mbedtls_x509_crt_parse_file(&chain, act) == 0); + } + TEST_ASSERT(mbedtls_x509_crt_parse_file(&trusted, trusted_ca) == 0); - if( strcmp( profile_name, "" ) == 0 ) + if (strcmp(profile_name, "") == 0) { profile = &mbedtls_x509_crt_profile_default; - else if( strcmp( profile_name, "next" ) == 0 ) + } else if (strcmp(profile_name, "next") == 0) { profile = &mbedtls_x509_crt_profile_next; - else if( strcmp( profile_name, "suiteb" ) == 0 ) + } else if (strcmp(profile_name, "suiteb") == 0) { profile = &mbedtls_x509_crt_profile_suiteb; - else if( strcmp( profile_name, "rsa3072" ) == 0 ) + } else if (strcmp(profile_name, "rsa3072") == 0) { profile = &profile_rsa3072; - else if( strcmp( profile_name, "sha512" ) == 0 ) + } else if (strcmp(profile_name, "sha512") == 0) { profile = &profile_sha512; + } - res = mbedtls_x509_crt_verify_with_profile( &chain, &trusted, NULL, profile, - NULL, &flags, verify_fatal, &vrfy_fatal_lvls ); + res = mbedtls_x509_crt_verify_with_profile(&chain, &trusted, NULL, profile, + NULL, &flags, verify_fatal, &vrfy_fatal_lvls); - TEST_ASSERT( res == ( result ) ); - TEST_ASSERT( flags == (uint32_t)( flags_result ) ); + TEST_ASSERT(res == (result)); + TEST_ASSERT(flags == (uint32_t) (flags_result)); exit: - mbedtls_x509_crt_free( &trusted ); - mbedtls_x509_crt_free( &chain ); - USE_PSA_DONE( ); + mbedtls_x509_crt_free(&trusted); + mbedtls_x509_crt_free(&chain); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_USE_C:!MBEDTLS_X509_REMOVE_INFO */ -void x509_oid_desc( data_t * buf, char * ref_desc ) +void x509_oid_desc(data_t *buf, char *ref_desc) { mbedtls_x509_buf oid; const char *desc = NULL; @@ -1268,114 +1293,110 @@ void x509_oid_desc( data_t * buf, char * ref_desc ) oid.p = buf->x; oid.len = buf->len; - ret = mbedtls_oid_get_extended_key_usage( &oid, &desc ); + ret = mbedtls_oid_get_extended_key_usage(&oid, &desc); - if( strcmp( ref_desc, "notfound" ) == 0 ) - { - TEST_ASSERT( ret != 0 ); - TEST_ASSERT( desc == NULL ); - } - else - { - TEST_ASSERT( ret == 0 ); - TEST_ASSERT( desc != NULL ); - TEST_ASSERT( strcmp( desc, ref_desc ) == 0 ); + if (strcmp(ref_desc, "notfound") == 0) { + TEST_ASSERT(ret != 0); + TEST_ASSERT(desc == NULL); + } else { + TEST_ASSERT(ret == 0); + TEST_ASSERT(desc != NULL); + TEST_ASSERT(strcmp(desc, ref_desc) == 0); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_USE_C */ -void x509_oid_numstr( data_t * oid_buf, char * numstr, int blen, int ret ) +void x509_oid_numstr(data_t *oid_buf, char *numstr, int blen, int ret) { mbedtls_x509_buf oid; char num_buf[100]; - memset( num_buf, 0x2a, sizeof num_buf ); + memset(num_buf, 0x2a, sizeof num_buf); oid.tag = MBEDTLS_ASN1_OID; oid.p = oid_buf->x; oid.len = oid_buf->len; - TEST_ASSERT( (size_t) blen <= sizeof num_buf ); + TEST_ASSERT((size_t) blen <= sizeof num_buf); - TEST_ASSERT( mbedtls_oid_get_numeric_string( num_buf, blen, &oid ) == ret ); + TEST_ASSERT(mbedtls_oid_get_numeric_string(num_buf, blen, &oid) == ret); - if( ret >= 0 ) - { - TEST_ASSERT( num_buf[ret] == 0 ); - TEST_ASSERT( strcmp( num_buf, numstr ) == 0 ); + if (ret >= 0) { + TEST_ASSERT(num_buf[ret] == 0); + TEST_ASSERT(strcmp(num_buf, numstr) == 0); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void x509_check_key_usage( char * crt_file, int usage, int ret ) +void x509_check_key_usage(char *crt_file, int usage, int ret) { mbedtls_x509_crt crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); - TEST_ASSERT( mbedtls_x509_crt_check_key_usage( &crt, usage ) == ret ); + TEST_ASSERT(mbedtls_x509_crt_check_key_usage(&crt, usage) == ret); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ -void x509_check_extended_key_usage( char * crt_file, data_t * oid, int ret - ) +void x509_check_extended_key_usage(char *crt_file, data_t *oid, int ret + ) { mbedtls_x509_crt crt; - mbedtls_x509_crt_init( &crt ); + mbedtls_x509_crt_init(&crt); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &crt, crt_file ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&crt, crt_file) == 0); - TEST_ASSERT( mbedtls_x509_crt_check_extended_key_usage( &crt, (const char *)oid->x, oid->len ) == ret ); + TEST_ASSERT(mbedtls_x509_crt_check_extended_key_usage(&crt, (const char *) oid->x, + oid->len) == ret); exit: - mbedtls_x509_crt_free( &crt ); + mbedtls_x509_crt_free(&crt); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_USE_C */ -void x509_get_time( int tag, char * time_str, int ret, int year, int mon, - int day, int hour, int min, int sec ) +void x509_get_time(int tag, char *time_str, int ret, int year, int mon, + int day, int hour, int min, int sec) { mbedtls_x509_time time; unsigned char buf[21]; - unsigned char* start = buf; - unsigned char* end = buf; + unsigned char *start = buf; + unsigned char *end = buf; - memset( &time, 0x00, sizeof( time ) ); - *end = (unsigned char)tag; end++; - *end = strlen( time_str ); - TEST_ASSERT( *end < 20 ); + memset(&time, 0x00, sizeof(time)); + *end = (unsigned char) tag; end++; + *end = strlen(time_str); + TEST_ASSERT(*end < 20); end++; - memcpy( end, time_str, (size_t)*(end - 1) ); + memcpy(end, time_str, (size_t) *(end - 1)); end += *(end - 1); - TEST_ASSERT( mbedtls_x509_get_time( &start, end, &time ) == ret ); - if( ret == 0 ) - { - TEST_ASSERT( year == time.year ); - TEST_ASSERT( mon == time.mon ); - TEST_ASSERT( day == time.day ); - TEST_ASSERT( hour == time.hour ); - TEST_ASSERT( min == time.min ); - TEST_ASSERT( sec == time.sec ); + TEST_ASSERT(mbedtls_x509_get_time(&start, end, &time) == ret); + if (ret == 0) { + TEST_ASSERT(year == time.year); + TEST_ASSERT(mon == time.mon); + TEST_ASSERT(day == time.day); + TEST_ASSERT(hour == time.hour); + TEST_ASSERT(min == time.min); + TEST_ASSERT(sec == time.sec); } } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT */ -void x509_parse_rsassa_pss_params( data_t * params, int params_tag, - int ref_msg_md, int ref_mgf_md, - int ref_salt_len, int ref_ret ) +void x509_parse_rsassa_pss_params(data_t *params, int params_tag, + int ref_msg_md, int ref_mgf_md, + int ref_salt_len, int ref_ret) { int my_ret; mbedtls_x509_buf buf; @@ -1386,16 +1407,15 @@ void x509_parse_rsassa_pss_params( data_t * params, int params_tag, buf.len = params->len; buf.tag = params_tag; - my_ret = mbedtls_x509_get_rsassa_pss_params( &buf, &my_msg_md, &my_mgf_md, - &my_salt_len ); + my_ret = mbedtls_x509_get_rsassa_pss_params(&buf, &my_msg_md, &my_mgf_md, + &my_salt_len); - TEST_ASSERT( my_ret == ref_ret ); + TEST_ASSERT(my_ret == ref_ret); - if( ref_ret == 0 ) - { - TEST_ASSERT( my_msg_md == (mbedtls_md_type_t) ref_msg_md ); - TEST_ASSERT( my_mgf_md == (mbedtls_md_type_t) ref_mgf_md ); - TEST_ASSERT( my_salt_len == ref_salt_len ); + if (ref_ret == 0) { + TEST_ASSERT(my_msg_md == (mbedtls_md_type_t) ref_msg_md); + TEST_ASSERT(my_mgf_md == (mbedtls_md_type_t) ref_mgf_md); + TEST_ASSERT(my_salt_len == ref_salt_len); } exit: diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 5bd814ad8..a21ad475a 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -11,67 +11,64 @@ #include "mbedtls/legacy_or_psa.h" #if defined(MBEDTLS_RSA_C) -int mbedtls_rsa_decrypt_func( void *ctx, size_t *olen, - const unsigned char *input, unsigned char *output, - size_t output_max_len ) +int mbedtls_rsa_decrypt_func(void *ctx, size_t *olen, + const unsigned char *input, unsigned char *output, + size_t output_max_len) { - return( mbedtls_rsa_pkcs1_decrypt( (mbedtls_rsa_context *) ctx, NULL, NULL, - olen, input, output, output_max_len ) ); + return mbedtls_rsa_pkcs1_decrypt((mbedtls_rsa_context *) ctx, NULL, NULL, + olen, input, output, output_max_len); } -int mbedtls_rsa_sign_func( void *ctx, - int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, - mbedtls_md_type_t md_alg, unsigned int hashlen, - const unsigned char *hash, unsigned char *sig ) +int mbedtls_rsa_sign_func(void *ctx, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, + mbedtls_md_type_t md_alg, unsigned int hashlen, + const unsigned char *hash, unsigned char *sig) { - return( mbedtls_rsa_pkcs1_sign( (mbedtls_rsa_context *) ctx, f_rng, p_rng, - md_alg, hashlen, hash, sig ) ); + return mbedtls_rsa_pkcs1_sign((mbedtls_rsa_context *) ctx, f_rng, p_rng, + md_alg, hashlen, hash, sig); } -size_t mbedtls_rsa_key_len_func( void *ctx ) +size_t mbedtls_rsa_key_len_func(void *ctx) { - return( ((const mbedtls_rsa_context *) ctx)->len ); + return ((const mbedtls_rsa_context *) ctx)->len; } #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_USE_PSA_CRYPTO) && \ defined(MBEDTLS_PEM_WRITE_C) && defined(MBEDTLS_X509_CSR_WRITE_C) -static int x509_crt_verifycsr( const unsigned char *buf, size_t buflen ) +static int x509_crt_verifycsr(const unsigned char *buf, size_t buflen) { unsigned char hash[PSA_HASH_MAX_SIZE]; mbedtls_x509_csr csr; int ret = 0; - mbedtls_x509_csr_init( &csr ); + mbedtls_x509_csr_init(&csr); - if( mbedtls_x509_csr_parse( &csr, buf, buflen ) != 0 ) - { + if (mbedtls_x509_csr_parse(&csr, buf, buflen) != 0) { ret = MBEDTLS_ERR_X509_BAD_INPUT_DATA; goto cleanup; } - psa_algorithm_t psa_alg = mbedtls_hash_info_psa_from_md( csr.sig_md ); + psa_algorithm_t psa_alg = mbedtls_hash_info_psa_from_md(csr.sig_md); size_t hash_size = 0; - psa_status_t status = psa_hash_compute( psa_alg, csr.cri.p, csr.cri.len, - hash, PSA_HASH_MAX_SIZE, &hash_size ); + psa_status_t status = psa_hash_compute(psa_alg, csr.cri.p, csr.cri.len, + hash, PSA_HASH_MAX_SIZE, &hash_size); - if( status != PSA_SUCCESS ) - { + if (status != PSA_SUCCESS) { /* Note: this can't happen except after an internal error */ ret = MBEDTLS_ERR_X509_BAD_INPUT_DATA; goto cleanup; } - if( mbedtls_pk_verify_ext( csr.sig_pk, csr.sig_opts, &csr.pk, - csr.sig_md, hash, mbedtls_hash_info_get_size( csr.sig_md ), - csr.sig.p, csr.sig.len ) != 0 ) - { + if (mbedtls_pk_verify_ext(csr.sig_pk, csr.sig_opts, &csr.pk, + csr.sig_md, hash, mbedtls_hash_info_get_size(csr.sig_md), + csr.sig.p, csr.sig.len) != 0) { ret = MBEDTLS_ERR_X509_CERT_VERIFY_FAILED; goto cleanup; } cleanup: - mbedtls_x509_csr_free( &csr ); - return( ret ); + mbedtls_x509_csr_free(&csr); + return ret; } #endif /* MBEDTLS_USE_PSA_CRYPTO && MBEDTLS_PEM_WRITE_C && MBEDTLS_X509_CSR_WRITE_C */ @@ -97,11 +94,11 @@ cleanup: */ #define EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH 12 -static int csr_set_extended_key_usage( mbedtls_x509write_csr *ctx, - const char *oid, size_t oid_len ) +static int csr_set_extended_key_usage(mbedtls_x509write_csr *ctx, + const char *oid, size_t oid_len) { unsigned char buf[EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH] = { 0 }; - unsigned char *p = buf + sizeof( buf ); + unsigned char *p = buf + sizeof(buf); int ret; size_t len = 0; @@ -109,18 +106,22 @@ static int csr_set_extended_key_usage( mbedtls_x509write_csr *ctx, * Following functions fail anyway if the temporary buffer is not large, * but we set an extra check here to emphasize a possible source of errors */ - if ( oid_len > EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH ) - { + if (oid_len > EXT_KEY_USAGE_TMP_BUF_MAX_LENGTH) { return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( &p, buf, oid, oid_len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &p, buf, ret ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &p, buf, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_oid(&p, buf, oid, oid_len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&p, buf, ret)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&p, buf, + MBEDTLS_ASN1_CONSTRUCTED | + MBEDTLS_ASN1_SEQUENCE)); - ret = mbedtls_x509write_csr_set_extension( ctx, MBEDTLS_OID_EXTENDED_KEY_USAGE, - MBEDTLS_OID_SIZE( MBEDTLS_OID_EXTENDED_KEY_USAGE ), 0, p, len ); + ret = mbedtls_x509write_csr_set_extension(ctx, + MBEDTLS_OID_EXTENDED_KEY_USAGE, + MBEDTLS_OID_SIZE(MBEDTLS_OID_EXTENDED_KEY_USAGE), + 0, + p, + len); return ret; } @@ -133,9 +134,9 @@ static int csr_set_extended_key_usage( mbedtls_x509write_csr *ctx, */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CSR_WRITE_C */ -void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type, - int key_usage, int set_key_usage, int cert_type, - int set_cert_type, int set_extension ) +void x509_csr_check(char *key_file, char *cert_req_check_file, int md_type, + int key_usage, int set_key_usage, int cert_type, + int set_cert_type, int set_extension) { mbedtls_pk_context key; mbedtls_x509write_csr req; @@ -151,60 +152,63 @@ void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type, const char *subject_name = "C=NL,O=PolarSSL,CN=PolarSSL Server 1"; mbedtls_test_rnd_pseudo_info rnd_info; - memset( &rnd_info, 0x2a, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0x2a, sizeof(mbedtls_test_rnd_pseudo_info)); - mbedtls_x509write_csr_init( &req ); + mbedtls_x509write_csr_init(&req); - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_pk_init( &key ); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &key, key_file, NULL, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); + mbedtls_pk_init(&key); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&key, key_file, NULL, + mbedtls_test_rnd_std_rand, NULL) == 0); - mbedtls_x509write_csr_set_md_alg( &req, md_type ); - mbedtls_x509write_csr_set_key( &req, &key ); - TEST_ASSERT( mbedtls_x509write_csr_set_subject_name( &req, subject_name ) == 0 ); - if( set_key_usage != 0 ) - TEST_ASSERT( mbedtls_x509write_csr_set_key_usage( &req, key_usage ) == 0 ); - if( set_cert_type != 0 ) - TEST_ASSERT( mbedtls_x509write_csr_set_ns_cert_type( &req, cert_type ) == 0 ); - if ( set_extension != 0 ) - TEST_ASSERT( csr_set_extended_key_usage( &req, MBEDTLS_OID_SERVER_AUTH, - MBEDTLS_OID_SIZE( MBEDTLS_OID_SERVER_AUTH ) ) == 0 ); + mbedtls_x509write_csr_set_md_alg(&req, md_type); + mbedtls_x509write_csr_set_key(&req, &key); + TEST_ASSERT(mbedtls_x509write_csr_set_subject_name(&req, subject_name) == 0); + if (set_key_usage != 0) { + TEST_ASSERT(mbedtls_x509write_csr_set_key_usage(&req, key_usage) == 0); + } + if (set_cert_type != 0) { + TEST_ASSERT(mbedtls_x509write_csr_set_ns_cert_type(&req, cert_type) == 0); + } + if (set_extension != 0) { + TEST_ASSERT(csr_set_extended_key_usage(&req, MBEDTLS_OID_SERVER_AUTH, + MBEDTLS_OID_SIZE(MBEDTLS_OID_SERVER_AUTH)) == 0); + } - ret = mbedtls_x509write_csr_pem( &req, buf, sizeof( buf ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_x509write_csr_pem(&req, buf, sizeof(buf), + mbedtls_test_rnd_pseudo_rand, &rnd_info); + TEST_ASSERT(ret == 0); - pem_len = strlen( (char *) buf ); + pem_len = strlen((char *) buf); - for( buf_index = pem_len; buf_index < sizeof( buf ); ++buf_index ) - { - TEST_ASSERT( buf[buf_index] == 0 ); + for (buf_index = pem_len; buf_index < sizeof(buf); ++buf_index) { + TEST_ASSERT(buf[buf_index] == 0); } #if defined(MBEDTLS_USE_PSA_CRYPTO) // When using PSA crypto, RNG isn't controllable, so cert_req_check_file can't be used - (void)cert_req_check_file; + (void) cert_req_check_file; buf[pem_len] = '\0'; - TEST_ASSERT( x509_crt_verifycsr( buf, pem_len + 1 ) == 0 ); + TEST_ASSERT(x509_crt_verifycsr(buf, pem_len + 1) == 0); #else - f = fopen( cert_req_check_file, "r" ); - TEST_ASSERT( f != NULL ); - olen = fread( check_buf, 1, sizeof( check_buf ), f ); - fclose( f ); + f = fopen(cert_req_check_file, "r"); + TEST_ASSERT(f != NULL); + olen = fread(check_buf, 1, sizeof(check_buf), f); + fclose(f); - TEST_ASSERT( olen >= pem_len - 1 ); - TEST_ASSERT( memcmp( buf, check_buf, pem_len - 1 ) == 0 ); + TEST_ASSERT(olen >= pem_len - 1); + TEST_ASSERT(memcmp(buf, check_buf, pem_len - 1) == 0); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - der_len = mbedtls_x509write_csr_der( &req, buf, sizeof( buf ), - mbedtls_test_rnd_pseudo_rand, - &rnd_info ); - TEST_ASSERT( der_len >= 0 ); + der_len = mbedtls_x509write_csr_der(&req, buf, sizeof(buf), + mbedtls_test_rnd_pseudo_rand, + &rnd_info); + TEST_ASSERT(der_len >= 0); - if( der_len == 0 ) + if (der_len == 0) { goto exit; + } #if defined(MBEDTLS_USE_PSA_CRYPTO) // When using PSA crypto, RNG isn't controllable, result length isn't @@ -214,20 +218,20 @@ void x509_csr_check( char * key_file, char * cert_req_check_file, int md_type, #else der_len -= 1; #endif - ret = mbedtls_x509write_csr_der( &req, buf, (size_t)( der_len ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ); - TEST_ASSERT( ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + ret = mbedtls_x509write_csr_der(&req, buf, (size_t) (der_len), + mbedtls_test_rnd_pseudo_rand, &rnd_info); + TEST_ASSERT(ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL); exit: - mbedtls_x509write_csr_free( &req ); - mbedtls_pk_free( &key ); - USE_PSA_DONE( ); + mbedtls_x509write_csr_free(&req); + mbedtls_pk_free(&key); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CSR_WRITE_C:MBEDTLS_USE_PSA_CRYPTO */ -void x509_csr_check_opaque( char *key_file, int md_type, int key_usage, - int cert_type ) +void x509_csr_check_opaque(char *key_file, int md_type, int key_usage, + int cert_type) { mbedtls_pk_context key; mbedtls_svc_key_id_t key_id = MBEDTLS_SVC_KEY_ID_INIT; @@ -239,66 +243,69 @@ void x509_csr_check_opaque( char *key_file, int md_type, int key_usage, const char *subject_name = "C=NL,O=PolarSSL,CN=PolarSSL Server 1"; mbedtls_test_rnd_pseudo_info rnd_info; - memset( &rnd_info, 0x2a, sizeof( mbedtls_test_rnd_pseudo_info ) ); + memset(&rnd_info, 0x2a, sizeof(mbedtls_test_rnd_pseudo_info)); - mbedtls_x509write_csr_init( &req ); + mbedtls_x509write_csr_init(&req); - USE_PSA_INIT( ); + USE_PSA_INIT(); - md_alg_psa = mbedtls_hash_info_psa_from_md( (mbedtls_md_type_t) md_type ); - TEST_ASSERT( md_alg_psa != MBEDTLS_MD_NONE ); + md_alg_psa = mbedtls_hash_info_psa_from_md((mbedtls_md_type_t) md_type); + TEST_ASSERT(md_alg_psa != MBEDTLS_MD_NONE); - mbedtls_pk_init( &key ); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &key, key_file, NULL, - mbedtls_test_rnd_std_rand, NULL ) == 0 ); + mbedtls_pk_init(&key); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&key, key_file, NULL, + mbedtls_test_rnd_std_rand, NULL) == 0); - if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_ECKEY ) - alg_psa = PSA_ALG_ECDSA( md_alg_psa ); - else if( mbedtls_pk_get_type( &key ) == MBEDTLS_PK_RSA ) - alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN( md_alg_psa ); - else - TEST_ASSUME( ! "PK key type not supported in this configuration" ); + if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_ECKEY) { + alg_psa = PSA_ALG_ECDSA(md_alg_psa); + } else if (mbedtls_pk_get_type(&key) == MBEDTLS_PK_RSA) { + alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN(md_alg_psa); + } else { + TEST_ASSUME(!"PK key type not supported in this configuration"); + } - TEST_ASSERT( mbedtls_pk_wrap_as_opaque( &key, &key_id, alg_psa, - PSA_KEY_USAGE_SIGN_HASH, - PSA_ALG_NONE ) == 0 ); + TEST_ASSERT(mbedtls_pk_wrap_as_opaque(&key, &key_id, alg_psa, + PSA_KEY_USAGE_SIGN_HASH, + PSA_ALG_NONE) == 0); - mbedtls_x509write_csr_set_md_alg( &req, md_type ); - mbedtls_x509write_csr_set_key( &req, &key ); - TEST_ASSERT( mbedtls_x509write_csr_set_subject_name( &req, subject_name ) == 0 ); - if( key_usage != 0 ) - TEST_ASSERT( mbedtls_x509write_csr_set_key_usage( &req, key_usage ) == 0 ); - if( cert_type != 0 ) - TEST_ASSERT( mbedtls_x509write_csr_set_ns_cert_type( &req, cert_type ) == 0 ); + mbedtls_x509write_csr_set_md_alg(&req, md_type); + mbedtls_x509write_csr_set_key(&req, &key); + TEST_ASSERT(mbedtls_x509write_csr_set_subject_name(&req, subject_name) == 0); + if (key_usage != 0) { + TEST_ASSERT(mbedtls_x509write_csr_set_key_usage(&req, key_usage) == 0); + } + if (cert_type != 0) { + TEST_ASSERT(mbedtls_x509write_csr_set_ns_cert_type(&req, cert_type) == 0); + } - ret = mbedtls_x509write_csr_pem( &req, buf, sizeof( buf ) - 1, - mbedtls_test_rnd_pseudo_rand, &rnd_info ); + ret = mbedtls_x509write_csr_pem(&req, buf, sizeof(buf) - 1, + mbedtls_test_rnd_pseudo_rand, &rnd_info); - TEST_ASSERT( ret == 0 ); + TEST_ASSERT(ret == 0); - pem_len = strlen( (char *) buf ); + pem_len = strlen((char *) buf); buf[pem_len] = '\0'; - TEST_ASSERT( x509_crt_verifycsr( buf, pem_len + 1 ) == 0 ); + TEST_ASSERT(x509_crt_verifycsr(buf, pem_len + 1) == 0); exit: - mbedtls_x509write_csr_free( &req ); - mbedtls_pk_free( &key ); - psa_destroy_key( key_id ); - PSA_DONE( ); + mbedtls_x509write_csr_free(&req); + mbedtls_pk_free(&key); + psa_destroy_key(key_id); + PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_PEM_WRITE_C:MBEDTLS_X509_CRT_WRITE_C:MBEDTLS_X509_CRT_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ -void x509_crt_check( char *subject_key_file, char *subject_pwd, - char *subject_name, char *issuer_key_file, - char *issuer_pwd, char *issuer_name, - char *serial_str, char *not_before, char *not_after, - int md_type, int key_usage, int set_key_usage, - char *ext_key_usage, - int cert_type, int set_cert_type, int auth_ident, - int ver, char *cert_check_file, int pk_wrap, int is_ca, - char *cert_verify_file ) +void x509_crt_check(char *subject_key_file, char *subject_pwd, + char *subject_name, char *issuer_key_file, + char *issuer_pwd, char *issuer_name, + char *serial_str, char *not_before, char *not_after, + int md_type, int key_usage, int set_key_usage, + char *ext_key_usage, + int cert_type, int set_cert_type, int auth_ident, + int ver, char *cert_check_file, int pk_wrap, int is_ca, + char *cert_verify_file) { mbedtls_pk_context subject_key, issuer_key, issuer_key_alt; mbedtls_pk_context *key = &issuer_key; @@ -319,34 +326,33 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, #endif mbedtls_pk_type_t issuer_key_type; - memset( &rnd_info, 0x2a, sizeof( mbedtls_test_rnd_pseudo_info ) ); - mbedtls_mpi_init( &serial ); + memset(&rnd_info, 0x2a, sizeof(mbedtls_test_rnd_pseudo_info)); + mbedtls_mpi_init(&serial); - USE_PSA_INIT( ); + USE_PSA_INIT(); - mbedtls_pk_init( &subject_key ); - mbedtls_pk_init( &issuer_key ); - mbedtls_pk_init( &issuer_key_alt ); + mbedtls_pk_init(&subject_key); + mbedtls_pk_init(&issuer_key); + mbedtls_pk_init(&issuer_key_alt); - mbedtls_x509write_crt_init( &crt ); + mbedtls_x509write_crt_init(&crt); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &subject_key, subject_key_file, - subject_pwd, mbedtls_test_rnd_std_rand, NULL ) == 0 ); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&subject_key, subject_key_file, + subject_pwd, mbedtls_test_rnd_std_rand, NULL) == 0); - TEST_ASSERT( mbedtls_pk_parse_keyfile( &issuer_key, issuer_key_file, - issuer_pwd, mbedtls_test_rnd_std_rand, NULL ) == 0 ); + TEST_ASSERT(mbedtls_pk_parse_keyfile(&issuer_key, issuer_key_file, + issuer_pwd, mbedtls_test_rnd_std_rand, NULL) == 0); - issuer_key_type = mbedtls_pk_get_type( &issuer_key ); + issuer_key_type = mbedtls_pk_get_type(&issuer_key); #if defined(MBEDTLS_RSA_C) /* For RSA PK contexts, create a copy as an alternative RSA context. */ - if( pk_wrap == 1 && issuer_key_type == MBEDTLS_PK_RSA ) - { - TEST_ASSERT( mbedtls_pk_setup_rsa_alt( &issuer_key_alt, - mbedtls_pk_rsa( issuer_key ), - mbedtls_rsa_decrypt_func, - mbedtls_rsa_sign_func, - mbedtls_rsa_key_len_func ) == 0 ); + if (pk_wrap == 1 && issuer_key_type == MBEDTLS_PK_RSA) { + TEST_ASSERT(mbedtls_pk_setup_rsa_alt(&issuer_key_alt, + mbedtls_pk_rsa(issuer_key), + mbedtls_rsa_decrypt_func, + mbedtls_rsa_sign_func, + mbedtls_rsa_key_len_func) == 0); key = &issuer_key_alt; } @@ -354,216 +360,206 @@ void x509_crt_check( char *subject_key_file, char *subject_pwd, #if defined(MBEDTLS_USE_PSA_CRYPTO) /* For Opaque PK contexts, wrap key as an Opaque RSA context. */ - if( pk_wrap == 2 ) - { + if (pk_wrap == 2) { psa_algorithm_t alg_psa, md_alg_psa; - md_alg_psa = mbedtls_hash_info_psa_from_md( (mbedtls_md_type_t) md_type ); - TEST_ASSERT( md_alg_psa != MBEDTLS_MD_NONE ); + md_alg_psa = mbedtls_hash_info_psa_from_md((mbedtls_md_type_t) md_type); + TEST_ASSERT(md_alg_psa != MBEDTLS_MD_NONE); - if( mbedtls_pk_get_type( &issuer_key ) == MBEDTLS_PK_ECKEY ) - alg_psa = PSA_ALG_ECDSA( md_alg_psa ); - else if( mbedtls_pk_get_type( &issuer_key ) == MBEDTLS_PK_RSA ) - alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN( md_alg_psa ); - else - TEST_ASSUME( ! "PK key type not supported in this configuration" ); + if (mbedtls_pk_get_type(&issuer_key) == MBEDTLS_PK_ECKEY) { + alg_psa = PSA_ALG_ECDSA(md_alg_psa); + } else if (mbedtls_pk_get_type(&issuer_key) == MBEDTLS_PK_RSA) { + alg_psa = PSA_ALG_RSA_PKCS1V15_SIGN(md_alg_psa); + } else { + TEST_ASSUME(!"PK key type not supported in this configuration"); + } - TEST_ASSERT( mbedtls_pk_wrap_as_opaque( &issuer_key, &key_id, alg_psa, - PSA_KEY_USAGE_SIGN_HASH, - PSA_ALG_NONE ) == 0 ); + TEST_ASSERT(mbedtls_pk_wrap_as_opaque(&issuer_key, &key_id, alg_psa, + PSA_KEY_USAGE_SIGN_HASH, + PSA_ALG_NONE) == 0); } #endif /* MBEDTLS_USE_PSA_CRYPTO */ - if( pk_wrap == 2 ) - TEST_ASSERT( mbedtls_pk_get_type( &issuer_key ) == MBEDTLS_PK_OPAQUE ); + if (pk_wrap == 2) { + TEST_ASSERT(mbedtls_pk_get_type(&issuer_key) == MBEDTLS_PK_OPAQUE); + } - TEST_ASSERT( mbedtls_test_read_mpi( &serial, serial_str ) == 0 ); + TEST_ASSERT(mbedtls_test_read_mpi(&serial, serial_str) == 0); - if( ver != -1 ) - mbedtls_x509write_crt_set_version( &crt, ver ); + if (ver != -1) { + mbedtls_x509write_crt_set_version(&crt, ver); + } - TEST_ASSERT( mbedtls_x509write_crt_set_serial( &crt, &serial ) == 0 ); - TEST_ASSERT( mbedtls_x509write_crt_set_validity( &crt, not_before, - not_after ) == 0 ); - mbedtls_x509write_crt_set_md_alg( &crt, md_type ); - TEST_ASSERT( mbedtls_x509write_crt_set_issuer_name( &crt, issuer_name ) == 0 ); - TEST_ASSERT( mbedtls_x509write_crt_set_subject_name( &crt, subject_name ) == 0 ); - mbedtls_x509write_crt_set_subject_key( &crt, &subject_key ); + TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial) == 0); + TEST_ASSERT(mbedtls_x509write_crt_set_validity(&crt, not_before, + not_after) == 0); + mbedtls_x509write_crt_set_md_alg(&crt, md_type); + TEST_ASSERT(mbedtls_x509write_crt_set_issuer_name(&crt, issuer_name) == 0); + TEST_ASSERT(mbedtls_x509write_crt_set_subject_name(&crt, subject_name) == 0); + mbedtls_x509write_crt_set_subject_key(&crt, &subject_key); - mbedtls_x509write_crt_set_issuer_key( &crt, key ); + mbedtls_x509write_crt_set_issuer_key(&crt, key); - if( crt.version >= MBEDTLS_X509_CRT_VERSION_3 ) - { + if (crt.version >= MBEDTLS_X509_CRT_VERSION_3) { /* For the CA case, a path length of -1 means unlimited. */ - TEST_ASSERT( mbedtls_x509write_crt_set_basic_constraints( &crt, is_ca, - (is_ca ? -1 : 0) ) == 0 ); - TEST_ASSERT( mbedtls_x509write_crt_set_subject_key_identifier( &crt ) == 0 ); - if( auth_ident ) - TEST_ASSERT( mbedtls_x509write_crt_set_authority_key_identifier( &crt ) == 0 ); - if( set_key_usage != 0 ) - TEST_ASSERT( mbedtls_x509write_crt_set_key_usage( &crt, key_usage ) == 0 ); - if( set_cert_type != 0 ) - TEST_ASSERT( mbedtls_x509write_crt_set_ns_cert_type( &crt, cert_type ) == 0 ); - if( strcmp( ext_key_usage, "NULL" ) != 0 ) - { + TEST_ASSERT(mbedtls_x509write_crt_set_basic_constraints(&crt, is_ca, + (is_ca ? -1 : 0)) == 0); + TEST_ASSERT(mbedtls_x509write_crt_set_subject_key_identifier(&crt) == 0); + if (auth_ident) { + TEST_ASSERT(mbedtls_x509write_crt_set_authority_key_identifier(&crt) == 0); + } + if (set_key_usage != 0) { + TEST_ASSERT(mbedtls_x509write_crt_set_key_usage(&crt, key_usage) == 0); + } + if (set_cert_type != 0) { + TEST_ASSERT(mbedtls_x509write_crt_set_ns_cert_type(&crt, cert_type) == 0); + } + if (strcmp(ext_key_usage, "NULL") != 0) { mbedtls_asn1_sequence exts[2]; - memset( exts, 0, sizeof(exts) ); + memset(exts, 0, sizeof(exts)); #define SET_OID(x, oid) \ do { \ x.len = MBEDTLS_OID_SIZE(oid); \ - x.p = (unsigned char*)oid; \ + x.p = (unsigned char *) oid; \ x.tag = MBEDTLS_ASN1_OID; \ } \ - while( 0 ) + while (0) - if( strcmp( ext_key_usage, "serverAuth" ) == 0 ) - { - SET_OID( exts[0].buf, MBEDTLS_OID_SERVER_AUTH ); - } - else if( strcmp( ext_key_usage, "codeSigning,timeStamping" ) == 0 ) - { - SET_OID( exts[0].buf, MBEDTLS_OID_CODE_SIGNING ); + if (strcmp(ext_key_usage, "serverAuth") == 0) { + SET_OID(exts[0].buf, MBEDTLS_OID_SERVER_AUTH); + } else if (strcmp(ext_key_usage, "codeSigning,timeStamping") == 0) { + SET_OID(exts[0].buf, MBEDTLS_OID_CODE_SIGNING); exts[0].next = &exts[1]; - SET_OID( exts[1].buf, MBEDTLS_OID_TIME_STAMPING ); + SET_OID(exts[1].buf, MBEDTLS_OID_TIME_STAMPING); } - TEST_ASSERT( mbedtls_x509write_crt_set_ext_key_usage( &crt, exts ) == 0 ); + TEST_ASSERT(mbedtls_x509write_crt_set_ext_key_usage(&crt, exts) == 0); } } - ret = mbedtls_x509write_crt_pem( &crt, buf, sizeof( buf ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ); - TEST_ASSERT( ret == 0 ); + ret = mbedtls_x509write_crt_pem(&crt, buf, sizeof(buf), + mbedtls_test_rnd_pseudo_rand, &rnd_info); + TEST_ASSERT(ret == 0); - pem_len = strlen( (char *) buf ); + pem_len = strlen((char *) buf); // check that the rest of the buffer remains clear - for( buf_index = pem_len; buf_index < sizeof( buf ); ++buf_index ) - { - TEST_ASSERT( buf[buf_index] == 0 ); + for (buf_index = pem_len; buf_index < sizeof(buf); ++buf_index) { + TEST_ASSERT(buf[buf_index] == 0); } - if( issuer_key_type != MBEDTLS_PK_RSA ) - { + if (issuer_key_type != MBEDTLS_PK_RSA) { mbedtls_x509_crt crt_parse, trusted; uint32_t flags; - mbedtls_x509_crt_init( &crt_parse ); - mbedtls_x509_crt_init( &trusted ); + mbedtls_x509_crt_init(&crt_parse); + mbedtls_x509_crt_init(&trusted); - TEST_ASSERT( mbedtls_x509_crt_parse_file( &trusted, - cert_verify_file ) == 0 ); - TEST_ASSERT( mbedtls_x509_crt_parse( &crt_parse, - buf, sizeof( buf ) ) == 0 ); + TEST_ASSERT(mbedtls_x509_crt_parse_file(&trusted, + cert_verify_file) == 0); + TEST_ASSERT(mbedtls_x509_crt_parse(&crt_parse, + buf, sizeof(buf)) == 0); - ret = mbedtls_x509_crt_verify( &crt_parse, &trusted, NULL, NULL, &flags, - NULL, NULL ); + ret = mbedtls_x509_crt_verify(&crt_parse, &trusted, NULL, NULL, &flags, + NULL, NULL); - mbedtls_x509_crt_free( &crt_parse ); - mbedtls_x509_crt_free( &trusted ); + mbedtls_x509_crt_free(&crt_parse); + mbedtls_x509_crt_free(&trusted); - TEST_EQUAL( flags, 0 ); - TEST_EQUAL( ret, 0 ); - } - else if( *cert_check_file != '\0' ) - { - f = fopen( cert_check_file, "r" ); - TEST_ASSERT( f != NULL ); - olen = fread( check_buf, 1, sizeof( check_buf ), f ); - fclose( f ); - TEST_ASSERT( olen < sizeof( check_buf ) ); + TEST_EQUAL(flags, 0); + TEST_EQUAL(ret, 0); + } else if (*cert_check_file != '\0') { + f = fopen(cert_check_file, "r"); + TEST_ASSERT(f != NULL); + olen = fread(check_buf, 1, sizeof(check_buf), f); + fclose(f); + TEST_ASSERT(olen < sizeof(check_buf)); - TEST_EQUAL( olen, pem_len ); - TEST_ASSERT( olen >= pem_len - 1 ); - TEST_ASSERT( memcmp( buf, check_buf, pem_len - 1 ) == 0 ); + TEST_EQUAL(olen, pem_len); + TEST_ASSERT(olen >= pem_len - 1); + TEST_ASSERT(memcmp(buf, check_buf, pem_len - 1) == 0); } - der_len = mbedtls_x509write_crt_der( &crt, buf, sizeof( buf ), - mbedtls_test_rnd_pseudo_rand, - &rnd_info ); - TEST_ASSERT( der_len >= 0 ); + der_len = mbedtls_x509write_crt_der(&crt, buf, sizeof(buf), + mbedtls_test_rnd_pseudo_rand, + &rnd_info); + TEST_ASSERT(der_len >= 0); - if( der_len == 0 ) + if (der_len == 0) { goto exit; + } // Not testing against file, check date format - if( *cert_check_file == '\0' ) - { + if (*cert_check_file == '\0') { // UTC tag if before 2050, 2 digits less for year - if( not_before[0] == '2' && ( not_before[1] > '0' || not_before[2] > '4' ) ) - { + if (not_before[0] == '2' && (not_before[1] > '0' || not_before[2] > '4')) { before_tag = MBEDTLS_ASN1_GENERALIZED_TIME; - } - else - { + } else { before_tag = MBEDTLS_ASN1_UTC_TIME; not_before += 2; } - if( not_after[0] == '2' && ( not_after[1] > '0' || not_after[2] > '4' ) ) - { + if (not_after[0] == '2' && (not_after[1] > '0' || not_after[2] > '4')) { after_tag = MBEDTLS_ASN1_GENERALIZED_TIME; - } - else - { + } else { after_tag = MBEDTLS_ASN1_UTC_TIME; not_after += 2; } - end = buf + sizeof( buf ); - for( p = end - der_len ; p < end ; ) - { + end = buf + sizeof(buf); + for (p = end - der_len; p < end;) { tag = *p++; sz = *p++; - if( tag == MBEDTLS_ASN1_UTC_TIME || tag == MBEDTLS_ASN1_GENERALIZED_TIME ) - { + if (tag == MBEDTLS_ASN1_UTC_TIME || tag == MBEDTLS_ASN1_GENERALIZED_TIME) { // Check correct tag and time written - TEST_ASSERT( before_tag == tag ); - TEST_ASSERT( memcmp( p, not_before, sz - 1 ) == 0 ); + TEST_ASSERT(before_tag == tag); + TEST_ASSERT(memcmp(p, not_before, sz - 1) == 0); p += sz; tag = *p++; sz = *p++; - TEST_ASSERT( after_tag == tag ); - TEST_ASSERT( memcmp( p, not_after, sz - 1 ) == 0 ); + TEST_ASSERT(after_tag == tag); + TEST_ASSERT(memcmp(p, not_after, sz - 1) == 0); break; } // Increment if long form ASN1 length - if( sz & 0x80 ) + if (sz & 0x80) { p += sz & 0x0F; - if( tag != ( MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ) + } + if (tag != (MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) { p += sz; + } } - TEST_ASSERT( p < end ); + TEST_ASSERT(p < end); } #if defined(MBEDTLS_USE_PSA_CRYPTO) // When using PSA crypto, RNG isn't controllable, result length isn't // deterministic over multiple runs, removing a single byte isn't enough to // go into the MBEDTLS_ERR_ASN1_BUF_TOO_SMALL error case - if( issuer_key_type != MBEDTLS_PK_RSA ) + if (issuer_key_type != MBEDTLS_PK_RSA) { der_len /= 2; - else + } else #endif - der_len -= 1; + der_len -= 1; - ret = mbedtls_x509write_crt_der( &crt, buf, (size_t)( der_len ), - mbedtls_test_rnd_pseudo_rand, &rnd_info ); - TEST_ASSERT( ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + ret = mbedtls_x509write_crt_der(&crt, buf, (size_t) (der_len), + mbedtls_test_rnd_pseudo_rand, &rnd_info); + TEST_ASSERT(ret == MBEDTLS_ERR_ASN1_BUF_TOO_SMALL); exit: - mbedtls_x509write_crt_free( &crt ); - mbedtls_pk_free( &issuer_key_alt ); - mbedtls_pk_free( &subject_key ); - mbedtls_pk_free( &issuer_key ); - mbedtls_mpi_free( &serial ); + mbedtls_x509write_crt_free(&crt); + mbedtls_pk_free(&issuer_key_alt); + mbedtls_pk_free(&subject_key); + mbedtls_pk_free(&issuer_key); + mbedtls_mpi_free(&serial); #if defined(MBEDTLS_USE_PSA_CRYPTO) - psa_destroy_key( key_id ); + psa_destroy_key(key_id); #endif - USE_PSA_DONE( ); + USE_PSA_DONE(); } /* END_CASE */ /* BEGIN_CASE depends_on:MBEDTLS_X509_CREATE_C:MBEDTLS_X509_USE_C */ -void mbedtls_x509_string_to_names( char * name, char * parsed_name, int result - ) +void mbedtls_x509_string_to_names(char *name, char *parsed_name, int result + ) { int ret; size_t len = 0; @@ -571,38 +567,38 @@ void mbedtls_x509_string_to_names( char * name, char * parsed_name, int result mbedtls_x509_name parsed, *parsed_cur, *parsed_prv; unsigned char buf[1024], out[1024], *c; - memset( &parsed, 0, sizeof( parsed ) ); - memset( out, 0, sizeof( out ) ); - memset( buf, 0, sizeof( buf ) ); - c = buf + sizeof( buf ); + memset(&parsed, 0, sizeof(parsed)); + memset(out, 0, sizeof(out)); + memset(buf, 0, sizeof(buf)); + c = buf + sizeof(buf); - ret = mbedtls_x509_string_to_names( &names, name ); - TEST_ASSERT( ret == result ); + ret = mbedtls_x509_string_to_names(&names, name); + TEST_ASSERT(ret == result); - if( ret != 0 ) + if (ret != 0) { goto exit; + } - ret = mbedtls_x509_write_names( &c, buf, names ); - TEST_ASSERT( ret > 0 ); + ret = mbedtls_x509_write_names(&c, buf, names); + TEST_ASSERT(ret > 0); - TEST_ASSERT( mbedtls_asn1_get_tag( &c, buf + sizeof( buf ), &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) == 0 ); - TEST_ASSERT( mbedtls_x509_get_name( &c, buf + sizeof( buf ), &parsed ) == 0 ); + TEST_ASSERT(mbedtls_asn1_get_tag(&c, buf + sizeof(buf), &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) == 0); + TEST_ASSERT(mbedtls_x509_get_name(&c, buf + sizeof(buf), &parsed) == 0); - ret = mbedtls_x509_dn_gets( (char *) out, sizeof( out ), &parsed ); - TEST_ASSERT( ret > 0 ); + ret = mbedtls_x509_dn_gets((char *) out, sizeof(out), &parsed); + TEST_ASSERT(ret > 0); - TEST_ASSERT( strcmp( (char *) out, parsed_name ) == 0 ); + TEST_ASSERT(strcmp((char *) out, parsed_name) == 0); exit: - mbedtls_asn1_free_named_data_list( &names ); + mbedtls_asn1_free_named_data_list(&names); parsed_cur = parsed.next; - while( parsed_cur != 0 ) - { + while (parsed_cur != 0) { parsed_prv = parsed_cur; parsed_cur = parsed_cur->next; - mbedtls_free( parsed_prv ); + mbedtls_free(parsed_prv); } } /* END_CASE */ From c848d226bf2355ba54ab95cca15839557cf935c0 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 9 Dec 2022 12:23:35 +0100 Subject: [PATCH 1378/1574] Switch code style check to enforcement mode Signed-off-by: Gilles Peskine --- tests/scripts/all.sh | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6b11346d1..1e10da04c 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3741,20 +3741,12 @@ support_test_psa_compliance () { [ "$ver_major" -eq 3 ] && [ "$ver_minor" -ge 10 ] } -component_test_corrected_code_style () { - ./scripts/code_style.py --fix - - msg "build: make, default config (out-of-box), corrected code style" - make - - msg "test: main suites make, default config (out-of-box), corrected code style" - make test - - # Clean up code-style corrections - git checkout -- . +component_check_code_style () { + msg "Check C code style" + ./scripts/code_style.py } -support_test_corrected_code_style() { +support_check_code_style() { case $(uncrustify --version) in *0.75.1*) true;; *) false;; From 378ecdd8597aa9056ec525e3135c9b3f0f3d0153 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 15:08:30 +0000 Subject: [PATCH 1379/1574] Rename VS2010 directory to VS2013 and update Makefiles etc Signed-off-by: Dave Rodgman --- .../everest/{vs2010 => vs2013}/Hacl_Curve25519.h | 0 .../include/everest/{vs2010 => vs2013}/inttypes.h | 0 .../include/everest/{vs2010 => vs2013}/stdbool.h | 0 Makefile | 14 +++++++------- ...emplate.vcxproj => vs2013-app-template.vcxproj} | 0 ...mplate.vcxproj => vs2013-main-template.vcxproj} | 0 ...10-sln-template.sln => vs2013-sln-template.sln} | 0 scripts/generate_visualc_files.pl | 10 +++++----- scripts/windows_msbuild.bat | 2 +- tests/scripts/check-generated-files.sh | 2 +- visualc/{VS2010 => VS2013}/.gitignore | 0 11 files changed, 14 insertions(+), 14 deletions(-) rename 3rdparty/everest/include/everest/{vs2010 => vs2013}/Hacl_Curve25519.h (100%) rename 3rdparty/everest/include/everest/{vs2010 => vs2013}/inttypes.h (100%) rename 3rdparty/everest/include/everest/{vs2010 => vs2013}/stdbool.h (100%) rename scripts/data_files/{vs2010-app-template.vcxproj => vs2013-app-template.vcxproj} (100%) rename scripts/data_files/{vs2010-main-template.vcxproj => vs2013-main-template.vcxproj} (100%) rename scripts/data_files/{vs2010-sln-template.sln => vs2013-sln-template.sln} (100%) rename visualc/{VS2010 => VS2013}/.gitignore (100%) diff --git a/3rdparty/everest/include/everest/vs2010/Hacl_Curve25519.h b/3rdparty/everest/include/everest/vs2013/Hacl_Curve25519.h similarity index 100% rename from 3rdparty/everest/include/everest/vs2010/Hacl_Curve25519.h rename to 3rdparty/everest/include/everest/vs2013/Hacl_Curve25519.h diff --git a/3rdparty/everest/include/everest/vs2010/inttypes.h b/3rdparty/everest/include/everest/vs2013/inttypes.h similarity index 100% rename from 3rdparty/everest/include/everest/vs2010/inttypes.h rename to 3rdparty/everest/include/everest/vs2013/inttypes.h diff --git a/3rdparty/everest/include/everest/vs2010/stdbool.h b/3rdparty/everest/include/everest/vs2013/stdbool.h similarity index 100% rename from 3rdparty/everest/include/everest/vs2010/stdbool.h rename to 3rdparty/everest/include/everest/vs2013/stdbool.h diff --git a/Makefile b/Makefile index 2f1be6528..1f36a06c9 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ generated_files: tests/generated_files generated_files: visualc_files .PHONY: visualc_files -VISUALC_FILES = visualc/VS2010/mbedTLS.sln visualc/VS2010/mbedTLS.vcxproj +VISUALC_FILES = visualc/VS2013/mbedTLS.sln visualc/VS2013/mbedTLS.vcxproj # TODO: $(app).vcxproj for each $(app) in programs/ visualc_files: $(VISUALC_FILES) @@ -46,9 +46,9 @@ visualc_files: $(VISUALC_FILES) # they just need to be present. $(VISUALC_FILES): | library/generated_files $(VISUALC_FILES): scripts/generate_visualc_files.pl -$(VISUALC_FILES): scripts/data_files/vs2010-app-template.vcxproj -$(VISUALC_FILES): scripts/data_files/vs2010-main-template.vcxproj -$(VISUALC_FILES): scripts/data_files/vs2010-sln-template.sln +$(VISUALC_FILES): scripts/data_files/vs2013-app-template.vcxproj +$(VISUALC_FILES): scripts/data_files/vs2013-main-template.vcxproj +$(VISUALC_FILES): scripts/data_files/vs2013-sln-template.sln # TODO: also the list of .c and .h source files, but not their content $(VISUALC_FILES): echo " Gen $@ ..." @@ -124,10 +124,10 @@ neat: clean_more_on_top $(MAKE) -C programs neat $(MAKE) -C tests neat ifndef WINDOWS - rm -f visualc/VS2010/*.vcxproj visualc/VS2010/mbedTLS.sln + rm -f visualc/VS2013/*.vcxproj visualc/VS2013/mbedTLS.sln else - if exist visualc\VS2010\*.vcxproj del /Q /F visualc\VS2010\*.vcxproj - if exist visualc\VS2010\mbedTLS.sln del /Q /F visualc\VS2010\mbedTLS.sln + if exist visualc\VS2013\*.vcxproj del /Q /F visualc\VS2013\*.vcxproj + if exist visualc\VS2013\mbedTLS.sln del /Q /F visualc\VS2013\mbedTLS.sln endif check: lib tests diff --git a/scripts/data_files/vs2010-app-template.vcxproj b/scripts/data_files/vs2013-app-template.vcxproj similarity index 100% rename from scripts/data_files/vs2010-app-template.vcxproj rename to scripts/data_files/vs2013-app-template.vcxproj diff --git a/scripts/data_files/vs2010-main-template.vcxproj b/scripts/data_files/vs2013-main-template.vcxproj similarity index 100% rename from scripts/data_files/vs2010-main-template.vcxproj rename to scripts/data_files/vs2013-main-template.vcxproj diff --git a/scripts/data_files/vs2010-sln-template.sln b/scripts/data_files/vs2013-sln-template.sln similarity index 100% rename from scripts/data_files/vs2010-sln-template.sln rename to scripts/data_files/vs2013-sln-template.sln diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl index 5500c6fad..e4092c01d 100755 --- a/scripts/generate_visualc_files.pl +++ b/scripts/generate_visualc_files.pl @@ -25,12 +25,12 @@ use warnings; use strict; use Digest::MD5 'md5_hex'; -my $vsx_dir = "visualc/VS2010"; +my $vsx_dir = "visualc/VS2013"; my $vsx_ext = "vcxproj"; -my $vsx_app_tpl_file = "scripts/data_files/vs2010-app-template.$vsx_ext"; -my $vsx_main_tpl_file = "scripts/data_files/vs2010-main-template.$vsx_ext"; +my $vsx_app_tpl_file = "scripts/data_files/vs2013-app-template.$vsx_ext"; +my $vsx_main_tpl_file = "scripts/data_files/vs2013-main-template.$vsx_ext"; my $vsx_main_file = "$vsx_dir/mbedTLS.$vsx_ext"; -my $vsx_sln_tpl_file = "scripts/data_files/vs2010-sln-template.sln"; +my $vsx_sln_tpl_file = "scripts/data_files/vs2013-sln-template.sln"; my $vsx_sln_file = "$vsx_dir/mbedTLS.sln"; my $programs_dir = 'programs'; @@ -58,7 +58,7 @@ my @include_directories = qw( include 3rdparty/everest/include/ 3rdparty/everest/include/everest - 3rdparty/everest/include/everest/vs2010 + 3rdparty/everest/include/everest/vs2013 3rdparty/everest/include/everest/kremlib tests/include ); diff --git a/scripts/windows_msbuild.bat b/scripts/windows_msbuild.bat index e41993101..ff2b9f2d1 100644 --- a/scripts/windows_msbuild.bat +++ b/scripts/windows_msbuild.bat @@ -14,7 +14,7 @@ if not "%~1"=="" set "retarget=,PlatformToolset=%1" @rem vcvarsall.bat will silently change the directory to that directory. @rem Setting the VSCMD_START_DIR environment variable causes it to change @rem to that directory instead. -set "VSCMD_START_DIR=%~dp0\..\visualc\VS2010" +set "VSCMD_START_DIR=%~dp0\..\visualc\VS2013" "%vcvarsall%" x64 && ^ msbuild /t:Rebuild /p:Configuration=%cfg%%retarget% /m mbedTLS.sln diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 946794c1d..2bb9fea7c 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -134,7 +134,7 @@ check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated. # generate_visualc_files enumerates source files (library/*.c). It doesn't # care about their content, but the files must exist. So it must run after # the step that creates or updates these files. -check scripts/generate_visualc_files.pl visualc/VS2010 +check scripts/generate_visualc_files.pl visualc/VS2013 check scripts/generate_psa_constants.py programs/psa/psa_constant_names_generated.c check tests/scripts/generate_bignum_tests.py $(tests/scripts/generate_bignum_tests.py --list) check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list) diff --git a/visualc/VS2010/.gitignore b/visualc/VS2013/.gitignore similarity index 100% rename from visualc/VS2010/.gitignore rename to visualc/VS2013/.gitignore From 0f459d75b868af0dfa290bebee2c10e35920582f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 15:09:19 +0000 Subject: [PATCH 1380/1574] Update some comments & error messages Signed-off-by: Dave Rodgman --- scripts/generate_visualc_files.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl index e4092c01d..4fad322a6 100755 --- a/scripts/generate_visualc_files.pl +++ b/scripts/generate_visualc_files.pl @@ -1,9 +1,9 @@ #!/usr/bin/env perl -# Generate main file, individual apps and solution files for MS Visual Studio -# 2010 +# Generate main file, individual apps and solution files for +# MS Visual Studio 2013 # -# Must be run from mbedTLS root or scripts directory. +# Must be run from Mbed TLS root or scripts directory. # Takes no argument. # # Copyright The Mbed TLS Contributors @@ -256,7 +256,7 @@ sub del_vsx_files { sub main { if( ! check_dirs() ) { chdir '..' or die; - check_dirs or die "Must but run from mbedTLS root or scripts dir\n"; + check_dirs or die "Must be run from Mbed TLS root or scripts dir\n"; } # Remove old files to ensure that, for example, project files from deleted From 05bdb13be3993e8c3f374ee3ed448b31c5443fb4 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 15:09:36 +0000 Subject: [PATCH 1381/1574] Update README and add changelog entry Signed-off-by: Dave Rodgman --- ChangeLog.d/vs2013.txt | 4 ++++ README.md | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/vs2013.txt diff --git a/ChangeLog.d/vs2013.txt b/ChangeLog.d/vs2013.txt new file mode 100644 index 000000000..6fe7a5e7f --- /dev/null +++ b/ChangeLog.d/vs2013.txt @@ -0,0 +1,4 @@ +Changes + * Visual Studio: Rename the directory containing Visual Studio files from + visualc/VS2010 to visualc/VS2013 as we do not support building with versions + older than 2013. Update the solution file to specify VS2013 as a minimum. diff --git a/README.md b/README.md index cc70f5610..7b45a1f15 100644 --- a/README.md +++ b/README.md @@ -220,7 +220,7 @@ subproject. ### Microsoft Visual Studio -The build files for Microsoft Visual Studio are generated for Visual Studio 2010. +The build files for Microsoft Visual Studio are generated for Visual Studio 2013. The solution file `mbedTLS.sln` contains all the basic projects needed to build the library and all the programs. The files in tests are not generated and compiled, as these need Python and perl environments as well. However, the selftest program in `programs/test/` is still available. From 7a75d222749d08d10699a9bb9c4f97a99557b8cc Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 15:10:35 +0000 Subject: [PATCH 1382/1574] Update solution template to require VS2013 Signed-off-by: Dave Rodgman --- scripts/data_files/vs2013-sln-template.sln | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/data_files/vs2013-sln-template.sln b/scripts/data_files/vs2013-sln-template.sln index fc65a0be5..615ce0423 100644 --- a/scripts/data_files/vs2013-sln-template.sln +++ b/scripts/data_files/vs2013-sln-template.sln @@ -1,6 +1,8 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.31101.0 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbedTLS", "mbedTLS.vcxproj", "{46CF2D25-6A36-4189-B59C-E4815388E554}" EndProject APP_ENTRIES From 05402110786596529c0ee43d3784f341a5bd3ccd Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Tue, 13 Dec 2022 18:50:42 +0800 Subject: [PATCH 1383/1574] Enhancement: change some functions to static in ssl_tls13_keys.c Since some functions are only used in ssl_tls13_keys.c not by any other modules, those functions are changed to static. Signed-off-by: Yanray Wang --- library/ssl_tls13_keys.c | 81 +++++++++++++++++++++++++++++++++++----- library/ssl_tls13_keys.h | 70 ---------------------------------- 2 files changed, 72 insertions(+), 79 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index ecfdab318..733a7509b 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -644,7 +644,24 @@ int mbedtls_ssl_tls13_derive_resumption_master_secret( return 0; } -int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl) +/** + * \brief Transition into application stage of TLS 1.3 key schedule. + * + * The TLS 1.3 key schedule can be viewed as a simple state machine + * with states Initial -> Early -> Handshake -> Application, and + * this function represents the Handshake -> Application transition. + * + * In the handshake stage, mbedtls_ssl_tls13_generate_application_keys() + * can be used to derive the handshake traffic keys. + * + * \param ssl The SSL context to operate on. This must be in key schedule + * stage \c Handshake. + * + * \returns \c 0 on success. + * \returns A negative error code on failure. + */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1282,10 +1299,25 @@ int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl) return 0; } -/* mbedtls_ssl_tls13_generate_handshake_keys() generates keys necessary for - * protecting the handshake messages, as described in Section 7 of TLS 1.3. */ -int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys) +/** + * \brief Compute TLS 1.3 handshake traffic keys. + * + * mbedtls_ssl_tls13_generate_handshake_keys() generates keys necessary + * for protecting the handshake messages, as described in Section 7 + * of TLS 1.3. + * + * \param ssl The SSL context to operate on. This must be in + * key schedule stage \c Handshake, see + * mbedtls_ssl_tls13_key_schedule_stage_handshake(). + * \param traffic_keys The address at which to store the handshake traffic key + * keys. This must be writable but may be uninitialized. + * + * \returns \c 0 on success. + * \returns A negative error code on failure. + */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; @@ -1393,7 +1425,24 @@ exit: return ret; } -int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl) +/** + * \brief Transition into handshake stage of TLS 1.3 key schedule. + * + * The TLS 1.3 key schedule can be viewed as a simple state machine + * with states Initial -> Early -> Handshake -> Application, and + * this function represents the Early -> Handshake transition. + * + * In the handshake stage, mbedtls_ssl_tls13_generate_handshake_keys() + * can be used to derive the handshake traffic keys. + * + * \param ssl The SSL context to operate on. This must be in key schedule + * stage \c Early. + * + * \returns \c 0 on success. + * \returns A negative error code on failure. + */ +MBEDTLS_CHECK_RETURN_CRITICAL +static int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1479,10 +1528,24 @@ cleanup: return ret; } -/* Generate application traffic keys since any records following a 1-RTT Finished message - * MUST be encrypted under the application traffic key. +/** + * \brief Compute TLS 1.3 application traffic keys. + * + * mbedtls_ssl_tls13_generate_application_keys() generates application + * traffic keys, since any records following a 1-RTT Finished message + * MUST be encrypted under the application traffic key. + * + * \param ssl The SSL context to operate on. This must be in + * key schedule stage \c Application, see + * mbedtls_ssl_tls13_key_schedule_stage_application(). + * \param traffic_keys The address at which to store the application traffic key + * keys. This must be writable but may be uninitialized. + * + * \returns \c 0 on success. + * \returns A negative error code on failure. */ -int mbedtls_ssl_tls13_generate_application_keys( +MBEDTLS_CHECK_RETURN_CRITICAL +static int mbedtls_ssl_tls13_generate_application_keys( mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys) { diff --git a/library/ssl_tls13_keys.h b/library/ssl_tls13_keys.h index d4f2b4024..21e9b4d73 100644 --- a/library/ssl_tls13_keys.h +++ b/library/ssl_tls13_keys.h @@ -553,76 +553,6 @@ int mbedtls_ssl_tls13_populate_transform(mbedtls_ssl_transform *transform, MBEDTLS_CHECK_RETURN_CRITICAL int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl); -/** - * \brief Transition into handshake stage of TLS 1.3 key schedule. - * - * The TLS 1.3 key schedule can be viewed as a simple state machine - * with states Initial -> Early -> Handshake -> Application, and - * this function represents the Early -> Handshake transition. - * - * In the handshake stage, mbedtls_ssl_tls13_generate_handshake_keys() - * can be used to derive the handshake traffic keys. - * - * \param ssl The SSL context to operate on. This must be in key schedule - * stage \c Early. - * - * \returns \c 0 on success. - * \returns A negative error code on failure. - */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl); - -/** - * \brief Compute TLS 1.3 handshake traffic keys. - * - * \param ssl The SSL context to operate on. This must be in - * key schedule stage \c Handshake, see - * mbedtls_ssl_tls13_key_schedule_stage_handshake(). - * \param traffic_keys The address at which to store the handshake traffic key - * keys. This must be writable but may be uninitialized. - * - * \returns \c 0 on success. - * \returns A negative error code on failure. - */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys); - -/** - * \brief Transition into application stage of TLS 1.3 key schedule. - * - * The TLS 1.3 key schedule can be viewed as a simple state machine - * with states Initial -> Early -> Handshake -> Application, and - * this function represents the Handshake -> Application transition. - * - * In the handshake stage, mbedtls_ssl_tls13_generate_application_keys() - * can be used to derive the handshake traffic keys. - * - * \param ssl The SSL context to operate on. This must be in key schedule - * stage \c Handshake. - * - * \returns \c 0 on success. - * \returns A negative error code on failure. - */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl); - -/** - * \brief Compute TLS 1.3 application traffic keys. - * - * \param ssl The SSL context to operate on. This must be in - * key schedule stage \c Application, see - * mbedtls_ssl_tls13_key_schedule_stage_application(). - * \param traffic_keys The address at which to store the application traffic key - * keys. This must be writable but may be uninitialized. - * - * \returns \c 0 on success. - * \returns A negative error code on failure. - */ -MBEDTLS_CHECK_RETURN_CRITICAL -int mbedtls_ssl_tls13_generate_application_keys( - mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys); - /** * \brief Compute TLS 1.3 resumption master secret. * From ef5ec8f5ba702547b06d98156b644f0f32bedaff Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Thu, 5 Jan 2023 17:36:12 +0800 Subject: [PATCH 1384/1574] Rename static functions in ssl_tls13_keys.c As some static functions are only used inside ssl_tls13_keys.c, the prefix mbedtls_ should be removed. Furthermore, code format is also maintained to fix code style. Signed-off-by: Yanray Wang --- library/ssl_tls13_keys.c | 48 ++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 733a7509b..90a8618b2 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -651,7 +651,7 @@ int mbedtls_ssl_tls13_derive_resumption_master_secret( * with states Initial -> Early -> Handshake -> Application, and * this function represents the Handshake -> Application transition. * - * In the handshake stage, mbedtls_ssl_tls13_generate_application_keys() + * In the handshake stage, ssl_tls13_generate_application_keys() * can be used to derive the handshake traffic keys. * * \param ssl The SSL context to operate on. This must be in key schedule @@ -661,7 +661,7 @@ int mbedtls_ssl_tls13_derive_resumption_master_secret( * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl) +static int ssl_tls13_key_schedule_stage_application(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1302,13 +1302,13 @@ int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl) /** * \brief Compute TLS 1.3 handshake traffic keys. * - * mbedtls_ssl_tls13_generate_handshake_keys() generates keys necessary - * for protecting the handshake messages, as described in Section 7 - * of TLS 1.3. + * ssl_tls13_generate_handshake_keys() generates keys necessary for + * protecting the handshake messages, as described in Section 7 of + * TLS 1.3. * * \param ssl The SSL context to operate on. This must be in * key schedule stage \c Handshake, see - * mbedtls_ssl_tls13_key_schedule_stage_handshake(). + * ssl_tls13_key_schedule_stage_handshake(). * \param traffic_keys The address at which to store the handshake traffic key * keys. This must be writable but may be uninitialized. * @@ -1316,8 +1316,8 @@ int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl) * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, - mbedtls_ssl_key_set *traffic_keys) +static int ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, + mbedtls_ssl_key_set *traffic_keys) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_md_type_t md_type; @@ -1332,7 +1332,7 @@ static int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, const mbedtls_ssl_ciphersuite_t *ciphersuite_info = handshake->ciphersuite_info; mbedtls_ssl_tls13_handshake_secrets *tls13_hs_secrets = &handshake->tls13_hs_secrets; - MBEDTLS_SSL_DEBUG_MSG(2, ("=> mbedtls_ssl_tls13_generate_handshake_keys")); + MBEDTLS_SSL_DEBUG_MSG(2, ("=> ssl_tls13_generate_handshake_keys")); ret = ssl_tls13_get_cipher_key_info(ciphersuite_info, &key_len, &iv_len); if (ret != 0) { @@ -1418,7 +1418,7 @@ static int mbedtls_ssl_tls13_generate_handshake_keys(mbedtls_ssl_context *ssl, traffic_keys->server_write_iv, traffic_keys->iv_len); - MBEDTLS_SSL_DEBUG_MSG(2, ("<= mbedtls_ssl_tls13_generate_handshake_keys")); + MBEDTLS_SSL_DEBUG_MSG(2, ("<= ssl_tls13_generate_handshake_keys")); exit: @@ -1432,7 +1432,7 @@ exit: * with states Initial -> Early -> Handshake -> Application, and * this function represents the Early -> Handshake transition. * - * In the handshake stage, mbedtls_ssl_tls13_generate_handshake_keys() + * In the handshake stage, ssl_tls13_generate_handshake_keys() * can be used to derive the handshake traffic keys. * * \param ssl The SSL context to operate on. This must be in key schedule @@ -1442,7 +1442,7 @@ exit: * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl) +static int ssl_tls13_key_schedule_stage_handshake(mbedtls_ssl_context *ssl) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_ssl_handshake_params *handshake = ssl->handshake; @@ -1531,13 +1531,13 @@ cleanup: /** * \brief Compute TLS 1.3 application traffic keys. * - * mbedtls_ssl_tls13_generate_application_keys() generates application - * traffic keys, since any records following a 1-RTT Finished message - * MUST be encrypted under the application traffic key. + * ssl_tls13_generate_application_keys() generates application traffic + * keys, since any records following a 1-RTT Finished message MUST be + * encrypted under the application traffic key. * * \param ssl The SSL context to operate on. This must be in * key schedule stage \c Application, see - * mbedtls_ssl_tls13_key_schedule_stage_application(). + * ssl_tls13_key_schedule_stage_application(). * \param traffic_keys The address at which to store the application traffic key * keys. This must be writable but may be uninitialized. * @@ -1545,7 +1545,7 @@ cleanup: * \returns A negative error code on failure. */ MBEDTLS_CHECK_RETURN_CRITICAL -static int mbedtls_ssl_tls13_generate_application_keys( +static int ssl_tls13_generate_application_keys( mbedtls_ssl_context *ssl, mbedtls_ssl_key_set *traffic_keys) { @@ -1675,7 +1675,7 @@ int mbedtls_ssl_tls13_compute_handshake_transform(mbedtls_ssl_context *ssl) mbedtls_ssl_handshake_params *handshake = ssl->handshake; /* Compute handshake secret */ - ret = mbedtls_ssl_tls13_key_schedule_stage_handshake(ssl); + ret = ssl_tls13_key_schedule_stage_handshake(ssl); if (ret != 0) { MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_derive_master_secret", ret); goto cleanup; @@ -1683,9 +1683,9 @@ int mbedtls_ssl_tls13_compute_handshake_transform(mbedtls_ssl_context *ssl) /* Next evolution in key schedule: Establish handshake secret and * key material. */ - ret = mbedtls_ssl_tls13_generate_handshake_keys(ssl, &traffic_keys); + ret = ssl_tls13_generate_handshake_keys(ssl, &traffic_keys); if (ret != 0) { - MBEDTLS_SSL_DEBUG_RET(1, "mbedtls_ssl_tls13_generate_handshake_keys", + MBEDTLS_SSL_DEBUG_RET(1, "ssl_tls13_generate_handshake_keys", ret); goto cleanup; } @@ -1765,17 +1765,17 @@ int mbedtls_ssl_tls13_compute_application_transform(mbedtls_ssl_context *ssl) mbedtls_ssl_key_set traffic_keys; mbedtls_ssl_transform *transform_application = NULL; - ret = mbedtls_ssl_tls13_key_schedule_stage_application(ssl); + ret = ssl_tls13_key_schedule_stage_application(ssl); if (ret != 0) { MBEDTLS_SSL_DEBUG_RET(1, - "mbedtls_ssl_tls13_key_schedule_stage_application", ret); + "ssl_tls13_key_schedule_stage_application", ret); goto cleanup; } - ret = mbedtls_ssl_tls13_generate_application_keys(ssl, &traffic_keys); + ret = ssl_tls13_generate_application_keys(ssl, &traffic_keys); if (ret != 0) { MBEDTLS_SSL_DEBUG_RET(1, - "mbedtls_ssl_tls13_generate_application_keys", ret); + "ssl_tls13_generate_application_keys", ret); goto cleanup; } From d449cedd3a9e261e68eb3cd0e4810786b01ab39e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 12 Jan 2023 15:45:32 +0100 Subject: [PATCH 1385/1574] Fix example command Signed-off-by: Gilles Peskine --- scripts/code_style.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 23bb21b3a..a0f35c7c2 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -171,8 +171,8 @@ def main() -> int: # --files is almost useless: it only matters if there are no files # ('code_style.py' without arguments checks all files known to Git, # 'code_style.py --files' does nothing). In particular, - # 'code_style.py --files ...' is intended as a stable ("porcelain") way - # to restyle a possibly empty set of files. + # 'code_style.py --fix --files ...' is intended as a stable ("porcelain") + # way to restyle a possibly empty set of files. parser.add_argument('--files', action='store_true', help='only check the specified files (default with non-option arguments)') parser.add_argument('operands', nargs='*', metavar='FILE', From da0afcc2fb5eab22b30d761ef86330858ba35f89 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 5 Jan 2023 16:46:59 +0100 Subject: [PATCH 1386/1574] x509: remove direct dependency from BIGNUM_C Signed-off-by: Valerio Setti --- include/mbedtls/x509_crt.h | 32 +++++++++- library/x509write_crt.c | 70 +++++++++++++++++++--- programs/x509/cert_write.c | 13 ++++ tests/suites/test_suite_x509write.function | 7 +++ 4 files changed, 113 insertions(+), 9 deletions(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 661f8aa7b..f552345f4 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -197,7 +197,7 @@ mbedtls_x509_crt_profile; #define MBEDTLS_X509_CRT_VERSION_2 1 #define MBEDTLS_X509_CRT_VERSION_3 2 -#define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN 32 +#define MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN 20 #define MBEDTLS_X509_RFC5280_UTC_TIME_LEN 15 #if !defined(MBEDTLS_X509_MAX_FILE_PATH_LEN) @@ -277,7 +277,8 @@ mbedtls_x509_crt_profile; */ typedef struct mbedtls_x509write_cert { int MBEDTLS_PRIVATE(version); - mbedtls_mpi MBEDTLS_PRIVATE(serial); + unsigned char MBEDTLS_PRIVATE(serial)[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN]; + size_t MBEDTLS_PRIVATE(serial_len); mbedtls_pk_context *MBEDTLS_PRIVATE(subject_key); mbedtls_pk_context *MBEDTLS_PRIVATE(issuer_key); mbedtls_asn1_named_data *MBEDTLS_PRIVATE(subject); @@ -986,15 +987,42 @@ void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx); */ void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version); +#if defined(MBEDTLS_BIGNUM_C) /** * \brief Set the serial number for a Certificate. * + * \deprecated This function is deprecated and will be removed in a + * future version of the library. Please use + * mbedtls_x509write_crt_set_serial_new() instead. + * + * \note Even though the MBEDTLS_BIGNUM_C guard looks redundant since + * X509 depends on PK and PK depends on BIGNUM, this emphasizes + * a direct dependency between X509 and BIGNUM which is going + * to be deprecated in the future. + * * \param ctx CRT context to use * \param serial serial number to set * * \return 0 if successful */ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial); +#endif + +/** + * \brief Set the serial number for a Certificate. + * + * \param ctx CRT context to use + * \param serial_buff Input buffer containing the serial number in big + * endian format + * \param serial_buff_len Length of the previous input buffer buffer + * + * \return 0 if successful, or + * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer: + * - is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) + * - contains invalid chars + */ +int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, + char *serial_buff, size_t serial_buff_len); /** * \brief Set the validity period for a Certificate diff --git a/library/x509write_crt.c b/library/x509write_crt.c index febd0e6f3..53c2ac4ec 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -52,14 +52,11 @@ void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx) { memset(ctx, 0, sizeof(mbedtls_x509write_cert)); - mbedtls_mpi_init(&ctx->serial); ctx->version = MBEDTLS_X509_CRT_VERSION_3; } void mbedtls_x509write_crt_free(mbedtls_x509write_cert *ctx) { - mbedtls_mpi_free(&ctx->serial); - mbedtls_asn1_free_named_data_list(&ctx->subject); mbedtls_asn1_free_named_data_list(&ctx->issuer); mbedtls_asn1_free_named_data_list(&ctx->extensions); @@ -103,15 +100,65 @@ int mbedtls_x509write_crt_set_issuer_name(mbedtls_x509write_cert *ctx, return mbedtls_x509_string_to_names(&ctx->issuer, issuer_name); } +#if defined(MBEDTLS_BIGNUM_C) int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + int ret; + unsigned char tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN]; + size_t tmp_len; - if ((ret = mbedtls_mpi_copy(&ctx->serial, serial)) != 0) { + /* Ensure that the MPI value fits into the buffer */ + tmp_len = mbedtls_mpi_size(serial); + if (tmp_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + + ctx->serial_len = tmp_len; + + ret = mbedtls_mpi_write_binary(serial, tmp, + MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN); + if (ret < 0) { return ret; } + /* Reverse the string since "tmp" is in big endian format */ + for (int i = 0; i < MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN; i++) { + ctx->serial[i] = tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN - 1 - i]; + } + + return 0; +} +#endif + +int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, + char *serial_buff, size_t serial_buff_len) +{ + int i, j; + char c; + unsigned char val; + + if (serial_buff_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + + /* Store data in little endian format */ + for (i = 0, j = serial_buff_len - 1; j == 0; i++, j--) { + c = serial_buff[j]; + if (c >= 0x30 && c <= 0x39) { + val = c - 0x30; + } else if (c >= 0x41 && c <= 0x46) { + val = c - 0x37; + } else if (c >= 0x61 && c <= 0x66) { + val = c - 0x57; + } else { + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + + ctx->serial[i] = val; + } + ctx->serial_len = i; + return 0; } @@ -510,9 +557,18 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, /* * Serial ::= INTEGER + * + * Written data is: + * - [ctx->serial_len] bytes for the raw serial buffer + * - 1 byte for the length + * - 1 byte for the TAG */ - MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_mpi(&c, buf, - &ctx->serial)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(&c, buf, + ctx->serial, ctx->serial_len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, + ctx->serial_len)); + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, + MBEDTLS_ASN1_INTEGER)); /* * Version ::= INTEGER { v1(0), v2(1), v3(2) } diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 3e134dd6a..363ed8d8d 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -514,12 +514,14 @@ usage: mbedtls_printf(" . Reading serial number..."); fflush(stdout); +#if defined(MBEDTLS_BIGNUM_C) if ((ret = mbedtls_mpi_read_string(&serial, 10, opt.serial)) != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); mbedtls_printf(" failed\n ! mbedtls_mpi_read_string " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } +#endif mbedtls_printf(" ok\n"); @@ -661,6 +663,7 @@ usage: mbedtls_x509write_crt_set_version(&crt, opt.version); mbedtls_x509write_crt_set_md_alg(&crt, opt.md); +#if defined(MBEDTLS_BIGNUM_C) ret = mbedtls_x509write_crt_set_serial(&crt, &serial); if (ret != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); @@ -668,6 +671,16 @@ usage: "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } +#else + ret = mbedtls_x509write_crt_set_serial_new(&crt, opt.serial, + strlen(opt.serial)); + if (ret != 0) { + mbedtls_strerror(ret, buf, sizeof(buf)); + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial_new " + "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); + goto exit; + } +#endif ret = mbedtls_x509write_crt_set_validity(&crt, opt.not_before, opt.not_after); if (ret != 0) { diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index a21ad475a..2bf8024ab 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -384,13 +384,20 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, TEST_ASSERT(mbedtls_pk_get_type(&issuer_key) == MBEDTLS_PK_OPAQUE); } +#if !defined(MBEDTLS_BIGNUM_C) TEST_ASSERT(mbedtls_test_read_mpi(&serial, serial_str) == 0); +#endif if (ver != -1) { mbedtls_x509write_crt_set_version(&crt, ver); } +#if !defined(MBEDTLS_BIGNUM_C) TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial) == 0); +#else + TEST_ASSERT(mbedtls_x509write_crt_set_serial_new(&crt, serial_str, + strlen(serial_str)) == 0); +#endif TEST_ASSERT(mbedtls_x509write_crt_set_validity(&crt, not_before, not_after) == 0); mbedtls_x509write_crt_set_md_alg(&crt, md_type); From 903b6aa87d868f21c3fa5aa100020907a2fa7ba9 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 5 Jan 2023 17:06:14 +0100 Subject: [PATCH 1387/1574] Changelog: list changes in x509write_crt module Signed-off-by: Valerio Setti --- ...rove_x509_cert_writing_serial_number_management.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt diff --git a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt new file mode 100644 index 000000000..64d1b279a --- /dev/null +++ b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt @@ -0,0 +1,10 @@ +Bugfix + * mbedtls_x509write_crt_set_serial() now explicitly rejects serial numbers + whose binary representation is longer than 20 bytes. This was already + forbidden by the standard (RFC5280 - section 4.1.2.2) and now it's being + enforced also at code level. + +New deprecations + * mbedtls_x509write_crt_set_serial() is now being deprecated in favor of + mbedtls_x509write_crt_set_serial_new(). The goal here is to remove any + direct dependency of X509 from BIGNUM_C. From 5d164c4e2308dfd8185293c0a1996e2e12525b36 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 12:19:40 +0100 Subject: [PATCH 1388/1574] fix: add missing deprecation guards Signed-off-by: Valerio Setti --- include/mbedtls/x509_crt.h | 7 ++++--- library/x509write_crt.c | 4 ++-- programs/x509/cert_write.c | 2 +- tests/suites/test_suite_x509write.function | 7 ++----- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index f552345f4..810873c51 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -987,7 +987,7 @@ void mbedtls_x509write_crt_init(mbedtls_x509write_cert *ctx); */ void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version); -#if defined(MBEDTLS_BIGNUM_C) +#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) /** * \brief Set the serial number for a Certificate. * @@ -1005,8 +1005,9 @@ void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version) * * \return 0 if successful */ -int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial); -#endif +int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial( + mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial); +#endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED /** * \brief Set the serial number for a Certificate. diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 53c2ac4ec..718b6f074 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -100,7 +100,7 @@ int mbedtls_x509write_crt_set_issuer_name(mbedtls_x509write_cert *ctx, return mbedtls_x509_string_to_names(&ctx->issuer, issuer_name); } -#if defined(MBEDTLS_BIGNUM_C) +#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial) { @@ -129,7 +129,7 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, return 0; } -#endif +#endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, char *serial_buff, size_t serial_buff_len) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 363ed8d8d..ec4d32527 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -663,7 +663,7 @@ usage: mbedtls_x509write_crt_set_version(&crt, opt.version); mbedtls_x509write_crt_set_md_alg(&crt, opt.md); -#if defined(MBEDTLS_BIGNUM_C) +#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) ret = mbedtls_x509write_crt_set_serial(&crt, &serial); if (ret != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 2bf8024ab..e09c4c5dc 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -384,15 +384,12 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, TEST_ASSERT(mbedtls_pk_get_type(&issuer_key) == MBEDTLS_PK_OPAQUE); } -#if !defined(MBEDTLS_BIGNUM_C) - TEST_ASSERT(mbedtls_test_read_mpi(&serial, serial_str) == 0); -#endif - if (ver != -1) { mbedtls_x509write_crt_set_version(&crt, ver); } -#if !defined(MBEDTLS_BIGNUM_C) +#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) + TEST_ASSERT(mbedtls_test_read_mpi(&serial, serial_str) == 0); TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial) == 0); #else TEST_ASSERT(mbedtls_x509write_crt_set_serial_new(&crt, serial_str, From 41b5fb653607543482717b5663e97d0612cb4437 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 12:20:45 +0100 Subject: [PATCH 1389/1574] test: ensure X509 has no dependency on BIGNUM when built without MBEDTLS_DEPRECATED_REMOVED Signed-off-by: Valerio Setti --- tests/scripts/all.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 6b11346d1..0cfb9bd96 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1767,6 +1767,9 @@ component_test_full_no_deprecated () { msg "test: make, full_no_deprecated config" # ~ 5s make test + + msg "test: ensure that X509 has no direct dependency on BIGNUM_C" + not grep mbedtls_mpi library/libmbedx509.a } component_test_full_no_deprecated_deprecated_warning () { From acf12fb744442f1ba03378ae4245b9ec3840634a Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 17:19:26 +0100 Subject: [PATCH 1390/1574] x509: fix endianness and input data format for x509write_crt_set_serial_new Signed-off-by: Valerio Setti --- include/mbedtls/x509_crt.h | 12 +++---- library/x509write_crt.c | 32 +++++-------------- programs/x509/cert_write.c | 64 +++++++++++++++++++++++++------------- 3 files changed, 55 insertions(+), 53 deletions(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 810873c51..f88e8cc2c 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -1013,17 +1013,17 @@ int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial( * \brief Set the serial number for a Certificate. * * \param ctx CRT context to use - * \param serial_buff Input buffer containing the serial number in big - * endian format + * \param serial_buff A raw array of bytes containing the serial number + * in big endian format * \param serial_buff_len Length of the previous input buffer buffer * * \return 0 if successful, or - * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer: - * - is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) - * - contains invalid chars + * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer + * is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) */ int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, - char *serial_buff, size_t serial_buff_len); + unsigned char *serial_buff, + size_t serial_buff_len); /** * \brief Set the validity period for a Certificate diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 718b6f074..da9ef6c12 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -122,42 +122,24 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, return ret; } - /* Reverse the string since "tmp" is in big endian format */ - for (int i = 0; i < MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN; i++) { - ctx->serial[i] = tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN - 1 - i]; - } + /* Copy data to the internal structure skipping leading zeros */ + memcpy(ctx->serial, &tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN - tmp_len], + tmp_len); return 0; } #endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, - char *serial_buff, size_t serial_buff_len) + unsigned char *serial_buff, + size_t serial_buff_len) { - int i, j; - char c; - unsigned char val; - if (serial_buff_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - /* Store data in little endian format */ - for (i = 0, j = serial_buff_len - 1; j == 0; i++, j--) { - c = serial_buff[j]; - if (c >= 0x30 && c <= 0x39) { - val = c - 0x30; - } else if (c >= 0x41 && c <= 0x46) { - val = c - 0x37; - } else if (c >= 0x61 && c <= 0x66) { - val = c - 0x57; - } else { - return MBEDTLS_ERR_X509_BAD_INPUT_DATA; - } - - ctx->serial[i] = val; - } - ctx->serial_len = i; + ctx->serial_len = serial_buff_len; + memcpy(ctx->serial, serial_buff, serial_buff_len); return 0; } diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index ec4d32527..05d7677c7 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -235,6 +235,42 @@ int write_certificate(mbedtls_x509write_cert *crt, const char *output_file, return 0; } +/* + * Convert the input "in_buff" string to a raw byte array "out_buff". The amount + * of converted data is returned on "written_data". + */ +static int parse_serial(const char *in_buff, size_t in_buff_len, + unsigned char *out_buff, size_t out_buff_len, + size_t *written_data) +{ + char c; + unsigned char val; + int i; + + if (out_buff_len < in_buff_len) { + return -1; + } + + *written_data = 0; + + for (i = 0; i < (int) in_buff_len; i++, (*written_data)++) { + c = in_buff[i]; + if (c >= 0x30 && c <= 0x39) { + val = c - 0x30; + } else if (c >= 0x41 && c <= 0x46) { + val = c - 0x37; + } else if (c >= 0x61 && c <= 0x66) { + val = c - 0x57; + } else { + return -1; + } + + out_buff[i] = val; + } + + return 0; +} + int main(int argc, char *argv[]) { int ret = 1; @@ -252,7 +288,8 @@ int main(int argc, char *argv[]) mbedtls_x509_csr csr; #endif mbedtls_x509write_cert crt; - mbedtls_mpi serial; + unsigned char serial[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN]; + size_t serial_len; mbedtls_asn1_sequence *ext_key_usage; mbedtls_entropy_context entropy; mbedtls_ctr_drbg_context ctr_drbg; @@ -264,7 +301,6 @@ int main(int argc, char *argv[]) mbedtls_x509write_crt_init(&crt); mbedtls_pk_init(&loaded_issuer_key); mbedtls_pk_init(&loaded_subject_key); - mbedtls_mpi_init(&serial); mbedtls_ctr_drbg_init(&ctr_drbg); mbedtls_entropy_init(&entropy); #if defined(MBEDTLS_X509_CSR_PARSE_C) @@ -514,15 +550,6 @@ usage: mbedtls_printf(" . Reading serial number..."); fflush(stdout); -#if defined(MBEDTLS_BIGNUM_C) - if ((ret = mbedtls_mpi_read_string(&serial, 10, opt.serial)) != 0) { - mbedtls_strerror(ret, buf, sizeof(buf)); - mbedtls_printf(" failed\n ! mbedtls_mpi_read_string " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); - goto exit; - } -#endif - mbedtls_printf(" ok\n"); // Parse issuer certificate if present @@ -663,24 +690,18 @@ usage: mbedtls_x509write_crt_set_version(&crt, opt.version); mbedtls_x509write_crt_set_md_alg(&crt, opt.md); -#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) - ret = mbedtls_x509write_crt_set_serial(&crt, &serial); - if (ret != 0) { - mbedtls_strerror(ret, buf, sizeof(buf)); - mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial " - "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); + if (parse_serial(opt.serial, strlen(opt.serial), + serial, sizeof(serial), &serial_len) < 0) { + mbedtls_printf(" failed\n ! Unable to parse serial\n\n"); goto exit; } -#else - ret = mbedtls_x509write_crt_set_serial_new(&crt, opt.serial, - strlen(opt.serial)); + ret = mbedtls_x509write_crt_set_serial_new(&crt, serial, serial_len); if (ret != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial_new " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } -#endif ret = mbedtls_x509write_crt_set_validity(&crt, opt.not_before, opt.not_after); if (ret != 0) { @@ -820,7 +841,6 @@ exit: mbedtls_x509write_crt_free(&crt); mbedtls_pk_free(&loaded_subject_key); mbedtls_pk_free(&loaded_issuer_key); - mbedtls_mpi_free(&serial); mbedtls_ctr_drbg_free(&ctr_drbg); mbedtls_entropy_free(&entropy); From aad8dbd38d7078574997f2b516e6fd246e9f5588 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 17:20:25 +0100 Subject: [PATCH 1391/1574] test: fix tests for x509write_crt_set_serial(_new) Signed-off-by: Valerio Setti --- tests/suites/test_suite_x509write.data | 49 ++++++++++---------- tests/suites/test_suite_x509write.function | 52 ++++++++++++++++++---- 2 files changed, 69 insertions(+), 32 deletions(-) diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index c55c9d1ed..6cfbf2447 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -60,95 +60,95 @@ x509_csr_check_opaque:"data_files/server5.key":MBEDTLS_MD_SHA256:MBEDTLS_X509_KU Certificate write check Server1 SHA1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"19700210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 1970, not after 2050 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"19700210144406":"20500210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, not before 2050, not after 2059 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20500210144406":"20590210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, one ext_key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"serverAuth":0:0:1:-1:"data_files/server1.key_ext_usage.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"serverAuth":0:0:1:-1:"data_files/server1.key_ext_usage.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, two ext_key_usages depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"codeSigning,timeStamping":0:0:1:-1:"data_files/server1.key_ext_usages.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20110212144406":"20210212144406":MBEDTLS_MD_SHA1:0:0:"codeSigning,timeStamping":0:0:1:-1:"data_files/server1.key_ext_usages.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":0:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":0:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:0:-1:"data_files/server1.key_usage_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:0:-1:"data_files/server1.cert_type_noauthid.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":1:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, RSA_ALT, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:0:-1:"data_files/server1.ca_noauthid.crt":1:1:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, key_usage depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:MBEDTLS_X509_KU_DIGITAL_SIGNATURE | MBEDTLS_X509_KU_NON_REPUDIATION | MBEDTLS_X509_KU_KEY_ENCIPHERMENT:1:"NULL":0:0:1:-1:"data_files/server1.key_usage.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, ns_cert_type depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER:1:1:-1:"data_files/server1.cert_type.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, version 1 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:MBEDTLS_X509_CRT_VERSION_1:"data_files/server1.v1.crt":2:0:"data_files/test-ca.crt" Certificate write check Server1 SHA1, Opaque, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" Certificate write check Server5 ECDSA depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" Certificate write check Server5 ECDSA, Opaque depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_USE_PSA_CRYPTO -x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"1":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"":2:0:"data_files/test-ca2.crt" +x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"":2:0:"data_files/test-ca2.crt" X509 String to Names #1 mbedtls_x509_string_to_names:"C=NL,O=Offspark\, Inc., OU=PolarSSL":"C=NL, O=Offspark\, Inc., OU=PolarSSL":0 @@ -167,3 +167,6 @@ mbedtls_x509_string_to_names:"C=NL, O=Offspark\a Inc., OU=PolarSSL":"":MBEDTLS_E X509 String to Names #6 (Escape at end) mbedtls_x509_string_to_names:"C=NL, O=Offspark\":"":MBEDTLS_ERR_X509_INVALID_NAME + +Check max serial length +x509_set_serial_check: \ No newline at end of file diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index e09c4c5dc..c9a38d653 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -300,7 +300,7 @@ exit: void x509_crt_check(char *subject_key_file, char *subject_pwd, char *subject_name, char *issuer_key_file, char *issuer_pwd, char *issuer_name, - char *serial_str, char *not_before, char *not_after, + data_t *serial_arg, char *not_before, char *not_after, int md_type, int key_usage, int set_key_usage, char *ext_key_usage, int cert_type, int set_cert_type, int auth_ident, @@ -315,7 +315,9 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, unsigned char check_buf[5000]; unsigned char *p, *end; unsigned char tag, sz; - mbedtls_mpi serial; +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) + mbedtls_mpi serial_mpi; +#endif int ret, before_tag, after_tag; size_t olen = 0, pem_len = 0, buf_index = 0; int der_len = -1; @@ -327,7 +329,9 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, mbedtls_pk_type_t issuer_key_type; memset(&rnd_info, 0x2a, sizeof(mbedtls_test_rnd_pseudo_info)); - mbedtls_mpi_init(&serial); +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) + mbedtls_mpi_init(&serial_mpi); +#endif USE_PSA_INIT(); @@ -388,12 +392,14 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, mbedtls_x509write_crt_set_version(&crt, ver); } -#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) - TEST_ASSERT(mbedtls_test_read_mpi(&serial, serial_str) == 0); - TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial) == 0); +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) + /* Try to set an invalid */ + TEST_ASSERT(mbedtls_mpi_read_binary(&serial_mpi, serial_arg->x, + serial_arg->len) == 0); + TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial_mpi) == 0); #else - TEST_ASSERT(mbedtls_x509write_crt_set_serial_new(&crt, serial_str, - strlen(serial_str)) == 0); + TEST_ASSERT(mbedtls_x509write_crt_set_serial_new(&crt, serial_arg->x, + serial_arg->len) == 0); #endif TEST_ASSERT(mbedtls_x509write_crt_set_validity(&crt, not_before, not_after) == 0); @@ -553,7 +559,9 @@ exit: mbedtls_pk_free(&issuer_key_alt); mbedtls_pk_free(&subject_key); mbedtls_pk_free(&issuer_key); - mbedtls_mpi_free(&serial); +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) + mbedtls_mpi_free(&serial_mpi); +#endif #if defined(MBEDTLS_USE_PSA_CRYPTO) psa_destroy_key(key_id); #endif @@ -561,6 +569,32 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_X509_CRT_WRITE_C */ +void x509_set_serial_check() +{ + mbedtls_x509write_cert ctx; + uint8_t invalid_serial[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN + 1]; + + memset(invalid_serial, 0x01, sizeof(invalid_serial)); + +#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) + mbedtls_mpi serial_mpi; + + mbedtls_mpi_init(&serial_mpi); + TEST_EQUAL(mbedtls_mpi_read_binary(&serial_mpi, invalid_serial, + sizeof(invalid_serial)), 0); + TEST_EQUAL(mbedtls_x509write_crt_set_serial(&ctx, &serial_mpi), + MBEDTLS_ERR_X509_BAD_INPUT_DATA); + mbedtls_mpi_free(&serial_mpi); +#endif + + TEST_EQUAL(mbedtls_x509write_crt_set_serial_new(&ctx, invalid_serial, + sizeof(invalid_serial)), + MBEDTLS_ERR_X509_BAD_INPUT_DATA); + +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_X509_CREATE_C:MBEDTLS_X509_USE_C */ void mbedtls_x509_string_to_names(char *name, char *parsed_name, int result ) From ea19d2db733198e4cfbbbf36da372290eb6db11b Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Mon, 9 Jan 2023 17:21:17 +0100 Subject: [PATCH 1392/1574] changelog: fixed typos Signed-off-by: Valerio Setti --- .../improve_x509_cert_writing_serial_number_management.txt | 2 +- tests/suites/test_suite_x509write.data | 2 +- tests/suites/test_suite_x509write.function | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt index 64d1b279a..17286b007 100644 --- a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt +++ b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt @@ -7,4 +7,4 @@ Bugfix New deprecations * mbedtls_x509write_crt_set_serial() is now being deprecated in favor of mbedtls_x509write_crt_set_serial_new(). The goal here is to remove any - direct dependency of X509 from BIGNUM_C. + direct dependency of X509 on BIGNUM_C. diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index 6cfbf2447..a986436cd 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -169,4 +169,4 @@ X509 String to Names #6 (Escape at end) mbedtls_x509_string_to_names:"C=NL, O=Offspark\":"":MBEDTLS_ERR_X509_INVALID_NAME Check max serial length -x509_set_serial_check: \ No newline at end of file +x509_set_serial_check: diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index c9a38d653..d321bd386 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -577,7 +577,7 @@ void x509_set_serial_check() memset(invalid_serial, 0x01, sizeof(invalid_serial)); -#if defined(MBEDTLS_BIGNUM_C) && !defined(MBEDTLS_DEPRECATED_REMOVED) +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) mbedtls_mpi serial_mpi; mbedtls_mpi_init(&serial_mpi); From 746def5adeb3aa1a41d144dff1c77e57eb434937 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 10 Jan 2023 11:46:34 +0100 Subject: [PATCH 1393/1574] x509: renaming of buffer variables in new serial setting function Signed-off-by: Valerio Setti --- include/mbedtls/x509_crt.h | 11 +++++------ library/x509write_crt.c | 9 ++++----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index f88e8cc2c..56cc56be0 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -1012,18 +1012,17 @@ int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial( /** * \brief Set the serial number for a Certificate. * - * \param ctx CRT context to use - * \param serial_buff A raw array of bytes containing the serial number - * in big endian format - * \param serial_buff_len Length of the previous input buffer buffer + * \param ctx CRT context to use + * \param serial A raw array of bytes containing the serial number in big + * endian format + * \param serial_len Length of the previous input buffer buffer * * \return 0 if successful, or * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer * is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) */ int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, - unsigned char *serial_buff, - size_t serial_buff_len); + unsigned char *serial, size_t serial_len); /** * \brief Set the validity period for a Certificate diff --git a/library/x509write_crt.c b/library/x509write_crt.c index da9ef6c12..5cd1e30d4 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -131,15 +131,14 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, #endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, - unsigned char *serial_buff, - size_t serial_buff_len) + unsigned char *serial, size_t serial_len) { - if (serial_buff_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { + if (serial_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { return MBEDTLS_ERR_X509_BAD_INPUT_DATA; } - ctx->serial_len = serial_buff_len; - memcpy(ctx->serial, serial_buff, serial_buff_len); + ctx->serial_len = serial_len; + memcpy(ctx->serial, serial, serial_len); return 0; } From b8dc18f3b63e2886a891ba7345ab4e877c43f0c5 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 10 Jan 2023 14:55:31 +0100 Subject: [PATCH 1394/1574] test: fix: remove invalid comment Signed-off-by: Valerio Setti --- tests/suites/test_suite_x509write.function | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index d321bd386..5d68e1609 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -393,7 +393,6 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, } #if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) - /* Try to set an invalid */ TEST_ASSERT(mbedtls_mpi_read_binary(&serial_mpi, serial_arg->x, serial_arg->len) == 0); TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial_mpi) == 0); From 4752aac11d21b7e0ec284d588f70a4d814f38ed6 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Tue, 10 Jan 2023 16:00:15 +0100 Subject: [PATCH 1395/1574] x509: enhancement and fixes - enhance mbedtls_x509write_crt_set_serial(): avoid use of useless temporary buffer - fix mbedtls_x509write_crt_der(): add an extra 0x00 byte at the beginning of serial if the MSb of serial is 1, as required from ASN.1 Signed-off-by: Valerio Setti --- library/x509write_crt.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 5cd1e30d4..4725c5fe7 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -105,7 +105,6 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, const mbedtls_mpi *serial) { int ret; - unsigned char tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN]; size_t tmp_len; /* Ensure that the MPI value fits into the buffer */ @@ -116,16 +115,11 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, ctx->serial_len = tmp_len; - ret = mbedtls_mpi_write_binary(serial, tmp, - MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN); + ret = mbedtls_mpi_write_binary(serial, ctx->serial, tmp_len); if (ret < 0) { return ret; } - /* Copy data to the internal structure skipping leading zeros */ - memcpy(ctx->serial, &tmp[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN - tmp_len], - tmp_len); - return 0; } #endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED @@ -540,14 +534,25 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, * Serial ::= INTEGER * * Written data is: - * - [ctx->serial_len] bytes for the raw serial buffer + * - "ctx->serial_len" bytes for the raw serial buffer + * - if MSb of "serial" is 1, then prepend an extra 0x00 byte * - 1 byte for the length * - 1 byte for the TAG */ MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_raw_buffer(&c, buf, ctx->serial, ctx->serial_len)); - MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, - ctx->serial_len)); + if (*c & 0x80) { + if (c - buf < 1) { + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; + } + *(c--) = 0x0; + len++; + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, + ctx->serial_len + 1)); + } else { + MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, + ctx->serial_len)); + } MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_tag(&c, buf, MBEDTLS_ASN1_INTEGER)); From 791bbe629d1e525c7d98f2be771ef1f480e74007 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 11 Jan 2023 10:40:18 +0100 Subject: [PATCH 1396/1574] programs: improved cert_write serial management Now it can accept serial both as decimal and hex number (only one format at a time, of course, not simultaneously). Signed-off-by: Valerio Setti --- ..._cert_writing_serial_number_management.txt | 9 ++ programs/x509/cert_write.c | 95 +++++++++++++------ 2 files changed, 77 insertions(+), 27 deletions(-) diff --git a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt index 17286b007..29f16972c 100644 --- a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt +++ b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt @@ -8,3 +8,12 @@ New deprecations * mbedtls_x509write_crt_set_serial() is now being deprecated in favor of mbedtls_x509write_crt_set_serial_new(). The goal here is to remove any direct dependency of X509 on BIGNUM_C. + +Changes + * programs/x509/cert_write: + - now it accepts the serial number in 2 different formats: decimal and + hex. They cannot be used simultaneously + - "serial" is used for the decimal format and it's limted in size to + unsigned long long int + - "serial_hex" is used for the hex format; max length here is + MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN*2 diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 05d7677c7..d44c6f022 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -43,10 +43,12 @@ int main(void) #include "mbedtls/ctr_drbg.h" #include "mbedtls/md.h" #include "mbedtls/error.h" +#include "test/helpers.h" #include #include #include +#include #define SET_OID(x, oid) \ do { x.len = MBEDTLS_OID_SIZE(oid); x.p = (unsigned char *) oid; } while (0) @@ -75,6 +77,7 @@ int main(void) #define DFL_NOT_BEFORE "20010101000000" #define DFL_NOT_AFTER "20301231235959" #define DFL_SERIAL "1" +#define DFL_SERIAL_HEX "1" #define DFL_SELFSIGN 0 #define DFL_IS_CA 0 #define DFL_MAX_PATHLEN -1 @@ -110,6 +113,13 @@ int main(void) " issuer_pwd=%%s default: (empty)\n" \ " output_file=%%s default: cert.crt\n" \ " serial=%%s default: 1\n" \ + " In decimal format; it can be used as\n" \ + " alternative to serial_hex, but it's\n" \ + " limited in max length to\n" \ + " unsigned long long int\n" \ + " serial_hex=%%s default: 1\n" \ + " In hex format; it can be used as\n" \ + " alternative to serial\n" \ " not_before=%%s default: 20010101000000\n" \ " not_after=%%s default: 20301231235959\n" \ " is_ca=%%d default: 0 (disabled)\n" \ @@ -159,6 +169,11 @@ int main(void) " format=pem|der default: pem\n" \ "\n" +typedef enum { + SERIAL_FRMT_UNSPEC, + SERIAL_FRMT_DEC, + SERIAL_FRMT_HEX +} serial_format_t; /* * global options @@ -175,7 +190,8 @@ struct options { const char *issuer_name; /* issuer name for certificate */ const char *not_before; /* validity period not before */ const char *not_after; /* validity period not after */ - const char *serial; /* serial number string */ + const char *serial; /* serial number string (decimal) */ + const char *serial_hex; /* serial number string (hex) */ int selfsign; /* selfsign the certificate */ int is_ca; /* is a CA certificate */ int max_pathlen; /* maximum CA path length */ @@ -235,37 +251,39 @@ int write_certificate(mbedtls_x509write_cert *crt, const char *output_file, return 0; } -/* - * Convert the input "in_buff" string to a raw byte array "out_buff". The amount - * of converted data is returned on "written_data". - */ -static int parse_serial(const char *in_buff, size_t in_buff_len, - unsigned char *out_buff, size_t out_buff_len, - size_t *written_data) +int parse_serial_decimal_format(unsigned char *obuf, size_t obufmax, + const char *ibuf, size_t *len) { - char c; + unsigned long long int dec; + unsigned int remaining_bytes = sizeof(dec); + unsigned char *p = obuf; unsigned char val; - int i; + char *end_ptr = NULL; - if (out_buff_len < in_buff_len) { + errno = 0; + dec = strtoull(ibuf, &end_ptr, 10); + + if ((errno != 0) || (end_ptr == ibuf)) { return -1; } - *written_data = 0; + *len = 0; - for (i = 0; i < (int) in_buff_len; i++, (*written_data)++) { - c = in_buff[i]; - if (c >= 0x30 && c <= 0x39) { - val = c - 0x30; - } else if (c >= 0x41 && c <= 0x46) { - val = c - 0x37; - } else if (c >= 0x61 && c <= 0x66) { - val = c - 0x57; - } else { + while (remaining_bytes > 0) { + if (obufmax < (*len + 1)) { return -1; } - out_buff[i] = val; + val = (dec >> ((remaining_bytes - 1) * 8)) & 0xFF; + + /* Skip leading zeros */ + if ((val) != 0) { + *p = val; + (*len)++; + p++; + } + + remaining_bytes--; } return 0; @@ -288,6 +306,7 @@ int main(int argc, char *argv[]) mbedtls_x509_csr csr; #endif mbedtls_x509write_cert crt; + serial_format_t serial_frmt = SERIAL_FRMT_UNSPEC; unsigned char serial[MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN]; size_t serial_len; mbedtls_asn1_sequence *ext_key_usage; @@ -308,6 +327,7 @@ int main(int argc, char *argv[]) #endif mbedtls_x509_crt_init(&issuer_crt); memset(buf, 0, sizeof(buf)); + memset(serial, 0, sizeof(serial)); if (argc == 0) { usage: @@ -327,6 +347,7 @@ usage: opt.not_before = DFL_NOT_BEFORE; opt.not_after = DFL_NOT_AFTER; opt.serial = DFL_SERIAL; + opt.serial_hex = DFL_SERIAL_HEX; opt.selfsign = DFL_SELFSIGN; opt.is_ca = DFL_IS_CA; opt.max_pathlen = DFL_MAX_PATHLEN; @@ -371,7 +392,19 @@ usage: } else if (strcmp(p, "not_after") == 0) { opt.not_after = q; } else if (strcmp(p, "serial") == 0) { + if (serial_frmt != SERIAL_FRMT_UNSPEC) { + mbedtls_printf("Invalid attempt to set the serial more than once\n"); + goto usage; + } + serial_frmt = SERIAL_FRMT_DEC; opt.serial = q; + } else if (strcmp(p, "serial_hex") == 0) { + if (serial_frmt != SERIAL_FRMT_UNSPEC) { + mbedtls_printf("Invalid attempt to set the serial more than once\n"); + goto usage; + } + serial_frmt = SERIAL_FRMT_HEX; + opt.serial_hex = q; } else if (strcmp(p, "authority_identifier") == 0) { opt.authority_identifier = atoi(q); if (opt.authority_identifier != 0 && @@ -550,6 +583,19 @@ usage: mbedtls_printf(" . Reading serial number..."); fflush(stdout); + if (serial_frmt == SERIAL_FRMT_HEX) { + ret = mbedtls_test_unhexify(serial, sizeof(serial), + opt.serial_hex, &serial_len); + } else { // SERIAL_FRMT_DEC || SERIAL_FRMT_UNSPEC + ret = parse_serial_decimal_format(serial, sizeof(serial), + opt.serial, &serial_len); + } + + if (ret != 0) { + mbedtls_printf(" failed\n ! Unable to parse serial\n"); + goto exit; + } + mbedtls_printf(" ok\n"); // Parse issuer certificate if present @@ -690,11 +736,6 @@ usage: mbedtls_x509write_crt_set_version(&crt, opt.version); mbedtls_x509write_crt_set_md_alg(&crt, opt.md); - if (parse_serial(opt.serial, strlen(opt.serial), - serial, sizeof(serial), &serial_len) < 0) { - mbedtls_printf(" failed\n ! Unable to parse serial\n\n"); - goto exit; - } ret = mbedtls_x509write_crt_set_serial_new(&crt, serial, serial_len); if (ret != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); From 856cec45eb4d89fbf8adf71de322b3efce1d1dd9 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 12 Jan 2023 14:56:54 +0100 Subject: [PATCH 1397/1574] test: x509: add more tests for checking certificate serial - added 2 new certificates: 1 for testing a serial which is full lenght and another one for a serial which starts with 0x80 - added also proper Makefile and openssl configuration file to generate these 2 new certificates Signed-off-by: Valerio Setti --- library/x509write_crt.c | 2 +- tests/data_files/Makefile | 6 +++++ tests/data_files/server1.80serial.crt | 20 +++++++++++++++ tests/data_files/server1.long_serial.crt | 20 +++++++++++++++ .../test-ca.server1.test_serial.opensslconf | 25 +++++++++++++++++++ tests/suites/test_suite_x509write.data | 8 ++++++ 6 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 tests/data_files/server1.80serial.crt create mode 100644 tests/data_files/server1.long_serial.crt create mode 100644 tests/data_files/test-ca.server1.test_serial.opensslconf diff --git a/library/x509write_crt.c b/library/x509write_crt.c index 4725c5fe7..bac849f09 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -545,7 +545,7 @@ int mbedtls_x509write_crt_der(mbedtls_x509write_cert *ctx, if (c - buf < 1) { return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; } - *(c--) = 0x0; + *(--c) = 0x0; len++; MBEDTLS_ASN1_CHK_ADD(len, mbedtls_asn1_write_len(&c, buf, ctx->serial_len + 1)); diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 388b0ce41..340d95190 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -972,6 +972,12 @@ test_ca_server1_config_file = test-ca.server1.opensslconf server1.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) $(MBEDTLS_CERT_WRITE) request_file=server1.req.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) version=1 not_before=20190210144406 not_after=20290210144406 md=SHA1 version=3 output_file=$@ +server1.long_serial.crt: server1.long_serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) + echo "112233445566778899aabbccddeeff0011223344" > test-ca.server1.tmp.serial + $(OPENSSL) ca -in server1.req.sha256 -key PolarSSLTest -config test-ca.server1.test_serial.opensslconf -notext -batch -out $@ +server1.80serial.crt: server1.long_serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) + echo "8011223344" > test-ca.server1.tmp.serial + $(OPENSSL) ca -in server1.req.sha256 -key PolarSSLTest -config test-ca.server1.test_serial.opensslconf -notext -batch -out $@ server1.noauthid.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) $(MBEDTLS_CERT_WRITE) request_file=server1.req.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144406 not_after=20290210144406 md=SHA1 authority_identifier=0 version=3 output_file=$@ server1.crt.der: server1.crt diff --git a/tests/data_files/server1.80serial.crt b/tests/data_files/server1.80serial.crt new file mode 100644 index 000000000..3ce8570ea --- /dev/null +++ b/tests/data_files/server1.80serial.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDRDCCAiygAwIBAgIGAIARIjNEMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT +Ak5MMREwDwYDVQQKDAhQb2xhclNTTDEZMBcGA1UEAwwQUG9sYXJTU0wgVGVzdCBD +QTAeFw0xOTAyMTAxNDQ0MDZaFw0yOTAyMTAxNDQ0MDZaMDwxCzAJBgNVBAYTAk5M +MREwDwYDVQQKDAhQb2xhclNTTDEaMBgGA1UEAwwRUG9sYXJTU0wgU2VydmVyIDEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpAh89QGrVVVOL/TbugmUu +FWFeib+46EWQ2+6IFlLT8UNQR5YSWWSHa/0r4Eb5c77dz5LhkVvtZqBviSl5RYDQ +g2rVQUN3Xzl8CQRHgrBXOXDto+wVGR6oMwhHwQVCqf1Mw7Tf3QYfTRBRQGdzEw9A ++G2BJV8KsVPGMH4VOaz5Wu5/kp6mBVvnE5eFtSOS2dQkBtUJJYl1B92mGo8/CRm+ +rWUsZOuVm9z+QV4XptpsW2nMAroULBYknErczdD3Umdz8S2gI/1+9DHKLXDKiQsE +2y6mT3Buns69WIniU1meblqSZeKIPwyUGaPd5eidlRPtKdurcBLcWsprF6tSglSx +AgMBAAGjTTBLMAkGA1UdEwQCMAAwHQYDVR0OBBYEFB901j8pwXR0RTsFEiw9qL1D +WQKmMB8GA1UdIwQYMBaAFLRa5KWz3tJS9rnVppUP6z68x/3/MA0GCSqGSIb3DQEB +BQUAA4IBAQBJKeTUCctb/wCxBte2AIiaTfATzukTVtGhKkdy3cY6U2DVSXc+s+jr +Kut8AYnjp1T6bho98RHbbk+hu+0gBWL2ysJd1+slLBUEotUMTkzgA1YdBXy9J/eM +HJ2a0ydFll/m2rXx7RRJWSbcgPZxQLDfollnNVfhcb75O3GsT3YfEIsjLmon7NHr +rJmTp773trg0cNJ6j5dKMA/2SQH5PL1cmcFgNfVZ+etNRIhwpIQYySWJ/468Mcg5 +ZKPY6nubIIj+HPB3Mhy8d9U3gAJvc9iEdzbKjrkJdVROONsyMYge4vnbjyKUr7/m +ZN1O6pZy9Fvgbdhvx4ZHpfgEsa1qfLCH +-----END CERTIFICATE----- diff --git a/tests/data_files/server1.long_serial.crt b/tests/data_files/server1.long_serial.crt new file mode 100644 index 000000000..1bd6955a4 --- /dev/null +++ b/tests/data_files/server1.long_serial.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDUjCCAjqgAwIBAgIUESIzRFVmd4iZqrvM3e7/ABEiM0QwDQYJKoZIhvcNAQEF +BQAwOzELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQ +b2xhclNTTCBUZXN0IENBMB4XDTE5MDIxMDE0NDQwNloXDTI5MDIxMDE0NDQwNlow +PDELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRowGAYDVQQDDBFQb2xh +clNTTCBTZXJ2ZXIgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkC +Hz1AatVVU4v9Nu6CZS4VYV6Jv7joRZDb7ogWUtPxQ1BHlhJZZIdr/SvgRvlzvt3P +kuGRW+1moG+JKXlFgNCDatVBQ3dfOXwJBEeCsFc5cO2j7BUZHqgzCEfBBUKp/UzD +tN/dBh9NEFFAZ3MTD0D4bYElXwqxU8YwfhU5rPla7n+SnqYFW+cTl4W1I5LZ1CQG +1QkliXUH3aYajz8JGb6tZSxk65Wb3P5BXhem2mxbacwCuhQsFiScStzN0PdSZ3Px +LaAj/X70McotcMqJCwTbLqZPcG6ezr1YieJTWZ5uWpJl4og/DJQZo93l6J2VE+0p +26twEtxaymsXq1KCVLECAwEAAaNNMEswCQYDVR0TBAIwADAdBgNVHQ4EFgQUH3TW +PynBdHRFOwUSLD2ovUNZAqYwHwYDVR0jBBgwFoAUtFrkpbPe0lL2udWmlQ/rPrzH +/f8wDQYJKoZIhvcNAQEFBQADggEBAC9qt4BC8zKb5o00ZVtTX0XYKWchHKYSrHk2 +r+zfW8pRcSaTGRTtMGkF7vozFrCX4Pr4vCKXOYFKQ/UEpWv5WzW7nB0+Ja0g4gnc +9bLtg51n+IIG93ITGDm5+9YpsX6HsXSBpfY0vo9TwKg3bG1X26WG8j6m+V684hwV +yveRUIrSvvgVJOBSe5rhn/pLmcpbI0nkPBGlqPd10qWc0RYSrSAa3bq/dpoqR7hY +BGbbV1/9IgFhr2r44R17bhqevK3VhK4KOPRT5VMXjTh1iG4L13lIxBIuu+Lw0Pc0 +s+gQTGntA/sZkijC7mw0/q3nsRDKhHHXTDf2gjdUhMvFwYzmKBI= +-----END CERTIFICATE----- diff --git a/tests/data_files/test-ca.server1.test_serial.opensslconf b/tests/data_files/test-ca.server1.test_serial.opensslconf new file mode 100644 index 000000000..43a520ee2 --- /dev/null +++ b/tests/data_files/test-ca.server1.test_serial.opensslconf @@ -0,0 +1,25 @@ + [ ca ] + default_ca = test-ca + + [ test-ca ] + certificate = test-ca.crt + private_key = test-ca.key + serial = test-ca.server1.tmp.serial + default_md = sha1 + default_startdate = 20190210144406Z + default_enddate = 20290210144406Z + x509_extensions = v3_ca + new_certs_dir = ./ + database = ./test-ca.server1.db + policy = policy_match + unique_subject = no + + [v3_ca] + basicConstraints = CA:false + subjectKeyIdentifier=hash + authorityKeyIdentifier=keyid:always + + [policy_match] + countryName = supplied + organizationName = supplied + commonName = supplied diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index a986436cd..b5e07f545 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -142,6 +142,14 @@ Certificate write check Server1 SHA1, Opaque, CA depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_USE_PSA_CRYPTO x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.ca.crt":2:1:"data_files/test-ca.crt" +Certificate write check Server1 SHA1, Full length serial +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"112233445566778899aabbccddeeff0011223344":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.long_serial.crt":0:0:"data_files/test-ca.crt" + +Certificate write check Server1 SHA1, Serial starting with 0x80 +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"8011223344":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.80serial.crt":0:0:"data_files/test-ca.crt" + Certificate write check Server5 ECDSA depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" From 48fdbb39402551eb5a9b36a8e753918175728982 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 12 Jan 2023 15:31:35 +0100 Subject: [PATCH 1398/1574] programs: cert_write: fixed bug in parsing dec serial Signed-off-by: Valerio Setti --- programs/x509/cert_write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index d44c6f022..13debceae 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -277,7 +277,7 @@ int parse_serial_decimal_format(unsigned char *obuf, size_t obufmax, val = (dec >> ((remaining_bytes - 1) * 8)) & 0xFF; /* Skip leading zeros */ - if ((val) != 0) { + if ((val != 0) || (*len != 0)) { *p = val; (*len)++; p++; From 5b8dcd209739ed0af04219e3071fa79bbf00809d Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 17 Nov 2022 15:11:39 +0800 Subject: [PATCH 1399/1574] Add debug helper to print ticket_flags status Signed-off-by: Pengyu Lv --- include/mbedtls/debug.h | 13 +++++++++++++ library/debug.c | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/include/mbedtls/debug.h b/include/mbedtls/debug.h index 2b0d00e4c..3ca884083 100644 --- a/include/mbedtls/debug.h +++ b/include/mbedtls/debug.h @@ -68,6 +68,11 @@ mbedtls_debug_printf_ecdh(ssl, level, __FILE__, __LINE__, ecdh, attr) #endif +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) \ + mbedtls_debug_print_ticket_flags(ssl, level, __FILE__, __LINE__, flag) +#endif + #else /* MBEDTLS_DEBUG_C */ #define MBEDTLS_SSL_DEBUG_MSG(level, args) do { } while (0) @@ -77,6 +82,7 @@ #define MBEDTLS_SSL_DEBUG_ECP(level, text, X) do { } while (0) #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) do { } while (0) #define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr) do { } while (0) +#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) do { } while (0) #endif /* MBEDTLS_DEBUG_C */ @@ -305,6 +311,13 @@ void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, mbedtls_debug_ecdh_attr attr); #endif +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +void mbedtls_debug_print_ticket_flags( + const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + mbedtls_ssl_tls13_ticket_flags flag); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + #ifdef __cplusplus } #endif diff --git a/library/debug.c b/library/debug.c index 12559afe3..4cc67b498 100644 --- a/library/debug.c +++ b/library/debug.c @@ -386,4 +386,41 @@ void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, } #endif /* MBEDTLS_ECDH_C */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +#define BITS_OF(var) (sizeof(var) * 8) +#define ARRAY_LENGTH(a) (sizeof(a) / sizeof(*(a))) + +static const char *ticket_flag_name_table[BITS_OF(mbedtls_ssl_tls13_ticket_flags)] = +{ + [0] = "ALLOW_PSK_RESUMPTION", + [2] = "ALLOW_PSK_EPHEMERAL_RESUMPTION", + [3] = "ALLOW_EARLY_DATA", +}; + +void mbedtls_debug_print_ticket_flags( + const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + mbedtls_ssl_tls13_ticket_flags flag) +{ + size_t i; + + if (NULL == ssl || + NULL == ssl->conf || + NULL == ssl->conf->f_dbg || + level > debug_threshold) { + return; + } + + mbedtls_debug_print_msg(ssl, level, file, line, + "print ticket_flags (0x%02x)", flag); + + for (i = 0; i < ARRAY_LENGTH(ticket_flag_name_table); i++) { + if ((flag & (1 << i)) & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK) { + mbedtls_debug_print_msg(ssl, level, file, line, "- %s is set.", + ticket_flag_name_table[i]); + } + } +} +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + #endif /* MBEDTLS_DEBUG_C */ From b7d50acb37deb632856d4e30efbbdeec9836064b Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 17 Nov 2022 15:14:12 +0800 Subject: [PATCH 1400/1574] tls13: add helpers to manipulate ticket_flags Add helper functions to get/set/clear ticket_flags. Signed-off-by: Pengyu Lv --- library/ssl_misc.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 16eccfc9e..25844d3cf 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2719,4 +2719,25 @@ int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session, const char *hostname); #endif +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +static inline uint8_t mbedtls_ssl_tls13_session_get_ticket_flags( + mbedtls_ssl_session *session, uint8_t flags) +{ + return session->ticket_flags & + (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); +} + +static inline void mbedtls_ssl_tls13_session_set_ticket_flags( + mbedtls_ssl_session *session, uint8_t flags) +{ + session->ticket_flags |= (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); +} + +static inline void mbedtls_ssl_tls13_session_clear_ticket_flags( + mbedtls_ssl_session *session, uint8_t flags) +{ + session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); +} +#endif + #endif /* ssl_misc.h */ From 9f92695c8d0c53ba1cb78f94c7ad684d6971e678 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 17 Nov 2022 15:22:33 +0800 Subject: [PATCH 1401/1574] tls13: set key exchange mode in ticket_flags on client/server Set the ticket_flags when: - server: preparing NST (new session ticket) message - client: postprocessing NST message Clear the ticket_flags when: - server: preparing NST message - client: parsing NST message Signed-off-by: Pengyu Lv --- library/ssl_tls13_client.c | 9 +++++++++ library/ssl_tls13_server.c | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 291a4cff6..e824a5431 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2618,6 +2618,10 @@ static int ssl_tls13_parse_new_session_ticket(mbedtls_ssl_context *ssl, session->ticket = ticket; session->ticket_len = ticket_len; + /* Clear all flags in ticket_flags */ + mbedtls_ssl_tls13_session_clear_ticket_flags(session, + MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); + MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); p += 2; @@ -2701,6 +2705,11 @@ static int ssl_tls13_postprocess_new_session_ticket(mbedtls_ssl_context *ssl, session->resumption_key, session->resumption_key_len); + /* Set ticket_flags depends on the selected key exchange modes */ + mbedtls_ssl_tls13_session_set_ticket_flags(session, + ssl->conf->tls13_kex_modes); + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); + return 0; } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 980c2255b..f951813de 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2604,6 +2604,13 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, session->start = mbedtls_time(NULL); #endif + /* Set ticket_flags depends on the advertised psk key exchange mode */ + mbedtls_ssl_tls13_session_clear_ticket_flags(session, + MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); + mbedtls_ssl_tls13_session_set_ticket_flags(session, + ssl->handshake->tls13_kex_modes); + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); + /* Generate ticket_age_add */ if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, (unsigned char *) &session->ticket_age_add, From c55eeb682dfee25e870088dde92a14cea9c2da85 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 17 Nov 2022 15:26:20 +0800 Subject: [PATCH 1402/1574] tls13: check if the session ticket is compatible with key exchange modes The server check if the ticket_flags is compatible with the advertised key exchange modes in Pre-Shared Key Exchange Modes extension. The incompatible ticket should be mark as not matched. Signed-off-by: Pengyu Lv --- library/ssl_tls13_server.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index f951813de..5f09c2fde 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -249,6 +249,24 @@ static int ssl_tls13_offered_psks_check_identity_match( if (ssl_tls13_offered_psks_check_identity_match_ticket( ssl, identity, identity_len, obfuscated_ticket_age, session) == SSL_TLS1_3_OFFERED_PSK_MATCH) { + /* RFC 8446 section 4.2.9 + * + * Servers SHOULD NOT send NewSessionTicket with tickets that are not + * compatible with the advertised modes; however, if a server does so, + * the impact will just be that the client's attempts at resumption fail. + * + * We regard the ticket with incompatible key exchange modes as not match. + */ + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, + session->ticket_flags); + if (mbedtls_ssl_tls13_check_kex_modes(ssl, + mbedtls_ssl_tls13_session_get_ticket_flags(session, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) + { + MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); + return SSL_TLS1_3_OFFERED_PSK_NOT_MATCH; + } + ssl->handshake->resume = 1; *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; mbedtls_ssl_set_hs_psk(ssl, From c7af2c4f8c34b608136cc74d80b09566ed858a44 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 1 Dec 2022 16:33:00 +0800 Subject: [PATCH 1403/1574] tls13: send new session ticket only when client supports psk Signed-off-by: Pengyu Lv --- library/ssl_tls13_server.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 5f09c2fde..2d2ad610b 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2568,10 +2568,14 @@ static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) mbedtls_ssl_tls13_handshake_wrapup(ssl); #if defined(MBEDTLS_SSL_SESSION_TICKETS) - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); -#else - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + /* Sent NewSessionTicket message only when client supports PSK */ + if (mbedtls_ssl_tls13_some_psk_enabled(ssl)) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); + } else #endif + { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + } return 0; } From 3eb49be6a86bc401e96715919c59e1e9563c960d Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 5 Dec 2022 16:35:12 +0800 Subject: [PATCH 1404/1574] move kex mode check in ticket_flags to psks_check_identity_match_ticket Move the kex mode check in ticket_flags to ssl_tls13_offered_psks_check_identity_match_ticket and add new error 'MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE' to indicate the check failure. Signed-off-by: Pengyu Lv --- include/mbedtls/ssl.h | 3 ++- library/ssl_tls13_server.c | 37 +++++++++++++++++++------------------ 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 661b23ce7..9b34e4fcc 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -96,7 +96,8 @@ /* Error space gap */ /** Processing of the Certificate handshake message failed. */ #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE -0x7A00 -/* Error space gap */ +/** The kex mode allowed by ticket is not supported by client */ +#define MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE -0x7A80 /** * Received NewSessionTicket Post Handshake Message. * This error code is experimental and may be changed or removed without notice. diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 2d2ad610b..4ebd679ae 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -161,6 +161,25 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( goto exit; } + /* RFC 8446 section 4.2.9 + * + * Servers SHOULD NOT send NewSessionTicket with tickets that are not + * compatible with the advertised modes; however, if a server does so, + * the impact will just be that the client's attempts at resumption fail. + * + * We regard the ticket with incompatible key exchange modes as not match. + */ + ret = MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE; + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, + session->ticket_flags); + if (mbedtls_ssl_tls13_check_kex_modes(ssl, + mbedtls_ssl_tls13_session_get_ticket_flags(session, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) + { + MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); + goto exit; + } + ret = MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED; #if defined(MBEDTLS_HAVE_TIME) now = mbedtls_time(NULL); @@ -249,24 +268,6 @@ static int ssl_tls13_offered_psks_check_identity_match( if (ssl_tls13_offered_psks_check_identity_match_ticket( ssl, identity, identity_len, obfuscated_ticket_age, session) == SSL_TLS1_3_OFFERED_PSK_MATCH) { - /* RFC 8446 section 4.2.9 - * - * Servers SHOULD NOT send NewSessionTicket with tickets that are not - * compatible with the advertised modes; however, if a server does so, - * the impact will just be that the client's attempts at resumption fail. - * - * We regard the ticket with incompatible key exchange modes as not match. - */ - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, - session->ticket_flags); - if (mbedtls_ssl_tls13_check_kex_modes(ssl, - mbedtls_ssl_tls13_session_get_ticket_flags(session, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) - { - MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); - return SSL_TLS1_3_OFFERED_PSK_NOT_MATCH; - } - ssl->handshake->resume = 1; *psk_type = MBEDTLS_SSL_TLS1_3_PSK_RESUMPTION; mbedtls_ssl_set_hs_psk(ssl, From e6487fe3c25a20a1ae87ea6211f4118a86684cdd Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 6 Dec 2022 09:30:29 +0800 Subject: [PATCH 1405/1574] guard tls13_kex_modes related function calls with macro Handshake parameter field, tls13_kex_mode is only valid when MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED is set. So, any functions / calls should be guarded by this macros. Signed-off-by: Pengyu Lv --- library/ssl_tls13_server.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 4ebd679ae..fc89a44a4 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2569,14 +2569,16 @@ static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) mbedtls_ssl_tls13_handshake_wrapup(ssl); #if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Sent NewSessionTicket message only when client supports PSK */ - if (mbedtls_ssl_tls13_some_psk_enabled(ssl)) { - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); + if (!mbedtls_ssl_tls13_some_psk_enabled(ssl)) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); } else #endif - { - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); - } + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); +#else + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); +#endif return 0; } @@ -2630,8 +2632,10 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, /* Set ticket_flags depends on the advertised psk key exchange mode */ mbedtls_ssl_tls13_session_clear_ticket_flags(session, MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); +#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) mbedtls_ssl_tls13_session_set_ticket_flags(session, ssl->handshake->tls13_kex_modes); +#endif MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); /* Generate ticket_age_add */ From 93566780479215d389b17b523c7797ca01676ef3 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Wed, 7 Dec 2022 12:10:05 +0800 Subject: [PATCH 1406/1574] filter the tickets with tls13_kex_mode on client side. Signed-off-by: Pengyu Lv --- library/ssl_tls13_client.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index e824a5431..d5a41ce5e 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -672,11 +672,22 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg(int ciphersuite) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) +static int ssl_tls13_has_compat_ticket_flags(mbedtls_ssl_context *ssl) +{ + mbedtls_ssl_session *session = ssl->session_negotiate; + return session != NULL && + mbedtls_ssl_conf_tls13_check_kex_modes(ssl, + mbedtls_ssl_tls13_session_get_ticket_flags( + session, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL)); +} + static int ssl_tls13_has_configured_ticket(mbedtls_ssl_context *ssl) { mbedtls_ssl_session *session = ssl->session_negotiate; return ssl->handshake->resume && - session != NULL && session->ticket != NULL; + session != NULL && session->ticket != NULL && + ssl_tls13_has_compat_ticket_flags(ssl); } #if defined(MBEDTLS_SSL_EARLY_DATA) From 302feb3955360cf25a0e173935a2e9cf5e0699cf Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Fri, 9 Dec 2022 14:27:08 +0800 Subject: [PATCH 1407/1574] add cases to test session resumption with different ticket_flags This commit add test cases to test if the check of kex change mode in SessionTicket works well. Signed-off-by: Pengyu Lv --- programs/ssl/ssl_client2.c | 3 ++ programs/ssl/ssl_server2.c | 16 +++++++- tests/opt-testcases/tls13-misc.sh | 63 +++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index 4b3799f93..d64675d40 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -1215,6 +1215,9 @@ usage: opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL; } else if (strcmp(q, "all") == 0) { opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL; + } else if (strcmp(q, "psk_or_ephemeral") == 0) { + opt.tls13_kex_modes = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK | + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL; } else { goto usage; } diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index 90a13eba3..b3d9f5a5c 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1412,7 +1412,7 @@ int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session, return ret; } - switch (opt.dummy_ticket % 7) { + switch (opt.dummy_ticket % 11) { case 1: return MBEDTLS_ERR_SSL_INVALID_MAC; case 2: @@ -1432,6 +1432,20 @@ int dummy_ticket_parse(void *p_ticket, mbedtls_ssl_session *session, session->ticket_age_add -= 1000; #endif break; +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) + case 7: + session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_NONE; + break; + case 8: + session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK; + break; + case 9: + session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL; + break; + case 10: + session->ticket_flags = MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL; + break; +#endif default: break; } diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 3aaf3f330..48d5e7817 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -323,3 +323,66 @@ run_test "TLS 1.3, ext PSK, early data" \ -c "EncryptedExtensions: early_data(42) extension received." \ -c "EncryptedExtensions: early_data(42) extension ( ignored )." +get_resumption_with_ticket_flags_criteria() +{ + ticket_flags=$1 + psk_modes=$2 + if [ "$ticket_flags" = "none" ] || \ + ( [ "$psk_modes" != "psk_all" ] && \ + [ "$ticket_flags" != "psk_all" ] && \ + [ "$psk_modes" != "$ticket_flags" ] ); + then + # ticket_flags is incompatible with the psk_kex_modes + echo ' -c "Pre-configured PSK number = 1"' \ + ' -S "sent selected_identity:"' \ + ' -s "key exchange mode: ephemeral"' \ + ' -S "key exchange mode: psk_ephemeral"' \ + ' -S "key exchange mode: psk$"' \ + ' -s "No suitable key exchange mode"' \ + ' -s "No matched PSK or ticket"' + else + # ticket_flags is compatible with the psk_kex_modes + echo ' -c "Pre-configured PSK number = 1"' \ + ' -S "No suitable key exchange mode"' \ + ' -s "found matched identity"' + fi +} + +run_tests_tls13_resumption_with_ticket_flags() +{ + # all tests in this sequence requires the same configuration. + SKIP_THIS_TESTS="$SKIP_NEXT" + + DUMMY_TICKET_BASE=6 + TLS13_KEX_MODES="ephemeral:psk_or_ephemeral:ephemeral_all:all" + PSK_KEX_MODES="none:psk:psk_ephemeral:psk_all" + + for m in $(seq 4); do + kex_mode="$(echo "$TLS13_KEX_MODES" | cut -d ":" -f "$m")" + # ephemeral only mode doesn't support resumption + if [ "$kex_mode" = "ephemeral" ]; then continue; fi + + for n in $(seq 4); do + supported_psk_modes="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$m")" + dummy_ticket_flags="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$n")" + + eval "set -- $(get_resumption_with_ticket_flags_criteria "$dummy_ticket_flags" "$supported_psk_modes")" + + SKIP_NEXT="$SKIP_THIS_TESTS" + run_test "TLS 1.3 m->m: Resumption with ticket flags, $supported_psk_modes->$dummy_ticket_flags." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=$((n + DUMMY_TICKET_BASE))" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=$kex_mode reconnect=1" \ + 0 \ + "$@" + done + done +} + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_tests_tls13_resumption_with_ticket_flags + From 9eacb44a5e3b4b8e4a91496d1b7d8450a2aefb60 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Fri, 9 Dec 2022 14:39:19 +0800 Subject: [PATCH 1408/1574] improve code format and readability Signed-off-by: Pengyu Lv --- library/ssl_tls13_client.c | 8 ++++---- library/ssl_tls13_server.c | 16 +++++++--------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index d5a41ce5e..097505a21 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2630,8 +2630,8 @@ static int ssl_tls13_parse_new_session_ticket(mbedtls_ssl_context *ssl, session->ticket_len = ticket_len; /* Clear all flags in ticket_flags */ - mbedtls_ssl_tls13_session_clear_ticket_flags(session, - MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); + mbedtls_ssl_tls13_session_clear_ticket_flags( + session, MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); extensions_len = MBEDTLS_GET_UINT16_BE(p, 0); @@ -2717,8 +2717,8 @@ static int ssl_tls13_postprocess_new_session_ticket(mbedtls_ssl_context *ssl, session->resumption_key_len); /* Set ticket_flags depends on the selected key exchange modes */ - mbedtls_ssl_tls13_session_set_ticket_flags(session, - ssl->conf->tls13_kex_modes); + mbedtls_ssl_tls13_session_set_ticket_flags( + session, ssl->conf->tls13_kex_modes); MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); return 0; diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index fc89a44a4..49b4c2de2 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -170,12 +170,10 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * We regard the ticket with incompatible key exchange modes as not match. */ ret = MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE; - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, - session->ticket_flags); + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); if (mbedtls_ssl_tls13_check_kex_modes(ssl, - mbedtls_ssl_tls13_session_get_ticket_flags(session, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) - { + mbedtls_ssl_tls13_session_get_ticket_flags( + session, MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) { MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); goto exit; } @@ -2630,11 +2628,11 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, #endif /* Set ticket_flags depends on the advertised psk key exchange mode */ - mbedtls_ssl_tls13_session_clear_ticket_flags(session, - MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); + mbedtls_ssl_tls13_session_clear_ticket_flags( + session, MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - mbedtls_ssl_tls13_session_set_ticket_flags(session, - ssl->handshake->tls13_kex_modes); + mbedtls_ssl_tls13_session_set_ticket_flags( + session, ssl->handshake->tls13_kex_modes); #endif MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); From 1735ba30ea3d1f353a7bb8f3cdfe655f778d5b63 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 12 Dec 2022 09:54:30 +0800 Subject: [PATCH 1409/1574] fix review comments Signed-off-by: Pengyu Lv --- library/debug.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/debug.c b/library/debug.c index 4cc67b498..76ed7521d 100644 --- a/library/debug.c +++ b/library/debug.c @@ -387,10 +387,9 @@ void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, #endif /* MBEDTLS_ECDH_C */ #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define BITS_OF(var) (sizeof(var) * 8) #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(*(a))) -static const char *ticket_flag_name_table[BITS_OF(mbedtls_ssl_tls13_ticket_flags)] = +static const char *ticket_flag_name_table[] = { [0] = "ALLOW_PSK_RESUMPTION", [2] = "ALLOW_PSK_EPHEMERAL_RESUMPTION", From 06cf66d2ab9a7347b1805432764f029cc59dda92 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 12 Dec 2022 10:43:55 +0800 Subject: [PATCH 1410/1574] unroll test cases to improve coverage of check_test_cases in all.sh Signed-off-by: Pengyu Lv --- tests/opt-testcases/tls13-misc.sh | 235 +++++++++++++++++++++++------- 1 file changed, 180 insertions(+), 55 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 48d5e7817..76ae7ce92 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -323,60 +323,23 @@ run_test "TLS 1.3, ext PSK, early data" \ -c "EncryptedExtensions: early_data(42) extension received." \ -c "EncryptedExtensions: early_data(42) extension ( ignored )." -get_resumption_with_ticket_flags_criteria() -{ - ticket_flags=$1 - psk_modes=$2 - if [ "$ticket_flags" = "none" ] || \ - ( [ "$psk_modes" != "psk_all" ] && \ - [ "$ticket_flags" != "psk_all" ] && \ - [ "$psk_modes" != "$ticket_flags" ] ); - then - # ticket_flags is incompatible with the psk_kex_modes - echo ' -c "Pre-configured PSK number = 1"' \ - ' -S "sent selected_identity:"' \ - ' -s "key exchange mode: ephemeral"' \ - ' -S "key exchange mode: psk_ephemeral"' \ - ' -S "key exchange mode: psk$"' \ - ' -s "No suitable key exchange mode"' \ - ' -s "No matched PSK or ticket"' - else - # ticket_flags is compatible with the psk_kex_modes - echo ' -c "Pre-configured PSK number = 1"' \ - ' -S "No suitable key exchange mode"' \ - ' -s "found matched identity"' - fi -} - -run_tests_tls13_resumption_with_ticket_flags() -{ - # all tests in this sequence requires the same configuration. - SKIP_THIS_TESTS="$SKIP_NEXT" - - DUMMY_TICKET_BASE=6 - TLS13_KEX_MODES="ephemeral:psk_or_ephemeral:ephemeral_all:all" - PSK_KEX_MODES="none:psk:psk_ephemeral:psk_all" - - for m in $(seq 4); do - kex_mode="$(echo "$TLS13_KEX_MODES" | cut -d ":" -f "$m")" - # ephemeral only mode doesn't support resumption - if [ "$kex_mode" = "ephemeral" ]; then continue; fi - - for n in $(seq 4); do - supported_psk_modes="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$m")" - dummy_ticket_flags="$(echo "$PSK_KEX_MODES" | cut -d ":" -f "$n")" - - eval "set -- $(get_resumption_with_ticket_flags_criteria "$dummy_ticket_flags" "$supported_psk_modes")" - - SKIP_NEXT="$SKIP_THIS_TESTS" - run_test "TLS 1.3 m->m: Resumption with ticket flags, $supported_psk_modes->$dummy_ticket_flags." \ - "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=$((n + DUMMY_TICKET_BASE))" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=$kex_mode reconnect=1" \ - 0 \ - "$@" - done - done -} +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/none." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "No suitable key exchange mode" \ + -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C @@ -384,5 +347,167 @@ requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHAN MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -run_tests_tls13_resumption_with_ticket_flags +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_ephemeral." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "No suitable key exchange mode" \ + -s "No matched PSK or ticket" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_all." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/none." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "No suitable key exchange mode" \ + -s "No matched PSK or ticket" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "No suitable key exchange mode" \ + -s "No matched PSK or ticket" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_ephemeral." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_all." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/none." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "sent selected_identity:" \ + -s "key exchange mode: ephemeral" \ + -S "key exchange mode: psk_ephemeral" \ + -S "key exchange mode: psk$" \ + -s "No suitable key exchange mode" \ + -s "No matched PSK or ticket" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_ephemeral." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" + +requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ + MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ + MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED +run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_all." \ + "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ + "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + 0 \ + -c "Pre-configured PSK number = 1" \ + -S "No suitable key exchange mode" \ + -s "found matched identity" From a1aa31b8b1f1f2aae2d90fd6747beb2b3877051d Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Tue, 13 Dec 2022 13:49:59 +0800 Subject: [PATCH 1411/1574] fix review comments Signed-off-by: Pengyu Lv --- include/mbedtls/debug.h | 2 ++ include/mbedtls/ssl.h | 2 +- library/ssl_misc.h | 2 +- library/ssl_tls13_server.c | 4 ++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/mbedtls/debug.h b/include/mbedtls/debug.h index 3ca884083..7f813a3cf 100644 --- a/include/mbedtls/debug.h +++ b/include/mbedtls/debug.h @@ -82,7 +82,9 @@ #define MBEDTLS_SSL_DEBUG_ECP(level, text, X) do { } while (0) #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) do { } while (0) #define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr) do { } while (0) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) #define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) do { } while (0) +#endif #endif /* MBEDTLS_DEBUG_C */ diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 9b34e4fcc..db2e758c2 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -96,7 +96,7 @@ /* Error space gap */ /** Processing of the Certificate handshake message failed. */ #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE -0x7A00 -/** The kex mode allowed by ticket is not supported by client */ +/** No suitable key exchange mode for ticket */ #define MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE -0x7A80 /** * Received NewSessionTicket Post Handshake Message. diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 25844d3cf..57b1d6d52 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2738,6 +2738,6 @@ static inline void mbedtls_ssl_tls13_session_clear_ticket_flags( { session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } -#endif +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ #endif /* ssl_misc.h */ diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 49b4c2de2..d5dbf82c6 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2567,6 +2567,10 @@ static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) mbedtls_ssl_tls13_handshake_wrapup(ssl); #if defined(MBEDTLS_SSL_SESSION_TICKETS) +/* TODO: Remove the check of SOME_PSK_ENABLED since SESSION_TICKETS requires + * SOME_PSK_ENABLED to be enabled. Here is just to make CI happy. It is + * expected to be resolved with issue#6395. + */ #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Sent NewSessionTicket message only when client supports PSK */ if (!mbedtls_ssl_tls13_some_psk_enabled(ssl)) { From 80270b215193a90a0bbb7db37142788c4dd9963e Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 12 Jan 2023 11:54:04 +0800 Subject: [PATCH 1412/1574] rename ticket_flags helper functions to generic ones Ticket flags is quite generic and may make sense in the future versions of TLS or even in TLS 1.2 with new extensions. This change remane the ticket_flags helper functions with more generic `mbedtls_ssl_session` prefix instead of `mbedtls_ssl_tls13_session`. Signed-off-by: Pengyu Lv --- library/ssl_misc.h | 6 +++--- library/ssl_tls13_client.c | 8 ++++---- library/ssl_tls13_server.c | 12 +++++++----- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/library/ssl_misc.h b/library/ssl_misc.h index 57b1d6d52..b3d91125a 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2720,20 +2720,20 @@ int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session, #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -static inline uint8_t mbedtls_ssl_tls13_session_get_ticket_flags( +static inline unsigned int mbedtls_ssl_session_get_ticket_flags( mbedtls_ssl_session *session, uint8_t flags) { return session->ticket_flags & (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } -static inline void mbedtls_ssl_tls13_session_set_ticket_flags( +static inline void mbedtls_ssl_session_set_ticket_flags( mbedtls_ssl_session *session, uint8_t flags) { session->ticket_flags |= (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } -static inline void mbedtls_ssl_tls13_session_clear_ticket_flags( +static inline void mbedtls_ssl_session_clear_ticket_flags( mbedtls_ssl_session *session, uint8_t flags) { session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index 097505a21..a6b3c5414 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -677,9 +677,9 @@ static int ssl_tls13_has_compat_ticket_flags(mbedtls_ssl_context *ssl) mbedtls_ssl_session *session = ssl->session_negotiate; return session != NULL && mbedtls_ssl_conf_tls13_check_kex_modes(ssl, - mbedtls_ssl_tls13_session_get_ticket_flags( + mbedtls_ssl_session_get_ticket_flags( session, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL)); + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL)); } static int ssl_tls13_has_configured_ticket(mbedtls_ssl_context *ssl) @@ -2630,7 +2630,7 @@ static int ssl_tls13_parse_new_session_ticket(mbedtls_ssl_context *ssl, session->ticket_len = ticket_len; /* Clear all flags in ticket_flags */ - mbedtls_ssl_tls13_session_clear_ticket_flags( + mbedtls_ssl_session_clear_ticket_flags( session, MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); MBEDTLS_SSL_CHK_BUF_READ_PTR(p, end, 2); @@ -2717,7 +2717,7 @@ static int ssl_tls13_postprocess_new_session_ticket(mbedtls_ssl_context *ssl, session->resumption_key_len); /* Set ticket_flags depends on the selected key exchange modes */ - mbedtls_ssl_tls13_session_set_ticket_flags( + mbedtls_ssl_session_set_ticket_flags( session, ssl->conf->tls13_kex_modes); MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index d5dbf82c6..654a7da31 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -170,10 +170,12 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * We regard the ticket with incompatible key exchange modes as not match. */ ret = MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE; - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); + MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, + session->ticket_flags); if (mbedtls_ssl_tls13_check_kex_modes(ssl, - mbedtls_ssl_tls13_session_get_ticket_flags( - session, MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_ALL))) { + mbedtls_ssl_session_get_ticket_flags( + session, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL))) { MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); goto exit; } @@ -2632,10 +2634,10 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, #endif /* Set ticket_flags depends on the advertised psk key exchange mode */ - mbedtls_ssl_tls13_session_clear_ticket_flags( + mbedtls_ssl_session_clear_ticket_flags( session, MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); #if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) - mbedtls_ssl_tls13_session_set_ticket_flags( + mbedtls_ssl_session_set_ticket_flags( session, ssl->handshake->tls13_kex_modes); #endif MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); From 189465306db2f33170b1184cfe267c20f81f37ec Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 12 Jan 2023 12:28:09 +0800 Subject: [PATCH 1413/1574] remove MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE error Return MBEDTLS_ERR_ERROR_GENERIC_ERROR when ticket_flags are not compatible with advertised key exchange mode. Signed-off-by: Pengyu Lv --- include/mbedtls/ssl.h | 3 +-- library/ssl_tls13_server.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index db2e758c2..661b23ce7 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -96,8 +96,7 @@ /* Error space gap */ /** Processing of the Certificate handshake message failed. */ #define MBEDTLS_ERR_SSL_BAD_CERTIFICATE -0x7A00 -/** No suitable key exchange mode for ticket */ -#define MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE -0x7A80 +/* Error space gap */ /** * Received NewSessionTicket Post Handshake Message. * This error code is experimental and may be changed or removed without notice. diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 654a7da31..16317c076 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -169,7 +169,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * * We regard the ticket with incompatible key exchange modes as not match. */ - ret = MBEDTLS_ERR_SSL_TICKET_INVALID_KEX_MODE; + ret = MBEDTLS_ERR_ERROR_GENERIC_ERROR; MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); if (mbedtls_ssl_tls13_check_kex_modes(ssl, From ee455c01ced4b55846e02746307b8fea1d023791 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 12 Jan 2023 14:37:24 +0800 Subject: [PATCH 1414/1574] move ticket_flags debug helpers The debug helpers printing ticket_flags status are moved to ssl_tls.c and ssl_debug_helpers.h. Signed-off-by: Pengyu Lv --- include/mbedtls/debug.h | 15 --------------- library/debug.c | 36 ------------------------------------ library/ssl_debug_helpers.h | 16 ++++++++++++++++ library/ssl_tls.c | 29 +++++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 51 deletions(-) diff --git a/include/mbedtls/debug.h b/include/mbedtls/debug.h index 7f813a3cf..2b0d00e4c 100644 --- a/include/mbedtls/debug.h +++ b/include/mbedtls/debug.h @@ -68,11 +68,6 @@ mbedtls_debug_printf_ecdh(ssl, level, __FILE__, __LINE__, ecdh, attr) #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) \ - mbedtls_debug_print_ticket_flags(ssl, level, __FILE__, __LINE__, flag) -#endif - #else /* MBEDTLS_DEBUG_C */ #define MBEDTLS_SSL_DEBUG_MSG(level, args) do { } while (0) @@ -82,9 +77,6 @@ #define MBEDTLS_SSL_DEBUG_ECP(level, text, X) do { } while (0) #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt) do { } while (0) #define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr) do { } while (0) -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) do { } while (0) -#endif #endif /* MBEDTLS_DEBUG_C */ @@ -313,13 +305,6 @@ void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, mbedtls_debug_ecdh_attr attr); #endif -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -void mbedtls_debug_print_ticket_flags( - const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - mbedtls_ssl_tls13_ticket_flags flag); -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ - #ifdef __cplusplus } #endif diff --git a/library/debug.c b/library/debug.c index 76ed7521d..12559afe3 100644 --- a/library/debug.c +++ b/library/debug.c @@ -386,40 +386,4 @@ void mbedtls_debug_printf_ecdh(const mbedtls_ssl_context *ssl, int level, } #endif /* MBEDTLS_ECDH_C */ -#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define ARRAY_LENGTH(a) (sizeof(a) / sizeof(*(a))) - -static const char *ticket_flag_name_table[] = -{ - [0] = "ALLOW_PSK_RESUMPTION", - [2] = "ALLOW_PSK_EPHEMERAL_RESUMPTION", - [3] = "ALLOW_EARLY_DATA", -}; - -void mbedtls_debug_print_ticket_flags( - const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - mbedtls_ssl_tls13_ticket_flags flag) -{ - size_t i; - - if (NULL == ssl || - NULL == ssl->conf || - NULL == ssl->conf->f_dbg || - level > debug_threshold) { - return; - } - - mbedtls_debug_print_msg(ssl, level, file, line, - "print ticket_flags (0x%02x)", flag); - - for (i = 0; i < ARRAY_LENGTH(ticket_flag_name_table); i++) { - if ((flag & (1 << i)) & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK) { - mbedtls_debug_print_msg(ssl, level, file, line, "- %s is set.", - ticket_flag_name_table[i]); - } - } -} -#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ - #endif /* MBEDTLS_DEBUG_C */ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 4d2a170ed..880ff6967 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -55,6 +55,12 @@ void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, int hs_msg_type, unsigned int extension_type, const char *extra_msg0, const char *extra_msg1); +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +void mbedtls_debug_print_ticket_flags(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + mbedtls_ssl_tls13_ticket_flags flag); +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + #define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extensions_mask) \ mbedtls_ssl_print_extensions(ssl, level, __FILE__, __LINE__, \ hs_msg_type, extensions_mask, NULL) @@ -63,12 +69,22 @@ void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, mbedtls_ssl_print_extension(ssl, level, __FILE__, __LINE__, \ hs_msg_type, extension_type, \ extra, NULL) + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) \ + mbedtls_debug_print_ticket_flags(ssl, level, __FILE__, __LINE__, flag) +#endif + #else #define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extension_mask) #define MBEDTLS_SSL_PRINT_EXT(level, hs_msg_type, extension_type, extra) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) +#endif + #endif /* MBEDTLS_DEBUG_C */ #endif /* MBEDTLS_SSL_DEBUG_HELPERS_H */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index bd8fd8cf7..375233d57 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -735,6 +735,35 @@ void mbedtls_ssl_print_extensions(const mbedtls_ssl_context *ssl, } } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) +#define ARRAY_LENGTH(a) (sizeof(a) / sizeof(*(a))) + +static const char *ticket_flag_name_table[] = +{ + [0] = "ALLOW_PSK_RESUMPTION", + [2] = "ALLOW_PSK_EPHEMERAL_RESUMPTION", + [3] = "ALLOW_EARLY_DATA", +}; + +void mbedtls_debug_print_ticket_flags( + const mbedtls_ssl_context *ssl, int level, + const char *file, int line, + mbedtls_ssl_tls13_ticket_flags flag) +{ + size_t i; + + mbedtls_debug_print_msg(ssl, level, file, line, + "print ticket_flags (0x%02x)", flag); + + for (i = 0; i < ARRAY_LENGTH(ticket_flag_name_table); i++) { + if ((flag & (1 << i)) & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK) { + mbedtls_debug_print_msg(ssl, level, file, line, "- %s is set.", + ticket_flag_name_table[i]); + } + } +} +#endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ + #endif /* MBEDTLS_DEBUG_C */ void mbedtls_ssl_optimize_checksum(mbedtls_ssl_context *ssl, From c1334d934c81ca0de0f2160fae9152bf61c62f07 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 12 Jan 2023 16:18:08 +0800 Subject: [PATCH 1415/1574] correct test case dependencies Now the config dependencies used for ticket_flags test cases are TLS 1.2 specified. Correct them to MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_* Signed-off-by: Pengyu Lv --- tests/opt-testcases/tls13-misc.sh | 100 ++++++++++++------------------ 1 file changed, 40 insertions(+), 60 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index 76ae7ce92..ef7580a02 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -324,11 +324,9 @@ run_test "TLS 1.3, ext PSK, early data" \ -c "EncryptedExtensions: early_data(42) extension ( ignored )." requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ @@ -342,11 +340,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/none." \ -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ @@ -356,11 +352,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk." \ -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ @@ -374,11 +368,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_ephemeral." \ -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ @@ -388,11 +380,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_all." \ -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ @@ -406,11 +396,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/none." \ -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ @@ -424,11 +412,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk." \ -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ @@ -438,11 +424,9 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_ephemera -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ @@ -452,11 +436,10 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_all." \ -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ @@ -470,11 +453,10 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/none." \ -s "No matched PSK or ticket" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ @@ -484,11 +466,10 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk." \ -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ @@ -498,11 +479,10 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_ephemeral." \ -s "found matched identity" requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ - MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED \ - MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED -requires_any_configs_enabled MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED \ - MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED + MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ From 3643fdbab98a2bd38cc9154e3285b9e23f46b404 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Thu, 12 Jan 2023 16:46:28 +0800 Subject: [PATCH 1416/1574] refine the state setting in tls13_handshake_wrapup Signed-off-by: Pengyu Lv --- library/ssl_tls13_server.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index 16317c076..aaf2be336 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -2568,21 +2568,20 @@ static int ssl_tls13_handshake_wrapup(mbedtls_ssl_context *ssl) mbedtls_ssl_tls13_handshake_wrapup(ssl); -#if defined(MBEDTLS_SSL_SESSION_TICKETS) +#if defined(MBEDTLS_SSL_SESSION_TICKETS) && \ + defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* TODO: Remove the check of SOME_PSK_ENABLED since SESSION_TICKETS requires * SOME_PSK_ENABLED to be enabled. Here is just to make CI happy. It is * expected to be resolved with issue#6395. */ -#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_SOME_PSK_ENABLED) /* Sent NewSessionTicket message only when client supports PSK */ - if (!mbedtls_ssl_tls13_some_psk_enabled(ssl)) { - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + if (mbedtls_ssl_tls13_some_psk_enabled(ssl)) { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); } else #endif - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_TLS1_3_NEW_SESSION_TICKET); -#else - mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); -#endif + { + mbedtls_ssl_handshake_set_state(ssl, MBEDTLS_SSL_HANDSHAKE_OVER); + } return 0; } From 05f940b255e0a2586dd766dc10007c30871f4b17 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 13 Jan 2023 10:52:41 +0800 Subject: [PATCH 1417/1574] Remove Terminated message from stdout Under Ubuntu-22.04, wait command prints out Terminated message if the process has been killed by kill command. This messes up the output in compat.sh Signed-off-by: Yanray Wang --- tests/compat.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index fc2bfab7a..00a787ba9 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -790,11 +790,13 @@ wait_client_done() { ( sleep "$DOG_DELAY"; echo "TIMEOUT" >> $CLI_OUT; kill $CLI_PID ) & WATCHDOG_PID=$! - wait $CLI_PID + # For Ubuntu 22.04, `Terminated` message is outputed by wait command. + # To remove it from stdout, redirect stdout/stderr to CLI_OUT + wait $CLI_PID >> $CLI_OUT 2>&1 EXIT=$? - kill $WATCHDOG_PID - wait $WATCHDOG_PID + kill $WATCHDOG_PID >/dev/null 2>&1 + wait $WATCHDOG_PID >> $CLI_OUT 2>&1 echo "EXIT: $EXIT" >> $CLI_OUT } From 128859725a08a5c9fa3c182196e65aa110fb7f59 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 13 Jan 2023 11:42:11 +0800 Subject: [PATCH 1418/1574] Redirect stdout/stderr to SRV_OUT Under Ubuntu-22.04, wait command prints out Terminated message. Therefore server process is handled with identical ways like other processes in compat.sh. In addition, PROCESS_ID is renamed as SRV_PID to improve code readability. Signed-off-by: Yanray Wang --- tests/compat.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 00a787ba9..d9c0c7fe2 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -753,15 +753,17 @@ start_server() { echo "$SERVER_CMD" > $SRV_OUT # for servers without -www or equivalent while :; do echo bla; sleep 1; done | $SERVER_CMD >> $SRV_OUT 2>&1 & - PROCESS_ID=$! + SRV_PID=$! - wait_server_start "$PORT" "$PROCESS_ID" + wait_server_start "$PORT" "$SRV_PID" } # terminate the running server stop_server() { - kill $PROCESS_ID 2>/dev/null - wait $PROCESS_ID 2>/dev/null + # For Ubuntu 22.04, `Terminated` message is outputed by wait command. + # To remove it from stdout, redirect stdout/stderr to SRV_OUT + kill $SRV_PID >/dev/null 2>&1 + wait $SRV_PID >> $SRV_OUT 2>&1 if [ "$MEMCHECK" -gt 0 ]; then if is_mbedtls "$SERVER_CMD" && has_mem_err $SRV_OUT; then @@ -777,7 +779,7 @@ stop_server() { # kill the running server (used when killed by signal) cleanup() { rm -f $SRV_OUT $CLI_OUT - kill $PROCESS_ID >/dev/null 2>&1 + kill $SRV_PID >/dev/null 2>&1 kill $WATCHDOG_PID >/dev/null 2>&1 exit 1 } From fc0e79e70f41a125e4226c5cd2083d1a500a91a3 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Fri, 13 Jan 2023 12:13:41 +0000 Subject: [PATCH 1419/1574] Have compat.sh and ssl-opt.sh not return success for > 255 errors Signed-off-by: Tom Cosgrove --- tests/compat.sh | 8 ++++++-- tests/ssl-opt.sh | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index fc2bfab7a..1454fecee 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -1106,8 +1106,7 @@ done echo "------------------------------------------------------------------------" -if [ $FAILED -ne 0 -o $SRVMEM -ne 0 ]; -then +if [ $FAILED -ne 0 -o $SRVMEM -ne 0 ]; then printf "FAILED" else printf "PASSED" @@ -1123,4 +1122,9 @@ PASSED=$(( $TESTS - $FAILED )) echo " ($PASSED / $TESTS tests ($SKIPPED skipped$MEMREPORT))" FAILED=$(( $FAILED + $SRVMEM )) +if [ $FAILED -gt 255 ]; then + # Clamp at 255 as caller gets exit code & 0xFF + # (so 256 would be 0, or success, etc) + FAILED=255 +fi exit $FAILED diff --git a/tests/ssl-opt.sh b/tests/ssl-opt.sh index c206283a2..37936fcf7 100755 --- a/tests/ssl-opt.sh +++ b/tests/ssl-opt.sh @@ -13312,4 +13312,9 @@ fi PASSES=$(( $TESTS - $FAILS )) echo " ($PASSES / $TESTS tests ($SKIPS skipped))" +if [ $FAILS -gt 255 ]; then + # Clamp at 255 as caller gets exit code & 0xFF + # (so 256 would be 0, or success, etc) + FAILS=255 +fi exit $FAILS From acecf9c95bb13d11e441f3557cff1733f3622fe3 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 16 Jan 2023 11:23:24 +0800 Subject: [PATCH 1420/1574] make ticket_flags param types consistent When ticket_flags used as parameter, use unsigned int, instead of uint8_t or mbedtls_ssl_tls13_ticket_flags.Also remove the definition of mbedtls_ssl_tls13_ticket_flags. Signed-off-by: Pengyu Lv --- include/mbedtls/ssl.h | 2 -- library/ssl_debug_helpers.h | 2 +- library/ssl_misc.h | 6 +++--- library/ssl_tls.c | 3 +-- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h index 661b23ce7..dbc37e831 100644 --- a/include/mbedtls/ssl.h +++ b/include/mbedtls/ssl.h @@ -809,8 +809,6 @@ typedef struct mbedtls_ssl_flight_item mbedtls_ssl_flight_item; #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -typedef uint8_t mbedtls_ssl_tls13_ticket_flags; - #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_RESUMPTION \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK /* 1U << 0 */ #define MBEDTLS_SSL_TLS1_3_TICKET_ALLOW_PSK_EPHEMERAL_RESUMPTION \ diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 880ff6967..84432a3d5 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -58,7 +58,7 @@ void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) void mbedtls_debug_print_ticket_flags(const mbedtls_ssl_context *ssl, int level, const char *file, int line, - mbedtls_ssl_tls13_ticket_flags flag); + unsigned int flag); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ #define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extensions_mask) \ diff --git a/library/ssl_misc.h b/library/ssl_misc.h index b3d91125a..146dae0fb 100644 --- a/library/ssl_misc.h +++ b/library/ssl_misc.h @@ -2721,20 +2721,20 @@ int mbedtls_ssl_session_set_hostname(mbedtls_ssl_session *session, #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) static inline unsigned int mbedtls_ssl_session_get_ticket_flags( - mbedtls_ssl_session *session, uint8_t flags) + mbedtls_ssl_session *session, unsigned int flags) { return session->ticket_flags & (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } static inline void mbedtls_ssl_session_set_ticket_flags( - mbedtls_ssl_session *session, uint8_t flags) + mbedtls_ssl_session *session, unsigned int flags) { session->ticket_flags |= (flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } static inline void mbedtls_ssl_session_clear_ticket_flags( - mbedtls_ssl_session *session, uint8_t flags) + mbedtls_ssl_session *session, unsigned int flags) { session->ticket_flags &= ~(flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK); } diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 375233d57..fdec4904e 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -747,8 +747,7 @@ static const char *ticket_flag_name_table[] = void mbedtls_debug_print_ticket_flags( const mbedtls_ssl_context *ssl, int level, - const char *file, int line, - mbedtls_ssl_tls13_ticket_flags flag) + const char *file, int line, unsigned int flag) { size_t i; From 4938a566bf457fe07927918fa46bdd66e9604f33 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 16 Jan 2023 11:28:49 +0800 Subject: [PATCH 1421/1574] refine ticket_flags printing helper Signed-off-by: Pengyu Lv --- library/ssl_debug_helpers.h | 12 ++++++------ library/ssl_tls.c | 12 +++++++----- library/ssl_tls13_client.c | 2 +- library/ssl_tls13_server.c | 4 ++-- 4 files changed, 16 insertions(+), 14 deletions(-) diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h index 84432a3d5..5c22ed221 100644 --- a/library/ssl_debug_helpers.h +++ b/library/ssl_debug_helpers.h @@ -56,9 +56,9 @@ void mbedtls_ssl_print_extension(const mbedtls_ssl_context *ssl, const char *extra_msg0, const char *extra_msg1); #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -void mbedtls_debug_print_ticket_flags(const mbedtls_ssl_context *ssl, - int level, const char *file, int line, - unsigned int flag); +void mbedtls_ssl_print_ticket_flags(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + unsigned int flags); #endif /* MBEDTLS_SSL_PROTO_TLS1_3 && MBEDTLS_SSL_SESSION_TICKETS */ #define MBEDTLS_SSL_PRINT_EXTS(level, hs_msg_type, extensions_mask) \ @@ -71,8 +71,8 @@ void mbedtls_debug_print_ticket_flags(const mbedtls_ssl_context *ssl, extra, NULL) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) \ - mbedtls_debug_print_ticket_flags(ssl, level, __FILE__, __LINE__, flag) +#define MBEDTLS_SSL_PRINT_TICKET_FLAGS(level, flags) \ + mbedtls_ssl_print_ticket_flags(ssl, level, __FILE__, __LINE__, flags) #endif #else @@ -82,7 +82,7 @@ void mbedtls_debug_print_ticket_flags(const mbedtls_ssl_context *ssl, #define MBEDTLS_SSL_PRINT_EXT(level, hs_msg_type, extension_type, extra) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) && defined(MBEDTLS_SSL_SESSION_TICKETS) -#define MBEDTLS_SSL_DEBUG_TICKET_FLAGS(level, flag) +#define MBEDTLS_SSL_PRINT_TICKET_FLAGS(level, flags) #endif #endif /* MBEDTLS_DEBUG_C */ diff --git a/library/ssl_tls.c b/library/ssl_tls.c index fdec4904e..86f5c0b55 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -745,17 +745,19 @@ static const char *ticket_flag_name_table[] = [3] = "ALLOW_EARLY_DATA", }; -void mbedtls_debug_print_ticket_flags( - const mbedtls_ssl_context *ssl, int level, - const char *file, int line, unsigned int flag) +void mbedtls_ssl_print_ticket_flags(const mbedtls_ssl_context *ssl, + int level, const char *file, int line, + unsigned int flags) { size_t i; mbedtls_debug_print_msg(ssl, level, file, line, - "print ticket_flags (0x%02x)", flag); + "print ticket_flags (0x%02x)", flags); + + flags = flags & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK; for (i = 0; i < ARRAY_LENGTH(ticket_flag_name_table); i++) { - if ((flag & (1 << i)) & MBEDTLS_SSL_TLS1_3_TICKET_FLAGS_MASK) { + if ((flags & (1 << i))) { mbedtls_debug_print_msg(ssl, level, file, line, "- %s is set.", ticket_flag_name_table[i]); } diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index a6b3c5414..cda1a5150 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -2719,7 +2719,7 @@ static int ssl_tls13_postprocess_new_session_ticket(mbedtls_ssl_context *ssl, /* Set ticket_flags depends on the selected key exchange modes */ mbedtls_ssl_session_set_ticket_flags( session, ssl->conf->tls13_kex_modes); - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); + MBEDTLS_SSL_PRINT_TICKET_FLAGS(4, session->ticket_flags); return 0; } diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index aaf2be336..acb1523b4 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -170,7 +170,7 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( * We regard the ticket with incompatible key exchange modes as not match. */ ret = MBEDTLS_ERR_ERROR_GENERIC_ERROR; - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, + MBEDTLS_SSL_PRINT_TICKET_FLAGS(4, session->ticket_flags); if (mbedtls_ssl_tls13_check_kex_modes(ssl, mbedtls_ssl_session_get_ticket_flags( @@ -2639,7 +2639,7 @@ static int ssl_tls13_prepare_new_session_ticket(mbedtls_ssl_context *ssl, mbedtls_ssl_session_set_ticket_flags( session, ssl->handshake->tls13_kex_modes); #endif - MBEDTLS_SSL_DEBUG_TICKET_FLAGS(4, session->ticket_flags); + MBEDTLS_SSL_PRINT_TICKET_FLAGS(4, session->ticket_flags); /* Generate ticket_age_add */ if ((ret = ssl->conf->f_rng(ssl->conf->p_rng, From e2f1dbf5ae1d2bad7b6428d364dc027771752d43 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 16 Jan 2023 12:28:27 +0800 Subject: [PATCH 1422/1574] update docs of ssl_client2 and improve code format Signed-off-by: Pengyu Lv --- library/ssl_tls13_server.c | 9 +++++---- programs/ssl/ssl_client2.c | 3 ++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c index acb1523b4..ef90f69a2 100644 --- a/library/ssl_tls13_server.c +++ b/library/ssl_tls13_server.c @@ -172,10 +172,11 @@ static int ssl_tls13_offered_psks_check_identity_match_ticket( ret = MBEDTLS_ERR_ERROR_GENERIC_ERROR; MBEDTLS_SSL_PRINT_TICKET_FLAGS(4, session->ticket_flags); - if (mbedtls_ssl_tls13_check_kex_modes(ssl, - mbedtls_ssl_session_get_ticket_flags( - session, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL))) { + if (mbedtls_ssl_tls13_check_kex_modes( + ssl, + mbedtls_ssl_session_get_ticket_flags( + session, + MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL))) { MBEDTLS_SSL_DEBUG_MSG(3, ("No suitable key exchange mode")); goto exit; } diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index d64675d40..b12406595 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -371,7 +371,8 @@ int main(void) #if defined(MBEDTLS_SSL_PROTO_TLS1_3) #define USAGE_TLS1_3_KEY_EXCHANGE_MODES \ " tls13_kex_modes=%%s default: all\n" \ - " options: psk, psk_ephemeral, ephemeral, ephemeral_all, psk_all, all\n" + " options: psk, psk_ephemeral, psk_all, ephemeral,\n" \ + " ephemeral_all, all, psk_or_ephemeral\n" #else #define USAGE_TLS1_3_KEY_EXCHANGE_MODES "" #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */ From 2bfd7162930e15ede8c814f234138b5f644a2ec5 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 16 Jan 2023 13:44:10 +0800 Subject: [PATCH 1423/1574] simplify test case dependencies and test commands Signed-off-by: Pengyu Lv --- tests/opt-testcases/tls13-misc.sh | 48 +++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/opt-testcases/tls13-misc.sh b/tests/opt-testcases/tls13-misc.sh index ef7580a02..821a37bf3 100755 --- a/tests/opt-testcases/tls13-misc.sh +++ b/tests/opt-testcases/tls13-misc.sh @@ -323,13 +323,13 @@ run_test "TLS 1.3, ext PSK, early data" \ -c "EncryptedExtensions: early_data(42) extension received." \ -c "EncryptedExtensions: early_data(42) extension ( ignored )." -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ @@ -339,25 +339,25 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/none." \ -s "No suitable key exchange mode" \ -s "No matched PSK or ticket" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ @@ -367,25 +367,25 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_ephemeral." \ -s "No suitable key exchange mode" \ -s "No matched PSK or ticket" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=psk_or_ephemeral reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ @@ -395,13 +395,13 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/none." \ -s "No suitable key exchange mode" \ -s "No matched PSK or ticket" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ @@ -411,38 +411,38 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk." \ -s "No suitable key exchange mode" \ -s "No matched PSK or ticket" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_ephemeral/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=ephemeral_all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=ephemeral_all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/none." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=7" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "sent selected_identity:" \ @@ -452,40 +452,40 @@ run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/none." \ -s "No suitable key exchange mode" \ -s "No matched PSK or ticket" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=8" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_ephemeral." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=9" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ -s "found matched identity" -requires_all_configs_enabled MBEDTLS_SSL_PROTO_TLS1_3 MBEDTLS_SSL_SESSION_TICKETS \ +requires_all_configs_enabled MBEDTLS_SSL_SESSION_TICKETS \ MBEDTLS_SSL_SRV_C MBEDTLS_SSL_CLI_C MBEDTLS_DEBUG_C \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED \ MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED run_test "TLS 1.3 m->m: Resumption with ticket flags, psk_all/psk_all." \ "$P_SRV debug_level=4 crt_file=data_files/server5.crt key_file=data_files/server5.key force_version=tls13 dummy_ticket=10" \ - "$P_CLI debug_level=4 force_version=tls13 tls13_kex_modes=all reconnect=1" \ + "$P_CLI debug_level=4 tls13_kex_modes=all reconnect=1" \ 0 \ -c "Pre-configured PSK number = 1" \ -S "No suitable key exchange mode" \ From 9b84ea75de516cbce33d662b7c0a6d19027a1c76 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Mon, 16 Jan 2023 14:08:23 +0800 Subject: [PATCH 1424/1574] remove ssl_tls13_has_compat_ticket_flags This content of the function is moved to ssl_tls13_has_configured_ticket. Signed-off-by: Pengyu Lv --- library/ssl_tls13_client.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c index cda1a5150..4aea61ca7 100644 --- a/library/ssl_tls13_client.c +++ b/library/ssl_tls13_client.c @@ -672,22 +672,14 @@ static psa_algorithm_t ssl_tls13_get_ciphersuite_hash_alg(int ciphersuite) } #if defined(MBEDTLS_SSL_SESSION_TICKETS) -static int ssl_tls13_has_compat_ticket_flags(mbedtls_ssl_context *ssl) -{ - mbedtls_ssl_session *session = ssl->session_negotiate; - return session != NULL && - mbedtls_ssl_conf_tls13_check_kex_modes(ssl, - mbedtls_ssl_session_get_ticket_flags( - session, - MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL)); -} - static int ssl_tls13_has_configured_ticket(mbedtls_ssl_context *ssl) { mbedtls_ssl_session *session = ssl->session_negotiate; return ssl->handshake->resume && session != NULL && session->ticket != NULL && - ssl_tls13_has_compat_ticket_flags(ssl); + mbedtls_ssl_conf_tls13_check_kex_modes( + ssl, mbedtls_ssl_session_get_ticket_flags( + session, MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ALL)); } #if defined(MBEDTLS_SSL_EARLY_DATA) From dd8ac67792b44829ff93e47f0fac6cbb9a928383 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 16 Jan 2023 14:57:21 +0000 Subject: [PATCH 1425/1574] Update check_names.py so that identifiers in excluded files are still compared against the output of nm. This fixes the issue where excluding a file containing identifiers from checks would cause check_symbols_in_header to fail. Signed-off-by: Aditya Deshpande --- tests/scripts/check_names.py | 82 +++++++++++++++++++++++++++--------- 1 file changed, 63 insertions(+), 19 deletions(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index 7398f3c2d..ef676949f 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -268,13 +268,13 @@ class CodeParser(): "3rdparty/everest/include/everest/everest.h", "3rdparty/everest/include/everest/x25519.h" ]) - identifiers = self.parse_identifiers([ + identifiers, excluded_identifiers = self.parse_identifiers([ "include/mbedtls/*.h", "include/psa/*.h", "library/*.h", "3rdparty/everest/include/everest/everest.h", "3rdparty/everest/include/everest/x25519.h" - ]) + ], ["3rdparty/p256-m/p256-m/p256-m.h"]) mbed_psa_words = self.parse_mbed_psa_words([ "include/mbedtls/*.h", "include/psa/*.h", @@ -311,6 +311,7 @@ class CodeParser(): "private_macros": all_macros["private"], "enum_consts": enum_consts, "identifiers": identifiers, + "excluded_identifiers": excluded_identifiers, "symbols": symbols, "mbed_psa_words": mbed_psa_words } @@ -324,12 +325,42 @@ class CodeParser(): return True return False - def get_files(self, include_wildcards, exclude_wildcards): + def get_all_files(self, include_wildcards, exclude_wildcards): """ - Get all files that match any of the UNIX-style wildcards. While the - check_names script is designed only for use on UNIX/macOS (due to nm), - this function alone would work fine on Windows even with forward slashes - in the wildcard. + Get all files that match any of the included UNIX-style wildcards + and filter them into included and excluded lists. + While the check_names script is designed only for use on UNIX/macOS + (due to nm), this function alone will work fine on Windows even with + forward slashes in the wildcard. + + Args: + * include_wildcards: a List of shell-style wildcards to match filepaths. + * exclude_wildcards: a List of shell-style wildcards to exclude. + + Returns: + * inc_files: A List of relative filepaths for included files. + * exc_files: A List of relative filepaths for excluded files. + """ + accumulator = set() + all_wildcards = include_wildcards + exclude_wildcards + for wildcard in all_wildcards: + accumulator = accumulator.union(glob.iglob(wildcard)) + + inc_files = [] + exc_files = [] + for path in accumulator: + if self.is_file_excluded(path, exclude_wildcards): + exc_files.append(path) + else: + inc_files.append(path) + return (inc_files, exc_files) + + def get_included_files(self, include_wildcards, exclude_wildcards): + """ + Get all files that match any of the included UNIX-style wildcards. + While the check_names script is designed only for use on UNIX/macOS + (due to nm), this function alone will work fine on Windows even with + forward slashes in the wildcard. Args: * include_wildcards: a List of shell-style wildcards to match filepaths. @@ -360,7 +391,7 @@ class CodeParser(): "asm", "inline", "EMIT", "_CRT_SECURE_NO_DEPRECATE", "MULADDC_" ) - files = self.get_files(include, exclude) + files = self.get_included_files(include, exclude) self.log.debug("Looking for macros in {} files".format(len(files))) macros = [] @@ -395,7 +426,7 @@ class CodeParser(): mbed_regex = re.compile(r"\b(MBED.+?|PSA)_[A-Z0-9_]*") exclusions = re.compile(r"// *no-check-names|#error") - files = self.get_files(include, exclude) + files = self.get_included_files(include, exclude) self.log.debug( "Looking for MBED|PSA words in {} files" .format(len(files)) @@ -428,7 +459,7 @@ class CodeParser(): Returns a List of Match objects for the findings. """ - files = self.get_files(include, exclude) + files = self.get_included_files(include, exclude) self.log.debug("Looking for enum consts in {} files".format(len(files))) # Emulate a finite state machine to parse enum declarations. @@ -611,23 +642,34 @@ class CodeParser(): """ Parse all lines of a header where a function/enum/struct/union/typedef identifier is declared, based on some regex and heuristics. Highly - dependent on formatting style. + dependent on formatting style. Identifiers in excluded files are still + parsed Args: * include: A List of glob expressions to look for files through. * exclude: A List of glob expressions for excluding files. - Returns a List of Match objects with identifiers. + Returns: a Tuple of two Lists of Match objects with identifiers. + * included_identifiers: A List of Match objects with identifiers from + included files. + * excluded_identifiers: A List of Match objects with identifiers from + excluded files. """ - files = self.get_files(include, exclude) - self.log.debug("Looking for identifiers in {} files".format(len(files))) + included_files, excluded_files = \ + self.get_all_files(include, exclude) - identifiers = [] - for header_file in files: - self.parse_identifiers_in_file(header_file, identifiers) + self.log.debug("Looking for included identifiers in {} files".format \ + (len(included_files))) - return identifiers + included_identifiers = [] + excluded_identifiers = [] + for header_file in included_files: + self.parse_identifiers_in_file(header_file, included_identifiers) + for header_file in excluded_files: + self.parse_identifiers_in_file(header_file, excluded_identifiers) + + return (included_identifiers, excluded_identifiers) def parse_symbols(self): """ @@ -789,10 +831,12 @@ class NameChecker(): Returns the number of problems that need fixing. """ problems = [] + all_identifiers = self.parse_result["identifiers"] + \ + self.parse_result["excluded_identifiers"] for symbol in self.parse_result["symbols"]: found_symbol_declared = False - for identifier_match in self.parse_result["identifiers"]: + for identifier_match in all_identifiers: if symbol == identifier_match.name: found_symbol_declared = True break From 0584df41312ca98fd533a1086bb830495440e68e Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 16 Jan 2023 16:36:31 +0000 Subject: [PATCH 1426/1574] Minor changes to account for CodeParser.parse_identifiers being used in list_internal_identifiers.py Signed-off-by: Aditya Deshpande --- tests/scripts/check_names.py | 2 +- tests/scripts/list_internal_identifiers.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/scripts/check_names.py b/tests/scripts/check_names.py index ef676949f..e6a38ba3e 100755 --- a/tests/scripts/check_names.py +++ b/tests/scripts/check_names.py @@ -342,7 +342,7 @@ class CodeParser(): * exc_files: A List of relative filepaths for excluded files. """ accumulator = set() - all_wildcards = include_wildcards + exclude_wildcards + all_wildcards = include_wildcards + (exclude_wildcards or []) for wildcard in all_wildcards: accumulator = accumulator.union(glob.iglob(wildcard)) diff --git a/tests/scripts/list_internal_identifiers.py b/tests/scripts/list_internal_identifiers.py index 779a16ffb..6b41607e3 100755 --- a/tests/scripts/list_internal_identifiers.py +++ b/tests/scripts/list_internal_identifiers.py @@ -46,7 +46,7 @@ def main(): result = name_check.parse_identifiers([ "include/mbedtls/*_internal.h", "library/*.h" - ]) + ])[0] result.sort(key=lambda x: x.name) identifiers = ["{}\n".format(match.name) for match in result] From b13a58938aeebc9e908d4914cfef9ddb03930880 Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 19:49:00 +0530 Subject: [PATCH 1427/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_residue_setup() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 12 ++++++------ library/bignum_mod.h | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index e701a686d..b277f5da3 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -34,16 +34,16 @@ #include "bignum_mod_raw.h" #include "constant_time_internal.h" -int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_uint *p, - size_t p_limbs) +int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *p, + size_t p_limbs ) { - if (p_limbs != m->limbs || !mbedtls_mpi_core_lt_ct(p, m->p, m->limbs)) { + if (p_limbs != N->limbs || !mbedtls_mpi_core_lt_ct(p, N->p, N->limbs)) { return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } - r->limbs = m->limbs; + r->limbs = N->limbs; r->p = p; return 0; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 0a22e713a..8e617b6a5 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -140,36 +140,36 @@ typedef struct { /** Setup a residue structure. * - * The residue will be set up with the buffer \p p and modulus \p m. + * The residue will be set up with the buffer \p p and modulus \p N. * * The memory pointed to by \p p will be used by the resulting residue structure. * The value at the pointed-to memory will be the initial value of \p r and must * hold a value that is less than the modulus. This value will be used as-is - * and interpreted according to the value of the `m->int_rep` field. + * and interpreted according to the value of the `N->int_rep` field. * - * The modulus \p m will be the modulus associated with \p r. The residue \p r - * should only be used in operations where the modulus is \p m. + * The modulus \p N will be the modulus associated with \p r. The residue \p r + * should only be used in operations where the modulus is \p N. * * \param[out] r The address of the residue to setup. - * \param[in] m The address of the modulus related to \p r. + * \param[in] N The address of the modulus related to \p r. * \param[in] p The address of the limb array containing the value of \p r. * The memory pointed to by \p p will be used by \p r and must * not be modified in any way until after * mbedtls_mpi_mod_residue_release() is called. The data * pointed to by \p p must be less than the modulus (the value - * pointed to by `m->p`) and already in the representation - * indicated by `m->int_rep`. + * pointed to by `N->p`) and already in the representation + * indicated by `N->int_rep`. * \param p_limbs The number of limbs of \p p. Must be the same as the number - * of limbs in the modulus \p m. + * of limbs in the modulus \p N. * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the - * limbs in \p m or if \p p is not less than \p m. + * limbs in \p N or if \p p is not less than \p N. */ -int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - mbedtls_mpi_uint *p, - size_t p_limbs); +int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *p, + size_t p_limbs ); /** Unbind elements of a residue structure. * From b6fa940fc46ba18cb7d2c43fb74ead158735d735 Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 19:55:14 +0530 Subject: [PATCH 1428/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_modulus_init() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 12 ++++++------ library/bignum_mod.h | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index b277f5da3..9584ec29e 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -59,16 +59,16 @@ void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r) r->p = NULL; } -void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *m) +void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ) { - if (m == NULL) { + if (N == NULL) { return; } - m->p = NULL; - m->limbs = 0; - m->bits = 0; - m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; + N->p = NULL; + N->limbs = 0; + N->bits = 0; + N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *m) diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 8e617b6a5..08f2e4a7b 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -185,20 +185,20 @@ void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r); /** Initialize a modulus structure. * - * \param[out] m The address of the modulus structure to initialize. + * \param[out] N The address of the modulus structure to initialize. */ -void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *m); +void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ); /** Setup a modulus structure. * - * \param[out] m The address of the modulus structure to populate. - * \param[in] p The address of the limb array storing the value of \p m. - * The memory pointed to by \p p will be used by \p m and must + * \param[out] N The address of the modulus structure to populate. + * \param[in] p The address of the limb array storing the value of \p N. + * The memory pointed to by \p p will be used by \p N and must * not be modified in any way until after * mbedtls_mpi_mod_modulus_free() is called. * \param p_limbs The number of limbs of \p p. * \param int_rep The internal representation to be used for residues - * associated with \p m (see #mbedtls_mpi_mod_rep_selector). + * associated with \p N (see #mbedtls_mpi_mod_rep_selector). * * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p int_rep is invalid. From f438ad1ab9dcb5277b4fce1ad95ecea11cd0923e Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 20:03:21 +0530 Subject: [PATCH 1429/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_modulus_setup() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 29 +++++++++++++++-------------- library/bignum_mod.h | 8 ++++---- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 9584ec29e..c826ce7f1 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -136,26 +136,26 @@ cleanup: return ret; } -int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *m, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep) +int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep ) { int ret = 0; - m->p = p; - m->limbs = p_limbs; - m->bits = mbedtls_mpi_core_bitlen(p, p_limbs); + N->p = p; + N->limbs = p_limbs; + N->bits = mbedtls_mpi_core_bitlen( p, p_limbs ); switch (int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - m->int_rep = int_rep; - m->rep.mont.mm = mbedtls_mpi_core_montmul_init(m->p); - ret = set_mont_const_square(&m->rep.mont.rr, m->p, m->limbs); + N->int_rep = int_rep; + N->rep.mont.mm = mbedtls_mpi_core_montmul_init( N->p ); + ret = set_mont_const_square( &N->rep.mont.rr, N->p, N->limbs ); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: - m->int_rep = int_rep; - m->rep.ored = NULL; + N->int_rep = int_rep; + N->rep.ored = NULL; break; default: ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -164,8 +164,9 @@ int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *m, exit: - if (ret != 0) { - mbedtls_mpi_mod_modulus_free(m); + if( ret != 0 ) + { + mbedtls_mpi_mod_modulus_free( N ); } return ret; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 08f2e4a7b..d29552270 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -203,10 +203,10 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ); * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p int_rep is invalid. */ -int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *m, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep); +int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep ); /** Free elements of a modulus structure. * From 928a07ba4935e7f3086e75a9eeef187fd0bbeef5 Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 20:08:34 +0530 Subject: [PATCH 1430/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_modulus_free Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 30 ++++++++++++++++-------------- library/bignum_mod.h | 4 ++-- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index c826ce7f1..1e9303df7 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -71,33 +71,35 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ) N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } -void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *m) +void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *N ) { - if (m == NULL) { + if (N == NULL) { return; } - switch (m->int_rep) { + switch( N->int_rep ) + { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - if (m->rep.mont.rr != NULL) { - mbedtls_platform_zeroize((mbedtls_mpi_uint *) m->rep.mont.rr, - m->limbs * sizeof(mbedtls_mpi_uint)); - mbedtls_free((mbedtls_mpi_uint *) m->rep.mont.rr); - m->rep.mont.rr = NULL; + if (N->rep.mont.rr != NULL) + { + mbedtls_platform_zeroize( (mbedtls_mpi_uint *) N->rep.mont.rr, + N->limbs * sizeof(mbedtls_mpi_uint) ); + mbedtls_free( (mbedtls_mpi_uint *)N->rep.mont.rr ); + N->rep.mont.rr = NULL; } - m->rep.mont.mm = 0; + N->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: - mbedtls_free(m->rep.ored); + mbedtls_free( N->rep.ored ); break; case MBEDTLS_MPI_MOD_REP_INVALID: break; } - m->p = NULL; - m->limbs = 0; - m->bits = 0; - m->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; + N->p = NULL; + N->limbs = 0; + N->bits = 0; + N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } static int set_mont_const_square(const mbedtls_mpi_uint **X, diff --git a/library/bignum_mod.h b/library/bignum_mod.h index d29552270..ad8a1dd37 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -216,9 +216,9 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, * mbedtls_mpi_mod_modulus_setup() only removes the reference to it, * making it safe to free or to use it again. * - * \param[in,out] m The address of the modulus structure to free. + * \param[in,out] N The address of the modulus structure to free. */ -void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *m); +void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *N ); /* BEGIN MERGE SLOT 1 */ From fdc314b6fe7551031a0df7185e59dceb37220a10 Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 20:32:59 +0530 Subject: [PATCH 1431/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_read() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 20 ++++++++++---------- library/bignum_mod.h | 24 ++++++++++++------------ 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 1e9303df7..c42ffbf05 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -351,30 +351,30 @@ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep) +int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; /* Do our best to check if r and m have been set up */ - if (r->limbs == 0 || m->limbs == 0) { + if (r->limbs == 0 || N->limbs == 0) { goto cleanup; } - if (r->limbs != m->limbs) { + if (r->limbs != N->limbs) { goto cleanup; } - ret = mbedtls_mpi_mod_raw_read(r->p, m, buf, buflen, ext_rep); + ret = mbedtls_mpi_mod_raw_read(r->p, N, buf, buflen, ext_rep); if (ret != 0) { goto cleanup; } - r->limbs = m->limbs; + r->limbs = N->limbs; - ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep(r->p, m); + ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep( r->p, N ); cleanup: return ret; diff --git a/library/bignum_mod.h b/library/bignum_mod.h index ad8a1dd37..84f4e6379 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -401,16 +401,16 @@ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, /** Read a residue from a byte buffer. * * The residue will be automatically converted to the internal representation - * based on the value of the `m->int_rep` field. + * based on the value of the `N->int_rep` field. * - * The modulus \p m will be the modulus associated with \p r. The residue \p r - * should only be used in operations where the modulus is \p m or a modulus - * equivalent to \p m (in the sense that all their fields or memory pointed by + * The modulus \p N will be the modulus associated with \p r. The residue \p r + * should only be used in operations where the modulus is \p N or a modulus + * equivalent to \p N (in the sense that all their fields or memory pointed by * their fields hold the same value). * * \param[out] r The address of the residue. It must have exactly the same - * number of limbs as the modulus \p m. - * \param[in] m The address of the modulus. + * number of limbs as the modulus \p N. + * \param[in] N The address of the modulus. * \param[in] buf The input buffer to import from. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness of the number in the input buffer. @@ -419,13 +419,13 @@ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p r isn't * large enough to hold the value in \p buf. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep - * is invalid or the value in the buffer is not less than \p m. + * is invalid or the value in the buffer is not less than \p N. */ -int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep); +int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ); /** Write a residue into a byte buffer. * From a43290d5567895f094deef34659c5327c685ed5a Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 20:46:18 +0530 Subject: [PATCH 1432/1574] bignum_mod: Renamed `m` -> N in mbedtls_mpi_mod_write() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 25 +++++++++++++------------ library/bignum_mod.h | 22 +++++++++++----------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index c42ffbf05..13354aec6 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -380,37 +380,38 @@ cleanup: return ret; } -int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep) +int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; /* Do our best to check if r and m have been set up */ - if (r->limbs == 0 || m->limbs == 0) { + if (r->limbs == 0 || N->limbs == 0) { goto cleanup; } - if (r->limbs != m->limbs) { + if (r->limbs != N->limbs) { goto cleanup; } - if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { - ret = mbedtls_mpi_mod_raw_from_mont_rep(r->p, m); + if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { + ret = mbedtls_mpi_mod_raw_from_mont_rep(r->p, N); if (ret != 0) { goto cleanup; } } - ret = mbedtls_mpi_mod_raw_write(r->p, m, buf, buflen, ext_rep); + ret = mbedtls_mpi_mod_raw_write( r->p, N, buf, buflen, ext_rep ); - if (m->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { + if( N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) + { /* If this fails, the value of r is corrupted and we want to return * this error (as opposed to the error code from the write above) to * let the caller know. If it succeeds, we want to return the error * code from write above. */ - int conv_ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, m); + int conv_ret = mbedtls_mpi_mod_raw_to_mont_rep(r->p, N); if (ret == 0) { ret = conv_ret; } diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 84f4e6379..0bc55947d 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -429,22 +429,22 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, /** Write a residue into a byte buffer. * - * The modulus \p m must be the modulus associated with \p r (see + * The modulus \p N must be the modulus associated with \p r (see * mbedtls_mpi_mod_residue_setup() and mbedtls_mpi_mod_read()). * * The residue will be automatically converted from the internal representation - * based on the value of `m->int_rep` field. + * based on the value of `N->int_rep` field. * - * \warning If the buffer is smaller than `m->bits`, the number of + * \warning If the buffer is smaller than `N->bits`, the number of * leading zeroes is leaked through timing. If \p r is * secret, the caller must ensure that \p buflen is at least - * (`m->bits`+7)/8. + * (`N->bits`+7)/8. * * \param[in] r The address of the residue. It must have the same number of - * limbs as the modulus \p m. (\p r is an input parameter, but + * limbs as the modulus \p N. (\p r is an input parameter, but * its value will be modified during execution and restored * before the function returns.) - * \param[in] m The address of the modulus associated with \r. + * \param[in] N The address of the modulus associated with \r. * \param[out] buf The output buffer to export to. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness in which the number should be written into @@ -459,11 +459,11 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * memory for conversion. Can occur only for moduli with * MBEDTLS_MPI_MOD_REP_MONTGOMERY. */ -int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *m, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep); +int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep ); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From cd17ff03546e695efa7237a7de65b6204a59ddbf Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 20:56:13 +0530 Subject: [PATCH 1433/1574] bignum_mod_raw: Renamed `m` -> N in mbedtls_mpi_mod_raw_read() Signed-off-by: Mihir Raj Singh --- library/bignum_mod_raw.c | 21 +++++++++++---------- library/bignum_mod_raw.h | 18 +++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index aa2bd46cc..f2d279ed1 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -49,22 +49,22 @@ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, mbedtls_mpi_core_cond_swap(X, Y, N->limbs, swap); } -int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep) +int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - ret = mbedtls_mpi_core_read_le(X, m->limbs, - input, input_length); + ret = mbedtls_mpi_core_read_le( X, N->limbs, + input, input_length ); break; case MBEDTLS_MPI_MOD_EXT_REP_BE: - ret = mbedtls_mpi_core_read_be(X, m->limbs, - input, input_length); + ret = mbedtls_mpi_core_read_be( X, N->limbs, + input, input_length ); break; default: return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -74,7 +74,8 @@ int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, goto cleanup; } - if (!mbedtls_mpi_core_lt_ct(X, m->p, m->limbs)) { + if( !mbedtls_mpi_core_lt_ct( X, N->p, N->limbs ) ) + { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index da8db6f33..299287093 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -145,10 +145,10 @@ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, * The MPI needs to have enough limbs to store the full value (including any * most significant zero bytes in the input). * - * \param[out] X The address of the MPI. The size is determined by \p m. + * \param[out] X The address of the MPI. The size is determined by \p N. * (In particular, it must have at least as many limbs as - * the modulus \p m.) - * \param[in] m The address of the modulus related to \p X. + * the modulus \p N.) + * \param[in] N The address of the modulus related to \p X. * \param[in] input The input buffer to import from. * \param input_length The length in bytes of \p input. * \param ext_rep The endianness of the number in the input buffer. @@ -157,13 +157,13 @@ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p X isn't * large enough to hold the value in \p input. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation - * of \p m is invalid or \p X is not less than \p m. + * of \p N is invalid or \p X is not less than \p N. */ -int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep); +int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep ); /** Export A into unsigned binary data. * From 01e861ff9e47250385fda1b824b2ab3cabeff93d Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 21:00:42 +0530 Subject: [PATCH 1434/1574] bignum_mod_raw: Renamed `m` -> N in mbedtls_mpi_mod_raw_write() Signed-off-by: Mihir Raj Singh --- library/bignum_mod_raw.c | 18 +++++++++--------- library/bignum_mod_raw.h | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index f2d279ed1..e0891bafa 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -85,19 +85,19 @@ cleanup: return ret; } -int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep) +int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep ) { switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - return mbedtls_mpi_core_write_le(A, m->limbs, - output, output_length); + return( mbedtls_mpi_core_write_le( A, N->limbs, + output, output_length ) ); case MBEDTLS_MPI_MOD_EXT_REP_BE: - return mbedtls_mpi_core_write_be(A, m->limbs, - output, output_length); + return( mbedtls_mpi_core_write_be( A, N->limbs, + output, output_length ) ); default: return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 299287093..9379f6bd9 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -167,10 +167,10 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, /** Export A into unsigned binary data. * - * \param[in] A The address of the MPI. The size is determined by \p m. + * \param[in] A The address of the MPI. The size is determined by \p N. * (In particular, it must have at least as many limbs as - * the modulus \p m.) - * \param[in] m The address of the modulus related to \p A. + * the modulus \p N.) + * \param[in] N The address of the modulus related to \p A. * \param[out] output The output buffer to export to. * \param output_length The length in bytes of \p output. * \param ext_rep The endianness in which the number should be written into the output buffer. @@ -179,13 +179,13 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL if \p output isn't * large enough to hold the value of \p A. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation - * of \p m is invalid. + * of \p N is invalid. */ -int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep); +int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep ); /* BEGIN MERGE SLOT 1 */ From 37ece7292a051a7f2f107d12040b830ed01c381a Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 21:06:16 +0530 Subject: [PATCH 1435/1574] bignum_mod_raw: Renamed `m` -> N in mbedtls_mpi_mod_raw_to_mont_rep() Signed-off-by: Mihir Raj Singh --- library/bignum_mod_raw.c | 10 +++++----- library/bignum_mod_raw.h | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index e0891bafa..8ca12d657 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -229,18 +229,18 @@ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m) +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ) { mbedtls_mpi_uint *T; - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(m->limbs); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( N->limbs ); if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { return MBEDTLS_ERR_MPI_ALLOC_FAILED; } - mbedtls_mpi_core_to_mont_rep(X, X, m->p, m->limbs, - m->rep.mont.mm, m->rep.mont.rr, T); + mbedtls_mpi_core_to_mont_rep( X, X, N->p, N->limbs, + N->rep.mont.mm, N->rep.mont.rr, T ); mbedtls_platform_zeroize(T, t_limbs * ciL); mbedtls_free(T); diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 9379f6bd9..4d5bf4111 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -410,14 +410,14 @@ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, /** Convert an MPI into Montgomery form. * * \param X The address of the MPI. - * Must have the same number of limbs as \p m. - * \param m The address of the modulus, which gives the size of - * the base `R` = 2^(biL*m->limbs). + * Must have the same number of limbs as \p N. + * \param N The address of the modulus, which gives the size of + * the base `R` = 2^(biL*N->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m); +int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ); /** Convert an MPI back from Montgomery representation. * From b0354c5b71a1b96b011057f5e01ec9723ea17ed1 Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 21:10:22 +0530 Subject: [PATCH 1436/1574] bignum_mod_raw: Renamed `m` -> N in mbedtls_mpi_mod_raw_from_mont_rep() Signed-off-by: Mihir Raj Singh --- library/bignum_mod_raw.c | 8 ++++---- library/bignum_mod_raw.h | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 8ca12d657..0f575fca6 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -247,17 +247,17 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, return 0; } -int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m) +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ) { - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(m->limbs); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( N->limbs ); mbedtls_mpi_uint *T; if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { return MBEDTLS_ERR_MPI_ALLOC_FAILED; } - mbedtls_mpi_core_from_mont_rep(X, X, m->p, m->limbs, m->rep.mont.mm, T); + mbedtls_mpi_core_from_mont_rep( X, X, N->p, N->limbs, N->rep.mont.mm, T ); mbedtls_platform_zeroize(T, t_limbs * ciL); mbedtls_free(T); diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index 4d5bf4111..ed616782a 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -422,14 +422,14 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, /** Convert an MPI back from Montgomery representation. * * \param X The address of the MPI. - * Must have the same number of limbs as \p m. - * \param m The address of the modulus, which gives the size of - * the base `R`= 2^(biL*m->limbs). + * Must have the same number of limbs as \p N. + * \param N The address of the modulus, which gives the size of + * the base `R`= 2^(biL*N->limbs). * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *m); +int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N ); /** \brief Perform fixed width modular negation. * From 432cacf5c26fb1901b94654d1a969c9dceea0e2b Mon Sep 17 00:00:00 2001 From: Mihir Raj Singh Date: Wed, 11 Jan 2023 21:12:46 +0530 Subject: [PATCH 1437/1574] bignum_mod_raw: Renamed `m` -> N in mbedtls_mpi_mod_raw_neg() Signed-off-by: Mihir Raj Singh --- library/bignum_mod.c | 72 +++++++++++++++++++--------------------- library/bignum_mod.h | 40 +++++++++++----------- library/bignum_mod_raw.c | 65 ++++++++++++++++++------------------ library/bignum_mod_raw.h | 38 ++++++++++----------- 4 files changed, 105 insertions(+), 110 deletions(-) diff --git a/library/bignum_mod.c b/library/bignum_mod.c index 13354aec6..e986865a1 100644 --- a/library/bignum_mod.c +++ b/library/bignum_mod.c @@ -34,10 +34,10 @@ #include "bignum_mod_raw.h" #include "constant_time_internal.h" -int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *p, - size_t p_limbs ) +int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *p, + size_t p_limbs) { if (p_limbs != N->limbs || !mbedtls_mpi_core_lt_ct(p, N->p, N->limbs)) { return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -59,7 +59,7 @@ void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r) r->p = NULL; } -void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ) +void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *N) { if (N == NULL) { return; @@ -71,26 +71,24 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ) N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; } -void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *N ) +void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *N) { if (N == NULL) { return; } - switch( N->int_rep ) - { + switch (N->int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: - if (N->rep.mont.rr != NULL) - { - mbedtls_platform_zeroize( (mbedtls_mpi_uint *) N->rep.mont.rr, - N->limbs * sizeof(mbedtls_mpi_uint) ); - mbedtls_free( (mbedtls_mpi_uint *)N->rep.mont.rr ); + if (N->rep.mont.rr != NULL) { + mbedtls_platform_zeroize((mbedtls_mpi_uint *) N->rep.mont.rr, + N->limbs * sizeof(mbedtls_mpi_uint)); + mbedtls_free((mbedtls_mpi_uint *) N->rep.mont.rr); N->rep.mont.rr = NULL; } N->rep.mont.mm = 0; break; case MBEDTLS_MPI_MOD_REP_OPT_RED: - mbedtls_free( N->rep.ored ); + mbedtls_free(N->rep.ored); break; case MBEDTLS_MPI_MOD_REP_INVALID: break; @@ -138,22 +136,22 @@ cleanup: return ret; } -int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep ) +int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *N, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep) { int ret = 0; N->p = p; N->limbs = p_limbs; - N->bits = mbedtls_mpi_core_bitlen( p, p_limbs ); + N->bits = mbedtls_mpi_core_bitlen(p, p_limbs); switch (int_rep) { case MBEDTLS_MPI_MOD_REP_MONTGOMERY: N->int_rep = int_rep; - N->rep.mont.mm = mbedtls_mpi_core_montmul_init( N->p ); - ret = set_mont_const_square( &N->rep.mont.rr, N->p, N->limbs ); + N->rep.mont.mm = mbedtls_mpi_core_montmul_init(N->p); + ret = set_mont_const_square(&N->rep.mont.rr, N->p, N->limbs); break; case MBEDTLS_MPI_MOD_REP_OPT_RED: N->int_rep = int_rep; @@ -166,9 +164,8 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, exit: - if( ret != 0 ) - { - mbedtls_mpi_mod_modulus_free( N ); + if (ret != 0) { + mbedtls_mpi_mod_modulus_free(N); } return ret; @@ -351,11 +348,11 @@ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -374,17 +371,17 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, r->limbs = N->limbs; - ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep( r->p, N ); + ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep(r->p, N); cleanup: return ret; } -int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -403,10 +400,9 @@ int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, } } - ret = mbedtls_mpi_mod_raw_write( r->p, N, buf, buflen, ext_rep ); + ret = mbedtls_mpi_mod_raw_write(r->p, N, buf, buflen, ext_rep); - if( N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY ) - { + if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { /* If this fails, the value of r is corrupted and we want to return * this error (as opposed to the error code from the write above) to * let the caller know. If it succeeds, we want to return the error diff --git a/library/bignum_mod.h b/library/bignum_mod.h index 0bc55947d..d8c8b7dec 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -166,10 +166,10 @@ typedef struct { * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p p_limbs is less than the * limbs in \p N or if \p p is not less than \p N. */ -int mbedtls_mpi_mod_residue_setup( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *p, - size_t p_limbs ); +int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *p, + size_t p_limbs); /** Unbind elements of a residue structure. * @@ -187,7 +187,7 @@ void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r); * * \param[out] N The address of the modulus structure to initialize. */ -void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ); +void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *N); /** Setup a modulus structure. * @@ -203,10 +203,10 @@ void mbedtls_mpi_mod_modulus_init( mbedtls_mpi_mod_modulus *N ); * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p int_rep is invalid. */ -int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, - const mbedtls_mpi_uint *p, - size_t p_limbs, - mbedtls_mpi_mod_rep_selector int_rep ); +int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *N, + const mbedtls_mpi_uint *p, + size_t p_limbs, + mbedtls_mpi_mod_rep_selector int_rep); /** Free elements of a modulus structure. * @@ -218,7 +218,7 @@ int mbedtls_mpi_mod_modulus_setup( mbedtls_mpi_mod_modulus *N, * * \param[in,out] N The address of the modulus structure to free. */ -void mbedtls_mpi_mod_modulus_free( mbedtls_mpi_mod_modulus *N ); +void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *N); /* BEGIN MERGE SLOT 1 */ @@ -421,11 +421,11 @@ int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p ext_rep * is invalid or the value in the buffer is not less than \p N. */ -int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - const unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep); /** Write a residue into a byte buffer. * @@ -459,11 +459,11 @@ int mbedtls_mpi_mod_read( mbedtls_mpi_mod_residue *r, * memory for conversion. Can occur only for moduli with * MBEDTLS_MPI_MOD_REP_MONTGOMERY. */ -int mbedtls_mpi_mod_write( const mbedtls_mpi_mod_residue *r, - const mbedtls_mpi_mod_modulus *N, - unsigned char *buf, - size_t buflen, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, + const mbedtls_mpi_mod_modulus *N, + unsigned char *buf, + size_t buflen, + mbedtls_mpi_mod_ext_rep ext_rep); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 0f575fca6..826dd0766 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -49,22 +49,22 @@ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, mbedtls_mpi_core_cond_swap(X, Y, N->limbs, swap); } -int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - ret = mbedtls_mpi_core_read_le( X, N->limbs, - input, input_length ); + ret = mbedtls_mpi_core_read_le(X, N->limbs, + input, input_length); break; case MBEDTLS_MPI_MOD_EXT_REP_BE: - ret = mbedtls_mpi_core_read_be( X, N->limbs, - input, input_length ); + ret = mbedtls_mpi_core_read_be(X, N->limbs, + input, input_length); break; default: return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; @@ -74,8 +74,7 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, goto cleanup; } - if( !mbedtls_mpi_core_lt_ct( X, N->p, N->limbs ) ) - { + if (!mbedtls_mpi_core_lt_ct(X, N->p, N->limbs)) { ret = MBEDTLS_ERR_MPI_BAD_INPUT_DATA; goto cleanup; } @@ -85,19 +84,19 @@ cleanup: return ret; } -int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *N, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep ) +int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep) { switch (ext_rep) { case MBEDTLS_MPI_MOD_EXT_REP_LE: - return( mbedtls_mpi_core_write_le( A, N->limbs, - output, output_length ) ); + return mbedtls_mpi_core_write_le(A, N->limbs, + output, output_length); case MBEDTLS_MPI_MOD_EXT_REP_BE: - return( mbedtls_mpi_core_write_be( A, N->limbs, - output, output_length ) ); + return mbedtls_mpi_core_write_be(A, N->limbs, + output, output_length); default: return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; } @@ -229,35 +228,35 @@ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, /* END MERGE SLOT 6 */ /* BEGIN MERGE SLOT 7 */ -int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N) { mbedtls_mpi_uint *T; - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( N->limbs ); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(N->limbs); if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { return MBEDTLS_ERR_MPI_ALLOC_FAILED; } - mbedtls_mpi_core_to_mont_rep( X, X, N->p, N->limbs, - N->rep.mont.mm, N->rep.mont.rr, T ); + mbedtls_mpi_core_to_mont_rep(X, X, N->p, N->limbs, + N->rep.mont.mm, N->rep.mont.rr, T); mbedtls_platform_zeroize(T, t_limbs * ciL); mbedtls_free(T); return 0; } -int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ) +int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N) { - const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs( N->limbs ); + const size_t t_limbs = mbedtls_mpi_core_montmul_working_limbs(N->limbs); mbedtls_mpi_uint *T; if ((T = (mbedtls_mpi_uint *) mbedtls_calloc(t_limbs, ciL)) == NULL) { return MBEDTLS_ERR_MPI_ALLOC_FAILED; } - mbedtls_mpi_core_from_mont_rep( X, X, N->p, N->limbs, N->rep.mont.mm, T ); + mbedtls_mpi_core_from_mont_rep(X, X, N->p, N->limbs, N->rep.mont.mm, T); mbedtls_platform_zeroize(T, t_limbs * ciL); mbedtls_free(T); @@ -266,14 +265,14 @@ int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m) + const mbedtls_mpi_mod_modulus *N) { - mbedtls_mpi_core_sub(X, m->p, A, m->limbs); + mbedtls_mpi_core_sub(X, N->p, A, N->limbs); /* If A=0 initially, then X=N now. Detect this by * subtracting N and catching the carry. */ - mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub(X, X, m->p, m->limbs); - (void) mbedtls_mpi_core_add_if(X, m->p, m->limbs, (unsigned) borrow); + mbedtls_mpi_uint borrow = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); + (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) borrow); } /* END MERGE SLOT 7 */ diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index ed616782a..a344125ca 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -159,11 +159,11 @@ void mbedtls_mpi_mod_raw_cond_swap(mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation * of \p N is invalid or \p X is not less than \p N. */ -int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N, - const unsigned char *input, - size_t input_length, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_raw_read(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N, + const unsigned char *input, + size_t input_length, + mbedtls_mpi_mod_ext_rep ext_rep); /** Export A into unsigned binary data. * @@ -181,11 +181,11 @@ int mbedtls_mpi_mod_raw_read( mbedtls_mpi_uint *X, * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if the external representation * of \p N is invalid. */ -int mbedtls_mpi_mod_raw_write( const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *N, - unsigned char *output, - size_t output_length, - mbedtls_mpi_mod_ext_rep ext_rep ); +int mbedtls_mpi_mod_raw_write(const mbedtls_mpi_uint *A, + const mbedtls_mpi_mod_modulus *N, + unsigned char *output, + size_t output_length, + mbedtls_mpi_mod_ext_rep ext_rep); /* BEGIN MERGE SLOT 1 */ @@ -416,8 +416,8 @@ int mbedtls_mpi_mod_raw_random(mbedtls_mpi_uint *X, * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_raw_to_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N); /** Convert an MPI back from Montgomery representation. * @@ -428,25 +428,25 @@ int mbedtls_mpi_mod_raw_to_mont_rep( mbedtls_mpi_uint *X, * * \return \c 0 if successful. */ -int mbedtls_mpi_mod_raw_from_mont_rep( mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N ); +int mbedtls_mpi_mod_raw_from_mont_rep(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N); /** \brief Perform fixed width modular negation. * - * The size of the operation is determined by \p m. \p A must have - * the same number of limbs as \p m. + * The size of the operation is determined by \p N. \p A must have + * the same number of limbs as \p N. * * \p X may be aliased to \p A. * * \param[out] X The result of the modular negation. * This must be initialized. * \param[in] A Little-endian presentation of the input operand. This - * must be less than or equal to \p m. - * \param[in] m The modulus to use. + * must be less than or equal to \p N. + * \param[in] N The modulus to use. */ void mbedtls_mpi_mod_raw_neg(mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, - const mbedtls_mpi_mod_modulus *m); + const mbedtls_mpi_mod_modulus *N); /* END MERGE SLOT 7 */ /* BEGIN MERGE SLOT 8 */ From d5f99e49e0fc70f776f9776f4a9c6bda9865d76b Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Wed, 11 Jan 2023 10:11:23 +0800 Subject: [PATCH 1438/1574] Change cipher suite names to standard names in compat.sh Since there is a plan to report and filter all cipher suite names consistently, cipher suite names in compat.sh are changed to the standard naming convention. Signed-off-by: Yanray Wang --- tests/compat.sh | 365 +++++++++++++++++++++++++----------------------- 1 file changed, 192 insertions(+), 173 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index fc2bfab7a..0785f730c 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -234,6 +234,7 @@ filter_ciphersuites() reset_ciphersuites() { + S_CIPHERS="" M_CIPHERS="" O_CIPHERS="" G_CIPHERS="" @@ -258,56 +259,60 @@ add_common_ciphersuites() "ECDSA") CIPHERS="$CIPHERS \ - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA \ - TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 \ - TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \ - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA \ - TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 \ - TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 \ - TLS-ECDHE-ECDSA-WITH-NULL-SHA \ + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA \ + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 \ + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 \ + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA \ + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 \ + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 \ + TLS_ECDHE_ECDSA_WITH_NULL_SHA \ " ;; "RSA") CIPHERS="$CIPHERS \ - TLS-DHE-RSA-WITH-AES-128-CBC-SHA \ - TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 \ - TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 \ - TLS-DHE-RSA-WITH-AES-256-CBC-SHA \ - TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 \ - TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 \ - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA \ - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA \ - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA \ - TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256 \ - TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 \ - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA \ - TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384 \ - TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 \ - TLS-ECDHE-RSA-WITH-NULL-SHA \ - TLS-RSA-WITH-AES-128-CBC-SHA \ - TLS-RSA-WITH-AES-128-CBC-SHA256 \ - TLS-RSA-WITH-AES-128-GCM-SHA256 \ - TLS-RSA-WITH-AES-256-CBC-SHA \ - TLS-RSA-WITH-AES-256-CBC-SHA256 \ - TLS-RSA-WITH-AES-256-GCM-SHA384 \ - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA \ - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA \ - TLS-RSA-WITH-NULL-MD5 \ - TLS-RSA-WITH-NULL-SHA \ - TLS-RSA-WITH-NULL-SHA256 \ + TLS_DHE_RSA_WITH_AES_128_CBC_SHA \ + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 \ + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 \ + TLS_DHE_RSA_WITH_AES_256_CBC_SHA \ + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 \ + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 \ + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA \ + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA \ + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA \ + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 \ + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 \ + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA \ + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 \ + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 \ + TLS_ECDHE_RSA_WITH_NULL_SHA \ + TLS_RSA_WITH_AES_128_CBC_SHA \ + TLS_RSA_WITH_AES_128_CBC_SHA256 \ + TLS_RSA_WITH_AES_128_GCM_SHA256 \ + TLS_RSA_WITH_AES_256_CBC_SHA \ + TLS_RSA_WITH_AES_256_CBC_SHA256 \ + TLS_RSA_WITH_AES_256_GCM_SHA384 \ + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA \ + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA \ + TLS_RSA_WITH_NULL_MD5 \ + TLS_RSA_WITH_NULL_SHA \ + TLS_RSA_WITH_NULL_SHA256 \ " ;; "PSK") CIPHERS="$CIPHERS \ - TLS-PSK-WITH-AES-128-CBC-SHA \ - TLS-PSK-WITH-AES-256-CBC-SHA \ + TLS_PSK_WITH_AES_128_CBC_SHA \ + TLS_PSK_WITH_AES_256_CBC_SHA \ " ;; esac - M_CIPHERS="$M_CIPHERS $CIPHERS" + S_CIPHERS="$S_CIPHERS $CIPHERS" + + T=$(./scripts/translate_ciphers.py m $CIPHERS) + check_translation $? "$T" + M_CIPHERS="$M_CIPHERS $T" T=$(./scripts/translate_ciphers.py g $CIPHERS) check_translation $? "$T" @@ -337,46 +342,50 @@ add_openssl_ciphersuites() "ECDSA") CIPHERS="$CIPHERS \ - TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA \ - TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256 \ - TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256 \ - TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA \ - TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384 \ - TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384 \ - TLS-ECDH-ECDSA-WITH-NULL-SHA \ - TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256 \ - TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384 \ - TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256 \ + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA \ + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 \ + TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 \ + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA \ + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 \ + TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 \ + TLS_ECDH_ECDSA_WITH_NULL_SHA \ + TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 \ + TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 \ + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 \ " ;; "RSA") CIPHERS="$CIPHERS \ - TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256 \ - TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384 \ - TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256 \ - TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256 \ - TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384 \ - TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256 \ - TLS-RSA-WITH-ARIA-128-GCM-SHA256 \ - TLS-RSA-WITH-ARIA-256-GCM-SHA384 \ + TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 \ + TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 \ + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \ + TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 \ + TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 \ + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \ + TLS_RSA_WITH_ARIA_128_GCM_SHA256 \ + TLS_RSA_WITH_ARIA_256_GCM_SHA384 \ " ;; "PSK") CIPHERS="$CIPHERS \ - TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256 \ - TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384 \ - TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256 \ - TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256 \ - TLS-PSK-WITH-ARIA-128-GCM-SHA256 \ - TLS-PSK-WITH-ARIA-256-GCM-SHA384 \ - TLS-PSK-WITH-CHACHA20-POLY1305-SHA256 \ + TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 \ + TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 \ + TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 \ + TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 \ + TLS_PSK_WITH_ARIA_128_GCM_SHA256 \ + TLS_PSK_WITH_ARIA_256_GCM_SHA384 \ + TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 \ " ;; esac - M_CIPHERS="$M_CIPHERS $CIPHERS" + S_CIPHERS="$S_CIPHERS $CIPHERS" + + T=$(./scripts/translate_ciphers.py m $CIPHERS) + check_translation $? "$T" + M_CIPHERS="$M_CIPHERS $T" T=$(./scripts/translate_ciphers.py o $CIPHERS) check_translation $? "$T" @@ -395,99 +404,103 @@ add_gnutls_ciphersuites() "ECDSA") CIPHERS="$CIPHERS \ - TLS-ECDHE-ECDSA-WITH-AES-128-CCM \ - TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8 \ - TLS-ECDHE-ECDSA-WITH-AES-256-CCM \ - TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8 \ - TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384 \ + TLS_ECDHE_ECDSA_WITH_AES_128_CCM \ + TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 \ + TLS_ECDHE_ECDSA_WITH_AES_256_CCM \ + TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 \ + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 \ " ;; "RSA") CIPHERS="$CIPHERS \ - TLS-DHE-RSA-WITH-AES-128-CCM \ - TLS-DHE-RSA-WITH-AES-128-CCM-8 \ - TLS-DHE-RSA-WITH-AES-256-CCM \ - TLS-DHE-RSA-WITH-AES-256-CCM-8 \ - TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256 \ - TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-RSA-WITH-AES-128-CCM \ - TLS-RSA-WITH-AES-128-CCM-8 \ - TLS-RSA-WITH-AES-256-CCM \ - TLS-RSA-WITH-AES-256-CCM-8 \ - TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256 \ - TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384 \ + TLS_DHE_RSA_WITH_AES_128_CCM \ + TLS_DHE_RSA_WITH_AES_128_CCM_8 \ + TLS_DHE_RSA_WITH_AES_256_CCM \ + TLS_DHE_RSA_WITH_AES_256_CCM_8 \ + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 \ + TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_RSA_WITH_AES_128_CCM \ + TLS_RSA_WITH_AES_128_CCM_8 \ + TLS_RSA_WITH_AES_256_CCM \ + TLS_RSA_WITH_AES_256_CCM_8 \ + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 \ + TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 \ " ;; "PSK") CIPHERS="$CIPHERS \ - TLS-DHE-PSK-WITH-AES-128-CBC-SHA \ - TLS-DHE-PSK-WITH-AES-128-CBC-SHA256 \ - TLS-DHE-PSK-WITH-AES-128-CCM \ - TLS-DHE-PSK-WITH-AES-128-CCM-8 \ - TLS-DHE-PSK-WITH-AES-128-GCM-SHA256 \ - TLS-DHE-PSK-WITH-AES-256-CBC-SHA \ - TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \ - TLS-DHE-PSK-WITH-AES-256-CCM \ - TLS-DHE-PSK-WITH-AES-256-CCM-8 \ - TLS-DHE-PSK-WITH-AES-256-GCM-SHA384 \ - TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-DHE-PSK-WITH-NULL-SHA256 \ - TLS-DHE-PSK-WITH-NULL-SHA384 \ - TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA \ - TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256 \ - TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA \ - TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 \ - TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-ECDHE-PSK-WITH-NULL-SHA256 \ - TLS-ECDHE-PSK-WITH-NULL-SHA384 \ - TLS-PSK-WITH-AES-128-CBC-SHA256 \ - TLS-PSK-WITH-AES-128-CCM \ - TLS-PSK-WITH-AES-128-CCM-8 \ - TLS-PSK-WITH-AES-128-GCM-SHA256 \ - TLS-PSK-WITH-AES-256-CBC-SHA384 \ - TLS-PSK-WITH-AES-256-CCM \ - TLS-PSK-WITH-AES-256-CCM-8 \ - TLS-PSK-WITH-AES-256-GCM-SHA384 \ - TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-PSK-WITH-NULL-SHA256 \ - TLS-PSK-WITH-NULL-SHA384 \ - TLS-RSA-PSK-WITH-AES-128-CBC-SHA \ - TLS-RSA-PSK-WITH-AES-128-CBC-SHA256 \ - TLS-RSA-PSK-WITH-AES-128-GCM-SHA256 \ - TLS-RSA-PSK-WITH-AES-256-CBC-SHA \ - TLS-RSA-PSK-WITH-AES-256-CBC-SHA384 \ - TLS-RSA-PSK-WITH-AES-256-GCM-SHA384 \ - TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-RSA-PSK-WITH-NULL-SHA256 \ - TLS-RSA-PSK-WITH-NULL-SHA384 \ + TLS_DHE_PSK_WITH_AES_128_CBC_SHA \ + TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 \ + TLS_DHE_PSK_WITH_AES_128_CCM \ + TLS_DHE_PSK_WITH_AES_128_CCM_8 \ + TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 \ + TLS_DHE_PSK_WITH_AES_256_CBC_SHA \ + TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 \ + TLS_DHE_PSK_WITH_AES_256_CCM \ + TLS_DHE_PSK_WITH_AES_256_CCM_8 \ + TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 \ + TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_DHE_PSK_WITH_NULL_SHA256 \ + TLS_DHE_PSK_WITH_NULL_SHA384 \ + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA \ + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 \ + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA \ + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 \ + TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_ECDHE_PSK_WITH_NULL_SHA256 \ + TLS_ECDHE_PSK_WITH_NULL_SHA384 \ + TLS_PSK_WITH_AES_128_CBC_SHA256 \ + TLS_PSK_WITH_AES_128_CCM \ + TLS_PSK_WITH_AES_128_CCM_8 \ + TLS_PSK_WITH_AES_128_GCM_SHA256 \ + TLS_PSK_WITH_AES_256_CBC_SHA384 \ + TLS_PSK_WITH_AES_256_CCM \ + TLS_PSK_WITH_AES_256_CCM_8 \ + TLS_PSK_WITH_AES_256_GCM_SHA384 \ + TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_PSK_WITH_NULL_SHA256 \ + TLS_PSK_WITH_NULL_SHA384 \ + TLS_RSA_PSK_WITH_AES_128_CBC_SHA \ + TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 \ + TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 \ + TLS_RSA_PSK_WITH_AES_256_CBC_SHA \ + TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 \ + TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 \ + TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_RSA_PSK_WITH_NULL_SHA256 \ + TLS_RSA_PSK_WITH_NULL_SHA384 \ " ;; esac - M_CIPHERS="$M_CIPHERS $CIPHERS" + S_CIPHERS="$S_CIPHERS $CIPHERS" + + T=$(./scripts/translate_ciphers.py m $CIPHERS) + check_translation $? "$T" + M_CIPHERS="$M_CIPHERS $T" T=$(./scripts/translate_ciphers.py g $CIPHERS) check_translation $? "$T" @@ -503,51 +516,57 @@ add_mbedtls_ciphersuites() "ECDSA") M_CIPHERS="$M_CIPHERS \ - TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256 \ - TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256 \ - TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384 \ - TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384 \ - TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256 \ - TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256 \ - TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 \ - TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384 \ - TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256 \ - TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384 \ + TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 \ + TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 \ + TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 \ + TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 \ + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 \ + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 \ + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 \ + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 \ + TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 \ + TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 \ " ;; "RSA") M_CIPHERS="$M_CIPHERS \ - TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256 \ - TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384 \ - TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256 \ - TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384 \ - TLS-RSA-WITH-ARIA-128-CBC-SHA256 \ - TLS-RSA-WITH-ARIA-256-CBC-SHA384 \ + TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 \ + TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 \ + TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 \ + TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 \ + TLS_RSA_WITH_ARIA_128_CBC_SHA256 \ + TLS_RSA_WITH_ARIA_256_CBC_SHA384 \ " ;; "PSK") - # *PSK-NULL-SHA suites supported by GnuTLS 3.3.5 but not 3.2.15 + # *PSK_NULL_SHA suites supported by GnuTLS 3.3.5 but not 3.2.15 M_CIPHERS="$M_CIPHERS \ - TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256 \ - TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384 \ - TLS-DHE-PSK-WITH-NULL-SHA \ - TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256 \ - TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384 \ - TLS-ECDHE-PSK-WITH-NULL-SHA \ - TLS-PSK-WITH-ARIA-128-CBC-SHA256 \ - TLS-PSK-WITH-ARIA-256-CBC-SHA384 \ - TLS-PSK-WITH-NULL-SHA \ - TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256 \ - TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256 \ - TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384 \ - TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384 \ - TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256 \ - TLS-RSA-PSK-WITH-NULL-SHA \ + TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 \ + TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 \ + TLS_DHE_PSK_WITH_NULL_SHA \ + TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 \ + TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 \ + TLS_ECDHE_PSK_WITH_NULL_SHA \ + TLS_PSK_WITH_ARIA_128_CBC_SHA256 \ + TLS_PSK_WITH_ARIA_256_CBC_SHA384 \ + TLS_PSK_WITH_NULL_SHA \ + TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 \ + TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 \ + TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 \ + TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 \ + TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 \ + TLS_RSA_PSK_WITH_NULL_SHA \ " ;; esac + + S_CIPHERS="$S_CIPHERS $CIPHERS" + + T=$(./scripts/translate_ciphers.py m $CIPHERS) + check_translation $? "$T" + M_CIPHERS="$M_CIPHERS $T" } setup_arguments() From ee97f05d353551104f0c694d94e35f7b73989f12 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Mon, 16 Jan 2023 11:30:59 +0800 Subject: [PATCH 1439/1574] Translate cipher suite names based on standard naming convention With this commit, translate_ciphers.py would be based on standard cipher suite names instead of MbedTLS naming convention. Signed-off-by: Yanray Wang --- tests/scripts/translate_ciphers.py | 149 ++++++++++++++++++----------- 1 file changed, 91 insertions(+), 58 deletions(-) diff --git a/tests/scripts/translate_ciphers.py b/tests/scripts/translate_ciphers.py index d5f847fd5..c622a6704 100755 --- a/tests/scripts/translate_ciphers.py +++ b/tests/scripts/translate_ciphers.py @@ -18,8 +18,7 @@ # limitations under the License. """ -Translate ciphersuite names in Mbed TLS format to OpenSSL and GNUTLS -standards. +Translate standard ciphersuite names to GnuTLS, OpenSSL and Mbed TLS standards. To test the translation functions run: python3 -m unittest translate_cipher.py @@ -36,116 +35,150 @@ class TestTranslateCiphers(unittest.TestCase): """ def test_translate_all_cipher_names(self): """ - Translate MbedTLS ciphersuite names to their OpenSSL and - GnuTLS counterpart. Use only a small subset of ciphers - that exercise each step of the translate functions + Translate standard ciphersuite names to GnuTLS, OpenSSL and + Mbed TLS counterpart. Use only a small subset of ciphers + that exercise each step of the translation functions """ ciphers = [ - ("TLS-ECDHE-ECDSA-WITH-NULL-SHA", + ("TLS_ECDHE_ECDSA_WITH_NULL_SHA", "+ECDHE-ECDSA:+NULL:+SHA1", - "ECDHE-ECDSA-NULL-SHA"), - ("TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256", + "ECDHE-ECDSA-NULL-SHA", + "TLS-ECDHE-ECDSA-WITH-NULL-SHA"), + ("TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", "+ECDHE-ECDSA:+AES-128-GCM:+AEAD", - "ECDHE-ECDSA-AES128-GCM-SHA256"), - ("TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA", + "ECDHE-ECDSA-AES128-GCM-SHA256", + "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256"), + ("TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", "+DHE-RSA:+3DES-CBC:+SHA1", - "EDH-RSA-DES-CBC3-SHA"), - ("TLS-RSA-WITH-AES-256-CBC-SHA", + "EDH-RSA-DES-CBC3-SHA", + "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA"), + ("TLS_RSA_WITH_AES_256_CBC_SHA", "+RSA:+AES-256-CBC:+SHA1", - "AES256-SHA"), - ("TLS-PSK-WITH-3DES-EDE-CBC-SHA", + "AES256-SHA", + "TLS-RSA-WITH-AES-256-CBC-SHA"), + ("TLS_PSK_WITH_3DES_EDE_CBC_SHA", "+PSK:+3DES-CBC:+SHA1", - "PSK-3DES-EDE-CBC-SHA"), - ("TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256", + "PSK-3DES-EDE-CBC-SHA", + "TLS-PSK-WITH-3DES-EDE-CBC-SHA"), + ("TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", None, - "ECDHE-ECDSA-CHACHA20-POLY1305"), - ("TLS-ECDHE-ECDSA-WITH-AES-128-CCM", + "ECDHE-ECDSA-CHACHA20-POLY1305", + "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256"), + ("TLS_ECDHE_ECDSA_WITH_AES_128_CCM", "+ECDHE-ECDSA:+AES-128-CCM:+AEAD", - None), - ("TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384", None, - "ECDHE-ARIA256-GCM-SHA384"), + "TLS-ECDHE-ECDSA-WITH-AES-128-CCM"), + ("TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384", + None, + "ECDHE-ARIA256-GCM-SHA384", + "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384"), ] - for m, g_exp, o_exp in ciphers: + for s, g_exp, o_exp, m_exp in ciphers: if g_exp is not None: - g = translate_gnutls(m) + g = translate_gnutls(s) self.assertEqual(g, g_exp) if o_exp is not None: - o = translate_ossl(m) + o = translate_ossl(s) self.assertEqual(o, o_exp) -def translate_gnutls(m_cipher): + if m_exp is not None: + m = translate_mbedtls(s) + self.assertEqual(m, m_exp) + +def translate_gnutls(s_cipher): """ - Translate m_cipher from Mbed TLS ciphersuite naming convention + Translate s_cipher from standard ciphersuite naming convention and return the GnuTLS naming convention """ - m_cipher = re.sub(r'\ATLS-', '+', m_cipher) - m_cipher = m_cipher.replace("-WITH-", ":+") - m_cipher = m_cipher.replace("-EDE", "") + # Replace "_" with "-" to handle ciphersuite names based on Mbed TLS + # naming convention + s_cipher = s_cipher.replace("_", "-") + + s_cipher = re.sub(r'\ATLS-', '+', s_cipher) + s_cipher = s_cipher.replace("-WITH-", ":+") + s_cipher = s_cipher.replace("-EDE", "") # SHA in Mbed TLS == SHA1 GnuTLS, # if the last 3 chars are SHA append 1 - if m_cipher[-3:] == "SHA": - m_cipher = m_cipher+"1" + if s_cipher[-3:] == "SHA": + s_cipher = s_cipher+"1" # CCM or CCM-8 should be followed by ":+AEAD" # Replace "GCM:+SHAxyz" with "GCM:+AEAD" - if "CCM" in m_cipher or "GCM" in m_cipher: - m_cipher = re.sub(r"GCM-SHA\d\d\d", "GCM", m_cipher) - m_cipher = m_cipher+":+AEAD" + if "CCM" in s_cipher or "GCM" in s_cipher: + s_cipher = re.sub(r"GCM-SHA\d\d\d", "GCM", s_cipher) + s_cipher = s_cipher+":+AEAD" # Replace the last "-" with ":+" else: - index = m_cipher.rindex("-") - m_cipher = m_cipher[:index] + ":+" + m_cipher[index+1:] + index = s_cipher.rindex("-") + s_cipher = s_cipher[:index] + ":+" + s_cipher[index+1:] - return m_cipher + return s_cipher -def translate_ossl(m_cipher): +def translate_ossl(s_cipher): """ - Translate m_cipher from Mbed TLS ciphersuite naming convention + Translate s_cipher from standard ciphersuite naming convention and return the OpenSSL naming convention """ - m_cipher = re.sub(r'^TLS-', '', m_cipher) - m_cipher = m_cipher.replace("-WITH", "") + # Replace "_" with "-" to handle ciphersuite names based on Mbed TLS + # naming convention + s_cipher = s_cipher.replace("_", "-") + + s_cipher = re.sub(r'^TLS-', '', s_cipher) + s_cipher = s_cipher.replace("-WITH", "") # Remove the "-" from "ABC-xyz" - m_cipher = m_cipher.replace("AES-", "AES") - m_cipher = m_cipher.replace("CAMELLIA-", "CAMELLIA") - m_cipher = m_cipher.replace("ARIA-", "ARIA") + s_cipher = s_cipher.replace("AES-", "AES") + s_cipher = s_cipher.replace("CAMELLIA-", "CAMELLIA") + s_cipher = s_cipher.replace("ARIA-", "ARIA") # Remove "RSA" if it is at the beginning - m_cipher = re.sub(r'^RSA-', r'', m_cipher) + s_cipher = re.sub(r'^RSA-', r'', s_cipher) # For all circumstances outside of PSK - if "PSK" not in m_cipher: - m_cipher = m_cipher.replace("-EDE", "") - m_cipher = m_cipher.replace("3DES-CBC", "DES-CBC3") + if "PSK" not in s_cipher: + s_cipher = s_cipher.replace("-EDE", "") + s_cipher = s_cipher.replace("3DES-CBC", "DES-CBC3") # Remove "CBC" if it is not prefixed by DES - m_cipher = re.sub(r'(? Date: Fri, 13 Jan 2023 18:00:10 +0800 Subject: [PATCH 1440/1574] Redesign translation of cipher suite names in compat.sh Move translation of cipher suite names after filter_ciphersuites so that filter is based on standard cipher suite names. Furthermore, an additional flag is passed to run_client to determine the type of translation of cipher suite names. Therefore, client receives cipher suite names based on its naming convention but the reporting output is still the standard cipher suite names. Signed-off-by: Yanray Wang --- tests/compat.sh | 89 ++++++++++++++++++------------------------------- 1 file changed, 32 insertions(+), 57 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 0785f730c..886ad8f65 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -89,7 +89,7 @@ FILTER="" # - NULL: excluded from our default config + requires OpenSSL legacy # - ARIA: requires OpenSSL >= 1.1.1 # - ChachaPoly: requires OpenSSL >= 1.1.0 -EXCLUDE='NULL\|ARIA\|CHACHA20-POLY1305' +EXCLUDE='NULL\|ARIA\|CHACHA20_POLY1305' VERBOSE="" MEMCHECK=0 PEERS="OpenSSL$PEER_GNUTLS mbedTLS" @@ -205,7 +205,7 @@ filter() check_openssl_server_bug() { if test "X$VERIFY" = "XYES" && is_dtls "$MODE" && \ - echo "$1" | grep "^TLS-PSK" >/dev/null; + echo "$1" | grep "^TLS_PSK" >/dev/null; then SKIP_NEXT="YES" fi @@ -234,7 +234,6 @@ filter_ciphersuites() reset_ciphersuites() { - S_CIPHERS="" M_CIPHERS="" O_CIPHERS="" G_CIPHERS="" @@ -308,26 +307,17 @@ add_common_ciphersuites() ;; esac - S_CIPHERS="$S_CIPHERS $CIPHERS" - - T=$(./scripts/translate_ciphers.py m $CIPHERS) - check_translation $? "$T" - M_CIPHERS="$M_CIPHERS $T" - - T=$(./scripts/translate_ciphers.py g $CIPHERS) - check_translation $? "$T" - G_CIPHERS="$G_CIPHERS $T" - - T=$(./scripts/translate_ciphers.py o $CIPHERS) - check_translation $? "$T" - O_CIPHERS="$O_CIPHERS $T" + O_CIPHERS="$O_CIPHERS $CIPHERS" + G_CIPHERS="$G_CIPHERS $CIPHERS" + M_CIPHERS="$M_CIPHERS $CIPHERS" } # Ciphersuites usable only with Mbed TLS and OpenSSL -# A list of ciphersuites in the Mbed TLS convention is compiled and -# appended to the list of Mbed TLS ciphersuites $M_CIPHERS. The same list -# is translated to the OpenSSL naming convention and appended to the list of -# OpenSSL ciphersuites $O_CIPHERS. +# A list of ciphersuites in the standard naming convention is appended +# to the list of Mbed TLS ciphersuites $M_CIPHERS and +# to the list of OpenSSL ciphersuites $O_CIPHERS respectively. +# Based on client's naming convention, all ciphersuite names will be +# translated into another naming format before sent to the client. # # NOTE: for some reason RSA-PSK doesn't work with OpenSSL, # so RSA-PSK ciphersuites need to go in other sections, see @@ -381,22 +371,16 @@ add_openssl_ciphersuites() ;; esac - S_CIPHERS="$S_CIPHERS $CIPHERS" - - T=$(./scripts/translate_ciphers.py m $CIPHERS) - check_translation $? "$T" - M_CIPHERS="$M_CIPHERS $T" - - T=$(./scripts/translate_ciphers.py o $CIPHERS) - check_translation $? "$T" - O_CIPHERS="$O_CIPHERS $T" + O_CIPHERS="$O_CIPHERS $CIPHERS" + M_CIPHERS="$M_CIPHERS $CIPHERS" } # Ciphersuites usable only with Mbed TLS and GnuTLS -# A list of ciphersuites in the Mbed TLS convention is compiled and -# appended to the list of Mbed TLS ciphersuites $M_CIPHERS. The same list -# is translated to the GnuTLS naming convention and appended to the list of -# GnuTLS ciphersuites $G_CIPHERS. +# A list of ciphersuites in the standard naming convention is appended +# to the list of Mbed TLS ciphersuites $M_CIPHERS and +# to the list of GnuTLS ciphersuites $G_CIPHERS respectively. +# Based on client's naming convention, all ciphersuite names will be +# translated into another naming format before sent to the client. add_gnutls_ciphersuites() { CIPHERS="" @@ -496,19 +480,12 @@ add_gnutls_ciphersuites() ;; esac - S_CIPHERS="$S_CIPHERS $CIPHERS" - - T=$(./scripts/translate_ciphers.py m $CIPHERS) - check_translation $? "$T" - M_CIPHERS="$M_CIPHERS $T" - - T=$(./scripts/translate_ciphers.py g $CIPHERS) - check_translation $? "$T" - G_CIPHERS="$G_CIPHERS $T" + G_CIPHERS="$G_CIPHERS $CIPHERS" + M_CIPHERS="$M_CIPHERS $CIPHERS" } # Ciphersuites usable only with Mbed TLS (not currently supported by another -# peer usable in this script). This provide only very rudimentaty testing, as +# peer usable in this script). This provides only very rudimentaty testing, as # this is not interop testing, but it's better than nothing. add_mbedtls_ciphersuites() { @@ -561,12 +538,6 @@ add_mbedtls_ciphersuites() " ;; esac - - S_CIPHERS="$S_CIPHERS $CIPHERS" - - T=$(./scripts/translate_ciphers.py m $CIPHERS) - check_translation $? "$T" - M_CIPHERS="$M_CIPHERS $T" } setup_arguments() @@ -829,6 +800,10 @@ run_client() { LEN=$(( 72 - `echo "$TITLE" | wc -c` )) for i in `seq 1 $LEN`; do printf '.'; done; printf ' ' + # Translate ciphersuite names based on client's naming convention + t_cipher=$(./scripts/translate_ciphers.py $3 $2) + check_translation $? "$t_cipher" + # should we skip? if [ "X$SKIP_NEXT" = "XYES" ]; then SKIP_NEXT="NO" @@ -840,7 +815,7 @@ run_client() { # run the command and interpret result case $1 in [Oo]pen*) - CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $2" + CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $t_cipher" log "$CLIENT_CMD" echo "$CLIENT_CMD" > $CLI_OUT printf 'GET HTTP/1.0\r\n\r\n' | $CLIENT_CMD >> $CLI_OUT 2>&1 & @@ -865,7 +840,7 @@ run_client() { else G_HOST="localhost" fi - CLIENT_CMD="$GNUTLS_CLI $G_CLIENT_ARGS --priority $G_PRIO_MODE:$2 $G_HOST" + CLIENT_CMD="$GNUTLS_CLI $G_CLIENT_ARGS --priority $G_PRIO_MODE:$t_cipher $G_HOST" log "$CLIENT_CMD" echo "$CLIENT_CMD" > $CLI_OUT printf 'GET HTTP/1.0\r\n\r\n' | $CLIENT_CMD >> $CLI_OUT 2>&1 & @@ -887,7 +862,7 @@ run_client() { ;; mbed*) - CLIENT_CMD="$M_CLI $M_CLIENT_ARGS force_ciphersuite=$2" + CLIENT_CMD="$M_CLI $M_CLIENT_ARGS force_ciphersuite=$t_cipher" if [ "$MEMCHECK" -gt 0 ]; then CLIENT_CMD="valgrind --leak-check=full $CLIENT_CMD" fi @@ -1052,7 +1027,7 @@ for VERIFY in $VERIFIES; do start_server "OpenSSL" for i in $M_CIPHERS; do check_openssl_server_bug $i - run_client mbedTLS $i + run_client mbedTLS $i m done stop_server fi @@ -1060,7 +1035,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$O_CIPHERS" ]; then start_server "mbedTLS" for i in $O_CIPHERS; do - run_client OpenSSL $i + run_client OpenSSL $i o done stop_server fi @@ -1077,7 +1052,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "GnuTLS" for i in $M_CIPHERS; do - run_client mbedTLS $i + run_client mbedTLS $i m done stop_server fi @@ -1085,7 +1060,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$G_CIPHERS" ]; then start_server "mbedTLS" for i in $G_CIPHERS; do - run_client GnuTLS $i + run_client GnuTLS $i g done stop_server fi @@ -1104,7 +1079,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "mbedTLS" for i in $M_CIPHERS; do - run_client mbedTLS $i + run_client mbedTLS $i m done stop_server fi From 57ae192b13bf478922bfc0bf26c1a4012171ac20 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Tue, 17 Jan 2023 10:07:22 +0800 Subject: [PATCH 1441/1574] Fix failure in Travis CI Signed-off-by: Yanray Wang --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index eaf817a7b..54df77606 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,7 @@ jobs: - tests/scripts/test_psa_constant_names.py - tests/ssl-opt.sh # Modern OpenSSL does not support fixed ECDH or null ciphers. - - tests/compat.sh -p OpenSSL -e 'NULL\|ECDH-' + - tests/compat.sh -p OpenSSL -e 'NULL\|ECDH_' - tests/scripts/travis-log-failure.sh # GnuTLS supports CAMELLIA but compat.sh doesn't properly enable it. - tests/compat.sh -p GnuTLS -e 'CAMELLIA' From 9684d4dc58a413d46caf9190edec2497130f71d0 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 16 Jan 2023 16:50:11 +0100 Subject: [PATCH 1442/1574] Add quasi-reduction function for ecp Signed-off-by: Gabor Mezei --- library/ecp.c | 16 ++++++++++++++++ library/ecp_internal.h | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 library/ecp_internal.h diff --git a/library/ecp.c b/library/ecp.c index d9d5425ed..835bfa3bc 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -79,6 +79,8 @@ #include "bn_mul.h" #include "ecp_invasive.h" +#include "ecp_internal.h" +#include "bignum_core.h" #include @@ -1029,6 +1031,20 @@ cleanup: return ret; } +int mbedtls_ecp_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N) +{ + if (N->limbs == 0) { + return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; + } + + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); + + (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); + + return 0; +} + /* * Fast mod-p functions expect their argument to be in the 0..p^2 range. * diff --git a/library/ecp_internal.h b/library/ecp_internal.h new file mode 100644 index 000000000..07bf3861a --- /dev/null +++ b/library/ecp_internal.h @@ -0,0 +1,34 @@ +/** + * \file ecp_internal.h + * + * \brief Function declarations for internal functions of elliptic curve + * point arithmetic. + */ +/** + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBEDTLS_ECP_INTERNAL_H +#define MBEDTLS_ECP_INTERNAL_H + +#include "common.h" +#include "mbedtls/bignum.h" +#include "bignum_mod.h" + +int mbedtls_ecp_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N); + +#endif /* MBEDTLS_ECP_INTERNAL_H */ From 65fc9f78d49caa69c57c4f2074a4067937028599 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 16 Jan 2023 16:51:12 +0100 Subject: [PATCH 1443/1574] Add tests for ecp quasi-reduction Signed-off-by: Gabor Mezei --- tests/suites/test_suite_ecp.data | 2 + tests/suites/test_suite_ecp.function | 93 +++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 2 deletions(-) diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index 93112002e..bbc8ea242 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -1039,3 +1039,5 @@ ECP check order for CURVE448 depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED ecp_check_order:MBEDTLS_ECP_DP_CURVE448:"3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3" +ECP quasi-reduction: uninitialized modulus +ecp_quasi_reduction_neg:"11":"12":"1" diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 394253de5..f5b581158 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -2,8 +2,7 @@ #include "mbedtls/ecp.h" #include "mbedtls/ecdsa.h" #include "mbedtls/ecdh.h" - -#include "ecp_invasive.h" +#include "ecp_internal.h" #if defined(MBEDTLS_TEST_HOOKS) && \ (defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ @@ -1295,3 +1294,93 @@ exit: mbedtls_mpi_free(&expected_n); } /* END_CASE */ + +/* BEGIN_CASE */ +void ecp_quasi_reduction(char *input_N, + char *input_A, + char *result) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *res = NULL; + size_t limbs_A; + size_t limbs_N; + size_t limbs_res; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init(&m); + + TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); + + size_t limbs = limbs_N; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + TEST_EQUAL(limbs_A, limbs); + TEST_EQUAL(limbs_res, limbs); + + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); + + TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &m), 0); + ASSERT_COMPARE(A, bytes, res, bytes); + +exit: + mbedtls_free(A); + mbedtls_free(res); + + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void ecp_quasi_reduction_neg(char *input_N, + char *input_A, + char *result) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *res = NULL; + size_t limbs_A; + size_t limbs_N; + size_t limbs_res; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init(&m); + + mbedtls_mpi_mod_modulus fake_m; + mbedtls_mpi_mod_modulus_init(&fake_m); + + TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); + + size_t limbs = limbs_N; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + TEST_EQUAL(limbs_A, limbs); + TEST_EQUAL(limbs_res, limbs); + + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); + + TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &m), 0); + ASSERT_COMPARE(A, bytes, res, bytes); + + /* Check when m is not initialized */ + TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &fake_m), + MBEDTLS_ERR_ECP_BAD_INPUT_DATA); + +exit: + mbedtls_free(A); + mbedtls_free(res); + + mbedtls_mpi_mod_modulus_free(&fake_m); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); +} +/* END_CASE */ From 308132f641997391968d3f2d3f593080e0fbfbe9 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 16 Jan 2023 16:53:29 +0100 Subject: [PATCH 1444/1574] Add test generation support for the ecp module Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/ecp.py | 26 ++++++++++ scripts/mbedtls_dev/ecp_common.py | 23 +++++++++ tests/CMakeLists.txt | 16 ++++++ tests/Makefile | 22 ++++++++- tests/scripts/check-generated-files.sh | 1 + tests/scripts/generate_ecp_tests.py | 68 ++++++++++++++++++++++++++ 6 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 scripts/mbedtls_dev/ecp.py create mode 100644 scripts/mbedtls_dev/ecp_common.py create mode 100755 tests/scripts/generate_ecp_tests.py diff --git a/scripts/mbedtls_dev/ecp.py b/scripts/mbedtls_dev/ecp.py new file mode 100644 index 000000000..59a0f31d2 --- /dev/null +++ b/scripts/mbedtls_dev/ecp.py @@ -0,0 +1,26 @@ +"""Framework classes for generation of ecp test cases.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from typing import List + +from . import test_case +from . import test_data_generation +from . import ecp_common + +class EcpTarget(test_data_generation.BaseTarget): + #pylint: disable=abstract-method, too-few-public-methods + """Target for ecp test case generation.""" + target_basename = 'test_suite_ecp.generated' diff --git a/scripts/mbedtls_dev/ecp_common.py b/scripts/mbedtls_dev/ecp_common.py new file mode 100644 index 000000000..1f2ba0aae --- /dev/null +++ b/scripts/mbedtls_dev/ecp_common.py @@ -0,0 +1,23 @@ +"""Common features for ecp in test generation framework.""" +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from . import test_case +from . import test_data_generation +from . import bignum_common + +class EcpOperationCommon(bignum_common.ModOperationCommon): + """Target for ecp test case generation.""" + pass \ No newline at end of file diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 4a7de820a..8276bba65 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -29,6 +29,18 @@ execute_process( string(REGEX REPLACE "[^;]*/" "" base_bignum_generated_data_files "${base_bignum_generated_data_files}") +execute_process( + COMMAND + ${MBEDTLS_PYTHON_EXECUTABLE} + ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_ecp_tests.py + --list-for-cmake + WORKING_DIRECTORY + ${CMAKE_CURRENT_SOURCE_DIR}/.. + OUTPUT_VARIABLE + base_ecp_generated_data_files) +string(REGEX REPLACE "[^;]*/" "" + base_ecp_generated_data_files "${base_ecp_generated_data_files}") + execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} @@ -52,6 +64,9 @@ set(psa_generated_data_files "") foreach(file ${base_bignum_generated_data_files}) list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() +foreach(file ${base_ecp_generated_data_files}) + list(APPEND ecp_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) +endforeach() foreach(file ${base_psa_generated_data_files}) list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() @@ -72,6 +87,7 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod_raw.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod.py + ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/ecp.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index f0373381e..fa5ec4926 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -73,6 +73,13 @@ GENERATED_BIGNUM_DATA_FILES := $(patsubst tests/%,%,$(shell \ ifeq ($(GENERATED_BIGNUM_DATA_FILES),FAILED) $(error "$(PYTHON) scripts/generate_bignum_tests.py --list" failed) endif +GENERATED_ECP_DATA_FILES := $(patsubst tests/%,%,$(shell \ + $(PYTHON) scripts/generate_ecp_tests.py --list || \ + echo FAILED \ +)) +ifeq ($(GENERATED_ECP_DATA_FILES),FAILED) +$(error "$(PYTHON) scripts/generate_ecp_tests.py --list" failed) +endif GENERATED_PSA_DATA_FILES := $(patsubst tests/%,%,$(shell \ $(PYTHON) scripts/generate_psa_tests.py --list || \ echo FAILED \ @@ -80,7 +87,7 @@ GENERATED_PSA_DATA_FILES := $(patsubst tests/%,%,$(shell \ ifeq ($(GENERATED_PSA_DATA_FILES),FAILED) $(error "$(PYTHON) scripts/generate_psa_tests.py --list" failed) endif -GENERATED_FILES := $(GENERATED_PSA_DATA_FILES) $(GENERATED_BIGNUM_DATA_FILES) +GENERATED_FILES := $(GENERATED_PSA_DATA_FILES) $(GENERATED_ECP_DATA_FILES) $(GENERATED_BIGNUM_DATA_FILES) generated_files: $(GENERATED_FILES) # generate_bignum_tests.py and generate_psa_tests.py spend more time analyzing @@ -89,7 +96,7 @@ generated_files: $(GENERATED_FILES) # It's rare not to want all the outputs. So always generate all of its outputs. # Use an intermediate phony dependency so that parallel builds don't run # a separate instance of the recipe for each output file. -.SECONDARY: generated_bignum_test_data generated_psa_test_data +.SECONDARY: generated_bignum_test_data generated_ecp_test_data generated_psa_test_data $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py @@ -102,6 +109,17 @@ generated_bignum_test_data: echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" $(PYTHON) scripts/generate_bignum_tests.py +$(GENERATED_ECP_DATA_FILES): generated_ecp_test_data +generated_ecp_test_data: scripts/generate_ecp_tests.py +generated_ecp_test_data: ../scripts/mbedtls_dev/bignum_common.py +generated_ecp_test_data: ../scripts/mbedtls_dev/ecp_common.py +generated_ecp_test_data: ../scripts/mbedtls_dev/ecp.py +generated_ecp_test_data: ../scripts/mbedtls_dev/test_case.py +generated_ecp_test_data: ../scripts/mbedtls_dev/test_data_generation.py +generated_ecp_test_data: + echo " Gen $(GENERATED_ECP_DATA_FILES)" + $(PYTHON) scripts/generate_ecp_tests.py + $(GENERATED_PSA_DATA_FILES): generated_psa_test_data generated_psa_test_data: scripts/generate_psa_tests.py generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 2bb9fea7c..4d6f93079 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -137,4 +137,5 @@ check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated. check scripts/generate_visualc_files.pl visualc/VS2013 check scripts/generate_psa_constants.py programs/psa/psa_constant_names_generated.c check tests/scripts/generate_bignum_tests.py $(tests/scripts/generate_bignum_tests.py --list) +check tests/scripts/generate_ecp_tests.py $(tests/scripts/generate_ecp_tests.py --list) check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list) diff --git a/tests/scripts/generate_ecp_tests.py b/tests/scripts/generate_ecp_tests.py new file mode 100755 index 000000000..89186c131 --- /dev/null +++ b/tests/scripts/generate_ecp_tests.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +"""Generate test data for ecp functions. + +With no arguments, generate all test data. With non-option arguments, +generate only the specified files. + +Class structure: + +Child classes of test_data_generation.BaseTarget (file targets) represent an output +file. These indicate where test cases will be written to, for all subclasses of +this target. Multiple file targets should not reuse a `target_basename`. + +Each subclass derived from a file target can either be: + - A concrete class, representing a test function, which generates test cases. + - An abstract class containing shared methods and attributes, not associated + with a test function. + +Both concrete and abstract subclasses can be derived from, to implement +additional test cases (see BignumCmp and BignumCmpAbs for examples of deriving +from abstract and concrete classes). + + +Adding test case generation for a function: + +A subclass representing the test function should be added, deriving from a +file target such as BignumTarget. This test class must set/implement the +following: + - test_function: the function name from the associated .function file. + - test_name: a descriptive name or brief summary to refer to the test + function. + - arguments(): a method to generate the list of arguments required for the + test_function. + - generate_function_tests(): a method to generate TestCases for the function. + This should create instances of the class with required input data, and + call `.create_test_case()` to yield the TestCase. + +Additional details and other attributes/methods are given in the documentation +of BaseTarget in test_data_generation.py. +""" + +# Copyright The Mbed TLS Contributors +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys + +import scripts_path # pylint: disable=unused-import +from mbedtls_dev import test_data_generation +from mbedtls_dev import ecp_common +# Import modules containing additional test classes +# Test function classes in these modules will be registered by +# the framework +from mbedtls_dev import ecp # pylint: disable=unused-import + +if __name__ == '__main__': + # Use the section of the docstring relevant to the CLI as description + test_data_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) From 3c6f89b46acc705dd6cfffdf34ee270365b4bcc0 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 16 Jan 2023 16:54:48 +0100 Subject: [PATCH 1445/1574] Add generated test for ecp quasi-reduction Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/ecp.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/scripts/mbedtls_dev/ecp.py b/scripts/mbedtls_dev/ecp.py index 59a0f31d2..713dd96df 100644 --- a/scripts/mbedtls_dev/ecp.py +++ b/scripts/mbedtls_dev/ecp.py @@ -24,3 +24,30 @@ class EcpTarget(test_data_generation.BaseTarget): #pylint: disable=abstract-method, too-few-public-methods """Target for ecp test case generation.""" target_basename = 'test_suite_ecp.generated' + +class EcpQuasiReduction(ecp_common.EcpOperationCommon, + EcpTarget): + """Test cases for ecp quasi_reduction().""" + symbol = "-" + test_function = "ecp_quasi_reduction" + test_name = "mbedtls_ecp_quasi_reduction" + input_style = "fixed" + arity = 1 + + # Extend the default values with n < x < 2n + input_values = ecp_common.EcpOperationCommon.input_values + [ + "73", + "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", + ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" + "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" + "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" + "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") + ] # type: List[str] + + def result(self) -> List[str]: + result = self.int_a % self.int_n + return [self.format_result(result)] + + @property + def is_valid(self) -> bool: + return bool(self.int_a < 2 * self.int_n) From c83f792c18163346f9ffbed892a87c6368698013 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 17 Jan 2023 13:28:06 +0100 Subject: [PATCH 1446/1574] Add documentation Signed-off-by: Gabor Mezei --- library/ecp_internal.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/library/ecp_internal.h b/library/ecp_internal.h index 07bf3861a..b028225e6 100644 --- a/library/ecp_internal.h +++ b/library/ecp_internal.h @@ -28,6 +28,18 @@ #include "mbedtls/bignum.h" #include "bignum_mod.h" +/** Convert an MPI to its canonical representative. + * + * \note Currently handles the case when `N->int_rep` is + * MBEDTLS_MPI_MOD_REP_MONTGOMERY. + * + * \param[in,out] X The address of the MPI to be converted. Must have the + * same number of limbs as \p N. + * \param[in] N The address of the modulus. + * + * \return \c 0 if successful. + * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p N is invalid. + */ int mbedtls_ecp_quasi_reduction(mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *N); From aec3eea0645bbebdc4395152b899bab8e0f1222e Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 17 Jan 2023 16:34:24 +0100 Subject: [PATCH 1447/1574] Fix pylint issues Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/ecp.py | 15 +++++++-------- scripts/mbedtls_dev/ecp_common.py | 4 +--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/scripts/mbedtls_dev/ecp.py b/scripts/mbedtls_dev/ecp.py index 713dd96df..f9d6af51d 100644 --- a/scripts/mbedtls_dev/ecp.py +++ b/scripts/mbedtls_dev/ecp.py @@ -16,7 +16,6 @@ from typing import List -from . import test_case from . import test_data_generation from . import ecp_common @@ -36,13 +35,13 @@ class EcpQuasiReduction(ecp_common.EcpOperationCommon, # Extend the default values with n < x < 2n input_values = ecp_common.EcpOperationCommon.input_values + [ - "73", - "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", - ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" - "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" - "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" - "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") - ] # type: List[str] + "73", + "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", + ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" + "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" + "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" + "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") + ] # type: List[str] def result(self) -> List[str]: result = self.int_a % self.int_n diff --git a/scripts/mbedtls_dev/ecp_common.py b/scripts/mbedtls_dev/ecp_common.py index 1f2ba0aae..5b10a5dfc 100644 --- a/scripts/mbedtls_dev/ecp_common.py +++ b/scripts/mbedtls_dev/ecp_common.py @@ -14,10 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from . import test_case -from . import test_data_generation from . import bignum_common class EcpOperationCommon(bignum_common.ModOperationCommon): """Target for ecp test case generation.""" - pass \ No newline at end of file + pass From a38db2a55bd8383d78ef20d3a2a2190c8563984e Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 17 Jan 2023 16:34:49 +0100 Subject: [PATCH 1448/1574] Add missing inlcude Signed-off-by: Gabor Mezei --- tests/suites/test_suite_ecp.function | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index f5b581158..eb1f37554 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -2,6 +2,7 @@ #include "mbedtls/ecp.h" #include "mbedtls/ecdsa.h" #include "mbedtls/ecdh.h" +#include "ecp_invasive.h" #include "ecp_internal.h" #if defined(MBEDTLS_TEST_HOOKS) && \ From 1ff7336e2c992c237ae21d7ee688676c705d2bf8 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 2 Nov 2022 04:50:16 -0400 Subject: [PATCH 1449/1574] depends.py: enable key exchange tests Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index d4fe4fdc1..5714f9a6a 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -421,9 +421,7 @@ class DomainData: '|MBEDTLS_SHA384_'), # Key exchange types. Only build the library and the sample # programs. - 'kex': ExclusiveDomain(key_exchange_symbols, - [build_command + ['lib'], - build_command + ['-C', 'programs']]), + 'kex': ExclusiveDomain(key_exchange_symbols, build_and_test), 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', 'MBEDTLS_ECP_C', 'MBEDTLS_PKCS1_V21', From 714ae6551e703471c09c327e6e72336af9732cb4 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Wed, 2 Nov 2022 19:07:19 -0400 Subject: [PATCH 1450/1574] Add missing key exchange requirements to test_suite_ssl Some of the tests use mbedtls_test_cli_key_rsa_der and mbedtls_test_cli_crt_rsa_der, and these can be used with specific ciphersuites. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 65 +++++++++++++++------------- tests/suites/test_suite_ssl.function | 7 ++- 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index 3059e7fca..b6dbdba4e 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -114,58 +114,59 @@ Test moving clients handshake to state: SERVER_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO:1 Test moving clients handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving clients handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving clients handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving clients handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving clients handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving clients handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving clients handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving clients handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving clients handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving clients handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving clients handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving clients handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_CLIENT:MBEDTLS_SSL_HANDSHAKE_OVER:1 Test moving servers handshake to state: HELLO_REQUEST @@ -175,61 +176,63 @@ Test moving servers handshake to state: CLIENT_HELLO move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_HELLO:1 Test moving servers handshake to state: SERVER_HELLO +depends_on:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO:1 Test moving servers handshake to state: SERVER_CERTIFICATE +depends_on:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CERTIFICATE:1 Test moving servers handshake to state: SERVER_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_REQUEST -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_REQUEST:1 Test moving servers handshake to state: SERVER_HELLO_DONE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_HELLO_DONE:1 Test moving servers handshake to state: CLIENT_CERTIFICATE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE:1 Test moving servers handshake to state: CLIENT_KEY_EXCHANGE -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_KEY_EXCHANGE:1 Test moving servers handshake to state: CERTIFICATE_VERIFY -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CERTIFICATE_VERIFY:1 Test moving servers handshake to state: CLIENT_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: CLIENT_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_FINISHED:1 Test moving servers handshake to state: SERVER_CHANGE_CIPHER_SPEC -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC:1 Test moving servers handshake to state: SERVER_FINISHED -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_SERVER_FINISHED:1 Test moving servers handshake to state: FLUSH_BUFFERS -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_FLUSH_BUFFERS:1 Test moving servers handshake to state: HANDSHAKE_WRAPUP -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_WRAPUP:1 Test moving servers handshake to state: HANDSHAKE_OVER -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_HANDSHAKE_OVER:1 Negative test moving clients ssl to state: VERIFY_REQUEST_SENT @@ -257,7 +260,7 @@ depends_on:MBEDTLS_SSL_PROTO_TLS1_3:!MBEDTLS_SSL_PROTO_TLS1_2 move_handshake_to_state:MBEDTLS_SSL_IS_SERVER:MBEDTLS_SSL_CLIENT_CERTIFICATE_VERIFY:1 Handshake, tls1_2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY handshake_version:0:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, tls1_3 @@ -289,7 +292,7 @@ depends_on:MBEDTLS_AES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SE handshake_psk_cipher:"TLS-PSK-WITH-AES-128-CBC-SHA":MBEDTLS_PK_RSA:"abc123":0 DTLS Handshake, tls1_2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_PROTO_DTLS +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY handshake_version:1:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2:MBEDTLS_SSL_VERSION_TLS1_2 DTLS Handshake, ECDHE-RSA-WITH-AES-256-GCM-SHA384 @@ -329,7 +332,7 @@ depends_on:MBEDTLS_SSL_PROTO_DTLS handshake_fragmentation:MBEDTLS_SSL_MAX_FRAG_LEN_1024:0:1 Handshake min/max version check, all -> 1.2 -depends_on:MBEDTLS_SSL_PROTO_TLS1_2 +depends_on:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY handshake_version:0:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_UNKNOWN:MBEDTLS_SSL_VERSION_TLS1_2 Handshake, select RSA-WITH-AES-256-CBC-SHA256, non-opaque @@ -3509,11 +3512,11 @@ Sanity test cid functions cid_sanity: Raw key agreement: nominal -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED raw_key_agreement_fail:0 Raw key agreement: bad server key -depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED raw_key_agreement_fail:1 Force a bad session id length diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 15ec5bea1..1522cfcb7 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -17,6 +17,11 @@ #include #include +#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \ + defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) +#define MBEDTLS_CAN_HANDLE_RSA_TEST_KEY +#endif enum { #define MBEDTLS_SSL_TLS1_3_LABEL(name, string) \ tls13_label_ ## name, @@ -5129,7 +5134,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void app_data_tls(int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments) From af67d2c1cf8ff28f9c755b76600daf3eb68d0b62 Mon Sep 17 00:00:00 2001 From: "Aaron M. Ucko" Date: Tue, 17 Jan 2023 11:52:22 -0500 Subject: [PATCH 1451/1574] mbedtls_mpi_sub_abs: Skip memcpy when redundant (#6701). In some contexts, the output pointer may equal the first input pointer, in which case copying is not only superfluous but results in "Source and destination overlap in memcpy" errors from Valgrind (as I observed in the context of ecp_double_jac) and a diagnostic message from TrustInSoft Analyzer (as Pascal Cuoq reported in the context of other ECP functions called by cert-app with a suitable certificate). Signed-off-by: Aaron M. Ucko --- ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt | 5 +++++ library/bignum.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt diff --git a/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt b/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt new file mode 100644 index 000000000..564f9ac1b --- /dev/null +++ b/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt @@ -0,0 +1,5 @@ +Bugfix + * Fix mbedtls_mpi_sub_abs() to account for the possibility that the output + pointer could equal the first input pointer and if so to skip a memcpy() + call that would be redundant. Reported by Pascal Cuoq using TrustInSoft + Analyzer in #6701; observed independently by Aaron Ucko under Valgrind. diff --git a/library/bignum.c b/library/bignum.c index 9bc1c2d43..41b3a2691 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -1009,7 +1009,7 @@ int mbedtls_mpi_sub_abs(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi /* Set the high limbs of X to match A. Don't touch the lower limbs * because X might be aliased to B, and we must not overwrite the * significant digits of B. */ - if (A->n > n) { + if (A->n > n && A != X) { memcpy(X->p + n, A->p + n, (A->n - n) * ciL); } if (X->n > A->n) { From 7e14c66c4dc9f49f64ae9680a6b30350e9dc98aa Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 18 Jan 2023 10:56:13 +0100 Subject: [PATCH 1452/1574] Fix lint issues Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/ecp_common.py | 1 + tests/scripts/generate_ecp_tests.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/ecp_common.py b/scripts/mbedtls_dev/ecp_common.py index 5b10a5dfc..311b9121c 100644 --- a/scripts/mbedtls_dev/ecp_common.py +++ b/scripts/mbedtls_dev/ecp_common.py @@ -17,5 +17,6 @@ from . import bignum_common class EcpOperationCommon(bignum_common.ModOperationCommon): + #pylint: disable=abstract-method """Target for ecp test case generation.""" pass diff --git a/tests/scripts/generate_ecp_tests.py b/tests/scripts/generate_ecp_tests.py index 89186c131..73434d970 100755 --- a/tests/scripts/generate_ecp_tests.py +++ b/tests/scripts/generate_ecp_tests.py @@ -57,7 +57,7 @@ import sys import scripts_path # pylint: disable=unused-import from mbedtls_dev import test_data_generation -from mbedtls_dev import ecp_common + # Import modules containing additional test classes # Test function classes in these modules will be registered by # the framework From 0e9e4422abc2853e5af4a54384a29aac61037fc1 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 22:14:28 +0100 Subject: [PATCH 1453/1574] NotSupported is specifically about key types Rename NotSupported to KeyTypeNotSupported, because it's only about testing key management. For algorithms, not-supported is handled by OpFail. Signed-off-by: Gilles Peskine --- tests/scripts/generate_psa_tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index b27104843..3cb3ed98e 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -151,8 +151,8 @@ def test_case_for_key_type_not_supported( tc.set_arguments([key_type] + list(args)) return tc -class NotSupported: - """Generate test cases for when something is not supported.""" +class KeyTypeNotSupported: + """Generate test cases for when a key type is not supported.""" def __init__(self, info: Information) -> None: self.constructors = info.constructors @@ -900,7 +900,7 @@ class PSATestGenerator(test_data_generation.TestGenerator): 'test_suite_psa_crypto_generate_key.generated': lambda info: KeyGenerate(info).test_cases_for_key_generation(), 'test_suite_psa_crypto_not_supported.generated': - lambda info: NotSupported(info).test_cases_for_not_supported(), + lambda info: KeyTypeNotSupported(info).test_cases_for_not_supported(), 'test_suite_psa_crypto_op_fail.generated': lambda info: OpFail(info).all_test_cases(), 'test_suite_psa_crypto_storage_format.current': From ecaa7ca507c7498ccc8b1966ff5e8d7d0f671a87 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 22:16:00 +0100 Subject: [PATCH 1454/1574] Add missing supported algorithm to psa/crypto_config.h The following shell command lists features that seem to be supported, but are missing from include/psa/crypto_config.h: ``` for x in $(grep -ho -Ew '(PSA_WANT|MBEDTLS_PSA_BUILTIN)_\w+_\w+' library/psa_crypto*.c | sed 's/^MBEDTLS_PSA_BUILTIN/PSA_WANT/' | sort -u); do grep -qw $x include/psa/crypto_config.h || echo $x; done ``` This looks for PSA_WANT__ macros that gate a part of the library, as well as their MBEDTLS_PSA_BUILTIN__ counterparts. This is not necessarily a complete list of identifiers that must appear in the config file, since a few features are not gated. Signed-off-by: Gilles Peskine --- ChangeLog.d/crypto_config_ccm_star.txt | 3 +++ include/psa/crypto_config.h | 1 + 2 files changed, 4 insertions(+) create mode 100644 ChangeLog.d/crypto_config_ccm_star.txt diff --git a/ChangeLog.d/crypto_config_ccm_star.txt b/ChangeLog.d/crypto_config_ccm_star.txt new file mode 100644 index 000000000..947014ae3 --- /dev/null +++ b/ChangeLog.d/crypto_config_ccm_star.txt @@ -0,0 +1,3 @@ +Bugfix + * List PSA_WANT_ALG_CCM_STAR_NO_TAG in psa/crypto_config.h so that it can + be toggled with config.py. diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 5ab4fdef3..7399a6220 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -57,6 +57,7 @@ #define PSA_WANT_ALG_CBC_NO_PADDING 1 #define PSA_WANT_ALG_CBC_PKCS7 1 #define PSA_WANT_ALG_CCM 1 +#define PSA_WANT_ALG_CCM_STAR_NO_TAG 1 #define PSA_WANT_ALG_CMAC 1 #define PSA_WANT_ALG_CFB 1 #define PSA_WANT_ALG_CHACHA20_POLY1305 1 From 72f41562f2125513aa70ffcc1ab458342d8e517e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 22:41:34 +0100 Subject: [PATCH 1455/1574] Refactoring: new method Algorithm.is_valid_for_operation No intended behavior change. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/crypto_knowledge.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index 1a033210b..a56c8638e 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -214,9 +214,7 @@ class KeyType: This function does not currently handle key derivation or PAKE. """ #pylint: disable=too-many-branches,too-many-return-statements - if alg.is_wildcard: - return False - if alg.is_invalid_truncation(): + if not alg.is_valid_for_operation(): return False if self.head == 'HMAC' and alg.head == 'HMAC': return True @@ -498,6 +496,19 @@ class Algorithm: return True return False + def is_valid_for_operation(self) -> bool: + """Whether this algorithm construction is valid for an operation. + + This function assumes that the algorithm is constructed in a + "grammatically" correct way, and only rejects semantically invalid + combinations. + """ + if self.is_wildcard: + return False + if self.is_invalid_truncation(): + return False + return True + def can_do(self, category: AlgorithmCategory) -> bool: """Whether this algorithm can perform operations in the given category. """ From cafda872f3ace6620bd926e8ced2fe81cd905d3e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 23:03:19 +0100 Subject: [PATCH 1456/1574] Fix documentation Signed-off-by: Gilles Peskine --- tests/scripts/generate_psa_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 3cb3ed98e..171292ba7 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -522,7 +522,7 @@ class StorageFormat: key_type: psa_storage.Expr, bits: int, alg: psa_storage.Expr ) -> bool: - """Whether to the given key with the given algorithm. + """Whether to exercise the given key with the given algorithm. Normally only the type and algorithm matter for compatibility, and this is handled in crypto_knowledge.KeyType.can_do(). This function From bba263054925b0ac1c8b18e84a905daf0b088e95 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 23:25:17 +0100 Subject: [PATCH 1457/1574] Add ECJPAKE secret input types to psa/crypto_config.h Add PSA_WANT_KEY_TYPE_PASSWORD and PSA_WANT_KEY_TYPE_PASSWORD_HASH to psa/crypto_config.h, since the types PSA_KEY_TYPE_PASSWORD and PSA_KEY_TYPE_PASSWORD_HASH are used by ECJPAKE. The two key types are always enabled, like PSA_KEY_TYPE_DERIVE. Add the key types to the metadata test suite as well. Signed-off-by: Gilles Peskine --- include/mbedtls/config_psa.h | 2 ++ include/psa/crypto_config.h | 2 ++ tests/scripts/generate_psa_tests.py | 2 ++ tests/suites/test_suite_psa_crypto_metadata.data | 6 ++++++ 4 files changed, 12 insertions(+) diff --git a/include/mbedtls/config_psa.h b/include/mbedtls/config_psa.h index 09bc32c73..48b2d3209 100644 --- a/include/mbedtls/config_psa.h +++ b/include/mbedtls/config_psa.h @@ -843,6 +843,8 @@ extern "C" { /* These features are always enabled. */ #define PSA_WANT_KEY_TYPE_DERIVE 1 +#define PSA_WANT_KEY_TYPE_PASSWORD 1 +#define PSA_WANT_KEY_TYPE_PASSWORD_HASH 1 #define PSA_WANT_KEY_TYPE_RAW_DATA 1 #ifdef __cplusplus diff --git a/include/psa/crypto_config.h b/include/psa/crypto_config.h index 7399a6220..e68fac8b4 100644 --- a/include/psa/crypto_config.h +++ b/include/psa/crypto_config.h @@ -116,6 +116,8 @@ #define PSA_WANT_ECC_SECP_R1_521 1 #define PSA_WANT_KEY_TYPE_DERIVE 1 +#define PSA_WANT_KEY_TYPE_PASSWORD 1 +#define PSA_WANT_KEY_TYPE_PASSWORD_HASH 1 #define PSA_WANT_KEY_TYPE_HMAC 1 #define PSA_WANT_KEY_TYPE_AES 1 #define PSA_WANT_KEY_TYPE_ARIA 1 diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index 171292ba7..d503aa846 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -159,6 +159,8 @@ class KeyTypeNotSupported: ALWAYS_SUPPORTED = frozenset([ 'PSA_KEY_TYPE_DERIVE', + 'PSA_KEY_TYPE_PASSWORD', + 'PSA_KEY_TYPE_PASSWORD_HASH', 'PSA_KEY_TYPE_RAW_DATA', 'PSA_KEY_TYPE_HMAC' ]) diff --git a/tests/suites/test_suite_psa_crypto_metadata.data b/tests/suites/test_suite_psa_crypto_metadata.data index bf5f04e4f..aba512741 100644 --- a/tests/suites/test_suite_psa_crypto_metadata.data +++ b/tests/suites/test_suite_psa_crypto_metadata.data @@ -339,6 +339,12 @@ key_type:PSA_KEY_TYPE_HMAC:KEY_TYPE_IS_UNSTRUCTURED Key type: secret for key derivation key_type:PSA_KEY_TYPE_DERIVE:KEY_TYPE_IS_UNSTRUCTURED +Key type: password +key_type:PSA_KEY_TYPE_PASSWORD:KEY_TYPE_IS_UNSTRUCTURED + +Key type: password hash +key_type:PSA_KEY_TYPE_PASSWORD_HASH:KEY_TYPE_IS_UNSTRUCTURED + Block cipher key type: AES depends_on:PSA_WANT_KEY_TYPE_AES block_cipher_key_type:PSA_KEY_TYPE_AES:16 From 763ffdd2a6fc96d41c0865a3c53ca8f50b829dc8 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 23:27:38 +0100 Subject: [PATCH 1458/1574] Add metadata test case for PSA_ALG_CCM_STAR_NO_TAG The following shell command (requiring GNU grep) looks for algorithms and key types, as well as IS and GET macros, that lack metadata tests: ``` for x in $(grep -Pho '(?<=^#define )PSA_(ALG|KEY_TYPE)_(?!CATEGORY_|NONE\b|\w+_(BASE|FLAG|MASK|CASE))\w+' include/psa/crypto_values.h include/psa/crypto_extra.h); do grep -qw $x tests/suites/test_suite_psa_crypto_metadata.* || echo $x; done ``` This may have false negatives: it only checks that the constants are mentioned at least once, not that the tests are written correctly. This has false positives: * Types and algorithms that Mbed TLS does not support. * PSA_ALG_ECDSA_IS_DETERMINISTIC, PSA_ALG_DSA_IS_DETERMINISTIC are peculiar auxiliary macros that only apply to very specific algorithms and aren't tested like the other IS macros. Signed-off-by: Gilles Peskine --- tests/suites/test_suite_psa_crypto_metadata.data | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto_metadata.data b/tests/suites/test_suite_psa_crypto_metadata.data index aba512741..dbb579153 100644 --- a/tests/suites/test_suite_psa_crypto_metadata.data +++ b/tests/suites/test_suite_psa_crypto_metadata.data @@ -118,6 +118,10 @@ Cipher: XTS depends_on:PSA_WANT_ALG_XTS:MBEDTLS_CIPHER_C cipher_algorithm:PSA_ALG_XTS:0 +Cipher: CCM* +depends_on:PSA_WANT_ALG_CCM_STAR_NO_TAG +cipher_algorithm:PSA_ALG_CCM_STAR_NO_TAG:ALG_IS_STREAM_CIPHER + AEAD: CCM-AES-128 depends_on:PSA_WANT_KEY_TYPE_AES:PSA_WANT_ALG_CCM aead_algorithm:PSA_ALG_CCM:ALG_IS_AEAD_ON_BLOCK_CIPHER:16:PSA_KEY_TYPE_AES:128 From 4db02f2324cfecfef932c5e6226e06f68e19764a Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Dec 2022 01:05:58 +0100 Subject: [PATCH 1459/1574] Add SECRET input validation test cases for PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS Signed-off-by: Gilles Peskine --- tests/suites/test_suite_psa_crypto.data | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto.data b/tests/suites/test_suite_psa_crypto.data index 9ced77c2b..c3561420b 100644 --- a/tests/suites/test_suite_psa_crypto.data +++ b/tests/suites/test_suite_psa_crypto.data @@ -5080,6 +5080,22 @@ PSA key derivation: ECDH on P256 with HKDF-SHA256, missing info depends_on:PSA_WANT_ALG_ECDH:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256:PSA_WANT_KEY_TYPE_ECC_KEY_PAIR:MBEDTLS_PK_PARSE_C:PSA_WANT_ECC_SECP_R1_256 derive_input:PSA_ALG_KEY_AGREEMENT(PSA_ALG_ECDH, PSA_ALG_HKDF(PSA_ALG_SHA_256)):PSA_KEY_DERIVATION_INPUT_SALT:PSA_KEY_TYPE_NONE:"":PSA_SUCCESS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):"c88f01f510d9ac3f70a292daa2316de544e9aab8afe84049c62a9c57862d1433":PSA_SUCCESS:0:UNUSED:"":UNUSED:PSA_KEY_TYPE_NONE:PSA_ERROR_BAD_STATE +PSA key derivation: TLS12_ECJPAKE_TO_PMS, good input, output too short +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +derive_input:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_NONE:"04aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":PSA_SUCCESS:0:UNUSED:"":UNUSED:0:UNUSED:"":UNUSED:PSA_KEY_TYPE_NONE:PSA_ERROR_INVALID_ARGUMENT + +PSA key derivation: TLS12_ECJPAKE_TO_PMS, input[0]=0x02 +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +derive_input:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_NONE:"02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":PSA_ERROR_INVALID_ARGUMENT:0:UNUSED:"":UNUSED:0:UNUSED:"":UNUSED:PSA_KEY_TYPE_NONE:PSA_ERROR_BAD_STATE + +PSA key derivation: TLS12_ECJPAKE_TO_PMS, input too short +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +derive_input:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_NONE:"04aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":PSA_ERROR_INVALID_ARGUMENT:0:UNUSED:"":UNUSED:0:UNUSED:"":UNUSED:PSA_KEY_TYPE_NONE:PSA_ERROR_BAD_STATE + +PSA key derivation: TLS12_ECJPAKE_TO_PMS, input too long +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +derive_input:PSA_ALG_TLS12_ECJPAKE_TO_PMS:PSA_KEY_DERIVATION_INPUT_SECRET:PSA_KEY_TYPE_NONE:"04aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa":PSA_ERROR_INVALID_ARGUMENT:0:UNUSED:"":UNUSED:0:UNUSED:"":UNUSED:PSA_KEY_TYPE_NONE:PSA_ERROR_BAD_STATE + PSA key derivation over capacity: HKDF depends_on:PSA_WANT_ALG_HKDF:PSA_WANT_ALG_SHA_256 derive_over_capacity:PSA_ALG_HKDF(PSA_ALG_SHA_256) From 2566679eb81770de2dac2c2757846239eda18621 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 15 Dec 2022 23:27:57 +0100 Subject: [PATCH 1460/1574] Add metadata test case for PSA_ALG_TLS12_ECJPAKE_TO_PMS Signed-off-by: Gilles Peskine --- tests/suites/test_suite_psa_crypto_metadata.data | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/suites/test_suite_psa_crypto_metadata.data b/tests/suites/test_suite_psa_crypto_metadata.data index dbb579153..bbd501785 100644 --- a/tests/suites/test_suite_psa_crypto_metadata.data +++ b/tests/suites/test_suite_psa_crypto_metadata.data @@ -290,6 +290,10 @@ Key derivation: HKDF-Expand using SHA-384 depends_on:PSA_WANT_ALG_HKDF_EXPAND:PSA_WANT_ALG_SHA_384 key_derivation_algorithm:PSA_ALG_HKDF_EXPAND( PSA_ALG_SHA_384 ):ALG_IS_HKDF_EXPAND +Key derivation: TLS1.2 ECJPAKE-to-PMS +depends_on:PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS +key_derivation_algorithm:PSA_ALG_TLS12_ECJPAKE_TO_PMS:0 + Key derivation: TLS 1.2 PRF using SHA-256 depends_on:PSA_WANT_ALG_SHA_256:PSA_WANT_ALG_TLS12_PRF key_derivation_algorithm:PSA_ALG_TLS12_PRF( PSA_ALG_SHA_256 ):ALG_IS_TLS12_PRF From f6c6b64be2a4d836ab1585e2f64bbc999b563e8e Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Dec 2022 00:20:50 +0100 Subject: [PATCH 1461/1574] A key agreement cannot be chained with PSA_ALG_TLS12_ECJPAKE_TO_PMS Test accordingly. Signed-off-by: Gilles Peskine --- scripts/mbedtls_dev/crypto_knowledge.py | 35 ++++++++++++++++++++----- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index a56c8638e..3029c801d 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -246,6 +246,8 @@ class KeyType: # So a public key object with a key agreement algorithm is not # a valid combination. return False + if alg.is_invalid_key_agreement_with_derivation(): + return False if self.head == 'ECC': assert self.params is not None eccc = EllipticCurveCategory.from_family(self.params[0]) @@ -412,17 +414,38 @@ class Algorithm: self.category = self.determine_category(self.base_expression, self.head) self.is_wildcard = self.determine_wildcard(self.expression) - def is_key_agreement_with_derivation(self) -> bool: - """Whether this is a combined key agreement and key derivation algorithm.""" + def get_key_agreement_derivation(self) -> Optional[str]: + """For a combined key agreement and key derivation algorithm, get the derivation part. + + For anything else, return None. + """ if self.category != AlgorithmCategory.KEY_AGREEMENT: - return False + return None m = re.match(r'PSA_ALG_KEY_AGREEMENT\(\w+,\s*(.*)\)\Z', self.expression) if not m: - return False + return None kdf_alg = m.group(1) # Assume kdf_alg is either a valid KDF or 0. - return not re.match(r'(?:0[Xx])?0+\s*\Z', kdf_alg) + if re.match(r'(?:0[Xx])?0+\s*\Z', kdf_alg): + return None + return kdf_alg + KEY_DERIVATIONS_INCOMPATIBLE_WITH_AGREEMENT = frozenset([ + 'PSA_ALG_TLS12_ECJPAKE_TO_PMS', # secret input in specific format + ]) + def is_valid_key_agreement_with_derivation(self) -> bool: + """Whether this is a valid combined key agreement and key derivation algorithm.""" + kdf_alg = self.get_key_agreement_derivation() + if kdf_alg is None: + return False + return kdf_alg not in self.KEY_DERIVATIONS_INCOMPATIBLE_WITH_AGREEMENT + + def is_invalid_key_agreement_with_derivation(self) -> bool: + """Whether this is an invalid combined key agreement and key derivation algorithm.""" + kdf_alg = self.get_key_agreement_derivation() + if kdf_alg is None: + return False + return kdf_alg in self.KEY_DERIVATIONS_INCOMPATIBLE_WITH_AGREEMENT def short_expression(self, level: int = 0) -> str: """Abbreviate the expression, keeping it human-readable. @@ -515,7 +538,7 @@ class Algorithm: if category == self.category: return True if category == AlgorithmCategory.KEY_DERIVATION and \ - self.is_key_agreement_with_derivation(): + self.is_valid_key_agreement_with_derivation(): return True return False From bb3814c7a80ba7a3c80634676a882b02e616cb39 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Fri, 16 Dec 2022 01:12:12 +0100 Subject: [PATCH 1462/1574] Reject key agreement chained with PSA_ALG_TLS12_ECJPAKE_TO_PMS The key derivation algorithm PSA_ALG_TLS12_ECJPAKE_TO_PMS cannot be used on a shared secret from a key agreement since its input must be an ECC public key. Reject this properly. This is tested by test_suite_psa_crypto_op_fail.generated. Signed-off-by: Gilles Peskine --- .../psa_alg_tls12_ecjpake_to_pms-reject_ka.txt | 4 ++++ library/psa_crypto.c | 15 +++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 ChangeLog.d/psa_alg_tls12_ecjpake_to_pms-reject_ka.txt diff --git a/ChangeLog.d/psa_alg_tls12_ecjpake_to_pms-reject_ka.txt b/ChangeLog.d/psa_alg_tls12_ecjpake_to_pms-reject_ka.txt new file mode 100644 index 000000000..cfea66136 --- /dev/null +++ b/ChangeLog.d/psa_alg_tls12_ecjpake_to_pms-reject_ka.txt @@ -0,0 +1,4 @@ +Bugfix + * The key derivation algorithm PSA_ALG_TLS12_ECJPAKE_TO_PMS cannot be + used on a shared secret from a key agreement since its input must be + an ECC public key. Reject this properly. diff --git a/library/psa_crypto.c b/library/psa_crypto.c index 0a8949fda..a683fdb8f 100644 --- a/library/psa_crypto.c +++ b/library/psa_crypto.c @@ -5168,6 +5168,18 @@ static psa_status_t psa_key_agreement_try_support(psa_algorithm_t alg) (void) alg; return PSA_ERROR_NOT_SUPPORTED; } + +static int psa_key_derivation_allows_free_form_secret_input( + psa_algorithm_t kdf_alg) +{ +#if defined(PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS) + if (kdf_alg == PSA_ALG_TLS12_ECJPAKE_TO_PMS) { + return 0; + } +#endif + (void) kdf_alg; + return 1; +} #endif /* AT_LEAST_ONE_BUILTIN_KDF */ psa_status_t psa_key_derivation_setup(psa_key_derivation_operation_t *operation, @@ -5189,6 +5201,9 @@ psa_status_t psa_key_derivation_setup(psa_key_derivation_operation_t *operation, if (status != PSA_SUCCESS) { return status; } + if (!psa_key_derivation_allows_free_form_secret_input(kdf_alg)) { + return PSA_ERROR_INVALID_ARGUMENT; + } status = psa_key_derivation_setup_kdf(operation, kdf_alg); #else return PSA_ERROR_NOT_SUPPORTED; From bececeb0b9b02ca8b59ca3f4a3b5b9a3acb0cf40 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 16 Jan 2023 16:16:49 +0000 Subject: [PATCH 1463/1574] ecp_curves: Hardcod Montgomery const for curve25519 This patch adds two embedded constants used by `ecp_use_curve25519()`. The method has been updated to read that into an mpi instead of calculating it on the fly. Signed-off-by: Minos Galanakis --- library/ecp_curves.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/library/ecp_curves.c b/library/ecp_curves.c index e62dcea65..3b517b751 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -4627,9 +4627,21 @@ static int ecp_mod_p256k1(mbedtls_mpi *); #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) /* Constants used by ecp_use_curve25519() */ static const mbedtls_mpi_sint curve25519_a24 = 0x01DB42; -static const unsigned char curve25519_part_of_n[] = { - 0x14, 0xDE, 0xF9, 0xDE, 0xA2, 0xF7, 0x9C, 0xD6, - 0x58, 0x12, 0x63, 0x1A, 0x5C, 0xF5, 0xD3, 0xED, + +/* P = 2^255 - 19 */ +static const mbedtls_mpi_uint curve25519_p[] = { + MBEDTLS_BYTES_TO_T_UINT_8(0xED, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X7F) +}; + +/* N = 2^252 + 27742317777372353535851937790883648493 */ +static const mbedtls_mpi_uint curve25519_n[] = { + MBEDTLS_BYTES_TO_T_UINT_8(0XED, 0XD3, 0XF5, 0X5C, 0X1A, 0X63, 0X12, 0X58), + MBEDTLS_BYTES_TO_T_UINT_8(0XD6, 0X9C, 0XF7, 0XA2, 0XDE, 0XF9, 0XDE, 0X14), + MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0x00, 0x00, 0x00, 0x00), + MBEDTLS_BYTES_TO_T_UINT_8(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10) }; /* @@ -4642,16 +4654,11 @@ static int ecp_use_curve25519(mbedtls_ecp_group *grp) /* Actually ( A + 2 ) / 4 */ MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve25519_a24)); - /* P = 2^255 - 19 */ - MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1)); - MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 255)); - MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 19)); + ecp_mpi_load(&grp->P, curve25519_p, sizeof(curve25519_p)); + grp->pbits = mbedtls_mpi_bitlen(&grp->P); - /* N = 2^252 + 27742317777372353535851937790883648493 */ - MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&grp->N, - curve25519_part_of_n, sizeof(curve25519_part_of_n))); - MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 252, 1)); + ecp_mpi_load(&grp->N, curve25519_n, sizeof(curve25519_n)); /* Y intentionally not set, since we use x/z coordinates. * This is used as a marker to identify Montgomery curves! */ From 146fed98496a1a05dc181f1838eea58bc039f3f6 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Mon, 16 Jan 2023 17:17:08 +0000 Subject: [PATCH 1464/1574] ecp_curves: Hardcode Montgomery const for curve448. This patch adds two embedded constants used by `ecp_use_curve448()`. The method has been updated to read that into an mpi instead of calculating it on the fly. Signed-off-by: Minos Galanakis --- library/ecp_curves.c | 45 ++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 3b517b751..88c4c850a 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -4681,11 +4681,29 @@ cleanup: #if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) /* Constants used by ecp_use_curve448() */ static const mbedtls_mpi_sint curve448_a24 = 0x98AA; -static const unsigned char curve448_part_of_n[] = { - 0x83, 0x35, 0xDC, 0x16, 0x3B, 0xB1, 0x24, - 0xB6, 0x51, 0x29, 0xC9, 0x6F, 0xDE, 0x93, - 0x3D, 0x8D, 0x72, 0x3A, 0x70, 0xAA, 0xDC, - 0x87, 0x3D, 0x6D, 0x54, 0xA7, 0xBB, 0x0D, + +/* P = 2^448 - 2^224 - 1 */ +static const mbedtls_mpi_uint curve448_p[] = { + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFE, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00) +}; + +/* N = 2^446 - 13818066809895115352007386748515426880336692474882178609894547503885 */ +static const mbedtls_mpi_uint curve448_n[] = { + MBEDTLS_BYTES_TO_T_UINT_8(0XF3, 0X44, 0X58, 0XAB, 0X92, 0XC2, 0X78, 0X23), + MBEDTLS_BYTES_TO_T_UINT_8(0X55, 0X8F, 0XC5, 0X8D, 0X72, 0XC2, 0X6C, 0X21), + MBEDTLS_BYTES_TO_T_UINT_8(0X90, 0X36, 0XD6, 0XAE, 0X49, 0XDB, 0X4E, 0XC4), + MBEDTLS_BYTES_TO_T_UINT_8(0XE9, 0X23, 0XCA, 0X7C, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF), + MBEDTLS_BYTES_TO_T_UINT_8(0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0X3F), + MBEDTLS_BYTES_TO_T_UINT_8(0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00) }; /* @@ -4693,20 +4711,12 @@ static const unsigned char curve448_part_of_n[] = { */ static int ecp_use_curve448(mbedtls_ecp_group *grp) { - mbedtls_mpi Ns; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_mpi_init(&Ns); - /* Actually ( A + 2 ) / 4 */ MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->A, curve448_a24)); - /* P = 2^448 - 2^224 - 1 */ - MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->P, 1)); - MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224)); - MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1)); - MBEDTLS_MPI_CHK(mbedtls_mpi_shift_l(&grp->P, 224)); - MBEDTLS_MPI_CHK(mbedtls_mpi_sub_int(&grp->P, &grp->P, 1)); + ecp_mpi_load(&grp->P, curve448_p, sizeof(curve448_p)); grp->pbits = mbedtls_mpi_bitlen(&grp->P); /* Y intentionally not set, since we use x/z coordinates. @@ -4715,17 +4725,12 @@ static int ecp_use_curve448(mbedtls_ecp_group *grp) MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&grp->G.Z, 1)); mbedtls_mpi_free(&grp->G.Y); - /* N = 2^446 - 13818066809895115352007386748515426880336692474882178609894547503885 */ - MBEDTLS_MPI_CHK(mbedtls_mpi_set_bit(&grp->N, 446, 1)); - MBEDTLS_MPI_CHK(mbedtls_mpi_read_binary(&Ns, - curve448_part_of_n, sizeof(curve448_part_of_n))); - MBEDTLS_MPI_CHK(mbedtls_mpi_sub_mpi(&grp->N, &grp->N, &Ns)); + ecp_mpi_load(&grp->N, curve448_n, sizeof(curve448_n)); /* Actually, the required msb for private keys */ grp->nbits = 447; cleanup: - mbedtls_mpi_free(&Ns); if (ret != 0) { mbedtls_ecp_group_free(grp); } From d61dbd4df7deace80bd3e315f6547ba3f925c5c4 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Tue, 17 Jan 2023 15:52:44 +0000 Subject: [PATCH 1465/1574] ecp_curves: Update `mbedtls_ecp_group_free()`. This patch updates the method to not free the `grp->P` and `grp->N` structure members. The contents of `P` and `N` are stored in static memory at `curve448_p/n` and `curve25519p/n` and no longer dynamically allocated. Signed-off-by: Minos Galanakis --- library/ecp.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/ecp.c b/library/ecp.c index d9d5425ed..08fbe86c7 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -582,11 +582,9 @@ void mbedtls_ecp_group_free(mbedtls_ecp_group *grp) } if (grp->h != 1) { - mbedtls_mpi_free(&grp->P); mbedtls_mpi_free(&grp->A); mbedtls_mpi_free(&grp->B); mbedtls_ecp_point_free(&grp->G); - mbedtls_mpi_free(&grp->N); } if (!ecp_group_is_static_comb_table(grp) && grp->T != NULL) { From e9fa7a74cd6fb62bbc241576f35abdd67f19507b Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Wed, 18 Jan 2023 09:46:52 +0000 Subject: [PATCH 1466/1574] ecp_curves: Update pre-processor define guards for `ecp_mpi_load()`. This patch adjusts the logic, so that the method is included, when the following components are enabled: * MBEDTLS_ECP_DP_CURVE448_ENABLED * MBEDTLS_ECP_DP_CURVE25519_ENABLED * ECP_LOAD_GROUP Signed-off-by: Minos Galanakis --- library/ecp_curves.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 88c4c850a..727283f73 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -4502,7 +4502,9 @@ static const mbedtls_ecp_point brainpoolP512r1_T[32] = { #endif #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ -#if defined(ECP_LOAD_GROUP) + +#if defined(ECP_LOAD_GROUP) || defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ + defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) /* * Create an MPI from embedded constants * (assumes len is an exact multiple of sizeof mbedtls_mpi_uint) @@ -4513,7 +4515,9 @@ static inline void ecp_mpi_load(mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_ X->n = len / sizeof(mbedtls_mpi_uint); X->p = (mbedtls_mpi_uint *) p; } +#endif +#if defined(ECP_LOAD_GROUP) /* * Set an MPI to static value 1 */ From c8e381ab1c732824732ebfdfbd331e544e3de62c Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Thu, 19 Jan 2023 16:08:34 +0000 Subject: [PATCH 1467/1574] pkarse: Update `pk_group_id_from_specified()` clean-up. This path updates the clean-up logic of to individually free each of the the group's structure members rather than invoke `mbedtls_ecp_group_free()`. Signed-off-by: Minos Galanakis --- library/pkparse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/pkparse.c b/library/pkparse.c index 990b55452..53e6dd0ba 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -429,7 +429,11 @@ static int pk_group_id_from_specified(const mbedtls_asn1_buf *params, ret = pk_group_id_from_group(&grp, grp_id); cleanup: - mbedtls_ecp_group_free(&grp); + mbedtls_mpi_free(&grp.N); + mbedtls_mpi_free(&grp.P); + mbedtls_mpi_free(&grp.A); + mbedtls_mpi_free(&grp.B); + mbedtls_ecp_point_free(&grp.G); return ret; } From 9113df8c8f1844c7d1c86b017056f58a1ab99991 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 19 Jan 2023 18:26:31 -0500 Subject: [PATCH 1468/1574] Add missing RSA-type dependencies in test_suite_ssl These tests are not run in development because of the overlapping !TLS_1_3 requirement and usage of full config. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index 1522cfcb7..fbbc9d8c3 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5023,7 +5023,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECP_C:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void handshake_version(int dtls, int client_min_version, int client_max_version, int server_min_version, int server_max_version, int expected_negotiated_version) @@ -5146,7 +5146,7 @@ void app_data_tls(int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void app_data_dtls(int mfl, int cli_msg_len, int srv_msg_len, int expected_cli_fragments, int expected_srv_fragments) @@ -5158,7 +5158,7 @@ void app_data_dtls(int mfl, int cli_msg_len, int srv_msg_len, } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void handshake_serialization() { handshake_test_options options; @@ -5213,7 +5213,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void renegotiation(int legacy_renegotiation) { handshake_test_options options; @@ -5256,7 +5256,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_CONTEXT_SERIALIZATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_SSL_PROTO_DTLS:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void resize_buffers_serialize_mfl(int mfl) { test_resize_buffers(mfl, 0, MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION, 1, 1, @@ -5267,7 +5267,7 @@ void resize_buffers_serialize_mfl(int mfl) } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH:MBEDTLS_SSL_RENEGOTIATION:MBEDTLS_SSL_PROTO_TLS1_2:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_CAN_HANDLE_RSA_TEST_KEY */ void resize_buffers_renegotiate_mfl(int mfl, int legacy_renegotiation, char *cipher) { From a86cef32cf4c0af93e25580ed90d2710b0ccaa98 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 19 Jan 2023 18:27:57 -0500 Subject: [PATCH 1469/1574] Add missing KEX DHE-RSA requirement for one ssl test This specific cipher is used to test record splitting. Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_ssl.function b/tests/suites/test_suite_ssl.function index fbbc9d8c3..1d182e02c 100644 --- a/tests/suites/test_suite_ssl.function +++ b/tests/suites/test_suite_ssl.function @@ -5174,7 +5174,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */ +/* BEGIN_CASE depends_on:MBEDTLS_SSL_HANDSHAKE_WITH_CERT_ENABLED:!MBEDTLS_SSL_PROTO_TLS1_3:MBEDTLS_PKCS1_V15:MBEDTLS_RSA_C:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_DEBUG_C:MBEDTLS_SSL_MAX_FRAGMENT_LENGTH:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ void handshake_fragmentation(int mfl, int expected_srv_hs_fragmentation, int expected_cli_hs_fragmentation) From 723b8779f9839b87e3bbda6af97dd5a5e72cc388 Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Thu, 19 Jan 2023 18:31:00 -0500 Subject: [PATCH 1470/1574] Add missing key exchange requirements to test_suite_ssl Signed-off-by: Andrzej Kurek --- tests/suites/test_suite_ssl.data | 48 ++++++++++++++++---------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/suites/test_suite_ssl.data b/tests/suites/test_suite_ssl.data index b6dbdba4e..1848c1764 100644 --- a/tests/suites/test_suite_ssl.data +++ b/tests/suites/test_suite_ssl.data @@ -657,99 +657,99 @@ depends_on:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_AES_C: resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384" DTLS no legacy renegotiation with MFL=512, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS no legacy renegotiation with MFL=1024, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS no legacy renegotiation with MFL=2048, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS no legacy renegotiation with MFL=4096, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy allow renegotiation with MFL=512, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy allow renegotiation with MFL=1024, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy allow renegotiation with MFL=2048, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy allow renegotiation with MFL=4096, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy break handshake renegotiation with MFL=512, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy break handshake renegotiation with MFL=1024, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy break handshake renegotiation with MFL=2048, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-RSA-WITH-AES-128-CCM" DTLS legacy break handshake renegotiation with MFL=4096, RSA-WITH-AES-128-CCM -depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C +depends_on:MBEDTLS_CCM_C:MBEDTLS_AES_C:MBEDTLS_KEY_EXCHANGE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-RSA-WITH-AES-128-CCM" DTLS no legacy renegotiation with MFL=512, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS no legacy renegotiation with MFL=1024, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS no legacy renegotiation with MFL=2048, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS no legacy renegotiation with MFL=4096, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy allow renegotiation with MFL=512, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy allow renegotiation with MFL=1024, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy allow renegotiation with MFL=2048, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy allow renegotiation with MFL=4096, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy break handshake renegotiation with MFL=512, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_512:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy break handshake renegotiation with MFL=1024, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_1024:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy break handshake renegotiation with MFL=2048, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_2048:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" DTLS legacy break handshake renegotiation with MFL=4096, DHE-RSA-WITH-AES-256-CBC-SHA256 -depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA +depends_on:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_AES_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED resize_buffers_renegotiate_mfl:MBEDTLS_SSL_MAX_FRAG_LEN_4096:MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE:"TLS-DHE-RSA-WITH-AES-256-CBC-SHA256" SSL DTLS replay: initial state, seqnum 0 From 60f8eaa3b40964e3dfd1146efa0ed8049f61fdbb Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Fri, 20 Jan 2023 12:45:13 +0800 Subject: [PATCH 1471/1574] Remove third argument passed to run_client in compat.sh The argument passed to translate_ciphers.py is calculated from $1 in run_client instead of passed as third argument. Signed-off-by: Yanray Wang --- tests/compat.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 886ad8f65..2a93efc25 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -800,8 +800,11 @@ run_client() { LEN=$(( 72 - `echo "$TITLE" | wc -c` )) for i in `seq 1 $LEN`; do printf '.'; done; printf ' ' + # Calculate the argument $c to pass to translate_ciphers.py + client=$(echo $1 | head -c1) + c=$(echo $client | tr '[:upper:]' '[:lower:]') # Translate ciphersuite names based on client's naming convention - t_cipher=$(./scripts/translate_ciphers.py $3 $2) + t_cipher=$(./scripts/translate_ciphers.py $c $2) check_translation $? "$t_cipher" # should we skip? @@ -1027,7 +1030,7 @@ for VERIFY in $VERIFIES; do start_server "OpenSSL" for i in $M_CIPHERS; do check_openssl_server_bug $i - run_client mbedTLS $i m + run_client mbedTLS $i done stop_server fi @@ -1035,7 +1038,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$O_CIPHERS" ]; then start_server "mbedTLS" for i in $O_CIPHERS; do - run_client OpenSSL $i o + run_client OpenSSL $i done stop_server fi @@ -1052,7 +1055,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "GnuTLS" for i in $M_CIPHERS; do - run_client mbedTLS $i m + run_client mbedTLS $i done stop_server fi @@ -1060,7 +1063,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$G_CIPHERS" ]; then start_server "mbedTLS" for i in $G_CIPHERS; do - run_client GnuTLS $i g + run_client GnuTLS $i done stop_server fi @@ -1079,7 +1082,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "mbedTLS" for i in $M_CIPHERS; do - run_client mbedTLS $i m + run_client mbedTLS $i done stop_server fi From dc3b1540cddf7f15da42ba05bc5e18a2c2c909ab Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 20 Jan 2023 11:39:00 +0000 Subject: [PATCH 1472/1574] Fix test guards Signed-off-by: Dave Rodgman --- tests/suites/test_suite_x509write.function | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index a21ad475a..03b9baea3 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -345,7 +345,7 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, issuer_key_type = mbedtls_pk_get_type(&issuer_key); -#if defined(MBEDTLS_RSA_C) +#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_RSA_ALT_SUPPORT) /* For RSA PK contexts, create a copy as an alternative RSA context. */ if (pk_wrap == 1 && issuer_key_type == MBEDTLS_PK_RSA) { TEST_ASSERT(mbedtls_pk_setup_rsa_alt(&issuer_key_alt, From fd09b310110e7bfa182280827b7fcaa6e76288f0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 20 Jan 2023 11:41:43 +0000 Subject: [PATCH 1473/1574] Add Changelog Signed-off-by: Dave Rodgman --- ChangeLog.d/fix-rsaalt-test-guards.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/fix-rsaalt-test-guards.txt diff --git a/ChangeLog.d/fix-rsaalt-test-guards.txt b/ChangeLog.d/fix-rsaalt-test-guards.txt new file mode 100644 index 000000000..f4f39c9e5 --- /dev/null +++ b/ChangeLog.d/fix-rsaalt-test-guards.txt @@ -0,0 +1,3 @@ +Bugfix + * Fix compile error where MBEDTLS_RSA_C and MBEDTLS_X509_CRT_WRITE_C are + defined, but MBEDTLS_PK_RSA_ALT_SUPPORT is not defined. Fixes #3174. From 38699e5323313ac84fef7020c0c396030db351b0 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 20 Jan 2023 12:43:53 +0000 Subject: [PATCH 1474/1574] Update the getting-started doc Signed-off-by: Dave Rodgman --- docs/getting_started.md | 203 ++++++++++++++++++++++++++-------------- 1 file changed, 134 insertions(+), 69 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index fdbf0e9ba..858e0ed07 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -1,8 +1,9 @@ -## Getting started with Mbed Crypto +## Getting started with Mbed TLS -### What is Mbed Crypto? +### What is Mbed TLS? -Mbed Crypto is an open source cryptographic library that supports a wide range of cryptographic operations, including: +Mbed TLS is an open source cryptographic library that supports a wide range of +cryptographic operations, including: * Key management * Hashing * Symmetric cryptography @@ -11,20 +12,25 @@ Mbed Crypto is an open source cryptographic library that supports a wide range o * Key generation and derivation * Authenticated encryption with associated data (AEAD) -The Mbed Crypto library is a reference implementation of the cryptography interface of the Arm Platform Security Architecture (PSA). It is written in portable C. +Mbed TLS provides a reference implementation of the cryptography interface of +the Arm Platform Security Architecture (PSA). It is written in portable C. -The Mbed Crypto library is distributed under the Apache License, version 2.0. +Mbed TLS is distributed under the Apache License, version 2.0. #### Platform Security Architecture (PSA) Arm's Platform Security Architecture (PSA) is a holistic set of threat models, -security analyses, hardware and firmware architecture specifications, and an open source firmware reference implementation. PSA provides a recipe, based on industry best practice, that enables you to design security into both hardware and firmware consistently. Part of the API provided by PSA is the cryptography interface, which provides access to a set of primitives. +security analyses, hardware and firmware architecture specifications, and an open +source firmware reference implementation. PSA provides a recipe, based on +industry best practice, that enables you to design security into both hardware +and firmware consistently. Part of the API provided by PSA is the cryptography +interface, which provides access to a set of primitives. -### Using Mbed Crypto +### Using Mbed TLS -* [Getting the Mbed Crypto library](#getting-the-mbed-crypto-library) -* [Building the Mbed Crypto library](#building-the-mbed-crypto-library) -* [Using the Mbed Crypto library](#using-the-mbed-crypto-library) +* [Getting the Mbed TLS library](#getting-the-mbed-tls-library) +* [Building the Mbed TLS library](#building-the-mbed-tls-library) +* [Using the PSA Crypto API](#using-the-psa-crypto-api) * [Importing a key](#importing-a-key) * [Signing a message using RSA](#signing-a-message-using-RSA) * [Encrypting or decrypting using symmetric ciphers](#encrypting-or-decrypting-using-symmetric-ciphers) @@ -33,37 +39,45 @@ security analyses, hardware and firmware architecture specifications, and an ope * [Generating a random value](#generating-a-random-value) * [Authenticating and encrypting or decrypting a message](#authenticating-and-encrypting-or-decrypting-a-message) * [Generating and exporting keys](#generating-and-exporting-keys) -* [More about the Mbed Crypto library](#more-about-the-mbed-crypto-library) +* [More about the Mbed TLS library](#more-about-the-psa-crypto-api) -### Getting the Mbed Crypto library +### Getting the Mbed TLS library -Mbed Crypto releases are available in the [public GitHub repository](https://github.com/ARMmbed/mbed-crypto). +Mbed TLS releases are available in the [public GitHub repository](https://github.com/Mbed-TLS/mbedtls). -### Building the Mbed Crypto library +### Building the Mbed TLS library **Prerequisites to building the library with the provided makefiles:** * GNU Make. -* A C toolchain (compiler, linker, archiver). -* Python 2 or Python 3 (either works) to generate the test code. +* A C toolchain (compiler, linker, archiver) that supports C99. +* Python 3.6 to generate the test code. * Perl to run the tests. -If you have a C compiler such as GCC or Clang, just run `make` in the top-level directory to build the library, a set of unit tests and some sample programs. +If you have a C compiler such as GCC or Clang, just run `make` in the top-level +directory to build the library, a set of unit tests and some sample programs. -To select a different compiler, set the `CC` variable to the name or path of the compiler and linker (default: `cc`) and set `AR` to a compatible archiver (default: `ar`); for example: +To select a different compiler, set the `CC` variable to the name or path of the +compiler and linker (default: `cc`) and set `AR` to a compatible archiver +(default: `ar`); for example: ``` make CC=arm-linux-gnueabi-gcc AR=arm-linux-gnueabi-ar ``` -The provided makefiles pass options to the compiler that assume a GCC-like command line syntax. To use a different compiler, you may need to pass different values for `CFLAGS`, `WARNINGS_CFLAGS` and `LDFLAGS`. +The provided makefiles pass options to the compiler that assume a GCC-like +command line syntax. To use a different compiler, you may need to pass different +values for `CFLAGS`, `WARNINGS_CFLAGS` and `LDFLAGS`. -To run the unit tests on the host machine, run `make test` from the top-level directory. If you are cross-compiling, copy the test executable from the `tests` directory to the target machine. +To run the unit tests on the host machine, run `make test` from the top-level +directory. If you are cross-compiling, copy the test executable from the `tests` +directory to the target machine. -### Using the Mbed Crypto library +### Using the PSA Crypto API -To use the Mbed Crypto APIs, call `psa_crypto_init()` before calling any other API. This initializes the library. +To use the PSA APIs, call `psa_crypto_init()` before calling any other PSA API. +This initializes the library. ### Importing a key -To use a key for cryptography operations in Mbed Crypto, you need to first +To use a key for cryptography operations in PSA, you need to first import it. The import operation returns the identifier of the key for use with other function calls. @@ -114,7 +128,8 @@ void import_a_key(const uint8_t *key, size_t key_len) ### Signing a message using RSA -Mbed Crypto supports encrypting, decrypting, signing and verifying messages using public key signature algorithms, such as RSA or ECDSA. +The PSA Crypto API supports encrypting, decrypting, signing and verifying +messages using public key signature algorithms, such as RSA or ECDSA. **Prerequisites to performing asymmetric signature operations:** * Initialize the library with a successful call to `psa_crypto_init()`. @@ -184,21 +199,32 @@ void sign_a_message_using_rsa(const uint8_t *key, size_t key_len) ### Using symmetric ciphers -Mbed Crypto supports encrypting and decrypting messages using various symmetric cipher algorithms (both block and stream ciphers). +The PSA Crypto API supports encrypting and decrypting messages using various +symmetric cipher algorithms (both block and stream ciphers). **Prerequisites to working with the symmetric cipher API:** * Initialize the library with a successful call to `psa_crypto_init()`. -* Have a symmetric key. This key's usage flags must include `PSA_KEY_USAGE_ENCRYPT` to allow encryption or `PSA_KEY_USAGE_DECRYPT` to allow decryption. +* Have a symmetric key. This key's usage flags must include `PSA_KEY_USAGE_ENCRYPT` + to allow encryption or `PSA_KEY_USAGE_DECRYPT` to allow decryption. **To encrypt a message with a symmetric cipher:** -1. Allocate an operation (`psa_cipher_operation_t`) structure to pass to the cipher functions. +1. Allocate an operation (`psa_cipher_operation_t`) structure to pass to the + cipher functions. 1. Initialize the operation structure to zero or to `PSA_CIPHER_OPERATION_INIT`. -1. Call `psa_cipher_encrypt_setup()` to specify the algorithm and the key to be used. -1. Call either `psa_cipher_generate_iv()` or `psa_cipher_set_iv()` to generate or set the initialization vector (IV). We recommend calling `psa_cipher_generate_iv()`, unless you require a specific IV value. -1. Call `psa_cipher_update()` with the message to encrypt. You may call this function multiple times, passing successive fragments of the message on successive calls. -1. Call `psa_cipher_finish()` to end the operation and output the encrypted message. +1. Call `psa_cipher_encrypt_setup()` to specify the algorithm and the key to be + used. +1. Call either `psa_cipher_generate_iv()` or `psa_cipher_set_iv()` to generate + or set the initialization vector (IV). We recommend calling + `psa_cipher_generate_iv()`, unless you require a specific IV value. +1. Call `psa_cipher_update()` with the message to encrypt. You may call this + function multiple times, passing successive fragments of the message on + successive calls. +1. Call `psa_cipher_finish()` to end the operation and output the encrypted + message. -This example shows how to encrypt data using an AES (Advanced Encryption Standard) key in CBC (Cipher Block Chaining) mode with no padding (assuming all prerequisites have been fulfilled): +This example shows how to encrypt data using an AES (Advanced Encryption +Standard) key in CBC (Cipher Block Chaining) mode with no padding (assuming all +prerequisites have been fulfilled): ```c void encrypt_with_symmetric_ciphers(const uint8_t *key, size_t key_len) { @@ -275,15 +301,20 @@ void encrypt_with_symmetric_ciphers(const uint8_t *key, size_t key_len) ``` **To decrypt a message with a symmetric cipher:** -1. Allocate an operation (`psa_cipher_operation_t`) structure to pass to the cipher functions. +1. Allocate an operation (`psa_cipher_operation_t`) structure to pass to the + cipher functions. 1. Initialize the operation structure to zero or to `PSA_CIPHER_OPERATION_INIT`. -1. Call `psa_cipher_decrypt_setup()` to specify the algorithm and the key to be used. +1. Call `psa_cipher_decrypt_setup()` to specify the algorithm and the key to be + used. 1. Call `psa_cipher_set_iv()` with the IV for the decryption. -1. Call `psa_cipher_update()` with the message to encrypt. You may call this function multiple times, passing successive fragments of the message on successive calls. -1. Call `psa_cipher_finish()` to end the operation and output the decrypted message. +1. Call `psa_cipher_update()` with the message to encrypt. You may call this + function multiple times, passing successive fragments of the message on + successive calls. +1. Call `psa_cipher_finish()` to end the operation and output the decrypted + message. -This example shows how to decrypt encrypted data using an AES key in CBC mode with no padding -(assuming all prerequisites have been fulfilled): +This example shows how to decrypt encrypted data using an AES key in CBC mode +with no padding (assuming all prerequisites have been fulfilled): ```c void decrypt_with_symmetric_ciphers(const uint8_t *key, size_t key_len) { @@ -360,34 +391,49 @@ void decrypt_with_symmetric_ciphers(const uint8_t *key, size_t key_len) #### Handling cipher operation contexts -After you've initialized the operation structure with a successful call to `psa_cipher_encrypt_setup()` or `psa_cipher_decrypt_setup()`, you can terminate the operation at any time by calling `psa_cipher_abort()`. +After you've initialized the operation structure with a successful call to +`psa_cipher_encrypt_setup()` or `psa_cipher_decrypt_setup()`, you can terminate +the operation at any time by calling `psa_cipher_abort()`. -The call to `psa_cipher_abort()` frees any resources associated with the operation, except for the operation structure itself. +The call to `psa_cipher_abort()` frees any resources associated with the +operation, except for the operation structure itself. -Mbed Crypto implicitly calls `psa_cipher_abort()` when: -* A call to `psa_cipher_generate_iv()`, `psa_cipher_set_iv()` or `psa_cipher_update()` fails (returning any status other than `PSA_SUCCESS`). +The PSA Crypto API implicitly calls `psa_cipher_abort()` when: +* A call to `psa_cipher_generate_iv()`, `psa_cipher_set_iv()` or + `psa_cipher_update()` fails (returning any status other than `PSA_SUCCESS`). * A call to `psa_cipher_finish()` succeeds or fails. -After an implicit or explicit call to `psa_cipher_abort()`, the operation structure is invalidated; in other words, you cannot reuse the operation structure for the same operation. You can, however, reuse the operation structure for a different operation by calling either `psa_cipher_encrypt_setup()` or `psa_cipher_decrypt_setup()` again. +After an implicit or explicit call to `psa_cipher_abort()`, the operation +structure is invalidated; in other words, you cannot reuse the operation +structure for the same operation. You can, however, reuse the operation +structure for a different operation by calling either +`psa_cipher_encrypt_setup()` or `psa_cipher_decrypt_setup()` again. -You must call `psa_cipher_abort()` at some point for any operation that is initialized successfully (by a successful call to `psa_cipher_encrypt_setup()` or `psa_cipher_decrypt_setup()`). +You must call `psa_cipher_abort()` at some point for any operation that is +initialized successfully (by a successful call to `psa_cipher_encrypt_setup()` +or `psa_cipher_decrypt_setup()`). -Making multiple sequential calls to `psa_cipher_abort()` on an operation that is terminated (either implicitly or explicitly) is safe and has no effect. +Making multiple sequential calls to `psa_cipher_abort()` on an operation that +is terminated (either implicitly or explicitly) is safe and has no effect. ### Hashing a message -Mbed Crypto lets you compute and verify hashes using various hashing +The PSA Crypto API lets you compute and verify hashes using various hashing algorithms. **Prerequisites to working with the hash APIs:** * Initialize the library with a successful call to `psa_crypto_init()`. **To calculate a hash:** -1. Allocate an operation structure (`psa_hash_operation_t`) to pass to the hash functions. +1. Allocate an operation structure (`psa_hash_operation_t`) to pass to the hash + functions. 1. Initialize the operation structure to zero or to `PSA_HASH_OPERATION_INIT`. 1. Call `psa_hash_setup()` to specify the hash algorithm. -1. Call `psa_hash_update()` with the message to encrypt. You may call this function multiple times, passing successive fragments of the message on successive calls. -1. Call `psa_hash_finish()` to calculate the hash, or `psa_hash_verify()` to compare the computed hash with an expected hash value. +1. Call `psa_hash_update()` with the message to encrypt. You may call this + function multiple times, passing successive fragments of the message on + successive calls. +1. Call `psa_hash_finish()` to calculate the hash, or `psa_hash_verify()` to + compare the computed hash with an expected hash value. This example shows how to calculate the SHA-256 hash of a message: ```c @@ -482,33 +528,46 @@ This example shows how to verify the SHA-256 hash of a message: mbedtls_psa_crypto_free(); ``` -The API provides the macro `PSA_HASH_LENGTH`, which returns the expected hash length (in bytes) for the specified algorithm. +The API provides the macro `PSA_HASH_LENGTH`, which returns the expected hash +length (in bytes) for the specified algorithm. #### Handling hash operation contexts -After a successful call to `psa_hash_setup()`, you can terminate the operation at any time by calling `psa_hash_abort()`. The call to `psa_hash_abort()` frees any resources associated with the operation, except for the operation structure itself. +After a successful call to `psa_hash_setup()`, you can terminate the operation +at any time by calling `psa_hash_abort()`. The call to `psa_hash_abort()` frees +any resources associated with the operation, except for the operation structure +itself. -Mbed Crypto implicitly calls `psa_hash_abort()` when: -1. A call to `psa_hash_update()` fails (returning any status other than `PSA_SUCCESS`). +The PSA Crypto API implicitly calls `psa_hash_abort()` when: +1. A call to `psa_hash_update()` fails (returning any status other than + `PSA_SUCCESS`). 1. A call to `psa_hash_finish()` succeeds or fails. 1. A call to `psa_hash_verify()` succeeds or fails. -After an implicit or explicit call to `psa_hash_abort()`, the operation structure is invalidated; in other words, you cannot reuse the operation structure for the same operation. You can, however, reuse the operation structure for a different operation by calling `psa_hash_setup()` again. +After an implicit or explicit call to `psa_hash_abort()`, the operation +structure is invalidated; in other words, you cannot reuse the operation +structure for the same operation. You can, however, reuse the operation +structure for a different operation by calling `psa_hash_setup()` again. -You must call `psa_hash_abort()` at some point for any operation that is initialized successfully (by a successful call to `psa_hash_setup()`) . +You must call `psa_hash_abort()` at some point for any operation that is +initialized successfully (by a successful call to `psa_hash_setup()`) . -Making multiple sequential calls to `psa_hash_abort()` on an operation that has already been terminated (either implicitly or explicitly) is safe and has no effect. +Making multiple sequential calls to `psa_hash_abort()` on an operation that has +already been terminated (either implicitly or explicitly) is safe and has no +effect. ### Generating a random value -Mbed Crypto can generate random data. +The PSA Crypto API can generate random data. **Prerequisites to generating random data:** * Initialize the library with a successful call to `psa_crypto_init()`. -**Note:** To generate a random key, use `psa_generate_key()` instead of `psa_generate_random()`. +**Note:** To generate a random key, use `psa_generate_key()` +instead of `psa_generate_random()`. -This example shows how to generate ten bytes of random data by calling `psa_generate_random()`: +This example shows how to generate ten bytes of random data by calling +`psa_generate_random()`: ```C psa_status_t status; uint8_t random[10] = { 0 }; @@ -537,13 +596,14 @@ This example shows how to generate ten bytes of random data by calling `psa_gene ### Deriving a new key from an existing key -Mbed Crypto provides a key derivation API that lets you derive new keys from -existing ones. The key derivation API has functions to take inputs, including -other keys and data, and functions to generate outputs, such as new keys or -other data. +The PSA Crypto API provides a key derivation API that lets you derive new keys +from existing ones. The key derivation API has functions to take inputs, +including other keys and data, and functions to generate outputs, such as +new keys or other data. You must first initialize and set up a key derivation context, -provided with a key and, optionally, other data. Then, use the key derivation context to either read derived data to a buffer or send derived data directly to a key slot. +provided with a key and, optionally, other data. Then, use the key derivation context +to either read derived data to a buffer or send derived data directly to a key slot. See the documentation for the particular algorithm (such as HKDF or the TLS1.2 PRF) for information about which inputs to pass when, and when you can obtain which outputs. @@ -675,11 +735,13 @@ derived from the key, salt and info provided: ### Authenticating and encrypting or decrypting a message -Mbed Crypto provides a simple way to authenticate and encrypt with associated data (AEAD), supporting the `PSA_ALG_CCM` algorithm. +The PSA Crypto API provides a simple way to authenticate and encrypt with +associated data (AEAD), supporting the `PSA_ALG_CCM` algorithm. **Prerequisites to working with the AEAD cipher APIs:** * Initialize the library with a successful call to `psa_crypto_init()`. -* The key attributes for the key used for derivation must have the `PSA_KEY_USAGE_ENCRYPT` or `PSA_KEY_USAGE_DECRYPT` usage flags. +* The key attributes for the key used for derivation must have the + `PSA_KEY_USAGE_ENCRYPT` or `PSA_KEY_USAGE_DECRYPT` usage flags. This example shows how to authenticate and encrypt a message: ```C @@ -829,7 +891,7 @@ This example shows how to authenticate and decrypt a message: ### Generating and exporting keys -Mbed Crypto provides a simple way to generate a key or key pair. +The PSA Crypto API provides a simple way to generate a key or key pair. **Prerequisites to using key generation and export APIs:** * Initialize the library with a successful call to `psa_crypto_init()`. @@ -837,7 +899,9 @@ Mbed Crypto provides a simple way to generate a key or key pair. **To generate an ECDSA key:** 1. Set the desired key attributes for key generation by calling `psa_set_key_algorithm()` with the chosen ECDSA algorithm (such as - `PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256)`). You only want to export the public key, not the key pair (or private key); therefore, do not set `PSA_KEY_USAGE_EXPORT`. + `PSA_ALG_DETERMINISTIC_ECDSA(PSA_ALG_SHA_256)`). You only want to export the + public key, not the key pair (or private key); therefore, do not + set `PSA_KEY_USAGE_EXPORT`. 1. Generate a key by calling `psa_generate_key()`. 1. Export the generated public key by calling `psa_export_public_key()`: ```C @@ -891,4 +955,5 @@ Mbed Crypto provides a simple way to generate a key or key pair. ### More about the PSA Crypto API -For more information about the PSA Crypto API, please see the [PSA Cryptography API Specification](https://armmbed.github.io/mbed-crypto/html/index.html). +For more information about the PSA Crypto API, please see the +[PSA Cryptography API Specification](https://arm-software.github.io/psa-api/crypto/). From 1a034dcc20f303589aedbfc72d11bdf39ec00ec9 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 20 Jan 2023 13:18:05 +0000 Subject: [PATCH 1475/1574] Add regression test Signed-off-by: Dave Rodgman --- tests/scripts/all.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 1e10da04c..bf4076492 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -1948,6 +1948,18 @@ component_test_depends_py_pkalgs_psa () { tests/scripts/depends.py pkalgs } +component_build_no_pk_rsa_alt_support () { + msg "build: !MBEDTLS_PK_RSA_ALT_SUPPORT" # ~30s + + scripts/config.py full + scripts/config.py unset MBEDTLS_PK_RSA_ALT_SUPPORT + scripts/config.py set MBEDTLS_RSA_C + scripts/config.py set MBEDTLS_X509_CRT_WRITE_C + + # Only compile - this is primarily to test for compile issues + make CC=gcc CFLAGS='-Werror -Wall -Wextra -I../tests/include/alt-dummy' +} + component_build_module_alt () { msg "build: MBEDTLS_XXX_ALT" # ~30s scripts/config.py full From 39188c0a2a2a5bdf27d4e047f99fd2eeca781baf Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 23 Dec 2022 12:27:04 +0000 Subject: [PATCH 1476/1574] Add unit tests for mbedtls_ct_memcmp and mbedtls_ct_memcpy_if_eq Signed-off-by: Dave Rodgman --- tests/suites/test_suite_constant_time.data | 108 ++++++++++++++++++ .../suites/test_suite_constant_time.function | 77 +++++++++++++ 2 files changed, 185 insertions(+) diff --git a/tests/suites/test_suite_constant_time.data b/tests/suites/test_suite_constant_time.data index 4504aa4d6..2ea3e3e96 100644 --- a/tests/suites/test_suite_constant_time.data +++ b/tests/suites/test_suite_constant_time.data @@ -9,3 +9,111 @@ ssl_cf_memcpy_offset:0:255:32 # we could get this with 255-bytes plaintext and untruncated SHA-384 Constant-flow memcpy from offset: large ssl_cf_memcpy_offset:100:339:48 + +mbedtls_ct_memcmp NULL +mbedtls_ct_memcmp_null + +mbedtls_ct_memcmp len 1 +mbedtls_ct_memcmp:1:1:0 + +mbedtls_ct_memcmp len 3 +mbedtls_ct_memcmp:1:3:0 + +mbedtls_ct_memcmp len 4 +mbedtls_ct_memcmp:1:4:0 + +mbedtls_ct_memcmp len 5 +mbedtls_ct_memcmp:1:5:0 + +mbedtls_ct_memcmp len 15 +mbedtls_ct_memcmp:1:15:0 + +mbedtls_ct_memcmp len 16 +mbedtls_ct_memcmp:1:16:0 + +mbedtls_ct_memcmp len 17 +mbedtls_ct_memcmp:1:17:0 + +mbedtls_ct_memcmp len 1 different +mbedtls_ct_memcmp:0:1:0 + +mbedtls_ct_memcmp len 17 different +mbedtls_ct_memcmp:0:17:0 + +mbedtls_ct_memcmp len 1 offset 1 different +mbedtls_ct_memcmp:0:1:1 + +mbedtls_ct_memcmp len 17 offset 1 different +mbedtls_ct_memcmp:0:17:1 + +mbedtls_ct_memcmp len 1 offset 1 +mbedtls_ct_memcmp:1:1:1 + +mbedtls_ct_memcmp len 1 offset 2 +mbedtls_ct_memcmp:1:1:2 + +mbedtls_ct_memcmp len 1 offset 3 +mbedtls_ct_memcmp:1:1:3 + +mbedtls_ct_memcmp len 5 offset 1 +mbedtls_ct_memcmp:1:5:1 + +mbedtls_ct_memcmp len 5 offset 2 +mbedtls_ct_memcmp:1:5:2 + +mbedtls_ct_memcmp len 5 offset 3 +mbedtls_ct_memcmp:1:5:3 + +mbedtls_ct_memcmp len 17 offset 1 +mbedtls_ct_memcmp:1:17:1 + +mbedtls_ct_memcmp len 17 offset 2 +mbedtls_ct_memcmp:1:17:2 + +mbedtls_ct_memcmp len 17 offset 3 +mbedtls_ct_memcmp:1:17:3 + +mbedtls_ct_memcpy_if_eq len 1 offset 0 +mbedtls_ct_memcpy_if_eq:1:1:0 + +mbedtls_ct_memcpy_if_eq len 1 offset 1 +mbedtls_ct_memcpy_if_eq:1:1:1 + +mbedtls_ct_memcpy_if_eq len 4 offset 0 +mbedtls_ct_memcpy_if_eq:1:1:0 + +mbedtls_ct_memcpy_if_eq len 4 offset 1 +mbedtls_ct_memcpy_if_eq:1:1:1 + +mbedtls_ct_memcpy_if_eq len 4 offset 2 +mbedtls_ct_memcpy_if_eq:1:1:2 + +mbedtls_ct_memcpy_if_eq len 4 offset 3 +mbedtls_ct_memcpy_if_eq:1:1:3 + +mbedtls_ct_memcpy_if_eq len 15 offset 0 +mbedtls_ct_memcpy_if_eq:1:15:0 + +mbedtls_ct_memcpy_if_eq len 15 offset 1 +mbedtls_ct_memcpy_if_eq:1:15:1 + +mbedtls_ct_memcpy_if_eq len 16 offset 0 +mbedtls_ct_memcpy_if_eq:1:16:0 + +mbedtls_ct_memcpy_if_eq len 16 offset 1 +mbedtls_ct_memcpy_if_eq:1:16:1 + +mbedtls_ct_memcpy_if_eq len 17 offset 0 +mbedtls_ct_memcpy_if_eq:1:17:0 + +mbedtls_ct_memcpy_if_eq len 17 offset 1 +mbedtls_ct_memcpy_if_eq:1:17:1 + +mbedtls_ct_memcpy_if_eq len 0 not eq +mbedtls_ct_memcpy_if_eq:0:17:0 + +mbedtls_ct_memcpy_if_eq len 5 offset 1 not eq +mbedtls_ct_memcpy_if_eq:0:5:1 + +mbedtls_ct_memcpy_if_eq len 17 offset 3 not eq +mbedtls_ct_memcpy_if_eq:0:17:3 diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function index a40149ab4..211a656bb 100644 --- a/tests/suites/test_suite_constant_time.function +++ b/tests/suites/test_suite_constant_time.function @@ -15,6 +15,83 @@ #include /* END_HEADER */ +#include + +/* BEGIN_CASE */ +void mbedtls_ct_memcmp_null() +{ + uint32_t x; + TEST_ASSERT(mbedtls_ct_memcmp(&x, NULL, 0) == 0); + TEST_ASSERT(mbedtls_ct_memcmp(NULL, &x, 0) == 0); + TEST_ASSERT(mbedtls_ct_memcmp(NULL, NULL, 0) == 0); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mbedtls_ct_memcmp(int same, int size, int offset) +{ + uint8_t *a = NULL, *b = NULL; + ASSERT_ALLOC(a, size + offset); + ASSERT_ALLOC(b, size + offset); + + TEST_CF_SECRET(a + offset, size); + TEST_CF_SECRET(b + offset, size); + + for (int i = 0; i < size + offset; i++) { + a[i] = i & 0xff; + b[i] = (i & 0xff) + (same ? 0 : 1); + } + + int reference = memcmp(a + offset, b + offset, size); + int actual = mbedtls_ct_memcmp(a + offset, b + offset, size); + TEST_CF_PUBLIC(a + offset, size); + TEST_CF_PUBLIC(b + offset, size); + + if (same != 0) { + TEST_ASSERT(reference == 0); + TEST_ASSERT(actual == 0); + } else { + TEST_ASSERT(reference != 0); + TEST_ASSERT(actual != 0); + } +exit: + mbedtls_free(a); + mbedtls_free(b); +} +/* END_CASE */ + +/* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_MAC */ +void mbedtls_ct_memcpy_if_eq(int eq, int size, int offset) +{ + uint8_t *src = NULL, *result = NULL, *expected = NULL; + ASSERT_ALLOC(src, size + offset); + ASSERT_ALLOC(result, size + offset); + ASSERT_ALLOC(expected, size + offset); + + for (int i = 0; i < size + offset; i++) { + src[i] = 1; + result[i] = 0xff; + expected[i] = eq ? 1 : 0xff; + } + + mbedtls_ct_memcpy_if_eq(result + offset, src, size, eq, 1); + ASSERT_COMPARE(expected, size, result + offset, size); + + for (int i = 0; i < size + offset; i++) { + src[i] = 1; + result[i] = 0xff; + expected[i] = eq ? 1 : 0xff; + } + mbedtls_ct_memcpy_if_eq(result, src + offset, size, eq, 1); + ASSERT_COMPARE(expected, size, result, size); + +exit: + mbedtls_free(src); + mbedtls_free(result); + mbedtls_free(expected); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC:MBEDTLS_TEST_HOOKS */ void ssl_cf_memcpy_offset(int offset_min, int offset_max, int len) { From cb0f2c449111a2071a70b26d27ad58c40444832b Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 23 Dec 2022 13:15:37 +0000 Subject: [PATCH 1477/1574] Tidy-up - move asm #define into build_info.h Signed-off-by: Dave Rodgman --- include/mbedtls/build_info.h | 7 +++++++ include/mbedtls/mbedtls_config.h | 3 +++ library/aesni.c | 6 ------ library/bn_mul.h | 4 ---- library/padlock.c | 6 ------ library/sha256.c | 6 ------ library/sha512.c | 12 ------------ 7 files changed, 10 insertions(+), 34 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index bbfd5d48d..413d5c277 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -59,6 +59,13 @@ #define inline __inline #endif +/* Define `asm` for compilers which don't define it. */ +/* *INDENT-OFF* */ +#ifndef asm +#define asm __asm__ +#endif +/* *INDENT-ON* */ + #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/mbedtls_config.h" #else diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 11c3139bd..2a2c039d7 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -48,8 +48,11 @@ * Requires support for asm() in compiler. * * Used in: + * library/aesni.h * library/aria.c * library/bn_mul.h + * library/constant_time.c + * library/padlock.h * * Required by: * MBEDTLS_AESNI_C diff --git a/library/aesni.c b/library/aesni.c index d4abb4d6c..f6b304d15 100644 --- a/library/aesni.c +++ b/library/aesni.c @@ -37,12 +37,6 @@ #include -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm -#endif -/* *INDENT-ON* */ - #if defined(MBEDTLS_HAVE_X86_64) /* diff --git a/library/bn_mul.h b/library/bn_mul.h index 307c2418f..ab59fbd64 100644 --- a/library/bn_mul.h +++ b/library/bn_mul.h @@ -83,10 +83,6 @@ /* *INDENT-OFF* */ #if defined(MBEDTLS_HAVE_ASM) -#ifndef asm -#define asm __asm -#endif - /* armcc5 --gnu defines __GNUC__ but doesn't support GNU's extended asm */ #if defined(__GNUC__) && \ ( !defined(__ARMCC_VERSION) || __ARMCC_VERSION >= 6000000 ) diff --git a/library/padlock.c b/library/padlock.c index b6c6919cd..f42c40ff9 100644 --- a/library/padlock.c +++ b/library/padlock.c @@ -31,12 +31,6 @@ #include -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm -#endif -/* *INDENT-ON* */ - #if defined(MBEDTLS_HAVE_X86) /* diff --git a/library/sha256.c b/library/sha256.c index 16fd20d8c..cb09a71ec 100644 --- a/library/sha256.c +++ b/library/sha256.c @@ -89,12 +89,6 @@ static int mbedtls_a64_crypto_sha256_determine_support(void) #include #include -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm__ -#endif -/* *INDENT-ON* */ - static jmp_buf return_from_sigill; /* diff --git a/library/sha512.c b/library/sha512.c index 0ea64218b..efcbed413 100644 --- a/library/sha512.c +++ b/library/sha512.c @@ -104,12 +104,6 @@ static int mbedtls_a64_crypto_sha512_determine_support(void) #include #include -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm__ -#endif -/* *INDENT-ON* */ - static jmp_buf return_from_sigill; /* @@ -300,12 +294,6 @@ static const uint64_t K[80] = # define mbedtls_internal_sha512_process_a64_crypto mbedtls_internal_sha512_process #endif -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm__ -#endif -/* *INDENT-ON* */ - /* Accelerated SHA-512 implementation originally written by Simon Tatham for PuTTY, * under the MIT licence; dual-licensed as Apache 2 with his kind permission. */ From 36dfc5a237a555f805de3f414a561cc61aa8e3a3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 22 Dec 2022 15:04:43 +0000 Subject: [PATCH 1478/1574] Improve efficiency of some constant time functions Signed-off-by: Dave Rodgman --- library/constant_time.c | 70 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 65 insertions(+), 5 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index 442eb0e7a..c5b6690dd 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -47,16 +47,64 @@ #include +/* + * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory + * accesses are known to be safe and efficient. + * + * This is needed because mbedtls_get_unaligned_uintXX etc don't support volatile + * memory accesses. + * + * This macro could be moved into alignment.h but for now it's only used here. + */ +#if defined(__ARM_FEATURE_UNALIGNED) +/* __ARM_FEATURE_UNALIGNED is defined by armcc, gcc 7, clang 9 and later versions. */ +#define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS +#endif + +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) && defined(MBEDTLS_HAVE_ASM) +static inline uint32_t mbedtls_get_unaligned_volatile_uint32(volatile const unsigned char *p) +{ + /* This is UB, even where it's safe: + * return *((volatile uint32_t*)p); + * so instead the same thing is expressed in assembly below. + */ + uint32_t r; +#if defined(__arm__) || defined(__thumb__) || defined(__thumb2__) + asm ("ldr %0, [%1]" : "=r" (r) : "r" (p) :); + return r; +#endif +#if defined(__aarch64__) + asm ("ldr %w0, [%1]" : "=r" (r) : "r" (p) :); + return r; +#endif + + /* Always safe, but inefficient, fall-back */ + if (MBEDTLS_IS_BIG_ENDIAN) { + return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; + } else { + return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); + } +} +#endif /* MBEDTLS_EFFICIENT_UNALIGNED_ACCESS */ + int mbedtls_ct_memcmp(const void *a, const void *b, size_t n) { - size_t i; + size_t i = 0; volatile const unsigned char *A = (volatile const unsigned char *) a; volatile const unsigned char *B = (volatile const unsigned char *) b; - volatile unsigned char diff = 0; + volatile uint32_t diff = 0; - for (i = 0; i < n; i++) { +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) + for (; (i + 4) <= n; i += 4) { + uint32_t x = mbedtls_get_unaligned_volatile_uint32(A + i); + uint32_t y = mbedtls_get_unaligned_volatile_uint32(B + i); + diff |= x ^ y; + } +#endif + + for (; i < n; i++) { /* Read volatile data in order before computing diff. * This avoids IAR compiler warning: * 'the order of volatile accesses is undefined ..' */ @@ -414,10 +462,22 @@ void mbedtls_ct_memcpy_if_eq(unsigned char *dest, { /* mask = c1 == c2 ? 0xff : 0x00 */ const size_t equal = mbedtls_ct_size_bool_eq(c1, c2); - const unsigned char mask = (unsigned char) mbedtls_ct_size_mask(equal); /* dest[i] = c1 == c2 ? src[i] : dest[i] */ - for (size_t i = 0; i < len; i++) { + size_t i = 0; +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) + const uint32_t mask32 = (uint32_t) mbedtls_ct_size_mask(equal); + const unsigned char mask = (unsigned char) mask32 & 0xff; + + for (; (i + 4) <= len; i += 4) { + uint32_t a = mbedtls_get_unaligned_uint32(src + i) & mask32; + uint32_t b = mbedtls_get_unaligned_uint32(dest + i) & ~mask32; + mbedtls_put_unaligned_uint32(dest + i, a | b); + } +#else + const unsigned char mask = (unsigned char) mbedtls_ct_size_mask(equal); +#endif /* MBEDTLS_EFFICIENT_UNALIGNED_ACCESS */ + for (; i < len; i++) { dest[i] = (src[i] & mask) | (dest[i] & ~mask); } } From 051225d07abf20df3cb2d03ab4b1ee8c7024089f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 30 Dec 2022 21:25:35 +0000 Subject: [PATCH 1479/1574] Address potential perf regression Ensure platforms that don't have an assembly implementation for mbedtls_get_unaligned_volatile_uint32() don't experience a performance regression. Signed-off-by: Dave Rodgman --- library/constant_time.c | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index c5b6690dd..309e11cd2 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -50,18 +50,29 @@ /* * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory * accesses are known to be safe and efficient. + */ +#if defined(__ARM_FEATURE_UNALIGNED) +/* __ARM_FEATURE_UNALIGNED is defined by armcc, gcc 7, clang 9 and later versions */ +#define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS +#endif + +/* + * Define MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS where assembly is present to + * perform fast unaligned access to volatile data. * * This is needed because mbedtls_get_unaligned_uintXX etc don't support volatile * memory accesses. * - * This macro could be moved into alignment.h but for now it's only used here. + * Some of these definitions could be moved into alignment.h but for now they are + * only used here. */ -#if defined(__ARM_FEATURE_UNALIGNED) -/* __ARM_FEATURE_UNALIGNED is defined by armcc, gcc 7, clang 9 and later versions. */ -#define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) && defined(MBEDTLS_HAVE_ASM) +#if defined(__arm__) || defined(__thumb__) || defined(__thumb2__) || defined(__aarch64__) +#define MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS +#endif #endif -#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) && defined(MBEDTLS_HAVE_ASM) +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS) static inline uint32_t mbedtls_get_unaligned_volatile_uint32(volatile const unsigned char *p) { /* This is UB, even where it's safe: @@ -71,21 +82,12 @@ static inline uint32_t mbedtls_get_unaligned_volatile_uint32(volatile const unsi uint32_t r; #if defined(__arm__) || defined(__thumb__) || defined(__thumb2__) asm ("ldr %0, [%1]" : "=r" (r) : "r" (p) :); - return r; -#endif -#if defined(__aarch64__) +#elif defined(__aarch64__) asm ("ldr %w0, [%1]" : "=r" (r) : "r" (p) :); - return r; #endif - - /* Always safe, but inefficient, fall-back */ - if (MBEDTLS_IS_BIG_ENDIAN) { - return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; - } else { - return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24); - } + return r; } -#endif /* MBEDTLS_EFFICIENT_UNALIGNED_ACCESS */ +#endif /* MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS */ int mbedtls_ct_memcmp(const void *a, const void *b, @@ -96,7 +98,7 @@ int mbedtls_ct_memcmp(const void *a, volatile const unsigned char *B = (volatile const unsigned char *) b; volatile uint32_t diff = 0; -#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS) for (; (i + 4) <= n; i += 4) { uint32_t x = mbedtls_get_unaligned_volatile_uint32(A + i); uint32_t y = mbedtls_get_unaligned_volatile_uint32(B + i); From b9cd19bc8c6196511eb1d10094c62e58e5da6eed Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Fri, 30 Dec 2022 21:32:03 +0000 Subject: [PATCH 1480/1574] Prevent perf regressions in mbedtls_xor Signed-off-by: Dave Rodgman --- library/alignment.h | 13 +++++++++++++ library/common.h | 6 ++++-- library/constant_time.c | 9 --------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index bfc965eae..aa4c430b9 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -29,6 +29,19 @@ #include "mbedtls/build_info.h" +/* + * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory + * accesses are known to be safe and efficient. + */ +#if defined(__ARM_FEATURE_UNALIGNED) \ + || defined(__i386__) || defined(__amd64__) || defined(__x86_64__) +/* + * __ARM_FEATURE_UNALIGNED is defined where appropriate by armcc, gcc 7, clang 9 + * (and later versions); all x86 platforms should have efficient unaligned access. + */ +#define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS +#endif + /** * Read the unsigned 16 bits integer from the given address, which need not * be aligned. diff --git a/library/common.h b/library/common.h index fd3ddba48..ae6625b9e 100644 --- a/library/common.h +++ b/library/common.h @@ -122,11 +122,13 @@ static inline const unsigned char *mbedtls_buffer_offset_const( */ inline void mbedtls_xor(unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n) { - size_t i; - for (i = 0; (i + 4) <= n; i += 4) { + size_t i = 0; +#if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS) + for (; (i + 4) <= n; i += 4) { uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i); mbedtls_put_unaligned_uint32(r + i, x); } +#endif for (; i < n; i++) { r[i] = a[i] ^ b[i]; } diff --git a/library/constant_time.c b/library/constant_time.c index 309e11cd2..89778d53c 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -47,15 +47,6 @@ #include -/* - * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory - * accesses are known to be safe and efficient. - */ -#if defined(__ARM_FEATURE_UNALIGNED) -/* __ARM_FEATURE_UNALIGNED is defined by armcc, gcc 7, clang 9 and later versions */ -#define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS -#endif - /* * Define MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS where assembly is present to * perform fast unaligned access to volatile data. From 7f376fa6fc2f1536aa17440ea2e4bb80ee454f26 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 5 Jan 2023 12:25:15 +0000 Subject: [PATCH 1481/1574] Improve documentation Signed-off-by: Dave Rodgman --- library/alignment.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/alignment.h b/library/alignment.h index aa4c430b9..aa09ff856 100644 --- a/library/alignment.h +++ b/library/alignment.h @@ -31,13 +31,17 @@ /* * Define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS for architectures where unaligned memory - * accesses are known to be safe and efficient. + * accesses are known to be efficient. + * + * All functions defined here will behave correctly regardless, but might be less + * efficient when this is not defined. */ #if defined(__ARM_FEATURE_UNALIGNED) \ || defined(__i386__) || defined(__amd64__) || defined(__x86_64__) /* * __ARM_FEATURE_UNALIGNED is defined where appropriate by armcc, gcc 7, clang 9 - * (and later versions); all x86 platforms should have efficient unaligned access. + * (and later versions) for Arm v7 and later; all x86 platforms should have + * efficient unaligned access. */ #define MBEDTLS_EFFICIENT_UNALIGNED_ACCESS #endif From 95ec58cc12326b5ed8270db505d8a1e366b619a7 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 5 Jan 2023 12:26:48 +0000 Subject: [PATCH 1482/1574] Remove not-needed stdio include from tests Signed-off-by: Dave Rodgman --- tests/suites/test_suite_alignment.function | 1 - tests/suites/test_suite_constant_time.function | 2 -- 2 files changed, 3 deletions(-) diff --git a/tests/suites/test_suite_alignment.function b/tests/suites/test_suite_alignment.function index 6c98f233a..f6703318c 100644 --- a/tests/suites/test_suite_alignment.function +++ b/tests/suites/test_suite_alignment.function @@ -6,7 +6,6 @@ #if defined(__clang__) #pragma clang diagnostic ignored "-Wunreachable-code" #endif -#include /* * Convert a string of the form "abcd" (case-insensitive) to a uint64_t. diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function index 211a656bb..aa605d2fe 100644 --- a/tests/suites/test_suite_constant_time.function +++ b/tests/suites/test_suite_constant_time.function @@ -15,8 +15,6 @@ #include /* END_HEADER */ -#include - /* BEGIN_CASE */ void mbedtls_ct_memcmp_null() { From fa96026a0e760fab0149b2adb08a34d3b7d51438 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Tue, 10 Jan 2023 11:14:02 +0000 Subject: [PATCH 1483/1574] Move definition of asm out of public header Signed-off-by: Dave Rodgman --- include/mbedtls/build_info.h | 7 ------- library/common.h | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/mbedtls/build_info.h b/include/mbedtls/build_info.h index 413d5c277..bbfd5d48d 100644 --- a/include/mbedtls/build_info.h +++ b/include/mbedtls/build_info.h @@ -59,13 +59,6 @@ #define inline __inline #endif -/* Define `asm` for compilers which don't define it. */ -/* *INDENT-OFF* */ -#ifndef asm -#define asm __asm__ -#endif -/* *INDENT-ON* */ - #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/mbedtls_config.h" #else diff --git a/library/common.h b/library/common.h index ae6625b9e..46af79f0d 100644 --- a/library/common.h +++ b/library/common.h @@ -142,4 +142,11 @@ inline void mbedtls_xor(unsigned char *r, const unsigned char *a, const unsigned #define /*no-check-names*/ __func__ __FUNCTION__ #endif +/* Define `asm` for compilers which don't define it. */ +/* *INDENT-OFF* */ +#ifndef asm +#define asm __asm__ +#endif +/* *INDENT-ON* */ + #endif /* MBEDTLS_LIBRARY_COMMON_H */ From 7658b633901112c5e2d9a1ae7112d69779d6fef1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Wed, 11 Jan 2023 17:39:33 +0000 Subject: [PATCH 1484/1574] Remove volatile from diff; add explanatory comment Signed-off-by: Dave Rodgman --- library/constant_time.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/constant_time.c b/library/constant_time.c index 89778d53c..7f4d509bc 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -85,9 +85,15 @@ int mbedtls_ct_memcmp(const void *a, size_t n) { size_t i = 0; + /* + * `A` and `B` are cast to volatile to ensure that the compiler + * generates code that always fully reads both buffers. + * Otherwise it could generate a test to exit early if `diff` has all + * bits set early in the loop. + */ volatile const unsigned char *A = (volatile const unsigned char *) a; volatile const unsigned char *B = (volatile const unsigned char *) b; - volatile uint32_t diff = 0; + uint32_t diff = 0; #if defined(MBEDTLS_EFFICIENT_UNALIGNED_VOLATILE_ACCESS) for (; (i + 4) <= n; i += 4) { From 22b0d1adbfb0270ac4c244449f40252dda2112d3 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Sat, 21 Jan 2023 10:29:00 +0000 Subject: [PATCH 1485/1574] Test memcmp with differences starting after the first byte Signed-off-by: Dave Rodgman --- tests/suites/test_suite_constant_time.data | 74 ++++++++++++------- .../suites/test_suite_constant_time.function | 12 ++- 2 files changed, 56 insertions(+), 30 deletions(-) diff --git a/tests/suites/test_suite_constant_time.data b/tests/suites/test_suite_constant_time.data index 2ea3e3e96..91a25facc 100644 --- a/tests/suites/test_suite_constant_time.data +++ b/tests/suites/test_suite_constant_time.data @@ -14,25 +14,25 @@ mbedtls_ct_memcmp NULL mbedtls_ct_memcmp_null mbedtls_ct_memcmp len 1 -mbedtls_ct_memcmp:1:1:0 +mbedtls_ct_memcmp:-1:1:0 mbedtls_ct_memcmp len 3 -mbedtls_ct_memcmp:1:3:0 +mbedtls_ct_memcmp:-1:3:0 mbedtls_ct_memcmp len 4 -mbedtls_ct_memcmp:1:4:0 +mbedtls_ct_memcmp:-1:4:0 mbedtls_ct_memcmp len 5 -mbedtls_ct_memcmp:1:5:0 +mbedtls_ct_memcmp:-1:5:0 mbedtls_ct_memcmp len 15 -mbedtls_ct_memcmp:1:15:0 +mbedtls_ct_memcmp:-1:15:0 mbedtls_ct_memcmp len 16 -mbedtls_ct_memcmp:1:16:0 +mbedtls_ct_memcmp:-1:16:0 mbedtls_ct_memcmp len 17 -mbedtls_ct_memcmp:1:17:0 +mbedtls_ct_memcmp:-1:17:0 mbedtls_ct_memcmp len 1 different mbedtls_ct_memcmp:0:1:0 @@ -40,38 +40,56 @@ mbedtls_ct_memcmp:0:1:0 mbedtls_ct_memcmp len 17 different mbedtls_ct_memcmp:0:17:0 +mbedtls_ct_memcmp len 17 different 1 +mbedtls_ct_memcmp:1:17:0 + +mbedtls_ct_memcmp len 17 different 4 +mbedtls_ct_memcmp:4:17:0 + +mbedtls_ct_memcmp len 17 different 10 +mbedtls_ct_memcmp:10:17:0 + +mbedtls_ct_memcmp len 17 different 16 +mbedtls_ct_memcmp:16:17:0 + mbedtls_ct_memcmp len 1 offset 1 different mbedtls_ct_memcmp:0:1:1 mbedtls_ct_memcmp len 17 offset 1 different mbedtls_ct_memcmp:0:17:1 -mbedtls_ct_memcmp len 1 offset 1 -mbedtls_ct_memcmp:1:1:1 - -mbedtls_ct_memcmp len 1 offset 2 -mbedtls_ct_memcmp:1:1:2 - -mbedtls_ct_memcmp len 1 offset 3 -mbedtls_ct_memcmp:1:1:3 - -mbedtls_ct_memcmp len 5 offset 1 -mbedtls_ct_memcmp:1:5:1 - -mbedtls_ct_memcmp len 5 offset 2 -mbedtls_ct_memcmp:1:5:2 - -mbedtls_ct_memcmp len 5 offset 3 -mbedtls_ct_memcmp:1:5:3 - -mbedtls_ct_memcmp len 17 offset 1 +mbedtls_ct_memcmp len 17 offset 1 different 1 mbedtls_ct_memcmp:1:17:1 +mbedtls_ct_memcmp len 17 offset 1 different 5 +mbedtls_ct_memcmp:5:17:1 + +mbedtls_ct_memcmp len 1 offset 1 +mbedtls_ct_memcmp:-1:1:1 + +mbedtls_ct_memcmp len 1 offset 2 +mbedtls_ct_memcmp:-1:1:2 + +mbedtls_ct_memcmp len 1 offset 3 +mbedtls_ct_memcmp:-1:1:3 + +mbedtls_ct_memcmp len 5 offset 1 +mbedtls_ct_memcmp:-1:5:1 + +mbedtls_ct_memcmp len 5 offset 2 +mbedtls_ct_memcmp:-1:5:2 + +mbedtls_ct_memcmp len 5 offset 3 +mbedtls_ct_memcmp:-1:5:3 + +mbedtls_ct_memcmp len 17 offset 1 +mbedtls_ct_memcmp:-1:17:1 + mbedtls_ct_memcmp len 17 offset 2 -mbedtls_ct_memcmp:1:17:2 +mbedtls_ct_memcmp:-1:17:2 mbedtls_ct_memcmp len 17 offset 3 -mbedtls_ct_memcmp:1:17:3 +mbedtls_ct_memcmp:-1:17:3 mbedtls_ct_memcpy_if_eq len 1 offset 0 mbedtls_ct_memcpy_if_eq:1:1:0 diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function index aa605d2fe..167962fb4 100644 --- a/tests/suites/test_suite_constant_time.function +++ b/tests/suites/test_suite_constant_time.function @@ -35,9 +35,17 @@ void mbedtls_ct_memcmp(int same, int size, int offset) TEST_CF_SECRET(a + offset, size); TEST_CF_SECRET(b + offset, size); + /* Construct data that matches, if same == -1, otherwise + * same gives the number of bytes (after the initial offset) + * that will match; after that it will differ. + */ for (int i = 0; i < size + offset; i++) { a[i] = i & 0xff; - b[i] = (i & 0xff) + (same ? 0 : 1); + if (same == -1 || (i - offset) < same) { + b[i] = a[i]; + } else { + b[i] = (i + 1) & 0xff; + } } int reference = memcmp(a + offset, b + offset, size); @@ -45,7 +53,7 @@ void mbedtls_ct_memcmp(int same, int size, int offset) TEST_CF_PUBLIC(a + offset, size); TEST_CF_PUBLIC(b + offset, size); - if (same != 0) { + if (same == -1 || same >= size) { TEST_ASSERT(reference == 0); TEST_ASSERT(actual == 0); } else { From 58c721e89461a2f2d5c2527b4bafcfde02604189 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Sat, 21 Jan 2023 11:00:30 +0000 Subject: [PATCH 1486/1574] Add TEST_CF_SECRET to mbedtls_ct_memcpy_if_eq test Signed-off-by: Dave Rodgman --- .../suites/test_suite_constant_time.function | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/suites/test_suite_constant_time.function b/tests/suites/test_suite_constant_time.function index 167962fb4..14dc8ae5c 100644 --- a/tests/suites/test_suite_constant_time.function +++ b/tests/suites/test_suite_constant_time.function @@ -80,7 +80,17 @@ void mbedtls_ct_memcpy_if_eq(int eq, int size, int offset) expected[i] = eq ? 1 : 0xff; } - mbedtls_ct_memcpy_if_eq(result + offset, src, size, eq, 1); + int one, secret_eq; + TEST_CF_SECRET(&one, sizeof(one)); + TEST_CF_SECRET(&secret_eq, sizeof(secret_eq)); + one = 1; + secret_eq = eq; + + mbedtls_ct_memcpy_if_eq(result + offset, src, size, secret_eq, one); + + TEST_CF_PUBLIC(&one, sizeof(one)); + TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq)); + ASSERT_COMPARE(expected, size, result + offset, size); for (int i = 0; i < size + offset; i++) { @@ -88,9 +98,18 @@ void mbedtls_ct_memcpy_if_eq(int eq, int size, int offset) result[i] = 0xff; expected[i] = eq ? 1 : 0xff; } - mbedtls_ct_memcpy_if_eq(result, src + offset, size, eq, 1); - ASSERT_COMPARE(expected, size, result, size); + TEST_CF_SECRET(&one, sizeof(one)); + TEST_CF_SECRET(&secret_eq, sizeof(secret_eq)); + one = 1; + secret_eq = eq; + + mbedtls_ct_memcpy_if_eq(result, src + offset, size, secret_eq, one); + + TEST_CF_PUBLIC(&one, sizeof(one)); + TEST_CF_PUBLIC(&secret_eq, sizeof(secret_eq)); + + ASSERT_COMPARE(expected, size, result, size); exit: mbedtls_free(src); mbedtls_free(result); From 8692ec8bc0954b50c7bc33295b4a54bf946ccc32 Mon Sep 17 00:00:00 2001 From: Minos Galanakis Date: Fri, 20 Jan 2023 15:27:32 +0000 Subject: [PATCH 1487/1574] pkarse: Added `pk_group_id_from_specified()` documentation. Signed-off-by: Minos Galanakis --- library/pkparse.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/pkparse.c b/library/pkparse.c index 53e6dd0ba..ccca692b7 100644 --- a/library/pkparse.c +++ b/library/pkparse.c @@ -429,6 +429,13 @@ static int pk_group_id_from_specified(const mbedtls_asn1_buf *params, ret = pk_group_id_from_group(&grp, grp_id); cleanup: + /* The API respecting lifecycle for mbedtls_ecp_group struct is + * _init(), _load() and _free(). In pk_group_id_from_specified() the + * temporary grp breaks that flow and it's members are populated + * by pk_group_id_from_group(). As such mbedtls_ecp_group_free() + * which is assuming a group populated by _setup() may not clean-up + * properly -> Manually free it's members. + */ mbedtls_mpi_free(&grp.N); mbedtls_mpi_free(&grp.P); mbedtls_mpi_free(&grp.A); From 98682b50a4aafded139db3684360b7c8069e207b Mon Sep 17 00:00:00 2001 From: Andrzej Kurek Date: Mon, 23 Jan 2023 06:16:23 -0500 Subject: [PATCH 1488/1574] Remove obsolete comment from depends.py Signed-off-by: Andrzej Kurek --- tests/scripts/depends.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/scripts/depends.py b/tests/scripts/depends.py index 5714f9a6a..52ca41261 100755 --- a/tests/scripts/depends.py +++ b/tests/scripts/depends.py @@ -419,8 +419,7 @@ class DomainData: exclude=r'MBEDTLS_(MD|RIPEMD|SHA1_)' \ '|MBEDTLS_SHA224_' \ '|MBEDTLS_SHA384_'), - # Key exchange types. Only build the library and the sample - # programs. + # Key exchange types. 'kex': ExclusiveDomain(key_exchange_symbols, build_and_test), 'pkalgs': ComplementaryDomain(['MBEDTLS_ECDSA_C', 'MBEDTLS_ECP_C', From 5a2e02635aade3d83eab18d800c093f9cdc5345b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 23 Jan 2023 12:51:52 +0100 Subject: [PATCH 1489/1574] Improve a few comments & documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- docs/architecture/psa-migration/outcome-analysis.sh | 4 ++-- docs/architecture/psa-migration/strategy.md | 2 +- tests/scripts/all.sh | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/architecture/psa-migration/outcome-analysis.sh b/docs/architecture/psa-migration/outcome-analysis.sh index 6603c3ae5..b26963b90 100755 --- a/docs/architecture/psa-migration/outcome-analysis.sh +++ b/docs/architecture/psa-migration/outcome-analysis.sh @@ -10,8 +10,8 @@ # # USAGE: # - First, commit any uncommited changes. (Also, see warning below.) -# - including ssl-opt.sh: docs/architecture/psa-migration/outcome-analysis.sh -# - or: SKIP_SSL_OPT=1 docs/architecture/psa-migration/outcome-analysis.sh +# - Then launch --> [SKIP_SSL_OPT=1] docs/architecture/psa-migration/outcome-analysis.sh +# - SKIP_SSL_OPT=1 can optionally be set to skip ssl-opt.sh tests # # WARNING: this script checks out a commit other than the head of the current # branch; it checks out the current branch again when running successfully, diff --git a/docs/architecture/psa-migration/strategy.md b/docs/architecture/psa-migration/strategy.md index 07fc48859..154232474 100644 --- a/docs/architecture/psa-migration/strategy.md +++ b/docs/architecture/psa-migration/strategy.md @@ -393,7 +393,7 @@ manually for each PR that changes dependency declarations by using the script 2. The set of tests skipped in the driver-only build is the same as in an equivalent software-based configuration. This is tested automatically by the CI in the "Results analysis" stage, by running -`tests/scripts/analyze_outcomes.csv`. See the +`tests/scripts/analyze_outcomes.py`. See the `analyze_driver_vs_reference_xxx` actions in the script and the comments above their declaration for how to do that locally. diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index ff1efe795..73191b64d 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2053,8 +2053,8 @@ component_test_psa_crypto_config_accel_ecdsa_use_psa () { loc_accel_flags=$( echo "$loc_accel_list" | sed 's/[^ ]* */-DLIBTESTDRIVER1_MBEDTLS_PSA_ACCEL_&/g' ) make -C tests libtestdriver1.a CFLAGS="$ASAN_CFLAGS $loc_accel_flags" LDFLAGS="$ASAN_CFLAGS" - # Configure and build the test driver library - # ------------------------------------------- + # Configure and build the main libraries with drivers enabled + # ----------------------------------------------------------- # Use the same config as reference, only without built-in ECDSA config_psa_crypto_config_ecdsa_use_psa 1 From bc19a0b0d8e04162259df0201b1617edf72f0c2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 23 Jan 2023 12:54:24 +0100 Subject: [PATCH 1490/1574] Fix missing SHA-224 in test driver build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 73191b64d..2412c60f1 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2046,7 +2046,9 @@ component_test_psa_crypto_config_accel_ecdsa_use_psa () { scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_STREAM_CIPHER scripts/config.py -f include/psa/crypto_config.h unset PSA_WANT_ALG_ECB_NO_PADDING - # SHA384 needed for some ECDSA signature tests. + # All SHA-2 variants are needed for ECDSA signature tests, + # but only SHA-256 is enabled by default, so enable the others. + scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA224_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA384_C scripts/config.py -f tests/include/test/drivers/config_test_driver.h set MBEDTLS_SHA512_C From d84902f4efcfbde7bfa5d1de49df93801a79c536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 23 Jan 2023 13:03:13 +0100 Subject: [PATCH 1491/1574] Add issue numbers to TODO comments MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the python script I didn't use the word TODO because pylint doesn't like that, but morally it's the same. I removed the comment about "do we need a subset of compat.sh?" because it turns out that `ssl-opt.sh` is already exercising all the key exchanges: % sed -n 's/.*force_ciphersuite=TLS-\([^ ]*\)-WITH.*/\1/p' tests/ssl-opt.sh | sort -u DHE-PSK DHE-RSA ECDH-ECDSA ECDHE-ECDSA ECDHE-PSK ECDHE-RSA ECJPAKE PSK RSA RSA-PSK (the only omission is ECDH-RSA which is not of interest here and does not actually differ from ECDH-ECDSA). So, we don't need a subset of compat.sh because we're already getting enough testing from ssl-opt.sh (not to mention test_suite_ssl). Signed-off-by: Manuel Pégourié-Gonnard --- tests/scripts/all.sh | 7 +++---- tests/scripts/analyze_outcomes.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 2412c60f1..fa82733ed 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -2026,7 +2026,7 @@ config_psa_crypto_config_ecdsa_use_psa () { scripts/config.py unset MBEDTLS_ECDSA_C fi # Disable things that depend on it - # TODO: make these work + # TODO: make these work - #6862 scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED scripts/config.py unset MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED } @@ -2074,8 +2074,7 @@ component_test_psa_crypto_config_accel_ecdsa_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" make test - # TODO: ssl-opt.sh (currently doesn't pass) - # TODO: is some subset of compat.sh needed? + # TODO: ssl-opt.sh (currently doesn't pass) - #6861 } # Keep in sync with component_test_psa_crypto_config_accel_ecdsa_use_psa. @@ -2094,7 +2093,7 @@ component_test_psa_crypto_config_reference_ecdsa_use_psa () { msg "test: MBEDTLS_PSA_CRYPTO_CONFIG with accelerated ECDSA + USE_PSA" make test - # TODO: ssl-opt.sh (when the accel component is ready) + # TODO: ssl-opt.sh (when the accel component is ready) - #6861 } component_test_psa_crypto_config_accel_ecdh () { diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 482d64e7c..eeded5f62 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -164,14 +164,14 @@ TASKS = { 'ecdsa', # the software implementation that's excluded # the following lines should not be needed, # they will be removed by upcoming work - 'psa_crypto_se_driver_hal', - 'random', - 'ecp', - 'pk', - 'x509parse', - 'x509write', - 'debug', - 'ssl', + 'psa_crypto_se_driver_hal', # #6856 + 'random', # #6856 + 'ecp', # #6856 + 'pk', # #6857 + 'x509parse', # #6858 + 'x509write', # #6858 + 'debug', # #6860 + 'ssl', # #6860 ]}}, } From 99ff0a7c506b922e31b0a91abcfc4441ef48c7d1 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 23 Jan 2023 12:31:01 +0000 Subject: [PATCH 1492/1574] Fix some additional over-long lines Signed-off-by: Dave Rodgman --- docs/getting_started.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index 858e0ed07..c309c4eff 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -20,8 +20,8 @@ Mbed TLS is distributed under the Apache License, version 2.0. #### Platform Security Architecture (PSA) Arm's Platform Security Architecture (PSA) is a holistic set of threat models, -security analyses, hardware and firmware architecture specifications, and an open -source firmware reference implementation. PSA provides a recipe, based on +security analyses, hardware and firmware architecture specifications, and an +open source firmware reference implementation. PSA provides a recipe, based on industry best practice, that enables you to design security into both hardware and firmware consistently. Part of the API provided by PSA is the cryptography interface, which provides access to a set of primitives. @@ -204,8 +204,9 @@ symmetric cipher algorithms (both block and stream ciphers). **Prerequisites to working with the symmetric cipher API:** * Initialize the library with a successful call to `psa_crypto_init()`. -* Have a symmetric key. This key's usage flags must include `PSA_KEY_USAGE_ENCRYPT` - to allow encryption or `PSA_KEY_USAGE_DECRYPT` to allow decryption. +* Have a symmetric key. This key's usage flags must include + `PSA_KEY_USAGE_ENCRYPT` to allow encryption or `PSA_KEY_USAGE_DECRYPT` to + allow decryption. **To encrypt a message with a symmetric cipher:** 1. Allocate an operation (`psa_cipher_operation_t`) structure to pass to the @@ -602,11 +603,13 @@ including other keys and data, and functions to generate outputs, such as new keys or other data. You must first initialize and set up a key derivation context, -provided with a key and, optionally, other data. Then, use the key derivation context -to either read derived data to a buffer or send derived data directly to a key slot. +provided with a key and, optionally, other data. Then, use the key derivation +context to either read derived data to a buffer or send derived data directly +to a key slot. -See the documentation for the particular algorithm (such as HKDF or the TLS1.2 PRF) for -information about which inputs to pass when, and when you can obtain which outputs. +See the documentation for the particular algorithm (such as HKDF or the +TLS 1.2 PRF) for information about which inputs to pass when, and when you can +obtain which outputs. **Prerequisites to working with the key derivation APIs:** * Initialize the library with a successful call to `psa_crypto_init()`. @@ -623,11 +626,11 @@ with a given key, salt and info:** function, specifying the derivation algorithm `PSA_ALG_HKDF(PSA_ALG_SHA_256)`. 1. Provide an optional salt with `psa_key_derivation_input_bytes()`. 1. Provide info with `psa_key_derivation_input_bytes()`. -1. Provide a secret with `psa_key_derivation_input_key()`, referencing a key that - can be used for key derivation. +1. Provide a secret with `psa_key_derivation_input_key()`, referencing a key + that can be used for key derivation. 1. Set the key attributes desired for the new derived key. We'll set - the `PSA_KEY_USAGE_ENCRYPT` usage flag and the `PSA_ALG_CTR` algorithm for this - example. + the `PSA_KEY_USAGE_ENCRYPT` usage flag and the `PSA_ALG_CTR` algorithm for + this example. 1. Derive the key by calling `psa_key_derivation_output_key()`. 1. Clean up the key derivation context. From 17292f78233f2a72f4abfdeddb8e8d57d09db71f Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 23 Jan 2023 12:32:51 +0000 Subject: [PATCH 1493/1574] Minor fixes Signed-off-by: Dave Rodgman --- docs/getting_started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting_started.md b/docs/getting_started.md index c309c4eff..507afa163 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -39,7 +39,7 @@ interface, which provides access to a set of primitives. * [Generating a random value](#generating-a-random-value) * [Authenticating and encrypting or decrypting a message](#authenticating-and-encrypting-or-decrypting-a-message) * [Generating and exporting keys](#generating-and-exporting-keys) -* [More about the Mbed TLS library](#more-about-the-psa-crypto-api) +* [More about the PSA Crypto API](#more-about-the-psa-crypto-api) ### Getting the Mbed TLS library @@ -72,8 +72,8 @@ directory to the target machine. ### Using the PSA Crypto API -To use the PSA APIs, call `psa_crypto_init()` before calling any other PSA API. -This initializes the library. +If using PSA Crypto, you must initialize the library by calling +`psa_crypto_init()` before any other PSA API. ### Importing a key From 37dabd540b060e348c284259916bf29e5c929251 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Mon, 23 Jan 2023 16:57:26 +0000 Subject: [PATCH 1494/1574] Fix doxygen return parameter spelling Signed-off-by: Tom Cosgrove --- library/bignum_mod_raw.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw.h b/library/bignum_mod_raw.h index da8db6f33..94f850351 100644 --- a/library/bignum_mod_raw.h +++ b/library/bignum_mod_raw.h @@ -346,7 +346,7 @@ void mbedtls_mpi_mod_raw_add(mbedtls_mpi_uint *X, * is unspecified. * \param[in] N The modulus structure. * - *\ return \c 0 if successful. + * \return \c 0 if successful. * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code. */ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( @@ -363,7 +363,7 @@ int mbedtls_mpi_mod_raw_canonical_to_modulus_rep( * is unspecified. * \param[in] N The modulus structure. * - *\ return \c 0 if successful. + * \return \c 0 if successful. * Otherwise an \c MBEDTLS_ERR_MPI_xxx error code. */ int mbedtls_mpi_mod_raw_modulus_to_canonical_rep( From aaa1d2a276cc78de112f1c38477614fa1e718eca Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 23 Jan 2023 16:13:43 +0100 Subject: [PATCH 1495/1574] Move the quasi reduction fixing function to bignum_mod_raw Rename the function to 'fix_quasi_reduction' to better suite its functionality. Also changed the name prefix to suite for the new module. Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 15 +++ ...p_internal.h => bignum_mod_raw_invasive.h} | 17 ++-- library/ecp.c | 15 --- scripts/mbedtls_dev/bignum_mod_raw.py | 27 ++++++ scripts/mbedtls_dev/ecp.py | 52 ----------- scripts/mbedtls_dev/ecp_common.py | 22 ----- tests/CMakeLists.txt | 16 ---- tests/Makefile | 22 +---- tests/scripts/check-generated-files.sh | 1 - tests/scripts/generate_ecp_tests.py | 68 -------------- tests/suites/test_suite_bignum_mod_raw.data | 3 + .../suites/test_suite_bignum_mod_raw.function | 92 +++++++++++++++++++ tests/suites/test_suite_ecp.data | 3 - tests/suites/test_suite_ecp.function | 92 +------------------ 14 files changed, 149 insertions(+), 296 deletions(-) rename library/{ecp_internal.h => bignum_mod_raw_invasive.h} (73%) delete mode 100644 scripts/mbedtls_dev/ecp.py delete mode 100644 scripts/mbedtls_dev/ecp_common.py delete mode 100755 tests/scripts/generate_ecp_tests.py diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index aa2bd46cc..b23218200 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -128,6 +128,21 @@ void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, N->rep.mont.mm, T); } +MBEDTLS_STATIC_TESTABLE +int mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N) +{ + if (N->limbs == 0) { + return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; + } + + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); + + (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); + + return 0; +} + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ diff --git a/library/ecp_internal.h b/library/bignum_mod_raw_invasive.h similarity index 73% rename from library/ecp_internal.h rename to library/bignum_mod_raw_invasive.h index b028225e6..3d4afedff 100644 --- a/library/ecp_internal.h +++ b/library/bignum_mod_raw_invasive.h @@ -1,8 +1,8 @@ /** - * \file ecp_internal.h + * \file bignum_mod_raw_invasive.h * - * \brief Function declarations for internal functions of elliptic curve - * point arithmetic. + * \brief Function declarations for invasive functions of Low-level + * modular bignum. */ /** * Copyright The Mbed TLS Contributors @@ -21,8 +21,8 @@ * limitations under the License. */ -#ifndef MBEDTLS_ECP_INTERNAL_H -#define MBEDTLS_ECP_INTERNAL_H +#ifndef MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H +#define MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H #include "common.h" #include "mbedtls/bignum.h" @@ -40,7 +40,8 @@ * \return \c 0 if successful. * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p N is invalid. */ -int mbedtls_ecp_quasi_reduction(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N); +MBEDTLS_STATIC_TESTABLE +int mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N); -#endif /* MBEDTLS_ECP_INTERNAL_H */ +#endif /* MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H */ diff --git a/library/ecp.c b/library/ecp.c index 835bfa3bc..6f53c1bdc 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -79,7 +79,6 @@ #include "bn_mul.h" #include "ecp_invasive.h" -#include "ecp_internal.h" #include "bignum_core.h" #include @@ -1031,20 +1030,6 @@ cleanup: return ret; } -int mbedtls_ecp_quasi_reduction(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N) -{ - if (N->limbs == 0) { - return MBEDTLS_ERR_ECP_BAD_INPUT_DATA; - } - - mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); - - (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); - - return 0; -} - /* * Fast mod-p functions expect their argument to be in the 0..p^2 range. * diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index f9d9899f6..5645685a5 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -51,6 +51,33 @@ class BignumModRawSub(bignum_common.ModOperationCommon, result = (self.int_a - self.int_b) % self.int_n return [self.format_result(result)] +class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, + BignumModRawTarget): + """Test cases for ecp quasi_reduction().""" + symbol = "-" + test_function = "mpi_mod_raw_fix_quasi_reduction" + test_name = "mbedtls_mpi_mod_raw_fix_quasi_reduction" + input_style = "fixed" + arity = 1 + + # Extend the default values with n < x < 2n + input_values = bignum_common.ModOperationCommon.input_values + [ + "73", + "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", + ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" + "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" + "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" + "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") + ] # type: List[str] + + def result(self) -> List[str]: + result = self.int_a % self.int_n + return [self.format_result(result)] + + @property + def is_valid(self) -> bool: + return bool(self.int_a < 2 * self.int_n) + class BignumModRawMul(bignum_common.ModOperationCommon, BignumModRawTarget): """Test cases for bignum mpi_mod_raw_mul().""" diff --git a/scripts/mbedtls_dev/ecp.py b/scripts/mbedtls_dev/ecp.py deleted file mode 100644 index f9d6af51d..000000000 --- a/scripts/mbedtls_dev/ecp.py +++ /dev/null @@ -1,52 +0,0 @@ -"""Framework classes for generation of ecp test cases.""" -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from typing import List - -from . import test_data_generation -from . import ecp_common - -class EcpTarget(test_data_generation.BaseTarget): - #pylint: disable=abstract-method, too-few-public-methods - """Target for ecp test case generation.""" - target_basename = 'test_suite_ecp.generated' - -class EcpQuasiReduction(ecp_common.EcpOperationCommon, - EcpTarget): - """Test cases for ecp quasi_reduction().""" - symbol = "-" - test_function = "ecp_quasi_reduction" - test_name = "mbedtls_ecp_quasi_reduction" - input_style = "fixed" - arity = 1 - - # Extend the default values with n < x < 2n - input_values = ecp_common.EcpOperationCommon.input_values + [ - "73", - "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", - ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" - "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" - "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" - "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") - ] # type: List[str] - - def result(self) -> List[str]: - result = self.int_a % self.int_n - return [self.format_result(result)] - - @property - def is_valid(self) -> bool: - return bool(self.int_a < 2 * self.int_n) diff --git a/scripts/mbedtls_dev/ecp_common.py b/scripts/mbedtls_dev/ecp_common.py deleted file mode 100644 index 311b9121c..000000000 --- a/scripts/mbedtls_dev/ecp_common.py +++ /dev/null @@ -1,22 +0,0 @@ -"""Common features for ecp in test generation framework.""" -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from . import bignum_common - -class EcpOperationCommon(bignum_common.ModOperationCommon): - #pylint: disable=abstract-method - """Target for ecp test case generation.""" - pass diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8276bba65..4a7de820a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -29,18 +29,6 @@ execute_process( string(REGEX REPLACE "[^;]*/" "" base_bignum_generated_data_files "${base_bignum_generated_data_files}") -execute_process( - COMMAND - ${MBEDTLS_PYTHON_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/../tests/scripts/generate_ecp_tests.py - --list-for-cmake - WORKING_DIRECTORY - ${CMAKE_CURRENT_SOURCE_DIR}/.. - OUTPUT_VARIABLE - base_ecp_generated_data_files) -string(REGEX REPLACE "[^;]*/" "" - base_ecp_generated_data_files "${base_ecp_generated_data_files}") - execute_process( COMMAND ${MBEDTLS_PYTHON_EXECUTABLE} @@ -64,9 +52,6 @@ set(psa_generated_data_files "") foreach(file ${base_bignum_generated_data_files}) list(APPEND bignum_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() -foreach(file ${base_ecp_generated_data_files}) - list(APPEND ecp_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) -endforeach() foreach(file ${base_psa_generated_data_files}) list(APPEND psa_generated_data_files ${CMAKE_CURRENT_BINARY_DIR}/suites/${file}) endforeach() @@ -87,7 +72,6 @@ if(GEN_FILES) ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_core.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod_raw.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/bignum_mod.py - ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/ecp.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_case.py ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/mbedtls_dev/test_data_generation.py ) diff --git a/tests/Makefile b/tests/Makefile index fa5ec4926..f0373381e 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -73,13 +73,6 @@ GENERATED_BIGNUM_DATA_FILES := $(patsubst tests/%,%,$(shell \ ifeq ($(GENERATED_BIGNUM_DATA_FILES),FAILED) $(error "$(PYTHON) scripts/generate_bignum_tests.py --list" failed) endif -GENERATED_ECP_DATA_FILES := $(patsubst tests/%,%,$(shell \ - $(PYTHON) scripts/generate_ecp_tests.py --list || \ - echo FAILED \ -)) -ifeq ($(GENERATED_ECP_DATA_FILES),FAILED) -$(error "$(PYTHON) scripts/generate_ecp_tests.py --list" failed) -endif GENERATED_PSA_DATA_FILES := $(patsubst tests/%,%,$(shell \ $(PYTHON) scripts/generate_psa_tests.py --list || \ echo FAILED \ @@ -87,7 +80,7 @@ GENERATED_PSA_DATA_FILES := $(patsubst tests/%,%,$(shell \ ifeq ($(GENERATED_PSA_DATA_FILES),FAILED) $(error "$(PYTHON) scripts/generate_psa_tests.py --list" failed) endif -GENERATED_FILES := $(GENERATED_PSA_DATA_FILES) $(GENERATED_ECP_DATA_FILES) $(GENERATED_BIGNUM_DATA_FILES) +GENERATED_FILES := $(GENERATED_PSA_DATA_FILES) $(GENERATED_BIGNUM_DATA_FILES) generated_files: $(GENERATED_FILES) # generate_bignum_tests.py and generate_psa_tests.py spend more time analyzing @@ -96,7 +89,7 @@ generated_files: $(GENERATED_FILES) # It's rare not to want all the outputs. So always generate all of its outputs. # Use an intermediate phony dependency so that parallel builds don't run # a separate instance of the recipe for each output file. -.SECONDARY: generated_bignum_test_data generated_ecp_test_data generated_psa_test_data +.SECONDARY: generated_bignum_test_data generated_psa_test_data $(GENERATED_BIGNUM_DATA_FILES): generated_bignum_test_data generated_bignum_test_data: scripts/generate_bignum_tests.py generated_bignum_test_data: ../scripts/mbedtls_dev/bignum_common.py @@ -109,17 +102,6 @@ generated_bignum_test_data: echo " Gen $(GENERATED_BIGNUM_DATA_FILES)" $(PYTHON) scripts/generate_bignum_tests.py -$(GENERATED_ECP_DATA_FILES): generated_ecp_test_data -generated_ecp_test_data: scripts/generate_ecp_tests.py -generated_ecp_test_data: ../scripts/mbedtls_dev/bignum_common.py -generated_ecp_test_data: ../scripts/mbedtls_dev/ecp_common.py -generated_ecp_test_data: ../scripts/mbedtls_dev/ecp.py -generated_ecp_test_data: ../scripts/mbedtls_dev/test_case.py -generated_ecp_test_data: ../scripts/mbedtls_dev/test_data_generation.py -generated_ecp_test_data: - echo " Gen $(GENERATED_ECP_DATA_FILES)" - $(PYTHON) scripts/generate_ecp_tests.py - $(GENERATED_PSA_DATA_FILES): generated_psa_test_data generated_psa_test_data: scripts/generate_psa_tests.py generated_psa_test_data: ../scripts/mbedtls_dev/crypto_knowledge.py diff --git a/tests/scripts/check-generated-files.sh b/tests/scripts/check-generated-files.sh index 4d6f93079..2bb9fea7c 100755 --- a/tests/scripts/check-generated-files.sh +++ b/tests/scripts/check-generated-files.sh @@ -137,5 +137,4 @@ check scripts/generate_ssl_debug_helpers.py library/ssl_debug_helpers_generated. check scripts/generate_visualc_files.pl visualc/VS2013 check scripts/generate_psa_constants.py programs/psa/psa_constant_names_generated.c check tests/scripts/generate_bignum_tests.py $(tests/scripts/generate_bignum_tests.py --list) -check tests/scripts/generate_ecp_tests.py $(tests/scripts/generate_ecp_tests.py --list) check tests/scripts/generate_psa_tests.py $(tests/scripts/generate_psa_tests.py --list) diff --git a/tests/scripts/generate_ecp_tests.py b/tests/scripts/generate_ecp_tests.py deleted file mode 100755 index 73434d970..000000000 --- a/tests/scripts/generate_ecp_tests.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python3 -"""Generate test data for ecp functions. - -With no arguments, generate all test data. With non-option arguments, -generate only the specified files. - -Class structure: - -Child classes of test_data_generation.BaseTarget (file targets) represent an output -file. These indicate where test cases will be written to, for all subclasses of -this target. Multiple file targets should not reuse a `target_basename`. - -Each subclass derived from a file target can either be: - - A concrete class, representing a test function, which generates test cases. - - An abstract class containing shared methods and attributes, not associated - with a test function. - -Both concrete and abstract subclasses can be derived from, to implement -additional test cases (see BignumCmp and BignumCmpAbs for examples of deriving -from abstract and concrete classes). - - -Adding test case generation for a function: - -A subclass representing the test function should be added, deriving from a -file target such as BignumTarget. This test class must set/implement the -following: - - test_function: the function name from the associated .function file. - - test_name: a descriptive name or brief summary to refer to the test - function. - - arguments(): a method to generate the list of arguments required for the - test_function. - - generate_function_tests(): a method to generate TestCases for the function. - This should create instances of the class with required input data, and - call `.create_test_case()` to yield the TestCase. - -Additional details and other attributes/methods are given in the documentation -of BaseTarget in test_data_generation.py. -""" - -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys - -import scripts_path # pylint: disable=unused-import -from mbedtls_dev import test_data_generation - -# Import modules containing additional test classes -# Test function classes in these modules will be registered by -# the framework -from mbedtls_dev import ecp # pylint: disable=unused-import - -if __name__ == '__main__': - # Use the section of the docstring relevant to the CLI as description - test_data_generation.main(sys.argv[1:], "\n".join(__doc__.splitlines()[:4])) diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 8cbd918f8..2b9b1edb4 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -179,6 +179,9 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 +Bignum mod raw quasi-reduction: uninitialized modulus +mpi_mod_raw_fix_quasi_reduction_neg:"11":"12":"1" + # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 9310b0e65..2c4a0e66c 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -6,6 +6,8 @@ #include "constant_time_internal.h" #include "test/constant_flow.h" +#include "bignum_mod_raw_invasive.h" + /* END_HEADER */ /* BEGIN_DEPENDENCIES @@ -338,6 +340,96 @@ exit: } /* END_CASE */ +/* BEGIN_CASE */ +void mpi_mod_raw_fix_quasi_reduction(char *input_N, + char *input_A, + char *result) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *res = NULL; + size_t limbs_A; + size_t limbs_N; + size_t limbs_res; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init(&m); + + TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); + + size_t limbs = limbs_N; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + TEST_EQUAL(limbs_A, limbs); + TEST_EQUAL(limbs_res, limbs); + + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); + + TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m), 0); + ASSERT_COMPARE(A, bytes, res, bytes); + +exit: + mbedtls_free(A); + mbedtls_free(res); + + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); +} +/* END_CASE */ + +/* BEGIN_CASE */ +void mpi_mod_raw_fix_quasi_reduction_neg(char *input_N, + char *input_A, + char *result) +{ + mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *N = NULL; + mbedtls_mpi_uint *res = NULL; + size_t limbs_A; + size_t limbs_N; + size_t limbs_res; + + mbedtls_mpi_mod_modulus m; + mbedtls_mpi_mod_modulus_init(&m); + + mbedtls_mpi_mod_modulus fake_m; + mbedtls_mpi_mod_modulus_init(&fake_m); + + TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); + + size_t limbs = limbs_N; + size_t bytes = limbs * sizeof(mbedtls_mpi_uint); + + TEST_EQUAL(limbs_A, limbs); + TEST_EQUAL(limbs_res, limbs); + + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( + &m, N, limbs, + MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); + + TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m), 0); + ASSERT_COMPARE(A, bytes, res, bytes); + + /* Check when m is not initialized */ + TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &fake_m), + MBEDTLS_ERR_MPI_BAD_INPUT_DATA); + +exit: + mbedtls_free(A); + mbedtls_free(res); + + mbedtls_mpi_mod_modulus_free(&fake_m); + mbedtls_mpi_mod_modulus_free(&m); + mbedtls_free(N); +} +/* END_CASE */ + /* BEGIN_CASE */ void mpi_mod_raw_mul(char *input_A, char *input_B, diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data index bbc8ea242..9a1379389 100644 --- a/tests/suites/test_suite_ecp.data +++ b/tests/suites/test_suite_ecp.data @@ -1038,6 +1038,3 @@ ecp_check_order:MBEDTLS_ECP_DP_SECP256K1:"fffffffffffffffffffffffffffffffebaaedc ECP check order for CURVE448 depends_on:MBEDTLS_ECP_DP_CURVE448_ENABLED ecp_check_order:MBEDTLS_ECP_DP_CURVE448:"3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3" - -ECP quasi-reduction: uninitialized modulus -ecp_quasi_reduction_neg:"11":"12":"1" diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index eb1f37554..394253de5 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -2,8 +2,8 @@ #include "mbedtls/ecp.h" #include "mbedtls/ecdsa.h" #include "mbedtls/ecdh.h" + #include "ecp_invasive.h" -#include "ecp_internal.h" #if defined(MBEDTLS_TEST_HOOKS) && \ (defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ @@ -1295,93 +1295,3 @@ exit: mbedtls_mpi_free(&expected_n); } /* END_CASE */ - -/* BEGIN_CASE */ -void ecp_quasi_reduction(char *input_N, - char *input_A, - char *result) -{ - mbedtls_mpi_uint *A = NULL; - mbedtls_mpi_uint *N = NULL; - mbedtls_mpi_uint *res = NULL; - size_t limbs_A; - size_t limbs_N; - size_t limbs_res; - - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init(&m); - - TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); - - size_t limbs = limbs_N; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - TEST_EQUAL(limbs_A, limbs); - TEST_EQUAL(limbs_res, limbs); - - TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( - &m, N, limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); - - TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &m), 0); - ASSERT_COMPARE(A, bytes, res, bytes); - -exit: - mbedtls_free(A); - mbedtls_free(res); - - mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free(N); -} -/* END_CASE */ - -/* BEGIN_CASE */ -void ecp_quasi_reduction_neg(char *input_N, - char *input_A, - char *result) -{ - mbedtls_mpi_uint *A = NULL; - mbedtls_mpi_uint *N = NULL; - mbedtls_mpi_uint *res = NULL; - size_t limbs_A; - size_t limbs_N; - size_t limbs_res; - - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init(&m); - - mbedtls_mpi_mod_modulus fake_m; - mbedtls_mpi_mod_modulus_init(&fake_m); - - TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); - - size_t limbs = limbs_N; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - TEST_EQUAL(limbs_A, limbs); - TEST_EQUAL(limbs_res, limbs); - - TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( - &m, N, limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); - - TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &m), 0); - ASSERT_COMPARE(A, bytes, res, bytes); - - /* Check when m is not initialized */ - TEST_EQUAL(mbedtls_ecp_quasi_reduction(A, &fake_m), - MBEDTLS_ERR_ECP_BAD_INPUT_DATA); - -exit: - mbedtls_free(A); - mbedtls_free(res); - - mbedtls_mpi_mod_modulus_free(&fake_m); - mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free(N); -} -/* END_CASE */ From e81a2b85c91a660ed7fc8322fdad8f57016a6e20 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 23 Jan 2023 18:56:38 +0100 Subject: [PATCH 1496/1574] Change the fix_quasi_reduction function to static Signed-off-by: Gabor Mezei --- library/bignum_mod_raw_invasive.h | 4 ++++ tests/suites/test_suite_bignum_mod_raw.function | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/library/bignum_mod_raw_invasive.h b/library/bignum_mod_raw_invasive.h index 3d4afedff..7770c0a95 100644 --- a/library/bignum_mod_raw_invasive.h +++ b/library/bignum_mod_raw_invasive.h @@ -28,6 +28,8 @@ #include "mbedtls/bignum.h" #include "bignum_mod.h" +#if defined(MBEDTLS_TEST_HOOKS) + /** Convert an MPI to its canonical representative. * * \note Currently handles the case when `N->int_rep` is @@ -44,4 +46,6 @@ MBEDTLS_STATIC_TESTABLE int mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, const mbedtls_mpi_mod_modulus *N); +#endif /* MBEDTLS_TEST_HOOKS */ + #endif /* MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H */ diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 2c4a0e66c..d59cddecd 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -340,7 +340,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void mpi_mod_raw_fix_quasi_reduction(char *input_N, char *input_A, char *result) @@ -381,7 +381,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void mpi_mod_raw_fix_quasi_reduction_neg(char *input_N, char *input_A, char *result) From 9073f7dd3b71d7a27c9112de2871f3a98173fb5d Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 23 Jan 2023 19:05:37 +0100 Subject: [PATCH 1497/1574] Remove unneeded check The fix_quasi_reduction function changed to static so checking the invalid arguments are not needed anymore. Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 10 +--- library/bignum_mod_raw_invasive.h | 4 +- tests/suites/test_suite_bignum_mod_raw.data | 3 -- .../suites/test_suite_bignum_mod_raw.function | 51 +------------------ 4 files changed, 5 insertions(+), 63 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index b23218200..049cdb2fb 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -129,18 +129,12 @@ void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, } MBEDTLS_STATIC_TESTABLE -int mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N) +void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N) { - if (N->limbs == 0) { - return MBEDTLS_ERR_MPI_BAD_INPUT_DATA; - } - mbedtls_mpi_uint c = mbedtls_mpi_core_sub(X, X, N->p, N->limbs); (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); - - return 0; } /* END MERGE SLOT 2 */ diff --git a/library/bignum_mod_raw_invasive.h b/library/bignum_mod_raw_invasive.h index 7770c0a95..3550eaff1 100644 --- a/library/bignum_mod_raw_invasive.h +++ b/library/bignum_mod_raw_invasive.h @@ -43,8 +43,8 @@ * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p N is invalid. */ MBEDTLS_STATIC_TESTABLE -int mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, - const mbedtls_mpi_mod_modulus *N); +void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, + const mbedtls_mpi_mod_modulus *N); #endif /* MBEDTLS_TEST_HOOKS */ diff --git a/tests/suites/test_suite_bignum_mod_raw.data b/tests/suites/test_suite_bignum_mod_raw.data index 2b9b1edb4..8cbd918f8 100644 --- a/tests/suites/test_suite_bignum_mod_raw.data +++ b/tests/suites/test_suite_bignum_mod_raw.data @@ -179,9 +179,6 @@ mpi_mod_raw_cond_swap:"000000001111111122222222333333334444444455555555666666667 mbedtls_mpi_mod_raw_cond_swap: copy half of the limbs mpi_mod_raw_cond_swap:"00000000FFFFFFFF55555555AAAAAAAA":"FEDCBA9876543210FEDCBA9876543210":8 -Bignum mod raw quasi-reduction: uninitialized modulus -mpi_mod_raw_fix_quasi_reduction_neg:"11":"12":"1" - # BEGIN MERGE SLOT 1 # END MERGE SLOT 1 diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index d59cddecd..9e29130fb 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -369,7 +369,7 @@ void mpi_mod_raw_fix_quasi_reduction(char *input_N, &m, N, limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); - TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m), 0); + mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m); ASSERT_COMPARE(A, bytes, res, bytes); exit: @@ -381,55 +381,6 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ -void mpi_mod_raw_fix_quasi_reduction_neg(char *input_N, - char *input_A, - char *result) -{ - mbedtls_mpi_uint *A = NULL; - mbedtls_mpi_uint *N = NULL; - mbedtls_mpi_uint *res = NULL; - size_t limbs_A; - size_t limbs_N; - size_t limbs_res; - - mbedtls_mpi_mod_modulus m; - mbedtls_mpi_mod_modulus_init(&m); - - mbedtls_mpi_mod_modulus fake_m; - mbedtls_mpi_mod_modulus_init(&fake_m); - - TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); - TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); - - size_t limbs = limbs_N; - size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - - TEST_EQUAL(limbs_A, limbs); - TEST_EQUAL(limbs_res, limbs); - - TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( - &m, N, limbs, - MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); - - TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m), 0); - ASSERT_COMPARE(A, bytes, res, bytes); - - /* Check when m is not initialized */ - TEST_EQUAL(mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &fake_m), - MBEDTLS_ERR_MPI_BAD_INPUT_DATA); - -exit: - mbedtls_free(A); - mbedtls_free(res); - - mbedtls_mpi_mod_modulus_free(&fake_m); - mbedtls_mpi_mod_modulus_free(&m); - mbedtls_free(N); -} -/* END_CASE */ - /* BEGIN_CASE */ void mpi_mod_raw_mul(char *input_A, char *input_B, From a24fd06451a9c18afa037e09dd93605f78b4a871 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 23 Jan 2023 19:10:26 +0100 Subject: [PATCH 1498/1574] Update documentation Signed-off-by: Gabor Mezei --- library/bignum_mod_raw_invasive.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/library/bignum_mod_raw_invasive.h b/library/bignum_mod_raw_invasive.h index 3550eaff1..ead83942c 100644 --- a/library/bignum_mod_raw_invasive.h +++ b/library/bignum_mod_raw_invasive.h @@ -30,17 +30,12 @@ #if defined(MBEDTLS_TEST_HOOKS) -/** Convert an MPI to its canonical representative. - * - * \note Currently handles the case when `N->int_rep` is - * MBEDTLS_MPI_MOD_REP_MONTGOMERY. +/** Convert the result of a quasi-reduction to its canonical representative. * * \param[in,out] X The address of the MPI to be converted. Must have the - * same number of limbs as \p N. + * same number of limbs as \p N. The input value must + * be in range 0 <= X < 2N. * \param[in] N The address of the modulus. - * - * \return \c 0 if successful. - * \return #MBEDTLS_ERR_MPI_BAD_INPUT_DATA if \p N is invalid. */ MBEDTLS_STATIC_TESTABLE void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, From 2d9e35927577ef4c602534b650d6cdfd5d4314ea Mon Sep 17 00:00:00 2001 From: Jens Alfke Date: Tue, 29 Oct 2019 15:03:37 -0700 Subject: [PATCH 1499/1574] Parsing v3 extensions from a CSR A parsed CSR struct (`mbedtls_x509_csr`) now includes some of the X.509v3 extensions included in the CSR -- the key usage, Netscape cert-type, and Subject Alternative Names. Author: Jens Alfke Signed-off-by: Przemek Stekiel --- include/mbedtls/x509.h | 9 +++ include/mbedtls/x509_csr.h | 4 + library/x509_crt.c | 18 ++--- library/x509_csr.c | 152 +++++++++++++++++++++++++++++++++++++ 4 files changed, 174 insertions(+), 9 deletions(-) diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h index 52fadad17..a98748cdc 100644 --- a/include/mbedtls/x509.h +++ b/include/mbedtls/x509.h @@ -370,6 +370,15 @@ int mbedtls_x509_write_names(unsigned char **p, unsigned char *start, int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start, const char *oid, size_t oid_len, unsigned char *sig, size_t size); +int x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type); +int x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage); +int x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name); #define MBEDTLS_X509_SAFE_SNPRINTF \ do { \ diff --git a/include/mbedtls/x509_csr.h b/include/mbedtls/x509_csr.h index 50998c42b..216a0a2e9 100644 --- a/include/mbedtls/x509_csr.h +++ b/include/mbedtls/x509_csr.h @@ -58,6 +58,10 @@ typedef struct mbedtls_x509_csr { mbedtls_pk_context pk; /**< Container for the public key context. */ + unsigned int key_usage; /**< Optional key usage extension value: See the values in x509.h */ + unsigned char ns_cert_type; /**< Optional Netscape certificate type extension value: See the values in x509.h */ + mbedtls_x509_sequence subject_alt_names; /**< Optional list of raw entries of Subject Alternative Names extension (currently only dNSName and OtherName are listed). */ + mbedtls_x509_buf sig_oid; mbedtls_x509_buf MBEDTLS_PRIVATE(sig); mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md); /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */ diff --git a/library/x509_crt.c b/library/x509_crt.c index 033009797..e02d18e05 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -562,9 +562,9 @@ static int x509_get_basic_constraints(unsigned char **p, return 0; } -static int x509_get_ns_cert_type(unsigned char **p, - const unsigned char *end, - unsigned char *ns_cert_type) +int x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_bitstring bs = { 0, 0, NULL }; @@ -583,9 +583,9 @@ static int x509_get_ns_cert_type(unsigned char **p, return 0; } -static int x509_get_key_usage(unsigned char **p, - const unsigned char *end, - unsigned int *key_usage) +int x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -660,9 +660,9 @@ static int x509_get_ext_key_usage(unsigned char **p, * NOTE: we list all types, but only use dNSName and otherName * of type HwModuleName, as defined in RFC 4108, at this point. */ -static int x509_get_subject_alt_name(unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *subject_alt_name) +int x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len, tag_len; diff --git a/library/x509_csr.c b/library/x509_csr.c index 0c664d908..824d17a75 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -69,6 +69,153 @@ static int x509_csr_get_version(unsigned char **p, return 0; } +/* + * Parse CSR extension requests in DER format + */ +static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, + unsigned char **p, const unsigned char *end) +{ + int ret; + size_t len; + unsigned char *end_ext_data; + + while (*p < end) { + mbedtls_x509_buf extn_oid = { 0, 0, NULL }; + int ext_type = 0; + + /* Read sequence tag */ + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + end_ext_data = *p + len; + + /* Get extension ID */ + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &extn_oid.len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + extn_oid.tag = MBEDTLS_ASN1_OID; + extn_oid.p = *p; + *p += extn_oid.len; + + /* Data should be octet string type */ + if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + if (*p + len != end_ext_data) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } + + if (mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type) == 0) { + switch (ext_type) { + case MBEDTLS_X509_EXT_KEY_USAGE: + /* Parse key usage */ + if ((ret = x509_get_key_usage(p, end_ext_data, + &csr->key_usage)) != 0) { + return ret; + } + break; + + case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: + /* Parse subject alt name */ + if ((ret = x509_get_subject_alt_name(p, end_ext_data, + &csr->subject_alt_names)) != 0) { + return ret; + } + break; + + case MBEDTLS_X509_EXT_NS_CERT_TYPE: + /* Parse netscape certificate type */ + if ((ret = x509_get_ns_cert_type(p, end_ext_data, + &csr->ns_cert_type)) != 0) { + return ret; + } + break; + default: + break; + } + } + + *p = end_ext_data; + } + + if (*p != end) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } + + return 0; +} + +/* + * Parse CSR attributes in DER format + */ +static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, + const unsigned char *start, const unsigned char *end) +{ + int ret; + size_t len; + unsigned char *end_attr_data; + unsigned char **p = (unsigned char **) &start; + + while (*p < end) { + mbedtls_x509_buf attr_oid = { 0, 0, NULL }; + + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + end_attr_data = *p + len; + + /* Get attribute ID */ + if ((ret = mbedtls_asn1_get_tag(p, end_attr_data, &attr_oid.len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + attr_oid.tag = MBEDTLS_ASN1_OID; + attr_oid.p = *p; + *p += attr_oid.len; + + /* Check that this is an extension-request attribute */ + if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS9_CSR_EXT_REQ, &attr_oid) == 0) { + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != + 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + if ((ret = x509_csr_parse_extensions(csr, p, *p + len)) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + } + + if (*p != end_attr_data) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } + } + + *p = end_attr_data; + } + + if (*p != end) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + } + + return 0; +} + /* * Parse a CSR in DER format */ @@ -197,6 +344,11 @@ int mbedtls_x509_csr_parse_der(mbedtls_x509_csr *csr, return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_FORMAT, ret); } + if ((ret = x509_csr_parse_attributes(csr, p, p + len)) != 0) { + mbedtls_x509_csr_free(csr); + return ret; + } + p += len; end = csr->raw.p + csr->raw.len; From cbaf3167dd30db772834d40e1a456f6d666bca77 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 12 Jan 2023 12:58:02 +0100 Subject: [PATCH 1500/1574] mbedtls_x509_csr_info: Add parsing code for v3 csr extensions Signed-off-by: Przemek Stekiel --- include/mbedtls/x509.h | 8 ++++++ include/mbedtls/x509_csr.h | 2 ++ library/x509_crt.c | 16 ++++++------ library/x509_csr.c | 52 +++++++++++++++++++++++++++++++++++++- 4 files changed, 69 insertions(+), 9 deletions(-) diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h index a98748cdc..57e072771 100644 --- a/include/mbedtls/x509.h +++ b/include/mbedtls/x509.h @@ -379,6 +379,14 @@ int x509_get_key_usage(unsigned char **p, int x509_get_subject_alt_name(unsigned char **p, const unsigned char *end, mbedtls_x509_sequence *subject_alt_name); +int x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix); +int x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type); +int x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage); #define MBEDTLS_X509_SAFE_SNPRINTF \ do { \ diff --git a/include/mbedtls/x509_csr.h b/include/mbedtls/x509_csr.h index 216a0a2e9..0c204be06 100644 --- a/include/mbedtls/x509_csr.h +++ b/include/mbedtls/x509_csr.h @@ -62,6 +62,8 @@ typedef struct mbedtls_x509_csr { unsigned char ns_cert_type; /**< Optional Netscape certificate type extension value: See the values in x509.h */ mbedtls_x509_sequence subject_alt_names; /**< Optional list of raw entries of Subject Alternative Names extension (currently only dNSName and OtherName are listed). */ + int MBEDTLS_PRIVATE(ext_types); /**< Bit string containing detected and parsed extensions */ + mbedtls_x509_buf sig_oid; mbedtls_x509_buf MBEDTLS_PRIVATE(sig); mbedtls_md_type_t MBEDTLS_PRIVATE(sig_md); /**< Internal representation of the MD algorithm of the signature algorithm, e.g. MBEDTLS_MD_SHA256 */ diff --git a/library/x509_crt.c b/library/x509_crt.c index e02d18e05..261525d38 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -1849,10 +1849,10 @@ int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, } #if !defined(MBEDTLS_X509_REMOVE_INFO) -static int x509_info_subject_alt_name(char **buf, size_t *size, - const mbedtls_x509_sequence - *subject_alt_name, - const char *prefix) +int x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -1965,8 +1965,8 @@ static int x509_info_subject_alt_name(char **buf, size_t *size, if (ns_cert_type & (type)) \ PRINT_ITEM(name); -static int x509_info_cert_type(char **buf, size_t *size, - unsigned char ns_cert_type) +int x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; @@ -1992,8 +1992,8 @@ static int x509_info_cert_type(char **buf, size_t *size, if (key_usage & (code)) \ PRINT_ITEM(name); -static int x509_info_key_usage(char **buf, size_t *size, - unsigned int key_usage) +int x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; diff --git a/library/x509_csr.c b/library/x509_csr.c index 824d17a75..f1c4c6654 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -111,7 +111,19 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; } - if (mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type) == 0) { + /* + * Detect supported extensions + */ + ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type); + + if (ret == 0) { + /* Forbid repeated extensions */ + if ((csr->ext_types & ext_type) != 0) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; + } + + csr->ext_types |= ext_type; + switch (ext_type) { case MBEDTLS_X509_EXT_KEY_USAGE: /* Parse key usage */ @@ -497,6 +509,44 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, (int) mbedtls_pk_get_bitlen(&csr->pk)); MBEDTLS_X509_SAFE_SNPRINTF; + /* + * Optional extensions + */ + + if (csr->ext_types & MBEDTLS_X509_EXT_SUBJECT_ALT_NAME) { + ret = mbedtls_snprintf(p, n, "\n%ssubject alt name :", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + if ((ret = x509_info_subject_alt_name(&p, &n, + &csr->subject_alt_names, + prefix)) != 0) { + return ret; + } + } + + if (csr->ext_types & MBEDTLS_X509_EXT_NS_CERT_TYPE) { + ret = mbedtls_snprintf(p, n, "\n%scert. type : ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + if ((ret = x509_info_cert_type(&p, &n, csr->ns_cert_type)) != 0) { + return ret; + } + } + + if (csr->ext_types & MBEDTLS_X509_EXT_KEY_USAGE) { + ret = mbedtls_snprintf(p, n, "\n%skey usage : ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + if ((ret = x509_info_key_usage(&p, &n, csr->key_usage)) != 0) { + return ret; + } + } + + if (csr->ext_types != 0) { + ret = mbedtls_snprintf(p, n, "\n"); + MBEDTLS_X509_SAFE_SNPRINTF; + } + return (int) (size - n); } #endif /* MBEDTLS_X509_REMOVE_INFO */ From e7fbbb3fbd0bffd78cfdc7704df84aaa137f8d46 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 12 Jan 2023 15:30:45 +0100 Subject: [PATCH 1501/1574] Generate csr files to test v3 extensions Signed-off-by: Przemek Stekiel --- tests/data_files/Makefile | 9 +++++++++ tests/data_files/test-ca.opensslconf | 14 ++++++++++++++ tests/data_files/test_csr_v3_all.csr | 12 ++++++++++++ tests/data_files/test_csr_v3_keyUsage.csr | 10 ++++++++++ tests/data_files/test_csr_v3_nsCertType.csr | 10 ++++++++++ tests/data_files/test_csr_v3_subjectAltName.csr | 11 +++++++++++ 6 files changed, 66 insertions(+) create mode 100644 tests/data_files/test_csr_v3_all.csr create mode 100644 tests/data_files/test_csr_v3_keyUsage.csr create mode 100644 tests/data_files/test_csr_v3_nsCertType.csr create mode 100644 tests/data_files/test_csr_v3_subjectAltName.csr diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 388b0ce41..a87e0cc06 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -93,6 +93,15 @@ cert_example_multi.csr: rsa_pkcs1_1024_clear.pem cert_example_multi.crt: cert_example_multi.csr $(OPENSSL) x509 -req -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) -extfile $(test_ca_config_file) -extensions dns_alt_names -passin "pass:$(test_ca_pwd_rsa)" -set_serial 17 -days 3653 -sha256 -in $< > $@ +test_csr_v3_keyUsage.csr: rsa_pkcs1_1024_clear.pem + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_keyUsage +test_csr_v3_subjectAltName.csr: rsa_pkcs1_1024_clear.pem + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_subjectAltName +test_csr_v3_nsCertType.csr: rsa_pkcs1_1024_clear.pem + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_nsCertType +test_csr_v3_all.csr: rsa_pkcs1_1024_clear.pem + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_all + $(test_ca_key_file_rsa_alt):test-ca.opensslconf $(OPENSSL) genrsa -out $@ 2048 test-ca-alt.csr: $(test_ca_key_file_rsa_alt) $(test_ca_config_file) diff --git a/tests/data_files/test-ca.opensslconf b/tests/data_files/test-ca.opensslconf index b2c2fa1bc..bd127609e 100644 --- a/tests/data_files/test-ca.opensslconf +++ b/tests/data_files/test-ca.opensslconf @@ -82,3 +82,17 @@ fullname=URI:http://pki.example.com/ # these IPs are the ascii values for 'abcd' and 'abcd.example.com' [tricky_ip_san] subjectAltName=IP:97.98.99.100,IP:6162:6364:2e65:7861:6d70:6c65:2e63:6f6d + +[csr_ext_v3_keyUsage] +keyUsage = digitalSignature, keyEncipherment + +[csr_ext_v3_subjectAltName] +subjectAltName=DNS:example.com, DNS:example.net, DNS:*.example.org + +[csr_ext_v3_nsCertType] +nsCertType=server + +[csr_ext_v3_all] +keyUsage = cRLSign +subjectAltName=otherName:1.3.6.1.5.5.7.8.4;SEQ:nonprintable_hw_module_name +nsCertType=client diff --git a/tests/data_files/test_csr_v3_all.csr b/tests/data_files/test_csr_v3_all.csr new file mode 100644 index 000000000..fecca328a --- /dev/null +++ b/tests/data_files/test_csr_v3_all.csr @@ -0,0 +1,12 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBsTCCARoCAQAwDzENMAsGA1UEAwwEZXRjZDCBnzANBgkqhkiG9w0BAQEFAAOB +jQAwgYkCgYEAxziSxcP0cBAIa/gTNezzARyKJQ+VgjYeqh6WElUarPh7dTMLcFcz +nNmV8U1MRDfIvsSgP+RkPNPzyQJDPcN8W455qgmEroITNwq/hWm9KjVibLH+5Kzg +QrJBfHvknScUmywHa45DPT9sdjpGmhxwDSWdvAjHQPzYAjdi/33r/C0CAwEAAaBi +MGAGCSqGSIb3DQEJDjFTMFEwCwYDVR0PBAQDAgECMC8GA1UdEQQoMCagJAYIKwYB +BQUHCASgGDAWBgcrBgEEAREDBAsxMjOAgQCBgDMyMTARBglghkgBhvhCAQEEBAMC +B4AwDQYJKoZIhvcNAQELBQADgYEAk9a+49SVlwdJJKBhvfDQ0I6pqB+Uglsg7jvo +AIgIQwY5wRy4Y2wT4CPu3zGyRxQlgqPH/JL3ZmiL9NoYXMrMbJ4Sy82y2iyW31Qq +8taoZ6jJfmusmURU7uQPOK1g/Io2ryumuGRlsIK1aa/aqeYG1xs34+F0UX3pGxf+ +nIeQXuM= +-----END CERTIFICATE REQUEST----- diff --git a/tests/data_files/test_csr_v3_keyUsage.csr b/tests/data_files/test_csr_v3_keyUsage.csr new file mode 100644 index 000000000..c22b392c9 --- /dev/null +++ b/tests/data_files/test_csr_v3_keyUsage.csr @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBbDCB1gIBADAPMQ0wCwYDVQQDDARldGNkMIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDHOJLFw/RwEAhr+BM17PMBHIolD5WCNh6qHpYSVRqs+Ht1MwtwVzOc +2ZXxTUxEN8i+xKA/5GQ80/PJAkM9w3xbjnmqCYSughM3Cr+Fab0qNWJssf7krOBC +skF8e+SdJxSbLAdrjkM9P2x2OkaaHHANJZ28CMdA/NgCN2L/fev8LQIDAQABoB4w +HAYJKoZIhvcNAQkOMQ8wDTALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADgYEA +rKFX2WcYZNns9j0YL+SlR/EnR53r5xFeiMa8lqj7DbjvxXly97JjkTM8qgiYDbsd +r3EsRCtf6sGoxpCWIT370zToUYQndKJFthlnM9w6san7t3QcryDpYXvSTft0O3/X +nypfGe7QuEYl0R/XKxlot1HzGCqaZB0QonfxxAFE3Tw= +-----END CERTIFICATE REQUEST----- diff --git a/tests/data_files/test_csr_v3_nsCertType.csr b/tests/data_files/test_csr_v3_nsCertType.csr new file mode 100644 index 000000000..039874330 --- /dev/null +++ b/tests/data_files/test_csr_v3_nsCertType.csr @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBcjCB3AIBADAPMQ0wCwYDVQQDDARldGNkMIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDHOJLFw/RwEAhr+BM17PMBHIolD5WCNh6qHpYSVRqs+Ht1MwtwVzOc +2ZXxTUxEN8i+xKA/5GQ80/PJAkM9w3xbjnmqCYSughM3Cr+Fab0qNWJssf7krOBC +skF8e+SdJxSbLAdrjkM9P2x2OkaaHHANJZ28CMdA/NgCN2L/fev8LQIDAQABoCQw +IgYJKoZIhvcNAQkOMRUwEzARBglghkgBhvhCAQEEBAMCBkAwDQYJKoZIhvcNAQEL +BQADgYEAYDqW7nG8/adwpHZXhmMSgdJmzovjOfMCRRe1FshTLSMmcB64wkZNuCc6 +5rLdubZpZtvA0pCp8pHqhdi6Mhl5dP7ZHxJgcW2jG1ZvxuoC65r1w+SH05RdLS0G +IX2MEfp0J9hR4hVXJt4FbFtGmzkHi114oTMFMRWq84KiMrUugnM= +-----END CERTIFICATE REQUEST----- diff --git a/tests/data_files/test_csr_v3_subjectAltName.csr b/tests/data_files/test_csr_v3_subjectAltName.csr new file mode 100644 index 000000000..65808c58e --- /dev/null +++ b/tests/data_files/test_csr_v3_subjectAltName.csr @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE REQUEST----- +MIIBkzCB/QIBADAPMQ0wCwYDVQQDDARldGNkMIGfMA0GCSqGSIb3DQEBAQUAA4GN +ADCBiQKBgQDHOJLFw/RwEAhr+BM17PMBHIolD5WCNh6qHpYSVRqs+Ht1MwtwVzOc +2ZXxTUxEN8i+xKA/5GQ80/PJAkM9w3xbjnmqCYSughM3Cr+Fab0qNWJssf7krOBC +skF8e+SdJxSbLAdrjkM9P2x2OkaaHHANJZ28CMdA/NgCN2L/fev8LQIDAQABoEUw +QwYJKoZIhvcNAQkOMTYwNDAyBgNVHREEKzApggtleGFtcGxlLmNvbYILZXhhbXBs +ZS5uZXSCDSouZXhhbXBsZS5vcmcwDQYJKoZIhvcNAQELBQADgYEAUyi46hqfD91x +TVRf+IeI3rDf1gSu0IMZuoR5xr2jf/+Oq747gmH+ET2Yfgo96LWQpMVkuOaa68Hj +0r4wvLgV3Re2dO4obHF9AVftZYTcLQ/GK/X3fvT1si7ynv9cfBRdHp4TBlSxeG+a +c9kTX4hTnt3G106vea9FHgCpfG+AkV4= +-----END CERTIFICATE REQUEST----- From 46a4a4987efe223e47c4c314fc2535e5fe5d8e27 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 12 Jan 2023 15:40:59 +0100 Subject: [PATCH 1502/1574] Add tests to very parsing of CSR v3 extensions Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.data | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 002f3dc41..7a39e035d 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -350,6 +350,22 @@ X509 CSR Information RSA with SHA-256 - Microsoft header depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_info:"data_files/server1-ms.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nsigned using \: RSA with SHA-256\nRSA key size \: 2048 bits\n" +X509 CSR Information v3 extensions #1 (all) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" + +X509 CSR Information v3 extensions #2 (nsCertType only) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" + +X509 CSR Information v3 extensions #3 (subjectAltName only) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" + +X509 CSR Information v3 extensions #4 (keyUsage only) +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" + X509 Verify Information: empty x509_verify_info:0:"":"" From 685d472db3fbb4c5bffd46957aaa2b092eb470ee Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 13 Jan 2023 10:16:40 +0100 Subject: [PATCH 1503/1574] Adapt expected output of existing tests Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.data | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 7a39e035d..d2c322f69 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -308,43 +308,43 @@ mbedtls_x509_csr_info:"data_files/server1.req.commas.sha256":"CSR version \: 1 X509 CSR Information EC with SHA1 depends_on:MBEDTLS_ECDSA_C:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server5.req.sha1":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA1\nEC key size \: 256 bits\n" +mbedtls_x509_csr_info:"data_files/server5.req.sha1":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA1\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information EC with SHA224 depends_on:MBEDTLS_ECDSA_C:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server5.req.sha224":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA224\nEC key size \: 256 bits\n" +mbedtls_x509_csr_info:"data_files/server5.req.sha224":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA224\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information EC with SHA256 depends_on:MBEDTLS_ECDSA_C:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server5.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\n" +mbedtls_x509_csr_info:"data_files/server5.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA256\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information EC with SHA384 depends_on:MBEDTLS_ECDSA_C:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server5.req.sha384":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA384\nEC key size \: 256 bits\n" +mbedtls_x509_csr_info:"data_files/server5.req.sha384":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA384\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information EC with SHA512 depends_on:MBEDTLS_ECDSA_C:MBEDTLS_PEM_PARSE_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server5.req.sha512":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA512\nEC key size \: 256 bits\n" +mbedtls_x509_csr_info:"data_files/server5.req.sha512":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA512\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA-PSS with SHA1 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server9.req.sha1":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA1, MGF1-SHA1, 0x6A)\nRSA key size \: 1024 bits\n" +mbedtls_x509_csr_info:"data_files/server9.req.sha1":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA1, MGF1-SHA1, 0x6A)\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA-PSS with SHA224 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_224_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server9.req.sha224":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA224, MGF1-SHA224, 0x62)\nRSA key size \: 1024 bits\n" +mbedtls_x509_csr_info:"data_files/server9.req.sha224":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA224, MGF1-SHA224, 0x62)\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA-PSS with SHA256 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server9.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA256, MGF1-SHA256, 0x5E)\nRSA key size \: 1024 bits\n" +mbedtls_x509_csr_info:"data_files/server9.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA256, MGF1-SHA256, 0x5E)\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA-PSS with SHA384 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server9.req.sha384":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA384, MGF1-SHA384, 0x4E)\nRSA key size \: 1024 bits\n" +mbedtls_x509_csr_info:"data_files/server9.req.sha384":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA384, MGF1-SHA384, 0x4E)\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA-PSS with SHA512 depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_X509_RSASSA_PSS_SUPPORT:MBEDTLS_HAS_ALG_SHA_512_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/server9.req.sha512":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA512, MGF1-SHA512, 0x3E)\nRSA key size \: 1024 bits\n" +mbedtls_x509_csr_info:"data_files/server9.req.sha512":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: RSASSA-PSS (SHA512, MGF1-SHA512, 0x3E)\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n" X509 CSR Information RSA with SHA-256 - Microsoft header depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C @@ -2589,7 +2589,7 @@ x509_parse_rsassa_pss_params:"a303020102":MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN X509 CSR ASN.1 (OK) depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201183081bf0201003034310b3009060355040613024e4c3111300f060355040a1308506f6c617253534c31123010060355040313096c6f63616c686f73743059301306072a8648ce3d020106082a8648ce3d0301070342000437cc56d976091e5a723ec7592dff206eee7cf9069174d0ad14b5f768225962924ee500d82311ffea2fd2345d5d16bd8a88c26b770d55cd8a2a0efa01c8b4edffa029302706092a864886f70d01090e311a301830090603551d1304023000300b0603551d0f0404030205e0300906072a8648ce3d04010349003046022100b49fd8c8f77abfa871908dfbe684a08a793d0f490a43d86fcf2086e4f24bb0c2022100f829d5ccd3742369299e6294394717c4b723a0f68b44e831b6e6c3bcabf97243":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA1\nEC key size \: 256 bits\n":0 +mbedtls_x509_csr_parse:"308201183081bf0201003034310b3009060355040613024e4c3111300f060355040a1308506f6c617253534c31123010060355040313096c6f63616c686f73743059301306072a8648ce3d020106082a8648ce3d0301070342000437cc56d976091e5a723ec7592dff206eee7cf9069174d0ad14b5f768225962924ee500d82311ffea2fd2345d5d16bd8a88c26b770d55cd8a2a0efa01c8b4edffa029302706092a864886f70d01090e311a301830090603551d1304023000300b0603551d0f0404030205e0300906072a8648ce3d04010349003046022100b49fd8c8f77abfa871908dfbe684a08a793d0f490a43d86fcf2086e4f24bb0c2022100f829d5ccd3742369299e6294394717c4b723a0f68b44e831b6e6c3bcabf97243":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=localhost\nsigned using \: ECDSA with SHA1\nEC key size \: 256 bits\n\nkey usage \: Digital Signature, Non Repudiation, Key Encipherment\n":0 X509 CSR ASN.1 (bad first tag) mbedtls_x509_csr_parse:"3100":"":MBEDTLS_ERR_X509_INVALID_FORMAT From 21c37288e5d4747e1ec898abcc212ef8a7b19f68 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 16 Jan 2023 08:47:49 +0100 Subject: [PATCH 1504/1574] Adapt function names Signed-off-by: Przemek Stekiel --- include/mbedtls/x509.h | 36 +++++++++++++-------------- library/x509_crt.c | 56 +++++++++++++++++++++--------------------- library/x509_csr.c | 22 ++++++++--------- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h index 57e072771..abd36b8ee 100644 --- a/include/mbedtls/x509.h +++ b/include/mbedtls/x509.h @@ -148,7 +148,7 @@ /* * X.509 v3 Key Usage Extension flags - * Reminder: update x509_info_key_usage() when adding new flags. + * Reminder: update mbedtls_x509_info_key_usage() when adding new flags. */ #define MBEDTLS_X509_KU_DIGITAL_SIGNATURE (0x80) /* bit 0 */ #define MBEDTLS_X509_KU_NON_REPUDIATION (0x40) /* bit 1 */ @@ -370,23 +370,23 @@ int mbedtls_x509_write_names(unsigned char **p, unsigned char *start, int mbedtls_x509_write_sig(unsigned char **p, unsigned char *start, const char *oid, size_t oid_len, unsigned char *sig, size_t size); -int x509_get_ns_cert_type(unsigned char **p, - const unsigned char *end, - unsigned char *ns_cert_type); -int x509_get_key_usage(unsigned char **p, - const unsigned char *end, - unsigned int *key_usage); -int x509_get_subject_alt_name(unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *subject_alt_name); -int x509_info_subject_alt_name(char **buf, size_t *size, - const mbedtls_x509_sequence - *subject_alt_name, - const char *prefix); -int x509_info_cert_type(char **buf, size_t *size, - unsigned char ns_cert_type); -int x509_info_key_usage(char **buf, size_t *size, - unsigned int key_usage); +int mbedtls_x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type); +int mbedtls_x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage); +int mbedtls_x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name); +int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix); +int mbedtls_x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type); +int mbedtls_x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage); #define MBEDTLS_X509_SAFE_SNPRINTF \ do { \ diff --git a/library/x509_crt.c b/library/x509_crt.c index 261525d38..a4eb7128e 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -562,9 +562,9 @@ static int x509_get_basic_constraints(unsigned char **p, return 0; } -int x509_get_ns_cert_type(unsigned char **p, - const unsigned char *end, - unsigned char *ns_cert_type) +int mbedtls_x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_bitstring bs = { 0, 0, NULL }; @@ -583,9 +583,9 @@ int x509_get_ns_cert_type(unsigned char **p, return 0; } -int x509_get_key_usage(unsigned char **p, - const unsigned char *end, - unsigned int *key_usage) +int mbedtls_x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -660,9 +660,9 @@ static int x509_get_ext_key_usage(unsigned char **p, * NOTE: we list all types, but only use dNSName and otherName * of type HwModuleName, as defined in RFC 4108, at this point. */ -int x509_get_subject_alt_name(unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *subject_alt_name) +int mbedtls_x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len, tag_len; @@ -1029,8 +1029,8 @@ static int x509_get_crt_ext(unsigned char **p, case MBEDTLS_X509_EXT_KEY_USAGE: /* Parse key usage */ - if ((ret = x509_get_key_usage(p, end_ext_octet, - &crt->key_usage)) != 0) { + if ((ret = mbedtls_x509_get_key_usage(p, end_ext_octet, + &crt->key_usage)) != 0) { return ret; } break; @@ -1045,16 +1045,16 @@ static int x509_get_crt_ext(unsigned char **p, case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: /* Parse subject alt name */ - if ((ret = x509_get_subject_alt_name(p, end_ext_octet, - &crt->subject_alt_names)) != 0) { + if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_octet, + &crt->subject_alt_names)) != 0) { return ret; } break; case MBEDTLS_X509_EXT_NS_CERT_TYPE: /* Parse netscape certificate type */ - if ((ret = x509_get_ns_cert_type(p, end_ext_octet, - &crt->ns_cert_type)) != 0) { + if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_octet, + &crt->ns_cert_type)) != 0) { return ret; } break; @@ -1849,10 +1849,10 @@ int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, } #if !defined(MBEDTLS_X509_REMOVE_INFO) -int x509_info_subject_alt_name(char **buf, size_t *size, - const mbedtls_x509_sequence - *subject_alt_name, - const char *prefix) +int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i; @@ -1965,8 +1965,8 @@ int x509_info_subject_alt_name(char **buf, size_t *size, if (ns_cert_type & (type)) \ PRINT_ITEM(name); -int x509_info_cert_type(char **buf, size_t *size, - unsigned char ns_cert_type) +int mbedtls_x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; @@ -1992,8 +1992,8 @@ int x509_info_cert_type(char **buf, size_t *size, if (key_usage & (code)) \ PRINT_ITEM(name); -int x509_info_key_usage(char **buf, size_t *size, - unsigned int key_usage) +int mbedtls_x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n = *size; @@ -2167,9 +2167,9 @@ int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%ssubject alt name :", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_subject_alt_name(&p, &n, - &crt->subject_alt_names, - prefix)) != 0) { + if ((ret = mbedtls_x509_info_subject_alt_name(&p, &n, + &crt->subject_alt_names, + prefix)) != 0) { return ret; } } @@ -2178,7 +2178,7 @@ int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%scert. type : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_cert_type(&p, &n, crt->ns_cert_type)) != 0) { + if ((ret = mbedtls_x509_info_cert_type(&p, &n, crt->ns_cert_type)) != 0) { return ret; } } @@ -2187,7 +2187,7 @@ int mbedtls_x509_crt_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%skey usage : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_key_usage(&p, &n, crt->key_usage)) != 0) { + if ((ret = mbedtls_x509_info_key_usage(&p, &n, crt->key_usage)) != 0) { return ret; } } diff --git a/library/x509_csr.c b/library/x509_csr.c index f1c4c6654..1f133e87f 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -127,24 +127,24 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, switch (ext_type) { case MBEDTLS_X509_EXT_KEY_USAGE: /* Parse key usage */ - if ((ret = x509_get_key_usage(p, end_ext_data, - &csr->key_usage)) != 0) { + if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, + &csr->key_usage)) != 0) { return ret; } break; case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: /* Parse subject alt name */ - if ((ret = x509_get_subject_alt_name(p, end_ext_data, - &csr->subject_alt_names)) != 0) { + if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, + &csr->subject_alt_names)) != 0) { return ret; } break; case MBEDTLS_X509_EXT_NS_CERT_TYPE: /* Parse netscape certificate type */ - if ((ret = x509_get_ns_cert_type(p, end_ext_data, - &csr->ns_cert_type)) != 0) { + if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, + &csr->ns_cert_type)) != 0) { return ret; } break; @@ -517,9 +517,9 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%ssubject alt name :", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_subject_alt_name(&p, &n, - &csr->subject_alt_names, - prefix)) != 0) { + if ((ret = mbedtls_x509_info_subject_alt_name(&p, &n, + &csr->subject_alt_names, + prefix)) != 0) { return ret; } } @@ -528,7 +528,7 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%scert. type : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_cert_type(&p, &n, csr->ns_cert_type)) != 0) { + if ((ret = mbedtls_x509_info_cert_type(&p, &n, csr->ns_cert_type)) != 0) { return ret; } } @@ -537,7 +537,7 @@ int mbedtls_x509_csr_info(char *buf, size_t size, const char *prefix, ret = mbedtls_snprintf(p, n, "\n%skey usage : ", prefix); MBEDTLS_X509_SAFE_SNPRINTF; - if ((ret = x509_info_key_usage(&p, &n, csr->key_usage)) != 0) { + if ((ret = mbedtls_x509_info_key_usage(&p, &n, csr->key_usage)) != 0) { return ret; } } From db128f518ccbb8e902e1234571a0412834a7be1f Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Mon, 16 Jan 2023 13:33:19 +0100 Subject: [PATCH 1505/1574] Allow empty ns_cert_type, key_usage while parsing certificates Signed-off-by: Przemek Stekiel --- library/x509_crt.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/library/x509_crt.c b/library/x509_crt.c index a4eb7128e..f77991eb5 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -573,6 +573,11 @@ int mbedtls_x509_get_ns_cert_type(unsigned char **p, return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } + if (bs.len == 0) { + *ns_cert_type = 0; + return 0; + } + if (bs.len != 1) { return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, MBEDTLS_ERR_ASN1_INVALID_LENGTH); @@ -595,6 +600,11 @@ int mbedtls_x509_get_key_usage(unsigned char **p, return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } + if (bs.len == 0) { + *key_usage = 0; + return 0; + } + if (bs.len < 1) { return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, MBEDTLS_ERR_ASN1_INVALID_LENGTH); From cf6ff0fb43b05dbfbb1c549d028298ca4d969bd1 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 17 Jan 2023 10:26:40 +0100 Subject: [PATCH 1506/1574] Move common functions for crt/csr parsing to x509.c Signed-off-by: Przemek Stekiel --- include/mbedtls/x509.h | 80 ++++++ include/mbedtls/x509_crt.h | 80 ------ library/x509.c | 486 +++++++++++++++++++++++++++++++++++++ library/x509_crt.c | 481 ------------------------------------ 4 files changed, 566 insertions(+), 561 deletions(-) diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h index abd36b8ee..aa1cd084e 100644 --- a/include/mbedtls/x509.h +++ b/include/mbedtls/x509.h @@ -250,6 +250,56 @@ typedef struct mbedtls_x509_time { } mbedtls_x509_time; +/** + * From RFC 5280 section 4.2.1.6: + * OtherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + * Future versions of the library may add new fields to this structure or + * to its embedded union and structure. + */ +typedef struct mbedtls_x509_san_other_name { + /** + * The type_id is an OID as defined in RFC 5280. + * To check the value of the type id, you should use + * \p MBEDTLS_OID_CMP with a known OID mbedtls_x509_buf. + */ + mbedtls_x509_buf type_id; /**< The type id. */ + union { + /** + * From RFC 4108 section 5: + * HardwareModuleName ::= SEQUENCE { + * hwType OBJECT IDENTIFIER, + * hwSerialNum OCTET STRING } + */ + struct { + mbedtls_x509_buf oid; /**< The object identifier. */ + mbedtls_x509_buf val; /**< The named value. */ + } + hardware_module_name; + } + value; +} +mbedtls_x509_san_other_name; + +/** + * A structure for holding the parsed Subject Alternative Name, + * according to type. + * + * Future versions of the library may add new fields to this structure or + * to its embedded union and structure. + */ +typedef struct mbedtls_x509_subject_alternative_name { + int type; /**< The SAN type, value of MBEDTLS_X509_SAN_XXX. */ + union { + mbedtls_x509_san_other_name other_name; /**< The otherName supported type. */ + mbedtls_x509_buf unstructured_name; /**< The buffer for the un constructed types. Only dnsName currently supported */ + } + san; /**< A union of the supported SAN types */ +} +mbedtls_x509_subject_alternative_name; + /** \} name Structures for parsing X.509 certificates, CRLs and CSRs */ /** @@ -326,6 +376,36 @@ int mbedtls_x509_time_is_past(const mbedtls_x509_time *to); */ int mbedtls_x509_time_is_future(const mbedtls_x509_time *from); +/** + * \brief This function parses an item in the SubjectAlternativeNames + * extension. + * + * \param san_buf The buffer holding the raw data item of the subject + * alternative name. + * \param san The target structure to populate with the parsed presentation + * of the subject alternative name encoded in \p san_raw. + * + * \note Only "dnsName" and "otherName" of type hardware_module_name + * as defined in RFC 4180 is supported. + * + * \note This function should be called on a single raw data of + * subject alternative name. For example, after successful + * certificate parsing, one must iterate on every item in the + * \p crt->subject_alt_names sequence, and pass it to + * this function. + * + * \warning The target structure contains pointers to the raw data of the + * parsed certificate, and its lifetime is restricted by the + * lifetime of the certificate. + * + * \return \c 0 on success + * \return #MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE for an unsupported + * SAN type. + * \return Another negative value for any other failure. + */ +int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, + mbedtls_x509_subject_alternative_name *san); + /** \} addtogroup x509_module */ /* diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 661f8aa7b..206083502 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -102,56 +102,6 @@ typedef struct mbedtls_x509_crt { } mbedtls_x509_crt; -/** - * From RFC 5280 section 4.2.1.6: - * OtherName ::= SEQUENCE { - * type-id OBJECT IDENTIFIER, - * value [0] EXPLICIT ANY DEFINED BY type-id } - * - * Future versions of the library may add new fields to this structure or - * to its embedded union and structure. - */ -typedef struct mbedtls_x509_san_other_name { - /** - * The type_id is an OID as defined in RFC 5280. - * To check the value of the type id, you should use - * \p MBEDTLS_OID_CMP with a known OID mbedtls_x509_buf. - */ - mbedtls_x509_buf type_id; /**< The type id. */ - union { - /** - * From RFC 4108 section 5: - * HardwareModuleName ::= SEQUENCE { - * hwType OBJECT IDENTIFIER, - * hwSerialNum OCTET STRING } - */ - struct { - mbedtls_x509_buf oid; /**< The object identifier. */ - mbedtls_x509_buf val; /**< The named value. */ - } - hardware_module_name; - } - value; -} -mbedtls_x509_san_other_name; - -/** - * A structure for holding the parsed Subject Alternative Name, - * according to type. - * - * Future versions of the library may add new fields to this structure or - * to its embedded union and structure. - */ -typedef struct mbedtls_x509_subject_alternative_name { - int type; /**< The SAN type, value of MBEDTLS_X509_SAN_XXX. */ - union { - mbedtls_x509_san_other_name other_name; /**< The otherName supported type. */ - mbedtls_x509_buf unstructured_name; /**< The buffer for the un constructed types. Only dnsName currently supported */ - } - san; /**< A union of the supported SAN types */ -} -mbedtls_x509_subject_alternative_name; - /** * Build flag from an algorithm/curve identifier (pk, md, ecp) * Since 0 is always XXX_NONE, ignore it. @@ -589,36 +539,6 @@ int mbedtls_x509_crt_parse_file(mbedtls_x509_crt *chain, const char *path); int mbedtls_x509_crt_parse_path(mbedtls_x509_crt *chain, const char *path); #endif /* MBEDTLS_FS_IO */ -/** - * \brief This function parses an item in the SubjectAlternativeNames - * extension. - * - * \param san_buf The buffer holding the raw data item of the subject - * alternative name. - * \param san The target structure to populate with the parsed presentation - * of the subject alternative name encoded in \p san_raw. - * - * \note Only "dnsName" and "otherName" of type hardware_module_name - * as defined in RFC 4180 is supported. - * - * \note This function should be called on a single raw data of - * subject alternative name. For example, after successful - * certificate parsing, one must iterate on every item in the - * \p crt->subject_alt_names sequence, and pass it to - * this function. - * - * \warning The target structure contains pointers to the raw data of the - * parsed certificate, and its lifetime is restricted by the - * lifetime of the certificate. - * - * \return \c 0 on success - * \return #MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE for an unsupported - * SAN type. - * \return Another negative value for any other failure. - */ -int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, - mbedtls_x509_subject_alternative_name *san); - #if !defined(MBEDTLS_X509_REMOVE_INFO) /** * \brief Returns an informational string about the diff --git a/library/x509.c b/library/x509.c index 1b3701cda..9869b05e5 100644 --- a/library/x509.c +++ b/library/x509.c @@ -1107,4 +1107,490 @@ int mbedtls_x509_time_is_future(const mbedtls_x509_time *from) return 0; } #endif /* MBEDTLS_HAVE_TIME_DATE */ + +/* Common functions for parsing CRT and CSR. */ +#if defined(MBEDTLS_X509_CRT_PARSE_C) || defined(MBEDTLS_X509_CSR_PARSE_C) +/* + * OtherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + * HardwareModuleName ::= SEQUENCE { + * hwType OBJECT IDENTIFIER, + * hwSerialNum OCTET STRING } + * + * NOTE: we currently only parse and use otherName of type HwModuleName, + * as defined in RFC 4108. + */ +static int x509_get_other_name(const mbedtls_x509_buf *subject_alt_name, + mbedtls_x509_san_other_name *other_name) +{ + int ret = 0; + size_t len; + unsigned char *p = subject_alt_name->p; + const unsigned char *end = p + subject_alt_name->len; + mbedtls_x509_buf cur_oid; + + if ((subject_alt_name->tag & + (MBEDTLS_ASN1_TAG_CLASS_MASK | MBEDTLS_ASN1_TAG_VALUE_MASK)) != + (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME)) { + /* + * The given subject alternative name is not of type "othername". + */ + return MBEDTLS_ERR_X509_BAD_INPUT_DATA; + } + + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + cur_oid.tag = MBEDTLS_ASN1_OID; + cur_oid.p = p; + cur_oid.len = len; + + /* + * Only HwModuleName is currently supported. + */ + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, &cur_oid) != 0) { + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; + } + + if (p + len >= end) { + mbedtls_platform_zeroize(other_name, sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + p += len; + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) != + 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OID)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + other_name->value.hardware_module_name.oid.tag = MBEDTLS_ASN1_OID; + other_name->value.hardware_module_name.oid.p = p; + other_name->value.hardware_module_name.oid.len = len; + + if (p + len >= end) { + mbedtls_platform_zeroize(other_name, sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + p += len; + if ((ret = mbedtls_asn1_get_tag(&p, end, &len, + MBEDTLS_ASN1_OCTET_STRING)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + other_name->value.hardware_module_name.val.tag = MBEDTLS_ASN1_OCTET_STRING; + other_name->value.hardware_module_name.val.p = p; + other_name->value.hardware_module_name.val.len = len; + p += len; + if (p != end) { + mbedtls_platform_zeroize(other_name, + sizeof(*other_name)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + return 0; +} + +/* + * SubjectAltName ::= GeneralNames + * + * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName + * + * GeneralName ::= CHOICE { + * otherName [0] OtherName, + * rfc822Name [1] IA5String, + * dNSName [2] IA5String, + * x400Address [3] ORAddress, + * directoryName [4] Name, + * ediPartyName [5] EDIPartyName, + * uniformResourceIdentifier [6] IA5String, + * iPAddress [7] OCTET STRING, + * registeredID [8] OBJECT IDENTIFIER } + * + * OtherName ::= SEQUENCE { + * type-id OBJECT IDENTIFIER, + * value [0] EXPLICIT ANY DEFINED BY type-id } + * + * EDIPartyName ::= SEQUENCE { + * nameAssigner [0] DirectoryString OPTIONAL, + * partyName [1] DirectoryString } + * + * NOTE: we list all types, but only use dNSName and otherName + * of type HwModuleName, as defined in RFC 4108, at this point. + */ +int mbedtls_x509_get_subject_alt_name(unsigned char **p, + const unsigned char *end, + mbedtls_x509_sequence *subject_alt_name) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t len, tag_len; + mbedtls_asn1_buf *buf; + unsigned char tag; + mbedtls_asn1_sequence *cur = subject_alt_name; + + /* Get main sequence tag */ + if ((ret = mbedtls_asn1_get_tag(p, end, &len, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if (*p + len != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + + while (*p < end) { + mbedtls_x509_subject_alternative_name dummy_san_buf; + memset(&dummy_san_buf, 0, sizeof(dummy_san_buf)); + + tag = **p; + (*p)++; + if ((ret = mbedtls_asn1_get_len(p, end, &tag_len)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if ((tag & MBEDTLS_ASN1_TAG_CLASS_MASK) != + MBEDTLS_ASN1_CONTEXT_SPECIFIC) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); + } + + /* + * Check that the SAN is structured correctly. + */ + ret = mbedtls_x509_parse_subject_alt_name(&(cur->buf), &dummy_san_buf); + /* + * In case the extension is malformed, return an error, + * and clear the allocated sequences. + */ + if (ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { + mbedtls_asn1_sequence_free(subject_alt_name->next); + subject_alt_name->next = NULL; + return ret; + } + + /* Allocate and assign next pointer */ + if (cur->buf.p != NULL) { + if (cur->next != NULL) { + return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; + } + + cur->next = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); + + if (cur->next == NULL) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_ALLOC_FAILED); + } + + cur = cur->next; + } + + buf = &(cur->buf); + buf->tag = tag; + buf->p = *p; + buf->len = tag_len; + *p += buf->len; + } + + /* Set final sequence entry's next pointer to NULL */ + cur->next = NULL; + + if (*p != end) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + } + + return 0; +} + +int mbedtls_x509_get_ns_cert_type(unsigned char **p, + const unsigned char *end, + unsigned char *ns_cert_type) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_x509_bitstring bs = { 0, 0, NULL }; + + if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if (bs.len == 0) { + *ns_cert_type = 0; + return 0; + } + + if (bs.len != 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } + + /* Get actual bitstring */ + *ns_cert_type = *bs.p; + return 0; +} + +int mbedtls_x509_get_key_usage(unsigned char **p, + const unsigned char *end, + unsigned int *key_usage) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t i; + mbedtls_x509_bitstring bs = { 0, 0, NULL }; + + if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); + } + + if (bs.len == 0) { + *key_usage = 0; + return 0; + } + + if (bs.len < 1) { + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_LENGTH); + } + + /* Get actual bitstring */ + *key_usage = 0; + for (i = 0; i < bs.len && i < sizeof(unsigned int); i++) { + *key_usage |= (unsigned int) bs.p[i] << (8*i); + } + + return 0; +} + +int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, + mbedtls_x509_subject_alternative_name *san) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + switch (san_buf->tag & + (MBEDTLS_ASN1_TAG_CLASS_MASK | + MBEDTLS_ASN1_TAG_VALUE_MASK)) { + /* + * otherName + */ + case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME): + { + mbedtls_x509_san_other_name other_name; + + ret = x509_get_other_name(san_buf, &other_name); + if (ret != 0) { + return ret; + } + + memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); + san->type = MBEDTLS_X509_SAN_OTHER_NAME; + memcpy(&san->san.other_name, + &other_name, sizeof(other_name)); + + } + break; + + /* + * dNSName + */ + case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_DNS_NAME): + { + memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); + san->type = MBEDTLS_X509_SAN_DNS_NAME; + + memcpy(&san->san.unstructured_name, + san_buf, sizeof(*san_buf)); + + } + break; + + /* + * Type not supported + */ + default: + return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; + } + return 0; +} + +#if !defined(MBEDTLS_X509_REMOVE_INFO) +int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size, + const mbedtls_x509_sequence + *subject_alt_name, + const char *prefix) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t i; + size_t n = *size; + char *p = *buf; + const mbedtls_x509_sequence *cur = subject_alt_name; + mbedtls_x509_subject_alternative_name san; + int parse_ret; + + while (cur != NULL) { + memset(&san, 0, sizeof(san)); + parse_ret = mbedtls_x509_parse_subject_alt_name(&cur->buf, &san); + if (parse_ret != 0) { + if (parse_ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + } else { + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + } + cur = cur->next; + continue; + } + + switch (san.type) { + /* + * otherName + */ + case MBEDTLS_X509_SAN_OTHER_NAME: + { + mbedtls_x509_san_other_name *other_name = &san.san.other_name; + + ret = mbedtls_snprintf(p, n, "\n%s otherName :", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, + &other_name->value.hardware_module_name.oid) != 0) { + ret = mbedtls_snprintf(p, n, "\n%s hardware module name :", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + ret = + mbedtls_snprintf(p, n, "\n%s hardware type : ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + ret = mbedtls_oid_get_numeric_string(p, + n, + &other_name->value.hardware_module_name.oid); + MBEDTLS_X509_SAFE_SNPRINTF; + + ret = + mbedtls_snprintf(p, n, "\n%s hardware serial number : ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + + for (i = 0; i < other_name->value.hardware_module_name.val.len; i++) { + ret = mbedtls_snprintf(p, + n, + "%02X", + other_name->value.hardware_module_name.val.p[i]); + MBEDTLS_X509_SAFE_SNPRINTF; + } + }/* MBEDTLS_OID_ON_HW_MODULE_NAME */ + } + break; + + /* + * dNSName + */ + case MBEDTLS_X509_SAN_DNS_NAME: + { + ret = mbedtls_snprintf(p, n, "\n%s dNSName : ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + if (san.san.unstructured_name.len >= n) { + *p = '\0'; + return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; + } + + memcpy(p, san.san.unstructured_name.p, san.san.unstructured_name.len); + p += san.san.unstructured_name.len; + n -= san.san.unstructured_name.len; + } + break; + + /* + * Type not supported, skip item. + */ + default: + ret = mbedtls_snprintf(p, n, "\n%s ", prefix); + MBEDTLS_X509_SAFE_SNPRINTF; + break; + } + + cur = cur->next; + } + + *p = '\0'; + + *size = n; + *buf = p; + + return 0; +} + +#define PRINT_ITEM(i) \ + { \ + ret = mbedtls_snprintf(p, n, "%s" i, sep); \ + MBEDTLS_X509_SAFE_SNPRINTF; \ + sep = ", "; \ + } + +#define CERT_TYPE(type, name) \ + if (ns_cert_type & (type)) \ + PRINT_ITEM(name); + +int mbedtls_x509_info_cert_type(char **buf, size_t *size, + unsigned char ns_cert_type) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t n = *size; + char *p = *buf; + const char *sep = ""; + + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT, "SSL Client"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER, "SSL Server"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL, "Email"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING, "Object Signing"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_RESERVED, "Reserved"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CA, "SSL CA"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA, "Email CA"); + CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA, "Object Signing CA"); + + *size = n; + *buf = p; + + return 0; +} + +#define KEY_USAGE(code, name) \ + if (key_usage & (code)) \ + PRINT_ITEM(name); + +int mbedtls_x509_info_key_usage(char **buf, size_t *size, + unsigned int key_usage) +{ + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + size_t n = *size; + char *p = *buf; + const char *sep = ""; + + KEY_USAGE(MBEDTLS_X509_KU_DIGITAL_SIGNATURE, "Digital Signature"); + KEY_USAGE(MBEDTLS_X509_KU_NON_REPUDIATION, "Non Repudiation"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_ENCIPHERMENT, "Key Encipherment"); + KEY_USAGE(MBEDTLS_X509_KU_DATA_ENCIPHERMENT, "Data Encipherment"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_AGREEMENT, "Key Agreement"); + KEY_USAGE(MBEDTLS_X509_KU_KEY_CERT_SIGN, "Key Cert Sign"); + KEY_USAGE(MBEDTLS_X509_KU_CRL_SIGN, "CRL Sign"); + KEY_USAGE(MBEDTLS_X509_KU_ENCIPHER_ONLY, "Encipher Only"); + KEY_USAGE(MBEDTLS_X509_KU_DECIPHER_ONLY, "Decipher Only"); + + *size = n; + *buf = p; + + return 0; +} +#endif /* MBEDTLS_X509_REMOVE_INFO */ +#endif /* MBEDTLS_X509_CRT_PARSE_C || MBEDTLS_X509_CSR_PARSE_C */ #endif /* MBEDTLS_X509_USE_C */ diff --git a/library/x509_crt.c b/library/x509_crt.c index f77991eb5..5997c8746 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -562,63 +562,6 @@ static int x509_get_basic_constraints(unsigned char **p, return 0; } -int mbedtls_x509_get_ns_cert_type(unsigned char **p, - const unsigned char *end, - unsigned char *ns_cert_type) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - mbedtls_x509_bitstring bs = { 0, 0, NULL }; - - if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if (bs.len == 0) { - *ns_cert_type = 0; - return 0; - } - - if (bs.len != 1) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH); - } - - /* Get actual bitstring */ - *ns_cert_type = *bs.p; - return 0; -} - -int mbedtls_x509_get_key_usage(unsigned char **p, - const unsigned char *end, - unsigned int *key_usage) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t i; - mbedtls_x509_bitstring bs = { 0, 0, NULL }; - - if ((ret = mbedtls_asn1_get_bitstring(p, end, &bs)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if (bs.len == 0) { - *key_usage = 0; - return 0; - } - - if (bs.len < 1) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH); - } - - /* Get actual bitstring */ - *key_usage = 0; - for (i = 0; i < bs.len && i < sizeof(unsigned int); i++) { - *key_usage |= (unsigned int) bs.p[i] << (8*i); - } - - return 0; -} - /* * ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId * @@ -643,118 +586,6 @@ static int x509_get_ext_key_usage(unsigned char **p, return 0; } -/* - * SubjectAltName ::= GeneralNames - * - * GeneralNames ::= SEQUENCE SIZE (1..MAX) OF GeneralName - * - * GeneralName ::= CHOICE { - * otherName [0] OtherName, - * rfc822Name [1] IA5String, - * dNSName [2] IA5String, - * x400Address [3] ORAddress, - * directoryName [4] Name, - * ediPartyName [5] EDIPartyName, - * uniformResourceIdentifier [6] IA5String, - * iPAddress [7] OCTET STRING, - * registeredID [8] OBJECT IDENTIFIER } - * - * OtherName ::= SEQUENCE { - * type-id OBJECT IDENTIFIER, - * value [0] EXPLICIT ANY DEFINED BY type-id } - * - * EDIPartyName ::= SEQUENCE { - * nameAssigner [0] DirectoryString OPTIONAL, - * partyName [1] DirectoryString } - * - * NOTE: we list all types, but only use dNSName and otherName - * of type HwModuleName, as defined in RFC 4108, at this point. - */ -int mbedtls_x509_get_subject_alt_name(unsigned char **p, - const unsigned char *end, - mbedtls_x509_sequence *subject_alt_name) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t len, tag_len; - mbedtls_asn1_buf *buf; - unsigned char tag; - mbedtls_asn1_sequence *cur = subject_alt_name; - - /* Get main sequence tag */ - if ((ret = mbedtls_asn1_get_tag(p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if (*p + len != end) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); - } - - while (*p < end) { - mbedtls_x509_subject_alternative_name dummy_san_buf; - memset(&dummy_san_buf, 0, sizeof(dummy_san_buf)); - - tag = **p; - (*p)++; - if ((ret = mbedtls_asn1_get_len(p, end, &tag_len)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if ((tag & MBEDTLS_ASN1_TAG_CLASS_MASK) != - MBEDTLS_ASN1_CONTEXT_SPECIFIC) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_UNEXPECTED_TAG); - } - - /* - * Check that the SAN is structured correctly. - */ - ret = mbedtls_x509_parse_subject_alt_name(&(cur->buf), &dummy_san_buf); - /* - * In case the extension is malformed, return an error, - * and clear the allocated sequences. - */ - if (ret != 0 && ret != MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { - mbedtls_asn1_sequence_free(subject_alt_name->next); - subject_alt_name->next = NULL; - return ret; - } - - /* Allocate and assign next pointer */ - if (cur->buf.p != NULL) { - if (cur->next != NULL) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; - } - - cur->next = mbedtls_calloc(1, sizeof(mbedtls_asn1_sequence)); - - if (cur->next == NULL) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_ALLOC_FAILED); - } - - cur = cur->next; - } - - buf = &(cur->buf); - buf->tag = tag; - buf->p = *p; - buf->len = tag_len; - *p += buf->len; - } - - /* Set final sequence entry's next pointer to NULL */ - cur->next = NULL; - - if (*p != end) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); - } - - return 0; -} - /* * id-ce-certificatePolicies OBJECT IDENTIFIER ::= { id-ce 32 } * @@ -1713,319 +1544,7 @@ cleanup: } #endif /* MBEDTLS_FS_IO */ -/* - * OtherName ::= SEQUENCE { - * type-id OBJECT IDENTIFIER, - * value [0] EXPLICIT ANY DEFINED BY type-id } - * - * HardwareModuleName ::= SEQUENCE { - * hwType OBJECT IDENTIFIER, - * hwSerialNum OCTET STRING } - * - * NOTE: we currently only parse and use otherName of type HwModuleName, - * as defined in RFC 4108. - */ -static int x509_get_other_name(const mbedtls_x509_buf *subject_alt_name, - mbedtls_x509_san_other_name *other_name) -{ - int ret = 0; - size_t len; - unsigned char *p = subject_alt_name->p; - const unsigned char *end = p + subject_alt_name->len; - mbedtls_x509_buf cur_oid; - - if ((subject_alt_name->tag & - (MBEDTLS_ASN1_TAG_CLASS_MASK | MBEDTLS_ASN1_TAG_VALUE_MASK)) != - (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME)) { - /* - * The given subject alternative name is not of type "othername". - */ - return MBEDTLS_ERR_X509_BAD_INPUT_DATA; - } - - if ((ret = mbedtls_asn1_get_tag(&p, end, &len, - MBEDTLS_ASN1_OID)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - cur_oid.tag = MBEDTLS_ASN1_OID; - cur_oid.p = p; - cur_oid.len = len; - - /* - * Only HwModuleName is currently supported. - */ - if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, &cur_oid) != 0) { - return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; - } - - if (p + len >= end) { - mbedtls_platform_zeroize(other_name, sizeof(*other_name)); - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); - } - p += len; - if ((ret = mbedtls_asn1_get_tag(&p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC)) != - 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if ((ret = mbedtls_asn1_get_tag(&p, end, &len, - MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - if ((ret = mbedtls_asn1_get_tag(&p, end, &len, MBEDTLS_ASN1_OID)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - other_name->value.hardware_module_name.oid.tag = MBEDTLS_ASN1_OID; - other_name->value.hardware_module_name.oid.p = p; - other_name->value.hardware_module_name.oid.len = len; - - if (p + len >= end) { - mbedtls_platform_zeroize(other_name, sizeof(*other_name)); - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); - } - p += len; - if ((ret = mbedtls_asn1_get_tag(&p, end, &len, - MBEDTLS_ASN1_OCTET_STRING)) != 0) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); - } - - other_name->value.hardware_module_name.val.tag = MBEDTLS_ASN1_OCTET_STRING; - other_name->value.hardware_module_name.val.p = p; - other_name->value.hardware_module_name.val.len = len; - p += len; - if (p != end) { - mbedtls_platform_zeroize(other_name, - sizeof(*other_name)); - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); - } - return 0; -} - -int mbedtls_x509_parse_subject_alt_name(const mbedtls_x509_buf *san_buf, - mbedtls_x509_subject_alternative_name *san) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - switch (san_buf->tag & - (MBEDTLS_ASN1_TAG_CLASS_MASK | - MBEDTLS_ASN1_TAG_VALUE_MASK)) { - /* - * otherName - */ - case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_OTHER_NAME): - { - mbedtls_x509_san_other_name other_name; - - ret = x509_get_other_name(san_buf, &other_name); - if (ret != 0) { - return ret; - } - - memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); - san->type = MBEDTLS_X509_SAN_OTHER_NAME; - memcpy(&san->san.other_name, - &other_name, sizeof(other_name)); - - } - break; - - /* - * dNSName - */ - case (MBEDTLS_ASN1_CONTEXT_SPECIFIC | MBEDTLS_X509_SAN_DNS_NAME): - { - memset(san, 0, sizeof(mbedtls_x509_subject_alternative_name)); - san->type = MBEDTLS_X509_SAN_DNS_NAME; - - memcpy(&san->san.unstructured_name, - san_buf, sizeof(*san_buf)); - - } - break; - - /* - * Type not supported - */ - default: - return MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE; - } - return 0; -} - #if !defined(MBEDTLS_X509_REMOVE_INFO) -int mbedtls_x509_info_subject_alt_name(char **buf, size_t *size, - const mbedtls_x509_sequence - *subject_alt_name, - const char *prefix) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t i; - size_t n = *size; - char *p = *buf; - const mbedtls_x509_sequence *cur = subject_alt_name; - mbedtls_x509_subject_alternative_name san; - int parse_ret; - - while (cur != NULL) { - memset(&san, 0, sizeof(san)); - parse_ret = mbedtls_x509_parse_subject_alt_name(&cur->buf, &san); - if (parse_ret != 0) { - if (parse_ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) { - ret = mbedtls_snprintf(p, n, "\n%s ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - } else { - ret = mbedtls_snprintf(p, n, "\n%s ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - } - cur = cur->next; - continue; - } - - switch (san.type) { - /* - * otherName - */ - case MBEDTLS_X509_SAN_OTHER_NAME: - { - mbedtls_x509_san_other_name *other_name = &san.san.other_name; - - ret = mbedtls_snprintf(p, n, "\n%s otherName :", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - - if (MBEDTLS_OID_CMP(MBEDTLS_OID_ON_HW_MODULE_NAME, - &other_name->value.hardware_module_name.oid) != 0) { - ret = mbedtls_snprintf(p, n, "\n%s hardware module name :", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - ret = - mbedtls_snprintf(p, n, "\n%s hardware type : ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - - ret = mbedtls_oid_get_numeric_string(p, - n, - &other_name->value.hardware_module_name.oid); - MBEDTLS_X509_SAFE_SNPRINTF; - - ret = - mbedtls_snprintf(p, n, "\n%s hardware serial number : ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - - for (i = 0; i < other_name->value.hardware_module_name.val.len; i++) { - ret = mbedtls_snprintf(p, - n, - "%02X", - other_name->value.hardware_module_name.val.p[i]); - MBEDTLS_X509_SAFE_SNPRINTF; - } - }/* MBEDTLS_OID_ON_HW_MODULE_NAME */ - } - break; - - /* - * dNSName - */ - case MBEDTLS_X509_SAN_DNS_NAME: - { - ret = mbedtls_snprintf(p, n, "\n%s dNSName : ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - if (san.san.unstructured_name.len >= n) { - *p = '\0'; - return MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; - } - - memcpy(p, san.san.unstructured_name.p, san.san.unstructured_name.len); - p += san.san.unstructured_name.len; - n -= san.san.unstructured_name.len; - } - break; - - /* - * Type not supported, skip item. - */ - default: - ret = mbedtls_snprintf(p, n, "\n%s ", prefix); - MBEDTLS_X509_SAFE_SNPRINTF; - break; - } - - cur = cur->next; - } - - *p = '\0'; - - *size = n; - *buf = p; - - return 0; -} - -#define PRINT_ITEM(i) \ - { \ - ret = mbedtls_snprintf(p, n, "%s" i, sep); \ - MBEDTLS_X509_SAFE_SNPRINTF; \ - sep = ", "; \ - } - -#define CERT_TYPE(type, name) \ - if (ns_cert_type & (type)) \ - PRINT_ITEM(name); - -int mbedtls_x509_info_cert_type(char **buf, size_t *size, - unsigned char ns_cert_type) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t n = *size; - char *p = *buf; - const char *sep = ""; - - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CLIENT, "SSL Client"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_SERVER, "SSL Server"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL, "Email"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING, "Object Signing"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_RESERVED, "Reserved"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_SSL_CA, "SSL CA"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_EMAIL_CA, "Email CA"); - CERT_TYPE(MBEDTLS_X509_NS_CERT_TYPE_OBJECT_SIGNING_CA, "Object Signing CA"); - - *size = n; - *buf = p; - - return 0; -} - -#define KEY_USAGE(code, name) \ - if (key_usage & (code)) \ - PRINT_ITEM(name); - -int mbedtls_x509_info_key_usage(char **buf, size_t *size, - unsigned int key_usage) -{ - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t n = *size; - char *p = *buf; - const char *sep = ""; - - KEY_USAGE(MBEDTLS_X509_KU_DIGITAL_SIGNATURE, "Digital Signature"); - KEY_USAGE(MBEDTLS_X509_KU_NON_REPUDIATION, "Non Repudiation"); - KEY_USAGE(MBEDTLS_X509_KU_KEY_ENCIPHERMENT, "Key Encipherment"); - KEY_USAGE(MBEDTLS_X509_KU_DATA_ENCIPHERMENT, "Data Encipherment"); - KEY_USAGE(MBEDTLS_X509_KU_KEY_AGREEMENT, "Key Agreement"); - KEY_USAGE(MBEDTLS_X509_KU_KEY_CERT_SIGN, "Key Cert Sign"); - KEY_USAGE(MBEDTLS_X509_KU_CRL_SIGN, "CRL Sign"); - KEY_USAGE(MBEDTLS_X509_KU_ENCIPHER_ONLY, "Encipher Only"); - KEY_USAGE(MBEDTLS_X509_KU_DECIPHER_ONLY, "Decipher Only"); - - *size = n; - *buf = p; - - return 0; -} - static int x509_info_ext_key_usage(char **buf, size_t *size, const mbedtls_x509_sequence *extended_key_usage) { From 3f948c96e21c855927bdea999bd7de57e9806f92 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 24 Jan 2023 08:14:23 +0100 Subject: [PATCH 1507/1574] Fix typo in test dependencies Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.data | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index d2c322f69..87eaa3aab 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -351,19 +351,19 @@ depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_US mbedtls_x509_csr_info:"data_files/server1-ms.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nsigned using \: RSA with SHA-256\nRSA key size \: 2048 bits\n" X509 CSR Information v3 extensions #1 (all) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" X509 CSR Information v3 extensions #2 (nsCertType only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" X509 CSR Information v3 extensions #3 (subjectAltName only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CSR Information v3 extensions #4 (keyUsage only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" X509 Verify Information: empty From 160968586b0ae4657d2d5abd35c4a8d073f3f0cd Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 24 Jan 2023 09:24:19 +0100 Subject: [PATCH 1508/1574] Add negative test cases and use DER format for CSRs Signed-off-by: Przemek Stekiel --- tests/data_files/Makefile | 46 ++++++++++++-- tests/data_files/test_csr_v3_all.csr | Bin 664 -> 437 bytes ...malformed_attributes_extension_request.csr | Bin 0 -> 437 bytes ...ibutes_extension_request_sequence_len1.csr | Bin 0 -> 437 bytes ...ibutes_extension_request_sequence_len2.csr | Bin 0 -> 437 bytes ...ributes_extension_request_sequence_tag.csr | Bin 0 -> 437 bytes ...d_attributes_extension_request_set_tag.csr | Bin 0 -> 437 bytes ...csr_v3_all_malformed_attributes_id_tag.csr | Bin 0 -> 437 bytes ...t_csr_v3_all_malformed_attributes_len1.csr | Bin 0 -> 437 bytes ...t_csr_v3_all_malformed_attributes_len2.csr | Bin 0 -> 437 bytes ..._all_malformed_attributes_sequence_tag.csr | Bin 0 -> 437 bytes ..._v3_all_malformed_duplicated_extension.csr | Bin 0 -> 437 bytes ...r_v3_all_malformed_extension_data_len1.csr | Bin 0 -> 437 bytes ...r_v3_all_malformed_extension_data_len2.csr | Bin 0 -> 437 bytes ...sr_v3_all_malformed_extension_data_tag.csr | Bin 0 -> 437 bytes ..._csr_v3_all_malformed_extension_id_tag.csr | Bin 0 -> 437 bytes ...rmed_extension_key_usage_bitstream_tag.csr | Bin 0 -> 437 bytes ...formed_extension_ns_cert_bitstream_tag.csr | Bin 0 -> 437 bytes ...xtension_subject_alt_name_sequence_tag.csr | Bin 0 -> 437 bytes ...sr_v3_all_malformed_extension_type_oid.csr | Bin 0 -> 437 bytes ..._all_malformed_extensions_sequence_tag.csr | Bin 0 -> 437 bytes tests/data_files/test_csr_v3_keyUsage.csr | Bin 570 -> 368 bytes tests/data_files/test_csr_v3_nsCertType.csr | Bin 578 -> 374 bytes .../data_files/test_csr_v3_subjectAltName.csr | Bin 623 -> 407 bytes tests/suites/test_suite_x509parse.data | 59 ++++++++++++++++++ 25 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_id_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_len2.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_duplicated_extension.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_data_len1.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extension_type_oid.csr create mode 100644 tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index a87e0cc06..fbf447c5b 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -94,13 +94,51 @@ cert_example_multi.crt: cert_example_multi.csr $(OPENSSL) x509 -req -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) -extfile $(test_ca_config_file) -extensions dns_alt_names -passin "pass:$(test_ca_pwd_rsa)" -set_serial 17 -days 3653 -sha256 -in $< > $@ test_csr_v3_keyUsage.csr: rsa_pkcs1_1024_clear.pem - $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_keyUsage + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_keyUsage test_csr_v3_subjectAltName.csr: rsa_pkcs1_1024_clear.pem - $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_subjectAltName + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_subjectAltName test_csr_v3_nsCertType.csr: rsa_pkcs1_1024_clear.pem - $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_nsCertType + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_nsCertType test_csr_v3_all.csr: rsa_pkcs1_1024_clear.pem - $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -out $@ -reqexts csr_ext_v3_all + $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_all +test_csr_v3_all_malformed_extensions_sequence_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/300B0603551D0F040403/200B0603551D0F040403/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_id_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/0603551D0F0404030201/0703551D0F0404030201/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_data_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/050403020102302F0603/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_data_len1.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/040503020102302F0603/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_data_len2.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/040303020102302F0603/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/03020102302F0603551D/04020102302F0603551D/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/3026A02406082B060105/4026A02406082B060105/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/04020780300D06092A86/03020780300D06092A86/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_duplicated_extension.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/551D11/551D0F/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_extension_type_oid.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/551D11/551DFF/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_sequence_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/406006092A864886F70D/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_id_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/06092A864886F70D0109/07092A864886F70D0109/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_extension_request.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/2A864886F70D01090E/2A864886F70D01090F/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/31533051300B0603551D/32533051300B0603551D/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3151300B0603551D0F04/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_len1.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/306106092A864886F70D/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_len2.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/305906092A864886F70D/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3052300B0603551D0F04/" | xxd -r -p ) > $@ +test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr: test_csr_v3_all.csr + (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3050300B0603551D0F04/" | xxd -r -p ) > $@ $(test_ca_key_file_rsa_alt):test-ca.opensslconf $(OPENSSL) genrsa -out $@ 2048 diff --git a/tests/data_files/test_csr_v3_all.csr b/tests/data_files/test_csr_v3_all.csr index fecca328ad20c958aee6b15197338b285eedc519..7e717f35733166efe3775e7747901738865de123 100644 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<)dqh3GMn#BPu<|2x^Hh& z5Ve^53sXO2TZSQ|zkDhp8iYUaP2-HAF2or88iN2uM(T3tELcPol%nU8Uz`a>j}crX z%O)#xYoq1}1lbn={-tX zFZ;NJe4lR9QG2-6VI3{FPj2kh1=5@OrRRF%AZ+5L?)qr1R*kG^TeHwrjh-E=jZ+-* zul;Veaz?3%)<(D8t9%4$R1IpEm@DFio9_n6pR{J!!77wdgy;oNedP$@sSV+e~|~t2jORZ|&c&s7wC;xxZ|c(c=IB diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr new file mode 100644 index 0000000000000000000000000000000000000000..96a11e87378815711b59189560297e724f8b39a2 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE( zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAIbfK9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?}K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD`0K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CGO zf(-(}K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dKYm;*Wa z41)~P*f& zq0?tK-O`zMKSb-(wH4_rPS$0wnduVp?g_ue+Jrw{X6v<=?MO-8(6lvk{jHVH*se>P TKYmyeSo>01{NJ4R32~1Bg=V0! literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr new file mode 100644 index 0000000000000000000000000000000000000000..01eabffdc1c51a5596b2458740e553b81cac4270 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!fh_13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!ft}13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!>jJ13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPR%sWHQhPdI!kSFi=~d!p5P^#>mRb&cU)k!a$6T9mr#06l7-MHZ(GB zXk=(?Fg7wY5M<*_X!Brf`{BgM2r`4c0XYb`K|#>SF!|cP$5*CKXZKWDkhu55g$sQv zSIAFkidJ}M{eq!`!lGf(LB z*-f`}rri(G`gCnY`ihfv*=uIHguHvgZ?QJvPnX$x?PWVsQa3bh&0K$L@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVP$4wWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO?n7GZT9Qau9HXf}oLM^0j@BuS}iJ?y0gMaqou< z7y4GNke|{Nt?nH|YF!Vi?+-8bCiE~47B`1qem-_tU>zuc0DIdvvy zp3v#Dn{Me$yC0(U>Dr3)6({Sm*UWSYdH00hVr{~oF0=L8%XXxsZfM$?x&GG5XKdG{ U%^yE339Nl7E&gv#`-Hg10EJJWu>b%7 literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr b/tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr new file mode 100644 index 0000000000000000000000000000000000000000..a49209abe562ff552914f880ef47c9e9ed096e35 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPnH|YF!Vi?+-8bCiE~47B`1qem-_tU>zuc0DIdvvy zp3v#Dn{Me$yC0(U>Dr3)6({Sm*UWSYdH00hVr{~oF0=L8%XXxsZfM$?x&GG5XKdG{ U%^yE339Nl7E&gv#`-Hg10E3sHuK)l5 literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr new file mode 100644 index 0000000000000000000000000000000000000000..ccae7233b591dedc525f0d597321fee3b8e87c18 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SWnpGwWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO?pY4E6@(Am9cCK_kQDYx^EwnL3@_Q)NNo-VYZp z^sQVWKcy*J;hpshh7JyAHp_!DJCbvRA1J@OZ@9@_M73%0@jsKkr)6}1xg`;E>P*f& zq0?tK-O`zMKSb-(wH4_rPS$0wnduVp?g_ue+Jrw{X6v<=?MO-8(6lvk{jHVH*se>P TKYmyeSo>01{NJ4R32~1Bg;1ce literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr new file mode 100644 index 0000000000000000000000000000000000000000..989e40408357d4192c419bac484eb703dc9b5a7a GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD==xY?OQW%*fHn3))v4D^BCkriaoFi=~d!p5P^#>mRb&cU)k!a$6T9mr#06l7-M zHZ(GBXk=(?Fg7wY5M<*_X!Brf`{BgM2r`4c0XYb`K|#>SF!|cP$5*CKXZKWDkhu55 zg$sQvSIAFkidJ}M{eq!`!l zGf(LB*-f`}rri(G`gCnY`ihfv*=uIHguHvgZ?QJvPnX$x?PWVsQa3bh&0K$L@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPRonWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO?n7GZT9Qau9HXf}oLM^0j@BuS}iJ?y0gMaqou< z7y4GNke|{Nt?nH|YF!Vi?+-8bCiE~47B`1qem-_tU>zuc0DIdvvy zp3v#Dn{Me$yC0(U>Dr3)6({Sm*UWSYdH00hVr{~oF0=L8%XXxsZfM$?x&GG5XKdG{ U%^yE339Nl7E&gv#`-Hg10EJGVu>b%7 literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr new file mode 100644 index 0000000000000000000000000000000000000000..7e717f35733166efe3775e7747901738865de123 GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-XCfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPR%sWHQhPdPi1}MZ-aDfeIUkHX9==D?10v0to{#Hg+J7g;9{1h1<}` zxS^4uvBB8L&_IxlGoj6cvF(QwBO}NR_6Fo2;06UjBg5ot`yOAJI-T89WkKTJ4;L=< ztz02Lr72qBo%IWb4i0BF%Y!mIl5>O~D8IXJxXE2awQ2G3Ka;+vWpsbJB@uJ#OwK%^ z(`Pr`(wTNYMC;SF73nKZ)@84m=@Rnp3BSeKgg;$o>$R8dNJ-t$v^8`6t(DK%u1lLg SepnJ%`%+r`-<@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD?~K9J>SVPR%sWHQhPdPnv@i-v*P0u?q6Z8k<$R(1}S1ri2gZ0tZD3!@-23%8+> zaYG|RV}r4gp@AS9XF{6?W7`iWMn;es>jALJL?w=9URVVmIq~aBr8Dh*h}NfTE7Dh-tjk_A(CTPvTjU6(e0 T{IDdj_NBD=zd7v_;vNG4M$n<2 literal 0 HcmV?d00001 diff --git a/tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr new file mode 100644 index 0000000000000000000000000000000000000000..fecb15efb447947a1815037932f3738d9cc1286c GIT binary patch literal 437 zcmXqLV%%uZ#3;qY$Y8*4$ZNpO#vIDR%)^pelAL1DINyMmjZ>@5qwPB{BO@a#19M|9 zgF#~_Q)45;af?Yu4}U2T;K=?VZ2IOiqfD17|I{Wkxm9x0ghHj({HQK9<}L^~o^x~R zM_(To^Ar1yEUg)-?&6bM0@<+^c1pl(X^QlQj>VHaXT* zKbfm8GFyi|yU*FyKBvseZI(;{uj<@A9LF90++Z?K`d|C{k1i84BLm}tB!dLF13CE& zgAD=|Kt7P=XJKJxVq`MV2XO>hGz`=hsIYNpvoW%=vU9L3kT4KqV+ZnB7zLSGxDAbr z8yXoJ8;p$%4FuUZ6WTl&+kQAPGJ?!tZ$J(LZcq?3GEBa<@9~wX)7d>$79{TdaN$DV z$`$fcnxYlnS-)WD;BaQMJSejxIY;<`^1J(no7_cIn-(AcGwFL;M)#Ln5;3RF)FR?K>|cBO@yVb7L=q zL1QOVV`PH4mINIo4D^ znX4``TZcWn&)L>Kr_9Q2mP`S!>fAjX#~uFMU@}koU;FxxE)z2&1LFcY0~xpjIr$9v z4In;{Mt2k!x?v`C&sN=~jO~G+CA4Ox$Op`r_`!22?Nu5foUEV+8&BbvN2%E3K-aj@9Z7NKBi3 zAQD8jVIvTckAUz!38O#cN}#q4GmPN6v?0J?N4Y$sIl%|cF$O`Co2;g`Sx_LGDD2J9 z&Q#0^1bh#`r^y8HHs81lOO7qy@r+ptW&*B*2m;as3^ZBA9|1^M7^3gB;*8AwU>hBUX;* z44XhAZLm>?&0<_`G}W8F(r{KimbiI-X--u~RPW1Mg0nFf29=Bfnu_gccFP?d?MT(+ zSJdqj-sY}jOxLD;x3L}5R-06Q9-jD~#E&p4CfQe|SZJU3!n|nwha`<0NU^&#-L$q| bChF4@lzG<{%K{9dM)SAucX`6_|6lPNSmUuh diff --git a/tests/data_files/test_csr_v3_nsCertType.csr b/tests/data_files/test_csr_v3_nsCertType.csr index 039874330b8b147aa9bc7e6bc4ae28c10ac6f7a3..cf9588dad174c08f91b4bbd30a9fd0f527a048c5 100644 GIT binary patch literal 374 zcmXqLVk|Ofyu-xEV8Cz4YrxIM9LmDX!;)H(oMO;8-+-5mQ>)FR?K>|cBO@yVb7L=q zL1QOVV`PH4mINIo4D^ znX4``TZcWn&)L>Kr_9Q2mP`S!>fAjX#~uFMU@}koU;FxxE)z2&1LFb}10}cvIr$7l z4TKE@**Fv0JQ&-4I59G^urM>RIUsw28{~;bh6Jl=?+W+)U0$%HEW9mQsPR(Tx$ei7 zpP5|6w~Czz)>T$3klS&{&3A{o)w4}^cW%o}yM5r&gq5ErzG}U(%Sf`au)oUsS06#8~b^rhX literal 578 zcmZ{iIkTcb7)5h_#mg;=MNnQa!Pg7WNTUsIkO?TQ=o4^h%3nXuM3c--?>)h-I^*#t zi25x4!ZcYik6~ERuY`&-)vBnugbT#|>xxk%Qsm zwDVI|Oo*Te#2Uc%V+{yKCoxC0Ai*MxJf$a!g6v0#o3kZH0lQs@v&FHTc0rq^o20vs zf``e~Lv7xRQnT{iuv!l^c2A>W4!YwD*U*-+XPFOD21$-(sQauucgTB50~nmm5ua;iCfR6UEl%^xo?THLyA z(8=mFiAr&gOs+jm|@Mn+Z!=EhzI zgT_v##zuzY7L$%1{!$>ok^Mv1^v!2RnJ!iSsZC~btK_B$g-WgYQC(`xT@Y?O=jPOp zzCJGIC-xm#VE-h==JMy0OwP84YohxqS8=wiYZ5l++TWVFSIaahXXC#oYaTdla;&L- zGFM$>whnuCpR=ufPMMY4ESUmc)wz2(jywFh!DOEFzxMSXT_$Em2F3-h2F`E?a`G9P z8JHLt0ev7V$f9ka*~Fb%k(gVMld6}TpNrt+rIs}DYU#n`@{7`ueaQ{-Wg|nd#*SA~ z^ZD-<`i8{+Xz#eU;r=z2br+f?cePX=+q<~_f8XkT)=i231Z`*3aoN7uI$_DtlpW7z zy*~K((msPdJ4Ek_Z!3AHkyBX982&c3<&G}@G3~G4>%M&5r1xpw|Ckz)Sh;z^Y#|#f f@@Ey_6prr*o_F`yb-(qM>s{p-R@USfm>0t+3=SX)86Xcu7eNJffBkuP$tBlGSAAXGQO{;? zK|&e-K*SH3#SjR|hfl7{+dfD0cIEei2 zA=}TnJ3hzg$IB%xIZokzB7A+8r!7zxRIF8Hw*if7j{1~czHS|ggI86%I_hOB&D4$` zHjhWSYI+YM>Css0LJm%wDaagf>M!r&PMb8ZNmJVfe3NKvz$o2`@{(yT`J+B3|o;jVa&W#UQ%$(#{*Vz$1 zq$F6pl4F2y(7ydIe6u0H0COucp~71`@n#;Us6G6}V~tXgyF9K_v?nwOWR%e8%x)ZQ2er;2pH&`zGwX0~O5 zsC*`Im^(tDTji*iLpXn&SKnWQnU~N%*>@v^*I+8BoJzUbgh!(ezn(gstIMHCP0Oy( Ty`(Z|BI8r~a~Hz#|F855SFgfI diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 87eaa3aab..31c6e6702 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -2680,6 +2680,65 @@ mbedtls_x509_csr_parse:"308201193081bf0201003034310b3009060355040613024e4c311130 X509 CSR ASN.1 (invalid version overflow) mbedtls_x509_csr_parse:"3008300602047fffffff":"":MBEDTLS_ERR_X509_UNKNOWN_VERSION +# Used test_csr_v3_all.csr as a base for malforming CSR extenstions/attributes +# Please see makefile for data_files to check malformation details (test_csr_v3_all_malformed_xxx.csr files) +X509 CSR ASN.1 (attributes: invalid sequence tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062406006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (attributes: invalid attribute id) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306007092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (attributes: not extension request) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090F31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n":0 + +X509 CSR ASN.1 (attributes: invalid extenstion request set tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E32533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (attributes: invalid extenstion request sequence tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533151300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (attributes: invalid len (len > data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306106092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA + +X509 CSR ASN.1 (attributes: invalid len (len < data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062305906092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH + +X509 CSR ASN.1 (attributes: extension request invalid len (len > data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533052300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA + +X509 CSR ASN.1 (attributes: extension request invalid len (len < data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533050300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA + +X509 CSR ASN.1 (extensions: invalid sequence tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051200B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: invalid extension id tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0703551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: invalid extension data tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F050403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: invalid extension data len (len > data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040503020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA + +X509 CSR ASN.1 (extensions: invalid extension data len (len < data)) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040303020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH + +X509 CSR ASN.1 (extensions: invalid extension key usage bitstream tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040404020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: invalid extension subject alt name sequence tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104284026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: invalid extension ns cert bitstream tag) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040404020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG + +X509 CSR ASN.1 (extensions: duplicated extension) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D0F04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_INVALID_DATA + +X509 CSR ASN.1 (extensions: invalid extension type data) +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551DFF04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_OID_NOT_FOUND + X509 File parse (no issues) depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C x509parse_crt_file:"data_files/server7_int-ca.crt":0 From 86d19461641262ce4064af15cfe597df5a5e2152 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 24 Jan 2023 09:45:19 +0100 Subject: [PATCH 1509/1574] Fix error codes returned on failures Signed-off-by: Przemek Stekiel --- library/x509_csr.c | 102 ++++++++++++++++++++++++--------------------- 1 file changed, 54 insertions(+), 48 deletions(-) diff --git a/library/x509_csr.c b/library/x509_csr.c index 1f133e87f..1ea77fe97 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -78,7 +78,6 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, int ret; size_t len; unsigned char *end_ext_data; - while (*p < end) { mbedtls_x509_buf extn_oid = { 0, 0, NULL }; int ext_type = 0; @@ -86,7 +85,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, /* Read sequence tag */ if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } end_ext_data = *p + len; @@ -94,7 +93,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, /* Get extension ID */ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &extn_oid.len, MBEDTLS_ASN1_OID)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } extn_oid.tag = MBEDTLS_ASN1_OID; @@ -104,11 +103,12 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, /* Data should be octet string type */ if ((ret = mbedtls_asn1_get_tag(p, end_ext_data, &len, MBEDTLS_ASN1_OCTET_STRING)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } + if (*p + len != end_ext_data) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } /* @@ -116,49 +116,54 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, */ ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type); - if (ret == 0) { - /* Forbid repeated extensions */ - if ((csr->ext_types & ext_type) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS; - } + if (ret != 0) { + *p = end_ext_data; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + ret); + } - csr->ext_types |= ext_type; + /* Forbid repeated extensions */ + if ((csr->ext_types & ext_type) != 0) { + return (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_DATA)); + } - switch (ext_type) { - case MBEDTLS_X509_EXT_KEY_USAGE: - /* Parse key usage */ - if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, - &csr->key_usage)) != 0) { - return ret; - } - break; + csr->ext_types |= ext_type; - case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: - /* Parse subject alt name */ - if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, - &csr->subject_alt_names)) != 0) { - return ret; - } - break; + switch (ext_type) { + case MBEDTLS_X509_EXT_KEY_USAGE: + /* Parse key usage */ + if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, + &csr->key_usage)) != 0) { + return ret; + } + break; - case MBEDTLS_X509_EXT_NS_CERT_TYPE: - /* Parse netscape certificate type */ - if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, - &csr->ns_cert_type)) != 0) { - return ret; - } - break; - default: - break; - } + case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: + /* Parse subject alt name */ + if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, + &csr->subject_alt_names)) != 0) { + return ret; + } + break; + + case MBEDTLS_X509_EXT_NS_CERT_TYPE: + /* Parse netscape certificate type */ + if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, + &csr->ns_cert_type)) != 0) { + return ret; + } + break; + default: + break; } *p = end_ext_data; } if (*p != end) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } return 0; @@ -180,14 +185,14 @@ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } end_attr_data = *p + len; /* Get attribute ID */ if ((ret = mbedtls_asn1_get_tag(p, end_attr_data, &attr_oid.len, MBEDTLS_ASN1_OID)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } attr_oid.tag = MBEDTLS_ASN1_OID; @@ -196,24 +201,25 @@ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, /* Check that this is an extension-request attribute */ if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS9_CSR_EXT_REQ, &attr_oid) == 0) { + if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } if ((ret = x509_csr_parse_extensions(csr, p, *p + len)) != 0) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret; + return ret; } if (*p != end_attr_data) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } } @@ -221,8 +227,8 @@ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, } if (*p != end) { - return MBEDTLS_ERR_X509_INVALID_EXTENSIONS + - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH; + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } return 0; From ee2aff209375a5ad6214ae2dd469e2c38c84f6ae Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 24 Jan 2023 12:48:15 +0100 Subject: [PATCH 1510/1574] Add check for test input The input for fix_quasi_reduction must be in range 0 <= X < 2N. Signed-off-by: Gabor Mezei --- tests/suites/test_suite_bignum_mod_raw.function | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 9e29130fb..587c832a8 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -348,6 +348,7 @@ void mpi_mod_raw_fix_quasi_reduction(char *input_N, mbedtls_mpi_uint *A = NULL; mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *res = NULL; + mbedtls_mpi_uint *tmp = NULL; size_t limbs_A; size_t limbs_N; size_t limbs_res; @@ -365,6 +366,13 @@ void mpi_mod_raw_fix_quasi_reduction(char *input_N, TEST_EQUAL(limbs_A, limbs); TEST_EQUAL(limbs_res, limbs); + ASSERT_ALLOC(tmp, limbs); + memcpy(tmp, A, bytes); + + /* Check that 0 <= X < 2N */ + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(tmp, A, N, limbs); + TEST_ASSERT(c || mbedtls_mpi_core_lt_ct(tmp, N, limbs)); + TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( &m, N, limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); @@ -375,6 +383,7 @@ void mpi_mod_raw_fix_quasi_reduction(char *input_N, exit: mbedtls_free(A); mbedtls_free(res); + mbedtls_free(tmp); mbedtls_mpi_mod_modulus_free(&m); mbedtls_free(N); From 86c90fca3e228a23e03675adefda148634e47737 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 24 Jan 2023 12:53:24 +0100 Subject: [PATCH 1511/1574] Rename variables to follow the naming convention Signed-off-by: Gabor Mezei --- .../suites/test_suite_bignum_mod_raw.function | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/suites/test_suite_bignum_mod_raw.function b/tests/suites/test_suite_bignum_mod_raw.function index 587c832a8..24ecba326 100644 --- a/tests/suites/test_suite_bignum_mod_raw.function +++ b/tests/suites/test_suite_bignum_mod_raw.function @@ -342,46 +342,46 @@ exit: /* BEGIN_CASE depends_on:MBEDTLS_TEST_HOOKS */ void mpi_mod_raw_fix_quasi_reduction(char *input_N, - char *input_A, + char *input_X, char *result) { - mbedtls_mpi_uint *A = NULL; + mbedtls_mpi_uint *X = NULL; mbedtls_mpi_uint *N = NULL; mbedtls_mpi_uint *res = NULL; mbedtls_mpi_uint *tmp = NULL; - size_t limbs_A; + size_t limbs_X; size_t limbs_N; size_t limbs_res; mbedtls_mpi_mod_modulus m; mbedtls_mpi_mod_modulus_init(&m); - TEST_EQUAL(mbedtls_test_read_mpi_core(&A, &limbs_A, input_A), 0); + TEST_EQUAL(mbedtls_test_read_mpi_core(&X, &limbs_X, input_X), 0); TEST_EQUAL(mbedtls_test_read_mpi_core(&N, &limbs_N, input_N), 0); TEST_EQUAL(mbedtls_test_read_mpi_core(&res, &limbs_res, result), 0); size_t limbs = limbs_N; size_t bytes = limbs * sizeof(mbedtls_mpi_uint); - TEST_EQUAL(limbs_A, limbs); + TEST_EQUAL(limbs_X, limbs); TEST_EQUAL(limbs_res, limbs); ASSERT_ALLOC(tmp, limbs); - memcpy(tmp, A, bytes); + memcpy(tmp, X, bytes); /* Check that 0 <= X < 2N */ - mbedtls_mpi_uint c = mbedtls_mpi_core_sub(tmp, A, N, limbs); + mbedtls_mpi_uint c = mbedtls_mpi_core_sub(tmp, X, N, limbs); TEST_ASSERT(c || mbedtls_mpi_core_lt_ct(tmp, N, limbs)); TEST_EQUAL(mbedtls_mpi_mod_modulus_setup( &m, N, limbs, MBEDTLS_MPI_MOD_REP_MONTGOMERY), 0); - mbedtls_mpi_mod_raw_fix_quasi_reduction(A, &m); - ASSERT_COMPARE(A, bytes, res, bytes); + mbedtls_mpi_mod_raw_fix_quasi_reduction(X, &m); + ASSERT_COMPARE(X, bytes, res, bytes); exit: - mbedtls_free(A); + mbedtls_free(X); mbedtls_free(res); mbedtls_free(tmp); From a46876800075be3f135a9eb230ecc6b93c8d3720 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Tue, 24 Jan 2023 15:19:47 +0100 Subject: [PATCH 1512/1574] Dealocate memory for subject alt names Signed-off-by: Przemek Stekiel --- library/x509_csr.c | 1 + 1 file changed, 1 insertion(+) diff --git a/library/x509_csr.c b/library/x509_csr.c index 1ea77fe97..3b3aa1cc5 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -581,6 +581,7 @@ void mbedtls_x509_csr_free(mbedtls_x509_csr *csr) #endif mbedtls_asn1_free_named_data_list_shallow(csr->subject.next); + mbedtls_asn1_sequence_free(csr->subject_alt_names.next); if (csr->raw.p != NULL) { mbedtls_platform_zeroize(csr->raw.p, csr->raw.len); From 995a7c0de0eda73cda3d2fd8b837b6bddfb14cc5 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 16 Jan 2023 18:20:08 +0000 Subject: [PATCH 1513/1574] Remove provisional notice on code style script Since code style is now enforced, the notice is wrong. Remove it to avoid confusion. Signed-off-by: David Horstmann --- scripts/code_style.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 3958e870f..463a349ff 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -1,9 +1,5 @@ #!/usr/bin/env python3 """Check or fix the code style by running Uncrustify. - -Note: The code style enforced by this script is not yet introduced to -Mbed TLS. At present this script will only be used to prepare for a future -change of code style. """ # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 From 8b5a449c828bfe7981860de4120aaefdbc161b92 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 16 Jan 2023 18:28:21 +0000 Subject: [PATCH 1514/1574] Document that the script must be run from the root Signed-off-by: David Horstmann --- scripts/code_style.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/code_style.py b/scripts/code_style.py index 463a349ff..e26d42e9c 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 """Check or fix the code style by running Uncrustify. + +This script must be run from the root of a Git work tree containing Mbed TLS. """ # Copyright The Mbed TLS Contributors # SPDX-License-Identifier: Apache-2.0 From 7d52682958dca451a127837dfecf78b8e1f25c05 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 16 Jan 2023 18:30:00 +0000 Subject: [PATCH 1515/1574] Remove unnecessary "Line length options" heading Signed-off-by: David Horstmann --- .uncrustify.cfg | 2 -- 1 file changed, 2 deletions(-) diff --git a/.uncrustify.cfg b/.uncrustify.cfg index 7ce090533..92b8ce9cd 100644 --- a/.uncrustify.cfg +++ b/.uncrustify.cfg @@ -19,8 +19,6 @@ # limitations under the License. -# Line length options - # Wrap lines at 100 characters code_width = 100 From 28d21570020143401b9be3000fdcbb4733d8c37a Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 16 Jan 2023 18:32:56 +0000 Subject: [PATCH 1516/1574] Change print to print_err for an error message Signed-off-by: David Horstmann --- scripts/code_style.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index e26d42e9c..6222dbad4 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -158,7 +158,7 @@ def fix_style(src_file_list: List[str]) -> int: # Guard against future changes that cause the codebase to require # more passes. if not check_style_is_correct(src_file_list): - print("Code style still incorrect after second run of Uncrustify.") + print_err("Code style still incorrect after second run of Uncrustify.") return 1 else: return 0 From c9f90aaf5ae723203fcb46ea9df80371db8d5d11 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 16 Jan 2023 18:53:01 +0000 Subject: [PATCH 1517/1574] Remove overly verbose output on success Signed-off-by: David Horstmann --- scripts/code_style.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index 6222dbad4..5d05fd8a9 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -122,8 +122,6 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: print("File changed - diff:", file=STDOUT_UTF8) print(str(result.stdout, "utf-8"), file=STDOUT_UTF8) style_correct = False - else: - print(src_file + " - OK.", file=STDOUT_UTF8) # Tidy up artifact os.remove(src_file + ".uncrustify") From 6f96c89fc369c45e72b8194bcd0d16326d843346 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 24 Jan 2023 17:38:26 +0100 Subject: [PATCH 1518/1574] Fix pylint issues Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 5645685a5..4a9459460 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -62,13 +62,13 @@ class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, # Extend the default values with n < x < 2n input_values = bignum_common.ModOperationCommon.input_values + [ - "73", - "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", - ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" - "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" - "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" - "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") - ] # type: List[str] + "73", + "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", + ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" + "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" + "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" + "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") + ] # type: List[str] def result(self) -> List[str]: result = self.int_a % self.int_n From 089d0d08a020e8e1e69cc51f0cdb7fb8fe4316bb Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 24 Jan 2023 16:56:18 +0000 Subject: [PATCH 1519/1574] Add basic output on success Whilst it is true that "silence is golden", no output at all could be disconcerting and it makes searching in a CI log more difficult. Add a simple status message that says "Checked N files, style ok". Signed-off-by: David Horstmann --- scripts/code_style.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/code_style.py b/scripts/code_style.py index 5d05fd8a9..f333c643c 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -199,6 +199,8 @@ def main() -> int: else: # Check mode if check_style_is_correct(src_files): + print("Checked {} files, style ok.".format(len(src_files)), + file=STDOUT_UTF8) return 0 else: return 1 From 246d66bb5fd0df3ced5c738607a2be3dd8636717 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 24 Jan 2023 18:02:52 +0100 Subject: [PATCH 1520/1574] Use reproductable random numbers Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 4a9459460..69fe7b8e6 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -63,11 +63,15 @@ class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, # Extend the default values with n < x < 2n input_values = bignum_common.ModOperationCommon.input_values + [ "73", - "ebeddd7b4fefae8755bbfb9c181a73347096b3ec70d1a021", - ("1f4e1d074d0b50e8d8818f9a9e5df9959f902bb955fd24fd3d791175226ad8c1" - "fcb6d59fa41a3dcb25412009e5e356eb65b50ca67782285290420b45b32f0d63" - "7c9ee549a52ad8d631ba4945435c9aec77227ec59faff878b71b920a3d631929" - "d636c9a409d6ffdcd95e2568e128596811fb9ade15e69f6efd509381ebbf3599") + + # First number generated by random.getrandbits(1024) - seed(3,2) + "ea7b5bf55eb561a4216363698b529b4a97b750923ceb3ffd", + + # First number generated by random.getrandbits(1024) - seed(1,2) + ("cd447e35b8b6d8fe442e3d437204e52db2221a58008a05a6c4647159c324c985" + "9b810e766ec9d28663ca828dd5f4b3b2e4b06ce60741c7a87ce42c8218072e8c" + "35bf992dc9e9c616612e7696a6cecc1b78e510617311d8a3c2ce6f447ed4d57b" + "1e2feb89414c343c1027c4d1c386bbc4cd613e30d8f16adf91b7584a2265b1f5") ] # type: List[str] def result(self) -> List[str]: From 627e5b1f91749cdd1c59891eb4bdb49a000578f2 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Tue, 24 Jan 2023 18:13:24 +0100 Subject: [PATCH 1521/1574] Only enable fix_quasi_reduction when testing Avoid compiler error due to the fix_quasi_reduction function is static and has not been used. Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 049cdb2fb..6ac9e72db 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -118,15 +118,7 @@ void mbedtls_mpi_mod_raw_sub(mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); } -void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, - const mbedtls_mpi_uint *A, - const mbedtls_mpi_uint *B, - const mbedtls_mpi_mod_modulus *N, - mbedtls_mpi_uint *T) -{ - mbedtls_mpi_core_montmul(X, A, B, N->limbs, N->p, N->limbs, - N->rep.mont.mm, T); -} +#if defined(MBEDTLS_TEST_HOOKS) MBEDTLS_STATIC_TESTABLE void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, @@ -137,6 +129,18 @@ void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, (void) mbedtls_mpi_core_add_if(X, N->p, N->limbs, (unsigned) c); } +#endif /* MBEDTLS_TEST_HOOKS */ + +void mbedtls_mpi_mod_raw_mul(mbedtls_mpi_uint *X, + const mbedtls_mpi_uint *A, + const mbedtls_mpi_uint *B, + const mbedtls_mpi_mod_modulus *N, + mbedtls_mpi_uint *T) +{ + mbedtls_mpi_core_montmul(X, A, B, N->limbs, N->p, N->limbs, + N->rep.mont.mm, T); +} + /* END MERGE SLOT 2 */ /* BEGIN MERGE SLOT 3 */ From ce42cc24d12fc0171815e9bca2578f2ae6b45a80 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 24 Jan 2023 18:08:49 +0000 Subject: [PATCH 1522/1574] Output diff without capturing it Instead of capturing the output of diff and printing it, let diff do its own outputting and se the return code to decide what to do. This also means that the conversion of stdout to UTF-8 is not necessary, as the reason it was needed was for printing diffs of files with UTF-8 characters in them. Signed-off-by: David Horstmann --- scripts/code_style.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index f333c643c..d9c61a5af 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -115,13 +115,14 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: # file with the extension ".uncrustify". To get the changes (if any) # simply diff the 2 files. diff_cmd = ["diff", "-u", src_file, src_file + ".uncrustify"] - result = subprocess.run(diff_cmd, stdout=subprocess.PIPE, \ - stderr=STDERR_UTF8, check=False) - if len(result.stdout) > 0: - print(src_file + " - Incorrect code style.", file=STDOUT_UTF8) - print("File changed - diff:", file=STDOUT_UTF8) - print(str(result.stdout, "utf-8"), file=STDOUT_UTF8) + cp = subprocess.run(diff_cmd, check=False) + + if cp.returncode == 1: + print(src_file + " changed - code style is incorrect.", file=STDOUT_UTF8) style_correct = False + elif cp.returncode != 0: + raise subprocess.CalledProcessError(cp.returncode, cp.args, + cp.stdout, cp.stderr) # Tidy up artifact os.remove(src_file + ".uncrustify") From 6b3ce309adb4cb6db4cae36f6296ff072b893fc1 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 24 Jan 2023 18:36:41 +0000 Subject: [PATCH 1523/1574] Don't wrap stdout and stderr in UTF-8 wrapper This is no longer needed as we only print ASCII text directly Signed-off-by: David Horstmann --- scripts/code_style.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index d9c61a5af..d3ae624ec 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -18,7 +18,6 @@ This script must be run from the root of a Git work tree containing Mbed TLS. # See the License for the specific language governing permissions and # limitations under the License. import argparse -import io import os import re import subprocess @@ -29,12 +28,10 @@ UNCRUSTIFY_SUPPORTED_VERSION = "0.75.1" CONFIG_FILE = ".uncrustify.cfg" UNCRUSTIFY_EXE = "uncrustify" UNCRUSTIFY_ARGS = ["-c", CONFIG_FILE] -STDOUT_UTF8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') -STDERR_UTF8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') CHECK_GENERATED_FILES = "tests/scripts/check-generated-files.sh" def print_err(*args): - print("Error: ", *args, file=STDERR_UTF8) + print("Error: ", *args, file=sys.stderr) # Match FILENAME(s) in "check SCRIPT (FILENAME...)" CHECK_CALL_RE = re.compile(r"\n\s*check\s+[^\s#$&*?;|]+([^\n#$&*?;|]+)", @@ -67,8 +64,8 @@ def get_src_files() -> List[str]: "tests/suites/*.function", "scripts/data_files/*.fmt"] - result = subprocess.run(git_ls_files_cmd, stdout=subprocess.PIPE, \ - stderr=STDERR_UTF8, check=False) + result = subprocess.run(git_ls_files_cmd, stdout=subprocess.PIPE, + check=False) if result.returncode != 0: print_err("git ls-files returned: " + str(result.returncode)) @@ -118,7 +115,7 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: cp = subprocess.run(diff_cmd, check=False) if cp.returncode == 1: - print(src_file + " changed - code style is incorrect.", file=STDOUT_UTF8) + print(src_file + " changed - code style is incorrect.") style_correct = False elif cp.returncode != 0: raise subprocess.CalledProcessError(cp.returncode, cp.args, @@ -136,8 +133,7 @@ def fix_style_single_pass(src_file_list: List[str]) -> bool: code_change_args = UNCRUSTIFY_ARGS + ["--no-backup"] for src_file in src_file_list: uncrustify_cmd = [UNCRUSTIFY_EXE] + code_change_args + [src_file] - result = subprocess.run(uncrustify_cmd, check=False, \ - stdout=STDOUT_UTF8, stderr=STDERR_UTF8) + result = subprocess.run(uncrustify_cmd, check=False) if result.returncode != 0: print_err("Uncrustify with file returned: " + \ str(result.returncode) + " correcting file " + \ @@ -169,9 +165,9 @@ def main() -> int: uncrustify_version = get_uncrustify_version().strip() if UNCRUSTIFY_SUPPORTED_VERSION not in uncrustify_version: print("Warning: Using unsupported Uncrustify version '" + - uncrustify_version + "'", file=STDOUT_UTF8) + uncrustify_version + "'") print("Note: The only supported version is " + - UNCRUSTIFY_SUPPORTED_VERSION, file=STDOUT_UTF8) + UNCRUSTIFY_SUPPORTED_VERSION) parser = argparse.ArgumentParser() parser.add_argument('-f', '--fix', action='store_true', @@ -200,8 +196,7 @@ def main() -> int: else: # Check mode if check_style_is_correct(src_files): - print("Checked {} files, style ok.".format(len(src_files)), - file=STDOUT_UTF8) + print("Checked {} files, style ok.".format(len(src_files))) return 0 else: return 1 From f0c75796bee11f4ff4e5a215fd137736615109c8 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 24 Jan 2023 18:53:15 +0000 Subject: [PATCH 1524/1574] Fix a missing type hint warning Signed-off-by: David Horstmann --- tests/scripts/generate_psa_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/generate_psa_tests.py b/tests/scripts/generate_psa_tests.py index b27104843..b02ee05ac 100755 --- a/tests/scripts/generate_psa_tests.py +++ b/tests/scripts/generate_psa_tests.py @@ -355,7 +355,7 @@ class OpFail: dependencies[i] = '!' + dep tc.set_dependencies(dependencies) tc.set_function(category.name.lower() + '_fail') - arguments = [] + arguments = [] # type: List[str] if kt: key_material = kt.key_material(kt.sizes_to_test()[0]) arguments += [key_type, test_case.hex_string(key_material)] From 79f14e3990bf6d5e11af1bacf991704295d5f387 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Tue, 24 Jan 2023 18:59:07 +0000 Subject: [PATCH 1525/1574] Give proper Dict type hints in crypto_knowledge.py This prevents a return type error in a later function that uses the dictionaries here properly typed. Signed-off-by: David Horstmann --- scripts/mbedtls_dev/crypto_knowledge.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/mbedtls_dev/crypto_knowledge.py b/scripts/mbedtls_dev/crypto_knowledge.py index 1a033210b..4dac33fb9 100644 --- a/scripts/mbedtls_dev/crypto_knowledge.py +++ b/scripts/mbedtls_dev/crypto_knowledge.py @@ -20,7 +20,7 @@ This module is entirely based on the PSA API. import enum import re -from typing import FrozenSet, Iterable, List, Optional, Tuple +from typing import FrozenSet, Iterable, List, Optional, Tuple, Dict from .asymmetric_key_data import ASYMMETRIC_KEY_DATA @@ -148,7 +148,7 @@ class KeyType: 'PSA_ECC_FAMILY_BRAINPOOL_P_R1': (160, 192, 224, 256, 320, 384, 512), 'PSA_ECC_FAMILY_MONTGOMERY': (255, 448), 'PSA_ECC_FAMILY_TWISTED_EDWARDS': (255, 448), - } + } # type: Dict[str, Tuple[int, ...]] KEY_TYPE_SIZES = { 'PSA_KEY_TYPE_AES': (128, 192, 256), # exhaustive 'PSA_KEY_TYPE_ARIA': (128, 192, 256), # exhaustive @@ -162,7 +162,7 @@ class KeyType: 'PSA_KEY_TYPE_PEPPER': (128, 256), # sample 'PSA_KEY_TYPE_RAW_DATA': (8, 40, 128), # sample 'PSA_KEY_TYPE_RSA_KEY_PAIR': (1024, 1536), # small sample - } + } # type: Dict[str, Tuple[int, ...]] def sizes_to_test(self) -> Tuple[int, ...]: """Return a tuple of key sizes to test. From f0e25c72d947280c6e7aecc2dce92aa248a010df Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 25 Jan 2023 09:38:01 +0100 Subject: [PATCH 1526/1574] Add missing dependencies for negative tests, remove PEM dependency Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.data | 27 ++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 31c6e6702..784e137a3 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -351,19 +351,19 @@ depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_US mbedtls_x509_csr_info:"data_files/server1-ms.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nsigned using \: RSA with SHA-256\nRSA key size \: 2048 bits\n" X509 CSR Information v3 extensions #1 (all) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" X509 CSR Information v3 extensions #2 (nsCertType only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" X509 CSR Information v3 extensions #3 (subjectAltName only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CSR Information v3 extensions #4 (keyUsage only) -depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" X509 Verify Information: empty @@ -2683,60 +2683,79 @@ mbedtls_x509_csr_parse:"3008300602047fffffff":"":MBEDTLS_ERR_X509_UNKNOWN_VERSIO # Used test_csr_v3_all.csr as a base for malforming CSR extenstions/attributes # Please see makefile for data_files to check malformation details (test_csr_v3_all_malformed_xxx.csr files) X509 CSR ASN.1 (attributes: invalid sequence tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062406006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid attribute id) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306007092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: not extension request) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090F31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n":0 X509 CSR ASN.1 (attributes: invalid extenstion request set tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E32533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid extenstion request sequence tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533151300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid len (len > data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306106092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: invalid len (len < data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062305906092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (attributes: extension request invalid len (len > data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533052300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: extension request invalid len (len < data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533050300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid sequence tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051200B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension id tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0703551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F050403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data len (len > data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040503020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid extension data len (len < data)) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040303020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (extensions: invalid extension key usage bitstream tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040404020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension subject alt name sequence tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104284026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension ns cert bitstream tag) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040404020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: duplicated extension) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D0F04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_INVALID_DATA X509 CSR ASN.1 (extensions: invalid extension type data) +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551DFF04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_OID_NOT_FOUND X509 File parse (no issues) From 92cce3fe6dce2f659d6a5985197e1eb44a2dbd85 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 25 Jan 2023 10:33:26 +0100 Subject: [PATCH 1527/1574] Use extension .csr.der to indicate format Signed-off-by: Przemek Stekiel --- tests/data_files/Makefile | 46 +++++++++--------- ...csr_v3_all.csr => test_csr_v3_all.csr.der} | Bin ...rmed_attributes_extension_request.csr.der} | Bin ...s_extension_request_sequence_len1.csr.der} | Bin ...s_extension_request_sequence_len2.csr.der} | Bin ...es_extension_request_sequence_tag.csr.der} | Bin ...ributes_extension_request_set_tag.csr.der} | Bin ...3_all_malformed_attributes_id_tag.csr.der} | Bin ..._v3_all_malformed_attributes_len1.csr.der} | Bin ..._v3_all_malformed_attributes_len2.csr.der} | Bin ...malformed_attributes_sequence_tag.csr.der} | Bin ...ll_malformed_duplicated_extension.csr.der} | Bin ...all_malformed_extension_data_len1.csr.der} | Bin ...all_malformed_extension_data_len2.csr.der} | Bin ..._all_malformed_extension_data_tag.csr.der} | Bin ...v3_all_malformed_extension_id_tag.csr.der} | Bin ...extension_key_usage_bitstream_tag.csr.der} | Bin ...d_extension_ns_cert_bitstream_tag.csr.der} | Bin ...ion_subject_alt_name_sequence_tag.csr.der} | Bin ..._all_malformed_extension_type_oid.csr.der} | Bin ...malformed_extensions_sequence_tag.csr.der} | Bin ...Usage.csr => test_csr_v3_keyUsage.csr.der} | Bin ...ype.csr => test_csr_v3_nsCertType.csr.der} | Bin ...csr => test_csr_v3_subjectAltName.csr.der} | Bin tests/suites/test_suite_x509parse.data | 10 ++-- 25 files changed, 28 insertions(+), 28 deletions(-) rename tests/data_files/{test_csr_v3_all.csr => test_csr_v3_all.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_extension_request.csr => test_csr_v3_all_malformed_attributes_extension_request.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr => test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr => test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr => test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr => test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_id_tag.csr => test_csr_v3_all_malformed_attributes_id_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_len1.csr => test_csr_v3_all_malformed_attributes_len1.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_len2.csr => test_csr_v3_all_malformed_attributes_len2.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_attributes_sequence_tag.csr => test_csr_v3_all_malformed_attributes_sequence_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_duplicated_extension.csr => test_csr_v3_all_malformed_duplicated_extension.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_data_len1.csr => test_csr_v3_all_malformed_extension_data_len1.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_data_len2.csr => test_csr_v3_all_malformed_extension_data_len2.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_data_tag.csr => test_csr_v3_all_malformed_extension_data_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_id_tag.csr => test_csr_v3_all_malformed_extension_id_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr => test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr => test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr => test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extension_type_oid.csr => test_csr_v3_all_malformed_extension_type_oid.csr.der} (100%) rename tests/data_files/{test_csr_v3_all_malformed_extensions_sequence_tag.csr => test_csr_v3_all_malformed_extensions_sequence_tag.csr.der} (100%) rename tests/data_files/{test_csr_v3_keyUsage.csr => test_csr_v3_keyUsage.csr.der} (100%) rename tests/data_files/{test_csr_v3_nsCertType.csr => test_csr_v3_nsCertType.csr.der} (100%) rename tests/data_files/{test_csr_v3_subjectAltName.csr => test_csr_v3_subjectAltName.csr.der} (100%) diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index fbf447c5b..f7728ddd7 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -93,51 +93,51 @@ cert_example_multi.csr: rsa_pkcs1_1024_clear.pem cert_example_multi.crt: cert_example_multi.csr $(OPENSSL) x509 -req -CA $(test_ca_crt) -CAkey $(test_ca_key_file_rsa) -extfile $(test_ca_config_file) -extensions dns_alt_names -passin "pass:$(test_ca_pwd_rsa)" -set_serial 17 -days 3653 -sha256 -in $< > $@ -test_csr_v3_keyUsage.csr: rsa_pkcs1_1024_clear.pem +test_csr_v3_keyUsage.csr.der: rsa_pkcs1_1024_clear.pem $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_keyUsage -test_csr_v3_subjectAltName.csr: rsa_pkcs1_1024_clear.pem +test_csr_v3_subjectAltName.csr.der: rsa_pkcs1_1024_clear.pem $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_subjectAltName -test_csr_v3_nsCertType.csr: rsa_pkcs1_1024_clear.pem +test_csr_v3_nsCertType.csr.der: rsa_pkcs1_1024_clear.pem $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_nsCertType -test_csr_v3_all.csr: rsa_pkcs1_1024_clear.pem +test_csr_v3_all.csr.der: rsa_pkcs1_1024_clear.pem $(OPENSSL) req -new -subj '/CN=etcd' -config $(test_ca_config_file) -key rsa_pkcs1_1024_clear.pem -outform DER -out $@ -reqexts csr_ext_v3_all -test_csr_v3_all_malformed_extensions_sequence_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extensions_sequence_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/300B0603551D0F040403/200B0603551D0F040403/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_id_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_id_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/0603551D0F0404030201/0703551D0F0404030201/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_data_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_data_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/050403020102302F0603/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_data_len1.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_data_len1.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/040503020102302F0603/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_data_len2.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_data_len2.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/040403020102302F0603/040303020102302F0603/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/03020102302F0603551D/04020102302F0603551D/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/3026A02406082B060105/4026A02406082B060105/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/04020780300D06092A86/03020780300D06092A86/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_duplicated_extension.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_duplicated_extension.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/551D11/551D0F/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_extension_type_oid.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_extension_type_oid.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/551D11/551DFF/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_sequence_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_sequence_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/406006092A864886F70D/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_id_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_id_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/06092A864886F70D0109/07092A864886F70D0109/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_extension_request.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_extension_request.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/2A864886F70D01090E/2A864886F70D01090F/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/31533051300B0603551D/32533051300B0603551D/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3151300B0603551D0F04/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_len1.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_len1.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/306106092A864886F70D/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_len2.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_len2.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/306006092A864886F70D/305906092A864886F70D/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3052300B0603551D0F04/" | xxd -r -p ) > $@ -test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr: test_csr_v3_all.csr +test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/3051300B0603551D0F04/3050300B0603551D0F04/" | xxd -r -p ) > $@ $(test_ca_key_file_rsa_alt):test-ca.opensslconf diff --git a/tests/data_files/test_csr_v3_all.csr b/tests/data_files/test_csr_v3_all.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all.csr rename to tests/data_files/test_csr_v3_all.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_extension_request.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_id_tag.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_id_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_id_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_id_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_len1.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_len2.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_len2.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_len2.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_len2.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr b/tests/data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_duplicated_extension.csr b/tests/data_files/test_csr_v3_all_malformed_duplicated_extension.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_duplicated_extension.csr rename to tests/data_files/test_csr_v3_all_malformed_duplicated_extension.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_data_len1.csr b/tests/data_files/test_csr_v3_all_malformed_extension_data_len1.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_data_len1.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_data_len1.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr b/tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_data_len2.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_data_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_id_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_type_oid.csr b/tests/data_files/test_csr_v3_all_malformed_extension_type_oid.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extension_type_oid.csr rename to tests/data_files/test_csr_v3_all_malformed_extension_type_oid.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr b/tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr rename to tests/data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr.der diff --git a/tests/data_files/test_csr_v3_keyUsage.csr b/tests/data_files/test_csr_v3_keyUsage.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_keyUsage.csr rename to tests/data_files/test_csr_v3_keyUsage.csr.der diff --git a/tests/data_files/test_csr_v3_nsCertType.csr b/tests/data_files/test_csr_v3_nsCertType.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_nsCertType.csr rename to tests/data_files/test_csr_v3_nsCertType.csr.der diff --git a/tests/data_files/test_csr_v3_subjectAltName.csr b/tests/data_files/test_csr_v3_subjectAltName.csr.der similarity index 100% rename from tests/data_files/test_csr_v3_subjectAltName.csr rename to tests/data_files/test_csr_v3_subjectAltName.csr.der diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 784e137a3..e809498d8 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -352,19 +352,19 @@ mbedtls_x509_csr_info:"data_files/server1-ms.req.sha256":"CSR version \: 1\nsu X509 CSR Information v3 extensions #1 (all) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" +mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" X509 CSR Information v3 extensions #2 (nsCertType only) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" +mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" X509 CSR Information v3 extensions #3 (subjectAltName only) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" +mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CSR Information v3 extensions #4 (keyUsage only) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" +mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" X509 Verify Information: empty x509_verify_info:0:"":"" @@ -2680,7 +2680,7 @@ mbedtls_x509_csr_parse:"308201193081bf0201003034310b3009060355040613024e4c311130 X509 CSR ASN.1 (invalid version overflow) mbedtls_x509_csr_parse:"3008300602047fffffff":"":MBEDTLS_ERR_X509_UNKNOWN_VERSION -# Used test_csr_v3_all.csr as a base for malforming CSR extenstions/attributes +# Used test_csr_v3_all.csr.der as a base for malforming CSR extenstions/attributes # Please see makefile for data_files to check malformation details (test_csr_v3_all_malformed_xxx.csr files) X509 CSR ASN.1 (attributes: invalid sequence tag) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO From 94e21e153fc8e0b185df675b6f34b795d86dd06b Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 25 Jan 2023 11:08:32 +0100 Subject: [PATCH 1528/1574] Skip unsupported extensions Signed-off-by: Przemek Stekiel --- library/x509_csr.c | 80 ++++++++++++-------------- tests/suites/test_suite_x509parse.data | 2 +- 2 files changed, 38 insertions(+), 44 deletions(-) diff --git a/library/x509_csr.c b/library/x509_csr.c index 3b3aa1cc5..baa061841 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -112,52 +112,47 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, } /* - * Detect supported extensions + * Detect supported extensions and skip unsupported extensions */ ret = mbedtls_oid_get_x509_ext_type(&extn_oid, &ext_type); - if (ret != 0) { - *p = end_ext_data; - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - ret); + if (ret == 0) { + /* Forbid repeated extensions */ + if ((csr->ext_types & ext_type) != 0) { + return (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_DATA)); + } + + csr->ext_types |= ext_type; + + switch (ext_type) { + case MBEDTLS_X509_EXT_KEY_USAGE: + /* Parse key usage */ + if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, + &csr->key_usage)) != 0) { + return ret; + } + break; + + case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: + /* Parse subject alt name */ + if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, + &csr->subject_alt_names)) != 0) { + return ret; + } + break; + + case MBEDTLS_X509_EXT_NS_CERT_TYPE: + /* Parse netscape certificate type */ + if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, + &csr->ns_cert_type)) != 0) { + return ret; + } + break; + default: + break; + } } - - /* Forbid repeated extensions */ - if ((csr->ext_types & ext_type) != 0) { - return (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_DATA)); - } - - csr->ext_types |= ext_type; - - switch (ext_type) { - case MBEDTLS_X509_EXT_KEY_USAGE: - /* Parse key usage */ - if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, - &csr->key_usage)) != 0) { - return ret; - } - break; - - case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: - /* Parse subject alt name */ - if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, - &csr->subject_alt_names)) != 0) { - return ret; - } - break; - - case MBEDTLS_X509_EXT_NS_CERT_TYPE: - /* Parse netscape certificate type */ - if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, - &csr->ns_cert_type)) != 0) { - return ret; - } - break; - default: - break; - } - *p = end_ext_data; } @@ -201,7 +196,6 @@ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, /* Check that this is an extension-request attribute */ if (MBEDTLS_OID_CMP(MBEDTLS_OID_PKCS9_CSR_EXT_REQ, &attr_oid) == 0) { - if ((ret = mbedtls_asn1_get_tag(p, end, &len, MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET)) != 0) { return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index e809498d8..39aab7ce2 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -2756,7 +2756,7 @@ mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C0465746364 X509 CSR ASN.1 (extensions: invalid extension type data) depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551DFF04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_OID_NOT_FOUND +mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551DFF04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Client\nkey usage \: CRL Sign\n":0 X509 File parse (no issues) depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C From 4682948c1e3a9ea8a4222c8015cc616c3214a725 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 18 Jan 2023 13:59:30 +0100 Subject: [PATCH 1529/1574] test: driver-only: fix disparities in ECP Signed-off-by: Valerio Setti --- tests/scripts/analyze_outcomes.py | 1 - tests/suites/test_suite_ecp.function | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index eeded5f62..11607e1ed 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -166,7 +166,6 @@ TASKS = { # they will be removed by upcoming work 'psa_crypto_se_driver_hal', # #6856 'random', # #6856 - 'ecp', # #6856 'pk', # #6857 'x509parse', # #6858 'x509write', # #6858 diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function index 394253de5..c8a0a8284 100644 --- a/tests/suites/test_suite_ecp.function +++ b/tests/suites/test_suite_ecp.function @@ -811,7 +811,7 @@ exit: } /* END_CASE */ -/* BEGIN_CASE depends_on:MBEDTLS_ECDH_C:MBEDTLS_ECDSA_C */ +/* BEGIN_CASE */ void mbedtls_ecp_group_metadata(int id, int bit_size, int crv_type, char *P, char *A, char *B, char *G_x, char *G_y, char *N, @@ -903,9 +903,13 @@ void mbedtls_ecp_group_metadata(int id, int bit_size, int crv_type, // Check curve type, and if it can be used for ECDH/ECDSA TEST_EQUAL(mbedtls_ecp_get_type(&grp), crv_type); +#if defined(MBEDTLS_ECDH_C) TEST_EQUAL(mbedtls_ecdh_can_do(id), 1); +#endif +#if defined(MBEDTLS_ECDSA_C) TEST_EQUAL(mbedtls_ecdsa_can_do(id), crv_type == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS); +#endif // Copy group and compare with original TEST_EQUAL(mbedtls_ecp_group_copy(&grp_cpy, &grp), 0); From 7e57920511e9e64b1f599487a41262324292cd66 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 18 Jan 2023 14:13:59 +0100 Subject: [PATCH 1530/1574] test: driver-only: fix disparities in psa_crypto_se_driver_hal Signed-off-by: Valerio Setti --- tests/scripts/analyze_outcomes.py | 1 - .../suites/test_suite_psa_crypto_se_driver_hal.data | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 11607e1ed..746521703 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -164,7 +164,6 @@ TASKS = { 'ecdsa', # the software implementation that's excluded # the following lines should not be needed, # they will be removed by upcoming work - 'psa_crypto_se_driver_hal', # #6856 'random', # #6856 'pk', # #6857 'x509parse', # #6858 diff --git a/tests/suites/test_suite_psa_crypto_se_driver_hal.data b/tests/suites/test_suite_psa_crypto_se_driver_hal.data index 2bcf4e4b7..22b0570bf 100644 --- a/tests/suites/test_suite_psa_crypto_se_driver_hal.data +++ b/tests/suites/test_suite_psa_crypto_se_driver_hal.data @@ -178,25 +178,25 @@ Key registration: key id max volatile register_key_smoke_test:TEST_SE_PERSISTENT_LIFETIME:7:PSA_KEY_ID_VOLATILE_MAX:1:PSA_ERROR_INVALID_ARGUMENT Import-sign-verify: sign in driver, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_DRIVER_AND_PARALLEL_CREATION:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:0:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" Import-sign-verify: sign in driver then export_public, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_DRIVER_THEN_EXPORT_PUBLIC:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:0:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" Import-sign-verify: sign in software, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:0:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" Generate-sign-verify: sign in driver, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_DRIVER_AND_PARALLEL_CREATION:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:256:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" Generate-sign-verify: sign in driver then export_public, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_DRIVER_THEN_EXPORT_PUBLIC:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:256:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" Generate-sign-verify: sign in software, ECDSA -depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_C:PSA_WANT_ECC_SECP_R1_256 +depends_on:PSA_WANT_ALG_ECDSA:PSA_WANT_ECC_SECP_R1_256 sign_verify:SIGN_IN_SOFTWARE_AND_PARALLEL_CREATION:PSA_KEY_TYPE_ECC_KEY_PAIR( PSA_ECC_FAMILY_SECP_R1 ):PSA_ALG_ECDSA_ANY:256:"49c9a8c18c4b885638c431cf1df1c994131609b580d4fd43a0cab17db2f13eee":"54686973206973206e6f74206120686173682e" From 3002c992470481cc6505e215b5e6e45d44bc28cc Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 18 Jan 2023 17:28:36 +0100 Subject: [PATCH 1531/1574] test: extend analyze_outcomes.py in order to skip only some test in a suite Signed-off-by: Valerio Setti --- tests/scripts/analyze_outcomes.py | 35 +++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 746521703..6101a1c28 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -61,24 +61,32 @@ def analyze_coverage(results, outcomes): # fixed this branch to have full coverage of test cases. results.warning('Test case not executed: {}', key) -def analyze_driver_vs_reference(outcomes, component_ref, component_driver, ignored_tests): +def analyze_driver_vs_reference(outcomes, component_ref, component_driver, + ignored_suites, ignored_test=None): """Check that all tests executed in the reference component are also executed in the corresponding driver component. - Skip test suites provided in ignored_tests list. + Skip: + - full test suites provided in ignored_suites list + - only some specific test inside a test suite, for which the corresponding + output string is provided """ available = check_test_cases.collect_available_test_cases() result = True for key in available: # Skip ignored test suites - test_suite = key.split(';')[0] # retrieve test suit name - test_suite = test_suite.split('.')[0] # retrieve main part of test suit name - if test_suite in ignored_tests: + full_test_suite = key.split(';')[0] # retrieve full test suit name + test_string = key.split(';')[1] # retrieve the text string of this test + test_suite = full_test_suite.split('.')[0] # retrieve main part of test suit name + if test_suite in ignored_suites: continue # Continue if test was not executed by any component hits = outcomes[key].hits() if key in outcomes else 0 if hits == 0: continue + if ((full_test_suite in ignored_test) and + (test_string in ignored_test[full_test_suite])): + continue # Search for tests that run in reference component and not in driver component driver_test_passed = False reference_test_passed = False @@ -129,13 +137,14 @@ def do_analyze_coverage(outcome_file, args): def do_analyze_driver_vs_reference(outcome_file, args): """Perform driver vs reference analyze.""" - ignored_tests = ['test_suite_' + x for x in args['ignored_suites']] + ignored_suites = ['test_suite_' + x for x in args['ignored_suites']] outcomes = read_outcome_file(outcome_file) print("\n*** Analyze driver {} vs reference {} ***\n".format( args['component_driver'], args['component_ref'])) return analyze_driver_vs_reference(outcomes, args['component_ref'], - args['component_driver'], ignored_tests) + args['component_driver'], ignored_suites, + args['ignored_tests']) # List of tasks with a function that can handle this task and additional arguments if required TASKS = { @@ -154,7 +163,11 @@ TASKS = { 'ignored_suites': [ 'shax', 'mdx', # the software implementations that are being excluded 'md', # the legacy abstraction layer that's being excluded - ]}}, + ], + 'ignored_tests': { + } + } + }, 'analyze_driver_vs_reference_ecdsa': { 'test_function': do_analyze_driver_vs_reference, 'args': { @@ -170,7 +183,11 @@ TASKS = { 'x509write', # #6858 'debug', # #6860 'ssl', # #6860 - ]}}, + ], + 'ignored_tests': { + } + } + }, } def main(): From 9cb0f7a4237d538dcccb6d7fcf2b3a7048b3d4d5 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Wed, 18 Jan 2023 17:29:29 +0100 Subject: [PATCH 1532/1574] test: driver-only: fix disparities in random Signed-off-by: Valerio Setti --- tests/scripts/analyze_outcomes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 6101a1c28..4938b3b87 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -177,7 +177,6 @@ TASKS = { 'ecdsa', # the software implementation that's excluded # the following lines should not be needed, # they will be removed by upcoming work - 'random', # #6856 'pk', # #6857 'x509parse', # #6858 'x509write', # #6858 @@ -185,6 +184,9 @@ TASKS = { 'ssl', # #6860 ], 'ignored_tests': { + 'test_suite_random': [ + 'PSA classic wrapper: ECDSA signature (SECP256R1)', + ], } } }, From 04bdbe3ee00db35e43c51444d6a573054cf39495 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 25 Jan 2023 11:39:04 +0000 Subject: [PATCH 1533/1574] Remove unnecessary '\' linebreak characters Signed-off-by: David Horstmann --- scripts/code_style.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/scripts/code_style.py b/scripts/code_style.py index d3ae624ec..dd8305faf 100755 --- a/scripts/code_style.py +++ b/scripts/code_style.py @@ -85,8 +85,9 @@ def get_uncrustify_version() -> str: """ Get the version string from Uncrustify """ - result = subprocess.run([UNCRUSTIFY_EXE, "--version"], \ - stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False) + result = subprocess.run([UNCRUSTIFY_EXE, "--version"], + stdout=subprocess.PIPE, stderr=subprocess.PIPE, + check=False) if result.returncode != 0: print_err("Could not get Uncrustify version:", str(result.stderr, "utf-8")) return "" @@ -101,11 +102,11 @@ def check_style_is_correct(src_file_list: List[str]) -> bool: style_correct = True for src_file in src_file_list: uncrustify_cmd = [UNCRUSTIFY_EXE] + UNCRUSTIFY_ARGS + [src_file] - result = subprocess.run(uncrustify_cmd, stdout=subprocess.PIPE, \ - stderr=subprocess.PIPE, check=False) + result = subprocess.run(uncrustify_cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, check=False) if result.returncode != 0: - print_err("Uncrustify returned " + str(result.returncode) + \ - " correcting file " + src_file) + print_err("Uncrustify returned " + str(result.returncode) + + " correcting file " + src_file) return False # Uncrustify makes changes to the code and places the result in a new @@ -135,9 +136,9 @@ def fix_style_single_pass(src_file_list: List[str]) -> bool: uncrustify_cmd = [UNCRUSTIFY_EXE] + code_change_args + [src_file] result = subprocess.run(uncrustify_cmd, check=False) if result.returncode != 0: - print_err("Uncrustify with file returned: " + \ - str(result.returncode) + " correcting file " + \ - src_file) + print_err("Uncrustify with file returned: " + + str(result.returncode) + " correcting file " + + src_file) return False return True From 9a66ab180c42251afd38c2eae8064bde74d747b3 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Wed, 25 Jan 2023 13:23:38 +0100 Subject: [PATCH 1534/1574] Fix missing declarration Signed-off-by: Gabor Mezei --- library/bignum_mod_raw.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/bignum_mod_raw.c b/library/bignum_mod_raw.c index 6ac9e72db..0d6810c6f 100644 --- a/library/bignum_mod_raw.c +++ b/library/bignum_mod_raw.c @@ -33,6 +33,8 @@ #include "bignum_mod.h" #include "constant_time_internal.h" +#include "bignum_mod_raw_invasive.h" + void mbedtls_mpi_mod_raw_cond_assign(mbedtls_mpi_uint *X, const mbedtls_mpi_uint *A, const mbedtls_mpi_mod_modulus *N, From d7992df5297b2c30c90b0310883f34a83bab2e56 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 25 Jan 2023 16:19:50 +0100 Subject: [PATCH 1535/1574] Use input files to parse CSR instead of bytes Additionally fix the generation of test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der which was incorectly malformed. Signed-off-by: Przemek Stekiel --- tests/data_files/Makefile | 2 +- ...ed_extension_ns_cert_bitstream_tag.csr.der | Bin 437 -> 437 bytes tests/suites/test_suite_x509parse.data | 76 +++++++++--------- tests/suites/test_suite_x509parse.function | 24 ++++++ 4 files changed, 63 insertions(+), 39 deletions(-) diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index f7728ddd7..eaa9cef40 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -116,7 +116,7 @@ test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der: test_csr_v3 test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/3026A02406082B060105/4026A02406082B060105/" | xxd -r -p ) > $@ test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der: test_csr_v3_all.csr.der - (hexdump -ve '1/1 "%.2X"' $< | sed "s/04020780300D06092A86/03020780300D06092A86/" | xxd -r -p ) > $@ + (hexdump -ve '1/1 "%.2X"' $< | sed "s/03020780300D06092A86/04020780300D06092A86/" | xxd -r -p ) > $@ test_csr_v3_all_malformed_duplicated_extension.csr.der: test_csr_v3_all.csr.der (hexdump -ve '1/1 "%.2X"' $< | sed "s/551D11/551D0F/" | xxd -r -p ) > $@ test_csr_v3_all_malformed_extension_type_oid.csr.der: test_csr_v3_all.csr.der diff --git a/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der b/tests/data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der index 7e717f35733166efe3775e7747901738865de123..6fdcfc8f39de9b2b1c8e88ea6f2692ac537cfe88 100644 GIT binary patch delta 13 UcmdnWyp?%_93vykWO>GE02|2zjsO4v delta 13 UcmdnWyp?%_93vz1WO>GE02{;ujQ{`u diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index 39aab7ce2..fc8d51dfe 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -2683,80 +2683,80 @@ mbedtls_x509_csr_parse:"3008300602047fffffff":"":MBEDTLS_ERR_X509_UNKNOWN_VERSIO # Used test_csr_v3_all.csr.der as a base for malforming CSR extenstions/attributes # Please see makefile for data_files to check malformation details (test_csr_v3_all_malformed_xxx.csr files) X509 CSR ASN.1 (attributes: invalid sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062406006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid attribute id) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306007092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_id_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: not extension request) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090F31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n":0 +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n":0 X509 CSR ASN.1 (attributes: invalid extenstion request set tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E32533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid extenstion request sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533151300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306106092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: invalid len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062305906092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (attributes: extension request invalid len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533052300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: extension request invalid len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533050300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051200B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension id tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0703551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_id_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F050403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040503020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid extension data len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040303020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (extensions: invalid extension key usage bitstream tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040404020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension subject alt name sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104284026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension ns cert bitstream tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D1104283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040404020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: duplicated extension) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551D0F04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_INVALID_DATA +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_duplicated_extension.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_INVALID_DATA X509 CSR ASN.1 (extensions: invalid extension type data) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO -mbedtls_x509_csr_parse:"308201B13082011A020100300F310D300B06035504030C046574636430819F300D06092A864886F70D010101050003818D0030818902818100C73892C5C3F47010086BF81335ECF3011C8A250F9582361EAA1E9612551AACF87B75330B7057339CD995F14D4C4437C8BEC4A03FE4643CD3F3C902433DC37C5B8E79AA0984AE8213370ABF8569BD2A35626CB1FEE4ACE042B2417C7BE49D27149B2C076B8E433D3F6C763A469A1C700D259DBC08C740FCD8023762FF7DEBFC2D0203010001A062306006092A864886F70D01090E31533051300B0603551D0F040403020102302F0603551DFF04283026A02406082B06010505070804A018301606072B060104011103040B3132338081008180333231301106096086480186F8420101040403020780300D06092A864886F70D01010B05000381810093D6BEE3D49597074924A061BDF0D0D08EA9A81F94825B20EE3BE8008808430639C11CB8636C13E023EEDF31B247142582A3C7FC92F766688BF4DA185CCACC6C9E12CBCDB2DA2C96DF542AF2D6A867A8C97E6BAC994454EEE40F38AD60FC8A36AF2BA6B86465B082B569AFDAA9E606D71B37E3E174517DE91B17FE9C87905EE3":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Client\nkey usage \: CRL Sign\n":0 +depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_type_oid.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Client\nkey usage \: CRL Sign\n":0 X509 File parse (no issues) depends_on:MBEDTLS_ECDSA_C:MBEDTLS_ECP_DP_SECP256R1_ENABLED:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 5d896bf73..f46bffdd4 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -1169,6 +1169,30 @@ exit: } /* END_CASE */ +/* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CSR_PARSE_C:!MBEDTLS_X509_REMOVE_INFO */ +void mbedtls_x509_csr_parse_file(char *csr_file, char *ref_out, int ref_ret) +{ + mbedtls_x509_csr csr; + char my_out[1000]; + int my_ret; + + mbedtls_x509_csr_init(&csr); + memset(my_out, 0, sizeof(my_out)); + + my_ret = mbedtls_x509_csr_parse_file(&csr, csr_file); + TEST_ASSERT(my_ret == ref_ret); + + if (ref_ret == 0) { + size_t my_out_len = mbedtls_x509_csr_info(my_out, sizeof(my_out), "", &csr); + TEST_ASSERT(my_out_len == strlen(ref_out)); + TEST_ASSERT(strcmp(my_out, ref_out) == 0); + } + +exit: + mbedtls_x509_csr_free(&csr); +} +/* END_CASE */ + /* BEGIN_CASE depends_on:MBEDTLS_FS_IO:MBEDTLS_X509_CRT_PARSE_C */ void mbedtls_x509_crt_parse_path(char *crt_path, int ret, int nb_crt) { From 32e20919aca51ea348ad50c863c56320e59aa5aa Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Wed, 25 Jan 2023 14:26:15 +0100 Subject: [PATCH 1536/1574] Remove redundant check and add comment to inform about processing of empty extensions Netscape Certificate Management System Administrator's Guide: Extension-Specific Policy Modules, Chapter 18: Extension-Specific Policy Modules, Netscape Certificate Type Extension Policy: > The extension has no default value. A bitstring with no flags set is still technically valid, as it will mean that the certificate has no designated purpose at the time of creation. Signed-off-by: Przemek Stekiel --- library/x509.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/library/x509.c b/library/x509.c index 9869b05e5..81e30e4ac 100644 --- a/library/x509.c +++ b/library/x509.c @@ -1328,6 +1328,8 @@ int mbedtls_x509_get_ns_cert_type(unsigned char **p, return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } + /* A bitstring with no flags set is still technically valid, as it will mean + that the certificate has no designated purpose at the time of creation. */ if (bs.len == 0) { *ns_cert_type = 0; return 0; @@ -1355,16 +1357,13 @@ int mbedtls_x509_get_key_usage(unsigned char **p, return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, ret); } + /* A bitstring with no flags set is still technically valid, as it will mean + that the certificate has no designated purpose at the time of creation. */ if (bs.len == 0) { *key_usage = 0; return 0; } - if (bs.len < 1) { - return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_LENGTH); - } - /* Get actual bitstring */ *key_usage = 0; for (i = 0; i < bs.len && i < sizeof(unsigned int); i++) { From 1e8c210b9d1f370c9724edbd7d86089fb4b58c68 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Thu, 26 Jan 2023 12:27:29 +0100 Subject: [PATCH 1537/1574] Add dependency for generated test cases Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 69fe7b8e6..e1ff0cd98 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -59,6 +59,7 @@ class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, test_name = "mbedtls_mpi_mod_raw_fix_quasi_reduction" input_style = "fixed" arity = 1 + dependencies = ["MBEDTLS_TEST_HOOKS"] # Extend the default values with n < x < 2n input_values = bignum_common.ModOperationCommon.input_values + [ From af4815c6a48a112661c4465a10c28e4f4a564b30 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 26 Jan 2023 17:43:09 +0100 Subject: [PATCH 1538/1574] x509: replace/fix name of new function for setting serial Signed-off-by: Valerio Setti --- .../improve_x509_cert_writing_serial_number_management.txt | 2 +- include/mbedtls/x509_crt.h | 4 ++-- library/x509write_crt.c | 2 +- programs/x509/cert_write.c | 4 ++-- tests/suites/test_suite_x509write.function | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt index 29f16972c..1764c2f64 100644 --- a/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt +++ b/ChangeLog.d/improve_x509_cert_writing_serial_number_management.txt @@ -6,7 +6,7 @@ Bugfix New deprecations * mbedtls_x509write_crt_set_serial() is now being deprecated in favor of - mbedtls_x509write_crt_set_serial_new(). The goal here is to remove any + mbedtls_x509write_crt_set_serial_raw(). The goal here is to remove any direct dependency of X509 on BIGNUM_C. Changes diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 56cc56be0..157e3a68c 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -993,7 +993,7 @@ void mbedtls_x509write_crt_set_version(mbedtls_x509write_cert *ctx, int version) * * \deprecated This function is deprecated and will be removed in a * future version of the library. Please use - * mbedtls_x509write_crt_set_serial_new() instead. + * mbedtls_x509write_crt_set_serial_raw() instead. * * \note Even though the MBEDTLS_BIGNUM_C guard looks redundant since * X509 depends on PK and PK depends on BIGNUM, this emphasizes @@ -1021,7 +1021,7 @@ int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial( * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer * is too big (longer than MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) */ -int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, +int mbedtls_x509write_crt_set_serial_raw(mbedtls_x509write_cert *ctx, unsigned char *serial, size_t serial_len); /** diff --git a/library/x509write_crt.c b/library/x509write_crt.c index bac849f09..4f233953c 100644 --- a/library/x509write_crt.c +++ b/library/x509write_crt.c @@ -124,7 +124,7 @@ int mbedtls_x509write_crt_set_serial(mbedtls_x509write_cert *ctx, } #endif // MBEDTLS_BIGNUM_C && !MBEDTLS_DEPRECATED_REMOVED -int mbedtls_x509write_crt_set_serial_new(mbedtls_x509write_cert *ctx, +int mbedtls_x509write_crt_set_serial_raw(mbedtls_x509write_cert *ctx, unsigned char *serial, size_t serial_len) { if (serial_len > MBEDTLS_X509_RFC5280_MAX_SERIAL_LEN) { diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 13debceae..287dd344a 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -736,10 +736,10 @@ usage: mbedtls_x509write_crt_set_version(&crt, opt.version); mbedtls_x509write_crt_set_md_alg(&crt, opt.md); - ret = mbedtls_x509write_crt_set_serial_new(&crt, serial, serial_len); + ret = mbedtls_x509write_crt_set_serial_raw(&crt, serial, serial_len); if (ret != 0) { mbedtls_strerror(ret, buf, sizeof(buf)); - mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial_new " + mbedtls_printf(" failed\n ! mbedtls_x509write_crt_set_serial_raw " "returned -0x%04x - %s\n\n", (unsigned int) -ret, buf); goto exit; } diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 5d68e1609..24094ec6a 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -397,7 +397,7 @@ void x509_crt_check(char *subject_key_file, char *subject_pwd, serial_arg->len) == 0); TEST_ASSERT(mbedtls_x509write_crt_set_serial(&crt, &serial_mpi) == 0); #else - TEST_ASSERT(mbedtls_x509write_crt_set_serial_new(&crt, serial_arg->x, + TEST_ASSERT(mbedtls_x509write_crt_set_serial_raw(&crt, serial_arg->x, serial_arg->len) == 0); #endif TEST_ASSERT(mbedtls_x509write_crt_set_validity(&crt, not_before, @@ -587,7 +587,7 @@ void x509_set_serial_check() mbedtls_mpi_free(&serial_mpi); #endif - TEST_EQUAL(mbedtls_x509write_crt_set_serial_new(&ctx, invalid_serial, + TEST_EQUAL(mbedtls_x509write_crt_set_serial_raw(&ctx, invalid_serial, sizeof(invalid_serial)), MBEDTLS_ERR_X509_BAD_INPUT_DATA); From 292cd6f4e560f3e3124bddada7ba232111783b46 Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 26 Jan 2023 20:50:08 +0100 Subject: [PATCH 1539/1574] Don't use the cipher suite in check_openssl_server_bug We can detect PSK based on $TYPE. This allows more flexibility in how cipher suites are spelled. Signed-off-by: Gilles Peskine --- tests/compat.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 2a93efc25..3f9070e5d 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -205,7 +205,7 @@ filter() check_openssl_server_bug() { if test "X$VERIFY" = "XYES" && is_dtls "$MODE" && \ - echo "$1" | grep "^TLS_PSK" >/dev/null; + test "$TYPE" = "PSK"; then SKIP_NEXT="YES" fi @@ -1029,7 +1029,7 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "OpenSSL" for i in $M_CIPHERS; do - check_openssl_server_bug $i + check_openssl_server_bug run_client mbedTLS $i done stop_server From 47aab850da736ed422b17df9f0b0953d4a5830de Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 26 Jan 2023 21:16:34 +0100 Subject: [PATCH 1540/1574] Batch cipher translations to go faster Python has a high startup cost, so go back to invoking it only once per server start, rather than once per client start. This is a measurable performance improvement (running time ~*0.5 with PSK, less dramatic with asymmetric crypto). Signed-off-by: Gilles Peskine --- tests/compat.sh | 49 ++++++++++++++++-------------- tests/scripts/translate_ciphers.py | 2 +- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 3f9070e5d..754b1eee6 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -239,9 +239,14 @@ reset_ciphersuites() G_CIPHERS="" } -check_translation() +# translate_ciphers {g|m|o} {STANDARD_CIPHER_SUITE_NAME...} +# Set $ciphers to the cipher suite name translations for the specified +# program (gnutls, mbedtls or openssl). $ciphers is a space-separated +# list of entries of the form "STANDARD_NAME=PROGRAM_NAME". +translate_ciphers() { - if [ $1 -ne 0 ]; then + ciphers=$(scripts/translate_ciphers.py "$@") + if [ $? -ne 0 ]; then echo "translate_ciphers.py failed with exit code $1" >&2 echo "$2" >&2 exit 1 @@ -789,7 +794,7 @@ wait_client_done() { echo "EXIT: $EXIT" >> $CLI_OUT } -# run_client +# run_client PROGRAM_NAME STANDARD_CIPHER_SUITE PROGRAM_CIPHER_SUITE run_client() { # announce what we're going to do TESTS=$(( $TESTS + 1 )) @@ -800,13 +805,6 @@ run_client() { LEN=$(( 72 - `echo "$TITLE" | wc -c` )) for i in `seq 1 $LEN`; do printf '.'; done; printf ' ' - # Calculate the argument $c to pass to translate_ciphers.py - client=$(echo $1 | head -c1) - c=$(echo $client | tr '[:upper:]' '[:lower:]') - # Translate ciphersuite names based on client's naming convention - t_cipher=$(./scripts/translate_ciphers.py $c $2) - check_translation $? "$t_cipher" - # should we skip? if [ "X$SKIP_NEXT" = "XYES" ]; then SKIP_NEXT="NO" @@ -818,7 +816,7 @@ run_client() { # run the command and interpret result case $1 in [Oo]pen*) - CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $t_cipher" + CLIENT_CMD="$OPENSSL s_client $O_CLIENT_ARGS -cipher $3" log "$CLIENT_CMD" echo "$CLIENT_CMD" > $CLI_OUT printf 'GET HTTP/1.0\r\n\r\n' | $CLIENT_CMD >> $CLI_OUT 2>&1 & @@ -843,7 +841,7 @@ run_client() { else G_HOST="localhost" fi - CLIENT_CMD="$GNUTLS_CLI $G_CLIENT_ARGS --priority $G_PRIO_MODE:$t_cipher $G_HOST" + CLIENT_CMD="$GNUTLS_CLI $G_CLIENT_ARGS --priority $G_PRIO_MODE:$3 $G_HOST" log "$CLIENT_CMD" echo "$CLIENT_CMD" > $CLI_OUT printf 'GET HTTP/1.0\r\n\r\n' | $CLIENT_CMD >> $CLI_OUT 2>&1 & @@ -865,7 +863,7 @@ run_client() { ;; mbed*) - CLIENT_CMD="$M_CLI $M_CLIENT_ARGS force_ciphersuite=$t_cipher" + CLIENT_CMD="$M_CLI $M_CLIENT_ARGS force_ciphersuite=$3" if [ "$MEMCHECK" -gt 0 ]; then CLIENT_CMD="valgrind --leak-check=full $CLIENT_CMD" fi @@ -1028,17 +1026,19 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "OpenSSL" - for i in $M_CIPHERS; do + translate_ciphers m $M_CIPHERS + for i in $ciphers; do check_openssl_server_bug - run_client mbedTLS $i + run_client mbedTLS ${i%%=*} ${i#*=} done stop_server fi if [ "X" != "X$O_CIPHERS" ]; then start_server "mbedTLS" - for i in $O_CIPHERS; do - run_client OpenSSL $i + translate_ciphers o $O_CIPHERS + for i in $ciphers; do + run_client OpenSSL ${i%%=*} ${i#*=} done stop_server fi @@ -1054,16 +1054,18 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "GnuTLS" - for i in $M_CIPHERS; do - run_client mbedTLS $i + translate_ciphers m $M_CIPHERS + for i in $ciphers; do + run_client mbedTLS ${i%%=*} ${i#*=} done stop_server fi if [ "X" != "X$G_CIPHERS" ]; then start_server "mbedTLS" - for i in $G_CIPHERS; do - run_client GnuTLS $i + translate_ciphers g $G_CIPHERS + for i in $ciphers; do + run_client GnuTLS ${i%%=*} ${i#*=} done stop_server fi @@ -1081,8 +1083,9 @@ for VERIFY in $VERIFIES; do if [ "X" != "X$M_CIPHERS" ]; then start_server "mbedTLS" - for i in $M_CIPHERS; do - run_client mbedTLS $i + translate_ciphers m $M_CIPHERS + for i in $ciphers; do + run_client mbedTLS ${i%%=*} ${i#*=} done stop_server fi diff --git a/tests/scripts/translate_ciphers.py b/tests/scripts/translate_ciphers.py index c622a6704..a8db4bb35 100755 --- a/tests/scripts/translate_ciphers.py +++ b/tests/scripts/translate_ciphers.py @@ -179,7 +179,7 @@ def format_ciphersuite_names(mode, names): "o": translate_ossl, "m": translate_mbedtls }[mode] - return " ".join(t(c) for c in names) + return " ".join(c + '=' + t(c) for c in names) def main(target, names): print(format_ciphersuite_names(target, names)) From b20028b3a3250ddcd17ff85e687ddded19df95db Mon Sep 17 00:00:00 2001 From: Gilles Peskine Date: Thu, 26 Jan 2023 21:34:01 +0100 Subject: [PATCH 1541/1574] Avoid using external programs in inner loops Don't use external programs for string manipulation that the shell can do. This makes the script a little faster (~10% when testing PSK). For this commit, I only looked at code run in the innermost loop. Signed-off-by: Gilles Peskine --- tests/compat.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/compat.sh b/tests/compat.sh index 754b1eee6..14d896bab 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -679,7 +679,11 @@ setup_arguments() # is_mbedtls is_mbedtls() { - echo "$1" | grep 'ssl_server2\|ssl_client2' > /dev/null + case $1 in + *ssl_client2*) true;; + *ssl_server2*) true;; + *) false;; + esac } # has_mem_err @@ -798,12 +802,9 @@ wait_client_done() { run_client() { # announce what we're going to do TESTS=$(( $TESTS + 1 )) - VERIF=$(echo $VERIFY | tr '[:upper:]' '[:lower:]') - TITLE="`echo $1 | head -c1`->`echo $SERVER_NAME | head -c1`" + TITLE="${1%"${1#?}"}->${SERVER_NAME%"${SERVER_NAME#?}"}" TITLE="$TITLE $MODE,$VERIF $2" - printf "%s " "$TITLE" - LEN=$(( 72 - `echo "$TITLE" | wc -c` )) - for i in `seq 1 $LEN`; do printf '.'; done; printf ' ' + printf "%s %.*s " "$TITLE" "$((72 - ${#TITLE}))" ........................................................................ # should we skip? if [ "X$SKIP_NEXT" = "XYES" ]; then @@ -996,6 +997,7 @@ SKIP_NEXT="NO" trap cleanup INT TERM HUP for VERIFY in $VERIFIES; do + VERIF=$(echo $VERIFY | tr '[:upper:]' '[:lower:]') for MODE in $MODES; do for TYPE in $TYPES; do for PEER in $PEERS; do From 36ad5e7ab53fd61cf587ffb467f73031135b77c3 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Thu, 26 Jan 2023 22:30:45 +0100 Subject: [PATCH 1542/1574] Fix code style Signed-off-by: Przemek Stekiel --- library/x509_csr.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/x509_csr.c b/library/x509_csr.c index baa061841..cd117cbd4 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -119,8 +119,8 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, if (ret == 0) { /* Forbid repeated extensions */ if ((csr->ext_types & ext_type) != 0) { - return (MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_INVALID_DATA)); + return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, + MBEDTLS_ERR_ASN1_INVALID_DATA); } csr->ext_types |= ext_type; @@ -129,7 +129,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, case MBEDTLS_X509_EXT_KEY_USAGE: /* Parse key usage */ if ((ret = mbedtls_x509_get_key_usage(p, end_ext_data, - &csr->key_usage)) != 0) { + &csr->key_usage)) != 0) { return ret; } break; @@ -137,7 +137,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, case MBEDTLS_X509_EXT_SUBJECT_ALT_NAME: /* Parse subject alt name */ if ((ret = mbedtls_x509_get_subject_alt_name(p, end_ext_data, - &csr->subject_alt_names)) != 0) { + &csr->subject_alt_names)) != 0) { return ret; } break; @@ -145,7 +145,7 @@ static int x509_csr_parse_extensions(mbedtls_x509_csr *csr, case MBEDTLS_X509_EXT_NS_CERT_TYPE: /* Parse netscape certificate type */ if ((ret = mbedtls_x509_get_ns_cert_type(p, end_ext_data, - &csr->ns_cert_type)) != 0) { + &csr->ns_cert_type)) != 0) { return ret; } break; @@ -222,7 +222,7 @@ static int x509_csr_parse_attributes(mbedtls_x509_csr *csr, if (*p != end) { return MBEDTLS_ERROR_ADD(MBEDTLS_ERR_X509_INVALID_EXTENSIONS, - MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH); } return 0; From 59f4a18b6f355003d867c0fdce2eaaf3a7529696 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 27 Jan 2023 07:13:43 +0100 Subject: [PATCH 1543/1574] Fix test dependency SHA1 -> SHA256 Signed-off-by: Przemek Stekiel --- tests/suites/test_suite_x509parse.data | 46 +++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/tests/suites/test_suite_x509parse.data b/tests/suites/test_suite_x509parse.data index fc8d51dfe..6821fe184 100644 --- a/tests/suites/test_suite_x509parse.data +++ b/tests/suites/test_suite_x509parse.data @@ -351,19 +351,19 @@ depends_on:MBEDTLS_PEM_PARSE_C:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_US mbedtls_x509_csr_info:"data_files/server1-ms.req.sha256":"CSR version \: 1\nsubject name \: C=NL, O=PolarSSL, CN=PolarSSL Server 1\nsigned using \: RSA with SHA-256\nRSA key size \: 2048 bits\n" X509 CSR Information v3 extensions #1 (all) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_all.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n otherName \:\n hardware module name \:\n hardware type \: 1.3.6.1.4.1.17.3\n hardware serial number \: 3132338081008180333231\ncert. type \: SSL Client\nkey usage \: CRL Sign\n" X509 CSR Information v3 extensions #2 (nsCertType only) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_nsCertType.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Server\n" X509 CSR Information v3 extensions #3 (subjectAltName only) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_subjectAltName.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nsubject alt name \:\n dNSName \: example.com\n dNSName \: example.net\n dNSName \: *.example.org\n" X509 CSR Information v3 extensions #4 (keyUsage only) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C:!MBEDTLS_X509_REMOVE_INFO mbedtls_x509_csr_info:"data_files/test_csr_v3_keyUsage.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\nkey usage \: Digital Signature, Key Encipherment\n" X509 Verify Information: empty @@ -2683,79 +2683,79 @@ mbedtls_x509_csr_parse:"3008300602047fffffff":"":MBEDTLS_ERR_X509_UNKNOWN_VERSIO # Used test_csr_v3_all.csr.der as a base for malforming CSR extenstions/attributes # Please see makefile for data_files to check malformation details (test_csr_v3_all_malformed_xxx.csr files) X509 CSR ASN.1 (attributes: invalid sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid attribute id) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_id_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: not extension request) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n":0 X509 CSR ASN.1 (attributes: invalid extenstion request set tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_set_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid extenstion request sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (attributes: invalid len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: invalid len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (attributes: extension request invalid len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (attributes: extension request invalid len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_attributes_extension_request_sequence_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extensions_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension id tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_id_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension data len (len > data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_len1.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_OUT_OF_DATA X509 CSR ASN.1 (extensions: invalid extension data len (len < data)) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_data_len2.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_LENGTH_MISMATCH X509 CSR ASN.1 (extensions: invalid extension key usage bitstream tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_key_usage_bitstream_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension subject alt name sequence tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_subject_alt_name_sequence_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: invalid extension ns cert bitstream tag) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_ns_cert_bitstream_tag.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_UNEXPECTED_TAG X509 CSR ASN.1 (extensions: duplicated extension) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_duplicated_extension.csr.der":"":MBEDTLS_ERR_X509_INVALID_EXTENSIONS+MBEDTLS_ERR_ASN1_INVALID_DATA X509 CSR ASN.1 (extensions: invalid extension type data) -depends_on:MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C +depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_RSA_C mbedtls_x509_csr_parse_file:"data_files/test_csr_v3_all_malformed_extension_type_oid.csr.der":"CSR version \: 1\nsubject name \: CN=etcd\nsigned using \: RSA with SHA-256\nRSA key size \: 1024 bits\n\ncert. type \: SSL Client\nkey usage \: CRL Sign\n":0 X509 File parse (no issues) From 9b5e1da8f84a25ae6a552008d6b49b10aacf762f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 26 Jan 2023 17:49:10 +0100 Subject: [PATCH 1544/1574] fixing a typo in comment Signed-off-by: Valerio Setti --- include/mbedtls/x509_crt.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/mbedtls/x509_crt.h b/include/mbedtls/x509_crt.h index 157e3a68c..7c3a6257c 100644 --- a/include/mbedtls/x509_crt.h +++ b/include/mbedtls/x509_crt.h @@ -1015,7 +1015,8 @@ int MBEDTLS_DEPRECATED mbedtls_x509write_crt_set_serial( * \param ctx CRT context to use * \param serial A raw array of bytes containing the serial number in big * endian format - * \param serial_len Length of the previous input buffer buffer + * \param serial_len Length of valid bytes (expressed in bytes) in \p serial + * input buffer * * \return 0 if successful, or * MBEDTLS_ERR_X509_BAD_INPUT_DATA if the provided input buffer From a87f839113e217cd0551fffad693d38fce91ea4f Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 26 Jan 2023 18:00:50 +0100 Subject: [PATCH 1545/1574] test: improve error handling in x509_set_serial_check() Signed-off-by: Valerio Setti --- tests/suites/test_suite_x509write.function | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function index 24094ec6a..c719b9660 100644 --- a/tests/suites/test_suite_x509write.function +++ b/tests/suites/test_suite_x509write.function @@ -584,13 +584,18 @@ void x509_set_serial_check() sizeof(invalid_serial)), 0); TEST_EQUAL(mbedtls_x509write_crt_set_serial(&ctx, &serial_mpi), MBEDTLS_ERR_X509_BAD_INPUT_DATA); - mbedtls_mpi_free(&serial_mpi); #endif TEST_EQUAL(mbedtls_x509write_crt_set_serial_raw(&ctx, invalid_serial, sizeof(invalid_serial)), MBEDTLS_ERR_X509_BAD_INPUT_DATA); +exit: +#if defined(MBEDTLS_TEST_DEPRECATED) && defined(MBEDTLS_BIGNUM_C) + mbedtls_mpi_free(&serial_mpi); +#else + ; +#endif } /* END_CASE */ From 18b9b035ada7a1fd63835bc7d7f1adfb37de44b8 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Fri, 27 Jan 2023 11:47:57 +0100 Subject: [PATCH 1546/1574] test: add test for a full length serial of 0xFF Signed-off-by: Valerio Setti --- tests/data_files/Makefile | 7 +++++-- tests/data_files/server1.long_serial_FF.crt | 20 ++++++++++++++++++++ tests/suites/test_suite_x509write.data | 4 ++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 tests/data_files/server1.long_serial_FF.crt diff --git a/tests/data_files/Makefile b/tests/data_files/Makefile index 340d95190..9c7a95d10 100644 --- a/tests/data_files/Makefile +++ b/tests/data_files/Makefile @@ -972,12 +972,15 @@ test_ca_server1_config_file = test-ca.server1.opensslconf server1.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) $(MBEDTLS_CERT_WRITE) request_file=server1.req.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) version=1 not_before=20190210144406 not_after=20290210144406 md=SHA1 version=3 output_file=$@ -server1.long_serial.crt: server1.long_serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) +server1.long_serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) echo "112233445566778899aabbccddeeff0011223344" > test-ca.server1.tmp.serial $(OPENSSL) ca -in server1.req.sha256 -key PolarSSLTest -config test-ca.server1.test_serial.opensslconf -notext -batch -out $@ -server1.80serial.crt: server1.long_serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) +server1.80serial.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) echo "8011223344" > test-ca.server1.tmp.serial $(OPENSSL) ca -in server1.req.sha256 -key PolarSSLTest -config test-ca.server1.test_serial.opensslconf -notext -batch -out $@ +server1.long_serial_FF.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) + echo "ffffffffffffffffffffffffffffffff" > test-ca.server1.tmp.serial + $(OPENSSL) ca -in server1.req.sha256 -key PolarSSLTest -config test-ca.server1.test_serial.opensslconf -notext -batch -out $@ server1.noauthid.crt: server1.key server1.req.sha256 $(test_ca_crt) $(test_ca_key_file_rsa) $(MBEDTLS_CERT_WRITE) request_file=server1.req.sha256 issuer_crt=$(test_ca_crt) issuer_key=$(test_ca_key_file_rsa) issuer_pwd=$(test_ca_pwd_rsa) not_before=20190210144406 not_after=20290210144406 md=SHA1 authority_identifier=0 version=3 output_file=$@ server1.crt.der: server1.crt diff --git a/tests/data_files/server1.long_serial_FF.crt b/tests/data_files/server1.long_serial_FF.crt new file mode 100644 index 000000000..8094fd7d6 --- /dev/null +++ b/tests/data_files/server1.long_serial_FF.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDTzCCAjegAwIBAgIRAP////////////////////8wDQYJKoZIhvcNAQEFBQAw +OzELMAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRkwFwYDVQQDDBBQb2xh +clNTTCBUZXN0IENBMB4XDTE5MDIxMDE0NDQwNloXDTI5MDIxMDE0NDQwNlowPDEL +MAkGA1UEBhMCTkwxETAPBgNVBAoMCFBvbGFyU1NMMRowGAYDVQQDDBFQb2xhclNT +TCBTZXJ2ZXIgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkCHz1A +atVVU4v9Nu6CZS4VYV6Jv7joRZDb7ogWUtPxQ1BHlhJZZIdr/SvgRvlzvt3PkuGR +W+1moG+JKXlFgNCDatVBQ3dfOXwJBEeCsFc5cO2j7BUZHqgzCEfBBUKp/UzDtN/d +Bh9NEFFAZ3MTD0D4bYElXwqxU8YwfhU5rPla7n+SnqYFW+cTl4W1I5LZ1CQG1Qkl +iXUH3aYajz8JGb6tZSxk65Wb3P5BXhem2mxbacwCuhQsFiScStzN0PdSZ3PxLaAj +/X70McotcMqJCwTbLqZPcG6ezr1YieJTWZ5uWpJl4og/DJQZo93l6J2VE+0p26tw +EtxaymsXq1KCVLECAwEAAaNNMEswCQYDVR0TBAIwADAdBgNVHQ4EFgQUH3TWPynB +dHRFOwUSLD2ovUNZAqYwHwYDVR0jBBgwFoAUtFrkpbPe0lL2udWmlQ/rPrzH/f8w +DQYJKoZIhvcNAQEFBQADggEBADYfhZU2lWxBamt7m3A4XQj6bZ4BZlabv5IbLI32 +nej6w/6/gsXPI85nfZqpIn6IYwAeDRdJo/eUqYkIdoy5DEP+50pgCGJK5HAoBWVJ +THKeVJn/vPH3Dz/CaCYQoHTmSi+ChfIhPh84UUdfVpv2qNInII4RxFlSAHUkRMbV +BX6imMSD5M508G6vWGUUc6G/sx/s7vtVeGGPyNOQPgwMTes60Mewpu9LKKaSwfqQ +DgEa8WzxPrPEyOUiIp7ClwlXe3JECHIjm445qmENgfY/8tlsyAdYKSkotfiuoUWb +daylD6QVUXn67loYDPZALghpDxmSm21VE7feTWOUbOpe14U= +-----END CERTIFICATE----- diff --git a/tests/suites/test_suite_x509write.data b/tests/suites/test_suite_x509write.data index b5e07f545..885ba006e 100644 --- a/tests/suites/test_suite_x509write.data +++ b/tests/suites/test_suite_x509write.data @@ -150,6 +150,10 @@ Certificate write check Server1 SHA1, Serial starting with 0x80 depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"8011223344":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.80serial.crt":0:0:"data_files/test-ca.crt" +Certificate write check Server1 SHA1, All 0xFF full length serial +depends_on:MBEDTLS_RSA_C:MBEDTLS_PKCS1_V15:MBEDTLS_DES_C:MBEDTLS_CIPHER_MODE_CBC:MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA +x509_crt_check:"data_files/server1.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=PolarSSL Test CA":"ffffffffffffffffffffffffffffffff":"20190210144406":"20290210144406":MBEDTLS_MD_SHA1:0:0:"NULL":0:0:1:-1:"data_files/server1.long_serial_FF.crt":0:0:"data_files/test-ca.crt" + Certificate write check Server5 ECDSA depends_on:MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA:MBEDTLS_ECDSA_C:MBEDTLS_ECDSA_DETERMINISTIC:MBEDTLS_ECP_DP_SECP384R1_ENABLED:MBEDTLS_ECP_DP_SECP256R1_ENABLED x509_crt_check:"data_files/server5.key":"":"C=NL,O=PolarSSL,CN=PolarSSL Server 1":"data_files/test-ca2.key":"PolarSSLTest":"C=NL,O=PolarSSL,CN=Polarssl Test EC CA":"01":"20190210144406":"20290210144406":MBEDTLS_MD_SHA256:0:0:"NULL":0:0:1:-1:"data_files/server5.crt":0:0:"data_files/test-ca2.crt" From 26439bf692d00414e41443c0980df3ee89ebdae5 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 27 Jan 2023 14:33:50 +0100 Subject: [PATCH 1547/1574] Revert "Add dependency for generated test cases" The 'MBEDTLS_TEST_HOOKS' belongs to a test function and not to a test case. This reverts commit 1e8c210b9d1f370c9724edbd7d86089fb4b58c68. Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index e1ff0cd98..69fe7b8e6 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -59,7 +59,6 @@ class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, test_name = "mbedtls_mpi_mod_raw_fix_quasi_reduction" input_style = "fixed" arity = 1 - dependencies = ["MBEDTLS_TEST_HOOKS"] # Extend the default values with n < x < 2n input_values = bignum_common.ModOperationCommon.input_values + [ From b57c90885591d86cff49be5560476173b56a0dc2 Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Fri, 27 Jan 2023 14:37:42 +0100 Subject: [PATCH 1548/1574] Shorten the prefix of the test case belongs to the fix quasi-reduction function Signed-off-by: Gabor Mezei --- scripts/mbedtls_dev/bignum_mod_raw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/bignum_mod_raw.py b/scripts/mbedtls_dev/bignum_mod_raw.py index 69fe7b8e6..d197b5491 100644 --- a/scripts/mbedtls_dev/bignum_mod_raw.py +++ b/scripts/mbedtls_dev/bignum_mod_raw.py @@ -56,7 +56,7 @@ class BignumModRawFixQuasiReduction(bignum_common.ModOperationCommon, """Test cases for ecp quasi_reduction().""" symbol = "-" test_function = "mpi_mod_raw_fix_quasi_reduction" - test_name = "mbedtls_mpi_mod_raw_fix_quasi_reduction" + test_name = "fix_quasi_reduction" input_style = "fixed" arity = 1 From 30223708968291143f53a325bd8e8b2f7b481044 Mon Sep 17 00:00:00 2001 From: Przemek Stekiel Date: Fri, 27 Jan 2023 11:03:53 +0100 Subject: [PATCH 1549/1574] Add changelog entry for V3 extensions in CSR Signed-off-by: Przemek Stekiel --- ChangeLog.d/csr_v3_extensions.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 ChangeLog.d/csr_v3_extensions.txt diff --git a/ChangeLog.d/csr_v3_extensions.txt b/ChangeLog.d/csr_v3_extensions.txt new file mode 100644 index 000000000..92740174f --- /dev/null +++ b/ChangeLog.d/csr_v3_extensions.txt @@ -0,0 +1,3 @@ +Features + * Add parsing of V3 extensions (key usage, Netscape cert-type, + Subject Alternative Names) in x509 Certificate Sign Requests. From ac49ee5d4cf75a865bf852ca05f01d520976eaa2 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 18 Jan 2023 11:52:56 +0000 Subject: [PATCH 1550/1574] c_build_helper.py: Move compile to helper Move compilation to a separate helper function in c_build_helper.py to allow more generic use. Signed-off-by: David Horstmann --- scripts/mbedtls_dev/c_build_helper.py | 39 +++++++++++++++------------ 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/scripts/mbedtls_dev/c_build_helper.py b/scripts/mbedtls_dev/c_build_helper.py index 459afba42..7e0cac730 100644 --- a/scripts/mbedtls_dev/c_build_helper.py +++ b/scripts/mbedtls_dev/c_build_helper.py @@ -89,6 +89,27 @@ int main(void) } ''') +def compile_c_file(c_filename, exe_filename, include_dirs): + cc = os.getenv('CC', 'cc') + cmd = [cc] + + proc = subprocess.Popen(cmd, + stdout=subprocess.DEVNULL, + stderr=subprocess.PIPE, + universal_newlines=True) + cc_is_msvc = 'Microsoft (R) C/C++' in proc.communicate()[1] + + cmd += ['-I' + dir for dir in include_dirs] + if cc_is_msvc: + # MSVC has deprecated using -o to specify the output file, + # and produces an object file in the working directory by default. + obj_filename = exe_filename[:-4] + '.obj' + cmd += ['-Fe' + exe_filename, '-Fo' + obj_filename] + else: + cmd += ['-o' + exe_filename] + + subprocess.check_call(cmd + [c_filename]) + def get_c_expression_values( cast_to, printf_format, expressions, @@ -128,24 +149,8 @@ def get_c_expression_values( expressions) ) c_file.close() - cc = os.getenv('CC', 'cc') - cmd = [cc] - proc = subprocess.Popen(cmd, - stdout=subprocess.DEVNULL, - stderr=subprocess.PIPE, - universal_newlines=True) - cc_is_msvc = 'Microsoft (R) C/C++' in proc.communicate()[1] - - cmd += ['-I' + dir for dir in include_path] - if cc_is_msvc: - # MSVC has deprecated using -o to specify the output file, - # and produces an object file in the working directory by default. - obj_name = exe_name[:-4] + '.obj' - cmd += ['-Fe' + exe_name, '-Fo' + obj_name] - else: - cmd += ['-o' + exe_name] - subprocess.check_call(cmd + [c_name]) + compile_c_file(c_name, exe_name, include_path) if keep_c: sys.stderr.write('List of {} tests kept at {}\n' .format(caller, c_name)) From ef504d96c1fbc3db302bd320a6f73b631e9c0faa Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Thu, 26 Jan 2023 19:11:57 +0000 Subject: [PATCH 1551/1574] Make c_build_helper module respect HOSTCC If HOSTCC is set, use that to generate files, otherwise use CC. This should make cross-compilation with generated files slightly easier. Signed-off-by: David Horstmann --- scripts/mbedtls_dev/c_build_helper.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/mbedtls_dev/c_build_helper.py b/scripts/mbedtls_dev/c_build_helper.py index 7e0cac730..6d2805759 100644 --- a/scripts/mbedtls_dev/c_build_helper.py +++ b/scripts/mbedtls_dev/c_build_helper.py @@ -90,7 +90,10 @@ int main(void) ''') def compile_c_file(c_filename, exe_filename, include_dirs): - cc = os.getenv('CC', 'cc') + # Respect $HOSTCC if it is set + cc = os.getenv('HOSTCC', None) + if cc is None: + cc = os.getenv('CC', 'cc') cmd = [cc] proc = subprocess.Popen(cmd, From 6fcc77cf5e86b41f582b6ea38ce3a70a57c55fa2 Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Fri, 27 Jan 2023 19:53:49 +0000 Subject: [PATCH 1552/1574] Add ChangeLog for c_build_helper improvements Signed-off-by: David Horstmann --- ChangeLog.d/c-build-helper-hostcc.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 ChangeLog.d/c-build-helper-hostcc.txt diff --git a/ChangeLog.d/c-build-helper-hostcc.txt b/ChangeLog.d/c-build-helper-hostcc.txt new file mode 100644 index 000000000..ebf77b3eb --- /dev/null +++ b/ChangeLog.d/c-build-helper-hostcc.txt @@ -0,0 +1,4 @@ +Features + * Use HOSTCC (if it is set) when compiling C code during generation of the + generated files. This allows them to be generated when CC is set for + cross compilation. From 4610d4b7a6310f33d4efe1d7d829c54b641db2d6 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Mon, 30 Jan 2023 09:26:48 +0000 Subject: [PATCH 1553/1574] Inhibit compiler from optimising out const-time asm Signed-off-by: Dave Rodgman --- library/constant_time.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/constant_time.c b/library/constant_time.c index 7f4d509bc..b3bf8744d 100644 --- a/library/constant_time.c +++ b/library/constant_time.c @@ -72,9 +72,9 @@ static inline uint32_t mbedtls_get_unaligned_volatile_uint32(volatile const unsi */ uint32_t r; #if defined(__arm__) || defined(__thumb__) || defined(__thumb2__) - asm ("ldr %0, [%1]" : "=r" (r) : "r" (p) :); + asm volatile ("ldr %0, [%1]" : "=r" (r) : "r" (p) :); #elif defined(__aarch64__) - asm ("ldr %w0, [%1]" : "=r" (r) : "r" (p) :); + asm volatile ("ldr %w0, [%1]" : "=r" (r) : "r" (p) :); #endif return r; } From cf0b881803c3d9564b4ebaace212fd5f1435001a Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Mon, 30 Jan 2023 09:50:59 +0000 Subject: [PATCH 1554/1574] Add docstring for new compile function. Signed-off-by: David Horstmann --- scripts/mbedtls_dev/c_build_helper.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/mbedtls_dev/c_build_helper.py b/scripts/mbedtls_dev/c_build_helper.py index 6d2805759..9bd17d608 100644 --- a/scripts/mbedtls_dev/c_build_helper.py +++ b/scripts/mbedtls_dev/c_build_helper.py @@ -90,6 +90,13 @@ int main(void) ''') def compile_c_file(c_filename, exe_filename, include_dirs): + """Compile a C source file with the host compiler. + + * ``c_filename``: the name of the source file to compile. + * ``exe_filename``: the name for the executable to be created. + * ``include_dirs``: a list of paths to include directories to be passed + with the -I switch. + """ # Respect $HOSTCC if it is set cc = os.getenv('HOSTCC', None) if cc is None: From ea637081dd5e77f4ec77fca513a4a0e75e358ca1 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 30 Jan 2023 13:10:13 +0000 Subject: [PATCH 1555/1574] Allow specific Box Drawing UTF characters that are used in Markdown trees in check_files.py Signed-off-by: Aditya Deshpande --- tests/scripts/check_files.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index d20ec2e9e..33b15ac17 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -285,6 +285,7 @@ class UnicodeIssueTracker(LineIssueTracker): '\u2070\u2071\u2074-\u208E\u2090-\u209C', # Superscripts and Subscripts '\u2190-\u21FF', # Arrows '\u2200-\u22FF', # Mathematical Symbols + '\u2500 \u2514 \u251C' # Box Drawings characters used in markdown trees ]) # Allow any of the characters and ranges above, and anything classified # as a word constituent. From 15b6dd0fb4b6e8c96d4a7b7a6a30029e663dfc42 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 30 Jan 2023 13:46:58 +0000 Subject: [PATCH 1556/1574] Modify comments to make them more inclusive Signed-off-by: Aditya Deshpande --- tests/scripts/check_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index 33b15ac17..fa7b8c067 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -268,7 +268,7 @@ class UnicodeIssueTracker(LineIssueTracker): heading = "Invalid UTF-8 or forbidden character:" - # Only allow valid UTF-8, and only white-listed characters. + # Only allow valid UTF-8, and only other explicitly allowed characters. # We deliberately exclude all characters that aren't a simple non-blank, # non-zero-width glyph, apart from a very small set (tab, ordinary space, # line breaks, "basic" no-break space and soft hyphen). In particular, From db1607fa690a106bf23bdf7316245e442c1a3e7c Mon Sep 17 00:00:00 2001 From: Gabor Mezei Date: Mon, 30 Jan 2023 16:27:48 +0100 Subject: [PATCH 1557/1574] Remove unneeded include Signed-off-by: Gabor Mezei --- library/ecp.c | 1 - 1 file changed, 1 deletion(-) diff --git a/library/ecp.c b/library/ecp.c index 6f53c1bdc..d9d5425ed 100644 --- a/library/ecp.c +++ b/library/ecp.c @@ -79,7 +79,6 @@ #include "bn_mul.h" #include "ecp_invasive.h" -#include "bignum_core.h" #include From 644a5c0b2bceec2352f625193bbb3c8b6a188475 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 30 Jan 2023 15:58:50 +0000 Subject: [PATCH 1558/1574] Fix bugs in example programs: change argc == 0 to argc < 2 Signed-off-by: Aditya Deshpande --- programs/pkey/dh_genprime.c | 2 +- programs/pkey/gen_key.c | 2 +- programs/pkey/key_app.c | 2 +- programs/pkey/key_app_writer.c | 2 +- programs/ssl/ssl_client2.c | 2 +- programs/ssl/ssl_mail_client.c | 2 +- programs/ssl/ssl_server2.c | 2 +- programs/util/pem2der.c | 2 +- programs/x509/cert_app.c | 2 +- programs/x509/cert_req.c | 2 +- programs/x509/cert_write.c | 2 +- programs/x509/crl_app.c | 2 +- programs/x509/req_app.c | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/programs/pkey/dh_genprime.c b/programs/pkey/dh_genprime.c index 25371ba9e..1f4cd59ee 100644 --- a/programs/pkey/dh_genprime.c +++ b/programs/pkey/dh_genprime.c @@ -71,7 +71,7 @@ int main(int argc, char **argv) mbedtls_ctr_drbg_init(&ctr_drbg); mbedtls_entropy_init(&entropy); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/pkey/gen_key.c b/programs/pkey/gen_key.c index 85ee4358a..029558d81 100644 --- a/programs/pkey/gen_key.c +++ b/programs/pkey/gen_key.c @@ -200,7 +200,7 @@ int main(int argc, char *argv[]) mbedtls_ctr_drbg_init(&ctr_drbg); memset(buf, 0, sizeof(buf)); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); #if defined(MBEDTLS_ECP_C) diff --git a/programs/pkey/key_app.c b/programs/pkey/key_app.c index 8ed88dafb..c80dcd0a1 100644 --- a/programs/pkey/key_app.c +++ b/programs/pkey/key_app.c @@ -103,7 +103,7 @@ int main(int argc, char *argv[]) mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto cleanup; diff --git a/programs/pkey/key_app_writer.c b/programs/pkey/key_app_writer.c index 2dbb79efe..862c93f4c 100644 --- a/programs/pkey/key_app_writer.c +++ b/programs/pkey/key_app_writer.c @@ -220,7 +220,7 @@ int main(int argc, char *argv[]) mbedtls_mpi_init(&D); mbedtls_mpi_init(&E); mbedtls_mpi_init(&DP); mbedtls_mpi_init(&DQ); mbedtls_mpi_init(&QP); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c index b12406595..03034d117 100644 --- a/programs/ssl/ssl_client2.c +++ b/programs/ssl/ssl_client2.c @@ -867,7 +867,7 @@ int main(int argc, char *argv[]) mbedtls_test_enable_insecure_external_rng(); #endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */ - if (argc == 0) { + if (argc < 2) { usage: if (ret == 0) { ret = 1; diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c index 4e54be885..3b040aaab 100644 --- a/programs/ssl/ssl_mail_client.c +++ b/programs/ssl/ssl_mail_client.c @@ -370,7 +370,7 @@ int main(int argc, char *argv[]) mbedtls_pk_init(&pkey); mbedtls_ctr_drbg_init(&ctr_drbg); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index b3d9f5a5c..d4f9664bc 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1633,7 +1633,7 @@ int main(int argc, char *argv[]) signal(SIGINT, term_handler); #endif - if (argc == 0) { + if (argc < 2) { usage: if (ret == 0) { ret = 1; diff --git a/programs/util/pem2der.c b/programs/util/pem2der.c index 4a25f21b7..5dd367a0c 100644 --- a/programs/util/pem2der.c +++ b/programs/util/pem2der.c @@ -189,7 +189,7 @@ int main(int argc, char *argv[]) memset(buf, 0, sizeof(buf)); memset(der_buffer, 0, sizeof(der_buffer)); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/x509/cert_app.c b/programs/x509/cert_app.c index 61352387e..a9656c6c1 100644 --- a/programs/x509/cert_app.c +++ b/programs/x509/cert_app.c @@ -161,7 +161,7 @@ int main(int argc, char *argv[]) memset(&cacrl, 0, sizeof(mbedtls_x509_crl)); #endif - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/x509/cert_req.c b/programs/x509/cert_req.c index 1126e60ae..8ef59325e 100644 --- a/programs/x509/cert_req.c +++ b/programs/x509/cert_req.c @@ -159,7 +159,7 @@ int main(int argc, char *argv[]) mbedtls_ctr_drbg_init(&ctr_drbg); memset(buf, 0, sizeof(buf)); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/x509/cert_write.c b/programs/x509/cert_write.c index 3e134dd6a..8a652fe57 100644 --- a/programs/x509/cert_write.c +++ b/programs/x509/cert_write.c @@ -273,7 +273,7 @@ int main(int argc, char *argv[]) mbedtls_x509_crt_init(&issuer_crt); memset(buf, 0, sizeof(buf)); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/x509/crl_app.c b/programs/x509/crl_app.c index f06987c1f..d74a4887e 100644 --- a/programs/x509/crl_app.c +++ b/programs/x509/crl_app.c @@ -70,7 +70,7 @@ int main(int argc, char *argv[]) */ mbedtls_x509_crl_init(&crl); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; diff --git a/programs/x509/req_app.c b/programs/x509/req_app.c index 8cfe4a441..83e2546ed 100644 --- a/programs/x509/req_app.c +++ b/programs/x509/req_app.c @@ -70,7 +70,7 @@ int main(int argc, char *argv[]) */ mbedtls_x509_csr_init(&csr); - if (argc == 0) { + if (argc < 2) { usage: mbedtls_printf(USAGE); goto exit; From d05aa0fc604b3d35f5b4f6ff38d4e6d160bf616c Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Mon, 30 Jan 2023 17:22:07 +0000 Subject: [PATCH 1559/1574] Add changelog entry Signed-off-by: Aditya Deshpande --- ChangeLog.d/fix-example-programs-no-args.txt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 ChangeLog.d/fix-example-programs-no-args.txt diff --git a/ChangeLog.d/fix-example-programs-no-args.txt b/ChangeLog.d/fix-example-programs-no-args.txt new file mode 100644 index 000000000..bfdf66725 --- /dev/null +++ b/ChangeLog.d/fix-example-programs-no-args.txt @@ -0,0 +1,7 @@ +Bugfix + * Fix a bug present in multiple example programs where running the program + from the shell without any command line argument results argv[1] being + accessed. The above was fixed for the following: pem2der.c, cert_req.c, + cert_app.c, cert_write.c, req_app.c, crl_app.c, dh_genprime.c, key_app.c, + gen_key.c, key_app_writer.c, ssl_client2.c, ssl_server2.c, + ssl_mail_client.c. \ No newline at end of file From a2b674f9a7b938c0737303c7e7732bae78516883 Mon Sep 17 00:00:00 2001 From: "Aaron M. Ucko" Date: Tue, 17 Jan 2023 15:12:25 -0500 Subject: [PATCH 1560/1574] Simplify ChangeLog entry for mbedtls_mpi_sub_abs fix. Signed-off-by: Aaron M. Ucko --- ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt b/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt index 564f9ac1b..0a90721ea 100644 --- a/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt +++ b/ChangeLog.d/conditionalize-mbedtls_mpi_sub_abs-memcpy.txt @@ -1,5 +1,4 @@ Bugfix - * Fix mbedtls_mpi_sub_abs() to account for the possibility that the output - pointer could equal the first input pointer and if so to skip a memcpy() - call that would be redundant. Reported by Pascal Cuoq using TrustInSoft - Analyzer in #6701; observed independently by Aaron Ucko under Valgrind. + * Fix potential undefined behavior in mbedtls_mpi_sub_abs(). Reported by + Pascal Cuoq using TrustInSoft Analyzer in #6701; observed independently by + Aaron Ucko under Valgrind. From c92df3ba595166e26da60dfc93addd298f6158b9 Mon Sep 17 00:00:00 2001 From: Pengyu Lv Date: Fri, 21 Oct 2022 10:50:26 +0000 Subject: [PATCH 1561/1574] all.sh: test_m32_xx is not supported on arm64 host test_m32_xxx tests are x86 specific, but the support function only identifies a 64-bit system. So the tests will be run on arm64 host and cause a test failure. This change restricts those tests to amd64/x86_64 only. Signed-off-by: Pengyu Lv --- tests/scripts/all.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/all.sh b/tests/scripts/all.sh index 883d58b6f..449199496 100755 --- a/tests/scripts/all.sh +++ b/tests/scripts/all.sh @@ -3265,7 +3265,7 @@ component_test_m32_o0 () { } support_test_m32_o0 () { case $(uname -m) in - *64*) true;; + amd64|x86_64) true;; *) false;; esac } From a12cecbe478e090a7bbc846b6c8f27109359366c Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Wed, 1 Feb 2023 14:29:47 +0800 Subject: [PATCH 1562/1574] Modify some comments in ssl_tls13_keys.c Signed-off-by: Yanray Wang --- library/ssl_tls13_keys.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c index 90a8618b2..b92f12e6d 100644 --- a/library/ssl_tls13_keys.c +++ b/library/ssl_tls13_keys.c @@ -1304,12 +1304,12 @@ int mbedtls_ssl_tls13_key_schedule_stage_early(mbedtls_ssl_context *ssl) * * ssl_tls13_generate_handshake_keys() generates keys necessary for * protecting the handshake messages, as described in Section 7 of - * TLS 1.3. + * RFC 8446. * * \param ssl The SSL context to operate on. This must be in * key schedule stage \c Handshake, see * ssl_tls13_key_schedule_stage_handshake(). - * \param traffic_keys The address at which to store the handshake traffic key + * \param traffic_keys The address at which to store the handshake traffic * keys. This must be writable but may be uninitialized. * * \returns \c 0 on success. @@ -1532,13 +1532,13 @@ cleanup: * \brief Compute TLS 1.3 application traffic keys. * * ssl_tls13_generate_application_keys() generates application traffic - * keys, since any records following a 1-RTT Finished message MUST be + * keys, since any record following a 1-RTT Finished message MUST be * encrypted under the application traffic key. * * \param ssl The SSL context to operate on. This must be in * key schedule stage \c Application, see * ssl_tls13_key_schedule_stage_application(). - * \param traffic_keys The address at which to store the application traffic key + * \param traffic_keys The address at which to store the application traffic * keys. This must be writable but may be uninitialized. * * \returns \c 0 on success. From 8a1f784ece08626bd0a0b2218d2134d45145b1ed Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Wed, 1 Feb 2023 08:43:54 +0000 Subject: [PATCH 1563/1574] Fix typos in doxygen commands in new bignum modules Signed-off-by: Tom Cosgrove --- library/bignum_core.h | 2 +- library/bignum_mod.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/bignum_core.h b/library/bignum_core.h index 44d5c5aad..4fb8f658c 100644 --- a/library/bignum_core.h +++ b/library/bignum_core.h @@ -222,7 +222,7 @@ int mbedtls_mpi_core_read_le(mbedtls_mpi_uint *X, * most significant zero bytes in the input). * * \param[out] X The address of the MPI. - * May only be #NULL if \X_limbs is 0 and \p input_length + * May only be #NULL if \p X_limbs is 0 and \p input_length * is 0. * \param X_limbs The number of limbs of \p X. * \param[in] input The input buffer to import from. diff --git a/library/bignum_mod.h b/library/bignum_mod.h index d8c8b7dec..d4c1d5d67 100644 --- a/library/bignum_mod.h +++ b/library/bignum_mod.h @@ -444,7 +444,7 @@ int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, * limbs as the modulus \p N. (\p r is an input parameter, but * its value will be modified during execution and restored * before the function returns.) - * \param[in] N The address of the modulus associated with \r. + * \param[in] N The address of the modulus associated with \p r. * \param[out] buf The output buffer to export to. * \param buflen The length in bytes of \p buf. * \param ext_rep The endianness in which the number should be written into From ebb2269f6854f3c0011b2f9d182f49b036bf12cc Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Wed, 1 Feb 2023 13:30:26 +0000 Subject: [PATCH 1564/1574] Allow whole Box Drawings range Signed-off-by: Aditya Deshpande --- tests/scripts/check_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/check_files.py b/tests/scripts/check_files.py index fa7b8c067..352b55eaa 100755 --- a/tests/scripts/check_files.py +++ b/tests/scripts/check_files.py @@ -285,7 +285,7 @@ class UnicodeIssueTracker(LineIssueTracker): '\u2070\u2071\u2074-\u208E\u2090-\u209C', # Superscripts and Subscripts '\u2190-\u21FF', # Arrows '\u2200-\u22FF', # Mathematical Symbols - '\u2500 \u2514 \u251C' # Box Drawings characters used in markdown trees + '\u2500-\u257F' # Box Drawings characters used in markdown trees ]) # Allow any of the characters and ranges above, and anything classified # as a word constituent. From a43e332fe4db9ba526281c3f9f48cadd3fb8d3ca Mon Sep 17 00:00:00 2001 From: David Horstmann Date: Wed, 1 Feb 2023 13:39:57 +0000 Subject: [PATCH 1565/1574] Fix near-tautological repetition in ChangeLog Signed-off-by: David Horstmann --- ChangeLog.d/c-build-helper-hostcc.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.d/c-build-helper-hostcc.txt b/ChangeLog.d/c-build-helper-hostcc.txt index ebf77b3eb..86182c3be 100644 --- a/ChangeLog.d/c-build-helper-hostcc.txt +++ b/ChangeLog.d/c-build-helper-hostcc.txt @@ -1,4 +1,4 @@ Features * Use HOSTCC (if it is set) when compiling C code during generation of the - generated files. This allows them to be generated when CC is set for - cross compilation. + configuration-independent files. This allows them to be generated when + CC is set for cross compilation. From 3b18a29c13da779d7bb898feced00f7b150f69e5 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Tue, 31 Jan 2023 16:22:57 +0000 Subject: [PATCH 1566/1574] Amend changelog entry Signed-off-by: Aditya Deshpande --- ChangeLog.d/fix-example-programs-no-args.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/ChangeLog.d/fix-example-programs-no-args.txt b/ChangeLog.d/fix-example-programs-no-args.txt index bfdf66725..57fe37a8e 100644 --- a/ChangeLog.d/fix-example-programs-no-args.txt +++ b/ChangeLog.d/fix-example-programs-no-args.txt @@ -1,7 +1,4 @@ Bugfix - * Fix a bug present in multiple example programs where running the program - from the shell without any command line argument results argv[1] being - accessed. The above was fixed for the following: pem2der.c, cert_req.c, - cert_app.c, cert_write.c, req_app.c, crl_app.c, dh_genprime.c, key_app.c, - gen_key.c, key_app_writer.c, ssl_client2.c, ssl_server2.c, - ssl_mail_client.c. \ No newline at end of file + * Fix behavior of certain sample programs which could, when run with no + arguments, access uninitialized memory in some cases. Fixes #6700 (which + was found by TrustInSoft Analyzer during REDOCS'22) and #1120. From 00c1ccb08c9421fd2ddb3c9b99b557180e12a699 Mon Sep 17 00:00:00 2001 From: Valerio Setti Date: Thu, 2 Feb 2023 11:33:31 +0100 Subject: [PATCH 1567/1574] depends.py: fix typo and slightly reorganized code Signed-off-by: Valerio Setti --- tests/scripts/analyze_outcomes.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/scripts/analyze_outcomes.py b/tests/scripts/analyze_outcomes.py index 4938b3b87..2cdcbf1f3 100755 --- a/tests/scripts/analyze_outcomes.py +++ b/tests/scripts/analyze_outcomes.py @@ -74,16 +74,16 @@ def analyze_driver_vs_reference(outcomes, component_ref, component_driver, result = True for key in available: - # Skip ignored test suites - full_test_suite = key.split(';')[0] # retrieve full test suit name - test_string = key.split(';')[1] # retrieve the text string of this test - test_suite = full_test_suite.split('.')[0] # retrieve main part of test suit name - if test_suite in ignored_suites: - continue # Continue if test was not executed by any component hits = outcomes[key].hits() if key in outcomes else 0 if hits == 0: continue + # Skip ignored test suites + full_test_suite = key.split(';')[0] # retrieve full test suite name + test_string = key.split(';')[1] # retrieve the text string of this test + test_suite = full_test_suite.split('.')[0] # retrieve main part of test suite name + if test_suite in ignored_suites: + continue if ((full_test_suite in ignored_test) and (test_string in ignored_test[full_test_suite])): continue From c04515b83cce98517183812fd52404b2f0771f23 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 2 Feb 2023 10:47:58 +0000 Subject: [PATCH 1568/1574] Improve warnings for DES/3DES Signed-off-by: Dave Rodgman --- include/mbedtls/des.h | 60 +++++++++++++++++++++++++------- include/mbedtls/mbedtls_config.h | 2 +- 2 files changed, 49 insertions(+), 13 deletions(-) diff --git a/include/mbedtls/des.h b/include/mbedtls/des.h index 5a18634f8..f445102d9 100644 --- a/include/mbedtls/des.h +++ b/include/mbedtls/des.h @@ -3,7 +3,7 @@ * * \brief DES block cipher * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -53,7 +53,7 @@ extern "C" { /** * \brief DES context structure * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -64,6 +64,10 @@ mbedtls_des_context; /** * \brief Triple-DES context structure + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ typedef struct mbedtls_des3_context { uint32_t MBEDTLS_PRIVATE(sk)[96]; /*!< 3DES subkeys */ @@ -79,7 +83,7 @@ mbedtls_des3_context; * * \param ctx DES context to be initialized * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -90,7 +94,7 @@ void mbedtls_des_init(mbedtls_des_context *ctx); * * \param ctx DES context to be cleared * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -100,6 +104,10 @@ void mbedtls_des_free(mbedtls_des_context *ctx); * \brief Initialize Triple-DES context * * \param ctx DES3 context to be initialized + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ void mbedtls_des3_init(mbedtls_des3_context *ctx); @@ -107,6 +115,10 @@ void mbedtls_des3_init(mbedtls_des3_context *ctx); * \brief Clear Triple-DES context * * \param ctx DES3 context to be cleared + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ void mbedtls_des3_free(mbedtls_des3_context *ctx); @@ -118,7 +130,7 @@ void mbedtls_des3_free(mbedtls_des3_context *ctx); * * \param key 8-byte secret key * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -134,7 +146,7 @@ void mbedtls_des_key_set_parity(unsigned char key[MBEDTLS_DES_KEY_SIZE]); * * \return 0 is parity was ok, 1 if parity was not correct. * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -148,7 +160,7 @@ int mbedtls_des_key_check_key_parity(const unsigned char key[MBEDTLS_DES_KEY_SIZ * * \return 0 if no weak key was found, 1 if a weak key was identified. * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -163,7 +175,7 @@ int mbedtls_des_key_check_weak(const unsigned char key[MBEDTLS_DES_KEY_SIZE]); * * \return 0 * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -178,7 +190,7 @@ int mbedtls_des_setkey_enc(mbedtls_des_context *ctx, const unsigned char key[MBE * * \return 0 * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -192,6 +204,10 @@ int mbedtls_des_setkey_dec(mbedtls_des_context *ctx, const unsigned char key[MBE * \param key 16-byte secret key * * \return 0 + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx, @@ -204,6 +220,10 @@ int mbedtls_des3_set2key_enc(mbedtls_des3_context *ctx, * \param key 16-byte secret key * * \return 0 + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx, @@ -216,6 +236,10 @@ int mbedtls_des3_set2key_dec(mbedtls_des3_context *ctx, * \param key 24-byte secret key * * \return 0 + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx, @@ -228,6 +252,10 @@ int mbedtls_des3_set3key_enc(mbedtls_des3_context *ctx, * \param key 24-byte secret key * * \return 0 + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx, @@ -242,7 +270,7 @@ int mbedtls_des3_set3key_dec(mbedtls_des3_context *ctx, * * \return 0 if successful * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -270,7 +298,7 @@ int mbedtls_des_crypt_ecb(mbedtls_des_context *ctx, * \param input buffer holding the input data * \param output buffer holding the output data * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ @@ -291,6 +319,10 @@ int mbedtls_des_crypt_cbc(mbedtls_des_context *ctx, * \param output 64-bit output block * * \return 0 if successful + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx, @@ -317,6 +349,10 @@ int mbedtls_des3_crypt_ecb(mbedtls_des3_context *ctx, * \param output buffer holding the output data * * \return 0 if successful, or MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH + * + * \warning DES/3DES are considered weak ciphers and their use constitutes a + * security risk. We recommend considering stronger ciphers + * instead. */ MBEDTLS_CHECK_RETURN_TYPICAL int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx, @@ -335,7 +371,7 @@ int mbedtls_des3_crypt_cbc(mbedtls_des3_context *ctx, * \param SK Round keys * \param key Base key * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers * instead. */ diff --git a/include/mbedtls/mbedtls_config.h b/include/mbedtls/mbedtls_config.h index 2a2c039d7..9ae51c964 100644 --- a/include/mbedtls/mbedtls_config.h +++ b/include/mbedtls/mbedtls_config.h @@ -2428,7 +2428,7 @@ * * PEM_PARSE uses DES/3DES for decrypting encrypted keys. * - * \warning DES is considered a weak cipher and its use constitutes a + * \warning DES/3DES are considered weak ciphers and their use constitutes a * security risk. We recommend considering stronger ciphers instead. */ #define MBEDTLS_DES_C From 6dd757a8ba23407917df4282450fbbcd9d23a62d Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 2 Feb 2023 12:40:50 +0000 Subject: [PATCH 1569/1574] Fix use of sizeof without brackets Signed-off-by: Dave Rodgman --- library/ccm.c | 2 +- library/ecp_curves.c | 6 +-- library/entropy.c | 2 +- library/ripemd160.c | 2 +- library/x509_crt.c | 4 +- programs/pkey/ecdh_curve25519.c | 2 +- programs/pkey/ecdsa.c | 2 +- tests/suites/test_suite_ctr_drbg.function | 2 +- tests/suites/test_suite_mdx.function | 12 ++--- tests/suites/test_suite_pk.function | 60 +++++++++++----------- tests/suites/test_suite_x509parse.function | 8 +-- 11 files changed, 51 insertions(+), 51 deletions(-) diff --git a/library/ccm.c b/library/ccm.c index 0b02d77b1..36c999e7d 100644 --- a/library/ccm.c +++ b/library/ccm.c @@ -659,7 +659,7 @@ int mbedtls_ccm_self_test(int verbose) mbedtls_ccm_init(&ctx); if (mbedtls_ccm_setkey(&ctx, MBEDTLS_CIPHER_ID_AES, key_test_data, - 8 * sizeof key_test_data) != 0) { + 8 * sizeof(key_test_data)) != 0) { if (verbose != 0) { mbedtls_printf(" CCM: setup failed"); } diff --git a/library/ecp_curves.c b/library/ecp_curves.c index 727283f73..7987c3fa4 100644 --- a/library/ecp_curves.c +++ b/library/ecp_curves.c @@ -4507,7 +4507,7 @@ static const mbedtls_ecp_point brainpoolP512r1_T[32] = { defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) /* * Create an MPI from embedded constants - * (assumes len is an exact multiple of sizeof mbedtls_mpi_uint) + * (assumes len is an exact multiple of sizeof(mbedtls_mpi_uint)) */ static inline void ecp_mpi_load(mbedtls_mpi *X, const mbedtls_mpi_uint *p, size_t len) { @@ -5370,7 +5370,7 @@ static inline int ecp_mod_koblitz(mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p if (M.n > p_limbs + adjust) { M.n = p_limbs + adjust; } - memset(Mp, 0, sizeof Mp); + memset(Mp, 0, sizeof(Mp)); memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint)); if (shift != 0) { MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift)); @@ -5396,7 +5396,7 @@ static inline int ecp_mod_koblitz(mbedtls_mpi *N, mbedtls_mpi_uint *Rp, size_t p if (M.n > p_limbs + adjust) { M.n = p_limbs + adjust; } - memset(Mp, 0, sizeof Mp); + memset(Mp, 0, sizeof(Mp)); memcpy(Mp, N->p + p_limbs - adjust, M.n * sizeof(mbedtls_mpi_uint)); if (shift != 0) { MBEDTLS_MPI_CHK(mbedtls_mpi_shift_r(&M, shift)); diff --git a/library/entropy.c b/library/entropy.c index 7e25f287f..e55410c76 100644 --- a/library/entropy.c +++ b/library/entropy.c @@ -677,7 +677,7 @@ int mbedtls_entropy_self_test(int verbose) goto cleanup; } - if ((ret = mbedtls_entropy_update_manual(&ctx, buf, sizeof buf)) != 0) { + if ((ret = mbedtls_entropy_update_manual(&ctx, buf, sizeof(buf))) != 0) { goto cleanup; } diff --git a/library/ripemd160.c b/library/ripemd160.c index eed664f8c..ba97c1f39 100644 --- a/library/ripemd160.c +++ b/library/ripemd160.c @@ -456,7 +456,7 @@ int mbedtls_ripemd160_self_test(int verbose) int i, ret = 0; unsigned char output[20]; - memset(output, 0, sizeof output); + memset(output, 0, sizeof(output)); for (i = 0; i < TESTS; i++) { if (verbose != 0) { diff --git a/library/x509_crt.c b/library/x509_crt.c index 033009797..eabafe903 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -1652,10 +1652,10 @@ cleanup: memset(&sb, 0, sizeof(sb)); while ((entry = readdir(dir)) != NULL) { - snp_ret = mbedtls_snprintf(entry_name, sizeof entry_name, + snp_ret = mbedtls_snprintf(entry_name, sizeof(entry_name), "%s/%s", path, entry->d_name); - if (snp_ret < 0 || (size_t) snp_ret >= sizeof entry_name) { + if (snp_ret < 0 || (size_t) snp_ret >= sizeof(entry_name)) { ret = MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; goto cleanup; } else if (stat(entry_name, &sb) == -1) { diff --git a/programs/pkey/ecdh_curve25519.c b/programs/pkey/ecdh_curve25519.c index d880a1a0a..980441707 100644 --- a/programs/pkey/ecdh_curve25519.c +++ b/programs/pkey/ecdh_curve25519.c @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) if ((ret = mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy, (const unsigned char *) pers, - sizeof pers)) != 0) { + sizeof(pers))) != 0) { mbedtls_printf(" failed\n ! mbedtls_ctr_drbg_seed returned %d\n", ret); goto exit; diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c index be2ca90b5..953c14450 100644 --- a/programs/pkey/ecdsa.c +++ b/programs/pkey/ecdsa.c @@ -73,7 +73,7 @@ static void dump_pubkey(const char *title, mbedtls_ecdsa_context *key) size_t len; if (mbedtls_ecp_point_write_binary(&key->MBEDTLS_PRIVATE(grp), &key->MBEDTLS_PRIVATE(Q), - MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof buf) != 0) { + MBEDTLS_ECP_PF_UNCOMPRESSED, &len, buf, sizeof(buf)) != 0) { mbedtls_printf("internal error\n"); return; } diff --git a/tests/suites/test_suite_ctr_drbg.function b/tests/suites/test_suite_ctr_drbg.function index 85c00ebae..7d816080a 100644 --- a/tests/suites/test_suite_ctr_drbg.function +++ b/tests/suites/test_suite_ctr_drbg.function @@ -284,7 +284,7 @@ void ctr_drbg_entropy_usage(int entropy_nonce_len) } TEST_EQUAL(test_offset_idx, expected_idx); - /* Call update with too much data (sizeof entropy > MAX(_SEED)_INPUT). + /* Call update with too much data (sizeof(entropy) > MAX(_SEED)_INPUT). * Make sure it's detected as an error and doesn't cause memory * corruption. */ TEST_ASSERT(mbedtls_ctr_drbg_update( diff --git a/tests/suites/test_suite_mdx.function b/tests/suites/test_suite_mdx.function index 93f41014a..df94d16e1 100644 --- a/tests/suites/test_suite_mdx.function +++ b/tests/suites/test_suite_mdx.function @@ -10,8 +10,8 @@ void md5_text(char *text_src_string, data_t *hash) unsigned char src_str[100]; unsigned char output[16]; - memset(src_str, 0x00, sizeof src_str); - memset(output, 0x00, sizeof output); + memset(src_str, 0x00, sizeof(src_str)); + memset(output, 0x00, sizeof(output)); strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); @@ -19,7 +19,7 @@ void md5_text(char *text_src_string, data_t *hash) TEST_ASSERT(ret == 0); TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, - sizeof output, hash->len) == 0); + sizeof(output), hash->len) == 0); } /* END_CASE */ @@ -30,8 +30,8 @@ void ripemd160_text(char *text_src_string, data_t *hash) unsigned char src_str[100]; unsigned char output[20]; - memset(src_str, 0x00, sizeof src_str); - memset(output, 0x00, sizeof output); + memset(src_str, 0x00, sizeof(src_str)); + memset(output, 0x00, sizeof(output)); strncpy((char *) src_str, text_src_string, sizeof(src_str) - 1); @@ -39,7 +39,7 @@ void ripemd160_text(char *text_src_string, data_t *hash) TEST_ASSERT(ret == 0); TEST_ASSERT(mbedtls_test_hexcmp(output, hash->x, - sizeof output, hash->len) == 0); + sizeof(output), hash->len) == 0); } /* END_CASE */ diff --git a/tests/suites/test_suite_pk.function b/tests/suites/test_suite_pk.function index 13b5162f0..67d3235f4 100644 --- a/tests/suites/test_suite_pk.function +++ b/tests/suites/test_suite_pk.function @@ -726,7 +726,7 @@ void pk_sign_verify_restart(int pk_type, int grp_id, char *d_str, slen = sizeof(sig); ret = mbedtls_pk_sign_restartable(&prv, md_alg, hash->x, hash->len, - sig, sizeof sig, &slen, + sig, sizeof(sig), &slen, mbedtls_test_rnd_std_rand, NULL, &rs_ctx); TEST_ASSERT(ret == MBEDTLS_ERR_ECP_IN_PROGRESS); @@ -763,15 +763,15 @@ void pk_sign_verify(int type, int parameter, int sign_ret, int verify_ret) mbedtls_pk_init(&pk); USE_PSA_INIT(); - memset(hash, 0x2a, sizeof hash); - memset(sig, 0, sizeof sig); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); TEST_ASSERT(mbedtls_pk_setup(&pk, mbedtls_pk_info_from_type(type)) == 0); TEST_ASSERT(pk_genkey(&pk, parameter) == 0); TEST_ASSERT(mbedtls_pk_sign_restartable(&pk, MBEDTLS_MD_SHA256, hash, hash_len, - sig, sizeof sig, &sig_len, + sig, sizeof(sig), &sig_len, mbedtls_test_rnd_std_rand, NULL, rs_ctx) == sign_ret); if (sign_ret == 0) { @@ -796,7 +796,7 @@ void pk_sign_verify(int type, int parameter, int sign_ret, int verify_ret) } TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, hash, hash_len, - sig, sizeof sig, &sig_len, + sig, sizeof(sig), &sig_len, mbedtls_test_rnd_std_rand, NULL) == sign_ret); if (sign_ret == 0) { @@ -811,12 +811,12 @@ void pk_sign_verify(int type, int parameter, int sign_ret, int verify_ret) if (verify_ret == 0) { hash[0]++; TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len, rs_ctx) != 0); + hash, sizeof(hash), sig, sig_len, rs_ctx) != 0); hash[0]--; sig[0]++; TEST_ASSERT(mbedtls_pk_verify_restartable(&pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len, rs_ctx) != 0); + hash, sizeof(hash), sig, sig_len, rs_ctx) != 0); sig[0]--; } @@ -1068,8 +1068,8 @@ void pk_rsa_overflow() return; } - memset(hash, 0x2a, sizeof hash); - memset(sig, 0, sizeof sig); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); mbedtls_pk_init(&pk); @@ -1086,7 +1086,7 @@ void pk_rsa_overflow() sig, sig_len) == MBEDTLS_ERR_PK_BAD_INPUT_DATA); TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_NONE, hash, hash_len, - sig, sizeof sig, &sig_len, + sig, sizeof(sig), &sig_len, mbedtls_test_rnd_std_rand, NULL) == MBEDTLS_ERR_PK_BAD_INPUT_DATA); @@ -1116,11 +1116,11 @@ void pk_rsa_alt() mbedtls_rsa_init(&raw); mbedtls_pk_init(&rsa); mbedtls_pk_init(&alt); - memset(hash, 0x2a, sizeof hash); - memset(sig, 0, sizeof sig); - memset(msg, 0x2a, sizeof msg); - memset(ciph, 0, sizeof ciph); - memset(test, 0, sizeof test); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); + memset(msg, 0x2a, sizeof(msg)); + memset(ciph, 0, sizeof(ciph)); + memset(test, 0, sizeof(test)); /* Initialize PK RSA context with random key */ TEST_ASSERT(mbedtls_pk_setup(&rsa, @@ -1145,34 +1145,34 @@ void pk_rsa_alt() /* Test signature */ #if SIZE_MAX > UINT_MAX TEST_ASSERT(mbedtls_pk_sign(&alt, MBEDTLS_MD_NONE, hash, SIZE_MAX, - sig, sizeof sig, &sig_len, + sig, sizeof(sig), &sig_len, mbedtls_test_rnd_std_rand, NULL) == MBEDTLS_ERR_PK_BAD_INPUT_DATA); #endif /* SIZE_MAX > UINT_MAX */ - TEST_ASSERT(mbedtls_pk_sign(&alt, MBEDTLS_MD_NONE, hash, sizeof hash, - sig, sizeof sig, &sig_len, + TEST_ASSERT(mbedtls_pk_sign(&alt, MBEDTLS_MD_NONE, hash, sizeof(hash), + sig, sizeof(sig), &sig_len, mbedtls_test_rnd_std_rand, NULL) == 0); TEST_ASSERT(sig_len == RSA_KEY_LEN); TEST_ASSERT(mbedtls_pk_verify(&rsa, MBEDTLS_MD_NONE, - hash, sizeof hash, sig, sig_len) == 0); + hash, sizeof(hash), sig, sig_len) == 0); /* Test decrypt */ - TEST_ASSERT(mbedtls_pk_encrypt(&rsa, msg, sizeof msg, - ciph, &ciph_len, sizeof ciph, + TEST_ASSERT(mbedtls_pk_encrypt(&rsa, msg, sizeof(msg), + ciph, &ciph_len, sizeof(ciph), mbedtls_test_rnd_std_rand, NULL) == 0); TEST_ASSERT(mbedtls_pk_decrypt(&alt, ciph, ciph_len, - test, &test_len, sizeof test, + test, &test_len, sizeof(test), mbedtls_test_rnd_std_rand, NULL) == 0); - TEST_ASSERT(test_len == sizeof msg); + TEST_ASSERT(test_len == sizeof(msg)); TEST_ASSERT(memcmp(test, msg, test_len) == 0); /* Test forbidden operations */ - TEST_ASSERT(mbedtls_pk_encrypt(&alt, msg, sizeof msg, - ciph, &ciph_len, sizeof ciph, + TEST_ASSERT(mbedtls_pk_encrypt(&alt, msg, sizeof(msg), + ciph, &ciph_len, sizeof(ciph), mbedtls_test_rnd_std_rand, NULL) == ret); TEST_ASSERT(mbedtls_pk_verify(&alt, MBEDTLS_MD_NONE, - hash, sizeof hash, sig, sig_len) == ret); + hash, sizeof(hash), sig, sig_len) == ret); TEST_ASSERT(mbedtls_pk_debug(&alt, dbg_items) == ret); exit: @@ -1260,11 +1260,11 @@ void pk_psa_sign(int parameter_arg, TEST_EQUAL(psa_get_key_lifetime(&attributes), PSA_KEY_LIFETIME_VOLATILE); - memset(hash, 0x2a, sizeof hash); - memset(sig, 0, sizeof sig); + memset(hash, 0x2a, sizeof(hash)); + memset(sig, 0, sizeof(sig)); TEST_ASSERT(mbedtls_pk_sign(&pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sizeof sig, &sig_len, + hash, sizeof(hash), sig, sizeof(sig), &sig_len, NULL, NULL) == 0); /* Export underlying public key for re-importing in a psa context. */ @@ -1285,7 +1285,7 @@ void pk_psa_sign(int parameter_arg, TEST_ASSERT(mbedtls_pk_parse_public_key(&pk, pkey_legacy_start, klen_legacy) == 0); TEST_ASSERT(mbedtls_pk_verify(&pk, MBEDTLS_MD_SHA256, - hash, sizeof hash, sig, sig_len) == 0); + hash, sizeof(hash), sig, sig_len) == 0); exit: /* diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 5d896bf73..b522c1a0b 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -1217,9 +1217,9 @@ void mbedtls_x509_crt_verify_max(char *ca_file, char *chain_dir, int nb_int, /* Load a chain with nb_int intermediates (from 01 to nb_int), * plus one "end-entity" cert (nb_int + 1) */ - ret = mbedtls_snprintf(file_buf, sizeof file_buf, "%s/c%02d.pem", chain_dir, + ret = mbedtls_snprintf(file_buf, sizeof(file_buf), "%s/c%02d.pem", chain_dir, nb_int + 1); - TEST_ASSERT(ret > 0 && (size_t) ret < sizeof file_buf); + TEST_ASSERT(ret > 0 && (size_t) ret < sizeof(file_buf)); TEST_ASSERT(mbedtls_x509_crt_parse_file(&chain, file_buf) == 0); /* Try to verify that chain */ @@ -1312,13 +1312,13 @@ void x509_oid_numstr(data_t *oid_buf, char *numstr, int blen, int ret) mbedtls_x509_buf oid; char num_buf[100]; - memset(num_buf, 0x2a, sizeof num_buf); + memset(num_buf, 0x2a, sizeof(num_buf)); oid.tag = MBEDTLS_ASN1_OID; oid.p = oid_buf->x; oid.len = oid_buf->len; - TEST_ASSERT((size_t) blen <= sizeof num_buf); + TEST_ASSERT((size_t) blen <= sizeof(num_buf)); TEST_ASSERT(mbedtls_oid_get_numeric_string(num_buf, blen, &oid) == ret); From 23caf02c5b56c2ac5839053233b80dbe33789c87 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 2 Feb 2023 13:17:34 +0000 Subject: [PATCH 1570/1574] Update warnings in cipher.h Signed-off-by: Dave Rodgman --- include/mbedtls/cipher.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h index e09bd92e7..0421f8106 100644 --- a/include/mbedtls/cipher.h +++ b/include/mbedtls/cipher.h @@ -71,16 +71,16 @@ extern "C" { /** * \brief Supported cipher types. * - * \warning DES is considered weak cipher and its use - * constitutes a security risk. Arm recommends considering stronger + * \warning DES/3DES are considered weak ciphers and their use + * constitutes a security risk. We recommend considering stronger * ciphers instead. */ typedef enum { MBEDTLS_CIPHER_ID_NONE = 0, /**< Placeholder to mark the end of cipher ID lists. */ MBEDTLS_CIPHER_ID_NULL, /**< The identity cipher, treated as a stream cipher. */ MBEDTLS_CIPHER_ID_AES, /**< The AES cipher. */ - MBEDTLS_CIPHER_ID_DES, /**< The DES cipher. */ - MBEDTLS_CIPHER_ID_3DES, /**< The Triple DES cipher. */ + MBEDTLS_CIPHER_ID_DES, /**< The DES cipher. \warning DES is considered weak. */ + MBEDTLS_CIPHER_ID_3DES, /**< The Triple DES cipher. \warning 3DES is considered weak. */ MBEDTLS_CIPHER_ID_CAMELLIA, /**< The Camellia cipher. */ MBEDTLS_CIPHER_ID_ARIA, /**< The Aria cipher. */ MBEDTLS_CIPHER_ID_CHACHA20, /**< The ChaCha20 cipher. */ From fdbfaafc2f2785c9a58b9f077d503172671f4273 Mon Sep 17 00:00:00 2001 From: Dave Rodgman Date: Thu, 2 Feb 2023 13:42:38 +0000 Subject: [PATCH 1571/1574] Additional warnings in cipher.h Signed-off-by: Dave Rodgman --- include/mbedtls/cipher.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/include/mbedtls/cipher.h b/include/mbedtls/cipher.h index 0421f8106..2f8904071 100644 --- a/include/mbedtls/cipher.h +++ b/include/mbedtls/cipher.h @@ -89,8 +89,8 @@ typedef enum { /** * \brief Supported {cipher type, cipher mode} pairs. * - * \warning DES is considered weak cipher and its use - * constitutes a security risk. Arm recommends considering stronger + * \warning DES/3DES are considered weak ciphers and their use + * constitutes a security risk. We recommend considering stronger * ciphers instead. */ typedef enum { @@ -126,12 +126,12 @@ typedef enum { MBEDTLS_CIPHER_CAMELLIA_128_GCM, /**< Camellia cipher with 128-bit GCM mode. */ MBEDTLS_CIPHER_CAMELLIA_192_GCM, /**< Camellia cipher with 192-bit GCM mode. */ MBEDTLS_CIPHER_CAMELLIA_256_GCM, /**< Camellia cipher with 256-bit GCM mode. */ - MBEDTLS_CIPHER_DES_ECB, /**< DES cipher with ECB mode. */ - MBEDTLS_CIPHER_DES_CBC, /**< DES cipher with CBC mode. */ - MBEDTLS_CIPHER_DES_EDE_ECB, /**< DES cipher with EDE ECB mode. */ - MBEDTLS_CIPHER_DES_EDE_CBC, /**< DES cipher with EDE CBC mode. */ - MBEDTLS_CIPHER_DES_EDE3_ECB, /**< DES cipher with EDE3 ECB mode. */ - MBEDTLS_CIPHER_DES_EDE3_CBC, /**< DES cipher with EDE3 CBC mode. */ + MBEDTLS_CIPHER_DES_ECB, /**< DES cipher with ECB mode. \warning DES is considered weak. */ + MBEDTLS_CIPHER_DES_CBC, /**< DES cipher with CBC mode. \warning DES is considered weak. */ + MBEDTLS_CIPHER_DES_EDE_ECB, /**< DES cipher with EDE ECB mode. \warning 3DES is considered weak. */ + MBEDTLS_CIPHER_DES_EDE_CBC, /**< DES cipher with EDE CBC mode. \warning 3DES is considered weak. */ + MBEDTLS_CIPHER_DES_EDE3_ECB, /**< DES cipher with EDE3 ECB mode. \warning 3DES is considered weak. */ + MBEDTLS_CIPHER_DES_EDE3_CBC, /**< DES cipher with EDE3 CBC mode. \warning 3DES is considered weak. */ MBEDTLS_CIPHER_AES_128_CCM, /**< AES cipher with 128-bit CCM mode. */ MBEDTLS_CIPHER_AES_192_CCM, /**< AES cipher with 192-bit CCM mode. */ MBEDTLS_CIPHER_AES_256_CCM, /**< AES cipher with 256-bit CCM mode. */ @@ -217,11 +217,11 @@ typedef enum { enum { /** Undefined key length. */ MBEDTLS_KEY_LENGTH_NONE = 0, - /** Key length, in bits (including parity), for DES keys. */ + /** Key length, in bits (including parity), for DES keys. \warning DES is considered weak. */ MBEDTLS_KEY_LENGTH_DES = 64, - /** Key length in bits, including parity, for DES in two-key EDE. */ + /** Key length in bits, including parity, for DES in two-key EDE. \warning 3DES is considered weak. */ MBEDTLS_KEY_LENGTH_DES_EDE = 128, - /** Key length in bits, including parity, for DES in three-key EDE. */ + /** Key length in bits, including parity, for DES in three-key EDE. \warning 3DES is considered weak. */ MBEDTLS_KEY_LENGTH_DES_EDE3 = 192, }; From 131ec931ebcda87b894303cc56f71f45e2c23e22 Mon Sep 17 00:00:00 2001 From: Yanray Wang Date: Wed, 1 Feb 2023 11:09:37 +0800 Subject: [PATCH 1572/1574] Remove the additional dot in output of compat.sh Signed-off-by: Yanray Wang --- tests/compat.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/compat.sh b/tests/compat.sh index 14d896bab..81eaf0beb 100755 --- a/tests/compat.sh +++ b/tests/compat.sh @@ -804,7 +804,8 @@ run_client() { TESTS=$(( $TESTS + 1 )) TITLE="${1%"${1#?}"}->${SERVER_NAME%"${SERVER_NAME#?}"}" TITLE="$TITLE $MODE,$VERIF $2" - printf "%s %.*s " "$TITLE" "$((72 - ${#TITLE}))" ........................................................................ + DOTS72="........................................................................" + printf "%s %.*s " "$TITLE" "$((71 - ${#TITLE}))" "$DOTS72" # should we skip? if [ "X$SKIP_NEXT" = "XYES" ]; then From 9b45f6bb68f23d95841a90a226e9e36cb635def2 Mon Sep 17 00:00:00 2001 From: Aditya Deshpande Date: Fri, 3 Feb 2023 16:15:30 +0000 Subject: [PATCH 1573/1574] Fix more argc checks Signed-off-by: Aditya Deshpande --- programs/hash/generic_sum.c | 2 +- programs/test/query_compile_time_config.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/programs/hash/generic_sum.c b/programs/hash/generic_sum.c index e2e49e343..995694af0 100644 --- a/programs/hash/generic_sum.c +++ b/programs/hash/generic_sum.c @@ -169,7 +169,7 @@ int main(int argc, char *argv[]) mbedtls_md_init(&md_ctx); - if (argc == 1) { + if (argc < 2) { const int *list; mbedtls_printf("print mode: generic_sum ...\n"); diff --git a/programs/test/query_compile_time_config.c b/programs/test/query_compile_time_config.c index 8f763facd..df0fe4a70 100644 --- a/programs/test/query_compile_time_config.c +++ b/programs/test/query_compile_time_config.c @@ -40,7 +40,7 @@ int main(int argc, char *argv[]) { int i; - if (argc == 1 || strcmp(argv[1], "-h") == 0) { + if (argc < 2 || strcmp(argv[1], "-h") == 0) { mbedtls_printf(USAGE, argv[0]); return MBEDTLS_EXIT_FAILURE; } From de85725507f8b9fc1dcbfc2f9240bfa5b413d3d6 Mon Sep 17 00:00:00 2001 From: Tom Cosgrove Date: Thu, 2 Feb 2023 06:41:21 +0000 Subject: [PATCH 1574/1574] Don't use cast-assignment in ssl_server.c Would have used mbedtls_put_unaligned_uint32(), but alignment.h is in library/. Signed-off-by: Tom Cosgrove --- programs/ssl/ssl_server2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c index b3d9f5a5c..3beb56e65 100644 --- a/programs/ssl/ssl_server2.c +++ b/programs/ssl/ssl_server2.c @@ -1374,6 +1374,11 @@ int report_cid_usage(mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) && defined(MBEDTLS_HAVE_TIME) +static inline void put_unaligned_uint32(void *p, uint32_t x) +{ + memcpy(p, &x, sizeof(x)); +} + /* Functions for session ticket tests */ int dummy_ticket_write(void *p_ticket, const mbedtls_ssl_session *session, unsigned char *start, const unsigned char *end, @@ -1387,7 +1392,7 @@ int dummy_ticket_write(void *p_ticket, const mbedtls_ssl_session *session, if (end - p < 4) { return MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL; } - *((uint32_t *) p) = 7 * 24 * 3600; + put_unaligned_uint32(p, 7 * 24 * 3600); *ticket_lifetime = 7 * 24 * 3600; p += 4;